mirror of
https://github.com/FoggedLens/iD.git
synced 2026-05-13 12:55:05 +02:00
Make several data external instead of bundled:
Also dist/data/* contains minified files now
These are now external and will fetch as needed:
-export { dataAddressFormats } from './address-formats.json';
-export { dataDeprecated } from './deprecated.json';
-export { dataDiscarded } from './discarded.json';
-export { dataLanguages } from './languages.json';
-export { dataPhoneFormats } from './phone-formats.json';
-export { dataShortcuts } from './shortcuts.json';
-export { dataTerritoryLanguages } from './territory-languages.json';
This commit is contained in:
@@ -12,6 +12,7 @@ transifex.auth
|
||||
/dist/*.js
|
||||
/dist/*.css
|
||||
/dist/*.map
|
||||
/dist/data/
|
||||
/dist/img/*.svg
|
||||
/dist/mapillary-js/
|
||||
/dist/pannellum-streetside/
|
||||
|
||||
@@ -1,184 +0,0 @@
|
||||
{
|
||||
"dataAddressFormats": [
|
||||
{
|
||||
"format": [
|
||||
["housenumber", "street"],
|
||||
["city", "postcode"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"countryCodes": ["au"],
|
||||
"format": [
|
||||
["unit","housenumber", "street"],
|
||||
["suburb", "state", "postcode"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"countryCodes": ["gb"],
|
||||
"format": [
|
||||
["housename"],
|
||||
["housenumber", "street"],
|
||||
["city", "postcode"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"countryCodes": ["ie"],
|
||||
"format": [
|
||||
["housename"],
|
||||
["housenumber", "street"],
|
||||
["city"],
|
||||
["postcode"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"countryCodes": ["at", "ch", "de", "si", "pl"],
|
||||
"format": [
|
||||
["street", "housenumber"],
|
||||
["postcode", "city"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"countryCodes": [
|
||||
"ad", "ba", "be", "cz", "dk", "es", "fi", "gr", "hr", "is",
|
||||
"it", "li", "nl", "no", "pt", "se", "sk", "sm", "va"
|
||||
],
|
||||
"format": [
|
||||
["street", "housenumber", "unit"],
|
||||
["postcode", "city"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"countryCodes": ["fr", "lu", "mo"],
|
||||
"format": [
|
||||
["housenumber", "street"],
|
||||
["postcode", "city"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"countryCodes": ["br"],
|
||||
"format": [
|
||||
["street"],
|
||||
["housenumber", "suburb"],
|
||||
["city", "postcode"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"countryCodes": ["vn"],
|
||||
"format": [
|
||||
["housenumber", "street"],
|
||||
["subdistrict"],
|
||||
["district"],
|
||||
["city"],
|
||||
["province", "postcode"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"countryCodes": ["ca"],
|
||||
"format": [
|
||||
["housenumber", "street", "unit"],
|
||||
["city", "province", "postcode"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"countryCodes": ["us"],
|
||||
"format": [
|
||||
["housenumber", "street", "unit"],
|
||||
["city", "state", "postcode"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"countryCodes": ["tw"],
|
||||
"format": [
|
||||
["postcode", "city", "district"],
|
||||
["place", "street"],
|
||||
["housenumber", "floor", "unit"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"countryCodes": ["jp"],
|
||||
"format": [
|
||||
["postcode", "province", "county"],
|
||||
["city", "suburb"],
|
||||
["quarter", "neighbourhood"],
|
||||
["block_number", "housenumber"]
|
||||
],
|
||||
"dropdowns": [
|
||||
"postcode", "province", "county", "city", "suburb",
|
||||
"quarter", "neighbourhood", "block_number"
|
||||
],
|
||||
"widths": {
|
||||
"postcode": 0.3,
|
||||
"province": 0.35,
|
||||
"county": 0.35,
|
||||
"city": 0.65,
|
||||
"suburb": 0.35,
|
||||
"quarter": 0.5,
|
||||
"neighbourhood": 0.5,
|
||||
"block_number": 0.5,
|
||||
"housenumber": 0.5
|
||||
}
|
||||
},
|
||||
{
|
||||
"countryCodes": ["tr"],
|
||||
"format": [
|
||||
["neighbourhood"],
|
||||
["street", "housenumber"],
|
||||
["postcode", "district", "city"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"countryCodes": ["ua"],
|
||||
"format": [
|
||||
["housenumber", "postcode"],
|
||||
["street"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"countryCodes": ["cn"],
|
||||
"format": [
|
||||
["postcode", "province"],
|
||||
["city", "district"],
|
||||
["street", "housenumber"]
|
||||
],
|
||||
"widths": {
|
||||
"postcode": 0.3,
|
||||
"province": 0.7,
|
||||
"city": 0.5,
|
||||
"district": 0.5,
|
||||
"street": 0.7,
|
||||
"housenumber": 0.3
|
||||
}
|
||||
},
|
||||
{
|
||||
"countryCodes": ["bo"],
|
||||
"format": [
|
||||
["street", "housenumber"],
|
||||
["neighbourhood", "city"]
|
||||
],
|
||||
"widths": {
|
||||
"street": 0.7,
|
||||
"housenumber": 0.3,
|
||||
"neighbourhood": 0.5,
|
||||
"city": 0.5
|
||||
}
|
||||
},
|
||||
{
|
||||
"countryCodes": ["pe"],
|
||||
"format": [
|
||||
["street", "housenumber"],
|
||||
["neighbourhood"],
|
||||
["city", "state", "postcode"]
|
||||
],
|
||||
"dropdowns": [
|
||||
"street", "neighbourhood", "city", "state", "postcode"
|
||||
],
|
||||
"widths": {
|
||||
"street": 0.7,
|
||||
"housenumber": 0.3,
|
||||
"city": 0.4,
|
||||
"state": 0.4,
|
||||
"postcode": 0.2
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,182 @@
|
||||
[
|
||||
{
|
||||
"format": [
|
||||
["housenumber", "street"],
|
||||
["city", "postcode"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"countryCodes": ["au"],
|
||||
"format": [
|
||||
["unit","housenumber", "street"],
|
||||
["suburb", "state", "postcode"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"countryCodes": ["gb"],
|
||||
"format": [
|
||||
["housename"],
|
||||
["housenumber", "street"],
|
||||
["city", "postcode"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"countryCodes": ["ie"],
|
||||
"format": [
|
||||
["housename"],
|
||||
["housenumber", "street"],
|
||||
["city"],
|
||||
["postcode"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"countryCodes": ["at", "ch", "de", "si", "pl"],
|
||||
"format": [
|
||||
["street", "housenumber"],
|
||||
["postcode", "city"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"countryCodes": [
|
||||
"ad", "ba", "be", "cz", "dk", "es", "fi", "gr", "hr", "is",
|
||||
"it", "li", "nl", "no", "pt", "se", "sk", "sm", "va"
|
||||
],
|
||||
"format": [
|
||||
["street", "housenumber", "unit"],
|
||||
["postcode", "city"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"countryCodes": ["fr", "lu", "mo"],
|
||||
"format": [
|
||||
["housenumber", "street"],
|
||||
["postcode", "city"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"countryCodes": ["br"],
|
||||
"format": [
|
||||
["street"],
|
||||
["housenumber", "suburb"],
|
||||
["city", "postcode"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"countryCodes": ["vn"],
|
||||
"format": [
|
||||
["housenumber", "street"],
|
||||
["subdistrict"],
|
||||
["district"],
|
||||
["city"],
|
||||
["province", "postcode"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"countryCodes": ["ca"],
|
||||
"format": [
|
||||
["housenumber", "street", "unit"],
|
||||
["city", "province", "postcode"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"countryCodes": ["us"],
|
||||
"format": [
|
||||
["housenumber", "street", "unit"],
|
||||
["city", "state", "postcode"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"countryCodes": ["tw"],
|
||||
"format": [
|
||||
["postcode", "city", "district"],
|
||||
["place", "street"],
|
||||
["housenumber", "floor", "unit"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"countryCodes": ["jp"],
|
||||
"format": [
|
||||
["postcode", "province", "county"],
|
||||
["city", "suburb"],
|
||||
["quarter", "neighbourhood"],
|
||||
["block_number", "housenumber"]
|
||||
],
|
||||
"dropdowns": [
|
||||
"postcode", "province", "county", "city", "suburb",
|
||||
"quarter", "neighbourhood", "block_number"
|
||||
],
|
||||
"widths": {
|
||||
"postcode": 0.3,
|
||||
"province": 0.35,
|
||||
"county": 0.35,
|
||||
"city": 0.65,
|
||||
"suburb": 0.35,
|
||||
"quarter": 0.5,
|
||||
"neighbourhood": 0.5,
|
||||
"block_number": 0.5,
|
||||
"housenumber": 0.5
|
||||
}
|
||||
},
|
||||
{
|
||||
"countryCodes": ["tr"],
|
||||
"format": [
|
||||
["neighbourhood"],
|
||||
["street", "housenumber"],
|
||||
["postcode", "district", "city"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"countryCodes": ["ua"],
|
||||
"format": [
|
||||
["housenumber", "postcode"],
|
||||
["street"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"countryCodes": ["cn"],
|
||||
"format": [
|
||||
["postcode", "province"],
|
||||
["city", "district"],
|
||||
["street", "housenumber"]
|
||||
],
|
||||
"widths": {
|
||||
"postcode": 0.3,
|
||||
"province": 0.7,
|
||||
"city": 0.5,
|
||||
"district": 0.5,
|
||||
"street": 0.7,
|
||||
"housenumber": 0.3
|
||||
}
|
||||
},
|
||||
{
|
||||
"countryCodes": ["bo"],
|
||||
"format": [
|
||||
["street", "housenumber"],
|
||||
["neighbourhood", "city"]
|
||||
],
|
||||
"widths": {
|
||||
"street": 0.7,
|
||||
"housenumber": 0.3,
|
||||
"neighbourhood": 0.5,
|
||||
"city": 0.5
|
||||
}
|
||||
},
|
||||
{
|
||||
"countryCodes": ["pe"],
|
||||
"format": [
|
||||
["street", "housenumber"],
|
||||
["neighbourhood"],
|
||||
["city", "state", "postcode"]
|
||||
],
|
||||
"dropdowns": [
|
||||
"street", "neighbourhood", "city", "state", "postcode"
|
||||
],
|
||||
"widths": {
|
||||
"street": 0.7,
|
||||
"housenumber": 0.3,
|
||||
"city": 0.4,
|
||||
"state": 0.4,
|
||||
"postcode": 0.2
|
||||
}
|
||||
}
|
||||
]
|
||||
+1366
-1368
File diff suppressed because it is too large
Load Diff
+46
-48
@@ -1,58 +1,56 @@
|
||||
{
|
||||
"dataDiscarded": {
|
||||
"created_by": true,
|
||||
"created_by": true,
|
||||
|
||||
"odbl": true,
|
||||
"odbl:note": true,
|
||||
"odbl": true,
|
||||
"odbl:note": true,
|
||||
|
||||
"tiger:upload_uuid": true,
|
||||
"tiger:tlid": true,
|
||||
"tiger:source": true,
|
||||
"tiger:separated": true,
|
||||
"tiger:upload_uuid": true,
|
||||
"tiger:tlid": true,
|
||||
"tiger:source": true,
|
||||
"tiger:separated": true,
|
||||
|
||||
"geobase:datasetName": true,
|
||||
"geobase:uuid": true,
|
||||
"geobase:datasetName": true,
|
||||
"geobase:uuid": true,
|
||||
|
||||
"osmarender:nameDirection": true,
|
||||
"osmarender:renderName": true,
|
||||
"osmarender:renderRef": true,
|
||||
"osmarender:rendernames": true,
|
||||
"osmarender:nameDirection": true,
|
||||
"osmarender:renderName": true,
|
||||
"osmarender:renderRef": true,
|
||||
"osmarender:rendernames": true,
|
||||
|
||||
"sub_sea:type": true,
|
||||
"sub_sea:type": true,
|
||||
|
||||
"KSJ2:ADS": true,
|
||||
"KSJ2:ARE": true,
|
||||
"KSJ2:AdminArea": true,
|
||||
"KSJ2:COP_label": true,
|
||||
"KSJ2:DFD": true,
|
||||
"KSJ2:INT": true,
|
||||
"KSJ2:INT_label": true,
|
||||
"KSJ2:LOC": true,
|
||||
"KSJ2:LPN": true,
|
||||
"KSJ2:OPC": true,
|
||||
"KSJ2:PubFacAdmin": true,
|
||||
"KSJ2:RAC": true,
|
||||
"KSJ2:RAC_label": true,
|
||||
"KSJ2:RIC": true,
|
||||
"KSJ2:RIN": true,
|
||||
"KSJ2:WSC": true,
|
||||
"KSJ2:coordinate": true,
|
||||
"KSJ2:curve_id": true,
|
||||
"KSJ2:curve_type": true,
|
||||
"KSJ2:filename": true,
|
||||
"KSJ2:lake_id": true,
|
||||
"KSJ2:lat": true,
|
||||
"KSJ2:long": true,
|
||||
"KSJ2:river_id": true,
|
||||
"KSJ2:ADS": true,
|
||||
"KSJ2:ARE": true,
|
||||
"KSJ2:AdminArea": true,
|
||||
"KSJ2:COP_label": true,
|
||||
"KSJ2:DFD": true,
|
||||
"KSJ2:INT": true,
|
||||
"KSJ2:INT_label": true,
|
||||
"KSJ2:LOC": true,
|
||||
"KSJ2:LPN": true,
|
||||
"KSJ2:OPC": true,
|
||||
"KSJ2:PubFacAdmin": true,
|
||||
"KSJ2:RAC": true,
|
||||
"KSJ2:RAC_label": true,
|
||||
"KSJ2:RIC": true,
|
||||
"KSJ2:RIN": true,
|
||||
"KSJ2:WSC": true,
|
||||
"KSJ2:coordinate": true,
|
||||
"KSJ2:curve_id": true,
|
||||
"KSJ2:curve_type": true,
|
||||
"KSJ2:filename": true,
|
||||
"KSJ2:lake_id": true,
|
||||
"KSJ2:lat": true,
|
||||
"KSJ2:long": true,
|
||||
"KSJ2:river_id": true,
|
||||
|
||||
"SK53_bulk:load": true,
|
||||
"SK53_bulk:load": true,
|
||||
|
||||
"yh:LINE_NAME": true,
|
||||
"yh:LINE_NUM": true,
|
||||
"yh:STRUCTURE": true,
|
||||
"yh:TOTYUMONO": true,
|
||||
"yh:TYPE": true,
|
||||
"yh:WIDTH": true,
|
||||
"yh:WIDTH_RANK": true
|
||||
}
|
||||
"yh:LINE_NAME": true,
|
||||
"yh:LINE_NUM": true,
|
||||
"yh:STRUCTURE": true,
|
||||
"yh:TOTYUMONO": true,
|
||||
"yh:TYPE": true,
|
||||
"yh:WIDTH": true,
|
||||
"yh:WIDTH_RANK": true
|
||||
}
|
||||
|
||||
@@ -1,14 +1,6 @@
|
||||
export { wikipedia as dataWikipedia } from 'wmf-sitematrix';
|
||||
|
||||
export { dataAddressFormats } from './address-formats.json';
|
||||
export { dataDeprecated } from './deprecated.json';
|
||||
export { dataDiscarded } from './discarded.json';
|
||||
export { dataLanguages } from './languages.json';
|
||||
export { dataLocales } from './locales.json';
|
||||
export { dataPhoneFormats } from './phone-formats.json';
|
||||
export { dataShortcuts } from './shortcuts.json';
|
||||
export { dataTerritoryLanguages } from './territory-languages.json';
|
||||
|
||||
export { en as dataEn } from '../dist/locales/en.json';
|
||||
|
||||
import {
|
||||
|
||||
+233
-727
@@ -1,729 +1,235 @@
|
||||
{
|
||||
"dataLanguages": {
|
||||
"af": {
|
||||
"nativeName": "Afrikaans"
|
||||
},
|
||||
"agq": {
|
||||
"nativeName": "Aghem"
|
||||
},
|
||||
"ak": {
|
||||
"nativeName": "Akan"
|
||||
},
|
||||
"am": {
|
||||
"nativeName": "አማርኛ"
|
||||
},
|
||||
"ar": {
|
||||
"nativeName": "العربية"
|
||||
},
|
||||
"as": {
|
||||
"nativeName": "অসমীয়া"
|
||||
},
|
||||
"asa": {
|
||||
"nativeName": "Kipare"
|
||||
},
|
||||
"ast": {
|
||||
"nativeName": "asturianu"
|
||||
},
|
||||
"az": {
|
||||
"nativeName": "azərbaycan"
|
||||
},
|
||||
"az-Cyrl": {
|
||||
"base": "az",
|
||||
"script": "Cyrl"
|
||||
},
|
||||
"az-Latn": {
|
||||
"base": "az",
|
||||
"script": "Latn"
|
||||
},
|
||||
"bas": {
|
||||
"nativeName": "Ɓàsàa"
|
||||
},
|
||||
"be": {
|
||||
"nativeName": "беларуская"
|
||||
},
|
||||
"bem": {
|
||||
"nativeName": "Ichibemba"
|
||||
},
|
||||
"bez": {
|
||||
"nativeName": "Hibena"
|
||||
},
|
||||
"bg": {
|
||||
"nativeName": "български"
|
||||
},
|
||||
"bm": {
|
||||
"nativeName": "bamanakan"
|
||||
},
|
||||
"bn": {
|
||||
"nativeName": "বাংলা"
|
||||
},
|
||||
"bo": {
|
||||
"nativeName": "བོད་སྐད་"
|
||||
},
|
||||
"br": {
|
||||
"nativeName": "brezhoneg"
|
||||
},
|
||||
"brx": {
|
||||
"nativeName": "बड़ो"
|
||||
},
|
||||
"bs": {
|
||||
"nativeName": "bosanski"
|
||||
},
|
||||
"bs-Cyrl": {
|
||||
"base": "bs",
|
||||
"script": "Cyrl"
|
||||
},
|
||||
"bs-Latn": {
|
||||
"base": "bs",
|
||||
"script": "Latn"
|
||||
},
|
||||
"ca": {
|
||||
"nativeName": "català"
|
||||
},
|
||||
"ccp": {
|
||||
"nativeName": "𑄌𑄋𑄴𑄟𑄳𑄦"
|
||||
},
|
||||
"ce": {
|
||||
"nativeName": "нохчийн"
|
||||
},
|
||||
"ceb": {
|
||||
"nativeName": "Binisaya"
|
||||
},
|
||||
"cgg": {
|
||||
"nativeName": "Rukiga"
|
||||
},
|
||||
"chr": {
|
||||
"nativeName": "ᏣᎳᎩ"
|
||||
},
|
||||
"ckb": {
|
||||
"nativeName": "کوردیی ناوەندی"
|
||||
},
|
||||
"cs": {
|
||||
"nativeName": "čeština"
|
||||
},
|
||||
"cu": {
|
||||
"nativeName": "cu"
|
||||
},
|
||||
"cy": {
|
||||
"nativeName": "Cymraeg"
|
||||
},
|
||||
"da": {
|
||||
"nativeName": "dansk"
|
||||
},
|
||||
"dav": {
|
||||
"nativeName": "Kitaita"
|
||||
},
|
||||
"de": {
|
||||
"nativeName": "Deutsch"
|
||||
},
|
||||
"dje": {
|
||||
"nativeName": "Zarmaciine"
|
||||
},
|
||||
"dsb": {
|
||||
"nativeName": "dolnoserbšćina"
|
||||
},
|
||||
"dua": {
|
||||
"nativeName": "duálá"
|
||||
},
|
||||
"dyo": {
|
||||
"nativeName": "joola"
|
||||
},
|
||||
"dz": {
|
||||
"nativeName": "རྫོང་ཁ"
|
||||
},
|
||||
"ebu": {
|
||||
"nativeName": "Kĩembu"
|
||||
},
|
||||
"ee": {
|
||||
"nativeName": "Eʋegbe"
|
||||
},
|
||||
"el": {
|
||||
"nativeName": "Ελληνικά"
|
||||
},
|
||||
"en": {
|
||||
"nativeName": "English"
|
||||
},
|
||||
"eo": {
|
||||
"nativeName": "esperanto"
|
||||
},
|
||||
"es": {
|
||||
"nativeName": "español"
|
||||
},
|
||||
"et": {
|
||||
"nativeName": "eesti"
|
||||
},
|
||||
"eu": {
|
||||
"nativeName": "euskara"
|
||||
},
|
||||
"ewo": {
|
||||
"nativeName": "ewondo"
|
||||
},
|
||||
"fa": {
|
||||
"nativeName": "فارسی"
|
||||
},
|
||||
"ff": {
|
||||
"nativeName": "Pulaar"
|
||||
},
|
||||
"ff-Latn": {
|
||||
"base": "ff",
|
||||
"script": "Latn"
|
||||
},
|
||||
"fi": {
|
||||
"nativeName": "suomi"
|
||||
},
|
||||
"fil": {
|
||||
"nativeName": "Filipino"
|
||||
},
|
||||
"fo": {
|
||||
"nativeName": "føroyskt"
|
||||
},
|
||||
"fr": {
|
||||
"nativeName": "français"
|
||||
},
|
||||
"fur": {
|
||||
"nativeName": "furlan"
|
||||
},
|
||||
"fy": {
|
||||
"nativeName": "Frysk"
|
||||
},
|
||||
"ga": {
|
||||
"nativeName": "Gaeilge"
|
||||
},
|
||||
"gd": {
|
||||
"nativeName": "Gàidhlig"
|
||||
},
|
||||
"gl": {
|
||||
"nativeName": "galego"
|
||||
},
|
||||
"gsw": {
|
||||
"nativeName": "Schwiizertüütsch"
|
||||
},
|
||||
"gu": {
|
||||
"nativeName": "ગુજરાતી"
|
||||
},
|
||||
"guz": {
|
||||
"nativeName": "Ekegusii"
|
||||
},
|
||||
"gv": {
|
||||
"nativeName": "Gaelg"
|
||||
},
|
||||
"ha": {
|
||||
"nativeName": "Hausa"
|
||||
},
|
||||
"haw": {
|
||||
"nativeName": "ʻŌlelo Hawaiʻi"
|
||||
},
|
||||
"he": {
|
||||
"nativeName": "עברית"
|
||||
},
|
||||
"hi": {
|
||||
"nativeName": "हिन्दी"
|
||||
},
|
||||
"hr": {
|
||||
"nativeName": "hrvatski"
|
||||
},
|
||||
"hsb": {
|
||||
"nativeName": "hornjoserbšćina"
|
||||
},
|
||||
"hu": {
|
||||
"nativeName": "magyar"
|
||||
},
|
||||
"hy": {
|
||||
"nativeName": "հայերեն"
|
||||
},
|
||||
"ia": {
|
||||
"nativeName": "interlingua"
|
||||
},
|
||||
"id": {
|
||||
"nativeName": "Indonesia"
|
||||
},
|
||||
"ig": {
|
||||
"nativeName": "Asụsụ Igbo"
|
||||
},
|
||||
"ii": {
|
||||
"nativeName": "ꆈꌠꉙ"
|
||||
},
|
||||
"is": {
|
||||
"nativeName": "íslenska"
|
||||
},
|
||||
"it": {
|
||||
"nativeName": "italiano"
|
||||
},
|
||||
"ja": {
|
||||
"nativeName": "日本語"
|
||||
},
|
||||
"ja-Hira": {
|
||||
"base": "ja",
|
||||
"script": "Hira"
|
||||
},
|
||||
"ja-Latn": {
|
||||
"base": "ja",
|
||||
"script": "Latn"
|
||||
},
|
||||
"jgo": {
|
||||
"nativeName": "Ndaꞌa"
|
||||
},
|
||||
"jmc": {
|
||||
"nativeName": "Kimachame"
|
||||
},
|
||||
"jv": {
|
||||
"nativeName": "Jawa"
|
||||
},
|
||||
"ka": {
|
||||
"nativeName": "ქართული"
|
||||
},
|
||||
"kab": {
|
||||
"nativeName": "Taqbaylit"
|
||||
},
|
||||
"kam": {
|
||||
"nativeName": "Kikamba"
|
||||
},
|
||||
"kde": {
|
||||
"nativeName": "Chimakonde"
|
||||
},
|
||||
"kea": {
|
||||
"nativeName": "kabuverdianu"
|
||||
},
|
||||
"khq": {
|
||||
"nativeName": "Koyra ciini"
|
||||
},
|
||||
"ki": {
|
||||
"nativeName": "Gikuyu"
|
||||
},
|
||||
"kk": {
|
||||
"nativeName": "қазақ тілі"
|
||||
},
|
||||
"kkj": {
|
||||
"nativeName": "kakɔ"
|
||||
},
|
||||
"kl": {
|
||||
"nativeName": "kalaallisut"
|
||||
},
|
||||
"kln": {
|
||||
"nativeName": "Kalenjin"
|
||||
},
|
||||
"km": {
|
||||
"nativeName": "ខ្មែរ"
|
||||
},
|
||||
"kn": {
|
||||
"nativeName": "ಕನ್ನಡ"
|
||||
},
|
||||
"ko": {
|
||||
"nativeName": "한국어"
|
||||
},
|
||||
"ko-Latn": {
|
||||
"base": "ko",
|
||||
"script": "Latn"
|
||||
},
|
||||
"kok": {
|
||||
"nativeName": "कोंकणी"
|
||||
},
|
||||
"ks": {
|
||||
"nativeName": "کٲشُر"
|
||||
},
|
||||
"ksb": {
|
||||
"nativeName": "Kishambaa"
|
||||
},
|
||||
"ksf": {
|
||||
"nativeName": "rikpa"
|
||||
},
|
||||
"ksh": {
|
||||
"nativeName": "Kölsch"
|
||||
},
|
||||
"ku": {
|
||||
"nativeName": "kurdî"
|
||||
},
|
||||
"kw": {
|
||||
"nativeName": "kernewek"
|
||||
},
|
||||
"ky": {
|
||||
"nativeName": "кыргызча"
|
||||
},
|
||||
"lag": {
|
||||
"nativeName": "Kɨlaangi"
|
||||
},
|
||||
"lb": {
|
||||
"nativeName": "Lëtzebuergesch"
|
||||
},
|
||||
"lg": {
|
||||
"nativeName": "Luganda"
|
||||
},
|
||||
"lkt": {
|
||||
"nativeName": "Lakȟólʼiyapi"
|
||||
},
|
||||
"ln": {
|
||||
"nativeName": "lingála"
|
||||
},
|
||||
"lo": {
|
||||
"nativeName": "ລາວ"
|
||||
},
|
||||
"lrc": {
|
||||
"nativeName": "لۊری شومالی"
|
||||
},
|
||||
"lt": {
|
||||
"nativeName": "lietuvių"
|
||||
},
|
||||
"lu": {
|
||||
"nativeName": "Tshiluba"
|
||||
},
|
||||
"luo": {
|
||||
"nativeName": "Dholuo"
|
||||
},
|
||||
"luy": {
|
||||
"nativeName": "Luluhia"
|
||||
},
|
||||
"lv": {
|
||||
"nativeName": "latviešu"
|
||||
},
|
||||
"mas": {
|
||||
"nativeName": "Maa"
|
||||
},
|
||||
"mer": {
|
||||
"nativeName": "Kĩmĩrũ"
|
||||
},
|
||||
"mfe": {
|
||||
"nativeName": "kreol morisien"
|
||||
},
|
||||
"mg": {
|
||||
"nativeName": "Malagasy"
|
||||
},
|
||||
"mgh": {
|
||||
"nativeName": "Makua"
|
||||
},
|
||||
"mgo": {
|
||||
"nativeName": "metaʼ"
|
||||
},
|
||||
"mi": {
|
||||
"nativeName": "Māori"
|
||||
},
|
||||
"mk": {
|
||||
"nativeName": "македонски"
|
||||
},
|
||||
"ml": {
|
||||
"nativeName": "മലയാളം"
|
||||
},
|
||||
"mn": {
|
||||
"nativeName": "монгол"
|
||||
},
|
||||
"mr": {
|
||||
"nativeName": "मराठी"
|
||||
},
|
||||
"ms": {
|
||||
"nativeName": "Melayu"
|
||||
},
|
||||
"mt": {
|
||||
"nativeName": "Malti"
|
||||
},
|
||||
"mua": {
|
||||
"nativeName": "MUNDAŊ"
|
||||
},
|
||||
"my": {
|
||||
"nativeName": "မြန်မာ"
|
||||
},
|
||||
"mzn": {
|
||||
"nativeName": "مازرونی"
|
||||
},
|
||||
"naq": {
|
||||
"nativeName": "Khoekhoegowab"
|
||||
},
|
||||
"nb": {
|
||||
"nativeName": "norsk bokmål"
|
||||
},
|
||||
"nd": {
|
||||
"nativeName": "isiNdebele"
|
||||
},
|
||||
"nds": {
|
||||
"nativeName": "nds"
|
||||
},
|
||||
"ne": {
|
||||
"nativeName": "नेपाली"
|
||||
},
|
||||
"nl": {
|
||||
"nativeName": "Nederlands"
|
||||
},
|
||||
"nmg": {
|
||||
"nativeName": "nmg"
|
||||
},
|
||||
"nn": {
|
||||
"nativeName": "nynorsk"
|
||||
},
|
||||
"nnh": {
|
||||
"nativeName": "Shwóŋò ngiembɔɔn"
|
||||
},
|
||||
"nus": {
|
||||
"nativeName": "Thok Nath"
|
||||
},
|
||||
"nyn": {
|
||||
"nativeName": "Runyankore"
|
||||
},
|
||||
"oc": {
|
||||
"nativeName": "Occitan"
|
||||
},
|
||||
"om": {
|
||||
"nativeName": "Oromoo"
|
||||
},
|
||||
"or": {
|
||||
"nativeName": "ଓଡ଼ିଆ"
|
||||
},
|
||||
"os": {
|
||||
"nativeName": "ирон"
|
||||
},
|
||||
"pa": {
|
||||
"nativeName": "ਪੰਜਾਬੀ"
|
||||
},
|
||||
"pa-Arab": {
|
||||
"base": "pa",
|
||||
"script": "Arab"
|
||||
},
|
||||
"pa-Guru": {
|
||||
"base": "pa",
|
||||
"script": "Guru"
|
||||
},
|
||||
"pl": {
|
||||
"nativeName": "polski"
|
||||
},
|
||||
"prg": {
|
||||
"nativeName": "prūsiskan"
|
||||
},
|
||||
"ps": {
|
||||
"nativeName": "پښتو"
|
||||
},
|
||||
"pt": {
|
||||
"nativeName": "português"
|
||||
},
|
||||
"qu": {
|
||||
"nativeName": "Runasimi"
|
||||
},
|
||||
"rm": {
|
||||
"nativeName": "rumantsch"
|
||||
},
|
||||
"rn": {
|
||||
"nativeName": "Ikirundi"
|
||||
},
|
||||
"ro": {
|
||||
"nativeName": "română"
|
||||
},
|
||||
"rof": {
|
||||
"nativeName": "Kihorombo"
|
||||
},
|
||||
"root": {
|
||||
"nativeName": "root"
|
||||
},
|
||||
"ru": {
|
||||
"nativeName": "русский"
|
||||
},
|
||||
"rw": {
|
||||
"nativeName": "Kinyarwanda"
|
||||
},
|
||||
"rwk": {
|
||||
"nativeName": "Kiruwa"
|
||||
},
|
||||
"sah": {
|
||||
"nativeName": "саха тыла"
|
||||
},
|
||||
"saq": {
|
||||
"nativeName": "Kisampur"
|
||||
},
|
||||
"sbp": {
|
||||
"nativeName": "Ishisangu"
|
||||
},
|
||||
"sd": {
|
||||
"nativeName": "سنڌي"
|
||||
},
|
||||
"se": {
|
||||
"nativeName": "davvisámegiella"
|
||||
},
|
||||
"seh": {
|
||||
"nativeName": "sena"
|
||||
},
|
||||
"ses": {
|
||||
"nativeName": "Koyraboro senni"
|
||||
},
|
||||
"sg": {
|
||||
"nativeName": "Sängö"
|
||||
},
|
||||
"shi": {
|
||||
"nativeName": "ⵜⴰⵛⵍⵃⵉⵜ"
|
||||
},
|
||||
"shi-Latn": {
|
||||
"base": "shi",
|
||||
"script": "Latn"
|
||||
},
|
||||
"shi-Tfng": {
|
||||
"base": "shi",
|
||||
"script": "Tfng"
|
||||
},
|
||||
"si": {
|
||||
"nativeName": "සිංහල"
|
||||
},
|
||||
"sk": {
|
||||
"nativeName": "slovenčina"
|
||||
},
|
||||
"sl": {
|
||||
"nativeName": "slovenščina"
|
||||
},
|
||||
"smn": {
|
||||
"nativeName": "anarâškielâ"
|
||||
},
|
||||
"sn": {
|
||||
"nativeName": "chiShona"
|
||||
},
|
||||
"so": {
|
||||
"nativeName": "Soomaali"
|
||||
},
|
||||
"sq": {
|
||||
"nativeName": "shqip"
|
||||
},
|
||||
"sr": {
|
||||
"nativeName": "српски"
|
||||
},
|
||||
"sr-Cyrl": {
|
||||
"base": "sr",
|
||||
"script": "Cyrl"
|
||||
},
|
||||
"sr-Latn": {
|
||||
"base": "sr",
|
||||
"script": "Latn"
|
||||
},
|
||||
"sv": {
|
||||
"nativeName": "svenska"
|
||||
},
|
||||
"sw": {
|
||||
"nativeName": "Kiswahili"
|
||||
},
|
||||
"ta": {
|
||||
"nativeName": "தமிழ்"
|
||||
},
|
||||
"te": {
|
||||
"nativeName": "తెలుగు"
|
||||
},
|
||||
"teo": {
|
||||
"nativeName": "Kiteso"
|
||||
},
|
||||
"tg": {
|
||||
"nativeName": "тоҷикӣ"
|
||||
},
|
||||
"th": {
|
||||
"nativeName": "ไทย"
|
||||
},
|
||||
"ti": {
|
||||
"nativeName": "ትግርኛ"
|
||||
},
|
||||
"tk": {
|
||||
"nativeName": "türkmen dili"
|
||||
},
|
||||
"to": {
|
||||
"nativeName": "lea fakatonga"
|
||||
},
|
||||
"tr": {
|
||||
"nativeName": "Türkçe"
|
||||
},
|
||||
"tt": {
|
||||
"nativeName": "татар"
|
||||
},
|
||||
"twq": {
|
||||
"nativeName": "Tasawaq senni"
|
||||
},
|
||||
"tzm": {
|
||||
"nativeName": "Tamaziɣt n laṭlaṣ"
|
||||
},
|
||||
"ug": {
|
||||
"nativeName": "ئۇيغۇرچە"
|
||||
},
|
||||
"uk": {
|
||||
"nativeName": "українська"
|
||||
},
|
||||
"ur": {
|
||||
"nativeName": "اردو"
|
||||
},
|
||||
"uz": {
|
||||
"nativeName": "o‘zbek"
|
||||
},
|
||||
"uz-Arab": {
|
||||
"base": "uz",
|
||||
"script": "Arab"
|
||||
},
|
||||
"uz-Cyrl": {
|
||||
"base": "uz",
|
||||
"script": "Cyrl"
|
||||
},
|
||||
"uz-Latn": {
|
||||
"base": "uz",
|
||||
"script": "Latn"
|
||||
},
|
||||
"vai": {
|
||||
"nativeName": "ꕙꔤ"
|
||||
},
|
||||
"vai-Latn": {
|
||||
"base": "vai",
|
||||
"script": "Latn"
|
||||
},
|
||||
"vai-Vaii": {
|
||||
"base": "vai",
|
||||
"script": "Vaii"
|
||||
},
|
||||
"vi": {
|
||||
"nativeName": "Tiếng Việt"
|
||||
},
|
||||
"vo": {
|
||||
"nativeName": "vo"
|
||||
},
|
||||
"vun": {
|
||||
"nativeName": "Kyivunjo"
|
||||
},
|
||||
"wae": {
|
||||
"nativeName": "Walser"
|
||||
},
|
||||
"wo": {
|
||||
"nativeName": "Wolof"
|
||||
},
|
||||
"xh": {
|
||||
"nativeName": "isiXhosa"
|
||||
},
|
||||
"xog": {
|
||||
"nativeName": "Olusoga"
|
||||
},
|
||||
"yav": {
|
||||
"nativeName": "nuasue"
|
||||
},
|
||||
"yi": {
|
||||
"nativeName": "ייִדיש"
|
||||
},
|
||||
"yo": {
|
||||
"nativeName": "Èdè Yorùbá"
|
||||
},
|
||||
"yue": {
|
||||
"nativeName": "粵語"
|
||||
},
|
||||
"yue-Hans": {
|
||||
"base": "yue",
|
||||
"script": "Hans"
|
||||
},
|
||||
"yue-Hant": {
|
||||
"base": "yue",
|
||||
"script": "Hant"
|
||||
},
|
||||
"zgh": {
|
||||
"nativeName": "ⵜⴰⵎⴰⵣⵉⵖⵜ"
|
||||
},
|
||||
"zh": {
|
||||
"nativeName": "中文"
|
||||
},
|
||||
"zh-Hans": {
|
||||
"base": "zh",
|
||||
"script": "Hans",
|
||||
"nativeName": "简体中文"
|
||||
},
|
||||
"zh-Hant": {
|
||||
"base": "zh",
|
||||
"script": "Hant",
|
||||
"nativeName": "繁體中文"
|
||||
},
|
||||
"zh_pinyin": {
|
||||
"base": "zh",
|
||||
"script": "Latn"
|
||||
},
|
||||
"zu": {
|
||||
"nativeName": "isiZulu"
|
||||
}
|
||||
}
|
||||
"af": {"nativeName": "Afrikaans"},
|
||||
"agq": {"nativeName": "Aghem"},
|
||||
"ak": {"nativeName": "Akan"},
|
||||
"am": {"nativeName": "አማርኛ"},
|
||||
"ar": {"nativeName": "العربية"},
|
||||
"as": {"nativeName": "অসমীয়া"},
|
||||
"asa": {"nativeName": "Kipare"},
|
||||
"ast": {"nativeName": "asturianu"},
|
||||
"az": {"nativeName": "azərbaycan"},
|
||||
"az-Cyrl": {"base": "az", "script": "Cyrl"},
|
||||
"az-Latn": {"base": "az", "script": "Latn"},
|
||||
"bas": {"nativeName": "Ɓàsàa"},
|
||||
"be": {"nativeName": "беларуская"},
|
||||
"bem": {"nativeName": "Ichibemba"},
|
||||
"bez": {"nativeName": "Hibena"},
|
||||
"bg": {"nativeName": "български"},
|
||||
"bm": {"nativeName": "bamanakan"},
|
||||
"bn": {"nativeName": "বাংলা"},
|
||||
"bo": {"nativeName": "བོད་སྐད་"},
|
||||
"br": {"nativeName": "brezhoneg"},
|
||||
"brx": {"nativeName": "बड़ो"},
|
||||
"bs": {"nativeName": "bosanski"},
|
||||
"bs-Cyrl": {"base": "bs", "script": "Cyrl"},
|
||||
"bs-Latn": {"base": "bs", "script": "Latn"},
|
||||
"ca": {"nativeName": "català"},
|
||||
"ccp": {"nativeName": "𑄌𑄋𑄴𑄟𑄳𑄦"},
|
||||
"ce": {"nativeName": "нохчийн"},
|
||||
"ceb": {"nativeName": "Binisaya"},
|
||||
"cgg": {"nativeName": "Rukiga"},
|
||||
"chr": {"nativeName": "ᏣᎳᎩ"},
|
||||
"ckb": {"nativeName": "کوردیی ناوەندی"},
|
||||
"cs": {"nativeName": "čeština"},
|
||||
"cu": {"nativeName": "cu"},
|
||||
"cy": {"nativeName": "Cymraeg"},
|
||||
"da": {"nativeName": "dansk"},
|
||||
"dav": {"nativeName": "Kitaita"},
|
||||
"de": {"nativeName": "Deutsch"},
|
||||
"dje": {"nativeName": "Zarmaciine"},
|
||||
"dsb": {"nativeName": "dolnoserbšćina"},
|
||||
"dua": {"nativeName": "duálá"},
|
||||
"dyo": {"nativeName": "joola"},
|
||||
"dz": {"nativeName": "རྫོང་ཁ"},
|
||||
"ebu": {"nativeName": "Kĩembu"},
|
||||
"ee": {"nativeName": "Eʋegbe"},
|
||||
"el": {"nativeName": "Ελληνικά"},
|
||||
"en": {"nativeName": "English"},
|
||||
"eo": {"nativeName": "esperanto"},
|
||||
"es": {"nativeName": "español"},
|
||||
"et": {"nativeName": "eesti"},
|
||||
"eu": {"nativeName": "euskara"},
|
||||
"ewo": {"nativeName": "ewondo"},
|
||||
"fa": {"nativeName": "فارسی"},
|
||||
"ff": {"nativeName": "Pulaar"},
|
||||
"ff-Latn": {"base": "ff", "script": "Latn"},
|
||||
"fi": {"nativeName": "suomi"},
|
||||
"fil": {"nativeName": "Filipino"},
|
||||
"fo": {"nativeName": "føroyskt"},
|
||||
"fr": {"nativeName": "français"},
|
||||
"fur": {"nativeName": "furlan"},
|
||||
"fy": {"nativeName": "Frysk"},
|
||||
"ga": {"nativeName": "Gaeilge"},
|
||||
"gd": {"nativeName": "Gàidhlig"},
|
||||
"gl": {"nativeName": "galego"},
|
||||
"gsw": {"nativeName": "Schwiizertüütsch"},
|
||||
"gu": {"nativeName": "ગુજરાતી"},
|
||||
"guz": {"nativeName": "Ekegusii"},
|
||||
"gv": {"nativeName": "Gaelg"},
|
||||
"ha": {"nativeName": "Hausa"},
|
||||
"haw": {"nativeName": "ʻŌlelo Hawaiʻi"},
|
||||
"he": {"nativeName": "עברית"},
|
||||
"hi": {"nativeName": "हिन्दी"},
|
||||
"hr": {"nativeName": "hrvatski"},
|
||||
"hsb": {"nativeName": "hornjoserbšćina"},
|
||||
"hu": {"nativeName": "magyar"},
|
||||
"hy": {"nativeName": "հայերեն"},
|
||||
"ia": {"nativeName": "interlingua"},
|
||||
"id": {"nativeName": "Indonesia"},
|
||||
"ig": {"nativeName": "Asụsụ Igbo"},
|
||||
"ii": {"nativeName": "ꆈꌠꉙ"},
|
||||
"is": {"nativeName": "íslenska"},
|
||||
"it": {"nativeName": "italiano"},
|
||||
"ja": {"nativeName": "日本語"},
|
||||
"ja-Hira": {"base": "ja", "script": "Hira"},
|
||||
"ja-Latn": {"base": "ja", "script": "Latn"},
|
||||
"jgo": {"nativeName": "Ndaꞌa"},
|
||||
"jmc": {"nativeName": "Kimachame"},
|
||||
"jv": {"nativeName": "Jawa"},
|
||||
"ka": {"nativeName": "ქართული"},
|
||||
"kab": {"nativeName": "Taqbaylit"},
|
||||
"kam": {"nativeName": "Kikamba"},
|
||||
"kde": {"nativeName": "Chimakonde"},
|
||||
"kea": {"nativeName": "kabuverdianu"},
|
||||
"khq": {"nativeName": "Koyra ciini"},
|
||||
"ki": {"nativeName": "Gikuyu"},
|
||||
"kk": {"nativeName": "қазақ тілі"},
|
||||
"kkj": {"nativeName": "kakɔ"},
|
||||
"kl": {"nativeName": "kalaallisut"},
|
||||
"kln": {"nativeName": "Kalenjin"},
|
||||
"km": {"nativeName": "ខ្មែរ"},
|
||||
"kn": {"nativeName": "ಕನ್ನಡ"},
|
||||
"ko": {"nativeName": "한국어"},
|
||||
"ko-Latn": {"base": "ko", "script": "Latn"},
|
||||
"kok": {"nativeName": "कोंकणी"},
|
||||
"ks": {"nativeName": "کٲشُر"},
|
||||
"ksb": {"nativeName": "Kishambaa"},
|
||||
"ksf": {"nativeName": "rikpa"},
|
||||
"ksh": {"nativeName": "Kölsch"},
|
||||
"ku": {"nativeName": "kurdî"},
|
||||
"kw": {"nativeName": "kernewek"},
|
||||
"ky": {"nativeName": "кыргызча"},
|
||||
"lag": {"nativeName": "Kɨlaangi"},
|
||||
"lb": {"nativeName": "Lëtzebuergesch"},
|
||||
"lg": {"nativeName": "Luganda"},
|
||||
"lkt": {"nativeName": "Lakȟólʼiyapi"},
|
||||
"ln": {"nativeName": "lingála"},
|
||||
"lo": {"nativeName": "ລາວ"},
|
||||
"lrc": {"nativeName": "لۊری شومالی"},
|
||||
"lt": {"nativeName": "lietuvių"},
|
||||
"lu": {"nativeName": "Tshiluba"},
|
||||
"luo": {"nativeName": "Dholuo"},
|
||||
"luy": {"nativeName": "Luluhia"},
|
||||
"lv": {"nativeName": "latviešu"},
|
||||
"mas": {"nativeName": "Maa"},
|
||||
"mer": {"nativeName": "Kĩmĩrũ"},
|
||||
"mfe": {"nativeName": "kreol morisien"},
|
||||
"mg": {"nativeName": "Malagasy"},
|
||||
"mgh": {"nativeName": "Makua"},
|
||||
"mgo": {"nativeName": "metaʼ"},
|
||||
"mi": {"nativeName": "Māori"},
|
||||
"mk": {"nativeName": "македонски"},
|
||||
"ml": {"nativeName": "മലയാളം"},
|
||||
"mn": {"nativeName": "монгол"},
|
||||
"mr": {"nativeName": "मराठी"},
|
||||
"ms": {"nativeName": "Melayu"},
|
||||
"mt": {"nativeName": "Malti"},
|
||||
"mua": {"nativeName": "MUNDAŊ"},
|
||||
"my": {"nativeName": "မြန်မာ"},
|
||||
"mzn": {"nativeName": "مازرونی"},
|
||||
"naq": {"nativeName": "Khoekhoegowab"},
|
||||
"nb": {"nativeName": "norsk bokmål"},
|
||||
"nd": {"nativeName": "isiNdebele"},
|
||||
"nds": {"nativeName": "nds"},
|
||||
"ne": {"nativeName": "नेपाली"},
|
||||
"nl": {"nativeName": "Nederlands"},
|
||||
"nmg": {"nativeName": "nmg"},
|
||||
"nn": {"nativeName": "nynorsk"},
|
||||
"nnh": {"nativeName": "Shwóŋò ngiembɔɔn"},
|
||||
"nus": {"nativeName": "Thok Nath"},
|
||||
"nyn": {"nativeName": "Runyankore"},
|
||||
"oc": {"nativeName": "Occitan"},
|
||||
"om": {"nativeName": "Oromoo"},
|
||||
"or": {"nativeName": "ଓଡ଼ିଆ"},
|
||||
"os": {"nativeName": "ирон"},
|
||||
"pa": {"nativeName": "ਪੰਜਾਬੀ"},
|
||||
"pa-Arab": {"base": "pa", "script": "Arab"},
|
||||
"pa-Guru": {"base": "pa", "script": "Guru"},
|
||||
"pl": {"nativeName": "polski"},
|
||||
"prg": {"nativeName": "prūsiskan"},
|
||||
"ps": {"nativeName": "پښتو"},
|
||||
"pt": {"nativeName": "português"},
|
||||
"qu": {"nativeName": "Runasimi"},
|
||||
"rm": {"nativeName": "rumantsch"},
|
||||
"rn": {"nativeName": "Ikirundi"},
|
||||
"ro": {"nativeName": "română"},
|
||||
"rof": {"nativeName": "Kihorombo"},
|
||||
"root": {"nativeName": "root"},
|
||||
"ru": {"nativeName": "русский"},
|
||||
"rw": {"nativeName": "Kinyarwanda"},
|
||||
"rwk": {"nativeName": "Kiruwa"},
|
||||
"sah": {"nativeName": "саха тыла"},
|
||||
"saq": {"nativeName": "Kisampur"},
|
||||
"sbp": {"nativeName": "Ishisangu"},
|
||||
"sd": {"nativeName": "سنڌي"},
|
||||
"se": {"nativeName": "davvisámegiella"},
|
||||
"seh": {"nativeName": "sena"},
|
||||
"ses": {"nativeName": "Koyraboro senni"},
|
||||
"sg": {"nativeName": "Sängö"},
|
||||
"shi": {"nativeName": "ⵜⴰⵛⵍⵃⵉⵜ"},
|
||||
"shi-Latn": {"base": "shi", "script": "Latn"},
|
||||
"shi-Tfng": {"base": "shi", "script": "Tfng"},
|
||||
"si": {"nativeName": "සිංහල"},
|
||||
"sk": {"nativeName": "slovenčina"},
|
||||
"sl": {"nativeName": "slovenščina"},
|
||||
"smn": {"nativeName": "anarâškielâ"},
|
||||
"sn": {"nativeName": "chiShona"},
|
||||
"so": {"nativeName": "Soomaali"},
|
||||
"sq": {"nativeName": "shqip"},
|
||||
"sr": {"nativeName": "српски"},
|
||||
"sr-Cyrl": {"base": "sr", "script": "Cyrl"},
|
||||
"sr-Latn": {"base": "sr", "script": "Latn"},
|
||||
"sv": {"nativeName": "svenska"},
|
||||
"sw": {"nativeName": "Kiswahili"},
|
||||
"ta": {"nativeName": "தமிழ்"},
|
||||
"te": {"nativeName": "తెలుగు"},
|
||||
"teo": {"nativeName": "Kiteso"},
|
||||
"tg": {"nativeName": "тоҷикӣ"},
|
||||
"th": {"nativeName": "ไทย"},
|
||||
"ti": {"nativeName": "ትግርኛ"},
|
||||
"tk": {"nativeName": "türkmen dili"},
|
||||
"to": {"nativeName": "lea fakatonga"},
|
||||
"tr": {"nativeName": "Türkçe"},
|
||||
"tt": {"nativeName": "татар"},
|
||||
"twq": {"nativeName": "Tasawaq senni"},
|
||||
"tzm": {"nativeName": "Tamaziɣt n laṭlaṣ"},
|
||||
"ug": {"nativeName": "ئۇيغۇرچە"},
|
||||
"uk": {"nativeName": "українська"},
|
||||
"ur": {"nativeName": "اردو"},
|
||||
"uz": {"nativeName": "o‘zbek"},
|
||||
"uz-Arab": {"base": "uz", "script": "Arab"},
|
||||
"uz-Cyrl": {"base": "uz", "script": "Cyrl"},
|
||||
"uz-Latn": {"base": "uz", "script": "Latn"},
|
||||
"vai": {"nativeName": "ꕙꔤ"},
|
||||
"vai-Latn": {"base": "vai", "script": "Latn"},
|
||||
"vai-Vaii": {"base": "vai", "script": "Vaii"},
|
||||
"vi": {"nativeName": "Tiếng Việt"},
|
||||
"vo": {"nativeName": "vo"},
|
||||
"vun": {"nativeName": "Kyivunjo"},
|
||||
"wae": {"nativeName": "Walser"},
|
||||
"wo": {"nativeName": "Wolof"},
|
||||
"xh": {"nativeName": "isiXhosa"},
|
||||
"xog": {"nativeName": "Olusoga"},
|
||||
"yav": {"nativeName": "nuasue"},
|
||||
"yi": {"nativeName": "ייִדיש"},
|
||||
"yo": {"nativeName": "Èdè Yorùbá"},
|
||||
"yue": {"nativeName": "粵語"},
|
||||
"yue-Hans": {"base": "yue", "script": "Hans"},
|
||||
"yue-Hant": {"base": "yue", "script": "Hant"},
|
||||
"zgh": {"nativeName": "ⵜⴰⵎⴰⵣⵉⵖⵜ"},
|
||||
"zh": {"nativeName": "中文"},
|
||||
"zh-Hans": {"base": "zh", "script": "Hans", "nativeName": "简体中文"},
|
||||
"zh-Hant": {"base": "zh", "script": "Hant", "nativeName": "繁體中文"},
|
||||
"zh_pinyin": {"base": "zh", "script": "Latn"},
|
||||
"zu": {"nativeName": "isiZulu"}
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
@@ -1,65 +0,0 @@
|
||||
{
|
||||
"dataPhoneFormats": {
|
||||
"ag": "+1-268-555-1234",
|
||||
"ai": "+1-264-555-1234",
|
||||
"as": "+1-684-555-1234",
|
||||
"at": "+43 1 123 45 67",
|
||||
"au": "+61 1 2345 6789",
|
||||
"bb": "+1-246-555-1234",
|
||||
"bj": "+229 20 12 34 56",
|
||||
"bm": "+1-441-555-1234",
|
||||
"bo": "+591 1 2345678",
|
||||
"br": "+55 11 0982 1098",
|
||||
"bs": "+1-242-555-1234",
|
||||
"ca": "+1-226-555-1234",
|
||||
"ci": "+225 20 12 34 56",
|
||||
"cn": "+86 10 12345678",
|
||||
"de": "+49 89 1234567",
|
||||
"dm": "+1-767-555-1234",
|
||||
"do": "+1-809-555-1234",
|
||||
"es": "+34 989 12 34 56",
|
||||
"fi": "+358 40 123 4567",
|
||||
"fr": "+33 1 23 45 67 89",
|
||||
"gb": "+44 1632 961234",
|
||||
"gd": "+1-473-555-1234",
|
||||
"gg": "+44 1632 961234",
|
||||
"gu": "+1-671-555-1234",
|
||||
"hk": "+852 1234 5678",
|
||||
"hr": "+385 01 123 4567",
|
||||
"hu": "+36 1 123 45 67",
|
||||
"ie": "+353 20 912 3456",
|
||||
"im": "+44 1632 961234",
|
||||
"it": "+39 01 123 456",
|
||||
"je": "+44 1632 961234",
|
||||
"jm": "+1-876-555-1234",
|
||||
"kn": "+1-869-555-1234",
|
||||
"ky": "+1-345-555-1234",
|
||||
"kz": "+7 495 1234567",
|
||||
"lc": "+1-758-555-1234",
|
||||
"mp": "+1-670-555-1234",
|
||||
"ms": "+1-664-555-1234",
|
||||
"nl": "+31 42 123 4567",
|
||||
"no": "+47 22 12 34 56",
|
||||
"pe": "+51 1 1234567",
|
||||
"pl": "+48 42 123 4567",
|
||||
"pr": "+1-787-555-1234",
|
||||
"pt": "+351 211 123456",
|
||||
"ru": "+7 495 1234567",
|
||||
"se": "+46 31 123 4567",
|
||||
"si": "+386 31 123 4567",
|
||||
"sj": "+47 22 12 34 56",
|
||||
"sx": "+1-721-555-1234",
|
||||
"tc": "+1-649-555-1234",
|
||||
"tr": "+90 312 123 4567",
|
||||
"tt": "+1-868-555-1234",
|
||||
"tw": "+886 1 2345 6789",
|
||||
"ua": "+380 44 123 4567",
|
||||
"us": "+1-202-555-1234",
|
||||
"va": "+39 01 123 456",
|
||||
"vc": "+1-784-555-1234",
|
||||
"vg": "+1-284-555-1234",
|
||||
"vi": "+1-340-555-1234",
|
||||
"vn": "+84 1 234 5678",
|
||||
"za": "+27 11 907 1111"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
{
|
||||
"ag": "+1-268-555-1234",
|
||||
"ai": "+1-264-555-1234",
|
||||
"as": "+1-684-555-1234",
|
||||
"at": "+43 1 123 45 67",
|
||||
"au": "+61 1 2345 6789",
|
||||
"bb": "+1-246-555-1234",
|
||||
"bj": "+229 20 12 34 56",
|
||||
"bm": "+1-441-555-1234",
|
||||
"bo": "+591 1 2345678",
|
||||
"br": "+55 11 0982 1098",
|
||||
"bs": "+1-242-555-1234",
|
||||
"ca": "+1-226-555-1234",
|
||||
"ci": "+225 20 12 34 56",
|
||||
"cn": "+86 10 12345678",
|
||||
"de": "+49 89 1234567",
|
||||
"dm": "+1-767-555-1234",
|
||||
"do": "+1-809-555-1234",
|
||||
"es": "+34 989 12 34 56",
|
||||
"fi": "+358 40 123 4567",
|
||||
"fr": "+33 1 23 45 67 89",
|
||||
"gb": "+44 1632 961234",
|
||||
"gd": "+1-473-555-1234",
|
||||
"gg": "+44 1632 961234",
|
||||
"gu": "+1-671-555-1234",
|
||||
"hk": "+852 1234 5678",
|
||||
"hr": "+385 01 123 4567",
|
||||
"hu": "+36 1 123 45 67",
|
||||
"ie": "+353 20 912 3456",
|
||||
"im": "+44 1632 961234",
|
||||
"it": "+39 01 123 456",
|
||||
"je": "+44 1632 961234",
|
||||
"jm": "+1-876-555-1234",
|
||||
"kn": "+1-869-555-1234",
|
||||
"ky": "+1-345-555-1234",
|
||||
"kz": "+7 495 1234567",
|
||||
"lc": "+1-758-555-1234",
|
||||
"mp": "+1-670-555-1234",
|
||||
"ms": "+1-664-555-1234",
|
||||
"nl": "+31 42 123 4567",
|
||||
"no": "+47 22 12 34 56",
|
||||
"pe": "+51 1 1234567",
|
||||
"pl": "+48 42 123 4567",
|
||||
"pr": "+1-787-555-1234",
|
||||
"pt": "+351 211 123456",
|
||||
"ru": "+7 495 1234567",
|
||||
"se": "+46 31 123 4567",
|
||||
"si": "+386 31 123 4567",
|
||||
"sj": "+47 22 12 34 56",
|
||||
"sx": "+1-721-555-1234",
|
||||
"tc": "+1-649-555-1234",
|
||||
"tr": "+90 312 123 4567",
|
||||
"tt": "+1-868-555-1234",
|
||||
"tw": "+886 1 2345 6789",
|
||||
"ua": "+380 44 123 4567",
|
||||
"us": "+1-202-555-1234",
|
||||
"va": "+39 01 123 456",
|
||||
"vc": "+1-784-555-1234",
|
||||
"vg": "+1-284-555-1234",
|
||||
"vi": "+1-340-555-1234",
|
||||
"vn": "+84 1 234 5678",
|
||||
"za": "+27 11 907 1111"
|
||||
}
|
||||
+340
-342
@@ -1,342 +1,340 @@
|
||||
{
|
||||
"dataShortcuts": [
|
||||
{
|
||||
"tab": "browsing",
|
||||
"text": "shortcuts.browsing.title",
|
||||
"columns": [
|
||||
{
|
||||
"rows": [
|
||||
{
|
||||
"section": "navigation",
|
||||
"text": "shortcuts.browsing.navigation.title"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["↓", "↑", "←", "→"],
|
||||
"text": "shortcuts.browsing.navigation.pan",
|
||||
"separator": ","
|
||||
},
|
||||
{
|
||||
"modifiers": ["⌘"],
|
||||
"shortcuts": ["↓", "↑", "←", "→"],
|
||||
"text": "shortcuts.browsing.navigation.pan_more",
|
||||
"separator": ","
|
||||
},
|
||||
{
|
||||
"shortcuts": ["+", "-"],
|
||||
"text": "shortcuts.browsing.navigation.zoom",
|
||||
"separator": ","
|
||||
},
|
||||
{
|
||||
"modifiers": ["⌘"],
|
||||
"shortcuts": ["+", "-"],
|
||||
"text": "shortcuts.browsing.navigation.zoom_more",
|
||||
"separator": ","
|
||||
},
|
||||
{
|
||||
"section": "display_options",
|
||||
"text": "shortcuts.browsing.display_options.title"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["background.key"],
|
||||
"text": "shortcuts.browsing.display_options.background"
|
||||
},
|
||||
{
|
||||
"modifiers": ["⌘"],
|
||||
"shortcuts": ["background.key"],
|
||||
"text": "shortcuts.browsing.display_options.background_switch"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["map_data.key"],
|
||||
"text": "shortcuts.browsing.display_options.map_data"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["issues.key"],
|
||||
"text": "shortcuts.browsing.display_options.issues"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["preferences.key"],
|
||||
"text": "shortcuts.browsing.display_options.preferences"
|
||||
},
|
||||
{
|
||||
"modifiers": ["⌃", "⌘"],
|
||||
"shortcuts": ["F", "F11"],
|
||||
"text": "shortcuts.browsing.display_options.fullscreen"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["sidebar.key", "`", "²"],
|
||||
"text": "shortcuts.browsing.display_options.sidebar"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["area_fill.wireframe.key"],
|
||||
"text": "shortcuts.browsing.display_options.wireframe"
|
||||
},
|
||||
{
|
||||
"modifiers": ["⌥"],
|
||||
"shortcuts": ["area_fill.wireframe.key"],
|
||||
"text": "shortcuts.browsing.display_options.osm_data"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["background.minimap.key"],
|
||||
"text": "shortcuts.browsing.display_options.minimap"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["map_data.highlight_edits.key"],
|
||||
"text": "shortcuts.browsing.display_options.highlight_edits"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"rows": [
|
||||
{
|
||||
"section": "help",
|
||||
"text": "shortcuts.browsing.help.title"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["help.key"],
|
||||
"text": "shortcuts.browsing.help.help"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["shortcuts.toggle.key", "?"],
|
||||
"text": "shortcuts.browsing.help.keyboard"
|
||||
},
|
||||
{
|
||||
"section": "selecting",
|
||||
"text": "shortcuts.browsing.selecting.title"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["Left-click"],
|
||||
"text": "shortcuts.browsing.selecting.select_one"
|
||||
},
|
||||
{
|
||||
"modifiers": ["⇧"],
|
||||
"shortcuts": ["Left-click"],
|
||||
"text": "shortcuts.browsing.selecting.select_multi"
|
||||
},
|
||||
{
|
||||
"modifiers": ["⇧"],
|
||||
"shortcuts": ["Left-click"],
|
||||
"gesture": "shortcuts.gesture.drag",
|
||||
"text": "shortcuts.browsing.selecting.lasso"
|
||||
},
|
||||
{
|
||||
"modifiers": ["⌘"],
|
||||
"shortcuts": ["F"],
|
||||
"text": "shortcuts.browsing.selecting.search"
|
||||
},
|
||||
{
|
||||
"section": "with_selected",
|
||||
"text": "shortcuts.browsing.with_selected.title"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["Right-click", "shortcuts.key.space"],
|
||||
"text": "shortcuts.browsing.with_selected.edit_menu"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["inspector.zoom_to.key"],
|
||||
"text": "shortcuts.browsing.with_selected.zoom_to"
|
||||
},
|
||||
{
|
||||
"section": "vertex_selected",
|
||||
"text": "shortcuts.browsing.vertex_selected.title"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["[", "↖"],
|
||||
"text": "shortcuts.browsing.vertex_selected.previous"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["]", "↘"],
|
||||
"text": "shortcuts.browsing.vertex_selected.next"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["{", "⇞"],
|
||||
"text": "shortcuts.browsing.vertex_selected.first"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["}", "⇟"],
|
||||
"text": "shortcuts.browsing.vertex_selected.last"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["\\", "shortcuts.key.pause"],
|
||||
"text": "shortcuts.browsing.vertex_selected.change_parent"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tab": "editing",
|
||||
"text": "shortcuts.editing.title",
|
||||
"columns": [
|
||||
{
|
||||
"rows": [
|
||||
{
|
||||
"section": "drawing",
|
||||
"text": "shortcuts.editing.drawing.title"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["1"],
|
||||
"text": "shortcuts.editing.drawing.add_point"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["2"],
|
||||
"text": "shortcuts.editing.drawing.add_line"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["3"],
|
||||
"text": "shortcuts.editing.drawing.add_area"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["modes.add_note.key"],
|
||||
"text": "shortcuts.editing.drawing.add_note"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["Left-click", "shortcuts.key.space"],
|
||||
"text": "shortcuts.editing.drawing.place_point"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["⌥"],
|
||||
"text": "shortcuts.editing.drawing.disable_snap"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["↵", "⎋"],
|
||||
"text": "shortcuts.editing.drawing.stop_line"
|
||||
},
|
||||
{
|
||||
"section": "commands",
|
||||
"text": "shortcuts.editing.commands.title"
|
||||
},
|
||||
{
|
||||
"modifiers": ["⌘"],
|
||||
"shortcuts": ["C"],
|
||||
"text": "shortcuts.editing.commands.copy"
|
||||
},
|
||||
{
|
||||
"modifiers": ["⌘"],
|
||||
"shortcuts": ["V"],
|
||||
"text": "shortcuts.editing.commands.paste"
|
||||
},
|
||||
{
|
||||
"modifiers": ["⌘"],
|
||||
"shortcuts": ["Z"],
|
||||
"text": "shortcuts.editing.commands.undo"
|
||||
},
|
||||
{
|
||||
"modifiers": ["⌘", "⇧"],
|
||||
"shortcuts": ["Z"],
|
||||
"text": "shortcuts.editing.commands.redo"
|
||||
},
|
||||
{
|
||||
"modifiers": ["⌘"],
|
||||
"shortcuts": ["S"],
|
||||
"text": "shortcuts.editing.commands.save"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"rows": [
|
||||
{
|
||||
"section": "operations",
|
||||
"text": "shortcuts.editing.operations.title"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["operations.continue.key"],
|
||||
"text": "shortcuts.editing.operations.continue_line"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["operations.merge.key"],
|
||||
"text": "shortcuts.editing.operations.merge"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["operations.disconnect.key"],
|
||||
"text": "shortcuts.editing.operations.disconnect"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["operations.extract.key"],
|
||||
"text": "shortcuts.editing.operations.extract"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["operations.split.key"],
|
||||
"text": "shortcuts.editing.operations.split"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["operations.reverse.key"],
|
||||
"text": "shortcuts.editing.operations.reverse"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["operations.move.key"],
|
||||
"text": "shortcuts.editing.operations.move"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["operations.rotate.key"],
|
||||
"text": "shortcuts.editing.operations.rotate"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["operations.orthogonalize.key"],
|
||||
"text": "shortcuts.editing.operations.orthogonalize"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["operations.straighten.key"],
|
||||
"text": "shortcuts.editing.operations.straighten"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["operations.circularize.key"],
|
||||
"text": "shortcuts.editing.operations.circularize"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["operations.reflect.key.long"],
|
||||
"text": "shortcuts.editing.operations.reflect_long"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["operations.reflect.key.short"],
|
||||
"text": "shortcuts.editing.operations.reflect_short"
|
||||
},
|
||||
{
|
||||
"modifiers": ["⌘"],
|
||||
"shortcuts": ["⌫"],
|
||||
"text": "shortcuts.editing.operations.delete"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tab": "tools",
|
||||
"text": "shortcuts.tools.title",
|
||||
"columns": [
|
||||
{
|
||||
"rows": [
|
||||
{
|
||||
"section": "info",
|
||||
"text": "shortcuts.tools.info.title"
|
||||
},
|
||||
{
|
||||
"modifiers": ["⌘"],
|
||||
"shortcuts": ["info_panels.key"],
|
||||
"text": "shortcuts.tools.info.all"
|
||||
},
|
||||
{
|
||||
"modifiers": ["⌘", "⇧"],
|
||||
"shortcuts": ["info_panels.background.key"],
|
||||
"text": "shortcuts.tools.info.background"
|
||||
},
|
||||
{
|
||||
"modifiers": ["⌘", "⇧"],
|
||||
"shortcuts": ["info_panels.history.key"],
|
||||
"text": "shortcuts.tools.info.history"
|
||||
},
|
||||
{
|
||||
"modifiers": ["⌘", "⇧"],
|
||||
"shortcuts": ["info_panels.location.key"],
|
||||
"text": "shortcuts.tools.info.location"
|
||||
},
|
||||
{
|
||||
"modifiers": ["⌘", "⇧"],
|
||||
"shortcuts": ["info_panels.measurement.key"],
|
||||
"text": "shortcuts.tools.info.measurement"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
[
|
||||
{
|
||||
"tab": "browsing",
|
||||
"text": "shortcuts.browsing.title",
|
||||
"columns": [
|
||||
{
|
||||
"rows": [
|
||||
{
|
||||
"section": "navigation",
|
||||
"text": "shortcuts.browsing.navigation.title"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["↓", "↑", "←", "→"],
|
||||
"text": "shortcuts.browsing.navigation.pan",
|
||||
"separator": ","
|
||||
},
|
||||
{
|
||||
"modifiers": ["⌘"],
|
||||
"shortcuts": ["↓", "↑", "←", "→"],
|
||||
"text": "shortcuts.browsing.navigation.pan_more",
|
||||
"separator": ","
|
||||
},
|
||||
{
|
||||
"shortcuts": ["+", "-"],
|
||||
"text": "shortcuts.browsing.navigation.zoom",
|
||||
"separator": ","
|
||||
},
|
||||
{
|
||||
"modifiers": ["⌘"],
|
||||
"shortcuts": ["+", "-"],
|
||||
"text": "shortcuts.browsing.navigation.zoom_more",
|
||||
"separator": ","
|
||||
},
|
||||
{
|
||||
"section": "display_options",
|
||||
"text": "shortcuts.browsing.display_options.title"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["background.key"],
|
||||
"text": "shortcuts.browsing.display_options.background"
|
||||
},
|
||||
{
|
||||
"modifiers": ["⌘"],
|
||||
"shortcuts": ["background.key"],
|
||||
"text": "shortcuts.browsing.display_options.background_switch"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["map_data.key"],
|
||||
"text": "shortcuts.browsing.display_options.map_data"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["issues.key"],
|
||||
"text": "shortcuts.browsing.display_options.issues"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["preferences.key"],
|
||||
"text": "shortcuts.browsing.display_options.preferences"
|
||||
},
|
||||
{
|
||||
"modifiers": ["⌃", "⌘"],
|
||||
"shortcuts": ["F", "F11"],
|
||||
"text": "shortcuts.browsing.display_options.fullscreen"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["sidebar.key", "`", "²"],
|
||||
"text": "shortcuts.browsing.display_options.sidebar"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["area_fill.wireframe.key"],
|
||||
"text": "shortcuts.browsing.display_options.wireframe"
|
||||
},
|
||||
{
|
||||
"modifiers": ["⌥"],
|
||||
"shortcuts": ["area_fill.wireframe.key"],
|
||||
"text": "shortcuts.browsing.display_options.osm_data"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["background.minimap.key"],
|
||||
"text": "shortcuts.browsing.display_options.minimap"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["map_data.highlight_edits.key"],
|
||||
"text": "shortcuts.browsing.display_options.highlight_edits"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"rows": [
|
||||
{
|
||||
"section": "help",
|
||||
"text": "shortcuts.browsing.help.title"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["help.key"],
|
||||
"text": "shortcuts.browsing.help.help"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["shortcuts.toggle.key", "?"],
|
||||
"text": "shortcuts.browsing.help.keyboard"
|
||||
},
|
||||
{
|
||||
"section": "selecting",
|
||||
"text": "shortcuts.browsing.selecting.title"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["Left-click"],
|
||||
"text": "shortcuts.browsing.selecting.select_one"
|
||||
},
|
||||
{
|
||||
"modifiers": ["⇧"],
|
||||
"shortcuts": ["Left-click"],
|
||||
"text": "shortcuts.browsing.selecting.select_multi"
|
||||
},
|
||||
{
|
||||
"modifiers": ["⇧"],
|
||||
"shortcuts": ["Left-click"],
|
||||
"gesture": "shortcuts.gesture.drag",
|
||||
"text": "shortcuts.browsing.selecting.lasso"
|
||||
},
|
||||
{
|
||||
"modifiers": ["⌘"],
|
||||
"shortcuts": ["F"],
|
||||
"text": "shortcuts.browsing.selecting.search"
|
||||
},
|
||||
{
|
||||
"section": "with_selected",
|
||||
"text": "shortcuts.browsing.with_selected.title"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["Right-click", "shortcuts.key.space"],
|
||||
"text": "shortcuts.browsing.with_selected.edit_menu"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["inspector.zoom_to.key"],
|
||||
"text": "shortcuts.browsing.with_selected.zoom_to"
|
||||
},
|
||||
{
|
||||
"section": "vertex_selected",
|
||||
"text": "shortcuts.browsing.vertex_selected.title"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["[", "↖"],
|
||||
"text": "shortcuts.browsing.vertex_selected.previous"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["]", "↘"],
|
||||
"text": "shortcuts.browsing.vertex_selected.next"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["{", "⇞"],
|
||||
"text": "shortcuts.browsing.vertex_selected.first"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["}", "⇟"],
|
||||
"text": "shortcuts.browsing.vertex_selected.last"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["\\", "shortcuts.key.pause"],
|
||||
"text": "shortcuts.browsing.vertex_selected.change_parent"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tab": "editing",
|
||||
"text": "shortcuts.editing.title",
|
||||
"columns": [
|
||||
{
|
||||
"rows": [
|
||||
{
|
||||
"section": "drawing",
|
||||
"text": "shortcuts.editing.drawing.title"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["1"],
|
||||
"text": "shortcuts.editing.drawing.add_point"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["2"],
|
||||
"text": "shortcuts.editing.drawing.add_line"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["3"],
|
||||
"text": "shortcuts.editing.drawing.add_area"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["modes.add_note.key"],
|
||||
"text": "shortcuts.editing.drawing.add_note"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["Left-click", "shortcuts.key.space"],
|
||||
"text": "shortcuts.editing.drawing.place_point"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["⌥"],
|
||||
"text": "shortcuts.editing.drawing.disable_snap"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["↵", "⎋"],
|
||||
"text": "shortcuts.editing.drawing.stop_line"
|
||||
},
|
||||
{
|
||||
"section": "commands",
|
||||
"text": "shortcuts.editing.commands.title"
|
||||
},
|
||||
{
|
||||
"modifiers": ["⌘"],
|
||||
"shortcuts": ["C"],
|
||||
"text": "shortcuts.editing.commands.copy"
|
||||
},
|
||||
{
|
||||
"modifiers": ["⌘"],
|
||||
"shortcuts": ["V"],
|
||||
"text": "shortcuts.editing.commands.paste"
|
||||
},
|
||||
{
|
||||
"modifiers": ["⌘"],
|
||||
"shortcuts": ["Z"],
|
||||
"text": "shortcuts.editing.commands.undo"
|
||||
},
|
||||
{
|
||||
"modifiers": ["⌘", "⇧"],
|
||||
"shortcuts": ["Z"],
|
||||
"text": "shortcuts.editing.commands.redo"
|
||||
},
|
||||
{
|
||||
"modifiers": ["⌘"],
|
||||
"shortcuts": ["S"],
|
||||
"text": "shortcuts.editing.commands.save"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"rows": [
|
||||
{
|
||||
"section": "operations",
|
||||
"text": "shortcuts.editing.operations.title"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["operations.continue.key"],
|
||||
"text": "shortcuts.editing.operations.continue_line"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["operations.merge.key"],
|
||||
"text": "shortcuts.editing.operations.merge"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["operations.disconnect.key"],
|
||||
"text": "shortcuts.editing.operations.disconnect"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["operations.extract.key"],
|
||||
"text": "shortcuts.editing.operations.extract"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["operations.split.key"],
|
||||
"text": "shortcuts.editing.operations.split"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["operations.reverse.key"],
|
||||
"text": "shortcuts.editing.operations.reverse"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["operations.move.key"],
|
||||
"text": "shortcuts.editing.operations.move"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["operations.rotate.key"],
|
||||
"text": "shortcuts.editing.operations.rotate"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["operations.orthogonalize.key"],
|
||||
"text": "shortcuts.editing.operations.orthogonalize"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["operations.straighten.key"],
|
||||
"text": "shortcuts.editing.operations.straighten"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["operations.circularize.key"],
|
||||
"text": "shortcuts.editing.operations.circularize"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["operations.reflect.key.long"],
|
||||
"text": "shortcuts.editing.operations.reflect_long"
|
||||
},
|
||||
{
|
||||
"shortcuts": ["operations.reflect.key.short"],
|
||||
"text": "shortcuts.editing.operations.reflect_short"
|
||||
},
|
||||
{
|
||||
"modifiers": ["⌘"],
|
||||
"shortcuts": ["⌫"],
|
||||
"text": "shortcuts.editing.operations.delete"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tab": "tools",
|
||||
"text": "shortcuts.tools.title",
|
||||
"columns": [
|
||||
{
|
||||
"rows": [
|
||||
{
|
||||
"section": "info",
|
||||
"text": "shortcuts.tools.info.title"
|
||||
},
|
||||
{
|
||||
"modifiers": ["⌘"],
|
||||
"shortcuts": ["info_panels.key"],
|
||||
"text": "shortcuts.tools.info.all"
|
||||
},
|
||||
{
|
||||
"modifiers": ["⌘", "⇧"],
|
||||
"shortcuts": ["info_panels.background.key"],
|
||||
"text": "shortcuts.tools.info.background"
|
||||
},
|
||||
{
|
||||
"modifiers": ["⌘", "⇧"],
|
||||
"shortcuts": ["info_panels.history.key"],
|
||||
"text": "shortcuts.tools.info.history"
|
||||
},
|
||||
{
|
||||
"modifiers": ["⌘", "⇧"],
|
||||
"shortcuts": ["info_panels.location.key"],
|
||||
"text": "shortcuts.tools.info.location"
|
||||
},
|
||||
{
|
||||
"modifiers": ["⌘", "⇧"],
|
||||
"shortcuts": ["info_panels.measurement.key"],
|
||||
"text": "shortcuts.tools.info.measurement"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
|
||||
@@ -1,260 +0,0 @@
|
||||
{
|
||||
"dataTerritoryLanguages": {
|
||||
"ac": ["en"],
|
||||
"ad": ["ca", "es", "fr"],
|
||||
"ae": ["ar", "en", "ml", "ps", "bal", "fa"],
|
||||
"af": ["fa", "ps", "haz", "uz-Arab", "tk", "prd", "bal", "bgn", "ug", "kk-Arab"],
|
||||
"ag": ["en", "pt"],
|
||||
"ai": ["en"],
|
||||
"al": ["sq", "el", "mk"],
|
||||
"am": ["hy", "ku", "az"],
|
||||
"ao": ["pt", "umb", "kmb", "ln"],
|
||||
"aq": ["und"],
|
||||
"ar": ["es", "en", "cy", "gn"],
|
||||
"as": ["sm", "en"],
|
||||
"at": ["de", "bar", "en", "fr", "it", "hr", "sl", "hu"],
|
||||
"au": ["en", "zh-Hant", "it", "wbp"],
|
||||
"aw": ["nl", "pap", "en"],
|
||||
"ax": ["sv"],
|
||||
"az": ["az", "az-Cyrl", "tly", "ku", "ttt", "tkr"],
|
||||
"ba": ["bs", "bs-Cyrl", "en", "hr", "sr", "sr-Latn"],
|
||||
"bb": ["en"],
|
||||
"bd": ["bn", "en", "rkt", "syl", "ccp", "my", "grt", "mro", "mni"],
|
||||
"be": ["en", "nl", "fr", "de", "vls", "wa"],
|
||||
"bf": ["mos", "dyu", "fr", "ff", "ff-Adlm"],
|
||||
"bg": ["bg", "en", "ru", "tr", "de"],
|
||||
"bh": ["ar", "ml"],
|
||||
"bi": ["rn", "fr", "sw", "en"],
|
||||
"bj": ["fr", "fon", "yo"],
|
||||
"bl": ["fr"],
|
||||
"bm": ["en"],
|
||||
"bn": ["ms", "zh-Hant", "ms-Arab", "en"],
|
||||
"bo": ["es", "qu", "ay", "gn", "aro"],
|
||||
"bq": ["pap", "nl"],
|
||||
"br": ["pt", "en", "de", "it", "ja", "es", "ko", "kgp", "gub", "yrl", "xav"],
|
||||
"bs": ["en"],
|
||||
"bt": ["dz", "ne", "tsj", "en", "lep"],
|
||||
"bv": ["und"],
|
||||
"bw": ["en", "tn", "af"],
|
||||
"by": ["be", "ru"],
|
||||
"bz": ["en", "es"],
|
||||
"ca": ["en", "fr", "it", "de", "pdt", "cr", "crk", "yi", "iu", "iu-Latn", "moe", "crj", "atj", "crl", "csw", "crm", "ikt", "moh", "dgr", "den", "scs", "nsk", "chp", "gwi"],
|
||||
"cc": ["ms-Arab", "en"],
|
||||
"cd": ["sw", "lua", "fr", "ln", "lu", "kg", "lol", "rw"],
|
||||
"cf": ["fr", "sg", "ln"],
|
||||
"cg": ["fr", "ln"],
|
||||
"ch": ["de", "gsw", "en", "fr", "it", "lmo", "pt", "rm", "rmo", "wae"],
|
||||
"ci": ["fr", "bci", "sef", "dnj", "kfo", "bqv"],
|
||||
"ck": ["en"],
|
||||
"cl": ["es", "en", "arn"],
|
||||
"cm": ["fr", "en", "bum", "ff", "ewo", "ybb", "bbj", "nnh", "bkm", "bas", "bax", "byv", "mua", "maf", "bfd", "bss", "kkj", "dua", "mgo", "ar", "jgo", "ksf", "agq", "ha-Arab", "nmg", "yav", "ff-Adlm"],
|
||||
"cn": ["zh", "wuu", "yue-Hans", "hsn", "hak", "nan", "gan", "ii", "ug", "za", "mn-Mong", "bo", "ko", "kk-Arab", "lis", "ky-Arab", "nxq", "khb", "tdd", "lcp", "en", "ru", "vi", "uz-Cyrl", "lzh"],
|
||||
"co": ["es", "guc"],
|
||||
"cp": ["und"],
|
||||
"cr": ["es"],
|
||||
"cu": ["es"],
|
||||
"cv": ["kea", "pt"],
|
||||
"cw": ["pap", "nl", "es"],
|
||||
"cx": ["en"],
|
||||
"cy": ["el", "en", "tr", "fr", "hy", "ar"],
|
||||
"cz": ["cs", "en", "sk", "de", "pl"],
|
||||
"de": ["de", "en", "fr", "bar", "nds", "nl", "it", "es", "ru", "vmf", "tr", "gsw", "da", "swg", "hr", "ku", "el", "ksh", "pl", "hsb", "frr", "dsb", "frs", "stq", "pfl"],
|
||||
"dg": ["en"],
|
||||
"dj": ["aa", "so", "ar", "fr"],
|
||||
"dk": ["da", "en", "de", "sv", "fo", "kl", "jut"],
|
||||
"dm": ["en"],
|
||||
"do": ["es", "en"],
|
||||
"dz": ["arq", "ar", "fr", "kab", "en"],
|
||||
"ea": ["es"],
|
||||
"ec": ["es", "qu", "qug"],
|
||||
"ee": ["et", "ru", "en", "fi", "vro"],
|
||||
"eg": ["ar", "arz", "en", "el"],
|
||||
"eh": ["ar"],
|
||||
"er": ["ti", "en", "tig", "ar", "aa", "ssy", "byn"],
|
||||
"es": ["es", "en", "ca", "gl", "eu", "ast", "ext", "an"],
|
||||
"et": ["en", "am", "om", "so", "ti", "sid", "wal", "aa"],
|
||||
"fi": ["fi", "en", "sv", "de", "ru", "et", "rmf", "se", "smn", "sms"],
|
||||
"fj": ["en", "hi", "hif", "fj", "rtm"],
|
||||
"fk": ["en"],
|
||||
"fm": ["en", "chk", "pon", "kos", "yap", "uli"],
|
||||
"fo": ["fo"],
|
||||
"fr": ["fr", "en", "es", "de", "oc", "it", "pt", "pcd", "gsw", "br", "co", "ca", "eu", "nl", "frp", "ia"],
|
||||
"ga": ["fr", "puu"],
|
||||
"gb": ["en", "fr", "de", "sco", "pa", "cy", "bn", "zh-Hant", "syl", "el", "it", "ks", "gd", "yi", "ml", "ga", "kw"],
|
||||
"gd": ["en"],
|
||||
"ge": ["ka", "xmf", "ru", "hy", "ab", "os", "ku"],
|
||||
"gf": ["fr", "gcr", "zh-Hant"],
|
||||
"gg": ["en"],
|
||||
"gh": ["ak", "en", "ee", "abr", "gur", "ada", "gaa", "nzi", "ha", "saf", "ff", "ff-Adlm"],
|
||||
"gi": ["en", "es"],
|
||||
"gl": ["kl", "da"],
|
||||
"gm": ["en", "man", "ff", "ff-Adlm"],
|
||||
"gn": ["fr", "ff", "man-Nkoo", "sus", "nqo", "kpe", "ff-Adlm"],
|
||||
"gp": ["fr"],
|
||||
"gq": ["es", "fan", "fr", "bvb", "pt"],
|
||||
"gr": ["el", "en", "fr", "de", "pnt", "mk", "tr", "bg", "sq", "tsd"],
|
||||
"gs": ["und"],
|
||||
"gt": ["es", "quc"],
|
||||
"gu": ["en", "ch"],
|
||||
"gw": ["pt", "knf", "ff", "ff-Adlm"],
|
||||
"gy": ["en"],
|
||||
"hk": ["zh-Hant", "yue", "en", "zh"],
|
||||
"hm": ["und"],
|
||||
"hn": ["es", "en"],
|
||||
"hr": ["hr", "en", "it"],
|
||||
"ht": ["ht", "fr"],
|
||||
"hu": ["hu", "en", "de", "fr", "ro", "hr", "sk", "sl"],
|
||||
"ic": ["es"],
|
||||
"id": ["id", "jv", "su", "mad", "ms-Arab", "min", "bew", "ban", "bug", "bjn", "ace", "sas", "bbc", "zh-Hant", "mak", "ljp", "rej", "gor", "nij", "kge", "aoz", "kvr", "lbw", "gay", "rob", "mdr", "sxn", "sly", "mwv"],
|
||||
"ie": ["en", "ga", "fr"],
|
||||
"il": ["he", "en", "ar", "ru", "ro", "yi", "pl", "lad", "hu", "am", "ti", "ml"],
|
||||
"im": ["en", "gv"],
|
||||
"in": ["hi", "en", "bn", "te", "mr", "ta", "ur", "gu", "kn", "ml", "or", "pa", "bho", "awa", "as", "bgc", "mag", "mai", "mwr", "hne", "dcc", "bjj", "ne", "sat", "wtm", "rkt", "ks", "kok", "gom", "swv", "gbm", "lmn", "sd", "gon", "kfy", "doi", "kru", "sck", "wbq", "xnr", "khn", "tcy", "wbr", "brx", "noe", "bhb", "mni", "raj", "hoc", "mtr", "unr", "bhi", "hoj", "kha", "kfr", "grt", "unx", "bfy", "srx", "saz", "ccp", "sd-Deva", "bfq", "njo", "ria", "bo", "bpy", "bft", "bra", "lep", "btv", "lif", "lah", "sa", "kht", "dv", "dz"],
|
||||
"io": ["en"],
|
||||
"iq": ["ar", "en", "ckb", "az-Arab", "fa", "lrc", "syr"],
|
||||
"ir": ["fa", "az-Arab", "mzn", "glk", "ckb", "sdh", "tk", "lrc", "ar", "bal", "rmt", "bqi", "luz", "lki", "bgn", "prd", "hy", "ps", "ka", "gbz", "kk-Arab"],
|
||||
"is": ["is", "da"],
|
||||
"it": ["it", "en", "fr", "sc", "de", "vec", "nap", "lij", "scn", "sdc", "sl", "fur", "egl", "ca", "el", "lmo", "pms", "hr", "rgn"],
|
||||
"je": ["en"],
|
||||
"jm": ["en", "jam"],
|
||||
"jo": ["ar", "en"],
|
||||
"jp": ["ja", "ryu", "ko"],
|
||||
"ke": ["sw", "en", "ki", "luy", "luo", "kam", "kln", "guz", "mer", "mas", "ebu", "so", "dav", "teo", "pko", "om", "saq", "ar", "pa", "gu"],
|
||||
"kg": ["ky", "ru"],
|
||||
"kh": ["km", "cja", "kdt"],
|
||||
"ki": ["en", "gil"],
|
||||
"km": ["ar", "fr", "zdj", "wni"],
|
||||
"kn": ["en"],
|
||||
"kp": ["ko"],
|
||||
"kr": ["ko"],
|
||||
"kw": ["ar"],
|
||||
"ky": ["en"],
|
||||
"kz": ["ru", "kk", "en", "de", "ug-Cyrl"],
|
||||
"la": ["lo", "kjg", "kdt"],
|
||||
"lb": ["ar", "en", "hy", "ku-Arab", "fr"],
|
||||
"lc": ["en"],
|
||||
"li": ["de", "gsw", "wae"],
|
||||
"lk": ["si", "ta", "en"],
|
||||
"lr": ["en", "kpe", "vai", "men", "ff", "ff-Adlm", "vai-Latn"],
|
||||
"ls": ["st", "en", "zu", "ss", "xh"],
|
||||
"lt": ["lt", "ru", "en", "de", "sgs"],
|
||||
"lu": ["fr", "lb", "de", "en", "pt"],
|
||||
"lv": ["lv", "en", "ru", "ltg"],
|
||||
"ly": ["ar"],
|
||||
"ma": ["ary", "ar", "zgh", "fr", "en", "tzm", "shi", "shi-Latn", "rif", "rif-Latn", "es"],
|
||||
"mc": ["fr"],
|
||||
"md": ["ro", "uk", "bg", "gag", "ru"],
|
||||
"me": ["sr-Latn", "sq", "sr"],
|
||||
"mf": ["fr"],
|
||||
"mg": ["mg", "fr", "en"],
|
||||
"mh": ["en", "mh"],
|
||||
"mk": ["mk", "sq", "tr"],
|
||||
"ml": ["bm", "fr", "ffm", "snk", "mwk", "ses", "tmh", "bm-Nkoo", "khq", "dtm", "kao", "ar", "bmq", "bze"],
|
||||
"mm": ["my", "shn", "kac", "mnw", "kht"],
|
||||
"mn": ["mn", "kk-Arab", "zh", "ru", "ug-Cyrl"],
|
||||
"mo": ["zh-Hant", "pt", "zh", "en"],
|
||||
"mp": ["en", "ch"],
|
||||
"mq": ["fr"],
|
||||
"mr": ["ar", "fr", "ff", "wo", "ff-Adlm"],
|
||||
"ms": ["en"],
|
||||
"mt": ["mt", "en", "it", "fr"],
|
||||
"mu": ["mfe", "en", "bho", "ur", "fr", "ta"],
|
||||
"mv": ["dv"],
|
||||
"mw": ["en", "ny", "tum", "tog", "zu"],
|
||||
"mx": ["es", "en", "yua", "nhe", "nhw", "maz", "nch", "sei"],
|
||||
"my": ["ms", "en", "zh-Hant", "ta", "iba", "jv", "zmi", "dtp", "ml", "bug", "bjn"],
|
||||
"mz": ["pt", "vmw", "ndc", "ts", "ngl", "seh", "mgh", "rng", "ny", "yao", "sw", "zu"],
|
||||
"na": ["af", "kj", "ng", "naq", "hz", "en", "de", "tn"],
|
||||
"nc": ["fr"],
|
||||
"ne": ["ha", "fr", "dje", "fuq", "tmh", "ar", "twq", "ff", "ff-Adlm"],
|
||||
"nf": ["en"],
|
||||
"ng": ["en", "pcm", "ha", "ig", "yo", "fuv", "tiv", "efi", "ibb", "ha-Arab", "bin", "kaj", "kcg", "ar", "cch", "amo", "ff", "ff-Adlm"],
|
||||
"ni": ["es"],
|
||||
"nl": ["nl", "en", "de", "fr", "nds", "li", "fy", "gos", "id", "zea", "rif-Latn", "tr"],
|
||||
"no": ["nb", "nn", "se"],
|
||||
"np": ["ne", "mai", "bho", "new", "jml", "en", "dty", "awa", "thl", "bap", "tdg", "thr", "lif", "mgp", "thq", "mrd", "bfy", "xsr", "rjs", "taj", "hi", "gvr", "bo", "tkt", "tdh", "bn", "unr-Deva", "lep"],
|
||||
"nr": ["en", "na"],
|
||||
"nu": ["en", "niu"],
|
||||
"nz": ["en", "mi"],
|
||||
"om": ["ar", "bal", "fa"],
|
||||
"pa": ["es", "en", "zh-Hant"],
|
||||
"pe": ["es", "qu", "ay"],
|
||||
"pf": ["fr", "ty", "zh-Hant"],
|
||||
"pg": ["tpi", "en", "ho"],
|
||||
"ph": ["en", "fil", "es", "ceb", "ilo", "hil", "bik", "war", "bhk", "pam", "pag", "mdh", "tsg", "zh-Hant", "cps", "krj", "bto", "hnn", "tbw", "bku"],
|
||||
"pk": ["ur", "pa-Arab", "en", "lah", "ps", "sd", "skr", "bal", "brh", "hno", "fa", "bgn", "hnd", "tg-Arab", "gju", "bft", "kvx", "khw", "mvy", "gjk", "kxp", "ks", "btv"],
|
||||
"pl": ["pl", "en", "de", "ru", "szl", "be", "uk", "csb", "sli", "lt"],
|
||||
"pm": ["fr", "en"],
|
||||
"pn": ["en"],
|
||||
"pr": ["es", "en"],
|
||||
"ps": ["ar"],
|
||||
"pt": ["pt", "en", "fr", "es", "gl"],
|
||||
"pw": ["pau", "en"],
|
||||
"py": ["gn", "es", "de"],
|
||||
"qa": ["ar", "fa", "ml"],
|
||||
"re": ["fr", "rcf", "ta"],
|
||||
"ro": ["ro", "en", "fr", "es", "hu", "de", "tr", "sr-Latn", "bg", "el", "pl"],
|
||||
"rs": ["sr", "sr-Latn", "sq", "hu", "ro", "hr", "sk", "uk"],
|
||||
"ru": ["ru", "tt", "ba", "cv", "hy", "ce", "av", "udm", "chm", "os", "sah", "kbd", "myv", "dar", "bua", "mdf", "kum", "kv", "lez", "krc", "inh", "tyv", "az-Cyrl", "ady", "krl", "lbe", "koi", "mrj", "alt", "fi", "sr-Latn", "vep", "mn", "izh", "cu", "vot"],
|
||||
"rw": ["rw", "en", "fr"],
|
||||
"sa": ["ar", "ars"],
|
||||
"sb": ["en", "rug"],
|
||||
"sc": ["crs", "fr", "en"],
|
||||
"sd": ["ar", "en", "bej", "fvr", "ha-Arab", "mls", "fia", "zag"],
|
||||
"se": ["sv", "en", "fi", "fit", "se", "rmu", "yi", "smj", "sma", "ia"],
|
||||
"sg": ["en", "zh", "ms", "ta", "ml", "pa"],
|
||||
"sh": ["en"],
|
||||
"si": ["sl", "hr", "en", "de", "hu", "it"],
|
||||
"sj": ["nb", "ru"],
|
||||
"sk": ["sk", "cs", "en", "de", "hu", "uk", "pl"],
|
||||
"sl": ["kri", "en", "men", "tem", "ff", "ff-Adlm"],
|
||||
"sm": ["it", "eo"],
|
||||
"sn": ["wo", "fr", "ff", "srr", "dyo", "sav", "mfv", "bjt", "snf", "knf", "bsc", "mey", "tnr", "ff-Adlm"],
|
||||
"so": ["so", "ar", "sw", "om"],
|
||||
"sr": ["nl", "srn", "zh-Hant"],
|
||||
"ss": ["ar", "en", "nus"],
|
||||
"st": ["pt"],
|
||||
"sv": ["es"],
|
||||
"sx": ["en", "es", "vic", "nl"],
|
||||
"sy": ["ar", "ku", "fr", "hy", "syr"],
|
||||
"sz": ["en", "ss", "zu", "ts"],
|
||||
"ta": ["en"],
|
||||
"tc": ["en"],
|
||||
"td": ["fr", "ar"],
|
||||
"tf": ["fr"],
|
||||
"tg": ["fr", "ee", "ife"],
|
||||
"th": ["th", "en", "tts", "nod", "sou", "mfa", "zh-Hant", "kxm", "kdt", "mnw", "shn", "lcp", "lwl"],
|
||||
"tj": ["tg", "ru", "fa", "ar"],
|
||||
"tk": ["en", "tkl"],
|
||||
"tl": ["pt", "tet"],
|
||||
"tm": ["tk", "ru", "uz", "ku"],
|
||||
"tn": ["aeb", "ar", "fr"],
|
||||
"to": ["to", "en"],
|
||||
"tr": ["tr", "en", "ku", "zza", "kbd", "az", "az-Arab", "ar", "bgx", "bg", "ady", "kiu", "hy", "ka", "lzz", "sr-Latn", "sq", "ab", "el", "tru", "uz", "ky-Latn", "kk"],
|
||||
"tt": ["en", "es"],
|
||||
"tv": ["tvl", "en"],
|
||||
"tw": ["zh-Hant", "trv"],
|
||||
"tz": ["sw", "en", "suk", "nym", "kde", "bez", "ksb", "mas", "mgy", "asa", "lag", "jmc", "rof", "vun", "rwk", "sbp"],
|
||||
"ua": ["uk", "ru", "pl", "yi", "rue", "be", "crh", "ro", "bg", "tr", "hu", "el"],
|
||||
"ug": ["sw", "lg", "nyn", "cgg", "xog", "en", "teo", "laj", "ach", "myx", "rw", "ttj", "hi"],
|
||||
"um": ["en"],
|
||||
"us": ["en", "es", "zh-Hant", "fr", "de", "fil", "it", "vi", "ko", "ru", "nv", "yi", "pdc", "haw", "frc", "chr", "esu", "dak", "cho", "lkt", "ik", "mus", "cic", "osa"],
|
||||
"uy": ["es"],
|
||||
"uz": ["uz", "uz-Cyrl", "ru", "kaa", "tr"],
|
||||
"va": ["it", "la"],
|
||||
"vc": ["en"],
|
||||
"ve": ["es"],
|
||||
"vg": ["en"],
|
||||
"vi": ["en"],
|
||||
"vn": ["vi", "zh-Hant", "cjm"],
|
||||
"vu": ["bi", "en", "fr"],
|
||||
"wf": ["wls", "fr", "fud"],
|
||||
"ws": ["sm", "en"],
|
||||
"xk": ["sq", "aln", "sr", "sr-Latn"],
|
||||
"ye": ["ar", "en"],
|
||||
"yt": ["swb", "fr", "buc", "sw"],
|
||||
"za": ["en", "zu", "xh", "af", "nso", "tn", "st", "ts", "ss", "ve", "hi", "nr", "sw"],
|
||||
"zm": ["bem", "en", "ny", "loz"],
|
||||
"zw": ["sn", "en", "nd", "mxc", "ndc", "kck", "ny", "ve", "tn"]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,258 @@
|
||||
{
|
||||
"ac": ["en"],
|
||||
"ad": ["ca", "es", "fr"],
|
||||
"ae": ["ar", "en", "ml", "ps", "bal", "fa"],
|
||||
"af": ["fa", "ps", "haz", "uz-Arab", "tk", "prd", "bal", "bgn", "ug", "kk-Arab"],
|
||||
"ag": ["en", "pt"],
|
||||
"ai": ["en"],
|
||||
"al": ["sq", "el", "mk"],
|
||||
"am": ["hy", "ku", "az"],
|
||||
"ao": ["pt", "umb", "kmb", "ln"],
|
||||
"aq": ["und"],
|
||||
"ar": ["es", "en", "cy", "gn"],
|
||||
"as": ["sm", "en"],
|
||||
"at": ["de", "bar", "en", "fr", "it", "hr", "sl", "hu"],
|
||||
"au": ["en", "zh-Hant", "it", "wbp"],
|
||||
"aw": ["nl", "pap", "en"],
|
||||
"ax": ["sv"],
|
||||
"az": ["az", "az-Cyrl", "tly", "ku", "ttt", "tkr"],
|
||||
"ba": ["bs", "bs-Cyrl", "en", "hr", "sr", "sr-Latn"],
|
||||
"bb": ["en"],
|
||||
"bd": ["bn", "en", "rkt", "syl", "ccp", "my", "grt", "mro", "mni"],
|
||||
"be": ["en", "nl", "fr", "de", "vls", "wa"],
|
||||
"bf": ["mos", "dyu", "fr", "ff", "ff-Adlm"],
|
||||
"bg": ["bg", "en", "ru", "tr", "de"],
|
||||
"bh": ["ar", "ml"],
|
||||
"bi": ["rn", "fr", "sw", "en"],
|
||||
"bj": ["fr", "fon", "yo"],
|
||||
"bl": ["fr"],
|
||||
"bm": ["en"],
|
||||
"bn": ["ms", "zh-Hant", "ms-Arab", "en"],
|
||||
"bo": ["es", "qu", "ay", "gn", "aro"],
|
||||
"bq": ["pap", "nl"],
|
||||
"br": ["pt", "en", "de", "it", "ja", "es", "ko", "kgp", "gub", "yrl", "xav"],
|
||||
"bs": ["en"],
|
||||
"bt": ["dz", "ne", "tsj", "en", "lep"],
|
||||
"bv": ["und"],
|
||||
"bw": ["en", "tn", "af"],
|
||||
"by": ["be", "ru"],
|
||||
"bz": ["en", "es"],
|
||||
"ca": ["en", "fr", "it", "de", "pdt", "cr", "crk", "yi", "iu", "iu-Latn", "moe", "crj", "atj", "crl", "csw", "crm", "ikt", "moh", "dgr", "den", "scs", "nsk", "chp", "gwi"],
|
||||
"cc": ["ms-Arab", "en"],
|
||||
"cd": ["sw", "lua", "fr", "ln", "lu", "kg", "lol", "rw"],
|
||||
"cf": ["fr", "sg", "ln"],
|
||||
"cg": ["fr", "ln"],
|
||||
"ch": ["de", "gsw", "en", "fr", "it", "lmo", "pt", "rm", "rmo", "wae"],
|
||||
"ci": ["fr", "bci", "sef", "dnj", "kfo", "bqv"],
|
||||
"ck": ["en"],
|
||||
"cl": ["es", "en", "arn"],
|
||||
"cm": ["fr", "en", "bum", "ff", "ewo", "ybb", "bbj", "nnh", "bkm", "bas", "bax", "byv", "mua", "maf", "bfd", "bss", "kkj", "dua", "mgo", "ar", "jgo", "ksf", "agq", "ha-Arab", "nmg", "yav", "ff-Adlm"],
|
||||
"cn": ["zh", "wuu", "yue-Hans", "hsn", "hak", "nan", "gan", "ii", "ug", "za", "mn-Mong", "bo", "ko", "kk-Arab", "lis", "ky-Arab", "nxq", "khb", "tdd", "lcp", "en", "ru", "vi", "uz-Cyrl", "lzh"],
|
||||
"co": ["es", "guc"],
|
||||
"cp": ["und"],
|
||||
"cr": ["es"],
|
||||
"cu": ["es"],
|
||||
"cv": ["kea", "pt"],
|
||||
"cw": ["pap", "nl", "es"],
|
||||
"cx": ["en"],
|
||||
"cy": ["el", "en", "tr", "fr", "hy", "ar"],
|
||||
"cz": ["cs", "en", "sk", "de", "pl"],
|
||||
"de": ["de", "en", "fr", "bar", "nds", "nl", "it", "es", "ru", "vmf", "tr", "gsw", "da", "swg", "hr", "ku", "el", "ksh", "pl", "hsb", "frr", "dsb", "frs", "stq", "pfl"],
|
||||
"dg": ["en"],
|
||||
"dj": ["aa", "so", "ar", "fr"],
|
||||
"dk": ["da", "en", "de", "sv", "fo", "kl", "jut"],
|
||||
"dm": ["en"],
|
||||
"do": ["es", "en"],
|
||||
"dz": ["arq", "ar", "fr", "kab", "en"],
|
||||
"ea": ["es"],
|
||||
"ec": ["es", "qu", "qug"],
|
||||
"ee": ["et", "ru", "en", "fi", "vro"],
|
||||
"eg": ["ar", "arz", "en", "el"],
|
||||
"eh": ["ar"],
|
||||
"er": ["ti", "en", "tig", "ar", "aa", "ssy", "byn"],
|
||||
"es": ["es", "en", "ca", "gl", "eu", "ast", "ext", "an"],
|
||||
"et": ["en", "am", "om", "so", "ti", "sid", "wal", "aa"],
|
||||
"fi": ["fi", "en", "sv", "de", "ru", "et", "rmf", "se", "smn", "sms"],
|
||||
"fj": ["en", "hi", "hif", "fj", "rtm"],
|
||||
"fk": ["en"],
|
||||
"fm": ["en", "chk", "pon", "kos", "yap", "uli"],
|
||||
"fo": ["fo"],
|
||||
"fr": ["fr", "en", "es", "de", "oc", "it", "pt", "pcd", "gsw", "br", "co", "ca", "eu", "nl", "frp", "ia"],
|
||||
"ga": ["fr", "puu"],
|
||||
"gb": ["en", "fr", "de", "sco", "pa", "cy", "bn", "zh-Hant", "syl", "el", "it", "ks", "gd", "yi", "ml", "ga", "kw"],
|
||||
"gd": ["en"],
|
||||
"ge": ["ka", "xmf", "ru", "hy", "ab", "os", "ku"],
|
||||
"gf": ["fr", "gcr", "zh-Hant"],
|
||||
"gg": ["en"],
|
||||
"gh": ["ak", "en", "ee", "abr", "gur", "ada", "gaa", "nzi", "ha", "saf", "ff", "ff-Adlm"],
|
||||
"gi": ["en", "es"],
|
||||
"gl": ["kl", "da"],
|
||||
"gm": ["en", "man", "ff", "ff-Adlm"],
|
||||
"gn": ["fr", "ff", "man-Nkoo", "sus", "nqo", "kpe", "ff-Adlm"],
|
||||
"gp": ["fr"],
|
||||
"gq": ["es", "fan", "fr", "bvb", "pt"],
|
||||
"gr": ["el", "en", "fr", "de", "pnt", "mk", "tr", "bg", "sq", "tsd"],
|
||||
"gs": ["und"],
|
||||
"gt": ["es", "quc"],
|
||||
"gu": ["en", "ch"],
|
||||
"gw": ["pt", "knf", "ff", "ff-Adlm"],
|
||||
"gy": ["en"],
|
||||
"hk": ["zh-Hant", "yue", "en", "zh"],
|
||||
"hm": ["und"],
|
||||
"hn": ["es", "en"],
|
||||
"hr": ["hr", "en", "it"],
|
||||
"ht": ["ht", "fr"],
|
||||
"hu": ["hu", "en", "de", "fr", "ro", "hr", "sk", "sl"],
|
||||
"ic": ["es"],
|
||||
"id": ["id", "jv", "su", "mad", "ms-Arab", "min", "bew", "ban", "bug", "bjn", "ace", "sas", "bbc", "zh-Hant", "mak", "ljp", "rej", "gor", "nij", "kge", "aoz", "kvr", "lbw", "gay", "rob", "mdr", "sxn", "sly", "mwv"],
|
||||
"ie": ["en", "ga", "fr"],
|
||||
"il": ["he", "en", "ar", "ru", "ro", "yi", "pl", "lad", "hu", "am", "ti", "ml"],
|
||||
"im": ["en", "gv"],
|
||||
"in": ["hi", "en", "bn", "te", "mr", "ta", "ur", "gu", "kn", "ml", "or", "pa", "bho", "awa", "as", "bgc", "mag", "mai", "mwr", "hne", "dcc", "bjj", "ne", "sat", "wtm", "rkt", "ks", "kok", "gom", "swv", "gbm", "lmn", "sd", "gon", "kfy", "doi", "kru", "sck", "wbq", "xnr", "khn", "tcy", "wbr", "brx", "noe", "bhb", "mni", "raj", "hoc", "mtr", "unr", "bhi", "hoj", "kha", "kfr", "grt", "unx", "bfy", "srx", "saz", "ccp", "sd-Deva", "bfq", "njo", "ria", "bo", "bpy", "bft", "bra", "lep", "btv", "lif", "lah", "sa", "kht", "dv", "dz"],
|
||||
"io": ["en"],
|
||||
"iq": ["ar", "en", "ckb", "az-Arab", "fa", "lrc", "syr"],
|
||||
"ir": ["fa", "az-Arab", "mzn", "glk", "ckb", "sdh", "tk", "lrc", "ar", "bal", "rmt", "bqi", "luz", "lki", "bgn", "prd", "hy", "ps", "ka", "gbz", "kk-Arab"],
|
||||
"is": ["is", "da"],
|
||||
"it": ["it", "en", "fr", "sc", "de", "vec", "nap", "lij", "scn", "sdc", "sl", "fur", "egl", "ca", "el", "lmo", "pms", "hr", "rgn"],
|
||||
"je": ["en"],
|
||||
"jm": ["en", "jam"],
|
||||
"jo": ["ar", "en"],
|
||||
"jp": ["ja", "ryu", "ko"],
|
||||
"ke": ["sw", "en", "ki", "luy", "luo", "kam", "kln", "guz", "mer", "mas", "ebu", "so", "dav", "teo", "pko", "om", "saq", "ar", "pa", "gu"],
|
||||
"kg": ["ky", "ru"],
|
||||
"kh": ["km", "cja", "kdt"],
|
||||
"ki": ["en", "gil"],
|
||||
"km": ["ar", "fr", "zdj", "wni"],
|
||||
"kn": ["en"],
|
||||
"kp": ["ko"],
|
||||
"kr": ["ko"],
|
||||
"kw": ["ar"],
|
||||
"ky": ["en"],
|
||||
"kz": ["ru", "kk", "en", "de", "ug-Cyrl"],
|
||||
"la": ["lo", "kjg", "kdt"],
|
||||
"lb": ["ar", "en", "hy", "ku-Arab", "fr"],
|
||||
"lc": ["en"],
|
||||
"li": ["de", "gsw", "wae"],
|
||||
"lk": ["si", "ta", "en"],
|
||||
"lr": ["en", "kpe", "vai", "men", "ff", "ff-Adlm", "vai-Latn"],
|
||||
"ls": ["st", "en", "zu", "ss", "xh"],
|
||||
"lt": ["lt", "ru", "en", "de", "sgs"],
|
||||
"lu": ["fr", "lb", "de", "en", "pt"],
|
||||
"lv": ["lv", "en", "ru", "ltg"],
|
||||
"ly": ["ar"],
|
||||
"ma": ["ary", "ar", "zgh", "fr", "en", "tzm", "shi", "shi-Latn", "rif", "rif-Latn", "es"],
|
||||
"mc": ["fr"],
|
||||
"md": ["ro", "uk", "bg", "gag", "ru"],
|
||||
"me": ["sr-Latn", "sq", "sr"],
|
||||
"mf": ["fr"],
|
||||
"mg": ["mg", "fr", "en"],
|
||||
"mh": ["en", "mh"],
|
||||
"mk": ["mk", "sq", "tr"],
|
||||
"ml": ["bm", "fr", "ffm", "snk", "mwk", "ses", "tmh", "bm-Nkoo", "khq", "dtm", "kao", "ar", "bmq", "bze"],
|
||||
"mm": ["my", "shn", "kac", "mnw", "kht"],
|
||||
"mn": ["mn", "kk-Arab", "zh", "ru", "ug-Cyrl"],
|
||||
"mo": ["zh-Hant", "pt", "zh", "en"],
|
||||
"mp": ["en", "ch"],
|
||||
"mq": ["fr"],
|
||||
"mr": ["ar", "fr", "ff", "wo", "ff-Adlm"],
|
||||
"ms": ["en"],
|
||||
"mt": ["mt", "en", "it", "fr"],
|
||||
"mu": ["mfe", "en", "bho", "ur", "fr", "ta"],
|
||||
"mv": ["dv"],
|
||||
"mw": ["en", "ny", "tum", "tog", "zu"],
|
||||
"mx": ["es", "en", "yua", "nhe", "nhw", "maz", "nch", "sei"],
|
||||
"my": ["ms", "en", "zh-Hant", "ta", "iba", "jv", "zmi", "dtp", "ml", "bug", "bjn"],
|
||||
"mz": ["pt", "vmw", "ndc", "ts", "ngl", "seh", "mgh", "rng", "ny", "yao", "sw", "zu"],
|
||||
"na": ["af", "kj", "ng", "naq", "hz", "en", "de", "tn"],
|
||||
"nc": ["fr"],
|
||||
"ne": ["ha", "fr", "dje", "fuq", "tmh", "ar", "twq", "ff", "ff-Adlm"],
|
||||
"nf": ["en"],
|
||||
"ng": ["en", "pcm", "ha", "ig", "yo", "fuv", "tiv", "efi", "ibb", "ha-Arab", "bin", "kaj", "kcg", "ar", "cch", "amo", "ff", "ff-Adlm"],
|
||||
"ni": ["es"],
|
||||
"nl": ["nl", "en", "de", "fr", "nds", "li", "fy", "gos", "id", "zea", "rif-Latn", "tr"],
|
||||
"no": ["nb", "nn", "se"],
|
||||
"np": ["ne", "mai", "bho", "new", "jml", "en", "dty", "awa", "thl", "bap", "tdg", "thr", "lif", "mgp", "thq", "mrd", "bfy", "xsr", "rjs", "taj", "hi", "gvr", "bo", "tkt", "tdh", "bn", "unr-Deva", "lep"],
|
||||
"nr": ["en", "na"],
|
||||
"nu": ["en", "niu"],
|
||||
"nz": ["en", "mi"],
|
||||
"om": ["ar", "bal", "fa"],
|
||||
"pa": ["es", "en", "zh-Hant"],
|
||||
"pe": ["es", "qu", "ay"],
|
||||
"pf": ["fr", "ty", "zh-Hant"],
|
||||
"pg": ["tpi", "en", "ho"],
|
||||
"ph": ["en", "fil", "es", "ceb", "ilo", "hil", "bik", "war", "bhk", "pam", "pag", "mdh", "tsg", "zh-Hant", "cps", "krj", "bto", "hnn", "tbw", "bku"],
|
||||
"pk": ["ur", "pa-Arab", "en", "lah", "ps", "sd", "skr", "bal", "brh", "hno", "fa", "bgn", "hnd", "tg-Arab", "gju", "bft", "kvx", "khw", "mvy", "gjk", "kxp", "ks", "btv"],
|
||||
"pl": ["pl", "en", "de", "ru", "szl", "be", "uk", "csb", "sli", "lt"],
|
||||
"pm": ["fr", "en"],
|
||||
"pn": ["en"],
|
||||
"pr": ["es", "en"],
|
||||
"ps": ["ar"],
|
||||
"pt": ["pt", "en", "fr", "es", "gl"],
|
||||
"pw": ["pau", "en"],
|
||||
"py": ["gn", "es", "de"],
|
||||
"qa": ["ar", "fa", "ml"],
|
||||
"re": ["fr", "rcf", "ta"],
|
||||
"ro": ["ro", "en", "fr", "es", "hu", "de", "tr", "sr-Latn", "bg", "el", "pl"],
|
||||
"rs": ["sr", "sr-Latn", "sq", "hu", "ro", "hr", "sk", "uk"],
|
||||
"ru": ["ru", "tt", "ba", "cv", "hy", "ce", "av", "udm", "chm", "os", "sah", "kbd", "myv", "dar", "bua", "mdf", "kum", "kv", "lez", "krc", "inh", "tyv", "az-Cyrl", "ady", "krl", "lbe", "koi", "mrj", "alt", "fi", "sr-Latn", "vep", "mn", "izh", "cu", "vot"],
|
||||
"rw": ["rw", "en", "fr"],
|
||||
"sa": ["ar", "ars"],
|
||||
"sb": ["en", "rug"],
|
||||
"sc": ["crs", "fr", "en"],
|
||||
"sd": ["ar", "en", "bej", "fvr", "ha-Arab", "mls", "fia", "zag"],
|
||||
"se": ["sv", "en", "fi", "fit", "se", "rmu", "yi", "smj", "sma", "ia"],
|
||||
"sg": ["en", "zh", "ms", "ta", "ml", "pa"],
|
||||
"sh": ["en"],
|
||||
"si": ["sl", "hr", "en", "de", "hu", "it"],
|
||||
"sj": ["nb", "ru"],
|
||||
"sk": ["sk", "cs", "en", "de", "hu", "uk", "pl"],
|
||||
"sl": ["kri", "en", "men", "tem", "ff", "ff-Adlm"],
|
||||
"sm": ["it", "eo"],
|
||||
"sn": ["wo", "fr", "ff", "srr", "dyo", "sav", "mfv", "bjt", "snf", "knf", "bsc", "mey", "tnr", "ff-Adlm"],
|
||||
"so": ["so", "ar", "sw", "om"],
|
||||
"sr": ["nl", "srn", "zh-Hant"],
|
||||
"ss": ["ar", "en", "nus"],
|
||||
"st": ["pt"],
|
||||
"sv": ["es"],
|
||||
"sx": ["en", "es", "vic", "nl"],
|
||||
"sy": ["ar", "ku", "fr", "hy", "syr"],
|
||||
"sz": ["en", "ss", "zu", "ts"],
|
||||
"ta": ["en"],
|
||||
"tc": ["en"],
|
||||
"td": ["fr", "ar"],
|
||||
"tf": ["fr"],
|
||||
"tg": ["fr", "ee", "ife"],
|
||||
"th": ["th", "en", "tts", "nod", "sou", "mfa", "zh-Hant", "kxm", "kdt", "mnw", "shn", "lcp", "lwl"],
|
||||
"tj": ["tg", "ru", "fa", "ar"],
|
||||
"tk": ["en", "tkl"],
|
||||
"tl": ["pt", "tet"],
|
||||
"tm": ["tk", "ru", "uz", "ku"],
|
||||
"tn": ["aeb", "ar", "fr"],
|
||||
"to": ["to", "en"],
|
||||
"tr": ["tr", "en", "ku", "zza", "kbd", "az", "az-Arab", "ar", "bgx", "bg", "ady", "kiu", "hy", "ka", "lzz", "sr-Latn", "sq", "ab", "el", "tru", "uz", "ky-Latn", "kk"],
|
||||
"tt": ["en", "es"],
|
||||
"tv": ["tvl", "en"],
|
||||
"tw": ["zh-Hant", "trv"],
|
||||
"tz": ["sw", "en", "suk", "nym", "kde", "bez", "ksb", "mas", "mgy", "asa", "lag", "jmc", "rof", "vun", "rwk", "sbp"],
|
||||
"ua": ["uk", "ru", "pl", "yi", "rue", "be", "crh", "ro", "bg", "tr", "hu", "el"],
|
||||
"ug": ["sw", "lg", "nyn", "cgg", "xog", "en", "teo", "laj", "ach", "myx", "rw", "ttj", "hi"],
|
||||
"um": ["en"],
|
||||
"us": ["en", "es", "zh-Hant", "fr", "de", "fil", "it", "vi", "ko", "ru", "nv", "yi", "pdc", "haw", "frc", "chr", "esu", "dak", "cho", "lkt", "ik", "mus", "cic", "osa"],
|
||||
"uy": ["es"],
|
||||
"uz": ["uz", "uz-Cyrl", "ru", "kaa", "tr"],
|
||||
"va": ["it", "la"],
|
||||
"vc": ["en"],
|
||||
"ve": ["es"],
|
||||
"vg": ["en"],
|
||||
"vi": ["en"],
|
||||
"vn": ["vi", "zh-Hant", "cjm"],
|
||||
"vu": ["bi", "en", "fr"],
|
||||
"wf": ["wls", "fr", "fud"],
|
||||
"ws": ["sm", "en"],
|
||||
"xk": ["sq", "aln", "sr", "sr-Latn"],
|
||||
"ye": ["ar", "en"],
|
||||
"yt": ["swb", "fr", "buc", "sw"],
|
||||
"za": ["en", "zu", "xh", "af", "nso", "tn", "st", "ts", "ss", "ve", "hi", "nr", "sw"],
|
||||
"zm": ["bem", "en", "ny", "loz"],
|
||||
"zw": ["sn", "en", "nd", "mxc", "ndc", "kck", "ny", "ve", "tn"]
|
||||
}
|
||||
@@ -1,30 +1,29 @@
|
||||
import { dataDiscarded } from '../../data';
|
||||
|
||||
export function actionDiscardTags(difference) {
|
||||
export function actionDiscardTags(difference, discardTags) {
|
||||
discardTags = discardTags || {};
|
||||
|
||||
return function(graph) {
|
||||
function discardTags(entity) {
|
||||
var tags = {};
|
||||
var keys = Object.keys(entity.tags);
|
||||
var discarded = false;
|
||||
return (graph) => {
|
||||
difference.modified().forEach(checkTags);
|
||||
difference.created().forEach(checkTags);
|
||||
return graph;
|
||||
|
||||
for (var i = 0; i < keys.length; i++) {
|
||||
var k = keys[i];
|
||||
if (dataDiscarded[k] || !entity.tags[k]) {
|
||||
discarded = true;
|
||||
} else {
|
||||
tags[k] = entity.tags[k];
|
||||
}
|
||||
}
|
||||
function checkTags(entity) {
|
||||
const keys = Object.keys(entity.tags);
|
||||
let didDiscard = false;
|
||||
let tags = {};
|
||||
|
||||
if (discarded) {
|
||||
graph = graph.replace(entity.update({ tags: tags }));
|
||||
}
|
||||
for (let i = 0; i < keys.length; i++) {
|
||||
const k = keys[i];
|
||||
if (discardTags[k] || !entity.tags[k]) {
|
||||
didDiscard = true;
|
||||
} else {
|
||||
tags[k] = entity.tags[k];
|
||||
}
|
||||
}
|
||||
if (didDiscard) {
|
||||
graph = graph.replace(entity.update({ tags: tags }));
|
||||
}
|
||||
}
|
||||
|
||||
difference.modified().forEach(discardTags);
|
||||
difference.created().forEach(discardTags);
|
||||
|
||||
return graph;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -4,11 +4,11 @@ import { diff3Merge } from 'node-diff3';
|
||||
import { t } from '../util/locale';
|
||||
import { actionDeleteMultiple } from './delete_multiple';
|
||||
import { osmEntity } from '../osm';
|
||||
import { dataDiscarded } from '../../data';
|
||||
import { utilArrayUnion, utilArrayUniq } from '../util';
|
||||
|
||||
|
||||
export function actionMergeRemoteChanges(id, localGraph, remoteGraph, formatUser) {
|
||||
export function actionMergeRemoteChanges(id, localGraph, remoteGraph, discardTags, formatUser) {
|
||||
discardTags = discardTags || {};
|
||||
var _option = 'safe'; // 'safe', 'force_local', 'force_remote'
|
||||
var _conflicts = [];
|
||||
|
||||
@@ -167,7 +167,7 @@ export function actionMergeRemoteChanges(id, localGraph, remoteGraph, formatUser
|
||||
var a = target.tags || {};
|
||||
var b = remote.tags || {};
|
||||
var keys = utilArrayUnion(utilArrayUnion(Object.keys(o), Object.keys(a)), Object.keys(b))
|
||||
.filter(function(k) { return !dataDiscarded[k]; });
|
||||
.filter(function(k) { return !discardTags[k]; });
|
||||
var tags = Object.assign({}, a); // shallow copy
|
||||
var changed = false;
|
||||
|
||||
|
||||
+10
-1
@@ -9,7 +9,16 @@ export function coreData(context) {
|
||||
let _module = {};
|
||||
let _inflight = {};
|
||||
let _fileMap = {
|
||||
'intro_graph': 'data/intro_graph.json'
|
||||
'address_formats': 'data/address_formats.min.json',
|
||||
'deprecated': 'data/deprecated.min.json',
|
||||
'discarded': 'data/discarded.min.json',
|
||||
'imagery': 'data/imagery.min.json',
|
||||
'intro_graph': 'data/intro_graph.min.json',
|
||||
'languages': 'data/languages.min.json',
|
||||
'locales': 'data/locales.min.json',
|
||||
'phone_formats': 'data/phone_formats.min.json',
|
||||
'shortcuts': 'data/shortcuts.min.json',
|
||||
'territory_languages': 'data/territory_languages.min.json'
|
||||
};
|
||||
|
||||
|
||||
|
||||
+10
-5
@@ -43,6 +43,11 @@ export function modeSave(context) {
|
||||
var _origChanges;
|
||||
var _location;
|
||||
|
||||
var _discardTags = {};
|
||||
context.data().get('discarded')
|
||||
.then(function(d) { _discardTags = d; })
|
||||
.catch(function() { /* ignore */ });
|
||||
|
||||
|
||||
function cancel(selectedID) {
|
||||
if (selectedID) {
|
||||
@@ -92,7 +97,7 @@ export function modeSave(context) {
|
||||
_errors = [];
|
||||
|
||||
// Store original changes, in case user wants to download them as an .osc file
|
||||
_origChanges = history.changes(actionDiscardTags(history.difference()));
|
||||
_origChanges = history.changes(actionDiscardTags(history.difference(), _discardTags));
|
||||
|
||||
// First time, `history.perform` a no-op action.
|
||||
// Any conflict resolutions will be done as `history.replace`
|
||||
@@ -241,15 +246,15 @@ export function modeSave(context) {
|
||||
if (sameVersions(local, remote)) return;
|
||||
|
||||
var action = actionMergeRemoteChanges;
|
||||
var merge = action(id, localGraph, remoteGraph, formatUser);
|
||||
var merge = action(id, localGraph, remoteGraph, _discardTags, formatUser);
|
||||
|
||||
history.replace(merge);
|
||||
|
||||
var mergeConflicts = merge.conflicts();
|
||||
if (!mergeConflicts.length) return; // merged safely
|
||||
|
||||
var forceLocal = action(id, localGraph, remoteGraph).withOption('force_local');
|
||||
var forceRemote = action(id, localGraph, remoteGraph).withOption('force_remote');
|
||||
var forceLocal = action(id, localGraph, remoteGraph, _discardTags).withOption('force_local');
|
||||
var forceRemote = action(id, localGraph, remoteGraph, _discardTags).withOption('force_remote');
|
||||
var keepMine = t('save.conflict.' + (remote.visible ? 'keep_local' : 'restore'));
|
||||
var keepTheirs = t('save.conflict.' + (remote.visible ? 'keep_remote' : 'delete'));
|
||||
|
||||
@@ -285,7 +290,7 @@ export function modeSave(context) {
|
||||
|
||||
} else {
|
||||
var history = context.history();
|
||||
var changes = history.changes(actionDiscardTags(history.difference()));
|
||||
var changes = history.changes(actionDiscardTags(history.difference(), _discardTags));
|
||||
if (changes.modified.length || changes.created.length || changes.deleted.length) {
|
||||
loadLocation(); // so it is ready when we display the save screen
|
||||
osm.putChangeset(changeset, changes, uploadCallback);
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import { debug } from '../index';
|
||||
import { osmIsInterestingTag } from './tags';
|
||||
import { dataDeprecated } from '../../data/index';
|
||||
import { utilArrayUnion } from '../util';
|
||||
|
||||
|
||||
@@ -52,7 +51,7 @@ osmEntity.key = function(entity) {
|
||||
|
||||
var _deprecatedTagValuesByKey;
|
||||
|
||||
osmEntity.deprecatedTagValuesByKey = function() {
|
||||
osmEntity.deprecatedTagValuesByKey = function(dataDeprecated) {
|
||||
if (!_deprecatedTagValuesByKey) {
|
||||
_deprecatedTagValuesByKey = {};
|
||||
dataDeprecated.forEach(function(d) {
|
||||
@@ -187,7 +186,7 @@ osmEntity.prototype = {
|
||||
return true;
|
||||
},
|
||||
|
||||
deprecatedTags: function() {
|
||||
deprecatedTags: function(dataDeprecated) {
|
||||
var tags = this.tags;
|
||||
|
||||
// if there are no tags, none can be deprecated
|
||||
|
||||
@@ -18,6 +18,11 @@ export function uiCommitChanges(context) {
|
||||
var detected = utilDetect();
|
||||
var _entityID;
|
||||
|
||||
var _discardTags = {};
|
||||
context.data().get('discarded')
|
||||
.then(function(d) { _discardTags = d; })
|
||||
.catch(function() { /* ignore */ });
|
||||
|
||||
|
||||
function commitChanges(selection) {
|
||||
var history = context.history();
|
||||
@@ -96,7 +101,7 @@ export function uiCommitChanges(context) {
|
||||
|
||||
// Download changeset link
|
||||
var changeset = new osmChangeset().update({ id: undefined });
|
||||
var changes = history.changes(actionDiscardTags(history.difference()));
|
||||
var changes = history.changes(actionDiscardTags(history.difference(), _discardTags));
|
||||
|
||||
delete changeset.id; // Export without chnageset_id
|
||||
|
||||
@@ -158,9 +163,9 @@ export function uiCommitChanges(context) {
|
||||
}
|
||||
|
||||
|
||||
commitChanges.entityID = function(_) {
|
||||
commitChanges.entityID = function(val) {
|
||||
if (!arguments.length) return _entityID;
|
||||
_entityID = _;
|
||||
_entityID = val;
|
||||
return commitChanges;
|
||||
};
|
||||
|
||||
|
||||
@@ -2,7 +2,6 @@ import { dispatch as d3_dispatch } from 'd3-dispatch';
|
||||
import { select as d3_select } from 'd3-selection';
|
||||
import * as countryCoder from '@ideditor/country-coder';
|
||||
|
||||
import { dataAddressFormats } from '../../../data';
|
||||
import { geoExtent, geoChooseEdge, geoSphericalDistance } from '../../geo';
|
||||
import { uiCombobox } from '../combobox';
|
||||
import { utilArrayUniqBy, utilGetSetValue, utilNoAuto, utilRebind } from '../../util';
|
||||
@@ -12,10 +11,21 @@ import { t } from '../../util/locale';
|
||||
export function uiFieldAddress(field, context) {
|
||||
var dispatch = d3_dispatch('init', 'change');
|
||||
var wrap = d3_select(null);
|
||||
var addrField = context.presets().field('address'); // needed for placeholder strings
|
||||
|
||||
var _isInitialized = false;
|
||||
var _entity;
|
||||
// needed for placeholder strings
|
||||
var addrField = context.presets().field('address');
|
||||
var _addressFormats = [{
|
||||
format: [
|
||||
['housenumber', 'street'],
|
||||
['city', 'postcode']
|
||||
]
|
||||
}];
|
||||
|
||||
context.data().get('address_formats')
|
||||
.then(function(d) { _addressFormats = d; })
|
||||
.catch(function() { /* ignore */ });
|
||||
|
||||
|
||||
function getNearStreets() {
|
||||
var extent = _entity.extent(context.graph());
|
||||
@@ -113,8 +123,8 @@ export function uiFieldAddress(field, context) {
|
||||
countryCode = countryCode.toLowerCase();
|
||||
|
||||
var addressFormat;
|
||||
for (var i = 0; i < dataAddressFormats.length; i++) {
|
||||
var format = dataAddressFormats[i];
|
||||
for (var i = 0; i < _addressFormats.length; i++) {
|
||||
var format = _addressFormats[i];
|
||||
if (!format.countryCodes) {
|
||||
addressFormat = format; // choose the default format, keep going
|
||||
} else if (format.countryCodes.indexOf(countryCode) !== -1) {
|
||||
|
||||
@@ -38,6 +38,13 @@ export function uiFieldCombo(field, context) {
|
||||
var _entity;
|
||||
var _countryCode;
|
||||
|
||||
// initialize deprecated tags array
|
||||
var _dataDeprecated = [];
|
||||
context.data().get('deprecated')
|
||||
.then(function(d) { _dataDeprecated = d; })
|
||||
.catch(function() { /* ignore */ });
|
||||
|
||||
|
||||
// ensure multiCombo field.key ends with a ':'
|
||||
if (isMulti && /[^:]$/.test(field.key)) {
|
||||
field.key += ':';
|
||||
@@ -193,7 +200,7 @@ export function uiFieldCombo(field, context) {
|
||||
return !d.count || d.count > 10;
|
||||
});
|
||||
|
||||
var deprecatedValues = osmEntity.deprecatedTagValuesByKey()[field.key];
|
||||
var deprecatedValues = osmEntity.deprecatedTagValuesByKey(_dataDeprecated)[field.key];
|
||||
if (deprecatedValues) {
|
||||
// don't suggest deprecated tag values
|
||||
data = data.filter(function(d) {
|
||||
|
||||
@@ -3,7 +3,6 @@ import { select as d3_select, event as d3_event } from 'd3-selection';
|
||||
import * as countryCoder from '@ideditor/country-coder';
|
||||
|
||||
import { t, textDirection } from '../../util/locale';
|
||||
import { dataPhoneFormats } from '../../../data';
|
||||
import { utilGetSetValue, utilNoAuto, utilRebind } from '../../util';
|
||||
import { svgIcon } from '../../svg/icon';
|
||||
|
||||
@@ -21,6 +20,13 @@ export function uiFieldText(field, context) {
|
||||
var input = d3_select(null);
|
||||
var outlinkButton = d3_select(null);
|
||||
var _entity;
|
||||
var _phoneFormats = {};
|
||||
|
||||
if (field.type === 'tel') {
|
||||
context.data().get('phone_formats')
|
||||
.then(function(d) { _phoneFormats = d; })
|
||||
.catch(function() { /* ignore */ });
|
||||
}
|
||||
|
||||
function i(selection) {
|
||||
var preset = _entity && context.presets().match(_entity, context.graph());
|
||||
@@ -61,7 +67,7 @@ export function uiFieldText(field, context) {
|
||||
if (field.type === 'tel' && _entity) {
|
||||
var center = _entity.extent(context.graph()).center();
|
||||
var countryCode = countryCoder.iso1A2Code(center);
|
||||
var format = countryCode && dataPhoneFormats[countryCode.toLowerCase()];
|
||||
var format = countryCode && _phoneFormats[countryCode.toLowerCase()];
|
||||
if (format) {
|
||||
wrap.selectAll('#' + fieldID)
|
||||
.attr('placeholder', format);
|
||||
|
||||
@@ -3,8 +3,6 @@ import { select as d3_select, event as d3_event } from 'd3-selection';
|
||||
import * as countryCoder from '@ideditor/country-coder';
|
||||
|
||||
import { currentLocale, t, languageName } from '../../util/locale';
|
||||
import { dataLanguages } from '../../../data';
|
||||
import { dataTerritoryLanguages } from '../../../data';
|
||||
import { services } from '../../services';
|
||||
import { svgIcon } from '../../svg';
|
||||
import { tooltip } from '../../util/tooltip';
|
||||
@@ -12,29 +10,7 @@ import { uiCombobox } from '../combobox';
|
||||
import { utilDetect } from '../../util/detect';
|
||||
import { utilArrayUniq, utilEditDistance, utilGetSetValue, utilNoAuto, utilRebind } from '../../util';
|
||||
|
||||
var languagesArray = [];
|
||||
function loadLanguagesArray() {
|
||||
if (languagesArray.length !== 0) return;
|
||||
|
||||
// some conversion is needed to ensure correct OSM tags are used
|
||||
var replacements = {
|
||||
sr: 'sr-Cyrl', // in OSM, `sr` implies Cyrillic
|
||||
'sr-Cyrl': false // `sr-Cyrl` isn't used in OSM
|
||||
};
|
||||
|
||||
for (var code in dataLanguages) {
|
||||
if (replacements[code] === false) continue;
|
||||
var metaCode = code;
|
||||
if (replacements[code]) metaCode = replacements[code];
|
||||
|
||||
languagesArray.push({
|
||||
localName: languageName(metaCode, { localOnly: true }),
|
||||
nativeName: dataLanguages[metaCode].nativeName,
|
||||
code: code,
|
||||
label: languageName(metaCode)
|
||||
});
|
||||
}
|
||||
}
|
||||
var _languagesArray = [];
|
||||
|
||||
|
||||
export function uiFieldLocalized(field, context) {
|
||||
@@ -44,6 +20,16 @@ export function uiFieldLocalized(field, context) {
|
||||
var localizedInputs = d3_select(null);
|
||||
var _countryCode;
|
||||
|
||||
context.data().get('languages')
|
||||
.then(loadLanguagesArray)
|
||||
.catch(function() { /* ignore */ });
|
||||
|
||||
var _territoryLanguages = {};
|
||||
context.data().get('territory_languages')
|
||||
.then(function(d) { _territoryLanguages = d; })
|
||||
.catch(function() { /* ignore */ });
|
||||
|
||||
|
||||
var allSuggestions = context.presets().collection.filter(function(p) {
|
||||
return p.suggestion === true;
|
||||
});
|
||||
@@ -66,6 +52,30 @@ export function uiFieldLocalized(field, context) {
|
||||
var _entity;
|
||||
|
||||
|
||||
function loadLanguagesArray(dataLanguages) {
|
||||
if (_languagesArray.length !== 0) return;
|
||||
|
||||
// some conversion is needed to ensure correct OSM tags are used
|
||||
var replacements = {
|
||||
sr: 'sr-Cyrl', // in OSM, `sr` implies Cyrillic
|
||||
'sr-Cyrl': false // `sr-Cyrl` isn't used in OSM
|
||||
};
|
||||
|
||||
for (var code in dataLanguages) {
|
||||
if (replacements[code] === false) continue;
|
||||
var metaCode = code;
|
||||
if (replacements[code]) metaCode = replacements[code];
|
||||
|
||||
_languagesArray.push({
|
||||
localName: languageName(context, metaCode, { localOnly: true }),
|
||||
nativeName: dataLanguages[metaCode].nativeName,
|
||||
code: code,
|
||||
label: languageName(context, metaCode)
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function calcLocked() {
|
||||
if (!_entity) { // the original entity
|
||||
field.locked(false);
|
||||
@@ -91,6 +101,7 @@ export function uiFieldLocalized(field, context) {
|
||||
field.locked(isLocked);
|
||||
}
|
||||
|
||||
|
||||
// update _multilingual, maintaining the existing order
|
||||
function calcMultilingual(tags) {
|
||||
var existingLangsOrdered = _multilingual.map(function(item) {
|
||||
@@ -119,9 +130,6 @@ export function uiFieldLocalized(field, context) {
|
||||
|
||||
|
||||
function localized(selection) {
|
||||
// load if needed
|
||||
loadLanguagesArray();
|
||||
|
||||
_selection = selection;
|
||||
calcLocked();
|
||||
var isLocked = field.locked();
|
||||
@@ -376,7 +384,7 @@ export function uiFieldLocalized(field, context) {
|
||||
function changeLang(d) {
|
||||
var lang = utilGetSetValue(d3_select(this));
|
||||
var t = {};
|
||||
var language = languagesArray.find(function(d) {
|
||||
var language = _languagesArray.find(function(d) {
|
||||
return (d.localName && d.localName.toLowerCase() === lang.toLowerCase()) ||
|
||||
d.label.toLowerCase() === lang.toLowerCase() ||
|
||||
(d.nativeName && d.nativeName.toLowerCase() === lang.toLowerCase());
|
||||
@@ -418,18 +426,18 @@ export function uiFieldLocalized(field, context) {
|
||||
// show the user's language first
|
||||
var langCodes = [currentLocale, currentLocale.split('-')[0]];
|
||||
|
||||
if (_countryCode && dataTerritoryLanguages[_countryCode]) {
|
||||
langCodes = langCodes.concat(dataTerritoryLanguages[_countryCode]);
|
||||
if (_countryCode && _territoryLanguages[_countryCode]) {
|
||||
langCodes = langCodes.concat(_territoryLanguages[_countryCode]);
|
||||
}
|
||||
|
||||
var langItems = [];
|
||||
langCodes.forEach(function(code) {
|
||||
var langItem = languagesArray.find(function(item) {
|
||||
var langItem = _languagesArray.find(function(item) {
|
||||
return item.code === code;
|
||||
});
|
||||
if (langItem) langItems.push(langItem);
|
||||
});
|
||||
langItems = utilArrayUniq(langItems.concat(languagesArray));
|
||||
langItems = utilArrayUniq(langItems.concat(_languagesArray));
|
||||
|
||||
cb(langItems.filter(function(d) {
|
||||
return d.label.toLowerCase().indexOf(v) >= 0 ||
|
||||
@@ -537,7 +545,7 @@ export function uiFieldLocalized(field, context) {
|
||||
entries.order();
|
||||
|
||||
utilGetSetValue(entries.select('.localized-lang'), function(d) {
|
||||
return languageName(d.lang);
|
||||
return languageName(context, d.lang);
|
||||
});
|
||||
|
||||
utilGetSetValue(entries.select('.localized-value'),
|
||||
|
||||
@@ -56,7 +56,8 @@ export function uiIntro(context) {
|
||||
}
|
||||
}
|
||||
selection.call(startIntro);
|
||||
});
|
||||
})
|
||||
.catch(function() { /* ignore */ });
|
||||
}
|
||||
|
||||
|
||||
|
||||
+10
-13
@@ -1,10 +1,6 @@
|
||||
import {
|
||||
select as d3_select,
|
||||
selectAll as d3_selectAll
|
||||
} from 'd3-selection';
|
||||
import { select as d3_select, selectAll as d3_selectAll } from 'd3-selection';
|
||||
|
||||
import { t } from '../util/locale';
|
||||
import { dataShortcuts } from '../../data';
|
||||
import { svgIcon } from '../svg/icon';
|
||||
import { uiCmd } from './cmd';
|
||||
import { uiModal } from './modal';
|
||||
@@ -28,7 +24,7 @@ export function uiShortcuts(context) {
|
||||
}
|
||||
} else {
|
||||
_modalSelection = uiModal(_selection);
|
||||
shortcutsModal(_modalSelection);
|
||||
_modalSelection.call(shortcutsModal);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -37,20 +33,21 @@ export function uiShortcuts(context) {
|
||||
_modalSelection.select('.modal')
|
||||
.classed('modal-shortcuts', true);
|
||||
|
||||
var shortcutsModal = _modalSelection.select('.content');
|
||||
var content = _modalSelection.select('.content');
|
||||
|
||||
shortcutsModal
|
||||
content
|
||||
.append('div')
|
||||
.attr('class', 'modal-section')
|
||||
.append('h3')
|
||||
.text(t('shortcuts.title'));
|
||||
|
||||
shortcutsModal
|
||||
.call(render);
|
||||
context.data().get('shortcuts')
|
||||
.then(function(data) { content.call(render, data); })
|
||||
.catch(function() { /* ignore */ });
|
||||
}
|
||||
|
||||
|
||||
function render(selection) {
|
||||
function render(selection, dataShortcuts) {
|
||||
var wrapper = selection
|
||||
.selectAll('.wrapper')
|
||||
.data([0]);
|
||||
@@ -80,7 +77,7 @@ export function uiShortcuts(context) {
|
||||
.attr('class', 'tab')
|
||||
.on('click', function (d, i) {
|
||||
_activeTab = i;
|
||||
render(selection);
|
||||
render(selection, dataShortcuts);
|
||||
});
|
||||
|
||||
tabsEnter
|
||||
@@ -257,7 +254,7 @@ export function uiShortcuts(context) {
|
||||
_selection = selection;
|
||||
if (show) {
|
||||
_modalSelection = uiModal(selection);
|
||||
shortcutsModal(_modalSelection);
|
||||
_modalSelection.call(shortcutsModal);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@@ -279,7 +279,7 @@ export function uiSuccess(context) {
|
||||
|
||||
if (d.languageCodes && d.languageCodes.length) {
|
||||
const languageList = d.languageCodes
|
||||
.map(code => languageName(code))
|
||||
.map(code => languageName(context, code))
|
||||
.join(', ');
|
||||
|
||||
moreEnter
|
||||
|
||||
+15
-13
@@ -1,6 +1,5 @@
|
||||
import { dataLanguages } from '../../../data';
|
||||
|
||||
var translations = Object.create(null);
|
||||
var _dataLanguages = {};
|
||||
|
||||
export var currentLocale = 'en';
|
||||
export var textDirection = 'ltr';
|
||||
@@ -73,7 +72,6 @@ export function t(s, o, loc) {
|
||||
*
|
||||
* @param {string} dir ltr or rtl
|
||||
*/
|
||||
|
||||
export function setTextDirection(dir) {
|
||||
textDirection = dir;
|
||||
}
|
||||
@@ -86,38 +84,42 @@ export function setScriptNames(obj) {
|
||||
scriptNames = obj;
|
||||
}
|
||||
|
||||
export function languageName(code, options) {
|
||||
if (languageNames[code]) { // name in locale langauge
|
||||
export function languageName(context, code, options) {
|
||||
// Data access is async now, which makes this complicated.
|
||||
// If _dataLanguages haven't been loaded yet, try to load them.
|
||||
// Worst case, we fallback to the code until the file has been loaded.
|
||||
if (!Object.keys(_dataLanguages).length) {
|
||||
context.data().get('languages')
|
||||
.then(function(d) { _dataLanguages = d; })
|
||||
.catch(function() { /* ignore */ });
|
||||
}
|
||||
|
||||
if (languageNames[code]) { // name in locale langauge
|
||||
// e.g. German
|
||||
return languageNames[code];
|
||||
}
|
||||
|
||||
// sometimes we only want the local name
|
||||
if (options && options.localOnly) return null;
|
||||
|
||||
var langInfo = dataLanguages[code];
|
||||
|
||||
var langInfo = _dataLanguages[code];
|
||||
if (langInfo) {
|
||||
if (langInfo.nativeName) { // name in native language
|
||||
|
||||
// e.g. Deutsch (de)
|
||||
return t('translate.language_and_code', { language: langInfo.nativeName, code: code });
|
||||
|
||||
} else if (langInfo.base && langInfo.script) {
|
||||
|
||||
var base = langInfo.base; // the code of the langauge this is based on
|
||||
|
||||
if (languageNames[base]) { // base language name in locale langauge
|
||||
var scriptCode = langInfo.script;
|
||||
var script = scriptNames[scriptCode] || scriptCode;
|
||||
|
||||
// e.g. Serbian (Cyrillic)
|
||||
return t('translate.language_and_code', { language: languageNames[base], code: script });
|
||||
|
||||
} else if (dataLanguages[base] && dataLanguages[base].nativeName) {
|
||||
|
||||
} else if (_dataLanguages[base] && _dataLanguages[base].nativeName) {
|
||||
// e.g. српски (sr-Cyrl)
|
||||
return t('translate.language_and_code', { language: dataLanguages[base].nativeName, code: code });
|
||||
return t('translate.language_and_code', { language: _dataLanguages[base].nativeName, code: code });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,6 +13,12 @@ import { validationIssue, validationIssueFix } from '../core/validation';
|
||||
export function validationOutdatedTags(context) {
|
||||
var type = 'outdated_tags';
|
||||
|
||||
// initialize deprecated tags array
|
||||
var _dataDeprecated = [];
|
||||
context.data().get('deprecated')
|
||||
.then(function(d) { _dataDeprecated = d; })
|
||||
.catch(function() { /* ignore */ });
|
||||
|
||||
// initialize name-suggestion-index matcher
|
||||
var nsiMatcher = matcher();
|
||||
nsiMatcher.buildMatchIndex(brands.brands);
|
||||
@@ -43,7 +49,7 @@ export function validationOutdatedTags(context) {
|
||||
}
|
||||
|
||||
// upgrade tags..
|
||||
var deprecatedTags = entity.deprecatedTags();
|
||||
var deprecatedTags = entity.deprecatedTags(_dataDeprecated);
|
||||
if (deprecatedTags.length) {
|
||||
deprecatedTags.forEach(function(tag) {
|
||||
graph = actionUpgradeTags(entity.id, tag.old, tag.replace)(graph);
|
||||
|
||||
@@ -58,7 +58,7 @@ export function validationSuspiciousName() {
|
||||
var entity = context.hasEntity(this.entityIds[0]);
|
||||
if (!entity) return '';
|
||||
var preset = utilPreset(entity, context);
|
||||
var langName = langCode && languageName(langCode);
|
||||
var langName = langCode && languageName(context, langCode);
|
||||
return t('issues.generic_name.message' + (langName ? '_language' : ''),
|
||||
{ feature: preset.name(), name: genericName, language: langName }
|
||||
);
|
||||
@@ -105,7 +105,7 @@ export function validationSuspiciousName() {
|
||||
var entity = context.hasEntity(this.entityIds[0]);
|
||||
if (!entity) return '';
|
||||
var preset = utilPreset(entity, context);
|
||||
var langName = langCode && languageName(langCode);
|
||||
var langName = langCode && languageName(context, langCode);
|
||||
return t('issues.incorrect_name.message' + (langName ? '_language' : ''),
|
||||
{ feature: preset.name(), name: incorrectName, language: langName }
|
||||
);
|
||||
|
||||
+36
-4
@@ -11,7 +11,7 @@ const YAML = require('js-yaml');
|
||||
|
||||
const fieldSchema = require('../data/presets/schema/field.json');
|
||||
const presetSchema = require('../data/presets/schema/preset.json');
|
||||
const deprecated = require('../data/deprecated.json').dataDeprecated;
|
||||
const deprecated = require('../data/deprecated.json');
|
||||
|
||||
// fontawesome icons
|
||||
const fontawesome = require('@fortawesome/fontawesome-svg-core');
|
||||
@@ -85,7 +85,7 @@ function buildData() {
|
||||
'data/presets/presets.json',
|
||||
'data/presets.yaml',
|
||||
'data/taginfo.json',
|
||||
'data/territory-languages.json',
|
||||
'data/territory_languages.json',
|
||||
'dist/locales/en.json',
|
||||
'svg/fontawesome/*.svg',
|
||||
]);
|
||||
@@ -110,10 +110,26 @@ function buildData() {
|
||||
writeFileProm('data/presets/presets.json', prettyStringify({ presets: presets }, { maxLength: 9999 }) ),
|
||||
writeFileProm('data/presets.yaml', translationsToYAML(translations) ),
|
||||
writeFileProm('data/taginfo.json', prettyStringify(taginfo, { maxLength: 9999 }) ),
|
||||
writeFileProm('data/territory-languages.json', prettyStringify({ dataTerritoryLanguages: territoryLanguages }, { maxLength: 9999 }) ),
|
||||
writeFileProm('data/territory_languages.json', prettyStringify(territoryLanguages, { maxLength: 9999 }) ),
|
||||
writeEnJson(tstrings),
|
||||
writeFaIcons(faIcons),
|
||||
writeTnpIcons(tnpIcons)
|
||||
writeTnpIcons(tnpIcons),
|
||||
minifyJSON('data/presets/categories.json', 'dist/data/categories.min.json'),
|
||||
minifyJSON('data/presets/fields.json', 'dist/data/fields.min.json'),
|
||||
minifyJSON('data/presets/presets.json', 'dist/data/presets.min.json'),
|
||||
minifyJSON('data/address_formats.json', 'dist/data/address_formats.min.json'),
|
||||
minifyJSON('data/deprecated.json', 'dist/data/deprecated.min.json'),
|
||||
minifyJSON('data/discarded.json', 'dist/data/discarded.min.json'),
|
||||
minifyJSON('data/imagery.json', 'dist/data/imagery.min.json'),
|
||||
minifyJSON('data/intro_graph.json', 'dist/data/intro_graph.min.json'),
|
||||
minifyJSON('data/keepRight.json', 'dist/data/keepRight.min.json'),
|
||||
minifyJSON('data/languages.json', 'dist/data/languages.min.json'),
|
||||
minifyJSON('data/locales.json', 'dist/data/locales.min.json'),
|
||||
minifyJSON('data/phone_formats.json', 'dist/data/phone_formats.min.json'),
|
||||
minifyJSON('data/qa_errors.json', 'dist/data/qa_errors.min.json'),
|
||||
minifyJSON('data/shortcuts.json', 'dist/data/shortcuts.min.json'),
|
||||
minifyJSON('data/taginfo.json', 'dist/data/taginfo.min.json'),
|
||||
minifyJSON('data/territory_languages.json', 'dist/data/territory_languages.min.json')
|
||||
];
|
||||
|
||||
return _currBuild =
|
||||
@@ -873,4 +889,20 @@ function readFileProm(path, options) {
|
||||
}
|
||||
|
||||
|
||||
function minifyJSON(inPath, outPath) {
|
||||
return new Promise((resolve, reject) => {
|
||||
fs.readFile(inPath, 'utf8', (err, data) => {
|
||||
if (err) return reject(err);
|
||||
|
||||
const minified = JSON.stringify(JSON.parse(data));
|
||||
fs.writeFile(outPath, minified, (err) => {
|
||||
if (err) return reject(err);
|
||||
resolve();
|
||||
});
|
||||
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
module.exports = buildData;
|
||||
|
||||
+12
-19
@@ -9,7 +9,7 @@ const colors = require('colors/safe');
|
||||
const resources = ['core', 'presets', 'imagery', 'community'];
|
||||
const outdir = 'dist/locales/';
|
||||
const apiroot = 'https://www.transifex.com/api/2';
|
||||
const projectURL = `${apiroot}/project/id-editor/`;
|
||||
const projectURL = `${apiroot}/project/id-editor`;
|
||||
|
||||
|
||||
/*
|
||||
@@ -22,21 +22,14 @@ const projectURL = `${apiroot}/project/id-editor/`;
|
||||
* }
|
||||
* */
|
||||
|
||||
const auth = JSON.parse(fs.readFileSync('../transifex.auth', 'utf8'));
|
||||
|
||||
// const sourceCore = YAML.load(fs.readFileSync('../data/core.yaml', 'utf8'));
|
||||
// const sourcePresets = YAML.load(fs.readFileSync('../data/presets.yaml', 'utf8'));
|
||||
// const sourceImagery = YAML.load(fs.readFileSync('../node_modules/editor-layer-index/i18n/en.yaml', 'utf8'));
|
||||
// const sourceCommunity = YAML.load(fs.readFileSync('../node_modules/osm-community-index/i18n/en.yaml', 'utf8'));
|
||||
|
||||
const dataShortcuts = JSON.parse(fs.readFileSync('../data/shortcuts.json', 'utf8')).dataShortcuts;
|
||||
|
||||
const cldrMainDir = '../node_modules/cldr-localenames-full/main/';
|
||||
const auth = JSON.parse(fs.readFileSync('./transifex.auth', 'utf8'));
|
||||
const dataShortcuts = JSON.parse(fs.readFileSync('data/shortcuts.json', 'utf8'));
|
||||
const cldrMainDir = 'node_modules/cldr-localenames-full/main/';
|
||||
|
||||
let referencedScripts = [];
|
||||
|
||||
const languageInfo = { dataLanguages: getLangNamesInNativeLang() };
|
||||
fs.writeFileSync('data/languages.json', JSON.stringify(languageInfo, null, 4));
|
||||
const languageInfo = getLangNamesInNativeLang();
|
||||
fs.writeFileSync('data/languages.json', prettyStringify(languageInfo, { maxLength: 200 }));
|
||||
|
||||
let shortcuts = [];
|
||||
dataShortcuts.forEach(tab => {
|
||||
@@ -103,9 +96,9 @@ asyncMap(resources, getResource, (err, results) => {
|
||||
(err) => {
|
||||
if (!err) {
|
||||
const keys = Object.keys(dataLocales).sort();
|
||||
let sorted = {};
|
||||
keys.forEach(k => sorted[k] = dataLocales[k]);
|
||||
fs.writeFileSync('data/locales.json', prettyStringify({ dataLocales: sorted }, { maxLength: 99999 }));
|
||||
let sortedLocales = {};
|
||||
keys.forEach(k => sortedLocales[k] = dataLocales[k]);
|
||||
fs.writeFileSync('data/locales.json', prettyStringify({ dataLocales: sortedLocales }, { maxLength: 99999 }));
|
||||
}
|
||||
}
|
||||
);
|
||||
@@ -113,7 +106,7 @@ asyncMap(resources, getResource, (err, results) => {
|
||||
|
||||
|
||||
function getResource(resource, callback) {
|
||||
let resourceURL = `${projectURL}resource/${resource}/`;
|
||||
let resourceURL = `${projectURL}/resource/${resource}`;
|
||||
getLanguages(resourceURL, (err, codes) => {
|
||||
if (err) return callback(err);
|
||||
|
||||
@@ -195,8 +188,8 @@ function getLanguageInfo(code, callback) {
|
||||
}
|
||||
|
||||
|
||||
function getLanguages(resource, callback) {
|
||||
let url = `${resource}?details`;
|
||||
function getLanguages(resourceURL, callback) {
|
||||
let url = `${resourceURL}?details`;
|
||||
request.get(url, { auth: auth }, (err, resp, body) => {
|
||||
if (err) return callback(err);
|
||||
console.log(`${resp.statusCode}: ${url}`);
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
describe('iD.actionDiscardTags', function() {
|
||||
var discardTags = { created_by: true };
|
||||
|
||||
it('discards obsolete tags from modified entities', function() {
|
||||
var way = iD.osmWay({ id: 'w1', tags: { created_by: 'Potlatch' } });
|
||||
var base = iD.coreGraph([way]);
|
||||
var head = base.replace(way.update({ tags: { created_by: 'Potlatch', foo: 'bar' } }));
|
||||
var action = iD.actionDiscardTags(iD.coreDifference(base, head));
|
||||
var action = iD.actionDiscardTags(iD.coreDifference(base, head), discardTags);
|
||||
expect(action(head).entity(way.id).tags).to.eql({foo: 'bar'});
|
||||
});
|
||||
|
||||
@@ -11,7 +13,7 @@ describe('iD.actionDiscardTags', function() {
|
||||
var way = iD.osmWay({ tags: { created_by: 'Potlatch' } });
|
||||
var base = iD.coreGraph();
|
||||
var head = base.replace(way);
|
||||
var action = iD.actionDiscardTags(iD.coreDifference(base, head));
|
||||
var action = iD.actionDiscardTags(iD.coreDifference(base, head), discardTags);
|
||||
expect(action(head).entity(way.id).tags).to.eql({});
|
||||
});
|
||||
|
||||
@@ -19,7 +21,7 @@ describe('iD.actionDiscardTags', function() {
|
||||
var way = iD.osmWay();
|
||||
var base = iD.coreGraph();
|
||||
var head = base.replace(way);
|
||||
var action = iD.actionDiscardTags(iD.coreDifference(base, head));
|
||||
var action = iD.actionDiscardTags(iD.coreDifference(base, head), discardTags);
|
||||
expect(action(head).entity(way.id)).to.equal(way);
|
||||
});
|
||||
|
||||
@@ -27,7 +29,7 @@ describe('iD.actionDiscardTags', function() {
|
||||
var way = iD.osmWay({ tags: { lmnop: '' } });
|
||||
var base = iD.coreGraph();
|
||||
var head = base.replace(way);
|
||||
var action = iD.actionDiscardTags(iD.coreDifference(base, head));
|
||||
var action = iD.actionDiscardTags(iD.coreDifference(base, head), discardTags);
|
||||
expect(action(head).entity(way.id).tags).to.eql({});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
describe('iD.actionMergeRemoteChanges', function () {
|
||||
var discardTags = { created_by: true };
|
||||
|
||||
var base = iD.coreGraph([
|
||||
iD.osmNode({id: 'a', loc: [1, 1], version: '1', tags: {foo: 'foo'}}),
|
||||
|
||||
@@ -73,7 +75,7 @@ describe('iD.actionMergeRemoteChanges', function () {
|
||||
remote = base.entity('a').update({tags: remoteTags, version: '2'}),
|
||||
localGraph = makeGraph([local]),
|
||||
remoteGraph = makeGraph([remote]),
|
||||
action = iD.actionMergeRemoteChanges('a', localGraph, remoteGraph);
|
||||
action = iD.actionMergeRemoteChanges('a', localGraph, remoteGraph, discardTags);
|
||||
var result = action(localGraph);
|
||||
|
||||
expect(result).to.eql(localGraph);
|
||||
@@ -86,7 +88,7 @@ describe('iD.actionMergeRemoteChanges', function () {
|
||||
remote = base.entity('a').update({tags: remoteTags, version: '2'}),
|
||||
localGraph = makeGraph([local]),
|
||||
remoteGraph = makeGraph([remote]),
|
||||
action = iD.actionMergeRemoteChanges('a', localGraph, remoteGraph),
|
||||
action = iD.actionMergeRemoteChanges('a', localGraph, remoteGraph, discardTags),
|
||||
result = action(localGraph);
|
||||
|
||||
expect(result).to.eql(localGraph);
|
||||
@@ -99,7 +101,7 @@ describe('iD.actionMergeRemoteChanges', function () {
|
||||
remote = base.entity('a').update({tags: remoteTags, version: '2'}),
|
||||
localGraph = makeGraph([local]),
|
||||
remoteGraph = makeGraph([remote]),
|
||||
action = iD.actionMergeRemoteChanges('a', localGraph, remoteGraph),
|
||||
action = iD.actionMergeRemoteChanges('a', localGraph, remoteGraph, discardTags),
|
||||
result = action(localGraph);
|
||||
|
||||
expect(result).to.eql(localGraph);
|
||||
@@ -112,7 +114,7 @@ describe('iD.actionMergeRemoteChanges', function () {
|
||||
remote = base.entity('a').update({tags: remoteTags, version: '2'}),
|
||||
localGraph = makeGraph([local]),
|
||||
remoteGraph = makeGraph([remote]),
|
||||
action = iD.actionMergeRemoteChanges('a', localGraph, remoteGraph),
|
||||
action = iD.actionMergeRemoteChanges('a', localGraph, remoteGraph, discardTags),
|
||||
result = action(localGraph);
|
||||
|
||||
expect(result).to.eql(localGraph);
|
||||
@@ -126,7 +128,7 @@ describe('iD.actionMergeRemoteChanges', function () {
|
||||
remote = base.entity('a').update({tags: remoteTags, version: '2'}),
|
||||
localGraph = makeGraph([local]),
|
||||
remoteGraph = makeGraph([remote]),
|
||||
action = iD.actionMergeRemoteChanges('a', localGraph, remoteGraph),
|
||||
action = iD.actionMergeRemoteChanges('a', localGraph, remoteGraph, discardTags),
|
||||
result = action(localGraph);
|
||||
|
||||
expect(result.entity('a').version).to.eql('2');
|
||||
@@ -141,7 +143,7 @@ describe('iD.actionMergeRemoteChanges', function () {
|
||||
remote = base.entity('a').update({tags: remoteTags, version: '2'}),
|
||||
localGraph = makeGraph([local]),
|
||||
remoteGraph = makeGraph([remote]),
|
||||
action = iD.actionMergeRemoteChanges('a', localGraph, remoteGraph),
|
||||
action = iD.actionMergeRemoteChanges('a', localGraph, remoteGraph, discardTags),
|
||||
result = action(localGraph);
|
||||
|
||||
expect(result.entity('a').version).to.eql('2');
|
||||
@@ -160,7 +162,7 @@ describe('iD.actionMergeRemoteChanges', function () {
|
||||
remote = base.entity('a').update({tags: remoteTags, loc: remoteLoc, version: '2'}),
|
||||
localGraph = makeGraph([local]),
|
||||
remoteGraph = makeGraph([remote]),
|
||||
action = iD.actionMergeRemoteChanges('a', localGraph, remoteGraph),
|
||||
action = iD.actionMergeRemoteChanges('a', localGraph, remoteGraph, discardTags),
|
||||
result = action(localGraph);
|
||||
|
||||
expect(result).to.eql(localGraph);
|
||||
@@ -176,7 +178,7 @@ describe('iD.actionMergeRemoteChanges', function () {
|
||||
remote = base.entity('a').update({tags: remoteTags, loc: remoteLoc, version: '2'}),
|
||||
localGraph = makeGraph([local]),
|
||||
remoteGraph = makeGraph([remote]),
|
||||
action = iD.actionMergeRemoteChanges('a', localGraph, remoteGraph),
|
||||
action = iD.actionMergeRemoteChanges('a', localGraph, remoteGraph, discardTags),
|
||||
result = action(localGraph);
|
||||
|
||||
expect(result.entity('a').version).to.eql('2');
|
||||
@@ -195,7 +197,7 @@ describe('iD.actionMergeRemoteChanges', function () {
|
||||
remote = base.entity('w1').update({tags: remoteTags, version: '2'}),
|
||||
localGraph = makeGraph([local]),
|
||||
remoteGraph = makeGraph([remote]),
|
||||
action = iD.actionMergeRemoteChanges('w1', localGraph, remoteGraph),
|
||||
action = iD.actionMergeRemoteChanges('w1', localGraph, remoteGraph, discardTags),
|
||||
result = action(localGraph);
|
||||
|
||||
expect(result.entity('w1').version).to.eql('2');
|
||||
@@ -212,7 +214,7 @@ describe('iD.actionMergeRemoteChanges', function () {
|
||||
remote = base.entity('w1').update({tags: remoteTags, nodes: remoteNodes, version: '2'}),
|
||||
localGraph = makeGraph([local]),
|
||||
remoteGraph = makeGraph([remote, r2, r3]),
|
||||
action = iD.actionMergeRemoteChanges('w1', localGraph, remoteGraph),
|
||||
action = iD.actionMergeRemoteChanges('w1', localGraph, remoteGraph, discardTags),
|
||||
result = action(localGraph);
|
||||
|
||||
expect(result.entity('w1').version).to.eql('2');
|
||||
@@ -232,7 +234,7 @@ describe('iD.actionMergeRemoteChanges', function () {
|
||||
remote = base.entity('w1').update({tags: remoteTags, nodes: remoteNodes, version: '2'}),
|
||||
localGraph = makeGraph([local, r2, r3]),
|
||||
remoteGraph = makeGraph([remote]),
|
||||
action = iD.actionMergeRemoteChanges('w1', localGraph, remoteGraph),
|
||||
action = iD.actionMergeRemoteChanges('w1', localGraph, remoteGraph, discardTags),
|
||||
result = action(localGraph);
|
||||
|
||||
expect(result.entity('w1').version).to.eql('2');
|
||||
@@ -251,7 +253,7 @@ describe('iD.actionMergeRemoteChanges', function () {
|
||||
remote = base.entity('w1').update({tags: remoteTags, nodes: remoteNodes, version: '2'}),
|
||||
localGraph = makeGraph([local, r1, r2]),
|
||||
remoteGraph = makeGraph([remote, r3, r4]),
|
||||
action = iD.actionMergeRemoteChanges('w1', localGraph, remoteGraph),
|
||||
action = iD.actionMergeRemoteChanges('w1', localGraph, remoteGraph, discardTags),
|
||||
result = action(localGraph);
|
||||
|
||||
expect(result.entity('w1').version).to.eql('2');
|
||||
@@ -270,7 +272,7 @@ describe('iD.actionMergeRemoteChanges', function () {
|
||||
remote = base.entity('w1').update({tags: remoteTags, nodes: remoteNodes, version: '2'}),
|
||||
localGraph = makeGraph([local, r1, r2]),
|
||||
remoteGraph = makeGraph([remote, r3, r4]),
|
||||
action = iD.actionMergeRemoteChanges('w1', localGraph, remoteGraph),
|
||||
action = iD.actionMergeRemoteChanges('w1', localGraph, remoteGraph, discardTags),
|
||||
result = action(localGraph);
|
||||
|
||||
expect(result).to.eql(localGraph);
|
||||
@@ -283,7 +285,7 @@ describe('iD.actionMergeRemoteChanges', function () {
|
||||
remote = base.entity('p1').update({loc: remoteLoc, version: '2'}),
|
||||
localGraph = makeGraph([local]),
|
||||
remoteGraph = makeGraph([remote]),
|
||||
action = iD.actionMergeRemoteChanges('w1', localGraph, remoteGraph),
|
||||
action = iD.actionMergeRemoteChanges('w1', localGraph, remoteGraph, discardTags),
|
||||
result = action(localGraph);
|
||||
|
||||
expect(result.entity('p1').version).to.eql('2');
|
||||
@@ -297,7 +299,7 @@ describe('iD.actionMergeRemoteChanges', function () {
|
||||
remote = base.entity('p1').update({loc: remoteLoc, version: '2'}),
|
||||
localGraph = makeGraph([local]),
|
||||
remoteGraph = makeGraph([remote]),
|
||||
action = iD.actionMergeRemoteChanges('w1', localGraph, remoteGraph),
|
||||
action = iD.actionMergeRemoteChanges('w1', localGraph, remoteGraph, discardTags),
|
||||
result = action(localGraph);
|
||||
|
||||
expect(result).to.eql(localGraph);
|
||||
@@ -315,7 +317,7 @@ describe('iD.actionMergeRemoteChanges', function () {
|
||||
remote = base.entity('r').update({tags: remoteTags, members: remoteMembers, version: '2'}),
|
||||
localGraph = makeGraph([local]),
|
||||
remoteGraph = makeGraph([remote, s1, s2, s3, s4, w4]),
|
||||
action = iD.actionMergeRemoteChanges('r', localGraph, remoteGraph),
|
||||
action = iD.actionMergeRemoteChanges('r', localGraph, remoteGraph, discardTags),
|
||||
result = action(localGraph);
|
||||
|
||||
expect(result).to.eql(localGraph);
|
||||
@@ -331,7 +333,7 @@ describe('iD.actionMergeRemoteChanges', function () {
|
||||
remote = base.entity('r').update({tags: remoteTags, members: remoteMembers, version: '2'}),
|
||||
localGraph = makeGraph([local]),
|
||||
remoteGraph = makeGraph([remote]),
|
||||
action = iD.actionMergeRemoteChanges('r', localGraph, remoteGraph),
|
||||
action = iD.actionMergeRemoteChanges('r', localGraph, remoteGraph, discardTags),
|
||||
result = action(localGraph);
|
||||
|
||||
expect(result.entity('r').version).to.eql('2');
|
||||
@@ -349,7 +351,7 @@ describe('iD.actionMergeRemoteChanges', function () {
|
||||
remote = base.entity('a').update({tags: remoteTags, loc: remoteLoc, version: '2'}),
|
||||
localGraph = makeGraph([local]),
|
||||
remoteGraph = makeGraph([remote]),
|
||||
action = iD.actionMergeRemoteChanges('a', localGraph, remoteGraph);
|
||||
action = iD.actionMergeRemoteChanges('a', localGraph, remoteGraph, discardTags);
|
||||
action(localGraph);
|
||||
|
||||
expect(action.conflicts()).not.to.be.empty;
|
||||
@@ -369,7 +371,7 @@ describe('iD.actionMergeRemoteChanges', function () {
|
||||
remote = base.entity('a').update({tags: remoteTags, loc: remoteLoc, version: '2'}),
|
||||
localGraph = makeGraph([local]),
|
||||
remoteGraph = makeGraph([remote]),
|
||||
action = iD.actionMergeRemoteChanges('a', localGraph, remoteGraph).withOption('force_local'),
|
||||
action = iD.actionMergeRemoteChanges('a', localGraph, remoteGraph, discardTags).withOption('force_local'),
|
||||
result = action(localGraph);
|
||||
|
||||
expect(result.entity('a').version).to.eql('2');
|
||||
@@ -386,7 +388,7 @@ describe('iD.actionMergeRemoteChanges', function () {
|
||||
remote = base.entity('a').update({tags: remoteTags, loc: remoteLoc, version: '2'}),
|
||||
localGraph = makeGraph([local]),
|
||||
remoteGraph = makeGraph([remote]),
|
||||
action = iD.actionMergeRemoteChanges('a', localGraph, remoteGraph).withOption('force_remote'),
|
||||
action = iD.actionMergeRemoteChanges('a', localGraph, remoteGraph, discardTags).withOption('force_remote'),
|
||||
result = action(localGraph);
|
||||
|
||||
expect(result.entity('a').version).to.eql('2');
|
||||
@@ -406,7 +408,7 @@ describe('iD.actionMergeRemoteChanges', function () {
|
||||
remote = base.entity('w1').update({tags: remoteTags, nodes: remoteNodes, version: '2'}),
|
||||
localGraph = makeGraph([local, r1, r2]),
|
||||
remoteGraph = makeGraph([remote, r3, r4]),
|
||||
action = iD.actionMergeRemoteChanges('w1', localGraph, remoteGraph).withOption('force_local'),
|
||||
action = iD.actionMergeRemoteChanges('w1', localGraph, remoteGraph, discardTags).withOption('force_local'),
|
||||
result = action(localGraph);
|
||||
|
||||
expect(result.entity('w1').version).to.eql('2');
|
||||
@@ -423,7 +425,7 @@ describe('iD.actionMergeRemoteChanges', function () {
|
||||
remote = base.entity('w1').update({tags: remoteTags, nodes: remoteNodes, version: '2'}),
|
||||
localGraph = makeGraph([local, r1, r2]),
|
||||
remoteGraph = makeGraph([remote, r3, r4]),
|
||||
action = iD.actionMergeRemoteChanges('w1', localGraph, remoteGraph).withOption('force_remote'),
|
||||
action = iD.actionMergeRemoteChanges('w1', localGraph, remoteGraph, discardTags).withOption('force_remote'),
|
||||
result = action(localGraph);
|
||||
|
||||
expect(result.entity('w1').version).to.eql('2');
|
||||
@@ -440,7 +442,7 @@ describe('iD.actionMergeRemoteChanges', function () {
|
||||
remote = base.entity('p1').update({loc: remoteLoc, version: '2'}),
|
||||
localGraph = makeGraph([local]),
|
||||
remoteGraph = makeGraph([remote]),
|
||||
action = iD.actionMergeRemoteChanges('w1', localGraph, remoteGraph).withOption('force_local'),
|
||||
action = iD.actionMergeRemoteChanges('w1', localGraph, remoteGraph, discardTags).withOption('force_local'),
|
||||
result = action(localGraph);
|
||||
|
||||
expect(result.entity('p1').version).to.eql('2');
|
||||
@@ -454,7 +456,7 @@ describe('iD.actionMergeRemoteChanges', function () {
|
||||
remote = base.entity('p1').update({loc: remoteLoc, version: '2'}),
|
||||
localGraph = makeGraph([local]),
|
||||
remoteGraph = makeGraph([remote]),
|
||||
action = iD.actionMergeRemoteChanges('w1', localGraph, remoteGraph).withOption('force_remote'),
|
||||
action = iD.actionMergeRemoteChanges('w1', localGraph, remoteGraph, discardTags).withOption('force_remote'),
|
||||
result = action(localGraph);
|
||||
|
||||
expect(result.entity('p1').version).to.eql('2');
|
||||
@@ -469,7 +471,7 @@ describe('iD.actionMergeRemoteChanges', function () {
|
||||
remote = base.entity('w1').update({nodes: remoteNodes, version: '2'}),
|
||||
localGraph = makeGraph([local, localr1, r2]),
|
||||
remoteGraph = makeGraph([remote, r3, r4]),
|
||||
action = iD.actionMergeRemoteChanges('w1', localGraph, remoteGraph).withOption('force_remote'),
|
||||
action = iD.actionMergeRemoteChanges('w1', localGraph, remoteGraph, discardTags).withOption('force_remote'),
|
||||
result = action(localGraph);
|
||||
|
||||
expect(result.entity('w1').nodes).to.eql(remoteNodes);
|
||||
@@ -489,7 +491,7 @@ describe('iD.actionMergeRemoteChanges', function () {
|
||||
remote = base.entity('r').update({tags: remoteTags, members: remoteMembers, version: '2'}),
|
||||
localGraph = makeGraph([local, r1, r2, r3, r4, w3]),
|
||||
remoteGraph = makeGraph([remote, s1, s2, s3, s4, w4]),
|
||||
action = iD.actionMergeRemoteChanges('r', localGraph, remoteGraph).withOption('force_local'),
|
||||
action = iD.actionMergeRemoteChanges('r', localGraph, remoteGraph, discardTags).withOption('force_local'),
|
||||
result = action(localGraph);
|
||||
|
||||
expect(result.entity('r').version).to.eql('2');
|
||||
@@ -506,7 +508,7 @@ describe('iD.actionMergeRemoteChanges', function () {
|
||||
remote = base.entity('r').update({tags: remoteTags, members: remoteMembers, version: '2'}),
|
||||
localGraph = makeGraph([local, r1, r2, r3, r4, w3]),
|
||||
remoteGraph = makeGraph([remote, s1, s2, s3, s4, w4]),
|
||||
action = iD.actionMergeRemoteChanges('r', localGraph, remoteGraph).withOption('force_remote'),
|
||||
action = iD.actionMergeRemoteChanges('r', localGraph, remoteGraph, discardTags).withOption('force_remote'),
|
||||
result = action(localGraph);
|
||||
|
||||
expect(result.entity('r').version).to.eql('2');
|
||||
|
||||
+33
-18
@@ -22,7 +22,7 @@ describe('iD.coreData', function() {
|
||||
});
|
||||
it('sets the fileMap', function() {
|
||||
var data = iD.coreData(_context);
|
||||
var files = { 'intro_graph': 'data/intro_graph.json' };
|
||||
var files = { 'intro_graph': 'data/intro_graph.min.json' };
|
||||
expect(data.fileMap(files)).to.be.ok;
|
||||
});
|
||||
});
|
||||
@@ -31,31 +31,46 @@ describe('iD.coreData', function() {
|
||||
it('returns a promise resolved if we already have the data', function(done) {
|
||||
var data = iD.coreData(_context);
|
||||
var prom = data.get('test');
|
||||
expect(prom).to.be.a('promise');
|
||||
prom.then(function (data) {
|
||||
expect(data).to.be.a('object');
|
||||
expect(data.hello).to.eql('world');
|
||||
done();
|
||||
});
|
||||
// expect(prom).to.be.a('promise'); // these are polyfilled in phantomjs
|
||||
prom
|
||||
.then(function(data) {
|
||||
expect(data).to.be.a('object');
|
||||
expect(data.hello).to.eql('world');
|
||||
done();
|
||||
})
|
||||
.catch(function(err) {
|
||||
throw err;
|
||||
done();
|
||||
});
|
||||
});
|
||||
it('returns a promise rejected if we can not get the data', function(done) {
|
||||
var data = iD.coreData(_context);
|
||||
var prom = data.get('wat');
|
||||
prom.catch(function (err) {
|
||||
expect(/^Unknown data file/.test(err)).to.be.true;
|
||||
done();
|
||||
});
|
||||
prom
|
||||
.then(function(data) {
|
||||
throw new Error('got data ' + data);
|
||||
done();
|
||||
})
|
||||
.catch(function(err) {
|
||||
expect(/^Unknown data file/.test(err)).to.be.true;
|
||||
done();
|
||||
});
|
||||
});
|
||||
it('returns a promise to fetch data if we do not already have the data', function(done) {
|
||||
var files = { 'intro_graph': 'data/intro_graph.json' };
|
||||
var files = { 'intro_graph': 'data/intro_graph.min.json' };
|
||||
var data = iD.coreData(_context).fileMap(files);
|
||||
var prom = data.get('intro_graph');
|
||||
expect(prom).to.be.a('promise');
|
||||
prom.then(function (data) {
|
||||
expect(data).to.be.a('object');
|
||||
expect(data.n1.tags.name).to.eql('Three Rivers City Hall');
|
||||
done();
|
||||
});
|
||||
// expect(prom).to.be.a('promise'); // these are polyfilled in phantomjs
|
||||
prom
|
||||
.then(function(data) {
|
||||
expect(data).to.be.a('object');
|
||||
expect(data.n1.tags.name).to.eql('Three Rivers City Hall');
|
||||
done();
|
||||
})
|
||||
.catch(function(err) {
|
||||
throw err;
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
+16
-8
@@ -222,46 +222,54 @@ describe('iD.osmEntity', function () {
|
||||
});
|
||||
|
||||
describe('#deprecatedTags', function () {
|
||||
var deprecated = [
|
||||
{ old: { highway: 'no' } },
|
||||
{ old: { amenity: 'toilet' }, replace: { amenity: 'toilets' } },
|
||||
{ old: { speedlimit: '*' }, replace: { maxspeed: '$1' } },
|
||||
{ old: { man_made: 'water_tank' }, replace: { man_made: 'storage_tank', content: 'water' } },
|
||||
{ old: { amenity: 'gambling', gambling: 'casino' }, replace: { amenity: 'casino' } }
|
||||
];
|
||||
|
||||
it('returns none if entity has no tags', function () {
|
||||
expect(iD.osmEntity().deprecatedTags()).to.eql([]);
|
||||
expect(iD.osmEntity().deprecatedTags(deprecated)).to.eql([]);
|
||||
});
|
||||
|
||||
it('returns none when no tags are deprecated', function () {
|
||||
expect(iD.osmEntity({ tags: { amenity: 'toilets' } }).deprecatedTags()).to.eql([]);
|
||||
expect(iD.osmEntity({ tags: { amenity: 'toilets' } }).deprecatedTags(deprecated)).to.eql([]);
|
||||
});
|
||||
|
||||
it('returns 1:0 replacement', function () {
|
||||
expect(iD.osmEntity({ tags: { highway: 'no' } }).deprecatedTags()).to.eql(
|
||||
expect(iD.osmEntity({ tags: { highway: 'no' } }).deprecatedTags(deprecated)).to.eql(
|
||||
[{ old: { highway: 'no' } }]
|
||||
);
|
||||
});
|
||||
|
||||
it('returns 1:1 replacement', function () {
|
||||
expect(iD.osmEntity({ tags: { amenity: 'toilet' } }).deprecatedTags()).to.eql(
|
||||
expect(iD.osmEntity({ tags: { amenity: 'toilet' } }).deprecatedTags(deprecated)).to.eql(
|
||||
[{ old: { amenity: 'toilet' }, replace: { amenity: 'toilets' } }]
|
||||
);
|
||||
});
|
||||
|
||||
it('returns 1:1 wildcard', function () {
|
||||
expect(iD.osmEntity({ tags: { speedlimit: '50' } }).deprecatedTags()).to.eql(
|
||||
expect(iD.osmEntity({ tags: { speedlimit: '50' } }).deprecatedTags(deprecated)).to.eql(
|
||||
[{ old: { speedlimit: '*' }, replace: { maxspeed: '$1' } }]
|
||||
);
|
||||
});
|
||||
|
||||
it('returns 1:2 total replacement', function () {
|
||||
expect(iD.osmEntity({ tags: { man_made: 'water_tank' } }).deprecatedTags()).to.eql(
|
||||
expect(iD.osmEntity({ tags: { man_made: 'water_tank' } }).deprecatedTags(deprecated)).to.eql(
|
||||
[{ old: { man_made: 'water_tank' }, replace: { man_made: 'storage_tank', content: 'water' } }]
|
||||
);
|
||||
});
|
||||
|
||||
it('returns 1:2 partial replacement', function () {
|
||||
expect(iD.osmEntity({ tags: { man_made: 'water_tank', content: 'water' } }).deprecatedTags()).to.eql(
|
||||
expect(iD.osmEntity({ tags: { man_made: 'water_tank', content: 'water' } }).deprecatedTags(deprecated)).to.eql(
|
||||
[{ old: { man_made: 'water_tank' }, replace: { man_made: 'storage_tank', content: 'water' } }]
|
||||
);
|
||||
});
|
||||
|
||||
it('returns 2:1 replacement', function () {
|
||||
expect(iD.osmEntity({ tags: { amenity: 'gambling', gambling: 'casino' } }).deprecatedTags()).to.eql(
|
||||
expect(iD.osmEntity({ tags: { amenity: 'gambling', gambling: 'casino' } }).deprecatedTags(deprecated)).to.eql(
|
||||
[{ old: { amenity: 'gambling', gambling: 'casino' }, replace: { amenity: 'casino' } }]
|
||||
);
|
||||
});
|
||||
|
||||
@@ -19,6 +19,8 @@ iD.data.presets = {
|
||||
man_made: { name: 'Man Made', tags: { man_made: '*' }, geometry: ['vertex', 'point', 'line', 'area'] }
|
||||
}
|
||||
};
|
||||
// creating `coreContext` creates validators, and `validatonOutdatedTags` will try to load this
|
||||
iD.data.deprecated = [];
|
||||
|
||||
|
||||
mocha.setup({
|
||||
|
||||
@@ -1,6 +1,19 @@
|
||||
describe('iD.uiFieldLocalized', function() {
|
||||
var context, selection, field;
|
||||
|
||||
before(function() {
|
||||
iD.data.languages = {
|
||||
de: { nativeName: 'Deutsch' },
|
||||
en: { nativeName: 'English' }
|
||||
};
|
||||
iD.data.territory_languages = {};
|
||||
});
|
||||
|
||||
after(function() {
|
||||
delete iD.data.languages;
|
||||
delete iD.data.territory_languages;
|
||||
});
|
||||
|
||||
beforeEach(function() {
|
||||
context = iD.coreContext();
|
||||
selection = d3.select(document.createElement('div'));
|
||||
@@ -8,6 +21,7 @@ describe('iD.uiFieldLocalized', function() {
|
||||
field.locked = function() { return false; };
|
||||
});
|
||||
|
||||
|
||||
it('adds a blank set of fields when the + button is clicked', function() {
|
||||
var localized = iD.uiFieldLocalized(field, context);
|
||||
selection.call(localized);
|
||||
|
||||
@@ -1,10 +1,22 @@
|
||||
describe('iD.validations.outdated_tags', function () {
|
||||
var context;
|
||||
|
||||
before(function() {
|
||||
iD.data.deprecated = [
|
||||
{ old: { highway: 'no' } },
|
||||
{ old: { highway: 'ford' }, replace: { ford: '*' } }
|
||||
];
|
||||
});
|
||||
|
||||
after(function() {
|
||||
delete iD.data.deprecated;
|
||||
});
|
||||
|
||||
beforeEach(function() {
|
||||
context = iD.coreContext();
|
||||
});
|
||||
|
||||
|
||||
function createWay(tags) {
|
||||
var n1 = iD.osmNode({id: 'n-1', loc: [4,4]});
|
||||
var n2 = iD.osmNode({id: 'n-2', loc: [4,5]});
|
||||
|
||||
Reference in New Issue
Block a user