@prosopo/locale 3.9.1 → 3.10.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 (409) hide show
  1. package/.turbo/turbo-build$colon$cjs.log +266 -13
  2. package/.turbo/turbo-build$colon$tsc.log +5 -5
  3. package/.turbo/turbo-build.log +266 -13
  4. package/CHANGELOG.md +42 -0
  5. package/README.md +203 -0
  6. package/dist/browserUiLanguages.d.ts +10 -0
  7. package/dist/browserUiLanguages.d.ts.map +1 -0
  8. package/dist/browserUiLanguages.js +768 -0
  9. package/dist/browserUiLanguages.js.map +1 -0
  10. package/dist/cjs/browserUiLanguages.cjs +768 -0
  11. package/dist/cjs/direction.cjs +30 -15
  12. package/dist/cjs/errorMessage.cjs +3 -2
  13. package/dist/cjs/i18SharedOptions.cjs +0 -1
  14. package/dist/cjs/i18nBackend.cjs +33 -20
  15. package/dist/cjs/i18nFrontend.cjs +23 -73
  16. package/dist/cjs/index.cjs +23 -2
  17. package/dist/cjs/languagePreference.cjs +142 -0
  18. package/dist/cjs/loadI18next.cjs +4 -4
  19. package/dist/cjs/locales/en/target.cjs +304 -0
  20. package/dist/cjs/locales/en/translation.cjs +1 -459
  21. package/dist/cjs/locales/en/widget.cjs +162 -0
  22. package/dist/cjs/requestLanguageDetector.cjs +24 -0
  23. package/dist/cjs/serverTranslationKeys.cjs +38 -0
  24. package/dist/cjs/translationKey.cjs +29 -7
  25. package/dist/cjs/translations.cjs +63 -2
  26. package/dist/cjs/translator.cjs +2 -1
  27. package/dist/direction.d.ts.map +1 -1
  28. package/dist/direction.js +30 -15
  29. package/dist/direction.js.map +1 -1
  30. package/dist/errorMessage.d.ts.map +1 -1
  31. package/dist/errorMessage.js +4 -3
  32. package/dist/errorMessage.js.map +1 -1
  33. package/dist/i18SharedOptions.d.ts +0 -1
  34. package/dist/i18SharedOptions.d.ts.map +1 -1
  35. package/dist/i18SharedOptions.js +0 -1
  36. package/dist/i18SharedOptions.js.map +1 -1
  37. package/dist/i18nBackend.d.ts +3 -1
  38. package/dist/i18nBackend.d.ts.map +1 -1
  39. package/dist/i18nBackend.js +32 -22
  40. package/dist/i18nBackend.js.map +1 -1
  41. package/dist/i18nFrontend.d.ts.map +1 -1
  42. package/dist/i18nFrontend.js +23 -73
  43. package/dist/i18nFrontend.js.map +1 -1
  44. package/dist/index.d.ts +8 -3
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/index.js +5 -2
  47. package/dist/index.js.map +1 -1
  48. package/dist/languagePreference.d.ts +17 -0
  49. package/dist/languagePreference.d.ts.map +1 -0
  50. package/dist/languagePreference.js +132 -0
  51. package/dist/languagePreference.js.map +1 -0
  52. package/dist/loadI18next.js +4 -4
  53. package/dist/locales/af/target.json +301 -0
  54. package/dist/locales/af/translation.json +71 -0
  55. package/dist/locales/af/widget.json +149 -0
  56. package/dist/locales/am/target.json +301 -0
  57. package/dist/locales/am/translation.json +71 -0
  58. package/dist/locales/am/widget.json +149 -0
  59. package/dist/locales/an/target.json +301 -0
  60. package/dist/locales/an/translation.json +71 -0
  61. package/dist/locales/an/widget.json +149 -0
  62. package/dist/locales/ar/target.json +301 -0
  63. package/dist/locales/ar/translation.json +0 -446
  64. package/dist/locales/ar/widget.json +149 -0
  65. package/dist/locales/as/target.json +301 -0
  66. package/dist/locales/as/translation.json +71 -0
  67. package/dist/locales/as/widget.json +149 -0
  68. package/dist/locales/ast/target.json +301 -0
  69. package/dist/locales/ast/translation.json +71 -0
  70. package/dist/locales/ast/widget.json +149 -0
  71. package/dist/locales/az/target.json +301 -0
  72. package/dist/locales/az/translation.json +0 -446
  73. package/dist/locales/az/widget.json +149 -0
  74. package/dist/locales/be/target.json +301 -0
  75. package/dist/locales/be/translation.json +71 -0
  76. package/dist/locales/be/widget.json +149 -0
  77. package/dist/locales/bg/target.json +301 -0
  78. package/dist/locales/bg/translation.json +71 -0
  79. package/dist/locales/bg/widget.json +149 -0
  80. package/dist/locales/bn/target.json +301 -0
  81. package/dist/locales/bn/translation.json +71 -0
  82. package/dist/locales/bn/widget.json +149 -0
  83. package/dist/locales/bs/target.json +301 -0
  84. package/dist/locales/bs/translation.json +71 -0
  85. package/dist/locales/bs/widget.json +149 -0
  86. package/dist/locales/ca/target.json +301 -0
  87. package/dist/locales/ca/translation.json +71 -0
  88. package/dist/locales/ca/widget.json +149 -0
  89. package/dist/locales/cs/target.json +301 -0
  90. package/dist/locales/cs/translation.json +0 -446
  91. package/dist/locales/cs/widget.json +149 -0
  92. package/dist/locales/cy/target.json +301 -0
  93. package/dist/locales/cy/translation.json +71 -0
  94. package/dist/locales/cy/widget.json +149 -0
  95. package/dist/locales/da/target.json +301 -0
  96. package/dist/locales/da/translation.json +71 -0
  97. package/dist/locales/da/widget.json +149 -0
  98. package/dist/locales/de/target.json +301 -0
  99. package/dist/locales/de/translation.json +0 -446
  100. package/dist/locales/de/widget.json +149 -0
  101. package/dist/locales/el/target.json +301 -0
  102. package/dist/locales/el/translation.json +0 -446
  103. package/dist/locales/el/widget.json +149 -0
  104. package/dist/locales/en/target.js +303 -0
  105. package/dist/locales/en/target.json +301 -0
  106. package/dist/locales/en/translation.js +2 -453
  107. package/dist/locales/en/translation.json +0 -446
  108. package/dist/locales/en/widget.js +156 -0
  109. package/dist/locales/en/widget.json +149 -0
  110. package/dist/locales/eo/target.json +301 -0
  111. package/dist/locales/eo/translation.json +71 -0
  112. package/dist/locales/eo/widget.json +149 -0
  113. package/dist/locales/es/target.json +301 -0
  114. package/dist/locales/es/translation.json +0 -446
  115. package/dist/locales/es/widget.json +149 -0
  116. package/dist/locales/et/target.json +301 -0
  117. package/dist/locales/et/translation.json +71 -0
  118. package/dist/locales/et/widget.json +149 -0
  119. package/dist/locales/eu/target.json +301 -0
  120. package/dist/locales/eu/translation.json +71 -0
  121. package/dist/locales/eu/widget.json +149 -0
  122. package/dist/locales/fa/target.json +301 -0
  123. package/dist/locales/fa/translation.json +71 -0
  124. package/dist/locales/fa/widget.json +149 -0
  125. package/dist/locales/fi/target.json +301 -0
  126. package/dist/locales/fi/translation.json +0 -446
  127. package/dist/locales/fi/widget.json +149 -0
  128. package/dist/locales/fil/target.json +301 -0
  129. package/dist/locales/fil/translation.json +71 -0
  130. package/dist/locales/fil/widget.json +149 -0
  131. package/dist/locales/fr/target.json +301 -0
  132. package/dist/locales/fr/translation.json +0 -446
  133. package/dist/locales/fr/widget.json +149 -0
  134. package/dist/locales/fy/target.json +301 -0
  135. package/dist/locales/fy/translation.json +71 -0
  136. package/dist/locales/fy/widget.json +149 -0
  137. package/dist/locales/ga/target.json +301 -0
  138. package/dist/locales/ga/translation.json +71 -0
  139. package/dist/locales/ga/widget.json +149 -0
  140. package/dist/locales/gd/target.json +301 -0
  141. package/dist/locales/gd/translation.json +71 -0
  142. package/dist/locales/gd/widget.json +149 -0
  143. package/dist/locales/gl/target.json +301 -0
  144. package/dist/locales/gl/translation.json +71 -0
  145. package/dist/locales/gl/widget.json +149 -0
  146. package/dist/locales/gu/target.json +301 -0
  147. package/dist/locales/gu/translation.json +71 -0
  148. package/dist/locales/gu/widget.json +149 -0
  149. package/dist/locales/he/target.json +301 -0
  150. package/dist/locales/he/translation.json +71 -0
  151. package/dist/locales/he/widget.json +149 -0
  152. package/dist/locales/hi/target.json +301 -0
  153. package/dist/locales/hi/translation.json +0 -446
  154. package/dist/locales/hi/widget.json +149 -0
  155. package/dist/locales/hr/target.json +301 -0
  156. package/dist/locales/hr/translation.json +71 -0
  157. package/dist/locales/hr/widget.json +149 -0
  158. package/dist/locales/hu/target.json +301 -0
  159. package/dist/locales/hu/translation.json +0 -446
  160. package/dist/locales/hu/widget.json +149 -0
  161. package/dist/locales/hy/target.json +301 -0
  162. package/dist/locales/hy/translation.json +71 -0
  163. package/dist/locales/hy/widget.json +149 -0
  164. package/dist/locales/ia/target.json +301 -0
  165. package/dist/locales/ia/translation.json +71 -0
  166. package/dist/locales/ia/widget.json +149 -0
  167. package/dist/locales/id/target.json +301 -0
  168. package/dist/locales/id/translation.json +10 -456
  169. package/dist/locales/id/widget.json +149 -0
  170. package/dist/locales/is/target.json +301 -0
  171. package/dist/locales/is/translation.json +71 -0
  172. package/dist/locales/is/widget.json +149 -0
  173. package/dist/locales/it/target.json +301 -0
  174. package/dist/locales/it/translation.json +0 -446
  175. package/dist/locales/it/widget.json +149 -0
  176. package/dist/locales/ja/target.json +301 -0
  177. package/dist/locales/ja/translation.json +0 -446
  178. package/dist/locales/ja/widget.json +149 -0
  179. package/dist/locales/jv/target.json +301 -0
  180. package/dist/locales/jv/translation.json +47 -493
  181. package/dist/locales/jv/widget.json +149 -0
  182. package/dist/locales/ka/target.json +301 -0
  183. package/dist/locales/ka/translation.json +71 -0
  184. package/dist/locales/ka/widget.json +149 -0
  185. package/dist/locales/kk/target.json +301 -0
  186. package/dist/locales/kk/translation.json +71 -0
  187. package/dist/locales/kk/widget.json +149 -0
  188. package/dist/locales/km/target.json +301 -0
  189. package/dist/locales/km/translation.json +71 -0
  190. package/dist/locales/km/widget.json +149 -0
  191. package/dist/locales/kn/target.json +301 -0
  192. package/dist/locales/kn/translation.json +71 -0
  193. package/dist/locales/kn/widget.json +149 -0
  194. package/dist/locales/ko/target.json +301 -0
  195. package/dist/locales/ko/translation.json +0 -446
  196. package/dist/locales/ko/widget.json +149 -0
  197. package/dist/locales/ky/target.json +301 -0
  198. package/dist/locales/ky/translation.json +71 -0
  199. package/dist/locales/ky/widget.json +149 -0
  200. package/dist/locales/lo/target.json +301 -0
  201. package/dist/locales/lo/translation.json +71 -0
  202. package/dist/locales/lo/widget.json +149 -0
  203. package/dist/locales/lt/target.json +301 -0
  204. package/dist/locales/lt/translation.json +71 -0
  205. package/dist/locales/lt/widget.json +149 -0
  206. package/dist/locales/lv/target.json +301 -0
  207. package/dist/locales/lv/translation.json +71 -0
  208. package/dist/locales/lv/widget.json +149 -0
  209. package/dist/locales/mk/target.json +301 -0
  210. package/dist/locales/mk/translation.json +71 -0
  211. package/dist/locales/mk/widget.json +149 -0
  212. package/dist/locales/ml/target.json +301 -0
  213. package/dist/locales/ml/translation.json +47 -493
  214. package/dist/locales/ml/widget.json +149 -0
  215. package/dist/locales/mn/target.json +301 -0
  216. package/dist/locales/mn/translation.json +71 -0
  217. package/dist/locales/mn/widget.json +149 -0
  218. package/dist/locales/mr/target.json +301 -0
  219. package/dist/locales/mr/translation.json +71 -0
  220. package/dist/locales/mr/widget.json +149 -0
  221. package/dist/locales/ms/target.json +301 -0
  222. package/dist/locales/ms/translation.json +47 -493
  223. package/dist/locales/ms/widget.json +149 -0
  224. package/dist/locales/my/target.json +301 -0
  225. package/dist/locales/my/translation.json +71 -0
  226. package/dist/locales/my/widget.json +149 -0
  227. package/dist/locales/ne/target.json +301 -0
  228. package/dist/locales/ne/translation.json +71 -0
  229. package/dist/locales/ne/widget.json +149 -0
  230. package/dist/locales/nl/target.json +301 -0
  231. package/dist/locales/nl/translation.json +0 -446
  232. package/dist/locales/nl/widget.json +149 -0
  233. package/dist/locales/nn/target.json +301 -0
  234. package/dist/locales/nn/translation.json +71 -0
  235. package/dist/locales/nn/widget.json +149 -0
  236. package/dist/locales/no/target.json +301 -0
  237. package/dist/locales/no/translation.json +1 -447
  238. package/dist/locales/no/widget.json +149 -0
  239. package/dist/locales/oc/target.json +301 -0
  240. package/dist/locales/oc/translation.json +71 -0
  241. package/dist/locales/oc/widget.json +149 -0
  242. package/dist/locales/or/target.json +301 -0
  243. package/dist/locales/or/translation.json +71 -0
  244. package/dist/locales/or/widget.json +149 -0
  245. package/dist/locales/pa/target.json +301 -0
  246. package/dist/locales/pa/translation.json +71 -0
  247. package/dist/locales/pa/widget.json +149 -0
  248. package/dist/locales/pl/target.json +301 -0
  249. package/dist/locales/pl/translation.json +0 -446
  250. package/dist/locales/pl/widget.json +149 -0
  251. package/dist/locales/pt/target.json +301 -0
  252. package/dist/locales/pt/translation.json +0 -446
  253. package/dist/locales/pt/widget.json +149 -0
  254. package/dist/locales/pt-BR/target.json +301 -0
  255. package/dist/locales/pt-BR/translation.json +0 -446
  256. package/dist/locales/pt-BR/widget.json +149 -0
  257. package/dist/locales/rm/target.json +301 -0
  258. package/dist/locales/rm/translation.json +71 -0
  259. package/dist/locales/rm/widget.json +149 -0
  260. package/dist/locales/ro/target.json +301 -0
  261. package/dist/locales/ro/translation.json +0 -446
  262. package/dist/locales/ro/widget.json +149 -0
  263. package/dist/locales/ru/target.json +301 -0
  264. package/dist/locales/ru/translation.json +0 -446
  265. package/dist/locales/ru/widget.json +149 -0
  266. package/dist/locales/sco/target.json +301 -0
  267. package/dist/locales/sco/translation.json +71 -0
  268. package/dist/locales/sco/widget.json +149 -0
  269. package/dist/locales/si/target.json +301 -0
  270. package/dist/locales/si/translation.json +71 -0
  271. package/dist/locales/si/widget.json +149 -0
  272. package/dist/locales/sk/target.json +301 -0
  273. package/dist/locales/sk/translation.json +71 -0
  274. package/dist/locales/sk/widget.json +149 -0
  275. package/dist/locales/sl/target.json +301 -0
  276. package/dist/locales/sl/translation.json +71 -0
  277. package/dist/locales/sl/widget.json +149 -0
  278. package/dist/locales/sq/target.json +301 -0
  279. package/dist/locales/sq/translation.json +71 -0
  280. package/dist/locales/sq/widget.json +149 -0
  281. package/dist/locales/sr/target.json +301 -0
  282. package/dist/locales/sr/translation.json +0 -446
  283. package/dist/locales/sr/widget.json +149 -0
  284. package/dist/locales/sv/target.json +301 -0
  285. package/dist/locales/sv/translation.json +0 -446
  286. package/dist/locales/sv/widget.json +149 -0
  287. package/dist/locales/sw/target.json +301 -0
  288. package/dist/locales/sw/translation.json +71 -0
  289. package/dist/locales/sw/widget.json +149 -0
  290. package/dist/locales/ta/target.json +301 -0
  291. package/dist/locales/ta/translation.json +71 -0
  292. package/dist/locales/ta/widget.json +149 -0
  293. package/dist/locales/te/target.json +301 -0
  294. package/dist/locales/te/translation.json +71 -0
  295. package/dist/locales/te/widget.json +149 -0
  296. package/dist/locales/tg/target.json +301 -0
  297. package/dist/locales/tg/translation.json +71 -0
  298. package/dist/locales/tg/widget.json +149 -0
  299. package/dist/locales/th/target.json +301 -0
  300. package/dist/locales/th/translation.json +0 -446
  301. package/dist/locales/th/widget.json +149 -0
  302. package/dist/locales/tr/target.json +301 -0
  303. package/dist/locales/tr/translation.json +6 -452
  304. package/dist/locales/tr/widget.json +149 -0
  305. package/dist/locales/uk/target.json +301 -0
  306. package/dist/locales/uk/translation.json +47 -493
  307. package/dist/locales/uk/widget.json +149 -0
  308. package/dist/locales/ur/target.json +301 -0
  309. package/dist/locales/ur/translation.json +71 -0
  310. package/dist/locales/ur/widget.json +149 -0
  311. package/dist/locales/uz/target.json +301 -0
  312. package/dist/locales/uz/translation.json +71 -0
  313. package/dist/locales/uz/widget.json +149 -0
  314. package/dist/locales/vi/target.json +301 -0
  315. package/dist/locales/vi/translation.json +0 -446
  316. package/dist/locales/vi/widget.json +149 -0
  317. package/dist/locales/xh/target.json +301 -0
  318. package/dist/locales/xh/translation.json +71 -0
  319. package/dist/locales/xh/widget.json +149 -0
  320. package/dist/locales/zh/target.json +301 -0
  321. package/dist/locales/zh/translation.json +71 -0
  322. package/dist/locales/zh/widget.json +149 -0
  323. package/dist/locales/zh-CN/target.json +301 -0
  324. package/dist/locales/zh-CN/translation.json +0 -446
  325. package/dist/locales/zh-CN/widget.json +149 -0
  326. package/dist/locales/zh-HK/target.json +301 -0
  327. package/dist/locales/zh-HK/translation.json +71 -0
  328. package/dist/locales/zh-HK/widget.json +149 -0
  329. package/dist/locales/zh-TW/target.json +301 -0
  330. package/dist/locales/zh-TW/translation.json +71 -0
  331. package/dist/locales/zh-TW/widget.json +149 -0
  332. package/dist/locales/zu/target.json +301 -0
  333. package/dist/locales/zu/translation.json +71 -0
  334. package/dist/locales/zu/widget.json +149 -0
  335. package/dist/requestLanguageDetector.d.ts +3 -0
  336. package/dist/requestLanguageDetector.d.ts.map +1 -0
  337. package/dist/requestLanguageDetector.js +24 -0
  338. package/dist/requestLanguageDetector.js.map +1 -0
  339. package/dist/serverTranslationKeys.d.ts +7 -0
  340. package/dist/serverTranslationKeys.d.ts.map +1 -0
  341. package/dist/serverTranslationKeys.js +34 -0
  342. package/dist/serverTranslationKeys.js.map +1 -0
  343. package/dist/tests/browserBundle.unit.test.d.ts +2 -0
  344. package/dist/tests/browserBundle.unit.test.d.ts.map +1 -0
  345. package/dist/tests/browserBundle.unit.test.js +52 -0
  346. package/dist/tests/browserBundle.unit.test.js.map +1 -0
  347. package/dist/tests/browserUiLanguages.unit.test.d.ts +2 -0
  348. package/dist/tests/browserUiLanguages.unit.test.d.ts.map +1 -0
  349. package/dist/tests/browserUiLanguages.unit.test.js +55 -0
  350. package/dist/tests/browserUiLanguages.unit.test.js.map +1 -0
  351. package/dist/tests/catalogues.test-d.d.ts +2 -0
  352. package/dist/tests/catalogues.test-d.d.ts.map +1 -0
  353. package/dist/tests/catalogues.test-d.js +766 -0
  354. package/dist/tests/catalogues.test-d.js.map +1 -0
  355. package/dist/tests/direction.unit.test.js +216 -5
  356. package/dist/tests/direction.unit.test.js.map +1 -1
  357. package/dist/tests/errorMessage.unit.test.js +9 -1
  358. package/dist/tests/errorMessage.unit.test.js.map +1 -1
  359. package/dist/tests/i18SharedOptions.unit.test.js +0 -4
  360. package/dist/tests/i18SharedOptions.unit.test.js.map +1 -1
  361. package/dist/tests/i18nBackend.unit.test.js +100 -21
  362. package/dist/tests/i18nBackend.unit.test.js.map +1 -1
  363. package/dist/tests/i18nBackendFiles.unit.test.d.ts +2 -0
  364. package/dist/tests/i18nBackendFiles.unit.test.d.ts.map +1 -0
  365. package/dist/tests/i18nBackendFiles.unit.test.js +22 -0
  366. package/dist/tests/i18nBackendFiles.unit.test.js.map +1 -0
  367. package/dist/tests/i18nFrontend.unit.test.js +90 -54
  368. package/dist/tests/i18nFrontend.unit.test.js.map +1 -1
  369. package/dist/tests/keptAsIs.d.ts +4 -0
  370. package/dist/tests/keptAsIs.d.ts.map +1 -0
  371. package/dist/tests/keptAsIs.js +1236 -0
  372. package/dist/tests/keptAsIs.js.map +1 -0
  373. package/dist/tests/languagePreference.unit.test.d.ts +2 -0
  374. package/dist/tests/languagePreference.unit.test.d.ts.map +1 -0
  375. package/dist/tests/languagePreference.unit.test.js +204 -0
  376. package/dist/tests/languagePreference.unit.test.js.map +1 -0
  377. package/dist/tests/locale.test-d.js +20 -1
  378. package/dist/tests/locale.test-d.js.map +1 -1
  379. package/dist/tests/localePlaceholders.unit.test.js +5 -2
  380. package/dist/tests/localePlaceholders.unit.test.js.map +1 -1
  381. package/dist/tests/locales.unit.test.js +136 -43
  382. package/dist/tests/locales.unit.test.js.map +1 -1
  383. package/dist/tests/requestLanguageDetector.unit.test.d.ts +2 -0
  384. package/dist/tests/requestLanguageDetector.unit.test.d.ts.map +1 -0
  385. package/dist/tests/requestLanguageDetector.unit.test.js +106 -0
  386. package/dist/tests/requestLanguageDetector.unit.test.js.map +1 -0
  387. package/dist/tests/thrownErrorKeys.unit.test.js +2 -10
  388. package/dist/tests/thrownErrorKeys.unit.test.js.map +1 -1
  389. package/dist/tests/translationKey.unit.test.js +110 -5
  390. package/dist/tests/translationKey.unit.test.js.map +1 -1
  391. package/dist/tests/translations.unit.test.js +9 -5
  392. package/dist/tests/translations.unit.test.js.map +1 -1
  393. package/dist/tests/translator.unit.test.js +8 -2
  394. package/dist/tests/translator.unit.test.js.map +1 -1
  395. package/dist/translationKey.d.ts +16 -4
  396. package/dist/translationKey.d.ts.map +1 -1
  397. package/dist/translationKey.js +27 -6
  398. package/dist/translationKey.js.map +1 -1
  399. package/dist/translations.d.ts +63 -2
  400. package/dist/translations.d.ts.map +1 -1
  401. package/dist/translations.js +63 -2
  402. package/dist/translations.js.map +1 -1
  403. package/dist/translator.d.ts +2 -2
  404. package/dist/translator.d.ts.map +1 -1
  405. package/dist/translator.js +2 -1
  406. package/dist/translator.js.map +1 -1
  407. package/dist/types.d.ts +2 -0
  408. package/dist/types.d.ts.map +1 -1
  409. package/package.json +11 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keptAsIs.js","sourceRoot":"","sources":["../../src/tests/keptAsIs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=languagePreference.unit.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"languagePreference.unit.test.d.ts","sourceRoot":"","sources":["../../src/tests/languagePreference.unit.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,204 @@
1
+ import { afterEach, describe, expect, it, vi } from "vitest";
2
+ import { LANGUAGE_HEADER, LANGUAGE_QUERY_PARAM, browserLanguages, languageHeaders, matchLanguage, matchLanguageTag, negotiateLanguage, parseLanguageList, requestLanguage, resolveLanguageList, widgetLanguageHeaders, } from "../languagePreference.js";
3
+ import { Languages } from "../translations.js";
4
+ describe("parseLanguageList", () => {
5
+ it("returns nothing for an empty or missing value", () => {
6
+ expect(parseLanguageList(undefined)).toEqual([]);
7
+ expect(parseLanguageList("")).toEqual([]);
8
+ expect(parseLanguageList(" , ")).toEqual([]);
9
+ });
10
+ it("keeps the written order when no weights are given", () => {
11
+ expect(parseLanguageList("xx, tr ,en")).toEqual(["xx", "tr", "en"]);
12
+ });
13
+ it("sorts by weight, keeping order between equal weights", () => {
14
+ expect(parseLanguageList("en;q=0.5, tr-TR, de;q=0.8, tr;q=0.8, fr;q=0.5")).toEqual(["tr-TR", "de", "tr", "en", "fr"]);
15
+ });
16
+ it("drops q=0, wildcards, bad weights and malformed tags", () => {
17
+ expect(parseLanguageList("tr;q=0, *, de;q=abc, fr;q=2, ../x, en-, es;Q=0.3, it;level=1")).toEqual(["it", "es"]);
18
+ });
19
+ it("caps the list at ten entries", () => {
20
+ const many = Array.from({ length: 15 }, (_, index) => `x${String.fromCharCode(97 + index)}`).join(",");
21
+ expect(parseLanguageList(many)).toHaveLength(10);
22
+ });
23
+ });
24
+ describe("matchLanguageTag", () => {
25
+ it.each([
26
+ ["tr", Languages.turkish],
27
+ ["tr-TR", Languages.turkish],
28
+ ["TR-tr", Languages.turkish],
29
+ ["pt-BR", Languages.portugeseBrazil],
30
+ ["pt-br", Languages.portugeseBrazil],
31
+ ["pt-PT", Languages.portuguese],
32
+ ["zh-CN", Languages.chineseChina],
33
+ ["zh-Hans-CN", Languages.chinese],
34
+ ["zh-Hans-TW", Languages.chinese],
35
+ ["zh-SG", Languages.chinese],
36
+ ["zh-TW", Languages.chineseTaiwan],
37
+ ["zh-tw", Languages.chineseTaiwan],
38
+ ["zh-HK", Languages.chineseHongKong],
39
+ ["zh-MO", Languages.chineseHongKong],
40
+ ["zh-Hant", Languages.chineseTaiwan],
41
+ ["zh-Hant-TW", Languages.chineseTaiwan],
42
+ ["zh-Hant-HK", Languages.chineseHongKong],
43
+ ["zh-Hant-MO", Languages.chineseHongKong],
44
+ ["nb", Languages.norwegian],
45
+ ["nn-NO", Languages.norwegianNynorsk],
46
+ ["no", Languages.norwegian],
47
+ ["in", Languages.indonesian],
48
+ ["jw", Languages.javanese],
49
+ ["iw", Languages.hebrew],
50
+ ["iw-IL", Languages.hebrew],
51
+ ["tl", Languages.filipino],
52
+ ["fy-NL", Languages.frisian],
53
+ ["ga-IE", Languages.irish],
54
+ ["ca-valencia", Languages.catalan],
55
+ ["es-419", Languages.spanish],
56
+ ["sr-Latn", Languages.serbian],
57
+ ["en-GB", Languages.english],
58
+ ["xx", undefined],
59
+ ["xx-TR", undefined],
60
+ ["", undefined],
61
+ ["../tr", undefined],
62
+ ])("%s -> %s", (tag, expected) => {
63
+ expect(matchLanguageTag(tag)).toBe(expected);
64
+ });
65
+ });
66
+ describe("matchLanguage / negotiateLanguage", () => {
67
+ it("takes the first preference with a catalogue", () => {
68
+ expect(matchLanguage(["xx", "tr-TR", "de"])).toBe(Languages.turkish);
69
+ });
70
+ it("serves Traditional Chinese its own catalogue, never Simplified", () => {
71
+ expect(matchLanguage(["zh-TW", "en"])).toBe(Languages.chineseTaiwan);
72
+ expect(matchLanguage(["zh-Hant-MO", "en"])).toBe(Languages.chineseHongKong);
73
+ });
74
+ it("matches a whole tag before moving to the next preference", () => {
75
+ expect(matchLanguage(["de-AT", "tr"])).toBe(Languages.german);
76
+ });
77
+ it("returns undefined when nothing matches; negotiate falls back to en", () => {
78
+ expect(matchLanguage(["xx", "yy"])).toBeUndefined();
79
+ expect(matchLanguage([])).toBeUndefined();
80
+ expect(negotiateLanguage(["xx"])).toBe(Languages.english);
81
+ expect(negotiateLanguage(["nb-NO"])).toBe(Languages.norwegian);
82
+ });
83
+ });
84
+ describe("languageHeaders", () => {
85
+ it("sends the list in Prosopo-Lang, most preferred first", () => {
86
+ expect(languageHeaders(["tr-TR", "en"])).toEqual({
87
+ [LANGUAGE_HEADER]: "tr-TR,en",
88
+ });
89
+ });
90
+ it("leaves Accept-Language to the browser", () => {
91
+ expect(Object.keys(languageHeaders(["tr", "en"]))).toEqual([
92
+ LANGUAGE_HEADER,
93
+ ]);
94
+ });
95
+ it("drops malformed tags and keeps at most ten", () => {
96
+ const tags = [
97
+ "a",
98
+ "b",
99
+ "c",
100
+ "d",
101
+ "e",
102
+ "f",
103
+ "g",
104
+ "h",
105
+ "i",
106
+ "j",
107
+ "k",
108
+ ];
109
+ expect(languageHeaders(tags)[LANGUAGE_HEADER]).toBe("a,b,c,d,e,f,g,h,i,j");
110
+ expect(languageHeaders(["tr", "bad tag", "en"])).toEqual({
111
+ [LANGUAGE_HEADER]: "tr,en",
112
+ });
113
+ });
114
+ it("round-trips through parseLanguageList", () => {
115
+ const preferences = ["zh-TW", "tr", "en-GB"];
116
+ expect(parseLanguageList(languageHeaders(preferences)[LANGUAGE_HEADER])).toEqual(preferences);
117
+ });
118
+ it("sends nothing for an empty list", () => {
119
+ expect(languageHeaders([])).toEqual({});
120
+ expect(languageHeaders(["not a tag"])).toEqual({});
121
+ });
122
+ });
123
+ describe("requestLanguage", () => {
124
+ const header = LANGUAGE_HEADER.toLowerCase();
125
+ it("prefers the query parameter, then Prosopo-Lang, then Accept-Language", () => {
126
+ const headers = {
127
+ [header]: "de",
128
+ "accept-language": "fr",
129
+ };
130
+ expect(requestLanguage({ query: { [LANGUAGE_QUERY_PARAM]: "tr" }, headers })).toBe(Languages.turkish);
131
+ expect(requestLanguage({ query: {}, headers })).toBe(Languages.german);
132
+ expect(requestLanguage({ headers: { "accept-language": "fr" } })).toBe(Languages.french);
133
+ });
134
+ it("skips a source that names no supported language", () => {
135
+ expect(requestLanguage({
136
+ query: { [LANGUAGE_QUERY_PARAM]: "xx" },
137
+ headers: { [header]: "yy", "accept-language": "tr-TR,en;q=0.5" },
138
+ })).toBe(Languages.turkish);
139
+ });
140
+ it("reads the first value of a repeated parameter or header", () => {
141
+ expect(requestLanguage({
142
+ query: { [LANGUAGE_QUERY_PARAM]: ["tr", "de"] },
143
+ headers: { [header]: ["fr"] },
144
+ })).toBe(Languages.turkish);
145
+ expect(requestLanguage({ headers: { [header]: ["fr", "de"] } })).toBe(Languages.french);
146
+ });
147
+ it("ignores non-string query values", () => {
148
+ expect(requestLanguage({
149
+ query: { [LANGUAGE_QUERY_PARAM]: { nested: "tr" } },
150
+ headers: { "accept-language": "de" },
151
+ })).toBe(Languages.german);
152
+ });
153
+ it("falls back to English", () => {
154
+ expect(requestLanguage({})).toBe(Languages.english);
155
+ expect(requestLanguage({ headers: { "accept-language": "xx" } })).toBe(Languages.english);
156
+ });
157
+ });
158
+ describe("browserLanguages / widgetLanguageHeaders", () => {
159
+ afterEach(() => {
160
+ vi.unstubAllGlobals();
161
+ });
162
+ it("reads navigator.languages", () => {
163
+ vi.stubGlobal("navigator", { languages: ["tr-TR", "en"] });
164
+ expect(browserLanguages()).toEqual(["tr-TR", "en"]);
165
+ });
166
+ it("falls back to navigator.language when the list is empty", () => {
167
+ vi.stubGlobal("navigator", { languages: [], language: "de" });
168
+ expect(browserLanguages()).toEqual(["de"]);
169
+ });
170
+ it("is empty with no navigator, or one that throws", () => {
171
+ vi.stubGlobal("navigator", undefined);
172
+ expect(browserLanguages()).toEqual([]);
173
+ vi.stubGlobal("navigator", {
174
+ get languages() {
175
+ throw new Error("sandboxed");
176
+ },
177
+ });
178
+ expect(browserLanguages()).toEqual([]);
179
+ });
180
+ it("sends the site's language alone when it chose one", () => {
181
+ vi.stubGlobal("navigator", { languages: ["de"] });
182
+ expect(widgetLanguageHeaders("tr")).toEqual({
183
+ [LANGUAGE_HEADER]: "tr",
184
+ });
185
+ });
186
+ it("sends the browser's list otherwise", () => {
187
+ vi.stubGlobal("navigator", { languages: ["xx", "de-AT"] });
188
+ expect(widgetLanguageHeaders(undefined)).toEqual({
189
+ [LANGUAGE_HEADER]: "xx,de-AT",
190
+ });
191
+ });
192
+ });
193
+ describe("resolveLanguageList", () => {
194
+ it("resolves a site-supplied list to its first catalogue", () => {
195
+ expect(resolveLanguageList("xx, tr-TR, de")).toBe(Languages.turkish);
196
+ expect(resolveLanguageList("xx-YY, de")).toBe(Languages.german);
197
+ });
198
+ it("has nothing for an empty or unsupported choice", () => {
199
+ expect(resolveLanguageList(null)).toBeUndefined();
200
+ expect(resolveLanguageList(undefined)).toBeUndefined();
201
+ expect(resolveLanguageList("xx")).toBeUndefined();
202
+ });
203
+ });
204
+ //# sourceMappingURL=languagePreference.unit.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"languagePreference.unit.test.js","sourceRoot":"","sources":["../../src/tests/languagePreference.unit.test.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,10 @@
1
1
  import { assertType, describe, expectTypeOf, it } from "vitest";
2
- import { LanguageCodes, Languages, createTranslator, i18nMiddleware, isClientSide, isLanguage, isTranslationKey, loadI18next, translationKeys, } from "../index.js";
2
+ import { LanguageCodes, Languages, createTranslator, i18nMiddleware, isClientSide, isLanguage, isTargetKey, isTranslationKey, loadI18next, targetKeys, translationKeys, } from "../index.js";
3
3
  describe("Languages", () => {
4
4
  it("is a frozen const map of name to code, not a widened record", () => {
5
5
  expectTypeOf(Languages.english).toEqualTypeOf();
6
6
  expectTypeOf(Languages.chinese).toEqualTypeOf();
7
+ expectTypeOf(Languages.chineseChina).toEqualTypeOf();
7
8
  });
8
9
  it("rejects assignment to a code", () => {
9
10
  Languages.english = "fr";
@@ -53,6 +54,24 @@ describe("TranslationKey", () => {
53
54
  expectTypeOf(LanguageCodes).toExtend();
54
55
  });
55
56
  });
57
+ describe("TargetKey", () => {
58
+ it("is the union of the English catalogue's TARGET labels", () => {
59
+ expectTypeOf().toExtend();
60
+ expectTypeOf().toExtend();
61
+ expectTypeOf().not.toExtend();
62
+ });
63
+ it("rejects an unknown label and the prefixed key", () => {
64
+ assertType("owll");
65
+ assertType("TARGET.owl");
66
+ });
67
+ it("prefixed with TARGET. is a TranslationKey, so it translates without a cast", () => {
68
+ expectTypeOf().toExtend();
69
+ });
70
+ it("narrows a runtime string with isTargetKey", () => {
71
+ expectTypeOf(isTargetKey).guards.toEqualTypeOf();
72
+ expectTypeOf(targetKeys).toExtend();
73
+ });
74
+ });
56
75
  describe("isClientSide", () => {
57
76
  it("takes no arguments and returns a boolean", () => {
58
77
  expectTypeOf(isClientSide).parameters.toEqualTypeOf();
@@ -1 +1 @@
1
- {"version":3,"file":"locale.test-d.js","sourceRoot":"","sources":["../../src/tests/locale.test-d.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"locale.test-d.js","sourceRoot":"","sources":["../../src/tests/locale.test-d.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,11 @@
1
1
  import fs from "node:fs";
2
2
  import path from "node:path";
3
3
  import { describe, expect, it } from "vitest";
4
- import { Languages } from "../index.js";
5
- const readLocale = (locale) => JSON.parse(fs.readFileSync(path.resolve(`./src/locales/${locale}/translation.json`), "utf8"));
4
+ import { NAMESPACES } from "../translationKey.js";
5
+ import { Languages } from "../translations.js";
6
+ const namespaces = Object.values(NAMESPACES);
7
+ const readNamespace = (locale, namespace) => JSON.parse(fs.readFileSync(path.resolve(`./src/locales/${locale}/${namespace}.json`), "utf8"));
8
+ const readLocale = (locale) => Object.assign({}, ...namespaces.map((namespace) => readNamespace(locale, namespace)));
6
9
  const flatten = (tree, prefix = "") => Object.entries(tree).flatMap(([key, value]) => typeof value === "string"
7
10
  ? [[`${prefix}${key}`, value]]
8
11
  : flatten(value, `${prefix}${key}.`));
@@ -1 +1 @@
1
- {"version":3,"file":"localePlaceholders.unit.test.js","sourceRoot":"","sources":["../../src/tests/localePlaceholders.unit.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"localePlaceholders.unit.test.js","sourceRoot":"","sources":["../../src/tests/localePlaceholders.unit.test.ts"],"names":[],"mappings":"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"}
@@ -1,49 +1,142 @@
1
1
  import fs from "node:fs";
2
2
  import path from "node:path";
3
- import { describe, expect, test } from "vitest";
4
- import { Languages } from "../index.js";
5
- describe("logging", () => {
6
- test("Make sure the number of files present in the locales folder is the same size as the Languages array", () => {
7
- const locales = fs.readdirSync(path.resolve("./src/locales"));
8
- expect(locales.length).to.equal(Object.keys(Languages).length);
9
- });
10
- test("Get all locale JSON files and ensure the keys are identical in each one", () => {
11
- const locales = Object.values(Languages);
12
- const sectionKeys = new Set();
13
- console.log("Local test running at ", path.resolve("."));
14
- const sectionKeysObj = {};
15
- const innerKeysObj = {};
16
- for (const locale of locales) {
17
- const localeData = fs.readFileSync(path.resolve(`./src/locales/${locale}/translation.json`), "utf8");
18
- const localeKeys = Object.keys(JSON.parse(localeData));
19
- for (const sectionKey of localeKeys) {
20
- sectionKeys.add(sectionKey);
21
- }
22
- sectionKeysObj[locale] = new Set(localeKeys);
23
- for (const sectionKey of localeKeys) {
24
- const innerKeys = JSON.parse(localeData)[sectionKey];
25
- if (typeof innerKeys !== "object") {
26
- continue;
27
- }
28
- if (!innerKeysObj[locale]) {
29
- innerKeysObj[locale] = {};
30
- }
31
- if (!innerKeysObj[locale][sectionKey]) {
32
- innerKeysObj[locale][sectionKey] = new Set();
33
- }
34
- for (const innerKey of Object.keys(innerKeys)) {
35
- innerKeysObj[locale][sectionKey].add(innerKey);
36
- }
37
- }
38
- }
39
- for (const locale of Array.from(locales)) {
40
- console.log("Checking", locale);
41
- expect(sectionKeysObj[locale]).to.deep.equal(sectionKeysObj.en);
42
- for (const sectionKey of Object.keys(innerKeysObj[locale])) {
43
- console.log(`Checking ${locale} ${sectionKey}`);
44
- expect(innerKeysObj[locale][sectionKey]).to.deep.equal(innerKeysObj.en[sectionKey]);
45
- }
3
+ import { describe, expect, it } from "vitest";
4
+ import { NAMESPACES } from "../translationKey.js";
5
+ import { Languages } from "../translations.js";
6
+ import { keptAsIs } from "./keptAsIs.js";
7
+ const namespaces = Object.values(NAMESPACES);
8
+ const readNamespace = (locale, namespace) => JSON.parse(fs.readFileSync(path.resolve(`./src/locales/${locale}/${namespace}.json`), "utf8"));
9
+ const readLocale = (locale) => Object.assign({}, ...namespaces.map((namespace) => readNamespace(locale, namespace)));
10
+ const isTree = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
11
+ const flatten = (tree, prefix = "") => new Map(Object.entries(tree).flatMap(([key, value]) => isTree(value)
12
+ ? [...flatten(value, `${prefix}${key}.`)]
13
+ : [[`${prefix}${key}`, value]]));
14
+ const scripts = {
15
+ am: /\p{Script=Ethiopic}/u,
16
+ ar: /\p{Script=Arabic}/u,
17
+ as: /\p{Script=Bengali}/u,
18
+ be: /\p{Script=Cyrillic}/u,
19
+ bg: /\p{Script=Cyrillic}/u,
20
+ bn: /\p{Script=Bengali}/u,
21
+ el: /\p{Script=Greek}/u,
22
+ fa: /\p{Script=Arabic}/u,
23
+ gu: /\p{Script=Gujarati}/u,
24
+ he: /\p{Script=Hebrew}/u,
25
+ hi: /\p{Script=Devanagari}/u,
26
+ hy: /\p{Script=Armenian}/u,
27
+ ja: /[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}]/u,
28
+ ka: /\p{Script=Georgian}/u,
29
+ kk: /\p{Script=Cyrillic}/u,
30
+ km: /\p{Script=Khmer}/u,
31
+ kn: /\p{Script=Kannada}/u,
32
+ ko: /\p{Script=Hangul}/u,
33
+ ky: /\p{Script=Cyrillic}/u,
34
+ lo: /\p{Script=Lao}/u,
35
+ mk: /\p{Script=Cyrillic}/u,
36
+ ml: /\p{Script=Malayalam}/u,
37
+ mn: /\p{Script=Cyrillic}/u,
38
+ mr: /\p{Script=Devanagari}/u,
39
+ my: /\p{Script=Myanmar}/u,
40
+ ne: /\p{Script=Devanagari}/u,
41
+ or: /\p{Script=Oriya}/u,
42
+ pa: /\p{Script=Gurmukhi}/u,
43
+ ru: /\p{Script=Cyrillic}/u,
44
+ si: /\p{Script=Sinhala}/u,
45
+ sr: /\p{Script=Cyrillic}/u,
46
+ ta: /\p{Script=Tamil}/u,
47
+ te: /\p{Script=Telugu}/u,
48
+ tg: /\p{Script=Cyrillic}/u,
49
+ th: /\p{Script=Thai}/u,
50
+ uk: /\p{Script=Cyrillic}/u,
51
+ ur: /\p{Script=Arabic}/u,
52
+ zh: /\p{Script=Han}/u,
53
+ "zh-CN": /\p{Script=Han}/u,
54
+ "zh-HK": /\p{Script=Han}/u,
55
+ "zh-TW": /\p{Script=Han}/u,
56
+ };
57
+ const homoglyphScripts = {
58
+ be: /\p{Script=Cyrillic}/u,
59
+ bg: /\p{Script=Cyrillic}/u,
60
+ el: /\p{Script=Greek}/u,
61
+ kk: /\p{Script=Cyrillic}/u,
62
+ ky: /\p{Script=Cyrillic}/u,
63
+ mk: /\p{Script=Cyrillic}/u,
64
+ mn: /\p{Script=Cyrillic}/u,
65
+ ru: /\p{Script=Cyrillic}/u,
66
+ sr: /\p{Script=Cyrillic}/u,
67
+ tg: /\p{Script=Cyrillic}/u,
68
+ uk: /\p{Script=Cyrillic}/u,
69
+ };
70
+ const en = flatten(readLocale("en"));
71
+ const languages = Object.values(Languages);
72
+ const others = languages.filter((language) => language !== Languages.english);
73
+ const leafName = (key) => key.slice(key.lastIndexOf(".") + 1);
74
+ const audioKeys = [...en.keys()].filter((key) => key.startsWith("WIDGET.AUDIO_"));
75
+ const keptFor = (language) => new Set([...(keptAsIs[language] ?? []), ...audioKeys]);
76
+ describe("locale catalogues", () => {
77
+ it.each(languages)("%s has one file per namespace, each with the keys of en's", (language) => {
78
+ const files = fs
79
+ .readdirSync(path.resolve(`./src/locales/${language}`))
80
+ .sort();
81
+ expect(files).toEqual(namespaces.map((namespace) => `${namespace}.json`).sort());
82
+ for (const namespace of namespaces) {
83
+ expect([...flatten(readNamespace(language, namespace)).keys()].sort(), `${language}/${namespace}.json`).toEqual([...flatten(readNamespace("en", namespace)).keys()].sort());
46
84
  }
47
85
  });
86
+ it.each(languages)("%s has exactly the keys of en", (language) => {
87
+ const keys = [...flatten(readLocale(language)).keys()];
88
+ expect(keys.filter((key) => !en.has(key))).toEqual([]);
89
+ expect([...en.keys()].filter((key) => !keys.includes(key))).toEqual([]);
90
+ });
91
+ it.each(languages)("%s has a non-empty string for every key", (language) => {
92
+ const bad = [...flatten(readLocale(language))]
93
+ .filter(([, value]) => typeof value !== "string" || value.trim() === "")
94
+ .map(([key]) => key);
95
+ expect(bad).toEqual([]);
96
+ });
97
+ it.each(languages)("%s has no unicode replacement characters", (language) => {
98
+ const bad = [...flatten(readLocale(language))]
99
+ .filter(([, value]) => typeof value === "string" && value.includes("�"))
100
+ .map(([key]) => key);
101
+ expect(bad).toEqual([]);
102
+ });
103
+ it.each(others)("%s translates every value, apart from keptAsIs", (language) => {
104
+ const kept = keptFor(language);
105
+ const untranslated = [...flatten(readLocale(language))]
106
+ .filter(([key, value]) => !kept.has(key) &&
107
+ (value === en.get(key) || value === leafName(key)))
108
+ .map(([key, value]) => `${key}: ${value}`);
109
+ expect(untranslated).toEqual([]);
110
+ });
111
+ it.each(others)("%s keptAsIs entries still match en, so the list stays curated", (language) => {
112
+ const catalogue = flatten(readLocale(language));
113
+ const stale = [...keptFor(language)].filter((key) => catalogue.get(key) !== en.get(key) &&
114
+ catalogue.get(key) !== leafName(key));
115
+ expect(stale).toEqual([]);
116
+ });
117
+ it.each(others.filter((language) => scripts[language] !== undefined))("%s writes every value in its own script", (language) => {
118
+ const script = scripts[language];
119
+ const kept = keptFor(language);
120
+ const wrong = [...flatten(readLocale(language))]
121
+ .filter(([key, value]) => !kept.has(key) &&
122
+ typeof value === "string" &&
123
+ script !== undefined &&
124
+ !script.test(value))
125
+ .map(([key, value]) => `${key}: ${value}`);
126
+ expect(wrong).toEqual([]);
127
+ });
128
+ it.each(others.filter((language) => homoglyphScripts[language] !== undefined))("%s has no Latin letters inside native words", (language) => {
129
+ const script = homoglyphScripts[language];
130
+ const mixed = [...flatten(readLocale(language))].flatMap(([key, value]) => typeof value !== "string" || script === undefined
131
+ ? []
132
+ : (value.match(/\p{L}+/gu) ?? [])
133
+ .filter((word) => script.test(word) && /\p{Script=Latin}/u.test(word))
134
+ .map((word) => `${key}: ${word}`));
135
+ expect(mixed).toEqual([]);
136
+ });
137
+ it.each(languages)("%s ends the select-all prompt with a colon, as the label follows it", (language) => {
138
+ const prompt = flatten(readLocale(language)).get("WIDGET.SELECT_ALL");
139
+ expect(prompt).toMatch(/[::៖]$/);
140
+ });
48
141
  });
49
142
  //# sourceMappingURL=locales.unit.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"locales.unit.test.js","sourceRoot":"","sources":["../../src/tests/locales.unit.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"locales.unit.test.js","sourceRoot":"","sources":["../../src/tests/locales.unit.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=requestLanguageDetector.unit.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requestLanguageDetector.unit.test.d.ts","sourceRoot":"","sources":["../../src/tests/requestLanguageDetector.unit.test.ts"],"names":[],"mappings":""}