mirror of
https://github.com/FoggedLens/iD.git
synced 2026-05-16 13:59:27 +02:00
Merge branch 'develop' into decouple-presets
This commit is contained in:
@@ -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'),
|
||||
|
||||
@@ -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];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 => {
|
||||
|
||||
Reference in New Issue
Block a user