mirror of
https://github.com/elyby/accounts-frontend.git
synced 2024-12-27 15:30:37 +05:30
Теперь из OneSky выгружаются также языки с процентом переведённости больше 80%
This commit is contained in:
parent
6dd628cc99
commit
4b14c3144b
@ -3,11 +3,12 @@
|
|||||||
|
|
||||||
import onesky from 'onesky-utils';
|
import onesky from 'onesky-utils';
|
||||||
import fs from 'fs';
|
import fs from 'fs';
|
||||||
import chalk from 'chalk';
|
import ch from 'chalk';
|
||||||
|
|
||||||
const LANG_DIR = `${__dirname}/../src/i18n`;
|
const LANG_DIR = `${__dirname}/../src/i18n`;
|
||||||
const SOURCE_LANG = 'en'; // Базовый язык, относительно которого будут формироваться все остальные переводы
|
const SOURCE_LANG = 'en'; // Базовый язык, относительно которого будут формироваться все остальные переводы
|
||||||
const SOURCE_FILE_NAME = 'i18n.json'; // Название файла с исходными строками внутри OneSky
|
const SOURCE_FILE_NAME = 'i18n.json'; // Название файла с исходными строками внутри OneSky
|
||||||
|
const MIN_RELEASE_PROGRESS = 80; // Какой процент локали перевода должен быть выполнен, чтобы локаль была опубликована
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Массив локалей для соответствия каноничному виду в OneSky и нашему представлению
|
* Массив локалей для соответствия каноничному виду в OneSky и нашему представлению
|
||||||
@ -16,6 +17,11 @@ const SOURCE_FILE_NAME = 'i18n.json'; // Название файла с исхо
|
|||||||
const LOCALES_MAP = {
|
const LOCALES_MAP = {
|
||||||
ru: 'ru-RU',
|
ru: 'ru-RU',
|
||||||
en: 'en-GB',
|
en: 'en-GB',
|
||||||
|
sl: 'sl-SI',
|
||||||
|
fr: 'fr-FR',
|
||||||
|
el: 'el-GR',
|
||||||
|
de: 'de-DE',
|
||||||
|
sr: 'sr-RS',
|
||||||
};
|
};
|
||||||
|
|
||||||
// https://ely-translates.oneskyapp.com/admin/site/settings
|
// https://ely-translates.oneskyapp.com/admin/site/settings
|
||||||
@ -78,7 +84,7 @@ function sortByKeys(object) {
|
|||||||
async function pullReadyLanguages() {
|
async function pullReadyLanguages() {
|
||||||
const languages = JSON.parse(await onesky.getLanguages({...defaultOptions}));
|
const languages = JSON.parse(await onesky.getLanguages({...defaultOptions}));
|
||||||
return languages.data
|
return languages.data
|
||||||
.filter((elem) => elem.is_ready_to_publish)
|
.filter((elem) => elem.is_ready_to_publish || parseFloat(elem.translation_progress) > MIN_RELEASE_PROGRESS)
|
||||||
.map((elem) => elem.custom_locale || elem.code);
|
.map((elem) => elem.custom_locale || elem.code);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -92,17 +98,17 @@ async function pull() {
|
|||||||
console.log('Pulling locales list...');
|
console.log('Pulling locales list...');
|
||||||
const langs = await pullReadyLanguages();
|
const langs = await pullReadyLanguages();
|
||||||
|
|
||||||
console.log(chalk.green('Pulled locales: ') + langs.map((lang) => code2locale(lang)).join(', '));
|
console.log(ch.green('Pulled locales: ') + langs.map((lang) => code2locale(lang)).join(', '));
|
||||||
|
|
||||||
console.log('Pulling translates...');
|
console.log('Pulling translates...');
|
||||||
await Promise.all(langs.map(async (lang) => {
|
await Promise.all(langs.map(async (lang) => {
|
||||||
await pullTranslate(lang);
|
await pullTranslate(lang);
|
||||||
console.log(chalk.green('Locale ') + chalk.white.bold(code2locale(lang)) + chalk.green(' successfully pulled'));
|
console.log(ch.green('Locale ') + ch.white.bold(code2locale(lang)) + ch.green(' successfully pulled'));
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
async function publish() {
|
async function publish() {
|
||||||
console.log(`Publishing ${chalk.bold(SOURCE_LANG)} translates file...`);
|
console.log(`Publishing ${ch.bold(SOURCE_LANG)} translates file...`);
|
||||||
await onesky.postFile({
|
await onesky.postFile({
|
||||||
...defaultOptions,
|
...defaultOptions,
|
||||||
format: 'HIERARCHICAL_JSON',
|
format: 'HIERARCHICAL_JSON',
|
||||||
@ -111,7 +117,7 @@ async function publish() {
|
|||||||
language: locale2code(SOURCE_LANG),
|
language: locale2code(SOURCE_LANG),
|
||||||
fileName: SOURCE_FILE_NAME,
|
fileName: SOURCE_FILE_NAME,
|
||||||
});
|
});
|
||||||
console.log(chalk.green('Success'));
|
console.log(ch.green('Success'));
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
Loading…
Reference in New Issue
Block a user