@taon-dev/i18n 21.0.7 → 21.0.16

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 (251) hide show
  1. package/bin/start.js +37 -37
  2. package/browser/package.json +1 -20
  3. package/browser-prod/package.json +2 -20
  4. package/lib/package.json +1 -1
  5. package/lib-prod/package.json +1 -1
  6. package/package.json +1 -1
  7. package/websql/package.json +1 -20
  8. package/websql-prod/package.json +2 -20
  9. package/VERIFIED-BUILD-DATA.jsonc +0 -5
  10. package/assets/shared/shared_folder_info.txt +0 -7
  11. package/browser/README.md +0 -24
  12. package/browser/fesm2022/i18n-browser.mjs +0 -1556
  13. package/browser/fesm2022/i18n-browser.mjs.map +0 -1
  14. package/browser/types/i18n-browser.d.ts +0 -194
  15. package/browser-prod/README.md +0 -24
  16. package/browser-prod/fesm2022/i18n-browser-prod.mjs +0 -1545
  17. package/browser-prod/fesm2022/i18n-browser-prod.mjs.map +0 -1
  18. package/browser-prod/types/i18n-browser-prod.d.ts +0 -188
  19. package/browser-prod.re-export.json +0 -1
  20. package/browser-prod.split-namespaces.json +0 -28
  21. package/cli.d.ts +0 -1
  22. package/cli.js +0 -8
  23. package/cli.js.map +0 -1
  24. package/html/app/main-page/main-page.container.html +0 -4
  25. package/html/assets/generated/pwa/html-pwa.html +0 -60
  26. package/html/imports.html +0 -3
  27. package/index.d.ts +0 -3
  28. package/index.js +0 -20
  29. package/index.js.map +0 -1
  30. package/lib/build-info._auto-generated_.d.ts +0 -24
  31. package/lib/build-info._auto-generated_.js +0 -30
  32. package/lib/build-info._auto-generated_.js.map +0 -1
  33. package/lib/env/env.angular-node-app.d.ts +0 -67
  34. package/lib/env/env.angular-node-app.js +0 -141
  35. package/lib/env/env.angular-node-app.js.map +0 -1
  36. package/lib/env/env.docs-webapp.d.ts +0 -67
  37. package/lib/env/env.docs-webapp.js +0 -141
  38. package/lib/env/env.docs-webapp.js.map +0 -1
  39. package/lib/env/env.electron-app.d.ts +0 -67
  40. package/lib/env/env.electron-app.js +0 -141
  41. package/lib/env/env.electron-app.js.map +0 -1
  42. package/lib/env/env.mobile-app.d.ts +0 -67
  43. package/lib/env/env.mobile-app.js +0 -141
  44. package/lib/env/env.mobile-app.js.map +0 -1
  45. package/lib/env/env.npm-lib-and-cli-tool.d.ts +0 -67
  46. package/lib/env/env.npm-lib-and-cli-tool.js +0 -141
  47. package/lib/env/env.npm-lib-and-cli-tool.js.map +0 -1
  48. package/lib/env/env.vscode-plugin.d.ts +0 -67
  49. package/lib/env/env.vscode-plugin.js +0 -141
  50. package/lib/env/env.vscode-plugin.js.map +0 -1
  51. package/lib/env/index.d.ts +0 -6
  52. package/lib/env/index.js +0 -23
  53. package/lib/env/index.js.map +0 -1
  54. package/lib/index._auto-generated_.d.ts +0 -11
  55. package/lib/index._auto-generated_.js +0 -33
  56. package/lib/index._auto-generated_.js.map +0 -1
  57. package/lib/index.d.ts +0 -4
  58. package/lib/index.js +0 -20
  59. package/lib/index.js.map +0 -1
  60. package/lib/start-cli.d.ts +0 -7
  61. package/lib/start-cli.js +0 -48
  62. package/lib/start-cli.js.map +0 -1
  63. package/lib/translate.directive.d.ts +0 -15
  64. package/lib/translate.pipe.d.ts +0 -10
  65. package/lib/translate.service.d.ts +0 -13
  66. package/lib/translation-manager.d.ts +0 -33
  67. package/lib/translation-manager.js +0 -119
  68. package/lib/translation-manager.js.map +0 -1
  69. package/lib/translation.d.ts +0 -44
  70. package/lib/translation.js +0 -253
  71. package/lib/translation.js.map +0 -1
  72. package/lib/translation.models.d.ts +0 -25
  73. package/lib/translation.models.js +0 -3
  74. package/lib/translation.models.js.map +0 -1
  75. package/lib/utils-i18n-extract-gettext-translate-from-html.d.ts +0 -4
  76. package/lib/utils-i18n-extract-gettext-translate-from-html.js +0 -465
  77. package/lib/utils-i18n-extract-gettext-translate-from-html.js.map +0 -1
  78. package/lib/utils-i18n-extract-gettext-translate-from-html.test.d.ts +0 -1
  79. package/lib/utils-i18n-extract-gettext-translate-from-html.test.js +0 -282
  80. package/lib/utils-i18n-extract-gettext-translate-from-html.test.js.map +0 -1
  81. package/lib/utils-i18n-html.d.ts +0 -5
  82. package/lib/utils-i18n-html.js +0 -120
  83. package/lib/utils-i18n-html.js.map +0 -1
  84. package/lib/utils-i18n-html.test.d.ts +0 -1
  85. package/lib/utils-i18n-html.test.js +0 -82
  86. package/lib/utils-i18n-html.test.js.map +0 -1
  87. package/lib/utils-po-file.d.ts +0 -8
  88. package/lib/utils-po-file.js +0 -245
  89. package/lib/utils-po-file.js.map +0 -1
  90. package/lib/utils-po-file.test.d.ts +0 -1
  91. package/lib/utils-po-file.test.js +0 -239
  92. package/lib/utils-po-file.test.js.map +0 -1
  93. package/lib-esm/app/main-page/main-page.active.context.d.ts +0 -19
  94. package/lib-esm/app/main-page/main-page.active.context.js +0 -19
  95. package/lib-esm/app/main-page/main-page.active.context.js.map +0 -1
  96. package/lib-esm/app.d.ts +0 -3
  97. package/lib-esm/app.electron.d.ts +0 -1
  98. package/lib-esm/app.electron.js +0 -2
  99. package/lib-esm/app.electron.js.map +0 -1
  100. package/lib-esm/app.hosts.d.ts +0 -147
  101. package/lib-esm/app.hosts.js +0 -217
  102. package/lib-esm/app.hosts.js.map +0 -1
  103. package/lib-esm/app.js +0 -460
  104. package/lib-esm/app.js.map +0 -1
  105. package/lib-esm/app.vscode.d.ts +0 -9
  106. package/lib-esm/app.vscode.js +0 -37
  107. package/lib-esm/app.vscode.js.map +0 -1
  108. package/lib-esm/cli.d.ts +0 -1
  109. package/lib-esm/cli.js +0 -4
  110. package/lib-esm/cli.js.map +0 -1
  111. package/lib-esm/index.d.ts +0 -3
  112. package/lib-esm/index.js +0 -4
  113. package/lib-esm/index.js.map +0 -1
  114. package/lib-esm/lib/build-info._auto-generated_.d.ts +0 -24
  115. package/lib-esm/lib/build-info._auto-generated_.js +0 -27
  116. package/lib-esm/lib/build-info._auto-generated_.js.map +0 -1
  117. package/lib-esm/lib/env/env.angular-node-app.d.ts +0 -67
  118. package/lib-esm/lib/env/env.angular-node-app.js +0 -137
  119. package/lib-esm/lib/env/env.angular-node-app.js.map +0 -1
  120. package/lib-esm/lib/env/env.docs-webapp.d.ts +0 -67
  121. package/lib-esm/lib/env/env.docs-webapp.js +0 -137
  122. package/lib-esm/lib/env/env.docs-webapp.js.map +0 -1
  123. package/lib-esm/lib/env/env.electron-app.d.ts +0 -67
  124. package/lib-esm/lib/env/env.electron-app.js +0 -137
  125. package/lib-esm/lib/env/env.electron-app.js.map +0 -1
  126. package/lib-esm/lib/env/env.mobile-app.d.ts +0 -67
  127. package/lib-esm/lib/env/env.mobile-app.js +0 -137
  128. package/lib-esm/lib/env/env.mobile-app.js.map +0 -1
  129. package/lib-esm/lib/env/env.npm-lib-and-cli-tool.d.ts +0 -67
  130. package/lib-esm/lib/env/env.npm-lib-and-cli-tool.js +0 -137
  131. package/lib-esm/lib/env/env.npm-lib-and-cli-tool.js.map +0 -1
  132. package/lib-esm/lib/env/env.vscode-plugin.d.ts +0 -67
  133. package/lib-esm/lib/env/env.vscode-plugin.js +0 -137
  134. package/lib-esm/lib/env/env.vscode-plugin.js.map +0 -1
  135. package/lib-esm/lib/env/index.d.ts +0 -6
  136. package/lib-esm/lib/env/index.js +0 -7
  137. package/lib-esm/lib/env/index.js.map +0 -1
  138. package/lib-esm/lib/index._auto-generated_.d.ts +0 -8
  139. package/lib-esm/lib/index._auto-generated_.js +0 -17
  140. package/lib-esm/lib/index._auto-generated_.js.map +0 -1
  141. package/lib-esm/lib/index.d.ts +0 -4
  142. package/lib-esm/lib/index.js +0 -4
  143. package/lib-esm/lib/index.js.map +0 -1
  144. package/lib-esm/lib/start-cli.d.ts +0 -7
  145. package/lib-esm/lib/start-cli.js +0 -45
  146. package/lib-esm/lib/start-cli.js.map +0 -1
  147. package/lib-esm/lib/translation-manager.d.ts +0 -33
  148. package/lib-esm/lib/translation-manager.js +0 -115
  149. package/lib-esm/lib/translation-manager.js.map +0 -1
  150. package/lib-esm/lib/translation.d.ts +0 -43
  151. package/lib-esm/lib/translation.js +0 -249
  152. package/lib-esm/lib/translation.js.map +0 -1
  153. package/lib-esm/lib/translation.models.d.ts +0 -25
  154. package/lib-esm/lib/translation.models.js +0 -2
  155. package/lib-esm/lib/translation.models.js.map +0 -1
  156. package/lib-esm/lib/utils-i18n-extract-gettext-translate-from-html.d.ts +0 -4
  157. package/lib-esm/lib/utils-i18n-extract-gettext-translate-from-html.js +0 -462
  158. package/lib-esm/lib/utils-i18n-extract-gettext-translate-from-html.js.map +0 -1
  159. package/lib-esm/lib/utils-i18n-extract-gettext-translate-from-html.test.d.ts +0 -1
  160. package/lib-esm/lib/utils-i18n-extract-gettext-translate-from-html.test.js +0 -280
  161. package/lib-esm/lib/utils-i18n-extract-gettext-translate-from-html.test.js.map +0 -1
  162. package/lib-esm/lib/utils-i18n-html.d.ts +0 -5
  163. package/lib-esm/lib/utils-i18n-html.js +0 -117
  164. package/lib-esm/lib/utils-i18n-html.js.map +0 -1
  165. package/lib-esm/lib/utils-i18n-html.test.d.ts +0 -1
  166. package/lib-esm/lib/utils-i18n-html.test.js +0 -80
  167. package/lib-esm/lib/utils-i18n-html.test.js.map +0 -1
  168. package/lib-esm/lib/utils-po-file.d.ts +0 -8
  169. package/lib-esm/lib/utils-po-file.js +0 -242
  170. package/lib-esm/lib/utils-po-file.js.map +0 -1
  171. package/lib-esm/lib/utils-po-file.test.d.ts +0 -1
  172. package/lib-esm/lib/utils-po-file.test.js +0 -237
  173. package/lib-esm/lib/utils-po-file.test.js.map +0 -1
  174. package/lib-prod/build-info._auto-generated_.d.ts +0 -24
  175. package/lib-prod/build-info._auto-generated_.js +0 -27
  176. package/lib-prod/build-info._auto-generated_.js.map +0 -1
  177. package/lib-prod/env/env.angular-node-app.d.ts +0 -67
  178. package/lib-prod/env/env.angular-node-app.js +0 -137
  179. package/lib-prod/env/env.angular-node-app.js.map +0 -1
  180. package/lib-prod/env/env.docs-webapp.d.ts +0 -67
  181. package/lib-prod/env/env.docs-webapp.js +0 -137
  182. package/lib-prod/env/env.docs-webapp.js.map +0 -1
  183. package/lib-prod/env/env.electron-app.d.ts +0 -67
  184. package/lib-prod/env/env.electron-app.js +0 -137
  185. package/lib-prod/env/env.electron-app.js.map +0 -1
  186. package/lib-prod/env/env.mobile-app.d.ts +0 -67
  187. package/lib-prod/env/env.mobile-app.js +0 -137
  188. package/lib-prod/env/env.mobile-app.js.map +0 -1
  189. package/lib-prod/env/env.npm-lib-and-cli-tool.d.ts +0 -67
  190. package/lib-prod/env/env.npm-lib-and-cli-tool.js +0 -137
  191. package/lib-prod/env/env.npm-lib-and-cli-tool.js.map +0 -1
  192. package/lib-prod/env/env.vscode-plugin.d.ts +0 -67
  193. package/lib-prod/env/env.vscode-plugin.js +0 -137
  194. package/lib-prod/env/env.vscode-plugin.js.map +0 -1
  195. package/lib-prod/env/index.d.ts +0 -6
  196. package/lib-prod/env/index.js +0 -7
  197. package/lib-prod/env/index.js.map +0 -1
  198. package/lib-prod/index._auto-generated_.d.ts +0 -8
  199. package/lib-prod/index._auto-generated_.js +0 -17
  200. package/lib-prod/index._auto-generated_.js.map +0 -1
  201. package/lib-prod/index.d.ts +0 -4
  202. package/lib-prod/index.js +0 -4
  203. package/lib-prod/index.js.map +0 -1
  204. package/lib-prod/start-cli.d.ts +0 -7
  205. package/lib-prod/start-cli.js +0 -45
  206. package/lib-prod/start-cli.js.map +0 -1
  207. package/lib-prod/translation-manager.d.ts +0 -33
  208. package/lib-prod/translation-manager.js +0 -115
  209. package/lib-prod/translation-manager.js.map +0 -1
  210. package/lib-prod/translation.d.ts +0 -43
  211. package/lib-prod/translation.js +0 -249
  212. package/lib-prod/translation.js.map +0 -1
  213. package/lib-prod/translation.models.d.ts +0 -25
  214. package/lib-prod/translation.models.js +0 -2
  215. package/lib-prod/translation.models.js.map +0 -1
  216. package/lib-prod/utils-i18n-extract-gettext-translate-from-html.d.ts +0 -2
  217. package/lib-prod/utils-i18n-extract-gettext-translate-from-html.js +0 -460
  218. package/lib-prod/utils-i18n-extract-gettext-translate-from-html.js.map +0 -1
  219. package/lib-prod/utils-i18n-extract-gettext-translate-from-html.test.d.ts +0 -1
  220. package/lib-prod/utils-i18n-extract-gettext-translate-from-html.test.js +0 -280
  221. package/lib-prod/utils-i18n-extract-gettext-translate-from-html.test.js.map +0 -1
  222. package/lib-prod/utils-i18n-html.d.ts +0 -3
  223. package/lib-prod/utils-i18n-html.js +0 -114
  224. package/lib-prod/utils-i18n-html.js.map +0 -1
  225. package/lib-prod/utils-i18n-html.test.d.ts +0 -1
  226. package/lib-prod/utils-i18n-html.test.js +0 -80
  227. package/lib-prod/utils-i18n-html.test.js.map +0 -1
  228. package/lib-prod/utils-po-file.d.ts +0 -6
  229. package/lib-prod/utils-po-file.js +0 -236
  230. package/lib-prod/utils-po-file.js.map +0 -1
  231. package/lib-prod/utils-po-file.test.d.ts +0 -1
  232. package/lib-prod/utils-po-file.test.js +0 -237
  233. package/lib-prod/utils-po-file.test.js.map +0 -1
  234. package/lib-prod.re-export.json +0 -1
  235. package/lib-prod.split-namespaces.json +0 -28
  236. package/scss/app/main-page/main-page.container.scss +0 -3
  237. package/scss/global.scss +0 -94
  238. package/scss/index.scss +0 -2
  239. package/scss/lib/index.scss +0 -2
  240. package/scss/vars.scss +0 -7
  241. package/src.js +0 -4
  242. package/websql/README.md +0 -24
  243. package/websql/fesm2022/i18n-websql.mjs +0 -1556
  244. package/websql/fesm2022/i18n-websql.mjs.map +0 -1
  245. package/websql/types/i18n-websql.d.ts +0 -194
  246. package/websql-prod/README.md +0 -24
  247. package/websql-prod/fesm2022/i18n-websql-prod.mjs +0 -1545
  248. package/websql-prod/fesm2022/i18n-websql-prod.mjs.map +0 -1
  249. package/websql-prod/types/i18n-websql-prod.d.ts +0 -188
  250. package/websql-prod.re-export.json +0 -1
  251. package/websql-prod.split-namespaces.json +0 -28
@@ -1,282 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const utils_i18n_html_1 = require("./utils-i18n-html");
4
- describe('UtilsI18nHtml.extractFromHtml', () => {
5
- it('extracts element with translate attribute', () => {
6
- const html = `
7
- <span translate>
8
- You have errors in this form. Please click 'Edit incorrect data' to jump to the section and input correct data.
9
- </span>
10
- `;
11
- expect(utils_i18n_html_1.UtilsI18nHtml.extractGettextTranslateFromHtml(html)).toEqual([
12
- {
13
- lineNumber: 2,
14
- gettextString: "You have errors in this form. Please click 'Edit incorrect data' to jump to the section and input correct data.",
15
- // params: null,
16
- context: undefined,
17
- },
18
- ]);
19
- });
20
- it('extracts translate attribute with translate params', () => {
21
- const html = `
22
- <p
23
- *ngSwitchDefault
24
- translate
25
- [translate-params]="{
26
- size: dialogData.applicationsOidsToRemove.length
27
- }"
28
- >
29
- Do you want to remove [[ size ]] applications?
30
- </p>
31
- `;
32
- expect(utils_i18n_html_1.UtilsI18nHtml.extractGettextTranslateFromHtml(html)).toEqual([
33
- {
34
- lineNumber: 2,
35
- gettextString: 'Do you want to remove [[ size ]] applications?',
36
- // params: {
37
- // size: 'dialogData.applicationsOidsToRemove.length',
38
- // },
39
- context: undefined,
40
- },
41
- ]);
42
- });
43
- it('extracts static strings from conditional translate pipe', () => {
44
- const html = `
45
- <span>{{ row.cutOffAtDaymax ? 'Yes' : 'No' | translate }}</span>
46
- `;
47
- expect(utils_i18n_html_1.UtilsI18nHtml.extractGettextTranslateFromHtml(html).map(m => m.gettextString)).toEqual(['No']);
48
- });
49
- it('extracts both strings when translate pipe wraps conditional expression', () => {
50
- const html = `
51
- <span>{{ (row.cutOffAtDaymax ? 'Yes' : 'No') | translate }}</span>
52
- `;
53
- expect(utils_i18n_html_1.UtilsI18nHtml.extractGettextTranslateFromHtml(html).map(m => m.gettextString)).toEqual(['Yes', 'No']);
54
- });
55
- it('skips variable-only translate pipe', () => {
56
- const html = `
57
- <input placeholder="{{ repsTextFilterPlaceholder | translate }}">
58
- `;
59
- expect(utils_i18n_html_1.UtilsI18nHtml.extractGettextTranslateFromHtml(html)).toEqual([]);
60
- });
61
- it('extracts static string translate pipe', () => {
62
- const html = `
63
- <span>{{ 'something to tranlaste ' | translate }}</span>
64
- `;
65
- expect(utils_i18n_html_1.UtilsI18nHtml.extractGettextTranslateFromHtml(html)).toEqual([
66
- {
67
- lineNumber: 2,
68
- gettextString: 'something to tranlaste',
69
- // params: null,
70
- context: undefined,
71
- },
72
- ]);
73
- });
74
- });
75
- describe('UtilsI18nHtml.extractGettextTranslateFromHtml - t.gettext()', () => {
76
- it('extracts simple t.gettext from interpolation', () => {
77
- const html = `
78
- <span>{{ t.gettext('translation-app works!') }}</span>
79
- `;
80
- expect(utils_i18n_html_1.UtilsI18nHtml.extractGettextTranslateFromHtml(html)).toEqual([
81
- {
82
- lineNumber: 2,
83
- gettextString: 'translation-app works!',
84
- // params: null,
85
- context: undefined,
86
- },
87
- ]);
88
- });
89
- it('extracts t.gettext with null params and context', () => {
90
- const html = `
91
- <span>{{ t.gettext('translation-app works!', null, 'context jakis') }}</span>
92
- `;
93
- expect(utils_i18n_html_1.UtilsI18nHtml.extractGettextTranslateFromHtml(html)).toEqual([
94
- {
95
- lineNumber: 2,
96
- gettextString: 'translation-app works!',
97
- // params: null,
98
- context: 'context jakis',
99
- },
100
- ]);
101
- });
102
- it('extracts t.gettext with params and context', () => {
103
- const html = `
104
- <span>{{ t.gettext('heloo [[ aa ]]!', { aa: somethingFromComponent }, 'context jakis') }}</span>
105
- `;
106
- expect(utils_i18n_html_1.UtilsI18nHtml.extractGettextTranslateFromHtml(html)).toEqual([
107
- {
108
- lineNumber: 2,
109
- gettextString: 'heloo [[ aa ]]!',
110
- // params: null,
111
- context: 'context jakis',
112
- },
113
- ]);
114
- });
115
- it('extracts multiple gettext calls from one interpolation', () => {
116
- const html = `
117
- <span>{{ t.gettext('Yes') + ' / ' + t.gettext('No') }}</span>
118
- `;
119
- expect(utils_i18n_html_1.UtilsI18nHtml.extractGettextTranslateFromHtml(html).map(x => x.gettextString)).toEqual(['Yes', 'No']);
120
- });
121
- it('extracts nested property chain ending with gettext', () => {
122
- const html = `
123
- <span>{{ something.deep.t.gettext('Deep hello') }}</span>
124
- `;
125
- expect(utils_i18n_html_1.UtilsI18nHtml.extractGettextTranslateFromHtml(html)).toEqual([
126
- {
127
- lineNumber: 2,
128
- gettextString: 'Deep hello',
129
- // params: null,
130
- context: undefined,
131
- },
132
- ]);
133
- });
134
- it('skips dynamic gettext string', () => {
135
- const html = `
136
- <span>{{ t.gettext(dynamicLabel) }}</span>
137
- `;
138
- expect(utils_i18n_html_1.UtilsI18nHtml.extractGettextTranslateFromHtml(html)).toEqual([]);
139
- });
140
- it('extracts gettext with double quotes', () => {
141
- const html = `
142
- <span>{{ t.gettext("Double quote text") }}</span>
143
- `;
144
- expect(utils_i18n_html_1.UtilsI18nHtml.extractGettextTranslateFromHtml(html)).toEqual([
145
- {
146
- lineNumber: 2,
147
- gettextString: 'Double quote text',
148
- // params: null,
149
- context: undefined,
150
- },
151
- ]);
152
- });
153
- it('extracts gettext with backticks without interpolation', () => {
154
- const html = `
155
- <span>{{ t.gettext(\`Backtick text\`) }}</span>
156
- `;
157
- expect(utils_i18n_html_1.UtilsI18nHtml.extractGettextTranslateFromHtml(html)).toEqual([
158
- {
159
- lineNumber: 2,
160
- gettextString: 'Backtick text',
161
- // params: null,
162
- context: undefined,
163
- },
164
- ]);
165
- });
166
- it('should extract select lang', () => {
167
- const html = `<span>{{ t.gettext('Select Language') }}</span>`;
168
- expect(utils_i18n_html_1.UtilsI18nHtml.extractGettextTranslateFromHtml(html)).toEqual([
169
- {
170
- lineNumber: 1,
171
- gettextString: 'Select Language',
172
- // params: null,
173
- context: undefined,
174
- },
175
- ]);
176
- });
177
- it('should extract trasnlated please wait', () => {
178
- const html = `
179
- <div class="p-4">
180
- <h3 class="w-full" translate>Please wait...</h3>
181
- <mat-progress-bar mode="indeterminate" />
182
- </div>
183
- `;
184
- expect(utils_i18n_html_1.UtilsI18nHtml.extractGettextTranslateFromHtml(html)).toEqual([
185
- {
186
- lineNumber: 3,
187
- gettextString: 'Please wait...',
188
- // params: null,
189
- context: undefined,
190
- },
191
- ]);
192
- });
193
- it('should extract file with angular syntax', () => {
194
- const html = `
195
-
196
-
197
- @if (stateService.isLoadingVideos$ | async) {
198
- <div class="p-4">
199
- <h3 class="w-full" translate >Please wait...</h3>
200
- <mat-progress-bar mode="indeterminate" />
201
- </div>
202
- }
203
-
204
- `;
205
- expect(utils_i18n_html_1.UtilsI18nHtml.extractGettextTranslateFromHtml(html).length).be.above(0);
206
- });
207
- it('should extract file with angular block syntax', () => {
208
- const html = `
209
- @if (stateService.isLoadingVideos$ | async) {
210
- <div class="p-4">
211
- <h3 class="w-full" translate>Please wait...</h3>
212
- <mat-progress-bar mode="indeterminate" />
213
- </div>
214
- }
215
- `;
216
- expect(utils_i18n_html_1.UtilsI18nHtml.extractGettextTranslateFromHtml(html)).toEqual([
217
- {
218
- lineNumber: 4,
219
- gettextString: 'Please wait...',
220
- context: undefined,
221
- },
222
- ]);
223
- });
224
- it('should extract when new angula syntax', () => {
225
- const html = `
226
- @for (vid of section.children; track vid.productId) {
227
- @let isLoggedIn = session.isLoggedIn$ | async;
228
- @let isProcessing =
229
- processingPaymentInProgressForProductId.includes(vid.parentId);
230
- @let isAuthorized = authorizedSectionsId.includes(vid.parentId);
231
- @let title =
232
- isProcessing
233
- ? t.gettext('Processing Payment. Please wait.')
234
- : vid.productTitle;
235
-
236
- <div class="col-span-12 p-2 md:col-span-6 lg:col-span-4">
237
- <h4 class="mt-0 md:hidden">
238
- {{ title }}
239
- </h4>
240
-
241
- <h4
242
- class="mt-0 hidden w-full min-w-0 overflow-hidden text-ellipsis whitespace-nowrap md:block">
243
- {{ title }}
244
- </h4>
245
-
246
- <taon-youtube-video
247
- [videoId]="vid.productId"
248
- [matTooltip]="vid.productTitle"
249
- height="222px"
250
- [state]="
251
- isLoggedIn && isAuthorized
252
- ? 'video-preview-private'
253
- : 'preview-picture-locked'
254
- "
255
- (paddlockClicked)="isLoggedIn ? confirmBuy(vid) : paddlockClicked()">
256
- </taon-youtube-video>
257
-
258
- <br /><br />
259
- </div>
260
- }
261
- `;
262
- expect(utils_i18n_html_1.UtilsI18nHtml.extractGettextTranslateFromHtml(html).length).to.be.above(0);
263
- });
264
- it('should not extract when translate inside class name', () => {
265
- const html = `
266
- <button
267
- mat-icon-button
268
- class="absolute right-4 top-1/2 z-20 -translate-y-1/2 text-white"
269
- (click)="next()">
270
- <mat-icon>chevron_right</mat-icon>
271
- </button>
272
- `;
273
- expect(utils_i18n_html_1.UtilsI18nHtml.extractGettextTranslateFromHtml(html).length).to.be.eq(0);
274
- });
275
- // it('skips gettext with template interpolation', () => {
276
- // const html = `
277
- // <span>{{ t.gettext(\`Hello \${name}\`) }}</span>
278
- // `;
279
- // expect(UtilsI18nHtml.extractGettextTranslateFromHtml(html)).toEqual([]);
280
- // });
281
- });
282
- //# sourceMappingURL=utils-i18n-extract-gettext-translate-from-html.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils-i18n-extract-gettext-translate-from-html.test.js","sourceRoot":"","sources":[""],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- import { UtilsI18n } from 'tnp-core';
2
- export declare namespace UtilsI18nHtml {
3
- function extractGettextTranslateFromHtml(html: string, fileName?: string): UtilsI18n.GettextExtracted[];
4
- function replaceTranslatePipieDirectiveTContext(html: string): string;
5
- }
@@ -1,120 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.UtilsI18nHtml = void 0;
4
- //#region imports
5
- const compiler_1 = require("@angular/compiler");
6
- const utils_i18n_extract_gettext_translate_from_html_1 = require("./utils-i18n-extract-gettext-translate-from-html");
7
- //#endregion
8
- var UtilsI18nHtml;
9
- (function (UtilsI18nHtml) {
10
- function extractGettextTranslateFromHtml(html, fileName = 'template.html') {
11
- return utils_i18n_extract_gettext_translate_from_html_1.UtilsI18nExtractGettextTranslateFromHtml.extractGettextTranslateFromHtml(html, fileName);
12
- }
13
- UtilsI18nHtml.extractGettextTranslateFromHtml = extractGettextTranslateFromHtml;
14
- function replaceTranslatePipieDirectiveTContext(html) {
15
- //#region @backendFunc
16
- const edits = [];
17
- let parsedSuccessfully = false;
18
- try {
19
- const parsed = (0, compiler_1.parseTemplate)(html, 'template.html', {
20
- preserveWhitespaces: true,
21
- });
22
- parsedSuccessfully = true;
23
- const visit = (node) => {
24
- if (hasTranslateDirective(node) && !hasTranslateTInput(node)) {
25
- const opening = node.startSourceSpan?.toString?.();
26
- if (opening) {
27
- const start = node.startSourceSpan.start.offset;
28
- const insertAt = findOpenTagInsertPosition(html, start, opening.length);
29
- if (insertAt !== -1) {
30
- edits.push({
31
- index: insertAt,
32
- text: ` [translate-t]="t"`,
33
- });
34
- }
35
- }
36
- }
37
- for (const child of node.children ?? []) {
38
- visit(child);
39
- }
40
- };
41
- for (const node of parsed.nodes) {
42
- visit(node);
43
- }
44
- }
45
- catch {
46
- // fallback below
47
- }
48
- if (!parsedSuccessfully) {
49
- edits.push(...findTranslateDirectiveEditsFromSource(html));
50
- }
51
- let result = applyEdits(html, edits);
52
- result = result.replace(/\|\s*translate(?!\s*:)(?=[\s)}\]"';<]|$)/g, '| translate:t');
53
- return result;
54
- //#endregion
55
- }
56
- UtilsI18nHtml.replaceTranslatePipieDirectiveTContext = replaceTranslatePipieDirectiveTContext;
57
- function findTranslateDirectiveEditsFromSource(html) {
58
- //#region @backendFunc
59
- const edits = [];
60
- const tagRegex = /<([a-zA-Z0-9-]+)\b(?=[^>]*(?:\s|^|<)translate(?:\s|=|>|\/))[^>]*>/g;
61
- for (const match of html.matchAll(tagRegex)) {
62
- const tag = match[0];
63
- const start = match.index ?? 0;
64
- if (/\[translate-t\]\s*=/.test(tag) || /\btranslateT\b/.test(tag)) {
65
- continue;
66
- }
67
- const closeIndex = tag.lastIndexOf('>');
68
- if (closeIndex === -1)
69
- continue;
70
- const beforeClose = tag.slice(0, closeIndex);
71
- const insertAt = beforeClose.trimEnd().endsWith('/')
72
- ? start + beforeClose.lastIndexOf('/')
73
- : start + closeIndex;
74
- edits.push({
75
- index: insertAt,
76
- text: ` [translate-t]="t"`,
77
- });
78
- }
79
- return edits;
80
- //#endregion
81
- }
82
- function hasTranslateDirective(node) {
83
- //#region @backendFunc
84
- return [...(node.attributes ?? []), ...(node.templateAttrs ?? [])].some((attr) => attr.name === 'translate');
85
- //#endregion
86
- }
87
- function hasTranslateTInput(node) {
88
- //#region @backendFunc
89
- return [
90
- ...(node.inputs ?? []),
91
- ...(node.templateAttrs ?? []),
92
- ...(node.attributes ?? []),
93
- ].some((attr) => attr.name === 'translate-t' || attr.name === 'translateT');
94
- //#endregion
95
- }
96
- function findOpenTagInsertPosition(html, start, length) {
97
- //#region @backendFunc
98
- const end = start + length;
99
- const openingTag = html.slice(start, end);
100
- const closeIndex = openingTag.lastIndexOf('>');
101
- if (closeIndex === -1)
102
- return -1;
103
- const beforeClose = openingTag.slice(0, closeIndex);
104
- if (beforeClose.trimEnd().endsWith('/')) {
105
- return start + beforeClose.lastIndexOf('/');
106
- }
107
- return start + closeIndex;
108
- //#endregion
109
- }
110
- function applyEdits(input, edits) {
111
- //#region @backendFunc
112
- return [...edits]
113
- .sort((a, b) => b.index - a.index)
114
- .reduce((acc, edit) => {
115
- return acc.slice(0, edit.index) + edit.text + acc.slice(edit.index);
116
- }, input);
117
- //#endregion
118
- }
119
- })(UtilsI18nHtml || (exports.UtilsI18nHtml = UtilsI18nHtml = {}));
120
- //# sourceMappingURL=utils-i18n-html.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils-i18n-html.js","sourceRoot":"","sources":[""],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,82 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const utils_i18n_html_1 = require("./utils-i18n-html");
4
- describe('UtilsI18nHtml.replaceTranslatePipieDirectiveTContext', () => {
5
- it('adds translate-t to translate directive', () => {
6
- const html = `
7
- <p translate>
8
- translation-app works!
9
- </p>
10
- `;
11
- expect(utils_i18n_html_1.UtilsI18nHtml.replaceTranslatePipieDirectiveTContext(html)).toContain(`<p translate [translate-t]="t">`);
12
- });
13
- it('does not duplicate translate-t', () => {
14
- const html = `
15
- <p translate [translate-t]="t">
16
- translation-app works!
17
- </p>
18
- `;
19
- expect(utils_i18n_html_1.UtilsI18nHtml.replaceTranslatePipieDirectiveTContext(html)).toBe(html);
20
- });
21
- it('adds t to translate pipe', () => {
22
- const html = `
23
- {{ 'translation-app works!' | translate }}
24
- `;
25
- expect(utils_i18n_html_1.UtilsI18nHtml.replaceTranslatePipieDirectiveTContext(html)).toContain(`{{ 'translation-app works!' | translate:t }}`);
26
- });
27
- it('does not modify translate pipe with existing args', () => {
28
- const html = `
29
- {{ 'translation-app works!' | translate:t }}
30
- {{ 'hello' | translate:t:{ a: 1 } }}
31
- `;
32
- expect(utils_i18n_html_1.UtilsI18nHtml.replaceTranslatePipieDirectiveTContext(html)).toBe(html);
33
- });
34
- it('handles directive and pipe together', () => {
35
- const html = `
36
- <code>
37
- <p
38
- translate>
39
- translation-app works!
40
- </p>
41
- </code>
42
- TRANSLATE PIPIE<br />
43
- <code> {{ 'translation-app works!' | translate }} </code>
44
- `;
45
- const result = utils_i18n_html_1.UtilsI18nHtml.replaceTranslatePipieDirectiveTContext(html);
46
- expect(result).toContain(`translate [translate-t]="t">`);
47
- expect(result).toContain(`| translate:t`);
48
- });
49
- it('handles self closing tags', () => {
50
- const html = `<input translate />`;
51
- expect(utils_i18n_html_1.UtilsI18nHtml.replaceTranslatePipieDirectiveTContext(html)).toBe(`<input translate [translate-t]="t"/>`);
52
- });
53
- it('Should handle angular stuff', () => {
54
- const html = `
55
-
56
- <ng-template #loadingVideos>
57
- @if (stateService.isLoadingVideos$ | async) {
58
- <div class="p-4">
59
- <h3
60
- class="w-full"
61
- translate>
62
- Please wait...
63
- </h3>
64
- <mat-progress-bar mode="indeterminate" />
65
- </div>
66
- }
67
- </ng-template>
68
-
69
- `;
70
- expect(utils_i18n_html_1.UtilsI18nHtml.replaceTranslatePipieDirectiveTContext(html)).to.includes(`[translate-t]="t"`);
71
- });
72
- it('Should not replace when in class', () => {
73
- const html = ` <button
74
- mat-icon-button
75
- class="absolute right-4 top-1/2 z-20 -translate-y-1/2 text-white"
76
- (click)="next()">
77
- <mat-icon>chevron_right</mat-icon>
78
- </button>`;
79
- expect(utils_i18n_html_1.UtilsI18nHtml.replaceTranslatePipieDirectiveTContext(html)).to.be.eq(html);
80
- });
81
- });
82
- //# sourceMappingURL=utils-i18n-html.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils-i18n-html.test.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;AAAA,uDAAkD;AAElD,QAAQ,CAAC,sDAAsD,EAAE,GAAG,EAAE;IACpE,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,IAAI,GAAG;;;;CAIhB,CAAC;QAEE,MAAM,CACJ,+BAAa,CAAC,sCAAsC,CAAC,IAAI,CAAC,CAC3D,CAAC,SAAS,CAAC,iCAAiC,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,IAAI,GAAG;;;;CAIhB,CAAC;QAEE,MAAM,CAAC,+BAAa,CAAC,sCAAsC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CACrE,IAAI,CACL,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;QAClC,MAAM,IAAI,GAAG;;CAEhB,CAAC;QAEE,MAAM,CACJ,+BAAa,CAAC,sCAAsC,CAAC,IAAI,CAAC,CAC3D,CAAC,SAAS,CAAC,8CAA8C,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,IAAI,GAAG;;;CAGhB,CAAC;QAEE,MAAM,CAAC,+BAAa,CAAC,sCAAsC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CACrE,IAAI,CACL,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,IAAI,GAAG;;;;;;;;;CAShB,CAAC;QAEE,MAAM,MAAM,GAAG,+BAAa,CAAC,sCAAsC,CAAC,IAAI,CAAC,CAAC;QAE1E,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAAC;QACzD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,MAAM,IAAI,GAAG,qBAAqB,CAAC;QAEnC,MAAM,CAAC,+BAAa,CAAC,sCAAsC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CACrE,uCAAuC,CACxC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACrC,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;KAeZ,CAAC;QAEF,MAAM,CACJ,+BAAa,CAAC,sCAAsC,CAAC,IAAI,CAAC,CAC3D,CAAC,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,IAAI,GAAG;;;;;YAKL,CAAC;QAET,MAAM,CAAC,+BAAa,CAAC,sCAAsC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CACzE,IAAI,CACL,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,8 +0,0 @@
1
- import { UtilsI18n } from 'tnp-core';
2
- export declare namespace UtilsPoFile {
3
- function generatePoFiles(files: UtilsI18n.GettextFile[], locales: UtilsI18n.CommonLocaleCode[], destinationAbsFolderPath: string): void;
4
- function generatePoFileContent(files: UtilsI18n.GettextFile[], locale: UtilsI18n.CommonLocaleCode): string;
5
- function extractPoToJson(poFileContent: string): UtilsI18n.GettextFile[];
6
- function generateTranslationOverrideInterface(file: UtilsI18n.GettextFile, interfaceName: string, locale: UtilsI18n.CommonLocaleCode): string;
7
- function mergeGettextFile(jsonContent1FromTsHtml: UtilsI18n.GettextFile, json2ContentFromPoFileModifedByUser?: UtilsI18n.GettextFile | null): UtilsI18n.GettextFile;
8
- }