@taon-dev/i18n 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (301) hide show
  1. package/VERIFIED-BUILD-DATA.jsonc +5 -0
  2. package/assets/shared/shared_folder_info.txt +7 -0
  3. package/bin/i18n +5 -0
  4. package/bin/i18n-debug +5 -0
  5. package/bin/i18n-debug-brk +4 -0
  6. package/bin/start.js +38 -0
  7. package/browser/README.md +24 -0
  8. package/browser/fesm2022/i18n-browser.mjs +521 -0
  9. package/browser/fesm2022/i18n-browser.mjs.map +1 -0
  10. package/browser/package.json +23 -0
  11. package/browser/types/i18n-browser.d.ts +353 -0
  12. package/browser-prod/README.md +24 -0
  13. package/browser-prod/fesm2022/i18n-browser-prod.mjs +521 -0
  14. package/browser-prod/fesm2022/i18n-browser-prod.mjs.map +1 -0
  15. package/browser-prod/package.json +23 -0
  16. package/browser-prod/types/i18n-browser-prod.d.ts +353 -0
  17. package/browser-prod.re-export.json +1 -0
  18. package/browser-prod.split-namespaces.json +4 -0
  19. package/cli.d.ts +1 -0
  20. package/cli.js +8 -0
  21. package/cli.js.map +1 -0
  22. package/html/assets/generated/pwa/html-pwa.html +60 -0
  23. package/html/imports.html +3 -0
  24. package/index.d.ts +3 -0
  25. package/index.js +20 -0
  26. package/index.js.map +1 -0
  27. package/lib/build-info._auto-generated_.d.ts +24 -0
  28. package/lib/build-info._auto-generated_.js +30 -0
  29. package/lib/build-info._auto-generated_.js.map +1 -0
  30. package/lib/env/env.angular-node-app.d.ts +67 -0
  31. package/lib/env/env.angular-node-app.js +141 -0
  32. package/lib/env/env.angular-node-app.js.map +1 -0
  33. package/lib/env/env.docs-webapp.d.ts +67 -0
  34. package/lib/env/env.docs-webapp.js +141 -0
  35. package/lib/env/env.docs-webapp.js.map +1 -0
  36. package/lib/env/env.electron-app.d.ts +67 -0
  37. package/lib/env/env.electron-app.js +141 -0
  38. package/lib/env/env.electron-app.js.map +1 -0
  39. package/lib/env/env.mobile-app.d.ts +67 -0
  40. package/lib/env/env.mobile-app.js +141 -0
  41. package/lib/env/env.mobile-app.js.map +1 -0
  42. package/lib/env/env.npm-lib-and-cli-tool.d.ts +67 -0
  43. package/lib/env/env.npm-lib-and-cli-tool.js +141 -0
  44. package/lib/env/env.npm-lib-and-cli-tool.js.map +1 -0
  45. package/lib/env/env.vscode-plugin.d.ts +67 -0
  46. package/lib/env/env.vscode-plugin.js +141 -0
  47. package/lib/env/env.vscode-plugin.js.map +1 -0
  48. package/lib/env/index.d.ts +6 -0
  49. package/lib/env/index.js +23 -0
  50. package/lib/env/index.js.map +1 -0
  51. package/lib/features/index.d.ts +4 -0
  52. package/lib/features/index.js +21 -0
  53. package/lib/features/index.js.map +1 -0
  54. package/lib/features/types.d.ts +4 -0
  55. package/lib/features/types.js +3 -0
  56. package/lib/features/types.js.map +1 -0
  57. package/lib/features/withLanguageLocalStorageSync.d.ts +9 -0
  58. package/lib/features/withLanguageLocalStorageSync.js +39 -0
  59. package/lib/features/withLanguageLocalStorageSync.js.map +1 -0
  60. package/lib/features/withNavigatorLanguage.d.ts +6 -0
  61. package/lib/features/withNavigatorLanguage.js +29 -0
  62. package/lib/features/withNavigatorLanguage.js.map +1 -0
  63. package/lib/features/withPreloadScopes.d.ts +8 -0
  64. package/lib/features/withPreloadScopes.js +25 -0
  65. package/lib/features/withPreloadScopes.js.map +1 -0
  66. package/lib/features/withServerSideLanguage.d.ts +6 -0
  67. package/lib/features/withServerSideLanguage.js +29 -0
  68. package/lib/features/withServerSideLanguage.js.map +1 -0
  69. package/lib/features/withTranslatedTitle.d.ts +34 -0
  70. package/lib/features/withTranslatedTitle.js +69 -0
  71. package/lib/features/withTranslatedTitle.js.map +1 -0
  72. package/lib/index._auto-generated_.d.ts +16 -0
  73. package/lib/index._auto-generated_.js +38 -0
  74. package/lib/index._auto-generated_.js.map +1 -0
  75. package/lib/index.d.ts +4 -0
  76. package/lib/index.js +20 -0
  77. package/lib/index.js.map +1 -0
  78. package/lib/internals.d.ts +2 -0
  79. package/lib/internals.js +6 -0
  80. package/lib/internals.js.map +1 -0
  81. package/lib/package.json +4 -0
  82. package/lib/start-cli.d.ts +7 -0
  83. package/lib/start-cli.js +46 -0
  84. package/lib/start-cli.js.map +1 -0
  85. package/lib/transignal-config.d.ts +34 -0
  86. package/lib/transignal-config.js +42 -0
  87. package/lib/transignal-config.js.map +1 -0
  88. package/lib/transignal-param-handlers.d.ts +11 -0
  89. package/lib/transignal-param-handlers.js +31 -0
  90. package/lib/transignal-param-handlers.js.map +1 -0
  91. package/lib/transignal-service.d.ts +32 -0
  92. package/lib/transignal-service.js +206 -0
  93. package/lib/transignal-service.js.map +1 -0
  94. package/lib/transignal-testing.d.ts +8 -0
  95. package/lib/transignal-testing.js +14 -0
  96. package/lib/transignal-testing.js.map +1 -0
  97. package/lib/types.d.ts +124 -0
  98. package/lib/types.js +3 -0
  99. package/lib/types.js.map +1 -0
  100. package/lib/utility-types.d.ts +29 -0
  101. package/lib/utility-types.js +3 -0
  102. package/lib/utility-types.js.map +1 -0
  103. package/lib/utils.d.ts +15 -0
  104. package/lib/utils.js +20 -0
  105. package/lib/utils.js.map +1 -0
  106. package/lib-esm/app.d.ts +3 -0
  107. package/lib-esm/app.electron.d.ts +1 -0
  108. package/lib-esm/app.electron.js +2 -0
  109. package/lib-esm/app.electron.js.map +1 -0
  110. package/lib-esm/app.hosts.d.ts +95 -0
  111. package/lib-esm/app.hosts.js +157 -0
  112. package/lib-esm/app.hosts.js.map +1 -0
  113. package/lib-esm/app.js +460 -0
  114. package/lib-esm/app.js.map +1 -0
  115. package/lib-esm/app.vscode.d.ts +9 -0
  116. package/lib-esm/app.vscode.js +37 -0
  117. package/lib-esm/app.vscode.js.map +1 -0
  118. package/lib-esm/cli.d.ts +1 -0
  119. package/lib-esm/cli.js +4 -0
  120. package/lib-esm/cli.js.map +1 -0
  121. package/lib-esm/index.d.ts +3 -0
  122. package/lib-esm/index.js +4 -0
  123. package/lib-esm/index.js.map +1 -0
  124. package/lib-esm/lib/build-info._auto-generated_.d.ts +24 -0
  125. package/lib-esm/lib/build-info._auto-generated_.js +27 -0
  126. package/lib-esm/lib/build-info._auto-generated_.js.map +1 -0
  127. package/lib-esm/lib/env/env.angular-node-app.d.ts +67 -0
  128. package/lib-esm/lib/env/env.angular-node-app.js +137 -0
  129. package/lib-esm/lib/env/env.angular-node-app.js.map +1 -0
  130. package/lib-esm/lib/env/env.docs-webapp.d.ts +67 -0
  131. package/lib-esm/lib/env/env.docs-webapp.js +137 -0
  132. package/lib-esm/lib/env/env.docs-webapp.js.map +1 -0
  133. package/lib-esm/lib/env/env.electron-app.d.ts +67 -0
  134. package/lib-esm/lib/env/env.electron-app.js +137 -0
  135. package/lib-esm/lib/env/env.electron-app.js.map +1 -0
  136. package/lib-esm/lib/env/env.mobile-app.d.ts +67 -0
  137. package/lib-esm/lib/env/env.mobile-app.js +137 -0
  138. package/lib-esm/lib/env/env.mobile-app.js.map +1 -0
  139. package/lib-esm/lib/env/env.npm-lib-and-cli-tool.d.ts +67 -0
  140. package/lib-esm/lib/env/env.npm-lib-and-cli-tool.js +137 -0
  141. package/lib-esm/lib/env/env.npm-lib-and-cli-tool.js.map +1 -0
  142. package/lib-esm/lib/env/env.vscode-plugin.d.ts +67 -0
  143. package/lib-esm/lib/env/env.vscode-plugin.js +137 -0
  144. package/lib-esm/lib/env/env.vscode-plugin.js.map +1 -0
  145. package/lib-esm/lib/env/index.d.ts +6 -0
  146. package/lib-esm/lib/env/index.js +7 -0
  147. package/lib-esm/lib/env/index.js.map +1 -0
  148. package/lib-esm/lib/features/index.d.ts +4 -0
  149. package/lib-esm/lib/features/index.js +5 -0
  150. package/lib-esm/lib/features/index.js.map +1 -0
  151. package/lib-esm/lib/features/types.d.ts +4 -0
  152. package/lib-esm/lib/features/types.js +2 -0
  153. package/lib-esm/lib/features/types.js.map +1 -0
  154. package/lib-esm/lib/features/withLanguageLocalStorageSync.d.ts +9 -0
  155. package/lib-esm/lib/features/withLanguageLocalStorageSync.js +35 -0
  156. package/lib-esm/lib/features/withLanguageLocalStorageSync.js.map +1 -0
  157. package/lib-esm/lib/features/withNavigatorLanguage.d.ts +6 -0
  158. package/lib-esm/lib/features/withNavigatorLanguage.js +25 -0
  159. package/lib-esm/lib/features/withNavigatorLanguage.js.map +1 -0
  160. package/lib-esm/lib/features/withPreloadScopes.d.ts +8 -0
  161. package/lib-esm/lib/features/withPreloadScopes.js +21 -0
  162. package/lib-esm/lib/features/withPreloadScopes.js.map +1 -0
  163. package/lib-esm/lib/features/withServerSideLanguage.d.ts +6 -0
  164. package/lib-esm/lib/features/withServerSideLanguage.js +25 -0
  165. package/lib-esm/lib/features/withServerSideLanguage.js.map +1 -0
  166. package/lib-esm/lib/features/withTranslatedTitle.d.ts +34 -0
  167. package/lib-esm/lib/features/withTranslatedTitle.js +65 -0
  168. package/lib-esm/lib/features/withTranslatedTitle.js.map +1 -0
  169. package/lib-esm/lib/index._auto-generated_.d.ts +16 -0
  170. package/lib-esm/lib/index._auto-generated_.js +22 -0
  171. package/lib-esm/lib/index._auto-generated_.js.map +1 -0
  172. package/lib-esm/lib/index.d.ts +4 -0
  173. package/lib-esm/lib/index.js +4 -0
  174. package/lib-esm/lib/index.js.map +1 -0
  175. package/lib-esm/lib/internals.d.ts +2 -0
  176. package/lib-esm/lib/internals.js +3 -0
  177. package/lib-esm/lib/internals.js.map +1 -0
  178. package/lib-esm/lib/start-cli.d.ts +7 -0
  179. package/lib-esm/lib/start-cli.js +43 -0
  180. package/lib-esm/lib/start-cli.js.map +1 -0
  181. package/lib-esm/lib/transignal-config.d.ts +34 -0
  182. package/lib-esm/lib/transignal-config.js +36 -0
  183. package/lib-esm/lib/transignal-config.js.map +1 -0
  184. package/lib-esm/lib/transignal-param-handlers.d.ts +11 -0
  185. package/lib-esm/lib/transignal-param-handlers.js +25 -0
  186. package/lib-esm/lib/transignal-param-handlers.js.map +1 -0
  187. package/lib-esm/lib/transignal-service.d.ts +32 -0
  188. package/lib-esm/lib/transignal-service.js +197 -0
  189. package/lib-esm/lib/transignal-service.js.map +1 -0
  190. package/lib-esm/lib/transignal-testing.d.ts +8 -0
  191. package/lib-esm/lib/transignal-testing.js +10 -0
  192. package/lib-esm/lib/transignal-testing.js.map +1 -0
  193. package/lib-esm/lib/types.d.ts +124 -0
  194. package/lib-esm/lib/types.js +2 -0
  195. package/lib-esm/lib/types.js.map +1 -0
  196. package/lib-esm/lib/utility-types.d.ts +29 -0
  197. package/lib-esm/lib/utility-types.js +2 -0
  198. package/lib-esm/lib/utility-types.js.map +1 -0
  199. package/lib-esm/lib/utils.d.ts +15 -0
  200. package/lib-esm/lib/utils.js +15 -0
  201. package/lib-esm/lib/utils.js.map +1 -0
  202. package/lib-prod/build-info._auto-generated_.d.ts +24 -0
  203. package/lib-prod/build-info._auto-generated_.js +27 -0
  204. package/lib-prod/build-info._auto-generated_.js.map +1 -0
  205. package/lib-prod/env/env.angular-node-app.d.ts +67 -0
  206. package/lib-prod/env/env.angular-node-app.js +137 -0
  207. package/lib-prod/env/env.angular-node-app.js.map +1 -0
  208. package/lib-prod/env/env.docs-webapp.d.ts +67 -0
  209. package/lib-prod/env/env.docs-webapp.js +137 -0
  210. package/lib-prod/env/env.docs-webapp.js.map +1 -0
  211. package/lib-prod/env/env.electron-app.d.ts +67 -0
  212. package/lib-prod/env/env.electron-app.js +137 -0
  213. package/lib-prod/env/env.electron-app.js.map +1 -0
  214. package/lib-prod/env/env.mobile-app.d.ts +67 -0
  215. package/lib-prod/env/env.mobile-app.js +137 -0
  216. package/lib-prod/env/env.mobile-app.js.map +1 -0
  217. package/lib-prod/env/env.npm-lib-and-cli-tool.d.ts +67 -0
  218. package/lib-prod/env/env.npm-lib-and-cli-tool.js +137 -0
  219. package/lib-prod/env/env.npm-lib-and-cli-tool.js.map +1 -0
  220. package/lib-prod/env/env.vscode-plugin.d.ts +67 -0
  221. package/lib-prod/env/env.vscode-plugin.js +137 -0
  222. package/lib-prod/env/env.vscode-plugin.js.map +1 -0
  223. package/lib-prod/env/index.d.ts +6 -0
  224. package/lib-prod/env/index.js +7 -0
  225. package/lib-prod/env/index.js.map +1 -0
  226. package/lib-prod/features/index.d.ts +4 -0
  227. package/lib-prod/features/index.js +5 -0
  228. package/lib-prod/features/index.js.map +1 -0
  229. package/lib-prod/features/types.d.ts +4 -0
  230. package/lib-prod/features/types.js +2 -0
  231. package/lib-prod/features/types.js.map +1 -0
  232. package/lib-prod/features/withLanguageLocalStorageSync.d.ts +9 -0
  233. package/lib-prod/features/withLanguageLocalStorageSync.js +35 -0
  234. package/lib-prod/features/withLanguageLocalStorageSync.js.map +1 -0
  235. package/lib-prod/features/withNavigatorLanguage.d.ts +6 -0
  236. package/lib-prod/features/withNavigatorLanguage.js +25 -0
  237. package/lib-prod/features/withNavigatorLanguage.js.map +1 -0
  238. package/lib-prod/features/withPreloadScopes.d.ts +8 -0
  239. package/lib-prod/features/withPreloadScopes.js +21 -0
  240. package/lib-prod/features/withPreloadScopes.js.map +1 -0
  241. package/lib-prod/features/withServerSideLanguage.d.ts +6 -0
  242. package/lib-prod/features/withServerSideLanguage.js +25 -0
  243. package/lib-prod/features/withServerSideLanguage.js.map +1 -0
  244. package/lib-prod/features/withTranslatedTitle.d.ts +34 -0
  245. package/lib-prod/features/withTranslatedTitle.js +65 -0
  246. package/lib-prod/features/withTranslatedTitle.js.map +1 -0
  247. package/lib-prod/index._auto-generated_.d.ts +16 -0
  248. package/lib-prod/index._auto-generated_.js +22 -0
  249. package/lib-prod/index._auto-generated_.js.map +1 -0
  250. package/lib-prod/index.d.ts +4 -0
  251. package/lib-prod/index.js +4 -0
  252. package/lib-prod/index.js.map +1 -0
  253. package/lib-prod/internals.d.ts +2 -0
  254. package/lib-prod/internals.js +3 -0
  255. package/lib-prod/internals.js.map +1 -0
  256. package/lib-prod/package.json +4 -0
  257. package/lib-prod/start-cli.d.ts +7 -0
  258. package/lib-prod/start-cli.js +43 -0
  259. package/lib-prod/start-cli.js.map +1 -0
  260. package/lib-prod/transignal-config.d.ts +34 -0
  261. package/lib-prod/transignal-config.js +36 -0
  262. package/lib-prod/transignal-config.js.map +1 -0
  263. package/lib-prod/transignal-param-handlers.d.ts +11 -0
  264. package/lib-prod/transignal-param-handlers.js +25 -0
  265. package/lib-prod/transignal-param-handlers.js.map +1 -0
  266. package/lib-prod/transignal-service.d.ts +32 -0
  267. package/lib-prod/transignal-service.js +197 -0
  268. package/lib-prod/transignal-service.js.map +1 -0
  269. package/lib-prod/transignal-testing.d.ts +8 -0
  270. package/lib-prod/transignal-testing.js +10 -0
  271. package/lib-prod/transignal-testing.js.map +1 -0
  272. package/lib-prod/types.d.ts +124 -0
  273. package/lib-prod/types.js +2 -0
  274. package/lib-prod/types.js.map +1 -0
  275. package/lib-prod/utility-types.d.ts +29 -0
  276. package/lib-prod/utility-types.js +2 -0
  277. package/lib-prod/utility-types.js.map +1 -0
  278. package/lib-prod/utils.d.ts +15 -0
  279. package/lib-prod/utils.js +15 -0
  280. package/lib-prod/utils.js.map +1 -0
  281. package/lib-prod.re-export.json +1 -0
  282. package/lib-prod.split-namespaces.json +4 -0
  283. package/package.json +39 -0
  284. package/scss/global.scss +94 -0
  285. package/scss/index.scss +2 -0
  286. package/scss/lib/index.scss +2 -0
  287. package/scss/vars.scss +7 -0
  288. package/src.d.ts +6 -0
  289. package/src.js +4 -0
  290. package/websql/README.md +24 -0
  291. package/websql/fesm2022/i18n-websql.mjs +521 -0
  292. package/websql/fesm2022/i18n-websql.mjs.map +1 -0
  293. package/websql/package.json +23 -0
  294. package/websql/types/i18n-websql.d.ts +353 -0
  295. package/websql-prod/README.md +24 -0
  296. package/websql-prod/fesm2022/i18n-websql-prod.mjs +521 -0
  297. package/websql-prod/fesm2022/i18n-websql-prod.mjs.map +1 -0
  298. package/websql-prod/package.json +23 -0
  299. package/websql-prod/types/i18n-websql-prod.d.ts +353 -0
  300. package/websql-prod.re-export.json +1 -0
  301. package/websql-prod.split-namespaces.json +4 -0
@@ -0,0 +1,5 @@
1
+ {
2
+ "commitHash": "bbd68061dd610554643c07f39ee5ef97cedd2d23",
3
+ "commitName": "chore: update",
4
+ "commitDate": "26-06-2026 22:43:54"
5
+ }
@@ -0,0 +1,7 @@
1
+ THIS FILE IS GENERATED - DO NOT MODIFY
2
+
3
+ Assets from this folder are being shipped with this npm package (@taon-dev/i18n)
4
+ created from this project.
5
+
6
+ THIS FILE IS GENERATED - DO NOT MODIFY
7
+
package/bin/i18n ADDED
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env -S node --no-deprecation
2
+ //#region @backend
3
+ // --stack-trace-limit=10000
4
+ require('./start');
5
+ //#endregion
package/bin/i18n-debug ADDED
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env -S node --inspect --stack-trace-limit=10000 --no-deprecation
2
+ //#region @backend
3
+ // --stack-trace-limit=10000
4
+ require('./start');
5
+ //#endregion
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env -S node --inspect-brk --stack-trace-limit=10000 --no-deprecation
2
+ //#region @backend
3
+ require('./start');
4
+ //#endregion
package/bin/start.js ADDED
@@ -0,0 +1,38 @@
1
+ global.frameworkName = 'i18n';
2
+ Error.stackTraceLimit = 100;
3
+ global.i0 = {
4
+ defineInjectable: function () { }
5
+ }
6
+ const process= require('process');
7
+ global.currentTaonScriptStartDateTime = process.hrtime.bigint();
8
+
9
+ process.removeAllListeners('warning');
10
+ var argv = process.argv;
11
+
12
+ global.hideLog = true;
13
+ global.verboseLevel = 0;
14
+ var verboseLevel = argv.find(a => a.startsWith('-verbose='));
15
+ if (typeof verboseLevel !== 'undefined') {
16
+ global.hideLog = false;
17
+ verboseLevel = Number(verboseLevel.replace('-verbose=', ''));
18
+ if (!isNaN(verboseLevel)) {
19
+ global.verboseLevel = verboseLevel;
20
+ }
21
+ argv = argv.filter(a => !a.startsWith('-verbose='));
22
+ }
23
+
24
+ if (argv.includes('-verbose')) {
25
+ global.hideLog = false;
26
+ argv = argv.filter(a => a !== '-verbose');
27
+ }
28
+
29
+ const fs = require('fs');
30
+ const path = require('path');
31
+ var pathToCliJS = {
32
+ distDev: path.join(__dirname, '../dist/cli.js'),
33
+ localOrNPm: path.join(__dirname, '../cli.js')
34
+ }
35
+ var p = fs.existsSync(pathToCliJS.distDev) ? pathToCliJS.distDev : pathToCliJS.localOrNPm;
36
+ global.globalSystemToolMode = true;
37
+ var run = require(p).startCli;
38
+ run(argv,__filename);
@@ -0,0 +1,24 @@
1
+ # MyLib
2
+
3
+ This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 13.2.0.
4
+
5
+ ## Code scaffolding
6
+
7
+ Run `ng generate component component-name --project my-lib` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project my-lib`.
8
+ > Note: Don't forget to add `--project my-lib` or else it will be added to the default project in your `angular.json` file.
9
+
10
+ ## Build
11
+
12
+ Run `ng build my-lib` to build the project. The build artifacts will be stored in the `dist/` directory.
13
+
14
+ ## Publishing
15
+
16
+ After building your library with `ng build my-lib`, go to the dist folder `cd dist/my-lib` and run `npm publish`.
17
+
18
+ ## Running unit tests
19
+
20
+ Run `ng test my-lib` to execute the unit tests via [Karma](https://karma-runner.github.io).
21
+
22
+ ## Further help
23
+
24
+ To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
@@ -0,0 +1,521 @@
1
+ import * as i0 from '@angular/core';
2
+ import { inject, EnvironmentInjector, signal, computed, runInInjectionContext, untracked, resource, Injectable, InjectionToken, makeEnvironmentProviders, provideAppInitializer, PLATFORM_ID, effect, DOCUMENT } from '@angular/core';
3
+ import { isPlatformBrowser, isPlatformServer } from '@angular/common';
4
+ import { Title } from '@angular/platform-browser';
5
+ import { TitleStrategy, Router } from '@angular/router';
6
+
7
+ // THIS FILE IS GENERATED - DO NOT MODIFY
8
+ /**
9
+ * Autogenerated by current cli tool
10
+ */
11
+ const BUILD_FRAMEWORK_CLI_NAME = 'tnp';
12
+ /**
13
+ * This value can be change in taon.jsonc (appId)
14
+ */
15
+ const APP_ID = 'com.domain.example.i18n';
16
+ /**
17
+ * Autogenerated by current cli tool
18
+ */
19
+ const BUILD_BASE_HREF = '';
20
+ /**
21
+ * This value can be change in taon.jsonc (overrideNpmName)
22
+ */
23
+ const PROJECT_NPM_NAME = '@taon-dev/i18n';
24
+ /**
25
+ * Taon version from you project taon.json
26
+ */
27
+ const CURRENT_PACKAGE_TAON_VERSION = 'v21';
28
+ /**
29
+ * Autogenerated by current cli tool. Use *tnp release* to bump version.
30
+ */
31
+ const CURRENT_PACKAGE_VERSION = '0.0.1';
32
+ // THIS FILE IS GENERATED - DO NOT MODIFY
33
+
34
+ const INTERNAL_TRANSIGNAL_CONFIG = Symbol('INTERNAL_TRANSIGNAL_CONFIG');
35
+ const TREE_SHAKED_TRANSLATIONS = Symbol('TREE_SHAKED_TRANSLATIONS');
36
+
37
+ //#region tnp-helpers cli template
38
+ // import { Helpers, BaseCommandLineFeature } from 'tnp-helpers/src';
39
+ // import { BaseProject, BaseStartConfig } from 'tnp-helpers/src'; // @backend
40
+ // class $Version extends BaseCommandLineFeature<{}> {
41
+ // public _() {
42
+ // console.log(`Hello world from cli`);
43
+ // this._exit();
44
+ // }
45
+ // }
46
+ //#endregion
47
+ /**
48
+ *
49
+ * @param argsv process.argsv
50
+ * @param filename needed if you want ipc communicaiton
51
+ */
52
+ async function startCli(argsv, filename) {
53
+ /* */
54
+ /* */
55
+ /* */
56
+ /* */
57
+ /* */
58
+ /* */
59
+ /* */
60
+ /* */
61
+ /* */
62
+ /* */
63
+ /* */
64
+ /* */
65
+ /* */
66
+ /* */
67
+ /* */
68
+ /* */
69
+ /* */
70
+ /* */
71
+ /* */
72
+ /* */
73
+ /* */
74
+ /* */
75
+ /* */
76
+ /* */
77
+ return (void 0);
78
+ }
79
+
80
+ /**
81
+ * Param handler which allows for specification of basic params: `{name}`
82
+ *
83
+ * @param translation Translated text
84
+ * @param params Params provided to translation function
85
+ */
86
+ const simpleParamsHandler = (translation, params) => {
87
+ if (!params)
88
+ return translation;
89
+ for (const [key, value] of Object.entries(params)) {
90
+ translation = translation.replaceAll(`{${key}}`, simpleParamValueStringify(value));
91
+ }
92
+ return translation;
93
+ };
94
+ const noParamsHandler = translation => translation;
95
+ const simpleParamValueStringify = (paramValue) => {
96
+ if (typeof paramValue === 'string') {
97
+ return paramValue;
98
+ }
99
+ if (paramValue == null) {
100
+ return '';
101
+ }
102
+ return paramValue.toString();
103
+ };
104
+
105
+ /**
106
+ * Main transignal service, used to process and cache translations
107
+ * Can be injected directly or with use of transignal object created with {@link prepareTransignal} function (recommended)
108
+ */
109
+ class TransignalService {
110
+ constructor() {
111
+ this.injector = inject(EnvironmentInjector);
112
+ this.config = injectTransignalConfig();
113
+ this.paramsHandler = this.config.paramHandler ?? simpleParamsHandler;
114
+ this.loadingFn = this.config.loadingFn ?? (() => '...');
115
+ // eslint-disable-next-line no-console
116
+ this.errorHandler = this.config.errorHandler ?? console.error; // TODO maybe add a link to error page in docs
117
+ this.loadingCount = signal(0, ...(ngDevMode ? [{ debugName: "loadingCount" }] : []));
118
+ this.scopeMap = new Map();
119
+ this.languageMap = new Map();
120
+ /**
121
+ * Use to set or get active language
122
+ */
123
+ this.activeLang = signal(this.config.defaultLang, ...(ngDevMode ? [{ debugName: "activeLang" }] : []));
124
+ /**
125
+ * Use to determine whether service is currently loading translation files
126
+ */
127
+ this.isLoading = computed(() => this.loadingCount() > 0, ...(ngDevMode ? [{ debugName: "isLoading" }] : []));
128
+ }
129
+ t(scope) {
130
+ const existing = this.scopeMap.get(scope);
131
+ if (existing) {
132
+ return existing;
133
+ }
134
+ const scopeObj = this.initT(scope);
135
+ this.scopeMap.set(scope, scopeObj);
136
+ return scopeObj;
137
+ }
138
+ initT(scope) {
139
+ const cache = new Map();
140
+ const t = ((key, params) => {
141
+ const lang = this.activeLang();
142
+ const baseKey = `${lang}/${key}`;
143
+ const memoKey = params ? `${baseKey}_${JSON.stringify(params)}` : baseKey;
144
+ const alreadyComputed = cache.get(memoKey);
145
+ if (alreadyComputed) {
146
+ return alreadyComputed;
147
+ }
148
+ const { isLoading, error, value } = this.fetchLanguage(scope, lang);
149
+ if (isLoading()) {
150
+ return this.loadingFn?.(key);
151
+ }
152
+ if (error() || !value()) {
153
+ this.errorHandler('missing_file', error());
154
+ return '';
155
+ }
156
+ const result = this.replaceParams(this.resolveObjectPath(value(), key), params);
157
+ cache.set(memoKey, result);
158
+ return result;
159
+ }); // needed as other props are assigned below
160
+ t.arr = t;
161
+ t.obj = t;
162
+ t.prefix = this.preparePrefixFn(t, 1);
163
+ t.plural = this.preparePluralFn(t);
164
+ t.select = this.prepareSelectFn(t);
165
+ return t;
166
+ }
167
+ preparePrefixFn(t, depth) {
168
+ return (prefix) => {
169
+ const prefixedT = (key, params) => t(`${prefix}.${key}`, params);
170
+ prefixedT.arr = prefixedT;
171
+ prefixedT.obj = prefixedT;
172
+ prefixedT.plural = this.preparePluralFn(prefixedT);
173
+ prefixedT.select = this.prepareSelectFn(prefixedT);
174
+ prefixedT.prefix =
175
+ this.config.maxPrefixDepth || 3 >= depth
176
+ ? this.preparePrefixFn(prefixedT, depth + 1)
177
+ : () => {
178
+ this.errorHandler('prefix_too_deep');
179
+ const t = () => '';
180
+ t.arr = () => [];
181
+ t.obj = () => ({});
182
+ t.plural = () => '';
183
+ return t;
184
+ };
185
+ return prefixedT;
186
+ };
187
+ }
188
+ preparePluralFn(t) {
189
+ return (key, count, params) => {
190
+ const plurals = t(key, { count, ...params });
191
+ if (typeof plurals === 'string') {
192
+ if (plurals === this.loadingFn(key)) {
193
+ return plurals;
194
+ }
195
+ this.errorHandler('invalid_plural', key, plurals);
196
+ return plurals;
197
+ }
198
+ if (plurals[count]) {
199
+ return plurals[count];
200
+ }
201
+ const valueLastDigit = +count.toFixed(0).at(-1);
202
+ if (plurals.one && valueLastDigit === 1) {
203
+ return plurals.one;
204
+ }
205
+ if (plurals.many && valueLastDigit >= 5) {
206
+ return plurals.many;
207
+ }
208
+ if (plurals.few && valueLastDigit > 1 && valueLastDigit < 5) {
209
+ return plurals.few;
210
+ }
211
+ if (plurals.other) {
212
+ return plurals.other;
213
+ }
214
+ this.errorHandler('missing_plural', key, plurals, count);
215
+ return '';
216
+ };
217
+ }
218
+ prepareSelectFn(t) {
219
+ return (key, value, params) => {
220
+ const selects = t(key, { value, ...params });
221
+ if (typeof selects === 'string') {
222
+ if (selects === this.loadingFn(key)) {
223
+ return selects;
224
+ }
225
+ this.errorHandler('invalid_select', key, selects);
226
+ return selects;
227
+ }
228
+ if (value !== null) {
229
+ if (selects[value]) {
230
+ return selects[value];
231
+ }
232
+ }
233
+ else if (selects['null']) {
234
+ return selects['null'];
235
+ }
236
+ this.errorHandler('missing_select', key, selects, value);
237
+ return '';
238
+ };
239
+ }
240
+ replaceParams(translation, params) {
241
+ if (!translation)
242
+ return translation;
243
+ if (typeof translation === 'string') {
244
+ return this.paramsHandler(translation, params);
245
+ }
246
+ if (Array.isArray(translation)) {
247
+ return translation.map(val => this.replaceParams(val, params));
248
+ }
249
+ if (typeof translation === 'object') {
250
+ return Object.entries(translation).reduce((prev, [objKey, objVal]) => {
251
+ prev[objKey] = this.replaceParams(objVal, params);
252
+ return prev;
253
+ }, {});
254
+ }
255
+ return translation;
256
+ }
257
+ fetchLanguage(scope, lang) {
258
+ const cacheKey = `${scope}/${lang}`;
259
+ const existing = this.languageMap.get(cacheKey);
260
+ if (existing)
261
+ return existing;
262
+ const { translations, loader } = this.config;
263
+ const translation = runInInjectionContext(this.injector, () => translations === TREE_SHAKED_TRANSLATIONS
264
+ ? untracked(() => resource({
265
+ loader: async () => {
266
+ this.loadingCount.update(count => ++count);
267
+ const file = await runInInjectionContext(this.injector, () => loader(scope, lang));
268
+ this.loadingCount.update(count => --count);
269
+ return file;
270
+ },
271
+ }))
272
+ : {
273
+ value: signal(translations[scope]),
274
+ isLoading: signal(false),
275
+ error: signal(undefined),
276
+ });
277
+ this.languageMap.set(cacheKey, translation);
278
+ return translation;
279
+ }
280
+ resolveObjectPath(obj, path) {
281
+ const keys = path.split('.');
282
+ let current = obj;
283
+ for (const key of keys) {
284
+ if (current && typeof current === 'object') {
285
+ current = current[key];
286
+ }
287
+ else {
288
+ this.errorHandler('missing_key', { obj, path });
289
+ return undefined;
290
+ }
291
+ }
292
+ return current;
293
+ }
294
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TransignalService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
295
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TransignalService }); }
296
+ }
297
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TransignalService, decorators: [{
298
+ type: Injectable
299
+ }] });
300
+
301
+ /**
302
+ * Utility function to define a type of translations for type inference
303
+ */
304
+ const treeShakedTranslations = () => TREE_SHAKED_TRANSLATIONS;
305
+ const TRANSIGNAL_CONFIG = new InjectionToken('TRANSIGNAL_CONFIG');
306
+ /**
307
+ * Use to inject transignal config
308
+ */
309
+ const injectTransignalConfig = () => inject(TRANSIGNAL_CONFIG);
310
+ /**
311
+ * Prepares type-safe transignal object
312
+ * @param config Transignal configruation {@link TransignalConfig}
313
+ * @param features Extra tree-shakeable features
314
+ * - {@link withPreloadScopes} - preloads selected scopes
315
+ * - {@link withServerSideLanguage} - sets language based on `document.lang` in SSR environment
316
+ * - {@link withNavigatorLanguage} - sets language based on `navigator.language` in browser environment
317
+ * - {@link withLanguageLocalStorageSync} - syncs language with localStorage
318
+ * - {@link withTranslatedTitle} - enables translation of page title
319
+ */
320
+ const prepareTransignal = (config, ...features) => {
321
+ const service = () => inject(TransignalService);
322
+ return {
323
+ [INTERNAL_TRANSIGNAL_CONFIG]: { config, features },
324
+ provide: () => makeEnvironmentProviders([
325
+ { provide: TRANSIGNAL_CONFIG, useValue: config },
326
+ TransignalService,
327
+ features.map(feature => feature.providers),
328
+ ]),
329
+ service,
330
+ t: (scope) => service().t(scope),
331
+ };
332
+ };
333
+
334
+ /**
335
+ * Provides unit-test version of transignal that loads translation instantly without loading
336
+ *
337
+ * @param transignal existing transignal instance
338
+ * @param translations real translations in a selected language
339
+ */
340
+ const provideTransignalTesting = (transignal, translations) => prepareTransignal({ ...transignal[INTERNAL_TRANSIGNAL_CONFIG].config, translations }, ...transignal[INTERNAL_TRANSIGNAL_CONFIG].features).provide();
341
+
342
+ /**
343
+ * Utility to create a plural translation that can differ between languages and includes variants of translations for different plurals
344
+ * Can be used with {@link TranslateObj.plural}
345
+ * Translations may use automatic param: `{count}`
346
+ * @param translation plural translation object
347
+ */
348
+ const plural = (translation) => translation;
349
+ /**
350
+ * Utility to create a select translation
351
+ * Can be used with {@link TranslateObj.select}
352
+ * Translations may use automatic param: `{value}`
353
+ * @param translation select translation object
354
+ */
355
+ const select = (translation) => translation;
356
+
357
+ /**
358
+ * Saves user selected language in selected storage e.g. localStorage
359
+ * Works only in browser environment
360
+ *
361
+ * @param key Key under which it should save the language in storage
362
+ * @param storage Storage to be used e.g. localStorage or sessionStorage
363
+ */
364
+ const withLanguageLocalStorageSync = (key = 'LANG', storage = 'localStorage') => {
365
+ return {
366
+ providers: [
367
+ provideAppInitializer(() => {
368
+ if (isPlatformBrowser(inject(PLATFORM_ID))) {
369
+ const transignalService = inject(TransignalService);
370
+ const store = window[storage];
371
+ const savedLanguage = store.getItem(key);
372
+ if (savedLanguage) {
373
+ const { availableLangs } = injectTransignalConfig();
374
+ if (availableLangs.includes(savedLanguage)) {
375
+ transignalService.activeLang.set(savedLanguage);
376
+ }
377
+ }
378
+ effect(() => {
379
+ const updatedLang = transignalService.activeLang();
380
+ store.setItem(key, updatedLang);
381
+ });
382
+ }
383
+ }),
384
+ ],
385
+ };
386
+ };
387
+
388
+ /**
389
+ * Sets active language depending on `navigator.language`, which represents user defined browser settings
390
+ * Works only in browser environment
391
+ */
392
+ const withNavigatorLanguage = () => {
393
+ return {
394
+ providers: [
395
+ provideAppInitializer(() => {
396
+ if (isPlatformBrowser(inject(PLATFORM_ID))) {
397
+ const transignalService = inject(TransignalService);
398
+ const { availableLangs } = injectTransignalConfig();
399
+ const preferredLanguage = navigator.languages.map(language => language.split('-')[0].toLowerCase()).find(language => availableLangs.includes(language));
400
+ if (preferredLanguage) {
401
+ transignalService.activeLang.set(preferredLanguage);
402
+ }
403
+ }
404
+ }),
405
+ ],
406
+ };
407
+ };
408
+
409
+ /**
410
+ * Preloads selected scopes in default language
411
+ * Use after language init by {@link withServerSideLanguage} or {@link withNavigatorLanguage}
412
+ * @param scopes Scopes which should be preloaded
413
+ */
414
+ const withPreloadScopes = (scopes) => {
415
+ return {
416
+ providers: [
417
+ provideAppInitializer(() => {
418
+ const transignalService = inject(TransignalService);
419
+ effect(() => {
420
+ const _activeLang = transignalService.activeLang();
421
+ scopes.forEach(scope => transignalService.t(scope)(''));
422
+ });
423
+ }),
424
+ ],
425
+ };
426
+ };
427
+
428
+ /**
429
+ * Sets active language depending on `document.lang` attribute which should be set by the server.ts depending on `Accept-language` header
430
+ * Works only in SSR environment
431
+ */
432
+ const withServerSideLanguage = () => {
433
+ return {
434
+ providers: [
435
+ provideAppInitializer(() => {
436
+ if (isPlatformServer(inject(PLATFORM_ID))) {
437
+ const transignalService = inject(TransignalService);
438
+ const { documentElement } = inject(DOCUMENT);
439
+ const { availableLangs } = injectTransignalConfig();
440
+ if (availableLangs.includes(documentElement.lang)) {
441
+ transignalService.activeLang.set(documentElement.lang);
442
+ }
443
+ }
444
+ }),
445
+ ],
446
+ };
447
+ };
448
+
449
+ class TransignalTitleStrategy extends TitleStrategy {
450
+ constructor(t) {
451
+ super();
452
+ this.t = t;
453
+ this.title = inject(Title);
454
+ this.injector = inject(EnvironmentInjector);
455
+ }
456
+ updateTitle(routerState) {
457
+ this.effectRef?.destroy();
458
+ const router = this.injector.get(Router);
459
+ const title = this.buildTitle(routerState) || 'default';
460
+ const translation = computed(() => this.t(title, router.getCurrentNavigation()?.extras.state), ...(ngDevMode ? [{ debugName: "translation" }] : []));
461
+ this.effectRef = runInInjectionContext(this.injector, () => effect(() => this.title.setTitle(translation()), { manualCleanup: true }));
462
+ }
463
+ }
464
+ /**
465
+ * Enables translation of title param in route definition with use of prepared {@link TitleStrategy}
466
+ * Automatically translates `title` param form route definition, sets website title and updates on language changes
467
+ * Also it is possible to use parameters from `navigation.extras.state`
468
+ *
469
+ * @example
470
+ * ```typescript
471
+ * // src/app/app.routes.ts
472
+ * export const routes = [
473
+ * { path: 'base', title: 'base', children: [
474
+ * { path: 'child', title: 'child' },
475
+ * ],
476
+ * { path: 'aux', outlet: 'popup', title: 'popupTitle' }
477
+ * ];
478
+ *
479
+ * // src/app/transignal.ts
480
+ * export const transignal = prepareTransignal(<config>, withTranslatedTitle('global'));
481
+ *
482
+ * // src/app/i18n/global/en.ts
483
+ * export default {
484
+ * title: {
485
+ * base: 'Base title',
486
+ * child: 'Child title'
487
+ * popupTitle: 'Popup title'
488
+ * }
489
+ * };
490
+ * ```
491
+ *
492
+ * @param scope scope under which there are title translations
493
+ * @param translationKey translation key under which there are translations, `title` by default
494
+ */
495
+ const withTranslatedTitle = (scope, translationKey = 'title') => {
496
+ return {
497
+ providers: [
498
+ makeEnvironmentProviders([
499
+ {
500
+ provide: TitleStrategy,
501
+ useFactory: (service = inject(TransignalService)) => new TransignalTitleStrategy(service.t(scope).prefix(translationKey)),
502
+ },
503
+ ]),
504
+ ],
505
+ };
506
+ };
507
+
508
+ // @ts-nocheck
509
+ // This file is auto-generated during init process. Do not modify.
510
+ // This disable this auto generate file.
511
+ // set property "shouldGenerateAutogenIndexFile: false"
512
+ // in taon.jsonc of your project.
513
+
514
+ var index = {};
515
+
516
+ /**
517
+ * Generated bundle index. Do not edit.
518
+ */
519
+
520
+ export { APP_ID, BUILD_BASE_HREF, BUILD_FRAMEWORK_CLI_NAME, CURRENT_PACKAGE_TAON_VERSION, CURRENT_PACKAGE_VERSION, INTERNAL_TRANSIGNAL_CONFIG, PROJECT_NPM_NAME, TRANSIGNAL_CONFIG, TREE_SHAKED_TRANSLATIONS, TransignalService, injectTransignalConfig, noParamsHandler, plural, prepareTransignal, provideTransignalTesting, select, simpleParamValueStringify, simpleParamsHandler, startCli, treeShakedTranslations, withLanguageLocalStorageSync, withNavigatorLanguage, withPreloadScopes, withServerSideLanguage, withTranslatedTitle };
521
+ //# sourceMappingURL=i18n-browser.mjs.map