aboutsummaryrefslogtreecommitdiffstats
path: root/htdocs/src/js/i18n
diff options
context:
space:
mode:
authorArmand Philippot <git@armandphilippot.com>2021-10-26 21:54:36 +0200
committerArmand Philippot <git@armandphilippot.com>2021-10-26 21:54:36 +0200
commited9f269a78062f0d9a805b91b95fff5f479098ac (patch)
treea6794933b3994ded3dcc8992b353ec9e9c07532f /htdocs/src/js/i18n
parent1d272eac38ebb310e360891a3a717447a1d0547a (diff)
feat: translate the app - two locales available: fr and en
Diffstat (limited to 'htdocs/src/js/i18n')
-rw-r--r--htdocs/src/js/i18n/i18n.js42
-rw-r--r--htdocs/src/js/i18n/locales/en.js24
-rw-r--r--htdocs/src/js/i18n/locales/fr.js24
3 files changed, 90 insertions, 0 deletions
diff --git a/htdocs/src/js/i18n/i18n.js b/htdocs/src/js/i18n/i18n.js
new file mode 100644
index 0000000..6bdc7cd
--- /dev/null
+++ b/htdocs/src/js/i18n/i18n.js
@@ -0,0 +1,42 @@
+import I18n from 'i18n-js';
+import en from './locales/en';
+import fr from './locales/fr';
+
+const supportedLanguages = [
+ {
+ code: 'en',
+ label: 'English',
+ translations: en,
+ },
+ {
+ code: 'fr',
+ label: 'Français',
+ translations: fr,
+ },
+];
+
+supportedLanguages.forEach((locale) => {
+ I18n.translations[locale.code] = locale.translations;
+});
+
+function setLocale(locale) {
+ I18n.locale = locale;
+}
+
+function currentLocale() {
+ return I18n.currentLocale();
+}
+
+function translate(name, params = {}) {
+ return I18n.t(name, params);
+}
+
+const { defaultLocale } = I18n;
+
+export {
+ supportedLanguages,
+ setLocale,
+ translate,
+ defaultLocale,
+ currentLocale,
+};
diff --git a/htdocs/src/js/i18n/locales/en.js b/htdocs/src/js/i18n/locales/en.js
new file mode 100644
index 0000000..d8fea40
--- /dev/null
+++ b/htdocs/src/js/i18n/locales/en.js
@@ -0,0 +1,24 @@
+const en = {
+ branding: {
+ description: 'Front-end developer',
+ },
+ nav: {
+ title: 'Apps list:',
+ },
+ main: {
+ instructions:
+ 'Select an app inside menu to see a live preview and app details.',
+ project: {
+ details: {
+ about: 'About {{name}}',
+ repo: 'Repositories:',
+ tech: 'Technologies:',
+ },
+ },
+ },
+ footer: {
+ license: 'License MIT',
+ },
+};
+
+export default en;
diff --git a/htdocs/src/js/i18n/locales/fr.js b/htdocs/src/js/i18n/locales/fr.js
new file mode 100644
index 0000000..f44d459
--- /dev/null
+++ b/htdocs/src/js/i18n/locales/fr.js
@@ -0,0 +1,24 @@
+const fr = {
+ branding: {
+ description: 'Intégrateur web',
+ },
+ nav: {
+ title: 'Liste des applications :',
+ },
+ main: {
+ instructions:
+ "Sélectionnez une application dans le menu pour afficher un aperçu en direct et les informations sur l'application.",
+ project: {
+ details: {
+ about: 'À propos de {{name}}',
+ repo: 'Dépôts :',
+ tech: 'Technologies :',
+ },
+ },
+ },
+ footer: {
+ license: 'Licence MIT',
+ },
+};
+
+export default fr;