Теперь из OneSky выгружаются также языки с процентом переведённости больше 80%

This commit is contained in:
ErickSkrauch 2017-05-18 23:37:44 +03:00
parent 6dd628cc99
commit 4b14c3144b

View File

@ -3,11 +3,12 @@
import onesky from 'onesky-utils';
import fs from 'fs';
import chalk from 'chalk';
import ch from 'chalk';
const LANG_DIR = `${__dirname}/../src/i18n`;
const SOURCE_LANG = 'en'; // Базовый язык, относительно которого будут формироваться все остальные переводы
const SOURCE_FILE_NAME = 'i18n.json'; // Название файла с исходными строками внутри OneSky
const MIN_RELEASE_PROGRESS = 80; // Какой процент локали перевода должен быть выполнен, чтобы локаль была опубликована
/**
* Массив локалей для соответствия каноничному виду в OneSky и нашему представлению
@ -16,6 +17,11 @@ const SOURCE_FILE_NAME = 'i18n.json'; // Название файла с исхо
const LOCALES_MAP = {
ru: 'ru-RU',
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
@ -78,7 +84,7 @@ function sortByKeys(object) {
async function pullReadyLanguages() {
const languages = JSON.parse(await onesky.getLanguages({...defaultOptions}));
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);
}
@ -92,17 +98,17 @@ async function pull() {
console.log('Pulling locales list...');
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...');
await Promise.all(langs.map(async (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() {
console.log(`Publishing ${chalk.bold(SOURCE_LANG)} translates file...`);
console.log(`Publishing ${ch.bold(SOURCE_LANG)} translates file...`);
await onesky.postFile({
...defaultOptions,
format: 'HIERARCHICAL_JSON',
@ -111,7 +117,7 @@ async function publish() {
language: locale2code(SOURCE_LANG),
fileName: SOURCE_FILE_NAME,
});
console.log(chalk.green('Success'));
console.log(ch.green('Success'));
}
try {