feat: Languages with country codes
parent
e9b4a4adfc
commit
9dc38932fb
@ -1,7 +1,7 @@
|
||||
import login from './login';
|
||||
|
||||
export default {
|
||||
language: 'bg',
|
||||
language: 'bg-BG',
|
||||
country: 'bg',
|
||||
name: 'Български',
|
||||
embeddedLocale: login,
|
||||
@ -1,7 +1,7 @@
|
||||
import login from './login';
|
||||
|
||||
export default {
|
||||
language: 'cs',
|
||||
language: 'cs-CZ',
|
||||
country: 'cz',
|
||||
name: 'Čeština',
|
||||
embeddedLocale: login,
|
||||
@ -1,7 +1,7 @@
|
||||
import login from './login';
|
||||
|
||||
export default {
|
||||
language: 'da',
|
||||
language: 'da-DK',
|
||||
country: 'dk',
|
||||
name: 'Dansk',
|
||||
embeddedLocale: login,
|
||||
@ -1,7 +1,7 @@
|
||||
import login from './login';
|
||||
|
||||
export default {
|
||||
language: 'de',
|
||||
language: 'de-DE',
|
||||
country: 'de',
|
||||
name: 'Deutsch',
|
||||
embeddedLocale: login,
|
||||
@ -1,7 +1,7 @@
|
||||
import login from './login';
|
||||
|
||||
export default {
|
||||
language: 'es',
|
||||
language: 'es-ES',
|
||||
country: 'es',
|
||||
name: 'Español',
|
||||
embeddedLocale: login,
|
||||
@ -1,7 +1,7 @@
|
||||
import login from './login';
|
||||
|
||||
export default {
|
||||
language: 'fa',
|
||||
language: 'fa-IR',
|
||||
country: 'ir',
|
||||
name: 'فارسی',
|
||||
embeddedLocale: login,
|
||||
@ -1,7 +1,7 @@
|
||||
import login from './login';
|
||||
|
||||
export default {
|
||||
language: 'fr',
|
||||
language: 'fr-FR',
|
||||
country: 'fr',
|
||||
name: 'Français',
|
||||
embeddedLocale: login,
|
||||
@ -1,7 +1,7 @@
|
||||
import login from './login';
|
||||
|
||||
export default {
|
||||
language: 'hu',
|
||||
language: 'hu-HU',
|
||||
country: 'hu',
|
||||
name: 'Magyar',
|
||||
embeddedLocale: login,
|
||||
@ -1,7 +1,7 @@
|
||||
import login from './login';
|
||||
|
||||
export default {
|
||||
language: 'id',
|
||||
language: 'id-ID',
|
||||
country: 'id',
|
||||
name: 'Bahasa Indonesia',
|
||||
embeddedLocale: login,
|
||||
@ -1,4 +1,8 @@
|
||||
import dateFns from 'date-fns/locale/it';
|
||||
|
||||
export default {
|
||||
dateFns,
|
||||
|
||||
format: {
|
||||
date: 'd/M/yyyy',
|
||||
time: 'p',
|
||||
@ -1,7 +1,7 @@
|
||||
import login from './login';
|
||||
|
||||
export default {
|
||||
language: 'it',
|
||||
language: 'it-IT',
|
||||
country: 'it',
|
||||
name: 'Italiano',
|
||||
embeddedLocale: login,
|
||||
@ -1,7 +1,7 @@
|
||||
import login from './login';
|
||||
|
||||
export default {
|
||||
language: 'ja',
|
||||
language: 'ja-JP',
|
||||
country: 'jp',
|
||||
name: '日本語',
|
||||
embeddedLocale: login,
|
||||
@ -1,7 +1,7 @@
|
||||
import login from './login';
|
||||
|
||||
export default {
|
||||
language: 'ko',
|
||||
language: 'ko-KR',
|
||||
country: 'kr',
|
||||
name: '한국어',
|
||||
embeddedLocale: login,
|
||||
@ -1,7 +1,7 @@
|
||||
import login from './login';
|
||||
|
||||
export default {
|
||||
language: 'nl',
|
||||
language: 'nl-NL',
|
||||
country: 'nl',
|
||||
name: 'Nederlands',
|
||||
embeddedLocale: login,
|
||||
@ -1,7 +1,7 @@
|
||||
import login from './login';
|
||||
|
||||
export default {
|
||||
language: 'pl',
|
||||
language: 'pl-PL',
|
||||
country: 'pl',
|
||||
name: 'Polski',
|
||||
embeddedLocale: login,
|
||||
@ -1,7 +1,7 @@
|
||||
import login from './login';
|
||||
|
||||
export default {
|
||||
language: 'pt',
|
||||
language: 'pt-BR',
|
||||
country: 'br',
|
||||
name: 'Português',
|
||||
embeddedLocale: login,
|
||||
@ -1,7 +1,7 @@
|
||||
import login from './login';
|
||||
|
||||
export default {
|
||||
language: 'ro',
|
||||
language: 'ro-RO',
|
||||
country: 'ro',
|
||||
name: 'Română',
|
||||
embeddedLocale: login,
|
||||
@ -1,7 +1,7 @@
|
||||
import login from './login';
|
||||
|
||||
export default {
|
||||
language: 'ru',
|
||||
language: 'ru-RU',
|
||||
country: 'ru',
|
||||
name: 'Русский',
|
||||
embeddedLocale: login,
|
||||
@ -1,7 +1,7 @@
|
||||
import login from './login';
|
||||
|
||||
export default {
|
||||
language: 'sk',
|
||||
language: 'sk-SK',
|
||||
country: 'sk',
|
||||
name: 'Slovenčina',
|
||||
embeddedLocale: login,
|
||||
@ -1,7 +1,7 @@
|
||||
import login from './login';
|
||||
|
||||
export default {
|
||||
language: 'sv',
|
||||
language: 'sv-SE',
|
||||
country: 'se',
|
||||
name: 'Svenska',
|
||||
embeddedLocale: login,
|
||||
@ -1,7 +1,7 @@
|
||||
import login from './login';
|
||||
|
||||
export default {
|
||||
language: 'tr',
|
||||
language: 'tr-TR',
|
||||
country: 'tr',
|
||||
name: 'Türkçe',
|
||||
embeddedLocale: login,
|
||||
@ -1,4 +1,8 @@
|
||||
import dateFns from 'date-fns/locale/uk';
|
||||
|
||||
export default {
|
||||
dateFns,
|
||||
|
||||
format: {
|
||||
date: 'd/M/yyyy',
|
||||
time: 'p',
|
||||
@ -1,7 +1,7 @@
|
||||
import login from './login';
|
||||
|
||||
export default {
|
||||
language: 'ua',
|
||||
language: 'uk-UA',
|
||||
country: 'ua',
|
||||
name: 'Українська',
|
||||
embeddedLocale: login,
|
||||
@ -1,4 +1,8 @@
|
||||
import dateFns from 'date-fns/locale/uz';
|
||||
|
||||
export default {
|
||||
dateFns,
|
||||
|
||||
format: {
|
||||
date: 'M/d/yyyy',
|
||||
time: 'p',
|
||||
@ -1,7 +1,7 @@
|
||||
import login from './login';
|
||||
|
||||
export default {
|
||||
language: 'uz',
|
||||
language: 'uz-UZ',
|
||||
country: 'uz',
|
||||
name: "O'zbek",
|
||||
embeddedLocale: login,
|
||||
@ -1,4 +1,8 @@
|
||||
import dateFns from 'date-fns/locale/zh-CN';
|
||||
|
||||
export default {
|
||||
dateFns,
|
||||
|
||||
format: {
|
||||
date: 'M/d/yyyy',
|
||||
time: 'p',
|
||||
@ -1,7 +1,7 @@
|
||||
import login from './login';
|
||||
|
||||
export default {
|
||||
language: 'zh',
|
||||
language: 'zh-CN',
|
||||
country: 'cn',
|
||||
name: '中文',
|
||||
embeddedLocale: login,
|
||||
@ -0,0 +1,68 @@
|
||||
const _ = require('lodash');
|
||||
|
||||
const LANGUAGES = [
|
||||
'bg-BG',
|
||||
'cs-CZ',
|
||||
'da-DK',
|
||||
'de-DE',
|
||||
'en-US',
|
||||
'es-ES',
|
||||
'fa-IR',
|
||||
'fr-FR',
|
||||
'hu-HU',
|
||||
'id-ID',
|
||||
'it-IT',
|
||||
'ja-JP',
|
||||
'ko-KR',
|
||||
'nl-NL',
|
||||
'pl-PL',
|
||||
'pt-BR',
|
||||
'ro-RO',
|
||||
'ru-RU',
|
||||
'sk-SK',
|
||||
'sv-SE',
|
||||
'tr-TR',
|
||||
'uz-UZ',
|
||||
'zh-CN',
|
||||
];
|
||||
|
||||
const LANGUAGE_BY_PREV_LANGUAGE = LANGUAGES.reduce(
|
||||
(result, language) => ({
|
||||
...result,
|
||||
[language.split('-')[0]]: language,
|
||||
}),
|
||||
{},
|
||||
);
|
||||
LANGUAGE_BY_PREV_LANGUAGE.ua = 'uk-UA';
|
||||
|
||||
const PREV_LANGUAGE_BY_LANGUAGE = _.invert(LANGUAGE_BY_PREV_LANGUAGE);
|
||||
|
||||
module.exports.up = async (knex) => {
|
||||
const users = await knex('user_account').whereNotNull('language');
|
||||
const prevLanguages = [...new Set(users.map((user) => user.language))];
|
||||
|
||||
// eslint-disable-next-line no-restricted-syntax
|
||||
for (const prevLanguage of prevLanguages) {
|
||||
// eslint-disable-next-line no-await-in-loop
|
||||
await knex('user_account')
|
||||
.update({
|
||||
language: LANGUAGE_BY_PREV_LANGUAGE[prevLanguage],
|
||||
})
|
||||
.where('language', prevLanguage);
|
||||
}
|
||||
};
|
||||
|
||||
module.exports.down = async (knex) => {
|
||||
const users = await knex('user_account').whereNotNull('language');
|
||||
const languages = [...new Set(users.map((user) => user.language))];
|
||||
|
||||
// eslint-disable-next-line no-restricted-syntax
|
||||
for (const language of languages) {
|
||||
// eslint-disable-next-line no-await-in-loop
|
||||
await knex('user_account')
|
||||
.update({
|
||||
language: PREV_LANGUAGE_BY_LANGUAGE[language],
|
||||
})
|
||||
.where('language', language);
|
||||
}
|
||||
};
|
||||
Loading…
Reference in New Issue