feat: Add language selector

Closes #212
This commit is contained in:
Maksim Eltyshev
2022-07-26 12:26:42 +02:00
parent 7c1b885d2a
commit a148a3aae5
31 changed files with 277 additions and 40 deletions

View File

@@ -0,0 +1,8 @@
import login from './login';
export default {
language: 'cs',
country: 'cz',
name: 'Čeština',
embeddedLocale: login,
};

View File

@@ -0,0 +1,8 @@
import login from './login';
export default {
language: 'da',
country: 'dk',
name: 'Dansk',
embeddedLocale: login,
};

View File

@@ -72,6 +72,7 @@ export default {
deleteTask_title: 'Aufgabe löschen',
deleteUser_title: 'Benutzer löschen',
description: 'Beschreibung',
detectAutomatically: 'Automatische Erkennung',
dropFileToUpload: 'Datei ablegen, um hochzuladen',
editAttachment_title: 'Anhang bearbieten',
editAvatar_title: 'Avatar bearbeiten',
@@ -97,6 +98,7 @@ export default {
hours: 'Stunden',
invalidCurrentPassword: 'Das aktuelle Passwort ist falsch',
labels: 'Labels',
language: 'Sprache',
leaveBoard_title: 'Board verlassen',
leaveProject_title: 'Projekt verlassen',
list: 'Listen',

View File

@@ -0,0 +1,8 @@
import login from './login';
export default {
language: 'de',
country: 'de',
name: 'Deutsch',
embeddedLocale: login,
};

View File

@@ -64,6 +64,7 @@ export default {
deleteTask_title: 'Delete Task',
deleteUser_title: 'Delete User',
description: 'Description',
detectAutomatically: 'Detect automatically',
dropFileToUpload: 'Drop file to upload',
editAttachment_title: 'Edit Attachment',
editAvatar_title: 'Edit Avatar',
@@ -90,6 +91,7 @@ export default {
hours: 'Hours',
invalidCurrentPassword: 'Invalid current password',
labels: 'Labels',
language: 'Language',
leaveBoard_title: 'Leave Board',
leaveProject_title: 'Leave Project',
list: 'List',

View File

@@ -0,0 +1,11 @@
import merge from 'lodash/merge';
import login from './login';
import core from './core';
export default {
language: 'en',
country: 'us',
name: 'English',
embeddedLocale: merge(login, core),
};

View File

@@ -0,0 +1,8 @@
import login from './login';
export default {
language: 'es',
country: 'es',
name: 'Español',
embeddedLocale: login,
};

View File

@@ -0,0 +1,8 @@
import login from './login';
export default {
language: 'fr',
country: 'fr',
name: 'Français',
embeddedLocale: login,
};

View File

@@ -1,37 +1,27 @@
import merge from 'lodash/merge';
import fromPairs from 'lodash/fromPairs';
import cs from './cs';
import da from './da';
import de from './de';
import en from './en';
import es from './es';
import fr from './fr';
import ja from './ja';
import pl from './pl';
import ru from './ru';
import sk from './sk';
import sv from './sv';
import uz from './uz';
import zh from './zh';
import csLogin from './cs/login';
import daLogin from './da/login';
import deLogin from './de/login';
import enLogin from './en/login';
import enCore from './en/core';
import esLogin from './es/login';
import frLogin from './fr/login';
import jaLogin from './ja/login';
import plLogin from './pl/login';
import ruLogin from './ru/login';
import skLogin from './sk/login';
import svLogin from './sv/login';
import uzLogin from './uz/login';
import zhLogin from './zh/login';
const locales = [cs, da, de, en, es, fr, ja, pl, ru, sk, sv, uz, zh];
const localePairs = [
['cs', csLogin],
['da', daLogin],
['de', deLogin],
['en', merge(enLogin, enCore)],
['es', esLogin],
['fr', frLogin],
['ja', jaLogin],
['pl', plLogin],
['ru', ruLogin],
['sk', skLogin],
['sv', svLogin],
['uz', uzLogin],
['zh', zhLogin],
];
export default locales;
export const languages = localePairs.map((locale) => locale[0]);
export const languages = locales.map((locale) => locale.language);
export const embedLocales = fromPairs(localePairs);
export const embeddedLocales = locales.reduce(
(result, locale) => ({
...result,
[locale.language]: locale.embeddedLocale,
}),
{},
);

View File

@@ -0,0 +1,8 @@
import login from './login';
export default {
language: 'ja',
country: 'jp',
name: '日本語',
embeddedLocale: login,
};

View File

@@ -0,0 +1,8 @@
import login from './login';
export default {
language: 'pl',
country: 'pl',
name: 'Polski',
embeddedLocale: login,
};

View File

@@ -62,6 +62,7 @@ export default {
deleteTask: 'Удаление задачи',
deleteUser: 'Удаление пользователя',
description: 'Описание',
detectAutomatically: 'Определить автоматически',
dropFileToUpload: 'Перетяните файл, чтобы загрузить',
editAttachment: 'Изменение вложения',
editAvatar: 'Изменение аватара',
@@ -88,6 +89,7 @@ export default {
hours: 'Часы',
invalidCurrentPassword: 'Неверный текущий пароль',
labels: 'Метки',
language: 'Язык',
list: 'Список',
listActions: 'Действия со списком',
members: 'Участники',

View File

@@ -0,0 +1,8 @@
import login from './login';
export default {
language: 'ru',
country: 'ru',
name: 'Русский',
embeddedLocale: login,
};

View File

@@ -0,0 +1,8 @@
import login from './login';
export default {
language: 'sk',
country: 'sk',
name: 'Slovenčina',
embeddedLocale: login,
};

View File

@@ -0,0 +1,8 @@
import login from './login';
export default {
language: 'sv',
country: 'se',
name: 'Svenska',
embeddedLocale: login,
};

View File

@@ -0,0 +1,8 @@
import login from './login';
export default {
language: 'uz',
country: 'uz',
name: "O'zbek",
embeddedLocale: login,
};

View File

@@ -0,0 +1,8 @@
import login from './login';
export default {
language: 'zh',
country: 'cn',
name: '中文',
embeddedLocale: login,
};