Merge branch 'develop' into decouple-presets

This commit is contained in:
Quincy Morgan
2020-11-06 18:02:10 -05:00
129 changed files with 557 additions and 166 deletions
+4
View File
@@ -104,6 +104,10 @@ function buildData() {
fs.writeFileSync('dist/data/deprecated.min.json', JSON.stringify(deprecated));
fs.writeFileSync('dist/data/taginfo.min.json', JSON.stringify(taginfo));
const languageInfo = languageNames.langNamesInNativeLang;
fs.writeFileSync('data/languages.json', prettyStringify(languageInfo, { maxLength: 200 }));
fs.writeFileSync('dist/data/languages.min.json', JSON.stringify(languageInfo));
// Save individual data files
let tasks = [
minifyJSON('data/address_formats.json', 'dist/data/address_formats.min.json'),
+25 -6
View File
@@ -5,6 +5,8 @@ const fs = require('fs');
const cldrMainDir = 'node_modules/cldr-localenames-full/main/';
const rematchCodes = { 'ar-AA': 'ar', 'zh-CN': 'zh', 'zh-HK': 'zh-Hant-HK', 'zh-TW': 'zh-Hant', 'pt-BR': 'pt', 'pt': 'pt-PT' };
const codesToSkip = ['ase', 'mis', 'mul', 'und', 'zxx'];
let referencedScripts = [];
function getLangNamesInNativeLang() {
@@ -57,12 +59,24 @@ function getLangNamesInNativeLang() {
unordered[code] = info;
});
// CLDR locales don't cover all the languages people might want to use for iD tags,
// so also add the language names that we have English translations for
let englishNamesByCode = JSON.parse(fs.readFileSync(`${cldrMainDir}en/languages.json`, 'utf8')).main.en.localeDisplayNames.languages;
Object.keys(englishNamesByCode).forEach(code => {
if (code in unordered) return;
if (code.indexOf('-') !== -1) return;
if (codesToSkip.indexOf(code) !== -1) return;
unordered[code] = {};
});
let ordered = {};
Object.keys(unordered).sort().forEach(key => ordered[key] = unordered[key]);
return ordered;
}
exports.langNamesInNativeLang = getLangNamesInNativeLang();
const langNamesInNativeLang = getLangNamesInNativeLang();
exports.langNamesInNativeLang = langNamesInNativeLang;
exports.languageNamesInLanguageOf = function(code) {
if (rematchCodes[code]) code = rematchCodes[code];
@@ -73,9 +87,9 @@ exports.languageNamesInLanguageOf = function(code) {
let translatedLangsByCode = JSON.parse(fs.readFileSync(languageFilePath, 'utf8')).main[code].localeDisplayNames.languages;
// ignore codes for non-languages
for (let nonLangCode in { mis: true, mul: true, und: true, zxx: true }) {
delete translatedLangsByCode[nonLangCode];
}
codesToSkip.forEach(skipCode => {
delete translatedLangsByCode[skipCode];
});
for (let langCode in translatedLangsByCode) {
let altLongIndex = langCode.indexOf('-alt-long');
@@ -84,9 +98,14 @@ exports.languageNamesInLanguageOf = function(code) {
translatedLangsByCode[base] = translatedLangsByCode[langCode];
}
if (langCode.includes('-alt-')) { // remove alternative names
if (langCode.includes('-alt-')) {
// remove alternative names
delete translatedLangsByCode[langCode];
} else if (langCode === translatedLangsByCode[langCode]) { // no localized value available
} else if (langCode === translatedLangsByCode[langCode]) {
// no localized value available
delete translatedLangsByCode[langCode];
} else if (!langNamesInNativeLang[langCode]){
// we don't need to include language names that we probably won't be showing in the UI
delete translatedLangsByCode[langCode];
}
}
-4
View File
@@ -43,10 +43,6 @@ const fetchOpts = {
const dataShortcuts = JSON.parse(fs.readFileSync('data/shortcuts.json', 'utf8'));
const languageInfo = languageNames.langNamesInNativeLang;
fs.writeFileSync('data/languages.json', prettyStringify(languageInfo, { maxLength: 200 }));
fs.writeFileSync('dist/data/languages.min.json', JSON.stringify(languageInfo));
let shortcuts = [];
dataShortcuts.forEach(tab => {
tab.columns.forEach(col => {