@prosopo/locale 3.10.1 → 3.11.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.
- package/.turbo/turbo-build$colon$cjs.log +4 -3
- package/.turbo/turbo-build$colon$tsc.log +5 -5
- package/.turbo/turbo-build.log +11 -10
- package/CHANGELOG.md +23 -0
- package/dist/cjs/index.cjs +2 -0
- package/dist/cjs/locales/en/widget.cjs +1 -1
- package/dist/cjs/untranslatedI18n.cjs +19 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/locales/af/widget.json +13 -13
- package/dist/locales/am/widget.json +13 -13
- package/dist/locales/an/widget.json +13 -13
- package/dist/locales/ar/widget.json +13 -13
- package/dist/locales/as/widget.json +13 -13
- package/dist/locales/ast/widget.json +13 -13
- package/dist/locales/az/widget.json +13 -13
- package/dist/locales/be/widget.json +13 -13
- package/dist/locales/bg/widget.json +13 -13
- package/dist/locales/bn/widget.json +13 -13
- package/dist/locales/bs/widget.json +13 -13
- package/dist/locales/ca/widget.json +13 -13
- package/dist/locales/cs/widget.json +13 -13
- package/dist/locales/cy/widget.json +13 -13
- package/dist/locales/da/widget.json +13 -13
- package/dist/locales/de/widget.json +13 -13
- package/dist/locales/el/widget.json +13 -13
- package/dist/locales/en/widget.js +1 -1
- package/dist/locales/en/widget.json +1 -1
- package/dist/locales/eo/widget.json +13 -13
- package/dist/locales/es/widget.json +13 -13
- package/dist/locales/et/widget.json +13 -13
- package/dist/locales/eu/widget.json +13 -13
- package/dist/locales/fa/widget.json +13 -13
- package/dist/locales/fi/widget.json +13 -13
- package/dist/locales/fil/target.json +31 -31
- package/dist/locales/fil/widget.json +14 -14
- package/dist/locales/fr/widget.json +13 -13
- package/dist/locales/fy/widget.json +13 -13
- package/dist/locales/ga/widget.json +13 -13
- package/dist/locales/gd/widget.json +13 -13
- package/dist/locales/gl/widget.json +13 -13
- package/dist/locales/gu/widget.json +13 -13
- package/dist/locales/he/widget.json +13 -13
- package/dist/locales/hi/widget.json +13 -13
- package/dist/locales/hr/widget.json +13 -13
- package/dist/locales/hu/widget.json +13 -13
- package/dist/locales/hy/widget.json +13 -13
- package/dist/locales/ia/widget.json +13 -13
- package/dist/locales/id/widget.json +13 -13
- package/dist/locales/is/widget.json +13 -13
- package/dist/locales/it/widget.json +13 -13
- package/dist/locales/ja/widget.json +13 -13
- package/dist/locales/jv/widget.json +13 -13
- package/dist/locales/ka/widget.json +13 -13
- package/dist/locales/kk/widget.json +13 -13
- package/dist/locales/km/widget.json +13 -13
- package/dist/locales/kn/widget.json +13 -13
- package/dist/locales/ko/widget.json +13 -13
- package/dist/locales/ky/widget.json +13 -13
- package/dist/locales/lo/widget.json +13 -13
- package/dist/locales/lt/widget.json +13 -13
- package/dist/locales/lv/widget.json +13 -13
- package/dist/locales/mk/widget.json +13 -13
- package/dist/locales/ml/widget.json +13 -13
- package/dist/locales/mn/widget.json +13 -13
- package/dist/locales/mr/widget.json +13 -13
- package/dist/locales/ms/widget.json +13 -13
- package/dist/locales/my/widget.json +13 -13
- package/dist/locales/ne/widget.json +13 -13
- package/dist/locales/nl/widget.json +13 -13
- package/dist/locales/nn/widget.json +13 -13
- package/dist/locales/no/widget.json +13 -13
- package/dist/locales/oc/widget.json +13 -13
- package/dist/locales/or/widget.json +13 -13
- package/dist/locales/pa/widget.json +13 -13
- package/dist/locales/pl/widget.json +13 -13
- package/dist/locales/pt/widget.json +13 -13
- package/dist/locales/pt-BR/widget.json +13 -13
- package/dist/locales/rm/widget.json +13 -13
- package/dist/locales/ro/widget.json +13 -13
- package/dist/locales/ru/widget.json +13 -13
- package/dist/locales/sco/widget.json +15 -15
- package/dist/locales/si/widget.json +13 -13
- package/dist/locales/sk/widget.json +13 -13
- package/dist/locales/sl/widget.json +13 -13
- package/dist/locales/sq/widget.json +13 -13
- package/dist/locales/sr/widget.json +13 -13
- package/dist/locales/sv/widget.json +13 -13
- package/dist/locales/sw/widget.json +13 -13
- package/dist/locales/ta/widget.json +13 -13
- package/dist/locales/te/widget.json +13 -13
- package/dist/locales/tg/widget.json +13 -13
- package/dist/locales/th/widget.json +13 -13
- package/dist/locales/tr/widget.json +13 -13
- package/dist/locales/uk/widget.json +13 -13
- package/dist/locales/ur/widget.json +13 -13
- package/dist/locales/uz/widget.json +13 -13
- package/dist/locales/vi/widget.json +13 -13
- package/dist/locales/xh/widget.json +13 -13
- package/dist/locales/zh/widget.json +13 -13
- package/dist/locales/zh-CN/widget.json +13 -13
- package/dist/locales/zh-HK/widget.json +13 -13
- package/dist/locales/zh-TW/widget.json +13 -13
- package/dist/locales/zu/widget.json +13 -13
- package/dist/tests/i18nBackendFiles.unit.test.js +2 -2
- package/dist/tests/i18nBackendFiles.unit.test.js.map +1 -1
- package/dist/tests/i18nFrontend.unit.test.js +3 -4
- package/dist/tests/i18nFrontend.unit.test.js.map +1 -1
- package/dist/tests/i18nMiddleware.unit.test.js +5 -5
- package/dist/tests/i18nMiddleware.unit.test.js.map +1 -1
- package/dist/tests/keptAsIs.d.ts.map +1 -1
- package/dist/tests/keptAsIs.js +0 -34
- package/dist/tests/keptAsIs.js.map +1 -1
- package/dist/tests/loadI18next.unit.test.js +36 -36
- package/dist/tests/loadI18next.unit.test.js.map +1 -1
- package/dist/tests/locales.unit.test.js +3 -4
- package/dist/tests/locales.unit.test.js.map +1 -1
- package/dist/tests/translator.unit.test.js +3 -0
- package/dist/tests/translator.unit.test.js.map +1 -1
- package/dist/tests/untranslatedI18n.unit.test.d.ts +2 -0
- package/dist/tests/untranslatedI18n.unit.test.d.ts.map +1 -0
- package/dist/tests/untranslatedI18n.unit.test.js +38 -0
- package/dist/tests/untranslatedI18n.unit.test.js.map +1 -0
- package/dist/translationKey.js.map +1 -1
- package/dist/untranslatedI18n.d.ts +3 -0
- package/dist/untranslatedI18n.d.ts.map +1 -0
- package/dist/untranslatedI18n.js +19 -0
- package/dist/untranslatedI18n.js.map +1 -0
- package/package.json +2 -2
|
@@ -8,12 +8,13 @@ ViteCommonJSConfig: .
|
|
|
8
8
|
[36mvite v8.1.5 [32mbuilding ssr environment for production...[36m[39m
|
|
9
9
|
Bundle build started
|
|
10
10
|
[2K
|
|
11
|
-
✓
|
|
11
|
+
✓ 22 modules transformed.
|
|
12
12
|
rendering chunks...
|
|
13
13
|
computing gzip size...
|
|
14
14
|
dist/cjs/util.cjs 0.28 kB │ gzip: 0.17 kB
|
|
15
15
|
dist/cjs/i18SharedOptions.cjs 0.37 kB │ gzip: 0.23 kB
|
|
16
16
|
dist/cjs/i18nMiddleware.cjs 0.51 kB │ gzip: 0.26 kB
|
|
17
|
+
dist/cjs/untranslatedI18n.cjs 0.62 kB │ gzip: 0.38 kB
|
|
17
18
|
dist/cjs/errorMessage.cjs 0.75 kB │ gzip: 0.42 kB
|
|
18
19
|
dist/cjs/process.cjs 0.78 kB │ gzip: 0.46 kB
|
|
19
20
|
dist/cjs/translator.cjs 0.92 kB │ gzip: 0.47 kB
|
|
@@ -24,7 +25,7 @@ dist/cjs/translationKey.cjs 1.80 kB │ gzip: 0.92 kB
|
|
|
24
25
|
dist/cjs/translations.cjs 1.82 kB │ gzip: 0.84 kB
|
|
25
26
|
dist/cjs/loadI18next.cjs 2.04 kB │ gzip: 0.85 kB
|
|
26
27
|
dist/cjs/i18nBackend.cjs 2.62 kB │ gzip: 0.88 kB
|
|
27
|
-
dist/cjs/index.cjs 2.
|
|
28
|
+
dist/cjs/index.cjs 2.86 kB │ gzip: 0.63 kB
|
|
28
29
|
dist/cjs/direction.cjs 2.94 kB │ gzip: 1.61 kB
|
|
29
30
|
dist/cjs/locales/en/translation.cjs 3.63 kB │ gzip: 1.39 kB
|
|
30
31
|
dist/cjs/i18nFrontend.cjs 5.08 kB │ gzip: 2.03 kB
|
|
@@ -33,7 +34,7 @@ dist/cjs/locales/en/widget.cjs 7.35 kB │ gzip: 2.89 kB
|
|
|
33
34
|
dist/cjs/locales/en/target.cjs 7.69 kB │ gzip: 2.55 kB
|
|
34
35
|
dist/cjs/browserUiLanguages.cjs 10.85 kB │ gzip: 1.86 kB
|
|
35
36
|
|
|
36
|
-
[32m✓ built in
|
|
37
|
+
[32m✓ built in 65ms[39m
|
|
37
38
|
[copy-plugin] copying /home/runner/work/captcha/captcha/packages/locale/src/locales/af/target.json to /home/runner/work/captcha/captcha/packages/locale/dist/locales/af/target.json
|
|
38
39
|
[copy-plugin] copying /home/runner/work/captcha/captcha/packages/locale/src/locales/af/translation.json to /home/runner/work/captcha/captcha/packages/locale/dist/locales/af/translation.json
|
|
39
40
|
[copy-plugin] copying /home/runner/work/captcha/captcha/packages/locale/src/locales/af/widget.json to /home/runner/work/captcha/captcha/packages/locale/dist/locales/af/widget.json
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
$ tsc --build --verbose
|
|
2
|
-
|
|
2
|
+
2:43:17 PM - Projects in this build:
|
|
3
3
|
* ../../dev/config/tsconfig.json
|
|
4
4
|
* ../util/tsconfig.json
|
|
5
5
|
* tsconfig.json
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
2:43:17 PM - Project '../../dev/config/tsconfig.json' is up to date because newest input '../../dev/config/src/webpack/webpack.config.ts' is older than output '../../dev/config/tsconfig.tsbuildinfo'
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
2:43:17 PM - Project '../util/tsconfig.json' is up to date because newest input '../util/src/url.ts' is older than output '../util/tsconfig.tsbuildinfo'
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
2:43:17 PM - Project 'tsconfig.json' is out of date because output file 'tsconfig.tsbuildinfo' does not exist
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
2:43:17 PM - Building project '/home/runner/work/captcha/captcha/packages/locale/tsconfig.json'...
|
|
14
14
|
|
package/.turbo/turbo-build.log
CHANGED
|
@@ -9,18 +9,19 @@ ViteEsmConfig: .
|
|
|
9
9
|
[36mvite v8.1.5 [32mbuilding ssr environment for production...[36m[39m
|
|
10
10
|
Bundle build started
|
|
11
11
|
[2K
|
|
12
|
-
✓
|
|
12
|
+
✓ 22 modules transformed.
|
|
13
13
|
rendering chunks...
|
|
14
14
|
computing gzip size...
|
|
15
15
|
dist/_virtual/_rolldown/runtime.js 0.04 kB │ gzip: 0.06 kB
|
|
16
16
|
dist/util.js 0.25 kB │ gzip: 0.16 kB
|
|
17
17
|
dist/i18nMiddleware.js 0.31 kB │ gzip: 0.19 kB
|
|
18
18
|
dist/i18SharedOptions.js 0.33 kB │ gzip: 0.23 kB
|
|
19
|
+
dist/untranslatedI18n.js 0.60 kB │ gzip: 0.37 kB
|
|
19
20
|
dist/errorMessage.js 0.71 kB │ gzip: 0.41 kB
|
|
20
21
|
dist/process.js 0.77 kB │ gzip: 0.46 kB
|
|
21
22
|
dist/translator.js 0.84 kB │ gzip: 0.46 kB
|
|
22
23
|
dist/requestLanguageDetector.js 0.88 kB │ gzip: 0.48 kB
|
|
23
|
-
dist/index.js 1.
|
|
24
|
+
dist/index.js 1.52 kB │ gzip: 0.48 kB
|
|
24
25
|
dist/serverTranslationKeys.js 1.53 kB │ gzip: 0.71 kB
|
|
25
26
|
dist/translationKey.js 1.70 kB │ gzip: 0.90 kB
|
|
26
27
|
dist/translations.js 1.76 kB │ gzip: 0.83 kB
|
|
@@ -30,11 +31,11 @@ dist/direction.js 2.92 kB │ gzip: 1.60 kB
|
|
|
30
31
|
dist/locales/en/translation.js 3.52 kB │ gzip: 1.37 kB
|
|
31
32
|
dist/i18nFrontend.js 4.86 kB │ gzip: 2.01 kB
|
|
32
33
|
dist/languagePreference.js 5.79 kB │ gzip: 2.39 kB
|
|
33
|
-
dist/locales/en/widget.js 7.
|
|
34
|
+
dist/locales/en/widget.js 7.24 kB │ gzip: 2.87 kB
|
|
34
35
|
dist/locales/en/target.js 7.68 kB │ gzip: 2.55 kB
|
|
35
36
|
dist/browserUiLanguages.js 10.83 kB │ gzip: 1.86 kB
|
|
36
37
|
|
|
37
|
-
[32m✓ built in
|
|
38
|
+
[32m✓ built in 100ms[39m
|
|
38
39
|
[copy-plugin] copying /home/runner/work/captcha/captcha/packages/locale/src/locales/af/target.json to /home/runner/work/captcha/captcha/packages/locale/dist/locales/af/target.json
|
|
39
40
|
[copy-plugin] copying /home/runner/work/captcha/captcha/packages/locale/src/locales/af/translation.json to /home/runner/work/captcha/captcha/packages/locale/dist/locales/af/translation.json
|
|
40
41
|
[copy-plugin] copying /home/runner/work/captcha/captcha/packages/locale/src/locales/af/widget.json to /home/runner/work/captcha/captcha/packages/locale/dist/locales/af/widget.json
|
|
@@ -200,15 +201,15 @@ dist/browserUiLanguages.js 10.83 kB │ gzip: 1.86 kB
|
|
|
200
201
|
[copy-plugin] copying /home/runner/work/captcha/captcha/packages/locale/src/locales/mr/target.json to /home/runner/work/captcha/captcha/packages/locale/dist/locales/mr/target.json
|
|
201
202
|
[copy-plugin] copying /home/runner/work/captcha/captcha/packages/locale/src/locales/mr/translation.json to /home/runner/work/captcha/captcha/packages/locale/dist/locales/mr/translation.json
|
|
202
203
|
[copy-plugin] copying /home/runner/work/captcha/captcha/packages/locale/src/locales/mr/widget.json to /home/runner/work/captcha/captcha/packages/locale/dist/locales/mr/widget.json
|
|
204
|
+
[copy-plugin] copying /home/runner/work/captcha/captcha/packages/locale/src/locales/ms/target.json to /home/runner/work/captcha/captcha/packages/locale/dist/locales/ms/target.json
|
|
205
|
+
[copy-plugin] copying /home/runner/work/captcha/captcha/packages/locale/src/locales/ms/translation.json to /home/runner/work/captcha/captcha/packages/locale/dist/locales/ms/translation.json
|
|
206
|
+
[copy-plugin] copying /home/runner/work/captcha/captcha/packages/locale/src/locales/ms/widget.json to /home/runner/work/captcha/captcha/packages/locale/dist/locales/ms/widget.json
|
|
203
207
|
[copy-plugin] copying /home/runner/work/captcha/captcha/packages/locale/src/locales/my/target.json to /home/runner/work/captcha/captcha/packages/locale/dist/locales/my/target.json
|
|
204
208
|
[copy-plugin] copying /home/runner/work/captcha/captcha/packages/locale/src/locales/my/translation.json to /home/runner/work/captcha/captcha/packages/locale/dist/locales/my/translation.json
|
|
205
209
|
[copy-plugin] copying /home/runner/work/captcha/captcha/packages/locale/src/locales/my/widget.json to /home/runner/work/captcha/captcha/packages/locale/dist/locales/my/widget.json
|
|
206
210
|
[copy-plugin] copying /home/runner/work/captcha/captcha/packages/locale/src/locales/ne/target.json to /home/runner/work/captcha/captcha/packages/locale/dist/locales/ne/target.json
|
|
207
211
|
[copy-plugin] copying /home/runner/work/captcha/captcha/packages/locale/src/locales/ne/translation.json to /home/runner/work/captcha/captcha/packages/locale/dist/locales/ne/translation.json
|
|
208
212
|
[copy-plugin] copying /home/runner/work/captcha/captcha/packages/locale/src/locales/ne/widget.json to /home/runner/work/captcha/captcha/packages/locale/dist/locales/ne/widget.json
|
|
209
|
-
[copy-plugin] copying /home/runner/work/captcha/captcha/packages/locale/src/locales/ms/target.json to /home/runner/work/captcha/captcha/packages/locale/dist/locales/ms/target.json
|
|
210
|
-
[copy-plugin] copying /home/runner/work/captcha/captcha/packages/locale/src/locales/ms/translation.json to /home/runner/work/captcha/captcha/packages/locale/dist/locales/ms/translation.json
|
|
211
|
-
[copy-plugin] copying /home/runner/work/captcha/captcha/packages/locale/src/locales/ms/widget.json to /home/runner/work/captcha/captcha/packages/locale/dist/locales/ms/widget.json
|
|
212
213
|
[copy-plugin] copying /home/runner/work/captcha/captcha/packages/locale/src/locales/nl/target.json to /home/runner/work/captcha/captcha/packages/locale/dist/locales/nl/target.json
|
|
213
214
|
[copy-plugin] copying /home/runner/work/captcha/captcha/packages/locale/src/locales/nl/translation.json to /home/runner/work/captcha/captcha/packages/locale/dist/locales/nl/translation.json
|
|
214
215
|
[copy-plugin] copying /home/runner/work/captcha/captcha/packages/locale/src/locales/nl/widget.json to /home/runner/work/captcha/captcha/packages/locale/dist/locales/nl/widget.json
|
|
@@ -302,15 +303,15 @@ dist/browserUiLanguages.js 10.83 kB │ gzip: 1.86 kB
|
|
|
302
303
|
[copy-plugin] copying /home/runner/work/captcha/captcha/packages/locale/src/locales/zh/target.json to /home/runner/work/captcha/captcha/packages/locale/dist/locales/zh/target.json
|
|
303
304
|
[copy-plugin] copying /home/runner/work/captcha/captcha/packages/locale/src/locales/zh/translation.json to /home/runner/work/captcha/captcha/packages/locale/dist/locales/zh/translation.json
|
|
304
305
|
[copy-plugin] copying /home/runner/work/captcha/captcha/packages/locale/src/locales/zh/widget.json to /home/runner/work/captcha/captcha/packages/locale/dist/locales/zh/widget.json
|
|
306
|
+
[copy-plugin] copying /home/runner/work/captcha/captcha/packages/locale/src/locales/zh-CN/target.json to /home/runner/work/captcha/captcha/packages/locale/dist/locales/zh-CN/target.json
|
|
307
|
+
[copy-plugin] copying /home/runner/work/captcha/captcha/packages/locale/src/locales/zh-CN/translation.json to /home/runner/work/captcha/captcha/packages/locale/dist/locales/zh-CN/translation.json
|
|
308
|
+
[copy-plugin] copying /home/runner/work/captcha/captcha/packages/locale/src/locales/zh-CN/widget.json to /home/runner/work/captcha/captcha/packages/locale/dist/locales/zh-CN/widget.json
|
|
305
309
|
[copy-plugin] copying /home/runner/work/captcha/captcha/packages/locale/src/locales/zh-HK/target.json to /home/runner/work/captcha/captcha/packages/locale/dist/locales/zh-HK/target.json
|
|
306
310
|
[copy-plugin] copying /home/runner/work/captcha/captcha/packages/locale/src/locales/zh-HK/translation.json to /home/runner/work/captcha/captcha/packages/locale/dist/locales/zh-HK/translation.json
|
|
307
311
|
[copy-plugin] copying /home/runner/work/captcha/captcha/packages/locale/src/locales/zh-HK/widget.json to /home/runner/work/captcha/captcha/packages/locale/dist/locales/zh-HK/widget.json
|
|
308
312
|
[copy-plugin] copying /home/runner/work/captcha/captcha/packages/locale/src/locales/zh-TW/target.json to /home/runner/work/captcha/captcha/packages/locale/dist/locales/zh-TW/target.json
|
|
309
313
|
[copy-plugin] copying /home/runner/work/captcha/captcha/packages/locale/src/locales/zh-TW/translation.json to /home/runner/work/captcha/captcha/packages/locale/dist/locales/zh-TW/translation.json
|
|
310
314
|
[copy-plugin] copying /home/runner/work/captcha/captcha/packages/locale/src/locales/zh-TW/widget.json to /home/runner/work/captcha/captcha/packages/locale/dist/locales/zh-TW/widget.json
|
|
311
|
-
[copy-plugin] copying /home/runner/work/captcha/captcha/packages/locale/src/locales/zh-CN/target.json to /home/runner/work/captcha/captcha/packages/locale/dist/locales/zh-CN/target.json
|
|
312
|
-
[copy-plugin] copying /home/runner/work/captcha/captcha/packages/locale/src/locales/zh-CN/translation.json to /home/runner/work/captcha/captcha/packages/locale/dist/locales/zh-CN/translation.json
|
|
313
|
-
[copy-plugin] copying /home/runner/work/captcha/captcha/packages/locale/src/locales/zh-CN/widget.json to /home/runner/work/captcha/captcha/packages/locale/dist/locales/zh-CN/widget.json
|
|
314
315
|
[copy-plugin] copying /home/runner/work/captcha/captcha/packages/locale/src/locales/zu/target.json to /home/runner/work/captcha/captcha/packages/locale/dist/locales/zu/target.json
|
|
315
316
|
[copy-plugin] copying /home/runner/work/captcha/captcha/packages/locale/src/locales/zu/translation.json to /home/runner/work/captcha/captcha/packages/locale/dist/locales/zu/translation.json
|
|
316
317
|
[copy-plugin] copying /home/runner/work/captcha/captcha/packages/locale/src/locales/zu/widget.json to /home/runner/work/captcha/captcha/packages/locale/dist/locales/zu/widget.json
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,28 @@
|
|
|
1
1
|
# @prosopo/locale
|
|
2
2
|
|
|
3
|
+
## 3.11.1
|
|
4
|
+
### Patch Changes
|
|
5
|
+
|
|
6
|
+
- b6e9459: The colon after the "Select all …" prompt is added by the widget again, rather than being part of each translation. Every language's `WIDGET.SELECT_ALL` no longer ends with a colon, and the widget renders it as `<prompt>: <target>`. A locale test now fails if a translation brings its own colon back.
|
|
7
|
+
- @prosopo/util@3.3.15
|
|
8
|
+
|
|
9
|
+
## 3.11.0
|
|
10
|
+
### Minor Changes
|
|
11
|
+
|
|
12
|
+
- 03df637: `@prosopo/locale` now exports `createUntranslatedI18n()`: a complete i18n instance with no catalogues, where `t` gives back the default value or the key. The tests use it in place of hand-made fakes that were cast to the i18n type. Those casts let a fake miss a method the code calls (as happened with `exists`) and still compile; now a missing method is a type error.
|
|
13
|
+
|
|
14
|
+
`handleErrors` now only asks for the request and response fields it actually uses, so its tests can pass plain objects. It is still an Express error handler.
|
|
15
|
+
|
|
16
|
+
The `i18n` prop on the image, audio, PoW and puzzle widgets is now typed as optional. The widgets already started their own i18n when none was passed; the type said it was required, so the tests had to cast `undefined` to pass nothing. The frictionless widget still requires it, because it reads from it straight away.
|
|
17
|
+
|
|
18
|
+
### Patch Changes
|
|
19
|
+
|
|
20
|
+
- 49e9385: The audio captcha's text (play button, instructions, error messages and so on) is now translated into all 92 languages. Before this it showed in English everywhere. The catalogue test had a special exemption for these strings, so nothing flagged it. That exemption is gone: any string left in English now fails the test, unless it is on the short list of words that really are the same in that language (brand names, loanwords, "OK").
|
|
21
|
+
|
|
22
|
+
Some Filipino animal and object names and two Filipino/Scots error messages were on that list without being real loanwords. They are now translated too.
|
|
23
|
+
|
|
24
|
+
Every translation still needs checking by a native speaker.
|
|
25
|
+
|
|
3
26
|
## 3.10.1
|
|
4
27
|
### Patch Changes
|
|
5
28
|
|
package/dist/cjs/index.cjs
CHANGED
|
@@ -9,6 +9,7 @@ const require_util = require("./util.cjs");
|
|
|
9
9
|
const require_translationKey = require("./translationKey.cjs");
|
|
10
10
|
const require_serverTranslationKeys = require("./serverTranslationKeys.cjs");
|
|
11
11
|
const require_translator = require("./translator.cjs");
|
|
12
|
+
const require_untranslatedI18n = require("./untranslatedI18n.cjs");
|
|
12
13
|
const require_errorMessage = require("./errorMessage.cjs");
|
|
13
14
|
exports.BROWSER_UI_LANGUAGES = require_browserUiLanguages.BROWSER_UI_LANGUAGES;
|
|
14
15
|
exports.LANGUAGE_HEADER = require_languagePreference.LANGUAGE_HEADER;
|
|
@@ -19,6 +20,7 @@ exports.NAMESPACES = require_translationKey.NAMESPACES;
|
|
|
19
20
|
exports.browserLanguages = require_languagePreference.browserLanguages;
|
|
20
21
|
exports.canTranslate = require_translationKey.canTranslate;
|
|
21
22
|
exports.createTranslator = require_translator.createTranslator;
|
|
23
|
+
exports.createUntranslatedI18n = require_untranslatedI18n.createUntranslatedI18n;
|
|
22
24
|
exports.englishText = require_serverTranslationKeys.englishText;
|
|
23
25
|
exports.getLanguageDirection = require_direction.getLanguageDirection;
|
|
24
26
|
exports.i18nMiddleware = require_i18nMiddleware.default;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
//#region src/locales/en/widget.json
|
|
2
2
|
var ACCOUNT = { "NO_POLKADOT_EXTENSION": "Polkadot extension not found" };
|
|
3
3
|
var WIDGET = {
|
|
4
|
-
"SELECT_ALL": "Select all containing the following
|
|
4
|
+
"SELECT_ALL": "Select all containing the following",
|
|
5
5
|
"IF_NONE_CLICK_NEXT": "If there are none, click Next",
|
|
6
6
|
"NEXT": "Next",
|
|
7
7
|
"SUBMIT": "Submit",
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
//#region src/untranslatedI18n.ts
|
|
2
|
+
/**
|
|
3
|
+
* A Ti18n with no catalogues: `t` gives back the caller's `defaultValue`, else
|
|
4
|
+
* the key, and nothing ever loads. It has every method the real instances
|
|
5
|
+
* have, so code handed one cannot rely on a method that does not exist.
|
|
6
|
+
*/
|
|
7
|
+
var createUntranslatedI18n = (overrides = {}) => ({
|
|
8
|
+
language: "en",
|
|
9
|
+
isInitialized: true,
|
|
10
|
+
t: (key, options) => options?.defaultValue ?? key,
|
|
11
|
+
exists: () => false,
|
|
12
|
+
changeLanguage: async () => void 0,
|
|
13
|
+
hasLoadedNamespace: () => true,
|
|
14
|
+
on: () => void 0,
|
|
15
|
+
off: () => void 0,
|
|
16
|
+
...overrides
|
|
17
|
+
});
|
|
18
|
+
//#endregion
|
|
19
|
+
exports.createUntranslatedI18n = createUntranslatedI18n;
|
package/dist/index.d.ts
CHANGED
|
@@ -13,6 +13,7 @@ export { englishText, isTargetKey, isTranslationKey, targetKeys, translationKeys
|
|
|
13
13
|
export { canTranslate, isWidgetTranslationKey, NAMESPACES, } from "./translationKey.js";
|
|
14
14
|
export type { Namespace, TargetKey, TranslationKey, WidgetTranslationKey, } from "./translationKey.js";
|
|
15
15
|
export { createTranslator } from "./translator.js";
|
|
16
|
+
export { createUntranslatedI18n } from "./untranslatedI18n.js";
|
|
16
17
|
export type { Translator } from "./translator.js";
|
|
17
18
|
export type { I18nEvent, I18nLookup, Ti18n, TranslateFn, TranslateOptions, } from "./types.js";
|
|
18
19
|
export { localiseErrorMessage } from "./errorMessage.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,YAAY,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EACN,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,qBAAqB,GACrB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,YAAY,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EACN,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,UAAU,EACV,eAAe,GACf,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACN,YAAY,EACZ,sBAAsB,EACtB,UAAU,GACV,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACX,SAAS,EACT,SAAS,EACT,cAAc,EACd,oBAAoB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,YAAY,EACX,SAAS,EACT,UAAU,EACV,KAAK,EACL,WAAW,EACX,gBAAgB,GAChB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,YAAY,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EACN,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,qBAAqB,GACrB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,YAAY,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EACN,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,UAAU,EACV,eAAe,GACf,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACN,YAAY,EACZ,sBAAsB,EACtB,UAAU,GACV,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACX,SAAS,EACT,SAAS,EACT,cAAc,EACd,oBAAoB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,YAAY,EACX,SAAS,EACT,UAAU,EACV,KAAK,EACL,WAAW,EACX,gBAAgB,GAChB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -9,5 +9,6 @@ import { isClientSide } from "./util.js";
|
|
|
9
9
|
import { NAMESPACES, canTranslate, isWidgetTranslationKey } from "./translationKey.js";
|
|
10
10
|
import { englishText, isTargetKey, isTranslationKey, targetKeys, translationKeys } from "./serverTranslationKeys.js";
|
|
11
11
|
import { createTranslator } from "./translator.js";
|
|
12
|
+
import { createUntranslatedI18n } from "./untranslatedI18n.js";
|
|
12
13
|
import { localiseErrorMessage } from "./errorMessage.js";
|
|
13
|
-
export { BROWSER_UI_LANGUAGES, LANGUAGE_HEADER, LANGUAGE_QUERY_PARAM, LanguageCodes, Languages, NAMESPACES, browserLanguages, canTranslate, createTranslator, englishText, getLanguageDirection, i18nMiddleware, isClientSide, isLanguage, isTargetKey, isTranslationKey, isWidgetTranslationKey, languageHeaders, loadI18next, localiseErrorMessage, matchLanguage, matchLanguageTag, negotiateLanguage, parseLanguageList, requestLanguage, resolveLanguageList, targetKeys, translationKeys, widgetLanguageHeaders };
|
|
14
|
+
export { BROWSER_UI_LANGUAGES, LANGUAGE_HEADER, LANGUAGE_QUERY_PARAM, LanguageCodes, Languages, NAMESPACES, browserLanguages, canTranslate, createTranslator, createUntranslatedI18n, englishText, getLanguageDirection, i18nMiddleware, isClientSide, isLanguage, isTargetKey, isTranslationKey, isWidgetTranslationKey, languageHeaders, loadI18next, localiseErrorMessage, matchLanguage, matchLanguageTag, negotiateLanguage, parseLanguageList, requestLanguage, resolveLanguageList, targetKeys, translationKeys, widgetLanguageHeaders };
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEtD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EACN,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,qBAAqB,GACrB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EACN,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,UAAU,EACV,eAAe,GACf,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACN,YAAY,EACZ,sBAAsB,EACtB,UAAU,GACV,MAAM,qBAAqB,CAAC;AAO7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEtD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EACN,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,qBAAqB,GACrB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EACN,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,UAAU,EACV,eAAe,GACf,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACN,YAAY,EACZ,sBAAsB,EACtB,UAAU,GACV,MAAM,qBAAqB,CAAC;AAO7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAS/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"NO_POLKADOT_EXTENSION": "Polkadot-uitbreiding nie gevind nie"
|
|
4
4
|
},
|
|
5
5
|
"WIDGET": {
|
|
6
|
-
"SELECT_ALL": "Kies alle prente wat die volgende bevat
|
|
6
|
+
"SELECT_ALL": "Kies alle prente wat die volgende bevat",
|
|
7
7
|
"IF_NONE_CLICK_NEXT": "As daar geen is nie, klik Volgende",
|
|
8
8
|
"NEXT": "Volgende",
|
|
9
9
|
"SUBMIT": "Dien in",
|
|
@@ -43,18 +43,18 @@
|
|
|
43
43
|
"CHECKING": "Kontroleer tans…",
|
|
44
44
|
"SUBMIT": "Goed"
|
|
45
45
|
},
|
|
46
|
-
"AUDIO_CHALLENGE_LABEL": "
|
|
47
|
-
"AUDIO_INSTRUCTIONS": "
|
|
48
|
-
"AUDIO_INPUT_LABEL": "
|
|
49
|
-
"AUDIO_PLAY": "
|
|
50
|
-
"AUDIO_REPLAY": "
|
|
51
|
-
"AUDIO_PLAYING": "
|
|
52
|
-
"AUDIO_FINISHED": "
|
|
53
|
-
"AUDIO_PLAYBACK_FAILED": "
|
|
54
|
-
"AUDIO_INCORRECT": "
|
|
55
|
-
"AUDIO_SUBMIT": "
|
|
56
|
-
"AUDIO_CHECKING": "
|
|
57
|
-
"AUDIO_ALTERNATIVE": "
|
|
46
|
+
"AUDIO_CHALLENGE_LABEL": "Klankverifikasie-uitdaging",
|
|
47
|
+
"AUDIO_INSTRUCTIONS": "Luister en tik die {{count}} syfers wat jy hoor.",
|
|
48
|
+
"AUDIO_INPUT_LABEL": "Tik die {{count}} syfers wat jy hoor",
|
|
49
|
+
"AUDIO_PLAY": "Speel",
|
|
50
|
+
"AUDIO_REPLAY": "Speel weer",
|
|
51
|
+
"AUDIO_PLAYING": "Speel tans",
|
|
52
|
+
"AUDIO_FINISHED": "Klaar gespeel",
|
|
53
|
+
"AUDIO_PLAYBACK_FAILED": "Die klank kon nie gespeel word nie. Kontroleer jou toestel se volume en probeer weer.",
|
|
54
|
+
"AUDIO_INCORRECT": "Dit was nie reg nie. Hier is 'n nuwe een.",
|
|
55
|
+
"AUDIO_SUBMIT": "Verifieer",
|
|
56
|
+
"AUDIO_CHECKING": "Kontroleer tans",
|
|
57
|
+
"AUDIO_ALTERNATIVE": "Gebruik eerder klank"
|
|
58
58
|
},
|
|
59
59
|
"GENERAL": {
|
|
60
60
|
"JSON_LOAD_FAILED": "Kon nie JSON-lêer laai nie",
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"NO_POLKADOT_EXTENSION": "የPolkadot ቅጥያ አልተገኘም"
|
|
4
4
|
},
|
|
5
5
|
"WIDGET": {
|
|
6
|
-
"SELECT_ALL": "የሚከተሉትን የያዙትን ሁሉ
|
|
6
|
+
"SELECT_ALL": "የሚከተሉትን የያዙትን ሁሉ ይምረጡ",
|
|
7
7
|
"IF_NONE_CLICK_NEXT": "ምንም ከሌለ፣ ቀጣይ የሚለውን ይጫኑ",
|
|
8
8
|
"NEXT": "ቀጣይ",
|
|
9
9
|
"SUBMIT": "አስገባ",
|
|
@@ -43,18 +43,18 @@
|
|
|
43
43
|
"CHECKING": "በማረጋገጥ ላይ…",
|
|
44
44
|
"SUBMIT": "እሺ"
|
|
45
45
|
},
|
|
46
|
-
"AUDIO_CHALLENGE_LABEL": "
|
|
47
|
-
"AUDIO_INSTRUCTIONS": "
|
|
48
|
-
"AUDIO_INPUT_LABEL": "
|
|
49
|
-
"AUDIO_PLAY": "
|
|
50
|
-
"AUDIO_REPLAY": "
|
|
51
|
-
"AUDIO_PLAYING": "
|
|
52
|
-
"AUDIO_FINISHED": "
|
|
53
|
-
"AUDIO_PLAYBACK_FAILED": "
|
|
54
|
-
"AUDIO_INCORRECT": "
|
|
55
|
-
"AUDIO_SUBMIT": "
|
|
56
|
-
"AUDIO_CHECKING": "
|
|
57
|
-
"AUDIO_ALTERNATIVE": "
|
|
46
|
+
"AUDIO_CHALLENGE_LABEL": "የድምፅ ማረጋገጫ ፈተና",
|
|
47
|
+
"AUDIO_INSTRUCTIONS": "ያዳምጡና የሚሰሟቸውን {{count}} አሃዞች ይተይቡ።",
|
|
48
|
+
"AUDIO_INPUT_LABEL": "የሚሰሟቸውን {{count}} አሃዞች ይተይቡ",
|
|
49
|
+
"AUDIO_PLAY": "አጫውት",
|
|
50
|
+
"AUDIO_REPLAY": "እንደገና አጫውት",
|
|
51
|
+
"AUDIO_PLAYING": "በመጫወት ላይ",
|
|
52
|
+
"AUDIO_FINISHED": "መጫወት ተጠናቋል",
|
|
53
|
+
"AUDIO_PLAYBACK_FAILED": "ድምፁ ሊጫወት አልቻለም። የመሣሪያዎን ድምፅ መጠን ያረጋግጡና እንደገና ይሞክሩ።",
|
|
54
|
+
"AUDIO_INCORRECT": "ትክክል አልነበረም። አዲስ ይኸውና።",
|
|
55
|
+
"AUDIO_SUBMIT": "አረጋግጥ",
|
|
56
|
+
"AUDIO_CHECKING": "በማረጋገጥ ላይ",
|
|
57
|
+
"AUDIO_ALTERNATIVE": "በምትኩ ድምፅ ተጠቀም"
|
|
58
58
|
},
|
|
59
59
|
"GENERAL": {
|
|
60
60
|
"JSON_LOAD_FAILED": "የJSON ፋይሉን መጫን አልተቻለም",
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"NO_POLKADOT_EXTENSION": "No s'ha trobau a extensión de Polkadot"
|
|
4
4
|
},
|
|
5
5
|
"WIDGET": {
|
|
6
|
-
"SELECT_ALL": "Trigar totas as que contiengan o siguient
|
|
6
|
+
"SELECT_ALL": "Trigar totas as que contiengan o siguient",
|
|
7
7
|
"IF_NONE_CLICK_NEXT": "Si no n'hi ha garra, fe clic en Siguient",
|
|
8
8
|
"NEXT": "Siguient",
|
|
9
9
|
"SUBMIT": "Ninviar",
|
|
@@ -43,18 +43,18 @@
|
|
|
43
43
|
"CHECKING": "Comprebando…",
|
|
44
44
|
"SUBMIT": "Acceptar"
|
|
45
45
|
},
|
|
46
|
-
"AUDIO_CHALLENGE_LABEL": "
|
|
47
|
-
"AUDIO_INSTRUCTIONS": "
|
|
48
|
-
"AUDIO_INPUT_LABEL": "
|
|
49
|
-
"AUDIO_PLAY": "
|
|
50
|
-
"AUDIO_REPLAY": "
|
|
51
|
-
"AUDIO_PLAYING": "
|
|
52
|
-
"AUDIO_FINISHED": "
|
|
53
|
-
"AUDIO_PLAYBACK_FAILED": "
|
|
54
|
-
"AUDIO_INCORRECT": "
|
|
55
|
-
"AUDIO_SUBMIT": "
|
|
56
|
-
"AUDIO_CHECKING": "
|
|
57
|
-
"AUDIO_ALTERNATIVE": "
|
|
46
|
+
"AUDIO_CHALLENGE_LABEL": "Desafío de verificación d'audio",
|
|
47
|
+
"AUDIO_INSTRUCTIONS": "Escuita y escribe os {{count}} dichitos que sientes.",
|
|
48
|
+
"AUDIO_INPUT_LABEL": "Escribe os {{count}} dichitos que sientes",
|
|
49
|
+
"AUDIO_PLAY": "Reproducir",
|
|
50
|
+
"AUDIO_REPLAY": "Tornar a reproducir",
|
|
51
|
+
"AUDIO_PLAYING": "Reproducindo",
|
|
52
|
+
"AUDIO_FINISHED": "Reproducción rematada",
|
|
53
|
+
"AUDIO_PLAYBACK_FAILED": "No s'ha puesto reproducir l'audio. Comprueba o volumen d'o tuyo dispositivo y torna a intentar-lo.",
|
|
54
|
+
"AUDIO_INCORRECT": "No yera correcto. Aquí tiens un nuevo.",
|
|
55
|
+
"AUDIO_SUBMIT": "Verificar",
|
|
56
|
+
"AUDIO_CHECKING": "Comprebando",
|
|
57
|
+
"AUDIO_ALTERNATIVE": "Usar l'audio en cuenta"
|
|
58
58
|
},
|
|
59
59
|
"GENERAL": {
|
|
60
60
|
"JSON_LOAD_FAILED": "No s'ha puesto cargar o fichero JSON",
|
|
@@ -63,7 +63,7 @@
|
|
|
63
63
|
"NO_POLKADOT_EXTENSION": "لم يتم العثور على امتداد بولكادوت"
|
|
64
64
|
},
|
|
65
65
|
"WIDGET": {
|
|
66
|
-
"SELECT_ALL": "حدد كل الصور التي تحتوي على ما
|
|
66
|
+
"SELECT_ALL": "حدد كل الصور التي تحتوي على ما يلي",
|
|
67
67
|
"IF_NONE_CLICK_NEXT": "إذا لم يكن هناك أي شيء، انقر على التالي",
|
|
68
68
|
"NEXT": "التالي",
|
|
69
69
|
"SUBMIT": "إرسال",
|
|
@@ -103,18 +103,18 @@
|
|
|
103
103
|
"CHECKING": "جارٍ التحقق…",
|
|
104
104
|
"SUBMIT": "موافق"
|
|
105
105
|
},
|
|
106
|
-
"AUDIO_CHALLENGE_LABEL": "
|
|
107
|
-
"AUDIO_INSTRUCTIONS": "
|
|
108
|
-
"AUDIO_INPUT_LABEL": "
|
|
109
|
-
"AUDIO_PLAY": "
|
|
110
|
-
"AUDIO_REPLAY": "
|
|
111
|
-
"AUDIO_PLAYING": "
|
|
112
|
-
"AUDIO_FINISHED": "
|
|
113
|
-
"AUDIO_PLAYBACK_FAILED": "
|
|
114
|
-
"AUDIO_INCORRECT": "
|
|
115
|
-
"AUDIO_SUBMIT": "
|
|
116
|
-
"AUDIO_CHECKING": "
|
|
117
|
-
"AUDIO_ALTERNATIVE": "
|
|
106
|
+
"AUDIO_CHALLENGE_LABEL": "تحدي التحقق الصوتي",
|
|
107
|
+
"AUDIO_INSTRUCTIONS": "استمع واكتب الأرقام الـ {{count}} التي تسمعها.",
|
|
108
|
+
"AUDIO_INPUT_LABEL": "اكتب الأرقام الـ {{count}} التي تسمعها",
|
|
109
|
+
"AUDIO_PLAY": "تشغيل",
|
|
110
|
+
"AUDIO_REPLAY": "إعادة التشغيل",
|
|
111
|
+
"AUDIO_PLAYING": "جارٍ التشغيل",
|
|
112
|
+
"AUDIO_FINISHED": "انتهى التشغيل",
|
|
113
|
+
"AUDIO_PLAYBACK_FAILED": "تعذّر تشغيل الصوت. تحقق من مستوى صوت جهازك وحاول مرة أخرى.",
|
|
114
|
+
"AUDIO_INCORRECT": "لم تكن الإجابة صحيحة. إليك واحدًا جديدًا.",
|
|
115
|
+
"AUDIO_SUBMIT": "تحقق",
|
|
116
|
+
"AUDIO_CHECKING": "جارٍ التحقق",
|
|
117
|
+
"AUDIO_ALTERNATIVE": "استخدم الصوت بدلاً من ذلك"
|
|
118
118
|
},
|
|
119
119
|
"CAPTCHA": {
|
|
120
120
|
"PARSE_ERROR": "خطأ في تحليل كلمة التحقق",
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"NO_POLKADOT_EXTENSION": "Polkadot এক্সটেনশ্বন পোৱা নগ'ল"
|
|
4
4
|
},
|
|
5
5
|
"WIDGET": {
|
|
6
|
-
"SELECT_ALL": "তলত দিয়াটো থকা সকলো ছবি বাছনি
|
|
6
|
+
"SELECT_ALL": "তলত দিয়াটো থকা সকলো ছবি বাছনি কৰক",
|
|
7
7
|
"IF_NONE_CLICK_NEXT": "যদি নাই, তেন্তে \"পৰৱৰ্তী\" ক্লিক কৰক",
|
|
8
8
|
"NEXT": "পৰৱৰ্তী",
|
|
9
9
|
"SUBMIT": "দাখিল কৰক",
|
|
@@ -43,18 +43,18 @@
|
|
|
43
43
|
"CHECKING": "পৰীক্ষা কৰি থকা হৈছে…",
|
|
44
44
|
"SUBMIT": "ঠিক আছে"
|
|
45
45
|
},
|
|
46
|
-
"AUDIO_CHALLENGE_LABEL": "
|
|
47
|
-
"AUDIO_INSTRUCTIONS": "
|
|
48
|
-
"AUDIO_INPUT_LABEL": "
|
|
49
|
-
"AUDIO_PLAY": "
|
|
50
|
-
"AUDIO_REPLAY": "
|
|
51
|
-
"AUDIO_PLAYING": "
|
|
52
|
-
"AUDIO_FINISHED": "
|
|
53
|
-
"AUDIO_PLAYBACK_FAILED": "
|
|
54
|
-
"AUDIO_INCORRECT": "
|
|
55
|
-
"AUDIO_SUBMIT": "
|
|
56
|
-
"AUDIO_CHECKING": "
|
|
57
|
-
"AUDIO_ALTERNATIVE": "
|
|
46
|
+
"AUDIO_CHALLENGE_LABEL": "অডিঅ' সত্যাপন প্ৰত্যাহ্বান",
|
|
47
|
+
"AUDIO_INSTRUCTIONS": "শুনক আৰু আপুনি শুনা {{count}}টা অংক টাইপ কৰক।",
|
|
48
|
+
"AUDIO_INPUT_LABEL": "আপুনি শুনা {{count}}টা অংক টাইপ কৰক",
|
|
49
|
+
"AUDIO_PLAY": "বজাওক",
|
|
50
|
+
"AUDIO_REPLAY": "পুনৰ বজাওক",
|
|
51
|
+
"AUDIO_PLAYING": "বজি আছে",
|
|
52
|
+
"AUDIO_FINISHED": "বজোৱা সমাপ্ত হ'ল",
|
|
53
|
+
"AUDIO_PLAYBACK_FAILED": "অডিঅ' বজাব পৰা নগ'ল। আপোনাৰ ডিভাইচৰ ভলিউম পৰীক্ষা কৰি পুনৰ চেষ্টা কৰক।",
|
|
54
|
+
"AUDIO_INCORRECT": "সেয়া শুদ্ধ নাছিল। এইটো নতুন এটা।",
|
|
55
|
+
"AUDIO_SUBMIT": "সত্যাপন কৰক",
|
|
56
|
+
"AUDIO_CHECKING": "পৰীক্ষা কৰি থকা হৈছে",
|
|
57
|
+
"AUDIO_ALTERNATIVE": "ইয়াৰ পৰিৱৰ্তে অডিঅ' ব্যৱহাৰ কৰক"
|
|
58
58
|
},
|
|
59
59
|
"GENERAL": {
|
|
60
60
|
"JSON_LOAD_FAILED": "JSON ফাইল ল'ড কৰাত বিফল",
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"NO_POLKADOT_EXTENSION": "Nun s'atopó la estensión de Polkadot"
|
|
4
4
|
},
|
|
5
5
|
"WIDGET": {
|
|
6
|
-
"SELECT_ALL": "Esbilla toles que contengan lo siguiente
|
|
6
|
+
"SELECT_ALL": "Esbilla toles que contengan lo siguiente",
|
|
7
7
|
"IF_NONE_CLICK_NEXT": "Si nun hai nenguna, calca en Siguiente",
|
|
8
8
|
"NEXT": "Siguiente",
|
|
9
9
|
"SUBMIT": "Unviar",
|
|
@@ -43,18 +43,18 @@
|
|
|
43
43
|
"CHECKING": "Comprobando…",
|
|
44
44
|
"SUBMIT": "Aceutar"
|
|
45
45
|
},
|
|
46
|
-
"AUDIO_CHALLENGE_LABEL": "
|
|
47
|
-
"AUDIO_INSTRUCTIONS": "
|
|
48
|
-
"AUDIO_INPUT_LABEL": "
|
|
49
|
-
"AUDIO_PLAY": "
|
|
50
|
-
"AUDIO_REPLAY": "
|
|
51
|
-
"AUDIO_PLAYING": "
|
|
52
|
-
"AUDIO_FINISHED": "
|
|
53
|
-
"AUDIO_PLAYBACK_FAILED": "
|
|
54
|
-
"AUDIO_INCORRECT": "
|
|
55
|
-
"AUDIO_SUBMIT": "
|
|
56
|
-
"AUDIO_CHECKING": "
|
|
57
|
-
"AUDIO_ALTERNATIVE": "
|
|
46
|
+
"AUDIO_CHALLENGE_LABEL": "Desafíu de verificación d'audiu",
|
|
47
|
+
"AUDIO_INSTRUCTIONS": "Escucha y escribi los {{count}} díxitos que sientes.",
|
|
48
|
+
"AUDIO_INPUT_LABEL": "Escribi los {{count}} díxitos que sientes",
|
|
49
|
+
"AUDIO_PLAY": "Reproducir",
|
|
50
|
+
"AUDIO_REPLAY": "Volver reproducir",
|
|
51
|
+
"AUDIO_PLAYING": "Reproduciendo",
|
|
52
|
+
"AUDIO_FINISHED": "Reproducción acabada",
|
|
53
|
+
"AUDIO_PLAYBACK_FAILED": "Nun se pudo reproducir l'audiu. Comprueba'l volume del preséu y vuelvi intentalo.",
|
|
54
|
+
"AUDIO_INCORRECT": "Nun yera correctu. Equí tienes ún nuevu.",
|
|
55
|
+
"AUDIO_SUBMIT": "Verificar",
|
|
56
|
+
"AUDIO_CHECKING": "Comprobando",
|
|
57
|
+
"AUDIO_ALTERNATIVE": "Usar audiu en cuenta"
|
|
58
58
|
},
|
|
59
59
|
"GENERAL": {
|
|
60
60
|
"JSON_LOAD_FAILED": "Nun pudo cargase'l ficheru JSON",
|
|
@@ -63,7 +63,7 @@
|
|
|
63
63
|
"NO_POLKADOT_EXTENSION": "Polkadot tətbiqi tapılmadı"
|
|
64
64
|
},
|
|
65
65
|
"WIDGET": {
|
|
66
|
-
"SELECT_ALL": "Aşağıdakını ehtiva edən bütün şəkilləri seçin
|
|
66
|
+
"SELECT_ALL": "Aşağıdakını ehtiva edən bütün şəkilləri seçin",
|
|
67
67
|
"IF_NONE_CLICK_NEXT": "Heç biri yoxdursa, Növbəti düyməsini basın",
|
|
68
68
|
"NEXT": "Növbəti",
|
|
69
69
|
"SUBMIT": "Təqdim et",
|
|
@@ -103,18 +103,18 @@
|
|
|
103
103
|
"CHECKING": "Yoxlanılır…",
|
|
104
104
|
"SUBMIT": "OK"
|
|
105
105
|
},
|
|
106
|
-
"AUDIO_CHALLENGE_LABEL": "
|
|
107
|
-
"AUDIO_INSTRUCTIONS": "
|
|
108
|
-
"AUDIO_INPUT_LABEL": "
|
|
109
|
-
"AUDIO_PLAY": "
|
|
110
|
-
"AUDIO_REPLAY": "
|
|
111
|
-
"AUDIO_PLAYING": "
|
|
112
|
-
"AUDIO_FINISHED": "
|
|
113
|
-
"AUDIO_PLAYBACK_FAILED": "
|
|
114
|
-
"AUDIO_INCORRECT": "
|
|
115
|
-
"AUDIO_SUBMIT": "
|
|
116
|
-
"AUDIO_CHECKING": "
|
|
117
|
-
"AUDIO_ALTERNATIVE": "
|
|
106
|
+
"AUDIO_CHALLENGE_LABEL": "Səsli yoxlama tapşırığı",
|
|
107
|
+
"AUDIO_INSTRUCTIONS": "Dinləyin və eşitdiyiniz {{count}} rəqəmi yazın.",
|
|
108
|
+
"AUDIO_INPUT_LABEL": "Eşitdiyiniz {{count}} rəqəmi yazın",
|
|
109
|
+
"AUDIO_PLAY": "Oxut",
|
|
110
|
+
"AUDIO_REPLAY": "Yenidən oxut",
|
|
111
|
+
"AUDIO_PLAYING": "Oxudulur",
|
|
112
|
+
"AUDIO_FINISHED": "Oxutma bitdi",
|
|
113
|
+
"AUDIO_PLAYBACK_FAILED": "Səs oxudula bilmədi. Cihazınızın səs səviyyəsini yoxlayın və yenidən cəhd edin.",
|
|
114
|
+
"AUDIO_INCORRECT": "Bu düzgün deyildi. Budur, yenisi.",
|
|
115
|
+
"AUDIO_SUBMIT": "Təsdiqlə",
|
|
116
|
+
"AUDIO_CHECKING": "Yoxlanılır",
|
|
117
|
+
"AUDIO_ALTERNATIVE": "Əvəzinə səsdən istifadə edin"
|
|
118
118
|
},
|
|
119
119
|
"CAPTCHA": {
|
|
120
120
|
"PARSE_ERROR": "Captcha analiz edərkən səhv",
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"NO_POLKADOT_EXTENSION": "Пашырэнне Polkadot не знойдзена"
|
|
4
4
|
},
|
|
5
5
|
"WIDGET": {
|
|
6
|
-
"SELECT_ALL": "Выберыце ўсе выявы, на якіх
|
|
6
|
+
"SELECT_ALL": "Выберыце ўсе выявы, на якіх ёсць",
|
|
7
7
|
"IF_NONE_CLICK_NEXT": "Калі такіх няма, націсніце «Далей»",
|
|
8
8
|
"NEXT": "Далей",
|
|
9
9
|
"SUBMIT": "Адправіць",
|
|
@@ -43,18 +43,18 @@
|
|
|
43
43
|
"CHECKING": "Праверка…",
|
|
44
44
|
"SUBMIT": "OK"
|
|
45
45
|
},
|
|
46
|
-
"AUDIO_CHALLENGE_LABEL": "
|
|
47
|
-
"AUDIO_INSTRUCTIONS": "
|
|
48
|
-
"AUDIO_INPUT_LABEL": "
|
|
49
|
-
"AUDIO_PLAY": "
|
|
50
|
-
"AUDIO_REPLAY": "
|
|
51
|
-
"AUDIO_PLAYING": "
|
|
52
|
-
"AUDIO_FINISHED": "
|
|
53
|
-
"AUDIO_PLAYBACK_FAILED": "
|
|
54
|
-
"AUDIO_INCORRECT": "
|
|
55
|
-
"AUDIO_SUBMIT": "
|
|
56
|
-
"AUDIO_CHECKING": "
|
|
57
|
-
"AUDIO_ALTERNATIVE": "
|
|
46
|
+
"AUDIO_CHALLENGE_LABEL": "Гукавая праверка",
|
|
47
|
+
"AUDIO_INSTRUCTIONS": "Праслухайце і ўвядзіце лічбы, якія пачуеце (колькасць: {{count}}).",
|
|
48
|
+
"AUDIO_INPUT_LABEL": "Увядзіце пачутыя лічбы (колькасць: {{count}})",
|
|
49
|
+
"AUDIO_PLAY": "Прайграць",
|
|
50
|
+
"AUDIO_REPLAY": "Прайграць яшчэ раз",
|
|
51
|
+
"AUDIO_PLAYING": "Прайграецца",
|
|
52
|
+
"AUDIO_FINISHED": "Прайграванне скончана",
|
|
53
|
+
"AUDIO_PLAYBACK_FAILED": "Не ўдалося прайграць гук. Праверце гучнасць прылады і паспрабуйце яшчэ раз.",
|
|
54
|
+
"AUDIO_INCORRECT": "Няправільна. Вось новае заданне.",
|
|
55
|
+
"AUDIO_SUBMIT": "Пацвердзіць",
|
|
56
|
+
"AUDIO_CHECKING": "Правяраем",
|
|
57
|
+
"AUDIO_ALTERNATIVE": "Выкарыстаць гук"
|
|
58
58
|
},
|
|
59
59
|
"GENERAL": {
|
|
60
60
|
"JSON_LOAD_FAILED": "Не ўдалося загрузіць файл JSON",
|