From 6b7d3fe4a2ca83ee5f16e1ee2f5f665526a5f43d Mon Sep 17 00:00:00 2001 From: Samuel Weibel Date: Wed, 19 Feb 2025 21:13:57 +0100 Subject: [PATCH 1/3] Change default language files path From admin/i18n/{lang}/translations.json to admin/i18n/en.json The old path is still checked with second priority --- src/translate-adapter-handlers.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/translate-adapter-handlers.ts b/src/translate-adapter-handlers.ts index 0779fb0..45c3a39 100644 --- a/src/translate-adapter-handlers.ts +++ b/src/translate-adapter-handlers.ts @@ -116,9 +116,10 @@ export async function parseOptions(options: { if (options.base) { i18nBases = options.base.map((p) => path.resolve(p)); } else { - const defaultPath = path.join(admin, "i18n", "en", "translations.json"); + const defaultPath = path.join(admin, "i18n", "en.json"); i18nBases = [ defaultPath, + path.join(admin, "i18n", "en", "translations.json"), path.join(admin, "src", "i18n", "en.json"), ].filter(existsSync); if (i18nBases.length === 0) { From 1ec6f75568ec31f64f355b4bd293cd6324c8a4e0 Mon Sep 17 00:00:00 2001 From: Samuel Weibel Date: Wed, 19 Feb 2025 21:23:59 +0100 Subject: [PATCH 2/3] Fix no-json-yet test --- .../expected/admin/i18n/{de/translations.json => de.json} | 0 .../expected/admin/i18n/{en/translations.json => en.json} | 0 .../expected/admin/i18n/{es/translations.json => es.json} | 0 .../expected/admin/i18n/{fr/translations.json => fr.json} | 0 .../expected/admin/i18n/{it/translations.json => it.json} | 0 .../expected/admin/i18n/{nl/translations.json => nl.json} | 0 .../expected/admin/i18n/{pl/translations.json => pl.json} | 0 .../expected/admin/i18n/{pt/translations.json => pt.json} | 0 .../expected/admin/i18n/{ru/translations.json => ru.json} | 0 .../expected/admin/i18n/{uk/translations.json => uk.json} | 0 .../expected/admin/i18n/{zh-cn/translations.json => zh-cn.json} | 0 11 files changed, 0 insertions(+), 0 deletions(-) rename test/data/no-json-yet/expected/admin/i18n/{de/translations.json => de.json} (100%) rename test/data/no-json-yet/expected/admin/i18n/{en/translations.json => en.json} (100%) rename test/data/no-json-yet/expected/admin/i18n/{es/translations.json => es.json} (100%) rename test/data/no-json-yet/expected/admin/i18n/{fr/translations.json => fr.json} (100%) rename test/data/no-json-yet/expected/admin/i18n/{it/translations.json => it.json} (100%) rename test/data/no-json-yet/expected/admin/i18n/{nl/translations.json => nl.json} (100%) rename test/data/no-json-yet/expected/admin/i18n/{pl/translations.json => pl.json} (100%) rename test/data/no-json-yet/expected/admin/i18n/{pt/translations.json => pt.json} (100%) rename test/data/no-json-yet/expected/admin/i18n/{ru/translations.json => ru.json} (100%) rename test/data/no-json-yet/expected/admin/i18n/{uk/translations.json => uk.json} (100%) rename test/data/no-json-yet/expected/admin/i18n/{zh-cn/translations.json => zh-cn.json} (100%) diff --git a/test/data/no-json-yet/expected/admin/i18n/de/translations.json b/test/data/no-json-yet/expected/admin/i18n/de.json similarity index 100% rename from test/data/no-json-yet/expected/admin/i18n/de/translations.json rename to test/data/no-json-yet/expected/admin/i18n/de.json diff --git a/test/data/no-json-yet/expected/admin/i18n/en/translations.json b/test/data/no-json-yet/expected/admin/i18n/en.json similarity index 100% rename from test/data/no-json-yet/expected/admin/i18n/en/translations.json rename to test/data/no-json-yet/expected/admin/i18n/en.json diff --git a/test/data/no-json-yet/expected/admin/i18n/es/translations.json b/test/data/no-json-yet/expected/admin/i18n/es.json similarity index 100% rename from test/data/no-json-yet/expected/admin/i18n/es/translations.json rename to test/data/no-json-yet/expected/admin/i18n/es.json diff --git a/test/data/no-json-yet/expected/admin/i18n/fr/translations.json b/test/data/no-json-yet/expected/admin/i18n/fr.json similarity index 100% rename from test/data/no-json-yet/expected/admin/i18n/fr/translations.json rename to test/data/no-json-yet/expected/admin/i18n/fr.json diff --git a/test/data/no-json-yet/expected/admin/i18n/it/translations.json b/test/data/no-json-yet/expected/admin/i18n/it.json similarity index 100% rename from test/data/no-json-yet/expected/admin/i18n/it/translations.json rename to test/data/no-json-yet/expected/admin/i18n/it.json diff --git a/test/data/no-json-yet/expected/admin/i18n/nl/translations.json b/test/data/no-json-yet/expected/admin/i18n/nl.json similarity index 100% rename from test/data/no-json-yet/expected/admin/i18n/nl/translations.json rename to test/data/no-json-yet/expected/admin/i18n/nl.json diff --git a/test/data/no-json-yet/expected/admin/i18n/pl/translations.json b/test/data/no-json-yet/expected/admin/i18n/pl.json similarity index 100% rename from test/data/no-json-yet/expected/admin/i18n/pl/translations.json rename to test/data/no-json-yet/expected/admin/i18n/pl.json diff --git a/test/data/no-json-yet/expected/admin/i18n/pt/translations.json b/test/data/no-json-yet/expected/admin/i18n/pt.json similarity index 100% rename from test/data/no-json-yet/expected/admin/i18n/pt/translations.json rename to test/data/no-json-yet/expected/admin/i18n/pt.json diff --git a/test/data/no-json-yet/expected/admin/i18n/ru/translations.json b/test/data/no-json-yet/expected/admin/i18n/ru.json similarity index 100% rename from test/data/no-json-yet/expected/admin/i18n/ru/translations.json rename to test/data/no-json-yet/expected/admin/i18n/ru.json diff --git a/test/data/no-json-yet/expected/admin/i18n/uk/translations.json b/test/data/no-json-yet/expected/admin/i18n/uk.json similarity index 100% rename from test/data/no-json-yet/expected/admin/i18n/uk/translations.json rename to test/data/no-json-yet/expected/admin/i18n/uk.json diff --git a/test/data/no-json-yet/expected/admin/i18n/zh-cn/translations.json b/test/data/no-json-yet/expected/admin/i18n/zh-cn.json similarity index 100% rename from test/data/no-json-yet/expected/admin/i18n/zh-cn/translations.json rename to test/data/no-json-yet/expected/admin/i18n/zh-cn.json From 9b88cece69080a8678d7a8070a337d0e437d132b Mon Sep 17 00:00:00 2001 From: Samuel Weibel Date: Wed, 19 Feb 2025 21:32:57 +0100 Subject: [PATCH 3/3] Add unit tests for new directory structure --- .../update-words-v2/expected/admin/i18n/de.json | 4 ++++ .../update-words-v2/expected/admin/i18n/en.json | 4 ++++ .../update-words-v2/expected/admin/i18n/es.json | 4 ++++ .../update-words-v2/expected/admin/i18n/fr.json | 4 ++++ .../update-words-v2/expected/admin/i18n/it.json | 4 ++++ .../update-words-v2/expected/admin/i18n/nl.json | 4 ++++ .../update-words-v2/expected/admin/i18n/pl.json | 4 ++++ .../update-words-v2/expected/admin/i18n/pt.json | 4 ++++ .../update-words-v2/expected/admin/i18n/ru.json | 4 ++++ .../update-words-v2/expected/admin/i18n/uk.json | 4 ++++ .../update-words-v2/expected/admin/i18n/zh-cn.json | 4 ++++ test/data/update-words-v2/expected/admin/words.js | 13 +++++++++++++ test/data/update-words-v2/expected/io-package.json | 1 + test/data/update-words-v2/input/admin/i18n/de.json | 4 ++++ test/data/update-words-v2/input/admin/i18n/en.json | 4 ++++ test/data/update-words-v2/input/admin/i18n/es.json | 4 ++++ test/data/update-words-v2/input/admin/i18n/fr.json | 4 ++++ test/data/update-words-v2/input/admin/i18n/it.json | 4 ++++ test/data/update-words-v2/input/admin/i18n/nl.json | 4 ++++ test/data/update-words-v2/input/admin/i18n/pl.json | 4 ++++ test/data/update-words-v2/input/admin/i18n/pt.json | 4 ++++ test/data/update-words-v2/input/admin/i18n/ru.json | 4 ++++ test/data/update-words-v2/input/admin/i18n/uk.json | 4 ++++ .../update-words-v2/input/admin/i18n/zh-cn.json | 4 ++++ test/data/update-words-v2/input/admin/words.js | 12 ++++++++++++ test/data/update-words-v2/input/io-package.json | 1 + test/translate-adapter.test.ts | 5 ++++- 27 files changed, 119 insertions(+), 1 deletion(-) create mode 100644 test/data/update-words-v2/expected/admin/i18n/de.json create mode 100644 test/data/update-words-v2/expected/admin/i18n/en.json create mode 100644 test/data/update-words-v2/expected/admin/i18n/es.json create mode 100644 test/data/update-words-v2/expected/admin/i18n/fr.json create mode 100644 test/data/update-words-v2/expected/admin/i18n/it.json create mode 100644 test/data/update-words-v2/expected/admin/i18n/nl.json create mode 100644 test/data/update-words-v2/expected/admin/i18n/pl.json create mode 100644 test/data/update-words-v2/expected/admin/i18n/pt.json create mode 100644 test/data/update-words-v2/expected/admin/i18n/ru.json create mode 100644 test/data/update-words-v2/expected/admin/i18n/uk.json create mode 100644 test/data/update-words-v2/expected/admin/i18n/zh-cn.json create mode 100644 test/data/update-words-v2/expected/admin/words.js create mode 100644 test/data/update-words-v2/expected/io-package.json create mode 100644 test/data/update-words-v2/input/admin/i18n/de.json create mode 100644 test/data/update-words-v2/input/admin/i18n/en.json create mode 100644 test/data/update-words-v2/input/admin/i18n/es.json create mode 100644 test/data/update-words-v2/input/admin/i18n/fr.json create mode 100644 test/data/update-words-v2/input/admin/i18n/it.json create mode 100644 test/data/update-words-v2/input/admin/i18n/nl.json create mode 100644 test/data/update-words-v2/input/admin/i18n/pl.json create mode 100644 test/data/update-words-v2/input/admin/i18n/pt.json create mode 100644 test/data/update-words-v2/input/admin/i18n/ru.json create mode 100644 test/data/update-words-v2/input/admin/i18n/uk.json create mode 100644 test/data/update-words-v2/input/admin/i18n/zh-cn.json create mode 100644 test/data/update-words-v2/input/admin/words.js create mode 100644 test/data/update-words-v2/input/io-package.json diff --git a/test/data/update-words-v2/expected/admin/i18n/de.json b/test/data/update-words-v2/expected/admin/i18n/de.json new file mode 100644 index 0000000..d43f0d3 --- /dev/null +++ b/test/data/update-words-v2/expected/admin/i18n/de.json @@ -0,0 +1,4 @@ +{ + "Example": "Beispiel", + "Example 2": "Beispiel 2" +} diff --git a/test/data/update-words-v2/expected/admin/i18n/en.json b/test/data/update-words-v2/expected/admin/i18n/en.json new file mode 100644 index 0000000..6edf949 --- /dev/null +++ b/test/data/update-words-v2/expected/admin/i18n/en.json @@ -0,0 +1,4 @@ +{ + "Example": "Example", + "Example 2": "Example 2" +} diff --git a/test/data/update-words-v2/expected/admin/i18n/es.json b/test/data/update-words-v2/expected/admin/i18n/es.json new file mode 100644 index 0000000..02d83c2 --- /dev/null +++ b/test/data/update-words-v2/expected/admin/i18n/es.json @@ -0,0 +1,4 @@ +{ + "Example": "Ejemplo", + "Example 2": "Ejemplo 2" +} diff --git a/test/data/update-words-v2/expected/admin/i18n/fr.json b/test/data/update-words-v2/expected/admin/i18n/fr.json new file mode 100644 index 0000000..fae3846 --- /dev/null +++ b/test/data/update-words-v2/expected/admin/i18n/fr.json @@ -0,0 +1,4 @@ +{ + "Example": "Exemple", + "Example 2": "Exemple 2" +} diff --git a/test/data/update-words-v2/expected/admin/i18n/it.json b/test/data/update-words-v2/expected/admin/i18n/it.json new file mode 100644 index 0000000..daafc03 --- /dev/null +++ b/test/data/update-words-v2/expected/admin/i18n/it.json @@ -0,0 +1,4 @@ +{ + "Example": "Esempio", + "Example 2": "Esempio 2" +} diff --git a/test/data/update-words-v2/expected/admin/i18n/nl.json b/test/data/update-words-v2/expected/admin/i18n/nl.json new file mode 100644 index 0000000..fc374f4 --- /dev/null +++ b/test/data/update-words-v2/expected/admin/i18n/nl.json @@ -0,0 +1,4 @@ +{ + "Example": "Voorbeeld", + "Example 2": "Voorbeeld 2" +} diff --git a/test/data/update-words-v2/expected/admin/i18n/pl.json b/test/data/update-words-v2/expected/admin/i18n/pl.json new file mode 100644 index 0000000..07c0b2d --- /dev/null +++ b/test/data/update-words-v2/expected/admin/i18n/pl.json @@ -0,0 +1,4 @@ +{ + "Example": "Przykład", + "Example 2": "Przykład 2" +} diff --git a/test/data/update-words-v2/expected/admin/i18n/pt.json b/test/data/update-words-v2/expected/admin/i18n/pt.json new file mode 100644 index 0000000..c2c9c5e --- /dev/null +++ b/test/data/update-words-v2/expected/admin/i18n/pt.json @@ -0,0 +1,4 @@ +{ + "Example": "Exemplo", + "Example 2": "Exemplo 2" +} diff --git a/test/data/update-words-v2/expected/admin/i18n/ru.json b/test/data/update-words-v2/expected/admin/i18n/ru.json new file mode 100644 index 0000000..82f5345 --- /dev/null +++ b/test/data/update-words-v2/expected/admin/i18n/ru.json @@ -0,0 +1,4 @@ +{ + "Example": "пример", + "Example 2": "пример 2" +} diff --git a/test/data/update-words-v2/expected/admin/i18n/uk.json b/test/data/update-words-v2/expected/admin/i18n/uk.json new file mode 100644 index 0000000..0eb4c6d --- /dev/null +++ b/test/data/update-words-v2/expected/admin/i18n/uk.json @@ -0,0 +1,4 @@ +{ + "Example": "Приклад", + "Example 2": "Приклад 2" +} diff --git a/test/data/update-words-v2/expected/admin/i18n/zh-cn.json b/test/data/update-words-v2/expected/admin/i18n/zh-cn.json new file mode 100644 index 0000000..0157880 --- /dev/null +++ b/test/data/update-words-v2/expected/admin/i18n/zh-cn.json @@ -0,0 +1,4 @@ +{ + "Example": "例子", + "Example 2": "例子2" +} diff --git a/test/data/update-words-v2/expected/admin/words.js b/test/data/update-words-v2/expected/admin/words.js new file mode 100644 index 0000000..f870b3a --- /dev/null +++ b/test/data/update-words-v2/expected/admin/words.js @@ -0,0 +1,13 @@ +/*global systemDictionary:true */ +/* ++===================== DO NOT MODIFY ======================+ +| This file was generated by translate-adapter, please use | +| `translate-adapter adminLanguages2words` to update it. | ++===================== DO NOT MODIFY ======================+ +*/ +'use strict'; + +systemDictionary = { + "Example": { "en": "Example", "de": "Beispiel", "ru": "пример", "pt": "Exemplo", "nl": "Voorbeeld", "fr": "Exemple", "it": "Esempio", "es": "Ejemplo", "pl": "Przykład", "uk": "Приклад", "zh-cn": "例子"}, + "Example 2": { "en": "Example 2", "de": "Beispiel 2", "ru": "пример 2", "pt": "Exemplo 2", "nl": "Voorbeeld 2", "fr": "Exemple 2", "it": "Esempio 2", "es": "Ejemplo 2", "pl": "Przykład 2", "uk": "Приклад 2", "zh-cn": "例子2"}, +}; \ No newline at end of file diff --git a/test/data/update-words-v2/expected/io-package.json b/test/data/update-words-v2/expected/io-package.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/test/data/update-words-v2/expected/io-package.json @@ -0,0 +1 @@ +{} diff --git a/test/data/update-words-v2/input/admin/i18n/de.json b/test/data/update-words-v2/input/admin/i18n/de.json new file mode 100644 index 0000000..d43f0d3 --- /dev/null +++ b/test/data/update-words-v2/input/admin/i18n/de.json @@ -0,0 +1,4 @@ +{ + "Example": "Beispiel", + "Example 2": "Beispiel 2" +} diff --git a/test/data/update-words-v2/input/admin/i18n/en.json b/test/data/update-words-v2/input/admin/i18n/en.json new file mode 100644 index 0000000..6edf949 --- /dev/null +++ b/test/data/update-words-v2/input/admin/i18n/en.json @@ -0,0 +1,4 @@ +{ + "Example": "Example", + "Example 2": "Example 2" +} diff --git a/test/data/update-words-v2/input/admin/i18n/es.json b/test/data/update-words-v2/input/admin/i18n/es.json new file mode 100644 index 0000000..02d83c2 --- /dev/null +++ b/test/data/update-words-v2/input/admin/i18n/es.json @@ -0,0 +1,4 @@ +{ + "Example": "Ejemplo", + "Example 2": "Ejemplo 2" +} diff --git a/test/data/update-words-v2/input/admin/i18n/fr.json b/test/data/update-words-v2/input/admin/i18n/fr.json new file mode 100644 index 0000000..fae3846 --- /dev/null +++ b/test/data/update-words-v2/input/admin/i18n/fr.json @@ -0,0 +1,4 @@ +{ + "Example": "Exemple", + "Example 2": "Exemple 2" +} diff --git a/test/data/update-words-v2/input/admin/i18n/it.json b/test/data/update-words-v2/input/admin/i18n/it.json new file mode 100644 index 0000000..daafc03 --- /dev/null +++ b/test/data/update-words-v2/input/admin/i18n/it.json @@ -0,0 +1,4 @@ +{ + "Example": "Esempio", + "Example 2": "Esempio 2" +} diff --git a/test/data/update-words-v2/input/admin/i18n/nl.json b/test/data/update-words-v2/input/admin/i18n/nl.json new file mode 100644 index 0000000..fc374f4 --- /dev/null +++ b/test/data/update-words-v2/input/admin/i18n/nl.json @@ -0,0 +1,4 @@ +{ + "Example": "Voorbeeld", + "Example 2": "Voorbeeld 2" +} diff --git a/test/data/update-words-v2/input/admin/i18n/pl.json b/test/data/update-words-v2/input/admin/i18n/pl.json new file mode 100644 index 0000000..07c0b2d --- /dev/null +++ b/test/data/update-words-v2/input/admin/i18n/pl.json @@ -0,0 +1,4 @@ +{ + "Example": "Przykład", + "Example 2": "Przykład 2" +} diff --git a/test/data/update-words-v2/input/admin/i18n/pt.json b/test/data/update-words-v2/input/admin/i18n/pt.json new file mode 100644 index 0000000..c2c9c5e --- /dev/null +++ b/test/data/update-words-v2/input/admin/i18n/pt.json @@ -0,0 +1,4 @@ +{ + "Example": "Exemplo", + "Example 2": "Exemplo 2" +} diff --git a/test/data/update-words-v2/input/admin/i18n/ru.json b/test/data/update-words-v2/input/admin/i18n/ru.json new file mode 100644 index 0000000..82f5345 --- /dev/null +++ b/test/data/update-words-v2/input/admin/i18n/ru.json @@ -0,0 +1,4 @@ +{ + "Example": "пример", + "Example 2": "пример 2" +} diff --git a/test/data/update-words-v2/input/admin/i18n/uk.json b/test/data/update-words-v2/input/admin/i18n/uk.json new file mode 100644 index 0000000..0eb4c6d --- /dev/null +++ b/test/data/update-words-v2/input/admin/i18n/uk.json @@ -0,0 +1,4 @@ +{ + "Example": "Приклад", + "Example 2": "Приклад 2" +} diff --git a/test/data/update-words-v2/input/admin/i18n/zh-cn.json b/test/data/update-words-v2/input/admin/i18n/zh-cn.json new file mode 100644 index 0000000..0157880 --- /dev/null +++ b/test/data/update-words-v2/input/admin/i18n/zh-cn.json @@ -0,0 +1,4 @@ +{ + "Example": "例子", + "Example 2": "例子2" +} diff --git a/test/data/update-words-v2/input/admin/words.js b/test/data/update-words-v2/input/admin/words.js new file mode 100644 index 0000000..d1c8c12 --- /dev/null +++ b/test/data/update-words-v2/input/admin/words.js @@ -0,0 +1,12 @@ +/*global systemDictionary:true */ +/* ++===================== DO NOT MODIFY ======================+ +| This file was generated by translate-adapter, please use | +| `translate-adapter adminLanguages2words` to update it. | ++===================== DO NOT MODIFY ======================+ +*/ +'use strict'; + +systemDictionary = { + "Example": { "en": "Example", "de": "Beispiel", "ru": "пример", "pt": "Exemplo", "nl": "Voorbeeld", "fr": "Exemple", "it": "Esempio", "es": "Ejemplo", "pl": "Przykład", "zh-cn": "例子"}, +}; \ No newline at end of file diff --git a/test/data/update-words-v2/input/io-package.json b/test/data/update-words-v2/input/io-package.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/test/data/update-words-v2/input/io-package.json @@ -0,0 +1 @@ +{} diff --git a/test/translate-adapter.test.ts b/test/translate-adapter.test.ts index 58286de..1c16374 100644 --- a/test/translate-adapter.test.ts +++ b/test/translate-adapter.test.ts @@ -105,9 +105,12 @@ describe("translate-adapter to-words", () => { it("generates a new words.js if it doesn't exist", () => { return runTranslation("no-words-yet", false, handleToWordsCommand); }); - it("updates words.js if new strings were added to the JSON files", () => { + it("updates words.js if new strings were added to the JSON files in i18n//translations.json", () => { return runTranslation("update-words", false, handleToWordsCommand); }); + it("updates words.js if new strings were added to the JSON files in i18n/.json", () => { + return runTranslation("update-words-v2", false, handleToWordsCommand); + }); }); describe("translate-adapter all", () => {