@taon-dev/i18n 21.0.20 → 21.0.22

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 (250) hide show
  1. package/VERIFIED-BUILD-DATA.jsonc +5 -0
  2. package/assets/shared/shared_folder_info.txt +7 -0
  3. package/browser/README.md +24 -0
  4. package/browser/fesm2022/i18n-browser.mjs +1567 -0
  5. package/browser/fesm2022/i18n-browser.mjs.map +1 -0
  6. package/browser/package.json +20 -1
  7. package/browser/types/i18n-browser.d.ts +195 -0
  8. package/browser-prod/README.md +24 -0
  9. package/browser-prod/fesm2022/i18n-browser-prod.mjs +1556 -0
  10. package/browser-prod/fesm2022/i18n-browser-prod.mjs.map +1 -0
  11. package/browser-prod/package.json +20 -2
  12. package/browser-prod/types/i18n-browser-prod.d.ts +189 -0
  13. package/browser-prod.re-export.json +1 -0
  14. package/browser-prod.split-namespaces.json +28 -0
  15. package/cli.d.ts +1 -0
  16. package/cli.js +8 -0
  17. package/cli.js.map +1 -0
  18. package/html/app/main-page/main-page.container.html +4 -0
  19. package/html/assets/generated/pwa/html-pwa.html +60 -0
  20. package/html/imports.html +3 -0
  21. package/index.d.ts +3 -0
  22. package/index.js +20 -0
  23. package/index.js.map +1 -0
  24. package/lib/build-info._auto-generated_.d.ts +24 -0
  25. package/lib/build-info._auto-generated_.js +30 -0
  26. package/lib/build-info._auto-generated_.js.map +1 -0
  27. package/lib/env/env.angular-node-app.d.ts +67 -0
  28. package/lib/env/env.angular-node-app.js +141 -0
  29. package/lib/env/env.angular-node-app.js.map +1 -0
  30. package/lib/env/env.docs-webapp.d.ts +67 -0
  31. package/lib/env/env.docs-webapp.js +141 -0
  32. package/lib/env/env.docs-webapp.js.map +1 -0
  33. package/lib/env/env.electron-app.d.ts +67 -0
  34. package/lib/env/env.electron-app.js +141 -0
  35. package/lib/env/env.electron-app.js.map +1 -0
  36. package/lib/env/env.mobile-app.d.ts +67 -0
  37. package/lib/env/env.mobile-app.js +141 -0
  38. package/lib/env/env.mobile-app.js.map +1 -0
  39. package/lib/env/env.npm-lib-and-cli-tool.d.ts +67 -0
  40. package/lib/env/env.npm-lib-and-cli-tool.js +141 -0
  41. package/lib/env/env.npm-lib-and-cli-tool.js.map +1 -0
  42. package/lib/env/env.vscode-plugin.d.ts +67 -0
  43. package/lib/env/env.vscode-plugin.js +141 -0
  44. package/lib/env/env.vscode-plugin.js.map +1 -0
  45. package/lib/env/index.d.ts +6 -0
  46. package/lib/env/index.js +23 -0
  47. package/lib/env/index.js.map +1 -0
  48. package/lib/index._auto-generated_.d.ts +11 -0
  49. package/lib/index._auto-generated_.js +33 -0
  50. package/lib/index._auto-generated_.js.map +1 -0
  51. package/lib/index.d.ts +4 -0
  52. package/lib/index.js +20 -0
  53. package/lib/index.js.map +1 -0
  54. package/lib/package.json +1 -1
  55. package/lib/start-cli.d.ts +7 -0
  56. package/lib/start-cli.js +48 -0
  57. package/lib/start-cli.js.map +1 -0
  58. package/lib/translate.directive.d.ts +16 -0
  59. package/lib/translate.pipe.d.ts +10 -0
  60. package/lib/translate.service.d.ts +13 -0
  61. package/lib/translation-manager.d.ts +33 -0
  62. package/lib/translation-manager.js +119 -0
  63. package/lib/translation-manager.js.map +1 -0
  64. package/lib/translation.d.ts +44 -0
  65. package/lib/translation.js +253 -0
  66. package/lib/translation.js.map +1 -0
  67. package/lib/translation.models.d.ts +25 -0
  68. package/lib/translation.models.js +3 -0
  69. package/lib/translation.models.js.map +1 -0
  70. package/lib/utils-i18n-extract-gettext-translate-from-html.d.ts +4 -0
  71. package/lib/utils-i18n-extract-gettext-translate-from-html.js +465 -0
  72. package/lib/utils-i18n-extract-gettext-translate-from-html.js.map +1 -0
  73. package/lib/utils-i18n-extract-gettext-translate-from-html.test.d.ts +1 -0
  74. package/lib/utils-i18n-extract-gettext-translate-from-html.test.js +282 -0
  75. package/lib/utils-i18n-extract-gettext-translate-from-html.test.js.map +1 -0
  76. package/lib/utils-i18n-html.d.ts +5 -0
  77. package/lib/utils-i18n-html.js +125 -0
  78. package/lib/utils-i18n-html.js.map +1 -0
  79. package/lib/utils-i18n-html.test.d.ts +1 -0
  80. package/lib/utils-i18n-html.test.js +147 -0
  81. package/lib/utils-i18n-html.test.js.map +1 -0
  82. package/lib/utils-po-file.d.ts +8 -0
  83. package/lib/utils-po-file.js +245 -0
  84. package/lib/utils-po-file.js.map +1 -0
  85. package/lib/utils-po-file.test.d.ts +1 -0
  86. package/lib/utils-po-file.test.js +239 -0
  87. package/lib/utils-po-file.test.js.map +1 -0
  88. package/lib-esm/app/main-page/main-page.active.context.d.ts +19 -0
  89. package/lib-esm/app/main-page/main-page.active.context.js +19 -0
  90. package/lib-esm/app/main-page/main-page.active.context.js.map +1 -0
  91. package/lib-esm/app.d.ts +3 -0
  92. package/lib-esm/app.electron.d.ts +1 -0
  93. package/lib-esm/app.electron.js +2 -0
  94. package/lib-esm/app.electron.js.map +1 -0
  95. package/lib-esm/app.hosts.d.ts +147 -0
  96. package/lib-esm/app.hosts.js +217 -0
  97. package/lib-esm/app.hosts.js.map +1 -0
  98. package/lib-esm/app.js +460 -0
  99. package/lib-esm/app.js.map +1 -0
  100. package/lib-esm/app.vscode.d.ts +9 -0
  101. package/lib-esm/app.vscode.js +37 -0
  102. package/lib-esm/app.vscode.js.map +1 -0
  103. package/lib-esm/cli.d.ts +1 -0
  104. package/lib-esm/cli.js +4 -0
  105. package/lib-esm/cli.js.map +1 -0
  106. package/lib-esm/index.d.ts +3 -0
  107. package/lib-esm/index.js +4 -0
  108. package/lib-esm/index.js.map +1 -0
  109. package/lib-esm/lib/build-info._auto-generated_.d.ts +24 -0
  110. package/lib-esm/lib/build-info._auto-generated_.js +27 -0
  111. package/lib-esm/lib/build-info._auto-generated_.js.map +1 -0
  112. package/lib-esm/lib/env/env.angular-node-app.d.ts +67 -0
  113. package/lib-esm/lib/env/env.angular-node-app.js +137 -0
  114. package/lib-esm/lib/env/env.angular-node-app.js.map +1 -0
  115. package/lib-esm/lib/env/env.docs-webapp.d.ts +67 -0
  116. package/lib-esm/lib/env/env.docs-webapp.js +137 -0
  117. package/lib-esm/lib/env/env.docs-webapp.js.map +1 -0
  118. package/lib-esm/lib/env/env.electron-app.d.ts +67 -0
  119. package/lib-esm/lib/env/env.electron-app.js +137 -0
  120. package/lib-esm/lib/env/env.electron-app.js.map +1 -0
  121. package/lib-esm/lib/env/env.mobile-app.d.ts +67 -0
  122. package/lib-esm/lib/env/env.mobile-app.js +137 -0
  123. package/lib-esm/lib/env/env.mobile-app.js.map +1 -0
  124. package/lib-esm/lib/env/env.npm-lib-and-cli-tool.d.ts +67 -0
  125. package/lib-esm/lib/env/env.npm-lib-and-cli-tool.js +137 -0
  126. package/lib-esm/lib/env/env.npm-lib-and-cli-tool.js.map +1 -0
  127. package/lib-esm/lib/env/env.vscode-plugin.d.ts +67 -0
  128. package/lib-esm/lib/env/env.vscode-plugin.js +137 -0
  129. package/lib-esm/lib/env/env.vscode-plugin.js.map +1 -0
  130. package/lib-esm/lib/env/index.d.ts +6 -0
  131. package/lib-esm/lib/env/index.js +7 -0
  132. package/lib-esm/lib/env/index.js.map +1 -0
  133. package/lib-esm/lib/index._auto-generated_.d.ts +8 -0
  134. package/lib-esm/lib/index._auto-generated_.js +17 -0
  135. package/lib-esm/lib/index._auto-generated_.js.map +1 -0
  136. package/lib-esm/lib/index.d.ts +4 -0
  137. package/lib-esm/lib/index.js +4 -0
  138. package/lib-esm/lib/index.js.map +1 -0
  139. package/lib-esm/lib/start-cli.d.ts +7 -0
  140. package/lib-esm/lib/start-cli.js +45 -0
  141. package/lib-esm/lib/start-cli.js.map +1 -0
  142. package/lib-esm/lib/translation-manager.d.ts +33 -0
  143. package/lib-esm/lib/translation-manager.js +115 -0
  144. package/lib-esm/lib/translation-manager.js.map +1 -0
  145. package/lib-esm/lib/translation.d.ts +43 -0
  146. package/lib-esm/lib/translation.js +249 -0
  147. package/lib-esm/lib/translation.js.map +1 -0
  148. package/lib-esm/lib/translation.models.d.ts +25 -0
  149. package/lib-esm/lib/translation.models.js +2 -0
  150. package/lib-esm/lib/translation.models.js.map +1 -0
  151. package/lib-esm/lib/utils-i18n-extract-gettext-translate-from-html.d.ts +4 -0
  152. package/lib-esm/lib/utils-i18n-extract-gettext-translate-from-html.js +462 -0
  153. package/lib-esm/lib/utils-i18n-extract-gettext-translate-from-html.js.map +1 -0
  154. package/lib-esm/lib/utils-i18n-extract-gettext-translate-from-html.test.d.ts +1 -0
  155. package/lib-esm/lib/utils-i18n-extract-gettext-translate-from-html.test.js +280 -0
  156. package/lib-esm/lib/utils-i18n-extract-gettext-translate-from-html.test.js.map +1 -0
  157. package/lib-esm/lib/utils-i18n-html.d.ts +5 -0
  158. package/lib-esm/lib/utils-i18n-html.js +122 -0
  159. package/lib-esm/lib/utils-i18n-html.js.map +1 -0
  160. package/lib-esm/lib/utils-i18n-html.test.d.ts +1 -0
  161. package/lib-esm/lib/utils-i18n-html.test.js +145 -0
  162. package/lib-esm/lib/utils-i18n-html.test.js.map +1 -0
  163. package/lib-esm/lib/utils-po-file.d.ts +8 -0
  164. package/lib-esm/lib/utils-po-file.js +242 -0
  165. package/lib-esm/lib/utils-po-file.js.map +1 -0
  166. package/lib-esm/lib/utils-po-file.test.d.ts +1 -0
  167. package/lib-esm/lib/utils-po-file.test.js +237 -0
  168. package/lib-esm/lib/utils-po-file.test.js.map +1 -0
  169. package/lib-prod/build-info._auto-generated_.d.ts +24 -0
  170. package/lib-prod/build-info._auto-generated_.js +27 -0
  171. package/lib-prod/build-info._auto-generated_.js.map +1 -0
  172. package/lib-prod/env/env.angular-node-app.d.ts +67 -0
  173. package/lib-prod/env/env.angular-node-app.js +137 -0
  174. package/lib-prod/env/env.angular-node-app.js.map +1 -0
  175. package/lib-prod/env/env.docs-webapp.d.ts +67 -0
  176. package/lib-prod/env/env.docs-webapp.js +137 -0
  177. package/lib-prod/env/env.docs-webapp.js.map +1 -0
  178. package/lib-prod/env/env.electron-app.d.ts +67 -0
  179. package/lib-prod/env/env.electron-app.js +137 -0
  180. package/lib-prod/env/env.electron-app.js.map +1 -0
  181. package/lib-prod/env/env.mobile-app.d.ts +67 -0
  182. package/lib-prod/env/env.mobile-app.js +137 -0
  183. package/lib-prod/env/env.mobile-app.js.map +1 -0
  184. package/lib-prod/env/env.npm-lib-and-cli-tool.d.ts +67 -0
  185. package/lib-prod/env/env.npm-lib-and-cli-tool.js +137 -0
  186. package/lib-prod/env/env.npm-lib-and-cli-tool.js.map +1 -0
  187. package/lib-prod/env/env.vscode-plugin.d.ts +67 -0
  188. package/lib-prod/env/env.vscode-plugin.js +137 -0
  189. package/lib-prod/env/env.vscode-plugin.js.map +1 -0
  190. package/lib-prod/env/index.d.ts +6 -0
  191. package/lib-prod/env/index.js +7 -0
  192. package/lib-prod/env/index.js.map +1 -0
  193. package/lib-prod/index._auto-generated_.d.ts +8 -0
  194. package/lib-prod/index._auto-generated_.js +17 -0
  195. package/lib-prod/index._auto-generated_.js.map +1 -0
  196. package/lib-prod/index.d.ts +4 -0
  197. package/lib-prod/index.js +4 -0
  198. package/lib-prod/index.js.map +1 -0
  199. package/lib-prod/package.json +1 -1
  200. package/lib-prod/start-cli.d.ts +7 -0
  201. package/lib-prod/start-cli.js +45 -0
  202. package/lib-prod/start-cli.js.map +1 -0
  203. package/lib-prod/translation-manager.d.ts +33 -0
  204. package/lib-prod/translation-manager.js +115 -0
  205. package/lib-prod/translation-manager.js.map +1 -0
  206. package/lib-prod/translation.d.ts +43 -0
  207. package/lib-prod/translation.js +249 -0
  208. package/lib-prod/translation.js.map +1 -0
  209. package/lib-prod/translation.models.d.ts +25 -0
  210. package/lib-prod/translation.models.js +2 -0
  211. package/lib-prod/translation.models.js.map +1 -0
  212. package/lib-prod/utils-i18n-extract-gettext-translate-from-html.d.ts +2 -0
  213. package/lib-prod/utils-i18n-extract-gettext-translate-from-html.js +460 -0
  214. package/lib-prod/utils-i18n-extract-gettext-translate-from-html.js.map +1 -0
  215. package/lib-prod/utils-i18n-extract-gettext-translate-from-html.test.d.ts +1 -0
  216. package/lib-prod/utils-i18n-extract-gettext-translate-from-html.test.js +280 -0
  217. package/lib-prod/utils-i18n-extract-gettext-translate-from-html.test.js.map +1 -0
  218. package/lib-prod/utils-i18n-html.d.ts +3 -0
  219. package/lib-prod/utils-i18n-html.js +119 -0
  220. package/lib-prod/utils-i18n-html.js.map +1 -0
  221. package/lib-prod/utils-i18n-html.test.d.ts +1 -0
  222. package/lib-prod/utils-i18n-html.test.js +145 -0
  223. package/lib-prod/utils-i18n-html.test.js.map +1 -0
  224. package/lib-prod/utils-po-file.d.ts +6 -0
  225. package/lib-prod/utils-po-file.js +236 -0
  226. package/lib-prod/utils-po-file.js.map +1 -0
  227. package/lib-prod/utils-po-file.test.d.ts +1 -0
  228. package/lib-prod/utils-po-file.test.js +237 -0
  229. package/lib-prod/utils-po-file.test.js.map +1 -0
  230. package/lib-prod.re-export.json +1 -0
  231. package/lib-prod.split-namespaces.json +28 -0
  232. package/package.json +1 -1
  233. package/scss/app/main-page/main-page.container.scss +3 -0
  234. package/scss/global.scss +94 -0
  235. package/scss/index.scss +2 -0
  236. package/scss/lib/index.scss +2 -0
  237. package/scss/vars.scss +7 -0
  238. package/src.js +4 -0
  239. package/websql/README.md +24 -0
  240. package/websql/fesm2022/i18n-websql.mjs +1567 -0
  241. package/websql/fesm2022/i18n-websql.mjs.map +1 -0
  242. package/websql/package.json +20 -1
  243. package/websql/types/i18n-websql.d.ts +195 -0
  244. package/websql-prod/README.md +24 -0
  245. package/websql-prod/fesm2022/i18n-websql-prod.mjs +1556 -0
  246. package/websql-prod/fesm2022/i18n-websql-prod.mjs.map +1 -0
  247. package/websql-prod/package.json +20 -2
  248. package/websql-prod/types/i18n-websql-prod.d.ts +189 -0
  249. package/websql-prod.re-export.json +1 -0
  250. package/websql-prod.split-namespaces.json +28 -0
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "name": "@taon-dev/i18n/lib-prod",
3
- "version": "21.0.20"
3
+ "version": "21.0.22"
4
4
  }
@@ -0,0 +1,7 @@
1
+ /**
2
+ *
3
+ * @param argsv process.argsv
4
+ * @param filename needed if you want ipc communicaiton
5
+ */
6
+ export declare function startCli(argsv: string[], filename: string): Promise<void>;
7
+ export default startCli;
@@ -0,0 +1,45 @@
1
+ //#region tnp-helpers cli template
2
+ // import { CoreModels } from 'tnp-core/src';
3
+ // import { Helpers, BaseCommandLineFeature } from 'tnp-helpers/src';
4
+ // import { BaseProject, BaseStartConfig } from 'tnp-helpers/src'; // @backend
5
+ // class $Global extends BaseCommandLineFeature<{}> {
6
+ // static [CoreModels.ClassNameStaticProperty] = '';
7
+ // public _() {
8
+ // console.log(`Hello world from cli`);
9
+ // this._exit();
10
+ // }
11
+ // }
12
+ //#endregion
13
+ /**
14
+ *
15
+ * @param argsv process.argsv
16
+ * @param filename needed if you want ipc communicaiton
17
+ */
18
+ export async function startCli(argsv, filename) {
19
+ //#region @backendFunc
20
+ console.log('Hello from cli');
21
+ // console.log({ argsv });
22
+ // process.exit(0);
23
+ //#region start config
24
+ // new BaseStartConfig({
25
+ // ProjectClass: BaseProject,
26
+ // functionsOrClasses: [
27
+ // {
28
+ // classOrFnName: '$Version',
29
+ // funcOrClass: $Global,
30
+ // },
31
+ // ],
32
+ // argsv,
33
+ // useStringArrForArgsFunctions: true,
34
+ // shortArgsReplaceConfig: {
35
+ // v: 'version',
36
+ // },
37
+ // callbackNotRecognizedCommand: async () => {
38
+ // Helpers.error(`Command not recognized`, false, true);
39
+ // },
40
+ // });
41
+ //#endregion
42
+ //#endregion
43
+ }
44
+ export default startCli;
45
+ //# sourceMappingURL=start-cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start-cli.js","sourceRoot":"","sources":[""],"names":[],"mappings":"AAAA,kCAAkC;AAClC,6CAA6C;AAC7C,qEAAqE;AACrE,8EAA8E;AAE9E,qDAAqD;AACrD,sDAAsD;AACtD,iBAAiB;AACjB,2CAA2C;AAC3C,oBAAoB;AACpB,MAAM;AACN,IAAI;AACJ,YAAY;AAEZ;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,KAAe,EACf,QAAgB;IAEhB,sBAAsB;IACtB,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC9B,0BAA0B;IAC1B,mBAAmB;IAEnB,sBAAsB;IACtB,wBAAwB;IACxB,+BAA+B;IAC/B,0BAA0B;IAC1B,QAAQ;IACR,mCAAmC;IACnC,8BAA8B;IAC9B,SAAS;IACT,OAAO;IACP,WAAW;IACX,wCAAwC;IACxC,8BAA8B;IAC9B,oBAAoB;IACpB,OAAO;IACP,gDAAgD;IAChD,4DAA4D;IAC5D,OAAO;IACP,MAAM;IACN,YAAY;IACZ,YAAY;AACd,CAAC;AAED,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { UtilsI18n__NS__CommonLocaleCode, UtilsI18n__NS__LangOption } from 'tnp-core/lib-prod';
2
+ import type { Translation } from './translation';
3
+ export declare class TranslationManager {
4
+ instances: Set<Translation>;
5
+ constructor();
6
+ private defaultLangLocale;
7
+ private _currentGlobalLanguage;
8
+ get currentGlobalLanguage(): UtilsI18n__NS__CommonLocaleCode;
9
+ set currentGlobalLanguage(v: UtilsI18n__NS__CommonLocaleCode);
10
+ private currentGlobalLanguageSrc;
11
+ readonly currentGlobalLanguage$: import("rxjs").Observable<"pl-PL" | "en-US" | "en-GB" | "de-DE" | "fr-FR" | "es-ES" | "zh-CN">;
12
+ availableLangs: UtilsI18n__NS__LangOption[];
13
+ private availableLangsSrc;
14
+ readonly availableLangs$: import("rxjs").Observable<UtilsI18n__NS__LangOption[]>;
15
+ _visibleLanguages: UtilsI18n__NS__CommonLocaleCode[];
16
+ get visibleLanguages(): UtilsI18n__NS__CommonLocaleCode[];
17
+ set visibleLanguages(v: UtilsI18n__NS__CommonLocaleCode[]);
18
+ private visibleLanguagesSrc;
19
+ readonly visibleLanguages$: import("rxjs").Observable<("pl-PL" | "en-US" | "en-GB" | "de-DE" | "fr-FR" | "es-ES" | "zh-CN")[]>;
20
+ /**
21
+ * TODO
22
+ */
23
+ private loadingLangsSubjectSrc;
24
+ /**
25
+ * TODO
26
+ */
27
+ readonly isLoadingLangs$: import("rxjs").Observable<boolean>;
28
+ private static _instance;
29
+ static get Instance(): TranslationManager;
30
+ readonly pernamentLanguage: UtilsI18n__NS__CommonLocaleCode | null;
31
+ setOneLanguagePernament(lang: UtilsI18n__NS__CommonLocaleCode): void;
32
+ changeGlobalLang(lang: UtilsI18n__NS__CommonLocaleCode): Promise<void>;
33
+ }
@@ -0,0 +1,115 @@
1
+ //#region import
2
+ import { BehaviorSubject, map, tap } from 'rxjs';
3
+ import { GlobalStorage, ___NS__cloneDeep, UtilsI18n__NS__defaultLangLocale, UtilsI18n__NS__LangOptionArr } from 'tnp-core/lib-prod';
4
+ //#endregion
5
+ //#region constants
6
+ const globalStorageKeyMainLanguage = 'taon-gettext-main-language';
7
+ const globalTaonLanguageLocalKeyLocalStor = 'taon-language-local';
8
+ //#endregion
9
+ export class TranslationManager {
10
+ instances = new Set();
11
+ constructor() {
12
+ // console.log(`[i18] Default lang: ${this.defaultLangLocale}`);
13
+ }
14
+ //#region current global language
15
+ defaultLangLocale = (() => {
16
+ /* */
17
+ /* */
18
+ /* */
19
+ /* */
20
+ /* */
21
+ /* */
22
+ /* */
23
+ return UtilsI18n__NS__defaultLangLocale;
24
+ })();
25
+ _currentGlobalLanguage = this
26
+ .defaultLangLocale;
27
+ get currentGlobalLanguage() {
28
+ return this._currentGlobalLanguage;
29
+ }
30
+ set currentGlobalLanguage(v) {
31
+ this._currentGlobalLanguage = v;
32
+ this.currentGlobalLanguageSrc.next(v);
33
+ }
34
+ currentGlobalLanguageSrc = new BehaviorSubject(this.currentGlobalLanguage);
35
+ currentGlobalLanguage$ = this.currentGlobalLanguageSrc
36
+ .asObservable()
37
+ .pipe(tap(currentGlobalLanguage => {
38
+ GlobalStorage.set(globalStorageKeyMainLanguage, currentGlobalLanguage);
39
+ // console.log(`Update from subject ${currentGlobalLanguage}`);
40
+ }));
41
+ //#endregion
42
+ //#region available langs
43
+ availableLangs = ___NS__cloneDeep(UtilsI18n__NS__LangOptionArr);
44
+ availableLangsSrc = new BehaviorSubject(this.availableLangs);
45
+ availableLangs$ = this.availableLangsSrc.asObservable().pipe(map(f => {
46
+ if (this.visibleLanguages.length > 0) {
47
+ // console.log('Filtering langs')
48
+ return f.filter(a => this.visibleLanguages.includes(a.code));
49
+ }
50
+ return f;
51
+ }));
52
+ //#endregion
53
+ //#region visible langs
54
+ _visibleLanguages = [];
55
+ get visibleLanguages() {
56
+ return this._visibleLanguages;
57
+ }
58
+ set visibleLanguages(v) {
59
+ if (this.pernamentLanguage) {
60
+ v = v.filter(a => [this.pernamentLanguage].includes(a));
61
+ }
62
+ this._visibleLanguages = v;
63
+ this.visibleLanguagesSrc.next(v);
64
+ this.availableLangsSrc.next(this.availableLangs);
65
+ }
66
+ visibleLanguagesSrc = new BehaviorSubject(this.visibleLanguages);
67
+ visibleLanguages$ = this.visibleLanguagesSrc.asObservable();
68
+ //#endregion
69
+ //#region loading langs subject
70
+ /**
71
+ * TODO
72
+ */
73
+ loadingLangsSubjectSrc = new BehaviorSubject(false);
74
+ /**
75
+ * TODO
76
+ */
77
+ isLoadingLangs$ = this.loadingLangsSubjectSrc.asObservable();
78
+ //#endregion
79
+ //#region global singleton
80
+ static _instance;
81
+ static get Instance() {
82
+ if (!this._instance) {
83
+ this._instance = new TranslationManager();
84
+ }
85
+ return this._instance;
86
+ }
87
+ //#endregion
88
+ pernamentLanguage = null;
89
+ setOneLanguagePernament(lang) {
90
+ console.info(`Setting pernament language to ${lang}`);
91
+ if (this.pernamentLanguage) {
92
+ console.log('You are trying to set again pernament language');
93
+ return;
94
+ }
95
+ this.visibleLanguages = [lang];
96
+ // @ts-ignore
97
+ this.pernamentLanguage = lang;
98
+ void this.changeGlobalLang(lang);
99
+ }
100
+ //#region change global lang
101
+ async changeGlobalLang(lang) {
102
+ this.loadingLangsSubjectSrc.next(true);
103
+ this.currentGlobalLanguage = lang;
104
+ localStorage.setItem(globalTaonLanguageLocalKeyLocalStor, lang);
105
+ try {
106
+ await Promise.all([...this.instances].map(c => c.useGlobalFileLang(lang)));
107
+ }
108
+ catch (error) {
109
+ console.error(error);
110
+ }
111
+ this.loadingLangsSubjectSrc.next(false);
112
+ // console.info('Done changing language');
113
+ }
114
+ }
115
+ //# sourceMappingURL=translation-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"translation-manager.js","sourceRoot":"","sources":[""],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ import { WritableSignal } from '@angular/core';
2
+ import { Observable } from 'rxjs';
3
+ import { UtilsI18n__NS__CommonLocaleCode } from 'tnp-core/lib-prod';
4
+ import { TranslationManager } from './translation-manager';
5
+ import { TaonTranslationsMapImport, TranslationParams } from './translation.models';
6
+ export declare class Translation {
7
+ protected fileRelativePath: string;
8
+ protected localFileLang: UtilsI18n__NS__CommonLocaleCode;
9
+ protected langImportMap: TaonTranslationsMapImport;
10
+ debug: boolean;
11
+ static manager: TranslationManager;
12
+ static for(fileRelativePath: string, langImportMap: TaonTranslationsMapImport, opt?: {
13
+ debug?: boolean;
14
+ }): Translation;
15
+ private lookup;
16
+ private readonly loadingSubjectSrc;
17
+ readonly isLoadingLang$: Observable<boolean>;
18
+ private loading?;
19
+ private loadedLang?;
20
+ private readonly bindings;
21
+ private useGlobalLangFile;
22
+ private constructor();
23
+ for(_classThis: object): Translation;
24
+ changeFileLang(lang: UtilsI18n__NS__CommonLocaleCode): Promise<void>;
25
+ useGlobalFileLang(lang: UtilsI18n__NS__CommonLocaleCode): Promise<void>;
26
+ gettext: (text: string, params?: TranslationParams, context?: string) => string;
27
+ private createSignal;
28
+ readonly signal: {
29
+ gettext: (text: string, params?: TranslationParams, context?: string) => WritableSignal<string>;
30
+ };
31
+ private createObservable;
32
+ readonly $: {
33
+ gettext: (text: string, params?: TranslationParams, context?: string) => Observable<string>;
34
+ };
35
+ private refreshBindings;
36
+ translate(text: string, params?: TranslationParams, context?: string): string;
37
+ private gettextWithoutEnsureLoaded;
38
+ private load;
39
+ private ensureLoaded;
40
+ private createLookup;
41
+ private key;
42
+ private interpolate;
43
+ }
@@ -0,0 +1,249 @@
1
+ //#region imports
2
+ import { signal, } from '@angular/core';
3
+ import { BehaviorSubject } from 'rxjs';
4
+ import { ___NS__isObject } from 'tnp-core/lib-prod';
5
+ import { TranslationManager } from './translation-manager';
6
+ //#endregion
7
+ //#region translation class
8
+ export class Translation {
9
+ fileRelativePath;
10
+ localFileLang;
11
+ langImportMap;
12
+ debug;
13
+ static manager = TranslationManager.Instance;
14
+ //#region static for
15
+ static for(fileRelativePath, langImportMap, opt) {
16
+ opt = opt || {};
17
+ return new Translation(fileRelativePath, Translation.manager.currentGlobalLanguage, langImportMap, !!opt.debug);
18
+ }
19
+ //#endregion
20
+ //#region fields
21
+ /* */
22
+ /* */
23
+ /* */
24
+ lookup = {};
25
+ loadingSubjectSrc = new BehaviorSubject(false);
26
+ isLoadingLang$ = this.loadingSubjectSrc.asObservable();
27
+ loading;
28
+ loadedLang;
29
+ bindings = new Set();
30
+ useGlobalLangFile = true;
31
+ //#endregion
32
+ //#region constructor
33
+ constructor(fileRelativePath, localFileLang, langImportMap, debug = false) {
34
+ this.fileRelativePath = fileRelativePath;
35
+ this.localFileLang = localFileLang;
36
+ this.langImportMap = langImportMap;
37
+ this.debug = debug;
38
+ if (!Translation.manager.instances.has(this)) {
39
+ Translation.manager.instances.add(this);
40
+ }
41
+ }
42
+ //#endregion
43
+ //#region for
44
+ for(_classThis) {
45
+ /* */
46
+ /* */
47
+ /* */
48
+ /* */
49
+ /* */
50
+ /* */
51
+ /* */
52
+ /* */
53
+ /* */
54
+ /* */
55
+ void this.ensureLoaded();
56
+ return this;
57
+ }
58
+ //#endregion
59
+ //#region change file lang
60
+ async changeFileLang(lang) {
61
+ this.useGlobalLangFile = false;
62
+ this.localFileLang = lang;
63
+ await this.ensureLoaded(true);
64
+ /* */
65
+ /* */
66
+ }
67
+ //#endregion
68
+ //#region use global file lang
69
+ async useGlobalFileLang(lang) {
70
+ this.useGlobalLangFile = true;
71
+ await this.ensureLoaded(true);
72
+ /* */
73
+ /* */
74
+ }
75
+ //#endregion
76
+ //#region gettext
77
+ gettext = (text, params, context = '') => {
78
+ const key = this.key(text, context);
79
+ const translated = this.lookup[key] ?? text;
80
+ this.debug &&
81
+ console.log(`Translate (with load): "${text}" to "${translated}", key="${key}" params:${___NS__isObject(params) ? JSON.stringify(params) : params} ` +
82
+ `localFileLang: ${this.localFileLang}`, this);
83
+ return this.interpolate(translated, params);
84
+ };
85
+ //#endregion
86
+ //#region signal
87
+ createSignal(text, params, context = '') {
88
+ const s = signal(this.gettext(text, params, context));
89
+ this.bindings.add({
90
+ text,
91
+ params,
92
+ context,
93
+ update: value => s.set(value),
94
+ });
95
+ return s;
96
+ }
97
+ signal = {
98
+ gettext: (text, params, context) => this.createSignal(text, params, context),
99
+ };
100
+ //#endregion
101
+ //#region $ obserable
102
+ createObservable(text, params, context = '') {
103
+ const subject = new BehaviorSubject(this.gettext(text, params, context));
104
+ this.bindings.add({
105
+ text,
106
+ params,
107
+ context,
108
+ update: value => subject.next(value),
109
+ });
110
+ return subject.asObservable();
111
+ }
112
+ $ = {
113
+ gettext: (text, params, context) => this.createObservable(text, params, context),
114
+ };
115
+ //#endregion
116
+ //#region private methods / refresh bindings
117
+ refreshBindings() {
118
+ for (const binding of this.bindings) {
119
+ binding.update(this.gettextWithoutEnsureLoaded(binding.text, binding.params, binding.context ?? ''));
120
+ }
121
+ }
122
+ //#endregion
123
+ //#region private methods / gettextwithout ensure loadded
124
+ translate(text, params, context = '') {
125
+ return this.gettextWithoutEnsureLoaded(text, params, context);
126
+ }
127
+ gettextWithoutEnsureLoaded(text, params, context = '') {
128
+ const key = this.key(text, context);
129
+ const translated = this.lookup[key] ?? text;
130
+ this.debug &&
131
+ console.log(`Translate (no load): "${text}" to "${translated}", key="${key}" params:${___NS__isObject(params) ? JSON.stringify(params) : params} ` +
132
+ `localFileLang: ${this.localFileLang}`, this);
133
+ return this.interpolate(translated, params);
134
+ }
135
+ //#endregion
136
+ //#region private methods / load
137
+ async load() {
138
+ this.loadingSubjectSrc.next(true);
139
+ const files = [];
140
+ const filesForTArr = Object.keys(this.langImportMap);
141
+ for (const fileRelativePath of filesForTArr) {
142
+ try {
143
+ const loader = this.langImportMap[fileRelativePath]?.[this.localFileLang];
144
+ if (!loader) {
145
+ continue;
146
+ }
147
+ const modOrFile = await loader();
148
+ const file = modOrFile.default ?? modOrFile;
149
+ files.push(file);
150
+ }
151
+ catch (err) {
152
+ console.log(`[taon-i18n] Error loading language file ${fileRelativePath} `, err);
153
+ }
154
+ }
155
+ this.loadedLang = this.localFileLang;
156
+ this.lookup = this.createLookup(files);
157
+ this.debug && console.log(`${this.localFileLang}`, files, this.lookup);
158
+ this.refreshBindings();
159
+ /* */
160
+ /* */
161
+ this.loadingSubjectSrc.next(false);
162
+ }
163
+ //#endregion
164
+ //#region private methods / ensure loaded
165
+ async ensureLoaded(force = false) {
166
+ if (this.useGlobalLangFile) {
167
+ this.localFileLang = Translation.manager.currentGlobalLanguage;
168
+ }
169
+ if (!force && this.loadedLang === this.localFileLang) {
170
+ return;
171
+ }
172
+ if (!force && this.loading) {
173
+ return this.loading;
174
+ }
175
+ this.loading = this.load();
176
+ try {
177
+ await this.loading;
178
+ }
179
+ finally {
180
+ this.loading = undefined;
181
+ }
182
+ }
183
+ //#endregion
184
+ //#region private methods / create lookup
185
+ createLookup(files) {
186
+ const lookup = {};
187
+ for (const file of files) {
188
+ for (const tag of file.tags ?? []) {
189
+ if (!tag.translation)
190
+ continue;
191
+ lookup[this.key(tag.gettextString, tag.context ?? '')] =
192
+ tag.translation;
193
+ }
194
+ }
195
+ return lookup;
196
+ }
197
+ //#endregion
198
+ //#region private methods / key
199
+ key(text, context = '') {
200
+ return `${context}\u0004${text}`;
201
+ }
202
+ //#endregion
203
+ //#region private methods / interpolate
204
+ interpolate(text, params) {
205
+ if (!params)
206
+ return text;
207
+ const result = text.replace(/\[\[\s*([a-zA-Z0-9_$]+)\s*\]\]/g, (_, key) => {
208
+ const value = params[key];
209
+ return value === undefined || value === null ? '' : String(value);
210
+ });
211
+ return result;
212
+ }
213
+ }
214
+ //#endregion
215
+ //#region EXMAPLE
216
+ /*
217
+ // import {Translation} from 'taon'
218
+
219
+ const t = Translation.for(Taon.__FILE_RELATIVE_PATH, Taon.LANG_IMPORT_MAP); // in runtime replaced with proper stuff
220
+
221
+ t.gettext('asdasd');
222
+
223
+ class AnyAngularOrTaonClass {
224
+ t = t.for(this); // probably only usefull for cdr in angular
225
+
226
+ isLoading$ = t.isLoadingLang$; // maybe needed sometime
227
+
228
+ refreshableSignalLabel$ = t.signal.gettext(t.gettext('welcome'));
229
+
230
+ refreshableRxjsLabel$ = t.$.gettext('amazing better place'); // probably even better
231
+
232
+ asdsa = this.t.gettext(
233
+ // just sugar syntax
234
+ 'This is mamazing',
235
+ {
236
+ asdasd: 'asd',
237
+ },
238
+ 'asdas',
239
+ );
240
+
241
+ ngOnInit(): void {
242
+ //Called after the constructor, initializing input properties, and the first call to ngOnChanges.
243
+ //Add 'implements OnInit' to the class.
244
+ const lable = t.gettext('hello');
245
+ }
246
+ }
247
+ */
248
+ //#endregion
249
+ //# sourceMappingURL=translation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"translation.js","sourceRoot":"","sources":[""],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { UtilsI18n__NS__CommonLocaleCode, UtilsI18n__NS__GettextFile } from 'tnp-core/lib-prod';
2
+ import type { Translation } from './translation';
3
+ export type TranslationLookup = Record<string, string>;
4
+ export type TranslationParams = Record<string, unknown> | null;
5
+ type FileRelativeLocation = string;
6
+ export type TaonTranslationsMapImport = Record<FileRelativeLocation, {
7
+ [lang in UtilsI18n__NS__CommonLocaleCode]?: () => Promise<UtilsI18n__NS__GettextFile>;
8
+ }>;
9
+ /**
10
+ * Searching all tags with each gettext probably not a good idea.. maybe some
11
+ * kind of object/map can be created/use
12
+ */
13
+ export type TaonTranslationsMap = Record<FileRelativeLocation, {
14
+ [lang in UtilsI18n__NS__CommonLocaleCode]?: UtilsI18n__NS__GettextFile;
15
+ }>;
16
+ export interface TranslationBinding {
17
+ text: string;
18
+ params?: TranslationParams;
19
+ context?: string;
20
+ update(value: string): void;
21
+ }
22
+ export interface Translatable {
23
+ t: Translation;
24
+ }
25
+ export {};
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=translation.models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"translation.models.js","sourceRoot":"","sources":[""],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ import { UtilsI18n__NS__GettextExtracted } from 'tnp-core/lib-prod';
2
+ export declare function UtilsI18nExtractGettextTranslateFromHtml__NS__extractGettextTranslateFromHtml(html: string, fileName?: string): UtilsI18n__NS__GettextExtracted[];