mirror of
https://github.com/plankanban/planka.git
synced 2025-07-19 13:19:44 +02:00
68 lines
1.5 KiB
JavaScript
68 lines
1.5 KiB
JavaScript
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);
|
|
}
|
|
};
|