1
0
mirror of https://github.com/excalidraw/excalidraw.git synced 2024-11-10 11:35:52 +01:00
excalidraw/scripts/locales-coverage-description.js

174 lines
4.3 KiB
JavaScript
Raw Normal View History

const fs = require("fs");
const THRESSHOLD = 85;
const crowdinMap = {
"ar-SA": "en-ar",
"bg-BG": "en-bg",
"ca-ES": "en-ca",
"de-DE": "en-de",
"el-GR": "en-el",
"es-ES": "en-es",
"fa-IR": "en-fa",
"fi-FI": "en-fi",
"fr-FR": "en-fr",
"he-IL": "en-he",
"hi-IN": "en-hi",
"hu-HU": "en-hu",
"id-ID": "en-id",
"it-IT": "en-it",
"ja-JP": "en-ja",
"kab-KAB": "en-kab",
"ko-KR": "en-ko",
"my-MM": "en-my",
"nb-NO": "en-nb",
"nl-NL": "en-nl",
"nn-NO": "en-nnno",
"oc-FR": "en-oc",
"pa-IN": "en-pain",
"pl-PL": "en-pl",
"pt-BR": "en-ptbr",
"pt-PT": "en-pt",
"ro-RO": "en-ro",
"ru-RU": "en-ru",
"sk-SK": "en-sk",
"sv-SE": "en-sv",
"tr-TR": "en-tr",
"uk-UA": "en-uk",
"zh-CN": "en-zhcn",
"zh-TW": "en-zhtw",
"lv-LV": "en-lv",
"cs-CZ": "en-cs",
"kk-KZ": "en-kk",
};
const flags = {
"ar-SA": "🇸🇦",
"bg-BG": "🇧🇬",
"ca-ES": "🏳",
"de-DE": "🇩🇪",
"el-GR": "🇬🇷",
"es-ES": "🇪🇸",
"fa-IR": "🇮🇷",
"fi-FI": "🇫🇮",
"fr-FR": "🇫🇷",
"he-IL": "🇮🇱",
"hi-IN": "🇮🇳",
"hu-HU": "🇭🇺",
"id-ID": "🇮🇩",
"it-IT": "🇮🇹",
"ja-JP": "🇯🇵",
"kab-KAB": "🏳",
"ko-KR": "🇰🇷",
"my-MM": "🇲🇲",
"nb-NO": "🇳🇴",
"nl-NL": "🇳🇱",
"nn-NO": "🇳🇴",
"oc-FR": "🏳",
"pa-IN": "🇮🇳",
"pl-PL": "🇵🇱",
"pt-BR": "🇧🇷",
"pt-PT": "🇵🇹",
"ro-RO": "🇷🇴",
"ru-RU": "🇷🇺",
"sk-SK": "🇸🇰",
"sv-SE": "🇸🇪",
"tr-TR": "🇹🇷",
"uk-UA": "🇺🇦",
"zh-CN": "🇨🇳",
"zh-TW": "🇹🇼",
"lv-LV": "🇱🇻",
chore: Update translations from Crowdin (#3542) * New translations en.json (Romanian) * New translations en.json (French) * New translations en.json (Spanish) * New translations en.json (Bulgarian) * New translations en.json (Italian) * New translations en.json (Catalan) * New translations en.json (German) * New translations en.json (Greek) * New translations en.json (Finnish) * New translations en.json (Hebrew) * New translations en.json (Hungarian) * New translations en.json (Kabyle) * Auto commit: Calculate translation coverage * New translations en.json (Romanian) * New translations en.json (Dutch) * Auto commit: Calculate translation coverage * New translations en.json (French) * New translations en.json (Japanese) * New translations en.json (Norwegian Bokmal) * Auto commit: Calculate translation coverage * New translations en.json (Swedish) * Auto commit: Calculate translation coverage * New translations en.json (Portuguese) * Auto commit: Calculate translation coverage * New translations en.json (Chinese Traditional) * New translations en.json (Catalan) * Auto commit: Calculate translation coverage * New translations en.json (Finnish) * New translations en.json (Indonesian) * Auto commit: Calculate translation coverage * New translations en.json (Chinese Simplified) * New translations en.json (German) * Auto commit: Calculate translation coverage * New translations en.json (Slovak) * New translations en.json (Chinese Simplified) * New translations en.json (Punjabi) * New translations en.json (Polish) * New translations en.json (Portuguese) * New translations en.json (Russian) * New translations en.json (Swedish) * New translations en.json (Ukrainian) * New translations en.json (Chinese Traditional) * New translations en.json (Korean) * New translations en.json (Portuguese, Brazilian) * New translations en.json (Persian) * New translations en.json (Hindi) * New translations en.json (Burmese) * New translations en.json (Norwegian Bokmal) * New translations en.json (Occitan) * New translations en.json (Dutch) * New translations en.json (Japanese) * New translations en.json (Turkish) * New translations en.json (Arabic) * New translations en.json (Indonesian) * New translations en.json (Norwegian Nynorsk) * New translations en.json (Latvian) * New translations en.json (Romanian) * New translations en.json (French) * New translations en.json (Spanish) * New translations en.json (Bulgarian) * New translations en.json (Italian) * New translations en.json (Catalan) * New translations en.json (German) * New translations en.json (Greek) * New translations en.json (Finnish) * New translations en.json (Hebrew) * New translations en.json (Hungarian) * New translations en.json (Kabyle) * Auto commit: Calculate translation coverage * New translations en.json (Spanish) * New translations en.json (German) * New translations en.json (Norwegian Bokmal) * Auto commit: Calculate translation coverage * New translations en.json (Indonesian) * New translations en.json (Romanian) * New translations en.json (Finnish) * New translations en.json (Italian) * New translations en.json (Portuguese) * Auto commit: Calculate translation coverage * New translations en.json (Swedish) * Auto commit: Calculate translation coverage * New translations en.json (French) * Auto commit: Calculate translation coverage * New translations en.json (Turkish) * New translations en.json (Turkish) * Auto commit: Calculate translation coverage * New translations en.json (Occitan) * Auto commit: Calculate translation coverage * New translations en.json (Chinese Traditional) * New translations en.json (Slovak) * New translations en.json (Chinese Simplified) * New translations en.json (Punjabi) * New translations en.json (Polish) * New translations en.json (Portuguese) * New translations en.json (Russian) * New translations en.json (Swedish) * New translations en.json (Ukrainian) * New translations en.json (Chinese Traditional) * New translations en.json (Korean) * New translations en.json (Portuguese, Brazilian) * New translations en.json (Persian) * New translations en.json (Hindi) * New translations en.json (Burmese) * New translations en.json (Norwegian Bokmal) * New translations en.json (Occitan) * New translations en.json (Dutch) * New translations en.json (Japanese) * New translations en.json (Turkish) * New translations en.json (Arabic) * New translations en.json (Indonesian) * New translations en.json (Norwegian Nynorsk) * New translations en.json (Latvian) * New translations en.json (Romanian) * New translations en.json (French) * New translations en.json (Spanish) * New translations en.json (Bulgarian) * New translations en.json (Italian) * New translations en.json (Catalan) * New translations en.json (German) * New translations en.json (Greek) * New translations en.json (Finnish) * New translations en.json (Hebrew) * New translations en.json (Hungarian) * New translations en.json (Kabyle) * New translations en.json (Dutch) * New translations en.json (Swedish) * New translations en.json (Dutch) * New translations en.json (Norwegian Bokmal) * New translations en.json (Romanian) * New translations en.json (Finnish) * New translations en.json (Occitan) * New translations en.json (Slovak) * New translations en.json (German) * New translations en.json (Italian) * New translations en.json (Slovak) * New translations en.json (French) * New translations en.json (Portuguese) * New translations en.json (Indonesian) * New translations en.json (Indonesian) * New translations en.json (French) * New translations en.json (Chinese Traditional) * New translations en.json (Kabyle) * New translations en.json (Ukrainian) * New translations en.json (Slovak) * New translations en.json (Slovak) * New translations en.json (Chinese Simplified) * New translations en.json (Chinese Simplified) * New translations en.json (Japanese) * New translations en.json (Occitan) * New translations en.json (Latvian) * New translations en.json (Latvian) * New translations en.json (Latvian) * New translations en.json (Turkish) * New translations en.json (Czech) * Auto commit: Calculate translation coverage * New translations en.json (Czech) * Auto commit: Calculate translation coverage * New translations en.json (Czech) * Auto commit: Calculate translation coverage * New translations en.json (Czech) * Auto commit: Calculate translation coverage * New translations en.json (Czech) * Auto commit: Calculate translation coverage * New translations en.json (Czech) * Auto commit: Calculate translation coverage * New translations en.json (Czech) * Auto commit: Calculate translation coverage * New translations en.json (Czech) * Auto commit: Calculate translation coverage * update language picker & coverage descriptions * New translations en.json (Punjabi) * Auto commit: Calculate translation coverage * New translations en.json (Punjabi) * Auto commit: Calculate translation coverage * New translations en.json (Slovak) * New translations en.json (Russian) * New translations en.json (Hungarian) * New translations en.json (Italian) * New translations en.json (Korean) * New translations en.json (Dutch) * New translations en.json (Polish) * New translations en.json (Portuguese) * New translations en.json (Swedish) * New translations en.json (Finnish) * New translations en.json (Portuguese, Brazilian) * New translations en.json (Indonesian) * New translations en.json (Persian) * New translations en.json (Norwegian Nynorsk) * New translations en.json (Hindi) * New translations en.json (Burmese) * New translations en.json (Hebrew) * New translations en.json (Greek) * New translations en.json (Turkish) * New translations en.json (Occitan) * New translations en.json (Latvian) * New translations en.json (Japanese) * New translations en.json (Punjabi) * New translations en.json (Ukrainian) * New translations en.json (Chinese Simplified) * New translations en.json (Chinese Traditional) * New translations en.json (Kabyle) * New translations en.json (German) * New translations en.json (Czech) * New translations en.json (Romanian) * New translations en.json (French) * New translations en.json (Spanish) * New translations en.json (Arabic) * New translations en.json (Bulgarian) * New translations en.json (Catalan) * New translations en.json (Norwegian Bokmal) * Auto commit: Calculate translation coverage * New translations en.json (Kabyle) * New translations en.json (Dutch) * New translations en.json (Norwegian Bokmal) * Auto commit: Calculate translation coverage * New translations en.json (Swedish) * Auto commit: Calculate translation coverage * New translations en.json (Swedish) * Auto commit: Calculate translation coverage * New translations en.json (Indonesian) * Auto commit: Calculate translation coverage * New translations en.json (German) * Auto commit: Calculate translation coverage * New translations en.json (Romanian) * New translations en.json (German) * Auto commit: Calculate translation coverage * New translations en.json (Romanian) * Auto commit: Calculate translation coverage * New translations en.json (French) * Auto commit: Calculate translation coverage * New translations en.json (Ukrainian) * New translations en.json (French) * Auto commit: Calculate translation coverage * New translations en.json (Japanese) * Auto commit: Calculate translation coverage * New translations en.json (Japanese) * Auto commit: Calculate translation coverage * New translations en.json (Italian) * Auto commit: Calculate translation coverage * New translations en.json (Chinese Traditional) * Auto commit: Calculate translation coverage * New translations en.json (Chinese Traditional) * Auto commit: Calculate translation coverage * New translations en.json (Russian) * Auto commit: Calculate translation coverage * New translations en.json (Arabic) * Auto commit: Calculate translation coverage * New translations en.json (Arabic) * New translations en.json (Swedish) Co-authored-by: dwelle <luzar.david@gmail.com>
2021-05-27 20:09:19 +02:00
"cs-CZ": "🇨🇿",
"kk-KZ": "🇰🇿",
};
const languages = {
"ar-SA": "العربية",
"bg-BG": "Български",
"ca-ES": "Català",
"de-DE": "Deutsch",
"el-GR": "Ελληνικά",
"es-ES": "Español",
"fa-IR": "فارسی",
"fi-FI": "Suomi",
"fr-FR": "Français",
"he-IL": "עברית",
"hi-IN": "हिन्दी",
"hu-HU": "Magyar",
"id-ID": "Bahasa Indonesia",
"it-IT": "Italiano",
"ja-JP": "日本語",
2021-02-02 10:35:00 +01:00
"kab-KAB": "Taqbaylit",
"ko-KR": "한국어",
"my-MM": "Burmese",
"nb-NO": "Norsk bokmål",
"nl-NL": "Nederlands",
"nn-NO": "Norsk nynorsk",
"oc-FR": "Occitan",
"pa-IN": "ਪੰਜਾਬੀ",
"pl-PL": "Polski",
"pt-BR": "Português Brasileiro",
"pt-PT": "Português",
"ro-RO": "Română",
"ru-RU": "Русский",
"sk-SK": "Slovenčina",
"sv-SE": "Svenska",
"tr-TR": "Türkçe",
"uk-UA": "Українська",
"zh-CN": "简体中文",
"zh-TW": "繁體中文",
"lv-LV": "Latviešu",
chore: Update translations from Crowdin (#3542) * New translations en.json (Romanian) * New translations en.json (French) * New translations en.json (Spanish) * New translations en.json (Bulgarian) * New translations en.json (Italian) * New translations en.json (Catalan) * New translations en.json (German) * New translations en.json (Greek) * New translations en.json (Finnish) * New translations en.json (Hebrew) * New translations en.json (Hungarian) * New translations en.json (Kabyle) * Auto commit: Calculate translation coverage * New translations en.json (Romanian) * New translations en.json (Dutch) * Auto commit: Calculate translation coverage * New translations en.json (French) * New translations en.json (Japanese) * New translations en.json (Norwegian Bokmal) * Auto commit: Calculate translation coverage * New translations en.json (Swedish) * Auto commit: Calculate translation coverage * New translations en.json (Portuguese) * Auto commit: Calculate translation coverage * New translations en.json (Chinese Traditional) * New translations en.json (Catalan) * Auto commit: Calculate translation coverage * New translations en.json (Finnish) * New translations en.json (Indonesian) * Auto commit: Calculate translation coverage * New translations en.json (Chinese Simplified) * New translations en.json (German) * Auto commit: Calculate translation coverage * New translations en.json (Slovak) * New translations en.json (Chinese Simplified) * New translations en.json (Punjabi) * New translations en.json (Polish) * New translations en.json (Portuguese) * New translations en.json (Russian) * New translations en.json (Swedish) * New translations en.json (Ukrainian) * New translations en.json (Chinese Traditional) * New translations en.json (Korean) * New translations en.json (Portuguese, Brazilian) * New translations en.json (Persian) * New translations en.json (Hindi) * New translations en.json (Burmese) * New translations en.json (Norwegian Bokmal) * New translations en.json (Occitan) * New translations en.json (Dutch) * New translations en.json (Japanese) * New translations en.json (Turkish) * New translations en.json (Arabic) * New translations en.json (Indonesian) * New translations en.json (Norwegian Nynorsk) * New translations en.json (Latvian) * New translations en.json (Romanian) * New translations en.json (French) * New translations en.json (Spanish) * New translations en.json (Bulgarian) * New translations en.json (Italian) * New translations en.json (Catalan) * New translations en.json (German) * New translations en.json (Greek) * New translations en.json (Finnish) * New translations en.json (Hebrew) * New translations en.json (Hungarian) * New translations en.json (Kabyle) * Auto commit: Calculate translation coverage * New translations en.json (Spanish) * New translations en.json (German) * New translations en.json (Norwegian Bokmal) * Auto commit: Calculate translation coverage * New translations en.json (Indonesian) * New translations en.json (Romanian) * New translations en.json (Finnish) * New translations en.json (Italian) * New translations en.json (Portuguese) * Auto commit: Calculate translation coverage * New translations en.json (Swedish) * Auto commit: Calculate translation coverage * New translations en.json (French) * Auto commit: Calculate translation coverage * New translations en.json (Turkish) * New translations en.json (Turkish) * Auto commit: Calculate translation coverage * New translations en.json (Occitan) * Auto commit: Calculate translation coverage * New translations en.json (Chinese Traditional) * New translations en.json (Slovak) * New translations en.json (Chinese Simplified) * New translations en.json (Punjabi) * New translations en.json (Polish) * New translations en.json (Portuguese) * New translations en.json (Russian) * New translations en.json (Swedish) * New translations en.json (Ukrainian) * New translations en.json (Chinese Traditional) * New translations en.json (Korean) * New translations en.json (Portuguese, Brazilian) * New translations en.json (Persian) * New translations en.json (Hindi) * New translations en.json (Burmese) * New translations en.json (Norwegian Bokmal) * New translations en.json (Occitan) * New translations en.json (Dutch) * New translations en.json (Japanese) * New translations en.json (Turkish) * New translations en.json (Arabic) * New translations en.json (Indonesian) * New translations en.json (Norwegian Nynorsk) * New translations en.json (Latvian) * New translations en.json (Romanian) * New translations en.json (French) * New translations en.json (Spanish) * New translations en.json (Bulgarian) * New translations en.json (Italian) * New translations en.json (Catalan) * New translations en.json (German) * New translations en.json (Greek) * New translations en.json (Finnish) * New translations en.json (Hebrew) * New translations en.json (Hungarian) * New translations en.json (Kabyle) * New translations en.json (Dutch) * New translations en.json (Swedish) * New translations en.json (Dutch) * New translations en.json (Norwegian Bokmal) * New translations en.json (Romanian) * New translations en.json (Finnish) * New translations en.json (Occitan) * New translations en.json (Slovak) * New translations en.json (German) * New translations en.json (Italian) * New translations en.json (Slovak) * New translations en.json (French) * New translations en.json (Portuguese) * New translations en.json (Indonesian) * New translations en.json (Indonesian) * New translations en.json (French) * New translations en.json (Chinese Traditional) * New translations en.json (Kabyle) * New translations en.json (Ukrainian) * New translations en.json (Slovak) * New translations en.json (Slovak) * New translations en.json (Chinese Simplified) * New translations en.json (Chinese Simplified) * New translations en.json (Japanese) * New translations en.json (Occitan) * New translations en.json (Latvian) * New translations en.json (Latvian) * New translations en.json (Latvian) * New translations en.json (Turkish) * New translations en.json (Czech) * Auto commit: Calculate translation coverage * New translations en.json (Czech) * Auto commit: Calculate translation coverage * New translations en.json (Czech) * Auto commit: Calculate translation coverage * New translations en.json (Czech) * Auto commit: Calculate translation coverage * New translations en.json (Czech) * Auto commit: Calculate translation coverage * New translations en.json (Czech) * Auto commit: Calculate translation coverage * New translations en.json (Czech) * Auto commit: Calculate translation coverage * New translations en.json (Czech) * Auto commit: Calculate translation coverage * update language picker & coverage descriptions * New translations en.json (Punjabi) * Auto commit: Calculate translation coverage * New translations en.json (Punjabi) * Auto commit: Calculate translation coverage * New translations en.json (Slovak) * New translations en.json (Russian) * New translations en.json (Hungarian) * New translations en.json (Italian) * New translations en.json (Korean) * New translations en.json (Dutch) * New translations en.json (Polish) * New translations en.json (Portuguese) * New translations en.json (Swedish) * New translations en.json (Finnish) * New translations en.json (Portuguese, Brazilian) * New translations en.json (Indonesian) * New translations en.json (Persian) * New translations en.json (Norwegian Nynorsk) * New translations en.json (Hindi) * New translations en.json (Burmese) * New translations en.json (Hebrew) * New translations en.json (Greek) * New translations en.json (Turkish) * New translations en.json (Occitan) * New translations en.json (Latvian) * New translations en.json (Japanese) * New translations en.json (Punjabi) * New translations en.json (Ukrainian) * New translations en.json (Chinese Simplified) * New translations en.json (Chinese Traditional) * New translations en.json (Kabyle) * New translations en.json (German) * New translations en.json (Czech) * New translations en.json (Romanian) * New translations en.json (French) * New translations en.json (Spanish) * New translations en.json (Arabic) * New translations en.json (Bulgarian) * New translations en.json (Catalan) * New translations en.json (Norwegian Bokmal) * Auto commit: Calculate translation coverage * New translations en.json (Kabyle) * New translations en.json (Dutch) * New translations en.json (Norwegian Bokmal) * Auto commit: Calculate translation coverage * New translations en.json (Swedish) * Auto commit: Calculate translation coverage * New translations en.json (Swedish) * Auto commit: Calculate translation coverage * New translations en.json (Indonesian) * Auto commit: Calculate translation coverage * New translations en.json (German) * Auto commit: Calculate translation coverage * New translations en.json (Romanian) * New translations en.json (German) * Auto commit: Calculate translation coverage * New translations en.json (Romanian) * Auto commit: Calculate translation coverage * New translations en.json (French) * Auto commit: Calculate translation coverage * New translations en.json (Ukrainian) * New translations en.json (French) * Auto commit: Calculate translation coverage * New translations en.json (Japanese) * Auto commit: Calculate translation coverage * New translations en.json (Japanese) * Auto commit: Calculate translation coverage * New translations en.json (Italian) * Auto commit: Calculate translation coverage * New translations en.json (Chinese Traditional) * Auto commit: Calculate translation coverage * New translations en.json (Chinese Traditional) * Auto commit: Calculate translation coverage * New translations en.json (Russian) * Auto commit: Calculate translation coverage * New translations en.json (Arabic) * Auto commit: Calculate translation coverage * New translations en.json (Arabic) * New translations en.json (Swedish) Co-authored-by: dwelle <luzar.david@gmail.com>
2021-05-27 20:09:19 +02:00
"cs-CZ": "Česky",
"kk-KZ": "Қазақ тілі",
};
const percentages = fs.readFileSync(
`${__dirname}/../src/locales/percentages.json`,
);
const rowData = JSON.parse(percentages);
const coverages = Object.entries(rowData)
.sort(([, a], [, b]) => b - a)
.reduce((r, [k, v]) => ({ ...r, [k]: v }), {});
const boldIf = (text, condition) => (condition ? `**${text}**` : text);
const printHeader = () => {
let result = "| | Flag | Locale | % |\n";
result += "| :--: | :--: | -- | :--: |";
return result;
};
const printRow = (id, locale, coverage) => {
const isOver = coverage >= THRESSHOLD;
let result = `| ${isOver ? id : "..."} | `;
result += `${locale in flags ? flags[locale] : ""} | `;
const language = locale in languages ? languages[locale] : locale;
if (locale in crowdinMap && crowdinMap[locale]) {
result += `[${boldIf(
language,
isOver,
)}](https://crowdin.com/translate/excalidraw/10/${crowdinMap[locale]}) | `;
} else {
result += `${boldIf(language, isOver)} | `;
}
result += `${coverage === 100 ? "💯" : boldIf(coverage, isOver)} |`;
return result;
};
console.info(
`Each language must be at least **${THRESSHOLD}%** translated in order to appear on Excalidraw. Join us on [Crowdin](https://crowdin.com/project/excalidraw) and help us translate your own language. **Can't find yours yet?** Open an [issue](https://github.com/excalidraw/excalidraw/issues/new) and we'll add it to the list.`,
);
console.info("\n\r");
console.info(printHeader());
let index = 1;
for (const coverage in coverages) {
if (coverage === "en") {
continue;
}
console.info(printRow(index, coverage, coverages[coverage]));
index++;
}
console.info("\n\r");
console.info("\\* Languages in **bold** are going to appear on production.");