diff --git a/_locales/en/messages.json b/_locales/en/messages.json index 2390435..5a0f83c 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -1,7 +1,4 @@ { - "default_message": { - "message": "

Structured Start Tab

Example

" - }, "data_info_add_link": { "message": "Add link|New link: click or drag." }, @@ -115,8 +112,7 @@ }, "useCustomScrollbar": { "message": "Use a custom scroll bar." - } - , + }, "option_change": { "message": "Option change stored." }, @@ -156,13 +152,13 @@ "emptytrash": { "message": "Empty Trash" }, - "togglebookmarks" : { - "message":"Toggle Bookmarks" + "togglebookmarks": { + "message": "Toggle Bookmarks" }, - "duplicatePanel" :{ + "duplicatePanel": { "message": "Duplicate Panel" }, - "withLink":{ + "withLink": { "message": "With links" }, "withoutLink": { @@ -251,5 +247,8 @@ }, "option_context": { "message": "Options" + }, + "default_message": { + "message": "

Structured Start Tab

Example

\n " } } \ No newline at end of file diff --git a/_locales/fr/messages.json b/_locales/fr/messages.json index 63e3912..079745b 100644 --- a/_locales/fr/messages.json +++ b/_locales/fr/messages.json @@ -1,7 +1,4 @@ { - "default_message": { - "message": "

Structured Start Tab

Exemple

" - }, "data_info_add_link": { "message": "Ajouter un lien|Nouveau lien : cliquez ou faites glisser." }, @@ -44,9 +41,6 @@ "edit_panel": { "message": "Editer le panneau" }, - "placeholder_panel_name": { - "message": "Nom du panneau" - }, "style": { "message": "Style" }, @@ -118,8 +112,7 @@ }, "useCustomScrollbar": { "message": "Utilisez une barre de défilement personnalisée." - } - , + }, "option_change": { "message": "Changement d'option enregistré." }, @@ -159,13 +152,13 @@ "emptytrash": { "message": "Vider la corbeille" }, - "togglebookmarks" : { - "message":"Afficher les marque-pages" + "togglebookmarks": { + "message": "Afficher les marque-pages" }, - "duplicatePanel" :{ + "duplicatePanel": { "message": "Dupliquer les panneaux" }, - "withLink":{ + "withLink": { "message": "Avec les liens" }, "withoutLink": { @@ -229,7 +222,7 @@ "message": "Se souvenir du statut du panneau (ouvert/fermer) quand la page est verrouiller" }, "import_config": { - "message": "Nouvelle version: Voulez-vous importer votre ancienne configuration ? (if you refuse your old data will be deleted)" + "message": "Nouvelle version: Voulez-vous importer votre ancienne configuration ? (si vous refusez, vos anciennes données seront supprimées)" }, "bookmarkspanel": { "message": "Afficher le panneau des marques-pages" @@ -254,5 +247,8 @@ }, "option_context": { "message": "Options" + }, + "default_message": { + "message": "

Structured Start Tab

Exemple

" } -} +} \ No newline at end of file diff --git a/i18nbuilder.js b/i18nbuilder.js new file mode 100644 index 0000000..4e6efa7 --- /dev/null +++ b/i18nbuilder.js @@ -0,0 +1,34 @@ +import xlsx from 'node-xlsx'; +import { existsSync, mkdirSync, writeFileSync } from 'fs'; + +const workSheetsFromFile = xlsx.parse(`./SST Translations.xlsx`); +const sheet = workSheetsFromFile[0].data; +const yesIndex = new Map(); +const dir = './_locales'; + +for (let i = 0; i < sheet[2].length; i++) { + const line = sheet[2][i]; + if (line === 'Yes') { + yesIndex.set(i, sheet[1][i]); + } +} + +sheet.splice(0,4); + +for (const locale of yesIndex) { + const json = {}; + const localeDir = dir + '/' + locale[1]; + + for (const line of sheet) { + if (line[0] === 'Contributor') break; + json[line[0]] = { + message: line[locale[0]] + }; + } + + if (!existsSync(localeDir)) { + mkdirSync(localeDir); + } + + writeFileSync(localeDir + '/messages.json', JSON.stringify(json, null, 2)); +} \ No newline at end of file diff --git a/package.json b/package.json index 78ce56c..118b014 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,8 @@ "zip": "rm sst.zip;rm sst.xpi;find . -name '.DS_Store' -type f -delete;zip -u -8 -v -r sst.zip app _locales manifest.json release.md;cp sst.zip sst.xpi;echo 'bump versions in releases.md, manifest.json and package.json...'", "all": "npm run build;npm run zip;", "test-moz": "web-ext --firefox=firefoxdeveloperedition run ", - "sync-version": "node autobuild.js" + "sync-version": "node autobuild.js", + "i18": "node i18nbuilder.js" }, "repository": { "type": "git", @@ -33,9 +34,11 @@ "eslint-config-portsoc": "^0.8.1", "eslint-import-resolver-typescript": "^2.3.0", "eslint-plugin-import": "^2.19.1", + "node-xlsx": "^0.16.1", "parcel": "^2.0.0-beta.1", "typescript": "^4.1.3", - "web-ext": "^5.5.0" + "web-ext": "^5.5.0", + "xlsx": "^0.16.9" }, "eslintConfig": { "env": { @@ -94,4 +97,4 @@ ] } } -} \ No newline at end of file +}