From 20edbb5a8f36735107752690656edc654fb6b818 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 26 Mar 2019 16:40:44 -0400 Subject: [PATCH 001/774] Add contextual toolbar when feature is selected --- css/80_app.css | 5 ++ modules/modes/select.js | 7 ++- modules/ui/tools/index.js | 1 + modules/ui/tools/operation.js | 63 ++++++++++++++++++++ modules/ui/top_toolbar.js | 105 +++++++++++++++++++++++++++------- 5 files changed, 159 insertions(+), 22 deletions(-) create mode 100644 modules/ui/tools/operation.js diff --git a/css/80_app.css b/css/80_app.css index f77f555163..6e5fc1691c 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -487,6 +487,9 @@ button.bar-button { white-space: nowrap; display: flex; } +.toolbar-item.operation button.bar-button { + padding: 0 15px; +} button.bar-button .icon { flex: 0 0 20px; } @@ -5154,11 +5157,13 @@ li.hide + li.version .badge .tooltip .tooltip-arrow { fill: #eee; } +.toolbar-item.operation button use, .edit-menu-item use { fill: #222; color: #79f; pointer-events: none; } +.toolbar-item.operation button.disabled use, .edit-menu-item.disabled use { fill: rgba(32,32,32,.2); color: rgba(40,40,40,.2); diff --git a/modules/modes/select.js b/modules/modes/select.js index ff4854ef85..254f6fa1da 100644 --- a/modules/modes/select.js +++ b/modules/modes/select.js @@ -233,13 +233,18 @@ export function modeSelect(context, selectedIDs) { return mode; }; + var operations = []; + + mode.operations = function() { + return operations; + }; mode.enter = function() { if (!checkSelectedIDs()) return; context.features().forceVisible(selectedIDs); - var operations = Object.values(Operations) + operations = Object.values(Operations) .map(function(o) { return o(selectedIDs, context); }) .filter(function(o) { return o.available() && o.id !== 'delete'; }); diff --git a/modules/ui/tools/index.js b/modules/ui/tools/index.js index 28391185dc..02a442140b 100644 --- a/modules/ui/tools/index.js +++ b/modules/ui/tools/index.js @@ -1,6 +1,7 @@ export * from './add_favorite'; export * from './add_recent'; export * from './notes'; +export * from './operation'; export * from './save'; export * from './search_add'; export * from './sidebar_toggle'; diff --git a/modules/ui/tools/operation.js b/modules/ui/tools/operation.js new file mode 100644 index 0000000000..a45e87b9bf --- /dev/null +++ b/modules/ui/tools/operation.js @@ -0,0 +1,63 @@ +import { + event as d3_event, +} from 'd3-selection'; + +import { svgIcon } from '../../svg'; +import { uiTooltipHtml } from '../tooltipHtml'; +import { tooltip } from '../../util/tooltip'; + +export function uiToolOperation() { + + var operation; + + var tool = { + klass: 'operation' + }; + + var button, tooltipBehavior; + + tool.render = function(selection) { + + tooltipBehavior = tooltip() + .placement('bottom') + .html(true); + + button = selection + .append('button') + .attr('class', 'bar-button') + .attr('tabindex', -1) + .call(tooltipBehavior) + .on('click', function() { + d3_event.stopPropagation(); + if (!operation || operation.disabled()) return; + operation(); + }) + .call(svgIcon('#iD-operation-' + operation.id)); + }; + + tool.setOperation = function(op) { + operation = op; + + tool.id = operation.id; + tool.label = operation.title; + }; + + tool.update = function() { + if (!operation) return; + + if (tooltipBehavior) { + tooltipBehavior.title(uiTooltipHtml(operation.tooltip(), operation.keys[0])); + } + if (button) { + button.classed('disabled', operation.disabled()); + } + }; + + tool.uninstall = function() { + tooltipBehavior = null; + button = null; + operation = null; + }; + + return tool; +} diff --git a/modules/ui/top_toolbar.js b/modules/ui/top_toolbar.js index 85f0bcf230..acb4cd5a42 100644 --- a/modules/ui/top_toolbar.js +++ b/modules/ui/top_toolbar.js @@ -4,8 +4,7 @@ import { } from 'd3-selection'; import _debounce from 'lodash-es/debounce'; -import { uiToolAddFavorite, uiToolAddRecent, uiToolNotes, uiToolSave, uiToolSearchAdd, uiToolSidebarToggle, uiToolUndoRedo } from './tools'; - +import { uiToolAddFavorite, uiToolAddRecent, uiToolNotes, uiToolOperation, uiToolSave, uiToolSearchAdd, uiToolSidebarToggle, uiToolUndoRedo } from './tools'; export function uiTopToolbar(context) { @@ -17,30 +16,62 @@ export function uiTopToolbar(context) { undoRedo = uiToolUndoRedo(context), save = uiToolSave(context); + var supportedOperationIDs = ['circularize', 'delete', 'disconnect', 'merge', 'orthogonalize', 'split', 'straighten']; + + var operationToolsByID = {}; + function notesEnabled() { var noteLayer = context.layers().layer('notes'); return noteLayer && noteLayer.enabled(); } - function topToolbar(bar) { - - var debouncedUpdate = _debounce(update, 500, { leading: true, trailing: true }); - context.layers() - .on('change.topToolbar', debouncedUpdate); - - context.presets() - .on('favoritePreset.topToolbar', update) - .on('recentsChange.topToolbar', update); - - update(); - - function update() { + function operationTool(operation) { + if (!operationToolsByID[operation.id]) { + // cache the tools + operationToolsByID[operation.id] = uiToolOperation(context); + } + var tool = operationToolsByID[operation.id]; + tool.setOperation(operation); + return tool; + } - var tools = [ - sidebarToggle, - 'spacer', - searchAdd - ]; + function toolsToShow() { + + var tools = [ + sidebarToggle, + 'spacer' + ]; + var mode = context.mode(); + if (mode && + mode.id === 'select' && + !mode.newFeature() && + mode.selectedIDs().every(function(id) { return context.graph().hasEntity(id); })) { + + var operationTools = []; + var operations = mode.operations().filter(function(operation) { + return supportedOperationIDs.indexOf(operation.id) !== -1; + }); + var deleteTool; + for (var i in operations) { + var operation = operations[i]; + var tool = operationTool(operation); + if (operation.id !== 'delete') { + operationTools.push(tool); + } else { + deleteTool = tool; + } + } + if (operationTools.length > 0) { + tools = tools.concat(operationTools); + tools.push('spacer'); + } + if (deleteTool) { + // give the delete button its own space + tools.push(deleteTool); + tools.push('spacer'); + } + } else { + tools.push(searchAdd); if (context.presets().getFavorites().length > 0) { tools.push(addFavorite); @@ -55,8 +86,35 @@ export function uiTopToolbar(context) { if (notesEnabled()) { tools = tools.concat([notes, 'spacer']); } + } + tools = tools.concat([undoRedo, save]); + + return tools; + } - tools = tools.concat([undoRedo, save]); + function topToolbar(bar) { + + var debouncedUpdate = _debounce(update, 500, { leading: true, trailing: true }); + context.history() + .on('annotatedChange.topToolbar', debouncedUpdate); + context.layers() + .on('change.topToolbar', debouncedUpdate); + context.map() + .on('move.topToolbar', debouncedUpdate) + .on('drawn.topToolbar', debouncedUpdate); + + context.on('enter.topToolbar', update); + + context.presets() + .on('favoritePreset.topToolbar', update) + .on('recentsChange.topToolbar', update); + + + update(); + + function update() { + + var tools = toolsToShow(); var toolbarItems = bar.selectAll('.toolbar-item') .data(tools, function(d) { @@ -95,6 +153,11 @@ export function uiTopToolbar(context) { .text(function(d) { return d.label; }); + + toolbarItems.merge(itemsEnter) + .each(function(d){ + if (d.update) d.update(); + }); } } From a3e1f2af8a4226732cc5850c100eb90e174a544e Mon Sep 17 00:00:00 2001 From: Tim Smith Date: Mon, 27 May 2019 22:04:42 -0700 Subject: [PATCH 002/774] Deprecate leisure/tanning_salon The correct way to tag a tanning salon is a beauty shop that offers tanning as a service. Signed-off-by: Tim Smith --- data/deprecated.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/data/deprecated.json b/data/deprecated.json index f1905cecc0..0a745a7ffe 100644 --- a/data/deprecated.json +++ b/data/deprecated.json @@ -459,6 +459,10 @@ "old": {"leisure": "social_club"}, "replace": {"club": "*"} }, + { + "old": {"leisure": "tanning_salon"}, + "replace": {"shop": "beauty", "beauty": "tanning"} + }, { "old": {"leisure": "video_arcade"}, "replace": {"leisure": "amusement_arcade"} From 639348ec533836b02fdfcaf17c53678fd0f85b01 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 28 May 2019 10:03:50 -0400 Subject: [PATCH 003/774] Reinstate preset search, favorites, and recents tools (ribbon UI) --- css/80_app.css | 7 ++ modules/ui/preset_favorite_button.js | 4 +- modules/ui/tools/index.js | 1 - modules/ui/tools/modes.js | 161 --------------------------- modules/ui/top_toolbar.js | 16 ++- 5 files changed, 16 insertions(+), 173 deletions(-) delete mode 100644 modules/ui/tools/modes.js diff --git a/css/80_app.css b/css/80_app.css index b074cefc52..a7cc2591ac 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -1194,6 +1194,10 @@ a.hide-toggle { object-fit: contain; border-radius: 2px; } +.preset-icon-container.small img.image-icon { + width: 34px; + height: 34px; +} .preset-icon-point-border path { stroke: #333; @@ -1340,6 +1344,9 @@ a.hide-toggle { background-color: #ececec; } +.preset-list-item button.preset-favorite-button { + border-radius: 0; +} .preset-list-item button.preset-favorite-button, .preset-list-item button.tag-reference-button { height: 100%; diff --git a/modules/ui/preset_favorite_button.js b/modules/ui/preset_favorite_button.js index fa32c6b934..a8e7e08a80 100644 --- a/modules/ui/preset_favorite_button.js +++ b/modules/ui/preset_favorite_button.js @@ -16,8 +16,8 @@ export function uiPresetFavoriteButton(preset, geom, context, klass) { presetFavorite.button = function(selection) { - // disable favoriting for now - var canFavorite = false;//geom !== 'relation' && preset.searchable !== false; + + var canFavorite = geom !== 'relation' && preset.searchable !== false; _button = selection.selectAll('.preset-favorite-button') .data(canFavorite ? [0] : []); diff --git a/modules/ui/tools/index.js b/modules/ui/tools/index.js index b8ff9aaa51..28391185dc 100644 --- a/modules/ui/tools/index.js +++ b/modules/ui/tools/index.js @@ -1,6 +1,5 @@ export * from './add_favorite'; export * from './add_recent'; -export * from './modes'; export * from './notes'; export * from './save'; export * from './search_add'; diff --git a/modules/ui/tools/modes.js b/modules/ui/tools/modes.js deleted file mode 100644 index c92c88ad9a..0000000000 --- a/modules/ui/tools/modes.js +++ /dev/null @@ -1,161 +0,0 @@ -import _debounce from 'lodash-es/debounce'; - -import { select as d3_select } from 'd3-selection'; - -import { - modeAddArea, - modeAddLine, - modeAddPoint, - modeBrowse -} from '../../modes'; - -import { t } from '../../util/locale'; -import { svgIcon } from '../../svg'; -import { tooltip } from '../../util/tooltip'; -import { uiTooltipHtml } from '../tooltipHtml'; - -export function uiToolOldDrawModes(context) { - - var tool = { - id: 'old_modes', - label: t('toolbar.add_feature') - }; - - var modes = [ - modeAddPoint(context, { - title: t('modes.add_point.title'), - button: 'point', - description: t('modes.add_point.description'), - preset: context.presets().item('point'), - key: '1' - }), - modeAddLine(context, { - title: t('modes.add_line.title'), - button: 'line', - description: t('modes.add_line.description'), - preset: context.presets().item('line'), - key: '2' - }), - modeAddArea(context, { - title: t('modes.add_area.title'), - button: 'area', - description: t('modes.add_area.description'), - preset: context.presets().item('area'), - key: '3' - }) - ]; - - - function enabled() { - return osmEditable(); - } - - function osmEditable() { - var mode = context.mode(); - return context.editable() && mode && mode.id !== 'save'; - } - - modes.forEach(function(mode) { - context.keybinding().on(mode.key, function() { - if (!enabled(mode)) return; - - if (mode.id === context.mode().id) { - context.enter(modeBrowse(context)); - } else { - context.enter(mode); - } - }); - }); - - tool.render = function(selection) { - - var wrap = selection - .append('div') - .attr('class', 'joined') - .style('display', 'flex'); - - context - .on('enter.editor', function(entered) { - selection.selectAll('button.add-button') - .classed('active', function(mode) { return entered.button === mode.button; }); - context.container() - .classed('mode-' + entered.id, true); - }); - - context - .on('exit.editor', function(exited) { - context.container() - .classed('mode-' + exited.id, false); - }); - - - var debouncedUpdate = _debounce(update, 500, { leading: true, trailing: true }); - - context.map() - .on('move.modes', debouncedUpdate) - .on('drawn.modes', debouncedUpdate); - - context - .on('enter.modes', update); - - update(); - - - function update() { - - var buttons = wrap.selectAll('button.add-button') - .data(modes, function(d) { return d.id; }); - - // exit - buttons.exit() - .remove(); - - // enter - var buttonsEnter = buttons.enter() - .append('button') - .attr('tabindex', -1) - .attr('class', function(d) { return d.id + ' add-button bar-button'; }) - .on('click.mode-buttons', function(d) { - if (!enabled(d)) return; - - // When drawing, ignore accidental clicks on mode buttons - #4042 - var currMode = context.mode().id; - if (/^draw/.test(currMode)) return; - - if (d.id === currMode) { - context.enter(modeBrowse(context)); - } else { - context.enter(d); - } - }) - .call(tooltip() - .placement('bottom') - .html(true) - .title(function(d) { return uiTooltipHtml(d.description, d.key); }) - ); - - buttonsEnter - .each(function(d) { - d3_select(this) - .call(svgIcon('#iD-icon-' + d.button)); - }); - - buttonsEnter - .append('span') - .attr('class', 'label') - .text(function(mode) { return mode.title; }); - - // if we are adding/removing the buttons, check if toolbar has overflowed - if (buttons.enter().size() || buttons.exit().size()) { - context.ui().checkOverflow('#bar', true); - } - - // update - buttons = buttons - .merge(buttonsEnter) - .classed('disabled', function(d) { return !enabled(d); }); - } - }; - - return tool; -} diff --git a/modules/ui/top_toolbar.js b/modules/ui/top_toolbar.js index dde877b7db..3cf618060e 100644 --- a/modules/ui/top_toolbar.js +++ b/modules/ui/top_toolbar.js @@ -4,16 +4,15 @@ import { } from 'd3-selection'; import _debounce from 'lodash-es/debounce'; -import { /*uiToolAddFavorite, uiToolAddRecent, uiToolSearchAdd, */ uiToolOldDrawModes, uiToolNotes, uiToolSave, uiToolSidebarToggle, uiToolUndoRedo } from './tools'; +import { uiToolAddFavorite, uiToolAddRecent, uiToolSearchAdd, uiToolNotes, uiToolSave, uiToolSidebarToggle, uiToolUndoRedo } from './tools'; export function uiTopToolbar(context) { var sidebarToggle = uiToolSidebarToggle(context), - modes = uiToolOldDrawModes(context), - //searchAdd = uiToolSearchAdd(context), - //addFavorite = uiToolAddFavorite(context), - //addRecent = uiToolAddRecent(context), + searchAdd = uiToolSearchAdd(context), + addFavorite = uiToolAddFavorite(context), + addRecent = uiToolAddRecent(context), notes = uiToolNotes(context), undoRedo = uiToolUndoRedo(context), save = uiToolSave(context); @@ -40,17 +39,16 @@ export function uiTopToolbar(context) { var tools = [ sidebarToggle, 'spacer', - modes - // searchAdd + searchAdd ]; - /* + if (context.presets().getFavorites().length > 0) { tools.push(addFavorite); } if (addRecent.shouldShow()) { tools.push(addRecent); - }*/ + } tools.push('spacer'); From b150dc72d4d52f4569991dabbe27e32f695e413d Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 28 May 2019 10:54:27 -0400 Subject: [PATCH 004/774] Reduce toolbar update debounce time --- modules/ui/top_toolbar.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ui/top_toolbar.js b/modules/ui/top_toolbar.js index 64de242042..d8bb57bcc4 100644 --- a/modules/ui/top_toolbar.js +++ b/modules/ui/top_toolbar.js @@ -94,7 +94,7 @@ export function uiTopToolbar(context) { function topToolbar(bar) { - var debouncedUpdate = _debounce(update, 500, { leading: true, trailing: true }); + var debouncedUpdate = _debounce(update, 250, { leading: true, trailing: true }); context.history() .on('change.topToolbar', debouncedUpdate); context.layers() From f6832c3adbe3f7d5fcfc9f9ef46e03fdbe77f759 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 28 May 2019 12:12:00 -0400 Subject: [PATCH 005/774] Add deselect toolbar item --- css/80_app.css | 11 +++++++++-- data/core.yaml | 2 ++ dist/locales/en.json | 3 +++ modules/ui/tools/deselect.js | 38 ++++++++++++++++++++++++++++++++++++ modules/ui/top_toolbar.js | 21 ++++++++++++++------ 5 files changed, 67 insertions(+), 8 deletions(-) create mode 100644 modules/ui/tools/deselect.js diff --git a/css/80_app.css b/css/80_app.css index 8cf0969f8c..ab2c5b651c 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -466,6 +466,9 @@ button[disabled].action:hover { white-space: nowrap; margin: 1px 2px 2px 2px; } +#bar .toolbar-item.spacer-half { + width: 50%; +} #bar .toolbar-item.spacer { width: 100%; flex-grow: 2; @@ -476,7 +479,7 @@ button[disabled].action:hover { #bar .toolbar-item:last-child { justify-content: flex-end; } -#bar .toolbar-item:empty:not(.spacer) { +#bar .toolbar-item:empty:not(.spacer):not(.spacer-half) { display: none; } button.bar-button { @@ -5205,6 +5208,7 @@ svg.mouseclick use.right { padding: 10px; font-weight: normal; background-color: #fff; + overflow: hidden; } .tail { @@ -5303,9 +5307,12 @@ svg.mouseclick use.right { .keyhint-wrap { background: #f6f6f6; padding: 10px; - margin: 10px -10px -10px -10px; + margin: -10px -10px -10px -10px; border-radius: 0 0 3px 3px; } +.tooltip-inner .tooltip-text { + margin-bottom: 20px; +} .tooltip-inner .keyhint { font-weight: bold; margin-left: 5px; diff --git a/data/core.yaml b/data/core.yaml index 08a9301d98..3a4c74f347 100644 --- a/data/core.yaml +++ b/data/core.yaml @@ -9,6 +9,8 @@ en: open_wikidata: open on wikidata.org favorite: favorite toolbar: + deselect: + title: Deselect inspect: Inspect undo_redo: Undo / Redo recent: Recent diff --git a/dist/locales/en.json b/dist/locales/en.json index d5d2fb7b09..3cecf336b1 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -11,6 +11,9 @@ "favorite": "favorite" }, "toolbar": { + "deselect": { + "title": "Deselect" + }, "inspect": "Inspect", "undo_redo": "Undo / Redo", "recent": "Recent", diff --git a/modules/ui/tools/deselect.js b/modules/ui/tools/deselect.js new file mode 100644 index 0000000000..3b7ac827e7 --- /dev/null +++ b/modules/ui/tools/deselect.js @@ -0,0 +1,38 @@ +import { + event as d3_event, +} from 'd3-selection'; + +import { modeBrowse } from '../../modes/browse'; +import { svgIcon } from '../../svg'; +import { uiTooltipHtml } from '../tooltipHtml'; +import { t } from '../../util/locale'; +import { tooltip } from '../../util/tooltip'; + +export function uiToolDeselect(context) { + + var tool = { + id: 'deselect', + label: t('toolbar.deselect.title') + }; + + tool.render = function(selection) { + + var tooltipBehavior = tooltip() + .placement('bottom') + .html(true) + .title(uiTooltipHtml(null, 'Esc')); + + selection + .append('button') + .attr('class', 'bar-button') + .attr('tabindex', -1) + .call(tooltipBehavior) + .on('click', function() { + d3_event.stopPropagation(); + context.enter(modeBrowse(context)); + }) + .call(svgIcon('#iD-icon-close')); + }; + + return tool; +} diff --git a/modules/ui/top_toolbar.js b/modules/ui/top_toolbar.js index d8bb57bcc4..12b4fd36d0 100644 --- a/modules/ui/top_toolbar.js +++ b/modules/ui/top_toolbar.js @@ -5,10 +5,12 @@ import { import _debounce from 'lodash-es/debounce'; import { uiToolAddFavorite, uiToolAddRecent, uiToolNotes, uiToolOperation, uiToolSave, uiToolSearchAdd, uiToolSidebarToggle, uiToolUndoRedo } from './tools'; +import { uiToolDeselect } from './tools/deselect'; export function uiTopToolbar(context) { var sidebarToggle = uiToolSidebarToggle(context), + deselect = uiToolDeselect(context), searchAdd = uiToolSearchAdd(context), addFavorite = uiToolAddFavorite(context), addRecent = uiToolAddRecent(context), @@ -37,16 +39,20 @@ export function uiTopToolbar(context) { function toolsToShow() { - var tools = [ - sidebarToggle, - 'spacer' - ]; + var tools = []; + var mode = context.mode(); if (mode && mode.id === 'select' && !mode.newFeature() && mode.selectedIDs().every(function(id) { return context.graph().hasEntity(id); })) { + tools.push(sidebarToggle); + tools.push('spacer-half'); + + tools.push(deselect); + tools.push('spacer'); + var operationTools = []; var operations = mode.operations().filter(function(operation) { return supportedOperationIDs.indexOf(operation.id) !== -1; @@ -71,6 +77,9 @@ export function uiTopToolbar(context) { tools.push('spacer'); } } else { + tools.push(sidebarToggle); + tools.push('spacer'); + tools.push(searchAdd); if (context.presets().getFavorites().length > 0) { @@ -84,7 +93,7 @@ export function uiTopToolbar(context) { tools.push('spacer'); if (notesEnabled()) { - tools = tools.concat([notes, 'spacer']); + tools = tools.concat([notes, 'spacer-flex']); } } tools = tools.concat([undoRedo, save]); @@ -138,7 +147,7 @@ export function uiTopToolbar(context) { return classes; }); - var actionableItems = itemsEnter.filter(function(d) { return d !== 'spacer'; }); + var actionableItems = itemsEnter.filter(function(d) { return typeof d !== 'string'; }); actionableItems .append('div') From f868d1c8febc1cc931c4914092ca63322c0b49b1 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 28 May 2019 14:24:16 -0400 Subject: [PATCH 006/774] Add Downgrade operation to the top toolbar --- modules/ui/top_toolbar.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/ui/top_toolbar.js b/modules/ui/top_toolbar.js index 12b4fd36d0..dc95e67623 100644 --- a/modules/ui/top_toolbar.js +++ b/modules/ui/top_toolbar.js @@ -18,7 +18,7 @@ export function uiTopToolbar(context) { undoRedo = uiToolUndoRedo(context), save = uiToolSave(context); - var supportedOperationIDs = ['circularize', 'delete', 'disconnect', 'merge', 'orthogonalize', 'split', 'straighten']; + var supportedOperationIDs = ['circularize', 'downgrade', 'delete', 'disconnect', 'merge', 'orthogonalize', 'split', 'straighten']; var operationToolsByID = {}; @@ -61,7 +61,7 @@ export function uiTopToolbar(context) { for (var i in operations) { var operation = operations[i]; var tool = operationTool(operation); - if (operation.id !== 'delete') { + if (operation.id !== 'delete' && operation.id !== 'downgrade') { operationTools.push(tool); } else { deleteTool = tool; From ba31d6117c1119ad79922ce625af854cfbdb3902 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 28 May 2019 14:39:03 -0400 Subject: [PATCH 007/774] Use a button instead of a search field item in the top toolbar for adding features, to save space --- css/80_app.css | 29 ++++++------- data/core.yaml | 4 +- dist/locales/en.json | 4 +- modules/ui/tools/operation.js | 2 +- modules/ui/tools/search_add.js | 77 +++++++++++++++++++++------------- 5 files changed, 67 insertions(+), 49 deletions(-) diff --git a/css/80_app.css b/css/80_app.css index ab2c5b651c..1823982018 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -491,16 +491,20 @@ button.bar-button { white-space: nowrap; display: flex; } -.toolbar-item.operation button.bar-button { +.toolbar-item button.bar-button.wide { padding: 0 15px; } button.bar-button .icon { - flex: 0 0 20px; + flex: 0 0 auto; } button.bar-button .label { flex: 0 1 auto; padding: 0 5px; } +.toolbar-item.search-add button.bar-button .icon { + width: 30px; + height: 30px; +} button.bar-button.dragging { opacity: 0.75; @@ -583,28 +587,16 @@ button.add-note svg.icon { ------------------------------------------------------- */ .search-add { - width: 200%; justify-content: center; position: relative; - min-width: 150px; - max-width: 325px; } .search-add .search-wrap { position: relative; width: 100%; } -[dir='ltr'] .search-add .search-wrap { - border-radius: 20px 4px 4px 20px; -} -[dir='rtl'] .search-add .search-wrap { - border-radius: 4px 20px 20px 4px; -} .search-add .search-wrap.focused .tooltip { display: none; } -.search-add .search-wrap:last-child { - border-radius: 20px; -} .search-add input[type='search'] { position: relative; width: 100%; @@ -615,6 +607,10 @@ button.add-note svg.icon { padding: 5px 10px; border-radius: inherit; } +.search-add input[type='search'], +.search-add input[type='search']:focus { + background: #f6f6f6; +} .search-add input[type='search'][disabled] { opacity: 0.25; cursor: not-allowed; @@ -638,6 +634,7 @@ button.add-note svg.icon { max-height: 600px; top: 44px; width: 200%; + min-width: 300px; max-width: 325px; margin: auto; left: auto; @@ -654,6 +651,10 @@ button.add-note svg.icon { /* ensure corners are rounded in Chrome */ -webkit-mask-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC); } +.search-add .popover .popover-header { + height: 40px; + border-bottom: 2px solid #DCDCDC; +} .search-add .popover .popover-footer { padding: 5px 10px 5px 10px; background: #f6f6f6; diff --git a/data/core.yaml b/data/core.yaml index 3a4c74f347..c54dfe6d54 100644 --- a/data/core.yaml +++ b/data/core.yaml @@ -18,8 +18,8 @@ en: add_feature: Add Feature modes: add_feature: - title: Add a feature - description: "Search for features to add to the map." + search_placeholder: Search feature types + description: "Browse features to add to the map." key: Tab result: "{count} result" results: "{count} results" diff --git a/dist/locales/en.json b/dist/locales/en.json index 3cecf336b1..f2ef2db2b2 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -22,8 +22,8 @@ }, "modes": { "add_feature": { - "title": "Add a feature", - "description": "Search for features to add to the map.", + "search_placeholder": "Search feature types", + "description": "Browse features to add to the map.", "key": "Tab", "result": "{count} result", "results": "{count} results" diff --git a/modules/ui/tools/operation.js b/modules/ui/tools/operation.js index a45e87b9bf..833093f578 100644 --- a/modules/ui/tools/operation.js +++ b/modules/ui/tools/operation.js @@ -24,7 +24,7 @@ export function uiToolOperation() { button = selection .append('button') - .attr('class', 'bar-button') + .attr('class', 'bar-button wide') .attr('tabindex', -1) .call(tooltipBehavior) .on('click', function() { diff --git a/modules/ui/tools/search_add.js b/modules/ui/tools/search_add.js index da484593b0..84c6c526be 100644 --- a/modules/ui/tools/search_add.js +++ b/modules/ui/tools/search_add.js @@ -22,7 +22,7 @@ export function uiToolSearchAdd(context) { var tool = { id: 'search_add', - label: t('inspector.search') + label: t('toolbar.add_feature') }; var dispatch = d3_dispatch('choose'); @@ -77,64 +77,79 @@ export function uiToolSearchAdd(context) { .title(function() { return uiTooltipHtml(t('modes.add_feature.description'), key); }) ); - search = searchWrap - .append('input') - .attr('class', 'search-input') - .attr('placeholder', t('modes.add_feature.title')) - .attr('type', 'search') - .call(utilNoAuto) + var button = searchWrap + .append('button') + .attr('class', 'bar-button wide') + .attr('tabindex', -1) .on('mousedown', function() { - search.attr('clicking', true); + d3_event.preventDefault(); + d3_event.stopPropagation(); }) .on('mouseup', function() { - search.attr('clicking', null); + d3_event.preventDefault(); + d3_event.stopPropagation(); }) - .on('focus', function() { - searchWrap.classed('focused', true); - if (search.attr('clicking')) { - search.attr('focusing', true); - search.attr('clicking', null); - } else { + .on('click', function() { + if (popover.classed('hide')) { + popover.classed('hide', false); + search.node().focus(); search.node().setSelectionRange(0, search.property('value').length); + } else { + search.node().blur(); } - popover.classed('hide', false); + }) + .call(svgIcon('#iD-logo-features')); + + popover = searchWrap + .append('div') + .attr('class', 'popover fillL hide'); + + var header = popover + .append('div') + .attr('class', 'popover-header'); + + search = header + .append('input') + .attr('class', 'search-input') + .attr('placeholder', t('modes.add_feature.search_placeholder')) + .attr('type', 'search') + .call(utilNoAuto) + .on('focus', function() { + button.classed('active', true); + searchWrap.classed('focused', true); }) .on('blur', function() { + button.classed('active', false); searchWrap.classed('focused', false); popover.classed('hide', true); }) - .on('click', function() { - if (search.attr('focusing')) { - search.node().setSelectionRange(0, search.property('value').length); - search.attr('focusing', null); - } - }) .on('keypress', keypress) .on('keydown', keydown) .on('input', updateResultsList); - searchWrap + header .call(svgIcon('#iD-icon-search', 'search-icon pre-text')); - popover = searchWrap + popoverContent = popover .append('div') - .attr('class', 'popover fillL hide') + .attr('class', 'popover-content') .on('mousedown', function() { // don't blur the search input (and thus close results) d3_event.preventDefault(); d3_event.stopPropagation(); }); - popoverContent = popover - .append('div') - .attr('class', 'popover-content'); - list = popoverContent.append('div') .attr('class', 'list'); footer = popover .append('div') - .attr('class', 'popover-footer'); + .attr('class', 'popover-footer') + .on('mousedown', function() { + // don't blur the search input (and thus close results) + d3_event.preventDefault(); + d3_event.stopPropagation(); + }); message = footer.append('div') .attr('class', 'message'); @@ -166,7 +181,9 @@ export function uiToolSearchAdd(context) { .on('change.search-add', updateForFeatureHiddenState); context.keybinding().on(key, function() { + popover.classed('hide', false); search.node().focus(); + search.node().setSelectionRange(0, search.property('value').length); d3_event.preventDefault(); d3_event.stopPropagation(); }); From f124a3b381a31d4e48f2fca2869830d8eed5c905 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 28 May 2019 15:08:45 -0400 Subject: [PATCH 008/774] Simplify "add feature" tool structure Properly disable "add feature" tool when data is disabled --- css/80_app.css | 16 +++++++--------- modules/ui/tools/search_add.js | 26 +++++++++++--------------- 2 files changed, 18 insertions(+), 24 deletions(-) diff --git a/css/80_app.css b/css/80_app.css index 1823982018..bc3f9dc5f1 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -590,11 +590,7 @@ button.add-note svg.icon { justify-content: center; position: relative; } -.search-add .search-wrap { - position: relative; - width: 100%; -} -.search-add .search-wrap.focused .tooltip { +.search-add .bar-button.active .tooltip { display: none; } .search-add input[type='search'] { @@ -611,10 +607,6 @@ button.add-note svg.icon { .search-add input[type='search']:focus { background: #f6f6f6; } -.search-add input[type='search'][disabled] { - opacity: 0.25; - cursor: not-allowed; -} .search-add .search-icon { color: #333; display: block; @@ -641,6 +633,12 @@ button.add-note svg.icon { right: auto; z-index: 300; } +[dir='ltr'] .search-add .popover { + left: 0; +} +[dir='rtl'] .search-add .popover { + right: 0; +} .search-add .popover .popover-content { overflow-y: auto; height: 100%; diff --git a/modules/ui/tools/search_add.js b/modules/ui/tools/search_add.js index 84c6c526be..b616d10ecf 100644 --- a/modules/ui/tools/search_add.js +++ b/modules/ui/tools/search_add.js @@ -27,7 +27,7 @@ export function uiToolSearchAdd(context) { var dispatch = d3_dispatch('choose'); var presets; - var searchWrap = d3_select(null), + var button = d3_select(null), search = d3_select(null), popover = d3_select(null), popoverContent = d3_select(null), @@ -68,16 +68,7 @@ export function uiToolSearchAdd(context) { tool.render = function(selection) { updateShownGeometry(allowedGeometry.slice()); // shallow copy - searchWrap = selection - .append('div') - .attr('class', 'search-wrap') - .call(tooltip() - .placement('bottom') - .html(true) - .title(function() { return uiTooltipHtml(t('modes.add_feature.description'), key); }) - ); - - var button = searchWrap + button = selection .append('button') .attr('class', 'bar-button wide') .attr('tabindex', -1) @@ -90,6 +81,8 @@ export function uiToolSearchAdd(context) { d3_event.stopPropagation(); }) .on('click', function() { + if (button.classed('disabled')) return; + if (popover.classed('hide')) { popover.classed('hide', false); search.node().focus(); @@ -98,9 +91,14 @@ export function uiToolSearchAdd(context) { search.node().blur(); } }) + .call(tooltip() + .placement('bottom') + .html(true) + .title(function() { return uiTooltipHtml(t('modes.add_feature.description'), key); }) + ) .call(svgIcon('#iD-logo-features')); - popover = searchWrap + popover = selection .append('div') .attr('class', 'popover fillL hide'); @@ -116,11 +114,9 @@ export function uiToolSearchAdd(context) { .call(utilNoAuto) .on('focus', function() { button.classed('active', true); - searchWrap.classed('focused', true); }) .on('blur', function() { button.classed('active', false); - searchWrap.classed('focused', false); popover.classed('hide', true); }) .on('keypress', keypress) @@ -217,7 +213,7 @@ export function uiToolSearchAdd(context) { function updateEnabledState() { var isEnabled = osmEditable(); - searchWrap.classed('disabled', !isEnabled); + button.classed('disabled', !isEnabled); if (!isEnabled) { search.node().blur(); } From 9b1adf55c478b2ca587c659a54953e962e77b446 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 28 May 2019 15:24:18 -0400 Subject: [PATCH 009/774] Rename the search_add tool to add_feature Adjust toolbar spacing --- css/80_app.css | 94 +++++++++---------- .../tools/{search_add.js => add_feature.js} | 20 ++-- modules/ui/tools/index.js | 2 +- modules/ui/top_toolbar.js | 14 +-- 4 files changed, 65 insertions(+), 65 deletions(-) rename modules/ui/tools/{search_add.js => add_feature.js} (97%) diff --git a/css/80_app.css b/css/80_app.css index bc3f9dc5f1..95d754667f 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -501,7 +501,7 @@ button.bar-button .label { flex: 0 1 auto; padding: 0 5px; } -.toolbar-item.search-add button.bar-button .icon { +.toolbar-item.add-feature button.bar-button .icon { width: 30px; height: 30px; } @@ -586,14 +586,14 @@ button.add-note svg.icon { /* Add a feature search bar ------------------------------------------------------- */ -.search-add { +.add-feature { justify-content: center; position: relative; } -.search-add .bar-button.active .tooltip { +.add-feature .bar-button.active .tooltip { display: none; } -.search-add input[type='search'] { +.add-feature input[type='search'] { position: relative; width: 100%; height: 100%; @@ -603,11 +603,11 @@ button.add-note svg.icon { padding: 5px 10px; border-radius: inherit; } -.search-add input[type='search'], -.search-add input[type='search']:focus { +.add-feature input[type='search'], +.add-feature input[type='search']:focus { background: #f6f6f6; } -.search-add .search-icon { +.add-feature .search-icon { color: #333; display: block; position: absolute; @@ -615,11 +615,11 @@ button.add-note svg.icon { top: 10px; pointer-events: none; } -[dir='rtl'] .search-add .search-icon { +[dir='rtl'] .add-feature .search-icon { left: auto; right: 10px; } -.search-add .popover { +.add-feature .popover { border: none; border-radius: 6px; position: absolute; @@ -633,68 +633,68 @@ button.add-note svg.icon { right: auto; z-index: 300; } -[dir='ltr'] .search-add .popover { +[dir='ltr'] .add-feature .popover { left: 0; } -[dir='rtl'] .search-add .popover { +[dir='rtl'] .add-feature .popover { right: 0; } -.search-add .popover .popover-content { +.add-feature .popover .popover-content { overflow-y: auto; height: 100%; max-height: 60vh; } -.search-add .popover, -.search-add .popover .popover-content { +.add-feature .popover, +.add-feature .popover .popover-content { /* ensure corners are rounded in Chrome */ -webkit-mask-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC); } -.search-add .popover .popover-header { +.add-feature .popover .popover-header { height: 40px; border-bottom: 2px solid #DCDCDC; } -.search-add .popover .popover-footer { +.add-feature .popover .popover-footer { padding: 5px 10px 5px 10px; background: #f6f6f6; border-top: 1px solid #DCDCDC; display: flex; } -.search-add .popover .popover-footer .message { +.add-feature .popover .popover-footer .message { color: #666666; flex-grow: 1; } -.search-add .popover .popover-footer button.filter { +.add-feature .popover .popover-footer button.filter { height: 20px; background: transparent; color: #666; } -.search-add .popover .popover-footer button.filter.active { +.add-feature .popover .popover-footer button.filter.active { color: #7092ff; } -.search-add .popover .popover-footer button.filter:hover { +.add-feature .popover .popover-footer button.filter:hover { color: #333; } -.search-add .popover .popover-footer button.filter.active:hover { +.add-feature .popover .popover-footer button.filter.active:hover { color: #597be7; } -.search-add .popover::-webkit-scrollbar { +.add-feature .popover::-webkit-scrollbar { /* don't overlap rounded corners */ background: transparent; } -.search-add .popover .list { +.add-feature .popover .list { height: 100%; } -.search-add .list-item > .row { +.add-feature .list-item > .row { display: flex; position: relative; padding: 2px; } -.search-add .list-item:not(:last-of-type) .row, -.search-add .subsection.subitems .list-item .row, -.search-add .subsection > .tag-reference-body { +.add-feature .list-item:not(:last-of-type) .row, +.add-feature .subsection.subitems .list-item .row, +.add-feature .subsection > .tag-reference-body { border-bottom: 1px solid #DCDCDC; } -.search-add .list-item .label { +.add-feature .list-item .label { font-weight: bold; font-size: 12px; padding-left: 2px; @@ -706,23 +706,23 @@ button.add-note svg.icon { line-height: 1.3em; width: 100%; } -.search-add .list-item .label .namepart:nth-child(2) { +.add-feature .list-item .label .namepart:nth-child(2) { font-weight: normal; } -.search-add .list-item.disabled .preset-icon-container, -.search-add .list-item.disabled .label { +.add-feature .list-item.disabled .preset-icon-container, +.add-feature .list-item.disabled .label { opacity: 0.55; } -[dir='ltr'] .search-add .list-item .label .icon.inline { +[dir='ltr'] .add-feature .list-item .label .icon.inline { margin-left: 0; } -[dir='rtl'] .search-add .list-item .label .icon.inline { +[dir='rtl'] .add-feature .list-item .label .icon.inline { margin-right: 0; } -.search-add .list-item .row > *:not(button) { +.add-feature .list-item .row > *:not(button) { pointer-events: none; } -.search-add .list-item button.choose { +.add-feature .list-item button.choose { position: absolute; border-radius: 0; height: 100%; @@ -730,24 +730,24 @@ button.add-note svg.icon { top: 0; left: 0; } -.search-add .list-item button.choose:hover, -.search-add .list-item button.choose:focus { +.add-feature .list-item button.choose:hover, +.add-feature .list-item button.choose:focus { background: #fff; } -.search-add .list-item.focused:not(.disabled) button.choose { +.add-feature .list-item.focused:not(.disabled) button.choose { background: #e8ebff; } -.search-add .list-item button.choose.disabled { +.add-feature .list-item button.choose.disabled { background-color: #ececec; } -.search-add .subsection .list-item button.choose { +.add-feature .subsection .list-item button.choose { opacity: 0.85; } -.search-add .subsection .tag-reference-body { +.add-feature .subsection .tag-reference-body { background: rgba(255, 255, 255, 0.85); padding: 10px; } -.search-add .list-item button.accessory { +.add-feature .list-item button.accessory { position: relative; flex: 0 0 auto; color: #808080; @@ -755,19 +755,19 @@ button.add-note svg.icon { padding-right: 3px; padding-left: 3px; } -.search-add .list-item button.accessory:hover { +.add-feature .list-item button.accessory:hover { color: #666; } -.search-add .list-item button.tag-reference-open path { +.add-feature .list-item button.tag-reference-open path { fill: #000; } -.search-add .subsection { +.add-feature .subsection { background-color: #CBCBCB; } -[dir='ltr'] .search-add .subitems { +[dir='ltr'] .add-feature .subitems { padding-left: 6px; } -[dir='rtl'] .search-add .subitems { +[dir='rtl'] .add-feature .subitems { padding-right: 6px; } diff --git a/modules/ui/tools/search_add.js b/modules/ui/tools/add_feature.js similarity index 97% rename from modules/ui/tools/search_add.js rename to modules/ui/tools/add_feature.js index b616d10ecf..f864b57cce 100644 --- a/modules/ui/tools/search_add.js +++ b/modules/ui/tools/add_feature.js @@ -18,10 +18,10 @@ import { uiPresetIcon } from '../preset_icon'; import { utilKeybinding, utilNoAuto, utilRebind } from '../../util'; -export function uiToolSearchAdd(context) { +export function uiToolAddFeature(context) { var tool = { - id: 'search_add', + id: 'add_feature', label: t('toolbar.add_feature') }; @@ -82,7 +82,7 @@ export function uiToolSearchAdd(context) { }) .on('click', function() { if (button.classed('disabled')) return; - + if (popover.classed('hide')) { popover.classed('hide', false); search.node().focus(); @@ -174,7 +174,7 @@ export function uiToolSearchAdd(context) { }); context.features() - .on('change.search-add', updateForFeatureHiddenState); + .on('change.add-feature-tool', updateForFeatureHiddenState); context.keybinding().on(key, function() { popover.classed('hide', false); @@ -187,8 +187,8 @@ export function uiToolSearchAdd(context) { var debouncedUpdate = _debounce(updateEnabledState, 500, { leading: true, trailing: true }); context.map() - .on('move.search-add', debouncedUpdate) - .on('drawn.search-add', debouncedUpdate); + .on('move.add-feature-tool', debouncedUpdate) + .on('drawn.add-feature-tool', debouncedUpdate); updateEnabledState(); @@ -199,11 +199,11 @@ export function uiToolSearchAdd(context) { context.keybinding().off(key); context.features() - .on('change.search-add', null); + .on('change.add-feature-tool', null); context.map() - .on('move.search-add', null) - .on('drawn.search-add', null); + .on('move.add-feature-tool', null) + .on('drawn.add-feature-tool', null); }; function osmEditable() { @@ -484,7 +484,7 @@ export function uiToolSearchAdd(context) { function updateForFeatureHiddenState() { - var listItem = d3_selectAll('.search-add .popover .list-item'); + var listItem = d3_selectAll('.add-feature .popover .list-item'); // remove existing tooltips listItem.selectAll('button.choose').call(tooltip().destroyAny); diff --git a/modules/ui/tools/index.js b/modules/ui/tools/index.js index 02a442140b..d788003a49 100644 --- a/modules/ui/tools/index.js +++ b/modules/ui/tools/index.js @@ -3,6 +3,6 @@ export * from './add_recent'; export * from './notes'; export * from './operation'; export * from './save'; -export * from './search_add'; +export * from './add_feature'; export * from './sidebar_toggle'; export * from './undo_redo'; diff --git a/modules/ui/top_toolbar.js b/modules/ui/top_toolbar.js index dc95e67623..3e2acb2551 100644 --- a/modules/ui/top_toolbar.js +++ b/modules/ui/top_toolbar.js @@ -4,14 +4,14 @@ import { } from 'd3-selection'; import _debounce from 'lodash-es/debounce'; -import { uiToolAddFavorite, uiToolAddRecent, uiToolNotes, uiToolOperation, uiToolSave, uiToolSearchAdd, uiToolSidebarToggle, uiToolUndoRedo } from './tools'; +import { uiToolAddFavorite, uiToolAddRecent, uiToolNotes, uiToolOperation, uiToolSave, uiToolAddFeature, uiToolSidebarToggle, uiToolUndoRedo } from './tools'; import { uiToolDeselect } from './tools/deselect'; export function uiTopToolbar(context) { var sidebarToggle = uiToolSidebarToggle(context), deselect = uiToolDeselect(context), - searchAdd = uiToolSearchAdd(context), + addFeature = uiToolAddFeature(context), addFavorite = uiToolAddFavorite(context), addRecent = uiToolAddRecent(context), notes = uiToolNotes(context), @@ -69,18 +69,18 @@ export function uiTopToolbar(context) { } if (operationTools.length > 0) { tools = tools.concat(operationTools); - tools.push('spacer'); } if (deleteTool) { - // give the delete button its own space + // keep the delete button apart from the others + tools.push('spacer-half'); tools.push(deleteTool); - tools.push('spacer'); } + tools.push('spacer'); } else { tools.push(sidebarToggle); tools.push('spacer'); - tools.push(searchAdd); + tools.push(addFeature); if (context.presets().getFavorites().length > 0) { tools.push(addFavorite); @@ -93,7 +93,7 @@ export function uiTopToolbar(context) { tools.push('spacer'); if (notesEnabled()) { - tools = tools.concat([notes, 'spacer-flex']); + tools = tools.concat([notes, 'spacer']); } } tools = tools.concat([undoRedo, save]); From 9eee5e9dd7609007eea158ed8f60a47641c55830 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 28 May 2019 16:45:30 -0400 Subject: [PATCH 010/774] Hide unneeded toolbar items and show Cancel or Finish items when drawing (close #5960) --- data/core.yaml | 1 + dist/locales/en.json | 3 ++- modules/modes/draw_area.js | 5 ++++ modules/modes/draw_line.js | 6 +++++ modules/ui/tools/deselect.js | 38 -------------------------- modules/ui/tools/simple_button.js | 31 +++++++++++++++++++++ modules/ui/top_toolbar.js | 45 ++++++++++++++++++++++++++----- 7 files changed, 83 insertions(+), 46 deletions(-) delete mode 100644 modules/ui/tools/deselect.js create mode 100644 modules/ui/tools/simple_button.js diff --git a/data/core.yaml b/data/core.yaml index c54dfe6d54..5d9547063b 100644 --- a/data/core.yaml +++ b/data/core.yaml @@ -16,6 +16,7 @@ en: recent: Recent favorites: Favorites add_feature: Add Feature + finish: Finish modes: add_feature: search_placeholder: Search feature types diff --git a/dist/locales/en.json b/dist/locales/en.json index f2ef2db2b2..7c3abd21aa 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -18,7 +18,8 @@ "undo_redo": "Undo / Redo", "recent": "Recent", "favorites": "Favorites", - "add_feature": "Add Feature" + "add_feature": "Add Feature", + "finish": "Finish" }, "modes": { "add_feature": { diff --git a/modules/modes/draw_area.js b/modules/modes/draw_area.js index 2f061b900b..bf389e6f40 100644 --- a/modules/modes/draw_area.js +++ b/modules/modes/draw_area.js @@ -50,5 +50,10 @@ export function modeDrawArea(context, wayID, startGraph, baselineGraph, button) }; + mode.finish = function() { + behavior.finish(); + }; + + return mode; } diff --git a/modules/modes/draw_line.js b/modules/modes/draw_line.js index 1d8d2ba009..9f09c80d6c 100644 --- a/modules/modes/draw_line.js +++ b/modules/modes/draw_line.js @@ -49,5 +49,11 @@ export function modeDrawLine(context, wayID, startGraph, baselineGraph, button, return (behavior && behavior.activeID()) || []; }; + + mode.finish = function() { + behavior.finish(); + }; + + return mode; } diff --git a/modules/ui/tools/deselect.js b/modules/ui/tools/deselect.js deleted file mode 100644 index 3b7ac827e7..0000000000 --- a/modules/ui/tools/deselect.js +++ /dev/null @@ -1,38 +0,0 @@ -import { - event as d3_event, -} from 'd3-selection'; - -import { modeBrowse } from '../../modes/browse'; -import { svgIcon } from '../../svg'; -import { uiTooltipHtml } from '../tooltipHtml'; -import { t } from '../../util/locale'; -import { tooltip } from '../../util/tooltip'; - -export function uiToolDeselect(context) { - - var tool = { - id: 'deselect', - label: t('toolbar.deselect.title') - }; - - tool.render = function(selection) { - - var tooltipBehavior = tooltip() - .placement('bottom') - .html(true) - .title(uiTooltipHtml(null, 'Esc')); - - selection - .append('button') - .attr('class', 'bar-button') - .attr('tabindex', -1) - .call(tooltipBehavior) - .on('click', function() { - d3_event.stopPropagation(); - context.enter(modeBrowse(context)); - }) - .call(svgIcon('#iD-icon-close')); - }; - - return tool; -} diff --git a/modules/ui/tools/simple_button.js b/modules/ui/tools/simple_button.js new file mode 100644 index 0000000000..ffa82a884c --- /dev/null +++ b/modules/ui/tools/simple_button.js @@ -0,0 +1,31 @@ +import { svgIcon } from '../../svg'; +import { uiTooltipHtml } from '../tooltipHtml'; +import { tooltip } from '../../util/tooltip'; + +export function uiToolSimpleButton(id, label, iconName, onClick, tooltipText, tooltipKey, klass) { + + var tool = { + id: id, + label: label + }; + + tool.render = function(selection) { + + if (!klass) klass = ''; + + var tooltipBehavior = tooltip() + .placement('bottom') + .html(true) + .title(uiTooltipHtml(tooltipText, tooltipKey)); + + selection + .append('button') + .attr('class', 'bar-button ' + klass) + .attr('tabindex', -1) + .call(tooltipBehavior) + .on('click', onClick) + .call(svgIcon('#' + iconName)); + }; + + return tool; +} diff --git a/modules/ui/top_toolbar.js b/modules/ui/top_toolbar.js index 3e2acb2551..45e0e8141f 100644 --- a/modules/ui/top_toolbar.js +++ b/modules/ui/top_toolbar.js @@ -2,21 +2,31 @@ import { select as d3_select } from 'd3-selection'; - +import { t } from '../util/locale'; +import { modeBrowse } from '../modes/browse'; import _debounce from 'lodash-es/debounce'; import { uiToolAddFavorite, uiToolAddRecent, uiToolNotes, uiToolOperation, uiToolSave, uiToolAddFeature, uiToolSidebarToggle, uiToolUndoRedo } from './tools'; -import { uiToolDeselect } from './tools/deselect'; +import { uiToolSimpleButton } from './tools/simple_button'; export function uiTopToolbar(context) { var sidebarToggle = uiToolSidebarToggle(context), - deselect = uiToolDeselect(context), addFeature = uiToolAddFeature(context), addFavorite = uiToolAddFavorite(context), addRecent = uiToolAddRecent(context), notes = uiToolNotes(context), undoRedo = uiToolUndoRedo(context), - save = uiToolSave(context); + save = uiToolSave(context), + deselect = uiToolSimpleButton('deselect', t('toolbar.deselect.title'), 'iD-icon-close', function() { + context.enter(modeBrowse(context)); + }, null, 'Esc'), + cancelDrawing = uiToolSimpleButton('cancel', t('confirm.cancel'), 'iD-icon-close', function() { + context.enter(modeBrowse(context)); + }, null, 'Esc', 'wide'), + finishDrawing = uiToolSimpleButton('finish', t('toolbar.finish'), 'iD-icon-apply', function() { + var mode = context.mode(); + if (mode.finish) mode.finish(); + }, null, 'Esc', 'wide'); var supportedOperationIDs = ['circularize', 'downgrade', 'delete', 'disconnect', 'merge', 'orthogonalize', 'split', 'straighten']; @@ -42,8 +52,9 @@ export function uiTopToolbar(context) { var tools = []; var mode = context.mode(); - if (mode && - mode.id === 'select' && + if (!mode) return tools; + + if (mode.id === 'select' && !mode.newFeature() && mode.selectedIDs().every(function(id) { return context.graph().hasEntity(id); })) { @@ -76,6 +87,26 @@ export function uiTopToolbar(context) { tools.push(deleteTool); } tools.push('spacer'); + + tools = tools.concat([undoRedo, save]); + + } else if (mode.id === 'add-point' || mode.id === 'add-line' || mode.id === 'add-area') { + tools.push(sidebarToggle); + tools.push('spacer'); + + tools.push(cancelDrawing); + } else if (mode.id === 'draw-line' || mode.id === 'draw-area') { + tools.push(sidebarToggle); + tools.push('spacer'); + + tools.push(undoRedo); + + var way = context.hasEntity(mode.wayID); + if (way && new Set(way.nodes).size - 1 >= (way.isArea() ? 3 : 2)) { + tools.push(finishDrawing); + } else { + tools.push(cancelDrawing); + } } else { tools.push(sidebarToggle); tools.push('spacer'); @@ -95,8 +126,8 @@ export function uiTopToolbar(context) { if (notesEnabled()) { tools = tools.concat([notes, 'spacer']); } + tools = tools.concat([undoRedo, save]); } - tools = tools.concat([undoRedo, save]); return tools; } From da81fb33f151631f973ebc0c59b7bb8683db0ae6 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 29 May 2019 08:24:27 -0400 Subject: [PATCH 011/774] Fix issue where map cursors could be incorrect (close #6450, close #6452) --- modules/core/context.js | 2 ++ modules/ui/tools/add_favorite.js | 8 -------- modules/ui/tools/add_recent.js | 8 -------- modules/ui/tools/notes.js | 8 -------- 4 files changed, 2 insertions(+), 24 deletions(-) diff --git a/modules/core/context.js b/modules/core/context.js index b8149ccabc..87909d0066 100644 --- a/modules/core/context.js +++ b/modules/core/context.js @@ -261,11 +261,13 @@ export function coreContext() { context.enter = function(newMode) { if (mode) { mode.exit(); + container.classed('mode-' + mode.id, false); dispatch.call('exit', this, mode); } mode = newMode; mode.enter(); + container.classed('mode-' + newMode.id, true); dispatch.call('enter', this, mode); }; diff --git a/modules/ui/tools/add_favorite.js b/modules/ui/tools/add_favorite.js index c921bc7f63..36ae39c76b 100644 --- a/modules/ui/tools/add_favorite.js +++ b/modules/ui/tools/add_favorite.js @@ -46,14 +46,6 @@ export function uiToolAddFavorite(context) { .on('enter.editor.favorite', function(entered) { selection.selectAll('button.add-button') .classed('active', function(mode) { return entered.button === mode.button; }); - context.container() - .classed('mode-' + entered.id, true); - }); - - context - .on('exit.editor.favorite', function(exited) { - context.container() - .classed('mode-' + exited.id, false); }); var debouncedUpdate = _debounce(update, 500, { leading: true, trailing: true }); diff --git a/modules/ui/tools/add_recent.js b/modules/ui/tools/add_recent.js index 9db1803c81..fe7e845b03 100644 --- a/modules/ui/tools/add_recent.js +++ b/modules/ui/tools/add_recent.js @@ -85,14 +85,6 @@ export function uiToolAddRecent(context) { .on('enter.editor.recent', function(entered) { selection.selectAll('button.add-button') .classed('active', function(mode) { return entered.button === mode.button; }); - context.container() - .classed('mode-' + entered.id, true); - }); - - context - .on('exit.editor.recent', function(exited) { - context.container() - .classed('mode-' + exited.id, false); }); var debouncedUpdate = _debounce(update, 500, { leading: true, trailing: true }); diff --git a/modules/ui/tools/notes.js b/modules/ui/tools/notes.js index eec016e76b..9edcb70a9a 100644 --- a/modules/ui/tools/notes.js +++ b/modules/ui/tools/notes.js @@ -51,14 +51,6 @@ export function uiToolNotes(context) { .on('enter.editor.notes', function(entered) { selection.selectAll('button.add-button') .classed('active', function(mode) { return entered.button === mode.button; }); - context.container() - .classed('mode-' + entered.id, true); - }); - - context - .on('exit.editor.notes', function(exited) { - context.container() - .classed('mode-' + exited.id, false); }); From 4210435ba751c33b643c55678a2a371d7ed53d9a Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 29 May 2019 11:53:50 -0400 Subject: [PATCH 012/774] Enable way segments toolbar item and basic orthogonal drawing support (close #6453) --- css/80_app.css | 4 ++ data/core.yaml | 2 + dist/locales/en.json | 5 +- modules/behavior/draw_way.js | 54 +++++++++++++++++++ modules/ui/tools/add_favorite.js | 2 +- modules/ui/tools/add_recent.js | 2 +- modules/ui/tools/operation.js | 4 +- modules/ui/tools/way_segments.js | 61 ++++++++++++++++++++++ modules/ui/top_toolbar.js | 36 +++++++++---- svg/iD-sprite/tools/segment-orthogonal.svg | 4 ++ svg/iD-sprite/tools/segment-straight.svg | 4 ++ 11 files changed, 162 insertions(+), 16 deletions(-) create mode 100644 modules/ui/tools/way_segments.js create mode 100644 svg/iD-sprite/tools/segment-orthogonal.svg create mode 100644 svg/iD-sprite/tools/segment-straight.svg diff --git a/css/80_app.css b/css/80_app.css index 95d754667f..6592c03f87 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -370,6 +370,10 @@ button[disabled].action:hover { width: 20px; height: 20px; } +.icon-30 { + width: 30px; + height: 30px; +} .icon.inline { vertical-align: text-top; diff --git a/data/core.yaml b/data/core.yaml index 5d9547063b..b4f7b529ac 100644 --- a/data/core.yaml +++ b/data/core.yaml @@ -17,6 +17,8 @@ en: favorites: Favorites add_feature: Add Feature finish: Finish + segments: + title: Segments modes: add_feature: search_placeholder: Search feature types diff --git a/dist/locales/en.json b/dist/locales/en.json index 7c3abd21aa..c45e72f291 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -19,7 +19,10 @@ "recent": "Recent", "favorites": "Favorites", "add_feature": "Add Feature", - "finish": "Finish" + "finish": "Finish", + "segments": { + "title": "Segments" + } }, "modes": { "add_feature": { diff --git a/modules/behavior/draw_way.js b/modules/behavior/draw_way.js index abe786b7d7..0f4c37d1c6 100644 --- a/modules/behavior/draw_way.js +++ b/modules/behavior/draw_way.js @@ -94,6 +94,11 @@ export function behaviorDrawWay(context, wayID, index, mode, startGraph, baselin if (choice) { loc = choice.loc; } + } else { + if (context.storage('line-segments') === 'orthogonal') { + var orthoLoc = orthogonalLoc(loc); + if (orthoLoc) loc = orthoLoc; + } } context.replace(actionMoveNode(end.id, loc)); @@ -101,6 +106,55 @@ export function behaviorDrawWay(context, wayID, index, mode, startGraph, baselin checkGeometry(false); } + function orthogonalLoc(mouseLoc) { + var way = context.hasEntity(wayID); + if (!way) return null; + + if (way.nodes.length - 1 < (way.isArea() ? 3 : 2)) return null; + + var baselineNodeIndex = way.isClosed() ? way.nodes.length - 3 : way.nodes.length - 2; + var node1 = context.hasEntity(way.nodes[baselineNodeIndex - 1]); + var node2 = context.hasEntity(way.nodes[baselineNodeIndex]); + + if (!node1 || !node2 || + node1.loc === node2.loc) return null; + + var projection = context.projection; + + var pA = projection(node1.loc), + pB = projection(node2.loc), + p3 = projection(mouseLoc); + + var xA = pA[0], + yA = pA[1], + xB = pB[0], + yB = pB[1], + x3 = p3[0], + y3 = p3[1]; + + var x1 = xB, + y1 = yB, + x2 = xB + 1, + y2; + + if (xA === xB) { + y2 = y1; + } else { + var slope = (yB-yA)/(xB-xA); + var perpSlope = -1/slope; + var b = yB - perpSlope*xB; + y2 = perpSlope * x2 + b; + } + + var k = ((y2-y1) * (x3-x1) - (x2-x1) * (y3-y1)) / (Math.pow(y2-y1, 2) + Math.pow(x2-x1, 2)); + var x4 = x3 - k * (y2-y1); + var y4 = y3 + k * (x2-x1); + + if (!isFinite(x4) || !isFinite(y4)) return null; + + return projection.invert([x4, y4]); + } + // Check whether this edit causes the geometry to break. // If so, class the surface with a nope cursor. diff --git a/modules/ui/tools/add_favorite.js b/modules/ui/tools/add_favorite.js index 36ae39c76b..3c7638039d 100644 --- a/modules/ui/tools/add_favorite.js +++ b/modules/ui/tools/add_favorite.js @@ -14,7 +14,7 @@ export function uiToolAddFavorite(context) { var tool = { id: 'add_favorite', - klass: 'modes', + itemClass: 'modes', label: t('toolbar.favorites') }; diff --git a/modules/ui/tools/add_recent.js b/modules/ui/tools/add_recent.js index fe7e845b03..555110116a 100644 --- a/modules/ui/tools/add_recent.js +++ b/modules/ui/tools/add_recent.js @@ -14,7 +14,7 @@ export function uiToolAddRecent(context) { var tool = { id: 'add_recent', - klass: 'modes', + itemClass: 'modes', label: t('toolbar.recent') }; diff --git a/modules/ui/tools/operation.js b/modules/ui/tools/operation.js index 833093f578..51ce6ba8d3 100644 --- a/modules/ui/tools/operation.js +++ b/modules/ui/tools/operation.js @@ -11,7 +11,7 @@ export function uiToolOperation() { var operation; var tool = { - klass: 'operation' + itemClass: 'operation' }; var button, tooltipBehavior; @@ -44,7 +44,7 @@ export function uiToolOperation() { tool.update = function() { if (!operation) return; - + if (tooltipBehavior) { tooltipBehavior.title(uiTooltipHtml(operation.tooltip(), operation.keys[0])); } diff --git a/modules/ui/tools/way_segments.js b/modules/ui/tools/way_segments.js new file mode 100644 index 0000000000..f69b438736 --- /dev/null +++ b/modules/ui/tools/way_segments.js @@ -0,0 +1,61 @@ +import { + select as d3_select +} from 'd3-selection'; + +import { svgIcon } from '../../svg'; +import { t } from '../../util/locale'; + +export function uiToolWaySegments(context) { + + var tool = { + id: 'way_segments', + contentClass: 'joined', + label: t('toolbar.segments.title') + }; + + tool.render = function(selection) { + + var waySegmentTypes = [ + { + id: 'straight' + }, + { + id: 'orthogonal' + } + ]; + + var buttons = selection.selectAll('.bar-button') + .data(waySegmentTypes) + .enter(); + + buttons + .append('button') + .attr('class', function(d) { + var segmentType = context.storage('line-segments') || 'straight'; + return 'bar-button ' + (segmentType === d.id ? 'active' : ''); + }) + .attr('tabindex', -1) + .on('click', function(d) { + if (d3_select(this).classed('active')) return; + + context.storage('line-segments', d.id); + + selection.selectAll('.bar-button') + .classed('active', false); + d3_select(this).classed('active', true); + }) + .each(function(d) { + d3_select(this).call(svgIcon('#iD-segment-' + d.id, 'icon-30')); + }); + }; + + tool.update = function() { + + }; + + tool.uninstall = function() { + + }; + + return tool; +} diff --git a/modules/ui/top_toolbar.js b/modules/ui/top_toolbar.js index 45e0e8141f..d3d189585e 100644 --- a/modules/ui/top_toolbar.js +++ b/modules/ui/top_toolbar.js @@ -7,6 +7,7 @@ import { modeBrowse } from '../modes/browse'; import _debounce from 'lodash-es/debounce'; import { uiToolAddFavorite, uiToolAddRecent, uiToolNotes, uiToolOperation, uiToolSave, uiToolAddFeature, uiToolSidebarToggle, uiToolUndoRedo } from './tools'; import { uiToolSimpleButton } from './tools/simple_button'; +import { uiToolWaySegments } from './tools/way_segments'; export function uiTopToolbar(context) { @@ -17,6 +18,7 @@ export function uiTopToolbar(context) { notes = uiToolNotes(context), undoRedo = uiToolUndoRedo(context), save = uiToolSave(context), + waySegments = uiToolWaySegments(context), deselect = uiToolSimpleButton('deselect', t('toolbar.deselect.title'), 'iD-icon-close', function() { context.enter(modeBrowse(context)); }, null, 'Esc'), @@ -90,23 +92,31 @@ export function uiTopToolbar(context) { tools = tools.concat([undoRedo, save]); - } else if (mode.id === 'add-point' || mode.id === 'add-line' || mode.id === 'add-area') { - tools.push(sidebarToggle); - tools.push('spacer'); + } else if (mode.id === 'add-point' || mode.id === 'add-line' || mode.id === 'add-area' || + mode.id === 'draw-line' || mode.id === 'draw-area') { - tools.push(cancelDrawing); - } else if (mode.id === 'draw-line' || mode.id === 'draw-area') { tools.push(sidebarToggle); tools.push('spacer'); - tools.push(undoRedo); + if (mode.id.indexOf('line') !== -1 || mode.id.indexOf('area') !== -1) { + tools.push(waySegments); + tools.push('spacer'); + } + + if (mode.id.indexOf('draw') !== -1) { + + tools.push(undoRedo); - var way = context.hasEntity(mode.wayID); - if (way && new Set(way.nodes).size - 1 >= (way.isArea() ? 3 : 2)) { - tools.push(finishDrawing); + var way = context.hasEntity(mode.wayID); + if (way && new Set(way.nodes).size - 1 >= (way.isArea() ? 3 : 2)) { + tools.push(finishDrawing); + } else { + tools.push(cancelDrawing); + } } else { tools.push(cancelDrawing); } + } else { tools.push(sidebarToggle); tools.push('spacer'); @@ -174,7 +184,7 @@ export function uiTopToolbar(context) { .append('div') .attr('class', function(d) { var classes = 'toolbar-item ' + (d.id || d).replace('_', '-'); - if (d.klass) classes += ' ' + d.klass; + if (d.itemClass) classes += ' ' + d.itemClass; return classes; }); @@ -182,7 +192,11 @@ export function uiTopToolbar(context) { actionableItems .append('div') - .attr('class', 'item-content') + .attr('class', function(d) { + var classes = 'item-content'; + if (d.contentClass) classes += ' ' + d.contentClass; + return classes; + }) .each(function(d) { d3_select(this).call(d.render, bar); }); diff --git a/svg/iD-sprite/tools/segment-orthogonal.svg b/svg/iD-sprite/tools/segment-orthogonal.svg new file mode 100644 index 0000000000..be09c724b3 --- /dev/null +++ b/svg/iD-sprite/tools/segment-orthogonal.svg @@ -0,0 +1,4 @@ + + + + diff --git a/svg/iD-sprite/tools/segment-straight.svg b/svg/iD-sprite/tools/segment-straight.svg new file mode 100644 index 0000000000..e63457b32d --- /dev/null +++ b/svg/iD-sprite/tools/segment-straight.svg @@ -0,0 +1,4 @@ + + + + From 9a29587f0ae3db706bf6092d6d3acca746ff5957 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 29 May 2019 15:51:48 -0400 Subject: [PATCH 013/774] Add tooltips and keyboard shortcut for drawing segment toggle (re: #6453) --- data/core.yaml | 5 +++ dist/locales/en.json | 9 +++++- modules/ui/tools/way_segments.js | 52 +++++++++++++++++++++++--------- 3 files changed, 51 insertions(+), 15 deletions(-) diff --git a/data/core.yaml b/data/core.yaml index b4f7b529ac..aeb4c78f9f 100644 --- a/data/core.yaml +++ b/data/core.yaml @@ -19,6 +19,11 @@ en: finish: Finish segments: title: Segments + straight: + title: Straight + orthogonal: + title: Rectangular + shortcut: A modes: add_feature: search_placeholder: Search feature types diff --git a/dist/locales/en.json b/dist/locales/en.json index c45e72f291..b91e2e4e3f 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -21,7 +21,14 @@ "add_feature": "Add Feature", "finish": "Finish", "segments": { - "title": "Segments" + "title": "Segments", + "straight": { + "title": "Straight" + }, + "orthogonal": { + "title": "Rectangular" + }, + "shortcut": "A" } }, "modes": { diff --git a/modules/ui/tools/way_segments.js b/modules/ui/tools/way_segments.js index f69b438736..2ff161ff1d 100644 --- a/modules/ui/tools/way_segments.js +++ b/modules/ui/tools/way_segments.js @@ -1,18 +1,35 @@ import { - select as d3_select + select as d3_select, + selectAll as d3_selectAll, } from 'd3-selection'; -import { svgIcon } from '../../svg'; +import { svgIcon } from '../../svg/icon'; import { t } from '../../util/locale'; +import { uiTooltipHtml } from '../tooltipHtml'; +import { tooltip } from '../../util/tooltip'; export function uiToolWaySegments(context) { + var key = t('toolbar.segments.shortcut'); + var tool = { id: 'way_segments', contentClass: 'joined', label: t('toolbar.segments.title') }; + function storedSegmentType() { + return context.storage('line-segments') || 'straight'; + } + + function setStoredSegmentType(type) { + context.storage('line-segments', type); + + d3_selectAll('.way-segments .bar-button.active') + .classed('active', false); + d3_selectAll('.way-segments .bar-button.' + type).classed('active', true); + } + tool.render = function(selection) { var waySegmentTypes = [ @@ -31,30 +48,37 @@ export function uiToolWaySegments(context) { buttons .append('button') .attr('class', function(d) { - var segmentType = context.storage('line-segments') || 'straight'; - return 'bar-button ' + (segmentType === d.id ? 'active' : ''); + return 'bar-button ' + d.id + ' ' + (storedSegmentType() === d.id ? 'active' : ''); }) .attr('tabindex', -1) .on('click', function(d) { if (d3_select(this).classed('active')) return; - context.storage('line-segments', d.id); - - selection.selectAll('.bar-button') - .classed('active', false); - d3_select(this).classed('active', true); + setStoredSegmentType(d.id); }) .each(function(d) { - d3_select(this).call(svgIcon('#iD-segment-' + d.id, 'icon-30')); - }); - }; + var tooltipBehavior = tooltip() + .placement('bottom') + .html(true) + .title(uiTooltipHtml(t('toolbar.segments.' + d.id + '.title'), key)); - tool.update = function() { + d3_select(this) + .call(tooltipBehavior) + .call(svgIcon('#iD-segment-' + d.id, 'icon-30')); + }); + context.keybinding() + .on(key, toggleMode, true); }; - tool.uninstall = function() { + function toggleMode() { + var type = storedSegmentType() === 'orthogonal' ? 'straight' : 'orthogonal'; + setStoredSegmentType(type); + } + tool.uninstall = function() { + context.keybinding() + .off(key, true); }; return tool; From 7556c13b782aaa5fad3b2f349649b581d4ef418c Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 29 May 2019 16:04:59 -0400 Subject: [PATCH 014/774] Fix orthogonal segments when continuing a line from its start --- modules/behavior/draw_way.js | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/modules/behavior/draw_way.js b/modules/behavior/draw_way.js index 0f4c37d1c6..6925d8e80c 100644 --- a/modules/behavior/draw_way.js +++ b/modules/behavior/draw_way.js @@ -112,9 +112,16 @@ export function behaviorDrawWay(context, wayID, index, mode, startGraph, baselin if (way.nodes.length - 1 < (way.isArea() ? 3 : 2)) return null; - var baselineNodeIndex = way.isClosed() ? way.nodes.length - 3 : way.nodes.length - 2; - var node1 = context.hasEntity(way.nodes[baselineNodeIndex - 1]); - var node2 = context.hasEntity(way.nodes[baselineNodeIndex]); + var node1, node2; + if (way.last() === end.id) { + var baselineNodeIndex = way.isClosed() ? way.nodes.length - 3 : way.nodes.length - 2; + node1 = context.hasEntity(way.nodes[baselineNodeIndex - 1]); + node2 = context.hasEntity(way.nodes[baselineNodeIndex]); + } else { + node1 = context.hasEntity(way.nodes[2]); + node2 = context.hasEntity(way.nodes[1]); + } + if (!node1 || !node2 || node1.loc === node2.loc) return null; From fc6f92460887442a0ee9875dce10515465430619 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 29 May 2019 16:17:08 -0400 Subject: [PATCH 015/774] Include the Extract and Continue operations in the top toolbar --- modules/ui/top_toolbar.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ui/top_toolbar.js b/modules/ui/top_toolbar.js index d3d189585e..a4ee507e9d 100644 --- a/modules/ui/top_toolbar.js +++ b/modules/ui/top_toolbar.js @@ -30,7 +30,7 @@ export function uiTopToolbar(context) { if (mode.finish) mode.finish(); }, null, 'Esc', 'wide'); - var supportedOperationIDs = ['circularize', 'downgrade', 'delete', 'disconnect', 'merge', 'orthogonalize', 'split', 'straighten']; + var supportedOperationIDs = ['circularize', 'continue', 'delete', 'disconnect', 'downgrade', 'extract', 'merge', 'orthogonalize', 'split', 'straighten']; var operationToolsByID = {}; From f8d0053d1d1b59ba1ee7264439436ac3a1082f42 Mon Sep 17 00:00:00 2001 From: BjornRasmussen Date: Wed, 29 May 2019 23:25:21 -0400 Subject: [PATCH 016/774] Adds more search terms to presets that have been annoyingly hard for me to find in the past. --- data/presets/presets/amenity/animal_shelter.json | 3 ++- data/presets/presets/amenity/bench.json | 3 ++- data/presets/presets/amenity/bicycle_rental.json | 8 +++++++- data/presets/presets/amenity/bicycle_repair_station.json | 5 ++++- data/presets/presets/amenity/clock.json | 3 +++ data/presets/presets/amenity/parking.json | 3 ++- data/presets/presets/amenity/prison.json | 3 ++- data/presets/presets/highway/cycleway/bicycle_foot.json | 3 ++- 8 files changed, 24 insertions(+), 7 deletions(-) diff --git a/data/presets/presets/amenity/animal_shelter.json b/data/presets/presets/amenity/animal_shelter.json index 66c35de47a..f514b66d7d 100644 --- a/data/presets/presets/amenity/animal_shelter.json +++ b/data/presets/presets/amenity/animal_shelter.json @@ -32,7 +32,8 @@ "raptor", "reptile", "rescue", - "spca" + "spca", + "pound" ], "tags": { "amenity": "animal_shelter" diff --git a/data/presets/presets/amenity/bench.json b/data/presets/presets/amenity/bench.json index f41127a3ad..cd5b22f827 100644 --- a/data/presets/presets/amenity/bench.json +++ b/data/presets/presets/amenity/bench.json @@ -17,7 +17,8 @@ "line" ], "terms": [ - "seat" + "seat", + "chair" ], "tags": { "amenity": "bench" diff --git a/data/presets/presets/amenity/bicycle_rental.json b/data/presets/presets/amenity/bicycle_rental.json index 4b0768ef5e..22a2935129 100644 --- a/data/presets/presets/amenity/bicycle_rental.json +++ b/data/presets/presets/amenity/bicycle_rental.json @@ -23,7 +23,13 @@ "area" ], "terms": [ - "bike" + "bike", + "bicycle", + "bikeshare", + "bike share", + "bicycle share", + "hub", + "dock" ], "tags": { "amenity": "bicycle_rental" diff --git a/data/presets/presets/amenity/bicycle_repair_station.json b/data/presets/presets/amenity/bicycle_repair_station.json index a9ad27fc4b..8789f55abc 100644 --- a/data/presets/presets/amenity/bicycle_repair_station.json +++ b/data/presets/presets/amenity/bicycle_repair_station.json @@ -19,7 +19,10 @@ "bike", "repair", "chain", - "pump" + "pump", + "tools", + "stand", + "multitool" ], "tags": { "amenity": "bicycle_repair_station" diff --git a/data/presets/presets/amenity/clock.json b/data/presets/presets/amenity/clock.json index 12fed263e2..310d5c079d 100644 --- a/data/presets/presets/amenity/clock.json +++ b/data/presets/presets/amenity/clock.json @@ -16,6 +16,9 @@ "point", "vertex" ], + "terms":[ + "time" + ], "tags": { "amenity": "clock" }, diff --git a/data/presets/presets/amenity/parking.json b/data/presets/presets/amenity/parking.json index a69f63d2bf..cc184be334 100644 --- a/data/presets/presets/amenity/parking.json +++ b/data/presets/presets/amenity/parking.json @@ -38,7 +38,8 @@ "car parking", "rv parking", "truck parking", - "vehicle parking" + "vehicle parking", + "garage" ], "name": "Parking Lot" } diff --git a/data/presets/presets/amenity/prison.json b/data/presets/presets/amenity/prison.json index 0ea39afb58..be3f87e118 100644 --- a/data/presets/presets/amenity/prison.json +++ b/data/presets/presets/amenity/prison.json @@ -18,7 +18,8 @@ ], "terms": [ "cell", - "jail" + "jail", + "correction" ], "tags": { "amenity": "prison" diff --git a/data/presets/presets/highway/cycleway/bicycle_foot.json b/data/presets/presets/highway/cycleway/bicycle_foot.json index 28ccb4f1bb..d787c03b28 100644 --- a/data/presets/presets/highway/cycleway/bicycle_foot.json +++ b/data/presets/presets/highway/cycleway/bicycle_foot.json @@ -19,7 +19,8 @@ "greenway", "mixed-use trail", "multi-use trail", - "segregated trail" + "segregated trail", + "rail trail" ], "matchScore": 0.95, "name": "Cycle & Foot Path" From d9363c1b20d38f19d2111b75abe3724867b0a650 Mon Sep 17 00:00:00 2001 From: BjornRasmussen Date: Thu, 30 May 2019 00:15:57 -0400 Subject: [PATCH 017/774] Remove the search term "garage" (which I added previously) from parking preset - a parking garage preset that inherits from this one already exists. --- data/presets.yaml | 13 +++++++------ data/presets/presets.json | 14 +++++++------- data/presets/presets/amenity/parking.json | 3 +-- dist/locales/en.json | 14 +++++++------- 4 files changed, 22 insertions(+), 22 deletions(-) diff --git a/data/presets.yaml b/data/presets.yaml index 07ea79a9ee..46e5a47f90 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -2425,7 +2425,7 @@ en: amenity/animal_shelter: # amenity=animal_shelter name: Animal Shelter - # 'terms: adoption,aspca,cat,dog,horse,kitten,pet care,pet rescue,puppy,raptor,reptile,rescue,spca' + # 'terms: adoption,aspca,cat,dog,horse,kitten,pet care,pet rescue,puppy,raptor,reptile,rescue,spca,pound' terms: '' amenity/arts_centre: # amenity=arts_centre @@ -2459,7 +2459,7 @@ en: amenity/bench: # amenity=bench name: Bench - # 'terms: seat' + # 'terms: seat,chair' terms: '' amenity/bicycle_parking: # amenity=bicycle_parking @@ -2484,12 +2484,12 @@ en: amenity/bicycle_rental: # amenity=bicycle_rental name: Bicycle Rental - # 'terms: bike' + # 'terms: bike,bicycle,bikeshare,bike share,bicycle share,hub,dock' terms: '' amenity/bicycle_repair_station: # amenity=bicycle_repair_station name: Bicycle Repair Tool Stand - # 'terms: bike,repair,chain,pump' + # 'terms: bike,repair,chain,pump,tools,stand,multitool' terms: '' amenity/biergarten: # amenity=biergarten @@ -2566,6 +2566,7 @@ en: amenity/clock: # amenity=clock name: Clock + # 'terms: time' terms: '' amenity/clock/sundial: # 'amenity=clock, display=sundial' @@ -2914,7 +2915,7 @@ en: amenity/prison: # amenity=prison name: Prison Grounds - # 'terms: cell,jail' + # 'terms: cell,jail,correction' terms: '' amenity/pub: # amenity=pub @@ -4292,7 +4293,7 @@ en: highway/cycleway/bicycle_foot: # 'highway=cycleway, foot=designated' name: Cycle & Foot Path - # 'terms: bicycle and foot path,bike and pedestrian path,green way,greenway,mixed-use trail,multi-use trail,segregated trail' + # 'terms: bicycle and foot path,bike and pedestrian path,green way,greenway,mixed-use trail,multi-use trail,segregated trail,rail trail' terms: '' highway/cycleway/crossing: # cycleway=crossing diff --git a/data/presets/presets.json b/data/presets/presets.json index 0b3c3527af..83b302fb96 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -60,20 +60,20 @@ "amenity/swimming_pool": {"icon": "fas-swimmer", "geometry": ["point", "vertex", "area"], "tags": {"amenity": "swimming_pool"}, "reference": {"key": "leisure", "value": "swimming_pool"}, "name": "Swimming Pool", "searchable": false}, "amenity/animal_boarding": {"icon": "maki-veterinary", "fields": ["name", "operator", "address", "building_area", "opening_hours", "animal_boarding"], "moreFields": ["payment_multi", "website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "terms": ["boarding", "cat", "cattery", "dog", "horse", "kennel", "kitten", "pet", "pet boarding", "pet care", "pet hotel", "puppy", "reptile"], "tags": {"amenity": "animal_boarding"}, "name": "Animal Boarding Facility"}, "amenity/animal_breeding": {"icon": "maki-veterinary", "fields": ["name", "operator", "address", "building_area", "opening_hours", "animal_breeding"], "moreFields": ["website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "terms": ["breeding", "bull", "cat", "cow", "dog", "horse", "husbandry", "kitten", "livestock", "pet breeding", "puppy", "reptile"], "tags": {"amenity": "animal_breeding"}, "name": "Animal Breeding Facility"}, - "amenity/animal_shelter": {"icon": "maki-veterinary", "fields": ["name", "operator", "address", "building_area", "opening_hours", "animal_shelter"], "moreFields": ["website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "terms": ["adoption", "aspca", "cat", "dog", "horse", "kitten", "pet care", "pet rescue", "puppy", "raptor", "reptile", "rescue", "spca"], "tags": {"amenity": "animal_shelter"}, "name": "Animal Shelter"}, + "amenity/animal_shelter": {"icon": "maki-veterinary", "fields": ["name", "operator", "address", "building_area", "opening_hours", "animal_shelter"], "moreFields": ["website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "terms": ["adoption", "aspca", "cat", "dog", "horse", "kitten", "pet care", "pet rescue", "puppy", "raptor", "reptile", "rescue", "spca", "pound"], "tags": {"amenity": "animal_shelter"}, "name": "Animal Shelter"}, "amenity/arts_centre": {"icon": "maki-theatre", "fields": ["name", "address", "building_area", "opening_hours", "website"], "moreFields": ["email", "fax", "fee", "internet_access", "internet_access/fee", "internet_access/ssid", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": [], "tags": {"amenity": "arts_centre"}, "name": "Arts Center"}, "amenity/atm": {"icon": "maki-bank", "fields": ["operator", "network", "cash_in", "currency_multi", "drive_through"], "moreFields": ["brand", "covered", "indoor", "lit", "name", "opening_hours", "wheelchair"], "geometry": ["point", "vertex"], "terms": ["money", "cash", "machine"], "tags": {"amenity": "atm"}, "name": "ATM"}, "amenity/bank": {"icon": "maki-bank", "fields": ["name", "operator", "address", "building_area", "atm", "drive_through"], "moreFields": ["air_conditioning", "currency_multi", "email", "fax", "internet_access", "internet_access/fee", "internet_access/ssid", "opening_hours", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["credit union", "check", "deposit", "fund", "investment", "repository", "reserve", "safe", "savings", "stock", "treasury", "trust", "vault"], "tags": {"amenity": "bank"}, "name": "Bank"}, "amenity/bar": {"icon": "maki-bar", "fields": ["name", "address", "building_area", "outdoor_seating", "brewery"], "moreFields": ["air_conditioning", "email", "fax", "internet_access", "internet_access/fee", "internet_access/ssid", "microbrewery", "opening_hours", "payment_multi", "phone", "smoking", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["dive", "beer", "bier", "booze"], "tags": {"amenity": "bar"}, "name": "Bar"}, "amenity/bar/lgbtq": {"icon": "maki-bar", "geometry": ["point", "area"], "terms": ["gay bar", "lesbian bar", "lgbtq bar", "lgbt bar", "lgb bar"], "tags": {"amenity": "bar", "lgbtq": "primary"}, "name": "LGBTQ+ Bar"}, "amenity/bbq": {"icon": "maki-bbq", "fields": ["covered", "fuel", "access_simple"], "moreFields": ["lit"], "geometry": ["point"], "terms": ["bbq", "grill"], "tags": {"amenity": "bbq"}, "name": "Barbecue/Grill"}, - "amenity/bench": {"icon": "temaki-bench", "fields": ["backrest", "material", "seats", "colour"], "moreFields": ["access_simple", "inscription", "lit"], "geometry": ["point", "vertex", "line"], "terms": ["seat"], "tags": {"amenity": "bench"}, "name": "Bench"}, + "amenity/bench": {"icon": "temaki-bench", "fields": ["backrest", "material", "seats", "colour"], "moreFields": ["access_simple", "inscription", "lit"], "geometry": ["point", "vertex", "line"], "terms": ["seat", "chair"], "tags": {"amenity": "bench"}, "name": "Bench"}, "amenity/bicycle_parking": {"icon": "maki-bicycle", "fields": ["bicycle_parking", "capacity", "operator", "covered", "access_simple", "fee", "payment_multi_fee"], "moreFields": ["lit"], "geometry": ["point", "vertex", "area"], "terms": ["bike"], "tags": {"amenity": "bicycle_parking"}, "name": "Bicycle Parking"}, "amenity/bicycle_parking/building": {"icon": "maki-bicycle", "fields": ["{amenity/bicycle_parking}", "opening_hours", "building_area"], "geometry": ["point", "vertex", "area"], "tags": {"amenity": "bicycle_parking", "bicycle_parking": "building"}, "reference": {"key": "bicycle_parking"}, "terms": ["Multi-Storey Bicycle Park", "Multi-Storey Bike Park", "Bike Parking Station"], "name": "Bicycle Parking Garage"}, "amenity/bicycle_parking/lockers": {"icon": "maki-bicycle", "geometry": ["point", "vertex", "area"], "tags": {"amenity": "bicycle_parking", "bicycle_parking": "lockers"}, "reference": {"key": "bicycle_parking"}, "terms": ["Bike Lockers"], "name": "Bicycle Lockers"}, "amenity/bicycle_parking/shed": {"icon": "maki-bicycle", "fields": ["{amenity/bicycle_parking}", "building_area"], "geometry": ["point", "vertex", "area"], "tags": {"amenity": "bicycle_parking", "bicycle_parking": "shed"}, "reference": {"key": "bicycle_parking"}, "terms": ["Bike Shed"], "name": "Bicycle Shed"}, - "amenity/bicycle_rental": {"icon": "maki-bicycle", "fields": ["capacity", "network", "operator", "fee", "payment_multi_fee"], "moreFields": ["opening_hours", "address", "website", "phone", "email", "fax", "wheelchair", "covered"], "geometry": ["point", "vertex", "area"], "terms": ["bike"], "tags": {"amenity": "bicycle_rental"}, "name": "Bicycle Rental"}, - "amenity/bicycle_repair_station": {"icon": "maki-bicycle", "fields": ["operator", "brand", "opening_hours", "fee", "service/bicycle"], "moreFields": ["payment_multi_fee", "covered"], "geometry": ["point", "vertex"], "terms": ["bike", "repair", "chain", "pump"], "tags": {"amenity": "bicycle_repair_station"}, "name": "Bicycle Repair Tool Stand"}, + "amenity/bicycle_rental": {"icon": "maki-bicycle", "fields": ["capacity", "network", "operator", "fee", "payment_multi_fee"], "moreFields": ["opening_hours", "address", "website", "phone", "email", "fax", "wheelchair", "covered"], "geometry": ["point", "vertex", "area"], "terms": ["bike", "bicycle", "bikeshare", "bike share", "bicycle share", "hub", "dock"], "tags": {"amenity": "bicycle_rental"}, "name": "Bicycle Rental"}, + "amenity/bicycle_repair_station": {"icon": "maki-bicycle", "fields": ["operator", "brand", "opening_hours", "fee", "service/bicycle"], "moreFields": ["payment_multi_fee", "covered"], "geometry": ["point", "vertex"], "terms": ["bike", "repair", "chain", "pump", "tools", "stand", "multitool"], "tags": {"amenity": "bicycle_repair_station"}, "name": "Bicycle Repair Tool Stand"}, "amenity/biergarten": {"icon": "fas-beer", "fields": ["name", "address", "building", "outdoor_seating", "brewery"], "moreFields": ["{amenity/bar}"], "geometry": ["point", "area"], "tags": {"amenity": "biergarten"}, "terms": ["beer", "bier", "booze"], "name": "Biergarten"}, "amenity/boat_rental": {"icon": "temaki-boating", "fields": ["name", "operator", "fee", "payment_multi_fee"], "moreFields": ["address", "website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "boat_rental"}, "name": "Boat Rental"}, "amenity/bureau_de_change": {"icon": "maki-bank", "fields": ["name", "operator", "payment_multi", "currency_multi", "address", "building_area"], "moreFields": ["opening_hours", "website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "terms": ["bureau de change", "money changer"], "tags": {"amenity": "bureau_de_change"}, "name": "Currency Exchange"}, @@ -89,7 +89,7 @@ "amenity/clinic": {"icon": "maki-doctor", "fields": ["name", "operator", "healthcare/speciality", "address", "building_area", "opening_hours"], "moreFields": ["air_conditioning", "payment_multi", "website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "terms": ["medical", "urgentcare"], "tags": {"amenity": "clinic"}, "addTags": {"amenity": "clinic", "healthcare": "clinic"}, "reference": {"key": "amenity", "value": "clinic"}, "name": "Clinic"}, "amenity/clinic/abortion": {"icon": "maki-hospital", "fields": ["name", "operator", "healthcare/speciality", "address", "building_area", "opening_hours"], "geometry": ["point", "area"], "terms": [], "tags": {"amenity": "clinic", "healthcare": "clinic", "healthcare:speciality": "abortion"}, "reference": {"key": "amenity", "value": "clinic"}, "name": "Abortion Clinic"}, "amenity/clinic/fertility": {"icon": "maki-hospital", "fields": ["name", "operator", "healthcare/speciality", "address", "building_area", "opening_hours"], "geometry": ["point", "area"], "terms": ["egg", "fertility", "reproductive", "sperm", "ovulation"], "tags": {"amenity": "clinic", "healthcare": "clinic", "healthcare:speciality": "fertility"}, "reference": {"key": "amenity", "value": "clinic"}, "name": "Fertility Clinic"}, - "amenity/clock": {"icon": "temaki-clock", "fields": ["name", "support", "display", "visibility", "date", "faces"], "moreFields": ["indoor", "lit"], "geometry": ["point", "vertex"], "tags": {"amenity": "clock"}, "name": "Clock"}, + "amenity/clock": {"icon": "temaki-clock", "fields": ["name", "support", "display", "visibility", "date", "faces"], "moreFields": ["indoor", "lit"], "geometry": ["point", "vertex"], "terms": ["time"], "tags": {"amenity": "clock"}, "name": "Clock"}, "amenity/clock/sundial": {"icon": "temaki-clock", "fields": ["name", "support", "visibility", "inscription"], "moreFields": [], "geometry": ["point", "vertex"], "terms": ["gnomon", "shadow"], "tags": {"amenity": "clock", "display": "sundial"}, "reference": {"key": "display", "value": "sundial"}, "name": "Sundial"}, "amenity/college": {"icon": "maki-college", "fields": ["name", "operator", "address", "website", "internet_access", "internet_access/fee"], "moreFields": ["religion", "denomination", "internet_access/ssid", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "terms": ["university", "undergraduate school"], "tags": {"amenity": "college"}, "name": "College Grounds"}, "amenity/community_centre": {"icon": "maki-town-hall", "fields": ["name", "operator", "address", "building_area"], "moreFields": ["air_conditioning", "website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "terms": ["event", "hall"], "tags": {"amenity": "community_centre"}, "name": "Community Center"}, @@ -159,7 +159,7 @@ "amenity/post_box": {"icon": "temaki-post_box", "fields": ["operator", "collection_times", "drive_through", "ref"], "moreFields": ["wheelchair"], "geometry": ["point", "vertex"], "tags": {"amenity": "post_box"}, "terms": ["letter", "post"], "name": "Mailbox"}, "amenity/post_office": {"icon": "maki-post", "fields": ["name", "operator", "address", "building_area", "opening_hours"], "moreFields": ["email", "fax", "internet_access", "internet_access/fee", "internet_access/ssid", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["letter", "mail"], "tags": {"amenity": "post_office"}, "name": "Post Office"}, "amenity/prep_school": {"icon": "temaki-school", "fields": ["name", "operator", "address", "building_area", "opening_hours"], "moreFields": ["payment_multi", "website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "terms": ["academic", "ACT", "SAT", "homework", "math", "reading", "test prep", "tutoring", "writing"], "tags": {"amenity": "prep_school"}, "name": "Test Prep / Tutoring School"}, - "amenity/prison": {"icon": "maki-prison", "fields": ["name", "operator", "address"], "moreFields": ["website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "terms": ["cell", "jail"], "tags": {"amenity": "prison"}, "name": "Prison Grounds"}, + "amenity/prison": {"icon": "maki-prison", "fields": ["name", "operator", "address"], "moreFields": ["website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "terms": ["cell", "jail", "correction"], "tags": {"amenity": "prison"}, "name": "Prison Grounds"}, "amenity/pub": {"icon": "maki-beer", "fields": ["name", "address", "building_area", "opening_hours", "smoking", "brewery"], "moreFields": ["air_conditioning", "diet_multi", "email", "fax", "internet_access", "internet_access/fee", "internet_access/ssid", "microbrewery", "outdoor_seating", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "pub"}, "terms": ["alcohol", "drink", "dive", "beer", "bier", "booze"], "name": "Pub"}, "amenity/pub/lgbtq": {"icon": "maki-beer", "geometry": ["point", "area"], "tags": {"amenity": "pub", "lgbtq": "primary"}, "terms": ["gay pub", "lesbian pub", "lgbtq pub", "lgbt pub", "lgb pub"], "name": "LGBTQ+ Pub"}, "amenity/pub/microbrewery": {"icon": "maki-beer", "geometry": ["point", "area"], "tags": {"amenity": "pub", "microbrewery": "yes"}, "reference": {"key": "microbrewery"}, "terms": ["alcohol", "drink", "dive", "beer", "bier", "booze", "craft brewery", "microbrewery", "small batch brewery"], "name": "Brewpub"}, @@ -460,7 +460,7 @@ "highway/crossing/unmarked": {"icon": "temaki-pedestrian", "fields": ["crossing", "tactile_paving"], "geometry": ["vertex"], "tags": {"crossing": "unmarked"}, "addTags": {"highway": "crossing", "crossing": "unmarked"}, "reference": {"key": "crossing", "value": "unmarked"}, "terms": [], "name": "Unmarked Crossing"}, "highway/cycleway": {"icon": "maki-bicycle", "fields": ["name", "oneway", "surface", "width", "structure", "access", "incline"], "moreFields": ["covered", "dog", "lit", "maxspeed", "maxweight_bridge", "smoothness", "wheelchair"], "geometry": ["line"], "tags": {"highway": "cycleway"}, "terms": ["bike path", "bicyle path"], "matchScore": 0.9, "name": "Cycle Path"}, "highway/cycleway/crossing": {"icon": "maki-bicycle", "fields": ["crossing", "access", "surface", "tactile_paving"], "geometry": ["line"], "tags": {"cycleway": "crossing"}, "addTags": {"highway": "cycleway", "cycleway": "crossing"}, "reference": {"key": "cycleway", "value": "crossing"}, "searchable": false, "matchScore": 0.95, "name": "Cycle Crossing"}, - "highway/cycleway/bicycle_foot": {"icon": "maki-bicycle", "geometry": ["line"], "tags": {"highway": "cycleway", "foot": "designated"}, "addTags": {"highway": "cycleway", "foot": "designated", "bicycle": "designated"}, "terms": ["bicycle and foot path", "bike and pedestrian path", "green way", "greenway", "mixed-use trail", "multi-use trail", "segregated trail"], "matchScore": 0.95, "name": "Cycle & Foot Path"}, + "highway/cycleway/bicycle_foot": {"icon": "maki-bicycle", "geometry": ["line"], "tags": {"highway": "cycleway", "foot": "designated"}, "addTags": {"highway": "cycleway", "foot": "designated", "bicycle": "designated"}, "terms": ["bicycle and foot path", "bike and pedestrian path", "green way", "greenway", "mixed-use trail", "multi-use trail", "segregated trail", "rail trail"], "matchScore": 0.95, "name": "Cycle & Foot Path"}, "highway/cycleway/crossing/marked": {"icon": "maki-bicycle", "fields": ["crossing", "access", "surface", "tactile_paving"], "geometry": ["line"], "tags": {"cycleway": "crossing", "crossing": "marked"}, "addTags": {"highway": "cycleway", "cycleway": "crossing", "crossing": "marked"}, "reference": {"key": "cycleway", "value": "crossing"}, "terms": ["cycle crosswalk", "cycle path crossing", "cycleway crossing", "bicycle crossing", "bike crossing"], "name": "Marked Cycle Crossing"}, "highway/cycleway/crossing/unmarked": {"icon": "maki-bicycle", "fields": ["crossing", "access", "surface", "tactile_paving"], "geometry": ["line"], "tags": {"cycleway": "crossing", "crossing": "unmarked"}, "addTags": {"highway": "cycleway", "cycleway": "crossing", "crossing": "unmarked"}, "reference": {"key": "cycleway", "value": "crossing"}, "terms": ["cycle path crossing", "cycleway crossing", "bicycle crossing", "bike crossing"], "name": "Unmarked Cycle Crossing"}, "highway/elevator": {"icon": "temaki-elevator", "fields": ["access_simple", "opening_hours", "maxweight", "ref", "wheelchair"], "moreFields": ["maxheight"], "geometry": ["vertex"], "tags": {"highway": "elevator"}, "terms": ["lift"], "name": "Elevator"}, diff --git a/data/presets/presets/amenity/parking.json b/data/presets/presets/amenity/parking.json index cc184be334..a69f63d2bf 100644 --- a/data/presets/presets/amenity/parking.json +++ b/data/presets/presets/amenity/parking.json @@ -38,8 +38,7 @@ "car parking", "rv parking", "truck parking", - "vehicle parking", - "garage" + "vehicle parking" ], "name": "Parking Lot" } diff --git a/dist/locales/en.json b/dist/locales/en.json index b91e2e4e3f..435af15ad3 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -4559,7 +4559,7 @@ }, "amenity/animal_shelter": { "name": "Animal Shelter", - "terms": "adoption,aspca,cat,dog,horse,kitten,pet care,pet rescue,puppy,raptor,reptile,rescue,spca" + "terms": "adoption,aspca,cat,dog,horse,kitten,pet care,pet rescue,puppy,raptor,reptile,rescue,spca,pound" }, "amenity/arts_centre": { "name": "Arts Center", @@ -4587,7 +4587,7 @@ }, "amenity/bench": { "name": "Bench", - "terms": "seat" + "terms": "seat,chair" }, "amenity/bicycle_parking": { "name": "Bicycle Parking", @@ -4607,11 +4607,11 @@ }, "amenity/bicycle_rental": { "name": "Bicycle Rental", - "terms": "bike" + "terms": "bike,bicycle,bikeshare,bike share,bicycle share,hub,dock" }, "amenity/bicycle_repair_station": { "name": "Bicycle Repair Tool Stand", - "terms": "bike,repair,chain,pump" + "terms": "bike,repair,chain,pump,tools,stand,multitool" }, "amenity/biergarten": { "name": "Biergarten", @@ -4675,7 +4675,7 @@ }, "amenity/clock": { "name": "Clock", - "terms": "" + "terms": "time" }, "amenity/clock/sundial": { "name": "Sundial", @@ -4955,7 +4955,7 @@ }, "amenity/prison": { "name": "Prison Grounds", - "terms": "cell,jail" + "terms": "cell,jail,correction" }, "amenity/pub": { "name": "Pub", @@ -6159,7 +6159,7 @@ }, "highway/cycleway/bicycle_foot": { "name": "Cycle & Foot Path", - "terms": "bicycle and foot path,bike and pedestrian path,green way,greenway,mixed-use trail,multi-use trail,segregated trail" + "terms": "bicycle and foot path,bike and pedestrian path,green way,greenway,mixed-use trail,multi-use trail,segregated trail,rail trail" }, "highway/cycleway/crossing/marked": { "name": "Marked Cycle Crossing", From a0a0de34f583aa545d6d5f4284ee16d5506bb17a Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Thu, 30 May 2019 08:20:45 -0400 Subject: [PATCH 018/774] Add derived data for prior merge --- data/taginfo.json | 1 + 1 file changed, 1 insertion(+) diff --git a/data/taginfo.json b/data/taginfo.json index 0df194178b..4597f0fd00 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -1849,6 +1849,7 @@ {"key": "leisure", "value": "beach", "description": "🄳 ➜ natural=beach"}, {"key": "leisure", "value": "club", "description": "🄳 ➜ club=*"}, {"key": "leisure", "value": "social_club", "description": "🄳 ➜ club=*"}, + {"key": "leisure", "value": "tanning_salon", "description": "🄳 ➜ shop=beauty + beauty=tanning"}, {"key": "leisure", "value": "video_arcade", "description": "🄳 ➜ leisure=amusement_arcade"}, {"key": "leisure", "value": "recreation_ground", "description": "🄳 ➜ landuse=recreation_ground"}, {"key": "man_made", "value": "cut_line", "description": "🄳 ➜ man_made=cutline"}, From 02a8fa626077c74e20879101a8885509a02b54b5 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Thu, 30 May 2019 10:18:58 -0400 Subject: [PATCH 019/774] Revert "Deprecate leisure/tanning_salon" This reverts commit a3e1f2af8a4226732cc5850c100eb90e174a544e. --- data/deprecated.json | 4 ---- 1 file changed, 4 deletions(-) diff --git a/data/deprecated.json b/data/deprecated.json index 0a745a7ffe..f1905cecc0 100644 --- a/data/deprecated.json +++ b/data/deprecated.json @@ -459,10 +459,6 @@ "old": {"leisure": "social_club"}, "replace": {"club": "*"} }, - { - "old": {"leisure": "tanning_salon"}, - "replace": {"shop": "beauty", "beauty": "tanning"} - }, { "old": {"leisure": "video_arcade"}, "replace": {"leisure": "amusement_arcade"} From 53888239e7bce82eb67cc15f9a99e6ab76f25c84 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Thu, 30 May 2019 10:19:07 -0400 Subject: [PATCH 020/774] Revert "Add derived data for prior merge" This reverts commit a0a0de34f583aa545d6d5f4284ee16d5506bb17a. --- data/taginfo.json | 1 - 1 file changed, 1 deletion(-) diff --git a/data/taginfo.json b/data/taginfo.json index 4597f0fd00..0df194178b 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -1849,7 +1849,6 @@ {"key": "leisure", "value": "beach", "description": "🄳 ➜ natural=beach"}, {"key": "leisure", "value": "club", "description": "🄳 ➜ club=*"}, {"key": "leisure", "value": "social_club", "description": "🄳 ➜ club=*"}, - {"key": "leisure", "value": "tanning_salon", "description": "🄳 ➜ shop=beauty + beauty=tanning"}, {"key": "leisure", "value": "video_arcade", "description": "🄳 ➜ leisure=amusement_arcade"}, {"key": "leisure", "value": "recreation_ground", "description": "🄳 ➜ landuse=recreation_ground"}, {"key": "man_made", "value": "cut_line", "description": "🄳 ➜ man_made=cutline"}, From 28371913155ca75a31e1b1c5548dd6f232cfb29a Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Thu, 30 May 2019 10:22:07 -0400 Subject: [PATCH 021/774] Use "key" instead of "shortcut" for segments hotkey id, for consistency --- data/core.yaml | 2 +- dist/locales/en.json | 2 +- modules/ui/tools/way_segments.js | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/data/core.yaml b/data/core.yaml index aeb4c78f9f..b69da97f09 100644 --- a/data/core.yaml +++ b/data/core.yaml @@ -23,7 +23,7 @@ en: title: Straight orthogonal: title: Rectangular - shortcut: A + key: A modes: add_feature: search_placeholder: Search feature types diff --git a/dist/locales/en.json b/dist/locales/en.json index 435af15ad3..f6815fae6a 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -28,7 +28,7 @@ "orthogonal": { "title": "Rectangular" }, - "shortcut": "A" + "key": "A" } }, "modes": { diff --git a/modules/ui/tools/way_segments.js b/modules/ui/tools/way_segments.js index 2ff161ff1d..974446ca47 100644 --- a/modules/ui/tools/way_segments.js +++ b/modules/ui/tools/way_segments.js @@ -10,7 +10,7 @@ import { tooltip } from '../../util/tooltip'; export function uiToolWaySegments(context) { - var key = t('toolbar.segments.shortcut'); + var key = t('toolbar.segments.key'); var tool = { id: 'way_segments', From 0fd6ebb97ca3b4c86f0e3b88a2fc3a38854bb5af Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Thu, 30 May 2019 11:52:21 -0400 Subject: [PATCH 022/774] Add "Repeat" toolbar item for adding multiple features of the same type sequentially (close #5874) --- data/core.yaml | 6 +++ dist/locales/en.json | 8 ++++ modules/behavior/draw_way.js | 3 +- modules/modes/add_area.js | 14 ++++-- modules/modes/add_line.js | 14 ++++-- modules/modes/add_point.js | 23 +++++----- modules/modes/draw_area.js | 15 ++++++- modules/modes/draw_line.js | 19 ++++++-- modules/operations/continue.js | 2 +- modules/ui/tools/operation.js | 2 +- modules/ui/tools/repeat_add.js | 57 ++++++++++++++++++++++++ modules/ui/tools/simple_button.js | 2 +- modules/ui/top_toolbar.js | 14 ++++-- modules/validations/disconnected_way.js | 2 +- modules/validations/impossible_oneway.js | 2 +- svg/iD-sprite/icons/icon-repeat.svg | 4 ++ 16 files changed, 153 insertions(+), 34 deletions(-) create mode 100644 modules/ui/tools/repeat_add.js create mode 100644 svg/iD-sprite/icons/icon-repeat.svg diff --git a/data/core.yaml b/data/core.yaml index b69da97f09..b3738f47e1 100644 --- a/data/core.yaml +++ b/data/core.yaml @@ -17,6 +17,12 @@ en: favorites: Favorites add_feature: Add Feature finish: Finish + repeat: + title: Repeat + tooltip: + point: "Add another {feature} after this one." + way: "Start another {feature} after finishing this one." + key: R segments: title: Segments straight: diff --git a/dist/locales/en.json b/dist/locales/en.json index f6815fae6a..9cf0a6ef03 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -20,6 +20,14 @@ "favorites": "Favorites", "add_feature": "Add Feature", "finish": "Finish", + "repeat": { + "title": "Repeat", + "tooltip": { + "point": "Add another {feature} after this one.", + "way": "Start another {feature} after finishing this one." + }, + "key": "R" + }, "segments": { "title": "Segments", "straight": { diff --git a/modules/behavior/draw_way.js b/modules/behavior/draw_way.js index 6925d8e80c..e256d7d34c 100644 --- a/modules/behavior/draw_way.js +++ b/modules/behavior/draw_way.js @@ -411,8 +411,7 @@ export function behaviorDrawWay(context, wayID, index, mode, startGraph, baselin context.map().dblclickEnable(true); }, 1000); - var isNewFeature = !mode.isContinuing; - context.enter(modeSelect(context, [wayID]).newFeature(isNewFeature)); + mode.didFinishAdding(); }; diff --git a/modules/modes/add_area.js b/modules/modes/add_area.js index ca6da2ee1a..5b7cad0a31 100644 --- a/modules/modes/add_area.js +++ b/modules/modes/add_area.js @@ -40,7 +40,7 @@ export function modeAddArea(context, mode) { actionClose(way.id) ); - context.enter(modeDrawArea(context, way.id, startGraph, context.graph(), mode.button)); + enterDrawMode(way, startGraph); } @@ -57,7 +57,7 @@ export function modeAddArea(context, mode) { actionAddMidpoint({ loc: loc, edge: edge }, node) ); - context.enter(modeDrawArea(context, way.id, startGraph, context.graph(), mode.button)); + enterDrawMode(way, startGraph); } @@ -71,7 +71,15 @@ export function modeAddArea(context, mode) { actionClose(way.id) ); - context.enter(modeDrawArea(context, way.id, startGraph, context.graph(), mode.button)); + enterDrawMode(way, startGraph); + } + + + function enterDrawMode(way, startGraph) { + var drawMode = modeDrawArea(context, way.id, startGraph, context.graph(), mode.button, mode); + drawMode.repeatAddedFeature = mode.repeatAddedFeature; + drawMode.title = mode.title; + context.enter(drawMode); } diff --git a/modules/modes/add_line.js b/modules/modes/add_line.js index 2f44ad8cd8..ce256d5df7 100644 --- a/modules/modes/add_line.js +++ b/modules/modes/add_line.js @@ -32,7 +32,7 @@ export function modeAddLine(context, mode) { actionAddVertex(way.id, node.id) ); - context.enter(modeDrawLine(context, way.id, startGraph, context.graph(), mode.button)); + enterDrawMode(way, startGraph); } @@ -48,7 +48,7 @@ export function modeAddLine(context, mode) { actionAddMidpoint({ loc: loc, edge: edge }, node) ); - context.enter(modeDrawLine(context, way.id, startGraph, context.graph(), mode.button)); + enterDrawMode(way, startGraph); } @@ -61,7 +61,15 @@ export function modeAddLine(context, mode) { actionAddVertex(way.id, node.id) ); - context.enter(modeDrawLine(context, way.id, startGraph, context.graph(), mode.button)); + enterDrawMode(way, startGraph); + } + + + function enterDrawMode(way, startGraph) { + var drawMode = modeDrawLine(context, way.id, startGraph, context.graph(), mode.button, null, mode); + drawMode.repeatAddedFeature = mode.repeatAddedFeature; + drawMode.title = mode.title; + context.enter(drawMode); } diff --git a/modules/modes/add_point.js b/modules/modes/add_point.js index d2eb990612..756bb1cfc2 100644 --- a/modules/modes/add_point.js +++ b/modules/modes/add_point.js @@ -32,7 +32,7 @@ export function modeAddPoint(context, mode) { t('operations.add.annotation.point') ); - enterSelectMode(node); + didFinishAdding(node); } @@ -44,19 +44,12 @@ export function modeAddPoint(context, mode) { t('operations.add.annotation.vertex') ); - enterSelectMode(node); + didFinishAdding(node); } - function enterSelectMode(node) { - context.enter( - modeSelect(context, [node.id]).newFeature(true) - ); - } - - function addNode(node) { if (Object.keys(defaultTags).length === 0) { - enterSelectMode(node); + didFinishAdding(node); return; } @@ -70,7 +63,15 @@ export function modeAddPoint(context, mode) { t('operations.add.annotation.point') ); - enterSelectMode(node); + didFinishAdding(node); + } + + function didFinishAdding(node) { + if (!mode.repeatAddedFeature) { + context.enter( + modeSelect(context, [node.id]).newFeature(true) + ); + } } diff --git a/modules/modes/draw_area.js b/modules/modes/draw_area.js index bf389e6f40..fea9143a9a 100644 --- a/modules/modes/draw_area.js +++ b/modules/modes/draw_area.js @@ -1,8 +1,8 @@ import { t } from '../util/locale'; import { behaviorDrawWay } from '../behavior/draw_way'; +import { modeSelect } from './select'; - -export function modeDrawArea(context, wayID, startGraph, baselineGraph, button) { +export function modeDrawArea(context, wayID, startGraph, baselineGraph, button, addMode) { var mode = { button: button, id: 'draw-area' @@ -40,6 +40,17 @@ export function modeDrawArea(context, wayID, startGraph, baselineGraph, button) }; + mode.didFinishAdding = function() { + if (mode.repeatAddedFeature) { + addMode.repeatAddedFeature = mode.repeatAddedFeature; + context.enter(addMode); + } + else { + context.enter(modeSelect(context, [wayID]).newFeature(true)); + } + }; + + mode.selectedIDs = function() { return [wayID]; }; diff --git a/modules/modes/draw_line.js b/modules/modes/draw_line.js index 9f09c80d6c..70b31e96ca 100644 --- a/modules/modes/draw_line.js +++ b/modules/modes/draw_line.js @@ -1,8 +1,8 @@ import { t } from '../util/locale'; import { behaviorDrawWay } from '../behavior/draw_way'; +import { modeSelect } from './select'; - -export function modeDrawLine(context, wayID, startGraph, baselineGraph, button, affix, continuing) { +export function modeDrawLine(context, wayID, startGraph, baselineGraph, button, affix, addMode) { var mode = { button: button, id: 'draw-line' @@ -12,7 +12,7 @@ export function modeDrawLine(context, wayID, startGraph, baselineGraph, button, mode.wayID = wayID; - mode.isContinuing = continuing; + mode.isContinuing = !!affix; mode.enter = function() { var way = context.entity(wayID); @@ -39,6 +39,17 @@ export function modeDrawLine(context, wayID, startGraph, baselineGraph, button, context.uninstall(behavior); }; + + mode.didFinishAdding = function() { + if (mode.repeatAddedFeature) { + addMode.repeatAddedFeature = mode.repeatAddedFeature; + context.enter(addMode); + } + else { + context.enter(modeSelect(context, [wayID]).newFeature(!mode.isContinuing)); + } + }; + mode.selectedIDs = function() { return [wayID]; @@ -53,7 +64,7 @@ export function modeDrawLine(context, wayID, startGraph, baselineGraph, button, mode.finish = function() { behavior.finish(); }; - + return mode; } diff --git a/modules/operations/continue.js b/modules/operations/continue.js index b3a5c17f33..3bf2114944 100644 --- a/modules/operations/continue.js +++ b/modules/operations/continue.js @@ -27,7 +27,7 @@ export function operationContinue(selectedIDs, context) { var operation = function() { var candidate = candidateWays()[0]; context.enter( - modeDrawLine(context, candidate.id, context.graph(), context.graph(), 'line', candidate.affix(vertex.id), true) + modeDrawLine(context, candidate.id, context.graph(), context.graph(), 'line', candidate.affix(vertex.id)) ); }; diff --git a/modules/ui/tools/operation.js b/modules/ui/tools/operation.js index 51ce6ba8d3..1d36121062 100644 --- a/modules/ui/tools/operation.js +++ b/modules/ui/tools/operation.js @@ -2,7 +2,7 @@ import { event as d3_event, } from 'd3-selection'; -import { svgIcon } from '../../svg'; +import { svgIcon } from '../../svg/icon'; import { uiTooltipHtml } from '../tooltipHtml'; import { tooltip } from '../../util/tooltip'; diff --git a/modules/ui/tools/repeat_add.js b/modules/ui/tools/repeat_add.js new file mode 100644 index 0000000000..5ec1e66bf9 --- /dev/null +++ b/modules/ui/tools/repeat_add.js @@ -0,0 +1,57 @@ + +import { t } from '../../util/locale'; +import { svgIcon } from '../../svg/icon'; +import { uiTooltipHtml } from '../tooltipHtml'; +import { tooltip } from '../../util/tooltip'; + +export function uiToolRepeatAdd(context) { + + var key = t('toolbar.repeat.key'); + + var tool = { + id: 'repeat_add', + label: t('toolbar.repeat.title') + }; + + var button; + + tool.render = function(selection) { + + var mode = context.mode(); + var geom = mode.id.indexOf('point') !== -1 ? 'point' : 'way'; + + var tooltipBehavior = tooltip() + .placement('bottom') + .html(true) + .title(uiTooltipHtml(t('toolbar.repeat.tooltip.' + geom, { feature: '' + mode.title + '' }), key)); + + button = selection + .append('button') + .attr('class', 'bar-button wide') + .classed('active', mode.repeatAddedFeature) + .attr('tabindex', -1) + .call(tooltipBehavior) + .on('click', function() { + toggleRepeat(); + }) + .call(svgIcon('#iD-icon-repeat')); + + context.keybinding() + .on(key, toggleRepeat, true); + }; + + function toggleRepeat() { + var mode = context.mode(); + mode.repeatAddedFeature = !mode.repeatAddedFeature; + button.classed('active', mode.repeatAddedFeature); + } + + tool.uninstall = function() { + context.keybinding() + .off(key, true); + + button = null; + }; + + return tool; +} diff --git a/modules/ui/tools/simple_button.js b/modules/ui/tools/simple_button.js index ffa82a884c..c27b5c7837 100644 --- a/modules/ui/tools/simple_button.js +++ b/modules/ui/tools/simple_button.js @@ -1,4 +1,4 @@ -import { svgIcon } from '../../svg'; +import { svgIcon } from '../../svg/icon'; import { uiTooltipHtml } from '../tooltipHtml'; import { tooltip } from '../../util/tooltip'; diff --git a/modules/ui/top_toolbar.js b/modules/ui/top_toolbar.js index a4ee507e9d..8d6388bced 100644 --- a/modules/ui/top_toolbar.js +++ b/modules/ui/top_toolbar.js @@ -8,6 +8,7 @@ import _debounce from 'lodash-es/debounce'; import { uiToolAddFavorite, uiToolAddRecent, uiToolNotes, uiToolOperation, uiToolSave, uiToolAddFeature, uiToolSidebarToggle, uiToolUndoRedo } from './tools'; import { uiToolSimpleButton } from './tools/simple_button'; import { uiToolWaySegments } from './tools/way_segments'; +import { uiToolRepeatAdd } from './tools/repeat_add'; export function uiTopToolbar(context) { @@ -19,6 +20,7 @@ export function uiTopToolbar(context) { undoRedo = uiToolUndoRedo(context), save = uiToolSave(context), waySegments = uiToolWaySegments(context), + repeatAdd = uiToolRepeatAdd(context), deselect = uiToolSimpleButton('deselect', t('toolbar.deselect.title'), 'iD-icon-close', function() { context.enter(modeBrowse(context)); }, null, 'Esc'), @@ -80,12 +82,12 @@ export function uiTopToolbar(context) { deleteTool = tool; } } - if (operationTools.length > 0) { - tools = tools.concat(operationTools); - } + tools = tools.concat(operationTools); if (deleteTool) { // keep the delete button apart from the others - tools.push('spacer-half'); + if (operationTools.length > 0) { + tools.push('spacer-half'); + } tools.push(deleteTool); } tools.push('spacer'); @@ -106,6 +108,9 @@ export function uiTopToolbar(context) { if (mode.id.indexOf('draw') !== -1) { tools.push(undoRedo); + if (!mode.isContinuing) { + tools.push(repeatAdd); + } var way = context.hasEntity(mode.wayID); if (way && new Set(way.nodes).size - 1 >= (way.isArea() ? 3 : 2)) { @@ -114,6 +119,7 @@ export function uiTopToolbar(context) { tools.push(cancelDrawing); } } else { + tools.push(repeatAdd); tools.push(cancelDrawing); } diff --git a/modules/validations/disconnected_way.js b/modules/validations/disconnected_way.js index 5d064a80af..1a052a26c7 100644 --- a/modules/validations/disconnected_way.js +++ b/modules/validations/disconnected_way.js @@ -195,7 +195,7 @@ export function validationDisconnectedWay() { } context.enter( - modeDrawLine(context, way.id, context.graph(), context.graph(), 'line', way.affix(vertex.id), true) + modeDrawLine(context, way.id, context.graph(), context.graph(), 'line', way.affix(vertex.id)) ); } }; diff --git a/modules/validations/impossible_oneway.js b/modules/validations/impossible_oneway.js index 7d49ef87eb..7a8a1a8c41 100644 --- a/modules/validations/impossible_oneway.js +++ b/modules/validations/impossible_oneway.js @@ -37,7 +37,7 @@ export function validationImpossibleOneway() { } context.enter( - modeDrawLine(context, way.id, context.graph(), context.graph(), 'line', way.affix(vertex.id), true) + modeDrawLine(context, way.id, context.graph(), context.graph(), 'line', way.affix(vertex.id)) ); } diff --git a/svg/iD-sprite/icons/icon-repeat.svg b/svg/iD-sprite/icons/icon-repeat.svg new file mode 100644 index 0000000000..b208955d80 --- /dev/null +++ b/svg/iD-sprite/icons/icon-repeat.svg @@ -0,0 +1,4 @@ + + + + From 79806d70edbc4bf019d97e31b4d372071e7db898 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Thu, 30 May 2019 11:59:53 -0400 Subject: [PATCH 023/774] Fix issue with orthogonal area drawing --- modules/behavior/draw_way.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/behavior/draw_way.js b/modules/behavior/draw_way.js index e256d7d34c..6e32494d68 100644 --- a/modules/behavior/draw_way.js +++ b/modules/behavior/draw_way.js @@ -113,7 +113,7 @@ export function behaviorDrawWay(context, wayID, index, mode, startGraph, baselin if (way.nodes.length - 1 < (way.isArea() ? 3 : 2)) return null; var node1, node2; - if (way.last() === end.id) { + if (way.isArea() ? way.nodes[way.nodes.length - 2] === end.id : way.last() === end.id) { var baselineNodeIndex = way.isClosed() ? way.nodes.length - 3 : way.nodes.length - 2; node1 = context.hasEntity(way.nodes[baselineNodeIndex - 1]); node2 = context.hasEntity(way.nodes[baselineNodeIndex]); From 68d13556c0d896ce542d8462f7bd492fa23d1278 Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" Date: Thu, 30 May 2019 16:14:40 +0000 Subject: [PATCH 024/774] chore(package): update uglify-js to version 3.6.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index bb4b4cf382..4749ee8c16 100644 --- a/package.json +++ b/package.json @@ -96,7 +96,7 @@ "static-server": "^2.2.1", "svg-sprite": "1.5.0", "temaki": "1.5.0", - "uglify-js": "~3.5.10" + "uglify-js": "~3.6.0" }, "greenkeeper": { "label": "chore-greenkeeper", From 2eab0cbe955ceea74efbc728ba9ae0f02549bb7a Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Thu, 30 May 2019 12:23:11 -0400 Subject: [PATCH 025/774] Show the Finish button instead of the Cancel toolbar button after adding repeat features --- modules/modes/add_area.js | 2 ++ modules/modes/add_line.js | 2 ++ modules/modes/add_point.js | 5 ++++- modules/modes/draw_area.js | 1 + modules/modes/draw_line.js | 3 ++- modules/ui/top_toolbar.js | 17 ++++++++++++++--- 6 files changed, 25 insertions(+), 5 deletions(-) diff --git a/modules/modes/add_area.js b/modules/modes/add_area.js index 5b7cad0a31..4894ce474f 100644 --- a/modules/modes/add_area.js +++ b/modules/modes/add_area.js @@ -10,6 +10,7 @@ import { osmNode, osmWay } from '../osm'; export function modeAddArea(context, mode) { mode.id = 'add-area'; + mode.repeatCount = 0; var behavior = behaviorAddWay(context) .tail(t('modes.add_area.tail')) @@ -78,6 +79,7 @@ export function modeAddArea(context, mode) { function enterDrawMode(way, startGraph) { var drawMode = modeDrawArea(context, way.id, startGraph, context.graph(), mode.button, mode); drawMode.repeatAddedFeature = mode.repeatAddedFeature; + drawMode.repeatCount = mode.repeatCount; drawMode.title = mode.title; context.enter(drawMode); } diff --git a/modules/modes/add_line.js b/modules/modes/add_line.js index ce256d5df7..b354f3a665 100644 --- a/modules/modes/add_line.js +++ b/modules/modes/add_line.js @@ -10,6 +10,7 @@ import { osmNode, osmWay } from '../osm'; export function modeAddLine(context, mode) { mode.id = 'add-line'; + mode.repeatCount = 0; var behavior = behaviorAddWay(context) .tail(t('modes.add_line.tail')) @@ -68,6 +69,7 @@ export function modeAddLine(context, mode) { function enterDrawMode(way, startGraph) { var drawMode = modeDrawLine(context, way.id, startGraph, context.graph(), mode.button, null, mode); drawMode.repeatAddedFeature = mode.repeatAddedFeature; + drawMode.repeatCount = mode.repeatCount; drawMode.title = mode.title; context.enter(drawMode); } diff --git a/modules/modes/add_point.js b/modules/modes/add_point.js index 756bb1cfc2..406eb5d2c1 100644 --- a/modules/modes/add_point.js +++ b/modules/modes/add_point.js @@ -11,6 +11,7 @@ import { actionAddMidpoint } from '../actions/add_midpoint'; export function modeAddPoint(context, mode) { mode.id = 'add-point'; + mode.repeatCount = 0; var behavior = behaviorDraw(context) .tail(t('modes.add_point.tail')) @@ -67,7 +68,9 @@ export function modeAddPoint(context, mode) { } function didFinishAdding(node) { - if (!mode.repeatAddedFeature) { + if (mode.repeatAddedFeature) { + mode.repeatCount += 1; + } else { context.enter( modeSelect(context, [node.id]).newFeature(true) ); diff --git a/modules/modes/draw_area.js b/modules/modes/draw_area.js index fea9143a9a..7a284abf68 100644 --- a/modules/modes/draw_area.js +++ b/modules/modes/draw_area.js @@ -43,6 +43,7 @@ export function modeDrawArea(context, wayID, startGraph, baselineGraph, button, mode.didFinishAdding = function() { if (mode.repeatAddedFeature) { addMode.repeatAddedFeature = mode.repeatAddedFeature; + addMode.repeatCount += 1; context.enter(addMode); } else { diff --git a/modules/modes/draw_line.js b/modules/modes/draw_line.js index 70b31e96ca..9ab7f1a244 100644 --- a/modules/modes/draw_line.js +++ b/modules/modes/draw_line.js @@ -39,10 +39,11 @@ export function modeDrawLine(context, wayID, startGraph, baselineGraph, button, context.uninstall(behavior); }; - + mode.didFinishAdding = function() { if (mode.repeatAddedFeature) { addMode.repeatAddedFeature = mode.repeatAddedFeature; + addMode.repeatCount += 1; context.enter(addMode); } else { diff --git a/modules/ui/top_toolbar.js b/modules/ui/top_toolbar.js index 8d6388bced..1ff8b6a134 100644 --- a/modules/ui/top_toolbar.js +++ b/modules/ui/top_toolbar.js @@ -29,7 +29,11 @@ export function uiTopToolbar(context) { }, null, 'Esc', 'wide'), finishDrawing = uiToolSimpleButton('finish', t('toolbar.finish'), 'iD-icon-apply', function() { var mode = context.mode(); - if (mode.finish) mode.finish(); + if (mode.finish) { + mode.finish(); + } else { + context.enter(modeBrowse(context)); + } }, null, 'Esc', 'wide'); var supportedOperationIDs = ['circularize', 'continue', 'delete', 'disconnect', 'downgrade', 'extract', 'merge', 'orthogonalize', 'split', 'straighten']; @@ -113,14 +117,21 @@ export function uiTopToolbar(context) { } var way = context.hasEntity(mode.wayID); - if (way && new Set(way.nodes).size - 1 >= (way.isArea() ? 3 : 2)) { + var wayIsDegenerate = way && new Set(way.nodes).size - 1 < (way.isArea() ? 3 : 2); + if (!wayIsDegenerate) { tools.push(finishDrawing); } else { tools.push(cancelDrawing); } } else { + tools.push(repeatAdd); - tools.push(cancelDrawing); + + if (mode.repeatCount > 0) { + tools.push(finishDrawing); + } else { + tools.push(cancelDrawing); + } } } else { From ec29e50f511a14ca594b76be6a35a74072dc31c0 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Thu, 30 May 2019 13:36:39 -0400 Subject: [PATCH 026/774] Fix issue where the "add feature" popover would hide the footer on tall windows --- css/80_app.css | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/css/80_app.css b/css/80_app.css index 6592c03f87..f8c072af1c 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -266,7 +266,7 @@ button.hide, a.hide, ul.hide, li.hide { - display: none; + display: none !important; } .deemphasize { @@ -636,6 +636,9 @@ button.add-note svg.icon { left: auto; right: auto; z-index: 300; + overflow: hidden; + display: flex; + flex-direction: column; } [dir='ltr'] .add-feature .popover { left: 0; @@ -645,7 +648,6 @@ button.add-note svg.icon { } .add-feature .popover .popover-content { overflow-y: auto; - height: 100%; max-height: 60vh; } .add-feature .popover, @@ -661,6 +663,7 @@ button.add-note svg.icon { padding: 5px 10px 5px 10px; background: #f6f6f6; border-top: 1px solid #DCDCDC; + flex: 0 0 auto; display: flex; } .add-feature .popover .popover-footer .message { From 58b13ac107c305ac7389bb31f62d0d37a037e606 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Thu, 30 May 2019 13:48:17 -0400 Subject: [PATCH 027/774] Move Deselect toolbar button to be next to Undo/Redo --- modules/ui/top_toolbar.js | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/modules/ui/top_toolbar.js b/modules/ui/top_toolbar.js index 1ff8b6a134..8768cc104c 100644 --- a/modules/ui/top_toolbar.js +++ b/modules/ui/top_toolbar.js @@ -67,9 +67,6 @@ export function uiTopToolbar(context) { mode.selectedIDs().every(function(id) { return context.graph().hasEntity(id); })) { tools.push(sidebarToggle); - tools.push('spacer-half'); - - tools.push(deselect); tools.push('spacer'); var operationTools = []; @@ -96,7 +93,7 @@ export function uiTopToolbar(context) { } tools.push('spacer'); - tools = tools.concat([undoRedo, save]); + tools = tools.concat([deselect, undoRedo, save]); } else if (mode.id === 'add-point' || mode.id === 'add-line' || mode.id === 'add-area' || mode.id === 'draw-line' || mode.id === 'draw-area') { From ced2ae407910aca45110d3d86ad565635c12ef1f Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Thu, 30 May 2019 14:26:48 -0400 Subject: [PATCH 028/774] Fix issue where map panes wouldn't display --- modules/ui/init.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/ui/init.js b/modules/ui/init.js index 1e97522682..62e0591881 100644 --- a/modules/ui/init.js +++ b/modules/ui/init.js @@ -435,7 +435,7 @@ export function uiInit(context) { if (showPane) { shownPanes - .style('display', 'none') + .classed('hide', true) .style(side, '-500px'); d3_selectAll('.' + showPane.attr('pane') + '-control button') @@ -443,10 +443,10 @@ export function uiInit(context) { showPane .classed('shown', true) - .style('display', 'block'); + .classed('hide', false); if (shownPanes.empty()) { showPane - .style('display', 'block') + .classed('hide', false) .style(side, '-500px') .transition() .duration(200) @@ -457,13 +457,13 @@ export function uiInit(context) { } } else { shownPanes - .style('display', 'block') + .classed('hide', false) .style(side, '0px') .transition() .duration(200) .style(side, '-500px') .on('end', function() { - d3_select(this).style('display', 'none'); + d3_select(this).classed('hide', true); }); } }; From 64d308390b3bd7172457631dd2722a7f23ffc216 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Thu, 30 May 2019 14:39:28 -0400 Subject: [PATCH 029/774] Don't automatically uncollapse the sidebar when adding a new, tagged feature --- modules/ui/sidebar.js | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/modules/ui/sidebar.js b/modules/ui/sidebar.js index d8f5d9a84e..2f905dea11 100644 --- a/modules/ui/sidebar.js +++ b/modules/ui/sidebar.js @@ -211,12 +211,14 @@ export function uiSidebar(context) { if (id) { var entity = context.entity(id); - // uncollapse the sidebar - if (selection.classed('collapsed')) { - if (newFeature) { - var extent = entity.extent(context.graph()); - sidebar.expand(sidebar.intersects(extent)); - } + + // uncollapse the sidebar if adding a new, untagged feature + if (selection.classed('collapsed') && + newFeature && + context.presets().match(entity, context.graph()).isFallback()) { + + var extent = entity.extent(context.graph()); + sidebar.expand(sidebar.intersects(extent)); } featureListWrap From 987ac69bcee03f13c784acc8f3cf2dfeca347d57 Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" Date: Fri, 31 May 2019 09:14:06 +0000 Subject: [PATCH 030/774] chore(package): update rollup to version 1.13.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index bb4b4cf382..298aa81f08 100644 --- a/package.json +++ b/package.json @@ -82,7 +82,7 @@ "osm-community-index": "0.7.0", "phantomjs-prebuilt": "~2.1.11", "request": "^2.88.0", - "rollup": "~1.12.1", + "rollup": "~1.13.0", "rollup-plugin-commonjs": "^10.0.0", "rollup-plugin-includepaths": "~0.2.3", "rollup-plugin-json": "^4.0.0", From 18aef6c7b09947bdf7bb0be941ee1fe07e5e1769 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Fri, 31 May 2019 11:38:12 -0400 Subject: [PATCH 031/774] Convert sidebar into a panel over the map (close #6461) --- css/80_app.css | 33 ++++++++++++++++++++---------- modules/ui/init.js | 11 ++++++---- modules/ui/sidebar.js | 47 +++++++++---------------------------------- 3 files changed, 39 insertions(+), 52 deletions(-) diff --git a/css/80_app.css b/css/80_app.css index f8c072af1c..10fce8ac9a 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -40,14 +40,14 @@ body { height: 100%; } -#content.active { +#content.active #map { -webkit-filter: none !important; filter: none !important; -webkit-duration: 200ms; transition-duration: 200ms; } -#content.inactive { +#content.inactive #map { -webkit-filter: grayscale(80%) brightness(80%); filter: grayscale(80%) brightness(80%); -webkit-duration: 200ms; @@ -937,20 +937,31 @@ a.hide-toggle { /* Sidebar / Inspector ------------------------------------------------------- */ +.sidebar-wrap { + position: relative; + height: 100%; + padding-left: 10px; + padding-top: 10px; + padding-bottom: 10px; + flex: 0 0 auto; +} #sidebar { position: relative; - float: left; height: 100%; z-index: 10; - background: #f6f6f6; + background: rgba(246, 246, 246, 0.98); -ms-user-select: element; - border: 0px solid #ccc; - border-right-width: 1px; -} -[dir='rtl'] #sidebar { - float: right; - border-right-width: 0px; - border-left-width: 1px; + border: 1px solid #ccc; + border-radius: 6px; + -webkit-backdrop-filter: blur(1.5px); + backdrop-filter: blur(1.5px); + -webkit-box-shadow: 0px 0px 8px 0px rgba(0,0,0,0.29); + -moz-box-shadow: 0px 0px 8px 0px rgba(0,0,0,0.29); + box-shadow: 0px 0px 8px 0px rgba(0,0,0,0.29); +} +[dir='rtl'] .sidebar-wrap { + padding-left: auto; + padding-right: 10px; } #sidebar-resizer { diff --git a/modules/ui/init.js b/modules/ui/init.js index 62e0591881..515065f745 100644 --- a/modules/ui/init.js +++ b/modules/ui/init.js @@ -63,10 +63,6 @@ export function uiInit(context) { .attr('id', 'defs') .call(svgDefs(context)); - container - .append('div') - .attr('id', 'sidebar') - .call(ui.sidebar); var content = container .append('div') @@ -259,6 +255,13 @@ export function uiInit(context) { .classed('hide', true) .call(ui.photoviewer); + overMap + .append('div') + .attr('class', 'sidebar-wrap') + .append('div') + .attr('id', 'sidebar') + .call(ui.sidebar); + // Bind events window.onbeforeunload = function() { diff --git a/modules/ui/sidebar.js b/modules/ui/sidebar.js index 2f905dea11..a468fb0184 100644 --- a/modules/ui/sidebar.js +++ b/modules/ui/sidebar.js @@ -46,8 +46,7 @@ export function uiSidebar(context) { // Set the initial width constraints selection .style('min-width', minWidth + 'px') - .style('max-width', '400px') - .style('width', '33.3333%'); + .style('width', '350px'); resizer.call(d3_drag() .container(container.node()) @@ -55,18 +54,10 @@ export function uiSidebar(context) { // offset from edge of sidebar-resizer dragOffset = d3_event.sourceEvent.offsetX - 1; - sidebarWidth = selection.node().getBoundingClientRect().width; - containerWidth = container.node().getBoundingClientRect().width; - var widthPct = (sidebarWidth / containerWidth) * 100; - selection - .style('width', widthPct + '%') // lock in current width - .style('max-width', '85%'); // but allow larger widths - resizer.classed('dragging', true); }) .on('drag', function() { var isRTL = (textDirection === 'rtl'); - var scaleX = isRTL ? 0 : 1; var xMarginProperty = isRTL ? 'margin-right' : 'margin-left'; var x = d3_event.x - dragOffset; @@ -80,23 +71,14 @@ export function uiSidebar(context) { if (shouldCollapse) { if (!isCollapsed) { selection - .style(xMarginProperty, '-400px') + .style(xMarginProperty, '-410px') .style('width', '400px'); - - context.ui().onResize([(sidebarWidth - d3_event.dx) * scaleX, 0]); } } else { - var widthPct = (sidebarWidth / containerWidth) * 100; selection .style(xMarginProperty, null) - .style('width', widthPct + '%'); - - if (isCollapsed) { - context.ui().onResize([-sidebarWidth * scaleX, 0]); - } else { - context.ui().onResize([-d3_event.dx * scaleX, 0]); - } + .style('width', sidebarWidth + 'px'); } }) .on('end', function() { @@ -274,21 +256,21 @@ export function uiSidebar(context) { }; - sidebar.expand = function(moveMap) { + sidebar.expand = function() { if (selection.classed('collapsed')) { - sidebar.toggle(moveMap); + sidebar.toggle(); } }; - sidebar.collapse = function(moveMap) { + sidebar.collapse = function() { if (!selection.classed('collapsed')) { - sidebar.toggle(moveMap); + sidebar.toggle(); } }; - sidebar.toggle = function(moveMap) { + sidebar.toggle = function() { var e = d3_event; if (e && e.sourceEvent) { e.sourceEvent.preventDefault(); @@ -302,18 +284,14 @@ export function uiSidebar(context) { var isCollapsed = selection.classed('collapsed'); var isCollapsing = !isCollapsed; var isRTL = (textDirection === 'rtl'); - var scaleX = isRTL ? 0 : 1; var xMarginProperty = isRTL ? 'margin-right' : 'margin-left'; sidebarWidth = selection.node().getBoundingClientRect().width; - // switch from % to px - selection.style('width', sidebarWidth + 'px'); - var startMargin, endMargin, lastMargin; if (isCollapsing) { startMargin = lastMargin = 0; - endMargin = -sidebarWidth; + endMargin = -sidebarWidth - 10; } else { startMargin = lastMargin = -sidebarWidth; endMargin = 0; @@ -326,19 +304,14 @@ export function uiSidebar(context) { return function(t) { var dx = lastMargin - Math.round(i(t)); lastMargin = lastMargin - dx; - context.ui().onResize(moveMap ? undefined : [dx * scaleX, 0]); }; }) .on('end', function() { selection.classed('collapsed', isCollapsing); - // switch back from px to % if (!isCollapsing) { - var containerWidth = container.node().getBoundingClientRect().width; - var widthPct = (sidebarWidth / containerWidth) * 100; selection - .style(xMarginProperty, null) - .style('width', widthPct + '%'); + .style(xMarginProperty, null); } }); }; From 643c7a647a5a4db4398c9089b55d2b63811dcba4 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Fri, 31 May 2019 13:03:31 -0400 Subject: [PATCH 032/774] Separate preset browser popover from the Add Feature toolbar item (re: #6468) --- css/80_app.css | 97 +++-- modules/ui/preset_browser.js | 578 +++++++++++++++++++++++++++++ modules/ui/tools/add_feature.js | 625 +++----------------------------- 3 files changed, 675 insertions(+), 625 deletions(-) create mode 100644 modules/ui/preset_browser.js diff --git a/css/80_app.css b/css/80_app.css index 10fce8ac9a..02f601b7f8 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -587,17 +587,16 @@ button.add-note svg.icon { margin-left: 1px; } -/* Add a feature search bar +/* Add Feature toolbar item ------------------------------------------------------- */ -.add-feature { - justify-content: center; - position: relative; -} .add-feature .bar-button.active .tooltip { display: none; } -.add-feature input[type='search'] { + +/* Preset browser +------------------------------------------------------- */ +.preset-browser input[type='search'] { position: relative; width: 100%; height: 100%; @@ -607,11 +606,11 @@ button.add-note svg.icon { padding: 5px 10px; border-radius: inherit; } -.add-feature input[type='search'], -.add-feature input[type='search']:focus { +.preset-browser input[type='search'], +.preset-browser input[type='search']:focus { background: #f6f6f6; } -.add-feature .search-icon { +.preset-browser .search-icon { color: #333; display: block; position: absolute; @@ -619,11 +618,11 @@ button.add-note svg.icon { top: 10px; pointer-events: none; } -[dir='rtl'] .add-feature .search-icon { +[dir='rtl'] .preset-browser .search-icon { left: auto; right: 10px; } -.add-feature .popover { +.preset-browser.popover { border: none; border-radius: 6px; position: absolute; @@ -640,68 +639,68 @@ button.add-note svg.icon { display: flex; flex-direction: column; } -[dir='ltr'] .add-feature .popover { +[dir='ltr'] .preset-browser.popover { left: 0; } -[dir='rtl'] .add-feature .popover { +[dir='rtl'] .preset-browser.popover { right: 0; } -.add-feature .popover .popover-content { +.preset-browser .popover-content { overflow-y: auto; max-height: 60vh; } -.add-feature .popover, -.add-feature .popover .popover-content { +.preset-browser, +.preset-browser .popover-content { /* ensure corners are rounded in Chrome */ -webkit-mask-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC); } -.add-feature .popover .popover-header { +.preset-browser .popover-header { height: 40px; border-bottom: 2px solid #DCDCDC; } -.add-feature .popover .popover-footer { +.preset-browser .popover-footer { padding: 5px 10px 5px 10px; background: #f6f6f6; border-top: 1px solid #DCDCDC; flex: 0 0 auto; display: flex; } -.add-feature .popover .popover-footer .message { +.preset-browser .popover-footer .message { color: #666666; flex-grow: 1; } -.add-feature .popover .popover-footer button.filter { +.preset-browser .popover-footer button.filter { height: 20px; background: transparent; color: #666; } -.add-feature .popover .popover-footer button.filter.active { +.preset-browser .popover-footer button.filter.active { color: #7092ff; } -.add-feature .popover .popover-footer button.filter:hover { +.preset-browser .popover-footer button.filter:hover { color: #333; } -.add-feature .popover .popover-footer button.filter.active:hover { +.preset-browser .popover-footer button.filter.active:hover { color: #597be7; } -.add-feature .popover::-webkit-scrollbar { +.preset-browser::-webkit-scrollbar { /* don't overlap rounded corners */ background: transparent; } -.add-feature .popover .list { +.preset-browser .list { height: 100%; } -.add-feature .list-item > .row { +.preset-browser .list-item > .row { display: flex; position: relative; padding: 2px; } -.add-feature .list-item:not(:last-of-type) .row, -.add-feature .subsection.subitems .list-item .row, -.add-feature .subsection > .tag-reference-body { +.preset-browser .list-item:not(:last-of-type) .row, +.preset-browser .subsection.subitems .list-item .row, +.preset-browser .subsection > .tag-reference-body { border-bottom: 1px solid #DCDCDC; } -.add-feature .list-item .label { +.preset-browser .list-item .label { font-weight: bold; font-size: 12px; padding-left: 2px; @@ -713,23 +712,23 @@ button.add-note svg.icon { line-height: 1.3em; width: 100%; } -.add-feature .list-item .label .namepart:nth-child(2) { +.preset-browser .list-item .label .namepart:nth-child(2) { font-weight: normal; } -.add-feature .list-item.disabled .preset-icon-container, -.add-feature .list-item.disabled .label { +.preset-browser .list-item.disabled .preset-icon-container, +.preset-browser .list-item.disabled .label { opacity: 0.55; } -[dir='ltr'] .add-feature .list-item .label .icon.inline { +[dir='ltr'] .preset-browser .list-item .label .icon.inline { margin-left: 0; } -[dir='rtl'] .add-feature .list-item .label .icon.inline { +[dir='rtl'] .preset-browser .list-item .label .icon.inline { margin-right: 0; } -.add-feature .list-item .row > *:not(button) { +.preset-browser .list-item .row > *:not(button) { pointer-events: none; } -.add-feature .list-item button.choose { +.preset-browser .list-item button.choose { position: absolute; border-radius: 0; height: 100%; @@ -737,24 +736,24 @@ button.add-note svg.icon { top: 0; left: 0; } -.add-feature .list-item button.choose:hover, -.add-feature .list-item button.choose:focus { +.preset-browser .list-item button.choose:hover, +.preset-browser .list-item button.choose:focus { background: #fff; } -.add-feature .list-item.focused:not(.disabled) button.choose { +.preset-browser .list-item.focused:not(.disabled) button.choose { background: #e8ebff; } -.add-feature .list-item button.choose.disabled { +.preset-browser .list-item button.choose.disabled { background-color: #ececec; } -.add-feature .subsection .list-item button.choose { +.preset-browser .subsection .list-item button.choose { opacity: 0.85; } -.add-feature .subsection .tag-reference-body { +.preset-browser .subsection .tag-reference-body { background: rgba(255, 255, 255, 0.85); padding: 10px; } -.add-feature .list-item button.accessory { +.preset-browser .list-item button.accessory { position: relative; flex: 0 0 auto; color: #808080; @@ -762,19 +761,19 @@ button.add-note svg.icon { padding-right: 3px; padding-left: 3px; } -.add-feature .list-item button.accessory:hover { +.preset-browser .list-item button.accessory:hover { color: #666; } -.add-feature .list-item button.tag-reference-open path { +.preset-browser .list-item button.tag-reference-open path { fill: #000; } -.add-feature .subsection { +.preset-browser .subsection { background-color: #CBCBCB; } -[dir='ltr'] .add-feature .subitems { +[dir='ltr'] .preset-browser .subitems { padding-left: 6px; } -[dir='rtl'] .add-feature .subitems { +[dir='rtl'] .preset-browser .subitems { padding-right: 6px; } diff --git a/modules/ui/preset_browser.js b/modules/ui/preset_browser.js new file mode 100644 index 0000000000..29c6b75a98 --- /dev/null +++ b/modules/ui/preset_browser.js @@ -0,0 +1,578 @@ +import { + event as d3_event, + select as d3_select, + selectAll as d3_selectAll +} from 'd3-selection'; + +import { t, textDirection } from '../util/locale'; +import { svgIcon } from '../svg/index'; +import { tooltip } from '../util/tooltip'; +import { uiTagReference } from './tag_reference'; +import { uiPresetFavoriteButton } from './preset_favorite_button'; +import { uiPresetIcon } from './preset_icon'; +import { dispatch as d3_dispatch } from 'd3-dispatch'; +import { utilKeybinding, utilNoAuto, utilRebind } from '../util'; + +export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { + + var dispatch = d3_dispatch('choose'); + var presets; + + var shownGeometry = []; + + var popover = d3_select(null), + search = d3_select(null), + popoverContent = d3_select(null), + list = d3_select(null), + footer = d3_select(null), + message = d3_select(null); + + var browser = {}; + + browser.render = function(selection) { + updateShownGeometry(allowedGeometry.slice()); // shallow copy + + popover = selection + .append('div') + .attr('class', 'preset-browser popover fillL hide'); + + var header = popover + .append('div') + .attr('class', 'popover-header'); + + search = header + .append('input') + .attr('class', 'search-input') + .attr('placeholder', t('modes.add_feature.search_placeholder')) + .attr('type', 'search') + .call(utilNoAuto) + .on('blur', function() { + popover.classed('hide', true); + onCancel(); + }) + .on('keypress', keypress) + .on('keydown', keydown) + .on('input', updateResultsList); + + header + .call(svgIcon('#iD-icon-search', 'search-icon pre-text')); + + popoverContent = popover + .append('div') + .attr('class', 'popover-content') + .on('mousedown', function() { + // don't blur the search input (and thus close results) + d3_event.preventDefault(); + d3_event.stopPropagation(); + }); + + list = popoverContent.append('div') + .attr('class', 'list'); + + footer = popover + .append('div') + .attr('class', 'popover-footer') + .on('mousedown', function() { + // don't blur the search input (and thus close results) + d3_event.preventDefault(); + d3_event.stopPropagation(); + }); + + message = footer.append('div') + .attr('class', 'message'); + + footer.append('div') + .attr('class', 'filter-wrap') + .selectAll('button.filter') + .data(['point', 'line', 'area']) + .enter() + .append('button') + .attr('class', 'filter active') + .attr('title', function(d) { + return t('modes.add_' + d + '.filter_tooltip'); + }) + .each(function(d) { + d3_select(this).call(svgIcon('#iD-icon-' + d)); + }) + .on('click', function(d) { + toggleShownGeometry(d); + if (shownGeometry.length === 0) { + updateShownGeometry(allowedGeometry.slice()); // shallow copy + toggleShownGeometry(d); + } + updateFilterButtonsStates(); + updateResultsList(); + }); + + context.features() + .on('change.preset-browser.' + (new Date()).getTime(), updateForFeatureHiddenState); + + updateResultsList(); + }; + + browser.isShown = function() { + return !popover.classed('hide'); + }; + + browser.show = function() { + popover.classed('hide', false); + search.node().focus(); + search.node().setSelectionRange(0, search.property('value').length); + }; + + browser.hide = function() { + search.node().blur(); + }; + + function updateShownGeometry(geom) { + shownGeometry = geom.sort(); + presets = context.presets().matchAnyGeometry(shownGeometry); + } + + function toggleShownGeometry(d) { + var geom = shownGeometry; + var index = geom.indexOf(d); + if (index === -1) { + geom.push(d); + if (d === 'point') geom.push('vertex'); + } else { + geom.splice(index, 1); + if (d === 'point') geom.splice(geom.indexOf('vertex'), 1); + } + updateShownGeometry(geom); + } + + function updateFilterButtonsStates() { + footer.selectAll('button.filter') + .classed('active', function(d) { + return shownGeometry.indexOf(d) !== -1; + }); + } + + function keypress() { + if (d3_event.keyCode === utilKeybinding.keyCodes.enter) { + popover.selectAll('.list .list-item.focused button.choose') + .each(function(d) { d.choose.call(this); }); + d3_event.preventDefault(); + d3_event.stopPropagation(); + } + } + + function keydown() { + + var nextFocus, + priorFocus, + parentSubsection; + if (d3_event.keyCode === utilKeybinding.keyCodes['↓'] || + d3_event.keyCode === utilKeybinding.keyCodes.tab && !d3_event.shiftKey) { + d3_event.preventDefault(); + d3_event.stopPropagation(); + + priorFocus = popover.selectAll('.list .list-item.focused'); + if (priorFocus.empty()) { + nextFocus = popover.selectAll('.list > .list-item:first-child'); + } else { + nextFocus = d3_select(priorFocus.nodes()[0].nextElementSibling); + if (!nextFocus.empty() && !nextFocus.classed('list-item')) { + nextFocus = nextFocus.selectAll('.list-item:first-child'); + } + if (nextFocus.empty()) { + parentSubsection = priorFocus.nodes()[0].closest('.list .subsection'); + if (parentSubsection && parentSubsection.nextElementSibling) { + nextFocus = d3_select(parentSubsection.nextElementSibling); + } + } + } + if (!nextFocus.empty()) { + focusListItem(nextFocus, true); + priorFocus.classed('focused', false); + } + + } else if (d3_event.keyCode === utilKeybinding.keyCodes['↑'] || + d3_event.keyCode === utilKeybinding.keyCodes.tab && d3_event.shiftKey) { + d3_event.preventDefault(); + d3_event.stopPropagation(); + + priorFocus = popover.selectAll('.list .list-item.focused'); + if (!priorFocus.empty()) { + + nextFocus = d3_select(priorFocus.nodes()[0].previousElementSibling); + if (!nextFocus.empty() && !nextFocus.classed('list-item')) { + nextFocus = nextFocus.selectAll('.list-item:last-child'); + } + if (nextFocus.empty()) { + parentSubsection = priorFocus.nodes()[0].closest('.list .subsection'); + if (parentSubsection && parentSubsection.previousElementSibling) { + nextFocus = d3_select(parentSubsection.previousElementSibling); + } + } + if (!nextFocus.empty()) { + focusListItem(nextFocus, true); + priorFocus.classed('focused', false); + } + } + } else if (d3_event.keyCode === utilKeybinding.keyCodes.esc) { + search.node().blur(); + d3_event.preventDefault(); + d3_event.stopPropagation(); + } + } + + function updateResultsList() { + + var value = search.property('value'); + var results; + if (value.length) { + results = presets.search(value, shownGeometry).collection; + } else { + var recents = context.presets().getRecents(); + recents = recents.filter(function(d) { + return shownGeometry.indexOf(d.geometry) !== -1; + }); + results = recents.slice(0, 35); + } + + list.call(drawList, results); + + popover.selectAll('.list .list-item.focused') + .classed('focused', false); + focusListItem(popover.selectAll('.list > .list-item:first-child'), false); + + popoverContent.node().scrollTop = 0; + + var resultCount = results.length; + message.text(t('modes.add_feature.' + (resultCount === 1 ? 'result' : 'results'), { count: resultCount })); + } + + function focusListItem(selection, scrollingToShow) { + if (!selection.empty()) { + selection.classed('focused', true); + if (scrollingToShow) { + // scroll to keep the focused item visible + scrollPopoverToShow(selection); + } + } + } + + function scrollPopoverToShow(selection) { + if (selection.empty()) return; + + var node = selection.nodes()[0]; + var scrollableNode = popoverContent.node(); + + if (node.offsetTop < scrollableNode.scrollTop) { + scrollableNode.scrollTop = node.offsetTop; + + } else if (node.offsetTop + node.offsetHeight > scrollableNode.scrollTop + scrollableNode.offsetHeight && + node.offsetHeight < scrollableNode.offsetHeight) { + scrollableNode.scrollTop = node.offsetTop + node.offsetHeight - scrollableNode.offsetHeight; + } + } + + function itemForPreset(preset) { + if (preset.members) { + return CategoryItem(preset); + } + if (preset.preset && preset.geometry) { + return AddablePresetItem(preset.preset, preset.geometry); + } + var supportedGeometry = preset.geometry.filter(function(geometry) { + return shownGeometry.indexOf(geometry) !== -1; + }).sort(); + var vertexIndex = supportedGeometry.indexOf('vertex'); + if (vertexIndex !== -1 && supportedGeometry.indexOf('point') !== -1) { + // both point and vertex allowed, just show point + supportedGeometry.splice(vertexIndex, 1); + } + if (supportedGeometry.length === 1) { + return AddablePresetItem(preset, supportedGeometry[0]); + } + return MultiGeometryPresetItem(preset, supportedGeometry); + } + + function drawList(list, data) { + + list.selectAll('.subsection.subitems').remove(); + + var dataItems = []; + for (var i = 0; i < data.length; i++) { + var preset = data[i]; + if (i < data.length - 1) { + var nextPreset = data[i+1]; + // group neighboring presets with the same name + if (preset.name && nextPreset.name && preset.name() === nextPreset.name()) { + var groupedPresets = [preset, nextPreset].sort(function(p1, p2) { + return (p1.geometry[0] < p2.geometry[0]) ? -1 : 1; + }); + dataItems.push(MultiPresetItem(groupedPresets)); + i++; // skip the next preset since we accounted for it + continue; + } + } + dataItems.push(itemForPreset(preset)); + } + + var items = list.selectAll('.list-item') + .data(dataItems, function(d) { return d.id(); }); + + items.order(); + + items.exit() + .remove(); + + drawItems(items.enter()); + + list.selectAll('.list-item.expanded') + .classed('expanded', false) + .selectAll('.label svg.icon use') + .attr('href', textDirection === 'rtl' ? '#iD-icon-backward' : '#iD-icon-forward'); + + updateForFeatureHiddenState(); + } + + function drawItems(selection) { + + var item = selection + .append('div') + .attr('class', 'list-item') + .attr('id', function(d) { + return 'search-add-list-item-preset-' + d.id().replace(/[^a-zA-Z\d:]/g, '-'); + }) + .on('mouseover', function() { + list.selectAll('.list-item.focused') + .classed('focused', false); + d3_select(this) + .classed('focused', true); + }) + .on('mouseout', function() { + d3_select(this) + .classed('focused', false); + }); + + var row = item.append('div') + .attr('class', 'row'); + + row.append('button') + .attr('class', 'choose') + .on('click', function(d) { + d.choose.call(this); + }); + + row.each(function(d) { + d3_select(this).call( + uiPresetIcon(context) + .geometry(d.geometry) + .preset(d.preset || d.presets[0]) + .sizeClass('small') + ); + }); + var label = row.append('div') + .attr('class', 'label'); + + label.each(function(d) { + if (d.subitems) { + d3_select(this) + .call(svgIcon((textDirection === 'rtl' ? '#iD-icon-backward' : '#iD-icon-forward'), 'inline')); + } + }); + + label.each(function(d) { + // NOTE: split/join on en-dash, not a hypen (to avoid conflict with fr - nl names in Brussels etc) + d3_select(this) + .append('div') + .attr('class', 'label-inner') + .selectAll('.namepart') + .data(d.name().split(' – ')) + .enter() + .append('div') + .attr('class', 'namepart') + .text(function(d) { return d; }); + }); + + row.each(function(d) { + if (d.geometry) { + var presetFavorite = uiPresetFavoriteButton(d.preset, d.geometry, context, 'accessory'); + d3_select(this).call(presetFavorite.button); + } + }); + item.each(function(d) { + if ((d.geometry && (!d.isSubitem || d.isInNameGroup)) || d.geometries) { + + var reference = uiTagReference(d.preset.reference(d.geometry || d.geometries[0]), context); + + var thisItem = d3_select(this); + thisItem.selectAll('.row').call(reference.button, 'accessory', 'info'); + + var subsection = thisItem + .append('div') + .attr('class', 'subsection reference'); + subsection.call(reference.body); + } + }); + } + + function updateForFeatureHiddenState() { + + var listItem = d3_selectAll('.add-feature .popover .list-item'); + + // remove existing tooltips + listItem.selectAll('button.choose').call(tooltip().destroyAny); + + listItem.each(function(item, index) { + if (!item.geometry) return; + + var hiddenPresetFeaturesId = context.features().isHiddenPreset(item.preset, item.geometry); + var isHiddenPreset = !!hiddenPresetFeaturesId; + + var button = d3_select(this).selectAll('button.choose'); + + d3_select(this).classed('disabled', isHiddenPreset); + button.classed('disabled', isHiddenPreset); + + if (isHiddenPreset) { + var isAutoHidden = context.features().autoHidden(hiddenPresetFeaturesId); + var tooltipIdSuffix = isAutoHidden ? 'zoom' : 'manual'; + var tooltipObj = { features: t('feature.' + hiddenPresetFeaturesId + '.description') }; + button.call(tooltip('dark') + .html(true) + .title(t('inspector.hidden_preset.' + tooltipIdSuffix, tooltipObj)) + .placement(index < 2 ? 'bottom' : 'top') + ); + } + }); + } + + function chooseExpandable(item, itemSelection) { + + var shouldExpand = !itemSelection.classed('expanded'); + + itemSelection.classed('expanded', shouldExpand); + + var iconName = shouldExpand ? + '#iD-icon-down' : (textDirection === 'rtl' ? '#iD-icon-backward' : '#iD-icon-forward'); + itemSelection.selectAll('.label svg.icon use') + .attr('href', iconName); + + if (shouldExpand) { + var subitems = item.subitems(); + var selector = '#' + itemSelection.node().id + ' + *'; + item.subsection = d3_select(itemSelection.node().parentNode).insert('div', selector) + .attr('class', 'subsection subitems'); + var subitemsEnter = item.subsection.selectAll('.list-item') + .data(subitems) + .enter(); + drawItems(subitemsEnter); + updateForFeatureHiddenState(); + scrollPopoverToShow(item.subsection); + } else { + item.subsection.remove(); + } + } + + function CategoryItem(preset) { + var item = {}; + item.id = function() { + return preset.id; + }; + item.name = function() { + return preset.name(); + }; + item.subsection = d3_select(null); + item.preset = preset; + item.choose = function() { + var selection = d3_select(this); + if (selection.classed('disabled')) return; + chooseExpandable(item, d3_select(selection.node().closest('.list-item'))); + }; + item.subitems = function() { + return preset.members.matchAnyGeometry(shownGeometry).collection.map(function(preset) { + return itemForPreset(preset); + }); + }; + return item; + } + + function MultiPresetItem(presets) { + var item = {}; + item.id = function() { + return presets.map(function(preset) { return preset.id; }).join(); + }; + item.name = function() { + return presets[0].name(); + }; + item.subsection = d3_select(null); + item.presets = presets; + item.choose = function() { + var selection = d3_select(this); + if (selection.classed('disabled')) return; + chooseExpandable(item, d3_select(selection.node().closest('.list-item'))); + }; + item.subitems = function() { + var items = []; + presets.forEach(function(preset) { + preset.geometry.filter(function(geometry) { + return shownGeometry.indexOf(geometry) !== -1; + }).forEach(function(geometry) { + items.push(AddablePresetItem(preset, geometry, true, true)); + }); + }); + return items; + }; + return item; + } + + function MultiGeometryPresetItem(preset, geometries) { + + var item = {}; + item.id = function() { + return preset.id + geometries; + }; + item.name = function() { + return preset.name(); + }; + item.subsection = d3_select(null); + item.preset = preset; + item.geometries = geometries; + item.choose = function() { + var selection = d3_select(this); + if (selection.classed('disabled')) return; + chooseExpandable(item, d3_select(selection.node().closest('.list-item'))); + }; + item.subitems = function() { + return geometries.map(function(geometry) { + return AddablePresetItem(preset, geometry, true); + }); + }; + return item; + } + + function AddablePresetItem(preset, geometry, isSubitem, isInNameGroup) { + var item = {}; + item.id = function() { + return preset.id + geometry + isSubitem; + }; + item.name = function() { + if (isSubitem) { + if (preset.setTags({}, geometry).building) { + return t('presets.presets.building.name'); + } + return t('modes.add_' + context.presets().fallback(geometry).id + '.title'); + } + return preset.name(); + }; + item.isInNameGroup = isInNameGroup; + item.isSubitem = isSubitem; + item.preset = preset; + item.geometry = geometry; + item.choose = function() { + if (d3_select(this).classed('disabled')) return; + + onChoose(preset, geometry); + + search.node().blur(); + }; + return item; + } + + return utilRebind(browser, dispatch, 'on'); +} diff --git a/modules/ui/tools/add_feature.js b/modules/ui/tools/add_feature.js index f864b57cce..e63f3d7223 100644 --- a/modules/ui/tools/add_feature.js +++ b/modules/ui/tools/add_feature.js @@ -1,22 +1,16 @@ import _debounce from 'lodash-es/debounce'; -import { dispatch as d3_dispatch } from 'd3-dispatch'; import { event as d3_event, select as d3_select, - selectAll as d3_selectAll } from 'd3-selection'; -import { modeAddArea, modeAddLine, modeAddPoint } from '../../modes'; -import { t, textDirection } from '../../util/locale'; +import { t } from '../../util/locale'; import { svgIcon } from '../../svg/index'; import { tooltip } from '../../util/tooltip'; -import { uiTagReference } from '../tag_reference'; import { uiTooltipHtml } from '../tooltipHtml'; -import { uiPresetFavoriteButton } from '../preset_favorite_button'; -import { uiPresetIcon } from '../preset_icon'; -import { utilKeybinding, utilNoAuto, utilRebind } from '../../util'; - +import { uiPresetBrowser } from '../preset_browser'; +import { modeAddArea, modeAddLine, modeAddPoint } from '../../modes'; export function uiToolAddFeature(context) { @@ -25,48 +19,14 @@ export function uiToolAddFeature(context) { label: t('toolbar.add_feature') }; - var dispatch = d3_dispatch('choose'); - var presets; - var button = d3_select(null), - search = d3_select(null), - popover = d3_select(null), - popoverContent = d3_select(null), - list = d3_select(null), - footer = d3_select(null), - message = d3_select(null); - var allowedGeometry = ['area', 'line', 'point', 'vertex']; - var shownGeometry = []; - var key = t('modes.add_feature.key'); + var presetBrowser = uiPresetBrowser(context, allowedGeometry, browserDidSelectPreset, browserDidClose); - function updateShownGeometry(geom) { - shownGeometry = geom.sort(); - presets = context.presets().matchAnyGeometry(shownGeometry); - } - - function toggleShownGeometry(d) { - var geom = shownGeometry; - var index = geom.indexOf(d); - if (index === -1) { - geom.push(d); - if (d === 'point') geom.push('vertex'); - } else { - geom.splice(index, 1); - if (d === 'point') geom.splice(geom.indexOf('vertex'), 1); - } - updateShownGeometry(geom); - } - - function updateFilterButtonsStates() { - footer.selectAll('button.filter') - .classed('active', function(d) { - return shownGeometry.indexOf(d) !== -1; - }); - } + var button = d3_select(null); + var key = t('modes.add_feature.key'); tool.render = function(selection) { - updateShownGeometry(allowedGeometry.slice()); // shallow copy button = selection .append('button') @@ -83,12 +43,11 @@ export function uiToolAddFeature(context) { .on('click', function() { if (button.classed('disabled')) return; - if (popover.classed('hide')) { - popover.classed('hide', false); - search.node().focus(); - search.node().setSelectionRange(0, search.property('value').length); + if (!presetBrowser.isShown()) { + button.classed('active', true); + presetBrowser.show(); } else { - search.node().blur(); + presetBrowser.hide(); } }) .call(tooltip() @@ -98,88 +57,12 @@ export function uiToolAddFeature(context) { ) .call(svgIcon('#iD-logo-features')); - popover = selection - .append('div') - .attr('class', 'popover fillL hide'); - - var header = popover - .append('div') - .attr('class', 'popover-header'); - - search = header - .append('input') - .attr('class', 'search-input') - .attr('placeholder', t('modes.add_feature.search_placeholder')) - .attr('type', 'search') - .call(utilNoAuto) - .on('focus', function() { - button.classed('active', true); - }) - .on('blur', function() { - button.classed('active', false); - popover.classed('hide', true); - }) - .on('keypress', keypress) - .on('keydown', keydown) - .on('input', updateResultsList); - - header - .call(svgIcon('#iD-icon-search', 'search-icon pre-text')); - - popoverContent = popover - .append('div') - .attr('class', 'popover-content') - .on('mousedown', function() { - // don't blur the search input (and thus close results) - d3_event.preventDefault(); - d3_event.stopPropagation(); - }); - - list = popoverContent.append('div') - .attr('class', 'list'); - - footer = popover - .append('div') - .attr('class', 'popover-footer') - .on('mousedown', function() { - // don't blur the search input (and thus close results) - d3_event.preventDefault(); - d3_event.stopPropagation(); - }); - - message = footer.append('div') - .attr('class', 'message'); - - footer.append('div') - .attr('class', 'filter-wrap') - .selectAll('button.filter') - .data(['point', 'line', 'area']) - .enter() - .append('button') - .attr('class', 'filter active') - .attr('title', function(d) { - return t('modes.add_' + d + '.filter_tooltip'); - }) - .each(function(d) { - d3_select(this).call(svgIcon('#iD-icon-' + d)); - }) - .on('click', function(d) { - toggleShownGeometry(d); - if (shownGeometry.length === 0) { - updateShownGeometry(allowedGeometry.slice()); // shallow copy - toggleShownGeometry(d); - } - updateFilterButtonsStates(); - updateResultsList(); - }); - - context.features() - .on('change.add-feature-tool', updateForFeatureHiddenState); + presetBrowser.render(selection); context.keybinding().on(key, function() { - popover.classed('hide', false); - search.node().focus(); - search.node().setSelectionRange(0, search.property('value').length); + button.classed('active', true); + + presetBrowser.show(); d3_event.preventDefault(); d3_event.stopPropagation(); }); @@ -192,7 +75,6 @@ export function uiToolAddFeature(context) { updateEnabledState(); - updateResultsList(); }; tool.uninstall = function() { @@ -206,463 +88,54 @@ export function uiToolAddFeature(context) { .on('drawn.add-feature-tool', null); }; - function osmEditable() { - var mode = context.mode(); - return context.editable() && mode && mode.id !== 'save'; - } - - function updateEnabledState() { - var isEnabled = osmEditable(); - button.classed('disabled', !isEnabled); - if (!isEnabled) { - search.node().blur(); - } - search.attr('disabled', isEnabled ? null : true); - } - - function keypress() { - if (d3_event.keyCode === utilKeybinding.keyCodes.enter) { - popover.selectAll('.list .list-item.focused button.choose') - .each(function(d) { d.choose.call(this); }); - d3_event.preventDefault(); - d3_event.stopPropagation(); - } - } - - function keydown() { - - var nextFocus, - priorFocus, - parentSubsection; - if (d3_event.keyCode === utilKeybinding.keyCodes['↓'] || - d3_event.keyCode === utilKeybinding.keyCodes.tab && !d3_event.shiftKey) { - d3_event.preventDefault(); - d3_event.stopPropagation(); - - priorFocus = popover.selectAll('.list .list-item.focused'); - if (priorFocus.empty()) { - nextFocus = popover.selectAll('.list > .list-item:first-child'); - } else { - nextFocus = d3_select(priorFocus.nodes()[0].nextElementSibling); - if (!nextFocus.empty() && !nextFocus.classed('list-item')) { - nextFocus = nextFocus.selectAll('.list-item:first-child'); - } - if (nextFocus.empty()) { - parentSubsection = priorFocus.nodes()[0].closest('.list .subsection'); - if (parentSubsection && parentSubsection.nextElementSibling) { - nextFocus = d3_select(parentSubsection.nextElementSibling); - } - } - } - if (!nextFocus.empty()) { - focusListItem(nextFocus, true); - priorFocus.classed('focused', false); - } - - } else if (d3_event.keyCode === utilKeybinding.keyCodes['↑'] || - d3_event.keyCode === utilKeybinding.keyCodes.tab && d3_event.shiftKey) { - d3_event.preventDefault(); - d3_event.stopPropagation(); - - priorFocus = popover.selectAll('.list .list-item.focused'); - if (!priorFocus.empty()) { - - nextFocus = d3_select(priorFocus.nodes()[0].previousElementSibling); - if (!nextFocus.empty() && !nextFocus.classed('list-item')) { - nextFocus = nextFocus.selectAll('.list-item:last-child'); - } - if (nextFocus.empty()) { - parentSubsection = priorFocus.nodes()[0].closest('.list .subsection'); - if (parentSubsection && parentSubsection.previousElementSibling) { - nextFocus = d3_select(parentSubsection.previousElementSibling); - } - } - if (!nextFocus.empty()) { - focusListItem(nextFocus, true); - priorFocus.classed('focused', false); - } - } - } else if (d3_event.keyCode === utilKeybinding.keyCodes.esc) { - search.node().blur(); - d3_event.preventDefault(); - d3_event.stopPropagation(); - } - } - - function updateResultsList() { - - var value = search.property('value'); - var results; - if (value.length) { - results = presets.search(value, shownGeometry).collection; - } else { - var recents = context.presets().getRecents(); - recents = recents.filter(function(d) { - return shownGeometry.indexOf(d.geometry) !== -1; - }); - results = recents.slice(0, 35); - } - - list.call(drawList, results); - - popover.selectAll('.list .list-item.focused') - .classed('focused', false); - focusListItem(popover.selectAll('.list > .list-item:first-child'), false); - - popoverContent.node().scrollTop = 0; - - var resultCount = results.length; - message.text(t('modes.add_feature.' + (resultCount === 1 ? 'result' : 'results'), { count: resultCount })); - } - - function focusListItem(selection, scrollingToShow) { - if (!selection.empty()) { - selection.classed('focused', true); - if (scrollingToShow) { - // scroll to keep the focused item visible - scrollPopoverToShow(selection); - } - } - } + function browserDidSelectPreset(preset, geometry) { - function scrollPopoverToShow(selection) { - if (selection.empty()) return; + var markerClass = 'add-preset add-' + geometry + + ' add-preset-' + preset.name().replace(/\s+/g, '_') + '-' + geometry; - var node = selection.nodes()[0]; - var scrollableNode = popoverContent.node(); - - if (node.offsetTop < scrollableNode.scrollTop) { - scrollableNode.scrollTop = node.offsetTop; - - } else if (node.offsetTop + node.offsetHeight > scrollableNode.scrollTop + scrollableNode.offsetHeight && - node.offsetHeight < scrollableNode.offsetHeight) { - scrollableNode.scrollTop = node.offsetTop + node.offsetHeight - scrollableNode.offsetHeight; - } - } - - function itemForPreset(preset) { - if (preset.members) { - return CategoryItem(preset); - } - if (preset.preset && preset.geometry) { - return AddablePresetItem(preset.preset, preset.geometry); - } - var supportedGeometry = preset.geometry.filter(function(geometry) { - return shownGeometry.indexOf(geometry) !== -1; - }).sort(); - var vertexIndex = supportedGeometry.indexOf('vertex'); - if (vertexIndex !== -1 && supportedGeometry.indexOf('point') !== -1) { - // both point and vertex allowed, just show point - supportedGeometry.splice(vertexIndex, 1); - } - if (supportedGeometry.length === 1) { - return AddablePresetItem(preset, supportedGeometry[0]); - } - return MultiGeometryPresetItem(preset, supportedGeometry); - } - - function drawList(list, data) { - - list.selectAll('.subsection.subitems').remove(); + var modeInfo = { + button: markerClass, + preset: preset, + geometry: geometry + }; - var dataItems = []; - for (var i = 0; i < data.length; i++) { - var preset = data[i]; - if (i < data.length - 1) { - var nextPreset = data[i+1]; - // group neighboring presets with the same name - if (preset.name && nextPreset.name && preset.name() === nextPreset.name()) { - var groupedPresets = [preset, nextPreset].sort(function(p1, p2) { - return (p1.geometry[0] < p2.geometry[0]) ? -1 : 1; - }); - dataItems.push(MultiPresetItem(groupedPresets)); - i++; // skip the next preset since we accounted for it - continue; - } - } - dataItems.push(itemForPreset(preset)); + var mode; + switch (geometry) { + case 'point': + case 'vertex': + mode = modeAddPoint(context, modeInfo); + break; + case 'line': + mode = modeAddLine(context, modeInfo); + break; + case 'area': + mode = modeAddArea(context, modeInfo); + break; + default: + return; } - var items = list.selectAll('.list-item') - .data(dataItems, function(d) { return d.id(); }); - - items.order(); + context.presets().setMostRecent(preset, geometry); - items.exit() - .remove(); - - drawItems(items.enter()); - - list.selectAll('.list-item.expanded') - .classed('expanded', false) - .selectAll('.label svg.icon use') - .attr('href', textDirection === 'rtl' ? '#iD-icon-backward' : '#iD-icon-forward'); - - updateForFeatureHiddenState(); + context.enter(mode); } - function drawItems(selection) { - - var item = selection - .append('div') - .attr('class', 'list-item') - .attr('id', function(d) { - return 'search-add-list-item-preset-' + d.id().replace(/[^a-zA-Z\d:]/g, '-'); - }) - .on('mouseover', function() { - list.selectAll('.list-item.focused') - .classed('focused', false); - d3_select(this) - .classed('focused', true); - }) - .on('mouseout', function() { - d3_select(this) - .classed('focused', false); - }); - - var row = item.append('div') - .attr('class', 'row'); - - row.append('button') - .attr('class', 'choose') - .on('click', function(d) { - d.choose.call(this); - }); - - row.each(function(d) { - d3_select(this).call( - uiPresetIcon(context) - .geometry(d.geometry) - .preset(d.preset || d.presets[0]) - .sizeClass('small') - ); - }); - var label = row.append('div') - .attr('class', 'label'); - - label.each(function(d) { - if (d.subitems) { - d3_select(this) - .call(svgIcon((textDirection === 'rtl' ? '#iD-icon-backward' : '#iD-icon-forward'), 'inline')); - } - }); - - label.each(function(d) { - // NOTE: split/join on en-dash, not a hypen (to avoid conflict with fr - nl names in Brussels etc) - d3_select(this) - .append('div') - .attr('class', 'label-inner') - .selectAll('.namepart') - .data(d.name().split(' – ')) - .enter() - .append('div') - .attr('class', 'namepart') - .text(function(d) { return d; }); - }); - - row.each(function(d) { - if (d.geometry) { - var presetFavorite = uiPresetFavoriteButton(d.preset, d.geometry, context, 'accessory'); - d3_select(this).call(presetFavorite.button); - } - }); - item.each(function(d) { - if ((d.geometry && (!d.isSubitem || d.isInNameGroup)) || d.geometries) { - - var reference = uiTagReference(d.preset.reference(d.geometry || d.geometries[0]), context); - - var thisItem = d3_select(this); - thisItem.selectAll('.row').call(reference.button, 'accessory', 'info'); - - var subsection = thisItem - .append('div') - .attr('class', 'subsection reference'); - subsection.call(reference.body); - } - }); + function browserDidClose() { + button.classed('active', false); } - function updateForFeatureHiddenState() { - - var listItem = d3_selectAll('.add-feature .popover .list-item'); - - // remove existing tooltips - listItem.selectAll('button.choose').call(tooltip().destroyAny); - - listItem.each(function(item, index) { - if (!item.geometry) return; - - var hiddenPresetFeaturesId = context.features().isHiddenPreset(item.preset, item.geometry); - var isHiddenPreset = !!hiddenPresetFeaturesId; - - var button = d3_select(this).selectAll('button.choose'); - - d3_select(this).classed('disabled', isHiddenPreset); - button.classed('disabled', isHiddenPreset); - - if (isHiddenPreset) { - var isAutoHidden = context.features().autoHidden(hiddenPresetFeaturesId); - var tooltipIdSuffix = isAutoHidden ? 'zoom' : 'manual'; - var tooltipObj = { features: t('feature.' + hiddenPresetFeaturesId + '.description') }; - button.call(tooltip('dark') - .html(true) - .title(t('inspector.hidden_preset.' + tooltipIdSuffix, tooltipObj)) - .placement(index < 2 ? 'bottom' : 'top') - ); - } - }); + function osmEditable() { + var mode = context.mode(); + return context.editable() && mode && mode.id !== 'save'; } - function chooseExpandable(item, itemSelection) { - - var shouldExpand = !itemSelection.classed('expanded'); - - itemSelection.classed('expanded', shouldExpand); - - var iconName = shouldExpand ? - '#iD-icon-down' : (textDirection === 'rtl' ? '#iD-icon-backward' : '#iD-icon-forward'); - itemSelection.selectAll('.label svg.icon use') - .attr('href', iconName); - - if (shouldExpand) { - var subitems = item.subitems(); - var selector = '#' + itemSelection.node().id + ' + *'; - item.subsection = d3_select(itemSelection.node().parentNode).insert('div', selector) - .attr('class', 'subsection subitems'); - var subitemsEnter = item.subsection.selectAll('.list-item') - .data(subitems) - .enter(); - drawItems(subitemsEnter); - updateForFeatureHiddenState(); - scrollPopoverToShow(item.subsection); - } else { - item.subsection.remove(); + function updateEnabledState() { + var isEnabled = osmEditable(); + button.classed('disabled', !isEnabled); + if (!isEnabled) { + presetBrowser.hide(); } } - function CategoryItem(preset) { - var item = {}; - item.id = function() { - return preset.id; - }; - item.name = function() { - return preset.name(); - }; - item.subsection = d3_select(null); - item.preset = preset; - item.choose = function() { - var selection = d3_select(this); - if (selection.classed('disabled')) return; - chooseExpandable(item, d3_select(selection.node().closest('.list-item'))); - }; - item.subitems = function() { - return preset.members.matchAnyGeometry(shownGeometry).collection.map(function(preset) { - return itemForPreset(preset); - }); - }; - return item; - } - - function MultiPresetItem(presets) { - var item = {}; - item.id = function() { - return presets.map(function(preset) { return preset.id; }).join(); - }; - item.name = function() { - return presets[0].name(); - }; - item.subsection = d3_select(null); - item.presets = presets; - item.choose = function() { - var selection = d3_select(this); - if (selection.classed('disabled')) return; - chooseExpandable(item, d3_select(selection.node().closest('.list-item'))); - }; - item.subitems = function() { - var items = []; - presets.forEach(function(preset) { - preset.geometry.filter(function(geometry) { - return shownGeometry.indexOf(geometry) !== -1; - }).forEach(function(geometry) { - items.push(AddablePresetItem(preset, geometry, true, true)); - }); - }); - return items; - }; - return item; - } - - function MultiGeometryPresetItem(preset, geometries) { - - var item = {}; - item.id = function() { - return preset.id + geometries; - }; - item.name = function() { - return preset.name(); - }; - item.subsection = d3_select(null); - item.preset = preset; - item.geometries = geometries; - item.choose = function() { - var selection = d3_select(this); - if (selection.classed('disabled')) return; - chooseExpandable(item, d3_select(selection.node().closest('.list-item'))); - }; - item.subitems = function() { - return geometries.map(function(geometry) { - return AddablePresetItem(preset, geometry, true); - }); - }; - return item; - } - - function AddablePresetItem(preset, geometry, isSubitem, isInNameGroup) { - var item = {}; - item.id = function() { - return preset.id + geometry + isSubitem; - }; - item.name = function() { - if (isSubitem) { - if (preset.setTags({}, geometry).building) { - return t('presets.presets.building.name'); - } - return t('modes.add_' + context.presets().fallback(geometry).id + '.title'); - } - return preset.name(); - }; - item.isInNameGroup = isInNameGroup; - item.isSubitem = isSubitem; - item.preset = preset; - item.geometry = geometry; - item.choose = function() { - if (d3_select(this).classed('disabled')) return; - - var markerClass = 'add-preset add-' + geometry + - ' add-preset-' + preset.name().replace(/\s+/g, '_') + '-' + geometry; - var modeInfo = { - button: markerClass, - preset: preset, - geometry: geometry - }; - var mode; - switch (geometry) { - case 'point': - case 'vertex': - mode = modeAddPoint(context, modeInfo); - break; - case 'line': - mode = modeAddLine(context, modeInfo); - break; - case 'area': - mode = modeAddArea(context, modeInfo); - } - search.node().blur(); - context.presets().setMostRecent(preset, geometry); - context.enter(mode); - }; - return item; - } - - return utilRebind(tool, dispatch, 'on'); + return tool; } From b859058f099db4b87a42890b8edfca9f6b448d04 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Fri, 31 May 2019 13:16:35 -0400 Subject: [PATCH 033/774] Adjust preset browser CSS --- css/80_app.css | 50 ++++++++++++++++++++++++++------------------------ 1 file changed, 26 insertions(+), 24 deletions(-) diff --git a/css/80_app.css b/css/80_app.css index 02f601b7f8..90b40da46a 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -596,6 +596,28 @@ button.add-note svg.icon { /* Preset browser ------------------------------------------------------- */ +.preset-browser.popover { + border: 0.5px solid #DCDCDC; + border-radius: 6px; + position: absolute; + max-height: 600px; + top: 44px; + width: 200%; + min-width: 300px; + max-width: 325px; + margin: auto; + left: auto; + right: auto; + z-index: 300; + display: flex; + flex-direction: column; +} +[dir='ltr'] .preset-browser.popover { + left: 0; +} +[dir='rtl'] .preset-browser.popover { + right: 0; +} .preset-browser input[type='search'] { position: relative; width: 100%; @@ -604,7 +626,8 @@ button.add-note svg.icon { font-size: 14px; text-indent: 25px; padding: 5px 10px; - border-radius: inherit; + border-top-left-radius: 6px; + border-top-right-radius: 6px; } .preset-browser input[type='search'], .preset-browser input[type='search']:focus { @@ -622,29 +645,6 @@ button.add-note svg.icon { left: auto; right: 10px; } -.preset-browser.popover { - border: none; - border-radius: 6px; - position: absolute; - max-height: 600px; - top: 44px; - width: 200%; - min-width: 300px; - max-width: 325px; - margin: auto; - left: auto; - right: auto; - z-index: 300; - overflow: hidden; - display: flex; - flex-direction: column; -} -[dir='ltr'] .preset-browser.popover { - left: 0; -} -[dir='rtl'] .preset-browser.popover { - right: 0; -} .preset-browser .popover-content { overflow-y: auto; max-height: 60vh; @@ -664,6 +664,8 @@ button.add-note svg.icon { border-top: 1px solid #DCDCDC; flex: 0 0 auto; display: flex; + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; } .preset-browser .popover-footer .message { color: #666666; From 9bf58c8ba41e63a9f3e8e1ced76e7b698522a5ca Mon Sep 17 00:00:00 2001 From: BjornRasmussen Date: Fri, 31 May 2019 13:42:14 -0400 Subject: [PATCH 034/774] Changed "Direction" to "Direction affected" for fields that apply to vertexes like traffic signals and stop signs. --- data/presets/fields.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/data/presets/fields.json b/data/presets/fields.json index 793b1950a8..cfaa5fbfcc 100644 --- a/data/presets/fields.json +++ b/data/presets/fields.json @@ -99,7 +99,7 @@ "diplomatic/services": {"key": "diplomatic:services:", "type": "multiCombo", "label": "Services"}, "direction_cardinal": {"key": "direction", "type": "combo", "label": "Direction", "strings": {"options": {"N": "North", "E": "East", "S": "South", "W": "West", "NE": "Northeast", "SE": "Southeast", "SW": "Southwest", "NW": "Northwest", "NNE": "North-northeast", "ENE": "East-northeast", "ESE": "East-southeast", "SSE": "South-southeast", "SSW": "South-southwest", "WSW": "West-southwest", "WNW": "West-northwest", "NNW": "North-northwest"}}}, "direction_clock": {"key": "direction", "type": "combo", "label": "Direction", "strings": {"options": {"clockwise": "Clockwise", "anticlockwise": "Counterclockwise"}}}, - "direction_vertex": {"key": "direction", "type": "combo", "label": "Direction", "strings": {"options": {"forward": "Forward", "backward": "Backward", "both": "Both / All"}}}, + "direction_vertex": {"key": "direction", "type": "combo", "label": "Direction affected", "strings": {"options": {"forward": "Forward", "backward": "Backward", "both": "Both / All"}}}, "direction": {"key": "direction", "type": "number", "label": "Direction (Degrees Clockwise)", "placeholder": "45, 90, 180, 270"}, "dispensing": {"key": "dispensing", "type": "check", "label": "Dispenses Prescriptions", "default": "yes"}, "display": {"key": "display", "type": "combo", "label": "Display", "options": ["analog", "digital", "sundial", "unorthodox"]}, @@ -271,7 +271,7 @@ "product": {"key": "product", "type": "semiCombo", "label": "Products"}, "railway": {"key": "railway", "type": "typeCombo", "label": "Type"}, "railway/position": {"key": "railway:position", "type": "text", "placeholder": "Distance to one decimal (123.4)", "label": "Milestone Position"}, - "railway/signal/direction": {"key": "railway:signal:direction", "type": "combo", "label": "Direction", "strings": {"options": {"forward": "Forward", "backward": "Backward", "both": "Both / All"}}}, + "railway/signal/direction": {"key": "railway:signal:direction", "type": "combo", "label": "Direction affected", "strings": {"options": {"forward": "Forward", "backward": "Backward", "both": "Both / All"}}}, "rating": {"key": "rating", "type": "combo", "label": "Power Rating", "snake_case": false}, "recycling_accepts": {"key": "recycling:", "type": "multiCombo", "label": "Accepts"}, "recycling_type": {"key": "recycling_type", "type": "combo", "label": "Type", "placeholder": "Container, Center", "strings": {"options": {"container": "Container", "centre": "Center"}}}, @@ -377,9 +377,9 @@ "trade": {"key": "trade", "type": "typeCombo", "label": "Type"}, "traffic_calming": {"key": "traffic_calming", "type": "typeCombo", "label": "Type"}, "traffic_sign": {"key": "traffic_sign", "type": "typeCombo", "label": "Traffic Sign"}, - "traffic_sign/direction": {"key": "traffic_sign:direction", "type": "combo", "label": "Direction", "strings": {"options": {"forward": "Forward", "backward": "Backward", "both": "Both / All"}}}, + "traffic_sign/direction": {"key": "traffic_sign:direction", "type": "combo", "label": "Direction affected", "strings": {"options": {"forward": "Forward", "backward": "Backward", "both": "Both / All"}}}, "traffic_signals": {"key": "traffic_signals", "type": "combo", "label": "Type", "default": "signal"}, - "traffic_signals/direction": {"key": "traffic_signals:direction", "type": "combo", "label": "Direction", "strings": {"options": {"forward": "Forward", "backward": "Backward", "both": "Both / All"}}}, + "traffic_signals/direction": {"key": "traffic_signals:direction", "type": "combo", "label": "Direction affected", "strings": {"options": {"forward": "Forward", "backward": "Backward", "both": "Both / All"}}}, "trail_visibility": {"key": "trail_visibility", "type": "combo", "label": "Trail Visibility", "placeholder": "Excellent, Good, Bad...", "strings": {"options": {"excellent": "Excellent: unambiguous path or markers everywhere", "good": "Good: markers visible, sometimes require searching", "intermediate": "Intermediate: few markers, path mostly visible", "bad": "Bad: no markers, path sometimes invisible/pathless", "horrible": "Horrible: often pathless, some orientation skills required", "no": "No: pathless, excellent orientation skills required"}}}, "transformer": {"key": "transformer", "type": "combo", "label": "Type", "strings": {"options": {"distribution": "Distribution", "generator": "Generator", "converter": "Converter", "traction": "Traction", "auto": "Autotransformer", "phase_angle_regulator": "Phase Angle Regulator", "auxiliary": "Auxiliary", "yes": "Unknown"}}}, "trees": {"key": "trees", "type": "semiCombo", "label": "Trees"}, From 0b54319cf6df80e3d966271acf354108f3007fbb Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Fri, 31 May 2019 17:15:20 -0400 Subject: [PATCH 035/774] Transifex should continue to track the 2.15 branch for a while --- scripts/txpush.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/txpush.sh b/scripts/txpush.sh index 1fdfaed6d6..a95ab4db41 100755 --- a/scripts/txpush.sh +++ b/scripts/txpush.sh @@ -9,7 +9,7 @@ echo "TRAVIS_NODE_VERSION=$TRAVIS_NODE_VERSION" if [[ "$TRAVIS" != "true" ]]; then exit 0; fi if [[ "$TRAVIS_PULL_REQUEST" != "false" ]]; then exit 0; fi -if [[ "$TRAVIS_BRANCH" != "master" ]]; then exit 0; fi +if [[ "$TRAVIS_BRANCH" != "2.15" ]]; then exit 0; fi if [[ "$TRAVIS_NODE_VERSION" != "10" ]]; then exit 0; fi echo "Pushing source strings to Transifex..." From 81f1e33668c18db644c3c13bb4f64b5e25f9aad1 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Fri, 31 May 2019 17:19:00 -0400 Subject: [PATCH 036/774] Bump min versions of node and npm.. test on node 8,10,12 --- .travis.yml | 2 +- package.json | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index c94aba48e9..6ae228ceb8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,8 +1,8 @@ language: node_js node_js: - - "6" - "8" - "10" + - "12" sudo: required before_script: - npm run all diff --git a/package.json b/package.json index bb4b4cf382..b8d69329d3 100644 --- a/package.json +++ b/package.json @@ -103,7 +103,7 @@ "ignore": [] }, "engines": { - "node": ">=6.0.0", - "npm": ">=3.0.0" + "node": ">=8.0.0", + "npm": ">=5.0.0" } } From 5cb8e40358e6f2cc8c42a3487cda15d32d7fdff0 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Sun, 2 Jun 2019 17:08:26 -0400 Subject: [PATCH 037/774] Improve handling of preset browser event listening --- modules/ui/preset_browser.js | 18 ++++++++++++------ modules/ui/tools/add_feature.js | 2 ++ 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/modules/ui/preset_browser.js b/modules/ui/preset_browser.js index 29c6b75a98..4bd4be27c8 100644 --- a/modules/ui/preset_browser.js +++ b/modules/ui/preset_browser.js @@ -10,12 +10,13 @@ import { tooltip } from '../util/tooltip'; import { uiTagReference } from './tag_reference'; import { uiPresetFavoriteButton } from './preset_favorite_button'; import { uiPresetIcon } from './preset_icon'; -import { dispatch as d3_dispatch } from 'd3-dispatch'; import { utilKeybinding, utilNoAuto, utilRebind } from '../util'; export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { - var dispatch = d3_dispatch('choose'); + // multiple preset browsers could be instantiated at once, give each a unique ID + var uid = (new Date()).getTime().toString(); + var presets; var shownGeometry = []; @@ -47,6 +48,9 @@ export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { .attr('type', 'search') .call(utilNoAuto) .on('blur', function() { + context.features() + .on('change.preset-browser.' + uid , null); + popover.classed('hide', true); onCancel(); }) @@ -104,9 +108,6 @@ export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { updateResultsList(); }); - context.features() - .on('change.preset-browser.' + (new Date()).getTime(), updateForFeatureHiddenState); - updateResultsList(); }; @@ -118,6 +119,11 @@ export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { popover.classed('hide', false); search.node().focus(); search.node().setSelectionRange(0, search.property('value').length); + + updateForFeatureHiddenState(); + + context.features() + .on('change.preset-browser.' + uid , updateForFeatureHiddenState); }; browser.hide = function() { @@ -574,5 +580,5 @@ export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { return item; } - return utilRebind(browser, dispatch, 'on'); + return browser; } diff --git a/modules/ui/tools/add_feature.js b/modules/ui/tools/add_feature.js index e63f3d7223..459d05e9ac 100644 --- a/modules/ui/tools/add_feature.js +++ b/modules/ui/tools/add_feature.js @@ -78,6 +78,8 @@ export function uiToolAddFeature(context) { }; tool.uninstall = function() { + presetBrowser.hide(); + context.keybinding().off(key); context.features() From 66922658807be8e644e19c88e5d4e49c7730b6b9 Mon Sep 17 00:00:00 2001 From: BjornRasmussen Date: Sun, 2 Jun 2019 22:28:17 -0400 Subject: [PATCH 038/774] Converted the label "Direction" to "Direction Affected" in 4 fields. --- data/presets/fields.json | 8 ++++---- data/presets/fields/direction_vertex.json | 2 +- data/presets/fields/railway/signal/direction.json | 2 +- data/presets/fields/traffic_sign/direction.json | 2 +- data/presets/fields/traffic_signals/direction.json | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/data/presets/fields.json b/data/presets/fields.json index cfaa5fbfcc..14201b3ef1 100644 --- a/data/presets/fields.json +++ b/data/presets/fields.json @@ -99,7 +99,7 @@ "diplomatic/services": {"key": "diplomatic:services:", "type": "multiCombo", "label": "Services"}, "direction_cardinal": {"key": "direction", "type": "combo", "label": "Direction", "strings": {"options": {"N": "North", "E": "East", "S": "South", "W": "West", "NE": "Northeast", "SE": "Southeast", "SW": "Southwest", "NW": "Northwest", "NNE": "North-northeast", "ENE": "East-northeast", "ESE": "East-southeast", "SSE": "South-southeast", "SSW": "South-southwest", "WSW": "West-southwest", "WNW": "West-northwest", "NNW": "North-northwest"}}}, "direction_clock": {"key": "direction", "type": "combo", "label": "Direction", "strings": {"options": {"clockwise": "Clockwise", "anticlockwise": "Counterclockwise"}}}, - "direction_vertex": {"key": "direction", "type": "combo", "label": "Direction affected", "strings": {"options": {"forward": "Forward", "backward": "Backward", "both": "Both / All"}}}, + "direction_vertex": {"key": "direction", "type": "combo", "label": "Direction Affected", "strings": {"options": {"forward": "Forward", "backward": "Backward", "both": "Both / All"}}}, "direction": {"key": "direction", "type": "number", "label": "Direction (Degrees Clockwise)", "placeholder": "45, 90, 180, 270"}, "dispensing": {"key": "dispensing", "type": "check", "label": "Dispenses Prescriptions", "default": "yes"}, "display": {"key": "display", "type": "combo", "label": "Display", "options": ["analog", "digital", "sundial", "unorthodox"]}, @@ -271,7 +271,7 @@ "product": {"key": "product", "type": "semiCombo", "label": "Products"}, "railway": {"key": "railway", "type": "typeCombo", "label": "Type"}, "railway/position": {"key": "railway:position", "type": "text", "placeholder": "Distance to one decimal (123.4)", "label": "Milestone Position"}, - "railway/signal/direction": {"key": "railway:signal:direction", "type": "combo", "label": "Direction affected", "strings": {"options": {"forward": "Forward", "backward": "Backward", "both": "Both / All"}}}, + "railway/signal/direction": {"key": "railway:signal:direction", "type": "combo", "label": "Direction Affected", "strings": {"options": {"forward": "Forward", "backward": "Backward", "both": "Both / All"}}}, "rating": {"key": "rating", "type": "combo", "label": "Power Rating", "snake_case": false}, "recycling_accepts": {"key": "recycling:", "type": "multiCombo", "label": "Accepts"}, "recycling_type": {"key": "recycling_type", "type": "combo", "label": "Type", "placeholder": "Container, Center", "strings": {"options": {"container": "Container", "centre": "Center"}}}, @@ -377,9 +377,9 @@ "trade": {"key": "trade", "type": "typeCombo", "label": "Type"}, "traffic_calming": {"key": "traffic_calming", "type": "typeCombo", "label": "Type"}, "traffic_sign": {"key": "traffic_sign", "type": "typeCombo", "label": "Traffic Sign"}, - "traffic_sign/direction": {"key": "traffic_sign:direction", "type": "combo", "label": "Direction affected", "strings": {"options": {"forward": "Forward", "backward": "Backward", "both": "Both / All"}}}, + "traffic_sign/direction": {"key": "traffic_sign:direction", "type": "combo", "label": "Direction Affected", "strings": {"options": {"forward": "Forward", "backward": "Backward", "both": "Both / All"}}}, "traffic_signals": {"key": "traffic_signals", "type": "combo", "label": "Type", "default": "signal"}, - "traffic_signals/direction": {"key": "traffic_signals:direction", "type": "combo", "label": "Direction affected", "strings": {"options": {"forward": "Forward", "backward": "Backward", "both": "Both / All"}}}, + "traffic_signals/direction": {"key": "traffic_signals:direction", "type": "combo", "label": "Direction Affected", "strings": {"options": {"forward": "Forward", "backward": "Backward", "both": "Both / All"}}}, "trail_visibility": {"key": "trail_visibility", "type": "combo", "label": "Trail Visibility", "placeholder": "Excellent, Good, Bad...", "strings": {"options": {"excellent": "Excellent: unambiguous path or markers everywhere", "good": "Good: markers visible, sometimes require searching", "intermediate": "Intermediate: few markers, path mostly visible", "bad": "Bad: no markers, path sometimes invisible/pathless", "horrible": "Horrible: often pathless, some orientation skills required", "no": "No: pathless, excellent orientation skills required"}}}, "transformer": {"key": "transformer", "type": "combo", "label": "Type", "strings": {"options": {"distribution": "Distribution", "generator": "Generator", "converter": "Converter", "traction": "Traction", "auto": "Autotransformer", "phase_angle_regulator": "Phase Angle Regulator", "auxiliary": "Auxiliary", "yes": "Unknown"}}}, "trees": {"key": "trees", "type": "semiCombo", "label": "Trees"}, diff --git a/data/presets/fields/direction_vertex.json b/data/presets/fields/direction_vertex.json index 9b0d7ebc00..4084ab684e 100644 --- a/data/presets/fields/direction_vertex.json +++ b/data/presets/fields/direction_vertex.json @@ -1,7 +1,7 @@ { "key": "direction", "type": "combo", - "label": "Direction", + "label": "Direction Affected", "strings": { "options": { "forward": "Forward", diff --git a/data/presets/fields/railway/signal/direction.json b/data/presets/fields/railway/signal/direction.json index 3034345b8a..8736efb54d 100644 --- a/data/presets/fields/railway/signal/direction.json +++ b/data/presets/fields/railway/signal/direction.json @@ -1,7 +1,7 @@ { "key": "railway:signal:direction", "type": "combo", - "label": "Direction", + "label": "Direction Affected", "strings": { "options": { "forward": "Forward", diff --git a/data/presets/fields/traffic_sign/direction.json b/data/presets/fields/traffic_sign/direction.json index 8b5ab49a55..c8e06eca58 100644 --- a/data/presets/fields/traffic_sign/direction.json +++ b/data/presets/fields/traffic_sign/direction.json @@ -1,7 +1,7 @@ { "key": "traffic_sign:direction", "type": "combo", - "label": "Direction", + "label": "Direction Affected", "strings": { "options": { "forward": "Forward", diff --git a/data/presets/fields/traffic_signals/direction.json b/data/presets/fields/traffic_signals/direction.json index 079c2a133f..b4633db673 100644 --- a/data/presets/fields/traffic_signals/direction.json +++ b/data/presets/fields/traffic_signals/direction.json @@ -1,7 +1,7 @@ { "key": "traffic_signals:direction", "type": "combo", - "label": "Direction", + "label": "Direction Affected", "strings": { "options": { "forward": "Forward", From f6b192d5444569da149db649c2df675a7e7e2968 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 4 Jun 2019 09:16:42 -0400 Subject: [PATCH 039/774] Use the popover preset browser instead of the sidebar list when changing presets (close #6468) --- css/80_app.css | 85 +++++++++++++-------------- modules/ui/entity_editor.js | 100 ++++++++++++++++++-------------- modules/ui/inspector.js | 83 ++++---------------------- modules/ui/preset_browser.js | 23 ++++++-- modules/ui/sidebar.js | 2 +- modules/ui/tools/add_feature.js | 2 +- 6 files changed, 129 insertions(+), 166 deletions(-) diff --git a/css/80_app.css b/css/80_app.css index 90b40da46a..4884b88103 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -611,6 +611,9 @@ button.add-note svg.icon { z-index: 300; display: flex; flex-direction: column; + -webkit-box-shadow: 0px 0px 3px 0px rgba(0,0,0,0.29); + -moz-box-shadow: 0px 0px 3px 0px rgba(0,0,0,0.29); + box-shadow: 0px 0px 3px 0px rgba(0,0,0,0.29); } [dir='ltr'] .preset-browser.popover { left: 0; @@ -618,6 +621,15 @@ button.add-note svg.icon { [dir='rtl'] .preset-browser.popover { right: 0; } +#sidebar .preset-browser.popover { + top: 84px; +} +[dir='ltr'] #sidebar .preset-browser.popover { + left: 20px; +} +[dir='rtl'] #sidebar .preset-browser.popover { + right: 20px; +} .preset-browser input[type='search'] { position: relative; width: 100%; @@ -649,11 +661,11 @@ button.add-note svg.icon { overflow-y: auto; max-height: 60vh; } +/* ensure corners are rounded in Chrome .preset-browser, .preset-browser .popover-content { - /* ensure corners are rounded in Chrome */ -webkit-mask-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC); -} +}*/ .preset-browser .popover-header { height: 40px; border-bottom: 2px solid #DCDCDC; @@ -1003,33 +1015,19 @@ a.hide-toggle { position: absolute; } -.panewrap { - position: absolute; - width: 200%; +.entity-editor-pane { + width: 100%; height: 100%; - right: -100%; -} - -.pane { - position: absolute; - width: 50%; - top: 0; - bottom: 30px; -} - -.pane:first-child { - left: 0; + display: flex; + flex-direction: column; } - -.pane:last-child { - right: 0; +.entity-editor-pane .footer { + position: relative; } .inspector-wrap { width: 100%; height: 100%; - overflow: hidden; - position: relative; } .inspector-hidden { @@ -1037,19 +1035,16 @@ a.hide-toggle { } .inspector-body { - overflow-y: scroll; - overflow-x: hidden; - position: absolute; - right: 0; - left: 0; - bottom: 0; + overflow-y: auto; + overflow-x: visible; + width: 100%; + height: 100%; } .feature-list-pane .inspector-body, .preset-list-pane .inspector-body { top: 120px; } -.entity-editor-pane .inspector-body, .selection-list-pane .inspector-body { top: 60px; } @@ -1072,8 +1067,6 @@ a.hide-toggle { } #sidebar .search-header input { - position: absolute; - top: 60px; height: 60px; width: 100%; padding: 5px 10px; @@ -1368,37 +1361,41 @@ a.hide-toggle { background-color: #ececec; } -.preset-list-item button.preset-favorite-button { +.preset-list-item .accessory-buttons { + flex: 0 0 auto; + display: flex; +} +.preset-list-item .accessory-buttons button.preset-favorite-button { border-radius: 0; } -.preset-list-item button.preset-favorite-button, -.preset-list-item button.tag-reference-button { +.preset-list-item .accessory-buttons button.preset-favorite-button, +.preset-list-item .accessory-buttons button.tag-reference-button { height: 100%; width: 32px; flex: 0 0 auto; background: #f6f6f6; } -[dir='ltr'] .preset-list-item button.preset-favorite-button, -[dir='ltr'] .preset-list-item button.tag-reference-button { +[dir='ltr'] .preset-list-item .accessory-buttons button.preset-favorite-button, +[dir='ltr'] .preset-list-item .accessory-buttons button.tag-reference-button { border-left: 1px solid #ccc; } -[dir='rtl'] .preset-list-item button.preset-favorite-button, -[dir='rtl'] .preset-list-item button.tag-reference-button { +[dir='rtl'] .preset-list-item .accessory-buttons button.preset-favorite-button, +[dir='rtl'] .preset-list-item .accessory-buttons button.tag-reference-button { border-right: 1px solid #ccc; } -[dir='ltr'] .preset-list-item button:last-child { +[dir='ltr'] .preset-list-item .accessory-buttons button:last-child { border-radius: 0 4px 4px 0; } -[dir='rtl'] .preset-list-item button:last-child { +[dir='rtl'] .preset-list-item .accessory-buttons button:last-child { border-radius: 4px 0 0 4px; } -.preset-list-item button.preset-favorite-button:hover, -.preset-list-item button.tag-reference-button:hover { +.preset-list-item .accessory-buttons button.preset-favorite-button:hover, +.preset-list-item .accessory-buttons button.tag-reference-button:hover { background: #f1f1f1; } -.preset-list-item button.preset-favorite-button .icon, -.preset-list-item button.tag-reference-button .icon { +.preset-list-item .accessory-buttons button.preset-favorite-button .icon, +.preset-list-item .accessory-buttons button.tag-reference-button .icon { opacity: .5; } diff --git a/modules/ui/entity_editor.js b/modules/ui/entity_editor.js index fd04d260f7..9e7bd7f78b 100644 --- a/modules/ui/entity_editor.js +++ b/modules/ui/entity_editor.js @@ -2,11 +2,10 @@ import { dispatch as d3_dispatch } from 'd3-dispatch'; import {event as d3_event, selectAll as d3_selectAll } from 'd3-selection'; import deepEqual from 'fast-deep-equal'; -import { t, textDirection } from '../util/locale'; +import { t } from '../util/locale'; import { tooltip } from '../util/tooltip'; +import { actionChangePreset } from '../actions/change_preset'; import { actionChangeTags } from '../actions/change_tags'; -import { modeBrowse } from '../modes/browse'; -import { svgIcon } from '../svg/icon'; import { uiPresetFavoriteButton } from './preset_favorite_button'; import { uiPresetIcon } from './preset_icon'; import { uiQuickLinks } from './quick_links'; @@ -14,10 +13,12 @@ import { uiRawMemberEditor } from './raw_member_editor'; import { uiRawMembershipEditor } from './raw_membership_editor'; import { uiRawTagEditor } from './raw_tag_editor'; import { uiTagReference } from './tag_reference'; +import { uiPresetBrowser } from './preset_browser'; import { uiPresetEditor } from './preset_editor'; import { uiEntityIssues } from './entity_issues'; import { uiTooltipHtml } from './tooltipHtml'; import { utilCleanTags, utilRebind } from '../util'; +import { uiViewOnOSM } from './view_on_osm'; export function uiEntityEditor(context) { @@ -38,45 +39,12 @@ export function uiEntityEditor(context) { var rawTagEditor = uiRawTagEditor(context).on('change', changeTags); var rawMemberEditor = uiRawMemberEditor(context); var rawMembershipEditor = uiRawMembershipEditor(context); + var presetBrowser = uiPresetBrowser(context, [], choosePreset); function entityEditor(selection) { var entity = context.entity(_entityID); var tags = Object.assign({}, entity.tags); // shallow copy - // Header - var header = selection.selectAll('.header') - .data([0]); - - // Enter - var headerEnter = header.enter() - .append('div') - .attr('class', 'header fillL cf'); - - headerEnter - .append('button') - .attr('class', 'fl preset-reset preset-choose') - .call(svgIcon((textDirection === 'rtl') ? '#iD-icon-forward' : '#iD-icon-backward')); - - headerEnter - .append('button') - .attr('class', 'fr preset-close') - .on('click', function() { context.enter(modeBrowse(context)); }) - .call(svgIcon(_modified ? '#iD-icon-apply' : '#iD-icon-close')); - - headerEnter - .append('h3') - .text(t('inspector.edit')); - - // Update - header = header - .merge(headerEnter); - - header.selectAll('.preset-reset') - .on('click', function() { - dispatch.call('choose', this, _activePreset); - }); - - // Body var body = selection.selectAll('.inspector-body') .data([0]); @@ -87,12 +55,13 @@ export function uiEntityEditor(context) { .attr('class', 'inspector-body') .on('scroll.entity-editor', function() { _scrolled = true; }); - bodyEnter + var presetButtonWrap = bodyEnter .append('div') .attr('class', 'preset-list-item inspector-inner') .append('div') - .attr('class', 'preset-list-button-wrap') - .append('button') + .attr('class', 'preset-list-button-wrap'); + + presetButtonWrap.append('button') .attr('class', 'preset-list-button preset-reset') .call(tooltip().title(t('inspector.back_tooltip')).placement('bottom')) .append('div') @@ -100,6 +69,13 @@ export function uiEntityEditor(context) { .append('div') .attr('class', 'label-inner'); + presetButtonWrap.append('div') + .attr('class', 'accessory-buttons'); + + if (!bodyEnter.empty()) { + presetBrowser.render(bodyEnter); + } + bodyEnter .append('div') .attr('class', 'preset-quick-links'); @@ -130,18 +106,32 @@ export function uiEntityEditor(context) { .attr('class', 'key-trap'); + var footer = selection.selectAll('.footer') + .data([0]); + + footer = footer.enter() + .append('div') + .attr('class', 'footer') + .merge(footer); + + footer + .call(uiViewOnOSM(context) + .what(context.hasEntity(_entityID)) + ); + + // Update body = body .merge(bodyEnter); if (_presetFavorite) { - body.selectAll('.preset-list-button-wrap') + body.selectAll('.preset-list-button-wrap accessory-buttons') .call(_presetFavorite.button); } // update header if (_tagReference) { - body.selectAll('.preset-list-button-wrap') + body.selectAll('.preset-list-button-wrap .accessory-buttons') .call(_tagReference.button); body.selectAll('.preset-list-item') @@ -150,7 +140,21 @@ export function uiEntityEditor(context) { body.selectAll('.preset-reset') .on('click', function() { - dispatch.call('choose', this, _activePreset); + if (presetBrowser.isShown()) { + presetBrowser.hide(); + } else { + presetBrowser.setAllowedGeometry([context.geometry(_entityID)]); + presetBrowser.show(); + } + //dispatch.call('choose', this, _activePreset); + }) + .on('mousedown', function() { + d3_event.preventDefault(); + d3_event.stopPropagation(); + }) + .on('mouseup', function() { + d3_event.preventDefault(); + d3_event.stopPropagation(); }); body.select('.preset-list-item button') @@ -268,6 +272,16 @@ export function uiEntityEditor(context) { } } + function choosePreset(preset, geom) { + context.presets().setMostRecent(preset, geom); + context.perform( + actionChangePreset(_entityID, _activePreset, preset), + t('operations.change_tags.annotation') + ); + + context.validator().validate(); // rerun validation + } + // Tag changes that fire on input can all get coalesced into a single // history operation when the user leaves the field. #2342 diff --git a/modules/ui/inspector.js b/modules/ui/inspector.js index bce4f9479c..7348bd30d3 100644 --- a/modules/ui/inspector.js +++ b/modules/ui/inspector.js @@ -1,52 +1,32 @@ -import { interpolate as d3_interpolate } from 'd3-interpolate'; + import { select as d3_select, selectAll as d3_selectAll } from 'd3-selection'; import { uiEntityEditor } from './entity_editor'; -import { uiPresetList } from './preset_list'; -import { uiViewOnOSM } from './view_on_osm'; export function uiInspector(context) { - var presetList = uiPresetList(context); var entityEditor = uiEntityEditor(context); - var wrap = d3_select(null), - presetPane = d3_select(null), - editorPane = d3_select(null); + var editorPane = d3_select(null); var _state = 'select'; var _entityID; var _newFeature = false; function inspector(selection, newFeature) { - presetList - .entityID(_entityID) - .autofocus(_newFeature) - .on('choose', inspector.setPreset); entityEditor .state(_state) - .entityID(_entityID) - .on('choose', inspector.showList); + .entityID(_entityID); - wrap = selection.selectAll('.panewrap') + editorPane = selection.selectAll('.entity-editor-pane') .data([0]); - var enter = wrap.enter() - .append('div') - .attr('class', 'panewrap'); - - enter - .append('div') - .attr('class', 'preset-list-pane pane'); - - enter + var enter = editorPane.enter() .append('div') - .attr('class', 'entity-editor-pane pane'); - - wrap = wrap.merge(enter); - presetPane = wrap.selectAll('.preset-list-pane'); - editorPane = wrap.selectAll('.entity-editor-pane'); + .attr('class', 'entity-editor-pane'); + editorPane = editorPane.merge(enter); +/* var entity = context.entity(_entityID); var hasNonGeometryTags = entity.hasNonGeometryTags(); @@ -55,53 +35,10 @@ export function uiInspector(context) { var issues = context.validator().getEntityIssues(_entityID); // start with the preset list if the feature is new and untagged or is an uninteresting vertex var showPresetList = (newFeature && !hasNonGeometryTags) || (isTaglessOrIntersectionVertex && !issues.length); - - if (showPresetList) { - wrap.style('right', '-100%'); - presetPane.call(presetList); - } else { - wrap.style('right', '0%'); - editorPane.call(entityEditor); - } - - var footer = selection.selectAll('.footer') - .data([0]); - - footer = footer.enter() - .append('div') - .attr('class', 'footer') - .merge(footer); - - footer - .call(uiViewOnOSM(context) - .what(context.hasEntity(_entityID)) - ); +*/ + editorPane.call(entityEditor); } - inspector.showList = function(preset) { - wrap.transition() - .styleTween('right', function() { return d3_interpolate('0%', '-100%'); }); - - presetPane - .call(presetList.preset(preset).autofocus(true)); - }; - - inspector.setPreset = function(preset) { - - // upon setting multipolygon, go to the area preset list instead of the editor - if (preset.id === 'type/multipolygon') { - presetPane - .call(presetList.preset(preset).autofocus(true)); - - } else { - wrap.transition() - .styleTween('right', function() { return d3_interpolate('-100%', '0%'); }); - - editorPane - .call(entityEditor.preset(preset)); - } - - }; inspector.state = function(val) { if (!arguments.length) return _state; diff --git a/modules/ui/preset_browser.js b/modules/ui/preset_browser.js index 4bd4be27c8..d47edc3071 100644 --- a/modules/ui/preset_browser.js +++ b/modules/ui/preset_browser.js @@ -10,7 +10,7 @@ import { tooltip } from '../util/tooltip'; import { uiTagReference } from './tag_reference'; import { uiPresetFavoriteButton } from './preset_favorite_button'; import { uiPresetIcon } from './preset_icon'; -import { utilKeybinding, utilNoAuto, utilRebind } from '../util'; +import { utilKeybinding, utilNoAuto } from '../util'; export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { @@ -52,7 +52,7 @@ export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { .on('change.preset-browser.' + uid , null); popover.classed('hide', true); - onCancel(); + if (onCancel) onCancel(); }) .on('keypress', keypress) .on('keydown', keydown) @@ -85,10 +85,14 @@ export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { message = footer.append('div') .attr('class', 'message'); + var geomForButtons = allowedGeometry.slice(); + var vertexIndex = geomForButtons.indexOf('vertex'); + if (vertexIndex !== -1) geomForButtons.splice(vertexIndex, 1); + footer.append('div') .attr('class', 'filter-wrap') .selectAll('button.filter') - .data(['point', 'line', 'area']) + .data(geomForButtons) .enter() .append('button') .attr('class', 'filter active') @@ -130,6 +134,15 @@ export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { search.node().blur(); }; + + browser.setAllowedGeometry = function(array) { + allowedGeometry = array; + updateShownGeometry(array.slice()); + updateFilterButtonsStates(); + updateResultsList(); + }; + + function updateShownGeometry(geom) { shownGeometry = geom.sort(); presets = context.presets().matchAnyGeometry(shownGeometry); @@ -226,6 +239,8 @@ export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { function updateResultsList() { + if (search.empty()) return; + var value = search.property('value'); var results; if (value.length) { @@ -573,7 +588,7 @@ export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { item.choose = function() { if (d3_select(this).classed('disabled')) return; - onChoose(preset, geometry); + if (onChoose) onChoose(preset, geometry); search.node().blur(); }; diff --git a/modules/ui/sidebar.js b/modules/ui/sidebar.js index a468fb0184..019629d009 100644 --- a/modules/ui/sidebar.js +++ b/modules/ui/sidebar.js @@ -93,7 +93,7 @@ export function uiSidebar(context) { var inspectorWrap = selection .append('div') - .attr('class', 'inspector-hidden inspector-wrap fr'); + .attr('class', 'inspector-hidden inspector-wrap'); function hover(datum) { diff --git a/modules/ui/tools/add_feature.js b/modules/ui/tools/add_feature.js index 459d05e9ac..9732e897bb 100644 --- a/modules/ui/tools/add_feature.js +++ b/modules/ui/tools/add_feature.js @@ -19,7 +19,7 @@ export function uiToolAddFeature(context) { label: t('toolbar.add_feature') }; - var allowedGeometry = ['area', 'line', 'point', 'vertex']; + var allowedGeometry = ['point', 'vertex', 'line', 'area']; var presetBrowser = uiPresetBrowser(context, allowedGeometry, browserDidSelectPreset, browserDidClose); var button = d3_select(null); From 3f798b85cc723a5c5159721289f6fc755bb446d5 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 4 Jun 2019 09:25:53 -0400 Subject: [PATCH 040/774] Use background blur filter for translucent dark elements on supported browsers --- css/80_app.css | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/css/80_app.css b/css/80_app.css index 4884b88103..a0c278d7f4 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -247,10 +247,14 @@ table.tags, table.tags td, table.tags th { .fillD { background: rgba(0,0,0,.5); color: #fff; + -webkit-backdrop-filter: blur(2.5px); + backdrop-filter: blur(2.5px); } .fillD2 { background: rgba(0,0,0,.75); color: #fff; + -webkit-backdrop-filter: blur(2.5px); + backdrop-filter: blur(2.5px); } .fl { float: left;} From 1c3b6bf7fc9f141ae7489210b250c6f08f2bdc3e Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 4 Jun 2019 13:09:07 -0400 Subject: [PATCH 041/774] Add an assistant panel that displays the current mode (re: #6119) --- build_data.js | 2 + css/80_app.css | 82 ++++++++++++--- data/core.yaml | 7 ++ dist/locales/en.json | 9 ++ modules/modes/draw_line.js | 4 +- modules/ui/assistant.js | 136 +++++++++++++++++++++++++ modules/ui/init.js | 10 +- modules/ui/tools/add_feature.js | 5 +- svg/fontawesome/fas-edit.svg | 1 + svg/fontawesome/fas-map-marked-alt.svg | 1 + 10 files changed, 236 insertions(+), 21 deletions(-) create mode 100644 modules/ui/assistant.js create mode 100644 svg/fontawesome/fas-edit.svg create mode 100644 svg/fontawesome/fas-map-marked-alt.svg diff --git a/build_data.js b/build_data.js index e92125de89..9cb032bc29 100644 --- a/build_data.js +++ b/build_data.js @@ -54,6 +54,8 @@ module.exports = function buildData() { // Font Awesome icons used var faIcons = { + 'fas-edit': {}, + 'fas-map-marked-alt': {}, 'fas-i-cursor': {}, 'fas-lock': {}, 'fas-long-arrow-alt-right': {}, diff --git a/css/80_app.css b/css/80_app.css index a0c278d7f4..7be0ba5d57 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -247,14 +247,18 @@ table.tags, table.tags td, table.tags th { .fillD { background: rgba(0,0,0,.5); color: #fff; + /* -webkit-backdrop-filter: blur(2.5px); backdrop-filter: blur(2.5px); + */ } .fillD2 { background: rgba(0,0,0,.75); color: #fff; + /* -webkit-backdrop-filter: blur(2.5px); backdrop-filter: blur(2.5px); + */ } .fl { float: left;} @@ -952,6 +956,62 @@ a.hide-toggle { } +/* Over Map +------------------------------------------------------- */ +.over-map { + position: absolute; + left: 0; + right: 0; + top: 71px; + bottom: 30px; + pointer-events: none; + display: flex; + flex-direction: row-reverse; + align-items: flex-end; +} +.over-map > * { + pointer-events: auto; +} + +/* Assistant +------------------------------------------------------- */ +.assistant { + flex: 0 0 auto; + background: rgba(32, 29, 29, 0.9); + color: #fff; + border-radius: 4px; + padding: 10px; + display: flex; + margin-bottom: 10px; + + -webkit-box-shadow: 0px 0px 6px 0px rgba(0,0,0,0.5); + -moz-box-shadow: 0px 0px 6px 0px rgba(0,0,0,0.5); + box-shadow: 0px 0px 6px 0px rgba(0,0,0,0.5); + + -webkit-backdrop-filter: blur(2.5px); + backdrop-filter: blur(2.5px); +} +.assistant .icon-col { + flex: 0 0 auto; +} +.assistant .icon-col .icon { + width: 30px; + height: 30px; + margin-right: 10px; +} +.assistant .mode-label { + color: #ccc; + text-transform: uppercase; + letter-spacing: 0.7px; + font-size: 10px; + font-weight: bold; + margin-bottom: -2px; +} +.assistant .subject-title { + font-size: 13px; + font-weight: bold; +} + /* Sidebar / Inspector ------------------------------------------------------- */ .sidebar-wrap { @@ -961,6 +1021,12 @@ a.hide-toggle { padding-top: 10px; padding-bottom: 10px; flex: 0 0 auto; + pointer-events: none; + display: flex; + flex-direction: column; +} +.sidebar-wrap > * { + pointer-events: auto; } #sidebar { position: relative; @@ -4215,22 +4281,6 @@ img.tile-debug { padding: 0 5px; } - -.over-map { - position: absolute; - left: 0; - right: 0; - top: 71px; - bottom: 30px; - pointer-events: none; - display: flex; - flex-direction: row-reverse; - align-items: flex-end; -} -.over-map > * { - pointer-events: auto; -} - /* Information Panels ------------------------------------------------------- */ .info-panels { diff --git a/data/core.yaml b/data/core.yaml index b3738f47e1..c6533ca000 100644 --- a/data/core.yaml +++ b/data/core.yaml @@ -30,6 +30,13 @@ en: orthogonal: title: Rectangular key: A + assistant: + mode: + adding: Adding + drawing: Drawing + mapping: Mapping + editing: Editing + global_location: Planet Earth modes: add_feature: search_placeholder: Search feature types diff --git a/dist/locales/en.json b/dist/locales/en.json index 645f8b77fe..adaa7c8929 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -39,6 +39,15 @@ "key": "A" } }, + "assistant": { + "mode": { + "adding": "Adding", + "drawing": "Drawing", + "mapping": "Mapping", + "editing": "Editing" + }, + "global_location": "Planet Earth" + }, "modes": { "add_feature": { "search_placeholder": "Search feature types", diff --git a/modules/modes/draw_line.js b/modules/modes/draw_line.js index 9ab7f1a244..6fa48a889e 100644 --- a/modules/modes/draw_line.js +++ b/modules/modes/draw_line.js @@ -1,11 +1,13 @@ import { t } from '../util/locale'; import { behaviorDrawWay } from '../behavior/draw_way'; import { modeSelect } from './select'; +import { utilDisplayLabel } from '../util'; export function modeDrawLine(context, wayID, startGraph, baselineGraph, button, affix, addMode) { var mode = { button: button, - id: 'draw-line' + id: 'draw-line', + title: utilDisplayLabel(context.entity(wayID), context) }; var behavior; diff --git a/modules/ui/assistant.js b/modules/ui/assistant.js new file mode 100644 index 0000000000..2cc29c61f4 --- /dev/null +++ b/modules/ui/assistant.js @@ -0,0 +1,136 @@ +import _debounce from 'lodash-es/debounce'; +import { + select as d3_select +} from 'd3-selection'; +import { svgIcon } from '../svg/icon'; +import { t } from '../util/locale'; +import { services } from '../services'; +import { utilDisplayLabel } from '../util'; + +export function uiAssistant(context) { + + var container = d3_select(null); + + var assistant = function(selection) { + + container = selection.append('div') + .attr('class', 'assistant'); + + redraw(); + + context + .on('enter.assistant', redraw); + + context.map() + .on('move.assistant', debouncedGetLocation); + }; + + function redraw() { + if (container.empty()) return; + + var mode = context.mode(); + if (!mode) return; + + var iconCol = container.selectAll('.icon-col') + .data([0]); + iconCol = iconCol.enter() + .append('div') + .attr('class', 'icon-col') + .call(svgIcon('#')) + .merge(iconCol); + + var bodyCol = container.selectAll('.body-col') + .data([0]); + + var bodyColEnter = bodyCol.enter() + .append('div') + .attr('class', 'body-col'); + + bodyColEnter.append('div') + .attr('class', 'mode-label'); + + bodyColEnter.append('div') + .attr('class', 'subject-title'); + + bodyCol = bodyColEnter.merge(bodyCol); + + var iconUse = iconCol.selectAll('svg.icon use'), + modeLabel = bodyCol.selectAll('.mode-label'), + subjectTitle = bodyCol.selectAll('.subject-title'); + + if (mode.id.indexOf('point') !== -1) { + iconUse.attr('href','#iD-icon-point'); + } else if (mode.id.indexOf('line') !== -1) { + iconUse.attr('href','#iD-icon-line'); + } else if (mode.id.indexOf('area') !== -1) { + iconUse.attr('href','#iD-icon-area'); + } + + subjectTitle.classed('location', false); + + if (mode.id === 'add-point' || mode.id === 'add-line' || mode.id === 'add-area') { + + modeLabel.text(t('assistant.mode.adding')); + + subjectTitle.text(mode.title); + + } else if (mode.id === 'draw-line' || mode.id === 'draw-area') { + + modeLabel.text(t('assistant.mode.drawing')); + + subjectTitle.text(mode.title); + + } else if (mode.id === 'select' && mode.selectedIDs().length === 1) { + + iconUse.attr('href','#fas-edit'); + + var id = mode.selectedIDs()[0]; + var entity = context.entity(id); + + modeLabel.text(t('assistant.mode.editing')); + + subjectTitle.text(utilDisplayLabel(entity, context)); + + } else { + iconUse.attr('href','#fas-map-marked-alt'); + + modeLabel.text(t('assistant.mode.mapping')); + + subjectTitle.classed('location', true); + subjectTitle.text(currLocation); + debouncedGetLocation(); + } + + } + + var defaultLoc = t('assistant.global_location'); + var currLocation = defaultLoc; + + var debouncedGetLocation = _debounce(getLocation, 250); + function getLocation() { + if (!services.geocoder || context.map().zoom() < 11) { + currLocation = defaultLoc; + container.selectAll('.subject-title.location') + .text(currLocation); + } else { + services.geocoder.reverse(context.map().center(), function(err, result) { + if (err || !result || !result.address) { + currLocation = defaultLoc; + } else { + var addr = result.address; + var place = (addr && (addr.town || addr.city || addr.county)) || ''; + var region = (addr && (addr.state || addr.country)) || ''; + var separator = (place && region) ? t('success.thank_you_where.separator') : ''; + + currLocation = t('success.thank_you_where.format', + { place: place, separator: separator, region: region } + ); + } + container.selectAll('.subject-title.location') + .text(currLocation); + }); + } + } + + return assistant; +} diff --git a/modules/ui/init.js b/modules/ui/init.js index 515065f745..0300f9e6d0 100644 --- a/modules/ui/init.js +++ b/modules/ui/init.js @@ -13,6 +13,7 @@ import { svgDefs, svgIcon } from '../svg'; import { utilGetDimensions } from '../util/dimensions'; import { uiAccount } from './account'; +import { uiAssistant } from './assistant'; import { uiAttribution } from './attribution'; import { uiBackground } from './background'; import { uiContributors } from './contributors'; @@ -255,9 +256,14 @@ export function uiInit(context) { .classed('hide', true) .call(ui.photoviewer); - overMap + var sidebarWrap = overMap .append('div') - .attr('class', 'sidebar-wrap') + .attr('class', 'sidebar-wrap'); + + sidebarWrap + .call(uiAssistant(context)); + + sidebarWrap .append('div') .attr('id', 'sidebar') .call(ui.sidebar); diff --git a/modules/ui/tools/add_feature.js b/modules/ui/tools/add_feature.js index 9732e897bb..8e40ed50ff 100644 --- a/modules/ui/tools/add_feature.js +++ b/modules/ui/tools/add_feature.js @@ -6,7 +6,7 @@ import { } from 'd3-selection'; import { t } from '../../util/locale'; -import { svgIcon } from '../../svg/index'; +import { svgIcon } from '../../svg/icon'; import { tooltip } from '../../util/tooltip'; import { uiTooltipHtml } from '../tooltipHtml'; import { uiPresetBrowser } from '../preset_browser'; @@ -98,7 +98,8 @@ export function uiToolAddFeature(context) { var modeInfo = { button: markerClass, preset: preset, - geometry: geometry + geometry: geometry, + title: preset.name().split(' – ')[0] }; var mode; diff --git a/svg/fontawesome/fas-edit.svg b/svg/fontawesome/fas-edit.svg new file mode 100644 index 0000000000..e757323be3 --- /dev/null +++ b/svg/fontawesome/fas-edit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/svg/fontawesome/fas-map-marked-alt.svg b/svg/fontawesome/fas-map-marked-alt.svg new file mode 100644 index 0000000000..f4b72dd2b2 --- /dev/null +++ b/svg/fontawesome/fas-map-marked-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file From c5267842bdd04ab8f479cde2933bac68c0a09db9 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 4 Jun 2019 13:43:58 -0400 Subject: [PATCH 042/774] Only show the region name in the assistant at mid zoom levels --- modules/ui/assistant.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/modules/ui/assistant.js b/modules/ui/assistant.js index 2cc29c61f4..6da67181a1 100644 --- a/modules/ui/assistant.js +++ b/modules/ui/assistant.js @@ -108,7 +108,8 @@ export function uiAssistant(context) { var debouncedGetLocation = _debounce(getLocation, 250); function getLocation() { - if (!services.geocoder || context.map().zoom() < 11) { + var zoom = context.map().zoom(); + if (!services.geocoder || zoom < 9) { currLocation = defaultLoc; container.selectAll('.subject-title.location') .text(currLocation); @@ -118,7 +119,7 @@ export function uiAssistant(context) { currLocation = defaultLoc; } else { var addr = result.address; - var place = (addr && (addr.town || addr.city || addr.county)) || ''; + var place = (zoom > 14 && addr && (addr.town || addr.city || addr.county)) || ''; var region = (addr && (addr.state || addr.country)) || ''; var separator = (place && region) ? t('success.thank_you_where.separator') : ''; From ed465f8ad307637053e8c671f4e17be9d7bab1e7 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 4 Jun 2019 15:05:45 -0400 Subject: [PATCH 043/774] Add basic drawing instructions to the assistant (close #6119) --- css/80_app.css | 11 ++++++++++- data/core.yaml | 6 ++++++ dist/locales/en.json | 7 +++++++ modules/ui/assistant.js | 24 +++++++++++++++++++++++- 4 files changed, 46 insertions(+), 2 deletions(-) diff --git a/css/80_app.css b/css/80_app.css index 7be0ba5d57..d5df9382d6 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -983,6 +983,7 @@ a.hide-toggle { padding: 10px; display: flex; margin-bottom: 10px; + max-width: 350px; -webkit-box-shadow: 0px 0px 6px 0px rgba(0,0,0,0.5); -moz-box-shadow: 0px 0px 6px 0px rgba(0,0,0,0.5); @@ -1005,12 +1006,20 @@ a.hide-toggle { letter-spacing: 0.7px; font-size: 10px; font-weight: bold; - margin-bottom: -2px; + margin-bottom: -3px; } .assistant .subject-title { font-size: 13px; font-weight: bold; } +.assistant .body-text { + font-size: 12px; + color: #ccc; + line-height: 1.35em; +} +.assistant .body-text:empty { + display: none; +} /* Sidebar / Inspector ------------------------------------------------------- */ diff --git a/data/core.yaml b/data/core.yaml index c6533ca000..8e229d9efb 100644 --- a/data/core.yaml +++ b/data/core.yaml @@ -36,6 +36,12 @@ en: drawing: Drawing mapping: Mapping editing: Editing + instructions: + add_point: Click or tap the center of the feature. + add_line: Click or tap the starting location. + draw_line: Trace the feature's centerline. + add_area: Click or tap any corner of the feature. + draw_area: Trace the feature's outline. global_location: Planet Earth modes: add_feature: diff --git a/dist/locales/en.json b/dist/locales/en.json index adaa7c8929..9761ab5292 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -46,6 +46,13 @@ "mapping": "Mapping", "editing": "Editing" }, + "instructions": { + "add_point": "Click or tap the center of the feature.", + "add_line": "Click or tap the starting location.", + "draw_line": "Trace the feature's centerline.", + "add_area": "Click or tap any corner of the feature.", + "draw_area": "Trace the feature's outline." + }, "global_location": "Planet Earth" }, "modes": { diff --git a/modules/ui/assistant.js b/modules/ui/assistant.js index 6da67181a1..4c7c8f554b 100644 --- a/modules/ui/assistant.js +++ b/modules/ui/assistant.js @@ -52,11 +52,15 @@ export function uiAssistant(context) { bodyColEnter.append('div') .attr('class', 'subject-title'); + bodyColEnter.append('div') + .attr('class', 'body-text'); + bodyCol = bodyColEnter.merge(bodyCol); var iconUse = iconCol.selectAll('svg.icon use'), modeLabel = bodyCol.selectAll('.mode-label'), - subjectTitle = bodyCol.selectAll('.subject-title'); + subjectTitle = bodyCol.selectAll('.subject-title'), + bodyTextArea = bodyCol.selectAll('.body-text'); if (mode.id.indexOf('point') !== -1) { iconUse.attr('href','#iD-icon-point'); @@ -66,6 +70,8 @@ export function uiAssistant(context) { iconUse.attr('href','#iD-icon-area'); } + var bodyText = ''; + subjectTitle.classed('location', false); if (mode.id === 'add-point' || mode.id === 'add-line' || mode.id === 'add-area') { @@ -74,12 +80,26 @@ export function uiAssistant(context) { subjectTitle.text(mode.title); + if (mode.id === 'add-point') { + bodyText = t('assistant.instructions.add_point'); + } else if (mode.id === 'add-line') { + bodyText = t('assistant.instructions.add_line'); + } else if (mode.id === 'add-area') { + bodyText = t('assistant.instructions.add_area'); + } + } else if (mode.id === 'draw-line' || mode.id === 'draw-area') { modeLabel.text(t('assistant.mode.drawing')); subjectTitle.text(mode.title); + if (mode.id === 'draw-line') { + bodyText = t('assistant.instructions.draw_line'); + } else if (mode.id === 'draw-area') { + bodyText = t('assistant.instructions.draw_area'); + } + } else if (mode.id === 'select' && mode.selectedIDs().length === 1) { iconUse.attr('href','#fas-edit'); @@ -101,6 +121,8 @@ export function uiAssistant(context) { debouncedGetLocation(); } + bodyTextArea.text(bodyText); + } var defaultLoc = t('assistant.global_location'); From e78c9e8deb2661cede8f660bbb98ddfbc48a68a2 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 4 Jun 2019 16:43:09 -0400 Subject: [PATCH 044/774] Remove unneeded file Adjust assistant line spacing Ensure the sidebar does not overflow vertically --- css/80_app.css | 10 ++---- modules/ui/entity_editor.js | 11 +++++- modules/ui/index.js | 1 - modules/ui/inspector.js | 70 ------------------------------------- modules/ui/sidebar.js | 9 +++-- 5 files changed, 17 insertions(+), 84 deletions(-) delete mode 100644 modules/ui/inspector.js diff --git a/css/80_app.css b/css/80_app.css index d5df9382d6..af5d2e8951 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -984,6 +984,7 @@ a.hide-toggle { display: flex; margin-bottom: 10px; max-width: 350px; + line-height: 1.35em; -webkit-box-shadow: 0px 0px 6px 0px rgba(0,0,0,0.5); -moz-box-shadow: 0px 0px 6px 0px rgba(0,0,0,0.5); @@ -1006,7 +1007,6 @@ a.hide-toggle { letter-spacing: 0.7px; font-size: 10px; font-weight: bold; - margin-bottom: -3px; } .assistant .subject-title { font-size: 13px; @@ -1015,7 +1015,7 @@ a.hide-toggle { .assistant .body-text { font-size: 12px; color: #ccc; - line-height: 1.35em; + margin-top: 6px; } .assistant .body-text:empty { display: none; @@ -1050,6 +1050,7 @@ a.hide-toggle { -webkit-box-shadow: 0px 0px 8px 0px rgba(0,0,0,0.29); -moz-box-shadow: 0px 0px 8px 0px rgba(0,0,0,0.29); box-shadow: 0px 0px 8px 0px rgba(0,0,0,0.29); + overflow: hidden; } [dir='rtl'] .sidebar-wrap { padding-left: auto; @@ -1104,11 +1105,6 @@ a.hide-toggle { position: relative; } -.inspector-wrap { - width: 100%; - height: 100%; -} - .inspector-hidden { display: none; } diff --git a/modules/ui/entity_editor.js b/modules/ui/entity_editor.js index 9e7bd7f78b..3e0f814121 100644 --- a/modules/ui/entity_editor.js +++ b/modules/ui/entity_editor.js @@ -41,10 +41,19 @@ export function uiEntityEditor(context) { var rawMembershipEditor = uiRawMembershipEditor(context); var presetBrowser = uiPresetBrowser(context, [], choosePreset); - function entityEditor(selection) { + function entityEditor(selection, newFeature) { var entity = context.entity(_entityID); var tags = Object.assign({}, entity.tags); // shallow copy + /* + var hasNonGeometryTags = entity.hasNonGeometryTags(); + var isTaglessOrIntersectionVertex = entity.geometry(context.graph()) === 'vertex' && + (!hasNonGeometryTags && !entity.isHighwayIntersection(context.graph())); + var issues = context.validator().getEntityIssues(_entityID); + // start with the preset list if the feature is new and untagged or is an uninteresting vertex + var showPresetList = (newFeature && !hasNonGeometryTags) || (isTaglessOrIntersectionVertex && !issues.length); + */ + // Body var body = selection.selectAll('.inspector-body') .data([0]); diff --git a/modules/ui/index.js b/modules/ui/index.js index 137bae15e3..ea21cde9ec 100644 --- a/modules/ui/index.js +++ b/modules/ui/index.js @@ -33,7 +33,6 @@ export { uiImproveOsmDetails } from './improveOSM_details'; export { uiImproveOsmEditor } from './improveOSM_editor'; export { uiImproveOsmHeader } from './improveOSM_header'; export { uiInfo } from './info'; -export { uiInspector } from './inspector'; export { uiKeepRightDetails } from './keepRight_details'; export { uiKeepRightEditor } from './keepRight_editor'; export { uiKeepRightHeader } from './keepRight_header'; diff --git a/modules/ui/inspector.js b/modules/ui/inspector.js deleted file mode 100644 index 7348bd30d3..0000000000 --- a/modules/ui/inspector.js +++ /dev/null @@ -1,70 +0,0 @@ - -import { select as d3_select, selectAll as d3_selectAll } from 'd3-selection'; - -import { uiEntityEditor } from './entity_editor'; - - -export function uiInspector(context) { - var entityEditor = uiEntityEditor(context); - var editorPane = d3_select(null); - var _state = 'select'; - var _entityID; - var _newFeature = false; - - - function inspector(selection, newFeature) { - - entityEditor - .state(_state) - .entityID(_entityID); - - editorPane = selection.selectAll('.entity-editor-pane') - .data([0]); - - var enter = editorPane.enter() - .append('div') - .attr('class', 'entity-editor-pane'); - - editorPane = editorPane.merge(enter); -/* - var entity = context.entity(_entityID); - - var hasNonGeometryTags = entity.hasNonGeometryTags(); - var isTaglessOrIntersectionVertex = entity.geometry(context.graph()) === 'vertex' && - (!hasNonGeometryTags && !entity.isHighwayIntersection(context.graph())); - var issues = context.validator().getEntityIssues(_entityID); - // start with the preset list if the feature is new and untagged or is an uninteresting vertex - var showPresetList = (newFeature && !hasNonGeometryTags) || (isTaglessOrIntersectionVertex && !issues.length); -*/ - editorPane.call(entityEditor); - } - - - inspector.state = function(val) { - if (!arguments.length) return _state; - _state = val; - entityEditor.state(_state); - - // remove any old field help overlay that might have gotten attached to the inspector - d3_selectAll('.field-help-body').remove(); - - return inspector; - }; - - - inspector.entityID = function(val) { - if (!arguments.length) return _entityID; - _entityID = val; - return inspector; - }; - - - inspector.newFeature = function(val) { - if (!arguments.length) return _newFeature; - _newFeature = val; - return inspector; - }; - - - return inspector; -} diff --git a/modules/ui/sidebar.js b/modules/ui/sidebar.js index 019629d009..cda19d924e 100644 --- a/modules/ui/sidebar.js +++ b/modules/ui/sidebar.js @@ -13,7 +13,7 @@ import { osmEntity, osmNote, qaError } from '../osm'; import { services } from '../services'; import { uiDataEditor } from './data_editor'; import { uiFeatureList } from './feature_list'; -import { uiInspector } from './inspector'; +import { uiEntityEditor } from './entity_editor'; import { uiImproveOsmEditor } from './improveOSM_editor'; import { uiKeepRightEditor } from './keepRight_editor'; import { uiNoteEditor } from './note_editor'; @@ -21,7 +21,7 @@ import { textDirection } from '../util/locale'; export function uiSidebar(context) { - var inspector = uiInspector(context); + var inspector = uiEntityEditor(context); var dataEditor = uiDataEditor(context); var noteEditor = uiNoteEditor(context); var improveOsmEditor = uiImproveOsmEditor(context); @@ -93,7 +93,7 @@ export function uiSidebar(context) { var inspectorWrap = selection .append('div') - .attr('class', 'inspector-hidden inspector-wrap'); + .attr('class', 'inspector-hidden inspector-wrap entity-editor-pane'); function hover(datum) { @@ -213,8 +213,7 @@ export function uiSidebar(context) { if (inspector.entityID() !== id || inspector.state() !== 'select') { inspector .state('select') - .entityID(id) - .newFeature(newFeature); + .entityID(id); inspectorWrap .call(inspector, newFeature); From 7fc6fd6b2fbb4288c7a3364040caa6ab6264ca94 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 5 Jun 2019 08:45:48 -0400 Subject: [PATCH 045/774] Restore sidebar resizing (close #6488) Prevent overflow of feature search results --- css/80_app.css | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/css/80_app.css b/css/80_app.css index af5d2e8951..761afc5718 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -1034,9 +1034,14 @@ a.hide-toggle { display: flex; flex-direction: column; } +[dir='rtl'] .sidebar-wrap { + padding-left: auto; + padding-right: 10px; +} .sidebar-wrap > * { pointer-events: auto; } + #sidebar { position: relative; height: 100%; @@ -1050,11 +1055,7 @@ a.hide-toggle { -webkit-box-shadow: 0px 0px 8px 0px rgba(0,0,0,0.29); -moz-box-shadow: 0px 0px 8px 0px rgba(0,0,0,0.29); box-shadow: 0px 0px 8px 0px rgba(0,0,0,0.29); - overflow: hidden; -} -[dir='rtl'] .sidebar-wrap { - padding-left: auto; - padding-right: 10px; + display: flex; } #sidebar-resizer { @@ -1116,9 +1117,10 @@ a.hide-toggle { height: 100%; } -.feature-list-pane .inspector-body, -.preset-list-pane .inspector-body { - top: 120px; +.feature-list-pane { + width: 100%; + display: flex; + flex-direction: column; } .selection-list-pane .inspector-body { top: 60px; From 14c6b8ff37703ce6599ee852f8a9e9cf876725ec Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 5 Jun 2019 10:51:06 -0400 Subject: [PATCH 046/774] Replace splash screen with a welcome UI in the assistant (close #6486) --- build_data.js | 2 + css/80_app.css | 30 ++++++++++++++ data/core.yaml | 14 ++++--- dist/locales/en.json | 18 ++++---- modules/ui/assistant.js | 51 ++++++++++++++++++++++- modules/ui/index.js | 1 - modules/ui/init.js | 2 - modules/ui/splash.js | 80 ------------------------------------ svg/fontawesome/fas-moon.svg | 1 + svg/fontawesome/fas-sun.svg | 1 + 10 files changed, 104 insertions(+), 96 deletions(-) delete mode 100644 modules/ui/splash.js create mode 100644 svg/fontawesome/fas-moon.svg create mode 100644 svg/fontawesome/fas-sun.svg diff --git a/build_data.js b/build_data.js index 9cb032bc29..292a2d9170 100644 --- a/build_data.js +++ b/build_data.js @@ -54,6 +54,8 @@ module.exports = function buildData() { // Font Awesome icons used var faIcons = { + 'fas-sun': {}, + 'fas-moon': {}, 'fas-edit': {}, 'fas-map-marked-alt': {}, 'fas-i-cursor': {}, diff --git a/css/80_app.css b/css/80_app.css index 761afc5718..ffaffbf1b6 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -1020,6 +1020,36 @@ a.hide-toggle { .assistant .body-text:empty { display: none; } +.assistant b { + font-weight: bold; +} +.assistant br { + display: block; + margin-top: 10px; + content: " "; +} + +.assistant.prominent .icon-col .icon { + width: 40px; + height: 40px; + color: #FFCF4A; +} +.assistant.prominent .mode-label { + display: none; +} +.assistant.prominent .subject-title { + font-family: Georgia, Verdana, serif; + font-weight: bold; + font-size: 20px; + margin-top: 6px; +} +.assistant.prominent .body-text { + font-size: 14px; + margin-top: 10px; + margin-bottom: 6px; + line-height: 1.35em; +} + /* Sidebar / Inspector ------------------------------------------------------- */ diff --git a/data/core.yaml b/data/core.yaml index 8e229d9efb..3b59f3018c 100644 --- a/data/core.yaml +++ b/data/core.yaml @@ -43,6 +43,15 @@ en: add_area: Click or tap any corner of the feature. draw_area: Trace the feature's outline. global_location: Planet Earth + greetings: + morning: Good Morning + afternoon: Good Afternoon + evening: Good Evening + # "Good Night" isn't a greeting in English but it can be in some languages + night: Good Evening + welcome: + first_time: "You’re editing OpenStreetMap: the free, collborative world map.
If this is your first time here, consider taking the quick-start tutorial.
Thanks for contributing. Have fun!" + return: "Welcome back. Ready to make the map even better?" modes: add_feature: search_placeholder: Search feature types @@ -776,11 +785,6 @@ en: confirm: okay: "OK" cancel: "Cancel" - splash: - welcome: Welcome to the iD OpenStreetMap editor - text: "iD is a friendly but powerful tool for contributing to the world's best free world map. This is version {version}. For more information see {website} and report bugs at {github}." - walkthrough: "Start the Walkthrough" - start: "Edit now" source_switch: live: live lose_changes: "You have unsaved changes. Switching the map server will discard them. Are you sure you want to switch servers?" diff --git a/dist/locales/en.json b/dist/locales/en.json index 9761ab5292..fc0173cfbd 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -53,7 +53,17 @@ "add_area": "Click or tap any corner of the feature.", "draw_area": "Trace the feature's outline." }, - "global_location": "Planet Earth" + "global_location": "Planet Earth", + "greetings": { + "morning": "Good Morning", + "afternoon": "Good Afternoon", + "evening": "Good Evening", + "night": "Good Evening" + }, + "welcome": { + "first_time": "You’re editing OpenStreetMap: the free, collborative world map.
If this is your first time here, consider taking the quick-start tutorial.
Thanks for contributing. Have fun!", + "return": "Welcome back. Ready to make the map even better?" + } }, "modes": { "add_feature": { @@ -966,12 +976,6 @@ "okay": "OK", "cancel": "Cancel" }, - "splash": { - "welcome": "Welcome to the iD OpenStreetMap editor", - "text": "iD is a friendly but powerful tool for contributing to the world's best free world map. This is version {version}. For more information see {website} and report bugs at {github}.", - "walkthrough": "Start the Walkthrough", - "start": "Edit now" - }, "source_switch": { "live": "live", "lose_changes": "You have unsaved changes. Switching the map server will discard them. Are you sure you want to switch servers?", diff --git a/modules/ui/assistant.js b/modules/ui/assistant.js index 4c7c8f554b..952e84b507 100644 --- a/modules/ui/assistant.js +++ b/modules/ui/assistant.js @@ -6,11 +6,16 @@ import { svgIcon } from '../svg/icon'; import { t } from '../util/locale'; import { services } from '../services'; import { utilDisplayLabel } from '../util'; +import { uiIntro } from './intro'; export function uiAssistant(context) { var container = d3_select(null); + var didEditAnythingYet = false; + var isFirstSession = !context.storage('sawSplash'); + context.storage('sawSplash', true); + var assistant = function(selection) { container = selection.append('div') @@ -23,8 +28,20 @@ export function uiAssistant(context) { context.map() .on('move.assistant', debouncedGetLocation); + + context.history() + .on('change.assistant', updateDidEditStatus); }; + function updateDidEditStatus() { + didEditAnythingYet = true; + + context.history() + .on('change.assistant', null); + + redraw(); + } + function redraw() { if (container.empty()) return; @@ -73,6 +90,7 @@ export function uiAssistant(context) { var bodyText = ''; subjectTitle.classed('location', false); + container.classed('prominent', false); if (mode.id === 'add-point' || mode.id === 'add-line' || mode.id === 'add-area') { @@ -111,6 +129,13 @@ export function uiAssistant(context) { subjectTitle.text(utilDisplayLabel(entity, context)); + } else if (!didEditAnythingYet) { + container.classed('prominent', true); + + iconUse.attr('href','#' + greetingIcon()); + subjectTitle.text(t('assistant.greetings.' + greetingTimeframe())); + bodyText = t('assistant.welcome.' + (isFirstSession ? 'first_time' : 'return')); + } else { iconUse.attr('href','#fas-map-marked-alt'); @@ -121,8 +146,32 @@ export function uiAssistant(context) { debouncedGetLocation(); } - bodyTextArea.text(bodyText); + bodyTextArea.html(bodyText); + + bodyTextArea.selectAll('a') + .attr('href', '#') + .on('click', function() { + isFirstSession = false; + updateDidEditStatus(); + context.container().call(uiIntro(context)); + }); + + } + + function greetingTimeframe() { + var now = new Date(); + var hours = now.getHours(); + if (hours >= 20 || hours <= 2) return 'night'; + if (hours >= 17) return 'evening'; + if (hours >= 12) return 'afternoon'; + return 'morning'; + } + function greetingIcon() { + var now = new Date(); + var hours = now.getHours(); + if (hours >= 6 && hours < 18) return 'fas-sun'; + return 'fas-moon'; } var defaultLoc = t('assistant.global_location'); diff --git a/modules/ui/index.js b/modules/ui/index.js index ea21cde9ec..ecfc0cb059 100644 --- a/modules/ui/index.js +++ b/modules/ui/index.js @@ -60,7 +60,6 @@ export { uiSelectionList } from './selection_list'; export { uiSidebar } from './sidebar'; export { uiSourceSwitch } from './source_switch'; export { uiSpinner } from './spinner'; -export { uiSplash } from './splash'; export { uiStatus } from './status'; export { uiSuccess } from './success'; export { uiTagReference } from './tag_reference'; diff --git a/modules/ui/init.js b/modules/ui/init.js index 0300f9e6d0..968a02f37e 100644 --- a/modules/ui/init.js +++ b/modules/ui/init.js @@ -34,7 +34,6 @@ import { uiScale } from './scale'; import { uiShortcuts } from './shortcuts'; import { uiSidebar } from './sidebar'; import { uiSpinner } from './spinner'; -import { uiSplash } from './splash'; import { uiStatus } from './status'; import { uiTopToolbar } from './top_toolbar'; import { uiVersion } from './version'; @@ -302,7 +301,6 @@ export function uiInit(context) { if (!_initCounter++) { if (!hash.startWalkthrough) { context.container() - .call(uiSplash(context)) .call(uiRestore(context)); } diff --git a/modules/ui/splash.js b/modules/ui/splash.js deleted file mode 100644 index 61fd7cd019..0000000000 --- a/modules/ui/splash.js +++ /dev/null @@ -1,80 +0,0 @@ -import { t } from '../util/locale'; -import { uiIntro } from './intro'; -import { uiModal } from './modal'; - - -export function uiSplash(context) { - - return function(selection) { - if (context.storage('sawSplash')) - return; - - context.storage('sawSplash', true); - - var modalSelection = uiModal(selection); - - modalSelection.select('.modal') - .attr('class', 'modal-splash modal'); - - var introModal = modalSelection.select('.content') - .append('div') - .attr('class', 'fillL'); - - introModal - .append('div') - .attr('class','modal-section') - .append('h3').text(t('splash.welcome')); - - introModal - .append('div') - .attr('class','modal-section') - .append('p') - .html(t('splash.text', { - version: context.version, - website: 'ideditor.com', - github: 'github.com' - })); - - var buttonWrap = introModal - .append('div') - .attr('class', 'modal-actions'); - - var walkthrough = buttonWrap - .append('button') - .attr('class', 'walkthrough') - .on('click', function() { - context.container().call(uiIntro(context)); - modalSelection.close(); - }); - - walkthrough - .append('svg') - .attr('class', 'logo logo-walkthrough') - .append('use') - .attr('xlink:href', '#iD-logo-walkthrough'); - - walkthrough - .append('div') - .text(t('splash.walkthrough')); - - var startEditing = buttonWrap - .append('button') - .attr('class', 'start-editing') - .on('click', modalSelection.close); - - startEditing - .append('svg') - .attr('class', 'logo logo-features') - .append('use') - .attr('xlink:href', '#iD-logo-features'); - - startEditing - .append('div') - .text(t('splash.start')); - - - modalSelection.select('button.close') - .attr('class','hide'); - - }; -} diff --git a/svg/fontawesome/fas-moon.svg b/svg/fontawesome/fas-moon.svg new file mode 100644 index 0000000000..9fbb0a342c --- /dev/null +++ b/svg/fontawesome/fas-moon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/svg/fontawesome/fas-sun.svg b/svg/fontawesome/fas-sun.svg new file mode 100644 index 0000000000..1a5861242d --- /dev/null +++ b/svg/fontawesome/fas-sun.svg @@ -0,0 +1 @@ + \ No newline at end of file From 1435839781c3d9b4cfcad53f6a5c21e3219b2617 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Tue, 26 Feb 2019 21:16:54 +0000 Subject: [PATCH 047/774] Add email and website format validation Simple validation following the HTML5 standard for emails as we don't expect POIs to have convoluted email addresses. Only checks the `website` and `email` tags as these are what iD currently supports with fields. --- data/core.yaml | 11 +++- dist/locales/en.json | 12 +++++ modules/validations/index.js | 3 +- modules/validations/invalid_format.js | 72 +++++++++++++++++++++++++++ 4 files changed, 96 insertions(+), 2 deletions(-) create mode 100644 modules/validations/invalid_format.js diff --git a/data/core.yaml b/data/core.yaml index 3b59f3018c..862e89e456 100644 --- a/data/core.yaml +++ b/data/core.yaml @@ -1439,6 +1439,15 @@ en: feature: message: '{feature} lists Google as a data source' reference: "Google products are proprietary and must not be used as references." + invalid_format: + title: Invalid Formatting + tip: Find features tagged with invalid value formatting + email: + message: '{feature} is tagged with an invalid email address' + reference: 'Email addresses must be of the form "local-part@domain".' + website: + message: '{feature} is tagged with an invalid website' + reference: 'Websites should start with a "http" or "https" scheme.' missing_role: title: Missing Roles message: "{member} has no role within {relation}" @@ -1954,4 +1963,4 @@ en: wikidata: identifier: "Identifier" label: "Label" - description: "Description" + description: "Description" \ No newline at end of file diff --git a/dist/locales/en.json b/dist/locales/en.json index fc0173cfbd..0fd036046c 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -1782,6 +1782,18 @@ "reference": "Google products are proprietary and must not be used as references." } }, + "invalid_format": { + "title": "Invalid Formatting", + "tip": "Find features tagged with invalid value formatting", + "email": { + "message": "{feature} is tagged with an invalid email address", + "reference": "Email addresses must be of the form \"local-part@domain\"." + }, + "website": { + "message": "{feature} is tagged with an invalid website", + "reference": "Websites should start with a \"http\" or \"https\" scheme." + } + }, "missing_role": { "title": "Missing Roles", "message": "{member} has no role within {relation}", diff --git a/modules/validations/index.js b/modules/validations/index.js index cecaafeb53..bf3bd8abcc 100644 --- a/modules/validations/index.js +++ b/modules/validations/index.js @@ -6,10 +6,11 @@ export { validationFixmeTag } from './fixme_tag'; export { validationGenericName } from './generic_name'; export { validationImpossibleOneway } from './impossible_oneway'; export { validationIncompatibleSource } from './incompatible_source'; +export { validationFormatting } from './invalid_format'; export { validationMaprules } from './maprules'; export { validationMissingRole } from './missing_role'; export { validationMissingTag } from './missing_tag'; export { validationOutdatedTags } from './outdated_tags'; export { validationPrivateData } from './private_data'; export { validationTagSuggestsArea } from './tag_suggests_area'; -export { validationUnsquareWay } from './unsquare_way'; +export { validationUnsquareWay } from './unsquare_way'; \ No newline at end of file diff --git a/modules/validations/invalid_format.js b/modules/validations/invalid_format.js new file mode 100644 index 0000000000..37d9247b59 --- /dev/null +++ b/modules/validations/invalid_format.js @@ -0,0 +1,72 @@ +import { t } from '../util/locale'; +import { utilDisplayLabel } from '../util'; +import { validationIssue } from '../core/validation'; + +export function validationFormatting() { + var type = 'invalid_format'; + + var validation = function(entity, context) { + var issues = []; + if (entity.tags.website) { + var valid_scheme = /^https?:\/\//i; + + if (!valid_scheme.test(entity.tags.website)) { + issues.push(new validationIssue({ + type: type, + subtype: 'website', + severity: 'warning', + message: function() { + var entity = context.hasEntity(this.entityIds[0]); + return entity ? t('issues.invalid_format.website.message', { feature: utilDisplayLabel(entity, context) }) : ''; + }, + reference: showReferenceWebsite, + entityIds: [entity.id] + })); + + function showReferenceWebsite(selection) { + selection.selectAll('.issue-reference') + .data([0]) + .enter() + .append('div') + .attr('class', 'issue-reference') + .text(t('issues.invalid_format.website.reference')); + } + } + } + + if (entity.tags.email) { + // Same regex as used by HTML5 "email" inputs + // Emails in OSM are going to be official so they should be pretty simple + var valid_email = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/; + + if (!valid_email.test(entity.tags.email)) { + issues.push(new validationIssue({ + type: type, + subtype: 'email', + severity: 'warning', + message: function() { + var entity = context.hasEntity(this.entityIds[0]); + return entity ? t('issues.invalid_format.email.message', { feature: utilDisplayLabel(entity, context) }) : ''; + }, + reference: showReferenceEmail, + entityIds: [entity.id] + })); + + function showReferenceEmail(selection) { + selection.selectAll('.issue-reference') + .data([0]) + .enter() + .append('div') + .attr('class', 'issue-reference') + .text(t('issues.invalid_format.email.reference')); + } + } + } + + return issues; + }; + + validation.type = type; + + return validation; +} \ No newline at end of file From b4ef0862978ae79a5cb741ac49370ed678857b1f Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 5 Jun 2019 17:28:27 -0400 Subject: [PATCH 048/774] Update restore text to include change count, location, and duration (close #6467) Move restore functionality to the assistant panel --- css/80_app.css | 39 +++-- data/core.yaml | 22 ++- dist/locales/en.json | 28 +++- modules/core/context.js | 14 +- modules/core/history.js | 35 +++-- modules/renderer/features.js | 2 +- modules/renderer/map.js | 14 +- modules/ui/assistant.js | 184 ++++++++++++++++------- modules/ui/index.js | 1 - modules/ui/init.js | 6 - modules/ui/restore.js | 72 --------- modules/ui/tools/add_favorite.js | 7 +- modules/ui/tools/add_feature.js | 7 +- modules/ui/tools/add_recent.js | 7 +- modules/ui/tools/undo_redo.js | 3 +- modules/util/units.js | 41 ++++- modules/validations/disconnected_way.js | 2 +- modules/validations/impossible_oneway.js | 2 +- 18 files changed, 286 insertions(+), 200 deletions(-) delete mode 100644 modules/ui/restore.js diff --git a/css/80_app.css b/css/80_app.css index ffaffbf1b6..40a4cf865a 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -311,6 +311,10 @@ button:hover { button.active { background: #7092ff; } +button.destructive { + background: #d32232; + color: #fff; +} button.disabled { background-color: rgba(255,255,255,.25); color: rgba(0,0,0,.4); @@ -1017,7 +1021,8 @@ a.hide-toggle { color: #ccc; margin-top: 6px; } -.assistant .body-text:empty { +.assistant .body-text:empty, +.assistant .main-footer:empty { display: none; } .assistant b { @@ -1028,7 +1033,27 @@ a.hide-toggle { margin-top: 10px; content: " "; } +.assistant .main-footer { + margin-top: 12px; +} +.assistant .main-footer button { + color: #fff; + min-width: 100px; + height: auto; + padding: 5px 2px; + line-height: 20px; + font-size: 13px; +} +[dir='ltr'] .assistant .main-footer button:first-of-type { + margin-right: 8px; +} +[dir='rtl'] .assistant .main-footer button:first-of-type { + margin-left: 8px; +} +.assistant.prominent { + padding-bottom: 16px; +} .assistant.prominent .icon-col .icon { width: 40px; height: 40px; @@ -1038,7 +1063,7 @@ a.hide-toggle { display: none; } .assistant.prominent .subject-title { - font-family: Georgia, Verdana, serif; + font-family: Georgia, serif; font-weight: bold; font-size: 20px; margin-top: 6px; @@ -1046,7 +1071,6 @@ a.hide-toggle { .assistant.prominent .body-text { font-size: 14px; margin-top: 10px; - margin-bottom: 6px; line-height: 1.35em; } @@ -4862,15 +4886,6 @@ img.tile-debug { border-bottom: 0; } -/* Restore Modal -------------------------------------------------------- */ -.modal-actions .logo-restore { - color: #7092ff; -} -.modal-actions .logo-reset { - color: #e06c5e; -} - /* Success Screen / Community Index ------------------------------------------------------- */ .save-success.body { diff --git a/data/core.yaml b/data/core.yaml index 3b59f3018c..60481e8c9d 100644 --- a/data/core.yaml +++ b/data/core.yaml @@ -52,6 +52,13 @@ en: welcome: first_time: "You’re editing OpenStreetMap: the free, collborative world map.
If this is your first time here, consider taking the quick-start tutorial.
Thanks for contributing. Have fun!" return: "Welcome back. Ready to make the map even better?" + restore: + title: Restore + discard: Discard + info: + count_loc: "You have {count} unsaved changes around {location}." + count_loc_time: "You have {count} unsaved changes from {duration} ago around {location}." + ask: Would you like to restore them? modes: add_feature: search_placeholder: Search feature types @@ -727,11 +734,6 @@ en: url: instructions: "Enter a data file URL or vector tile URL template. Valid tokens are:\n {zoom} or {z}, {x}, {y} for Z/X/Y tile scheme" placeholder: Enter a url - restore: - heading: You have unsaved changes - description: "Do you wish to restore unsaved changes from a previous editing session?" - restore: Restore my changes - reset: Discard my changes save: title: Save help: "Review your changes and upload them to OpenStreetMap, making them visible to other users." @@ -785,6 +787,8 @@ en: confirm: okay: "OK" cancel: "Cancel" + splash: + walkthrough: "Start the Walkthrough" source_switch: live: live lose_changes: "You have unsaved changes. Switching the map server will discard them. Are you sure you want to switch servers?" @@ -1951,6 +1955,14 @@ en: west: "W" coordinate: "{coordinate}{direction}" coordinate_pair: "{latitude}, {longitude}" + second: "1 second" + seconds: "{quantity} seconds" + minute: "1 minute" + minutes: "{quantity} minutes" + hour: "1 hour" + hours: "{quantity} hours" + day: "1 day" + days: "{quantity} days" wikidata: identifier: "Identifier" label: "Label" diff --git a/dist/locales/en.json b/dist/locales/en.json index fc0173cfbd..e3bffc69ac 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -63,6 +63,15 @@ "welcome": { "first_time": "You’re editing OpenStreetMap: the free, collborative world map.
If this is your first time here, consider taking the quick-start tutorial.
Thanks for contributing. Have fun!", "return": "Welcome back. Ready to make the map even better?" + }, + "restore": { + "title": "Restore", + "discard": "Discard", + "info": { + "count_loc": "You have {count} unsaved changes around {location}.", + "count_loc_time": "You have {count} unsaved changes from {duration} ago around {location}." + }, + "ask": "Would you like to restore them?" } }, "modes": { @@ -913,12 +922,6 @@ } } }, - "restore": { - "heading": "You have unsaved changes", - "description": "Do you wish to restore unsaved changes from a previous editing session?", - "restore": "Restore my changes", - "reset": "Discard my changes" - }, "save": { "title": "Save", "help": "Review your changes and upload them to OpenStreetMap, making them visible to other users.", @@ -976,6 +979,9 @@ "okay": "OK", "cancel": "Cancel" }, + "splash": { + "walkthrough": "Start the Walkthrough" + }, "source_switch": { "live": "live", "lose_changes": "You have unsaved changes. Switching the map server will discard them. Are you sure you want to switch servers?", @@ -2380,7 +2386,15 @@ "east": "E", "west": "W", "coordinate": "{coordinate}{direction}", - "coordinate_pair": "{latitude}, {longitude}" + "coordinate_pair": "{latitude}, {longitude}", + "second": "1 second", + "seconds": "{quantity} seconds", + "minute": "1 minute", + "minutes": "{quantity} minutes", + "hour": "1 hour", + "hours": "{quantity} hours", + "day": "1 day", + "days": "{quantity} days" }, "wikidata": { "identifier": "Identifier", diff --git a/modules/core/context.js b/modules/core/context.js index 87909d0066..5850262c69 100644 --- a/modules/core/context.js +++ b/modules/core/context.js @@ -137,7 +137,7 @@ export function coreContext() { context.loadTiles = function(projection, callback) { var handle = window.requestIdleCallback(function() { _deferred.delete(handle); - if (connection && context.editable()) { + if (connection && context.editableDataEnabled()) { var cid = connection.getConnectionId(); connection.loadTiles(projection, afterLoad(cid, callback)); } @@ -148,7 +148,7 @@ export function coreContext() { context.loadTileAtLoc = function(loc, callback) { var handle = window.requestIdleCallback(function() { _deferred.delete(handle); - if (connection && context.editable()) { + if (connection && context.editableDataEnabled()) { var cid = connection.getConnectionId(); connection.loadTileAtLoc(loc, afterLoad(cid, callback)); } @@ -348,7 +348,15 @@ export function coreContext() { context.map = function() { return map; }; context.layers = function() { return map.layers; }; context.surface = function() { return map.surface; }; - context.editable = function() { return map.editable(); }; + context.editableDataEnabled = function() { return map.editableDataEnabled(); }; + context.editable = function() { + + // don't allow editing during save + var mode = context.mode(); + if (!mode || mode.id === 'save') return false; + + return map.editableDataEnabled(); + }; context.surfaceRect = function() { return map.surface.node().getBoundingClientRect(); }; diff --git a/modules/core/history.js b/modules/core/history.js index 518cba0a63..7d5d750fa3 100644 --- a/modules/core/history.js +++ b/modules/core/history.js @@ -16,6 +16,11 @@ import { export function coreHistory(context) { var dispatch = d3_dispatch('change', 'merge', 'restore', 'undone', 'redone'); var lock = utilSessionMutex('lock'); + + // is iD not open in another window and it detects that + // there's a history stored in localStorage that's recoverable? + var hasUnresolvedRestorableChanges = lock.lock() && context.storage(getKey('saved_history')); + var duration = 150; var _imageryUsed = []; var _photoOverlaysUsed = []; @@ -500,7 +505,8 @@ export function coreHistory(context) { baseEntities: Object.values(baseEntities), stack: s, nextIDs: osmEntity.id.next, - index: _index + index: _index, + timestamp: (new Date()).getTime() }); }, @@ -634,14 +640,22 @@ export function coreHistory(context) { save: function() { - if (lock.locked()) context.storage(getKey('saved_history'), history.toJSON() || null); + if (lock.locked() && + // don't overwrite existing, unresolved changes + !hasUnresolvedRestorableChanges) { + + context.storage(getKey('saved_history'), history.toJSON() || null); + } return history; }, clearSaved: function() { context.debouncedSave.cancel(); - if (lock.locked()) context.storage(getKey('saved_history'), null); + if (lock.locked()) { + hasUnresolvedRestorableChanges = false; + context.storage(getKey('saved_history'), null); + } return history; }, @@ -656,18 +670,21 @@ export function coreHistory(context) { }, - // is iD not open in another window and it detects that - // there's a history stored in localStorage that's recoverable? - restorableChanges: function() { - return lock.locked() && !!context.storage(getKey('saved_history')); + savedHistoryJSON: function() { + return context.storage(getKey('saved_history')); + }, + + + hasRestorableChanges: function() { + return hasUnresolvedRestorableChanges; }, // load history from a version stored in localStorage restore: function() { if (!lock.locked()) return; - - var json = context.storage(getKey('saved_history')); + hasUnresolvedRestorableChanges = false; + var json = this.savedHistoryJSON(); if (json) history.fromJSON(json, true); }, diff --git a/modules/renderer/features.js b/modules/renderer/features.js index b99e2a05da..fba1b2268f 100644 --- a/modules/renderer/features.js +++ b/modules/renderer/features.js @@ -93,7 +93,7 @@ export function rendererFeatures(context) { enable: function() { this.enabled = true; this.currentMax = this.defaultMax; }, disable: function() { this.enabled = false; this.currentMax = 0; }, hidden: function() { - return !context.editable() || + return !context.editableDataEnabled() || (this.count === 0 && !this.enabled) || this.count > this.currentMax * _cullFactor; }, diff --git a/modules/renderer/map.js b/modules/renderer/map.js index 1d74de9efe..7837c3e23f 100644 --- a/modules/renderer/map.js +++ b/modules/renderer/map.js @@ -165,14 +165,14 @@ export function rendererMap(context) { _mouseEvent = d3_event; }) .on('mouseover.vertices', function() { - if (map.editable() && !_isTransformed) { + if (map.editableDataEnabled() && !_isTransformed) { var hover = d3_event.target.__data__; surface.call(drawVertices.drawHover, context.graph(), hover, map.extent()); dispatch.call('drawn', this, { full: false }); } }) .on('mouseout.vertices', function() { - if (map.editable() && !_isTransformed) { + if (map.editableDataEnabled() && !_isTransformed) { var hover = d3_event.relatedTarget && d3_event.relatedTarget.__data__; surface.call(drawVertices.drawHover, context.graph(), hover, map.extent()); dispatch.call('drawn', this, { full: false }); @@ -180,7 +180,7 @@ export function rendererMap(context) { }); context.on('enter.map', function() { - if (map.editable() && !_isTransformed) { + if (map.editableDataEnabled() && !_isTransformed) { // redraw immediately any objects affected by a change in selectedIDs. var graph = context.graph(); var selectedAndParents = {}; @@ -573,7 +573,7 @@ export function rendererMap(context) { } // OSM - if (map.editable()) { + if (map.editableDataEnabled()) { context.loadTiles(projection); drawEditable(difference, extent); } else { @@ -744,7 +744,7 @@ export function rendererMap(context) { var proj = geoRawMercator().transform(projection.transform()); // copy projection // use the target zoom to calculate the offset center proj.scale(geoZoomToScale(zoom, TILESIZE)); - + var locPx = proj(loc); var offsetLocPx = [locPx[0] + offset[0], locPx[1] + offset[1]]; var offsetLoc = proj.invert(offsetLocPx); @@ -907,7 +907,9 @@ export function rendererMap(context) { }; - map.editable = function() { + map.editableDataEnabled = function() { + if (context.history().hasRestorableChanges()) return false; + var layer = context.layers().layer('osm'); if (!layer || !layer.enabled()) return false; diff --git a/modules/ui/assistant.js b/modules/ui/assistant.js index 952e84b507..3933d3f12a 100644 --- a/modules/ui/assistant.js +++ b/modules/ui/assistant.js @@ -7,9 +7,14 @@ import { t } from '../util/locale'; import { services } from '../services'; import { utilDisplayLabel } from '../util'; import { uiIntro } from './intro'; +import { geoRawMercator } from '../geo/raw_mercator'; +import { decimalCoordinatePair, formattedRoundedDuration } from '../util/units'; export function uiAssistant(context) { + var defaultLoc = t('assistant.global_location'); + var currLocation = defaultLoc; + var container = d3_select(null); var didEditAnythingYet = false; @@ -21,13 +26,15 @@ export function uiAssistant(context) { container = selection.append('div') .attr('class', 'assistant'); + scheduleCurrentLocationUpdate(); + redraw(); context .on('enter.assistant', redraw); context.map() - .on('move.assistant', debouncedGetLocation); + .on('move.assistant', scheduleCurrentLocationUpdate); context.history() .on('change.assistant', updateDidEditStatus); @@ -56,28 +63,32 @@ export function uiAssistant(context) { .call(svgIcon('#')) .merge(iconCol); - var bodyCol = container.selectAll('.body-col') + var mainCol = container.selectAll('.body-col') .data([0]); - var bodyColEnter = bodyCol.enter() + var mainColEnter = mainCol.enter() .append('div') .attr('class', 'body-col'); - bodyColEnter.append('div') + mainColEnter.append('div') .attr('class', 'mode-label'); - bodyColEnter.append('div') + mainColEnter.append('div') .attr('class', 'subject-title'); - bodyColEnter.append('div') + mainColEnter.append('div') .attr('class', 'body-text'); - bodyCol = bodyColEnter.merge(bodyCol); + mainColEnter.append('div') + .attr('class', 'main-footer'); + + mainCol = mainColEnter.merge(mainCol); var iconUse = iconCol.selectAll('svg.icon use'), - modeLabel = bodyCol.selectAll('.mode-label'), - subjectTitle = bodyCol.selectAll('.subject-title'), - bodyTextArea = bodyCol.selectAll('.body-text'); + modeLabel = mainCol.selectAll('.mode-label'), + subjectTitle = mainCol.selectAll('.subject-title'), + bodyTextArea = mainCol.selectAll('.body-text'), + mainFooter = mainCol.selectAll('.main-footer'); if (mode.id.indexOf('point') !== -1) { iconUse.attr('href','#iD-icon-point'); @@ -87,8 +98,8 @@ export function uiAssistant(context) { iconUse.attr('href','#iD-icon-area'); } - var bodyText = ''; - + bodyTextArea.html(''); + mainFooter.html(''); subjectTitle.classed('location', false); container.classed('prominent', false); @@ -99,11 +110,11 @@ export function uiAssistant(context) { subjectTitle.text(mode.title); if (mode.id === 'add-point') { - bodyText = t('assistant.instructions.add_point'); + bodyTextArea.html(t('assistant.instructions.add_point')); } else if (mode.id === 'add-line') { - bodyText = t('assistant.instructions.add_line'); + bodyTextArea.html(t('assistant.instructions.add_line')); } else if (mode.id === 'add-area') { - bodyText = t('assistant.instructions.add_area'); + bodyTextArea.html(t('assistant.instructions.add_area')); } } else if (mode.id === 'draw-line' || mode.id === 'draw-area') { @@ -113,9 +124,9 @@ export function uiAssistant(context) { subjectTitle.text(mode.title); if (mode.id === 'draw-line') { - bodyText = t('assistant.instructions.draw_line'); + bodyTextArea.html(t('assistant.instructions.draw_line')); } else if (mode.id === 'draw-area') { - bodyText = t('assistant.instructions.draw_area'); + bodyTextArea.html(t('assistant.instructions.draw_area')); } } else if (mode.id === 'select' && mode.selectedIDs().length === 1) { @@ -134,7 +145,19 @@ export function uiAssistant(context) { iconUse.attr('href','#' + greetingIcon()); subjectTitle.text(t('assistant.greetings.' + greetingTimeframe())); - bodyText = t('assistant.welcome.' + (isFirstSession ? 'first_time' : 'return')); + + if (context.history().hasRestorableChanges()) { + drawRestoreScreen(); + } else { + bodyTextArea.html(t('assistant.welcome.' + (isFirstSession ? 'first_time' : 'return'))); + bodyTextArea.selectAll('a') + .attr('href', '#') + .on('click', function() { + isFirstSession = false; + updateDidEditStatus(); + context.container().call(uiIntro(context)); + }); + } } else { iconUse.attr('href','#fas-map-marked-alt'); @@ -143,26 +166,84 @@ export function uiAssistant(context) { subjectTitle.classed('location', true); subjectTitle.text(currLocation); - debouncedGetLocation(); + scheduleCurrentLocationUpdate(); } - bodyTextArea.html(bodyText); + function drawRestoreScreen() { + var savedHistoryJSON = JSON.parse(context.history().savedHistoryJSON()); + + var lastGraph = savedHistoryJSON.stack && + savedHistoryJSON.stack.length > 0 && + savedHistoryJSON.stack[savedHistoryJSON.stack.length - 1]; + if (!lastGraph) return; + + var changeCount = (lastGraph.modified ? lastGraph.modified.length : 0) + + (lastGraph.deleted ? lastGraph.deleted.length : 0); + if (changeCount === 0) return; + + var loc = lastGraph.transform && + geoRawMercator() + .transform(lastGraph.transform) + .invert([0, 0]); + if (!loc) return; + + var restoreInfoDict = { + count: '' + changeCount.toString() + '', + location: '' + decimalCoordinatePair(loc, 3) + '' + }; + var infoID = 'count_loc'; + + if (savedHistoryJSON.timestamp) { + infoID = 'count_loc_time'; + var milliseconds = (new Date()).getTime() - savedHistoryJSON.timestamp; + restoreInfoDict.duration = '' + formattedRoundedDuration(milliseconds) + ''; + } + + bodyTextArea.html(t('assistant.restore.info.' + infoID, restoreInfoDict) + + '
' + + t('assistant.restore.ask')); - bodyTextArea.selectAll('a') - .attr('href', '#') - .on('click', function() { - isFirstSession = false; - updateDidEditStatus(); - context.container().call(uiIntro(context)); + getLocation(loc, null, function(placeName) { + if (placeName) { + container.selectAll('.restore-location') + .text(placeName); + } }); + mainFooter.append('button') + .attr('class', 'active') + .on('click', function() { + context.history().restore(); + redraw(); + }) + .append('span') + .text(t('assistant.restore.title')); + + mainFooter.append('button') + .attr('class', 'destructive') + .on('click', function() { + context.history().clearSaved(); + redraw(); + }) + .append('span') + .text(t('assistant.restore.discard')); + } + + } + + function scheduleCurrentLocationUpdate() { + debouncedGetLocation(context.map().center(), context.map().zoom(), function(placeName) { + currLocation = placeName ? placeName : defaultLoc; + container.selectAll('.subject-title.location') + .text(currLocation); + }); } function greetingTimeframe() { var now = new Date(); var hours = now.getHours(); if (hours >= 20 || hours <= 2) return 'night'; - if (hours >= 17) return 'evening'; + if (hours >= 18) return 'evening'; if (hours >= 12) return 'afternoon'; return 'morning'; } @@ -174,34 +255,31 @@ export function uiAssistant(context) { return 'fas-moon'; } - var defaultLoc = t('assistant.global_location'); - var currLocation = defaultLoc; - var debouncedGetLocation = _debounce(getLocation, 250); - function getLocation() { - var zoom = context.map().zoom(); - if (!services.geocoder || zoom < 9) { - currLocation = defaultLoc; - container.selectAll('.subject-title.location') - .text(currLocation); - } else { - services.geocoder.reverse(context.map().center(), function(err, result) { - if (err || !result || !result.address) { - currLocation = defaultLoc; - } else { - var addr = result.address; - var place = (zoom > 14 && addr && (addr.town || addr.city || addr.county)) || ''; - var region = (addr && (addr.state || addr.country)) || ''; - var separator = (place && region) ? t('success.thank_you_where.separator') : ''; - - currLocation = t('success.thank_you_where.format', - { place: place, separator: separator, region: region } - ); - } - container.selectAll('.subject-title.location') - .text(currLocation); - }); + function getLocation(loc, zoom, completionHandler) { + + if (!services.geocoder || (zoom && zoom < 9)) { + completionHandler(null); + return; } + + services.geocoder.reverse(loc, function(err, result) { + if (err || !result || !result.address) { + completionHandler(null); + return; + } + + var addr = result.address; + var place = ((!zoom || zoom > 14) && addr && (addr.town || addr.city || addr.county)) || ''; + var region = (addr && (addr.state || addr.country)) || ''; + var separator = (place && region) ? t('success.thank_you_where.separator') : ''; + + var formattedName = t('success.thank_you_where.format', + { place: place, separator: separator, region: region } + ); + + completionHandler(formattedName); + }); } return assistant; diff --git a/modules/ui/index.js b/modules/ui/index.js index ecfc0cb059..9615aa057d 100644 --- a/modules/ui/index.js +++ b/modules/ui/index.js @@ -54,7 +54,6 @@ export { uiRadialMenu } from './radial_menu'; export { uiRawMemberEditor } from './raw_member_editor'; export { uiRawMembershipEditor } from './raw_membership_editor'; export { uiRawTagEditor } from './raw_tag_editor'; -export { uiRestore } from './restore'; export { uiScale } from './scale'; export { uiSelectionList } from './selection_list'; export { uiSidebar } from './sidebar'; diff --git a/modules/ui/init.js b/modules/ui/init.js index 968a02f37e..9b2ec545a9 100644 --- a/modules/ui/init.js +++ b/modules/ui/init.js @@ -29,7 +29,6 @@ import { uiMapData } from './map_data'; import { uiMapInMap } from './map_in_map'; import { uiNotice } from './notice'; import { uiPhotoviewer } from './photoviewer'; -import { uiRestore } from './restore'; import { uiScale } from './scale'; import { uiShortcuts } from './shortcuts'; import { uiSidebar } from './sidebar'; @@ -299,11 +298,6 @@ export function uiInit(context) { context.enter(modeBrowse(context)); if (!_initCounter++) { - if (!hash.startWalkthrough) { - context.container() - .call(uiRestore(context)); - } - context.container() .call(uiShortcuts(context)); } diff --git a/modules/ui/restore.js b/modules/ui/restore.js deleted file mode 100644 index 7330e8bf4b..0000000000 --- a/modules/ui/restore.js +++ /dev/null @@ -1,72 +0,0 @@ -import { t } from '../util/locale'; -import { uiModal } from './modal'; - - -export function uiRestore(context) { - - return function(selection) { - if (!context.history().lock() || !context.history().restorableChanges()) - return; - - var modalSelection = uiModal(selection, true); - - modalSelection.select('.modal') - .attr('class', 'modal fillL'); - - var introModal = modalSelection.select('.content'); - - introModal - .append('div') - .attr('class', 'modal-section') - .append('h3') - .text(t('restore.heading')); - - introModal - .append('div') - .attr('class','modal-section') - .append('p') - .text(t('restore.description')); - - var buttonWrap = introModal - .append('div') - .attr('class', 'modal-actions'); - - var restore = buttonWrap - .append('button') - .attr('class', 'restore') - .on('click', function() { - context.history().restore(); - modalSelection.remove(); - }); - - restore - .append('svg') - .attr('class', 'logo logo-restore') - .append('use') - .attr('xlink:href', '#iD-logo-restore'); - - restore - .append('div') - .text(t('restore.restore')); - - var reset = buttonWrap - .append('button') - .attr('class', 'reset') - .on('click', function() { - context.history().clearSaved(); - modalSelection.remove(); - }); - - reset - .append('svg') - .attr('class', 'logo logo-reset') - .append('use') - .attr('xlink:href', '#iD-logo-reset'); - - reset - .append('div') - .text(t('restore.reset')); - - restore.node().focus(); - }; -} diff --git a/modules/ui/tools/add_favorite.js b/modules/ui/tools/add_favorite.js index 3c7638039d..c3c5028e5a 100644 --- a/modules/ui/tools/add_favorite.js +++ b/modules/ui/tools/add_favorite.js @@ -19,12 +19,7 @@ export function uiToolAddFavorite(context) { }; function enabled() { - return osmEditable(); - } - - function osmEditable() { - var mode = context.mode(); - return context.editable() && mode && mode.id !== 'save'; + return context.editable(); } function toggleMode(d) { diff --git a/modules/ui/tools/add_feature.js b/modules/ui/tools/add_feature.js index 8e40ed50ff..a37a9da57f 100644 --- a/modules/ui/tools/add_feature.js +++ b/modules/ui/tools/add_feature.js @@ -127,13 +127,8 @@ export function uiToolAddFeature(context) { button.classed('active', false); } - function osmEditable() { - var mode = context.mode(); - return context.editable() && mode && mode.id !== 'save'; - } - function updateEnabledState() { - var isEnabled = osmEditable(); + var isEnabled = context.editable(); button.classed('disabled', !isEnabled); if (!isEnabled) { presetBrowser.hide(); diff --git a/modules/ui/tools/add_recent.js b/modules/ui/tools/add_recent.js index 555110116a..d201734f7b 100644 --- a/modules/ui/tools/add_recent.js +++ b/modules/ui/tools/add_recent.js @@ -19,12 +19,7 @@ export function uiToolAddRecent(context) { }; function enabled() { - return osmEditable(); - } - - function osmEditable() { - var mode = context.mode(); - return context.editable() && mode && mode.id !== 'save'; + return context.editable(); } function toggleMode(d) { diff --git a/modules/ui/tools/undo_redo.js b/modules/ui/tools/undo_redo.js index 12414bd1dc..7e1b216da5 100644 --- a/modules/ui/tools/undo_redo.js +++ b/modules/ui/tools/undo_redo.js @@ -33,8 +33,7 @@ export function uiToolUndoRedo(context) { function editable() { - var mode = context.mode(); - return context.editable() && mode && mode.id !== 'save'; + return context.editable(); } diff --git a/modules/util/units.js b/modules/util/units.js index 0be3413d0c..e437ec3a17 100644 --- a/modules/util/units.js +++ b/modules/util/units.js @@ -162,9 +162,44 @@ export function dmsCoordinatePair(coord) { * * @param {Array} coord longitude and latitude */ -export function decimalCoordinatePair(coord) { +export function decimalCoordinatePair(coord, precision) { + if (!precision) precision = OSM_PRECISION; return t('units.coordinate_pair', { - latitude: clamp(coord[1], -90, 90).toFixed(OSM_PRECISION), - longitude: wrap(coord[0], -180, 180).toFixed(OSM_PRECISION) + latitude: clamp(coord[1], -90, 90).toFixed(precision), + longitude: wrap(coord[0], -180, 180).toFixed(precision) }); } + +/** + * Returns the given duration in a rounded, readable format (e.g. 17 days) + * + * @param {Number} milliseconds + */ +export function formattedRoundedDuration(milliseconds) { + var seconds = Math.round(milliseconds / 1000); + if (seconds <= 1) { + return t('units.second'); + } else if (seconds < 60) { + return t('units.seconds', { quantity: seconds } ); + } + + var minutes = Math.round(milliseconds / 1000 / 60); + if (minutes <= 1) { + return t('units.minute'); + } else if (minutes < 60) { + return t('units.minutes', { quantity: minutes } ); + } + + var hours = Math.round(milliseconds / 1000 / 60 / 60); + if (hours <= 1) { + return t('units.hour'); + } else if (hours < 24) { + return t('units.hours', { quantity: hours } ); + } + + var days = Math.round(milliseconds / 1000 / 60 / 60 / 24); + if (days <= 1) { + return t('units.day'); + } + return t('units.days', { quantity: days } ); +} diff --git a/modules/validations/disconnected_way.js b/modules/validations/disconnected_way.js index 1a052a26c7..0883fcdafe 100644 --- a/modules/validations/disconnected_way.js +++ b/modules/validations/disconnected_way.js @@ -190,7 +190,7 @@ export function validationDisconnectedWay() { function continueDrawing(way, vertex) { // make sure the vertex is actually visible and editable var map = context.map(); - if (!map.editable() || !map.trimmedExtent().contains(vertex.loc)) { + if (!context.editable() || !map.trimmedExtent().contains(vertex.loc)) { map.zoomToEase(vertex); } diff --git a/modules/validations/impossible_oneway.js b/modules/validations/impossible_oneway.js index 7a8a1a8c41..cc52e7cbfe 100644 --- a/modules/validations/impossible_oneway.js +++ b/modules/validations/impossible_oneway.js @@ -32,7 +32,7 @@ export function validationImpossibleOneway() { function continueDrawing(way, vertex, context) { // make sure the vertex is actually visible and editable var map = context.map(); - if (!map.editable() || !map.trimmedExtent().contains(vertex.loc)) { + if (!context.editable() || !map.trimmedExtent().contains(vertex.loc)) { map.zoomToEase(vertex); } From 5792719eb662f04a6164ae02677b350f5adc2d92 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Thu, 6 Jun 2019 14:50:56 +0100 Subject: [PATCH 049/774] Fix email and website validation for list values Also improved the UI message to be more clear for websites and simplify "is tagged with" to "has" which works in context. --- data/core.yaml | 6 ++- dist/locales/en.json | 6 ++- modules/validations/invalid_format.js | 72 +++++++++++++++++---------- 3 files changed, 54 insertions(+), 30 deletions(-) diff --git a/data/core.yaml b/data/core.yaml index 862e89e456..b89421da24 100644 --- a/data/core.yaml +++ b/data/core.yaml @@ -1443,10 +1443,12 @@ en: title: Invalid Formatting tip: Find features tagged with invalid value formatting email: - message: '{feature} is tagged with an invalid email address' + message: '{feature} has an invalid email address: {email}' + message_multi: '{feature} has multiple invalid email addresses: {email}' reference: 'Email addresses must be of the form "local-part@domain".' website: - message: '{feature} is tagged with an invalid website' + message: '{feature} has a website with no scheme: {site}' + message_multi: '{feature} has multiple websites with no scheme: {site}' reference: 'Websites should start with a "http" or "https" scheme.' missing_role: title: Missing Roles diff --git a/dist/locales/en.json b/dist/locales/en.json index 0fd036046c..82871c68dd 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -1786,11 +1786,13 @@ "title": "Invalid Formatting", "tip": "Find features tagged with invalid value formatting", "email": { - "message": "{feature} is tagged with an invalid email address", + "message": "{feature} has an invalid email address: {email}", + "message_multi": "{feature} has multiple invalid email addresses: {email}", "reference": "Email addresses must be of the form \"local-part@domain\"." }, "website": { - "message": "{feature} is tagged with an invalid website", + "message": "{feature} has a website with no scheme: {site}", + "message_multi": "{feature} has multiple websites with no scheme: {site}", "reference": "Websites should start with a \"http\" or \"https\" scheme." } }, diff --git a/modules/validations/invalid_format.js b/modules/validations/invalid_format.js index 37d9247b59..c51b35cb2e 100644 --- a/modules/validations/invalid_format.js +++ b/modules/validations/invalid_format.js @@ -7,59 +7,79 @@ export function validationFormatting() { var validation = function(entity, context) { var issues = []; - if (entity.tags.website) { + + function isInvalidEmail(email) { + // Same regex as used by HTML5 "email" inputs + // Emails in OSM are going to be official so they should be pretty simple + var valid_email = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/; + return !valid_email.test(email); + } + + function isSchemeMissing(url) { var valid_scheme = /^https?:\/\//i; + return !valid_scheme.test(url); + } + + + if (entity.tags.website) { + // Multiple websites are possible + var websites = entity.tags.website.split(';').filter(isSchemeMissing); + + if (websites.length) { + var multi = (websites.length > 1) ? '_multi' : ''; - if (!valid_scheme.test(entity.tags.website)) { issues.push(new validationIssue({ type: type, subtype: 'website', severity: 'warning', message: function() { var entity = context.hasEntity(this.entityIds[0]); - return entity ? t('issues.invalid_format.website.message', { feature: utilDisplayLabel(entity, context) }) : ''; + return entity ? t('issues.invalid_format.website.message' + multi, { feature: utilDisplayLabel(entity, context), site: websites.join(', ') }) : ''; }, reference: showReferenceWebsite, - entityIds: [entity.id] + entityIds: [entity.id], + hash: websites.join() })); + } - function showReferenceWebsite(selection) { - selection.selectAll('.issue-reference') - .data([0]) - .enter() - .append('div') - .attr('class', 'issue-reference') - .text(t('issues.invalid_format.website.reference')); - } + function showReferenceWebsite(selection) { + selection.selectAll('.issue-reference') + .data([0]) + .enter() + .append('div') + .attr('class', 'issue-reference') + .text(t('issues.invalid_format.website.reference')); } } if (entity.tags.email) { - // Same regex as used by HTML5 "email" inputs - // Emails in OSM are going to be official so they should be pretty simple - var valid_email = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/; + // Multiple emails are possible + var emails = entity.tags.email.split(';').filter(isInvalidEmail); + + if (emails.length) { + var multi = (emails.length > 1) ? '_multi' : ''; - if (!valid_email.test(entity.tags.email)) { issues.push(new validationIssue({ type: type, subtype: 'email', severity: 'warning', message: function() { var entity = context.hasEntity(this.entityIds[0]); - return entity ? t('issues.invalid_format.email.message', { feature: utilDisplayLabel(entity, context) }) : ''; + return entity ? t('issues.invalid_format.email.message' + multi, { feature: utilDisplayLabel(entity, context), email: emails.join(', ') }) : ''; }, reference: showReferenceEmail, - entityIds: [entity.id] + entityIds: [entity.id], + hash: emails.join() })); + } - function showReferenceEmail(selection) { - selection.selectAll('.issue-reference') - .data([0]) - .enter() - .append('div') - .attr('class', 'issue-reference') - .text(t('issues.invalid_format.email.reference')); - } + function showReferenceEmail(selection) { + selection.selectAll('.issue-reference') + .data([0]) + .enter() + .append('div') + .attr('class', 'issue-reference') + .text(t('issues.invalid_format.email.reference')); } } From cb3f7e32b2f3b8dbda55f2f8facac1065246260f Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Thu, 6 Jun 2019 15:34:16 +0100 Subject: [PATCH 050/774] Fix varied validation messages and redeclaration I've hijacked the data property for the purposes of changing the message based on whether multiple values in a list are erroneous --- modules/validations/invalid_format.js | 51 +++++++++++++-------------- 1 file changed, 25 insertions(+), 26 deletions(-) diff --git a/modules/validations/invalid_format.js b/modules/validations/invalid_format.js index c51b35cb2e..2d5d351057 100644 --- a/modules/validations/invalid_format.js +++ b/modules/validations/invalid_format.js @@ -20,36 +20,44 @@ export function validationFormatting() { return !valid_scheme.test(url); } + function showReferenceEmail(selection) { + selection.selectAll('.issue-reference') + .data([0]) + .enter() + .append('div') + .attr('class', 'issue-reference') + .text(t('issues.invalid_format.email.reference')); + } + + function showReferenceWebsite(selection) { + selection.selectAll('.issue-reference') + .data([0]) + .enter() + .append('div') + .attr('class', 'issue-reference') + .text(t('issues.invalid_format.website.reference')); + } if (entity.tags.website) { // Multiple websites are possible var websites = entity.tags.website.split(';').filter(isSchemeMissing); if (websites.length) { - var multi = (websites.length > 1) ? '_multi' : ''; - issues.push(new validationIssue({ type: type, subtype: 'website', severity: 'warning', message: function() { var entity = context.hasEntity(this.entityIds[0]); - return entity ? t('issues.invalid_format.website.message' + multi, { feature: utilDisplayLabel(entity, context), site: websites.join(', ') }) : ''; + return entity ? t('issues.invalid_format.website.message' + this.data, + { feature: utilDisplayLabel(entity, context), site: websites.join(', ') }) : ''; }, reference: showReferenceWebsite, entityIds: [entity.id], - hash: websites.join() + hash: websites.join(), + data: (websites.length > 1) ? '_multi' : '' })); } - - function showReferenceWebsite(selection) { - selection.selectAll('.issue-reference') - .data([0]) - .enter() - .append('div') - .attr('class', 'issue-reference') - .text(t('issues.invalid_format.website.reference')); - } } if (entity.tags.email) { @@ -57,30 +65,21 @@ export function validationFormatting() { var emails = entity.tags.email.split(';').filter(isInvalidEmail); if (emails.length) { - var multi = (emails.length > 1) ? '_multi' : ''; - issues.push(new validationIssue({ type: type, subtype: 'email', severity: 'warning', message: function() { var entity = context.hasEntity(this.entityIds[0]); - return entity ? t('issues.invalid_format.email.message' + multi, { feature: utilDisplayLabel(entity, context), email: emails.join(', ') }) : ''; + return entity ? t('issues.invalid_format.email.message' + this.data, + { feature: utilDisplayLabel(entity, context), email: emails.join(', ') }) : ''; }, reference: showReferenceEmail, entityIds: [entity.id], - hash: emails.join() + hash: emails.join(), + data: (emails.length > 1) ? '_multi' : '' })); } - - function showReferenceEmail(selection) { - selection.selectAll('.issue-reference') - .data([0]) - .enter() - .append('div') - .attr('class', 'issue-reference') - .text(t('issues.invalid_format.email.reference')); - } } return issues; From eaac69304febb4e2a3b1a1c7feb4759d80935ea1 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Thu, 6 Jun 2019 15:55:31 +0100 Subject: [PATCH 051/774] Fix email and website validation for empty values --- modules/validations/invalid_format.js | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/modules/validations/invalid_format.js b/modules/validations/invalid_format.js index 2d5d351057..16902ce19d 100644 --- a/modules/validations/invalid_format.js +++ b/modules/validations/invalid_format.js @@ -8,16 +8,18 @@ export function validationFormatting() { var validation = function(entity, context) { var issues = []; - function isInvalidEmail(email) { + function isValidEmail(email) { // Same regex as used by HTML5 "email" inputs // Emails in OSM are going to be official so they should be pretty simple var valid_email = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/; - return !valid_email.test(email); + + // An empty value is also acceptable + return (!email || valid_email.test(email)); } - function isSchemeMissing(url) { + function isSchemePresent(url) { var valid_scheme = /^https?:\/\//i; - return !valid_scheme.test(url); + return (!url || valid_scheme.test(url)); } function showReferenceEmail(selection) { @@ -40,7 +42,8 @@ export function validationFormatting() { if (entity.tags.website) { // Multiple websites are possible - var websites = entity.tags.website.split(';').filter(isSchemeMissing); + // If ever we support ES6, arrow functions make this nicer + var websites = entity.tags.website.split(';').filter(function(x) { return !isSchemePresent(x); }); if (websites.length) { issues.push(new validationIssue({ @@ -62,7 +65,7 @@ export function validationFormatting() { if (entity.tags.email) { // Multiple emails are possible - var emails = entity.tags.email.split(';').filter(isInvalidEmail); + var emails = entity.tags.email.split(';').filter(function(x) { return !isValidEmail(x); }); if (emails.length) { issues.push(new validationIssue({ From f2d7cfa5119256df9c424158ac910b536c7d95a8 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Thu, 6 Jun 2019 12:17:56 -0400 Subject: [PATCH 052/774] Integrate feature search directly into the assistant panel (close #6493) --- css/80_app.css | 116 +++++++--- modules/ui/assistant.js | 23 +- modules/ui/feature_list.js | 448 ++++++++++++++++++------------------- modules/ui/sidebar.js | 17 -- 4 files changed, 331 insertions(+), 273 deletions(-) diff --git a/css/80_app.css b/css/80_app.css index 40a4cf865a..cccf8aaef5 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -311,6 +311,19 @@ button:hover { button.active { background: #7092ff; } +button.primary { + color: #fff; + background: #7092ff; +} +button.secondary { + color: #7092ff; + background: transparent; + border: 1px solid #7092ff; +} +button.secondary:hover { + color: #fff; + background: #7092ff; +} button.destructive { background: #d32232; color: #fff; @@ -986,8 +999,10 @@ a.hide-toggle { border-radius: 4px; padding: 10px; display: flex; + flex-direction: column; margin-bottom: 10px; max-width: 350px; + max-height: 100%; line-height: 1.35em; -webkit-box-shadow: 0px 0px 6px 0px rgba(0,0,0,0.5); @@ -997,6 +1012,10 @@ a.hide-toggle { -webkit-backdrop-filter: blur(2.5px); backdrop-filter: blur(2.5px); } +.assistant .assistant-header { + display: flex; + flex: 0 0 auto; +} .assistant .icon-col { flex: 0 0 auto; } @@ -1022,7 +1041,8 @@ a.hide-toggle { margin-top: 6px; } .assistant .body-text:empty, -.assistant .main-footer:empty { +.assistant .main-footer:empty, +.assistant .assistant-body:empty { display: none; } .assistant b { @@ -1036,8 +1056,8 @@ a.hide-toggle { .assistant .main-footer { margin-top: 12px; } +.assistant button.geocode-item, .assistant .main-footer button { - color: #fff; min-width: 100px; height: auto; padding: 5px 2px; @@ -1051,6 +1071,69 @@ a.hide-toggle { margin-left: 8px; } +.assistant .assistant-body { + margin-top: 15px; + padding: 0 5px; + display: flex; +} +.assistant .search-header { + position: relative; +} +.assistant .search-header .icon { + position: absolute; + left: 7px; + top: 5px; + pointer-events: none; + opacity: 0.75; +} +[dir='rtl'] .assistant .search-header .icon { + left: auto; + right: 7px; +} + +.assistant input[type='search'] { + height: 30px; + width: 100%; + padding: 5px 10px; + border-radius: 15px; + border-width: 0; + text-indent: 25px; + font-size: 12px; + background: rgba(18, 18, 18, 0.97); + color: #fff; + min-width: 225px; +} +.assistant .no-results-item, +.assistant .feature-list-item { + width: 100%; + background: transparent; + border-bottom: 1px solid #444; + color: #fff; +} +.assistant .feature-list-item:hover { + background: rgba(255, 255, 255, 0.05); +} +.assistant .feature-list > *:nth-last-child(2) { + border-bottom: none; +} +[dir='ltr'] .assistant .feature-list-item .label { + padding-left: 8px; +} +[dir='rtl'] .assistant .feature-list-item .label { + padding-right: 8px; +} +.assistant .feature-list-item .icon { + margin-right: 8px; +} + +.assistant .geocode-item { + width: 50%; + margin-top: 5px; + margin-right: auto; + margin-left: auto; + margin-bottom: 10px; +} + .assistant.prominent { padding-bottom: 16px; } @@ -1098,11 +1181,10 @@ a.hide-toggle { #sidebar { position: relative; - height: 100%; + max-height: 100%; z-index: 10; background: rgba(246, 246, 246, 0.98); -ms-user-select: element; - border: 1px solid #ccc; border-radius: 6px; -webkit-backdrop-filter: blur(1.5px); backdrop-filter: blur(1.5px); @@ -1152,9 +1234,10 @@ a.hide-toggle { .entity-editor-pane { width: 100%; - height: 100%; display: flex; flex-direction: column; + border: 1px solid #ccc; + border-radius: inherit; } .entity-editor-pane .footer { position: relative; @@ -1215,31 +1298,12 @@ a.hide-toggle { .feature-list { width: 100%; } -.no-results-item, -.geocode-item, .feature-list-item { width: 100%; position: relative; border-bottom: 1px solid #ccc; border-radius: 0; } - -.geocode-item { - width: 50%; - background-color: #ccc; - left: 25%; - margin-top: 30px; - border-radius: 2px; -} - -[dir='rtl'] .geocode-item { - left: -25%; -} - -.geocode-item:hover { - background-color: #aaa; -} - .feature-list-item { background-color: #fff; font-weight: bold; @@ -1258,14 +1322,13 @@ a.hide-toggle { white-space: nowrap; text-overflow: ellipsis; overflow: hidden; - border-left: 1px solid rgba(0, 0, 0, .1); } [dir='rtl'] .feature-list-item .label { text-align: right; } .feature-list-item .label .icon { - opacity: .5; + opacity: 0.75; } .feature-list-item .close { float: right; @@ -1282,7 +1345,6 @@ a.hide-toggle { } .feature-list-item .entity-name { font-weight: normal; - color: #666; padding-left: 10px; } [dir='rtl'] .feature-list-item .entity-name { diff --git a/modules/ui/assistant.js b/modules/ui/assistant.js index 3933d3f12a..b3a2a5f638 100644 --- a/modules/ui/assistant.js +++ b/modules/ui/assistant.js @@ -7,6 +7,7 @@ import { t } from '../util/locale'; import { services } from '../services'; import { utilDisplayLabel } from '../util'; import { uiIntro } from './intro'; +import { uiFeatureList } from './feature_list'; import { geoRawMercator } from '../geo/raw_mercator'; import { decimalCoordinatePair, formattedRoundedDuration } from '../util/units'; @@ -15,7 +16,11 @@ export function uiAssistant(context) { var defaultLoc = t('assistant.global_location'); var currLocation = defaultLoc; - var container = d3_select(null); + var container = d3_select(null), + header = d3_select(null), + body = d3_select(null); + + var featureSearch = uiFeatureList(context); var didEditAnythingYet = false; var isFirstSession = !context.storage('sawSplash'); @@ -25,6 +30,10 @@ export function uiAssistant(context) { container = selection.append('div') .attr('class', 'assistant'); + header = container.append('div') + .attr('class', 'assistant-header'); + body = container.append('div') + .attr('class', 'assistant-body'); scheduleCurrentLocationUpdate(); @@ -55,7 +64,7 @@ export function uiAssistant(context) { var mode = context.mode(); if (!mode) return; - var iconCol = container.selectAll('.icon-col') + var iconCol = header.selectAll('.icon-col') .data([0]); iconCol = iconCol.enter() .append('div') @@ -63,7 +72,7 @@ export function uiAssistant(context) { .call(svgIcon('#')) .merge(iconCol); - var mainCol = container.selectAll('.body-col') + var mainCol = header.selectAll('.body-col') .data([0]); var mainColEnter = mainCol.enter() @@ -98,6 +107,7 @@ export function uiAssistant(context) { iconUse.attr('href','#iD-icon-area'); } + body.html(''); bodyTextArea.html(''); mainFooter.html(''); subjectTitle.classed('location', false); @@ -167,6 +177,11 @@ export function uiAssistant(context) { subjectTitle.classed('location', true); subjectTitle.text(currLocation); scheduleCurrentLocationUpdate(); + + body + .append('div') + .attr('class', 'feature-list-pane') + .call(featureSearch); } function drawRestoreScreen() { @@ -211,7 +226,7 @@ export function uiAssistant(context) { }); mainFooter.append('button') - .attr('class', 'active') + .attr('class', 'primary') .on('click', function() { context.history().restore(); redraw(); diff --git a/modules/ui/feature_list.js b/modules/ui/feature_list.js index 9ee43b3698..f8a82a9eff 100644 --- a/modules/ui/feature_list.js +++ b/modules/ui/feature_list.js @@ -25,23 +25,27 @@ import { export function uiFeatureList(context) { var _geocodeResults; + var search = d3_select(null), + list = d3_select(null); + + context + .on('exit.feature-list', clearSearch); + context.map() + .on('drawn.feature-list', mapDrawn); + + context.keybinding() + .on(uiCmd('⌘F'), focusSearch); - function featureList(selection) { - var header = selection - .append('div') - .attr('class', 'header fillL cf'); - header - .append('h3') - .text(t('inspector.feature_list')); + function featureList(selection) { var searchWrap = selection .append('div') .attr('class', 'search-header'); - var search = searchWrap + search = searchWrap .append('input') - .attr('placeholder', t('inspector.search')) + .attr('placeholder', t('inspector.feature_list')) .attr('type', 'search') .call(utilNoAuto) .on('keypress', keypress) @@ -55,290 +59,284 @@ export function uiFeatureList(context) { .append('div') .attr('class', 'inspector-body'); - var list = listWrap + list = listWrap .append('div') .attr('class', 'feature-list cf'); - context - .on('exit.feature-list', clearSearch); - context.map() - .on('drawn.feature-list', mapDrawn); + } - context.keybinding() - .on(uiCmd('⌘F'), focusSearch); + function focusSearch() { + var mode = context.mode() && context.mode().id; + if (mode !== 'browse') return; + d3_event.preventDefault(); + search.node().focus(); + } - function focusSearch() { - var mode = context.mode() && context.mode().id; - if (mode !== 'browse') return; - d3_event.preventDefault(); - search.node().focus(); + function keydown() { + if (d3_event.keyCode === 27) { // escape + search.node().blur(); } + } - function keydown() { - if (d3_event.keyCode === 27) { // escape - search.node().blur(); - } + function keypress() { + var q = search.property('value'), + items = list.selectAll('.feature-list-item'); + if (d3_event.keyCode === 13 && q.length && items.size()) { // return + click(items.datum()); } + } - function keypress() { - var q = search.property('value'), - items = list.selectAll('.feature-list-item'); - if (d3_event.keyCode === 13 && q.length && items.size()) { // return - click(items.datum()); - } - } + function inputevent() { + _geocodeResults = undefined; + drawList(); + } - function inputevent() { - _geocodeResults = undefined; - drawList(); - } + function clearSearch() { + search.property('value', ''); + drawList(); + } - function clearSearch() { - search.property('value', ''); + function mapDrawn(e) { + if (e.full) { drawList(); } + } - function mapDrawn(e) { - if (e.full) { - drawList(); - } + function features() { + var entities = {}; + var result = []; + var graph = context.graph(); + var q = search.property('value').toLowerCase(); + + if (!q) return result; + + var idMatch = q.match(/^([nwr])([0-9]+)$/); + + if (idMatch) { + result.push({ + id: idMatch[0], + geometry: idMatch[1] === 'n' ? 'point' : idMatch[1] === 'w' ? 'line' : 'relation', + type: idMatch[1] === 'n' ? t('inspector.node') : idMatch[1] === 'w' ? t('inspector.way') : t('inspector.relation'), + name: idMatch[2] + }); } + var locationMatch = sexagesimal.pair(q.toUpperCase()) || q.match(/^(-?\d+\.?\d*)\s+(-?\d+\.?\d*)$/); - function features() { - var entities = {}; - var result = []; - var graph = context.graph(); - var q = search.property('value').toLowerCase(); + if (locationMatch) { + var loc = [parseFloat(locationMatch[0]), parseFloat(locationMatch[1])]; + result.push({ + id: -1, + geometry: 'point', + type: t('inspector.location'), + name: dmsCoordinatePair([loc[1], loc[0]]), + location: loc + }); + } + + function addEntity(entity) { + if (entity.id in entities || result.length > 200) + return; - if (!q) return result; + entities[entity.id] = true; - var idMatch = q.match(/^([nwr])([0-9]+)$/); + var name = utilDisplayName(entity) || ''; + if (name.toLowerCase().indexOf(q) >= 0) { + var matched = context.presets().match(entity, graph); + var type = (matched && matched.name()) || utilDisplayType(entity.id); - if (idMatch) { result.push({ - id: idMatch[0], - geometry: idMatch[1] === 'n' ? 'point' : idMatch[1] === 'w' ? 'line' : 'relation', - type: idMatch[1] === 'n' ? t('inspector.node') : idMatch[1] === 'w' ? t('inspector.way') : t('inspector.relation'), - name: idMatch[2] + id: entity.id, + entity: entity, + geometry: context.geometry(entity.id), + type: type, + name: name }); } - var locationMatch = sexagesimal.pair(q.toUpperCase()) || q.match(/^(-?\d+\.?\d*)\s+(-?\d+\.?\d*)$/); + graph.parentRelations(entity).forEach(function(parent) { + addEntity(parent); + }); + } + + var visible = context.surface().selectAll('.point, .line, .area').nodes(); + for (var i = 0; i < visible.length && result.length <= 200; i++) { + var datum = visible[i].__data__; + var entity = datum && datum.properties && datum.properties.entity; + if (entity) { addEntity(entity); } + } + + (_geocodeResults || []).forEach(function(d) { + if (d.osm_type && d.osm_id) { // some results may be missing these - #1890 + + // Make a temporary osmEntity so we can preset match + // and better localize the search result - #4725 + var id = osmEntity.id.fromOSM(d.osm_type, d.osm_id); + var tags = {}; + tags[d.class] = d.type; + + var attrs = { id: id, type: d.osm_type, tags: tags }; + if (d.osm_type === 'way') { // for ways, add some fake closed nodes + attrs.nodes = ['a','a']; // so that geometry area is possible + } + + var tempEntity = osmEntity(attrs); + var tempGraph = coreGraph([tempEntity]); + var matched = context.presets().match(tempEntity, tempGraph); + var type = (matched && matched.name()) || utilDisplayType(id); - if (locationMatch) { - var loc = [parseFloat(locationMatch[0]), parseFloat(locationMatch[1])]; result.push({ - id: -1, - geometry: 'point', - type: t('inspector.location'), - name: dmsCoordinatePair([loc[1], loc[0]]), - location: loc + id: tempEntity.id, + geometry: tempEntity.geometry(tempGraph), + type: type, + name: d.display_name, + extent: new geoExtent( + [parseFloat(d.boundingbox[3]), parseFloat(d.boundingbox[0])], + [parseFloat(d.boundingbox[2]), parseFloat(d.boundingbox[1])]) }); } + }); - function addEntity(entity) { - if (entity.id in entities || result.length > 200) - return; + return result; + } - entities[entity.id] = true; - var name = utilDisplayName(entity) || ''; - if (name.toLowerCase().indexOf(q) >= 0) { - var matched = context.presets().match(entity, graph); - var type = (matched && matched.name()) || utilDisplayType(entity.id); + function drawList() { + if (search.empty()) return; - result.push({ - id: entity.id, - entity: entity, - geometry: context.geometry(entity.id), - type: type, - name: name - }); - } + var value = search.property('value'); + var results = features(); - graph.parentRelations(entity).forEach(function(parent) { - addEntity(parent); - }); - } + list.classed('filtered', value.length); - var visible = context.surface().selectAll('.point, .line, .area').nodes(); - for (var i = 0; i < visible.length && result.length <= 200; i++) { - var datum = visible[i].__data__; - var entity = datum && datum.properties && datum.properties.entity; - if (entity) { addEntity(entity); } - } + var noResultsWorldwide = _geocodeResults && _geocodeResults.length === 0; - (_geocodeResults || []).forEach(function(d) { - if (d.osm_type && d.osm_id) { // some results may be missing these - #1890 - - // Make a temporary osmEntity so we can preset match - // and better localize the search result - #4725 - var id = osmEntity.id.fromOSM(d.osm_type, d.osm_id); - var tags = {}; - tags[d.class] = d.type; - - var attrs = { id: id, type: d.osm_type, tags: tags }; - if (d.osm_type === 'way') { // for ways, add some fake closed nodes - attrs.nodes = ['a','a']; // so that geometry area is possible - } - - var tempEntity = osmEntity(attrs); - var tempGraph = coreGraph([tempEntity]); - var matched = context.presets().match(tempEntity, tempGraph); - var type = (matched && matched.name()) || utilDisplayType(id); - - result.push({ - id: tempEntity.id, - geometry: tempEntity.geometry(tempGraph), - type: type, - name: d.display_name, - extent: new geoExtent( - [parseFloat(d.boundingbox[3]), parseFloat(d.boundingbox[0])], - [parseFloat(d.boundingbox[2]), parseFloat(d.boundingbox[1])]) - }); - } - }); + var resultsIndicator = list.selectAll('.no-results-item') + .data([0]) + .enter() + .append('button') + .property('disabled', true) + .attr('class', 'no-results-item') + .call(svgIcon('#iD-icon-alert', 'pre-text')); - return result; - } + resultsIndicator.append('span') + .attr('class', 'entity-name'); + list.selectAll('.no-results-item .entity-name') + .text(noResultsWorldwide ? t('geocoder.no_results_worldwide') : t('geocoder.no_results_visible')); - function drawList() { - var value = search.property('value'); - var results = features(); - - list.classed('filtered', value.length); - - var noResultsWorldwide = _geocodeResults && _geocodeResults.length === 0; - - var resultsIndicator = list.selectAll('.no-results-item') - .data([0]) - .enter() - .append('button') - .property('disabled', true) - .attr('class', 'no-results-item') - .call(svgIcon('#iD-icon-alert', 'pre-text')); - - resultsIndicator.append('span') - .attr('class', 'entity-name'); - - list.selectAll('.no-results-item .entity-name') - .text(noResultsWorldwide ? t('geocoder.no_results_worldwide') : t('geocoder.no_results_visible')); - - if (services.geocoder) { - list.selectAll('.geocode-item') - .data([0]) - .enter() - .append('button') - .attr('class', 'geocode-item') - .on('click', geocoderSearch) - .append('div') - .attr('class', 'label') - .append('span') - .attr('class', 'entity-name') - .text(t('geocoder.search')); - } + if (services.geocoder) { + list.selectAll('.geocode-item') + .data([0]) + .enter() + .append('button') + .attr('class', 'geocode-item secondary') + .on('click', geocoderSearch) + .append('div') + .attr('class', 'label') + .append('span') + .attr('class', 'entity-name') + .text(t('geocoder.search')); + } - list.selectAll('.no-results-item') - .style('display', (value.length && !results.length) ? 'block' : 'none'); + list.selectAll('.no-results-item') + .style('display', (value.length && !results.length) ? 'block' : 'none'); - list.selectAll('.geocode-item') - .style('display', (value && _geocodeResults === undefined) ? 'block' : 'none'); + list.selectAll('.geocode-item') + .style('display', (value && _geocodeResults === undefined) ? 'block' : 'none'); - list.selectAll('.feature-list-item') - .data([-1]) - .remove(); + list.selectAll('.feature-list-item') + .data([-1]) + .remove(); - var items = list.selectAll('.feature-list-item') - .data(results, function(d) { return d.id; }); + var items = list.selectAll('.feature-list-item') + .data(results, function(d) { return d.id; }); - var enter = items.enter() - .insert('button', '.geocode-item') - .attr('class', 'feature-list-item') - .on('mouseover', mouseover) - .on('mouseout', mouseout) - .on('click', click); + var enter = items.enter() + .insert('button', '.geocode-item') + .attr('class', 'feature-list-item') + .on('mouseover', mouseover) + .on('mouseout', mouseout) + .on('click', click); - var label = enter - .append('div') - .attr('class', 'label'); + var label = enter + .append('div') + .attr('class', 'label'); - label - .each(function(d) { - d3_select(this) - .call(svgIcon('#iD-icon-' + d.geometry, 'pre-text')); - }); + label + .each(function(d) { + d3_select(this) + .call(svgIcon('#iD-icon-' + d.geometry, 'pre-text')); + }); - label - .append('span') - .attr('class', 'entity-type') - .text(function(d) { return d.type; }); + label + .append('span') + .attr('class', 'entity-type') + .text(function(d) { return d.type; }); - label - .append('span') - .attr('class', 'entity-name') - .text(function(d) { return d.name; }); + label + .append('span') + .attr('class', 'entity-name') + .text(function(d) { return d.name; }); - enter - .style('opacity', 0) - .transition() - .style('opacity', 1); + enter + .style('opacity', 0) + .transition() + .style('opacity', 1); - items.order(); + items.order(); - items.exit() - .remove(); - } + items.exit() + .remove(); + } - function mouseover(d) { - if (d.id === -1) return; + function mouseover(d) { + if (d.id === -1) return; - context.surface().selectAll(utilEntityOrMemberSelector([d.id], context.graph())) - .classed('hover', true); - } + context.surface().selectAll(utilEntityOrMemberSelector([d.id], context.graph())) + .classed('hover', true); + } - function mouseout() { - context.surface().selectAll('.hover') - .classed('hover', false); - } + function mouseout() { + context.surface().selectAll('.hover') + .classed('hover', false); + } - function click(d) { - d3_event.preventDefault(); - if (d.location) { - context.map().centerZoomEase([d.location[1], d.location[0]], 19); - } - else if (d.entity) { - if (d.entity.type === 'node') { - context.map().center(d.entity.loc); - } else if (d.entity.type === 'way') { - var center = context.projection(context.map().center()); - var edge = geoChooseEdge(context.childNodes(d.entity), center, context.projection); - context.map().center(edge.loc); - } - context.enter(modeSelect(context, [d.entity.id])); - } else { - context.zoomToEntity(d.id); + function click(d) { + d3_event.preventDefault(); + if (d.location) { + context.map().centerZoomEase([d.location[1], d.location[0]], 19); + } + else if (d.entity) { + if (d.entity.type === 'node') { + context.map().center(d.entity.loc); + } else if (d.entity.type === 'way') { + var center = context.projection(context.map().center()); + var edge = geoChooseEdge(context.childNodes(d.entity), center, context.projection); + context.map().center(edge.loc); } + context.enter(modeSelect(context, [d.entity.id])); + } else { + context.zoomToEntity(d.id); } + } - function geocoderSearch() { - services.geocoder.search(search.property('value'), function (err, resp) { - _geocodeResults = resp || []; - drawList(); - }); - } + function geocoderSearch() { + services.geocoder.search(search.property('value'), function (err, resp) { + _geocodeResults = resp || []; + drawList(); + }); } diff --git a/modules/ui/sidebar.js b/modules/ui/sidebar.js index cda19d924e..47dfab4e44 100644 --- a/modules/ui/sidebar.js +++ b/modules/ui/sidebar.js @@ -12,7 +12,6 @@ import { import { osmEntity, osmNote, qaError } from '../osm'; import { services } from '../services'; import { uiDataEditor } from './data_editor'; -import { uiFeatureList } from './feature_list'; import { uiEntityEditor } from './entity_editor'; import { uiImproveOsmEditor } from './improveOSM_editor'; import { uiKeepRightEditor } from './keepRight_editor'; @@ -86,11 +85,6 @@ export function uiSidebar(context) { }) ); - var featureListWrap = selection - .append('div') - .attr('class', 'feature-list-pane') - .call(uiFeatureList(context)); - var inspectorWrap = selection .append('div') .attr('class', 'inspector-hidden inspector-wrap entity-editor-pane'); @@ -142,8 +136,6 @@ export function uiSidebar(context) { .classed('inspector-hover', true); } else if (!_current && (datum instanceof osmEntity)) { - featureListWrap - .classed('inspector-hidden', true); inspectorWrap .classed('inspector-hidden', false) @@ -159,8 +151,6 @@ export function uiSidebar(context) { } } else if (!_current) { - featureListWrap - .classed('inspector-hidden', false); inspectorWrap .classed('inspector-hidden', true); inspector @@ -203,9 +193,6 @@ export function uiSidebar(context) { sidebar.expand(sidebar.intersects(extent)); } - featureListWrap - .classed('inspector-hidden', true); - inspectorWrap .classed('inspector-hidden', false) .classed('inspector-hover', false); @@ -231,8 +218,6 @@ export function uiSidebar(context) { sidebar.show = function(component, element) { - featureListWrap - .classed('inspector-hidden', true); inspectorWrap .classed('inspector-hidden', true); @@ -245,8 +230,6 @@ export function uiSidebar(context) { sidebar.hide = function() { - featureListWrap - .classed('inspector-hidden', false); inspectorWrap .classed('inspector-hidden', true); From 03b16a8c2f4f329090c145900d4166972f58fd3f Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Thu, 6 Jun 2019 13:55:10 -0400 Subject: [PATCH 053/774] Adjust the strings for the invalid formatting validation (re: #6494) --- data/core.yaml | 16 ++++++++-------- dist/locales/en.json | 14 +++++++------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/data/core.yaml b/data/core.yaml index 61cda795f0..6588c0427c 100644 --- a/data/core.yaml +++ b/data/core.yaml @@ -1445,15 +1445,15 @@ en: reference: "Google products are proprietary and must not be used as references." invalid_format: title: Invalid Formatting - tip: Find features tagged with invalid value formatting + tip: Find tags with unexpected formats email: - message: '{feature} has an invalid email address: {email}' - message_multi: '{feature} has multiple invalid email addresses: {email}' - reference: 'Email addresses must be of the form "local-part@domain".' + message: '{feature} has an invalid email address.' + message_multi: '{feature} has multiple invalid email addresses.' + reference: 'Email addresses must looks like "user@example.com".' website: - message: '{feature} has a website with no scheme: {site}' - message_multi: '{feature} has multiple websites with no scheme: {site}' - reference: 'Websites should start with a "http" or "https" scheme.' + message: '{feature} has an invalid website.' + message_multi: '{feature} has multiple invalid websites.' + reference: 'Websites should start with "http" or "https".' missing_role: title: Missing Roles message: "{member} has no role within {relation}" @@ -1977,4 +1977,4 @@ en: wikidata: identifier: "Identifier" label: "Label" - description: "Description" \ No newline at end of file + description: "Description" diff --git a/dist/locales/en.json b/dist/locales/en.json index e6f6f6a5ea..b743eca654 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -1790,16 +1790,16 @@ }, "invalid_format": { "title": "Invalid Formatting", - "tip": "Find features tagged with invalid value formatting", + "tip": "Find tags with unexpected formats", "email": { - "message": "{feature} has an invalid email address: {email}", - "message_multi": "{feature} has multiple invalid email addresses: {email}", - "reference": "Email addresses must be of the form \"local-part@domain\"." + "message": "{feature} has an invalid email address.", + "message_multi": "{feature} has multiple invalid email addresses.", + "reference": "Email addresses must looks like \"user@example.com\"." }, "website": { - "message": "{feature} has a website with no scheme: {site}", - "message_multi": "{feature} has multiple websites with no scheme: {site}", - "reference": "Websites should start with a \"http\" or \"https\" scheme." + "message": "{feature} has an invalid website.", + "message_multi": "{feature} has multiple invalid websites.", + "reference": "Websites should start with \"http\" or \"https\"." } }, "missing_role": { From 75df7911a82d93ea6b6c68d281dc8871285285d3 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Thu, 6 Jun 2019 16:38:12 -0400 Subject: [PATCH 054/774] Fix issue where commit sidebar would not fully display, so saving was impossible (close #6499) --- css/80_app.css | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/css/80_app.css b/css/80_app.css index cccf8aaef5..ea6b0d618f 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -846,6 +846,7 @@ button.add-preset.disabled .preset-icon-container { border-bottom: 1px solid #ccc; height: 60px; position: relative; + flex: 0 0 auto; } .header h3 { @@ -1217,19 +1218,16 @@ a.hide-toggle { } .sidebar-component { - position: absolute; - top: 0; - left: 0; - bottom: 0; - right: 0; + width: 100%; + display: flex; + flex-direction: column; + border-radius: 4px; + border: 1px solid #ccc; } .sidebar-component .body { width: 100%; overflow: auto; - top: 60px; - bottom: 0; - position: absolute; } .entity-editor-pane { From 16443e2284ae2eff5f5be5e9e51292d2ec9641f5 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Thu, 6 Jun 2019 16:42:53 -0400 Subject: [PATCH 055/774] Don't show another welcome screen after the user discards stored changes --- modules/ui/assistant.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/ui/assistant.js b/modules/ui/assistant.js index b3a2a5f638..8c849511c7 100644 --- a/modules/ui/assistant.js +++ b/modules/ui/assistant.js @@ -237,6 +237,8 @@ export function uiAssistant(context) { mainFooter.append('button') .attr('class', 'destructive') .on('click', function() { + // don't show another welcome screen after discarding changes + updateDidEditStatus(); context.history().clearSaved(); redraw(); }) From 015af570b608354dcbdb8ba507719c3e83e65309 Mon Sep 17 00:00:00 2001 From: ToastHawaii Date: Fri, 7 Jun 2019 09:57:43 +0200 Subject: [PATCH 056/774] Normalized public_bookcase Editor with Wiki Page. Add some useful fields from my own experience in mapping public bookcases. --- data/presets/presets.json | 2 +- data/presets/presets/amenity/public_bookcase.json | 8 +++++++- dist/locales/de.json | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/data/presets/presets.json b/data/presets/presets.json index ab1aac3650..aaadab8155 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -164,7 +164,7 @@ "amenity/pub/lgbtq": {"icon": "maki-beer", "geometry": ["point", "area"], "tags": {"amenity": "pub", "lgbtq": "primary"}, "terms": ["gay pub", "lesbian pub", "lgbtq pub", "lgbt pub", "lgb pub"], "name": "LGBTQ+ Pub"}, "amenity/pub/microbrewery": {"icon": "maki-beer", "geometry": ["point", "area"], "tags": {"amenity": "pub", "microbrewery": "yes"}, "reference": {"key": "microbrewery"}, "terms": ["alcohol", "drink", "dive", "beer", "bier", "booze", "craft brewery", "microbrewery", "small batch brewery"], "name": "Brewpub"}, "amenity/public_bath": {"icon": "maki-water", "fields": ["name", "bath/type", "bath/open_air", "bath/sand_bath", "address", "building_area", "fee"], "moreFields": ["email", "fax", "internet_access", "internet_access/fee", "internet_access/ssid", "opening_hours", "payment_multi_fee", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "public_bath"}, "terms": ["onsen", "foot bath", "hot springs"], "name": "Public Bath"}, - "amenity/public_bookcase": {"icon": "maki-library", "fields": ["name", "operator", "capacity", "website", "lit"], "moreFields": ["wheelchair"], "geometry": ["point", "area"], "terms": ["library", "bookcrossing"], "tags": {"amenity": "public_bookcase"}, "name": "Public Bookcase"}, + "amenity/public_bookcase": {"icon": "maki-library", "fields": ["name", "operator", "opening_hours", "capacity", "website", "lit"], "moreFields": ["wheelchair", "location", "access", "brand", "email", "phone"], "geometry": ["point", "area"], "terms": ["library", "bookcrossing"], "tags": {"amenity": "public_bookcase"}, "name": "Public Bookcase"}, "amenity/ranger_station": {"icon": "maki-ranger-station", "fields": ["name", "operator", "address", "building_area", "opening_hours"], "moreFields": ["email", "fax", "internet_access", "internet_access/fee", "internet_access/ssid", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["visitor center", "visitor centre", "permit center", "permit centre", "backcountry office", "warden office", "warden center"], "tags": {"amenity": "ranger_station"}, "name": "Ranger Station"}, "amenity/recycling_centre": {"icon": "maki-recycling", "fields": ["name", "operator", "address", "building", "opening_hours", "recycling_accepts"], "moreFields": ["fee", "payment_multi_fee", "website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "terms": ["bottle", "can", "dump", "glass", "garbage", "rubbish", "scrap", "trash"], "tags": {"amenity": "recycling", "recycling_type": "centre"}, "reference": {"key": "recycling_type", "value": "*"}, "name": "Recycling Center"}, "amenity/recycling_container": {"icon": "maki-recycling", "fields": ["operator", "recycling_accepts", "collection_times", "material", "colour"], "moreFields": ["covered", "indoor", "manufacturer"], "geometry": ["point", "area"], "terms": ["bin", "can", "bottle", "glass", "garbage", "rubbish", "scrap", "trash"], "tags": {"amenity": "recycling", "recycling_type": "container"}, "reference": {"key": "amenity", "value": "recycling"}, "name": "Recycling Container"}, diff --git a/data/presets/presets/amenity/public_bookcase.json b/data/presets/presets/amenity/public_bookcase.json index d0ba2bc95b..e686a3e540 100644 --- a/data/presets/presets/amenity/public_bookcase.json +++ b/data/presets/presets/amenity/public_bookcase.json @@ -3,12 +3,18 @@ "fields": [ "name", "operator", + "opening_hours", "capacity", "website", "lit" ], "moreFields": [ - "wheelchair" + "wheelchair", + "location", + "access", + "brand", + "email", + "phone" ], "geometry": [ "point", diff --git a/dist/locales/de.json b/dist/locales/de.json index ef69398db4..9249d845ce 100644 --- a/dist/locales/de.json +++ b/dist/locales/de.json @@ -4863,7 +4863,7 @@ }, "amenity/public_bookcase": { "name": "Offentlicher Bücherschrank", - "terms": "Öffentlicher Bücherschrank, öffentlicher Bücherkasten" + "terms": "Öffentlicher Bücherschrank, Offener Bücherschrank, Offenes Bücherregal, Öffentlicher Bücherkasten, Lesebank, Bücherbox" }, "amenity/ranger_station": { "name": "Ranger-Station", From 832516f3a33c2b6c0a23de72909ab0c96772f911 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Fri, 7 Jun 2019 16:19:05 +0100 Subject: [PATCH 057/774] Fix email validation for unicode characters Also fix format validation for lists with excess whitespace (6494#issuecomment-499620002). --- modules/validations/invalid_format.js | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/modules/validations/invalid_format.js b/modules/validations/invalid_format.js index e264af49fb..7448428f1e 100644 --- a/modules/validations/invalid_format.js +++ b/modules/validations/invalid_format.js @@ -9,9 +9,9 @@ export function validationFormatting() { var issues = []; function isValidEmail(email) { - // Same regex as used by HTML5 "email" inputs // Emails in OSM are going to be official so they should be pretty simple - var valid_email = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/; + // Using negated lists to better support all possible unicode characters (#6494) + var valid_email = /^[^\(\)\\,":;<>@\[\]]+@[^\(\)\\,":;<>@\[\]\.]+(?:\.[a-z0-9-]+)*$/i; // An empty value is also acceptable return (!email || valid_email.test(email)); @@ -43,7 +43,10 @@ export function validationFormatting() { if (entity.tags.website) { // Multiple websites are possible // If ever we support ES6, arrow functions make this nicer - var websites = entity.tags.website.split(';').filter(function(x) { return !isSchemePresent(x); }); + var websites = entity.tags.website + .split(';') + .map(function(s) { return s.trim(); }) + .filter(function(x) { return !isSchemePresent(x); }); if (websites.length) { issues.push(new validationIssue({ @@ -65,7 +68,10 @@ export function validationFormatting() { if (entity.tags.email) { // Multiple emails are possible - var emails = entity.tags.email.split(';').filter(function(x) { return !isValidEmail(x); }); + var emails = entity.tags.email + .split(';') + .map(function(s) { return s.trim(); }) + .filter(function(x) { return !isValidEmail(x); }); if (emails.length) { issues.push(new validationIssue({ @@ -91,4 +97,4 @@ export function validationFormatting() { validation.type = type; return validation; -} +} \ No newline at end of file From a067135eaef30458f81ef4bb6e45457669f38869 Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" Date: Mon, 10 Jun 2019 05:44:00 +0000 Subject: [PATCH 058/774] chore(package): update rollup to version 1.14.6 Closes #6497 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 2a7e409849..6b60f76bc2 100644 --- a/package.json +++ b/package.json @@ -82,7 +82,7 @@ "osm-community-index": "0.7.0", "phantomjs-prebuilt": "~2.1.11", "request": "^2.88.0", - "rollup": "~1.13.0", + "rollup": "~1.14.6", "rollup-plugin-commonjs": "^10.0.0", "rollup-plugin-includepaths": "~0.2.3", "rollup-plugin-json": "^4.0.0", From b6d4a486c87a47450d7b2e2cc8e3e31fdb860ddf Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Mon, 10 Jun 2019 12:19:38 -0400 Subject: [PATCH 059/774] Add button to manually start mapping immediately from the welcome screen (close #6500) --- css/80_app.css | 3 +-- data/core.yaml | 1 + dist/locales/en.json | 3 ++- modules/ui/assistant.js | 8 ++++++++ 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/css/80_app.css b/css/80_app.css index ea6b0d618f..21be0f8b0d 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -1061,7 +1061,7 @@ a.hide-toggle { .assistant .main-footer button { min-width: 100px; height: auto; - padding: 5px 2px; + padding: 5px 10px; line-height: 20px; font-size: 13px; } @@ -1128,7 +1128,6 @@ a.hide-toggle { } .assistant .geocode-item { - width: 50%; margin-top: 5px; margin-right: auto; margin-left: auto; diff --git a/data/core.yaml b/data/core.yaml index 645fae50a2..c14114a167 100644 --- a/data/core.yaml +++ b/data/core.yaml @@ -52,6 +52,7 @@ en: welcome: first_time: "You’re editing OpenStreetMap: the free, collborative world map.
If this is your first time here, consider taking the quick-start tutorial.
Thanks for contributing. Have fun!" return: "Welcome back. Ready to make the map even better?" + start_mapping: Start Mapping restore: title: Restore discard: Discard diff --git a/dist/locales/en.json b/dist/locales/en.json index 5cf0c150a1..d22238a4f8 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -62,7 +62,8 @@ }, "welcome": { "first_time": "You’re editing OpenStreetMap: the free, collborative world map.
If this is your first time here, consider taking the quick-start tutorial.
Thanks for contributing. Have fun!", - "return": "Welcome back. Ready to make the map even better?" + "return": "Welcome back. Ready to make the map even better?", + "start_mapping": "Start Mapping" }, "restore": { "title": "Restore", diff --git a/modules/ui/assistant.js b/modules/ui/assistant.js index 8c849511c7..b15ac82c6e 100644 --- a/modules/ui/assistant.js +++ b/modules/ui/assistant.js @@ -167,6 +167,14 @@ export function uiAssistant(context) { updateDidEditStatus(); context.container().call(uiIntro(context)); }); + + mainFooter.append('button') + .attr('class', 'primary') + .on('click', function() { + updateDidEditStatus(); + }) + .append('span') + .text(t('assistant.welcome.start_mapping')); } } else { From 2b5066b86f35ad318328aa4c5dc9e1ddcea0219d Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Mon, 10 Jun 2019 12:25:28 -0400 Subject: [PATCH 060/774] Disable feature previews when hovering for now --- modules/ui/sidebar.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/modules/ui/sidebar.js b/modules/ui/sidebar.js index 47dfab4e44..e675152cd3 100644 --- a/modules/ui/sidebar.js +++ b/modules/ui/sidebar.js @@ -91,6 +91,9 @@ export function uiSidebar(context) { function hover(datum) { + // disable hover preview for now + return; + if (datum && datum.__featurehash__) { // hovering on data _wasData = true; sidebar From 480140442677644ba3d758565b7d08672d037976 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Mon, 10 Jun 2019 13:06:02 -0400 Subject: [PATCH 061/774] Search all downloaded features when searching, not just visible (close #6516) --- data/core.yaml | 1 - dist/locales/en.json | 1 - modules/ui/feature_list.js | 53 ++++++++++++++++++-------------------- 3 files changed, 25 insertions(+), 30 deletions(-) diff --git a/data/core.yaml b/data/core.yaml index c14114a167..185fd8b452 100644 --- a/data/core.yaml +++ b/data/core.yaml @@ -538,7 +538,6 @@ en: note: note geocoder: search: Search worldwide... - no_results_visible: No results in visible map area no_results_worldwide: No results found geolocate: title: Show My Location diff --git a/dist/locales/en.json b/dist/locales/en.json index d22238a4f8..b1361bf058 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -676,7 +676,6 @@ }, "geocoder": { "search": "Search worldwide...", - "no_results_visible": "No results in visible map area", "no_results_worldwide": "No results found" }, "geolocate": { diff --git a/modules/ui/feature_list.js b/modules/ui/feature_list.js index f8a82a9eff..25468b1d69 100644 --- a/modules/ui/feature_list.js +++ b/modules/ui/feature_list.js @@ -7,6 +7,7 @@ import * as sexagesimal from '@mapbox/sexagesimal'; import { t } from '../util/locale'; import { dmsCoordinatePair } from '../util/units'; import { coreGraph } from '../core/graph'; +import { geoSphericalDistance } from '../geo/geo'; import { geoExtent, geoChooseEdge } from '../geo'; import { modeSelect } from '../modes/select'; import { osmEntity } from '../osm/entity'; @@ -110,9 +111,9 @@ export function uiFeatureList(context) { function features() { - var entities = {}; var result = []; var graph = context.graph(); + var visibleCenter = context.map().extent().center(); var q = search.property('value').toLowerCase(); if (!q) return result; @@ -141,37 +142,35 @@ export function uiFeatureList(context) { }); } - function addEntity(entity) { - if (entity.id in entities || result.length > 200) - return; - - entities[entity.id] = true; + var allEntities = graph.entities; + var localResults = []; + for (var id in allEntities) { + var entity = allEntities[id]; var name = utilDisplayName(entity) || ''; - if (name.toLowerCase().indexOf(q) >= 0) { - var matched = context.presets().match(entity, graph); - var type = (matched && matched.name()) || utilDisplayType(entity.id); + if (name.toLowerCase().indexOf(q) < 0) continue; - result.push({ - id: entity.id, - entity: entity, - geometry: context.geometry(entity.id), - type: type, - name: name - }); - } + var matched = context.presets().match(entity, graph); + var type = (matched && matched.name()) || utilDisplayType(entity.id); - graph.parentRelations(entity).forEach(function(parent) { - addEntity(parent); + var extent = entity.extent(graph); + var distance = extent ? geoSphericalDistance(visibleCenter, extent.center()) : 0; + + localResults.push({ + id: entity.id, + entity: entity, + geometry: context.geometry(entity.id), + type: type, + name: name, + distance: distance }); - } - var visible = context.surface().selectAll('.point, .line, .area').nodes(); - for (var i = 0; i < visible.length && result.length <= 200; i++) { - var datum = visible[i].__data__; - var entity = datum && datum.properties && datum.properties.entity; - if (entity) { addEntity(entity); } + if (localResults.length > 100) break; } + localResults = localResults.sort(function byDistance(a, b) { + return a.distance - b.distance; + }); + result = result.concat(localResults); (_geocodeResults || []).forEach(function(d) { if (d.osm_type && d.osm_id) { // some results may be missing these - #1890 @@ -216,8 +215,6 @@ export function uiFeatureList(context) { list.classed('filtered', value.length); - var noResultsWorldwide = _geocodeResults && _geocodeResults.length === 0; - var resultsIndicator = list.selectAll('.no-results-item') .data([0]) .enter() @@ -230,7 +227,7 @@ export function uiFeatureList(context) { .attr('class', 'entity-name'); list.selectAll('.no-results-item .entity-name') - .text(noResultsWorldwide ? t('geocoder.no_results_worldwide') : t('geocoder.no_results_visible')); + .text(t('geocoder.no_results_worldwide')); if (services.geocoder) { list.selectAll('.geocode-item') From 3cebb0d024d4f1deb1f64ca9a5c16892e0b65b50 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Mon, 10 Jun 2019 14:05:48 -0400 Subject: [PATCH 062/774] Add hover and active styling for primary buttons --- css/80_app.css | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/css/80_app.css b/css/80_app.css index 21be0f8b0d..be3516b6e3 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -320,9 +320,16 @@ button.secondary { background: transparent; border: 1px solid #7092ff; } +button.primary:hover, +button.secondary:hover { + background: #88a4ff; +} +button.primary:active, +button.secondary:active { + background: #597be7; +} button.secondary:hover { color: #fff; - background: #7092ff; } button.destructive { background: #d32232; From 3d595c66b9fa9b4ce3da6fe4abe9e86abb839899 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Mon, 10 Jun 2019 14:30:49 -0400 Subject: [PATCH 063/774] Show save mode state in the assistant --- data/core.yaml | 2 ++ dist/locales/en.json | 4 +++- modules/ui/assistant.js | 12 +++++++++++- modules/ui/commit_changes.js | 3 ++- 4 files changed, 18 insertions(+), 3 deletions(-) diff --git a/data/core.yaml b/data/core.yaml index 185fd8b452..ee02c5ddc6 100644 --- a/data/core.yaml +++ b/data/core.yaml @@ -36,6 +36,7 @@ en: drawing: Drawing mapping: Mapping editing: Editing + saving: Saving instructions: add_point: Click or tap the center of the feature. add_line: Click or tap the starting location. @@ -461,6 +462,7 @@ en: request_review: "I would like someone to review my edits." save: Upload cancel: Cancel + change: "1 Change" changes: "{count} Changes" download_changes: Download osmChange file errors: Errors diff --git a/dist/locales/en.json b/dist/locales/en.json index b1361bf058..66fa2e1798 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -44,7 +44,8 @@ "adding": "Adding", "drawing": "Drawing", "mapping": "Mapping", - "editing": "Editing" + "editing": "Editing", + "saving": "Saving" }, "instructions": { "add_point": "Click or tap the center of the feature.", @@ -591,6 +592,7 @@ "request_review": "I would like someone to review my edits.", "save": "Upload", "cancel": "Cancel", + "change": "1 Change", "changes": "{count} Changes", "download_changes": "Download osmChange file", "errors": "Errors", diff --git a/modules/ui/assistant.js b/modules/ui/assistant.js index b15ac82c6e..9191d7da2a 100644 --- a/modules/ui/assistant.js +++ b/modules/ui/assistant.js @@ -113,7 +113,17 @@ export function uiAssistant(context) { subjectTitle.classed('location', false); container.classed('prominent', false); - if (mode.id === 'add-point' || mode.id === 'add-line' || mode.id === 'add-area') { + if (mode.id === 'save') { + + var summary = context.history().difference().summary(); + + modeLabel.text(t('assistant.mode.saving')); + iconUse.attr('href','#iD-icon-save'); + + var titleID = summary.length === 1 ? 'change' : 'changes'; + subjectTitle.text(t('commit.' + titleID, { count: summary.length })); + + } else if (mode.id === 'add-point' || mode.id === 'add-line' || mode.id === 'add-area') { modeLabel.text(t('assistant.mode.adding')); diff --git a/modules/ui/commit_changes.js b/modules/ui/commit_changes.js index 407db96358..e1e67818ab 100644 --- a/modules/ui/commit_changes.js +++ b/modules/ui/commit_changes.js @@ -30,9 +30,10 @@ export function uiCommitChanges(context) { .append('div') .attr('class', 'commit-section modal-section fillL2'); + var titleID = summary.length === 1 ? 'change' : 'changes'; containerEnter .append('h3') - .text(t('commit.changes', { count: summary.length })); + .text(t('commit.' + titleID, { count: summary.length })); containerEnter .append('ul') From 0de784abf292859a73c7dc31775abb50dec66e3e Mon Sep 17 00:00:00 2001 From: Mateusz Konieczny Date: Mon, 10 Jun 2019 21:45:25 +0200 Subject: [PATCH 064/774] fix unnecessary landuse=military fixes #6509 --- data/presets.yaml | 40 +++++++------- data/presets/presets.json | 8 +-- .../{landuse => }/military/bunker.json | 1 - .../{landuse => }/military/checkpoint.json | 4 -- .../military/nuclear_explosion_site.json | 4 -- .../{landuse => }/military/office.json | 4 -- data/taginfo.json | 8 +-- dist/locales/en.json | 53 +++++++++++++------ svg/fontawesome/fas-chess-knight.svg | 2 +- svg/fontawesome/fas-chess-pawn.svg | 2 +- 10 files changed, 67 insertions(+), 59 deletions(-) rename data/presets/presets/{landuse => }/military/bunker.json (94%) rename data/presets/presets/{landuse => }/military/checkpoint.json (81%) rename data/presets/presets/{landuse => }/military/nuclear_explosion_site.json (79%) rename data/presets/presets/{landuse => }/military/office.json (84%) diff --git a/data/presets.yaml b/data/presets.yaml index e69156e2dd..3b8ddf52bc 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -4827,16 +4827,6 @@ en: name: Barracks # 'terms: air force,army,base,fight,force,guard,marine,navy,troop,war' terms: '' - landuse/military/bunker: - # military=bunker - name: Military Bunker - # 'terms: air force,army,base,fight,force,guard,marine,navy,troop,war' - terms: '' - landuse/military/checkpoint: - # military=checkpoint - name: Checkpoint - # 'terms: air force,army,base,force,guard,marine,navy,troop,war' - terms: '' landuse/military/danger_area: # military=danger_area name: Danger Area @@ -4847,21 +4837,11 @@ en: name: Naval Base # 'terms: base,fight,force,guard,marine,navy,ship,sub,troop,war' terms: '' - landuse/military/nuclear_explosion_site: - # military=nuclear_explosion_site - name: Nuclear Explosion Site - # 'terms: atom,blast,bomb,detonat*,nuke,site,test' - terms: '' landuse/military/obstacle_course: # military=obstacle_course name: Obstacle Course # 'terms: army,base,force,guard,marine,navy,troop,war' terms: '' - landuse/military/office: - # military=office - name: Military Office - # 'terms: air force,army,base,enlist,fight,force,guard,marine,navy,recruit,troop,war' - terms: '' landuse/military/range: # military=range name: Military Range @@ -5600,6 +5580,26 @@ en: name: Telecom Manhole # 'terms: cover,phone,hole,telecom,telephone,bt' terms: '' + military/bunker: + # military=bunker + name: Military Bunker + # 'terms: air force,army,base,fight,force,guard,marine,navy,troop,war' + terms: '' + military/checkpoint: + # military=checkpoint + name: Checkpoint + # 'terms: air force,army,base,force,guard,marine,navy,troop,war' + terms: '' + military/nuclear_explosion_site: + # military=nuclear_explosion_site + name: Nuclear Explosion Site + # 'terms: atom,blast,bomb,detonat*,nuke,site,test' + terms: '' + military/office: + # military=office + name: Military Office + # 'terms: air force,army,base,enlist,fight,force,guard,marine,navy,recruit,troop,war' + terms: '' military/trench: # military=trench name: Military Trench diff --git a/data/presets/presets.json b/data/presets/presets.json index 6a7f5de376..3db20e5094 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -576,13 +576,9 @@ "landuse/military": {"icon": "temaki-military", "fields": ["name"], "moreFields": ["address", "website", "phone", "email", "fax"], "geometry": ["area"], "tags": {"landuse": "military"}, "terms": [], "matchScore": 0.9, "name": "Military Area"}, "landuse/military/airfield": {"icon": "tnp-2009265", "fields": ["name", "iata", "icao"], "geometry": ["point", "area"], "tags": {"military": "airfield"}, "addTags": {"aeroway": "aerodrome", "landuse": "military", "military": "airfield"}, "reference": {"key": "military", "value": "airfield"}, "terms": ["aerodrome", "aeroway", "air force", "airplane", "airport", "army", "base", "bomb", "fight", "force", "guard", "heli*", "jet", "marine", "navy", "plane", "troop", "war"], "name": "Military Airfield"}, "landuse/military/barracks": {"icon": "temaki-military", "fields": ["name", "building_area"], "geometry": ["point", "area"], "tags": {"military": "barracks"}, "addTags": {"landuse": "military", "military": "barracks"}, "terms": ["air force", "army", "base", "fight", "force", "guard", "marine", "navy", "troop", "war"], "name": "Barracks"}, - "landuse/military/bunker": {"icon": "temaki-military", "fields": ["name", "bunker_type", "building_area"], "geometry": ["point", "area"], "tags": {"military": "bunker"}, "addTags": {"building": "bunker", "landuse": "military", "military": "bunker"}, "terms": ["air force", "army", "base", "fight", "force", "guard", "marine", "navy", "troop", "war"], "name": "Military Bunker"}, - "landuse/military/checkpoint": {"icon": "maki-barrier", "fields": ["name"], "geometry": ["point", "vertex", "area"], "tags": {"military": "checkpoint"}, "addTags": {"landuse": "military", "military": "checkpoint"}, "terms": ["air force", "army", "base", "force", "guard", "marine", "navy", "troop", "war"], "name": "Checkpoint"}, "landuse/military/danger_area": {"icon": "maki-danger", "fields": ["name"], "geometry": ["point", "vertex", "area"], "tags": {"military": "danger_area"}, "addTags": {"landuse": "military", "military": "danger_area"}, "terms": ["air force", "army", "base", "blast", "bomb", "explo*", "force", "guard", "mine", "marine", "navy", "troop", "war"], "name": "Danger Area"}, "landuse/military/naval_base": {"icon": "temaki-military", "fields": ["name"], "geometry": ["point", "area"], "tags": {"military": "naval_base"}, "addTags": {"landuse": "military", "military": "naval_base"}, "terms": ["base", "fight", "force", "guard", "marine", "navy", "ship", "sub", "troop", "war"], "name": "Naval Base"}, - "landuse/military/nuclear_explosion_site": {"icon": "maki-danger", "fields": ["name"], "geometry": ["point", "vertex", "area"], "tags": {"military": "nuclear_explosion_site"}, "addTags": {"landuse": "military", "military": "nuclear_explosion_site"}, "terms": ["atom", "blast", "bomb", "detonat*", "nuke", "site", "test"], "name": "Nuclear Explosion Site"}, "landuse/military/obstacle_course": {"icon": "temaki-military", "geometry": ["point", "area"], "tags": {"military": "obstacle_course"}, "addTags": {"landuse": "military", "military": "obstacle_course"}, "terms": ["army", "base", "force", "guard", "marine", "navy", "troop", "war"], "name": "Obstacle Course"}, - "landuse/military/office": {"icon": "temaki-military", "fields": ["name", "building_area"], "geometry": ["point", "area"], "tags": {"military": "office"}, "addTags": {"landuse": "military", "military": "office"}, "terms": ["air force", "army", "base", "enlist", "fight", "force", "guard", "marine", "navy", "recruit", "troop", "war"], "name": "Military Office"}, "landuse/military/range": {"icon": "temaki-military", "fields": ["name"], "geometry": ["point", "area"], "tags": {"military": "range"}, "addTags": {"landuse": "military", "military": "range"}, "terms": ["air force", "army", "base", "fight", "fire", "force", "guard", "gun", "marine", "navy", "rifle", "shoot*", "snip*", "train", "troop", "war"], "name": "Military Range"}, "landuse/military/training_area": {"icon": "temaki-military", "fields": ["name"], "geometry": ["point", "area"], "tags": {"military": "training_area"}, "addTags": {"landuse": "military", "military": "training_area"}, "terms": ["air force", "army", "base", "fight", "fire", "force", "guard", "gun", "marine", "navy", "rifle", "shoot*", "snip*", "train", "troop", "war"], "name": "Training Area"}, "landuse/orchard": {"icon": "maki-park", "fields": ["name", "operator", "trees"], "moreFields": ["address", "website", "phone", "email", "fax"], "geometry": ["area"], "tags": {"landuse": "orchard"}, "terms": ["fruit"], "name": "Orchard"}, @@ -736,6 +732,10 @@ "manhole": {"icon": "maki-circle-stroked", "fields": ["manhole", "operator", "label", "ref"], "geometry": ["point", "vertex"], "tags": {"manhole": "*"}, "addTags": {"man_made": "manhole", "manhole": "*"}, "terms": ["cover", "hole", "sewer", "sewage", "telecom"], "name": "Manhole"}, "manhole/drain": {"icon": "maki-water", "fields": ["operator", "ref"], "geometry": ["point", "vertex"], "tags": {"manhole": "drain"}, "addTags": {"man_made": "manhole", "manhole": "drain"}, "terms": ["cover", "drain", "hole", "rain", "sewer", "sewage", "storm"], "name": "Storm Drain"}, "manhole/telecom": {"icon": "maki-circle-stroked", "fields": ["operator", "ref"], "geometry": ["point", "vertex"], "tags": {"manhole": "telecom"}, "addTags": {"man_made": "manhole", "manhole": "telecom"}, "terms": ["cover", "phone", "hole", "telecom", "telephone", "bt"], "name": "Telecom Manhole"}, + "military/bunker": {"icon": "temaki-military", "fields": ["name", "bunker_type", "building_area"], "geometry": ["point", "area"], "tags": {"military": "bunker"}, "addTags": {"building": "bunker", "military": "bunker"}, "terms": ["air force", "army", "base", "fight", "force", "guard", "marine", "navy", "troop", "war"], "name": "Military Bunker"}, + "military/checkpoint": {"icon": "maki-barrier", "fields": ["name"], "geometry": ["point", "vertex", "area"], "tags": {"military": "checkpoint"}, "terms": ["air force", "army", "base", "force", "guard", "marine", "navy", "troop", "war"], "name": "Checkpoint"}, + "military/nuclear_explosion_site": {"icon": "maki-danger", "fields": ["name"], "geometry": ["point", "vertex", "area"], "tags": {"military": "nuclear_explosion_site"}, "terms": ["atom", "blast", "bomb", "detonat*", "nuke", "site", "test"], "name": "Nuclear Explosion Site"}, + "military/office": {"icon": "temaki-military", "fields": ["name", "building_area"], "geometry": ["point", "area"], "tags": {"military": "office"}, "terms": ["air force", "army", "base", "enlist", "fight", "force", "guard", "marine", "navy", "recruit", "troop", "war"], "name": "Military Office"}, "military/trench": {"icon": "temaki-military", "fields": ["name", "trench"], "geometry": ["point", "line"], "tags": {"military": "trench"}, "terms": ["dugout", "firestep", "fox hole", "infantry trench", "war trench"], "name": "Military Trench"}, "natural/bare_rock": {"geometry": ["area"], "tags": {"natural": "bare_rock"}, "terms": ["rock"], "name": "Bare Rock"}, "natural/bay": {"icon": "temaki-beach", "geometry": ["point", "line", "area"], "fields": ["name"], "tags": {"natural": "bay"}, "terms": [], "name": "Bay"}, diff --git a/data/presets/presets/landuse/military/bunker.json b/data/presets/presets/military/bunker.json similarity index 94% rename from data/presets/presets/landuse/military/bunker.json rename to data/presets/presets/military/bunker.json index 7747f4f3d5..df152d2815 100644 --- a/data/presets/presets/landuse/military/bunker.json +++ b/data/presets/presets/military/bunker.json @@ -14,7 +14,6 @@ }, "addTags": { "building": "bunker", - "landuse": "military", "military": "bunker" }, "terms": [ diff --git a/data/presets/presets/landuse/military/checkpoint.json b/data/presets/presets/military/checkpoint.json similarity index 81% rename from data/presets/presets/landuse/military/checkpoint.json rename to data/presets/presets/military/checkpoint.json index a8c08d3e31..0aebb96fdf 100644 --- a/data/presets/presets/landuse/military/checkpoint.json +++ b/data/presets/presets/military/checkpoint.json @@ -11,10 +11,6 @@ "tags": { "military": "checkpoint" }, - "addTags": { - "landuse": "military", - "military": "checkpoint" - }, "terms": [ "air force", "army", diff --git a/data/presets/presets/landuse/military/nuclear_explosion_site.json b/data/presets/presets/military/nuclear_explosion_site.json similarity index 79% rename from data/presets/presets/landuse/military/nuclear_explosion_site.json rename to data/presets/presets/military/nuclear_explosion_site.json index 7af4e8e110..accb74cce7 100644 --- a/data/presets/presets/landuse/military/nuclear_explosion_site.json +++ b/data/presets/presets/military/nuclear_explosion_site.json @@ -11,10 +11,6 @@ "tags": { "military": "nuclear_explosion_site" }, - "addTags": { - "landuse": "military", - "military": "nuclear_explosion_site" - }, "terms": [ "atom", "blast", diff --git a/data/presets/presets/landuse/military/office.json b/data/presets/presets/military/office.json similarity index 84% rename from data/presets/presets/landuse/military/office.json rename to data/presets/presets/military/office.json index ff45d61fc3..8b8cad1222 100644 --- a/data/presets/presets/landuse/military/office.json +++ b/data/presets/presets/military/office.json @@ -11,10 +11,6 @@ "tags": { "military": "office" }, - "addTags": { - "landuse": "military", - "military": "office" - }, "terms": [ "air force", "army", diff --git a/data/taginfo.json b/data/taginfo.json index f2d3db6115..576214162f 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -554,13 +554,9 @@ {"key": "landuse", "value": "military", "description": "🄿 Military Area", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/military.svg?sanitize=true"}, {"key": "military", "value": "airfield", "description": "🄿 Military Airfield", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/the-noun-project/2009265.svg?sanitize=true"}, {"key": "military", "value": "barracks", "description": "🄿 Barracks", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/military.svg?sanitize=true"}, - {"key": "military", "value": "bunker", "description": "🄿 Military Bunker", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/military.svg?sanitize=true"}, - {"key": "military", "value": "checkpoint", "description": "🄿 Checkpoint", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/barrier-15.svg?sanitize=true"}, {"key": "military", "value": "danger_area", "description": "🄿 Danger Area", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/danger-15.svg?sanitize=true"}, {"key": "military", "value": "naval_base", "description": "🄿 Naval Base", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/military.svg?sanitize=true"}, - {"key": "military", "value": "nuclear_explosion_site", "description": "🄿 Nuclear Explosion Site", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/danger-15.svg?sanitize=true"}, {"key": "military", "value": "obstacle_course", "description": "🄿 Obstacle Course", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/military.svg?sanitize=true"}, - {"key": "military", "value": "office", "description": "🄿 Military Office", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/military.svg?sanitize=true"}, {"key": "military", "value": "range", "description": "🄿 Military Range", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/military.svg?sanitize=true"}, {"key": "military", "value": "training_area", "description": "🄿 Training Area", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/military.svg?sanitize=true"}, {"key": "landuse", "value": "orchard", "description": "🄿 Orchard", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/park-15.svg?sanitize=true"}, @@ -708,6 +704,10 @@ {"key": "manhole", "description": "🄿 Manhole, 🄵 Type", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/circle-stroked-15.svg?sanitize=true"}, {"key": "manhole", "value": "drain", "description": "🄿 Storm Drain", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/water-15.svg?sanitize=true"}, {"key": "manhole", "value": "telecom", "description": "🄿 Telecom Manhole", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/circle-stroked-15.svg?sanitize=true"}, + {"key": "military", "value": "bunker", "description": "🄿 Military Bunker", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/military.svg?sanitize=true"}, + {"key": "military", "value": "checkpoint", "description": "🄿 Checkpoint", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/barrier-15.svg?sanitize=true"}, + {"key": "military", "value": "nuclear_explosion_site", "description": "🄿 Nuclear Explosion Site", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/danger-15.svg?sanitize=true"}, + {"key": "military", "value": "office", "description": "🄿 Military Office", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/military.svg?sanitize=true"}, {"key": "military", "value": "trench", "description": "🄿 Military Trench", "object_types": ["node", "way"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/military.svg?sanitize=true"}, {"key": "natural", "value": "bare_rock", "description": "🄿 Bare Rock", "object_types": ["area"]}, {"key": "natural", "value": "bay", "description": "🄿 Bay", "object_types": ["node", "way", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/beach.svg?sanitize=true"}, diff --git a/dist/locales/en.json b/dist/locales/en.json index 66fa2e1798..22e2666e76 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -6686,14 +6686,6 @@ "name": "Barracks", "terms": "air force,army,base,fight,force,guard,marine,navy,troop,war" }, - "landuse/military/bunker": { - "name": "Military Bunker", - "terms": "air force,army,base,fight,force,guard,marine,navy,troop,war" - }, - "landuse/military/checkpoint": { - "name": "Checkpoint", - "terms": "air force,army,base,force,guard,marine,navy,troop,war" - }, "landuse/military/danger_area": { "name": "Danger Area", "terms": "air force,army,base,blast,bomb,explo*,force,guard,mine,marine,navy,troop,war" @@ -6702,18 +6694,10 @@ "name": "Naval Base", "terms": "base,fight,force,guard,marine,navy,ship,sub,troop,war" }, - "landuse/military/nuclear_explosion_site": { - "name": "Nuclear Explosion Site", - "terms": "atom,blast,bomb,detonat*,nuke,site,test" - }, "landuse/military/obstacle_course": { "name": "Obstacle Course", "terms": "army,base,force,guard,marine,navy,troop,war" }, - "landuse/military/office": { - "name": "Military Office", - "terms": "air force,army,base,enlist,fight,force,guard,marine,navy,recruit,troop,war" - }, "landuse/military/range": { "name": "Military Range", "terms": "air force,army,base,fight,fire,force,guard,gun,marine,navy,rifle,shoot*,snip*,train,troop,war" @@ -7326,6 +7310,22 @@ "name": "Telecom Manhole", "terms": "cover,phone,hole,telecom,telephone,bt" }, + "military/bunker": { + "name": "Military Bunker", + "terms": "air force,army,base,fight,force,guard,marine,navy,troop,war" + }, + "military/checkpoint": { + "name": "Checkpoint", + "terms": "air force,army,base,force,guard,marine,navy,troop,war" + }, + "military/nuclear_explosion_site": { + "name": "Nuclear Explosion Site", + "terms": "atom,blast,bomb,detonat*,nuke,site,test" + }, + "military/office": { + "name": "Military Office", + "terms": "air force,army,base,enlist,fight,force,guard,marine,navy,recruit,troop,war" + }, "military/trench": { "name": "Military Trench", "terms": "dugout,firestep,fox hole,infantry trench,war trench" @@ -9474,6 +9474,27 @@ "description": "Orthofoto layer provided by basemap.at. \"Successor\" of geoimage.at imagery.", "name": "basemap.at Orthofoto" }, + "basemap.at-overlay": { + "attribution": { + "text": "basemap.at" + }, + "description": "Annotation overlay provided by basemap.at.", + "name": "basemap.at Overlay" + }, + "basemap.at-surface": { + "attribution": { + "text": "basemap.at" + }, + "description": "Surface layer provided by basemap.at.", + "name": "basemap.at Surface" + }, + "basemap.at-terrain": { + "attribution": { + "text": "basemap.at" + }, + "description": "Terrain layer provided by basemap.at.", + "name": "basemap.at Terrain" + }, "eufar-balaton": { "attribution": { "text": "EUFAR Balaton ortofotó 2010" diff --git a/svg/fontawesome/fas-chess-knight.svg b/svg/fontawesome/fas-chess-knight.svg index 12d41b828c..87f45be78c 100644 --- a/svg/fontawesome/fas-chess-knight.svg +++ b/svg/fontawesome/fas-chess-knight.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/svg/fontawesome/fas-chess-pawn.svg b/svg/fontawesome/fas-chess-pawn.svg index cb6492d33d..8386683161 100644 --- a/svg/fontawesome/fas-chess-pawn.svg +++ b/svg/fontawesome/fas-chess-pawn.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file From 6b2467efad0f73a6fc526586464a474413fc0c1a Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 11 Jun 2019 11:10:26 -0400 Subject: [PATCH 065/774] Incorporate the save success screen into the assistant panel --- build_data.js | 4 + css/80_app.css | 196 ++++++++++++++--------------- data/core.yaml | 10 +- dist/locales/en.json | 12 +- modules/modes/browse.js | 19 +-- modules/modes/save.js | 44 +------ modules/ui/assistant.js | 132 ++++++++++++++----- modules/ui/init.js | 5 +- modules/ui/success.js | 78 +++--------- svg/fontawesome/fas-grin-beam.svg | 1 + svg/fontawesome/fas-laugh-beam.svg | 1 + svg/fontawesome/fas-smile-beam.svg | 1 + svg/fontawesome/fas-smile.svg | 1 + 13 files changed, 241 insertions(+), 263 deletions(-) create mode 100644 svg/fontawesome/fas-grin-beam.svg create mode 100644 svg/fontawesome/fas-laugh-beam.svg create mode 100644 svg/fontawesome/fas-smile-beam.svg create mode 100644 svg/fontawesome/fas-smile.svg diff --git a/build_data.js b/build_data.js index 292a2d9170..2fc01f84cc 100644 --- a/build_data.js +++ b/build_data.js @@ -54,6 +54,10 @@ module.exports = function buildData() { // Font Awesome icons used var faIcons = { + 'fas-smile': {}, + 'fas-smile-beam': {}, + 'fas-grin-beam': {}, + 'fas-laugh-beam': {}, 'fas-sun': {}, 'fas-moon': {}, 'fas-edit': {}, diff --git a/css/80_app.css b/css/80_app.css index be3516b6e3..280bfa9acb 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -1005,7 +1005,6 @@ a.hide-toggle { background: rgba(32, 29, 29, 0.9); color: #fff; border-radius: 4px; - padding: 10px; display: flex; flex-direction: column; margin-bottom: 10px; @@ -1020,17 +1019,31 @@ a.hide-toggle { -webkit-backdrop-filter: blur(2.5px); backdrop-filter: blur(2.5px); } -.assistant .assistant-header { +.assistant .sep-top { + border-top: 1px solid rgba(127, 127, 127, 0.5); +} +.assistant .assistant-row { display: flex; +} +.assistant .assistant-header { flex: 0 0 auto; } .assistant .icon-col { flex: 0 0 auto; + padding: 10px; } .assistant .icon-col .icon { width: 30px; height: 30px; - margin-right: 10px; +} +.assistant .body-col { + padding: 10px; +} +[dir='ltr'] .assistant .body-col { + padding-left: 0; +} +[dir='rtl'] .assistant .body-col { + padding-right: 0; } .assistant .mode-label { color: #ccc; @@ -1068,8 +1081,8 @@ a.hide-toggle { .assistant .main-footer button { min-width: 100px; height: auto; - padding: 5px 10px; - line-height: 20px; + padding: 7px 12px; + line-height: 1em; font-size: 13px; } [dir='ltr'] .assistant .main-footer button:first-of-type { @@ -1078,12 +1091,12 @@ a.hide-toggle { [dir='rtl'] .assistant .main-footer button:first-of-type { margin-left: 8px; } - .assistant .assistant-body { - margin-top: 15px; - padding: 0 5px; display: flex; } +.assistant .assistant-body .feature-list-pane { + padding: 0px 15px 10px 15px; +} .assistant .search-header { position: relative; } @@ -1141,7 +1154,7 @@ a.hide-toggle { margin-bottom: 10px; } -.assistant.prominent { +.assistant.prominent .assistant-header .body-col { padding-bottom: 16px; } .assistant.prominent .icon-col .icon { @@ -1164,6 +1177,78 @@ a.hide-toggle { line-height: 1.35em; } +/* Success Screen / Community Index +------------------------------------------------------- */ +.save-success { + overflow-y: scroll; + overflow-x: hidden; +} + +.save-success .link-out { + margin: 0px 5px; + white-space: nowrap; +} +.save-success h3 { + font-size: 14px; + margin-top: 15px; + line-height: 1.5; + padding-bottom: 0; + margin-left: 10px; + margin-right: 10px; +} +.save-success .summary-detail { + align-self: center; +} + +.summary-view-on-osm, +.community-name { + font-size: 14px; + font-weight: bold; +} +.community-languages { + margin-top: 5px; + font-style: italic; +} +.community-languages:only-child { + margin-top: 0; +} + +.community-detail a.hide-toggle, +.community-detail a:visited.hide-toggle { + font-size: 12px; + font-weight: normal; + padding-bottom: 0; +} +.community-detail .hide-toggle svg.icon.pre-text { + width: 12px; + height: 15px; +} + +.community-events { + margin-top: 5px; +} + +.community-event, +.community-more { + background-color: #4c4c4c; + padding: 8px; + border-radius: 4px; + margin-bottom: 5px; +} + +.community-event-name { + font-size: 14px; + font-weight: bold; +} +.community-event-when { + font-weight: bold; +} + +.community-missing { + padding: 10px; + text-align: center; +} + /* Sidebar / Inspector ------------------------------------------------------- */ @@ -4952,99 +5037,6 @@ img.tile-debug { border-bottom: 0; } -/* Success Screen / Community Index -------------------------------------------------------- */ -.save-success.body { - overflow-y: scroll; - overflow-x: hidden; -} - -.save-success .link-out { - margin: 0px 5px; - white-space: nowrap; -} - -.save-summary, -.save-communityLinks { - padding: 0px 20px 15px 20px; -} - -.save-communityLinks { - border-top: 1px solid #ccc; -} - -.save-success table, -.save-success p { - margin-top: 15px; -} -.save-success h3 { - font-size: 14px; - margin-top: 15px; - line-height: 1.5; - padding-bottom: 0; -} -.save-success td { - vertical-align: top; -} -.save-success td.cell-icon { - width: 40px; -} -.save-success td.cell-detail { - padding: 0 10px; -} -.save-success td.community-detail { - padding-bottom: 15px; -} - -.summary-view-on-osm, -.community-name { - font-size: 14px; - font-weight: bold; -} -.community-languages { - margin-top: 5px; - font-style: italic; -} -.community-languages:only-child { - margin-top: 0; -} - -.community-detail a.hide-toggle, -.community-detail a:visited.hide-toggle { - font-size: 12px; - font-weight: normal; - padding-bottom: 0; -} -.community-detail .hide-toggle svg.icon.pre-text { - width: 12px; - height: 15px; -} - -.community-events { - margin-top: 5px; -} - -.community-event, -.community-more { - background-color: #efefef; - padding: 8px; - border-radius: 4px; - margin-bottom: 5px; -} - -.community-event-name { - font-size: 14px; - font-weight: bold; -} -.community-event-when { - font-weight: bold; -} - -.community-missing { - padding: 10px; - text-align: center; -} - /* Splash Modal ------------------------------------------------------- */ diff --git a/data/core.yaml b/data/core.yaml index ee02c5ddc6..ea225018d1 100644 --- a/data/core.yaml +++ b/data/core.yaml @@ -61,6 +61,12 @@ en: count_loc: "You have {count} unsaved changes around {location}." count_loc_time: "You have {count} unsaved changes from {duration} ago around {location}." ask: Would you like to restore them? + commit: + success: + thank_you: Thank You! + just_improved: "You've just improved OpenStreetMap around {location}." + propagation_help: Your changes will be live momentarily. Some maps take longer to update than others. + keep_mapping: Keep Mapping modes: add_feature: search_placeholder: Search feature types @@ -769,13 +775,9 @@ en: memberlist: 'Relation members were changed by both you and {user}.' tags: 'You changed the {tag} tag to "{local}" and {user} changed it to "{remote}".' success: - just_edited: "You just edited OpenStreetMap!" - thank_you: "Thank you for improving the map." - thank_you_location: "Thank you for improving the map around {where}." thank_you_where: format: "{place}{separator}{region}" separator: ", " - help_html: Your changes should appear on OpenStreetMap within a few minutes. It may take longer for maps elsewhere to receive updates. help_link_text: Details help_link_url: "https://wiki.openstreetmap.org/wiki/FAQ#I_have_just_made_some_changes_to_the_map._How_do_I_get_to_see_my_changes.3F" view_on_osm: "View Changes on OSM" diff --git a/dist/locales/en.json b/dist/locales/en.json index 66fa2e1798..9f64cdd355 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -74,6 +74,14 @@ "count_loc_time": "You have {count} unsaved changes from {duration} ago around {location}." }, "ask": "Would you like to restore them?" + }, + "commit": { + "success": { + "thank_you": "Thank You!", + "just_improved": "You've just improved OpenStreetMap around {location}.", + "propagation_help": "Your changes will be live momentarily. Some maps take longer to update than others." + }, + "keep_mapping": "Keep Mapping" } }, "modes": { @@ -958,14 +966,10 @@ } }, "success": { - "just_edited": "You just edited OpenStreetMap!", - "thank_you": "Thank you for improving the map.", - "thank_you_location": "Thank you for improving the map around {where}.", "thank_you_where": { "format": "{place}{separator}{region}", "separator": ", " }, - "help_html": "Your changes should appear on OpenStreetMap within a few minutes. It may take longer for maps elsewhere to receive updates.", "help_link_text": "Details", "help_link_url": "https://wiki.openstreetmap.org/wiki/FAQ#I_have_just_made_some_changes_to_the_map._How_do_I_get_to_see_my_changes.3F", "view_on_osm": "View Changes on OSM", diff --git a/modules/modes/browse.js b/modules/modes/browse.js index 0d7405ba80..7f149e7f09 100644 --- a/modules/modes/browse.js +++ b/modules/modes/browse.js @@ -15,7 +15,7 @@ export function modeBrowse(context) { id: 'browse', title: t('modes.browse.title'), description: t('modes.browse.description') - }, sidebar; + }; var behaviors = [ behaviorPaste(context), @@ -34,29 +34,12 @@ export function modeBrowse(context) { if (document.activeElement && document.activeElement.blur) { document.activeElement.blur(); } - - if (sidebar) { - context.ui().sidebar.show(sidebar); - } else { - context.ui().sidebar.select(null); - } }; mode.exit = function() { context.ui().sidebar.hover.cancel(); behaviors.forEach(context.uninstall); - - if (sidebar) { - context.ui().sidebar.hide(); - } - }; - - - mode.sidebar = function(_) { - if (!arguments.length) return sidebar; - sidebar = _; - return mode; }; diff --git a/modules/modes/save.js b/modules/modes/save.js index c59aee045f..4d4315fc3e 100644 --- a/modules/modes/save.js +++ b/modules/modes/save.js @@ -8,12 +8,10 @@ import { actionRevert } from '../actions/revert'; import { coreGraph } from '../core/graph'; import { modeBrowse } from './browse'; import { modeSelect } from './select'; -import { services } from '../services'; import { uiConflicts } from '../ui/conflicts'; import { uiConfirm } from '../ui/confirm'; import { uiCommit } from '../ui/commit'; import { uiLoading } from '../ui/loading'; -import { uiSuccess } from '../ui/success'; import { utilArrayUnion, utilArrayUniq, utilDisplayName, utilDisplayType, utilKeybinding } from '../util'; @@ -41,7 +39,6 @@ export function modeSave(context) { var _conflicts = []; var _errors = []; var _origChanges; - var _location; function cancel(selectedID) { @@ -287,7 +284,6 @@ export function modeSave(context) { var history = context.history(); var changes = history.changes(actionDiscardTags(history.difference())); 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); } else { // changes were insignificant or reverted by user d3_select('.inspector-wrap *').remove(); @@ -313,8 +309,13 @@ export function modeSave(context) { } } else { + var changeCount = context.history().difference().summary().length; context.history().clearSaved(); - success(changeset); + + commit.reset(); + context.enter(modeBrowse(context)); + context.ui().assistant.didSaveChangset(changeset, changeCount); + // Add delay to allow for postgres replication #1646 #2678 window.setTimeout(function() { d3_select('.inspector-wrap *').remove(); @@ -446,18 +447,6 @@ export function modeSave(context) { } - function success(changeset) { - commit.reset(); - - var ui = uiSuccess(context) - .changeset(changeset) - .location(_location) - .on('cancel', function() { context.ui().sidebar.hide(); }); - - context.enter(modeBrowse(context).sidebar(ui)); - } - - function keybindingOn() { d3_select(document) .call(keybinding.on('⎋', cancel, true)); @@ -470,27 +459,6 @@ export function modeSave(context) { } - // Reverse geocode current map location so we can display a message on - // the success screen like "Thank you for editing around place, region." - function loadLocation() { - _location = null; - if (!services.geocoder) return; - - services.geocoder.reverse(context.map().center(), function(err, result) { - if (err || !result || !result.address) return; - - var addr = result.address; - var place = (addr && (addr.town || addr.city || addr.county)) || ''; - var region = (addr && (addr.state || addr.country)) || ''; - var separator = (place && region) ? t('success.thank_you_where.separator') : ''; - - _location = t('success.thank_you_where.format', - { place: place, separator: separator, region: region } - ); - }); - } - - mode.enter = function() { // Show sidebar context.ui().sidebar.expand(); diff --git a/modules/ui/assistant.js b/modules/ui/assistant.js index 9191d7da2a..8651a3d89c 100644 --- a/modules/ui/assistant.js +++ b/modules/ui/assistant.js @@ -7,6 +7,7 @@ import { t } from '../util/locale'; import { services } from '../services'; import { utilDisplayLabel } from '../util'; import { uiIntro } from './intro'; +import { uiSuccess } from './success'; import { uiFeatureList } from './feature_list'; import { geoRawMercator } from '../geo/raw_mercator'; import { decimalCoordinatePair, formattedRoundedDuration } from '../util/units'; @@ -22,6 +23,8 @@ export function uiAssistant(context) { var featureSearch = uiFeatureList(context); + var savedChangeset = null; + var savedChangeCount = null; var didEditAnythingYet = false; var isFirstSession = !context.storage('sawSplash'); context.storage('sawSplash', true); @@ -31,31 +34,25 @@ export function uiAssistant(context) { container = selection.append('div') .attr('class', 'assistant'); header = container.append('div') - .attr('class', 'assistant-header'); + .attr('class', 'assistant-header assistant-row'); body = container.append('div') .attr('class', 'assistant-body'); scheduleCurrentLocationUpdate(); - redraw(); - context .on('enter.assistant', redraw); context.map() .on('move.assistant', scheduleCurrentLocationUpdate); - context.history() - .on('change.assistant', updateDidEditStatus); + redraw(); }; function updateDidEditStatus() { + savedChangeset = null; + savedChangeCount = null; didEditAnythingYet = true; - - context.history() - .on('change.assistant', null); - - redraw(); } function redraw() { @@ -64,6 +61,10 @@ export function uiAssistant(context) { var mode = context.mode(); if (!mode) return; + if (mode.id !== 'browse') { + updateDidEditStatus(); + } + var iconCol = header.selectAll('.icon-col') .data([0]); iconCol = iconCol.enter() @@ -110,7 +111,7 @@ export function uiAssistant(context) { body.html(''); bodyTextArea.html(''); mainFooter.html(''); - subjectTitle.classed('location', false); + subjectTitle.classed('map-center-location', false); container.classed('prominent', false); if (mode.id === 'save') { @@ -163,28 +164,34 @@ export function uiAssistant(context) { } else if (!didEditAnythingYet) { container.classed('prominent', true); - iconUse.attr('href','#' + greetingIcon()); - subjectTitle.text(t('assistant.greetings.' + greetingTimeframe())); - - if (context.history().hasRestorableChanges()) { - drawRestoreScreen(); + if (savedChangeset) { + drawSaveSuccessScreen(); } else { - bodyTextArea.html(t('assistant.welcome.' + (isFirstSession ? 'first_time' : 'return'))); - bodyTextArea.selectAll('a') - .attr('href', '#') - .on('click', function() { - isFirstSession = false; - updateDidEditStatus(); - context.container().call(uiIntro(context)); - }); - - mainFooter.append('button') - .attr('class', 'primary') - .on('click', function() { - updateDidEditStatus(); - }) - .append('span') - .text(t('assistant.welcome.start_mapping')); + iconUse.attr('href','#' + greetingIcon()); + subjectTitle.text(t('assistant.greetings.' + greetingTimeframe())); + + if (context.history().hasRestorableChanges()) { + drawRestoreScreen(); + } else { + bodyTextArea.html(t('assistant.welcome.' + (isFirstSession ? 'first_time' : 'return'))); + bodyTextArea.selectAll('a') + .attr('href', '#') + .on('click', function() { + isFirstSession = false; + updateDidEditStatus(); + context.container().call(uiIntro(context)); + redraw(); + }); + + mainFooter.append('button') + .attr('class', 'primary') + .on('click', function() { + updateDidEditStatus(); + redraw(); + }) + .append('span') + .text(t('assistant.welcome.start_mapping')); + } } } else { @@ -192,7 +199,7 @@ export function uiAssistant(context) { modeLabel.text(t('assistant.mode.mapping')); - subjectTitle.classed('location', true); + subjectTitle.classed('map-center-location', true); subjectTitle.text(currLocation); scheduleCurrentLocationUpdate(); @@ -202,6 +209,56 @@ export function uiAssistant(context) { .call(featureSearch); } + function drawSaveSuccessScreen() { + + subjectTitle.text(t('assistant.commit.success.thank_you')); + + var savedIcon; + if (savedChangeCount <= 5) { + savedIcon = 'smile'; + } else if (savedChangeCount <= 25) { + savedIcon = 'smile-beam'; + } else if (savedChangeCount <= 50) { + savedIcon = 'grin-beam'; + } else { + savedIcon = 'laugh-beam'; + } + iconUse.attr('href','#fas-' + savedIcon); + + bodyTextArea.html( + '' + t('assistant.commit.success.just_improved', { location: currLocation }) + '' + + '
' + ); + + var link = bodyTextArea + .append('span') + .text(t('assistant.commit.success.propagation_help')) + .append('a') + .attr('class', 'link-out') + .attr('target', '_blank') + .attr('tabindex', -1) + .attr('href', t('success.help_link_url')); + + link.append('span') + .text(' ' + t('success.help_link_text')); + + link + .call(svgIcon('#iD-icon-out-link', 'inline')); + + mainFooter.append('button') + .attr('class', 'primary') + .on('click', function() { + updateDidEditStatus(); + redraw(); + }) + .append('span') + .text(t('assistant.commit.keep_mapping')); + + var success = uiSuccess(context).changeset(savedChangeset); + + body.call(success); + } + function drawRestoreScreen() { var savedHistoryJSON = JSON.parse(context.history().savedHistoryJSON()); @@ -269,7 +326,7 @@ export function uiAssistant(context) { function scheduleCurrentLocationUpdate() { debouncedGetLocation(context.map().center(), context.map().zoom(), function(placeName) { currLocation = placeName ? placeName : defaultLoc; - container.selectAll('.subject-title.location') + container.selectAll('.map-center-location') .text(currLocation); }); } @@ -317,5 +374,12 @@ export function uiAssistant(context) { }); } + assistant.didSaveChangset = function(changeset, count) { + savedChangeset = changeset; + savedChangeCount = count; + didEditAnythingYet = false; + redraw(); + }; + return assistant; } diff --git a/modules/ui/init.js b/modules/ui/init.js index 9b2ec545a9..5224f2affd 100644 --- a/modules/ui/init.js +++ b/modules/ui/init.js @@ -258,8 +258,10 @@ export function uiInit(context) { .append('div') .attr('class', 'sidebar-wrap'); + ui.assistant = uiAssistant(context); + sidebarWrap - .call(uiAssistant(context)); + .call(ui.assistant); sidebarWrap .append('div') @@ -365,6 +367,7 @@ export function uiInit(context) { }); }; + ui.assistant = null; ui.sidebar = uiSidebar(context); diff --git a/modules/ui/success.js b/modules/ui/success.js index 7b938b1e8e..c1b8f09ebc 100644 --- a/modules/ui/success.js +++ b/modules/ui/success.js @@ -27,8 +27,6 @@ export function uiSuccess(context) { var detected = utilDetect(); var dispatch = d3_dispatch('cancel'); var _changeset; - var _location; - // string-to-date parsing in JavaScript is weird function parseEventDate(when) { @@ -47,60 +45,23 @@ export function uiSuccess(context) { function success(selection) { - var header = selection - .append('div') - .attr('class', 'header fillL'); - - header - .append('button') - .attr('class', 'fr') - .on('click', function() { dispatch.call('cancel'); }) - .call(svgIcon('#iD-icon-close')); - - header - .append('h3') - .text(t('success.just_edited')); var body = selection .append('div') - .attr('class', 'body save-success fillL'); + .attr('class', 'save-success sep-top'); var summary = body .append('div') - .attr('class', 'save-summary'); - - summary - .append('h3') - .text(t('success.thank_you' + (_location ? '_location' : ''), { where: _location })); - - summary - .append('p') - .text(t('success.help_html')) - .append('a') - .attr('class', 'link-out') - .attr('target', '_blank') - .attr('tabindex', -1) - .attr('href', t('success.help_link_url')) - .call(svgIcon('#iD-icon-out-link', 'inline')) - .append('span') - .text(t('success.help_link_text')); + .attr('class', 'save-summary assistant-row'); var osm = context.connection(); if (!osm) return; var changesetURL = osm.changesetURL(_changeset.id); - var table = summary - .append('table') - .attr('class', 'summary-table'); - - var row = table - .append('tr') - .attr('class', 'summary-row'); - - row - .append('td') - .attr('class', 'cell-icon summary-icon') + summary + .append('div') + .attr('class', 'icon-col summary-icon') .append('a') .attr('target', '_blank') .attr('href', changesetURL) @@ -109,9 +70,9 @@ export function uiSuccess(context) { .append('use') .attr('xlink:href', '#iD-logo-osm'); - var summaryDetail = row - .append('td') - .attr('class', 'cell-detail summary-detail'); + var summaryDetail = summary + .append('div') + .attr('class', 'body-col cell-detail summary-detail'); summaryDetail .append('a') @@ -160,26 +121,26 @@ export function uiSuccess(context) { function showCommunityLinks(selection, matchResources) { var communityLinks = selection .append('div') - .attr('class', 'save-communityLinks'); + .attr('class', 'save-communityLinks sep-top'); communityLinks .append('h3') .text(t('success.like_osm')); var table = communityLinks - .append('table') + .append('div') .attr('class', 'community-table'); var row = table.selectAll('.community-row') .data(matchResources); var rowEnter = row.enter() - .append('tr') - .attr('class', 'community-row'); + .append('div') + .attr('class', 'assistant-row community-row'); rowEnter - .append('td') - .attr('class', 'cell-icon community-icon') + .append('div') + .attr('class', 'icon-col cell-icon community-icon') .append('a') .attr('target', '_blank') .attr('href', function(d) { return d.url; }) @@ -189,8 +150,8 @@ export function uiSuccess(context) { .attr('xlink:href', function(d) { return '#community-' + d.type; }); var communityDetail = rowEnter - .append('td') - .attr('class', 'cell-detail community-detail'); + .append('div') + .attr('class', 'body-col cell-detail community-detail'); communityDetail .each(showCommunityDetails); @@ -382,12 +343,5 @@ export function uiSuccess(context) { }; - success.location = function(_) { - if (!arguments.length) return _location; - _location = _; - return success; - }; - - return utilRebind(success, dispatch, 'on'); } diff --git a/svg/fontawesome/fas-grin-beam.svg b/svg/fontawesome/fas-grin-beam.svg new file mode 100644 index 0000000000..498c454682 --- /dev/null +++ b/svg/fontawesome/fas-grin-beam.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/svg/fontawesome/fas-laugh-beam.svg b/svg/fontawesome/fas-laugh-beam.svg new file mode 100644 index 0000000000..71c565993a --- /dev/null +++ b/svg/fontawesome/fas-laugh-beam.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/svg/fontawesome/fas-smile-beam.svg b/svg/fontawesome/fas-smile-beam.svg new file mode 100644 index 0000000000..cc78f47a4c --- /dev/null +++ b/svg/fontawesome/fas-smile-beam.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/svg/fontawesome/fas-smile.svg b/svg/fontawesome/fas-smile.svg new file mode 100644 index 0000000000..91e480f713 --- /dev/null +++ b/svg/fontawesome/fas-smile.svg @@ -0,0 +1 @@ + \ No newline at end of file From 9e3de9d51dd99ca942268269c0073f7a34313adb Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" Date: Tue, 11 Jun 2019 16:41:00 +0000 Subject: [PATCH 066/774] chore(package): update rollup to version 1.15.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 6b60f76bc2..a4dfb2703f 100644 --- a/package.json +++ b/package.json @@ -82,7 +82,7 @@ "osm-community-index": "0.7.0", "phantomjs-prebuilt": "~2.1.11", "request": "^2.88.0", - "rollup": "~1.14.6", + "rollup": "~1.15.1", "rollup-plugin-commonjs": "^10.0.0", "rollup-plugin-includepaths": "~0.2.3", "rollup-plugin-json": "^4.0.0", From ca9bf636b3c8bc29efd714d44b317558894fa32d Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 11 Jun 2019 12:43:59 -0400 Subject: [PATCH 067/774] Move multi-select list to the assistant panel --- css/80_app.css | 174 +++++++++++++++++------------------ data/core.yaml | 2 + dist/locales/en.json | 3 + modules/modes/select.js | 6 -- modules/ui/assistant.js | 21 ++++- modules/ui/feature_list.js | 72 +++++++-------- modules/ui/selection_list.js | 17 +--- 7 files changed, 143 insertions(+), 152 deletions(-) diff --git a/css/80_app.css b/css/80_app.css index 280bfa9acb..3cbe8d8124 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -1124,18 +1124,91 @@ a.hide-toggle { color: #fff; min-width: 225px; } + +.assistant.prominent .assistant-header .body-col { + padding-bottom: 16px; +} +.assistant.prominent .icon-col .icon { + width: 40px; + height: 40px; + color: #FFCF4A; +} +.assistant.prominent .mode-label { + display: none; +} +.assistant.prominent .subject-title { + font-family: Georgia, serif; + font-weight: bold; + font-size: 20px; + margin-top: 6px; +} +.assistant.prominent .body-text { + font-size: 14px; + margin-top: 10px; + line-height: 1.35em; +} + +/* Feature List / Search Results +------------------------------------------------------- */ +.feature-list { + width: 100%; + text-align: center; +} +.feature-list-item { + width: 100%; + position: relative; + border-radius: 0; + font-weight: bold; + height: 40px; + line-height: 20px; + text-align: initial; + display: flex; +} .assistant .no-results-item, .assistant .feature-list-item { width: 100%; background: transparent; - border-bottom: 1px solid #444; color: #fff; } +.feature-list-item button { + background: transparent; + height: auto; + color: inherit; +} +.feature-list-item .label { + text-align: left; + padding: 10px 10px; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; + flex: 1 1 auto; +} +[dir='rtl'] .feature-list-item .label { + text-align: right; +} +.feature-list-item .close { + flex: 0 0 auto; + padding: 10px; +} +.feature-list-item .entity-type { + color: #7092ff; +} +.feature-list-item:hover .entity-type { + color: #597be7; +} +.feature-list-item .entity-name { + font-weight: normal; + padding-left: 10px; +} +[dir='rtl'] .feature-list-item .entity-name { + padding-left: 0; + padding-right: 10px; +} .assistant .feature-list-item:hover { background: rgba(255, 255, 255, 0.05); } -.assistant .feature-list > *:nth-last-child(2) { - border-bottom: none; +.assistant .feature-list-pane .feature-list > *:first-child { + border-top: none; } [dir='ltr'] .assistant .feature-list-item .label { padding-left: 8px; @@ -1143,10 +1216,15 @@ a.hide-toggle { [dir='rtl'] .assistant .feature-list-item .label { padding-right: 8px; } -.assistant .feature-list-item .icon { +.assistant .feature-list-item .entity-geom-icon .icon { + opacity: 0.75; +} +[dir='ltr'] .assistant .feature-list-item .entity-geom-icon .icon { margin-right: 8px; } - +[dir='rtl'] .assistant .feature-list-item .entity-geom-icon .icon { + margin-left: 8px; +} .assistant .geocode-item { margin-top: 5px; margin-right: auto; @@ -1154,29 +1232,6 @@ a.hide-toggle { margin-bottom: 10px; } -.assistant.prominent .assistant-header .body-col { - padding-bottom: 16px; -} -.assistant.prominent .icon-col .icon { - width: 40px; - height: 40px; - color: #FFCF4A; -} -.assistant.prominent .mode-label { - display: none; -} -.assistant.prominent .subject-title { - font-family: Georgia, serif; - font-weight: bold; - font-size: 20px; - margin-top: 6px; -} -.assistant.prominent .body-text { - font-size: 14px; - margin-top: 10px; - line-height: 1.35em; -} - /* Success Screen / Community Index ------------------------------------------------------- */ .save-success { @@ -1348,9 +1403,6 @@ a.hide-toggle { display: flex; flex-direction: column; } -.selection-list-pane .inspector-body { - top: 60px; -} .inspector-inner { padding: 20px 20px 5px 20px; @@ -1382,66 +1434,6 @@ a.hide-toggle { } -/* Feature List / Search Results -------------------------------------------------------- */ -.feature-list { - width: 100%; -} -.feature-list-item { - width: 100%; - position: relative; - border-bottom: 1px solid #ccc; - border-radius: 0; -} -.feature-list-item { - background-color: #fff; - font-weight: bold; - height: 40px; - line-height: 20px; -} -.feature-list-item:hover { - background-color: #ececec; -} -.feature-list-item button { - background: transparent; -} -.feature-list-item .label { - text-align: left; - padding: 10px 10px; - white-space: nowrap; - text-overflow: ellipsis; - overflow: hidden; -} -[dir='rtl'] .feature-list-item .label { - text-align: right; -} - -.feature-list-item .label .icon { - opacity: 0.75; -} -.feature-list-item .close { - float: right; - padding: 10px; -} -.feature-list-item .close .icon { - opacity: 1; -} -.feature-list-item .entity-type { - color: #7092ff; -} -.feature-list-item:hover .entity-type { - color: #597be7; -} -.feature-list-item .entity-name { - font-weight: normal; - padding-left: 10px; -} -[dir='rtl'] .feature-list-item .entity-name { - padding-left: 0; - padding-right: 10px; -} - - /* Preset List and Icons ------------------------------------------------------- */ .preset-list { diff --git a/data/core.yaml b/data/core.yaml index ea225018d1..415be8aa59 100644 --- a/data/core.yaml +++ b/data/core.yaml @@ -67,6 +67,8 @@ en: just_improved: "You've just improved OpenStreetMap around {location}." propagation_help: Your changes will be live momentarily. Some maps take longer to update than others. keep_mapping: Keep Mapping + feature_count: + multiple: "{count} Features" modes: add_feature: search_placeholder: Search feature types diff --git a/dist/locales/en.json b/dist/locales/en.json index 9f64cdd355..6532908f56 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -82,6 +82,9 @@ "propagation_help": "Your changes will be live momentarily. Some maps take longer to update than others." }, "keep_mapping": "Keep Mapping" + }, + "feature_count": { + "multiple": "{count} Features" } }, "modes": { diff --git a/modules/modes/select.js b/modules/modes/select.js index 3f8656534d..c05d1b25ff 100644 --- a/modules/modes/select.js +++ b/modules/modes/select.js @@ -19,7 +19,6 @@ import { modeDragNote } from './drag_note'; import { osmNode, osmWay } from '../osm'; import * as Operations from '../operations/index'; import { uiEditMenu } from '../ui/edit_menu'; -import { uiSelectionList } from '../ui/selection_list'; import { uiCmd } from '../ui/cmd'; import { utilArrayIntersection, utilEntityOrMemberSelector, @@ -301,11 +300,6 @@ export function modeSelect(context, selectedIDs) { selectElements(); - if (selectedIDs.length > 1) { - var entities = uiSelectionList(context, selectedIDs); - context.ui().sidebar.show(entities); - } - if (_follow) { var extent = geoExtent(); var graph = context.graph(); diff --git a/modules/ui/assistant.js b/modules/ui/assistant.js index 8651a3d89c..c3403ecee2 100644 --- a/modules/ui/assistant.js +++ b/modules/ui/assistant.js @@ -9,6 +9,7 @@ import { utilDisplayLabel } from '../util'; import { uiIntro } from './intro'; import { uiSuccess } from './success'; import { uiFeatureList } from './feature_list'; +import { uiSelectionList } from './selection_list'; import { geoRawMercator } from '../geo/raw_mercator'; import { decimalCoordinatePair, formattedRoundedDuration } from '../util/units'; @@ -150,16 +151,26 @@ export function uiAssistant(context) { bodyTextArea.html(t('assistant.instructions.draw_area')); } - } else if (mode.id === 'select' && mode.selectedIDs().length === 1) { + } else if (mode.id === 'select') { + + var selectedIDs = mode.selectedIDs(); iconUse.attr('href','#fas-edit'); + modeLabel.text(t('assistant.mode.editing')); - var id = mode.selectedIDs()[0]; - var entity = context.entity(id); + if (selectedIDs.length === 1) { - modeLabel.text(t('assistant.mode.editing')); + var id = selectedIDs[0]; + var entity = context.entity(id); + subjectTitle.text(utilDisplayLabel(entity, context)); - subjectTitle.text(utilDisplayLabel(entity, context)); + } else { + subjectTitle.text(t('assistant.feature_count.multiple', { count: selectedIDs.length.toString() })); + + var selectionList = uiSelectionList(context, selectedIDs); + body + .call(selectionList); + } } else if (!didEditAnythingYet) { container.classed('prominent', true); diff --git a/modules/ui/feature_list.js b/modules/ui/feature_list.js index 25468b1d69..3c0a2a851d 100644 --- a/modules/ui/feature_list.js +++ b/modules/ui/feature_list.js @@ -62,7 +62,7 @@ export function uiFeatureList(context) { list = listWrap .append('div') - .attr('class', 'feature-list cf'); + .attr('class', 'feature-list'); } @@ -215,40 +215,6 @@ export function uiFeatureList(context) { list.classed('filtered', value.length); - var resultsIndicator = list.selectAll('.no-results-item') - .data([0]) - .enter() - .append('button') - .property('disabled', true) - .attr('class', 'no-results-item') - .call(svgIcon('#iD-icon-alert', 'pre-text')); - - resultsIndicator.append('span') - .attr('class', 'entity-name'); - - list.selectAll('.no-results-item .entity-name') - .text(t('geocoder.no_results_worldwide')); - - if (services.geocoder) { - list.selectAll('.geocode-item') - .data([0]) - .enter() - .append('button') - .attr('class', 'geocode-item secondary') - .on('click', geocoderSearch) - .append('div') - .attr('class', 'label') - .append('span') - .attr('class', 'entity-name') - .text(t('geocoder.search')); - } - - list.selectAll('.no-results-item') - .style('display', (value.length && !results.length) ? 'block' : 'none'); - - list.selectAll('.geocode-item') - .style('display', (value && _geocodeResults === undefined) ? 'block' : 'none'); - list.selectAll('.feature-list-item') .data([-1]) .remove(); @@ -258,7 +224,7 @@ export function uiFeatureList(context) { var enter = items.enter() .insert('button', '.geocode-item') - .attr('class', 'feature-list-item') + .attr('class', 'feature-list-item sep-top') .on('mouseover', mouseover) .on('mouseout', mouseout) .on('click', click); @@ -268,6 +234,8 @@ export function uiFeatureList(context) { .attr('class', 'label'); label + .append('span') + .attr('class', 'entity-geom-icon') .each(function(d) { d3_select(this) .call(svgIcon('#iD-icon-' + d.geometry, 'pre-text')); @@ -292,6 +260,38 @@ export function uiFeatureList(context) { items.exit() .remove(); + + + var resultsIndicator = list.selectAll('.no-results-item') + .data((value.length && !results.length) ? [0] : []); + + resultsIndicator.exit().remove(); + + resultsIndicator + .enter() + .insert('button', '.geocode-item') + .property('disabled', true) + .attr('class', 'no-results-item') + .call(svgIcon('#iD-icon-alert', 'pre-text')) + .append('span') + .attr('class', 'entity-name') + .text(t('geocoder.no_results_worldwide')); + + var geocodeItem = list.selectAll('.geocode-item') + .data((services.geocoder && value && _geocodeResults === undefined) ? [0] : []); + + geocodeItem.exit().remove(); + + geocodeItem + .enter() + .append('button') + .attr('class', 'geocode-item secondary') + .on('click', geocoderSearch) + .append('div') + .attr('class', 'label') + .append('span') + .attr('class', 'entity-name') + .text(t('geocoder.search')); } diff --git a/modules/ui/selection_list.js b/modules/ui/selection_list.js index 07ce9357eb..e41ef333ee 100644 --- a/modules/ui/selection_list.js +++ b/modules/ui/selection_list.js @@ -1,6 +1,5 @@ import { event as d3_event, select as d3_select } from 'd3-selection'; -import { t } from '../util/locale'; import { modeSelect } from '../modes/select'; import { osmEntity } from '../osm'; import { svgIcon } from '../svg/icon'; @@ -25,24 +24,14 @@ export function uiSelectionList(context, selectedIDs) { function selectionList(selection) { - selection.classed('selection-list-pane', true); - - var header = selection - .append('div') - .attr('class', 'header fillL cf'); - - header - .append('h3') - .text(t('inspector.multiselect')); var listWrap = selection .append('div') - .attr('class', 'inspector-body'); + .attr('class', 'inspector-body selection-list-pane'); var list = listWrap .append('div') - .attr('class', 'feature-list cf'); - + .attr('class', 'feature-list'); context.history() .on('change.selectionList', function(difference) { @@ -66,7 +55,7 @@ export function uiSelectionList(context, selectedIDs) { // Enter var enter = items.enter() .append('div') - .attr('class', 'feature-list-item') + .attr('class', 'feature-list-item sep-top') .on('click', selectEntity); enter From fc38a7333078f4edf46e31ce060c885bb9cef223 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 11 Jun 2019 12:53:35 -0400 Subject: [PATCH 068/774] Make assistant more opaque --- css/80_app.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/css/80_app.css b/css/80_app.css index 3cbe8d8124..4b9f306bda 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -1002,7 +1002,7 @@ a.hide-toggle { ------------------------------------------------------- */ .assistant { flex: 0 0 auto; - background: rgba(32, 29, 29, 0.9); + background: rgba(45, 41, 41, 0.95); color: #fff; border-radius: 4px; display: flex; From 70a1fe930735438ebbe047f3b98913f58d80955a Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 11 Jun 2019 13:40:54 -0400 Subject: [PATCH 069/774] Use lighter styling for sidewalks than generic footways (close #6522) --- css/30_highways.css | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/css/30_highways.css b/css/30_highways.css index b29485a92f..16022ccce9 100644 --- a/css/30_highways.css +++ b/css/30_highways.css @@ -489,6 +489,13 @@ path.line.stroke.tag-highway_bus_stop, .preset-icon-container path.casing.tag-highway-footway { stroke: #988; } +.preset-icon .icon.tag-highway-footway.tag-footway-sidewalk { + color: #d4b4b4; +} +path.stroke.tag-highway-footway.tag-footway-sidewalk, +.preset-icon-container path.casing.tag-highway-footway.tag-footway-sidewalk { + stroke: #d4b4b4; +} .preset-icon-container path.stroke.tag-highway-footway:not(.tag-crossing-marked):not(.tag-crossing-unmarked):not(.tag-man_made-pier):not(.tag-public_transport-platform) { stroke: #fff; } From d9992ec3aebddea672398c711d7a0be959aa250a Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 11 Jun 2019 13:50:25 -0400 Subject: [PATCH 070/774] Check if local entities exist during feature search --- modules/ui/feature_list.js | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/ui/feature_list.js b/modules/ui/feature_list.js index 3c0a2a851d..113096967b 100644 --- a/modules/ui/feature_list.js +++ b/modules/ui/feature_list.js @@ -146,6 +146,7 @@ export function uiFeatureList(context) { var localResults = []; for (var id in allEntities) { var entity = allEntities[id]; + if (!entity) continue; var name = utilDisplayName(entity) || ''; if (name.toLowerCase().indexOf(q) < 0) continue; From 7ad499d7b616354848c65f34d3ec77c07526323c Mon Sep 17 00:00:00 2001 From: Yaron Shahrabani Date: Thu, 13 Jun 2019 00:00:19 +0300 Subject: [PATCH 071/774] Typo fix collborative -> collaborative, thanks to @ignaciolep on transifex. --- data/core.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/core.yaml b/data/core.yaml index 415be8aa59..8d8442a6f4 100644 --- a/data/core.yaml +++ b/data/core.yaml @@ -51,7 +51,7 @@ en: # "Good Night" isn't a greeting in English but it can be in some languages night: Good Evening welcome: - first_time: "You’re editing OpenStreetMap: the free, collborative world map.
If this is your first time here, consider taking the quick-start tutorial.
Thanks for contributing. Have fun!" + first_time: "You’re editing OpenStreetMap: the free, collaborative world map.
If this is your first time here, consider taking the quick-start tutorial.
Thanks for contributing. Have fun!" return: "Welcome back. Ready to make the map even better?" start_mapping: Start Mapping restore: From c31a5045f06a55ae19f65474af6426362ce5cdbe Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Thu, 13 Jun 2019 13:56:34 -0400 Subject: [PATCH 072/774] Add data structure for defining feature groups in JSON Replace hardcoded features.js definitions with feature group files --- build_data.js | 31 ++++ data/core.yaml | 45 ----- data/index.js | 4 +- data/presets.yaml | 46 +++++ data/presets/groups.json | 19 ++ .../presets/groups/toggleable/aerialways.json | 15 ++ .../presets/groups/toggleable/boundaries.json | 27 +++ .../groups/toggleable/building_parts.json | 14 ++ data/presets/groups/toggleable/buildings.json | 16 ++ data/presets/groups/toggleable/indoor.json | 13 ++ data/presets/groups/toggleable/landuse.json | 16 ++ .../groups/toggleable/past_future.json | 27 +++ data/presets/groups/toggleable/paths.json | 19 ++ data/presets/groups/toggleable/pistes.json | 13 ++ data/presets/groups/toggleable/points.json | 10 ++ data/presets/groups/toggleable/power.json | 13 ++ data/presets/groups/toggleable/rail.json | 19 ++ .../groups/toggleable/service_roads.json | 15 ++ .../groups/toggleable/traffic_roads.json | 25 +++ data/presets/groups/toggleable/water.json | 15 ++ data/presets/schema/group.json | 157 +++++++++++++++++ development_server.js | 1 + dist/locales/en.json | 124 ++++++------- modules/entities/group_manager.js | 142 +++++++++++++++ modules/renderer/features.js | 166 +++--------------- modules/ui/feature_info.js | 2 +- modules/ui/map_data.js | 22 ++- modules/ui/preset_browser.js | 8 +- modules/ui/preset_list.js | 8 +- 29 files changed, 764 insertions(+), 268 deletions(-) create mode 100644 data/presets/groups.json create mode 100644 data/presets/groups/toggleable/aerialways.json create mode 100644 data/presets/groups/toggleable/boundaries.json create mode 100644 data/presets/groups/toggleable/building_parts.json create mode 100644 data/presets/groups/toggleable/buildings.json create mode 100644 data/presets/groups/toggleable/indoor.json create mode 100644 data/presets/groups/toggleable/landuse.json create mode 100644 data/presets/groups/toggleable/past_future.json create mode 100644 data/presets/groups/toggleable/paths.json create mode 100644 data/presets/groups/toggleable/pistes.json create mode 100644 data/presets/groups/toggleable/points.json create mode 100644 data/presets/groups/toggleable/power.json create mode 100644 data/presets/groups/toggleable/rail.json create mode 100644 data/presets/groups/toggleable/service_roads.json create mode 100644 data/presets/groups/toggleable/traffic_roads.json create mode 100644 data/presets/groups/toggleable/water.json create mode 100644 data/presets/schema/group.json create mode 100644 modules/entities/group_manager.js diff --git a/build_data.js b/build_data.js index 2fc01f84cc..e6c79a9323 100644 --- a/build_data.js +++ b/build_data.js @@ -10,6 +10,7 @@ const YAML = require('js-yaml'); const fieldSchema = require('./data/presets/schema/field.json'); const presetSchema = require('./data/presets/schema/preset.json'); +const groupSchema = require('./data/presets/schema/group.json'); const nsi = require('name-suggestion-index'); const deprecated = require('./data/deprecated.json').dataDeprecated; @@ -48,6 +49,7 @@ module.exports = function buildData() { // Translation strings var tstrings = { categories: {}, + groups: {}, fields: {}, presets: {} }; @@ -82,6 +84,8 @@ module.exports = function buildData() { 'svg/fontawesome/*.svg', ]); + var groups = generateGroups(tstrings); + var categories = generateCategories(tstrings, faIcons, tnpIcons); var fields = generateFields(tstrings, faIcons); var presets = generatePresets(tstrings, faIcons, tnpIcons); @@ -108,6 +112,10 @@ module.exports = function buildData() { 'data/presets/presets.json', prettyStringify({ presets: presets }, { maxLength: 9999 }) ), + writeFileProm( + 'data/presets/groups.json', + prettyStringify({ groups: groups }, { maxLength: 1000 }) + ), writeFileProm( 'data/presets.yaml', translationsToYAML(translations) @@ -212,6 +220,29 @@ function generateFields(tstrings, faIcons, tnpIcons) { return fields; } +function generateGroups(tstrings) { + var groups = {}; + glob.sync(__dirname + '/data/presets/groups/**/*.json').forEach(function(file) { + var group = read(file); + var id = stripLeadingUnderscores(file.match(/presets\/groups\/([^.]*)\.json/)[1]); + validate(file, group, groupSchema); + + var t = {}; + if (group.name) { + t.name = group.name; + } + if (group.description) { + t.description = group.description; + } + if (Object.keys(t).length > 0) { + tstrings.groups[id] = t; + } + + groups[id] = group; + }); + return groups; +} + function suggestionsToPresets(presets) { const brands = nsi.brands.brands; diff --git a/data/core.yaml b/data/core.yaml index 8d8442a6f4..3c3caf6c29 100644 --- a/data/core.yaml +++ b/data/core.yaml @@ -668,51 +668,6 @@ en: title: "Panoramic Photos" tooltip: "360° photos" feature: - points: - description: Points - tooltip: "Points of Interest" - traffic_roads: - description: Traffic Roads - tooltip: "Highways, Streets, etc." - service_roads: - description: Service Roads - tooltip: "Service Roads, Parking Aisles, Tracks, etc." - paths: - description: Paths - tooltip: "Sidewalks, Foot Paths, Cycle Paths, etc." - buildings: - description: Buildings - tooltip: "Buildings, Shelters, Garages, etc." - building_parts: - description: Building Parts - tooltip: "3D Building and Roof Components" - indoor: - description: Indoor Features - tooltip: "Rooms, Corridors, Stairwells, etc." - landuse: - description: Landuse Features - tooltip: "Forests, Farmland, Parks, Residential, Commercial, etc." - boundaries: - description: Boundaries - tooltip: "Administrative Boundaries" - water: - description: Water Features - tooltip: "Rivers, Lakes, Ponds, Basins, etc." - rail: - description: Rail Features - tooltip: "Railways" - pistes: - description: Pistes - tooltip: "Ski Slopes, Sled Runs, Ice Skating Trails, etc." - aerialways: - description: Aerial Features - tooltip: "Chair Lifts, Gondolas, Zip Lines, etc." - power: - description: Power Features - tooltip: "Power Lines, Power Plants, Substations, etc." - past_future: - description: Past/Future Features - tooltip: "Proposed, Construction, Abandoned, Demolished, etc." others: description: Other Features tooltip: "Everything Else" diff --git a/data/index.js b/data/index.js index 9f03b04a9f..0b4c118654 100644 --- a/data/index.js +++ b/data/index.js @@ -20,6 +20,7 @@ import { dataImagery } from './imagery.json'; import { presets } from './presets/presets.json'; import { defaults } from './presets/defaults.json'; import { categories } from './presets/categories.json'; +import { groups } from './presets/groups.json'; import { fields } from './presets/fields.json'; import { geoArea as d3_geoArea } from 'd3-geo'; @@ -53,5 +54,6 @@ export var data = { defaults: defaults, categories: categories, fields: fields - } + }, + groups: groups }; diff --git a/data/presets.yaml b/data/presets.yaml index 06fcbca8ec..d9771cc14c 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -2282,6 +2282,52 @@ en: star: Star / Wye # 'windings:configuration=zigzag' zigzag: Zig Zag + groups: + toggleable/aerialways: + description: 'Chair Lifts, Gondolas, Zip Lines, etc.' + name: Aerial Features + toggleable/boundaries: + description: Administrative Boundaries + name: Boundaries + toggleable/building_parts: + description: 3D Building and Roof Components + name: Building Parts + toggleable/buildings: + description: 'Houses, Shelters, Garages, etc.' + name: Buildings + toggleable/indoor: + description: 'Rooms, Corridors, Stairwells, etc.' + name: Indoor Features + toggleable/landuse: + description: 'Forests, Farmland, Parks, Residential, Commercial, etc.' + name: Landuse Features + toggleable/past_future: + description: 'Proposed, Construction, Abandoned, Demolished, etc.' + name: Past/Future Features + toggleable/paths: + description: 'Sidewalks, Foot Paths, Cycle Paths, etc.' + name: Paths + toggleable/pistes: + description: 'Ski Slopes, Sled Runs, Ice Skating Trails, etc.' + name: Pistes + toggleable/points: + description: Points of Interest + name: Points + toggleable/power: + description: 'Power Lines, Power Plants, Substations, etc.' + name: Power Features + toggleable/rail: + description: 'Rails, Train Signals, etc.' + name: Railway Features + toggleable/service_roads: + description: 'Driveways, Parking Aisles, Tracks, etc.' + name: Service Roads + toggleable/traffic_roads: + description: 'Highways, Streets, etc.' + name: Traffic Roads + toggleable/water: + description: 'Rivers, Lakes, Ponds, Basins, etc.' + name: Water Features presets: address: # 'addr:*=*' diff --git a/data/presets/groups.json b/data/presets/groups.json new file mode 100644 index 0000000000..844af1b849 --- /dev/null +++ b/data/presets/groups.json @@ -0,0 +1,19 @@ +{ + "groups": { + "toggleable/aerialways": {"name": "Aerial Features", "description": "Chair Lifts, Gondolas, Zip Lines, etc.", "toggleable": true, "matches": {"allTags": {"aerialway": {"*": true, "no": false, "yes": false, "station": false}}}}, + "toggleable/boundaries": {"name": "Boundaries", "description": "Administrative Boundaries", "toggleable": {"hiddenByDefault": true}, "matches": {"geometry": ["line", "area", "relation"], "allTags": {"boundary": {"*": true, "no": false}}, "groups": {"toggleable/traffic_roads": false, "toggleable/service_roads": false, "toggleable/paths": false, "toggleable/water": false, "toggleable/pistes": false, "toggleable/railway": false, "toggleable/landuse": false, "toggleable/building": false, "toggleable/power": false}}}, + "toggleable/building_parts": {"name": "Building Parts", "description": "3D Building and Roof Components", "toggleable": true, "matches": {"geometry": "area", "allTags": {"building:part": {"*": true, "no": false}}}}, + "toggleable/buildings": {"name": "Buildings", "description": "Houses, Shelters, Garages, etc.", "toggleable": {"maxShown": 250}, "matches": {"geometry": "area", "allTags": {"building": {"*": true, "no": false}}}}, + "toggleable/indoor": {"name": "Indoor Features", "description": "Rooms, Corridors, Stairwells, etc.", "toggleable": true, "matches": {"allTags": {"indoor": {"*": true, "no": false}}}}, + "toggleable/landuse": {"name": "Landuse Features", "description": "Forests, Farmland, Parks, Residential, Commercial, etc.", "toggleable": true, "matches": {"geometry": "area", "groups": {"toggleable/buildings": false, "toggleable/building_parts": false, "toggleable/paths": false, "toggleable/indoor": false, "toggleable/water": false, "toggleable/pistes": false}}}, + "toggleable/past_future": {"name": "Past/Future Features", "description": "Proposed, Construction, Abandoned, Demolished, etc.", "toggleable": true, "matches": {"anyTags": {"*": {"proposed": true, "construction": true, "abandoned": true, "dismantled": true, "disused": true, "razed": true, "demolished": true, "obliterated": true}, "proposed": "*", "construction": "*", "abandoned": "*", "dismantled": "*", "disused": "*", "razed": "*", "demolished": "*", "obliterated": "*"}}}, + "toggleable/paths": {"name": "Paths", "description": "Sidewalks, Foot Paths, Cycle Paths, etc.", "toggleable": true, "matches": {"geometry": ["line", "area"], "allTags": {"highway": ["path", "footway", "cycleway", "bridleway", "pedestrian", "corridor", "steps"]}}}, + "toggleable/pistes": {"name": "Pistes", "description": "Ski Slopes, Sled Runs, Ice Skating Trails, etc.", "toggleable": true, "matches": {"allTags": {"piste:type": {"*": true, "no": false}}}}, + "toggleable/points": {"name": "Points", "description": "Points of Interest", "toggleable": {"maxShown": 200}, "matches": {"geometry": "point"}}, + "toggleable/power": {"name": "Power Features", "description": "Power Lines, Power Plants, Substations, etc.", "toggleable": true, "matches": {"allTags": {"power": {"*": true, "no": false}}}}, + "toggleable/rail": {"name": "Railway Features", "description": "Rails, Train Signals, etc.", "toggleable": true, "matches": {"anyTags": {"railway": {"*": true, "no": false}, "landuse": "railway"}, "groups": {"toggleable/traffic_roads": false, "toggleable/service_roads": false, "toggleable/paths": false}}}, + "toggleable/service_roads": {"name": "Service Roads", "description": "Driveways, Parking Aisles, Tracks, etc.", "toggleable": true, "matches": {"geometry": "line", "allTags": {"highway": {"service": true, "road": true, "track": true}}}}, + "toggleable/traffic_roads": {"name": "Traffic Roads", "description": "Highways, Streets, etc.", "toggleable": true, "matches": {"geometry": "line", "allTags": {"highway": {"motorway": true, "motorway_link": true, "trunk": true, "trunk_link": true, "primary": true, "primary_link": true, "secondary": true, "secondary_link": true, "tertiary": true, "tertiary_link": true, "residential": true, "unclassified": true, "living_street": true}}}}, + "toggleable/water": {"name": "Water Features", "description": "Rivers, Lakes, Ponds, Basins, etc.", "toggleable": true, "matches": {"anyTags": {"waterway": {"*": true, "no": false}, "natural": ["water", "coastline", "bay"], "landuse": ["pond", "basin", "reservoir", "salt_pond"]}}} + } +} \ No newline at end of file diff --git a/data/presets/groups/toggleable/aerialways.json b/data/presets/groups/toggleable/aerialways.json new file mode 100644 index 0000000000..4e48b6bd1e --- /dev/null +++ b/data/presets/groups/toggleable/aerialways.json @@ -0,0 +1,15 @@ +{ + "name": "Aerial Features", + "description": "Chair Lifts, Gondolas, Zip Lines, etc.", + "toggleable": true, + "matches": { + "allTags": { + "aerialway": { + "*": true, + "no": false, + "yes": false, + "station": false + } + } + } +} diff --git a/data/presets/groups/toggleable/boundaries.json b/data/presets/groups/toggleable/boundaries.json new file mode 100644 index 0000000000..af9b7be58a --- /dev/null +++ b/data/presets/groups/toggleable/boundaries.json @@ -0,0 +1,27 @@ +{ + "name": "Boundaries", + "description": "Administrative Boundaries", + "toggleable": { + "hiddenByDefault": true + }, + "matches": { + "geometry": ["line", "area", "relation"], + "allTags": { + "boundary": { + "*": true, + "no": false + } + }, + "groups": { + "toggleable/traffic_roads": false, + "toggleable/service_roads": false, + "toggleable/paths": false, + "toggleable/water": false, + "toggleable/pistes": false, + "toggleable/railway": false, + "toggleable/landuse": false, + "toggleable/building": false, + "toggleable/power": false + } + } +} diff --git a/data/presets/groups/toggleable/building_parts.json b/data/presets/groups/toggleable/building_parts.json new file mode 100644 index 0000000000..eb649271a8 --- /dev/null +++ b/data/presets/groups/toggleable/building_parts.json @@ -0,0 +1,14 @@ +{ + "name": "Building Parts", + "description": "3D Building and Roof Components", + "toggleable": true, + "matches": { + "geometry": "area", + "allTags": { + "building:part": { + "*": true, + "no": false + } + } + } +} diff --git a/data/presets/groups/toggleable/buildings.json b/data/presets/groups/toggleable/buildings.json new file mode 100644 index 0000000000..9ac91019ed --- /dev/null +++ b/data/presets/groups/toggleable/buildings.json @@ -0,0 +1,16 @@ +{ + "name": "Buildings", + "description": "Houses, Shelters, Garages, etc.", + "toggleable": { + "maxShown": 250 + }, + "matches": { + "geometry": "area", + "allTags": { + "building": { + "*": true, + "no": false + } + } + } +} diff --git a/data/presets/groups/toggleable/indoor.json b/data/presets/groups/toggleable/indoor.json new file mode 100644 index 0000000000..8be811c38f --- /dev/null +++ b/data/presets/groups/toggleable/indoor.json @@ -0,0 +1,13 @@ +{ + "name": "Indoor Features", + "description": "Rooms, Corridors, Stairwells, etc.", + "toggleable": true, + "matches": { + "allTags": { + "indoor": { + "*": true, + "no": false + } + } + } +} diff --git a/data/presets/groups/toggleable/landuse.json b/data/presets/groups/toggleable/landuse.json new file mode 100644 index 0000000000..365d1f4aea --- /dev/null +++ b/data/presets/groups/toggleable/landuse.json @@ -0,0 +1,16 @@ +{ + "name": "Landuse Features", + "description": "Forests, Farmland, Parks, Residential, Commercial, etc.", + "toggleable": true, + "matches": { + "geometry": "area", + "groups": { + "toggleable/buildings": false, + "toggleable/building_parts": false, + "toggleable/paths": false, + "toggleable/indoor": false, + "toggleable/water": false, + "toggleable/pistes": false + } + } +} diff --git a/data/presets/groups/toggleable/past_future.json b/data/presets/groups/toggleable/past_future.json new file mode 100644 index 0000000000..40f7c70ceb --- /dev/null +++ b/data/presets/groups/toggleable/past_future.json @@ -0,0 +1,27 @@ +{ + "name": "Past/Future Features", + "description": "Proposed, Construction, Abandoned, Demolished, etc.", + "toggleable": true, + "matches": { + "anyTags": { + "*": { + "proposed": true, + "construction": true, + "abandoned": true, + "dismantled": true, + "disused": true, + "razed": true, + "demolished": true, + "obliterated": true + }, + "proposed": "*", + "construction": "*", + "abandoned": "*", + "dismantled": "*", + "disused": "*", + "razed": "*", + "demolished": "*", + "obliterated": "*" + } + } +} diff --git a/data/presets/groups/toggleable/paths.json b/data/presets/groups/toggleable/paths.json new file mode 100644 index 0000000000..51e71fdd5f --- /dev/null +++ b/data/presets/groups/toggleable/paths.json @@ -0,0 +1,19 @@ +{ + "name": "Paths", + "description": "Sidewalks, Foot Paths, Cycle Paths, etc.", + "toggleable": true, + "matches": { + "geometry": ["line", "area"], + "allTags": { + "highway": [ + "path", + "footway", + "cycleway", + "bridleway", + "pedestrian", + "corridor", + "steps" + ] + } + } +} diff --git a/data/presets/groups/toggleable/pistes.json b/data/presets/groups/toggleable/pistes.json new file mode 100644 index 0000000000..27517de5db --- /dev/null +++ b/data/presets/groups/toggleable/pistes.json @@ -0,0 +1,13 @@ +{ + "name": "Pistes", + "description": "Ski Slopes, Sled Runs, Ice Skating Trails, etc.", + "toggleable": true, + "matches": { + "allTags": { + "piste:type": { + "*": true, + "no": false + } + } + } +} diff --git a/data/presets/groups/toggleable/points.json b/data/presets/groups/toggleable/points.json new file mode 100644 index 0000000000..8e9433ca73 --- /dev/null +++ b/data/presets/groups/toggleable/points.json @@ -0,0 +1,10 @@ +{ + "name": "Points", + "description": "Points of Interest", + "toggleable": { + "maxShown": 200 + }, + "matches": { + "geometry": "point" + } +} diff --git a/data/presets/groups/toggleable/power.json b/data/presets/groups/toggleable/power.json new file mode 100644 index 0000000000..5799d64dae --- /dev/null +++ b/data/presets/groups/toggleable/power.json @@ -0,0 +1,13 @@ +{ + "name": "Power Features", + "description": "Power Lines, Power Plants, Substations, etc.", + "toggleable": true, + "matches": { + "allTags": { + "power": { + "*": true, + "no": false + } + } + } +} diff --git a/data/presets/groups/toggleable/rail.json b/data/presets/groups/toggleable/rail.json new file mode 100644 index 0000000000..463f0a0b65 --- /dev/null +++ b/data/presets/groups/toggleable/rail.json @@ -0,0 +1,19 @@ +{ + "name": "Railway Features", + "description": "Rails, Train Signals, etc.", + "toggleable": true, + "matches": { + "anyTags": { + "railway": { + "*": true, + "no": false + }, + "landuse": "railway" + }, + "groups": { + "toggleable/traffic_roads": false, + "toggleable/service_roads": false, + "toggleable/paths": false + } + } +} diff --git a/data/presets/groups/toggleable/service_roads.json b/data/presets/groups/toggleable/service_roads.json new file mode 100644 index 0000000000..a3677586f9 --- /dev/null +++ b/data/presets/groups/toggleable/service_roads.json @@ -0,0 +1,15 @@ +{ + "name": "Service Roads", + "description": "Driveways, Parking Aisles, Tracks, etc.", + "toggleable": true, + "matches": { + "geometry": "line", + "allTags": { + "highway": { + "service": true, + "road": true, + "track": true + } + } + } +} diff --git a/data/presets/groups/toggleable/traffic_roads.json b/data/presets/groups/toggleable/traffic_roads.json new file mode 100644 index 0000000000..1e8ff92044 --- /dev/null +++ b/data/presets/groups/toggleable/traffic_roads.json @@ -0,0 +1,25 @@ +{ + "name": "Traffic Roads", + "description": "Highways, Streets, etc.", + "toggleable": true, + "matches": { + "geometry": "line", + "allTags": { + "highway": { + "motorway": true, + "motorway_link": true, + "trunk": true, + "trunk_link": true, + "primary": true, + "primary_link": true, + "secondary": true, + "secondary_link": true, + "tertiary": true, + "tertiary_link": true, + "residential": true, + "unclassified": true, + "living_street": true + } + } + } +} diff --git a/data/presets/groups/toggleable/water.json b/data/presets/groups/toggleable/water.json new file mode 100644 index 0000000000..fa2015db2d --- /dev/null +++ b/data/presets/groups/toggleable/water.json @@ -0,0 +1,15 @@ +{ + "name": "Water Features", + "description": "Rivers, Lakes, Ponds, Basins, etc.", + "toggleable": true, + "matches": { + "anyTags": { + "waterway": { + "*": true, + "no": false + }, + "natural": ["water", "coastline", "bay"], + "landuse": ["pond", "basin", "reservoir", "salt_pond"] + } + } +} diff --git a/data/presets/schema/group.json b/data/presets/schema/group.json new file mode 100644 index 0000000000..e04a84414b --- /dev/null +++ b/data/presets/schema/group.json @@ -0,0 +1,157 @@ +{ + "title": "Group", + "description": "Defines a grouping of features that have common qualities", + "type": "object", + "properties": { + "name": { + "description": "The English name for the group, if needed for the UI. Translatable", + "type": "string" + }, + "description": { + "description": "A short English description for the group, if needed for the UI. Translatable", + "type": "string" + }, + "toggleable": { + "anyOf": [ + { + "description": "Specify if the group's visiblity can be turned on and off in the Map Data pane", + "type": "boolean" + }, + { + "description": "Specify if the group's visiblity can be turned on and off in the Map Data pane", + "type": "object", + "properties": { + "hiddenByDefault": { + "type": "boolean" + }, + "maxShown": { + "type": "number" + } + } + } + ] + }, + "matches": { + "$ref": "#/definitions/rule" + } + }, + "additionalProperties": false, + "definitions": { + "geometry": { + "type": "string", + "enum": ["point", "vertex", "line", "area", "relation"] + }, + "tags": { + "type": "object", + "additionalProperties": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + }, + "minItems": 1 + }, + { + "type": "object", + "additionalProperties": { + "type": "boolean" + } + } + ] + } + }, + "rule": { + "anyOf": [ + { + "type": "object", + "properties": { + "any": { + "type": "array", + "items": { + "$ref": "#/definitions/rule" + }, + "minItems": 1 + } + }, + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "all": { + "type": "array", + "items": { + "$ref": "#/definitions/rule" + }, + "minItems": 1 + } + }, + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "none": { + "type": "array", + "items": { + "$ref": "#/definitions/rule" + }, + "minItems": 1 + } + }, + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "notAll": { + "type": "array", + "items": { + "$ref": "#/definitions/rule" + }, + "minItems": 1 + } + }, + "additionalProperties": false + }, + { + "description": "Paramters for matching a feature against", + "type": "object", + "properties": { + "geometry": { + "anyOf": [ + { + "$ref": "#/definitions/geometry" + }, + { + "type": "array", + "items": { + "$ref": "#/definitions/geometry" + }, + "minItems": 1 + } + ] + }, + "anyTags": { + "$ref": "#/definitions/tags" + }, + "allTags": { + "$ref": "#/definitions/tags" + }, + "groups": { + "type": "object", + "additionalProperties": { + "type": "boolean" + } + } + }, + "additionalProperties": false + } + ] + } + } +} diff --git a/development_server.js b/development_server.js index 28bdf1eda6..2dc54a5647 100644 --- a/development_server.js +++ b/development_server.js @@ -31,6 +31,7 @@ if (isDevelopment) { '!data/presets/categories.json', '!data/presets/fields.json', '!data/presets/presets.json', + '!data/presets/groups.json', '!data/presets.yaml', '!data/taginfo.json', '!dist/locales/en.json' diff --git a/dist/locales/en.json b/dist/locales/en.json index 4f26a0e8a9..c59a5485d0 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -62,7 +62,7 @@ "night": "Good Evening" }, "welcome": { - "first_time": "You’re editing OpenStreetMap: the free, collborative world map.
If this is your first time here, consider taking the quick-start tutorial.
Thanks for contributing. Have fun!", + "first_time": "You’re editing OpenStreetMap: the free, collaborative world map.
If this is your first time here, consider taking the quick-start tutorial.
Thanks for contributing. Have fun!", "return": "Welcome back. Ready to make the map even better?", "start_mapping": "Start Mapping" }, @@ -832,66 +832,6 @@ } }, "feature": { - "points": { - "description": "Points", - "tooltip": "Points of Interest" - }, - "traffic_roads": { - "description": "Traffic Roads", - "tooltip": "Highways, Streets, etc." - }, - "service_roads": { - "description": "Service Roads", - "tooltip": "Service Roads, Parking Aisles, Tracks, etc." - }, - "paths": { - "description": "Paths", - "tooltip": "Sidewalks, Foot Paths, Cycle Paths, etc." - }, - "buildings": { - "description": "Buildings", - "tooltip": "Buildings, Shelters, Garages, etc." - }, - "building_parts": { - "description": "Building Parts", - "tooltip": "3D Building and Roof Components" - }, - "indoor": { - "description": "Indoor Features", - "tooltip": "Rooms, Corridors, Stairwells, etc." - }, - "landuse": { - "description": "Landuse Features", - "tooltip": "Forests, Farmland, Parks, Residential, Commercial, etc." - }, - "boundaries": { - "description": "Boundaries", - "tooltip": "Administrative Boundaries" - }, - "water": { - "description": "Water Features", - "tooltip": "Rivers, Lakes, Ponds, Basins, etc." - }, - "rail": { - "description": "Rail Features", - "tooltip": "Railways" - }, - "pistes": { - "description": "Pistes", - "tooltip": "Ski Slopes, Sled Runs, Ice Skating Trails, etc." - }, - "aerialways": { - "description": "Aerial Features", - "tooltip": "Chair Lifts, Gondolas, Zip Lines, etc." - }, - "power": { - "description": "Power Features", - "tooltip": "Power Lines, Power Plants, Substations, etc." - }, - "past_future": { - "description": "Past/Future Features", - "tooltip": "Proposed, Construction, Abandoned, Demolished, etc." - }, "others": { "description": "Other Features", "tooltip": "Everything Else" @@ -2476,6 +2416,68 @@ "name": "Waterways" } }, + "groups": { + "toggleable/aerialways": { + "name": "Aerial Features", + "description": "Chair Lifts, Gondolas, Zip Lines, etc." + }, + "toggleable/boundaries": { + "name": "Boundaries", + "description": "Administrative Boundaries" + }, + "toggleable/building_parts": { + "name": "Building Parts", + "description": "3D Building and Roof Components" + }, + "toggleable/buildings": { + "name": "Buildings", + "description": "Houses, Shelters, Garages, etc." + }, + "toggleable/indoor": { + "name": "Indoor Features", + "description": "Rooms, Corridors, Stairwells, etc." + }, + "toggleable/landuse": { + "name": "Landuse Features", + "description": "Forests, Farmland, Parks, Residential, Commercial, etc." + }, + "toggleable/past_future": { + "name": "Past/Future Features", + "description": "Proposed, Construction, Abandoned, Demolished, etc." + }, + "toggleable/paths": { + "name": "Paths", + "description": "Sidewalks, Foot Paths, Cycle Paths, etc." + }, + "toggleable/pistes": { + "name": "Pistes", + "description": "Ski Slopes, Sled Runs, Ice Skating Trails, etc." + }, + "toggleable/points": { + "name": "Points", + "description": "Points of Interest" + }, + "toggleable/power": { + "name": "Power Features", + "description": "Power Lines, Power Plants, Substations, etc." + }, + "toggleable/rail": { + "name": "Railway Features", + "description": "Rails, Train Signals, etc." + }, + "toggleable/service_roads": { + "name": "Service Roads", + "description": "Driveways, Parking Aisles, Tracks, etc." + }, + "toggleable/traffic_roads": { + "name": "Traffic Roads", + "description": "Highways, Streets, etc." + }, + "toggleable/water": { + "name": "Water Features", + "description": "Rivers, Lakes, Ponds, Basins, etc." + } + }, "fields": { "access_simple": { "label": "Allowed Access" diff --git a/modules/entities/group_manager.js b/modules/entities/group_manager.js new file mode 100644 index 0000000000..ea4410a274 --- /dev/null +++ b/modules/entities/group_manager.js @@ -0,0 +1,142 @@ + +import { data } from '../../data/index'; +import { t } from '../util/locale'; + +function entityGroup(id, group) { + group = Object.assign({}, group); // shallow copy + + group.id = id; + + // returns the part of the `id` after the last slash + group.basicID = function() { + var index = group.id.lastIndexOf('/'); + return index === -1 ? group.id : group.id.substring(index + 1); + }; + + group.localizedName = function() { + return group.name ? t('presets.groups.' + id + '.name') : null; + }; + + group.localizedDescription = function() { + return group.description ? t('presets.groups.' + id + '.description') : null; + }; + + group.toggleableMax = function() { + if (group.toggleable && typeof group.toggleable === 'object') return group.toggleable.maxShown; + return null; + }; + + group.matchesTags = function(tags, geometry) { + + var allGroups = groupManager.groups(); + + return matchesRule(group.matches); + + function matchesTagComponent(ruleKey, tagComponent) { + var keysToCheck = ruleKey === '*' ? Object.keys(tags) : [ruleKey]; + var val = tagComponent[ruleKey]; + for (var i in keysToCheck) { + var key = keysToCheck[i]; + var entityValue = tags[key]; + if (typeof val === 'string') { + if (!entityValue || (val !== entityValue && val !== '*')) return false; + } else if (Array.isArray(val)) { + if (!entityValue || val.indexOf(entityValue) === -1) return false; + } else { + if (!entityValue || (!val['*'] && !val[entityValue])) return false; + if (val[entityValue] === false) return false; + } + } + return true; + } + + function matchesRule(rule) { + if (rule.any) { + return rule.any.some(matchesRule); + } else if (rule.all) { + return rule.all.every(matchesRule); + } else if (rule.none) { + return !rule.none.some(matchesRule); + } else if (rule.notAll) { + return !rule.notAll.every(matchesRule); + } + + if (rule.geometry) { + if (Array.isArray(rule.geometry)) { + if (rule.geometry.indexOf(geometry) === -1) return false; + } else { + if (rule.geometry !== geometry) return false; + } + } + + if (rule.allTags) { + for (var ruleKey in rule.allTags) { + if (!matchesTagComponent(ruleKey, rule.allTags)) return false; + } + } + if (rule.anyTags) { + var didMatch = false; + for (var ruleKey in rule.anyTags) { + if (matchesTagComponent(ruleKey, rule.anyTags)) { + didMatch = true; + break; + } + } + if (!didMatch) return false; + } + + if (rule.groups) { + for (var otherGroupID in rule.groups) { + // avoid simple infinte recursion + if (otherGroupID === group.id) continue; + // skip erroneous group IDs + if (!allGroups[otherGroupID]) continue; + + var matchesOther = allGroups[otherGroupID].matchesTags(tags, geometry); + if ((rule.groups[otherGroupID] && !matchesOther) || + (!rule.groups[otherGroupID] && matchesOther)) return false; + } + } + + return true; + } + }; + + return group; +} + +function entityGroupManager() { + + var manager = {}; + + var _groups = {}; + var _groupsArray = []; + for (var id in data.groups) { + var group = entityGroup(id, data.groups[id]); + _groups[id] = group; + _groupsArray.push(group); + } + + manager.groups = function() { + return _groups; + }; + + manager.toggleableGroups = function() { + return _groupsArray.filter(function(group) { + return group.toggleable; + }); + }; + + manager.groupsForEntity = function(entity, graph) { + return _groupsArray.filter(function(group) { + return group.matchesTags(entity.tags, entity.geometry(graph)); + }); + }; + + return manager; +} + +var groupManager = entityGroupManager(); + +// use a singleton +export { groupManager }; diff --git a/modules/renderer/features.js b/modules/renderer/features.js index fba1b2268f..f419edc18a 100644 --- a/modules/renderer/features.js +++ b/modules/renderer/features.js @@ -2,60 +2,20 @@ import { dispatch as d3_dispatch } from 'd3-dispatch'; import { osmEntity } from '../osm'; import { utilRebind } from '../util/rebind'; +import { groupManager } from '../entities/group_manager'; import { utilArrayGroupBy, utilArrayUnion, utilQsString, utilStringQs } from '../util'; - +import { t } from '../util/locale'; export function rendererFeatures(context) { var dispatch = d3_dispatch('change', 'redraw'); var features = utilRebind({}, dispatch, 'on'); var _deferred = new Set(); - - var traffic_roads = { - 'motorway': true, - 'motorway_link': true, - 'trunk': true, - 'trunk_link': true, - 'primary': true, - 'primary_link': true, - 'secondary': true, - 'secondary_link': true, - 'tertiary': true, - 'tertiary_link': true, - 'residential': true, - 'unclassified': true, - 'living_street': true - }; - - var service_roads = { - 'service': true, - 'road': true, - 'track': true - }; - - var paths = { - 'path': true, - 'footway': true, - 'cycleway': true, - 'bridleway': true, - 'steps': true, - 'pedestrian': true, - 'corridor': true - }; - - var past_futures = { - 'proposed': true, - 'construction': true, - 'abandoned': true, - 'dismantled': true, - 'disused': true, - 'razed': true, - 'demolished': true, - 'obliterated': true - }; + var toggleableGroups = groupManager.toggleableGroups(); var _cullFactor = 1; var _cache = {}; var _rules = {}; + var _rulesArray = []; var _stats = {}; var _keys = []; var _hidden = []; @@ -80,11 +40,14 @@ export function rendererFeatures(context) { } - function defineRule(k, filter, max) { + function defineRule(k, filter, title, description, max) { var isEnabled = true; _keys.push(k); _rules[k] = { + key: k, + title: title, + description: description, filter: filter, enabled: isEnabled, // whether the user wants it enabled.. count: 0, @@ -99,108 +62,17 @@ export function rendererFeatures(context) { }, autoHidden: function() { return this.hidden() && this.currentMax > 0; } }; + _rulesArray.push(_rules[k]); } + for (var id in toggleableGroups) { + var group = toggleableGroups[id]; + defineRule(group.basicID(), group.matchesTags, group.localizedName(), group.localizedDescription(), group.toggleableMax()); + } - defineRule('points', function isPoint(tags, geometry) { - return geometry === 'point'; - }, 200); - - defineRule('traffic_roads', function isTrafficRoad(tags) { - return traffic_roads[tags.highway]; - }); - - defineRule('service_roads', function isServiceRoad(tags) { - return service_roads[tags.highway]; - }); - - defineRule('paths', function isPath(tags) { - return paths[tags.highway]; - }); - - defineRule('buildings', function isBuilding(tags) { - return ( - (!!tags.building && tags.building !== 'no') || - tags.parking === 'multi-storey' || - tags.parking === 'sheds' || - tags.parking === 'carports' || - tags.parking === 'garage_boxes' - ); - }, 250); - - defineRule('building_parts', function isBuildingPart(tags) { - return tags['building:part']; - }); - - defineRule('indoor', function isIndoor(tags) { - return tags.indoor; - }); - - defineRule('landuse', function isLanduse(tags, geometry) { - return geometry === 'area' && - !_rules.buildings.filter(tags) && - !_rules.building_parts.filter(tags) && - !_rules.indoor.filter(tags) && - !_rules.water.filter(tags) && - !_rules.pistes.filter(tags); - }); - - defineRule('boundaries', function isBoundary(tags) { - return ( - !!tags.boundary - ) && !( - traffic_roads[tags.highway] || - service_roads[tags.highway] || - paths[tags.highway] || - tags.waterway || - tags.railway || - tags.landuse || - tags.natural || - tags.building || - tags.power - ); - }); - - defineRule('water', function isWater(tags) { - return ( - !!tags.waterway || - tags.natural === 'water' || - tags.natural === 'coastline' || - tags.natural === 'bay' || - tags.landuse === 'pond' || - tags.landuse === 'basin' || - tags.landuse === 'reservoir' || - tags.landuse === 'salt_pond' - ); - }); - - defineRule('rail', function isRail(tags) { - return ( - !!tags.railway || - tags.landuse === 'railway' - ) && !( - traffic_roads[tags.highway] || - service_roads[tags.highway] || - paths[tags.highway] - ); - }); - - defineRule('pistes', function isPiste(tags) { - return tags['piste:type']; - }); - - defineRule('aerialways', function isPiste(tags) { - return tags.aerialway && - tags.aerialway !== 'yes' && - tags.aerialway !== 'station'; - }); - - defineRule('power', function isPower(tags) { - return !!tags.power; - }); // contains a past/future tag, but not in active use as a road/path/cycleway/etc.. - defineRule('past_future', function isPastFuture(tags) { + /*defineRule('past_future', function isPastFuture(tags) { if ( traffic_roads[tags.highway] || service_roads[tags.highway] || @@ -214,16 +86,18 @@ export function rendererFeatures(context) { if (past_futures[s] || past_futures[tags[s]]) { return true; } } return false; - }); + });*/ // Lines or areas that don't match another feature filter. // IMPORTANT: The 'others' feature must be the last one defined, // so that code in getMatches can skip this test if `hasMatch = true` defineRule('others', function isOther(tags, geometry) { return (geometry === 'line' || geometry === 'area'); - }); - + }, t('feature.others.description'), t('feature.others.tooltip')); + features.featuresArray = function() { + return _rulesArray; + }; features.features = function() { return _rules; @@ -472,7 +346,7 @@ export function rendererFeatures(context) { for (var key in _rules) { if (_rules[key].filter(test, geometry)) { if (_hidden.indexOf(key) !== -1) { - return key; + return _rules[key]; } return false; } diff --git a/modules/ui/feature_info.js b/modules/ui/feature_info.js index db988d1730..a918ea2070 100644 --- a/modules/ui/feature_info.js +++ b/modules/ui/feature_info.js @@ -13,7 +13,7 @@ export function uiFeatureInfo(context) { var hiddenList = features.hidden().map(function(k) { if (stats[k]) { count += stats[k]; - return String(stats[k]) + ' ' + t('feature.' + k + '.description'); + return String(stats[k]) + ' ' + features.features()[k].title; } }).filter(Boolean); diff --git a/modules/ui/map_data.js b/modules/ui/map_data.js index d0b8475ac3..dc0c4f8839 100644 --- a/modules/ui/map_data.js +++ b/modules/ui/map_data.js @@ -17,7 +17,7 @@ import { uiCmd } from './cmd'; export function uiMapData(context) { var key = t('map_data.key'); var osmDataToggleKey = uiCmd('⌥' + t('area_fill.wireframe.key')); - var features = context.features().keys(); + var features = context.features().featuresArray(); var layers = context.layers(); var fills = ['wireframe', 'partial', 'full']; @@ -35,18 +35,18 @@ export function uiMapData(context) { function showsFeature(d) { - return context.features().enabled(d); + return context.features().enabled(d.key); } function autoHiddenFeature(d) { if (d.type === 'kr_error') return context.errors().autoHidden(d); - return context.features().autoHidden(d); + return context.features().autoHidden(d.key); } function clickFeature(d) { - context.features().toggle(d); + context.features().toggle(d.key); update(); } @@ -585,7 +585,12 @@ export function uiMapData(context) { .call(tooltip() .html(true) .title(function(d) { - var tip = t(name + '.' + d + '.tooltip'); + var tip; + if (name === 'feature') { + tip = d.description; + } else { + tip = t(name + '.' + d + '.tooltip'); + } var key = (d === 'wireframe' ? t('area_fill.wireframe.key') : null); if ((name === 'feature' || name === 'keepRight') && autoHiddenFeature(d)) { var msg = showsLayer('osm') ? t('map_data.autohidden') : t('map_data.osmhidden'); @@ -607,7 +612,12 @@ export function uiMapData(context) { label .append('span') - .text(function(d) { return t(name + '.' + d + '.description'); }); + .text(function(d) { + if (name === 'feature') { + return d.title; + } + return t(name + '.' + d + '.description'); + }); // Update items = items diff --git a/modules/ui/preset_browser.js b/modules/ui/preset_browser.js index d47edc3071..2dd51b9864 100644 --- a/modules/ui/preset_browser.js +++ b/modules/ui/preset_browser.js @@ -442,8 +442,8 @@ export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { listItem.each(function(item, index) { if (!item.geometry) return; - var hiddenPresetFeaturesId = context.features().isHiddenPreset(item.preset, item.geometry); - var isHiddenPreset = !!hiddenPresetFeaturesId; + var hiddenPresetFeatures = context.features().isHiddenPreset(item.preset, item.geometry); + var isHiddenPreset = !!hiddenPresetFeatures; var button = d3_select(this).selectAll('button.choose'); @@ -451,9 +451,9 @@ export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { button.classed('disabled', isHiddenPreset); if (isHiddenPreset) { - var isAutoHidden = context.features().autoHidden(hiddenPresetFeaturesId); + var isAutoHidden = context.features().autoHidden(hiddenPresetFeatures.key); var tooltipIdSuffix = isAutoHidden ? 'zoom' : 'manual'; - var tooltipObj = { features: t('feature.' + hiddenPresetFeaturesId + '.description') }; + var tooltipObj = { features: hiddenPresetFeatures.title }; button.call(tooltip('dark') .html(true) .title(t('inspector.hidden_preset.' + tooltipIdSuffix, tooltipObj)) diff --git a/modules/ui/preset_list.js b/modules/ui/preset_list.js index 48b3d67259..b999bcd932 100644 --- a/modules/ui/preset_list.js +++ b/modules/ui/preset_list.js @@ -439,16 +439,16 @@ export function uiPresetList(context) { button.call(tooltip().destroyAny); button.each(function(item, index) { - var hiddenPresetFeaturesId = context.features().isHiddenPreset(item.preset, geometry); - var isHiddenPreset = !!hiddenPresetFeaturesId && item.preset !== _currentPreset; + var hiddenPresetFeatures = context.features().isHiddenPreset(item.preset, geometry); + var isHiddenPreset = !!hiddenPresetFeatures && item.preset !== _currentPreset; d3_select(this) .classed('disabled', isHiddenPreset); if (isHiddenPreset) { - var isAutoHidden = context.features().autoHidden(hiddenPresetFeaturesId); + var isAutoHidden = context.features().autoHidden(hiddenPresetFeatures.key); var tooltipIdSuffix = isAutoHidden ? 'zoom' : 'manual'; - var tooltipObj = { features: t('feature.' + hiddenPresetFeaturesId + '.description') }; + var tooltipObj = { features: hiddenPresetFeatures.title }; d3_select(this).call(tooltip() .title(t('inspector.hidden_preset.' + tooltipIdSuffix, tooltipObj)) .placement(index < 2 ? 'bottom' : 'top') From 2794420f9ce263bb02485138eee46d927fdc2443 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Thu, 13 Jun 2019 14:32:31 -0400 Subject: [PATCH 073/774] Use simple access field for public bookcase (re: #6503) --- data/presets/presets.json | 2 +- data/presets/presets/amenity/public_bookcase.json | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/data/presets/presets.json b/data/presets/presets.json index e787896618..2b78c28d6e 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -167,7 +167,7 @@ "amenity/pub/lgbtq": {"icon": "maki-beer", "geometry": ["point", "area"], "tags": {"amenity": "pub", "lgbtq": "primary"}, "terms": ["gay pub", "lesbian pub", "lgbtq pub", "lgbt pub", "lgb pub"], "name": "LGBTQ+ Pub"}, "amenity/pub/microbrewery": {"icon": "maki-beer", "geometry": ["point", "area"], "tags": {"amenity": "pub", "microbrewery": "yes"}, "reference": {"key": "microbrewery"}, "terms": ["alcohol", "drink", "dive", "beer", "bier", "booze", "craft brewery", "microbrewery", "small batch brewery"], "name": "Brewpub"}, "amenity/public_bath": {"icon": "maki-water", "fields": ["name", "bath/type", "bath/open_air", "bath/sand_bath", "address", "building_area", "fee"], "moreFields": ["email", "fax", "internet_access", "internet_access/fee", "internet_access/ssid", "opening_hours", "payment_multi_fee", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "public_bath"}, "terms": ["onsen", "foot bath", "hot springs"], "name": "Public Bath"}, - "amenity/public_bookcase": {"icon": "maki-library", "fields": ["name", "operator", "opening_hours", "capacity", "website", "lit"], "moreFields": ["wheelchair", "location", "access", "brand", "email", "phone"], "geometry": ["point", "area"], "terms": ["library", "bookcrossing"], "tags": {"amenity": "public_bookcase"}, "name": "Public Bookcase"}, + "amenity/public_bookcase": {"icon": "maki-library", "fields": ["name", "operator", "opening_hours", "capacity", "website", "lit"], "moreFields": ["wheelchair", "location", "access_simple", "brand", "email", "phone"], "geometry": ["point", "area"], "terms": ["library", "bookcrossing"], "tags": {"amenity": "public_bookcase"}, "name": "Public Bookcase"}, "amenity/ranger_station": {"icon": "maki-ranger-station", "fields": ["name", "operator", "address", "building_area", "opening_hours"], "moreFields": ["email", "fax", "internet_access", "internet_access/fee", "internet_access/ssid", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["visitor center", "visitor centre", "permit center", "permit centre", "backcountry office", "warden office", "warden center"], "tags": {"amenity": "ranger_station"}, "name": "Ranger Station"}, "amenity/recycling_centre": {"icon": "maki-recycling", "fields": ["name", "operator", "address", "building", "opening_hours", "recycling_accepts"], "moreFields": ["fee", "payment_multi_fee", "website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "terms": ["bottle", "can", "dump", "glass", "garbage", "rubbish", "scrap", "trash"], "tags": {"amenity": "recycling", "recycling_type": "centre"}, "reference": {"key": "recycling_type", "value": "*"}, "name": "Recycling Center"}, "amenity/recycling_container": {"icon": "maki-recycling", "fields": ["operator", "recycling_accepts", "collection_times", "material", "colour"], "moreFields": ["covered", "indoor", "manufacturer"], "geometry": ["point", "area"], "terms": ["bin", "can", "bottle", "glass", "garbage", "rubbish", "scrap", "trash"], "tags": {"amenity": "recycling", "recycling_type": "container"}, "reference": {"key": "amenity", "value": "recycling"}, "name": "Recycling Container"}, diff --git a/data/presets/presets/amenity/public_bookcase.json b/data/presets/presets/amenity/public_bookcase.json index e686a3e540..a0ff3350e2 100644 --- a/data/presets/presets/amenity/public_bookcase.json +++ b/data/presets/presets/amenity/public_bookcase.json @@ -10,10 +10,10 @@ ], "moreFields": [ "wheelchair", - "location", - "access", - "brand", - "email", + "location", + "access_simple", + "brand", + "email", "phone" ], "geometry": [ From 1017687b3904a62d91588f70a6c9185035a2bef9 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Thu, 13 Jun 2019 14:59:04 -0400 Subject: [PATCH 074/774] Add derived data from #6531 --- dist/locales/en.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dist/locales/en.json b/dist/locales/en.json index 4f26a0e8a9..5dfe026ee2 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -62,7 +62,7 @@ "night": "Good Evening" }, "welcome": { - "first_time": "You’re editing OpenStreetMap: the free, collborative world map.
If this is your first time here, consider taking the quick-start tutorial.
Thanks for contributing. Have fun!", + "first_time": "You’re editing OpenStreetMap: the free, collaborative world map.
If this is your first time here, consider taking the quick-start tutorial.
Thanks for contributing. Have fun!", "return": "Welcome back. Ready to make the map even better?", "start_mapping": "Start Mapping" }, From c3812e7696099105043708341044cf581183b057 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Thu, 13 Jun 2019 15:59:07 -0400 Subject: [PATCH 075/774] Add descriptions for more properties in the group schema Remove array option for tag values in group rules Fix lint error --- data/presets/groups.json | 4 +- data/presets/groups/toggleable/paths.json | 18 ++++---- data/presets/groups/toggleable/water.json | 13 +++++- data/presets/schema/group.json | 53 ++++++++++------------- modules/entities/group_manager.js | 10 ++--- 5 files changed, 49 insertions(+), 49 deletions(-) diff --git a/data/presets/groups.json b/data/presets/groups.json index 844af1b849..9842570d5f 100644 --- a/data/presets/groups.json +++ b/data/presets/groups.json @@ -7,13 +7,13 @@ "toggleable/indoor": {"name": "Indoor Features", "description": "Rooms, Corridors, Stairwells, etc.", "toggleable": true, "matches": {"allTags": {"indoor": {"*": true, "no": false}}}}, "toggleable/landuse": {"name": "Landuse Features", "description": "Forests, Farmland, Parks, Residential, Commercial, etc.", "toggleable": true, "matches": {"geometry": "area", "groups": {"toggleable/buildings": false, "toggleable/building_parts": false, "toggleable/paths": false, "toggleable/indoor": false, "toggleable/water": false, "toggleable/pistes": false}}}, "toggleable/past_future": {"name": "Past/Future Features", "description": "Proposed, Construction, Abandoned, Demolished, etc.", "toggleable": true, "matches": {"anyTags": {"*": {"proposed": true, "construction": true, "abandoned": true, "dismantled": true, "disused": true, "razed": true, "demolished": true, "obliterated": true}, "proposed": "*", "construction": "*", "abandoned": "*", "dismantled": "*", "disused": "*", "razed": "*", "demolished": "*", "obliterated": "*"}}}, - "toggleable/paths": {"name": "Paths", "description": "Sidewalks, Foot Paths, Cycle Paths, etc.", "toggleable": true, "matches": {"geometry": ["line", "area"], "allTags": {"highway": ["path", "footway", "cycleway", "bridleway", "pedestrian", "corridor", "steps"]}}}, + "toggleable/paths": {"name": "Paths", "description": "Sidewalks, Foot Paths, Cycle Paths, etc.", "toggleable": true, "matches": {"geometry": ["line", "area"], "allTags": {"highway": {"path": true, "footway": true, "cycleway": true, "bridleway": true, "pedestrian": true, "corridor": true, "steps": true}}}}, "toggleable/pistes": {"name": "Pistes", "description": "Ski Slopes, Sled Runs, Ice Skating Trails, etc.", "toggleable": true, "matches": {"allTags": {"piste:type": {"*": true, "no": false}}}}, "toggleable/points": {"name": "Points", "description": "Points of Interest", "toggleable": {"maxShown": 200}, "matches": {"geometry": "point"}}, "toggleable/power": {"name": "Power Features", "description": "Power Lines, Power Plants, Substations, etc.", "toggleable": true, "matches": {"allTags": {"power": {"*": true, "no": false}}}}, "toggleable/rail": {"name": "Railway Features", "description": "Rails, Train Signals, etc.", "toggleable": true, "matches": {"anyTags": {"railway": {"*": true, "no": false}, "landuse": "railway"}, "groups": {"toggleable/traffic_roads": false, "toggleable/service_roads": false, "toggleable/paths": false}}}, "toggleable/service_roads": {"name": "Service Roads", "description": "Driveways, Parking Aisles, Tracks, etc.", "toggleable": true, "matches": {"geometry": "line", "allTags": {"highway": {"service": true, "road": true, "track": true}}}}, "toggleable/traffic_roads": {"name": "Traffic Roads", "description": "Highways, Streets, etc.", "toggleable": true, "matches": {"geometry": "line", "allTags": {"highway": {"motorway": true, "motorway_link": true, "trunk": true, "trunk_link": true, "primary": true, "primary_link": true, "secondary": true, "secondary_link": true, "tertiary": true, "tertiary_link": true, "residential": true, "unclassified": true, "living_street": true}}}}, - "toggleable/water": {"name": "Water Features", "description": "Rivers, Lakes, Ponds, Basins, etc.", "toggleable": true, "matches": {"anyTags": {"waterway": {"*": true, "no": false}, "natural": ["water", "coastline", "bay"], "landuse": ["pond", "basin", "reservoir", "salt_pond"]}}} + "toggleable/water": {"name": "Water Features", "description": "Rivers, Lakes, Ponds, Basins, etc.", "toggleable": true, "matches": {"anyTags": {"waterway": {"*": true, "no": false}, "natural": {"water": true, "coastline": true, "bay": true}, "landuse": {"pond": true, "basin": true, "reservoir": true, "salt_pond": true}}}} } } \ No newline at end of file diff --git a/data/presets/groups/toggleable/paths.json b/data/presets/groups/toggleable/paths.json index 51e71fdd5f..907eed0c3f 100644 --- a/data/presets/groups/toggleable/paths.json +++ b/data/presets/groups/toggleable/paths.json @@ -5,15 +5,15 @@ "matches": { "geometry": ["line", "area"], "allTags": { - "highway": [ - "path", - "footway", - "cycleway", - "bridleway", - "pedestrian", - "corridor", - "steps" - ] + "highway": { + "path": true, + "footway": true, + "cycleway": true, + "bridleway": true, + "pedestrian": true, + "corridor": true, + "steps": true + } } } } diff --git a/data/presets/groups/toggleable/water.json b/data/presets/groups/toggleable/water.json index fa2015db2d..8efcee46a6 100644 --- a/data/presets/groups/toggleable/water.json +++ b/data/presets/groups/toggleable/water.json @@ -8,8 +8,17 @@ "*": true, "no": false }, - "natural": ["water", "coastline", "bay"], - "landuse": ["pond", "basin", "reservoir", "salt_pond"] + "natural": { + "water": true, + "coastline": true, + "bay": true + }, + "landuse": { + "pond": true, + "basin": true, + "reservoir": true, + "salt_pond": true + } } } } diff --git a/data/presets/schema/group.json b/data/presets/schema/group.json index e04a84414b..d399edfa30 100644 --- a/data/presets/schema/group.json +++ b/data/presets/schema/group.json @@ -1,6 +1,6 @@ { - "title": "Group", - "description": "Defines a grouping of features that have common qualities", + "title": "Entity Group", + "description": "Defines a grouping of features that have something in common", "type": "object", "properties": { "name": { @@ -18,7 +18,7 @@ "type": "boolean" }, { - "description": "Specify if the group's visiblity can be turned on and off in the Map Data pane", + "description": "The group can be turned on and off in the Map Data pane with the following constraints", "type": "object", "properties": { "hiddenByDefault": { @@ -48,13 +48,6 @@ { "type": "string" }, - { - "type": "array", - "items": { - "type": "string" - }, - "minItems": 1 - }, { "type": "object", "additionalProperties": { @@ -64,17 +57,21 @@ ] } }, + "ruleArray": { + "type": "array", + "items": { + "$ref": "#/definitions/rule" + }, + "minItems": 1 + }, "rule": { "anyOf": [ { "type": "object", "properties": { "any": { - "type": "array", - "items": { - "$ref": "#/definitions/rule" - }, - "minItems": 1 + "description": "ANY rule must pass", + "$ref": "#/definitions/ruleArray" } }, "additionalProperties": false @@ -83,11 +80,8 @@ "type": "object", "properties": { "all": { - "type": "array", - "items": { - "$ref": "#/definitions/rule" - }, - "minItems": 1 + "description": "ALL rules must pass", + "$ref": "#/definitions/ruleArray" } }, "additionalProperties": false @@ -96,11 +90,8 @@ "type": "object", "properties": { "none": { - "type": "array", - "items": { - "$ref": "#/definitions/rule" - }, - "minItems": 1 + "description": "NOT ANY rule must pass", + "$ref": "#/definitions/ruleArray" } }, "additionalProperties": false @@ -109,17 +100,14 @@ "type": "object", "properties": { "notAll": { - "type": "array", - "items": { - "$ref": "#/definitions/rule" - }, - "minItems": 1 + "description": "NOT ALL rules must pass", + "$ref": "#/definitions/ruleArray" } }, "additionalProperties": false }, { - "description": "Paramters for matching a feature against", + "description": "ALL properties must pass", "type": "object", "properties": { "geometry": { @@ -137,12 +125,15 @@ ] }, "anyTags": { + "description": "ANY tag/value combination must be present", "$ref": "#/definitions/tags" }, "allTags": { + "description": "ALL tag/value combinations must be present", "$ref": "#/definitions/tags" }, "groups": { + "description": "ALL external groups must pass", "type": "object", "additionalProperties": { "type": "boolean" diff --git a/modules/entities/group_manager.js b/modules/entities/group_manager.js index ea4410a274..23870dc405 100644 --- a/modules/entities/group_manager.js +++ b/modules/entities/group_manager.js @@ -40,9 +40,9 @@ function entityGroup(id, group) { var entityValue = tags[key]; if (typeof val === 'string') { if (!entityValue || (val !== entityValue && val !== '*')) return false; - } else if (Array.isArray(val)) { - if (!entityValue || val.indexOf(entityValue) === -1) return false; } else { + // object like { "value1": boolean } + if (!entityValue || (!val['*'] && !val[entityValue])) return false; if (val[entityValue] === false) return false; } @@ -68,15 +68,15 @@ function entityGroup(id, group) { if (rule.geometry !== geometry) return false; } } - + var ruleKey; if (rule.allTags) { - for (var ruleKey in rule.allTags) { + for (ruleKey in rule.allTags) { if (!matchesTagComponent(ruleKey, rule.allTags)) return false; } } if (rule.anyTags) { var didMatch = false; - for (var ruleKey in rule.anyTags) { + for (ruleKey in rule.anyTags) { if (matchesTagComponent(ruleKey, rule.anyTags)) { didMatch = true; break; From 6eaba0c9177bac180defb10c23dbdbff8de821fa Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Thu, 13 Jun 2019 16:45:42 -0400 Subject: [PATCH 076/774] Fix code tests --- data/presets/groups.json | 6 +++--- .../groups/toggleable/building_parts.json | 1 - data/presets/groups/toggleable/buildings.json | 8 +++++++- .../presets/groups/toggleable/past_future.json | 5 +++++ modules/entities/group_manager.js | 17 ++++++++++++----- modules/renderer/features.js | 18 ------------------ 6 files changed, 27 insertions(+), 28 deletions(-) diff --git a/data/presets/groups.json b/data/presets/groups.json index 9842570d5f..511d5fe0b2 100644 --- a/data/presets/groups.json +++ b/data/presets/groups.json @@ -2,11 +2,11 @@ "groups": { "toggleable/aerialways": {"name": "Aerial Features", "description": "Chair Lifts, Gondolas, Zip Lines, etc.", "toggleable": true, "matches": {"allTags": {"aerialway": {"*": true, "no": false, "yes": false, "station": false}}}}, "toggleable/boundaries": {"name": "Boundaries", "description": "Administrative Boundaries", "toggleable": {"hiddenByDefault": true}, "matches": {"geometry": ["line", "area", "relation"], "allTags": {"boundary": {"*": true, "no": false}}, "groups": {"toggleable/traffic_roads": false, "toggleable/service_roads": false, "toggleable/paths": false, "toggleable/water": false, "toggleable/pistes": false, "toggleable/railway": false, "toggleable/landuse": false, "toggleable/building": false, "toggleable/power": false}}}, - "toggleable/building_parts": {"name": "Building Parts", "description": "3D Building and Roof Components", "toggleable": true, "matches": {"geometry": "area", "allTags": {"building:part": {"*": true, "no": false}}}}, - "toggleable/buildings": {"name": "Buildings", "description": "Houses, Shelters, Garages, etc.", "toggleable": {"maxShown": 250}, "matches": {"geometry": "area", "allTags": {"building": {"*": true, "no": false}}}}, + "toggleable/building_parts": {"name": "Building Parts", "description": "3D Building and Roof Components", "toggleable": true, "matches": {"allTags": {"building:part": {"*": true, "no": false}}}}, + "toggleable/buildings": {"name": "Buildings", "description": "Houses, Shelters, Garages, etc.", "toggleable": {"maxShown": 250}, "matches": {"geometry": "area", "anyTags": {"building": {"*": true, "no": false}, "parking": {"multi-storey": true, "sheds": true, "carports": true, "garage_boxes": true}}}}, "toggleable/indoor": {"name": "Indoor Features", "description": "Rooms, Corridors, Stairwells, etc.", "toggleable": true, "matches": {"allTags": {"indoor": {"*": true, "no": false}}}}, "toggleable/landuse": {"name": "Landuse Features", "description": "Forests, Farmland, Parks, Residential, Commercial, etc.", "toggleable": true, "matches": {"geometry": "area", "groups": {"toggleable/buildings": false, "toggleable/building_parts": false, "toggleable/paths": false, "toggleable/indoor": false, "toggleable/water": false, "toggleable/pistes": false}}}, - "toggleable/past_future": {"name": "Past/Future Features", "description": "Proposed, Construction, Abandoned, Demolished, etc.", "toggleable": true, "matches": {"anyTags": {"*": {"proposed": true, "construction": true, "abandoned": true, "dismantled": true, "disused": true, "razed": true, "demolished": true, "obliterated": true}, "proposed": "*", "construction": "*", "abandoned": "*", "dismantled": "*", "disused": "*", "razed": "*", "demolished": "*", "obliterated": "*"}}}, + "toggleable/past_future": {"name": "Past/Future Features", "description": "Proposed, Construction, Abandoned, Demolished, etc.", "toggleable": true, "matches": {"anyTags": {"*": {"proposed": true, "construction": true, "abandoned": true, "dismantled": true, "disused": true, "razed": true, "demolished": true, "obliterated": true}, "proposed": "*", "construction": "*", "abandoned": "*", "dismantled": "*", "disused": "*", "razed": "*", "demolished": "*", "obliterated": "*"}, "groups": {"toggleable/paths": false, "toggleable/traffic_roads": false, "toggleable/service_roads": false}}}, "toggleable/paths": {"name": "Paths", "description": "Sidewalks, Foot Paths, Cycle Paths, etc.", "toggleable": true, "matches": {"geometry": ["line", "area"], "allTags": {"highway": {"path": true, "footway": true, "cycleway": true, "bridleway": true, "pedestrian": true, "corridor": true, "steps": true}}}}, "toggleable/pistes": {"name": "Pistes", "description": "Ski Slopes, Sled Runs, Ice Skating Trails, etc.", "toggleable": true, "matches": {"allTags": {"piste:type": {"*": true, "no": false}}}}, "toggleable/points": {"name": "Points", "description": "Points of Interest", "toggleable": {"maxShown": 200}, "matches": {"geometry": "point"}}, diff --git a/data/presets/groups/toggleable/building_parts.json b/data/presets/groups/toggleable/building_parts.json index eb649271a8..0ea0ae9348 100644 --- a/data/presets/groups/toggleable/building_parts.json +++ b/data/presets/groups/toggleable/building_parts.json @@ -3,7 +3,6 @@ "description": "3D Building and Roof Components", "toggleable": true, "matches": { - "geometry": "area", "allTags": { "building:part": { "*": true, diff --git a/data/presets/groups/toggleable/buildings.json b/data/presets/groups/toggleable/buildings.json index 9ac91019ed..e547ac7e9b 100644 --- a/data/presets/groups/toggleable/buildings.json +++ b/data/presets/groups/toggleable/buildings.json @@ -6,10 +6,16 @@ }, "matches": { "geometry": "area", - "allTags": { + "anyTags": { "building": { "*": true, "no": false + }, + "parking": { + "multi-storey": true, + "sheds": true, + "carports": true, + "garage_boxes": true } } } diff --git a/data/presets/groups/toggleable/past_future.json b/data/presets/groups/toggleable/past_future.json index 40f7c70ceb..a03121a1c3 100644 --- a/data/presets/groups/toggleable/past_future.json +++ b/data/presets/groups/toggleable/past_future.json @@ -22,6 +22,11 @@ "razed": "*", "demolished": "*", "obliterated": "*" + }, + "groups": { + "toggleable/paths": false, + "toggleable/traffic_roads": false, + "toggleable/service_roads": false } } } diff --git a/modules/entities/group_manager.js b/modules/entities/group_manager.js index 23870dc405..71f00c2a9b 100644 --- a/modules/entities/group_manager.js +++ b/modules/entities/group_manager.js @@ -33,21 +33,28 @@ function entityGroup(id, group) { return matchesRule(group.matches); function matchesTagComponent(ruleKey, tagComponent) { - var keysToCheck = ruleKey === '*' ? Object.keys(tags) : [ruleKey]; + var keysToCheck = [ruleKey]; + if (ruleKey === '*') { + // check if any key has one of the tag values + keysToCheck = Object.keys(tags); + + if (keysToCheck.length === 0) return false; + } var val = tagComponent[ruleKey]; for (var i in keysToCheck) { var key = keysToCheck[i]; var entityValue = tags[key]; if (typeof val === 'string') { - if (!entityValue || (val !== entityValue && val !== '*')) return false; + if (!entityValue || (val !== entityValue && val !== '*')) continue; } else { // object like { "value1": boolean } - if (!entityValue || (!val['*'] && !val[entityValue])) return false; - if (val[entityValue] === false) return false; + if (!entityValue || (!val['*'] && !val[entityValue])) continue; + if (val[entityValue] === false) continue; } + return true; } - return true; + return false; } function matchesRule(rule) { diff --git a/modules/renderer/features.js b/modules/renderer/features.js index f419edc18a..8bb1c85e59 100644 --- a/modules/renderer/features.js +++ b/modules/renderer/features.js @@ -70,24 +70,6 @@ export function rendererFeatures(context) { defineRule(group.basicID(), group.matchesTags, group.localizedName(), group.localizedDescription(), group.toggleableMax()); } - - // contains a past/future tag, but not in active use as a road/path/cycleway/etc.. - /*defineRule('past_future', function isPastFuture(tags) { - if ( - traffic_roads[tags.highway] || - service_roads[tags.highway] || - paths[tags.highway] - ) { return false; } - - var strings = Object.keys(tags); - - for (var i = 0; i < strings.length; i++) { - var s = strings[i]; - if (past_futures[s] || past_futures[tags[s]]) { return true; } - } - return false; - });*/ - // Lines or areas that don't match another feature filter. // IMPORTANT: The 'others' feature must be the last one defined, // so that code in getMatches can skip this test if `hasMatch = true` From b15bbee2d9be261429d559f4a650197a88480184 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Sun, 16 Jun 2019 18:54:43 -0400 Subject: [PATCH 077/774] Remove deprecated radial menu (re: #3753) --- CONTRIBUTING.md | 2 +- css/80_app.css | 43 +---------- modules/modes/select.js | 26 +------ modules/renderer/map.js | 4 +- modules/ui/index.js | 1 - modules/ui/intro/helper.js | 3 +- modules/ui/radial_menu.js | 149 ------------------------------------- 7 files changed, 8 insertions(+), 220 deletions(-) delete mode 100644 modules/ui/radial_menu.js diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 955cae367f..e91d6cb967 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -338,7 +338,7 @@ always, indented by the level of the tree: Just like HTML and JavaScript, 4 space soft tabs always. ```css -.radial-menu-tooltip { +.menu-tooltip { background: rgba(255, 255, 255, 0.8); } ``` diff --git a/css/80_app.css b/css/80_app.css index 4b9f306bda..112aa325e4 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -77,8 +77,7 @@ ul li { } a, -button, -.radial-menu-item { +button { cursor: pointer; } @@ -5595,46 +5594,6 @@ li.hide + li.version .badge .tooltip .tooltip-arrow { } -/* Contextual Radial Menu (deprecated) -------------------------------------------------------- */ -.radial-menu-tooltip { - opacity: 0.8; - display: none; - position: absolute; - width: 200px; -} - -.radial-menu-background { - fill: none; - stroke: black; - stroke-opacity: 0.5; -} - -.radial-menu-item circle { - fill: #eee; -} - -.radial-menu-item circle:active, -.radial-menu-item circle:hover { - fill: #fff; -} - -.radial-menu-item.disabled circle { - cursor: auto; - fill: rgba(255,255,255,.5); -} - -.radial-menu-item use { - fill: #222; - color: #79f; -} - -.radial-menu-item.disabled use { - fill: rgba(32,32,32,.5); - color: rgba(40,40,40,.5); -} - - /* Contextual Edit Menu ------------------------------------------------------- */ .edit-menu-tooltip { diff --git a/modules/modes/select.js b/modules/modes/select.js index c05d1b25ff..bd035c07e9 100644 --- a/modules/modes/select.js +++ b/modules/modes/select.js @@ -25,9 +25,6 @@ import { utilEntitySelector, utilKeybinding } from '../util'; -// deprecation warning - Radial Menu to be removed in iD v3 -import { uiRadialMenu } from '../ui/radial_menu'; - var _relatedParent; @@ -170,13 +167,8 @@ export function modeSelect(context, selectedIDs) { function toggleMenu() { - // deprecation warning - Radial Menu to be removed in iD v3 - if (d3_select('.edit-menu, .radial-menu').empty()) { - positionMenu(); - showMenu(); - } else { - closeMenu(); - } + positionMenu(); + showMenu(); } @@ -247,14 +239,7 @@ export function modeSelect(context, selectedIDs) { // don't allow delete if downgrade is available var lastOperation = !context.inIntro() && downgradeOperation.available() ? downgradeOperation : Operations.operationDelete(selectedIDs, context); - // deprecation warning - Radial Menu to be removed in iD v3 - var isRadialMenu = context.storage('edit-menu-style') === 'radial'; - if (isRadialMenu) { - operations = operations.slice(0,7); - operations.unshift(lastOperation); - } else { - operations.push(lastOperation); - } + operations.push(lastOperation); operations.forEach(function(operation) { if (operation.behavior) { @@ -278,10 +263,7 @@ export function modeSelect(context, selectedIDs) { .call(keybinding); - // deprecation warning - Radial Menu to be removed in iD v3 - editMenu = isRadialMenu - ? uiRadialMenu(context, operations) - : uiEditMenu(context, operations); + editMenu = uiEditMenu(context, operations); context.ui().sidebar .select(singular() ? singular().id : null, _newFeature); diff --git a/modules/renderer/map.js b/modules/renderer/map.js index 7837c3e23f..51c4e841cd 100644 --- a/modules/renderer/map.js +++ b/modules/renderer/map.js @@ -528,8 +528,6 @@ export function rendererMap(context) { function resetTransform() { if (!_isTransformed) return false; - // deprecation warning - Radial Menu to be removed in iD v3 - surface.selectAll('.edit-menu, .radial-menu').interrupt().remove(); utilSetTransform(supersurface, 0, 0); _isTransformed = false; if (context.inIntro()) { @@ -909,7 +907,7 @@ export function rendererMap(context) { map.editableDataEnabled = function() { if (context.history().hasRestorableChanges()) return false; - + var layer = context.layers().layer('osm'); if (!layer || !layer.enabled()) return false; diff --git a/modules/ui/index.js b/modules/ui/index.js index 9615aa057d..3e9d8fbcd8 100644 --- a/modules/ui/index.js +++ b/modules/ui/index.js @@ -50,7 +50,6 @@ export { uiPresetEditor } from './preset_editor'; export { uiPresetIcon } from './preset_icon'; export { uiPresetList } from './preset_list'; export { uiQuickLinks } from './quick_links'; -export { uiRadialMenu } from './radial_menu'; export { uiRawMemberEditor } from './raw_member_editor'; export { uiRawMembershipEditor } from './raw_membership_editor'; export { uiRawTagEditor } from './raw_tag_editor'; diff --git a/modules/ui/intro/helper.js b/modules/ui/intro/helper.js index cb40f49322..d9ba361b83 100644 --- a/modules/ui/intro/helper.js +++ b/modules/ui/intro/helper.js @@ -135,8 +135,7 @@ export function isMostlySquare(points) { export function selectMenuItem(operation) { - var selector = '.edit-menu .edit-menu-item-' + operation + - ', .radial-menu .radial-menu-item-' + operation; + var selector = '.edit-menu .edit-menu-item-' + operation; return d3_select(selector); } diff --git a/modules/ui/radial_menu.js b/modules/ui/radial_menu.js deleted file mode 100644 index ab174f79b2..0000000000 --- a/modules/ui/radial_menu.js +++ /dev/null @@ -1,149 +0,0 @@ -import { - event as d3_event, - select as d3_select -} from 'd3-selection'; - -import { geoVecFloor } from '../geo'; -import { uiTooltipHtml } from './tooltipHtml'; - - -export function uiRadialMenu(context, operations) { - var menu; - var center = [0, 0]; - var tooltip; - - - var radialMenu = function(selection) { - if (!operations.length) return; - - selection.node().parentNode.focus(); - - function click(operation) { - d3_event.stopPropagation(); - if (operation.disabled()) return; - operation(); - radialMenu.close(); - } - - menu = selection - .append('g') - .attr('class', 'radial-menu') - .attr('transform', 'translate(' + center + ')') - .attr('opacity', 0); - - menu - .transition() - .attr('opacity', 1); - - var r = 50; - var a = Math.PI / 4; - var a0 = -Math.PI / 4; - var a1 = a0 + (operations.length - 1) * a; - - menu - .append('path') - .attr('class', 'radial-menu-background') - .attr('d', 'M' + r * Math.sin(a0) + ',' + - r * Math.cos(a0) + - ' A' + r + ',' + r + ' 0 ' + (operations.length > 5 ? '1' : '0') + ',0 ' + - (r * Math.sin(a1) + 1e-3) + ',' + - (r * Math.cos(a1) + 1e-3)) // Force positive-length path (#1305) - .attr('stroke-width', 50) - .attr('stroke-linecap', 'round'); - - var button = menu.selectAll() - .data(operations) - .enter() - .append('g') - .attr('class', function(d) { return 'radial-menu-item radial-menu-item-' + d.id; }) - .classed('disabled', function(d) { return d.disabled(); }) - .attr('transform', function(d, i) { - return 'translate(' + geoVecFloor([ - r * Math.sin(a0 + i * a), - r * Math.cos(a0 + i * a)]).join(',') + ')'; - }); - - button - .append('circle') - .attr('r', 15) - .on('click', click) - .on('mousedown', mousedown) - .on('mouseover', mouseover) - .on('mouseout', mouseout); - - button - .append('use') - .attr('transform', 'translate(-10,-10)') - .attr('width', '20') - .attr('height', '20') - .attr('xlink:href', function(d) { return '#iD-operation-' + d.id; }); - - tooltip = d3_select(document.body) - .append('div') - .attr('class', 'tooltip-inner radial-menu-tooltip'); - - function mousedown() { - d3_event.stopPropagation(); // https://github.com/openstreetmap/iD/issues/1869 - } - - function mouseover(d, i) { - var rect = context.surfaceRect(); - var angle = a0 + i * a; - var top = rect.top + (r + 25) * Math.cos(angle) + center[1] + 'px'; - var left = rect.left + (r + 25) * Math.sin(angle) + center[0] + 'px'; - var bottom = rect.height - (r + 25) * Math.cos(angle) - center[1] + 'px'; - var right = rect.width - (r + 25) * Math.sin(angle) - center[0] + 'px'; - - tooltip - .style('top', null) - .style('left', null) - .style('bottom', null) - .style('right', null) - .style('display', 'block') - .html(uiTooltipHtml(d.tooltip(), d.keys[0])); - - if (i === 0) { - tooltip - .style('right', right) - .style('top', top); - } else if (i >= 4) { - tooltip - .style('left', left) - .style('bottom', bottom); - } else { - tooltip - .style('left', left) - .style('top', top); - } - } - - function mouseout() { - tooltip.style('display', 'none'); - } - }; - - - radialMenu.close = function() { - if (menu) { - menu - .style('pointer-events', 'none') - .transition() - .attr('opacity', 0) - .remove(); - } - - if (tooltip) { - tooltip.remove(); - } - }; - - - radialMenu.center = function(_) { - if (!arguments.length) return center; - center = _; - return radialMenu; - }; - - - return radialMenu; -} From ff8e5bd5d3c7caae9e7f3202c2a5aceddb4a92db Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Mon, 17 Jun 2019 13:43:39 -0400 Subject: [PATCH 078/774] Changelog 2.15.2 --- CHANGELOG.md | 83 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ef2be8b5f9..f4cfe88ec9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -29,6 +29,89 @@ _Breaking changes, which may affect downstream projects or sites that embed iD, [@xxxx]: https://github.com/xxxx --> +# 2.15.2 +##### 2019-Jun-17 + +#### :sparkles: Usability +* Prefer a Wikipedia commons logo over social media logo in some situations ([#6361]) + +[#6361]: https://github.com/openstreetmap/iD/issues/6361 + +#### :white_check_mark: Validation +* Remove issue "autofix" buttons +* Don't suggest adding `nonsquare=yes` to physically unsquare buildings ([#6332]) +* Stop suggesting adding highway=footway to piers, platforms, and tracks ([#6229], [#6409], [#6042]) +* Fix some situations where iD should not suggest adding `highway=crossing` ([#6508]) +* Avoid stale "connect endpoints" fix for "tags imply area" that could cause invalid areas ([#6525]) +* Remove `barrier=entrance` deprecation ([#6506]) +* Improve warning message when updating brand tags ([#6443]) +* Improve checks for valid email and website values ([#6494], thanks [@SilentSpike]) +* Fix issue where crossings with kerb tags were treated primarily as kerbs ([#6440]) +* Fix issue where upgrading `office=administrative` could also remove `building=yes` ([#6466]) +* Fix issue where cuisine -> diet upgrades could overwrite existing values ([#6462]) + +[#6525]: https://github.com/openstreetmap/iD/issues/6525 +[#6508]: https://github.com/openstreetmap/iD/issues/6508 +[#6506]: https://github.com/openstreetmap/iD/issues/6506 +[#6494]: https://github.com/openstreetmap/iD/issues/6494 +[#6466]: https://github.com/openstreetmap/iD/issues/6466 +[#6462]: https://github.com/openstreetmap/iD/issues/6462 +[#6443]: https://github.com/openstreetmap/iD/issues/6443 +[#6440]: https://github.com/openstreetmap/iD/issues/6440 +[#6409]: https://github.com/openstreetmap/iD/issues/6409 +[#6332]: https://github.com/openstreetmap/iD/issues/6332 +[#6229]: https://github.com/openstreetmap/iD/issues/6229 +[#6042]: https://github.com/openstreetmap/iD/issues/6042 +[@SilentSpike]: https://github.com/SilentSpike + + +#### :bug: Bugfixes +* Fix issue with deleting a member from a relation with a duplicate entity but different roles (#6504) +* Fix issue where iD could crash upon save if user had edits stored before iD 2.15 (#6496) + +[#6504]: https://github.com/openstreetmap/iD/issues/6504 +[#6496]: https://github.com/openstreetmap/iD/issues/6496 + +#### :rocket: Presets +* Add presets for `craft=signmaker`, `healthcare=counselling`, `shop=fashion_accessories` +* Remove unnecessary `landuse=military` added on `military=bunker` ([#6509], [#6518], thanks [@matkoniecz]) +* Add Pipeline Valve preset ([#6393]) +* Add Diameter field to Pipeline and Tree presets +* Add additional terms for Mailbox preset ([#6535]) +* Improve public bookcase preset ([#6503], thanks [@ToastHawaii]) +* Deprecate `wifi=yes` and `wifi=free` ([#6524]) +* Lower match score for man_made/bridge preset +* Add presets for Christian places of worship that do not use a cross icon or are not called churches ([#6512]) +* Add preset for `shop=military_surplus` ([#6470]) +* Deprecate various maxspeed mistags ([#6478]) +* Add preset for `office=bail_bond_agent` and deprecate various mistags ([#6472]) +* Deprecate "FIXME" -> "fixme", "NOTE" -> "note" ([#6477]) +* Deprecate some "sustenance" tags +* Change the label "Direction" to "Direction Affected" for vertex fields ([#6469], thanks [@BjornRasmussen]) +* Remove the search term "garage" from parking preset ([#6455], thanks [@BjornRasmussen]) +* Add preset for `military=trench` ([#6474]) +* Add preset for `leisure=escape_game` ([#6447]) +* Update Hackerspace fields + +[#6535]: https://github.com/openstreetmap/iD/issues/6535 +[#6524]: https://github.com/openstreetmap/iD/issues/6524 +[#6518]: https://github.com/openstreetmap/iD/issues/6518 +[#6512]: https://github.com/openstreetmap/iD/issues/6512 +[#6509]: https://github.com/openstreetmap/iD/issues/6509 +[#6503]: https://github.com/openstreetmap/iD/issues/6503 +[#6478]: https://github.com/openstreetmap/iD/issues/6478 +[#6477]: https://github.com/openstreetmap/iD/issues/6477 +[#6474]: https://github.com/openstreetmap/iD/issues/6474 +[#6472]: https://github.com/openstreetmap/iD/issues/6472 +[#6470]: https://github.com/openstreetmap/iD/issues/6470 +[#6469]: https://github.com/openstreetmap/iD/issues/6469 +[#6455]: https://github.com/openstreetmap/iD/issues/6455 +[#6447]: https://github.com/openstreetmap/iD/issues/6447 +[#6393]: https://github.com/openstreetmap/iD/issues/6393 +[@matkoniecz]: https://github.com/matkoniecz +[@BjornRasmussen]: https://github.com/BjornRasmussen + + # 2.15.1 ##### 2019-May-24 From ac106d74ea241a6f8dc885682416d0c7c51e5cfc Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Mon, 17 Jun 2019 14:33:14 -0400 Subject: [PATCH 079/774] Update osm community index to 0.8.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 8bdbac5e16..67532597ae 100644 --- a/package.json +++ b/package.json @@ -79,7 +79,7 @@ "mocha-phantomjs-core": "^2.1.0", "name-suggestion-index": "3.0.4", "npm-run-all": "^4.0.0", - "osm-community-index": "0.7.0", + "osm-community-index": "0.8.0", "phantomjs-prebuilt": "~2.1.11", "request": "^2.88.0", "rollup": "~1.14.6", From 1547013520d9e0cce2b1218804248d4374c035a6 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Mon, 17 Jun 2019 14:39:31 -0400 Subject: [PATCH 080/774] Release from `2.15` branch now, not `master` --- RELEASING.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/RELEASING.md b/RELEASING.md index 16bb8bbec2..73b61e12a3 100644 --- a/RELEASING.md +++ b/RELEASING.md @@ -10,12 +10,12 @@ you'll need to create a Transifex account, ask @bhousel for admin rights on the iD project, and then create this file with contents like
      {"user": "yourusername", "password": "*******"}
This file is not version-controlled and will not be checked in. - + ### Update `iD` -#### Update `master` branch +#### Update `2.15` branch ```bash -$ git checkout master +$ git checkout 2.15 $ rm -rf node_modules/editor-layer-index/ $ npm install $ npm run imagery @@ -30,13 +30,13 @@ $ git add . && git commit -m 'npm run translations' ```bash $ git add . && git commit -m 'vA.B.C' -$ git push origin master +$ git push origin 2.15 ``` #### Update and tag `release` branch ```bash $ git checkout release -$ git reset --hard master +$ git reset --hard 2.15 $ npm run all $ git add -f dist/*.css dist/*.js dist/img/*.svg dist/mapillary-js/ dist/pannellum-streetside/ $ git commit -m 'Check in build' @@ -72,4 +72,4 @@ $ rm -rf vendor/assets/iD/* && vendorer $ git add . && git commit -m 'Update to iD vA.B.C' $ git push osmlab ``` -- [Open a pull request](https://github.com/openstreetmap/openstreetmap-website/compare/master...osmlab:master) using the [markdown text from the changelog](https://raw.githubusercontent.com/openstreetmap/iD/master/CHANGELOG.md) as the description \ No newline at end of file +- [Open a pull request](https://github.com/openstreetmap/openstreetmap-website/compare/master...osmlab:master) using the [markdown text from the changelog](https://raw.githubusercontent.com/openstreetmap/iD/master/CHANGELOG.md) as the description From df8be98d68993213873a07abd2d8ef1b159e8b17 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Mon, 17 Jun 2019 13:07:25 -0400 Subject: [PATCH 081/774] Re-add some icon files --- svg/fontawesome/fas-chess-knight.svg | 2 +- svg/fontawesome/fas-chess-pawn.svg | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/svg/fontawesome/fas-chess-knight.svg b/svg/fontawesome/fas-chess-knight.svg index 12d41b828c..87f45be78c 100644 --- a/svg/fontawesome/fas-chess-knight.svg +++ b/svg/fontawesome/fas-chess-knight.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/svg/fontawesome/fas-chess-pawn.svg b/svg/fontawesome/fas-chess-pawn.svg index cb6492d33d..8386683161 100644 --- a/svg/fontawesome/fas-chess-pawn.svg +++ b/svg/fontawesome/fas-chess-pawn.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file From 1a113c09d3e945dd63c3c19cf4457883e0fa5616 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 18 Jun 2019 11:56:40 -0400 Subject: [PATCH 082/774] Show the preset icon in the assistant when a single feature is selected (close #6027) --- css/80_app.css | 15 ++++++++--- modules/ui/assistant.js | 45 +++++++++++++++++++------------- modules/ui/entity_editor.js | 1 + modules/ui/preset_icon.js | 14 +++++++--- modules/ui/preset_list.js | 6 +++-- modules/ui/tools/add_favorite.js | 1 + modules/ui/tools/add_recent.js | 1 + 7 files changed, 56 insertions(+), 27 deletions(-) diff --git a/css/80_app.css b/css/80_app.css index 112aa325e4..6f769c87aa 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -1030,11 +1030,15 @@ a.hide-toggle { .assistant .icon-col { flex: 0 0 auto; padding: 10px; + padding-bottom: 0; } -.assistant .icon-col .icon { +.assistant .icon-col > .icon { width: 30px; height: 30px; } +.assistant .icon-col > .preset-icon-container { + margin: -5px; +} .assistant .body-col { padding: 10px; } @@ -1050,10 +1054,13 @@ a.hide-toggle { letter-spacing: 0.7px; font-size: 10px; font-weight: bold; + line-height: 1em; + margin-bottom: 3px; } .assistant .subject-title { - font-size: 13px; + font-size: 14px; font-weight: bold; + line-height: normal; } .assistant .body-text { font-size: 12px; @@ -1561,10 +1568,10 @@ a.hide-toggle { height: 100%; transform: scale(0.48); } -.preset-icon-container.small .preset-icon.point-geom .icon { +.preset-icon-container .preset-icon.framed.point-geom .icon { transform: translateY(-7%) scale(0.27); } -.preset-icon-container.small .preset-icon.point-geom.preset-icon-iD .icon { +.preset-icon-container .preset-icon.framed.point-geom.preset-icon-iD .icon { transform: translateY(-9%) scale(0.5); } .preset-icon.framed .icon { diff --git a/modules/ui/assistant.js b/modules/ui/assistant.js index c3403ecee2..e47279e40d 100644 --- a/modules/ui/assistant.js +++ b/modules/ui/assistant.js @@ -8,6 +8,7 @@ import { services } from '../services'; import { utilDisplayLabel } from '../util'; import { uiIntro } from './intro'; import { uiSuccess } from './success'; +import { uiPresetIcon } from './preset_icon'; import { uiFeatureList } from './feature_list'; import { uiSelectionList } from './selection_list'; import { geoRawMercator } from '../geo/raw_mercator'; @@ -60,7 +61,7 @@ export function uiAssistant(context) { if (container.empty()) return; var mode = context.mode(); - if (!mode) return; + if (!mode || !mode.id) return; if (mode.id !== 'browse') { updateDidEditStatus(); @@ -71,7 +72,6 @@ export function uiAssistant(context) { iconCol = iconCol.enter() .append('div') .attr('class', 'icon-col') - .call(svgIcon('#')) .merge(iconCol); var mainCol = header.selectAll('.body-col') @@ -95,32 +95,32 @@ export function uiAssistant(context) { mainCol = mainColEnter.merge(mainCol); - var iconUse = iconCol.selectAll('svg.icon use'), - modeLabel = mainCol.selectAll('.mode-label'), + var modeLabel = mainCol.selectAll('.mode-label'), subjectTitle = mainCol.selectAll('.subject-title'), bodyTextArea = mainCol.selectAll('.body-text'), mainFooter = mainCol.selectAll('.main-footer'); - if (mode.id.indexOf('point') !== -1) { - iconUse.attr('href','#iD-icon-point'); - } else if (mode.id.indexOf('line') !== -1) { - iconUse.attr('href','#iD-icon-line'); - } else if (mode.id.indexOf('area') !== -1) { - iconUse.attr('href','#iD-icon-area'); - } - + iconCol.html(''); body.html(''); bodyTextArea.html(''); mainFooter.html(''); subjectTitle.classed('map-center-location', false); - container.classed('prominent', false); + container.attr('class', 'assistant ' + mode.id); + + if (mode.id.indexOf('point') !== -1) { + iconCol.call(svgIcon('#iD-icon-point')); + } else if (mode.id.indexOf('line') !== -1) { + iconCol.call(svgIcon('#iD-icon-line')); + } else if (mode.id.indexOf('area') !== -1) { + iconCol.call(svgIcon('#iD-icon-area')); + } if (mode.id === 'save') { var summary = context.history().difference().summary(); modeLabel.text(t('assistant.mode.saving')); - iconUse.attr('href','#iD-icon-save'); + iconCol.call(svgIcon('#iD-icon-save')); var titleID = summary.length === 1 ? 'change' : 'changes'; subjectTitle.text(t('commit.' + titleID, { count: summary.length })); @@ -155,16 +155,24 @@ export function uiAssistant(context) { var selectedIDs = mode.selectedIDs(); - iconUse.attr('href','#fas-edit'); modeLabel.text(t('assistant.mode.editing')); if (selectedIDs.length === 1) { var id = selectedIDs[0]; var entity = context.entity(id); + var geometry = entity.geometry(context.graph()); + var preset = context.presets().match(entity, context.graph()); subjectTitle.text(utilDisplayLabel(entity, context)); + iconCol.call(uiPresetIcon(context) + .geometry(geometry) + .preset(preset) + .sizeClass('small') + .pointMarker(false)); + } else { + iconCol.call(svgIcon('#fas-edit')); subjectTitle.text(t('assistant.feature_count.multiple', { count: selectedIDs.length.toString() })); var selectionList = uiSelectionList(context, selectedIDs); @@ -178,7 +186,7 @@ export function uiAssistant(context) { if (savedChangeset) { drawSaveSuccessScreen(); } else { - iconUse.attr('href','#' + greetingIcon()); + iconCol.call(svgIcon('#' + greetingIcon())); subjectTitle.text(t('assistant.greetings.' + greetingTimeframe())); if (context.history().hasRestorableChanges()) { @@ -206,7 +214,7 @@ export function uiAssistant(context) { } } else { - iconUse.attr('href','#fas-map-marked-alt'); + iconCol.call(svgIcon('#fas-map-marked-alt')); modeLabel.text(t('assistant.mode.mapping')); @@ -234,7 +242,7 @@ export function uiAssistant(context) { } else { savedIcon = 'laugh-beam'; } - iconUse.attr('href','#fas-' + savedIcon); + iconCol.call(svgIcon('#fas-' + savedIcon)); bodyTextArea.html( '' + t('assistant.commit.success.just_improved', { location: currLocation }) + '' + @@ -314,6 +322,7 @@ export function uiAssistant(context) { mainFooter.append('button') .attr('class', 'primary') .on('click', function() { + updateDidEditStatus(); context.history().restore(); redraw(); }) diff --git a/modules/ui/entity_editor.js b/modules/ui/entity_editor.js index 3e0f814121..b3fff4ee93 100644 --- a/modules/ui/entity_editor.js +++ b/modules/ui/entity_editor.js @@ -170,6 +170,7 @@ export function uiEntityEditor(context) { .call(uiPresetIcon(context) .geometry(context.geometry(_entityID)) .preset(_activePreset) + .pointMarker(false) ); // NOTE: split on en-dash, not a hypen (to avoid conflict with hyphenated names) diff --git a/modules/ui/preset_icon.js b/modules/ui/preset_icon.js index 70ad9984f4..ed819803ad 100644 --- a/modules/ui/preset_icon.js +++ b/modules/ui/preset_icon.js @@ -4,7 +4,7 @@ import { svgIcon, svgTagClasses } from '../svg'; import { utilFunctor } from '../util'; export function uiPresetIcon(context) { - var preset, geometry, sizeClass = 'medium'; + var preset, geometry, sizeClass = 'medium', pointMarker = true; function isSmall() { return sizeClass === 'small'; @@ -209,12 +209,12 @@ export function uiPresetIcon(context) { var isTnp = picon && /^tnp-/.test(picon); var isiDIcon = picon && !(isMaki || isTemaki || isFa || isTnp); var isCategory = !p.setTags; - var drawPoint = picon && geom === 'point' && isSmall() && !isFallback; + var drawPoint = picon && geom === 'point' && pointMarker && !isFallback; var drawVertex = picon !== null && geom === 'vertex' && (!isSmall() || !isFallback); var drawLine = picon && geom === 'line' && !isFallback && !isCategory; var drawArea = picon && geom === 'area' && !isFallback; var drawRoute = picon && geom === 'route'; - var isFramed = (drawVertex || drawArea || drawLine || drawRoute); + var isFramed = (drawPoint || drawVertex || drawArea || drawLine || drawRoute); var tags = !isCategory ? p.setTags({}, geom) : {}; for (var k in tags) { @@ -378,5 +378,13 @@ export function uiPresetIcon(context) { return presetIcon; }; + + presetIcon.pointMarker = function(val) { + if (!arguments.length) return pointMarker; + pointMarker = val; + return presetIcon; + }; + + return presetIcon; } diff --git a/modules/ui/preset_list.js b/modules/ui/preset_list.js index b999bcd932..3970711c28 100644 --- a/modules/ui/preset_list.js +++ b/modules/ui/preset_list.js @@ -294,7 +294,8 @@ export function uiPresetList(context) { .classed('expanded', false) .call(uiPresetIcon(context) .geometry(context.geometry(_entityID)) - .preset(preset)) + .preset(preset) + .pointMarker(false)) .on('click', click) .on('keydown', function() { // right arrow, expand the focused item @@ -382,7 +383,8 @@ export function uiPresetList(context) { .attr('class', 'preset-list-button') .call(uiPresetIcon(context) .geometry(context.geometry(_entityID)) - .preset(preset)) + .preset(preset) + .pointMarker(false)) .on('click', item.choose) .on('keydown', itemKeydown); diff --git a/modules/ui/tools/add_favorite.js b/modules/ui/tools/add_favorite.js index c3c5028e5a..896e74c56e 100644 --- a/modules/ui/tools/add_favorite.js +++ b/modules/ui/tools/add_favorite.js @@ -164,6 +164,7 @@ export function uiToolAddFavorite(context) { .geometry((d.geometry === 'point' && !d.preset.matchGeometry(d.geometry)) ? 'vertex' : d.geometry) .preset(d.preset) .sizeClass('small') + .pointMarker(true) ); }); diff --git a/modules/ui/tools/add_recent.js b/modules/ui/tools/add_recent.js index d201734f7b..5200e79adf 100644 --- a/modules/ui/tools/add_recent.js +++ b/modules/ui/tools/add_recent.js @@ -201,6 +201,7 @@ export function uiToolAddRecent(context) { .geometry((d.geometry === 'point' && !d.preset.matchGeometry(d.geometry)) ? 'vertex' : d.geometry) .preset(d.preset) .sizeClass('small') + .pointMarker(true) ); }); From cf2935576511a1b9f5aac47407ed2b0ce803902a Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 18 Jun 2019 14:24:29 -0400 Subject: [PATCH 083/774] Highlight relation members in yellow when a relation is selected, including in a multi-selection (close #5766) --- css/20_map.css | 8 ++++++++ modules/modes/select.js | 14 ++++++++++---- modules/util/index.js | 1 + modules/util/util.js | 26 ++++++++++++++++++++++++++ 4 files changed, 45 insertions(+), 4 deletions(-) diff --git a/css/20_map.css b/css/20_map.css index 1c89fb5883..8ae3ce29ba 100644 --- a/css/20_map.css +++ b/css/20_map.css @@ -292,6 +292,14 @@ g.point.tag-wikidata path.stroke { } +/* Selected Members */ +g.vertex.selected-member .shadow, +g.point.selected-member .shadow, +path.shadow.selected-member { + stroke-opacity: 0.95; + stroke: #FFDE70; +} + /* Highlighting */ g.point.highlighted .shadow, path.shadow.highlighted { diff --git a/modules/modes/select.js b/modules/modes/select.js index bd035c07e9..8912093ffb 100644 --- a/modules/modes/select.js +++ b/modules/modes/select.js @@ -21,8 +21,8 @@ import * as Operations from '../operations/index'; import { uiEditMenu } from '../ui/edit_menu'; import { uiCmd } from '../ui/cmd'; import { - utilArrayIntersection, utilEntityOrMemberSelector, - utilEntitySelector, utilKeybinding + utilArrayIntersection, utilEntityOrDeepMemberSelector, + utilEntitySelector, utilDeepMemberSelector, utilKeybinding } from '../util'; @@ -349,7 +349,6 @@ export function modeSelect(context, selectedIDs) { if (entity && context.geometry(entity.id) === 'relation') { _suppressMenu = true; - return; } surface.selectAll('.related') @@ -362,7 +361,7 @@ export function modeSelect(context, selectedIDs) { } var selection = context.surface() - .selectAll(utilEntityOrMemberSelector(selectedIDs, context.graph())); + .selectAll(utilEntityOrDeepMemberSelector(selectedIDs, context.graph())); if (selection.empty()) { // Return to browse mode if selected DOM elements have @@ -372,6 +371,9 @@ export function modeSelect(context, selectedIDs) { context.enter(modeBrowse(context)); } } else { + context.surface() + .selectAll(utilDeepMemberSelector(selectedIDs, context.graph())) + .classed('selected-member', true); selection .classed('selected', true); } @@ -517,6 +519,10 @@ export function modeSelect(context, selectedIDs) { surface .on('dblclick.select', null); + surface + .selectAll('.selected-member') + .classed('selected-member', false); + surface .selectAll('.selected') .classed('selected', false); diff --git a/modules/util/index.js b/modules/util/index.js index b7c57d20bd..37e79cb654 100644 --- a/modules/util/index.js +++ b/modules/util/index.js @@ -9,6 +9,7 @@ export { utilArrayUniqBy } from './array'; export { utilAsyncMap } from './util'; export { utilCleanTags } from './clean_tags'; +export { utilDeepMemberSelector } from './util'; export { utilDetect } from './detect'; export { utilDisplayName } from './util'; export { utilDisplayNameForPath } from './util'; diff --git a/modules/util/util.js b/modules/util/util.js index a5bfc25343..999bc01449 100644 --- a/modules/util/util.js +++ b/modules/util/util.js @@ -89,6 +89,32 @@ export function utilEntityOrDeepMemberSelector(ids, graph) { } } +// returns an selector to select entity ids for: +// - deep descendant entityIDs for any of those entities that are relations +export function utilDeepMemberSelector(ids, graph) { + var idsSet = new Set(ids); + var seen = new Set(); + var returners = new Set(); + ids.forEach(collectDeepDescendants); + return utilEntitySelector(Array.from(returners)); + + function collectDeepDescendants(id) { + if (seen.has(id)) return; + seen.add(id); + + if (!idsSet.has(id)) { + returners.add(id); + } + + var entity = graph.hasEntity(id); + if (!entity || entity.type !== 'relation') return; + + entity.members + .map(function(member) { return member.id; }) + .forEach(collectDeepDescendants); // recurse + } +} + // Adds or removes highlight styling for the specified entities export function utilHighlightEntities(ids, highlighted, context) { From 6b512f0ef4e430ff3d13f7a820b589146f7acbd3 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 18 Jun 2019 15:00:13 -0400 Subject: [PATCH 084/774] Let some iD icons be colored by CSS --- css/30_highways.css | 3 +-- css/40_railways.css | 15 -------------- svg/iD-sprite/presets/highway-service.svg | 6 +++--- .../presets/highway-unclassified.svg | 2 +- svg/iD-sprite/presets/railway-abandoned.svg | 18 ++++++++--------- svg/iD-sprite/presets/railway-disused.svg | 20 +++++++++---------- svg/iD-sprite/presets/railway-rail.svg | 2 +- 7 files changed, 25 insertions(+), 41 deletions(-) diff --git a/css/30_highways.css b/css/30_highways.css index 16022ccce9..308f55779c 100644 --- a/css/30_highways.css +++ b/css/30_highways.css @@ -382,8 +382,7 @@ path.line.casing.tag-road { /* service roads */ .preset-icon .icon.tag-highway-service { - color: #fff; - fill: #666; + color: #999; } path.line.stroke.tag-highway-service, path.line.stroke.tag-service { diff --git a/css/40_railways.css b/css/40_railways.css index 2e08618b98..ff5aa095f1 100644 --- a/css/40_railways.css +++ b/css/40_railways.css @@ -1,15 +1,5 @@ /* railways */ -/* defaults */ -.preset-icon .icon.tag-railway.other-line { - color: #fff; - fill: #777; -} -.preset-icon .icon.tag-railway { - color: #555; - fill: #eee; -} - /* lines */ /* narrow widths */ path.line.shadow.tag-railway { @@ -53,11 +43,6 @@ path.line.stroke.tag-railway { } -.preset-icon .icon.tag-railway-disused, -.preset-icon .icon.tag-railway-abandoned { - color: #999; - fill: #eee; -} path.line.casing.tag-railway-disused, path.line.casing.tag-railway-abandoned { stroke: #999; diff --git a/svg/iD-sprite/presets/highway-service.svg b/svg/iD-sprite/presets/highway-service.svg index ec1e6246f8..a3d103d085 100644 --- a/svg/iD-sprite/presets/highway-service.svg +++ b/svg/iD-sprite/presets/highway-service.svg @@ -1,7 +1,7 @@ - - - + + + diff --git a/svg/iD-sprite/presets/highway-unclassified.svg b/svg/iD-sprite/presets/highway-unclassified.svg index 375fc06fe3..f97431e8d6 100644 --- a/svg/iD-sprite/presets/highway-unclassified.svg +++ b/svg/iD-sprite/presets/highway-unclassified.svg @@ -1,5 +1,5 @@ - + diff --git a/svg/iD-sprite/presets/railway-abandoned.svg b/svg/iD-sprite/presets/railway-abandoned.svg index c0b9f05085..59370d0d3c 100644 --- a/svg/iD-sprite/presets/railway-abandoned.svg +++ b/svg/iD-sprite/presets/railway-abandoned.svg @@ -2,14 +2,14 @@ - - - - - - - - + + + + + + + + - + diff --git a/svg/iD-sprite/presets/railway-disused.svg b/svg/iD-sprite/presets/railway-disused.svg index e0b43c1185..d26a93a948 100644 --- a/svg/iD-sprite/presets/railway-disused.svg +++ b/svg/iD-sprite/presets/railway-disused.svg @@ -2,17 +2,17 @@ - - - - - - + + + + + + - - - - + + + + diff --git a/svg/iD-sprite/presets/railway-rail.svg b/svg/iD-sprite/presets/railway-rail.svg index 036b7c561a..e791e07cb3 100644 --- a/svg/iD-sprite/presets/railway-rail.svg +++ b/svg/iD-sprite/presets/railway-rail.svg @@ -1,5 +1,5 @@ - + From db3060b5705b9e181d55d031b2b855905d9c5d07 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 18 Jun 2019 15:19:07 -0400 Subject: [PATCH 085/774] Use "place points" language rather than "trace" for way drawing instructions --- data/core.yaml | 4 ++-- dist/locales/en.json | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/data/core.yaml b/data/core.yaml index 3c3caf6c29..e965f12248 100644 --- a/data/core.yaml +++ b/data/core.yaml @@ -40,9 +40,9 @@ en: instructions: add_point: Click or tap the center of the feature. add_line: Click or tap the starting location. - draw_line: Trace the feature's centerline. + draw_line: Place points along the feature's centerline. add_area: Click or tap any corner of the feature. - draw_area: Trace the feature's outline. + draw_area: Place points along the feature's outline. global_location: Planet Earth greetings: morning: Good Morning diff --git a/dist/locales/en.json b/dist/locales/en.json index aa846ea996..4b1417c9b7 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -50,9 +50,9 @@ "instructions": { "add_point": "Click or tap the center of the feature.", "add_line": "Click or tap the starting location.", - "draw_line": "Trace the feature's centerline.", + "draw_line": "Place points along the feature's centerline.", "add_area": "Click or tap any corner of the feature.", - "draw_area": "Trace the feature's outline." + "draw_area": "Place points along the feature's outline." }, "global_location": "Planet Earth", "greetings": { From 930221abe6959e55647a49f63e69080df8580478 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 18 Jun 2019 16:32:23 -0400 Subject: [PATCH 086/774] Allow undo/redo while adding features (close #6482) --- modules/modes/add_area.js | 10 ++++++++++ modules/modes/add_line.js | 10 ++++++++++ modules/modes/add_point.js | 13 +++++++++++++ modules/ui/top_toolbar.js | 2 ++ 4 files changed, 35 insertions(+) diff --git a/modules/modes/add_area.js b/modules/modes/add_area.js index 4894ce474f..ba13e84495 100644 --- a/modules/modes/add_area.js +++ b/modules/modes/add_area.js @@ -4,6 +4,7 @@ import { actionAddMidpoint } from '../actions/add_midpoint'; import { actionAddVertex } from '../actions/add_vertex'; import { behaviorAddWay } from '../behavior/add_way'; +import { modeBrowse } from './browse'; import { modeDrawArea } from './draw_area'; import { osmNode, osmWay } from '../osm'; @@ -85,13 +86,22 @@ export function modeAddArea(context, mode) { } + function undone() { + context.enter(modeBrowse(context)); + } + + mode.enter = function() { context.install(behavior); + context.history() + .on('undone.add_area', undone); }; mode.exit = function() { context.uninstall(behavior); + context.history() + .on('undone.add_area', null); }; diff --git a/modules/modes/add_line.js b/modules/modes/add_line.js index b354f3a665..4843aee1f0 100644 --- a/modules/modes/add_line.js +++ b/modules/modes/add_line.js @@ -4,6 +4,7 @@ import { actionAddMidpoint } from '../actions/add_midpoint'; import { actionAddVertex } from '../actions/add_vertex'; import { behaviorAddWay } from '../behavior/add_way'; +import { modeBrowse } from './browse'; import { modeDrawLine } from './draw_line'; import { osmNode, osmWay } from '../osm'; @@ -75,13 +76,22 @@ export function modeAddLine(context, mode) { } + function undone() { + context.enter(modeBrowse(context)); + } + + mode.enter = function() { context.install(behavior); + context.history() + .on('undone.add_line', undone); }; mode.exit = function() { context.uninstall(behavior); + context.history() + .on('undone.add_line', null); }; return mode; diff --git a/modules/modes/add_point.js b/modules/modes/add_point.js index 406eb5d2c1..035aea8324 100644 --- a/modules/modes/add_point.js +++ b/modules/modes/add_point.js @@ -13,6 +13,8 @@ export function modeAddPoint(context, mode) { mode.id = 'add-point'; mode.repeatCount = 0; + var baselineGraph = context.graph(); + var behavior = behaviorDraw(context) .tail(t('modes.add_point.tail')) .on('click', add) @@ -83,12 +85,23 @@ export function modeAddPoint(context, mode) { } + function undone() { + if (context.graph() === baselineGraph || mode.repeatCount === 0) { + context.enter(modeBrowse(context)); + } + } + + mode.enter = function() { context.install(behavior); + context.history() + .on('undone.add_point', undone); }; mode.exit = function() { + context.history() + .on('undone.add_point', null); context.uninstall(behavior); }; diff --git a/modules/ui/top_toolbar.js b/modules/ui/top_toolbar.js index 8768cc104c..dec97f1415 100644 --- a/modules/ui/top_toolbar.js +++ b/modules/ui/top_toolbar.js @@ -124,6 +124,8 @@ export function uiTopToolbar(context) { tools.push(repeatAdd); + tools.push(undoRedo); + if (mode.repeatCount > 0) { tools.push(finishDrawing); } else { From df88eb199c9e6ebcd85839f09bac7b5f09707cee Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Thu, 20 Jun 2019 12:44:45 -0400 Subject: [PATCH 087/774] Add Structure tool for quickly toggling bridges and tunnels while drawing highways, railways, and waterways (close #6501) --- build_data.js | 4 +- data/core.yaml | 4 + dist/locales/en.json | 6 + modules/behavior/draw_way.js | 65 ++++------ modules/modes/add_area.js | 19 ++- modules/modes/add_line.js | 28 +++-- modules/modes/add_point.js | 21 +++- modules/modes/draw_area.js | 20 +++- modules/modes/draw_line.js | 25 ++-- modules/osm/tags.js | 32 +++++ modules/ui/tools/repeat_add.js | 6 +- modules/ui/tools/structure.js | 212 +++++++++++++++++++++++++++++++++ modules/ui/top_toolbar.js | 11 +- 13 files changed, 373 insertions(+), 80 deletions(-) create mode 100644 modules/ui/tools/structure.js diff --git a/build_data.js b/build_data.js index 36c4b6517c..2bf4744e39 100644 --- a/build_data.js +++ b/build_data.js @@ -71,7 +71,9 @@ module.exports = function buildData() { }; // The Noun Project icons used - var tnpIcons = {}; + var tnpIcons = { + 'tnp-2009642': {} // car in tunnel + }; // Start clean shell.rm('-f', [ diff --git a/data/core.yaml b/data/core.yaml index e965f12248..3aad11c06a 100644 --- a/data/core.yaml +++ b/data/core.yaml @@ -30,6 +30,10 @@ en: orthogonal: title: Rectangular key: A + structure: + none: + title: None + key: S assistant: mode: adding: Adding diff --git a/dist/locales/en.json b/dist/locales/en.json index 0ada31ffaf..f6f97722ea 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -37,6 +37,12 @@ "title": "Rectangular" }, "key": "A" + }, + "structure": { + "none": { + "title": "None" + }, + "key": "S" } }, "assistant": { diff --git a/modules/behavior/draw_way.js b/modules/behavior/draw_way.js index 6e32494d68..c15209f724 100644 --- a/modules/behavior/draw_way.js +++ b/modules/behavior/draw_way.js @@ -6,7 +6,6 @@ import { import { t } from '../util/locale'; import { actionAddMidpoint } from '../actions/add_midpoint'; import { actionMoveNode } from '../actions/move_node'; -import { actionNoop } from '../actions/noop'; import { behaviorDraw } from './draw'; import { geoChooseEdge, geoHasSelfIntersections } from '../geo'; import { modeBrowse } from '../modes/browse'; @@ -27,20 +26,12 @@ export function behaviorDrawWay(context, wayID, index, mode, startGraph, baselin behavior.hover().initialNodeID(index ? origWay.nodes[index] : (origWay.isClosed() ? origWay.nodes[origWay.nodes.length - 2] : origWay.nodes[origWay.nodes.length - 1])); - var _tempEdits = 0; - var end = osmNode({ loc: context.map().mouseCoordinates() }); - // Push an annotated state for undo to return back to. - // We must make sure to remove this edit later. - context.pauseChangeDispatch(); - context.perform(actionNoop(), annotation); - _tempEdits++; - // Add the drawing node to the graph. - // We must make sure to remove this edit later. - context.perform(_actionAddDrawNode()); - _tempEdits++; + // We must make sure to remove this edit later if drawing is canceled. + context.pauseChangeDispatch(); + context.perform(_actionAddDrawNode(), annotation); context.resumeChangeDispatch(); @@ -101,7 +92,7 @@ export function behaviorDrawWay(context, wayID, index, mode, startGraph, baselin } } - context.replace(actionMoveNode(end.id, loc)); + context.replace(actionMoveNode(end.id, loc), annotation); end = context.entity(end.id); checkGeometry(false); } @@ -213,20 +204,20 @@ export function behaviorDrawWay(context, wayID, index, mode, startGraph, baselin function undone() { + shouldResetOnOff = false; context.pauseChangeDispatch(); - // Undo popped the history back to the initial annotated no-op edit. - _tempEdits = 0; // We will deal with the temp edits here - context.pop(1); // Remove initial no-op edit - if (context.graph() === baselineGraph) { // We've undone back to the beginning + if (context.graph() === baselineGraph || context.graph() === startGraph) { // We've undone back to the beginning // baselineGraph may be behind startGraph if this way was added rather than continued resetToStartGraph(); context.resumeChangeDispatch(); context.enter(modeSelect(context, [wayID])); } else { - // Remove whatever segment was drawn previously and continue drawing + // Remove whatever segment was drawn previously context.pop(1); + context.resumeChangeDispatch(); + // continue drawing context.enter(mode); } } @@ -271,14 +262,14 @@ export function behaviorDrawWay(context, wayID, index, mode, startGraph, baselin .on('undone.draw', undone); }; - + var shouldResetOnOff = true; drawWay.off = function(surface) { // Drawing was interrupted unexpectedly. // This can happen if the user changes modes, // clicks geolocate button, a hashchange event occurs, etc. - if (_tempEdits) { + + if (shouldResetOnOff) { context.pauseChangeDispatch(); - context.pop(_tempEdits); resetToStartGraph(); context.resumeChangeDispatch(); } @@ -327,17 +318,7 @@ export function behaviorDrawWay(context, wayID, index, mode, startGraph, baselin if ((d && d.properties && d.properties.nope) || context.surface().classed('nope')) { return; // can't click here } - - context.pauseChangeDispatch(); - context.pop(_tempEdits); - _tempEdits = 0; - - context.perform( - _actionAddDrawNode(), - annotation - ); - - context.resumeChangeDispatch(); + shouldResetOnOff = false; checkGeometry(false); // finishDraw = false context.enter(mode); }; @@ -348,13 +329,11 @@ export function behaviorDrawWay(context, wayID, index, mode, startGraph, baselin if ((d && d.properties && d.properties.nope) || context.surface().classed('nope')) { return; // can't click here } + shouldResetOnOff = false; context.pauseChangeDispatch(); - context.pop(_tempEdits); - _tempEdits = 0; - context.perform( - _actionAddDrawNode(), + context.replace( actionAddMidpoint({ loc: loc, edge: edge }, end), annotation ); @@ -370,12 +349,11 @@ export function behaviorDrawWay(context, wayID, index, mode, startGraph, baselin if ((d && d.properties && d.properties.nope) || context.surface().classed('nope')) { return; // can't click here } + shouldResetOnOff = false; context.pauseChangeDispatch(); - context.pop(_tempEdits); - _tempEdits = 0; - context.perform( + context.replace( _actionReplaceDrawNode(node), annotation ); @@ -390,15 +368,14 @@ export function behaviorDrawWay(context, wayID, index, mode, startGraph, baselin // If the way has enough nodes to be valid, it's selected. // Otherwise, delete everything and return to browse mode. drawWay.finish = function() { + shouldResetOnOff = false; checkGeometry(true); // finishDraw = true if (context.surface().classed('nope')) { return; // can't click here } context.pauseChangeDispatch(); - context.pop(_tempEdits); - _tempEdits = 0; - + context.pop(1); var way = context.hasEntity(wayID); if (!way || way.isDegenerate()) { drawWay.cancel(); @@ -417,10 +394,8 @@ export function behaviorDrawWay(context, wayID, index, mode, startGraph, baselin // Cancel the draw operation, delete everything, and return to browse mode. drawWay.cancel = function() { + shouldResetOnOff = false; context.pauseChangeDispatch(); - context.pop(_tempEdits); - _tempEdits = 0; - resetToStartGraph(); context.resumeChangeDispatch(); diff --git a/modules/modes/add_area.js b/modules/modes/add_area.js index ba13e84495..0f94fa78ca 100644 --- a/modules/modes/add_area.js +++ b/modules/modes/add_area.js @@ -11,7 +11,6 @@ import { osmNode, osmWay } from '../osm'; export function modeAddArea(context, mode) { mode.id = 'add-area'; - mode.repeatCount = 0; var behavior = behaviorAddWay(context) .tail(t('modes.add_area.tail')) @@ -22,6 +21,21 @@ export function modeAddArea(context, mode) { var defaultTags = { area: 'yes' }; if (mode.preset) defaultTags = mode.preset.setTags(defaultTags, 'area'); + var _repeatAddedFeature = false; + var _repeatCount = 0; + + mode.repeatAddedFeature = function(val) { + if (!arguments.length || val === undefined) return _repeatAddedFeature; + _repeatAddedFeature = val; + return mode; + }; + + mode.repeatCount = function(val) { + if (!arguments.length || val === undefined) return _repeatCount; + _repeatCount = val; + return mode; + }; + function actionClose(wayId) { return function (graph) { @@ -79,9 +93,6 @@ export function modeAddArea(context, mode) { function enterDrawMode(way, startGraph) { var drawMode = modeDrawArea(context, way.id, startGraph, context.graph(), mode.button, mode); - drawMode.repeatAddedFeature = mode.repeatAddedFeature; - drawMode.repeatCount = mode.repeatCount; - drawMode.title = mode.title; context.enter(drawMode); } diff --git a/modules/modes/add_line.js b/modules/modes/add_line.js index 4843aee1f0..f6a574789e 100644 --- a/modules/modes/add_line.js +++ b/modules/modes/add_line.js @@ -11,7 +11,6 @@ import { osmNode, osmWay } from '../osm'; export function modeAddLine(context, mode) { mode.id = 'add-line'; - mode.repeatCount = 0; var behavior = behaviorAddWay(context) .tail(t('modes.add_line.tail')) @@ -19,14 +18,28 @@ export function modeAddLine(context, mode) { .on('startFromWay', startFromWay) .on('startFromNode', startFromNode); - var defaultTags = {}; - if (mode.preset) defaultTags = mode.preset.setTags(defaultTags, 'line'); + mode.defaultTags = {}; + if (mode.preset) mode.defaultTags = mode.preset.setTags(mode.defaultTags, 'line'); + var _repeatAddedFeature = false; + var _repeatCount = 0; + + mode.repeatAddedFeature = function(val) { + if (!arguments.length || val === undefined) return _repeatAddedFeature; + _repeatAddedFeature = val; + return mode; + }; + + mode.repeatCount = function(val) { + if (!arguments.length || val === undefined) return _repeatCount; + _repeatCount = val; + return mode; + }; function start(loc) { var startGraph = context.graph(); var node = osmNode({ loc: loc }); - var way = osmWay({ tags: defaultTags }); + var way = osmWay({ tags: mode.defaultTags }); context.perform( actionAddEntity(node), @@ -41,7 +54,7 @@ export function modeAddLine(context, mode) { function startFromWay(loc, edge) { var startGraph = context.graph(); var node = osmNode({ loc: loc }); - var way = osmWay({ tags: defaultTags }); + var way = osmWay({ tags: mode.defaultTags }); context.perform( actionAddEntity(node), @@ -56,7 +69,7 @@ export function modeAddLine(context, mode) { function startFromNode(node) { var startGraph = context.graph(); - var way = osmWay({ tags: defaultTags }); + var way = osmWay({ tags: mode.defaultTags }); context.perform( actionAddEntity(way), @@ -69,9 +82,6 @@ export function modeAddLine(context, mode) { function enterDrawMode(way, startGraph) { var drawMode = modeDrawLine(context, way.id, startGraph, context.graph(), mode.button, null, mode); - drawMode.repeatAddedFeature = mode.repeatAddedFeature; - drawMode.repeatCount = mode.repeatCount; - drawMode.title = mode.title; context.enter(drawMode); } diff --git a/modules/modes/add_point.js b/modules/modes/add_point.js index 035aea8324..f8cfc6ff7c 100644 --- a/modules/modes/add_point.js +++ b/modules/modes/add_point.js @@ -11,7 +11,6 @@ import { actionAddMidpoint } from '../actions/add_midpoint'; export function modeAddPoint(context, mode) { mode.id = 'add-point'; - mode.repeatCount = 0; var baselineGraph = context.graph(); @@ -26,6 +25,20 @@ export function modeAddPoint(context, mode) { var defaultTags = {}; if (mode.preset) defaultTags = mode.preset.setTags(defaultTags, 'point'); + var _repeatAddedFeature = false; + var _repeatCount = 0; + + mode.repeatAddedFeature = function(val) { + if (!arguments.length) return _repeatAddedFeature; + _repeatAddedFeature = val; + return mode; + }; + + mode.repeatCount = function(val) { + if (!arguments.length) return _repeatCount; + _repeatCount = val; + return mode; + }; function add(loc) { var node = osmNode({ loc: loc, tags: defaultTags }); @@ -70,8 +83,8 @@ export function modeAddPoint(context, mode) { } function didFinishAdding(node) { - if (mode.repeatAddedFeature) { - mode.repeatCount += 1; + if (mode.repeatAddedFeature()) { + _repeatCount += 1; } else { context.enter( modeSelect(context, [node.id]).newFeature(true) @@ -86,7 +99,7 @@ export function modeAddPoint(context, mode) { function undone() { - if (context.graph() === baselineGraph || mode.repeatCount === 0) { + if (context.graph() === baselineGraph || _repeatCount === 0) { context.enter(modeBrowse(context)); } } diff --git a/modules/modes/draw_area.js b/modules/modes/draw_area.js index 7a284abf68..38d211c03d 100644 --- a/modules/modes/draw_area.js +++ b/modules/modes/draw_area.js @@ -1,17 +1,21 @@ import { t } from '../util/locale'; import { behaviorDrawWay } from '../behavior/draw_way'; import { modeSelect } from './select'; +import { utilDisplayLabel } from '../util'; export function modeDrawArea(context, wayID, startGraph, baselineGraph, button, addMode) { var mode = { button: button, - id: 'draw-area' + id: 'draw-area', + title: (addMode && addMode.title) || utilDisplayLabel(context.entity(wayID), context) }; - var behavior; + mode.addMode = addMode; mode.wayID = wayID; + var behavior; + mode.enter = function() { var way = context.entity(wayID); @@ -39,11 +43,17 @@ export function modeDrawArea(context, wayID, startGraph, baselineGraph, button, context.uninstall(behavior); }; + mode.repeatCount = function(val) { + if (addMode) return addMode.repeatCount(val); + }; + + mode.repeatAddedFeature = function(val) { + if (addMode) return addMode.repeatAddedFeature(val); + }; mode.didFinishAdding = function() { - if (mode.repeatAddedFeature) { - addMode.repeatAddedFeature = mode.repeatAddedFeature; - addMode.repeatCount += 1; + if (mode.repeatAddedFeature()) { + addMode.repeatCount(addMode.repeatCount() + 1); context.enter(addMode); } else { diff --git a/modules/modes/draw_line.js b/modules/modes/draw_line.js index 6fa48a889e..fcc1d790d2 100644 --- a/modules/modes/draw_line.js +++ b/modules/modes/draw_line.js @@ -7,15 +7,17 @@ export function modeDrawLine(context, wayID, startGraph, baselineGraph, button, var mode = { button: button, id: 'draw-line', - title: utilDisplayLabel(context.entity(wayID), context) + title: (addMode && addMode.title) || utilDisplayLabel(context.entity(wayID), context) }; - var behavior; + mode.addMode = addMode; mode.wayID = wayID; mode.isContinuing = !!affix; + var behavior; + mode.enter = function() { var way = context.entity(wayID); var index = (affix === 'prefix') ? 0 : undefined; @@ -41,12 +43,18 @@ export function modeDrawLine(context, wayID, startGraph, baselineGraph, button, context.uninstall(behavior); }; + mode.repeatCount = function(val) { + if (addMode) return addMode.repeatCount(val); + }; + + mode.repeatAddedFeature = function(val) { + if (addMode) return addMode.repeatAddedFeature(val); + }; mode.didFinishAdding = function() { - if (mode.repeatAddedFeature) { - addMode.repeatAddedFeature = mode.repeatAddedFeature; - addMode.repeatCount += 1; - context.enter(addMode); + if (mode.repeatAddedFeature()) { + addMode.repeatCount(addMode.repeatCount() + 1); + context.enter(mode.addMode); } else { context.enter(modeSelect(context, [wayID]).newFeature(!mode.isContinuing)); @@ -64,7 +72,10 @@ export function modeDrawLine(context, wayID, startGraph, baselineGraph, button, }; - mode.finish = function() { + mode.finish = function(skipCompletion) { + if (skipCompletion) { + mode.didFinishAdding = function() {}; + } behavior.finish(); }; diff --git a/modules/osm/tags.js b/modules/osm/tags.js index 27c5fd8420..5f97f1bdbc 100644 --- a/modules/osm/tags.js +++ b/modules/osm/tags.js @@ -107,6 +107,38 @@ export var osmRightSideIsInsideTags = { } }; +export var osmTagsAllowingBridges = { + highway: { + motorway: true, trunk: true, primary: true, secondary: true, tertiary: true, residential: true, + motorway_link: true, trunk_link: true, primary_link: true, secondary_link: true, tertiary_link: true, + unclassified: true, road: true, service: true, track: true, living_street: true, bus_guideway: true, + path: true, footway: true, cycleway: true, bridleway: true, pedestrian: true, corridor: true, steps: true, + raceway: true + }, + railway: { + rail: true, light_rail: true, tram: true, subway: true, + monorail: true, funicular: true, miniature: true, narrow_gauge: true, + disused: true, preserved: true, abandoned: true + } +}; +export var osmTagsAllowingTunnels = { + highway: { + motorway: true, trunk: true, primary: true, secondary: true, tertiary: true, residential: true, + motorway_link: true, trunk_link: true, primary_link: true, secondary_link: true, tertiary_link: true, + unclassified: true, road: true, service: true, track: true, living_street: true, bus_guideway: true, + path: true, footway: true, cycleway: true, bridleway: true, pedestrian: true, corridor: true, steps: true, + raceway: true + }, + railway: { + rail: true, light_rail: true, tram: true, subway: true, + monorail: true, funicular: true, miniature: true, narrow_gauge: true, + disused: true, preserved: true, abandoned: true + }, + waterway: { + canal: true, ditch: true, drain: true, river: true, stream: true + } +}; + // "highway" tag values for pedestrian or vehicle right-of-ways that make up the routable network // (does not include `raceway`) export var osmRoutableHighwayTagValues = { diff --git a/modules/ui/tools/repeat_add.js b/modules/ui/tools/repeat_add.js index 5ec1e66bf9..57efeec852 100644 --- a/modules/ui/tools/repeat_add.js +++ b/modules/ui/tools/repeat_add.js @@ -28,7 +28,7 @@ export function uiToolRepeatAdd(context) { button = selection .append('button') .attr('class', 'bar-button wide') - .classed('active', mode.repeatAddedFeature) + .classed('active', mode.repeatAddedFeature()) .attr('tabindex', -1) .call(tooltipBehavior) .on('click', function() { @@ -42,8 +42,8 @@ export function uiToolRepeatAdd(context) { function toggleRepeat() { var mode = context.mode(); - mode.repeatAddedFeature = !mode.repeatAddedFeature; - button.classed('active', mode.repeatAddedFeature); + mode.repeatAddedFeature(!mode.repeatAddedFeature()); + button.classed('active', mode.repeatAddedFeature()); } tool.uninstall = function() { diff --git a/modules/ui/tools/structure.js b/modules/ui/tools/structure.js new file mode 100644 index 0000000000..a330d46d32 --- /dev/null +++ b/modules/ui/tools/structure.js @@ -0,0 +1,212 @@ +import { + select as d3_select, + selectAll as d3_selectAll, +} from 'd3-selection'; + +import { svgIcon } from '../../svg/icon'; +import { t } from '../../util/locale'; +import { uiTooltipHtml } from '../tooltipHtml'; +import { tooltip } from '../../util/tooltip'; +import { osmTagsAllowingBridges, osmTagsAllowingTunnels } from '../../osm/tags'; +import { actionChangeTags } from '../../actions/change_tags'; +import { actionAddEntity } from '../../actions/add_entity'; +import { actionAddVertex } from '../../actions/add_vertex'; +import { modeDrawLine } from '../../modes/draw_line'; +import { osmWay } from '../../osm/way'; + +export function uiToolStructure(context) { + + var key = t('toolbar.structure.key'); + + var tool = { + id: 'structure', + contentClass: 'joined', + label: t('presets.fields.structure.label') + }; + + var items = []; + var structureNone = { + id: 'none', + icon: 'iD-other-line', + label: t('toolbar.structure.none.title'), + tags: {} + }; + var structureBridge = { + id: 'bridge', + icon: 'maki-bridge-15', + label: t('presets.fields.structure.options.bridge'), + tags: { + bridge: 'yes' + } + }; + var structureTunnel = { + id: 'tunnel', + icon: 'tnp-2009642', + label: t('presets.fields.structure.options.tunnel'), + tags: { + tunnel: 'yes' + } + }; + + tool.shouldShow = function() { + items = [ + structureNone + ]; + + var tags = activeTags(); + + function allowsStructure(osmTags) { + for (var key in tags) { + if (osmTags[key] && osmTags[key][tags[key]]) return true; + } + return false; + } + + if (allowsStructure(osmTagsAllowingBridges)) items.push(structureBridge); + if (allowsStructure(osmTagsAllowingTunnels)) items.push(structureTunnel); + + return items.length > 1; + }; + + tool.render = function(selection) { + + var active = activeStructure(); + + var buttons = selection.selectAll('.bar-button') + .data(items) + .enter(); + + buttons + .append('button') + .attr('class', function(d) { + return 'bar-button ' + d.id + ' ' + (d === active ? 'active' : ''); + }) + .attr('tabindex', -1) + .on('click', function(d) { + if (d3_select(this).classed('active')) return; + + setActiveStructure(d); + }) + .each(function(d) { + var tooltipBehavior = tooltip() + .placement('bottom') + .html(true) + .title(uiTooltipHtml(d.label, key)); + d3_select(this) + .call(tooltipBehavior) + .call(svgIcon('#' + d.icon, 'icon-30')); + }); + + context.keybinding() + .on(key, toggleMode, true); + }; + + + function setActiveStructure(d) { + + var tags = Object.assign({}, activeTags()); + + var priorStructure = activeStructure(); + var tagsToRemove = priorStructure.tags; + for (var key in tagsToRemove) { + if (tags[key]) { + delete tags[key]; + } + } + // add tags for structure + Object.assign(tags, d.tags); + + var mode = context.mode(); + if (mode.id === 'add-line') { + mode.defaultTags = tags; + + } else if (mode.id === 'draw-line') { + + if (mode.addMode) mode.addMode.defaultTags = tags; + + var wayID = mode.wayID; + var way = context.hasEntity(wayID); + if (!way) return; + if (way.nodes.length <= 2) { + context.replace( + actionChangeTags(wayID, tags) + ); + } else { + var isLast = mode.activeID() === way.last(); + var splitNodeID = isLast ? way.nodes[way.nodes.length - 2] : way.nodes[1]; + + mode.finish(true); + + var startGraph = context.graph(); + + var newWay = osmWay({ tags: tags }); + context.perform( + actionAddEntity(newWay), + actionAddVertex(newWay.id, splitNodeID) + ); + + context.enter( + modeDrawLine(context, newWay.id, startGraph, context.graph(), mode.button, isLast ? false : 'prefix', mode.addMode) + ); + } + } + + setButtonStates(); + } + + function setButtonStates() { + d3_selectAll('.structure .bar-button.active') + .classed('active', false); + d3_selectAll('.structure .bar-button.' + activeStructure().id) + .classed('active', true); + } + + function activeTags() { + var mode = context.mode(); + if (mode.id === 'add-line') { + return mode.defaultTags; + } else if (mode.id === 'draw-line') { + var way = context.hasEntity(mode.wayID); + return way ? way.tags : {}; + } + return {}; + } + + function activeStructure() { + + var tags = activeTags(); + + function tagsMatchStructure(structure) { + for (var key in structure.tags) { + if (!tags[key] || tags[key] === 'no') return false; + } + return Object.keys(structure.tags).length !== 0; + } + + for (var i in items) { + if (tagsMatchStructure(items[i])) return items[i]; + } + return structureNone; + } + + function toggleMode() { + if (items.length === 0) return; + + var active = activeStructure(); + var index = items.indexOf(active); + if (index === items.length - 1) { + index = 0; + } else { + index += 1; + } + + setActiveStructure(items[index]); + } + + tool.uninstall = function() { + context.keybinding() + .off(key, true); + }; + + return tool; +} diff --git a/modules/ui/top_toolbar.js b/modules/ui/top_toolbar.js index dec97f1415..a6dab6fbe2 100644 --- a/modules/ui/top_toolbar.js +++ b/modules/ui/top_toolbar.js @@ -9,6 +9,7 @@ import { uiToolAddFavorite, uiToolAddRecent, uiToolNotes, uiToolOperation, uiToo import { uiToolSimpleButton } from './tools/simple_button'; import { uiToolWaySegments } from './tools/way_segments'; import { uiToolRepeatAdd } from './tools/repeat_add'; +import { uiToolStructure } from './tools/structure'; export function uiTopToolbar(context) { @@ -20,6 +21,7 @@ export function uiTopToolbar(context) { undoRedo = uiToolUndoRedo(context), save = uiToolSave(context), waySegments = uiToolWaySegments(context), + structure = uiToolStructure(context), repeatAdd = uiToolRepeatAdd(context), deselect = uiToolSimpleButton('deselect', t('toolbar.deselect.title'), 'iD-icon-close', function() { context.enter(modeBrowse(context)); @@ -101,6 +103,11 @@ export function uiTopToolbar(context) { tools.push(sidebarToggle); tools.push('spacer'); + if (mode.id.indexOf('line') !== -1 && structure.shouldShow()) { + tools.push(structure); + tools.push('spacer'); + } + if (mode.id.indexOf('line') !== -1 || mode.id.indexOf('area') !== -1) { tools.push(waySegments); tools.push('spacer'); @@ -108,10 +115,10 @@ export function uiTopToolbar(context) { if (mode.id.indexOf('draw') !== -1) { - tools.push(undoRedo); if (!mode.isContinuing) { tools.push(repeatAdd); } + tools.push(undoRedo); var way = context.hasEntity(mode.wayID); var wayIsDegenerate = way && new Set(way.nodes).size - 1 < (way.isArea() ? 3 : 2); @@ -126,7 +133,7 @@ export function uiTopToolbar(context) { tools.push(undoRedo); - if (mode.repeatCount > 0) { + if (mode.repeatCount() > 0) { tools.push(finishDrawing); } else { tools.push(cancelDrawing); From 4ba1f5e56455f1177f797a4e767c155249ada881 Mon Sep 17 00:00:00 2001 From: J Guthrie Date: Fri, 21 Jun 2019 11:10:12 +0100 Subject: [PATCH 088/774] Rejoin ways if no structure change is made --- modules/ui/tools/structure.js | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/modules/ui/tools/structure.js b/modules/ui/tools/structure.js index a330d46d32..7d41d29b4f 100644 --- a/modules/ui/tools/structure.js +++ b/modules/ui/tools/structure.js @@ -11,9 +11,12 @@ import { osmTagsAllowingBridges, osmTagsAllowingTunnels } from '../../osm/tags'; import { actionChangeTags } from '../../actions/change_tags'; import { actionAddEntity } from '../../actions/add_entity'; import { actionAddVertex } from '../../actions/add_vertex'; +import { actionJoin } from '../../actions/join'; import { modeDrawLine } from '../../modes/draw_line'; import { osmWay } from '../../osm/way'; +import { utilArrayIntersection } from '../../util'; + export function uiToolStructure(context) { var key = t('toolbar.structure.key'); @@ -48,6 +51,8 @@ export function uiToolStructure(context) { } }; + var prevWayID; + tool.shouldShow = function() { items = [ structureNone @@ -126,11 +131,29 @@ export function uiToolStructure(context) { var wayID = mode.wayID; var way = context.hasEntity(wayID); + var prevWay = context.hasEntity(prevWayID); + if (!way) return; if (way.nodes.length <= 2) { context.replace( actionChangeTags(wayID, tags) ); + + // Reload way with updated tags + way = context.hasEntity(wayID); + + if ( + prevWay && + utilArrayIntersection(way.nodes, prevWay.nodes).length > 0 && + JSON.stringify(prevWay.tags) === JSON.stringify(way.tags)) { + + context.perform( + actionJoin([prevWay.id, way.id]) + ); + context.enter( + modeDrawLine(context, prevWay.id, context.graph(), context.graph(), mode.button, false, mode.addMode) + ); + } } else { var isLast = mode.activeID() === way.last(); var splitNodeID = isLast ? way.nodes[way.nodes.length - 2] : way.nodes[1]; @@ -145,6 +168,8 @@ export function uiToolStructure(context) { actionAddVertex(newWay.id, splitNodeID) ); + prevWayID = way.id; + context.enter( modeDrawLine(context, newWay.id, startGraph, context.graph(), mode.button, isLast ? false : 'prefix', mode.addMode) ); From 54d5990f31d5b695bc57f555ab5d00c9e5b1ab92 Mon Sep 17 00:00:00 2001 From: J Guthrie Date: Fri, 21 Jun 2019 11:45:27 +0100 Subject: [PATCH 089/774] Fixed bug where new line connected to existing line would jump to the end of old line when reverting structure --- modules/ui/tools/structure.js | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/modules/ui/tools/structure.js b/modules/ui/tools/structure.js index 7d41d29b4f..5eac724da1 100644 --- a/modules/ui/tools/structure.js +++ b/modules/ui/tools/structure.js @@ -147,12 +147,15 @@ export function uiToolStructure(context) { utilArrayIntersection(way.nodes, prevWay.nodes).length > 0 && JSON.stringify(prevWay.tags) === JSON.stringify(way.tags)) { - context.perform( - actionJoin([prevWay.id, way.id]) - ); - context.enter( - modeDrawLine(context, prevWay.id, context.graph(), context.graph(), mode.button, false, mode.addMode) - ); + var action = actionJoin([prevWay.id, way.id]); + + if (!action.disabled(context.graph())) { + context.perform(action); + + context.enter( + modeDrawLine(context, prevWay.id, context.graph(), context.graph(), mode.button, false, mode.addMode) + ); + } } } else { var isLast = mode.activeID() === way.last(); From 7b953f362a8ab06cab00c67d786182af4719d50a Mon Sep 17 00:00:00 2001 From: J Guthrie Date: Fri, 21 Jun 2019 11:57:33 +0100 Subject: [PATCH 090/774] Removed uneeded ArrayIntersection --- modules/ui/tools/structure.js | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/modules/ui/tools/structure.js b/modules/ui/tools/structure.js index 5eac724da1..37edf6762a 100644 --- a/modules/ui/tools/structure.js +++ b/modules/ui/tools/structure.js @@ -15,8 +15,6 @@ import { actionJoin } from '../../actions/join'; import { modeDrawLine } from '../../modes/draw_line'; import { osmWay } from '../../osm/way'; -import { utilArrayIntersection } from '../../util'; - export function uiToolStructure(context) { var key = t('toolbar.structure.key'); @@ -142,10 +140,7 @@ export function uiToolStructure(context) { // Reload way with updated tags way = context.hasEntity(wayID); - if ( - prevWay && - utilArrayIntersection(way.nodes, prevWay.nodes).length > 0 && - JSON.stringify(prevWay.tags) === JSON.stringify(way.tags)) { + if (prevWay && JSON.stringify(prevWay.tags) === JSON.stringify(way.tags)) { var action = actionJoin([prevWay.id, way.id]); From 7014c2cda4ad3e4ac0e649249eaa5d61c07d9012 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Fri, 21 Jun 2019 10:42:54 -0400 Subject: [PATCH 091/774] Select all added entities after drawing in some cases (re: #6563) --- modules/modes/add_area.js | 11 ++++++----- modules/modes/add_line.js | 11 ++++++----- modules/modes/add_point.js | 19 +++++++++---------- modules/modes/draw_area.js | 11 +++++------ modules/modes/draw_line.js | 11 +++++------ modules/ui/top_toolbar.js | 2 +- 6 files changed, 32 insertions(+), 33 deletions(-) diff --git a/modules/modes/add_area.js b/modules/modes/add_area.js index 0f94fa78ca..e54c2637c1 100644 --- a/modules/modes/add_area.js +++ b/modules/modes/add_area.js @@ -22,7 +22,7 @@ export function modeAddArea(context, mode) { if (mode.preset) defaultTags = mode.preset.setTags(defaultTags, 'area'); var _repeatAddedFeature = false; - var _repeatCount = 0; + var _allAddedEntityIDs = []; mode.repeatAddedFeature = function(val) { if (!arguments.length || val === undefined) return _repeatAddedFeature; @@ -30,10 +30,10 @@ export function modeAddArea(context, mode) { return mode; }; - mode.repeatCount = function(val) { - if (!arguments.length || val === undefined) return _repeatCount; - _repeatCount = val; - return mode; + mode.addedEntityIDs = function() { + return _allAddedEntityIDs.filter(function(id) { + return context.hasEntity(id); + }); }; @@ -92,6 +92,7 @@ export function modeAddArea(context, mode) { function enterDrawMode(way, startGraph) { + _allAddedEntityIDs.push(way.id); var drawMode = modeDrawArea(context, way.id, startGraph, context.graph(), mode.button, mode); context.enter(drawMode); } diff --git a/modules/modes/add_line.js b/modules/modes/add_line.js index f6a574789e..625406fe02 100644 --- a/modules/modes/add_line.js +++ b/modules/modes/add_line.js @@ -22,7 +22,7 @@ export function modeAddLine(context, mode) { if (mode.preset) mode.defaultTags = mode.preset.setTags(mode.defaultTags, 'line'); var _repeatAddedFeature = false; - var _repeatCount = 0; + var _allAddedEntityIDs = []; mode.repeatAddedFeature = function(val) { if (!arguments.length || val === undefined) return _repeatAddedFeature; @@ -30,10 +30,10 @@ export function modeAddLine(context, mode) { return mode; }; - mode.repeatCount = function(val) { - if (!arguments.length || val === undefined) return _repeatCount; - _repeatCount = val; - return mode; + mode.addedEntityIDs = function() { + return _allAddedEntityIDs.filter(function(id) { + return context.hasEntity(id); + }); }; function start(loc) { @@ -81,6 +81,7 @@ export function modeAddLine(context, mode) { function enterDrawMode(way, startGraph) { + _allAddedEntityIDs.push(way.id); var drawMode = modeDrawLine(context, way.id, startGraph, context.graph(), mode.button, null, mode); context.enter(drawMode); } diff --git a/modules/modes/add_point.js b/modules/modes/add_point.js index f8cfc6ff7c..bc455361bc 100644 --- a/modules/modes/add_point.js +++ b/modules/modes/add_point.js @@ -26,7 +26,7 @@ export function modeAddPoint(context, mode) { if (mode.preset) defaultTags = mode.preset.setTags(defaultTags, 'point'); var _repeatAddedFeature = false; - var _repeatCount = 0; + var _allAddedEntityIDs = []; mode.repeatAddedFeature = function(val) { if (!arguments.length) return _repeatAddedFeature; @@ -34,10 +34,10 @@ export function modeAddPoint(context, mode) { return mode; }; - mode.repeatCount = function(val) { - if (!arguments.length) return _repeatCount; - _repeatCount = val; - return mode; + mode.addedEntityIDs = function() { + return _allAddedEntityIDs.filter(function(id) { + return context.hasEntity(id); + }); }; function add(loc) { @@ -83,11 +83,10 @@ export function modeAddPoint(context, mode) { } function didFinishAdding(node) { - if (mode.repeatAddedFeature()) { - _repeatCount += 1; - } else { + _allAddedEntityIDs.push(node.id); + if (!mode.repeatAddedFeature()) { context.enter( - modeSelect(context, [node.id]).newFeature(true) + modeSelect(context, mode.addedEntityIDs()).newFeature(true) ); } } @@ -99,7 +98,7 @@ export function modeAddPoint(context, mode) { function undone() { - if (context.graph() === baselineGraph || _repeatCount === 0) { + if (context.graph() === baselineGraph || mode.addedEntityIDs().length === 0) { context.enter(modeBrowse(context)); } } diff --git a/modules/modes/draw_area.js b/modules/modes/draw_area.js index 38d211c03d..b926d864ce 100644 --- a/modules/modes/draw_area.js +++ b/modules/modes/draw_area.js @@ -43,21 +43,20 @@ export function modeDrawArea(context, wayID, startGraph, baselineGraph, button, context.uninstall(behavior); }; - mode.repeatCount = function(val) { - if (addMode) return addMode.repeatCount(val); - }; - mode.repeatAddedFeature = function(val) { if (addMode) return addMode.repeatAddedFeature(val); }; + mode.addedEntityIDs = function() { + if (addMode) return addMode.addedEntityIDs(); + }; + mode.didFinishAdding = function() { if (mode.repeatAddedFeature()) { - addMode.repeatCount(addMode.repeatCount() + 1); context.enter(addMode); } else { - context.enter(modeSelect(context, [wayID]).newFeature(true)); + context.enter(modeSelect(context, mode.addedEntityIDs() || [wayID]).newFeature(true)); } }; diff --git a/modules/modes/draw_line.js b/modules/modes/draw_line.js index fcc1d790d2..6539f27a38 100644 --- a/modules/modes/draw_line.js +++ b/modules/modes/draw_line.js @@ -43,21 +43,20 @@ export function modeDrawLine(context, wayID, startGraph, baselineGraph, button, context.uninstall(behavior); }; - mode.repeatCount = function(val) { - if (addMode) return addMode.repeatCount(val); - }; - mode.repeatAddedFeature = function(val) { if (addMode) return addMode.repeatAddedFeature(val); }; + mode.addedEntityIDs = function() { + if (addMode) return addMode.addedEntityIDs(); + }; + mode.didFinishAdding = function() { if (mode.repeatAddedFeature()) { - addMode.repeatCount(addMode.repeatCount() + 1); context.enter(mode.addMode); } else { - context.enter(modeSelect(context, [wayID]).newFeature(!mode.isContinuing)); + context.enter(modeSelect(context, mode.addedEntityIDs() || [wayID]).newFeature(!mode.isContinuing)); } }; diff --git a/modules/ui/top_toolbar.js b/modules/ui/top_toolbar.js index a6dab6fbe2..72deaa32f5 100644 --- a/modules/ui/top_toolbar.js +++ b/modules/ui/top_toolbar.js @@ -133,7 +133,7 @@ export function uiTopToolbar(context) { tools.push(undoRedo); - if (mode.repeatCount() > 0) { + if (mode.addedEntityIDs() > 0) { tools.push(finishDrawing); } else { tools.push(cancelDrawing); From 504e1e89abacdd2258c688dbfa0bee4e3ccafcd4 Mon Sep 17 00:00:00 2001 From: ToastHawaii Date: Fri, 21 Jun 2019 17:10:25 +0200 Subject: [PATCH 092/774] Add public_bookcase type and address field --- data/presets.yaml | 26 +++++++++++++++++++ data/presets/fields.json | 1 + data/presets/fields/public_bookcase/type.json | 22 ++++++++++++++++ data/presets/presets.json | 2 +- .../presets/amenity/public_bookcase.json | 2 ++ dist/locales/en.json | 16 ++++++++++++ 6 files changed, 68 insertions(+), 1 deletion(-) create mode 100644 data/presets/fields/public_bookcase/type.json diff --git a/data/presets.yaml b/data/presets.yaml index 8771d515e1..25926805d3 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -3027,6 +3027,32 @@ en: name: Public Bookcase # 'terms: library,bookcrossing' terms: '' + public_bookcase/type: + # public_bookcase:type=* + label: Type of public bookcases + options: + # public_bookcase:type=reading_box + reading_box: Reading box + # public_bookcase:type=phone_box + phone_box: Converted cell phone + # public_bookcase:type=wooden_cabinet + wooden_cabinet: Wooden cabinet + # public_bookcase:type=metal_cabinet + metal_cabinet: Metal cabinet with glass doors + # public_bookcase:type=shelf + shelf: Bookcase within a building + # public_bookcase:type=shelter + shelter: Bookcase in a shelter + # public_bookcase:type=glass_cabinet + glass_cabinet: Glass cabinet + # public_bookcase:type=sculpture + sculpture: Special sculpture/Special design + # public_bookcase:type=building + building: Building used exclusively as a bookcase + # public_bookcase:type=movable_cabinet + movable_cabinet: Movable bookcase/Transportable version + # public_bookcase:type=download + download: Downloading books amenity/ranger_station: # amenity=ranger_station name: Ranger Station diff --git a/data/presets/fields.json b/data/presets/fields.json index 0c7daea7ac..aff4ece4f0 100644 --- a/data/presets/fields.json +++ b/data/presets/fields.json @@ -271,6 +271,7 @@ "power": {"key": "power", "type": "typeCombo", "label": "Type"}, "produce": {"key": "produce", "type": "semiCombo", "label": "Produce"}, "product": {"key": "product", "type": "semiCombo", "label": "Products"}, + "public_bookcase/type": {"key": "public_bookcase:type", "type": "typeCombo", "label": "Type of public bookcases", "strings": {"options": {"reading_box": "Reading box", "phone_box": "Converted cell phone", "wooden_cabinet": "Wooden cabinet", "metal_cabinet": "Metal cabinet with glass doors", "shelf": "Bookcase within a building", "shelter": "Bookcase in a shelter", "glass_cabinet": "Glass cabinet", "sculpture": "Special sculpture/Special design", "building": "Building used exclusively as a bookcase", "movable_cabinet": "Movable bookcase/Transportable version", "download": "Downloading books" }}}, "railway": {"key": "railway", "type": "typeCombo", "label": "Type"}, "railway/position": {"key": "railway:position", "type": "text", "placeholder": "Distance to one decimal (123.4)", "label": "Milestone Position"}, "railway/signal/direction": {"key": "railway:signal:direction", "type": "combo", "label": "Direction Affected", "strings": {"options": {"forward": "Forward", "backward": "Backward", "both": "Both / All"}}}, diff --git a/data/presets/fields/public_bookcase/type.json b/data/presets/fields/public_bookcase/type.json new file mode 100644 index 0000000000..b390433402 --- /dev/null +++ b/data/presets/fields/public_bookcase/type.json @@ -0,0 +1,22 @@ +{ + "key": "public_bookcase:type", + "type": "typeCombo", + "label": "Type of public bookcases", + "strings": { + "options": { + "reading_box": "Reading box", + "phone_box": "Converted cell phone", + "wooden_cabinet": "Wooden cabinet", + "metal_cabinet": "Metal cabinet with glass doors", + "shelf": "Bookcase within a building", + "shelter": "Bookcase in a shelter", + "glass_cabinet": "Glass cabinet", + "sculpture": "Special sculpture/Special design", + "building": "Building used exclusively as a bookcase", + "movable_cabinet": "Movable bookcase/Transportable version", + "download": "Downloading books" + } + } +} + + diff --git a/data/presets/presets.json b/data/presets/presets.json index 0ff9685a61..7f7c140862 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -169,7 +169,7 @@ "amenity/pub/lgbtq": {"icon": "maki-beer", "geometry": ["point", "area"], "tags": {"amenity": "pub", "lgbtq": "primary"}, "terms": ["gay pub", "lesbian pub", "lgbtq pub", "lgbt pub", "lgb pub"], "name": "LGBTQ+ Pub"}, "amenity/pub/microbrewery": {"icon": "maki-beer", "geometry": ["point", "area"], "tags": {"amenity": "pub", "microbrewery": "yes"}, "reference": {"key": "microbrewery"}, "terms": ["alcohol", "drink", "dive", "beer", "bier", "booze", "craft brewery", "microbrewery", "small batch brewery"], "name": "Brewpub"}, "amenity/public_bath": {"icon": "maki-water", "fields": ["name", "bath/type", "bath/open_air", "bath/sand_bath", "address", "building_area", "fee"], "moreFields": ["email", "fax", "internet_access", "internet_access/fee", "internet_access/ssid", "opening_hours", "payment_multi_fee", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "public_bath"}, "terms": ["onsen", "foot bath", "hot springs"], "name": "Public Bath"}, - "amenity/public_bookcase": {"icon": "maki-library", "fields": ["name", "operator", "opening_hours", "capacity", "website", "lit"], "moreFields": ["wheelchair", "location", "access_simple", "brand", "email", "phone"], "geometry": ["point", "area"], "terms": ["library", "bookcrossing"], "tags": {"amenity": "public_bookcase"}, "name": "Public Bookcase"}, + "amenity/public_bookcase": {"icon": "maki-library", "fields": ["name", "public_bookcase/type", "operator", "opening_hours", "capacity", "website", "lit"], "moreFields": ["wheelchair", "location", "address", "access_simple", "brand", "email", "phone"], "geometry": ["point", "area"], "terms": ["library", "bookcrossing"], "tags": {"amenity": "public_bookcase"}, "name": "Public Bookcase"}, "amenity/ranger_station": {"icon": "maki-ranger-station", "fields": ["name", "operator", "address", "building_area", "opening_hours"], "moreFields": ["email", "fax", "internet_access", "internet_access/fee", "internet_access/ssid", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["visitor center", "visitor centre", "permit center", "permit centre", "backcountry office", "warden office", "warden center"], "tags": {"amenity": "ranger_station"}, "name": "Ranger Station"}, "amenity/recycling_centre": {"icon": "maki-recycling", "fields": ["name", "operator", "address", "building", "opening_hours", "recycling_accepts"], "moreFields": ["fee", "payment_multi_fee", "website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "terms": ["bottle", "can", "dump", "glass", "garbage", "rubbish", "scrap", "trash"], "tags": {"amenity": "recycling", "recycling_type": "centre"}, "reference": {"key": "recycling_type", "value": "*"}, "name": "Recycling Center"}, "amenity/recycling_container": {"icon": "maki-recycling", "fields": ["operator", "recycling_accepts", "collection_times", "material", "colour"], "moreFields": ["covered", "indoor", "manufacturer"], "geometry": ["point", "area"], "terms": ["bin", "can", "bottle", "glass", "garbage", "rubbish", "scrap", "trash"], "tags": {"amenity": "recycling", "recycling_type": "container"}, "reference": {"key": "amenity", "value": "recycling"}, "name": "Recycling Container"}, diff --git a/data/presets/presets/amenity/public_bookcase.json b/data/presets/presets/amenity/public_bookcase.json index a0ff3350e2..8289dec6ac 100644 --- a/data/presets/presets/amenity/public_bookcase.json +++ b/data/presets/presets/amenity/public_bookcase.json @@ -2,6 +2,7 @@ "icon": "maki-library", "fields": [ "name", + "public_bookcase/type", "operator", "opening_hours", "capacity", @@ -11,6 +12,7 @@ "moreFields": [ "wheelchair", "location", + "address", "access_simple", "brand", "email", diff --git a/dist/locales/en.json b/dist/locales/en.json index f6f97722ea..7a5aa17e4e 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -7947,6 +7947,22 @@ "name": "Transformer", "terms": "" }, + "public_bookcase/type": { + "label": "Type of public bookcases", + "options": { + "reading_box": "Reading box", + "phone_box": "Converted cell phone", + "wooden_cabinet": "Wooden cabinet", + "metal_cabinet": "Metal cabinet with glass doors", + "shelf": "Bookcase within a building", + "shelter": "Bookcase in a shelter", + "glass_cabinet": "Glass cabinet", + "sculpture": "Special sculpture/Special design", + "building": "Building used exclusively as a bookcase", + "movable_cabinet": "Movable bookcase/Transportable version", + "download": "Downloading books" + } + }, "public_transport/platform_point": { "name": "Transit Stop / Platform", "terms": "platform,public transit,public transportation,transit,transportation" From 6c82cd69c4af7f5746f681b41796ba3144a04441 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Fri, 21 Jun 2019 11:22:08 -0400 Subject: [PATCH 093/774] Allow up to 10 recent quick presets in the ribbon, up from 5 --- modules/ui/tools/add_recent.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ui/tools/add_recent.js b/modules/ui/tools/add_recent.js index 5200e79adf..5bf3da4ce6 100644 --- a/modules/ui/tools/add_recent.js +++ b/modules/ui/tools/add_recent.js @@ -39,7 +39,7 @@ export function uiToolAddRecent(context) { function recentsToDraw() { var maxShown = 10; - var maxRecents = 5; + var maxRecents = 10; var favorites = context.presets().getFavorites().slice(0, maxShown); From 63dac2ed8a8ad1189aafd1b8fa14650878ba33f5 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Fri, 21 Jun 2019 12:15:42 -0400 Subject: [PATCH 094/774] Generalize segmented toolbar items into a single reusable class --- modules/ui/tools/segmented.js | 108 +++++++++++++++++++++++++++++++ modules/ui/tools/structure.js | 105 +++++------------------------- modules/ui/tools/way_segments.js | 100 +++++++--------------------- 3 files changed, 148 insertions(+), 165 deletions(-) create mode 100644 modules/ui/tools/segmented.js diff --git a/modules/ui/tools/segmented.js b/modules/ui/tools/segmented.js new file mode 100644 index 0000000000..879d1c85e4 --- /dev/null +++ b/modules/ui/tools/segmented.js @@ -0,0 +1,108 @@ +import { + select as d3_select +} from 'd3-selection'; + +import { svgIcon } from '../../svg/icon'; +import { uiTooltipHtml } from '../tooltipHtml'; +import { tooltip } from '../../util/tooltip'; + +export function uiToolSegemented(context) { + + var tool = { + contentClass: 'joined' + }; + + tool.items = []; + + // populate the items array + tool.loadItems = function() { + // override in subclass + }; + + // set the active item + tool.chooseItem = function(/* item */) { + // override in subclass + }; + + // return the chosen item + tool.activeItem = function() { + // override in subclass + }; + + tool.shouldShow = function() { + tool.loadItems(); + return tool.items.length > 1; + }; + + var container = d3_select(null); + + tool.render = function(selection) { + container = selection; + var active = tool.activeItem(); + + var buttons = selection.selectAll('.bar-button') + .data(tool.items) + .enter(); + + buttons + .append('button') + .attr('class', function(d) { + return 'bar-button ' + d.id + ' ' + (d === active ? 'active' : ''); + }) + .attr('tabindex', -1) + .on('click', function(d) { + if (d3_select(this).classed('active')) return; + + setActiveItem(d); + }) + .each(function(d) { + var tooltipBehavior = tooltip() + .placement('bottom') + .html(true) + .title(uiTooltipHtml(d.label, tool.key)); + d3_select(this) + .call(tooltipBehavior) + .call(svgIcon('#' + d.icon, 'icon-30')); + }); + + if (tool.key) { + context.keybinding() + .on(tool.key, toggleItem, true); + } + }; + + function setActiveItem(d) { + tool.chooseItem(d); + setButtonStates(); + } + + function setButtonStates() { + container.selectAll('.bar-button.active') + .classed('active', false); + container.selectAll('.bar-button.' + tool.activeItem().id) + .classed('active', true); + } + + function toggleItem() { + if (tool.items.length === 0) return; + + var active = tool.activeItem(); + var index = tool.items.indexOf(active); + if (index === tool.items.length - 1) { + index = 0; + } else { + index += 1; + } + + setActiveItem(tool.items[index]); + } + + tool.uninstall = function() { + if (tool.key) { + context.keybinding() + .off(tool.key, true); + } + }; + + return tool; +} diff --git a/modules/ui/tools/structure.js b/modules/ui/tools/structure.js index 37edf6762a..fbf3e9e48c 100644 --- a/modules/ui/tools/structure.js +++ b/modules/ui/tools/structure.js @@ -1,12 +1,5 @@ -import { - select as d3_select, - selectAll as d3_selectAll, -} from 'd3-selection'; - -import { svgIcon } from '../../svg/icon'; +import { uiToolSegemented } from './segmented'; import { t } from '../../util/locale'; -import { uiTooltipHtml } from '../tooltipHtml'; -import { tooltip } from '../../util/tooltip'; import { osmTagsAllowingBridges, osmTagsAllowingTunnels } from '../../osm/tags'; import { actionChangeTags } from '../../actions/change_tags'; import { actionAddEntity } from '../../actions/add_entity'; @@ -17,15 +10,12 @@ import { osmWay } from '../../osm/way'; export function uiToolStructure(context) { - var key = t('toolbar.structure.key'); + var tool = uiToolSegemented(context); - var tool = { - id: 'structure', - contentClass: 'joined', - label: t('presets.fields.structure.label') - }; + tool.id = 'structure'; + tool.label = t('presets.fields.structure.label'); + tool.key = t('toolbar.structure.key'); - var items = []; var structureNone = { id: 'none', icon: 'iD-other-line', @@ -51,8 +41,8 @@ export function uiToolStructure(context) { var prevWayID; - tool.shouldShow = function() { - items = [ + tool.loadItems = function() { + tool.items = [ structureNone ]; @@ -65,51 +55,14 @@ export function uiToolStructure(context) { return false; } - if (allowsStructure(osmTagsAllowingBridges)) items.push(structureBridge); - if (allowsStructure(osmTagsAllowingTunnels)) items.push(structureTunnel); - - return items.length > 1; - }; - - tool.render = function(selection) { - - var active = activeStructure(); - - var buttons = selection.selectAll('.bar-button') - .data(items) - .enter(); - - buttons - .append('button') - .attr('class', function(d) { - return 'bar-button ' + d.id + ' ' + (d === active ? 'active' : ''); - }) - .attr('tabindex', -1) - .on('click', function(d) { - if (d3_select(this).classed('active')) return; - - setActiveStructure(d); - }) - .each(function(d) { - var tooltipBehavior = tooltip() - .placement('bottom') - .html(true) - .title(uiTooltipHtml(d.label, key)); - d3_select(this) - .call(tooltipBehavior) - .call(svgIcon('#' + d.icon, 'icon-30')); - }); - - context.keybinding() - .on(key, toggleMode, true); + if (allowsStructure(osmTagsAllowingBridges)) tool.items.push(structureBridge); + if (allowsStructure(osmTagsAllowingTunnels)) tool.items.push(structureTunnel); }; - - function setActiveStructure(d) { - + tool.chooseItem = function(d) { var tags = Object.assign({}, activeTags()); - var priorStructure = activeStructure(); + var priorStructure = tool.activeItem(); var tagsToRemove = priorStructure.tags; for (var key in tagsToRemove) { if (tags[key]) { @@ -173,16 +126,7 @@ export function uiToolStructure(context) { ); } } - - setButtonStates(); - } - - function setButtonStates() { - d3_selectAll('.structure .bar-button.active') - .classed('active', false); - d3_selectAll('.structure .bar-button.' + activeStructure().id) - .classed('active', true); - } + }; function activeTags() { var mode = context.mode(); @@ -195,7 +139,7 @@ export function uiToolStructure(context) { return {}; } - function activeStructure() { + tool.activeItem = function() { var tags = activeTags(); @@ -206,29 +150,10 @@ export function uiToolStructure(context) { return Object.keys(structure.tags).length !== 0; } - for (var i in items) { - if (tagsMatchStructure(items[i])) return items[i]; + for (var i in tool.items) { + if (tagsMatchStructure(tool.items[i])) return tool.items[i]; } return structureNone; - } - - function toggleMode() { - if (items.length === 0) return; - - var active = activeStructure(); - var index = items.indexOf(active); - if (index === items.length - 1) { - index = 0; - } else { - index += 1; - } - - setActiveStructure(items[index]); - } - - tool.uninstall = function() { - context.keybinding() - .off(key, true); }; return tool; diff --git a/modules/ui/tools/way_segments.js b/modules/ui/tools/way_segments.js index 974446ca47..71bce57562 100644 --- a/modules/ui/tools/way_segments.js +++ b/modules/ui/tools/way_segments.js @@ -1,84 +1,34 @@ -import { - select as d3_select, - selectAll as d3_selectAll, -} from 'd3-selection'; - -import { svgIcon } from '../../svg/icon'; +import { uiToolSegemented } from './segmented'; import { t } from '../../util/locale'; -import { uiTooltipHtml } from '../tooltipHtml'; -import { tooltip } from '../../util/tooltip'; export function uiToolWaySegments(context) { - var key = t('toolbar.segments.key'); - - var tool = { - id: 'way_segments', - contentClass: 'joined', - label: t('toolbar.segments.title') - }; - - function storedSegmentType() { - return context.storage('line-segments') || 'straight'; - } - - function setStoredSegmentType(type) { - context.storage('line-segments', type); - - d3_selectAll('.way-segments .bar-button.active') - .classed('active', false); - d3_selectAll('.way-segments .bar-button.' + type).classed('active', true); - } - - tool.render = function(selection) { - - var waySegmentTypes = [ - { - id: 'straight' - }, - { - id: 'orthogonal' - } - ]; - - var buttons = selection.selectAll('.bar-button') - .data(waySegmentTypes) - .enter(); - - buttons - .append('button') - .attr('class', function(d) { - return 'bar-button ' + d.id + ' ' + (storedSegmentType() === d.id ? 'active' : ''); - }) - .attr('tabindex', -1) - .on('click', function(d) { - if (d3_select(this).classed('active')) return; - - setStoredSegmentType(d.id); - }) - .each(function(d) { - var tooltipBehavior = tooltip() - .placement('bottom') - .html(true) - .title(uiTooltipHtml(t('toolbar.segments.' + d.id + '.title'), key)); - - d3_select(this) - .call(tooltipBehavior) - .call(svgIcon('#iD-segment-' + d.id, 'icon-30')); - }); - - context.keybinding() - .on(key, toggleMode, true); + var tool = uiToolSegemented(context); + + tool.id = 'way_segments'; + tool.label = t('toolbar.segments.title'); + tool.key = t('toolbar.segments.key'); + + tool.items = [ + { + id: 'straight', + icon: 'iD-segment-straight', + label: t('toolbar.segments.straight.title') + }, + { + id: 'orthogonal', + icon: 'iD-segment-orthogonal', + label: t('toolbar.segments.orthogonal.title') + } + ]; + + tool.chooseItem = function(item) { + context.storage('line-segments', item.id); }; - function toggleMode() { - var type = storedSegmentType() === 'orthogonal' ? 'straight' : 'orthogonal'; - setStoredSegmentType(type); - } - - tool.uninstall = function() { - context.keybinding() - .off(key, true); + tool.activeItem = function() { + var id = context.storage('line-segments') || 'straight'; + return tool.items.filter(function(d) { return d.id === id; })[0]; }; return tool; From be81c489293dc9b5db78bc0bdc7d8fb3cdfa3f3b Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Fri, 21 Jun 2019 13:06:20 -0400 Subject: [PATCH 095/774] Refactor toolbar items to call render on each update, not just when first adding an item, in order to avoid stale state --- modules/ui/tools/add_favorite.js | 409 ++++++++++++++-------------- modules/ui/tools/add_feature.js | 15 +- modules/ui/tools/add_recent.js | 416 +++++++++++++++-------------- modules/ui/tools/notes.js | 116 ++++---- modules/ui/tools/operation.js | 30 +-- modules/ui/tools/repeat_add.js | 25 +- modules/ui/tools/save.js | 25 +- modules/ui/tools/segmented.js | 19 +- modules/ui/tools/sidebar_toggle.js | 3 + modules/ui/tools/simple_button.js | 18 +- modules/ui/tools/undo_redo.js | 52 ++-- modules/ui/top_toolbar.js | 10 +- 12 files changed, 588 insertions(+), 550 deletions(-) diff --git a/modules/ui/tools/add_favorite.js b/modules/ui/tools/add_favorite.js index 896e74c56e..e18bbe23cc 100644 --- a/modules/ui/tools/add_favorite.js +++ b/modules/ui/tools/add_favorite.js @@ -35,232 +35,235 @@ export function uiToolAddFavorite(context) { } } + var selection = d3_select(null); - tool.render = function(selection) { - context - .on('enter.editor.favorite', function(entered) { - selection.selectAll('button.add-button') - .classed('active', function(mode) { return entered.button === mode.button; }); - }); - - var debouncedUpdate = _debounce(update, 500, { leading: true, trailing: true }); - - context.map() - .on('move.favorite', debouncedUpdate) - .on('drawn.favorite', debouncedUpdate); - - context - .on('enter.favorite', update) - .presets() - .on('favoritePreset.favorite', update) - .on('recentsChange.favorite', update); - + tool.render = function(sel) { + selection = sel; update(); + }; + function update() { - function update() { + for (var i = 0; i <= 9; i++) { + context.keybinding().off(i.toString()); + } - for (var i = 0; i <= 9; i++) { - context.keybinding().off(i.toString()); - } + var items = context.presets().getFavorites(); - var items = context.presets().getFavorites(); + var modes = items.map(function(d, index) { + var presetName = d.preset.name().split(' – ')[0]; + var markerClass = 'add-preset add-' + d.geometry + ' add-preset-' + presetName.replace(/\s+/g, '_') + + '-' + d.geometry + ' add-' + d.source; // replace spaces with underscores to avoid css interpretation + if (d.preset.isFallback()) { + markerClass += ' add-generic-preset'; + } - var modes = items.map(function(d, index) { - var presetName = d.preset.name().split(' – ')[0]; - var markerClass = 'add-preset add-' + d.geometry + ' add-preset-' + presetName.replace(/\s+/g, '_') - + '-' + d.geometry + ' add-' + d.source; // replace spaces with underscores to avoid css interpretation - if (d.preset.isFallback()) { - markerClass += ' add-generic-preset'; + var supportedGeometry = d.preset.geometry.filter(function(geometry) { + return ['vertex', 'point', 'line', 'area'].indexOf(geometry) !== -1; + }); + var vertexIndex = supportedGeometry.indexOf('vertex'); + if (vertexIndex !== -1 && supportedGeometry.indexOf('point') !== -1) { + // both point and vertex allowed, just combine them + supportedGeometry.splice(vertexIndex, 1); + } + var tooltipTitleID = 'modes.add_preset.title'; + if (supportedGeometry.length !== 1) { + if (d.preset.setTags({}, d.geometry).building) { + tooltipTitleID = 'modes.add_preset.building.title'; + } else { + tooltipTitleID = 'modes.add_preset.' + context.presets().fallback(d.geometry).id + '.title'; } + } + var protoMode = Object.assign({}, d); // shallow copy + protoMode.button = markerClass; + protoMode.title = presetName; + protoMode.description = t(tooltipTitleID, { feature: '' + presetName + '' }); + + var keyCode; + // use number row order: 1 2 3 4 5 6 7 8 9 0 + // use the same for RTL even though the layout is backward: #6107 + if (index === 9) { + keyCode = 0; + } else if (index < 10) { + keyCode = index + 1; + } + if (keyCode !== undefined) { + protoMode.key = keyCode.toString(); + } - var supportedGeometry = d.preset.geometry.filter(function(geometry) { - return ['vertex', 'point', 'line', 'area'].indexOf(geometry) !== -1; - }); - var vertexIndex = supportedGeometry.indexOf('vertex'); - if (vertexIndex !== -1 && supportedGeometry.indexOf('point') !== -1) { - // both point and vertex allowed, just combine them - supportedGeometry.splice(vertexIndex, 1); - } - var tooltipTitleID = 'modes.add_preset.title'; - if (supportedGeometry.length !== 1) { - if (d.preset.setTags({}, d.geometry).building) { - tooltipTitleID = 'modes.add_preset.building.title'; - } else { - tooltipTitleID = 'modes.add_preset.' + context.presets().fallback(d.geometry).id + '.title'; - } - } - var protoMode = Object.assign({}, d); // shallow copy - protoMode.button = markerClass; - protoMode.title = presetName; - protoMode.description = t(tooltipTitleID, { feature: '' + presetName + '' }); - - var keyCode; - // use number row order: 1 2 3 4 5 6 7 8 9 0 - // use the same for RTL even though the layout is backward: #6107 - if (index === 9) { - keyCode = 0; - } else if (index < 10) { - keyCode = index + 1; - } - if (keyCode !== undefined) { - protoMode.key = keyCode.toString(); - } + var mode; + switch (d.geometry) { + case 'point': + case 'vertex': + mode = modeAddPoint(context, protoMode); + break; + case 'line': + mode = modeAddLine(context, protoMode); + break; + case 'area': + mode = modeAddArea(context, protoMode); + } - var mode; - switch (d.geometry) { - case 'point': - case 'vertex': - mode = modeAddPoint(context, protoMode); - break; - case 'line': - mode = modeAddLine(context, protoMode); - break; - case 'area': - mode = modeAddArea(context, protoMode); - } + if (mode.key) { + context.keybinding().off(mode.key); + context.keybinding().on(mode.key, function() { + toggleMode(mode); + }); + } - if (mode.key) { - context.keybinding().off(mode.key); - context.keybinding().on(mode.key, function() { - toggleMode(mode); - }); - } + return mode; + }); + + var buttons = selection.selectAll('button.add-button') + .data(modes, function(d, index) { return d.button + index; }); + + // exit + buttons.exit() + .remove(); + + // enter + var buttonsEnter = buttons.enter() + .append('button') + .attr('tabindex', -1) + .attr('class', function(d) { + return d.button + ' add-button bar-button'; + }) + .on('click.mode-buttons', function(d) { + + // When drawing, ignore accidental clicks on mode buttons - #4042 + if (/^draw/.test(context.mode().id)) return; + + toggleMode(d); + }) + .call(tooltip() + .placement('bottom') + .html(true) + .title(function(d) { return uiTooltipHtml(d.description, d.key); }) + ); - return mode; + buttonsEnter + .each(function(d) { + d3_select(this) + .call(uiPresetIcon(context) + .geometry((d.geometry === 'point' && !d.preset.matchGeometry(d.geometry)) ? 'vertex' : d.geometry) + .preset(d.preset) + .sizeClass('small') + .pointMarker(true) + ); }); - var buttons = selection.selectAll('button.add-button') - .data(modes, function(d, index) { return d.button + index; }); + var dragOrigin, dragMoved, targetIndex; + + buttonsEnter.call(d3_drag() + .on('start', function() { + dragOrigin = { + x: d3_event.x, + y: d3_event.y + }; + targetIndex = null; + dragMoved = false; + }) + .on('drag', function(d, index) { + dragMoved = true; + var x = d3_event.x - dragOrigin.x, + y = d3_event.y - dragOrigin.y; + + if (!d3_select(this).classed('dragging') && + // don't display drag until dragging beyond a distance threshold + Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2)) <= 5) return; + + d3_select(this) + .classed('dragging', true) + .classed('removing', y > 50); + + targetIndex = null; + + selection.selectAll('button.add-preset') + .style('transform', function(d2, index2) { + var node = d3_select(this).node(); + if (index === index2) { + return 'translate(' + x + 'px, ' + y + 'px)'; + } else if (y > 50) { + if (index2 > index) { + return 'translateX(' + (textDirection === 'rtl' ? '' : '-') + '100%)'; + } + } else if (d.source === d2.source) { + if (index2 > index && ( + (d3_event.x > node.offsetLeft && textDirection === 'ltr') || + (d3_event.x < node.offsetLeft + node.offsetWidth && textDirection === 'rtl') + )) { + if (targetIndex === null || index2 > targetIndex) { + targetIndex = index2; + } + return 'translateX(' + (textDirection === 'rtl' ? '' : '-') + '100%)'; + } else if (index2 < index && ( + (d3_event.x < node.offsetLeft + node.offsetWidth && textDirection === 'ltr') || + (d3_event.x > node.offsetLeft && textDirection === 'rtl') + )) { + if (targetIndex === null || index2 < targetIndex) { + targetIndex = index2; + } + return 'translateX(' + (textDirection === 'rtl' ? '-' : '') + '100%)'; + } + } + return null; + }); + }) + .on('end', function(d, index) { - // exit - buttons.exit() - .remove(); + if (dragMoved && !d3_select(this).classed('dragging')) { + toggleMode(d); + return; + } - // enter - var buttonsEnter = buttons.enter() - .append('button') - .attr('tabindex', -1) - .attr('class', function(d) { - return d.button + ' add-button bar-button'; - }) - .on('click.mode-buttons', function(d) { + d3_select(this) + .classed('dragging', false) + .classed('removing', false); - // When drawing, ignore accidental clicks on mode buttons - #4042 - if (/^draw/.test(context.mode().id)) return; + selection.selectAll('button.add-preset') + .style('transform', null); - toggleMode(d); - }) - .call(tooltip() - .placement('bottom') - .html(true) - .title(function(d) { return uiTooltipHtml(d.description, d.key); }) - ); - - buttonsEnter - .each(function(d) { - d3_select(this) - .call(uiPresetIcon(context) - .geometry((d.geometry === 'point' && !d.preset.matchGeometry(d.geometry)) ? 'vertex' : d.geometry) - .preset(d.preset) - .sizeClass('small') - .pointMarker(true) - ); - }); - - var dragOrigin, dragMoved, targetIndex; - - buttonsEnter.call(d3_drag() - .on('start', function() { - dragOrigin = { - x: d3_event.x, - y: d3_event.y - }; - targetIndex = null; - dragMoved = false; - }) - .on('drag', function(d, index) { - dragMoved = true; - var x = d3_event.x - dragOrigin.x, - y = d3_event.y - dragOrigin.y; - - if (!d3_select(this).classed('dragging') && - // don't display drag until dragging beyond a distance threshold - Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2)) <= 5) return; - - d3_select(this) - .classed('dragging', true) - .classed('removing', y > 50); - - targetIndex = null; - - selection.selectAll('button.add-preset') - .style('transform', function(d2, index2) { - var node = d3_select(this).node(); - if (index === index2) { - return 'translate(' + x + 'px, ' + y + 'px)'; - } else if (y > 50) { - if (index2 > index) { - return 'translateX(' + (textDirection === 'rtl' ? '' : '-') + '100%)'; - } - } else if (d.source === d2.source) { - if (index2 > index && ( - (d3_event.x > node.offsetLeft && textDirection === 'ltr') || - (d3_event.x < node.offsetLeft + node.offsetWidth && textDirection === 'rtl') - )) { - if (targetIndex === null || index2 > targetIndex) { - targetIndex = index2; - } - return 'translateX(' + (textDirection === 'rtl' ? '' : '-') + '100%)'; - } else if (index2 < index && ( - (d3_event.x < node.offsetLeft + node.offsetWidth && textDirection === 'ltr') || - (d3_event.x > node.offsetLeft && textDirection === 'rtl') - )) { - if (targetIndex === null || index2 < targetIndex) { - targetIndex = index2; - } - return 'translateX(' + (textDirection === 'rtl' ? '-' : '') + '100%)'; - } - } - return null; - }); - }) - .on('end', function(d, index) { - - if (dragMoved && !d3_select(this).classed('dragging')) { - toggleMode(d); - return; + var y = d3_event.y - dragOrigin.y; + if (y > 50) { + // dragged out of the top bar, remove + if (d.isFavorite()) { + context.presets().removeFavorite(d.preset, d.geometry); + // also remove this as a recent so it doesn't still appear + context.presets().removeRecent(d.preset, d.geometry); } + } else if (targetIndex !== null) { + // dragged to a new position, reorder + if (d.isFavorite()) { + context.presets().moveFavorite(index, targetIndex); + } + } + }) + ); + + // update + buttons = buttons + .merge(buttonsEnter) + .classed('disabled', function(d) { return !enabled(d); }); + } - d3_select(this) - .classed('dragging', false) - .classed('removing', false); + tool.install = function() { + context + .on('enter.editor.favorite', function(entered) { + selection.selectAll('button.add-button') + .classed('active', function(mode) { return entered.button === mode.button; }); + }); - selection.selectAll('button.add-preset') - .style('transform', null); + var debouncedUpdate = _debounce(update, 500, { leading: true, trailing: true }); - var y = d3_event.y - dragOrigin.y; - if (y > 50) { - // dragged out of the top bar, remove - if (d.isFavorite()) { - context.presets().removeFavorite(d.preset, d.geometry); - // also remove this as a recent so it doesn't still appear - context.presets().removeRecent(d.preset, d.geometry); - } - } else if (targetIndex !== null) { - // dragged to a new position, reorder - if (d.isFavorite()) { - context.presets().moveFavorite(index, targetIndex); - } - } - }) - ); + context.map() + .on('move.favorite', debouncedUpdate) + .on('drawn.favorite', debouncedUpdate); - // update - buttons = buttons - .merge(buttonsEnter) - .classed('disabled', function(d) { return !enabled(d); }); - } + context + .on('enter.favorite', update) + .presets() + .on('favoritePreset.favorite', update) + .on('recentsChange.favorite', update); }; tool.uninstall = function() { diff --git a/modules/ui/tools/add_feature.js b/modules/ui/tools/add_feature.js index a37a9da57f..117ee22218 100644 --- a/modules/ui/tools/add_feature.js +++ b/modules/ui/tools/add_feature.js @@ -28,7 +28,10 @@ export function uiToolAddFeature(context) { tool.render = function(selection) { - button = selection + selection + .selectAll('.bar-button') + .data([0]) + .enter() .append('button') .attr('class', 'bar-button wide') .attr('tabindex', -1) @@ -57,8 +60,15 @@ export function uiToolAddFeature(context) { ) .call(svgIcon('#iD-logo-features')); + button = selection.select('.bar-button'); + presetBrowser.render(selection); + updateEnabledState(); + }; + + tool.install = function() { + context.keybinding().on(key, function() { button.classed('active', true); @@ -72,9 +82,6 @@ export function uiToolAddFeature(context) { context.map() .on('move.add-feature-tool', debouncedUpdate) .on('drawn.add-feature-tool', debouncedUpdate); - - updateEnabledState(); - }; tool.uninstall = function() { diff --git a/modules/ui/tools/add_recent.js b/modules/ui/tools/add_recent.js index 5bf3da4ce6..79c74ca2cc 100644 --- a/modules/ui/tools/add_recent.js +++ b/modules/ui/tools/add_recent.js @@ -74,234 +74,236 @@ export function uiToolAddRecent(context) { return recentsToDraw().length > 0; }; - - tool.render = function(selection) { - context - .on('enter.editor.recent', function(entered) { - selection.selectAll('button.add-button') - .classed('active', function(mode) { return entered.button === mode.button; }); - }); - - var debouncedUpdate = _debounce(update, 500, { leading: true, trailing: true }); - - context.map() - .on('move.recent', debouncedUpdate) - .on('drawn.recent', debouncedUpdate); - - context - .on('enter.recent', update) - .presets() - .on('favoritePreset.recent', update) - .on('recentsChange.recent', update); - + var selection = d3_select(null); + tool.render = function(sel) { + selection = sel; update(); + }; + function update() { - function update() { + var items = recentsToDraw(); + var favoritesCount = context.presets().getFavorites().length; - var items = recentsToDraw(); - var favoritesCount = context.presets().getFavorites().length; + var modes = items.map(function(d, index) { + var presetName = d.preset.name().split(' – ')[0]; + var markerClass = 'add-preset add-' + d.geometry + ' add-preset-' + presetName.replace(/\s+/g, '_') + + '-' + d.geometry + ' add-' + d.source; // replace spaces with underscores to avoid css interpretation + if (d.preset.isFallback()) { + markerClass += ' add-generic-preset'; + } - var modes = items.map(function(d, index) { - var presetName = d.preset.name().split(' – ')[0]; - var markerClass = 'add-preset add-' + d.geometry + ' add-preset-' + presetName.replace(/\s+/g, '_') - + '-' + d.geometry + ' add-' + d.source; // replace spaces with underscores to avoid css interpretation - if (d.preset.isFallback()) { - markerClass += ' add-generic-preset'; + var supportedGeometry = d.preset.geometry.filter(function(geometry) { + return ['vertex', 'point', 'line', 'area'].indexOf(geometry) !== -1; + }); + var vertexIndex = supportedGeometry.indexOf('vertex'); + if (vertexIndex !== -1 && supportedGeometry.indexOf('point') !== -1) { + // both point and vertex allowed, just combine them + supportedGeometry.splice(vertexIndex, 1); + } + var tooltipTitleID = 'modes.add_preset.title'; + if (supportedGeometry.length !== 1) { + if (d.preset.setTags({}, d.geometry).building) { + tooltipTitleID = 'modes.add_preset.building.title'; + } else { + tooltipTitleID = 'modes.add_preset.' + context.presets().fallback(d.geometry).id + '.title'; } + } + var protoMode = Object.assign({}, d); // shallow copy + protoMode.button = markerClass; + protoMode.title = presetName; + protoMode.description = t(tooltipTitleID, { feature: '' + presetName + '' }); + + var totalIndex = favoritesCount + index; + var keyCode; + // use number row order: 1 2 3 4 5 6 7 8 9 0 + // use the same for RTL even though the layout is backward: #6107 + if (totalIndex === 9) { + keyCode = 0; + } else if (totalIndex < 10) { + keyCode = totalIndex + 1; + } + if (keyCode !== undefined) { + protoMode.key = keyCode.toString(); + } - var supportedGeometry = d.preset.geometry.filter(function(geometry) { - return ['vertex', 'point', 'line', 'area'].indexOf(geometry) !== -1; - }); - var vertexIndex = supportedGeometry.indexOf('vertex'); - if (vertexIndex !== -1 && supportedGeometry.indexOf('point') !== -1) { - // both point and vertex allowed, just combine them - supportedGeometry.splice(vertexIndex, 1); - } - var tooltipTitleID = 'modes.add_preset.title'; - if (supportedGeometry.length !== 1) { - if (d.preset.setTags({}, d.geometry).building) { - tooltipTitleID = 'modes.add_preset.building.title'; - } else { - tooltipTitleID = 'modes.add_preset.' + context.presets().fallback(d.geometry).id + '.title'; - } - } - var protoMode = Object.assign({}, d); // shallow copy - protoMode.button = markerClass; - protoMode.title = presetName; - protoMode.description = t(tooltipTitleID, { feature: '' + presetName + '' }); - - var totalIndex = favoritesCount + index; - var keyCode; - // use number row order: 1 2 3 4 5 6 7 8 9 0 - // use the same for RTL even though the layout is backward: #6107 - if (totalIndex === 9) { - keyCode = 0; - } else if (totalIndex < 10) { - keyCode = totalIndex + 1; - } - if (keyCode !== undefined) { - protoMode.key = keyCode.toString(); - } + var mode; + switch (d.geometry) { + case 'point': + case 'vertex': + mode = modeAddPoint(context, protoMode); + break; + case 'line': + mode = modeAddLine(context, protoMode); + break; + case 'area': + mode = modeAddArea(context, protoMode); + } - var mode; - switch (d.geometry) { - case 'point': - case 'vertex': - mode = modeAddPoint(context, protoMode); - break; - case 'line': - mode = modeAddLine(context, protoMode); - break; - case 'area': - mode = modeAddArea(context, protoMode); - } + if (mode.key) { + context.keybinding().off(mode.key); + context.keybinding().on(mode.key, function() { + toggleMode(mode); + }); + } - if (mode.key) { - context.keybinding().off(mode.key); - context.keybinding().on(mode.key, function() { - toggleMode(mode); - }); - } + return mode; + }); + + var buttons = selection.selectAll('button.add-button') + .data(modes, function(d, index) { return d.button + index; }); + + // exit + buttons.exit() + .remove(); + + // enter + var buttonsEnter = buttons.enter() + .append('button') + .attr('tabindex', -1) + .attr('class', function(d) { + return d.button + ' add-button bar-button'; + }) + .on('click.mode-buttons', function(d) { + + // When drawing, ignore accidental clicks on mode buttons - #4042 + if (/^draw/.test(context.mode().id)) return; + + toggleMode(d); + }) + .call(tooltip() + .placement('bottom') + .html(true) + .title(function(d) { return uiTooltipHtml(d.description, d.key); }) + ); - return mode; + buttonsEnter + .each(function(d) { + d3_select(this) + .call(uiPresetIcon(context) + .geometry((d.geometry === 'point' && !d.preset.matchGeometry(d.geometry)) ? 'vertex' : d.geometry) + .preset(d.preset) + .sizeClass('small') + .pointMarker(true) + ); }); - var buttons = selection.selectAll('button.add-button') - .data(modes, function(d, index) { return d.button + index; }); - - // exit - buttons.exit() - .remove(); + var dragOrigin, dragMoved, targetIndex, targetData; + + buttonsEnter.call(d3_drag() + .on('start', function() { + dragOrigin = { + x: d3_event.x, + y: d3_event.y + }; + targetIndex = null; + targetData = null; + dragMoved = false; + }) + .on('drag', function(d, index) { + dragMoved = true; + var x = d3_event.x - dragOrigin.x, + y = d3_event.y - dragOrigin.y; + + if (!d3_select(this).classed('dragging') && + // don't display drag until dragging beyond a distance threshold + Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2)) <= 5) return; + + d3_select(this) + .classed('dragging', true) + .classed('removing', y > 50); + + targetIndex = null; + targetData = null; + + selection.selectAll('button.add-preset') + .style('transform', function(d2, index2) { + var node = d3_select(this).node(); + if (index === index2) { + return 'translate(' + x + 'px, ' + y + 'px)'; + } else if (y > 50) { + if (index2 > index) { + return 'translateX(' + (textDirection === 'rtl' ? '' : '-') + '100%)'; + } + } else if (d.source === d2.source) { + if (index2 > index && ( + (d3_event.x > node.offsetLeft && textDirection === 'ltr') || + (d3_event.x < node.offsetLeft + node.offsetWidth && textDirection === 'rtl') + )) { + if (targetIndex === null || index2 > targetIndex) { + targetIndex = index2; + targetData = d2; + } + return 'translateX(' + (textDirection === 'rtl' ? '' : '-') + '100%)'; + } else if (index2 < index && ( + (d3_event.x < node.offsetLeft + node.offsetWidth && textDirection === 'ltr') || + (d3_event.x > node.offsetLeft && textDirection === 'rtl') + )) { + if (targetIndex === null || index2 < targetIndex) { + targetIndex = index2; + targetData = d2; + } + return 'translateX(' + (textDirection === 'rtl' ? '-' : '') + '100%)'; + } + } + return null; + }); + }) + .on('end', function(d) { - // enter - var buttonsEnter = buttons.enter() - .append('button') - .attr('tabindex', -1) - .attr('class', function(d) { - return d.button + ' add-button bar-button'; - }) - .on('click.mode-buttons', function(d) { + if (dragMoved && !d3_select(this).classed('dragging')) { + toggleMode(d); + return; + } - // When drawing, ignore accidental clicks on mode buttons - #4042 - if (/^draw/.test(context.mode().id)) return; + d3_select(this) + .classed('dragging', false) + .classed('removing', false); - toggleMode(d); - }) - .call(tooltip() - .placement('bottom') - .html(true) - .title(function(d) { return uiTooltipHtml(d.description, d.key); }) - ); - - buttonsEnter - .each(function(d) { - d3_select(this) - .call(uiPresetIcon(context) - .geometry((d.geometry === 'point' && !d.preset.matchGeometry(d.geometry)) ? 'vertex' : d.geometry) - .preset(d.preset) - .sizeClass('small') - .pointMarker(true) - ); - }); + selection.selectAll('button.add-preset') + .style('transform', null); - var dragOrigin, dragMoved, targetIndex, targetData; - - buttonsEnter.call(d3_drag() - .on('start', function() { - dragOrigin = { - x: d3_event.x, - y: d3_event.y - }; - targetIndex = null; - targetData = null; - dragMoved = false; - }) - .on('drag', function(d, index) { - dragMoved = true; - var x = d3_event.x - dragOrigin.x, - y = d3_event.y - dragOrigin.y; - - if (!d3_select(this).classed('dragging') && - // don't display drag until dragging beyond a distance threshold - Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2)) <= 5) return; - - d3_select(this) - .classed('dragging', true) - .classed('removing', y > 50); - - targetIndex = null; - targetData = null; - - selection.selectAll('button.add-preset') - .style('transform', function(d2, index2) { - var node = d3_select(this).node(); - if (index === index2) { - return 'translate(' + x + 'px, ' + y + 'px)'; - } else if (y > 50) { - if (index2 > index) { - return 'translateX(' + (textDirection === 'rtl' ? '' : '-') + '100%)'; - } - } else if (d.source === d2.source) { - if (index2 > index && ( - (d3_event.x > node.offsetLeft && textDirection === 'ltr') || - (d3_event.x < node.offsetLeft + node.offsetWidth && textDirection === 'rtl') - )) { - if (targetIndex === null || index2 > targetIndex) { - targetIndex = index2; - targetData = d2; - } - return 'translateX(' + (textDirection === 'rtl' ? '' : '-') + '100%)'; - } else if (index2 < index && ( - (d3_event.x < node.offsetLeft + node.offsetWidth && textDirection === 'ltr') || - (d3_event.x > node.offsetLeft && textDirection === 'rtl') - )) { - if (targetIndex === null || index2 < targetIndex) { - targetIndex = index2; - targetData = d2; - } - return 'translateX(' + (textDirection === 'rtl' ? '-' : '') + '100%)'; - } - } - return null; - }); - }) - .on('end', function(d) { - - if (dragMoved && !d3_select(this).classed('dragging')) { - toggleMode(d); - return; + var y = d3_event.y - dragOrigin.y; + if (y > 50) { + // dragged out of the top bar, remove + if (d.isRecent()) { + context.presets().removeRecent(d.preset, d.geometry); + } + } else if (targetIndex !== null) { + // dragged to a new position, reorder + if (d.isRecent()) { + var item = context.presets().recentMatching(d.preset, d.geometry); + var beforeItem = context.presets().recentMatching(targetData.preset, targetData.geometry); + context.presets().moveRecent(item, beforeItem); } + } + }) + ); - d3_select(this) - .classed('dragging', false) - .classed('removing', false); + // update + buttons = buttons + .merge(buttonsEnter) + .classed('disabled', function(d) { return !enabled(d); }); + } - selection.selectAll('button.add-preset') - .style('transform', null); + tool.install = function() { + context + .on('enter.editor.recent', function(entered) { + selection.selectAll('button.add-button') + .classed('active', function(mode) { return entered.button === mode.button; }); + }); - var y = d3_event.y - dragOrigin.y; - if (y > 50) { - // dragged out of the top bar, remove - if (d.isRecent()) { - context.presets().removeRecent(d.preset, d.geometry); - } - } else if (targetIndex !== null) { - // dragged to a new position, reorder - if (d.isRecent()) { - var item = context.presets().recentMatching(d.preset, d.geometry); - var beforeItem = context.presets().recentMatching(targetData.preset, targetData.geometry); - context.presets().moveRecent(item, beforeItem); - } - } - }) - ); + var debouncedUpdate = _debounce(update, 500, { leading: true, trailing: true }); - // update - buttons = buttons - .merge(buttonsEnter) - .classed('disabled', function(d) { return !enabled(d); }); - } + context.map() + .on('move.recent', debouncedUpdate) + .on('drawn.recent', debouncedUpdate); + + context + .on('enter.recent', update) + .presets() + .on('favoritePreset.recent', update) + .on('recentsChange.recent', update); }; tool.uninstall = function() { diff --git a/modules/ui/tools/notes.js b/modules/ui/tools/notes.js index 9edcb70a9a..8cbca54620 100644 --- a/modules/ui/tools/notes.js +++ b/modules/ui/tools/notes.js @@ -45,7 +45,65 @@ export function uiToolNotes(context) { } }); - tool.render = function(selection) { + var selection; + tool.render = function(sel) { + selection = sel; + update(); + }; + + function update() { + var showNotes = notesEnabled(); + var data = showNotes ? [mode] : []; + + var buttons = selection.selectAll('button.add-button') + .data(data, function(d) { return d.id; }); + + // exit + buttons.exit() + .remove(); + + // enter + var buttonsEnter = buttons.enter() + .append('button') + .attr('tabindex', -1) + .attr('class', function(d) { return d.id + ' add-button bar-button'; }) + .on('click.notes', function(d) { + if (!enabled(d)) return; + + // When drawing, ignore accidental clicks on mode buttons - #4042 + var currMode = context.mode().id; + if (/^draw/.test(currMode)) return; + + if (d.id === currMode) { + context.enter(modeBrowse(context)); + } else { + context.enter(d); + } + }) + .call(tooltip() + .placement('bottom') + .html(true) + .title(function(d) { return uiTooltipHtml(d.description, d.key); }) + ); + + buttonsEnter + .each(function(d) { + d3_select(this) + .call(svgIcon(d.icon || '#iD-icon-' + d.button)); + }); + + // if we are adding/removing the buttons, check if toolbar has overflowed + if (buttons.enter().size() || buttons.exit().size()) { + context.ui().checkOverflow('#bar', true); + } + + // update + buttons = buttons + .merge(buttonsEnter) + .classed('disabled', function(d) { return !enabled(d); }); + } + + tool.install = function() { context .on('enter.editor.notes', function(entered) { @@ -53,7 +111,6 @@ export function uiToolNotes(context) { .classed('active', function(mode) { return entered.button === mode.button; }); }); - var debouncedUpdate = _debounce(update, 500, { leading: true, trailing: true }); context.map() @@ -62,61 +119,6 @@ export function uiToolNotes(context) { context .on('enter.notes', update); - - update(); - - - function update() { - var showNotes = notesEnabled(); - var data = showNotes ? [mode] : []; - - var buttons = selection.selectAll('button.add-button') - .data(data, function(d) { return d.id; }); - - // exit - buttons.exit() - .remove(); - - // enter - var buttonsEnter = buttons.enter() - .append('button') - .attr('tabindex', -1) - .attr('class', function(d) { return d.id + ' add-button bar-button'; }) - .on('click.notes', function(d) { - if (!enabled(d)) return; - - // When drawing, ignore accidental clicks on mode buttons - #4042 - var currMode = context.mode().id; - if (/^draw/.test(currMode)) return; - - if (d.id === currMode) { - context.enter(modeBrowse(context)); - } else { - context.enter(d); - } - }) - .call(tooltip() - .placement('bottom') - .html(true) - .title(function(d) { return uiTooltipHtml(d.description, d.key); }) - ); - - buttonsEnter - .each(function(d) { - d3_select(this) - .call(svgIcon(d.icon || '#iD-icon-' + d.button)); - }); - - // if we are adding/removing the buttons, check if toolbar has overflowed - if (buttons.enter().size() || buttons.exit().size()) { - context.ui().checkOverflow('#bar', true); - } - - // update - buttons = buttons - .merge(buttonsEnter) - .classed('disabled', function(d) { return !enabled(d); }); - } }; tool.uninstall = function() { diff --git a/modules/ui/tools/operation.js b/modules/ui/tools/operation.js index 1d36121062..611e754fa7 100644 --- a/modules/ui/tools/operation.js +++ b/modules/ui/tools/operation.js @@ -14,15 +14,21 @@ export function uiToolOperation() { itemClass: 'operation' }; - var button, tooltipBehavior; + var button, + tooltipBehavior = tooltip() + .placement('bottom') + .html(true); tool.render = function(selection) { - tooltipBehavior = tooltip() - .placement('bottom') - .html(true); + tooltipBehavior.title(uiTooltipHtml(operation.tooltip(), operation.keys[0])); button = selection + .selectAll('.bar-button') + .data([0]); + + var buttonEnter = button + .enter() .append('button') .attr('class', 'bar-button wide') .attr('tabindex', -1) @@ -33,6 +39,10 @@ export function uiToolOperation() { operation(); }) .call(svgIcon('#iD-operation-' + operation.id)); + + button = buttonEnter.merge(button); + + button.classed('disabled', operation.disabled()); }; tool.setOperation = function(op) { @@ -42,19 +52,7 @@ export function uiToolOperation() { tool.label = operation.title; }; - tool.update = function() { - if (!operation) return; - - if (tooltipBehavior) { - tooltipBehavior.title(uiTooltipHtml(operation.tooltip(), operation.keys[0])); - } - if (button) { - button.classed('disabled', operation.disabled()); - } - }; - tool.uninstall = function() { - tooltipBehavior = null; button = null; operation = null; }; diff --git a/modules/ui/tools/repeat_add.js b/modules/ui/tools/repeat_add.js index 57efeec852..6cca888270 100644 --- a/modules/ui/tools/repeat_add.js +++ b/modules/ui/tools/repeat_add.js @@ -15,17 +15,23 @@ export function uiToolRepeatAdd(context) { var button; + var tooltipBehavior = tooltip() + .placement('bottom') + .html(true); + tool.render = function(selection) { var mode = context.mode(); var geom = mode.id.indexOf('point') !== -1 ? 'point' : 'way'; - var tooltipBehavior = tooltip() - .placement('bottom') - .html(true) - .title(uiTooltipHtml(t('toolbar.repeat.tooltip.' + geom, { feature: '' + mode.title + '' }), key)); + tooltipBehavior.title(uiTooltipHtml(t('toolbar.repeat.tooltip.' + geom, { feature: '' + mode.title + '' }), key)); button = selection + .selectAll('.bar-button') + .data([0]); + + button = button + .enter() .append('button') .attr('class', 'bar-button wide') .classed('active', mode.repeatAddedFeature()) @@ -34,10 +40,8 @@ export function uiToolRepeatAdd(context) { .on('click', function() { toggleRepeat(); }) - .call(svgIcon('#iD-icon-repeat')); - - context.keybinding() - .on(key, toggleRepeat, true); + .call(svgIcon('#iD-icon-repeat')) + .merge(button); }; function toggleRepeat() { @@ -46,6 +50,11 @@ export function uiToolRepeatAdd(context) { button.classed('active', mode.repeatAddedFeature()); } + tool.install = function() { + context.keybinding() + .on(key, toggleRepeat, true); + }; + tool.uninstall = function() { context.keybinding() .off(key, true); diff --git a/modules/ui/tools/save.js b/modules/ui/tools/save.js index ca6473fbe6..c1ef2f189d 100644 --- a/modules/ui/tools/save.js +++ b/modules/ui/tools/save.js @@ -17,7 +17,10 @@ export function uiToolSave(context) { }; var button = null; - var tooltipBehavior = null; + var tooltipBehavior = tooltip() + .placement('bottom') + .html(true) + .title(uiTooltipHtml(t('save.no_changes'), key)); var history = context.history(); var key = uiCmd('⌘S'); var _numChanges = 0; @@ -76,33 +79,36 @@ export function uiToolSave(context) { tool.render = function(selection) { - tooltipBehavior = tooltip() - .placement('bottom') - .html(true) - .title(uiTooltipHtml(t('save.no_changes'), key)); button = selection + .selectAll('.bar-button') + .data([0]); + + var buttonEnter = button + .enter() .append('button') .attr('class', 'save disabled bar-button') .attr('tabindex', -1) .on('click', save) .call(tooltipBehavior); - button + buttonEnter .call(svgIcon('#iD-icon-save')); - button + buttonEnter .append('span') .attr('class', 'count') .text('0'); - updateCount(); + button = buttonEnter.merge(button); + updateCount(); + }; + tool.install = function() { context.keybinding() .on(key, save, true); - context.history() .on('change.save', updateCount); @@ -131,7 +137,6 @@ export function uiToolSave(context) { .on('enter.save', null); button = null; - tooltipBehavior = null; }; return tool; diff --git a/modules/ui/tools/segmented.js b/modules/ui/tools/segmented.js index 879d1c85e4..67e4dc2cf5 100644 --- a/modules/ui/tools/segmented.js +++ b/modules/ui/tools/segmented.js @@ -41,10 +41,13 @@ export function uiToolSegemented(context) { var active = tool.activeItem(); var buttons = selection.selectAll('.bar-button') - .data(tool.items) - .enter(); + .data(tool.items, function(d) { return d.id; }); + + buttons.exit() + .remove(); buttons + .enter() .append('button') .attr('class', function(d) { return 'bar-button ' + d.id + ' ' + (d === active ? 'active' : ''); @@ -64,11 +67,6 @@ export function uiToolSegemented(context) { .call(tooltipBehavior) .call(svgIcon('#' + d.icon, 'icon-30')); }); - - if (tool.key) { - context.keybinding() - .on(tool.key, toggleItem, true); - } }; function setActiveItem(d) { @@ -97,6 +95,13 @@ export function uiToolSegemented(context) { setActiveItem(tool.items[index]); } + tool.install = function() { + if (tool.key) { + context.keybinding() + .on(tool.key, toggleItem, true); + } + }; + tool.uninstall = function() { if (tool.key) { context.keybinding() diff --git a/modules/ui/tools/sidebar_toggle.js b/modules/ui/tools/sidebar_toggle.js index 53daa5266c..cc4ee154ff 100644 --- a/modules/ui/tools/sidebar_toggle.js +++ b/modules/ui/tools/sidebar_toggle.js @@ -13,6 +13,9 @@ export function uiToolSidebarToggle(context) { tool.render = function(selection) { selection + .selectAll('.bar-button') + .data([0]) + .enter() .append('button') .attr('class', 'bar-button') .attr('tabindex', -1) diff --git a/modules/ui/tools/simple_button.js b/modules/ui/tools/simple_button.js index c27b5c7837..782aa21523 100644 --- a/modules/ui/tools/simple_button.js +++ b/modules/ui/tools/simple_button.js @@ -9,18 +9,18 @@ export function uiToolSimpleButton(id, label, iconName, onClick, tooltipText, to label: label }; - tool.render = function(selection) { - - if (!klass) klass = ''; - - var tooltipBehavior = tooltip() - .placement('bottom') - .html(true) - .title(uiTooltipHtml(tooltipText, tooltipKey)); + var tooltipBehavior = tooltip() + .placement('bottom') + .html(true) + .title(uiTooltipHtml(tooltipText, tooltipKey)); + tool.render = function(selection) { selection + .selectAll('.bar-button') + .data([0]) + .enter() .append('button') - .attr('class', 'bar-button ' + klass) + .attr('class', 'bar-button ' + (klass || '')) .attr('tabindex', -1) .call(tooltipBehavior) .on('click', onClick) diff --git a/modules/ui/tools/undo_redo.js b/modules/ui/tools/undo_redo.js index 7e1b216da5..5b99e51ea4 100644 --- a/modules/ui/tools/undo_redo.js +++ b/modules/ui/tools/undo_redo.js @@ -36,18 +36,20 @@ export function uiToolUndoRedo(context) { return context.editable(); } + var tooltipBehavior = tooltip() + .placement('bottom') + .html(true) + .title(function (d) { + return uiTooltipHtml(d.annotation() ? + t(d.id + '.tooltip', {action: d.annotation()}) : + t(d.id + '.nothing'), d.cmd); + }); + + var buttons; tool.render = function(selection) { - var tooltipBehavior = tooltip() - .placement('bottom') - .html(true) - .title(function (d) { - return uiTooltipHtml(d.annotation() ? - t(d.id + '.tooltip', {action: d.annotation()}) : - t(d.id + '.nothing'), d.cmd); - }); - var buttons = selection.selectAll('button') + buttons = selection.selectAll('button') .data(commands) .enter() .append('button') @@ -67,12 +69,27 @@ export function uiToolUndoRedo(context) { d3_select(this) .call(svgIcon('#iD-icon-' + iconName)); }); + }; + function update() { + buttons + .property('disabled', !editable()) + .classed('disabled', function(d) { + return !editable() || !d.annotation(); + }) + .each(function() { + var selection = d3_select(this); + if (selection.property('tooltipVisible')) { + selection.call(tooltipBehavior.show); + } + }); + } + + tool.install = function() { context.keybinding() .on(commands[0].cmd, function() { d3_event.preventDefault(); commands[0].action(); }) .on(commands[1].cmd, function() { d3_event.preventDefault(); commands[1].action(); }); - var debouncedUpdate = _debounce(update, 500, { leading: true, trailing: true }); context.map() @@ -86,21 +103,6 @@ export function uiToolUndoRedo(context) { context .on('enter.undo_redo', update); - - - function update() { - buttons - .property('disabled', !editable()) - .classed('disabled', function(d) { - return !editable() || !d.annotation(); - }) - .each(function() { - var selection = d3_select(this); - if (selection.property('tooltipVisible')) { - selection.call(tooltipBehavior.show); - } - }); - } }; tool.uninstall = function() { diff --git a/modules/ui/top_toolbar.js b/modules/ui/top_toolbar.js index 72deaa32f5..7230854707 100644 --- a/modules/ui/top_toolbar.js +++ b/modules/ui/top_toolbar.js @@ -204,6 +204,11 @@ export function uiTopToolbar(context) { var itemsEnter = toolbarItems .enter() + .each(function(d) { + if (d.install) { + d.install(); + } + }) .append('div') .attr('class', function(d) { var classes = 'toolbar-item ' + (d.id || d).replace('_', '-'); @@ -219,9 +224,6 @@ export function uiTopToolbar(context) { var classes = 'item-content'; if (d.contentClass) classes += ' ' + d.contentClass; return classes; - }) - .each(function(d) { - d3_select(this).call(d.render, bar); }); actionableItems @@ -233,7 +235,7 @@ export function uiTopToolbar(context) { toolbarItems.merge(itemsEnter) .each(function(d){ - if (d.update) d.update(); + if (d.render) d3_select(this).select('.item-content').call(d.render, bar); }); } From c8f949365257a5d6f14bbfdab5b44a5783390cb0 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Fri, 21 Jun 2019 13:09:19 -0400 Subject: [PATCH 096/774] Fix undo/redo --- modules/ui/tools/undo_redo.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/modules/ui/tools/undo_redo.js b/modules/ui/tools/undo_redo.js index 5b99e51ea4..b776f77591 100644 --- a/modules/ui/tools/undo_redo.js +++ b/modules/ui/tools/undo_redo.js @@ -50,14 +50,16 @@ export function uiToolUndoRedo(context) { tool.render = function(selection) { buttons = selection.selectAll('button') - .data(commands) + .data(commands); + + var buttonsEnter = buttons .enter() .append('button') .attr('class', function(d) { return 'disabled ' + d.id + '-button bar-button'; }) .on('click', function(d) { return d.action(); }) .call(tooltipBehavior); - buttons.each(function(d) { + buttonsEnter.each(function(d) { var iconName = d.id; if (textDirection === 'rtl') { if (iconName === 'undo') { @@ -69,6 +71,8 @@ export function uiToolUndoRedo(context) { d3_select(this) .call(svgIcon('#iD-icon-' + iconName)); }); + + buttons = buttonsEnter.merge(buttons); }; function update() { From 4314bce762f7e410ee5c363387097f0b00ad2305 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Fri, 21 Jun 2019 15:21:58 -0400 Subject: [PATCH 097/774] Allow squaring multiple features at once (close #6565) --- data/core.yaml | 44 +++++++++++----- dist/locales/en.json | 57 +++++++++++++++----- modules/operations/orthogonalize.js | 82 ++++++++++++++++++++--------- 3 files changed, 133 insertions(+), 50 deletions(-) diff --git a/data/core.yaml b/data/core.yaml index 3aad11c06a..c139c87f68 100644 --- a/data/core.yaml +++ b/data/core.yaml @@ -162,20 +162,40 @@ en: orthogonalize: title: Square description: - vertex: Square this corner. - line: Square the corners of this line. - area: Square the corners of this area. + corner: + single: Square this corner. + multiple: Square these corners. + feature: + single: Square the corners of this feature. + multiple: Square the corners of these features. key: Q annotation: - vertex: Squared a single corner. - line: Squared the corners of a line. - area: Squared the corners of an area. - end_vertex: This can't be squared because it is an end node. - square_enough: This can't be made more square than it already is. - not_squarish: This can't be made square because it is not squarish. - too_large: This can't be made square because not enough of it is currently visible. - connected_to_hidden: This can't be made square because it is connected to a hidden feature. - not_downloaded: This can't be made square because parts of it have not yet been downloaded. + corner: + single: Squared a corner. + multiple: Squared several corners. + feature: + single: Squared the corners of a feature. + multiple: Squared the corners of several features. + multiple_blockers: + multiple: These can't be squared for multiple reasons. + end_vertex: + single: This can't be squared because it is an endpoint. + multiple: These can't be squared because they are endpoints. + square_enough: + single: This can't be made more square than it already is. + multiple: These can't be made more square than they already are. + not_squarish: + single: This can't be made square because it is not squarish. + multiple: These can't be made square because they are not squarish. + too_large: + single: This can't be made square because not enough of it is currently visible. + multiple: These can't be made square because not enought of them are currently visible. + connected_to_hidden: + single: This can't be made square because it is connected to a hidden feature. + multiple: These can't be made square because some are connected to hidden features. + not_downloaded: + single: This can't be made square because parts of it have not yet been downloaded. + multiple: These can't be made square because parts of them have not yet been downloaded. straighten: title: Straighten description: diff --git a/dist/locales/en.json b/dist/locales/en.json index f6f97722ea..b3d15c8ac7 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -209,22 +209,53 @@ "orthogonalize": { "title": "Square", "description": { - "vertex": "Square this corner.", - "line": "Square the corners of this line.", - "area": "Square the corners of this area." + "corner": { + "single": "Square this corner.", + "multiple": "Square these corners." + }, + "feature": { + "single": "Square the corners of this feature.", + "multiple": "Square the corners of these features." + } }, "key": "Q", "annotation": { - "vertex": "Squared a single corner.", - "line": "Squared the corners of a line.", - "area": "Squared the corners of an area." - }, - "end_vertex": "This can't be squared because it is an end node.", - "square_enough": "This can't be made more square than it already is.", - "not_squarish": "This can't be made square because it is not squarish.", - "too_large": "This can't be made square because not enough of it is currently visible.", - "connected_to_hidden": "This can't be made square because it is connected to a hidden feature.", - "not_downloaded": "This can't be made square because parts of it have not yet been downloaded." + "corner": { + "single": "Squared a corner.", + "multiple": "Squared several corners." + }, + "feature": { + "single": "Squared the corners of a feature.", + "multiple": "Squared the corners of several features." + } + }, + "multiple_blockers": { + "multiple": "These can't be squared for multiple reasons." + }, + "end_vertex": { + "single": "This can't be squared because it is an endpoint.", + "multiple": "These can't be squared because they are endpoints." + }, + "square_enough": { + "single": "This can't be made more square than it already is.", + "multiple": "These can't be made more square than they already are." + }, + "not_squarish": { + "single": "This can't be made square because it is not squarish.", + "multiple": "These can't be made square because they are not squarish." + }, + "too_large": { + "single": "This can't be made square because not enough of it is currently visible.", + "multiple": "These can't be made square because not enought of them are currently visible." + }, + "connected_to_hidden": { + "single": "This can't be made square because it is connected to a hidden feature.", + "multiple": "These can't be made square because some are connected to hidden features." + }, + "not_downloaded": { + "single": "This can't be made square because parts of it have not yet been downloaded.", + "multiple": "These can't be made square because parts of them have not yet been downloaded." + } }, "straighten": { "title": "Straighten", diff --git a/modules/operations/orthogonalize.js b/modules/operations/orthogonalize.js index 369e5790f0..fd79be8e02 100644 --- a/modules/operations/orthogonalize.js +++ b/modules/operations/orthogonalize.js @@ -5,33 +5,41 @@ import { utilGetAllNodes } from '../util'; export function operationOrthogonalize(selectedIDs, context) { - var _entityID; - var _entity; - var _geometry; - var action = chooseAction(); + var _extent; + var type; + var actions = selectedIDs.map(chooseAction).filter(Boolean); + var amount = actions.length === 1 ? 'single' : 'multiple'; var nodes = utilGetAllNodes(selectedIDs, context.graph()); var coords = nodes.map(function(n) { return n.loc; }); - function chooseAction() { - if (selectedIDs.length !== 1) return null; + function chooseAction(entityID) { - _entityID = selectedIDs[0]; - _entity = context.entity(_entityID); - _geometry = context.geometry(_entityID); + var entity = context.entity(entityID); + var geometry = context.geometry(entityID); + + if (!_extent) { + _extent = entity.extent(context.graph()); + } else { + _extent = _extent.extend(entity.extent(context.graph())); + } // square a line/area - if (_entity.type === 'way' && new Set(_entity.nodes).size > 2 ) { - return actionOrthogonalize(_entityID, context.projection); + if (entity.type === 'way' && new Set(entity.nodes).size > 2 ) { + if (type && type !== 'feature') return null; + type = 'feature'; + return actionOrthogonalize(entityID, context.projection); // square a single vertex - } else if (_geometry === 'vertex') { + } else if (geometry === 'vertex') { + if (type && type !== 'corner') return null; + type = 'corner'; var graph = context.graph(); - var parents = graph.parentWays(_entity); + var parents = graph.parentWays(entity); if (parents.length === 1) { var way = parents[0]; - if (way.nodes.indexOf(_entityID) !== -1) { - return actionOrthogonalize(way.id, context.projection, _entityID); + if (way.nodes.indexOf(entityID) !== -1) { + return actionOrthogonalize(way.id, context.projection, entityID); } } } @@ -41,9 +49,19 @@ export function operationOrthogonalize(selectedIDs, context) { var operation = function() { - if (!action) return; + if (!actions.length) return; - context.perform(action, operation.annotation()); + var combinedAction = function(graph, t) { + actions.forEach(function(action) { + if (!action.disabled(graph)) { + graph = action(graph, t); + } + }); + return graph; + }; + combinedAction.transitionable = true; + + context.perform(combinedAction, operation.annotation()); window.setTimeout(function() { context.validator().validate(); @@ -52,19 +70,33 @@ export function operationOrthogonalize(selectedIDs, context) { operation.available = function() { - return Boolean(action); + return actions.length && selectedIDs.length === actions.length; }; // don't cache this because the visible extent could change operation.disabled = function() { - if (!action) return ''; + if (!actions.length) return ''; + + var actionDisabled; + + var actionDisableds = {}; + + if (actions.every(function(action) { + var disabled = action.disabled(context.graph()); + if (disabled) actionDisableds[disabled] = true; + return disabled; + })) { + actionDisabled = actions[0].disabled(context.graph()); + } - var actionDisabled = action.disabled(context.graph()); if (actionDisabled) { + if (Object.keys(actionDisableds).length > 1) { + return 'multiple_blockers'; + } return actionDisabled; - } else if (_geometry !== 'vertex' && - _entity.extent(context.graph()).percentContainedIn(context.extent()) < 0.8) { + } else if (type !== 'corner' && + _extent.percentContainedIn(context.extent()) < 0.8) { return 'too_large'; } else if (someMissing()) { return 'not_downloaded'; @@ -93,13 +125,13 @@ export function operationOrthogonalize(selectedIDs, context) { operation.tooltip = function() { var disable = operation.disabled(); return disable ? - t('operations.orthogonalize.' + disable) : - t('operations.orthogonalize.description.' + _geometry); + t('operations.orthogonalize.' + disable + '.' + amount) : + t('operations.orthogonalize.description.' + type + '.' + amount); }; operation.annotation = function() { - return t('operations.orthogonalize.annotation.' + _geometry); + return t('operations.orthogonalize.annotation.' + type + '.' + amount); }; From 744d4497d7a1c713e1f4afb7f3ebb47f444249a9 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Fri, 21 Jun 2019 15:27:06 -0400 Subject: [PATCH 098/774] Hide tooltip upon clicking operation toolbar button --- modules/ui/tools/operation.js | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/ui/tools/operation.js b/modules/ui/tools/operation.js index 611e754fa7..ab9cc9d9b6 100644 --- a/modules/ui/tools/operation.js +++ b/modules/ui/tools/operation.js @@ -36,6 +36,7 @@ export function uiToolOperation() { .on('click', function() { d3_event.stopPropagation(); if (!operation || operation.disabled()) return; + button.call(tooltipBehavior.hide); operation(); }) .call(svgIcon('#iD-operation-' + operation.id)); From 85fa1b78e611b32ca4649a0f358ad894ef04b6f8 Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" <23040076+greenkeeper[bot]@users.noreply.github.com> Date: Sat, 22 Jun 2019 08:39:36 +0000 Subject: [PATCH 099/774] chore(package): update rollup to version 1.16.2 Closes #6521 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 10f0a2e373..f283a042bc 100644 --- a/package.json +++ b/package.json @@ -82,7 +82,7 @@ "osm-community-index": "0.8.0", "phantomjs-prebuilt": "~2.1.11", "request": "^2.88.0", - "rollup": "~1.14.6", + "rollup": "~1.16.2", "rollup-plugin-commonjs": "^10.0.0", "rollup-plugin-includepaths": "~0.2.3", "rollup-plugin-json": "^4.0.0", From a365da8a89a53380ba4a979a2151a87d4e045a8a Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Mon, 24 Jun 2019 14:13:29 -0400 Subject: [PATCH 100/774] Update unsquare fix annotation --- modules/validations/unsquare_way.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/validations/unsquare_way.js b/modules/validations/unsquare_way.js index ebf531f909..b4e1cb7668 100644 --- a/modules/validations/unsquare_way.js +++ b/modules/validations/unsquare_way.js @@ -66,7 +66,7 @@ export function validationUnsquareWay(context) { // use same degree threshold as for detection var autoAction = actionOrthogonalize(entity.id, context.projection, undefined, degreeThreshold); autoAction.transitionable = false; // when autofixing, do it instantly - autoArgs = [autoAction, t('operations.orthogonalize.annotation.area')]; + autoArgs = [autoAction, t('operations.orthogonalize.annotation.feature.single')]; } return [new validationIssue({ @@ -89,7 +89,7 @@ export function validationUnsquareWay(context) { // use same degree threshold as for detection context.perform( actionOrthogonalize(entityId, context.projection, undefined, degreeThreshold), - t('operations.orthogonalize.annotation.area') + t('operations.orthogonalize.annotation.feature.single') ); // run after the squaring transition (currently 150ms) window.setTimeout(function() { completionHandler(); }, 175); From 723bc4523bceb41e92fe34f269b378767b367e51 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Mon, 24 Jun 2019 15:52:13 -0400 Subject: [PATCH 101/774] Fix issue where multiple preset browsers could be rendered and not dismissed --- modules/ui/preset_browser.js | 42 ++++++++++++++++++++---------------- 1 file changed, 23 insertions(+), 19 deletions(-) diff --git a/modules/ui/preset_browser.js b/modules/ui/preset_browser.js index 2dd51b9864..81c9063e56 100644 --- a/modules/ui/preset_browser.js +++ b/modules/ui/preset_browser.js @@ -23,25 +23,26 @@ export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { var popover = d3_select(null), search = d3_select(null), - popoverContent = d3_select(null), - list = d3_select(null), - footer = d3_select(null), - message = d3_select(null); + popoverContent = d3_select(null); var browser = {}; browser.render = function(selection) { updateShownGeometry(allowedGeometry.slice()); // shallow copy - popover = selection + popover = selection.selectAll('.preset-browser') + .data([0]); + + var popoverEnter = popover + .enter() .append('div') .attr('class', 'preset-browser popover fillL hide'); - var header = popover + var header = popoverEnter .append('div') .attr('class', 'popover-header'); - search = header + header .append('input') .attr('class', 'search-input') .attr('placeholder', t('modes.add_feature.search_placeholder')) @@ -61,19 +62,18 @@ export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { header .call(svgIcon('#iD-icon-search', 'search-icon pre-text')); - popoverContent = popover + popoverEnter .append('div') .attr('class', 'popover-content') .on('mousedown', function() { // don't blur the search input (and thus close results) d3_event.preventDefault(); d3_event.stopPropagation(); - }); - - list = popoverContent.append('div') + }) + .append('div') .attr('class', 'list'); - footer = popover + var footer = popoverEnter .append('div') .attr('class', 'popover-footer') .on('mousedown', function() { @@ -82,7 +82,7 @@ export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { d3_event.stopPropagation(); }); - message = footer.append('div') + footer.append('div') .attr('class', 'message'); var geomForButtons = allowedGeometry.slice(); @@ -112,6 +112,10 @@ export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { updateResultsList(); }); + popover = popoverEnter.merge(popover); + search = popover.selectAll('.search-input'); + popoverContent = popover.selectAll('.popover-content'); + updateResultsList(); }; @@ -162,7 +166,7 @@ export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { } function updateFilterButtonsStates() { - footer.selectAll('button.filter') + popover.selectAll('.popover-footer button.filter') .classed('active', function(d) { return shownGeometry.indexOf(d) !== -1; }); @@ -253,7 +257,7 @@ export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { results = recents.slice(0, 35); } - list.call(drawList, results); + popoverContent.selectAll('.list').call(drawList, results); popover.selectAll('.list .list-item.focused') .classed('focused', false); @@ -262,7 +266,7 @@ export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { popoverContent.node().scrollTop = 0; var resultCount = results.length; - message.text(t('modes.add_feature.' + (resultCount === 1 ? 'result' : 'results'), { count: resultCount })); + popover.selectAll('.popover-footer .message').text(t('modes.add_feature.' + (resultCount === 1 ? 'result' : 'results'), { count: resultCount })); } function focusListItem(selection, scrollingToShow) { @@ -313,7 +317,7 @@ export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { function drawList(list, data) { - list.selectAll('.subsection.subitems').remove(); + popoverContent.selectAll('.list .subsection.subitems').remove(); var dataItems = []; for (var i = 0; i < data.length; i++) { @@ -333,7 +337,7 @@ export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { dataItems.push(itemForPreset(preset)); } - var items = list.selectAll('.list-item') + var items = popoverContent.selectAll('.list-item') .data(dataItems, function(d) { return d.id(); }); items.order(); @@ -360,7 +364,7 @@ export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { return 'search-add-list-item-preset-' + d.id().replace(/[^a-zA-Z\d:]/g, '-'); }) .on('mouseover', function() { - list.selectAll('.list-item.focused') + popover.selectAll('.list .list-item.focused') .classed('focused', false); d3_select(this) .classed('focused', true); From 59b51f3a20234c706df75ee08f3800c1891cc90f Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Mon, 24 Jun 2019 16:15:07 -0400 Subject: [PATCH 102/774] Fix preset browser keyboard shortcuts --- modules/ui/preset_browser.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/ui/preset_browser.js b/modules/ui/preset_browser.js index 81c9063e56..b6b73f78a1 100644 --- a/modules/ui/preset_browser.js +++ b/modules/ui/preset_browser.js @@ -257,7 +257,7 @@ export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { results = recents.slice(0, 35); } - popoverContent.selectAll('.list').call(drawList, results); + var list = popoverContent.selectAll('.list').call(drawList, results); popover.selectAll('.list .list-item.focused') .classed('focused', false); @@ -317,7 +317,7 @@ export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { function drawList(list, data) { - popoverContent.selectAll('.list .subsection.subitems').remove(); + list.selectAll('.subsection.subitems').remove(); var dataItems = []; for (var i = 0; i < data.length; i++) { @@ -337,7 +337,7 @@ export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { dataItems.push(itemForPreset(preset)); } - var items = popoverContent.selectAll('.list-item') + var items = list.selectAll('.list-item') .data(dataItems, function(d) { return d.id(); }); items.order(); From 61407a59bfa3a5dbbec369a717c6bc52cf85cd0a Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Mon, 24 Jun 2019 16:20:34 -0400 Subject: [PATCH 103/774] Use the tilde key (`) for opening the Add Feature preset browser instead of Tab (close #6560) Use the apostrophe key (') for toggling the sidebar --- data/core.yaml | 5 +++-- dist/locales/en.json | 4 ++-- modules/ui/init.js | 2 +- modules/ui/tools/add_feature.js | 5 +++-- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/data/core.yaml b/data/core.yaml index c139c87f68..b8754aa0e4 100644 --- a/data/core.yaml +++ b/data/core.yaml @@ -77,7 +77,8 @@ en: add_feature: search_placeholder: Search feature types description: "Browse features to add to the map." - key: Tab + # The hotkey to open the Add Feature preset browser. Expect the key adjacent to the number row. + key: "`" result: "{count} result" results: "{count} results" add_area: @@ -477,7 +478,7 @@ en: report_a_bug: Report a bug help_translate: Help translate sidebar: - key: '`' + key: "'" tooltip: Toggle the sidebar. feature_info: hidden_warning: "{count} hidden features" diff --git a/dist/locales/en.json b/dist/locales/en.json index bd83877bf8..bae019253d 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -97,7 +97,7 @@ "add_feature": { "search_placeholder": "Search feature types", "description": "Browse features to add to the map.", - "key": "Tab", + "key": "`", "result": "{count} result", "results": "{count} results" }, @@ -620,7 +620,7 @@ "report_a_bug": "Report a bug", "help_translate": "Help translate", "sidebar": { - "key": "`", + "key": "'", "tooltip": "Toggle the sidebar." }, "feature_info": { diff --git a/modules/ui/init.js b/modules/ui/init.js index 5224f2affd..721d4efa64 100644 --- a/modules/ui/init.js +++ b/modules/ui/init.js @@ -287,7 +287,7 @@ export function uiInit(context) { var panPixels = 80; context.keybinding() .on('⌫', function() { d3_event.preventDefault(); }) - .on([t('sidebar.key'), '`', '²'], ui.sidebar.toggle) // #5663 - common QWERTY, AZERTY + .on(t('sidebar.key'), ui.sidebar.toggle) .on('←', pan([panPixels, 0])) .on('↑', pan([0, panPixels])) .on('→', pan([-panPixels, 0])) diff --git a/modules/ui/tools/add_feature.js b/modules/ui/tools/add_feature.js index 117ee22218..8d91da415f 100644 --- a/modules/ui/tools/add_feature.js +++ b/modules/ui/tools/add_feature.js @@ -25,6 +25,7 @@ export function uiToolAddFeature(context) { var button = d3_select(null); var key = t('modes.add_feature.key'); + var keys = [key, '`', '²']; // #5663 - common QWERTY, AZERTY tool.render = function(selection) { @@ -69,7 +70,7 @@ export function uiToolAddFeature(context) { tool.install = function() { - context.keybinding().on(key, function() { + context.keybinding().on(keys, function() { button.classed('active', true); presetBrowser.show(); @@ -87,7 +88,7 @@ export function uiToolAddFeature(context) { tool.uninstall = function() { presetBrowser.hide(); - context.keybinding().off(key); + context.keybinding().off(keys); context.features() .on('change.add-feature-tool', null); From a579e35fcc51d76f55eca16c7524d95c59b66c26 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Mon, 24 Jun 2019 16:48:10 -0400 Subject: [PATCH 104/774] Use keyboard styling for shortcuts in tooltips (close #6574) Make tooltips less transparent --- css/80_app.css | 34 ++++++++++++++++++---------------- modules/ui/tooltipHtml.js | 12 ++++++++---- 2 files changed, 26 insertions(+), 20 deletions(-) diff --git a/css/80_app.css b/css/80_app.css index 6f769c87aa..690fb74ef4 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -140,6 +140,21 @@ a:visited, a { a:hover { color: #597be7; } +kbd { + display: inline-block; + text-align: center; + padding: 3px 5px; + font-size: 11px; + line-height: 12px; + min-width: 12px; + vertical-align: baseline; + background-color: #fcfcfc; + border: solid 1px #ccc; + margin: 0 2px; + border-bottom-color: #bbb; + border-radius: 3px; + box-shadow: inset 0 -1px 0 #bbb; +} /* Forms ------------------------------------------------------- */ @@ -5113,20 +5128,7 @@ img.tile-debug { } .modal-shortcuts .shortcut-keys kbd { - display: inline-block; - text-align: center; - padding: 3px 5px; - font-size: 11px; - line-height: 12px; - min-width: 12px; color: #555; - vertical-align: baseline; - background-color: #fcfcfc; - border: solid 1px #ccc; - margin: 0 2px; - border-bottom-color: #bbb; - border-radius: 3px; - box-shadow: inset 0 -1px 0 #bbb; } svg.mouseclick use.left { @@ -5355,7 +5357,7 @@ svg.mouseclick use.right { pointer-events: none; } .tooltip.in { - opacity: 0.9; + opacity: 0.95; z-index: 5000; height: auto; display: block; @@ -5490,12 +5492,12 @@ svg.mouseclick use.right { .tooltip-inner .tooltip-text { margin-bottom: 20px; } -.tooltip-inner .keyhint { +.tooltip-inner .shortcut { font-weight: bold; margin-left: 5px; } -[dir='rtl'] .tooltip-inner .keyhint { +[dir='rtl'] .tooltip-inner .shortcut { margin-left: 0; margin-right: 5px; } diff --git a/modules/ui/tooltipHtml.js b/modules/ui/tooltipHtml.js index d867f49843..597d1a0d9c 100644 --- a/modules/ui/tooltipHtml.js +++ b/modules/ui/tooltipHtml.js @@ -1,7 +1,7 @@ import { t } from '../util/locale'; -export function uiTooltipHtml(text, key, heading) { +export function uiTooltipHtml(text, keys, heading) { var s = ''; if (heading) { @@ -10,9 +10,13 @@ export function uiTooltipHtml(text, key, heading) { if (text) { s += '
' + text + '
'; } - if (key) { - s += '
' + t('tooltip_keyhint') + '' + - '' + key + '
'; + if (keys) { + if (!Array.isArray(keys)) keys = [keys]; + s += '
' + t('tooltip_keyhint') + ''; + keys.forEach(function(key) { + s += '' + key + ''; + }); + s += '
'; } return s; From 3be7b326b6d106fb57b6e0400bf6349fcdc245c1 Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" <23040076+greenkeeper[bot]@users.noreply.github.com> Date: Tue, 25 Jun 2019 06:03:36 +0000 Subject: [PATCH 105/774] chore(package): update rollup-plugin-node-resolve to version 5.1.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index f283a042bc..fefcca3d0c 100644 --- a/package.json +++ b/package.json @@ -86,7 +86,7 @@ "rollup-plugin-commonjs": "^10.0.0", "rollup-plugin-includepaths": "~0.2.3", "rollup-plugin-json": "^4.0.0", - "rollup-plugin-node-resolve": "^5.0.0", + "rollup-plugin-node-resolve": "^5.1.0", "rollup-plugin-visualizer": "^1.1.1", "shelljs": "^0.8.0", "shx": "^0.3.0", From bfd2c1302c984cabb9e0af43176b63667d29a38f Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 26 Jun 2019 09:26:26 -0400 Subject: [PATCH 106/774] Update README to recommend using 2.15 for downstream development --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 3c6b7f2503..0e7f1ebc32 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,11 @@ [![Build Status](https://travis-ci.org/openstreetmap/iD.svg?branch=master)](https://travis-ci.org/openstreetmap/iD) [![Greenkeeper badge](https://badges.greenkeeper.io/openstreetmap/iD.svg)](https://greenkeeper.io/) +:warning: _The [`master`](https://github.com/openstreetmap/iD/tree/master) branch +is undergoing significant breaking changes for v3 over the next few months. +[`2.15`](https://github.com/openstreetmap/iD/tree/2.15) is considerably +more stable and is currently the recommended branch for downstream development._ + ## Basics * iD is a JavaScript [OpenStreetMap](https://www.openstreetmap.org/) editor. From 6b101125ee50c452afda01820e360e44f7fc22b3 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 26 Jun 2019 13:57:51 -0400 Subject: [PATCH 107/774] Add property for specifying that features of a group tend to be clustered together Display presets related to nearby features as defaults in the preset browser (re: #4139) --- data/presets/groups.json | 10 +++ data/presets/groups/cluster/campground.json | 30 ++++++++ data/presets/groups/cluster/marina.json | 32 ++++++++ data/presets/groups/cluster/military.json | 24 ++++++ data/presets/groups/cluster/park.json | 31 ++++++++ data/presets/groups/cluster/pipeline.json | 12 +++ data/presets/groups/cluster/post_office.json | 15 ++++ data/presets/groups/cluster/power.json | 8 ++ data/presets/groups/cluster/school.json | 41 ++++++++++ .../groups/cluster/service_station.json | 30 ++++++++ .../groups/cluster/suburban_residential.json | 41 ++++++++++ data/presets/schema/group.json | 4 + modules/entities/group_manager.js | 38 +++++++-- modules/presets/index.js | 3 + modules/presets/preset.js | 41 +++++++++- modules/renderer/features.js | 5 +- modules/ui/preset_browser.js | 77 ++++++++++++++++++- 17 files changed, 425 insertions(+), 17 deletions(-) create mode 100644 data/presets/groups/cluster/campground.json create mode 100644 data/presets/groups/cluster/marina.json create mode 100644 data/presets/groups/cluster/military.json create mode 100644 data/presets/groups/cluster/park.json create mode 100644 data/presets/groups/cluster/pipeline.json create mode 100644 data/presets/groups/cluster/post_office.json create mode 100644 data/presets/groups/cluster/power.json create mode 100644 data/presets/groups/cluster/school.json create mode 100644 data/presets/groups/cluster/service_station.json create mode 100644 data/presets/groups/cluster/suburban_residential.json diff --git a/data/presets/groups.json b/data/presets/groups.json index 511d5fe0b2..960de6b6c2 100644 --- a/data/presets/groups.json +++ b/data/presets/groups.json @@ -1,5 +1,15 @@ { "groups": { + "cluster/campground": {"cluster": true, "matches": {"anyTags": {"amenity": {"bbq": true, "bench": true, "drinking_water": true, "grit_bin": true, "sanitary_dump_station": true, "shower": true, "toilets": true, "water_point": true, "waste_basket": true}, "camp_site": {"camp_pitch": true}, "leisure": {"playground": true, "firepit": true, "picnic_table": true}, "tourism": {"camp_site": true, "caravan_site": true}}}}, + "cluster/marina": {"cluster": true, "matches": {"anyTags": {"amenity": {"boat_rental": true}, "leisure": {"fishing": true, "marina": true, "slipway": true}, "man_made": {"breakwater": true, "pier": true}, "seamark:type": {"mooring": true}, "shop": {"fishing": true}, "waterway": {"boatyard": true, "dock": true, "fuel": true, "sanitary_dump_station": true, "water_point": true}}}}, + "cluster/military": {"cluster": true, "matches": {"anyTags": {"building": {"bunker": true}, "landuse": {"military": true}, "military": {"airfield": true, "barracks": true, "bunker": true, "checkpoint": true, "naval_base": true, "obstacle_course": true, "office": true, "range": true, "training_area": true}}}}, + "cluster/park": {"cluster": true, "matches": {"anyTags": {"amenity": {"bbq": true, "bench": true, "drinking_water": true, "fountain": true, "grit_bin": true, "toilets": true, "waste_basket": true}, "leisure": {"park": true, "pitch": true, "playground": true, "firepit": true, "dog_park": true, "picnic_table": true, "track": true}, "natural": {"tree": true}, "tourism": {"picnic_site": true}}}}, + "cluster/pipeline": {"cluster": true, "matches": {"anyTags": {"man_made": {"pipeline": true, "storage_tank": true}, "pipeline": "*"}}}, + "cluster/post_office": {"cluster": true, "matches": {"anyTags": {"amenity": {"post_box": true, "post_office": true}, "vending": {"stamps": true, "parcel_pickup": true}}}}, + "cluster/power": {"cluster": true, "matches": {"anyTags": {"power": "*"}}}, + "cluster/school": {"cluster": true, "matches": {"anyTags": {"amenity": {"bench": true, "bicycle_parking": true, "drinking_water": true, "parking": true, "school": true, "waste_basket": true}, "building": {"school": true}, "leisure": {"picnic_table": true, "pitch": true, "playground": true, "track": true}, "man_made": {"flagpole": true}, "natural": {"tree": true}, "sport": {"american_football": true, "baseball": true, "basketball": true, "cricket": true, "field_hockey": true, "running": true, "soccer": true, "softball": true, "tennis": true}}}}, + "cluster/service_station": {"cluster": true, "matches": {"anyTags": {"amenity": {"car_wash": true, "compressed_air": true, "fuel": true, "vending_machine": true}, "building": {"roof": true}, "highway": {"services": true, "street_lamp": true}, "man_made": {"storage_tank": true}, "shop": {"convenience": true, "car_repair": true}, "vending": {"fuel": true}}}}, + "cluster/suburban_residential": {"cluster": true, "matches": {"anyTags": {"building": {"carport": true, "detached": true, "garage": true, "house": true, "residential": true, "semidetached_house": true, "static_caravan": true}, "footway": {"sidewalk": true}, "highway": {"residential": true, "footway": true, "street_lamp": true, "turning_circle": true}, "landuse": {"residential": true}, "leisure": {"swimming_pool": true}, "man_made": {"street_cabinet": true}, "natural": {"tree": true}, "service": {"alley": true, "driveway": true}}}}, "toggleable/aerialways": {"name": "Aerial Features", "description": "Chair Lifts, Gondolas, Zip Lines, etc.", "toggleable": true, "matches": {"allTags": {"aerialway": {"*": true, "no": false, "yes": false, "station": false}}}}, "toggleable/boundaries": {"name": "Boundaries", "description": "Administrative Boundaries", "toggleable": {"hiddenByDefault": true}, "matches": {"geometry": ["line", "area", "relation"], "allTags": {"boundary": {"*": true, "no": false}}, "groups": {"toggleable/traffic_roads": false, "toggleable/service_roads": false, "toggleable/paths": false, "toggleable/water": false, "toggleable/pistes": false, "toggleable/railway": false, "toggleable/landuse": false, "toggleable/building": false, "toggleable/power": false}}}, "toggleable/building_parts": {"name": "Building Parts", "description": "3D Building and Roof Components", "toggleable": true, "matches": {"allTags": {"building:part": {"*": true, "no": false}}}}, diff --git a/data/presets/groups/cluster/campground.json b/data/presets/groups/cluster/campground.json new file mode 100644 index 0000000000..ae9c29839c --- /dev/null +++ b/data/presets/groups/cluster/campground.json @@ -0,0 +1,30 @@ +{ + "cluster": true, + "matches": { + "anyTags": { + "amenity": { + "bbq": true, + "bench": true, + "drinking_water": true, + "grit_bin": true, + "sanitary_dump_station": true, + "shower": true, + "toilets": true, + "water_point": true, + "waste_basket": true + }, + "camp_site": { + "camp_pitch": true + }, + "leisure": { + "playground": true, + "firepit": true, + "picnic_table": true + }, + "tourism": { + "camp_site": true, + "caravan_site": true + } + } + } +} diff --git a/data/presets/groups/cluster/marina.json b/data/presets/groups/cluster/marina.json new file mode 100644 index 0000000000..38df69b526 --- /dev/null +++ b/data/presets/groups/cluster/marina.json @@ -0,0 +1,32 @@ +{ + "cluster": true, + "matches": { + "anyTags": { + "amenity": { + "boat_rental": true + }, + "leisure": { + "fishing": true, + "marina": true, + "slipway": true + }, + "man_made": { + "breakwater": true, + "pier": true + }, + "seamark:type": { + "mooring": true + }, + "shop": { + "fishing": true + }, + "waterway": { + "boatyard": true, + "dock": true, + "fuel": true, + "sanitary_dump_station": true, + "water_point": true + } + } + } +} diff --git a/data/presets/groups/cluster/military.json b/data/presets/groups/cluster/military.json new file mode 100644 index 0000000000..a9c4d11cda --- /dev/null +++ b/data/presets/groups/cluster/military.json @@ -0,0 +1,24 @@ +{ + "cluster": true, + "matches": { + "anyTags": { + "building": { + "bunker": true + }, + "landuse": { + "military": true + }, + "military": { + "airfield": true, + "barracks": true, + "bunker": true, + "checkpoint": true, + "naval_base": true, + "obstacle_course": true, + "office": true, + "range": true, + "training_area": true + } + } + } +} diff --git a/data/presets/groups/cluster/park.json b/data/presets/groups/cluster/park.json new file mode 100644 index 0000000000..9f74798851 --- /dev/null +++ b/data/presets/groups/cluster/park.json @@ -0,0 +1,31 @@ +{ + "cluster": true, + "matches": { + "anyTags": { + "amenity": { + "bbq": true, + "bench": true, + "drinking_water": true, + "fountain": true, + "grit_bin": true, + "toilets": true, + "waste_basket": true + }, + "leisure": { + "park": true, + "pitch": true, + "playground": true, + "firepit": true, + "dog_park": true, + "picnic_table": true, + "track": true + }, + "natural": { + "tree": true + }, + "tourism": { + "picnic_site": true + } + } + } +} diff --git a/data/presets/groups/cluster/pipeline.json b/data/presets/groups/cluster/pipeline.json new file mode 100644 index 0000000000..1d55fa6a55 --- /dev/null +++ b/data/presets/groups/cluster/pipeline.json @@ -0,0 +1,12 @@ +{ + "cluster": true, + "matches": { + "anyTags": { + "man_made": { + "pipeline": true, + "storage_tank": true + }, + "pipeline": "*" + } + } +} diff --git a/data/presets/groups/cluster/post_office.json b/data/presets/groups/cluster/post_office.json new file mode 100644 index 0000000000..683c84d274 --- /dev/null +++ b/data/presets/groups/cluster/post_office.json @@ -0,0 +1,15 @@ +{ + "cluster": true, + "matches": { + "anyTags": { + "amenity": { + "post_box": true, + "post_office": true + }, + "vending": { + "stamps": true, + "parcel_pickup": true + } + } + } +} diff --git a/data/presets/groups/cluster/power.json b/data/presets/groups/cluster/power.json new file mode 100644 index 0000000000..79f25be32a --- /dev/null +++ b/data/presets/groups/cluster/power.json @@ -0,0 +1,8 @@ +{ + "cluster": true, + "matches": { + "anyTags": { + "power": "*" + } + } +} diff --git a/data/presets/groups/cluster/school.json b/data/presets/groups/cluster/school.json new file mode 100644 index 0000000000..5a11d09a4f --- /dev/null +++ b/data/presets/groups/cluster/school.json @@ -0,0 +1,41 @@ +{ + "cluster": true, + "matches": { + "anyTags": { + "amenity": { + "bench": true, + "bicycle_parking": true, + "drinking_water": true, + "parking": true, + "school": true, + "waste_basket": true + }, + "building": { + "school": true + }, + "leisure": { + "picnic_table": true, + "pitch": true, + "playground": true, + "track": true + }, + "man_made": { + "flagpole": true + }, + "natural": { + "tree": true + }, + "sport": { + "american_football": true, + "baseball": true, + "basketball": true, + "cricket": true, + "field_hockey": true, + "running": true, + "soccer": true, + "softball": true, + "tennis": true + } + } + } +} diff --git a/data/presets/groups/cluster/service_station.json b/data/presets/groups/cluster/service_station.json new file mode 100644 index 0000000000..42e97effdc --- /dev/null +++ b/data/presets/groups/cluster/service_station.json @@ -0,0 +1,30 @@ +{ + "cluster": true, + "matches": { + "anyTags": { + "amenity": { + "car_wash": true, + "compressed_air": true, + "fuel": true, + "vending_machine": true + }, + "building": { + "roof": true + }, + "highway": { + "services": true, + "street_lamp": true + }, + "man_made": { + "storage_tank": true + }, + "shop": { + "convenience": true, + "car_repair": true + }, + "vending": { + "fuel": true + } + } + } +} diff --git a/data/presets/groups/cluster/suburban_residential.json b/data/presets/groups/cluster/suburban_residential.json new file mode 100644 index 0000000000..8960b07c12 --- /dev/null +++ b/data/presets/groups/cluster/suburban_residential.json @@ -0,0 +1,41 @@ +{ + "cluster": true, + "matches": { + "anyTags": { + "building": { + "carport": true, + "detached": true, + "garage": true, + "house": true, + "residential": true, + "semidetached_house": true, + "static_caravan": true + }, + "footway": { + "sidewalk": true + }, + "highway": { + "residential": true, + "footway": true, + "street_lamp": true, + "turning_circle": true + }, + "landuse": { + "residential": true + }, + "leisure": { + "swimming_pool": true + }, + "man_made": { + "street_cabinet": true + }, + "natural": { + "tree": true + }, + "service": { + "alley": true, + "driveway": true + } + } + } +} diff --git a/data/presets/schema/group.json b/data/presets/schema/group.json index d399edfa30..f121967158 100644 --- a/data/presets/schema/group.json +++ b/data/presets/schema/group.json @@ -11,6 +11,10 @@ "description": "A short English description for the group, if needed for the UI. Translatable", "type": "string" }, + "cluster": { + "description": "Specify if features in this group are often found near each other", + "type": "boolean" + }, "toggleable": { "anyOf": [ { diff --git a/modules/entities/group_manager.js b/modules/entities/group_manager.js index 71f00c2a9b..367532d9dc 100644 --- a/modules/entities/group_manager.js +++ b/modules/entities/group_manager.js @@ -7,6 +7,24 @@ function entityGroup(id, group) { group.id = id; + group.scoredPresetsByGeometry = {}; + + group.scoredPresets = function() { + var allScoredPresets = []; + function addScoredPreset(scoredPresetForGeom) { + var existingScoredPresetIndex = allScoredPresets.findIndex(function(item) { + return item.preset === scoredPresetForGeom.preset; + }); + if (existingScoredPresetIndex === -1) { + allScoredPresets.push(scoredPresetForGeom); + } + } + for (var geom in group.scoredPresetsByGeometry) { + group.scoredPresetsByGeometry[geom].forEach(addScoredPreset); + } + return allScoredPresets; + }; + // returns the part of the `id` after the last slash group.basicID = function() { var index = group.id.lastIndexOf('/'); @@ -128,15 +146,21 @@ function entityGroupManager() { return _groups; }; - manager.toggleableGroups = function() { - return _groupsArray.filter(function(group) { - return group.toggleable; - }); + manager.groupsArray = function() { + return _groupsArray; }; - manager.groupsForEntity = function(entity, graph) { - return _groupsArray.filter(function(group) { - return group.matchesTags(entity.tags, entity.geometry(graph)); + manager.toggleableGroups = _groupsArray.filter(function(group) { + return group.toggleable; + }); + + manager.clusterGroups = _groupsArray.filter(function(group) { + return group.cluster; + }); + + manager.clearCachedPresets = function() { + _groupsArray.forEach(function(group) { + group.scoredPresetsByGeometry = {}; }); }; diff --git a/modules/presets/index.js b/modules/presets/index.js index a7c94b6fb5..9efabc27bf 100644 --- a/modules/presets/index.js +++ b/modules/presets/index.js @@ -8,6 +8,7 @@ import { presetCollection } from './collection'; import { presetField } from './field'; import { presetPreset } from './preset'; import { utilArrayUniq, utilRebind } from '../util'; +import { groupManager } from '../entities/group_manager'; export { presetCategory }; export { presetCollection }; @@ -264,6 +265,8 @@ export function presetIndex(context) { _universal = []; _favorites = null; _recents = null; + + groupManager.clearCachedPresets(); // Index of presets by (geometry, tag key). _index = { diff --git a/modules/presets/preset.js b/modules/presets/preset.js index 581598bd6c..78417fd83c 100644 --- a/modules/presets/preset.js +++ b/modules/presets/preset.js @@ -1,5 +1,6 @@ import { t } from '../util/locale'; import { osmAreaKeys } from '../osm/tags'; +import { groupManager } from '../entities/group_manager'; import { utilArrayUniq, utilObjectOmit } from '../util'; @@ -91,14 +92,14 @@ export function presetPreset(id, preset, fields, visible, rawPresets) { preset.fields = (preset.fields || []).map(getFields); preset.moreFields = (preset.moreFields || []).map(getFields); - preset.geometry = (preset.geometry || []); - - visible = visible || false; function getFields(f) { return fields[f]; } + preset.geometry = (preset.geometry || []); + + visible = visible || false; preset.matchGeometry = function(geometry) { return preset.geometry.indexOf(geometry) >= 0; @@ -266,5 +267,39 @@ export function presetPreset(id, preset, fields, visible, rawPresets) { }; + function loadGroups() { + if (preset.suggestion) return {}; + var groupsByGeometry = {}; + var tags = preset.tags; + + var allGroups = groupManager.groupsArray(); + + preset.geometry.forEach(function(geom) { + allGroups.forEach(function(group) { + if (!group.matchesTags(tags, geom)) return; + + var score = 1; + for (var key in tags) { + var subtags = {}; + subtags[key] = tags[key]; + if (!group.matchesTags(subtags, geom)) return; + score += 0.15; + } + if (!groupsByGeometry[geom]) groupsByGeometry[geom] = []; + groupsByGeometry[geom].push({ + group: group, + score: score + }); + if (!group.scoredPresetsByGeometry[geom]) group.scoredPresetsByGeometry[geom] = []; + group.scoredPresetsByGeometry[geom].push({ + preset: preset, + score: score + }); + }); + }); + return groupsByGeometry; + } + preset.groupsByGeometry = loadGroups(); + return preset; } diff --git a/modules/renderer/features.js b/modules/renderer/features.js index 8bb1c85e59..e2f1f502ee 100644 --- a/modules/renderer/features.js +++ b/modules/renderer/features.js @@ -10,7 +10,6 @@ export function rendererFeatures(context) { var dispatch = d3_dispatch('change', 'redraw'); var features = utilRebind({}, dispatch, 'on'); var _deferred = new Set(); - var toggleableGroups = groupManager.toggleableGroups(); var _cullFactor = 1; var _cache = {}; @@ -65,8 +64,8 @@ export function rendererFeatures(context) { _rulesArray.push(_rules[k]); } - for (var id in toggleableGroups) { - var group = toggleableGroups[id]; + for (var id in groupManager.toggleableGroups) { + var group = groupManager.toggleableGroups[id]; defineRule(group.basicID(), group.matchesTags, group.localizedName(), group.localizedDescription(), group.toggleableMax()); } diff --git a/modules/ui/preset_browser.js b/modules/ui/preset_browser.js index b6b73f78a1..699d32a05f 100644 --- a/modules/ui/preset_browser.js +++ b/modules/ui/preset_browser.js @@ -10,6 +10,7 @@ import { tooltip } from '../util/tooltip'; import { uiTagReference } from './tag_reference'; import { uiPresetFavoriteButton } from './preset_favorite_button'; import { uiPresetIcon } from './preset_icon'; +import { groupManager } from '../entities/group_manager'; import { utilKeybinding, utilNoAuto } from '../util'; export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { @@ -128,7 +129,7 @@ export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { search.node().focus(); search.node().setSelectionRange(0, search.property('value').length); - updateForFeatureHiddenState(); + updateResultsList(); context.features() .on('change.preset-browser.' + uid , updateForFeatureHiddenState); @@ -241,25 +242,93 @@ export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { } } + function getDefaultResults() { + + var graph = context.graph(); + + var clusterGroups = groupManager.clusterGroups; + var scoredGroups = {}; + + var queryExtent = context.map().extent(); + var nearbyEntities = context.history().tree().intersects(queryExtent, graph); + for (var i in nearbyEntities) { + var entity = nearbyEntities[i]; + var geom = entity.geometry(graph); + for (var j in clusterGroups) { + var group = clusterGroups[j]; + if (group.matchesTags(entity.tags, geom)) { + if (!scoredGroups[group.id]) { + scoredGroups[group.id] = { + group: group, + score: 0 + }; + } + var entityScore; + if (geom === 'area') { + // significantly prefer area features that dominate the viewport + // (e.g. editing within a park or school grounds) + var containedPercent = queryExtent.percentContainedIn(entity.extent(graph)); + entityScore = Math.max(1, containedPercent * 10); + } else { + entityScore = 1; + } + scoredGroups[group.id].score += entityScore; + } + } + } + var scoredPresets = {}; + Object.values(scoredGroups).forEach(function(item) { + item.group.scoredPresets().forEach(function(groupScoredPreset) { + var combinedScore = groupScoredPreset.score * item.score; + if (!scoredPresets[groupScoredPreset.preset.id]) { + scoredPresets[groupScoredPreset.preset.id] = { + preset: groupScoredPreset.preset, + score: combinedScore + }; + } else { + scoredPresets[groupScoredPreset.preset.id].score += combinedScore; + } + }); + }); + + return Object.values(scoredPresets).sort(function(item1, item2) { + return item2.score - item1.score; + }).map(function(item) { + return item.preset; + }).filter(function(d) { + for (var i in shownGeometry) { + if (d.geometry.indexOf(shownGeometry[i]) !== -1) return true; + } + return false; + }).slice(0, 50); + } + function updateResultsList() { - if (search.empty()) return; + if (!browser.isShown()) return; + + var list = popoverContent.selectAll('.list'); + + if (search.empty() || list.empty()) return; var value = search.property('value'); var results; if (value.length) { results = presets.search(value, shownGeometry).collection; } else { + /* var recents = context.presets().getRecents(); recents = recents.filter(function(d) { return shownGeometry.indexOf(d.geometry) !== -1; }); results = recents.slice(0, 35); + */ + results = getDefaultResults(); } - var list = popoverContent.selectAll('.list').call(drawList, results); + list.call(drawList, results); - popover.selectAll('.list .list-item.focused') + list.selectAll('.list-item.focused') .classed('focused', false); focusListItem(popover.selectAll('.list > .list-item:first-child'), false); From 357812b244ca6f1cdce96f055a2ac8fbabfe3e42 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 26 Jun 2019 15:58:24 -0400 Subject: [PATCH 108/774] Add and adjust cluster groups --- data/presets/groups.json | 8 ++++-- data/presets/groups/cluster/airport.json | 11 ++++++++ data/presets/groups/cluster/bank.json | 11 ++++++++ data/presets/groups/cluster/parking.json | 16 +++++++++++ data/presets/groups/cluster/school.json | 2 -- .../groups/cluster/suburban_residential.json | 11 -------- data/presets/groups/cluster/subway.json | 28 +++++++++++++++++++ 7 files changed, 72 insertions(+), 15 deletions(-) create mode 100644 data/presets/groups/cluster/airport.json create mode 100644 data/presets/groups/cluster/bank.json create mode 100644 data/presets/groups/cluster/parking.json create mode 100644 data/presets/groups/cluster/subway.json diff --git a/data/presets/groups.json b/data/presets/groups.json index 960de6b6c2..dd6881252e 100644 --- a/data/presets/groups.json +++ b/data/presets/groups.json @@ -1,15 +1,19 @@ { "groups": { + "cluster/airport": {"cluster": true, "matches": {"anyTags": {"aeroway": "*", "building": {"hangar": true}}}}, + "cluster/bank": {"cluster": true, "matches": {"anyTags": {"amenity": {"atm": true, "bank": true}}}}, "cluster/campground": {"cluster": true, "matches": {"anyTags": {"amenity": {"bbq": true, "bench": true, "drinking_water": true, "grit_bin": true, "sanitary_dump_station": true, "shower": true, "toilets": true, "water_point": true, "waste_basket": true}, "camp_site": {"camp_pitch": true}, "leisure": {"playground": true, "firepit": true, "picnic_table": true}, "tourism": {"camp_site": true, "caravan_site": true}}}}, "cluster/marina": {"cluster": true, "matches": {"anyTags": {"amenity": {"boat_rental": true}, "leisure": {"fishing": true, "marina": true, "slipway": true}, "man_made": {"breakwater": true, "pier": true}, "seamark:type": {"mooring": true}, "shop": {"fishing": true}, "waterway": {"boatyard": true, "dock": true, "fuel": true, "sanitary_dump_station": true, "water_point": true}}}}, "cluster/military": {"cluster": true, "matches": {"anyTags": {"building": {"bunker": true}, "landuse": {"military": true}, "military": {"airfield": true, "barracks": true, "bunker": true, "checkpoint": true, "naval_base": true, "obstacle_course": true, "office": true, "range": true, "training_area": true}}}}, "cluster/park": {"cluster": true, "matches": {"anyTags": {"amenity": {"bbq": true, "bench": true, "drinking_water": true, "fountain": true, "grit_bin": true, "toilets": true, "waste_basket": true}, "leisure": {"park": true, "pitch": true, "playground": true, "firepit": true, "dog_park": true, "picnic_table": true, "track": true}, "natural": {"tree": true}, "tourism": {"picnic_site": true}}}}, + "cluster/parking": {"cluster": true, "matches": {"anyTags": {"amenity": {"parking": true}, "service": {"parking_aisle": true}, "vending": {"parking_tickets": true}}}}, "cluster/pipeline": {"cluster": true, "matches": {"anyTags": {"man_made": {"pipeline": true, "storage_tank": true}, "pipeline": "*"}}}, "cluster/post_office": {"cluster": true, "matches": {"anyTags": {"amenity": {"post_box": true, "post_office": true}, "vending": {"stamps": true, "parcel_pickup": true}}}}, "cluster/power": {"cluster": true, "matches": {"anyTags": {"power": "*"}}}, - "cluster/school": {"cluster": true, "matches": {"anyTags": {"amenity": {"bench": true, "bicycle_parking": true, "drinking_water": true, "parking": true, "school": true, "waste_basket": true}, "building": {"school": true}, "leisure": {"picnic_table": true, "pitch": true, "playground": true, "track": true}, "man_made": {"flagpole": true}, "natural": {"tree": true}, "sport": {"american_football": true, "baseball": true, "basketball": true, "cricket": true, "field_hockey": true, "running": true, "soccer": true, "softball": true, "tennis": true}}}}, + "cluster/school": {"cluster": true, "matches": {"anyTags": {"amenity": {"bench": true, "bicycle_parking": true, "school": true, "waste_basket": true}, "building": {"school": true}, "leisure": {"picnic_table": true, "pitch": true, "playground": true, "track": true}, "man_made": {"flagpole": true}, "natural": {"tree": true}, "sport": {"american_football": true, "baseball": true, "basketball": true, "cricket": true, "field_hockey": true, "running": true, "soccer": true, "softball": true, "tennis": true}}}}, "cluster/service_station": {"cluster": true, "matches": {"anyTags": {"amenity": {"car_wash": true, "compressed_air": true, "fuel": true, "vending_machine": true}, "building": {"roof": true}, "highway": {"services": true, "street_lamp": true}, "man_made": {"storage_tank": true}, "shop": {"convenience": true, "car_repair": true}, "vending": {"fuel": true}}}}, - "cluster/suburban_residential": {"cluster": true, "matches": {"anyTags": {"building": {"carport": true, "detached": true, "garage": true, "house": true, "residential": true, "semidetached_house": true, "static_caravan": true}, "footway": {"sidewalk": true}, "highway": {"residential": true, "footway": true, "street_lamp": true, "turning_circle": true}, "landuse": {"residential": true}, "leisure": {"swimming_pool": true}, "man_made": {"street_cabinet": true}, "natural": {"tree": true}, "service": {"alley": true, "driveway": true}}}}, + "cluster/suburban_residential": {"cluster": true, "matches": {"anyTags": {"building": {"carport": true, "detached": true, "garage": true, "house": true, "residential": true, "semidetached_house": true, "static_caravan": true}, "highway": {"residential": true, "street_lamp": true, "turning_circle": true}, "landuse": {"residential": true}, "leisure": {"swimming_pool": true}, "man_made": {"street_cabinet": true}}}}, + "cluster/subway": {"cluster": true, "matches": {"any": [{"anyTags": {"highway": {"elevator": true}, "railway": {"subway": true, "subway_entrance": true}}}, {"allTags": {"subway": "yes", "public_transport": {"platform": true, "station": true, "stop_position": true}}}]}}, "toggleable/aerialways": {"name": "Aerial Features", "description": "Chair Lifts, Gondolas, Zip Lines, etc.", "toggleable": true, "matches": {"allTags": {"aerialway": {"*": true, "no": false, "yes": false, "station": false}}}}, "toggleable/boundaries": {"name": "Boundaries", "description": "Administrative Boundaries", "toggleable": {"hiddenByDefault": true}, "matches": {"geometry": ["line", "area", "relation"], "allTags": {"boundary": {"*": true, "no": false}}, "groups": {"toggleable/traffic_roads": false, "toggleable/service_roads": false, "toggleable/paths": false, "toggleable/water": false, "toggleable/pistes": false, "toggleable/railway": false, "toggleable/landuse": false, "toggleable/building": false, "toggleable/power": false}}}, "toggleable/building_parts": {"name": "Building Parts", "description": "3D Building and Roof Components", "toggleable": true, "matches": {"allTags": {"building:part": {"*": true, "no": false}}}}, diff --git a/data/presets/groups/cluster/airport.json b/data/presets/groups/cluster/airport.json new file mode 100644 index 0000000000..dc2cf676b6 --- /dev/null +++ b/data/presets/groups/cluster/airport.json @@ -0,0 +1,11 @@ +{ + "cluster": true, + "matches": { + "anyTags": { + "aeroway": "*", + "building": { + "hangar": true + } + } + } +} diff --git a/data/presets/groups/cluster/bank.json b/data/presets/groups/cluster/bank.json new file mode 100644 index 0000000000..cb9c379f2b --- /dev/null +++ b/data/presets/groups/cluster/bank.json @@ -0,0 +1,11 @@ +{ + "cluster": true, + "matches": { + "anyTags": { + "amenity": { + "atm": true, + "bank": true + } + } + } +} diff --git a/data/presets/groups/cluster/parking.json b/data/presets/groups/cluster/parking.json new file mode 100644 index 0000000000..844259d4a9 --- /dev/null +++ b/data/presets/groups/cluster/parking.json @@ -0,0 +1,16 @@ +{ + "cluster": true, + "matches": { + "anyTags": { + "amenity": { + "parking": true + }, + "service": { + "parking_aisle": true + }, + "vending": { + "parking_tickets": true + } + } + } +} diff --git a/data/presets/groups/cluster/school.json b/data/presets/groups/cluster/school.json index 5a11d09a4f..858501d632 100644 --- a/data/presets/groups/cluster/school.json +++ b/data/presets/groups/cluster/school.json @@ -5,8 +5,6 @@ "amenity": { "bench": true, "bicycle_parking": true, - "drinking_water": true, - "parking": true, "school": true, "waste_basket": true }, diff --git a/data/presets/groups/cluster/suburban_residential.json b/data/presets/groups/cluster/suburban_residential.json index 8960b07c12..80b7ae7055 100644 --- a/data/presets/groups/cluster/suburban_residential.json +++ b/data/presets/groups/cluster/suburban_residential.json @@ -11,12 +11,8 @@ "semidetached_house": true, "static_caravan": true }, - "footway": { - "sidewalk": true - }, "highway": { "residential": true, - "footway": true, "street_lamp": true, "turning_circle": true }, @@ -28,13 +24,6 @@ }, "man_made": { "street_cabinet": true - }, - "natural": { - "tree": true - }, - "service": { - "alley": true, - "driveway": true } } } diff --git a/data/presets/groups/cluster/subway.json b/data/presets/groups/cluster/subway.json new file mode 100644 index 0000000000..a87cf76d3a --- /dev/null +++ b/data/presets/groups/cluster/subway.json @@ -0,0 +1,28 @@ +{ + "cluster": true, + "matches": { + "any": [ + { + "anyTags": { + "highway": { + "elevator": true + }, + "railway": { + "subway": true, + "subway_entrance": true + } + } + }, + { + "allTags": { + "subway": "yes", + "public_transport": { + "platform": true, + "station": true, + "stop_position": true + } + } + } + ] + } +} From 4ab97128c4aae04b627cf8f19091c6c0fc1cf5bc Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 26 Jun 2019 16:04:56 -0400 Subject: [PATCH 109/774] Don't render multipolygon members in yellow when the multipolygon is selected (close #6558) --- modules/modes/select.js | 2 +- modules/util/util.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/modes/select.js b/modules/modes/select.js index 8912093ffb..79a387b0bc 100644 --- a/modules/modes/select.js +++ b/modules/modes/select.js @@ -372,7 +372,7 @@ export function modeSelect(context, selectedIDs) { } } else { context.surface() - .selectAll(utilDeepMemberSelector(selectedIDs, context.graph())) + .selectAll(utilDeepMemberSelector(selectedIDs, context.graph(), true /* skipMultipolgonMembers */)) .classed('selected-member', true); selection .classed('selected', true); diff --git a/modules/util/util.js b/modules/util/util.js index 999bc01449..d821a40398 100644 --- a/modules/util/util.js +++ b/modules/util/util.js @@ -91,7 +91,7 @@ export function utilEntityOrDeepMemberSelector(ids, graph) { // returns an selector to select entity ids for: // - deep descendant entityIDs for any of those entities that are relations -export function utilDeepMemberSelector(ids, graph) { +export function utilDeepMemberSelector(ids, graph, skipMultipolgonMembers) { var idsSet = new Set(ids); var seen = new Set(); var returners = new Set(); @@ -108,7 +108,7 @@ export function utilDeepMemberSelector(ids, graph) { var entity = graph.hasEntity(id); if (!entity || entity.type !== 'relation') return; - + if (skipMultipolgonMembers && entity.isMultipolygon()) return; entity.members .map(function(member) { return member.id; }) .forEach(collectDeepDescendants); // recurse From 910edd0457e09d57f14684a0ccf34f348e899786 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Fri, 28 Jun 2019 13:46:48 -0400 Subject: [PATCH 110/774] Add disclosure button for hiding the assistant body (close #6586) Refactor assistant screens into distinct panel objects Use light background for some assistant panel screens Remove creepy smile icon for low count changeset success --- build_data.js | 1 - css/80_app.css | 128 +++++--- modules/ui/assistant.js | 557 ++++++++++++++++++++++------------ modules/ui/success.js | 4 +- svg/fontawesome/fas-smile.svg | 1 - 5 files changed, 447 insertions(+), 244 deletions(-) delete mode 100644 svg/fontawesome/fas-smile.svg diff --git a/build_data.js b/build_data.js index 2bf4744e39..aafe2b4ab5 100644 --- a/build_data.js +++ b/build_data.js @@ -56,7 +56,6 @@ module.exports = function buildData() { // Font Awesome icons used var faIcons = { - 'fas-smile': {}, 'fas-smile-beam': {}, 'fas-grin-beam': {}, 'fas-laugh-beam': {}, diff --git a/css/80_app.css b/css/80_app.css index 690fb74ef4..bcc123546f 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -1016,8 +1016,6 @@ a.hide-toggle { ------------------------------------------------------- */ .assistant { flex: 0 0 auto; - background: rgba(45, 41, 41, 0.95); - color: #fff; border-radius: 4px; display: flex; flex-direction: column; @@ -1026,26 +1024,42 @@ a.hide-toggle { max-height: 100%; line-height: 1.35em; + background: rgba(45, 41, 41, 0.90); + color: #fff; + -webkit-box-shadow: 0px 0px 6px 0px rgba(0,0,0,0.5); -moz-box-shadow: 0px 0px 6px 0px rgba(0,0,0,0.5); box-shadow: 0px 0px 6px 0px rgba(0,0,0,0.5); -webkit-backdrop-filter: blur(2.5px); backdrop-filter: blur(2.5px); + /* + -webkit-transition: background 100ms; + -moz-transition: background 100ms; + -o-transition: background 100ms; + transition: background 100ms; + */ +} +.assistant.light:not(.body-collapsed) { + background: rgba(246, 246, 246, 0.98); + color: #333; } .assistant .sep-top { border-top: 1px solid rgba(127, 127, 127, 0.5); } .assistant .assistant-row { display: flex; + flex: 0 0 auto; } + +/* assistant header */ .assistant .assistant-header { flex: 0 0 auto; } .assistant .icon-col { flex: 0 0 auto; padding: 10px; - padding-bottom: 0; + min-width: 50px; } .assistant .icon-col > .icon { width: 30px; @@ -1054,17 +1068,19 @@ a.hide-toggle { .assistant .icon-col > .preset-icon-container { margin: -5px; } -.assistant .body-col { - padding: 10px; +.assistant .main-col { + flex: 1 1 auto; + padding-top: 10px; + padding-bottom: 10px; } -[dir='ltr'] .assistant .body-col { - padding-left: 0; +[dir='ltr'] .assistant .main-col { + padding-right: 10px; } -[dir='rtl'] .assistant .body-col { - padding-right: 0; +[dir='rtl'] .assistant .main-col { + padding-left: 10px; } .assistant .mode-label { - color: #ccc; + opacity: 0.8; text-transform: uppercase; letter-spacing: 0.7px; font-size: 10px; @@ -1077,16 +1093,37 @@ a.hide-toggle { font-weight: bold; line-height: normal; } -.assistant .body-text { - font-size: 12px; - color: #ccc; - margin-top: 6px; +.assistant .control-col { + flex: 0 0 auto; } -.assistant .body-text:empty, -.assistant .main-footer:empty, -.assistant .assistant-body:empty { +.assistant .control-col button { + background: transparent; + color: #808080; + height: 100%; + width: 40px; +} +.assistant .assistant-header .header-body { + margin-top: 8px; +} +.assistant .assistant-header .header-body:empty { + display: none; +} + +/* assistant body */ +.assistant .assistant-body { + display: flex; + flex-direction: column; +} +.assistant.body-collapsed .assistant-body { display: none; } +.assistant .assistant-body .feature-list-pane { + padding: 0px 15px 10px 15px; +} +.assistant .body-text { + font-size: 12px; + opacity: 0.8; +} .assistant b { font-weight: bold; } @@ -1095,29 +1132,6 @@ a.hide-toggle { margin-top: 10px; content: " "; } -.assistant .main-footer { - margin-top: 12px; -} -.assistant button.geocode-item, -.assistant .main-footer button { - min-width: 100px; - height: auto; - padding: 7px 12px; - line-height: 1em; - font-size: 13px; -} -[dir='ltr'] .assistant .main-footer button:first-of-type { - margin-right: 8px; -} -[dir='rtl'] .assistant .main-footer button:first-of-type { - margin-left: 8px; -} -.assistant .assistant-body { - display: flex; -} -.assistant .assistant-body .feature-list-pane { - padding: 0px 15px 10px 15px; -} .assistant .search-header { position: relative; } @@ -1132,7 +1146,6 @@ a.hide-toggle { left: auto; right: 7px; } - .assistant input[type='search'] { height: 30px; width: 100%; @@ -1145,14 +1158,39 @@ a.hide-toggle { color: #fff; min-width: 225px; } - +.assistant .main-footer { + margin-top: 12px; +} +.assistant button.geocode-item, +.assistant .main-footer button { + min-width: 100px; + height: auto; + padding: 7px 12px; + line-height: 1em; + font-size: 13px; +} +[dir='ltr'] .assistant .main-footer button:first-of-type { + margin-right: 8px; +} +[dir='rtl'] .assistant .main-footer button:first-of-type { + margin-left: 8px; +} +.assistant .body-text:empty, +.assistant .main-footer:empty, +.assistant .assistant-body:empty { + display: none; +} +/* prominent assistant */ .assistant.prominent .assistant-header .body-col { padding-bottom: 16px; } +.assistant.prominent .icon-col { + min-width: 60px; +} .assistant.prominent .icon-col .icon { width: 40px; height: 40px; - color: #FFCF4A; + color: #F49700; /*#FFCF4A*/ } .assistant.prominent .mode-label { display: none; @@ -1161,11 +1199,9 @@ a.hide-toggle { font-family: Georgia, serif; font-weight: bold; font-size: 20px; - margin-top: 6px; } .assistant.prominent .body-text { font-size: 14px; - margin-top: 10px; line-height: 1.35em; } @@ -1306,7 +1342,7 @@ a.hide-toggle { .community-event, .community-more { - background-color: #4c4c4c; + background-color: #e5e5e5; padding: 8px; border-radius: 4px; margin-bottom: 5px; diff --git a/modules/ui/assistant.js b/modules/ui/assistant.js index e47279e40d..3210d198a5 100644 --- a/modules/ui/assistant.js +++ b/modules/ui/assistant.js @@ -14,6 +14,26 @@ import { uiSelectionList } from './selection_list'; import { geoRawMercator } from '../geo/raw_mercator'; import { decimalCoordinatePair, formattedRoundedDuration } from '../util/units'; +function utilTimeOfDayGreeting() { + return t('assistant.greetings.' + utilTimeframe()); +} + +function utilTimeframe() { + var now = new Date(); + var hours = now.getHours(); + if (hours >= 20 || hours <= 2) return 'night'; + if (hours >= 18) return 'evening'; + if (hours >= 12) return 'afternoon'; + return 'morning'; +} + +function utilGreetingIcon() { + var now = new Date(); + var hours = now.getHours(); + if (hours >= 6 && hours < 18) return 'fas-sun'; + return 'fas-moon'; +} + export function uiAssistant(context) { var defaultLoc = t('assistant.global_location'); @@ -57,15 +77,27 @@ export function uiAssistant(context) { didEditAnythingYet = true; } - function redraw() { - if (container.empty()) return; + var isBodyOpen = true; - var mode = context.mode(); - if (!mode || !mode.id) return; + function toggleBody() { + isBodyOpen = !isBodyOpen; + container.classed('body-collapsed', !isBodyOpen); + container.selectAll('.assistant-header .control-col .icon use') + .attr('href', '#iD-icon-' + (isBodyOpen ? 'up' : 'down')); + } - if (mode.id !== 'browse') { - updateDidEditStatus(); - } + function drawPanel(panel) { + + var isCollapsible = !panel.prominent && (panel.renderBody || panel.message); + + container.attr('class', + 'assistant ' + + (panel.theme || 'dark') + + ' ' + + (panel.prominent ? 'prominent' : '') + + ' ' + + (isCollapsible && !isBodyOpen ? 'body-collapsed' : '') + ); var iconCol = header.selectAll('.icon-col') .data([0]); @@ -74,195 +106,206 @@ export function uiAssistant(context) { .attr('class', 'icon-col') .merge(iconCol); - var mainCol = header.selectAll('.body-col') + var headerMainCol = header.selectAll('.main-col') .data([0]); - var mainColEnter = mainCol.enter() + var headerMainColEnter = headerMainCol.enter() .append('div') - .attr('class', 'body-col'); + .attr('class', 'main-col'); - mainColEnter.append('div') + headerMainColEnter.append('div') .attr('class', 'mode-label'); - mainColEnter.append('div') + headerMainColEnter.append('div') .attr('class', 'subject-title'); - mainColEnter.append('div') - .attr('class', 'body-text'); + headerMainColEnter.append('div') + .attr('class', 'header-body'); + + headerMainCol = headerMainColEnter.merge(headerMainCol); + + var controlCol = header.selectAll('.control-col') + .data(isCollapsible ? [0] : []); + + controlCol.exit() + .remove(); + + controlCol.enter() + .append('div') + .attr('class', 'control-col') + .append('button') + .call(svgIcon('#iD-icon-' + (isBodyOpen ? 'up' : 'down'))) + .on('click', function() { + toggleBody(); + }); - mainColEnter.append('div') - .attr('class', 'main-footer'); + var modeLabel = headerMainCol.selectAll('.mode-label'); + modeLabel.text(panel.modeLabel || ''); - mainCol = mainColEnter.merge(mainCol); + var subjectTitle = headerMainCol.selectAll('.subject-title'); - var modeLabel = mainCol.selectAll('.mode-label'), - subjectTitle = mainCol.selectAll('.subject-title'), - bodyTextArea = mainCol.selectAll('.body-text'), - mainFooter = mainCol.selectAll('.main-footer'); + subjectTitle.attr('class', 'subject-title ' + panel.titleClass || ''); + subjectTitle.text(panel.title); iconCol.html(''); - body.html(''); - bodyTextArea.html(''); - mainFooter.html(''); - subjectTitle.classed('map-center-location', false); - container.attr('class', 'assistant ' + mode.id); + if (panel.headerIcon) { + iconCol.call(svgIcon('#' + panel.headerIcon)); + } else { + iconCol.call(panel.renderHeaderIcon); + } - if (mode.id.indexOf('point') !== -1) { - iconCol.call(svgIcon('#iD-icon-point')); - } else if (mode.id.indexOf('line') !== -1) { - iconCol.call(svgIcon('#iD-icon-line')); - } else if (mode.id.indexOf('area') !== -1) { - iconCol.call(svgIcon('#iD-icon-area')); + body.html(''); + if (panel.renderBody) { + body.call(panel.renderBody); } - if (mode.id === 'save') { + var headerBody = headerMainCol.selectAll('.header-body'); + if (panel.renderHeaderBody) { + headerBody.call(panel.renderHeaderBody); + } else { + headerBody.text(''); + } - var summary = context.history().difference().summary(); + if (panel.message) { + var bodyTextRow = body.append('div') + .attr('class', 'assistant-row'); - modeLabel.text(t('assistant.mode.saving')); - iconCol.call(svgIcon('#iD-icon-save')); + bodyTextRow.append('div') + .attr('class', 'icon-col'); - var titleID = summary.length === 1 ? 'change' : 'changes'; - subjectTitle.text(t('commit.' + titleID, { count: summary.length })); + var bodyBodyCol = bodyTextRow + .append('div') + .attr('class', 'main-col sep-top'); - } else if (mode.id === 'add-point' || mode.id === 'add-line' || mode.id === 'add-area') { + var bodyTextArea = bodyBodyCol + .append('div') + .attr('class', 'body-text'); - modeLabel.text(t('assistant.mode.adding')); + bodyTextArea.text(panel.message); + } + } - subjectTitle.text(mode.title); + function panelToDraw() { - if (mode.id === 'add-point') { - bodyTextArea.html(t('assistant.instructions.add_point')); - } else if (mode.id === 'add-line') { - bodyTextArea.html(t('assistant.instructions.add_line')); - } else if (mode.id === 'add-area') { - bodyTextArea.html(t('assistant.instructions.add_area')); - } + var mode = context.mode(); - } else if (mode.id === 'draw-line' || mode.id === 'draw-area') { + if (mode.id === 'save') { - modeLabel.text(t('assistant.mode.drawing')); + return panelSave(context); - subjectTitle.text(mode.title); + } else if (mode.id === 'add-point' || mode.id === 'add-line' || + mode.id === 'add-area' || mode.id === 'draw-line' || + mode.id === 'draw-area') { - if (mode.id === 'draw-line') { - bodyTextArea.html(t('assistant.instructions.draw_line')); - } else if (mode.id === 'draw-area') { - bodyTextArea.html(t('assistant.instructions.draw_area')); - } + return panelAddDrawGeometry(context, mode); } else if (mode.id === 'select') { var selectedIDs = mode.selectedIDs(); - - modeLabel.text(t('assistant.mode.editing')); - if (selectedIDs.length === 1) { - - var id = selectedIDs[0]; - var entity = context.entity(id); - var geometry = entity.geometry(context.graph()); - var preset = context.presets().match(entity, context.graph()); - subjectTitle.text(utilDisplayLabel(entity, context)); - - iconCol.call(uiPresetIcon(context) - .geometry(geometry) - .preset(preset) - .sizeClass('small') - .pointMarker(false)); - - } else { - iconCol.call(svgIcon('#fas-edit')); - subjectTitle.text(t('assistant.feature_count.multiple', { count: selectedIDs.length.toString() })); - - var selectionList = uiSelectionList(context, selectedIDs); - body - .call(selectionList); + return panelSelectSingle(context, selectedIDs[0]); } + return panelSelectMultiple(context, selectedIDs); } else if (!didEditAnythingYet) { - container.classed('prominent', true); if (savedChangeset) { - drawSaveSuccessScreen(); - } else { - iconCol.call(svgIcon('#' + greetingIcon())); - subjectTitle.text(t('assistant.greetings.' + greetingTimeframe())); - - if (context.history().hasRestorableChanges()) { - drawRestoreScreen(); - } else { - bodyTextArea.html(t('assistant.welcome.' + (isFirstSession ? 'first_time' : 'return'))); - bodyTextArea.selectAll('a') - .attr('href', '#') - .on('click', function() { - isFirstSession = false; - updateDidEditStatus(); - context.container().call(uiIntro(context)); - redraw(); - }); - - mainFooter.append('button') - .attr('class', 'primary') - .on('click', function() { - updateDidEditStatus(); - redraw(); - }) - .append('span') - .text(t('assistant.welcome.start_mapping')); - } + return panelSuccess(context); } + if (context.history().hasRestorableChanges()) { + return panelRestore(context); + } + return panelWelcome(context); + } - } else { - iconCol.call(svgIcon('#fas-map-marked-alt')); + scheduleCurrentLocationUpdate(); + return panelMapping(context); + } - modeLabel.text(t('assistant.mode.mapping')); + function redraw() { + if (container.empty()) return; - subjectTitle.classed('map-center-location', true); - subjectTitle.text(currLocation); - scheduleCurrentLocationUpdate(); + var mode = context.mode(); + if (!mode || !mode.id) return; - body - .append('div') - .attr('class', 'feature-list-pane') - .call(featureSearch); + if (mode.id !== 'browse') { + updateDidEditStatus(); } - function drawSaveSuccessScreen() { + drawPanel(panelToDraw()); + } + + function scheduleCurrentLocationUpdate() { + debouncedGetLocation(context.map().center(), context.map().zoom(), function(placeName) { + currLocation = placeName ? placeName : defaultLoc; + container.selectAll('.map-center-location') + .text(currLocation); + }); + } + + var debouncedGetLocation = _debounce(getLocation, 250); + function getLocation(loc, zoom, completionHandler) { - subjectTitle.text(t('assistant.commit.success.thank_you')); + if (!services.geocoder || (zoom && zoom < 9)) { + completionHandler(null); + return; + } - var savedIcon; - if (savedChangeCount <= 5) { - savedIcon = 'smile'; - } else if (savedChangeCount <= 25) { - savedIcon = 'smile-beam'; - } else if (savedChangeCount <= 50) { - savedIcon = 'grin-beam'; - } else { - savedIcon = 'laugh-beam'; + services.geocoder.reverse(loc, function(err, result) { + if (err || !result || !result.address) { + completionHandler(null); + return; } - iconCol.call(svgIcon('#fas-' + savedIcon)); - bodyTextArea.html( - '' + t('assistant.commit.success.just_improved', { location: currLocation }) + '' + - '
' + var addr = result.address; + var place = ((!zoom || zoom > 14) && addr && (addr.town || addr.city || addr.county)) || ''; + var region = (addr && (addr.state || addr.country)) || ''; + var separator = (place && region) ? t('success.thank_you_where.separator') : ''; + + var formattedName = t('success.thank_you_where.format', + { place: place, separator: separator, region: region } ); - var link = bodyTextArea - .append('span') - .text(t('assistant.commit.success.propagation_help')) - .append('a') - .attr('class', 'link-out') - .attr('target', '_blank') - .attr('tabindex', -1) - .attr('href', t('success.help_link_url')); + completionHandler(formattedName); + }); + } - link.append('span') - .text(' ' + t('success.help_link_text')); + assistant.didSaveChangset = function(changeset, count) { + savedChangeset = changeset; + savedChangeCount = count; + didEditAnythingYet = false; + redraw(); + }; - link - .call(svgIcon('#iD-icon-out-link', 'inline')); + return assistant; + + function panelWelcome(context) { + + var panel = { + prominent: true, + theme: 'light', + headerIcon: utilGreetingIcon(), + title: utilTimeOfDayGreeting() + }; + + panel.renderHeaderBody = function(selection) { + + var bodyTextArea = selection + .append('div') + .attr('class', 'body-text'); + + var mainFooter = selection.append('div') + .attr('class', 'main-footer'); + + bodyTextArea.html(t('assistant.welcome.' + (isFirstSession ? 'first_time' : 'return'))); + bodyTextArea.selectAll('a') + .attr('href', '#') + .on('click', function() { + isFirstSession = false; + updateDidEditStatus(); + context.container().call(uiIntro(context)); + redraw(); + }); mainFooter.append('button') .attr('class', 'primary') @@ -271,14 +314,31 @@ export function uiAssistant(context) { redraw(); }) .append('span') - .text(t('assistant.commit.keep_mapping')); + .text(t('assistant.welcome.start_mapping')); + }; - var success = uiSuccess(context).changeset(savedChangeset); + return panel; + } - body.call(success); - } + function panelRestore(context) { + + var panel = { + prominent: true, + theme: 'light', + headerIcon: utilGreetingIcon(), + title: utilTimeOfDayGreeting() + }; + + panel.renderHeaderBody = function(selection) { + + var bodyTextArea = selection + .append('div') + .attr('class', 'body-text'); + + var mainFooter = selection + .append('div') + .attr('class', 'main-footer'); - function drawRestoreScreen() { var savedHistoryJSON = JSON.parse(context.history().savedHistoryJSON()); var lastGraph = savedHistoryJSON.stack && @@ -314,7 +374,7 @@ export function uiAssistant(context) { getLocation(loc, null, function(placeName) { if (placeName) { - container.selectAll('.restore-location') + selection.selectAll('.restore-location') .text(placeName); } }); @@ -339,67 +399,176 @@ export function uiAssistant(context) { }) .append('span') .text(t('assistant.restore.discard')); + }; + + return panel; + } + + function panelMapping() { + + var panel = { + headerIcon: 'fas-map-marked-alt', + modeLabel: t('assistant.mode.mapping'), + title: currLocation, + titleClass: 'map-center-location' + }; + + panel.renderBody = function(selection) { + selection + .append('div') + .attr('class', 'feature-list-pane') + .call(featureSearch); + }; + + return panel; + } + + function panelAddDrawGeometry(context, mode) { + + var icon; + if (mode.id.indexOf('point') !== -1) { + icon = 'iD-icon-point'; + } else if (mode.id.indexOf('line') !== -1) { + icon = 'iD-icon-line'; + } else { + icon = 'iD-icon-area'; + } + + var modeLabelID; + if (mode.id.indexOf('add') !== -1) { + modeLabelID = 'adding'; + } else { + modeLabelID = 'drawing'; } + var panel = { + headerIcon: icon, + modeLabel: t('assistant.mode.' + modeLabelID), + title: mode.title, + message: t('assistant.instructions.' + mode.id.replace('-', '_')) + }; + + return panel; } - function scheduleCurrentLocationUpdate() { - debouncedGetLocation(context.map().center(), context.map().zoom(), function(placeName) { - currLocation = placeName ? placeName : defaultLoc; - container.selectAll('.map-center-location') - .text(currLocation); - }); + function panelSelectSingle(context, id) { + + var entity = context.entity(id); + var geometry = entity.geometry(context.graph()); + var preset = context.presets().match(entity, context.graph()); + + var panel = { + theme: 'light', + modeLabel: t('assistant.mode.editing'), + title: utilDisplayLabel(entity, context) + }; + + panel.renderHeaderIcon = function(selection) { + selection.call(uiPresetIcon(context) + .geometry(geometry) + .preset(preset) + .sizeClass('small') + .pointMarker(false)); + }; + + return panel; } - function greetingTimeframe() { - var now = new Date(); - var hours = now.getHours(); - if (hours >= 20 || hours <= 2) return 'night'; - if (hours >= 18) return 'evening'; - if (hours >= 12) return 'afternoon'; - return 'morning'; + function panelSelectMultiple(context, selectedIDs) { + + var panel = { + headerIcon: 'fas-edit', + modeLabel: t('assistant.mode.editing'), + title: t('assistant.feature_count.multiple', { count: selectedIDs.length.toString() }) + }; + + panel.renderBody = function() { + var selectionList = uiSelectionList(context, selectedIDs); + body + .call(selectionList); + }; + + return panel; } - function greetingIcon() { - var now = new Date(); - var hours = now.getHours(); - if (hours >= 6 && hours < 18) return 'fas-sun'; - return 'fas-moon'; + function panelSave(context) { + + var summary = context.history().difference().summary(); + var titleID = summary.length === 1 ? 'change' : 'changes'; + + var panel = { + theme: 'light', + headerIcon: 'iD-icon-save', + modeLabel: t('assistant.mode.saving'), + title: t('commit.' + titleID, { count: summary.length }) + }; + + return panel; } - var debouncedGetLocation = _debounce(getLocation, 250); - function getLocation(loc, zoom, completionHandler) { + function panelSuccess(context) { - if (!services.geocoder || (zoom && zoom < 9)) { - completionHandler(null); - return; + var savedIcon; + if (savedChangeCount <= 25) { + savedIcon = 'fas-smile-beam'; + } else if (savedChangeCount <= 50) { + savedIcon = 'fas-grin-beam'; + } else { + savedIcon = 'fas-laugh-beam'; } - services.geocoder.reverse(loc, function(err, result) { - if (err || !result || !result.address) { - completionHandler(null); - return; - } + var panel = { + prominent: true, + theme: 'light', + headerIcon: savedIcon, + title: t('assistant.commit.success.thank_you') + }; - var addr = result.address; - var place = ((!zoom || zoom > 14) && addr && (addr.town || addr.city || addr.county)) || ''; - var region = (addr && (addr.state || addr.country)) || ''; - var separator = (place && region) ? t('success.thank_you_where.separator') : ''; + panel.renderHeaderBody = function(selection) { - var formattedName = t('success.thank_you_where.format', - { place: place, separator: separator, region: region } + var bodyTextArea = selection + .append('div') + .attr('class', 'body-text'); + + var mainFooter = selection.append('div') + .attr('class', 'main-footer'); + + bodyTextArea.html( + '' + t('assistant.commit.success.just_improved', { location: currLocation }) + '' + + '
' ); - completionHandler(formattedName); - }); - } + var link = bodyTextArea + .append('span') + .text(t('assistant.commit.success.propagation_help')) + .append('a') + .attr('class', 'link-out') + .attr('target', '_blank') + .attr('tabindex', -1) + .attr('href', t('success.help_link_url')); - assistant.didSaveChangset = function(changeset, count) { - savedChangeset = changeset; - savedChangeCount = count; - didEditAnythingYet = false; - redraw(); - }; + link.append('span') + .text(' ' + t('success.help_link_text')); - return assistant; + link + .call(svgIcon('#iD-icon-out-link', 'inline')); + + mainFooter.append('button') + .attr('class', 'primary') + .on('click', function() { + updateDidEditStatus(); + redraw(); + }) + .append('span') + .text(t('assistant.commit.keep_mapping')); + }; + + panel.renderBody = function(selection) { + + var success = uiSuccess(context).changeset(savedChangeset); + selection.call(success); + }; + + return panel; + } } diff --git a/modules/ui/success.js b/modules/ui/success.js index c1b8f09ebc..d3d8d1d2dc 100644 --- a/modules/ui/success.js +++ b/modules/ui/success.js @@ -72,7 +72,7 @@ export function uiSuccess(context) { var summaryDetail = summary .append('div') - .attr('class', 'body-col cell-detail summary-detail'); + .attr('class', 'main-col cell-detail summary-detail'); summaryDetail .append('a') @@ -151,7 +151,7 @@ export function uiSuccess(context) { var communityDetail = rowEnter .append('div') - .attr('class', 'body-col cell-detail community-detail'); + .attr('class', 'main-col cell-detail community-detail'); communityDetail .each(showCommunityDetails); diff --git a/svg/fontawesome/fas-smile.svg b/svg/fontawesome/fas-smile.svg deleted file mode 100644 index 91e480f713..0000000000 --- a/svg/fontawesome/fas-smile.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file From b92d4daee03ed2c0a670767752ed1700de01431a Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Fri, 28 Jun 2019 14:34:27 -0400 Subject: [PATCH 111/774] Move entity editor into the assistant --- css/80_app.css | 8 +++- modules/modes/select.js | 3 -- modules/ui/assistant.js | 9 +++++ modules/ui/entity_editor.js | 6 +-- modules/ui/feature_list.js | 1 + modules/ui/sidebar.js | 62 +----------------------------- modules/validations/missing_tag.js | 4 +- 7 files changed, 23 insertions(+), 70 deletions(-) diff --git a/css/80_app.css b/css/80_app.css index bcc123546f..8873f8fabe 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -1146,7 +1146,7 @@ a.hide-toggle { left: auto; right: 7px; } -.assistant input[type='search'] { +.assistant input[type='search'].feature-search { height: 30px; width: 100%; padding: 5px 10px; @@ -1454,6 +1454,12 @@ a.hide-toggle { width: 100%; height: 100%; } +.inspector-footer { + display: flex; + flex: 0 0 auto; + padding: 5px 20px 5px 20px; + border-top: 1px solid #ccc; +} .feature-list-pane { width: 100%; diff --git a/modules/modes/select.js b/modules/modes/select.js index 79a387b0bc..84f51c3c82 100644 --- a/modules/modes/select.js +++ b/modules/modes/select.js @@ -265,9 +265,6 @@ export function modeSelect(context, selectedIDs) { editMenu = uiEditMenu(context, operations); - context.ui().sidebar - .select(singular() ? singular().id : null, _newFeature); - context.history() .on('undone.select', update) .on('redone.select', update); diff --git a/modules/ui/assistant.js b/modules/ui/assistant.js index 3210d198a5..1ea99f4858 100644 --- a/modules/ui/assistant.js +++ b/modules/ui/assistant.js @@ -9,6 +9,7 @@ import { utilDisplayLabel } from '../util'; import { uiIntro } from './intro'; import { uiSuccess } from './success'; import { uiPresetIcon } from './preset_icon'; +import { uiEntityEditor } from './entity_editor'; import { uiFeatureList } from './feature_list'; import { uiSelectionList } from './selection_list'; import { geoRawMercator } from '../geo/raw_mercator'; @@ -43,6 +44,7 @@ export function uiAssistant(context) { header = d3_select(null), body = d3_select(null); + var entityEditor = uiEntityEditor(context); var featureSearch = uiFeatureList(context); var savedChangeset = null; @@ -471,6 +473,13 @@ export function uiAssistant(context) { .pointMarker(false)); }; + panel.renderBody = function(selection) { + entityEditor + .state('select') + .entityID(id); + selection.call(entityEditor); + }; + return panel; } diff --git a/modules/ui/entity_editor.js b/modules/ui/entity_editor.js index b3fff4ee93..ee2f9dbcf7 100644 --- a/modules/ui/entity_editor.js +++ b/modules/ui/entity_editor.js @@ -61,7 +61,7 @@ export function uiEntityEditor(context) { // Enter var bodyEnter = body.enter() .append('div') - .attr('class', 'inspector-body') + .attr('class', 'inspector-body sep-top') .on('scroll.entity-editor', function() { _scrolled = true; }); var presetButtonWrap = bodyEnter @@ -115,12 +115,12 @@ export function uiEntityEditor(context) { .attr('class', 'key-trap'); - var footer = selection.selectAll('.footer') + var footer = selection.selectAll('.inspector-footer') .data([0]); footer = footer.enter() .append('div') - .attr('class', 'footer') + .attr('class', 'inspector-footer') .merge(footer); footer diff --git a/modules/ui/feature_list.js b/modules/ui/feature_list.js index 113096967b..0aafccdc25 100644 --- a/modules/ui/feature_list.js +++ b/modules/ui/feature_list.js @@ -46,6 +46,7 @@ export function uiFeatureList(context) { search = searchWrap .append('input') + .attr('class', 'feature-search') .attr('placeholder', t('inspector.feature_list')) .attr('type', 'search') .call(utilNoAuto) diff --git a/modules/ui/sidebar.js b/modules/ui/sidebar.js index e675152cd3..21189ffb97 100644 --- a/modules/ui/sidebar.js +++ b/modules/ui/sidebar.js @@ -9,10 +9,9 @@ import { selectAll as d3_selectAll } from 'd3-selection'; -import { osmEntity, osmNote, qaError } from '../osm'; +import { osmNote, qaError } from '../osm'; import { services } from '../services'; import { uiDataEditor } from './data_editor'; -import { uiEntityEditor } from './entity_editor'; import { uiImproveOsmEditor } from './improveOSM_editor'; import { uiKeepRightEditor } from './keepRight_editor'; import { uiNoteEditor } from './note_editor'; @@ -20,7 +19,6 @@ import { textDirection } from '../util/locale'; export function uiSidebar(context) { - var inspector = uiEntityEditor(context); var dataEditor = uiDataEditor(context); var noteEditor = uiNoteEditor(context); var improveOsmEditor = uiImproveOsmEditor(context); @@ -138,26 +136,9 @@ export function uiSidebar(context) { selection.selectAll('.sidebar-component') .classed('inspector-hover', true); - } else if (!_current && (datum instanceof osmEntity)) { - - inspectorWrap - .classed('inspector-hidden', false) - .classed('inspector-hover', true); - - if (inspector.entityID() !== datum.id || inspector.state() !== 'hover') { - inspector - .state('hover') - .entityID(datum.id); - - inspectorWrap - .call(inspector); - } - } else if (!_current) { inspectorWrap .classed('inspector-hidden', true); - inspector - .state('hide'); } else if (_wasData || _wasNote || _wasQAError) { _wasNote = false; @@ -181,45 +162,6 @@ export function uiSidebar(context) { }; - sidebar.select = function(id, newFeature) { - sidebar.hide(); - - if (id) { - var entity = context.entity(id); - - // uncollapse the sidebar if adding a new, untagged feature - if (selection.classed('collapsed') && - newFeature && - context.presets().match(entity, context.graph()).isFallback()) { - - var extent = entity.extent(context.graph()); - sidebar.expand(sidebar.intersects(extent)); - } - - inspectorWrap - .classed('inspector-hidden', false) - .classed('inspector-hover', false); - - if (inspector.entityID() !== id || inspector.state() !== 'select') { - inspector - .state('select') - .entityID(id); - - inspectorWrap - .call(inspector, newFeature); - } - - sidebar.showPresetList = function() { - inspector.showList(context.presets().match(entity, context.graph())); - }; - - } else { - inspector - .state('hide'); - } - }; - - sidebar.show = function(component, element) { inspectorWrap .classed('inspector-hidden', true); @@ -305,11 +247,9 @@ export function uiSidebar(context) { resizer.on('dblclick', sidebar.toggle); } - sidebar.showPresetList = function() {}; sidebar.hover = function() {}; sidebar.hover.cancel = function() {}; sidebar.intersects = function() {}; - sidebar.select = function() {}; sidebar.show = function() {}; sidebar.hide = function() {}; sidebar.expand = function() {}; diff --git a/modules/validations/missing_tag.js b/modules/validations/missing_tag.js index 2ec9ce4d0b..ba5f99e75b 100644 --- a/modules/validations/missing_tag.js +++ b/modules/validations/missing_tag.js @@ -61,10 +61,10 @@ export function validationMissingTag() { var fixes = [ new validationIssueFix({ icon: 'iD-icon-search', - title: t('issues.fix.' + selectFixType + '.title'), + title: t('issues.fix.' + selectFixType + '.title')/*, onClick: function(context) { context.ui().sidebar.showPresetList(); - } + }*/ }) ]; From b5662e99ed230a4699faf4a6d87f3644d6f7a76c Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Fri, 28 Jun 2019 17:14:29 -0400 Subject: [PATCH 112/774] Move note editor into the assistant Move selected note ID storage from context into modeSelectNote --- css/65_data.css | 11 +----- css/80_app.css | 36 +++++++++++++++--- modules/behavior/select.js | 4 -- modules/core/context.js | 7 ---- modules/modes/add_note.js | 1 - modules/modes/drag_note.js | 2 - modules/modes/select_note.js | 23 ++--------- modules/osm/note.js | 10 ++++- modules/svg/notes.js | 4 +- modules/ui/assistant.js | 40 ++++++++++++++++++++ modules/ui/entity_editor.js | 2 +- modules/ui/index.js | 1 - modules/ui/note_editor.js | 65 ++++++++++++-------------------- modules/ui/note_header.js | 60 ----------------------------- modules/ui/panels/history.js | 3 +- modules/ui/panels/measurement.js | 3 +- modules/ui/sidebar.js | 17 --------- 17 files changed, 116 insertions(+), 173 deletions(-) delete mode 100644 modules/ui/note_header.js diff --git a/css/65_data.css b/css/65_data.css index 8de9ca09cb..5c90b3325e 100644 --- a/css/65_data.css +++ b/css/65_data.css @@ -28,16 +28,7 @@ } /* slight adjustments to preset icon for note icons */ -.note-header-icon .preset-icon-28 { - top: 18px; -} -.note-header-icon .note-icon-annotation { - position: absolute; - top: 22px; - left: 22px; - margin: auto; -} -.note-header-icon .note-icon-annotation .icon { +.note-header-icon .icon-annotation { width: 15px; height: 15px; } diff --git a/css/80_app.css b/css/80_app.css index 8873f8fabe..2ec198fef1 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -1204,6 +1204,30 @@ a.hide-toggle { font-size: 14px; line-height: 1.35em; } +/* note icon */ +.assistant .note-header-icon { + position: relative; + width: 30px; + height: 30px; +} +.assistant .note-header-icon .note-fill { + width: 100%; + height: 100%; +} +.assistant .note-header-icon .note-icon-annotation{ + position: absolute; + width: 100%; + height: 100%; + text-align: center; + top: 0; +} +.assistant .note-icon-annotation .icon-annotation { + position: relative; + top: 5px; + width: 15px; + height: 15px; + margin: auto; +} /* Feature List / Search Results ------------------------------------------------------- */ @@ -1459,6 +1483,12 @@ a.hide-toggle { flex: 0 0 auto; padding: 5px 20px 5px 20px; border-top: 1px solid #ccc; + flex-wrap: wrap; + justify-content: space-between; + list-style: none; +} +.inspector-footer:empty { + display: none; } .feature-list-pane { @@ -3104,7 +3134,6 @@ input.key-trap { /* OSM Note / KeepRight Editors ------------------------------------------------------- */ -.note-header, .error-header { background-color: #f6f6f6; border-radius: 5px; @@ -3114,7 +3143,6 @@ input.key-trap { align-items: center; } -.note-header-icon, .error-header-icon { background-color: #fff; padding: 10px; @@ -3125,14 +3153,12 @@ input.key-trap { border-right: 1px solid #ccc; border-radius: 5px 0 0 5px; } -[dir='rtl'] .note-header-icon, [dir='rtl'] .error-header-icon { border-right: unset; border-left: 1px solid #ccc; border-radius: 0 5px 5px 0; } -.note-header-icon .icon-wrap, .error-header-icon .icon-wrap { position: absolute; top: 0px; @@ -3148,7 +3174,6 @@ input.key-trap { height: 28px; } -.note-header-label, .error-header-label { background-color: #f6f6f6; padding: 0 15px; @@ -3157,7 +3182,6 @@ input.key-trap { font-weight: bold; border-radius: 0 5px 5px 0; } -[dir='rtl'] .note-header-label, [dir='rtl'] .error-header-label { border-radius: 5px 0 0 5px; } diff --git a/modules/behavior/select.js b/modules/behavior/select.js index 311db7da06..2e39979b4a 100644 --- a/modules/behavior/select.js +++ b/modules/behavior/select.js @@ -133,7 +133,6 @@ export function behaviorSelect(context) { if (datum instanceof osmEntity) { // clicked an entity.. var selectedIDs = context.selectedIDs(); - context.selectedNoteID(null); context.selectedErrorID(null); if (!isMultiselect) { @@ -165,12 +164,10 @@ export function behaviorSelect(context) { } else if (datum && datum.__featurehash__ && !isMultiselect) { // clicked Data.. context - .selectedNoteID(null) .enter(modeSelectData(context, datum)); } else if (datum instanceof osmNote && !isMultiselect) { // clicked a Note.. context - .selectedNoteID(datum.id) .enter(modeSelectNote(context, datum.id)); } else if (datum instanceof qaError & !isMultiselect) { // clicked an external QA error @@ -179,7 +176,6 @@ export function behaviorSelect(context) { .enter(modeSelectError(context, datum.id, datum.service)); } else { // clicked nothing.. - context.selectedNoteID(null); context.selectedErrorID(null); if (!isMultiselect && mode.id !== 'browse') { context.enter(modeBrowse(context)); diff --git a/modules/core/context.js b/modules/core/context.js index dc4eb9bb65..090a7aa0f3 100644 --- a/modules/core/context.js +++ b/modules/core/context.js @@ -283,13 +283,6 @@ export function coreContext() { return mode && mode.activeID && mode.activeID(); }; - var _selectedNoteID; - context.selectedNoteID = function(noteID) { - if (!arguments.length) return _selectedNoteID; - _selectedNoteID = noteID; - return context; - }; - var _selectedErrorID; context.selectedErrorID = function(errorID) { if (!arguments.length) return _selectedErrorID; diff --git a/modules/modes/add_note.js b/modules/modes/add_note.js index 81112e85ad..9ed2f0e611 100644 --- a/modules/modes/add_note.js +++ b/modules/modes/add_note.js @@ -33,7 +33,6 @@ export function modeAddNote(context) { context.pan([0,0]); context - .selectedNoteID(note.id) .enter(modeSelectNote(context, note.id).newFeature(true)); } diff --git a/modules/modes/drag_note.js b/modules/modes/drag_note.js index 33389af6fd..96b0efba80 100644 --- a/modules/modes/drag_note.js +++ b/modules/modes/drag_note.js @@ -60,7 +60,6 @@ export function modeDragNote(context) { context.perform(actionNoop()); context.enter(mode); - context.selectedNoteID(_note.id); } @@ -100,7 +99,6 @@ export function modeDragNote(context) { context.replace(actionNoop()); // trigger redraw context - .selectedNoteID(_note.id) .enter(modeSelectNote(context, _note.id)); } diff --git a/modules/modes/select_note.js b/modules/modes/select_note.js index 3381f4dafd..477a8845f5 100644 --- a/modules/modes/select_note.js +++ b/modules/modes/select_note.js @@ -14,7 +14,6 @@ import { modeBrowse } from './browse'; import { modeDragNode } from './drag_node'; import { modeDragNote } from './drag_note'; import { services } from '../services'; -import { uiNoteEditor } from '../ui/note_editor'; import { utilKeybinding } from '../util'; @@ -26,14 +25,6 @@ export function modeSelectNote(context, selectedNoteID) { var osm = services.osm; var keybinding = utilKeybinding('select-note'); - var noteEditor = uiNoteEditor(context) - .on('change', function() { - context.map().pan([0,0]); // trigger a redraw - var note = checkSelectedID(); - if (!note) return; - context.ui().sidebar - .show(noteEditor.note(note)); - }); var behaviors = [ behaviorBreathe(context), @@ -74,8 +65,6 @@ export function modeSelectNote(context, selectedNoteID) { } else { selection .classed('selected', true); - - context.selectedNoteID(selectedNoteID); } } @@ -85,6 +74,10 @@ export function modeSelectNote(context, selectedNoteID) { context.enter(modeBrowse(context)); } + mode.selectedNoteID = function() { + return selectedNoteID; + }; + mode.zoomToSelected = function() { if (!osm) return; @@ -117,12 +110,6 @@ export function modeSelectNote(context, selectedNoteID) { selectNote(); - var sidebar = context.ui().sidebar; - sidebar.show(noteEditor.note(note)); - - // expand the sidebar, avoid obscuring the note if needed - sidebar.expand(sidebar.intersects(note.extent())); - context.map() .on('drawn.select', selectNote); }; @@ -143,8 +130,6 @@ export function modeSelectNote(context, selectedNoteID) { context.ui().sidebar .hide(); - - context.selectedNoteID(null); }; diff --git a/modules/osm/note.js b/modules/osm/note.js index e8c56f6571..0db9a89825 100644 --- a/modules/osm/note.js +++ b/modules/osm/note.js @@ -1,5 +1,5 @@ import { geoExtent } from '../geo'; - +import { t } from '../util/locale'; export function osmNote() { if (!(this instanceof osmNote)) { @@ -57,6 +57,14 @@ Object.assign(osmNote.prototype, { move: function(loc) { return this.update({ loc: loc }); + }, + + label: function() { + if (this.isNew()) { + return t('note.new'); + } + return t('note.note') + ' ' + this.id + ' ' + + (this.status === 'closed' ? t('note.closed') : ''); } }); diff --git a/modules/svg/notes.js b/modules/svg/notes.js index bc8fc55e70..1e3b8e4c5c 100644 --- a/modules/svg/notes.js +++ b/modules/svg/notes.js @@ -104,7 +104,7 @@ export function svgNotes(projection, context, dispatch) { if (!_notesVisible || !_notesEnabled) return; var service = getService(); - var selectedID = context.selectedNoteID(); + var selectedID = context.mode().selectedNoteID && context.mode().selectedNoteID(); var data = (service ? service.notes(projection) : []); var getTransform = svgPointTransform(projection); @@ -243,7 +243,7 @@ export function svgNotes(projection, context, dispatch) { layerOn(); } else { layerOff(); - if (context.selectedNoteID()) { + if (context.mode().id === 'select-note') { context.enter(modeBrowse(context)); } } diff --git a/modules/ui/assistant.js b/modules/ui/assistant.js index 1ea99f4858..b28a104c02 100644 --- a/modules/ui/assistant.js +++ b/modules/ui/assistant.js @@ -12,6 +12,7 @@ import { uiPresetIcon } from './preset_icon'; import { uiEntityEditor } from './entity_editor'; import { uiFeatureList } from './feature_list'; import { uiSelectionList } from './selection_list'; +import { uiNoteEditor } from './note_editor'; import { geoRawMercator } from '../geo/raw_mercator'; import { decimalCoordinatePair, formattedRoundedDuration } from '../util/units'; @@ -209,6 +210,12 @@ export function uiAssistant(context) { } return panelSelectMultiple(context, selectedIDs); + } else if (mode.id === 'select-note') { + var osm = context.connection(); + var note = osm && osm.getNote(mode.selectedNoteID()); + if (note) { + return panelSelectNote(context, note); + } } else if (!didEditAnythingYet) { if (savedChangeset) { @@ -425,6 +432,39 @@ export function uiAssistant(context) { return panel; } + function panelSelectNote(context, note) { + + var panel = { + theme: 'light', + modeLabel: t('assistant.mode.editing'), + title: note.label() + }; + + panel.renderHeaderIcon = function(selection) { + var icon = selection + .append('div') + .attr('class', 'note-header-icon ' + note.status) + .classed('new', note.id < 0); + + icon + .call(svgIcon('#iD-icon-note', 'note-fill')); + + var statusIcon = '#iD-icon-' + (note.id < 0 ? 'plus' : (note.status === 'open' ? 'close' : 'apply')); + icon + .append('div') + .attr('class', 'note-icon-annotation') + .call(svgIcon(statusIcon, 'icon-annotation')); + }; + + panel.renderBody = function(selection) { + var noteEditor = uiNoteEditor(context) + .note(note); + selection.call(noteEditor); + }; + + return panel; + } + function panelAddDrawGeometry(context, mode) { var icon; diff --git a/modules/ui/entity_editor.js b/modules/ui/entity_editor.js index ee2f9dbcf7..e15302502d 100644 --- a/modules/ui/entity_editor.js +++ b/modules/ui/entity_editor.js @@ -41,7 +41,7 @@ export function uiEntityEditor(context) { var rawMembershipEditor = uiRawMembershipEditor(context); var presetBrowser = uiPresetBrowser(context, [], choosePreset); - function entityEditor(selection, newFeature) { + function entityEditor(selection) { var entity = context.entity(_entityID); var tags = Object.assign({}, entity.tags); // shallow copy diff --git a/modules/ui/index.js b/modules/ui/index.js index 3e9d8fbcd8..f62e0b4cc7 100644 --- a/modules/ui/index.js +++ b/modules/ui/index.js @@ -44,7 +44,6 @@ export { uiModal } from './modal'; export { uiNotice } from './notice'; export { uiNoteComments } from './note_comments'; export { uiNoteEditor } from './note_editor'; -export { uiNoteHeader } from './note_header'; export { uiNoteReport } from './note_report'; export { uiPresetEditor } from './preset_editor'; export { uiPresetIcon } from './preset_icon'; diff --git a/modules/ui/note_editor.js b/modules/ui/note_editor.js index eeda102e87..97f6003c80 100644 --- a/modules/ui/note_editor.js +++ b/modules/ui/note_editor.js @@ -1,4 +1,3 @@ -import { dispatch as d3_dispatch } from 'd3-dispatch'; import { event as d3_event, select as d3_select @@ -7,36 +6,32 @@ import { import { t } from '../util/locale'; import { services } from '../services'; import { modeBrowse } from '../modes/browse'; +import { modeSelectNote } from '../modes/select_note'; import { svgIcon } from '../svg/icon'; // import { uiField } from './field'; // import { uiFormFields } from './form_fields'; import { uiNoteComments } from './note_comments'; -import { uiNoteHeader } from './note_header'; import { uiNoteReport } from './note_report'; import { uiQuickLinks } from './quick_links'; import { uiTooltipHtml } from './tooltipHtml'; import { uiViewOnOSM } from './view_on_osm'; import { - utilNoAuto, - utilRebind + utilNoAuto } from '../util'; export function uiNoteEditor(context) { - var dispatch = d3_dispatch('change'); var quickLinks = uiQuickLinks(); var noteComments = uiNoteComments(); - var noteHeader = uiNoteHeader(); // var formFields = uiFormFields(context); var _note; // var _fieldsArr; - function noteEditor(selection) { // quick links var choices = [{ @@ -50,33 +45,12 @@ export function uiNoteEditor(context) { } }]; - - var header = selection.selectAll('.header') - .data([0]); - - var headerEnter = header.enter() - .append('div') - .attr('class', 'header fillL'); - - headerEnter - .append('button') - .attr('class', 'fr note-editor-close') - .on('click', function() { - context.enter(modeBrowse(context)); - }) - .call(svgIcon('#iD-icon-close')); - - headerEnter - .append('h3') - .text(t('note.title')); - - - var body = selection.selectAll('.body') + var body = selection.selectAll('.inspector-body') .data([0]); body = body.enter() .append('div') - .attr('class', 'body') + .attr('class', 'inspector-body sep-top') .merge(body); var editor = body.selectAll('.note-editor') @@ -86,18 +60,17 @@ export function uiNoteEditor(context) { .append('div') .attr('class', 'modal-section note-editor') .merge(editor) - .call(noteHeader.note(_note)) .call(quickLinks.choices(choices)) .call(noteComments.note(_note)) .call(noteSaveSection); - var footer = selection.selectAll('.footer') + var footer = selection.selectAll('.inspector-footer') .data([0]); footer.enter() .append('div') - .attr('class', 'footer') + .attr('class', 'inspector-footer') .merge(footer) .call(uiViewOnOSM(context).what(_note)) .call(uiNoteReport(context).note(_note)); @@ -114,7 +87,7 @@ export function uiNoteEditor(context) { function noteSaveSection(selection) { - var isSelected = (_note && _note.id === context.selectedNoteID()); + var isSelected = _note/* && _note.id === context.selectedNoteID()*/; var noteSave = selection.selectAll('.note-save') .data((isSelected ? [_note] : []), function(d) { return d.status + d.id; }); @@ -328,7 +301,7 @@ export function uiNoteEditor(context) { var osm = services.osm; var hasAuth = osm && osm.authenticated(); - var isSelected = (_note && _note.id === context.selectedNoteID()); + var isSelected = _note/* && _note.id === context.selectedNoteID()*/; var buttonSection = selection.selectAll('.buttons') .data((isSelected ? [_note] : []), function(d) { return d.status + d.id; }); @@ -403,7 +376,6 @@ export function uiNoteEditor(context) { osm.removeNote(d); } context.enter(modeBrowse(context)); - dispatch.call('change'); } @@ -412,7 +384,7 @@ export function uiNoteEditor(context) { var osm = services.osm; if (osm) { osm.postNoteCreate(d, function(err, note) { - dispatch.call('change', note); + noteDidUpdate(note); }); } } @@ -424,7 +396,7 @@ export function uiNoteEditor(context) { if (osm) { var setStatus = (d.status === 'open' ? 'closed' : 'open'); osm.postNoteUpdate(d, setStatus, function(err, note) { - dispatch.call('change', note); + noteDidUpdate(note); }); } } @@ -434,12 +406,25 @@ export function uiNoteEditor(context) { var osm = services.osm; if (osm) { osm.postNoteUpdate(d, d.status, function(err, note) { - dispatch.call('change', note); + noteDidUpdate(note); }); } } + function noteDidUpdate(note) { + context.map().pan([0,0]); // trigger a redraw + var osm = services.osm; + note = osm && osm.getNote(note.id); + if (!note) { + context.enter(modeBrowse(context)); + } else { + // reset the mode and UI for the updated note + context.enter(modeSelectNote(context, note.id)); + } + } + + noteEditor.note = function(val) { if (!arguments.length) return _note; _note = val; @@ -447,5 +432,5 @@ export function uiNoteEditor(context) { }; - return utilRebind(noteEditor, dispatch, 'on'); + return noteEditor; } diff --git a/modules/ui/note_header.js b/modules/ui/note_header.js deleted file mode 100644 index 7ff59d296b..0000000000 --- a/modules/ui/note_header.js +++ /dev/null @@ -1,60 +0,0 @@ -import { t } from '../util/locale'; -import { svgIcon } from '../svg/icon'; - - -export function uiNoteHeader() { - var _note; - - - function noteHeader(selection) { - var header = selection.selectAll('.note-header') - .data( - (_note ? [_note] : []), - function(d) { return d.status + d.id; } - ); - - header.exit() - .remove(); - - var headerEnter = header.enter() - .append('div') - .attr('class', 'note-header'); - - var iconEnter = headerEnter - .append('div') - .attr('class', function(d) { return 'note-header-icon ' + d.status; }) - .classed('new', function(d) { return d.id < 0; }); - - iconEnter - .append('div') - .attr('class', 'preset-icon-28') - .call(svgIcon('#iD-icon-note', 'note-fill')); - - iconEnter.each(function(d) { - var statusIcon = '#iD-icon-' + (d.id < 0 ? 'plus' : (d.status === 'open' ? 'close' : 'apply')); - iconEnter - .append('div') - .attr('class', 'note-icon-annotation') - .call(svgIcon(statusIcon, 'icon-annotation')); - }); - - headerEnter - .append('div') - .attr('class', 'note-header-label') - .text(function(d) { - if (_note.isNew()) { return t('note.new'); } - return t('note.note') + ' ' + d.id + ' ' + - (d.status === 'closed' ? t('note.closed') : ''); - }); - } - - - noteHeader.note = function(val) { - if (!arguments.length) return _note; - _note = val; - return noteHeader; - }; - - - return noteHeader; -} diff --git a/modules/ui/panels/history.js b/modules/ui/panels/history.js index 008d955460..cc1306e344 100644 --- a/modules/ui/panels/history.js +++ b/modules/ui/panels/history.js @@ -94,7 +94,8 @@ export function uiPanelHistory(context) { function redraw(selection) { - var selectedNoteID = context.selectedNoteID(); + var mode = context.mode(); + var selectedNoteID = mode.selectedNoteID && mode.selectedNoteID(); osm = context.connection(); var selected, note, entity; diff --git a/modules/ui/panels/measurement.js b/modules/ui/panels/measurement.js index bdb65f6825..0f4b4adf72 100644 --- a/modules/ui/panels/measurement.js +++ b/modules/ui/panels/measurement.js @@ -49,8 +49,9 @@ export function uiPanelMeasurement(context) { function redraw(selection) { + var mode = context.mode(); var resolver = context.graph(); - var selectedNoteID = context.selectedNoteID(); + var selectedNoteID = mode.selectedNoteID && mode.selectedNoteID(); var osm = services.osm; var selected, center, entity, note, geometry; diff --git a/modules/ui/sidebar.js b/modules/ui/sidebar.js index 21189ffb97..2400de377a 100644 --- a/modules/ui/sidebar.js +++ b/modules/ui/sidebar.js @@ -14,13 +14,11 @@ import { services } from '../services'; import { uiDataEditor } from './data_editor'; import { uiImproveOsmEditor } from './improveOSM_editor'; import { uiKeepRightEditor } from './keepRight_editor'; -import { uiNoteEditor } from './note_editor'; import { textDirection } from '../util/locale'; export function uiSidebar(context) { var dataEditor = uiDataEditor(context); - var noteEditor = uiNoteEditor(context); var improveOsmEditor = uiImproveOsmEditor(context); var keepRightEditor = uiKeepRightEditor(context); var _current; @@ -100,21 +98,6 @@ export function uiSidebar(context) { selection.selectAll('.sidebar-component') .classed('inspector-hover', true); - } else if (datum instanceof osmNote) { - if (context.mode().id === 'drag-note') return; - _wasNote = true; - - var osm = services.osm; - if (osm) { - datum = osm.getNote(datum.id); // marker may contain stale data - get latest - } - - sidebar - .show(noteEditor.note(datum)); - - selection.selectAll('.sidebar-component') - .classed('inspector-hover', true); - } else if (datum instanceof qaError) { _wasQAError = true; From 05c2f393b9b66212396ff353cdf14f0ec5ac3ffe Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Mon, 1 Jul 2019 11:32:39 -0400 Subject: [PATCH 113/774] Remove "All" from the entity editor section labels Add a min width to the assistant when it's uncollapsed --- css/80_app.css | 3 +++ data/core.yaml | 8 ++++---- dist/locales/en.json | 8 ++++---- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/css/80_app.css b/css/80_app.css index 2ec198fef1..2d227b3ee4 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -1051,6 +1051,9 @@ a.hide-toggle { display: flex; flex: 0 0 auto; } +.assistant:not(.body-collapsed) { + min-width: 250px; +} /* assistant header */ .assistant .assistant-header { diff --git a/data/core.yaml b/data/core.yaml index b8754aa0e4..9f689b4757 100644 --- a/data/core.yaml +++ b/data/core.yaml @@ -588,10 +588,10 @@ en: show_more: Show More view_on_osm: View on openstreetmap.org view_on_keepRight: View on keepright.at - all_fields: All fields - all_tags: All tags - all_members: All members - all_relations: All relations + all_fields: Fields + all_tags: Tags + all_members: Members + all_relations: Relations add_to_relation: Add to a relation new_relation: New relation... choose_relation: Choose a parent relation diff --git a/dist/locales/en.json b/dist/locales/en.json index cf02aed829..56cab611b0 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -744,10 +744,10 @@ "show_more": "Show More", "view_on_osm": "View on openstreetmap.org", "view_on_keepRight": "View on keepright.at", - "all_fields": "All fields", - "all_tags": "All tags", - "all_members": "All members", - "all_relations": "All relations", + "all_fields": "Fields", + "all_tags": "Tags", + "all_members": "Members", + "all_relations": "Relations", "add_to_relation": "Add to a relation", "new_relation": "New relation...", "choose_relation": "Choose a parent relation", From 36f3a2935e43e02f0b53af92b195f5af0dd72a9a Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Mon, 1 Jul 2019 12:56:13 -0400 Subject: [PATCH 114/774] Fetch icon files from CDN instead of raw.github urls --- build_data.js | 22 +- data/taginfo.json | 2146 ++++++++++++++++++++++----------------------- 2 files changed, 1084 insertions(+), 1084 deletions(-) diff --git a/build_data.js b/build_data.js index 3008b122a5..d0cf1c234f 100644 --- a/build_data.js +++ b/build_data.js @@ -408,7 +408,7 @@ function generateTaginfo(presets, fields) { 'description': 'Online editor for OSM data.', 'project_url': 'https://github.com/openstreetmap/iD', 'doc_url': 'https://github.com/openstreetmap/iD/blob/master/data/presets/README.md', - 'icon_url': 'https://raw.githubusercontent.com/openstreetmap/iD/master/dist/img/logo.png', + 'icon_url': 'https://cdn.jsdelivr.net/gh/openstreetmap/iD/dist/img/logo.png', 'keywords': [ 'editor' ] @@ -439,20 +439,20 @@ function generateTaginfo(presets, fields) { // add icon if (/^maki-/.test(preset.icon)) { - tag.icon_url = 'https://raw.githubusercontent.com/mapbox/maki/master/icons/' + - preset.icon.replace(/^maki-/, '') + '-15.svg?sanitize=true'; + tag.icon_url = 'https://cdn.jsdelivr.net/gh/mapbox/maki/icons/' + + preset.icon.replace(/^maki-/, '') + '-15.svg'; } else if (/^temaki-/.test(preset.icon)) { - tag.icon_url = 'https://raw.githubusercontent.com/bhousel/temaki/master/icons/' + - preset.icon.replace(/^temaki-/, '') + '.svg?sanitize=true'; + tag.icon_url = 'https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/' + + preset.icon.replace(/^temaki-/, '') + '.svg'; } else if (/^fa[srb]-/.test(preset.icon)) { - tag.icon_url = 'https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/' + - preset.icon + '.svg?sanitize=true'; + tag.icon_url = 'https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/' + + preset.icon + '.svg'; } else if (/^iD-/.test(preset.icon)) { - tag.icon_url = 'https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/' + - preset.icon.replace(/^iD-/, '') + '.svg?sanitize=true'; + tag.icon_url = 'https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/' + + preset.icon.replace(/^iD-/, '') + '.svg'; } else if (/^tnp-/.test(preset.icon)) { - tag.icon_url = 'https://raw.githubusercontent.com/openstreetmap/iD/master/svg/the-noun-project/' + - preset.icon.replace(/^tnp-/, '') + '.svg?sanitize=true'; + tag.icon_url = 'https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/the-noun-project/' + + preset.icon.replace(/^tnp-/, '') + '.svg'; } coalesceTags(taginfo, tag); diff --git a/data/taginfo.json b/data/taginfo.json index 1647ce7374..8d20ce48fe 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -1,38 +1,38 @@ { "data_format": 1, "data_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/data/taginfo.json", - "project": {"name": "iD Editor", "description": "Online editor for OSM data.", "project_url": "https://github.com/openstreetmap/iD", "doc_url": "https://github.com/openstreetmap/iD/blob/master/data/presets/README.md", "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/dist/img/logo.png", "keywords": ["editor"]}, + "project": {"name": "iD Editor", "description": "Online editor for OSM data.", "project_url": "https://github.com/openstreetmap/iD", "doc_url": "https://github.com/openstreetmap/iD/blob/master/data/presets/README.md", "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/dist/img/logo.png", "keywords": ["editor"]}, "tags": [ {"key": "aerialway", "description": "🄿 Aerialway (unsearchable), 🄵 Type", "object_types": ["node", "way"]}, - {"key": "aeroway", "description": "🄿 Aeroway (unsearchable), 🄵 Type", "object_types": ["node", "way", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/airport-15.svg?sanitize=true"}, + {"key": "aeroway", "description": "🄿 Aeroway (unsearchable), 🄵 Type", "object_types": ["node", "way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/airport-15.svg"}, {"key": "amenity", "description": "🄿 Amenity (unsearchable), 🄵 Type", "object_types": ["node", "way", "area"]}, - {"key": "attraction", "description": "🄿 Attraction (unsearchable), 🄵 Type", "object_types": ["node", "way", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/star-15.svg?sanitize=true"}, + {"key": "attraction", "description": "🄿 Attraction (unsearchable), 🄵 Type", "object_types": ["node", "way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/star-15.svg"}, {"key": "boundary", "description": "🄿 Boundary (unsearchable), 🄵 Type", "object_types": ["way"]}, - {"key": "building", "description": "🄿 Building (unsearchable), 🄿 Building, 🄵 Building", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/home-15.svg?sanitize=true"}, + {"key": "building", "description": "🄿 Building (unsearchable), 🄿 Building, 🄵 Building", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/home-15.svg"}, {"key": "embankment", "value": "yes", "description": "🄿 Embankment (unsearchable)", "object_types": ["way"]}, {"key": "emergency", "description": "🄿 Emergency Feature (unsearchable), 🄵 Type, 🄵 Emergency", "object_types": ["node", "area"]}, {"key": "ford", "description": "🄿 Ford (unsearchable), 🄵 Type, 🄵 Structure", "object_types": ["way"]}, {"key": "highway", "description": "🄿 Highway (unsearchable), 🄵 Type", "object_types": ["node", "way", "area"]}, {"key": "indoor", "description": "🄿 Indoor Feature (unsearchable), 🄵 Type, 🄵 Indoor", "object_types": ["node", "way", "area"]}, {"key": "landuse", "description": "🄿 Land Use (unsearchable), 🄵 Type", "object_types": ["area"]}, - {"key": "leisure", "description": "🄿 Leisure (unsearchable), 🄵 Type", "object_types": ["node", "way", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/pitch-15.svg?sanitize=true"}, - {"key": "man_made", "description": "🄿 Man Made (unsearchable), 🄵 Type", "object_types": ["node", "way", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/storage_tank.svg?sanitize=true"}, - {"key": "natural", "description": "🄿 Natural (unsearchable), 🄵 Natural", "object_types": ["node", "way", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/natural-15.svg?sanitize=true"}, + {"key": "leisure", "description": "🄿 Leisure (unsearchable), 🄵 Type", "object_types": ["node", "way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/pitch-15.svg"}, + {"key": "man_made", "description": "🄿 Man Made (unsearchable), 🄵 Type", "object_types": ["node", "way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/storage_tank.svg"}, + {"key": "natural", "description": "🄿 Natural (unsearchable), 🄵 Natural", "object_types": ["node", "way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/natural-15.svg"}, {"key": "place", "description": "🄿 Place (unsearchable), 🄵 Type", "object_types": ["node", "area"]}, - {"key": "playground", "description": "🄿 Playground Equipment (unsearchable), 🄵 Type", "object_types": ["node", "way", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/playground-15.svg?sanitize=true"}, + {"key": "playground", "description": "🄿 Playground Equipment (unsearchable), 🄵 Type", "object_types": ["node", "way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/playground-15.svg"}, {"key": "power", "description": "🄿 Power (unsearchable), 🄵 Type", "object_types": ["node", "way", "area"]}, {"key": "railway", "description": "🄿 Railway (unsearchable), 🄵 Type", "object_types": ["node", "way", "area"]}, - {"key": "seamark:type", "description": "🄿 Seamark (unsearchable), 🄵 Seamark", "object_types": ["node", "way", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/harbor-15.svg?sanitize=true"}, - {"key": "tourism", "description": "🄿 Tourism (unsearchable), 🄵 Type", "object_types": ["node", "way", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/attraction-15.svg?sanitize=true"}, + {"key": "seamark:type", "description": "🄿 Seamark (unsearchable), 🄵 Seamark", "object_types": ["node", "way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/harbor-15.svg"}, + {"key": "tourism", "description": "🄿 Tourism (unsearchable), 🄵 Type", "object_types": ["node", "way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/attraction-15.svg"}, {"key": "waterway", "description": "🄿 Waterway (unsearchable), 🄵 Type", "object_types": ["node", "way", "area"]}, {"key": "addr:*", "description": "🄿 Address", "object_types": ["node", "area"]}, {"key": "advertising", "value": "billboard", "description": "🄿 Billboard", "object_types": ["node", "way"]}, - {"key": "advertising", "value": "column", "description": "🄿 Advertising Column", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/storage_tank.svg?sanitize=true"}, - {"key": "aerialway", "value": "station", "description": "🄿 Aerialway Station (unsearchable)", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/aerialway-15.svg?sanitize=true"}, - {"key": "aerialway", "value": "cable_car", "description": "🄿 Cable Car", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-tram.svg?sanitize=true"}, - {"key": "aerialway", "value": "chair_lift", "description": "🄿 Chair Lift", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/chairlift.svg?sanitize=true"}, + {"key": "advertising", "value": "column", "description": "🄿 Advertising Column", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/storage_tank.svg"}, + {"key": "aerialway", "value": "station", "description": "🄿 Aerialway Station (unsearchable)", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/aerialway-15.svg"}, + {"key": "aerialway", "value": "cable_car", "description": "🄿 Cable Car", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-tram.svg"}, + {"key": "aerialway", "value": "chair_lift", "description": "🄿 Chair Lift", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/chairlift.svg"}, {"key": "aerialway", "value": "drag_lift", "description": "🄿 Drag Lift", "object_types": ["way"]}, - {"key": "aerialway", "value": "gondola", "description": "🄿 Gondola", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/aerialway-15.svg?sanitize=true"}, + {"key": "aerialway", "value": "gondola", "description": "🄿 Gondola", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/aerialway-15.svg"}, {"key": "aerialway", "value": "goods", "description": "🄿 Goods Aerialway", "object_types": ["way"]}, {"key": "aerialway", "value": "j-bar", "description": "🄿 J-bar Lift", "object_types": ["way"]}, {"key": "aerialway", "value": "magic_carpet", "description": "🄿 Magic Carpet Lift", "object_types": ["way"]}, @@ -42,1115 +42,1115 @@ {"key": "aerialway", "value": "rope_tow", "description": "🄿 Rope Tow Lift", "object_types": ["way"]}, {"key": "aerialway", "value": "t-bar", "description": "🄿 T-bar Lift", "object_types": ["way"]}, {"key": "aerialway", "value": "zip_line", "description": "🄿 Zip Line", "object_types": ["way"]}, - {"key": "aeroway", "value": "aerodrome", "description": "🄿 Airport", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/airport-15.svg?sanitize=true"}, - {"key": "aeroway", "value": "apron", "description": "🄿 Apron", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/airport-15.svg?sanitize=true"}, - {"key": "aeroway", "value": "gate", "description": "🄿 Airport Gate", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/airport-15.svg?sanitize=true"}, - {"key": "aeroway", "value": "hangar", "description": "🄿 Hangar", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-warehouse.svg?sanitize=true"}, - {"key": "aeroway", "value": "helipad", "description": "🄿 Helipad", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/heliport-15.svg?sanitize=true"}, - {"key": "aeroway", "value": "jet_bridge", "description": "🄿 Jet Bridge", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/pedestrian.svg?sanitize=true"}, - {"key": "aeroway", "value": "runway", "description": "🄿 Runway", "object_types": ["way", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-plane-departure.svg?sanitize=true"}, - {"key": "aeroway", "value": "taxiway", "description": "🄿 Taxiway", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-plane.svg?sanitize=true"}, - {"key": "aeroway", "value": "terminal", "description": "🄿 Airport Terminal", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/airport-15.svg?sanitize=true"}, - {"key": "aeroway", "value": "windsock", "description": "🄿 Windsock", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-wind.svg?sanitize=true"}, + {"key": "aeroway", "value": "aerodrome", "description": "🄿 Airport", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/airport-15.svg"}, + {"key": "aeroway", "value": "apron", "description": "🄿 Apron", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/airport-15.svg"}, + {"key": "aeroway", "value": "gate", "description": "🄿 Airport Gate", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/airport-15.svg"}, + {"key": "aeroway", "value": "hangar", "description": "🄿 Hangar", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-warehouse.svg"}, + {"key": "aeroway", "value": "helipad", "description": "🄿 Helipad", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/heliport-15.svg"}, + {"key": "aeroway", "value": "jet_bridge", "description": "🄿 Jet Bridge", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/pedestrian.svg"}, + {"key": "aeroway", "value": "runway", "description": "🄿 Runway", "object_types": ["way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-plane-departure.svg"}, + {"key": "aeroway", "value": "taxiway", "description": "🄿 Taxiway", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-plane.svg"}, + {"key": "aeroway", "value": "terminal", "description": "🄿 Airport Terminal", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/airport-15.svg"}, + {"key": "aeroway", "value": "windsock", "description": "🄿 Windsock", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-wind.svg"}, {"key": "allotments", "value": "plot", "description": "🄿 Community Garden Plot", "object_types": ["area"]}, - {"key": "amenity", "value": "bus_station", "description": "🄿 Bus Station / Terminal (unsearchable)", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/bus-15.svg?sanitize=true"}, - {"key": "amenity", "value": "coworking_space", "description": "🄿 Coworking Space (unsearchable)", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/commercial-15.svg?sanitize=true"}, - {"key": "amenity", "value": "embassy", "description": "🄿 Embassy (unsearchable), 🄳 ➜ office=diplomatic", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/embassy-15.svg?sanitize=true"}, - {"key": "amenity", "value": "ferry_terminal", "description": "🄿 Ferry Station / Terminal (unsearchable)", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/ferry-15.svg?sanitize=true"}, - {"key": "amenity", "value": "nursing_home", "description": "🄿 Nursing Home (unsearchable)", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/wheelchair-15.svg?sanitize=true"}, - {"key": "amenity", "value": "recycling", "description": "🄿 Recycling (unsearchable)", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/recycling-15.svg?sanitize=true"}, - {"key": "amenity", "value": "register_office", "description": "🄿 Register Office (unsearchable), 🄳 ➜ office=government + government=register_office", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/town-hall-15.svg?sanitize=true"}, - {"key": "amenity", "value": "scrapyard", "description": "🄿 Scrap Yard (unsearchable), 🄳 ➜ landuse=industrial + industrial=scrap_yard", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/car-15.svg?sanitize=true"}, - {"key": "amenity", "value": "swimming_pool", "description": "🄿 Swimming Pool (unsearchable), 🄳 ➜ leisure=swimming_pool", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-swimmer.svg?sanitize=true"}, - {"key": "amenity", "value": "animal_boarding", "description": "🄿 Animal Boarding Facility", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/veterinary-15.svg?sanitize=true"}, - {"key": "amenity", "value": "animal_breeding", "description": "🄿 Animal Breeding Facility", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/veterinary-15.svg?sanitize=true"}, - {"key": "amenity", "value": "animal_shelter", "description": "🄿 Animal Shelter", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/veterinary-15.svg?sanitize=true"}, - {"key": "amenity", "value": "arts_centre", "description": "🄿 Arts Center", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/theatre-15.svg?sanitize=true"}, - {"key": "amenity", "value": "atm", "description": "🄿 ATM", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/bank-15.svg?sanitize=true"}, - {"key": "amenity", "value": "bank", "description": "🄿 Bank", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/bank-15.svg?sanitize=true"}, - {"key": "amenity", "value": "bar", "description": "🄿 Bar", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/bar-15.svg?sanitize=true"}, - {"key": "lgbtq", "value": "primary", "description": "🄿 LGBTQ+ Bar, 🄿 LGBTQ+ Community Center, 🄿 LGBTQ+ Nightclub, 🄿 LGBTQ+ Pub, 🄿 LGBTQ+ Erotic Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/bar-15.svg?sanitize=true"}, - {"key": "amenity", "value": "bbq", "description": "🄿 Barbecue/Grill", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/bbq-15.svg?sanitize=true"}, - {"key": "amenity", "value": "bench", "description": "🄿 Bench", "object_types": ["node", "way"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/bench.svg?sanitize=true"}, - {"key": "amenity", "value": "bicycle_parking", "description": "🄿 Bicycle Parking", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/bicycle-15.svg?sanitize=true"}, - {"key": "bicycle_parking", "value": "building", "description": "🄿 Bicycle Parking Garage", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/bicycle-15.svg?sanitize=true"}, - {"key": "bicycle_parking", "value": "lockers", "description": "🄿 Bicycle Lockers", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/bicycle-15.svg?sanitize=true"}, - {"key": "bicycle_parking", "value": "shed", "description": "🄿 Bicycle Shed", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/bicycle-15.svg?sanitize=true"}, - {"key": "amenity", "value": "bicycle_rental", "description": "🄿 Bicycle Rental", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/bicycle-15.svg?sanitize=true"}, - {"key": "amenity", "value": "bicycle_repair_station", "description": "🄿 Bicycle Repair Tool Stand", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/bicycle-15.svg?sanitize=true"}, - {"key": "amenity", "value": "biergarten", "description": "🄿 Biergarten", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-beer.svg?sanitize=true"}, - {"key": "amenity", "value": "boat_rental", "description": "🄿 Boat Rental", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/boating.svg?sanitize=true"}, - {"key": "amenity", "value": "bureau_de_change", "description": "🄿 Currency Exchange", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/bank-15.svg?sanitize=true"}, - {"key": "amenity", "value": "cafe", "description": "🄿 Cafe", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/cafe-15.svg?sanitize=true"}, - {"key": "amenity", "value": "car_pooling", "description": "🄿 Car Pooling", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/car-15.svg?sanitize=true"}, - {"key": "amenity", "value": "car_rental", "description": "🄿 Car Rental", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/car-rental-15.svg?sanitize=true"}, - {"key": "amenity", "value": "car_sharing", "description": "🄿 Car Sharing", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/car-15.svg?sanitize=true"}, - {"key": "amenity", "value": "car_wash", "description": "🄿 Car Wash", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/car_wash.svg?sanitize=true"}, - {"key": "amenity", "value": "casino", "description": "🄿 Casino", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/casino-15.svg?sanitize=true"}, - {"key": "amenity", "value": "charging_station", "description": "🄿 Charging Station", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-charging-station.svg?sanitize=true"}, - {"key": "amenity", "value": "childcare", "description": "🄿 Nursery/Childcare", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-child.svg?sanitize=true"}, - {"key": "amenity", "value": "cinema", "description": "🄿 Cinema", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/cinema-15.svg?sanitize=true"}, - {"key": "amenity", "value": "clinic", "description": "🄿 Clinic", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/doctor-15.svg?sanitize=true"}, - {"key": "healthcare:speciality", "value": "abortion", "description": "🄿 Abortion Clinic", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/hospital-15.svg?sanitize=true"}, - {"key": "healthcare:speciality", "value": "fertility", "description": "🄿 Fertility Clinic", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/hospital-15.svg?sanitize=true"}, - {"key": "amenity", "value": "clock", "description": "🄿 Clock", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/clock.svg?sanitize=true"}, - {"key": "display", "value": "sundial", "description": "🄿 Sundial", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/clock.svg?sanitize=true"}, - {"key": "amenity", "value": "college", "description": "🄿 College Grounds", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/college-15.svg?sanitize=true"}, - {"key": "amenity", "value": "community_centre", "description": "🄿 Community Center", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/town-hall-15.svg?sanitize=true"}, - {"key": "amenity", "value": "compressed_air", "description": "🄿 Compressed Air", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/car-15.svg?sanitize=true"}, - {"key": "amenity", "value": "conference_centre", "description": "🄿 Convention Center", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-user-tie.svg?sanitize=true"}, - {"key": "amenity", "value": "courthouse", "description": "🄿 Courthouse", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-gavel.svg?sanitize=true"}, - {"key": "amenity", "value": "crematorium", "description": "🄿 Crematorium", "object_types": ["area", "node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/cemetery-15.svg?sanitize=true"}, - {"key": "amenity", "value": "dentist", "description": "🄿 Dentist", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/dentist-15.svg?sanitize=true"}, - {"key": "amenity", "value": "dive_centre", "description": "🄿 Dive Center", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/scuba_diving.svg?sanitize=true"}, - {"key": "amenity", "value": "doctors", "description": "🄿 Doctor", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/doctor-15.svg?sanitize=true"}, - {"key": "amenity", "value": "dojo", "description": "🄿 Dojo / Martial Arts Academy", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/pitch-15.svg?sanitize=true"}, - {"key": "amenity", "value": "drinking_water", "description": "🄿 Drinking Water", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/drinking-water-15.svg?sanitize=true"}, - {"key": "amenity", "value": "driving_school", "description": "🄿 Driving School", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/car-15.svg?sanitize=true"}, - {"key": "amenity", "value": "events_venue", "description": "🄿 Events Venue", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-users.svg?sanitize=true"}, - {"key": "amenity", "value": "fast_food", "description": "🄿 Fast Food", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/fast-food-15.svg?sanitize=true"}, - {"key": "cuisine", "value": "ice_cream", "description": "🄿 Ice Cream Fast Food (unsearchable)", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-ice-cream.svg?sanitize=true"}, - {"key": "cuisine", "value": "burger", "description": "🄿 Burger Fast Food", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/fast-food-15.svg?sanitize=true"}, - {"key": "cuisine", "value": "chicken", "description": "🄿 Chicken Fast Food", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-drumstick-bite.svg?sanitize=true"}, - {"key": "cuisine", "value": "donut", "description": "🄿 Donut Fast Food", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/donut.svg?sanitize=true"}, - {"key": "cuisine", "value": "fish_and_chips", "description": "🄿 Fish & Chips Fast Food", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-fish.svg?sanitize=true"}, - {"key": "cuisine", "value": "kebab", "description": "🄿 Kebab Fast Food", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/restaurant-15.svg?sanitize=true"}, - {"key": "cuisine", "value": "mexican", "description": "🄿 Mexican Fast Food, 🄿 Mexican Restaurant", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-pepper-hot.svg?sanitize=true"}, - {"key": "cuisine", "value": "pizza", "description": "🄿 Pizza Fast Food, 🄿 Pizza Restaurant", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/restaurant-pizza-15.svg?sanitize=true"}, - {"key": "cuisine", "value": "sandwich", "description": "🄿 Sandwich Fast Food", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/restaurant-15.svg?sanitize=true"}, - {"key": "amenity", "value": "fire_station", "description": "🄿 Fire Station", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/fire-station-15.svg?sanitize=true"}, - {"key": "amenity", "value": "food_court", "description": "🄿 Food Court", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/restaurant-15.svg?sanitize=true"}, - {"key": "amenity", "value": "fountain", "description": "🄿 Fountain", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/fountain.svg?sanitize=true"}, - {"key": "amenity", "value": "fuel", "description": "🄿 Gas Station", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/fuel-15.svg?sanitize=true"}, - {"key": "amenity", "value": "grave_yard", "description": "🄿 Graveyard", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/cemetery-15.svg?sanitize=true"}, - {"key": "amenity", "value": "grit_bin", "description": "🄿 Grit Bin", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-box.svg?sanitize=true"}, - {"key": "amenity", "value": "hospital", "description": "🄿 Hospital Grounds", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/hospital-15.svg?sanitize=true"}, - {"key": "amenity", "value": "hunting_stand", "description": "🄿 Hunting Stand", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/binoculars.svg?sanitize=true"}, - {"key": "amenity", "value": "ice_cream", "description": "🄿 Ice Cream Shop", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-ice-cream.svg?sanitize=true"}, - {"key": "amenity", "value": "internet_cafe", "description": "🄿 Internet Cafe", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/antenna.svg?sanitize=true"}, - {"key": "amenity", "value": "karaoke_box", "description": "🄿 Karaoke Box", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/karaoke-15.svg?sanitize=true"}, - {"key": "amenity", "value": "kindergarten", "description": "🄿 Preschool/Kindergarten Grounds", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/school-15.svg?sanitize=true"}, - {"key": "amenity", "value": "language_school", "description": "🄿 Language School", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/school-15.svg?sanitize=true"}, - {"key": "amenity", "value": "library", "description": "🄿 Library", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/library-15.svg?sanitize=true"}, - {"key": "amenity", "value": "love_hotel", "description": "🄿 Love Hotel", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/heart-15.svg?sanitize=true"}, - {"key": "amenity", "value": "marketplace", "description": "🄿 Marketplace", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "amenity", "value": "monastery", "description": "🄿 Monastery Grounds", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/place-of-worship-15.svg?sanitize=true"}, - {"key": "amenity", "value": "money_transfer", "description": "🄿 Money Transfer Station", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/bank-15.svg?sanitize=true"}, - {"key": "amenity", "value": "motorcycle_parking", "description": "🄿 Motorcycle Parking", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-motorcycle.svg?sanitize=true"}, - {"key": "amenity", "value": "music_school", "description": "🄿 Music School", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/school-15.svg?sanitize=true"}, - {"key": "amenity", "value": "nightclub", "description": "🄿 Nightclub", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/bar-15.svg?sanitize=true"}, - {"key": "amenity", "value": "parking_entrance", "description": "🄿 Parking Garage Entrance/Exit", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/entrance-alt1-15.svg?sanitize=true"}, + {"key": "amenity", "value": "bus_station", "description": "🄿 Bus Station / Terminal (unsearchable)", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/bus-15.svg"}, + {"key": "amenity", "value": "coworking_space", "description": "🄿 Coworking Space (unsearchable)", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/commercial-15.svg"}, + {"key": "amenity", "value": "embassy", "description": "🄿 Embassy (unsearchable), 🄳 ➜ office=diplomatic", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/embassy-15.svg"}, + {"key": "amenity", "value": "ferry_terminal", "description": "🄿 Ferry Station / Terminal (unsearchable)", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/ferry-15.svg"}, + {"key": "amenity", "value": "nursing_home", "description": "🄿 Nursing Home (unsearchable)", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/wheelchair-15.svg"}, + {"key": "amenity", "value": "recycling", "description": "🄿 Recycling (unsearchable)", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/recycling-15.svg"}, + {"key": "amenity", "value": "register_office", "description": "🄿 Register Office (unsearchable), 🄳 ➜ office=government + government=register_office", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/town-hall-15.svg"}, + {"key": "amenity", "value": "scrapyard", "description": "🄿 Scrap Yard (unsearchable), 🄳 ➜ landuse=industrial + industrial=scrap_yard", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/car-15.svg"}, + {"key": "amenity", "value": "swimming_pool", "description": "🄿 Swimming Pool (unsearchable), 🄳 ➜ leisure=swimming_pool", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-swimmer.svg"}, + {"key": "amenity", "value": "animal_boarding", "description": "🄿 Animal Boarding Facility", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/veterinary-15.svg"}, + {"key": "amenity", "value": "animal_breeding", "description": "🄿 Animal Breeding Facility", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/veterinary-15.svg"}, + {"key": "amenity", "value": "animal_shelter", "description": "🄿 Animal Shelter", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/veterinary-15.svg"}, + {"key": "amenity", "value": "arts_centre", "description": "🄿 Arts Center", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/theatre-15.svg"}, + {"key": "amenity", "value": "atm", "description": "🄿 ATM", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/bank-15.svg"}, + {"key": "amenity", "value": "bank", "description": "🄿 Bank", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/bank-15.svg"}, + {"key": "amenity", "value": "bar", "description": "🄿 Bar", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/bar-15.svg"}, + {"key": "lgbtq", "value": "primary", "description": "🄿 LGBTQ+ Bar, 🄿 LGBTQ+ Community Center, 🄿 LGBTQ+ Nightclub, 🄿 LGBTQ+ Pub, 🄿 LGBTQ+ Erotic Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/bar-15.svg"}, + {"key": "amenity", "value": "bbq", "description": "🄿 Barbecue/Grill", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/bbq-15.svg"}, + {"key": "amenity", "value": "bench", "description": "🄿 Bench", "object_types": ["node", "way"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/bench.svg"}, + {"key": "amenity", "value": "bicycle_parking", "description": "🄿 Bicycle Parking", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/bicycle-15.svg"}, + {"key": "bicycle_parking", "value": "building", "description": "🄿 Bicycle Parking Garage", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/bicycle-15.svg"}, + {"key": "bicycle_parking", "value": "lockers", "description": "🄿 Bicycle Lockers", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/bicycle-15.svg"}, + {"key": "bicycle_parking", "value": "shed", "description": "🄿 Bicycle Shed", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/bicycle-15.svg"}, + {"key": "amenity", "value": "bicycle_rental", "description": "🄿 Bicycle Rental", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/bicycle-15.svg"}, + {"key": "amenity", "value": "bicycle_repair_station", "description": "🄿 Bicycle Repair Tool Stand", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/bicycle-15.svg"}, + {"key": "amenity", "value": "biergarten", "description": "🄿 Biergarten", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-beer.svg"}, + {"key": "amenity", "value": "boat_rental", "description": "🄿 Boat Rental", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/boating.svg"}, + {"key": "amenity", "value": "bureau_de_change", "description": "🄿 Currency Exchange", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/bank-15.svg"}, + {"key": "amenity", "value": "cafe", "description": "🄿 Cafe", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/cafe-15.svg"}, + {"key": "amenity", "value": "car_pooling", "description": "🄿 Car Pooling", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/car-15.svg"}, + {"key": "amenity", "value": "car_rental", "description": "🄿 Car Rental", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/car-rental-15.svg"}, + {"key": "amenity", "value": "car_sharing", "description": "🄿 Car Sharing", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/car-15.svg"}, + {"key": "amenity", "value": "car_wash", "description": "🄿 Car Wash", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/car_wash.svg"}, + {"key": "amenity", "value": "casino", "description": "🄿 Casino", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/casino-15.svg"}, + {"key": "amenity", "value": "charging_station", "description": "🄿 Charging Station", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-charging-station.svg"}, + {"key": "amenity", "value": "childcare", "description": "🄿 Nursery/Childcare", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-child.svg"}, + {"key": "amenity", "value": "cinema", "description": "🄿 Cinema", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/cinema-15.svg"}, + {"key": "amenity", "value": "clinic", "description": "🄿 Clinic", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/doctor-15.svg"}, + {"key": "healthcare:speciality", "value": "abortion", "description": "🄿 Abortion Clinic", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/hospital-15.svg"}, + {"key": "healthcare:speciality", "value": "fertility", "description": "🄿 Fertility Clinic", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/hospital-15.svg"}, + {"key": "amenity", "value": "clock", "description": "🄿 Clock", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/clock.svg"}, + {"key": "display", "value": "sundial", "description": "🄿 Sundial", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/clock.svg"}, + {"key": "amenity", "value": "college", "description": "🄿 College Grounds", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/college-15.svg"}, + {"key": "amenity", "value": "community_centre", "description": "🄿 Community Center", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/town-hall-15.svg"}, + {"key": "amenity", "value": "compressed_air", "description": "🄿 Compressed Air", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/car-15.svg"}, + {"key": "amenity", "value": "conference_centre", "description": "🄿 Convention Center", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-user-tie.svg"}, + {"key": "amenity", "value": "courthouse", "description": "🄿 Courthouse", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-gavel.svg"}, + {"key": "amenity", "value": "crematorium", "description": "🄿 Crematorium", "object_types": ["area", "node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/cemetery-15.svg"}, + {"key": "amenity", "value": "dentist", "description": "🄿 Dentist", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/dentist-15.svg"}, + {"key": "amenity", "value": "dive_centre", "description": "🄿 Dive Center", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/scuba_diving.svg"}, + {"key": "amenity", "value": "doctors", "description": "🄿 Doctor", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/doctor-15.svg"}, + {"key": "amenity", "value": "dojo", "description": "🄿 Dojo / Martial Arts Academy", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/pitch-15.svg"}, + {"key": "amenity", "value": "drinking_water", "description": "🄿 Drinking Water", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/drinking-water-15.svg"}, + {"key": "amenity", "value": "driving_school", "description": "🄿 Driving School", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/car-15.svg"}, + {"key": "amenity", "value": "events_venue", "description": "🄿 Events Venue", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-users.svg"}, + {"key": "amenity", "value": "fast_food", "description": "🄿 Fast Food", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/fast-food-15.svg"}, + {"key": "cuisine", "value": "ice_cream", "description": "🄿 Ice Cream Fast Food (unsearchable)", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-ice-cream.svg"}, + {"key": "cuisine", "value": "burger", "description": "🄿 Burger Fast Food", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/fast-food-15.svg"}, + {"key": "cuisine", "value": "chicken", "description": "🄿 Chicken Fast Food", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-drumstick-bite.svg"}, + {"key": "cuisine", "value": "donut", "description": "🄿 Donut Fast Food", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/donut.svg"}, + {"key": "cuisine", "value": "fish_and_chips", "description": "🄿 Fish & Chips Fast Food", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-fish.svg"}, + {"key": "cuisine", "value": "kebab", "description": "🄿 Kebab Fast Food", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/restaurant-15.svg"}, + {"key": "cuisine", "value": "mexican", "description": "🄿 Mexican Fast Food, 🄿 Mexican Restaurant", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-pepper-hot.svg"}, + {"key": "cuisine", "value": "pizza", "description": "🄿 Pizza Fast Food, 🄿 Pizza Restaurant", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/restaurant-pizza-15.svg"}, + {"key": "cuisine", "value": "sandwich", "description": "🄿 Sandwich Fast Food", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/restaurant-15.svg"}, + {"key": "amenity", "value": "fire_station", "description": "🄿 Fire Station", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/fire-station-15.svg"}, + {"key": "amenity", "value": "food_court", "description": "🄿 Food Court", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/restaurant-15.svg"}, + {"key": "amenity", "value": "fountain", "description": "🄿 Fountain", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/fountain.svg"}, + {"key": "amenity", "value": "fuel", "description": "🄿 Gas Station", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/fuel-15.svg"}, + {"key": "amenity", "value": "grave_yard", "description": "🄿 Graveyard", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/cemetery-15.svg"}, + {"key": "amenity", "value": "grit_bin", "description": "🄿 Grit Bin", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-box.svg"}, + {"key": "amenity", "value": "hospital", "description": "🄿 Hospital Grounds", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/hospital-15.svg"}, + {"key": "amenity", "value": "hunting_stand", "description": "🄿 Hunting Stand", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/binoculars.svg"}, + {"key": "amenity", "value": "ice_cream", "description": "🄿 Ice Cream Shop", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-ice-cream.svg"}, + {"key": "amenity", "value": "internet_cafe", "description": "🄿 Internet Cafe", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/antenna.svg"}, + {"key": "amenity", "value": "karaoke_box", "description": "🄿 Karaoke Box", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/karaoke-15.svg"}, + {"key": "amenity", "value": "kindergarten", "description": "🄿 Preschool/Kindergarten Grounds", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/school-15.svg"}, + {"key": "amenity", "value": "language_school", "description": "🄿 Language School", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/school-15.svg"}, + {"key": "amenity", "value": "library", "description": "🄿 Library", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/library-15.svg"}, + {"key": "amenity", "value": "love_hotel", "description": "🄿 Love Hotel", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/heart-15.svg"}, + {"key": "amenity", "value": "marketplace", "description": "🄿 Marketplace", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "amenity", "value": "monastery", "description": "🄿 Monastery Grounds", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/place-of-worship-15.svg"}, + {"key": "amenity", "value": "money_transfer", "description": "🄿 Money Transfer Station", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/bank-15.svg"}, + {"key": "amenity", "value": "motorcycle_parking", "description": "🄿 Motorcycle Parking", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-motorcycle.svg"}, + {"key": "amenity", "value": "music_school", "description": "🄿 Music School", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/school-15.svg"}, + {"key": "amenity", "value": "nightclub", "description": "🄿 Nightclub", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/bar-15.svg"}, + {"key": "amenity", "value": "parking_entrance", "description": "🄿 Parking Garage Entrance/Exit", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/entrance-alt1-15.svg"}, {"key": "amenity", "value": "parking_space", "description": "🄿 Parking Space", "object_types": ["node", "area"]}, - {"key": "amenity", "value": "parking", "description": "🄿 Parking Lot", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/car-15.svg?sanitize=true"}, - {"key": "parking", "value": "multi-storey", "description": "🄿 Multilevel Parking Garage, 🄵 Type", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/car-15.svg?sanitize=true"}, - {"key": "parking", "value": "underground", "description": "🄿 Underground Parking, 🄵 Type", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/car-15.svg?sanitize=true"}, - {"key": "amenity", "value": "payment_centre", "description": "🄿 Payment Center", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/bank-15.svg?sanitize=true"}, - {"key": "amenity", "value": "payment_terminal", "description": "🄿 Payment Terminal", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/far-credit-card.svg?sanitize=true"}, - {"key": "amenity", "value": "pharmacy", "description": "🄿 Pharmacy Counter", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/pharmacy-15.svg?sanitize=true"}, - {"key": "amenity", "value": "photo_booth", "description": "🄿 Photo Booth", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-person-booth.svg?sanitize=true"}, - {"key": "amenity", "value": "place_of_worship", "description": "🄿 Place of Worship", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/place-of-worship-15.svg?sanitize=true"}, - {"key": "religion", "value": "buddhist", "description": "🄿 Buddhist Temple", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/religious-buddhist-15.svg?sanitize=true"}, - {"key": "religion", "value": "christian", "description": "🄿 Christian Church", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/religious-christian-15.svg?sanitize=true"}, - {"key": "denomination", "value": "jehovahs_witness", "description": "🄿 Kingdom Hall of Jehovah's Witnesses", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/place-of-worship-15.svg?sanitize=true"}, - {"key": "denomination", "value": "la_luz_del_mundo", "description": "🄿 La Luz del Mundo Temple", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/place-of-worship-15.svg?sanitize=true"}, - {"key": "denomination", "value": "quaker", "description": "🄿 Quaker Friends Meeting House", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/place-of-worship-15.svg?sanitize=true"}, - {"key": "religion", "value": "hindu", "description": "🄿 Hindu Temple", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/hinduism.svg?sanitize=true"}, - {"key": "religion", "value": "jewish", "description": "🄿 Jewish Synagogue", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/religious-jewish-15.svg?sanitize=true"}, - {"key": "religion", "value": "muslim", "description": "🄿 Muslim Mosque", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/religious-muslim-15.svg?sanitize=true"}, - {"key": "religion", "value": "shinto", "description": "🄿 Shinto Shrine", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/shinto.svg?sanitize=true"}, - {"key": "religion", "value": "sikh", "description": "🄿 Sikh Temple", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/sikhism.svg?sanitize=true"}, - {"key": "religion", "value": "taoist", "description": "🄿 Taoist Temple", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/taoism.svg?sanitize=true"}, - {"key": "amenity", "value": "planetarium", "description": "🄿 Planetarium", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/globe-15.svg?sanitize=true"}, - {"key": "amenity", "value": "police", "description": "🄿 Police", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/police-15.svg?sanitize=true"}, - {"key": "amenity", "value": "polling_station", "description": "🄿 Permanent Polling Place", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-vote-yea.svg?sanitize=true"}, - {"key": "amenity", "value": "post_box", "description": "🄿 Mailbox", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/post_box.svg?sanitize=true"}, - {"key": "amenity", "value": "post_office", "description": "🄿 Post Office", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/post-15.svg?sanitize=true"}, - {"key": "amenity", "value": "prep_school", "description": "🄿 Test Prep / Tutoring School", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/school.svg?sanitize=true"}, - {"key": "amenity", "value": "prison", "description": "🄿 Prison Grounds", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/prison-15.svg?sanitize=true"}, - {"key": "amenity", "value": "pub", "description": "🄿 Pub", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/beer-15.svg?sanitize=true"}, - {"key": "microbrewery", "value": "yes", "description": "🄿 Brewpub", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/beer-15.svg?sanitize=true"}, - {"key": "amenity", "value": "public_bath", "description": "🄿 Public Bath", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/water-15.svg?sanitize=true"}, - {"key": "amenity", "value": "public_bookcase", "description": "🄿 Public Bookcase", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/library-15.svg?sanitize=true"}, - {"key": "amenity", "value": "ranger_station", "description": "🄿 Ranger Station", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/ranger-station-15.svg?sanitize=true"}, - {"key": "recycling_type", "value": "centre", "description": "🄿 Recycling Center, 🄵 Type", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/recycling-15.svg?sanitize=true"}, - {"key": "recycling_type", "value": "container", "description": "🄿 Recycling Container, 🄵 Type", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/recycling-15.svg?sanitize=true"}, - {"key": "amenity", "value": "restaurant", "description": "🄿 Restaurant", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/restaurant-15.svg?sanitize=true"}, - {"key": "cuisine", "value": "american", "description": "🄿 American Restaurant", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/restaurant-15.svg?sanitize=true"}, - {"key": "cuisine", "value": "asian", "description": "🄿 Asian Restaurant", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/restaurant-noodle-15.svg?sanitize=true"}, - {"key": "cuisine", "value": "chinese", "description": "🄿 Chinese Restaurant", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/restaurant-noodle-15.svg?sanitize=true"}, - {"key": "cuisine", "value": "french", "description": "🄿 French Restaurant", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/restaurant-15.svg?sanitize=true"}, - {"key": "cuisine", "value": "german", "description": "🄿 German Restaurant", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/restaurant-15.svg?sanitize=true"}, - {"key": "cuisine", "value": "greek", "description": "🄿 Greek Restaurant", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/restaurant-15.svg?sanitize=true"}, - {"key": "cuisine", "value": "indian", "description": "🄿 Indian Restaurant", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/restaurant-15.svg?sanitize=true"}, - {"key": "cuisine", "value": "italian", "description": "🄿 Italian Restaurant", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/restaurant-15.svg?sanitize=true"}, - {"key": "cuisine", "value": "japanese", "description": "🄿 Japanese Restaurant", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/restaurant-noodle-15.svg?sanitize=true"}, - {"key": "cuisine", "value": "noodle", "description": "🄿 Noodle Restaurant", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/restaurant-noodle-15.svg?sanitize=true"}, - {"key": "cuisine", "value": "seafood", "description": "🄿 Seafood Restaurant", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/restaurant-seafood-15.svg?sanitize=true"}, - {"key": "cuisine", "value": "steak_house", "description": "🄿 Steakhouse", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/slaughterhouse-15.svg?sanitize=true"}, - {"key": "cuisine", "value": "sushi", "description": "🄿 Sushi Restaurant", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-fish.svg?sanitize=true"}, - {"key": "cuisine", "value": "thai", "description": "🄿 Thai Restaurant", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/restaurant-noodle-15.svg?sanitize=true"}, - {"key": "cuisine", "value": "turkish", "description": "🄿 Turkish Restaurant", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/restaurant-15.svg?sanitize=true"}, - {"key": "cuisine", "value": "vietnamese", "description": "🄿 Vietnamese Restaurant", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/restaurant-noodle-15.svg?sanitize=true"}, - {"key": "amenity", "value": "sanitary_dump_station", "description": "🄿 RV Toilet Disposal", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/storage_tank.svg?sanitize=true"}, - {"key": "amenity", "value": "school", "description": "🄿 School Grounds", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/school-15.svg?sanitize=true"}, - {"key": "amenity", "value": "shelter", "description": "🄿 Shelter", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shelter-15.svg?sanitize=true"}, - {"key": "shelter_type", "value": "gazebo", "description": "🄿 Gazebo", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shelter-15.svg?sanitize=true"}, - {"key": "shelter_type", "value": "lean_to", "description": "🄿 Lean-To", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shelter-15.svg?sanitize=true"}, - {"key": "shelter_type", "value": "picnic_shelter", "description": "🄿 Picnic Shelter", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shelter-15.svg?sanitize=true"}, - {"key": "shelter_type", "value": "public_transport", "description": "🄿 Transit Shelter", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shelter-15.svg?sanitize=true"}, - {"key": "amenity", "value": "shower", "description": "🄿 Shower", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-shower.svg?sanitize=true"}, - {"key": "amenity", "value": "smoking_area", "description": "🄿 Smoking Area", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-smoking.svg?sanitize=true"}, - {"key": "amenity", "value": "social_centre", "description": "🄿 Social Center", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-handshake.svg?sanitize=true"}, - {"key": "amenity", "value": "social_facility", "description": "🄿 Social Facility", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/social_facility.svg?sanitize=true"}, - {"key": "social_facility", "value": "ambulatory_care", "description": "🄿 Ambulatory Care", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/wheelchair-15.svg?sanitize=true"}, - {"key": "social_facility", "value": "food_bank", "description": "🄿 Food Bank", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/social_facility.svg?sanitize=true"}, - {"key": "social_facility:for", "value": "senior", "description": "🄿 Elderly Group Home, 🄿 Nursing Home", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/wheelchair-15.svg?sanitize=true"}, - {"key": "social_facility:for", "value": "homeless", "description": "🄿 Homeless Shelter", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/social_facility.svg?sanitize=true"}, - {"key": "amenity", "value": "studio", "description": "🄿 Studio", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-microphone.svg?sanitize=true"}, - {"key": "amenity", "value": "taxi", "description": "🄿 Taxi Stand", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-taxi.svg?sanitize=true"}, - {"key": "amenity", "value": "telephone", "description": "🄿 Telephone", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/telephone-15.svg?sanitize=true"}, - {"key": "amenity", "value": "theatre", "description": "🄿 Theater", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/theatre-15.svg?sanitize=true"}, - {"key": "theatre:type", "value": "amphi", "description": "🄿 Amphitheatre", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/theatre-15.svg?sanitize=true"}, - {"key": "amenity", "value": "toilets", "description": "🄿 Toilets", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/toilet-15.svg?sanitize=true"}, - {"key": "toilets:disposal", "value": "flush", "description": "🄿 Flush Toilets, 🄵 Disposal", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-toilet.svg?sanitize=true"}, - {"key": "toilets:disposal", "value": "pitlatrine", "description": "🄿 Pit Latrine, 🄵 Disposal", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/the-noun-project/2009541.svg?sanitize=true"}, - {"key": "amenity", "value": "townhall", "description": "🄿 Town Hall", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/town-hall-15.svg?sanitize=true"}, - {"key": "amenity", "value": "toy_library", "description": "🄿 Toy Library", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-chess-knight.svg?sanitize=true"}, - {"key": "amenity", "value": "university", "description": "🄿 University Grounds", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/college-15.svg?sanitize=true"}, - {"key": "amenity", "value": "vehicle_inspection", "description": "🄿 Vehicle Inspection", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/car-15.svg?sanitize=true"}, - {"key": "amenity", "value": "vending_machine", "description": "🄿 Vending Machine", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/vending_machine.svg?sanitize=true"}, - {"key": "vending", "value": "cigarettes", "description": "🄿 Cigarette Vending Machine", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/vending_machine.svg?sanitize=true"}, - {"key": "vending", "value": "coffee", "description": "🄿 Coffee Vending Machine", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/vending_machine.svg?sanitize=true"}, - {"key": "vending", "value": "condoms", "description": "🄿 Condom Vending Machine", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/vending_machine.svg?sanitize=true"}, - {"key": "vending", "value": "drinks", "description": "🄿 Drink Vending Machine", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/vending_machine.svg?sanitize=true"}, - {"key": "vending", "value": "electronics", "description": "🄿 Electronics Vending Machine", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/vending_machine.svg?sanitize=true"}, - {"key": "vending", "value": "elongated_coin", "description": "🄿 Flat Coin Vending Machine", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/vending_machine.svg?sanitize=true"}, - {"key": "vending", "value": "excrement_bags", "description": "🄿 Excrement Bag Dispenser", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/vending_machine.svg?sanitize=true"}, - {"key": "vending", "value": "feminine_hygiene", "description": "🄿 Feminine Hygiene Vending Machine", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/vending_machine.svg?sanitize=true"}, - {"key": "vending", "value": "food", "description": "🄿 Food Vending Machine", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/vending_machine.svg?sanitize=true"}, - {"key": "vending", "value": "fuel", "description": "🄿 Gas Pump", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/fuel-15.svg?sanitize=true"}, - {"key": "vending", "value": "ice_cream", "description": "🄿 Ice Cream Vending Machine", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/vending_machine.svg?sanitize=true"}, - {"key": "vending", "value": "newspapers", "description": "🄿 Newspaper Vending Machine", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/far-newspaper.svg?sanitize=true"}, - {"key": "vending", "value": "parcel_pickup;parcel_mail_in", "description": "🄿 Parcel Pickup/Dropoff Locker", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/vending_machine.svg?sanitize=true"}, - {"key": "vending", "value": "parcel_pickup", "description": "🄿 Parcel Pickup Locker", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/vending_machine.svg?sanitize=true"}, - {"key": "vending", "value": "parking_tickets", "description": "🄿 Parking Ticket Vending Machine", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/vending_machine.svg?sanitize=true"}, - {"key": "vending", "value": "public_transport_tickets", "description": "🄿 Transit Ticket Vending Machine", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/vending_machine.svg?sanitize=true"}, - {"key": "vending", "value": "stamps", "description": "🄿 Postage Vending Machine", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/vending_machine.svg?sanitize=true"}, - {"key": "vending", "value": "sweets", "description": "🄿 Snack Vending Machine", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/vending_machine.svg?sanitize=true"}, - {"key": "amenity", "value": "veterinary", "description": "🄿 Veterinary", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/veterinary_care.svg?sanitize=true"}, - {"key": "amenity", "value": "waste_basket", "description": "🄿 Waste Basket", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/waste-basket-15.svg?sanitize=true"}, - {"key": "amenity", "value": "waste_disposal", "description": "🄿 Garbage Dumpster", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-dumpster.svg?sanitize=true"}, - {"key": "amenity", "value": "waste_transfer_station", "description": "🄿 Waste Transfer Station", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/waste-basket-15.svg?sanitize=true"}, - {"key": "waste", "value": "dog_excrement", "description": "🄿 Dog Excrement Bin", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/waste-basket-15.svg?sanitize=true"}, - {"key": "amenity", "value": "water_point", "description": "🄿 RV Drinking Water", "object_types": ["area", "node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/drinking-water-15.svg?sanitize=true"}, - {"key": "amenity", "value": "watering_place", "description": "🄿 Animal Watering Place", "object_types": ["area", "node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/drinking-water-15.svg?sanitize=true"}, + {"key": "amenity", "value": "parking", "description": "🄿 Parking Lot", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/car-15.svg"}, + {"key": "parking", "value": "multi-storey", "description": "🄿 Multilevel Parking Garage, 🄵 Type", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/car-15.svg"}, + {"key": "parking", "value": "underground", "description": "🄿 Underground Parking, 🄵 Type", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/car-15.svg"}, + {"key": "amenity", "value": "payment_centre", "description": "🄿 Payment Center", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/bank-15.svg"}, + {"key": "amenity", "value": "payment_terminal", "description": "🄿 Payment Terminal", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/far-credit-card.svg"}, + {"key": "amenity", "value": "pharmacy", "description": "🄿 Pharmacy Counter", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/pharmacy-15.svg"}, + {"key": "amenity", "value": "photo_booth", "description": "🄿 Photo Booth", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-person-booth.svg"}, + {"key": "amenity", "value": "place_of_worship", "description": "🄿 Place of Worship", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/place-of-worship-15.svg"}, + {"key": "religion", "value": "buddhist", "description": "🄿 Buddhist Temple", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/religious-buddhist-15.svg"}, + {"key": "religion", "value": "christian", "description": "🄿 Christian Church", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/religious-christian-15.svg"}, + {"key": "denomination", "value": "jehovahs_witness", "description": "🄿 Kingdom Hall of Jehovah's Witnesses", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/place-of-worship-15.svg"}, + {"key": "denomination", "value": "la_luz_del_mundo", "description": "🄿 La Luz del Mundo Temple", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/place-of-worship-15.svg"}, + {"key": "denomination", "value": "quaker", "description": "🄿 Quaker Friends Meeting House", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/place-of-worship-15.svg"}, + {"key": "religion", "value": "hindu", "description": "🄿 Hindu Temple", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/hinduism.svg"}, + {"key": "religion", "value": "jewish", "description": "🄿 Jewish Synagogue", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/religious-jewish-15.svg"}, + {"key": "religion", "value": "muslim", "description": "🄿 Muslim Mosque", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/religious-muslim-15.svg"}, + {"key": "religion", "value": "shinto", "description": "🄿 Shinto Shrine", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/shinto.svg"}, + {"key": "religion", "value": "sikh", "description": "🄿 Sikh Temple", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/sikhism.svg"}, + {"key": "religion", "value": "taoist", "description": "🄿 Taoist Temple", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/taoism.svg"}, + {"key": "amenity", "value": "planetarium", "description": "🄿 Planetarium", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/globe-15.svg"}, + {"key": "amenity", "value": "police", "description": "🄿 Police", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/police-15.svg"}, + {"key": "amenity", "value": "polling_station", "description": "🄿 Permanent Polling Place", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-vote-yea.svg"}, + {"key": "amenity", "value": "post_box", "description": "🄿 Mailbox", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/post_box.svg"}, + {"key": "amenity", "value": "post_office", "description": "🄿 Post Office", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/post-15.svg"}, + {"key": "amenity", "value": "prep_school", "description": "🄿 Test Prep / Tutoring School", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/school.svg"}, + {"key": "amenity", "value": "prison", "description": "🄿 Prison Grounds", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/prison-15.svg"}, + {"key": "amenity", "value": "pub", "description": "🄿 Pub", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/beer-15.svg"}, + {"key": "microbrewery", "value": "yes", "description": "🄿 Brewpub", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/beer-15.svg"}, + {"key": "amenity", "value": "public_bath", "description": "🄿 Public Bath", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/water-15.svg"}, + {"key": "amenity", "value": "public_bookcase", "description": "🄿 Public Bookcase", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/library-15.svg"}, + {"key": "amenity", "value": "ranger_station", "description": "🄿 Ranger Station", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/ranger-station-15.svg"}, + {"key": "recycling_type", "value": "centre", "description": "🄿 Recycling Center, 🄵 Type", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/recycling-15.svg"}, + {"key": "recycling_type", "value": "container", "description": "🄿 Recycling Container, 🄵 Type", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/recycling-15.svg"}, + {"key": "amenity", "value": "restaurant", "description": "🄿 Restaurant", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/restaurant-15.svg"}, + {"key": "cuisine", "value": "american", "description": "🄿 American Restaurant", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/restaurant-15.svg"}, + {"key": "cuisine", "value": "asian", "description": "🄿 Asian Restaurant", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/restaurant-noodle-15.svg"}, + {"key": "cuisine", "value": "chinese", "description": "🄿 Chinese Restaurant", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/restaurant-noodle-15.svg"}, + {"key": "cuisine", "value": "french", "description": "🄿 French Restaurant", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/restaurant-15.svg"}, + {"key": "cuisine", "value": "german", "description": "🄿 German Restaurant", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/restaurant-15.svg"}, + {"key": "cuisine", "value": "greek", "description": "🄿 Greek Restaurant", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/restaurant-15.svg"}, + {"key": "cuisine", "value": "indian", "description": "🄿 Indian Restaurant", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/restaurant-15.svg"}, + {"key": "cuisine", "value": "italian", "description": "🄿 Italian Restaurant", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/restaurant-15.svg"}, + {"key": "cuisine", "value": "japanese", "description": "🄿 Japanese Restaurant", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/restaurant-noodle-15.svg"}, + {"key": "cuisine", "value": "noodle", "description": "🄿 Noodle Restaurant", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/restaurant-noodle-15.svg"}, + {"key": "cuisine", "value": "seafood", "description": "🄿 Seafood Restaurant", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/restaurant-seafood-15.svg"}, + {"key": "cuisine", "value": "steak_house", "description": "🄿 Steakhouse", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/slaughterhouse-15.svg"}, + {"key": "cuisine", "value": "sushi", "description": "🄿 Sushi Restaurant", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-fish.svg"}, + {"key": "cuisine", "value": "thai", "description": "🄿 Thai Restaurant", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/restaurant-noodle-15.svg"}, + {"key": "cuisine", "value": "turkish", "description": "🄿 Turkish Restaurant", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/restaurant-15.svg"}, + {"key": "cuisine", "value": "vietnamese", "description": "🄿 Vietnamese Restaurant", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/restaurant-noodle-15.svg"}, + {"key": "amenity", "value": "sanitary_dump_station", "description": "🄿 RV Toilet Disposal", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/storage_tank.svg"}, + {"key": "amenity", "value": "school", "description": "🄿 School Grounds", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/school-15.svg"}, + {"key": "amenity", "value": "shelter", "description": "🄿 Shelter", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shelter-15.svg"}, + {"key": "shelter_type", "value": "gazebo", "description": "🄿 Gazebo", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shelter-15.svg"}, + {"key": "shelter_type", "value": "lean_to", "description": "🄿 Lean-To", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shelter-15.svg"}, + {"key": "shelter_type", "value": "picnic_shelter", "description": "🄿 Picnic Shelter", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shelter-15.svg"}, + {"key": "shelter_type", "value": "public_transport", "description": "🄿 Transit Shelter", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shelter-15.svg"}, + {"key": "amenity", "value": "shower", "description": "🄿 Shower", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-shower.svg"}, + {"key": "amenity", "value": "smoking_area", "description": "🄿 Smoking Area", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-smoking.svg"}, + {"key": "amenity", "value": "social_centre", "description": "🄿 Social Center", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-handshake.svg"}, + {"key": "amenity", "value": "social_facility", "description": "🄿 Social Facility", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/social_facility.svg"}, + {"key": "social_facility", "value": "ambulatory_care", "description": "🄿 Ambulatory Care", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/wheelchair-15.svg"}, + {"key": "social_facility", "value": "food_bank", "description": "🄿 Food Bank", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/social_facility.svg"}, + {"key": "social_facility:for", "value": "senior", "description": "🄿 Elderly Group Home, 🄿 Nursing Home", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/wheelchair-15.svg"}, + {"key": "social_facility:for", "value": "homeless", "description": "🄿 Homeless Shelter", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/social_facility.svg"}, + {"key": "amenity", "value": "studio", "description": "🄿 Studio", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-microphone.svg"}, + {"key": "amenity", "value": "taxi", "description": "🄿 Taxi Stand", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-taxi.svg"}, + {"key": "amenity", "value": "telephone", "description": "🄿 Telephone", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/telephone-15.svg"}, + {"key": "amenity", "value": "theatre", "description": "🄿 Theater", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/theatre-15.svg"}, + {"key": "theatre:type", "value": "amphi", "description": "🄿 Amphitheatre", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/theatre-15.svg"}, + {"key": "amenity", "value": "toilets", "description": "🄿 Toilets", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/toilet-15.svg"}, + {"key": "toilets:disposal", "value": "flush", "description": "🄿 Flush Toilets, 🄵 Disposal", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-toilet.svg"}, + {"key": "toilets:disposal", "value": "pitlatrine", "description": "🄿 Pit Latrine, 🄵 Disposal", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/the-noun-project/2009541.svg"}, + {"key": "amenity", "value": "townhall", "description": "🄿 Town Hall", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/town-hall-15.svg"}, + {"key": "amenity", "value": "toy_library", "description": "🄿 Toy Library", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-chess-knight.svg"}, + {"key": "amenity", "value": "university", "description": "🄿 University Grounds", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/college-15.svg"}, + {"key": "amenity", "value": "vehicle_inspection", "description": "🄿 Vehicle Inspection", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/car-15.svg"}, + {"key": "amenity", "value": "vending_machine", "description": "🄿 Vending Machine", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/vending_machine.svg"}, + {"key": "vending", "value": "cigarettes", "description": "🄿 Cigarette Vending Machine", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/vending_machine.svg"}, + {"key": "vending", "value": "coffee", "description": "🄿 Coffee Vending Machine", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/vending_machine.svg"}, + {"key": "vending", "value": "condoms", "description": "🄿 Condom Vending Machine", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/vending_machine.svg"}, + {"key": "vending", "value": "drinks", "description": "🄿 Drink Vending Machine", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/vending_machine.svg"}, + {"key": "vending", "value": "electronics", "description": "🄿 Electronics Vending Machine", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/vending_machine.svg"}, + {"key": "vending", "value": "elongated_coin", "description": "🄿 Flat Coin Vending Machine", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/vending_machine.svg"}, + {"key": "vending", "value": "excrement_bags", "description": "🄿 Excrement Bag Dispenser", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/vending_machine.svg"}, + {"key": "vending", "value": "feminine_hygiene", "description": "🄿 Feminine Hygiene Vending Machine", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/vending_machine.svg"}, + {"key": "vending", "value": "food", "description": "🄿 Food Vending Machine", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/vending_machine.svg"}, + {"key": "vending", "value": "fuel", "description": "🄿 Gas Pump", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/fuel-15.svg"}, + {"key": "vending", "value": "ice_cream", "description": "🄿 Ice Cream Vending Machine", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/vending_machine.svg"}, + {"key": "vending", "value": "newspapers", "description": "🄿 Newspaper Vending Machine", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/far-newspaper.svg"}, + {"key": "vending", "value": "parcel_pickup;parcel_mail_in", "description": "🄿 Parcel Pickup/Dropoff Locker", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/vending_machine.svg"}, + {"key": "vending", "value": "parcel_pickup", "description": "🄿 Parcel Pickup Locker", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/vending_machine.svg"}, + {"key": "vending", "value": "parking_tickets", "description": "🄿 Parking Ticket Vending Machine", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/vending_machine.svg"}, + {"key": "vending", "value": "public_transport_tickets", "description": "🄿 Transit Ticket Vending Machine", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/vending_machine.svg"}, + {"key": "vending", "value": "stamps", "description": "🄿 Postage Vending Machine", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/vending_machine.svg"}, + {"key": "vending", "value": "sweets", "description": "🄿 Snack Vending Machine", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/vending_machine.svg"}, + {"key": "amenity", "value": "veterinary", "description": "🄿 Veterinary", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/veterinary_care.svg"}, + {"key": "amenity", "value": "waste_basket", "description": "🄿 Waste Basket", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/waste-basket-15.svg"}, + {"key": "amenity", "value": "waste_disposal", "description": "🄿 Garbage Dumpster", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-dumpster.svg"}, + {"key": "amenity", "value": "waste_transfer_station", "description": "🄿 Waste Transfer Station", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/waste-basket-15.svg"}, + {"key": "waste", "value": "dog_excrement", "description": "🄿 Dog Excrement Bin", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/waste-basket-15.svg"}, + {"key": "amenity", "value": "water_point", "description": "🄿 RV Drinking Water", "object_types": ["area", "node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/drinking-water-15.svg"}, + {"key": "amenity", "value": "watering_place", "description": "🄿 Animal Watering Place", "object_types": ["area", "node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/drinking-water-15.svg"}, {"key": "area", "value": "yes", "description": "🄿 Area, 🄿 Pedestrian Area", "object_types": ["area"]}, {"key": "area:highway", "description": "🄿 Road Surface, 🄵 Type", "object_types": ["area"]}, - {"key": "attraction", "value": "amusement_ride", "description": "🄿 Amusement Ride", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/amusement-park-15.svg?sanitize=true"}, - {"key": "attraction", "value": "animal", "description": "🄿 Animal Enclosure", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/zoo-15.svg?sanitize=true"}, - {"key": "attraction", "value": "big_wheel", "description": "🄿 Big Wheel", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/amusement-park-15.svg?sanitize=true"}, - {"key": "attraction", "value": "bumper_car", "description": "🄿 Bumper Car", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/car-15.svg?sanitize=true"}, - {"key": "attraction", "value": "bungee_jumping", "description": "🄿 Bungee Jumping", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/pitch-15.svg?sanitize=true"}, - {"key": "attraction", "value": "carousel", "description": "🄿 Carousel", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/amusement_park.svg?sanitize=true"}, - {"key": "attraction", "value": "dark_ride", "description": "🄿 Dark Ride", "object_types": ["node", "way", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/rail-metro-15.svg?sanitize=true"}, - {"key": "attraction", "value": "drop_tower", "description": "🄿 Drop Tower", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/tower.svg?sanitize=true"}, - {"key": "attraction", "value": "maze", "description": "🄿 Maze", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/amusement-park-15.svg?sanitize=true"}, - {"key": "attraction", "value": "pirate_ship", "description": "🄿 Pirate Ship", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/danger-15.svg?sanitize=true"}, - {"key": "attraction", "value": "river_rafting", "description": "🄿 River Rafting", "object_types": ["node", "way"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/ferry-15.svg?sanitize=true"}, - {"key": "attraction", "value": "roller_coaster", "description": "🄿 Roller Coaster", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/amusement-park-15.svg?sanitize=true"}, - {"key": "attraction", "value": "summer_toboggan", "description": "🄿 Summer Toboggan", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/sledding.svg?sanitize=true"}, - {"key": "attraction", "value": "train", "description": "🄿 Tourist Train", "object_types": ["node", "way"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/rail-15.svg?sanitize=true"}, - {"key": "attraction", "value": "water_slide", "description": "🄿 Water Slide", "object_types": ["way", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-swimmer.svg?sanitize=true"}, - {"key": "barrier", "description": "🄿 Barrier, 🄵 Type", "object_types": ["node", "way", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/roadblock-15.svg?sanitize=true"}, - {"key": "barrier", "value": "entrance", "description": "🄿 Entrance (unsearchable)", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/entrance-alt1-15.svg?sanitize=true"}, - {"key": "barrier", "value": "block", "description": "🄿 Block", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/roadblock-15.svg?sanitize=true"}, - {"key": "barrier", "value": "bollard", "description": "🄿 Bollard", "object_types": ["node", "way"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/roadblock-15.svg?sanitize=true"}, - {"key": "barrier", "value": "border_control", "description": "🄿 Border Control", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/roadblock-15.svg?sanitize=true"}, - {"key": "barrier", "value": "cattle_grid", "description": "🄿 Cattle Grid", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/barrier-15.svg?sanitize=true"}, - {"key": "barrier", "value": "chain", "description": "🄿 Chain", "object_types": ["node", "way"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/barrier-15.svg?sanitize=true"}, - {"key": "barrier", "value": "city_wall", "description": "🄿 City Wall", "object_types": ["way", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/wall.svg?sanitize=true"}, - {"key": "barrier", "value": "cycle_barrier", "description": "🄿 Cycle Barrier", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/roadblock-15.svg?sanitize=true"}, - {"key": "barrier", "value": "ditch", "description": "🄿 Trench", "object_types": ["way", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/roadblock-15.svg?sanitize=true"}, - {"key": "barrier", "value": "fence", "description": "🄿 Fence", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/fence-15.svg?sanitize=true"}, - {"key": "fence_type", "value": "railing", "description": "🄿 Railing", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/railing.svg?sanitize=true"}, - {"key": "barrier", "value": "gate", "description": "🄿 Gate", "object_types": ["node", "way"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/barrier-15.svg?sanitize=true"}, - {"key": "barrier", "value": "guard_rail", "description": "🄿 Guard Rail", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/guard_rail.svg?sanitize=true"}, + {"key": "attraction", "value": "amusement_ride", "description": "🄿 Amusement Ride", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/amusement-park-15.svg"}, + {"key": "attraction", "value": "animal", "description": "🄿 Animal Enclosure", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/zoo-15.svg"}, + {"key": "attraction", "value": "big_wheel", "description": "🄿 Big Wheel", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/amusement-park-15.svg"}, + {"key": "attraction", "value": "bumper_car", "description": "🄿 Bumper Car", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/car-15.svg"}, + {"key": "attraction", "value": "bungee_jumping", "description": "🄿 Bungee Jumping", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/pitch-15.svg"}, + {"key": "attraction", "value": "carousel", "description": "🄿 Carousel", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/amusement_park.svg"}, + {"key": "attraction", "value": "dark_ride", "description": "🄿 Dark Ride", "object_types": ["node", "way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/rail-metro-15.svg"}, + {"key": "attraction", "value": "drop_tower", "description": "🄿 Drop Tower", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/tower.svg"}, + {"key": "attraction", "value": "maze", "description": "🄿 Maze", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/amusement-park-15.svg"}, + {"key": "attraction", "value": "pirate_ship", "description": "🄿 Pirate Ship", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/danger-15.svg"}, + {"key": "attraction", "value": "river_rafting", "description": "🄿 River Rafting", "object_types": ["node", "way"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/ferry-15.svg"}, + {"key": "attraction", "value": "roller_coaster", "description": "🄿 Roller Coaster", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/amusement-park-15.svg"}, + {"key": "attraction", "value": "summer_toboggan", "description": "🄿 Summer Toboggan", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/sledding.svg"}, + {"key": "attraction", "value": "train", "description": "🄿 Tourist Train", "object_types": ["node", "way"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/rail-15.svg"}, + {"key": "attraction", "value": "water_slide", "description": "🄿 Water Slide", "object_types": ["way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-swimmer.svg"}, + {"key": "barrier", "description": "🄿 Barrier, 🄵 Type", "object_types": ["node", "way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/roadblock-15.svg"}, + {"key": "barrier", "value": "entrance", "description": "🄿 Entrance (unsearchable)", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/entrance-alt1-15.svg"}, + {"key": "barrier", "value": "block", "description": "🄿 Block", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/roadblock-15.svg"}, + {"key": "barrier", "value": "bollard", "description": "🄿 Bollard", "object_types": ["node", "way"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/roadblock-15.svg"}, + {"key": "barrier", "value": "border_control", "description": "🄿 Border Control", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/roadblock-15.svg"}, + {"key": "barrier", "value": "cattle_grid", "description": "🄿 Cattle Grid", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/barrier-15.svg"}, + {"key": "barrier", "value": "chain", "description": "🄿 Chain", "object_types": ["node", "way"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/barrier-15.svg"}, + {"key": "barrier", "value": "city_wall", "description": "🄿 City Wall", "object_types": ["way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/wall.svg"}, + {"key": "barrier", "value": "cycle_barrier", "description": "🄿 Cycle Barrier", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/roadblock-15.svg"}, + {"key": "barrier", "value": "ditch", "description": "🄿 Trench", "object_types": ["way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/roadblock-15.svg"}, + {"key": "barrier", "value": "fence", "description": "🄿 Fence", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/fence-15.svg"}, + {"key": "fence_type", "value": "railing", "description": "🄿 Railing", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/railing.svg"}, + {"key": "barrier", "value": "gate", "description": "🄿 Gate", "object_types": ["node", "way"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/barrier-15.svg"}, + {"key": "barrier", "value": "guard_rail", "description": "🄿 Guard Rail", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/guard_rail.svg"}, {"key": "barrier", "value": "hedge", "description": "🄿 Hedge", "object_types": ["way", "area"]}, - {"key": "barrier", "value": "height_restrictor", "description": "🄿 Height Restrictor", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/car_wash.svg?sanitize=true"}, - {"key": "barrier", "value": "kerb", "description": "🄿 Curb", "object_types": ["node", "way"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/kerb-raised.svg?sanitize=true"}, - {"key": "kerb", "value": "flush", "description": "🄿 Flush Curb", "object_types": ["node", "way"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/kerb-flush.svg?sanitize=true"}, - {"key": "kerb", "value": "lowered", "description": "🄿 Lowered Curb", "object_types": ["node", "way"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/kerb-lowered.svg?sanitize=true"}, - {"key": "kerb", "value": "raised", "description": "🄿 Raised Curb", "object_types": ["node", "way"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/kerb-raised.svg?sanitize=true"}, - {"key": "kerb", "value": "rolled", "description": "🄿 Rolled Curb", "object_types": ["node", "way"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/kerb-rolled.svg?sanitize=true"}, - {"key": "barrier", "value": "kissing_gate", "description": "🄿 Kissing Gate", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/barrier-15.svg?sanitize=true"}, - {"key": "barrier", "value": "lift_gate", "description": "🄿 Lift Gate", "object_types": ["node", "way"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/roadblock-15.svg?sanitize=true"}, - {"key": "barrier", "value": "retaining_wall", "description": "🄿 Retaining Wall", "object_types": ["way", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/wall.svg?sanitize=true"}, - {"key": "barrier", "value": "sally_port", "description": "🄿 Sally Port", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-dungeon.svg?sanitize=true"}, - {"key": "barrier", "value": "stile", "description": "🄿 Stile", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/roadblock-15.svg?sanitize=true"}, - {"key": "barrier", "value": "toll_booth", "description": "🄿 Toll Booth", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/roadblock-15.svg?sanitize=true"}, - {"key": "barrier", "value": "turnstile", "description": "🄿 Turnstile", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/roadblock-15.svg?sanitize=true"}, - {"key": "barrier", "value": "wall", "description": "🄿 Wall", "object_types": ["way", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/wall.svg?sanitize=true"}, + {"key": "barrier", "value": "height_restrictor", "description": "🄿 Height Restrictor", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/car_wash.svg"}, + {"key": "barrier", "value": "kerb", "description": "🄿 Curb", "object_types": ["node", "way"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/kerb-raised.svg"}, + {"key": "kerb", "value": "flush", "description": "🄿 Flush Curb", "object_types": ["node", "way"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/kerb-flush.svg"}, + {"key": "kerb", "value": "lowered", "description": "🄿 Lowered Curb", "object_types": ["node", "way"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/kerb-lowered.svg"}, + {"key": "kerb", "value": "raised", "description": "🄿 Raised Curb", "object_types": ["node", "way"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/kerb-raised.svg"}, + {"key": "kerb", "value": "rolled", "description": "🄿 Rolled Curb", "object_types": ["node", "way"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/kerb-rolled.svg"}, + {"key": "barrier", "value": "kissing_gate", "description": "🄿 Kissing Gate", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/barrier-15.svg"}, + {"key": "barrier", "value": "lift_gate", "description": "🄿 Lift Gate", "object_types": ["node", "way"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/roadblock-15.svg"}, + {"key": "barrier", "value": "retaining_wall", "description": "🄿 Retaining Wall", "object_types": ["way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/wall.svg"}, + {"key": "barrier", "value": "sally_port", "description": "🄿 Sally Port", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-dungeon.svg"}, + {"key": "barrier", "value": "stile", "description": "🄿 Stile", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/roadblock-15.svg"}, + {"key": "barrier", "value": "toll_booth", "description": "🄿 Toll Booth", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/roadblock-15.svg"}, + {"key": "barrier", "value": "turnstile", "description": "🄿 Turnstile", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/roadblock-15.svg"}, + {"key": "barrier", "value": "wall", "description": "🄿 Wall", "object_types": ["way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/wall.svg"}, {"key": "boundary", "value": "administrative", "description": "🄿 Administrative Boundary", "object_types": ["way"]}, - {"key": "bridge:support", "description": "🄿 Bridge Support, 🄵 Type", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-archway.svg?sanitize=true"}, - {"key": "bridge:support", "value": "pier", "description": "🄿 Bridge Pier", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-archway.svg?sanitize=true"}, - {"key": "building:part", "description": "🄿 Building Part", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/building-15.svg?sanitize=true"}, + {"key": "bridge:support", "description": "🄿 Bridge Support, 🄵 Type", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-archway.svg"}, + {"key": "bridge:support", "value": "pier", "description": "🄿 Bridge Pier", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-archway.svg"}, + {"key": "building:part", "description": "🄿 Building Part", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/building-15.svg"}, {"key": "building", "value": "bunker", "description": "🄿 Bunker (unsearchable)", "object_types": ["area"]}, - {"key": "building", "value": "entrance", "description": "🄿 Entrance/Exit (unsearchable), 🄳 ➜ entrance=*", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/entrance-alt1-15.svg?sanitize=true"}, - {"key": "building", "value": "train_station", "description": "🄿 Train Station Building (unsearchable)", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/building-15.svg?sanitize=true"}, - {"key": "building", "value": "apartments", "description": "🄿 Apartment Building", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/building-15.svg?sanitize=true"}, - {"key": "building", "value": "barn", "description": "🄿 Barn", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/farm-15.svg?sanitize=true"}, - {"key": "building", "value": "boathouse", "description": "🄿 Boathouse", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/harbor-15.svg?sanitize=true"}, - {"key": "building", "value": "bungalow", "description": "🄿 Bungalow", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/home-15.svg?sanitize=true"}, - {"key": "building", "value": "cabin", "description": "🄿 Cabin", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/home-15.svg?sanitize=true"}, - {"key": "building", "value": "carport", "description": "🄿 Carport", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-warehouse.svg?sanitize=true"}, - {"key": "building", "value": "cathedral", "description": "🄿 Cathedral Building", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/place-of-worship-15.svg?sanitize=true"}, - {"key": "building", "value": "chapel", "description": "🄿 Chapel Building", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/place-of-worship-15.svg?sanitize=true"}, - {"key": "building", "value": "church", "description": "🄿 Church Building", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/place-of-worship-15.svg?sanitize=true"}, - {"key": "building", "value": "civic", "description": "🄿 Civic Building", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/building-15.svg?sanitize=true"}, - {"key": "building", "value": "college", "description": "🄿 College Building", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/building-15.svg?sanitize=true"}, - {"key": "building", "value": "commercial", "description": "🄿 Commercial Building", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/suitcase-15.svg?sanitize=true"}, - {"key": "building", "value": "construction", "description": "🄿 Building Under Construction", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/building-15.svg?sanitize=true"}, - {"key": "building", "value": "detached", "description": "🄿 Detached House", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/home-15.svg?sanitize=true"}, - {"key": "building", "value": "dormitory", "description": "🄿 Dormitory", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/building-15.svg?sanitize=true"}, - {"key": "building", "value": "farm_auxiliary", "description": "🄿 Farm Building", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/farm-15.svg?sanitize=true"}, - {"key": "building", "value": "farm", "description": "🄿 Farm House", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/farm-15.svg?sanitize=true"}, - {"key": "building", "value": "garage", "description": "🄿 Garage", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-warehouse.svg?sanitize=true"}, - {"key": "building", "value": "garages", "description": "🄿 Garages", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-warehouse.svg?sanitize=true"}, - {"key": "building", "value": "grandstand", "description": "🄿 Grandstand", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/building-15.svg?sanitize=true"}, - {"key": "building", "value": "greenhouse", "description": "🄿 Greenhouse", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/garden-centre-15.svg?sanitize=true"}, - {"key": "building", "value": "hangar", "description": "🄿 Hangar Building", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-warehouse.svg?sanitize=true"}, - {"key": "building", "value": "hospital", "description": "🄿 Hospital Building", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/building-15.svg?sanitize=true"}, - {"key": "building", "value": "hotel", "description": "🄿 Hotel Building", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/building-15.svg?sanitize=true"}, - {"key": "building", "value": "house", "description": "🄿 House", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/home-15.svg?sanitize=true"}, - {"key": "building", "value": "houseboat", "description": "🄿 Houseboat", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/home-15.svg?sanitize=true"}, - {"key": "building", "value": "hut", "description": "🄿 Hut", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/home-15.svg?sanitize=true"}, - {"key": "building", "value": "industrial", "description": "🄿 Industrial Building", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/industry-15.svg?sanitize=true"}, - {"key": "building", "value": "kindergarten", "description": "🄿 Preschool/Kindergarten Building", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/building-15.svg?sanitize=true"}, - {"key": "building", "value": "mosque", "description": "🄿 Mosque Building", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/place-of-worship-15.svg?sanitize=true"}, - {"key": "building", "value": "pavilion", "description": "🄿 Pavilion Building", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/building-15.svg?sanitize=true"}, - {"key": "building", "value": "public", "description": "🄿 Public Building", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/building-15.svg?sanitize=true"}, - {"key": "building", "value": "residential", "description": "🄿 Residential Building", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/residential-community-15.svg?sanitize=true"}, - {"key": "building", "value": "retail", "description": "🄿 Retail Building", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/commercial-15.svg?sanitize=true"}, - {"key": "building", "value": "roof", "description": "🄿 Roof", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shelter-15.svg?sanitize=true"}, - {"key": "building", "value": "ruins", "description": "🄿 Building Ruins", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/ruins.svg?sanitize=true"}, - {"key": "building", "value": "school", "description": "🄿 School Building", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/building-15.svg?sanitize=true"}, - {"key": "building", "value": "semidetached_house", "description": "🄿 Semi-Detached House", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/home-15.svg?sanitize=true"}, - {"key": "building", "value": "service", "description": "🄿 Service Building", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/home-15.svg?sanitize=true"}, - {"key": "building", "value": "shed", "description": "🄿 Shed", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/home-15.svg?sanitize=true"}, - {"key": "building", "value": "stable", "description": "🄿 Stable", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/horse-riding-15.svg?sanitize=true"}, - {"key": "building", "value": "stadium", "description": "🄿 Stadium Building", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/stadium-15.svg?sanitize=true"}, - {"key": "building", "value": "static_caravan", "description": "🄿 Static Mobile Home", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/home-15.svg?sanitize=true"}, - {"key": "building", "value": "temple", "description": "🄿 Temple Building", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/place-of-worship-15.svg?sanitize=true"}, - {"key": "building", "value": "terrace", "description": "🄿 Row Houses", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/building-15.svg?sanitize=true"}, - {"key": "building", "value": "transportation", "description": "🄿 Transportation Building", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/building-15.svg?sanitize=true"}, - {"key": "building", "value": "university", "description": "🄿 University Building", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/building-15.svg?sanitize=true"}, - {"key": "building", "value": "warehouse", "description": "🄿 Warehouse", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/warehouse-15.svg?sanitize=true"}, - {"key": "club", "description": "🄿 Club, 🄵 Type", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-handshake.svg?sanitize=true"}, - {"key": "club", "value": "sport", "description": "🄿 Sports Club", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/pitch-15.svg?sanitize=true"}, - {"key": "craft", "description": "🄿 Craft, 🄵 Type", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/tools.svg?sanitize=true"}, - {"key": "craft", "value": "jeweler", "description": "🄿 Jeweler (unsearchable)", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/marker-stroked-15.svg?sanitize=true"}, - {"key": "craft", "value": "locksmith", "description": "🄿 Locksmith (unsearchable)", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/marker-stroked-15.svg?sanitize=true"}, - {"key": "craft", "value": "optician", "description": "🄿 Optician (unsearchable)", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/marker-stroked-15.svg?sanitize=true"}, - {"key": "craft", "value": "tailor", "description": "🄿 Tailor (unsearchable)", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/clothing-store-15.svg?sanitize=true"}, - {"key": "craft", "value": "agricultural_engines", "description": "🄿 Argricultural Engines Mechanic", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/tools.svg?sanitize=true"}, - {"key": "craft", "value": "basket_maker", "description": "🄿 Basket Maker", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/art-gallery-15.svg?sanitize=true"}, - {"key": "craft", "value": "beekeeper", "description": "🄿 Beekeeper", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/farm-15.svg?sanitize=true"}, - {"key": "craft", "value": "blacksmith", "description": "🄿 Blacksmith", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/tools.svg?sanitize=true"}, - {"key": "craft", "value": "boatbuilder", "description": "🄿 Boat Builder", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/tools.svg?sanitize=true"}, - {"key": "craft", "value": "bookbinder", "description": "🄿 Bookbinder", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/library-15.svg?sanitize=true"}, - {"key": "craft", "value": "brewery", "description": "🄿 Brewery", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/storage_tank.svg?sanitize=true"}, - {"key": "craft", "value": "carpenter", "description": "🄿 Carpenter", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/tools.svg?sanitize=true"}, - {"key": "craft", "value": "carpet_layer", "description": "🄿 Carpet Layer", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/tools.svg?sanitize=true"}, - {"key": "craft", "value": "caterer", "description": "🄿 Caterer", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/restaurant-15.svg?sanitize=true"}, - {"key": "craft", "value": "chimney_sweeper", "description": "🄿 Chimney Sweeper", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/chimney.svg?sanitize=true"}, - {"key": "craft", "value": "clockmaker", "description": "🄿 Clockmaker", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/clock.svg?sanitize=true"}, - {"key": "craft", "value": "confectionery", "description": "🄿 Candy Maker", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/confectionery-15.svg?sanitize=true"}, - {"key": "craft", "value": "distillery", "description": "🄿 Distillery", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/storage_tank.svg?sanitize=true"}, - {"key": "craft", "value": "dressmaker", "description": "🄿 Dressmaker", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/clothing-store-15.svg?sanitize=true"}, - {"key": "craft", "value": "electrician", "description": "🄿 Electrician", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/power.svg?sanitize=true"}, - {"key": "craft", "value": "electronics_repair", "description": "🄿 Electronics Repair Shop", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/tools.svg?sanitize=true"}, - {"key": "craft", "value": "floorer", "description": "🄿 Floorer", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/tools.svg?sanitize=true"}, - {"key": "craft", "value": "gardener", "description": "🄿 Gardener", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/garden-centre-15.svg?sanitize=true"}, - {"key": "craft", "value": "glaziery", "description": "🄿 Glaziery", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/window.svg?sanitize=true"}, - {"key": "craft", "value": "handicraft", "description": "🄿 Handicraft", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/art-gallery-15.svg?sanitize=true"}, - {"key": "craft", "value": "hvac", "description": "🄿 HVAC", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/tools.svg?sanitize=true"}, - {"key": "craft", "value": "insulation", "description": "🄿 Insulator", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/tools.svg?sanitize=true"}, - {"key": "craft", "value": "joiner", "description": "🄿 Joiner", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/tools.svg?sanitize=true"}, - {"key": "craft", "value": "key_cutter", "description": "🄿 Key Cutter", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-key.svg?sanitize=true"}, - {"key": "craft", "value": "metal_construction", "description": "🄿 Metal Construction", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/tools.svg?sanitize=true"}, - {"key": "craft", "value": "painter", "description": "🄿 Painter", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-paint-roller.svg?sanitize=true"}, - {"key": "craft", "value": "parquet_layer", "description": "🄿 Parquet Layer", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/tools.svg?sanitize=true"}, - {"key": "craft", "value": "photographer", "description": "🄿 Photographer", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/attraction-15.svg?sanitize=true"}, - {"key": "craft", "value": "photographic_laboratory", "description": "🄿 Photographic Laboratory", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-film.svg?sanitize=true"}, - {"key": "craft", "value": "plasterer", "description": "🄿 Plasterer", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/tools.svg?sanitize=true"}, - {"key": "craft", "value": "plumber", "description": "🄿 Plumber", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/plumber.svg?sanitize=true"}, - {"key": "craft", "value": "pottery", "description": "🄿 Pottery", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/art-gallery-15.svg?sanitize=true"}, - {"key": "craft", "value": "rigger", "description": "🄿 Rigger", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/tools.svg?sanitize=true"}, - {"key": "craft", "value": "roofer", "description": "🄿 Roofer", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/tools.svg?sanitize=true"}, - {"key": "craft", "value": "saddler", "description": "🄿 Saddler", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/tools.svg?sanitize=true"}, - {"key": "craft", "value": "sailmaker", "description": "🄿 Sailmaker", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/tools.svg?sanitize=true"}, - {"key": "craft", "value": "sawmill", "description": "🄿 Sawmill", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/logging-15.svg?sanitize=true"}, - {"key": "craft", "value": "scaffolder", "description": "🄿 Scaffolder", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/tools.svg?sanitize=true"}, - {"key": "craft", "value": "sculptor", "description": "🄿 Sculptor", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/art-gallery-15.svg?sanitize=true"}, - {"key": "craft", "value": "shoemaker", "description": "🄿 Shoemaker", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shoe-15.svg?sanitize=true"}, - {"key": "craft", "value": "signmaker", "description": "🄿 Signmaker", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/tools.svg?sanitize=true"}, - {"key": "craft", "value": "stonemason", "description": "🄿 Stonemason", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/tools.svg?sanitize=true"}, - {"key": "craft", "value": "tiler", "description": "🄿 Tiler", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/tools.svg?sanitize=true"}, - {"key": "craft", "value": "tinsmith", "description": "🄿 Tinsmith", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/tools.svg?sanitize=true"}, - {"key": "craft", "value": "upholsterer", "description": "🄿 Upholsterer", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/tools.svg?sanitize=true"}, - {"key": "craft", "value": "watchmaker", "description": "🄿 Watchmaker", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/watch-15.svg?sanitize=true"}, - {"key": "craft", "value": "window_construction", "description": "🄿 Window Construction", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/window.svg?sanitize=true"}, - {"key": "craft", "value": "winery", "description": "🄿 Winery", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/alcohol-shop-15.svg?sanitize=true"}, + {"key": "building", "value": "entrance", "description": "🄿 Entrance/Exit (unsearchable), 🄳 ➜ entrance=*", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/entrance-alt1-15.svg"}, + {"key": "building", "value": "train_station", "description": "🄿 Train Station Building (unsearchable)", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/building-15.svg"}, + {"key": "building", "value": "apartments", "description": "🄿 Apartment Building", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/building-15.svg"}, + {"key": "building", "value": "barn", "description": "🄿 Barn", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/farm-15.svg"}, + {"key": "building", "value": "boathouse", "description": "🄿 Boathouse", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/harbor-15.svg"}, + {"key": "building", "value": "bungalow", "description": "🄿 Bungalow", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/home-15.svg"}, + {"key": "building", "value": "cabin", "description": "🄿 Cabin", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/home-15.svg"}, + {"key": "building", "value": "carport", "description": "🄿 Carport", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-warehouse.svg"}, + {"key": "building", "value": "cathedral", "description": "🄿 Cathedral Building", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/place-of-worship-15.svg"}, + {"key": "building", "value": "chapel", "description": "🄿 Chapel Building", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/place-of-worship-15.svg"}, + {"key": "building", "value": "church", "description": "🄿 Church Building", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/place-of-worship-15.svg"}, + {"key": "building", "value": "civic", "description": "🄿 Civic Building", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/building-15.svg"}, + {"key": "building", "value": "college", "description": "🄿 College Building", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/building-15.svg"}, + {"key": "building", "value": "commercial", "description": "🄿 Commercial Building", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/suitcase-15.svg"}, + {"key": "building", "value": "construction", "description": "🄿 Building Under Construction", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/building-15.svg"}, + {"key": "building", "value": "detached", "description": "🄿 Detached House", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/home-15.svg"}, + {"key": "building", "value": "dormitory", "description": "🄿 Dormitory", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/building-15.svg"}, + {"key": "building", "value": "farm_auxiliary", "description": "🄿 Farm Building", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/farm-15.svg"}, + {"key": "building", "value": "farm", "description": "🄿 Farm House", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/farm-15.svg"}, + {"key": "building", "value": "garage", "description": "🄿 Garage", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-warehouse.svg"}, + {"key": "building", "value": "garages", "description": "🄿 Garages", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-warehouse.svg"}, + {"key": "building", "value": "grandstand", "description": "🄿 Grandstand", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/building-15.svg"}, + {"key": "building", "value": "greenhouse", "description": "🄿 Greenhouse", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/garden-centre-15.svg"}, + {"key": "building", "value": "hangar", "description": "🄿 Hangar Building", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-warehouse.svg"}, + {"key": "building", "value": "hospital", "description": "🄿 Hospital Building", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/building-15.svg"}, + {"key": "building", "value": "hotel", "description": "🄿 Hotel Building", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/building-15.svg"}, + {"key": "building", "value": "house", "description": "🄿 House", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/home-15.svg"}, + {"key": "building", "value": "houseboat", "description": "🄿 Houseboat", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/home-15.svg"}, + {"key": "building", "value": "hut", "description": "🄿 Hut", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/home-15.svg"}, + {"key": "building", "value": "industrial", "description": "🄿 Industrial Building", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/industry-15.svg"}, + {"key": "building", "value": "kindergarten", "description": "🄿 Preschool/Kindergarten Building", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/building-15.svg"}, + {"key": "building", "value": "mosque", "description": "🄿 Mosque Building", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/place-of-worship-15.svg"}, + {"key": "building", "value": "pavilion", "description": "🄿 Pavilion Building", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/building-15.svg"}, + {"key": "building", "value": "public", "description": "🄿 Public Building", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/building-15.svg"}, + {"key": "building", "value": "residential", "description": "🄿 Residential Building", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/residential-community-15.svg"}, + {"key": "building", "value": "retail", "description": "🄿 Retail Building", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/commercial-15.svg"}, + {"key": "building", "value": "roof", "description": "🄿 Roof", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shelter-15.svg"}, + {"key": "building", "value": "ruins", "description": "🄿 Building Ruins", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/ruins.svg"}, + {"key": "building", "value": "school", "description": "🄿 School Building", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/building-15.svg"}, + {"key": "building", "value": "semidetached_house", "description": "🄿 Semi-Detached House", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/home-15.svg"}, + {"key": "building", "value": "service", "description": "🄿 Service Building", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/home-15.svg"}, + {"key": "building", "value": "shed", "description": "🄿 Shed", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/home-15.svg"}, + {"key": "building", "value": "stable", "description": "🄿 Stable", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/horse-riding-15.svg"}, + {"key": "building", "value": "stadium", "description": "🄿 Stadium Building", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/stadium-15.svg"}, + {"key": "building", "value": "static_caravan", "description": "🄿 Static Mobile Home", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/home-15.svg"}, + {"key": "building", "value": "temple", "description": "🄿 Temple Building", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/place-of-worship-15.svg"}, + {"key": "building", "value": "terrace", "description": "🄿 Row Houses", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/building-15.svg"}, + {"key": "building", "value": "transportation", "description": "🄿 Transportation Building", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/building-15.svg"}, + {"key": "building", "value": "university", "description": "🄿 University Building", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/building-15.svg"}, + {"key": "building", "value": "warehouse", "description": "🄿 Warehouse", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/warehouse-15.svg"}, + {"key": "club", "description": "🄿 Club, 🄵 Type", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-handshake.svg"}, + {"key": "club", "value": "sport", "description": "🄿 Sports Club", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/pitch-15.svg"}, + {"key": "craft", "description": "🄿 Craft, 🄵 Type", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/tools.svg"}, + {"key": "craft", "value": "jeweler", "description": "🄿 Jeweler (unsearchable)", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/marker-stroked-15.svg"}, + {"key": "craft", "value": "locksmith", "description": "🄿 Locksmith (unsearchable)", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/marker-stroked-15.svg"}, + {"key": "craft", "value": "optician", "description": "🄿 Optician (unsearchable)", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/marker-stroked-15.svg"}, + {"key": "craft", "value": "tailor", "description": "🄿 Tailor (unsearchable)", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/clothing-store-15.svg"}, + {"key": "craft", "value": "agricultural_engines", "description": "🄿 Argricultural Engines Mechanic", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/tools.svg"}, + {"key": "craft", "value": "basket_maker", "description": "🄿 Basket Maker", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/art-gallery-15.svg"}, + {"key": "craft", "value": "beekeeper", "description": "🄿 Beekeeper", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/farm-15.svg"}, + {"key": "craft", "value": "blacksmith", "description": "🄿 Blacksmith", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/tools.svg"}, + {"key": "craft", "value": "boatbuilder", "description": "🄿 Boat Builder", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/tools.svg"}, + {"key": "craft", "value": "bookbinder", "description": "🄿 Bookbinder", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/library-15.svg"}, + {"key": "craft", "value": "brewery", "description": "🄿 Brewery", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/storage_tank.svg"}, + {"key": "craft", "value": "carpenter", "description": "🄿 Carpenter", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/tools.svg"}, + {"key": "craft", "value": "carpet_layer", "description": "🄿 Carpet Layer", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/tools.svg"}, + {"key": "craft", "value": "caterer", "description": "🄿 Caterer", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/restaurant-15.svg"}, + {"key": "craft", "value": "chimney_sweeper", "description": "🄿 Chimney Sweeper", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/chimney.svg"}, + {"key": "craft", "value": "clockmaker", "description": "🄿 Clockmaker", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/clock.svg"}, + {"key": "craft", "value": "confectionery", "description": "🄿 Candy Maker", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/confectionery-15.svg"}, + {"key": "craft", "value": "distillery", "description": "🄿 Distillery", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/storage_tank.svg"}, + {"key": "craft", "value": "dressmaker", "description": "🄿 Dressmaker", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/clothing-store-15.svg"}, + {"key": "craft", "value": "electrician", "description": "🄿 Electrician", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/power.svg"}, + {"key": "craft", "value": "electronics_repair", "description": "🄿 Electronics Repair Shop", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/tools.svg"}, + {"key": "craft", "value": "floorer", "description": "🄿 Floorer", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/tools.svg"}, + {"key": "craft", "value": "gardener", "description": "🄿 Gardener", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/garden-centre-15.svg"}, + {"key": "craft", "value": "glaziery", "description": "🄿 Glaziery", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/window.svg"}, + {"key": "craft", "value": "handicraft", "description": "🄿 Handicraft", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/art-gallery-15.svg"}, + {"key": "craft", "value": "hvac", "description": "🄿 HVAC", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/tools.svg"}, + {"key": "craft", "value": "insulation", "description": "🄿 Insulator", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/tools.svg"}, + {"key": "craft", "value": "joiner", "description": "🄿 Joiner", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/tools.svg"}, + {"key": "craft", "value": "key_cutter", "description": "🄿 Key Cutter", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-key.svg"}, + {"key": "craft", "value": "metal_construction", "description": "🄿 Metal Construction", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/tools.svg"}, + {"key": "craft", "value": "painter", "description": "🄿 Painter", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-paint-roller.svg"}, + {"key": "craft", "value": "parquet_layer", "description": "🄿 Parquet Layer", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/tools.svg"}, + {"key": "craft", "value": "photographer", "description": "🄿 Photographer", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/attraction-15.svg"}, + {"key": "craft", "value": "photographic_laboratory", "description": "🄿 Photographic Laboratory", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-film.svg"}, + {"key": "craft", "value": "plasterer", "description": "🄿 Plasterer", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/tools.svg"}, + {"key": "craft", "value": "plumber", "description": "🄿 Plumber", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/plumber.svg"}, + {"key": "craft", "value": "pottery", "description": "🄿 Pottery", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/art-gallery-15.svg"}, + {"key": "craft", "value": "rigger", "description": "🄿 Rigger", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/tools.svg"}, + {"key": "craft", "value": "roofer", "description": "🄿 Roofer", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/tools.svg"}, + {"key": "craft", "value": "saddler", "description": "🄿 Saddler", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/tools.svg"}, + {"key": "craft", "value": "sailmaker", "description": "🄿 Sailmaker", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/tools.svg"}, + {"key": "craft", "value": "sawmill", "description": "🄿 Sawmill", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/logging-15.svg"}, + {"key": "craft", "value": "scaffolder", "description": "🄿 Scaffolder", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/tools.svg"}, + {"key": "craft", "value": "sculptor", "description": "🄿 Sculptor", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/art-gallery-15.svg"}, + {"key": "craft", "value": "shoemaker", "description": "🄿 Shoemaker", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shoe-15.svg"}, + {"key": "craft", "value": "signmaker", "description": "🄿 Signmaker", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/tools.svg"}, + {"key": "craft", "value": "stonemason", "description": "🄿 Stonemason", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/tools.svg"}, + {"key": "craft", "value": "tiler", "description": "🄿 Tiler", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/tools.svg"}, + {"key": "craft", "value": "tinsmith", "description": "🄿 Tinsmith", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/tools.svg"}, + {"key": "craft", "value": "upholsterer", "description": "🄿 Upholsterer", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/tools.svg"}, + {"key": "craft", "value": "watchmaker", "description": "🄿 Watchmaker", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/watch-15.svg"}, + {"key": "craft", "value": "window_construction", "description": "🄿 Window Construction", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/window.svg"}, + {"key": "craft", "value": "winery", "description": "🄿 Winery", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/alcohol-shop-15.svg"}, {"key": "emergency", "value": "designated", "description": "🄿 Emergency Access Designated (unsearchable)", "object_types": ["way"]}, {"key": "emergency", "value": "destination", "description": "🄿 Emergency Access Destination (unsearchable)", "object_types": ["way"]}, {"key": "emergency", "value": "no", "description": "🄿 Emergency Access No (unsearchable)", "object_types": ["way"]}, {"key": "emergency", "value": "official", "description": "🄿 Emergency Access Official (unsearchable)", "object_types": ["way"]}, {"key": "emergency", "value": "private", "description": "🄿 Emergency Access Private (unsearchable)", "object_types": ["way"]}, {"key": "emergency", "value": "yes", "description": "🄿 Emergency Access Yes (unsearchable)", "object_types": ["way"]}, - {"key": "emergency", "value": "ambulance_station", "description": "🄿 Ambulance Station", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-ambulance.svg?sanitize=true"}, - {"key": "emergency", "value": "defibrillator", "description": "🄿 Defibrillator", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/defibrillator-15.svg?sanitize=true"}, - {"key": "emergency", "value": "fire_alarm_box", "description": "🄿 Fire Alarm Call Box", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-bell.svg?sanitize=true"}, - {"key": "emergency", "value": "fire_extinguisher", "description": "🄿 Fire Extinguisher", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-fire-extinguisher.svg?sanitize=true"}, - {"key": "emergency", "value": "fire_hose", "description": "🄿 Fire Hose", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-fire-extinguisher.svg?sanitize=true"}, - {"key": "emergency", "value": "fire_hydrant", "description": "🄿 Fire Hydrant", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/fire_hydrant.svg?sanitize=true"}, - {"key": "emergency", "value": "first_aid_kit", "description": "🄿 First Aid Kit", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-medkit.svg?sanitize=true"}, - {"key": "emergency", "value": "life_ring", "description": "🄿 Life Ring", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-life-ring.svg?sanitize=true"}, - {"key": "emergency", "value": "lifeguard", "description": "🄿 Lifeguard", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-life-ring.svg?sanitize=true"}, - {"key": "emergency", "value": "phone", "description": "🄿 Emergency Phone", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/emergency-phone-15.svg?sanitize=true"}, - {"key": "emergency", "value": "siren", "description": "🄿 Siren", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-volume-up.svg?sanitize=true"}, - {"key": "emergency", "value": "water_tank", "description": "🄿 Emergency Water Tank", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/water-15.svg?sanitize=true"}, - {"key": "entrance", "description": "🄿 Entrance/Exit, 🄵 Type", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/entrance-alt1-15.svg?sanitize=true"}, - {"key": "ford", "value": "yes", "description": "🄿 Ford", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/pedestrian.svg?sanitize=true"}, - {"key": "natural", "value": "sand", "description": "🄿 Sand Trap, 🄿 Sand", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/golf-15.svg?sanitize=true"}, - {"key": "golf", "value": "cartpath", "description": "🄿 Golf Cartpath", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/golf_cart.svg?sanitize=true"}, - {"key": "landuse", "value": "grass", "description": "🄿 Driving Range, 🄿 Fairway, 🄿 Rough, 🄿 Tee Box, 🄿 Grass", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/golf-15.svg?sanitize=true"}, - {"key": "sport", "value": "golf", "description": "🄿 Putting Green", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/golf-15.svg?sanitize=true"}, - {"key": "golf", "value": "hole", "description": "🄿 Golf Hole", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/golf-15.svg?sanitize=true"}, - {"key": "natural", "value": "water", "description": "🄿 Lateral Water Hazard, 🄿 Water Hazard, 🄿 Water", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/golf-15.svg?sanitize=true"}, - {"key": "golf", "value": "path", "description": "🄿 Golf Walking Path", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/golf-15.svg?sanitize=true"}, - {"key": "healthcare", "description": "🄿 Healthcare Facility, 🄵 Type", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/hospital-15.svg?sanitize=true"}, - {"key": "healthcare", "value": "alternative", "description": "🄿 Alternative Medicine", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/hospital-15.svg?sanitize=true"}, - {"key": "healthcare:speciality", "value": "chiropractic", "description": "🄿 Chiropractor", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/hospital-15.svg?sanitize=true"}, - {"key": "healthcare", "value": "audiologist", "description": "🄿 Audiologist", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/hospital-15.svg?sanitize=true"}, - {"key": "healthcare", "value": "birthing_center", "description": "🄿 Birthing Center", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-baby.svg?sanitize=true"}, - {"key": "healthcare", "value": "blood_donation", "description": "🄿 Blood Donor Center", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/blood-bank-15.svg?sanitize=true"}, - {"key": "healthcare", "value": "counselling", "description": "🄿 Counselling Center", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-comments.svg?sanitize=true"}, - {"key": "healthcare", "value": "hospice", "description": "🄿 Hospice", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/hospital-15.svg?sanitize=true"}, - {"key": "healthcare", "value": "laboratory", "description": "🄿 Medical Laboratory", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-vial.svg?sanitize=true"}, - {"key": "healthcare", "value": "midwife", "description": "🄿 Midwife", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-baby.svg?sanitize=true"}, - {"key": "healthcare", "value": "occupational_therapist", "description": "🄿 Occupational Therapist", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/hospital-15.svg?sanitize=true"}, - {"key": "healthcare", "value": "optometrist", "description": "🄿 Optometrist", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-eye.svg?sanitize=true"}, - {"key": "healthcare", "value": "physiotherapist", "description": "🄿 Physiotherapist", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/physiotherapist.svg?sanitize=true"}, - {"key": "healthcare", "value": "podiatrist", "description": "🄿 Podiatrist", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/hospital-15.svg?sanitize=true"}, - {"key": "healthcare", "value": "psychotherapist", "description": "🄿 Psychotherapist", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/hospital-15.svg?sanitize=true"}, - {"key": "healthcare", "value": "rehabilitation", "description": "🄿 Rehabilitation Facility", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/hospital-15.svg?sanitize=true"}, - {"key": "healthcare", "value": "speech_therapist", "description": "🄿 Speech Therapist", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-comment.svg?sanitize=true"}, - {"key": "highway", "value": "bus_stop", "description": "🄿 Bus Stop (unsearchable)", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/bus-15.svg?sanitize=true"}, + {"key": "emergency", "value": "ambulance_station", "description": "🄿 Ambulance Station", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-ambulance.svg"}, + {"key": "emergency", "value": "defibrillator", "description": "🄿 Defibrillator", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/defibrillator-15.svg"}, + {"key": "emergency", "value": "fire_alarm_box", "description": "🄿 Fire Alarm Call Box", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-bell.svg"}, + {"key": "emergency", "value": "fire_extinguisher", "description": "🄿 Fire Extinguisher", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-fire-extinguisher.svg"}, + {"key": "emergency", "value": "fire_hose", "description": "🄿 Fire Hose", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-fire-extinguisher.svg"}, + {"key": "emergency", "value": "fire_hydrant", "description": "🄿 Fire Hydrant", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/fire_hydrant.svg"}, + {"key": "emergency", "value": "first_aid_kit", "description": "🄿 First Aid Kit", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-medkit.svg"}, + {"key": "emergency", "value": "life_ring", "description": "🄿 Life Ring", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-life-ring.svg"}, + {"key": "emergency", "value": "lifeguard", "description": "🄿 Lifeguard", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-life-ring.svg"}, + {"key": "emergency", "value": "phone", "description": "🄿 Emergency Phone", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/emergency-phone-15.svg"}, + {"key": "emergency", "value": "siren", "description": "🄿 Siren", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-volume-up.svg"}, + {"key": "emergency", "value": "water_tank", "description": "🄿 Emergency Water Tank", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/water-15.svg"}, + {"key": "entrance", "description": "🄿 Entrance/Exit, 🄵 Type", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/entrance-alt1-15.svg"}, + {"key": "ford", "value": "yes", "description": "🄿 Ford", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/pedestrian.svg"}, + {"key": "natural", "value": "sand", "description": "🄿 Sand Trap, 🄿 Sand", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/golf-15.svg"}, + {"key": "golf", "value": "cartpath", "description": "🄿 Golf Cartpath", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/golf_cart.svg"}, + {"key": "landuse", "value": "grass", "description": "🄿 Driving Range, 🄿 Fairway, 🄿 Rough, 🄿 Tee Box, 🄿 Grass", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/golf-15.svg"}, + {"key": "sport", "value": "golf", "description": "🄿 Putting Green", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/golf-15.svg"}, + {"key": "golf", "value": "hole", "description": "🄿 Golf Hole", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/golf-15.svg"}, + {"key": "natural", "value": "water", "description": "🄿 Lateral Water Hazard, 🄿 Water Hazard, 🄿 Water", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/golf-15.svg"}, + {"key": "golf", "value": "path", "description": "🄿 Golf Walking Path", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/golf-15.svg"}, + {"key": "healthcare", "description": "🄿 Healthcare Facility, 🄵 Type", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/hospital-15.svg"}, + {"key": "healthcare", "value": "alternative", "description": "🄿 Alternative Medicine", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/hospital-15.svg"}, + {"key": "healthcare:speciality", "value": "chiropractic", "description": "🄿 Chiropractor", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/hospital-15.svg"}, + {"key": "healthcare", "value": "audiologist", "description": "🄿 Audiologist", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/hospital-15.svg"}, + {"key": "healthcare", "value": "birthing_center", "description": "🄿 Birthing Center", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-baby.svg"}, + {"key": "healthcare", "value": "blood_donation", "description": "🄿 Blood Donor Center", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/blood-bank-15.svg"}, + {"key": "healthcare", "value": "counselling", "description": "🄿 Counselling Center", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-comments.svg"}, + {"key": "healthcare", "value": "hospice", "description": "🄿 Hospice", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/hospital-15.svg"}, + {"key": "healthcare", "value": "laboratory", "description": "🄿 Medical Laboratory", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-vial.svg"}, + {"key": "healthcare", "value": "midwife", "description": "🄿 Midwife", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-baby.svg"}, + {"key": "healthcare", "value": "occupational_therapist", "description": "🄿 Occupational Therapist", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/hospital-15.svg"}, + {"key": "healthcare", "value": "optometrist", "description": "🄿 Optometrist", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-eye.svg"}, + {"key": "healthcare", "value": "physiotherapist", "description": "🄿 Physiotherapist", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/physiotherapist.svg"}, + {"key": "healthcare", "value": "podiatrist", "description": "🄿 Podiatrist", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/hospital-15.svg"}, + {"key": "healthcare", "value": "psychotherapist", "description": "🄿 Psychotherapist", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/hospital-15.svg"}, + {"key": "healthcare", "value": "rehabilitation", "description": "🄿 Rehabilitation Facility", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/hospital-15.svg"}, + {"key": "healthcare", "value": "speech_therapist", "description": "🄿 Speech Therapist", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-comment.svg"}, + {"key": "highway", "value": "bus_stop", "description": "🄿 Bus Stop (unsearchable)", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/bus-15.svg"}, {"key": "highway", "value": "crossing", "description": "🄿 Crossing (unsearchable)", "object_types": ["node"]}, - {"key": "highway", "value": "bridleway", "description": "🄿 Bridle Path", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/horse-riding-15.svg?sanitize=true"}, - {"key": "highway", "value": "bus_guideway", "description": "🄿 Bus Guideway", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/bus-15.svg?sanitize=true"}, - {"key": "access", "value": "no", "description": "🄿 Road Closed, 🄵 Allowed Access", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/barrier-15.svg?sanitize=true"}, - {"key": "highway", "value": "corridor", "description": "🄿 Indoor Corridor", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/pedestrian.svg?sanitize=true"}, - {"key": "traffic_calming", "value": "table", "description": "🄿 Marked Crosswalk (Raised) (unsearchable), 🄿 Marked Crosswalk (Raised), 🄿 Unmarked Crossing (Raised), 🄿 Speed Table", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/pedestrian.svg?sanitize=true"}, - {"key": "crossing", "value": "zebra", "description": "🄿 Marked Crosswalk (unsearchable), 🄳 ➜ crossing=marked", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/pedestrian.svg?sanitize=true"}, - {"key": "crossing", "value": "marked", "description": "🄿 Marked Crosswalk, 🄿 Marked Cycle Crossing", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/pedestrian.svg?sanitize=true"}, - {"key": "crossing", "value": "unmarked", "description": "🄿 Unmarked Crossing, 🄿 Unmarked Cycle Crossing", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/pedestrian.svg?sanitize=true"}, - {"key": "highway", "value": "cycleway", "description": "🄿 Cycle Path", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/bicycle-15.svg?sanitize=true"}, - {"key": "cycleway", "value": "crossing", "description": "🄿 Cycle Crossing (unsearchable)", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/bicycle-15.svg?sanitize=true"}, - {"key": "foot", "value": "designated", "description": "🄿 Cycle & Foot Path, 🄵 Allowed Access", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/bicycle-15.svg?sanitize=true"}, - {"key": "highway", "value": "elevator", "description": "🄿 Elevator", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/elevator.svg?sanitize=true"}, - {"key": "highway", "value": "emergency_bay", "description": "🄿 Emergency Stopping Place", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/car-15.svg?sanitize=true"}, - {"key": "highway", "value": "footway", "description": "🄿 Foot Path", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/pedestrian.svg?sanitize=true"}, + {"key": "highway", "value": "bridleway", "description": "🄿 Bridle Path", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/horse-riding-15.svg"}, + {"key": "highway", "value": "bus_guideway", "description": "🄿 Bus Guideway", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/bus-15.svg"}, + {"key": "access", "value": "no", "description": "🄿 Road Closed, 🄵 Allowed Access", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/barrier-15.svg"}, + {"key": "highway", "value": "corridor", "description": "🄿 Indoor Corridor", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/pedestrian.svg"}, + {"key": "traffic_calming", "value": "table", "description": "🄿 Marked Crosswalk (Raised) (unsearchable), 🄿 Marked Crosswalk (Raised), 🄿 Unmarked Crossing (Raised), 🄿 Speed Table", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/pedestrian.svg"}, + {"key": "crossing", "value": "zebra", "description": "🄿 Marked Crosswalk (unsearchable), 🄳 ➜ crossing=marked", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/pedestrian.svg"}, + {"key": "crossing", "value": "marked", "description": "🄿 Marked Crosswalk, 🄿 Marked Cycle Crossing", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/pedestrian.svg"}, + {"key": "crossing", "value": "unmarked", "description": "🄿 Unmarked Crossing, 🄿 Unmarked Cycle Crossing", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/pedestrian.svg"}, + {"key": "highway", "value": "cycleway", "description": "🄿 Cycle Path", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/bicycle-15.svg"}, + {"key": "cycleway", "value": "crossing", "description": "🄿 Cycle Crossing (unsearchable)", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/bicycle-15.svg"}, + {"key": "foot", "value": "designated", "description": "🄿 Cycle & Foot Path, 🄵 Allowed Access", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/bicycle-15.svg"}, + {"key": "highway", "value": "elevator", "description": "🄿 Elevator", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/elevator.svg"}, + {"key": "highway", "value": "emergency_bay", "description": "🄿 Emergency Stopping Place", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/car-15.svg"}, + {"key": "highway", "value": "footway", "description": "🄿 Foot Path", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/pedestrian.svg"}, {"key": "footway", "value": "crossing", "description": "🄿 Pedestrian Crossing (unsearchable)", "object_types": ["way"]}, - {"key": "conveying", "description": "🄿 Moving Walkway, 🄿 Escalator", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/pedestrian.svg?sanitize=true"}, - {"key": "footway", "value": "sidewalk", "description": "🄿 Sidewalk", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/pedestrian.svg?sanitize=true"}, - {"key": "highway", "value": "give_way", "description": "🄿 Yield Sign", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/yield.svg?sanitize=true"}, - {"key": "highway", "value": "living_street", "description": "🄿 Living Street", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/highway-living-street.svg?sanitize=true"}, - {"key": "highway", "value": "milestone", "description": "🄿 Highway Milestone", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/milestone.svg?sanitize=true"}, - {"key": "highway", "value": "mini_roundabout", "description": "🄿 Mini-Roundabout", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/circle-stroked-15.svg?sanitize=true"}, - {"key": "highway", "value": "motorway_junction", "description": "🄿 Motorway Junction / Exit", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/junction.svg?sanitize=true"}, - {"key": "highway", "value": "motorway_link", "description": "🄿 Motorway Link", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/highway-motorway-link.svg?sanitize=true"}, - {"key": "highway", "value": "motorway", "description": "🄿 Motorway", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/highway-motorway.svg?sanitize=true"}, - {"key": "highway", "value": "passing_place", "description": "🄿 Passing Place", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/circle-stroked-15.svg?sanitize=true"}, - {"key": "highway", "value": "path", "description": "🄿 Path", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/other-line.svg?sanitize=true"}, - {"key": "highway", "value": "pedestrian", "description": "🄿 Pedestrian Street", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/pedestrian.svg?sanitize=true"}, - {"key": "highway", "value": "primary_link", "description": "🄿 Primary Link", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/highway-primary-link.svg?sanitize=true"}, - {"key": "highway", "value": "primary", "description": "🄿 Primary Road", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/highway-primary.svg?sanitize=true"}, - {"key": "highway", "value": "raceway", "description": "🄿 Racetrack (Motorsport)", "object_types": ["node", "way", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-flag-checkered.svg?sanitize=true"}, - {"key": "highway", "value": "residential", "description": "🄿 Residential Road", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/highway-residential.svg?sanitize=true"}, - {"key": "highway", "value": "rest_area", "description": "🄿 Rest Area", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/car-15.svg?sanitize=true"}, - {"key": "highway", "value": "road", "description": "🄿 Unknown Road", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/other-line.svg?sanitize=true"}, - {"key": "highway", "value": "secondary_link", "description": "🄿 Secondary Link", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/highway-secondary-link.svg?sanitize=true"}, - {"key": "highway", "value": "secondary", "description": "🄿 Secondary Road", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/highway-secondary.svg?sanitize=true"}, - {"key": "highway", "value": "service", "description": "🄿 Service Road", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/highway-service.svg?sanitize=true"}, - {"key": "service", "value": "alley", "description": "🄿 Alley", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/highway-service.svg?sanitize=true"}, - {"key": "service", "value": "drive-through", "description": "🄿 Drive-Through", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/highway-service.svg?sanitize=true"}, - {"key": "service", "value": "driveway", "description": "🄿 Driveway", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/highway-service.svg?sanitize=true"}, - {"key": "service", "value": "emergency_access", "description": "🄿 Emergency Access", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/highway-service.svg?sanitize=true"}, - {"key": "service", "value": "parking_aisle", "description": "🄿 Parking Aisle", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/highway-service.svg?sanitize=true"}, - {"key": "highway", "value": "services", "description": "🄿 Service Area", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/car-15.svg?sanitize=true"}, - {"key": "highway", "value": "speed_camera", "description": "🄿 Speed Camera", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/security_camera.svg?sanitize=true"}, - {"key": "highway", "value": "steps", "description": "🄿 Steps", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/highway-steps.svg?sanitize=true"}, - {"key": "highway", "value": "stop", "description": "🄿 Stop Sign", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/stop.svg?sanitize=true"}, - {"key": "highway", "value": "street_lamp", "description": "🄿 Street Lamp", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/bulb.svg?sanitize=true"}, - {"key": "highway", "value": "tertiary_link", "description": "🄿 Tertiary Link", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/highway-tertiary-link.svg?sanitize=true"}, - {"key": "highway", "value": "tertiary", "description": "🄿 Tertiary Road", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/highway-tertiary.svg?sanitize=true"}, - {"key": "highway", "value": "track", "description": "🄿 Unmaintained Track Road", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-truck-monster.svg?sanitize=true"}, - {"key": "highway", "value": "traffic_mirror", "description": "🄿 Traffic Mirror", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/circle-stroked-15.svg?sanitize=true"}, - {"key": "highway", "value": "traffic_signals", "description": "🄿 Traffic Signals", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/traffic_signals.svg?sanitize=true"}, - {"key": "highway", "value": "trailhead", "description": "🄿 Trailhead", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-hiking.svg?sanitize=true"}, - {"key": "highway", "value": "trunk_link", "description": "🄿 Trunk Link", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/highway-trunk-link.svg?sanitize=true"}, - {"key": "highway", "value": "trunk", "description": "🄿 Trunk Road", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/highway-trunk.svg?sanitize=true"}, - {"key": "highway", "value": "turning_circle", "description": "🄿 Turning Circle", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/circle-stroked-15.svg?sanitize=true"}, - {"key": "highway", "value": "turning_loop", "description": "🄿 Turning Loop (Island)", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/circle-15.svg?sanitize=true"}, - {"key": "highway", "value": "unclassified", "description": "🄿 Minor/Unclassified Road", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/highway-unclassified.svg?sanitize=true"}, - {"key": "historic", "description": "🄿 Historic Site, 🄵 Type", "object_types": ["node", "way", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/ruins.svg?sanitize=true"}, - {"key": "historic", "value": "archaeological_site", "description": "🄿 Archaeological Site", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/ruins.svg?sanitize=true"}, - {"key": "historic", "value": "boundary_stone", "description": "🄿 Boundary Stone", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/milestone.svg?sanitize=true"}, - {"key": "historic", "value": "castle", "description": "🄿 Castle", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/castle-15.svg?sanitize=true"}, - {"key": "castle_type", "value": "fortress", "description": "🄿 Historic Fortress", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/castle-15.svg?sanitize=true"}, - {"key": "castle_type", "value": "palace", "description": "🄿 Palace", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-crown.svg?sanitize=true"}, - {"key": "castle_type", "value": "stately", "description": "🄿 Château", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-crown.svg?sanitize=true"}, - {"key": "historic", "value": "city_gate", "description": "🄿 City Gate", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/castle-15.svg?sanitize=true"}, - {"key": "historic", "value": "fort", "description": "🄿 Historic Fort", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/castle-15.svg?sanitize=true"}, - {"key": "historic", "value": "manor", "description": "🄿 Manor House", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/castle-15.svg?sanitize=true"}, - {"key": "historic", "value": "memorial", "description": "🄿 Memorial", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/monument-15.svg?sanitize=true"}, - {"key": "memorial", "value": "plaque", "description": "🄿 Commemorative Plaque", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/monument-15.svg?sanitize=true"}, - {"key": "historic", "value": "monument", "description": "🄿 Monument", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/monument-15.svg?sanitize=true"}, - {"key": "historic", "value": "ruins", "description": "🄿 Ruins", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/ruins.svg?sanitize=true"}, - {"key": "historic", "value": "tomb", "description": "🄿 Tomb", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/cemetery-15.svg?sanitize=true"}, - {"key": "historic", "value": "wayside_cross", "description": "🄿 Wayside Cross", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/religious-christian-15.svg?sanitize=true"}, - {"key": "historic", "value": "wayside_shrine", "description": "🄿 Wayside Shrine", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/landmark-15.svg?sanitize=true"}, - {"key": "historic", "value": "wreck", "description": "🄿 Shipwreck", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/ruins.svg?sanitize=true"}, + {"key": "conveying", "description": "🄿 Moving Walkway, 🄿 Escalator", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/pedestrian.svg"}, + {"key": "footway", "value": "sidewalk", "description": "🄿 Sidewalk", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/pedestrian.svg"}, + {"key": "highway", "value": "give_way", "description": "🄿 Yield Sign", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/yield.svg"}, + {"key": "highway", "value": "living_street", "description": "🄿 Living Street", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/highway-living-street.svg"}, + {"key": "highway", "value": "milestone", "description": "🄿 Highway Milestone", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/milestone.svg"}, + {"key": "highway", "value": "mini_roundabout", "description": "🄿 Mini-Roundabout", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/circle-stroked-15.svg"}, + {"key": "highway", "value": "motorway_junction", "description": "🄿 Motorway Junction / Exit", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/junction.svg"}, + {"key": "highway", "value": "motorway_link", "description": "🄿 Motorway Link", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/highway-motorway-link.svg"}, + {"key": "highway", "value": "motorway", "description": "🄿 Motorway", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/highway-motorway.svg"}, + {"key": "highway", "value": "passing_place", "description": "🄿 Passing Place", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/circle-stroked-15.svg"}, + {"key": "highway", "value": "path", "description": "🄿 Path", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/other-line.svg"}, + {"key": "highway", "value": "pedestrian", "description": "🄿 Pedestrian Street", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/pedestrian.svg"}, + {"key": "highway", "value": "primary_link", "description": "🄿 Primary Link", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/highway-primary-link.svg"}, + {"key": "highway", "value": "primary", "description": "🄿 Primary Road", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/highway-primary.svg"}, + {"key": "highway", "value": "raceway", "description": "🄿 Racetrack (Motorsport)", "object_types": ["node", "way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-flag-checkered.svg"}, + {"key": "highway", "value": "residential", "description": "🄿 Residential Road", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/highway-residential.svg"}, + {"key": "highway", "value": "rest_area", "description": "🄿 Rest Area", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/car-15.svg"}, + {"key": "highway", "value": "road", "description": "🄿 Unknown Road", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/other-line.svg"}, + {"key": "highway", "value": "secondary_link", "description": "🄿 Secondary Link", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/highway-secondary-link.svg"}, + {"key": "highway", "value": "secondary", "description": "🄿 Secondary Road", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/highway-secondary.svg"}, + {"key": "highway", "value": "service", "description": "🄿 Service Road", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/highway-service.svg"}, + {"key": "service", "value": "alley", "description": "🄿 Alley", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/highway-service.svg"}, + {"key": "service", "value": "drive-through", "description": "🄿 Drive-Through", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/highway-service.svg"}, + {"key": "service", "value": "driveway", "description": "🄿 Driveway", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/highway-service.svg"}, + {"key": "service", "value": "emergency_access", "description": "🄿 Emergency Access", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/highway-service.svg"}, + {"key": "service", "value": "parking_aisle", "description": "🄿 Parking Aisle", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/highway-service.svg"}, + {"key": "highway", "value": "services", "description": "🄿 Service Area", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/car-15.svg"}, + {"key": "highway", "value": "speed_camera", "description": "🄿 Speed Camera", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/security_camera.svg"}, + {"key": "highway", "value": "steps", "description": "🄿 Steps", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/highway-steps.svg"}, + {"key": "highway", "value": "stop", "description": "🄿 Stop Sign", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/stop.svg"}, + {"key": "highway", "value": "street_lamp", "description": "🄿 Street Lamp", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/bulb.svg"}, + {"key": "highway", "value": "tertiary_link", "description": "🄿 Tertiary Link", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/highway-tertiary-link.svg"}, + {"key": "highway", "value": "tertiary", "description": "🄿 Tertiary Road", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/highway-tertiary.svg"}, + {"key": "highway", "value": "track", "description": "🄿 Unmaintained Track Road", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-truck-monster.svg"}, + {"key": "highway", "value": "traffic_mirror", "description": "🄿 Traffic Mirror", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/circle-stroked-15.svg"}, + {"key": "highway", "value": "traffic_signals", "description": "🄿 Traffic Signals", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/traffic_signals.svg"}, + {"key": "highway", "value": "trailhead", "description": "🄿 Trailhead", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-hiking.svg"}, + {"key": "highway", "value": "trunk_link", "description": "🄿 Trunk Link", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/highway-trunk-link.svg"}, + {"key": "highway", "value": "trunk", "description": "🄿 Trunk Road", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/highway-trunk.svg"}, + {"key": "highway", "value": "turning_circle", "description": "🄿 Turning Circle", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/circle-stroked-15.svg"}, + {"key": "highway", "value": "turning_loop", "description": "🄿 Turning Loop (Island)", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/circle-15.svg"}, + {"key": "highway", "value": "unclassified", "description": "🄿 Minor/Unclassified Road", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/highway-unclassified.svg"}, + {"key": "historic", "description": "🄿 Historic Site, 🄵 Type", "object_types": ["node", "way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/ruins.svg"}, + {"key": "historic", "value": "archaeological_site", "description": "🄿 Archaeological Site", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/ruins.svg"}, + {"key": "historic", "value": "boundary_stone", "description": "🄿 Boundary Stone", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/milestone.svg"}, + {"key": "historic", "value": "castle", "description": "🄿 Castle", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/castle-15.svg"}, + {"key": "castle_type", "value": "fortress", "description": "🄿 Historic Fortress", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/castle-15.svg"}, + {"key": "castle_type", "value": "palace", "description": "🄿 Palace", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-crown.svg"}, + {"key": "castle_type", "value": "stately", "description": "🄿 Château", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-crown.svg"}, + {"key": "historic", "value": "city_gate", "description": "🄿 City Gate", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/castle-15.svg"}, + {"key": "historic", "value": "fort", "description": "🄿 Historic Fort", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/castle-15.svg"}, + {"key": "historic", "value": "manor", "description": "🄿 Manor House", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/castle-15.svg"}, + {"key": "historic", "value": "memorial", "description": "🄿 Memorial", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/monument-15.svg"}, + {"key": "memorial", "value": "plaque", "description": "🄿 Commemorative Plaque", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/monument-15.svg"}, + {"key": "historic", "value": "monument", "description": "🄿 Monument", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/monument-15.svg"}, + {"key": "historic", "value": "ruins", "description": "🄿 Ruins", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/ruins.svg"}, + {"key": "historic", "value": "tomb", "description": "🄿 Tomb", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/cemetery-15.svg"}, + {"key": "historic", "value": "wayside_cross", "description": "🄿 Wayside Cross", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/religious-christian-15.svg"}, + {"key": "historic", "value": "wayside_shrine", "description": "🄿 Wayside Shrine", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/landmark-15.svg"}, + {"key": "historic", "value": "wreck", "description": "🄿 Shipwreck", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/ruins.svg"}, {"key": "indoor", "value": "corridor", "description": "🄿 Indoor Corridor (unsearchable), 🄿 Indoor Corridor", "object_types": ["way"]}, {"key": "indoor", "value": "area", "description": "🄿 Indoor Area", "object_types": ["area"]}, - {"key": "indoor", "value": "door", "description": "🄿 Indoor Door", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/entrance-alt1-15.svg?sanitize=true"}, + {"key": "indoor", "value": "door", "description": "🄿 Indoor Door", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/entrance-alt1-15.svg"}, {"key": "indoor", "value": "room", "description": "🄿 Room", "object_types": ["area"]}, - {"key": "indoor", "value": "wall", "description": "🄿 Indoor Wall", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/wall.svg?sanitize=true"}, - {"key": "internet_access", "value": "wlan", "description": "🄿 Wi-Fi Hotspot, 🄵 Internet Access", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-wifi.svg?sanitize=true"}, - {"key": "junction", "value": "yes", "description": "🄿 Junction", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/junction.svg?sanitize=true"}, + {"key": "indoor", "value": "wall", "description": "🄿 Indoor Wall", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/wall.svg"}, + {"key": "internet_access", "value": "wlan", "description": "🄿 Wi-Fi Hotspot, 🄵 Internet Access", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-wifi.svg"}, + {"key": "junction", "value": "yes", "description": "🄿 Junction", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/junction.svg"}, {"key": "junction", "value": "circular", "description": "🄿 Traffic Circle (unsearchable), 🄵 Junction", "object_types": ["node", "way"]}, {"key": "junction", "value": "jughandle", "description": "🄿 Jughandle (unsearchable), 🄵 Junction", "object_types": ["way"]}, {"key": "junction", "value": "roundabout", "description": "🄿 Roundabout (unsearchable), 🄵 Junction", "object_types": ["node", "way"]}, - {"key": "landuse", "value": "basin", "description": "🄿 Basin (unsearchable), 🄳 ➜ natural=water + water=basin", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/water-15.svg?sanitize=true"}, - {"key": "landuse", "value": "farm", "description": "🄿 Farmland (unsearchable), 🄳 ➜ landuse=farmland", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/farm-15.svg?sanitize=true"}, - {"key": "landuse", "value": "pond", "description": "🄿 Pond (unsearchable), 🄳 ➜ natural=water + water=pond", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/water-15.svg?sanitize=true"}, - {"key": "landuse", "value": "reservoir", "description": "🄿 Reservoir (unsearchable), 🄳 ➜ natural=water + water=reservoir", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/water-15.svg?sanitize=true"}, - {"key": "landuse", "value": "allotments", "description": "🄿 Community Garden", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/garden-centre-15.svg?sanitize=true"}, - {"key": "landuse", "value": "aquaculture", "description": "🄿 Aquaculture", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/aquarium-15.svg?sanitize=true"}, + {"key": "landuse", "value": "basin", "description": "🄿 Basin (unsearchable), 🄳 ➜ natural=water + water=basin", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/water-15.svg"}, + {"key": "landuse", "value": "farm", "description": "🄿 Farmland (unsearchable), 🄳 ➜ landuse=farmland", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/farm-15.svg"}, + {"key": "landuse", "value": "pond", "description": "🄿 Pond (unsearchable), 🄳 ➜ natural=water + water=pond", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/water-15.svg"}, + {"key": "landuse", "value": "reservoir", "description": "🄿 Reservoir (unsearchable), 🄳 ➜ natural=water + water=reservoir", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/water-15.svg"}, + {"key": "landuse", "value": "allotments", "description": "🄿 Community Garden", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/garden-centre-15.svg"}, + {"key": "landuse", "value": "aquaculture", "description": "🄿 Aquaculture", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/aquarium-15.svg"}, {"key": "landuse", "value": "brownfield", "description": "🄿 Brownfield", "object_types": ["area"]}, - {"key": "landuse", "value": "cemetery", "description": "🄿 Cemetery", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/cemetery-15.svg?sanitize=true"}, - {"key": "landuse", "value": "churchyard", "description": "🄿 Churchyard", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/religious-christian-15.svg?sanitize=true"}, - {"key": "landuse", "value": "commercial", "description": "🄿 Commercial Area", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/suitcase-15.svg?sanitize=true"}, - {"key": "landuse", "value": "construction", "description": "🄿 Construction", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/tools.svg?sanitize=true"}, - {"key": "landuse", "value": "farmland", "description": "🄿 Farmland", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-tractor.svg?sanitize=true"}, - {"key": "landuse", "value": "farmyard", "description": "🄿 Farmyard", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/farm-15.svg?sanitize=true"}, - {"key": "landuse", "value": "forest", "description": "🄿 Managed Forest", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/park-alt1-15.svg?sanitize=true"}, - {"key": "landuse", "value": "garages", "description": "🄿 Garage Landuse", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-warehouse.svg?sanitize=true"}, + {"key": "landuse", "value": "cemetery", "description": "🄿 Cemetery", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/cemetery-15.svg"}, + {"key": "landuse", "value": "churchyard", "description": "🄿 Churchyard", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/religious-christian-15.svg"}, + {"key": "landuse", "value": "commercial", "description": "🄿 Commercial Area", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/suitcase-15.svg"}, + {"key": "landuse", "value": "construction", "description": "🄿 Construction", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/tools.svg"}, + {"key": "landuse", "value": "farmland", "description": "🄿 Farmland", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-tractor.svg"}, + {"key": "landuse", "value": "farmyard", "description": "🄿 Farmyard", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/farm-15.svg"}, + {"key": "landuse", "value": "forest", "description": "🄿 Managed Forest", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/park-alt1-15.svg"}, + {"key": "landuse", "value": "garages", "description": "🄿 Garage Landuse", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-warehouse.svg"}, {"key": "landuse", "value": "greenfield", "description": "🄿 Greenfield", "object_types": ["area"]}, - {"key": "landuse", "value": "greenhouse_horticulture", "description": "🄿 Greenhouse Horticulture", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/garden-15.svg?sanitize=true"}, - {"key": "landuse", "value": "harbour", "description": "🄿 Harbor", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/harbor-15.svg?sanitize=true"}, - {"key": "landuse", "value": "industrial", "description": "🄿 Industrial Area", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/industry-15.svg?sanitize=true"}, - {"key": "industrial", "value": "scrap_yard", "description": "🄿 Scrap Yard", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/car-15.svg?sanitize=true"}, - {"key": "industrial", "value": "slaughterhouse", "description": "🄿 Slaughterhouse", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/slaughterhouse-15.svg?sanitize=true"}, + {"key": "landuse", "value": "greenhouse_horticulture", "description": "🄿 Greenhouse Horticulture", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/garden-15.svg"}, + {"key": "landuse", "value": "harbour", "description": "🄿 Harbor", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/harbor-15.svg"}, + {"key": "landuse", "value": "industrial", "description": "🄿 Industrial Area", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/industry-15.svg"}, + {"key": "industrial", "value": "scrap_yard", "description": "🄿 Scrap Yard", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/car-15.svg"}, + {"key": "industrial", "value": "slaughterhouse", "description": "🄿 Slaughterhouse", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/slaughterhouse-15.svg"}, {"key": "landuse", "value": "landfill", "description": "🄿 Landfill", "object_types": ["area"]}, - {"key": "landuse", "value": "meadow", "description": "🄿 Meadow", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/garden-15.svg?sanitize=true"}, - {"key": "landuse", "value": "military", "description": "🄿 Military Area", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/military.svg?sanitize=true"}, - {"key": "military", "value": "airfield", "description": "🄿 Military Airfield", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/the-noun-project/2009265.svg?sanitize=true"}, - {"key": "military", "value": "barracks", "description": "🄿 Barracks", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/military.svg?sanitize=true"}, - {"key": "military", "value": "danger_area", "description": "🄿 Danger Area", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/danger-15.svg?sanitize=true"}, - {"key": "military", "value": "naval_base", "description": "🄿 Naval Base", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/military.svg?sanitize=true"}, - {"key": "military", "value": "obstacle_course", "description": "🄿 Obstacle Course", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/military.svg?sanitize=true"}, - {"key": "military", "value": "range", "description": "🄿 Military Range", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/military.svg?sanitize=true"}, - {"key": "military", "value": "training_area", "description": "🄿 Training Area", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/military.svg?sanitize=true"}, - {"key": "landuse", "value": "orchard", "description": "🄿 Orchard", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/park-15.svg?sanitize=true"}, - {"key": "landuse", "value": "plant_nursery", "description": "🄿 Plant Nursery", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/garden-15.svg?sanitize=true"}, + {"key": "landuse", "value": "meadow", "description": "🄿 Meadow", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/garden-15.svg"}, + {"key": "landuse", "value": "military", "description": "🄿 Military Area", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/military.svg"}, + {"key": "military", "value": "airfield", "description": "🄿 Military Airfield", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/the-noun-project/2009265.svg"}, + {"key": "military", "value": "barracks", "description": "🄿 Barracks", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/military.svg"}, + {"key": "military", "value": "danger_area", "description": "🄿 Danger Area", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/danger-15.svg"}, + {"key": "military", "value": "naval_base", "description": "🄿 Naval Base", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/military.svg"}, + {"key": "military", "value": "obstacle_course", "description": "🄿 Obstacle Course", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/military.svg"}, + {"key": "military", "value": "range", "description": "🄿 Military Range", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/military.svg"}, + {"key": "military", "value": "training_area", "description": "🄿 Training Area", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/military.svg"}, + {"key": "landuse", "value": "orchard", "description": "🄿 Orchard", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/park-15.svg"}, + {"key": "landuse", "value": "plant_nursery", "description": "🄿 Plant Nursery", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/garden-15.svg"}, {"key": "landuse", "value": "quarry", "description": "🄿 Quarry", "object_types": ["area"]}, - {"key": "landuse", "value": "railway", "description": "🄿 Railway Corridor", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/rail-15.svg?sanitize=true"}, - {"key": "landuse", "value": "recreation_ground", "description": "🄿 Recreation Ground", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/pitch-15.svg?sanitize=true"}, - {"key": "landuse", "value": "religious", "description": "🄿 Religious Area", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/place-of-worship-15.svg?sanitize=true"}, - {"key": "landuse", "value": "residential", "description": "🄿 Residential Area", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/building-15.svg?sanitize=true"}, - {"key": "residential", "value": "apartments", "description": "🄿 Apartment Complex", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/building-15.svg?sanitize=true"}, - {"key": "landuse", "value": "retail", "description": "🄿 Retail Area", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/commercial-15.svg?sanitize=true"}, + {"key": "landuse", "value": "railway", "description": "🄿 Railway Corridor", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/rail-15.svg"}, + {"key": "landuse", "value": "recreation_ground", "description": "🄿 Recreation Ground", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/pitch-15.svg"}, + {"key": "landuse", "value": "religious", "description": "🄿 Religious Area", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/place-of-worship-15.svg"}, + {"key": "landuse", "value": "residential", "description": "🄿 Residential Area", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/building-15.svg"}, + {"key": "residential", "value": "apartments", "description": "🄿 Apartment Complex", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/building-15.svg"}, + {"key": "landuse", "value": "retail", "description": "🄿 Retail Area", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/commercial-15.svg"}, {"key": "landuse", "value": "vineyard", "description": "🄿 Vineyard", "object_types": ["area"]}, - {"key": "landuse", "value": "winter_sports", "description": "🄿 Winter Sports Area", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-skiing.svg?sanitize=true"}, - {"key": "leisure", "value": "adult_gaming_centre", "description": "🄿 Adult Gaming Center", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/casino.svg?sanitize=true"}, - {"key": "leisure", "value": "amusement_arcade", "description": "🄿 Amusement Arcade", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/gaming-15.svg?sanitize=true"}, - {"key": "leisure", "value": "bandstand", "description": "🄿 Bandstand", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/music-15.svg?sanitize=true"}, - {"key": "leisure", "value": "beach_resort", "description": "🄿 Beach Resort", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/beach-15.svg?sanitize=true"}, - {"key": "leisure", "value": "bird_hide", "description": "🄿 Bird Hide", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/binoculars.svg?sanitize=true"}, + {"key": "landuse", "value": "winter_sports", "description": "🄿 Winter Sports Area", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-skiing.svg"}, + {"key": "leisure", "value": "adult_gaming_centre", "description": "🄿 Adult Gaming Center", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/casino.svg"}, + {"key": "leisure", "value": "amusement_arcade", "description": "🄿 Amusement Arcade", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/gaming-15.svg"}, + {"key": "leisure", "value": "bandstand", "description": "🄿 Bandstand", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/music-15.svg"}, + {"key": "leisure", "value": "beach_resort", "description": "🄿 Beach Resort", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/beach-15.svg"}, + {"key": "leisure", "value": "bird_hide", "description": "🄿 Bird Hide", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/binoculars.svg"}, {"key": "leisure", "value": "bleachers", "description": "🄿 Bleachers", "object_types": ["node", "area"]}, - {"key": "leisure", "value": "bowling_alley", "description": "🄿 Bowling Alley", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/bowling.svg?sanitize=true"}, - {"key": "leisure", "value": "common", "description": "🄿 Common", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/pedestrian.svg?sanitize=true"}, - {"key": "leisure", "value": "dance", "description": "🄿 Dance Hall", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/music-15.svg?sanitize=true"}, - {"key": "dance:teaching", "value": "yes", "description": "🄿 Dance School", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/music-15.svg?sanitize=true"}, - {"key": "leisure", "value": "disc_golf_course", "description": "🄿 Disc Golf Course", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/disc_golf_basket.svg?sanitize=true"}, - {"key": "leisure", "value": "dog_park", "description": "🄿 Dog Park", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/dog-park-15.svg?sanitize=true"}, - {"key": "leisure", "value": "escape_game", "description": "🄿 Escape Room", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-puzzle-piece.svg?sanitize=true"}, - {"key": "leisure", "value": "firepit", "description": "🄿 Firepit", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/fire-station-15.svg?sanitize=true"}, - {"key": "leisure", "value": "fishing", "description": "🄿 Fishing Spot", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-fish.svg?sanitize=true"}, - {"key": "leisure", "value": "fitness_centre", "description": "🄿 Gym / Fitness Center", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-dumbbell.svg?sanitize=true"}, - {"key": "sport", "value": "yoga", "description": "🄿 Yoga Studio", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/pitch-15.svg?sanitize=true"}, - {"key": "leisure", "value": "fitness_station", "description": "🄿 Outdoor Fitness Station", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/pitch-15.svg?sanitize=true"}, - {"key": "fitness_station", "value": "balance_beam", "description": "🄿 Exercise Balance Beam", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/pitch-15.svg?sanitize=true"}, - {"key": "fitness_station", "value": "box", "description": "🄿 Exercise Box", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/pitch-15.svg?sanitize=true"}, - {"key": "fitness_station", "value": "horizontal_bar", "description": "🄿 Exercise Horizontal Bar", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/pitch-15.svg?sanitize=true"}, - {"key": "fitness_station", "value": "horizontal_ladder", "description": "🄿 Exercise Monkey Bars", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/pitch-15.svg?sanitize=true"}, - {"key": "fitness_station", "value": "hyperextension", "description": "🄿 Hyperextension Station", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/pitch-15.svg?sanitize=true"}, - {"key": "fitness_station", "value": "parallel_bars", "description": "🄿 Parallel Bars", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/pitch-15.svg?sanitize=true"}, - {"key": "fitness_station", "value": "push-up", "description": "🄿 Push-Up Station", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/pitch-15.svg?sanitize=true"}, - {"key": "fitness_station", "value": "rings", "description": "🄿 Exercise Rings", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/pitch-15.svg?sanitize=true"}, - {"key": "fitness_station", "value": "sign", "description": "🄿 Exercise Instruction Sign", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/pitch-15.svg?sanitize=true"}, - {"key": "fitness_station", "value": "sit-up", "description": "🄿 Sit-Up Station", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/pitch-15.svg?sanitize=true"}, - {"key": "fitness_station", "value": "stairs", "description": "🄿 Exercise Stairs", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/pitch-15.svg?sanitize=true"}, - {"key": "leisure", "value": "garden", "description": "🄿 Garden", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/garden-15.svg?sanitize=true"}, - {"key": "leisure", "value": "golf_course", "description": "🄿 Golf Course", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/golf-15.svg?sanitize=true"}, - {"key": "leisure", "value": "hackerspace", "description": "🄿 Hackerspace", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-code.svg?sanitize=true"}, - {"key": "leisure", "value": "horse_riding", "description": "🄿 Horseback Riding Facility, 🄵 Horseback Riding", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/horse-riding-15.svg?sanitize=true"}, - {"key": "leisure", "value": "ice_rink", "description": "🄿 Ice Rink", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-skating.svg?sanitize=true"}, - {"key": "leisure", "value": "marina", "description": "🄿 Marina", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/the-noun-project/2009223.svg?sanitize=true"}, - {"key": "leisure", "value": "miniature_golf", "description": "🄿 Miniature Golf", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/golf-15.svg?sanitize=true"}, - {"key": "leisure", "value": "nature_reserve", "description": "🄿 Nature Reserve", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/park-15.svg?sanitize=true"}, - {"key": "leisure", "value": "outdoor_seating", "description": "🄿 Outdoor Seating Area", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/picnic-site-15.svg?sanitize=true"}, - {"key": "leisure", "value": "park", "description": "🄿 Park", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/park-15.svg?sanitize=true"}, - {"key": "leisure", "value": "picnic_table", "description": "🄿 Picnic Table", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/picnic-site-15.svg?sanitize=true"}, - {"key": "sport", "value": "chess", "description": "🄿 Chess Table", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-chess-pawn.svg?sanitize=true"}, - {"key": "leisure", "value": "pitch", "description": "🄿 Sport Pitch", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/pitch-15.svg?sanitize=true"}, - {"key": "sport", "value": "american_football", "description": "🄿 American Football Field", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/american-football-15.svg?sanitize=true"}, - {"key": "sport", "value": "australian_football", "description": "🄿 Australian Football Field", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/american-football-15.svg?sanitize=true"}, - {"key": "sport", "value": "badminton", "description": "🄿 Badminton Court", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/tennis-15.svg?sanitize=true"}, - {"key": "sport", "value": "baseball", "description": "🄿 Baseball Field", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/baseball-15.svg?sanitize=true"}, - {"key": "sport", "value": "basketball", "description": "🄿 Basketball Court", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/basketball-15.svg?sanitize=true"}, - {"key": "sport", "value": "beachvolleyball", "description": "🄿 Beach Volleyball Court", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/volleyball-15.svg?sanitize=true"}, - {"key": "sport", "value": "boules", "description": "🄿 Boules/Bocce Court", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/pitch-15.svg?sanitize=true"}, - {"key": "sport", "value": "bowls", "description": "🄿 Bowling Green", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/pitch-15.svg?sanitize=true"}, - {"key": "sport", "value": "cricket", "description": "🄿 Cricket Field", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/cricket-15.svg?sanitize=true"}, - {"key": "sport", "value": "equestrian", "description": "🄿 Riding Arena, 🄵 Dressage Riding", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/horse-riding-15.svg?sanitize=true"}, - {"key": "sport", "value": "field_hockey", "description": "🄿 Field Hockey Pitch", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/pitch-15.svg?sanitize=true"}, - {"key": "sport", "value": "horseshoes", "description": "🄿 Horseshoes Pit", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/horseshoes.svg?sanitize=true"}, - {"key": "sport", "value": "netball", "description": "🄿 Netball Court", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/volleyball-15.svg?sanitize=true"}, - {"key": "sport", "value": "rugby_league", "description": "🄿 Rugby League Field", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/american-football-15.svg?sanitize=true"}, - {"key": "sport", "value": "rugby_union", "description": "🄿 Rugby Union Field", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/american-football-15.svg?sanitize=true"}, - {"key": "sport", "value": "shuffleboard", "description": "🄿 Shuffleboard Court", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/shuffleboard.svg?sanitize=true"}, - {"key": "sport", "value": "skateboard", "description": "🄿 Skate Park", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/skateboard-15.svg?sanitize=true"}, - {"key": "sport", "value": "soccer", "description": "🄿 Soccer Field", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/soccer-15.svg?sanitize=true"}, - {"key": "sport", "value": "softball", "description": "🄿 Softball Field", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/baseball-15.svg?sanitize=true"}, - {"key": "sport", "value": "table_tennis", "description": "🄿 Ping Pong Table", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/tennis-15.svg?sanitize=true"}, - {"key": "sport", "value": "tennis", "description": "🄿 Tennis Court", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/tennis-15.svg?sanitize=true"}, - {"key": "sport", "value": "volleyball", "description": "🄿 Volleyball Court", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/volleyball-15.svg?sanitize=true"}, - {"key": "leisure", "value": "playground", "description": "🄿 Playground", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/playground-15.svg?sanitize=true"}, - {"key": "leisure", "value": "resort", "description": "🄿 Resort", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/lodging-15.svg?sanitize=true"}, - {"key": "leisure", "value": "sauna", "description": "🄿 Sauna", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-thermometer-three-quarters.svg?sanitize=true"}, - {"key": "leisure", "value": "slipway", "description": "🄿 Slipway", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/slipway-15.svg?sanitize=true"}, - {"key": "leisure", "value": "sports_centre", "description": "🄿 Sports Center / Complex", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/pitch-15.svg?sanitize=true"}, - {"key": "sport", "value": "climbing", "description": "🄿 Climbing Gym", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/abseiling.svg?sanitize=true"}, - {"key": "sport", "value": "swimming", "description": "🄿 Swimming Pool Facility", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-swimmer.svg?sanitize=true"}, - {"key": "leisure", "value": "stadium", "description": "🄿 Stadium", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/pitch-15.svg?sanitize=true"}, - {"key": "leisure", "value": "swimming_area", "description": "🄿 Natural Swimming Area", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-swimmer.svg?sanitize=true"}, - {"key": "leisure", "value": "swimming_pool", "description": "🄿 Swimming Pool", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-swimming-pool.svg?sanitize=true"}, - {"key": "leisure", "value": "track", "description": "🄿 Racetrack (Non-Motorsport)", "object_types": ["node", "way", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/other-line.svg?sanitize=true"}, - {"key": "sport", "value": "cycling", "description": "🄿 Cycling Track", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/bicycle-15.svg?sanitize=true"}, - {"key": "sport", "value": "horse_racing", "description": "🄿 Horse Racing Track", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/horse-riding-15.svg?sanitize=true"}, - {"key": "sport", "value": "running", "description": "🄿 Running Track", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/pitch-15.svg?sanitize=true"}, - {"key": "leisure", "value": "water_park", "description": "🄿 Water Park", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-swimmer.svg?sanitize=true"}, - {"key": "man_made", "value": "adit", "description": "🄿 Adit", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/triangle-15.svg?sanitize=true"}, - {"key": "man_made", "value": "antenna", "description": "🄿 Antenna", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/antenna.svg?sanitize=true"}, - {"key": "man_made", "value": "beacon", "description": "🄿 Beacon", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/communications-tower-15.svg?sanitize=true"}, - {"key": "man_made", "value": "beehive", "description": "🄿 Beehive", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-archive.svg?sanitize=true"}, + {"key": "leisure", "value": "bowling_alley", "description": "🄿 Bowling Alley", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/bowling.svg"}, + {"key": "leisure", "value": "common", "description": "🄿 Common", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/pedestrian.svg"}, + {"key": "leisure", "value": "dance", "description": "🄿 Dance Hall", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/music-15.svg"}, + {"key": "dance:teaching", "value": "yes", "description": "🄿 Dance School", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/music-15.svg"}, + {"key": "leisure", "value": "disc_golf_course", "description": "🄿 Disc Golf Course", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/disc_golf_basket.svg"}, + {"key": "leisure", "value": "dog_park", "description": "🄿 Dog Park", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/dog-park-15.svg"}, + {"key": "leisure", "value": "escape_game", "description": "🄿 Escape Room", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-puzzle-piece.svg"}, + {"key": "leisure", "value": "firepit", "description": "🄿 Firepit", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/fire-station-15.svg"}, + {"key": "leisure", "value": "fishing", "description": "🄿 Fishing Spot", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-fish.svg"}, + {"key": "leisure", "value": "fitness_centre", "description": "🄿 Gym / Fitness Center", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-dumbbell.svg"}, + {"key": "sport", "value": "yoga", "description": "🄿 Yoga Studio", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/pitch-15.svg"}, + {"key": "leisure", "value": "fitness_station", "description": "🄿 Outdoor Fitness Station", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/pitch-15.svg"}, + {"key": "fitness_station", "value": "balance_beam", "description": "🄿 Exercise Balance Beam", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/pitch-15.svg"}, + {"key": "fitness_station", "value": "box", "description": "🄿 Exercise Box", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/pitch-15.svg"}, + {"key": "fitness_station", "value": "horizontal_bar", "description": "🄿 Exercise Horizontal Bar", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/pitch-15.svg"}, + {"key": "fitness_station", "value": "horizontal_ladder", "description": "🄿 Exercise Monkey Bars", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/pitch-15.svg"}, + {"key": "fitness_station", "value": "hyperextension", "description": "🄿 Hyperextension Station", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/pitch-15.svg"}, + {"key": "fitness_station", "value": "parallel_bars", "description": "🄿 Parallel Bars", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/pitch-15.svg"}, + {"key": "fitness_station", "value": "push-up", "description": "🄿 Push-Up Station", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/pitch-15.svg"}, + {"key": "fitness_station", "value": "rings", "description": "🄿 Exercise Rings", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/pitch-15.svg"}, + {"key": "fitness_station", "value": "sign", "description": "🄿 Exercise Instruction Sign", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/pitch-15.svg"}, + {"key": "fitness_station", "value": "sit-up", "description": "🄿 Sit-Up Station", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/pitch-15.svg"}, + {"key": "fitness_station", "value": "stairs", "description": "🄿 Exercise Stairs", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/pitch-15.svg"}, + {"key": "leisure", "value": "garden", "description": "🄿 Garden", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/garden-15.svg"}, + {"key": "leisure", "value": "golf_course", "description": "🄿 Golf Course", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/golf-15.svg"}, + {"key": "leisure", "value": "hackerspace", "description": "🄿 Hackerspace", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-code.svg"}, + {"key": "leisure", "value": "horse_riding", "description": "🄿 Horseback Riding Facility, 🄵 Horseback Riding", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/horse-riding-15.svg"}, + {"key": "leisure", "value": "ice_rink", "description": "🄿 Ice Rink", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-skating.svg"}, + {"key": "leisure", "value": "marina", "description": "🄿 Marina", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/the-noun-project/2009223.svg"}, + {"key": "leisure", "value": "miniature_golf", "description": "🄿 Miniature Golf", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/golf-15.svg"}, + {"key": "leisure", "value": "nature_reserve", "description": "🄿 Nature Reserve", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/park-15.svg"}, + {"key": "leisure", "value": "outdoor_seating", "description": "🄿 Outdoor Seating Area", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/picnic-site-15.svg"}, + {"key": "leisure", "value": "park", "description": "🄿 Park", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/park-15.svg"}, + {"key": "leisure", "value": "picnic_table", "description": "🄿 Picnic Table", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/picnic-site-15.svg"}, + {"key": "sport", "value": "chess", "description": "🄿 Chess Table", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-chess-pawn.svg"}, + {"key": "leisure", "value": "pitch", "description": "🄿 Sport Pitch", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/pitch-15.svg"}, + {"key": "sport", "value": "american_football", "description": "🄿 American Football Field", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/american-football-15.svg"}, + {"key": "sport", "value": "australian_football", "description": "🄿 Australian Football Field", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/american-football-15.svg"}, + {"key": "sport", "value": "badminton", "description": "🄿 Badminton Court", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/tennis-15.svg"}, + {"key": "sport", "value": "baseball", "description": "🄿 Baseball Field", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/baseball-15.svg"}, + {"key": "sport", "value": "basketball", "description": "🄿 Basketball Court", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/basketball-15.svg"}, + {"key": "sport", "value": "beachvolleyball", "description": "🄿 Beach Volleyball Court", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/volleyball-15.svg"}, + {"key": "sport", "value": "boules", "description": "🄿 Boules/Bocce Court", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/pitch-15.svg"}, + {"key": "sport", "value": "bowls", "description": "🄿 Bowling Green", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/pitch-15.svg"}, + {"key": "sport", "value": "cricket", "description": "🄿 Cricket Field", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/cricket-15.svg"}, + {"key": "sport", "value": "equestrian", "description": "🄿 Riding Arena, 🄵 Dressage Riding", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/horse-riding-15.svg"}, + {"key": "sport", "value": "field_hockey", "description": "🄿 Field Hockey Pitch", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/pitch-15.svg"}, + {"key": "sport", "value": "horseshoes", "description": "🄿 Horseshoes Pit", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/horseshoes.svg"}, + {"key": "sport", "value": "netball", "description": "🄿 Netball Court", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/volleyball-15.svg"}, + {"key": "sport", "value": "rugby_league", "description": "🄿 Rugby League Field", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/american-football-15.svg"}, + {"key": "sport", "value": "rugby_union", "description": "🄿 Rugby Union Field", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/american-football-15.svg"}, + {"key": "sport", "value": "shuffleboard", "description": "🄿 Shuffleboard Court", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/shuffleboard.svg"}, + {"key": "sport", "value": "skateboard", "description": "🄿 Skate Park", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/skateboard-15.svg"}, + {"key": "sport", "value": "soccer", "description": "🄿 Soccer Field", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/soccer-15.svg"}, + {"key": "sport", "value": "softball", "description": "🄿 Softball Field", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/baseball-15.svg"}, + {"key": "sport", "value": "table_tennis", "description": "🄿 Ping Pong Table", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/tennis-15.svg"}, + {"key": "sport", "value": "tennis", "description": "🄿 Tennis Court", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/tennis-15.svg"}, + {"key": "sport", "value": "volleyball", "description": "🄿 Volleyball Court", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/volleyball-15.svg"}, + {"key": "leisure", "value": "playground", "description": "🄿 Playground", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/playground-15.svg"}, + {"key": "leisure", "value": "resort", "description": "🄿 Resort", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/lodging-15.svg"}, + {"key": "leisure", "value": "sauna", "description": "🄿 Sauna", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-thermometer-three-quarters.svg"}, + {"key": "leisure", "value": "slipway", "description": "🄿 Slipway", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/slipway-15.svg"}, + {"key": "leisure", "value": "sports_centre", "description": "🄿 Sports Center / Complex", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/pitch-15.svg"}, + {"key": "sport", "value": "climbing", "description": "🄿 Climbing Gym", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/abseiling.svg"}, + {"key": "sport", "value": "swimming", "description": "🄿 Swimming Pool Facility", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-swimmer.svg"}, + {"key": "leisure", "value": "stadium", "description": "🄿 Stadium", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/pitch-15.svg"}, + {"key": "leisure", "value": "swimming_area", "description": "🄿 Natural Swimming Area", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-swimmer.svg"}, + {"key": "leisure", "value": "swimming_pool", "description": "🄿 Swimming Pool", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-swimming-pool.svg"}, + {"key": "leisure", "value": "track", "description": "🄿 Racetrack (Non-Motorsport)", "object_types": ["node", "way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/other-line.svg"}, + {"key": "sport", "value": "cycling", "description": "🄿 Cycling Track", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/bicycle-15.svg"}, + {"key": "sport", "value": "horse_racing", "description": "🄿 Horse Racing Track", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/horse-riding-15.svg"}, + {"key": "sport", "value": "running", "description": "🄿 Running Track", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/pitch-15.svg"}, + {"key": "leisure", "value": "water_park", "description": "🄿 Water Park", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-swimmer.svg"}, + {"key": "man_made", "value": "adit", "description": "🄿 Adit", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/triangle-15.svg"}, + {"key": "man_made", "value": "antenna", "description": "🄿 Antenna", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/antenna.svg"}, + {"key": "man_made", "value": "beacon", "description": "🄿 Beacon", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/communications-tower-15.svg"}, + {"key": "man_made", "value": "beehive", "description": "🄿 Beehive", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-archive.svg"}, {"key": "man_made", "value": "breakwater", "description": "🄿 Breakwater", "object_types": ["way", "area"]}, - {"key": "man_made", "value": "bridge", "description": "🄿 Bridge", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/bridge-15.svg?sanitize=true"}, - {"key": "man_made", "value": "bunker_silo", "description": "🄿 Bunker Silo", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/silo.svg?sanitize=true"}, - {"key": "man_made", "value": "cairn", "description": "🄿 Cairn", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/triangle-15.svg?sanitize=true"}, - {"key": "man_made", "value": "chimney", "description": "🄿 Chimney", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/chimney.svg?sanitize=true"}, - {"key": "man_made", "value": "clearcut", "description": "🄿 Clearcut Forest", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/logging-15.svg?sanitize=true"}, - {"key": "man_made", "value": "crane", "description": "🄿 Crane", "object_types": ["node", "way", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/crane.svg?sanitize=true"}, - {"key": "man_made", "value": "cross", "description": "🄿 Summit Cross", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/religious-christian-15.svg?sanitize=true"}, - {"key": "man_made", "value": "cutline", "description": "🄿 Cut line", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/logging-15.svg?sanitize=true"}, + {"key": "man_made", "value": "bridge", "description": "🄿 Bridge", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/bridge-15.svg"}, + {"key": "man_made", "value": "bunker_silo", "description": "🄿 Bunker Silo", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/silo.svg"}, + {"key": "man_made", "value": "cairn", "description": "🄿 Cairn", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/triangle-15.svg"}, + {"key": "man_made", "value": "chimney", "description": "🄿 Chimney", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/chimney.svg"}, + {"key": "man_made", "value": "clearcut", "description": "🄿 Clearcut Forest", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/logging-15.svg"}, + {"key": "man_made", "value": "crane", "description": "🄿 Crane", "object_types": ["node", "way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/crane.svg"}, + {"key": "man_made", "value": "cross", "description": "🄿 Summit Cross", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/religious-christian-15.svg"}, + {"key": "man_made", "value": "cutline", "description": "🄿 Cut line", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/logging-15.svg"}, {"key": "man_made", "value": "dyke", "description": "🄿 Levee", "object_types": ["way"]}, {"key": "man_made", "value": "embankment", "description": "🄿 Embankment", "object_types": ["way"]}, - {"key": "man_made", "value": "flagpole", "description": "🄿 Flagpole", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/embassy-15.svg?sanitize=true"}, - {"key": "man_made", "value": "gasometer", "description": "🄿 Gasometer", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/storage_tank.svg?sanitize=true"}, + {"key": "man_made", "value": "flagpole", "description": "🄿 Flagpole", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/embassy-15.svg"}, + {"key": "man_made", "value": "gasometer", "description": "🄿 Gasometer", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/storage_tank.svg"}, {"key": "man_made", "value": "groyne", "description": "🄿 Groyne", "object_types": ["way", "area"]}, - {"key": "man_made", "value": "lighthouse", "description": "🄿 Lighthouse", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/lighthouse-15.svg?sanitize=true"}, - {"key": "man_made", "value": "mast", "description": "🄿 Mast", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/communications-tower-15.svg?sanitize=true"}, - {"key": "tower:type", "value": "communication", "description": "🄿 Communication Mast, 🄿 Communication Tower", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/communications-tower-15.svg?sanitize=true"}, - {"key": "communication:mobile_phone", "value": "yes", "description": "🄿 Mobile Phone Mast", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/communications-tower-15.svg?sanitize=true"}, - {"key": "communication:radio", "value": "yes", "description": "🄿 Radio Broadcast Mast", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/communications-tower-15.svg?sanitize=true"}, - {"key": "communication:television", "value": "yes", "description": "🄿 Television Broadcast Mast", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/communications-tower-15.svg?sanitize=true"}, - {"key": "man_made", "value": "mineshaft", "description": "🄿 Mineshaft", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/triangle-15.svg?sanitize=true"}, - {"key": "man_made", "value": "monitoring_station", "description": "🄿 Monitoring Station", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/antenna.svg?sanitize=true"}, + {"key": "man_made", "value": "lighthouse", "description": "🄿 Lighthouse", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/lighthouse-15.svg"}, + {"key": "man_made", "value": "mast", "description": "🄿 Mast", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/communications-tower-15.svg"}, + {"key": "tower:type", "value": "communication", "description": "🄿 Communication Mast, 🄿 Communication Tower", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/communications-tower-15.svg"}, + {"key": "communication:mobile_phone", "value": "yes", "description": "🄿 Mobile Phone Mast", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/communications-tower-15.svg"}, + {"key": "communication:radio", "value": "yes", "description": "🄿 Radio Broadcast Mast", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/communications-tower-15.svg"}, + {"key": "communication:television", "value": "yes", "description": "🄿 Television Broadcast Mast", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/communications-tower-15.svg"}, + {"key": "man_made", "value": "mineshaft", "description": "🄿 Mineshaft", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/triangle-15.svg"}, + {"key": "man_made", "value": "monitoring_station", "description": "🄿 Monitoring Station", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/antenna.svg"}, {"key": "man_made", "value": "observatory", "description": "🄿 Observatory", "object_types": ["node", "area"]}, - {"key": "man_made", "value": "petroleum_well", "description": "🄿 Oil Well", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/storage_tank.svg?sanitize=true"}, - {"key": "man_made", "value": "pier", "description": "🄿 Pier", "object_types": ["way", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/pedestrian.svg?sanitize=true"}, - {"key": "floating", "value": "yes", "description": "🄿 Floating Pier", "object_types": ["way", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/pedestrian.svg?sanitize=true"}, - {"key": "man_made", "value": "pipeline", "description": "🄿 Pipeline", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/pipeline-line.svg?sanitize=true"}, - {"key": "location", "value": "underground", "description": "🄿 Underground Pipeline, 🄿 Underground Power Cable", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/pipeline-line.svg?sanitize=true"}, + {"key": "man_made", "value": "petroleum_well", "description": "🄿 Oil Well", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/storage_tank.svg"}, + {"key": "man_made", "value": "pier", "description": "🄿 Pier", "object_types": ["way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/pedestrian.svg"}, + {"key": "floating", "value": "yes", "description": "🄿 Floating Pier", "object_types": ["way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/pedestrian.svg"}, + {"key": "man_made", "value": "pipeline", "description": "🄿 Pipeline", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/pipeline-line.svg"}, + {"key": "location", "value": "underground", "description": "🄿 Underground Pipeline, 🄿 Underground Power Cable", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/pipeline-line.svg"}, {"key": "pipeline", "value": "valve", "description": "🄿 Pipeline Valve", "object_types": ["node"]}, - {"key": "man_made", "value": "pumping_station", "description": "🄿 Pumping Station", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/water-15.svg?sanitize=true"}, - {"key": "man_made", "value": "silo", "description": "🄿 Silo", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/silo.svg?sanitize=true"}, - {"key": "man_made", "value": "storage_tank", "description": "🄿 Storage Tank", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/storage_tank.svg?sanitize=true"}, - {"key": "content", "value": "water", "description": "🄿 Water Tank", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/storage_tank.svg?sanitize=true"}, - {"key": "man_made", "value": "street_cabinet", "description": "🄿 Street Cabinet", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-door-closed.svg?sanitize=true"}, - {"key": "man_made", "value": "surveillance", "description": "🄿 Surveillance", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/security_camera.svg?sanitize=true"}, - {"key": "surveillance:type", "value": "camera", "description": "🄿 Surveillance Camera, 🄵 Surveillance Type", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/security_camera.svg?sanitize=true"}, - {"key": "man_made", "value": "survey_point", "description": "🄿 Survey Point", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/monument-15.svg?sanitize=true"}, - {"key": "man_made", "value": "torii", "description": "🄿 Torii", "object_types": ["node", "way"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/shinto.svg?sanitize=true"}, - {"key": "man_made", "value": "tower", "description": "🄿 Tower", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/tower.svg?sanitize=true"}, - {"key": "tower:type", "value": "bell_tower", "description": "🄿 Bell Tower", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-bell.svg?sanitize=true"}, - {"key": "tower:type", "value": "defensive", "description": "🄿 Fortified Tower", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/castle-15.svg?sanitize=true"}, - {"key": "tower:type", "value": "minaret", "description": "🄿 Minaret", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/tower.svg?sanitize=true"}, - {"key": "tower:type", "value": "observation", "description": "🄿 Observation Tower", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/tower.svg?sanitize=true"}, - {"key": "man_made", "value": "tunnel", "description": "🄿 Tunnel", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/the-noun-project/2009642.svg?sanitize=true"}, - {"key": "man_made", "value": "wastewater_plant", "description": "🄿 Wastewater Plant", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/water-15.svg?sanitize=true"}, - {"key": "man_made", "value": "water_tower", "description": "🄿 Water Tower", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/water-15.svg?sanitize=true"}, - {"key": "man_made", "value": "water_well", "description": "🄿 Water Well", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/water-15.svg?sanitize=true"}, - {"key": "man_made", "value": "water_works", "description": "🄿 Water Works", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/water-15.svg?sanitize=true"}, - {"key": "man_made", "value": "watermill", "description": "🄿 Watermill", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/watermill-15.svg?sanitize=true"}, - {"key": "man_made", "value": "windmill", "description": "🄿 Windmill", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/windmill-15.svg?sanitize=true"}, - {"key": "man_made", "value": "works", "description": "🄿 Factory", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/industry-15.svg?sanitize=true"}, - {"key": "manhole", "description": "🄿 Manhole, 🄵 Type", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/circle-stroked-15.svg?sanitize=true"}, - {"key": "manhole", "value": "drain", "description": "🄿 Storm Drain", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/water-15.svg?sanitize=true"}, - {"key": "manhole", "value": "telecom", "description": "🄿 Telecom Manhole", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/circle-stroked-15.svg?sanitize=true"}, - {"key": "military", "value": "bunker", "description": "🄿 Military Bunker", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/military.svg?sanitize=true"}, - {"key": "military", "value": "checkpoint", "description": "🄿 Checkpoint", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/barrier-15.svg?sanitize=true"}, - {"key": "military", "value": "nuclear_explosion_site", "description": "🄿 Nuclear Explosion Site", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/danger-15.svg?sanitize=true"}, - {"key": "military", "value": "office", "description": "🄿 Military Office", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/military.svg?sanitize=true"}, - {"key": "military", "value": "trench", "description": "🄿 Military Trench", "object_types": ["node", "way"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/military.svg?sanitize=true"}, + {"key": "man_made", "value": "pumping_station", "description": "🄿 Pumping Station", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/water-15.svg"}, + {"key": "man_made", "value": "silo", "description": "🄿 Silo", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/silo.svg"}, + {"key": "man_made", "value": "storage_tank", "description": "🄿 Storage Tank", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/storage_tank.svg"}, + {"key": "content", "value": "water", "description": "🄿 Water Tank", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/storage_tank.svg"}, + {"key": "man_made", "value": "street_cabinet", "description": "🄿 Street Cabinet", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-door-closed.svg"}, + {"key": "man_made", "value": "surveillance", "description": "🄿 Surveillance", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/security_camera.svg"}, + {"key": "surveillance:type", "value": "camera", "description": "🄿 Surveillance Camera, 🄵 Surveillance Type", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/security_camera.svg"}, + {"key": "man_made", "value": "survey_point", "description": "🄿 Survey Point", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/monument-15.svg"}, + {"key": "man_made", "value": "torii", "description": "🄿 Torii", "object_types": ["node", "way"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/shinto.svg"}, + {"key": "man_made", "value": "tower", "description": "🄿 Tower", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/tower.svg"}, + {"key": "tower:type", "value": "bell_tower", "description": "🄿 Bell Tower", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-bell.svg"}, + {"key": "tower:type", "value": "defensive", "description": "🄿 Fortified Tower", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/castle-15.svg"}, + {"key": "tower:type", "value": "minaret", "description": "🄿 Minaret", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/tower.svg"}, + {"key": "tower:type", "value": "observation", "description": "🄿 Observation Tower", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/tower.svg"}, + {"key": "man_made", "value": "tunnel", "description": "🄿 Tunnel", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/the-noun-project/2009642.svg"}, + {"key": "man_made", "value": "wastewater_plant", "description": "🄿 Wastewater Plant", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/water-15.svg"}, + {"key": "man_made", "value": "water_tower", "description": "🄿 Water Tower", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/water-15.svg"}, + {"key": "man_made", "value": "water_well", "description": "🄿 Water Well", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/water-15.svg"}, + {"key": "man_made", "value": "water_works", "description": "🄿 Water Works", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/water-15.svg"}, + {"key": "man_made", "value": "watermill", "description": "🄿 Watermill", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/watermill-15.svg"}, + {"key": "man_made", "value": "windmill", "description": "🄿 Windmill", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/windmill-15.svg"}, + {"key": "man_made", "value": "works", "description": "🄿 Factory", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/industry-15.svg"}, + {"key": "manhole", "description": "🄿 Manhole, 🄵 Type", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/circle-stroked-15.svg"}, + {"key": "manhole", "value": "drain", "description": "🄿 Storm Drain", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/water-15.svg"}, + {"key": "manhole", "value": "telecom", "description": "🄿 Telecom Manhole", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/circle-stroked-15.svg"}, + {"key": "military", "value": "bunker", "description": "🄿 Military Bunker", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/military.svg"}, + {"key": "military", "value": "checkpoint", "description": "🄿 Checkpoint", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/barrier-15.svg"}, + {"key": "military", "value": "nuclear_explosion_site", "description": "🄿 Nuclear Explosion Site", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/danger-15.svg"}, + {"key": "military", "value": "office", "description": "🄿 Military Office", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/military.svg"}, + {"key": "military", "value": "trench", "description": "🄿 Military Trench", "object_types": ["node", "way"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/military.svg"}, {"key": "natural", "value": "bare_rock", "description": "🄿 Bare Rock", "object_types": ["area"]}, - {"key": "natural", "value": "bay", "description": "🄿 Bay", "object_types": ["node", "way", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/beach.svg?sanitize=true"}, - {"key": "natural", "value": "beach", "description": "🄿 Beach", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/beach.svg?sanitize=true"}, - {"key": "natural", "value": "cape", "description": "🄿 Cape", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/beach.svg?sanitize=true"}, - {"key": "natural", "value": "cave_entrance", "description": "🄿 Cave Entrance", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/triangle-15.svg?sanitize=true"}, - {"key": "natural", "value": "cliff", "description": "🄿 Cliff", "object_types": ["node", "way", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/triangle-15.svg?sanitize=true"}, + {"key": "natural", "value": "bay", "description": "🄿 Bay", "object_types": ["node", "way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/beach.svg"}, + {"key": "natural", "value": "beach", "description": "🄿 Beach", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/beach.svg"}, + {"key": "natural", "value": "cape", "description": "🄿 Cape", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/beach.svg"}, + {"key": "natural", "value": "cave_entrance", "description": "🄿 Cave Entrance", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/triangle-15.svg"}, + {"key": "natural", "value": "cliff", "description": "🄿 Cliff", "object_types": ["node", "way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/triangle-15.svg"}, {"key": "natural", "value": "coastline", "description": "🄿 Coastline", "object_types": ["way"]}, {"key": "natural", "value": "fell", "description": "🄿 Fell", "object_types": ["area"]}, - {"key": "natural", "value": "glacier", "description": "🄿 Glacier", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/snow.svg?sanitize=true"}, + {"key": "natural", "value": "glacier", "description": "🄿 Glacier", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/snow.svg"}, {"key": "natural", "value": "grassland", "description": "🄿 Grassland", "object_types": ["area"]}, {"key": "natural", "value": "heath", "description": "🄿 Heath", "object_types": ["area"]}, {"key": "natural", "value": "mud", "description": "🄿 Mud", "object_types": ["area"]}, - {"key": "natural", "value": "peak", "description": "🄿 Peak", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/mountain-15.svg?sanitize=true"}, - {"key": "natural", "value": "reef", "description": "🄿 Reef", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/beach.svg?sanitize=true"}, + {"key": "natural", "value": "peak", "description": "🄿 Peak", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/mountain-15.svg"}, + {"key": "natural", "value": "reef", "description": "🄿 Reef", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/beach.svg"}, {"key": "natural", "value": "ridge", "description": "🄿 Ridge", "object_types": ["way"]}, - {"key": "natural", "value": "rock", "description": "🄿 Attached Rock / Boulder", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/boulder2.svg?sanitize=true"}, - {"key": "natural", "value": "saddle", "description": "🄿 Saddle", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/triangle-stroked-15.svg?sanitize=true"}, + {"key": "natural", "value": "rock", "description": "🄿 Attached Rock / Boulder", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/boulder2.svg"}, + {"key": "natural", "value": "saddle", "description": "🄿 Saddle", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/triangle-stroked-15.svg"}, {"key": "natural", "value": "scree", "description": "🄿 Scree", "object_types": ["area"]}, {"key": "natural", "value": "scrub", "description": "🄿 Scrub", "object_types": ["area"]}, {"key": "natural", "value": "shingle", "description": "🄿 Shingle", "object_types": ["area"]}, - {"key": "natural", "value": "spring", "description": "🄿 Spring", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/water-15.svg?sanitize=true"}, - {"key": "natural", "value": "stone", "description": "🄿 Unattached Stone / Boulder", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/boulder1.svg?sanitize=true"}, - {"key": "natural", "value": "tree_row", "description": "🄿 Tree Row", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/park-15.svg?sanitize=true"}, - {"key": "natural", "value": "tree", "description": "🄿 Tree", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/park-15.svg?sanitize=true"}, - {"key": "natural", "value": "valley", "description": "🄿 Valley", "object_types": ["node", "way"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/triangle-stroked-15.svg?sanitize=true"}, - {"key": "natural", "value": "volcano", "description": "🄿 Volcano", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/volcano-15.svg?sanitize=true"}, - {"key": "water", "value": "basin", "description": "🄿 Basin", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/water-15.svg?sanitize=true"}, - {"key": "water", "value": "canal", "description": "🄿 Canal", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/waterway-canal.svg?sanitize=true"}, - {"key": "water", "value": "lake", "description": "🄿 Lake", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/water-15.svg?sanitize=true"}, - {"key": "water", "value": "moat", "description": "🄿 Moat", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/water-15.svg?sanitize=true"}, - {"key": "water", "value": "pond", "description": "🄿 Pond", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/water-15.svg?sanitize=true"}, - {"key": "water", "value": "reservoir", "description": "🄿 Reservoir", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/water-15.svg?sanitize=true"}, - {"key": "water", "value": "river", "description": "🄿 River", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/waterway-river.svg?sanitize=true"}, - {"key": "water", "value": "stream", "description": "🄿 Stream", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/waterway-stream.svg?sanitize=true"}, - {"key": "water", "value": "wastewater", "description": "🄿 Wastewater Basin", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/water-15.svg?sanitize=true"}, - {"key": "natural", "value": "wetland", "description": "🄿 Wetland", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/wetland-15.svg?sanitize=true"}, - {"key": "natural", "value": "wood", "description": "🄿 Wood", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/park-alt1-15.svg?sanitize=true"}, - {"key": "noexit", "value": "yes", "description": "🄿 No Exit", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/barrier-15.svg?sanitize=true"}, - {"key": "office", "description": "🄿 Office, 🄵 Type", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/suitcase-15.svg?sanitize=true"}, - {"key": "office", "value": "administrative", "description": "🄿 Administrative Office (unsearchable), 🄳 ➜ office=government", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/suitcase-15.svg?sanitize=true"}, - {"key": "office", "value": "physician", "description": "🄿 Physician (unsearchable)", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/suitcase-15.svg?sanitize=true"}, - {"key": "office", "value": "travel_agent", "description": "🄿 Travel Agency (unsearchable)", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/suitcase-15.svg?sanitize=true"}, - {"key": "office", "value": "accountant", "description": "🄿 Accountant Office", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/accounting.svg?sanitize=true"}, - {"key": "office", "value": "adoption_agency", "description": "🄿 Adoption Agency", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/suitcase-15.svg?sanitize=true"}, - {"key": "office", "value": "advertising_agency", "description": "🄿 Advertising Agency", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/suitcase-15.svg?sanitize=true"}, - {"key": "office", "value": "architect", "description": "🄿 Architect Office", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-drafting-compass.svg?sanitize=true"}, - {"key": "office", "value": "association", "description": "🄿 Nonprofit Organization Office", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/suitcase-15.svg?sanitize=true"}, - {"key": "office", "value": "bail_bond_agent", "description": "🄿 Bail Bond Agent", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/bank-15.svg?sanitize=true"}, - {"key": "office", "value": "charity", "description": "🄿 Charity Office", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/suitcase-15.svg?sanitize=true"}, - {"key": "office", "value": "company", "description": "🄿 Corporate Office", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/suitcase-15.svg?sanitize=true"}, - {"key": "office", "value": "coworking", "description": "🄿 Coworking Space", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/suitcase-15.svg?sanitize=true"}, - {"key": "office", "value": "diplomatic", "description": "🄿 Diplomatic Office", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/embassy-15.svg?sanitize=true"}, - {"key": "diplomatic", "value": "consulate", "description": "🄿 Consulate", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/embassy-15.svg?sanitize=true"}, - {"key": "diplomatic", "value": "embassy", "description": "🄿 Embassy", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/embassy-15.svg?sanitize=true"}, - {"key": "diplomatic", "value": "liaison", "description": "🄿 Liaison Office", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/embassy-15.svg?sanitize=true"}, - {"key": "office", "value": "educational_institution", "description": "🄿 Educational Institution", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/school-15.svg?sanitize=true"}, - {"key": "office", "value": "employment_agency", "description": "🄿 Employment Agency", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/suitcase-15.svg?sanitize=true"}, - {"key": "office", "value": "energy_supplier", "description": "🄿 Energy Supplier Office", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/suitcase-15.svg?sanitize=true"}, - {"key": "office", "value": "estate_agent", "description": "🄿 Real Estate Office", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/real_estate_agency.svg?sanitize=true"}, - {"key": "office", "value": "financial_advisor", "description": "🄿 Financial Advisor", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/suitcase-15.svg?sanitize=true"}, - {"key": "office", "value": "financial", "description": "🄿 Financial Office", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/suitcase-15.svg?sanitize=true"}, - {"key": "office", "value": "forestry", "description": "🄿 Forestry Office", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/suitcase-15.svg?sanitize=true"}, - {"key": "office", "value": "foundation", "description": "🄿 Foundation Office", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/suitcase-15.svg?sanitize=true"}, - {"key": "office", "value": "government", "description": "🄿 Government Office", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/town-hall-15.svg?sanitize=true"}, - {"key": "government", "value": "register_office", "description": "🄿 Register Office", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/town-hall-15.svg?sanitize=true"}, - {"key": "government", "value": "tax", "description": "🄿 Tax and Revenue Office", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/town-hall-15.svg?sanitize=true"}, - {"key": "office", "value": "guide", "description": "🄿 Tour Guide Office", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/suitcase-15.svg?sanitize=true"}, - {"key": "office", "value": "insurance", "description": "🄿 Insurance Office", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/suitcase-15.svg?sanitize=true"}, - {"key": "office", "value": "it", "description": "🄿 Information Technology Office", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/suitcase-15.svg?sanitize=true"}, - {"key": "office", "value": "lawyer", "description": "🄿 Law Office", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-balance-scale.svg?sanitize=true"}, - {"key": "lawyer", "value": "notary", "description": "🄿 Notary Office (unsearchable), 🄳 ➜ office=notary", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/suitcase-15.svg?sanitize=true"}, - {"key": "office", "value": "moving_company", "description": "🄿 Moving Company Office", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-people-carry.svg?sanitize=true"}, - {"key": "office", "value": "newspaper", "description": "🄿 Newspaper Office", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-newspaper.svg?sanitize=true"}, - {"key": "office", "value": "ngo", "description": "🄿 NGO Office", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/suitcase-15.svg?sanitize=true"}, - {"key": "office", "value": "notary", "description": "🄿 Notary Office", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-stamp.svg?sanitize=true"}, - {"key": "office", "value": "political_party", "description": "🄿 Political Party", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/town-hall-15.svg?sanitize=true"}, - {"key": "office", "value": "private_investigator", "description": "🄿 Private Investigator Office", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-user-secret.svg?sanitize=true"}, - {"key": "office", "value": "quango", "description": "🄿 Quasi-NGO Office", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/suitcase-15.svg?sanitize=true"}, - {"key": "office", "value": "religion", "description": "🄿 Religious Office", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/suitcase-15.svg?sanitize=true"}, - {"key": "office", "value": "research", "description": "🄿 Research Office", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/suitcase-15.svg?sanitize=true"}, - {"key": "office", "value": "surveyor", "description": "🄿 Surveyor Office", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/suitcase-15.svg?sanitize=true"}, - {"key": "office", "value": "tax_advisor", "description": "🄿 Tax Advisor Office", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/suitcase-15.svg?sanitize=true"}, - {"key": "office", "value": "telecommunication", "description": "🄿 Telecom Office", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/telephone-15.svg?sanitize=true"}, - {"key": "office", "value": "therapist", "description": "🄿 Therapist Office", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/suitcase-15.svg?sanitize=true"}, - {"key": "office", "value": "water_utility", "description": "🄿 Water Utility Office", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/suitcase-15.svg?sanitize=true"}, - {"key": "piste:type", "value": "downhill", "description": "🄿 Downhill Piste/Ski Run, 🄵 Type", "object_types": ["way", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-skiing.svg?sanitize=true"}, - {"key": "man_made", "value": "piste:halfpipe", "description": "🄿 Halfpipe", "object_types": ["way", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-snowboarding.svg?sanitize=true"}, - {"key": "piste:type", "value": "hike", "description": "🄿 Snowshoeing or Winter Hiking Trail, 🄵 Type", "object_types": ["way", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/snow_shoeing.svg?sanitize=true"}, - {"key": "piste:type", "value": "ice_skate", "description": "🄿 Ice Skating Piste, 🄵 Type", "object_types": ["way", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-skating.svg?sanitize=true"}, - {"key": "piste:type", "value": "nordic", "description": "🄿 Nordic or Crosscountry Piste/Ski Trail, 🄵 Type", "object_types": ["way", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-skiing-nordic.svg?sanitize=true"}, - {"key": "piste:type", "description": "🄿 Winter Sport Trails", "object_types": ["way", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-skiing.svg?sanitize=true"}, - {"key": "piste:type", "value": "skitour", "description": "🄿 Ski Touring Trail, 🄵 Type", "object_types": ["way", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-skiing-nordic.svg?sanitize=true"}, - {"key": "piste:type", "value": "sled", "description": "🄿 Sled Piste, 🄵 Type", "object_types": ["way", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/sledding.svg?sanitize=true"}, - {"key": "piste:type", "value": "sleigh", "description": "🄿 Sleigh Piste, 🄵 Type", "object_types": ["way", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-sleigh.svg?sanitize=true"}, - {"key": "place", "value": "farm", "description": "🄿 Farm (unsearchable)", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/farm-15.svg?sanitize=true"}, - {"key": "place", "value": "city_block", "description": "🄿 City Block", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/triangle-stroked-15.svg?sanitize=true"}, - {"key": "place", "value": "city", "description": "🄿 City", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/city-15.svg?sanitize=true"}, - {"key": "place", "value": "hamlet", "description": "🄿 Hamlet", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/triangle-stroked-15.svg?sanitize=true"}, - {"key": "place", "value": "island", "description": "🄿 Island", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/mountain-15.svg?sanitize=true"}, - {"key": "place", "value": "islet", "description": "🄿 Islet", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/mountain-15.svg?sanitize=true"}, - {"key": "place", "value": "isolated_dwelling", "description": "🄿 Isolated Dwelling", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/home-15.svg?sanitize=true"}, - {"key": "place", "value": "locality", "description": "🄿 Locality", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/triangle-stroked-15.svg?sanitize=true"}, - {"key": "place", "value": "neighbourhood", "description": "🄿 Neighborhood", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/triangle-stroked-15.svg?sanitize=true"}, - {"key": "place", "value": "plot", "description": "🄿 Plot", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/triangle-stroked-15.svg?sanitize=true"}, - {"key": "place", "value": "quarter", "description": "🄿 Sub-Borough / Quarter", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/triangle-stroked-15.svg?sanitize=true"}, - {"key": "place", "value": "square", "description": "🄿 Square", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/pedestrian.svg?sanitize=true"}, - {"key": "place", "value": "suburb", "description": "🄿 Borough / Suburb", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/triangle-stroked-15.svg?sanitize=true"}, - {"key": "place", "value": "town", "description": "🄿 Town", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/town-15.svg?sanitize=true"}, - {"key": "place", "value": "village", "description": "🄿 Village", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/village-15.svg?sanitize=true"}, - {"key": "playground", "value": "balancebeam", "description": "🄿 Play Balance Beam", "object_types": ["node", "way"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/playground-15.svg?sanitize=true"}, - {"key": "playground", "value": "basketrotator", "description": "🄿 Basket Spinner", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/playground-15.svg?sanitize=true"}, - {"key": "playground", "value": "basketswing", "description": "🄿 Basket Swing", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/playground-15.svg?sanitize=true"}, - {"key": "playground", "value": "climbingframe", "description": "🄿 Climbing Frame", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/playground-15.svg?sanitize=true"}, - {"key": "playground", "value": "cushion", "description": "🄿 Bouncy Cushion", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/playground-15.svg?sanitize=true"}, - {"key": "playground", "value": "horizontal_bar", "description": "🄿 Play Horizontal Bar", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/pitch-15.svg?sanitize=true"}, - {"key": "playground", "value": "springy", "description": "🄿 Spring Rider", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/playground-15.svg?sanitize=true"}, - {"key": "playground", "value": "roundabout", "description": "🄿 Play Roundabout", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/stadium-15.svg?sanitize=true"}, - {"key": "playground", "value": "sandpit", "description": "🄿 Sandpit", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/playground-15.svg?sanitize=true"}, - {"key": "playground", "value": "seesaw", "description": "🄿 Seesaw", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/playground-15.svg?sanitize=true"}, - {"key": "playground", "value": "slide", "description": "🄿 Slide", "object_types": ["node", "way"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/playground-15.svg?sanitize=true"}, - {"key": "playground", "value": "structure", "description": "🄿 Play Structure", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/pitch-15.svg?sanitize=true"}, - {"key": "playground", "value": "swing", "description": "🄿 Swing", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/playground-15.svg?sanitize=true"}, - {"key": "playground", "value": "zipwire", "description": "🄿 Zip Wire", "object_types": ["node", "way"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/playground-15.svg?sanitize=true"}, - {"key": "polling_station", "description": "🄿 Temporary Polling Place, 🄵 Polling Place", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-vote-yea.svg?sanitize=true"}, - {"key": "power", "value": "sub_station", "description": "🄿 Substation (unsearchable), 🄳 ➜ power=substation", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/power.svg?sanitize=true"}, - {"key": "power", "value": "generator", "description": "🄿 Power Generator", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/power.svg?sanitize=true"}, - {"key": "generator:method", "value": "photovoltaic", "description": "🄿 Solar Panel", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-solar-panel.svg?sanitize=true"}, - {"key": "generator:source", "value": "hydro", "description": "🄿 Water Turbine", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/power.svg?sanitize=true"}, - {"key": "generator:method", "value": "fission", "description": "🄿 Nuclear Reactor", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/radiation.svg?sanitize=true"}, - {"key": "generator:method", "value": "wind_turbine", "description": "🄿 Wind Turbine", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/wind_turbine.svg?sanitize=true"}, - {"key": "power", "value": "line", "description": "🄿 Power Line", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/power-line.svg?sanitize=true"}, - {"key": "power", "value": "minor_line", "description": "🄿 Minor Power Line", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/power-line.svg?sanitize=true"}, - {"key": "power", "value": "plant", "description": "🄿 Power Station Grounds", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/industry-15.svg?sanitize=true"}, + {"key": "natural", "value": "spring", "description": "🄿 Spring", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/water-15.svg"}, + {"key": "natural", "value": "stone", "description": "🄿 Unattached Stone / Boulder", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/boulder1.svg"}, + {"key": "natural", "value": "tree_row", "description": "🄿 Tree Row", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/park-15.svg"}, + {"key": "natural", "value": "tree", "description": "🄿 Tree", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/park-15.svg"}, + {"key": "natural", "value": "valley", "description": "🄿 Valley", "object_types": ["node", "way"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/triangle-stroked-15.svg"}, + {"key": "natural", "value": "volcano", "description": "🄿 Volcano", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/volcano-15.svg"}, + {"key": "water", "value": "basin", "description": "🄿 Basin", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/water-15.svg"}, + {"key": "water", "value": "canal", "description": "🄿 Canal", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/waterway-canal.svg"}, + {"key": "water", "value": "lake", "description": "🄿 Lake", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/water-15.svg"}, + {"key": "water", "value": "moat", "description": "🄿 Moat", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/water-15.svg"}, + {"key": "water", "value": "pond", "description": "🄿 Pond", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/water-15.svg"}, + {"key": "water", "value": "reservoir", "description": "🄿 Reservoir", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/water-15.svg"}, + {"key": "water", "value": "river", "description": "🄿 River", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/waterway-river.svg"}, + {"key": "water", "value": "stream", "description": "🄿 Stream", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/waterway-stream.svg"}, + {"key": "water", "value": "wastewater", "description": "🄿 Wastewater Basin", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/water-15.svg"}, + {"key": "natural", "value": "wetland", "description": "🄿 Wetland", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/wetland-15.svg"}, + {"key": "natural", "value": "wood", "description": "🄿 Wood", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/park-alt1-15.svg"}, + {"key": "noexit", "value": "yes", "description": "🄿 No Exit", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/barrier-15.svg"}, + {"key": "office", "description": "🄿 Office, 🄵 Type", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/suitcase-15.svg"}, + {"key": "office", "value": "administrative", "description": "🄿 Administrative Office (unsearchable), 🄳 ➜ office=government", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/suitcase-15.svg"}, + {"key": "office", "value": "physician", "description": "🄿 Physician (unsearchable)", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/suitcase-15.svg"}, + {"key": "office", "value": "travel_agent", "description": "🄿 Travel Agency (unsearchable)", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/suitcase-15.svg"}, + {"key": "office", "value": "accountant", "description": "🄿 Accountant Office", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/accounting.svg"}, + {"key": "office", "value": "adoption_agency", "description": "🄿 Adoption Agency", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/suitcase-15.svg"}, + {"key": "office", "value": "advertising_agency", "description": "🄿 Advertising Agency", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/suitcase-15.svg"}, + {"key": "office", "value": "architect", "description": "🄿 Architect Office", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-drafting-compass.svg"}, + {"key": "office", "value": "association", "description": "🄿 Nonprofit Organization Office", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/suitcase-15.svg"}, + {"key": "office", "value": "bail_bond_agent", "description": "🄿 Bail Bond Agent", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/bank-15.svg"}, + {"key": "office", "value": "charity", "description": "🄿 Charity Office", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/suitcase-15.svg"}, + {"key": "office", "value": "company", "description": "🄿 Corporate Office", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/suitcase-15.svg"}, + {"key": "office", "value": "coworking", "description": "🄿 Coworking Space", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/suitcase-15.svg"}, + {"key": "office", "value": "diplomatic", "description": "🄿 Diplomatic Office", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/embassy-15.svg"}, + {"key": "diplomatic", "value": "consulate", "description": "🄿 Consulate", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/embassy-15.svg"}, + {"key": "diplomatic", "value": "embassy", "description": "🄿 Embassy", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/embassy-15.svg"}, + {"key": "diplomatic", "value": "liaison", "description": "🄿 Liaison Office", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/embassy-15.svg"}, + {"key": "office", "value": "educational_institution", "description": "🄿 Educational Institution", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/school-15.svg"}, + {"key": "office", "value": "employment_agency", "description": "🄿 Employment Agency", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/suitcase-15.svg"}, + {"key": "office", "value": "energy_supplier", "description": "🄿 Energy Supplier Office", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/suitcase-15.svg"}, + {"key": "office", "value": "estate_agent", "description": "🄿 Real Estate Office", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/real_estate_agency.svg"}, + {"key": "office", "value": "financial_advisor", "description": "🄿 Financial Advisor", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/suitcase-15.svg"}, + {"key": "office", "value": "financial", "description": "🄿 Financial Office", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/suitcase-15.svg"}, + {"key": "office", "value": "forestry", "description": "🄿 Forestry Office", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/suitcase-15.svg"}, + {"key": "office", "value": "foundation", "description": "🄿 Foundation Office", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/suitcase-15.svg"}, + {"key": "office", "value": "government", "description": "🄿 Government Office", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/town-hall-15.svg"}, + {"key": "government", "value": "register_office", "description": "🄿 Register Office", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/town-hall-15.svg"}, + {"key": "government", "value": "tax", "description": "🄿 Tax and Revenue Office", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/town-hall-15.svg"}, + {"key": "office", "value": "guide", "description": "🄿 Tour Guide Office", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/suitcase-15.svg"}, + {"key": "office", "value": "insurance", "description": "🄿 Insurance Office", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/suitcase-15.svg"}, + {"key": "office", "value": "it", "description": "🄿 Information Technology Office", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/suitcase-15.svg"}, + {"key": "office", "value": "lawyer", "description": "🄿 Law Office", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-balance-scale.svg"}, + {"key": "lawyer", "value": "notary", "description": "🄿 Notary Office (unsearchable), 🄳 ➜ office=notary", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/suitcase-15.svg"}, + {"key": "office", "value": "moving_company", "description": "🄿 Moving Company Office", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-people-carry.svg"}, + {"key": "office", "value": "newspaper", "description": "🄿 Newspaper Office", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-newspaper.svg"}, + {"key": "office", "value": "ngo", "description": "🄿 NGO Office", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/suitcase-15.svg"}, + {"key": "office", "value": "notary", "description": "🄿 Notary Office", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-stamp.svg"}, + {"key": "office", "value": "political_party", "description": "🄿 Political Party", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/town-hall-15.svg"}, + {"key": "office", "value": "private_investigator", "description": "🄿 Private Investigator Office", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-user-secret.svg"}, + {"key": "office", "value": "quango", "description": "🄿 Quasi-NGO Office", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/suitcase-15.svg"}, + {"key": "office", "value": "religion", "description": "🄿 Religious Office", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/suitcase-15.svg"}, + {"key": "office", "value": "research", "description": "🄿 Research Office", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/suitcase-15.svg"}, + {"key": "office", "value": "surveyor", "description": "🄿 Surveyor Office", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/suitcase-15.svg"}, + {"key": "office", "value": "tax_advisor", "description": "🄿 Tax Advisor Office", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/suitcase-15.svg"}, + {"key": "office", "value": "telecommunication", "description": "🄿 Telecom Office", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/telephone-15.svg"}, + {"key": "office", "value": "therapist", "description": "🄿 Therapist Office", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/suitcase-15.svg"}, + {"key": "office", "value": "water_utility", "description": "🄿 Water Utility Office", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/suitcase-15.svg"}, + {"key": "piste:type", "value": "downhill", "description": "🄿 Downhill Piste/Ski Run, 🄵 Type", "object_types": ["way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-skiing.svg"}, + {"key": "man_made", "value": "piste:halfpipe", "description": "🄿 Halfpipe", "object_types": ["way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-snowboarding.svg"}, + {"key": "piste:type", "value": "hike", "description": "🄿 Snowshoeing or Winter Hiking Trail, 🄵 Type", "object_types": ["way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/snow_shoeing.svg"}, + {"key": "piste:type", "value": "ice_skate", "description": "🄿 Ice Skating Piste, 🄵 Type", "object_types": ["way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-skating.svg"}, + {"key": "piste:type", "value": "nordic", "description": "🄿 Nordic or Crosscountry Piste/Ski Trail, 🄵 Type", "object_types": ["way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-skiing-nordic.svg"}, + {"key": "piste:type", "description": "🄿 Winter Sport Trails", "object_types": ["way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-skiing.svg"}, + {"key": "piste:type", "value": "skitour", "description": "🄿 Ski Touring Trail, 🄵 Type", "object_types": ["way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-skiing-nordic.svg"}, + {"key": "piste:type", "value": "sled", "description": "🄿 Sled Piste, 🄵 Type", "object_types": ["way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/sledding.svg"}, + {"key": "piste:type", "value": "sleigh", "description": "🄿 Sleigh Piste, 🄵 Type", "object_types": ["way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-sleigh.svg"}, + {"key": "place", "value": "farm", "description": "🄿 Farm (unsearchable)", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/farm-15.svg"}, + {"key": "place", "value": "city_block", "description": "🄿 City Block", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/triangle-stroked-15.svg"}, + {"key": "place", "value": "city", "description": "🄿 City", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/city-15.svg"}, + {"key": "place", "value": "hamlet", "description": "🄿 Hamlet", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/triangle-stroked-15.svg"}, + {"key": "place", "value": "island", "description": "🄿 Island", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/mountain-15.svg"}, + {"key": "place", "value": "islet", "description": "🄿 Islet", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/mountain-15.svg"}, + {"key": "place", "value": "isolated_dwelling", "description": "🄿 Isolated Dwelling", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/home-15.svg"}, + {"key": "place", "value": "locality", "description": "🄿 Locality", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/triangle-stroked-15.svg"}, + {"key": "place", "value": "neighbourhood", "description": "🄿 Neighborhood", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/triangle-stroked-15.svg"}, + {"key": "place", "value": "plot", "description": "🄿 Plot", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/triangle-stroked-15.svg"}, + {"key": "place", "value": "quarter", "description": "🄿 Sub-Borough / Quarter", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/triangle-stroked-15.svg"}, + {"key": "place", "value": "square", "description": "🄿 Square", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/pedestrian.svg"}, + {"key": "place", "value": "suburb", "description": "🄿 Borough / Suburb", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/triangle-stroked-15.svg"}, + {"key": "place", "value": "town", "description": "🄿 Town", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/town-15.svg"}, + {"key": "place", "value": "village", "description": "🄿 Village", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/village-15.svg"}, + {"key": "playground", "value": "balancebeam", "description": "🄿 Play Balance Beam", "object_types": ["node", "way"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/playground-15.svg"}, + {"key": "playground", "value": "basketrotator", "description": "🄿 Basket Spinner", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/playground-15.svg"}, + {"key": "playground", "value": "basketswing", "description": "🄿 Basket Swing", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/playground-15.svg"}, + {"key": "playground", "value": "climbingframe", "description": "🄿 Climbing Frame", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/playground-15.svg"}, + {"key": "playground", "value": "cushion", "description": "🄿 Bouncy Cushion", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/playground-15.svg"}, + {"key": "playground", "value": "horizontal_bar", "description": "🄿 Play Horizontal Bar", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/pitch-15.svg"}, + {"key": "playground", "value": "springy", "description": "🄿 Spring Rider", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/playground-15.svg"}, + {"key": "playground", "value": "roundabout", "description": "🄿 Play Roundabout", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/stadium-15.svg"}, + {"key": "playground", "value": "sandpit", "description": "🄿 Sandpit", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/playground-15.svg"}, + {"key": "playground", "value": "seesaw", "description": "🄿 Seesaw", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/playground-15.svg"}, + {"key": "playground", "value": "slide", "description": "🄿 Slide", "object_types": ["node", "way"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/playground-15.svg"}, + {"key": "playground", "value": "structure", "description": "🄿 Play Structure", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/pitch-15.svg"}, + {"key": "playground", "value": "swing", "description": "🄿 Swing", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/playground-15.svg"}, + {"key": "playground", "value": "zipwire", "description": "🄿 Zip Wire", "object_types": ["node", "way"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/playground-15.svg"}, + {"key": "polling_station", "description": "🄿 Temporary Polling Place, 🄵 Polling Place", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-vote-yea.svg"}, + {"key": "power", "value": "sub_station", "description": "🄿 Substation (unsearchable), 🄳 ➜ power=substation", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/power.svg"}, + {"key": "power", "value": "generator", "description": "🄿 Power Generator", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/power.svg"}, + {"key": "generator:method", "value": "photovoltaic", "description": "🄿 Solar Panel", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-solar-panel.svg"}, + {"key": "generator:source", "value": "hydro", "description": "🄿 Water Turbine", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/power.svg"}, + {"key": "generator:method", "value": "fission", "description": "🄿 Nuclear Reactor", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/radiation.svg"}, + {"key": "generator:method", "value": "wind_turbine", "description": "🄿 Wind Turbine", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/wind_turbine.svg"}, + {"key": "power", "value": "line", "description": "🄿 Power Line", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/power-line.svg"}, + {"key": "power", "value": "minor_line", "description": "🄿 Minor Power Line", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/power-line.svg"}, + {"key": "power", "value": "plant", "description": "🄿 Power Station Grounds", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/industry-15.svg"}, {"key": "power", "value": "pole", "description": "🄿 Power Pole", "object_types": ["node"]}, - {"key": "power", "value": "substation", "description": "🄿 Substation", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/power.svg?sanitize=true"}, - {"key": "power", "value": "switch", "description": "🄿 Power Switch", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/power.svg?sanitize=true"}, + {"key": "power", "value": "substation", "description": "🄿 Substation", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/power.svg"}, + {"key": "power", "value": "switch", "description": "🄿 Power Switch", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/power.svg"}, {"key": "power", "value": "tower", "description": "🄿 High-Voltage Tower", "object_types": ["node"]}, - {"key": "power", "value": "transformer", "description": "🄿 Transformer", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/power.svg?sanitize=true"}, - {"key": "public_transport", "value": "platform", "description": "🄿 Transit Stop / Platform, 🄿 Transit Platform", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/rail-15.svg?sanitize=true"}, - {"key": "aerialway", "value": "yes", "description": "🄿 Aerialway Stop / Platform (unsearchable), 🄿 Aerialway Platform, 🄿 Aerialway Station, 🄿 Aerialway Stopping Location", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/aerialway-15.svg?sanitize=true"}, - {"key": "ferry", "value": "yes", "description": "🄿 Ferry Stop / Platform (unsearchable), 🄿 Ferry Platform, 🄿 Ferry Station / Terminal, 🄿 Ferry Stopping Location", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/ferry-15.svg?sanitize=true"}, - {"key": "light_rail", "value": "yes", "description": "🄿 Light Rail Stop / Platform (unsearchable), 🄿 Light Rail Platform, 🄿 Light Rail Station, 🄿 Light Rail Stopping Location", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/light_rail.svg?sanitize=true"}, - {"key": "monorail", "value": "yes", "description": "🄿 Monorail Stop / Platform (unsearchable), 🄿 Monorail Platform, 🄿 Monorail Station, 🄿 Monorail Stopping Location", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/monorail.svg?sanitize=true"}, - {"key": "subway", "value": "yes", "description": "🄿 Subway Stop / Platform (unsearchable), 🄿 Subway Platform, 🄿 Subway Station, 🄿 Subway Stopping Location", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/subway.svg?sanitize=true"}, - {"key": "train", "value": "yes", "description": "🄿 Train Stop / Platform (unsearchable), 🄿 Train Platform, 🄿 Train Station, 🄿 Train Stopping Location", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/rail-15.svg?sanitize=true"}, - {"key": "tram", "value": "yes", "description": "🄿 Tram Stop / Platform (unsearchable), 🄿 Tram Platform, 🄿 Tram Station, 🄿 Tram Stopping Location", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/tram.svg?sanitize=true"}, - {"key": "bus", "value": "yes", "description": "🄿 Bus Stop, 🄿 Bus Platform, 🄿 Bus Station / Terminal, 🄿 Bus Stopping Location", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/bus-15.svg?sanitize=true"}, - {"key": "trolleybus", "value": "yes", "description": "🄿 Trolleybus Stop, 🄿 Trolleybus Platform, 🄿 Trolleybus Station / Terminal, 🄿 Trolleybus Stopping Location", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/trolleybus.svg?sanitize=true"}, - {"key": "railway", "value": "halt", "description": "🄿 Train Station (Halt / Request), 🄿 Train Station (Halt / Request) (unsearchable)", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/rail-15.svg?sanitize=true"}, - {"key": "public_transport", "value": "station", "description": "🄿 Transit Station", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/rail-15.svg?sanitize=true"}, - {"key": "public_transport", "value": "stop_area", "description": "🄿 Transit Stop Area", "object_types": ["relation"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/relation.svg?sanitize=true"}, - {"key": "public_transport", "value": "stop_position", "description": "🄿 Transit Stopping Location", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/bus-15.svg?sanitize=true"}, - {"key": "railway", "value": "platform", "description": "🄿 Train Platform (unsearchable)", "object_types": ["way", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/pedestrian.svg?sanitize=true"}, - {"key": "railway", "value": "station", "description": "🄿 Train Station (unsearchable)", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/rail-15.svg?sanitize=true"}, - {"key": "railway", "value": "tram_stop", "description": "🄿 Tram Stopping Position (unsearchable)", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/tram.svg?sanitize=true"}, - {"key": "railway", "value": "abandoned", "description": "🄿 Abandoned Railway", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/railway-abandoned.svg?sanitize=true"}, - {"key": "railway", "value": "buffer_stop", "description": "🄿 Buffer Stop", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/buffer_stop.svg?sanitize=true"}, - {"key": "railway", "value": "construction", "description": "🄿 Railway Under Construction", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/railway-rail.svg?sanitize=true"}, - {"key": "railway", "value": "crossing", "description": "🄿 Railway Crossing (Path)", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/pedestrian.svg?sanitize=true"}, - {"key": "railway", "value": "derail", "description": "🄿 Railway Derailer", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/roadblock-15.svg?sanitize=true"}, - {"key": "railway", "value": "disused", "description": "🄿 Disused Railway", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/railway-disused.svg?sanitize=true"}, - {"key": "railway", "value": "funicular", "description": "🄿 Funicular", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/railway-rail.svg?sanitize=true"}, - {"key": "railway", "value": "level_crossing", "description": "🄿 Railway Crossing (Road)", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/cross-15.svg?sanitize=true"}, - {"key": "railway", "value": "light_rail", "description": "🄿 Light Rail", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/light_rail.svg?sanitize=true"}, - {"key": "railway", "value": "milestone", "description": "🄿 Railway Milestone", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/milestone.svg?sanitize=true"}, - {"key": "railway", "value": "miniature", "description": "🄿 Miniature Railway", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/railway-rail.svg?sanitize=true"}, - {"key": "railway", "value": "monorail", "description": "🄿 Monorail", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/monorail.svg?sanitize=true"}, - {"key": "railway", "value": "narrow_gauge", "description": "🄿 Narrow Gauge Rail", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/railway-rail.svg?sanitize=true"}, - {"key": "railway", "value": "rail", "description": "🄿 Rail", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/railway-rail.svg?sanitize=true"}, - {"key": "highspeed", "value": "yes", "description": "🄿 High-Speed Rail", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/railway-rail.svg?sanitize=true"}, - {"key": "railway", "value": "signal", "description": "🄿 Railway Signal", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/railway_signals.svg?sanitize=true"}, - {"key": "railway", "value": "subway_entrance", "description": "🄿 Subway Entrance", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/entrance-15.svg?sanitize=true"}, - {"key": "railway", "value": "subway", "description": "🄿 Subway", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/subway.svg?sanitize=true"}, - {"key": "railway", "value": "switch", "description": "🄿 Railway Switch", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/junction.svg?sanitize=true"}, - {"key": "railway", "value": "wash", "description": "🄿 Train Wash", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/rail-15.svg?sanitize=true"}, - {"key": "railway", "value": "tram", "description": "🄿 Tram", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/tram.svg?sanitize=true"}, - {"key": "route", "value": "ferry", "description": "🄿 Ferry Route", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/ferry-15.svg?sanitize=true"}, + {"key": "power", "value": "transformer", "description": "🄿 Transformer", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/power.svg"}, + {"key": "public_transport", "value": "platform", "description": "🄿 Transit Stop / Platform, 🄿 Transit Platform", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/rail-15.svg"}, + {"key": "aerialway", "value": "yes", "description": "🄿 Aerialway Stop / Platform (unsearchable), 🄿 Aerialway Platform, 🄿 Aerialway Station, 🄿 Aerialway Stopping Location", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/aerialway-15.svg"}, + {"key": "ferry", "value": "yes", "description": "🄿 Ferry Stop / Platform (unsearchable), 🄿 Ferry Platform, 🄿 Ferry Station / Terminal, 🄿 Ferry Stopping Location", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/ferry-15.svg"}, + {"key": "light_rail", "value": "yes", "description": "🄿 Light Rail Stop / Platform (unsearchable), 🄿 Light Rail Platform, 🄿 Light Rail Station, 🄿 Light Rail Stopping Location", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/light_rail.svg"}, + {"key": "monorail", "value": "yes", "description": "🄿 Monorail Stop / Platform (unsearchable), 🄿 Monorail Platform, 🄿 Monorail Station, 🄿 Monorail Stopping Location", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/monorail.svg"}, + {"key": "subway", "value": "yes", "description": "🄿 Subway Stop / Platform (unsearchable), 🄿 Subway Platform, 🄿 Subway Station, 🄿 Subway Stopping Location", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/subway.svg"}, + {"key": "train", "value": "yes", "description": "🄿 Train Stop / Platform (unsearchable), 🄿 Train Platform, 🄿 Train Station, 🄿 Train Stopping Location", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/rail-15.svg"}, + {"key": "tram", "value": "yes", "description": "🄿 Tram Stop / Platform (unsearchable), 🄿 Tram Platform, 🄿 Tram Station, 🄿 Tram Stopping Location", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/tram.svg"}, + {"key": "bus", "value": "yes", "description": "🄿 Bus Stop, 🄿 Bus Platform, 🄿 Bus Station / Terminal, 🄿 Bus Stopping Location", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/bus-15.svg"}, + {"key": "trolleybus", "value": "yes", "description": "🄿 Trolleybus Stop, 🄿 Trolleybus Platform, 🄿 Trolleybus Station / Terminal, 🄿 Trolleybus Stopping Location", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/trolleybus.svg"}, + {"key": "railway", "value": "halt", "description": "🄿 Train Station (Halt / Request), 🄿 Train Station (Halt / Request) (unsearchable)", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/rail-15.svg"}, + {"key": "public_transport", "value": "station", "description": "🄿 Transit Station", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/rail-15.svg"}, + {"key": "public_transport", "value": "stop_area", "description": "🄿 Transit Stop Area", "object_types": ["relation"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/relation.svg"}, + {"key": "public_transport", "value": "stop_position", "description": "🄿 Transit Stopping Location", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/bus-15.svg"}, + {"key": "railway", "value": "platform", "description": "🄿 Train Platform (unsearchable)", "object_types": ["way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/pedestrian.svg"}, + {"key": "railway", "value": "station", "description": "🄿 Train Station (unsearchable)", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/rail-15.svg"}, + {"key": "railway", "value": "tram_stop", "description": "🄿 Tram Stopping Position (unsearchable)", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/tram.svg"}, + {"key": "railway", "value": "abandoned", "description": "🄿 Abandoned Railway", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/railway-abandoned.svg"}, + {"key": "railway", "value": "buffer_stop", "description": "🄿 Buffer Stop", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/buffer_stop.svg"}, + {"key": "railway", "value": "construction", "description": "🄿 Railway Under Construction", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/railway-rail.svg"}, + {"key": "railway", "value": "crossing", "description": "🄿 Railway Crossing (Path)", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/pedestrian.svg"}, + {"key": "railway", "value": "derail", "description": "🄿 Railway Derailer", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/roadblock-15.svg"}, + {"key": "railway", "value": "disused", "description": "🄿 Disused Railway", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/railway-disused.svg"}, + {"key": "railway", "value": "funicular", "description": "🄿 Funicular", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/railway-rail.svg"}, + {"key": "railway", "value": "level_crossing", "description": "🄿 Railway Crossing (Road)", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/cross-15.svg"}, + {"key": "railway", "value": "light_rail", "description": "🄿 Light Rail", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/light_rail.svg"}, + {"key": "railway", "value": "milestone", "description": "🄿 Railway Milestone", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/milestone.svg"}, + {"key": "railway", "value": "miniature", "description": "🄿 Miniature Railway", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/railway-rail.svg"}, + {"key": "railway", "value": "monorail", "description": "🄿 Monorail", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/monorail.svg"}, + {"key": "railway", "value": "narrow_gauge", "description": "🄿 Narrow Gauge Rail", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/railway-rail.svg"}, + {"key": "railway", "value": "rail", "description": "🄿 Rail", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/railway-rail.svg"}, + {"key": "highspeed", "value": "yes", "description": "🄿 High-Speed Rail", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/railway-rail.svg"}, + {"key": "railway", "value": "signal", "description": "🄿 Railway Signal", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/railway_signals.svg"}, + {"key": "railway", "value": "subway_entrance", "description": "🄿 Subway Entrance", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/entrance-15.svg"}, + {"key": "railway", "value": "subway", "description": "🄿 Subway", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/subway.svg"}, + {"key": "railway", "value": "switch", "description": "🄿 Railway Switch", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/junction.svg"}, + {"key": "railway", "value": "wash", "description": "🄿 Train Wash", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/rail-15.svg"}, + {"key": "railway", "value": "tram", "description": "🄿 Tram", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/tram.svg"}, + {"key": "route", "value": "ferry", "description": "🄿 Ferry Route", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/ferry-15.svg"}, {"key": "seamark:type", "value": "beacon_isolated_danger", "description": "🄿 Danger Beacon", "object_types": ["node"]}, {"key": "seamark:type", "value": "beacon_lateral", "description": "🄿 Channel Beacon", "object_types": ["node"]}, {"key": "seamark:type", "value": "buoy_lateral", "description": "🄿 Channel Buoy", "object_types": ["node"]}, {"key": "seamark:buoy_lateral:colour", "value": "green", "description": "🄿 Green Buoy, 🄵 Color", "object_types": ["node"]}, {"key": "seamark:buoy_lateral:colour", "value": "red", "description": "🄿 Red Buoy, 🄵 Color", "object_types": ["node"]}, {"key": "seamark:type", "value": "mooring", "description": "🄿 Mooring", "object_types": ["node"]}, - {"key": "shop", "description": "🄿 Shop, 🄵 Type", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "shop", "value": "boutique", "description": "🄿 Boutique (unsearchable), 🄳 ➜ shop=clothes", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "shop", "value": "fashion", "description": "🄿 Fashion Store (unsearchable), 🄳 ➜ shop=clothes", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "shop", "value": "fishmonger", "description": "🄿 Fishmonger (unsearchable), 🄳 ➜ shop=seafood", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "shop", "value": "furnace", "description": "🄿 Furnace Store (unsearchable), 🄳 ➜ shop=fireplace", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "shop", "value": "vacant", "description": "🄿 Vacant Shop (unsearchable)", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "shop", "value": "agrarian", "description": "🄿 Farm Supply Shop", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-tractor.svg?sanitize=true"}, - {"key": "shop", "value": "alcohol", "description": "🄿 Liquor Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-wine-bottle.svg?sanitize=true"}, - {"key": "shop", "value": "anime", "description": "🄿 Anime Shop", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-dragon.svg?sanitize=true"}, - {"key": "shop", "value": "antiques", "description": "🄿 Antiques Shop", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "shop", "value": "appliance", "description": "🄿 Appliance Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "shop", "value": "art", "description": "🄿 Art Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "shop", "value": "baby_goods", "description": "🄿 Baby Goods Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-baby-carriage.svg?sanitize=true"}, - {"key": "shop", "value": "bag", "description": "🄿 Bag/Luggage Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-suitcase-rolling.svg?sanitize=true"}, - {"key": "shop", "value": "bakery", "description": "🄿 Bakery", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/bakery-15.svg?sanitize=true"}, - {"key": "shop", "value": "bathroom_furnishing", "description": "🄿 Bathroom Furnishing Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-bath.svg?sanitize=true"}, - {"key": "shop", "value": "beauty", "description": "🄿 Beauty Shop", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "beauty", "value": "nails", "description": "🄿 Nail Salon", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "beauty", "value": "tanning", "description": "🄿 Tanning Salon", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "shop", "value": "bed", "description": "🄿 Bedding/Mattress Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/lodging-15.svg?sanitize=true"}, - {"key": "shop", "value": "beverages", "description": "🄿 Beverage Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "shop", "value": "bicycle", "description": "🄿 Bicycle Shop", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/bicycle-15.svg?sanitize=true"}, - {"key": "shop", "value": "boat", "description": "🄿 Boat Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/boating.svg?sanitize=true"}, - {"key": "shop", "value": "bookmaker", "description": "🄿 Bookmaker", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "shop", "value": "books", "description": "🄿 Book Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-book.svg?sanitize=true"}, - {"key": "shop", "value": "butcher", "description": "🄿 Butcher", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-bacon.svg?sanitize=true"}, - {"key": "shop", "value": "candles", "description": "🄿 Candle Shop", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-burn.svg?sanitize=true"}, - {"key": "shop", "value": "cannabis", "description": "🄿 Cannabis Shop", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-cannabis.svg?sanitize=true"}, - {"key": "shop", "value": "car_parts", "description": "🄿 Car Parts Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-car-battery.svg?sanitize=true"}, - {"key": "shop", "value": "car_repair", "description": "🄿 Car Repair Shop", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/car-repair-15.svg?sanitize=true"}, - {"key": "shop", "value": "car", "description": "🄿 Car Dealership", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/car-15.svg?sanitize=true"}, - {"key": "shop", "value": "caravan", "description": "🄿 RV Dealership", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/rv_park.svg?sanitize=true"}, - {"key": "shop", "value": "carpet", "description": "🄿 Carpet Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "shop", "value": "catalogue", "description": "🄿 Catalog Shop", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "shop", "value": "charity", "description": "🄿 Charity Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "shop", "value": "cheese", "description": "🄿 Cheese Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-cheese.svg?sanitize=true"}, - {"key": "shop", "value": "chemist", "description": "🄿 Drugstore", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-shopping-basket.svg?sanitize=true"}, - {"key": "shop", "value": "chocolate", "description": "🄿 Chocolate Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "shop", "value": "clothes", "description": "🄿 Clothing Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/clothing-store-15.svg?sanitize=true"}, - {"key": "clothes", "value": "underwear", "description": "🄿 Underwear Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/clothing-store-15.svg?sanitize=true"}, - {"key": "shop", "value": "coffee", "description": "🄿 Coffee Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "shop", "value": "computer", "description": "🄿 Computer Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-laptop.svg?sanitize=true"}, - {"key": "shop", "value": "confectionery", "description": "🄿 Candy Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/confectionery-15.svg?sanitize=true"}, - {"key": "shop", "value": "convenience", "description": "🄿 Convenience Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-shopping-basket.svg?sanitize=true"}, - {"key": "shop", "value": "copyshop", "description": "🄿 Copy Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-print.svg?sanitize=true"}, - {"key": "shop", "value": "cosmetics", "description": "🄿 Cosmetics Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "shop", "value": "country_store", "description": "🄿 Country Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "shop", "value": "craft", "description": "🄿 Arts and Crafts Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-palette.svg?sanitize=true"}, - {"key": "shop", "value": "curtain", "description": "🄿 Curtain Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "shop", "value": "dairy", "description": "🄿 Dairy Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-cheese.svg?sanitize=true"}, - {"key": "shop", "value": "deli", "description": "🄿 Deli", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/restaurant-15.svg?sanitize=true"}, - {"key": "shop", "value": "department_store", "description": "🄿 Department Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "shop", "value": "doityourself", "description": "🄿 DIY Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/tools.svg?sanitize=true"}, - {"key": "shop", "value": "dry_cleaning", "description": "🄿 Dry Cleaner", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/clothes_hanger.svg?sanitize=true"}, - {"key": "shop", "value": "e-cigarette", "description": "🄿 E-Cigarette Shop", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "shop", "value": "electronics", "description": "🄿 Electronics Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-plug.svg?sanitize=true"}, - {"key": "shop", "value": "erotic", "description": "🄿 Erotic Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "shop", "value": "fabric", "description": "🄿 Fabric Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-tape.svg?sanitize=true"}, - {"key": "shop", "value": "farm", "description": "🄿 Produce Stand", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "shop", "value": "fashion_accessories", "description": "🄿 Fashion Accessories Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "shop", "value": "fireplace", "description": "🄿 Fireplace Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "shop", "value": "fishing", "description": "🄿 Fishing Shop", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "shop", "value": "florist", "description": "🄿 Florist", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/florist-15.svg?sanitize=true"}, - {"key": "shop", "value": "frame", "description": "🄿 Framing Shop", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-vector-square.svg?sanitize=true"}, - {"key": "shop", "value": "frozen_food", "description": "🄿 Frozen Food", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "shop", "value": "fuel", "description": "🄿 Fuel Shop", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "shop", "value": "funeral_directors", "description": "🄿 Funeral Home", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/cemetery-15.svg?sanitize=true"}, - {"key": "shop", "value": "furniture", "description": "🄿 Furniture Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-couch.svg?sanitize=true"}, - {"key": "shop", "value": "games", "description": "🄿 Tabletop Game Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-dice.svg?sanitize=true"}, - {"key": "shop", "value": "garden_centre", "description": "🄿 Garden Center", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/garden-centre-15.svg?sanitize=true"}, - {"key": "shop", "value": "gas", "description": "🄿 Bottled Gas Shop", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "shop", "value": "general", "description": "🄿 General Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "shop", "value": "gift", "description": "🄿 Gift Shop", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/gift-15.svg?sanitize=true"}, - {"key": "shop", "value": "greengrocer", "description": "🄿 Greengrocer", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-carrot.svg?sanitize=true"}, - {"key": "shop", "value": "hairdresser_supply", "description": "🄿 Hairdresser Supply Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "shop", "value": "hairdresser", "description": "🄿 Hairdresser", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/beauty_salon.svg?sanitize=true"}, - {"key": "shop", "value": "hardware", "description": "🄿 Hardware Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/tools.svg?sanitize=true"}, - {"key": "shop", "value": "health_food", "description": "🄿 Health Food Shop", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "shop", "value": "hearing_aids", "description": "🄿 Hearing Aids Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "shop", "value": "herbalist", "description": "🄿 Herbalist", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-leaf.svg?sanitize=true"}, - {"key": "shop", "value": "hifi", "description": "🄿 Hifi Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "shop", "value": "hobby", "description": "🄿 Hobby Shop", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-dragon.svg?sanitize=true"}, - {"key": "shop", "value": "houseware", "description": "🄿 Houseware Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-blender.svg?sanitize=true"}, - {"key": "shop", "value": "hunting", "description": "🄿 Hunting Shop", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "shop", "value": "interior_decoration", "description": "🄿 Interior Decoration Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "shop", "value": "jewelry", "description": "🄿 Jewelry Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/jewelry-store-15.svg?sanitize=true"}, - {"key": "shop", "value": "kiosk", "description": "🄿 Kiosk", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "shop", "value": "kitchen", "description": "🄿 Kitchen Design Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "shop", "value": "laundry", "description": "🄿 Laundry", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/laundry-15.svg?sanitize=true"}, - {"key": "self_service", "value": "yes", "description": "🄿 Self-Service Laundry", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/laundry-15.svg?sanitize=true"}, - {"key": "shop", "value": "leather", "description": "🄿 Leather Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "shop", "value": "lighting", "description": "🄿 Lighting Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/far-lightbulb.svg?sanitize=true"}, - {"key": "shop", "value": "locksmith", "description": "🄿 Locksmith", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-key.svg?sanitize=true"}, - {"key": "shop", "value": "lottery", "description": "🄿 Lottery Shop", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "shop", "value": "mall", "description": "🄿 Mall", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "shop", "value": "massage", "description": "🄿 Massage Shop", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/spa.svg?sanitize=true"}, - {"key": "shop", "value": "medical_supply", "description": "🄿 Medical Supply Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "shop", "value": "military_surplus", "description": "🄿 Military Surplus Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/military.svg?sanitize=true"}, - {"key": "shop", "value": "mobile_phone", "description": "🄿 Mobile Phone Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-mobile-alt.svg?sanitize=true"}, - {"key": "shop", "value": "money_lender", "description": "🄿 Money Lender", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/bank-15.svg?sanitize=true"}, - {"key": "shop", "value": "motorcycle_repair", "description": "🄿 Motorcycle Repair Shop", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-motorcycle.svg?sanitize=true"}, - {"key": "shop", "value": "motorcycle", "description": "🄿 Motorcycle Dealership", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-motorcycle.svg?sanitize=true"}, - {"key": "shop", "value": "music", "description": "🄿 Music Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-compact-disc.svg?sanitize=true"}, - {"key": "shop", "value": "musical_instrument", "description": "🄿 Musical Instrument Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-guitar.svg?sanitize=true"}, - {"key": "shop", "value": "newsagent", "description": "🄿 Newspaper/Magazine Shop", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-newspaper.svg?sanitize=true"}, - {"key": "shop", "value": "nutrition_supplements", "description": "🄿 Nutrition Supplements Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "shop", "value": "optician", "description": "🄿 Optician", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/optician-15.svg?sanitize=true"}, - {"key": "organic", "value": "only", "description": "🄿 Organic Goods Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "shop", "value": "outdoor", "description": "🄿 Outdoors Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/compass.svg?sanitize=true"}, - {"key": "shop", "value": "outpost", "description": "🄿 Online Retailer Outpost", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "shop", "value": "paint", "description": "🄿 Paint Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-paint-roller.svg?sanitize=true"}, - {"key": "shop", "value": "party", "description": "🄿 Party Supply Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-mask.svg?sanitize=true"}, - {"key": "shop", "value": "pastry", "description": "🄿 Pastry Shop", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/bakery-15.svg?sanitize=true"}, - {"key": "shop", "value": "pawnbroker", "description": "🄿 Pawn Shop", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "shop", "value": "perfumery", "description": "🄿 Perfume Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "shop", "value": "pet_grooming", "description": "🄿 Pet Grooming Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/dog-park-15.svg?sanitize=true"}, - {"key": "shop", "value": "pet", "description": "🄿 Pet Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/dog-park-15.svg?sanitize=true"}, - {"key": "shop", "value": "photo", "description": "🄿 Photography Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-camera-retro.svg?sanitize=true"}, - {"key": "shop", "value": "pyrotechnics", "description": "🄿 Fireworks Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "shop", "value": "radiotechnics", "description": "🄿 Radio/Electronic Component Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-microchip.svg?sanitize=true"}, - {"key": "shop", "value": "religion", "description": "🄿 Religious Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "shop", "value": "scuba_diving", "description": "🄿 Scuba Diving Shop", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/scuba_diving.svg?sanitize=true"}, - {"key": "shop", "value": "seafood", "description": "🄿 Seafood Shop", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "shop", "value": "second_hand", "description": "🄿 Consignment/Thrift Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "shop", "value": "sewing", "description": "🄿 Sewing Supply Shop", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "shop", "value": "shoes", "description": "🄿 Shoe Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shoe-15.svg?sanitize=true"}, - {"key": "shop", "value": "sports", "description": "🄿 Sporting Goods Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-futbol.svg?sanitize=true"}, - {"key": "shop", "value": "stationery", "description": "🄿 Stationery Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-paperclip.svg?sanitize=true"}, - {"key": "shop", "value": "storage_rental", "description": "🄿 Storage Rental", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-warehouse.svg?sanitize=true"}, - {"key": "shop", "value": "supermarket", "description": "🄿 Supermarket", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/grocery-15.svg?sanitize=true"}, - {"key": "shop", "value": "tailor", "description": "🄿 Tailor", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/clothing-store-15.svg?sanitize=true"}, - {"key": "shop", "value": "tattoo", "description": "🄿 Tattoo Parlor", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "shop", "value": "tea", "description": "🄿 Tea Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/teahouse-15.svg?sanitize=true"}, - {"key": "shop", "value": "ticket", "description": "🄿 Ticket Seller", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-ticket-alt.svg?sanitize=true"}, - {"key": "shop", "value": "tiles", "description": "🄿 Tile Shop", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "shop", "value": "tobacco", "description": "🄿 Tobacco Shop", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "shop", "value": "toys", "description": "🄿 Toy Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-space-shuttle.svg?sanitize=true"}, - {"key": "shop", "value": "trade", "description": "🄿 Trade Shop", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "shop", "value": "travel_agency", "description": "🄿 Travel Agency", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-suitcase.svg?sanitize=true"}, - {"key": "shop", "value": "tyres", "description": "🄿 Tire Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "shop", "value": "vacuum_cleaner", "description": "🄿 Vacuum Cleaner Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "shop", "value": "variety_store", "description": "🄿 Variety Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "shop", "value": "video_games", "description": "🄿 Video Game Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/gaming-15.svg?sanitize=true"}, - {"key": "shop", "value": "video", "description": "🄿 Video Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/movie_rental.svg?sanitize=true"}, - {"key": "shop", "value": "watches", "description": "🄿 Watches Shop", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/watch-15.svg?sanitize=true"}, - {"key": "shop", "value": "water_sports", "description": "🄿 Watersport/Swim Shop", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "shop", "value": "water", "description": "🄿 Drinking Water Shop", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/the-noun-project/2009234.svg?sanitize=true"}, - {"key": "shop", "value": "weapons", "description": "🄿 Weapon Shop", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/shop-15.svg?sanitize=true"}, - {"key": "shop", "value": "wholesale", "description": "🄿 Wholesale Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/warehouse-15.svg?sanitize=true"}, - {"key": "shop", "value": "window_blind", "description": "🄿 Window Blind Store", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/window.svg?sanitize=true"}, - {"key": "shop", "value": "wine", "description": "🄿 Wine Shop", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/alcohol-shop-15.svg?sanitize=true"}, - {"key": "tactile_paving", "description": "🄿 Tactile Paving, 🄵 Tactile Paving", "object_types": ["node", "way", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/blind.svg?sanitize=true"}, - {"key": "telecom", "value": "data_center", "description": "🄿 Data Center", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-server.svg?sanitize=true"}, - {"key": "tourism", "value": "alpine_hut", "description": "🄿 Alpine Hut", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/lodging-15.svg?sanitize=true"}, - {"key": "tourism", "value": "apartment", "description": "🄿 Guest Apartment / Condo", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/lodging-15.svg?sanitize=true"}, - {"key": "tourism", "value": "aquarium", "description": "🄿 Aquarium", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/aquarium-15.svg?sanitize=true"}, - {"key": "tourism", "value": "artwork", "description": "🄿 Artwork", "object_types": ["node", "way", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/art-gallery-15.svg?sanitize=true"}, - {"key": "artwork_type", "value": "bust", "description": "🄿 Bust", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-user-alt.svg?sanitize=true"}, - {"key": "artwork_type", "value": "graffiti", "description": "🄿 Graffiti", "object_types": ["node", "way", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/art-gallery-15.svg?sanitize=true"}, - {"key": "artwork_type", "value": "installation", "description": "🄿 Art Installation", "object_types": ["node", "way", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/art-gallery-15.svg?sanitize=true"}, - {"key": "artwork_type", "value": "mural", "description": "🄿 Mural", "object_types": ["node", "way", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/art-gallery-15.svg?sanitize=true"}, - {"key": "artwork_type", "value": "sculpture", "description": "🄿 Sculpture", "object_types": ["node", "way", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/art-gallery-15.svg?sanitize=true"}, - {"key": "artwork_type", "value": "statue", "description": "🄿 Statue", "object_types": ["node", "way", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-female.svg?sanitize=true"}, - {"key": "tourism", "value": "attraction", "description": "🄿 Tourist Attraction", "object_types": ["node", "way", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/star-15.svg?sanitize=true"}, - {"key": "torism", "value": "camp_pitch", "description": "🄿 Camp Pitch", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/campsite-15.svg?sanitize=true"}, - {"key": "tourism", "value": "camp_site", "description": "🄿 Campground", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/campsite-15.svg?sanitize=true"}, - {"key": "tourism", "value": "caravan_site", "description": "🄿 RV Park", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/rv_park.svg?sanitize=true"}, - {"key": "tourism", "value": "chalet", "description": "🄿 Holiday Cottage", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/lodging-15.svg?sanitize=true"}, - {"key": "tourism", "value": "gallery", "description": "🄿 Art Gallery", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/art-gallery-15.svg?sanitize=true"}, - {"key": "tourism", "value": "guest_house", "description": "🄿 Guest House", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/lodging-15.svg?sanitize=true"}, - {"key": "tourism", "value": "hostel", "description": "🄿 Hostel", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/lodging-15.svg?sanitize=true"}, - {"key": "tourism", "value": "hotel", "description": "🄿 Hotel", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-concierge-bell.svg?sanitize=true"}, - {"key": "tourism", "value": "information", "description": "🄿 Information", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/information-15.svg?sanitize=true"}, - {"key": "information", "value": "board", "description": "🄿 Information Board", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/information-15.svg?sanitize=true"}, - {"key": "information", "value": "guidepost", "description": "🄿 Guidepost", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-map-signs.svg?sanitize=true"}, - {"key": "information", "value": "map", "description": "🄿 Map", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-map.svg?sanitize=true"}, - {"key": "information", "value": "office", "description": "🄿 Tourist Information Office", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/information-15.svg?sanitize=true"}, - {"key": "information", "value": "route_marker", "description": "🄿 Trail Marker", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/information-15.svg?sanitize=true"}, - {"key": "information", "value": "terminal", "description": "🄿 Information Terminal", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/information-15.svg?sanitize=true"}, - {"key": "tourism", "value": "motel", "description": "🄿 Motel", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/lodging-15.svg?sanitize=true"}, - {"key": "tourism", "value": "museum", "description": "🄿 Museum", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/museum.svg?sanitize=true"}, - {"key": "tourism", "value": "picnic_site", "description": "🄿 Picnic Site", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/picnic-site-15.svg?sanitize=true"}, - {"key": "tourism", "value": "theme_park", "description": "🄿 Theme Park", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/amusement-park-15.svg?sanitize=true"}, - {"key": "tourism", "value": "trail_riding_station", "description": "🄿 Trail Riding Station", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/horse-riding-15.svg?sanitize=true"}, - {"key": "tourism", "value": "viewpoint", "description": "🄿 Viewpoint", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/binoculars.svg?sanitize=true"}, - {"key": "tourism", "value": "wilderness_hut", "description": "🄿 Wilderness Hut", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/lodging-15.svg?sanitize=true"}, - {"key": "tourism", "value": "zoo", "description": "🄿 Zoo", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/zoo.svg?sanitize=true"}, - {"key": "zoo", "value": "petting_zoo", "description": "🄿 Petting Zoo", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-horse.svg?sanitize=true"}, - {"key": "zoo", "value": "safari_park", "description": "🄿 Safari Park", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/zoo.svg?sanitize=true"}, - {"key": "zoo", "value": "wildlife_park", "description": "🄿 Wildlife Park", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-frog.svg?sanitize=true"}, - {"key": "traffic_calming", "description": "🄿 Traffic Calming, 🄵 Type", "object_types": ["node", "way", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/diamond.svg?sanitize=true"}, - {"key": "traffic_calming", "value": "bump", "description": "🄿 Speed Bump", "object_types": ["node", "way"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/diamond.svg?sanitize=true"}, - {"key": "traffic_calming", "value": "chicane", "description": "🄿 Traffic Chicane", "object_types": ["node", "way", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/diamond.svg?sanitize=true"}, - {"key": "traffic_calming", "value": "choker", "description": "🄿 Traffic Choker", "object_types": ["node", "way", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/diamond.svg?sanitize=true"}, - {"key": "traffic_calming", "value": "cushion", "description": "🄿 Speed Cushion", "object_types": ["node", "way"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/diamond.svg?sanitize=true"}, - {"key": "traffic_calming", "value": "dip", "description": "🄿 Dip", "object_types": ["node", "way"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/diamond.svg?sanitize=true"}, - {"key": "traffic_calming", "value": "hump", "description": "🄿 Speed Hump", "object_types": ["node", "way"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/diamond.svg?sanitize=true"}, - {"key": "traffic_calming", "value": "island", "description": "🄿 Traffic Island", "object_types": ["node", "way", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/diamond.svg?sanitize=true"}, - {"key": "traffic_calming", "value": "rumble_strip", "description": "🄿 Rumble Strip", "object_types": ["node", "way"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/diamond.svg?sanitize=true"}, - {"key": "traffic_sign", "description": "🄿 Traffic Sign, 🄵 Traffic Sign", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/square-stroked-15.svg?sanitize=true"}, - {"key": "traffic_sign", "value": "city_limit", "description": "🄿 City Limit Sign", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/square-stroked-15.svg?sanitize=true"}, - {"key": "traffic_sign", "value": "maxspeed", "description": "🄿 Speed Limit Sign", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/square-stroked-15.svg?sanitize=true"}, - {"key": "type", "value": "multipolygon", "description": "🄿 Multipolygon (unsearchable)", "object_types": ["area", "relation"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/multipolygon.svg?sanitize=true"}, - {"key": "type", "value": "boundary", "description": "🄿 Boundary", "object_types": ["relation"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/boundary.svg?sanitize=true"}, - {"key": "type", "value": "enforcement", "description": "🄿 Enforcement", "object_types": ["relation"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/relation.svg?sanitize=true"}, - {"key": "public_transport", "value": "stop_area_group", "description": "🄿 Transit Stop Area Group", "object_types": ["relation"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/relation.svg?sanitize=true"}, - {"key": "type", "value": "restriction", "description": "🄿 Restriction", "object_types": ["relation"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/restriction.svg?sanitize=true"}, - {"key": "restriction", "value": "no_left_turn", "description": "🄿 No Left Turn", "object_types": ["relation"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/restriction-no-left-turn.svg?sanitize=true"}, - {"key": "restriction", "value": "no_right_turn", "description": "🄿 No Right Turn", "object_types": ["relation"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/restriction-no-right-turn.svg?sanitize=true"}, - {"key": "restriction", "value": "no_straight_on", "description": "🄿 No Straight On", "object_types": ["relation"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/restriction-no-straight-on.svg?sanitize=true"}, - {"key": "restriction", "value": "no_u_turn", "description": "🄿 No U-turn", "object_types": ["relation"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/restriction-no-u-turn.svg?sanitize=true"}, - {"key": "restriction", "value": "only_left_turn", "description": "🄿 Only Left Turn", "object_types": ["relation"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/restriction-only-left-turn.svg?sanitize=true"}, - {"key": "restriction", "value": "only_right_turn", "description": "🄿 Only Right Turn", "object_types": ["relation"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/restriction-only-right-turn.svg?sanitize=true"}, - {"key": "restriction", "value": "only_straight_on", "description": "🄿 Only Straight On", "object_types": ["relation"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/restriction-only-straight-on.svg?sanitize=true"}, - {"key": "restriction", "value": "only_u_turn", "description": "🄿 Only U-turn", "object_types": ["relation"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/restriction-only-u-turn.svg?sanitize=true"}, - {"key": "type", "value": "route_master", "description": "🄿 Route Master", "object_types": ["relation"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/route-master.svg?sanitize=true"}, - {"key": "type", "value": "route", "description": "🄿 Route", "object_types": ["relation"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/route.svg?sanitize=true"}, - {"key": "route", "value": "bicycle", "description": "🄿 Cycle Route", "object_types": ["relation"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/bicycle-15.svg?sanitize=true"}, - {"key": "route", "value": "bus", "description": "🄿 Bus Route", "object_types": ["relation"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/bus-15.svg?sanitize=true"}, - {"key": "route", "value": "detour", "description": "🄿 Detour Route", "object_types": ["relation"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/route-detour.svg?sanitize=true"}, - {"key": "route", "value": "foot", "description": "🄿 Foot Route", "object_types": ["relation"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/pedestrian.svg?sanitize=true"}, - {"key": "route", "value": "hiking", "description": "🄿 Hiking Route", "object_types": ["relation"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-hiking.svg?sanitize=true"}, - {"key": "route", "value": "horse", "description": "🄿 Riding Route", "object_types": ["relation"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/horse-riding-15.svg?sanitize=true"}, - {"key": "route", "value": "light_rail", "description": "🄿 Light Rail Route", "object_types": ["relation"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/light_rail.svg?sanitize=true"}, - {"key": "route", "value": "monorail", "description": "🄿 Monorail Route", "object_types": ["relation"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/monorail.svg?sanitize=true"}, - {"key": "route", "value": "pipeline", "description": "🄿 Pipeline Route", "object_types": ["relation"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/pipeline-line.svg?sanitize=true"}, - {"key": "route", "value": "piste", "description": "🄿 Piste/Ski Route", "object_types": ["relation"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/fontawesome/fas-skiing.svg?sanitize=true"}, - {"key": "route", "value": "power", "description": "🄿 Power Route", "object_types": ["relation"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/power-line.svg?sanitize=true"}, - {"key": "route", "value": "road", "description": "🄿 Road Route", "object_types": ["relation"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/highway-unclassified.svg?sanitize=true"}, - {"key": "route", "value": "subway", "description": "🄿 Subway Route", "object_types": ["relation"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/subway.svg?sanitize=true"}, - {"key": "route", "value": "train", "description": "🄿 Train Route", "object_types": ["relation"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/railway-rail.svg?sanitize=true"}, - {"key": "route", "value": "tram", "description": "🄿 Tram Route", "object_types": ["relation"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/tram.svg?sanitize=true"}, - {"key": "type", "value": "site", "description": "🄿 Site", "object_types": ["relation"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/relation.svg?sanitize=true"}, - {"key": "type", "value": "waterway", "description": "🄿 Waterway", "object_types": ["relation"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/waterway-stream.svg?sanitize=true"}, - {"key": "waterway", "value": "riverbank", "description": "🄿 Riverbank (unsearchable), 🄳 ➜ natural=water + water=river", "object_types": ["area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/water-15.svg?sanitize=true"}, - {"key": "waterway", "value": "boatyard", "description": "🄿 Boatyard", "object_types": ["area", "node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/harbor-15.svg?sanitize=true"}, - {"key": "waterway", "value": "canal", "description": "🄿 Canal", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/waterway-canal.svg?sanitize=true"}, - {"key": "lock", "value": "yes", "description": "🄿 Canal Lock", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/waterway-canal.svg?sanitize=true"}, - {"key": "waterway", "value": "dam", "description": "🄿 Dam", "object_types": ["node", "way", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/dam-15.svg?sanitize=true"}, - {"key": "waterway", "value": "ditch", "description": "🄿 Ditch", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/waterway-ditch.svg?sanitize=true"}, - {"key": "waterway", "value": "dock", "description": "🄿 Wet Dock / Dry Dock", "object_types": ["area", "node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/harbor-15.svg?sanitize=true"}, - {"key": "waterway", "value": "drain", "description": "🄿 Drain", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/waterway-ditch.svg?sanitize=true"}, - {"key": "waterway", "value": "fuel", "description": "🄿 Marine Fuel Station", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/fuel-15.svg?sanitize=true"}, - {"key": "waterway", "value": "lock_gate", "description": "🄿 Lock Gate", "object_types": ["node", "way"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/dam-15.svg?sanitize=true"}, - {"key": "waterway", "value": "milestone", "description": "🄿 Waterway Milestone", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/milestone.svg?sanitize=true"}, - {"key": "waterway", "value": "river", "description": "🄿 River", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/waterway-river.svg?sanitize=true"}, - {"key": "waterway", "value": "sanitary_dump_station", "description": "🄿 Marine Toilet Disposal", "object_types": ["node", "area"], "icon_url": "https://raw.githubusercontent.com/bhousel/temaki/master/icons/storage_tank.svg?sanitize=true"}, - {"key": "intermittent", "value": "yes", "description": "🄿 Intermittent Stream", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/waterway-stream.svg?sanitize=true"}, - {"key": "waterway", "value": "stream", "description": "🄿 Stream", "object_types": ["way"], "icon_url": "https://raw.githubusercontent.com/openstreetmap/iD/master/svg/iD-sprite/presets/waterway-stream.svg?sanitize=true"}, - {"key": "waterway", "value": "water_point", "description": "🄿 Marine Drinking Water", "object_types": ["area", "node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/drinking-water-15.svg?sanitize=true"}, - {"key": "waterway", "value": "waterfall", "description": "🄿 Waterfall", "object_types": ["node"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/waterfall-15.svg?sanitize=true"}, - {"key": "waterway", "value": "weir", "description": "🄿 Weir", "object_types": ["node", "way"], "icon_url": "https://raw.githubusercontent.com/mapbox/maki/master/icons/dam-15.svg?sanitize=true"}, + {"key": "shop", "description": "🄿 Shop, 🄵 Type", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "boutique", "description": "🄿 Boutique (unsearchable), 🄳 ➜ shop=clothes", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "fashion", "description": "🄿 Fashion Store (unsearchable), 🄳 ➜ shop=clothes", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "fishmonger", "description": "🄿 Fishmonger (unsearchable), 🄳 ➜ shop=seafood", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "furnace", "description": "🄿 Furnace Store (unsearchable), 🄳 ➜ shop=fireplace", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "vacant", "description": "🄿 Vacant Shop (unsearchable)", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "agrarian", "description": "🄿 Farm Supply Shop", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-tractor.svg"}, + {"key": "shop", "value": "alcohol", "description": "🄿 Liquor Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-wine-bottle.svg"}, + {"key": "shop", "value": "anime", "description": "🄿 Anime Shop", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-dragon.svg"}, + {"key": "shop", "value": "antiques", "description": "🄿 Antiques Shop", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "appliance", "description": "🄿 Appliance Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "art", "description": "🄿 Art Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "baby_goods", "description": "🄿 Baby Goods Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-baby-carriage.svg"}, + {"key": "shop", "value": "bag", "description": "🄿 Bag/Luggage Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-suitcase-rolling.svg"}, + {"key": "shop", "value": "bakery", "description": "🄿 Bakery", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/bakery-15.svg"}, + {"key": "shop", "value": "bathroom_furnishing", "description": "🄿 Bathroom Furnishing Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-bath.svg"}, + {"key": "shop", "value": "beauty", "description": "🄿 Beauty Shop", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "beauty", "value": "nails", "description": "🄿 Nail Salon", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "beauty", "value": "tanning", "description": "🄿 Tanning Salon", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "bed", "description": "🄿 Bedding/Mattress Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/lodging-15.svg"}, + {"key": "shop", "value": "beverages", "description": "🄿 Beverage Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "bicycle", "description": "🄿 Bicycle Shop", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/bicycle-15.svg"}, + {"key": "shop", "value": "boat", "description": "🄿 Boat Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/boating.svg"}, + {"key": "shop", "value": "bookmaker", "description": "🄿 Bookmaker", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "books", "description": "🄿 Book Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-book.svg"}, + {"key": "shop", "value": "butcher", "description": "🄿 Butcher", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-bacon.svg"}, + {"key": "shop", "value": "candles", "description": "🄿 Candle Shop", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-burn.svg"}, + {"key": "shop", "value": "cannabis", "description": "🄿 Cannabis Shop", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-cannabis.svg"}, + {"key": "shop", "value": "car_parts", "description": "🄿 Car Parts Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-car-battery.svg"}, + {"key": "shop", "value": "car_repair", "description": "🄿 Car Repair Shop", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/car-repair-15.svg"}, + {"key": "shop", "value": "car", "description": "🄿 Car Dealership", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/car-15.svg"}, + {"key": "shop", "value": "caravan", "description": "🄿 RV Dealership", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/rv_park.svg"}, + {"key": "shop", "value": "carpet", "description": "🄿 Carpet Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "catalogue", "description": "🄿 Catalog Shop", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "charity", "description": "🄿 Charity Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "cheese", "description": "🄿 Cheese Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-cheese.svg"}, + {"key": "shop", "value": "chemist", "description": "🄿 Drugstore", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-shopping-basket.svg"}, + {"key": "shop", "value": "chocolate", "description": "🄿 Chocolate Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "clothes", "description": "🄿 Clothing Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/clothing-store-15.svg"}, + {"key": "clothes", "value": "underwear", "description": "🄿 Underwear Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/clothing-store-15.svg"}, + {"key": "shop", "value": "coffee", "description": "🄿 Coffee Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "computer", "description": "🄿 Computer Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-laptop.svg"}, + {"key": "shop", "value": "confectionery", "description": "🄿 Candy Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/confectionery-15.svg"}, + {"key": "shop", "value": "convenience", "description": "🄿 Convenience Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-shopping-basket.svg"}, + {"key": "shop", "value": "copyshop", "description": "🄿 Copy Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-print.svg"}, + {"key": "shop", "value": "cosmetics", "description": "🄿 Cosmetics Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "country_store", "description": "🄿 Country Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "craft", "description": "🄿 Arts and Crafts Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-palette.svg"}, + {"key": "shop", "value": "curtain", "description": "🄿 Curtain Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "dairy", "description": "🄿 Dairy Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-cheese.svg"}, + {"key": "shop", "value": "deli", "description": "🄿 Deli", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/restaurant-15.svg"}, + {"key": "shop", "value": "department_store", "description": "🄿 Department Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "doityourself", "description": "🄿 DIY Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/tools.svg"}, + {"key": "shop", "value": "dry_cleaning", "description": "🄿 Dry Cleaner", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/clothes_hanger.svg"}, + {"key": "shop", "value": "e-cigarette", "description": "🄿 E-Cigarette Shop", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "electronics", "description": "🄿 Electronics Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-plug.svg"}, + {"key": "shop", "value": "erotic", "description": "🄿 Erotic Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "fabric", "description": "🄿 Fabric Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-tape.svg"}, + {"key": "shop", "value": "farm", "description": "🄿 Produce Stand", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "fashion_accessories", "description": "🄿 Fashion Accessories Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "fireplace", "description": "🄿 Fireplace Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "fishing", "description": "🄿 Fishing Shop", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "florist", "description": "🄿 Florist", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/florist-15.svg"}, + {"key": "shop", "value": "frame", "description": "🄿 Framing Shop", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-vector-square.svg"}, + {"key": "shop", "value": "frozen_food", "description": "🄿 Frozen Food", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "fuel", "description": "🄿 Fuel Shop", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "funeral_directors", "description": "🄿 Funeral Home", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/cemetery-15.svg"}, + {"key": "shop", "value": "furniture", "description": "🄿 Furniture Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-couch.svg"}, + {"key": "shop", "value": "games", "description": "🄿 Tabletop Game Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-dice.svg"}, + {"key": "shop", "value": "garden_centre", "description": "🄿 Garden Center", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/garden-centre-15.svg"}, + {"key": "shop", "value": "gas", "description": "🄿 Bottled Gas Shop", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "general", "description": "🄿 General Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "gift", "description": "🄿 Gift Shop", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/gift-15.svg"}, + {"key": "shop", "value": "greengrocer", "description": "🄿 Greengrocer", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-carrot.svg"}, + {"key": "shop", "value": "hairdresser_supply", "description": "🄿 Hairdresser Supply Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "hairdresser", "description": "🄿 Hairdresser", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/beauty_salon.svg"}, + {"key": "shop", "value": "hardware", "description": "🄿 Hardware Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/tools.svg"}, + {"key": "shop", "value": "health_food", "description": "🄿 Health Food Shop", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "hearing_aids", "description": "🄿 Hearing Aids Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "herbalist", "description": "🄿 Herbalist", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-leaf.svg"}, + {"key": "shop", "value": "hifi", "description": "🄿 Hifi Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "hobby", "description": "🄿 Hobby Shop", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-dragon.svg"}, + {"key": "shop", "value": "houseware", "description": "🄿 Houseware Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-blender.svg"}, + {"key": "shop", "value": "hunting", "description": "🄿 Hunting Shop", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "interior_decoration", "description": "🄿 Interior Decoration Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "jewelry", "description": "🄿 Jewelry Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/jewelry-store-15.svg"}, + {"key": "shop", "value": "kiosk", "description": "🄿 Kiosk", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "kitchen", "description": "🄿 Kitchen Design Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "laundry", "description": "🄿 Laundry", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/laundry-15.svg"}, + {"key": "self_service", "value": "yes", "description": "🄿 Self-Service Laundry", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/laundry-15.svg"}, + {"key": "shop", "value": "leather", "description": "🄿 Leather Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "lighting", "description": "🄿 Lighting Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/far-lightbulb.svg"}, + {"key": "shop", "value": "locksmith", "description": "🄿 Locksmith", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-key.svg"}, + {"key": "shop", "value": "lottery", "description": "🄿 Lottery Shop", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "mall", "description": "🄿 Mall", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "massage", "description": "🄿 Massage Shop", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/spa.svg"}, + {"key": "shop", "value": "medical_supply", "description": "🄿 Medical Supply Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "military_surplus", "description": "🄿 Military Surplus Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/military.svg"}, + {"key": "shop", "value": "mobile_phone", "description": "🄿 Mobile Phone Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-mobile-alt.svg"}, + {"key": "shop", "value": "money_lender", "description": "🄿 Money Lender", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/bank-15.svg"}, + {"key": "shop", "value": "motorcycle_repair", "description": "🄿 Motorcycle Repair Shop", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-motorcycle.svg"}, + {"key": "shop", "value": "motorcycle", "description": "🄿 Motorcycle Dealership", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-motorcycle.svg"}, + {"key": "shop", "value": "music", "description": "🄿 Music Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-compact-disc.svg"}, + {"key": "shop", "value": "musical_instrument", "description": "🄿 Musical Instrument Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-guitar.svg"}, + {"key": "shop", "value": "newsagent", "description": "🄿 Newspaper/Magazine Shop", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-newspaper.svg"}, + {"key": "shop", "value": "nutrition_supplements", "description": "🄿 Nutrition Supplements Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "optician", "description": "🄿 Optician", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/optician-15.svg"}, + {"key": "organic", "value": "only", "description": "🄿 Organic Goods Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "outdoor", "description": "🄿 Outdoors Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/compass.svg"}, + {"key": "shop", "value": "outpost", "description": "🄿 Online Retailer Outpost", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "paint", "description": "🄿 Paint Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-paint-roller.svg"}, + {"key": "shop", "value": "party", "description": "🄿 Party Supply Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-mask.svg"}, + {"key": "shop", "value": "pastry", "description": "🄿 Pastry Shop", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/bakery-15.svg"}, + {"key": "shop", "value": "pawnbroker", "description": "🄿 Pawn Shop", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "perfumery", "description": "🄿 Perfume Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "pet_grooming", "description": "🄿 Pet Grooming Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/dog-park-15.svg"}, + {"key": "shop", "value": "pet", "description": "🄿 Pet Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/dog-park-15.svg"}, + {"key": "shop", "value": "photo", "description": "🄿 Photography Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-camera-retro.svg"}, + {"key": "shop", "value": "pyrotechnics", "description": "🄿 Fireworks Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "radiotechnics", "description": "🄿 Radio/Electronic Component Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-microchip.svg"}, + {"key": "shop", "value": "religion", "description": "🄿 Religious Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "scuba_diving", "description": "🄿 Scuba Diving Shop", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/scuba_diving.svg"}, + {"key": "shop", "value": "seafood", "description": "🄿 Seafood Shop", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "second_hand", "description": "🄿 Consignment/Thrift Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "sewing", "description": "🄿 Sewing Supply Shop", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "shoes", "description": "🄿 Shoe Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shoe-15.svg"}, + {"key": "shop", "value": "sports", "description": "🄿 Sporting Goods Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-futbol.svg"}, + {"key": "shop", "value": "stationery", "description": "🄿 Stationery Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-paperclip.svg"}, + {"key": "shop", "value": "storage_rental", "description": "🄿 Storage Rental", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-warehouse.svg"}, + {"key": "shop", "value": "supermarket", "description": "🄿 Supermarket", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/grocery-15.svg"}, + {"key": "shop", "value": "tailor", "description": "🄿 Tailor", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/clothing-store-15.svg"}, + {"key": "shop", "value": "tattoo", "description": "🄿 Tattoo Parlor", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "tea", "description": "🄿 Tea Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/teahouse-15.svg"}, + {"key": "shop", "value": "ticket", "description": "🄿 Ticket Seller", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-ticket-alt.svg"}, + {"key": "shop", "value": "tiles", "description": "🄿 Tile Shop", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "tobacco", "description": "🄿 Tobacco Shop", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "toys", "description": "🄿 Toy Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-space-shuttle.svg"}, + {"key": "shop", "value": "trade", "description": "🄿 Trade Shop", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "travel_agency", "description": "🄿 Travel Agency", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-suitcase.svg"}, + {"key": "shop", "value": "tyres", "description": "🄿 Tire Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "vacuum_cleaner", "description": "🄿 Vacuum Cleaner Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "variety_store", "description": "🄿 Variety Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "video_games", "description": "🄿 Video Game Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/gaming-15.svg"}, + {"key": "shop", "value": "video", "description": "🄿 Video Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/movie_rental.svg"}, + {"key": "shop", "value": "watches", "description": "🄿 Watches Shop", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/watch-15.svg"}, + {"key": "shop", "value": "water_sports", "description": "🄿 Watersport/Swim Shop", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "water", "description": "🄿 Drinking Water Shop", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/the-noun-project/2009234.svg"}, + {"key": "shop", "value": "weapons", "description": "🄿 Weapon Shop", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "wholesale", "description": "🄿 Wholesale Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/warehouse-15.svg"}, + {"key": "shop", "value": "window_blind", "description": "🄿 Window Blind Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/window.svg"}, + {"key": "shop", "value": "wine", "description": "🄿 Wine Shop", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/alcohol-shop-15.svg"}, + {"key": "tactile_paving", "description": "🄿 Tactile Paving, 🄵 Tactile Paving", "object_types": ["node", "way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/blind.svg"}, + {"key": "telecom", "value": "data_center", "description": "🄿 Data Center", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-server.svg"}, + {"key": "tourism", "value": "alpine_hut", "description": "🄿 Alpine Hut", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/lodging-15.svg"}, + {"key": "tourism", "value": "apartment", "description": "🄿 Guest Apartment / Condo", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/lodging-15.svg"}, + {"key": "tourism", "value": "aquarium", "description": "🄿 Aquarium", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/aquarium-15.svg"}, + {"key": "tourism", "value": "artwork", "description": "🄿 Artwork", "object_types": ["node", "way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/art-gallery-15.svg"}, + {"key": "artwork_type", "value": "bust", "description": "🄿 Bust", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-user-alt.svg"}, + {"key": "artwork_type", "value": "graffiti", "description": "🄿 Graffiti", "object_types": ["node", "way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/art-gallery-15.svg"}, + {"key": "artwork_type", "value": "installation", "description": "🄿 Art Installation", "object_types": ["node", "way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/art-gallery-15.svg"}, + {"key": "artwork_type", "value": "mural", "description": "🄿 Mural", "object_types": ["node", "way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/art-gallery-15.svg"}, + {"key": "artwork_type", "value": "sculpture", "description": "🄿 Sculpture", "object_types": ["node", "way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/art-gallery-15.svg"}, + {"key": "artwork_type", "value": "statue", "description": "🄿 Statue", "object_types": ["node", "way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-female.svg"}, + {"key": "tourism", "value": "attraction", "description": "🄿 Tourist Attraction", "object_types": ["node", "way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/star-15.svg"}, + {"key": "torism", "value": "camp_pitch", "description": "🄿 Camp Pitch", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/campsite-15.svg"}, + {"key": "tourism", "value": "camp_site", "description": "🄿 Campground", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/campsite-15.svg"}, + {"key": "tourism", "value": "caravan_site", "description": "🄿 RV Park", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/rv_park.svg"}, + {"key": "tourism", "value": "chalet", "description": "🄿 Holiday Cottage", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/lodging-15.svg"}, + {"key": "tourism", "value": "gallery", "description": "🄿 Art Gallery", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/art-gallery-15.svg"}, + {"key": "tourism", "value": "guest_house", "description": "🄿 Guest House", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/lodging-15.svg"}, + {"key": "tourism", "value": "hostel", "description": "🄿 Hostel", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/lodging-15.svg"}, + {"key": "tourism", "value": "hotel", "description": "🄿 Hotel", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-concierge-bell.svg"}, + {"key": "tourism", "value": "information", "description": "🄿 Information", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/information-15.svg"}, + {"key": "information", "value": "board", "description": "🄿 Information Board", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/information-15.svg"}, + {"key": "information", "value": "guidepost", "description": "🄿 Guidepost", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-map-signs.svg"}, + {"key": "information", "value": "map", "description": "🄿 Map", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-map.svg"}, + {"key": "information", "value": "office", "description": "🄿 Tourist Information Office", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/information-15.svg"}, + {"key": "information", "value": "route_marker", "description": "🄿 Trail Marker", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/information-15.svg"}, + {"key": "information", "value": "terminal", "description": "🄿 Information Terminal", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/information-15.svg"}, + {"key": "tourism", "value": "motel", "description": "🄿 Motel", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/lodging-15.svg"}, + {"key": "tourism", "value": "museum", "description": "🄿 Museum", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/museum.svg"}, + {"key": "tourism", "value": "picnic_site", "description": "🄿 Picnic Site", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/picnic-site-15.svg"}, + {"key": "tourism", "value": "theme_park", "description": "🄿 Theme Park", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/amusement-park-15.svg"}, + {"key": "tourism", "value": "trail_riding_station", "description": "🄿 Trail Riding Station", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/horse-riding-15.svg"}, + {"key": "tourism", "value": "viewpoint", "description": "🄿 Viewpoint", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/binoculars.svg"}, + {"key": "tourism", "value": "wilderness_hut", "description": "🄿 Wilderness Hut", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/lodging-15.svg"}, + {"key": "tourism", "value": "zoo", "description": "🄿 Zoo", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/zoo.svg"}, + {"key": "zoo", "value": "petting_zoo", "description": "🄿 Petting Zoo", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-horse.svg"}, + {"key": "zoo", "value": "safari_park", "description": "🄿 Safari Park", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/zoo.svg"}, + {"key": "zoo", "value": "wildlife_park", "description": "🄿 Wildlife Park", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-frog.svg"}, + {"key": "traffic_calming", "description": "🄿 Traffic Calming, 🄵 Type", "object_types": ["node", "way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/diamond.svg"}, + {"key": "traffic_calming", "value": "bump", "description": "🄿 Speed Bump", "object_types": ["node", "way"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/diamond.svg"}, + {"key": "traffic_calming", "value": "chicane", "description": "🄿 Traffic Chicane", "object_types": ["node", "way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/diamond.svg"}, + {"key": "traffic_calming", "value": "choker", "description": "🄿 Traffic Choker", "object_types": ["node", "way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/diamond.svg"}, + {"key": "traffic_calming", "value": "cushion", "description": "🄿 Speed Cushion", "object_types": ["node", "way"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/diamond.svg"}, + {"key": "traffic_calming", "value": "dip", "description": "🄿 Dip", "object_types": ["node", "way"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/diamond.svg"}, + {"key": "traffic_calming", "value": "hump", "description": "🄿 Speed Hump", "object_types": ["node", "way"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/diamond.svg"}, + {"key": "traffic_calming", "value": "island", "description": "🄿 Traffic Island", "object_types": ["node", "way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/diamond.svg"}, + {"key": "traffic_calming", "value": "rumble_strip", "description": "🄿 Rumble Strip", "object_types": ["node", "way"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/diamond.svg"}, + {"key": "traffic_sign", "description": "🄿 Traffic Sign, 🄵 Traffic Sign", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/square-stroked-15.svg"}, + {"key": "traffic_sign", "value": "city_limit", "description": "🄿 City Limit Sign", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/square-stroked-15.svg"}, + {"key": "traffic_sign", "value": "maxspeed", "description": "🄿 Speed Limit Sign", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/square-stroked-15.svg"}, + {"key": "type", "value": "multipolygon", "description": "🄿 Multipolygon (unsearchable)", "object_types": ["area", "relation"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/multipolygon.svg"}, + {"key": "type", "value": "boundary", "description": "🄿 Boundary", "object_types": ["relation"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/boundary.svg"}, + {"key": "type", "value": "enforcement", "description": "🄿 Enforcement", "object_types": ["relation"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/relation.svg"}, + {"key": "public_transport", "value": "stop_area_group", "description": "🄿 Transit Stop Area Group", "object_types": ["relation"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/relation.svg"}, + {"key": "type", "value": "restriction", "description": "🄿 Restriction", "object_types": ["relation"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/restriction.svg"}, + {"key": "restriction", "value": "no_left_turn", "description": "🄿 No Left Turn", "object_types": ["relation"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/restriction-no-left-turn.svg"}, + {"key": "restriction", "value": "no_right_turn", "description": "🄿 No Right Turn", "object_types": ["relation"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/restriction-no-right-turn.svg"}, + {"key": "restriction", "value": "no_straight_on", "description": "🄿 No Straight On", "object_types": ["relation"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/restriction-no-straight-on.svg"}, + {"key": "restriction", "value": "no_u_turn", "description": "🄿 No U-turn", "object_types": ["relation"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/restriction-no-u-turn.svg"}, + {"key": "restriction", "value": "only_left_turn", "description": "🄿 Only Left Turn", "object_types": ["relation"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/restriction-only-left-turn.svg"}, + {"key": "restriction", "value": "only_right_turn", "description": "🄿 Only Right Turn", "object_types": ["relation"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/restriction-only-right-turn.svg"}, + {"key": "restriction", "value": "only_straight_on", "description": "🄿 Only Straight On", "object_types": ["relation"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/restriction-only-straight-on.svg"}, + {"key": "restriction", "value": "only_u_turn", "description": "🄿 Only U-turn", "object_types": ["relation"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/restriction-only-u-turn.svg"}, + {"key": "type", "value": "route_master", "description": "🄿 Route Master", "object_types": ["relation"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/route-master.svg"}, + {"key": "type", "value": "route", "description": "🄿 Route", "object_types": ["relation"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/route.svg"}, + {"key": "route", "value": "bicycle", "description": "🄿 Cycle Route", "object_types": ["relation"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/bicycle-15.svg"}, + {"key": "route", "value": "bus", "description": "🄿 Bus Route", "object_types": ["relation"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/bus-15.svg"}, + {"key": "route", "value": "detour", "description": "🄿 Detour Route", "object_types": ["relation"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/route-detour.svg"}, + {"key": "route", "value": "foot", "description": "🄿 Foot Route", "object_types": ["relation"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/pedestrian.svg"}, + {"key": "route", "value": "hiking", "description": "🄿 Hiking Route", "object_types": ["relation"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-hiking.svg"}, + {"key": "route", "value": "horse", "description": "🄿 Riding Route", "object_types": ["relation"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/horse-riding-15.svg"}, + {"key": "route", "value": "light_rail", "description": "🄿 Light Rail Route", "object_types": ["relation"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/light_rail.svg"}, + {"key": "route", "value": "monorail", "description": "🄿 Monorail Route", "object_types": ["relation"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/monorail.svg"}, + {"key": "route", "value": "pipeline", "description": "🄿 Pipeline Route", "object_types": ["relation"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/pipeline-line.svg"}, + {"key": "route", "value": "piste", "description": "🄿 Piste/Ski Route", "object_types": ["relation"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-skiing.svg"}, + {"key": "route", "value": "power", "description": "🄿 Power Route", "object_types": ["relation"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/power-line.svg"}, + {"key": "route", "value": "road", "description": "🄿 Road Route", "object_types": ["relation"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/highway-unclassified.svg"}, + {"key": "route", "value": "subway", "description": "🄿 Subway Route", "object_types": ["relation"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/subway.svg"}, + {"key": "route", "value": "train", "description": "🄿 Train Route", "object_types": ["relation"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/railway-rail.svg"}, + {"key": "route", "value": "tram", "description": "🄿 Tram Route", "object_types": ["relation"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/tram.svg"}, + {"key": "type", "value": "site", "description": "🄿 Site", "object_types": ["relation"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/relation.svg"}, + {"key": "type", "value": "waterway", "description": "🄿 Waterway", "object_types": ["relation"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/waterway-stream.svg"}, + {"key": "waterway", "value": "riverbank", "description": "🄿 Riverbank (unsearchable), 🄳 ➜ natural=water + water=river", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/water-15.svg"}, + {"key": "waterway", "value": "boatyard", "description": "🄿 Boatyard", "object_types": ["area", "node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/harbor-15.svg"}, + {"key": "waterway", "value": "canal", "description": "🄿 Canal", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/waterway-canal.svg"}, + {"key": "lock", "value": "yes", "description": "🄿 Canal Lock", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/waterway-canal.svg"}, + {"key": "waterway", "value": "dam", "description": "🄿 Dam", "object_types": ["node", "way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/dam-15.svg"}, + {"key": "waterway", "value": "ditch", "description": "🄿 Ditch", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/waterway-ditch.svg"}, + {"key": "waterway", "value": "dock", "description": "🄿 Wet Dock / Dry Dock", "object_types": ["area", "node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/harbor-15.svg"}, + {"key": "waterway", "value": "drain", "description": "🄿 Drain", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/waterway-ditch.svg"}, + {"key": "waterway", "value": "fuel", "description": "🄿 Marine Fuel Station", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/fuel-15.svg"}, + {"key": "waterway", "value": "lock_gate", "description": "🄿 Lock Gate", "object_types": ["node", "way"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/dam-15.svg"}, + {"key": "waterway", "value": "milestone", "description": "🄿 Waterway Milestone", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/milestone.svg"}, + {"key": "waterway", "value": "river", "description": "🄿 River", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/waterway-river.svg"}, + {"key": "waterway", "value": "sanitary_dump_station", "description": "🄿 Marine Toilet Disposal", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/storage_tank.svg"}, + {"key": "intermittent", "value": "yes", "description": "🄿 Intermittent Stream", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/waterway-stream.svg"}, + {"key": "waterway", "value": "stream", "description": "🄿 Stream", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/iD-sprite/presets/waterway-stream.svg"}, + {"key": "waterway", "value": "water_point", "description": "🄿 Marine Drinking Water", "object_types": ["area", "node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/drinking-water-15.svg"}, + {"key": "waterway", "value": "waterfall", "description": "🄿 Waterfall", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/waterfall-15.svg"}, + {"key": "waterway", "value": "weir", "description": "🄿 Weir", "object_types": ["node", "way"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/dam-15.svg"}, {"key": "access", "description": "🄵 Allowed Access"}, {"key": "access", "value": "yes", "description": "🄵 Allowed Access"}, {"key": "access", "value": "permissive", "description": "🄵 Allowed Access"}, From f8acda831a9080dcc4133614ceaef057299227de Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Mon, 1 Jul 2019 13:08:00 -0400 Subject: [PATCH 115/774] Replace quick links zoom-to-center toolbar item (close #6601) --- css/80_app.css | 3 ++ data/core.yaml | 3 +- dist/locales/en.json | 4 +- modules/ui/data_editor.js | 18 +------- modules/ui/entity_editor.js | 22 --------- modules/ui/improveOSM_editor.js | 16 ------- modules/ui/index.js | 1 - modules/ui/keepRight_editor.js | 16 ------- modules/ui/note_editor.js | 15 ------- modules/ui/quick_links.js | 62 -------------------------- modules/ui/sidebar.js | 2 +- modules/ui/tools/center_zoom.js | 29 ++++++++++++ modules/ui/tools/segmented.js | 2 +- modules/ui/tools/simple_button.js | 27 ++++++----- modules/ui/top_toolbar.js | 15 +++++-- svg/iD-sprite/icons/icon-frame-pin.svg | 5 +++ 16 files changed, 74 insertions(+), 166 deletions(-) delete mode 100644 modules/ui/quick_links.js create mode 100644 modules/ui/tools/center_zoom.js create mode 100644 svg/iD-sprite/icons/icon-frame-pin.svg diff --git a/css/80_app.css b/css/80_app.css index 2d227b3ee4..19ad0e6768 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -5702,6 +5702,9 @@ li.hide + li.version .badge .tooltip .tooltip-arrow { fill: #eee; } +.toolbar-item.center-zoom button use { + fill: #79f; +} .toolbar-item.operation button use, .edit-menu-item use { fill: #222; diff --git a/data/core.yaml b/data/core.yaml index 9f689b4757..0c0559cc45 100644 --- a/data/core.yaml +++ b/data/core.yaml @@ -9,6 +9,8 @@ en: open_wikidata: open on wikidata.org favorite: favorite toolbar: + center_zoom: + title: Center deselect: title: Deselect inspect: Inspect @@ -580,7 +582,6 @@ en: inspector: zoom_to: key: Z - title: Zoom to this tooltip_feature: "Center and zoom the map to focus on this feature." tooltip_note: "Center and zoom the map to focus on this note." tooltip_data: "Center and zoom the map to focus on this data." diff --git a/dist/locales/en.json b/dist/locales/en.json index 56cab611b0..3fcddbcc2c 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -11,6 +11,9 @@ "favorite": "favorite" }, "toolbar": { + "center_zoom": { + "title": "Center" + }, "deselect": { "title": "Deselect" }, @@ -735,7 +738,6 @@ "inspector": { "zoom_to": { "key": "Z", - "title": "Zoom to this", "tooltip_feature": "Center and zoom the map to focus on this feature.", "tooltip_note": "Center and zoom the map to focus on this note.", "tooltip_data": "Center and zoom the map to focus on this data.", diff --git a/modules/ui/data_editor.js b/modules/ui/data_editor.js index fc8eb3f202..5edd48fce0 100644 --- a/modules/ui/data_editor.js +++ b/modules/ui/data_editor.js @@ -3,31 +3,16 @@ import { modeBrowse } from '../modes/browse'; import { svgIcon } from '../svg/icon'; import { uiDataHeader } from './data_header'; -import { uiQuickLinks } from './quick_links'; import { uiRawTagEditor } from './raw_tag_editor'; -import { uiTooltipHtml } from './tooltipHtml'; export function uiDataEditor(context) { var dataHeader = uiDataHeader(); - var quickLinks = uiQuickLinks(); var rawTagEditor = uiRawTagEditor(context); var _datum; function dataEditor(selection) { - // quick links - var choices = [{ - id: 'zoom_to', - label: 'inspector.zoom_to.title', - tooltip: function() { - return uiTooltipHtml(t('inspector.zoom_to.tooltip_data'), t('inspector.zoom_to.key')); - }, - click: function zoomTo() { - context.mode().zoomToSelected(); - } - }]; - var header = selection.selectAll('.header') .data([0]); @@ -65,8 +50,7 @@ export function uiDataEditor(context) { .append('div') .attr('class', 'modal-section data-editor') .merge(editor) - .call(dataHeader.datum(_datum)) - .call(quickLinks.choices(choices)); + .call(dataHeader.datum(_datum)); var rte = body.selectAll('.raw-tag-editor') .data([0]); diff --git a/modules/ui/entity_editor.js b/modules/ui/entity_editor.js index e15302502d..97e505b0a8 100644 --- a/modules/ui/entity_editor.js +++ b/modules/ui/entity_editor.js @@ -8,7 +8,6 @@ import { actionChangePreset } from '../actions/change_preset'; import { actionChangeTags } from '../actions/change_tags'; import { uiPresetFavoriteButton } from './preset_favorite_button'; import { uiPresetIcon } from './preset_icon'; -import { uiQuickLinks } from './quick_links'; import { uiRawMemberEditor } from './raw_member_editor'; import { uiRawMembershipEditor } from './raw_membership_editor'; import { uiRawTagEditor } from './raw_tag_editor'; @@ -16,7 +15,6 @@ import { uiTagReference } from './tag_reference'; import { uiPresetBrowser } from './preset_browser'; import { uiPresetEditor } from './preset_editor'; import { uiEntityIssues } from './entity_issues'; -import { uiTooltipHtml } from './tooltipHtml'; import { utilCleanTags, utilRebind } from '../util'; import { uiViewOnOSM } from './view_on_osm'; @@ -34,7 +32,6 @@ export function uiEntityEditor(context) { var _presetFavorite; var entityIssues = uiEntityIssues(context); - var quickLinks = uiQuickLinks(); var presetEditor = uiPresetEditor(context).on('change', changeTags); var rawTagEditor = uiRawTagEditor(context).on('change', changeTags); var rawMemberEditor = uiRawMemberEditor(context); @@ -85,10 +82,6 @@ export function uiEntityEditor(context) { presetBrowser.render(bodyEnter); } - bodyEnter - .append('div') - .attr('class', 'preset-quick-links'); - bodyEnter .append('div') .attr('class', 'entity-issues'); @@ -187,21 +180,6 @@ export function uiEntityEditor(context) { .attr('class', 'namepart') .text(function(d) { return d; }); - // update quick links - var choices = [{ - id: 'zoom_to', - label: 'inspector.zoom_to.title', - tooltip: function() { - return uiTooltipHtml(t('inspector.zoom_to.tooltip_feature'), t('inspector.zoom_to.key')); - }, - click: function zoomTo() { - context.mode().zoomToSelected(); - } - }]; - - body.select('.preset-quick-links') - .call(quickLinks.choices(choices)); - // update editor sections body.select('.entity-issues') diff --git a/modules/ui/improveOSM_editor.js b/modules/ui/improveOSM_editor.js index dd046627da..a4ee20529f 100644 --- a/modules/ui/improveOSM_editor.js +++ b/modules/ui/improveOSM_editor.js @@ -9,8 +9,6 @@ import { svgIcon } from '../svg/icon'; import { uiImproveOsmComments } from './improveOSM_comments'; import { uiImproveOsmDetails } from './improveOSM_details'; import { uiImproveOsmHeader } from './improveOSM_header'; -import { uiQuickLinks } from './quick_links'; -import { uiTooltipHtml } from './tooltipHtml'; import { utilNoAuto, utilRebind } from '../util'; @@ -20,24 +18,11 @@ export function uiImproveOsmEditor(context) { var errorDetails = uiImproveOsmDetails(context); var errorComments = uiImproveOsmComments(context); var errorHeader = uiImproveOsmHeader(context); - var quickLinks = uiQuickLinks(); var _error; function improveOsmEditor(selection) { - // quick links - var choices = [{ - id: 'zoom_to', - label: 'inspector.zoom_to.title', - tooltip: function() { - return uiTooltipHtml(t('inspector.zoom_to.tooltip_issue'), t('inspector.zoom_to.key')); - }, - click: function zoomTo() { - context.mode().zoomToSelected(); - } - }]; - var header = selection.selectAll('.header') .data([0]); @@ -75,7 +60,6 @@ export function uiImproveOsmEditor(context) { .attr('class', 'modal-section error-editor') .merge(editor) .call(errorHeader.error(_error)) - .call(quickLinks.choices(choices)) .call(errorDetails.error(_error)) .call(errorComments.error(_error)) .call(improveOsmSaveSection); diff --git a/modules/ui/index.js b/modules/ui/index.js index f62e0b4cc7..f23b23c86f 100644 --- a/modules/ui/index.js +++ b/modules/ui/index.js @@ -48,7 +48,6 @@ export { uiNoteReport } from './note_report'; export { uiPresetEditor } from './preset_editor'; export { uiPresetIcon } from './preset_icon'; export { uiPresetList } from './preset_list'; -export { uiQuickLinks } from './quick_links'; export { uiRawMemberEditor } from './raw_member_editor'; export { uiRawMembershipEditor } from './raw_membership_editor'; export { uiRawTagEditor } from './raw_tag_editor'; diff --git a/modules/ui/keepRight_editor.js b/modules/ui/keepRight_editor.js index f866094aac..50ce6f530e 100644 --- a/modules/ui/keepRight_editor.js +++ b/modules/ui/keepRight_editor.js @@ -8,8 +8,6 @@ import { svgIcon } from '../svg/icon'; import { uiKeepRightDetails } from './keepRight_details'; import { uiKeepRightHeader } from './keepRight_header'; -import { uiQuickLinks } from './quick_links'; -import { uiTooltipHtml } from './tooltipHtml'; import { uiViewOnKeepRight } from './view_on_keepRight'; import { utilNoAuto, utilRebind } from '../util'; @@ -19,24 +17,11 @@ export function uiKeepRightEditor(context) { var dispatch = d3_dispatch('change'); var keepRightDetails = uiKeepRightDetails(context); var keepRightHeader = uiKeepRightHeader(context); - var quickLinks = uiQuickLinks(); var _error; function keepRightEditor(selection) { - // quick links - var choices = [{ - id: 'zoom_to', - label: 'inspector.zoom_to.title', - tooltip: function() { - return uiTooltipHtml(t('inspector.zoom_to.tooltip_issue'), t('inspector.zoom_to.key')); - }, - click: function zoomTo() { - context.mode().zoomToSelected(); - } - }]; - var header = selection.selectAll('.header') .data([0]); @@ -74,7 +59,6 @@ export function uiKeepRightEditor(context) { .attr('class', 'modal-section error-editor') .merge(editor) .call(keepRightHeader.error(_error)) - .call(quickLinks.choices(choices)) .call(keepRightDetails.error(_error)) .call(keepRightSaveSection); diff --git a/modules/ui/note_editor.js b/modules/ui/note_editor.js index 97f6003c80..9fba384dff 100644 --- a/modules/ui/note_editor.js +++ b/modules/ui/note_editor.js @@ -14,8 +14,6 @@ import { svgIcon } from '../svg/icon'; import { uiNoteComments } from './note_comments'; import { uiNoteReport } from './note_report'; -import { uiQuickLinks } from './quick_links'; -import { uiTooltipHtml } from './tooltipHtml'; import { uiViewOnOSM } from './view_on_osm'; import { @@ -24,7 +22,6 @@ import { export function uiNoteEditor(context) { - var quickLinks = uiQuickLinks(); var noteComments = uiNoteComments(); // var formFields = uiFormFields(context); @@ -33,17 +30,6 @@ export function uiNoteEditor(context) { // var _fieldsArr; function noteEditor(selection) { - // quick links - var choices = [{ - id: 'zoom_to', - label: 'inspector.zoom_to.title', - tooltip: function() { - return uiTooltipHtml(t('inspector.zoom_to.tooltip_note'), t('inspector.zoom_to.key')); - }, - click: function zoomTo() { - context.mode().zoomToSelected(); - } - }]; var body = selection.selectAll('.inspector-body') .data([0]); @@ -60,7 +46,6 @@ export function uiNoteEditor(context) { .append('div') .attr('class', 'modal-section note-editor') .merge(editor) - .call(quickLinks.choices(choices)) .call(noteComments.note(_note)) .call(noteSaveSection); diff --git a/modules/ui/quick_links.js b/modules/ui/quick_links.js deleted file mode 100644 index 9b1a7149d7..0000000000 --- a/modules/ui/quick_links.js +++ /dev/null @@ -1,62 +0,0 @@ -import { - event as d3_event, - select as d3_select -} from 'd3-selection'; - -import { t } from '../util/locale'; -import { tooltip } from '../util/tooltip'; - - -export function uiQuickLinks() { - var _choices = []; - - - function quickLinks(selection) { - var container = selection.selectAll('.quick-links') - .data([0]); - - container = container.enter() - .append('div') - .attr('class', 'quick-links') - .merge(container); - - var items = container.selectAll('.quick-link') - .data(_choices, function(d) { return d.id; }); - - items.exit() - .remove(); - - items.enter() - .append('a') - .attr('class', function(d) { return 'quick-link quick-link-' + d.id; }) - .attr('href', '#') - .text(function(d) { return t(d.label); }) - .each(function(d) { - if (typeof d.tooltip !== 'function') return; - d3_select(this) - .call(tooltip().html(true).title(d.tooltip).placement('bottom')); - }) - .on('click', function(d) { - if (typeof d.click !== 'function') return; - d3_event.preventDefault(); - d.click(d); - }); - } - - - // val should be an array of choices like: - // [{ - // id: 'link-id', - // label: 'translation.key', - // tooltip: function(d), - // click: function(d) - // }, ..] - quickLinks.choices = function(val) { - if (!arguments.length) return _choices; - _choices = val; - return quickLinks; - }; - - - return quickLinks; -} diff --git a/modules/ui/sidebar.js b/modules/ui/sidebar.js index 2400de377a..b66e137070 100644 --- a/modules/ui/sidebar.js +++ b/modules/ui/sidebar.js @@ -9,7 +9,7 @@ import { selectAll as d3_selectAll } from 'd3-selection'; -import { osmNote, qaError } from '../osm'; +import { qaError } from '../osm'; import { services } from '../services'; import { uiDataEditor } from './data_editor'; import { uiImproveOsmEditor } from './improveOSM_editor'; diff --git a/modules/ui/tools/center_zoom.js b/modules/ui/tools/center_zoom.js new file mode 100644 index 0000000000..bc00bbf855 --- /dev/null +++ b/modules/ui/tools/center_zoom.js @@ -0,0 +1,29 @@ + +import { uiToolSimpleButton } from './simple_button'; +import { t } from '../../util/locale'; + +export function uiToolCenterZoom(context) { + + var tool = uiToolSimpleButton( + 'center_zoom', + t('toolbar.center_zoom.title'), + 'iD-icon-frame-pin', function() { + context.mode().zoomToSelected(); + }, function() { + var mode = context.mode(); + if (mode.id === 'select') { + return t('inspector.zoom_to.tooltip_feature'); + } else if (mode.id === 'select-note') { + return t('inspector.zoom_to.tooltip_note'); + } else if (mode.id === 'select-data') { + return t('inspector.zoom_to.tooltip_data'); + } else if (mode.id === 'select-error') { + return t('inspector.zoom_to.tooltip_issue'); + } + }, + t('inspector.zoom_to.key'), + 'wide' + ); + + return tool; +} diff --git a/modules/ui/tools/segmented.js b/modules/ui/tools/segmented.js index 67e4dc2cf5..0c7c43edcc 100644 --- a/modules/ui/tools/segmented.js +++ b/modules/ui/tools/segmented.js @@ -30,7 +30,7 @@ export function uiToolSegemented(context) { }; tool.shouldShow = function() { - tool.loadItems(); + if (tool.loadItems) tool.loadItems(); return tool.items.length > 1; }; diff --git a/modules/ui/tools/simple_button.js b/modules/ui/tools/simple_button.js index 782aa21523..8cd88b36ba 100644 --- a/modules/ui/tools/simple_button.js +++ b/modules/ui/tools/simple_button.js @@ -1,30 +1,37 @@ import { svgIcon } from '../../svg/icon'; import { uiTooltipHtml } from '../tooltipHtml'; import { tooltip } from '../../util/tooltip'; +import { utilFunctor } from '../../util/util'; -export function uiToolSimpleButton(id, label, iconName, onClick, tooltipText, tooltipKey, klass) { +export function uiToolSimpleButton(id, label, iconName, onClick, tooltipText, tooltipKey, barButtonClass) { var tool = { id: id, - label: label + label: label, + iconName: iconName, + onClick: onClick, + tooltipText: tooltipText, + tooltipKey: tooltipKey, + barButtonClass: barButtonClass }; - var tooltipBehavior = tooltip() - .placement('bottom') - .html(true) - .title(uiTooltipHtml(tooltipText, tooltipKey)); - tool.render = function(selection) { + + var tooltipBehavior = tooltip() + .placement('bottom') + .html(true) + .title(uiTooltipHtml(utilFunctor(tool.tooltipText)(), utilFunctor(tool.tooltipKey)())); + selection .selectAll('.bar-button') .data([0]) .enter() .append('button') - .attr('class', 'bar-button ' + (klass || '')) + .attr('class', 'bar-button ' + (utilFunctor(tool.barButtonClass)() || '')) .attr('tabindex', -1) .call(tooltipBehavior) - .on('click', onClick) - .call(svgIcon('#' + iconName)); + .on('click', tool.onClick) + .call(svgIcon('#' + utilFunctor(tool.iconName)())); }; return tool; diff --git a/modules/ui/top_toolbar.js b/modules/ui/top_toolbar.js index 7230854707..d473accf20 100644 --- a/modules/ui/top_toolbar.js +++ b/modules/ui/top_toolbar.js @@ -10,6 +10,7 @@ import { uiToolSimpleButton } from './tools/simple_button'; import { uiToolWaySegments } from './tools/way_segments'; import { uiToolRepeatAdd } from './tools/repeat_add'; import { uiToolStructure } from './tools/structure'; +import { uiToolCenterZoom } from './tools/center_zoom'; export function uiTopToolbar(context) { @@ -23,6 +24,7 @@ export function uiTopToolbar(context) { waySegments = uiToolWaySegments(context), structure = uiToolStructure(context), repeatAdd = uiToolRepeatAdd(context), + centerZoom = uiToolCenterZoom(context), deselect = uiToolSimpleButton('deselect', t('toolbar.deselect.title'), 'iD-icon-close', function() { context.enter(modeBrowse(context)); }, null, 'Esc'), @@ -68,7 +70,9 @@ export function uiTopToolbar(context) { !mode.newFeature() && mode.selectedIDs().every(function(id) { return context.graph().hasEntity(id); })) { - tools.push(sidebarToggle); + tools.push(deselect); + tools.push('spacer'); + tools.push(centerZoom); tools.push('spacer'); var operationTools = []; @@ -89,13 +93,13 @@ export function uiTopToolbar(context) { if (deleteTool) { // keep the delete button apart from the others if (operationTools.length > 0) { - tools.push('spacer-half'); + tools.push('spacer'); } tools.push(deleteTool); } tools.push('spacer'); - tools = tools.concat([deselect, undoRedo, save]); + tools = tools.concat([undoRedo, save]); } else if (mode.id === 'add-point' || mode.id === 'add-line' || mode.id === 'add-area' || mode.id === 'draw-line' || mode.id === 'draw-area') { @@ -144,6 +148,11 @@ export function uiTopToolbar(context) { tools.push(sidebarToggle); tools.push('spacer'); + if (mode.id === 'select-note' || mode.id === 'select-data' || mode.id === 'select-error') { + tools.push(centerZoom); + tools.push('spacer'); + } + tools.push(addFeature); if (context.presets().getFavorites().length > 0) { diff --git a/svg/iD-sprite/icons/icon-frame-pin.svg b/svg/iD-sprite/icons/icon-frame-pin.svg new file mode 100644 index 0000000000..8549669098 --- /dev/null +++ b/svg/iD-sprite/icons/icon-frame-pin.svg @@ -0,0 +1,5 @@ + + + + + From ecb550a23e926cb99ec90e07b2b43e82b2966c57 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Mon, 1 Jul 2019 14:50:08 -0400 Subject: [PATCH 116/774] Use white background for header part of assistant for some panels --- css/80_app.css | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/css/80_app.css b/css/80_app.css index 19ad0e6768..5766f0241c 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -1058,6 +1058,11 @@ a.hide-toggle { /* assistant header */ .assistant .assistant-header { flex: 0 0 auto; + border-top-left-radius: inherit; + border-top-right-radius: inherit; +} +.assistant.light:not(.body-collapsed, .prominent) .assistant-header{ + background: #fff; } .assistant .icon-col { flex: 0 0 auto; @@ -5068,7 +5073,6 @@ img.tile-debug { display: flex; flex-wrap: wrap; justify-content: space-around; - margin-bottom: 30px; } .save-section .buttons .action, From d1191bd2e559f2ab20836a684f3f16c789eaf015 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Mon, 1 Jul 2019 15:11:26 -0400 Subject: [PATCH 117/774] Replace use of `footer` and `body` classes in the inspector --- css/80_app.css | 30 +----------------------------- modules/ui/commit.js | 6 +++--- modules/ui/data_editor.js | 4 ++-- modules/ui/improveOSM_editor.js | 4 ++-- modules/ui/keepRight_editor.js | 8 ++++---- 5 files changed, 12 insertions(+), 40 deletions(-) diff --git a/css/80_app.css b/css/80_app.css index 5766f0241c..df75f9b58e 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -940,25 +940,6 @@ button.add-preset.disabled .preset-icon-container { right: unset; } -.footer { - position: absolute; - bottom: 0; - margin: 0; - padding: 5px 20px 5px 20px; - border-top: 1px solid #ccc; - background-color: #f6f6f6; - width: 100%; - z-index: 1; - flex-wrap: wrap; - justify-content: space-between; - list-style: none; - display: flex; -} - -.footer > a { - justify-content: center; -} - .header-container { display: flex; justify-content: space-between; @@ -1460,11 +1441,6 @@ a.hide-toggle { border: 1px solid #ccc; } -.sidebar-component .body { - width: 100%; - overflow: auto; -} - .entity-editor-pane { width: 100%; display: flex; @@ -1472,9 +1448,6 @@ a.hide-toggle { border: 1px solid #ccc; border-radius: inherit; } -.entity-editor-pane .footer { - position: relative; -} .inspector-hidden { display: none; @@ -4301,8 +4274,7 @@ li.issue-fix-item:not(.actionable) .fix-icon { .inspector-hover .hide-toggle:before, .inspector-hover .more-fields, .inspector-hover .field-label button, -.inspector-hover .tag-row button, -.inspector-hover .footer * { +.inspector-hover .tag-row button { opacity: 0; } diff --git a/modules/ui/commit.js b/modules/ui/commit.js index f0ad660043..7f6f854b05 100644 --- a/modules/ui/commit.js +++ b/modules/ui/commit.js @@ -94,7 +94,7 @@ export function uiCommit(context) { if (sources.indexOf('streetlevel imagery') === -1) { sources.push('streetlevel imagery'); } - + // add the photo overlays used during editing as sources photoOverlaysUsed.forEach(function(photoOverlay) { if (sources.indexOf(photoOverlay) === -1) { @@ -185,12 +185,12 @@ export function uiCommit(context) { .on('click', function() { context.enter(modeBrowse(context)); }) .call(svgIcon('#iD-icon-close')); - var body = selection.selectAll('.body') + var body = selection.selectAll('.inspector-body') .data([0]); body = body.enter() .append('div') - .attr('class', 'body') + .attr('class', 'inspector-body') .merge(body); diff --git a/modules/ui/data_editor.js b/modules/ui/data_editor.js index 5edd48fce0..973e60b75b 100644 --- a/modules/ui/data_editor.js +++ b/modules/ui/data_editor.js @@ -34,12 +34,12 @@ export function uiDataEditor(context) { .text(t('map_data.title')); - var body = selection.selectAll('.body') + var body = selection.selectAll('.inspector-body') .data([0]); body = body.enter() .append('div') - .attr('class', 'body') + .attr('class', 'inspector-body') .merge(body); var editor = body.selectAll('.data-editor') diff --git a/modules/ui/improveOSM_editor.js b/modules/ui/improveOSM_editor.js index a4ee20529f..1e585b16c6 100644 --- a/modules/ui/improveOSM_editor.js +++ b/modules/ui/improveOSM_editor.js @@ -44,12 +44,12 @@ export function uiImproveOsmEditor(context) { .text(t('QA.improveOSM.title')); - var body = selection.selectAll('.body') + var body = selection.selectAll('.inspector-body') .data([0]); body = body.enter() .append('div') - .attr('class', 'body') + .attr('class', 'inspector-body') .merge(body); var editor = body.selectAll('.error-editor') diff --git a/modules/ui/keepRight_editor.js b/modules/ui/keepRight_editor.js index 50ce6f530e..3a88cb767a 100644 --- a/modules/ui/keepRight_editor.js +++ b/modules/ui/keepRight_editor.js @@ -43,12 +43,12 @@ export function uiKeepRightEditor(context) { .text(t('QA.keepRight.title')); - var body = selection.selectAll('.body') + var body = selection.selectAll('.inspector-body') .data([0]); body = body.enter() .append('div') - .attr('class', 'body') + .attr('class', 'inspector-body') .merge(body); var editor = body.selectAll('.error-editor') @@ -63,12 +63,12 @@ export function uiKeepRightEditor(context) { .call(keepRightSaveSection); - var footer = selection.selectAll('.footer') + var footer = selection.selectAll('.inspector-footer') .data([0]); footer.enter() .append('div') - .attr('class', 'footer') + .attr('class', 'inspector-footer') .merge(footer) .call(uiViewOnKeepRight(context).what(_error)); } From 2226663ccfc5034d18cfd33f8a682aab476d7d3c Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Mon, 1 Jul 2019 17:22:22 -0400 Subject: [PATCH 118/774] Move KeepRight and ImproveOSM issue inspectors into the assistant --- css/80_app.css | 48 ++--------- data/core.yaml | 4 +- dist/locales/en.json | 4 +- modules/behavior/select.js | 3 - modules/core/context.js | 9 +-- modules/modes/select_error.js | 44 +++------- modules/svg/improveOSM.js | 4 +- modules/svg/keepRight.js | 4 +- modules/ui/assistant.js | 138 ++++++++++++++++++++++++++++++++ modules/ui/improveOSM_editor.js | 60 +++++--------- modules/ui/improveOSM_header.js | 97 ---------------------- modules/ui/index.js | 2 - modules/ui/keepRight_editor.js | 60 +++++--------- modules/ui/keepRight_header.js | 71 ---------------- modules/ui/sidebar.js | 27 ------- 15 files changed, 199 insertions(+), 376 deletions(-) delete mode 100644 modules/ui/improveOSM_header.js delete mode 100644 modules/ui/keepRight_header.js diff --git a/css/80_app.css b/css/80_app.css index df75f9b58e..8c4c2fcfd6 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -1194,12 +1194,15 @@ a.hide-toggle { line-height: 1.35em; } /* note icon */ -.assistant .note-header-icon { +.assistant .note-header-icon, +.assistant .error-header-icon { position: relative; width: 30px; height: 30px; } -.assistant .note-header-icon .note-fill { +.assistant .note-header-icon .note-fill, +.assistant .error-header-icon .keepRight, +.assistant .error-header-icon .keepRight svg { width: 100%; height: 100%; } @@ -3115,35 +3118,6 @@ input.key-trap { /* OSM Note / KeepRight Editors ------------------------------------------------------- */ -.error-header { - background-color: #f6f6f6; - border-radius: 5px; - border: 1px solid #ccc; - display: flex; - flex-flow: row nowrap; - align-items: center; -} - -.error-header-icon { - background-color: #fff; - padding: 10px; - flex: 0 0 62px; - position: relative; - width: 60px; - height: 60px; - border-right: 1px solid #ccc; - border-radius: 5px 0 0 5px; -} -[dir='rtl'] .error-header-icon { - border-right: unset; - border-left: 1px solid #ccc; - border-radius: 0 5px 5px 0; -} - -.error-header-icon .icon-wrap { - position: absolute; - top: 0px; -} .preset-icon-28 { position: absolute; top: 16px; @@ -3155,18 +3129,6 @@ input.key-trap { height: 28px; } -.error-header-label { - background-color: #f6f6f6; - padding: 0 15px; - flex: 1 1 100%; - font-size: 14px; - font-weight: bold; - border-radius: 0 5px 5px 0; -} -[dir='rtl'] .error-header-label { - border-radius: 5px 0 0 5px; -} - .note-category { margin: 20px 0px; } diff --git a/data/core.yaml b/data/core.yaml index 0c0559cc45..e6e91017cf 100644 --- a/data/core.yaml +++ b/data/core.yaml @@ -793,7 +793,7 @@ en: full_screen: Toggle Full Screen QA: improveOSM: - title: ImproveOSM Detection + title: ImproveOSM geometry_types: path: paths parking: parking @@ -820,7 +820,7 @@ en: title: Missing Turn Restriction description: '{num_passed} of {num_trips} recorded trips (travelling {travel_direction}) make a turn from {from_way} to {to_way} at {junction}. There may be a missing "{turn_restriction}" restriction.' keepRight: - title: KeepRight Error + title: KeepRight detail_title: Error detail_description: Description comment: Comment diff --git a/dist/locales/en.json b/dist/locales/en.json index 3fcddbcc2c..b062430eb1 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -991,7 +991,7 @@ "full_screen": "Toggle Full Screen", "QA": { "improveOSM": { - "title": "ImproveOSM Detection", + "title": "ImproveOSM", "geometry_types": { "path": "paths", "parking": "parking", @@ -1025,7 +1025,7 @@ } }, "keepRight": { - "title": "KeepRight Error", + "title": "KeepRight", "detail_title": "Error", "detail_description": "Description", "comment": "Comment", diff --git a/modules/behavior/select.js b/modules/behavior/select.js index 2e39979b4a..0cc63ed6ee 100644 --- a/modules/behavior/select.js +++ b/modules/behavior/select.js @@ -133,7 +133,6 @@ export function behaviorSelect(context) { if (datum instanceof osmEntity) { // clicked an entity.. var selectedIDs = context.selectedIDs(); - context.selectedErrorID(null); if (!isMultiselect) { if (selectedIDs.length > 1 && (!_suppressMenu && !isShowAlways)) { @@ -172,11 +171,9 @@ export function behaviorSelect(context) { } else if (datum instanceof qaError & !isMultiselect) { // clicked an external QA error context - .selectedErrorID(datum.id) .enter(modeSelectError(context, datum.id, datum.service)); } else { // clicked nothing.. - context.selectedErrorID(null); if (!isMultiselect && mode.id !== 'browse') { context.enter(modeBrowse(context)); } diff --git a/modules/core/context.js b/modules/core/context.js index 117226126e..9b443723fe 100644 --- a/modules/core/context.js +++ b/modules/core/context.js @@ -282,14 +282,7 @@ export function coreContext() { context.activeID = function() { return mode && mode.activeID && mode.activeID(); }; - - var _selectedErrorID; - context.selectedErrorID = function(errorID) { - if (!arguments.length) return _selectedErrorID; - _selectedErrorID = errorID; - return context; - }; - + /* Behaviors */ context.install = function(behavior) { diff --git a/modules/modes/select_error.js b/modules/modes/select_error.js index 774822b686..99b0c15f1a 100644 --- a/modules/modes/select_error.js +++ b/modules/modes/select_error.js @@ -13,8 +13,6 @@ import { services } from '../services'; import { modeBrowse } from './browse'; import { modeDragNode } from './drag_node'; import { modeDragNote } from './drag_note'; -import { uiImproveOsmEditor } from '../ui/improveOSM_editor'; -import { uiKeepRightEditor } from '../ui/keepRight_editor'; import { utilKeybinding } from '../util'; @@ -27,30 +25,6 @@ export function modeSelectError(context, selectedErrorID, selectedErrorService) var keybinding = utilKeybinding('select-error'); var errorService = services[selectedErrorService]; - var errorEditor; - switch (selectedErrorService) { - case 'improveOSM': - errorEditor = uiImproveOsmEditor(context) - .on('change', function() { - context.map().pan([0,0]); // trigger a redraw - var error = checkSelectedID(); - if (!error) return; - context.ui().sidebar - .show(errorEditor.error(error)); - }); - break; - case 'keepRight': - errorEditor = uiKeepRightEditor(context) - .on('change', function() { - context.map().pan([0,0]); // trigger a redraw - var error = checkSelectedID(); - if (!error) return; - context.ui().sidebar - .show(errorEditor.error(error)); - }); - break; - } - var behaviors = [ behaviorBreathe(context), @@ -72,6 +46,15 @@ export function modeSelectError(context, selectedErrorID, selectedErrorService) } + mode.selectedErrorService = function() { + return selectedErrorService; + }; + + mode.selectedErrorID = function() { + return selectedErrorID; + }; + + mode.zoomToSelected = function() { if (!errorService) return; var error = errorService.getError(selectedErrorID); @@ -95,9 +78,6 @@ export function modeSelectError(context, selectedErrorID, selectedErrorService) selectError(); - var sidebar = context.ui().sidebar; - sidebar.show(errorEditor.error(error)); - context.map() .on('drawn.select-error', selectError); @@ -120,8 +100,6 @@ export function modeSelectError(context, selectedErrorID, selectedErrorService) } else { selection .classed('selected', true); - - context.selectedErrorID(selectedErrorID); } } @@ -145,10 +123,6 @@ export function modeSelectError(context, selectedErrorID, selectedErrorService) context.map() .on('drawn.select-error', null); - context.ui().sidebar - .hide(); - - context.selectedErrorID(null); context.features().forceVisible([]); }; diff --git a/modules/svg/improveOSM.js b/modules/svg/improveOSM.js index 1c55402996..dd34670f00 100644 --- a/modules/svg/improveOSM.js +++ b/modules/svg/improveOSM.js @@ -99,7 +99,7 @@ export function svgImproveOSM(projection, context, dispatch) { if (!_improveOsmVisible || !_improveOsmEnabled) return; var service = getService(); - var selectedID = context.selectedErrorID(); + var selectedID = context.mode() && context.mode().selectedErrorID && context.mode().selectedErrorID(); var data = (service ? service.getErrors(projection) : []); var getTransform = svgPointTransform(projection); @@ -242,7 +242,7 @@ export function svgImproveOSM(projection, context, dispatch) { layerOn(); } else { layerOff(); - if (context.selectedErrorID()) { + if (context.mode().id === 'select-error') { context.enter(modeBrowse(context)); } } diff --git a/modules/svg/keepRight.js b/modules/svg/keepRight.js index 8e19bab42d..513d03809b 100644 --- a/modules/svg/keepRight.js +++ b/modules/svg/keepRight.js @@ -100,7 +100,7 @@ export function svgKeepRight(projection, context, dispatch) { if (!_keepRightVisible || !_keepRightEnabled) return; var service = getService(); - var selectedID = context.selectedErrorID(); + var selectedID = context.mode() && context.mode().selectedErrorID && context.mode().selectedErrorID(); var data = (service ? service.getErrors(projection) : []); var getTransform = svgPointTransform(projection); @@ -231,7 +231,7 @@ export function svgKeepRight(projection, context, dispatch) { layerOn(); } else { layerOff(); - if (context.selectedErrorID()) { + if (context.mode().id === 'select-error') { context.enter(modeBrowse(context)); } } diff --git a/modules/ui/assistant.js b/modules/ui/assistant.js index b28a104c02..f7bb38a919 100644 --- a/modules/ui/assistant.js +++ b/modules/ui/assistant.js @@ -1,4 +1,5 @@ import _debounce from 'lodash-es/debounce'; +import { dataEn } from '../../data'; import { select as d3_select } from 'd3-selection'; @@ -13,6 +14,8 @@ import { uiEntityEditor } from './entity_editor'; import { uiFeatureList } from './feature_list'; import { uiSelectionList } from './selection_list'; import { uiNoteEditor } from './note_editor'; +import { uiKeepRightEditor } from './keepRight_editor'; +import { uiImproveOsmEditor } from './improveOSM_editor'; import { geoRawMercator } from '../geo/raw_mercator'; import { decimalCoordinatePair, formattedRoundedDuration } from '../util/units'; @@ -216,6 +219,12 @@ export function uiAssistant(context) { if (note) { return panelSelectNote(context, note); } + } else if (mode.id === 'select-error') { + if (mode.selectedErrorService() === 'keepRight') { + return panelSelectKeepRightError(context, mode.selectedErrorID()); + } else if (mode.selectedErrorService() === 'improveOSM') { + return panelSelectImproveOSMError(context, mode.selectedErrorID()); + } } else if (!didEditAnythingYet) { if (savedChangeset) { @@ -432,6 +441,135 @@ export function uiAssistant(context) { return panel; } + function panelSelectKeepRightError(context, errorID) { + + var error = services.keepRight.getError(errorID); + + function errorTitle(d) { + var unknown = t('inspector.unknown'); + + if (!d) return unknown; + var errorType = d.error_type; + var parentErrorType = d.parent_error_type; + + var et = dataEn.QA.keepRight.errorTypes[errorType]; + var pt = dataEn.QA.keepRight.errorTypes[parentErrorType]; + + if (et && et.title) { + return t('QA.keepRight.errorTypes.' + errorType + '.title'); + } else if (pt && pt.title) { + return t('QA.keepRight.errorTypes.' + parentErrorType + '.title'); + } else { + return unknown; + } + } + + var panel = { + theme: 'light', + modeLabel: t('QA.keepRight.title'), + title: errorTitle(error) + }; + + panel.renderHeaderIcon = function(selection) { + var icon = selection + .append('div') + .attr('class', 'error-header-icon') + .classed('new', error.id < 0); + + icon + .append('div') + .attr('class', 'qa_error ' + error.service + ' error_id-' + error.id + ' error_type-' + error.parent_error_type) + .call(svgIcon('#iD-icon-bolt', 'qa_error-fill')); + }; + + panel.renderBody = function(selection) { + var editor = uiKeepRightEditor(context) + .error(error); + selection.call(editor); + }; + + return panel; + } + + function panelSelectImproveOSMError(context, errorID) { + + var error = services.improveOSM.getError(errorID); + + function errorTitle(d) { + var unknown = t('inspector.unknown'); + + if (!d) return unknown; + var errorType = d.error_key; + var et = dataEn.QA.improveOSM.error_types[errorType]; + + if (et && et.title) { + return t('QA.improveOSM.error_types.' + errorType + '.title'); + } else { + return unknown; + } + } + + var panel = { + theme: 'light', + modeLabel: t('QA.improveOSM.title'), + title: errorTitle(error) + }; + + panel.renderHeaderIcon = function(selection) { + + var iconEnter = selection + .append('div') + .attr('class', 'error-header-icon') + .classed('new', error.id < 0); + + var svgEnter = iconEnter + .append('svg') + .attr('width', '20px') + .attr('height', '30px') + .attr('viewbox', '0 0 20 30') + .attr('class', [ + 'qa_error', + error.service, + 'error_id-' + error.id, + 'error_type-' + error.error_type, + 'category-' + error.category + ].join(' ')); + + svgEnter + .append('polygon') + .attr('fill', 'currentColor') + .attr('class', 'qa_error-fill') + .attr('points', '16,3 4,3 1,6 1,17 4,20 7,20 10,27 13,20 16,20 19,17.033 19,6'); + + var getIcon = function(d) { + var picon = d.icon; + + if (!picon) { + return ''; + } else { + var isMaki = /^maki-/.test(picon); + return '#' + picon + (isMaki ? '-11' : ''); + } + }; + + svgEnter + .append('use') + .attr('class', 'icon-annotation') + .attr('width', '11px') + .attr('height', '11px') + .attr('transform', 'translate(4.5, 7)') + .attr('xlink:href', getIcon(error)); + }; + + panel.renderBody = function(selection) { + var editor = uiImproveOsmEditor(context) + .error(error); + selection.call(editor); + }; + + return panel; + } + function panelSelectNote(context, note) { var panel = { diff --git a/modules/ui/improveOSM_editor.js b/modules/ui/improveOSM_editor.js index 1e585b16c6..dbb0893a9f 100644 --- a/modules/ui/improveOSM_editor.js +++ b/modules/ui/improveOSM_editor.js @@ -1,55 +1,30 @@ -import { dispatch as d3_dispatch } from 'd3-dispatch'; import { select as d3_select } from 'd3-selection'; import { t } from '../util/locale'; import { services } from '../services'; import { modeBrowse } from '../modes/browse'; -import { svgIcon } from '../svg/icon'; +import { modeSelectError } from '../modes/select_error'; import { uiImproveOsmComments } from './improveOSM_comments'; import { uiImproveOsmDetails } from './improveOSM_details'; -import { uiImproveOsmHeader } from './improveOSM_header'; -import { utilNoAuto, utilRebind } from '../util'; +import { utilNoAuto } from '../util'; export function uiImproveOsmEditor(context) { - var dispatch = d3_dispatch('change'); var errorDetails = uiImproveOsmDetails(context); var errorComments = uiImproveOsmComments(context); - var errorHeader = uiImproveOsmHeader(context); var _error; - function improveOsmEditor(selection) { - var header = selection.selectAll('.header') - .data([0]); - - var headerEnter = header.enter() - .append('div') - .attr('class', 'header fillL'); - - headerEnter - .append('button') - .attr('class', 'fr error-editor-close') - .on('click', function() { - context.enter(modeBrowse(context)); - }) - .call(svgIcon('#iD-icon-close')); - - headerEnter - .append('h3') - .text(t('QA.improveOSM.title')); - - var body = selection.selectAll('.inspector-body') .data([0]); body = body.enter() .append('div') - .attr('class', 'inspector-body') + .attr('class', 'inspector-body sep-top') .merge(body); var editor = body.selectAll('.error-editor') @@ -59,14 +34,13 @@ export function uiImproveOsmEditor(context) { .append('div') .attr('class', 'modal-section error-editor') .merge(editor) - .call(errorHeader.error(_error)) .call(errorDetails.error(_error)) .call(errorComments.error(_error)) .call(improveOsmSaveSection); } function improveOsmSaveSection(selection) { - var isSelected = (_error && _error.id === context.selectedErrorID()); + var isSelected = (_error && context.mode().selectedErrorID && _error.id === context.mode().selectedErrorID()); var isShown = (_error && (isSelected || _error.newComment || _error.comment)); var saveSection = selection.selectAll('.error-save') .data( @@ -125,7 +99,7 @@ export function uiImproveOsmEditor(context) { } function errorSaveButtons(selection) { - var isSelected = (_error && _error.id === context.selectedErrorID()); + var isSelected = (_error && context.mode().selectedErrorID && _error.id === context.mode().selectedErrorID()); var buttonSection = selection.selectAll('.buttons') .data((isSelected ? [_error] : []), function(d) { return d.status + d.id; }); @@ -164,9 +138,7 @@ export function uiImproveOsmEditor(context) { this.blur(); // avoid keeping focus on the button - #4641 var errorService = services.improveOSM; if (errorService) { - errorService.postUpdate(d, function(err, error) { - dispatch.call('change', error); - }); + errorService.postUpdate(d, remoteUpdateCallback); } }); @@ -180,9 +152,7 @@ export function uiImproveOsmEditor(context) { var errorService = services.improveOSM; if (errorService) { d.newStatus = 'SOLVED'; - errorService.postUpdate(d, function(err, error) { - dispatch.call('change', error); - }); + errorService.postUpdate(d, remoteUpdateCallback); } }); @@ -196,13 +166,21 @@ export function uiImproveOsmEditor(context) { var errorService = services.improveOSM; if (errorService) { d.newStatus = 'INVALID'; - errorService.postUpdate(d, function(err, error) { - dispatch.call('change', error); - }); + errorService.postUpdate(d, remoteUpdateCallback); } }); } + function remoteUpdateCallback(err, error) { + context.map().pan([0,0]); // trigger a redraw + + if (err || !error || !error.id) { + context.enter(modeBrowse(context)); + } else { + context.enter(modeSelectError(context, error.id, 'improveOSM')); + } + } + improveOsmEditor.error = function(val) { if (!arguments.length) return _error; _error = val; @@ -210,5 +188,5 @@ export function uiImproveOsmEditor(context) { }; - return utilRebind(improveOsmEditor, dispatch, 'on'); + return improveOsmEditor; } diff --git a/modules/ui/improveOSM_header.js b/modules/ui/improveOSM_header.js deleted file mode 100644 index f9ae383279..0000000000 --- a/modules/ui/improveOSM_header.js +++ /dev/null @@ -1,97 +0,0 @@ -import { dataEn } from '../../data'; -import { t } from '../util/locale'; - - -export function uiImproveOsmHeader() { - var _error; - - - function errorTitle(d) { - var unknown = t('inspector.unknown'); - - if (!d) return unknown; - var errorType = d.error_key; - var et = dataEn.QA.improveOSM.error_types[errorType]; - - if (et && et.title) { - return t('QA.improveOSM.error_types.' + errorType + '.title'); - } else { - return unknown; - } - } - - - function improveOsmHeader(selection) { - var header = selection.selectAll('.error-header') - .data( - (_error ? [_error] : []), - function(d) { return d.id + '-' + (d.status || 0); } - ); - - header.exit() - .remove(); - - var headerEnter = header.enter() - .append('div') - .attr('class', 'error-header'); - - var iconEnter = headerEnter - .append('div') - .attr('class', 'error-header-icon') - .classed('new', function(d) { return d.id < 0; }); - - var svgEnter = iconEnter - .append('svg') - .attr('width', '20px') - .attr('height', '30px') - .attr('viewbox', '0 0 20 30') - .attr('class', function(d) { - return [ - 'preset-icon-28', - 'qa_error', - d.service, - 'error_id-' + d.id, - 'error_type-' + d.error_type, - 'category-' + d.category - ].join(' '); - }); - - svgEnter - .append('polygon') - .attr('fill', 'currentColor') - .attr('class', 'qa_error-fill') - .attr('points', '16,3 4,3 1,6 1,17 4,20 7,20 10,27 13,20 16,20 19,17.033 19,6'); - - svgEnter - .append('use') - .attr('class', 'icon-annotation') - .attr('width', '11px') - .attr('height', '11px') - .attr('transform', 'translate(4.5, 7)') - .attr('xlink:href', function(d) { - var picon = d.icon; - - if (!picon) { - return ''; - } else { - var isMaki = /^maki-/.test(picon); - return '#' + picon + (isMaki ? '-11' : ''); - } - }); - - headerEnter - .append('div') - .attr('class', 'error-header-label') - .text(errorTitle); - } - - - improveOsmHeader.error = function(val) { - if (!arguments.length) return _error; - _error = val; - return improveOsmHeader; - }; - - - return improveOsmHeader; -} diff --git a/modules/ui/index.js b/modules/ui/index.js index f23b23c86f..4d5d6984c8 100644 --- a/modules/ui/index.js +++ b/modules/ui/index.js @@ -31,11 +31,9 @@ export { uiHelp } from './help'; export { uiImproveOsmComments } from './improveOSM_comments'; export { uiImproveOsmDetails } from './improveOSM_details'; export { uiImproveOsmEditor } from './improveOSM_editor'; -export { uiImproveOsmHeader } from './improveOSM_header'; export { uiInfo } from './info'; export { uiKeepRightDetails } from './keepRight_details'; export { uiKeepRightEditor } from './keepRight_editor'; -export { uiKeepRightHeader } from './keepRight_header'; export { uiLasso } from './lasso'; export { uiLoading } from './loading'; export { uiMapData } from './map_data'; diff --git a/modules/ui/keepRight_editor.js b/modules/ui/keepRight_editor.js index 3a88cb767a..95e7b375e8 100644 --- a/modules/ui/keepRight_editor.js +++ b/modules/ui/keepRight_editor.js @@ -1,54 +1,29 @@ -import { dispatch as d3_dispatch } from 'd3-dispatch'; import { select as d3_select } from 'd3-selection'; import { t } from '../util/locale'; import { services } from '../services'; import { modeBrowse } from '../modes/browse'; -import { svgIcon } from '../svg/icon'; +import { modeSelectError } from '../modes/select_error'; import { uiKeepRightDetails } from './keepRight_details'; -import { uiKeepRightHeader } from './keepRight_header'; import { uiViewOnKeepRight } from './view_on_keepRight'; -import { utilNoAuto, utilRebind } from '../util'; +import { utilNoAuto } from '../util'; export function uiKeepRightEditor(context) { - var dispatch = d3_dispatch('change'); var keepRightDetails = uiKeepRightDetails(context); - var keepRightHeader = uiKeepRightHeader(context); var _error; - function keepRightEditor(selection) { - var header = selection.selectAll('.header') - .data([0]); - - var headerEnter = header.enter() - .append('div') - .attr('class', 'header fillL'); - - headerEnter - .append('button') - .attr('class', 'fr error-editor-close') - .on('click', function() { - context.enter(modeBrowse(context)); - }) - .call(svgIcon('#iD-icon-close')); - - headerEnter - .append('h3') - .text(t('QA.keepRight.title')); - - var body = selection.selectAll('.inspector-body') .data([0]); body = body.enter() .append('div') - .attr('class', 'inspector-body') + .attr('class', 'inspector-body sep-top') .merge(body); var editor = body.selectAll('.error-editor') @@ -58,7 +33,6 @@ export function uiKeepRightEditor(context) { .append('div') .attr('class', 'modal-section error-editor') .merge(editor) - .call(keepRightHeader.error(_error)) .call(keepRightDetails.error(_error)) .call(keepRightSaveSection); @@ -75,7 +49,7 @@ export function uiKeepRightEditor(context) { function keepRightSaveSection(selection) { - var isSelected = (_error && _error.id === context.selectedErrorID()); + var isSelected = (_error && context.mode().selectedErrorID && _error.id === context.mode().selectedErrorID()); var isShown = (_error && (isSelected || _error.newComment || _error.comment)); var saveSection = selection.selectAll('.error-save') .data( @@ -136,7 +110,7 @@ export function uiKeepRightEditor(context) { function keepRightSaveButtons(selection) { - var isSelected = (_error && _error.id === context.selectedErrorID()); + var isSelected = (_error && context.mode().selectedErrorID && _error.id === context.mode().selectedErrorID()); var buttonSection = selection.selectAll('.buttons') .data((isSelected ? [_error] : []), function(d) { return d.status + d.id; }); @@ -175,9 +149,7 @@ export function uiKeepRightEditor(context) { this.blur(); // avoid keeping focus on the button - #4641 var keepRight = services.keepRight; if (keepRight) { - keepRight.postKeepRightUpdate(d, function(err, error) { - dispatch.call('change', error); - }); + keepRight.postKeepRightUpdate(d, remoteUpdateCallback); } }); @@ -191,9 +163,7 @@ export function uiKeepRightEditor(context) { var keepRight = services.keepRight; if (keepRight) { d.state = 'ignore_t'; // ignore temporarily (error fixed) - keepRight.postKeepRightUpdate(d, function(err, error) { - dispatch.call('change', error); - }); + keepRight.postKeepRightUpdate(d, remoteUpdateCallback); } }); @@ -207,13 +177,21 @@ export function uiKeepRightEditor(context) { var keepRight = services.keepRight; if (keepRight) { d.state = 'ignore'; // ignore permanently (false positive) - keepRight.postKeepRightUpdate(d, function(err, error) { - dispatch.call('change', error); - }); + keepRight.postKeepRightUpdate(d, remoteUpdateCallback); } }); } + function remoteUpdateCallback(err, error) { + context.map().pan([0,0]); // trigger a redraw + + if (err || !error || !error.id) { + context.enter(modeBrowse(context)); + } else { + context.enter(modeSelectError(context, error.id, 'keepRight')); + } + } + keepRightEditor.error = function(val) { if (!arguments.length) return _error; @@ -222,5 +200,5 @@ export function uiKeepRightEditor(context) { }; - return utilRebind(keepRightEditor, dispatch, 'on'); + return keepRightEditor; } diff --git a/modules/ui/keepRight_header.js b/modules/ui/keepRight_header.js deleted file mode 100644 index b2d4130a17..0000000000 --- a/modules/ui/keepRight_header.js +++ /dev/null @@ -1,71 +0,0 @@ -import { dataEn } from '../../data'; -import { svgIcon } from '../svg/icon'; -import { t } from '../util/locale'; - - -export function uiKeepRightHeader() { - var _error; - - - function errorTitle(d) { - var unknown = t('inspector.unknown'); - - if (!d) return unknown; - var errorType = d.error_type; - var parentErrorType = d.parent_error_type; - - var et = dataEn.QA.keepRight.errorTypes[errorType]; - var pt = dataEn.QA.keepRight.errorTypes[parentErrorType]; - - if (et && et.title) { - return t('QA.keepRight.errorTypes.' + errorType + '.title'); - } else if (pt && pt.title) { - return t('QA.keepRight.errorTypes.' + parentErrorType + '.title'); - } else { - return unknown; - } - } - - - function keepRightHeader(selection) { - var header = selection.selectAll('.error-header') - .data( - (_error ? [_error] : []), - function(d) { return d.id + '-' + (d.status || 0); } - ); - - header.exit() - .remove(); - - var headerEnter = header.enter() - .append('div') - .attr('class', 'error-header'); - - var iconEnter = headerEnter - .append('div') - .attr('class', 'error-header-icon') - .classed('new', function(d) { return d.id < 0; }); - - iconEnter - .append('div') - .attr('class', function(d) { - return 'preset-icon-28 qa_error ' + d.service + ' error_id-' + d.id + ' error_type-' + d.parent_error_type; - }) - .call(svgIcon('#iD-icon-bolt', 'qa_error-fill')); - - headerEnter - .append('div') - .attr('class', 'error-header-label') - .text(errorTitle); - } - - - keepRightHeader.error = function(val) { - if (!arguments.length) return _error; - _error = val; - return keepRightHeader; - }; - - - return keepRightHeader; -} diff --git a/modules/ui/sidebar.js b/modules/ui/sidebar.js index b66e137070..356d155a9c 100644 --- a/modules/ui/sidebar.js +++ b/modules/ui/sidebar.js @@ -9,18 +9,12 @@ import { selectAll as d3_selectAll } from 'd3-selection'; -import { qaError } from '../osm'; -import { services } from '../services'; import { uiDataEditor } from './data_editor'; -import { uiImproveOsmEditor } from './improveOSM_editor'; -import { uiKeepRightEditor } from './keepRight_editor'; import { textDirection } from '../util/locale'; export function uiSidebar(context) { var dataEditor = uiDataEditor(context); - var improveOsmEditor = uiImproveOsmEditor(context); - var keepRightEditor = uiKeepRightEditor(context); var _current; var _wasData = false; var _wasNote = false; @@ -98,27 +92,6 @@ export function uiSidebar(context) { selection.selectAll('.sidebar-component') .classed('inspector-hover', true); - } else if (datum instanceof qaError) { - _wasQAError = true; - - var errService = services[datum.service]; - if (errService) { - // marker may contain stale data - get latest - datum = errService.getError(datum.id); - } - - // Temporary solution while only two services - var errEditor = (datum.service === 'keepRight') ? keepRightEditor : improveOsmEditor; - - d3_selectAll('.qa_error.' + datum.service) - .classed('hover', function(d) { return d.id === datum.id; }); - - sidebar - .show(errEditor.error(datum)); - - selection.selectAll('.sidebar-component') - .classed('inspector-hover', true); - } else if (!_current) { inspectorWrap .classed('inspector-hidden', true); From 2d4369bf917e767028bbd050d1a3b34c467794ea Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 2 Jul 2019 10:01:00 -0400 Subject: [PATCH 119/774] Move custom data editor to the assistant --- css/80_app.css | 1 + data/core.yaml | 1 + dist/locales/en.json | 3 ++- modules/modes/select_data.js | 12 +++------ modules/ui/assistant.js | 21 ++++++++++++++++ modules/ui/data_editor.js | 33 ++----------------------- modules/ui/data_header.js | 47 ------------------------------------ modules/ui/index.js | 1 - modules/ui/sidebar.js | 32 ++---------------------- 9 files changed, 32 insertions(+), 119 deletions(-) delete mode 100644 modules/ui/data_header.js diff --git a/css/80_app.css b/css/80_app.css index 8c4c2fcfd6..72144e2ea9 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -1102,6 +1102,7 @@ a.hide-toggle { .assistant .assistant-body { display: flex; flex-direction: column; + position: relative; } .assistant.body-collapsed .assistant-body { display: none; diff --git a/data/core.yaml b/data/core.yaml index e6e91017cf..69da5e8278 100644 --- a/data/core.yaml +++ b/data/core.yaml @@ -43,6 +43,7 @@ en: mapping: Mapping editing: Editing saving: Saving + viewing: Viewing instructions: add_point: Click or tap the center of the feature. add_line: Click or tap the starting location. diff --git a/dist/locales/en.json b/dist/locales/en.json index b062430eb1..8bd52398de 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -54,7 +54,8 @@ "drawing": "Drawing", "mapping": "Mapping", "editing": "Editing", - "saving": "Saving" + "saving": "Saving", + "viewing": "Viewing" }, "instructions": { "add_point": "Click or tap the center of the feature.", diff --git a/modules/modes/select_data.js b/modules/modes/select_data.js index 0a6e3c5da3..09393290f5 100644 --- a/modules/modes/select_data.js +++ b/modules/modes/select_data.js @@ -16,7 +16,6 @@ import { geoExtent } from '../geo'; import { modeBrowse } from './browse'; import { modeDragNode } from './drag_node'; import { modeDragNote } from './drag_note'; -import { uiDataEditor } from '../ui/data_editor'; import { utilKeybinding } from '../util'; @@ -27,7 +26,6 @@ export function modeSelectData(context, selectedDatum) { }; var keybinding = utilKeybinding('select-data'); - var dataEditor = uiDataEditor(context); var behaviors = [ behaviorBreathe(context), @@ -61,6 +59,9 @@ export function modeSelectData(context, selectedDatum) { context.enter(modeBrowse(context)); } + mode.selectedDatum = function() { + return selectedDatum; + }; mode.zoomToSelected = function() { var extent = geoExtent(d3_geoBounds(selectedDatum)); @@ -80,13 +81,6 @@ export function modeSelectData(context, selectedDatum) { selectData(); - var sidebar = context.ui().sidebar; - sidebar.show(dataEditor.datum(selectedDatum)); - - // expand the sidebar, avoid obscuring the data if needed - var extent = geoExtent(d3_geoBounds(selectedDatum)); - sidebar.expand(sidebar.intersects(extent)); - context.map() .on('drawn.select-data', selectData); }; diff --git a/modules/ui/assistant.js b/modules/ui/assistant.js index f7bb38a919..f91a9f39aa 100644 --- a/modules/ui/assistant.js +++ b/modules/ui/assistant.js @@ -16,6 +16,7 @@ import { uiSelectionList } from './selection_list'; import { uiNoteEditor } from './note_editor'; import { uiKeepRightEditor } from './keepRight_editor'; import { uiImproveOsmEditor } from './improveOSM_editor'; +import { uiDataEditor } from './data_editor'; import { geoRawMercator } from '../geo/raw_mercator'; import { decimalCoordinatePair, formattedRoundedDuration } from '../util/units'; @@ -225,6 +226,8 @@ export function uiAssistant(context) { } else if (mode.selectedErrorService() === 'improveOSM') { return panelSelectImproveOSMError(context, mode.selectedErrorID()); } + } else if (mode.id === 'select-data') { + return panelSelectCustomData(context, mode.selectedDatum()); } else if (!didEditAnythingYet) { if (savedChangeset) { @@ -570,6 +573,24 @@ export function uiAssistant(context) { return panel; } + function panelSelectCustomData(context, datum) { + + var panel = { + theme: 'light', + modeLabel: t('assistant.mode.viewing'), + headerIcon: 'iD-icon-data', + title: t('map_data.layers.custom.title') + }; + + panel.renderBody = function(selection) { + var editor = uiDataEditor(context) + .datum(datum); + selection.call(editor); + }; + + return panel; + } + function panelSelectNote(context, note) { var panel = { diff --git a/modules/ui/data_editor.js b/modules/ui/data_editor.js index 973e60b75b..695752ba89 100644 --- a/modules/ui/data_editor.js +++ b/modules/ui/data_editor.js @@ -1,45 +1,19 @@ -import { t } from '../util/locale'; -import { modeBrowse } from '../modes/browse'; -import { svgIcon } from '../svg/icon'; -import { uiDataHeader } from './data_header'; import { uiRawTagEditor } from './raw_tag_editor'; - export function uiDataEditor(context) { - var dataHeader = uiDataHeader(); var rawTagEditor = uiRawTagEditor(context); var _datum; function dataEditor(selection) { - var header = selection.selectAll('.header') - .data([0]); - - var headerEnter = header.enter() - .append('div') - .attr('class', 'header fillL'); - - headerEnter - .append('button') - .attr('class', 'fr data-editor-close') - .on('click', function() { - context.enter(modeBrowse(context)); - }) - .call(svgIcon('#iD-icon-close')); - - headerEnter - .append('h3') - .text(t('map_data.title')); - - var body = selection.selectAll('.inspector-body') .data([0]); body = body.enter() .append('div') - .attr('class', 'inspector-body') + .attr('class', 'inspector-body sep-top') .merge(body); var editor = body.selectAll('.data-editor') @@ -47,10 +21,7 @@ export function uiDataEditor(context) { // enter/update editor.enter() - .append('div') - .attr('class', 'modal-section data-editor') - .merge(editor) - .call(dataHeader.datum(_datum)); + .merge(editor); var rte = body.selectAll('.raw-tag-editor') .data([0]); diff --git a/modules/ui/data_header.js b/modules/ui/data_header.js deleted file mode 100644 index cacbc198ec..0000000000 --- a/modules/ui/data_header.js +++ /dev/null @@ -1,47 +0,0 @@ -import { t } from '../util/locale'; -import { svgIcon } from '../svg/icon'; - - -export function uiDataHeader() { - var _datum; - - - function dataHeader(selection) { - var header = selection.selectAll('.data-header') - .data( - (_datum ? [_datum] : []), - function(d) { return d.__featurehash__; } - ); - - header.exit() - .remove(); - - var headerEnter = header.enter() - .append('div') - .attr('class', 'data-header'); - - var iconEnter = headerEnter - .append('div') - .attr('class', 'data-header-icon'); - - iconEnter - .append('div') - .attr('class', 'preset-icon-28') - .call(svgIcon('#iD-icon-data', 'note-fill')); - - headerEnter - .append('div') - .attr('class', 'data-header-label') - .text(t('map_data.layers.custom.title')); - } - - - dataHeader.datum = function(val) { - if (!arguments.length) return _datum; - _datum = val; - return this; - }; - - - return dataHeader; -} diff --git a/modules/ui/index.js b/modules/ui/index.js index 4d5d6984c8..d0a903cd47 100644 --- a/modules/ui/index.js +++ b/modules/ui/index.js @@ -15,7 +15,6 @@ export { uiConflicts } from './conflicts'; export { uiContributors } from './contributors'; export { uiCurtain } from './curtain'; export { uiDataEditor } from './data_editor'; -export { uiDataHeader } from './data_header'; export { uiDisclosure } from './disclosure'; export { uiEditMenu } from './edit_menu'; export { uiEntityEditor } from './entity_editor'; diff --git a/modules/ui/sidebar.js b/modules/ui/sidebar.js index 356d155a9c..e8a245c553 100644 --- a/modules/ui/sidebar.js +++ b/modules/ui/sidebar.js @@ -5,20 +5,14 @@ import { interpolateNumber as d3_interpolateNumber } from 'd3-interpolate'; import { select as d3_select, - event as d3_event, - selectAll as d3_selectAll + event as d3_event } from 'd3-selection'; -import { uiDataEditor } from './data_editor'; import { textDirection } from '../util/locale'; export function uiSidebar(context) { - var dataEditor = uiDataEditor(context); var _current; - var _wasData = false; - var _wasNote = false; - var _wasQAError = false; function sidebar(selection) { @@ -80,30 +74,8 @@ export function uiSidebar(context) { .attr('class', 'inspector-hidden inspector-wrap entity-editor-pane'); - function hover(datum) { + function hover() { // disable hover preview for now - return; - - if (datum && datum.__featurehash__) { // hovering on data - _wasData = true; - sidebar - .show(dataEditor.datum(datum)); - - selection.selectAll('.sidebar-component') - .classed('inspector-hover', true); - - } else if (!_current) { - inspectorWrap - .classed('inspector-hidden', true); - - } else if (_wasData || _wasNote || _wasQAError) { - _wasNote = false; - _wasData = false; - _wasQAError = false; - d3_selectAll('.note').classed('hover', false); - d3_selectAll('.qa_error').classed('hover', false); - sidebar.hide(); - } } sidebar.hover = _throttle(hover, 200); From 05b47f5b38ce31b1ee09d0a888dd492aed2c6cf2 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 2 Jul 2019 11:21:41 -0400 Subject: [PATCH 120/774] Draw point markers in small preset icons with no icon specified --- modules/ui/preset_icon.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ui/preset_icon.js b/modules/ui/preset_icon.js index ed819803ad..a6275370f5 100644 --- a/modules/ui/preset_icon.js +++ b/modules/ui/preset_icon.js @@ -209,7 +209,7 @@ export function uiPresetIcon(context) { var isTnp = picon && /^tnp-/.test(picon); var isiDIcon = picon && !(isMaki || isTemaki || isFa || isTnp); var isCategory = !p.setTags; - var drawPoint = picon && geom === 'point' && pointMarker && !isFallback; + var drawPoint = geom === 'point' && pointMarker && !isFallback; var drawVertex = picon !== null && geom === 'vertex' && (!isSmall() || !isFallback); var drawLine = picon && geom === 'line' && !isFallback && !isCategory; var drawArea = picon && geom === 'area' && !isFallback; From 7e56b5f931c20ebe3ca0dc9632b4ccd4d9878ed6 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 2 Jul 2019 13:09:16 -0400 Subject: [PATCH 121/774] Move commit UI into the assistant Add assistant status message when the user is authenticating --- css/80_app.css | 1 - data/core.yaml | 6 ++++- dist/locales/en.json | 7 +++++- modules/modes/save.js | 38 +++++++++-------------------- modules/ui/assistant.js | 28 ++++++++++++++++++--- modules/ui/commit.js | 51 ++++++++++----------------------------- modules/ui/top_toolbar.js | 5 +++- 7 files changed, 64 insertions(+), 72 deletions(-) diff --git a/css/80_app.css b/css/80_app.css index 72144e2ea9..0589df1e37 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -1003,7 +1003,6 @@ a.hide-toggle { margin-bottom: 10px; max-width: 350px; max-height: 100%; - line-height: 1.35em; background: rgba(45, 41, 41, 0.90); color: #fff; diff --git a/data/core.yaml b/data/core.yaml index 69da5e8278..c21e91ccd7 100644 --- a/data/core.yaml +++ b/data/core.yaml @@ -39,9 +39,10 @@ en: assistant: mode: adding: Adding + authenticating: Authenticating drawing: Drawing - mapping: Mapping editing: Editing + mapping: Mapping saving: Saving viewing: Viewing instructions: @@ -69,6 +70,9 @@ en: count_loc_time: "You have {count} unsaved changes from {duration} ago around {location}." ask: Would you like to restore them? commit: + auth: + osm_account: OpenStreetMap Account + message: You must sign in to upload your changes. success: thank_you: Thank You! just_improved: "You've just improved OpenStreetMap around {location}." diff --git a/dist/locales/en.json b/dist/locales/en.json index 8bd52398de..13e66da72c 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -51,9 +51,10 @@ "assistant": { "mode": { "adding": "Adding", + "authenticating": "Authenticating", "drawing": "Drawing", - "mapping": "Mapping", "editing": "Editing", + "mapping": "Mapping", "saving": "Saving", "viewing": "Viewing" }, @@ -86,6 +87,10 @@ "ask": "Would you like to restore them?" }, "commit": { + "auth": { + "osm_account": "OpenStreetMap Account", + "message": "You must sign in to upload your changes." + }, "success": { "thank_you": "Thank You!", "just_improved": "You've just improved OpenStreetMap around {location}.", diff --git a/modules/modes/save.js b/modules/modes/save.js index 4d4315fc3e..f03afd515a 100644 --- a/modules/modes/save.js +++ b/modules/modes/save.js @@ -7,10 +7,8 @@ import { actionNoop } from '../actions/noop'; import { actionRevert } from '../actions/revert'; import { coreGraph } from '../core/graph'; import { modeBrowse } from './browse'; -import { modeSelect } from './select'; import { uiConflicts } from '../ui/conflicts'; import { uiConfirm } from '../ui/confirm'; -import { uiCommit } from '../ui/commit'; import { uiLoading } from '../ui/loading'; import { utilArrayUnion, utilArrayUniq, utilDisplayName, utilDisplayType, utilKeybinding } from '../util'; @@ -26,10 +24,6 @@ export function modeSave(context) { .message(t('save.uploading')) .blocking(true); - var commit = uiCommit(context) - .on('cancel', cancel) - .on('save', save); - var _toCheck = []; var _toLoad = []; var _loaded = {}; @@ -41,16 +35,12 @@ export function modeSave(context) { var _origChanges; - function cancel(selectedID) { - if (selectedID) { - context.enter(modeSelect(context, [selectedID])); - } else { - context.enter(modeBrowse(context)); - } + function cancel() { + context.enter(modeBrowse(context)); } - function save(changeset, tryAgain, checkConflicts) { + mode.save = function(changeset, tryAgain, checkConflicts) { // Guard against accidentally entering save code twice - #4641 if (_isSaving && !tryAgain) { return; @@ -69,7 +59,7 @@ export function modeSave(context) { if (err) { cancel(); // quit save mode.. } else { - save(changeset, tryAgain, checkConflicts); // continue where we left off.. + mode.save(changeset, tryAgain, checkConflicts); // continue where we left off.. } }); return; @@ -264,7 +254,7 @@ export function modeSave(context) { upload(changeset); } - } + }; function upload(changeset) { @@ -299,7 +289,7 @@ export function modeSave(context) { function uploadCallback(err, changeset) { if (err) { if (err.status === 409) { // 409 Conflict - save(changeset, true, true); // tryAgain = true, checkConflicts = true + mode.save(changeset, true, true); // tryAgain = true, checkConflicts = true } else { _errors.push({ msg: err.message || err.responseText, @@ -312,7 +302,6 @@ export function modeSave(context) { var changeCount = context.history().difference().summary().length; context.history().clearSaved(); - commit.reset(); context.enter(modeBrowse(context)); context.ui().assistant.didSaveChangset(changeset, changeCount); @@ -344,7 +333,7 @@ export function modeSave(context) { function showConflicts(changeset) { var history = context.history(); var selection = context.container() - .select('#sidebar') + .select('.assistant') .append('div') .attr('class','sidebar-component'); @@ -374,7 +363,7 @@ export function modeSave(context) { } selection.remove(); - save(changeset, true, false); // tryAgain = true, checkConflicts = false + mode.save(changeset, true, false); // tryAgain = true, checkConflicts = false }); selection.call(ui); @@ -463,10 +452,6 @@ export function modeSave(context) { // Show sidebar context.ui().sidebar.expand(); - function done() { - context.ui().sidebar.show(commit); - } - keybindingOn(); context.container().selectAll('#content') @@ -478,14 +463,13 @@ export function modeSave(context) { return; } - if (osm.authenticated()) { - done(); - } else { + if (!osm.authenticated()) { osm.authenticate(function(err) { if (err) { cancel(); } else { - done(); + // reload + context.enter(mode); } }); } diff --git a/modules/ui/assistant.js b/modules/ui/assistant.js index f91a9f39aa..135f9c8ec7 100644 --- a/modules/ui/assistant.js +++ b/modules/ui/assistant.js @@ -17,6 +17,7 @@ import { uiNoteEditor } from './note_editor'; import { uiKeepRightEditor } from './keepRight_editor'; import { uiImproveOsmEditor } from './improveOSM_editor'; import { uiDataEditor } from './data_editor'; +import { uiCommit } from './commit'; import { geoRawMercator } from '../geo/raw_mercator'; import { decimalCoordinatePair, formattedRoundedDuration } from '../util/units'; @@ -198,7 +199,11 @@ export function uiAssistant(context) { if (mode.id === 'save') { - return panelSave(context); + if (context.connection() && context.connection().authenticated()) { + return panelSave(context); + } else { + return panelAuthenticating(context); + } } else if (mode.id === 'add-point' || mode.id === 'add-line' || mode.id === 'add-area' || mode.id === 'draw-line' || @@ -215,8 +220,7 @@ export function uiAssistant(context) { return panelSelectMultiple(context, selectedIDs); } else if (mode.id === 'select-note') { - var osm = context.connection(); - var note = osm && osm.getNote(mode.selectedNoteID()); + var note = context.connection() && context.connection().getNote(mode.selectedNoteID()); if (note) { return panelSelectNote(context, note); } @@ -699,6 +703,19 @@ export function uiAssistant(context) { return panel; } + + function panelAuthenticating() { + + var panel = { + headerIcon: 'iD-icon-save', + modeLabel: t('assistant.mode.authenticating'), + title: t('assistant.commit.auth.osm_account'), + message: t('assistant.commit.auth.message') + }; + + return panel; + } + function panelSave(context) { var summary = context.history().difference().summary(); @@ -711,6 +728,11 @@ export function uiAssistant(context) { title: t('commit.' + titleID, { count: summary.length }) }; + panel.renderBody = function(selection) { + var editor = uiCommit(context); + selection.call(editor); + }; + return panel; } diff --git a/modules/ui/commit.js b/modules/ui/commit.js index 7f6f854b05..e38c26b7da 100644 --- a/modules/ui/commit.js +++ b/modules/ui/commit.js @@ -1,18 +1,17 @@ -import { dispatch as d3_dispatch } from 'd3-dispatch'; import { select as d3_select } from 'd3-selection'; import deepEqual from 'fast-deep-equal'; import { t } from '../util/locale'; +import { modeSelect } from '../modes/select'; import { modeBrowse } from '../modes/browse'; import { osmChangeset } from '../osm'; -import { svgIcon } from '../svg/icon'; import { services } from '../services'; import { tooltip } from '../util/tooltip'; import { uiChangesetEditor } from './changeset_editor'; import { uiCommitChanges } from './commit_changes'; import { uiCommitWarnings } from './commit_warnings'; import { uiRawTagEditor } from './raw_tag_editor'; -import { utilArrayGroupBy, utilRebind } from '../util'; +import { utilArrayGroupBy } from '../util'; import { utilDetect } from '../util/detect'; @@ -33,7 +32,6 @@ var hashtagRegex = /(#[^\u2000-\u206F\u2E00-\u2E7F\s\\'!"#$%()*,.\/:;<=>?@\[\]^` export function uiCommit(context) { - var dispatch = d3_dispatch('cancel', 'save'); var _userDetails; var _selection; @@ -160,37 +158,12 @@ export function uiCommit(context) { _changeset = _changeset.update({ tags: tags }); - var header = selection.selectAll('.header') - .data([0]); - - var headerTitle = header.enter() - .append('div') - .attr('class', 'header fillL header-container'); - - headerTitle - .append('div') - .attr('class', 'header-block header-block-outer'); - - headerTitle - .append('div') - .attr('class', 'header-block') - .append('h3') - .text(t('commit.title')); - - headerTitle - .append('div') - .attr('class', 'header-block header-block-outer header-block-close') - .append('button') - .attr('class', 'close') - .on('click', function() { context.enter(modeBrowse(context)); }) - .call(svgIcon('#iD-icon-close')); - var body = selection.selectAll('.inspector-body') .data([0]); body = body.enter() .append('div') - .attr('class', 'inspector-body') + .attr('class', 'inspector-body sep-top') .merge(body); @@ -330,7 +303,11 @@ export function uiCommit(context) { buttonSection.selectAll('.cancel-button') .on('click.cancel', function() { var selectedID = commitChanges.entityID(); - dispatch.call('cancel', this, selectedID); + if (selectedID) { + context.enter(modeSelect(context, [selectedID])); + } else { + context.enter(modeBrowse(context)); + } }); buttonSection.selectAll('.save-button') @@ -338,7 +315,10 @@ export function uiCommit(context) { .on('click.save', function() { if (!d3_select(this).classed('disabled')) { this.blur(); // avoid keeping focus on the button - #4641 - dispatch.call('save', this, _changeset); + var mode = context.mode(); + if (mode.id === 'save' && mode.save) { + mode.save(_changeset); + } } }); @@ -554,10 +534,5 @@ export function uiCommit(context) { } - commit.reset = function() { - _changeset = null; - }; - - - return utilRebind(commit, dispatch, 'on'); + return commit; } diff --git a/modules/ui/top_toolbar.js b/modules/ui/top_toolbar.js index d473accf20..34042b7d5d 100644 --- a/modules/ui/top_toolbar.js +++ b/modules/ui/top_toolbar.js @@ -66,7 +66,10 @@ export function uiTopToolbar(context) { var mode = context.mode(); if (!mode) return tools; - if (mode.id === 'select' && + if (mode.id === 'save') { + tools.push(cancelDrawing); + tools.push('spacer'); + } else if (mode.id === 'select' && !mode.newFeature() && mode.selectedIDs().every(function(id) { return context.graph().hasEntity(id); })) { From 0cee9848d908a59092d0d1b17f371e8c5d3a7042 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 2 Jul 2019 17:53:14 -0400 Subject: [PATCH 122/774] Remove old sidebar and toggle button entirely Make the assistant horizontally resizable Fix issue where restrictions editor would not display Fix tooltip placement for first and last toolbar items --- css/80_app.css | 174 ++++++++------------------ data/core.yaml | 4 - dist/locales/en.json | 5 - modules/behavior/draw.js | 4 +- modules/modes/browse.js | 3 +- modules/modes/drag_node.js | 4 +- modules/modes/drag_note.js | 1 - modules/modes/save.js | 8 +- modules/modes/select.js | 1 - modules/modes/select_data.js | 3 - modules/modes/select_note.js | 3 - modules/ui/assistant.js | 39 +++++- modules/ui/field_help.js | 2 +- modules/ui/fields/restrictions.js | 8 +- modules/ui/index.js | 1 - modules/ui/init.js | 19 +-- modules/ui/intro/intro.js | 6 - modules/ui/sidebar.js | 188 ----------------------------- modules/ui/tools/index.js | 1 - modules/ui/tools/sidebar_toggle.js | 34 ------ modules/ui/top_toolbar.js | 8 +- modules/validations/missing_tag.js | 2 +- 22 files changed, 109 insertions(+), 409 deletions(-) delete mode 100644 modules/ui/sidebar.js delete mode 100644 modules/ui/tools/sidebar_toggle.js diff --git a/css/80_app.css b/css/80_app.css index 0589df1e37..d5fd57e2ce 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -667,13 +667,13 @@ button.add-note svg.icon { [dir='rtl'] .preset-browser.popover { right: 0; } -#sidebar .preset-browser.popover { +.assistant .preset-browser.popover { top: 84px; } -[dir='ltr'] #sidebar .preset-browser.popover { +[dir='ltr'] .assistant .preset-browser.popover { left: 20px; } -[dir='rtl'] #sidebar .preset-browser.popover { +[dir='rtl'] .assistant .preset-browser.popover { right: 20px; } .preset-browser input[type='search'] { @@ -893,9 +893,6 @@ button.add-preset.disabled .preset-icon-container { } .field-help-title button.close, -.sidebar-component .header button.data-editor-close, -.sidebar-component .header button.note-editor-close, -.sidebar-component .header button.error-editor-close, .entity-editor-pane .header button.preset-close, .preset-list-pane .header button.preset-choose { position: absolute; @@ -903,9 +900,6 @@ button.add-preset.disabled .preset-icon-container { top: 0; } [dir='rtl'] .field-help-title button.close, -[dir='rtl'] .sidebar-component .header button.data-editor-close, -[dir='rtl'] .sidebar-component .header button.note-editor-close, -[dir='rtl'] .sidebar-component .header button.error-editor-close, [dir='rtl'] .entity-editor-pane .header button.preset-close, [dir='rtl'] .preset-list-pane .header button.preset-choose { left: 0; @@ -995,14 +989,28 @@ a.hide-toggle { /* Assistant ------------------------------------------------------- */ +.assistant-wrap { + position: relative; + height: 100%; + padding: 10px; + flex: 0 0 auto; + pointer-events: none; + display: flex; + flex-direction: column; + max-width: 100%; +} +.assistant-wrap > * { + pointer-events: auto; +} .assistant { flex: 0 0 auto; border-radius: 4px; display: flex; flex-direction: column; margin-bottom: 10px; - max-width: 350px; + max-width: 100%; max-height: 100%; + position: relative; background: rgba(45, 41, 41, 0.90); color: #fff; @@ -1031,9 +1039,28 @@ a.hide-toggle { display: flex; flex: 0 0 auto; } +.assistant.body-collapsed { + width: auto !important; + max-width: 350px; +} .assistant:not(.body-collapsed) { min-width: 250px; } +.assistant > .resizer-x { + position: absolute; + top: 0; + right: -6px; + height: 100%; + width: 6px; + cursor: col-resize; +} +[dir='rtl'] .assistant > .resizer-x { + right: auto; + left: -6px; +} +.assistant.body-collapsed > .resizer-x { + display: none; +} /* assistant header */ .assistant .assistant-header { @@ -1378,72 +1405,8 @@ a.hide-toggle { } -/* Sidebar / Inspector +/* Inspector ------------------------------------------------------- */ -.sidebar-wrap { - position: relative; - height: 100%; - padding-left: 10px; - padding-top: 10px; - padding-bottom: 10px; - flex: 0 0 auto; - pointer-events: none; - display: flex; - flex-direction: column; -} -[dir='rtl'] .sidebar-wrap { - padding-left: auto; - padding-right: 10px; -} -.sidebar-wrap > * { - pointer-events: auto; -} - -#sidebar { - position: relative; - max-height: 100%; - z-index: 10; - background: rgba(246, 246, 246, 0.98); - -ms-user-select: element; - border-radius: 6px; - -webkit-backdrop-filter: blur(1.5px); - backdrop-filter: blur(1.5px); - -webkit-box-shadow: 0px 0px 8px 0px rgba(0,0,0,0.29); - -moz-box-shadow: 0px 0px 8px 0px rgba(0,0,0,0.29); - box-shadow: 0px 0px 8px 0px rgba(0,0,0,0.29); - display: flex; -} - -#sidebar-resizer { - position: absolute; - top: 0; - right: -6px; - height: 100%; - width: 6px; - cursor: col-resize; -} -[dir='rtl'] #sidebar-resizer { - right: auto; - left: -6px; -} - -#sidebar.collapsed #sidebar-resizer { - /* make target wider to avoid the user accidentally resizing window */ - width: 10px; - right: -10px; -} -[dir='rtl'] #sidebar.collapsed #sidebar-resizer { - left: -10px; -} - -.sidebar-component { - width: 100%; - display: flex; - flex-direction: column; - border-radius: 4px; - border: 1px solid #ccc; -} - .entity-editor-pane { width: 100%; display: flex; @@ -1486,30 +1449,6 @@ a.hide-toggle { position: relative; } -#sidebar .search-header .icon { - display: block; - position: absolute; - left: 10px; - top: 80px; - pointer-events: none; -} -[dir='rtl'] #sidebar .search-header .icon { - left: auto; - right: 10px; -} - -#sidebar .search-header input { - height: 60px; - width: 100%; - padding: 5px 10px; - border-radius: 0; - border-width: 0; - border-bottom-width: 1px; - text-indent: 30px; - font-size: 18px; - font-weight: bold; -} - /* Preset List and Icons ------------------------------------------------------- */ @@ -5511,23 +5450,19 @@ svg.mouseclick use.right { /* dark tooltips for sidebar / panels */ .tooltip.dark.top .tooltip-arrow, -.map-pane .tooltip.top .tooltip-arrow, -#sidebar .tooltip.top .tooltip-arrow { +.map-pane .tooltip.top .tooltip-arrow { border-top-color: #000; } .tooltip.dark.bottom .tooltip-arrow, -.map-pane .tooltip.bottom .tooltip-arrow, -#sidebar .tooltip.bottom .tooltip-arrow { +.map-pane .tooltip.bottom .tooltip-arrow { border-bottom-color: #000; } .tooltip.dark.left .tooltip-arrow, -.map-pane .tooltip.left .tooltip-arrow, -#sidebar .tooltip.left .tooltip-arrow { +.map-pane .tooltip.left .tooltip-arrow { border-left-color: #000; } .tooltip.dark.right .tooltip-arrow, -.map-pane .tooltip.right .tooltip-arrow, -#sidebar .tooltip.right .tooltip-arrow { +.map-pane .tooltip.right .tooltip-arrow { border-right-color: #000; } .tooltip.dark .tooltip-inner, @@ -5535,10 +5470,7 @@ svg.mouseclick use.right { .tooltip.dark .keyhint-wrap, .map-pane .tooltip-inner, .map-pane .tooltip-heading, -.map-pane .keyhint-wrap, -#sidebar .tooltip-inner, -#sidebar .tooltip-heading, -#sidebar .keyhint-wrap { +.map-pane .keyhint-wrap { background: #000; color: #ccc; } @@ -5559,33 +5491,33 @@ svg.mouseclick use.right { } /* Move over tooltips that are near the edge of screen */ -[dir='ltr'] .sidebar-toggle .tooltip { +[dir='ltr'] #bar .toolbar-item:first-child .bar-button .tooltip { left: 0 !important; } -[dir='rtl'] .sidebar-toggle .tooltip { +[dir='rtl'] #bar .toolbar-item:first-child .bar-button .tooltip { right: 0 !important; } -[dir='ltr'] .sidebar-toggle .tooltip .tooltip-arrow { +[dir='ltr'] #bar .toolbar-item:first-child .bar-button .tooltip .tooltip-arrow { left: 20px; } -[dir='rtl'] .sidebar-toggle .tooltip .tooltip-arrow { +[dir='rtl'] #bar .toolbar-item:first-child .bar-button .tooltip .tooltip-arrow { right: 20px; } -[dir='ltr'] .save .tooltip { +[dir='ltr'] #bar .toolbar-item:last-child .bar-button .tooltip { left: auto !important; right: 0 !important; } -[dir='rtl'] .save .tooltip { +[dir='rtl'] #bar .toolbar-item:last-child .bar-button .tooltip { right: auto !important; left: 0 !important; } -[dir='ltr'] .save .tooltip .tooltip-arrow { +[dir='ltr'] #bar .toolbar-item:last-child .bar-button .tooltip .tooltip-arrow { left: auto; - right: 36px; + right: 20px; } -[dir='rtl'] .save .tooltip .tooltip-arrow { +[dir='rtl'] #bar .toolbar-item:last-child .bar-button .tooltip .tooltip-arrow { right: auto; - left: 36px; + left: 20px; } li:first-of-type .badge .tooltip, diff --git a/data/core.yaml b/data/core.yaml index c21e91ccd7..7e7bac5761 100644 --- a/data/core.yaml +++ b/data/core.yaml @@ -13,7 +13,6 @@ en: title: Center deselect: title: Deselect - inspect: Inspect undo_redo: Undo / Redo recent: Recent favorites: Favorites @@ -484,9 +483,6 @@ en: loading_auth: "Connecting to OpenStreetMap..." report_a_bug: Report a bug help_translate: Help translate - sidebar: - key: "'" - tooltip: Toggle the sidebar. feature_info: hidden_warning: "{count} hidden features" hidden_details: "These features are currently hidden: {details}" diff --git a/dist/locales/en.json b/dist/locales/en.json index 13e66da72c..5e51fadcd3 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -17,7 +17,6 @@ "deselect": { "title": "Deselect" }, - "inspect": "Inspect", "undo_redo": "Undo / Redo", "recent": "Recent", "favorites": "Favorites", @@ -628,10 +627,6 @@ "loading_auth": "Connecting to OpenStreetMap...", "report_a_bug": "Report a bug", "help_translate": "Help translate", - "sidebar": { - "key": "'", - "tooltip": "Toggle the sidebar." - }, "feature_info": { "hidden_warning": "{count} hidden features", "hidden_details": "These features are currently hidden: {details}" diff --git a/modules/behavior/draw.js b/modules/behavior/draw.js index 8959569f48..d197feba67 100644 --- a/modules/behavior/draw.js +++ b/modules/behavior/draw.js @@ -25,8 +25,7 @@ export function behaviorDraw(context) { var keybinding = utilKeybinding('draw'); - var _hover = behaviorHover(context).altDisables(true).ignoreVertex(true) - .on('hover', context.ui().sidebar.hover); + var _hover = behaviorHover(context).altDisables(true).ignoreVertex(true); var tail = behaviorTail(); var edit = behaviorEdit(context); @@ -226,7 +225,6 @@ export function behaviorDraw(context) { behavior.off = function(selection) { - context.ui().sidebar.hover.cancel(); context.uninstall(_hover); context.uninstall(edit); diff --git a/modules/modes/browse.js b/modules/modes/browse.js index 7f149e7f09..23d16a8ab7 100644 --- a/modules/modes/browse.js +++ b/modules/modes/browse.js @@ -19,7 +19,7 @@ export function modeBrowse(context) { var behaviors = [ behaviorPaste(context), - behaviorHover(context).on('hover', context.ui().sidebar.hover), + behaviorHover(context), behaviorSelect(context), behaviorLasso(context), modeDragNode(context).behavior, @@ -38,7 +38,6 @@ export function modeBrowse(context) { mode.exit = function() { - context.ui().sidebar.hover.cancel(); behaviors.forEach(context.uninstall); }; diff --git a/modules/modes/drag_node.js b/modules/modes/drag_node.js index 5ede64b295..870934651d 100644 --- a/modules/modes/drag_node.js +++ b/modules/modes/drag_node.js @@ -35,8 +35,7 @@ export function modeDragNode(context) { id: 'drag-node', button: 'browse' }; - var hover = behaviorHover(context).altDisables(true) - .on('hover', context.ui().sidebar.hover); + var hover = behaviorHover(context).altDisables(true); var edit = behaviorEdit(context); var _nudgeInterval; @@ -454,7 +453,6 @@ export function modeDragNode(context) { mode.exit = function() { - context.ui().sidebar.hover.cancel(); context.uninstall(hover); context.uninstall(edit); diff --git a/modules/modes/drag_note.js b/modules/modes/drag_note.js index 96b0efba80..126eb12f50 100644 --- a/modules/modes/drag_note.js +++ b/modules/modes/drag_note.js @@ -118,7 +118,6 @@ export function modeDragNote(context) { mode.exit = function() { - context.ui().sidebar.hover.cancel(); context.uninstall(edit); context.surface() diff --git a/modules/modes/save.js b/modules/modes/save.js index f03afd515a..eb9e783952 100644 --- a/modules/modes/save.js +++ b/modules/modes/save.js @@ -333,9 +333,9 @@ export function modeSave(context) { function showConflicts(changeset) { var history = context.history(); var selection = context.container() - .select('.assistant') + .select('.assistant .assistant-body') .append('div') - .attr('class','sidebar-component'); + .attr('class','inspector-body'); loading.close(); _isSaving = false; @@ -449,8 +449,6 @@ export function modeSave(context) { mode.enter = function() { - // Show sidebar - context.ui().sidebar.expand(); keybindingOn(); @@ -483,8 +481,6 @@ export function modeSave(context) { context.container().selectAll('#content') .attr('class', 'active'); - - context.ui().sidebar.hide(); }; return mode; diff --git a/modules/modes/select.js b/modules/modes/select.js index 84f51c3c82..603e903fe3 100644 --- a/modules/modes/select.js +++ b/modules/modes/select.js @@ -529,7 +529,6 @@ export function modeSelect(context, selectedIDs) { .classed('related', false); context.map().on('drawn.select', null); - context.ui().sidebar.hide(); context.features().forceVisible([]); var entity = singular(); diff --git a/modules/modes/select_data.js b/modules/modes/select_data.js index 09393290f5..c3d2a13b48 100644 --- a/modules/modes/select_data.js +++ b/modules/modes/select_data.js @@ -98,9 +98,6 @@ export function modeSelectData(context, selectedDatum) { context.map() .on('drawn.select-data', null); - - context.ui().sidebar - .hide(); }; diff --git a/modules/modes/select_note.js b/modules/modes/select_note.js index 477a8845f5..94c8f8c726 100644 --- a/modules/modes/select_note.js +++ b/modules/modes/select_note.js @@ -127,9 +127,6 @@ export function modeSelectNote(context, selectedNoteID) { context.map() .on('drawn.select', null); - - context.ui().sidebar - .hide(); }; diff --git a/modules/ui/assistant.js b/modules/ui/assistant.js index 135f9c8ec7..2ea2887aa1 100644 --- a/modules/ui/assistant.js +++ b/modules/ui/assistant.js @@ -1,10 +1,12 @@ import _debounce from 'lodash-es/debounce'; import { dataEn } from '../../data'; +import { drag as d3_drag } from 'd3-drag'; import { - select as d3_select + select as d3_select, + event as d3_event } from 'd3-selection'; import { svgIcon } from '../svg/icon'; -import { t } from '../util/locale'; +import { t, textDirection } from '../util/locale'; import { services } from '../services'; import { utilDisplayLabel } from '../util'; import { uiIntro } from './intro'; @@ -19,6 +21,7 @@ import { uiImproveOsmEditor } from './improveOSM_editor'; import { uiDataEditor } from './data_editor'; import { uiCommit } from './commit'; import { geoRawMercator } from '../geo/raw_mercator'; +import { utilGetDimensions } from '../util/dimensions'; import { decimalCoordinatePair, formattedRoundedDuration } from '../util/units'; function utilTimeOfDayGreeting() { @@ -68,6 +71,38 @@ export function uiAssistant(context) { body = container.append('div') .attr('class', 'assistant-body'); + var dragOffset; + var resizer = container + .append('div') + .attr('class', 'resizer-x'); + + // Set the initial width + container + .style('width', '350px'); + + resizer.call(d3_drag() + .container(d3_select('#id-container').node()) + .on('start', function() { + resizer.classed('dragging', true); + + dragOffset = d3_event.sourceEvent.offsetX; + + // account for from the assistant wrap's padding + dragOffset += 10; + }) + .on('drag', function() { + + var x = d3_event.x - dragOffset; + + var targetWidth = (textDirection === 'rtl') ? utilGetDimensions(d3_select('#content')).width - x: x; + container + .style('width', targetWidth + 'px'); + }) + .on('end', function() { + resizer.classed('dragging', false); + }) + ); + scheduleCurrentLocationUpdate(); context diff --git a/modules/ui/field_help.js b/modules/ui/field_help.js index edd3ab3abd..08847545ad 100644 --- a/modules/ui/field_help.js +++ b/modules/ui/field_help.js @@ -181,7 +181,7 @@ export function uiFieldHelp(context, fieldName) { if (_wrap.empty()) return; // absolute position relative to the inspector, so it "floats" above the fields - _inspector = d3_select('#sidebar .entity-editor-pane .inspector-body'); + _inspector = d3_select('.entity-editor-pane .inspector-body'); if (_inspector.empty()) return; _body = _inspector.selectAll('.field-help-body') diff --git a/modules/ui/fields/restrictions.js b/modules/ui/fields/restrictions.js index 6b7d0d5f16..8beeb1d6c3 100644 --- a/modules/ui/fields/restrictions.js +++ b/modules/ui/fields/restrictions.js @@ -203,11 +203,11 @@ export function uiFieldRestrictions(field, context) { // Reflow warning: `utilGetDimensions` calls `getBoundingClientRect` // Instead of asking the restriction-container for its dimensions, - // we can ask the #sidebar, which can have its dimensions cached. - // width: calc as sidebar - padding + // we can ask the .assistant, which can have its dimensions cached. + // width: calc as .assistant - padding // height: hardcoded (from `80_app.css`) // var d = utilGetDimensions(selection); - var sdims = utilGetDimensions(d3_select('#sidebar')); + var sdims = utilGetDimensions(d3_select('.assistant')); var d = [ sdims[0] - 50, 370 ]; var c = geoVecScale(d, 0.5); var z = 22; @@ -405,7 +405,7 @@ export function uiFieldRestrictions(field, context) { var xPos = -1; if (minChange) { - xPos = utilGetDimensions(d3_select('#sidebar'))[0]; + xPos = utilGetDimensions(d3_select('.assistant'))[0]; } if (!minChange || (minChange && Math.abs(xPos - _lastXPos) >= minChange)) { diff --git a/modules/ui/index.js b/modules/ui/index.js index d0a903cd47..624182f3a0 100644 --- a/modules/ui/index.js +++ b/modules/ui/index.js @@ -50,7 +50,6 @@ export { uiRawMembershipEditor } from './raw_membership_editor'; export { uiRawTagEditor } from './raw_tag_editor'; export { uiScale } from './scale'; export { uiSelectionList } from './selection_list'; -export { uiSidebar } from './sidebar'; export { uiSourceSwitch } from './source_switch'; export { uiSpinner } from './spinner'; export { uiStatus } from './status'; diff --git a/modules/ui/init.js b/modules/ui/init.js index 721d4efa64..d2619196fc 100644 --- a/modules/ui/init.js +++ b/modules/ui/init.js @@ -31,7 +31,6 @@ import { uiNotice } from './notice'; import { uiPhotoviewer } from './photoviewer'; import { uiScale } from './scale'; import { uiShortcuts } from './shortcuts'; -import { uiSidebar } from './sidebar'; import { uiSpinner } from './spinner'; import { uiStatus } from './status'; import { uiTopToolbar } from './top_toolbar'; @@ -254,20 +253,15 @@ export function uiInit(context) { .classed('hide', true) .call(ui.photoviewer); - var sidebarWrap = overMap + var assistantWrap = overMap .append('div') - .attr('class', 'sidebar-wrap'); + .attr('class', 'assistant-wrap'); ui.assistant = uiAssistant(context); - sidebarWrap + assistantWrap .call(ui.assistant); - sidebarWrap - .append('div') - .attr('id', 'sidebar') - .call(ui.sidebar); - // Bind events window.onbeforeunload = function() { @@ -287,7 +281,6 @@ export function uiInit(context) { var panPixels = 80; context.keybinding() .on('⌫', function() { d3_event.preventDefault(); }) - .on(t('sidebar.key'), ui.sidebar.toggle) .on('←', pan([panPixels, 0])) .on('↑', pan([0, panPixels])) .on('→', pan([-panPixels, 0])) @@ -369,18 +362,16 @@ export function uiInit(context) { ui.assistant = null; - ui.sidebar = uiSidebar(context); - ui.photoviewer = uiPhotoviewer(context); ui.onResize = function(withPan) { var map = context.map(); - // Recalc dimensions of map and sidebar.. (`true` = force recalc) + // Recalc dimensions of map and assistant.. (`true` = force recalc) // This will call `getBoundingClientRect` and trigger reflow, // but the values will be cached for later use. var mapDimensions = utilGetDimensions(d3_select('#content'), true); - utilGetDimensions(d3_select('#sidebar'), true); + utilGetDimensions(d3_select('.assistant'), true); if (withPan !== undefined) { map.redrawEnable(false); diff --git a/modules/ui/intro/intro.js b/modules/ui/intro/intro.js index 28e47d04c2..cddac4218d 100644 --- a/modules/ui/intro/intro.js +++ b/modules/ui/intro/intro.js @@ -72,11 +72,6 @@ export function uiIntro(context) { var baseEntities = context.history().graph().base().entities; var countryCode = services.geocoder.countryCode; - // Show sidebar and disable the sidebar resizing button - // (this needs to be before `context.inIntro(true)`) - context.ui().sidebar.expand(); - d3_selectAll('button.sidebar-toggle').classed('disabled', true); - // Block saving context.inIntro(true); @@ -160,7 +155,6 @@ export function uiIntro(context) { curtain.remove(); navwrap.remove(); d3_selectAll('#map .layer-background').style('opacity', opacity); - d3_selectAll('button.sidebar-toggle').classed('disabled', false); if (osm) { osm.toggle(true).reset().caches(caches); } context.history().reset().merge(Object.values(baseEntities)); context.background().baseLayerSource(background); diff --git a/modules/ui/sidebar.js b/modules/ui/sidebar.js deleted file mode 100644 index e8a245c553..0000000000 --- a/modules/ui/sidebar.js +++ /dev/null @@ -1,188 +0,0 @@ -import _throttle from 'lodash-es/throttle'; - -import { drag as d3_drag } from 'd3-drag'; -import { interpolateNumber as d3_interpolateNumber } from 'd3-interpolate'; - -import { - select as d3_select, - event as d3_event -} from 'd3-selection'; - -import { textDirection } from '../util/locale'; - - -export function uiSidebar(context) { - var _current; - - - function sidebar(selection) { - var container = d3_select('#id-container'); - var minWidth = 280; - var sidebarWidth; - var containerWidth; - var dragOffset; - - var resizer = selection - .append('div') - .attr('id', 'sidebar-resizer'); - - // Set the initial width constraints - selection - .style('min-width', minWidth + 'px') - .style('width', '350px'); - - resizer.call(d3_drag() - .container(container.node()) - .on('start', function() { - // offset from edge of sidebar-resizer - dragOffset = d3_event.sourceEvent.offsetX - 1; - - resizer.classed('dragging', true); - }) - .on('drag', function() { - var isRTL = (textDirection === 'rtl'); - var xMarginProperty = isRTL ? 'margin-right' : 'margin-left'; - - var x = d3_event.x - dragOffset; - sidebarWidth = isRTL ? containerWidth - x : x; - - var isCollapsed = selection.classed('collapsed'); - var shouldCollapse = sidebarWidth < minWidth; - - selection.classed('collapsed', shouldCollapse); - - if (shouldCollapse) { - if (!isCollapsed) { - selection - .style(xMarginProperty, '-410px') - .style('width', '400px'); - } - - } else { - selection - .style(xMarginProperty, null) - .style('width', sidebarWidth + 'px'); - } - }) - .on('end', function() { - resizer.classed('dragging', false); - }) - ); - - var inspectorWrap = selection - .append('div') - .attr('class', 'inspector-hidden inspector-wrap entity-editor-pane'); - - - function hover() { - // disable hover preview for now - } - - sidebar.hover = _throttle(hover, 200); - - - sidebar.intersects = function(extent) { - var rect = selection.node().getBoundingClientRect(); - return extent.intersects([ - context.projection.invert([0, rect.height]), - context.projection.invert([rect.width, 0]) - ]); - }; - - - sidebar.show = function(component, element) { - inspectorWrap - .classed('inspector-hidden', true); - - if (_current) _current.remove(); - _current = selection - .append('div') - .attr('class', 'sidebar-component') - .call(component, element); - }; - - - sidebar.hide = function() { - inspectorWrap - .classed('inspector-hidden', true); - - if (_current) _current.remove(); - _current = null; - }; - - - sidebar.expand = function() { - if (selection.classed('collapsed')) { - sidebar.toggle(); - } - }; - - - sidebar.collapse = function() { - if (!selection.classed('collapsed')) { - sidebar.toggle(); - } - }; - - - sidebar.toggle = function() { - var e = d3_event; - if (e && e.sourceEvent) { - e.sourceEvent.preventDefault(); - } else if (e) { - e.preventDefault(); - } - - // Don't allow sidebar to toggle when the user is in the walkthrough. - if (context.inIntro()) return; - - var isCollapsed = selection.classed('collapsed'); - var isCollapsing = !isCollapsed; - var isRTL = (textDirection === 'rtl'); - var xMarginProperty = isRTL ? 'margin-right' : 'margin-left'; - - sidebarWidth = selection.node().getBoundingClientRect().width; - - var startMargin, endMargin, lastMargin; - if (isCollapsing) { - startMargin = lastMargin = 0; - endMargin = -sidebarWidth - 10; - } else { - startMargin = lastMargin = -sidebarWidth; - endMargin = 0; - } - - selection.transition() - .style(xMarginProperty, endMargin + 'px') - .tween('panner', function() { - var i = d3_interpolateNumber(startMargin, endMargin); - return function(t) { - var dx = lastMargin - Math.round(i(t)); - lastMargin = lastMargin - dx; - }; - }) - .on('end', function() { - selection.classed('collapsed', isCollapsing); - - if (!isCollapsing) { - selection - .style(xMarginProperty, null); - } - }); - }; - - // toggle the sidebar collapse when double-clicking the resizer - resizer.on('dblclick', sidebar.toggle); - } - - sidebar.hover = function() {}; - sidebar.hover.cancel = function() {}; - sidebar.intersects = function() {}; - sidebar.show = function() {}; - sidebar.hide = function() {}; - sidebar.expand = function() {}; - sidebar.collapse = function() {}; - sidebar.toggle = function() {}; - - return sidebar; -} diff --git a/modules/ui/tools/index.js b/modules/ui/tools/index.js index d788003a49..9faeba031a 100644 --- a/modules/ui/tools/index.js +++ b/modules/ui/tools/index.js @@ -4,5 +4,4 @@ export * from './notes'; export * from './operation'; export * from './save'; export * from './add_feature'; -export * from './sidebar_toggle'; export * from './undo_redo'; diff --git a/modules/ui/tools/sidebar_toggle.js b/modules/ui/tools/sidebar_toggle.js deleted file mode 100644 index cc4ee154ff..0000000000 --- a/modules/ui/tools/sidebar_toggle.js +++ /dev/null @@ -1,34 +0,0 @@ - -import { t, textDirection } from '../../util/locale'; -import { svgIcon } from '../../svg'; -import { uiTooltipHtml } from '../tooltipHtml'; -import { tooltip } from '../../util/tooltip'; - -export function uiToolSidebarToggle(context) { - - var tool = { - id: 'sidebar_toggle', - label: t('toolbar.inspect') - }; - - tool.render = function(selection) { - selection - .selectAll('.bar-button') - .data([0]) - .enter() - .append('button') - .attr('class', 'bar-button') - .attr('tabindex', -1) - .on('click', function() { - context.ui().sidebar.toggle(); - }) - .call(tooltip() - .placement('bottom') - .html(true) - .title(uiTooltipHtml(t('sidebar.tooltip'), t('sidebar.key'))) - ) - .call(svgIcon('#iD-icon-sidebar-' + (textDirection === 'rtl' ? 'right' : 'left'))); - }; - - return tool; -} diff --git a/modules/ui/top_toolbar.js b/modules/ui/top_toolbar.js index 34042b7d5d..e04c30254a 100644 --- a/modules/ui/top_toolbar.js +++ b/modules/ui/top_toolbar.js @@ -5,7 +5,7 @@ import { import { t } from '../util/locale'; import { modeBrowse } from '../modes/browse'; import _debounce from 'lodash-es/debounce'; -import { uiToolAddFavorite, uiToolAddRecent, uiToolNotes, uiToolOperation, uiToolSave, uiToolAddFeature, uiToolSidebarToggle, uiToolUndoRedo } from './tools'; +import { uiToolAddFavorite, uiToolAddRecent, uiToolNotes, uiToolOperation, uiToolSave, uiToolAddFeature, uiToolUndoRedo } from './tools'; import { uiToolSimpleButton } from './tools/simple_button'; import { uiToolWaySegments } from './tools/way_segments'; import { uiToolRepeatAdd } from './tools/repeat_add'; @@ -14,8 +14,7 @@ import { uiToolCenterZoom } from './tools/center_zoom'; export function uiTopToolbar(context) { - var sidebarToggle = uiToolSidebarToggle(context), - addFeature = uiToolAddFeature(context), + var addFeature = uiToolAddFeature(context), addFavorite = uiToolAddFavorite(context), addRecent = uiToolAddRecent(context), notes = uiToolNotes(context), @@ -107,7 +106,6 @@ export function uiTopToolbar(context) { } else if (mode.id === 'add-point' || mode.id === 'add-line' || mode.id === 'add-area' || mode.id === 'draw-line' || mode.id === 'draw-area') { - tools.push(sidebarToggle); tools.push('spacer'); if (mode.id.indexOf('line') !== -1 && structure.shouldShow()) { @@ -148,7 +146,7 @@ export function uiTopToolbar(context) { } } else { - tools.push(sidebarToggle); + tools.push('spacer'); if (mode.id === 'select-note' || mode.id === 'select-data' || mode.id === 'select-error') { diff --git a/modules/validations/missing_tag.js b/modules/validations/missing_tag.js index ba5f99e75b..6492609abf 100644 --- a/modules/validations/missing_tag.js +++ b/modules/validations/missing_tag.js @@ -63,7 +63,7 @@ export function validationMissingTag() { icon: 'iD-icon-search', title: t('issues.fix.' + selectFixType + '.title')/*, onClick: function(context) { - context.ui().sidebar.showPresetList(); + }*/ }) ]; From 186262ff9fea34797a5c79c8e31b17e0e00fc69d Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 2 Jul 2019 18:22:22 -0400 Subject: [PATCH 123/774] Show marker icon in assistant header for points presets when no other icon is specified Don't use a grey fill for vertex preset icon circles Use the same stroke width for point and vertex preset icon frames --- css/80_app.css | 14 ++++---------- modules/ui/preset_icon.js | 7 ++++--- 2 files changed, 8 insertions(+), 13 deletions(-) diff --git a/css/80_app.css b/css/80_app.css index d5fd57e2ce..5d1d10acb6 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -1506,9 +1506,10 @@ a.hide-toggle { height: 34px; } -.preset-icon-point-border path { - stroke: #333; - stroke-width: 1.2; +.preset-icon-point-border path, +.preset-icon-fill-vertex circle { + stroke-width: 1.3px; + stroke: currentColor; fill: transparent; } @@ -1556,13 +1557,6 @@ a.hide-toggle { fill: transparent; } -.preset-icon-fill-vertex circle { - stroke-width: 1.5px; - stroke: #333; - fill: #efefef; - backface-visibility: hidden; -} - .preset-icon { width: 100%; height:100%; diff --git a/modules/ui/preset_icon.js b/modules/ui/preset_icon.js index a6275370f5..c7b0b23e21 100644 --- a/modules/ui/preset_icon.js +++ b/modules/ui/preset_icon.js @@ -46,7 +46,8 @@ export function uiPresetIcon(context) { } function renderCircleFill(fillEnter) { - var w = 60, h = 60, d = 40; + var d = isSmall() ? 40 : 60; + var w = d, h = d, r = d/3; fillEnter = fillEnter .append('svg') .attr('class', 'preset-icon-fill preset-icon-fill-vertex') @@ -57,7 +58,7 @@ export function uiPresetIcon(context) { fillEnter.append('circle') .attr('cx', w/2) .attr('cy', h/2) - .attr('r', d/2); + .attr('r', r); } function renderSquareFill(fillEnter) { @@ -209,7 +210,7 @@ export function uiPresetIcon(context) { var isTnp = picon && /^tnp-/.test(picon); var isiDIcon = picon && !(isMaki || isTemaki || isFa || isTnp); var isCategory = !p.setTags; - var drawPoint = geom === 'point' && pointMarker && !isFallback; + var drawPoint = geom === 'point' && (pointMarker || !picon) && !isFallback; var drawVertex = picon !== null && geom === 'vertex' && (!isSmall() || !isFallback); var drawLine = picon && geom === 'line' && !isFallback && !isCategory; var drawArea = picon && geom === 'area' && !isFallback; From e533619e4ad61b523173f793ceccb078154fb4e1 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 3 Jul 2019 10:00:57 -0400 Subject: [PATCH 124/774] Redraw the map immediately after discarding stored changes Remove some unused CSS --- css/80_app.css | 10 ---------- modules/ui/assistant.js | 1 + 2 files changed, 1 insertion(+), 10 deletions(-) diff --git a/css/80_app.css b/css/80_app.css index 5d1d10acb6..7adb4d0822 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -616,16 +616,6 @@ button.add-note svg.icon { -ms-filter: "FlipH"; } - -#bar.narrow .spinner, -#bar.narrow button.bar-button .label { - display: none; -} -#bar.narrow button .count { - border-left-width: 0; - border-right-width: 0; -} - [dir='ltr'] .undo-redo button:first-of-type { margin-right: 1px; } diff --git a/modules/ui/assistant.js b/modules/ui/assistant.js index 2ea2887aa1..3c060600e1 100644 --- a/modules/ui/assistant.js +++ b/modules/ui/assistant.js @@ -455,6 +455,7 @@ export function uiAssistant(context) { // don't show another welcome screen after discarding changes updateDidEditStatus(); context.history().clearSaved(); + context.map().pan([0,0]); // trigger a map redraw redraw(); }) .append('span') From 0354ddb933c0a68156b6e7b99896b6fd84ca4dd3 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 3 Jul 2019 12:23:03 -0400 Subject: [PATCH 125/774] Move the save/cancel buttons into the footer of the commit UI Move the changeset prose and review request button to the top of the commit UI Move the change summary list a disclosure Move the upload blocker text from a tooltip to a persistent message, for mobile-friendliness Give more info about changeset comments in the blocker message Rename "Suggested Hashtags" field to just "Hashtags" --- css/80_app.css | 26 ++++- data/core.yaml | 5 +- data/presets.yaml | 2 +- data/presets/fields.json | 2 +- data/presets/fields/hashtags.json | 2 +- data/taginfo.json | 2 +- dist/locales/en.json | 8 +- modules/ui/commit.js | 170 +++++++++++++++++------------- modules/ui/commit_changes.js | 34 +++--- 9 files changed, 149 insertions(+), 102 deletions(-) diff --git a/css/80_app.css b/css/80_app.css index 7adb4d0822..673f3cb594 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -1119,6 +1119,8 @@ a.hide-toggle { display: flex; flex-direction: column; position: relative; + border-bottom-right-radius: inherit; + border-bottom-left-radius: inherit; } .assistant.body-collapsed .assistant-body { display: none; @@ -1423,6 +1425,8 @@ a.hide-toggle { flex-wrap: wrap; justify-content: space-between; list-style: none; + border-bottom-left-radius: inherit; + border-bottom-right-radius: inherit; } .inspector-footer:empty { display: none; @@ -4905,6 +4909,7 @@ img.tile-debug { } .modal-section { + width: 100%; padding: 20px; border-bottom: 1px solid #ccc; } @@ -4925,7 +4930,12 @@ img.tile-debug { text-align: center; vertical-align: middle; } - +.save-section .blocker-message { + margin-bottom: 15px; +} +.save-section .blocker-message:empty { + display: none; +} .save-section .buttons { display: flex; flex-wrap: wrap; @@ -4934,11 +4944,16 @@ img.tile-debug { .save-section .buttons .action, .save-section .buttons .secondary-action { - width: 45%; - margin: 10px auto; + flex: 1 1 auto; text-align: center; vertical-align: middle; } +[dir='ltr'] .save-section .buttons button:first-child { + margin-right: 20px; +} +[dir='rtl'] .save-section .buttons button:first-child { + margin-left: 20px; +} .loading-modal { text-align: center; @@ -5098,6 +5113,9 @@ svg.mouseclick use.right { /* Save Mode ------------------------------------------------------- */ +.save-footer { + padding: 0; +} .mode-save a.user-info { display: inline-block; } @@ -5139,7 +5157,6 @@ svg.mouseclick use.right { .mode-save .field-warning, .mode-save .changeset-info, -.mode-save .request-review, .mode-save .commit-info { margin-bottom: 10px; } @@ -5153,6 +5170,7 @@ svg.mouseclick use.right { border-radius: 4px; background: #fff; margin-bottom: 10px; + margin-top: 5px; } .mode-save .warning-section .changeset-list button { diff --git a/data/core.yaml b/data/core.yaml index 7e7bac5761..91dc7a732e 100644 --- a/data/core.yaml +++ b/data/core.yaml @@ -506,8 +506,9 @@ en: modified: Modified deleted: Deleted created: Created - outstanding_errors_message: "Please resolve all errors first. {count} remaining." - comment_needed_message: Please add a changeset comment first. + blocker_message: + outstanding_errors: "Please resolve all errors before uploading." + comment_needed: Please add a changeset comment before uploading. This helps others understand your edits. about_changeset_comments: About changeset comments about_changeset_comments_link: //wiki.openstreetmap.org/wiki/Good_changeset_comments google_warning: "You mentioned Google in this comment: remember that copying from Google Maps is strictly forbidden." diff --git a/data/presets.yaml b/data/presets.yaml index 60a7292b55..6b745843ac 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -790,7 +790,7 @@ en: label: Handrail hashtags: # hashtags=* - label: Suggested Hashtags + label: Hashtags # hashtags field placeholder placeholder: '#example' healthcare: diff --git a/data/presets/fields.json b/data/presets/fields.json index 1a9d2caa8e..acae1e4f63 100644 --- a/data/presets/fields.json +++ b/data/presets/fields.json @@ -152,7 +152,7 @@ "guest_house": {"key": "guest_house", "type": "combo", "label": "Type"}, "handicap": {"key": "handicap", "type": "number", "label": "Handicap", "placeholder": "1-18"}, "handrail": {"key": "handrail", "type": "check", "label": "Handrail"}, - "hashtags": {"key": "hashtags", "type": "semiCombo", "label": "Suggested Hashtags", "placeholder": "#example"}, + "hashtags": {"key": "hashtags", "type": "semiCombo", "label": "Hashtags", "placeholder": "#example"}, "healthcare": {"key": "healthcare", "type": "typeCombo", "label": "Type"}, "healthcare/speciality": {"key": "healthcare:speciality", "type": "semiCombo", "reference": {"key": "healthcare"}, "label": "Specialties"}, "height_building": {"key": "height", "minValue": 0, "type": "number", "label": "Building Height (Meters)", "prerequisiteTag": {"key": "building", "valueNot": "no"}}, diff --git a/data/presets/fields/hashtags.json b/data/presets/fields/hashtags.json index 26c31cbe79..d3045507c3 100644 --- a/data/presets/fields/hashtags.json +++ b/data/presets/fields/hashtags.json @@ -1,6 +1,6 @@ { "key": "hashtags", "type": "semiCombo", - "label": "Suggested Hashtags", + "label": "Hashtags", "placeholder": "#example" } diff --git a/data/taginfo.json b/data/taginfo.json index 8d20ce48fe..a202f5e43e 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -1407,7 +1407,7 @@ {"key": "guest_house", "description": "🄵 Type"}, {"key": "handicap", "description": "🄵 Handicap"}, {"key": "handrail", "description": "🄵 Handrail"}, - {"key": "hashtags", "description": "🄵 Suggested Hashtags"}, + {"key": "hashtags", "description": "🄵 Hashtags"}, {"key": "healthcare:speciality", "description": "🄵 Specialties"}, {"key": "height", "description": "🄵 Building Height (Meters), 🄵 Height (Meters)"}, {"key": "highspeed", "description": "🄵 High-Speed"}, diff --git a/dist/locales/en.json b/dist/locales/en.json index 5e51fadcd3..3513219057 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -652,8 +652,10 @@ "modified": "Modified", "deleted": "Deleted", "created": "Created", - "outstanding_errors_message": "Please resolve all errors first. {count} remaining.", - "comment_needed_message": "Please add a changeset comment first.", + "blocker_message": { + "outstanding_errors": "Please resolve all errors before uploading.", + "comment_needed": "Please add a changeset comment before uploading. This helps others understand your edits." + }, "about_changeset_comments": "About changeset comments", "about_changeset_comments_link": "//wiki.openstreetmap.org/wiki/Good_changeset_comments", "google_warning": "You mentioned Google in this comment: remember that copying from Google Maps is strictly forbidden.", @@ -3201,7 +3203,7 @@ "label": "Handrail" }, "hashtags": { - "label": "Suggested Hashtags", + "label": "Hashtags", "placeholder": "#example" }, "healthcare": { diff --git a/modules/ui/commit.js b/modules/ui/commit.js index e38c26b7da..be6f6b1026 100644 --- a/modules/ui/commit.js +++ b/modules/ui/commit.js @@ -6,7 +6,6 @@ import { modeSelect } from '../modes/select'; import { modeBrowse } from '../modes/browse'; import { osmChangeset } from '../osm'; import { services } from '../services'; -import { tooltip } from '../util/tooltip'; import { uiChangesetEditor } from './changeset_editor'; import { uiCommitChanges } from './commit_changes'; import { uiCommitWarnings } from './commit_warnings'; @@ -166,37 +165,98 @@ export function uiCommit(context) { .attr('class', 'inspector-body sep-top') .merge(body); + var footer = selection.selectAll('.inspector-footer') + .data([0]); - // Changeset Section - var changesetSection = body.selectAll('.changeset-editor') + footer = footer.enter() + .append('div') + .attr('class', 'inspector-footer save-footer fillL') + .merge(footer); + + // footer buttons section + var saveSection = footer.selectAll('.save-section') .data([0]); - changesetSection = changesetSection.enter() + saveSection = saveSection.enter() .append('div') - .attr('class', 'modal-section changeset-editor') - .merge(changesetSection); + .attr('class','modal-section save-section') + .merge(saveSection); - changesetSection - .call(changesetEditor - .changesetID(_changeset.id) - .tags(tags) - ); + var uploadBlockerText = getUploadBlockerMessage(); + var blockerMessage = saveSection.selectAll('.blocker-message') + .data([0]); - // Warnings - body.call(commitWarnings); + blockerMessage = blockerMessage.enter() + .append('div') + .attr('class','blocker-message') + .merge(blockerMessage); + blockerMessage + .text(uploadBlockerText || ''); - // Upload Explanation - var saveSection = body.selectAll('.save-section') + // Buttons + var buttonSection = saveSection.selectAll('.buttons') .data([0]); - saveSection = saveSection.enter() + // enter + var buttonEnter = buttonSection.enter() .append('div') - .attr('class','modal-section save-section fillL cf') - .merge(saveSection); + .attr('class', 'buttons'); + + buttonEnter + .append('button') + .attr('class', 'secondary-action button cancel-button') + .append('span') + .attr('class', 'label') + .text(t('commit.cancel')); + + var uploadButton = buttonEnter + .append('button') + .attr('class', 'action button save-button'); + + uploadButton.append('span') + .attr('class', 'label') + .text(t('commit.save')); + + + + // update + buttonSection = buttonSection + .merge(buttonEnter); + + buttonSection.selectAll('.cancel-button') + .on('click.cancel', function() { + var selectedID = commitChanges.entityID(); + if (selectedID) { + context.enter(modeSelect(context, [selectedID])); + } else { + context.enter(modeBrowse(context)); + } + }); + + buttonSection.selectAll('.save-button') + .classed('disabled', uploadBlockerText !== null) + .on('click.save', function() { + if (!d3_select(this).classed('disabled')) { + this.blur(); // avoid keeping focus on the button - #4641 + var mode = context.mode(); + if (mode.id === 'save' && mode.save) { + mode.save(_changeset); + } + } + }); - var prose = saveSection.selectAll('.commit-info') + var overviewSection = body.selectAll('.overview-section') + .data([0]); + + // Enter + overviewSection = overviewSection.enter() + .append('div') + .attr('class', 'overview-section modal-section') + .merge(overviewSection); + + var prose = overviewSection.selectAll('.commit-info') .data([0]); if (prose.enter().size()) { // first time, make sure to update user details in prose @@ -240,7 +300,7 @@ export function uiCommit(context) { // Request Review - var requestReview = saveSection.selectAll('.request-review') + var requestReview = overviewSection.selectAll('.request-review') .data([0]); // Enter @@ -270,65 +330,23 @@ export function uiCommit(context) { .on('change', toggleRequestReview); - // Buttons - var buttonSection = saveSection.selectAll('.buttons') + // Changeset Section + var changesetSection = body.selectAll('.changeset-editor') .data([0]); - // enter - var buttonEnter = buttonSection.enter() + changesetSection = changesetSection.enter() .append('div') - .attr('class', 'buttons fillL cf'); - - buttonEnter - .append('button') - .attr('class', 'secondary-action button cancel-button') - .append('span') - .attr('class', 'label') - .text(t('commit.cancel')); - - var uploadButton = buttonEnter - .append('button') - .attr('class', 'action button save-button'); - - uploadButton.append('span') - .attr('class', 'label') - .text(t('commit.save')); - - var uploadBlockerTooltipText = getUploadBlockerMessage(); - - // update - buttonSection = buttonSection - .merge(buttonEnter); - - buttonSection.selectAll('.cancel-button') - .on('click.cancel', function() { - var selectedID = commitChanges.entityID(); - if (selectedID) { - context.enter(modeSelect(context, [selectedID])); - } else { - context.enter(modeBrowse(context)); - } - }); - - buttonSection.selectAll('.save-button') - .classed('disabled', uploadBlockerTooltipText !== null) - .on('click.save', function() { - if (!d3_select(this).classed('disabled')) { - this.blur(); // avoid keeping focus on the button - #4641 - var mode = context.mode(); - if (mode.id === 'save' && mode.save) { - mode.save(_changeset); - } - } - }); + .attr('class', 'modal-section changeset-editor') + .merge(changesetSection); - // remove any existing tooltip - tooltip().destroyAny(buttonSection.selectAll('.save-button')); + changesetSection + .call(changesetEditor + .changesetID(_changeset.id) + .tags(tags) + ); - if (uploadBlockerTooltipText) { - buttonSection.selectAll('.save-button') - .call(tooltip().title(uploadBlockerTooltipText).placement('top')); - } + // Warnings + body.call(commitWarnings); // Raw Tag Editor var tagSection = body.selectAll('.tag-section.raw-tag-editor') @@ -372,13 +390,13 @@ export function uiCommit(context) { .getIssuesBySeverity({ what: 'edited', where: 'all' }).error; if (errors.length) { - return t('commit.outstanding_errors_message', { count: errors.length }); + return t('commit.blocker_message.outstanding_errors', { count: errors.length }); } else { var n = d3_select('#preset-input-comment').node(); var hasChangesetComment = n && n.value.length > 0; if (!hasChangesetComment) { - return t('commit.comment_needed_message'); + return t('commit.blocker_message.comment_needed'); } } return null; diff --git a/modules/ui/commit_changes.js b/modules/ui/commit_changes.js index e1e67818ab..c501177966 100644 --- a/modules/ui/commit_changes.js +++ b/modules/ui/commit_changes.js @@ -6,6 +6,7 @@ import { actionDiscardTags } from '../actions/discard_tags'; import { osmChangeset } from '../osm'; import { svgIcon } from '../svg/icon'; import { utilDetect } from '../util/detect'; +import { uiDisclosure } from './disclosure'; import { utilDisplayName, @@ -18,32 +19,39 @@ export function uiCommitChanges(context) { var detected = utilDetect(); var _entityID; - function commitChanges(selection) { var history = context.history(); var summary = history.difference().summary(); + var titleID = summary.length === 1 ? 'change' : 'changes'; var container = selection.selectAll('.modal-section.commit-section') .data([0]); var containerEnter = container.enter() .append('div') - .attr('class', 'commit-section modal-section fillL2'); - - var titleID = summary.length === 1 ? 'change' : 'changes'; - containerEnter - .append('h3') - .text(t('commit.' + titleID, { count: summary.length })); - - containerEnter - .append('ul') - .attr('class', 'changeset-list'); + .attr('class', 'commit-section modal-section'); container = containerEnter .merge(container); + container.call(uiDisclosure(context, 'commit_changes', true) + .title(t('commit.' + titleID, { count: summary.length })) + .content(render) + ); + } + + + function render(selection) { + var history = context.history(); + var summary = history.difference().summary(); + + selection.selectAll('.changeset-list') + .data([0]) + .enter() + .append('ul') + .attr('class', 'changeset-list'); - var items = container.select('ul').selectAll('li') + var items = selection.select('ul').selectAll('li') .data(summary); var itemsEnter = items.enter() @@ -105,7 +113,7 @@ export function uiCommitChanges(context) { var blob = new Blob([data], {type: 'text/xml;charset=utf-8;'}); var fileName = 'changes.osc'; - var linkEnter = container.selectAll('.download-changes') + var linkEnter = selection.selectAll('.download-changes') .data([0]) .enter() .append('a') From 425fc3217e0c8e777f6002f0ce9028f7130b3a1d Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 3 Jul 2019 12:44:29 -0400 Subject: [PATCH 126/774] Improve "Add field" padding on the commit screen Make the changes section title format consistent with other section titles --- css/80_app.css | 2 +- data/core.yaml | 1 + dist/locales/en.json | 1 + modules/ui/commit_changes.js | 3 +-- 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/css/80_app.css b/css/80_app.css index 673f3cb594..1e7701540c 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -2692,7 +2692,7 @@ div.combobox { font-weight: bold; } .changeset-editor .more-fields { - padding: 15px 20px 0 20px; + padding: 15px 0 0 0; } .more-fields label { diff --git a/data/core.yaml b/data/core.yaml index 91dc7a732e..a77b7f0757 100644 --- a/data/core.yaml +++ b/data/core.yaml @@ -500,6 +500,7 @@ en: cancel: Cancel change: "1 Change" changes: "{count} Changes" + changes_parenthetical: "Changes ({count})" download_changes: Download osmChange file errors: Errors warnings: Warnings diff --git a/dist/locales/en.json b/dist/locales/en.json index 3513219057..caa5b25976 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -646,6 +646,7 @@ "cancel": "Cancel", "change": "1 Change", "changes": "{count} Changes", + "changes_parenthetical": "Changes ({count})", "download_changes": "Download osmChange file", "errors": "Errors", "warnings": "Warnings", diff --git a/modules/ui/commit_changes.js b/modules/ui/commit_changes.js index c501177966..660af0f3ab 100644 --- a/modules/ui/commit_changes.js +++ b/modules/ui/commit_changes.js @@ -22,7 +22,6 @@ export function uiCommitChanges(context) { function commitChanges(selection) { var history = context.history(); var summary = history.difference().summary(); - var titleID = summary.length === 1 ? 'change' : 'changes'; var container = selection.selectAll('.modal-section.commit-section') .data([0]); @@ -35,7 +34,7 @@ export function uiCommitChanges(context) { .merge(container); container.call(uiDisclosure(context, 'commit_changes', true) - .title(t('commit.' + titleID, { count: summary.length })) + .title(t('commit.changes_parenthetical', { count: summary.length })) .content(render) ); } From 3b90f885176e3168c3cdad5cb3f75c1d096928ee Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 3 Jul 2019 13:41:53 -0400 Subject: [PATCH 127/774] Don't display point marker in preset icons if an image is specified --- modules/ui/preset_icon.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ui/preset_icon.js b/modules/ui/preset_icon.js index c7b0b23e21..68383afdfc 100644 --- a/modules/ui/preset_icon.js +++ b/modules/ui/preset_icon.js @@ -210,7 +210,7 @@ export function uiPresetIcon(context) { var isTnp = picon && /^tnp-/.test(picon); var isiDIcon = picon && !(isMaki || isTemaki || isFa || isTnp); var isCategory = !p.setTags; - var drawPoint = geom === 'point' && (pointMarker || !picon) && !isFallback; + var drawPoint = geom === 'point' && !imageURL && (pointMarker || !picon) && !isFallback; var drawVertex = picon !== null && geom === 'vertex' && (!isSmall() || !isFallback); var drawLine = picon && geom === 'line' && !isFallback && !isCategory; var drawArea = picon && geom === 'area' && !isFallback; From 0952047f95c11c7dd3e529ff3b082598f0f93113 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 3 Jul 2019 14:26:34 -0400 Subject: [PATCH 128/774] Add unsearchable preset for addr:interpolation lines (close #4220) --- data/presets.yaml | 15 +++++++++++++++ data/presets/fields.json | 1 + data/presets/fields/addr/interpolation.json | 13 +++++++++++++ data/presets/presets.json | 1 + data/presets/presets/addr/_interpolation.json | 14 ++++++++++++++ data/taginfo.json | 5 +++++ dist/locales/en.json | 13 +++++++++++++ 7 files changed, 62 insertions(+) create mode 100644 data/presets/fields/addr/interpolation.json create mode 100644 data/presets/presets/addr/_interpolation.json diff --git a/data/presets.yaml b/data/presets.yaml index 00a999d3af..ed5cfc323f 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -87,6 +87,18 @@ en: access_simple: # access=* label: Allowed Access + addr/interpolation: + # 'addr:interpolation=*' + label: Type + options: + # 'addr:interpolation=all' + all: All + # 'addr:interpolation=alphabetic' + alphabetic: Alphabetic + # 'addr:interpolation=even' + even: Even + # 'addr:interpolation=odd' + odd: Odd address: # 'addr:block_number=*, addr:city=*, addr:block_number=*, addr:conscriptionnumber=*, addr:county=*, addr:country=*, addr:county=*, addr:district=*, addr:floor=*, addr:hamlet=*, addr:housename=*, addr:housenumber=*, addr:neighbourhood=*, addr:place=*, addr:postcode=*, addr:province=*, addr:quarter=*, addr:state=*, addr:street=*, addr:subdistrict=*, addr:suburb=*, addr:unit=*' label: Address @@ -2297,6 +2309,9 @@ en: # 'windings:configuration=zigzag' zigzag: Zig Zag presets: + addr/interpolation: + # 'addr:interpolation=*' + name: Address Interpolation address: # 'addr:*=*' name: Address diff --git a/data/presets/fields.json b/data/presets/fields.json index 1a9d2caa8e..bdece7ea02 100644 --- a/data/presets/fields.json +++ b/data/presets/fields.json @@ -2,6 +2,7 @@ "fields": { "access_simple": {"key": "access", "type": "combo", "label": "Allowed Access", "options": ["yes", "permissive", "private", "customers", "permit", "no"]}, "access": {"keys": ["access", "foot", "motor_vehicle", "bicycle", "horse"], "reference": {"key": "access"}, "type": "access", "label": "Allowed Access", "placeholder": "Not Specified", "strings": {"types": {"access": "All", "foot": "Foot", "motor_vehicle": "Motor Vehicles", "bicycle": "Bicycles", "horse": "Horses"}, "options": {"yes": {"title": "Allowed", "description": "Access allowed by law; a right of way"}, "no": {"title": "Prohibited", "description": "Access not allowed to the general public"}, "permissive": {"title": "Permissive", "description": "Access allowed until such time as the owner revokes the permission"}, "private": {"title": "Private", "description": "Access allowed only with permission of the owner on an individual basis"}, "designated": {"title": "Designated", "description": "Access allowed according to signs or specific local laws"}, "destination": {"title": "Destination", "description": "Access allowed only to reach a destination"}, "dismount": {"title": "Dismount", "description": "Access allowed but rider must dismount"}, "permit": {"title": "Permit", "description": "Access allowed only with a valid permit or license"}}}}, + "addr/interpolation": {"key": "addr:interpolation", "type": "combo", "label": "Type", "strings": {"options": {"all": "All", "even": "Even", "odd": "Odd", "alphabetic": "Alphabetic"}}}, "address": {"type": "address", "keys": ["addr:block_number", "addr:city", "addr:block_number", "addr:conscriptionnumber", "addr:county", "addr:country", "addr:county", "addr:district", "addr:floor", "addr:hamlet", "addr:housename", "addr:housenumber", "addr:neighbourhood", "addr:place", "addr:postcode", "addr:province", "addr:quarter", "addr:state", "addr:street", "addr:subdistrict", "addr:suburb", "addr:unit"], "reference": {"key": "addr"}, "icon": "address", "label": "Address", "strings": {"placeholders": {"block_number": "Block Number", "block_number!jp": "Block No.", "city": "City", "city!jp": "City/Town/Village/Tokyo Special Ward", "city!vn": "City/Town", "conscriptionnumber": "123", "country": "Country", "county": "County", "county!jp": "District", "district": "District", "district!vn": "Arrondissement/Town/District", "floor": "Floor", "hamlet": "Hamlet", "housename": "Housename", "housenumber": "123", "housenumber!jp": "Building No./Lot No.", "neighbourhood": "Neighbourhood", "neighbourhood!jp": "Chōme/Aza/Koaza", "place": "Place", "postcode": "Postcode", "province": "Province", "province!jp": "Prefecture", "quarter": "Quarter", "quarter!jp": "Ōaza/Machi", "state": "State", "street": "Street", "subdistrict": "Subdistrict", "subdistrict!vn": "Ward/Commune/Townlet", "suburb": "Suburb", "suburb!jp": "Ward", "unit": "Unit"}}}, "admin_level": {"key": "admin_level", "type": "number", "minValue": 1, "label": "Admin Level"}, "aerialway": {"key": "aerialway", "type": "typeCombo", "label": "Type"}, diff --git a/data/presets/fields/addr/interpolation.json b/data/presets/fields/addr/interpolation.json new file mode 100644 index 0000000000..dccea1e37b --- /dev/null +++ b/data/presets/fields/addr/interpolation.json @@ -0,0 +1,13 @@ +{ + "key": "addr:interpolation", + "type": "combo", + "label": "Type", + "strings": { + "options": { + "all": "All", + "even": "Even", + "odd": "Odd", + "alphabetic": "Alphabetic" + } + } +} diff --git a/data/presets/presets.json b/data/presets/presets.json index d74a52b972..bae256de65 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -22,6 +22,7 @@ "seamark": {"icon": "maki-harbor", "fields": ["seamark/type"], "geometry": ["point", "vertex", "line", "area"], "tags": {"seamark:type": "*"}, "searchable": false, "name": "Seamark"}, "tourism": {"icon": "maki-attraction", "fields": ["name", "tourism"], "geometry": ["point", "vertex", "line", "area"], "tags": {"tourism": "*"}, "searchable": false, "name": "Tourism"}, "waterway": {"fields": ["name", "waterway"], "geometry": ["point", "vertex", "line", "area"], "tags": {"waterway": "*"}, "searchable": false, "name": "Waterway"}, + "addr/interpolation": {"fields": ["addr/interpolation"], "geometry": ["line"], "tags": {"addr:interpolation": "*"}, "name": "Address Interpolation", "searchable": false, "matchScore": 0.2}, "address": {"fields": ["address"], "geometry": ["point", "vertex", "area"], "tags": {"addr:*": "*"}, "addTags": {}, "removeTags": {}, "reference": {"key": "addr"}, "name": "Address", "matchScore": 0.15}, "advertising/billboard": {"fields": ["direction", "lit"], "geometry": ["point", "vertex", "line"], "tags": {"advertising": "billboard"}, "name": "Billboard"}, "advertising/column": {"icon": "temaki-storage_tank", "fields": ["lit"], "geometry": ["point", "area"], "tags": {"advertising": "column"}, "name": "Advertising Column"}, diff --git a/data/presets/presets/addr/_interpolation.json b/data/presets/presets/addr/_interpolation.json new file mode 100644 index 0000000000..3acfb2585e --- /dev/null +++ b/data/presets/presets/addr/_interpolation.json @@ -0,0 +1,14 @@ +{ + "fields": [ + "addr/interpolation" + ], + "geometry": [ + "line" + ], + "tags": { + "addr:interpolation": "*" + }, + "name": "Address Interpolation", + "searchable": false, + "matchScore": 0.2 +} diff --git a/data/taginfo.json b/data/taginfo.json index 8d20ce48fe..0f44a8b54b 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -25,6 +25,7 @@ {"key": "seamark:type", "description": "🄿 Seamark (unsearchable), 🄵 Seamark", "object_types": ["node", "way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/harbor-15.svg"}, {"key": "tourism", "description": "🄿 Tourism (unsearchable), 🄵 Type", "object_types": ["node", "way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/attraction-15.svg"}, {"key": "waterway", "description": "🄿 Waterway (unsearchable), 🄵 Type", "object_types": ["node", "way", "area"]}, + {"key": "addr:interpolation", "description": "🄿 Address Interpolation (unsearchable)", "object_types": ["way"]}, {"key": "addr:*", "description": "🄿 Address", "object_types": ["node", "area"]}, {"key": "advertising", "value": "billboard", "description": "🄿 Billboard", "object_types": ["node", "way"]}, {"key": "advertising", "value": "column", "description": "🄿 Advertising Column", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/storage_tank.svg"}, @@ -1190,6 +1191,10 @@ {"key": "horse", "value": "destination", "description": "🄵 Allowed Access"}, {"key": "horse", "value": "dismount", "description": "🄵 Allowed Access"}, {"key": "horse", "value": "permit", "description": "🄵 Allowed Access"}, + {"key": "addr:interpolation", "value": "all", "description": "🄵 Type"}, + {"key": "addr:interpolation", "value": "even", "description": "🄵 Type"}, + {"key": "addr:interpolation", "value": "odd", "description": "🄵 Type"}, + {"key": "addr:interpolation", "value": "alphabetic", "description": "🄵 Type"}, {"key": "addr:block_number", "description": "🄵 Address"}, {"key": "addr:city", "description": "🄵 Address"}, {"key": "addr:conscriptionnumber", "description": "🄵 Address"}, diff --git a/dist/locales/en.json b/dist/locales/en.json index 73a88a08aa..55721714d2 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -2460,6 +2460,15 @@ } } }, + "addr/interpolation": { + "label": "Type", + "options": { + "all": "All", + "even": "Even", + "odd": "Odd", + "alphabetic": "Alphabetic" + } + }, "address": { "label": "Address", "placeholders": { @@ -4425,6 +4434,10 @@ "name": "Waterway", "terms": "" }, + "addr/interpolation": { + "name": "Address Interpolation", + "terms": "" + }, "address": { "name": "Address", "terms": "" From 5faf8af2d82d328fb10c035742b3c63247d27095 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 3 Jul 2019 14:29:03 -0400 Subject: [PATCH 129/774] Fix key misspelling in Camp Pitch preset (close #6608) --- data/presets.yaml | 2 +- data/presets/presets.json | 2 +- data/presets/presets/tourism/camp_pitch.json | 2 +- data/taginfo.json | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/data/presets.yaml b/data/presets.yaml index ed5cfc323f..2f3ec680fe 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -7440,7 +7440,7 @@ en: name: Tourist Attraction terms: '' tourism/camp_pitch: - # torism=camp_pitch + # tourism=camp_pitch name: Camp Pitch # 'terms: tent,rv' terms: '' diff --git a/data/presets/presets.json b/data/presets/presets.json index bae256de65..d2bad391ab 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -1127,7 +1127,7 @@ "tourism/artwork/sculpture": {"icon": "maki-art-gallery", "fields": ["name", "artist", "material"], "geometry": ["point", "vertex", "line", "area"], "tags": {"tourism": "artwork", "artwork_type": "sculpture"}, "reference": {"key": "artwork_type", "value": "sculpture"}, "terms": ["statue", "figure", "carving"], "name": "Sculpture"}, "tourism/artwork/statue": {"icon": "fas-female", "fields": ["name", "artist", "material"], "geometry": ["point", "vertex", "line", "area"], "tags": {"tourism": "artwork", "artwork_type": "statue"}, "reference": {"key": "artwork_type", "value": "statue"}, "terms": ["sculpture", "figure", "carving"], "name": "Statue"}, "tourism/attraction": {"icon": "maki-star", "fields": ["name", "operator", "address"], "geometry": ["point", "vertex", "line", "area"], "tags": {"tourism": "attraction"}, "matchScore": 0.75, "name": "Tourist Attraction"}, - "tourism/camp_pitch": {"icon": "maki-campsite", "fields": ["name", "ref"], "geometry": ["point", "area"], "terms": ["tent", "rv"], "tags": {"torism": "camp_pitch"}, "name": "Camp Pitch"}, + "tourism/camp_pitch": {"icon": "maki-campsite", "fields": ["name", "ref"], "geometry": ["point", "area"], "terms": ["tent", "rv"], "tags": {"tourism": "camp_pitch"}, "name": "Camp Pitch"}, "tourism/camp_site": {"icon": "maki-campsite", "fields": ["name", "operator", "address", "access_simple", "capacity", "fee", "payment_multi_fee", "internet_access", "internet_access/fee"], "moreFields": ["email", "fax", "internet_access/ssid", "phone", "power_supply", "reservation", "sanitary_dump_station", "website", "wheelchair"], "geometry": ["point", "vertex", "area"], "terms": ["tent", "rv"], "tags": {"tourism": "camp_site"}, "name": "Campground"}, "tourism/caravan_site": {"icon": "temaki-rv_park", "fields": ["name", "address", "capacity", "sanitary_dump_station", "power_supply", "internet_access", "internet_access/fee"], "moreFields": ["operator", "fee", "payment_multi_fee", "internet_access/ssid", "smoking", "website", "phone", "email", "fax", "wheelchair", "reservation"], "geometry": ["point", "vertex", "area"], "terms": ["Motor Home", "Camper"], "tags": {"tourism": "caravan_site"}, "name": "RV Park"}, "tourism/chalet": {"icon": "maki-lodging", "fields": ["name", "operator", "address", "building_area", "internet_access", "internet_access/fee"], "moreFields": ["air_conditioning", "building/levels_building", "height_building", "smoking", "payment_multi", "internet_access/ssid", "website", "phone", "email", "fax", "wheelchair", "reservation"], "geometry": ["point", "area"], "terms": ["holiday", "holiday cottage", "holiday home", "vacation", "vacation home"], "tags": {"tourism": "chalet"}, "name": "Holiday Cottage"}, diff --git a/data/presets/presets/tourism/camp_pitch.json b/data/presets/presets/tourism/camp_pitch.json index a76d1802a5..c4ef9734e1 100644 --- a/data/presets/presets/tourism/camp_pitch.json +++ b/data/presets/presets/tourism/camp_pitch.json @@ -13,7 +13,7 @@ "rv" ], "tags": { - "torism": "camp_pitch" + "tourism": "camp_pitch" }, "name": "Camp Pitch" } diff --git a/data/taginfo.json b/data/taginfo.json index 0f44a8b54b..6a3d4ad098 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -1064,7 +1064,7 @@ {"key": "artwork_type", "value": "sculpture", "description": "🄿 Sculpture", "object_types": ["node", "way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/art-gallery-15.svg"}, {"key": "artwork_type", "value": "statue", "description": "🄿 Statue", "object_types": ["node", "way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-female.svg"}, {"key": "tourism", "value": "attraction", "description": "🄿 Tourist Attraction", "object_types": ["node", "way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/star-15.svg"}, - {"key": "torism", "value": "camp_pitch", "description": "🄿 Camp Pitch", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/campsite-15.svg"}, + {"key": "tourism", "value": "camp_pitch", "description": "🄿 Camp Pitch", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/campsite-15.svg"}, {"key": "tourism", "value": "camp_site", "description": "🄿 Campground", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/campsite-15.svg"}, {"key": "tourism", "value": "caravan_site", "description": "🄿 RV Park", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/rv_park.svg"}, {"key": "tourism", "value": "chalet", "description": "🄿 Holiday Cottage", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/lodging-15.svg"}, From 14c05a1e95ce8e70c52385a9a039ca3847f1d92a Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 3 Jul 2019 14:40:02 -0400 Subject: [PATCH 130/774] Add preset for shop=swimming_pool (close #6599) --- data/presets.yaml | 5 +++++ data/presets/presets.json | 1 + data/presets/presets/shop/swimming_pool.json | 22 ++++++++++++++++++++ data/taginfo.json | 1 + dist/locales/en.json | 4 ++++ 5 files changed, 33 insertions(+) create mode 100644 data/presets/presets/shop/swimming_pool.json diff --git a/data/presets.yaml b/data/presets.yaml index 2f3ec680fe..bd0da7c0af 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -7278,6 +7278,11 @@ en: name: Supermarket # 'terms: grocery,store,shop' terms: '' + shop/swimming_pool: + # shop=swimming_pool + name: Pool Supply Store + # 'terms: hot tub equipment store,hot tub maintenance store,hot tub supply store,pool shop,pool store,swimming pool equipment store,swimming pool installation store,swimming pool maintenance store,swimming pool supply shop' + terms: '' shop/tailor: # shop=tailor name: Tailor diff --git a/data/presets/presets.json b/data/presets/presets.json index d2bad391ab..2e45c207c0 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -1093,6 +1093,7 @@ "shop/stationery": {"icon": "fas-paperclip", "geometry": ["point", "area"], "terms": ["card", "paper"], "tags": {"shop": "stationery"}, "name": "Stationery Store"}, "shop/storage_rental": {"icon": "fas-warehouse", "geometry": ["point", "area"], "tags": {"shop": "storage_rental"}, "terms": ["garages"], "name": "Storage Rental"}, "shop/supermarket": {"icon": "maki-grocery", "moreFields": ["diet_multi", "{shop}"], "geometry": ["point", "area"], "terms": ["grocery", "store", "shop"], "tags": {"shop": "supermarket"}, "name": "Supermarket"}, + "shop/swimming_pool": {"icon": "fas-swimmer", "geometry": ["point", "area"], "terms": ["hot tub equipment store", "hot tub maintenance store", "hot tub supply store", "pool shop", "pool store", "swimming pool equipment store", "swimming pool installation store", "swimming pool maintenance store", "swimming pool supply shop"], "tags": {"shop": "swimming_pool"}, "name": "Pool Supply Store"}, "shop/tailor": {"icon": "maki-clothing-store", "geometry": ["point", "area"], "terms": ["clothes", "suit"], "tags": {"shop": "tailor"}, "name": "Tailor"}, "shop/tattoo": {"icon": "maki-shop", "geometry": ["point", "area"], "tags": {"shop": "tattoo"}, "terms": ["ink"], "name": "Tattoo Parlor"}, "shop/tea": {"icon": "maki-teahouse", "geometry": ["point", "area"], "tags": {"shop": "tea"}, "name": "Tea Store"}, diff --git a/data/presets/presets/shop/swimming_pool.json b/data/presets/presets/shop/swimming_pool.json new file mode 100644 index 0000000000..620222d785 --- /dev/null +++ b/data/presets/presets/shop/swimming_pool.json @@ -0,0 +1,22 @@ +{ + "icon": "fas-swimmer", + "geometry": [ + "point", + "area" + ], + "terms": [ + "hot tub equipment store", + "hot tub maintenance store", + "hot tub supply store", + "pool shop", + "pool store", + "swimming pool equipment store", + "swimming pool installation store", + "swimming pool maintenance store", + "swimming pool supply shop" + ], + "tags": { + "shop": "swimming_pool" + }, + "name": "Pool Supply Store" +} diff --git a/data/taginfo.json b/data/taginfo.json index 6a3d4ad098..28641e7aef 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -1030,6 +1030,7 @@ {"key": "shop", "value": "stationery", "description": "🄿 Stationery Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-paperclip.svg"}, {"key": "shop", "value": "storage_rental", "description": "🄿 Storage Rental", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-warehouse.svg"}, {"key": "shop", "value": "supermarket", "description": "🄿 Supermarket", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/grocery-15.svg"}, + {"key": "shop", "value": "swimming_pool", "description": "🄿 Pool Supply Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-swimmer.svg"}, {"key": "shop", "value": "tailor", "description": "🄿 Tailor", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/clothing-store-15.svg"}, {"key": "shop", "value": "tattoo", "description": "🄿 Tattoo Parlor", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, {"key": "shop", "value": "tea", "description": "🄿 Tea Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/teahouse-15.svg"}, diff --git a/dist/locales/en.json b/dist/locales/en.json index 55721714d2..69efd01756 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -8718,6 +8718,10 @@ "name": "Supermarket", "terms": "grocery,store,shop" }, + "shop/swimming_pool": { + "name": "Pool Supply Store", + "terms": "hot tub equipment store,hot tub maintenance store,hot tub supply store,pool shop,pool store,swimming pool equipment store,swimming pool installation store,swimming pool maintenance store,swimming pool supply shop" + }, "shop/tailor": { "name": "Tailor", "terms": "clothes,suit" From 9eac13a2c80c10bf392aefa1412333e474dfff66 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 3 Jul 2019 15:23:50 -0400 Subject: [PATCH 131/774] Fix issue where a stale save button could sometimes appear --- modules/ui/tools/save.js | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/modules/ui/tools/save.js b/modules/ui/tools/save.js index c1ef2f189d..505b911a62 100644 --- a/modules/ui/tools/save.js +++ b/modules/ui/tools/save.js @@ -23,7 +23,7 @@ export function uiToolSave(context) { .title(uiTooltipHtml(t('save.no_changes'), key)); var history = context.history(); var key = uiCmd('⌘S'); - var _numChanges = 0; + var _numChanges function isSaving() { var mode = context.mode(); @@ -31,7 +31,7 @@ export function uiToolSave(context) { } function isDisabled() { - return _numChanges === 0 || isSaving(); + return !_numChanges || isSaving(); } function save() { @@ -41,15 +41,15 @@ export function uiToolSave(context) { } } - function bgColor() { + function bgColor(count) { var step; - if (_numChanges === 0) { + if (count === 0) { return null; - } else if (_numChanges <= 50) { - step = _numChanges / 50; + } else if (count <= 50) { + step = count / 50; return d3_interpolateRgb('#fff', '#ff8')(step); // white -> yellow } else { - step = Math.min((_numChanges - 50) / 50, 1.0); + step = Math.min((count - 50) / 50, 1.0); return d3_interpolateRgb('#ff8', '#f88')(step); // yellow -> red } } @@ -63,17 +63,17 @@ export function uiToolSave(context) { if (tooltipBehavior) { tooltipBehavior .title(uiTooltipHtml( - t(_numChanges > 0 ? 'save.help' : 'save.no_changes'), key) + t(val > 0 ? 'save.help' : 'save.no_changes'), key) ); } if (button) { button .classed('disabled', isDisabled()) - .style('background', bgColor(_numChanges)); + .style('background', bgColor(val)); button.select('span.count') - .text(_numChanges); + .text(val); } } @@ -127,6 +127,9 @@ export function uiToolSave(context) { tool.uninstall = function() { + + _numChanges = null; + context.keybinding() .off(key, true); From 795981a7c0c630a5619c872b68aa02a0b98a644c Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 3 Jul 2019 15:45:59 -0400 Subject: [PATCH 132/774] Add directional arrows to waterway=weir rendered as lines (close #6615) --- modules/osm/tags.js | 3 +++ modules/svg/defs.js | 1 + 2 files changed, 4 insertions(+) diff --git a/modules/osm/tags.js b/modules/osm/tags.js index 5f97f1bdbc..c988c7ad7a 100644 --- a/modules/osm/tags.js +++ b/modules/osm/tags.js @@ -104,6 +104,9 @@ export var osmRightSideIsInsideTags = { }, 'man_made': { 'embankment': true + }, + 'waterway': { + 'weir': true } }; diff --git a/modules/svg/defs.js b/modules/svg/defs.js index 31c98967a3..f0c886b5e7 100644 --- a/modules/svg/defs.js +++ b/modules/svg/defs.js @@ -58,6 +58,7 @@ export function svgDefs(context) { // the water side, so let's color them blue (with a gap) to // give a stronger indication addSidedMarker('coastline', '#77dede', 1); + addSidedMarker('waterway', '#77dede', 1); // barriers have a dashed line, and separating the triangle // from the line visually suits that addSidedMarker('barrier', '#ddd', 1); From 3d9bcc823490e4b8bf619d63593497ee4876079d Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 3 Jul 2019 15:45:59 -0400 Subject: [PATCH 133/774] Add directional arrows to waterway=weir rendered as lines (close #6615) --- modules/osm/tags.js | 3 +++ modules/svg/defs.js | 1 + 2 files changed, 4 insertions(+) diff --git a/modules/osm/tags.js b/modules/osm/tags.js index 27c5fd8420..e2ba7fd3b4 100644 --- a/modules/osm/tags.js +++ b/modules/osm/tags.js @@ -104,6 +104,9 @@ export var osmRightSideIsInsideTags = { }, 'man_made': { 'embankment': true + }, + 'waterway': { + 'weir': true } }; diff --git a/modules/svg/defs.js b/modules/svg/defs.js index 31c98967a3..f0c886b5e7 100644 --- a/modules/svg/defs.js +++ b/modules/svg/defs.js @@ -58,6 +58,7 @@ export function svgDefs(context) { // the water side, so let's color them blue (with a gap) to // give a stronger indication addSidedMarker('coastline', '#77dede', 1); + addSidedMarker('waterway', '#77dede', 1); // barriers have a dashed line, and separating the triangle // from the line visually suits that addSidedMarker('barrier', '#ddd', 1); From 97f33473bbfeec23a841c2b867ce5fd1b4ee706f Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Fri, 5 Jul 2019 09:30:57 -0400 Subject: [PATCH 134/774] Fix lint error --- modules/ui/tools/save.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ui/tools/save.js b/modules/ui/tools/save.js index 505b911a62..58bb5cfcd4 100644 --- a/modules/ui/tools/save.js +++ b/modules/ui/tools/save.js @@ -23,7 +23,7 @@ export function uiToolSave(context) { .title(uiTooltipHtml(t('save.no_changes'), key)); var history = context.history(); var key = uiCmd('⌘S'); - var _numChanges + var _numChanges; function isSaving() { var mode = context.mode(); From 8003e7b3d3babfeb681655658588c889bd2a0376 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Fri, 5 Jul 2019 10:17:15 -0400 Subject: [PATCH 135/774] Allow the `layer` and `level` tag to differentiate very close points (close #6612) --- data/core.yaml | 2 ++ dist/locales/en.json | 3 +++ modules/validations/close_nodes.js | 17 +++++++++++++++++ 3 files changed, 22 insertions(+) diff --git a/data/core.yaml b/data/core.yaml index b3c0a3a1e2..5cc6fd21df 100644 --- a/data/core.yaml +++ b/data/core.yaml @@ -1558,6 +1558,8 @@ en: title: Use a bridge or tunnel use_different_layers: title: Use different layers + use_different_layers_or_levels: + title: Use different layers or levels use_different_levels: title: Use different levels use_tunnel: diff --git a/dist/locales/en.json b/dist/locales/en.json index 69efd01756..9d505660e2 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -1952,6 +1952,9 @@ "use_different_layers": { "title": "Use different layers" }, + "use_different_layers_or_levels": { + "title": "Use different layers or levels" + }, "use_different_levels": { "title": "Use different levels" }, diff --git a/modules/validations/close_nodes.js b/modules/validations/close_nodes.js index 274f6dcbb5..0f7efc7aa3 100644 --- a/modules/validations/close_nodes.js +++ b/modules/validations/close_nodes.js @@ -134,6 +134,19 @@ export function validationCloseNodes(context) { if (nearby.loc === node.loc || geoSphericalDistance(node.loc, nearby.loc) < pointThresholdMeters) { + // allow very close points if the z-axis varies + var zAxisKeys = { layer: true, level: true }; + var zAxisDifferentiates = false; + for (var key in zAxisKeys) { + var nodeValue = node.tags[key] || '0'; + var nearbyValue = nearby.tags[key] || '0'; + if (nodeValue !== nearbyValue) { + zAxisDifferentiates = true; + break; + } + } + if (zAxisDifferentiates) continue; + issues.push(new validationIssue({ type: type, severity: 'warning', @@ -151,6 +164,10 @@ export function validationCloseNodes(context) { new validationIssueFix({ icon: 'iD-operation-disconnect', title: t('issues.fix.move_points_apart.title') + }), + new validationIssueFix({ + icon: 'iD-icon-layers', + title: t('issues.fix.use_different_layers_or_levels.title') }) ] })); From 89008769fc9aa6aa46592963b9ad963a77eae401 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Fri, 5 Jul 2019 11:06:17 -0400 Subject: [PATCH 136/774] Show the reverse operation as a toolbar item --- modules/ui/top_toolbar.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ui/top_toolbar.js b/modules/ui/top_toolbar.js index e04c30254a..3d72cde774 100644 --- a/modules/ui/top_toolbar.js +++ b/modules/ui/top_toolbar.js @@ -39,7 +39,7 @@ export function uiTopToolbar(context) { } }, null, 'Esc', 'wide'); - var supportedOperationIDs = ['circularize', 'continue', 'delete', 'disconnect', 'downgrade', 'extract', 'merge', 'orthogonalize', 'split', 'straighten']; + var supportedOperationIDs = ['circularize', 'continue', 'delete', 'disconnect', 'downgrade', 'extract', 'merge', 'orthogonalize', 'reverse', 'split', 'straighten']; var operationToolsByID = {}; From 521f1b596f45b1096fc2621b3a82af37f38e27fb Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Fri, 5 Jul 2019 12:39:00 -0400 Subject: [PATCH 137/774] Select all added features when ending repeat drawing via a keyboard shortcut or the toolbar item (close #6563) Show Finish button instead of Cancel after adding at least one feature while repeat-drawing --- modules/modes/add_point.js | 22 ++++++++++++++++++---- modules/ui/top_toolbar.js | 2 +- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/modules/modes/add_point.js b/modules/modes/add_point.js index bc455361bc..ce72c1c49c 100644 --- a/modules/modes/add_point.js +++ b/modules/modes/add_point.js @@ -20,7 +20,7 @@ export function modeAddPoint(context, mode) { .on('clickWay', addWay) .on('clickNode', addNode) .on('cancel', cancel) - .on('finish', cancel); + .on('finish', finish); var defaultTags = {}; if (mode.preset) defaultTags = mode.preset.setTags(defaultTags, 'point'); @@ -85,9 +85,7 @@ export function modeAddPoint(context, mode) { function didFinishAdding(node) { _allAddedEntityIDs.push(node.id); if (!mode.repeatAddedFeature()) { - context.enter( - modeSelect(context, mode.addedEntityIDs()).newFeature(true) - ); + mode.finish(); } } @@ -96,6 +94,10 @@ export function modeAddPoint(context, mode) { context.enter(modeBrowse(context)); } + function finish() { + mode.finish(); + } + function undone() { if (context.graph() === baselineGraph || mode.addedEntityIDs().length === 0) { @@ -103,6 +105,18 @@ export function modeAddPoint(context, mode) { } } + mode.finish = function() { + if (mode.addedEntityIDs().length) { + context.enter( + modeSelect(context, mode.addedEntityIDs()).newFeature(true) + ); + } else { + context.enter( + modeBrowse(context) + ); + } + }; + mode.enter = function() { context.install(behavior); diff --git a/modules/ui/top_toolbar.js b/modules/ui/top_toolbar.js index 3d72cde774..8945fd9853 100644 --- a/modules/ui/top_toolbar.js +++ b/modules/ui/top_toolbar.js @@ -138,7 +138,7 @@ export function uiTopToolbar(context) { tools.push(undoRedo); - if (mode.addedEntityIDs() > 0) { + if (mode.addedEntityIDs().length > 0) { tools.push(finishDrawing); } else { tools.push(cancelDrawing); From 45a89df7c7e50fb2d6bbbc69d1a1f77d7805a785 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Fri, 5 Jul 2019 13:04:54 -0400 Subject: [PATCH 138/774] Select all features when finishing repeat-drawing during line and area draw modes (re: #6563) --- modules/behavior/add_way.js | 14 ++++---------- modules/modes/add_area.js | 26 +++++++++++++++++++++++++- modules/modes/add_line.js | 26 +++++++++++++++++++++++++- modules/modes/add_point.js | 12 +++++------- 4 files changed, 59 insertions(+), 19 deletions(-) diff --git a/modules/behavior/add_way.js b/modules/behavior/add_way.js index b5ba7784c7..f42838aaef 100644 --- a/modules/behavior/add_way.js +++ b/modules/behavior/add_way.js @@ -1,20 +1,19 @@ import { dispatch as d3_dispatch } from 'd3-dispatch'; import { behaviorDraw } from './draw'; -import { modeBrowse } from '../modes/browse'; import { utilRebind } from '../util/rebind'; export function behaviorAddWay(context) { - var dispatch = d3_dispatch('start', 'startFromWay', 'startFromNode'); + var dispatch = d3_dispatch('start', 'startFromWay', 'startFromNode', 'cancel', 'finish'); var draw = behaviorDraw(context); function behavior(surface) { draw.on('click', function() { dispatch.apply('start', this, arguments); }) .on('clickWay', function() { dispatch.apply('startFromWay', this, arguments); }) .on('clickNode', function() { dispatch.apply('startFromNode', this, arguments); }) - .on('cancel', behavior.cancel) - .on('finish', behavior.cancel); + .on('cancel', function() { dispatch.apply('cancel', this, arguments); }) + .on('finish', function() { dispatch.apply('finish', this, arguments); }); context.map() .dblclickEnable(false); @@ -24,16 +23,11 @@ export function behaviorAddWay(context) { behavior.off = function(surface) { - surface.call(draw.off); - }; - - - behavior.cancel = function() { window.setTimeout(function() { context.map().dblclickEnable(true); }, 1000); - context.enter(modeBrowse(context)); + surface.call(draw.off); }; diff --git a/modules/modes/add_area.js b/modules/modes/add_area.js index e54c2637c1..ed3e61e08c 100644 --- a/modules/modes/add_area.js +++ b/modules/modes/add_area.js @@ -5,6 +5,7 @@ import { actionAddVertex } from '../actions/add_vertex'; import { behaviorAddWay } from '../behavior/add_way'; import { modeBrowse } from './browse'; +import { modeSelect } from './select'; import { modeDrawArea } from './draw_area'; import { osmNode, osmWay } from '../osm'; @@ -16,7 +17,9 @@ export function modeAddArea(context, mode) { .tail(t('modes.add_area.tail')) .on('start', start) .on('startFromWay', startFromWay) - .on('startFromNode', startFromNode); + .on('startFromNode', startFromNode) + .on('cancel', cancel) + .on('finish', finish); var defaultTags = { area: 'yes' }; if (mode.preset) defaultTags = mode.preset.setTags(defaultTags, 'area'); @@ -103,6 +106,27 @@ export function modeAddArea(context, mode) { } + function cancel() { + context.enter(modeBrowse(context)); + } + + function finish() { + mode.finish(); + } + + mode.finish = function() { + if (mode.addedEntityIDs().length) { + context.enter( + modeSelect(context, mode.addedEntityIDs()).newFeature(true) + ); + } else { + context.enter( + modeBrowse(context) + ); + } + }; + + mode.enter = function() { context.install(behavior); context.history() diff --git a/modules/modes/add_line.js b/modules/modes/add_line.js index 625406fe02..9097c5e347 100644 --- a/modules/modes/add_line.js +++ b/modules/modes/add_line.js @@ -5,6 +5,7 @@ import { actionAddVertex } from '../actions/add_vertex'; import { behaviorAddWay } from '../behavior/add_way'; import { modeBrowse } from './browse'; +import { modeSelect } from './select'; import { modeDrawLine } from './draw_line'; import { osmNode, osmWay } from '../osm'; @@ -16,7 +17,9 @@ export function modeAddLine(context, mode) { .tail(t('modes.add_line.tail')) .on('start', start) .on('startFromWay', startFromWay) - .on('startFromNode', startFromNode); + .on('startFromNode', startFromNode) + .on('cancel', cancel) + .on('finish', finish); mode.defaultTags = {}; if (mode.preset) mode.defaultTags = mode.preset.setTags(mode.defaultTags, 'line'); @@ -92,6 +95,27 @@ export function modeAddLine(context, mode) { } + function cancel() { + context.enter(modeBrowse(context)); + } + + function finish() { + mode.finish(); + } + + mode.finish = function() { + if (mode.addedEntityIDs().length) { + context.enter( + modeSelect(context, mode.addedEntityIDs()).newFeature(true) + ); + } else { + context.enter( + modeBrowse(context) + ); + } + }; + + mode.enter = function() { context.install(behavior); context.history() diff --git a/modules/modes/add_point.js b/modules/modes/add_point.js index ce72c1c49c..411a3f054b 100644 --- a/modules/modes/add_point.js +++ b/modules/modes/add_point.js @@ -89,6 +89,11 @@ export function modeAddPoint(context, mode) { } } + function undone() { + if (context.graph() === baselineGraph || mode.addedEntityIDs().length === 0) { + context.enter(modeBrowse(context)); + } + } function cancel() { context.enter(modeBrowse(context)); @@ -98,13 +103,6 @@ export function modeAddPoint(context, mode) { mode.finish(); } - - function undone() { - if (context.graph() === baselineGraph || mode.addedEntityIDs().length === 0) { - context.enter(modeBrowse(context)); - } - } - mode.finish = function() { if (mode.addedEntityIDs().length) { context.enter( From 4e42797912f0e85522d19434cf0226ba85f238a7 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Fri, 5 Jul 2019 14:12:48 -0400 Subject: [PATCH 139/774] Fix issue where assistant could not scroll in Firefox (close #6624) --- css/80_app.css | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/css/80_app.css b/css/80_app.css index 1e7701540c..e728eb582a 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -1058,7 +1058,7 @@ a.hide-toggle { border-top-left-radius: inherit; border-top-right-radius: inherit; } -.assistant.light:not(.body-collapsed, .prominent) .assistant-header{ +.assistant.light:not(.body-collapsed):not(.prominent) .assistant-header{ background: #fff; } .assistant .icon-col { @@ -1121,6 +1121,7 @@ a.hide-toggle { position: relative; border-bottom-right-radius: inherit; border-bottom-left-radius: inherit; + min-height: 0px; /* needed for scroll in flexbox in Firefox */ } .assistant.body-collapsed .assistant-body { display: none; From bf85ff7236faeeba00b559740c67c19e577dd7ed Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Fri, 5 Jul 2019 15:08:22 -0400 Subject: [PATCH 140/774] Don't discard drawn feature when toggling a quick preset while drawing (close #6609) --- modules/behavior/draw_way.js | 6 ++++-- modules/modes/draw_area.js | 2 +- modules/modes/draw_line.js | 2 +- modules/ui/tools/add_favorite.js | 8 +++++++- modules/ui/tools/add_recent.js | 8 +++++++- 5 files changed, 20 insertions(+), 6 deletions(-) diff --git a/modules/behavior/draw_way.js b/modules/behavior/draw_way.js index c15209f724..fdc835c6d6 100644 --- a/modules/behavior/draw_way.js +++ b/modules/behavior/draw_way.js @@ -371,7 +371,7 @@ export function behaviorDrawWay(context, wayID, index, mode, startGraph, baselin shouldResetOnOff = false; checkGeometry(true); // finishDraw = true if (context.surface().classed('nope')) { - return; // can't click here + return false; // can't click here } context.pauseChangeDispatch(); @@ -379,7 +379,7 @@ export function behaviorDrawWay(context, wayID, index, mode, startGraph, baselin var way = context.hasEntity(wayID); if (!way || way.isDegenerate()) { drawWay.cancel(); - return; + return false; } context.resumeChangeDispatch(); @@ -389,6 +389,8 @@ export function behaviorDrawWay(context, wayID, index, mode, startGraph, baselin }, 1000); mode.didFinishAdding(); + + return true; }; diff --git a/modules/modes/draw_area.js b/modules/modes/draw_area.js index b926d864ce..17f8cf4357 100644 --- a/modules/modes/draw_area.js +++ b/modules/modes/draw_area.js @@ -72,7 +72,7 @@ export function modeDrawArea(context, wayID, startGraph, baselineGraph, button, mode.finish = function() { - behavior.finish(); + return behavior.finish(); }; diff --git a/modules/modes/draw_line.js b/modules/modes/draw_line.js index 6539f27a38..13cd13d014 100644 --- a/modules/modes/draw_line.js +++ b/modules/modes/draw_line.js @@ -75,7 +75,7 @@ export function modeDrawLine(context, wayID, startGraph, baselineGraph, button, if (skipCompletion) { mode.didFinishAdding = function() {}; } - behavior.finish(); + return behavior.finish(); }; diff --git a/modules/ui/tools/add_favorite.js b/modules/ui/tools/add_favorite.js index e18bbe23cc..986d8466cb 100644 --- a/modules/ui/tools/add_favorite.js +++ b/modules/ui/tools/add_favorite.js @@ -25,7 +25,13 @@ export function uiToolAddFavorite(context) { function toggleMode(d) { if (!enabled(d)) return; - if (d.button === context.mode().button) { + if (context.mode().id.includes('draw') && context.mode().finish) { + // gracefully complete the feature currently being drawn + var didFinish = context.mode().finish(); + if (!didFinish) return; + } + + if (context.mode().id.includes('add') && d.button === context.mode().button) { context.enter(modeBrowse(context)); } else { if (d.preset) { diff --git a/modules/ui/tools/add_recent.js b/modules/ui/tools/add_recent.js index 79c74ca2cc..14c19e6939 100644 --- a/modules/ui/tools/add_recent.js +++ b/modules/ui/tools/add_recent.js @@ -25,7 +25,13 @@ export function uiToolAddRecent(context) { function toggleMode(d) { if (!enabled(d)) return; - if (d.button === context.mode().button) { + if (context.mode().id.includes('draw') && context.mode().finish) { + // gracefully complete the feature currently being drawn + var didFinish = context.mode().finish(); + if (!didFinish) return; + } + + if (context.mode().id.includes('add') && d.button === context.mode().button) { context.enter(modeBrowse(context)); } else { if (d.preset && From 0ccd5de1fff3ee7bf7951954c4c978e521ad9f27 Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" <23040076+greenkeeper[bot]@users.noreply.github.com> Date: Sat, 6 Jul 2019 04:14:38 +0000 Subject: [PATCH 141/774] fix(package): update marked to version 0.7.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 9f73ea2239..855d541212 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "fast-deep-equal": "~2.0.1", "fast-json-stable-stringify": "2.0.0", "lodash-es": "4.17.11", - "marked": "0.6.3", + "marked": "0.7.0", "martinez-polygon-clipping": "0.5.0", "node-diff3": "1.0.0", "osm-auth": "1.0.2", From b68efaa160eb27e0874fcda7246043319646d7ee Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Mon, 8 Jul 2019 12:16:50 -0400 Subject: [PATCH 142/774] Add disclosure indicator to the Add Feature toolbar button Adjust the prominent assistant icon color --- css/80_app.css | 20 ++++++++++++++++---- modules/ui/tools/add_feature.js | 8 ++++++-- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/css/80_app.css b/css/80_app.css index e728eb582a..9d073e05be 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -551,9 +551,21 @@ button.bar-button .label { flex: 0 1 auto; padding: 0 5px; } -.toolbar-item.add-feature button.bar-button .icon { - width: 30px; - height: 30px; +.toolbar-item.add-feature button.bar-button > .icon { + width: 33px; + height: 33px; +} +.toolbar-item button.bar-button .disclosure-icon { + width: 18px; + color: rgba(0, 0, 0, 0.5); +} +[dir='ltr'] .toolbar-item .disclosure-icon { + margin-left: 2px; + margin-right: -2px; +} +[dir='rtl'] .toolbar-item .disclosure-icon { + margin-left: -2px; + margin-right: 2px; } button.bar-button.dragging { @@ -1199,7 +1211,7 @@ a.hide-toggle { .assistant.prominent .icon-col .icon { width: 40px; height: 40px; - color: #F49700; /*#FFCF4A*/ + color: #f6bb00; /*#FFCF4A*/ } .assistant.prominent .mode-label { display: none; diff --git a/modules/ui/tools/add_feature.js b/modules/ui/tools/add_feature.js index 8d91da415f..f05edfa7a1 100644 --- a/modules/ui/tools/add_feature.js +++ b/modules/ui/tools/add_feature.js @@ -29,12 +29,12 @@ export function uiToolAddFeature(context) { tool.render = function(selection) { - selection + var buttonEnter = selection .selectAll('.bar-button') .data([0]) .enter() .append('button') - .attr('class', 'bar-button wide') + .attr('class', 'bar-button') .attr('tabindex', -1) .on('mousedown', function() { d3_event.preventDefault(); @@ -61,6 +61,10 @@ export function uiToolAddFeature(context) { ) .call(svgIcon('#iD-logo-features')); + buttonEnter + .append('span') + .call(svgIcon('#iD-icon-down', 'disclosure-icon')); + button = selection.select('.bar-button'); presetBrowser.render(selection); From 68651c559353354adc7b8e2e06c7a73c8782ff18 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Mon, 8 Jul 2019 12:38:26 -0400 Subject: [PATCH 143/774] Fix state issues with the preset browser geometry filter buttons --- modules/ui/preset_browser.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/ui/preset_browser.js b/modules/ui/preset_browser.js index b6b73f78a1..d8037bd4ed 100644 --- a/modules/ui/preset_browser.js +++ b/modules/ui/preset_browser.js @@ -20,6 +20,7 @@ export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { var presets; var shownGeometry = []; + updateShownGeometry(allowedGeometry); var popover = d3_select(null), search = d3_select(null), @@ -28,7 +29,6 @@ export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { var browser = {}; browser.render = function(selection) { - updateShownGeometry(allowedGeometry.slice()); // shallow copy popover = selection.selectAll('.preset-browser') .data([0]); @@ -105,7 +105,7 @@ export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { .on('click', function(d) { toggleShownGeometry(d); if (shownGeometry.length === 0) { - updateShownGeometry(allowedGeometry.slice()); // shallow copy + updateShownGeometry(allowedGeometry); // shallow copy toggleShownGeometry(d); } updateFilterButtonsStates(); @@ -141,14 +141,14 @@ export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { browser.setAllowedGeometry = function(array) { allowedGeometry = array; - updateShownGeometry(array.slice()); + updateShownGeometry(array); updateFilterButtonsStates(); updateResultsList(); }; function updateShownGeometry(geom) { - shownGeometry = geom.sort(); + shownGeometry = geom.slice().sort(); presets = context.presets().matchAnyGeometry(shownGeometry); } From 9d94450a67ca9022999c7bcd634fc53dede7b9a1 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Mon, 8 Jul 2019 12:55:15 -0400 Subject: [PATCH 144/774] Fix stale preset browser geometry filter buttons in the entity editor --- modules/ui/preset_browser.js | 71 +++++++++++++++++++++++------------- 1 file changed, 45 insertions(+), 26 deletions(-) diff --git a/modules/ui/preset_browser.js b/modules/ui/preset_browser.js index d8037bd4ed..0def9e14a8 100644 --- a/modules/ui/preset_browser.js +++ b/modules/ui/preset_browser.js @@ -85,37 +85,14 @@ export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { footer.append('div') .attr('class', 'message'); - var geomForButtons = allowedGeometry.slice(); - var vertexIndex = geomForButtons.indexOf('vertex'); - if (vertexIndex !== -1) geomForButtons.splice(vertexIndex, 1); - footer.append('div') - .attr('class', 'filter-wrap') - .selectAll('button.filter') - .data(geomForButtons) - .enter() - .append('button') - .attr('class', 'filter active') - .attr('title', function(d) { - return t('modes.add_' + d + '.filter_tooltip'); - }) - .each(function(d) { - d3_select(this).call(svgIcon('#iD-icon-' + d)); - }) - .on('click', function(d) { - toggleShownGeometry(d); - if (shownGeometry.length === 0) { - updateShownGeometry(allowedGeometry); // shallow copy - toggleShownGeometry(d); - } - updateFilterButtonsStates(); - updateResultsList(); - }); + .attr('class', 'filter-wrap'); popover = popoverEnter.merge(popover); search = popover.selectAll('.search-input'); popoverContent = popover.selectAll('.popover-content'); + renderFilterButtons(); updateResultsList(); }; @@ -138,11 +115,53 @@ export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { search.node().blur(); }; + function renderFilterButtons() { + var selection = popover.select('.popover-footer .filter-wrap'); + + var geomForButtons = allowedGeometry.slice(); + var vertexIndex = geomForButtons.indexOf('vertex'); + if (vertexIndex !== -1) geomForButtons.splice(vertexIndex, 1); + + if (geomForButtons.length === 1) { + // don't show filter buttons if only one geometry allowed + geomForButtons = []; + } + + var buttons = selection + .selectAll('button.filter') + .data(geomForButtons, function(d) { return d; }); + + buttons.exit() + .remove(); + + buttons + .enter() + .append('button') + .attr('class', 'filter active') + .attr('title', function(d) { + return t('modes.add_' + d + '.filter_tooltip'); + }) + .each(function(d) { + d3_select(this).call(svgIcon('#iD-icon-' + d)); + }) + .on('click', function(d) { + toggleShownGeometry(d); + if (shownGeometry.length === 0) { + updateShownGeometry(allowedGeometry); + toggleShownGeometry(d); + } + updateFilterButtonsStates(); + updateResultsList(); + }); + + updateFilterButtonsStates(); + } + browser.setAllowedGeometry = function(array) { allowedGeometry = array; updateShownGeometry(array); - updateFilterButtonsStates(); + renderFilterButtons(); updateResultsList(); }; From 1f3d266cb151e6910851b732666de4e817351417 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Mon, 8 Jul 2019 15:22:11 -0400 Subject: [PATCH 145/774] Add instructions on how to finish drawing to assistant --- css/80_app.css | 1 + data/core.yaml | 7 ++++--- dist/locales/en.json | 9 +++++---- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/css/80_app.css b/css/80_app.css index 9d073e05be..6a5e5bceb6 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -1144,6 +1144,7 @@ a.hide-toggle { .assistant .body-text { font-size: 12px; opacity: 0.8; + line-height: 1.5em; } .assistant b { font-weight: bold; diff --git a/data/core.yaml b/data/core.yaml index 52b6a9fe07..6fa2867e22 100644 --- a/data/core.yaml +++ b/data/core.yaml @@ -45,11 +45,12 @@ en: saving: Saving viewing: Viewing instructions: - add_point: Click or tap the center of the feature. - add_line: Click or tap the starting location. + add_point: Click the center of the feature. + add_line: Click the starting point of the feature. draw_line: Place points along the feature's centerline. - add_area: Click or tap any corner of the feature. + add_area: Click any corner of the feature. draw_area: Place points along the feature's outline. + finishing: When you're done, click the last point again or click Finish. global_location: Planet Earth greetings: morning: Good Morning diff --git a/dist/locales/en.json b/dist/locales/en.json index 42c40ebdd9..76d203168f 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -58,11 +58,12 @@ "viewing": "Viewing" }, "instructions": { - "add_point": "Click or tap the center of the feature.", - "add_line": "Click or tap the starting location.", + "add_point": "Click the center of the feature.", + "add_line": "Click the starting point of the feature.", "draw_line": "Place points along the feature's centerline.", - "add_area": "Click or tap any corner of the feature.", - "draw_area": "Place points along the feature's outline." + "add_area": "Click any corner of the feature.", + "draw_area": "Place points along the feature's outline.", + "finishing": "When you're done, click the last point again or click Finish." }, "global_location": "Planet Earth", "greetings": { From 423b8d48432b00abb7ce1798b2ec88f7aac4b1a8 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Mon, 8 Jul 2019 15:45:55 -0400 Subject: [PATCH 146/774] Fix crash on some validation fixes --- modules/validations/disconnected_way.js | 2 +- modules/validations/impossible_oneway.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/validations/disconnected_way.js b/modules/validations/disconnected_way.js index b16323f259..1217003ec2 100644 --- a/modules/validations/disconnected_way.js +++ b/modules/validations/disconnected_way.js @@ -189,7 +189,7 @@ export function validationDisconnectedWay() { function continueDrawing(way, vertex, context) { // make sure the vertex is actually visible and editable var map = context.map(); - if (!map.editable() || !map.trimmedExtent().contains(vertex.loc)) { + if (!context.editable() || !map.trimmedExtent().contains(vertex.loc)) { map.zoomToEase(vertex); } diff --git a/modules/validations/impossible_oneway.js b/modules/validations/impossible_oneway.js index 007d3f437a..1fdc2e11c6 100644 --- a/modules/validations/impossible_oneway.js +++ b/modules/validations/impossible_oneway.js @@ -214,7 +214,7 @@ export function validationImpossibleOneway() { function continueDrawing(way, vertex, context) { // make sure the vertex is actually visible and editable var map = context.map(); - if (!map.editable() || !map.trimmedExtent().contains(vertex.loc)) { + if (!context.editable() || !map.trimmedExtent().contains(vertex.loc)) { map.zoomToEase(vertex); } From 78ba70b0fef2addca4d044a13d8fa906189a458d Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Mon, 8 Jul 2019 15:59:25 -0400 Subject: [PATCH 147/774] Fix bug where stale entity editor could appear in the assistant --- modules/ui/assistant.js | 18 ++++++++++++------ modules/ui/entity_editor.js | 27 +++++---------------------- 2 files changed, 17 insertions(+), 28 deletions(-) diff --git a/modules/ui/assistant.js b/modules/ui/assistant.js index 3c060600e1..50cbb36634 100644 --- a/modules/ui/assistant.js +++ b/modules/ui/assistant.js @@ -53,7 +53,6 @@ export function uiAssistant(context) { header = d3_select(null), body = d3_select(null); - var entityEditor = uiEntityEditor(context); var featureSearch = uiFeatureList(context); var savedChangeset = null; @@ -197,16 +196,15 @@ export function uiAssistant(context) { iconCol.call(panel.renderHeaderIcon); } - body.html(''); + body.text(''); if (panel.renderBody) { body.call(panel.renderBody); } var headerBody = headerMainCol.selectAll('.header-body'); + headerBody.text(''); if (panel.renderHeaderBody) { headerBody.call(panel.renderHeaderBody); - } else { - headerBody.text(''); } if (panel.message) { @@ -224,7 +222,7 @@ export function uiAssistant(context) { .append('div') .attr('class', 'body-text'); - bodyTextArea.text(panel.message); + bodyTextArea.html(panel.message); } } @@ -675,18 +673,25 @@ export function uiAssistant(context) { icon = 'iD-icon-area'; } + var message = t('assistant.instructions.' + mode.id.replace('-', '_')); + var modeLabelID; if (mode.id.indexOf('add') !== -1) { modeLabelID = 'adding'; } else { modeLabelID = 'drawing'; + + var way = context.entity(mode.wayID); + if (way.nodes.length >= 4) { + message += '
' + t('assistant.instructions.finishing'); + } } var panel = { headerIcon: icon, modeLabel: t('assistant.mode.' + modeLabelID), title: mode.title, - message: t('assistant.instructions.' + mode.id.replace('-', '_')) + message: message }; return panel; @@ -713,6 +718,7 @@ export function uiAssistant(context) { }; panel.renderBody = function(selection) { + var entityEditor = uiEntityEditor(context); entityEditor .state('select') .entityID(id); diff --git a/modules/ui/entity_editor.js b/modules/ui/entity_editor.js index 97e505b0a8..cc3d9b8819 100644 --- a/modules/ui/entity_editor.js +++ b/modules/ui/entity_editor.js @@ -1,5 +1,4 @@ -import { dispatch as d3_dispatch } from 'd3-dispatch'; -import {event as d3_event, selectAll as d3_selectAll } from 'd3-selection'; +import {event as d3_event } from 'd3-selection'; import deepEqual from 'fast-deep-equal'; import { t } from '../util/locale'; @@ -15,16 +14,14 @@ import { uiTagReference } from './tag_reference'; import { uiPresetBrowser } from './preset_browser'; import { uiPresetEditor } from './preset_editor'; import { uiEntityIssues } from './entity_issues'; -import { utilCleanTags, utilRebind } from '../util'; +import { utilCleanTags } from '../util'; import { uiViewOnOSM } from './view_on_osm'; export function uiEntityEditor(context) { - var dispatch = d3_dispatch('choose'); var _state = 'select'; var _coalesceChanges = false; var _modified = false; - var _scrolled = false; var _base; var _entityID; var _activePreset; @@ -58,8 +55,7 @@ export function uiEntityEditor(context) { // Enter var bodyEnter = body.enter() .append('div') - .attr('class', 'inspector-body sep-top') - .on('scroll.entity-editor', function() { _scrolled = true; }); + .attr('class', 'entity-editor inspector-body sep-top'); var presetButtonWrap = bodyEnter .append('div') @@ -148,7 +144,6 @@ export function uiEntityEditor(context) { presetBrowser.setAllowedGeometry([context.geometry(_entityID)]); presetBrowser.show(); } - //dispatch.call('choose', this, _activePreset); }) .on('mousedown', function() { d3_event.preventDefault(); @@ -234,6 +229,7 @@ export function uiEntityEditor(context) { function historyChanged(difference) { + if (selection.selectAll('.entity-editor').empty()) return; if (_state === 'hide') return; var significant = !difference || difference.didChange.properties || @@ -309,8 +305,6 @@ export function uiEntityEditor(context) { entityEditor.modified = function(val) { if (!arguments.length) return _modified; _modified = val; - d3_selectAll('button.preset-close use') - .attr('xlink:href', (_modified ? '#iD-icon-apply' : '#iD-icon-close')); return entityEditor; }; @@ -330,17 +324,6 @@ export function uiEntityEditor(context) { _base = context.graph(); _coalesceChanges = false; - // reset the scroll to the top of the inspector (warning: triggers reflow) - if (_scrolled) { - window.requestIdleCallback(function() { - var body = d3_selectAll('.entity-editor-pane .inspector-body'); - if (!body.empty()) { - _scrolled = false; - body.node().scrollTop = 0; - } - }); - } - var presetMatch = context.presets().match(context.entity(_entityID), _base); return entityEditor @@ -361,5 +344,5 @@ export function uiEntityEditor(context) { }; - return utilRebind(entityEditor, dispatch, 'on'); + return entityEditor; } From 83c5fa32152e53358e2fbe297d94c157b8e41fb0 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Mon, 8 Jul 2019 16:48:10 -0400 Subject: [PATCH 148/774] Fix issue where background panel wouldn't update (close #6627) --- modules/renderer/background.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/renderer/background.js b/modules/renderer/background.js index d3b91d5f72..f293dfafa4 100644 --- a/modules/renderer/background.js +++ b/modules/renderer/background.js @@ -284,7 +284,9 @@ export function rendererBackground(context) { background.showsLayer = function(d) { - return d.id === baseLayer.source().id || + var baseSource = baseLayer.source(); + if (!d || !baseSource) return false; + return d.id === baseSource.id || _overlayLayers.some(function(layer) { return d.id === layer.source().id; }); }; From 7ae5993ea0e86f7f29515be363c5758ff73da55c Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 9 Jul 2019 09:40:26 -0400 Subject: [PATCH 149/774] Add preschool=yes when upgrading amenity=preschool (close #6636) Add preschool field to kindergarten preset --- data/deprecated.json | 2 +- data/presets.yaml | 3 +++ data/presets/fields.json | 1 + data/presets/fields/preschool.json | 5 +++++ data/presets/presets.json | 2 +- data/presets/presets/amenity/kindergarten.json | 9 +++++---- data/taginfo.json | 3 ++- dist/locales/en.json | 3 +++ 8 files changed, 21 insertions(+), 7 deletions(-) create mode 100644 data/presets/fields/preschool.json diff --git a/data/deprecated.json b/data/deprecated.json index 364ca6e553..67f71a4f30 100644 --- a/data/deprecated.json +++ b/data/deprecated.json @@ -90,7 +90,7 @@ }, { "old": {"amenity": "preschool"}, - "replace": {"amenity": "kindergarten"} + "replace": {"amenity": "kindergarten", "preschool": "yes"} }, { "old": {"amenity": "public_building"}, diff --git a/data/presets.yaml b/data/presets.yaml index bd0da7c0af..701764ed94 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -1516,6 +1516,9 @@ en: power_supply: # power_supply=* label: Power Supply + preschool: + # preschool=* + label: Preschool produce: # produce=* label: Produce diff --git a/data/presets/fields.json b/data/presets/fields.json index bdece7ea02..e09739782a 100644 --- a/data/presets/fields.json +++ b/data/presets/fields.json @@ -271,6 +271,7 @@ "population": {"key": "population", "type": "text", "label": "Population"}, "power_supply": {"key": "power_supply", "type": "check", "label": "Power Supply"}, "power": {"key": "power", "type": "typeCombo", "label": "Type"}, + "preschool": {"key": "preschool", "type": "check", "label": "Preschool"}, "produce": {"key": "produce", "type": "semiCombo", "label": "Produce"}, "product": {"key": "product", "type": "semiCombo", "label": "Products"}, "railway": {"key": "railway", "type": "typeCombo", "label": "Type"}, diff --git a/data/presets/fields/preschool.json b/data/presets/fields/preschool.json new file mode 100644 index 0000000000..e2ff613a4e --- /dev/null +++ b/data/presets/fields/preschool.json @@ -0,0 +1,5 @@ +{ + "key": "preschool", + "type": "check", + "label": "Preschool" +} diff --git a/data/presets/presets.json b/data/presets/presets.json index 2e45c207c0..d2f93027d9 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -128,7 +128,7 @@ "amenity/ice_cream": {"icon": "fas-ice-cream", "fields": ["name", "address", "building_area", "opening_hours", "outdoor_seating"], "moreFields": ["takeaway", "delivery", "drive_through", "internet_access", "internet_access/fee", "internet_access/ssid", "diet_multi", "payment_multi", "website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "terms": ["gelato", "sorbet", "sherbet", "frozen", "yogurt"], "tags": {"amenity": "ice_cream"}, "name": "Ice Cream Shop"}, "amenity/internet_cafe": {"icon": "temaki-antenna", "fields": ["name", "operator", "operator/type", "address", "building_area", "internet_access", "internet_access/fee", "internet_access/ssid"], "moreFields": ["air_conditioning", "email", "fax", "opening_hours", "outdoor_seating", "payment_multi", "phone", "smoking", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["cybercafe", "taxiphone", "teleboutique", "coffee", "cafe", "net", "lanhouse"], "tags": {"amenity": "internet_cafe"}, "name": "Internet Cafe"}, "amenity/karaoke": {"icon": "maki-karaoke", "fields": ["name", "operator", "address", "building_area", "opening_hours", "website"], "moreFields": ["air_conditioning", "email", "fax", "payment_multi", "phone", "smoking", "wheelchair"], "geometry": ["point", "area"], "terms": ["karaoke club", "karaoke room", "karaoke television", "KTV"], "tags": {"amenity": "karaoke_box"}, "name": "Karaoke Box"}, - "amenity/kindergarten": {"icon": "maki-school", "fields": ["name", "operator", "address"], "moreFields": ["opening_hours", "payment_multi", "website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "terms": ["kindergarden", "pre-school"], "tags": {"amenity": "kindergarten"}, "name": "Preschool/Kindergarten Grounds"}, + "amenity/kindergarten": {"icon": "maki-school", "fields": ["name", "operator", "address", "phone", "preschool"], "moreFields": ["email", "fax", "opening_hours", "payment_multi", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["kindergarden", "pre-school"], "tags": {"amenity": "kindergarten"}, "name": "Preschool/Kindergarten Grounds"}, "amenity/language_school": {"icon": "maki-school", "fields": ["name", "operator", "operator/type", "address", "building_area", "opening_hours", "language_multi"], "moreFields": ["email", "fax", "internet_access", "internet_access/fee", "internet_access/ssid", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["esl"], "tags": {"amenity": "language_school"}, "name": "Language School"}, "amenity/library": {"icon": "maki-library", "fields": ["name", "operator", "operator/type", "building_area", "address", "ref/isil", "internet_access", "internet_access/fee", "internet_access/ssid"], "moreFields": ["access_simple", "air_conditioning", "email", "fax", "opening_hours", "payment_multi", "phone", "polling_station", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["book"], "tags": {"amenity": "library"}, "name": "Library"}, "amenity/love_hotel": {"icon": "maki-heart", "fields": ["name", "operator", "address", "building_area", "rooms", "internet_access", "internet_access/fee"], "moreFields": ["smoking", "payment_multi", "internet_access/ssid", "website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "love_hotel"}, "name": "Love Hotel"}, diff --git a/data/presets/presets/amenity/kindergarten.json b/data/presets/presets/amenity/kindergarten.json index 4eb52d8d0c..9daaa426d9 100644 --- a/data/presets/presets/amenity/kindergarten.json +++ b/data/presets/presets/amenity/kindergarten.json @@ -3,15 +3,16 @@ "fields": [ "name", "operator", - "address" + "address", + "phone", + "preschool" ], "moreFields": [ + "email", + "fax", "opening_hours", "payment_multi", "website", - "phone", - "email", - "fax", "wheelchair" ], "geometry": [ diff --git a/data/taginfo.json b/data/taginfo.json index 28641e7aef..a00320ae6c 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -1560,6 +1560,7 @@ {"key": "min_age", "description": "🄵 Minimum Age"}, {"key": "population", "description": "🄵 Population"}, {"key": "power_supply", "description": "🄵 Power Supply"}, + {"key": "preschool", "description": "🄵 Preschool"}, {"key": "produce", "description": "🄵 Produce"}, {"key": "product", "description": "🄵 Products"}, {"key": "railway:position", "description": "🄵 Milestone Position"}, @@ -1801,7 +1802,7 @@ {"key": "amenity", "value": "hotel", "description": "🄳 ➜ tourism=hotel"}, {"key": "amenity", "value": "kiosk", "description": "🄳 ➜ shop=kiosk"}, {"key": "amenity", "value": "nursery", "description": "🄳 ➜ amenity=kindergarten"}, - {"key": "amenity", "value": "preschool", "description": "🄳 ➜ amenity=kindergarten"}, + {"key": "amenity", "value": "preschool", "description": "🄳 ➜ amenity=kindergarten + preschool=yes"}, {"key": "amenity", "value": "public_building", "description": "🄳 ➜ building=public"}, {"key": "amenity", "value": "real_estate", "description": "🄳 ➜ office=estate_agent"}, {"key": "amenity", "value": "sauna", "description": "🄳 ➜ leisure=sauna"}, diff --git a/dist/locales/en.json b/dist/locales/en.json index 9d505660e2..d048b5d712 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -3685,6 +3685,9 @@ "power": { "label": "Type" }, + "preschool": { + "label": "Preschool" + }, "produce": { "label": "Produce" }, From c66cc3f143fd6aee60748315b2373d6546d520e2 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 9 Jul 2019 09:44:16 -0400 Subject: [PATCH 150/774] Add Underground Levels field to building presets (close #6628) --- data/presets.yaml | 5 +++++ data/presets/fields.json | 1 + data/presets/fields/building/levels/underground.json | 7 +++++++ data/presets/presets.json | 2 +- data/presets/presets/building.json | 1 + data/taginfo.json | 1 + dist/locales/en.json | 4 ++++ 7 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 data/presets/fields/building/levels/underground.json diff --git a/data/presets.yaml b/data/presets.yaml index 701764ed94..fb5d67aa04 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -301,6 +301,11 @@ en: building: # building=* label: Building + building/levels/underground: + # 'building:levels:underground=*' + label: Underground Levels + # building/levels/underground field placeholder + placeholder: '2, 4, 6...' building/levels_building: # 'building:levels=*' label: Building Levels diff --git a/data/presets/fields.json b/data/presets/fields.json index e09739782a..9cfbceb358 100644 --- a/data/presets/fields.json +++ b/data/presets/fields.json @@ -49,6 +49,7 @@ "building_area": {"key": "building", "type": "combo", "default": "yes", "geometry": "area", "label": "Building"}, "building": {"key": "building", "type": "combo", "label": "Building"}, "building/levels_building": {"key": "building:levels", "type": "number", "minValue": 0, "label": "Building Levels", "placeholder": "2, 4, 6...", "prerequisiteTag": {"key": "building", "valueNot": "no"}}, + "building/levels/underground": {"key": "building:levels:underground", "type": "number", "minValue": 0, "label": "Underground Levels", "placeholder": "2, 4, 6..."}, "building/material": {"key": "building:material", "type": "combo", "label": "Material"}, "bunker_type": {"key": "bunker_type", "type": "combo", "label": "Type"}, "cables": {"key": "cables", "type": "number", "minValue": 1, "label": "Cables", "placeholder": "1, 2, 3..."}, diff --git a/data/presets/fields/building/levels/underground.json b/data/presets/fields/building/levels/underground.json new file mode 100644 index 0000000000..42673fe4d2 --- /dev/null +++ b/data/presets/fields/building/levels/underground.json @@ -0,0 +1,7 @@ +{ + "key": "building:levels:underground", + "type": "number", + "minValue": 0, + "label": "Underground Levels", + "placeholder": "2, 4, 6..." +} diff --git a/data/presets/presets.json b/data/presets/presets.json index d2f93027d9..18bc3bbfd1 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -298,7 +298,7 @@ "bridge/support": {"icon": "fas-archway", "fields": ["bridge/support"], "moreFields": ["material", "seamark/type"], "geometry": ["point", "vertex", "area"], "tags": {"bridge:support": "*"}, "name": "Bridge Support"}, "bridge/support/pier": {"icon": "fas-archway", "fields": ["bridge/support"], "moreFields": ["material", "seamark/type"], "geometry": ["point", "vertex", "area"], "tags": {"bridge:support": "pier"}, "name": "Bridge Pier"}, "building_part": {"icon": "maki-building", "fields": ["levels", "height", "building/material", "roof/colour"], "moreFields": ["layer"], "geometry": ["area"], "tags": {"building:part": "*"}, "matchScore": 0.5, "terms": ["roof", "simple 3D buildings"], "name": "Building Part"}, - "building": {"icon": "maki-home", "fields": ["name", "building", "levels", "height", "address"], "moreFields": ["architect", "building/material", "layer", "operator", "roof/colour", "smoking", "wheelchair"], "geometry": ["area"], "tags": {"building": "*"}, "matchScore": 0.6, "terms": [], "name": "Building"}, + "building": {"icon": "maki-home", "fields": ["name", "building", "levels", "height", "address"], "moreFields": ["architect", "building/levels/underground", "building/material", "layer", "operator", "roof/colour", "smoking", "wheelchair"], "geometry": ["area"], "tags": {"building": "*"}, "matchScore": 0.6, "terms": [], "name": "Building"}, "building/bunker": {"geometry": ["area"], "tags": {"building": "bunker"}, "matchScore": 0.5, "name": "Bunker", "searchable": false}, "building/entrance": {"icon": "maki-entrance-alt1", "fields": [], "moreFields": [], "geometry": ["vertex"], "tags": {"building": "entrance"}, "name": "Entrance/Exit", "searchable": false}, "building/train_station": {"icon": "maki-building", "geometry": ["point", "vertex", "area"], "tags": {"building": "train_station"}, "matchScore": 0.5, "name": "Train Station Building", "searchable": false}, diff --git a/data/presets/presets/building.json b/data/presets/presets/building.json index b70b732981..3566947ef1 100644 --- a/data/presets/presets/building.json +++ b/data/presets/presets/building.json @@ -9,6 +9,7 @@ ], "moreFields": [ "architect", + "building/levels/underground", "building/material", "layer", "operator", diff --git a/data/taginfo.json b/data/taginfo.json index a00320ae6c..540b541558 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -1260,6 +1260,7 @@ {"key": "brewery", "description": "🄵 Draft Beers"}, {"key": "bridge", "description": "🄵 Type, 🄵 Structure"}, {"key": "building:levels", "description": "🄵 Building Levels, 🄵 Levels"}, + {"key": "building:levels:underground", "description": "🄵 Underground Levels"}, {"key": "building:material", "description": "🄵 Material"}, {"key": "bunker_type", "description": "🄵 Type"}, {"key": "cables", "description": "🄵 Cables"}, diff --git a/dist/locales/en.json b/dist/locales/en.json index d048b5d712..de112f5e33 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -2669,6 +2669,10 @@ "label": "Building Levels", "placeholder": "2, 4, 6..." }, + "building/levels/underground": { + "label": "Underground Levels", + "placeholder": "2, 4, 6..." + }, "building/material": { "label": "Material" }, From 5984f6b118c341c1c930cb61151b9912fe1e3980 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 9 Jul 2019 09:58:39 -0400 Subject: [PATCH 151/774] Don't flag google books as an incompatible data source (close #6556) --- modules/validations/incompatible_source.js | 62 +++++++++++++--------- 1 file changed, 37 insertions(+), 25 deletions(-) diff --git a/modules/validations/incompatible_source.js b/modules/validations/incompatible_source.js index dd277e6b7e..2ef790be69 100644 --- a/modules/validations/incompatible_source.js +++ b/modules/validations/incompatible_source.js @@ -5,36 +5,48 @@ import { validationIssue, validationIssueFix } from '../core/validation'; export function validationIncompatibleSource() { var type = 'incompatible_source'; - var invalidSources = [{id:'google', regex:'google'}]; + var invalidSources = [ + { + id:'google', regex:'google', exceptRegex: 'books.google|Google Books' + } + ]; var validation = function checkIncompatibleSource(entity) { + + var entitySources = entity.tags && entity.tags.source && entity.tags.source.split(';'); + + if (!entitySources) return []; + var issues = []; - if (entity.tags && entity.tags.source) { - invalidSources.forEach(function(invalidSource) { - var pattern = new RegExp(invalidSource.regex, 'i'); - - if (entity.tags.source.match(pattern)) { - issues.push(new validationIssue({ - type: type, - severity: 'warning', - message: function(context) { - var entity = context.hasEntity(this.entityIds[0]); - return entity ? t('issues.incompatible_source.' + invalidSource.id + '.feature.message', { - feature: utilDisplayLabel(entity, context) - }) : ''; - }, - reference: getReference(invalidSource.id), - entityIds: [entity.id], - fixes: [ - new validationIssueFix({ - title: t('issues.fix.remove_proprietary_data.title') - }) - ] - })); - } + invalidSources.forEach(function(invalidSource) { + + var hasInvalidSource = entitySources.some(function(source) { + if (!source.match(new RegExp(invalidSource.regex, 'i'))) return false; + if (invalidSource.exceptRegex && source.match(new RegExp(invalidSource.exceptRegex, 'i'))) return false; + return true; }); - } + + if (!hasInvalidSource) return; + + issues.push(new validationIssue({ + type: type, + severity: 'warning', + message: function(context) { + var entity = context.hasEntity(this.entityIds[0]); + return entity ? t('issues.incompatible_source.' + invalidSource.id + '.feature.message', { + feature: utilDisplayLabel(entity, context) + }) : ''; + }, + reference: getReference(invalidSource.id), + entityIds: [entity.id], + fixes: [ + new validationIssueFix({ + title: t('issues.fix.remove_proprietary_data.title') + }) + ] + })); + }); return issues; From e20731a3b84e42d0923cd6640db3715614167e11 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 9 Jul 2019 12:29:59 -0400 Subject: [PATCH 152/774] Deprecate tower:type=power in favor or power=tower Increase match score of power=tower Add terms to power=line preset --- data/deprecated.json | 4 ++++ data/presets.yaml | 1 + data/presets/presets.json | 4 ++-- data/presets/presets/power/line.json | 5 +++++ data/presets/presets/power/tower.json | 1 + data/taginfo.json | 1 + dist/locales/en.json | 2 +- 7 files changed, 15 insertions(+), 3 deletions(-) diff --git a/data/deprecated.json b/data/deprecated.json index 67f71a4f30..6e6a5bdef8 100644 --- a/data/deprecated.json +++ b/data/deprecated.json @@ -857,6 +857,10 @@ "old": {"tourism": "bed_and_breakfast"}, "replace": {"tourism": "guest_house", "guest_house": "bed_and_breakfast"} }, + { + "old": {"tower:type": "power"}, + "replace": {"power": "tower"} + }, { "old": {"type": "broad_leaved"}, "replace": {"leaf_type": "broadleaved"} diff --git a/data/presets.yaml b/data/presets.yaml index fb5d67aa04..10bddc44bd 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -6293,6 +6293,7 @@ en: power/line: # power=line name: Power Line + # 'terms: electric power transmission line,high voltage line,high tension line' terms: '' power/minor_line: # power=minor_line diff --git a/data/presets/presets.json b/data/presets/presets.json index 18bc3bbfd1..7d7badd576 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -879,13 +879,13 @@ "power/generator/source/hydro": {"icon": "temaki-power", "fields": ["operator", "generator/method", "generator/type", "generator/output/electricity", "ref"], "moreFields": ["height", "manufacturer"], "geometry": ["point", "vertex", "area"], "terms": ["dam", "generator", "francis turbine", "hydroelectricity", "kaplan turbine", "pelton turbine"], "tags": {"power": "generator", "generator:source": "hydro"}, "addTags": {"power": "generator", "generator:source": "hydro", "generator:output:electricity": "yes"}, "reference": {"key": "generator:source", "value": "hydro"}, "name": "Water Turbine"}, "power/generator/source/nuclear": {"icon": "temaki-radiation", "fields": ["operator", "generator/source", "generator/method", "generator/type", "generator/output/electricity", "ref"], "moreFields": ["manufacturer"], "geometry": ["point", "vertex", "area"], "terms": ["fission", "generator", "nuclear", "nuke", "reactor"], "tags": {"power": "generator", "generator:source": "nuclear", "generator:method": "fission"}, "reference": {"key": "generator:source", "value": "nuclear"}, "name": "Nuclear Reactor"}, "power/generator/source/wind": {"icon": "temaki-wind_turbine", "fields": ["operator", "generator/type", "generator/output/electricity", "height", "ref"], "moreFields": ["manufacturer"], "geometry": ["point", "vertex", "area"], "terms": ["generator", "turbine", "windmill", "wind"], "tags": {"power": "generator", "generator:source": "wind", "generator:method": "wind_turbine"}, "reference": {"key": "generator:source", "value": "wind"}, "name": "Wind Turbine"}, - "power/line": {"icon": "iD-power-line", "fields": ["name", "operator", "voltage", "ref", "layer"], "geometry": ["line"], "tags": {"power": "line"}, "name": "Power Line"}, + "power/line": {"icon": "iD-power-line", "fields": ["name", "operator", "voltage", "ref", "layer"], "geometry": ["line"], "terms": ["electric power transmission line", "high voltage line", "high tension line"], "tags": {"power": "line"}, "name": "Power Line"}, "power/minor_line": {"icon": "iD-power-line", "fields": ["name", "operator", "voltage", "ref", "layer"], "geometry": ["line"], "tags": {"power": "minor_line"}, "name": "Minor Power Line"}, "power/plant": {"icon": "maki-industry", "fields": ["name", "operator", "address", "plant/output/electricity", "start_date"], "geometry": ["area"], "tags": {"power": "plant"}, "addTags": {"power": "plant", "landuse": "industrial"}, "terms": ["coal", "gas", "generat*", "hydro", "nuclear", "power", "station"], "name": "Power Station Grounds"}, "power/pole": {"fields": ["ref", "material", "operator", "manufacturer"], "geometry": ["point", "vertex"], "tags": {"power": "pole"}, "name": "Power Pole"}, "power/substation": {"icon": "temaki-power", "fields": ["substation", "operator", "building", "ref"], "geometry": ["point", "area"], "tags": {"power": "substation"}, "name": "Substation"}, "power/switch": {"icon": "temaki-power", "fields": ["switch", "operator", "location", "cables", "voltage", "ref"], "geometry": ["point", "vertex"], "tags": {"power": "switch"}, "name": "Power Switch"}, - "power/tower": {"fields": ["design", "ref", "material", "operator", "manufacturer"], "geometry": ["point", "vertex"], "terms": ["power"], "tags": {"power": "tower"}, "name": "High-Voltage Tower"}, + "power/tower": {"fields": ["design", "ref", "material", "operator", "manufacturer"], "geometry": ["point", "vertex"], "terms": ["power"], "tags": {"power": "tower"}, "matchScore": 1.05, "name": "High-Voltage Tower"}, "power/transformer": {"icon": "temaki-power", "fields": ["ref", "operator", "transformer", "location", "rating", "devices", "phases"], "moreFields": ["frequency", "manufacturer", "voltage/primary", "voltage/secondary", "voltage/tertiary", "windings", "windings/configuration"], "geometry": ["point", "vertex", "area"], "tags": {"power": "transformer"}, "name": "Transformer"}, "public_transport/platform_point": {"icon": "maki-rail", "fields": ["name", "network", "operator", "departures_board", "shelter"], "moreFields": ["bench", "bin", "lit", "wheelchair"], "geometry": ["point"], "tags": {"public_transport": "platform"}, "terms": ["platform", "public transit", "public transportation", "transit", "transportation"], "name": "Transit Stop / Platform", "matchScore": 0.2}, "public_transport/platform": {"icon": "temaki-pedestrian", "fields": ["ref_platform", "network", "operator", "departures_board", "surface"], "moreFields": ["access", "covered", "indoor", "layer", "lit", "wheelchair"], "geometry": ["line", "area"], "tags": {"public_transport": "platform"}, "terms": ["platform", "public transit", "public transportation", "transit", "transportation"], "name": "Transit Platform", "matchScore": 0.2}, diff --git a/data/presets/presets/power/line.json b/data/presets/presets/power/line.json index bb86c46949..f3c3301a80 100644 --- a/data/presets/presets/power/line.json +++ b/data/presets/presets/power/line.json @@ -10,6 +10,11 @@ "geometry": [ "line" ], + "terms": [ + "electric power transmission line", + "high voltage line", + "high tension line" + ], "tags": { "power": "line" }, diff --git a/data/presets/presets/power/tower.json b/data/presets/presets/power/tower.json index cd74e6904f..f49b9a5dd4 100644 --- a/data/presets/presets/power/tower.json +++ b/data/presets/presets/power/tower.json @@ -16,5 +16,6 @@ "tags": { "power": "tower" }, + "matchScore": 1.05, "name": "High-Voltage Tower" } diff --git a/data/taginfo.json b/data/taginfo.json index 540b541558..15c8102990 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -1971,6 +1971,7 @@ {"key": "toilets:disposal", "value": "longdrop", "description": "🄳 ➜ toilets:disposal=pitlatrine"}, {"key": "toilets:disposal", "value": "pit_latrine", "description": "🄳 ➜ toilets:disposal=pitlatrine"}, {"key": "tourism", "value": "bed_and_breakfast", "description": "🄳 ➜ tourism=guest_house + guest_house=bed_and_breakfast"}, + {"key": "tower:type", "value": "power", "description": "🄳 ➜ power=tower"}, {"key": "type", "value": "broad_leaved", "description": "🄳 ➜ leaf_type=broadleaved"}, {"key": "type", "value": "conifer", "description": "🄳 ➜ leaf_type=needleleaved"}, {"key": "type", "value": "deciduous", "description": "🄳 ➜ leaf_cycle=deciduous"}, diff --git a/dist/locales/en.json b/dist/locales/en.json index de112f5e33..f281124dad 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -7874,7 +7874,7 @@ }, "power/line": { "name": "Power Line", - "terms": "" + "terms": "electric power transmission line,high voltage line,high tension line" }, "power/minor_line": { "name": "Minor Power Line", From dc7c3238fc8224ef0ad9ab98130b9b22e399960f Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 10 Jul 2019 12:06:33 -0400 Subject: [PATCH 153/774] Allow viewing and editing the tags/relations of selected features at any zoom level (close #5001) --- API.md | 4 +-- modules/behavior/hash.js | 4 ++- modules/core/context.js | 2 +- modules/modes/select.js | 12 ++++++++- modules/renderer/map.js | 51 +++++++++++++++++++++++++++-------- modules/svg/midpoints.js | 2 +- modules/svg/vertices.js | 17 +++++++++++- modules/ui/tools/undo_redo.js | 2 +- modules/util/util.js | 11 +++++++- 9 files changed, 85 insertions(+), 20 deletions(-) diff --git a/API.md b/API.md index 29868521f0..351370ac41 100644 --- a/API.md +++ b/API.md @@ -29,12 +29,12 @@ of iD (e.g. `http://preview.ideditor.com/release/`), the following parameters ar optional and will be added automatically. (Note that hashtag-like strings are automatically detected in the `comment`).
_Example:_ `hashtags=%23hotosm-task-592,%23MissingMaps` -* __`id`__ - The character 'n', 'w', or 'r', followed by the OSM ID of a node, way or relation, respectively. Selects the specified entity, and, unless a `map` parameter is also provided, centers the map on it.
+* __`id`__ - The character 'n', 'w', or 'r', followed by the OSM ID of a node, way or relation, respectively. Selects the specified entity and centers the map on it, ignoring the `map` paramter.
_Example:_ `id=n1207480649` * __`locale`__ - A code specifying the localization to use, affecting the language, layout, and keyboard shortcuts. The default locale is set by the browser.
_Example:_ `locale=en-US`, `locale=de`
_Available values:_ Any of the [supported locales](https://github.com/openstreetmap/iD/tree/master/dist/locales). -* __`map`__ - A slash-separated `zoom/latitude/longitude`.
+* __`map`__ - A slash-separated `zoom/latitude/longitude`. This will have no effect if `id` is specified.
_Example:_ `map=20.00/38.90085/-77.02271` * __`maprules`__ - A path to a [MapRules](https://github.com/radiant-maxar/maprules) service endpoint for enhanced tag validation.
_Example:_ `maprules=https://path/to/file.json` diff --git a/modules/behavior/hash.js b/modules/behavior/hash.js index 56667f8cdf..c30cfbf690 100644 --- a/modules/behavior/hash.js +++ b/modules/behavior/hash.js @@ -94,7 +94,9 @@ export function behaviorHash(context) { var q = utilStringQs(window.location.hash.substring(1)); if (q.id) { - context.zoomToEntity(q.id.split(',')[0], !q.map); + if (!context.history().hasRestorableChanges()) { + context.zoomToEntity(q.id.split(',')[0], true /* ignore `map` parameter */); + } } if (q.comment) { diff --git a/modules/core/context.js b/modules/core/context.js index 9b443723fe..3331eb67fc 100644 --- a/modules/core/context.js +++ b/modules/core/context.js @@ -282,7 +282,7 @@ export function coreContext() { context.activeID = function() { return mode && mode.activeID && mode.activeID(); }; - + /* Behaviors */ context.install = function(behavior) { diff --git a/modules/modes/select.js b/modules/modes/select.js index 603e903fe3..a7217d9309 100644 --- a/modules/modes/select.js +++ b/modules/modes/select.js @@ -271,7 +271,8 @@ export function modeSelect(context, selectedIDs) { context.map() .on('move.select', closeMenu) - .on('drawn.select', selectElements); + .on('drawn.select', selectElements) + .on('crossEditableZoom.select', selectElements); context.surface() .on('dblclick.select', dblclick); @@ -308,6 +309,8 @@ export function modeSelect(context, selectedIDs) { function dblclick() { + if (!context.map().withinEditableZoom()) return; + var target = d3_select(d3_event.target); var datum = target.datum(); @@ -357,6 +360,13 @@ export function modeSelect(context, selectedIDs) { .classed('related', true); } + // Don't highlight selected features past the editable zoom + if (!context.map().withinEditableZoom()) { + surface.selectAll('.selected').classed('selected', false); + surface.selectAll('.selected-member').classed('selected-member', false); + return; + } + var selection = context.surface() .selectAll(utilEntityOrDeepMemberSelector(selectedIDs, context.graph())); diff --git a/modules/renderer/map.js b/modules/renderer/map.js index 51c4e841cd..5f06a30c71 100644 --- a/modules/renderer/map.js +++ b/modules/renderer/map.js @@ -11,11 +11,11 @@ import { geoExtent, geoRawMercator, geoScaleToZoom, geoZoomToScale } from '../ge import { modeBrowse } from '../modes/browse'; import { svgAreas, svgLabels, svgLayers, svgLines, svgMidpoints, svgPoints, svgVertices } from '../svg'; import { uiFlash } from '../ui/flash'; -import { utilFastMouse, utilFunctor, utilRebind, utilSetTransform } from '../util'; +import { utilFastMouse, utilFunctor, utilSetTransform, utilEntityAndDeepMemberIDs } from '../util/util'; import { utilBindOnce } from '../util/bind_once'; import { utilDetect } from '../util/detect'; import { utilGetDimensions } from '../util/dimensions'; - +import { utilRebind } from '../util/rebind'; // constants var TILESIZE = 256; @@ -28,7 +28,7 @@ function clamp(num, min, max) { export function rendererMap(context) { - var dispatch = d3_dispatch('move', 'drawn'); + var dispatch = d3_dispatch('move', 'drawn', 'crossEditableZoom'); var projection = context.projection; var curtainProjection = context.curtainProjection; var drawLayers = svgLayers(projection, context); @@ -54,6 +54,7 @@ export function rendererMap(context) { var _minzoom = 0; var _getMouseCoords; var _mouseEvent; + var _lastWithinEditableZoom; var zoom = d3_zoom() .scaleExtent([kMin, kMax]) @@ -180,7 +181,7 @@ export function rendererMap(context) { }); context.on('enter.map', function() { - if (map.editableDataEnabled() && !_isTransformed) { + if (map.editableDataEnabled(true /* skip zoom check */) && !_isTransformed) { // redraw immediately any objects affected by a change in selectedIDs. var graph = context.graph(); var selectedAndParents = {}; @@ -266,7 +267,16 @@ export function rendererMap(context) { var set; var filter; - if (difference) { + if (map.isInWideSelection()) { + data = []; + utilEntityAndDeepMemberIDs(mode.selectedIDs(), context.graph()).forEach(function(id) { + var entity = context.hasEntity(id); + if (entity) data.push(entity); + }); + fullRedraw = true; + filter = utilFunctor(true); + + } else if (difference) { var complete = difference.complete(map.extent()); data = Object.values(complete).filter(Boolean); set = new Set(data.map(function(entity) { return entity.id; })); @@ -485,6 +495,15 @@ export function rendererMap(context) { } + var withinEditableZoom = map.withinEditableZoom(); + if (_lastWithinEditableZoom !== withinEditableZoom) { + if (_lastWithinEditableZoom !== undefined) { + // notify that the map zoomed in or out over the editable zoom threshold + dispatch.call('crossEditableZoom', this, map); + } + _lastWithinEditableZoom = withinEditableZoom; + } + if (geoScaleToZoom(k, TILESIZE) < _minzoom) { surface.interrupt(); uiFlash().text(t('cannot_zoom'))(); @@ -571,7 +590,7 @@ export function rendererMap(context) { } // OSM - if (map.editableDataEnabled()) { + if (map.editableDataEnabled() || map.isInWideSelection()) { context.loadTiles(projection); drawEditable(difference, extent); } else { @@ -792,7 +811,7 @@ export function rendererMap(context) { var extent = entity.extent(context.graph()); if (!isFinite(extent.area())) return map; - var z2 = clamp(map.trimmedExtentZoom(extent), context.minEditableZoom(), 20); + var z2 = clamp(map.trimmedExtentZoom(extent), 0, 20); return map.centerZoom(extent.center(), z2); }; @@ -829,7 +848,7 @@ export function rendererMap(context) { var extent = entity.extent(context.graph()); if (!isFinite(extent.area())) return map; - var z2 = clamp(map.trimmedExtentZoom(extent), context.minEditableZoom(), 20); + var z2 = clamp(map.trimmedExtentZoom(extent), 0, 20); return map.centerZoomEase(extent.center(), z2, duration); }; @@ -905,13 +924,23 @@ export function rendererMap(context) { }; - map.editableDataEnabled = function() { + map.withinEditableZoom = function() { + return map.zoom() >= context.minEditableZoom(); + }; + + + map.isInWideSelection = function() { + return !map.withinEditableZoom() && context.mode().id === 'select'; + }; + + + map.editableDataEnabled = function(skipZoomCheck) { if (context.history().hasRestorableChanges()) return false; var layer = context.layers().layer('osm'); if (!layer || !layer.enabled()) return false; - return map.zoom() >= context.minEditableZoom(); + return skipZoomCheck || map.withinEditableZoom(); }; @@ -919,7 +948,7 @@ export function rendererMap(context) { var layer = context.layers().layer('notes'); if (!layer || !layer.enabled()) return false; - return map.zoom() >= context.minEditableZoom(); + return map.withinEditableZoom(); }; diff --git a/modules/svg/midpoints.js b/modules/svg/midpoints.js index 278203883e..891542609d 100644 --- a/modules/svg/midpoints.js +++ b/modules/svg/midpoints.js @@ -48,7 +48,7 @@ export function svgMidpoints(projection, context) { var touchLayer = selection.selectAll('.layer-touch.points'); var mode = context.mode(); - if (mode && mode.id !== 'select') { + if ((mode && mode.id !== 'select') || !context.map().withinEditableZoom()) { drawLayer.selectAll('.midpoint').remove(); touchLayer.selectAll('.midpoint.target').remove(); return; diff --git a/modules/svg/vertices.js b/modules/svg/vertices.js index 1c48a64aee..a79e4ef54f 100644 --- a/modules/svg/vertices.js +++ b/modules/svg/vertices.js @@ -399,7 +399,22 @@ export function svgVertices(projection, context) { var zoom = geoScaleToZoom(projection.scale()); _prevSelected = _currSelected || {}; - _currSelected = getSiblingAndChildVertices(context.selectedIDs(), graph, wireframe, zoom); + if (context.map().isInWideSelection()) { + _currSelected = {}; + context.selectedIDs().forEach(function(id) { + var entity = graph.hasEntity(id); + if (!entity) return; + + if (entity.type === 'node') { + if (renderAsVertex(entity, graph, wireframe, zoom)) { + _currSelected[entity.id] = entity; + } + } + }); + + } else { + _currSelected = getSiblingAndChildVertices(context.selectedIDs(), graph, wireframe, zoom); + } // note that drawVertices will add `_currSelected` automatically if needed.. var filter = function(d) { return d.id in _prevSelected; }; diff --git a/modules/ui/tools/undo_redo.js b/modules/ui/tools/undo_redo.js index b776f77591..faea9e63b6 100644 --- a/modules/ui/tools/undo_redo.js +++ b/modules/ui/tools/undo_redo.js @@ -33,7 +33,7 @@ export function uiToolUndoRedo(context) { function editable() { - return context.editable(); + return context.mode().id !== 'save' && context.map().editableDataEnabled(true /* ignore min zoom */); } var tooltipBehavior = tooltip() diff --git a/modules/util/util.js b/modules/util/util.js index d821a40398..3c31ad3c18 100644 --- a/modules/util/util.js +++ b/modules/util/util.js @@ -72,9 +72,17 @@ export function utilEntityOrMemberSelector(ids, graph) { // - entityIDs passed in // - deep descendant entityIDs for any of those entities that are relations export function utilEntityOrDeepMemberSelector(ids, graph) { + return utilEntitySelector(utilEntityAndDeepMemberIDs(ids, graph)); +} + + +// returns an selector to select entity ids for: +// - entityIDs passed in +// - deep descendant entityIDs for any of those entities that are relations +export function utilEntityAndDeepMemberIDs(ids, graph) { var seen = new Set(); ids.forEach(collectDeepDescendants); - return utilEntitySelector(Array.from(seen)); + return Array.from(seen); function collectDeepDescendants(id) { if (seen.has(id)) return; @@ -89,6 +97,7 @@ export function utilEntityOrDeepMemberSelector(ids, graph) { } } + // returns an selector to select entity ids for: // - deep descendant entityIDs for any of those entities that are relations export function utilDeepMemberSelector(ids, graph, skipMultipolgonMembers) { From 8f90f2f6eba071b89fc6cb3662bd403203bce2c6 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 10 Jul 2019 14:09:24 -0400 Subject: [PATCH 154/774] Add folder frame around preset category icons (close #6085) --- css/80_app.css | 1 + modules/ui/preset_icon.js | 31 +++++++++++++++++++++++++++++-- 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/css/80_app.css b/css/80_app.css index 6a5e5bceb6..7bac232708 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -1515,6 +1515,7 @@ a.hide-toggle { } .preset-icon-point-border path, +.preset-icon-category-border path, .preset-icon-fill-vertex circle { stroke-width: 1.3px; stroke: currentColor; diff --git a/modules/ui/preset_icon.js b/modules/ui/preset_icon.js index 68383afdfc..cabcbf82c7 100644 --- a/modules/ui/preset_icon.js +++ b/modules/ui/preset_icon.js @@ -31,6 +31,22 @@ export function uiPresetIcon(context) { return 'maki-marker-stroked'; } + function renderCategoryBorder(enter) { + + var w = 40, h = 40; + + enter = enter + .append('svg') + .attr('class', 'preset-icon-fill preset-icon-category-border') + .attr('width', w) + .attr('height', h) + .attr('viewBox', '0 0 ' + w + ' ' + h); + + enter.append('path') + .attr('transform', 'translate(4.5, 5)') + .attr('d', 'M2.40138782,0.75 L0.75,3.22708173 L0.75,24 C0.75,25.7949254 2.20507456,27.25 4,27.25 L27,27.25 C28.7949254,27.25 30.25,25.7949254 30.25,24 L30.25,7 C30.25,5.20507456 28.7949254,3.75 27,3.75 L13.5986122,3.75 L11.5986122,0.75 L2.40138782,0.75 Z'); + } + function renderPointBorder(enter) { var w = 40, h = 40; enter = enter @@ -210,12 +226,13 @@ export function uiPresetIcon(context) { var isTnp = picon && /^tnp-/.test(picon); var isiDIcon = picon && !(isMaki || isTemaki || isFa || isTnp); var isCategory = !p.setTags; + var drawCategoryBorder = isCategory; var drawPoint = geom === 'point' && !imageURL && (pointMarker || !picon) && !isFallback; var drawVertex = picon !== null && geom === 'vertex' && (!isSmall() || !isFallback); var drawLine = picon && geom === 'line' && !isFallback && !isCategory; var drawArea = picon && geom === 'area' && !isFallback; var drawRoute = picon && geom === 'route'; - var isFramed = (drawPoint || drawVertex || drawArea || drawLine || drawRoute); + var isFramed = (drawCategoryBorder || drawPoint || drawVertex || drawArea || drawLine || drawRoute); var tags = !isCategory ? p.setTags({}, geom) : {}; for (var k in tags) { @@ -251,6 +268,16 @@ export function uiPresetIcon(context) { imageIcon .attr('src', imageURL); + var categoryBorder = container.selectAll('.preset-icon-category-border') + .data(drawCategoryBorder ? [0] : []); + + categoryBorder.exit() + .remove(); + + var categoryBorderEnter = categoryBorder.enter(); + renderCategoryBorder(categoryBorderEnter); + categoryBorder = categoryBorderEnter.merge(categoryBorder); + var pointBorder = container.selectAll('.preset-icon-point-border') .data(drawPoint ? [0] : []); @@ -344,7 +371,7 @@ export function uiPresetIcon(context) { .merge(icon); icon - .attr('class', 'preset-icon ' + (geom ? geom + '-geom' : '')) + .attr('class', 'preset-icon ' + (geom ? geom + '-geom ' : '') + (isCategory ? 'category' : '')) .classed('framed', isFramed) .classed('preset-icon-iD', isiDIcon); From 52e4d223f68cec9ee7e62b4b207bed8797146646 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 10 Jul 2019 14:57:51 -0400 Subject: [PATCH 155/774] Update preset browser to respect preset `visible` property (close #6637) --- modules/ui/preset_browser.js | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/modules/ui/preset_browser.js b/modules/ui/preset_browser.js index 0def9e14a8..40aa3052f7 100644 --- a/modules/ui/preset_browser.js +++ b/modules/ui/preset_browser.js @@ -267,16 +267,24 @@ export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { var value = search.property('value'); var results; if (value.length) { - results = presets.search(value, shownGeometry).collection; + results = presets.search(value, shownGeometry).collection + .filter(function(d) { + if (d.members) { + return d.members.collection.some(function(preset) { + return preset.visible(); + }); + } + return d.visible(); + }); } else { var recents = context.presets().getRecents(); recents = recents.filter(function(d) { - return shownGeometry.indexOf(d.geometry) !== -1; + return d.preset.visible() && shownGeometry.indexOf(d.geometry) !== -1; }); results = recents.slice(0, 35); } - var list = popoverContent.selectAll('.list').call(drawList, results); + popoverContent.selectAll('.list').call(drawList, results); popover.selectAll('.list .list-item.focused') .classed('focused', false); @@ -529,9 +537,13 @@ export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { chooseExpandable(item, d3_select(selection.node().closest('.list-item'))); }; item.subitems = function() { - return preset.members.matchAnyGeometry(shownGeometry).collection.map(function(preset) { - return itemForPreset(preset); - }); + return preset.members.matchAnyGeometry(shownGeometry).collection + .filter(function(preset) { + return preset.visible(); + }) + .map(function(preset) { + return itemForPreset(preset); + }); }; return item; } From 4f7bb7942a4c903a2496e6fee5e2234197af5132 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 10 Jul 2019 15:39:11 -0400 Subject: [PATCH 156/774] Make the v3 preset browser respect preset `countryCodes` (re: #6124) --- modules/ui/preset_browser.js | 37 ++++++++++++++++++++++++++++++++---- 1 file changed, 33 insertions(+), 4 deletions(-) diff --git a/modules/ui/preset_browser.js b/modules/ui/preset_browser.js index 40aa3052f7..81262a35f0 100644 --- a/modules/ui/preset_browser.js +++ b/modules/ui/preset_browser.js @@ -5,6 +5,7 @@ import { } from 'd3-selection'; import { t, textDirection } from '../util/locale'; +import { services } from '../services'; import { svgIcon } from '../svg/index'; import { tooltip } from '../util/tooltip'; import { uiTagReference } from './tag_reference'; @@ -26,6 +27,10 @@ export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { search = d3_select(null), popoverContent = d3_select(null); + var _countryCode; + // load the initial country code + reloadCountryCode(); + var browser = {}; browser.render = function(selection) { @@ -109,6 +114,9 @@ export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { context.features() .on('change.preset-browser.' + uid , updateForFeatureHiddenState); + + // reload in case the user moved countries + reloadCountryCode(); }; browser.hide = function() { @@ -260,14 +268,25 @@ export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { } } - function updateResultsList() { + function reloadCountryCode() { + if (!services.geocoder) return; - if (search.empty()) return; + var center = context.map().center(); + services.geocoder.countryCode(center, function countryCallback(err, countryCode) { + if (_countryCode !== countryCode) { + _countryCode = countryCode; + updateResultsList(); + } + }); + } + + function getRawResults() { + if (search.empty()) return []; var value = search.property('value'); var results; if (value.length) { - results = presets.search(value, shownGeometry).collection + results = presets.search(value, shownGeometry, _countryCode).collection .filter(function(d) { if (d.members) { return d.members.collection.some(function(preset) { @@ -279,10 +298,19 @@ export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { } else { var recents = context.presets().getRecents(); recents = recents.filter(function(d) { + if (_countryCode && d.preset.countryCodes && d.preset.countryCodes.indexOf(_countryCode) === -1) return false; return d.preset.visible() && shownGeometry.indexOf(d.geometry) !== -1; }); results = recents.slice(0, 35); } + return results; + } + + function updateResultsList() { + + if (search.empty()) return; + + var results = getRawResults(); popoverContent.selectAll('.list').call(drawList, results); @@ -293,7 +321,8 @@ export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { popoverContent.node().scrollTop = 0; var resultCount = results.length; - popover.selectAll('.popover-footer .message').text(t('modes.add_feature.' + (resultCount === 1 ? 'result' : 'results'), { count: resultCount })); + popover.selectAll('.popover-footer .message') + .text(t('modes.add_feature.' + (resultCount === 1 ? 'result' : 'results'), { count: resultCount })); } function focusListItem(selection, scrollingToShow) { From 4bb21191ab9c046cf2f14597d031d8394379132b Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 10 Jul 2019 15:54:38 -0400 Subject: [PATCH 157/774] Check for mode to appease tests --- modules/renderer/map.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/renderer/map.js b/modules/renderer/map.js index 5f06a30c71..a322cdbcee 100644 --- a/modules/renderer/map.js +++ b/modules/renderer/map.js @@ -930,7 +930,7 @@ export function rendererMap(context) { map.isInWideSelection = function() { - return !map.withinEditableZoom() && context.mode().id === 'select'; + return !map.withinEditableZoom() && context.mode() && context.mode().id === 'select'; }; From b6f306353144b2beaefbba100d6f0dbe0cf386d1 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 10 Jul 2019 15:56:18 -0400 Subject: [PATCH 158/774] Remove old uiPresetList --- modules/ui/index.js | 1 - modules/ui/preset_list.js | 489 -------------------------------------- 2 files changed, 490 deletions(-) delete mode 100644 modules/ui/preset_list.js diff --git a/modules/ui/index.js b/modules/ui/index.js index 624182f3a0..98e15705e3 100644 --- a/modules/ui/index.js +++ b/modules/ui/index.js @@ -44,7 +44,6 @@ export { uiNoteEditor } from './note_editor'; export { uiNoteReport } from './note_report'; export { uiPresetEditor } from './preset_editor'; export { uiPresetIcon } from './preset_icon'; -export { uiPresetList } from './preset_list'; export { uiRawMemberEditor } from './raw_member_editor'; export { uiRawMembershipEditor } from './raw_membership_editor'; export { uiRawTagEditor } from './raw_tag_editor'; diff --git a/modules/ui/preset_list.js b/modules/ui/preset_list.js deleted file mode 100644 index c35f5cfed7..0000000000 --- a/modules/ui/preset_list.js +++ /dev/null @@ -1,489 +0,0 @@ -import { dispatch as d3_dispatch } from 'd3-dispatch'; - -import { - event as d3_event, - select as d3_select, - selectAll as d3_selectAll -} from 'd3-selection'; - -import { t, textDirection } from '../util/locale'; -import { actionChangePreset } from '../actions/change_preset'; -import { operationDelete } from '../operations/delete'; -import { services } from '../services'; -import { svgIcon } from '../svg/index'; -import { tooltip } from '../util/tooltip'; -import { uiPresetIcon } from './preset_icon'; -import { uiTagReference } from './tag_reference'; -import { utilKeybinding, utilNoAuto, utilRebind } from '../util'; - - -export function uiPresetList(context) { - var dispatch = d3_dispatch('choose'); - var _entityID; - var _currentPreset; - var _autofocus = false; - var geocoder = services.geocoder; - - - function presetList(selection) { - var entity = context.entity(_entityID); - var geometry = context.geometry(_entityID); - - // Treat entities on addr:interpolation lines as points, not vertices (#3241) - if (geometry === 'vertex' && entity.isOnAddressLine(context.graph())) { - geometry = 'point'; - } - - var presets = context.presets().matchGeometry(geometry); - - selection.html(''); - - var messagewrap = selection - .append('div') - .attr('class', 'header fillL'); - - var message = messagewrap - .append('h3') - .text(t('inspector.choose')); - - messagewrap - .append('button') - .attr('class', 'preset-choose') - .on('click', function() { dispatch.call('choose', this, _currentPreset); }) - .call(svgIcon((textDirection === 'rtl') ? '#iD-icon-backward' : '#iD-icon-forward')); - - function initialKeydown() { - // hack to let delete shortcut work when search is autofocused - if (search.property('value').length === 0 && - (d3_event.keyCode === utilKeybinding.keyCodes['⌫'] || - d3_event.keyCode === utilKeybinding.keyCodes['⌦'])) { - d3_event.preventDefault(); - d3_event.stopPropagation(); - operationDelete([_entityID], context)(); - - // hack to let undo work when search is autofocused - } else if (search.property('value').length === 0 && - (d3_event.ctrlKey || d3_event.metaKey) && - d3_event.keyCode === utilKeybinding.keyCodes.z) { - d3_event.preventDefault(); - d3_event.stopPropagation(); - context.undo(); - } else if (!d3_event.ctrlKey && !d3_event.metaKey) { - // don't check for delete/undo hack on future keydown events - d3_select(this).on('keydown', keydown); - keydown.call(this); - } - } - - function keydown() { - // down arrow - if (d3_event.keyCode === utilKeybinding.keyCodes['↓'] && - // if insertion point is at the end of the string - search.node().selectionStart === search.property('value').length) { - d3_event.preventDefault(); - d3_event.stopPropagation(); - // move focus to the first item in the preset list - var buttons = list.selectAll('.preset-list-button'); - if (!buttons.empty()) buttons.nodes()[0].focus(); - } - } - - function keypress() { - // enter - var value = search.property('value'); - if (d3_event.keyCode === 13 && value.length) { - list.selectAll('.preset-list-item:first-child') - .each(function(d) { d.choose.call(this); }); - } - } - - function inputevent() { - var value = search.property('value'); - list.classed('filtered', value.length); - if (value.length) { - var entity = context.entity(_entityID); - if (geocoder && entity) { - var center = entity.extent(context.graph()).center(); - geocoder.countryCode(center, function countryCallback(err, countryCode) { - // get the input value again because it may have changed - var currentValue = search.property('value'); - - if (!currentValue.length) return; - - var results; - if (!err && countryCode) { - countryCode = countryCode.toLowerCase(); - results = presets.search(currentValue, geometry, countryCode); - } else { - results = presets.search(currentValue, geometry); - } - message.text(t('inspector.results', { - n: results.collection.length, - search: currentValue - })); - list.call(drawList, results); - }); - } - } else { - list.call(drawList, context.presets().defaults(geometry, 36)); - message.text(t('inspector.choose')); - } - } - - var searchWrap = selection - .append('div') - .attr('class', 'search-header'); - - var search = searchWrap - .append('input') - .attr('class', 'preset-search-input') - .attr('placeholder', t('inspector.search')) - .attr('type', 'search') - .call(utilNoAuto) - .on('keydown', initialKeydown) - .on('keypress', keypress) - .on('input', inputevent); - - searchWrap - .call(svgIcon('#iD-icon-search', 'pre-text')); - - if (_autofocus) { - search.node().focus(); - } - - var listWrap = selection - .append('div') - .attr('class', 'inspector-body'); - - var list = listWrap - .append('div') - .attr('class', 'preset-list fillL cf') - .call(drawList, context.presets().defaults(geometry, 36)); - - context.features().on('change.preset-list', updateForFeatureHiddenState); - } - - - function drawList(list, presets) { - var collection = presets.collection.reduce(function(collection, preset) { - if (preset.members) { - if (preset.members.collection.filter(function(preset) { - return preset.visible(); - }).length > 1) { - collection.push(CategoryItem(preset)); - } - } else if (preset.visible()) { - collection.push(PresetItem(preset)); - } - return collection; - }, []); - - var items = list.selectAll('.preset-list-item') - .data(collection, function(d) { return d.preset.id; }); - - items.order(); - - items.exit() - .remove(); - - items.enter() - .append('div') - .attr('class', function(item) { return 'preset-list-item preset-' + item.preset.id.replace('/', '-'); }) - .classed('current', function(item) { return item.preset === _currentPreset; }) - .each(function(item) { d3_select(this).call(item); }) - .style('opacity', 0) - .transition() - .style('opacity', 1); - - updateForFeatureHiddenState(); - } - - function itemKeydown(){ - // the actively focused item - var item = d3_select(this.closest('.preset-list-item')); - var parentItem = d3_select(item.node().parentNode.closest('.preset-list-item')); - - // arrow down, move focus to the next, lower item - if (d3_event.keyCode === utilKeybinding.keyCodes['↓']) { - d3_event.preventDefault(); - d3_event.stopPropagation(); - // the next item in the list at the same level - var nextItem = d3_select(item.node().nextElementSibling); - // if there is no next item in this list - if (nextItem.empty()) { - // if there is a parent item - if (!parentItem.empty()) { - // the item is the last item of a sublist, - // select the next item at the parent level - nextItem = d3_select(parentItem.node().nextElementSibling); - } - // if the focused item is expanded - } else if (d3_select(this).classed('expanded')) { - // select the first subitem instead - nextItem = item.select('.subgrid .preset-list-item:first-child'); - } - if (!nextItem.empty()) { - // focus on the next item - nextItem.select('.preset-list-button').node().focus(); - } - - // arrow up, move focus to the previous, higher item - } else if (d3_event.keyCode === utilKeybinding.keyCodes['↑']) { - d3_event.preventDefault(); - d3_event.stopPropagation(); - // the previous item in the list at the same level - var previousItem = d3_select(item.node().previousElementSibling); - - // if there is no previous item in this list - if (previousItem.empty()) { - // if there is a parent item - if (!parentItem.empty()) { - // the item is the first subitem of a sublist select the parent item - previousItem = parentItem; - } - // if the previous item is expanded - } else if (previousItem.select('.preset-list-button').classed('expanded')) { - // select the last subitem of the sublist of the previous item - previousItem = previousItem.select('.subgrid .preset-list-item:last-child'); - } - - if (!previousItem.empty()) { - // focus on the previous item - previousItem.select('.preset-list-button').node().focus(); - } else { - // the focus is at the top of the list, move focus back to the search field - var search = d3_select(this.closest('.preset-list-pane')).select('.preset-search-input'); - search.node().focus(); - } - - // arrow left, move focus to the parent item if there is one - } else if (d3_event.keyCode === utilKeybinding.keyCodes[(textDirection === 'rtl') ? '→' : '←']) { - d3_event.preventDefault(); - d3_event.stopPropagation(); - // if there is a parent item, focus on the parent item - if (!parentItem.empty()) { - parentItem.select('.preset-list-button').node().focus(); - } - - // arrow right, choose this item - } else if (d3_event.keyCode === utilKeybinding.keyCodes[(textDirection === 'rtl') ? '←' : '→']) { - d3_event.preventDefault(); - d3_event.stopPropagation(); - item.datum().choose.call(d3_select(this).node()); - } - } - - - function CategoryItem(preset) { - var box, sublist, shown = false; - - function item(selection) { - var wrap = selection.append('div') - .attr('class', 'preset-list-button-wrap category'); - - function click() { - var isExpanded = d3_select(this).classed('expanded'); - var iconName = isExpanded ? - (textDirection === 'rtl' ? '#iD-icon-backward' : '#iD-icon-forward') : '#iD-icon-down'; - d3_select(this) - .classed('expanded', !isExpanded); - d3_select(this).selectAll('div.label-inner svg.icon use') - .attr('href', iconName); - item.choose(); - } - - var button = wrap - .append('button') - .attr('class', 'preset-list-button') - .classed('expanded', false) - .call(uiPresetIcon(context) - .geometry(context.geometry(_entityID)) - .preset(preset) - .pointMarker(false)) - .on('click', click) - .on('keydown', function() { - // right arrow, expand the focused item - if (d3_event.keyCode === utilKeybinding.keyCodes[(textDirection === 'rtl') ? '←' : '→']) { - d3_event.preventDefault(); - d3_event.stopPropagation(); - // if the item isn't expanded - if (!d3_select(this).classed('expanded')) { - // toggle expansion (expand the item) - click.call(this); - } - // left arrow, collapse the focused item - } else if (d3_event.keyCode === utilKeybinding.keyCodes[(textDirection === 'rtl') ? '→' : '←']) { - d3_event.preventDefault(); - d3_event.stopPropagation(); - // if the item is expanded - if (d3_select(this).classed('expanded')) { - // toggle expansion (collapse the item) - click.call(this); - } - } else { - itemKeydown.call(this); - } - }); - - var label = button - .append('div') - .attr('class', 'label') - .append('div') - .attr('class', 'label-inner'); - - label - .append('div') - .attr('class', 'namepart') - .call(svgIcon((textDirection === 'rtl' ? '#iD-icon-backward' : '#iD-icon-forward'), 'inline')) - .append('span') - .html(function() { return preset.name() + '…'; }); - - box = selection.append('div') - .attr('class', 'subgrid') - .style('max-height', '0px') - .style('opacity', 0); - - box.append('div') - .attr('class', 'arrow'); - - sublist = box.append('div') - .attr('class', 'preset-list fillL3'); - } - - - item.choose = function() { - if (!box || !sublist) return; - - if (shown) { - shown = false; - box.transition() - .duration(200) - .style('opacity', '0') - .style('max-height', '0px') - .style('padding-bottom', '0px'); - } else { - shown = true; - var members = preset.members.matchGeometry(context.geometry(_entityID)); - sublist.call(drawList, members); - box.transition() - .duration(200) - .style('opacity', '1') - .style('max-height', 200 + members.collection.length * 190 + 'px') - .style('padding-bottom', '10px'); - } - }; - - item.preset = preset; - return item; - } - - - function PresetItem(preset) { - function item(selection) { - var wrap = selection.append('div') - .attr('class', 'preset-list-button-wrap'); - - var button = wrap.append('button') - .attr('class', 'preset-list-button') - .call(uiPresetIcon(context) - .geometry(context.geometry(_entityID)) - .preset(preset) - .pointMarker(false)) - .on('click', item.choose) - .on('keydown', itemKeydown); - - var label = button - .append('div') - .attr('class', 'label') - .append('div') - .attr('class', 'label-inner'); - - // NOTE: split/join on en-dash, not a hypen (to avoid conflict with fr - nl names in Brussels etc) - label.selectAll('.namepart') - .data(preset.name().split(' – ')) - .enter() - .append('div') - .attr('class', 'namepart') - .text(function(d) { return d; }); - - wrap.call(item.reference.button); - selection.call(item.reference.body); - } - - item.choose = function() { - if (d3_select(this).classed('disabled')) return; - - context.presets().setMostRecent(preset, context.geometry(_entityID)); - context.perform( - actionChangePreset(_entityID, _currentPreset, preset), - t('operations.change_tags.annotation') - ); - - context.validator().validate(); // rerun validation - dispatch.call('choose', this, preset); - }; - - item.help = function() { - d3_event.stopPropagation(); - item.reference.toggle(); - }; - - item.preset = preset; - item.reference = uiTagReference(preset.reference(context.geometry(_entityID)), context); - - return item; - } - - - function updateForFeatureHiddenState() { - if (!context.hasEntity(_entityID)) return; - - var geometry = context.geometry(_entityID); - var button = d3_selectAll('.preset-list .preset-list-button'); - - // remove existing tooltips - button.call(tooltip().destroyAny); - - button.each(function(item, index) { - var hiddenPresetFeatures = context.features().isHiddenPreset(item.preset, geometry); - var isHiddenPreset = !!hiddenPresetFeatures && item.preset !== _currentPreset; - - d3_select(this) - .classed('disabled', isHiddenPreset); - - if (isHiddenPreset) { - var isAutoHidden = context.features().autoHidden(hiddenPresetFeatures.key); - var tooltipIdSuffix = isAutoHidden ? 'zoom' : 'manual'; - var tooltipObj = { features: hiddenPresetFeatures.title }; - d3_select(this).call(tooltip() - .title(t('inspector.hidden_preset.' + tooltipIdSuffix, tooltipObj)) - .placement(index < 2 ? 'bottom' : 'top') - ); - } - }); - } - - presetList.autofocus = function(val) { - if (!arguments.length) return _autofocus; - _autofocus = val; - return presetList; - }; - - - presetList.entityID = function(val) { - if (!arguments.length) return _entityID; - _entityID = val; - presetList.preset(context.presets().match(context.entity(_entityID), context.graph())); - return presetList; - }; - - - presetList.preset = function(val) { - if (!arguments.length) return _currentPreset; - _currentPreset = val; - return presetList; - }; - - - return utilRebind(presetList, dispatch, 'on'); -} From 80e4b81a681c3c94cded025e948b5834d1e818dc Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 10 Jul 2019 16:00:10 -0400 Subject: [PATCH 159/774] Remove references to nonexistent test files --- test/index.html | 2 -- 1 file changed, 2 deletions(-) diff --git a/test/index.html b/test/index.html index 6587d173f3..344d128095 100644 --- a/test/index.html +++ b/test/index.html @@ -126,7 +126,6 @@ - @@ -159,7 +158,6 @@ - From ccec790e37d7105d617f55810bbbe27dfd427d69 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 10 Jul 2019 16:06:27 -0400 Subject: [PATCH 160/774] Update lodash to 4.17.14 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index b6a48e6d83..5677dfdce5 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,7 @@ "diacritics": "1.3.0", "fast-deep-equal": "~2.0.1", "fast-json-stable-stringify": "2.0.0", - "lodash-es": "4.17.11", + "lodash-es": "4.17.14", "marked": "0.6.3", "martinez-polygon-clipping": "0.5.0", "node-diff3": "1.0.0", From f45e88272c73a638d615f53a5c8d6de37bd891a5 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Thu, 11 Jul 2019 10:40:18 -0400 Subject: [PATCH 161/774] Check for unloaded popover if country code callback returns before preset browser is rendered --- modules/ui/preset_browser.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/modules/ui/preset_browser.js b/modules/ui/preset_browser.js index 4c5b39498f..2684629bad 100644 --- a/modules/ui/preset_browser.js +++ b/modules/ui/preset_browser.js @@ -29,8 +29,6 @@ export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { popoverContent = d3_select(null); var _countryCode; - // load the initial country code - reloadCountryCode(); var browser = {}; @@ -103,7 +101,7 @@ export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { }; browser.isShown = function() { - return !popover.classed('hide'); + return popover && !popover.empty() && !popover.classed('hide'); }; browser.show = function() { @@ -724,5 +722,8 @@ export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { return item; } + // load the initial country code + reloadCountryCode(); + return browser; } From 3e193393294b60fab8034a6cfc3b3e9a261abb5f Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Thu, 11 Jul 2019 15:22:04 -0400 Subject: [PATCH 162/774] Significantly improve relevancy of recommended presets based on nearby features by separating zone-defining and subfeature groups --- data/presets/groups.json | 46 ++++++++----- data/presets/groups/cluster/airport.json | 11 --- data/presets/groups/cluster/bank.json | 11 --- data/presets/groups/cluster/military.json | 24 ------- data/presets/groups/cluster/pipeline.json | 12 ---- .../groups/cluster/service_station.json | 30 --------- .../groups/cluster/suburban_residential.json | 30 --------- data/presets/groups/subfeatures/airport.json | 17 +++++ data/presets/groups/subfeatures/bank.json | 11 +++ data/presets/groups/subfeatures/bus_stop.json | 28 ++++++++ .../{cluster => subfeatures}/campground.json | 13 ++-- .../groups/subfeatures/gas_station.json | 38 +++++++++++ .../golf_course.json} | 4 +- .../{cluster => subfeatures}/marina.json | 12 ++-- .../groups/{cluster => subfeatures}/park.json | 20 ++++-- .../{cluster => subfeatures}/parking.json | 10 ++- .../groups/subfeatures/playground.json | 10 +++ .../{cluster => subfeatures}/post_office.json | 4 +- .../presets/groups/subfeatures/residence.json | 32 +++++++++ .../{cluster => subfeatures}/school.json | 15 +++-- .../{cluster => subfeatures}/subway.json | 8 ++- .../groups/subfeatures/theme_park.json | 33 +++++++++ data/presets/groups/zones/airport.json | 8 +++ data/presets/groups/zones/bank.json | 8 +++ data/presets/groups/zones/bus_stop.json | 13 ++++ data/presets/groups/zones/campground.json | 11 +++ data/presets/groups/zones/gas_station.json | 8 +++ data/presets/groups/zones/golf_course.json | 8 +++ data/presets/groups/zones/marina.json | 8 +++ data/presets/groups/zones/park.json | 8 +++ data/presets/groups/zones/parking.json | 8 +++ data/presets/groups/zones/playground.json | 8 +++ data/presets/groups/zones/post_office.json | 8 +++ data/presets/groups/zones/residence.json | 13 ++++ data/presets/groups/zones/school.json | 8 +++ data/presets/groups/zones/subway.json | 14 ++++ data/presets/groups/zones/theme_park.json | 8 +++ data/presets/schema/group.json | 18 ++++- modules/entities/group_manager.js | 67 ++++++++++++++++++- modules/presets/preset.js | 2 + modules/ui/preset_browser.js | 15 +++-- 41 files changed, 479 insertions(+), 181 deletions(-) delete mode 100644 data/presets/groups/cluster/airport.json delete mode 100644 data/presets/groups/cluster/bank.json delete mode 100644 data/presets/groups/cluster/military.json delete mode 100644 data/presets/groups/cluster/pipeline.json delete mode 100644 data/presets/groups/cluster/service_station.json delete mode 100644 data/presets/groups/cluster/suburban_residential.json create mode 100644 data/presets/groups/subfeatures/airport.json create mode 100644 data/presets/groups/subfeatures/bank.json create mode 100644 data/presets/groups/subfeatures/bus_stop.json rename data/presets/groups/{cluster => subfeatures}/campground.json (78%) create mode 100644 data/presets/groups/subfeatures/gas_station.json rename data/presets/groups/{cluster/power.json => subfeatures/golf_course.json} (51%) rename data/presets/groups/{cluster => subfeatures}/marina.json (74%) rename data/presets/groups/{cluster => subfeatures}/park.json (61%) rename data/presets/groups/{cluster => subfeatures}/parking.json (53%) create mode 100644 data/presets/groups/subfeatures/playground.json rename data/presets/groups/{cluster => subfeatures}/post_office.json (69%) create mode 100644 data/presets/groups/subfeatures/residence.json rename data/presets/groups/{cluster => subfeatures}/school.json (81%) rename data/presets/groups/{cluster => subfeatures}/subway.json (72%) create mode 100644 data/presets/groups/subfeatures/theme_park.json create mode 100644 data/presets/groups/zones/airport.json create mode 100644 data/presets/groups/zones/bank.json create mode 100644 data/presets/groups/zones/bus_stop.json create mode 100644 data/presets/groups/zones/campground.json create mode 100644 data/presets/groups/zones/gas_station.json create mode 100644 data/presets/groups/zones/golf_course.json create mode 100644 data/presets/groups/zones/marina.json create mode 100644 data/presets/groups/zones/park.json create mode 100644 data/presets/groups/zones/parking.json create mode 100644 data/presets/groups/zones/playground.json create mode 100644 data/presets/groups/zones/post_office.json create mode 100644 data/presets/groups/zones/residence.json create mode 100644 data/presets/groups/zones/school.json create mode 100644 data/presets/groups/zones/subway.json create mode 100644 data/presets/groups/zones/theme_park.json diff --git a/data/presets/groups.json b/data/presets/groups.json index dd6881252e..9c4559525e 100644 --- a/data/presets/groups.json +++ b/data/presets/groups.json @@ -1,19 +1,20 @@ { "groups": { - "cluster/airport": {"cluster": true, "matches": {"anyTags": {"aeroway": "*", "building": {"hangar": true}}}}, - "cluster/bank": {"cluster": true, "matches": {"anyTags": {"amenity": {"atm": true, "bank": true}}}}, - "cluster/campground": {"cluster": true, "matches": {"anyTags": {"amenity": {"bbq": true, "bench": true, "drinking_water": true, "grit_bin": true, "sanitary_dump_station": true, "shower": true, "toilets": true, "water_point": true, "waste_basket": true}, "camp_site": {"camp_pitch": true}, "leisure": {"playground": true, "firepit": true, "picnic_table": true}, "tourism": {"camp_site": true, "caravan_site": true}}}}, - "cluster/marina": {"cluster": true, "matches": {"anyTags": {"amenity": {"boat_rental": true}, "leisure": {"fishing": true, "marina": true, "slipway": true}, "man_made": {"breakwater": true, "pier": true}, "seamark:type": {"mooring": true}, "shop": {"fishing": true}, "waterway": {"boatyard": true, "dock": true, "fuel": true, "sanitary_dump_station": true, "water_point": true}}}}, - "cluster/military": {"cluster": true, "matches": {"anyTags": {"building": {"bunker": true}, "landuse": {"military": true}, "military": {"airfield": true, "barracks": true, "bunker": true, "checkpoint": true, "naval_base": true, "obstacle_course": true, "office": true, "range": true, "training_area": true}}}}, - "cluster/park": {"cluster": true, "matches": {"anyTags": {"amenity": {"bbq": true, "bench": true, "drinking_water": true, "fountain": true, "grit_bin": true, "toilets": true, "waste_basket": true}, "leisure": {"park": true, "pitch": true, "playground": true, "firepit": true, "dog_park": true, "picnic_table": true, "track": true}, "natural": {"tree": true}, "tourism": {"picnic_site": true}}}}, - "cluster/parking": {"cluster": true, "matches": {"anyTags": {"amenity": {"parking": true}, "service": {"parking_aisle": true}, "vending": {"parking_tickets": true}}}}, - "cluster/pipeline": {"cluster": true, "matches": {"anyTags": {"man_made": {"pipeline": true, "storage_tank": true}, "pipeline": "*"}}}, - "cluster/post_office": {"cluster": true, "matches": {"anyTags": {"amenity": {"post_box": true, "post_office": true}, "vending": {"stamps": true, "parcel_pickup": true}}}}, - "cluster/power": {"cluster": true, "matches": {"anyTags": {"power": "*"}}}, - "cluster/school": {"cluster": true, "matches": {"anyTags": {"amenity": {"bench": true, "bicycle_parking": true, "school": true, "waste_basket": true}, "building": {"school": true}, "leisure": {"picnic_table": true, "pitch": true, "playground": true, "track": true}, "man_made": {"flagpole": true}, "natural": {"tree": true}, "sport": {"american_football": true, "baseball": true, "basketball": true, "cricket": true, "field_hockey": true, "running": true, "soccer": true, "softball": true, "tennis": true}}}}, - "cluster/service_station": {"cluster": true, "matches": {"anyTags": {"amenity": {"car_wash": true, "compressed_air": true, "fuel": true, "vending_machine": true}, "building": {"roof": true}, "highway": {"services": true, "street_lamp": true}, "man_made": {"storage_tank": true}, "shop": {"convenience": true, "car_repair": true}, "vending": {"fuel": true}}}}, - "cluster/suburban_residential": {"cluster": true, "matches": {"anyTags": {"building": {"carport": true, "detached": true, "garage": true, "house": true, "residential": true, "semidetached_house": true, "static_caravan": true}, "highway": {"residential": true, "street_lamp": true, "turning_circle": true}, "landuse": {"residential": true}, "leisure": {"swimming_pool": true}, "man_made": {"street_cabinet": true}}}}, - "cluster/subway": {"cluster": true, "matches": {"any": [{"anyTags": {"highway": {"elevator": true}, "railway": {"subway": true, "subway_entrance": true}}}, {"allTags": {"subway": "yes", "public_transport": {"platform": true, "station": true, "stop_position": true}}}]}}, + "subfeatures/airport": {"matches": {"anyTags": {"aeroway": "*", "amenity": {"police": true}, "building": {"hangar": true}, "highway": {"service": true}, "surveillance:type": "camera"}}}, + "subfeatures/bank": {"matches": {"anyTags": {"amenity": {"atm": true}, "service": "drive-through", "surveillance:type": "camera"}}}, + "subfeatures/bus_stop": {"matches": {"any": [{"anyTags": {"amenity": {"bench": true}, "footway": "sidewalk", "information": {"board": true}, "shelter_type": "public_transport", "vending": "public_transport_tickets"}}, {"allTags": {"bus": "yes", "public_transport": {"platform": true, "stop_position": true}}}]}}, + "subfeatures/campground": {"matches": {"anyTags": {"amenity": {"bbq": true, "bench": true, "drinking_water": true, "sanitary_dump_station": true, "shower": true, "toilets": true, "water_point": true, "waste_basket": true}, "highway": {"service": true, "street_lamp": true}, "leisure": {"playground": true, "firepit": true, "picnic_table": true}, "tourism": {"camp_pitch": true}}, "allowOtherTags": false}}, + "subfeatures/gas_station": {"matches": {"any": [{"allTags": {"amenity": {"vending_machine": true}, "vending": {"fuel": true}}}, {"anyTags": {"amenity": {"car_wash": true, "compressed_air": true}, "building": {"roof": true}, "highway": {"street_lamp": true}, "man_made": {"storage_tank": true}, "shop": {"convenience": true, "car_repair": true}}, "allowOtherTags": false}]}}, + "subfeatures/golf_course": {"matches": {"anyTags": {"golf": true, "sport": "golf"}}}, + "subfeatures/marina": {"matches": {"anyTags": {"amenity": {"boat_rental": true, "toilets": true}, "highway": {"service": true, "street_lamp": true}, "leisure": {"fishing": true, "slipway": true}, "man_made": {"breakwater": true, "pier": true}, "seamark:type": {"mooring": true}, "shop": {"fishing": true}, "waterway": {"boatyard": true, "dock": true, "fuel": true, "sanitary_dump_station": true, "water_point": true}}, "allowOtherTags": false}}, + "subfeatures/park": {"matches": {"anyTags": {"amenity": {"bbq": true, "bench": true, "drinking_water": true, "fountain": true, "toilets": true, "waste_basket": true}, "information": {"board": true}, "leisure": {"playground": true, "firepit": true, "dog_park": true, "picnic_table": true}, "natural": {"tree": true}, "highway": {"footway": true, "path": true, "service": true, "street_lamp": true}, "tourism": {"information": true, "picnic_site": true}}, "allowOtherTags": false}}, + "subfeatures/parking": {"matches": {"anyTags": {"highway": {"service": true, "street_lamp": true}, "service": {"parking_aisle": true}, "traffic_calming": {"bump": true, "island": true}, "vending": {"parking_tickets": true}}}}, + "subfeatures/playground": {"matches": {"anyTags": {"amenity": {"bench": true}, "playground": true}}}, + "subfeatures/post_office": {"matches": {"anyTags": {"amenity": {"post_box": true}, "vending": {"stamps": true, "parcel_pickup": true}}}}, + "subfeatures/residence": {"matches": {"anyTags": {"barrier": {"fence": true}, "building": {"garage": true}, "footway": {"sidewalk": true}, "highway": {"footway": true, "residential": true, "service": true, "street_lamp": true}, "leisure": {"swimming_pool": true}, "natural": {"tree": true}, "service": {"alley": true, "driveway": true}}, "allowOtherTags": false}}, + "subfeatures/school": {"matches": {"anyTags": {"amenity": {"bench": true, "waste_basket": true}, "building": {"school": true}, "highway": {"service": true, "street_lamp": true}, "leisure": {"pitch": true, "picnic_table": true, "playground": true}, "man_made": {"flagpole": true}, "natural": {"tree": true}, "sport": {"american_football": true, "baseball": true, "basketball": true, "cricket": true, "field_hockey": true, "running": true, "soccer": true, "softball": true, "tennis": true}}, "allowOtherTags": false}}, + "subfeatures/subway": {"matches": {"any": [{"anyTags": {"highway": {"elevator": true, "steps": true}, "railway": {"subway": true, "subway_entrance": true}, "surveillance:type": "camera", "vending": {"public_transport_tickets": true}}}, {"allTags": {"subway": "yes", "public_transport": {"platform": true, "station": true, "stop_position": true}}}]}}, + "subfeatures/theme_park": {"matches": {"anyTags": {"amenity": {"bench": true, "drinking_water": true, "fast_food": true, "theatre": true, "toilets": true}, "attraction": true, "emergency": {"defibrillator": true, "first_aid_kit": true}, "highway": {"footway": true}, "leisure": {"amusement_arcade": true, "miniature_golf": true}, "shop": {"gift": true, "ticket": true}, "tourism": {"information": true}}, "allowOtherTags": false}}, "toggleable/aerialways": {"name": "Aerial Features", "description": "Chair Lifts, Gondolas, Zip Lines, etc.", "toggleable": true, "matches": {"allTags": {"aerialway": {"*": true, "no": false, "yes": false, "station": false}}}}, "toggleable/boundaries": {"name": "Boundaries", "description": "Administrative Boundaries", "toggleable": {"hiddenByDefault": true}, "matches": {"geometry": ["line", "area", "relation"], "allTags": {"boundary": {"*": true, "no": false}}, "groups": {"toggleable/traffic_roads": false, "toggleable/service_roads": false, "toggleable/paths": false, "toggleable/water": false, "toggleable/pistes": false, "toggleable/railway": false, "toggleable/landuse": false, "toggleable/building": false, "toggleable/power": false}}}, "toggleable/building_parts": {"name": "Building Parts", "description": "3D Building and Roof Components", "toggleable": true, "matches": {"allTags": {"building:part": {"*": true, "no": false}}}}, @@ -28,6 +29,21 @@ "toggleable/rail": {"name": "Railway Features", "description": "Rails, Train Signals, etc.", "toggleable": true, "matches": {"anyTags": {"railway": {"*": true, "no": false}, "landuse": "railway"}, "groups": {"toggleable/traffic_roads": false, "toggleable/service_roads": false, "toggleable/paths": false}}}, "toggleable/service_roads": {"name": "Service Roads", "description": "Driveways, Parking Aisles, Tracks, etc.", "toggleable": true, "matches": {"geometry": "line", "allTags": {"highway": {"service": true, "road": true, "track": true}}}}, "toggleable/traffic_roads": {"name": "Traffic Roads", "description": "Highways, Streets, etc.", "toggleable": true, "matches": {"geometry": "line", "allTags": {"highway": {"motorway": true, "motorway_link": true, "trunk": true, "trunk_link": true, "primary": true, "primary_link": true, "secondary": true, "secondary_link": true, "tertiary": true, "tertiary_link": true, "residential": true, "unclassified": true, "living_street": true}}}}, - "toggleable/water": {"name": "Water Features", "description": "Rivers, Lakes, Ponds, Basins, etc.", "toggleable": true, "matches": {"anyTags": {"waterway": {"*": true, "no": false}, "natural": {"water": true, "coastline": true, "bay": true}, "landuse": {"pond": true, "basin": true, "reservoir": true, "salt_pond": true}}}} + "toggleable/water": {"name": "Water Features", "description": "Rivers, Lakes, Ponds, Basins, etc.", "toggleable": true, "matches": {"anyTags": {"waterway": {"*": true, "no": false}, "natural": {"water": true, "coastline": true, "bay": true}, "landuse": {"pond": true, "basin": true, "reservoir": true, "salt_pond": true}}}}, + "zones/airport": {"subfeatures": "subfeatures/airport", "matches": {"anyTags": {"aeroway": "aerodrome"}}}, + "zones/bank": {"subfeatures": "subfeatures/bank", "matches": {"anyTags": {"amenity": "bank"}}}, + "zones/bus_stop": {"subfeatures": "subfeatures/bus_stop", "matches": {"allTags": {"bus": "yes", "public_transport": {"platform": true, "stop_area": true, "stop_position": true}}}}, + "zones/campground": {"subfeatures": "subfeatures/campground", "matches": {"anyTags": {"tourism": {"camp_site": true, "caravan_site": true}}}}, + "zones/gas_station": {"subfeatures": "subfeatures/gas_station", "matches": {"anyTags": {"amenity": "fuel"}}}, + "zones/golf_course": {"subfeatures": "subfeatures/golf_course", "matches": {"anyTags": {"leisure": "golf_course"}}}, + "zones/marina": {"subfeatures": "subfeatures/marina", "matches": {"anyTags": {"leisure": "marina"}}}, + "zones/park": {"subfeatures": "subfeatures/park", "matches": {"anyTags": {"leisure": "park"}}}, + "zones/parking": {"subfeatures": "subfeatures/parking", "matches": {"anyTags": {"amenity": "parking"}}}, + "zones/playground": {"subfeatures": "subfeatures/playground", "matches": {"anyTags": {"leisure": "playground"}}}, + "zones/post_office": {"subfeatures": "subfeatures/post_office", "matches": {"anyTags": {"amenity": "post_office"}}}, + "zones/residence": {"subfeatures": "subfeatures/residence", "matches": {"anyTags": {"building": {"detached": true, "house": true, "semidetached_house": true, "static_caravan": true}}}}, + "zones/school": {"subfeatures": "subfeatures/school", "matches": {"anyTags": {"amenity": "school"}}}, + "zones/subway": {"subfeatures": "subfeatures/subway", "matches": {"allTags": {"subway": "yes", "public_transport": {"platform": true, "station": true, "stop_area": true, "stop_position": true}}}}, + "zones/theme_park": {"subfeatures": "subfeatures/theme_park", "matches": {"anyTags": {"tourism": "theme_park"}}} } } \ No newline at end of file diff --git a/data/presets/groups/cluster/airport.json b/data/presets/groups/cluster/airport.json deleted file mode 100644 index dc2cf676b6..0000000000 --- a/data/presets/groups/cluster/airport.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "cluster": true, - "matches": { - "anyTags": { - "aeroway": "*", - "building": { - "hangar": true - } - } - } -} diff --git a/data/presets/groups/cluster/bank.json b/data/presets/groups/cluster/bank.json deleted file mode 100644 index cb9c379f2b..0000000000 --- a/data/presets/groups/cluster/bank.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "cluster": true, - "matches": { - "anyTags": { - "amenity": { - "atm": true, - "bank": true - } - } - } -} diff --git a/data/presets/groups/cluster/military.json b/data/presets/groups/cluster/military.json deleted file mode 100644 index a9c4d11cda..0000000000 --- a/data/presets/groups/cluster/military.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "cluster": true, - "matches": { - "anyTags": { - "building": { - "bunker": true - }, - "landuse": { - "military": true - }, - "military": { - "airfield": true, - "barracks": true, - "bunker": true, - "checkpoint": true, - "naval_base": true, - "obstacle_course": true, - "office": true, - "range": true, - "training_area": true - } - } - } -} diff --git a/data/presets/groups/cluster/pipeline.json b/data/presets/groups/cluster/pipeline.json deleted file mode 100644 index 1d55fa6a55..0000000000 --- a/data/presets/groups/cluster/pipeline.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "cluster": true, - "matches": { - "anyTags": { - "man_made": { - "pipeline": true, - "storage_tank": true - }, - "pipeline": "*" - } - } -} diff --git a/data/presets/groups/cluster/service_station.json b/data/presets/groups/cluster/service_station.json deleted file mode 100644 index 42e97effdc..0000000000 --- a/data/presets/groups/cluster/service_station.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "cluster": true, - "matches": { - "anyTags": { - "amenity": { - "car_wash": true, - "compressed_air": true, - "fuel": true, - "vending_machine": true - }, - "building": { - "roof": true - }, - "highway": { - "services": true, - "street_lamp": true - }, - "man_made": { - "storage_tank": true - }, - "shop": { - "convenience": true, - "car_repair": true - }, - "vending": { - "fuel": true - } - } - } -} diff --git a/data/presets/groups/cluster/suburban_residential.json b/data/presets/groups/cluster/suburban_residential.json deleted file mode 100644 index 80b7ae7055..0000000000 --- a/data/presets/groups/cluster/suburban_residential.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "cluster": true, - "matches": { - "anyTags": { - "building": { - "carport": true, - "detached": true, - "garage": true, - "house": true, - "residential": true, - "semidetached_house": true, - "static_caravan": true - }, - "highway": { - "residential": true, - "street_lamp": true, - "turning_circle": true - }, - "landuse": { - "residential": true - }, - "leisure": { - "swimming_pool": true - }, - "man_made": { - "street_cabinet": true - } - } - } -} diff --git a/data/presets/groups/subfeatures/airport.json b/data/presets/groups/subfeatures/airport.json new file mode 100644 index 0000000000..7ca282d28a --- /dev/null +++ b/data/presets/groups/subfeatures/airport.json @@ -0,0 +1,17 @@ +{ + "matches": { + "anyTags": { + "aeroway": "*", + "amenity": { + "police": true + }, + "building": { + "hangar": true + }, + "highway": { + "service": true + }, + "surveillance:type": "camera" + } + } +} diff --git a/data/presets/groups/subfeatures/bank.json b/data/presets/groups/subfeatures/bank.json new file mode 100644 index 0000000000..9bd10bc4db --- /dev/null +++ b/data/presets/groups/subfeatures/bank.json @@ -0,0 +1,11 @@ +{ + "matches": { + "anyTags": { + "amenity": { + "atm": true + }, + "service": "drive-through", + "surveillance:type": "camera" + } + } +} diff --git a/data/presets/groups/subfeatures/bus_stop.json b/data/presets/groups/subfeatures/bus_stop.json new file mode 100644 index 0000000000..f042ed4561 --- /dev/null +++ b/data/presets/groups/subfeatures/bus_stop.json @@ -0,0 +1,28 @@ +{ + "matches": { + "any": [ + { + "anyTags": { + "amenity": { + "bench": true + }, + "footway": "sidewalk", + "information": { + "board": true + }, + "shelter_type": "public_transport", + "vending": "public_transport_tickets" + } + }, + { + "allTags": { + "bus": "yes", + "public_transport": { + "platform": true, + "stop_position": true + } + } + } + ] + } +} diff --git a/data/presets/groups/cluster/campground.json b/data/presets/groups/subfeatures/campground.json similarity index 78% rename from data/presets/groups/cluster/campground.json rename to data/presets/groups/subfeatures/campground.json index ae9c29839c..2e3b49db1b 100644 --- a/data/presets/groups/cluster/campground.json +++ b/data/presets/groups/subfeatures/campground.json @@ -1,20 +1,19 @@ { - "cluster": true, "matches": { "anyTags": { "amenity": { "bbq": true, "bench": true, "drinking_water": true, - "grit_bin": true, "sanitary_dump_station": true, "shower": true, "toilets": true, "water_point": true, "waste_basket": true }, - "camp_site": { - "camp_pitch": true + "highway": { + "service": true, + "street_lamp": true }, "leisure": { "playground": true, @@ -22,9 +21,9 @@ "picnic_table": true }, "tourism": { - "camp_site": true, - "caravan_site": true + "camp_pitch": true } - } + }, + "allowOtherTags": false } } diff --git a/data/presets/groups/subfeatures/gas_station.json b/data/presets/groups/subfeatures/gas_station.json new file mode 100644 index 0000000000..9bcf04f71d --- /dev/null +++ b/data/presets/groups/subfeatures/gas_station.json @@ -0,0 +1,38 @@ +{ + "matches": { + "any": [ + { + "allTags": { + "amenity": { + "vending_machine": true + }, + "vending": { + "fuel": true + } + } + }, + { + "anyTags": { + "amenity": { + "car_wash": true, + "compressed_air": true + }, + "building": { + "roof": true + }, + "highway": { + "street_lamp": true + }, + "man_made": { + "storage_tank": true + }, + "shop": { + "convenience": true, + "car_repair": true + } + }, + "allowOtherTags": false + } + ] + } +} diff --git a/data/presets/groups/cluster/power.json b/data/presets/groups/subfeatures/golf_course.json similarity index 51% rename from data/presets/groups/cluster/power.json rename to data/presets/groups/subfeatures/golf_course.json index 79f25be32a..239ad1e14c 100644 --- a/data/presets/groups/cluster/power.json +++ b/data/presets/groups/subfeatures/golf_course.json @@ -1,8 +1,8 @@ { - "cluster": true, "matches": { "anyTags": { - "power": "*" + "golf": true, + "sport": "golf" } } } diff --git a/data/presets/groups/cluster/marina.json b/data/presets/groups/subfeatures/marina.json similarity index 74% rename from data/presets/groups/cluster/marina.json rename to data/presets/groups/subfeatures/marina.json index 38df69b526..3dc935ce78 100644 --- a/data/presets/groups/cluster/marina.json +++ b/data/presets/groups/subfeatures/marina.json @@ -1,13 +1,16 @@ { - "cluster": true, "matches": { "anyTags": { "amenity": { - "boat_rental": true + "boat_rental": true, + "toilets": true + }, + "highway": { + "service": true, + "street_lamp": true }, "leisure": { "fishing": true, - "marina": true, "slipway": true }, "man_made": { @@ -27,6 +30,7 @@ "sanitary_dump_station": true, "water_point": true } - } + }, + "allowOtherTags": false } } diff --git a/data/presets/groups/cluster/park.json b/data/presets/groups/subfeatures/park.json similarity index 61% rename from data/presets/groups/cluster/park.json rename to data/presets/groups/subfeatures/park.json index 9f74798851..8aba7aca83 100644 --- a/data/presets/groups/cluster/park.json +++ b/data/presets/groups/subfeatures/park.json @@ -1,5 +1,4 @@ { - "cluster": true, "matches": { "anyTags": { "amenity": { @@ -7,25 +6,32 @@ "bench": true, "drinking_water": true, "fountain": true, - "grit_bin": true, "toilets": true, "waste_basket": true }, + "information": { + "board": true + }, "leisure": { - "park": true, - "pitch": true, "playground": true, "firepit": true, "dog_park": true, - "picnic_table": true, - "track": true + "picnic_table": true }, "natural": { "tree": true }, + "highway": { + "footway": true, + "path": true, + "service": true, + "street_lamp": true + }, "tourism": { + "information": true, "picnic_site": true } - } + }, + "allowOtherTags": false } } diff --git a/data/presets/groups/cluster/parking.json b/data/presets/groups/subfeatures/parking.json similarity index 53% rename from data/presets/groups/cluster/parking.json rename to data/presets/groups/subfeatures/parking.json index 844259d4a9..581ad9e657 100644 --- a/data/presets/groups/cluster/parking.json +++ b/data/presets/groups/subfeatures/parking.json @@ -1,13 +1,17 @@ { - "cluster": true, "matches": { "anyTags": { - "amenity": { - "parking": true + "highway": { + "service": true, + "street_lamp": true }, "service": { "parking_aisle": true }, + "traffic_calming": { + "bump": true, + "island": true + }, "vending": { "parking_tickets": true } diff --git a/data/presets/groups/subfeatures/playground.json b/data/presets/groups/subfeatures/playground.json new file mode 100644 index 0000000000..0c52665abb --- /dev/null +++ b/data/presets/groups/subfeatures/playground.json @@ -0,0 +1,10 @@ +{ + "matches": { + "anyTags": { + "amenity": { + "bench": true + }, + "playground": true + } + } +} diff --git a/data/presets/groups/cluster/post_office.json b/data/presets/groups/subfeatures/post_office.json similarity index 69% rename from data/presets/groups/cluster/post_office.json rename to data/presets/groups/subfeatures/post_office.json index 683c84d274..fc598b8e11 100644 --- a/data/presets/groups/cluster/post_office.json +++ b/data/presets/groups/subfeatures/post_office.json @@ -1,10 +1,8 @@ { - "cluster": true, "matches": { "anyTags": { "amenity": { - "post_box": true, - "post_office": true + "post_box": true }, "vending": { "stamps": true, diff --git a/data/presets/groups/subfeatures/residence.json b/data/presets/groups/subfeatures/residence.json new file mode 100644 index 0000000000..04b70ab706 --- /dev/null +++ b/data/presets/groups/subfeatures/residence.json @@ -0,0 +1,32 @@ +{ + "matches": { + "anyTags": { + "barrier": { + "fence": true + }, + "building": { + "garage": true + }, + "footway": { + "sidewalk": true + }, + "highway": { + "footway": true, + "residential": true, + "service": true, + "street_lamp": true + }, + "leisure": { + "swimming_pool": true + }, + "natural": { + "tree": true + }, + "service": { + "alley": true, + "driveway": true + } + }, + "allowOtherTags": false + } +} diff --git a/data/presets/groups/cluster/school.json b/data/presets/groups/subfeatures/school.json similarity index 81% rename from data/presets/groups/cluster/school.json rename to data/presets/groups/subfeatures/school.json index 858501d632..88cac30e84 100644 --- a/data/presets/groups/cluster/school.json +++ b/data/presets/groups/subfeatures/school.json @@ -1,21 +1,21 @@ { - "cluster": true, "matches": { "anyTags": { "amenity": { "bench": true, - "bicycle_parking": true, - "school": true, "waste_basket": true }, "building": { "school": true }, + "highway": { + "service": true, + "street_lamp": true + }, "leisure": { - "picnic_table": true, "pitch": true, - "playground": true, - "track": true + "picnic_table": true, + "playground": true }, "man_made": { "flagpole": true @@ -34,6 +34,7 @@ "softball": true, "tennis": true } - } + }, + "allowOtherTags": false } } diff --git a/data/presets/groups/cluster/subway.json b/data/presets/groups/subfeatures/subway.json similarity index 72% rename from data/presets/groups/cluster/subway.json rename to data/presets/groups/subfeatures/subway.json index a87cf76d3a..f1b92e4977 100644 --- a/data/presets/groups/cluster/subway.json +++ b/data/presets/groups/subfeatures/subway.json @@ -1,15 +1,19 @@ { - "cluster": true, "matches": { "any": [ { "anyTags": { "highway": { - "elevator": true + "elevator": true, + "steps": true }, "railway": { "subway": true, "subway_entrance": true + }, + "surveillance:type": "camera", + "vending": { + "public_transport_tickets": true } } }, diff --git a/data/presets/groups/subfeatures/theme_park.json b/data/presets/groups/subfeatures/theme_park.json new file mode 100644 index 0000000000..eac8604da6 --- /dev/null +++ b/data/presets/groups/subfeatures/theme_park.json @@ -0,0 +1,33 @@ +{ + "matches": { + "anyTags": { + "amenity": { + "bench": true, + "drinking_water": true, + "fast_food": true, + "theatre": true, + "toilets": true + }, + "attraction": true, + "emergency": { + "defibrillator": true, + "first_aid_kit": true + }, + "highway": { + "footway": true + }, + "leisure": { + "amusement_arcade": true, + "miniature_golf": true + }, + "shop": { + "gift": true, + "ticket": true + }, + "tourism": { + "information": true + } + }, + "allowOtherTags": false + } +} diff --git a/data/presets/groups/zones/airport.json b/data/presets/groups/zones/airport.json new file mode 100644 index 0000000000..aa916fcf96 --- /dev/null +++ b/data/presets/groups/zones/airport.json @@ -0,0 +1,8 @@ +{ + "subfeatures": "subfeatures/airport", + "matches": { + "anyTags": { + "aeroway": "aerodrome" + } + } +} diff --git a/data/presets/groups/zones/bank.json b/data/presets/groups/zones/bank.json new file mode 100644 index 0000000000..fe83d663db --- /dev/null +++ b/data/presets/groups/zones/bank.json @@ -0,0 +1,8 @@ +{ + "subfeatures": "subfeatures/bank", + "matches": { + "anyTags": { + "amenity": "bank" + } + } +} diff --git a/data/presets/groups/zones/bus_stop.json b/data/presets/groups/zones/bus_stop.json new file mode 100644 index 0000000000..70a4483b83 --- /dev/null +++ b/data/presets/groups/zones/bus_stop.json @@ -0,0 +1,13 @@ +{ + "subfeatures": "subfeatures/bus_stop", + "matches": { + "allTags": { + "bus": "yes", + "public_transport": { + "platform": true, + "stop_area": true, + "stop_position": true + } + } + } +} diff --git a/data/presets/groups/zones/campground.json b/data/presets/groups/zones/campground.json new file mode 100644 index 0000000000..839b3c7696 --- /dev/null +++ b/data/presets/groups/zones/campground.json @@ -0,0 +1,11 @@ +{ + "subfeatures": "subfeatures/campground", + "matches": { + "anyTags": { + "tourism": { + "camp_site": true, + "caravan_site": true + } + } + } +} diff --git a/data/presets/groups/zones/gas_station.json b/data/presets/groups/zones/gas_station.json new file mode 100644 index 0000000000..d345413299 --- /dev/null +++ b/data/presets/groups/zones/gas_station.json @@ -0,0 +1,8 @@ +{ + "subfeatures": "subfeatures/gas_station", + "matches": { + "anyTags": { + "amenity": "fuel" + } + } +} diff --git a/data/presets/groups/zones/golf_course.json b/data/presets/groups/zones/golf_course.json new file mode 100644 index 0000000000..e1d85a4c3b --- /dev/null +++ b/data/presets/groups/zones/golf_course.json @@ -0,0 +1,8 @@ +{ + "subfeatures": "subfeatures/golf_course", + "matches": { + "anyTags": { + "leisure": "golf_course" + } + } +} diff --git a/data/presets/groups/zones/marina.json b/data/presets/groups/zones/marina.json new file mode 100644 index 0000000000..885a32b157 --- /dev/null +++ b/data/presets/groups/zones/marina.json @@ -0,0 +1,8 @@ +{ + "subfeatures": "subfeatures/marina", + "matches": { + "anyTags": { + "leisure": "marina" + } + } +} diff --git a/data/presets/groups/zones/park.json b/data/presets/groups/zones/park.json new file mode 100644 index 0000000000..0cb9a855a2 --- /dev/null +++ b/data/presets/groups/zones/park.json @@ -0,0 +1,8 @@ +{ + "subfeatures": "subfeatures/park", + "matches": { + "anyTags": { + "leisure": "park" + } + } +} diff --git a/data/presets/groups/zones/parking.json b/data/presets/groups/zones/parking.json new file mode 100644 index 0000000000..0613100fb8 --- /dev/null +++ b/data/presets/groups/zones/parking.json @@ -0,0 +1,8 @@ +{ + "subfeatures": "subfeatures/parking", + "matches": { + "anyTags": { + "amenity": "parking" + } + } +} diff --git a/data/presets/groups/zones/playground.json b/data/presets/groups/zones/playground.json new file mode 100644 index 0000000000..f3f72ca318 --- /dev/null +++ b/data/presets/groups/zones/playground.json @@ -0,0 +1,8 @@ +{ + "subfeatures": "subfeatures/playground", + "matches": { + "anyTags": { + "leisure": "playground" + } + } +} diff --git a/data/presets/groups/zones/post_office.json b/data/presets/groups/zones/post_office.json new file mode 100644 index 0000000000..5e617e73b0 --- /dev/null +++ b/data/presets/groups/zones/post_office.json @@ -0,0 +1,8 @@ +{ + "subfeatures": "subfeatures/post_office", + "matches": { + "anyTags": { + "amenity": "post_office" + } + } +} diff --git a/data/presets/groups/zones/residence.json b/data/presets/groups/zones/residence.json new file mode 100644 index 0000000000..4b99ba031c --- /dev/null +++ b/data/presets/groups/zones/residence.json @@ -0,0 +1,13 @@ +{ + "subfeatures": "subfeatures/residence", + "matches": { + "anyTags": { + "building": { + "detached": true, + "house": true, + "semidetached_house": true, + "static_caravan": true + } + } + } +} diff --git a/data/presets/groups/zones/school.json b/data/presets/groups/zones/school.json new file mode 100644 index 0000000000..531f769d2e --- /dev/null +++ b/data/presets/groups/zones/school.json @@ -0,0 +1,8 @@ +{ + "subfeatures": "subfeatures/school", + "matches": { + "anyTags": { + "amenity": "school" + } + } +} diff --git a/data/presets/groups/zones/subway.json b/data/presets/groups/zones/subway.json new file mode 100644 index 0000000000..96d53ec93a --- /dev/null +++ b/data/presets/groups/zones/subway.json @@ -0,0 +1,14 @@ +{ + "subfeatures": "subfeatures/subway", + "matches": { + "allTags": { + "subway": "yes", + "public_transport": { + "platform": true, + "station": true, + "stop_area": true, + "stop_position": true + } + } + } +} diff --git a/data/presets/groups/zones/theme_park.json b/data/presets/groups/zones/theme_park.json new file mode 100644 index 0000000000..bb5bb7d062 --- /dev/null +++ b/data/presets/groups/zones/theme_park.json @@ -0,0 +1,8 @@ +{ + "subfeatures": "subfeatures/theme_park", + "matches": { + "anyTags": { + "tourism": "theme_park" + } + } +} diff --git a/data/presets/schema/group.json b/data/presets/schema/group.json index f121967158..e7c2ef0d48 100644 --- a/data/presets/schema/group.json +++ b/data/presets/schema/group.json @@ -11,9 +11,9 @@ "description": "A short English description for the group, if needed for the UI. Translatable", "type": "string" }, - "cluster": { - "description": "Specify if features in this group are often found near each other", - "type": "boolean" + "subfeatures": { + "description": "The ID of a group whose matching features are often found within or near features of this group", + "type": "string" }, "toggleable": { "anyOf": [ @@ -49,6 +49,9 @@ "type": "object", "additionalProperties": { "anyOf": [ + { + "type": "boolean" + }, { "type": "string" }, @@ -120,6 +123,7 @@ "$ref": "#/definitions/geometry" }, { + "description": "ANY geometry must match", "type": "array", "items": { "$ref": "#/definitions/geometry" @@ -136,6 +140,14 @@ "description": "ALL tag/value combinations must be present", "$ref": "#/definitions/tags" }, + "notAnyTags": { + "description": "NOT ANY tag/value combinations must be present", + "$ref": "#/definitions/tags" + }, + "allowOtherTags": { + "description": "If false, ALL tags must be specified by the tag object", + "type": "boolean" + }, "groups": { "description": "ALL external groups must pass", "type": "object", diff --git a/modules/entities/group_manager.js b/modules/entities/group_manager.js index 367532d9dc..ba2d4cd262 100644 --- a/modules/entities/group_manager.js +++ b/modules/entities/group_manager.js @@ -44,6 +44,45 @@ function entityGroup(id, group) { return null; }; + // returns all tags specified by the given rule, regardless of positive or negative matching + function ruleTagsFor(rule) { + + var _ruleTags = {}; + + function addTagsForRule(rule) { + for (var rulesKey in {any: true, all: true, none: true, notAll: true}) { + if (rule[rulesKey]) { + rule[rulesKey].forEach(addTagsForRule); + } + } + for (var tagsKey in {anyTags: true, allTags: true, notAnyTags: true}) { + if (rule[tagsKey]) { + var tagsObj = rule[tagsKey]; + for (var key in tagsObj) { + var val = tagsObj[key]; + + if (typeof val === 'boolean') { + _ruleTags[key] = true; + } else if (typeof val === 'string') { + if (val === '*') _ruleTags[key] = true; + if (_ruleTags[key] === undefined) _ruleTags[key] = {}; + if (typeof _ruleTags[key] === 'object') _ruleTags[key][val] = true; + } else { + for (var value in val) { + if (value === '*') _ruleTags[key] = true; + if (_ruleTags[key] === undefined) _ruleTags[key] = {}; + if (typeof _ruleTags[key] === 'object') _ruleTags[key][value] = true; + } + } + } + } + } + } + addTagsForRule(rule); + + return _ruleTags; + } + group.matchesTags = function(tags, geometry) { var allGroups = groupManager.groups(); @@ -62,7 +101,10 @@ function entityGroup(id, group) { for (var i in keysToCheck) { var key = keysToCheck[i]; var entityValue = tags[key]; - if (typeof val === 'string') { + if (typeof val === 'boolean') { + if (val && !entityValue) continue; + if (!val && entityValue) continue; + } else if (typeof val === 'string') { if (!entityValue || (val !== entityValue && val !== '*')) continue; } else { // object like { "value1": boolean } @@ -109,6 +151,21 @@ function entityGroup(id, group) { } if (!didMatch) return false; } + if (rule.notAnyTags) { + for (ruleKey in rule.notAnyTags) { + if (matchesTagComponent(ruleKey, rule.notAnyTags)) return false; + } + } + + if (rule.allowOtherTags === false) { + var ruleTags = ruleTagsFor(rule); + for (var key in tags) { + if (!ruleTags[key]) return false; + if (typeof ruleTags[key] === 'object') { + if (!ruleTags[key][tags[key]]) return false; + } + } + } if (rule.groups) { for (var otherGroupID in rule.groups) { @@ -142,6 +199,10 @@ function entityGroupManager() { _groupsArray.push(group); } + manager.group = function(id) { + return _groups[id]; + }; + manager.groups = function() { return _groups; }; @@ -154,8 +215,8 @@ function entityGroupManager() { return group.toggleable; }); - manager.clusterGroups = _groupsArray.filter(function(group) { - return group.cluster; + manager.groupsWithSubfeatures = _groupsArray.filter(function(group) { + return group.subfeatures; }); manager.clearCachedPresets = function() { diff --git a/modules/presets/preset.js b/modules/presets/preset.js index 78417fd83c..3f6df168b5 100644 --- a/modules/presets/preset.js +++ b/modules/presets/preset.js @@ -279,12 +279,14 @@ export function presetPreset(id, preset, fields, visible, rawPresets) { if (!group.matchesTags(tags, geom)) return; var score = 1; + /* for (var key in tags) { var subtags = {}; subtags[key] = tags[key]; if (!group.matchesTags(subtags, geom)) return; score += 0.15; } + */ if (!groupsByGeometry[geom]) groupsByGeometry[geom] = []; groupsByGeometry[geom].push({ group: group, diff --git a/modules/ui/preset_browser.js b/modules/ui/preset_browser.js index 2684629bad..fd16039a22 100644 --- a/modules/ui/preset_browser.js +++ b/modules/ui/preset_browser.js @@ -271,7 +271,7 @@ export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { var graph = context.graph(); - var clusterGroups = groupManager.clusterGroups; + var superGroups = groupManager.groupsWithSubfeatures; var scoredGroups = {}; var queryExtent = context.map().extent(); @@ -279,12 +279,13 @@ export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { for (var i in nearbyEntities) { var entity = nearbyEntities[i]; var geom = entity.geometry(graph); - for (var j in clusterGroups) { - var group = clusterGroups[j]; + for (var j in superGroups) { + var group = superGroups[j]; if (group.matchesTags(entity.tags, geom)) { - if (!scoredGroups[group.id]) { - scoredGroups[group.id] = { - group: group, + var subgroupID = group.subfeatures; + if (!scoredGroups[subgroupID]) { + scoredGroups[subgroupID] = { + group: groupManager.group(subgroupID), score: 0 }; } @@ -297,7 +298,7 @@ export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { } else { entityScore = 1; } - scoredGroups[group.id].score += entityScore; + scoredGroups[subgroupID].score += entityScore; } } } From 2cc05cf2cca62c81c41bd8c36154c44d2ef72e0b Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Thu, 11 Jul 2019 15:53:13 -0400 Subject: [PATCH 163/774] Recommend visible feature types in the preset browser --- modules/ui/preset_browser.js | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/modules/ui/preset_browser.js b/modules/ui/preset_browser.js index fd16039a22..17f6d87a54 100644 --- a/modules/ui/preset_browser.js +++ b/modules/ui/preset_browser.js @@ -273,12 +273,27 @@ export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { var superGroups = groupManager.groupsWithSubfeatures; var scoredGroups = {}; + var scoredPresets = {}; var queryExtent = context.map().extent(); var nearbyEntities = context.history().tree().intersects(queryExtent, graph); for (var i in nearbyEntities) { var entity = nearbyEntities[i]; + // ignore boring features + if (!entity.hasInterestingTags()) continue; + + // evaluate preset var geom = entity.geometry(graph); + var preset = context.presets().match(entity, graph); + if (!scoredPresets[preset.id]) { + scoredPresets[preset.id] = { + preset: preset, + score: 0 + }; + } + scoredPresets[preset.id].score += 1; + + // evaluate groups for (var j in superGroups) { var group = superGroups[j]; if (group.matchesTags(entity.tags, geom)) { @@ -302,7 +317,7 @@ export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { } } } - var scoredPresets = {}; + Object.values(scoredGroups).forEach(function(item) { item.group.scoredPresets().forEach(function(groupScoredPreset) { var combinedScore = groupScoredPreset.score * item.score; @@ -322,12 +337,17 @@ export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { }).map(function(item) { return item.preset; }).filter(function(d) { + // skip non-visible if (!d.visible()) return false; + // skip presets not valid in this country if (_countryCode && d.countryCodes && d.countryCodes.indexOf(_countryCode) === -1) return false; for (var i in shownGeometry) { - if (d.geometry.indexOf(shownGeometry[i]) !== -1) return true; + if (d.geometry.indexOf(shownGeometry[i]) !== -1) { + // skip currently hidden features + if (!context.features().isHiddenPreset(d, shownGeometry[i])) return true; + } } return false; }).slice(0, 50); From e4a30ca08bd34e4383e63ad6cb442269c76d6c1d Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Thu, 11 Jul 2019 16:00:56 -0400 Subject: [PATCH 164/774] Skip loading preset groups during tests --- modules/presets/preset.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/presets/preset.js b/modules/presets/preset.js index 3f6df168b5..bebae095aa 100644 --- a/modules/presets/preset.js +++ b/modules/presets/preset.js @@ -301,7 +301,9 @@ export function presetPreset(id, preset, fields, visible, rawPresets) { }); return groupsByGeometry; } - preset.groupsByGeometry = loadGroups(); + if (!window.mocha) { + preset.groupsByGeometry = loadGroups(); + } return preset; } From beb71a6847d98b44e349ed26b67f214820fef278 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Thu, 11 Jul 2019 16:16:08 -0400 Subject: [PATCH 165/774] Don't recommend nearby brand suggestion in the preset browser defaults --- modules/ui/preset_browser.js | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/modules/ui/preset_browser.js b/modules/ui/preset_browser.js index 17f6d87a54..f8c7c43f97 100644 --- a/modules/ui/preset_browser.js +++ b/modules/ui/preset_browser.js @@ -283,17 +283,19 @@ export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { if (!entity.hasInterestingTags()) continue; // evaluate preset - var geom = entity.geometry(graph); var preset = context.presets().match(entity, graph); - if (!scoredPresets[preset.id]) { - scoredPresets[preset.id] = { - preset: preset, - score: 0 - }; + if (!preset.suggestion) { // don't recommend brand suggestions again + if (!scoredPresets[preset.id]) { + scoredPresets[preset.id] = { + preset: preset, + score: 0 + }; + } + scoredPresets[preset.id].score += 1; } - scoredPresets[preset.id].score += 1; // evaluate groups + var geom = entity.geometry(graph); for (var j in superGroups) { var group = superGroups[j]; if (group.matchesTags(entity.tags, geom)) { From f15624543c001cd3c972fa68831fd4cb6af4c43d Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Thu, 11 Jul 2019 17:00:47 -0400 Subject: [PATCH 166/774] Add farm zone group --- data/presets/groups.json | 2 ++ data/presets/groups/subfeatures/farm.json | 28 +++++++++++++++++++++++ data/presets/groups/zones/farm.json | 11 +++++++++ 3 files changed, 41 insertions(+) create mode 100644 data/presets/groups/subfeatures/farm.json create mode 100644 data/presets/groups/zones/farm.json diff --git a/data/presets/groups.json b/data/presets/groups.json index 9c4559525e..fad3b5fccd 100644 --- a/data/presets/groups.json +++ b/data/presets/groups.json @@ -4,6 +4,7 @@ "subfeatures/bank": {"matches": {"anyTags": {"amenity": {"atm": true}, "service": "drive-through", "surveillance:type": "camera"}}}, "subfeatures/bus_stop": {"matches": {"any": [{"anyTags": {"amenity": {"bench": true}, "footway": "sidewalk", "information": {"board": true}, "shelter_type": "public_transport", "vending": "public_transport_tickets"}}, {"allTags": {"bus": "yes", "public_transport": {"platform": true, "stop_position": true}}}]}}, "subfeatures/campground": {"matches": {"anyTags": {"amenity": {"bbq": true, "bench": true, "drinking_water": true, "sanitary_dump_station": true, "shower": true, "toilets": true, "water_point": true, "waste_basket": true}, "highway": {"service": true, "street_lamp": true}, "leisure": {"playground": true, "firepit": true, "picnic_table": true}, "tourism": {"camp_pitch": true}}, "allowOtherTags": false}}, + "subfeatures/farm": {"matches": {"anyTags": {"building": {"barn": true, "farm": true, "farm_auxiliary": true}, "highway": {"service": true, "track": true}, "landuse": {"farmyard": true}, "man_made": {"beehive": true, "silo": true}, "shop": {"farm": true}, "water": {"pond": true}}}}, "subfeatures/gas_station": {"matches": {"any": [{"allTags": {"amenity": {"vending_machine": true}, "vending": {"fuel": true}}}, {"anyTags": {"amenity": {"car_wash": true, "compressed_air": true}, "building": {"roof": true}, "highway": {"street_lamp": true}, "man_made": {"storage_tank": true}, "shop": {"convenience": true, "car_repair": true}}, "allowOtherTags": false}]}}, "subfeatures/golf_course": {"matches": {"anyTags": {"golf": true, "sport": "golf"}}}, "subfeatures/marina": {"matches": {"anyTags": {"amenity": {"boat_rental": true, "toilets": true}, "highway": {"service": true, "street_lamp": true}, "leisure": {"fishing": true, "slipway": true}, "man_made": {"breakwater": true, "pier": true}, "seamark:type": {"mooring": true}, "shop": {"fishing": true}, "waterway": {"boatyard": true, "dock": true, "fuel": true, "sanitary_dump_station": true, "water_point": true}}, "allowOtherTags": false}}, @@ -34,6 +35,7 @@ "zones/bank": {"subfeatures": "subfeatures/bank", "matches": {"anyTags": {"amenity": "bank"}}}, "zones/bus_stop": {"subfeatures": "subfeatures/bus_stop", "matches": {"allTags": {"bus": "yes", "public_transport": {"platform": true, "stop_area": true, "stop_position": true}}}}, "zones/campground": {"subfeatures": "subfeatures/campground", "matches": {"anyTags": {"tourism": {"camp_site": true, "caravan_site": true}}}}, + "zones/farm": {"subfeatures": "subfeatures/farm", "matches": {"anyTags": {"landuse": {"farmland": true, "orchard": true}}}}, "zones/gas_station": {"subfeatures": "subfeatures/gas_station", "matches": {"anyTags": {"amenity": "fuel"}}}, "zones/golf_course": {"subfeatures": "subfeatures/golf_course", "matches": {"anyTags": {"leisure": "golf_course"}}}, "zones/marina": {"subfeatures": "subfeatures/marina", "matches": {"anyTags": {"leisure": "marina"}}}, diff --git a/data/presets/groups/subfeatures/farm.json b/data/presets/groups/subfeatures/farm.json new file mode 100644 index 0000000000..6dce4adf6f --- /dev/null +++ b/data/presets/groups/subfeatures/farm.json @@ -0,0 +1,28 @@ +{ + "matches": { + "anyTags": { + "building": { + "barn": true, + "farm": true, + "farm_auxiliary": true + }, + "highway": { + "service": true, + "track": true + }, + "landuse": { + "farmyard": true + }, + "man_made": { + "beehive": true, + "silo": true + }, + "shop": { + "farm": true + }, + "water": { + "pond": true + } + } + } +} diff --git a/data/presets/groups/zones/farm.json b/data/presets/groups/zones/farm.json new file mode 100644 index 0000000000..922e00728f --- /dev/null +++ b/data/presets/groups/zones/farm.json @@ -0,0 +1,11 @@ +{ + "subfeatures": "subfeatures/farm", + "matches": { + "anyTags": { + "landuse": { + "farmland": true, + "orchard": true + } + } + } +} From c05a201b71047ebce1ebe45abe5f9bedf3503be9 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Thu, 11 Jul 2019 17:01:04 -0400 Subject: [PATCH 167/774] Don't recommend fallback presets --- modules/ui/preset_browser.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/ui/preset_browser.js b/modules/ui/preset_browser.js index f8c7c43f97..c67cb4a933 100644 --- a/modules/ui/preset_browser.js +++ b/modules/ui/preset_browser.js @@ -284,7 +284,8 @@ export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { // evaluate preset var preset = context.presets().match(entity, graph); - if (!preset.suggestion) { // don't recommend brand suggestions again + if (!preset.isFallback() && // don't recommend generics + !preset.suggestion) { // don't recommend brand suggestions again if (!scoredPresets[preset.id]) { scoredPresets[preset.id] = { preset: preset, From 3757177b2262e10b7a00ed7ae974b8c50263e1dc Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Thu, 11 Jul 2019 17:28:03 -0400 Subject: [PATCH 168/774] Add mall zone for preset recommendations --- data/presets/groups.json | 2 ++ data/presets/groups/subfeatures/mall.json | 37 +++++++++++++++++++++++ data/presets/groups/zones/mall.json | 8 +++++ 3 files changed, 47 insertions(+) create mode 100644 data/presets/groups/subfeatures/mall.json create mode 100644 data/presets/groups/zones/mall.json diff --git a/data/presets/groups.json b/data/presets/groups.json index fad3b5fccd..4da00a86a7 100644 --- a/data/presets/groups.json +++ b/data/presets/groups.json @@ -7,6 +7,7 @@ "subfeatures/farm": {"matches": {"anyTags": {"building": {"barn": true, "farm": true, "farm_auxiliary": true}, "highway": {"service": true, "track": true}, "landuse": {"farmyard": true}, "man_made": {"beehive": true, "silo": true}, "shop": {"farm": true}, "water": {"pond": true}}}}, "subfeatures/gas_station": {"matches": {"any": [{"allTags": {"amenity": {"vending_machine": true}, "vending": {"fuel": true}}}, {"anyTags": {"amenity": {"car_wash": true, "compressed_air": true}, "building": {"roof": true}, "highway": {"street_lamp": true}, "man_made": {"storage_tank": true}, "shop": {"convenience": true, "car_repair": true}}, "allowOtherTags": false}]}}, "subfeatures/golf_course": {"matches": {"anyTags": {"golf": true, "sport": "golf"}}}, + "subfeatures/mall": {"matches": {"anyTags": {"amenity": {"drinking_water": true, "fast_food": true, "food_court": true, "parking": true, "restaurant": true, "toilets": true}, "clothes": {"underwear": true}, "highway": {"corridor": true}, "shop": {"clothes": true, "cosmetics": true, "department_store": true, "electronics": true, "optician": true, "jewelry": true, "massage": true, "mobile_phone": true, "perfumery": true, "shoes": true, "toys": true}, "tourism": {"information": true}}, "allowOtherTags": false}}, "subfeatures/marina": {"matches": {"anyTags": {"amenity": {"boat_rental": true, "toilets": true}, "highway": {"service": true, "street_lamp": true}, "leisure": {"fishing": true, "slipway": true}, "man_made": {"breakwater": true, "pier": true}, "seamark:type": {"mooring": true}, "shop": {"fishing": true}, "waterway": {"boatyard": true, "dock": true, "fuel": true, "sanitary_dump_station": true, "water_point": true}}, "allowOtherTags": false}}, "subfeatures/park": {"matches": {"anyTags": {"amenity": {"bbq": true, "bench": true, "drinking_water": true, "fountain": true, "toilets": true, "waste_basket": true}, "information": {"board": true}, "leisure": {"playground": true, "firepit": true, "dog_park": true, "picnic_table": true}, "natural": {"tree": true}, "highway": {"footway": true, "path": true, "service": true, "street_lamp": true}, "tourism": {"information": true, "picnic_site": true}}, "allowOtherTags": false}}, "subfeatures/parking": {"matches": {"anyTags": {"highway": {"service": true, "street_lamp": true}, "service": {"parking_aisle": true}, "traffic_calming": {"bump": true, "island": true}, "vending": {"parking_tickets": true}}}}, @@ -38,6 +39,7 @@ "zones/farm": {"subfeatures": "subfeatures/farm", "matches": {"anyTags": {"landuse": {"farmland": true, "orchard": true}}}}, "zones/gas_station": {"subfeatures": "subfeatures/gas_station", "matches": {"anyTags": {"amenity": "fuel"}}}, "zones/golf_course": {"subfeatures": "subfeatures/golf_course", "matches": {"anyTags": {"leisure": "golf_course"}}}, + "zones/mall": {"subfeatures": "subfeatures/mall", "matches": {"anyTags": {"shop": "mall"}}}, "zones/marina": {"subfeatures": "subfeatures/marina", "matches": {"anyTags": {"leisure": "marina"}}}, "zones/park": {"subfeatures": "subfeatures/park", "matches": {"anyTags": {"leisure": "park"}}}, "zones/parking": {"subfeatures": "subfeatures/parking", "matches": {"anyTags": {"amenity": "parking"}}}, diff --git a/data/presets/groups/subfeatures/mall.json b/data/presets/groups/subfeatures/mall.json new file mode 100644 index 0000000000..d8738ac4cb --- /dev/null +++ b/data/presets/groups/subfeatures/mall.json @@ -0,0 +1,37 @@ +{ + "matches": { + "anyTags": { + "amenity": { + "drinking_water": true, + "fast_food": true, + "food_court": true, + "parking": true, + "restaurant": true, + "toilets": true + }, + "clothes": { + "underwear": true + }, + "highway": { + "corridor": true + }, + "shop": { + "clothes": true, + "cosmetics": true, + "department_store": true, + "electronics": true, + "optician": true, + "jewelry": true, + "massage": true, + "mobile_phone": true, + "perfumery": true, + "shoes": true, + "toys": true + }, + "tourism": { + "information": true + } + }, + "allowOtherTags": false + } +} diff --git a/data/presets/groups/zones/mall.json b/data/presets/groups/zones/mall.json new file mode 100644 index 0000000000..cc711ea367 --- /dev/null +++ b/data/presets/groups/zones/mall.json @@ -0,0 +1,8 @@ +{ + "subfeatures": "subfeatures/mall", + "matches": { + "anyTags": { + "shop": "mall" + } + } +} From f0170f5e1a3270ad6eb2311165ec0fe3db65a034 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Thu, 11 Jul 2019 17:34:00 -0400 Subject: [PATCH 169/774] Don't recommend unsearchable presets --- modules/ui/preset_browser.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/ui/preset_browser.js b/modules/ui/preset_browser.js index c67cb4a933..c362a7809a 100644 --- a/modules/ui/preset_browser.js +++ b/modules/ui/preset_browser.js @@ -284,7 +284,8 @@ export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { // evaluate preset var preset = context.presets().match(entity, graph); - if (!preset.isFallback() && // don't recommend generics + if (preset.searchable !== false && // don't recommend unsearchables + !preset.isFallback() && // don't recommend generics !preset.suggestion) { // don't recommend brand suggestions again if (!scoredPresets[preset.id]) { scoredPresets[preset.id] = { From 68d19b0ee7ffd4c99e32140a8e87f8ffdbff5931 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Fri, 12 Jul 2019 09:46:42 -0400 Subject: [PATCH 170/774] Add power zone group --- data/presets/groups.json | 2 ++ data/presets/groups/subfeatures/power.json | 13 +++++++++++++ data/presets/groups/zones/power.json | 11 +++++++++++ 3 files changed, 26 insertions(+) create mode 100644 data/presets/groups/subfeatures/power.json create mode 100644 data/presets/groups/zones/power.json diff --git a/data/presets/groups.json b/data/presets/groups.json index 4da00a86a7..8ff8c36131 100644 --- a/data/presets/groups.json +++ b/data/presets/groups.json @@ -13,6 +13,7 @@ "subfeatures/parking": {"matches": {"anyTags": {"highway": {"service": true, "street_lamp": true}, "service": {"parking_aisle": true}, "traffic_calming": {"bump": true, "island": true}, "vending": {"parking_tickets": true}}}}, "subfeatures/playground": {"matches": {"anyTags": {"amenity": {"bench": true}, "playground": true}}}, "subfeatures/post_office": {"matches": {"anyTags": {"amenity": {"post_box": true}, "vending": {"stamps": true, "parcel_pickup": true}}}}, + "subfeatures/power": {"matches": {"anyTags": {"power": {"line": true, "minor_line": true, "pole": true, "tower": true, "transformer": true}}}}, "subfeatures/residence": {"matches": {"anyTags": {"barrier": {"fence": true}, "building": {"garage": true}, "footway": {"sidewalk": true}, "highway": {"footway": true, "residential": true, "service": true, "street_lamp": true}, "leisure": {"swimming_pool": true}, "natural": {"tree": true}, "service": {"alley": true, "driveway": true}}, "allowOtherTags": false}}, "subfeatures/school": {"matches": {"anyTags": {"amenity": {"bench": true, "waste_basket": true}, "building": {"school": true}, "highway": {"service": true, "street_lamp": true}, "leisure": {"pitch": true, "picnic_table": true, "playground": true}, "man_made": {"flagpole": true}, "natural": {"tree": true}, "sport": {"american_football": true, "baseball": true, "basketball": true, "cricket": true, "field_hockey": true, "running": true, "soccer": true, "softball": true, "tennis": true}}, "allowOtherTags": false}}, "subfeatures/subway": {"matches": {"any": [{"anyTags": {"highway": {"elevator": true, "steps": true}, "railway": {"subway": true, "subway_entrance": true}, "surveillance:type": "camera", "vending": {"public_transport_tickets": true}}}, {"allTags": {"subway": "yes", "public_transport": {"platform": true, "station": true, "stop_position": true}}}]}}, @@ -45,6 +46,7 @@ "zones/parking": {"subfeatures": "subfeatures/parking", "matches": {"anyTags": {"amenity": "parking"}}}, "zones/playground": {"subfeatures": "subfeatures/playground", "matches": {"anyTags": {"leisure": "playground"}}}, "zones/post_office": {"subfeatures": "subfeatures/post_office", "matches": {"anyTags": {"amenity": "post_office"}}}, + "zones/power": {"subfeatures": "subfeatures/power", "matches": {"anyTags": {"power": {"plant": true, "substation": true}}}}, "zones/residence": {"subfeatures": "subfeatures/residence", "matches": {"anyTags": {"building": {"detached": true, "house": true, "semidetached_house": true, "static_caravan": true}}}}, "zones/school": {"subfeatures": "subfeatures/school", "matches": {"anyTags": {"amenity": "school"}}}, "zones/subway": {"subfeatures": "subfeatures/subway", "matches": {"allTags": {"subway": "yes", "public_transport": {"platform": true, "station": true, "stop_area": true, "stop_position": true}}}}, diff --git a/data/presets/groups/subfeatures/power.json b/data/presets/groups/subfeatures/power.json new file mode 100644 index 0000000000..c21de961f0 --- /dev/null +++ b/data/presets/groups/subfeatures/power.json @@ -0,0 +1,13 @@ +{ + "matches": { + "anyTags": { + "power": { + "line": true, + "minor_line": true, + "pole": true, + "tower": true, + "transformer": true + } + } + } +} diff --git a/data/presets/groups/zones/power.json b/data/presets/groups/zones/power.json new file mode 100644 index 0000000000..fd8ca85a83 --- /dev/null +++ b/data/presets/groups/zones/power.json @@ -0,0 +1,11 @@ +{ + "subfeatures": "subfeatures/power", + "matches": { + "anyTags": { + "power": { + "plant": true, + "substation": true + } + } + } +} From ec7cec644584c2bab0c29d0f9d2b24d36328d05e Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Fri, 12 Jul 2019 09:57:48 -0400 Subject: [PATCH 171/774] Add fast food zone group --- data/presets/groups.json | 2 ++ data/presets/groups/subfeatures/fast_food.json | 12 ++++++++++++ data/presets/groups/zones/fast_food.json | 8 ++++++++ 3 files changed, 22 insertions(+) create mode 100644 data/presets/groups/subfeatures/fast_food.json create mode 100644 data/presets/groups/zones/fast_food.json diff --git a/data/presets/groups.json b/data/presets/groups.json index 8ff8c36131..9411d0d291 100644 --- a/data/presets/groups.json +++ b/data/presets/groups.json @@ -5,6 +5,7 @@ "subfeatures/bus_stop": {"matches": {"any": [{"anyTags": {"amenity": {"bench": true}, "footway": "sidewalk", "information": {"board": true}, "shelter_type": "public_transport", "vending": "public_transport_tickets"}}, {"allTags": {"bus": "yes", "public_transport": {"platform": true, "stop_position": true}}}]}}, "subfeatures/campground": {"matches": {"anyTags": {"amenity": {"bbq": true, "bench": true, "drinking_water": true, "sanitary_dump_station": true, "shower": true, "toilets": true, "water_point": true, "waste_basket": true}, "highway": {"service": true, "street_lamp": true}, "leisure": {"playground": true, "firepit": true, "picnic_table": true}, "tourism": {"camp_pitch": true}}, "allowOtherTags": false}}, "subfeatures/farm": {"matches": {"anyTags": {"building": {"barn": true, "farm": true, "farm_auxiliary": true}, "highway": {"service": true, "track": true}, "landuse": {"farmyard": true}, "man_made": {"beehive": true, "silo": true}, "shop": {"farm": true}, "water": {"pond": true}}}}, + "subfeatures/fast_food": {"matches": {"anyTags": {"amenity": {"parking": true, "toilets": true}, "service": "drive-through"}, "allowOtherTags": false}}, "subfeatures/gas_station": {"matches": {"any": [{"allTags": {"amenity": {"vending_machine": true}, "vending": {"fuel": true}}}, {"anyTags": {"amenity": {"car_wash": true, "compressed_air": true}, "building": {"roof": true}, "highway": {"street_lamp": true}, "man_made": {"storage_tank": true}, "shop": {"convenience": true, "car_repair": true}}, "allowOtherTags": false}]}}, "subfeatures/golf_course": {"matches": {"anyTags": {"golf": true, "sport": "golf"}}}, "subfeatures/mall": {"matches": {"anyTags": {"amenity": {"drinking_water": true, "fast_food": true, "food_court": true, "parking": true, "restaurant": true, "toilets": true}, "clothes": {"underwear": true}, "highway": {"corridor": true}, "shop": {"clothes": true, "cosmetics": true, "department_store": true, "electronics": true, "optician": true, "jewelry": true, "massage": true, "mobile_phone": true, "perfumery": true, "shoes": true, "toys": true}, "tourism": {"information": true}}, "allowOtherTags": false}}, @@ -38,6 +39,7 @@ "zones/bus_stop": {"subfeatures": "subfeatures/bus_stop", "matches": {"allTags": {"bus": "yes", "public_transport": {"platform": true, "stop_area": true, "stop_position": true}}}}, "zones/campground": {"subfeatures": "subfeatures/campground", "matches": {"anyTags": {"tourism": {"camp_site": true, "caravan_site": true}}}}, "zones/farm": {"subfeatures": "subfeatures/farm", "matches": {"anyTags": {"landuse": {"farmland": true, "orchard": true}}}}, + "zones/fast_food": {"subfeatures": "subfeatures/fast_food", "matches": {"anyTags": {"amenity": "fast_food"}}}, "zones/gas_station": {"subfeatures": "subfeatures/gas_station", "matches": {"anyTags": {"amenity": "fuel"}}}, "zones/golf_course": {"subfeatures": "subfeatures/golf_course", "matches": {"anyTags": {"leisure": "golf_course"}}}, "zones/mall": {"subfeatures": "subfeatures/mall", "matches": {"anyTags": {"shop": "mall"}}}, diff --git a/data/presets/groups/subfeatures/fast_food.json b/data/presets/groups/subfeatures/fast_food.json new file mode 100644 index 0000000000..304ac43876 --- /dev/null +++ b/data/presets/groups/subfeatures/fast_food.json @@ -0,0 +1,12 @@ +{ + "matches": { + "anyTags": { + "amenity": { + "parking": true, + "toilets": true + }, + "service": "drive-through" + }, + "allowOtherTags": false + } +} diff --git a/data/presets/groups/zones/fast_food.json b/data/presets/groups/zones/fast_food.json new file mode 100644 index 0000000000..0636a3dd7f --- /dev/null +++ b/data/presets/groups/zones/fast_food.json @@ -0,0 +1,8 @@ +{ + "subfeatures": "subfeatures/fast_food", + "matches": { + "anyTags": { + "amenity": "fast_food" + } + } +} From 4d78c7676a27a5fd9a4e2377c23bdc674a98d0a4 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Fri, 12 Jul 2019 10:15:52 -0400 Subject: [PATCH 172/774] Add water park zone group --- data/presets/groups.json | 4 +++- data/presets/groups/subfeatures/water_park.json | 17 +++++++++++++++++ data/presets/groups/zones/water_park.json | 8 ++++++++ 3 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 data/presets/groups/subfeatures/water_park.json create mode 100644 data/presets/groups/zones/water_park.json diff --git a/data/presets/groups.json b/data/presets/groups.json index 9411d0d291..c6998b4a61 100644 --- a/data/presets/groups.json +++ b/data/presets/groups.json @@ -19,6 +19,7 @@ "subfeatures/school": {"matches": {"anyTags": {"amenity": {"bench": true, "waste_basket": true}, "building": {"school": true}, "highway": {"service": true, "street_lamp": true}, "leisure": {"pitch": true, "picnic_table": true, "playground": true}, "man_made": {"flagpole": true}, "natural": {"tree": true}, "sport": {"american_football": true, "baseball": true, "basketball": true, "cricket": true, "field_hockey": true, "running": true, "soccer": true, "softball": true, "tennis": true}}, "allowOtherTags": false}}, "subfeatures/subway": {"matches": {"any": [{"anyTags": {"highway": {"elevator": true, "steps": true}, "railway": {"subway": true, "subway_entrance": true}, "surveillance:type": "camera", "vending": {"public_transport_tickets": true}}}, {"allTags": {"subway": "yes", "public_transport": {"platform": true, "station": true, "stop_position": true}}}]}}, "subfeatures/theme_park": {"matches": {"anyTags": {"amenity": {"bench": true, "drinking_water": true, "fast_food": true, "theatre": true, "toilets": true}, "attraction": true, "emergency": {"defibrillator": true, "first_aid_kit": true}, "highway": {"footway": true}, "leisure": {"amusement_arcade": true, "miniature_golf": true}, "shop": {"gift": true, "ticket": true}, "tourism": {"information": true}}, "allowOtherTags": false}}, + "subfeatures/water_park": {"matches": {"anyTags": {"amenity": {"shower": true, "toilets": true}, "attraction": {"water_slide": true}, "leisure": {"swimming_pool": true}}, "allowOtherTags": false}}, "toggleable/aerialways": {"name": "Aerial Features", "description": "Chair Lifts, Gondolas, Zip Lines, etc.", "toggleable": true, "matches": {"allTags": {"aerialway": {"*": true, "no": false, "yes": false, "station": false}}}}, "toggleable/boundaries": {"name": "Boundaries", "description": "Administrative Boundaries", "toggleable": {"hiddenByDefault": true}, "matches": {"geometry": ["line", "area", "relation"], "allTags": {"boundary": {"*": true, "no": false}}, "groups": {"toggleable/traffic_roads": false, "toggleable/service_roads": false, "toggleable/paths": false, "toggleable/water": false, "toggleable/pistes": false, "toggleable/railway": false, "toggleable/landuse": false, "toggleable/building": false, "toggleable/power": false}}}, "toggleable/building_parts": {"name": "Building Parts", "description": "3D Building and Roof Components", "toggleable": true, "matches": {"allTags": {"building:part": {"*": true, "no": false}}}}, @@ -52,6 +53,7 @@ "zones/residence": {"subfeatures": "subfeatures/residence", "matches": {"anyTags": {"building": {"detached": true, "house": true, "semidetached_house": true, "static_caravan": true}}}}, "zones/school": {"subfeatures": "subfeatures/school", "matches": {"anyTags": {"amenity": "school"}}}, "zones/subway": {"subfeatures": "subfeatures/subway", "matches": {"allTags": {"subway": "yes", "public_transport": {"platform": true, "station": true, "stop_area": true, "stop_position": true}}}}, - "zones/theme_park": {"subfeatures": "subfeatures/theme_park", "matches": {"anyTags": {"tourism": "theme_park"}}} + "zones/theme_park": {"subfeatures": "subfeatures/theme_park", "matches": {"anyTags": {"tourism": "theme_park"}}}, + "zones/water_park": {"subfeatures": "subfeatures/water_park", "matches": {"anyTags": {"leisure": "water_park"}}} } } \ No newline at end of file diff --git a/data/presets/groups/subfeatures/water_park.json b/data/presets/groups/subfeatures/water_park.json new file mode 100644 index 0000000000..7eefd2e49a --- /dev/null +++ b/data/presets/groups/subfeatures/water_park.json @@ -0,0 +1,17 @@ +{ + "matches": { + "anyTags": { + "amenity": { + "shower": true, + "toilets": true + }, + "attraction": { + "water_slide": true + }, + "leisure": { + "swimming_pool": true + } + }, + "allowOtherTags": false + } +} diff --git a/data/presets/groups/zones/water_park.json b/data/presets/groups/zones/water_park.json new file mode 100644 index 0000000000..cfc759c373 --- /dev/null +++ b/data/presets/groups/zones/water_park.json @@ -0,0 +1,8 @@ +{ + "subfeatures": "subfeatures/water_park", + "matches": { + "anyTags": { + "leisure": "water_park" + } + } +} From cad8c78ecc593f08b456936bb8e530437bb4996f Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Fri, 12 Jul 2019 10:16:20 -0400 Subject: [PATCH 173/774] Recommend hotel preset near airports --- data/presets/groups.json | 2 +- data/presets/groups/subfeatures/airport.json | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/data/presets/groups.json b/data/presets/groups.json index c6998b4a61..8e6547cc76 100644 --- a/data/presets/groups.json +++ b/data/presets/groups.json @@ -1,6 +1,6 @@ { "groups": { - "subfeatures/airport": {"matches": {"anyTags": {"aeroway": "*", "amenity": {"police": true}, "building": {"hangar": true}, "highway": {"service": true}, "surveillance:type": "camera"}}}, + "subfeatures/airport": {"matches": {"anyTags": {"aeroway": "*", "amenity": {"police": true}, "building": {"hangar": true}, "highway": {"service": true}, "surveillance:type": "camera", "tourism": {"hotel": true}}}}, "subfeatures/bank": {"matches": {"anyTags": {"amenity": {"atm": true}, "service": "drive-through", "surveillance:type": "camera"}}}, "subfeatures/bus_stop": {"matches": {"any": [{"anyTags": {"amenity": {"bench": true}, "footway": "sidewalk", "information": {"board": true}, "shelter_type": "public_transport", "vending": "public_transport_tickets"}}, {"allTags": {"bus": "yes", "public_transport": {"platform": true, "stop_position": true}}}]}}, "subfeatures/campground": {"matches": {"anyTags": {"amenity": {"bbq": true, "bench": true, "drinking_water": true, "sanitary_dump_station": true, "shower": true, "toilets": true, "water_point": true, "waste_basket": true}, "highway": {"service": true, "street_lamp": true}, "leisure": {"playground": true, "firepit": true, "picnic_table": true}, "tourism": {"camp_pitch": true}}, "allowOtherTags": false}}, diff --git a/data/presets/groups/subfeatures/airport.json b/data/presets/groups/subfeatures/airport.json index 7ca282d28a..41c2298956 100644 --- a/data/presets/groups/subfeatures/airport.json +++ b/data/presets/groups/subfeatures/airport.json @@ -11,7 +11,10 @@ "highway": { "service": true }, - "surveillance:type": "camera" + "surveillance:type": "camera", + "tourism": { + "hotel": true + } } } } From a0beda7a57c8d88bfe3efb7af26cd92e94768c61 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Fri, 12 Jul 2019 10:28:41 -0400 Subject: [PATCH 174/774] Add preset for amenity=dressing_room (close #6643) Deprecate amenity=changing_room --- data/deprecated.json | 4 +++ data/presets.yaml | 5 ++++ data/presets/presets.json | 1 + .../presets/amenity/dressing_room.json | 30 +++++++++++++++++++ data/taginfo.json | 2 ++ dist/locales/en.json | 4 +++ 6 files changed, 46 insertions(+) create mode 100644 data/presets/presets/amenity/dressing_room.json diff --git a/data/deprecated.json b/data/deprecated.json index 6e6a5bdef8..9a41940771 100644 --- a/data/deprecated.json +++ b/data/deprecated.json @@ -24,6 +24,10 @@ "old": {"amenity": "car_repair"}, "replace": {"shop": "car_repair"} }, + { + "old": {"amenity": "changing_room"}, + "replace": {"amenity": "dressing_room"} + }, { "old": {"amenity": "citymap_post"}, "replace": {"tourism": "information"} diff --git a/data/presets.yaml b/data/presets.yaml index 10bddc44bd..85c08e96e5 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -2669,6 +2669,11 @@ en: name: Dojo / Martial Arts Academy # 'terms: martial arts,dojang' terms: '' + amenity/dressing_room: + # amenity=dressing_room + name: Changing Room + # 'terms: changeroom,dressing room,fitting room,locker room' + terms: '' amenity/drinking_water: # amenity=drinking_water name: Drinking Water diff --git a/data/presets/presets.json b/data/presets/presets.json index 7d7badd576..7a10c67b1b 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -104,6 +104,7 @@ "amenity/dive_centre": {"icon": "temaki-scuba_diving", "fields": ["name", "operator", "address", "building_area", "opening_hours", "scuba_diving"], "moreFields": ["payment_multi", "website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "terms": ["diving", "scuba"], "tags": {"amenity": "dive_centre"}, "name": "Dive Center"}, "amenity/doctors": {"icon": "maki-doctor", "fields": ["name", "operator", "healthcare/speciality", "address", "building_area", "opening_hours"], "moreFields": ["payment_multi", "website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "terms": ["medic*", "physician"], "tags": {"amenity": "doctors"}, "addTags": {"amenity": "doctors", "healthcare": "doctor"}, "reference": {"key": "amenity", "value": "doctors"}, "name": "Doctor"}, "amenity/dojo": {"icon": "maki-pitch", "fields": ["name", "sport", "address", "building_area", "opening_hours"], "moreFields": ["payment_multi", "website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "terms": ["martial arts", "dojang"], "tags": {"amenity": "dojo"}, "name": "Dojo / Martial Arts Academy"}, + "amenity/dressing_room": {"icon": "maki-clothing-store", "fields": ["operator", "access_simple", "gender", "wheelchair", "building_area"], "moreFields": ["fee", "opening_hours", "payment_multi_fee", "ref"], "geometry": ["point", "area"], "terms": ["changeroom", "dressing room", "fitting room", "locker room"], "tags": {"amenity": "dressing_room"}, "name": "Changing Room"}, "amenity/drinking_water": {"icon": "maki-drinking-water", "fields": ["operator", "access_simple", "fee", "payment_multi_fee", "wheelchair"], "moreFields": ["covered", "indoor", "lit"], "geometry": ["point"], "tags": {"amenity": "drinking_water"}, "terms": ["potable water source", "water fountain", "drinking fountain", "bubbler", "water tap"], "name": "Drinking Water"}, "amenity/driving_school": {"icon": "maki-car", "fields": ["name", "operator", "operator/type", "address", "building_area", "opening_hours"], "moreFields": ["payment_multi", "website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "driving_school"}, "name": "Driving School"}, "amenity/events_venue": {"icon": "fas-users", "fields": ["name", "operator", "building_area", "address", "website", "internet_access"], "moreFields": ["air_conditioning", "email", "fax", "internet_access/fee", "internet_access/ssid", "phone", "smoking", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "events_venue"}, "terms": ["banquet hall", "baptism", "Bar Mitzvah", "Bat Mitzvah", "birthdays", "celebrations", "conferences", "confirmation", "meetings", "parties", "party", "quinceañera", "reunions", "weddings"], "name": "Events Venue"}, diff --git a/data/presets/presets/amenity/dressing_room.json b/data/presets/presets/amenity/dressing_room.json new file mode 100644 index 0000000000..29ec9a2dd3 --- /dev/null +++ b/data/presets/presets/amenity/dressing_room.json @@ -0,0 +1,30 @@ +{ + "icon": "maki-clothing-store", + "fields": [ + "operator", + "access_simple", + "gender", + "wheelchair", + "building_area" + ], + "moreFields": [ + "fee", + "opening_hours", + "payment_multi_fee", + "ref" + ], + "geometry": [ + "point", + "area" + ], + "terms": [ + "changeroom", + "dressing room", + "fitting room", + "locker room" + ], + "tags": { + "amenity": "dressing_room" + }, + "name": "Changing Room" +} diff --git a/data/taginfo.json b/data/taginfo.json index 15c8102990..b58978fc57 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -106,6 +106,7 @@ {"key": "amenity", "value": "dive_centre", "description": "🄿 Dive Center", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/scuba_diving.svg"}, {"key": "amenity", "value": "doctors", "description": "🄿 Doctor", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/doctor-15.svg"}, {"key": "amenity", "value": "dojo", "description": "🄿 Dojo / Martial Arts Academy", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/pitch-15.svg"}, + {"key": "amenity", "value": "dressing_room", "description": "🄿 Changing Room", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/clothing-store-15.svg"}, {"key": "amenity", "value": "drinking_water", "description": "🄿 Drinking Water", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/drinking-water-15.svg"}, {"key": "amenity", "value": "driving_school", "description": "🄿 Driving School", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/car-15.svg"}, {"key": "amenity", "value": "events_venue", "description": "🄿 Events Venue", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-users.svg"}, @@ -1788,6 +1789,7 @@ {"key": "amenity", "value": "artwork", "description": "🄳 ➜ tourism=artwork"}, {"key": "amenity", "value": "bail_bonds", "description": "🄳 ➜ office=bail_bond_agent"}, {"key": "amenity", "value": "car_repair", "description": "🄳 ➜ shop=car_repair"}, + {"key": "amenity", "value": "changing_room", "description": "🄳 ➜ amenity=dressing_room"}, {"key": "amenity", "value": "citymap_post", "description": "🄳 ➜ tourism=information"}, {"key": "amenity", "value": "club", "description": "🄳 ➜ club=*"}, {"key": "amenity", "value": "community_center", "description": "🄳 ➜ amenity=community_centre"}, diff --git a/dist/locales/en.json b/dist/locales/en.json index f281124dad..d89b4508f5 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -4772,6 +4772,10 @@ "name": "Dojo / Martial Arts Academy", "terms": "martial arts,dojang" }, + "amenity/dressing_room": { + "name": "Changing Room", + "terms": "changeroom,dressing room,fitting room,locker room" + }, "amenity/drinking_water": { "name": "Drinking Water", "terms": "potable water source,water fountain,drinking fountain,bubbler,water tap" From eb0647a4b7023bd9b185d305b05f34d354ea8faf Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Fri, 12 Jul 2019 10:34:37 -0400 Subject: [PATCH 175/774] Recommend changing rooms near water parks --- data/presets/groups.json | 2 +- data/presets/groups/subfeatures/water_park.json | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/data/presets/groups.json b/data/presets/groups.json index 8e6547cc76..3e8d7d855a 100644 --- a/data/presets/groups.json +++ b/data/presets/groups.json @@ -19,7 +19,7 @@ "subfeatures/school": {"matches": {"anyTags": {"amenity": {"bench": true, "waste_basket": true}, "building": {"school": true}, "highway": {"service": true, "street_lamp": true}, "leisure": {"pitch": true, "picnic_table": true, "playground": true}, "man_made": {"flagpole": true}, "natural": {"tree": true}, "sport": {"american_football": true, "baseball": true, "basketball": true, "cricket": true, "field_hockey": true, "running": true, "soccer": true, "softball": true, "tennis": true}}, "allowOtherTags": false}}, "subfeatures/subway": {"matches": {"any": [{"anyTags": {"highway": {"elevator": true, "steps": true}, "railway": {"subway": true, "subway_entrance": true}, "surveillance:type": "camera", "vending": {"public_transport_tickets": true}}}, {"allTags": {"subway": "yes", "public_transport": {"platform": true, "station": true, "stop_position": true}}}]}}, "subfeatures/theme_park": {"matches": {"anyTags": {"amenity": {"bench": true, "drinking_water": true, "fast_food": true, "theatre": true, "toilets": true}, "attraction": true, "emergency": {"defibrillator": true, "first_aid_kit": true}, "highway": {"footway": true}, "leisure": {"amusement_arcade": true, "miniature_golf": true}, "shop": {"gift": true, "ticket": true}, "tourism": {"information": true}}, "allowOtherTags": false}}, - "subfeatures/water_park": {"matches": {"anyTags": {"amenity": {"shower": true, "toilets": true}, "attraction": {"water_slide": true}, "leisure": {"swimming_pool": true}}, "allowOtherTags": false}}, + "subfeatures/water_park": {"matches": {"anyTags": {"amenity": {"dressing_room": true, "shower": true, "toilets": true}, "attraction": {"water_slide": true}, "leisure": {"swimming_pool": true}}, "allowOtherTags": false}}, "toggleable/aerialways": {"name": "Aerial Features", "description": "Chair Lifts, Gondolas, Zip Lines, etc.", "toggleable": true, "matches": {"allTags": {"aerialway": {"*": true, "no": false, "yes": false, "station": false}}}}, "toggleable/boundaries": {"name": "Boundaries", "description": "Administrative Boundaries", "toggleable": {"hiddenByDefault": true}, "matches": {"geometry": ["line", "area", "relation"], "allTags": {"boundary": {"*": true, "no": false}}, "groups": {"toggleable/traffic_roads": false, "toggleable/service_roads": false, "toggleable/paths": false, "toggleable/water": false, "toggleable/pistes": false, "toggleable/railway": false, "toggleable/landuse": false, "toggleable/building": false, "toggleable/power": false}}}, "toggleable/building_parts": {"name": "Building Parts", "description": "3D Building and Roof Components", "toggleable": true, "matches": {"allTags": {"building:part": {"*": true, "no": false}}}}, diff --git a/data/presets/groups/subfeatures/water_park.json b/data/presets/groups/subfeatures/water_park.json index 7eefd2e49a..6ee62097b2 100644 --- a/data/presets/groups/subfeatures/water_park.json +++ b/data/presets/groups/subfeatures/water_park.json @@ -2,6 +2,7 @@ "matches": { "anyTags": { "amenity": { + "dressing_room": true, "shower": true, "toilets": true }, From eb2a600064a4149c7d213c97aacb6c80cf140f80 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Sun, 14 Jul 2019 16:49:53 -0400 Subject: [PATCH 176/774] Add mechanism to nest simple groups inside other groups Rename "subfeatures" to "nearby" and nest within zones --- data/presets/groups.json | 60 +++++++------------ data/presets/groups/subfeatures/airport.json | 20 ------- data/presets/groups/subfeatures/bank.json | 11 ---- data/presets/groups/subfeatures/bus_stop.json | 28 --------- .../groups/subfeatures/campground.json | 29 --------- data/presets/groups/subfeatures/farm.json | 28 --------- .../presets/groups/subfeatures/fast_food.json | 12 ---- .../groups/subfeatures/gas_station.json | 38 ------------ .../groups/subfeatures/golf_course.json | 8 --- data/presets/groups/subfeatures/mall.json | 37 ------------ data/presets/groups/subfeatures/marina.json | 36 ----------- data/presets/groups/subfeatures/park.json | 37 ------------ data/presets/groups/subfeatures/parking.json | 20 ------- .../groups/subfeatures/playground.json | 10 ---- .../groups/subfeatures/post_office.json | 13 ---- data/presets/groups/subfeatures/power.json | 13 ---- .../presets/groups/subfeatures/residence.json | 32 ---------- data/presets/groups/subfeatures/school.json | 40 ------------- data/presets/groups/subfeatures/subway.json | 32 ---------- .../groups/subfeatures/theme_park.json | 33 ---------- .../groups/subfeatures/water_park.json | 18 ------ data/presets/groups/zones/airport.json | 19 +++++- data/presets/groups/zones/bank.json | 10 +++- data/presets/groups/zones/bus_stop.json | 27 ++++++++- data/presets/groups/zones/campground.json | 28 ++++++++- data/presets/groups/zones/farm.json | 27 ++++++++- data/presets/groups/zones/fast_food.json | 11 +++- data/presets/groups/zones/gas_station.json | 37 +++++++++++- data/presets/groups/zones/golf_course.json | 7 ++- data/presets/groups/zones/mall.json | 36 ++++++++++- data/presets/groups/zones/marina.json | 35 ++++++++++- data/presets/groups/zones/park.json | 36 ++++++++++- data/presets/groups/zones/parking.json | 19 +++++- data/presets/groups/zones/playground.json | 9 ++- data/presets/groups/zones/post_office.json | 12 +++- data/presets/groups/zones/power.json | 12 +++- data/presets/groups/zones/residence.json | 31 +++++++++- data/presets/groups/zones/school.json | 39 +++++++++++- data/presets/groups/zones/subway.json | 31 +++++++++- data/presets/groups/zones/theme_park.json | 32 +++++++++- data/presets/groups/zones/water_park.json | 17 +++++- data/presets/schema/group.json | 19 ++++-- modules/entities/group_manager.js | 24 +++++++- modules/ui/preset_browser.js | 12 ++-- 44 files changed, 516 insertions(+), 569 deletions(-) delete mode 100644 data/presets/groups/subfeatures/airport.json delete mode 100644 data/presets/groups/subfeatures/bank.json delete mode 100644 data/presets/groups/subfeatures/bus_stop.json delete mode 100644 data/presets/groups/subfeatures/campground.json delete mode 100644 data/presets/groups/subfeatures/farm.json delete mode 100644 data/presets/groups/subfeatures/fast_food.json delete mode 100644 data/presets/groups/subfeatures/gas_station.json delete mode 100644 data/presets/groups/subfeatures/golf_course.json delete mode 100644 data/presets/groups/subfeatures/mall.json delete mode 100644 data/presets/groups/subfeatures/marina.json delete mode 100644 data/presets/groups/subfeatures/park.json delete mode 100644 data/presets/groups/subfeatures/parking.json delete mode 100644 data/presets/groups/subfeatures/playground.json delete mode 100644 data/presets/groups/subfeatures/post_office.json delete mode 100644 data/presets/groups/subfeatures/power.json delete mode 100644 data/presets/groups/subfeatures/residence.json delete mode 100644 data/presets/groups/subfeatures/school.json delete mode 100644 data/presets/groups/subfeatures/subway.json delete mode 100644 data/presets/groups/subfeatures/theme_park.json delete mode 100644 data/presets/groups/subfeatures/water_park.json diff --git a/data/presets/groups.json b/data/presets/groups.json index 3e8d7d855a..f9de6a1a1c 100644 --- a/data/presets/groups.json +++ b/data/presets/groups.json @@ -1,25 +1,5 @@ { "groups": { - "subfeatures/airport": {"matches": {"anyTags": {"aeroway": "*", "amenity": {"police": true}, "building": {"hangar": true}, "highway": {"service": true}, "surveillance:type": "camera", "tourism": {"hotel": true}}}}, - "subfeatures/bank": {"matches": {"anyTags": {"amenity": {"atm": true}, "service": "drive-through", "surveillance:type": "camera"}}}, - "subfeatures/bus_stop": {"matches": {"any": [{"anyTags": {"amenity": {"bench": true}, "footway": "sidewalk", "information": {"board": true}, "shelter_type": "public_transport", "vending": "public_transport_tickets"}}, {"allTags": {"bus": "yes", "public_transport": {"platform": true, "stop_position": true}}}]}}, - "subfeatures/campground": {"matches": {"anyTags": {"amenity": {"bbq": true, "bench": true, "drinking_water": true, "sanitary_dump_station": true, "shower": true, "toilets": true, "water_point": true, "waste_basket": true}, "highway": {"service": true, "street_lamp": true}, "leisure": {"playground": true, "firepit": true, "picnic_table": true}, "tourism": {"camp_pitch": true}}, "allowOtherTags": false}}, - "subfeatures/farm": {"matches": {"anyTags": {"building": {"barn": true, "farm": true, "farm_auxiliary": true}, "highway": {"service": true, "track": true}, "landuse": {"farmyard": true}, "man_made": {"beehive": true, "silo": true}, "shop": {"farm": true}, "water": {"pond": true}}}}, - "subfeatures/fast_food": {"matches": {"anyTags": {"amenity": {"parking": true, "toilets": true}, "service": "drive-through"}, "allowOtherTags": false}}, - "subfeatures/gas_station": {"matches": {"any": [{"allTags": {"amenity": {"vending_machine": true}, "vending": {"fuel": true}}}, {"anyTags": {"amenity": {"car_wash": true, "compressed_air": true}, "building": {"roof": true}, "highway": {"street_lamp": true}, "man_made": {"storage_tank": true}, "shop": {"convenience": true, "car_repair": true}}, "allowOtherTags": false}]}}, - "subfeatures/golf_course": {"matches": {"anyTags": {"golf": true, "sport": "golf"}}}, - "subfeatures/mall": {"matches": {"anyTags": {"amenity": {"drinking_water": true, "fast_food": true, "food_court": true, "parking": true, "restaurant": true, "toilets": true}, "clothes": {"underwear": true}, "highway": {"corridor": true}, "shop": {"clothes": true, "cosmetics": true, "department_store": true, "electronics": true, "optician": true, "jewelry": true, "massage": true, "mobile_phone": true, "perfumery": true, "shoes": true, "toys": true}, "tourism": {"information": true}}, "allowOtherTags": false}}, - "subfeatures/marina": {"matches": {"anyTags": {"amenity": {"boat_rental": true, "toilets": true}, "highway": {"service": true, "street_lamp": true}, "leisure": {"fishing": true, "slipway": true}, "man_made": {"breakwater": true, "pier": true}, "seamark:type": {"mooring": true}, "shop": {"fishing": true}, "waterway": {"boatyard": true, "dock": true, "fuel": true, "sanitary_dump_station": true, "water_point": true}}, "allowOtherTags": false}}, - "subfeatures/park": {"matches": {"anyTags": {"amenity": {"bbq": true, "bench": true, "drinking_water": true, "fountain": true, "toilets": true, "waste_basket": true}, "information": {"board": true}, "leisure": {"playground": true, "firepit": true, "dog_park": true, "picnic_table": true}, "natural": {"tree": true}, "highway": {"footway": true, "path": true, "service": true, "street_lamp": true}, "tourism": {"information": true, "picnic_site": true}}, "allowOtherTags": false}}, - "subfeatures/parking": {"matches": {"anyTags": {"highway": {"service": true, "street_lamp": true}, "service": {"parking_aisle": true}, "traffic_calming": {"bump": true, "island": true}, "vending": {"parking_tickets": true}}}}, - "subfeatures/playground": {"matches": {"anyTags": {"amenity": {"bench": true}, "playground": true}}}, - "subfeatures/post_office": {"matches": {"anyTags": {"amenity": {"post_box": true}, "vending": {"stamps": true, "parcel_pickup": true}}}}, - "subfeatures/power": {"matches": {"anyTags": {"power": {"line": true, "minor_line": true, "pole": true, "tower": true, "transformer": true}}}}, - "subfeatures/residence": {"matches": {"anyTags": {"barrier": {"fence": true}, "building": {"garage": true}, "footway": {"sidewalk": true}, "highway": {"footway": true, "residential": true, "service": true, "street_lamp": true}, "leisure": {"swimming_pool": true}, "natural": {"tree": true}, "service": {"alley": true, "driveway": true}}, "allowOtherTags": false}}, - "subfeatures/school": {"matches": {"anyTags": {"amenity": {"bench": true, "waste_basket": true}, "building": {"school": true}, "highway": {"service": true, "street_lamp": true}, "leisure": {"pitch": true, "picnic_table": true, "playground": true}, "man_made": {"flagpole": true}, "natural": {"tree": true}, "sport": {"american_football": true, "baseball": true, "basketball": true, "cricket": true, "field_hockey": true, "running": true, "soccer": true, "softball": true, "tennis": true}}, "allowOtherTags": false}}, - "subfeatures/subway": {"matches": {"any": [{"anyTags": {"highway": {"elevator": true, "steps": true}, "railway": {"subway": true, "subway_entrance": true}, "surveillance:type": "camera", "vending": {"public_transport_tickets": true}}}, {"allTags": {"subway": "yes", "public_transport": {"platform": true, "station": true, "stop_position": true}}}]}}, - "subfeatures/theme_park": {"matches": {"anyTags": {"amenity": {"bench": true, "drinking_water": true, "fast_food": true, "theatre": true, "toilets": true}, "attraction": true, "emergency": {"defibrillator": true, "first_aid_kit": true}, "highway": {"footway": true}, "leisure": {"amusement_arcade": true, "miniature_golf": true}, "shop": {"gift": true, "ticket": true}, "tourism": {"information": true}}, "allowOtherTags": false}}, - "subfeatures/water_park": {"matches": {"anyTags": {"amenity": {"dressing_room": true, "shower": true, "toilets": true}, "attraction": {"water_slide": true}, "leisure": {"swimming_pool": true}}, "allowOtherTags": false}}, "toggleable/aerialways": {"name": "Aerial Features", "description": "Chair Lifts, Gondolas, Zip Lines, etc.", "toggleable": true, "matches": {"allTags": {"aerialway": {"*": true, "no": false, "yes": false, "station": false}}}}, "toggleable/boundaries": {"name": "Boundaries", "description": "Administrative Boundaries", "toggleable": {"hiddenByDefault": true}, "matches": {"geometry": ["line", "area", "relation"], "allTags": {"boundary": {"*": true, "no": false}}, "groups": {"toggleable/traffic_roads": false, "toggleable/service_roads": false, "toggleable/paths": false, "toggleable/water": false, "toggleable/pistes": false, "toggleable/railway": false, "toggleable/landuse": false, "toggleable/building": false, "toggleable/power": false}}}, "toggleable/building_parts": {"name": "Building Parts", "description": "3D Building and Roof Components", "toggleable": true, "matches": {"allTags": {"building:part": {"*": true, "no": false}}}}, @@ -35,25 +15,25 @@ "toggleable/service_roads": {"name": "Service Roads", "description": "Driveways, Parking Aisles, Tracks, etc.", "toggleable": true, "matches": {"geometry": "line", "allTags": {"highway": {"service": true, "road": true, "track": true}}}}, "toggleable/traffic_roads": {"name": "Traffic Roads", "description": "Highways, Streets, etc.", "toggleable": true, "matches": {"geometry": "line", "allTags": {"highway": {"motorway": true, "motorway_link": true, "trunk": true, "trunk_link": true, "primary": true, "primary_link": true, "secondary": true, "secondary_link": true, "tertiary": true, "tertiary_link": true, "residential": true, "unclassified": true, "living_street": true}}}}, "toggleable/water": {"name": "Water Features", "description": "Rivers, Lakes, Ponds, Basins, etc.", "toggleable": true, "matches": {"anyTags": {"waterway": {"*": true, "no": false}, "natural": {"water": true, "coastline": true, "bay": true}, "landuse": {"pond": true, "basin": true, "reservoir": true, "salt_pond": true}}}}, - "zones/airport": {"subfeatures": "subfeatures/airport", "matches": {"anyTags": {"aeroway": "aerodrome"}}}, - "zones/bank": {"subfeatures": "subfeatures/bank", "matches": {"anyTags": {"amenity": "bank"}}}, - "zones/bus_stop": {"subfeatures": "subfeatures/bus_stop", "matches": {"allTags": {"bus": "yes", "public_transport": {"platform": true, "stop_area": true, "stop_position": true}}}}, - "zones/campground": {"subfeatures": "subfeatures/campground", "matches": {"anyTags": {"tourism": {"camp_site": true, "caravan_site": true}}}}, - "zones/farm": {"subfeatures": "subfeatures/farm", "matches": {"anyTags": {"landuse": {"farmland": true, "orchard": true}}}}, - "zones/fast_food": {"subfeatures": "subfeatures/fast_food", "matches": {"anyTags": {"amenity": "fast_food"}}}, - "zones/gas_station": {"subfeatures": "subfeatures/gas_station", "matches": {"anyTags": {"amenity": "fuel"}}}, - "zones/golf_course": {"subfeatures": "subfeatures/golf_course", "matches": {"anyTags": {"leisure": "golf_course"}}}, - "zones/mall": {"subfeatures": "subfeatures/mall", "matches": {"anyTags": {"shop": "mall"}}}, - "zones/marina": {"subfeatures": "subfeatures/marina", "matches": {"anyTags": {"leisure": "marina"}}}, - "zones/park": {"subfeatures": "subfeatures/park", "matches": {"anyTags": {"leisure": "park"}}}, - "zones/parking": {"subfeatures": "subfeatures/parking", "matches": {"anyTags": {"amenity": "parking"}}}, - "zones/playground": {"subfeatures": "subfeatures/playground", "matches": {"anyTags": {"leisure": "playground"}}}, - "zones/post_office": {"subfeatures": "subfeatures/post_office", "matches": {"anyTags": {"amenity": "post_office"}}}, - "zones/power": {"subfeatures": "subfeatures/power", "matches": {"anyTags": {"power": {"plant": true, "substation": true}}}}, - "zones/residence": {"subfeatures": "subfeatures/residence", "matches": {"anyTags": {"building": {"detached": true, "house": true, "semidetached_house": true, "static_caravan": true}}}}, - "zones/school": {"subfeatures": "subfeatures/school", "matches": {"anyTags": {"amenity": "school"}}}, - "zones/subway": {"subfeatures": "subfeatures/subway", "matches": {"allTags": {"subway": "yes", "public_transport": {"platform": true, "station": true, "stop_area": true, "stop_position": true}}}}, - "zones/theme_park": {"subfeatures": "subfeatures/theme_park", "matches": {"anyTags": {"tourism": "theme_park"}}}, - "zones/water_park": {"subfeatures": "subfeatures/water_park", "matches": {"anyTags": {"leisure": "water_park"}}} + "zones/airport": {"matches": {"anyTags": {"aeroway": "aerodrome"}}, "nearby": {"anyTags": {"aeroway": "*", "amenity": {"police": true}, "building": {"hangar": true}, "highway": {"service": true}, "surveillance:type": "camera", "tourism": {"hotel": true}}}}, + "zones/bank": {"matches": {"anyTags": {"amenity": "bank"}}, "nearby": {"anyTags": {"amenity": {"atm": true}, "service": "drive-through", "surveillance:type": "camera"}}}, + "zones/bus_stop": {"matches": {"allTags": {"bus": "yes", "public_transport": {"platform": true, "stop_area": true, "stop_position": true}}}, "nearby": {"any": [{"anyTags": {"amenity": {"bench": true}, "footway": "sidewalk", "information": {"board": true}, "shelter_type": "public_transport", "vending": "public_transport_tickets"}}, {"allTags": {"bus": "yes", "public_transport": {"platform": true, "stop_position": true}}}]}}, + "zones/campground": {"matches": {"anyTags": {"tourism": {"camp_site": true, "caravan_site": true}}}, "nearby": {"anyTags": {"amenity": {"bbq": true, "bench": true, "drinking_water": true, "sanitary_dump_station": true, "shower": true, "toilets": true, "water_point": true, "waste_basket": true}, "highway": {"service": true, "street_lamp": true}, "leisure": {"playground": true, "firepit": true, "picnic_table": true}, "tourism": {"camp_pitch": true}}, "allowOtherTags": false}}, + "zones/farm": {"matches": {"anyTags": {"landuse": {"farmland": true, "orchard": true}}}, "nearby": {"anyTags": {"building": {"barn": true, "farm": true, "farm_auxiliary": true}, "highway": {"service": true, "track": true}, "landuse": {"farmyard": true}, "man_made": {"beehive": true, "silo": true}, "shop": {"farm": true}, "water": {"pond": true}}}}, + "zones/fast_food": {"matches": {"anyTags": {"amenity": "fast_food"}}, "nearby": {"anyTags": {"amenity": {"parking": true, "toilets": true}, "service": "drive-through"}, "allowOtherTags": false}}, + "zones/gas_station": {"matches": {"anyTags": {"amenity": "fuel"}}, "nearby": {"any": [{"allTags": {"amenity": {"vending_machine": true}, "vending": {"fuel": true}}}, {"anyTags": {"amenity": {"car_wash": true, "compressed_air": true}, "building": {"roof": true}, "highway": {"street_lamp": true}, "man_made": {"storage_tank": true}, "shop": {"convenience": true, "car_repair": true}}, "allowOtherTags": false}]}}, + "zones/golf_course": {"matches": {"anyTags": {"leisure": "golf_course"}}, "nearby": {"anyTags": {"golf": true, "sport": "golf"}}}, + "zones/mall": {"matches": {"anyTags": {"shop": "mall"}}, "nearby": {"anyTags": {"amenity": {"drinking_water": true, "fast_food": true, "food_court": true, "parking": true, "restaurant": true, "toilets": true}, "clothes": {"underwear": true}, "highway": {"corridor": true}, "shop": {"clothes": true, "cosmetics": true, "department_store": true, "electronics": true, "optician": true, "jewelry": true, "massage": true, "mobile_phone": true, "perfumery": true, "shoes": true, "toys": true}, "tourism": {"information": true}}, "allowOtherTags": false}}, + "zones/marina": {"matches": {"anyTags": {"leisure": "marina"}}, "nearby": {"anyTags": {"amenity": {"boat_rental": true, "toilets": true}, "highway": {"service": true, "street_lamp": true}, "leisure": {"fishing": true, "slipway": true}, "man_made": {"breakwater": true, "pier": true}, "seamark:type": {"mooring": true}, "shop": {"fishing": true}, "waterway": {"boatyard": true, "dock": true, "fuel": true, "sanitary_dump_station": true, "water_point": true}}, "allowOtherTags": false}}, + "zones/park": {"matches": {"anyTags": {"leisure": "park"}}, "nearby": {"anyTags": {"amenity": {"bbq": true, "bench": true, "drinking_water": true, "fountain": true, "toilets": true, "waste_basket": true}, "information": {"board": true}, "leisure": {"playground": true, "firepit": true, "dog_park": true, "picnic_table": true}, "natural": {"tree": true}, "highway": {"footway": true, "path": true, "service": true, "street_lamp": true}, "tourism": {"information": true, "picnic_site": true}}, "allowOtherTags": false}}, + "zones/parking": {"matches": {"anyTags": {"amenity": "parking"}}, "nearby": {"anyTags": {"highway": {"service": true, "street_lamp": true}, "service": {"parking_aisle": true}, "traffic_calming": {"bump": true, "island": true}, "vending": {"parking_tickets": true}}}}, + "zones/playground": {"matches": {"anyTags": {"leisure": "playground"}}, "nearby": {"anyTags": {"amenity": {"bench": true}, "playground": true}}}, + "zones/post_office": {"matches": {"anyTags": {"amenity": "post_office"}}, "nearby": {"anyTags": {"amenity": {"post_box": true}, "vending": {"stamps": true, "parcel_pickup": true}}}}, + "zones/power": {"matches": {"anyTags": {"power": {"plant": true, "substation": true}}}, "nearby": {"anyTags": {"power": {"line": true, "minor_line": true, "pole": true, "tower": true, "transformer": true}}}}, + "zones/residence": {"matches": {"anyTags": {"building": {"detached": true, "house": true, "semidetached_house": true, "static_caravan": true}}}, "nearby": {"anyTags": {"barrier": {"fence": true}, "building": {"garage": true}, "footway": {"sidewalk": true}, "highway": {"footway": true, "residential": true, "service": true, "street_lamp": true}, "leisure": {"swimming_pool": true}, "natural": {"tree": true}, "service": {"alley": true, "driveway": true}}, "allowOtherTags": false}}, + "zones/school": {"matches": {"anyTags": {"amenity": "school"}}, "nearby": {"anyTags": {"amenity": {"bench": true, "waste_basket": true}, "building": {"school": true}, "highway": {"service": true, "street_lamp": true}, "leisure": {"pitch": true, "picnic_table": true, "playground": true}, "man_made": {"flagpole": true}, "natural": {"tree": true}, "sport": {"american_football": true, "baseball": true, "basketball": true, "cricket": true, "field_hockey": true, "running": true, "soccer": true, "softball": true, "tennis": true}}, "allowOtherTags": false}}, + "zones/subway": {"matches": {"allTags": {"subway": "yes", "public_transport": {"platform": true, "station": true, "stop_area": true, "stop_position": true}}}, "nearby": {"any": [{"anyTags": {"highway": {"elevator": true, "steps": true}, "railway": {"subway": true, "subway_entrance": true}, "surveillance:type": "camera", "vending": {"public_transport_tickets": true}}}, {"allTags": {"subway": "yes", "public_transport": {"platform": true, "station": true, "stop_position": true}}}]}}, + "zones/theme_park": {"matches": {"anyTags": {"tourism": "theme_park"}}, "nearby": {"anyTags": {"amenity": {"bench": true, "drinking_water": true, "fast_food": true, "theatre": true, "toilets": true}, "attraction": true, "emergency": {"defibrillator": true, "first_aid_kit": true}, "highway": {"footway": true}, "leisure": {"amusement_arcade": true, "miniature_golf": true}, "shop": {"gift": true, "ticket": true}, "tourism": {"information": true}}, "allowOtherTags": false}}, + "zones/water_park": {"matches": {"anyTags": {"leisure": "water_park"}}, "nearby": {"anyTags": {"amenity": {"dressing_room": true, "shower": true, "toilets": true}, "attraction": {"water_slide": true}, "leisure": {"swimming_pool": true}}, "allowOtherTags": false}} } } \ No newline at end of file diff --git a/data/presets/groups/subfeatures/airport.json b/data/presets/groups/subfeatures/airport.json deleted file mode 100644 index 41c2298956..0000000000 --- a/data/presets/groups/subfeatures/airport.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "matches": { - "anyTags": { - "aeroway": "*", - "amenity": { - "police": true - }, - "building": { - "hangar": true - }, - "highway": { - "service": true - }, - "surveillance:type": "camera", - "tourism": { - "hotel": true - } - } - } -} diff --git a/data/presets/groups/subfeatures/bank.json b/data/presets/groups/subfeatures/bank.json deleted file mode 100644 index 9bd10bc4db..0000000000 --- a/data/presets/groups/subfeatures/bank.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "matches": { - "anyTags": { - "amenity": { - "atm": true - }, - "service": "drive-through", - "surveillance:type": "camera" - } - } -} diff --git a/data/presets/groups/subfeatures/bus_stop.json b/data/presets/groups/subfeatures/bus_stop.json deleted file mode 100644 index f042ed4561..0000000000 --- a/data/presets/groups/subfeatures/bus_stop.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "matches": { - "any": [ - { - "anyTags": { - "amenity": { - "bench": true - }, - "footway": "sidewalk", - "information": { - "board": true - }, - "shelter_type": "public_transport", - "vending": "public_transport_tickets" - } - }, - { - "allTags": { - "bus": "yes", - "public_transport": { - "platform": true, - "stop_position": true - } - } - } - ] - } -} diff --git a/data/presets/groups/subfeatures/campground.json b/data/presets/groups/subfeatures/campground.json deleted file mode 100644 index 2e3b49db1b..0000000000 --- a/data/presets/groups/subfeatures/campground.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "matches": { - "anyTags": { - "amenity": { - "bbq": true, - "bench": true, - "drinking_water": true, - "sanitary_dump_station": true, - "shower": true, - "toilets": true, - "water_point": true, - "waste_basket": true - }, - "highway": { - "service": true, - "street_lamp": true - }, - "leisure": { - "playground": true, - "firepit": true, - "picnic_table": true - }, - "tourism": { - "camp_pitch": true - } - }, - "allowOtherTags": false - } -} diff --git a/data/presets/groups/subfeatures/farm.json b/data/presets/groups/subfeatures/farm.json deleted file mode 100644 index 6dce4adf6f..0000000000 --- a/data/presets/groups/subfeatures/farm.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "matches": { - "anyTags": { - "building": { - "barn": true, - "farm": true, - "farm_auxiliary": true - }, - "highway": { - "service": true, - "track": true - }, - "landuse": { - "farmyard": true - }, - "man_made": { - "beehive": true, - "silo": true - }, - "shop": { - "farm": true - }, - "water": { - "pond": true - } - } - } -} diff --git a/data/presets/groups/subfeatures/fast_food.json b/data/presets/groups/subfeatures/fast_food.json deleted file mode 100644 index 304ac43876..0000000000 --- a/data/presets/groups/subfeatures/fast_food.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "matches": { - "anyTags": { - "amenity": { - "parking": true, - "toilets": true - }, - "service": "drive-through" - }, - "allowOtherTags": false - } -} diff --git a/data/presets/groups/subfeatures/gas_station.json b/data/presets/groups/subfeatures/gas_station.json deleted file mode 100644 index 9bcf04f71d..0000000000 --- a/data/presets/groups/subfeatures/gas_station.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "matches": { - "any": [ - { - "allTags": { - "amenity": { - "vending_machine": true - }, - "vending": { - "fuel": true - } - } - }, - { - "anyTags": { - "amenity": { - "car_wash": true, - "compressed_air": true - }, - "building": { - "roof": true - }, - "highway": { - "street_lamp": true - }, - "man_made": { - "storage_tank": true - }, - "shop": { - "convenience": true, - "car_repair": true - } - }, - "allowOtherTags": false - } - ] - } -} diff --git a/data/presets/groups/subfeatures/golf_course.json b/data/presets/groups/subfeatures/golf_course.json deleted file mode 100644 index 239ad1e14c..0000000000 --- a/data/presets/groups/subfeatures/golf_course.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "matches": { - "anyTags": { - "golf": true, - "sport": "golf" - } - } -} diff --git a/data/presets/groups/subfeatures/mall.json b/data/presets/groups/subfeatures/mall.json deleted file mode 100644 index d8738ac4cb..0000000000 --- a/data/presets/groups/subfeatures/mall.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "matches": { - "anyTags": { - "amenity": { - "drinking_water": true, - "fast_food": true, - "food_court": true, - "parking": true, - "restaurant": true, - "toilets": true - }, - "clothes": { - "underwear": true - }, - "highway": { - "corridor": true - }, - "shop": { - "clothes": true, - "cosmetics": true, - "department_store": true, - "electronics": true, - "optician": true, - "jewelry": true, - "massage": true, - "mobile_phone": true, - "perfumery": true, - "shoes": true, - "toys": true - }, - "tourism": { - "information": true - } - }, - "allowOtherTags": false - } -} diff --git a/data/presets/groups/subfeatures/marina.json b/data/presets/groups/subfeatures/marina.json deleted file mode 100644 index 3dc935ce78..0000000000 --- a/data/presets/groups/subfeatures/marina.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "matches": { - "anyTags": { - "amenity": { - "boat_rental": true, - "toilets": true - }, - "highway": { - "service": true, - "street_lamp": true - }, - "leisure": { - "fishing": true, - "slipway": true - }, - "man_made": { - "breakwater": true, - "pier": true - }, - "seamark:type": { - "mooring": true - }, - "shop": { - "fishing": true - }, - "waterway": { - "boatyard": true, - "dock": true, - "fuel": true, - "sanitary_dump_station": true, - "water_point": true - } - }, - "allowOtherTags": false - } -} diff --git a/data/presets/groups/subfeatures/park.json b/data/presets/groups/subfeatures/park.json deleted file mode 100644 index 8aba7aca83..0000000000 --- a/data/presets/groups/subfeatures/park.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "matches": { - "anyTags": { - "amenity": { - "bbq": true, - "bench": true, - "drinking_water": true, - "fountain": true, - "toilets": true, - "waste_basket": true - }, - "information": { - "board": true - }, - "leisure": { - "playground": true, - "firepit": true, - "dog_park": true, - "picnic_table": true - }, - "natural": { - "tree": true - }, - "highway": { - "footway": true, - "path": true, - "service": true, - "street_lamp": true - }, - "tourism": { - "information": true, - "picnic_site": true - } - }, - "allowOtherTags": false - } -} diff --git a/data/presets/groups/subfeatures/parking.json b/data/presets/groups/subfeatures/parking.json deleted file mode 100644 index 581ad9e657..0000000000 --- a/data/presets/groups/subfeatures/parking.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "matches": { - "anyTags": { - "highway": { - "service": true, - "street_lamp": true - }, - "service": { - "parking_aisle": true - }, - "traffic_calming": { - "bump": true, - "island": true - }, - "vending": { - "parking_tickets": true - } - } - } -} diff --git a/data/presets/groups/subfeatures/playground.json b/data/presets/groups/subfeatures/playground.json deleted file mode 100644 index 0c52665abb..0000000000 --- a/data/presets/groups/subfeatures/playground.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "matches": { - "anyTags": { - "amenity": { - "bench": true - }, - "playground": true - } - } -} diff --git a/data/presets/groups/subfeatures/post_office.json b/data/presets/groups/subfeatures/post_office.json deleted file mode 100644 index fc598b8e11..0000000000 --- a/data/presets/groups/subfeatures/post_office.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "matches": { - "anyTags": { - "amenity": { - "post_box": true - }, - "vending": { - "stamps": true, - "parcel_pickup": true - } - } - } -} diff --git a/data/presets/groups/subfeatures/power.json b/data/presets/groups/subfeatures/power.json deleted file mode 100644 index c21de961f0..0000000000 --- a/data/presets/groups/subfeatures/power.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "matches": { - "anyTags": { - "power": { - "line": true, - "minor_line": true, - "pole": true, - "tower": true, - "transformer": true - } - } - } -} diff --git a/data/presets/groups/subfeatures/residence.json b/data/presets/groups/subfeatures/residence.json deleted file mode 100644 index 04b70ab706..0000000000 --- a/data/presets/groups/subfeatures/residence.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "matches": { - "anyTags": { - "barrier": { - "fence": true - }, - "building": { - "garage": true - }, - "footway": { - "sidewalk": true - }, - "highway": { - "footway": true, - "residential": true, - "service": true, - "street_lamp": true - }, - "leisure": { - "swimming_pool": true - }, - "natural": { - "tree": true - }, - "service": { - "alley": true, - "driveway": true - } - }, - "allowOtherTags": false - } -} diff --git a/data/presets/groups/subfeatures/school.json b/data/presets/groups/subfeatures/school.json deleted file mode 100644 index 88cac30e84..0000000000 --- a/data/presets/groups/subfeatures/school.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "matches": { - "anyTags": { - "amenity": { - "bench": true, - "waste_basket": true - }, - "building": { - "school": true - }, - "highway": { - "service": true, - "street_lamp": true - }, - "leisure": { - "pitch": true, - "picnic_table": true, - "playground": true - }, - "man_made": { - "flagpole": true - }, - "natural": { - "tree": true - }, - "sport": { - "american_football": true, - "baseball": true, - "basketball": true, - "cricket": true, - "field_hockey": true, - "running": true, - "soccer": true, - "softball": true, - "tennis": true - } - }, - "allowOtherTags": false - } -} diff --git a/data/presets/groups/subfeatures/subway.json b/data/presets/groups/subfeatures/subway.json deleted file mode 100644 index f1b92e4977..0000000000 --- a/data/presets/groups/subfeatures/subway.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "matches": { - "any": [ - { - "anyTags": { - "highway": { - "elevator": true, - "steps": true - }, - "railway": { - "subway": true, - "subway_entrance": true - }, - "surveillance:type": "camera", - "vending": { - "public_transport_tickets": true - } - } - }, - { - "allTags": { - "subway": "yes", - "public_transport": { - "platform": true, - "station": true, - "stop_position": true - } - } - } - ] - } -} diff --git a/data/presets/groups/subfeatures/theme_park.json b/data/presets/groups/subfeatures/theme_park.json deleted file mode 100644 index eac8604da6..0000000000 --- a/data/presets/groups/subfeatures/theme_park.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "matches": { - "anyTags": { - "amenity": { - "bench": true, - "drinking_water": true, - "fast_food": true, - "theatre": true, - "toilets": true - }, - "attraction": true, - "emergency": { - "defibrillator": true, - "first_aid_kit": true - }, - "highway": { - "footway": true - }, - "leisure": { - "amusement_arcade": true, - "miniature_golf": true - }, - "shop": { - "gift": true, - "ticket": true - }, - "tourism": { - "information": true - } - }, - "allowOtherTags": false - } -} diff --git a/data/presets/groups/subfeatures/water_park.json b/data/presets/groups/subfeatures/water_park.json deleted file mode 100644 index 6ee62097b2..0000000000 --- a/data/presets/groups/subfeatures/water_park.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "matches": { - "anyTags": { - "amenity": { - "dressing_room": true, - "shower": true, - "toilets": true - }, - "attraction": { - "water_slide": true - }, - "leisure": { - "swimming_pool": true - } - }, - "allowOtherTags": false - } -} diff --git a/data/presets/groups/zones/airport.json b/data/presets/groups/zones/airport.json index aa916fcf96..9245b43d6d 100644 --- a/data/presets/groups/zones/airport.json +++ b/data/presets/groups/zones/airport.json @@ -1,8 +1,25 @@ { - "subfeatures": "subfeatures/airport", "matches": { "anyTags": { "aeroway": "aerodrome" } + }, + "nearby": { + "anyTags": { + "aeroway": "*", + "amenity": { + "police": true + }, + "building": { + "hangar": true + }, + "highway": { + "service": true + }, + "surveillance:type": "camera", + "tourism": { + "hotel": true + } + } } } diff --git a/data/presets/groups/zones/bank.json b/data/presets/groups/zones/bank.json index fe83d663db..49a2ea0be1 100644 --- a/data/presets/groups/zones/bank.json +++ b/data/presets/groups/zones/bank.json @@ -1,8 +1,16 @@ { - "subfeatures": "subfeatures/bank", "matches": { "anyTags": { "amenity": "bank" } + }, + "nearby": { + "anyTags": { + "amenity": { + "atm": true + }, + "service": "drive-through", + "surveillance:type": "camera" + } } } diff --git a/data/presets/groups/zones/bus_stop.json b/data/presets/groups/zones/bus_stop.json index 70a4483b83..6380c4ef67 100644 --- a/data/presets/groups/zones/bus_stop.json +++ b/data/presets/groups/zones/bus_stop.json @@ -1,5 +1,4 @@ { - "subfeatures": "subfeatures/bus_stop", "matches": { "allTags": { "bus": "yes", @@ -9,5 +8,31 @@ "stop_position": true } } + }, + "nearby": { + "any": [ + { + "anyTags": { + "amenity": { + "bench": true + }, + "footway": "sidewalk", + "information": { + "board": true + }, + "shelter_type": "public_transport", + "vending": "public_transport_tickets" + } + }, + { + "allTags": { + "bus": "yes", + "public_transport": { + "platform": true, + "stop_position": true + } + } + } + ] } } diff --git a/data/presets/groups/zones/campground.json b/data/presets/groups/zones/campground.json index 839b3c7696..d9b5273601 100644 --- a/data/presets/groups/zones/campground.json +++ b/data/presets/groups/zones/campground.json @@ -1,5 +1,4 @@ { - "subfeatures": "subfeatures/campground", "matches": { "anyTags": { "tourism": { @@ -7,5 +6,32 @@ "caravan_site": true } } + }, + "nearby": { + "anyTags": { + "amenity": { + "bbq": true, + "bench": true, + "drinking_water": true, + "sanitary_dump_station": true, + "shower": true, + "toilets": true, + "water_point": true, + "waste_basket": true + }, + "highway": { + "service": true, + "street_lamp": true + }, + "leisure": { + "playground": true, + "firepit": true, + "picnic_table": true + }, + "tourism": { + "camp_pitch": true + } + }, + "allowOtherTags": false } } diff --git a/data/presets/groups/zones/farm.json b/data/presets/groups/zones/farm.json index 922e00728f..dd8eec308d 100644 --- a/data/presets/groups/zones/farm.json +++ b/data/presets/groups/zones/farm.json @@ -1,5 +1,4 @@ { - "subfeatures": "subfeatures/farm", "matches": { "anyTags": { "landuse": { @@ -7,5 +6,31 @@ "orchard": true } } + }, + "nearby": { + "anyTags": { + "building": { + "barn": true, + "farm": true, + "farm_auxiliary": true + }, + "highway": { + "service": true, + "track": true + }, + "landuse": { + "farmyard": true + }, + "man_made": { + "beehive": true, + "silo": true + }, + "shop": { + "farm": true + }, + "water": { + "pond": true + } + } } } diff --git a/data/presets/groups/zones/fast_food.json b/data/presets/groups/zones/fast_food.json index 0636a3dd7f..5e9213c2dd 100644 --- a/data/presets/groups/zones/fast_food.json +++ b/data/presets/groups/zones/fast_food.json @@ -1,8 +1,17 @@ { - "subfeatures": "subfeatures/fast_food", "matches": { "anyTags": { "amenity": "fast_food" } + }, + "nearby": { + "anyTags": { + "amenity": { + "parking": true, + "toilets": true + }, + "service": "drive-through" + }, + "allowOtherTags": false } } diff --git a/data/presets/groups/zones/gas_station.json b/data/presets/groups/zones/gas_station.json index d345413299..3bda128821 100644 --- a/data/presets/groups/zones/gas_station.json +++ b/data/presets/groups/zones/gas_station.json @@ -1,8 +1,43 @@ { - "subfeatures": "subfeatures/gas_station", "matches": { "anyTags": { "amenity": "fuel" } + }, + "nearby": { + "any": [ + { + "allTags": { + "amenity": { + "vending_machine": true + }, + "vending": { + "fuel": true + } + } + }, + { + "anyTags": { + "amenity": { + "car_wash": true, + "compressed_air": true + }, + "building": { + "roof": true + }, + "highway": { + "street_lamp": true + }, + "man_made": { + "storage_tank": true + }, + "shop": { + "convenience": true, + "car_repair": true + } + }, + "allowOtherTags": false + } + ] } } diff --git a/data/presets/groups/zones/golf_course.json b/data/presets/groups/zones/golf_course.json index e1d85a4c3b..7eb39826e0 100644 --- a/data/presets/groups/zones/golf_course.json +++ b/data/presets/groups/zones/golf_course.json @@ -1,8 +1,13 @@ { - "subfeatures": "subfeatures/golf_course", "matches": { "anyTags": { "leisure": "golf_course" } + }, + "nearby": { + "anyTags": { + "golf": true, + "sport": "golf" + } } } diff --git a/data/presets/groups/zones/mall.json b/data/presets/groups/zones/mall.json index cc711ea367..f58247e8fb 100644 --- a/data/presets/groups/zones/mall.json +++ b/data/presets/groups/zones/mall.json @@ -1,8 +1,42 @@ { - "subfeatures": "subfeatures/mall", "matches": { "anyTags": { "shop": "mall" } + }, + "nearby": { + "anyTags": { + "amenity": { + "drinking_water": true, + "fast_food": true, + "food_court": true, + "parking": true, + "restaurant": true, + "toilets": true + }, + "clothes": { + "underwear": true + }, + "highway": { + "corridor": true + }, + "shop": { + "clothes": true, + "cosmetics": true, + "department_store": true, + "electronics": true, + "optician": true, + "jewelry": true, + "massage": true, + "mobile_phone": true, + "perfumery": true, + "shoes": true, + "toys": true + }, + "tourism": { + "information": true + } + }, + "allowOtherTags": false } } diff --git a/data/presets/groups/zones/marina.json b/data/presets/groups/zones/marina.json index 885a32b157..63864a69d1 100644 --- a/data/presets/groups/zones/marina.json +++ b/data/presets/groups/zones/marina.json @@ -1,8 +1,41 @@ { - "subfeatures": "subfeatures/marina", "matches": { "anyTags": { "leisure": "marina" } + }, + "nearby": { + "anyTags": { + "amenity": { + "boat_rental": true, + "toilets": true + }, + "highway": { + "service": true, + "street_lamp": true + }, + "leisure": { + "fishing": true, + "slipway": true + }, + "man_made": { + "breakwater": true, + "pier": true + }, + "seamark:type": { + "mooring": true + }, + "shop": { + "fishing": true + }, + "waterway": { + "boatyard": true, + "dock": true, + "fuel": true, + "sanitary_dump_station": true, + "water_point": true + } + }, + "allowOtherTags": false } } diff --git a/data/presets/groups/zones/park.json b/data/presets/groups/zones/park.json index 0cb9a855a2..566896244b 100644 --- a/data/presets/groups/zones/park.json +++ b/data/presets/groups/zones/park.json @@ -1,8 +1,42 @@ { - "subfeatures": "subfeatures/park", "matches": { "anyTags": { "leisure": "park" } + }, + "nearby": { + "anyTags": { + "amenity": { + "bbq": true, + "bench": true, + "drinking_water": true, + "fountain": true, + "toilets": true, + "waste_basket": true + }, + "information": { + "board": true + }, + "leisure": { + "playground": true, + "firepit": true, + "dog_park": true, + "picnic_table": true + }, + "natural": { + "tree": true + }, + "highway": { + "footway": true, + "path": true, + "service": true, + "street_lamp": true + }, + "tourism": { + "information": true, + "picnic_site": true + } + }, + "allowOtherTags": false } } diff --git a/data/presets/groups/zones/parking.json b/data/presets/groups/zones/parking.json index 0613100fb8..eda7f65c65 100644 --- a/data/presets/groups/zones/parking.json +++ b/data/presets/groups/zones/parking.json @@ -1,8 +1,25 @@ { - "subfeatures": "subfeatures/parking", "matches": { "anyTags": { "amenity": "parking" } + }, + "nearby": { + "anyTags": { + "highway": { + "service": true, + "street_lamp": true + }, + "service": { + "parking_aisle": true + }, + "traffic_calming": { + "bump": true, + "island": true + }, + "vending": { + "parking_tickets": true + } + } } } diff --git a/data/presets/groups/zones/playground.json b/data/presets/groups/zones/playground.json index f3f72ca318..adfcea2a05 100644 --- a/data/presets/groups/zones/playground.json +++ b/data/presets/groups/zones/playground.json @@ -1,8 +1,15 @@ { - "subfeatures": "subfeatures/playground", "matches": { "anyTags": { "leisure": "playground" } + }, + "nearby": { + "anyTags": { + "amenity": { + "bench": true + }, + "playground": true + } } } diff --git a/data/presets/groups/zones/post_office.json b/data/presets/groups/zones/post_office.json index 5e617e73b0..e650d6505f 100644 --- a/data/presets/groups/zones/post_office.json +++ b/data/presets/groups/zones/post_office.json @@ -1,8 +1,18 @@ { - "subfeatures": "subfeatures/post_office", "matches": { "anyTags": { "amenity": "post_office" } + }, + "nearby": { + "anyTags": { + "amenity": { + "post_box": true + }, + "vending": { + "stamps": true, + "parcel_pickup": true + } + } } } diff --git a/data/presets/groups/zones/power.json b/data/presets/groups/zones/power.json index fd8ca85a83..6656939481 100644 --- a/data/presets/groups/zones/power.json +++ b/data/presets/groups/zones/power.json @@ -1,5 +1,4 @@ { - "subfeatures": "subfeatures/power", "matches": { "anyTags": { "power": { @@ -7,5 +6,16 @@ "substation": true } } + }, + "nearby": { + "anyTags": { + "power": { + "line": true, + "minor_line": true, + "pole": true, + "tower": true, + "transformer": true + } + } } } diff --git a/data/presets/groups/zones/residence.json b/data/presets/groups/zones/residence.json index 4b99ba031c..5e893ad537 100644 --- a/data/presets/groups/zones/residence.json +++ b/data/presets/groups/zones/residence.json @@ -1,5 +1,4 @@ { - "subfeatures": "subfeatures/residence", "matches": { "anyTags": { "building": { @@ -9,5 +8,35 @@ "static_caravan": true } } + }, + "nearby": { + "anyTags": { + "barrier": { + "fence": true + }, + "building": { + "garage": true + }, + "footway": { + "sidewalk": true + }, + "highway": { + "footway": true, + "residential": true, + "service": true, + "street_lamp": true + }, + "leisure": { + "swimming_pool": true + }, + "natural": { + "tree": true + }, + "service": { + "alley": true, + "driveway": true + } + }, + "allowOtherTags": false } } diff --git a/data/presets/groups/zones/school.json b/data/presets/groups/zones/school.json index 531f769d2e..8b28a91233 100644 --- a/data/presets/groups/zones/school.json +++ b/data/presets/groups/zones/school.json @@ -1,8 +1,45 @@ { - "subfeatures": "subfeatures/school", "matches": { "anyTags": { "amenity": "school" } + }, + "nearby": { + "anyTags": { + "amenity": { + "bench": true, + "waste_basket": true + }, + "building": { + "school": true + }, + "highway": { + "service": true, + "street_lamp": true + }, + "leisure": { + "pitch": true, + "picnic_table": true, + "playground": true + }, + "man_made": { + "flagpole": true + }, + "natural": { + "tree": true + }, + "sport": { + "american_football": true, + "baseball": true, + "basketball": true, + "cricket": true, + "field_hockey": true, + "running": true, + "soccer": true, + "softball": true, + "tennis": true + } + }, + "allowOtherTags": false } } diff --git a/data/presets/groups/zones/subway.json b/data/presets/groups/zones/subway.json index 96d53ec93a..163e19cb53 100644 --- a/data/presets/groups/zones/subway.json +++ b/data/presets/groups/zones/subway.json @@ -1,5 +1,4 @@ { - "subfeatures": "subfeatures/subway", "matches": { "allTags": { "subway": "yes", @@ -10,5 +9,35 @@ "stop_position": true } } + }, + "nearby": { + "any": [ + { + "anyTags": { + "highway": { + "elevator": true, + "steps": true + }, + "railway": { + "subway": true, + "subway_entrance": true + }, + "surveillance:type": "camera", + "vending": { + "public_transport_tickets": true + } + } + }, + { + "allTags": { + "subway": "yes", + "public_transport": { + "platform": true, + "station": true, + "stop_position": true + } + } + } + ] } } diff --git a/data/presets/groups/zones/theme_park.json b/data/presets/groups/zones/theme_park.json index bb5bb7d062..f59c422ee2 100644 --- a/data/presets/groups/zones/theme_park.json +++ b/data/presets/groups/zones/theme_park.json @@ -1,8 +1,38 @@ { - "subfeatures": "subfeatures/theme_park", "matches": { "anyTags": { "tourism": "theme_park" } + }, + "nearby": { + "anyTags": { + "amenity": { + "bench": true, + "drinking_water": true, + "fast_food": true, + "theatre": true, + "toilets": true + }, + "attraction": true, + "emergency": { + "defibrillator": true, + "first_aid_kit": true + }, + "highway": { + "footway": true + }, + "leisure": { + "amusement_arcade": true, + "miniature_golf": true + }, + "shop": { + "gift": true, + "ticket": true + }, + "tourism": { + "information": true + } + }, + "allowOtherTags": false } } diff --git a/data/presets/groups/zones/water_park.json b/data/presets/groups/zones/water_park.json index cfc759c373..5ce0945cae 100644 --- a/data/presets/groups/zones/water_park.json +++ b/data/presets/groups/zones/water_park.json @@ -1,8 +1,23 @@ { - "subfeatures": "subfeatures/water_park", "matches": { "anyTags": { "leisure": "water_park" } + }, + "nearby": { + "anyTags": { + "amenity": { + "dressing_room": true, + "shower": true, + "toilets": true + }, + "attraction": { + "water_slide": true + }, + "leisure": { + "swimming_pool": true + } + }, + "allowOtherTags": false } } diff --git a/data/presets/schema/group.json b/data/presets/schema/group.json index e7c2ef0d48..50f93b8011 100644 --- a/data/presets/schema/group.json +++ b/data/presets/schema/group.json @@ -11,9 +11,19 @@ "description": "A short English description for the group, if needed for the UI. Translatable", "type": "string" }, - "subfeatures": { - "description": "The ID of a group whose matching features are often found within or near features of this group", - "type": "string" + "matches": { + "$ref": "#/definitions/rule" + }, + "nearby": { + "description": "Rule defining features that are often found within or around features matching `matches`", + "anyOf": [ + { + "type": "string" + }, + { + "$ref": "#/definitions/rule" + } + ] }, "toggleable": { "anyOf": [ @@ -34,9 +44,6 @@ } } ] - }, - "matches": { - "$ref": "#/definitions/rule" } }, "additionalProperties": false, diff --git a/modules/entities/group_manager.js b/modules/entities/group_manager.js index ba2d4cd262..e10065c656 100644 --- a/modules/entities/group_manager.js +++ b/modules/entities/group_manager.js @@ -193,10 +193,30 @@ function entityGroupManager() { var _groups = {}; var _groupsArray = []; + + var nestedRuleKeys = ['nearby']; + for (var id in data.groups) { var group = entityGroup(id, data.groups[id]); _groups[id] = group; _groupsArray.push(group); + + for (var i in nestedRuleKeys) { + var nestedRuleKey = nestedRuleKeys[i]; + var nestedRule = group[nestedRuleKey]; + + if (!nestedRule || (typeof nestedRule) !== 'object') continue; + + var nestedGroupID = id + '#' + nestedRuleKey; + + var nestedGroup = entityGroup(nestedGroupID, { + matches: nestedRule + }); + _groups[nestedGroupID] = nestedGroup; + _groupsArray.push(nestedGroup); + + group[nestedRuleKey] = nestedGroupID; + } } manager.group = function(id) { @@ -215,8 +235,8 @@ function entityGroupManager() { return group.toggleable; }); - manager.groupsWithSubfeatures = _groupsArray.filter(function(group) { - return group.subfeatures; + manager.groupsWithNearby = _groupsArray.filter(function(group) { + return group.nearby; }); manager.clearCachedPresets = function() { diff --git a/modules/ui/preset_browser.js b/modules/ui/preset_browser.js index c362a7809a..bda2d1a2cd 100644 --- a/modules/ui/preset_browser.js +++ b/modules/ui/preset_browser.js @@ -271,7 +271,7 @@ export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { var graph = context.graph(); - var superGroups = groupManager.groupsWithSubfeatures; + var superGroups = groupManager.groupsWithNearby; var scoredGroups = {}; var scoredPresets = {}; @@ -301,10 +301,10 @@ export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { for (var j in superGroups) { var group = superGroups[j]; if (group.matchesTags(entity.tags, geom)) { - var subgroupID = group.subfeatures; - if (!scoredGroups[subgroupID]) { - scoredGroups[subgroupID] = { - group: groupManager.group(subgroupID), + var nearbyGroupID = group.nearby; + if (!scoredGroups[nearbyGroupID]) { + scoredGroups[nearbyGroupID] = { + group: groupManager.group(nearbyGroupID), score: 0 }; } @@ -317,7 +317,7 @@ export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { } else { entityScore = 1; } - scoredGroups[subgroupID].score += entityScore; + scoredGroups[nearbyGroupID].score += entityScore; } } } From afb65376c3c33a4002bebce2374516d73a9dcec6 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Mon, 15 Jul 2019 16:42:15 -0400 Subject: [PATCH 177/774] Add mechanism for restricting what ways a node feature can be added as a vertex of --- data/presets/groups.json | 2 + data/presets/groups/vertices/highway.json | 35 ++++++++++++++ data/presets/groups/vertices/railway.json | 29 ++++++++++++ data/presets/schema/group.json | 35 ++++++++------ modules/behavior/draw.js | 41 ++++++++++++----- modules/behavior/hover.js | 6 +++ modules/entities/group_manager.js | 6 ++- modules/entities/schema_manager.js | 56 +++++++++++++++++++++++ modules/modes/add_point.js | 14 +++--- 9 files changed, 191 insertions(+), 33 deletions(-) create mode 100644 data/presets/groups/vertices/highway.json create mode 100644 data/presets/groups/vertices/railway.json create mode 100644 modules/entities/schema_manager.js diff --git a/data/presets/groups.json b/data/presets/groups.json index f9de6a1a1c..9acc586146 100644 --- a/data/presets/groups.json +++ b/data/presets/groups.json @@ -15,6 +15,8 @@ "toggleable/service_roads": {"name": "Service Roads", "description": "Driveways, Parking Aisles, Tracks, etc.", "toggleable": true, "matches": {"geometry": "line", "allTags": {"highway": {"service": true, "road": true, "track": true}}}}, "toggleable/traffic_roads": {"name": "Traffic Roads", "description": "Highways, Streets, etc.", "toggleable": true, "matches": {"geometry": "line", "allTags": {"highway": {"motorway": true, "motorway_link": true, "trunk": true, "trunk_link": true, "primary": true, "primary_link": true, "secondary": true, "secondary_link": true, "tertiary": true, "tertiary_link": true, "residential": true, "unclassified": true, "living_street": true}}}}, "toggleable/water": {"name": "Water Features", "description": "Rivers, Lakes, Ponds, Basins, etc.", "toggleable": true, "matches": {"anyTags": {"waterway": {"*": true, "no": false}, "natural": {"water": true, "coastline": true, "bay": true}, "landuse": {"pond": true, "basin": true, "reservoir": true, "salt_pond": true}}}}, + "vertices/highway": {"matches": {"geometry": "vertex", "anyTags": {"highway": {"emergency_bay": true, "give_way": true, "milestone": true, "mini_roundabout": true, "passing_place": true, "stop": true, "traffic_signals": true, "turning_circle": true, "turning_loop": true}, "traffic_calming": true, "traffic_sign": true, "railway": {"crossing": true, "level_crossing": true}}}, "vertexOf": {"geometry": "line", "anyTags": {"highway": {"motorway": true, "trunk": true, "primary": true, "secondary": true, "tertiary": true, "residential": true, "motorway_link": true, "trunk_link": true, "primary_link": true, "secondary_link": true, "tertiary_link": true, "unclassified": true, "road": true, "service": true, "track": true, "living_street": true, "bus_guideway": true, "path": true, "footway": true, "cycleway": true, "bridleway": true, "pedestrian": true}}}}, + "vertices/railway": {"matches": {"geometry": "vertex", "anyTags": {"railway": {"buffer_stop": true, "crossing": true, "derail": true, "level_crossing": true, "milestone": true, "signal": true, "station": true, "switch": true, "train_wash": true, "tram_stop": true}}}, "vertexOf": {"geometry": "line", "anyTags": {"railway": {"rail": true, "light_rail": true, "tram": true, "subway": true, "monorail": true, "funicular": true, "miniature": true, "narrow_gauge": true, "disused": true, "preserved": true, "abandoned": true, "construction": true}}}}, "zones/airport": {"matches": {"anyTags": {"aeroway": "aerodrome"}}, "nearby": {"anyTags": {"aeroway": "*", "amenity": {"police": true}, "building": {"hangar": true}, "highway": {"service": true}, "surveillance:type": "camera", "tourism": {"hotel": true}}}}, "zones/bank": {"matches": {"anyTags": {"amenity": "bank"}}, "nearby": {"anyTags": {"amenity": {"atm": true}, "service": "drive-through", "surveillance:type": "camera"}}}, "zones/bus_stop": {"matches": {"allTags": {"bus": "yes", "public_transport": {"platform": true, "stop_area": true, "stop_position": true}}}, "nearby": {"any": [{"anyTags": {"amenity": {"bench": true}, "footway": "sidewalk", "information": {"board": true}, "shelter_type": "public_transport", "vending": "public_transport_tickets"}}, {"allTags": {"bus": "yes", "public_transport": {"platform": true, "stop_position": true}}}]}}, diff --git a/data/presets/groups/vertices/highway.json b/data/presets/groups/vertices/highway.json new file mode 100644 index 0000000000..cc21ae09f6 --- /dev/null +++ b/data/presets/groups/vertices/highway.json @@ -0,0 +1,35 @@ +{ + "matches": { + "geometry": "vertex", + "anyTags": { + "highway": { + "emergency_bay": true, + "give_way": true, + "milestone": true, + "mini_roundabout": true, + "passing_place": true, + "stop": true, + "traffic_signals": true, + "turning_circle": true, + "turning_loop": true + }, + "traffic_calming": true, + "traffic_sign": true, + "railway": { + "crossing": true, + "level_crossing": true + } + } + }, + "vertexOf": { + "geometry": "line", + "anyTags": { + "highway": { + "motorway": true, "trunk": true, "primary": true, "secondary": true, "tertiary": true, "residential": true, + "motorway_link": true, "trunk_link": true, "primary_link": true, "secondary_link": true, "tertiary_link": true, + "unclassified": true, "road": true, "service": true, "track": true, "living_street": true, "bus_guideway": true, + "path": true, "footway": true, "cycleway": true, "bridleway": true, "pedestrian": true + } + } + } +} diff --git a/data/presets/groups/vertices/railway.json b/data/presets/groups/vertices/railway.json new file mode 100644 index 0000000000..026bba3a5e --- /dev/null +++ b/data/presets/groups/vertices/railway.json @@ -0,0 +1,29 @@ +{ + "matches": { + "geometry": "vertex", + "anyTags": { + "railway": { + "buffer_stop": true, + "crossing": true, + "derail": true, + "level_crossing": true, + "milestone": true, + "signal": true, + "station": true, + "switch": true, + "train_wash": true, + "tram_stop": true + } + } + }, + "vertexOf": { + "geometry": "line", + "anyTags": { + "railway": { + "rail": true, "light_rail": true, "tram": true, "subway": true, + "monorail": true, "funicular": true, "miniature": true, "narrow_gauge": true, + "disused": true, "preserved": true, "abandoned": true, "construction": true + } + } + } +} diff --git a/data/presets/schema/group.json b/data/presets/schema/group.json index 50f93b8011..ae2e03cf70 100644 --- a/data/presets/schema/group.json +++ b/data/presets/schema/group.json @@ -1,29 +1,28 @@ { "title": "Entity Group", - "description": "Defines a grouping of features that have something in common", + "description": "A grouping of features that have something in common", "type": "object", "properties": { "name": { - "description": "The English name for the group, if needed for the UI. Translatable", + "description": "The name for the group, if needed for the UI. American English; translatable", "type": "string" }, "description": { - "description": "A short English description for the group, if needed for the UI. Translatable", + "description": "A short description for the group, if needed for the UI. American English; translatable", "type": "string" }, "matches": { - "$ref": "#/definitions/rule" + "description": "The root rule defining the features in this group", + "$ref": "#/definitions/rule", + "required": true }, "nearby": { - "description": "Rule defining features that are often found within or around features matching `matches`", - "anyOf": [ - { - "type": "string" - }, - { - "$ref": "#/definitions/rule" - } - ] + "description": "Features that are often found within or around features in this group", + "$ref": "#/definitions/ruleOrGroupName" + }, + "vertexOf": { + "description": "Way features that features in this group can be member nodes of", + "$ref": "#/definitions/ruleOrGroupName" }, "toggleable": { "anyOf": [ @@ -166,6 +165,16 @@ "additionalProperties": false } ] + }, + "ruleOrGroupName": { + "anyOf": [ + { + "type": "string" + }, + { + "$ref": "#/definitions/rule" + } + ] } } } diff --git a/modules/behavior/draw.js b/modules/behavior/draw.js index d197feba67..69958913e6 100644 --- a/modules/behavior/draw.js +++ b/modules/behavior/draw.js @@ -7,6 +7,7 @@ import { touches as d3_touches } from 'd3-selection'; +import { schemaManager } from '../entities/schema_manager'; import { behaviorEdit } from './edit'; import { behaviorHover } from './hover'; import { behaviorTail } from './tail'; @@ -114,9 +115,6 @@ export function behaviorDraw(context) { _mouseLeave = true; } - function allowsVertex(d) { - return d.geometry(context.graph()) === 'vertex' || context.presets().allowsVertex(d, context.graph()); - } // related code // - `mode/drag_node.js` `doMode()` @@ -128,20 +126,39 @@ export function behaviorDraw(context) { var mode = context.mode(); - if (target && target.type === 'node' && allowsVertex(target)) { // Snap to a node + var targetGeometry = target && target.geometry(context.graph()); + + if (target && target.type === 'node') { // Snap to a node + + if (targetGeometry !== 'vertex' && !context.presets().allowsVertex(target, context.graph())) return; + + if (mode.id === 'add-point') { + if (!schemaManager.canSnapNodeWithTagsToNode(mode.defaultTags, target, context.graph())) return; + } + dispatch.call('clickNode', this, target, d); - return; - } else if (target && target.type === 'way' && (mode.id !== 'add-point' || mode.preset.matchGeometry('vertex'))) { // Snap to a way + } else if (target && target.type === 'way') { // Snap to a way + + if (mode.id === 'add-point') { + if (!mode.preset.matchGeometry('vertex')) return; + + if (!schemaManager.canAddNodeWithTagsToWay(mode.defaultTags, target, context.graph())) return; + } + var choice = geoChooseEdge( context.childNodes(target), context.mouse(), context.projection, context.activeID() ); - if (choice) { - var edge = [target.nodes[choice.index - 1], target.nodes[choice.index]]; - dispatch.call('clickWay', this, choice.loc, edge, d); - return; - } - } else if (mode.id !== 'add-point' || mode.preset.matchGeometry('point')) { + if (!choice) return; + + var edge = [target.nodes[choice.index - 1], target.nodes[choice.index]]; + + dispatch.call('clickWay', this, choice.loc, edge, d); + + } else { + + if (mode.id === 'add-point' && !mode.preset.matchGeometry('point')) return; + dispatch.call('click', this, context.map().mouseCoordinates(), d); } diff --git a/modules/behavior/hover.js b/modules/behavior/hover.js index 6cc286b93c..4c572adac8 100644 --- a/modules/behavior/hover.js +++ b/modules/behavior/hover.js @@ -5,6 +5,7 @@ import { select as d3_select } from 'd3-selection'; +import { schemaManager } from '../entities/schema_manager'; import { osmEntity, osmNote, qaError } from '../osm'; import { utilKeybinding, utilRebind } from '../util'; @@ -110,6 +111,11 @@ export function behaviorHover(context) { function modeAllowsHover(target) { var mode = context.mode(); if (mode.id === 'add-point') { + if (target.type === 'node') { + if (!schemaManager.canSnapNodeWithTagsToNode(mode.defaultTags, target, context.graph())) return false; + } else if (target.type === 'way') { + if (!schemaManager.canAddNodeWithTagsToWay(mode.defaultTags, target, context.graph())) return false; + } return mode.preset.matchGeometry('vertex') || (target.type !== 'way' && target.geometry(context.graph()) !== 'vertex'); } diff --git a/modules/entities/group_manager.js b/modules/entities/group_manager.js index e10065c656..c386302570 100644 --- a/modules/entities/group_manager.js +++ b/modules/entities/group_manager.js @@ -194,7 +194,7 @@ function entityGroupManager() { var _groups = {}; var _groupsArray = []; - var nestedRuleKeys = ['nearby']; + var nestedRuleKeys = ['nearby', 'vertexOf']; for (var id in data.groups) { var group = entityGroup(id, data.groups[id]); @@ -239,6 +239,10 @@ function entityGroupManager() { return group.nearby; }); + manager.groupsWithVertexOf = _groupsArray.filter(function(group) { + return group.vertexOf; + }); + manager.clearCachedPresets = function() { _groupsArray.forEach(function(group) { group.scoredPresetsByGeometry = {}; diff --git a/modules/entities/schema_manager.js b/modules/entities/schema_manager.js new file mode 100644 index 0000000000..185c969754 --- /dev/null +++ b/modules/entities/schema_manager.js @@ -0,0 +1,56 @@ + +import { groupManager } from './group_manager'; + +function entitySchemaManager() { + + var manager = {}; + + manager.canSnapNodeWithTagsToNode = function(nodeTags, node, graph) { + + var parentWays = graph.parentWays(node); + + var vertexGroups = groupManager.groupsWithVertexOf.filter(function(group) { + return group.matchesTags(nodeTags, 'vertex'); + }); + + if (vertexGroups.length === 0) return true; + + for (var j in parentWays) { + var way = parentWays[j]; + + for (var i in vertexGroups) { + var vertexGroup = vertexGroups[i]; + if (groupManager.group(vertexGroup.vertexOf).matchesTags(way.tags, way.geometry(graph))) { + return true; + } + } + } + + return false; + }; + + manager.canAddNodeWithTagsToWay = function(nodeTags, way, graph) { + + var vertexGroups = groupManager.groupsWithVertexOf.filter(function(group) { + return group.matchesTags(nodeTags, 'vertex'); + }); + + if (vertexGroups.length === 0) return true; + + for (var i in vertexGroups) { + var vertexGroup = vertexGroups[i]; + if (groupManager.group(vertexGroup.vertexOf).matchesTags(way.tags, way.geometry(graph))) { + return true; + } + } + + return false; + }; + + return manager; +} + +var schemaManager = entitySchemaManager(); + +// use a singleton +export { schemaManager }; diff --git a/modules/modes/add_point.js b/modules/modes/add_point.js index 411a3f054b..c8fc749b40 100644 --- a/modules/modes/add_point.js +++ b/modules/modes/add_point.js @@ -22,8 +22,8 @@ export function modeAddPoint(context, mode) { .on('cancel', cancel) .on('finish', finish); - var defaultTags = {}; - if (mode.preset) defaultTags = mode.preset.setTags(defaultTags, 'point'); + mode.defaultTags = {}; + if (mode.preset) mode.defaultTags = mode.preset.setTags(mode.defaultTags, 'point'); var _repeatAddedFeature = false; var _allAddedEntityIDs = []; @@ -41,7 +41,7 @@ export function modeAddPoint(context, mode) { }; function add(loc) { - var node = osmNode({ loc: loc, tags: defaultTags }); + var node = osmNode({ loc: loc, tags: mode.defaultTags }); context.perform( actionAddEntity(node), @@ -53,7 +53,7 @@ export function modeAddPoint(context, mode) { function addWay(loc, edge) { - var node = osmNode({ tags: defaultTags }); + var node = osmNode({ tags: mode.defaultTags }); context.perform( actionAddMidpoint({loc: loc, edge: edge}, node), @@ -64,14 +64,14 @@ export function modeAddPoint(context, mode) { } function addNode(node) { - if (Object.keys(defaultTags).length === 0) { + if (Object.keys(mode.defaultTags).length === 0) { didFinishAdding(node); return; } var tags = Object.assign({}, node.tags); // shallow copy - for (var key in defaultTags) { - tags[key] = defaultTags[key]; + for (var key in mode.defaultTags) { + tags[key] = mode.defaultTags[key]; } context.perform( From 728218667d92a25e0a7256b9f6db34a7d877dd2e Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 16 Jul 2019 08:41:06 -0400 Subject: [PATCH 178/774] Add building and stadium zone groups --- data/presets/groups.json | 2 ++ data/presets/groups/zones/building.json | 13 +++++++++ data/presets/groups/zones/stadium.json | 38 +++++++++++++++++++++++++ 3 files changed, 53 insertions(+) create mode 100644 data/presets/groups/zones/building.json create mode 100644 data/presets/groups/zones/stadium.json diff --git a/data/presets/groups.json b/data/presets/groups.json index 9acc586146..1502c2fae1 100644 --- a/data/presets/groups.json +++ b/data/presets/groups.json @@ -19,6 +19,7 @@ "vertices/railway": {"matches": {"geometry": "vertex", "anyTags": {"railway": {"buffer_stop": true, "crossing": true, "derail": true, "level_crossing": true, "milestone": true, "signal": true, "station": true, "switch": true, "train_wash": true, "tram_stop": true}}}, "vertexOf": {"geometry": "line", "anyTags": {"railway": {"rail": true, "light_rail": true, "tram": true, "subway": true, "monorail": true, "funicular": true, "miniature": true, "narrow_gauge": true, "disused": true, "preserved": true, "abandoned": true, "construction": true}}}}, "zones/airport": {"matches": {"anyTags": {"aeroway": "aerodrome"}}, "nearby": {"anyTags": {"aeroway": "*", "amenity": {"police": true}, "building": {"hangar": true}, "highway": {"service": true}, "surveillance:type": "camera", "tourism": {"hotel": true}}}}, "zones/bank": {"matches": {"anyTags": {"amenity": "bank"}}, "nearby": {"anyTags": {"amenity": {"atm": true}, "service": "drive-through", "surveillance:type": "camera"}}}, + "zones/building": {"matches": {"anyTags": {"building": true}}, "nearby": {"anyTags": {"entrance": true}, "allowOtherTags": false}}, "zones/bus_stop": {"matches": {"allTags": {"bus": "yes", "public_transport": {"platform": true, "stop_area": true, "stop_position": true}}}, "nearby": {"any": [{"anyTags": {"amenity": {"bench": true}, "footway": "sidewalk", "information": {"board": true}, "shelter_type": "public_transport", "vending": "public_transport_tickets"}}, {"allTags": {"bus": "yes", "public_transport": {"platform": true, "stop_position": true}}}]}}, "zones/campground": {"matches": {"anyTags": {"tourism": {"camp_site": true, "caravan_site": true}}}, "nearby": {"anyTags": {"amenity": {"bbq": true, "bench": true, "drinking_water": true, "sanitary_dump_station": true, "shower": true, "toilets": true, "water_point": true, "waste_basket": true}, "highway": {"service": true, "street_lamp": true}, "leisure": {"playground": true, "firepit": true, "picnic_table": true}, "tourism": {"camp_pitch": true}}, "allowOtherTags": false}}, "zones/farm": {"matches": {"anyTags": {"landuse": {"farmland": true, "orchard": true}}}, "nearby": {"anyTags": {"building": {"barn": true, "farm": true, "farm_auxiliary": true}, "highway": {"service": true, "track": true}, "landuse": {"farmyard": true}, "man_made": {"beehive": true, "silo": true}, "shop": {"farm": true}, "water": {"pond": true}}}}, @@ -34,6 +35,7 @@ "zones/power": {"matches": {"anyTags": {"power": {"plant": true, "substation": true}}}, "nearby": {"anyTags": {"power": {"line": true, "minor_line": true, "pole": true, "tower": true, "transformer": true}}}}, "zones/residence": {"matches": {"anyTags": {"building": {"detached": true, "house": true, "semidetached_house": true, "static_caravan": true}}}, "nearby": {"anyTags": {"barrier": {"fence": true}, "building": {"garage": true}, "footway": {"sidewalk": true}, "highway": {"footway": true, "residential": true, "service": true, "street_lamp": true}, "leisure": {"swimming_pool": true}, "natural": {"tree": true}, "service": {"alley": true, "driveway": true}}, "allowOtherTags": false}}, "zones/school": {"matches": {"anyTags": {"amenity": "school"}}, "nearby": {"anyTags": {"amenity": {"bench": true, "waste_basket": true}, "building": {"school": true}, "highway": {"service": true, "street_lamp": true}, "leisure": {"pitch": true, "picnic_table": true, "playground": true}, "man_made": {"flagpole": true}, "natural": {"tree": true}, "sport": {"american_football": true, "baseball": true, "basketball": true, "cricket": true, "field_hockey": true, "running": true, "soccer": true, "softball": true, "tennis": true}}, "allowOtherTags": false}}, + "zones/stadium": {"matches": {"anyTags": {"leisure": "stadium"}}, "nearby": {"anyTags": {"amenity": {"drinking_water": true, "toilets": true}, "building": {"stadium": true}, "emergency": {"defibrillator": true, "first_aid_kit": true}, "highway": {"footway": true, "steps": true}, "leisure": {"bleachers": true, "pitch": true, "track": true}, "shop": {"ticket": true}, "tourism": {"information": true}}, "allowOtherTags": false}}, "zones/subway": {"matches": {"allTags": {"subway": "yes", "public_transport": {"platform": true, "station": true, "stop_area": true, "stop_position": true}}}, "nearby": {"any": [{"anyTags": {"highway": {"elevator": true, "steps": true}, "railway": {"subway": true, "subway_entrance": true}, "surveillance:type": "camera", "vending": {"public_transport_tickets": true}}}, {"allTags": {"subway": "yes", "public_transport": {"platform": true, "station": true, "stop_position": true}}}]}}, "zones/theme_park": {"matches": {"anyTags": {"tourism": "theme_park"}}, "nearby": {"anyTags": {"amenity": {"bench": true, "drinking_water": true, "fast_food": true, "theatre": true, "toilets": true}, "attraction": true, "emergency": {"defibrillator": true, "first_aid_kit": true}, "highway": {"footway": true}, "leisure": {"amusement_arcade": true, "miniature_golf": true}, "shop": {"gift": true, "ticket": true}, "tourism": {"information": true}}, "allowOtherTags": false}}, "zones/water_park": {"matches": {"anyTags": {"leisure": "water_park"}}, "nearby": {"anyTags": {"amenity": {"dressing_room": true, "shower": true, "toilets": true}, "attraction": {"water_slide": true}, "leisure": {"swimming_pool": true}}, "allowOtherTags": false}} diff --git a/data/presets/groups/zones/building.json b/data/presets/groups/zones/building.json new file mode 100644 index 0000000000..10bbdaf0cb --- /dev/null +++ b/data/presets/groups/zones/building.json @@ -0,0 +1,13 @@ +{ + "matches": { + "anyTags": { + "building": true + } + }, + "nearby": { + "anyTags": { + "entrance": true + }, + "allowOtherTags": false + } +} diff --git a/data/presets/groups/zones/stadium.json b/data/presets/groups/zones/stadium.json new file mode 100644 index 0000000000..08d77c9119 --- /dev/null +++ b/data/presets/groups/zones/stadium.json @@ -0,0 +1,38 @@ +{ + "matches": { + "anyTags": { + "leisure": "stadium" + } + }, + "nearby": { + "anyTags": { + "amenity": { + "drinking_water": true, + "toilets": true + }, + "building": { + "stadium": true + }, + "emergency": { + "defibrillator": true, + "first_aid_kit": true + }, + "highway": { + "footway": true, + "steps": true + }, + "leisure": { + "bleachers": true, + "pitch": true, + "track": true + }, + "shop": { + "ticket": true + }, + "tourism": { + "information": true + } + }, + "allowOtherTags": false + } +} From 43af21cee9befc727a5fd71507af4787be0e1e1f Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 16 Jul 2019 08:50:57 -0400 Subject: [PATCH 179/774] Add Park & Ride Lot preset --- data/presets.yaml | 5 ++++ data/presets/presets.json | 5 ++-- .../presets/amenity/parking/multi-storey.json | 1 + .../presets/amenity/parking/park_ride.json | 28 +++++++++++++++++++ .../presets/amenity/parking/underground.json | 1 + data/taginfo.json | 1 + dist/locales/en.json | 4 +++ 7 files changed, 43 insertions(+), 2 deletions(-) create mode 100644 data/presets/presets/amenity/parking/park_ride.json diff --git a/data/presets.yaml b/data/presets.yaml index 85c08e96e5..3d19229ae6 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -2859,6 +2859,11 @@ en: name: Multilevel Parking Garage # 'terms: car,indoor parking,multistorey car park,parkade,parking building,parking deck,parking garage,parking ramp,parking structure' terms: '' + amenity/parking/park_ride: + # 'amenity=parking, park_ride=yes' + name: Park & Ride Lot + # 'terms: commuter parking lot,incentive parking lot,metro parking lot,park and pool lot,park and ride lot,P+R,public transport parking lot,public transit parking lot,train parking lot' + terms: '' amenity/parking/underground: # 'amenity=parking, parking=underground' name: Underground Parking diff --git a/data/presets/presets.json b/data/presets/presets.json index 7a10c67b1b..92067a1d9a 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -143,8 +143,9 @@ "amenity/parking_entrance": {"icon": "maki-entrance-alt1", "fields": ["access_simple", "ref"], "geometry": ["vertex"], "tags": {"amenity": "parking_entrance"}, "name": "Parking Garage Entrance/Exit"}, "amenity/parking_space": {"fields": ["capacity"], "geometry": ["point", "vertex", "area"], "terms": [], "tags": {"amenity": "parking_space"}, "matchScore": 0.95, "name": "Parking Space"}, "amenity/parking": {"icon": "maki-car", "fields": ["operator", "operator/type", "parking", "capacity", "access_simple", "fee", "payment_multi_fee", "surface"], "moreFields": ["address", "covered", "email", "fax", "maxstay", "name", "opening_hours", "park_ride", "phone", "ref", "supervised", "website", "wheelchair"], "geometry": ["point", "vertex", "area"], "tags": {"amenity": "parking"}, "terms": ["automobile parking", "car lot", "car parking", "rv parking", "truck parking", "vehicle parking"], "name": "Parking Lot"}, - "amenity/parking/multi-storey": {"icon": "maki-car", "fields": ["name", "{amenity/parking}", "building"], "moreFields": ["{amenity/parking}", "levels", "height"], "geometry": ["area"], "tags": {"amenity": "parking", "parking": "multi-storey"}, "addTags": {"building": "parking", "amenity": "parking", "parking": "multi-storey"}, "reference": {"key": "parking", "value": "multi-storey"}, "terms": ["car", "indoor parking", "multistorey car park", "parkade", "parking building", "parking deck", "parking garage", "parking ramp", "parking structure"], "name": "Multilevel Parking Garage"}, - "amenity/parking/underground": {"icon": "maki-car", "fields": ["{amenity/parking}", "layer"], "geometry": ["point", "vertex", "area"], "tags": {"amenity": "parking", "parking": "underground"}, "addTags": {"amenity": "parking", "parking": "underground", "layer": "-1"}, "reference": {"key": "parking", "value": "underground"}, "terms": ["automobile parking", "car lot", "car parking", "rv parking", "subsurface parking", "truck parking", "vehicle parking"], "name": "Underground Parking"}, + "amenity/parking/multi-storey": {"icon": "maki-car", "fields": ["name", "{amenity/parking}", "building"], "moreFields": ["{amenity/parking}", "levels", "height"], "geometry": ["area"], "tags": {"amenity": "parking", "parking": "multi-storey"}, "addTags": {"building": "parking", "amenity": "parking", "parking": "multi-storey"}, "reference": {"key": "parking", "value": "multi-storey"}, "terms": ["car", "indoor parking", "multistorey car park", "parkade", "parking building", "parking deck", "parking garage", "parking ramp", "parking structure"], "matchScore": 1.05, "name": "Multilevel Parking Garage"}, + "amenity/parking/park_ride": {"icon": "maki-car", "geometry": ["point", "vertex", "area"], "tags": {"amenity": "parking", "park_ride": "yes"}, "reference": {"key": "park_ride", "value": "yes"}, "terms": ["commuter parking lot", "incentive parking lot", "metro parking lot", "park and pool lot", "park and ride lot", "P+R", "public transport parking lot", "public transit parking lot", "train parking lot"], "name": "Park & Ride Lot"}, + "amenity/parking/underground": {"icon": "maki-car", "fields": ["{amenity/parking}", "layer"], "geometry": ["point", "vertex", "area"], "tags": {"amenity": "parking", "parking": "underground"}, "addTags": {"amenity": "parking", "parking": "underground", "layer": "-1"}, "reference": {"key": "parking", "value": "underground"}, "terms": ["automobile parking", "car lot", "car parking", "rv parking", "subsurface parking", "truck parking", "vehicle parking"], "matchScore": 1.05, "name": "Underground Parking"}, "amenity/payment_centre": {"icon": "maki-bank", "fields": ["name", "brand", "address", "building_area", "opening_hours", "payment_multi"], "moreFields": ["currency_multi", "website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "terms": ["check", "tax pay", "bill pay", "currency", "finance", "cash", "money"], "tags": {"amenity": "payment_centre"}, "name": "Payment Center"}, "amenity/payment_terminal": {"icon": "far-credit-card", "fields": ["name", "brand", "address", "opening_hours", "payment_multi"], "moreFields": ["currency_multi", "wheelchair"], "geometry": ["point"], "terms": ["interactive kiosk", "ekiosk", "atm", "bill pay", "tax pay", "phone pay", "finance", "cash", "money transfer", "card"], "tags": {"amenity": "payment_terminal"}, "name": "Payment Terminal"}, "amenity/pharmacy": {"icon": "maki-pharmacy", "fields": ["name", "operator", "address", "building_area", "drive_through", "dispensing"], "moreFields": ["opening_hours", "payment_multi", "website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "pharmacy"}, "addTags": {"amenity": "pharmacy", "healthcare": "pharmacy"}, "reference": {"key": "amenity", "value": "pharmacy"}, "terms": ["apothecary", "drug store", "drugstore", "med*", "prescription"], "name": "Pharmacy Counter"}, diff --git a/data/presets/presets/amenity/parking/multi-storey.json b/data/presets/presets/amenity/parking/multi-storey.json index 55a6519e3a..9cb7ebe9f3 100644 --- a/data/presets/presets/amenity/parking/multi-storey.json +++ b/data/presets/presets/amenity/parking/multi-storey.json @@ -37,5 +37,6 @@ "parking ramp", "parking structure" ], + "matchScore": 1.05, "name": "Multilevel Parking Garage" } diff --git a/data/presets/presets/amenity/parking/park_ride.json b/data/presets/presets/amenity/parking/park_ride.json new file mode 100644 index 0000000000..bdc28aee81 --- /dev/null +++ b/data/presets/presets/amenity/parking/park_ride.json @@ -0,0 +1,28 @@ +{ + "icon": "maki-car", + "geometry": [ + "point", + "vertex", + "area" + ], + "tags": { + "amenity": "parking", + "park_ride": "yes" + }, + "reference": { + "key": "park_ride", + "value": "yes" + }, + "terms": [ + "commuter parking lot", + "incentive parking lot", + "metro parking lot", + "park and pool lot", + "park and ride lot", + "P+R", + "public transport parking lot", + "public transit parking lot", + "train parking lot" + ], + "name": "Park & Ride Lot" +} diff --git a/data/presets/presets/amenity/parking/underground.json b/data/presets/presets/amenity/parking/underground.json index 8036a4c07a..f1225da394 100644 --- a/data/presets/presets/amenity/parking/underground.json +++ b/data/presets/presets/amenity/parking/underground.json @@ -31,5 +31,6 @@ "truck parking", "vehicle parking" ], + "matchScore": 1.05, "name": "Underground Parking" } diff --git a/data/taginfo.json b/data/taginfo.json index b58978fc57..c855c4af76 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -145,6 +145,7 @@ {"key": "amenity", "value": "parking_space", "description": "🄿 Parking Space", "object_types": ["node", "area"]}, {"key": "amenity", "value": "parking", "description": "🄿 Parking Lot", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/car-15.svg"}, {"key": "parking", "value": "multi-storey", "description": "🄿 Multilevel Parking Garage, 🄵 Type", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/car-15.svg"}, + {"key": "park_ride", "value": "yes", "description": "🄿 Park & Ride Lot", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/car-15.svg"}, {"key": "parking", "value": "underground", "description": "🄿 Underground Parking, 🄵 Type", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/car-15.svg"}, {"key": "amenity", "value": "payment_centre", "description": "🄿 Payment Center", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/bank-15.svg"}, {"key": "amenity", "value": "payment_terminal", "description": "🄿 Payment Terminal", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/far-credit-card.svg"}, diff --git a/dist/locales/en.json b/dist/locales/en.json index d89b4508f5..fcf6e61d63 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -4932,6 +4932,10 @@ "name": "Multilevel Parking Garage", "terms": "car,indoor parking,multistorey car park,parkade,parking building,parking deck,parking garage,parking ramp,parking structure" }, + "amenity/parking/park_ride": { + "name": "Park & Ride Lot", + "terms": "commuter parking lot,incentive parking lot,metro parking lot,park and pool lot,park and ride lot,P+R,public transport parking lot,public transit parking lot,train parking lot" + }, "amenity/parking/underground": { "name": "Underground Parking", "terms": "automobile parking,car lot,car parking,rv parking,subsurface parking,truck parking,vehicle parking" From 36cf83a035ac978fc1de99bbda4e35843fa3ed37 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 16 Jul 2019 08:59:07 -0400 Subject: [PATCH 180/774] Move public transport zone groups into a subfolder Add train zone group Recommend park and ride lots near subway stations --- data/presets/groups.json | 5 ++- .../{ => public_transport}/bus_stop.json | 0 .../zones/{ => public_transport}/subway.json | 6 +++ .../groups/zones/public_transport/train.json | 45 +++++++++++++++++++ 4 files changed, 54 insertions(+), 2 deletions(-) rename data/presets/groups/zones/{ => public_transport}/bus_stop.json (100%) rename data/presets/groups/zones/{ => public_transport}/subway.json (87%) create mode 100644 data/presets/groups/zones/public_transport/train.json diff --git a/data/presets/groups.json b/data/presets/groups.json index 1502c2fae1..8b07751f5f 100644 --- a/data/presets/groups.json +++ b/data/presets/groups.json @@ -20,7 +20,6 @@ "zones/airport": {"matches": {"anyTags": {"aeroway": "aerodrome"}}, "nearby": {"anyTags": {"aeroway": "*", "amenity": {"police": true}, "building": {"hangar": true}, "highway": {"service": true}, "surveillance:type": "camera", "tourism": {"hotel": true}}}}, "zones/bank": {"matches": {"anyTags": {"amenity": "bank"}}, "nearby": {"anyTags": {"amenity": {"atm": true}, "service": "drive-through", "surveillance:type": "camera"}}}, "zones/building": {"matches": {"anyTags": {"building": true}}, "nearby": {"anyTags": {"entrance": true}, "allowOtherTags": false}}, - "zones/bus_stop": {"matches": {"allTags": {"bus": "yes", "public_transport": {"platform": true, "stop_area": true, "stop_position": true}}}, "nearby": {"any": [{"anyTags": {"amenity": {"bench": true}, "footway": "sidewalk", "information": {"board": true}, "shelter_type": "public_transport", "vending": "public_transport_tickets"}}, {"allTags": {"bus": "yes", "public_transport": {"platform": true, "stop_position": true}}}]}}, "zones/campground": {"matches": {"anyTags": {"tourism": {"camp_site": true, "caravan_site": true}}}, "nearby": {"anyTags": {"amenity": {"bbq": true, "bench": true, "drinking_water": true, "sanitary_dump_station": true, "shower": true, "toilets": true, "water_point": true, "waste_basket": true}, "highway": {"service": true, "street_lamp": true}, "leisure": {"playground": true, "firepit": true, "picnic_table": true}, "tourism": {"camp_pitch": true}}, "allowOtherTags": false}}, "zones/farm": {"matches": {"anyTags": {"landuse": {"farmland": true, "orchard": true}}}, "nearby": {"anyTags": {"building": {"barn": true, "farm": true, "farm_auxiliary": true}, "highway": {"service": true, "track": true}, "landuse": {"farmyard": true}, "man_made": {"beehive": true, "silo": true}, "shop": {"farm": true}, "water": {"pond": true}}}}, "zones/fast_food": {"matches": {"anyTags": {"amenity": "fast_food"}}, "nearby": {"anyTags": {"amenity": {"parking": true, "toilets": true}, "service": "drive-through"}, "allowOtherTags": false}}, @@ -33,10 +32,12 @@ "zones/playground": {"matches": {"anyTags": {"leisure": "playground"}}, "nearby": {"anyTags": {"amenity": {"bench": true}, "playground": true}}}, "zones/post_office": {"matches": {"anyTags": {"amenity": "post_office"}}, "nearby": {"anyTags": {"amenity": {"post_box": true}, "vending": {"stamps": true, "parcel_pickup": true}}}}, "zones/power": {"matches": {"anyTags": {"power": {"plant": true, "substation": true}}}, "nearby": {"anyTags": {"power": {"line": true, "minor_line": true, "pole": true, "tower": true, "transformer": true}}}}, + "zones/public_transport/bus_stop": {"matches": {"allTags": {"bus": "yes", "public_transport": {"platform": true, "stop_area": true, "stop_position": true}}}, "nearby": {"any": [{"anyTags": {"amenity": {"bench": true}, "footway": "sidewalk", "information": {"board": true}, "shelter_type": "public_transport", "vending": "public_transport_tickets"}}, {"allTags": {"bus": "yes", "public_transport": {"platform": true, "stop_position": true}}}]}}, + "zones/public_transport/subway": {"matches": {"allTags": {"subway": "yes", "public_transport": {"platform": true, "station": true, "stop_area": true, "stop_position": true}}}, "nearby": {"any": [{"allTags": {"amenity": "parking", "park_ride": "yes"}}, {"anyTags": {"highway": {"elevator": true, "steps": true}, "railway": {"subway": true, "subway_entrance": true}, "surveillance:type": "camera", "vending": {"public_transport_tickets": true}}}, {"allTags": {"subway": "yes", "public_transport": {"platform": true, "station": true, "stop_position": true}}}]}}, + "zones/public_transport/train": {"matches": {"allTags": {"train": "yes", "public_transport": {"platform": true, "station": true, "stop_area": true, "stop_position": true}}}, "nearby": {"any": [{"allTags": {"amenity": "parking", "park_ride": "yes"}}, {"anyTags": {"highway": {"elevator": true, "steps": true}, "surveillance:type": "camera", "vending": {"public_transport_tickets": true}}}, {"allTags": {"train": "yes", "public_transport": {"platform": true, "station": true, "stop_position": true}}}]}}, "zones/residence": {"matches": {"anyTags": {"building": {"detached": true, "house": true, "semidetached_house": true, "static_caravan": true}}}, "nearby": {"anyTags": {"barrier": {"fence": true}, "building": {"garage": true}, "footway": {"sidewalk": true}, "highway": {"footway": true, "residential": true, "service": true, "street_lamp": true}, "leisure": {"swimming_pool": true}, "natural": {"tree": true}, "service": {"alley": true, "driveway": true}}, "allowOtherTags": false}}, "zones/school": {"matches": {"anyTags": {"amenity": "school"}}, "nearby": {"anyTags": {"amenity": {"bench": true, "waste_basket": true}, "building": {"school": true}, "highway": {"service": true, "street_lamp": true}, "leisure": {"pitch": true, "picnic_table": true, "playground": true}, "man_made": {"flagpole": true}, "natural": {"tree": true}, "sport": {"american_football": true, "baseball": true, "basketball": true, "cricket": true, "field_hockey": true, "running": true, "soccer": true, "softball": true, "tennis": true}}, "allowOtherTags": false}}, "zones/stadium": {"matches": {"anyTags": {"leisure": "stadium"}}, "nearby": {"anyTags": {"amenity": {"drinking_water": true, "toilets": true}, "building": {"stadium": true}, "emergency": {"defibrillator": true, "first_aid_kit": true}, "highway": {"footway": true, "steps": true}, "leisure": {"bleachers": true, "pitch": true, "track": true}, "shop": {"ticket": true}, "tourism": {"information": true}}, "allowOtherTags": false}}, - "zones/subway": {"matches": {"allTags": {"subway": "yes", "public_transport": {"platform": true, "station": true, "stop_area": true, "stop_position": true}}}, "nearby": {"any": [{"anyTags": {"highway": {"elevator": true, "steps": true}, "railway": {"subway": true, "subway_entrance": true}, "surveillance:type": "camera", "vending": {"public_transport_tickets": true}}}, {"allTags": {"subway": "yes", "public_transport": {"platform": true, "station": true, "stop_position": true}}}]}}, "zones/theme_park": {"matches": {"anyTags": {"tourism": "theme_park"}}, "nearby": {"anyTags": {"amenity": {"bench": true, "drinking_water": true, "fast_food": true, "theatre": true, "toilets": true}, "attraction": true, "emergency": {"defibrillator": true, "first_aid_kit": true}, "highway": {"footway": true}, "leisure": {"amusement_arcade": true, "miniature_golf": true}, "shop": {"gift": true, "ticket": true}, "tourism": {"information": true}}, "allowOtherTags": false}}, "zones/water_park": {"matches": {"anyTags": {"leisure": "water_park"}}, "nearby": {"anyTags": {"amenity": {"dressing_room": true, "shower": true, "toilets": true}, "attraction": {"water_slide": true}, "leisure": {"swimming_pool": true}}, "allowOtherTags": false}} } diff --git a/data/presets/groups/zones/bus_stop.json b/data/presets/groups/zones/public_transport/bus_stop.json similarity index 100% rename from data/presets/groups/zones/bus_stop.json rename to data/presets/groups/zones/public_transport/bus_stop.json diff --git a/data/presets/groups/zones/subway.json b/data/presets/groups/zones/public_transport/subway.json similarity index 87% rename from data/presets/groups/zones/subway.json rename to data/presets/groups/zones/public_transport/subway.json index 163e19cb53..619c6b431e 100644 --- a/data/presets/groups/zones/subway.json +++ b/data/presets/groups/zones/public_transport/subway.json @@ -12,6 +12,12 @@ }, "nearby": { "any": [ + { + "allTags": { + "amenity": "parking", + "park_ride": "yes" + } + }, { "anyTags": { "highway": { diff --git a/data/presets/groups/zones/public_transport/train.json b/data/presets/groups/zones/public_transport/train.json new file mode 100644 index 0000000000..a47ae90b5b --- /dev/null +++ b/data/presets/groups/zones/public_transport/train.json @@ -0,0 +1,45 @@ +{ + "matches": { + "allTags": { + "train": "yes", + "public_transport": { + "platform": true, + "station": true, + "stop_area": true, + "stop_position": true + } + } + }, + "nearby": { + "any": [ + { + "allTags": { + "amenity": "parking", + "park_ride": "yes" + } + }, + { + "anyTags": { + "highway": { + "elevator": true, + "steps": true + }, + "surveillance:type": "camera", + "vending": { + "public_transport_tickets": true + } + } + }, + { + "allTags": { + "train": "yes", + "public_transport": { + "platform": true, + "station": true, + "stop_position": true + } + } + } + ] + } +} From c721002478e32699a25a1957d516b03e5f2576eb Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 16 Jul 2019 09:59:32 -0400 Subject: [PATCH 181/774] Add zoo zone group Recommend maps around theme parks --- data/presets/groups.json | 5 ++- data/presets/groups/zones/theme_park.json | 3 ++ data/presets/groups/zones/zoo.json | 46 +++++++++++++++++++++++ 3 files changed, 52 insertions(+), 2 deletions(-) create mode 100644 data/presets/groups/zones/zoo.json diff --git a/data/presets/groups.json b/data/presets/groups.json index 8b07751f5f..e32bbd9af6 100644 --- a/data/presets/groups.json +++ b/data/presets/groups.json @@ -38,7 +38,8 @@ "zones/residence": {"matches": {"anyTags": {"building": {"detached": true, "house": true, "semidetached_house": true, "static_caravan": true}}}, "nearby": {"anyTags": {"barrier": {"fence": true}, "building": {"garage": true}, "footway": {"sidewalk": true}, "highway": {"footway": true, "residential": true, "service": true, "street_lamp": true}, "leisure": {"swimming_pool": true}, "natural": {"tree": true}, "service": {"alley": true, "driveway": true}}, "allowOtherTags": false}}, "zones/school": {"matches": {"anyTags": {"amenity": "school"}}, "nearby": {"anyTags": {"amenity": {"bench": true, "waste_basket": true}, "building": {"school": true}, "highway": {"service": true, "street_lamp": true}, "leisure": {"pitch": true, "picnic_table": true, "playground": true}, "man_made": {"flagpole": true}, "natural": {"tree": true}, "sport": {"american_football": true, "baseball": true, "basketball": true, "cricket": true, "field_hockey": true, "running": true, "soccer": true, "softball": true, "tennis": true}}, "allowOtherTags": false}}, "zones/stadium": {"matches": {"anyTags": {"leisure": "stadium"}}, "nearby": {"anyTags": {"amenity": {"drinking_water": true, "toilets": true}, "building": {"stadium": true}, "emergency": {"defibrillator": true, "first_aid_kit": true}, "highway": {"footway": true, "steps": true}, "leisure": {"bleachers": true, "pitch": true, "track": true}, "shop": {"ticket": true}, "tourism": {"information": true}}, "allowOtherTags": false}}, - "zones/theme_park": {"matches": {"anyTags": {"tourism": "theme_park"}}, "nearby": {"anyTags": {"amenity": {"bench": true, "drinking_water": true, "fast_food": true, "theatre": true, "toilets": true}, "attraction": true, "emergency": {"defibrillator": true, "first_aid_kit": true}, "highway": {"footway": true}, "leisure": {"amusement_arcade": true, "miniature_golf": true}, "shop": {"gift": true, "ticket": true}, "tourism": {"information": true}}, "allowOtherTags": false}}, - "zones/water_park": {"matches": {"anyTags": {"leisure": "water_park"}}, "nearby": {"anyTags": {"amenity": {"dressing_room": true, "shower": true, "toilets": true}, "attraction": {"water_slide": true}, "leisure": {"swimming_pool": true}}, "allowOtherTags": false}} + "zones/theme_park": {"matches": {"anyTags": {"tourism": "theme_park"}}, "nearby": {"anyTags": {"amenity": {"bench": true, "drinking_water": true, "fast_food": true, "theatre": true, "toilets": true}, "attraction": true, "emergency": {"defibrillator": true, "first_aid_kit": true}, "highway": {"footway": true}, "information": {"map": true}, "leisure": {"amusement_arcade": true, "miniature_golf": true}, "shop": {"gift": true, "ticket": true}, "tourism": {"information": true}}, "allowOtherTags": false}}, + "zones/water_park": {"matches": {"anyTags": {"leisure": "water_park"}}, "nearby": {"anyTags": {"amenity": {"dressing_room": true, "shower": true, "toilets": true}, "attraction": {"water_slide": true}, "leisure": {"swimming_pool": true}}, "allowOtherTags": false}}, + "zones/zoo": {"matches": {"anyTags": {"tourism": "zoo"}}, "nearby": {"anyTags": {"amenity": {"bench": true, "drinking_water": true, "fast_food": true, "fountain": true, "toilets": true}, "attraction": "animal", "barrier": {"fence": true, "wall": true}, "emergency": {"defibrillator": true, "first_aid_kit": true}, "highway": {"footway": true}, "information": {"board": true, "map": true}, "natural": {"tree": true, "water": true}, "shop": {"gift": true, "ticket": true}, "tourism": {"information": true}}, "allowOtherTags": false}} } } \ No newline at end of file diff --git a/data/presets/groups/zones/theme_park.json b/data/presets/groups/zones/theme_park.json index f59c422ee2..7b93e9e2ec 100644 --- a/data/presets/groups/zones/theme_park.json +++ b/data/presets/groups/zones/theme_park.json @@ -21,6 +21,9 @@ "highway": { "footway": true }, + "information": { + "map": true + }, "leisure": { "amusement_arcade": true, "miniature_golf": true diff --git a/data/presets/groups/zones/zoo.json b/data/presets/groups/zones/zoo.json new file mode 100644 index 0000000000..0a423bd94c --- /dev/null +++ b/data/presets/groups/zones/zoo.json @@ -0,0 +1,46 @@ +{ + "matches": { + "anyTags": { + "tourism": "zoo" + } + }, + "nearby": { + "anyTags": { + "amenity": { + "bench": true, + "drinking_water": true, + "fast_food": true, + "fountain": true, + "toilets": true + }, + "attraction": "animal", + "barrier": { + "fence": true, + "wall": true + }, + "emergency": { + "defibrillator": true, + "first_aid_kit": true + }, + "highway": { + "footway": true + }, + "information": { + "board": true, + "map": true + }, + "natural": { + "tree": true, + "water": true + }, + "shop": { + "gift": true, + "ticket": true + }, + "tourism": { + "information": true + } + }, + "allowOtherTags": false + } +} From bf96acee6bc6d1703290044d61ef375c4ad967e4 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 16 Jul 2019 10:10:01 -0400 Subject: [PATCH 182/774] Add fields to bridge support, dam, and weir presets --- data/presets.yaml | 1 + data/presets/presets.json | 8 ++++---- data/presets/presets/bridge/support.json | 7 +++++-- data/presets/presets/bridge/support/pier.json | 7 ++----- data/presets/presets/waterway/dam.json | 6 +++++- data/presets/presets/waterway/weir.json | 14 ++++++++++++++ dist/locales/en.json | 2 +- 7 files changed, 32 insertions(+), 13 deletions(-) diff --git a/data/presets.yaml b/data/presets.yaml index 3d19229ae6..e7f88b9c69 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -7879,4 +7879,5 @@ en: waterway/weir: # waterway=weir name: Weir + # 'terms: low-head dam,low-rise dam,wier' terms: '' diff --git a/data/presets/presets.json b/data/presets/presets.json index 92067a1d9a..1d4542d28b 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -297,8 +297,8 @@ "barrier/turnstile": {"icon": "maki-roadblock", "fields": ["access"], "geometry": ["vertex"], "terms": ["baffle gate", "turnstyle"], "tags": {"barrier": "turnstile"}, "name": "Turnstile"}, "barrier/wall": {"icon": "temaki-wall", "fields": ["wall", "height", "material"], "geometry": ["line", "area"], "tags": {"barrier": "wall"}, "name": "Wall", "matchScore": 0.25}, "boundary/administrative": {"fields": ["name", "admin_level"], "geometry": ["line"], "tags": {"boundary": "administrative"}, "name": "Administrative Boundary", "matchScore": 0.5}, - "bridge/support": {"icon": "fas-archway", "fields": ["bridge/support"], "moreFields": ["material", "seamark/type"], "geometry": ["point", "vertex", "area"], "tags": {"bridge:support": "*"}, "name": "Bridge Support"}, - "bridge/support/pier": {"icon": "fas-archway", "fields": ["bridge/support"], "moreFields": ["material", "seamark/type"], "geometry": ["point", "vertex", "area"], "tags": {"bridge:support": "pier"}, "name": "Bridge Pier"}, + "bridge/support": {"icon": "fas-archway", "fields": ["bridge/support", "height", "layer", "material"], "moreFields": ["colour", "seamark/type"], "geometry": ["point", "vertex", "area"], "tags": {"bridge:support": "*"}, "name": "Bridge Support"}, + "bridge/support/pier": {"icon": "fas-archway", "fields": ["bridge/support", "{bridge/support}"], "geometry": ["point", "vertex", "area"], "tags": {"bridge:support": "pier"}, "name": "Bridge Pier"}, "building_part": {"icon": "maki-building", "fields": ["levels", "height", "building/material", "roof/colour"], "moreFields": ["layer"], "geometry": ["area"], "tags": {"building:part": "*"}, "matchScore": 0.5, "terms": ["roof", "simple 3D buildings"], "name": "Building Part"}, "building": {"icon": "maki-home", "fields": ["name", "building", "levels", "height", "address"], "moreFields": ["architect", "building/levels/underground", "building/material", "layer", "operator", "roof/colour", "smoking", "wheelchair"], "geometry": ["area"], "tags": {"building": "*"}, "matchScore": 0.6, "terms": [], "name": "Building"}, "building/bunker": {"geometry": ["area"], "tags": {"building": "bunker"}, "matchScore": 0.5, "name": "Bunker", "searchable": false}, @@ -1210,7 +1210,7 @@ "waterway/boatyard": {"icon": "maki-harbor", "fields": ["name", "operator"], "moreFields": ["address", "website", "phone", "email", "fax", "wheelchair"], "geometry": ["area", "vertex", "point"], "tags": {"waterway": "boatyard"}, "name": "Boatyard"}, "waterway/canal": {"icon": "iD-waterway-canal", "fields": ["name", "structure_waterway", "width", "intermittent", "lock"], "moreFields": ["fishing", "salt", "tidal"], "geometry": ["line"], "tags": {"waterway": "canal"}, "name": "Canal"}, "waterway/canal/lock": {"icon": "iD-waterway-canal", "fields": ["name", "width", "lock"], "moreFields": ["intermittent", "salt", "tidal"], "geometry": ["line"], "tags": {"waterway": "canal", "lock": "yes"}, "name": "Canal Lock"}, - "waterway/dam": {"icon": "maki-dam", "geometry": ["point", "vertex", "line", "area"], "fields": ["name"], "moreFields": ["website"], "tags": {"waterway": "dam"}, "name": "Dam"}, + "waterway/dam": {"icon": "maki-dam", "geometry": ["point", "vertex", "line", "area"], "fields": ["name", "operator", "height", "material"], "moreFields": ["seamark/type", "website"], "tags": {"waterway": "dam"}, "name": "Dam"}, "waterway/ditch": {"icon": "iD-waterway-ditch", "fields": ["{waterway/drain}"], "moreFields": ["{waterway/drain}"], "geometry": ["line"], "tags": {"waterway": "ditch"}, "name": "Ditch"}, "waterway/dock": {"icon": "maki-harbor", "fields": ["name", "dock", "operator"], "geometry": ["area", "vertex", "point"], "terms": ["boat", "ship", "vessel", "marine"], "tags": {"waterway": "dock"}, "name": "Wet Dock / Dry Dock"}, "waterway/drain": {"icon": "iD-waterway-ditch", "fields": ["structure_waterway", "intermittent"], "moreFields": ["covered"], "geometry": ["line"], "tags": {"waterway": "drain"}, "name": "Drain"}, @@ -1223,7 +1223,7 @@ "waterway/stream": {"icon": "iD-waterway-stream", "fields": ["name", "structure_waterway", "width", "intermittent"], "moreFields": ["covered", "fishing", "salt", "tidal"], "geometry": ["line"], "terms": ["beck", "branch", "brook", "burn", "course", "creek", "current", "drift", "flood", "flow", "freshet", "race", "rill", "rindle", "rivulet", "run", "runnel", "rush", "spate", "spritz", "surge", "tide", "torrent", "tributary", "watercourse"], "tags": {"waterway": "stream"}, "name": "Stream"}, "waterway/water_point": {"icon": "maki-drinking-water", "geometry": ["area", "vertex", "point"], "tags": {"waterway": "water_point"}, "name": "Marine Drinking Water"}, "waterway/waterfall": {"icon": "maki-waterfall", "fields": ["name", "height", "width", "intermittent"], "geometry": ["vertex"], "terms": ["fall"], "tags": {"waterway": "waterfall"}, "name": "Waterfall"}, - "waterway/weir": {"icon": "maki-dam", "geometry": ["vertex", "line"], "tags": {"waterway": "weir"}, "name": "Weir"}, + "waterway/weir": {"icon": "maki-dam", "fields": ["name", "operator", "height", "material"], "moreFields": ["seamark/type"], "geometry": ["vertex", "line"], "terms": ["low-head dam", "low-rise dam", "wier"], "tags": {"waterway": "weir"}, "name": "Weir"}, "amenity/bank/ABANCA": {"name": "ABANCA", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/SomosAbanca/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q9598744", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "ABANCA", "brand:wikidata": "Q9598744", "brand:wikipedia": "es:Abanca", "name": "ABANCA", "official_name": "ABANCA Corporación Bancaria"}, "countryCodes": ["es"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/ABN AMRO": {"name": "ABN AMRO", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/abnamro/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q287471", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "ABN AMRO", "brand:wikidata": "Q287471", "brand:wikipedia": "en:ABN AMRO", "name": "ABN AMRO", "official_name": "ABN AMRO Bank N.V."}, "countryCodes": ["nl"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/ABSA": {"name": "ABSA", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/AbsaSouthAfrica/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q331688", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "ABSA", "brand:wikidata": "Q331688", "brand:wikipedia": "en:ABSA Group Limited", "name": "ABSA"}, "countryCodes": ["za"], "terms": [], "matchScore": 2, "suggestion": true}, diff --git a/data/presets/presets/bridge/support.json b/data/presets/presets/bridge/support.json index 8da2485b7c..42f57e4dad 100644 --- a/data/presets/presets/bridge/support.json +++ b/data/presets/presets/bridge/support.json @@ -1,10 +1,13 @@ { "icon": "fas-archway", "fields": [ - "bridge/support" + "bridge/support", + "height", + "layer", + "material" ], "moreFields": [ - "material", + "colour", "seamark/type" ], "geometry": [ diff --git a/data/presets/presets/bridge/support/pier.json b/data/presets/presets/bridge/support/pier.json index c65a6bbbab..55b3bf5f22 100644 --- a/data/presets/presets/bridge/support/pier.json +++ b/data/presets/presets/bridge/support/pier.json @@ -1,11 +1,8 @@ { "icon": "fas-archway", "fields": [ - "bridge/support" - ], - "moreFields": [ - "material", - "seamark/type" + "bridge/support", + "{bridge/support}" ], "geometry": [ "point", diff --git a/data/presets/presets/waterway/dam.json b/data/presets/presets/waterway/dam.json index 79dd6e5aae..3c9501bd0f 100644 --- a/data/presets/presets/waterway/dam.json +++ b/data/presets/presets/waterway/dam.json @@ -7,9 +7,13 @@ "area" ], "fields": [ - "name" + "name", + "operator", + "height", + "material" ], "moreFields": [ + "seamark/type", "website" ], "tags": { diff --git a/data/presets/presets/waterway/weir.json b/data/presets/presets/waterway/weir.json index 96d0820d0f..e9c7f0452f 100644 --- a/data/presets/presets/waterway/weir.json +++ b/data/presets/presets/waterway/weir.json @@ -1,9 +1,23 @@ { "icon": "maki-dam", + "fields": [ + "name", + "operator", + "height", + "material" + ], + "moreFields": [ + "seamark/type" + ], "geometry": [ "vertex", "line" ], + "terms": [ + "low-head dam", + "low-rise dam", + "wier" + ], "tags": { "waterway": "weir" }, diff --git a/dist/locales/en.json b/dist/locales/en.json index fcf6e61d63..44763ac387 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -9250,7 +9250,7 @@ }, "waterway/weir": { "name": "Weir", - "terms": "" + "terms": "low-head dam,low-rise dam,wier" } } }, From c0b79a614d1183c73ef26826da5954fe1f4f3a4f Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 16 Jul 2019 10:33:07 -0400 Subject: [PATCH 183/774] Default speed limits to mph in Puerto Rico (close #6626) --- data/index.js | 1 + data/mph.json | 1 + modules/ui/fields/maxspeed.js | 4 ++-- 3 files changed, 4 insertions(+), 2 deletions(-) create mode 100644 data/mph.json diff --git a/data/index.js b/data/index.js index 9f03b04a9f..c71f03febf 100644 --- a/data/index.js +++ b/data/index.js @@ -8,6 +8,7 @@ export { dataPhoneFormats } from './phone-formats.json'; export { dataShortcuts } from './shortcuts.json'; export { default as dataImperial } from './imperial.json'; +export { default as dataMPH } from './mph.json'; export { default as dataDriveLeft } from './drive-left.json'; export { en as dataEn } from '../dist/locales/en.json'; diff --git a/data/mph.json b/data/mph.json new file mode 100644 index 0000000000..a4d4047a36 --- /dev/null +++ b/data/mph.json @@ -0,0 +1 @@ +{"type":"FeatureCollection","features":[{"type":"Feature","properties":{},"geometry":{"type":"Polygon","coordinates":[[[1.97754,51.13111],[1.8457,63.45051],[-10.45898,57.01681],[-6.82251,55.26503],[-7.25583,55.06525],[-7.26546,55.0665],[-7.26992,55.06419],[-7.2725,55.06346],[-7.27818,55.05362],[-7.2893,55.04735],[-7.29939,55.0561],[-7.31835,55.04475],[-7.3447,55.05079],[-7.38831,55.02389],[-7.40547,55.00292],[-7.39157,54.99507],[-7.40075,54.98892],[-7.40706,54.98291],[-7.40363,54.97963],[-7.40633,54.97813],[-7.39835,54.97013],[-7.40745,54.96357],[-7.40178,54.95961],[-7.40727,54.95515],[-7.3944,54.94376],[-7.44444,54.93858],[-7.45216,54.89793],[-7.44204,54.87532],[-7.4713,54.83431],[-7.48092,54.83093],[-7.49216,54.82185],[-7.55121,54.79054],[-7.5443,54.78609],[-7.54958,54.75653],[-7.5349,54.74917],[-7.54881,54.74068],[-7.55941,54.74556],[-7.57894,54.74221],[-7.57507,54.7494],[-7.58606,54.75039],[-7.58872,54.74377],[-7.60031,54.74603],[-7.60632,54.74405],[-7.61662,54.74459],[-7.63593,54.75108],[-7.68854,54.72968],[-7.72064,54.72155],[-7.75094,54.70469],[-7.79094,54.71942],[-7.8051,54.71932],[-7.83497,54.73632],[-7.85419,54.72745],[-7.91496,54.67582],[-7.90174,54.66182],[-7.83832,54.63401],[-7.7433,54.6188],[-7.70863,54.63485],[-7.70682,54.6189],[-7.69386,54.6188],[-7.69631,54.61125],[-7.75845,54.59509],[-7.78708,54.58],[-7.79446,54.58141],[-7.79969,54.57704],[-7.79673,54.56915],[-7.8184,54.56315],[-7.83334,54.55227],[-7.82737,54.54299],[-7.85007,54.53363],[-7.90741,54.53722],[-7.93213,54.53388],[-8.00487,54.54568],[-8.03727,54.51162],[-8.04285,54.48759],[-8.08027,54.48829],[-8.09988,54.48395],[-8.09126,54.4765],[-8.111,54.47807],[-8.11512,54.46904],[-8.16542,54.46914],[-8.1776,54.46485],[-8.14293,54.45003],[-8.16284,54.4413],[-8.08731,54.4002],[-8.06062,54.37051],[-8.03289,54.35711],[-8.00054,54.34835],[-7.93333,54.30561],[-7.85849,54.29151],[-7.87067,54.28794],[-7.87265,54.26648],[-7.86123,54.25931],[-7.85917,54.21256],[-7.71043,54.20307],[-7.70193,54.20776],[-7.68828,54.202],[-7.67644,54.18906],[-7.66082,54.1871],[-7.62554,54.16545],[-7.62541,54.15319],[-7.61026,54.14353],[-7.57421,54.14142],[-7.57181,54.13287],[-7.56228,54.12704],[-7.51379,54.12998],[-7.47944,54.122],[-7.47169,54.12665],[-7.47075,54.13318],[-7.44684,54.15168],[-7.40792,54.156],[-7.42579,54.14092],[-7.41903,54.13629],[-7.3744,54.14172],[-7.37234,54.13881],[-7.39509,54.12624],[-7.39182,54.12017],[-7.36341,54.13157],[-7.34518,54.11577],[-7.32471,54.12123],[-7.32003,54.11379],[-7.3078,54.11718],[-7.30548,54.12347],[-7.31591,54.12697],[-7.31213,54.13162],[-7.3187,54.13411],[-7.31857,54.13745],[-7.32222,54.13836],[-7.32737,54.13544],[-7.3399,54.14585],[-7.30827,54.16716],[-7.30024,54.16625],[-7.29029,54.1715],[-7.28158,54.16839],[-7.2863,54.14919],[-7.29874,54.14904],[-7.30162,54.14411],[-7.28411,54.13971],[-7.29192,54.13071],[-7.29737,54.133],[-7.30883,54.13242],[-7.30333,54.12251],[-7.29218,54.11929],[-7.27844,54.12282],[-7.27707,54.12986],[-7.26613,54.13624],[-7.2566,54.16354],[-7.24015,54.17125],[-7.2575,54.17678],[-7.2581,54.19257],[-7.25179,54.19403],[-7.23608,54.1935],[-7.23338,54.19792],[-7.24317,54.20076],[-7.24892,54.1977],[-7.25183,54.20201],[-7.24119,54.20623],[-7.23094,54.20578],[-7.23269,54.20912],[-7.22188,54.21607],[-7.20643,54.2117],[-7.18506,54.22485],[-7.17055,54.21742],[-7.14721,54.22488],[-7.14633,54.23008],[-7.15051,54.23165],[-7.14613,54.23983],[-7.15802,54.24434],[-7.13985,54.25298],[-7.15255,54.26235],[-7.16064,54.27405],[-7.17991,54.27144],[-7.17201,54.28627],[-7.21252,54.2985],[-7.19888,54.31117],[-7.17918,54.30946],[-7.1812,54.3397],[-7.15339,54.33514],[-7.10253,54.35811],[-7.10811,54.36677],[-7.06927,54.3899],[-7.05593,54.41056],[-7.02898,54.42135],[-7.00198,54.40832],[-6.98683,54.40829],[-6.97562,54.40014],[-6.96774,54.40145],[-6.90682,54.36966],[-6.89772,54.35075],[-6.87527,54.33853],[-6.86512,54.32568],[-6.85163,54.29137],[-6.87452,54.28677],[-6.87791,54.27918],[-6.86673,54.27522],[-6.85177,54.26489],[-6.83693,54.26658],[-6.82165,54.24346],[-6.81633,54.22299],[-6.80045,54.22108],[-6.80122,54.21338],[-6.77599,54.19965],[-6.75573,54.1987],[-6.74316,54.18258],[-6.73406,54.18566],[-6.72445,54.18127],[-6.70295,54.20036],[-6.69166,54.20018],[-6.68673,54.19398],[-6.669,54.19584],[-6.65248,54.18102],[-6.6433,54.17801],[-6.63467,54.16449],[-6.63179,54.14766],[-6.64081,54.14238],[-6.63935,54.13599],[-6.66149,54.1205],[-6.6481,54.10153],[-6.66119,54.0934],[-6.66458,54.06629],[-6.64681,54.05873],[-6.62501,54.03737],[-6.59291,54.04755],[-6.58905,54.05808],[-6.5597,54.0481],[-6.52897,54.05888],[-6.50442,54.05566],[-6.47824,54.07004],[-6.47919,54.07762],[-6.43601,54.05959],[-6.36314,54.07057],[-6.36589,54.09338],[-6.36293,54.09758],[-6.37104,54.11497],[-6.3522,54.11084],[-6.34242,54.1114],[-6.33589,54.10833],[-6.33636,54.09469],[-6.31808,54.09096],[-6.30903,54.10463],[-6.29165,54.11235],[-6.28246,54.11145],[-6.26272,54.09786],[-5.35583,53.72597],[-7.0752,49.23912],[-1.83472,49.02346],[-2.12036,49.94415],[1.97754,51.13111]]]}},{"type":"Feature","properties":{},"geometry":{"type":"Polygon","coordinates":[[[-63,-50.5],[-60,-54],[-55,-51],[-63,-50.5]]]}},{"type":"Feature","properties":{},"geometry":{"type":"Polygon","coordinates":[[[-139.19952,60.08402],[-141,60.30621],[-141,76],[-169,68.63655],[-169,65.20147],[-180,61],[-180,-4],[-154,9],[-133.76404,54.54021],[-130.73868,54.71986],[-129.96277,55.29163],[-130.15228,55.7758],[-130.01787,55.90688],[-130.00362,56.00798],[-130.10284,56.12336],[-130.24498,56.09656],[-130.42625,56.14249],[-131.87439,56.79787],[-135.02884,59.56285],[-135.11759,59.62306],[-135.15827,59.6261],[-135.47928,59.79822],[-136.28677,59.57955],[-136.30531,59.46462],[-136.36836,59.44898],[-136.47697,59.46558],[-137.19727,59.01935],[-139.19952,60.08402]]]}},{"type":"Feature","properties":{},"geometry":{"type":"Polygon","coordinates":[[[-111.96064,48.99841],[-121.22623,49.00049],[-122.26513,49.00246],[-122.7565,49.00208],[-123.32218,49.00218],[-122.97821,48.76524],[-123.2666,48.69821],[-123.21991,48.21186],[-125.80444,48.60749],[-124.32129,31.54109],[-117.125,32.53429],[-116.82417,32.55996],[-115.88036,32.63735],[-115.49738,32.66486],[-114.71984,32.71877],[-114.7649,32.64602],[-114.80885,32.60959],[-114.81481,32.49451],[-112.81743,31.88004],[-111.07481,31.33224],[-109.56051,31.33402],[-108.20847,31.33384],[-108.20838,31.78363],[-106.52847,31.78391],[-106.52781,31.78086],[-106.52249,31.77501],[-106.51249,31.76933],[-106.50988,31.7612],[-106.50709,31.76123],[-106.48896,31.74806],[-106.48473,31.74769],[-106.4719,31.75101],[-106.46816,31.75897],[-106.45434,31.76466],[-106.45035,31.76426],[-106.43516,31.75492],[-106.41484,31.75101],[-106.37864,31.73021],[-106.37225,31.71174],[-106.34924,31.69633],[-106.33289,31.66178],[-106.3068,31.62459],[-106.28079,31.56179],[-106.24775,31.54226],[-106.2329,31.49982],[-106.2105,31.46857],[-106.08201,31.39863],[-106.00554,31.39233],[-105.76401,31.17051],[-105.58548,31.06117],[-105.56419,30.98526],[-104.99153,30.6639],[-104.97162,30.60896],[-104.90639,30.57822],[-104.83772,30.38117],[-104.70177,30.20567],[-104.68048,29.92399],[-104.57611,29.77838],[-104.51157,29.63674],[-104.39758,29.57047],[-104.39278,29.55293],[-104.05769,29.32173],[-103.79883,29.2581],[-103.78196,29.26555],[-103.76759,29.22799],[-103.14102,28.93666],[-102.86087,29.2217],[-102.65076,29.79418],[-101.41068,29.73457],[-101.26511,29.51372],[-101.05997,29.452],[-101.04083,29.38038],[-100.96303,29.34735],[-100.94406,29.34369],[-100.94071,29.33351],[-100.92775,29.32663],[-100.89814,29.30957],[-100.87818,29.28086],[-100.80076,29.2238],[-100.76437,29.15981],[-100.67047,29.08663],[-100.6412,28.91299],[-100.63236,28.90255],[-100.61296,28.89939],[-100.534,28.75622],[-100.51495,28.74531],[-100.50705,28.7143],[-100.51203,28.70666],[-100.51014,28.69127],[-100.50048,28.66186],[-100.45547,28.6381],[-100.44697,28.60743],[-100.35599,28.45239],[-100.34946,28.39653],[-100.29488,28.31315],[-100.29591,28.27324],[-100.17197,28.17493],[-99.93645,27.9568],[-99.87722,27.80173],[-99.79671,27.73338],[-99.772,27.72532],[-99.74556,27.69979],[-99.71947,27.65981],[-99.5957,27.59974],[-99.54094,27.60537],[-99.53055,27.57973],[-99.52034,27.55782],[-99.52802,27.49773],[-99.50141,27.49986],[-99.48755,27.49518],[-99.47897,27.48421],[-99.48661,27.46453],[-99.49534,27.44861],[-99.48927,27.40941],[-99.53957,27.31565],[-99.43588,27.19678],[-99.46404,27.01968],[-99.16698,26.56039],[-99.17474,26.53939],[-99.12698,26.51958],[-99.1135,26.42954],[-99.08355,26.39625],[-99.06007,26.39737],[-99.03634,26.41255],[-99.02042,26.40598],[-99.01291,26.39364],[-98.95686,26.38641],[-98.9566,26.37365],[-98.94523,26.36949],[-98.90013,26.36419],[-98.89905,26.35454],[-98.80305,26.36626],[-98.78254,26.30511],[-98.66667,26.23457],[-98.58496,26.24647],[-98.57951,26.23434],[-98.56519,26.23987],[-98.56294,26.22464],[-98.50599,26.20858],[-98.44806,26.21236],[-98.38617,26.15721],[-98.34176,26.15278],[-98.33579,26.1388],[-98.30626,26.10003],[-98.28841,26.10512],[-98.26524,26.0914],[-98.19898,26.06411],[-98.09577,26.05698],[-98.07568,26.06667],[-98.08302,26.03396],[-97.9771,26.04136],[-97.9532,26.06179],[-97.81643,26.04475],[-97.77017,26.02439],[-97.73884,26.02902],[-97.5289,25.90648],[-97.52151,25.88625],[-97.50615,25.89031],[-97.49851,25.89903],[-97.49637,25.89641],[-97.49748,25.88008],[-97.49422,25.87981],[-97.48847,25.88564],[-97.46409,25.88174],[-97.42607,25.842],[-97.36856,25.8396],[-97.26231,25.94724],[-80.81543,24.00633],[-66.87378,44.77794],[-67.16148,45.16715],[-67.2286,45.16739],[-67.26246,45.18797],[-67.28311,45.19175],[-67.28959,45.18784],[-67.29332,45.17568],[-67.29049,45.17317],[-67.3001,45.16776],[-67.3025,45.16122],[-67.29761,45.14766],[-67.33975,45.1255],[-67.40524,45.16122],[-67.40387,45.17139],[-67.4818,45.27682],[-67.42172,45.38543],[-67.45262,45.41008],[-67.50498,45.4889],[-67.41623,45.50105],[-67.42219,45.55661],[-67.42902,45.56833],[-67.42331,45.57154],[-67.42498,45.57836],[-67.45193,45.60323],[-67.77981,45.6738],[-67.79019,47.06776],[-67.88006,47.1067],[-67.91319,47.14793],[-67.92598,47.15418],[-67.95181,47.1875],[-68.02374,47.23915],[-68.13017,47.29309],[-68.17669,47.32893],[-68.24046,47.35354],[-68.32809,47.36005],[-68.36363,47.35476],[-68.38054,47.34167],[-68.38509,47.30321],[-68.37367,47.28796],[-68.4377,47.28232],[-68.47916,47.29623],[-68.51074,47.29885],[-68.54593,47.28441],[-68.58408,47.28482],[-68.59777,47.27134],[-68.59271,47.25762],[-68.61889,47.24148],[-68.68936,47.24125],[-68.71768,47.23676],[-68.80128,47.21423],[-68.89629,47.17676],[-69.05354,47.24847],[-69.04924,47.41798],[-69.22425,47.45961],[-69.99729,46.69558],[-70.0569,46.4149],[-70.25551,46.10871],[-70.29001,46.09431],[-70.39919,45.80667],[-70.83229,45.40062],[-70.80794,45.37878],[-70.82663,45.2367],[-70.87538,45.23453],[-70.92138,45.28099],[-70.90645,45.30918],[-71.0109,45.34798],[-71.08429,45.30556],[-71.1454,45.24226],[-71.20525,45.25278],[-71.28925,45.30097],[-71.41405,45.23513],[-71.43044,45.12381],[-71.49692,45.06991],[-71.50623,45.04878],[-71.49284,45.03629],[-71.50027,45.01372],[-71.79359,45.01075],[-72.08774,45.00581],[-72.14155,45.00568],[-72.15282,45.00609],[-72.17142,45.00584],[-72.25847,45.00436],[-72.38795,45.00626],[-72.4496,45.00863],[-72.5356,45.00936],[-72.66257,45.01523],[-72.82537,45.01642],[-73.08466,45.01561],[-73.45219,45.00875],[-74.14699,44.99145],[-74.33753,44.9923],[-74.50786,44.99798],[-74.66158,44.99949],[-74.71244,44.99734],[-74.75887,44.98708],[-74.76368,45.00632],[-74.78977,45.00365],[-74.82376,45.01773],[-74.94186,44.98229],[-75.30098,44.83883],[-75.30304,44.82836],[-75.59418,44.6457],[-75.97269,44.33502],[-75.97295,44.34595],[-76.00059,44.34797],[-76.17645,44.2865],[-76.18744,44.22158],[-76.88782,43.82759],[-79.16851,43.32168],[-79.05487,43.25371],[-79.05092,43.169],[-79.04603,43.16093],[-79.04208,43.13942],[-79.07002,43.12038],[-79.06015,43.114],[-79.0568,43.10474],[-79.0774,43.07861],[-78.9996,43.05484],[-79.02311,43.02071],[-79.02552,42.99473],[-78.96235,42.9573],[-78.91188,42.9426],[-78.90398,42.89181],[-82.42767,41.47978],[-83.14316,42.03807],[-83.12805,42.23843],[-83.09715,42.29052],[-83.07252,42.31515],[-82.94575,42.34332],[-82.59676,42.5479],[-82.51368,42.61785],[-82.5108,42.66464],[-82.4675,42.76415],[-82.48055,42.80573],[-82.45497,42.9284],[-82.41334,42.97099],[-82.42596,42.99536],[-82.15851,43.39507],[-83.53729,46.098],[-83.96301,46.05036],[-84.11021,46.23851],[-84.09794,46.25656],[-84.11613,46.26878],[-84.11905,46.31516],[-84.10721,46.3218],[-84.14394,46.41076],[-84.11682,46.51576],[-84.13536,46.53218],[-84.16162,46.5284],[-84.21621,46.53891],[-84.26994,46.49189],[-84.36092,46.50997],[-84.55284,46.4407],[-84.95178,46.77185],[-89.59179,48.00307],[-89.67547,48.00371],[-90.87204,48.25943],[-91.41312,48.06753],[-92.99377,48.62474],[-93.34877,48.62604],[-93.35529,48.61124],[-93.37074,48.60584],[-93.39812,48.60369],[-93.40542,48.61089],[-93.43846,48.59478],[-93.46859,48.59205],[-93.45735,48.56667],[-93.46533,48.54593],[-93.64763,48.51751],[-93.80625,48.51888],[-93.80642,48.58047],[-93.83328,48.62582],[-93.84865,48.63064],[-93.93388,48.6326],[-94.01327,48.64471],[-94.16176,48.64697],[-94.25025,48.65463],[-94.24931,48.67827],[-94.26046,48.69816],[-94.30578,48.71073],[-94.32758,48.70433],[-94.36123,48.70478],[-94.38406,48.71135],[-94.41629,48.71067],[-94.44294,48.69266],[-94.53615,48.7024],[-94.55031,48.71419],[-94.58894,48.71928],[-94.69425,48.77938],[-94.70129,48.83376],[-94.68996,48.83953],[-94.68395,48.99914],[-111.96064,48.99841]]]}},{"type":"Feature","properties":{},"geometry":{"type":"Polygon","coordinates":[[[180,55],[170,53],[180,49],[180,55]]]}},{"type":"Feature","properties":{},"geometry":{"type":"Polygon","coordinates":[[[143,22],[143,12],[147,12],[147,22],[143,22]]]}},{"type":"Feature","properties":{},"geometry":{"type":"Polygon","coordinates":[[[-171.5,-10],[-171,-15],[-167,-15],[-171.5,-10]]]}},{"type":"Feature","properties":{},"geometry":{"type":"Polygon","coordinates":[[[-68.44482421875,17.623081791311755],[-64.34692382812499,17.38209494787749],[-63.951416015625,19.03096327846469],[-67.950439453125,18.885497977462876],[-68.44482421875,17.623081791311755]]]}}]} \ No newline at end of file diff --git a/modules/ui/fields/maxspeed.js b/modules/ui/fields/maxspeed.js index f59e64d258..b76b76a15e 100644 --- a/modules/ui/fields/maxspeed.js +++ b/modules/ui/fields/maxspeed.js @@ -1,7 +1,7 @@ import { dispatch as d3_dispatch } from 'd3-dispatch'; import { select as d3_select } from 'd3-selection'; -import { dataImperial } from '../../../data'; +import { dataMPH } from '../../../data'; import { geoPointInPolygon } from '../../geo'; import { uiCombobox } from '../combobox'; import { utilGetSetValue, utilNoAuto, utilRebind } from '../../util'; @@ -57,7 +57,7 @@ export function uiFieldMaxspeed(field, context) { loc = childNodes[~~(childNodes.length/2)].loc; } - _isImperial = dataImperial.features.some(function(f) { + _isImperial = dataMPH.features.some(function(f) { return f.geometry.coordinates.some(function(d) { return geoPointInPolygon(loc, d); }); From 0c80d5704c4a28e4e17c1abd11cd70708ae4c745 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 16 Jul 2019 11:41:49 -0400 Subject: [PATCH 184/774] Add cemetery zone group --- data/presets/groups.json | 1 + data/presets/groups/zones/cemetery.json | 29 +++++++++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 data/presets/groups/zones/cemetery.json diff --git a/data/presets/groups.json b/data/presets/groups.json index e32bbd9af6..ece7d8a845 100644 --- a/data/presets/groups.json +++ b/data/presets/groups.json @@ -21,6 +21,7 @@ "zones/bank": {"matches": {"anyTags": {"amenity": "bank"}}, "nearby": {"anyTags": {"amenity": {"atm": true}, "service": "drive-through", "surveillance:type": "camera"}}}, "zones/building": {"matches": {"anyTags": {"building": true}}, "nearby": {"anyTags": {"entrance": true}, "allowOtherTags": false}}, "zones/campground": {"matches": {"anyTags": {"tourism": {"camp_site": true, "caravan_site": true}}}, "nearby": {"anyTags": {"amenity": {"bbq": true, "bench": true, "drinking_water": true, "sanitary_dump_station": true, "shower": true, "toilets": true, "water_point": true, "waste_basket": true}, "highway": {"service": true, "street_lamp": true}, "leisure": {"playground": true, "firepit": true, "picnic_table": true}, "tourism": {"camp_pitch": true}}, "allowOtherTags": false}}, + "zones/cemetery": {"matches": {"anyTags": {"amenity": "grave_yard", "landuse": "cemetery"}}, "nearby": {"anyTags": {"barrier": {"fence": true}, "highway": {"footway": true, "service": true}, "historic": {"memorial": true}, "landuse": {"grass": true}, "memorial": {"plaque": true}}, "allowOtherTags": false}}, "zones/farm": {"matches": {"anyTags": {"landuse": {"farmland": true, "orchard": true}}}, "nearby": {"anyTags": {"building": {"barn": true, "farm": true, "farm_auxiliary": true}, "highway": {"service": true, "track": true}, "landuse": {"farmyard": true}, "man_made": {"beehive": true, "silo": true}, "shop": {"farm": true}, "water": {"pond": true}}}}, "zones/fast_food": {"matches": {"anyTags": {"amenity": "fast_food"}}, "nearby": {"anyTags": {"amenity": {"parking": true, "toilets": true}, "service": "drive-through"}, "allowOtherTags": false}}, "zones/gas_station": {"matches": {"anyTags": {"amenity": "fuel"}}, "nearby": {"any": [{"allTags": {"amenity": {"vending_machine": true}, "vending": {"fuel": true}}}, {"anyTags": {"amenity": {"car_wash": true, "compressed_air": true}, "building": {"roof": true}, "highway": {"street_lamp": true}, "man_made": {"storage_tank": true}, "shop": {"convenience": true, "car_repair": true}}, "allowOtherTags": false}]}}, diff --git a/data/presets/groups/zones/cemetery.json b/data/presets/groups/zones/cemetery.json new file mode 100644 index 0000000000..afaf479362 --- /dev/null +++ b/data/presets/groups/zones/cemetery.json @@ -0,0 +1,29 @@ +{ + "matches": { + "anyTags": { + "amenity": "grave_yard", + "landuse": "cemetery" + } + }, + "nearby": { + "anyTags": { + "barrier": { + "fence": true + }, + "highway": { + "footway": true, + "service": true + }, + "historic": { + "memorial": true + }, + "landuse": { + "grass": true + }, + "memorial": { + "plaque": true + } + }, + "allowOtherTags": false + } +} From 630f3168b721d380f405cbced87445789b0430dc Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 16 Jul 2019 13:30:18 -0400 Subject: [PATCH 185/774] Include recent presets alongside nearby and recommended presets in the default preset browser list --- modules/ui/preset_browser.js | 65 ++++++++++++++++++++++++------------ 1 file changed, 44 insertions(+), 21 deletions(-) diff --git a/modules/ui/preset_browser.js b/modules/ui/preset_browser.js index bda2d1a2cd..18bd0c8ec7 100644 --- a/modules/ui/preset_browser.js +++ b/modules/ui/preset_browser.js @@ -275,6 +275,21 @@ export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { var scoredGroups = {}; var scoredPresets = {}; + context.presets().getRecents().slice(0, 15).forEach(function(item, index) { + var score = (15 - index) / 15; + + var id = item.preset.id; + if (!scoredPresets[id]) { + scoredPresets[id] = { + preset: item.preset, + score: score, + geometry: [item.geometry] + }; + } else if (scoredPresets[id].geometry.indexOf(item.geometry) === -1) { + scoredPresets[id].geometry.push(item.geometry); + } + }); + var queryExtent = context.map().extent(); var nearbyEntities = context.history().tree().intersects(queryExtent, graph); for (var i in nearbyEntities) { @@ -282,6 +297,8 @@ export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { // ignore boring features if (!entity.hasInterestingTags()) continue; + var geom = entity.geometry(graph); + // evaluate preset var preset = context.presets().match(entity, graph); if (preset.searchable !== false && // don't recommend unsearchables @@ -290,14 +307,16 @@ export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { if (!scoredPresets[preset.id]) { scoredPresets[preset.id] = { preset: preset, - score: 0 + score: 0, + geometry: [geom] }; + } else if (scoredPresets[preset.id].geometry.indexOf(geom) === -1) { + scoredPresets[preset.id].geometry.push(geom); } scoredPresets[preset.id].score += 1; } // evaluate groups - var geom = entity.geometry(graph); for (var j in superGroups) { var group = superGroups[j]; if (group.matchesTags(entity.tags, geom)) { @@ -322,9 +341,9 @@ export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { } } - Object.values(scoredGroups).forEach(function(item) { - item.group.scoredPresets().forEach(function(groupScoredPreset) { - var combinedScore = groupScoredPreset.score * item.score; + Object.values(scoredGroups).forEach(function(scoredGroupItem) { + scoredGroupItem.group.scoredPresets().forEach(function(groupScoredPreset) { + var combinedScore = groupScoredPreset.score * scoredGroupItem.score; if (!scoredPresets[groupScoredPreset.preset.id]) { scoredPresets[groupScoredPreset.preset.id] = { preset: groupScoredPreset.preset, @@ -339,18 +358,21 @@ export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { return Object.values(scoredPresets).sort(function(item1, item2) { return item2.score - item1.score; }).map(function(item) { - return item.preset; + return item.geometry ? item : item.preset; }).filter(function(d) { + var preset = d.preset || d; // skip non-visible - if (!d.visible()) return false; + if (preset.visible && !preset.visible()) return false; // skip presets not valid in this country - if (_countryCode && d.countryCodes && d.countryCodes.indexOf(_countryCode) === -1) return false; + if (_countryCode && preset.countryCodes && preset.countryCodes.indexOf(_countryCode) === -1) return false; + + var geometry = d.geometry || preset.geometry; for (var i in shownGeometry) { - if (d.geometry.indexOf(shownGeometry[i]) !== -1) { + if (geometry.indexOf(shownGeometry[i]) !== -1) { // skip currently hidden features - if (!context.features().isHiddenPreset(d, shownGeometry[i])) return true; + if (!context.features().isHiddenPreset(preset, shownGeometry[i])) return true; } } return false; @@ -438,25 +460,26 @@ export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { } } - function itemForPreset(preset) { - if (preset.members) { - return CategoryItem(preset); + function itemForPreset(d) { + if (d.members) { + return CategoryItem(d); } - if (preset.preset && preset.geometry) { + var preset = d.preset || d; + if (d.preset && d.geometry && typeof d.geometry === 'string') { return AddablePresetItem(preset.preset, preset.geometry); } - var supportedGeometry = preset.geometry.filter(function(geometry) { + var geometry = d.geometry.filter(function(geometry) { return shownGeometry.indexOf(geometry) !== -1; }).sort(); - var vertexIndex = supportedGeometry.indexOf('vertex'); - if (vertexIndex !== -1 && supportedGeometry.indexOf('point') !== -1) { + var vertexIndex = geometry.indexOf('vertex'); + if (vertexIndex !== -1 && geometry.indexOf('point') !== -1) { // both point and vertex allowed, just show point - supportedGeometry.splice(vertexIndex, 1); + geometry.splice(vertexIndex, 1); } - if (supportedGeometry.length === 1) { - return AddablePresetItem(preset, supportedGeometry[0]); + if (geometry.length === 1) { + return AddablePresetItem(preset, geometry[0]); } - return MultiGeometryPresetItem(preset, supportedGeometry); + return MultiGeometryPresetItem(preset, geometry); } function drawList(list, data) { From b4268a82dd02354db357ea86974abcc29adc71eb Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 17 Jul 2019 10:59:28 -0400 Subject: [PATCH 186/774] Let osm.js handle connection failure scenarios instead of context.js --- modules/core/context.js | 38 ++++++++------------------------------ modules/services/osm.js | 38 ++++++++++++++++++++------------------ 2 files changed, 28 insertions(+), 48 deletions(-) diff --git a/modules/core/context.js b/modules/core/context.js index 3331eb67fc..d79734052b 100644 --- a/modules/core/context.js +++ b/modules/core/context.js @@ -103,32 +103,13 @@ export function coreContext() { }; - function afterLoad(cid, callback) { + function afterLoad(callback) { return function(err, result) { - if (err) { - // 400 Bad Request, 401 Unauthorized, 403 Forbidden.. - if (err.status === 400 || err.status === 401 || err.status === 403) { - if (connection) { - connection.logout(); - } - } - if (typeof callback === 'function') { - callback(err); - } - return; - - } else if (connection && connection.getConnectionId() !== cid) { - if (typeof callback === 'function') { - callback({ message: 'Connection Switched', status: -1 }); - } - return; - - } else { + if (!err && result && result.data) { history.merge(result.data, result.extent); - if (typeof callback === 'function') { - callback(err, result); - } - return; + } + if (callback) { + callback(err, result); } }; } @@ -138,8 +119,7 @@ export function coreContext() { var handle = window.requestIdleCallback(function() { _deferred.delete(handle); if (connection && context.editableDataEnabled()) { - var cid = connection.getConnectionId(); - connection.loadTiles(projection, afterLoad(cid, callback)); + connection.loadTiles(projection, afterLoad(callback)); } }); _deferred.add(handle); @@ -149,8 +129,7 @@ export function coreContext() { var handle = window.requestIdleCallback(function() { _deferred.delete(handle); if (connection && context.editableDataEnabled()) { - var cid = connection.getConnectionId(); - connection.loadTileAtLoc(loc, afterLoad(cid, callback)); + connection.loadTileAtLoc(loc, afterLoad(callback)); } }); _deferred.add(handle); @@ -158,8 +137,7 @@ export function coreContext() { context.loadEntity = function(entityID, callback) { if (connection) { - var cid = connection.getConnectionId(); - connection.loadEntity(entityID, afterLoad(cid, callback)); + connection.loadEntity(entityID, afterLoad(callback)); } }; diff --git a/modules/services/osm.js b/modules/services/osm.js index adccf92cad..afcd4b14a9 100644 --- a/modules/services/osm.js +++ b/modules/services/osm.js @@ -511,9 +511,9 @@ export default { this.loadFromAPI( '/api/0.6/' + type + '/' + osmID + (type !== 'node' ? '/full' : ''), - function(err, entities) { + wrapcb(this, function(err, entities) { if (callback) callback(err, { data: entities }); - }, + }, _connectionID), options ); }, @@ -841,24 +841,26 @@ export default { _tileCache.inflight[tile.id] = this.loadFromAPI( path + tile.extent.toParam(), - function(err, parsed) { - delete _tileCache.inflight[tile.id]; - if (!err) { - delete _tileCache.toLoad[tile.id]; - _tileCache.loaded[tile.id] = true; - var bbox = tile.extent.bbox(); - bbox.id = tile.id; - _tileCache.rtree.insert(bbox); - } - if (callback) { - callback(err, Object.assign({ data: parsed }, tile)); - } - if (!hasInflightRequests(_tileCache)) { - dispatch.call('loaded'); // stop the spinner - } - }, + wrapcb(this, tileCallback, _connectionID), options ); + + function tileCallback(err, parsed) { + delete _tileCache.inflight[tile.id]; + if (!err) { + delete _tileCache.toLoad[tile.id]; + _tileCache.loaded[tile.id] = true; + var bbox = tile.extent.bbox(); + bbox.id = tile.id; + _tileCache.rtree.insert(bbox); + } + if (callback) { + callback(err, Object.assign({ data: parsed }, tile)); + } + if (!hasInflightRequests(_tileCache)) { + dispatch.call('loaded'); // stop the spinner + } + } }, From 7ece70ef984ff7566daf47e819d304577c3b1075 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 17 Jul 2019 12:52:41 -0400 Subject: [PATCH 187/774] Download some members upon selecting a relation (re: #4903, #6656) --- modules/core/context.js | 68 +++++++++++++++++++++++++++++++++ modules/modes/select.js | 26 ++++++++++++- modules/services/osm.js | 6 ++- modules/ui/raw_member_editor.js | 7 ++++ 4 files changed, 104 insertions(+), 3 deletions(-) diff --git a/modules/core/context.js b/modules/core/context.js index d79734052b..447a264b96 100644 --- a/modules/core/context.js +++ b/modules/core/context.js @@ -141,6 +141,74 @@ export function coreContext() { } }; + context.loadEntities = function(entityIDs, callback) { + var handle = window.requestIdleCallback(function() { + _deferred.delete(handle); + if (connection) { + connection.loadMultiple(entityIDs, loadedMultiple); + } + }); + _deferred.add(handle); + + function loadedMultiple(err, result) { + if (err || !result) { + afterLoad(callback)(err, result); + return; + } + + // `loadMultiple` doesn't fetch child nodes, so we have to fetch them + // manually before merging ways + + var unloadedNodeIDs = new Set(); + var okayResults = []; + var waitingEntities = []; + result.data.forEach(function(entity) { + var hasUnloaded = false; + if (entity.type === 'way') { + entity.nodes.forEach(function(nodeID) { + if (!context.hasEntity(nodeID)) { + hasUnloaded = true; + // mark that we still need this node + unloadedNodeIDs.add(nodeID); + } + }); + } + if (hasUnloaded) { + // don't merge ways with unloaded nodes + waitingEntities.push(entity); + } else { + okayResults.push(entity); + } + }); + if (okayResults.length) { + // merge valid results right away + afterLoad(callback)(err, { data: okayResults }); + } + if (waitingEntities.length) { + // run a followup request to fetch missing nodes + connection.loadMultiple(Array.from(unloadedNodeIDs), function(err, result) { + if (err || !result) { + afterLoad(callback)(err, result); + return; + } + + result.data.forEach(function(entity) { + // mark that we successfully received this node + unloadedNodeIDs.delete(entity.id); + // schedule this node to be merged + waitingEntities.push(entity); + }); + + // since `loadMultiple` could send multiple requests, wait until all have completed + if (unloadedNodeIDs.size === 0) { + // merge the ways and their nodes all at once + afterLoad(callback)(err, { data: waitingEntities }); + } + }); + } + } + }; + context.zoomToEntity = function(entityID, zoomTo) { if (zoomTo !== false) { this.loadEntity(entityID, function(err, result) { diff --git a/modules/modes/select.js b/modules/modes/select.js index a7217d9309..c88b3ea93e 100644 --- a/modules/modes/select.js +++ b/modules/modes/select.js @@ -226,9 +226,33 @@ export function modeSelect(context, selectedIDs) { return operations; }; + function scheduleMissingMemberDownload() { + var missingMemberIDs = new Set(); + selectedIDs.forEach(function(id) { + var entity = context.hasEntity(id); + if (!entity || entity.type !== 'relation') return; + + entity.members.forEach(function(member) { + if (!context.hasEntity(member.id)) { + missingMemberIDs.add(member.id); + } + }); + }); + + if (missingMemberIDs.size) { + var missingMemberIDsArray = Array.from(missingMemberIDs) + .slice(0, 450); // limit number of members downloaded at once to avoid blocking iD + context.loadEntities(missingMemberIDsArray); + } + } + mode.enter = function() { if (!checkSelectedIDs()) return; + // if this selection includes relations, fetch their members + scheduleMissingMemberDownload(); + + // ensure that selected features are rendered even if they would otherwise be hidden context.features().forceVisible(selectedIDs); operations = Object.values(Operations) @@ -310,7 +334,7 @@ export function modeSelect(context, selectedIDs) { function dblclick() { if (!context.map().withinEditableZoom()) return; - + var target = d3_select(d3_event.target); var datum = target.datum(); diff --git a/modules/services/osm.js b/modules/services/osm.js index afcd4b14a9..d302542f7b 100644 --- a/modules/services/osm.js +++ b/modules/services/osm.js @@ -538,8 +538,10 @@ export default { // Load multiple entities in chunks // (note: callback may be called multiple times) + // Unlike `loadEntity`, child nodes and members are not fetched // GET /api/0.6/[nodes|ways|relations]?#parameters loadMultiple: function(ids, callback) { + var cid = _connectionID; var that = this; var groups = utilArrayGroupBy(utilArrayUniq(ids), osmEntity.id.type); @@ -551,9 +553,9 @@ export default { utilArrayChunk(osmIDs, 150).forEach(function(arr) { that.loadFromAPI( '/api/0.6/' + type + '?' + type + '=' + arr.join(), - function(err, entities) { + wrapcb(that, function(err, entities) { if (callback) callback(err, { data: entities }); - }, + }, cid), options ); }); diff --git a/modules/ui/raw_member_editor.js b/modules/ui/raw_member_editor.js index df2c9a436f..c9756aa6dd 100644 --- a/modules/ui/raw_member_editor.js +++ b/modules/ui/raw_member_editor.js @@ -94,6 +94,8 @@ export function uiRawMemberEditor(context) { function updateDisclosureContent(selection) { _contentSelection = selection; + if (selection.empty()) return; + var memberships = []; var entity = context.entity(_entityID); entity.members.slice(0, _maxMembers).forEach(function(member, index) { @@ -379,6 +381,11 @@ export function uiRawMemberEditor(context) { }) .content(updateDisclosureContent) ); + + context.history().on('merge', function() { + // update the UI in case the merge includes newly-downloaded members + updateDisclosureContent(_contentSelection); + }); } rawMemberEditor.entityID = function(val) { From 1bce70e3f576efc2386eeb274d69d21831ffa058 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 17 Jul 2019 13:55:56 -0400 Subject: [PATCH 188/774] Update directional arrow styling when switching between directional presets (close #6032) --- modules/svg/lines.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/svg/lines.js b/modules/svg/lines.js index b8ab3ed154..1e1d360527 100644 --- a/modules/svg/lines.js +++ b/modules/svg/lines.js @@ -171,8 +171,8 @@ export function svgLines(projection, context) { markers = markers.enter() .append('path') .attr('class', pathclass) - .attr('marker-mid', marker) .merge(markers) + .attr('marker-mid', marker) .attr('d', function(d) { return d.d; }); if (detected.ie) { From ae9e870c04b6c7f5c48e7df036c5d0748741e156 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 17 Jul 2019 14:01:32 -0400 Subject: [PATCH 189/774] Add fields to the Ford preset --- data/presets/presets.json | 2 +- data/presets/presets/ford.json | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/presets/presets.json b/data/presets/presets.json index 1d4542d28b..0cbd54f50c 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -427,7 +427,7 @@ "emergency/siren": {"icon": "fas-volume-up", "fields": ["siren/purpose", "siren/type", "ref", "operator"], "geometry": ["point", "vertex"], "terms": ["air raid", "loud", "noise", "storm", "tornado", "warning"], "tags": {"emergency": "siren"}, "name": "Siren"}, "emergency/water_tank": {"icon": "maki-water", "fields": ["name", "ref", "operator"], "geometry": ["point", "vertex"], "terms": ["water tank", "cistern", "reservoir"], "tags": {"emergency": "water_tank"}, "name": "Emergency Water Tank"}, "entrance": {"icon": "maki-entrance-alt1", "geometry": ["vertex"], "terms": ["entrance", "exit", "door"], "tags": {"entrance": "*"}, "fields": ["entrance", "door", "access_simple", "address"], "matchScore": 0.8, "name": "Entrance/Exit"}, - "ford": {"icon": "temaki-pedestrian", "geometry": ["vertex"], "tags": {"ford": "yes"}, "name": "Ford"}, + "ford": {"icon": "temaki-pedestrian", "fields": ["name", "access", "seasonal"], "geometry": ["vertex"], "tags": {"ford": "yes"}, "name": "Ford"}, "golf/bunker": {"icon": "maki-golf", "fields": ["name"], "geometry": ["area"], "tags": {"golf": "bunker", "natural": "sand"}, "terms": ["hazard", "bunker"], "reference": {"key": "golf", "value": "bunker"}, "name": "Sand Trap"}, "golf/cartpath": {"icon": "temaki-golf_cart", "fields": ["{golf/path}", "maxspeed"], "geometry": ["line"], "tags": {"golf": "cartpath"}, "addTags": {"golf": "cartpath", "golf_cart": "designated", "highway": "service"}, "reference": {"key": "golf", "value": "cartpath"}, "name": "Golf Cartpath"}, "golf/driving_range": {"icon": "maki-golf", "fields": ["name", "capacity"], "geometry": ["area"], "tags": {"golf": "driving_range", "landuse": "grass"}, "reference": {"key": "golf", "value": "driving_range"}, "name": "Driving Range"}, diff --git a/data/presets/presets/ford.json b/data/presets/presets/ford.json index 03fc2173c5..9f7ca8aa96 100644 --- a/data/presets/presets/ford.json +++ b/data/presets/presets/ford.json @@ -1,5 +1,10 @@ { "icon": "temaki-pedestrian", + "fields": [ + "name", + "access", + "seasonal" + ], "geometry": [ "vertex" ], From a4fee50306adfbaeced3b3bdc8fe687385f8e020 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Thu, 18 Jul 2019 15:47:28 -0400 Subject: [PATCH 190/774] Refactor uiEntityEditor to accept multiple entities in preparation for #1761 --- css/80_app.css | 8 +- modules/ui/assistant.js | 54 ++--- modules/ui/entity_editor.js | 409 +++++++++++++++++++---------------- modules/ui/selection_list.js | 18 +- 4 files changed, 264 insertions(+), 225 deletions(-) diff --git a/css/80_app.css b/css/80_app.css index 7bac232708..7b4ebbddfb 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -1270,11 +1270,14 @@ a.hide-toggle { text-align: initial; display: flex; } +.feature-list-item { + border-bottom: 1px solid rgba(127, 127, 127, 0.5); +} .assistant .no-results-item, .assistant .feature-list-item { width: 100%; background: transparent; - color: #fff; + color: inherit; } .feature-list-item button { background: transparent; @@ -3018,7 +3021,8 @@ img.tag-reference-wiki-image { } /* hidden field to prevent user from tabbing out of the sidebar */ -input.key-trap { +.key-trap-wrap, input.key-trap { + margin: 0; height: 0px; width: 0px; padding: 0px; diff --git a/modules/ui/assistant.js b/modules/ui/assistant.js index 50cbb36634..7b7be9f0bd 100644 --- a/modules/ui/assistant.js +++ b/modules/ui/assistant.js @@ -14,7 +14,6 @@ import { uiSuccess } from './success'; import { uiPresetIcon } from './preset_icon'; import { uiEntityEditor } from './entity_editor'; import { uiFeatureList } from './feature_list'; -import { uiSelectionList } from './selection_list'; import { uiNoteEditor } from './note_editor'; import { uiKeepRightEditor } from './keepRight_editor'; import { uiImproveOsmEditor } from './improveOSM_editor'; @@ -246,11 +245,7 @@ export function uiAssistant(context) { } else if (mode.id === 'select') { - var selectedIDs = mode.selectedIDs(); - if (selectedIDs.length === 1) { - return panelSelectSingle(context, selectedIDs[0]); - } - return panelSelectMultiple(context, selectedIDs); + return panelSelect(context, mode.selectedIDs()); } else if (mode.id === 'select-note') { var note = context.connection() && context.connection().getNote(mode.selectedNoteID()); @@ -697,54 +692,43 @@ export function uiAssistant(context) { return panel; } - function panelSelectSingle(context, id) { - - var entity = context.entity(id); - var geometry = entity.geometry(context.graph()); - var preset = context.presets().match(entity, context.graph()); + function panelSelect(context, selectedIDs) { var panel = { theme: 'light', modeLabel: t('assistant.mode.editing'), - title: utilDisplayLabel(entity, context) + title: selectedIDs.length === 1 ? utilDisplayLabel(context.entity(selectedIDs[0]), context) : + t('assistant.feature_count.multiple', { count: selectedIDs.length.toString() }) }; panel.renderHeaderIcon = function(selection) { - selection.call(uiPresetIcon(context) - .geometry(geometry) - .preset(preset) - .sizeClass('small') - .pointMarker(false)); + + if (selectedIDs.length === 1) { + var entity = context.entity(selectedIDs[0]); + var geometry = entity.geometry(context.graph()); + var preset = context.presets().match(entity, context.graph()); + + selection.call(uiPresetIcon(context) + .geometry(geometry) + .preset(preset) + .sizeClass('small') + .pointMarker(false)); + } else { + selection.call(svgIcon('#fas-edit')); + } }; panel.renderBody = function(selection) { var entityEditor = uiEntityEditor(context); entityEditor .state('select') - .entityID(id); + .entityIDs(selectedIDs); selection.call(entityEditor); }; return panel; } - function panelSelectMultiple(context, selectedIDs) { - - var panel = { - headerIcon: 'fas-edit', - modeLabel: t('assistant.mode.editing'), - title: t('assistant.feature_count.multiple', { count: selectedIDs.length.toString() }) - }; - - panel.renderBody = function() { - var selectionList = uiSelectionList(context, selectedIDs); - body - .call(selectionList); - }; - - return panel; - } - function panelAuthenticating() { diff --git a/modules/ui/entity_editor.js b/modules/ui/entity_editor.js index cc3d9b8819..cf8e6e46d0 100644 --- a/modules/ui/entity_editor.js +++ b/modules/ui/entity_editor.js @@ -14,6 +14,7 @@ import { uiTagReference } from './tag_reference'; import { uiPresetBrowser } from './preset_browser'; import { uiPresetEditor } from './preset_editor'; import { uiEntityIssues } from './entity_issues'; +import { uiSelectionList } from './selection_list'; import { utilCleanTags } from '../util'; import { uiViewOnOSM } from './view_on_osm'; @@ -23,11 +24,12 @@ export function uiEntityEditor(context) { var _coalesceChanges = false; var _modified = false; var _base; - var _entityID; + var _entityIDs; var _activePreset; var _tagReference; var _presetFavorite; + var selectionList = uiSelectionList(context); var entityIssues = uiEntityIssues(context); var presetEditor = uiPresetEditor(context).on('change', changeTags); var rawTagEditor = uiRawTagEditor(context).on('change', changeTags); @@ -36,14 +38,15 @@ export function uiEntityEditor(context) { var presetBrowser = uiPresetBrowser(context, [], choosePreset); function entityEditor(selection) { - var entity = context.entity(_entityID); - var tags = Object.assign({}, entity.tags); // shallow copy + var entityID = singularEntityID(); + var entity = entityID && context.entity(entityID); + var tags = entity && Object.assign({}, entity.tags); // shallow copy /* var hasNonGeometryTags = entity.hasNonGeometryTags(); var isTaglessOrIntersectionVertex = entity.geometry(context.graph()) === 'vertex' && (!hasNonGeometryTags && !entity.isHighwayIntersection(context.graph())); - var issues = context.validator().getEntityIssues(_entityID); + var issues = context.validator().getEntityIssues(entityID); // start with the preset list if the feature is new and untagged or is an uninteresting vertex var showPresetList = (newFeature && !hasNonGeometryTags) || (isTaglessOrIntersectionVertex && !issues.length); */ @@ -57,165 +60,160 @@ export function uiEntityEditor(context) { .append('div') .attr('class', 'entity-editor inspector-body sep-top'); - var presetButtonWrap = bodyEnter - .append('div') - .attr('class', 'preset-list-item inspector-inner') - .append('div') - .attr('class', 'preset-list-button-wrap'); - - presetButtonWrap.append('button') - .attr('class', 'preset-list-button preset-reset') - .call(tooltip().title(t('inspector.back_tooltip')).placement('bottom')) - .append('div') - .attr('class', 'label') - .append('div') - .attr('class', 'label-inner'); - - presetButtonWrap.append('div') - .attr('class', 'accessory-buttons'); - - if (!bodyEnter.empty()) { - presetBrowser.render(bodyEnter); - } - bodyEnter - .append('div') - .attr('class', 'entity-issues'); + .call(presetBrowser.render); - bodyEnter - .append('div') - .attr('class', 'preset-editor'); + // Update + body = body + .merge(bodyEnter); - bodyEnter - .append('div') - .attr('class', 'raw-tag-editor inspector-inner'); + function manageSection(klass, shouldHave, update, create) { + var section = body.selectAll('.' + klass.split(' ')[0]) + .data(shouldHave ? [0] : []); - bodyEnter - .append('div') - .attr('class', 'raw-member-editor inspector-inner'); + section.exit().remove(); - bodyEnter - .append('div') - .attr('class', 'raw-membership-editor inspector-inner'); + var sectionEnter = section.enter() + .append('div') + .attr('class', klass); - bodyEnter - .append('input') - .attr('type', 'text') - .attr('class', 'key-trap'); + if (create && !sectionEnter.empty()) { + create(sectionEnter); + } + section = sectionEnter + .merge(section); - var footer = selection.selectAll('.inspector-footer') - .data([0]); + if (update && !section.empty()) { + update(section); + } + } - footer = footer.enter() - .append('div') - .attr('class', 'inspector-footer') - .merge(footer); + manageSection('selection-list', _entityIDs.length > 1, function(section) { + section + .call(selectionList + .setSelectedIDs(_entityIDs) + ); + }); - footer - .call(uiViewOnOSM(context) - .what(context.hasEntity(_entityID)) - ); + manageSection('preset-list-item inspector-inner', entityID, function(section) { + if (_presetFavorite) { + section.selectAll('.preset-list-button-wrap .accessory-buttons') + .call(_presetFavorite.button); + } - // Update - body = body - .merge(bodyEnter); + // update header + if (_tagReference) { + section.selectAll('.preset-list-button-wrap .accessory-buttons') + .call(_tagReference.button); - if (_presetFavorite) { - body.selectAll('.preset-list-button-wrap accessory-buttons') - .call(_presetFavorite.button); - } + section.selectAll('.preset-list-item') + .call(_tagReference.body); + } - // update header - if (_tagReference) { - body.selectAll('.preset-list-button-wrap .accessory-buttons') - .call(_tagReference.button); + section.selectAll('.preset-reset') + .on('click', function() { + if (presetBrowser.isShown()) { + presetBrowser.hide(); + } else { + presetBrowser.setAllowedGeometry([context.geometry(entityID)]); + presetBrowser.show(); + } + }) + .on('mousedown', function() { + d3_event.preventDefault(); + d3_event.stopPropagation(); + }) + .on('mouseup', function() { + d3_event.preventDefault(); + d3_event.stopPropagation(); + }); + + section.select('.preset-list-item button') + .call(uiPresetIcon(context) + .geometry(context.geometry(entityID)) + .preset(_activePreset) + .pointMarker(false) + ); - body.selectAll('.preset-list-item') - .call(_tagReference.body); - } + // NOTE: split on en-dash, not a hypen (to avoid conflict with hyphenated names) + var label = section.select('.label-inner'); + var nameparts = label.selectAll('.namepart') + .data(_activePreset.name().split(' – '), function(d) { return d; }); - body.selectAll('.preset-reset') - .on('click', function() { - if (presetBrowser.isShown()) { - presetBrowser.hide(); - } else { - presetBrowser.setAllowedGeometry([context.geometry(_entityID)]); - presetBrowser.show(); - } - }) - .on('mousedown', function() { - d3_event.preventDefault(); - d3_event.stopPropagation(); - }) - .on('mouseup', function() { - d3_event.preventDefault(); - d3_event.stopPropagation(); - }); + nameparts.exit() + .remove(); - body.select('.preset-list-item button') - .call(uiPresetIcon(context) - .geometry(context.geometry(_entityID)) - .preset(_activePreset) - .pointMarker(false) - ); + nameparts + .enter() + .append('div') + .attr('class', 'namepart') + .text(function(d) { return d; }); - // NOTE: split on en-dash, not a hypen (to avoid conflict with hyphenated names) - var label = body.select('.label-inner'); - var nameparts = label.selectAll('.namepart') - .data(_activePreset.name().split(' – '), function(d) { return d; }); + }, function(sectionEnter) { - nameparts.exit() - .remove(); + var presetButtonWrap = sectionEnter + .append('div') + .attr('class', 'preset-list-button-wrap'); - nameparts - .enter() - .append('div') - .attr('class', 'namepart') - .text(function(d) { return d; }); + presetButtonWrap.append('button') + .attr('class', 'preset-list-button preset-reset') + .call(tooltip().title(t('inspector.back_tooltip')).placement('bottom')) + .append('div') + .attr('class', 'label') + .append('div') + .attr('class', 'label-inner'); + presetButtonWrap.append('div') + .attr('class', 'accessory-buttons'); - // update editor sections - body.select('.entity-issues') - .call(entityIssues - .entityID(_entityID) - ); - - body.select('.preset-editor') - .call(presetEditor - .preset(_activePreset) - .entityID(_entityID) - .tags(tags) - .state(_state) - ); + }); - body.select('.raw-tag-editor') - .call(rawTagEditor - .preset(_activePreset) - .entityID(_entityID) - .tags(tags) - .state(_state) - ); + manageSection('entity-issues', entityID, function(section) { + section + .call(entityIssues + .entityID(entityID) + ); + }); + + manageSection('preset-editor', entityID, function(section) { + section + .call(presetEditor + .preset(_activePreset) + .entityID(entityID) + .tags(tags) + .state(_state) + ); + }); + + manageSection('raw-tag-editor inspector-inner', entityID, function(section) { + section + .call(rawTagEditor + .preset(_activePreset) + .entityID(entityID) + .tags(tags) + .state(_state) + ); + }); - if (entity.type === 'relation') { - body.select('.raw-member-editor') - .style('display', 'block') + manageSection('raw-member-editor inspector-inner', entity && entity.type === 'relation', function(section) { + section .call(rawMemberEditor - .entityID(_entityID) + .entityID(entityID) ); - } else { - body.select('.raw-member-editor') - .style('display', 'none'); - } + }); - body.select('.raw-membership-editor') - .call(rawMembershipEditor - .entityID(_entityID) - ); + manageSection('raw-membership-editor inspector-inner', entityID, function(section) { + section + .call(rawMembershipEditor + .entityID(entityID) + ); + }); - body.select('.key-trap') - .on('keydown.key-trap', function() { + manageSection('key-trap-wrap', true, function(section) { + section.select('key-trap') + .on('keydown.key-trap', function() { // On tabbing, send focus back to the first field on the inspector-body // (probably the `name` field) #4159 if (d3_event.keyCode === 9 && !d3_event.shiftKey) { @@ -223,11 +221,29 @@ export function uiEntityEditor(context) { body.select('input').node().focus(); } }); + }, function(sectionEnter) { + sectionEnter + .append('input') + .attr('type', 'text') + .attr('class', 'key-trap'); + }); + + var footer = selection.selectAll('.inspector-footer') + .data([0]); + + footer = footer.enter() + .append('div') + .attr('class', 'inspector-footer') + .merge(footer); + + footer + .call(uiViewOnOSM(context) + .what(entityID && context.hasEntity(entityID)) + ); context.history() .on('change.entity-editor', historyChanged); - function historyChanged(difference) { if (selection.selectAll('.entity-editor').empty()) return; if (_state === 'hide') return; @@ -237,29 +253,23 @@ export function uiEntityEditor(context) { difference.didChange.deletion; if (!significant) return; - var entity = context.hasEntity(_entityID); - var graph = context.graph(); - if (!entity) return; + if (!_entityIDs.every(context.hasEntity)) return; - var match = context.presets().match(entity, graph); - var activePreset = entityEditor.preset(); - var weakPreset = activePreset && - Object.keys(activePreset.addTags || {}).length === 0; + loadActivePreset(); - // A "weak" preset doesn't set any tags. (e.g. "Address") - // Don't replace a weak preset with a fallback preset (e.g. "Point") - if (!(weakPreset && match.isFallback())) { - entityEditor.preset(match); - } + var graph = context.graph(); entityEditor.modified(_base !== graph); entityEditor(selection); } } - function choosePreset(preset, geom) { - context.presets().setMostRecent(preset, geom); + function choosePreset(preset, geometry) { + var entityID = singularEntityID(); + if (!entityID) return; + + context.presets().setMostRecent(preset, geometry); context.perform( - actionChangePreset(_entityID, _activePreset, preset), + actionChangePreset(entityID, _activePreset, preset), t('operations.change_tags.annotation') ); @@ -270,27 +280,45 @@ export function uiEntityEditor(context) { // Tag changes that fire on input can all get coalesced into a single // history operation when the user leaves the field. #2342 function changeTags(changed, onInput) { - var entity = context.entity(_entityID); - var annotation = t('operations.change_tags.annotation'); - var tags = Object.assign({}, entity.tags); // shallow copy - - for (var k in changed) { - if (!k) continue; - var v = changed[k]; - if (v !== undefined || tags.hasOwnProperty(k)) { - tags[k] = v; + + var actions = []; + for (var i in _entityIDs) { + var entityID = _entityIDs[i]; + var entity = context.entity(entityID); + + var tags = Object.assign({}, entity.tags); // shallow copy + + for (var k in changed) { + if (!k) continue; + var v = changed[k]; + if (v !== undefined || tags.hasOwnProperty(k)) { + tags[k] = v; + } } - } - if (!onInput) { - tags = utilCleanTags(tags); + if (!onInput) { + tags = utilCleanTags(tags); + } + + if (!deepEqual(entity.tags, tags)) { + actions.push(actionChangeTags(entityID, tags)); + } } - if (!deepEqual(entity.tags, tags)) { + if (actions.length) { + var combinedAction = function(graph) { + actions.forEach(function(action) { + graph = action(graph); + }); + return graph; + }; + + var annotation = t('operations.change_tags.annotation'); + if (_coalesceChanges) { - context.overwrite(actionChangeTags(_entityID, tags), annotation); + context.overwrite(combinedAction, annotation); } else { - context.perform(actionChangeTags(_entityID, tags), annotation); + context.perform(combinedAction, annotation); _coalesceChanges = !!onInput; } } @@ -316,32 +344,51 @@ export function uiEntityEditor(context) { }; - entityEditor.entityID = function(val) { - if (!arguments.length) return _entityID; - if (_entityID === val) return entityEditor; // exit early if no change + entityEditor.entityIDs = function(val) { + if (!arguments.length) return _entityIDs; + if (_entityIDs === val) return entityEditor; // exit early if no change - _entityID = val; + _entityIDs = val; _base = context.graph(); _coalesceChanges = false; - var presetMatch = context.presets().match(context.entity(_entityID), _base); + loadActivePreset(); return entityEditor - .preset(presetMatch) .modified(false); }; - entityEditor.preset = function(val) { - if (!arguments.length) return _activePreset; - if (val !== _activePreset) { - _activePreset = val; - _tagReference = uiTagReference(_activePreset.reference(context.geometry(_entityID)), context) - .showing(false); + function singularEntityID() { + if (_entityIDs.length === 1) { + return _entityIDs[0]; } - _presetFavorite = uiPresetFavoriteButton(_activePreset, context.geometry(_entityID), context); - return entityEditor; - }; + return null; + } + + + function loadActivePreset() { + var entityID = singularEntityID(); + var entity = entityID && context.hasEntity(entityID); + if (!entity) return; + + var graph = context.graph(); + var match = context.presets().match(entity, graph); + + // A "weak" preset doesn't set any tags. (e.g. "Address") + var weakPreset = _activePreset && + Object.keys(_activePreset.addTags || {}).length === 0; + + // Don't replace a weak preset with a fallback preset (e.g. "Point") + if ((weakPreset && match.isFallback()) || + // don't reload for same preset + match === _activePreset) return; + + _activePreset = match; + _tagReference = uiTagReference(_activePreset.reference(context.geometry(entityID)), context) + .showing(false); + _presetFavorite = uiPresetFavoriteButton(_activePreset, context.geometry(entityID), context); + } return entityEditor; diff --git a/modules/ui/selection_list.js b/modules/ui/selection_list.js index e41ef333ee..b2719fe7ed 100644 --- a/modules/ui/selection_list.js +++ b/modules/ui/selection_list.js @@ -6,7 +6,10 @@ import { svgIcon } from '../svg/icon'; import { utilDisplayName, utilHighlightEntities } from '../util'; -export function uiSelectionList(context, selectedIDs) { +export function uiSelectionList(context) { + + var selectedIDs = []; + function selectEntity(entity) { context.enter(modeSelect(context, [entity.id])); @@ -25,11 +28,7 @@ export function uiSelectionList(context, selectedIDs) { function selectionList(selection) { - var listWrap = selection - .append('div') - .attr('class', 'inspector-body selection-list-pane'); - - var list = listWrap + var list = selection .append('div') .attr('class', 'feature-list'); @@ -55,7 +54,7 @@ export function uiSelectionList(context, selectedIDs) { // Enter var enter = items.enter() .append('div') - .attr('class', 'feature-list-item sep-top') + .attr('class', 'feature-list-item') .on('click', selectEntity); enter @@ -108,5 +107,10 @@ export function uiSelectionList(context, selectedIDs) { } } + selectionList.setSelectedIDs = function(val) { + selectedIDs = val; + return selectionList; + }; + return selectionList; } From eb8f487b02f66cbf80d4f1927a2bdc3b9ac472e4 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Fri, 19 Jul 2019 12:09:52 -0400 Subject: [PATCH 191/774] Cherry pick marked 0.7.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 5677dfdce5..ba150936f5 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "fast-deep-equal": "~2.0.1", "fast-json-stable-stringify": "2.0.0", "lodash-es": "4.17.14", - "marked": "0.6.3", + "marked": "0.7.0", "martinez-polygon-clipping": "0.5.0", "node-diff3": "1.0.0", "osm-auth": "1.0.2", From 7d138b7b1cad07c657feb2f891e22e12b07ee05b Mon Sep 17 00:00:00 2001 From: ToastHawaii Date: Fri, 19 Jul 2019 18:17:22 +0200 Subject: [PATCH 192/774] Remove explicit options from public_bookcase:type --- data/presets.yaml | 23 ------------------- data/presets/fields.json | 2 +- data/presets/fields/public_bookcase/type.json | 23 +++---------------- 3 files changed, 4 insertions(+), 44 deletions(-) diff --git a/data/presets.yaml b/data/presets.yaml index 25926805d3..5ea3f08150 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -3030,29 +3030,6 @@ en: public_bookcase/type: # public_bookcase:type=* label: Type of public bookcases - options: - # public_bookcase:type=reading_box - reading_box: Reading box - # public_bookcase:type=phone_box - phone_box: Converted cell phone - # public_bookcase:type=wooden_cabinet - wooden_cabinet: Wooden cabinet - # public_bookcase:type=metal_cabinet - metal_cabinet: Metal cabinet with glass doors - # public_bookcase:type=shelf - shelf: Bookcase within a building - # public_bookcase:type=shelter - shelter: Bookcase in a shelter - # public_bookcase:type=glass_cabinet - glass_cabinet: Glass cabinet - # public_bookcase:type=sculpture - sculpture: Special sculpture/Special design - # public_bookcase:type=building - building: Building used exclusively as a bookcase - # public_bookcase:type=movable_cabinet - movable_cabinet: Movable bookcase/Transportable version - # public_bookcase:type=download - download: Downloading books amenity/ranger_station: # amenity=ranger_station name: Ranger Station diff --git a/data/presets/fields.json b/data/presets/fields.json index aff4ece4f0..c0bb81f231 100644 --- a/data/presets/fields.json +++ b/data/presets/fields.json @@ -271,7 +271,7 @@ "power": {"key": "power", "type": "typeCombo", "label": "Type"}, "produce": {"key": "produce", "type": "semiCombo", "label": "Produce"}, "product": {"key": "product", "type": "semiCombo", "label": "Products"}, - "public_bookcase/type": {"key": "public_bookcase:type", "type": "typeCombo", "label": "Type of public bookcases", "strings": {"options": {"reading_box": "Reading box", "phone_box": "Converted cell phone", "wooden_cabinet": "Wooden cabinet", "metal_cabinet": "Metal cabinet with glass doors", "shelf": "Bookcase within a building", "shelter": "Bookcase in a shelter", "glass_cabinet": "Glass cabinet", "sculpture": "Special sculpture/Special design", "building": "Building used exclusively as a bookcase", "movable_cabinet": "Movable bookcase/Transportable version", "download": "Downloading books" }}}, + "public_bookcase/type": {"key": "public_bookcase:type", "type": "combo", "label": "Type of public bookcases"}, "railway": {"key": "railway", "type": "typeCombo", "label": "Type"}, "railway/position": {"key": "railway:position", "type": "text", "placeholder": "Distance to one decimal (123.4)", "label": "Milestone Position"}, "railway/signal/direction": {"key": "railway:signal:direction", "type": "combo", "label": "Direction Affected", "strings": {"options": {"forward": "Forward", "backward": "Backward", "both": "Both / All"}}}, diff --git a/data/presets/fields/public_bookcase/type.json b/data/presets/fields/public_bookcase/type.json index b390433402..70d4e791eb 100644 --- a/data/presets/fields/public_bookcase/type.json +++ b/data/presets/fields/public_bookcase/type.json @@ -1,22 +1,5 @@ { "key": "public_bookcase:type", - "type": "typeCombo", - "label": "Type of public bookcases", - "strings": { - "options": { - "reading_box": "Reading box", - "phone_box": "Converted cell phone", - "wooden_cabinet": "Wooden cabinet", - "metal_cabinet": "Metal cabinet with glass doors", - "shelf": "Bookcase within a building", - "shelter": "Bookcase in a shelter", - "glass_cabinet": "Glass cabinet", - "sculpture": "Special sculpture/Special design", - "building": "Building used exclusively as a bookcase", - "movable_cabinet": "Movable bookcase/Transportable version", - "download": "Downloading books" - } - } -} - - + "type": "combo", + "label": "Type of public bookcases" +} \ No newline at end of file From 794a73d90d37a9447e51350fa1331e797a47d8d1 Mon Sep 17 00:00:00 2001 From: ToastHawaii Date: Fri, 19 Jul 2019 18:36:12 +0200 Subject: [PATCH 193/774] Simplify label of public_bookcase/type --- data/presets.yaml | 2 +- data/presets/fields.json | 2 +- data/presets/fields/public_bookcase/type.json | 2 +- dist/locales/en.json | 15 +-------------- 4 files changed, 4 insertions(+), 17 deletions(-) diff --git a/data/presets.yaml b/data/presets.yaml index 5ea3f08150..e751c19c01 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -3029,7 +3029,7 @@ en: terms: '' public_bookcase/type: # public_bookcase:type=* - label: Type of public bookcases + label: Type amenity/ranger_station: # amenity=ranger_station name: Ranger Station diff --git a/data/presets/fields.json b/data/presets/fields.json index c0bb81f231..fc054cbf95 100644 --- a/data/presets/fields.json +++ b/data/presets/fields.json @@ -271,7 +271,7 @@ "power": {"key": "power", "type": "typeCombo", "label": "Type"}, "produce": {"key": "produce", "type": "semiCombo", "label": "Produce"}, "product": {"key": "product", "type": "semiCombo", "label": "Products"}, - "public_bookcase/type": {"key": "public_bookcase:type", "type": "combo", "label": "Type of public bookcases"}, + "public_bookcase/type": {"key": "public_bookcase:type", "type": "combo", "label": "Type"}, "railway": {"key": "railway", "type": "typeCombo", "label": "Type"}, "railway/position": {"key": "railway:position", "type": "text", "placeholder": "Distance to one decimal (123.4)", "label": "Milestone Position"}, "railway/signal/direction": {"key": "railway:signal:direction", "type": "combo", "label": "Direction Affected", "strings": {"options": {"forward": "Forward", "backward": "Backward", "both": "Both / All"}}}, diff --git a/data/presets/fields/public_bookcase/type.json b/data/presets/fields/public_bookcase/type.json index 70d4e791eb..3f2339a3a1 100644 --- a/data/presets/fields/public_bookcase/type.json +++ b/data/presets/fields/public_bookcase/type.json @@ -1,5 +1,5 @@ { "key": "public_bookcase:type", "type": "combo", - "label": "Type of public bookcases" + "label": "Type" } \ No newline at end of file diff --git a/dist/locales/en.json b/dist/locales/en.json index 7a5aa17e4e..ef277520f9 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -7948,20 +7948,7 @@ "terms": "" }, "public_bookcase/type": { - "label": "Type of public bookcases", - "options": { - "reading_box": "Reading box", - "phone_box": "Converted cell phone", - "wooden_cabinet": "Wooden cabinet", - "metal_cabinet": "Metal cabinet with glass doors", - "shelf": "Bookcase within a building", - "shelter": "Bookcase in a shelter", - "glass_cabinet": "Glass cabinet", - "sculpture": "Special sculpture/Special design", - "building": "Building used exclusively as a bookcase", - "movable_cabinet": "Movable bookcase/Transportable version", - "download": "Downloading books" - } + "label": "Type" }, "public_transport/platform_point": { "name": "Transit Stop / Platform", From b0ed68909149f1879fcebfa338e60258a1ebf489 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Fri, 19 Jul 2019 12:38:15 -0400 Subject: [PATCH 194/774] Add derived data from prior merge --- data/presets.yaml | 6 +++--- data/taginfo.json | 1 + dist/locales/en.json | 6 +++--- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/data/presets.yaml b/data/presets.yaml index 16882be56a..5ebf227b64 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -1530,6 +1530,9 @@ en: product: # product=* label: Products + public_bookcase/type: + # 'public_bookcase:type=*' + label: Type railway: # railway=* label: Type @@ -3063,9 +3066,6 @@ en: name: Public Bookcase # 'terms: library,bookcrossing' terms: '' - public_bookcase/type: - # public_bookcase:type=* - label: Type amenity/ranger_station: # amenity=ranger_station name: Ranger Station diff --git a/data/taginfo.json b/data/taginfo.json index 6474733736..66f441da97 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -1566,6 +1566,7 @@ {"key": "preschool", "description": "🄵 Preschool"}, {"key": "produce", "description": "🄵 Produce"}, {"key": "product", "description": "🄵 Products"}, + {"key": "public_bookcase:type", "description": "🄵 Type"}, {"key": "railway:position", "description": "🄵 Milestone Position"}, {"key": "railway:signal:direction", "value": "forward", "description": "🄵 Direction Affected"}, {"key": "railway:signal:direction", "value": "backward", "description": "🄵 Direction Affected"}, diff --git a/dist/locales/en.json b/dist/locales/en.json index d133097ae6..f688784c59 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -3809,6 +3809,9 @@ "product": { "label": "Products" }, + "public_bookcase/type": { + "label": "Type" + }, "railway": { "label": "Type" }, @@ -8023,9 +8026,6 @@ "name": "Transformer", "terms": "" }, - "public_bookcase/type": { - "label": "Type" - }, "public_transport/platform_point": { "name": "Transit Stop / Platform", "terms": "platform,public transit,public transportation,transit,transportation" From 24aa09786a31b906e65ae6a8f175fd3b1d9190c7 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Fri, 19 Jul 2019 12:39:55 -0400 Subject: [PATCH 195/774] Cherry pick public bookcase fields --- data/presets.yaml | 3 +++ data/presets/fields.json | 1 + data/presets/fields/public_bookcase/type.json | 5 +++++ data/presets/presets.json | 2 +- data/presets/presets/amenity/public_bookcase.json | 2 ++ dist/locales/en.json | 3 +++ 6 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 data/presets/fields/public_bookcase/type.json diff --git a/data/presets.yaml b/data/presets.yaml index e7f88b9c69..a9263bbc4a 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -3017,6 +3017,9 @@ en: name: Public Bookcase # 'terms: library,bookcrossing' terms: '' + public_bookcase/type: + # public_bookcase:type=* + label: Type amenity/ranger_station: # amenity=ranger_station name: Ranger Station diff --git a/data/presets/fields.json b/data/presets/fields.json index 9cfbceb358..e7d4b88508 100644 --- a/data/presets/fields.json +++ b/data/presets/fields.json @@ -275,6 +275,7 @@ "preschool": {"key": "preschool", "type": "check", "label": "Preschool"}, "produce": {"key": "produce", "type": "semiCombo", "label": "Produce"}, "product": {"key": "product", "type": "semiCombo", "label": "Products"}, + "public_bookcase/type": {"key": "public_bookcase:type", "type": "combo", "label": "Type"}, "railway": {"key": "railway", "type": "typeCombo", "label": "Type"}, "railway/position": {"key": "railway:position", "type": "text", "placeholder": "Distance to one decimal (123.4)", "label": "Milestone Position"}, "railway/signal/direction": {"key": "railway:signal:direction", "type": "combo", "label": "Direction Affected", "strings": {"options": {"forward": "Forward", "backward": "Backward", "both": "Both / All"}}}, diff --git a/data/presets/fields/public_bookcase/type.json b/data/presets/fields/public_bookcase/type.json new file mode 100644 index 0000000000..3f2339a3a1 --- /dev/null +++ b/data/presets/fields/public_bookcase/type.json @@ -0,0 +1,5 @@ +{ + "key": "public_bookcase:type", + "type": "combo", + "label": "Type" +} \ No newline at end of file diff --git a/data/presets/presets.json b/data/presets/presets.json index 0cbd54f50c..7435c7f38f 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -173,7 +173,7 @@ "amenity/pub/lgbtq": {"icon": "maki-beer", "geometry": ["point", "area"], "tags": {"amenity": "pub", "lgbtq": "primary"}, "terms": ["gay pub", "lesbian pub", "lgbtq pub", "lgbt pub", "lgb pub"], "name": "LGBTQ+ Pub"}, "amenity/pub/microbrewery": {"icon": "maki-beer", "geometry": ["point", "area"], "tags": {"amenity": "pub", "microbrewery": "yes"}, "reference": {"key": "microbrewery"}, "terms": ["alcohol", "drink", "dive", "beer", "bier", "booze", "craft brewery", "microbrewery", "small batch brewery"], "name": "Brewpub"}, "amenity/public_bath": {"icon": "maki-water", "fields": ["name", "bath/type", "bath/open_air", "bath/sand_bath", "address", "building_area", "fee"], "moreFields": ["email", "fax", "internet_access", "internet_access/fee", "internet_access/ssid", "opening_hours", "payment_multi_fee", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "public_bath"}, "terms": ["onsen", "foot bath", "hot springs"], "name": "Public Bath"}, - "amenity/public_bookcase": {"icon": "maki-library", "fields": ["name", "operator", "opening_hours", "capacity", "website", "lit"], "moreFields": ["wheelchair", "location", "access_simple", "brand", "email", "phone"], "geometry": ["point", "area"], "terms": ["library", "bookcrossing"], "tags": {"amenity": "public_bookcase"}, "name": "Public Bookcase"}, + "amenity/public_bookcase": {"icon": "maki-library", "fields": ["name", "public_bookcase/type", "operator", "opening_hours", "capacity", "website", "lit"], "moreFields": ["wheelchair", "location", "address", "access_simple", "brand", "email", "phone"], "geometry": ["point", "area"], "terms": ["library", "bookcrossing"], "tags": {"amenity": "public_bookcase"}, "name": "Public Bookcase"}, "amenity/ranger_station": {"icon": "maki-ranger-station", "fields": ["name", "operator", "address", "building_area", "opening_hours"], "moreFields": ["email", "fax", "internet_access", "internet_access/fee", "internet_access/ssid", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["visitor center", "visitor centre", "permit center", "permit centre", "backcountry office", "warden office", "warden center"], "tags": {"amenity": "ranger_station"}, "name": "Ranger Station"}, "amenity/recycling_centre": {"icon": "maki-recycling", "fields": ["name", "operator", "operator/type", "address", "building", "opening_hours", "recycling_accepts"], "moreFields": ["fee", "payment_multi_fee", "website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "terms": ["bottle", "can", "dump", "glass", "garbage", "rubbish", "scrap", "trash"], "tags": {"amenity": "recycling", "recycling_type": "centre"}, "reference": {"key": "recycling_type", "value": "*"}, "name": "Recycling Center"}, "amenity/recycling_container": {"icon": "maki-recycling", "fields": ["operator", "recycling_accepts", "collection_times", "material", "colour"], "moreFields": ["covered", "indoor", "manufacturer"], "geometry": ["point", "area"], "terms": ["bin", "can", "bottle", "glass", "garbage", "rubbish", "scrap", "trash"], "tags": {"amenity": "recycling", "recycling_type": "container"}, "reference": {"key": "amenity", "value": "recycling"}, "name": "Recycling Container"}, diff --git a/data/presets/presets/amenity/public_bookcase.json b/data/presets/presets/amenity/public_bookcase.json index a0ff3350e2..8289dec6ac 100644 --- a/data/presets/presets/amenity/public_bookcase.json +++ b/data/presets/presets/amenity/public_bookcase.json @@ -2,6 +2,7 @@ "icon": "maki-library", "fields": [ "name", + "public_bookcase/type", "operator", "opening_hours", "capacity", @@ -11,6 +12,7 @@ "moreFields": [ "wheelchair", "location", + "address", "access_simple", "brand", "email", diff --git a/dist/locales/en.json b/dist/locales/en.json index 44763ac387..75df1b9325 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -7912,6 +7912,9 @@ "name": "Transformer", "terms": "" }, + "public_bookcase/type": { + "label": "Type" + }, "public_transport/platform_point": { "name": "Transit Stop / Platform", "terms": "platform,public transit,public transportation,transit,transportation" From b25af7cb79cf90f6ddb1b74364f6988768796b6f Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Mon, 22 Jul 2019 10:50:22 -0400 Subject: [PATCH 196/774] Lower the selected relation member download limit to 150 (re: #6668) --- modules/modes/select.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/modes/select.js b/modules/modes/select.js index c88b3ea93e..3f9caea5b5 100644 --- a/modules/modes/select.js +++ b/modules/modes/select.js @@ -241,7 +241,7 @@ export function modeSelect(context, selectedIDs) { if (missingMemberIDs.size) { var missingMemberIDsArray = Array.from(missingMemberIDs) - .slice(0, 450); // limit number of members downloaded at once to avoid blocking iD + .slice(0, 150); // limit number of members downloaded at once to avoid blocking iD context.loadEntities(missingMemberIDsArray); } } From 860a0536f9a5d71d041b565939d408912929138d Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Mon, 22 Jul 2019 11:50:32 -0400 Subject: [PATCH 197/774] Fix error where preset browser would not dismiss when switching presets --- modules/ui/entity_editor.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/modules/ui/entity_editor.js b/modules/ui/entity_editor.js index cf8e6e46d0..c84fcad120 100644 --- a/modules/ui/entity_editor.js +++ b/modules/ui/entity_editor.js @@ -60,8 +60,10 @@ export function uiEntityEditor(context) { .append('div') .attr('class', 'entity-editor inspector-body sep-top'); - bodyEnter - .call(presetBrowser.render); + if (!bodyEnter.empty()) { + bodyEnter + .call(presetBrowser.render); + } // Update body = body From 4f0c0007798e0468777796c830b1464172282e10 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Mon, 22 Jul 2019 13:16:41 -0400 Subject: [PATCH 198/774] Update derived data --- data/presets.yaml | 6 +++--- data/taginfo.json | 1 + dist/locales/en.json | 6 +++--- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/data/presets.yaml b/data/presets.yaml index a9263bbc4a..eef7404e31 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -1530,6 +1530,9 @@ en: product: # product=* label: Products + public_bookcase/type: + # 'public_bookcase:type=*' + label: Type railway: # railway=* label: Type @@ -3017,9 +3020,6 @@ en: name: Public Bookcase # 'terms: library,bookcrossing' terms: '' - public_bookcase/type: - # public_bookcase:type=* - label: Type amenity/ranger_station: # amenity=ranger_station name: Ranger Station diff --git a/data/taginfo.json b/data/taginfo.json index c855c4af76..ca1fc610e6 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -1566,6 +1566,7 @@ {"key": "preschool", "description": "🄵 Preschool"}, {"key": "produce", "description": "🄵 Produce"}, {"key": "product", "description": "🄵 Products"}, + {"key": "public_bookcase:type", "description": "🄵 Type"}, {"key": "railway:position", "description": "🄵 Milestone Position"}, {"key": "railway:signal:direction", "value": "forward", "description": "🄵 Direction Affected"}, {"key": "railway:signal:direction", "value": "backward", "description": "🄵 Direction Affected"}, diff --git a/dist/locales/en.json b/dist/locales/en.json index 75df1b9325..263564597d 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -3698,6 +3698,9 @@ "product": { "label": "Products" }, + "public_bookcase/type": { + "label": "Type" + }, "railway": { "label": "Type" }, @@ -7912,9 +7915,6 @@ "name": "Transformer", "terms": "" }, - "public_bookcase/type": { - "label": "Type" - }, "public_transport/platform_point": { "name": "Transit Stop / Platform", "terms": "platform,public transit,public transportation,transit,transportation" From a960520926d8e0698e1d613a729bb61a93c36d58 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Mon, 22 Jul 2019 13:23:24 -0400 Subject: [PATCH 199/774] Add presets for aeroway=parking_position and aeroway=holding_position --- data/presets.yaml | 8 ++++++++ data/presets/presets.json | 2 ++ .../presets/presets/aeroway/holding_position.json | 13 +++++++++++++ .../presets/presets/aeroway/parking_position.json | 15 +++++++++++++++ data/taginfo.json | 2 ++ dist/locales/en.json | 8 ++++++++ 6 files changed, 48 insertions(+) create mode 100644 data/presets/presets/aeroway/holding_position.json create mode 100644 data/presets/presets/aeroway/parking_position.json diff --git a/data/presets.yaml b/data/presets.yaml index eef7404e31..3d24277eab 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -2425,11 +2425,19 @@ en: name: Helipad # 'terms: helicopter,helipad,heliport' terms: '' + aeroway/holding_position: + # aeroway=holding_position + name: Aircraft Holding Position + terms: '' aeroway/jet_bridge: # aeroway=jet_bridge name: Jet Bridge # 'terms: aerobridge,air jetty,airbridge,finger,gangway,jet way,jetway,passenger boarding bridge,PBB,portal,skybridge,terminal gate connector' terms: '' + aeroway/parking_position: + # aeroway=parking_position + name: Aircraft Parking Position + terms: '' aeroway/runway: # aeroway=runway name: Runway diff --git a/data/presets/presets.json b/data/presets/presets.json index 7435c7f38f..39ee9aea9c 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -45,7 +45,9 @@ "aeroway/gate": {"icon": "maki-airport", "geometry": ["point"], "fields": ["ref_aeroway_gate"], "tags": {"aeroway": "gate"}, "name": "Airport Gate"}, "aeroway/hangar": {"icon": "fas-warehouse", "geometry": ["area"], "fields": ["name", "building_area"], "tags": {"aeroway": "hangar"}, "addTags": {"building": "hangar", "aeroway": "hangar"}, "name": "Hangar"}, "aeroway/helipad": {"icon": "maki-heliport", "geometry": ["point", "area"], "fields": ["name", "ref", "operator", "surface", "lit"], "moreFields": ["access_simple", "address", "fee", "opening_hours"], "terms": ["helicopter", "helipad", "heliport"], "tags": {"aeroway": "helipad"}, "name": "Helipad"}, + "aeroway/holding_position": {"icon": "maki-airport", "geometry": ["vertex"], "fields": ["ref"], "tags": {"aeroway": "holding_position"}, "name": "Aircraft Holding Position"}, "aeroway/jet_bridge": {"icon": "temaki-pedestrian", "geometry": ["line"], "fields": ["ref_aeroway_gate", "width", "access_simple", "wheelchair"], "moreFields": ["manufacturer"], "terms": ["aerobridge", "air jetty", "airbridge", "finger", "gangway", "jet way", "jetway", "passenger boarding bridge", "PBB", "portal", "skybridge", "terminal gate connector"], "tags": {"aeroway": "jet_bridge"}, "addTags": {"aeroway": "jet_bridge", "highway": "corridor"}, "matchScore": 1.05, "name": "Jet Bridge"}, + "aeroway/parking_position": {"icon": "maki-airport", "geometry": ["vertex", "point", "line"], "fields": ["ref"], "tags": {"aeroway": "parking_position"}, "name": "Aircraft Parking Position"}, "aeroway/runway": {"icon": "fas-plane-departure", "geometry": ["line", "area"], "terms": ["landing strip"], "fields": ["ref_runway", "surface", "length", "width"], "tags": {"aeroway": "runway"}, "name": "Runway"}, "aeroway/taxiway": {"icon": "fas-plane", "geometry": ["line"], "fields": ["ref_taxiway", "surface"], "tags": {"aeroway": "taxiway"}, "name": "Taxiway"}, "aeroway/terminal": {"icon": "maki-airport", "geometry": ["point", "area"], "terms": ["airport", "aerodrome"], "fields": ["name", "operator", "building_area"], "moreFields": ["wheelchair", "smoking"], "tags": {"aeroway": "terminal"}, "name": "Airport Terminal"}, diff --git a/data/presets/presets/aeroway/holding_position.json b/data/presets/presets/aeroway/holding_position.json new file mode 100644 index 0000000000..d2f3384b96 --- /dev/null +++ b/data/presets/presets/aeroway/holding_position.json @@ -0,0 +1,13 @@ +{ + "icon": "maki-airport", + "geometry": [ + "vertex" + ], + "fields": [ + "ref" + ], + "tags": { + "aeroway": "holding_position" + }, + "name": "Aircraft Holding Position" +} diff --git a/data/presets/presets/aeroway/parking_position.json b/data/presets/presets/aeroway/parking_position.json new file mode 100644 index 0000000000..e176d0cc79 --- /dev/null +++ b/data/presets/presets/aeroway/parking_position.json @@ -0,0 +1,15 @@ +{ + "icon": "maki-airport", + "geometry": [ + "vertex", + "point", + "line" + ], + "fields": [ + "ref" + ], + "tags": { + "aeroway": "parking_position" + }, + "name": "Aircraft Parking Position" +} diff --git a/data/taginfo.json b/data/taginfo.json index ca1fc610e6..927946f936 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -48,7 +48,9 @@ {"key": "aeroway", "value": "gate", "description": "🄿 Airport Gate", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/airport-15.svg"}, {"key": "aeroway", "value": "hangar", "description": "🄿 Hangar", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-warehouse.svg"}, {"key": "aeroway", "value": "helipad", "description": "🄿 Helipad", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/heliport-15.svg"}, + {"key": "aeroway", "value": "holding_position", "description": "🄿 Aircraft Holding Position", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/airport-15.svg"}, {"key": "aeroway", "value": "jet_bridge", "description": "🄿 Jet Bridge", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/pedestrian.svg"}, + {"key": "aeroway", "value": "parking_position", "description": "🄿 Aircraft Parking Position", "object_types": ["node", "way"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/airport-15.svg"}, {"key": "aeroway", "value": "runway", "description": "🄿 Runway", "object_types": ["way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-plane-departure.svg"}, {"key": "aeroway", "value": "taxiway", "description": "🄿 Taxiway", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-plane.svg"}, {"key": "aeroway", "value": "terminal", "description": "🄿 Airport Terminal", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/airport-15.svg"}, diff --git a/dist/locales/en.json b/dist/locales/en.json index 263564597d..767001efc2 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -4539,10 +4539,18 @@ "name": "Helipad", "terms": "helicopter,helipad,heliport" }, + "aeroway/holding_position": { + "name": "Aircraft Holding Position", + "terms": "" + }, "aeroway/jet_bridge": { "name": "Jet Bridge", "terms": "aerobridge,air jetty,airbridge,finger,gangway,jet way,jetway,passenger boarding bridge,PBB,portal,skybridge,terminal gate connector" }, + "aeroway/parking_position": { + "name": "Aircraft Parking Position", + "terms": "" + }, "aeroway/runway": { "name": "Runway", "terms": "landing strip" From 28617ec11672f8678216cbf565dc92c7073789dc Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Mon, 22 Jul 2019 13:28:25 -0400 Subject: [PATCH 200/774] Add line geometry to playground=structure preset (close #6670) --- data/presets/presets.json | 2 +- data/presets/presets/playground/structure.json | 1 + data/taginfo.json | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/data/presets/presets.json b/data/presets/presets.json index 39ee9aea9c..a813d5513c 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -871,7 +871,7 @@ "playground/sandpit": {"icon": "maki-playground", "geometry": ["point", "area"], "tags": {"playground": "sandpit"}, "name": "Sandpit"}, "playground/seesaw": {"icon": "maki-playground", "geometry": ["point"], "tags": {"playground": "seesaw"}, "name": "Seesaw"}, "playground/slide": {"icon": "maki-playground", "geometry": ["point", "line"], "tags": {"playground": "slide"}, "name": "Slide"}, - "playground/structure": {"icon": "maki-pitch", "geometry": ["point", "area"], "tags": {"playground": "structure"}, "name": "Play Structure"}, + "playground/structure": {"icon": "maki-pitch", "geometry": ["point", "line", "area"], "tags": {"playground": "structure"}, "name": "Play Structure"}, "playground/swing": {"icon": "maki-playground", "fields": ["capacity", "playground/baby", "wheelchair"], "geometry": ["point"], "tags": {"playground": "swing"}, "name": "Swing"}, "playground/zipwire": {"icon": "maki-playground", "geometry": ["point", "line"], "tags": {"playground": "zipwire"}, "name": "Zip Wire"}, "point": {"fields": ["name"], "geometry": ["vertex", "point"], "tags": {}, "terms": ["node", "other", "vertex", "vertices"], "name": "Point", "matchScore": 0.1}, diff --git a/data/presets/presets/playground/structure.json b/data/presets/presets/playground/structure.json index ca880363e6..2f5210c47d 100644 --- a/data/presets/presets/playground/structure.json +++ b/data/presets/presets/playground/structure.json @@ -2,6 +2,7 @@ "icon": "maki-pitch", "geometry": [ "point", + "line", "area" ], "tags": { diff --git a/data/taginfo.json b/data/taginfo.json index 927946f936..4a6c22a2b1 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -841,7 +841,7 @@ {"key": "playground", "value": "sandpit", "description": "🄿 Sandpit", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/playground-15.svg"}, {"key": "playground", "value": "seesaw", "description": "🄿 Seesaw", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/playground-15.svg"}, {"key": "playground", "value": "slide", "description": "🄿 Slide", "object_types": ["node", "way"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/playground-15.svg"}, - {"key": "playground", "value": "structure", "description": "🄿 Play Structure", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/pitch-15.svg"}, + {"key": "playground", "value": "structure", "description": "🄿 Play Structure", "object_types": ["node", "way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/pitch-15.svg"}, {"key": "playground", "value": "swing", "description": "🄿 Swing", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/playground-15.svg"}, {"key": "playground", "value": "zipwire", "description": "🄿 Zip Wire", "object_types": ["node", "way"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/playground-15.svg"}, {"key": "polling_station", "description": "🄿 Temporary Polling Place, 🄵 Polling Place", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-vote-yea.svg"}, From a02776a802e5ae25f845766588947a54ad3a33e5 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Mon, 22 Jul 2019 13:33:17 -0400 Subject: [PATCH 201/774] Make the iata and icao field names more descriptive --- data/presets.yaml | 4 ++-- data/presets/fields.json | 4 ++-- data/presets/fields/iata.json | 2 +- data/presets/fields/icao.json | 2 +- data/taginfo.json | 4 ++-- dist/locales/en.json | 4 ++-- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/data/presets.yaml b/data/presets.yaml index 3d24277eab..3263c75b8f 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -892,10 +892,10 @@ en: undefined: 'No' iata: # iata=* - label: IATA + label: IATA Airport Code icao: # icao=* - label: ICAO + label: ICAO Airport Code incline: # incline=* label: Incline diff --git a/data/presets/fields.json b/data/presets/fields.json index e7d4b88508..a10f3d054a 100644 --- a/data/presets/fields.json +++ b/data/presets/fields.json @@ -171,8 +171,8 @@ "horse_riding": {"key": "leisure", "type": "check", "label": "Horseback Riding", "strings": {"options": {"undefined": "No", "horse_riding": "Yes"}}, "reference": {"key": "leisure", "value": "horse_riding"}}, "horse_scale": {"key": "horse_scale", "type": "combo", "label": "Horseback Riding Difficulty", "placeholder": "Difficult, Dangerous...", "strings": {"options": {"common": "Easy: No problems or difficulties. (default)", "demanding": "Use with caution: Uneven way, occasional difficult passages.", "difficult": "Difficult: Way narrow and exposed. May contain obstacles to step over and narrow passages.", "critical": "Borderline: Passable only for experienced riders and horses. Major obstacles. Bridges should be examined carefully.", "dangerous": "Dangerous: Passable only for very experienced riders and horses and only in good weather. Dismount.", "impossible": "Impassable: Way or bridge not passable for horses. Too narrow, insuffient support, obstacles like ladders. Danger of life."}}}, "horse_stables": {"key": "amenity", "type": "check", "label": "Riding Stable", "strings": {"options": {"undefined": "No", "stables": "Yes"}}, "reference": {"key": "amenity", "value": "stables"}}, - "iata": {"key": "iata", "type": "text", "label": "IATA"}, - "icao": {"key": "icao", "type": "text", "label": "ICAO"}, + "iata": {"key": "iata", "type": "text", "label": "IATA Airport Code"}, + "icao": {"key": "icao", "type": "text", "label": "ICAO Airport Code"}, "incline_steps": {"key": "incline", "type": "combo", "label": "Incline", "strings": {"options": {"up": "Up", "down": "Down"}}}, "incline": {"key": "incline", "type": "combo", "label": "Incline"}, "indoor_type": {"key": "indoor", "type": "typeCombo", "label": "Type"}, diff --git a/data/presets/fields/iata.json b/data/presets/fields/iata.json index 572eea5ab7..3b3851a89c 100644 --- a/data/presets/fields/iata.json +++ b/data/presets/fields/iata.json @@ -1,5 +1,5 @@ { "key": "iata", "type": "text", - "label": "IATA" + "label": "IATA Airport Code" } diff --git a/data/presets/fields/icao.json b/data/presets/fields/icao.json index f666eaa885..a4a8e09b4f 100644 --- a/data/presets/fields/icao.json +++ b/data/presets/fields/icao.json @@ -1,5 +1,5 @@ { "key": "icao", "type": "text", - "label": "ICAO" + "label": "ICAO Airport Code" } diff --git a/data/taginfo.json b/data/taginfo.json index 4a6c22a2b1..98414491e5 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -1434,8 +1434,8 @@ {"key": "horse_scale", "value": "dangerous", "description": "🄵 Horseback Riding Difficulty"}, {"key": "horse_scale", "value": "impossible", "description": "🄵 Horseback Riding Difficulty"}, {"key": "amenity", "value": "stables", "description": "🄵 Riding Stable"}, - {"key": "iata", "description": "🄵 IATA"}, - {"key": "icao", "description": "🄵 ICAO"}, + {"key": "iata", "description": "🄵 IATA Airport Code"}, + {"key": "icao", "description": "🄵 ICAO Airport Code"}, {"key": "incline", "value": "up", "description": "🄵 Incline"}, {"key": "incline", "value": "down", "description": "🄵 Incline"}, {"key": "incline", "description": "🄵 Incline"}, diff --git a/dist/locales/en.json b/dist/locales/en.json index 767001efc2..53f52406b6 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -3184,10 +3184,10 @@ } }, "iata": { - "label": "IATA" + "label": "IATA Airport Code" }, "icao": { - "label": "ICAO" + "label": "ICAO Airport Code" }, "incline_steps": { "label": "Incline", From ccfe7b6726b007b89505cf7014333367ffaed6a6 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Mon, 22 Jul 2019 14:49:46 -0400 Subject: [PATCH 202/774] Add place of worship zone group --- data/presets/groups.json | 1 + .../groups/zones/place_of_worship.json | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+) create mode 100644 data/presets/groups/zones/place_of_worship.json diff --git a/data/presets/groups.json b/data/presets/groups.json index ece7d8a845..6bcf2f06e1 100644 --- a/data/presets/groups.json +++ b/data/presets/groups.json @@ -30,6 +30,7 @@ "zones/marina": {"matches": {"anyTags": {"leisure": "marina"}}, "nearby": {"anyTags": {"amenity": {"boat_rental": true, "toilets": true}, "highway": {"service": true, "street_lamp": true}, "leisure": {"fishing": true, "slipway": true}, "man_made": {"breakwater": true, "pier": true}, "seamark:type": {"mooring": true}, "shop": {"fishing": true}, "waterway": {"boatyard": true, "dock": true, "fuel": true, "sanitary_dump_station": true, "water_point": true}}, "allowOtherTags": false}}, "zones/park": {"matches": {"anyTags": {"leisure": "park"}}, "nearby": {"anyTags": {"amenity": {"bbq": true, "bench": true, "drinking_water": true, "fountain": true, "toilets": true, "waste_basket": true}, "information": {"board": true}, "leisure": {"playground": true, "firepit": true, "dog_park": true, "picnic_table": true}, "natural": {"tree": true}, "highway": {"footway": true, "path": true, "service": true, "street_lamp": true}, "tourism": {"information": true, "picnic_site": true}}, "allowOtherTags": false}}, "zones/parking": {"matches": {"anyTags": {"amenity": "parking"}}, "nearby": {"anyTags": {"highway": {"service": true, "street_lamp": true}, "service": {"parking_aisle": true}, "traffic_calming": {"bump": true, "island": true}, "vending": {"parking_tickets": true}}}}, + "zones/place_of_worship": {"matches": {"anyTags": {"amenity": "place_of_worship"}}, "nearby": {"anyTags": {"amenity": {"grave_yard": true, "school": true}, "landuse": {"religious": true}}, "allowOtherTags": false}}, "zones/playground": {"matches": {"anyTags": {"leisure": "playground"}}, "nearby": {"anyTags": {"amenity": {"bench": true}, "playground": true}}}, "zones/post_office": {"matches": {"anyTags": {"amenity": "post_office"}}, "nearby": {"anyTags": {"amenity": {"post_box": true}, "vending": {"stamps": true, "parcel_pickup": true}}}}, "zones/power": {"matches": {"anyTags": {"power": {"plant": true, "substation": true}}}, "nearby": {"anyTags": {"power": {"line": true, "minor_line": true, "pole": true, "tower": true, "transformer": true}}}}, diff --git a/data/presets/groups/zones/place_of_worship.json b/data/presets/groups/zones/place_of_worship.json new file mode 100644 index 0000000000..65cffd75f0 --- /dev/null +++ b/data/presets/groups/zones/place_of_worship.json @@ -0,0 +1,19 @@ +{ + "matches": { + "anyTags": { + "amenity": "place_of_worship" + } + }, + "nearby": { + "anyTags": { + "amenity": { + "grave_yard": true, + "school": true + }, + "landuse": { + "religious": true + } + }, + "allowOtherTags": false + } +} From 9d90cb9ce4e7cd22f9bf92daeef394f9dd7c0025 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Mon, 22 Jul 2019 15:31:38 -0400 Subject: [PATCH 203/774] Add fields and terms to the ferry route line preset Unify the fields for the two different ferry route presets --- data/presets.yaml | 1 + data/presets/presets.json | 4 ++-- data/presets/presets/route/ferry.json | 13 +++++++++++++ data/presets/presets/type/route/ferry.json | 14 ++------------ dist/locales/en.json | 2 +- 5 files changed, 19 insertions(+), 15 deletions(-) diff --git a/data/presets.yaml b/data/presets.yaml index 3263c75b8f..b8fd00ce18 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -6666,6 +6666,7 @@ en: route/ferry: # route=ferry name: Ferry Route + # 'terms: boat,merchant vessel,ship,water bus,water shuttle,water taxi' terms: '' seamark: # 'seamark:type=*' diff --git a/data/presets/presets.json b/data/presets/presets.json index a813d5513c..08d2d304d0 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -959,7 +959,7 @@ "railway/train_wash": {"icon": "maki-rail", "geometry": ["point", "vertex", "area"], "fields": ["operator", "building_area"], "tags": {"railway": "wash"}, "terms": ["wash", "clean"], "name": "Train Wash"}, "railway/tram": {"icon": "temaki-tram", "fields": ["{railway/rail}"], "moreFields": ["covered", "frequency_electrified", "maxspeed", "voltage_electrified"], "geometry": ["line"], "tags": {"railway": "tram"}, "terms": ["light rail", "streetcar", "tram", "trolley"], "name": "Tram"}, "relation": {"icon": "iD-relation", "fields": ["name", "relation"], "geometry": ["relation"], "tags": {}, "name": "Relation"}, - "route/ferry": {"icon": "maki-ferry", "geometry": ["line"], "fields": ["name", "operator", "duration", "access", "to", "from"], "moreFields": ["maxheight", "maxweight", "opening_hours", "wheelchair"], "tags": {"route": "ferry"}, "name": "Ferry Route"}, + "route/ferry": {"icon": "maki-ferry", "geometry": ["line"], "fields": ["name", "operator", "duration", "access", "toll", "to", "from"], "moreFields": ["dog", "interval", "maxheight", "maxweight", "network", "opening_hours", "ref_route", "wheelchair"], "tags": {"route": "ferry"}, "terms": ["boat", "merchant vessel", "ship", "water bus", "water shuttle", "water taxi"], "name": "Ferry Route"}, "seamark/beacon_isolated_danger": {"fields": ["ref", "operator", "seamark/beacon_isolated_danger/shape", "seamark/type"], "geometry": ["point", "vertex"], "terms": ["beacon isolated danger", "isolated danger beacon", "iala"], "tags": {"seamark:type": "beacon_isolated_danger"}, "name": "Danger Beacon"}, "seamark/beacon_lateral": {"fields": ["ref", "operator", "seamark/beacon_lateral/colour", "seamark/beacon_lateral/category", "seamark/beacon_lateral/shape", "seamark/beacon_lateral/system", "seamark/type"], "geometry": ["point", "vertex"], "terms": ["lateral beacon", "beacon lateral", "cevni", "channel marker", "iala", "lateral mark"], "tags": {"seamark:type": "beacon_lateral"}, "name": "Channel Beacon"}, "seamark/buoy_lateral": {"fields": ["ref", "operator", "seamark/buoy_lateral/colour", "seamark/buoy_lateral/category", "seamark/buoy_lateral/shape", "seamark/buoy_lateral/system", "seamark/type"], "geometry": ["point", "vertex"], "terms": ["lateral buoy", "buoy lateral", "cevni", "channel marker", "iala", "lateral mark"], "tags": {"seamark:type": "buoy_lateral"}, "name": "Channel Buoy"}, @@ -1193,7 +1193,7 @@ "type/route/bicycle": {"icon": "maki-bicycle", "fields": ["name", "ref_route", "network_bicycle", "cycle_network", "to", "from"], "geometry": ["relation"], "tags": {"type": "route", "route": "bicycle"}, "name": "Cycle Route"}, "type/route/bus": {"icon": "maki-bus", "fields": ["{type/route/train}"], "moreFields": ["{type/route/train}"], "geometry": ["relation"], "tags": {"type": "route", "route": "bus"}, "name": "Bus Route"}, "type/route/detour": {"icon": "iD-route-detour", "fields": ["name", "ref_route", "to", "from"], "geometry": ["relation"], "tags": {"type": "route", "route": "detour"}, "name": "Detour Route"}, - "type/route/ferry": {"icon": "maki-ferry", "fields": ["name", "ref_route", "operator", "network", "to", "from"], "moreFields": ["interval", "maxheight", "maxweight", "opening_hours", "duration", "wheelchair"], "geometry": ["relation"], "tags": {"type": "route", "route": "ferry"}, "name": "Ferry Route"}, + "type/route/ferry": {"icon": "maki-ferry", "fields": ["{route/ferry}"], "moreFields": ["{route/ferry}"], "geometry": ["relation"], "tags": {"type": "route", "route": "ferry"}, "name": "Ferry Route"}, "type/route/foot": {"icon": "temaki-pedestrian", "fields": ["name", "ref_route", "operator", "network_foot", "to", "from"], "geometry": ["relation"], "tags": {"type": "route", "route": "foot"}, "name": "Foot Route"}, "type/route/hiking": {"icon": "fas-hiking", "fields": ["name", "ref_route", "operator", "network_foot", "description", "distance", "to", "from"], "geometry": ["relation"], "tags": {"type": "route", "route": "hiking"}, "name": "Hiking Route"}, "type/route/horse": {"icon": "maki-horse-riding", "fields": ["name", "ref_route", "operator", "network_horse", "description", "distance", "to", "from"], "geometry": ["relation"], "tags": {"type": "route", "route": "horse"}, "name": "Riding Route"}, diff --git a/data/presets/presets/route/ferry.json b/data/presets/presets/route/ferry.json index 629c2ee9a5..ed1af726fd 100644 --- a/data/presets/presets/route/ferry.json +++ b/data/presets/presets/route/ferry.json @@ -8,17 +8,30 @@ "operator", "duration", "access", + "toll", "to", "from" ], "moreFields": [ + "dog", + "interval", "maxheight", "maxweight", + "network", "opening_hours", + "ref_route", "wheelchair" ], "tags": { "route": "ferry" }, + "terms": [ + "boat", + "merchant vessel", + "ship", + "water bus", + "water shuttle", + "water taxi" + ], "name": "Ferry Route" } diff --git a/data/presets/presets/type/route/ferry.json b/data/presets/presets/type/route/ferry.json index e69e5f589d..51d262c3ef 100644 --- a/data/presets/presets/type/route/ferry.json +++ b/data/presets/presets/type/route/ferry.json @@ -1,20 +1,10 @@ { "icon": "maki-ferry", "fields": [ - "name", - "ref_route", - "operator", - "network", - "to", - "from" + "{route/ferry}" ], "moreFields" : [ - "interval", - "maxheight", - "maxweight", - "opening_hours", - "duration", - "wheelchair" + "{route/ferry}" ], "geometry": [ "relation" diff --git a/dist/locales/en.json b/dist/locales/en.json index 53f52406b6..82b6d025e0 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -8197,7 +8197,7 @@ }, "route/ferry": { "name": "Ferry Route", - "terms": "" + "terms": "boat,merchant vessel,ship,water bus,water shuttle,water taxi" }, "seamark/beacon_isolated_danger": { "name": "Danger Beacon", From eb49a367b45235730874915dd67713b74a53ba5d Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Mon, 22 Jul 2019 16:12:20 -0400 Subject: [PATCH 204/774] Don't reuse changeset comment, sources, and hashtags from prior uploads (close #6642, re: #6279) --- modules/behavior/hash.js | 18 +++++------------- modules/core/history.js | 9 ++++++++- modules/ui/commit.js | 17 ++++++++++++++++- modules/ui/init.js | 12 ++++++------ 4 files changed, 35 insertions(+), 21 deletions(-) diff --git a/modules/behavior/hash.js b/modules/behavior/hash.js index 56667f8cdf..853b8f42c9 100644 --- a/modules/behavior/hash.js +++ b/modules/behavior/hash.js @@ -97,19 +97,11 @@ export function behaviorHash(context) { context.zoomToEntity(q.id.split(',')[0], !q.map); } - if (q.comment) { - context.storage('comment', q.comment); - context.storage('commentDate', Date.now()); - } - - if (q.source) { - context.storage('source', q.source); - context.storage('commentDate', Date.now()); - } - - if (q.hashtags) { - context.storage('hashtags', q.hashtags); - } + // Store these here instead of updating local storage since local + // storage could be flushed if the user discards pending changes + if (q.comment) behavior.comment = q.comment; + if (q.source) behavior.source = q.source; + if (q.hashtags) behavior.hashtags = q.hashtags; if (q.walkthrough === 'true') { behavior.startWalkthrough = true; diff --git a/modules/core/history.js b/modules/core/history.js index acb0d97d50..f7b50fcf97 100644 --- a/modules/core/history.js +++ b/modules/core/history.js @@ -643,7 +643,14 @@ export function coreHistory(context) { clearSaved: function() { context.debouncedSave.cancel(); - if (lock.locked()) context.storage(getKey('saved_history'), null); + if (lock.locked()) { + context.storage(getKey('saved_history'), null); + + // clear the changeset metadata associated with the saved history + context.storage('comment', null); + context.storage('hashtags', null); + context.storage('source', null); + } return history; }, diff --git a/modules/ui/commit.js b/modules/ui/commit.js index f0ad660043..a653484ba3 100644 --- a/modules/ui/commit.js +++ b/modules/ui/commit.js @@ -65,6 +65,21 @@ export function uiCommit(context) { // Initialize changeset if one does not exist yet. // Also pull values from local storage. if (!_changeset) { + + // load in the URL hash values, if any + var hash = context.ui().hash; + if (hash.comment) { + context.storage('comment', hash.comment); + context.storage('commentDate', Date.now()); + } + if (hash.source) { + context.storage('source', hash.source); + context.storage('commentDate', Date.now()); + } + if (hash.hashtags) { + context.storage('hashtags', hash.hashtags); + } + var detected = utilDetect(); tags = { comment: context.storage('comment') || '', @@ -94,7 +109,7 @@ export function uiCommit(context) { if (sources.indexOf('streetlevel imagery') === -1) { sources.push('streetlevel imagery'); } - + // add the photo overlays used during editing as sources photoOverlaysUsed.forEach(function(photoOverlay) { if (sources.indexOf(photoOverlay) === -1) { diff --git a/modules/ui/init.js b/modules/ui/init.js index 1e97522682..695ce94fac 100644 --- a/modules/ui/init.js +++ b/modules/ui/init.js @@ -221,9 +221,9 @@ export function uiInit(context) { ui.onResize(); map.redrawEnable(true); - var hash = behaviorHash(context); - hash(); - if (!hash.hadHash) { + ui.hash = behaviorHash(context); + ui.hash(); + if (!ui.hash.hadHash) { map.centerZoom([0, 0], 2); } @@ -291,7 +291,7 @@ export function uiInit(context) { context.enter(modeBrowse(context)); if (!_initCounter++) { - if (!hash.startWalkthrough) { + if (!ui.hash.startWalkthrough) { context.container() .call(uiSplash(context)) .call(uiRestore(context)); @@ -317,8 +317,8 @@ export function uiInit(context) { _initCounter++; - if (hash.startWalkthrough) { - hash.startWalkthrough = false; + if (ui.hash.startWalkthrough) { + ui.hash.startWalkthrough = false; context.container().call(uiIntro(context)); } From 87d0fc0a16d391091a464402e752c01909a89c51 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Mon, 22 Jul 2019 16:30:48 -0400 Subject: [PATCH 205/774] Add ferry zone group --- data/presets/groups.json | 1 + .../groups/zones/public_transport/ferry.json | 49 +++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 data/presets/groups/zones/public_transport/ferry.json diff --git a/data/presets/groups.json b/data/presets/groups.json index 6bcf2f06e1..71028f3bc6 100644 --- a/data/presets/groups.json +++ b/data/presets/groups.json @@ -35,6 +35,7 @@ "zones/post_office": {"matches": {"anyTags": {"amenity": "post_office"}}, "nearby": {"anyTags": {"amenity": {"post_box": true}, "vending": {"stamps": true, "parcel_pickup": true}}}}, "zones/power": {"matches": {"anyTags": {"power": {"plant": true, "substation": true}}}, "nearby": {"anyTags": {"power": {"line": true, "minor_line": true, "pole": true, "tower": true, "transformer": true}}}}, "zones/public_transport/bus_stop": {"matches": {"allTags": {"bus": "yes", "public_transport": {"platform": true, "stop_area": true, "stop_position": true}}}, "nearby": {"any": [{"anyTags": {"amenity": {"bench": true}, "footway": "sidewalk", "information": {"board": true}, "shelter_type": "public_transport", "vending": "public_transport_tickets"}}, {"allTags": {"bus": "yes", "public_transport": {"platform": true, "stop_position": true}}}]}}, + "zones/public_transport/ferry": {"matches": {"any": [{"allTags": {"ferry": "yes", "public_transport": {"platform": true, "station": true, "stop_area": true, "stop_position": true}}}, {"anyTags": {"amenity": "ferry_terminal"}}]}, "nearby": {"any": [{"allTags": {"amenity": "parking", "park_ride": "yes"}}, {"anyTags": {"man_made": "pier", "route": "ferry", "vending": "public_transport_tickets"}}, {"allTags": {"ferry": "yes", "public_transport": {"platform": true, "station": true, "stop_position": true}}}]}}, "zones/public_transport/subway": {"matches": {"allTags": {"subway": "yes", "public_transport": {"platform": true, "station": true, "stop_area": true, "stop_position": true}}}, "nearby": {"any": [{"allTags": {"amenity": "parking", "park_ride": "yes"}}, {"anyTags": {"highway": {"elevator": true, "steps": true}, "railway": {"subway": true, "subway_entrance": true}, "surveillance:type": "camera", "vending": {"public_transport_tickets": true}}}, {"allTags": {"subway": "yes", "public_transport": {"platform": true, "station": true, "stop_position": true}}}]}}, "zones/public_transport/train": {"matches": {"allTags": {"train": "yes", "public_transport": {"platform": true, "station": true, "stop_area": true, "stop_position": true}}}, "nearby": {"any": [{"allTags": {"amenity": "parking", "park_ride": "yes"}}, {"anyTags": {"highway": {"elevator": true, "steps": true}, "surveillance:type": "camera", "vending": {"public_transport_tickets": true}}}, {"allTags": {"train": "yes", "public_transport": {"platform": true, "station": true, "stop_position": true}}}]}}, "zones/residence": {"matches": {"anyTags": {"building": {"detached": true, "house": true, "semidetached_house": true, "static_caravan": true}}}, "nearby": {"anyTags": {"barrier": {"fence": true}, "building": {"garage": true}, "footway": {"sidewalk": true}, "highway": {"footway": true, "residential": true, "service": true, "street_lamp": true}, "leisure": {"swimming_pool": true}, "natural": {"tree": true}, "service": {"alley": true, "driveway": true}}, "allowOtherTags": false}}, diff --git a/data/presets/groups/zones/public_transport/ferry.json b/data/presets/groups/zones/public_transport/ferry.json new file mode 100644 index 0000000000..8fa8471542 --- /dev/null +++ b/data/presets/groups/zones/public_transport/ferry.json @@ -0,0 +1,49 @@ +{ + "matches": { + "any": [ + { + "allTags": { + "ferry": "yes", + "public_transport": { + "platform": true, + "station": true, + "stop_area": true, + "stop_position": true + } + } + }, + { + "anyTags": { + "amenity": "ferry_terminal" + } + } + ] + }, + "nearby": { + "any": [ + { + "allTags": { + "amenity": "parking", + "park_ride": "yes" + } + }, + { + "anyTags": { + "man_made": "pier", + "route": "ferry", + "vending": "public_transport_tickets" + } + }, + { + "allTags": { + "ferry": "yes", + "public_transport": { + "platform": true, + "station": true, + "stop_position": true + } + } + } + ] + } +} From afe063747a4de672957b8d3455e2fd2457ac7fb9 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 23 Jul 2019 09:25:06 -0400 Subject: [PATCH 206/774] Don't allow placing railway=crossing on roads and railway=level_crossing on paths Add `note` property to group schema for developer documentation Rename `groups` group property to `allGroups` Add `anyGroups` group property Break rail lines and vehicular roads into their own groups --- build_data.js | 5 ++++ data/presets/groups.json | 18 ++++++----- data/presets/groups/highway/vehicular.json | 13 ++++++++ data/presets/groups/railway/lines.json | 13 ++++++++ .../presets/groups/toggleable/boundaries.json | 2 +- data/presets/groups/toggleable/landuse.json | 2 +- .../groups/toggleable/past_future.json | 2 +- data/presets/groups/toggleable/rail.json | 2 +- data/presets/groups/vertices/highway.json | 6 +--- data/presets/groups/vertices/railway.json | 8 ++--- .../groups/vertices/railway/crossing.json | 15 ++++++++++ .../vertices/railway/level_crossing.json | 15 ++++++++++ .../groups/zones/public_transport/train.json | 3 ++ data/presets/schema/group.json | 13 +++++++- modules/entities/group_manager.js | 30 +++++++++++++++---- 15 files changed, 119 insertions(+), 28 deletions(-) create mode 100644 data/presets/groups/highway/vehicular.json create mode 100644 data/presets/groups/railway/lines.json create mode 100644 data/presets/groups/vertices/railway/crossing.json create mode 100644 data/presets/groups/vertices/railway/level_crossing.json diff --git a/build_data.js b/build_data.js index 724747cafd..d9673839c1 100644 --- a/build_data.js +++ b/build_data.js @@ -239,6 +239,11 @@ function generateGroups(tstrings) { tstrings.groups[id] = t; } + if (group.note) { + // notes are only used for developer documentation + delete group.note; + } + groups[id] = group; }); return groups; diff --git a/data/presets/groups.json b/data/presets/groups.json index 71028f3bc6..d877613bfc 100644 --- a/data/presets/groups.json +++ b/data/presets/groups.json @@ -1,22 +1,26 @@ { "groups": { + "highway/vehicular": {"matches": {"geometry": "line", "anyTags": {"highway": {"motorway": true, "trunk": true, "primary": true, "secondary": true, "tertiary": true, "residential": true, "motorway_link": true, "trunk_link": true, "primary_link": true, "secondary_link": true, "tertiary_link": true, "unclassified": true, "road": true, "service": true, "track": true, "living_street": true, "bus_guideway": true}}}}, + "railway/lines": {"matches": {"geometry": "line", "anyTags": {"railway": {"rail": true, "light_rail": true, "tram": true, "subway": true, "monorail": true, "funicular": true, "miniature": true, "narrow_gauge": true, "disused": true, "preserved": true, "abandoned": true, "construction": true}}}}, "toggleable/aerialways": {"name": "Aerial Features", "description": "Chair Lifts, Gondolas, Zip Lines, etc.", "toggleable": true, "matches": {"allTags": {"aerialway": {"*": true, "no": false, "yes": false, "station": false}}}}, - "toggleable/boundaries": {"name": "Boundaries", "description": "Administrative Boundaries", "toggleable": {"hiddenByDefault": true}, "matches": {"geometry": ["line", "area", "relation"], "allTags": {"boundary": {"*": true, "no": false}}, "groups": {"toggleable/traffic_roads": false, "toggleable/service_roads": false, "toggleable/paths": false, "toggleable/water": false, "toggleable/pistes": false, "toggleable/railway": false, "toggleable/landuse": false, "toggleable/building": false, "toggleable/power": false}}}, + "toggleable/boundaries": {"name": "Boundaries", "description": "Administrative Boundaries", "toggleable": {"hiddenByDefault": true}, "matches": {"geometry": ["line", "area", "relation"], "allTags": {"boundary": {"*": true, "no": false}}, "allGroups": {"toggleable/traffic_roads": false, "toggleable/service_roads": false, "toggleable/paths": false, "toggleable/water": false, "toggleable/pistes": false, "toggleable/railway": false, "toggleable/landuse": false, "toggleable/building": false, "toggleable/power": false}}}, "toggleable/building_parts": {"name": "Building Parts", "description": "3D Building and Roof Components", "toggleable": true, "matches": {"allTags": {"building:part": {"*": true, "no": false}}}}, "toggleable/buildings": {"name": "Buildings", "description": "Houses, Shelters, Garages, etc.", "toggleable": {"maxShown": 250}, "matches": {"geometry": "area", "anyTags": {"building": {"*": true, "no": false}, "parking": {"multi-storey": true, "sheds": true, "carports": true, "garage_boxes": true}}}}, "toggleable/indoor": {"name": "Indoor Features", "description": "Rooms, Corridors, Stairwells, etc.", "toggleable": true, "matches": {"allTags": {"indoor": {"*": true, "no": false}}}}, - "toggleable/landuse": {"name": "Landuse Features", "description": "Forests, Farmland, Parks, Residential, Commercial, etc.", "toggleable": true, "matches": {"geometry": "area", "groups": {"toggleable/buildings": false, "toggleable/building_parts": false, "toggleable/paths": false, "toggleable/indoor": false, "toggleable/water": false, "toggleable/pistes": false}}}, - "toggleable/past_future": {"name": "Past/Future Features", "description": "Proposed, Construction, Abandoned, Demolished, etc.", "toggleable": true, "matches": {"anyTags": {"*": {"proposed": true, "construction": true, "abandoned": true, "dismantled": true, "disused": true, "razed": true, "demolished": true, "obliterated": true}, "proposed": "*", "construction": "*", "abandoned": "*", "dismantled": "*", "disused": "*", "razed": "*", "demolished": "*", "obliterated": "*"}, "groups": {"toggleable/paths": false, "toggleable/traffic_roads": false, "toggleable/service_roads": false}}}, + "toggleable/landuse": {"name": "Landuse Features", "description": "Forests, Farmland, Parks, Residential, Commercial, etc.", "toggleable": true, "matches": {"geometry": "area", "allGroups": {"toggleable/buildings": false, "toggleable/building_parts": false, "toggleable/paths": false, "toggleable/indoor": false, "toggleable/water": false, "toggleable/pistes": false}}}, + "toggleable/past_future": {"name": "Past/Future Features", "description": "Proposed, Construction, Abandoned, Demolished, etc.", "toggleable": true, "matches": {"anyTags": {"*": {"proposed": true, "construction": true, "abandoned": true, "dismantled": true, "disused": true, "razed": true, "demolished": true, "obliterated": true}, "proposed": "*", "construction": "*", "abandoned": "*", "dismantled": "*", "disused": "*", "razed": "*", "demolished": "*", "obliterated": "*"}, "allGroups": {"toggleable/paths": false, "toggleable/traffic_roads": false, "toggleable/service_roads": false}}}, "toggleable/paths": {"name": "Paths", "description": "Sidewalks, Foot Paths, Cycle Paths, etc.", "toggleable": true, "matches": {"geometry": ["line", "area"], "allTags": {"highway": {"path": true, "footway": true, "cycleway": true, "bridleway": true, "pedestrian": true, "corridor": true, "steps": true}}}}, "toggleable/pistes": {"name": "Pistes", "description": "Ski Slopes, Sled Runs, Ice Skating Trails, etc.", "toggleable": true, "matches": {"allTags": {"piste:type": {"*": true, "no": false}}}}, "toggleable/points": {"name": "Points", "description": "Points of Interest", "toggleable": {"maxShown": 200}, "matches": {"geometry": "point"}}, "toggleable/power": {"name": "Power Features", "description": "Power Lines, Power Plants, Substations, etc.", "toggleable": true, "matches": {"allTags": {"power": {"*": true, "no": false}}}}, - "toggleable/rail": {"name": "Railway Features", "description": "Rails, Train Signals, etc.", "toggleable": true, "matches": {"anyTags": {"railway": {"*": true, "no": false}, "landuse": "railway"}, "groups": {"toggleable/traffic_roads": false, "toggleable/service_roads": false, "toggleable/paths": false}}}, + "toggleable/rail": {"name": "Railway Features", "description": "Rails, Train Signals, etc.", "toggleable": true, "matches": {"anyTags": {"railway": {"*": true, "no": false}, "landuse": "railway"}, "allGroups": {"toggleable/traffic_roads": false, "toggleable/service_roads": false, "toggleable/paths": false}}}, "toggleable/service_roads": {"name": "Service Roads", "description": "Driveways, Parking Aisles, Tracks, etc.", "toggleable": true, "matches": {"geometry": "line", "allTags": {"highway": {"service": true, "road": true, "track": true}}}}, "toggleable/traffic_roads": {"name": "Traffic Roads", "description": "Highways, Streets, etc.", "toggleable": true, "matches": {"geometry": "line", "allTags": {"highway": {"motorway": true, "motorway_link": true, "trunk": true, "trunk_link": true, "primary": true, "primary_link": true, "secondary": true, "secondary_link": true, "tertiary": true, "tertiary_link": true, "residential": true, "unclassified": true, "living_street": true}}}}, "toggleable/water": {"name": "Water Features", "description": "Rivers, Lakes, Ponds, Basins, etc.", "toggleable": true, "matches": {"anyTags": {"waterway": {"*": true, "no": false}, "natural": {"water": true, "coastline": true, "bay": true}, "landuse": {"pond": true, "basin": true, "reservoir": true, "salt_pond": true}}}}, - "vertices/highway": {"matches": {"geometry": "vertex", "anyTags": {"highway": {"emergency_bay": true, "give_way": true, "milestone": true, "mini_roundabout": true, "passing_place": true, "stop": true, "traffic_signals": true, "turning_circle": true, "turning_loop": true}, "traffic_calming": true, "traffic_sign": true, "railway": {"crossing": true, "level_crossing": true}}}, "vertexOf": {"geometry": "line", "anyTags": {"highway": {"motorway": true, "trunk": true, "primary": true, "secondary": true, "tertiary": true, "residential": true, "motorway_link": true, "trunk_link": true, "primary_link": true, "secondary_link": true, "tertiary_link": true, "unclassified": true, "road": true, "service": true, "track": true, "living_street": true, "bus_guideway": true, "path": true, "footway": true, "cycleway": true, "bridleway": true, "pedestrian": true}}}}, - "vertices/railway": {"matches": {"geometry": "vertex", "anyTags": {"railway": {"buffer_stop": true, "crossing": true, "derail": true, "level_crossing": true, "milestone": true, "signal": true, "station": true, "switch": true, "train_wash": true, "tram_stop": true}}}, "vertexOf": {"geometry": "line", "anyTags": {"railway": {"rail": true, "light_rail": true, "tram": true, "subway": true, "monorail": true, "funicular": true, "miniature": true, "narrow_gauge": true, "disused": true, "preserved": true, "abandoned": true, "construction": true}}}}, + "vertices/highway": {"matches": {"geometry": "vertex", "anyTags": {"highway": {"emergency_bay": true, "give_way": true, "milestone": true, "mini_roundabout": true, "passing_place": true, "stop": true, "traffic_signals": true, "turning_circle": true, "turning_loop": true}, "traffic_calming": true, "traffic_sign": true}}, "vertexOf": {"geometry": "line", "anyTags": {"highway": {"motorway": true, "trunk": true, "primary": true, "secondary": true, "tertiary": true, "residential": true, "motorway_link": true, "trunk_link": true, "primary_link": true, "secondary_link": true, "tertiary_link": true, "unclassified": true, "road": true, "service": true, "track": true, "living_street": true, "bus_guideway": true, "path": true, "footway": true, "cycleway": true, "bridleway": true, "pedestrian": true}}}}, + "vertices/railway": {"matches": {"geometry": "vertex", "anyTags": {"railway": {"buffer_stop": true, "derail": true, "milestone": true, "signal": true, "station": true, "switch": true, "train_wash": true, "tram_stop": true}}}, "vertexOf": {"geometry": "line", "anyTags": {"anyGroups": {"railway/lines": true}}}}, + "vertices/railway/crossing": {"matches": {"geometry": "vertex", "anyTags": {"railway": "crossing"}}, "vertexOf": {"geometry": "line", "anyGroups": {"toggleable/paths": true, "railway/lines": true}}}, + "vertices/railway/level_crossing": {"matches": {"geometry": "vertex", "anyTags": {"railway": "level_crossing"}}, "vertexOf": {"geometry": "line", "anyGroups": {"highway/vehicular": true, "railway/lines": true}}}, "zones/airport": {"matches": {"anyTags": {"aeroway": "aerodrome"}}, "nearby": {"anyTags": {"aeroway": "*", "amenity": {"police": true}, "building": {"hangar": true}, "highway": {"service": true}, "surveillance:type": "camera", "tourism": {"hotel": true}}}}, "zones/bank": {"matches": {"anyTags": {"amenity": "bank"}}, "nearby": {"anyTags": {"amenity": {"atm": true}, "service": "drive-through", "surveillance:type": "camera"}}}, "zones/building": {"matches": {"anyTags": {"building": true}}, "nearby": {"anyTags": {"entrance": true}, "allowOtherTags": false}}, @@ -37,7 +41,7 @@ "zones/public_transport/bus_stop": {"matches": {"allTags": {"bus": "yes", "public_transport": {"platform": true, "stop_area": true, "stop_position": true}}}, "nearby": {"any": [{"anyTags": {"amenity": {"bench": true}, "footway": "sidewalk", "information": {"board": true}, "shelter_type": "public_transport", "vending": "public_transport_tickets"}}, {"allTags": {"bus": "yes", "public_transport": {"platform": true, "stop_position": true}}}]}}, "zones/public_transport/ferry": {"matches": {"any": [{"allTags": {"ferry": "yes", "public_transport": {"platform": true, "station": true, "stop_area": true, "stop_position": true}}}, {"anyTags": {"amenity": "ferry_terminal"}}]}, "nearby": {"any": [{"allTags": {"amenity": "parking", "park_ride": "yes"}}, {"anyTags": {"man_made": "pier", "route": "ferry", "vending": "public_transport_tickets"}}, {"allTags": {"ferry": "yes", "public_transport": {"platform": true, "station": true, "stop_position": true}}}]}}, "zones/public_transport/subway": {"matches": {"allTags": {"subway": "yes", "public_transport": {"platform": true, "station": true, "stop_area": true, "stop_position": true}}}, "nearby": {"any": [{"allTags": {"amenity": "parking", "park_ride": "yes"}}, {"anyTags": {"highway": {"elevator": true, "steps": true}, "railway": {"subway": true, "subway_entrance": true}, "surveillance:type": "camera", "vending": {"public_transport_tickets": true}}}, {"allTags": {"subway": "yes", "public_transport": {"platform": true, "station": true, "stop_position": true}}}]}}, - "zones/public_transport/train": {"matches": {"allTags": {"train": "yes", "public_transport": {"platform": true, "station": true, "stop_area": true, "stop_position": true}}}, "nearby": {"any": [{"allTags": {"amenity": "parking", "park_ride": "yes"}}, {"anyTags": {"highway": {"elevator": true, "steps": true}, "surveillance:type": "camera", "vending": {"public_transport_tickets": true}}}, {"allTags": {"train": "yes", "public_transport": {"platform": true, "station": true, "stop_position": true}}}]}}, + "zones/public_transport/train": {"matches": {"allTags": {"train": "yes", "public_transport": {"platform": true, "station": true, "stop_area": true, "stop_position": true}}}, "nearby": {"any": [{"allTags": {"amenity": "parking", "park_ride": "yes"}}, {"anyTags": {"highway": {"elevator": true, "steps": true}, "railway": {"rail": true}, "surveillance:type": "camera", "vending": {"public_transport_tickets": true}}}, {"allTags": {"train": "yes", "public_transport": {"platform": true, "station": true, "stop_position": true}}}]}}, "zones/residence": {"matches": {"anyTags": {"building": {"detached": true, "house": true, "semidetached_house": true, "static_caravan": true}}}, "nearby": {"anyTags": {"barrier": {"fence": true}, "building": {"garage": true}, "footway": {"sidewalk": true}, "highway": {"footway": true, "residential": true, "service": true, "street_lamp": true}, "leisure": {"swimming_pool": true}, "natural": {"tree": true}, "service": {"alley": true, "driveway": true}}, "allowOtherTags": false}}, "zones/school": {"matches": {"anyTags": {"amenity": "school"}}, "nearby": {"anyTags": {"amenity": {"bench": true, "waste_basket": true}, "building": {"school": true}, "highway": {"service": true, "street_lamp": true}, "leisure": {"pitch": true, "picnic_table": true, "playground": true}, "man_made": {"flagpole": true}, "natural": {"tree": true}, "sport": {"american_football": true, "baseball": true, "basketball": true, "cricket": true, "field_hockey": true, "running": true, "soccer": true, "softball": true, "tennis": true}}, "allowOtherTags": false}}, "zones/stadium": {"matches": {"anyTags": {"leisure": "stadium"}}, "nearby": {"anyTags": {"amenity": {"drinking_water": true, "toilets": true}, "building": {"stadium": true}, "emergency": {"defibrillator": true, "first_aid_kit": true}, "highway": {"footway": true, "steps": true}, "leisure": {"bleachers": true, "pitch": true, "track": true}, "shop": {"ticket": true}, "tourism": {"information": true}}, "allowOtherTags": false}}, diff --git a/data/presets/groups/highway/vehicular.json b/data/presets/groups/highway/vehicular.json new file mode 100644 index 0000000000..b30f5cfa38 --- /dev/null +++ b/data/presets/groups/highway/vehicular.json @@ -0,0 +1,13 @@ +{ + "note": "Features that motor vehicles might drive along", + "matches": { + "geometry": "line", + "anyTags": { + "highway": { + "motorway": true, "trunk": true, "primary": true, "secondary": true, "tertiary": true, "residential": true, + "motorway_link": true, "trunk_link": true, "primary_link": true, "secondary_link": true, "tertiary_link": true, + "unclassified": true, "road": true, "service": true, "track": true, "living_street": true, "bus_guideway": true + } + } + } +} diff --git a/data/presets/groups/railway/lines.json b/data/presets/groups/railway/lines.json new file mode 100644 index 0000000000..ba506547f1 --- /dev/null +++ b/data/presets/groups/railway/lines.json @@ -0,0 +1,13 @@ +{ + "note": "Features that are present or future rail lines of some sort, even if there are no rails present", + "matches": { + "geometry": "line", + "anyTags": { + "railway": { + "rail": true, "light_rail": true, "tram": true, "subway": true, + "monorail": true, "funicular": true, "miniature": true, "narrow_gauge": true, + "disused": true, "preserved": true, "abandoned": true, "construction": true + } + } + } +} diff --git a/data/presets/groups/toggleable/boundaries.json b/data/presets/groups/toggleable/boundaries.json index af9b7be58a..eba05b1a96 100644 --- a/data/presets/groups/toggleable/boundaries.json +++ b/data/presets/groups/toggleable/boundaries.json @@ -12,7 +12,7 @@ "no": false } }, - "groups": { + "allGroups": { "toggleable/traffic_roads": false, "toggleable/service_roads": false, "toggleable/paths": false, diff --git a/data/presets/groups/toggleable/landuse.json b/data/presets/groups/toggleable/landuse.json index 365d1f4aea..62533bb8ea 100644 --- a/data/presets/groups/toggleable/landuse.json +++ b/data/presets/groups/toggleable/landuse.json @@ -4,7 +4,7 @@ "toggleable": true, "matches": { "geometry": "area", - "groups": { + "allGroups": { "toggleable/buildings": false, "toggleable/building_parts": false, "toggleable/paths": false, diff --git a/data/presets/groups/toggleable/past_future.json b/data/presets/groups/toggleable/past_future.json index a03121a1c3..9def022111 100644 --- a/data/presets/groups/toggleable/past_future.json +++ b/data/presets/groups/toggleable/past_future.json @@ -23,7 +23,7 @@ "demolished": "*", "obliterated": "*" }, - "groups": { + "allGroups": { "toggleable/paths": false, "toggleable/traffic_roads": false, "toggleable/service_roads": false diff --git a/data/presets/groups/toggleable/rail.json b/data/presets/groups/toggleable/rail.json index 463f0a0b65..0442ea2dfd 100644 --- a/data/presets/groups/toggleable/rail.json +++ b/data/presets/groups/toggleable/rail.json @@ -10,7 +10,7 @@ }, "landuse": "railway" }, - "groups": { + "allGroups": { "toggleable/traffic_roads": false, "toggleable/service_roads": false, "toggleable/paths": false diff --git a/data/presets/groups/vertices/highway.json b/data/presets/groups/vertices/highway.json index cc21ae09f6..bba43e5733 100644 --- a/data/presets/groups/vertices/highway.json +++ b/data/presets/groups/vertices/highway.json @@ -14,11 +14,7 @@ "turning_loop": true }, "traffic_calming": true, - "traffic_sign": true, - "railway": { - "crossing": true, - "level_crossing": true - } + "traffic_sign": true } }, "vertexOf": { diff --git a/data/presets/groups/vertices/railway.json b/data/presets/groups/vertices/railway.json index 026bba3a5e..177b93cfeb 100644 --- a/data/presets/groups/vertices/railway.json +++ b/data/presets/groups/vertices/railway.json @@ -4,9 +4,7 @@ "anyTags": { "railway": { "buffer_stop": true, - "crossing": true, "derail": true, - "level_crossing": true, "milestone": true, "signal": true, "station": true, @@ -19,10 +17,8 @@ "vertexOf": { "geometry": "line", "anyTags": { - "railway": { - "rail": true, "light_rail": true, "tram": true, "subway": true, - "monorail": true, "funicular": true, "miniature": true, "narrow_gauge": true, - "disused": true, "preserved": true, "abandoned": true, "construction": true + "anyGroups": { + "railway/lines": true } } } diff --git a/data/presets/groups/vertices/railway/crossing.json b/data/presets/groups/vertices/railway/crossing.json new file mode 100644 index 0000000000..ed6a98db3e --- /dev/null +++ b/data/presets/groups/vertices/railway/crossing.json @@ -0,0 +1,15 @@ +{ + "matches": { + "geometry": "vertex", + "anyTags": { + "railway": "crossing" + } + }, + "vertexOf": { + "geometry": "line", + "anyGroups": { + "toggleable/paths": true, + "railway/lines": true + } + } +} diff --git a/data/presets/groups/vertices/railway/level_crossing.json b/data/presets/groups/vertices/railway/level_crossing.json new file mode 100644 index 0000000000..236b7ead79 --- /dev/null +++ b/data/presets/groups/vertices/railway/level_crossing.json @@ -0,0 +1,15 @@ +{ + "matches": { + "geometry": "vertex", + "anyTags": { + "railway": "level_crossing" + } + }, + "vertexOf": { + "geometry": "line", + "anyGroups": { + "highway/vehicular": true, + "railway/lines": true + } + } +} diff --git a/data/presets/groups/zones/public_transport/train.json b/data/presets/groups/zones/public_transport/train.json index a47ae90b5b..bcc2915f0d 100644 --- a/data/presets/groups/zones/public_transport/train.json +++ b/data/presets/groups/zones/public_transport/train.json @@ -24,6 +24,9 @@ "elevator": true, "steps": true }, + "railway": { + "rail": true + }, "surveillance:type": "camera", "vending": { "public_transport_tickets": true diff --git a/data/presets/schema/group.json b/data/presets/schema/group.json index ae2e03cf70..2afd33ea11 100644 --- a/data/presets/schema/group.json +++ b/data/presets/schema/group.json @@ -3,6 +3,10 @@ "description": "A grouping of features that have something in common", "type": "object", "properties": { + "note": { + "description": "Developer documentation for this group", + "type": "string" + }, "name": { "description": "The name for the group, if needed for the UI. American English; translatable", "type": "string" @@ -154,7 +158,14 @@ "description": "If false, ALL tags must be specified by the tag object", "type": "boolean" }, - "groups": { + "anyGroups": { + "description": "ANY external group must pass", + "type": "object", + "additionalProperties": { + "type": "boolean" + } + }, + "allGroups": { "description": "ALL external groups must pass", "type": "object", "additionalProperties": { diff --git a/modules/entities/group_manager.js b/modules/entities/group_manager.js index c386302570..c00e0142b0 100644 --- a/modules/entities/group_manager.js +++ b/modules/entities/group_manager.js @@ -167,17 +167,37 @@ function entityGroup(id, group) { } } - if (rule.groups) { - for (var otherGroupID in rule.groups) { + var otherGroupID, matchesOther; + + if (rule.allGroups) { + for (otherGroupID in rule.allGroups) { // avoid simple infinte recursion if (otherGroupID === group.id) continue; // skip erroneous group IDs if (!allGroups[otherGroupID]) continue; - var matchesOther = allGroups[otherGroupID].matchesTags(tags, geometry); - if ((rule.groups[otherGroupID] && !matchesOther) || - (!rule.groups[otherGroupID] && matchesOther)) return false; + matchesOther = allGroups[otherGroupID].matchesTags(tags, geometry); + if ((rule.allGroups[otherGroupID] && !matchesOther) || + (!rule.allGroups[otherGroupID] && matchesOther)) return false; + } + } + + if (rule.anyGroups) { + var didMatchGroup = false; + for (otherGroupID in rule.anyGroups) { + // avoid simple infinte recursion + if (otherGroupID === group.id) continue; + // skip erroneous group IDs + if (!allGroups[otherGroupID]) continue; + + matchesOther = allGroups[otherGroupID].matchesTags(tags, geometry); + if ((rule.anyGroups[otherGroupID] && matchesOther) || + (!rule.anyGroups[otherGroupID] && !matchesOther)) { + didMatchGroup = true; + break; + } } + if (!didMatchGroup) return false; } return true; From c945e5ba7946da2575d7bccb342e681c8eb9f39c Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 23 Jul 2019 10:15:04 -0400 Subject: [PATCH 207/774] Add terms for Telecom Office preset --- data/presets.yaml | 2 +- data/presets/presets.json | 2 +- data/presets/presets/office/telecommunication.json | 6 ++++-- dist/locales/en.json | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/data/presets.yaml b/data/presets.yaml index b8fd00ce18..f9c5ad2abc 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -6079,7 +6079,7 @@ en: office/telecommunication: # office=telecommunication name: Telecom Office - # 'terms: communication,internet,phone,voice' + # 'terms: communication,internet service provider,isp,network,telephone,voice' terms: '' office/therapist: # office=therapist diff --git a/data/presets/presets.json b/data/presets/presets.json index 08d2d304d0..7ddf61dd18 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -833,7 +833,7 @@ "office/research": {"icon": "maki-suitcase", "geometry": ["point", "area"], "tags": {"office": "research"}, "terms": [], "name": "Research Office"}, "office/surveyor": {"icon": "maki-suitcase", "geometry": ["point", "area"], "tags": {"office": "surveyor"}, "terms": [], "name": "Surveyor Office"}, "office/tax_advisor": {"icon": "maki-suitcase", "geometry": ["point", "area"], "tags": {"office": "tax_advisor"}, "terms": ["tax", "tax consultant"], "name": "Tax Advisor Office"}, - "office/telecommunication": {"icon": "maki-telephone", "geometry": ["point", "area"], "tags": {"office": "telecommunication"}, "terms": ["communication", "internet", "phone", "voice"], "name": "Telecom Office"}, + "office/telecommunication": {"icon": "maki-telephone", "geometry": ["point", "area"], "tags": {"office": "telecommunication"}, "terms": ["communication", "internet service provider", "isp", "network", "telephone", "voice"], "name": "Telecom Office"}, "office/therapist": {"icon": "maki-suitcase", "geometry": ["point", "area"], "tags": {"office": "therapist"}, "terms": ["therapy"], "name": "Therapist Office"}, "office/water_utility": {"icon": "maki-suitcase", "fields": ["{office}", "operator"], "geometry": ["point", "area"], "tags": {"office": "water_utility"}, "terms": ["water board", "utility"], "name": "Water Utility Office"}, "piste/downhill": {"icon": "fas-skiing", "fields": ["name", "piste/type", "piste/difficulty_downhill", "piste/grooming_downhill", "oneway", "lit"], "geometry": ["line", "area"], "terms": ["ski", "alpine", "snowboard", "downhill", "piste"], "tags": {"piste:type": "downhill"}, "name": "Downhill Piste/Ski Run"}, diff --git a/data/presets/presets/office/telecommunication.json b/data/presets/presets/office/telecommunication.json index 113845cf63..24653f0980 100644 --- a/data/presets/presets/office/telecommunication.json +++ b/data/presets/presets/office/telecommunication.json @@ -9,8 +9,10 @@ }, "terms": [ "communication", - "internet", - "phone", + "internet service provider", + "isp", + "network", + "telephone", "voice" ], "name": "Telecom Office" diff --git a/dist/locales/en.json b/dist/locales/en.json index 82b6d025e0..3600c39e55 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -7693,7 +7693,7 @@ }, "office/telecommunication": { "name": "Telecom Office", - "terms": "communication,internet,phone,voice" + "terms": "communication,internet service provider,isp,network,telephone,voice" }, "office/therapist": { "name": "Therapist Office", From 60ed13dcb1ed2f6a1d1e60a86267f7972715296c Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 23 Jul 2019 10:34:15 -0400 Subject: [PATCH 208/774] Add light rail and monorail zone groups --- data/presets/groups.json | 6 ++- .../zones/public_transport/light_rail.json | 46 +++++++++++++++++++ .../zones/public_transport/monorail.json | 46 +++++++++++++++++++ .../groups/zones/public_transport/subway.json | 4 +- .../groups/zones/public_transport/train.json | 4 +- 5 files changed, 98 insertions(+), 8 deletions(-) create mode 100644 data/presets/groups/zones/public_transport/light_rail.json create mode 100644 data/presets/groups/zones/public_transport/monorail.json diff --git a/data/presets/groups.json b/data/presets/groups.json index d877613bfc..458b759dc6 100644 --- a/data/presets/groups.json +++ b/data/presets/groups.json @@ -40,8 +40,10 @@ "zones/power": {"matches": {"anyTags": {"power": {"plant": true, "substation": true}}}, "nearby": {"anyTags": {"power": {"line": true, "minor_line": true, "pole": true, "tower": true, "transformer": true}}}}, "zones/public_transport/bus_stop": {"matches": {"allTags": {"bus": "yes", "public_transport": {"platform": true, "stop_area": true, "stop_position": true}}}, "nearby": {"any": [{"anyTags": {"amenity": {"bench": true}, "footway": "sidewalk", "information": {"board": true}, "shelter_type": "public_transport", "vending": "public_transport_tickets"}}, {"allTags": {"bus": "yes", "public_transport": {"platform": true, "stop_position": true}}}]}}, "zones/public_transport/ferry": {"matches": {"any": [{"allTags": {"ferry": "yes", "public_transport": {"platform": true, "station": true, "stop_area": true, "stop_position": true}}}, {"anyTags": {"amenity": "ferry_terminal"}}]}, "nearby": {"any": [{"allTags": {"amenity": "parking", "park_ride": "yes"}}, {"anyTags": {"man_made": "pier", "route": "ferry", "vending": "public_transport_tickets"}}, {"allTags": {"ferry": "yes", "public_transport": {"platform": true, "station": true, "stop_position": true}}}]}}, - "zones/public_transport/subway": {"matches": {"allTags": {"subway": "yes", "public_transport": {"platform": true, "station": true, "stop_area": true, "stop_position": true}}}, "nearby": {"any": [{"allTags": {"amenity": "parking", "park_ride": "yes"}}, {"anyTags": {"highway": {"elevator": true, "steps": true}, "railway": {"subway": true, "subway_entrance": true}, "surveillance:type": "camera", "vending": {"public_transport_tickets": true}}}, {"allTags": {"subway": "yes", "public_transport": {"platform": true, "station": true, "stop_position": true}}}]}}, - "zones/public_transport/train": {"matches": {"allTags": {"train": "yes", "public_transport": {"platform": true, "station": true, "stop_area": true, "stop_position": true}}}, "nearby": {"any": [{"allTags": {"amenity": "parking", "park_ride": "yes"}}, {"anyTags": {"highway": {"elevator": true, "steps": true}, "railway": {"rail": true}, "surveillance:type": "camera", "vending": {"public_transport_tickets": true}}}, {"allTags": {"train": "yes", "public_transport": {"platform": true, "station": true, "stop_position": true}}}]}}, + "zones/public_transport/light_rail": {"matches": {"allTags": {"light_rail": "yes", "public_transport": {"platform": true, "station": true, "stop_area": true, "stop_position": true}}}, "nearby": {"any": [{"allTags": {"amenity": "parking", "park_ride": "yes"}}, {"anyTags": {"highway": {"elevator": true, "steps": true}, "railway": {"light_rail": true}, "surveillance:type": "camera", "vending": "public_transport_tickets"}}, {"allTags": {"light_rail": "yes", "public_transport": {"platform": true, "station": true, "stop_position": true}}}]}}, + "zones/public_transport/monorail": {"matches": {"allTags": {"monorail": "yes", "public_transport": {"platform": true, "station": true, "stop_area": true, "stop_position": true}}}, "nearby": {"any": [{"allTags": {"amenity": "parking", "park_ride": "yes"}}, {"anyTags": {"highway": {"elevator": true, "steps": true}, "railway": {"monorail": true}, "surveillance:type": "camera", "vending": "public_transport_tickets"}}, {"allTags": {"monorail": "yes", "public_transport": {"platform": true, "station": true, "stop_position": true}}}]}}, + "zones/public_transport/subway": {"matches": {"allTags": {"subway": "yes", "public_transport": {"platform": true, "station": true, "stop_area": true, "stop_position": true}}}, "nearby": {"any": [{"allTags": {"amenity": "parking", "park_ride": "yes"}}, {"anyTags": {"highway": {"elevator": true, "steps": true}, "railway": {"subway": true, "subway_entrance": true}, "surveillance:type": "camera", "vending": "public_transport_tickets"}}, {"allTags": {"subway": "yes", "public_transport": {"platform": true, "station": true, "stop_position": true}}}]}}, + "zones/public_transport/train": {"matches": {"allTags": {"train": "yes", "public_transport": {"platform": true, "station": true, "stop_area": true, "stop_position": true}}}, "nearby": {"any": [{"allTags": {"amenity": "parking", "park_ride": "yes"}}, {"anyTags": {"highway": {"elevator": true, "steps": true}, "railway": {"rail": true}, "surveillance:type": "camera", "vending": "public_transport_tickets"}}, {"allTags": {"train": "yes", "public_transport": {"platform": true, "station": true, "stop_position": true}}}]}}, "zones/residence": {"matches": {"anyTags": {"building": {"detached": true, "house": true, "semidetached_house": true, "static_caravan": true}}}, "nearby": {"anyTags": {"barrier": {"fence": true}, "building": {"garage": true}, "footway": {"sidewalk": true}, "highway": {"footway": true, "residential": true, "service": true, "street_lamp": true}, "leisure": {"swimming_pool": true}, "natural": {"tree": true}, "service": {"alley": true, "driveway": true}}, "allowOtherTags": false}}, "zones/school": {"matches": {"anyTags": {"amenity": "school"}}, "nearby": {"anyTags": {"amenity": {"bench": true, "waste_basket": true}, "building": {"school": true}, "highway": {"service": true, "street_lamp": true}, "leisure": {"pitch": true, "picnic_table": true, "playground": true}, "man_made": {"flagpole": true}, "natural": {"tree": true}, "sport": {"american_football": true, "baseball": true, "basketball": true, "cricket": true, "field_hockey": true, "running": true, "soccer": true, "softball": true, "tennis": true}}, "allowOtherTags": false}}, "zones/stadium": {"matches": {"anyTags": {"leisure": "stadium"}}, "nearby": {"anyTags": {"amenity": {"drinking_water": true, "toilets": true}, "building": {"stadium": true}, "emergency": {"defibrillator": true, "first_aid_kit": true}, "highway": {"footway": true, "steps": true}, "leisure": {"bleachers": true, "pitch": true, "track": true}, "shop": {"ticket": true}, "tourism": {"information": true}}, "allowOtherTags": false}}, diff --git a/data/presets/groups/zones/public_transport/light_rail.json b/data/presets/groups/zones/public_transport/light_rail.json new file mode 100644 index 0000000000..64d97b2b83 --- /dev/null +++ b/data/presets/groups/zones/public_transport/light_rail.json @@ -0,0 +1,46 @@ +{ + "matches": { + "allTags": { + "light_rail": "yes", + "public_transport": { + "platform": true, + "station": true, + "stop_area": true, + "stop_position": true + } + } + }, + "nearby": { + "any": [ + { + "allTags": { + "amenity": "parking", + "park_ride": "yes" + } + }, + { + "anyTags": { + "highway": { + "elevator": true, + "steps": true + }, + "railway": { + "light_rail": true + }, + "surveillance:type": "camera", + "vending": "public_transport_tickets" + } + }, + { + "allTags": { + "light_rail": "yes", + "public_transport": { + "platform": true, + "station": true, + "stop_position": true + } + } + } + ] + } +} diff --git a/data/presets/groups/zones/public_transport/monorail.json b/data/presets/groups/zones/public_transport/monorail.json new file mode 100644 index 0000000000..53935173e2 --- /dev/null +++ b/data/presets/groups/zones/public_transport/monorail.json @@ -0,0 +1,46 @@ +{ + "matches": { + "allTags": { + "monorail": "yes", + "public_transport": { + "platform": true, + "station": true, + "stop_area": true, + "stop_position": true + } + } + }, + "nearby": { + "any": [ + { + "allTags": { + "amenity": "parking", + "park_ride": "yes" + } + }, + { + "anyTags": { + "highway": { + "elevator": true, + "steps": true + }, + "railway": { + "monorail": true + }, + "surveillance:type": "camera", + "vending": "public_transport_tickets" + } + }, + { + "allTags": { + "monorail": "yes", + "public_transport": { + "platform": true, + "station": true, + "stop_position": true + } + } + } + ] + } +} diff --git a/data/presets/groups/zones/public_transport/subway.json b/data/presets/groups/zones/public_transport/subway.json index 619c6b431e..6a1102737a 100644 --- a/data/presets/groups/zones/public_transport/subway.json +++ b/data/presets/groups/zones/public_transport/subway.json @@ -29,9 +29,7 @@ "subway_entrance": true }, "surveillance:type": "camera", - "vending": { - "public_transport_tickets": true - } + "vending": "public_transport_tickets" } }, { diff --git a/data/presets/groups/zones/public_transport/train.json b/data/presets/groups/zones/public_transport/train.json index bcc2915f0d..0c28862e57 100644 --- a/data/presets/groups/zones/public_transport/train.json +++ b/data/presets/groups/zones/public_transport/train.json @@ -28,9 +28,7 @@ "rail": true }, "surveillance:type": "camera", - "vending": { - "public_transport_tickets": true - } + "vending": "public_transport_tickets" } }, { From 3a8ed8be0d4683c30bc03bcace81608b5069310e Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 23 Jul 2019 14:35:56 -0400 Subject: [PATCH 209/774] Make the raw tag editor work for multiple selected features (close #1761) --- css/80_app.css | 35 ++-------- data/core.yaml | 1 + dist/locales/en.json | 1 + modules/ui/entity_editor.js | 5 +- modules/ui/raw_tag_editor.js | 131 ++++++++++++++++++++++++++++++----- modules/ui/selection_list.js | 4 +- 6 files changed, 128 insertions(+), 49 deletions(-) diff --git a/css/80_app.css b/css/80_app.css index 7b4ebbddfb..c5cac8e2ef 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -894,30 +894,16 @@ button.add-preset.disabled .preset-icon-container { height: 100%; } -.field-help-title button.close, -.entity-editor-pane .header button.preset-close, -.preset-list-pane .header button.preset-choose { +.field-help-title button.close { position: absolute; right: 0; top: 0; } -[dir='rtl'] .field-help-title button.close, -[dir='rtl'] .entity-editor-pane .header button.preset-close, -[dir='rtl'] .preset-list-pane .header button.preset-choose { +[dir='rtl'] .field-help-title button.close { left: 0; right: auto; } -.entity-editor-pane .header button.preset-choose { - position: absolute; - left: 0; - top: 0; -} -[dir='rtl'] .entity-editor-pane .header button.preset-choose { - left: auto; - right: 0; -} - .preset-choose { font-size: 16px; line-height: 1.25; @@ -1416,14 +1402,6 @@ a.hide-toggle { /* Inspector ------------------------------------------------------- */ -.entity-editor-pane { - width: 100%; - display: flex; - flex-direction: column; - border: 1px solid #ccc; - border-radius: inherit; -} - .inspector-hidden { display: none; } @@ -1460,6 +1438,9 @@ a.hide-toggle { position: relative; } +.entity-editor { + padding-bottom: 15px; +} /* Preset List and Icons ------------------------------------------------------- */ @@ -1789,9 +1770,6 @@ button.preset-favorite-button.active .icon { .preset-editor .form-fields-container:empty { display: none; } -.entity-editor-pane .preset-list-item { - margin-bottom: 0; -} /* The parts of a field: @@ -4238,8 +4216,7 @@ li.issue-fix-item:not(.actionable) .fix-icon { } /* Unstyle button fields */ -.inspector-hover .form-field-input-radio label.active, -.inspector-hover .entity-editor-pane a.hide-toggle { +.inspector-hover .form-field-input-radio label.active { opacity: 1; background-color: transparent; color: #666; diff --git a/data/core.yaml b/data/core.yaml index 6fa2867e22..2390d7e2ee 100644 --- a/data/core.yaml +++ b/data/core.yaml @@ -607,6 +607,7 @@ en: edit_reference: "edit/translate" wiki_reference: View documentation wiki_en_reference: View documentation in English + multiple_values: Multiple Values hidden_preset: manual: "{features} are hidden. Enable them in the Map Data pane." zoom: "{features} are hidden. Zoom in to enable them." diff --git a/dist/locales/en.json b/dist/locales/en.json index 48af6f5e26..04edf267fa 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -765,6 +765,7 @@ "edit_reference": "edit/translate", "wiki_reference": "View documentation", "wiki_en_reference": "View documentation in English", + "multiple_values": "Multiple Values", "hidden_preset": { "manual": "{features} are hidden. Enable them in the Map Data pane.", "zoom": "{features} are hidden. Zoom in to enable them." diff --git a/modules/ui/entity_editor.js b/modules/ui/entity_editor.js index c84fcad120..95ae6c663b 100644 --- a/modules/ui/entity_editor.js +++ b/modules/ui/entity_editor.js @@ -189,12 +189,11 @@ export function uiEntityEditor(context) { ); }); - manageSection('raw-tag-editor inspector-inner', entityID, function(section) { + manageSection('raw-tag-editor inspector-inner', true, function(section) { section .call(rawTagEditor .preset(_activePreset) - .entityID(entityID) - .tags(tags) + .entityIDs(_entityIDs) .state(_state) ); }); diff --git a/modules/ui/raw_tag_editor.js b/modules/ui/raw_tag_editor.js index 60b0b088df..4df12b0dff 100644 --- a/modules/ui/raw_tag_editor.js +++ b/modules/ui/raw_tag_editor.js @@ -21,6 +21,7 @@ export function uiRawTagEditor(context) { var _tagView = (context.storage('raw-tag-editor-view') || 'list'); // 'list, 'text' var _readOnlyTags = []; var _indexedKeys = []; + var _keyValues = null; var _showBlank = false; var _updatePreference = true; var _expanded = false; @@ -28,7 +29,7 @@ export function uiRawTagEditor(context) { var _state; var _preset; var _tags; - var _entityID; + var _entityIDs; function rawTagEditor(selection) { @@ -84,7 +85,10 @@ export function uiRawTagEditor(context) { // View Options var options = wrap.selectAll('.raw-tag-options') - .data([0]); + .data((!_entityIDs || _entityIDs.length === 1) ? [0] : []); + + options.exit() + .remove(); var optionsEnter = options.enter() .append('div') @@ -240,17 +244,23 @@ export function uiRawTagEditor(context) { var key = row.select('input.key'); // propagate bound data var value = row.select('input.value'); // propagate bound data - if (_entityID && taginfo && _state !== 'hover') { + if (_entityIDs && taginfo && _state !== 'hover') { bindTypeahead(key, value); } - var isRelation = (_entityID && context.entity(_entityID).type === 'relation'); var reference; - if (isRelation && d.key === 'type') { - reference = uiTagReference({ rtype: d.value }, context); + if (typeof d.value !== 'string') { + reference = uiTagReference({ key: d.key }, context); } else { - reference = uiTagReference({ key: d.key, value: d.value }, context); + var isRelation = _entityIDs && _entityIDs.some(function(entityID) { + return context.entity(entityID).type === 'relation'; + }); + if (isRelation && d.key === 'type') { + reference = uiTagReference({ rtype: d.value }, context); + } else { + reference = uiTagReference({ key: d.key, value: d.value }, context); + } } if (_state === 'hover') { @@ -268,11 +278,20 @@ export function uiRawTagEditor(context) { items.selectAll('input.key') .attr('title', function(d) { return d.key; }) .call(utilGetSetValue, function(d) { return d.key; }) - .property('disabled', isReadOnly); + .property('disabled', function(d) { + return isReadOnly(d) || (typeof d.value !== 'string'); + }); items.selectAll('input.value') - .attr('title', function(d) { return d.value; }) - .call(utilGetSetValue, function(d) { return d.value; }) + .attr('title', function(d) { + return typeof d.value === 'string' ? d.value : t('inspector.multiple_values'); + }) + .attr('placeholder', function(d) { + return typeof d.value === 'string' ? null : t('inspector.multiple_values'); + }) + .call(utilGetSetValue, function(d) { + return typeof d.value === 'string' ? d.value : ''; + }) .property('disabled', isReadOnly); items.selectAll('button.remove') @@ -370,7 +389,24 @@ export function uiRawTagEditor(context) { function bindTypeahead(key, value) { if (isReadOnly(key.datum())) return; - var geometry = context.geometry(_entityID); + if (typeof value.datum().value !== 'string' && _keyValues) { + value.call(uiCombobox(context, 'tag-value') + .minItems(1) + .fetcher(function(value, callback) { + var keyString = utilGetSetValue(key); + if (!_keyValues[keyString]) return; + var data = Array.from(_keyValues[keyString]).map(function(tagValue) { + return { + value: tagValue, + title: tagValue + }; + }); + callback(data); + })); + return; + } + + var geometry = context.geometry(_entityIDs[0]); key.call(uiCombobox(context, 'tag-key') .fetcher(function(value, callback) { @@ -477,6 +513,9 @@ export function uiRawTagEditor(context) { function valueChange(d) { if (isReadOnly(d)) return; + // exit if this is a multiselection and no value was entered + if (typeof d.value !== 'string' && !this.value) return; + _pendingChange = _pendingChange || {}; // exit if we are currently about to delete this row anyway - #6366 @@ -541,7 +580,7 @@ export function uiRawTagEditor(context) { rawTagEditor.preset = function(val) { if (!arguments.length) return _preset; _preset = val; - if (_preset.isFallback()) { + if (_preset && _preset.isFallback()) { _expanded = true; _updatePreference = false; } else { @@ -559,12 +598,72 @@ export function uiRawTagEditor(context) { }; - rawTagEditor.entityID = function(val) { - if (!arguments.length) return _entityID; - if (_entityID !== val) { + rawTagEditor.entityIDs = function(val) { + if (!arguments.length) return _entityIDs; + if (_entityIDs !== val) { + _entityIDs = val; _indexedKeys = []; - _entityID = val; } + + if (_entityIDs.length > 1) { + // require the list editor when editing multiple entities + _tagView = 'list'; + } else { + _tagView = (context.storage('raw-tag-editor-view') || 'list'); + } + + var combinedTags = {}; + var sharedKeys = null; + _keyValues = {}; + + _entityIDs.forEach(function(entityID) { + var entity = context.entity(entityID); + var entityTags = entity.tags; + var entityKey; + + if (sharedKeys === null) { + sharedKeys = {}; + for (entityKey in entityTags) { + sharedKeys[entityKey] = true; + } + } else { + for (var sharedKey in sharedKeys) { + if (!entityTags[sharedKey]) { + delete sharedKeys[sharedKey]; + } + } + } + + for (entityKey in entityTags) { + + var entityValue = entityTags[entityKey]; + + if (!_keyValues[entityKey]) { + _keyValues[entityKey] = new Set(); + } + _keyValues[entityKey].add(entityValue); + + var combinedValue = combinedTags[entityKey]; + if (combinedValue !== undefined) { + if (combinedValue !== true && + combinedValue !== entityValue) { + + combinedTags[entityKey] = true; + } + } else { + combinedTags[entityKey] = entityValue; + } + } + }); + + for (var key in combinedTags) { + if (sharedKeys[key] === null) { + // treat tags that aren't shared by all entities the same as if there are multiple values + combinedTags[key] = true; + } + } + + rawTagEditor.tags(combinedTags); return rawTagEditor; }; diff --git a/modules/ui/selection_list.js b/modules/ui/selection_list.js index b2719fe7ed..cbbf7b56e4 100644 --- a/modules/ui/selection_list.js +++ b/modules/ui/selection_list.js @@ -28,7 +28,9 @@ export function uiSelectionList(context) { function selectionList(selection) { - var list = selection + var list = selection.selectAll('.feature-list') + .data([0]) + .enter() .append('div') .attr('class', 'feature-list'); From b61b3e7165f6600c6ff4e6de7cd12cd49903b50d Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 23 Jul 2019 15:04:36 -0400 Subject: [PATCH 210/774] Fix tests for multi-entity raw tag editor --- test/spec/ui/raw_tag_editor.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/test/spec/ui/raw_tag_editor.js b/test/spec/ui/raw_tag_editor.js index ad699d506e..c166b84a78 100644 --- a/test/spec/ui/raw_tag_editor.js +++ b/test/spec/ui/raw_tag_editor.js @@ -3,9 +3,9 @@ describe('iD.uiRawTagEditor', function() { function render(tags) { taglist = iD.uiRawTagEditor(context) - .entityID(entity.id) - .preset({isFallback: function() { return false; }}) .tags(tags) + .entityIDs([entity.id]) + .preset({isFallback: function() { return false; }}) .expanded(true); element = d3.select('body') @@ -15,10 +15,10 @@ describe('iD.uiRawTagEditor', function() { } beforeEach(function () { - entity = iD.osmNode({id: 'n12345'}); + entity = iD.osmNode({id: 'n12345', tags: { highway: 'residential' }}); context = iD.coreContext(); context.history().merge([entity]); - render({highway: 'residential'}); + render(); }); afterEach(function () { From 33c51ed4308a8f4d12b560f6108710b822bedece Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 23 Jul 2019 15:45:24 -0400 Subject: [PATCH 211/774] Ensure that all added features are selected after using the structure tool --- modules/modes/add_line.js | 6 ++++++ modules/modes/draw_line.js | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/modules/modes/add_line.js b/modules/modes/add_line.js index 9097c5e347..3b67b784ee 100644 --- a/modules/modes/add_line.js +++ b/modules/modes/add_line.js @@ -39,6 +39,12 @@ export function modeAddLine(context, mode) { }); }; + mode.addAddedEntityID = function(entityID) { + if (_allAddedEntityIDs.indexOf(entityID) === -1) { + _allAddedEntityIDs.push(entityID); + } + }; + function start(loc) { var startGraph = context.graph(); var node = osmNode({ loc: loc }); diff --git a/modules/modes/draw_line.js b/modules/modes/draw_line.js index 13cd13d014..3b45938740 100644 --- a/modules/modes/draw_line.js +++ b/modules/modes/draw_line.js @@ -19,6 +19,12 @@ export function modeDrawLine(context, wayID, startGraph, baselineGraph, button, var behavior; mode.enter = function() { + + if (addMode) { + // add in case this draw mode was entered from somewhere besides the add mode itself + addMode.addAddedEntityID(wayID); + } + var way = context.entity(wayID); var index = (affix === 'prefix') ? 0 : undefined; var headID = (affix === 'prefix') ? way.first() : way.last(); From 6ba4603cdbf862110eb78486b1b20a643a2fdaf6 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 23 Jul 2019 15:48:55 -0400 Subject: [PATCH 212/774] Fix issue where nonshared keys could appear shared in raw tag editor --- modules/ui/raw_tag_editor.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ui/raw_tag_editor.js b/modules/ui/raw_tag_editor.js index 4df12b0dff..0cba95fb01 100644 --- a/modules/ui/raw_tag_editor.js +++ b/modules/ui/raw_tag_editor.js @@ -657,7 +657,7 @@ export function uiRawTagEditor(context) { }); for (var key in combinedTags) { - if (sharedKeys[key] === null) { + if (!sharedKeys.hasOwnProperty(key)) { // treat tags that aren't shared by all entities the same as if there are multiple values combinedTags[key] = true; } From cb2a67d4c4cfa6fbc692aca665de05cca8d4e8ac Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 23 Jul 2019 16:39:54 -0400 Subject: [PATCH 213/774] Fix issue where a shared key with an empty value would be treated as non-shared in the raw tag editor --- modules/ui/raw_tag_editor.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/ui/raw_tag_editor.js b/modules/ui/raw_tag_editor.js index 0cba95fb01..e55de52d1f 100644 --- a/modules/ui/raw_tag_editor.js +++ b/modules/ui/raw_tag_editor.js @@ -628,7 +628,7 @@ export function uiRawTagEditor(context) { } } else { for (var sharedKey in sharedKeys) { - if (!entityTags[sharedKey]) { + if (!entityTags.hasOwnProperty(sharedKey)) { delete sharedKeys[sharedKey]; } } @@ -638,13 +638,13 @@ export function uiRawTagEditor(context) { var entityValue = entityTags[entityKey]; - if (!_keyValues[entityKey]) { + if (!_keyValues.hasOwnProperty(entityKey)) { _keyValues[entityKey] = new Set(); } _keyValues[entityKey].add(entityValue); - var combinedValue = combinedTags[entityKey]; - if (combinedValue !== undefined) { + if (combinedTags.hasOwnProperty(entityKey)) { + var combinedValue = combinedTags[entityKey]; if (combinedValue !== true && combinedValue !== entityValue) { From e6e8a6afd2c8324ecf000dd15730596b9d912535 Mon Sep 17 00:00:00 2001 From: Nick Doiron Date: Wed, 24 Jul 2019 15:12:33 +0900 Subject: [PATCH 214/774] Minor CSS fix --- css/80_app.css | 1 + 1 file changed, 1 insertion(+) diff --git a/css/80_app.css b/css/80_app.css index c5cac8e2ef..5ebb109a6f 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -1934,6 +1934,7 @@ button.preset-favorite-button.active .icon { } [dir='rtl'] .form-field-input-wrap > button:last-of-type { border-bottom-left-radius: 4px; + border-bottom-right-radius: 0; } From 8e4bb6fb18424c098d3eebef164f4066005bc300 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 24 Jul 2019 08:39:59 -0400 Subject: [PATCH 215/774] Fix raw tag editor test --- test/spec/ui/raw_tag_editor.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/test/spec/ui/raw_tag_editor.js b/test/spec/ui/raw_tag_editor.js index c166b84a78..5753db90f2 100644 --- a/test/spec/ui/raw_tag_editor.js +++ b/test/spec/ui/raw_tag_editor.js @@ -2,6 +2,11 @@ describe('iD.uiRawTagEditor', function() { var taglist, element, entity, context; function render(tags) { + + entity = iD.osmNode({ id: 'n12345', tags: tags }); + context = iD.coreContext(); + context.history().merge([entity]); + taglist = iD.uiRawTagEditor(context) .tags(tags) .entityIDs([entity.id]) @@ -15,10 +20,7 @@ describe('iD.uiRawTagEditor', function() { } beforeEach(function () { - entity = iD.osmNode({id: 'n12345', tags: { highway: 'residential' }}); - context = iD.coreContext(); - context.history().merge([entity]); - render(); + render({ highway: 'residential' }); }); afterEach(function () { From f35f4152e1f4ab6fff72cf09056e6f2f720653c2 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 24 Jul 2019 09:33:57 -0400 Subject: [PATCH 216/774] Allow adding crossings only to highways --- data/presets/groups.json | 2 +- data/presets/groups/vertices/highway.json | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/data/presets/groups.json b/data/presets/groups.json index 458b759dc6..b03a3fb85e 100644 --- a/data/presets/groups.json +++ b/data/presets/groups.json @@ -17,7 +17,7 @@ "toggleable/service_roads": {"name": "Service Roads", "description": "Driveways, Parking Aisles, Tracks, etc.", "toggleable": true, "matches": {"geometry": "line", "allTags": {"highway": {"service": true, "road": true, "track": true}}}}, "toggleable/traffic_roads": {"name": "Traffic Roads", "description": "Highways, Streets, etc.", "toggleable": true, "matches": {"geometry": "line", "allTags": {"highway": {"motorway": true, "motorway_link": true, "trunk": true, "trunk_link": true, "primary": true, "primary_link": true, "secondary": true, "secondary_link": true, "tertiary": true, "tertiary_link": true, "residential": true, "unclassified": true, "living_street": true}}}}, "toggleable/water": {"name": "Water Features", "description": "Rivers, Lakes, Ponds, Basins, etc.", "toggleable": true, "matches": {"anyTags": {"waterway": {"*": true, "no": false}, "natural": {"water": true, "coastline": true, "bay": true}, "landuse": {"pond": true, "basin": true, "reservoir": true, "salt_pond": true}}}}, - "vertices/highway": {"matches": {"geometry": "vertex", "anyTags": {"highway": {"emergency_bay": true, "give_way": true, "milestone": true, "mini_roundabout": true, "passing_place": true, "stop": true, "traffic_signals": true, "turning_circle": true, "turning_loop": true}, "traffic_calming": true, "traffic_sign": true}}, "vertexOf": {"geometry": "line", "anyTags": {"highway": {"motorway": true, "trunk": true, "primary": true, "secondary": true, "tertiary": true, "residential": true, "motorway_link": true, "trunk_link": true, "primary_link": true, "secondary_link": true, "tertiary_link": true, "unclassified": true, "road": true, "service": true, "track": true, "living_street": true, "bus_guideway": true, "path": true, "footway": true, "cycleway": true, "bridleway": true, "pedestrian": true}}}}, + "vertices/highway": {"matches": {"geometry": "vertex", "anyTags": {"highway": {"crossing": true, "emergency_bay": true, "give_way": true, "milestone": true, "mini_roundabout": true, "passing_place": true, "stop": true, "traffic_signals": true, "turning_circle": true, "turning_loop": true}, "traffic_calming": true, "traffic_sign": true}}, "vertexOf": {"geometry": "line", "anyTags": {"highway": {"motorway": true, "trunk": true, "primary": true, "secondary": true, "tertiary": true, "residential": true, "motorway_link": true, "trunk_link": true, "primary_link": true, "secondary_link": true, "tertiary_link": true, "unclassified": true, "road": true, "service": true, "track": true, "living_street": true, "bus_guideway": true, "path": true, "footway": true, "cycleway": true, "bridleway": true, "pedestrian": true}}}}, "vertices/railway": {"matches": {"geometry": "vertex", "anyTags": {"railway": {"buffer_stop": true, "derail": true, "milestone": true, "signal": true, "station": true, "switch": true, "train_wash": true, "tram_stop": true}}}, "vertexOf": {"geometry": "line", "anyTags": {"anyGroups": {"railway/lines": true}}}}, "vertices/railway/crossing": {"matches": {"geometry": "vertex", "anyTags": {"railway": "crossing"}}, "vertexOf": {"geometry": "line", "anyGroups": {"toggleable/paths": true, "railway/lines": true}}}, "vertices/railway/level_crossing": {"matches": {"geometry": "vertex", "anyTags": {"railway": "level_crossing"}}, "vertexOf": {"geometry": "line", "anyGroups": {"highway/vehicular": true, "railway/lines": true}}}, diff --git a/data/presets/groups/vertices/highway.json b/data/presets/groups/vertices/highway.json index bba43e5733..25c38cf854 100644 --- a/data/presets/groups/vertices/highway.json +++ b/data/presets/groups/vertices/highway.json @@ -3,6 +3,7 @@ "geometry": "vertex", "anyTags": { "highway": { + "crossing": true, "emergency_bay": true, "give_way": true, "milestone": true, From c4672bec7f0482bdc2f44b40cd1cfc60fc528db3 Mon Sep 17 00:00:00 2001 From: Nick Doiron Date: Fri, 26 Jul 2019 08:12:53 +0900 Subject: [PATCH 217/774] Upgrade Arabic text shaping [fixes #6679] --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index dbd3dc1302..88f2572a9e 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,7 @@ "@mapbox/vector-tile": "^1.3.1", "@turf/bbox-clip": "^6.0.0", "abortcontroller-polyfill": "~1.3.0", - "alif-toolkit": "^1.2.5", + "alif-toolkit": "^1.2.6", "browser-polyfills": "~1.5.0", "diacritics": "1.3.0", "fast-deep-equal": "~2.0.1", From 8160b6449e701216a85e23ec2d0e574964ec8caf Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Fri, 26 Jul 2019 09:56:30 -0400 Subject: [PATCH 218/774] Cherry pick Arabic text fix --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ba150936f5..a626c05d59 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,7 @@ "@mapbox/vector-tile": "^1.3.1", "@turf/bbox-clip": "^6.0.0", "abortcontroller-polyfill": "~1.3.0", - "alif-toolkit": "^1.2.5", + "alif-toolkit": "^1.2.6", "browser-polyfills": "~1.5.0", "diacritics": "1.3.0", "fast-deep-equal": "~2.0.1", From b0d4cfdf9138e75d05abf30bdcdc5f0290646fd4 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Fri, 26 Jul 2019 10:25:53 -0400 Subject: [PATCH 219/774] Don't support playground=structure as lines (re: #6670) --- data/presets/presets.json | 2 +- data/presets/presets/playground/structure.json | 1 - data/taginfo.json | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/data/presets/presets.json b/data/presets/presets.json index 7ddf61dd18..fe65beb753 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -871,7 +871,7 @@ "playground/sandpit": {"icon": "maki-playground", "geometry": ["point", "area"], "tags": {"playground": "sandpit"}, "name": "Sandpit"}, "playground/seesaw": {"icon": "maki-playground", "geometry": ["point"], "tags": {"playground": "seesaw"}, "name": "Seesaw"}, "playground/slide": {"icon": "maki-playground", "geometry": ["point", "line"], "tags": {"playground": "slide"}, "name": "Slide"}, - "playground/structure": {"icon": "maki-pitch", "geometry": ["point", "line", "area"], "tags": {"playground": "structure"}, "name": "Play Structure"}, + "playground/structure": {"icon": "maki-pitch", "geometry": ["point", "area"], "tags": {"playground": "structure"}, "name": "Play Structure"}, "playground/swing": {"icon": "maki-playground", "fields": ["capacity", "playground/baby", "wheelchair"], "geometry": ["point"], "tags": {"playground": "swing"}, "name": "Swing"}, "playground/zipwire": {"icon": "maki-playground", "geometry": ["point", "line"], "tags": {"playground": "zipwire"}, "name": "Zip Wire"}, "point": {"fields": ["name"], "geometry": ["vertex", "point"], "tags": {}, "terms": ["node", "other", "vertex", "vertices"], "name": "Point", "matchScore": 0.1}, diff --git a/data/presets/presets/playground/structure.json b/data/presets/presets/playground/structure.json index 2f5210c47d..ca880363e6 100644 --- a/data/presets/presets/playground/structure.json +++ b/data/presets/presets/playground/structure.json @@ -2,7 +2,6 @@ "icon": "maki-pitch", "geometry": [ "point", - "line", "area" ], "tags": { diff --git a/data/taginfo.json b/data/taginfo.json index 98414491e5..33d955077a 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -841,7 +841,7 @@ {"key": "playground", "value": "sandpit", "description": "🄿 Sandpit", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/playground-15.svg"}, {"key": "playground", "value": "seesaw", "description": "🄿 Seesaw", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/playground-15.svg"}, {"key": "playground", "value": "slide", "description": "🄿 Slide", "object_types": ["node", "way"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/playground-15.svg"}, - {"key": "playground", "value": "structure", "description": "🄿 Play Structure", "object_types": ["node", "way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/pitch-15.svg"}, + {"key": "playground", "value": "structure", "description": "🄿 Play Structure", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/pitch-15.svg"}, {"key": "playground", "value": "swing", "description": "🄿 Swing", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/playground-15.svg"}, {"key": "playground", "value": "zipwire", "description": "🄿 Zip Wire", "object_types": ["node", "way"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/playground-15.svg"}, {"key": "polling_station", "description": "🄿 Temporary Polling Place, 🄵 Polling Place", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-vote-yea.svg"}, From 97a9f7052fec39fcfb346a31091fc6ff4107cd0b Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" <23040076+greenkeeper[bot]@users.noreply.github.com> Date: Fri, 26 Jul 2019 14:56:47 +0000 Subject: [PATCH 220/774] chore(package): update temaki to version 1.7.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 88f2572a9e..a37df4cf4e 100644 --- a/package.json +++ b/package.json @@ -95,7 +95,7 @@ "smash": "0.0", "static-server": "^2.2.1", "svg-sprite": "1.5.0", - "temaki": "1.6.0", + "temaki": "1.7.0", "uglify-js": "~3.6.0" }, "greenkeeper": { From 0cc06b9c350d43a878eb7fd5900d8a890da2063f Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Fri, 26 Jul 2019 11:00:11 -0400 Subject: [PATCH 221/774] Cherry pick Temaki 1.7.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a626c05d59..dd1173c87d 100644 --- a/package.json +++ b/package.json @@ -95,7 +95,7 @@ "smash": "0.0", "static-server": "^2.2.1", "svg-sprite": "1.5.0", - "temaki": "1.6.0", + "temaki": "1.7.0", "uglify-js": "~3.6.0" }, "greenkeeper": { From 157d4c142497f7d63683c1bb89acba816c889124 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Fri, 26 Jul 2019 11:11:46 -0400 Subject: [PATCH 222/774] Update icons for Cairn, Sandwich Fast Food, Hifi Store, and Party Store presets --- data/presets/presets.json | 64 +++++++++---------- .../presets/amenity/fast_food/sandwich.json | 2 +- data/presets/presets/man_made/cairn.json | 4 +- data/presets/presets/shop/hifi.json | 2 +- data/presets/presets/shop/party.json | 2 +- data/taginfo.json | 8 +-- svg/fontawesome/fas-chess-knight.svg | 2 +- svg/fontawesome/fas-chess-pawn.svg | 2 +- svg/fontawesome/fas-mask.svg | 1 - 9 files changed, 43 insertions(+), 44 deletions(-) delete mode 100644 svg/fontawesome/fas-mask.svg diff --git a/data/presets/presets.json b/data/presets/presets.json index fe65beb753..312b6df047 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -119,7 +119,7 @@ "amenity/fast_food/kebab": {"icon": "maki-restaurant", "geometry": ["point", "area"], "terms": ["bar", "breakfast", "cafe", "café", "canteen", "dine", "dining", "dinner", "drive-in", "eat", "grill", "lunch", "table"], "tags": {"amenity": "fast_food", "cuisine": "kebab"}, "reference": {"key": "cuisine", "value": "kebab"}, "name": "Kebab Fast Food"}, "amenity/fast_food/mexican": {"icon": "fas-pepper-hot", "geometry": ["point", "area"], "terms": ["breakfast", "dine", "dining", "dinner", "drive-in", "eat", "grill", "lunch", "table", "tacos", "burritos", "enchiladas", "fajitas", "nachos", "tortillas", "salsa", "tamales", "quesadillas"], "tags": {"amenity": "fast_food", "cuisine": "mexican"}, "reference": {"key": "cuisine", "value": "mexican"}, "name": "Mexican Fast Food"}, "amenity/fast_food/pizza": {"icon": "maki-restaurant-pizza", "geometry": ["point", "area"], "terms": ["dine", "dining", "dinner", "drive-in", "eat", "lunch", "table", "deep dish", "thin crust", "slice"], "tags": {"amenity": "fast_food", "cuisine": "pizza"}, "reference": {"key": "cuisine", "value": "pizza"}, "name": "Pizza Fast Food"}, - "amenity/fast_food/sandwich": {"icon": "maki-restaurant", "geometry": ["point", "area"], "terms": ["breakfast", "cafe", "café", "dine", "dining", "dinner", "drive-in", "eat", "grill", "lunch", "table"], "tags": {"amenity": "fast_food", "cuisine": "sandwich"}, "reference": {"key": "cuisine", "value": "sandwich"}, "name": "Sandwich Fast Food"}, + "amenity/fast_food/sandwich": {"icon": "temaki-sandwich", "geometry": ["point", "area"], "terms": ["breakfast", "cafe", "café", "dine", "dining", "dinner", "drive-in", "eat", "grill", "lunch", "table"], "tags": {"amenity": "fast_food", "cuisine": "sandwich"}, "reference": {"key": "cuisine", "value": "sandwich"}, "name": "Sandwich Fast Food"}, "amenity/fire_station": {"icon": "maki-fire-station", "fields": ["name", "operator", "address", "building_area"], "moreFields": ["email", "fax", "phone", "polling_station", "smoking", "website", "wheelchair"], "geometry": ["point", "area"], "terms": [], "tags": {"amenity": "fire_station"}, "name": "Fire Station"}, "amenity/food_court": {"icon": "maki-restaurant", "fields": ["name", "operator", "address", "building_area", "opening_hours"], "moreFields": ["smoking", "outdoor_seating", "capacity", "internet_access", "internet_access/fee", "internet_access/ssid", "diet_multi", "website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "terms": ["fast food", "restaurant", "food"], "tags": {"amenity": "food_court"}, "name": "Food Court"}, "amenity/fountain": {"icon": "temaki-fountain", "fields": ["name", "operator", "height", "lit"], "moreFields": ["covered", "indoor", "manufacturer"], "geometry": ["point", "area"], "tags": {"amenity": "fountain"}, "name": "Fountain"}, @@ -692,7 +692,7 @@ "man_made/breakwater": {"fields": ["material", "seamark/type"], "geometry": ["line", "area"], "tags": {"man_made": "breakwater"}, "name": "Breakwater"}, "man_made/bridge": {"icon": "maki-bridge", "fields": ["name", "bridge", "layer", "maxweight"], "moreFields": ["manufacturer", "material", "seamark/type"], "geometry": ["area"], "tags": {"man_made": "bridge"}, "addTags": {"man_made": "bridge", "layer": "1"}, "removeTags": {"man_made": "bridge", "layer": "*"}, "reference": {"key": "man_made", "value": "bridge"}, "name": "Bridge", "matchScore": 0.85}, "man_made/bunker_silo": {"icon": "temaki-silo", "fields": ["content"], "geometry": ["point", "area"], "terms": ["Silage", "Storage"], "tags": {"man_made": "bunker_silo"}, "name": "Bunker Silo"}, - "man_made/cairn": {"icon": "maki-triangle", "geometry": ["point", "area"], "terms": ["rock pile", "stone stack", "stone pile", "càrn"], "tags": {"man_made": "cairn"}, "name": "Cairn"}, + "man_made/cairn": {"icon": "temaki-cairn", "geometry": ["point", "area"], "terms": ["rock pile", "stone stack", "stone pile", "càrn"], "tags": {"man_made": "cairn"}, "name": "Cairn"}, "man_made/chimney": {"icon": "temaki-chimney", "fields": ["operator", "material", "height"], "geometry": ["point", "area"], "tags": {"man_made": "chimney"}, "name": "Chimney"}, "man_made/clearcut": {"icon": "maki-logging", "geometry": ["area"], "tags": {"man_made": "clearcut"}, "terms": ["cut", "forest", "lumber", "tree", "wood"], "name": "Clearcut Forest"}, "man_made/crane": {"icon": "temaki-crane", "fields": ["operator", "manufacturer", "height", "crane/type"], "geometry": ["point", "line", "vertex", "area"], "tags": {"man_made": "crane"}, "name": "Crane"}, @@ -1047,7 +1047,7 @@ "shop/health_food": {"icon": "maki-shop", "geometry": ["point", "area"], "terms": ["wholefood", "vitamins", "vegetarian", "vegan"], "tags": {"shop": "health_food"}, "name": "Health Food Shop"}, "shop/hearing_aids": {"icon": "maki-shop", "geometry": ["point", "area"], "tags": {"shop": "hearing_aids"}, "name": "Hearing Aids Store"}, "shop/herbalist": {"icon": "fas-leaf", "geometry": ["point", "area"], "tags": {"shop": "herbalist"}, "name": "Herbalist"}, - "shop/hifi": {"icon": "maki-shop", "geometry": ["point", "area"], "terms": ["audio", "hi-fi", "high fidelity", "stereo", "video"], "tags": {"shop": "hifi"}, "name": "Hifi Store"}, + "shop/hifi": {"icon": "temaki-speaker", "geometry": ["point", "area"], "terms": ["audio", "hi-fi", "high fidelity", "stereo", "video"], "tags": {"shop": "hifi"}, "name": "Hifi Store"}, "shop/hobby": {"icon": "fas-dragon", "geometry": ["point", "area"], "tags": {"shop": "hobby"}, "terms": ["manga", "figurine", "model"], "name": "Hobby Shop"}, "shop/houseware": {"icon": "fas-blender", "geometry": ["point", "area"], "terms": ["home", "household", "kitchenware"], "tags": {"shop": "houseware"}, "name": "Houseware Store"}, "shop/hunting": {"icon": "maki-shop", "geometry": ["point", "area"], "tags": {"shop": "hunting"}, "terms": ["arrows", "bows", "bullets", "crossbows", "rifles", "traps"], "name": "Hunting Shop"}, @@ -1078,7 +1078,7 @@ "shop/outdoor": {"icon": "temaki-compass", "fields": ["{shop}", "clothes"], "geometry": ["point", "area"], "terms": ["camping", "climbing", "hiking", "outfitter", "outdoor equipment", "outdoor supplies"], "tags": {"shop": "outdoor"}, "name": "Outdoors Store"}, "shop/outpost": {"icon": "maki-shop", "geometry": ["point", "area"], "terms": ["online", "pick up", "pickup"], "tags": {"shop": "outpost"}, "name": "Online Retailer Outpost"}, "shop/paint": {"icon": "fas-paint-roller", "geometry": ["point", "area"], "tags": {"shop": "paint"}, "name": "Paint Store"}, - "shop/party": {"icon": "fas-mask", "geometry": ["point", "area"], "terms": ["balloons", "costumes", "decorations", "invitations"], "tags": {"shop": "party"}, "name": "Party Supply Store"}, + "shop/party": {"icon": "temaki-balloon", "geometry": ["point", "area"], "terms": ["balloons", "costumes", "decorations", "invitations"], "tags": {"shop": "party"}, "name": "Party Supply Store"}, "shop/pastry": {"icon": "maki-bakery", "geometry": ["point", "area"], "tags": {"shop": "pastry"}, "terms": ["patisserie", "cake shop", "cakery"], "name": "Pastry Shop"}, "shop/pawnbroker": {"icon": "maki-shop", "geometry": ["point", "area"], "tags": {"shop": "pawnbroker"}, "name": "Pawn Shop"}, "shop/perfumery": {"icon": "maki-shop", "geometry": ["point", "area"], "tags": {"shop": "perfumery"}, "terms": ["cologne", "fragrance", "purfume"], "name": "Perfume Store"}, @@ -2028,13 +2028,13 @@ "amenity/fast_food/burger/A&W (USA)": {"name": "A&W (USA)", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/awrestaurants/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q277641", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "A&W", "brand:wikidata": "Q277641", "brand:wikipedia": "en:A&W Restaurants", "cuisine": "burger", "name": "A&W", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/chicken/Andok's": {"name": "Andok's", "icon": "fas-drumstick-bite", "imageURL": "https://graph.facebook.com/andokslitsonmanok/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62267166", "amenity": "fast_food", "cuisine": "chicken"}, "addTags": {"amenity": "fast_food", "brand": "Andok's", "brand:wikidata": "Q62267166", "cuisine": "chicken", "name": "Andok's", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "chicken"}, "countryCodes": ["ph"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/burger/Angel's Burger": {"name": "Angel's Burger", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/angburgerngbayan/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62267228", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "Angel's Burger", "brand:wikidata": "Q62267228", "cuisine": "burger", "name": "Angel's Burger", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "countryCodes": ["ph"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/fast_food/sandwich/Arby's": {"name": "Arby's", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/arbys/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q630866", "amenity": "fast_food", "cuisine": "sandwich"}, "addTags": {"amenity": "fast_food", "brand": "Arby's", "brand:wikidata": "Q630866", "brand:wikipedia": "en:Arby's", "cuisine": "sandwich", "name": "Arby's", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "countryCodes": ["ca", "tr", "us"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/fast_food/sandwich/Au Bon Pain": {"name": "Au Bon Pain", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/aubonpain/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4818942", "amenity": "fast_food", "cuisine": "sandwich"}, "addTags": {"amenity": "fast_food", "brand": "Au Bon Pain", "brand:wikidata": "Q4818942", "brand:wikipedia": "en:Au Bon Pain", "cuisine": "sandwich", "name": "Au Bon Pain", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "countryCodes": ["in", "th", "us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/fast_food/sandwich/Arby's": {"name": "Arby's", "icon": "temaki-sandwich", "imageURL": "https://graph.facebook.com/arbys/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q630866", "amenity": "fast_food", "cuisine": "sandwich"}, "addTags": {"amenity": "fast_food", "brand": "Arby's", "brand:wikidata": "Q630866", "brand:wikipedia": "en:Arby's", "cuisine": "sandwich", "name": "Arby's", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "countryCodes": ["ca", "tr", "us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/fast_food/sandwich/Au Bon Pain": {"name": "Au Bon Pain", "icon": "temaki-sandwich", "imageURL": "https://graph.facebook.com/aubonpain/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4818942", "amenity": "fast_food", "cuisine": "sandwich"}, "addTags": {"amenity": "fast_food", "brand": "Au Bon Pain", "brand:wikidata": "Q4818942", "brand:wikipedia": "en:Au Bon Pain", "cuisine": "sandwich", "name": "Au Bon Pain", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "countryCodes": ["in", "th", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/Auntie Anne's": {"name": "Auntie Anne's", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/auntieannespretzels/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4822010", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "Auntie Anne's", "brand:wikidata": "Q4822010", "brand:wikipedia": "en:Auntie Anne's", "cuisine": "pretzel", "name": "Auntie Anne's", "takeaway": "yes"}, "countryCodes": ["us"], "terms": ["auntie annes pretzels"], "matchScore": 2, "suggestion": true}, "amenity/fast_food/mexican/Baja Fresh": {"name": "Baja Fresh", "icon": "fas-pepper-hot", "imageURL": "https://graph.facebook.com/bajafresh/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2880019", "amenity": "fast_food", "cuisine": "mexican"}, "addTags": {"amenity": "fast_food", "brand": "Baja Fresh", "brand:wikidata": "Q2880019", "brand:wikipedia": "en:Baja Fresh", "cuisine": "mexican", "name": "Baja Fresh", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "mexican"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/mexican/Barburrito": {"name": "Barburrito", "icon": "fas-pepper-hot", "imageURL": "https://graph.facebook.com/BarburritoUK/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q16983668", "amenity": "fast_food", "cuisine": "mexican"}, "addTags": {"amenity": "fast_food", "brand": "Barburrito", "brand:wikidata": "Q16983668", "brand:wikipedia": "en:Barburrito", "cuisine": "mexican", "name": "Barburrito", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "mexican"}, "countryCodes": ["gb"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/burger/Bembos": {"name": "Bembos", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/bembos/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q466971", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "Bembos", "brand:wikidata": "Q466971", "brand:wikipedia": "en:Bembos", "cuisine": "burger", "name": "Bembos", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "countryCodes": ["pe"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/fast_food/sandwich/Blimpie": {"name": "Blimpie", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/Blimpie/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4926479", "amenity": "fast_food", "cuisine": "sandwich"}, "addTags": {"amenity": "fast_food", "brand": "Blimpie", "brand:wikidata": "Q4926479", "brand:wikipedia": "en:Blimpie", "cuisine": "sandwich", "name": "Blimpie", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/fast_food/sandwich/Blimpie": {"name": "Blimpie", "icon": "temaki-sandwich", "imageURL": "https://graph.facebook.com/Blimpie/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4926479", "amenity": "fast_food", "cuisine": "sandwich"}, "addTags": {"amenity": "fast_food", "brand": "Blimpie", "brand:wikidata": "Q4926479", "brand:wikipedia": "en:Blimpie", "cuisine": "sandwich", "name": "Blimpie", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/burger/Bob's": {"name": "Bob's", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/bobsbrasil/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1392113", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "Bob's", "brand:wikidata": "Q1392113", "brand:wikipedia": "en:Bob's", "cuisine": "burger", "name": "Bob's", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "countryCodes": ["ao", "br", "cl", "pt"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/chicken/Bojangles'": {"name": "Bojangles'", "icon": "fas-drumstick-bite", "imageURL": "https://graph.facebook.com/Bojangles1977/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q891163", "amenity": "fast_food", "cuisine": "chicken"}, "addTags": {"amenity": "fast_food", "brand": "Bojangles'", "brand:wikidata": "Q891163", "brand:wikipedia": "en:Bojangles' Famous Chicken 'n Biscuits", "cuisine": "chicken", "name": "Bojangles'", "official_name": "Bojangles' Famous Chicken 'n Biscuits", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "chicken"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/Booster Juice": {"name": "Booster Juice", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/boosterjuice/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4943796", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "Booster Juice", "brand:wikidata": "Q4943796", "brand:wikipedia": "en:Booster Juice", "cuisine": "juice", "name": "Booster Juice", "takeaway": "yes"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -2049,7 +2049,7 @@ "amenity/fast_food/burger/Burgerville": {"name": "Burgerville", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/burgerville/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4998570", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "Burgerville", "brand:wikidata": "Q4998570", "brand:wikipedia": "en:Burgerville", "cuisine": "burger", "name": "Burgerville", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/Captain D's": {"name": "Captain D's", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/CaptainDs/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5036616", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "Captain D's", "brand:wikidata": "Q5036616", "brand:wikipedia": "en:Captain D's", "cuisine": "seafood", "name": "Captain D's", "takeaway": "yes"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/burger/Carl's Jr.": {"name": "Carl's Jr.", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/carlsjr/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1043486", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "Carl's Jr.", "brand:wikidata": "Q1043486", "brand:wikipedia": "en:Carl's Jr.", "cuisine": "burger", "name": "Carl's Jr.", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/fast_food/sandwich/Charleys Philly Steaks": {"name": "Charleys Philly Steaks", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/CharleysPhillySteaks/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1066777", "amenity": "fast_food", "cuisine": "sandwich"}, "addTags": {"amenity": "fast_food", "brand": "Charleys Philly Steaks", "brand:wikidata": "Q1066777", "brand:wikipedia": "en:Charleys Philly Steaks", "cuisine": "sandwich", "name": "Charleys Philly Steaks", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "countryCodes": ["us"], "terms": ["charleys"], "matchScore": 2, "suggestion": true}, + "amenity/fast_food/sandwich/Charleys Philly Steaks": {"name": "Charleys Philly Steaks", "icon": "temaki-sandwich", "imageURL": "https://graph.facebook.com/CharleysPhillySteaks/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1066777", "amenity": "fast_food", "cuisine": "sandwich"}, "addTags": {"amenity": "fast_food", "brand": "Charleys Philly Steaks", "brand:wikidata": "Q1066777", "brand:wikipedia": "en:Charleys Philly Steaks", "cuisine": "sandwich", "name": "Charleys Philly Steaks", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "countryCodes": ["us"], "terms": ["charleys"], "matchScore": 2, "suggestion": true}, "amenity/fast_food/burger/Checkers": {"name": "Checkers", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/checkersrallys/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q63919315", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "Checkers", "brand:wikidata": "Q63919315", "cuisine": "burger", "name": "Checkers", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/chicken/Chick-fil-A": {"name": "Chick-fil-A", "icon": "fas-drumstick-bite", "imageURL": "https://graph.facebook.com/ChickfilA/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q491516", "amenity": "fast_food", "cuisine": "chicken"}, "addTags": {"amenity": "fast_food", "brand": "Chick-fil-A", "brand:wikidata": "Q491516", "brand:wikipedia": "en:Chick-fil-A", "cuisine": "chicken", "name": "Chick-fil-A", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "chicken"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/chicken/Chicken Express": {"name": "Chicken Express", "icon": "fas-drumstick-bite", "imageURL": "https://graph.facebook.com/chickenexpress/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5096235", "amenity": "fast_food", "cuisine": "chicken"}, "addTags": {"amenity": "fast_food", "brand": "Chicken Express", "brand:wikidata": "Q5096235", "brand:wikipedia": "en:Chicken Express", "cuisine": "chicken", "name": "Chicken Express", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "chicken"}, "countryCodes": ["gb", "us"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -2061,7 +2061,7 @@ "amenity/fast_food/Cinnabon": {"name": "Cinnabon", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/Cinnabon/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1092539", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "Cinnabon", "brand:website": "https://www.cinnabon.com/", "brand:wikidata": "Q1092539", "brand:wikipedia": "en:Cinnabon", "cuisine": "dessert", "name": "Cinnabon", "takeaway": "yes"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/CoCo壱番屋": {"name": "CoCo壱番屋", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/cocoichicurry/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5986105", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "CoCo壱番屋", "brand:en": "CoCo Ichibanya", "brand:ja": "CoCo壱番屋", "brand:wikidata": "Q5986105", "brand:wikipedia": "en:Ichibanya", "cuisine": "japanese", "name": "CoCo壱番屋", "name:en": "CoCo Ichibanya", "name:ja": "CoCo壱番屋", "takeaway": "yes"}, "countryCodes": ["cn", "jp"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/Cook Out": {"name": "Cook Out", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/CookOut/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5166992", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "Cook Out", "brand:wikidata": "Q5166992", "brand:wikipedia": "en:Cook Out (restaurant)", "cuisine": "american", "name": "Cook Out", "takeaway": "yes"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/fast_food/sandwich/Così": {"name": "Così", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/getcosi/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5175243", "amenity": "fast_food", "cuisine": "sandwich"}, "addTags": {"amenity": "fast_food", "brand": "Così", "brand:wikidata": "Q5175243", "brand:wikipedia": "en:Così (restaurant)", "cuisine": "sandwich", "name": "Così", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/fast_food/sandwich/Così": {"name": "Così", "icon": "temaki-sandwich", "imageURL": "https://graph.facebook.com/getcosi/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5175243", "amenity": "fast_food", "cuisine": "sandwich"}, "addTags": {"amenity": "fast_food", "brand": "Così", "brand:wikidata": "Q5175243", "brand:wikipedia": "en:Così (restaurant)", "cuisine": "sandwich", "name": "Così", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/burger/Culver's": {"name": "Culver's", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/culvers/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1143589", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "Culver's", "brand:wikidata": "Q1143589", "brand:wikipedia": "en:Culver's", "cuisine": "burger", "name": "Culver's", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/ice_cream/DQ Grill & Chill": {"name": "DQ Grill & Chill", "icon": "fas-ice-cream", "imageURL": "https://graph.facebook.com/dairyqueen/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1141226", "amenity": "fast_food", "cuisine": "ice_cream;burger"}, "addTags": {"amenity": "fast_food", "brand": "DQ Grill & Chill", "brand:wikidata": "Q1141226", "brand:wikipedia": "en:Dairy Queen", "cuisine": "ice_cream;burger", "name": "DQ Grill & Chill", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "ice_cream"}, "countryCodes": ["ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/ice_cream/Dairy Queen": {"name": "Dairy Queen", "icon": "fas-ice-cream", "imageURL": "https://graph.facebook.com/dairyqueen/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1141226", "amenity": "fast_food", "cuisine": "ice_cream;burger"}, "addTags": {"amenity": "fast_food", "brand": "Dairy Queen", "brand:wikidata": "Q1141226", "brand:wikipedia": "en:Dairy Queen", "cuisine": "ice_cream;burger", "name": "Dairy Queen", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "ice_cream"}, "terms": ["dq"], "matchScore": 2, "suggestion": true}, @@ -2075,7 +2075,7 @@ "amenity/fast_food/burger/Everest": {"name": "Everest", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/everest.gr/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62273299", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "Everest", "brand:wikidata": "Q62273299", "cuisine": "burger", "name": "Everest", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "countryCodes": ["gr"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/Extreme Pita": {"name": "Extreme Pita", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/TheExtremePita/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5422367", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "Extreme Pita", "brand:wikidata": "Q5422367", "brand:wikipedia": "en:Extreme Pita", "cuisine": "pita", "name": "Extreme Pita", "takeaway": "yes"}, "countryCodes": ["ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/Fazoli's": {"name": "Fazoli's", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/Fazolis/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1399195", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "Fazoli's", "brand:wikidata": "Q1399195", "brand:wikipedia": "en:Fazoli's", "cuisine": "italian", "name": "Fazoli's", "takeaway": "yes"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/fast_food/sandwich/Firehouse Subs": {"name": "Firehouse Subs", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/firehousesubs/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5451873", "amenity": "fast_food", "cuisine": "sandwich"}, "addTags": {"amenity": "fast_food", "brand": "Firehouse Subs", "brand:wikidata": "Q5451873", "brand:wikipedia": "en:Firehouse Subs", "cuisine": "sandwich", "name": "Firehouse Subs", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "countryCodes": ["ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/fast_food/sandwich/Firehouse Subs": {"name": "Firehouse Subs", "icon": "temaki-sandwich", "imageURL": "https://graph.facebook.com/firehousesubs/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5451873", "amenity": "fast_food", "cuisine": "sandwich"}, "addTags": {"amenity": "fast_food", "brand": "Firehouse Subs", "brand:wikidata": "Q5451873", "brand:wikipedia": "en:Firehouse Subs", "cuisine": "sandwich", "name": "Firehouse Subs", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "countryCodes": ["ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/burger/Five Guys": {"name": "Five Guys", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/fiveguys/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1131810", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "Five Guys", "brand:wikidata": "Q1131810", "brand:wikipedia": "en:Five Guys", "cuisine": "burger", "name": "Five Guys", "official_name": "Five Guys Burgers and Fries", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/ice_cream/Freddy's": {"name": "Freddy's", "icon": "fas-ice-cream", "imageURL": "https://graph.facebook.com/FreddysUSA/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5496837", "amenity": "fast_food", "cuisine": "ice_cream;burger"}, "addTags": {"amenity": "fast_food", "brand": "Freddy's", "brand:wikidata": "Q5496837", "brand:wikipedia": "en:Freddy's Frozen Custard & Steakburgers", "cuisine": "ice_cream;burger", "name": "Freddy's", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "ice_cream"}, "countryCodes": ["us"], "terms": ["freddys frozen custard & steakburgers", "freddys frozen custard and steakburgers"], "matchScore": 2, "suggestion": true}, "amenity/fast_food/mexican/Freebirds": {"name": "Freebirds", "icon": "fas-pepper-hot", "imageURL": "https://graph.facebook.com/freebirdsworldburrito/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5500367", "amenity": "fast_food", "cuisine": "mexican"}, "addTags": {"amenity": "fast_food", "brand": "Freebirds", "brand:wikidata": "Q5500367", "brand:wikipedia": "en:Freebirds World Burrito", "cuisine": "mexican", "name": "Freebirds", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "mexican"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -2097,8 +2097,8 @@ "amenity/fast_food/burger/In-N-Out Burger": {"name": "In-N-Out Burger", "icon": "maki-fast-food", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FInNOut.svg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1205312", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "In-N-Out Burger", "brand:wikidata": "Q1205312", "brand:wikipedia": "en:In-N-Out Burger", "cuisine": "burger", "name": "In-N-Out Burger", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/burger/Jack in the Box": {"name": "Jack in the Box", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/jackinthebox/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1538507", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "Jack in the Box", "brand:wikidata": "Q1538507", "brand:wikipedia": "en:Jack in the Box", "cuisine": "burger", "name": "Jack in the Box", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/Jamba Juice": {"name": "Jamba Juice", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/jambajuice/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3088784", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "Jamba Juice", "brand:wikidata": "Q3088784", "brand:wikipedia": "en:Jamba Juice", "cuisine": "juice", "name": "Jamba Juice", "takeaway": "yes"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/fast_food/sandwich/Jersey Mike's Subs": {"name": "Jersey Mike's Subs", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/jerseymikes/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6184897", "amenity": "fast_food", "cuisine": "sandwich"}, "addTags": {"amenity": "fast_food", "brand": "Jersey Mike's Subs", "brand:wikidata": "Q6184897", "brand:wikipedia": "en:Jersey Mike's Subs", "cuisine": "sandwich", "name": "Jersey Mike's Subs", "short_name": "Jersey Mike's", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/fast_food/sandwich/Jimmy John's": {"name": "Jimmy John's", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/jimmyjohns/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1689380", "amenity": "fast_food", "cuisine": "sandwich"}, "addTags": {"amenity": "fast_food", "brand": "Jimmy John's", "brand:wikidata": "Q1689380", "brand:wikipedia": "en:Jimmy John's", "cuisine": "sandwich", "name": "Jimmy John's", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/fast_food/sandwich/Jersey Mike's Subs": {"name": "Jersey Mike's Subs", "icon": "temaki-sandwich", "imageURL": "https://graph.facebook.com/jerseymikes/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6184897", "amenity": "fast_food", "cuisine": "sandwich"}, "addTags": {"amenity": "fast_food", "brand": "Jersey Mike's Subs", "brand:wikidata": "Q6184897", "brand:wikipedia": "en:Jersey Mike's Subs", "cuisine": "sandwich", "name": "Jersey Mike's Subs", "short_name": "Jersey Mike's", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/fast_food/sandwich/Jimmy John's": {"name": "Jimmy John's", "icon": "temaki-sandwich", "imageURL": "https://graph.facebook.com/jimmyjohns/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1689380", "amenity": "fast_food", "cuisine": "sandwich"}, "addTags": {"amenity": "fast_food", "brand": "Jimmy John's", "brand:wikidata": "Q1689380", "brand:wikipedia": "en:Jimmy John's", "cuisine": "sandwich", "name": "Jimmy John's", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/burger/Jollibee": {"name": "Jollibee", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/JollibeePhilippines/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q37614", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "Jollibee", "brand:wikidata": "Q37614", "brand:wikipedia": "en:Jollibee", "cuisine": "burger", "name": "Jollibee", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/Just Salad": {"name": "Just Salad", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/justsalad/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q23091823", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "Just Salad", "brand:wikidata": "Q23091823", "brand:wikipedia": "en:Just Salad", "cuisine": "salad", "name": "Just Salad", "takeaway": "yes"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/chicken/KFC": {"name": "KFC", "icon": "fas-drumstick-bite", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FKFC%20Logo.svg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q524757", "amenity": "fast_food", "cuisine": "chicken"}, "addTags": {"alt_name": "Kentucky Fried Chicken", "amenity": "fast_food", "brand": "KFC", "brand:wikidata": "Q524757", "brand:wikipedia": "en:KFC", "cuisine": "chicken", "name": "KFC", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "chicken"}, "terms": [], "matchScore": 2, "suggestion": true}, @@ -2108,7 +2108,7 @@ "amenity/fast_food/burger/Krystal": {"name": "Krystal", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/Krystal/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q472195", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "Krystal", "brand:wikidata": "Q472195", "brand:wikipedia": "en:Krystal (restaurant)", "cuisine": "burger", "name": "Krystal", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/L&L Drive-Inn (Hawaii)": {"name": "L&L Drive-Inn (Hawaii)", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/hawaiianbarbecue/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6455441", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "L&L Drive-Inn", "brand:wikidata": "Q6455441", "brand:wikipedia": "en:L&L Hawaiian Barbecue", "cuisine": "hawaiian", "name": "L&L Drive-Inn", "takeaway": "yes"}, "countryCodes": ["us"], "terms": ["l&l", "l&l drive-in"], "matchScore": 2, "suggestion": true}, "amenity/fast_food/L&L Hawaiian Barbecue": {"name": "L&L Hawaiian Barbecue", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/hawaiianbarbecue/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6455441", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "L&L Hawaiian Barbecue", "brand:wikidata": "Q6455441", "brand:wikipedia": "en:L&L Hawaiian Barbecue", "cuisine": "hawaiian", "name": "L&L Hawaiian Barbecue", "takeaway": "yes"}, "countryCodes": ["us"], "terms": ["l&l", "l&l hawaiian bbq"], "matchScore": 2, "suggestion": true}, - "amenity/fast_food/sandwich/Lee's Sandwiches": {"name": "Lee's Sandwiches", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/LeesSandwiches/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6512823", "amenity": "fast_food", "cuisine": "vietnamese;sandwich"}, "addTags": {"amenity": "fast_food", "brand": "Lee's Sandwiches", "brand:wikidata": "Q6512823", "brand:wikipedia": "en:Lee's Sandwiches", "cuisine": "vietnamese;sandwich", "name": "Lee's Sandwiches", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/fast_food/sandwich/Lee's Sandwiches": {"name": "Lee's Sandwiches", "icon": "temaki-sandwich", "imageURL": "https://graph.facebook.com/LeesSandwiches/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6512823", "amenity": "fast_food", "cuisine": "vietnamese;sandwich"}, "addTags": {"amenity": "fast_food", "brand": "Lee's Sandwiches", "brand:wikidata": "Q6512823", "brand:wikipedia": "en:Lee's Sandwiches", "cuisine": "vietnamese;sandwich", "name": "Lee's Sandwiches", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/pizza/Little Caesars": {"name": "Little Caesars", "icon": "maki-restaurant-pizza", "imageURL": "https://graph.facebook.com/LittleCaesars/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1393809", "amenity": "fast_food", "cuisine": "pizza"}, "addTags": {"amenity": "fast_food", "brand": "Little Caesars", "brand:wikidata": "Q1393809", "brand:wikipedia": "en:Little Caesars", "cuisine": "pizza", "name": "Little Caesars", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "pizza"}, "terms": ["little caesars pizza"], "matchScore": 2, "suggestion": true}, "amenity/fast_food/Long John Silver's": {"name": "Long John Silver's", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/LongJohnSilvers/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1535221", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "Long John Silver's", "brand:wikidata": "Q1535221", "brand:wikipedia": "en:Long John Silver's", "cuisine": "seafood", "name": "Long John Silver's", "takeaway": "yes"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/burger/Lotteria": {"name": "Lotteria", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/ilovelotteria/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q249525", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "Lotteria", "brand:wikidata": "Q249525", "brand:wikipedia": "en:Lotteria", "cuisine": "burger", "name": "Lotteria", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "terms": [], "matchScore": 2, "suggestion": true}, @@ -2121,7 +2121,7 @@ "amenity/fast_food/mexican/Mighty Taco": {"name": "Mighty Taco", "icon": "fas-pepper-hot", "imageURL": "https://graph.facebook.com/MyMightyTaco/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6844210", "amenity": "fast_food", "cuisine": "mexican"}, "addTags": {"amenity": "fast_food", "brand": "Mighty Taco", "brand:wikidata": "Q6844210", "brand:wikipedia": "en:Mighty Taco", "cuisine": "mexican", "name": "Mighty Taco", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "mexican"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/burger/Minute Burger": {"name": "Minute Burger", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/MinuteBurger/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62273503", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "Minute Burger", "brand:wikidata": "Q62273503", "cuisine": "burger", "name": "Minute Burger", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "countryCodes": ["ph"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/mexican/Moe's Southwest Grill": {"name": "Moe's Southwest Grill", "icon": "fas-pepper-hot", "imageURL": "https://graph.facebook.com/MoesSouthwestGrill/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6889938", "amenity": "fast_food", "cuisine": "mexican"}, "addTags": {"amenity": "fast_food", "brand": "Moe's Southwest Grill", "brand:wikidata": "Q6889938", "brand:wikipedia": "en:Moe's Southwest Grill", "cuisine": "mexican", "name": "Moe's Southwest Grill", "short_name": "Moe's", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "mexican"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/fast_food/sandwich/Mr. Sub": {"name": "Mr. Sub", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/mrsub/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6929225", "amenity": "fast_food", "cuisine": "sandwich"}, "addTags": {"amenity": "fast_food", "brand": "Mr. Sub", "brand:wikidata": "Q6929225", "brand:wikipedia": "en:Mr. Sub", "cuisine": "sandwich", "name": "Mr. Sub", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/fast_food/sandwich/Mr. Sub": {"name": "Mr. Sub", "icon": "temaki-sandwich", "imageURL": "https://graph.facebook.com/mrsub/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6929225", "amenity": "fast_food", "cuisine": "sandwich"}, "addTags": {"amenity": "fast_food", "brand": "Mr. Sub", "brand:wikidata": "Q6929225", "brand:wikipedia": "en:Mr. Sub", "cuisine": "sandwich", "name": "Mr. Sub", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/New York Fries": {"name": "New York Fries", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/NewYorkFries/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7013558", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "New York Fries", "brand:wikidata": "Q7013558", "brand:wikipedia": "en:New York Fries", "cuisine": "fries", "name": "New York Fries", "takeaway": "yes"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/pizza/New York Pizza": {"name": "New York Pizza", "icon": "maki-restaurant-pizza", "imageURL": "https://graph.facebook.com/newyorkpizza.nl/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2639128", "amenity": "fast_food", "cuisine": "pizza"}, "addTags": {"amenity": "fast_food", "brand": "New York Pizza", "brand:wikidata": "Q2639128", "brand:wikipedia": "nl:New York Pizza", "cuisine": "pizza", "name": "New York Pizza", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "pizza"}, "countryCodes": ["nl"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/Noah's Bagels": {"name": "Noah's Bagels", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/NoahsBagels/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q64517373", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "Noah's Bagels", "brand:wikidata": "Q64517373", "cuisine": "bagel", "name": "Noah's Bagels", "official_name": "Noah's New York Bagels", "takeaway": "yes"}, "countryCodes": ["us"], "terms": ["noahs ny bagels"], "matchScore": 2, "suggestion": true}, @@ -2133,10 +2133,10 @@ "amenity/fast_food/burger/Pal's": {"name": "Pal's", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/Palsweb/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7126094", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "Pal's", "brand:wikidata": "Q7126094", "brand:wikipedia": "en:Pal's", "cuisine": "burger", "name": "Pal's", "official_name": "Pal's Sudden Service", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/pizza/Panago": {"name": "Panago", "icon": "maki-restaurant-pizza", "imageURL": "https://graph.facebook.com/panago/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q17111672", "amenity": "fast_food", "cuisine": "pizza"}, "addTags": {"amenity": "fast_food", "brand": "Panago", "brand:wikidata": "Q17111672", "brand:wikipedia": "en:Panago", "cuisine": "pizza", "name": "Panago", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "pizza"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/Panda Express": {"name": "Panda Express", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/PandaExpress/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1358690", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "Panda Express", "brand:wikidata": "Q1358690", "brand:wikipedia": "en:Panda Express", "cuisine": "chinese", "name": "Panda Express", "takeaway": "yes"}, "terms": ["panda"], "matchScore": 2, "suggestion": true}, - "amenity/fast_food/sandwich/Panera Bread": {"name": "Panera Bread", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/panerabread/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7130852", "amenity": "fast_food", "cuisine": "sandwich"}, "addTags": {"amenity": "fast_food", "brand": "Panera Bread", "brand:wikidata": "Q7130852", "brand:wikipedia": "en:Panera Bread", "cuisine": "sandwich", "name": "Panera Bread", "short_name": "Panera", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "countryCodes": ["ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/fast_food/sandwich/Panera Bread": {"name": "Panera Bread", "icon": "temaki-sandwich", "imageURL": "https://graph.facebook.com/panerabread/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7130852", "amenity": "fast_food", "cuisine": "sandwich"}, "addTags": {"amenity": "fast_food", "brand": "Panera Bread", "brand:wikidata": "Q7130852", "brand:wikipedia": "en:Panera Bread", "cuisine": "sandwich", "name": "Panera Bread", "short_name": "Panera", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "countryCodes": ["ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/pizza/Papa John's": {"name": "Papa John's", "icon": "maki-restaurant-pizza", "imageURL": "https://graph.facebook.com/papajohns/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2759586", "amenity": "fast_food", "cuisine": "pizza"}, "addTags": {"amenity": "fast_food", "brand": "Papa John's", "brand:wikidata": "Q2759586", "brand:wikipedia": "en:Papa John's Pizza", "cuisine": "pizza", "name": "Papa John's", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "pizza"}, "terms": ["papa john", "papa john pizza", "papa johns pizza"], "matchScore": 2, "suggestion": true}, "amenity/fast_food/pizza/Papa Murphy's": {"name": "Papa Murphy's", "icon": "maki-restaurant-pizza", "imageURL": "https://graph.facebook.com/papamurphyspizza/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7132349", "amenity": "fast_food", "cuisine": "pizza"}, "addTags": {"amenity": "fast_food", "brand": "Papa Murphy's", "brand:wikidata": "Q7132349", "brand:wikipedia": "en:Papa Murphy's", "cuisine": "pizza", "name": "Papa Murphy's", "official_name": "Papa Murphy's Take 'N' Bake Pizza", "takeaway": "only"}, "reference": {"key": "cuisine", "value": "pizza"}, "countryCodes": ["ca", "us"], "terms": ["papa murphy", "papa murphy pizza", "papa murphys pizza"], "matchScore": 2, "suggestion": true}, - "amenity/fast_food/sandwich/Penn Station": {"name": "Penn Station", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/pennstation/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7163311", "amenity": "fast_food", "cuisine": "sandwich"}, "addTags": {"amenity": "fast_food", "brand": "Penn Station", "brand:wikidata": "Q7163311", "brand:wikipedia": "en:Penn Station (restaurant)", "cuisine": "sandwich", "name": "Penn Station", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/fast_food/sandwich/Penn Station": {"name": "Penn Station", "icon": "temaki-sandwich", "imageURL": "https://graph.facebook.com/pennstation/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7163311", "amenity": "fast_food", "cuisine": "sandwich"}, "addTags": {"amenity": "fast_food", "brand": "Penn Station", "brand:wikidata": "Q7163311", "brand:wikipedia": "en:Penn Station (restaurant)", "cuisine": "sandwich", "name": "Penn Station", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/Philly Pretzel Factory": {"name": "Philly Pretzel Factory", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/PhillyPretzel/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q60097339", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "Philly Pretzel Factory", "brand:wikidata": "Q60097339", "cuisine": "pretzel", "name": "Philly Pretzel Factory", "takeaway": "yes"}, "countryCodes": ["us"], "terms": ["philadelphia pretzel factory", "philadelphia soft pretzel factory", "philly soft pretzel factory"], "matchScore": 2, "suggestion": true}, "amenity/fast_food/chicken/Pinulito": {"name": "Pinulito", "icon": "fas-drumstick-bite", "imageURL": "https://graph.facebook.com/elsabordenuestragente/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62273613", "amenity": "fast_food", "cuisine": "chicken"}, "addTags": {"amenity": "fast_food", "brand": "Pinulito", "brand:wikidata": "Q62273613", "cuisine": "chicken", "name": "Pinulito", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "chicken"}, "countryCodes": ["gt"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/Pita Pit": {"name": "Pita Pit", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/pitapitusa/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7757289", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "Pita Pit", "brand:wikidata": "Q7757289", "brand:wikipedia": "en:Pita Pit", "cuisine": "pita", "name": "Pita Pit", "takeaway": "yes"}, "terms": [], "matchScore": 2, "suggestion": true}, @@ -2149,12 +2149,12 @@ "amenity/fast_food/chicken/Pollo Granjero (Guatemala)": {"name": "Pollo Granjero (Guatemala)", "icon": "fas-drumstick-bite", "imageURL": "https://graph.facebook.com/PolloGranjeroGuatemala/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62273652", "amenity": "fast_food", "cuisine": "chicken"}, "addTags": {"amenity": "fast_food", "brand": "Pollo Granjero", "brand:wikidata": "Q62273652", "cuisine": "chicken", "name": "Pollo Granjero", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "chicken"}, "countryCodes": ["gt"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/chicken/Pollo Tropical": {"name": "Pollo Tropical", "icon": "fas-drumstick-bite", "imageURL": "https://graph.facebook.com/PolloTropical/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3395356", "amenity": "fast_food", "cuisine": "chicken"}, "addTags": {"amenity": "fast_food", "brand": "Pollo Tropical", "brand:wikidata": "Q3395356", "brand:wikipedia": "en:Pollo Tropical", "cuisine": "chicken", "name": "Pollo Tropical", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "chicken"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/chicken/Popeyes": {"name": "Popeyes", "icon": "fas-drumstick-bite", "imageURL": "https://graph.facebook.com/PopeyesLouisianaKitchen/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1330910", "amenity": "fast_food", "cuisine": "chicken"}, "addTags": {"amenity": "fast_food", "brand": "Popeyes", "brand:wikidata": "Q1330910", "brand:wikipedia": "en:Popeyes", "cuisine": "chicken", "name": "Popeyes", "official_name": "Popeyes Louisiana Kitchen", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "chicken"}, "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/fast_food/sandwich/Potbelly": {"name": "Potbelly", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/potbellysandwichshop/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7234777", "amenity": "fast_food", "cuisine": "sandwich"}, "addTags": {"amenity": "fast_food", "brand": "Potbelly", "brand:wikidata": "Q7234777", "brand:wikipedia": "en:Potbelly Sandwich Shop", "cuisine": "sandwich", "name": "Potbelly", "official_name": "Potbelly Sandwich Works", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "countryCodes": ["us"], "terms": ["potbelly sandwich shop"], "matchScore": 2, "suggestion": true}, - "amenity/fast_food/sandwich/Pret A Manger": {"name": "Pret A Manger", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/pretamangerusa/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2109109", "amenity": "fast_food", "cuisine": "sandwich"}, "addTags": {"amenity": "fast_food", "brand": "Pret A Manger", "brand:wikidata": "Q2109109", "brand:wikipedia": "en:Pret a Manger", "cuisine": "sandwich", "name": "Pret A Manger", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "countryCodes": ["gb", "us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/fast_food/sandwich/Potbelly": {"name": "Potbelly", "icon": "temaki-sandwich", "imageURL": "https://graph.facebook.com/potbellysandwichshop/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7234777", "amenity": "fast_food", "cuisine": "sandwich"}, "addTags": {"amenity": "fast_food", "brand": "Potbelly", "brand:wikidata": "Q7234777", "brand:wikipedia": "en:Potbelly Sandwich Shop", "cuisine": "sandwich", "name": "Potbelly", "official_name": "Potbelly Sandwich Works", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "countryCodes": ["us"], "terms": ["potbelly sandwich shop"], "matchScore": 2, "suggestion": true}, + "amenity/fast_food/sandwich/Pret A Manger": {"name": "Pret A Manger", "icon": "temaki-sandwich", "imageURL": "https://graph.facebook.com/pretamangerusa/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2109109", "amenity": "fast_food", "cuisine": "sandwich"}, "addTags": {"amenity": "fast_food", "brand": "Pret A Manger", "brand:wikidata": "Q2109109", "brand:wikipedia": "en:Pret a Manger", "cuisine": "sandwich", "name": "Pret A Manger", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "countryCodes": ["gb", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/Pretzelmaker": {"name": "Pretzelmaker", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/pretzelmaker/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7242321", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "Pretzelmaker", "brand:wikidata": "Q7242321", "brand:wikipedia": "en:Pretzelmaker", "cuisine": "pretzel", "name": "Pretzelmaker", "takeaway": "yes"}, "countryCodes": ["us"], "terms": ["pretzel time"], "matchScore": 2, "suggestion": true}, "amenity/fast_food/mexican/Qdoba": {"name": "Qdoba", "icon": "fas-pepper-hot", "imageURL": "https://graph.facebook.com/qdoba/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1363885", "amenity": "fast_food", "cuisine": "mexican"}, "addTags": {"amenity": "fast_food", "brand": "Qdoba", "brand:wikidata": "Q1363885", "brand:wikipedia": "en:Qdoba", "cuisine": "mexican", "name": "Qdoba", "official_name": "Qdoba Mexican Grill", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "mexican"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/burger/Quick": {"name": "Quick", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/QuickBelgium/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q286494", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "Quick", "brand:wikidata": "Q286494", "brand:wikipedia": "en:Quick (restaurant)", "cuisine": "burger", "name": "Quick", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "countryCodes": ["be", "fr", "lu"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/fast_food/sandwich/Quiznos": {"name": "Quiznos", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/Quiznos/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1936229", "amenity": "fast_food", "cuisine": "sandwich"}, "addTags": {"amenity": "fast_food", "brand": "Quiznos", "brand:wikidata": "Q1936229", "brand:wikipedia": "en:Quiznos", "cuisine": "sandwich", "name": "Quiznos", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "terms": ["quiznos sub", "quiznos subs"], "matchScore": 2, "suggestion": true}, + "amenity/fast_food/sandwich/Quiznos": {"name": "Quiznos", "icon": "temaki-sandwich", "imageURL": "https://graph.facebook.com/Quiznos/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1936229", "amenity": "fast_food", "cuisine": "sandwich"}, "addTags": {"amenity": "fast_food", "brand": "Quiznos", "brand:wikidata": "Q1936229", "brand:wikipedia": "en:Quiznos", "cuisine": "sandwich", "name": "Quiznos", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "terms": ["quiznos sub", "quiznos subs"], "matchScore": 2, "suggestion": true}, "amenity/fast_food/chicken/Raising Cane's": {"name": "Raising Cane's", "icon": "fas-drumstick-bite", "imageURL": "https://graph.facebook.com/RaisingCanesChickenFingers/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7285144", "amenity": "fast_food", "cuisine": "chicken"}, "addTags": {"amenity": "fast_food", "brand": "Raising Cane's", "brand:wikidata": "Q7285144", "brand:wikipedia": "en:Raising Cane's Chicken Fingers", "cuisine": "chicken", "name": "Raising Cane's", "official_name": "Raising Cane's Chicken Fingers", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "chicken"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/burger/Rally's": {"name": "Rally's", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/checkersrallys/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q63919323", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "Rally's", "brand:wikidata": "Q63919323", "cuisine": "burger", "name": "Rally's", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/chicken/Red Rooster": {"name": "Red Rooster", "icon": "fas-drumstick-bite", "imageURL": "https://graph.facebook.com/RedRoosterAU/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q376466", "amenity": "fast_food", "cuisine": "chicken"}, "addTags": {"amenity": "fast_food", "brand": "Red Rooster", "brand:wikidata": "Q376466", "brand:wikipedia": "en:Red Rooster", "cuisine": "chicken", "name": "Red Rooster", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "chicken"}, "countryCodes": ["au"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -2163,16 +2163,16 @@ "amenity/fast_food/burger/SUSU & Sons": {"name": "SUSU & Sons", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/susuandsons/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q64760081", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"alt_name": "SUSU and Sons", "alt_name:en": "SUSU and Sons", "alt_name:he": "סוסו ובניו", "amenity": "fast_food", "brand": "SUSU & Sons", "brand:en": "SUSU & Sons", "brand:he": "סוסו אנד סאנס", "brand:wikidata": "Q64760081", "cuisine": "burger", "name": "SUSU & Sons", "name:en": "SUSU & Sons", "name:he": "סוסו אנד סאנס", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "countryCodes": ["il"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/Sarku Japan": {"name": "Sarku Japan", "icon": "maki-fast-food", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FSarku%20Japan%20logo.png&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7424243", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "Sarku Japan", "brand:wikidata": "Q7424243", "cuisine": "japanese", "name": "Sarku Japan", "takeaway": "yes"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/pizza/Sbarro": {"name": "Sbarro", "icon": "maki-restaurant-pizza", "imageURL": "https://graph.facebook.com/Sbarro/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2589409", "amenity": "fast_food", "cuisine": "pizza"}, "addTags": {"amenity": "fast_food", "brand": "Sbarro", "brand:wikidata": "Q2589409", "brand:wikipedia": "en:Sbarro", "cuisine": "pizza", "name": "Sbarro", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "pizza"}, "terms": ["Sbarro Pizzeria"], "matchScore": 2, "suggestion": true}, - "amenity/fast_food/sandwich/Schlotzsky's": {"name": "Schlotzsky's", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/Schlotzskys/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2244796", "amenity": "fast_food", "cuisine": "sandwich"}, "addTags": {"amenity": "fast_food", "brand": "Schlotzsky's", "brand:wikidata": "Q2244796", "brand:wikipedia": "en:Schlotzsky's", "cuisine": "sandwich", "name": "Schlotzsky's", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "countryCodes": ["us"], "terms": ["schlotzskys deli"], "matchScore": 2, "suggestion": true}, + "amenity/fast_food/sandwich/Schlotzsky's": {"name": "Schlotzsky's", "icon": "temaki-sandwich", "imageURL": "https://graph.facebook.com/Schlotzskys/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2244796", "amenity": "fast_food", "cuisine": "sandwich"}, "addTags": {"amenity": "fast_food", "brand": "Schlotzsky's", "brand:wikidata": "Q2244796", "brand:wikipedia": "en:Schlotzsky's", "cuisine": "sandwich", "name": "Schlotzsky's", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "countryCodes": ["us"], "terms": ["schlotzskys deli"], "matchScore": 2, "suggestion": true}, "amenity/fast_food/burger/Shake Shack": {"name": "Shake Shack", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/shakeshack/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1058722", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "Shake Shack", "brand:wikidata": "Q1058722", "brand:wikipedia": "en:Shake Shack", "cuisine": "burger", "name": "Shake Shack", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "countryCodes": ["gb", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/burger/Sibylla": {"name": "Sibylla", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/sibyllasverige/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q488643", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "Sibylla", "brand:wikidata": "Q488643", "brand:wikipedia": "en:Sibylla (fast food)", "cuisine": "burger", "name": "Sibylla", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "countryCodes": ["fi", "se"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/burger/Smashburger": {"name": "Smashburger", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/smashburger/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q17061332", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "Smashburger", "brand:wikidata": "Q17061332", "brand:wikipedia": "en:Smashburger", "cuisine": "burger", "name": "Smashburger", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "countryCodes": ["ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/Smoothie King": {"name": "Smoothie King", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/SmoothieKing/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5491421", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "Smoothie King", "brand:wikidata": "Q5491421", "brand:wikipedia": "en:Smoothie King", "cuisine": "juice", "name": "Smoothie King", "takeaway": "yes"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/burger/Sonic": {"name": "Sonic", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/sonicdrivein/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7561808", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "Sonic", "brand:wikidata": "Q7561808", "brand:wikipedia": "en:Sonic Drive-In", "cuisine": "burger", "name": "Sonic", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "terms": ["sonic drive in"], "matchScore": 2, "suggestion": true}, - "amenity/fast_food/sandwich/Specialty's": {"name": "Specialty's", "icon": "maki-restaurant", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q64339210", "amenity": "fast_food", "cuisine": "sandwich;bakery"}, "addTags": {"amenity": "fast_food", "brand": "Specialty's", "brand:wikidata": "Q64339210", "cuisine": "sandwich;bakery", "name": "Specialty's", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/fast_food/sandwich/Steak Escape": {"name": "Steak Escape", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/steakescape/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7605235", "amenity": "fast_food", "cuisine": "sandwich"}, "addTags": {"amenity": "fast_food", "brand": "Steak Escape", "brand:wikidata": "Q7605235", "brand:wikipedia": "en:Steak Escape", "cuisine": "sandwich", "name": "Steak Escape", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/fast_food/sandwich/Specialty's": {"name": "Specialty's", "icon": "temaki-sandwich", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q64339210", "amenity": "fast_food", "cuisine": "sandwich;bakery"}, "addTags": {"amenity": "fast_food", "brand": "Specialty's", "brand:wikidata": "Q64339210", "cuisine": "sandwich;bakery", "name": "Specialty's", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/fast_food/sandwich/Steak Escape": {"name": "Steak Escape", "icon": "temaki-sandwich", "imageURL": "https://graph.facebook.com/steakescape/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7605235", "amenity": "fast_food", "cuisine": "sandwich"}, "addTags": {"amenity": "fast_food", "brand": "Steak Escape", "brand:wikidata": "Q7605235", "brand:wikipedia": "en:Steak Escape", "cuisine": "sandwich", "name": "Steak Escape", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/burger/Steers": {"name": "Steers", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/OfficialSteers/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q56599145", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "Steers", "brand:wikidata": "Q56599145", "brand:wikipedia": "en:Steers", "cuisine": "burger", "name": "Steers", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/fast_food/sandwich/Subway": {"name": "Subway", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/subway/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q244457", "amenity": "fast_food", "cuisine": "sandwich"}, "addTags": {"amenity": "fast_food", "brand": "Subway", "brand:wikidata": "Q244457", "brand:wikipedia": "en:Subway (restaurant)", "cuisine": "sandwich", "name": "Subway", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "terms": ["subway sandwiches"], "matchScore": 2, "suggestion": true}, + "amenity/fast_food/sandwich/Subway": {"name": "Subway", "icon": "temaki-sandwich", "imageURL": "https://graph.facebook.com/subway/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q244457", "amenity": "fast_food", "cuisine": "sandwich"}, "addTags": {"amenity": "fast_food", "brand": "Subway", "brand:wikidata": "Q244457", "brand:wikipedia": "en:Subway (restaurant)", "cuisine": "sandwich", "name": "Subway", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "terms": ["subway sandwiches"], "matchScore": 2, "suggestion": true}, "amenity/fast_food/burger/Supermac's": {"name": "Supermac's", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/supermacsofficial/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7643750", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "Supermac's", "brand:wikidata": "Q7643750", "brand:wikipedia": "en:Supermac's", "cuisine": "burger", "name": "Supermac's", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "countryCodes": ["gb", "ie"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/Sushi Shop": {"name": "Sushi Shop", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/sushishopboutique/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q64840990", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "Sushi Shop", "brand:wikidata": "Q64840990", "cuisine": "sushi", "name": "Sushi Shop", "takeaway": "yes"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/TCBY": {"name": "TCBY", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/tcby/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7669631", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "TCBY", "brand:wikidata": "Q7669631", "brand:wikipedia": "en:TCBY", "cuisine": "frozen_yogurt", "name": "TCBY", "takeaway": "yes"}, "terms": [], "matchScore": 2, "suggestion": true}, @@ -2188,28 +2188,28 @@ "amenity/fast_food/Thaï Express (North America)": {"name": "Thaï Express (North America)", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/EatThaiExpress/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7711610", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "Thaï Express", "brand:wikidata": "Q7711610", "brand:wikipedia": "en:Thaï Express", "cuisine": "thai", "name": "Thaï Express", "takeaway": "yes"}, "countryCodes": ["ca", "us"], "terms": ["thai express"], "matchScore": 2, "suggestion": true}, "amenity/fast_food/burger/The Habit Burger Grill": {"name": "The Habit Burger Grill", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/habitburger/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q18158741", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"alt_name": "Habit Burger Grill", "amenity": "fast_food", "brand": "The Habit Burger Grill", "brand:wikidata": "Q18158741", "brand:wikipedia": "en:The Habit Burger Grill", "cuisine": "burger", "name": "The Habit Burger Grill", "short_name": "Habit Burger", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "countryCodes": ["us"], "terms": ["the habit burger"], "matchScore": 2, "suggestion": true}, "amenity/fast_food/pizza/The Pizza Company": {"name": "The Pizza Company", "icon": "maki-restaurant-pizza", "imageURL": "https://graph.facebook.com/thepizzacompany/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2413520", "amenity": "fast_food", "cuisine": "pizza"}, "addTags": {"alt_name": "Pizza Company", "amenity": "fast_food", "brand": "The Pizza Company", "brand:wikidata": "Q2413520", "brand:wikipedia": "en:The Pizza Company", "cuisine": "pizza", "name": "The Pizza Company", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "pizza"}, "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/fast_food/sandwich/Togo's": {"name": "Togo's", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/togossandwiches/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3530375", "amenity": "fast_food", "cuisine": "sandwich"}, "addTags": {"amenity": "fast_food", "brand": "Togo's", "brand:wikidata": "Q3530375", "brand:wikipedia": "en:Togo's", "cuisine": "sandwich", "name": "Togo's", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/fast_food/sandwich/Togo's": {"name": "Togo's", "icon": "temaki-sandwich", "imageURL": "https://graph.facebook.com/togossandwiches/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3530375", "amenity": "fast_food", "cuisine": "sandwich"}, "addTags": {"amenity": "fast_food", "brand": "Togo's", "brand:wikidata": "Q3530375", "brand:wikipedia": "en:Togo's", "cuisine": "sandwich", "name": "Togo's", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/Tropical Smoothie Cafe": {"name": "Tropical Smoothie Cafe", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/tropicalsmoothiecafe/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7845817", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "Tropical Smoothie Cafe", "brand:wikidata": "Q7845817", "brand:wikipedia": "en:Tropical Smoothie Cafe", "cuisine": "juice", "name": "Tropical Smoothie Cafe", "takeaway": "yes"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/Veggie Grill": {"name": "Veggie Grill", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/veggiegrill/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q18636427", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "Veggie Grill", "brand:wikidata": "Q18636427", "brand:wikipedia": "en:Veggie Grill", "cuisine": "american", "diet:vegan": "only", "name": "Veggie Grill", "takeaway": "yes"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/Wahoo's Fish Taco": {"name": "Wahoo's Fish Taco", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/WahoosFishTaco/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7959827", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "Wahoo's Fish Taco", "brand:wikidata": "Q7959827", "brand:wikipedia": "en:Wahoo's Fish Taco", "cuisine": "seafood", "name": "Wahoo's Fish Taco", "short_name": "Wahoo's", "takeaway": "yes"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/burger/Wendy's": {"name": "Wendy's", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/wendys/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q550258", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "Wendy's", "brand:wikidata": "Q550258", "brand:wikipedia": "en:Wendy's", "cuisine": "burger", "name": "Wendy's", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/burger/Whataburger": {"name": "Whataburger", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/whataburger/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q376627", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "Whataburger", "brand:wikidata": "Q376627", "brand:wikipedia": "en:Whataburger", "cuisine": "burger", "name": "Whataburger", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/fast_food/sandwich/Which Wich?": {"name": "Which Wich?", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/whichwich/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7993556", "amenity": "fast_food", "cuisine": "sandwich"}, "addTags": {"amenity": "fast_food", "brand": "Which Wich?", "brand:wikidata": "Q7993556", "brand:wikipedia": "en:Which Wich?", "cuisine": "sandwich", "name": "Which Wich?", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "countryCodes": ["ae", "gb", "gt", "mx", "om", "qa", "sa", "us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/fast_food/sandwich/Which Wich?": {"name": "Which Wich?", "icon": "temaki-sandwich", "imageURL": "https://graph.facebook.com/whichwich/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7993556", "amenity": "fast_food", "cuisine": "sandwich"}, "addTags": {"amenity": "fast_food", "brand": "Which Wich?", "brand:wikidata": "Q7993556", "brand:wikipedia": "en:Which Wich?", "cuisine": "sandwich", "name": "Which Wich?", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "countryCodes": ["ae", "gb", "gt", "mx", "om", "qa", "sa", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/burger/White Castle": {"name": "White Castle", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/WhiteCastle/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1244034", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "White Castle", "brand:wikidata": "Q1244034", "brand:wikipedia": "en:White Castle (restaurant)", "cuisine": "burger", "name": "White Castle", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/Wienerschnitzel": {"name": "Wienerschnitzel", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/Wienerschnitzel/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q324679", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "Wienerschnitzel", "brand:wikidata": "Q324679", "brand:wikipedia": "en:Wienerschnitzel", "cuisine": "hot_dog", "name": "Wienerschnitzel", "takeaway": "yes"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/burger/Wimpy": {"name": "Wimpy", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/wimpyrestaurants/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2811992", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "Wimpy", "brand:wikidata": "Q2811992", "brand:wikipedia": "en:Wimpy (restaurant)", "cuisine": "burger", "name": "Wimpy", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/Xi'an Famous Foods": {"name": "Xi'an Famous Foods", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/xianfoods/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q8044020", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "Xi'an Famous Foods", "brand:wikidata": "Q8044020", "brand:wikipedia": "en:Xi'an Famous Foods", "cuisine": "chinese", "name": "Xi'an Famous Foods", "takeaway": "yes"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/chicken/Zaxby's": {"name": "Zaxby's", "icon": "fas-drumstick-bite", "imageURL": "https://graph.facebook.com/Zaxbys/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q8067525", "amenity": "fast_food", "cuisine": "chicken"}, "addTags": {"amenity": "fast_food", "brand": "Zaxby's", "brand:wikidata": "Q8067525", "brand:wikipedia": "en:Zaxby's", "cuisine": "chicken", "name": "Zaxby's", "official_name": "Zaxby's Chicken Fingers & Buffalo Wings", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "chicken"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/Zoës Kitchen": {"name": "Zoës Kitchen", "icon": "maki-fast-food", "imageURL": "https://pbs.twimg.com/profile_images/955840927968280576/pAowOseE_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q8074747", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "Zoës Kitchen", "brand:wikidata": "Q8074747", "brand:wikipedia": "en:Zoës Kitchen", "cuisine": "mediterranean", "name": "Zoës Kitchen", "takeaway": "yes"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/fast_food/sandwich/immergrün": {"name": "immergrün", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/mein.immergruen/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62589254", "amenity": "fast_food", "cuisine": "sandwich;salad;juice"}, "addTags": {"amenity": "fast_food", "brand": "immergrün", "brand:wikidata": "Q62589254", "cuisine": "sandwich;salad;juice", "name": "immergün", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "countryCodes": ["de"], "terms": ["immergün"], "matchScore": 2, "suggestion": true}, - "amenity/fast_food/sandwich/Γρηγόρης": {"name": "Γρηγόρης", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/gregorys.gr/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62273834", "amenity": "fast_food", "cuisine": "sandwich"}, "addTags": {"amenity": "fast_food", "brand": "Γρηγόρης", "brand:el": "Γρηγόρης", "brand:en": "Gregorys", "brand:wikidata": "Q62273834", "cuisine": "sandwich", "name": "Γρηγόρης", "name:el": "Γρηγόρης", "name:en": "Gregorys", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "countryCodes": ["gr"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/fast_food/sandwich/immergrün": {"name": "immergrün", "icon": "temaki-sandwich", "imageURL": "https://graph.facebook.com/mein.immergruen/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62589254", "amenity": "fast_food", "cuisine": "sandwich;salad;juice"}, "addTags": {"amenity": "fast_food", "brand": "immergrün", "brand:wikidata": "Q62589254", "cuisine": "sandwich;salad;juice", "name": "immergün", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "countryCodes": ["de"], "terms": ["immergün"], "matchScore": 2, "suggestion": true}, + "amenity/fast_food/sandwich/Γρηγόρης": {"name": "Γρηγόρης", "icon": "temaki-sandwich", "imageURL": "https://graph.facebook.com/gregorys.gr/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62273834", "amenity": "fast_food", "cuisine": "sandwich"}, "addTags": {"amenity": "fast_food", "brand": "Γρηγόρης", "brand:el": "Γρηγόρης", "brand:en": "Gregorys", "brand:wikidata": "Q62273834", "cuisine": "sandwich", "name": "Γρηγόρης", "name:el": "Γρηγόρης", "name:en": "Gregorys", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "countryCodes": ["gr"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/burger/Бургер Кинг": {"name": "Бургер Кинг", "icon": "maki-fast-food", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FBurger%20King%20Logo.svg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q177054", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "Бургер Кинг", "brand:en": "Burger King", "brand:ru": "Бургер Кинг", "brand:wikidata": "Q177054", "brand:wikipedia": "en:Burger King", "cuisine": "burger", "name": "Бургер Кинг", "name:en": "Burger King", "name:ru": "Бургер Кинг", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "countryCodes": ["by", "kz", "ru"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/Домино'c Пицца": {"name": "Домино'c Пицца", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/Dominos/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q839466", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "Домино'c Пицца", "brand:en": "Domino's Pizza", "brand:ru": "Домино'c Пицца", "brand:wikidata": "Q839466", "brand:wikipedia": "ru:Domino’s Pizza", "name": "Домино'c Пицца", "name:en": "Domino's Pizza", "name:ru": "Домино'c Пицца", "short_name": "Домино'c", "short_name:en": "Domino's", "short_name:ru": "Домино'c", "takeaway": "yes"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/Крошка Картошка": {"name": "Крошка Картошка", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/kartoshka.moscow/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4241838", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "Крошка Картошка", "brand:en": "Kroshka Kartoshka", "brand:ru": "Крошка Картошка", "brand:wikidata": "Q4241838", "brand:wikipedia": "ru:Крошка Картошка", "cuisine": "potato", "name": "Крошка Картошка", "name:en": "Kroshka Kartoshka", "name:ru": "Крошка Картошка", "takeaway": "yes"}, "countryCodes": ["ru"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/burger/Макдоналдс": {"name": "Макдоналдс", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/mcdonalds/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q38076", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "Макдоналдс", "brand:en": "McDonald's", "brand:ru": "Макдоналдс", "brand:wikidata": "Q38076", "brand:wikipedia": "en:McDonald's", "cuisine": "burger", "name": "Макдоналдс", "name:en": "McDonald's", "name:ru": "Макдоналдс", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/pizza/Папа Джонс": {"name": "Папа Джонс", "icon": "maki-restaurant-pizza", "imageURL": "https://graph.facebook.com/papajohns/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2759586", "amenity": "fast_food", "cuisine": "pizza"}, "addTags": {"amenity": "fast_food", "brand": "Папа Джонс", "brand:en": "Papa John's", "brand:ru": "Папа Джонс", "brand:wikidata": "Q2759586", "brand:wikipedia": "ru:Papa John’s", "cuisine": "pizza", "name": "Папа Джонс", "name:en": "Papa John's", "name:ru": "Папа Джонс", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "pizza"}, "countryCodes": ["by", "ru"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/burger/Робин Сдобин": {"name": "Робин Сдобин", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/robinsdobin/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62273880", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "Робин Сдобин", "brand:en": "Robins Dobin", "brand:ru": "Робин Сдобин", "brand:wikidata": "Q62273880", "cuisine": "burger", "name": "Робин Сдобин", "name:en": "Robins Dobin", "name:ru": "Робин Сдобин", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "countryCodes": ["ru"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/fast_food/sandwich/Русский Аппетит": {"name": "Русский Аппетит", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/1502979646622576/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62086063", "amenity": "fast_food", "cuisine": "sandwich;salad;regional"}, "addTags": {"amenity": "fast_food", "brand": "Русский Аппетит", "brand:en": "Russkiy Appetit", "brand:ru": "Русский Аппетит", "brand:wikidata": "Q62086063", "cuisine": "sandwich;salad;regional", "name": "Русский Аппетит", "name:en": "Russkiy Appetit", "name:ru": "Русский Аппетит", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "countryCodes": ["ru"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/fast_food/sandwich/Русский Аппетит": {"name": "Русский Аппетит", "icon": "temaki-sandwich", "imageURL": "https://graph.facebook.com/1502979646622576/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62086063", "amenity": "fast_food", "cuisine": "sandwich;salad;regional"}, "addTags": {"amenity": "fast_food", "brand": "Русский Аппетит", "brand:en": "Russkiy Appetit", "brand:ru": "Русский Аппетит", "brand:wikidata": "Q62086063", "cuisine": "sandwich;salad;regional", "name": "Русский Аппетит", "name:en": "Russkiy Appetit", "name:ru": "Русский Аппетит", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "countryCodes": ["ru"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/Стардог!s": {"name": "Стардог!s", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/StardogsOfficial/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4439856", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "Стардог!s", "brand:en": "Stardog!s", "brand:ru": "Стардог!s", "brand:wikidata": "Q4439856", "brand:wikipedia": "ru:Стардогс", "cuisine": "sausage", "name": "Стардог!s", "name:en": "Stardog!s", "name:ru": "Стардог!s", "takeaway": "yes"}, "countryCodes": ["ru"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/Суши Wok": {"name": "Суши Wok", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/sushiwokofficial/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q25444754", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "Суши Wok", "brand:en": "Sushi Wok", "brand:ru": "Суши Wok", "brand:wikidata": "Q25444754", "brand:wikipedia": "uk:Суши Wok (мережа магазинів)", "cuisine": "asian", "name": "Суши Wok", "name:en": "Sushi Wok", "name:ru": "Суши Wok", "takeaway": "yes"}, "countryCodes": ["ru", "ua"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/Теремок": {"name": "Теремок", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/teremok/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4455593", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "Теремок", "brand:en": "Teremok", "brand:ru": "Теремок", "brand:wikidata": "Q4455593", "brand:wikipedia": "ru:Теремок (сеть быстрого питания)", "cuisine": "crepe;russian", "name": "Теремок", "name:en": "Teremok", "name:ru": "Теремок", "takeaway": "yes"}, "countryCodes": ["ru"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -2231,7 +2231,7 @@ "amenity/fast_food/burger/ウェンディーズ": {"name": "ウェンディーズ", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/wendys/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q550258", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "ウェンディーズ", "brand:en": "Wendy's", "brand:ja": "ウェンディーズ", "brand:wikidata": "Q550258", "brand:wikipedia": "en:Wendy's", "cuisine": "burger", "name": "ウェンディーズ", "name:en": "Wendy's", "name:ja": "ウェンディーズ", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/オリジン弁当": {"name": "オリジン弁当", "icon": "maki-fast-food", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11292632", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "オリジン弁当", "brand:en": "Origin Bentō", "brand:ja": "オリジン弁当", "brand:wikidata": "Q11292632", "brand:wikipedia": "ja:オリジン東秀", "cuisine": "japanese", "name": "オリジン弁当", "name:en": "Origin Bentō", "name:ja": "オリジン弁当", "takeaway": "yes"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/chicken/ケンタッキーフライドチキン": {"name": "ケンタッキーフライドチキン", "icon": "fas-drumstick-bite", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FKFC%20Logo.svg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q524757", "amenity": "fast_food", "cuisine": "chicken"}, "addTags": {"amenity": "fast_food", "brand": "ケンタッキーフライドチキン", "brand:en": "KFC", "brand:ja": "ケンタッキーフライドチキン", "brand:wikidata": "Q524757", "brand:wikipedia": "ja:KFCコーポレーション", "cuisine": "chicken", "name": "ケンタッキーフライドチキン", "name:en": "KFC", "name:ja": "ケンタッキーフライドチキン", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "chicken"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/fast_food/sandwich/サブウェイ": {"name": "サブウェイ", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/subway/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q244457", "amenity": "fast_food", "cuisine": "sandwich"}, "addTags": {"amenity": "fast_food", "brand": "サブウェイ", "brand:en": "Subway", "brand:ja": "サブウェイ", "brand:wikidata": "Q244457", "brand:wikipedia": "ja:サブウェイ", "cuisine": "sandwich", "name": "サブウェイ", "name:en": "Subway", "name:ja": "サブウェイ", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/fast_food/sandwich/サブウェイ": {"name": "サブウェイ", "icon": "temaki-sandwich", "imageURL": "https://graph.facebook.com/subway/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q244457", "amenity": "fast_food", "cuisine": "sandwich"}, "addTags": {"amenity": "fast_food", "brand": "サブウェイ", "brand:en": "Subway", "brand:ja": "サブウェイ", "brand:wikidata": "Q244457", "brand:wikipedia": "ja:サブウェイ", "cuisine": "sandwich", "name": "サブウェイ", "name:en": "Subway", "name:ja": "サブウェイ", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/スシロー": {"name": "スシロー", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/akindosushiro/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11257037", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "スシロー", "brand:en": "Sushiro", "brand:ja": "スシロー", "brand:wikidata": "Q11257037", "brand:wikipedia": "ja:あきんどスシロー", "cuisine": "sushi", "name": "スシロー", "name:en": "Sushiro", "name:ja": "スシロー", "name:zh": "壽司郎", "takeaway": "yes"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/pizza/ドミノ・ピザ": {"name": "ドミノ・ピザ", "icon": "maki-restaurant-pizza", "imageURL": "https://graph.facebook.com/Dominos/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q839466", "amenity": "fast_food", "cuisine": "pizza"}, "addTags": {"amenity": "fast_food", "brand": "ドミノ・ピザ", "brand:en": "Domino's Pizza", "brand:ja": "ドミノ・ピザ", "brand:wikidata": "Q839466", "brand:wikipedia": "ja:ドミノ・ピザ", "cuisine": "pizza", "name": "ドミノ・ピザ", "name:en": "Domino's Pizza", "name:ja": "ドミノ・ピザ", "short_name": "ドミノ", "short_name:en": "Domino's", "short_name:ja": "ドミノ", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "pizza"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/burger/バーガーキング": {"name": "バーガーキング", "icon": "maki-fast-food", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FBurger%20King%20Logo.svg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q177054", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "バーガーキング", "brand:en": "Burger King", "brand:ja": "バーガーキング", "brand:wikidata": "Q177054", "brand:wikipedia": "en:Burger King", "cuisine": "burger", "name": "バーガーキング", "name:en": "Burger King", "name:ja": "バーガーキング", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -4032,8 +4032,8 @@ "shop/hearing_aids/Kind Hörgeräte": {"name": "Kind Hörgeräte", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/kindhoergeraete/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q43598590", "shop": "hearing_aids"}, "addTags": {"brand": "Kind Hörgeräte", "brand:wikidata": "Q43598590", "brand:wikipedia": "de:Kind Hörgeräte", "name": "Kind Hörgeräte", "shop": "hearing_aids"}, "countryCodes": ["de"], "terms": ["kind"], "matchScore": 2, "suggestion": true}, "shop/hearing_aids/Miracle-Ear": {"name": "Miracle-Ear", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/miracleear/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q17108572", "shop": "hearing_aids"}, "addTags": {"brand": "Miracle-Ear", "brand:wikidata": "Q17108572", "brand:wikipedia": "en:Miracle-Ear", "name": "Miracle-Ear", "shop": "hearing_aids"}, "countryCodes": ["ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/hearing_aids/Neuroth": {"name": "Neuroth", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/NeurothAG/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q15836645", "shop": "hearing_aids"}, "addTags": {"brand": "Neuroth", "brand:wikidata": "Q15836645", "brand:wikipedia": "de:Neuroth AG", "name": "Neuroth", "shop": "hearing_aids"}, "countryCodes": ["at", "de"], "terms": [], "matchScore": 2, "suggestion": true}, - "shop/hifi/Bang & Olufsen": {"name": "Bang & Olufsen", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/bangolufsenusa/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q790020", "shop": "hifi"}, "addTags": {"brand": "Bang & Olufsen", "brand:wikidata": "Q790020", "brand:wikipedia": "en:Bang & Olufsen", "name": "Bang & Olufsen", "shop": "hifi"}, "terms": [], "matchScore": 2, "suggestion": true}, - "shop/hifi/Bose": {"name": "Bose", "icon": "maki-shop", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FBose%20logo.svg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q328568", "shop": "hifi"}, "addTags": {"brand": "Bose", "brand:wikidata": "Q328568", "brand:wikipedia": "en:Bose Corporation", "name": "Bose", "shop": "hifi"}, "terms": [], "matchScore": 2, "suggestion": true}, + "shop/hifi/Bang & Olufsen": {"name": "Bang & Olufsen", "icon": "temaki-speaker", "imageURL": "https://graph.facebook.com/bangolufsenusa/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q790020", "shop": "hifi"}, "addTags": {"brand": "Bang & Olufsen", "brand:wikidata": "Q790020", "brand:wikipedia": "en:Bang & Olufsen", "name": "Bang & Olufsen", "shop": "hifi"}, "terms": [], "matchScore": 2, "suggestion": true}, + "shop/hifi/Bose": {"name": "Bose", "icon": "temaki-speaker", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FBose%20logo.svg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q328568", "shop": "hifi"}, "addTags": {"brand": "Bose", "brand:wikidata": "Q328568", "brand:wikipedia": "en:Bose Corporation", "name": "Bose", "shop": "hifi"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/hobby/アニメイト": {"name": "アニメイト", "icon": "fas-dragon", "imageURL": "https://pbs.twimg.com/profile_images/1098862296787382272/pLo1nSbN_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1041890", "shop": "hobby"}, "addTags": {"brand": "アニメイト", "brand:en": "Animate", "brand:ja": "アニメイト", "brand:wikidata": "Q1041890", "brand:wikipedia": "ja:アニメイト", "name": "アニメイト", "name:en": "Animate", "name:ja": "アニメイト", "shop": "hobby"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/houseware/At Home": {"name": "At Home", "icon": "fas-blender", "imageURL": "https://graph.facebook.com/AtHomeStores/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5522290", "shop": "houseware"}, "addTags": {"brand": "At Home (store)", "brand:wikidata": "Q5522290", "name": "At Home", "shop": "houseware"}, "countryCodes": ["us"], "terms": ["garden ridge"], "matchScore": 2, "suggestion": true}, "shop/houseware/Bed Bath & Beyond": {"name": "Bed Bath & Beyond", "icon": "fas-blender", "imageURL": "https://graph.facebook.com/BedBathAndBeyond/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q813782", "shop": "houseware"}, "addTags": {"brand": "Bed Bath & Beyond", "brand:wikidata": "Q813782", "brand:wikipedia": "en:Bed Bath & Beyond", "name": "Bed Bath & Beyond", "shop": "houseware"}, "countryCodes": ["ca", "mx", "nz", "us"], "terms": ["bed bath and beyond"], "matchScore": 2, "suggestion": true}, @@ -4249,7 +4249,7 @@ "shop/paint/Jotun": {"name": "Jotun", "icon": "fas-paint-roller", "imageURL": "https://graph.facebook.com/JotunGroup/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1778870", "shop": "paint"}, "addTags": {"brand": "Jotun", "brand:wikidata": "Q1778870", "brand:wikipedia": "en:Jotun (company)", "name": "Jotun", "shop": "paint"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/paint/National Paints": {"name": "National Paints", "icon": "fas-paint-roller", "imageURL": "https://graph.facebook.com/NationalPaints/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62073521", "shop": "paint"}, "addTags": {"brand": "National Paints", "brand:wikidata": "Q62073521", "name": "National Paints", "shop": "paint"}, "countryCodes": ["ae", "qa"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/paint/Sherwin-Williams": {"name": "Sherwin-Williams", "icon": "fas-paint-roller", "imageURL": "https://graph.facebook.com/SherwinWilliamsforYourHome/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q48881", "shop": "paint"}, "addTags": {"brand": "Sherwin-Williams", "brand:wikidata": "Q48881", "brand:wikipedia": "en:Sherwin-Williams", "name": "Sherwin-Williams", "shop": "paint"}, "terms": ["sherwin williams paint store", "sherwin williams paints"], "matchScore": 2, "suggestion": true}, - "shop/party/Party City": {"name": "Party City", "icon": "fas-mask", "imageURL": "https://graph.facebook.com/PartyCity/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7140896", "shop": "party"}, "addTags": {"brand": "Party City", "brand:wikidata": "Q7140896", "brand:wikipedia": "en:Party City", "name": "Party City", "shop": "party"}, "countryCodes": ["ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/party/Party City": {"name": "Party City", "icon": "temaki-balloon", "imageURL": "https://graph.facebook.com/PartyCity/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7140896", "shop": "party"}, "addTags": {"brand": "Party City", "brand:wikidata": "Q7140896", "brand:wikipedia": "en:Party City", "name": "Party City", "shop": "party"}, "countryCodes": ["ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/pastry/Smallcakes": {"name": "Smallcakes", "icon": "maki-bakery", "imageURL": "https://graph.facebook.com/SmallcakesKC/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62384749", "shop": "pastry"}, "addTags": {"brand": "Smallcakes", "brand:wikidata": "Q62384749", "name": "Smallcakes", "shop": "pastry"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/pawnbroker/Cash Converters": {"name": "Cash Converters", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/CashConvertersUK/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5048645", "shop": "pawnbroker"}, "addTags": {"brand": "Cash Converters", "brand:wikidata": "Q5048645", "brand:wikipedia": "en:Cash Converters", "name": "Cash Converters", "shop": "pawnbroker"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/pawnbroker/Cebuana Lhuillier": {"name": "Cebuana Lhuillier", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/cebuanalhuillierpawnshop/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q17064661", "shop": "pawnbroker"}, "addTags": {"brand": "Cebuana Lhuillier", "brand:wikidata": "Q17064661", "brand:wikipedia": "en:Cebuana Lhuillier", "name": "Cebuana Lhuillier", "shop": "pawnbroker"}, "countryCodes": ["ph"], "terms": [], "matchScore": 2, "suggestion": true}, diff --git a/data/presets/presets/amenity/fast_food/sandwich.json b/data/presets/presets/amenity/fast_food/sandwich.json index 9b8aa765cd..ab467cf91c 100644 --- a/data/presets/presets/amenity/fast_food/sandwich.json +++ b/data/presets/presets/amenity/fast_food/sandwich.json @@ -1,5 +1,5 @@ { - "icon": "maki-restaurant", + "icon": "temaki-sandwich", "geometry": [ "point", "area" diff --git a/data/presets/presets/man_made/cairn.json b/data/presets/presets/man_made/cairn.json index 7bf8cf9039..e4fa7a6703 100644 --- a/data/presets/presets/man_made/cairn.json +++ b/data/presets/presets/man_made/cairn.json @@ -1,5 +1,5 @@ { - "icon": "maki-triangle", + "icon": "temaki-cairn", "geometry": [ "point", "area" @@ -14,4 +14,4 @@ "man_made": "cairn" }, "name": "Cairn" -} \ No newline at end of file +} diff --git a/data/presets/presets/shop/hifi.json b/data/presets/presets/shop/hifi.json index 530da3e774..4c8b7b9a36 100644 --- a/data/presets/presets/shop/hifi.json +++ b/data/presets/presets/shop/hifi.json @@ -1,5 +1,5 @@ { - "icon": "maki-shop", + "icon": "temaki-speaker", "geometry": [ "point", "area" diff --git a/data/presets/presets/shop/party.json b/data/presets/presets/shop/party.json index 57dcbfcf02..48ab553790 100644 --- a/data/presets/presets/shop/party.json +++ b/data/presets/presets/shop/party.json @@ -1,5 +1,5 @@ { - "icon": "fas-mask", + "icon": "temaki-balloon", "geometry": [ "point", "area" diff --git a/data/taginfo.json b/data/taginfo.json index 33d955077a..58ec62d84b 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -121,7 +121,7 @@ {"key": "cuisine", "value": "kebab", "description": "🄿 Kebab Fast Food", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/restaurant-15.svg"}, {"key": "cuisine", "value": "mexican", "description": "🄿 Mexican Fast Food, 🄿 Mexican Restaurant", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-pepper-hot.svg"}, {"key": "cuisine", "value": "pizza", "description": "🄿 Pizza Fast Food, 🄿 Pizza Restaurant", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/restaurant-pizza-15.svg"}, - {"key": "cuisine", "value": "sandwich", "description": "🄿 Sandwich Fast Food", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/restaurant-15.svg"}, + {"key": "cuisine", "value": "sandwich", "description": "🄿 Sandwich Fast Food", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/sandwich.svg"}, {"key": "amenity", "value": "fire_station", "description": "🄿 Fire Station", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/fire-station-15.svg"}, {"key": "amenity", "value": "food_court", "description": "🄿 Food Court", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/restaurant-15.svg"}, {"key": "amenity", "value": "fountain", "description": "🄿 Fountain", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/fountain.svg"}, @@ -665,7 +665,7 @@ {"key": "man_made", "value": "breakwater", "description": "🄿 Breakwater", "object_types": ["way", "area"]}, {"key": "man_made", "value": "bridge", "description": "🄿 Bridge", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/bridge-15.svg"}, {"key": "man_made", "value": "bunker_silo", "description": "🄿 Bunker Silo", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/silo.svg"}, - {"key": "man_made", "value": "cairn", "description": "🄿 Cairn", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/triangle-15.svg"}, + {"key": "man_made", "value": "cairn", "description": "🄿 Cairn", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/cairn.svg"}, {"key": "man_made", "value": "chimney", "description": "🄿 Chimney", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/chimney.svg"}, {"key": "man_made", "value": "clearcut", "description": "🄿 Clearcut Forest", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/logging-15.svg"}, {"key": "man_made", "value": "crane", "description": "🄿 Crane", "object_types": ["node", "way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/crane.svg"}, @@ -984,7 +984,7 @@ {"key": "shop", "value": "health_food", "description": "🄿 Health Food Shop", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, {"key": "shop", "value": "hearing_aids", "description": "🄿 Hearing Aids Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, {"key": "shop", "value": "herbalist", "description": "🄿 Herbalist", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-leaf.svg"}, - {"key": "shop", "value": "hifi", "description": "🄿 Hifi Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, + {"key": "shop", "value": "hifi", "description": "🄿 Hifi Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/speaker.svg"}, {"key": "shop", "value": "hobby", "description": "🄿 Hobby Shop", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-dragon.svg"}, {"key": "shop", "value": "houseware", "description": "🄿 Houseware Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-blender.svg"}, {"key": "shop", "value": "hunting", "description": "🄿 Hunting Shop", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, @@ -1015,7 +1015,7 @@ {"key": "shop", "value": "outdoor", "description": "🄿 Outdoors Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/compass.svg"}, {"key": "shop", "value": "outpost", "description": "🄿 Online Retailer Outpost", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, {"key": "shop", "value": "paint", "description": "🄿 Paint Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-paint-roller.svg"}, - {"key": "shop", "value": "party", "description": "🄿 Party Supply Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-mask.svg"}, + {"key": "shop", "value": "party", "description": "🄿 Party Supply Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/balloon.svg"}, {"key": "shop", "value": "pastry", "description": "🄿 Pastry Shop", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/bakery-15.svg"}, {"key": "shop", "value": "pawnbroker", "description": "🄿 Pawn Shop", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, {"key": "shop", "value": "perfumery", "description": "🄿 Perfume Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, diff --git a/svg/fontawesome/fas-chess-knight.svg b/svg/fontawesome/fas-chess-knight.svg index 12d41b828c..87f45be78c 100644 --- a/svg/fontawesome/fas-chess-knight.svg +++ b/svg/fontawesome/fas-chess-knight.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/svg/fontawesome/fas-chess-pawn.svg b/svg/fontawesome/fas-chess-pawn.svg index cb6492d33d..8386683161 100644 --- a/svg/fontawesome/fas-chess-pawn.svg +++ b/svg/fontawesome/fas-chess-pawn.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/svg/fontawesome/fas-mask.svg b/svg/fontawesome/fas-mask.svg deleted file mode 100644 index 040a456f3a..0000000000 --- a/svg/fontawesome/fas-mask.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file From 4fadaceba81d5ced1ccbb9d628ebf52e4bfba10c Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" <23040076+greenkeeper[bot]@users.noreply.github.com> Date: Fri, 26 Jul 2019 15:17:59 +0000 Subject: [PATCH 223/774] chore(package): update name-suggestion-index to version 3.1.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a37df4cf4e..27aa404376 100644 --- a/package.json +++ b/package.json @@ -77,7 +77,7 @@ "minimist": "^1.2.0", "mocha": "^6.1.3", "mocha-phantomjs-core": "^2.1.0", - "name-suggestion-index": "3.0.6", + "name-suggestion-index": "3.1.0", "npm-run-all": "^4.0.0", "osm-community-index": "0.9.0", "phantomjs-prebuilt": "~2.1.11", From 2f7c9ff1393fa1d70fc9913b795f2f6e4e54c169 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Fri, 26 Jul 2019 11:38:50 -0400 Subject: [PATCH 224/774] Add 2.15.4 changelog --- CHANGELOG.md | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3da0ab7fc6..240734ed82 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -29,6 +29,61 @@ _Breaking changes, which may affect downstream projects or sites that embed iD, [@xxxx]: https://github.com/xxxx --> +# 2.15.4 +##### 2019-Jul-26 + +#### :tada: New Features +* Render side direction arrows on weirs ([#6615]) + +[#6615]: https://github.com/openstreetmap/iD/issues/6615 + +#### :sparkles: Usability +* Don't reuse the changeset comment, sources, and hashtags by default after uploading or discarding edits ([#6642]) + +[#6642]: https://github.com/openstreetmap/iD/issues/6642 + +#### :white_check_mark: Validation +* Don't flag very close points on different layers or levels ([#6612]) +* Don't flag Google Books as a source ([#6556]) +* Add `preschool=yes` when upgrading `amenity=preschool` ([#6636]) + +[#6612]: https://github.com/openstreetmap/iD/issues/6612 +[#6556]: https://github.com/openstreetmap/iD/issues/6556 +[#6636]: https://github.com/openstreetmap/iD/issues/6636 + +#### :bug: Bugfixes +* Fix issue where the info in the Background panel wouldn't update when switching backgrounds ([#6627]) +* Fix issue where side direction arrows might not update when switching presets ([#6032]) + +[#6627]: https://github.com/openstreetmap/iD/issues/6627 +[#6032]: https://github.com/openstreetmap/iD/issues/6032 + +#### :earth_asia: Localization +* Default speed limit units to miles per hour in Puerto Rico ([#6626]) +* Fix issue where Arabic numerals would not render correctly on the map ([#6679], [#6682], thanks [@mapmeld]) + +[#6626]: https://github.com/openstreetmap/iD/issues/6626 +[#6679]: https://github.com/openstreetmap/iD/issues/6679 +[#6682]: https://github.com/openstreetmap/iD/issues/6682 + +#### :rocket: Presets +* Add Dressing Room preset ([#6643]) +* Add Pool Supply Store preset ([#6599]) +* Add Address Interpolation line preset ([#4220]) +* Add Park & Ride Lot, Aircraft Holding Position, and Aircraft Parking Position presets +* Add Type and Address fields to Public Bookcase preset ([#6564], thanks [@ToastHawaii]) +* Add Underground Levels field to building presets ([#6628]) +* Add more fields to the Kindergarten, Ferry Route, Ford, Dam, Weir, and Bridge Support presets +* Fix tag misspelling for the Camp Pitch preset ([#6608]) +* Update icons for the Cairn, Sandwich Fast Food, Hifi Store, and Party Store presets + +[#6643]: https://github.com/openstreetmap/iD/issues/6643 +[#6564]: https://github.com/openstreetmap/iD/issues/6564 +[#6628]: https://github.com/openstreetmap/iD/issues/6628 +[#4220]: https://github.com/openstreetmap/iD/issues/4220 +[#6599]: https://github.com/openstreetmap/iD/issues/6599 +[#6608]: https://github.com/openstreetmap/iD/issues/6608 + # 2.15.3 ##### 2019-Jun-30 From 35b2f6f1346b5f8fb820b071289ef9fcfeaa23d5 Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" <23040076+greenkeeper[bot]@users.noreply.github.com> Date: Fri, 26 Jul 2019 15:17:59 +0000 Subject: [PATCH 225/774] chore(package): update name-suggestion-index to version 3.1.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index dd1173c87d..d2c5d805c4 100644 --- a/package.json +++ b/package.json @@ -77,7 +77,7 @@ "minimist": "^1.2.0", "mocha": "^6.1.3", "mocha-phantomjs-core": "^2.1.0", - "name-suggestion-index": "3.0.6", + "name-suggestion-index": "3.1.0", "npm-run-all": "^4.0.0", "osm-community-index": "0.9.0", "phantomjs-prebuilt": "~2.1.11", From d3ae93e89503edec9ec8648a20f8c385b2502392 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Fri, 26 Jul 2019 11:59:39 -0400 Subject: [PATCH 226/774] Add Printer Ink Store preset Update brand presets for name-suggestion-index 3.1.0 --- data/presets.yaml | 5 + data/presets/presets.json | 653 +++++++++++++-------- data/presets/presets/shop/printer_ink.json | 17 + data/taginfo.json | 1 + dist/locales/en.json | 4 + 5 files changed, 444 insertions(+), 236 deletions(-) create mode 100644 data/presets/presets/shop/printer_ink.json diff --git a/data/presets.yaml b/data/presets.yaml index f9c5ad2abc..7c1e6c2468 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -7250,6 +7250,11 @@ en: name: Photography Store # 'terms: camera,film' terms: '' + shop/printer_ink: + # shop=printer_ink + name: Printer Ink Store + # 'terms: copier ink,fax ink,ink cartridges,toner' + terms: '' shop/pyrotechnics: # shop=pyrotechnics name: Fireworks Store diff --git a/data/presets/presets.json b/data/presets/presets.json index 312b6df047..8a60a94e02 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -1085,6 +1085,7 @@ "shop/pet_grooming": {"icon": "maki-dog-park", "geometry": ["point", "area"], "terms": ["cat", "dog"], "tags": {"shop": "pet_grooming"}, "name": "Pet Grooming Store"}, "shop/pet": {"icon": "maki-dog-park", "geometry": ["point", "area"], "terms": ["animal", "cat", "dog", "fish", "kitten", "puppy", "reptile"], "tags": {"shop": "pet"}, "name": "Pet Store"}, "shop/photo": {"icon": "fas-camera-retro", "geometry": ["point", "area"], "terms": ["camera", "film"], "tags": {"shop": "photo"}, "name": "Photography Store"}, + "shop/printer_ink": {"icon": "maki-shop", "geometry": ["point", "area"], "terms": ["copier ink", "fax ink", "ink cartridges", "toner"], "tags": {"shop": "printer_ink"}, "name": "Printer Ink Store"}, "shop/pyrotechnics": {"icon": "maki-shop", "geometry": ["point", "area"], "tags": {"shop": "pyrotechnics"}, "terms": ["fireworks"], "name": "Fireworks Store"}, "shop/radiotechnics": {"icon": "fas-microchip", "geometry": ["point", "area"], "tags": {"shop": "radiotechnics"}, "terms": ["antenna", "transistor"], "name": "Radio/Electronic Component Store"}, "shop/religion": {"icon": "maki-shop", "fields": ["{shop}", "religion", "denomination"], "geometry": ["point", "area"], "tags": {"shop": "religion"}, "name": "Religious Store"}, @@ -1248,6 +1249,7 @@ "amenity/bank/Allied Bank (Pakistan)": {"name": "Allied Bank (Pakistan)", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/alliedbankpk/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4732553", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Allied Bank", "brand:wikidata": "Q4732553", "brand:wikipedia": "en:Allied Bank Limited", "name": "Allied Bank"}, "countryCodes": ["pk"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Allied Bank (defunct bank in Philipiness)": {"name": "Allied Bank (defunct bank in Philipiness)", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4732555", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Allied Bank", "brand:wikidata": "Q4732555", "brand:wikipedia": "en:Allied Banking Corporation", "name": "Allied Bank"}, "countryCodes": ["ph"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Alpha Bank": {"name": "Alpha Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/125297404838251/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q747394", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Alpha Bank", "brand:wikidata": "Q747394", "brand:wikipedia": "en:Alpha Bank", "name": "Alpha Bank"}, "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Alterna Savings": {"name": "Alterna Savings", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/1149323517273563136/tFR7tzyC_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4736322", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Alterna Savings", "brand:wikidata": "Q4736322", "brand:wikipedia": "en:Alterna Savings", "name": "Alterna Savings"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/America First Credit Union": {"name": "America First Credit Union", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/americafirstcu/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4742758", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "America First Credit Union", "brand:wikidata": "Q4742758", "brand:wikipedia": "en:America First Credit Union", "name": "America First Credit Union", "short_name": "AFCU"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Andhra Bank": {"name": "Andhra Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/official.andhrabank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2003476", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Andhra Bank", "brand:wikidata": "Q2003476", "brand:wikipedia": "en:Andhra Bank", "name": "Andhra Bank"}, "countryCodes": ["in"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Antonveneta": {"name": "Antonveneta", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3633689", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Antonveneta", "brand:wikidata": "Q3633689", "brand:wikipedia": "en:Banca Antonveneta", "name": "Antonveneta"}, "countryCodes": ["it"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -1270,7 +1272,7 @@ "amenity/bank/BBVA Francés": {"name": "BBVA Francés", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/bbva.argentina/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2876788", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "BBVA Francés", "brand:en": "BBVA France", "brand:fr": "BBVA France", "brand:wikidata": "Q2876788", "brand:wikipedia": "en:BBVA Francés", "name": "BBVA Francés", "name:en": "BBVA France", "name:fr": "BBVA Francés"}, "countryCodes": ["ar"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/BCA": {"name": "BCA", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/608231074435440640/GlPmkzgL_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q806626", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "BCA", "brand:wikidata": "Q806626", "brand:wikipedia": "id:Bank Central Asia", "name": "BCA", "official_name": "Bank Central Asia"}, "terms": ["bank bca"], "matchScore": 2, "suggestion": true}, "amenity/bank/BCI": {"name": "BCI", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/BancoBci/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2882083", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "BCI", "brand:wikidata": "Q2882083", "brand:wikipedia": "es:Banco de Crédito e Inversiones", "name": "BCI", "official_name": "Banco de Crédito e Inversiones", "official_name:en": "Bank of Credit and Investments", "official_name:es": "Banco de Crédito e Inversiones"}, "terms": ["banco bci"], "matchScore": 2, "suggestion": true}, - "amenity/bank/BCP (Bolivia)": {"name": "BCP (Bolivia)", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/841417123339616257/leTBJ_Ls_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q16826675", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "BCP", "brand:wikidata": "Q16826675", "brand:wikipedia": "es:Banco de Crédito de Bolivia", "name": "BCP", "official_name": "Banco de Crédito de Bolivia", "official_name:en": "Credit Bank of Bolivia", "official_name:es": "Banco de Crédito de Bolivia"}, "countryCodes": ["bo"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/BCP (Bolivia)": {"name": "BCP (Bolivia)", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/BancodeCreditoBolivia/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q16826675", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "BCP", "brand:wikidata": "Q16826675", "brand:wikipedia": "es:Banco de Crédito de Bolivia", "name": "BCP", "official_name": "Banco de Crédito de Bolivia", "official_name:en": "Credit Bank of Bolivia", "official_name:es": "Banco de Crédito de Bolivia"}, "countryCodes": ["bo"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/BCP (France)": {"name": "BCP (France)", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/MaisMillennium/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q118581", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "BCP", "brand:wikidata": "Q118581", "brand:wikipedia": "pt:Banco Comercial Português", "name": "BCP"}, "countryCodes": ["fr"], "terms": ["banque bcp", "bcp"], "matchScore": 2, "suggestion": true}, "amenity/bank/BCP (Luxembourg)": {"name": "BCP (Luxembourg)", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/MaisMillennium/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q118581", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "BCP", "brand:wikidata": "Q118581", "brand:wikipedia": "pt:Banco Comercial Português", "name": "BCP"}, "countryCodes": ["lu"], "terms": ["banque bcp", "bcp"], "matchScore": 2, "suggestion": true}, "amenity/bank/BCP (Peru)": {"name": "BCP (Peru)", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/bancodecreditobcp/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4854124", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "BCP", "brand:wikidata": "Q4854124", "brand:wikipedia": "es:Banco de Crédito del Perú", "name": "BCP"}, "countryCodes": ["pe"], "terms": ["banco de crédito del perú"], "matchScore": 2, "suggestion": true}, @@ -1282,22 +1284,22 @@ "amenity/bank/BMCE Bank": {"name": "BMCE Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/BMCEBankOfAfrica/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2300433", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "BMCE Bank", "brand:wikidata": "Q2300433", "brand:wikipedia": "ar:البنك المغربي للتجارة الخارجية", "name": "BMCE Bank"}, "countryCodes": ["ma"], "terms": ["bmce"], "matchScore": 2, "suggestion": true}, "amenity/bank/BMCI": {"name": "BMCI", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/793836106156507137/6hm9zrfV_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2883409", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "BMCI", "brand:wikidata": "Q2883409", "brand:wikipedia": "ar:البنك المغربي للتجارة والصناعة", "name": "BMCI"}, "countryCodes": ["ma"], "terms": ["bmci bank"], "matchScore": 2, "suggestion": true}, "amenity/bank/BMN": {"name": "BMN", "icon": "maki-bank", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FBMN%20nuevo%20logo.jpg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3754900", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "BMN", "brand:wikidata": "Q3754900", "brand:wikipedia": "es:Banco Mare Nostrum", "name": "BMN", "official_name": "Banco Mare Nostrum"}, "countryCodes": ["es"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/BMO": {"name": "BMO", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/BMOcommunity/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q806693", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "BMO", "brand:wikidata": "Q806693", "brand:wikipedia": "en:Bank of Montreal", "name": "BMO", "official_name": "Bank of Montreal"}, "countryCodes": ["ca", "us"], "terms": ["bmo bank of montreal"], "matchScore": 2, "suggestion": true}, - "amenity/bank/BMO Harris Bank": {"name": "BMO Harris Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/bmoharrisbank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4835981", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "BMO Harris Bank", "brand:wikidata": "Q4835981", "brand:wikipedia": "en:BMO Harris Bank", "name": "BMO Harris Bank"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/BMO Harris Bank (USA)": {"name": "BMO Harris Bank (USA)", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/bmoharrisbank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4835981", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "BMO Harris Bank", "brand:wikidata": "Q4835981", "brand:wikipedia": "en:BMO Harris Bank", "name": "BMO Harris Bank"}, "countryCodes": ["us"], "terms": ["BMO", "BMO Bank of Montreal", "BMO Harris Bank", "Bank of Montreal", "Harris Bank"], "matchScore": 2, "suggestion": true}, + "amenity/bank/BMO (Canada)": {"name": "BMO (Canada)", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/BMOcommunity/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q806693", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "BMO", "brand:wikidata": "Q806693", "brand:wikipedia": "en:Bank of Montreal", "name": "BMO", "official_name": "Bank of Montreal"}, "countryCodes": ["ca"], "terms": ["BMO", "BMO Bank of Montreal", "BMO Banque de Montréal", "Bank of Montreal", "Banque de Montréal"], "matchScore": 2, "suggestion": true}, "amenity/bank/BNA (Algeria)": {"name": "BNA (Algeria)", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/bnalgerie/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2883410", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "BNA", "brand:wikidata": "Q2883410", "brand:wikipedia": "fr:Banque nationale d'Algérie", "name": "BNA", "official_name": "Banque nationale d'Algérie", "official_name:en": "National Bank of Algeria", "official_name:fr": "Banque nationale d'Algérie"}, "countryCodes": ["dz"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/BNA (Tunisia)": {"name": "BNA (Tunisia)", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/BanqueNationaleAgricole/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2883413", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "BNA", "brand:wikidata": "Q2883413", "brand:wikipedia": "fr:Banque nationale agricole", "name": "BNA"}, "countryCodes": ["tn"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/BNI": {"name": "BNI", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/BNI/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2882611", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "BNI", "brand:wikidata": "Q2882611", "brand:wikipedia": "id:Bank Negara Indonesia", "name": "BNI", "official_name": "Bank Negara Indonesia", "official_name:en": "State Bank of Indonesia", "official_name:id": "Bank Negara Indonesia"}, "terms": ["bank bni"], "matchScore": 2, "suggestion": true}, "amenity/bank/BNL": {"name": "BNL", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/BNLBNPParibas/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2201225", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "BNL", "brand:wikidata": "Q2201225", "brand:wikipedia": "en:Banca Nazionale del Lavoro", "name": "BNL", "official_name": "Banca Nazionale del Lavoro", "official_name:en": "National Labor Bank", "official_name:it": "Banca Nazionale del Lavoro"}, "countryCodes": ["it"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/BNP Paribas": {"name": "BNP Paribas", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/1143209323503542272/sJdUcI3G_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q499707", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "BNP Paribas", "brand:wikidata": "Q499707", "brand:wikipedia": "en:BNP Paribas", "name": "BNP Paribas"}, "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/BNP Paribas": {"name": "BNP Paribas", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/mabanque.bnpparibas/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q499707", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "BNP Paribas", "brand:wikidata": "Q499707", "brand:wikipedia": "en:BNP Paribas", "name": "BNP Paribas"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/BNP Paribas Fortis": {"name": "BNP Paribas Fortis", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/BNPParibasFortisBelgique/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q796827", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "BNP Paribas Fortis", "brand:wikidata": "Q796827", "brand:wikipedia": "en:BNP Paribas Fortis", "name": "BNP Paribas Fortis"}, "countryCodes": ["be"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/BOC": {"name": "BOC", "icon": "maki-bank", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FChinese%20Bank%20of%20China.jpg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q790068", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "BOC", "brand:wikidata": "Q790068", "brand:wikipedia": "en:Bank of China", "name": "BOC", "official_name": "Bank of China"}, "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/BOQ": {"name": "BOQ", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/458816630949019649/ggOeeSFX_bigger.jpeg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4856173", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "BOQ", "brand:wikidata": "Q4856173", "brand:wikipedia": "en:Bank of Queensland", "name": "BOQ", "official_name": "Bank of Queensland"}, "countryCodes": ["au"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/BOC": {"name": "BOC", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/bankofchina.cn/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q790068", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "BOC", "brand:wikidata": "Q790068", "brand:wikipedia": "en:Bank of China", "name": "BOC", "official_name": "Bank of China"}, "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/BOQ": {"name": "BOQ", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/BOQOnline/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4856173", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "BOQ", "brand:wikidata": "Q4856173", "brand:wikipedia": "en:Bank of Queensland", "name": "BOQ", "official_name": "Bank of Queensland"}, "countryCodes": ["au"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/BPI": {"name": "BPI", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/bpi/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2501256", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "BPI", "brand:wikidata": "Q2501256", "brand:wikipedia": "en:Bank of the Philippine Islands", "name": "BPI", "official_name": "Bank of the Philippine Islands"}, "terms": ["bpi family savings bank"], "matchScore": 2, "suggestion": true}, "amenity/bank/BRD": {"name": "BRD", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/BRDGroupeSocieteGenerale/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q796927", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "BRD", "brand:wikidata": "Q796927", "brand:wikipedia": "ro:BRD - Groupe Société Générale", "name": "BRD"}, "countryCodes": ["ro"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/BRED": {"name": "BRED", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/BRED.Banque.Populaire/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2877455", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "BRED", "brand:wikidata": "Q2877455", "brand:wikipedia": "fr:BRED Banque populaire", "name": "BRED", "official_name": "Banque régionale d'escompte et de dépôts", "official_name:en": "Regional Discount and Deposit Bank", "official_name:fr": "Banque régionale d'escompte et de dépôts"}, "countryCodes": ["fr"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/BRI": {"name": "BRI", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/BRIofficialpage/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q623042", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "BRI", "brand:wikidata": "Q623042", "brand:wikipedia": "id:Bank Rakyat Indonesia", "name": "BRI", "official_name": "Bank Rakyat Indonesia", "official_name:en": "People's Bank of Indonesia", "official_name:id": "Bank Rakyat Indonesia"}, "countryCodes": ["id"], "terms": ["bank bri"], "matchScore": 2, "suggestion": true}, "amenity/bank/BTN": {"name": "BTN", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/www.btn.co.id/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q12474534", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "BTN", "brand:en": "BTN", "brand:id": "BTN", "brand:wikidata": "Q12474534", "brand:wikipedia": "id:Bank Tabungan Negara", "name": "BTN", "name:en": "BTN", "name:id": "BTN", "official_name": "Bank Tabungan Negara", "official_name:en": "State Savings Bank", "official_name:id": "Bank Tabungan Negara"}, "countryCodes": ["id"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/BW-Bank": {"name": "BW-Bank", "icon": "maki-bank", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FBaden-W%C3%BCrttembergische%20Bank%20text%20logo%20black.svg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q798891", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "BW-Bank", "brand:de": "BW-Bank", "brand:en": "BW-Bank", "brand:wikidata": "Q798891", "brand:wikipedia": "de:Baden-Württembergische Bank", "name": "BW-Bank", "name:de": "BW-Bank", "name:en": "BW-Bank"}, "countryCodes": ["de"], "terms": ["baden-württembergische bank"], "matchScore": 2, "suggestion": true}, + "amenity/bank/BW-Bank": {"name": "BW-Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/LBBW.Stuttgart/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q798891", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "BW-Bank", "brand:de": "BW-Bank", "brand:en": "BW-Bank", "brand:wikidata": "Q798891", "brand:wikipedia": "de:Baden-Württembergische Bank", "name": "BW-Bank", "name:de": "BW-Bank", "name:en": "BW-Bank"}, "countryCodes": ["de"], "terms": ["baden-württembergische bank"], "matchScore": 2, "suggestion": true}, "amenity/bank/Banamex": {"name": "Banamex", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/Citibanamex/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q749474", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Banamex", "brand:wikidata": "Q749474", "brand:wikipedia": "en:Grupo Financiero Banamex", "name": "Banamex", "official_name": "Grupo Financiero Banamex", "official_name:en": "Banamex Financial Group", "official_name:es": "Grupo Financiero Banamex"}, "countryCodes": ["mx"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Banca Intesa": {"name": "Banca Intesa", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/bancaintesa.rs/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q647092", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Banca Intesa", "brand:wikidata": "Q647092", "brand:wikipedia": "en:Banca Intesa", "name": "Banca Intesa", "name:en": "Intesa Bank", "name:it": "Banca Intesa"}, "countryCodes": ["it", "rs"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Banca March": {"name": "Banca March", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/529243270367309824/JFWCTY94_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q578252", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Banca March", "brand:wikidata": "Q578252", "brand:wikipedia": "en:Banca March", "name": "Banca March"}, "countryCodes": ["es"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -1311,7 +1313,7 @@ "amenity/bank/Banca Transilvania": {"name": "Banca Transilvania", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/BancaTransilvania/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q806161", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Banca Transilvania", "brand:en": "Transilvania Bank", "brand:ro": "Banca Transilvania", "brand:wikidata": "Q806161", "brand:wikipedia": "en:Banca Transilvania", "name": "Banca Transilvania", "name:en": "Transilvania Bank", "name:ro": "Banca Transilvania"}, "countryCodes": ["ro"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Bancaribe": {"name": "Bancaribe", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/Bancaribe/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5717827", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Bancaribe", "brand:wikidata": "Q5717827", "brand:wikipedia": "en:Bancaribe", "name": "Bancaribe"}, "countryCodes": ["ve"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Banco AV Villas": {"name": "Banco AV Villas", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/AVVillas/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4854068", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Banco AV Villas", "brand:en": "Bank of Villas", "brand:es": "Banco AV Villas", "brand:wikidata": "Q4854068", "brand:wikipedia": "en:Banco AV Villas", "name": "Banco AV Villas", "name:en": "Bank of Villas", "name:es": "Banco AV Villas"}, "countryCodes": ["co"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Banco Agrario": {"name": "Banco Agrario", "icon": "maki-bank", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FBanco%20Agrario%20de%20Colombia%20logo.svg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q20013358", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Banco Agrario", "brand:en": "Agrarian Bank", "brand:wikidata": "Q20013358", "brand:wikipedia": "es:Banco Agrario de Colombia", "name": "Banco Agrario", "name:en": "Agrarian Bank", "name:es": "Banco Agrario", "official_name": "Banco Agrario de Colombia", "official_name:en": "Agrarian Bank of Colombia", "official_name:es": "Banco Agrario de Colombia"}, "countryCodes": ["co"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Banco Agrario": {"name": "Banco Agrario", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/bancoagrario/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q20013358", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Banco Agrario", "brand:en": "Agrarian Bank", "brand:wikidata": "Q20013358", "brand:wikipedia": "es:Banco Agrario de Colombia", "name": "Banco Agrario", "name:en": "Agrarian Bank", "name:es": "Banco Agrario", "official_name": "Banco Agrario de Colombia", "official_name:en": "Agrarian Bank of Colombia", "official_name:es": "Banco Agrario de Colombia"}, "countryCodes": ["co"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Banco Azteca": {"name": "Banco Azteca", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/BancoAzteca/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4854076", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Banco Azteca", "brand:en": "Aztec Bank", "brand:es": "Banco Azteca", "brand:wikidata": "Q4854076", "brand:wikipedia": "en:Banco Azteca", "name": "Banco Azteca", "name:en": "Aztec Bank", "name:es": "Banco Azteca"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Banco BPM": {"name": "Banco BPM", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/BancoBPM/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q27331643", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Banco BPM", "brand:en": "BPM Bank", "brand:es": "Banco BPM", "brand:wikidata": "Q27331643", "brand:wikipedia": "en:Banco BPM", "name": "Banco BPM", "name:en": "BPM Bank", "name:es": "Banco BPM"}, "countryCodes": ["it"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Banco Caja Social": {"name": "Banco Caja Social", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/BancoCajaSocial/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5717869", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Banco Caja Social", "brand:en": "Social Housing Bank", "brand:es": "Banco Caja Social", "brand:wikidata": "Q5717869", "brand:wikipedia": "es:Banco Caja Social", "name": "Banco Caja Social", "name:en": "Social Housing Bank", "name:es": "Banco Caja Social"}, "countryCodes": ["co"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -1321,17 +1323,16 @@ "amenity/bank/Banco Estado": {"name": "Banco Estado", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/BancoEstado/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5718188", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Banco Estado", "brand:en": "State Bank", "brand:es": "Banco Estado", "brand:wikidata": "Q5718188", "brand:wikipedia": "es:Banco del Estado de Chile", "name": "Banco Estado", "name:en": "State Bank", "name:es": "Banco Estado", "official_name": "Banco del Estado de Chile", "official_name:en": "Bank of the State of Chile", "official_name:es": "Banco del Estado de Chile"}, "countryCodes": ["cl"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Banco Falabella": {"name": "Banco Falabella", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/bancofalabella/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4854088", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Banco Falabella", "brand:en": "Falabella Bank", "brand:es": "Banco Falabella", "brand:wikidata": "Q4854088", "brand:wikipedia": "en:Banco Falabella", "name": "Banco Falabella", "name:en": "Falabella Bank", "name:es": "Banco Falabella"}, "countryCodes": ["cl", "co", "pe"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Banco Fassil": {"name": "Banco Fassil", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/bancofassil/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62118592", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Banco Fassil", "brand:en": "Fassil Bank", "brand:es": "Banco Fassil", "brand:wikidata": "Q62118592", "name": "Banco Fassil", "name:en": "Fassil Bank", "name:es": "Banco Fassil"}, "countryCodes": ["bo"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Banco G&T Continental": {"name": "Banco G&T Continental", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/1086265271898202112/jhjR8vK2_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5717949", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Banco G&T Continental", "brand:en": "G&T Continental Bank", "brand:es": "Banco G&T Continental", "brand:wikidata": "Q5717949", "brand:wikipedia": "es:Banco GYT Continental, S.A.", "name": "Banco G&T Continental", "name:en": "G&T Continental Bank", "name:es": "Banco G&T Continental"}, "countryCodes": ["gt", "sv"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Banco G&T Continental": {"name": "Banco G&T Continental", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/BancoGTC/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5717949", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Banco G&T Continental", "brand:en": "G&T Continental Bank", "brand:es": "Banco G&T Continental", "brand:wikidata": "Q5717949", "brand:wikipedia": "es:Banco GYT Continental, S.A.", "name": "Banco G&T Continental", "name:en": "G&T Continental Bank", "name:es": "Banco G&T Continental"}, "countryCodes": ["gt", "sv"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Banco General": {"name": "Banco General", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/bancogeneral/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q27618271", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "BW-Bank", "brand:en": "BW-Bank", "brand:es": "BW-Bank", "brand:wikidata": "Q27618271", "brand:wikipedia": "es:Banco General (Panamá)", "name": "Banco General", "name:en": "General Bank", "name:es": "Banco General"}, "countryCodes": ["cr", "pa"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Banco Industrial": {"name": "Banco Industrial", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/bindARG/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q16489444", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Banco Industrial", "brand:en": "Industrial Bank", "brand:es": "Banco Industrial", "brand:wikidata": "Q16489444", "brand:wikipedia": "es:Banco Industrial", "name": "Banco Industrial", "name:en": "Industrial Bank", "name:es": "Banco Industrial"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Banco Internacional (Chile)": {"name": "Banco Internacional (Chile)", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/438324350148571136/fCNvpo-F_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q56605586", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Banco Internacional", "brand:en": "International Bank", "brand:es": "Banco Internacional", "brand:wikidata": "Q56605586", "brand:wikipedia": "es:Banco Internacional (Chile)", "name": "Banco Internacional", "name:en": "International Bank", "name:es": "Banco Internacional"}, "countryCodes": ["cl"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Banco Internacional (Ecuador)": {"name": "Banco Internacional (Ecuador)", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/986297558493487104/4Y3z4QEF_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q806187", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Banco Internacional", "brand:en": "International Bank", "brand:es": "Banco Internacional", "brand:wikidata": "Q806187", "brand:wikipedia": "es:Banco Internacional", "name": "Banco Internacional", "name:en": "International Bank", "name:es": "Banco Internacional"}, "countryCodes": ["ec"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Banco Metropolitano": {"name": "Banco Metropolitano", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/BanmetCuba/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62118612", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Banco Metropolitano", "brand:en": "Metroplitan Bank", "brand:es": "Banco Metropolitano", "brand:wikidata": "Q62118612", "name": "Banco Metropolitano", "name:en": "Metropolitan Bank", "name:es": "Banco Metropolitano"}, "countryCodes": ["cu"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Banco Nacional": {"name": "Banco Nacional", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4854104", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Banco Nacional", "brand:en": "National Bank", "brand:es": "Banco Nacional", "brand:wikidata": "Q4854104", "brand:wikipedia": "en:Banco Nacional", "name": "Banco Nacional", "name:en": "National Bank", "name:es": "Banco Nacional"}, "countryCodes": ["br"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Banco Nacional": {"name": "Banco Nacional", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/bnmascerca/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2917708", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Banco Nacional de Costa Rica", "brand:en": "National Bank of Costa Rica", "brand:es": "Banco Nacional de Costa Rica", "brand:wikidata": "Q2917708", "brand:wikipedia": "es:Banco Nacional de Costa Rica", "name": "Banco Nacional", "name:en": "National Bank", "name:es": "Banco Nacional", "official_name": "Banco Nacional de Costa Rica", "official_name:en": "National Bank of Costa Rica", "official_name:es": "Banco Nacional de Costa Rica", "short_name": "BNCR"}, "countryCodes": ["cr", "pa"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Banco Nación": {"name": "Banco Nación", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/banconacion/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2883376", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Banco Nación", "brand:en": "Nation Bank", "brand:es": "Banco Nación", "brand:wikidata": "Q2883376", "brand:wikipedia": "en:Banco de la Nación Argentina", "name": "Banco Nación", "name:en": "Nation Bank", "name:es": "Banco Nación", "official_name": "Banco de la Nación Argentina", "official_name:en": "Bank of the Argentine Nation", "official_name:es": "Banco de la Nación Argentina"}, "countryCodes": ["ar"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Banco Pastor": {"name": "Banco Pastor", "icon": "maki-bank", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FLogo%20pastor168x78.gif%3Bpv91c0cc0e0080a771.gif&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q806193", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Banco Pastor", "brand:en": "Shepherd Bank", "brand:es": "Banco Pastor", "brand:wikidata": "Q806193", "brand:wikipedia": "en:Banco Pastor", "name": "Banco Pastor", "name:en": "Shepherd Bank", "name:es": "Banco Pastor", "official_name": "Banco Popular Pastor", "official_name:en": "Popular Shepherd Bank", "official_name:es": "Banco Popular Pastor"}, "countryCodes": ["es"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Banco Pichincha": {"name": "Banco Pichincha", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/BancoPichinchaEcuador/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4854135", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Banco Pichincha", "brand:en": "Pichincha Bank", "brand:es": "Banco Pichincha", "brand:wikidata": "Q4854135", "brand:wikipedia": "en:Banco Pichincha", "name": "Banco Pichincha", "name:en": "Pichincha Bank", "name:es": "Banco Pichincha"}, "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Banco Popular": {"name": "Banco Popular", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/grupobancopopular/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q537259", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Banco Popular", "brand:en": "Popular Bank", "brand:es": "Banco Popular", "brand:wikidata": "Q537259", "brand:wikipedia": "es:Banco Popular Español", "name": "Banco Popular", "name:en": "Popular Bank", "name:es": "Banco Popular", "official_name": "Banco Popular Español", "official_name:en": "Spanish Popular Bank", "official_name:es": "Banco Popular Español"}, "countryCodes": ["us", "vi"], "terms": ["popular"], "matchScore": 2, "suggestion": true}, "amenity/bank/Banco Popular de Ahorro": {"name": "Banco Popular de Ahorro", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/bpa.cu/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62118626", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Banco Popular de Ahorro", "brand:en": "Popular Saving Bank", "brand:es": "Banco Popular de Ahorro", "brand:wikidata": "Q62118626", "name": "Banco Popular de Ahorro", "name:en": "Popular Saving Bank", "name:es": "Banco Popular de Ahorro"}, "countryCodes": ["cu"], "terms": ["bpa"], "matchScore": 2, "suggestion": true}, "amenity/bank/Banco Provincia": {"name": "Banco Provincia", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/bancoprovincia/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4856209", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Banco Provincia", "brand:en": "Province Bank", "brand:es": "Banco Provincia", "brand:wikidata": "Q4856209", "brand:wikipedia": "es:Banco de la Provincia de Buenos Aires", "name": "Banco Provincia", "name:en": "Province Bank", "name:es": "Banco Provincia", "official_name": "Banco de la Provincia de Buenos Aires", "official_name:en": "Bank of the Province of Buenos Aires", "official_name:es": "Banco de la Provincia de Buenos Aires"}, "countryCodes": ["ar"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Banco Sabadell": {"name": "Banco Sabadell", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/bancosabadell/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q762330", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Banco Sabadell", "brand:en": "Sabadell Bank", "brand:es": "Banco Sabadell", "brand:wikidata": "Q762330", "brand:wikipedia": "es:Banco Sabadell", "name": "Banco Sabadell", "name:en": "Sabadell Bank", "name:es": "Banco Sabadell"}, "countryCodes": ["es"], "terms": ["banc sabadell", "sabadell"], "matchScore": 2, "suggestion": true}, @@ -1381,7 +1382,7 @@ "amenity/bank/Bank of the West": {"name": "Bank of the West", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/BankoftheWest/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2881919", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Bank of the West", "brand:wikidata": "Q2881919", "brand:wikipedia": "en:Bank of the West", "name": "Bank of the West"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Bankia": {"name": "Bankia", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/bankia.es/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q806807", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Bankia", "brand:wikidata": "Q806807", "brand:wikipedia": "en:Bankia", "name": "Bankia"}, "countryCodes": ["es"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Bankinter": {"name": "Bankinter", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/bankinter/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q806808", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Bankinter", "brand:wikidata": "Q806808", "brand:wikipedia": "es:Bankinter", "name": "Bankinter"}, "countryCodes": ["es", "pt"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Bankwest": {"name": "Bankwest", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4856817", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Bankwest", "brand:wikidata": "Q4856817", "brand:wikipedia": "en:Bankwest", "name": "Bankwest"}, "countryCodes": ["au"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Bankwest": {"name": "Bankwest", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/bankwest/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4856817", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Bankwest", "brand:wikidata": "Q4856817", "brand:wikipedia": "en:Bankwest", "name": "Bankwest"}, "countryCodes": ["au"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Banner Bank": {"name": "Banner Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/bannerbank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4856910", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Banner Bank", "brand:wikidata": "Q4856910", "brand:wikipedia": "en:Banner Bank", "name": "Banner Bank"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Banorte": {"name": "Banorte", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/banorte/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q806914", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Banorte", "brand:wikidata": "Q806914", "brand:wikipedia": "en:Banorte", "name": "Banorte"}, "countryCodes": ["mx"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Banque Atlantique": {"name": "Banque Atlantique", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/BqAtlantiqueOfficiel/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2882890", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Banque Atlantique", "brand:wikidata": "Q2882890", "brand:wikipedia": "en:Atlantic Bank Group", "name": "Banque Atlantique"}, "terms": [], "matchScore": 2, "suggestion": true}, @@ -1420,6 +1421,7 @@ "amenity/bank/Caja Rural de Jaén": {"name": "Caja Rural de Jaén", "icon": "maki-bank", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FCaja%20Rural.png&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q18720350", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Caja Rural de Jaén", "brand:wikidata": "Q18720350", "brand:wikipedia": "es:Caja Rural de Jaén", "name": "Caja Rural de Jaén"}, "countryCodes": ["es"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/CajaSur": {"name": "CajaSur", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/Cajasur/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3751637", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "CajaSur", "brand:wikidata": "Q3751637", "brand:wikipedia": "en:CajaSur", "name": "CajaSur"}, "countryCodes": ["es"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Cajamar": {"name": "Cajamar", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/cajamar/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q8254971", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Cajamar", "brand:wikidata": "Q8254971", "brand:wikipedia": "es:Cajamar", "name": "Cajamar"}, "countryCodes": ["es"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/California Coast Credit Union": {"name": "California Coast Credit Union", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/CalCoastCU/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q25025281", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "California Coast Credit Union", "brand:wikidata": "Q25025281", "brand:wikipedia": "en:California Coast Credit Union", "name": "California Coast Credit Union"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Canara Bank": {"name": "Canara Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/canarabank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2003777", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Canara Bank", "brand:wikidata": "Q2003777", "brand:wikipedia": "en:Canara Bank", "name": "Canara Bank"}, "countryCodes": ["in"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Capital Bank": {"name": "Capital Bank", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5035481", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Capital Bank", "brand:wikidata": "Q5035481", "brand:wikipedia": "en:Capital Bank Financial", "name": "Capital Bank"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Capital One": {"name": "Capital One", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/capitalone/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1034654", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Capital One", "brand:wikidata": "Q1034654", "brand:wikipedia": "en:Capital One", "name": "Capital One"}, "countryCodes": ["us"], "terms": ["capital one bank"], "matchScore": 2, "suggestion": true}, @@ -1434,7 +1436,7 @@ "amenity/bank/China Bank": {"name": "China Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/chinabank.ph/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5100080", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "China Bank", "brand:wikidata": "Q5100080", "brand:wikipedia": "en:Chinabank", "name": "China Bank"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/China Bank Savings": {"name": "China Bank Savings", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/cbschinabanksavings/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q18387359", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "China Bank Savings", "brand:wikidata": "Q18387359", "brand:wikipedia": "en:China Bank Savings", "name": "China Bank Savings"}, "countryCodes": ["ph"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/China Construction Bank": {"name": "China Construction Bank", "icon": "maki-bank", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FChina%20Construction%20Bank%20logo.svg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q26299", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "China Construction Bank", "brand:wikidata": "Q26299", "brand:wikipedia": "en:China Construction Bank", "name": "China Construction Bank"}, "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Citibank": {"name": "Citibank", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/1138902469201801216/kIpfpW_m_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q857063", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Citibank", "brand:wikidata": "Q857063", "brand:wikipedia": "en:Citibank", "name": "Citibank", "short_name": "Citi"}, "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Citibank": {"name": "Citibank", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/1145693638959226881/A09fvJzn_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q857063", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Citibank", "brand:wikidata": "Q857063", "brand:wikipedia": "en:Citibank", "name": "Citibank", "short_name": "Citi"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Citizens Bank (Eastern USA)": {"name": "Citizens Bank (Eastern USA)", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/citizensbank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5122694", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Citizens Bank", "brand:wikidata": "Q5122694", "brand:wikipedia": "en:Citizens Financial Group", "name": "Citizens Bank", "short_name": "Citizens"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Citizens Bank (Kentucky)": {"name": "Citizens Bank (Kentucky)", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/citizensbankofkentucky/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5122711", "amenity": "bank"}, "addTags": {"alt_name": "Citizens Bank of Kentucky", "amenity": "bank", "brand": "Citizens Bank", "brand:wikidata": "Q5122711", "brand:wikipedia": "en:Citizens National Bank (Eastern Kentucky)", "name": "Citizens Bank", "official_name": "Citizens National Bank", "short_name": "Citizens"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Citizens Bank (Nepal)": {"name": "Citizens Bank (Nepal)", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/ctznbank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q13186934", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Citizens Bank International", "brand:wikidata": "Q13186934", "brand:wikipedia": "en:Citizens Bank International", "name": "Citizens Bank", "official_name": "Citizens Bank International Ltd.", "short_name": "Citizens"}, "countryCodes": ["np"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -1445,10 +1447,10 @@ "amenity/bank/Columbia Bank (New Jersey)": {"name": "Columbia Bank (New Jersey)", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/columbiabank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62084096", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Columbia Bank", "brand:wikidata": "Q62084096", "name": "Columbia Bank"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Columbia Bank (Washington)": {"name": "Columbia Bank (Washington)", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/columbiastatebank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62084089", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Columbia Bank", "brand:wikidata": "Q62084089", "name": "Columbia Bank"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Comerica Bank": {"name": "Comerica Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/comerica/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1114148", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Comerica Bank", "brand:wikidata": "Q1114148", "brand:wikipedia": "en:Comerica", "name": "Comerica Bank"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Commercial Bank of Ceylon PLC": {"name": "Commercial Bank of Ceylon PLC", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5152468", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Commercial Bank of Ceylon PLC", "brand:wikidata": "Q5152468", "brand:wikipedia": "en:Commercial Bank of Ceylon", "name": "Commercial Bank of Ceylon PLC"}, "countryCodes": ["lk"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Commercial Bank of Ceylon PLC": {"name": "Commercial Bank of Ceylon PLC", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/combanksl/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5152468", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Commercial Bank of Ceylon PLC", "brand:wikidata": "Q5152468", "brand:wikipedia": "en:Commercial Bank of Ceylon", "name": "Commercial Bank of Ceylon PLC"}, "countryCodes": ["lk"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Commerzbank": {"name": "Commerzbank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/commerzbank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q157617", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Commerzbank", "brand:wikidata": "Q157617", "brand:wikipedia": "en:Commerzbank", "name": "Commerzbank"}, "countryCodes": ["de"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Commonwealth Bank": {"name": "Commonwealth Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/commonwealthbank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q285328", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Commonwealth Bank", "brand:wikidata": "Q285328", "brand:wikipedia": "en:Commonwealth Bank", "name": "Commonwealth Bank"}, "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Community Bank": {"name": "Community Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/communitybankna/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5154635", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Community Bank", "brand:wikidata": "Q5154635", "brand:wikipedia": "en:Community Bank, N.A.", "name": "Community Bank"}, "countryCodes": ["de", "us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Community Bank": {"name": "Community Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/communitybankna/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5154635", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Community Bank", "brand:wikidata": "Q5154635", "brand:wikipedia": "en:Community Bank, N.A.", "name": "Community Bank"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Corporation Bank": {"name": "Corporation Bank", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/1041960346926440448/31ZynavT_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2003387", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Corporation Bank", "brand:wikidata": "Q2003387", "brand:wikipedia": "en:Corporation Bank", "name": "Corporation Bank"}, "countryCodes": ["in"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Credem": {"name": "Credem", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/credem/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3696881", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Credem", "brand:wikidata": "Q3696881", "brand:wikipedia": "en:Credito Emiliano", "name": "Credem"}, "countryCodes": ["it"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Credicoop": {"name": "Credicoop", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/bancocredicoopcl/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4854086", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Credicoop", "brand:wikidata": "Q4854086", "brand:wikipedia": "en:Banco Credicoop", "name": "Credicoop"}, "countryCodes": ["ar"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -1468,8 +1470,7 @@ "amenity/bank/Deutsche Bank": {"name": "Deutsche Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/DeutscheBank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q66048", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Deutsche Bank", "brand:wikidata": "Q66048", "brand:wikipedia": "en:Deutsche Bank", "name": "Deutsche Bank"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Dollar Bank": {"name": "Dollar Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/dollarbank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5289205", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Dollar Bank", "brand:wikidata": "Q5289205", "brand:wikipedia": "en:Dollar Bank", "name": "Dollar Bank"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Dubai Islamic Bank": {"name": "Dubai Islamic Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/dib.uae/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5310570", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Dubai Islamic Bank", "brand:wikidata": "Q5310570", "brand:wikipedia": "en:Dubai Islamic Bank", "name": "Dubai Islamic Bank"}, "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/EastWest Bank": {"name": "EastWest Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/EastWestBanker/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5327595", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "EastWest Bank", "brand:wikidata": "Q5327595", "brand:wikipedia": "en:EastWest Bank", "name": "EastWest Bank"}, "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/EastWest Unibank": {"name": "EastWest Unibank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/EastWestBanker/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5327595", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "EastWest Unibank", "brand:wikidata": "Q5327595", "brand:wikipedia": "en:EastWest Bank", "name": "EastWest Unibank"}, "countryCodes": ["ph"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/EastWest Unibank": {"name": "EastWest Unibank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/EastWestBanker/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5327595", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "EastWest Unibank", "brand:wikidata": "Q5327595", "brand:wikipedia": "en:EastWest Bank", "name": "EastWest Unibank"}, "countryCodes": ["ph"], "terms": ["eastwest bank"], "matchScore": 2, "suggestion": true}, "amenity/bank/Ecobank": {"name": "Ecobank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/EcobankGroup/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q930225", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Ecobank", "brand:wikidata": "Q930225", "brand:wikipedia": "en:Ecobank", "name": "Ecobank"}, "terms": ["agence ecobank"], "matchScore": 2, "suggestion": true}, "amenity/bank/Emigrant Savings Bank": {"name": "Emigrant Savings Bank", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5371104", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Emigrant Savings Bank", "brand:wikidata": "Q5371104", "brand:wikipedia": "en:Emigrant Savings Bank", "name": "Emigrant Savings Bank"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Emirates NBD": {"name": "Emirates NBD", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/EmiratesNBD/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5372575", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Emirates NBD", "brand:wikidata": "Q5372575", "brand:wikipedia": "en:Emirates NBD", "name": "Emirates NBD"}, "countryCodes": ["ae"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -1478,158 +1479,168 @@ "amenity/bank/Equity Bank (Rwanda)": {"name": "Equity Bank (Rwanda)", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/RwEquityBank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5384665", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Equity Bank", "brand:wikidata": "Q5384665", "brand:wikipedia": "en:Equity Bank Rwanda Limited", "name": "Equity Bank"}, "countryCodes": ["rw"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Equity Bank (South Sudan)": {"name": "Equity Bank (South Sudan)", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5384666", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Equity Bank", "brand:wikidata": "Q5384666", "brand:wikipedia": "en:Equity Bank South Sudan Limited", "name": "Equity Bank"}, "countryCodes": ["ss"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Equity Bank (Tanzania)": {"name": "Equity Bank (Tanzania)", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/TzEquityBank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5384667", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Equity Bank", "brand:wikidata": "Q5384667", "brand:wikipedia": "en:Equity Bank Tanzania Limited", "name": "Equity Bank"}, "countryCodes": ["tz"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Equity Bank (USA)": {"name": "Equity Bank (USA)", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/624655695741366272/12-izccG_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62260414", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Equity Bank", "brand:wikidata": "Q62260414", "name": "Equity Bank"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Equity Bank (USA)": {"name": "Equity Bank (USA)", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/624655695741366272/12-izccG_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62260414", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Equity Bank", "brand:wikidata": "Q62260414", "brand:wikipedia": "en:Equity Bank USA", "name": "Equity Bank"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Equity Bank (Uganda)": {"name": "Equity Bank (Uganda)", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/UgEquityBank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5384668", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Equity Bank", "brand:wikidata": "Q5384668", "brand:wikipedia": "en:Equity Bank Uganda Limited", "name": "Equity Bank"}, "countryCodes": ["ug"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Erste Bank": {"name": "Erste Bank", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/1008639007046107136/-MtFGuJT_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q696867", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Erste Bank", "brand:wikidata": "Q696867", "brand:wikipedia": "de:Erste Bank", "name": "Erste Bank"}, "countryCodes": ["at", "hr", "hu"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Eurobank (Greece)": {"name": "Eurobank (Greece)", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/928963286518910976/KZD7wKh9_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q951850", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Eurobank", "brand:wikidata": "Q951850", "brand:wikipedia": "el:Eurobank", "name": "Eurobank"}, "countryCodes": ["gr"], "terms": ["eurobank ergasias"], "matchScore": 2, "suggestion": true}, "amenity/bank/Eurobank (Poland)": {"name": "Eurobank (Poland)", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/eurobanksa/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q9256201", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Eurobank", "brand:wikidata": "Q9256201", "brand:wikipedia": "pl:Euro Bank", "name": "Eurobank"}, "countryCodes": ["pl"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Eurobank (Serbia)": {"name": "Eurobank (Serbia)", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/EurobankSrbija/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5411684", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Eurobank", "brand:wikidata": "Q5411684", "brand:wikipedia": "sr:Eurobanka", "name": "Eurobank"}, "countryCodes": ["rs"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/FNB (South Africa)": {"name": "FNB (South Africa)", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3072956", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "FNB", "brand:wikidata": "Q3072956", "brand:wikipedia": "en:First National Bank (South Africa)", "name": "FNB", "official_name": "First National Bank"}, "countryCodes": ["bw", "mz", "na", "us", "za", "zm"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Faysal Bank": {"name": "Faysal Bank", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/1006473636620963842/3eFmAKr3_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5439099", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Faysal Bank", "brand:wikidata": "Q5439099", "brand:wikipedia": "en:Faysal Bank", "name": "Faysal Bank"}, "countryCodes": ["pk"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Federal Bank": {"name": "Federal Bank", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/2181568914/527318_348483655208805_236502029740302_986925_830235027_n_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2044983", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Federal Bank", "brand:wikidata": "Q2044983", "brand:wikipedia": "en:Federal Bank", "name": "Federal Bank"}, "countryCodes": ["in"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Faysal Bank": {"name": "Faysal Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/faysalbank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5439099", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Faysal Bank", "brand:wikidata": "Q5439099", "brand:wikipedia": "en:Faysal Bank", "name": "Faysal Bank"}, "countryCodes": ["pk"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Federal Bank": {"name": "Federal Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/federalbankltd/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2044983", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Federal Bank", "brand:wikidata": "Q2044983", "brand:wikipedia": "en:Federal Bank", "name": "Federal Bank"}, "countryCodes": ["in"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Fidelity Bank (Ghana)": {"name": "Fidelity Bank (Ghana)", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/fidelitybankgh/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5446778", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Fidelity Bank", "brand:wikidata": "Q5446778", "brand:wikipedia": "en:Fidelity Bank Ghana", "name": "Fidelity Bank"}, "countryCodes": ["gh"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Fidelity Bank (Nigeria)": {"name": "Fidelity Bank (Nigeria)", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/FidelityBankplc/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5446777", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Fidelity Bank", "brand:wikidata": "Q5446777", "brand:wikipedia": "en:Fidelity Bank Nigeria", "name": "Fidelity Bank"}, "countryCodes": ["ng"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Fidelity Bank (USA)": {"name": "Fidelity Bank (USA)", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/fidelityinvestments/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1411292", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Fidelity Bank", "brand:wikidata": "Q1411292", "brand:wikipedia": "en:Fidelity Investments", "name": "Fidelity Bank"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Fifth Third Bank": {"name": "Fifth Third Bank", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/1135542453543550977/MGMFDH7x_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1411810", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Fifth Third Bank", "brand:wikidata": "Q1411810", "brand:wikipedia": "en:Fifth Third Bank", "name": "Fifth Third Bank", "short_name": "5/3 Bank"}, "countryCodes": ["us"], "terms": ["5/3"], "matchScore": 2, "suggestion": true}, - "amenity/bank/Finansbank": {"name": "Finansbank", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/815922892869423108/PEISbMWQ_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1416237", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Finansbank", "brand:wikidata": "Q1416237", "brand:wikipedia": "en:Finansbank", "name": "Finansbank"}, "countryCodes": ["tr"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/First Bank (Western USA)": {"name": "First Bank (Western USA)", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/efirstbank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5452217", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "First Bank", "brand:wikidata": "Q5452217", "brand:wikipedia": "en:FirstBank Holding Co", "name": "First Bank", "short_name": "1STBank"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Fifth Third Bank": {"name": "Fifth Third Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/FifthThirdBank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1411810", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Fifth Third Bank", "brand:wikidata": "Q1411810", "brand:wikipedia": "en:Fifth Third Bank", "name": "Fifth Third Bank", "short_name": "5/3 Bank"}, "countryCodes": ["us"], "terms": ["5/3"], "matchScore": 2, "suggestion": true}, + "amenity/bank/Finansbank": {"name": "Finansbank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/qnbfinansbank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1416237", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Finansbank", "brand:wikidata": "Q1416237", "brand:wikipedia": "en:Finansbank", "name": "Finansbank"}, "countryCodes": ["tr"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/First Bank (North and South Carolina)": {"name": "First Bank (North and South Carolina)", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/localfirstbank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5452332", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "First Bank", "brand:wikidata": "Q5452332", "brand:wikipedia": "en:First Bancorp", "name": "First Bank"}, "countryCodes": ["us"], "terms": ["1st bancorp", "1st bank", "first bancorp"], "matchScore": 2, "suggestion": true}, + "amenity/bank/First Bank (Puerto Rico)": {"name": "First Bank (Puerto Rico)", "icon": "maki-bank", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FFirst%20BanCorp%20logo.png&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5452333", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "First Bank", "brand:wikidata": "Q5452333", "brand:wikipedia": "en:First BanCorp", "name": "First Bank"}, "countryCodes": ["us"], "terms": ["1st bancorp", "1st bank", "first bancorp"], "matchScore": 2, "suggestion": true}, + "amenity/bank/First Bank (Western USA)": {"name": "First Bank (Western USA)", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/efirstbank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5452217", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "First Bank", "brand:wikidata": "Q5452217", "brand:wikipedia": "en:FirstBank Holding Co", "name": "First Bank", "short_name": "1STBank"}, "countryCodes": ["us"], "terms": ["1st bank"], "matchScore": 2, "suggestion": true}, "amenity/bank/First Citizens Bank (Trinidad and Tobago)": {"name": "First Citizens Bank (Trinidad and Tobago)", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/FirstCitizens/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5452734", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "First Citizens Bank", "brand:wikidata": "Q5452734", "brand:wikipedia": "en:First Citizens Bank (Trinidad and Tobago)", "name": "First Citizens Bank"}, "countryCodes": ["bb", "tt"], "terms": ["1st citizens bank"], "matchScore": 2, "suggestion": true}, - "amenity/bank/First Citizens Bank (USA)": {"name": "First Citizens Bank (USA)", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/913797195782148096/Gps3Vaqp_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5452733", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "First Citizens Bank", "brand:wikidata": "Q5452733", "brand:wikipedia": "en:First Citizens BancShares", "name": "First Citizens Bank"}, "countryCodes": ["us"], "terms": ["1st citizens bank"], "matchScore": 2, "suggestion": true}, + "amenity/bank/First Citizens Bank (USA)": {"name": "First Citizens Bank (USA)", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/firstcitizensbank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5452733", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "First Citizens Bank", "brand:wikidata": "Q5452733", "brand:wikipedia": "en:First Citizens BancShares", "name": "First Citizens Bank"}, "countryCodes": ["us"], "terms": ["1st citizens bank"], "matchScore": 2, "suggestion": true}, "amenity/bank/First Financial Bank": {"name": "First Financial Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/FirstFinancialBank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5453009", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "First Financial Bank", "brand:wikidata": "Q5453009", "brand:wikipedia": "en:First Financial Bank (Ohio)", "name": "First Financial Bank"}, "countryCodes": ["us"], "terms": ["1st financial bank"], "matchScore": 2, "suggestion": true}, + "amenity/bank/First Interstate Bank": {"name": "First Interstate Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/FirstInterstateBank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5453107", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "First Interstate BancSystem", "brand:wikidata": "Q5453107", "brand:wikipedia": "en:First Interstate BancSystem", "name": "First Interstate Bank"}, "countryCodes": ["us"], "terms": ["1st interstate", "1st interstate bancsystem", "1st interstate bank", "first interstate", "first interstate bancsystem"], "matchScore": 2, "suggestion": true}, "amenity/bank/First Midwest Bank": {"name": "First Midwest Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/FirstMidwest/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5453331", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "First Midwest Bank", "brand:wikidata": "Q5453331", "brand:wikipedia": "en:First Midwest Bank", "name": "First Midwest Bank"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/First National Bank (USA)": {"name": "First National Bank (USA)", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5426765", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "First National Bank", "brand:wikidata": "Q5426765", "brand:wikipedia": "en:F.N.B. Corporation", "name": "First National Bank"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/First West Credit Union": {"name": "First West Credit Union", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/2620760877/6gtc0ga7q8q9srd7tjvg_bigger.jpeg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5454073", "amenity": "bank"}, "addTags": {"alt_name": "First West", "amenity": "bank", "brand": "First West Credit Union", "brand:wikidata": "Q5454073", "brand:wikipedia": "en:First West Credit Union", "name": "First West Credit Union"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Frost Bank": {"name": "Frost Bank", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/1030111772605173762/949xGWES_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5506152", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Frost Bank", "brand:wikidata": "Q5506152", "brand:wikipedia": "en:Frost Bank", "name": "Frost Bank"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Frost Bank": {"name": "Frost Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/FrostBank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5506152", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Frost Bank", "brand:wikidata": "Q5506152", "brand:wikipedia": "en:Frost Bank", "name": "Frost Bank"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Fulton Bank": {"name": "Fulton Bank", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q16976594", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Fulton Bank", "brand:wikidata": "Q16976594", "name": "Fulton Bank"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/GCB Bank": {"name": "GCB Bank", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1521346", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "GCB Bank", "brand:wikidata": "Q1521346", "brand:wikipedia": "en:GCB Bank", "name": "GCB Bank"}, "countryCodes": ["gh"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Galicia": {"name": "Galicia", "icon": "maki-bank", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FBanco%20galicia%20logo.png&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5717952", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Galicia", "brand:wikidata": "Q5717952", "brand:wikipedia": "es:Banco Galicia", "name": "Galicia"}, "countryCodes": ["ar"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Garanti": {"name": "Garanti", "icon": "maki-bank", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FBBVA%202019.svg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q322962", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Garanti", "brand:wikidata": "Q322962", "brand:wikipedia": "en:Garanti Bank", "name": "Garanti"}, "countryCodes": ["tr"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Garanti Bankası": {"name": "Garanti Bankası", "icon": "maki-bank", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FBBVA%202019.svg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q322962", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Garanti Bankası", "brand:wikidata": "Q322962", "brand:wikipedia": "en:Garanti Bank", "name": "Garanti Bankası"}, "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Getin Bank": {"name": "Getin Bank", "icon": "maki-bank", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FGetin%20Bank%20Logo.png&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q9267646", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Getin Bank", "brand:wikidata": "Q9267646", "brand:wikipedia": "pl:Getin Bank", "name": "Getin Bank"}, "countryCodes": ["pl"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/GCB Bank": {"name": "GCB Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/gcbbanklimited/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1521346", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "GCB Bank", "brand:wikidata": "Q1521346", "brand:wikipedia": "en:GCB Bank", "name": "GCB Bank"}, "countryCodes": ["gh"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Galicia": {"name": "Galicia", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/bancogalicia/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5717952", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Galicia", "brand:wikidata": "Q5717952", "brand:wikipedia": "es:Banco Galicia", "name": "Galicia"}, "countryCodes": ["ar"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Garanti": {"name": "Garanti", "icon": "maki-bank", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FLogo%20garanti%20bbva.jpg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q322962", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Garanti", "brand:wikidata": "Q322962", "brand:wikipedia": "en:Garanti Bank", "name": "Garanti"}, "countryCodes": ["tr"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Garanti Bankası": {"name": "Garanti Bankası", "icon": "maki-bank", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FLogo%20garanti%20bbva.jpg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q322962", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Garanti Bankası", "brand:wikidata": "Q322962", "brand:wikipedia": "en:Garanti Bank", "name": "Garanti Bankası"}, "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Getin Bank": {"name": "Getin Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/GetinBank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q9267646", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Getin Bank", "brand:wikidata": "Q9267646", "brand:wikipedia": "pl:Getin Bank", "name": "Getin Bank"}, "countryCodes": ["pl"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Golden 1 Credit Union": {"name": "Golden 1 Credit Union", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/golden1cu/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7736976", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Golden 1 Credit Union", "brand:wikidata": "Q7736976", "brand:wikipedia": "en:Golden 1 Credit Union", "name": "Golden 1 Credit Union"}, "countryCodes": ["us"], "terms": ["golden 1", "golden one", "golden one credit union", "the golden 1 credit union", "the golden one credit union"], "matchScore": 2, "suggestion": true}, - "amenity/bank/Great Western Bank": {"name": "Great Western Bank", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5600185", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Great Western Bank", "brand:wikidata": "Q5600185", "brand:wikipedia": "en:Great Western Bank (1907–present)", "name": "Great Western Bank"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Great Western Bank": {"name": "Great Western Bank", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/1126552175327567874/X3D9CTSp_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5600185", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Great Western Bank", "brand:wikidata": "Q5600185", "brand:wikipedia": "en:Great Western Bank (1907–present)", "name": "Great Western Bank"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Groupama": {"name": "Groupama", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/groupama/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3083531", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Groupama", "brand:wikidata": "Q3083531", "brand:wikipedia": "en:Groupama", "name": "Groupama"}, "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/HBL Bank": {"name": "HBL Bank", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/895259332107010050/pB7ruENL_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1566843", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "HBL Bank", "brand:wikidata": "Q1566843", "brand:wikipedia": "ur:ایچ بی ایل پاکستان", "name": "HBL Bank"}, "countryCodes": ["pk"], "terms": ["hbl"], "matchScore": 2, "suggestion": true}, + "amenity/bank/HBL Bank": {"name": "HBL Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/HBLBank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1566843", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "HBL Bank", "brand:wikidata": "Q1566843", "brand:wikipedia": "ur:ایچ بی ایل پاکستان", "name": "HBL Bank"}, "countryCodes": ["pk"], "terms": ["hbl"], "matchScore": 2, "suggestion": true}, "amenity/bank/HDFC Bank": {"name": "HDFC Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/HDFC.bank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q631047", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "HDFC Bank", "brand:wikidata": "Q631047", "brand:wikipedia": "en:HDFC Bank", "name": "HDFC Bank"}, "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/HNB": {"name": "HNB", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3532080", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "HNB", "brand:wikidata": "Q3532080", "brand:wikipedia": "en:Hatton National Bank", "name": "HNB"}, "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/HNB": {"name": "HNB", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/HNBPLC/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3532080", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "HNB", "brand:wikidata": "Q3532080", "brand:wikipedia": "en:Hatton National Bank", "name": "HNB"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/HSBC UK (UK)": {"name": "HSBC UK (UK)", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/hsbcuk/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q64767453", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "HSBC UK", "brand:wikidata": "Q64767453", "name": "HSBC UK"}, "countryCodes": ["gb"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/HSBC (Global)": {"name": "HSBC (Global)", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/1140640353546113025/0bHt3YUI_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q190464", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "HSBC", "brand:wikidata": "Q190464", "brand:wikipedia": "en:HSBC", "name": "HSBC"}, "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/HSBC (Global)": {"name": "HSBC (Global)", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/HSBC/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q190464", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "HSBC", "brand:wikidata": "Q190464", "brand:wikipedia": "en:HSBC", "name": "HSBC"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Halifax": {"name": "Halifax", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/halifax/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3310164", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Halifax", "brand:wikidata": "Q3310164", "brand:wikipedia": "en:Halifax (bank)", "name": "Halifax"}, "countryCodes": ["gb"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Halkbank": {"name": "Halkbank", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3593818", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Halkbank", "brand:wikidata": "Q3593818", "brand:wikipedia": "en:Halkbank a.d.", "name": "Halkbank"}, "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Handelsbanken": {"name": "Handelsbanken", "icon": "maki-bank", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FHandelsbanken.svg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1421630", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Handelsbanken", "brand:wikidata": "Q1421630", "brand:wikipedia": "en:Handelsbanken", "name": "Handelsbanken"}, "countryCodes": ["dk", "fi", "gb", "no", "se"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Heritage Bank": {"name": "Heritage Bank", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/1826329346/Heritage_Bank_logo_Square_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5738690", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Heritage Bank", "brand:wikidata": "Q5738690", "brand:wikipedia": "en:Heritage Bank", "name": "Heritage Bank"}, "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Hong Leong Bank": {"name": "Hong Leong Bank", "icon": "maki-bank", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FHong%20Leong%20Bank.svg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4383943", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Hong Leong Bank", "brand:wikidata": "Q4383943", "brand:wikipedia": "en:Hong Leong Bank", "name": "Hong Leong Bank"}, "countryCodes": ["my"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Hrvatska poštanska banka": {"name": "Hrvatska poštanska banka", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5923981", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Hrvatska poštanska banka", "brand:wikidata": "Q5923981", "brand:wikipedia": "en:Hrvatska poštanska banka", "name": "Hrvatska poštanska banka"}, "countryCodes": ["hr"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Huntington Bank": {"name": "Huntington Bank", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/1136005142858424321/MvHrZYI8_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q798819", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Huntington Bank", "brand:wikidata": "Q798819", "brand:wikipedia": "en:Huntington Bancshares", "name": "Huntington Bank"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Halkbank": {"name": "Halkbank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/HalkbankBeograd/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3593818", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Halkbank", "brand:wikidata": "Q3593818", "brand:wikipedia": "en:Halkbank a.d.", "name": "Halkbank"}, "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Handelsbanken": {"name": "Handelsbanken", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/Handelsbanken/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1421630", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Handelsbanken", "brand:wikidata": "Q1421630", "brand:wikipedia": "en:Handelsbanken", "name": "Handelsbanken"}, "countryCodes": ["dk", "fi", "gb", "no", "se"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Heritage Bank": {"name": "Heritage Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/heritage/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5738690", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Heritage Bank", "brand:wikidata": "Q5738690", "brand:wikipedia": "en:Heritage Bank", "name": "Heritage Bank"}, "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Hong Leong Bank": {"name": "Hong Leong Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/HLBMalaysia/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4383943", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Hong Leong Bank", "brand:wikidata": "Q4383943", "brand:wikipedia": "en:Hong Leong Bank", "name": "Hong Leong Bank"}, "countryCodes": ["my"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Hrvatska poštanska banka": {"name": "Hrvatska poštanska banka", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/mojpunnovcanik/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5923981", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Hrvatska poštanska banka", "brand:wikidata": "Q5923981", "brand:wikipedia": "en:Hrvatska poštanska banka", "name": "Hrvatska poštanska banka"}, "countryCodes": ["hr"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Huntington Bank": {"name": "Huntington Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/HuntingtonBank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q798819", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Huntington Bank", "brand:wikidata": "Q798819", "brand:wikipedia": "en:Huntington Bancshares", "name": "Huntington Bank"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/HypoVereinsbank": {"name": "HypoVereinsbank", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/950681154906095618/sFON4jIk_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q220189", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "HypoVereinsbank", "brand:wikidata": "Q220189", "brand:wikipedia": "en:HypoVereinsbank", "name": "HypoVereinsbank"}, "countryCodes": ["de"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/ICBC": {"name": "ICBC", "icon": "maki-bank", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FICBC%20logo.png&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q26463", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "ICBC", "brand:wikidata": "Q26463", "brand:wikipedia": "en:Industrial and Commercial Bank of China", "name": "ICBC"}, "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/ICICI Bank": {"name": "ICICI Bank", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/1121403488292851713/XrMDErhB_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1653258", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "ICICI Bank", "brand:wikidata": "Q1653258", "brand:wikipedia": "en:ICICI Bank", "name": "ICICI Bank"}, "countryCodes": ["ca", "gb", "in"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/ICBC": {"name": "ICBC", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/icbcglobal/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q26463", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "ICBC", "brand:wikidata": "Q26463", "brand:wikipedia": "en:Industrial and Commercial Bank of China", "name": "ICBC"}, "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/ICICI Bank": {"name": "ICICI Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/icicibank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1653258", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "ICICI Bank", "brand:wikidata": "Q1653258", "brand:wikipedia": "en:ICICI Bank", "name": "ICICI Bank"}, "countryCodes": ["ca", "gb", "in"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/IDBI Bank": {"name": "IDBI Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/IDBIBank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3633485", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "IDBI Bank", "brand:wikidata": "Q3633485", "brand:wikipedia": "en:IDBI Bank", "name": "IDBI Bank"}, "countryCodes": ["in"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/ING": {"name": "ING", "icon": "maki-bank", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FING%20Group%20N.V.%20Logo.svg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q645708", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "ING", "brand:wikidata": "Q645708", "brand:wikipedia": "en:ING Group", "name": "ING"}, "terms": ["ing bank"], "matchScore": 2, "suggestion": true}, + "amenity/bank/ING": {"name": "ING", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/ING/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q645708", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "ING", "brand:wikidata": "Q645708", "brand:wikipedia": "en:ING Group", "name": "ING"}, "terms": ["ing bank"], "matchScore": 2, "suggestion": true}, "amenity/bank/ING Bank Śląski": {"name": "ING Bank Śląski", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/735066633992065024/1b4aJQUq_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1410383", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "ING Bank Śląski", "brand:wikidata": "Q1410383", "brand:wikipedia": "pl:ING Bank Śląski", "name": "ING Bank Śląski"}, "countryCodes": ["pl"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Ibercaja": {"name": "Ibercaja", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5907815", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Ibercaja", "brand:wikidata": "Q5907815", "brand:wikipedia": "es:Ibercaja", "name": "Ibercaja"}, "countryCodes": ["es"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Indian Bank": {"name": "Indian Bank", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2003789", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Indian Bank", "brand:wikidata": "Q2003789", "brand:wikipedia": "en:Indian Bank", "name": "Indian Bank"}, "countryCodes": ["in"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Indian Overseas Bank": {"name": "Indian Overseas Bank", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/940112386027147264/uciMr62n_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2003611", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Indian Overseas Bank", "brand:wikidata": "Q2003611", "brand:wikipedia": "en:Indian Overseas Bank", "name": "Indian Overseas Bank"}, "countryCodes": ["in"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Interbank": {"name": "Interbank", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/690239152504307712/41xwql8A_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2835558", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Interbank", "brand:wikidata": "Q2835558", "brand:wikipedia": "es:Banco Interbank", "name": "Interbank"}, "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Intesa Sanpaolo": {"name": "Intesa Sanpaolo", "icon": "maki-bank", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FLogo%20Sanpaolo.gif&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1343118", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Intesa Sanpaolo", "brand:wikidata": "Q1343118", "brand:wikipedia": "it:Intesa Sanpaolo", "name": "Intesa Sanpaolo"}, "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Ibercaja": {"name": "Ibercaja", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/Ibercaja/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5907815", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Ibercaja", "brand:wikidata": "Q5907815", "brand:wikipedia": "es:Ibercaja", "name": "Ibercaja"}, "countryCodes": ["es"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Indian Bank": {"name": "Indian Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/MyIndianBank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2003789", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Indian Bank", "brand:wikidata": "Q2003789", "brand:wikipedia": "en:Indian Bank", "name": "Indian Bank"}, "countryCodes": ["in"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Indian Overseas Bank": {"name": "Indian Overseas Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/bankiob/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2003611", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Indian Overseas Bank", "brand:wikidata": "Q2003611", "brand:wikipedia": "en:Indian Overseas Bank", "name": "Indian Overseas Bank"}, "countryCodes": ["in"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Interbank": {"name": "Interbank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/InterbankPeru/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2835558", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Interbank", "brand:wikidata": "Q2835558", "brand:wikipedia": "es:Banco Interbank", "name": "Interbank"}, "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Intesa Sanpaolo": {"name": "Intesa Sanpaolo", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/intesasanpaolo/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1343118", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Intesa Sanpaolo", "brand:wikidata": "Q1343118", "brand:wikipedia": "it:Intesa Sanpaolo", "name": "Intesa Sanpaolo"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Investors Bank": {"name": "Investors Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/Investorsbank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q15109896", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Investors Bank", "brand:wikidata": "Q15109896", "brand:wikipedia": "en:Investors Bank", "name": "Investors Bank"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Itaú (Brazil)": {"name": "Itaú (Brazil)", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/1142053208396898305/G07ex464_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1424293", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Itaú Unibanco", "brand:wikidata": "Q1424293", "brand:wikipedia": "pt:Itaú Unibanco", "name": "Itaú"}, "countryCodes": ["br"], "terms": ["banco itau"], "matchScore": 2, "suggestion": true}, - "amenity/bank/Itaú (Chile)": {"name": "Itaú (Chile)", "icon": "maki-bank", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FItau.svg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2423252", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Itaú Corpbanca", "brand:wikidata": "Q2423252", "brand:wikipedia": "en:Itaú Corpbanca", "name": "Itaú"}, "countryCodes": ["cl"], "terms": ["banco itau"], "matchScore": 2, "suggestion": true}, - "amenity/bank/JS Bank": {"name": "JS Bank", "icon": "maki-bank", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FJS%20Bank%20-%20New%20logo%202011%20-%20Copy.png&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6108986", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "JS Bank", "brand:wikidata": "Q6108986", "brand:wikipedia": "en:JS Bank", "name": "JS Bank"}, "countryCodes": ["pk"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Itaú (Brazil)": {"name": "Itaú (Brazil)", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/itau/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1424293", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Itaú Unibanco", "brand:wikidata": "Q1424293", "brand:wikipedia": "pt:Itaú Unibanco", "name": "Itaú"}, "countryCodes": ["br"], "terms": ["banco itau"], "matchScore": 2, "suggestion": true}, + "amenity/bank/Itaú (Chile)": {"name": "Itaú (Chile)", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/corpbanca/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2423252", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Itaú Corpbanca", "brand:wikidata": "Q2423252", "brand:wikipedia": "en:Itaú Corpbanca", "name": "Itaú"}, "countryCodes": ["cl"], "terms": ["banco itau"], "matchScore": 2, "suggestion": true}, + "amenity/bank/JS Bank": {"name": "JS Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/JSBankLtd/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6108986", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "JS Bank", "brand:wikidata": "Q6108986", "brand:wikipedia": "en:JS Bank", "name": "JS Bank"}, "countryCodes": ["pk"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Janata Bank Limited জনতা ব্যাংক লিমিটেড": {"name": "Janata Bank Limited জনতা ব্যাংক লিমিটেড", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3347028", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "জনতা ব্যাংক লিমিটেড", "brand:bn": "জনতা ব্যাংক লিমিটেড", "brand:en": "Janata Bank Limited", "brand:wikidata": "Q3347028", "brand:wikipedia": "en:Janata Bank", "name": "জনতা ব্যাংক লিমিটেড", "name:bn": "জনতা ব্যাংক লিমিটেড", "name:en": "Janata Bank Limited"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Jyske Bank": {"name": "Jyske Bank", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/1062308131567517702/0I4wgGmc_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q136672", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Jyske Bank", "brand:wikidata": "Q136672", "brand:wikipedia": "en:Jyske Bank", "name": "Jyske Bank"}, "countryCodes": ["dk"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/K&H Bank": {"name": "K&H Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/dontsokosan/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6393834", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "K&H Bank", "brand:wikidata": "Q6393834", "brand:wikipedia": "en:K&H Bank", "name": "K&H Bank"}, "countryCodes": ["hu"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/KBC": {"name": "KBC", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/117198928/KBC_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q941020", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "KBC", "brand:wikidata": "Q941020", "brand:wikipedia": "en:KBC Bank", "name": "KBC"}, "countryCodes": ["be", "ie"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/KBZ Bank": {"name": "KBZ Bank", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6360949", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "KBZ Bank", "brand:wikidata": "Q6360949", "brand:wikipedia": "en:Kanbawza Bank", "name": "KBZ Bank"}, "countryCodes": ["mm"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Karnataka Bank": {"name": "Karnataka Bank", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2042632", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Karnataka Bank", "brand:wikidata": "Q2042632", "brand:wikipedia": "en:Karnataka Bank", "name": "Karnataka Bank"}, "countryCodes": ["in"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Kasa Stefczyka": {"name": "Kasa Stefczyka", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q57624461", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Kasa Stefczyka", "brand:wikidata": "Q57624461", "name": "Kasa Stefczyka"}, "countryCodes": ["pl"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/KeyBank": {"name": "KeyBank", "icon": "maki-bank", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FKeyBank.png&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1740314", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "KeyBank", "brand:wikidata": "Q1740314", "brand:wikipedia": "en:KeyBank", "name": "KeyBank"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Komerční banka": {"name": "Komerční banka", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/1131535603777060867/lwDe8P5N_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1541079", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Komerční banka", "brand:wikidata": "Q1541079", "brand:wikipedia": "en:Komerční banka", "name": "Komerční banka"}, "countryCodes": ["cz"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Kotak Mahindra Bank": {"name": "Kotak Mahindra Bank", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/1110433478343053314/J_fxuytW_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2040404", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Kotak Mahindra Bank", "brand:wikidata": "Q2040404", "brand:wikipedia": "en:Kotak Mahindra Bank", "name": "Kotak Mahindra Bank"}, "countryCodes": ["in"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Kutxabank": {"name": "Kutxabank", "icon": "maki-bank", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FKutxabank.svg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5139377", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Kutxabank", "brand:wikidata": "Q5139377", "brand:wikipedia": "en:Kutxabank", "name": "Kutxabank"}, "countryCodes": ["es"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Kuveyt Türk": {"name": "Kuveyt Türk", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6036058", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Kuveyt Türk", "brand:wikidata": "Q6036058", "brand:wikipedia": "tr:Kuveyt Türk", "name": "Kuveyt Türk"}, "countryCodes": ["tr"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/LCL": {"name": "LCL", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/899663758662017024/JLvGAjAM_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q779722", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "LCL", "brand:wikidata": "Q779722", "brand:wikipedia": "en:Crédit Lyonnais", "name": "LCL"}, "countryCodes": ["fr"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/La Banque Postale": {"name": "La Banque Postale", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/877443340551282689/fZlNq46c_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3206431", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "La Banque Postale", "brand:wikidata": "Q3206431", "brand:wikipedia": "en:La Banque postale", "name": "La Banque Postale"}, "countryCodes": ["fr"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/La Caixa": {"name": "La Caixa", "icon": "maki-bank", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FFundaci%C3%B3n%20bancaria%20la%20caixa.jpg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q287753", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "La Caixa", "brand:wikidata": "Q287753", "brand:wikipedia": "en:La Caixa", "name": "La Caixa"}, "countryCodes": ["es"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Laboral Kutxa": {"name": "Laboral Kutxa", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/935069892683927552/gCjeXHBh_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q12052386", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Laboral Kutxa", "brand:wikidata": "Q12052386", "brand:wikipedia": "en:Laboral Kutxa", "name": "Laboral Kutxa"}, "countryCodes": ["es"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/KBZ Bank": {"name": "KBZ Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/KanbawzaBank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6360949", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "KBZ Bank", "brand:wikidata": "Q6360949", "brand:wikipedia": "en:Kanbawza Bank", "name": "KBZ Bank"}, "countryCodes": ["mm"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Karnataka Bank": {"name": "Karnataka Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/KarnatakaBank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2042632", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Karnataka Bank", "brand:wikidata": "Q2042632", "brand:wikipedia": "en:Karnataka Bank", "name": "Karnataka Bank"}, "countryCodes": ["in"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Kasa Stefczyka": {"name": "Kasa Stefczyka", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/kasastefczykapl/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q57624461", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Kasa Stefczyka", "brand:wikidata": "Q57624461", "name": "Kasa Stefczyka"}, "countryCodes": ["pl"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/KeyBank": {"name": "KeyBank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/keybank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1740314", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "KeyBank", "brand:wikidata": "Q1740314", "brand:wikipedia": "en:KeyBank", "name": "KeyBank"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Komerční banka": {"name": "Komerční banka", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/komercni.banka/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1541079", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Komerční banka", "brand:wikidata": "Q1541079", "brand:wikipedia": "en:Komerční banka", "name": "Komerční banka"}, "countryCodes": ["cz"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Kotak Mahindra Bank": {"name": "Kotak Mahindra Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/KotakBank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2040404", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Kotak Mahindra Bank", "brand:wikidata": "Q2040404", "brand:wikipedia": "en:Kotak Mahindra Bank", "name": "Kotak Mahindra Bank"}, "countryCodes": ["in"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Kutxabank": {"name": "Kutxabank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/Kutxabank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5139377", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Kutxabank", "brand:wikidata": "Q5139377", "brand:wikipedia": "en:Kutxabank", "name": "Kutxabank"}, "countryCodes": ["es"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Kuveyt Türk": {"name": "Kuveyt Türk", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/KuveytTurk/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6036058", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Kuveyt Türk", "brand:wikidata": "Q6036058", "brand:wikipedia": "tr:Kuveyt Türk", "name": "Kuveyt Türk"}, "countryCodes": ["tr"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/LCL": {"name": "LCL", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/LCL/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q779722", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "LCL", "brand:wikidata": "Q779722", "brand:wikipedia": "en:Crédit Lyonnais", "name": "LCL"}, "countryCodes": ["fr"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/LCNB": {"name": "LCNB", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/LCNBNATBANK/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q65095575", "amenity": "bank"}, "addTags": {"alt_name": "Lebanon Citizens National Bank", "amenity": "bank", "brand": "LCNB", "brand:wikidata": "Q65095575", "name": "LCNB", "official_name": "LCNB National Bank"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/La Banque Postale": {"name": "La Banque Postale", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/labanquepostale/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3206431", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "La Banque Postale", "brand:wikidata": "Q3206431", "brand:wikipedia": "en:La Banque postale", "name": "La Banque Postale"}, "countryCodes": ["fr"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/La Caixa": {"name": "La Caixa", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/fundlacaixa/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q287753", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "La Caixa", "brand:wikidata": "Q287753", "brand:wikipedia": "en:La Caixa", "name": "La Caixa"}, "countryCodes": ["es"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Laboral Kutxa": {"name": "Laboral Kutxa", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/laboralkutxa/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q12052386", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Laboral Kutxa", "brand:wikidata": "Q12052386", "brand:wikipedia": "en:Laboral Kutxa", "name": "Laboral Kutxa"}, "countryCodes": ["es"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Lake Michigan Credit Union": {"name": "Lake Michigan Credit Union", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/LakeMichiganCreditUnion/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6476906", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Lake Michigan Credit Union", "brand:wikidata": "Q6476906", "brand:wikipedia": "en:Lake Michigan Credit Union", "name": "Lake Michigan Credit Union", "short_name": "LMCU"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Landbank": {"name": "Landbank", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6483872", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Landbank", "brand:wikidata": "Q6483872", "brand:wikipedia": "en:Land Bank of the Philippines", "name": "Landbank"}, "countryCodes": ["ph"], "terms": ["bangko sa lupa ng pilipinas", "land bank of the philippines", "lbp"], "matchScore": 2, "suggestion": true}, - "amenity/bank/Leeds Building Society": {"name": "Leeds Building Society", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/882560751629742082/qQgEeneD_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6515848", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Leeds Building Society", "brand:wikidata": "Q6515848", "brand:wikipedia": "en:Leeds Building Society", "name": "Leeds Building Society"}, "countryCodes": ["gb"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Liberbank": {"name": "Liberbank", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/1113761969448865792/ni1LBvk__bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2891018", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Liberbank", "brand:wikidata": "Q2891018", "brand:wikipedia": "en:Liberbank", "name": "Liberbank"}, "countryCodes": ["es"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Lloyds Bank": {"name": "Lloyds Bank", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/1136639701056655360/qxTpE9Do_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1152847", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Lloyds Bank", "brand:wikidata": "Q1152847", "brand:wikipedia": "en:Lloyds Bank", "name": "Lloyds Bank"}, "countryCodes": ["gb", "im"], "terms": ["lloyds", "lloyds tsb"], "matchScore": 2, "suggestion": true}, - "amenity/bank/M&T Bank": {"name": "M&T Bank", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/1096422949081341953/zTOinsUb_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3272257", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "M&T Bank", "brand:wikidata": "Q3272257", "brand:wikipedia": "en:M&T Bank", "name": "M&T Bank"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Landbank": {"name": "Landbank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/landbankofficial/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6483872", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Landbank", "brand:wikidata": "Q6483872", "brand:wikipedia": "en:Land Bank of the Philippines", "name": "Landbank"}, "countryCodes": ["ph"], "terms": ["bangko sa lupa ng pilipinas", "land bank of the philippines", "lbp"], "matchScore": 2, "suggestion": true}, + "amenity/bank/Leeds Building Society": {"name": "Leeds Building Society", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/LeedsBS/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6515848", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Leeds Building Society", "brand:wikidata": "Q6515848", "brand:wikipedia": "en:Leeds Building Society", "name": "Leeds Building Society"}, "countryCodes": ["gb"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Liberbank": {"name": "Liberbank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/liberbank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2891018", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Liberbank", "brand:wikidata": "Q2891018", "brand:wikipedia": "en:Liberbank", "name": "Liberbank"}, "countryCodes": ["es"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Lloyds Bank": {"name": "Lloyds Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/lloydsbank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1152847", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Lloyds Bank", "brand:wikidata": "Q1152847", "brand:wikipedia": "en:Lloyds Bank", "name": "Lloyds Bank"}, "countryCodes": ["gb", "im"], "terms": ["lloyds", "lloyds tsb"], "matchScore": 2, "suggestion": true}, + "amenity/bank/M&T Bank": {"name": "M&T Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/MandTBank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3272257", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "M&T Bank", "brand:wikidata": "Q3272257", "brand:wikipedia": "en:M&T Bank", "name": "M&T Bank"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/MCB": {"name": "MCB", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q15982510", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "MCB", "brand:wikidata": "Q15982510", "brand:wikipedia": "ur:ایم سی بی بینک لمیٹڈ", "name": "MCB"}, "terms": ["mcb bank"], "matchScore": 2, "suggestion": true}, "amenity/bank/MONETA Money Bank": {"name": "MONETA Money Bank", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/726534904452931588/E4dnojuF_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q24282966", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "MONETA Money Bank", "brand:wikidata": "Q24282966", "brand:wikipedia": "cs:Moneta Money Bank", "name": "MONETA Money Bank"}, "countryCodes": ["cz"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Macro": {"name": "Macro", "icon": "maki-bank", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FLogo%20Banco%20Macro.svg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2335199", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Macro", "brand:wikidata": "Q2335199", "brand:wikipedia": "en:Banco Macro", "name": "Macro"}, "countryCodes": ["ar"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Macro": {"name": "Macro", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/bancomacro/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2335199", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Macro", "brand:wikidata": "Q2335199", "brand:wikipedia": "en:Banco Macro", "name": "Macro"}, "countryCodes": ["ar"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Maybank": {"name": "Maybank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/Maybank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1364018", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Maybank", "brand:wikidata": "Q1364018", "brand:wikipedia": "en:Maybank", "name": "Maybank"}, "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Meezan Bank": {"name": "Meezan Bank", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/1035410125601886208/2TiXmDhB_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6807934", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Meezan Bank", "brand:wikidata": "Q6807934", "brand:wikipedia": "en:Meezan Bank", "name": "Meezan Bank"}, "countryCodes": ["pk"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Meezan Bank": {"name": "Meezan Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/MeezanBank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6807934", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Meezan Bank", "brand:wikidata": "Q6807934", "brand:wikipedia": "en:Meezan Bank", "name": "Meezan Bank"}, "countryCodes": ["pk"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Mercantil": {"name": "Mercantil", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6818004", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Mercantil", "brand:wikidata": "Q6818004", "brand:wikipedia": "en:Mercantil Servicios Financieros", "name": "Mercantil"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Meridian Credit Union": {"name": "Meridian Credit Union", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/MeridianCreditUnion/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6819303", "amenity": "bank"}, "addTags": {"alt_name": "Meridian", "amenity": "bank", "brand": "Meridian Credit Union", "brand:wikidata": "Q6819303", "brand:wikipedia": "en:Meridian Credit Union", "name": "Meridian Credit Union"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Metro Bank (UK)": {"name": "Metro Bank (UK)", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/864061345330855936/lBp9CKv7_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6824499", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Metro Bank", "brand:wikidata": "Q6824499", "brand:wikipedia": "en:Metro Bank (United Kingdom)", "name": "Metro Bank"}, "countryCodes": ["gb"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Metrobank (Philippines)": {"name": "Metrobank (Philippines)", "icon": "maki-bank", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FMetropolitan%20Bank%20and%20Trust%20Company.svg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1925799", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Metrobank", "brand:wikidata": "Q1925799", "brand:wikipedia": "en:Metrobank (Philippines)", "name": "Metrobank"}, "countryCodes": ["ph"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Metrobank (Philippines)": {"name": "Metrobank (Philippines)", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/1140117795809550338/ySSJStq-_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1925799", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Metrobank", "brand:wikidata": "Q1925799", "brand:wikipedia": "en:Metrobank (Philippines)", "name": "Metrobank"}, "countryCodes": ["ph"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Mibanco": {"name": "Mibanco", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/MibancoOficial/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5558589", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Mibanco", "brand:wikidata": "Q5558589", "brand:wikipedia": "es:MiBanco", "name": "Mibanco"}, "countryCodes": ["pe"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/MidFirst Bank": {"name": "MidFirst Bank", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q17081131", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "MidFirst Bank", "brand:wikidata": "Q17081131", "brand:wikipedia": "en:MidFirst Bank", "name": "MidFirst Bank"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/MidFirst Bank": {"name": "MidFirst Bank", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/1096428932889362432/-d2Y2wF4_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q17081131", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "MidFirst Bank", "brand:wikidata": "Q17081131", "brand:wikipedia": "en:MidFirst Bank", "name": "MidFirst Bank"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Millennium Bank": {"name": "Millennium Bank", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/684026097688817664/fg1i7QVc_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4855947", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Millennium Bank", "brand:wikidata": "Q4855947", "brand:wikipedia": "pl:Bank Millennium", "name": "Millennium Bank"}, "countryCodes": ["pl"], "terms": ["bank millennium"], "matchScore": 2, "suggestion": true}, "amenity/bank/Millennium bcp": {"name": "Millennium bcp", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/MaisMillennium/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q118581", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Millennium bcp", "brand:wikidata": "Q118581", "brand:wikipedia": "pt:Banco Comercial Português", "name": "Millennium bcp", "official_name": "Banco Comercial Português", "official_name:en": "Portuguese Commercial Bank", "official_name:es": "Banco Comercial Português"}, "countryCodes": ["pt"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Monte dei Paschi di Siena": {"name": "Monte dei Paschi di Siena", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q46730", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Monte dei Paschi di Siena", "brand:wikidata": "Q46730", "brand:wikipedia": "en:Banca Monte dei Paschi di Siena", "name": "Monte dei Paschi di Siena"}, "countryCodes": ["it"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Montepio": {"name": "Montepio", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1946091", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Montepio", "brand:wikidata": "Q1946091", "brand:wikipedia": "en:Montepio (bank)", "name": "Montepio"}, "countryCodes": ["pt"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Mission Federal Credit Union": {"name": "Mission Federal Credit Union", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/missionfedcu/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q18345955", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Mission Federal Credit Union", "brand:wikidata": "Q18345955", "brand:wikipedia": "en:Mission Federal Credit Union", "name": "Mission Federal Credit Union"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Monte dei Paschi di Siena": {"name": "Monte dei Paschi di Siena", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/bancamps/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q46730", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Monte dei Paschi di Siena", "brand:wikidata": "Q46730", "brand:wikipedia": "en:Banca Monte dei Paschi di Siena", "name": "Monte dei Paschi di Siena"}, "countryCodes": ["it"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Montepio": {"name": "Montepio", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/303285168/logo_Montepio_259x248_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1946091", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Montepio", "brand:wikidata": "Q1946091", "brand:wikipedia": "en:Montepio (bank)", "name": "Montepio"}, "countryCodes": ["pt"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Mountain America Credit Union": {"name": "Mountain America Credit Union", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/MountainAmerica/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6924862", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Mountain America Credit Union", "brand:wikidata": "Q6924862", "brand:wikipedia": "en:Mountain America Credit Union", "name": "Mountain America Credit Union"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/NAB": {"name": "NAB", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/1086907839820398592/h_bUA0T6_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1430985", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "NAB", "brand:wikidata": "Q1430985", "brand:wikipedia": "en:National Australia Bank", "name": "NAB"}, "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/NAB": {"name": "NAB", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/NAB/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1430985", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "NAB", "brand:wikidata": "Q1430985", "brand:wikipedia": "en:National Australia Bank", "name": "NAB"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/NSB": {"name": "NSB", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/NSBSLOfficial/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q12500189", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "NSB", "brand:wikidata": "Q12500189", "brand:wikipedia": "en:National Savings Bank (Sri Lanka)", "name": "NSB"}, "countryCodes": ["lk"], "terms": ["national savings bank"], "matchScore": 2, "suggestion": true}, - "amenity/bank/NatWest": {"name": "NatWest", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/1134723716364013569/KL1GTzee_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2740021", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "NatWest", "brand:wikidata": "Q2740021", "brand:wikipedia": "en:NatWest", "name": "NatWest"}, "countryCodes": ["gb", "gg"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/NatWest": {"name": "NatWest", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/NatWest/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2740021", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "NatWest", "brand:wikidata": "Q2740021", "brand:wikipedia": "en:NatWest", "name": "NatWest"}, "countryCodes": ["gb", "gg"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/National Bank": {"name": "National Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/banquenationale/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q634298", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "National Bank", "brand:wikidata": "Q634298", "brand:wikipedia": "en:National Bank of Canada", "name": "National Bank", "official_name": "National Bank of Canada"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Nationwide": {"name": "Nationwide", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/1139126037676285952/ODyln4C0_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q846735", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Nationwide", "brand:wikidata": "Q846735", "brand:wikipedia": "en:Nationwide Building Society", "name": "Nationwide"}, "countryCodes": ["gb"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Nationwide": {"name": "Nationwide", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/NationwideBuildingSociety/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q846735", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Nationwide", "brand:wikidata": "Q846735", "brand:wikipedia": "en:Nationwide Building Society", "name": "Nationwide"}, "countryCodes": ["gb"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Navy Federal Credit Union": {"name": "Navy Federal Credit Union", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/NavyFederal/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6982632", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Navy Federal Credit Union", "brand:wikidata": "Q6982632", "brand:wikipedia": "en:Navy Federal Credit Union", "name": "Navy Federal Credit Union"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Nedbank": {"name": "Nedbank", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2751701", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Nedbank", "brand:wikidata": "Q2751701", "brand:wikipedia": "en:Nedbank", "name": "Nedbank"}, "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Nordea": {"name": "Nordea", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/729590013856382976/KEp-3zPj_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1123823", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Nordea", "brand:wikidata": "Q1123823", "brand:wikipedia": "en:Nordea", "name": "Nordea"}, "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Novo Banco": {"name": "Novo Banco", "icon": "maki-bank", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FLogotipo%20Novo%20Banco.png&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q17488861", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Novo Banco", "brand:wikidata": "Q17488861", "brand:wikipedia": "en:Novo Banco", "name": "Novo Banco"}, "countryCodes": ["es", "pt"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/OLB": {"name": "OLB", "icon": "maki-bank", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FOldenburgische%20landesbank%20logo.svg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q879591", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "OLB", "brand:wikidata": "Q879591", "brand:wikipedia": "en:Oldenburgische Landesbank", "name": "OLB"}, "countryCodes": ["de"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/OTP": {"name": "OTP", "icon": "maki-bank", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FOtp%20bank%20Logo.svg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q912778", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "OTP", "brand:wikidata": "Q912778", "brand:wikipedia": "en:OTP Bank", "name": "OTP"}, "terms": ["otp bank"], "matchScore": 2, "suggestion": true}, - "amenity/bank/Oberbank": {"name": "Oberbank", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/599117673033637888/dxClM7lU_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2009139", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Oberbank", "brand:wikidata": "Q2009139", "brand:wikipedia": "de:Oberbank", "name": "Oberbank"}, "countryCodes": ["at", "cz", "de", "hu"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Nedbank": {"name": "Nedbank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/Nedbank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2751701", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Nedbank", "brand:wikidata": "Q2751701", "brand:wikipedia": "en:Nedbank", "name": "Nedbank"}, "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Nordea": {"name": "Nordea", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/Nordea/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1123823", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Nordea", "brand:wikidata": "Q1123823", "brand:wikipedia": "en:Nordea", "name": "Nordea"}, "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Novo Banco": {"name": "Novo Banco", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/planetanovobanco/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q17488861", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Novo Banco", "brand:wikidata": "Q17488861", "brand:wikipedia": "en:Novo Banco", "name": "Novo Banco"}, "countryCodes": ["es", "pt"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/OLB": {"name": "OLB", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/OLB.Bank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q879591", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "OLB", "brand:wikidata": "Q879591", "brand:wikipedia": "en:Oldenburgische Landesbank", "name": "OLB"}, "countryCodes": ["de"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/OTP": {"name": "OTP", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/otpbank.hu/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q912778", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "OTP", "brand:wikidata": "Q912778", "brand:wikipedia": "en:OTP Bank", "name": "OTP"}, "terms": ["otp bank"], "matchScore": 2, "suggestion": true}, + "amenity/bank/Oberbank": {"name": "Oberbank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/oberbank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2009139", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Oberbank", "brand:wikidata": "Q2009139", "brand:wikipedia": "de:Oberbank", "name": "Oberbank"}, "countryCodes": ["at", "cz", "de", "hu"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Occidental de Descuento": {"name": "Occidental de Descuento", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/1086400904717496/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4854108", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Occidental de Descuento", "brand:wikidata": "Q4854108", "brand:wikipedia": "en:Banco Occidental de Descuento", "name": "Occidental de Descuento"}, "countryCodes": ["ve"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Oldenburgische Landesbank": {"name": "Oldenburgische Landesbank", "icon": "maki-bank", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FOldenburgische%20landesbank%20logo.svg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q879591", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Oldenburgische Landesbank", "brand:wikidata": "Q879591", "brand:wikipedia": "en:Oldenburgische Landesbank", "name": "Oldenburgische Landesbank"}, "countryCodes": ["de"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Oldenburgische Landesbank": {"name": "Oldenburgische Landesbank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/OLB.Bank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q879591", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Oldenburgische Landesbank", "brand:wikidata": "Q879591", "brand:wikipedia": "en:Oldenburgische Landesbank", "name": "Oldenburgische Landesbank"}, "countryCodes": ["de"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/One Network Bank": {"name": "One Network Bank", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7093019", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "One Network Bank", "brand:wikidata": "Q7093019", "brand:wikipedia": "en:One Network Bank", "name": "One Network Bank"}, "countryCodes": ["ph"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Oriental Bank of Commerce": {"name": "Oriental Bank of Commerce", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/887244088378052608/L2VNwfzZ_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q367008", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Oriental Bank of Commerce", "brand:wikidata": "Q367008", "brand:wikipedia": "en:Oriental Bank of Commerce", "name": "Oriental Bank of Commerce"}, "countryCodes": ["in"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Osuuspankki": {"name": "Osuuspankki", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/550208070584786944/XIkH6cRe_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4045597", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Osuuspankki", "brand:wikidata": "Q4045597", "brand:wikipedia": "fi:OP (finanssiryhmä)", "name": "Osuuspankki"}, "countryCodes": ["fi"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/PBZ": {"name": "PBZ", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7246343", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "PBZ", "brand:wikidata": "Q7246343", "brand:wikipedia": "en:Privredna banka Zagreb", "name": "PBZ"}, "countryCodes": ["hr"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/PKO BP": {"name": "PKO BP", "icon": "maki-bank", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FLogotyp%20PKO%20BP.svg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q578832", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "PKO BP", "brand:wikidata": "Q578832", "brand:wikipedia": "pl:Powszechna Kasa Oszczędności Bank Polski", "name": "PKO BP"}, "countryCodes": ["pl"], "terms": ["pko bank polski"], "matchScore": 2, "suggestion": true}, + "amenity/bank/Oriental": {"name": "Oriental", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/OrientalBank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q64887002", "amenity": "bank"}, "addTags": {"alt_name": "Oriental Bank", "amenity": "bank", "brand": "Oriental", "brand:wikidata": "Q64887002", "name": "Oriental"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Oriental Bank of Commerce": {"name": "Oriental Bank of Commerce", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/OBCIndOfficial/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q367008", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Oriental Bank of Commerce", "brand:wikidata": "Q367008", "brand:wikipedia": "en:Oriental Bank of Commerce", "name": "Oriental Bank of Commerce"}, "countryCodes": ["in"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Osuuspankki": {"name": "Osuuspankki", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/OP.fi/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4045597", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Osuuspankki", "brand:wikidata": "Q4045597", "brand:wikipedia": "fi:OP (finanssiryhmä)", "name": "Osuuspankki"}, "countryCodes": ["fi"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/PBZ": {"name": "PBZ", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/privrednabankazagreb/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7246343", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "PBZ", "brand:wikidata": "Q7246343", "brand:wikipedia": "en:Privredna banka Zagreb", "name": "PBZ"}, "countryCodes": ["hr"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/PKO BP": {"name": "PKO BP", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/PKOBankPolski/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q578832", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "PKO BP", "brand:wikidata": "Q578832", "brand:wikipedia": "pl:Powszechna Kasa Oszczędności Bank Polski", "name": "PKO BP"}, "countryCodes": ["pl"], "terms": ["pko bank polski"], "matchScore": 2, "suggestion": true}, "amenity/bank/PNB": {"name": "PNB", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/PNBph/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1657971", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "PNB", "brand:wikidata": "Q1657971", "brand:wikipedia": "en:Philippine National Bank", "name": "PNB", "official_name": "Philippine National Bank"}, "countryCodes": ["ph"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/PNC Bank": {"name": "PNC Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/pncbank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q38928", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "PNC Bank", "brand:wikidata": "Q38928", "brand:wikipedia": "en:PNC Financial Services", "name": "PNC Bank"}, "countryCodes": ["us"], "terms": ["pnc"], "matchScore": 2, "suggestion": true}, - "amenity/bank/PSBank": {"name": "PSBank", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/701620751019827200/E4JWcIfp_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7185203", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "PSBank", "brand:wikidata": "Q7185203", "brand:wikipedia": "en:Philippine Savings Bank", "name": "PSBank"}, "countryCodes": ["ph"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Panin Bank": {"name": "Panin Bank", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q12502751", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Panin Bank", "brand:wikidata": "Q12502751", "brand:wikipedia": "id:Panin Bank", "name": "Panin Bank"}, "countryCodes": ["id"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Patagonia": {"name": "Patagonia", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/1064714176596254720/afM24Gwn_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2882078", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Patagonia", "brand:wikidata": "Q2882078", "brand:wikipedia": "en:Banco Patagonia", "name": "Patagonia"}, "countryCodes": ["ar"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/PSBank": {"name": "PSBank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/psbankofficial/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7185203", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "PSBank", "brand:wikidata": "Q7185203", "brand:wikipedia": "en:Philippine Savings Bank", "name": "PSBank"}, "countryCodes": ["ph"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Panin Bank": {"name": "Panin Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/paninbankfanpage/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q12502751", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Panin Bank", "brand:wikidata": "Q12502751", "brand:wikipedia": "id:Panin Bank", "name": "Panin Bank"}, "countryCodes": ["id"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Patagonia": {"name": "Patagonia", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/BancoPatagonia/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2882078", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Patagonia", "brand:wikidata": "Q2882078", "brand:wikipedia": "en:Banco Patagonia", "name": "Patagonia"}, "countryCodes": ["ar"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Pekao SA": {"name": "Pekao SA", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/bankpekaosa/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q806642", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Pekao SA", "brand:wikidata": "Q806642", "brand:wikipedia": "pl:Bank Polska Kasa Opieki", "name": "Pekao SA"}, "countryCodes": ["pl"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/PenFed Credit Union": {"name": "PenFed Credit Union", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/PenFed/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3374885", "amenity": "bank"}, "addTags": {"alt_name": "Pentagon Federal Credit Union", "amenity": "bank", "brand": "PenFed Credit Union", "brand:wikidata": "Q3374885", "brand:wikipedia": "en:Pentagon Federal Credit Union", "name": "PenFed Credit Union", "short_name": "PenFed"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/People's United Bank": {"name": "People's United Bank", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7165802", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "People's United Bank", "brand:wikidata": "Q7165802", "brand:wikipedia": "en:People's United Financial", "name": "People's United Bank"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Peoples Bank": {"name": "Peoples Bank", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7166050", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Peoples Bank", "brand:wikidata": "Q7166050", "brand:wikipedia": "en:Peoples Bank", "name": "Peoples Bank"}, "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Piraeus Bank": {"name": "Piraeus Bank", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/956878317642289152/3eKgkDXU_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3312", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Piraeus Bank", "brand:wikidata": "Q3312", "brand:wikipedia": "en:Piraeus Bank", "name": "Piraeus Bank"}, "countryCodes": ["bg", "cy", "gr", "ro", "ua"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Postbank (Bulgaria)": {"name": "Postbank (Bulgaria)", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7234083", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Postbank", "brand:wikidata": "Q7234083", "brand:wikipedia": "en:Bulgarian Postbank", "name": "Postbank"}, "countryCodes": ["bg"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Postbank (Germany)": {"name": "Postbank (Germany)", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/908269765227053056/0zk6Mfhc_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q708835", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Postbank", "brand:wikidata": "Q708835", "brand:wikipedia": "en:Deutsche Postbank", "name": "Postbank"}, "countryCodes": ["de"], "terms": ["postbank finanzcenter"], "matchScore": 2, "suggestion": true}, + "amenity/bank/People's United Bank": {"name": "People's United Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/peoplesunited/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7165802", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "People's United Bank", "brand:wikidata": "Q7165802", "brand:wikipedia": "en:People's United Financial", "name": "People's United Bank"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Peoples Bank (Ohio)": {"name": "Peoples Bank (Ohio)", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/473816917182930946/kWDoDGQx_bigger.jpeg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q65716607", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Peoples Bank", "brand:wikidata": "Q65716607", "name": "Peoples Bank"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Peoples Bank (Washington)": {"name": "Peoples Bank (Washington)", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7166050", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Peoples Bank", "brand:wikidata": "Q7166050", "brand:wikipedia": "en:Peoples Bank", "name": "Peoples Bank"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Piraeus Bank": {"name": "Piraeus Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/piraeusbank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3312", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Piraeus Bank", "brand:wikidata": "Q3312", "brand:wikipedia": "en:Piraeus Bank", "name": "Piraeus Bank"}, "countryCodes": ["bg", "cy", "gr", "ro", "ua"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Popular": {"name": "Popular", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/PopularVI/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7229656", "amenity": "bank"}, "addTags": {"alt_name": "Banco Popular", "alt_name:en": "Popular Bank", "alt_name:es": "Banco Popular", "amenity": "bank", "brand": "Popular", "brand:en": "Popular", "brand:es": "Popular", "brand:wikidata": "Q7229656", "brand:wikipedia": "en:Popular, Inc.", "name": "Popular", "name:en": "Popular", "name:es": "Popular", "official_name": "Banco Popular de Puerto Rico", "official_name:es": "Banco Popular de Puerto Rico", "short_name": "BPPR"}, "countryCodes": ["us"], "terms": ["popular bank"], "matchScore": 2, "suggestion": true}, + "amenity/bank/Postbank (Bulgaria)": {"name": "Postbank (Bulgaria)", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/PostbankBG/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7234083", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Postbank", "brand:wikidata": "Q7234083", "brand:wikipedia": "en:Bulgarian Postbank", "name": "Postbank"}, "countryCodes": ["bg"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Postbank (Germany)": {"name": "Postbank (Germany)", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/postbank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q708835", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Postbank", "brand:wikidata": "Q708835", "brand:wikipedia": "en:Deutsche Postbank", "name": "Postbank"}, "countryCodes": ["de"], "terms": ["postbank finanzcenter"], "matchScore": 2, "suggestion": true}, "amenity/bank/Prima banka": {"name": "Prima banka", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/primabankaslovensko/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q13538661", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Prima banka", "brand:wikidata": "Q13538661", "brand:wikipedia": "sk:Prima banka Slovensko", "name": "Prima banka"}, "countryCodes": ["sk"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Provincial": {"name": "Provincial", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/894046729062027264/48n7ij3E_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4835087", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Provincial", "brand:wikidata": "Q4835087", "brand:wikipedia": "es:BBVA Provincial", "name": "Provincial"}, "countryCodes": ["ve"], "terms": ["bbva provincial"], "matchScore": 2, "suggestion": true}, + "amenity/bank/Provincial": {"name": "Provincial", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/1151125571289718786/INihTiHa_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4835087", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Provincial", "brand:wikidata": "Q4835087", "brand:wikipedia": "es:BBVA Provincial", "name": "Provincial"}, "countryCodes": ["ve"], "terms": ["bbva provincial"], "matchScore": 2, "suggestion": true}, "amenity/bank/Public Bank (Malaysia)": {"name": "Public Bank (Malaysia)", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3046561", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Public Bank", "brand:wikidata": "Q3046561", "brand:wikipedia": "en:Public Bank Berhad", "name": "Public Bank"}, "terms": ["public bank berhad"], "matchScore": 2, "suggestion": true}, "amenity/bank/Punjab National Bank": {"name": "Punjab National Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/pnbindia/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2743499", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Punjab National Bank", "brand:wikidata": "Q2743499", "brand:wikipedia": "en:Punjab National Bank", "name": "Punjab National Bank"}, "countryCodes": ["in"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/RBC": {"name": "RBC", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/1135532386949763072/NdPhjrB6_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q735261", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "RBC", "brand:wikidata": "Q735261", "brand:wikipedia": "en:Royal Bank of Canada", "name": "RBC", "official_name": "Royal Bank of Canada"}, "terms": ["rbc financial group", "rbc royal bank", "royal bank"], "matchScore": 2, "suggestion": true}, - "amenity/bank/RBS": {"name": "RBS", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/1134724783931887616/h5bixsdB_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q160126", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "RBS", "brand:wikidata": "Q160126", "brand:wikipedia": "en:Royal Bank of Scotland", "name": "RBS", "official_name": "Royal Bank of Scotland"}, "countryCodes": ["gb", "je", "ro"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/RBC": {"name": "RBC", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/rbc/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q735261", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "RBC", "brand:wikidata": "Q735261", "brand:wikipedia": "en:Royal Bank of Canada", "name": "RBC", "official_name": "Royal Bank of Canada"}, "terms": ["rbc financial group", "rbc royal bank", "royal bank"], "matchScore": 2, "suggestion": true}, + "amenity/bank/RBS": {"name": "RBS", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/royalbankofscotland/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q160126", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "RBS", "brand:wikidata": "Q160126", "brand:wikipedia": "en:Royal Bank of Scotland", "name": "RBS", "official_name": "Royal Bank of Scotland"}, "countryCodes": ["gb", "je", "ro"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/RCBC": {"name": "RCBC", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/RCBCGroup/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7339070", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "RCBC", "brand:wikidata": "Q7339070", "brand:wikipedia": "en:Rizal Commercial Banking Corporation", "name": "RCBC", "official_name": "Rizal Commercial Banking Corporation"}, "countryCodes": ["ph"], "terms": ["rcbc savings bank"], "matchScore": 2, "suggestion": true}, "amenity/bank/Rabobank": {"name": "Rabobank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/rabobank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q252004", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Rabobank", "brand:wikidata": "Q252004", "brand:wikipedia": "en:Rabobank", "name": "Rabobank"}, "countryCodes": ["au", "id", "nl", "nz", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Raiffeisen Polbank": {"name": "Raiffeisen Polbank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/BNPParibasBankPolska/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q9303218", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Raiffeisen Polbank", "brand:wikidata": "Q9303218", "brand:wikipedia": "pl:Raiffeisen Bank Polska", "name": "Raiffeisen Polbank"}, "countryCodes": ["de", "pl"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Raiffeisenbank": {"name": "Raiffeisenbank", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q24282825", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Raiffeisenbank", "brand:wikidata": "Q24282825", "brand:wikipedia": "cs:Raiffeisenbank", "name": "Raiffeisenbank"}, "terms": ["raiffeisen", "raiffeisenkasse"], "matchScore": 2, "suggestion": true}, "amenity/bank/Regions Bank": {"name": "Regions Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/RegionsBank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q917131", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Regions Bank", "brand:wikidata": "Q917131", "brand:wikipedia": "en:Regions Financial Corporation", "name": "Regions Bank"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Republic Bank (Eastern Caribbean)": {"name": "Republic Bank (Eastern Caribbean)", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/republicbanktnt/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7314386", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Republic Bank", "brand:wikidata": "Q7314386", "brand:wikipedia": "en:Republic Bank", "name": "Republic Bank"}, "countryCodes": ["bb", "gd", "gy", "tt"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Republic Bank (USA)": {"name": "Republic Bank (USA)", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7314387", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Republic Bank", "brand:wikidata": "Q7314387", "brand:wikipedia": "en:Republic Bank & Trust Company", "name": "Republic Bank", "official_name": "Republic Bank & Trust Company"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/República": {"name": "República", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4077337", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "República", "brand:wikidata": "Q4077337", "brand:wikipedia": "en:Banco de la República Oriental del Uruguay", "name": "República"}, "countryCodes": ["uy"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/S-Pankki": {"name": "S-Pankki", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/1098603227333959687/q1wdK2sL_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7387053", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "S-Pankki", "brand:wikidata": "Q7387053", "brand:wikipedia": "fi:S-Pankki", "name": "S-Pankki"}, "countryCodes": ["fi"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/SC제일은행": {"name": "SC제일은행", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q625531", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "SC제일은행", "brand:ko": "SC제일은행", "brand:wikidata": "Q625531", "brand:wikipedia": "en:Standard Chartered Korea", "name": "SC제일은행", "name:ko": "SC제일은행"}, "countryCodes": ["kr"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Republic Bank (USA)": {"name": "Republic Bank (USA)", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/republicbank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7314387", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Republic Bank", "brand:wikidata": "Q7314387", "brand:wikipedia": "en:Republic Bank & Trust Company", "name": "Republic Bank", "official_name": "Republic Bank & Trust Company"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/República": {"name": "República", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/BROU.uy/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4077337", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "República", "brand:wikidata": "Q4077337", "brand:wikipedia": "en:Banco de la República Oriental del Uruguay", "name": "República"}, "countryCodes": ["uy"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/S-Pankki": {"name": "S-Pankki", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/kauppapankki/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7387053", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "S-Pankki", "brand:wikidata": "Q7387053", "brand:wikipedia": "fi:S-Pankki", "name": "S-Pankki"}, "countryCodes": ["fi"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/SC제일은행": {"name": "SC제일은행", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/StandardCharteredKR/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q625531", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "SC제일은행", "brand:ko": "SC제일은행", "brand:wikidata": "Q625531", "brand:wikipedia": "en:Standard Chartered Korea", "name": "SC제일은행", "name:ko": "SC제일은행"}, "countryCodes": ["kr"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/SEB": {"name": "SEB", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/sebsverige/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q975655", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "SEB", "brand:wikidata": "Q975655", "brand:wikipedia": "en:SEB Group", "name": "SEB"}, "countryCodes": ["de", "ee", "lt", "lv", "se"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/SGBCI": {"name": "SGBCI", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/societegenerale/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3488360", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "SGBCI", "brand:wikidata": "Q3488360", "brand:wikipedia": "fr:Société générale de banques en Côte d'Ivoire", "name": "SGBCI"}, "countryCodes": ["ci"], "terms": ["agence sgbci"], "matchScore": 2, "suggestion": true}, + "amenity/bank/SGBCI": {"name": "SGBCI", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/societegenerale.cotedivoire/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3488360", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "SGBCI", "brand:wikidata": "Q3488360", "brand:wikipedia": "fr:Société générale de banques en Côte d'Ivoire", "name": "SGBCI"}, "countryCodes": ["ci"], "terms": ["agence sgbci"], "matchScore": 2, "suggestion": true}, "amenity/bank/SNS Bank": {"name": "SNS Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/devolksbanknl/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1857899", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "SNS Bank", "brand:wikidata": "Q1857899", "brand:wikipedia": "en:De Volksbank", "name": "SNS Bank"}, "countryCodes": ["nl"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Sampath Bank": {"name": "Sampath Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/Sampathbankplc/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7410095", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Sampath Bank", "brand:wikidata": "Q7410095", "brand:wikipedia": "en:Sampath Bank", "name": "Sampath Bank"}, "countryCodes": ["lk"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/San Diego County Credit Union": {"name": "San Diego County Credit Union", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/SDCCU/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7413628", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "San Diego County Credit Union", "brand:wikidata": "Q7413628", "brand:wikipedia": "en:San Diego County Credit Union", "name": "San Diego County Credit Union", "short_name": "SDCCU"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Santander": {"name": "Santander", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/SantanderBankUS/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5835668", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Santander", "brand:wikidata": "Q5835668", "brand:wikipedia": "en:Santander Bank", "name": "Santander"}, "terms": ["santander consumer bank"], "matchScore": 2, "suggestion": true}, "amenity/bank/Santander Río": {"name": "Santander Río", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/Santander.Ar/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3385268", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Santander Río", "brand:wikidata": "Q3385268", "brand:wikipedia": "es:Banco Santander Río", "name": "Santander Río"}, "countryCodes": ["ar"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Santander Totta": {"name": "Santander Totta", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/santanderpt/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4854116", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Santander Totta", "brand:wikidata": "Q4854116", "brand:wikipedia": "pt:Banco Santander Portugal", "name": "Santander Totta"}, "countryCodes": ["pt"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Sberbank": {"name": "Sberbank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/sberbank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q205012", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Sberbank", "brand:wikidata": "Q205012", "brand:wikipedia": "en:Sberbank of Russia", "name": "Sberbank"}, "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Scotiabank": {"name": "Scotiabank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/scotiabank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q451476", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Scotiabank", "brand:wikidata": "Q451476", "brand:wikipedia": "en:Scotiabank", "name": "Scotiabank"}, "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Scotiabank (Québec)": {"name": "Scotiabank (Québec)", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/scotiabank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q451476", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Banque Scotia", "brand:wikidata": "Q451476", "brand:wikipedia": "fr:Banque Scotia", "name": "Banque Scotia"}, "countryCodes": ["ca"], "terms": ["Scotia"], "matchScore": 2, "suggestion": true}, + "amenity/bank/Scotiabank (non-Québec)": {"name": "Scotiabank (non-Québec)", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/scotiabank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q451476", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Scotiabank", "brand:wikidata": "Q451476", "brand:wikipedia": "en:Scotiabank", "name": "Scotiabank"}, "terms": ["Scotia"], "matchScore": 2, "suggestion": true}, "amenity/bank/Security Bank": {"name": "Security Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/SecurityBank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7444945", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Security Bank", "brand:wikidata": "Q7444945", "brand:wikipedia": "en:Security Bank", "name": "Security Bank"}, "countryCodes": ["ph"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Security Service Federal Credit Union": {"name": "Security Service Federal Credit Union", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/ssfcu/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7444993", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Security Service Federal Credit Union", "brand:wikidata": "Q7444993", "brand:wikipedia": "en:Security Service Federal Credit Union", "name": "Security Service Federal Credit Union", "short_name": "SSFCU"}, "countryCodes": ["us"], "terms": ["security service fcu"], "matchScore": 2, "suggestion": true}, "amenity/bank/Service Credit Union": {"name": "Service Credit Union", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/ServiceCreditUnion/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7455675", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Service Credit Union", "brand:wikidata": "Q7455675", "brand:wikipedia": "en:Service Credit Union", "name": "Service Credit Union"}, "countryCodes": ["de", "us"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -1641,11 +1652,11 @@ "amenity/bank/Simmons Bank": {"name": "Simmons Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/simmonsbank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q28402389", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Simmons Bank", "brand:wikidata": "Q28402389", "brand:wikipedia": "en:Simmons Bank", "name": "Simmons Bank"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Slovenská sporiteľňa": {"name": "Slovenská sporiteľňa", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/SlovenskaSporitelna/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7541907", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Slovenská sporiteľňa", "brand:wikidata": "Q7541907", "brand:wikipedia": "en:Slovenská sporiteľňa", "name": "Slovenská sporiteľňa"}, "countryCodes": ["sk"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Société Générale": {"name": "Société Générale", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/societegenerale/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q270363", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Société Générale", "brand:wikidata": "Q270363", "brand:wikipedia": "en:Société Générale", "name": "Société Générale"}, "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Société Marseillaise de Crédit": {"name": "Société Marseillaise de Crédit", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3488479", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Société Marseillaise de Crédit", "brand:wikidata": "Q3488479", "brand:wikipedia": "fr:Société marseillaise de crédit", "name": "Société Marseillaise de Crédit"}, "countryCodes": ["fr"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Société Marseillaise de Crédit": {"name": "Société Marseillaise de Crédit", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/societemarseillaisedecredit/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3488479", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Société Marseillaise de Crédit", "brand:wikidata": "Q3488479", "brand:wikipedia": "fr:Société marseillaise de crédit", "name": "Société Marseillaise de Crédit"}, "countryCodes": ["fr"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Sonali Bank": {"name": "Sonali Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/sb.ltd.bd/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3350382", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Sonali Bank", "brand:wikidata": "Q3350382", "brand:wikipedia": "en:Sonali Bank", "name": "Sonali Bank"}, "countryCodes": ["bd"], "terms": ["sonali bank limited", "sonali bank limited সোনালী ব্যাংক লিমিটেড"], "matchScore": 2, "suggestion": true}, "amenity/bank/South Indian Bank": {"name": "South Indian Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/thesouthindianbank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2044973", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "South Indian Bank", "brand:wikidata": "Q2044973", "brand:wikipedia": "en:South Indian Bank", "name": "South Indian Bank"}, "countryCodes": ["in"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/South State Bank": {"name": "South State Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/SouthStateBank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q55633597", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "South State Bank", "brand:wikidata": "Q55633597", "brand:wikipedia": "en:South State Bank", "name": "South State Bank"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Sparda-Bank": {"name": "Sparda-Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/spardabankmuenchen/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2307136", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Sparda-Bank", "brand:wikidata": "Q2307136", "brand:wikipedia": "en:Sparda-Bank", "name": "Sparda-Bank"}, "countryCodes": ["at", "de"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Sparda-Bank": {"name": "Sparda-Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/SpardaVerband/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2307136", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Sparda-Bank", "brand:wikidata": "Q2307136", "brand:wikipedia": "en:Sparda-Bank", "name": "Sparda-Bank"}, "countryCodes": ["at", "de"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Stanbic Bank": {"name": "Stanbic Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/StanbicBankGhana/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7597999", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Stanbic Bank", "brand:wikidata": "Q7597999", "brand:wikipedia": "en:Stanbic Bank", "name": "Stanbic Bank"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Standard Bank": {"name": "Standard Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/standardbankgrp/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1576610", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Standard Bank", "brand:wikidata": "Q1576610", "brand:wikipedia": "en:Standard Bank", "name": "Standard Bank"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Standard Chartered": {"name": "Standard Chartered", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/StandardChartered/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q548278", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Standard Chartered", "brand:wikidata": "Q548278", "brand:wikipedia": "en:Standard Chartered", "name": "Standard Chartered"}, "terms": ["standard chartered bank"], "matchScore": 2, "suggestion": true}, @@ -1658,11 +1669,12 @@ "amenity/bank/Swedbank": {"name": "Swedbank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/swedbanksverige/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1145493", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Swedbank", "brand:wikidata": "Q1145493", "brand:wikipedia": "en:Swedbank", "name": "Swedbank"}, "countryCodes": ["ee", "lt", "lv", "se"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Syndicate Bank": {"name": "Syndicate Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/syndicatebank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2004088", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Syndicate Bank", "brand:wikidata": "Q2004088", "brand:wikipedia": "en:Syndicate Bank", "name": "Syndicate Bank"}, "countryCodes": ["in"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/TCF Bank": {"name": "TCF Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/TCFbank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7669687", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "TCF Bank", "brand:wikidata": "Q7669687", "brand:wikipedia": "en:TCF Bank", "name": "TCF Bank"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/TD Bank": {"name": "TD Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/TDBank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7669891", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "TD Bank", "brand:wikidata": "Q7669891", "brand:wikipedia": "en:TD Bank, N.A.", "name": "TD Bank"}, "countryCodes": ["ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/TD Bank": {"name": "TD Bank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/TDBank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7669891", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "TD Bank", "brand:wikidata": "Q7669891", "brand:wikipedia": "en:TD Bank, N.A.", "name": "TD Bank"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/TD Canada Trust": {"name": "TD Canada Trust", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/TDBank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1080670", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "TD Canada Trust", "brand:wikidata": "Q1080670", "brand:wikipedia": "en:TD Canada Trust", "name": "TD Canada Trust"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/TEB": {"name": "TEB", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/teb/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7862447", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "TEB", "brand:wikidata": "Q7862447", "brand:wikipedia": "en:Türk Ekonomi Bankası", "name": "TEB"}, "countryCodes": ["tr"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/TSB": {"name": "TSB", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/TSBbankUK/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7671560", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "TSB", "brand:wikidata": "Q7671560", "brand:wikipedia": "en:TSB Bank (United Kingdom)", "name": "TSB"}, "countryCodes": ["gb"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Takarékszövetkezet": {"name": "Takarékszövetkezet", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/takarekcsoport/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q30324674", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Takarékszövetkezet", "brand:wikidata": "Q30324674", "brand:wikipedia": "en:TakarékBank", "name": "Takarékszövetkezet"}, "countryCodes": ["hu"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Tangerine": {"name": "Tangerine", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/TangerineBank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q15238797", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Tangerine", "brand:wikidata": "Q15238797", "brand:wikipedia": "en:Tangerine Bank", "name": "Tangerine"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Targobank": {"name": "Targobank", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/targobank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1455437", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Targobank", "brand:wikidata": "Q1455437", "brand:wikipedia": "en:Targobank", "name": "Targobank"}, "countryCodes": ["de", "es"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Tatra banka": {"name": "Tatra banka", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/tatrabanka/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1718069", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Tatra banka", "brand:wikidata": "Q1718069", "brand:wikipedia": "en:Tatra banka", "name": "Tatra banka"}, "countryCodes": ["sk"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Türkiye İş Bankası": {"name": "Türkiye İş Bankası", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/isbankasi/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q909613", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Türkiye İş Bankası", "brand:wikidata": "Q909613", "brand:wikipedia": "en:Türkiye İş Bankası", "name": "Türkiye İş Bankası"}, "terms": [], "matchScore": 2, "suggestion": true}, @@ -1678,7 +1690,7 @@ "amenity/bank/UOB": {"name": "UOB", "icon": "maki-bank", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FUOB%20Logo.svg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2064074", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "UOB", "brand:wikidata": "Q2064074", "brand:wikipedia": "en:United Overseas Bank", "name": "UOB"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/USAA": {"name": "USAA", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/USAA/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7865722", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "USAA", "brand:wikidata": "Q7865722", "brand:wikipedia": "en:USAA", "name": "USAA", "official_name": "United Services Automobile Association"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Ulster Bank": {"name": "Ulster Bank", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2613366", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Ulster Bank", "brand:wikidata": "Q2613366", "brand:wikipedia": "en:Ulster Bank", "name": "Ulster Bank"}, "countryCodes": ["gb", "ie"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Umpqua Bank": {"name": "Umpqua Bank", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/1137216537289302016/nDiuFr0P_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7881772", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Umpqua Bank", "brand:wikidata": "Q7881772", "brand:wikipedia": "en:Umpqua Holdings Corporation", "name": "Umpqua Bank"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Umpqua Bank": {"name": "Umpqua Bank", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/1151175725711364096/6S_1o7Fj_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7881772", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Umpqua Bank", "brand:wikidata": "Q7881772", "brand:wikipedia": "en:Umpqua Holdings Corporation", "name": "Umpqua Bank"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/UniCredit Bank": {"name": "UniCredit Bank", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/938454142338596864/uYxN76cQ_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q45568", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "UniCredit Bank", "brand:wikidata": "Q45568", "brand:wikipedia": "en:UniCredit", "name": "UniCredit Bank"}, "terms": ["unicredit", "unicredit banca"], "matchScore": 2, "suggestion": true}, "amenity/bank/Unicaja Banco": {"name": "Unicaja Banco", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/1054637020713234432/c1iwfyOm_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2543704", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Unicaja Banco", "brand:wikidata": "Q2543704", "brand:wikipedia": "en:Unicaja", "name": "Unicaja Banco", "short_name": "Unicaja"}, "countryCodes": ["es"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Union Bank of India": {"name": "Union Bank of India", "icon": "maki-bank", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FUnion%20Bank%20of%20India%20Logo.svg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2004078", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Union Bank of India", "brand:wikidata": "Q2004078", "brand:wikipedia": "en:Union Bank of India", "name": "Union Bank of India"}, "countryCodes": ["in"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -1699,7 +1711,7 @@ "amenity/bank/Westpac": {"name": "Westpac", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/1135693176243597312/mE_lUXFY_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2031726", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Westpac", "brand:wikidata": "Q2031726", "brand:wikipedia": "en:Westpac", "name": "Westpac"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Yapı Kredi": {"name": "Yapı Kredi", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q8049138", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Yapı Kredi", "brand:wikidata": "Q8049138", "brand:wikipedia": "en:Yapı ve Kredi Bankası", "name": "Yapı Kredi"}, "countryCodes": ["tr"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Yorkshire Bank": {"name": "Yorkshire Bank", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/875682560315097088/YOR4LIIO_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q8055678", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Yorkshire Bank", "brand:wikidata": "Q8055678", "brand:wikipedia": "en:Yorkshire Bank", "name": "Yorkshire Bank"}, "countryCodes": ["gb"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Yorkshire Building Society": {"name": "Yorkshire Building Society", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/1135930358636134407/TypmFPcO_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q12073381", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Yorkshire Building Society", "brand:wikidata": "Q12073381", "brand:wikipedia": "en:Yorkshire Building Society", "name": "Yorkshire Building Society"}, "countryCodes": ["gb"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Yorkshire Building Society": {"name": "Yorkshire Building Society", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/1145614834526040065/R06gfLHu_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q12073381", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Yorkshire Building Society", "brand:wikidata": "Q12073381", "brand:wikipedia": "en:Yorkshire Building Society", "name": "Yorkshire Building Society"}, "countryCodes": ["gb"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Zagrebačka banka": {"name": "Zagrebačka banka", "icon": "maki-bank", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FZagreba%C4%8Dka-banka-Logo.svg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q140381", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Zagrebačka banka", "brand:wikidata": "Q140381", "brand:wikipedia": "en:Zagrebačka banka", "name": "Zagrebačka banka"}, "countryCodes": ["hr"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Zenith Bank": {"name": "Zenith Bank", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/880350862647980032/mvRee-i3_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5978240", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Zenith Bank", "brand:wikidata": "Q5978240", "brand:wikipedia": "en:Zenith Bank", "name": "Zenith Bank"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Ziraat Bankası": {"name": "Ziraat Bankası", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/796327044867100672/6kVcx5hR_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q696003", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Ziraat Bankası", "brand:wikidata": "Q696003", "brand:wikipedia": "en:Ziraat Bankası", "name": "Ziraat Bankası"}, "terms": [], "matchScore": 2, "suggestion": true}, @@ -1710,7 +1722,7 @@ "amenity/bank/Česká spořitelna": {"name": "Česká spořitelna", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/1129037135598804996/t6sH0DmI_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q341100", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Česká spořitelna", "brand:wikidata": "Q341100", "brand:wikipedia": "en:Česká spořitelna", "name": "Česká spořitelna"}, "countryCodes": ["cz"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/İş Bankası": {"name": "İş Bankası", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/isbankasi/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q909613", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "İş Bankası", "brand:wikidata": "Q909613", "brand:wikipedia": "en:Türkiye İş Bankası", "name": "İş Bankası"}, "countryCodes": ["tr"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Εθνική Τράπεζα": {"name": "Εθνική Τράπεζα", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/889398220853522432/S7AkARZ9_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1816028", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Εθνική Τράπεζα", "brand:el": "Εθνική Τράπεζα", "brand:en": "National Bank of Greece", "brand:wikidata": "Q1816028", "brand:wikipedia": "en:National Bank of Greece", "name": "Εθνική Τράπεζα", "name:el": "Εθνική Τράπεζα", "name:en": "National Bank of Greece"}, "countryCodes": ["gr"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Τράπεζα Πειραιώς": {"name": "Τράπεζα Πειραιώς", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/956878317642289152/3eKgkDXU_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3312", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Τράπεζα Πειραιώς", "brand:el": "Τράπεζα Πειραιώς", "brand:en": "Piraeus Bank", "brand:wikidata": "Q3312", "brand:wikipedia": "en:Piraeus Bank", "name": "Τράπεζα Πειραιώς", "name:el": "Τράπεζα Πειραιώς", "name:en": "Piraeus Bank"}, "countryCodes": ["gr"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Τράπεζα Πειραιώς": {"name": "Τράπεζα Πειραιώς", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/piraeusbank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3312", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Τράπεζα Πειραιώς", "brand:el": "Τράπεζα Πειραιώς", "brand:en": "Piraeus Bank", "brand:wikidata": "Q3312", "brand:wikipedia": "en:Piraeus Bank", "name": "Τράπεζα Πειραιώς", "name:el": "Τράπεζα Πειραιώς", "name:en": "Piraeus Bank"}, "countryCodes": ["gr"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/А-Банк": {"name": "А-Банк", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q28705400", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "А-Банк", "brand:wikidata": "Q28705400", "brand:wikipedia": "uk:А-Банк", "name": "А-Банк"}, "countryCodes": ["ua"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Авангард": {"name": "Авангард", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/bankavangard/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62122617", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Авангард", "brand:wikidata": "Q62122617", "name": "Авангард"}, "countryCodes": ["ru"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Альфа-Банк": {"name": "Альфа-Банк", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/1126053531507621888/L60raYv6_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1377835", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Альфа-Банк", "brand:en": "Alfa-Bank", "brand:ru": "Альфа-Банк", "brand:wikidata": "Q1377835", "brand:wikipedia": "ru:Альфа-банк", "name": "Альфа-Банк", "name:en": "Alfa-Bank", "name:ru": "Альфа-Банк"}, "countryCodes": ["by", "kz", "ru", "ua"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -1729,13 +1741,13 @@ "amenity/bank/Московский индустриальный банк": {"name": "Московский индустриальный банк", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4304145", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Московский индустриальный банк", "brand:en": "Moscow Industrial Bank", "brand:wikidata": "Q4304145", "brand:wikipedia": "ru:Московский индустриальный банк", "name": "Московский индустриальный банк", "name:en": "Moscow Industrial Bank"}, "countryCodes": ["ru"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Мособлбанк": {"name": "Мособлбанк", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4304446", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Мособлбанк", "brand:en": "Mosobl Bank", "brand:wikidata": "Q4304446", "brand:wikipedia": "ru:Мособлбанк", "name": "Мособлбанк", "name:en": "Mosobl Bank"}, "countryCodes": ["ru"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Народный банк": {"name": "Народный банк", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/halykbank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1046186", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Народный банк", "brand:wikidata": "Q1046186", "brand:wikipedia": "kk:Қазақстан Халық банкі", "name": "Народный банк"}, "countryCodes": ["kg", "kz", "uz"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/ОТП Банк": {"name": "ОТП Банк", "icon": "maki-bank", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FOtp%20bank%20Logo.svg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q912778", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "ОТП Банк", "brand:en": "OTP Bank", "brand:wikidata": "Q912778", "brand:wikipedia": "en:OTP Bank", "name": "ОТП Банк", "name:en": "OTP Bank"}, "countryCodes": ["ru", "ua"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/ОТП Банк": {"name": "ОТП Банк", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/otpbank.hu/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q912778", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "ОТП Банк", "brand:en": "OTP Bank", "brand:wikidata": "Q912778", "brand:wikipedia": "en:OTP Bank", "name": "ОТП Банк", "name:en": "OTP Bank"}, "countryCodes": ["ru", "ua"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Обединена Българска Банка": {"name": "Обединена Българска Банка", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/UnitedBulgarianBank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7887555", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Обединена Българска Банка", "brand:en": "United Bulgarian Bank", "brand:wikidata": "Q7887555", "brand:wikipedia": "en:United Bulgarian Bank", "name": "Обединена Българска Банка", "name:en": "United Bulgarian Bank"}, "countryCodes": ["bg"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Открытие": {"name": "Открытие", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/otkritie/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4327204", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Открытие", "brand:wikidata": "Q4327204", "brand:wikipedia": "ru:Банк «Финансовая корпорация Открытие»", "name": "Открытие"}, "countryCodes": ["ru"], "terms": ["банк открытие"], "matchScore": 2, "suggestion": true}, "amenity/bank/Ощадбанк": {"name": "Ощадбанк", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/oschadbank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4340839", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Ощадбанк", "brand:en": "State Savings Bank of Ukraine", "brand:wikidata": "Q4340839", "brand:wikipedia": "uk:Ощадбанк", "name": "Ощадбанк", "name:en": "State Savings Bank of Ukraine"}, "countryCodes": ["ua"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/ПУМБ": {"name": "ПУМБ", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/1085114991370485762/D3vO4DSe_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4341156", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "ПУМБ", "brand:en": "First Ukrainian International Bank", "brand:wikidata": "Q4341156", "brand:wikipedia": "en:First Ukrainian International Bank", "name": "ПУМБ", "name:en": "First Ukrainian International Bank"}, "countryCodes": ["ua"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Почта Банк": {"name": "Почта Банк", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/1054324676284112896/8hNCP82s_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q24930461", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Почта Банк", "brand:en": "Post Bank", "brand:wikidata": "Q24930461", "brand:wikipedia": "en:Post Bank (Russia)", "name": "Почта Банк", "name:en": "Post Bank"}, "countryCodes": ["ru"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Пощенска банка": {"name": "Пощенска банка", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7234083", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Пощенска банка", "brand:wikidata": "Q7234083", "brand:wikipedia": "bg:Пощенска банка", "name": "Пощенска банка", "name:en": "Postbank"}, "countryCodes": ["bg"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Пощенска банка": {"name": "Пощенска банка", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/PostbankBG/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7234083", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Пощенска банка", "brand:wikidata": "Q7234083", "brand:wikipedia": "bg:Пощенска банка", "name": "Пощенска банка", "name:en": "Postbank"}, "countryCodes": ["bg"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/ПриватБанк": {"name": "ПриватБанк", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/privatbank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1515015", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "ПриватБанк", "brand:en": "PrivatBank", "brand:wikidata": "Q1515015", "brand:wikipedia": "uk:ПриватБанк", "name": "ПриватБанк", "name:en": "PrivatBank"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Приднестровский Сбербанк": {"name": "Приднестровский Сбербанк", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4378147", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Приднестровский Сбербанк", "brand:en": "Pridnestrovian Savings Bank", "brand:ru": "Приднестровский Сбербанк", "brand:wikidata": "Q4378147", "brand:wikipedia": "ru:Приднестровский Сбербанк", "name": "Приднестровский Сбербанк", "name:en": "Pridnestrovian Savings Bank", "name:ru": "Приднестровский Сбербанк"}, "countryCodes": ["md"], "terms": ["приднестровский cбербанк"], "matchScore": 2, "suggestion": true}, "amenity/bank/Приорбанк": {"name": "Приорбанк", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/Priorbank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3919658", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Приорбанк", "brand:en": "PriorBank", "brand:wikidata": "Q3919658", "brand:wikipedia": "be:Пріорбанк", "name": "Приорбанк", "name:en": "PriorBank"}, "countryCodes": ["by"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -1745,7 +1757,7 @@ "amenity/bank/Райффайзен Банк Аваль": {"name": "Райффайзен Банк Аваль", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/880303932081352704/d66pHime_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4389243", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Райффайзен Банк Аваль", "brand:en": "Raiffeisen Bank Aval", "brand:wikidata": "Q4389243", "brand:wikipedia": "en:Raiffeisen Bank Aval", "name": "Райффайзен Банк Аваль", "name:en": "Raiffeisen Bank Aval"}, "countryCodes": ["ua"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Росбанк": {"name": "Росбанк", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/1061886098891292672/qw4qUcW2_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1119857", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Росбанк", "brand:en": "Rosbank", "brand:wikidata": "Q1119857", "brand:wikipedia": "en:Rosbank", "name": "Росбанк", "name:en": "Rosbank"}, "countryCodes": ["ru"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Россельхозбанк": {"name": "Россельхозбанк", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/952899724914446336/9itJSe9x_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3920226", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Россельхозбанк", "brand:en": "Rosselkhozbank", "brand:wikidata": "Q3920226", "brand:wikipedia": "en:Russian Agricultural Bank", "name": "Россельхозбанк", "name:en": "Rosselkhozbank"}, "countryCodes": ["ru"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/Русский Стандарт": {"name": "Русский Стандарт", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/1014466369105158144/UyZ584fr_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4400854", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Русский Стандарт", "brand:en": "Russian Standard Bank", "brand:wikidata": "Q4400854", "brand:wikipedia": "en:Russian Standard Bank", "name": "Русский Стандарт", "name:en": "Russian Standard Bank"}, "countryCodes": ["ru"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/Русский Стандарт": {"name": "Русский Стандарт", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/1153224562890432512/yI6eOKN__bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4400854", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Русский Стандарт", "brand:en": "Russian Standard Bank", "brand:wikidata": "Q4400854", "brand:wikipedia": "en:Russian Standard Bank", "name": "Русский Стандарт", "name:en": "Russian Standard Bank"}, "countryCodes": ["ru"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/Сбербанк": {"name": "Сбербанк", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/sberbank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q205012", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Сбербанк", "brand:en": "Sberbank", "brand:ru": "Сбербанк", "brand:wikidata": "Q205012", "brand:wikipedia": "en:Sberbank of Russia", "name": "Сбербанк", "name:en": "Sberbank", "name:ru": "Сбербанк"}, "countryCodes": ["kz", "ru"], "terms": ["cбербанк", "cбербанк россии", "сбербанк россии"], "matchScore": 2, "suggestion": true}, "amenity/bank/Совкомбанк": {"name": "Совкомбанк", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/sovcombank/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4426566", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "Совкомбанк", "brand:en": "Sovcom Bank", "brand:wikidata": "Q4426566", "brand:wikipedia": "ru:Совкомбанк", "name": "Совкомбанк", "name:en": "Sovcom Bank"}, "countryCodes": ["ru"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/УкрСиббанк": {"name": "УкрСиббанк", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/UKRSIBBANK/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1976290", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "УкрСиббанк", "brand:en": "UkrSibbank", "brand:wikidata": "Q1976290", "brand:wikipedia": "en:UkrSibbank", "name": "УкрСиббанк", "name:en": "UkrSibbank"}, "countryCodes": ["ua"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -1768,7 +1780,7 @@ "amenity/bank/بانک اقتصاد نوین": {"name": "بانک اقتصاد نوین", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5323768", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "بانک اقتصاد نوین", "brand:en": "EN Bank", "brand:wikidata": "Q5323768", "brand:wikipedia": "en:EN Bank", "name": "بانک اقتصاد نوین", "name:en": "EN Bank"}, "countryCodes": ["ir"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/بانک انصار": {"name": "بانک انصار", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5862675", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "بانک انصار", "brand:wikidata": "Q5862675", "brand:wikipedia": "fa:بانک انصار", "name": "بانک انصار"}, "countryCodes": ["ir"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/بانک ایران زمین": {"name": "بانک ایران زمین", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5934423", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "بانک ایران زمین", "brand:wikidata": "Q5934423", "brand:wikipedia": "en:Iran Zamin Bank", "name": "بانک ایران زمین"}, "countryCodes": ["ir"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/بانک تجارت": {"name": "بانک تجارت", "icon": "maki-bank", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2F%D9%84%D9%88%DA%AF%D9%88%DB%8C%20%D8%A8%D8%A7%D9%86%DA%A9%20%D8%AA%D8%AC%D8%A7%D8%B1%D8%AA.png&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7695198", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "بانک تجارت", "brand:wikidata": "Q7695198", "brand:wikipedia": "en:Tejarat Bank", "name": "بانک تجارت"}, "countryCodes": ["ir"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/بانک تجارت": {"name": "بانک تجارت", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7695198", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "بانک تجارت", "brand:wikidata": "Q7695198", "brand:wikipedia": "en:Tejarat Bank", "name": "بانک تجارت"}, "countryCodes": ["ir"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/بانک توسعه تعاون": {"name": "بانک توسعه تعاون", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5684450", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "بانک توسعه تعاون", "brand:wikidata": "Q5684450", "brand:wikipedia": "fa:بانک توسعه تعاون", "name": "بانک توسعه تعاون"}, "countryCodes": ["ir"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/بانک رفاه": {"name": "بانک رفاه", "icon": "maki-bank", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FRefah-Bank-Logo.png&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7307083", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "بانک رفاه", "brand:en": "Refah Bank", "brand:wikidata": "Q7307083", "brand:wikipedia": "en:Refah Bank", "name": "بانک رفاه", "name:en": "Refah Bank"}, "countryCodes": ["ir"], "terms": ["بانک رفاه کارگران"], "matchScore": 2, "suggestion": true}, "amenity/bank/بانک سامان": {"name": "بانک سامان", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4117676", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "بانک سامان", "brand:en": "Saman Bank", "brand:wikidata": "Q4117676", "brand:wikipedia": "en:Saman Bank", "name": "بانک سامان", "name:en": "Saman Bank"}, "countryCodes": ["ir"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -1780,7 +1792,7 @@ "amenity/bank/بانک قوامین": {"name": "بانک قوامین", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q10860253", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "بانک قوامین", "brand:en": "Ghavamin Bank", "brand:wikidata": "Q10860253", "brand:wikipedia": "en:Ghavamin Bank", "name": "بانک قوامین", "name:en": "Ghavamin Bank"}, "countryCodes": ["ir"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/بانک مسکن": {"name": "بانک مسکن", "icon": "maki-bank", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FBank%20maskan.jpg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4855942", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "بانک مسکن", "brand:en": "Bank Maskan", "brand:wikidata": "Q4855942", "brand:wikipedia": "en:Bank Maskan", "name": "بانک مسکن", "name:en": "Bank Maskan"}, "countryCodes": ["ir"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/بانک ملت": {"name": "بانک ملت", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4855944", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "بانک ملت", "brand:en": "Bank Mellat", "brand:wikidata": "Q4855944", "brand:wikipedia": "en:Bank Mellat", "name": "بانک ملت", "name:en": "Bank Mellat"}, "countryCodes": ["ir"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/بانک ملی": {"name": "بانک ملی", "icon": "maki-bank", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FMelli%20Bank%20Logo.svg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q806640", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "بانک ملی", "brand:en": "Bank Melli Iran", "brand:wikidata": "Q806640", "brand:wikipedia": "en:Bank Melli Iran", "name": "بانک ملی", "name:en": "Bank Melli Iran"}, "countryCodes": ["ir"], "terms": ["بانک ملی ایران", "ملی"], "matchScore": 2, "suggestion": true}, + "amenity/bank/بانک ملی": {"name": "بانک ملی", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q806640", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "بانک ملی", "brand:en": "Bank Melli Iran", "brand:wikidata": "Q806640", "brand:wikipedia": "en:Bank Melli Iran", "name": "بانک ملی", "name:en": "Bank Melli Iran"}, "countryCodes": ["ir"], "terms": ["بانک ملی ایران", "ملی"], "matchScore": 2, "suggestion": true}, "amenity/bank/بانک مهر اقتصاد": {"name": "بانک مهر اقتصاد", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5942921", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "بانک مهر اقتصاد", "brand:wikidata": "Q5942921", "brand:wikipedia": "fa:بانک مهر اقتصاد", "name": "بانک مهر اقتصاد", "name:en": "Mehr Eqtesad Bank"}, "countryCodes": ["ir"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/بانک پارسیان": {"name": "بانک پارسیان", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2410404", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "بانک پارسیان", "brand:en": "Parsian Bank", "brand:wikidata": "Q2410404", "brand:wikipedia": "en:Parsian Bank", "name": "بانک پارسیان", "name:en": "Parsian Bank"}, "countryCodes": ["ir"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/بانک پاسارگاد": {"name": "بانک پاسارگاد", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4855962", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "بانک پاسارگاد", "brand:en": "Bank Pasargad", "brand:wikidata": "Q4855962", "brand:wikipedia": "en:Bank Pasargad", "name": "بانک پاسارگاد", "name:en": "Bank Pasargad"}, "countryCodes": ["ir"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -1791,7 +1803,7 @@ "amenity/bank/বাংলাদেশ কৃষি ব্যাংক": {"name": "বাংলাদেশ কৃষি ব্যাংক", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q16345932", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "বাংলাদেশ কৃষি ব্যাংক", "brand:wikidata": "Q16345932", "brand:wikipedia": "en:Bangladesh Krishi Bank", "name": "বাংলাদেশ কৃষি ব্যাংক", "name:en": "Bangladesh Krishi Bank"}, "countryCodes": ["bd"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/ธนาคารกรุงเทพ": {"name": "ธนาคารกรุงเทพ", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/371998329537690/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q806483", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "ธนาคารกรุงเทพ", "brand:en": "Bangkok Bank", "brand:th": "ธนาคารกรุงเทพ", "brand:wikidata": "Q806483", "brand:wikipedia": "en:Bangkok Bank", "name": "ธนาคารกรุงเทพ", "name:en": "Bangkok Bank", "name:th": "ธนาคารกรุงเทพ"}, "countryCodes": ["th"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/ธนาคารกรุงไทย": {"name": "ธนาคารกรุงไทย", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/1100959964040814599/Wv9V7iMd_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q962865", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "ธนาคารกรุงไทย", "brand:en": "Krung Thai Bank", "brand:th": "ธนาคารกรุงไทย", "brand:wikidata": "Q962865", "brand:wikipedia": "en:Krung Thai Bank", "name": "ธนาคารกรุงไทย", "name:en": "Krung Thai Bank", "name:th": "ธนาคารกรุงไทย"}, "countryCodes": ["th"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/ธนาคารกสิกรไทย": {"name": "ธนาคารกสิกรไทย", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/1135574794030555137/jPG1Vsfu_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q276557", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "ธนาคารกสิกรไทย", "brand:en": "en:Kasikornbank", "brand:th": "ธนาคารกสิกรไทย", "brand:wikidata": "Q276557", "brand:wikipedia": "en:Kasikornbank", "name": "ธนาคารกสิกรไทย", "name:en": "en:Kasikornbank", "name:th": "ธนาคารกสิกรไทย"}, "countryCodes": ["th"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/ธนาคารกสิกรไทย": {"name": "ธนาคารกสิกรไทย", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/1146600752816648192/7TphMSUQ_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q276557", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "ธนาคารกสิกรไทย", "brand:en": "en:Kasikornbank", "brand:th": "ธนาคารกสิกรไทย", "brand:wikidata": "Q276557", "brand:wikipedia": "en:Kasikornbank", "name": "ธนาคารกสิกรไทย", "name:en": "en:Kasikornbank", "name:th": "ธนาคารกสิกรไทย"}, "countryCodes": ["th"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/ธนาคารออมสิน": {"name": "ธนาคารออมสิน", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6579041", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "ธนาคารออมสิน", "brand:en": "Government Savings Bank", "brand:th": "ธนาคารออมสิน", "brand:wikidata": "Q6579041", "brand:wikipedia": "en:Government Savings Bank (Thailand)", "name": "ธนาคารออมสิน", "name:en": "Government Savings Bank", "name:th": "ธนาคารออมสิน"}, "countryCodes": ["th"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/ธนาคารไทยพาณิชย์": {"name": "ธนาคารไทยพาณิชย์", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/scb.thailand/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2038986", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "ธนาคารไทยพาณิชย์", "brand:en": "Siam Commercial Bank", "brand:th": "ธนาคารไทยพาณิชย์", "brand:wikidata": "Q2038986", "brand:wikipedia": "en:Siam Commercial Bank", "name": "ธนาคารไทยพาณิชย์", "name:en": "Siam Commercial Bank", "name:th": "ธนาคารไทยพาณิชย์"}, "countryCodes": ["th"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/みずほ銀行": {"name": "みずほ銀行", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/902036508672106496/L8rp7WY6_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2882956", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "みずほ銀行", "brand:en": "Mizuho Bank", "brand:ja": "みずほ銀行", "brand:wikidata": "Q2882956", "brand:wikipedia": "en:Mizuho Bank", "name": "みずほ銀行", "name:en": "Mizuho Bank", "name:ja": "みずほ銀行"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -1803,11 +1815,11 @@ "amenity/bank/东亚银行": {"name": "东亚银行", "icon": "maki-bank", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FBank%20of%20East%20Asia%20Logo.svg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q806679", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "东亚银行", "brand:wikidata": "Q806679", "brand:wikipedia": "en:Bank of East Asia", "name": "东亚银行", "name:en": "Bank of East Asia"}, "countryCodes": ["cn"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/中信银行": {"name": "中信银行", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q38960", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "中信银行", "brand:en": "China CITIC Bank", "brand:wikidata": "Q38960", "brand:wikipedia": "en:China CITIC Bank", "name": "中信银行"}, "countryCodes": ["cn"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/中国农业银行": {"name": "中国农业银行", "icon": "maki-bank", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FAgricultural%20Bank%20of%20China%20logo.svg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q26298", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "中国农业银行", "brand:en": "Agricultural Bank of China", "brand:wikidata": "Q26298", "brand:wikipedia": "en:Agricultural Bank of China", "name": "中国农业银行", "name:en": "Agricultural Bank of China"}, "countryCodes": ["cn"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/中国工商银行": {"name": "中国工商银行", "icon": "maki-bank", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FICBC%20logo.png&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q26463", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "中国工商银行", "brand:en": "Industrial and Commercial Bank of China", "brand:wikidata": "Q26463", "brand:wikipedia": "en:Industrial and Commercial Bank of China", "name": "中国工商银行", "name:en": "Industrial and Commercial Bank of China"}, "countryCodes": ["cn"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/中国工商银行": {"name": "中国工商银行", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/icbcglobal/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q26463", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "中国工商银行", "brand:en": "Industrial and Commercial Bank of China", "brand:wikidata": "Q26463", "brand:wikipedia": "en:Industrial and Commercial Bank of China", "name": "中国工商银行", "name:en": "Industrial and Commercial Bank of China"}, "countryCodes": ["cn"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/中国建设银行": {"name": "中国建设银行", "icon": "maki-bank", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FChina%20Construction%20Bank%20logo.svg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q26299", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "中国建设银行", "brand:en": "China Construction Bank", "brand:wikidata": "Q26299", "brand:wikipedia": "en:China Construction Bank", "name": "中国建设银行", "name:en": "China Construction Bank"}, "countryCodes": ["cn"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/中国民生银行": {"name": "中国民生银行", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q911543", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "中国民生银行", "brand:en": "China Minsheng Bank", "brand:wikidata": "Q911543", "brand:wikipedia": "en:China Minsheng Bank", "name": "中国民生银行", "name:en": "China Minsheng Bank"}, "countryCodes": ["cn"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/中国邮政储蓄银行": {"name": "中国邮政储蓄银行", "icon": "maki-bank", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FPostal%20Savings%20Bank%20of%20China%20Logo.svg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q986744", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "中国邮政储蓄银行", "brand:en": "Postal Savings Bank of China", "brand:wikidata": "Q986744", "brand:wikipedia": "en:Postal Savings Bank of China", "name": "中国邮政储蓄银行", "name:en": "Postal Savings Bank of China"}, "countryCodes": ["cn"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/中国银行": {"name": "中国银行", "icon": "maki-bank", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FChinese%20Bank%20of%20China.jpg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q790068", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "中国银行", "brand:en": "Bank of China", "brand:wikidata": "Q790068", "brand:wikipedia": "en:Bank of China", "name": "中国银行", "name:en": "Bank of China"}, "countryCodes": ["cn"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/中国银行": {"name": "中国银行", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/bankofchina.cn/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q790068", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "中国银行", "brand:en": "Bank of China", "brand:wikidata": "Q790068", "brand:wikipedia": "en:Bank of China", "name": "中国银行", "name:en": "Bank of China"}, "countryCodes": ["cn"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/中國信託商業銀行": {"name": "中國信託商業銀行", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5100191", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "中國信託商業銀行", "brand:en": "CTBC Bank", "brand:wikidata": "Q5100191", "brand:wikipedia": "en:CTBC Bank", "name": "中國信託商業銀行", "name:en": "CTBC Bank"}, "countryCodes": ["tw"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/交通银行": {"name": "交通银行", "icon": "maki-bank", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FBank%20of%20Communications%20Logo.svg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q806680", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "交通银行", "brand:en": "Bank of Communications", "brand:wikidata": "Q806680", "brand:wikipedia": "en:Bank of Communications", "name": "交通银行", "name:en": "Bank of Communications"}, "countryCodes": ["cn"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/京城商業銀行": {"name": "京城商業銀行", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q10883132", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "京城商業銀行", "brand:wikidata": "Q10883132", "brand:wikipedia": "zh:京城商業銀行", "name": "京城商業銀行"}, "countryCodes": ["tw"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -1825,7 +1837,7 @@ "amenity/bank/國泰世華商業銀行": {"name": "國泰世華商業銀行", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q702656", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "國泰世華商業銀行", "brand:en": "Cathay United Bank", "brand:wikidata": "Q702656", "brand:wikipedia": "en:Cathay United Bank", "name": "國泰世華商業銀行", "name:en": "Cathay United Bank"}, "countryCodes": ["tw"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/大眾商業銀行": {"name": "大眾商業銀行", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q10937047", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "大眾商業銀行", "brand:en": "Ta Chong Commercial Bank", "brand:wikidata": "Q10937047", "brand:wikipedia": "zh:大眾商業銀行", "name": "大眾商業銀行", "name:en": "Ta Chong Commercial Bank"}, "countryCodes": ["tw"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/安泰商業銀行": {"name": "安泰商業銀行", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q10946952", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "安泰商業銀行", "brand:en": "Entie Commercial Bank", "brand:wikidata": "Q10946952", "brand:wikipedia": "zh:安泰商業銀行", "name": "安泰商業銀行", "name:en": "Entie Commercial Bank"}, "countryCodes": ["tw"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bank/工商银行": {"name": "工商银行", "icon": "maki-bank", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FICBC%20logo.png&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q26463", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "工商银行", "brand:en": "Industrial and Commercial Bank of China", "brand:wikidata": "Q26463", "brand:wikipedia": "en:Industrial and Commercial Bank of China", "name": "工商银行", "name:en": "Industrial and Commercial Bank of China"}, "countryCodes": ["cn"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bank/工商银行": {"name": "工商银行", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/icbcglobal/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q26463", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "工商银行", "brand:en": "Industrial and Commercial Bank of China", "brand:wikidata": "Q26463", "brand:wikipedia": "en:Industrial and Commercial Bank of China", "name": "工商银行", "name:en": "Industrial and Commercial Bank of China"}, "countryCodes": ["cn"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/常陽銀行": {"name": "常陽銀行", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6297774", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "常陽銀行", "brand:wikidata": "Q6297774", "brand:wikipedia": "en:Joyo Bank", "name": "常陽銀行"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/建设银行": {"name": "建设银行", "icon": "maki-bank", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FChina%20Construction%20Bank%20logo.svg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q26299", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "建设银行", "brand:wikidata": "Q26299", "brand:wikipedia": "zh:中国建设银行", "name": "建设银行"}, "countryCodes": ["cn"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/彰化商業銀行": {"name": "彰化商業銀行", "icon": "maki-bank", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FCentral%20Branch%2C%20Chang%20Hwa%20Bank%2020101213.jpg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5071627", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "彰化商業銀行", "brand:en": "Chang Hwa Bank", "brand:wikidata": "Q5071627", "brand:wikipedia": "en:Chang Hwa Bank", "name": "彰化商業銀行", "name:en": "Chang Hwa Bank"}, "countryCodes": ["tw"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -1867,13 +1879,17 @@ "amenity/bureau_de_change/Travelex": {"name": "Travelex", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/TravelexUK/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2337964", "amenity": "bureau_de_change"}, "addTags": {"amenity": "bureau_de_change", "brand": "Travelex", "brand:wikidata": "Q2337964", "brand:wikipedia": "en:Travelex", "name": "Travelex"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/cafe/85°C": {"name": "85°C", "icon": "maki-cafe", "imageURL": "https://graph.facebook.com/85CBakeryCafe/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4644852", "amenity": "cafe"}, "addTags": {"alt_name": "85C", "amenity": "cafe", "brand": "85°C", "brand:wikidata": "Q4644852", "brand:wikipedia": "en:85C Bakery Cafe", "cuisine": "coffee_shop;chinese", "name": "85°C", "takeaway": "yes"}, "countryCodes": ["au", "us"], "terms": ["85 cafe", "85 degrees", "85 degrees c", "85 degrees celsius", "85c bakery cafe", "85c daily cafe", "85oc"], "matchScore": 2, "suggestion": true}, "amenity/cafe/85度C": {"name": "85度C", "icon": "maki-cafe", "imageURL": "https://graph.facebook.com/85CBakeryCafe/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4644852", "amenity": "cafe"}, "addTags": {"amenity": "cafe", "brand": "85度C", "brand:en": "85C Bakery Cafe", "brand:wikidata": "Q4644852", "brand:wikipedia": "en:85C Bakery Cafe", "cuisine": "coffee_shop", "name": "85度C", "name:en": "85C Bakery Cafe", "takeaway": "yes"}, "countryCodes": ["cn", "tw"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/cafe/Aroma Espresso Bar": {"name": "Aroma Espresso Bar", "icon": "maki-cafe", "imageURL": "https://graph.facebook.com/Israel.Aroma/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2909872", "amenity": "cafe"}, "addTags": {"amenity": "cafe", "brand": "Aroma Espresso Bar", "brand:wikidata": "Q2909872", "brand:wikipedia": "en:Aroma Espresso Bar", "cuisine": "coffee_shop", "name": "Aroma Espresso Bar", "takeaway": "yes"}, "countryCodes": ["ca", "kz", "ro", "ua", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/cafe/Barista": {"name": "Barista", "icon": "maki-cafe", "imageURL": "https://graph.facebook.com/BaristaCoffeeCompany/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q644735", "amenity": "cafe"}, "addTags": {"amenity": "cafe", "brand": "Barista", "brand:wikidata": "Q644735", "brand:wikipedia": "en:Barista (company)", "cuisine": "coffee_shop", "name": "Barista", "takeaway": "yes"}, "countryCodes": ["in", "lk", "mv", "np"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/cafe/Beck's Coffe Shop": {"name": "Beck's Coffe Shop", "icon": "maki-cafe", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11191008", "amenity": "cafe"}, "addTags": {"alt_name": "ベックス・コーヒーショップ", "amenity": "cafe", "brand": "Beck's Coffe Shop", "brand:wikidata": "Q11191008", "brand:wikipedia": "ja:Beck's Coffe Shop", "cuisine": "coffee_shop", "name": "Beck's Coffe Shop", "takeaway": "yes"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/cafe/Beck's Coffe Shop": {"name": "Beck's Coffe Shop", "icon": "maki-cafe", "imageURL": "https://pbs.twimg.com/profile_images/773289632230322180/YtO0yEVy_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11191008", "amenity": "cafe"}, "addTags": {"alt_name": "ベックス・コーヒーショップ", "amenity": "cafe", "brand": "Beck's Coffe Shop", "brand:wikidata": "Q11191008", "brand:wikipedia": "ja:Beck's Coffe Shop", "cuisine": "coffee_shop", "name": "Beck's Coffe Shop", "takeaway": "yes"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/cafe/Biggby Coffee": {"name": "Biggby Coffee", "icon": "maki-cafe", "imageURL": "https://graph.facebook.com/BiggbyCoffee.Bhappy/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4906876", "amenity": "cafe"}, "addTags": {"amenity": "cafe", "brand": "Biggby Coffee", "brand:wikidata": "Q4906876", "brand:wikipedia": "en:Biggby Coffee", "cuisine": "coffee_shop", "name": "Biggby Coffee", "takeaway": "yes"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/cafe/Black Rock Coffee": {"name": "Black Rock Coffee", "icon": "maki-cafe", "imageURL": "https://pbs.twimg.com/profile_images/705857382715293696/SEQJftR7_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q64225934", "amenity": "cafe"}, "addTags": {"amenity": "cafe", "brand": "Black Rock Coffee", "brand:wikidata": "Q64225934", "cuisine": "coffee_shop", "name": "Black Rock Coffee", "takeaway": "yes"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/cafe/Bonafide": {"name": "Bonafide", "icon": "maki-cafe", "imageURL": "https://graph.facebook.com/BonafideArgentina/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62122746", "amenity": "cafe"}, "addTags": {"amenity": "cafe", "brand": "Bonafide", "brand:wikidata": "Q62122746", "cuisine": "coffee_shop", "name": "Bonafide", "takeaway": "yes"}, "countryCodes": ["ar", "cl"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/cafe/Bridgehead": {"name": "Bridgehead", "icon": "maki-cafe", "imageURL": "https://pbs.twimg.com/profile_images/1112740662041030656/nX5CaG2O_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4966509", "amenity": "cafe"}, "addTags": {"amenity": "cafe", "brand": "Bridgehead", "brand:wikidata": "Q4966509", "brand:wikipedia": "en:Bridgehead Coffee", "cuisine": "coffee_shop", "name": "Timothy's", "takeaway": "yes"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/cafe/Cafe Coffee Day": {"name": "Cafe Coffee Day", "icon": "maki-cafe", "imageURL": "https://graph.facebook.com/cafecoffeeday/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5017235", "amenity": "cafe"}, "addTags": {"amenity": "cafe", "brand": "Cafe Coffee Day", "brand:wikidata": "Q5017235", "brand:wikipedia": "en:Café Coffee Day", "cuisine": "coffee_shop", "name": "Cafe Coffee Day", "takeaway": "yes"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/cafe/Caffè Nero": {"name": "Caffè Nero", "icon": "maki-cafe", "imageURL": "https://graph.facebook.com/caffenerous/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q675808", "amenity": "cafe"}, "addTags": {"amenity": "cafe", "brand": "Caffè Nero", "brand:wikidata": "Q675808", "brand:wikipedia": "en:Caffè Nero", "cuisine": "coffee_shop", "name": "Caffè Nero", "takeaway": "yes"}, "countryCodes": ["gb", "ie", "tr", "us"], "terms": ["cafe nero"], "matchScore": 2, "suggestion": true}, "amenity/cafe/Café Amazon": {"name": "Café Amazon", "icon": "maki-cafe", "imageURL": "https://graph.facebook.com/cafeamazonofficial/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q43247503", "amenity": "cafe"}, "addTags": {"amenity": "cafe", "brand": "Café Amazon", "brand:wikidata": "Q43247503", "brand:wikipedia": "en:Café Amazon", "cuisine": "coffee_shop", "name": "Café Amazon", "takeaway": "yes"}, "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/cafe/Café Dépôt": {"name": "Café Dépôt", "icon": "maki-cafe", "imageURL": "https://graph.facebook.com/cafedepot.ca/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q64924449", "amenity": "cafe"}, "addTags": {"amenity": "cafe", "brand": "Café Dépôt", "brand:wikidata": "Q64924449", "cuisine": "coffee_shop;cake;bagel;bistro", "name": "Café Dépôt", "takeaway": "yes"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/cafe/Café Martínez": {"name": "Café Martínez", "icon": "maki-cafe", "imageURL": "https://graph.facebook.com/CafeMartinezSitioOficial/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q16540032", "amenity": "cafe"}, "addTags": {"amenity": "cafe", "brand": "Café Martínez", "brand:wikidata": "Q16540032", "brand:wikipedia": "es:Café Martínez", "cuisine": "coffee_shop", "name": "Café Martínez", "takeaway": "yes"}, "countryCodes": ["ar"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/cafe/Caribou Coffee": {"name": "Caribou Coffee", "icon": "maki-cafe", "imageURL": "https://graph.facebook.com/cariboucoffee/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5039494", "amenity": "cafe"}, "addTags": {"amenity": "cafe", "brand": "Caribou Coffee", "brand:wikidata": "Q5039494", "brand:wikipedia": "en:Caribou Coffee", "cuisine": "coffee_shop", "name": "Caribou Coffee", "takeaway": "yes"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/cafe/Chatime": {"name": "Chatime", "icon": "maki-cafe", "imageURL": "https://graph.facebook.com/ChatimeCanada/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q16829306", "amenity": "cafe"}, "addTags": {"amenity": "cafe", "brand": "Chatime", "brand:en": "Chatime", "brand:wikidata": "Q16829306", "brand:wikipedia": "en:Chatime", "brand:zh": "日出茶太", "cuisine": "bubble_tea", "name": "Chatime", "name:en": "Chatime", "name:zh": "日出茶太", "takeaway": "yes"}, "terms": [], "matchScore": 2, "suggestion": true}, @@ -1896,11 +1912,12 @@ "amenity/cafe/Highlands Coffee": {"name": "Highlands Coffee", "icon": "maki-cafe", "imageURL": "https://graph.facebook.com/highlandscoffeevietnam/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5759361", "amenity": "cafe"}, "addTags": {"amenity": "cafe", "brand": "Highlands Coffee", "brand:wikidata": "Q5759361", "brand:wikipedia": "vi:Highlands Coffee", "cuisine": "coffee_shop;vietnamese", "name": "Highlands Coffee", "name:en": "Highlands Coffee", "takeaway": "yes"}, "countryCodes": ["vn"], "terms": ["highlands"], "matchScore": 2, "suggestion": true}, "amenity/cafe/Insomnia": {"name": "Insomnia", "icon": "maki-cafe", "imageURL": "https://graph.facebook.com/InsomniaCoffeeCo/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6038271", "amenity": "cafe"}, "addTags": {"amenity": "cafe", "brand": "Insomnia", "brand:wikidata": "Q6038271", "brand:wikipedia": "en:Insomnia Coffee Company", "cuisine": "coffee_shop", "name": "Insomnia", "takeaway": "yes"}, "countryCodes": ["ie"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/cafe/Joe & The Juice": {"name": "Joe & The Juice", "icon": "maki-cafe", "imageURL": "https://graph.facebook.com/joeandthejuice/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q26221514", "amenity": "cafe"}, "addTags": {"amenity": "cafe", "brand": "Joe & The Juice", "brand:wikidata": "Q26221514", "brand:wikipedia": "en:Joe & The Juice", "cuisine": "coffee_shop", "name": "Joe & The Juice", "takeaway": "yes"}, "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/cafe/La Colombe Coffee Roasters": {"name": "La Colombe Coffee Roasters", "icon": "maki-cafe", "imageURL": "https://graph.facebook.com/lacolombecoffee/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q23461663", "amenity": "cafe"}, "addTags": {"amenity": "cafe", "brand": "La Colombe Coffee Roasters", "brand:wikidata": "Q23461663", "brand:wikipedia": "en:La Colombe Coffee Roasters", "cuisine": "coffee_shop", "name": "La Colombe Coffee Roasters", "short_name": "La Colombe", "takeaway": "yes"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/cafe/Le Pain Quotidien": {"name": "Le Pain Quotidien", "icon": "maki-cafe", "imageURL": "https://graph.facebook.com/lepainquotidienusa/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2046903", "amenity": "cafe"}, "addTags": {"amenity": "cafe", "brand": "Le Pain Quotidien", "brand:wikidata": "Q2046903", "brand:wikipedia": "en:Le Pain Quotidien", "cuisine": "coffee_shop", "name": "Le Pain Quotidien", "takeaway": "yes"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/cafe/Mado": {"name": "Mado", "icon": "maki-cafe", "imageURL": "https://graph.facebook.com/MADOglobal/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q17116336", "amenity": "cafe"}, "addTags": {"amenity": "cafe", "brand": "Mado", "brand:wikidata": "Q17116336", "brand:wikipedia": "en:Mado (food company)", "cuisine": "coffee_shop", "name": "Mado", "takeaway": "yes"}, "countryCodes": ["tr"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/cafe/McCafé": {"name": "McCafé", "icon": "maki-cafe", "imageURL": "https://graph.facebook.com/276517512552782/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3114287", "amenity": "cafe"}, "addTags": {"amenity": "cafe", "brand": "McCafé", "brand:wikidata": "Q3114287", "brand:wikipedia": "en:McCafé", "cuisine": "coffee_shop", "name": "McCafé", "takeaway": "yes"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/cafe/Patisserie Valerie": {"name": "Patisserie Valerie", "icon": "maki-cafe", "imageURL": "https://graph.facebook.com/patisserievalerie/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q22101966", "amenity": "cafe"}, "addTags": {"amenity": "cafe", "brand": "Patisserie Valerie", "brand:wikidata": "Q22101966", "brand:wikipedia": "en:Patisserie Valerie", "cuisine": "coffee_shop", "name": "Patisserie Valerie", "takeaway": "yes"}, "countryCodes": ["gb"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/cafe/Peet's Coffee": {"name": "Peet's Coffee", "icon": "maki-cafe", "imageURL": "https://graph.facebook.com/peets/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1094101", "amenity": "cafe"}, "addTags": {"amenity": "cafe", "brand": "Peet's Coffee", "brand:wikidata": "Q1094101", "brand:wikipedia": "en:Peet's Coffee", "cuisine": "coffee_shop", "name": "Peet's Coffee", "takeaway": "yes"}, "countryCodes": ["us"], "terms": ["peets", "peets coffee & tea", "peets coffee and tea"], "matchScore": 2, "suggestion": true}, + "amenity/cafe/Peet's Coffee": {"name": "Peet's Coffee", "icon": "maki-cafe", "imageURL": "https://graph.facebook.com/peets/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1094101", "amenity": "cafe"}, "addTags": {"amenity": "cafe", "brand": "Peet's Coffee", "brand:wikidata": "Q1094101", "brand:wikipedia": "en:Peet's Coffee", "cuisine": "coffee_shop", "name": "Peet's Coffee", "takeaway": "yes"}, "countryCodes": ["us"], "terms": ["peets", "peets coffee & tea"], "matchScore": 2, "suggestion": true}, "amenity/cafe/Prime": {"name": "Prime", "icon": "maki-cafe", "imageURL": "https://graph.facebook.com/PRIMENATURALFOOD/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62122839", "amenity": "cafe"}, "addTags": {"amenity": "cafe", "brand": "Prime", "brand:wikidata": "Q62122839", "cuisine": "coffee_shop", "name": "Prime", "takeaway": "yes"}, "countryCodes": ["ru"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/cafe/Pronto": {"name": "Pronto", "icon": "maki-cafe", "imageURL": "https://pbs.twimg.com/profile_images/1002458417733120000/lQc9dDWQ_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11336224", "amenity": "cafe"}, "addTags": {"amenity": "cafe", "brand": "Pronto", "brand:wikidata": "Q11336224", "brand:wikipedia": "ja:プロントコーポレーション", "cuisine": "coffee_shop", "name": "Pronto", "name:ja": "プロント", "takeaway": "yes"}, "countryCodes": ["jp"], "terms": ["プロント"], "matchScore": 2, "suggestion": true}, "amenity/cafe/Pumpkin": {"name": "Pumpkin", "icon": "maki-cafe", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q27825961", "amenity": "cafe"}, "addTags": {"amenity": "cafe", "brand": "Pumpkin", "brand:wikidata": "Q27825961", "brand:wikipedia": "en:Pumpkin Café Shop", "cuisine": "coffee_shop", "name": "Pumpkin", "takeaway": "yes"}, "countryCodes": ["gb"], "terms": ["pumpkin cafe", "pumpkin cafe shop"], "matchScore": 2, "suggestion": true}, @@ -1914,7 +1931,8 @@ "amenity/cafe/The Coffee House (Vietnam)": {"name": "The Coffee House (Vietnam)", "icon": "maki-cafe", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FThe%20Coffee%20House%20logo.svg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q60775742", "amenity": "cafe"}, "addTags": {"amenity": "cafe", "brand": "The Coffee House", "brand:wikidata": "Q60775742", "brand:wikipedia": "en:The Coffee House (coffeehouse chain)", "cuisine": "coffee_shop;vietnamese", "name": "The Coffee House", "name:en": "The Coffee House", "takeaway": "yes"}, "countryCodes": ["vn"], "terms": ["coffee house"], "matchScore": 2, "suggestion": true}, "amenity/cafe/The Human Bean": {"name": "The Human Bean", "icon": "maki-cafe", "imageURL": "https://graph.facebook.com/HumanBeanNoCo/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7740821", "amenity": "cafe"}, "addTags": {"amenity": "cafe", "brand": "The Human Bean", "brand:wikidata": "Q7740821", "brand:wikipedia": "en:The Human Bean", "cuisine": "coffee_shop", "name": "The Human Bean", "takeaway": "yes"}, "countryCodes": ["us"], "terms": ["human bean"], "matchScore": 2, "suggestion": true}, "amenity/cafe/Tim Hortons": {"name": "Tim Hortons", "icon": "maki-cafe", "imageURL": "https://graph.facebook.com/TimHortonsUS/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q175106", "amenity": "cafe"}, "addTags": {"amenity": "cafe", "brand": "Tim Hortons", "brand:wikidata": "Q175106", "brand:wikipedia": "en:Tim Hortons", "cuisine": "coffee_shop", "name": "Tim Hortons", "takeaway": "yes"}, "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/cafe/Traveler's Coffee": {"name": "Traveler's Coffee", "icon": "maki-cafe", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4051716", "amenity": "cafe"}, "addTags": {"amenity": "cafe", "brand": "Traveler's Coffee", "brand:wikidata": "Q4051716", "brand:wikipedia": "ru:Traveler’s Coffee", "cuisine": "coffee_shop", "name": "Traveler's Coffee", "takeaway": "yes"}, "countryCodes": ["ru"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/cafe/Timothy's": {"name": "Timothy's", "icon": "maki-cafe", "imageURL": "https://graph.facebook.com/TimothysCafes/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7807011", "amenity": "cafe"}, "addTags": {"amenity": "cafe", "brand": "Timothy's", "brand:wikidata": "Q7807011", "brand:wikipedia": "en:Timothy's World Coffee", "cuisine": "coffee_shop", "name": "Timothy's", "takeaway": "yes"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/cafe/Traveler's Coffee": {"name": "Traveler's Coffee", "icon": "maki-cafe", "imageURL": "https://graph.facebook.com/TravelersCoffeeMoscow/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4051716", "amenity": "cafe"}, "addTags": {"amenity": "cafe", "brand": "Traveler's Coffee", "brand:wikidata": "Q4051716", "brand:wikipedia": "ru:Traveler’s Coffee", "cuisine": "coffee_shop", "name": "Traveler's Coffee", "takeaway": "yes"}, "countryCodes": ["ru"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/cafe/Trung Nguyên Coffee": {"name": "Trung Nguyên Coffee", "icon": "maki-cafe", "imageURL": "https://graph.facebook.com/trungnguyenlegend/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3541154", "amenity": "cafe"}, "addTags": {"amenity": "cafe", "brand": "Trung Nguyên", "brand:wikidata": "Q3541154", "brand:wikipedia": "vi:Trung Nguyên (công ty)", "cuisine": "coffee_shop;vietnamese", "name": "Trung Nguyên Coffee", "name:en": "Trung Nguyen Coffee", "name:vi": "Cà phê Trung Nguyên", "takeaway": "yes"}, "countryCodes": ["vn"], "terms": ["trung nguyen"], "matchScore": 2, "suggestion": true}, "amenity/cafe/Wayne's Coffee": {"name": "Wayne's Coffee", "icon": "maki-cafe", "imageURL": "https://graph.facebook.com/WaynesCoffeeInternational/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2637272", "amenity": "cafe"}, "addTags": {"amenity": "cafe", "brand": "Wayne's Coffee", "brand:wikidata": "Q2637272", "brand:wikipedia": "en:Wayne's Coffee", "cuisine": "coffee_shop", "name": "Wayne's Coffee", "takeaway": "yes"}, "countryCodes": ["fi", "no", "se"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/cafe/Wild Bean Cafe": {"name": "Wild Bean Cafe", "icon": "maki-cafe", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q61804826", "amenity": "cafe"}, "addTags": {"amenity": "cafe", "brand": "Wild Bean Cafe", "brand:wikidata": "Q61804826", "cuisine": "coffee_shop", "name": "Wild Bean Cafe", "takeaway": "yes"}, "terms": [], "matchScore": 2, "suggestion": true}, @@ -1935,7 +1953,7 @@ "amenity/cafe/カフェ・ド・クリエ": {"name": "カフェ・ド・クリエ", "icon": "maki-cafe", "imageURL": "https://graph.facebook.com/pokkacreate/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q17219077", "amenity": "cafe"}, "addTags": {"amenity": "cafe", "brand": "カフェ・ド・クリエ", "brand:en": "Cafe de CRIE", "brand:ja": "カフェ・ド・クリエ", "brand:wikidata": "Q17219077", "brand:wikipedia": "ja:ポッカクリエイト", "cuisine": "coffee_shop", "name": "カフェ・ド・クリエ", "name:en": "Cafe de CRIE", "name:ja": "カフェ・ド・クリエ", "takeaway": "yes"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/cafe/カフェ・ベローチェ": {"name": "カフェ・ベローチェ", "icon": "maki-cafe", "imageURL": "https://graph.facebook.com/ChatnoirCo/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11294597", "amenity": "cafe"}, "addTags": {"amenity": "cafe", "brand": "カフェ・ベローチェ", "brand:en": "CAFFÈ VELOCE", "brand:ja": "カフェ・ベローチェ", "brand:wikidata": "Q11294597", "brand:wikipedia": "ja:カフェ・ベローチェ", "cuisine": "coffee_shop", "name": "カフェ・ベローチェ", "name:en": "CAFFÈ VELOCE", "name:ja": "カフェ・ベローチェ", "takeaway": "yes"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/cafe/コメダ珈琲店": {"name": "コメダ珈琲店", "icon": "maki-cafe", "imageURL": "https://graph.facebook.com/komeda.coffee/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11302679", "amenity": "cafe"}, "addTags": {"amenity": "cafe", "brand": "コメダ珈琲店", "brand:en": "Komeda Coffee Shop", "brand:ja": "コメダ珈琲店", "brand:wikidata": "Q11302679", "brand:wikipedia": "ja:コメダ", "cuisine": "coffee_shop", "name": "コメダ珈琲店", "name:en": "Komeda Coffee Shop", "name:ja": "コメダ珈琲店", "takeaway": "yes"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/cafe/サンマルクカフェ": {"name": "サンマルクカフェ", "icon": "maki-cafe", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11305989", "amenity": "cafe"}, "addTags": {"alt_name:en": "Saint Marc Café", "amenity": "cafe", "brand": "サンマルクカフェ", "brand:en": "ST.MARC CAFÉ", "brand:ja": "サンマルクカフェ", "brand:wikidata": "Q11305989", "brand:wikipedia": "ja:サンマルクホールディングス", "cuisine": "coffee_shop", "name": "サンマルクカフェ", "name:en": "ST.MARC CAFÉ", "name:ja": "サンマルクカフェ", "takeaway": "yes"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/cafe/サンマルクカフェ": {"name": "サンマルクカフェ", "icon": "maki-cafe", "imageURL": "https://graph.facebook.com/saintmarccafephilippines/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11305989", "amenity": "cafe"}, "addTags": {"alt_name:en": "Saint Marc Café", "amenity": "cafe", "brand": "サンマルクカフェ", "brand:en": "ST.MARC CAFÉ", "brand:ja": "サンマルクカフェ", "brand:wikidata": "Q11305989", "brand:wikipedia": "ja:サンマルクホールディングス", "cuisine": "coffee_shop", "name": "サンマルクカフェ", "name:en": "ST.MARC CAFÉ", "name:ja": "サンマルクカフェ", "takeaway": "yes"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/cafe/スターバックス": {"name": "スターバックス", "icon": "maki-cafe", "imageURL": "https://graph.facebook.com/Starbucks/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q37158", "amenity": "cafe"}, "addTags": {"amenity": "cafe", "brand": "スターバックス", "brand:en": "Starbucks", "brand:ja": "スターバックス", "brand:wikidata": "Q37158", "brand:wikipedia": "ja:スターバックス", "cuisine": "coffee_shop", "name": "スターバックス", "name:en": "Starbucks", "name:ja": "スターバックス", "takeaway": "yes"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/cafe/タリーズコーヒー": {"name": "タリーズコーヒー", "icon": "maki-cafe", "imageURL": "https://graph.facebook.com/TullysCoffeeShops/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3541983", "amenity": "cafe"}, "addTags": {"amenity": "cafe", "brand": "タリーズコーヒー", "brand:en": "Tully's Coffee", "brand:ja": "タリーズコーヒー", "brand:wikidata": "Q3541983", "brand:wikipedia": "en:Tully's Coffee", "cuisine": "coffee_shop", "name": "タリーズコーヒー", "name:en": "Tully's Coffee", "name:ja": "タリーズコーヒー", "takeaway": "yes"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/cafe/ドトールコーヒーショップ": {"name": "ドトールコーヒーショップ", "icon": "maki-cafe", "imageURL": "https://graph.facebook.com/Fun.Doutor.Fan/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11322732", "amenity": "cafe"}, "addTags": {"amenity": "cafe", "brand": "ドトールコーヒーショップ", "brand:en": "Doutor", "brand:ja": "ドトールコーヒーショップ", "brand:wikidata": "Q11322732", "brand:wikipedia": "ja:ドトールコーヒーショップ", "cuisine": "coffee_shop", "name": "ドトールコーヒーショップ", "name:en": "Doutor Coffee Shop", "name:ja": "ドトールコーヒーショップ", "takeaway": "yes"}, "countryCodes": ["jp"], "terms": ["ドトールコーヒー"], "matchScore": 2, "suggestion": true}, @@ -1971,17 +1989,21 @@ "amenity/car_sharing/Zipcar": {"name": "Zipcar", "icon": "maki-car", "imageURL": "https://graph.facebook.com/zipcar/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1069924", "amenity": "car_sharing"}, "addTags": {"amenity": "car_sharing", "brand": "Zipcar", "brand:wikidata": "Q1069924", "brand:wikipedia": "en:Zipcar", "name": "Zipcar"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/car_sharing/stadtmobil": {"name": "stadtmobil", "icon": "maki-car", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FStadtmobil%20logo.svg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2327629", "amenity": "car_sharing"}, "addTags": {"amenity": "car_sharing", "brand": "stadtmobil", "brand:wikidata": "Q2327629", "brand:wikipedia": "en:Stadtmobil", "name": "stadtmobil"}, "countryCodes": ["de"], "terms": ["stadtmobil carsharing-station"], "matchScore": 2, "suggestion": true}, "amenity/car_sharing/teilAuto": {"name": "teilAuto", "icon": "maki-car", "imageURL": "https://graph.facebook.com/teilauto/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2400658", "amenity": "car_sharing"}, "addTags": {"amenity": "car_sharing", "brand": "teilAuto", "brand:wikidata": "Q2400658", "brand:wikipedia": "de:TeilAuto", "name": "teilAuto"}, "countryCodes": ["de"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/charging_station/Blink": {"name": "Blink", "icon": "fas-charging-station", "imageURL": "https://graph.facebook.com/blinknetwork/picture?type=large", "geometry": ["point"], "tags": {"brand:wikidata": "Q62065645", "amenity": "charging_station"}, "addTags": {"amenity": "charging_station", "brand": "Blink", "brand:wikidata": "Q62065645", "name": "Blink"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/charging_station/Blink": {"name": "Blink", "icon": "fas-charging-station", "imageURL": "https://abs.twimg.com/sticky/default_profile_images/default_profile_bigger.png", "geometry": ["point"], "tags": {"brand:wikidata": "Q62065645", "amenity": "charging_station"}, "addTags": {"amenity": "charging_station", "brand": "Blink", "brand:wikidata": "Q62065645", "name": "Blink"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/charging_station/ChargePoint": {"name": "ChargePoint", "icon": "fas-charging-station", "imageURL": "https://graph.facebook.com/ChargePoint/picture?type=large", "geometry": ["point"], "tags": {"brand:wikidata": "Q5176149", "amenity": "charging_station"}, "addTags": {"amenity": "charging_station", "brand": "ChargePoint", "brand:wikidata": "Q5176149", "brand:wikipedia": "en:ChargePoint", "name": "ChargePoint"}, "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/charging_station/Circuit électrique": {"name": "Circuit électrique", "icon": "fas-charging-station", "imageURL": "https://graph.facebook.com/lecircuitelectrique/picture?type=large", "geometry": ["point"], "tags": {"brand:wikidata": "Q64969699", "amenity": "charging_station"}, "addTags": {"amenity": "charging_station", "brand": "Circuit électrique", "brand:wikidata": "Q64969699", "name": "Circuit électrique"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/charging_station/E-WALD": {"name": "E-WALD", "icon": "fas-charging-station", "imageURL": "https://graph.facebook.com/E.WALD.emobility/picture?type=large", "geometry": ["point"], "tags": {"brand:wikidata": "Q61804335", "amenity": "charging_station"}, "addTags": {"amenity": "charging_station", "brand": "E-WALD", "brand:wikidata": "Q61804335", "name": "E-WALD"}, "countryCodes": ["de"], "terms": ["e-wald ladestation"], "matchScore": 2, "suggestion": true}, "amenity/charging_station/Enel": {"name": "Enel", "icon": "fas-charging-station", "imageURL": "https://graph.facebook.com/enelsharing/picture?type=large", "geometry": ["point"], "tags": {"brand:wikidata": "Q651222", "amenity": "charging_station"}, "addTags": {"amenity": "charging_station", "brand": "Enel", "brand:wikidata": "Q651222", "brand:wikipedia": "en:Enel", "name": "Enel"}, "countryCodes": ["it"], "terms": ["enel - stazione di ricarica"], "matchScore": 2, "suggestion": true}, + "amenity/charging_station/FLO": {"name": "FLO", "icon": "fas-charging-station", "imageURL": "https://graph.facebook.com/flonetwork/picture?type=large", "geometry": ["point"], "tags": {"brand:wikidata": "Q64971203", "amenity": "charging_station"}, "addTags": {"amenity": "charging_station", "brand": "FLO", "brand:wikidata": "Q64971203", "name": "FLO"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/charging_station/Source London": {"name": "Source London", "icon": "fas-charging-station", "imageURL": "https://graph.facebook.com/SourceLondon/picture?type=large", "geometry": ["point"], "tags": {"brand:wikidata": "Q7565133", "amenity": "charging_station"}, "addTags": {"amenity": "charging_station", "brand": "Source London", "brand:wikidata": "Q7565133", "brand:wikipedia": "en:Source London", "name": "Source London"}, "countryCodes": ["gb"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/charging_station/Tesla Supercharger": {"name": "Tesla Supercharger", "icon": "fas-charging-station", "imageURL": "https://pbs.twimg.com/profile_images/489192650474414080/4RxZxsud_bigger.png", "geometry": ["point"], "tags": {"brand:wikidata": "Q17089620", "amenity": "charging_station"}, "addTags": {"amenity": "charging_station", "brand": "Tesla Supercharger", "brand:wikidata": "Q17089620", "brand:wikipedia": "en:Tesla Supercharger", "name": "Tesla Supercharger"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/charging_station/eVgo": {"name": "eVgo", "icon": "fas-charging-station", "imageURL": "https://pbs.twimg.com/profile_images/1072541771777888256/E1Ma7jGm_bigger.jpg", "geometry": ["point"], "tags": {"brand:wikidata": "Q61803820", "amenity": "charging_station"}, "addTags": {"amenity": "charging_station", "brand": "eVgo", "brand:wikidata": "Q61803820", "name": "eVgo"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/childcare/Kids 'R' Kids": {"name": "Kids 'R' Kids", "icon": "fas-child", "imageURL": "https://graph.facebook.com/kidsrkidscorporate/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q65560342", "amenity": "childcare"}, "addTags": {"after_school": "yes", "amenity": "childcare", "brand": "Kids 'R' Kids", "brand:wikidata": "Q65560342", "grades": "PK", "name": "Kids 'R' Kids", "nursery": "yes", "official_name": "Kids 'R' Kids Learning Academies", "preschool": "yes"}, "countryCodes": ["us"], "terms": ["kids are kids"], "matchScore": 2, "suggestion": true}, "amenity/childcare/YMCA Child Care": {"name": "YMCA Child Care", "icon": "fas-child", "imageURL": "https://graph.facebook.com/YMCA/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q157169", "amenity": "childcare"}, "addTags": {"amenity": "childcare", "brand": "YMCA", "brand:wikidata": "Q157169", "brand:wikipedia": "en:YMCA", "name": "YMCA Child Care"}, "countryCodes": ["us"], "terms": ["ymca", "ymca child care center"], "matchScore": 2, "suggestion": true}, "amenity/cinema/109シネマズ": {"name": "109シネマズ", "icon": "maki-cinema", "imageURL": "https://graph.facebook.com/438297009664571/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q10854269", "amenity": "cinema"}, "addTags": {"amenity": "cinema", "brand": "109シネマズ", "brand:en": "109 Cinemas", "brand:ja": "109シネマズ", "brand:wikidata": "Q10854269", "brand:wikipedia": "ja:109シネマズ", "name": "109シネマズ", "name:en": "109 Cinemas", "name:ja": "109シネマズ"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/cinema/AMC": {"name": "AMC", "icon": "maki-cinema", "imageURL": "https://graph.facebook.com/amctheatres/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q294721", "amenity": "cinema"}, "addTags": {"amenity": "cinema", "brand": "AMC", "brand:wikidata": "Q294721", "brand:wikipedia": "en:AMC Theatres", "name": "AMC"}, "countryCodes": ["us"], "terms": ["amc cinema", "amc cinemas", "amc theater", "amc theaters", "amc theatre", "amc theatres"], "matchScore": 2, "suggestion": true}, - "amenity/cinema/B&B Theatres": {"name": "B&B Theatres", "icon": "maki-cinema", "imageURL": "https://pbs.twimg.com/profile_images/796752289859969025/6La-tnNc_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4833576", "amenity": "cinema"}, "addTags": {"amenity": "cinema", "brand": "B&B Theatres", "brand:wikidata": "Q4833576", "brand:wikipedia": "en:B&B Theatres", "name": "B&B Theatres", "short_name": "B&B"}, "countryCodes": ["us"], "terms": ["b and b", "b and b theatres", "b&b theaters"], "matchScore": 2, "suggestion": true}, + "amenity/cinema/B&B Theatres": {"name": "B&B Theatres", "icon": "maki-cinema", "imageURL": "https://pbs.twimg.com/profile_images/796752289859969025/6La-tnNc_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4833576", "amenity": "cinema"}, "addTags": {"amenity": "cinema", "brand": "B&B Theatres", "brand:wikidata": "Q4833576", "brand:wikipedia": "en:B&B Theatres", "name": "B&B Theatres", "short_name": "B&B"}, "countryCodes": ["us"], "terms": ["b&b theaters"], "matchScore": 2, "suggestion": true}, + "amenity/cinema/Caribbean Cinemas": {"name": "Caribbean Cinemas", "icon": "maki-cinema", "imageURL": "https://graph.facebook.com/caribbeancinemas/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5039364", "amenity": "cinema"}, "addTags": {"amenity": "cinema", "brand": "Caribbean Cinemas", "brand:wikidata": "Q5039364", "brand:wikipedia": "en:Caribbean Cinemas", "name": "Caribbean Cinemas"}, "countryCodes": ["ag", "do", "fr", "gy", "kn", "lc", "nl", "pa", "tt", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/cinema/Century Theatres": {"name": "Century Theatres", "icon": "maki-cinema", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FCentury%20Theater.jpg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2946307", "amenity": "cinema"}, "addTags": {"amenity": "cinema", "brand": "Century Theatres", "brand:wikidata": "Q2946307", "brand:wikipedia": "en:Century Theatres", "name": "Century Theatres", "short_name": "Century"}, "countryCodes": ["us"], "terms": ["century theater", "century theaters", "century theatre"], "matchScore": 2, "suggestion": true}, "amenity/cinema/CineStar": {"name": "CineStar", "icon": "maki-cinema", "imageURL": "https://graph.facebook.com/CineStarDE/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q321889", "amenity": "cinema"}, "addTags": {"amenity": "cinema", "brand": "CineStar", "brand:wikidata": "Q321889", "brand:wikipedia": "de:Cinestar", "name": "CineStar"}, "countryCodes": ["de"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/cinema/Cinema City": {"name": "Cinema City", "icon": "maki-cinema", "imageURL": "https://graph.facebook.com/CinemaCityPoland/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q543651", "amenity": "cinema"}, "addTags": {"amenity": "cinema", "brand": "Cinema City", "brand:wikidata": "Q543651", "brand:wikipedia": "en:Cinema City International", "name": "Cinema City"}, "countryCodes": ["cz", "hu", "pl", "ro"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -1990,12 +2012,12 @@ "amenity/cinema/Cinemaxx (Indonesia)": {"name": "Cinemaxx (Indonesia)", "icon": "maki-cinema", "imageURL": "https://graph.facebook.com/cinemaxxtheater/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q19942740", "amenity": "cinema"}, "addTags": {"amenity": "cinema", "brand": "Cinemaxx", "brand:wikidata": "Q19942740", "brand:wikipedia": "id:Cinemaxx", "name": "Cinemaxx"}, "countryCodes": ["id"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/cinema/Cinemex": {"name": "Cinemex", "icon": "maki-cinema", "imageURL": "https://graph.facebook.com/Cinemex/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3333072", "amenity": "cinema"}, "addTags": {"amenity": "cinema", "brand": "Cinemex", "brand:wikidata": "Q3333072", "brand:wikipedia": "en:Cinemex", "name": "Cinemex"}, "countryCodes": ["mx"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/cinema/Cineplanet": {"name": "Cineplanet", "icon": "maki-cinema", "imageURL": "https://graph.facebook.com/cineplanet/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5769680", "amenity": "cinema"}, "addTags": {"amenity": "cinema", "brand": "Cineplanet", "brand:wikidata": "Q5769680", "brand:wikipedia": "es:Cineplanet", "name": "Cineplanet"}, "countryCodes": ["cl", "pe"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/cinema/Cineplexx": {"name": "Cineplexx", "icon": "maki-cinema", "imageURL": "https://pbs.twimg.com/profile_images/1125406971023306754/aVpG7gAl_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q873340", "amenity": "cinema"}, "addTags": {"amenity": "cinema", "brand": "Cineplexx", "brand:wikidata": "Q873340", "brand:wikipedia": "en:Cineplexx Cinemas", "name": "Cineplexx"}, "countryCodes": ["at", "si"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/cinema/Cineplexx": {"name": "Cineplexx", "icon": "maki-cinema", "imageURL": "https://graph.facebook.com/cineplexxAT/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q873340", "amenity": "cinema"}, "addTags": {"amenity": "cinema", "brand": "Cineplexx", "brand:wikidata": "Q873340", "brand:wikipedia": "en:Cineplexx Cinemas", "name": "Cineplexx"}, "countryCodes": ["at", "si"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/cinema/Cinepolis": {"name": "Cinepolis", "icon": "maki-cinema", "imageURL": "https://graph.facebook.com/cinepolisbrasil/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5686673", "amenity": "cinema"}, "addTags": {"amenity": "cinema", "brand": "Cinepolis", "brand:wikidata": "Q5686673", "brand:wikipedia": "en:Cinépolis", "name": "Cinepolis"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/cinema/Cineworld": {"name": "Cineworld", "icon": "maki-cinema", "imageURL": "https://graph.facebook.com/cineworld/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5120901", "amenity": "cinema"}, "addTags": {"amenity": "cinema", "brand": "Cineworld", "brand:wikidata": "Q5120901", "brand:wikipedia": "en:Cineworld", "name": "Cineworld"}, "countryCodes": ["gb"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/cinema/Event": {"name": "Event", "icon": "maki-cinema", "imageURL": "https://pbs.twimg.com/profile_images/1130630166344945664/zjkVbEAk_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5416698", "amenity": "cinema"}, "addTags": {"amenity": "cinema", "brand": "Event", "brand:wikidata": "Q5416698", "brand:wikipedia": "en:Event Cinemas", "name": "Event", "official_name": "Event Cinemas"}, "countryCodes": ["au", "nz"], "terms": ["event cinema"], "matchScore": 2, "suggestion": true}, + "amenity/cinema/Event": {"name": "Event", "icon": "maki-cinema", "imageURL": "https://graph.facebook.com/EventCinemas/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5416698", "amenity": "cinema"}, "addTags": {"amenity": "cinema", "brand": "Event", "brand:wikidata": "Q5416698", "brand:wikipedia": "en:Event Cinemas", "name": "Event", "official_name": "Event Cinemas"}, "countryCodes": ["au", "nz"], "terms": ["event cinema"], "matchScore": 2, "suggestion": true}, "amenity/cinema/Harkins Theatres": {"name": "Harkins Theatres", "icon": "maki-cinema", "imageURL": "https://graph.facebook.com/harkinstheatres/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5658199", "amenity": "cinema"}, "addTags": {"amenity": "cinema", "brand": "Harkins Theatres", "brand:wikidata": "Q5658199", "brand:wikipedia": "en:Harkins Theatres", "name": "Harkins Theatres", "short_name": "Harkins"}, "countryCodes": ["us"], "terms": ["harkins theater", "harkins theaters", "harkins theatre"], "matchScore": 2, "suggestion": true}, - "amenity/cinema/Hoyts": {"name": "Hoyts", "icon": "maki-cinema", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FHOYTS%20LOGO%20RED-01.png&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5922976", "amenity": "cinema"}, "addTags": {"amenity": "cinema", "brand": "Hoyts", "brand:wikidata": "Q5922976", "brand:wikipedia": "en:Hoyts", "name": "Hoyts"}, "countryCodes": ["au", "nz"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/cinema/Hoyts": {"name": "Hoyts", "icon": "maki-cinema", "imageURL": "https://graph.facebook.com/hoytsaustralia/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5922976", "amenity": "cinema"}, "addTags": {"amenity": "cinema", "brand": "Hoyts", "brand:wikidata": "Q5922976", "brand:wikipedia": "en:Hoyts", "name": "Hoyts"}, "countryCodes": ["au", "nz"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/cinema/Landmark Theatres": {"name": "Landmark Theatres", "icon": "maki-cinema", "imageURL": "https://graph.facebook.com/LandmarkTheatres/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6484805", "amenity": "cinema"}, "addTags": {"amenity": "cinema", "brand": "Landmark Theatres", "brand:wikidata": "Q6484805", "brand:wikipedia": "en:Landmark Theatres", "name": "Landmark Theatres", "short_name": "Landmark"}, "countryCodes": ["us"], "terms": ["landmark theater", "landmark theaters", "landmark theatre"], "matchScore": 2, "suggestion": true}, "amenity/cinema/MOVIX": {"name": "MOVIX", "icon": "maki-cinema", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11532184", "amenity": "cinema"}, "addTags": {"amenity": "cinema", "brand": "MOVIX", "brand:wikidata": "Q11532184", "brand:wikipedia": "ja:松竹マルチプレックスシアターズ", "name": "MOVIX", "official_name": "松竹マルチプレックスシアターズ", "official_name:en": "Shochiku Multiplex Theatres"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/cinema/Marcus Cinema": {"name": "Marcus Cinema", "icon": "maki-cinema", "imageURL": "https://graph.facebook.com/marcustheatres/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q64083352", "amenity": "cinema"}, "addTags": {"amenity": "cinema", "brand": "Marcus Cinema", "brand:wikidata": "Q64083352", "name": "Marcus Cinema", "short_name": "Marcus"}, "countryCodes": ["us"], "terms": ["marcus cinemas", "marcus theater", "marcus theaters", "marcus theatre", "marcus theatres"], "matchScore": 2, "suggestion": true}, @@ -2004,22 +2026,25 @@ "amenity/cinema/Odeon": {"name": "Odeon", "icon": "maki-cinema", "imageURL": "https://graph.facebook.com/ODEON/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6127470", "amenity": "cinema"}, "addTags": {"amenity": "cinema", "brand": "Odeon", "brand:wikidata": "Q6127470", "brand:wikipedia": "en:Odeon Cinemas", "name": "Odeon"}, "countryCodes": ["gb", "gr", "ie", "it"], "terms": ["odeon cinema"], "matchScore": 2, "suggestion": true}, "amenity/cinema/Regal Cinemas": {"name": "Regal Cinemas", "icon": "maki-cinema", "imageURL": "https://graph.facebook.com/RegalMovies/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q835638", "amenity": "cinema"}, "addTags": {"amenity": "cinema", "brand": "Regal Cinemas", "brand:wikidata": "Q835638", "brand:wikipedia": "en:Regal Cinemas", "name": "Regal Cinemas", "short_name": "Regal"}, "countryCodes": ["us"], "terms": ["regal cinema"], "matchScore": 2, "suggestion": true}, "amenity/cinema/Showcase Cinemas": {"name": "Showcase Cinemas", "icon": "maki-cinema", "imageURL": "https://graph.facebook.com/ShowcaseUS/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7503170", "amenity": "cinema"}, "addTags": {"amenity": "cinema", "brand": "Showcase Cinemas", "brand:wikidata": "Q7503170", "brand:wikipedia": "en:Showcase Cinemas", "name": "Showcase Cinemas", "short_name": "Showcase"}, "countryCodes": ["ar", "gb", "us"], "terms": ["showcase cinema"], "matchScore": 2, "suggestion": true}, - "amenity/cinema/TOHOシネマズ": {"name": "TOHOシネマズ", "icon": "maki-cinema", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11235261", "amenity": "cinema"}, "addTags": {"amenity": "cinema", "brand": "TOHOシネマズ", "brand:en": "TOHO CINEMAS", "brand:ja": "TOHOシネマズ", "brand:wikidata": "Q11235261", "brand:wikipedia": "ja:TOHOシネマズ", "name": "TOHOシネマズ", "name:en": "Toho Cinemas", "name:ja": "TOHOシネマズ", "short_name": "TOHO"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/cinema/TOHOシネマズ": {"name": "TOHOシネマズ", "icon": "maki-cinema", "imageURL": "https://graph.facebook.com/tohocinemasmagagine/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11235261", "amenity": "cinema"}, "addTags": {"amenity": "cinema", "brand": "TOHOシネマズ", "brand:en": "TOHO CINEMAS", "brand:ja": "TOHOシネマズ", "brand:wikidata": "Q11235261", "brand:wikipedia": "ja:TOHOシネマズ", "name": "TOHOシネマズ", "name:en": "Toho Cinemas", "name:ja": "TOHOシネマズ", "short_name": "TOHO"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/cinema/The Space Cinema": {"name": "The Space Cinema", "icon": "maki-cinema", "imageURL": "https://graph.facebook.com/TheSpaceCinema/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3989406", "amenity": "cinema"}, "addTags": {"amenity": "cinema", "brand": "The Space Cinema", "brand:wikidata": "Q3989406", "brand:wikipedia": "it:The Space Cinema", "name": "The Space Cinema"}, "countryCodes": ["it"], "terms": ["the space"], "matchScore": 2, "suggestion": true}, "amenity/cinema/Vue (IrelandAndUK)": {"name": "Vue (IrelandAndUK)", "icon": "maki-cinema", "imageURL": "https://graph.facebook.com/VueCinemas/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2535134", "amenity": "cinema"}, "addTags": {"amenity": "cinema", "brand": "Vue", "brand:wikidata": "Q2535134", "brand:wikipedia": "en:Vue Cinemas", "name": "Vue"}, "countryCodes": ["gb", "ie"], "terms": ["vue cinema", "vue cinemas"], "matchScore": 2, "suggestion": true}, "amenity/cinema/Vue (Netherlands)": {"name": "Vue (Netherlands)", "icon": "maki-cinema", "imageURL": "https://graph.facebook.com/vuecinemasnl/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2421690", "amenity": "cinema"}, "addTags": {"amenity": "cinema", "brand": "Vue", "brand:wikidata": "Q2421690", "brand:wikipedia": "nl:Vue (bioscoopketen)", "name": "Vue"}, "countryCodes": ["nl"], "terms": ["vue cinema"], "matchScore": 2, "suggestion": true}, - "amenity/cinema/イオンシネマ": {"name": "イオンシネマ", "icon": "maki-cinema", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q17192792", "amenity": "cinema"}, "addTags": {"amenity": "cinema", "brand": "イオンシネマ", "brand:en": "AEON Cinema", "brand:ja": "イオンシネマ", "brand:wikidata": "Q17192792", "brand:wikipedia": "ja:イオンエンターテイメント", "name": "イオンシネマ", "name:en": "AEON Cinema", "name:ja": "イオンシネマ"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/cinema/イオンシネマ": {"name": "イオンシネマ", "icon": "maki-cinema", "imageURL": "https://graph.facebook.com/aeoncinema/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q17192792", "amenity": "cinema"}, "addTags": {"amenity": "cinema", "brand": "イオンシネマ", "brand:en": "AEON Cinema", "brand:ja": "イオンシネマ", "brand:wikidata": "Q17192792", "brand:wikipedia": "ja:イオンエンターテイメント", "name": "イオンシネマ", "name:en": "AEON Cinema", "name:ja": "イオンシネマ"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/cinema/ユナイテッド・シネマ": {"name": "ユナイテッド・シネマ", "icon": "maki-cinema", "imageURL": "https://graph.facebook.com/unitedcinemasgroup/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11345629", "amenity": "cinema"}, "addTags": {"amenity": "cinema", "brand": "ユナイテッド・シネマ", "brand:en": "United Cinemas", "brand:ja": "ユナイテッド・シネマ", "brand:wikidata": "Q11345629", "brand:wikipedia": "ja:ユナイテッド・シネマ", "name": "ユナイテッド・シネマ", "name:en": "United Cinemas", "name:ja": "ユナイテッド・シネマ"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/clinic/CityMD": {"name": "CityMD", "icon": "maki-doctor", "imageURL": "https://graph.facebook.com/CityMD/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q22295471", "amenity": "clinic"}, "addTags": {"amenity": "clinic", "brand": "CityMD", "brand:wikidata": "Q22295471", "brand:wikipedia": "en:CityMD", "healthcare": "clinic", "name": "CityMD"}, "reference": {"key": "amenity", "value": "clinic"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/clinic/DaVita Dialysis": {"name": "DaVita Dialysis", "icon": "maki-doctor", "imageURL": "https://graph.facebook.com/davitakidneycare/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5207184", "amenity": "clinic"}, "addTags": {"amenity": "clinic", "brand": "DaVita Dialysis", "brand:wikidata": "Q5207184", "healthcare": "dialysis", "healthcare:speciality": "dialysis", "name": "DaVita Dialysis"}, "reference": {"key": "amenity", "value": "clinic"}, "countryCodes": ["us"], "terms": ["davita", "davita kidney care"], "matchScore": 2, "suggestion": true}, "amenity/clinic/Dialysis Clinic": {"name": "Dialysis Clinic", "icon": "maki-doctor", "imageURL": "https://graph.facebook.com/DialysisClinicInc/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5270633", "amenity": "clinic"}, "addTags": {"amenity": "clinic", "brand": "Dialysis Clinic", "brand:wikidata": "Q5270633", "brand:wikipedia": "en:Dialysis Clinic, Inc.", "healthcare": "dialysis", "healthcare:speciality": "dialysis", "name": "Dialysis Clinic", "short_name": "DCI"}, "reference": {"key": "amenity", "value": "clinic"}, "countryCodes": ["us"], "terms": ["dialysis clinic inc"], "matchScore": 2, "suggestion": true}, "amenity/clinic/Fresenius Kidney Care": {"name": "Fresenius Kidney Care", "icon": "maki-doctor", "imageURL": "https://graph.facebook.com/freseniuskidneycare/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q650259", "amenity": "clinic"}, "addTags": {"amenity": "clinic", "brand": "Fresenius Kidney Care", "brand:wikidata": "Q650259", "brand:wikipedia": "en:Fresenius Medical Care", "healthcare": "dialysis", "healthcare:speciality": "dialysis", "name": "Fresenius Kidney Care"}, "reference": {"key": "amenity", "value": "clinic"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/clinic/Fresenius Medical Care": {"name": "Fresenius Medical Care", "icon": "maki-doctor", "imageURL": "https://graph.facebook.com/freseniuskidneycare/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q650259", "amenity": "clinic"}, "addTags": {"amenity": "clinic", "brand": "Fresenius Medical Care", "brand:wikidata": "Q650259", "brand:wikipedia": "en:Fresenius Medical Care", "healthcare": "dialysis", "healthcare:speciality": "dialysis", "name": "Fresenius Medical Care"}, "reference": {"key": "amenity", "value": "clinic"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/clinic/Planned Parenthood": {"name": "Planned Parenthood", "icon": "maki-doctor", "imageURL": "https://graph.facebook.com/PlannedParenthood/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2553262", "amenity": "clinic"}, "addTags": {"amenity": "clinic", "brand": "Planned Parenthood", "brand:wikidata": "Q2553262", "healthcare": "counselling", "healthcare:counselling": "antenatal;sexual", "name": "Planned Parenthood"}, "reference": {"key": "amenity", "value": "clinic"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/clinic/Satellite Healthcare": {"name": "Satellite Healthcare", "icon": "maki-doctor", "imageURL": "https://graph.facebook.com/satellitehealthcare/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q50039787", "amenity": "clinic"}, "addTags": {"amenity": "clinic", "brand": "Satellite Healthcare", "brand:wikidata": "Q50039787", "healthcare": "dialysis", "healthcare:speciality": "dialysis", "name": "Satellite Healthcare"}, "reference": {"key": "amenity", "value": "clinic"}, "countryCodes": ["us"], "terms": ["satellite", "satellite dialysis"], "matchScore": 2, "suggestion": true}, "amenity/clinic/Terveystalo": {"name": "Terveystalo", "icon": "maki-doctor", "imageURL": "https://graph.facebook.com/Terveystalo/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11897034", "amenity": "clinic"}, "addTags": {"amenity": "clinic", "brand": "Terveystalo", "brand:wikidata": "Q11897034", "brand:wikipedia": "fi:Terveystalo", "healthcare": "clinic", "name": "Terveystalo"}, "reference": {"key": "amenity", "value": "clinic"}, "countryCodes": ["fi"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/clinic/VA Clinic": {"name": "VA Clinic", "icon": "maki-doctor", "imageURL": "https://graph.facebook.com/VeteransHealth/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6580225", "amenity": "clinic"}, "addTags": {"amenity": "clinic", "brand": "VA", "brand:wikidata": "Q6580225", "brand:wikipedia": "en:Veterans Health Administration", "healthcare": "clinic", "healthcare:for": "veterans", "name": "VA Clinic", "short_name": "VA"}, "reference": {"key": "amenity", "value": "clinic"}, "countryCodes": ["us"], "terms": ["department of veterans affairs clinic", "veterans administration", "veterans administration clinic", "veterans affairs", "veterans affairs clinic"], "matchScore": 2, "suggestion": true}, "amenity/dentist/Aspen Dental": {"name": "Aspen Dental", "icon": "maki-dentist", "imageURL": "https://graph.facebook.com/AspenDental/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4807808", "amenity": "dentist"}, "addTags": {"amenity": "dentist", "brand": "Aspen Dental", "brand:wikidata": "Q4807808", "brand:wikipedia": "en:Aspen Dental", "healthcare": "dentist", "name": "Aspen Dental"}, "reference": {"key": "amenity", "value": "dentist"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/dentist/Comfort Dental": {"name": "Comfort Dental", "icon": "maki-dentist", "imageURL": "https://graph.facebook.com/comfortdental/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q22079521", "amenity": "dentist"}, "addTags": {"amenity": "dentist", "brand": "Comfort Dental", "brand:wikidata": "Q22079521", "brand:wikipedia": "en:Comfort Dental", "healthcare": "dentist", "name": "Comfort Dental"}, "reference": {"key": "amenity", "value": "dentist"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/dentist/Kool Smiles": {"name": "Kool Smiles", "icon": "maki-dentist", "imageURL": "https://graph.facebook.com/MyKoolSmiles/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6430587", "amenity": "dentist"}, "addTags": {"amenity": "dentist", "brand": "Kool Smiles", "brand:wikidata": "Q6430587", "brand:wikipedia": "en:Kool Smiles", "healthcare": "dentist", "name": "Kool Smiles"}, "reference": {"key": "amenity", "value": "dentist"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/dentist/Western Dental": {"name": "Western Dental", "icon": "maki-dentist", "imageURL": "https://graph.facebook.com/WesternDental/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q64211989", "amenity": "dentist"}, "addTags": {"alt_name": "Western Dental & Orthodontics", "amenity": "dentist", "brand": "Western Dental", "brand:wikidata": "Q64211989", "brand:wikipedia": "en:Western Dental", "healthcare": "dentist", "name": "Western Dental"}, "reference": {"key": "amenity", "value": "dentist"}, "countryCodes": ["us"], "terms": ["western dental and orthodontics"], "matchScore": 2, "suggestion": true}, + "amenity/dentist/Western Dental": {"name": "Western Dental", "icon": "maki-dentist", "imageURL": "https://graph.facebook.com/WesternDental/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q64211989", "amenity": "dentist"}, "addTags": {"alt_name": "Western Dental & Orthodontics", "amenity": "dentist", "brand": "Western Dental", "brand:wikidata": "Q64211989", "brand:wikipedia": "en:Western Dental", "healthcare": "dentist", "name": "Western Dental"}, "reference": {"key": "amenity", "value": "dentist"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/doctors/MinuteClinic": {"name": "MinuteClinic", "icon": "maki-doctor", "imageURL": "https://graph.facebook.com/minuteclinic/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6871141", "amenity": "doctors"}, "addTags": {"amenity": "doctors", "brand": "MinuteClinic", "brand:wikidata": "Q6871141", "brand:wikipedia": "en:MinuteClinic", "healthcare": "doctor", "healthcare:speciality": "community", "name": "MinuteClinic"}, "reference": {"key": "amenity", "value": "doctors"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/doctors/RediClinic": {"name": "RediClinic", "icon": "maki-doctor", "imageURL": "https://graph.facebook.com/RediClinic/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q64138408", "amenity": "doctors"}, "addTags": {"amenity": "doctors", "brand": "RediClinic", "brand:wikidata": "Q64138408", "healthcare": "doctor", "healthcare:speciality": "community", "name": "RediClinic"}, "reference": {"key": "amenity", "value": "doctors"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/doctors/The Little Clinic": {"name": "The Little Clinic", "icon": "maki-doctor", "imageURL": "https://graph.facebook.com/thelittleclinic/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q64138262", "amenity": "doctors"}, "addTags": {"amenity": "doctors", "brand": "The Little Clinic", "brand:wikidata": "Q64138262", "healthcare": "doctor", "healthcare:speciality": "community", "name": "The Little Clinic"}, "reference": {"key": "amenity", "value": "doctors"}, "countryCodes": ["us"], "terms": ["little clinic"], "matchScore": 2, "suggestion": true}, @@ -2031,6 +2056,7 @@ "amenity/fast_food/sandwich/Arby's": {"name": "Arby's", "icon": "temaki-sandwich", "imageURL": "https://graph.facebook.com/arbys/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q630866", "amenity": "fast_food", "cuisine": "sandwich"}, "addTags": {"amenity": "fast_food", "brand": "Arby's", "brand:wikidata": "Q630866", "brand:wikipedia": "en:Arby's", "cuisine": "sandwich", "name": "Arby's", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "countryCodes": ["ca", "tr", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/sandwich/Au Bon Pain": {"name": "Au Bon Pain", "icon": "temaki-sandwich", "imageURL": "https://graph.facebook.com/aubonpain/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4818942", "amenity": "fast_food", "cuisine": "sandwich"}, "addTags": {"amenity": "fast_food", "brand": "Au Bon Pain", "brand:wikidata": "Q4818942", "brand:wikipedia": "en:Au Bon Pain", "cuisine": "sandwich", "name": "Au Bon Pain", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "countryCodes": ["in", "th", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/Auntie Anne's": {"name": "Auntie Anne's", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/auntieannespretzels/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4822010", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "Auntie Anne's", "brand:wikidata": "Q4822010", "brand:wikipedia": "en:Auntie Anne's", "cuisine": "pretzel", "name": "Auntie Anne's", "takeaway": "yes"}, "countryCodes": ["us"], "terms": ["auntie annes pretzels"], "matchScore": 2, "suggestion": true}, + "amenity/fast_food/burger/Back Yard Burgers": {"name": "Back Yard Burgers", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/backyardburgers/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2878376", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "Back Yard Burgers", "brand:wikidata": "Q2878376", "brand:wikipedia": "en:Back Yard Burgers", "cuisine": "burger", "name": "Back Yard Burgers", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/mexican/Baja Fresh": {"name": "Baja Fresh", "icon": "fas-pepper-hot", "imageURL": "https://graph.facebook.com/bajafresh/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2880019", "amenity": "fast_food", "cuisine": "mexican"}, "addTags": {"amenity": "fast_food", "brand": "Baja Fresh", "brand:wikidata": "Q2880019", "brand:wikipedia": "en:Baja Fresh", "cuisine": "mexican", "name": "Baja Fresh", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "mexican"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/mexican/Barburrito": {"name": "Barburrito", "icon": "fas-pepper-hot", "imageURL": "https://graph.facebook.com/BarburritoUK/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q16983668", "amenity": "fast_food", "cuisine": "mexican"}, "addTags": {"amenity": "fast_food", "brand": "Barburrito", "brand:wikidata": "Q16983668", "brand:wikipedia": "en:Barburrito", "cuisine": "mexican", "name": "Barburrito", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "mexican"}, "countryCodes": ["gb"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/burger/Bembos": {"name": "Bembos", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/bembos/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q466971", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "Bembos", "brand:wikidata": "Q466971", "brand:wikipedia": "en:Bembos", "cuisine": "burger", "name": "Bembos", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "countryCodes": ["pe"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -2051,6 +2077,7 @@ "amenity/fast_food/burger/Carl's Jr.": {"name": "Carl's Jr.", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/carlsjr/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1043486", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "Carl's Jr.", "brand:wikidata": "Q1043486", "brand:wikipedia": "en:Carl's Jr.", "cuisine": "burger", "name": "Carl's Jr.", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/sandwich/Charleys Philly Steaks": {"name": "Charleys Philly Steaks", "icon": "temaki-sandwich", "imageURL": "https://graph.facebook.com/CharleysPhillySteaks/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1066777", "amenity": "fast_food", "cuisine": "sandwich"}, "addTags": {"amenity": "fast_food", "brand": "Charleys Philly Steaks", "brand:wikidata": "Q1066777", "brand:wikipedia": "en:Charleys Philly Steaks", "cuisine": "sandwich", "name": "Charleys Philly Steaks", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "countryCodes": ["us"], "terms": ["charleys"], "matchScore": 2, "suggestion": true}, "amenity/fast_food/burger/Checkers": {"name": "Checkers", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/checkersrallys/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q63919315", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "Checkers", "brand:wikidata": "Q63919315", "cuisine": "burger", "name": "Checkers", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/fast_food/chicken/Chester's": {"name": "Chester's", "icon": "fas-drumstick-bite", "imageURL": "https://graph.facebook.com/ChestersIntl/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5093401", "amenity": "fast_food", "cuisine": "chicken"}, "addTags": {"amenity": "fast_food", "brand": "Chester's", "brand:wikidata": "Q5093401", "brand:wikipedia": "en:Chester's International", "cuisine": "chicken", "name": "Chester's", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "chicken"}, "countryCodes": ["us"], "terms": ["chesters chicken"], "matchScore": 2, "suggestion": true}, "amenity/fast_food/chicken/Chick-fil-A": {"name": "Chick-fil-A", "icon": "fas-drumstick-bite", "imageURL": "https://graph.facebook.com/ChickfilA/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q491516", "amenity": "fast_food", "cuisine": "chicken"}, "addTags": {"amenity": "fast_food", "brand": "Chick-fil-A", "brand:wikidata": "Q491516", "brand:wikipedia": "en:Chick-fil-A", "cuisine": "chicken", "name": "Chick-fil-A", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "chicken"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/chicken/Chicken Express": {"name": "Chicken Express", "icon": "fas-drumstick-bite", "imageURL": "https://graph.facebook.com/chickenexpress/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5096235", "amenity": "fast_food", "cuisine": "chicken"}, "addTags": {"amenity": "fast_food", "brand": "Chicken Express", "brand:wikidata": "Q5096235", "brand:wikipedia": "en:Chicken Express", "cuisine": "chicken", "name": "Chicken Express", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "chicken"}, "countryCodes": ["gb", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/China Wok": {"name": "China Wok", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/ChinaWokPeru/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5766542", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "China Wok", "brand:wikidata": "Q5766542", "brand:wikipedia": "es:China Wok", "cuisine": "chinese", "name": "China Wok", "takeaway": "yes"}, "terms": [], "matchScore": 2, "suggestion": true}, @@ -2062,6 +2089,7 @@ "amenity/fast_food/CoCo壱番屋": {"name": "CoCo壱番屋", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/cocoichicurry/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5986105", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "CoCo壱番屋", "brand:en": "CoCo Ichibanya", "brand:ja": "CoCo壱番屋", "brand:wikidata": "Q5986105", "brand:wikipedia": "en:Ichibanya", "cuisine": "japanese", "name": "CoCo壱番屋", "name:en": "CoCo Ichibanya", "name:ja": "CoCo壱番屋", "takeaway": "yes"}, "countryCodes": ["cn", "jp"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/Cook Out": {"name": "Cook Out", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/CookOut/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5166992", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "Cook Out", "brand:wikidata": "Q5166992", "brand:wikipedia": "en:Cook Out (restaurant)", "cuisine": "american", "name": "Cook Out", "takeaway": "yes"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/sandwich/Così": {"name": "Così", "icon": "temaki-sandwich", "imageURL": "https://graph.facebook.com/getcosi/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5175243", "amenity": "fast_food", "cuisine": "sandwich"}, "addTags": {"amenity": "fast_food", "brand": "Così", "brand:wikidata": "Q5175243", "brand:wikipedia": "en:Così (restaurant)", "cuisine": "sandwich", "name": "Così", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/fast_food/sandwich/Cultures": {"name": "Cultures", "icon": "temaki-sandwich", "imageURL": "https://graph.facebook.com/culturesrestaurants/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q64876898", "amenity": "fast_food", "cuisine": "sandwich"}, "addTags": {"amenity": "fast_food", "brand": "Cultures", "brand:wikidata": "Q64876898", "cuisine": "sandwich", "name": "Cultures", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/burger/Culver's": {"name": "Culver's", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/culvers/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1143589", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "Culver's", "brand:wikidata": "Q1143589", "brand:wikipedia": "en:Culver's", "cuisine": "burger", "name": "Culver's", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/ice_cream/DQ Grill & Chill": {"name": "DQ Grill & Chill", "icon": "fas-ice-cream", "imageURL": "https://graph.facebook.com/dairyqueen/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1141226", "amenity": "fast_food", "cuisine": "ice_cream;burger"}, "addTags": {"amenity": "fast_food", "brand": "DQ Grill & Chill", "brand:wikidata": "Q1141226", "brand:wikipedia": "en:Dairy Queen", "cuisine": "ice_cream;burger", "name": "DQ Grill & Chill", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "ice_cream"}, "countryCodes": ["ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/ice_cream/Dairy Queen": {"name": "Dairy Queen", "icon": "fas-ice-cream", "imageURL": "https://graph.facebook.com/dairyqueen/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1141226", "amenity": "fast_food", "cuisine": "ice_cream;burger"}, "addTags": {"amenity": "fast_food", "brand": "Dairy Queen", "brand:wikidata": "Q1141226", "brand:wikipedia": "en:Dairy Queen", "cuisine": "ice_cream;burger", "name": "Dairy Queen", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "ice_cream"}, "terms": ["dq"], "matchScore": 2, "suggestion": true}, @@ -2077,10 +2105,10 @@ "amenity/fast_food/Fazoli's": {"name": "Fazoli's", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/Fazolis/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1399195", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "Fazoli's", "brand:wikidata": "Q1399195", "brand:wikipedia": "en:Fazoli's", "cuisine": "italian", "name": "Fazoli's", "takeaway": "yes"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/sandwich/Firehouse Subs": {"name": "Firehouse Subs", "icon": "temaki-sandwich", "imageURL": "https://graph.facebook.com/firehousesubs/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5451873", "amenity": "fast_food", "cuisine": "sandwich"}, "addTags": {"amenity": "fast_food", "brand": "Firehouse Subs", "brand:wikidata": "Q5451873", "brand:wikipedia": "en:Firehouse Subs", "cuisine": "sandwich", "name": "Firehouse Subs", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "countryCodes": ["ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/burger/Five Guys": {"name": "Five Guys", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/fiveguys/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1131810", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "Five Guys", "brand:wikidata": "Q1131810", "brand:wikipedia": "en:Five Guys", "cuisine": "burger", "name": "Five Guys", "official_name": "Five Guys Burgers and Fries", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/fast_food/ice_cream/Freddy's": {"name": "Freddy's", "icon": "fas-ice-cream", "imageURL": "https://graph.facebook.com/FreddysUSA/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5496837", "amenity": "fast_food", "cuisine": "ice_cream;burger"}, "addTags": {"amenity": "fast_food", "brand": "Freddy's", "brand:wikidata": "Q5496837", "brand:wikipedia": "en:Freddy's Frozen Custard & Steakburgers", "cuisine": "ice_cream;burger", "name": "Freddy's", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "ice_cream"}, "countryCodes": ["us"], "terms": ["freddys frozen custard & steakburgers", "freddys frozen custard and steakburgers"], "matchScore": 2, "suggestion": true}, + "amenity/fast_food/ice_cream/Freddy's": {"name": "Freddy's", "icon": "fas-ice-cream", "imageURL": "https://graph.facebook.com/FreddysUSA/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5496837", "amenity": "fast_food", "cuisine": "ice_cream;burger"}, "addTags": {"amenity": "fast_food", "brand": "Freddy's", "brand:wikidata": "Q5496837", "brand:wikipedia": "en:Freddy's Frozen Custard & Steakburgers", "cuisine": "ice_cream;burger", "name": "Freddy's", "official_name": "Freddys Frozen Custard & Steakburgers", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "ice_cream"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/mexican/Freebirds": {"name": "Freebirds", "icon": "fas-pepper-hot", "imageURL": "https://graph.facebook.com/freebirdsworldburrito/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5500367", "amenity": "fast_food", "cuisine": "mexican"}, "addTags": {"amenity": "fast_food", "brand": "Freebirds", "brand:wikidata": "Q5500367", "brand:wikipedia": "en:Freebirds World Burrito", "cuisine": "mexican", "name": "Freebirds", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "mexican"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/pizza/Gabriel Pizza": {"name": "Gabriel Pizza", "icon": "maki-restaurant-pizza", "imageURL": "https://graph.facebook.com/gabrielpizza/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5515791", "amenity": "fast_food", "cuisine": "pizza"}, "addTags": {"amenity": "fast_food", "brand": "Gabriel Pizza", "brand:wikidata": "Q5515791", "brand:wikipedia": "en:Gabriel Pizza", "cuisine": "pizza", "name": "Gabriel Pizza", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "pizza"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/fast_food/pizza/Gino's Pizza": {"name": "Gino's Pizza", "icon": "maki-restaurant-pizza", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5563205", "amenity": "fast_food", "cuisine": "pizza"}, "addTags": {"amenity": "fast_food", "brand": "Gino's Pizza", "brand:wikidata": "Q5563205", "brand:wikipedia": "en:Gino's Pizza and Spaghetti", "cuisine": "pizza", "name": "Gino's Pizza", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "pizza"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/fast_food/pizza/Gino's Pizza": {"name": "Gino's Pizza", "icon": "maki-restaurant-pizza", "imageURL": "https://pbs.twimg.com/profile_images/1240550288/TwitterProfile_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5563205", "amenity": "fast_food", "cuisine": "pizza"}, "addTags": {"amenity": "fast_food", "brand": "Gino's Pizza", "brand:wikidata": "Q5563205", "brand:wikipedia": "en:Gino's Pizza and Spaghetti", "cuisine": "pizza", "name": "Gino's Pizza", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "pizza"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/Gold Star Chili": {"name": "Gold Star Chili", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/goldstarchili/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q16994254", "amenity": "fast_food"}, "addTags": {"alt_name": "Gold Star", "amenity": "fast_food", "brand": "Gold Star Chili", "brand:wikidata": "Q16994254", "brand:wikipedia": "en:Gold Star Chili", "cuisine": "chili", "name": "Gold Star Chili", "takeaway": "yes"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/Golden Krust Caribbean Bakery & Grill": {"name": "Golden Krust Caribbean Bakery & Grill", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/GoldenKrust/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5579615", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "Golden Krust Caribbean Bakery & Grill", "brand:wikidata": "Q5579615", "brand:wikipedia": "en:Golden Krust Caribbean Bakery & Grill", "cuisine": "caribbean", "name": "Golden Krust", "takeaway": "yes"}, "countryCodes": ["ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/Great American Cookies": {"name": "Great American Cookies", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/greatamericancookies/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5598629", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "Great American Cookies", "brand:wikidata": "Q5598629", "brand:wikipedia": "en:Great American Cookies", "cuisine": "cookies", "name": "Great American Cookies", "takeaway": "yes"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -2089,6 +2117,7 @@ "amenity/fast_food/pizza/Hallo Pizza": {"name": "Hallo Pizza", "icon": "maki-restaurant-pizza", "imageURL": "https://graph.facebook.com/Hallo.Pizza.Deutschland/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1571798", "amenity": "fast_food", "cuisine": "pizza"}, "addTags": {"amenity": "fast_food", "brand": "Hallo Pizza", "brand:wikidata": "Q1571798", "brand:wikipedia": "de:Hallo Pizza", "cuisine": "pizza", "name": "Hallo Pizza", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "pizza"}, "countryCodes": ["de"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/burger/Hardee's": {"name": "Hardee's", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/hardees/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1585088", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "Hardee's", "brand:wikidata": "Q1585088", "brand:wikipedia": "en:Hardee's", "cuisine": "burger", "name": "Hardee's", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/burger/Harvey's": {"name": "Harvey's", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/HarveysCanada/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1466184", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "Harvey's", "brand:wikidata": "Q1466184", "brand:wikipedia": "en:Harvey's", "cuisine": "burger", "name": "Harvey's", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/fast_food/burger/Herfy": {"name": "Herfy", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/herfyfscksa/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5738371", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "Herfy", "brand:ar": "هرفي", "brand:en": "Herfy", "brand:wikidata": "Q5738371", "brand:wikipedia": "en:Herfy", "cuisine": "burger", "name": "Herfy", "name:ar": "هرفي", "name:en": "Herfy", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "countryCodes": ["ae", "bd", "bh", "kw", "sa"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/burger/Hesburger": {"name": "Hesburger", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/hesburger/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1276832", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "Hesburger", "brand:wikidata": "Q1276832", "brand:wikipedia": "en:Hesburger", "cuisine": "burger", "name": "Hesburger", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/Hot Dog on a Stick": {"name": "Hot Dog on a Stick", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/HotDogonaStick/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5909922", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "Hot Dog on a Stick", "brand:wikidata": "Q5909922", "brand:wikipedia": "en:Hot Dog on a Stick", "cuisine": "hot_dog", "name": "Hot Dog on a Stick", "takeaway": "yes"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/mexican/Hot Head Burritos": {"name": "Hot Head Burritos", "icon": "fas-pepper-hot", "imageURL": "https://pbs.twimg.com/profile_images/956274820035022853/SBuliAdo_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5910008", "amenity": "fast_food", "cuisine": "mexican"}, "addTags": {"amenity": "fast_food", "brand": "Hot Head Burritos", "brand:wikidata": "Q5910008", "brand:wikipedia": "en:Hot Head Burritos", "cuisine": "mexican", "name": "Hot Head Burritos", "short_name": "Hot Head", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "mexican"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -2099,17 +2128,20 @@ "amenity/fast_food/Jamba Juice": {"name": "Jamba Juice", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/jambajuice/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3088784", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "Jamba Juice", "brand:wikidata": "Q3088784", "brand:wikipedia": "en:Jamba Juice", "cuisine": "juice", "name": "Jamba Juice", "takeaway": "yes"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/sandwich/Jersey Mike's Subs": {"name": "Jersey Mike's Subs", "icon": "temaki-sandwich", "imageURL": "https://graph.facebook.com/jerseymikes/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6184897", "amenity": "fast_food", "cuisine": "sandwich"}, "addTags": {"amenity": "fast_food", "brand": "Jersey Mike's Subs", "brand:wikidata": "Q6184897", "brand:wikipedia": "en:Jersey Mike's Subs", "cuisine": "sandwich", "name": "Jersey Mike's Subs", "short_name": "Jersey Mike's", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/sandwich/Jimmy John's": {"name": "Jimmy John's", "icon": "temaki-sandwich", "imageURL": "https://graph.facebook.com/jimmyjohns/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1689380", "amenity": "fast_food", "cuisine": "sandwich"}, "addTags": {"amenity": "fast_food", "brand": "Jimmy John's", "brand:wikidata": "Q1689380", "brand:wikipedia": "en:Jimmy John's", "cuisine": "sandwich", "name": "Jimmy John's", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/fast_food/Jimmy the Greek": {"name": "Jimmy the Greek", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/gimmejimmy.jtg/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q17077817", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "Jimmy the Greek", "brand:wikidata": "Q17077817", "brand:wikipedia": "en:Jimmy the Greek (restaurant)", "cuisine": "greek", "name": "Jimmy the Greek", "takeaway": "yes"}, "countryCodes": ["ae", "ca"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/burger/Jollibee": {"name": "Jollibee", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/JollibeePhilippines/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q37614", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "Jollibee", "brand:wikidata": "Q37614", "brand:wikipedia": "en:Jollibee", "cuisine": "burger", "name": "Jollibee", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/Just Salad": {"name": "Just Salad", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/justsalad/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q23091823", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "Just Salad", "brand:wikidata": "Q23091823", "brand:wikipedia": "en:Just Salad", "cuisine": "salad", "name": "Just Salad", "takeaway": "yes"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/chicken/KFC": {"name": "KFC", "icon": "fas-drumstick-bite", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FKFC%20Logo.svg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q524757", "amenity": "fast_food", "cuisine": "chicken"}, "addTags": {"alt_name": "Kentucky Fried Chicken", "amenity": "fast_food", "brand": "KFC", "brand:wikidata": "Q524757", "brand:wikipedia": "en:KFC", "cuisine": "chicken", "name": "KFC", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "chicken"}, "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/fast_food/Kernels Popcorn": {"name": "Kernels Popcorn", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/kernelspopcorn/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q64876684", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "Kernels Popcorn", "brand:wikidata": "Q64876684", "cuisine": "popcorn", "name": "Kernels Popcorn", "takeaway": "yes"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/burger/Kochlöffel": {"name": "Kochlöffel", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/Kochloeffel.Deutschland/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q315539", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "Kochlöffel", "brand:wikidata": "Q315539", "brand:wikipedia": "en:Kochlöffel", "cuisine": "burger", "name": "Kochlöffel", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "countryCodes": ["de", "tr"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/pizza/Kotipizza": {"name": "Kotipizza", "icon": "maki-restaurant-pizza", "imageURL": "https://graph.facebook.com/kotipizza/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1628625", "amenity": "fast_food", "cuisine": "pizza"}, "addTags": {"amenity": "fast_food", "brand": "Kotipizza", "brand:wikidata": "Q1628625", "brand:wikipedia": "en:Kotipizza", "cuisine": "pizza", "name": "Kotipizza", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "pizza"}, "countryCodes": ["fi"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/donut/Krispy Kreme": {"name": "Krispy Kreme", "icon": "temaki-donut", "imageURL": "https://graph.facebook.com/KrispyKreme/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1192805", "amenity": "fast_food", "cuisine": "donut"}, "addTags": {"amenity": "fast_food", "brand": "Krispy Kreme", "brand:wikidata": "Q1192805", "brand:wikipedia": "en:Krispy Kreme", "cuisine": "donut", "name": "Krispy Kreme", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "donut"}, "terms": ["krispy kreme doughnuts"], "matchScore": 2, "suggestion": true}, "amenity/fast_food/burger/Krystal": {"name": "Krystal", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/Krystal/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q472195", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "Krystal", "brand:wikidata": "Q472195", "brand:wikipedia": "en:Krystal (restaurant)", "cuisine": "burger", "name": "Krystal", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/L&L Drive-Inn (Hawaii)": {"name": "L&L Drive-Inn (Hawaii)", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/hawaiianbarbecue/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6455441", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "L&L Drive-Inn", "brand:wikidata": "Q6455441", "brand:wikipedia": "en:L&L Hawaiian Barbecue", "cuisine": "hawaiian", "name": "L&L Drive-Inn", "takeaway": "yes"}, "countryCodes": ["us"], "terms": ["l&l", "l&l drive-in"], "matchScore": 2, "suggestion": true}, "amenity/fast_food/L&L Hawaiian Barbecue": {"name": "L&L Hawaiian Barbecue", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/hawaiianbarbecue/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6455441", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "L&L Hawaiian Barbecue", "brand:wikidata": "Q6455441", "brand:wikipedia": "en:L&L Hawaiian Barbecue", "cuisine": "hawaiian", "name": "L&L Hawaiian Barbecue", "takeaway": "yes"}, "countryCodes": ["us"], "terms": ["l&l", "l&l hawaiian bbq"], "matchScore": 2, "suggestion": true}, + "amenity/fast_food/burger/La Belle Province": {"name": "La Belle Province", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/restolbp/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3206579", "amenity": "fast_food", "cuisine": "burger;sandwich"}, "addTags": {"amenity": "fast_food", "brand": "La Belle Province", "brand:wikidata": "Q3206579", "brand:wikipedia": "fr:La Belle Province (restaurant)", "cuisine": "burger;sandwich", "name": "La Belle Province", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/sandwich/Lee's Sandwiches": {"name": "Lee's Sandwiches", "icon": "temaki-sandwich", "imageURL": "https://graph.facebook.com/LeesSandwiches/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6512823", "amenity": "fast_food", "cuisine": "vietnamese;sandwich"}, "addTags": {"amenity": "fast_food", "brand": "Lee's Sandwiches", "brand:wikidata": "Q6512823", "brand:wikipedia": "en:Lee's Sandwiches", "cuisine": "vietnamese;sandwich", "name": "Lee's Sandwiches", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/fast_food/pizza/Little Caesars": {"name": "Little Caesars", "icon": "maki-restaurant-pizza", "imageURL": "https://graph.facebook.com/LittleCaesars/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1393809", "amenity": "fast_food", "cuisine": "pizza"}, "addTags": {"amenity": "fast_food", "brand": "Little Caesars", "brand:wikidata": "Q1393809", "brand:wikipedia": "en:Little Caesars", "cuisine": "pizza", "name": "Little Caesars", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "pizza"}, "terms": ["little caesars pizza"], "matchScore": 2, "suggestion": true}, + "amenity/fast_food/pizza/Little Caesars": {"name": "Little Caesars", "icon": "maki-restaurant-pizza", "imageURL": "https://graph.facebook.com/LittleCaesars/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1393809", "amenity": "fast_food", "cuisine": "pizza"}, "addTags": {"amenity": "fast_food", "brand": "Little Caesars", "brand:wikidata": "Q1393809", "brand:wikipedia": "en:Little Caesars", "cuisine": "pizza", "name": "Little Caesars", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "pizza"}, "terms": ["little caesars pizza", "little ceasars", "little ceasars pizza"], "matchScore": 2, "suggestion": true}, "amenity/fast_food/Long John Silver's": {"name": "Long John Silver's", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/LongJohnSilvers/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1535221", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "Long John Silver's", "brand:wikidata": "Q1535221", "brand:wikipedia": "en:Long John Silver's", "cuisine": "seafood", "name": "Long John Silver's", "takeaway": "yes"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/burger/Lotteria": {"name": "Lotteria", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/ilovelotteria/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q249525", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "Lotteria", "brand:wikidata": "Q249525", "brand:wikipedia": "en:Lotteria", "cuisine": "burger", "name": "Lotteria", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/pizza/MOD Pizza": {"name": "MOD Pizza", "icon": "maki-restaurant-pizza", "imageURL": "https://graph.facebook.com/MODPizza/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q19903469", "amenity": "fast_food", "cuisine": "pizza"}, "addTags": {"amenity": "fast_food", "brand": "MOD Pizza", "brand:wikidata": "Q19903469", "brand:wikipedia": "en:MOD Pizza", "cuisine": "pizza", "name": "MOD Pizza", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "pizza"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -2118,10 +2150,12 @@ "amenity/fast_food/Manhattan Bagel": {"name": "Manhattan Bagel", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/ManhattanBagel/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q64517333", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "Manhattan Bagel", "brand:wikidata": "Q64517333", "cuisine": "bagel", "name": "Manhattan Bagel", "takeaway": "yes"}, "countryCodes": ["us"], "terms": ["manhattan bagels"], "matchScore": 2, "suggestion": true}, "amenity/fast_food/burger/Max": {"name": "Max", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/maxburgers/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1912172", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "Max", "brand:wikidata": "Q1912172", "brand:wikipedia": "en:Max Hamburgers", "cuisine": "burger", "name": "Max", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "countryCodes": ["se"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/burger/McDonald's": {"name": "McDonald's", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/mcdonalds/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q38076", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "McDonald's", "brand:wikidata": "Q38076", "brand:wikipedia": "en:McDonald's", "cuisine": "burger", "name": "McDonald's", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/fast_food/sandwich/Meson Sandwiches": {"name": "Meson Sandwiches", "icon": "temaki-sandwich", "imageURL": "https://graph.facebook.com/elmesonsandwiches/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5351585", "amenity": "fast_food", "cuisine": "sandwich"}, "addTags": {"alt_name": "El Meson Sandwiches", "amenity": "fast_food", "brand": "Meson Sandwiches", "brand:wikidata": "Q5351585", "brand:wikipedia": "en:El Meson Sandwiches", "cuisine": "sandwich", "name": "Meson Sandwiches", "short_name": "Meson", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "countryCodes": ["us"], "terms": ["el meson"], "matchScore": 2, "suggestion": true}, "amenity/fast_food/mexican/Mighty Taco": {"name": "Mighty Taco", "icon": "fas-pepper-hot", "imageURL": "https://graph.facebook.com/MyMightyTaco/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6844210", "amenity": "fast_food", "cuisine": "mexican"}, "addTags": {"amenity": "fast_food", "brand": "Mighty Taco", "brand:wikidata": "Q6844210", "brand:wikipedia": "en:Mighty Taco", "cuisine": "mexican", "name": "Mighty Taco", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "mexican"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/burger/Minute Burger": {"name": "Minute Burger", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/MinuteBurger/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62273503", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "Minute Burger", "brand:wikidata": "Q62273503", "cuisine": "burger", "name": "Minute Burger", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "countryCodes": ["ph"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/mexican/Moe's Southwest Grill": {"name": "Moe's Southwest Grill", "icon": "fas-pepper-hot", "imageURL": "https://graph.facebook.com/MoesSouthwestGrill/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6889938", "amenity": "fast_food", "cuisine": "mexican"}, "addTags": {"amenity": "fast_food", "brand": "Moe's Southwest Grill", "brand:wikidata": "Q6889938", "brand:wikipedia": "en:Moe's Southwest Grill", "cuisine": "mexican", "name": "Moe's Southwest Grill", "short_name": "Moe's", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "mexican"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/sandwich/Mr. Sub": {"name": "Mr. Sub", "icon": "temaki-sandwich", "imageURL": "https://graph.facebook.com/mrsub/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6929225", "amenity": "fast_food", "cuisine": "sandwich"}, "addTags": {"amenity": "fast_food", "brand": "Mr. Sub", "brand:wikidata": "Q6929225", "brand:wikipedia": "en:Mr. Sub", "cuisine": "sandwich", "name": "Mr. Sub", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/fast_food/mexican/Mucho Burrito": {"name": "Mucho Burrito", "icon": "fas-pepper-hot", "imageURL": "https://graph.facebook.com/MuchoBurritoHQ/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q65148332", "amenity": "fast_food", "cuisine": "mexican"}, "addTags": {"amenity": "fast_food", "brand": "Mucho Burrito", "brand:wikidata": "Q65148332", "cuisine": "mexican", "name": "Mucho Burrito", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "mexican"}, "countryCodes": ["ca", "gb", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/New York Fries": {"name": "New York Fries", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/NewYorkFries/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7013558", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "New York Fries", "brand:wikidata": "Q7013558", "brand:wikipedia": "en:New York Fries", "cuisine": "fries", "name": "New York Fries", "takeaway": "yes"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/pizza/New York Pizza": {"name": "New York Pizza", "icon": "maki-restaurant-pizza", "imageURL": "https://graph.facebook.com/newyorkpizza.nl/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2639128", "amenity": "fast_food", "cuisine": "pizza"}, "addTags": {"amenity": "fast_food", "brand": "New York Pizza", "brand:wikidata": "Q2639128", "brand:wikipedia": "nl:New York Pizza", "cuisine": "pizza", "name": "New York Pizza", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "pizza"}, "countryCodes": ["nl"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/Noah's Bagels": {"name": "Noah's Bagels", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/NoahsBagels/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q64517373", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "Noah's Bagels", "brand:wikidata": "Q64517373", "cuisine": "bagel", "name": "Noah's Bagels", "official_name": "Noah's New York Bagels", "takeaway": "yes"}, "countryCodes": ["us"], "terms": ["noahs ny bagels"], "matchScore": 2, "suggestion": true}, @@ -2144,6 +2178,7 @@ "amenity/fast_food/pizza/Pizza Hut Express": {"name": "Pizza Hut Express", "icon": "maki-restaurant-pizza", "imageURL": "https://graph.facebook.com/pizzahutus/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q191615", "amenity": "fast_food", "cuisine": "pizza"}, "addTags": {"amenity": "fast_food", "brand": "Pizza Hut", "brand:wikidata": "Q191615", "brand:wikipedia": "en:Pizza Hut", "cuisine": "pizza", "name": "Pizza Hut Express", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "pizza"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/pizza/Pizza Nova": {"name": "Pizza Nova", "icon": "maki-restaurant-pizza", "imageURL": "https://graph.facebook.com/PizzaNova/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7199971", "amenity": "fast_food", "cuisine": "pizza"}, "addTags": {"amenity": "fast_food", "brand": "Pizza Nova", "brand:wikidata": "Q7199971", "brand:wikipedia": "en:Pizza Nova", "cuisine": "pizza", "name": "Pizza Nova", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "pizza"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/pizza/Pizza Pizza": {"name": "Pizza Pizza", "icon": "maki-restaurant-pizza", "imageURL": "https://graph.facebook.com/PizzaPizzaCanada/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1194143", "amenity": "fast_food", "cuisine": "pizza"}, "addTags": {"amenity": "fast_food", "brand": "Pizza Pizza", "brand:wikidata": "Q1194143", "brand:wikipedia": "en:Pizza Pizza", "cuisine": "pizza", "name": "Pizza Pizza", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "pizza"}, "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/fast_food/pizza/Pizza Schmizza": {"name": "Pizza Schmizza", "icon": "maki-restaurant-pizza", "imageURL": "https://graph.facebook.com/schmizza/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7199979", "amenity": "fast_food", "cuisine": "pizza"}, "addTags": {"amenity": "fast_food", "brand": "Pizza Schmizza", "brand:wikidata": "Q7199979", "brand:wikipedia": "en:Pizza Schmizza", "cuisine": "pizza", "name": "Pizza Schmizza", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "pizza"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/chicken/Pollo Campero": {"name": "Pollo Campero", "icon": "fas-drumstick-bite", "imageURL": "https://graph.facebook.com/CamperoUSA/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q942741", "amenity": "fast_food", "cuisine": "chicken"}, "addTags": {"amenity": "fast_food", "brand": "Pollo Campero", "brand:wikidata": "Q942741", "brand:wikipedia": "en:Pollo Campero", "cuisine": "chicken", "name": "Pollo Campero", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "chicken"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/chicken/Pollo Granjero (Costa Rica)": {"name": "Pollo Granjero (Costa Rica)", "icon": "fas-drumstick-bite", "imageURL": "https://graph.facebook.com/PolloGranjeroCostaRica/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62273665", "amenity": "fast_food", "cuisine": "chicken"}, "addTags": {"amenity": "fast_food", "brand": "Pollo Granjero", "brand:wikidata": "Q62273665", "cuisine": "chicken", "name": "Pollo Granjero", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "chicken"}, "countryCodes": ["cr"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/chicken/Pollo Granjero (Guatemala)": {"name": "Pollo Granjero (Guatemala)", "icon": "fas-drumstick-bite", "imageURL": "https://graph.facebook.com/PolloGranjeroGuatemala/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62273652", "amenity": "fast_food", "cuisine": "chicken"}, "addTags": {"amenity": "fast_food", "brand": "Pollo Granjero", "brand:wikidata": "Q62273652", "cuisine": "chicken", "name": "Pollo Granjero", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "chicken"}, "countryCodes": ["gt"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -2160,16 +2195,17 @@ "amenity/fast_food/chicken/Red Rooster": {"name": "Red Rooster", "icon": "fas-drumstick-bite", "imageURL": "https://graph.facebook.com/RedRoosterAU/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q376466", "amenity": "fast_food", "cuisine": "chicken"}, "addTags": {"amenity": "fast_food", "brand": "Red Rooster", "brand:wikidata": "Q376466", "brand:wikipedia": "en:Red Rooster", "cuisine": "chicken", "name": "Red Rooster", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "chicken"}, "countryCodes": ["au"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/burger/Roy Rogers": {"name": "Roy Rogers", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/RoyRogersRestaurants/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7373311", "amenity": "fast_food", "cuisine": "burger;sandwich;chicken"}, "addTags": {"amenity": "fast_food", "brand": "Roy Rogers", "brand:wikidata": "Q7373311", "brand:wikipedia": "en:Roy Rogers Restaurants", "cuisine": "burger;sandwich;chicken", "name": "Roy Rogers", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/mexican/Rubio's": {"name": "Rubio's", "icon": "fas-pepper-hot", "imageURL": "https://graph.facebook.com/rubios/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7376154", "amenity": "fast_food", "cuisine": "mexican"}, "addTags": {"amenity": "fast_food", "brand": "Rubio's", "brand:wikidata": "Q7376154", "brand:wikipedia": "en:Rubio's Coastal Grill", "cuisine": "mexican", "name": "Rubio's", "official_name": "Rubio's Coastal Grill", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "mexican"}, "countryCodes": ["us"], "terms": ["rubios fresh mexican grill"], "matchScore": 2, "suggestion": true}, - "amenity/fast_food/burger/SUSU & Sons": {"name": "SUSU & Sons", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/susuandsons/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q64760081", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"alt_name": "SUSU and Sons", "alt_name:en": "SUSU and Sons", "alt_name:he": "סוסו ובניו", "amenity": "fast_food", "brand": "SUSU & Sons", "brand:en": "SUSU & Sons", "brand:he": "סוסו אנד סאנס", "brand:wikidata": "Q64760081", "cuisine": "burger", "name": "SUSU & Sons", "name:en": "SUSU & Sons", "name:he": "סוסו אנד סאנס", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "countryCodes": ["il"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/fast_food/Sarku Japan": {"name": "Sarku Japan", "icon": "maki-fast-food", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FSarku%20Japan%20logo.png&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7424243", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "Sarku Japan", "brand:wikidata": "Q7424243", "cuisine": "japanese", "name": "Sarku Japan", "takeaway": "yes"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/fast_food/burger/SUSU & Sons": {"name": "SUSU & Sons", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/susuandsons/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q64760081", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "SUSU & Sons", "brand:en": "SUSU & Sons", "brand:he": "סוסו אנד סאנס", "brand:wikidata": "Q64760081", "cuisine": "burger", "name": "SUSU & Sons", "name:en": "SUSU & Sons", "name:he": "סוסו אנד סאנס", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "countryCodes": ["il"], "terms": ["סוסו ובניו"], "matchScore": 2, "suggestion": true}, + "amenity/fast_food/Sarku Japan": {"name": "Sarku Japan", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/SarkuJapanColombia/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7424243", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "Sarku Japan", "brand:wikidata": "Q7424243", "cuisine": "japanese", "name": "Sarku Japan", "takeaway": "yes"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/pizza/Sbarro": {"name": "Sbarro", "icon": "maki-restaurant-pizza", "imageURL": "https://graph.facebook.com/Sbarro/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2589409", "amenity": "fast_food", "cuisine": "pizza"}, "addTags": {"amenity": "fast_food", "brand": "Sbarro", "brand:wikidata": "Q2589409", "brand:wikipedia": "en:Sbarro", "cuisine": "pizza", "name": "Sbarro", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "pizza"}, "terms": ["Sbarro Pizzeria"], "matchScore": 2, "suggestion": true}, "amenity/fast_food/sandwich/Schlotzsky's": {"name": "Schlotzsky's", "icon": "temaki-sandwich", "imageURL": "https://graph.facebook.com/Schlotzskys/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2244796", "amenity": "fast_food", "cuisine": "sandwich"}, "addTags": {"amenity": "fast_food", "brand": "Schlotzsky's", "brand:wikidata": "Q2244796", "brand:wikipedia": "en:Schlotzsky's", "cuisine": "sandwich", "name": "Schlotzsky's", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "countryCodes": ["us"], "terms": ["schlotzskys deli"], "matchScore": 2, "suggestion": true}, "amenity/fast_food/burger/Shake Shack": {"name": "Shake Shack", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/shakeshack/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1058722", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "Shake Shack", "brand:wikidata": "Q1058722", "brand:wikipedia": "en:Shake Shack", "cuisine": "burger", "name": "Shake Shack", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "countryCodes": ["gb", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/burger/Sibylla": {"name": "Sibylla", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/sibyllasverige/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q488643", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "Sibylla", "brand:wikidata": "Q488643", "brand:wikipedia": "en:Sibylla (fast food)", "cuisine": "burger", "name": "Sibylla", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "countryCodes": ["fi", "se"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/burger/Smashburger": {"name": "Smashburger", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/smashburger/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q17061332", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "Smashburger", "brand:wikidata": "Q17061332", "brand:wikipedia": "en:Smashburger", "cuisine": "burger", "name": "Smashburger", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "countryCodes": ["ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/Smoothie King": {"name": "Smoothie King", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/SmoothieKing/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5491421", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "Smoothie King", "brand:wikidata": "Q5491421", "brand:wikipedia": "en:Smoothie King", "cuisine": "juice", "name": "Smoothie King", "takeaway": "yes"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/fast_food/burger/Sonic": {"name": "Sonic", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/sonicdrivein/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7561808", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "Sonic", "brand:wikidata": "Q7561808", "brand:wikipedia": "en:Sonic Drive-In", "cuisine": "burger", "name": "Sonic", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "terms": ["sonic drive in"], "matchScore": 2, "suggestion": true}, - "amenity/fast_food/sandwich/Specialty's": {"name": "Specialty's", "icon": "temaki-sandwich", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q64339210", "amenity": "fast_food", "cuisine": "sandwich;bakery"}, "addTags": {"amenity": "fast_food", "brand": "Specialty's", "brand:wikidata": "Q64339210", "cuisine": "sandwich;bakery", "name": "Specialty's", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/fast_food/burger/Sonic": {"name": "Sonic", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/sonicdrivein/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7561808", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "Sonic", "brand:wikidata": "Q7561808", "brand:wikipedia": "en:Sonic Drive-In", "cuisine": "burger", "drive_in": "yes", "name": "Sonic", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "terms": ["sonic drive in"], "matchScore": 2, "suggestion": true}, + "amenity/fast_food/sandwich/Specialty's": {"name": "Specialty's", "icon": "temaki-sandwich", "imageURL": "https://graph.facebook.com/specialtys/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q64339210", "amenity": "fast_food", "cuisine": "sandwich;bakery"}, "addTags": {"amenity": "fast_food", "brand": "Specialty's", "brand:wikidata": "Q64339210", "cuisine": "sandwich;bakery", "name": "Specialty's", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/fast_food/chicken/St-Hubert Express": {"name": "St-Hubert Express", "icon": "fas-drumstick-bite", "imageURL": "https://graph.facebook.com/sthubert/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3495225", "amenity": "fast_food", "cuisine": "chicken;barbecue"}, "addTags": {"amenity": "fast_food", "brand": "St-Hubert", "brand:wikidata": "Q3495225", "brand:wikipedia": "en:St-Hubert", "cuisine": "chicken;barbecue", "name": "St-Hubert Express", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "chicken"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/sandwich/Steak Escape": {"name": "Steak Escape", "icon": "temaki-sandwich", "imageURL": "https://graph.facebook.com/steakescape/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7605235", "amenity": "fast_food", "cuisine": "sandwich"}, "addTags": {"amenity": "fast_food", "brand": "Steak Escape", "brand:wikidata": "Q7605235", "brand:wikipedia": "en:Steak Escape", "cuisine": "sandwich", "name": "Steak Escape", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/burger/Steers": {"name": "Steers", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/OfficialSteers/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q56599145", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "Steers", "brand:wikidata": "Q56599145", "brand:wikipedia": "en:Steers", "cuisine": "burger", "name": "Steers", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/sandwich/Subway": {"name": "Subway", "icon": "temaki-sandwich", "imageURL": "https://graph.facebook.com/subway/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q244457", "amenity": "fast_food", "cuisine": "sandwich"}, "addTags": {"amenity": "fast_food", "brand": "Subway", "brand:wikidata": "Q244457", "brand:wikipedia": "en:Subway (restaurant)", "cuisine": "sandwich", "name": "Subway", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "terms": ["subway sandwiches"], "matchScore": 2, "suggestion": true}, @@ -2184,13 +2220,16 @@ "amenity/fast_food/mexican/Taco Time": {"name": "Taco Time", "icon": "fas-pepper-hot", "imageURL": "https://graph.facebook.com/tacotime/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7673969", "amenity": "fast_food", "cuisine": "mexican"}, "addTags": {"amenity": "fast_food", "brand": "Taco Time", "brand:wikidata": "Q7673969", "brand:wikipedia": "en:Taco Time", "cuisine": "mexican", "name": "Taco Time", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "mexican"}, "countryCodes": ["ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/Ted's Hot Dogs": {"name": "Ted's Hot Dogs", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/TedsHotDogs/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7692930", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "Ted's Hot Dogs", "brand:wikidata": "Q7692930", "brand:wikipedia": "en:Ted's Hot Dogs", "cuisine": "sausage", "name": "Ted's Hot Dogs", "takeaway": "yes"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/pizza/Telepizza": {"name": "Telepizza", "icon": "maki-restaurant-pizza", "imageURL": "https://graph.facebook.com/telepizza/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2699863", "amenity": "fast_food", "cuisine": "pizza"}, "addTags": {"amenity": "fast_food", "brand": "Telepizza", "brand:wikidata": "Q2699863", "brand:wikipedia": "en:Telepizza", "cuisine": "pizza", "name": "Telepizza", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "pizza"}, "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/fast_food/Teriyaki Experience": {"name": "Teriyaki Experience", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/TeriyakiExperience/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7702453", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "Teriyaki Experience", "brand:wikidata": "Q7702453", "cuisine": "japanese", "name": "Teriyaki Experience", "takeaway": "yes"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/Thai Express (Singapore)": {"name": "Thai Express (Singapore)", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/ThaiExpressSG/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7709119", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "Thai Express", "brand:wikidata": "Q7709119", "brand:wikipedia": "en:Thai Express", "cuisine": "thai", "name": "Thai Express", "takeaway": "yes"}, "countryCodes": ["sg"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/Thaï Express (North America)": {"name": "Thaï Express (North America)", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/EatThaiExpress/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7711610", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "Thaï Express", "brand:wikidata": "Q7711610", "brand:wikipedia": "en:Thaï Express", "cuisine": "thai", "name": "Thaï Express", "takeaway": "yes"}, "countryCodes": ["ca", "us"], "terms": ["thai express"], "matchScore": 2, "suggestion": true}, "amenity/fast_food/burger/The Habit Burger Grill": {"name": "The Habit Burger Grill", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/habitburger/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q18158741", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"alt_name": "Habit Burger Grill", "amenity": "fast_food", "brand": "The Habit Burger Grill", "brand:wikidata": "Q18158741", "brand:wikipedia": "en:The Habit Burger Grill", "cuisine": "burger", "name": "The Habit Burger Grill", "short_name": "Habit Burger", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "countryCodes": ["us"], "terms": ["the habit burger"], "matchScore": 2, "suggestion": true}, "amenity/fast_food/pizza/The Pizza Company": {"name": "The Pizza Company", "icon": "maki-restaurant-pizza", "imageURL": "https://graph.facebook.com/thepizzacompany/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2413520", "amenity": "fast_food", "cuisine": "pizza"}, "addTags": {"alt_name": "Pizza Company", "amenity": "fast_food", "brand": "The Pizza Company", "brand:wikidata": "Q2413520", "brand:wikipedia": "en:The Pizza Company", "cuisine": "pizza", "name": "The Pizza Company", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "pizza"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/sandwich/Togo's": {"name": "Togo's", "icon": "temaki-sandwich", "imageURL": "https://graph.facebook.com/togossandwiches/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3530375", "amenity": "fast_food", "cuisine": "sandwich"}, "addTags": {"amenity": "fast_food", "brand": "Togo's", "brand:wikidata": "Q3530375", "brand:wikipedia": "en:Togo's", "cuisine": "sandwich", "name": "Togo's", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/Tropical Smoothie Cafe": {"name": "Tropical Smoothie Cafe", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/tropicalsmoothiecafe/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7845817", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "Tropical Smoothie Cafe", "brand:wikidata": "Q7845817", "brand:wikipedia": "en:Tropical Smoothie Cafe", "cuisine": "juice", "name": "Tropical Smoothie Cafe", "takeaway": "yes"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/fast_food/burger/Valentine": {"name": "Valentine", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/valentineqc/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3553635", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "Valentine", "brand:wikidata": "Q3553635", "brand:wikipedia": "en:Groupe Valentine Inc.", "cuisine": "burger", "name": "Valentine", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/Veggie Grill": {"name": "Veggie Grill", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/veggiegrill/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q18636427", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "Veggie Grill", "brand:wikidata": "Q18636427", "brand:wikipedia": "en:Veggie Grill", "cuisine": "american", "diet:vegan": "only", "name": "Veggie Grill", "takeaway": "yes"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/fast_food/Villa Madina": {"name": "Villa Madina", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/villamadinarestaurant/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q64876884", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "Villa Madina", "brand:wikidata": "Q64876884", "cuisine": "mediterranean", "name": "Villa Madina", "takeaway": "yes"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/Wahoo's Fish Taco": {"name": "Wahoo's Fish Taco", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/WahoosFishTaco/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7959827", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "Wahoo's Fish Taco", "brand:wikidata": "Q7959827", "brand:wikipedia": "en:Wahoo's Fish Taco", "cuisine": "seafood", "name": "Wahoo's Fish Taco", "short_name": "Wahoo's", "takeaway": "yes"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/burger/Wendy's": {"name": "Wendy's", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/wendys/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q550258", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "Wendy's", "brand:wikidata": "Q550258", "brand:wikipedia": "en:Wendy's", "cuisine": "burger", "name": "Wendy's", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/burger/Whataburger": {"name": "Whataburger", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/whataburger/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q376627", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "Whataburger", "brand:wikidata": "Q376627", "brand:wikipedia": "en:Whataburger", "cuisine": "burger", "name": "Whataburger", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -2200,7 +2239,7 @@ "amenity/fast_food/burger/Wimpy": {"name": "Wimpy", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/wimpyrestaurants/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2811992", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "Wimpy", "brand:wikidata": "Q2811992", "brand:wikipedia": "en:Wimpy (restaurant)", "cuisine": "burger", "name": "Wimpy", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/Xi'an Famous Foods": {"name": "Xi'an Famous Foods", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/xianfoods/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q8044020", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "Xi'an Famous Foods", "brand:wikidata": "Q8044020", "brand:wikipedia": "en:Xi'an Famous Foods", "cuisine": "chinese", "name": "Xi'an Famous Foods", "takeaway": "yes"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/chicken/Zaxby's": {"name": "Zaxby's", "icon": "fas-drumstick-bite", "imageURL": "https://graph.facebook.com/Zaxbys/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q8067525", "amenity": "fast_food", "cuisine": "chicken"}, "addTags": {"amenity": "fast_food", "brand": "Zaxby's", "brand:wikidata": "Q8067525", "brand:wikipedia": "en:Zaxby's", "cuisine": "chicken", "name": "Zaxby's", "official_name": "Zaxby's Chicken Fingers & Buffalo Wings", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "chicken"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/fast_food/Zoës Kitchen": {"name": "Zoës Kitchen", "icon": "maki-fast-food", "imageURL": "https://pbs.twimg.com/profile_images/955840927968280576/pAowOseE_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q8074747", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "Zoës Kitchen", "brand:wikidata": "Q8074747", "brand:wikipedia": "en:Zoës Kitchen", "cuisine": "mediterranean", "name": "Zoës Kitchen", "takeaway": "yes"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/fast_food/Zoës Kitchen": {"name": "Zoës Kitchen", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/ZoesKitchen/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q8074747", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "Zoës Kitchen", "brand:wikidata": "Q8074747", "brand:wikipedia": "en:Zoës Kitchen", "cuisine": "mediterranean", "name": "Zoës Kitchen", "takeaway": "yes"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/sandwich/immergrün": {"name": "immergrün", "icon": "temaki-sandwich", "imageURL": "https://graph.facebook.com/mein.immergruen/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62589254", "amenity": "fast_food", "cuisine": "sandwich;salad;juice"}, "addTags": {"amenity": "fast_food", "brand": "immergrün", "brand:wikidata": "Q62589254", "cuisine": "sandwich;salad;juice", "name": "immergün", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "countryCodes": ["de"], "terms": ["immergün"], "matchScore": 2, "suggestion": true}, "amenity/fast_food/sandwich/Γρηγόρης": {"name": "Γρηγόρης", "icon": "temaki-sandwich", "imageURL": "https://graph.facebook.com/gregorys.gr/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62273834", "amenity": "fast_food", "cuisine": "sandwich"}, "addTags": {"amenity": "fast_food", "brand": "Γρηγόρης", "brand:el": "Γρηγόρης", "brand:en": "Gregorys", "brand:wikidata": "Q62273834", "cuisine": "sandwich", "name": "Γρηγόρης", "name:el": "Γρηγόρης", "name:en": "Gregorys", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "countryCodes": ["gr"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/burger/Бургер Кинг": {"name": "Бургер Кинг", "icon": "maki-fast-food", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FBurger%20King%20Logo.svg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q177054", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "Бургер Кинг", "brand:en": "Burger King", "brand:ru": "Бургер Кинг", "brand:wikidata": "Q177054", "brand:wikipedia": "en:Burger King", "cuisine": "burger", "name": "Бургер Кинг", "name:en": "Burger King", "name:ru": "Бургер Кинг", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "countryCodes": ["by", "kz", "ru"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -2218,18 +2257,19 @@ "amenity/fast_food/burger/עד העצם אקספרס": {"name": "עד העצם אקספרס", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/adhatzemexpress/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q64760165", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "עד העצם אקספרס", "brand:en": "Ad Haetzem Express", "brand:he": "עד העצם אקספרס", "brand:wikidata": "Q64760165", "cuisine": "burger", "name": "עד העצם אקספרס", "name:en": "Ad Haetzem Express", "name:he": "עד העצם אקספרס", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "countryCodes": ["il"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/chicken/دجاج كنتاكي": {"name": "دجاج كنتاكي", "icon": "fas-drumstick-bite", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FKFC%20Logo.svg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q524757", "amenity": "fast_food", "cuisine": "chicken"}, "addTags": {"amenity": "fast_food", "brand": "دجاج كنتاكي", "brand:ar": "دجاج كنتاكي", "brand:en": "KFC", "brand:wikidata": "Q524757", "brand:wikipedia": "ar:دجاج كنتاكي", "cuisine": "chicken", "name": "دجاج كنتاكي", "name:ar": "دجاج كنتاكي", "name:en": "KFC", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "chicken"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/burger/ماكدونالدز": {"name": "ماكدونالدز", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/mcdonalds/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q38076", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "ماكدونالدز", "brand:ar": "ماكدونالدز", "brand:en": "McDonald's", "brand:wikidata": "Q38076", "brand:wikipedia": "ar:ماكدونالدز", "cuisine": "burger", "name": "ماكدونالدز", "name:ar": "ماكدونالدز", "name:en": "McDonald's", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/fast_food/burger/هرفي": {"name": "هرفي", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/herfyfscksa/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5738371", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "هرفي", "brand:ar": "هرفي", "brand:en": "Herfy", "brand:wikidata": "Q5738371", "brand:wikipedia": "ar:هرفي", "cuisine": "burger", "name": "هرفي", "name:ar": "هرفي", "name:en": "Herfy", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "countryCodes": ["ae", "bh", "kw", "sa"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/かっぱ寿司": {"name": "かっぱ寿司", "icon": "maki-fast-food", "imageURL": "https://abs.twimg.com/sticky/default_profile_images/default_profile_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11263916", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "かっぱ寿司", "brand:en": "Kappazushi", "brand:ja": "かっぱ寿司", "brand:wikidata": "Q11263916", "brand:wikipedia": "ja:かっぱ寿司", "cuisine": "sushi", "name": "かっぱ寿司", "name:en": "Kappazushi", "name:ja": "かっぱ寿司", "takeaway": "yes"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/かつや": {"name": "かつや", "icon": "maki-fast-food", "imageURL": "https://pbs.twimg.com/profile_images/1125940338793693184/GAXNsHP4_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2855257", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "かつや", "brand:en": "Katsuya", "brand:ja": "かつや", "brand:wikidata": "Q2855257", "brand:wikipedia": "ja:かつや", "cuisine": "fried_food", "name": "かつや", "name:en": "Katsuya", "name:ja": "かつや", "name:ko": "카쯔야", "name:zh": "吉豚屋", "takeaway": "yes"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/くら寿司": {"name": "くら寿司", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/Kurasushi/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6445491", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "くら寿司", "brand:en": "Kurazushi", "brand:ja": "くら寿司", "brand:wikidata": "Q6445491", "brand:wikipedia": "ja:くら寿司", "cuisine": "sushi", "name": "くら寿司", "name:en": "Kurazushi", "name:ja": "くら寿司", "takeaway": "yes"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/すき家": {"name": "すき家", "icon": "maki-fast-food", "imageURL": "https://pbs.twimg.com/profile_images/1074928090885672960/nTgKn0jh_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6137375", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "すき家", "brand:en": "Sukiya", "brand:ja": "すき家", "brand:wikidata": "Q6137375", "brand:wikipedia": "ja:すき家", "cuisine": "beef_bowl", "name": "すき家", "name:en": "Sukiya", "name:ja": "すき家", "takeaway": "yes"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/fast_food/てんや": {"name": "てんや", "icon": "maki-fast-food", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11319830", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "てんや", "brand:en": "Tenya", "brand:ja": "てんや", "brand:wikidata": "Q11319830", "brand:wikipedia": "jp:テンコーポレーション", "cuisine": "fries", "name": "てんや", "name:en": "Tenya", "name:ja": "てんや", "takeaway": "yes"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/fast_food/なか卯": {"name": "なか卯", "icon": "maki-fast-food", "imageURL": "https://pbs.twimg.com/profile_images/999109688582008832/evpixQ34_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11274132", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "なか卯", "brand:en": "Nakau", "brand:ja": "なか卯", "brand:wikidata": "Q11274132", "brand:wikipedia": "ja:なか卯", "cuisine": "udon", "name": "なか卯", "name:en": "Nakau", "name:ja": "なか卯", "takeaway": "yes"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/fast_food/はま寿司": {"name": "はま寿司", "icon": "maki-fast-food", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q17220385", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "はま寿司", "brand:en": "Hamazushi", "brand:ja": "はま寿司", "brand:wikidata": "Q17220385", "brand:wikipedia": "ja:はま寿司", "cuisine": "sushi", "name": "はま寿司", "name:en": "Hamazushi", "name:ja": "はま寿司", "takeaway": "yes"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/fast_food/ほっかほっか亭": {"name": "ほっかほっか亭", "icon": "maki-fast-food", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FHokka-Hokka%20Tei%20logo.gif&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5878035", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "ほっかほっか亭", "brand:en": "Hokka Hokka Tei", "brand:ja": "ほっかほっか亭", "brand:wikidata": "Q5878035", "brand:wikipedia": "ja:ほっかほっか亭", "cuisine": "japanese", "name": "ほっかほっか亭", "name:en": "Hokka Hokka Tei", "name:ja": "ほっかほっか亭", "takeaway": "yes"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/fast_food/てんや": {"name": "てんや", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/TWtenya/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11319830", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "てんや", "brand:en": "Tenya", "brand:ja": "てんや", "brand:wikidata": "Q11319830", "brand:wikipedia": "jp:テンコーポレーション", "cuisine": "fries", "name": "てんや", "name:en": "Tenya", "name:ja": "てんや", "takeaway": "yes"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/fast_food/なか卯": {"name": "なか卯", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/107330239328355/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11274132", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "なか卯", "brand:en": "Nakau", "brand:ja": "なか卯", "brand:wikidata": "Q11274132", "brand:wikipedia": "ja:なか卯", "cuisine": "udon", "name": "なか卯", "name:en": "Nakau", "name:ja": "なか卯", "takeaway": "yes"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/fast_food/はま寿司": {"name": "はま寿司", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/1743876322501841/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q17220385", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "はま寿司", "brand:en": "Hamazushi", "brand:ja": "はま寿司", "brand:wikidata": "Q17220385", "brand:wikipedia": "ja:はま寿司", "cuisine": "sushi", "name": "はま寿司", "name:en": "Hamazushi", "name:ja": "はま寿司", "takeaway": "yes"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/fast_food/ほっかほっか亭": {"name": "ほっかほっか亭", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/516896005176524/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5878035", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "ほっかほっか亭", "brand:en": "Hokka Hokka Tei", "brand:ja": "ほっかほっか亭", "brand:wikidata": "Q5878035", "brand:wikipedia": "ja:ほっかほっか亭", "cuisine": "japanese", "name": "ほっかほっか亭", "name:en": "Hokka Hokka Tei", "name:ja": "ほっかほっか亭", "takeaway": "yes"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/ほっともっと": {"name": "ほっともっと", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/hottomotto/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q10850949", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "ほっともっと", "brand:en": "Hotto Motto", "brand:ja": "ほっともっと", "brand:wikidata": "Q10850949", "brand:wikipedia": "ja:ほっともっと", "cuisine": "japanese", "name": "ほっともっと", "name:en": "Hotto Motto", "name:ja": "ほっともっと", "takeaway": "yes"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/fast_food/ゆで太郎": {"name": "ゆで太郎", "icon": "maki-fast-food", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11280824", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "ゆで太郎", "brand:en": "Yudetaro", "brand:ja": "ゆで太郎", "brand:wikidata": "Q11280824", "brand:wikipedia": "ja:ゆで太郎", "cuisine": "noodle", "name": "ゆで太郎", "name:en": "Yudetaro", "name:ja": "ゆで太郎", "takeaway": "yes"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/fast_food/ゆで太郎": {"name": "ゆで太郎", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/273267212711878/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11280824", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "ゆで太郎", "brand:en": "Yudetaro", "brand:ja": "ゆで太郎", "brand:wikidata": "Q11280824", "brand:wikipedia": "ja:ゆで太郎", "cuisine": "noodle", "name": "ゆで太郎", "name:en": "Yudetaro", "name:ja": "ゆで太郎", "takeaway": "yes"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/burger/ウェンディーズ": {"name": "ウェンディーズ", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/wendys/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q550258", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "ウェンディーズ", "brand:en": "Wendy's", "brand:ja": "ウェンディーズ", "brand:wikidata": "Q550258", "brand:wikipedia": "en:Wendy's", "cuisine": "burger", "name": "ウェンディーズ", "name:en": "Wendy's", "name:ja": "ウェンディーズ", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/fast_food/オリジン弁当": {"name": "オリジン弁当", "icon": "maki-fast-food", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11292632", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "オリジン弁当", "brand:en": "Origin Bentō", "brand:ja": "オリジン弁当", "brand:wikidata": "Q11292632", "brand:wikipedia": "ja:オリジン東秀", "cuisine": "japanese", "name": "オリジン弁当", "name:en": "Origin Bentō", "name:ja": "オリジン弁当", "takeaway": "yes"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/fast_food/オリジン弁当": {"name": "オリジン弁当", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/152356971456128/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11292632", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "オリジン弁当", "brand:en": "Origin Bentō", "brand:ja": "オリジン弁当", "brand:wikidata": "Q11292632", "brand:wikipedia": "ja:オリジン東秀", "cuisine": "japanese", "name": "オリジン弁当", "name:en": "Origin Bentō", "name:ja": "オリジン弁当", "takeaway": "yes"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/chicken/ケンタッキーフライドチキン": {"name": "ケンタッキーフライドチキン", "icon": "fas-drumstick-bite", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FKFC%20Logo.svg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q524757", "amenity": "fast_food", "cuisine": "chicken"}, "addTags": {"amenity": "fast_food", "brand": "ケンタッキーフライドチキン", "brand:en": "KFC", "brand:ja": "ケンタッキーフライドチキン", "brand:wikidata": "Q524757", "brand:wikipedia": "ja:KFCコーポレーション", "cuisine": "chicken", "name": "ケンタッキーフライドチキン", "name:en": "KFC", "name:ja": "ケンタッキーフライドチキン", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "chicken"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/sandwich/サブウェイ": {"name": "サブウェイ", "icon": "temaki-sandwich", "imageURL": "https://graph.facebook.com/subway/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q244457", "amenity": "fast_food", "cuisine": "sandwich"}, "addTags": {"amenity": "fast_food", "brand": "サブウェイ", "brand:en": "Subway", "brand:ja": "サブウェイ", "brand:wikidata": "Q244457", "brand:wikipedia": "ja:サブウェイ", "cuisine": "sandwich", "name": "サブウェイ", "name:en": "Subway", "name:ja": "サブウェイ", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "sandwich"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/スシロー": {"name": "スシロー", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/akindosushiro/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11257037", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "スシロー", "brand:en": "Sushiro", "brand:ja": "スシロー", "brand:wikidata": "Q11257037", "brand:wikipedia": "ja:あきんどスシロー", "cuisine": "sushi", "name": "スシロー", "name:en": "Sushiro", "name:ja": "スシロー", "name:zh": "壽司郎", "takeaway": "yes"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -2238,12 +2278,12 @@ "amenity/fast_food/pizza/ピザハット": {"name": "ピザハット", "icon": "maki-restaurant-pizza", "imageURL": "https://graph.facebook.com/pizzahutus/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q191615", "amenity": "fast_food", "cuisine": "pizza"}, "addTags": {"amenity": "fast_food", "brand": "ピザハット", "brand:en": "Pizza Hut", "brand:ja": "ピザハット", "brand:wikidata": "Q191615", "brand:wikipedia": "ja:ピザハット", "cuisine": "pizza", "name": "ピザハット", "name:en": "Pizza Hut", "name:ja": "ピザハット", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "pizza"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/pizza/ピザ・カリフォルニア": {"name": "ピザ・カリフォルニア", "icon": "maki-restaurant-pizza", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q75324", "amenity": "fast_food", "cuisine": "pizza"}, "addTags": {"amenity": "fast_food", "brand": "ピザ・カリフォルニア", "brand:en": "Pizza California", "brand:ja": "ピザ・カリフォルニア", "brand:wikidata": "Q75324", "brand:wikipedia": "ja:ピザ・カリフォルニア", "cuisine": "pizza", "name": "ピザ・カリフォルニア", "name:en": "Pizza California", "name:ja": "ピザ・カリフォルニア", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "pizza"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/pizza/ピザーラ": {"name": "ピザーラ", "icon": "maki-restaurant-pizza", "imageURL": "https://graph.facebook.com/pizzala.jp/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7199948", "amenity": "fast_food", "cuisine": "pizza"}, "addTags": {"amenity": "fast_food", "brand": "ピザーラ", "brand:en": "Pizza-La", "brand:ja": "ピザーラ", "brand:wikidata": "Q7199948", "brand:wikipedia": "ja:ピザーラ", "cuisine": "pizza", "name": "ピザーラ", "name:en": "Pizza-La", "name:ja": "ピザーラ", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "pizza"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/fast_food/pizza/ファーストキッチン": {"name": "ファーストキッチン", "icon": "maki-restaurant-pizza", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5453133", "amenity": "fast_food", "cuisine": "pizza"}, "addTags": {"amenity": "fast_food", "brand": "ファーストキッチン", "brand:en": "First Kitchen", "brand:ja": "ファーストキッチン", "brand:wikidata": "Q5453133", "brand:wikipedia": "ja:ファーストキッチン", "cuisine": "pizza", "name": "ファーストキッチン", "name:en": "First Kitchen", "name:ja": "ファーストキッチン", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "pizza"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/fast_food/pizza/ファーストキッチン": {"name": "ファーストキッチン", "icon": "maki-restaurant-pizza", "imageURL": "https://graph.facebook.com/firstkitchen.offical/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5453133", "amenity": "fast_food", "cuisine": "pizza"}, "addTags": {"amenity": "fast_food", "brand": "ファーストキッチン", "brand:en": "First Kitchen", "brand:ja": "ファーストキッチン", "brand:wikidata": "Q5453133", "brand:wikipedia": "ja:ファーストキッチン", "cuisine": "pizza", "name": "ファーストキッチン", "name:en": "First Kitchen", "name:ja": "ファーストキッチン", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "pizza"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/burger/フレッシュネスバーガー": {"name": "フレッシュネスバーガー", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/freshness.burger.official/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5503087", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "フレッシュネスバーガー", "brand:en": "Freshness Burger", "brand:ja": "フレッシュネスバーガー", "brand:wikidata": "Q5503087", "brand:wikipedia": "ja:フレッシュネスバーガー", "cuisine": "burger", "name": "フレッシュネスバーガー", "name:en": "Freshness Burger", "name:ja": "フレッシュネスバーガー", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/burger/マクドナルド": {"name": "マクドナルド", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/mcdonalds/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q38076", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "マクドナルド", "brand:en": "McDonald's", "brand:ja": "マクドナルド", "brand:wikidata": "Q38076", "brand:wikipedia": "ja:マクドナルド", "cuisine": "burger", "name": "マクドナルド", "name:en": "McDonald's", "name:ja": "マクドナルド", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/donut/ミスタードーナツ": {"name": "ミスタードーナツ", "icon": "temaki-donut", "imageURL": "https://graph.facebook.com/misdo.jp/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1065819", "amenity": "fast_food", "cuisine": "donut"}, "addTags": {"amenity": "fast_food", "brand": "ミスタードーナツ", "brand:en": "Mister Donut", "brand:ja": "ミスタードーナツ", "brand:wikidata": "Q1065819", "brand:wikipedia": "en:Mister Donut", "cuisine": "donut", "name": "ミスタードーナツ", "name:en": "Mister Donut", "name:ja": "ミスタードーナツ", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "donut"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/burger/モスバーガー": {"name": "モスバーガー", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/mosburger/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1204169", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "モスバーガー", "brand:en": "MOS Burger", "brand:ja": "モスバーガー", "brand:wikidata": "Q1204169", "brand:wikipedia": "ja:モスバーガー", "cuisine": "burger", "name": "モスバーガー", "name:en": "MOS Burger", "name:ja": "モスバーガー", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/fast_food/ラーメン二郎": {"name": "ラーメン二郎", "icon": "maki-fast-food", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11347765", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "ラーメン二郎", "brand:en": "Ramen Jiro", "brand:ja": "ラーメン二郎", "brand:wikidata": "Q11347765", "brand:wikipedia": "ja:ラーメン二郎", "cuisine": "ramen", "name": "ラーメン二郎", "name:en": "Ramen Jiro", "name:ja": "ラーメン二郎", "takeaway": "yes"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/fast_food/ラーメン二郎": {"name": "ラーメン二郎", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/jirolian/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11347765", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "ラーメン二郎", "brand:en": "Ramen Jiro", "brand:ja": "ラーメン二郎", "brand:wikidata": "Q11347765", "brand:wikipedia": "ja:ラーメン二郎", "cuisine": "ramen", "name": "ラーメン二郎", "name:en": "Ramen Jiro", "name:ja": "ラーメン二郎", "takeaway": "yes"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/burger/ロッテリア": {"name": "ロッテリア", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/ilovelotteria/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q249525", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "ロッテリア", "brand:en": "Lotteria", "brand:ja": "ロッテリア", "brand:wikidata": "Q249525", "brand:wikipedia": "ja:ロッテリア", "cuisine": "burger", "name": "ロッテリア", "name:en": "Lotteria", "name:ja": "ロッテリア", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/吉野家": {"name": "吉野家", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/tw.yoshinoya/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q776272", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "吉野家", "brand:en": "Yoshinoya", "brand:ja": "吉野家", "brand:wikidata": "Q776272", "brand:wikipedia": "ja:吉野家", "cuisine": "beef_bowl", "name": "吉野家", "name:en": "Yoshinoya", "name:ja": "吉野家", "takeaway": "yes"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/富士そば": {"name": "富士そば", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/fujisoba/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11414722", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "富士そば", "brand:en": "Fuji Soba", "brand:ja": "富士そば", "brand:wikidata": "Q11414722", "brand:wikipedia": "ja:名代富士そば", "cuisine": "soba", "name": "富士そば", "name:en": "Fuji Soba", "name:ja": "富士そば", "takeaway": "yes"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -2252,12 +2292,12 @@ "amenity/fast_food/日高屋": {"name": "日高屋", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/hidakayavietnam/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11326050", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "日高屋", "brand:en": "Hidakaya", "brand:wikidata": "Q11326050", "brand:wikipedia": "ja:ハイデイ日高", "cuisine": "noodle", "name": "日高屋", "name:en": "Hidakaya", "takeaway": "yes"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/松屋": {"name": "松屋", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/matsuyafoods.matsuya/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q848773", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "松屋", "brand:en": "Matsuya", "brand:ja": "松屋", "brand:wikidata": "Q848773", "brand:wikipedia": "ja:松屋フーズ", "cuisine": "japanese", "name": "松屋", "name:en": "Matsuya", "name:ja": "松屋", "official_name": "松屋フーズ", "official_name:en": "Matsuya Foods", "official_name:ja": "松屋フーズ", "takeaway": "yes"}, "countryCodes": ["cn", "hk", "jp", "mo", "sg", "tw"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/箱根そば": {"name": "箱根そば", "icon": "maki-fast-food", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11603345", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "箱根そば", "brand:en": "Hakone Soba", "brand:ja": "箱根そば", "brand:wikidata": "Q11603345", "brand:wikipedia": "ja:箱根そば", "cuisine": "soba", "name": "箱根そば", "name:en": "Hakone Soba", "name:ja": "箱根そば", "takeaway": "yes"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/fast_food/築地銀だこ": {"name": "築地銀だこ", "icon": "maki-fast-food", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11603490", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "築地銀だこ", "brand:en": "HotLand", "brand:ja": "築地銀だこ", "brand:wikidata": "Q11603490", "brand:wikipedia": "ja:築地銀だこ", "cuisine": "japanese", "name": "築地銀だこ", "name:en": "HotLand", "name:ja": "築地銀だこ", "takeaway": "yes"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/fast_food/築地銀だこ": {"name": "築地銀だこ", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/GindacoUSA/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11603490", "amenity": "fast_food"}, "addTags": {"amenity": "fast_food", "brand": "築地銀だこ", "brand:en": "Gindaco", "brand:ja": "築地銀だこ", "brand:wikidata": "Q11603490", "brand:wikipedia": "ja:築地銀だこ", "cuisine": "takoyaki", "name": "築地銀だこ", "name:en": "Gindaco", "name:ja": "築地銀だこ", "takeaway": "yes"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/chicken/肯德基": {"name": "肯德基", "icon": "fas-drumstick-bite", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FKFC%20Logo.svg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q524757", "amenity": "fast_food", "cuisine": "chicken"}, "addTags": {"amenity": "fast_food", "brand": "肯德基", "brand:en": "KFC", "brand:wikidata": "Q524757", "brand:wikipedia": "zh:肯德基", "cuisine": "chicken", "name": "肯德基", "name:en": "KFC", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "chicken"}, "countryCodes": ["cn", "hk", "mo", "sg", "tw"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/fast_food/burger/麥當勞": {"name": "麥當勞", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/mcdonalds/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q38076", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "麥當勞", "brand:en": "McDonald's", "brand:lzh": "麥當勞", "brand:wikidata": "Q38076", "brand:wikipedia": "zh_classical:麥當勞", "cuisine": "burger", "name": "麥當勞", "name:en": "McDonald's", "name:lzh": "麥當勞", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "countryCodes": ["hk", "mo", "tw"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/fast_food/burger/麦当劳": {"name": "麦当劳", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/mcdonalds/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q38076", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "麦当劳", "brand:en": "McDonald's", "brand:wikidata": "Q38076", "brand:wikipedia": "zh:麦当劳", "brand:zh": "麦当劳", "cuisine": "burger", "name": "麦当劳", "name:en": "McDonald's", "name:zh": "麦当劳", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "countryCodes": ["cn", "sg"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/fast_food/burger/麥當勞": {"name": "麥當勞", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/mcdonalds/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q38076", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "麥當勞", "brand:en": "McDonald's", "brand:wikidata": "Q38076", "brand:wikipedia": "zh:麥當勞", "brand:zh": "麥當勞", "brand:zh-Hant": "麥當勞", "cuisine": "burger", "name": "麥當勞", "name:en": "McDonald's", "name:zh": "麥當勞", "name:zh-Hant": "麥當勞", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "countryCodes": ["hk", "mo", "tw"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/fast_food/burger/麦当劳": {"name": "麦当劳", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/mcdonalds/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q38076", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "麦当劳", "brand:en": "McDonald's", "brand:wikidata": "Q38076", "brand:wikipedia": "zh:麦当劳", "brand:zh": "麦当劳", "brand:zh-Hans": "麦当劳", "cuisine": "burger", "name": "麦当劳", "name:en": "McDonald's", "name:zh": "麦当劳", "name:zh-Hans": "麦当劳", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "countryCodes": ["cn", "sg"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/burger/롯데리아": {"name": "롯데리아", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/ilovelotteria/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q249525", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "롯데리아", "brand:en": "Lotteria", "brand:ko": "롯데리아", "brand:wikidata": "Q249525", "brand:wikipedia": "ko:롯데리아", "cuisine": "burger", "name": "롯데리아", "name:en": "Lotteria", "name:ko": "롯데리아", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "countryCodes": ["kr"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/fast_food/burger/맘스터치": {"name": "맘스터치", "icon": "maki-fast-food", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q23044856", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "맘스터치", "brand:ko": "맘스터치", "brand:wikidata": "Q23044856", "brand:wikipedia": "en:Mom's Touch", "cuisine": "burger", "name": "맘스터치", "name:ko": "맘스터치", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "countryCodes": ["kr"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/fast_food/burger/맘스터치": {"name": "맘스터치", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/momstouchmain/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q23044856", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "맘스터치", "brand:ko": "맘스터치", "brand:wikidata": "Q23044856", "brand:wikipedia": "en:Mom's Touch", "cuisine": "burger", "name": "맘스터치", "name:ko": "맘스터치", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "countryCodes": ["kr"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fast_food/burger/맥도날드": {"name": "맥도날드", "icon": "maki-fast-food", "imageURL": "https://graph.facebook.com/mcdonalds/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q38076", "amenity": "fast_food", "cuisine": "burger"}, "addTags": {"amenity": "fast_food", "brand": "맥도날드", "brand:en": "McDonald's", "brand:ko": "맥도날드", "brand:wikidata": "Q38076", "brand:wikipedia": "ko:맥도날드", "cuisine": "burger", "name": "맥도날드", "name:en": "McDonald's", "name:ko": "맥도날드", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "burger"}, "countryCodes": ["kr"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fuel/1-2-3": {"name": "1-2-3", "icon": "maki-fuel", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4545742", "amenity": "fuel"}, "addTags": {"amenity": "fuel", "brand": "1-2-3", "brand:wikidata": "Q4545742", "brand:wikipedia": "en:1-2-3 (fuel station)", "name": "1-2-3"}, "countryCodes": ["dk", "pl"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fuel/7-Eleven": {"name": "7-Eleven", "icon": "maki-fuel", "imageURL": "https://graph.facebook.com/7ElevenMexico/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q259340", "amenity": "fuel"}, "addTags": {"amenity": "fuel", "brand": "7-Eleven", "brand:wikidata": "Q259340", "brand:wikipedia": "en:7-Eleven", "name": "7-Eleven"}, "terms": ["7-11", "seven eleven"], "matchScore": 2, "suggestion": true}, @@ -2268,6 +2308,7 @@ "amenity/fuel/Afriquia": {"name": "Afriquia", "icon": "maki-fuel", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2829178", "amenity": "fuel"}, "addTags": {"amenity": "fuel", "brand": "Afriquia", "brand:wikidata": "Q2829178", "brand:wikipedia": "en:Akwa Group", "name": "Afriquia"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fuel/Agip": {"name": "Agip", "icon": "maki-fuel", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q377915", "amenity": "fuel"}, "addTags": {"amenity": "fuel", "brand": "Agip", "brand:wikidata": "Q377915", "brand:wikipedia": "en:Agip", "name": "Agip"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fuel/Agrola": {"name": "Agrola", "icon": "maki-fuel", "imageURL": "https://graph.facebook.com/AGROLA.AG/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q397351", "amenity": "fuel"}, "addTags": {"amenity": "fuel", "brand": "Agrola", "brand:wikidata": "Q397351", "brand:wikipedia": "de:Agrola", "name": "Agrola"}, "countryCodes": ["ch"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/fuel/Aloha Petroleum": {"name": "Aloha Petroleum", "icon": "maki-fuel", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4734197", "amenity": "fuel"}, "addTags": {"amenity": "fuel", "brand": "Aloha Petroleum", "brand:wikidata": "Q4734197", "brand:wikipedia": "en:Aloha Petroleum", "name": "Aloha Petroleum", "official_name": "Aloha Petroleum Ltd"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fuel/Alon": {"name": "Alon", "icon": "maki-fuel", "imageURL": "https://graph.facebook.com/alonbrands/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62274304", "amenity": "fuel"}, "addTags": {"amenity": "fuel", "brand": "Alon", "brand:wikidata": "Q62274304", "name": "Alon"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fuel/Alpet": {"name": "Alpet", "icon": "maki-fuel", "imageURL": "https://graph.facebook.com/ALPETtr/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62131561", "amenity": "fuel"}, "addTags": {"amenity": "fuel", "brand": "Alpet", "brand:wikidata": "Q62131561", "name": "Alpet"}, "countryCodes": ["al", "tr"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fuel/Api": {"name": "Api", "icon": "maki-fuel", "imageURL": "https://graph.facebook.com/TheAmericanPetroleumInstitute/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q466043", "amenity": "fuel"}, "addTags": {"amenity": "fuel", "brand": "Api", "brand:wikidata": "Q466043", "brand:wikipedia": "en:American Petroleum Institute", "name": "Api"}, "countryCodes": ["it"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -2293,8 +2334,7 @@ "amenity/fuel/CEPSA": {"name": "CEPSA", "icon": "maki-fuel", "imageURL": "https://graph.facebook.com/CEPSAespana/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q608819", "amenity": "fuel"}, "addTags": {"amenity": "fuel", "brand": "CEPSA", "brand:wikidata": "Q608819", "brand:wikipedia": "en:Cepsa", "name": "CEPSA"}, "countryCodes": ["es", "pt"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fuel/Caltex": {"name": "Caltex", "icon": "maki-fuel", "imageURL": "https://pbs.twimg.com/profile_images/582354948345634816/nzfEGDG1_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q277470", "amenity": "fuel"}, "addTags": {"amenity": "fuel", "brand": "Caltex", "brand:wikidata": "Q277470", "brand:wikipedia": "en:Caltex", "name": "Caltex"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fuel/Canadian Tire Gas+": {"name": "Canadian Tire Gas+", "icon": "maki-fuel", "imageURL": "https://graph.facebook.com/Canadiantire/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1032400", "amenity": "fuel"}, "addTags": {"amenity": "fuel", "brand": "Canadian Tire", "brand:wikidata": "Q1032400", "brand:wikipedia": "en:Canadian Tire", "name": "Canadian Tire"}, "terms": ["canadian tire", "canadian tire gas bar"], "matchScore": 2, "suggestion": true}, - "amenity/fuel/Carrefour": {"name": "Carrefour", "icon": "maki-fuel", "imageURL": "https://graph.facebook.com/carrefour/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q217599", "amenity": "fuel"}, "addTags": {"brand": "Carrefour", "brand:wikidata": "Q217599", "brand:wikipedia": "fr:Carrefour (enseigne)", "name": "Carrefour"}, "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/fuel/Carrefour Market": {"name": "Carrefour Market", "icon": "maki-fuel", "imageURL": "https://graph.facebook.com/carrefour/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q217599", "amenity": "fuel"}, "addTags": {"amenity": "fuel", "brand": "Carrefour Market", "brand:wikidata": "Q217599", "brand:wikipedia": "en:Carrefour", "name": "Carrefour Market"}, "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/fuel/Carrefour": {"name": "Carrefour", "icon": "maki-fuel", "imageURL": "https://graph.facebook.com/carrefour/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q217599", "amenity": "fuel"}, "addTags": {"brand": "Carrefour", "brand:wikidata": "Q217599", "brand:wikipedia": "fr:Carrefour (enseigne)", "name": "Carrefour"}, "terms": ["carrefour market"], "matchScore": 2, "suggestion": true}, "amenity/fuel/Casey's General Store": {"name": "Casey's General Store", "icon": "maki-fuel", "imageURL": "https://graph.facebook.com/caseys/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2940968", "amenity": "fuel"}, "addTags": {"amenity": "fuel", "brand": "Casey's General Store", "brand:wikidata": "Q2940968", "brand:wikipedia": "en:Casey's General Stores", "name": "Casey's General Store"}, "terms": ["caseys"], "matchScore": 2, "suggestion": true}, "amenity/fuel/Cenex": {"name": "Cenex", "icon": "maki-fuel", "imageURL": "https://graph.facebook.com/CenexStores/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5011381", "amenity": "fuel"}, "addTags": {"amenity": "fuel", "brand": "Cenex", "brand:wikidata": "Q5011381", "brand:wikipedia": "en:CHS Inc.", "name": "Cenex"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fuel/Ceypetco": {"name": "Ceypetco", "icon": "maki-fuel", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5065795", "amenity": "fuel"}, "addTags": {"amenity": "fuel", "brand": "Ceypetco", "brand:wikidata": "Q5065795", "brand:wikipedia": "en:Ceylon Petroleum Corporation", "name": "Ceypetco"}, "countryCodes": ["lk"], "terms": ["lanka filling station"], "matchScore": 2, "suggestion": true}, @@ -2530,19 +2570,23 @@ "amenity/fuel/出光": {"name": "出光", "icon": "maki-fuel", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2216770", "amenity": "fuel"}, "addTags": {"amenity": "fuel", "brand": "出光", "brand:en": "Idemitsu Kosan", "brand:wikidata": "Q2216770", "brand:wikipedia": "en:Idemitsu Kosan", "name": "出光", "name:en": "Idemitsu Kosan"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/fuel/台灣中油": {"name": "台灣中油", "icon": "maki-fuel", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q21527177", "amenity": "fuel"}, "addTags": {"amenity": "fuel", "brand": "台灣中油", "brand:en": "CPC Corporation, Taiwan", "brand:wikidata": "Q21527177", "brand:wikipedia": "en:CPC Corporation, Taiwan", "name": "台灣中油", "name:en": "CPC Corporation, Taiwan"}, "countryCodes": ["tw"], "terms": ["中油"], "matchScore": 2, "suggestion": true}, "amenity/fuel/昭和シェル": {"name": "昭和シェル", "icon": "maki-fuel", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q277115", "amenity": "fuel"}, "addTags": {"amenity": "fuel", "brand": "昭和シェル", "brand:en": "Showa Shell Sekiyu", "brand:ja": "昭和シェル", "brand:wikidata": "Q277115", "brand:wikipedia": "en:Showa Shell Sekiyu", "name": "昭和シェル", "name:en": "Showa Shell Sekiyu", "name:ja": "昭和シェル"}, "countryCodes": ["jp"], "terms": ["昭和シェル石油"], "matchScore": 2, "suggestion": true}, + "amenity/hospital/VA Medical Center": {"name": "VA Medical Center", "icon": "maki-hospital", "imageURL": "https://graph.facebook.com/VeteransHealth/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6580225", "amenity": "hospital"}, "addTags": {"amenity": "hospital", "brand": "VA", "brand:wikidata": "Q6580225", "brand:wikipedia": "en:Veterans Health Administration", "healthcare": "hospital", "healthcare:for": "veterans", "name": "VA Medical Center", "short_name": "VA"}, "reference": {"key": "amenity", "value": "hospital"}, "countryCodes": ["us"], "terms": ["department of veterans affairs medical center", "veterans administration", "veterans administration hospital", "veterans administration medical center", "veterans affairs", "veterans affairs hospital", "veterans affairs medical center"], "matchScore": 2, "suggestion": true}, "amenity/ice_cream/Baskin-Robbins": {"name": "Baskin-Robbins", "icon": "fas-ice-cream", "imageURL": "https://graph.facebook.com/baskinrobbinsUS/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q584601", "amenity": "ice_cream"}, "addTags": {"amenity": "ice_cream", "brand": "Baskin-Robbins", "brand:wikidata": "Q584601", "brand:wikipedia": "en:Baskin-Robbins", "cuisine": "ice_cream", "name": "Baskin-Robbins"}, "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/ice_cream/Ben & Jerry's": {"name": "Ben & Jerry's", "icon": "fas-ice-cream", "imageURL": "https://graph.facebook.com/BenandJerryAustralia/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q816412", "amenity": "ice_cream"}, "addTags": {"amenity": "ice_cream", "brand": "Ben & Jerry's", "brand:wikidata": "Q816412", "brand:wikipedia": "en:Ben & Jerry's", "cuisine": "ice_cream", "name": "Ben & Jerry's"}, "terms": ["ben and jerrys"], "matchScore": 2, "suggestion": true}, + "amenity/ice_cream/Ben & Jerry's": {"name": "Ben & Jerry's", "icon": "fas-ice-cream", "imageURL": "https://graph.facebook.com/BenandJerryAustralia/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q816412", "amenity": "ice_cream"}, "addTags": {"amenity": "ice_cream", "brand": "Ben & Jerry's", "brand:wikidata": "Q816412", "brand:wikipedia": "en:Ben & Jerry's", "cuisine": "ice_cream", "name": "Ben & Jerry's"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/ice_cream/Bruster's Ice Cream": {"name": "Bruster's Ice Cream", "icon": "fas-ice-cream", "imageURL": "https://graph.facebook.com/BrustersRealIceCream/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4979810", "amenity": "ice_cream"}, "addTags": {"amenity": "ice_cream", "brand": "Bruster's Ice Cream", "brand:wikidata": "Q4979810", "brand:wikipedia": "en:Bruster's Ice Cream", "cuisine": "ice_cream", "name": "Bruster's Ice Cream"}, "countryCodes": ["us"], "terms": ["brusters"], "matchScore": 2, "suggestion": true}, "amenity/ice_cream/Cold Stone Creamery": {"name": "Cold Stone Creamery", "icon": "fas-ice-cream", "imageURL": "https://graph.facebook.com/coldstonecreamery/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1094923", "amenity": "ice_cream"}, "addTags": {"amenity": "ice_cream", "brand": "Cold Stone Creamery", "brand:wikidata": "Q1094923", "brand:wikipedia": "en:Cold Stone Creamery", "cuisine": "ice_cream", "name": "Cold Stone Creamery"}, "countryCodes": ["ng", "us"], "terms": ["cold stone"], "matchScore": 2, "suggestion": true}, "amenity/ice_cream/D'Onofrio": {"name": "D'Onofrio", "icon": "fas-ice-cream", "imageURL": "https://graph.facebook.com/DonofrioDOficial/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5203166", "amenity": "ice_cream"}, "addTags": {"amenity": "ice_cream", "brand": "D'Onofrio", "brand:wikidata": "Q5203166", "brand:wikipedia": "es:D'Onofrio", "cuisine": "ice_cream", "name": "D'Onofrio"}, "countryCodes": ["pe"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/ice_cream/Freddo": {"name": "Freddo", "icon": "fas-ice-cream", "imageURL": "https://graph.facebook.com/FreddoUSA/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q28823999", "amenity": "ice_cream"}, "addTags": {"amenity": "ice_cream", "brand": "Freddo", "brand:wikidata": "Q28823999", "brand:wikipedia": "es:Freddo", "cuisine": "ice_cream", "name": "Freddo"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/ice_cream/Graeter's": {"name": "Graeter's", "icon": "fas-ice-cream", "imageURL": "https://graph.facebook.com/Graeters/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5592430", "amenity": "ice_cream"}, "addTags": {"amenity": "ice_cream", "brand": "Graeter's", "brand:wikidata": "Q5592430", "brand:wikipedia": "en:Graeter's", "cuisine": "ice_cream", "name": "Graeter's", "takeaway": "yes"}, "countryCodes": ["us"], "terms": ["greaters"], "matchScore": 2, "suggestion": true}, "amenity/ice_cream/Grido": {"name": "Grido", "icon": "fas-ice-cream", "imageURL": "https://graph.facebook.com/GridoHelados/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5885724", "amenity": "ice_cream"}, "addTags": {"amenity": "ice_cream", "brand": "Grido", "brand:wikidata": "Q5885724", "brand:wikipedia": "es:Grido Helado", "cuisine": "ice_cream", "name": "Grido"}, "countryCodes": ["ar"], "terms": ["grido helado"], "matchScore": 2, "suggestion": true}, + "amenity/ice_cream/Häagen-Dazs": {"name": "Häagen-Dazs", "icon": "fas-ice-cream", "imageURL": "https://pbs.twimg.com/profile_images/827598241403371520/qHkQxKH3_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1143333", "amenity": "ice_cream"}, "addTags": {"amenity": "ice_cream", "brand": "Häagen-Dazs", "brand:wikidata": "Q1143333", "brand:wikipedia": "en:Häagen-Dazs", "name": "Häagen-Dazs"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/ice_cream/La Michoacana": {"name": "La Michoacana", "icon": "fas-ice-cream", "imageURL": "https://graph.facebook.com/LaMichoacana.sv/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q17118857", "amenity": "ice_cream"}, "addTags": {"amenity": "ice_cream", "brand": "La Michoacana", "brand:wikidata": "Q17118857", "brand:wikipedia": "en:Paletería La Michoacana", "name": "La Michoacana"}, "countryCodes": ["mx"], "terms": ["paleteria la michoacana"], "matchScore": 2, "suggestion": true}, "amenity/ice_cream/Marble Slab Creamery": {"name": "Marble Slab Creamery", "icon": "fas-ice-cream", "imageURL": "https://graph.facebook.com/marbleslabcreamery/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q17020087", "amenity": "ice_cream"}, "addTags": {"amenity": "ice_cream", "brand": "Marble Slab Creamery", "brand:wikidata": "Q17020087", "brand:wikipedia": "en:Marble Slab Creamery", "cuisine": "ice_cream", "name": "Marble Slab Creamery"}, "countryCodes": ["ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/ice_cream/Menchie's": {"name": "Menchie's", "icon": "fas-ice-cream", "imageURL": "https://graph.facebook.com/MyMenchies/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6816528", "amenity": "ice_cream"}, "addTags": {"amenity": "ice_cream", "brand": "Menchie's", "brand:wikidata": "Q6816528", "brand:wikipedia": "en:Menchie's Frozen Yogurt", "cuisine": "frozen_yogurt", "name": "Menchie's"}, "countryCodes": ["ae", "bh", "bs", "ca", "cn", "gb", "in", "jp", "kw", "qa", "sa", "us"], "terms": ["menchie's frozen yoghurt", "menchie's frozen yogurt"], "matchScore": 2, "suggestion": true}, - "amenity/ice_cream/Ralph's Italian Ices": {"name": "Ralph's Italian Ices", "icon": "fas-ice-cream", "imageURL": "https://graph.facebook.com/RalphsFamous/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62576909", "amenity": "ice_cream"}, "addTags": {"amenity": "ice_cream", "brand": "Ralph's Italian Ices", "brand:wikidata": "Q62576909", "cuisine": "ice_cream", "name": "Ralph's Italian Ices", "official_name": "Ralph's Famous Italian Ices"}, "countryCodes": ["us"], "terms": ["ralphs famous italian ices & ice cream", "ralphs famous italian ices and ice cream", "ralphs italian ice", "ralphs italian ices & ice cream", "ralphs italian ices and ice cream"], "matchScore": 2, "suggestion": true}, + "amenity/ice_cream/Pinkberry": {"name": "Pinkberry", "icon": "fas-ice-cream", "imageURL": "https://graph.facebook.com/pinkberry/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2904053", "amenity": "ice_cream"}, "addTags": {"amenity": "ice_cream", "brand": "Pinkberry", "brand:wikidata": "Q2904053", "brand:wikipedia": "en:Pinkberry", "cuisine": "frozen_yogurt", "name": "Pinkberry", "takeaway": "yes"}, "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/ice_cream/Ralph's Italian Ices": {"name": "Ralph's Italian Ices", "icon": "fas-ice-cream", "imageURL": "https://graph.facebook.com/RalphsFamous/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62576909", "amenity": "ice_cream"}, "addTags": {"amenity": "ice_cream", "brand": "Ralph's Italian Ices", "brand:wikidata": "Q62576909", "cuisine": "ice_cream", "name": "Ralph's Italian Ices", "official_name": "Ralph's Famous Italian Ices"}, "countryCodes": ["us"], "terms": ["ralphs famous italian ices and ice cream", "ralphs italian ice", "ralphs italian ices and ice cream"], "matchScore": 2, "suggestion": true}, "amenity/ice_cream/Rita's Italian Ice": {"name": "Rita's Italian Ice", "icon": "fas-ice-cream", "imageURL": "https://graph.facebook.com/RitasItalianIceCompany/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7336456", "amenity": "ice_cream"}, "addTags": {"amenity": "ice_cream", "brand": "Rita's Italian Ice", "brand:wikidata": "Q7336456", "brand:wikipedia": "en:Rita's Italian Ice", "cuisine": "ice_cream", "name": "Rita's Italian Ice"}, "countryCodes": ["us"], "terms": ["ritas", "ritas water ice"], "matchScore": 2, "suggestion": true}, + "amenity/ice_cream/Yogen Früz": {"name": "Yogen Früz", "icon": "fas-ice-cream", "imageURL": "https://pbs.twimg.com/profile_images/717339887498878977/ZDfPSjfD_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q8054358", "amenity": "ice_cream"}, "addTags": {"amenity": "ice_cream", "brand": "Yogen Früz", "brand:wikidata": "Q8054358", "brand:wikipedia": "en:Yogen Früz", "cuisine": "frozen_yogurt", "name": "Yogen Früz", "takeaway": "yes"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/ice_cream/Yogurtland": {"name": "Yogurtland", "icon": "fas-ice-cream", "imageURL": "https://graph.facebook.com/yogurtland/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q8054428", "amenity": "ice_cream"}, "addTags": {"amenity": "ice_cream", "brand": "Yogurtland", "brand:wikidata": "Q8054428", "brand:wikipedia": "en:Yogurtland", "cuisine": "frozen_yogurt", "name": "Yogurtland", "takeaway": "yes"}, "countryCodes": ["ae", "au", "sg", "th", "us", "ve"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/ice_cream/sweetFrog": {"name": "sweetFrog", "icon": "fas-ice-cream", "imageURL": "https://graph.facebook.com/sweetfrogfroyo/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q16952110", "amenity": "ice_cream"}, "addTags": {"amenity": "ice_cream", "brand": "sweetFrog", "brand:wikidata": "Q16952110", "brand:wikipedia": "en:Sweet Frog", "cuisine": "frozen_yogurt", "name": "sweetFrog"}, "countryCodes": ["us"], "terms": ["sweetfrog frozen yogurt", "sweetfrog premium frozen yogurt"], "matchScore": 2, "suggestion": true}, "amenity/ice_cream/サーティワンアイスクリーム": {"name": "サーティワンアイスクリーム", "icon": "fas-ice-cream", "imageURL": "https://graph.facebook.com/baskinrobbinsUS/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q584601", "amenity": "ice_cream"}, "addTags": {"amenity": "ice_cream", "brand": "バスキン・ロビンス", "brand:en": "Baskin-Robbins", "brand:ja": "バスキン・ロビンス", "brand:wikidata": "Q584601", "brand:wikipedia": "ja:バスキン・ロビンス", "cuisine": "ice_cream", "name": "サーティワンアイスクリーム", "name:en": "Baskin-Robbins", "name:ja": "サーティワンアイスクリーム"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -2551,12 +2595,27 @@ "amenity/kindergarten/KinderCare": {"name": "KinderCare", "icon": "maki-school", "imageURL": "https://graph.facebook.com/kindercare/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6410551", "amenity": "kindergarten"}, "addTags": {"after_school": "yes", "alt_name": "KinderCare Learning Center", "amenity": "kindergarten", "brand": "KinderCare", "brand:wikidata": "Q6410551", "brand:wikipedia": "en:KinderCare Learning Centers", "fee": "yes", "isced:level": "0", "max_age": "12", "min_age": "6 weeks", "name": "KinderCare", "nursery": "yes", "preschool": "yes"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/kindergarten/La Petite Academy": {"name": "La Petite Academy", "icon": "maki-school", "imageURL": "https://graph.facebook.com/LaPetiteAcademy/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q64877784", "amenity": "kindergarten"}, "addTags": {"amenity": "kindergarten", "brand": "La Petite Academy", "brand:wikidata": "Q64877784", "fee": "yes", "isced:level": "0", "name": "La Petite Academy", "nursery": "yes", "preschool": "yes"}, "countryCodes": ["us"], "terms": ["la petite"], "matchScore": 2, "suggestion": true}, "amenity/kindergarten/New Horizon Academy": {"name": "New Horizon Academy", "icon": "maki-school", "imageURL": "https://pbs.twimg.com/profile_images/778681004206592001/ZQF3Eurh_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q64821306", "amenity": "kindergarten"}, "addTags": {"after_school": "yes", "amenity": "kindergarten", "brand": "New Horizon Academy", "brand:wikidata": "Q64821306", "fee": "yes", "isced:level": "0", "name": "New Horizon Academy", "nursery": "yes", "preschool": "yes"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/kindergarten/Primrose School": {"name": "Primrose School", "icon": "maki-school", "imageURL": "https://graph.facebook.com/PrimroseSchools/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7243677", "amenity": "kindergarten"}, "addTags": {"after_school": "yes", "alt_name": "Primrose Schools", "amenity": "kindergarten", "brand": "Primrose School", "brand:wikidata": "Q7243677", "fee": "yes", "isced:level": "0", "max_age": "12", "min_age": "6 weeks", "name": "Primrose School", "nursery": "yes", "preschool": "yes"}, "countryCodes": ["us"], "terms": ["primrose"], "matchScore": 2, "suggestion": true}, "amenity/kindergarten/The Children's Courtyard": {"name": "The Children's Courtyard", "icon": "maki-school", "imageURL": "https://graph.facebook.com/ChildrensCourtyard/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q64877852", "amenity": "kindergarten"}, "addTags": {"amenity": "kindergarten", "brand": "The Children's Courtyard", "brand:wikidata": "Q64877852", "fee": "yes", "isced:level": "0", "name": "The Children's Courtyard", "nursery": "yes", "preschool": "yes"}, "countryCodes": ["us"], "terms": ["children's courtyard"], "matchScore": 2, "suggestion": true}, + "amenity/kindergarten/The Goddard School": {"name": "The Goddard School", "icon": "maki-school", "imageURL": "https://graph.facebook.com/goddardschool/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5576260", "amenity": "kindergarten"}, "addTags": {"after_school": "yes", "alt_name": "Goddard School", "amenity": "kindergarten", "brand": "The Goddard School", "brand:wikidata": "Q5576260", "fee": "yes", "isced:level": "0", "min_age": "6 weeks", "name": "The Goddard School", "nursery": "yes", "preschool": "yes"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/kindergarten/Tutor Time": {"name": "Tutor Time", "icon": "maki-school", "imageURL": "https://graph.facebook.com/TutorTime/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q64877826", "amenity": "kindergarten"}, "addTags": {"amenity": "kindergarten", "brand": "Tutor Time", "brand:wikidata": "Q64877826", "fee": "yes", "isced:level": "0", "name": "Tutor Time", "nursery": "yes", "preschool": "yes"}, "countryCodes": ["us"], "terms": ["tutor time child care", "tutor time child care learning center", "tutor time learning center", "tutor time learning centers"], "matchScore": 2, "suggestion": true}, + "amenity/language_school/AEON": {"name": "AEON", "icon": "maki-school", "imageURL": "https://graph.facebook.com/AEONCorporation/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4687898", "amenity": "language_school"}, "addTags": {"amenity": "language_school", "brand": "AEON", "brand:en": "Aeon", "brand:ja": "AEON", "brand:ja-Hira": "イーオン", "brand:ja-Latn": "AEON", "brand:wikidata": "Q4687898", "brand:wikipedia": "ja:イーオン", "language:en": "main", "name": "AEON", "name:en": "Aeon", "name:ja": "AEON", "name:ja-Hira": "イーオン", "name:ja-Latn": "AEON"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/language_school/Berlitz": {"name": "Berlitz", "icon": "maki-school", "imageURL": "https://graph.facebook.com/BerlitzUS/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q821960", "amenity": "language_school"}, "addTags": {"amenity": "language_school", "brand": "Berlitz", "brand:wikidata": "Q821960", "brand:wikipedia": "en:Berlitz Corporation", "name": "Berlitz"}, "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/language_school/ECC外語学院": {"name": "ECC外語学院", "icon": "maki-school", "imageURL": "https://graph.facebook.com/ecc.co.jp/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5322655", "amenity": "language_school"}, "addTags": {"amenity": "language_school", "brand": "ECC外語学院", "brand:en": "ECC Foreign Language Institute", "brand:ja": "ECC外語学院", "brand:ja-Hira": "イーシーシーがいごがくいん", "brand:ja-Latn": "ECC Gaigo Gakuin", "brand:wikidata": "Q5322655", "brand:wikipedia": "ja:ECC総合教育機関", "language:en": "main", "name": "ECC外語学院", "name:en": "ECC Foreign Language Institute", "name:ja": "ECC外語学院", "name:ja-Hira": "イーシーシーがいごがくいん", "name:ja-Latn": "ECC Gaigo Gakuin", "short_name": "ECC", "short_name:en": "ECC", "short_name:ja": "ECC", "short_name:ja-Hira": "イーシーシー", "short_name:ja-Latn": "ECC"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/language_school/ELS": {"name": "ELS", "icon": "maki-school", "imageURL": "https://graph.facebook.com/els/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5323325", "amenity": "language_school"}, "addTags": {"amenity": "language_school", "brand": "ELS", "brand:en": "ELS", "brand:wikidata": "Q5323325", "brand:wikipedia": "en:ELS Language Centers", "language:en": "main", "name": "ELS", "name:en": "ELS", "official_name": "ELS Language Centers", "official_name:en": "ELS Language Centers"}, "countryCodes": ["ca", "in", "my", "pa", "sa", "tr", "us", "vn"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/language_school/GABA": {"name": "GABA", "icon": "maki-school", "imageURL": "https://graph.facebook.com/gaba.corp/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5515241", "amenity": "language_school"}, "addTags": {"amenity": "language_school", "brand": "GABA", "brand:en": "Gaba", "brand:ja": "GABA", "brand:ja-Kana": "ガバ", "brand:ja-Latn": "GABA", "brand:wikidata": "Q5515241", "brand:wikipedia": "ja:GABA (企業)", "language:en": "main", "name": "GABA", "name:en": "Gaba", "name:ja": "GABA", "name:ja-Kana": "ガバ", "name:ja-Latn": "GABA"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/language_school/NOVA": {"name": "NOVA", "icon": "maki-school", "imageURL": "https://graph.facebook.com/nova.jp/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7064000", "amenity": "language_school"}, "addTags": {"amenity": "language_school", "brand": "NOVA", "brand:en": "Nova", "brand:ja": "NOVA", "brand:ja-Hira": "ノヴァ", "brand:ja-Latn": "NOVA", "brand:wikidata": "Q7064000", "brand:wikipedia": "ja:NOVA", "language:en": "main", "name": "NOVA", "name:en": "Nova", "name:ja": "NOVA", "name:ja-Hira": "ノヴァ", "name:ja-Latn": "NOVA"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/language_school/Shane English School": {"name": "Shane English School", "icon": "maki-school", "imageURL": "https://graph.facebook.com/ShaneEnglishSchool/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q17054332", "amenity": "language_school"}, "addTags": {"amenity": "language_school", "brand": "Shane English School", "brand:en": "Shane English School", "brand:ja": "シェーン英会話", "brand:ja-Latn": "Shēn Eikaiwa", "brand:wikidata": "Q17054332", "brand:wikipedia": "en:Shane English School", "language:en": "main", "name": "Shane English School", "name:en": "Shane English School", "name:ja": "シェーン英会話", "name:ja-Latn": "Shēn Eikaiwa"}, "countryCodes": ["cn", "dz", "gb", "hk", "id", "kr", "pl", "th", "tw", "vn"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/language_school/シェーン英会話": {"name": "シェーン英会話", "icon": "maki-school", "imageURL": "https://graph.facebook.com/ShaneEnglishSchool/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q17054332", "amenity": "language_school"}, "addTags": {"amenity": "language_school", "brand": "シェーン英会話", "brand:en": "Shane English School", "brand:ja": "シェーン英会話", "brand:ja-Latn": "Shēn Eikaiwa", "brand:wikidata": "Q17054332", "brand:wikipedia": "ja:シェーン英会話スクール", "language:en": "main", "name": "シェーン英会話", "name:en": "Shane English School", "name:ja": "シェーン英会話", "name:ja-Latn": "Shēn Eikaiwa"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/language_school/セイハ英語学院": {"name": "セイハ英語学院", "icon": "maki-school", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7446694", "amenity": "language_school"}, "addTags": {"amenity": "language_school", "brand": "セイハ英語学院", "brand:en": "Seiha English Academy", "brand:ja": "セイハ英語学院", "brand:ja-Hani": "セイハえいごがくいん", "brand:ja-Latn": "Seiha Eigo Gakuin", "brand:wikidata": "Q7446694", "language:en": "main", "name": "セイハ英語学院", "name:en": "Seiha English Academy", "name:ja": "セイハ英語学院", "name:ja-Hani": "セイハえいごがくいん", "name:ja-Latn": "Seiha Eigo Gakuin"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/language_school/ベルリッツ": {"name": "ベルリッツ", "icon": "maki-school", "imageURL": "https://graph.facebook.com/BerlitzJapan/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4892545", "amenity": "language_school"}, "addTags": {"amenity": "language_school", "brand": "ベルリッツ", "brand:en": "Berlitz", "brand:ja": "ベルリッツ", "brand:ja-Hira": "ベルリッツ", "brand:wikidata": "Q4892545", "brand:wikipedia": "ja:ベルリッツ・ジャパン", "name": "ベルリッツ", "name:en": "Berlitz", "name:ja": "ベルリッツ", "name:ja-Hira": "ベルリッツ"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/language_school/ペッピーキッズクラブ": {"name": "ペッピーキッズクラブ", "icon": "maki-school", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7166471", "amenity": "language_school"}, "addTags": {"amenity": "language_school", "brand": "ペッピーキッズクラブ", "brand:en": "Peppy Kids Club", "brand:ja": "ペッピーキッズクラブ", "brand:ja-Latn": "Peppi Kizzu Kurabu", "brand:wikidata": "Q7166471", "brand:wikipedia": "ja:ペッピーキッズクラブ", "language:en": "main", "name": "ペッピーキッズクラブ", "name:en": "Peppy Kids Club", "name:ja": "ペッピーキッズクラブ", "name:ja-Latn": "Peppi Kizzu Kurabu"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/money_transfer/Express Union": {"name": "Express Union", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/ExpressUnionFinance/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3062276", "amenity": "money_transfer"}, "addTags": {"amenity": "money_transfer", "brand": "Express Union", "brand:wikidata": "Q3062276", "brand:wikipedia": "fr:Express Union", "name": "Express Union"}, "countryCodes": ["td"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/money_transfer/Hoa Phát": {"name": "Hoa Phát", "icon": "maki-bank", "imageURL": "https://pbs.twimg.com/profile_images/692515699349135364/P4MUVfcJ_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q65116775", "amenity": "money_transfer"}, "addTags": {"amenity": "money_transfer", "brand": "Hoa Phát", "brand:wikidata": "Q65116775", "name": "Hoa Phát", "name:vi": "Hoa Phát"}, "countryCodes": ["us"], "terms": ["hoa phat goi tien", "hoa phat gui tien"], "matchScore": 2, "suggestion": true}, "amenity/money_transfer/MoneyGram": {"name": "MoneyGram", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/moneygram/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1944412", "amenity": "money_transfer"}, "addTags": {"amenity": "money_transfer", "brand": "MoneyGram", "brand:wikidata": "Q1944412", "brand:wikipedia": "en:MoneyGram", "name": "MoneyGram"}, "countryCodes": ["de", "fr", "gr"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/money_transfer/Orange Money": {"name": "Orange Money", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/orange/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q16668220", "amenity": "money_transfer"}, "addTags": {"amenity": "money_transfer", "brand": "Orange Money", "brand:wikidata": "Q16668220", "brand:wikipedia": "en:Orange Money", "name": "Orange Money"}, "countryCodes": ["ml"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/money_transfer/Western Union": {"name": "Western Union", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/WesternUnion/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q861042", "amenity": "money_transfer"}, "addTags": {"amenity": "money_transfer", "brand": "Western Union", "brand:wikidata": "Q861042", "brand:wikipedia": "en:Western Union", "name": "Western Union"}, "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/parking/Parking Company of America": {"name": "Parking Company of America", "icon": "maki-car", "imageURL": "https://graph.facebook.com/parkingcompanyofamerica/picture?type=large", "geometry": ["point", "vertex", "area"], "tags": {"brand:wikidata": "Q65491376", "amenity": "parking"}, "addTags": {"amenity": "parking", "brand": "Parking Company of America", "brand:wikidata": "Q65491376", "fee": "yes", "name": "Parking Company of America", "short_name": "PCA"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/parking/SP+": {"name": "SP+", "icon": "maki-car", "imageURL": "https://graph.facebook.com/sppluscorp/picture?type=large", "geometry": ["point", "vertex", "area"], "tags": {"brand:wikidata": "Q7598289", "amenity": "parking"}, "addTags": {"alt_name": "SP Plus", "amenity": "parking", "brand": "SP+", "brand:wikidata": "Q7598289", "brand:wikipedia": "en:SP Plus Corporation", "fee": "yes", "name": "SP+"}, "countryCodes": ["ca", "us"], "terms": ["central parking", "central parking system", "standard parking"], "matchScore": 2, "suggestion": true}, "amenity/payment_centre/Abitab": {"name": "Abitab", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/Abitaboficial/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q16488129", "amenity": "payment_centre"}, "addTags": {"amenity": "payment_centre", "brand": "Abitab", "brand:wikidata": "Q16488129", "brand:wikipedia": "es:Abitab", "name": "Abitab"}, "countryCodes": ["uy"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/payment_centre/Rapipago": {"name": "Rapipago", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/Rapipago/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6100413", "amenity": "payment_centre"}, "addTags": {"amenity": "payment_centre", "brand": "Rapipago", "brand:wikidata": "Q6100413", "brand:wikipedia": "es:Rapipago", "name": "Rapipago"}, "countryCodes": ["ar"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -2574,7 +2633,7 @@ "amenity/pharmacy/Boots": {"name": "Boots", "icon": "maki-pharmacy", "imageURL": "https://graph.facebook.com/bootsuk/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6123139", "amenity": "pharmacy"}, "addTags": {"amenity": "pharmacy", "brand": "Boots", "brand:wikidata": "Q6123139", "brand:wikipedia": "en:Boots UK", "healthcare": "pharmacy", "name": "Boots"}, "reference": {"key": "amenity", "value": "pharmacy"}, "countryCodes": ["gb"], "terms": ["boots pharmacy"], "matchScore": 2, "suggestion": true}, "amenity/pharmacy/Boticas y Salud": {"name": "Boticas y Salud", "icon": "maki-pharmacy", "imageURL": "https://graph.facebook.com/844038768993601/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62563126", "amenity": "pharmacy"}, "addTags": {"amenity": "pharmacy", "brand": "Boticas y Salud", "brand:wikidata": "Q62563126", "healthcare": "pharmacy", "name": "Boticas y Salud"}, "reference": {"key": "amenity", "value": "pharmacy"}, "countryCodes": ["pe"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/pharmacy/Brookshire Brothers Pharmacy": {"name": "Brookshire Brothers Pharmacy", "icon": "maki-pharmacy", "imageURL": "https://graph.facebook.com/BrookshireBros/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4975084", "amenity": "pharmacy"}, "addTags": {"amenity": "pharmacy", "brand": "Brookshire Brothers Pharmacy", "brand:wikidata": "Q4975084", "brand:wikipedia": "en:Brookshire Brothers", "healthcare": "pharmacy", "name": "Brookshire Brothers Pharmacy"}, "reference": {"key": "amenity", "value": "pharmacy"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/pharmacy/CVS": {"name": "CVS", "icon": "maki-pharmacy", "imageURL": "https://graph.facebook.com/CVS/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2078880", "amenity": "pharmacy"}, "addTags": {"amenity": "pharmacy", "brand": "CVS", "brand:wikidata": "Q2078880", "brand:wikipedia": "en:CVS Pharmacy", "healthcare": "pharmacy", "name": "CVS"}, "reference": {"key": "amenity", "value": "pharmacy"}, "terms": ["cvs pharmacy"], "matchScore": 2, "suggestion": true}, + "amenity/pharmacy/CVS Pharmacy": {"name": "CVS Pharmacy", "icon": "maki-pharmacy", "imageURL": "https://graph.facebook.com/CVS/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2078880", "amenity": "pharmacy"}, "addTags": {"amenity": "pharmacy", "brand": "CVS Pharmacy", "brand:wikidata": "Q2078880", "brand:wikipedia": "en:CVS Pharmacy", "healthcare": "pharmacy", "name": "CVS Pharmacy", "short_name": "CVS"}, "reference": {"key": "amenity", "value": "pharmacy"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/pharmacy/Camelia": {"name": "Camelia", "icon": "maki-pharmacy", "imageURL": "https://graph.facebook.com/camelia.vaistine/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q15867413", "amenity": "pharmacy"}, "addTags": {"amenity": "pharmacy", "brand": "Camelia", "brand:wikidata": "Q15867413", "brand:wikipedia": "lt:Nemuno vaistinė", "healthcare": "pharmacy", "name": "Camelia"}, "reference": {"key": "amenity", "value": "pharmacy"}, "countryCodes": ["lt"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/pharmacy/Catena": {"name": "Catena", "icon": "maki-pharmacy", "imageURL": "https://graph.facebook.com/FarmaciaCatena/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q24035728", "amenity": "pharmacy"}, "addTags": {"amenity": "pharmacy", "brand": "Catena", "brand:wikidata": "Q24035728", "brand:wikipedia": "ro:Farmacia Catena", "healthcare": "pharmacy", "name": "Catena"}, "reference": {"key": "amenity", "value": "pharmacy"}, "countryCodes": ["ro"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/pharmacy/Chemist King Discount Pharmacy": {"name": "Chemist King Discount Pharmacy", "icon": "maki-pharmacy", "imageURL": "https://graph.facebook.com/ChemistKingDiscountPharmacy/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q63367667", "amenity": "pharmacy"}, "addTags": {"amenity": "pharmacy", "brand": "Chemist King Discount Pharmacy", "brand:wikidata": "Q63367667", "healthcare": "pharmacy", "name": "Chemist King Discount Pharmacy"}, "reference": {"key": "amenity", "value": "pharmacy"}, "countryCodes": ["au"], "terms": ["chemist king", "chemist king discount pharmacies"], "matchScore": 2, "suggestion": true}, @@ -2611,9 +2670,11 @@ "amenity/pharmacy/Gintarinė vaistinė": {"name": "Gintarinė vaistinė", "icon": "maki-pharmacy", "imageURL": "https://graph.facebook.com/Gintarine.Vaistine/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q15857801", "amenity": "pharmacy"}, "addTags": {"amenity": "pharmacy", "brand": "Gintarinė vaistinė", "brand:wikidata": "Q15857801", "brand:wikipedia": "lt:Gintarinė vaistinė", "healthcare": "pharmacy", "name": "Gintarinė vaistinė"}, "reference": {"key": "amenity", "value": "pharmacy"}, "countryCodes": ["lt"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/pharmacy/Guardian (Asia)": {"name": "Guardian (Asia)", "icon": "maki-pharmacy", "imageURL": "https://graph.facebook.com/Guardianmy/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q63371124", "amenity": "pharmacy"}, "addTags": {"amenity": "pharmacy", "brand": "Guardian", "brand:wikidata": "Q63371124", "healthcare": "pharmacy", "name": "Guardian"}, "reference": {"key": "amenity", "value": "pharmacy"}, "countryCodes": ["bn", "id", "kh", "my", "sg", "vn"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/pharmacy/Guardian (Australia)": {"name": "Guardian (Australia)", "icon": "maki-pharmacy", "imageURL": "https://graph.facebook.com/GuardianAustralia/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q63367814", "amenity": "pharmacy"}, "addTags": {"brand": "Guardian", "brand:wikidata": "Q63367814", "healthcare": "pharmacy", "name": "Guardian"}, "reference": {"key": "amenity", "value": "pharmacy"}, "countryCodes": ["au"], "terms": ["guardian pharmacies", "guardian pharmacy"], "matchScore": 2, "suggestion": true}, + "amenity/pharmacy/Guardian (Canada)": {"name": "Guardian (Canada)", "icon": "maki-pharmacy", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q65553864", "amenity": "pharmacy"}, "addTags": {"amenity": "pharmacy", "brand": "Guardian", "brand:wikidata": "Q65553864", "healthcare": "pharmacy", "name": "Guardian"}, "reference": {"key": "amenity", "value": "pharmacy"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/pharmacy/H-E-B Pharmacy": {"name": "H-E-B Pharmacy", "icon": "maki-pharmacy", "imageURL": "https://graph.facebook.com/HEB/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q830621", "amenity": "pharmacy"}, "addTags": {"amenity": "pharmacy", "brand": "H-E-B Pharmacy", "brand:wikidata": "Q830621", "brand:wikipedia": "en:H-E-B", "healthcare": "pharmacy", "name": "H-E-B Pharmacy"}, "reference": {"key": "amenity", "value": "pharmacy"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/pharmacy/Health Mart": {"name": "Health Mart", "icon": "maki-pharmacy", "imageURL": "https://graph.facebook.com/HealthMart/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5690597", "amenity": "pharmacy"}, "addTags": {"amenity": "pharmacy", "brand": "Health Mart", "brand:wikidata": "Q5690597", "brand:wikipedia": "en:Health Mart", "healthcare": "pharmacy", "name": "Health Mart"}, "reference": {"key": "amenity", "value": "pharmacy"}, "countryCodes": ["us"], "terms": ["health mart pharmacy"], "matchScore": 2, "suggestion": true}, "amenity/pharmacy/Hy-Vee Pharmacy": {"name": "Hy-Vee Pharmacy", "icon": "maki-pharmacy", "imageURL": "https://graph.facebook.com/HyVee/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1639719", "amenity": "pharmacy"}, "addTags": {"amenity": "pharmacy", "brand": "Hy-Vee Pharmacy", "brand:wikidata": "Q1639719", "brand:wikipedia": "en:Hy-Vee", "healthcare": "pharmacy", "name": "Hy-Vee Pharmacy"}, "reference": {"key": "amenity", "value": "pharmacy"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/pharmacy/I.D.A.": {"name": "I.D.A.", "icon": "maki-pharmacy", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q65553883", "amenity": "pharmacy"}, "addTags": {"amenity": "pharmacy", "brand": "I.D.A.", "brand:wikidata": "Q65553883", "healthcare": "pharmacy", "name": "I.D.A."}, "reference": {"key": "amenity", "value": "pharmacy"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/pharmacy/Inkafarma": {"name": "Inkafarma", "icon": "maki-pharmacy", "imageURL": "https://graph.facebook.com/inkafarmaperu/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q10997748", "amenity": "pharmacy"}, "addTags": {"amenity": "pharmacy", "brand": "Inkafarma", "brand:wikidata": "Q10997748", "brand:wikipedia": "es:Inkafarma", "healthcare": "pharmacy", "name": "Inkafarma"}, "reference": {"key": "amenity", "value": "pharmacy"}, "countryCodes": ["pe"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/pharmacy/Jean Coutu": {"name": "Jean Coutu", "icon": "maki-pharmacy", "imageURL": "https://graph.facebook.com/JeanCoutu/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3117457", "amenity": "pharmacy"}, "addTags": {"amenity": "pharmacy", "brand": "Jean Coutu", "brand:wikidata": "Q3117457", "brand:wikipedia": "en:Jean Coutu Group", "healthcare": "pharmacy", "name": "Jean Coutu"}, "reference": {"key": "amenity", "value": "pharmacy"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/pharmacy/Kimia Farma": {"name": "Kimia Farma", "icon": "maki-pharmacy", "imageURL": "https://graph.facebook.com/KimiaFarmaCare/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11264892", "amenity": "pharmacy"}, "addTags": {"amenity": "pharmacy", "brand": "Kimia Farma", "brand:wikidata": "Q11264892", "brand:wikipedia": "en:Kimia Farma", "healthcare": "pharmacy", "name": "Kimia Farma"}, "reference": {"key": "amenity", "value": "pharmacy"}, "countryCodes": ["id"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -2623,11 +2684,13 @@ "amenity/pharmacy/Longs Drugs (Hawaii)": {"name": "Longs Drugs (Hawaii)", "icon": "maki-pharmacy", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FLongs%20Drugs%20logo.svg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q16931196", "amenity": "pharmacy"}, "addTags": {"amenity": "pharmacy", "brand": "Longs Drugs", "brand:wikidata": "Q16931196", "brand:wikipedia": "en:Longs Drugs", "healthcare": "pharmacy", "name": "Longs Drugs", "short_name": "Longs"}, "reference": {"key": "amenity", "value": "pharmacy"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/pharmacy/Mannings": {"name": "Mannings", "icon": "maki-pharmacy", "imageURL": "https://graph.facebook.com/manningshongkong/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q13646560", "amenity": "pharmacy"}, "addTags": {"amenity": "pharmacy", "brand": "Mannings", "brand:wikidata": "Q13646560", "brand:wikipedia": "en:Mannings", "healthcare": "pharmacy", "name": "Mannings"}, "reference": {"key": "amenity", "value": "pharmacy"}, "countryCodes": ["cn", "hk", "mo"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/pharmacy/Marc's Pharmacy": {"name": "Marc's Pharmacy", "icon": "maki-pharmacy", "imageURL": "https://graph.facebook.com/MarcsStores/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q17080259", "amenity": "pharmacy"}, "addTags": {"amenity": "pharmacy", "brand": "Marc's", "brand:wikidata": "Q17080259", "brand:wikipedia": "en:Marc's", "healthcare": "pharmacy", "name": "Marc's Pharmacy"}, "reference": {"key": "amenity", "value": "pharmacy"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/pharmacy/MedPlus": {"name": "MedPlus", "icon": "maki-pharmacy", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q65684234", "amenity": "pharmacy"}, "addTags": {"amenity": "pharmacy", "brand": "MedPlus", "brand:wikidata": "Q65684234", "brand:wikipedia": "en:MedPlus", "healthcare": "pharmacy", "name": "MedPlus"}, "reference": {"key": "amenity", "value": "pharmacy"}, "countryCodes": ["in"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/pharmacy/Mercury Drug": {"name": "Mercury Drug", "icon": "maki-pharmacy", "imageURL": "https://graph.facebook.com/mercurydrugph/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6818610", "amenity": "pharmacy"}, "addTags": {"amenity": "pharmacy", "brand": "Mercury Drug", "brand:wikidata": "Q6818610", "brand:wikipedia": "en:Mercury Drug", "healthcare": "pharmacy", "name": "Mercury Drug"}, "reference": {"key": "amenity", "value": "pharmacy"}, "countryCodes": ["ph"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/pharmacy/Mifarma": {"name": "Mifarma", "icon": "maki-pharmacy", "imageURL": "https://graph.facebook.com/MifarmaPeru/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62564998", "amenity": "pharmacy"}, "addTags": {"amenity": "pharmacy", "brand": "Mifarma", "brand:wikidata": "Q62564998", "healthcare": "pharmacy", "name": "Mifarma"}, "reference": {"key": "amenity", "value": "pharmacy"}, "countryCodes": ["pe"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/pharmacy/Multipharma": {"name": "Multipharma", "icon": "maki-pharmacy", "imageURL": "https://graph.facebook.com/Multipharma.be/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62565018", "amenity": "pharmacy"}, "addTags": {"amenity": "pharmacy", "brand": "Multipharma", "brand:wikidata": "Q62565018", "healthcare": "pharmacy", "name": "Multipharma"}, "reference": {"key": "amenity", "value": "pharmacy"}, "countryCodes": ["be"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/pharmacy/Mēness aptieka": {"name": "Mēness aptieka", "icon": "maki-pharmacy", "imageURL": "https://graph.facebook.com/MenessAptieka/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q57583051", "amenity": "pharmacy"}, "addTags": {"amenity": "pharmacy", "brand": "Mēness aptieka", "brand:wikidata": "Q57583051", "healthcare": "pharmacy", "name": "Mēness aptieka"}, "reference": {"key": "amenity", "value": "pharmacy"}, "countryCodes": ["lv"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/pharmacy/Pague Menos": {"name": "Pague Menos", "icon": "maki-pharmacy", "imageURL": "https://graph.facebook.com/farmaciaspaguemenos/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7124466", "amenity": "pharmacy"}, "addTags": {"amenity": "pharmacy", "brand": "Pague Menos", "brand:wikidata": "Q7124466", "brand:wikipedia": "pt:Pague Menos", "healthcare": "pharmacy", "name": "Pague Menos"}, "reference": {"key": "amenity", "value": "pharmacy"}, "countryCodes": ["br"], "terms": ["farmácia pague menos"], "matchScore": 2, "suggestion": true}, + "amenity/pharmacy/PharmaChoice": {"name": "PharmaChoice", "icon": "maki-pharmacy", "imageURL": "https://pbs.twimg.com/profile_images/875423108513091584/kcsmBdjL_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7180716", "amenity": "pharmacy"}, "addTags": {"amenity": "pharmacy", "brand": "PharmaChoice", "brand:wikidata": "Q7180716", "brand:wikipedia": "en:PharmaChoice", "healthcare": "pharmacy", "name": "PharmaChoice"}, "reference": {"key": "amenity", "value": "pharmacy"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/pharmacy/PharmaSave (Australia)": {"name": "PharmaSave (Australia)", "icon": "maki-pharmacy", "imageURL": "https://graph.facebook.com/PharmasaveBrentfordSquare/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q63367906", "amenity": "pharmacy"}, "addTags": {"amenity": "pharmacy", "brand": "PharmaSave", "brand:wikidata": "Q63367906", "healthcare": "pharmacy", "name": "PharmaSave"}, "reference": {"key": "amenity", "value": "pharmacy"}, "countryCodes": ["au"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/pharmacy/Pharmacie Principale": {"name": "Pharmacie Principale", "icon": "maki-pharmacy", "imageURL": "https://graph.facebook.com/PharmaciePrincipale/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1547749", "amenity": "pharmacy"}, "addTags": {"amenity": "pharmacy", "brand": "Pharmacie Principale", "brand:wikidata": "Q1547749", "brand:wikipedia": "fr:Groupe PP Holding", "healthcare": "pharmacy", "name": "Pharmacie Principale"}, "reference": {"key": "amenity", "value": "pharmacy"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/pharmacy/Pharmacy 4 Less": {"name": "Pharmacy 4 Less", "icon": "maki-pharmacy", "imageURL": "https://graph.facebook.com/pharmacy4less/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q63367608", "amenity": "pharmacy"}, "addTags": {"amenity": "pharmacy", "brand": "Pharmacy 4 Less", "brand:wikidata": "Q63367608", "healthcare": "pharmacy", "name": "Pharmacy 4 Less"}, "reference": {"key": "amenity", "value": "pharmacy"}, "countryCodes": ["au"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -2637,6 +2700,7 @@ "amenity/pharmacy/Punto Farma (Colombia)": {"name": "Punto Farma (Colombia)", "icon": "maki-pharmacy", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62595271", "amenity": "pharmacy"}, "addTags": {"amenity": "pharmacy", "brand": "Punto Farma", "brand:wikidata": "Q62595271", "healthcare": "pharmacy", "name": "Punto Farma"}, "reference": {"key": "amenity", "value": "pharmacy"}, "countryCodes": ["co"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/pharmacy/Punto Farma (Honduras)": {"name": "Punto Farma (Honduras)", "icon": "maki-pharmacy", "imageURL": "https://graph.facebook.com/FarmaciasPuntoFarma/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62595229", "amenity": "pharmacy"}, "addTags": {"amenity": "pharmacy", "brand": "Punto Farma", "brand:wikidata": "Q62595229", "healthcare": "pharmacy", "name": "Punto Farma"}, "reference": {"key": "amenity", "value": "pharmacy"}, "countryCodes": ["hn"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/pharmacy/Punto Farma (Paraguay)": {"name": "Punto Farma (Paraguay)", "icon": "maki-pharmacy", "imageURL": "https://graph.facebook.com/Puntofarmapy/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62595220", "amenity": "pharmacy"}, "addTags": {"amenity": "pharmacy", "brand": "Punto Farma", "brand:wikidata": "Q62595220", "healthcare": "pharmacy", "name": "Punto Farma"}, "reference": {"key": "amenity", "value": "pharmacy"}, "countryCodes": ["py"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/pharmacy/Remedy'sRx": {"name": "Remedy'sRx", "icon": "maki-pharmacy", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q65553833", "amenity": "pharmacy"}, "addTags": {"amenity": "pharmacy", "brand": "Remedy'sRx", "brand:wikidata": "Q65553833", "healthcare": "pharmacy", "name": "Remedy'sRx"}, "reference": {"key": "amenity", "value": "pharmacy"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/pharmacy/Rexall": {"name": "Rexall", "icon": "maki-pharmacy", "imageURL": "https://graph.facebook.com/Rexall/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7319360", "amenity": "pharmacy"}, "addTags": {"amenity": "pharmacy", "brand": "Rexall", "brand:wikidata": "Q7319360", "brand:wikipedia": "en:Rexall", "healthcare": "pharmacy", "name": "Rexall"}, "reference": {"key": "amenity", "value": "pharmacy"}, "countryCodes": ["ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/pharmacy/Rite Aid": {"name": "Rite Aid", "icon": "maki-pharmacy", "imageURL": "https://graph.facebook.com/riteaid/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3433273", "amenity": "pharmacy"}, "addTags": {"amenity": "pharmacy", "brand": "Rite Aid", "brand:wikidata": "Q3433273", "brand:wikipedia": "en:Rite Aid", "healthcare": "pharmacy", "name": "Rite Aid"}, "reference": {"key": "amenity", "value": "pharmacy"}, "countryCodes": ["us"], "terms": ["rite aid pharmacy"], "matchScore": 2, "suggestion": true}, "amenity/pharmacy/Rose Pharmacy": {"name": "Rose Pharmacy", "icon": "maki-pharmacy", "imageURL": "https://graph.facebook.com/RosePharmacyInc/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62663208", "amenity": "pharmacy"}, "addTags": {"amenity": "pharmacy", "brand": "Rose Pharmacy", "brand:wikidata": "Q62663208", "healthcare": "pharmacy", "name": "Rose Pharmacy"}, "reference": {"key": "amenity", "value": "pharmacy"}, "countryCodes": ["ph"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -2717,17 +2781,19 @@ "amenity/post_office/中国邮政": {"name": "中国邮政", "icon": "maki-post", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1066476", "amenity": "post_office"}, "addTags": {"amenity": "post_office", "brand": "中国邮政", "brand:en": "China Post", "brand:wikidata": "Q1066476", "brand:wikipedia": "en:China Post", "name": "中国邮政", "name:en": "China Post"}, "countryCodes": ["cn"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/prep_school/Huntington Learning Center": {"name": "Huntington Learning Center", "icon": "temaki-school", "imageURL": "https://graph.facebook.com/HuntingtonHelps/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5945399", "amenity": "prep_school"}, "addTags": {"amenity": "prep_school", "brand": "Huntington Learning Center", "brand:wikidata": "Q5945399", "brand:wikipedia": "en:Huntington Learning Center", "name": "Huntington Learning Center"}, "countryCodes": ["us"], "terms": ["huntington"], "matchScore": 2, "suggestion": true}, "amenity/prep_school/KUMON (Japan)": {"name": "KUMON (Japan)", "icon": "temaki-school", "imageURL": "https://graph.facebook.com/kumon/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q142054", "amenity": "prep_school"}, "addTags": {"amenity": "prep_school", "brand": "KUMON", "brand:wikidata": "Q142054", "brand:wikipedia": "ja:日本公文教育研究会", "name": "KUMON", "name:ja": "公文", "name:ja-Hira": "くもん", "name:ja-Latn": "KUMON"}, "countryCodes": ["jp"], "terms": ["くもん", "公文"], "matchScore": 2, "suggestion": true}, - "amenity/prep_school/Kumon (International)": {"name": "Kumon (International)", "icon": "temaki-school", "imageURL": "https://graph.facebook.com/kumon/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q142054", "amenity": "prep_school"}, "addTags": {"amenity": "prep_school", "brand": "Kumon", "brand:wikidata": "Q142054", "brand:wikipedia": "en:Kumon", "name": "Kumon"}, "countryCodes": [], "terms": ["kumon learning center"], "matchScore": 2, "suggestion": true}, + "amenity/prep_school/Kumon (International)": {"name": "Kumon (International)", "icon": "temaki-school", "imageURL": "https://graph.facebook.com/kumon/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q142054", "amenity": "prep_school"}, "addTags": {"amenity": "prep_school", "brand": "Kumon", "brand:wikidata": "Q142054", "brand:wikipedia": "en:Kumon", "name": "Kumon"}, "terms": ["kumon learning center"], "matchScore": 2, "suggestion": true}, "amenity/prep_school/Mathnasium": {"name": "Mathnasium", "icon": "temaki-school", "imageURL": "https://graph.facebook.com/mathnasium/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6787302", "amenity": "prep_school"}, "addTags": {"amenity": "prep_school", "brand": "Mathnasium", "brand:wikidata": "Q6787302", "brand:wikipedia": "en:Mathnasium", "name": "Mathnasium"}, "countryCodes": ["us"], "terms": ["mathnasium learning center"], "matchScore": 2, "suggestion": true}, "amenity/prep_school/Russian School of Mathematics": {"name": "Russian School of Mathematics", "icon": "temaki-school", "imageURL": "https://graph.facebook.com/RussianMath/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7382122", "amenity": "prep_school"}, "addTags": {"amenity": "prep_school", "brand": "Russian School of Mathematics", "brand:wikidata": "Q7382122", "brand:wikipedia": "en:Russian School of Mathematics", "name": "Russian School of Mathematics"}, "countryCodes": ["us"], "terms": ["rsm", "russian school of math"], "matchScore": 2, "suggestion": true}, "amenity/prep_school/Sylvan": {"name": "Sylvan", "icon": "temaki-school", "imageURL": "https://graph.facebook.com/SylvanLearning/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7660663", "amenity": "prep_school"}, "addTags": {"alt_name": "Sylvan Learning Center", "amenity": "prep_school", "brand": "Sylvan", "brand:wikidata": "Q7660663", "brand:wikipedia": "en:Sylvan Learning", "name": "Sylvan"}, "countryCodes": ["us"], "terms": ["sylvan learning"], "matchScore": 2, "suggestion": true}, + "amenity/prep_school/栄光ゼミナール": {"name": "栄光ゼミナール", "icon": "temaki-school", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FEikoh%20logo.svg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11535632", "amenity": "prep_school"}, "addTags": {"amenity": "prep_school", "brand": "栄光ゼミナール", "brand:ja": "栄光ゼミナール", "brand:ja-Hira": "えいこうゼミナール", "brand:ja-Latn": "Eikō Zemināru", "brand:wikidata": "Q11535632", "brand:wikipedia": "ja:栄光ゼミナール", "name": "栄光ゼミナール", "name:en": "Eikoh Seminar", "name:ja": "栄光ゼミナール", "name:ja-Hira": "えいこうゼミナール", "name:ja-Latn": "Eikō Zemināru"}, "countryCodes": ["jp"], "terms": ["eikoh"], "matchScore": 2, "suggestion": true}, "amenity/public_bookcase/Little Free Library": {"name": "Little Free Library", "icon": "maki-library", "imageURL": "https://graph.facebook.com/LittleFreeLibrary/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6650101", "amenity": "public_bookcase"}, "addTags": {"amenity": "public_bookcase", "brand": "Little Free Library", "brand:wikidata": "Q6650101", "brand:wikipedia": "en:Little Free Library", "name": "Little Free Library"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/100 Montaditos": {"name": "100 Montaditos", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/100MontaditosSpain/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q8355805", "amenity": "restaurant"}, "addTags": {"amenity": "restaurant", "brand": "100 Montaditos", "brand:wikidata": "Q8355805", "brand:wikipedia": "en:Cervecería 100 Montaditos", "cuisine": "sandwich", "name": "100 Montaditos"}, "countryCodes": ["es", "it", "pt"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/restaurant/pizza/3 Brewers (On)": {"name": "3 Brewers (On)", "icon": "maki-restaurant-pizza", "imageURL": "https://graph.facebook.com/3Brasseursca/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3230326", "amenity": "restaurant", "cuisine": "burger;pizza;seafood"}, "addTags": {"amenity": "restaurant", "brand": "3 Brasseurs", "brand:wikidata": "Q3230326", "brand:wikipedia": "fr:Les 3 Brasseurs", "cuisine": "burger;pizza;seafood", "name": "3 Brewers", "name:fr": "3 Brasseurs", "official_name": "Les 3 Brasseurs"}, "reference": {"key": "cuisine", "value": "pizza"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/italian/ASK Italian": {"name": "ASK Italian", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/ASKItalian/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4807056", "amenity": "restaurant", "cuisine": "italian"}, "addTags": {"amenity": "restaurant", "brand": "ASK Italian", "brand:wikidata": "Q4807056", "brand:wikipedia": "en:ASK Italian", "cuisine": "italian", "name": "ASK Italian"}, "reference": {"key": "cuisine", "value": "italian"}, "countryCodes": ["gb"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/restaurant/american/Applebee's": {"name": "Applebee's", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/Applebeesmundoe/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q621532", "amenity": "restaurant", "cuisine": "american"}, "addTags": {"amenity": "restaurant", "brand": "Applebee's Neighborhood Grill & Bar", "brand:wikidata": "Q621532", "brand:wikipedia": "en:Applebee's", "cuisine": "american", "name": "Applebee's", "official_name": "Applebee's Neighborhood Grill & Bar"}, "reference": {"key": "cuisine", "value": "american"}, "terms": ["applebees bar & grill", "applebees bar and grill", "applebees grill & bar", "applebees grill and bar", "applebees neighborhood bar & grill", "applebees neighborhood bar and grill", "applebees neighborhood grill and bar"], "matchScore": 2, "suggestion": true}, + "amenity/restaurant/american/Applebee's": {"name": "Applebee's", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/Applebeesmundoe/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q621532", "amenity": "restaurant", "cuisine": "american"}, "addTags": {"amenity": "restaurant", "brand": "Applebee's Neighborhood Grill & Bar", "brand:wikidata": "Q621532", "brand:wikipedia": "en:Applebee's", "cuisine": "american", "name": "Applebee's", "official_name": "Applebee's Neighborhood Grill & Bar"}, "reference": {"key": "cuisine", "value": "american"}, "terms": ["applebees bar and grill", "applebees grill and bar", "applebees neighborhood bar and grill"], "matchScore": 2, "suggestion": true}, "amenity/restaurant/Autogrill": {"name": "Autogrill", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/AutogrillOfficial/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q786790", "amenity": "restaurant"}, "addTags": {"amenity": "restaurant", "brand": "Autogrill", "brand:wikidata": "Q786790", "brand:wikipedia": "en:Autogrill", "name": "Autogrill"}, "countryCodes": ["at", "es", "fr", "it"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/BBB": {"name": "BBB", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/BurgusBurgerBar/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q64760094", "amenity": "restaurant"}, "addTags": {"alt_name": "Burgus Burger Bar", "alt_name:en": "Burgus Burger Bar", "amenity": "restaurant", "brand": "Burgus Burger Bar", "brand:en": "Burgus Burger Bar", "brand:wikidata": "Q64760094", "cuisine": "burger", "name": "BBB", "name:en": "BBB"}, "countryCodes": ["il"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/restaurant/american/BJ's": {"name": "BJ's", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/BJsRestaurants/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4835755", "amenity": "restaurant", "cuisine": "american"}, "addTags": {"amenity": "restaurant", "brand": "BJ's", "brand:wikidata": "Q4835755", "brand:wikipedia": "en:BJ's Restaurants", "cuisine": "american", "name": "BJ's", "official_name": "BJ's Restaurant & Brewhouse"}, "reference": {"key": "cuisine", "value": "american"}, "countryCodes": ["us"], "terms": ["bjs restaurant and brewhouse"], "matchScore": 2, "suggestion": true}, + "amenity/restaurant/american/BJ's": {"name": "BJ's", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/BJsRestaurants/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4835755", "amenity": "restaurant", "cuisine": "american"}, "addTags": {"amenity": "restaurant", "brand": "BJ's", "brand:wikidata": "Q4835755", "brand:wikipedia": "en:BJ's Restaurants", "cuisine": "american", "name": "BJ's", "official_name": "BJ's Restaurant & Brewhouse"}, "reference": {"key": "cuisine", "value": "american"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/italian/Bella Italia": {"name": "Bella Italia", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/bellaitalia.co.uk/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4883362", "amenity": "restaurant", "cuisine": "italian"}, "addTags": {"amenity": "restaurant", "brand": "Bella Italia", "brand:wikidata": "Q4883362", "brand:wikipedia": "en:Bella Italia", "cuisine": "italian", "name": "Bella Italia"}, "reference": {"key": "cuisine", "value": "italian"}, "countryCodes": ["gb"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/japanese/Benihana": {"name": "Benihana", "icon": "maki-restaurant-noodle", "imageURL": "https://graph.facebook.com/Benihana/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4887996", "amenity": "restaurant", "cuisine": "japanese;teppanyaki;steak"}, "addTags": {"amenity": "restaurant", "brand": "Benihana", "brand:wikidata": "Q4887996", "brand:wikipedia": "en:Benihana", "cuisine": "japanese;teppanyaki;steak", "name": "Benihana"}, "reference": {"key": "cuisine", "value": "japanese"}, "countryCodes": ["aw", "br", "ca", "pa", "sv", "us"], "terms": ["benihana of tokyo"], "matchScore": 2, "suggestion": true}, "amenity/restaurant/pizza/Bertucci's": {"name": "Bertucci's", "icon": "maki-restaurant-pizza", "imageURL": "https://graph.facebook.com/Bertuccis/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4895917", "amenity": "restaurant", "cuisine": "pizza;italian"}, "addTags": {"amenity": "restaurant", "brand": "Bertucci's", "brand:wikidata": "Q4895917", "brand:wikipedia": "en:Bertucci's", "cuisine": "pizza;italian", "name": "Bertucci's"}, "reference": {"key": "cuisine", "value": "pizza"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -2744,7 +2810,7 @@ "amenity/restaurant/italian/Buca di Beppo": {"name": "Buca di Beppo", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/bucadibeppo/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4982340", "amenity": "restaurant", "cuisine": "italian"}, "addTags": {"amenity": "restaurant", "brand": "Buca di Beppo", "brand:wikidata": "Q4982340", "brand:wikipedia": "en:Buca di Beppo", "cuisine": "italian", "name": "Buca di Beppo"}, "reference": {"key": "cuisine", "value": "italian"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/Buffalo Grill": {"name": "Buffalo Grill", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/buffalogrill/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q944655", "amenity": "restaurant"}, "addTags": {"amenity": "restaurant", "brand": "Buffalo Grill", "brand:wikidata": "Q944655", "brand:wikipedia": "en:Buffalo Grill", "cuisine": "steak_house", "name": "Buffalo Grill"}, "countryCodes": ["es", "fr"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/Buffalo Wild Wings": {"name": "Buffalo Wild Wings", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/BuffaloWildWings/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q509255", "amenity": "restaurant"}, "addTags": {"amenity": "restaurant", "brand": "Buffalo Wild Wings", "brand:wikidata": "Q509255", "brand:wikipedia": "en:Buffalo Wild Wings", "cuisine": "wings", "name": "Buffalo Wild Wings"}, "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/restaurant/Buffalo Wings & Rings": {"name": "Buffalo Wings & Rings", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/wingsandrings/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4985900", "amenity": "restaurant"}, "addTags": {"amenity": "restaurant", "brand": "Buffalo Wings & Rings", "brand:wikidata": "Q4985900", "brand:wikipedia": "en:Buffalo Wings & Rings", "cuisine": "wings", "name": "Buffalo Wings & Rings", "takeaway": "yes"}, "countryCodes": ["us"], "terms": ["buffalo wings and rings"], "matchScore": 2, "suggestion": true}, + "amenity/restaurant/Buffalo Wings & Rings": {"name": "Buffalo Wings & Rings", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/wingsandrings/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4985900", "amenity": "restaurant"}, "addTags": {"amenity": "restaurant", "brand": "Buffalo Wings & Rings", "brand:wikidata": "Q4985900", "brand:wikipedia": "en:Buffalo Wings & Rings", "cuisine": "wings", "name": "Buffalo Wings & Rings", "takeaway": "yes"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/mexican/Cafe Rio": {"name": "Cafe Rio", "icon": "fas-pepper-hot", "imageURL": "https://graph.facebook.com/CafeRio/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5017108", "amenity": "restaurant", "cuisine": "mexican"}, "addTags": {"amenity": "restaurant", "brand": "Cafe Rio", "brand:wikidata": "Q5017108", "brand:wikipedia": "en:Cafe Rio", "cuisine": "mexican", "name": "Cafe Rio"}, "reference": {"key": "cuisine", "value": "mexican"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/pizza/California Pizza Kitchen": {"name": "California Pizza Kitchen", "icon": "maki-restaurant-pizza", "imageURL": "https://graph.facebook.com/californiapizzakitchen/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q15109854", "amenity": "restaurant", "cuisine": "pizza"}, "addTags": {"amenity": "restaurant", "brand": "California Pizza Kitchen", "brand:wikidata": "Q15109854", "brand:wikipedia": "en:California Pizza Kitchen", "cuisine": "pizza", "name": "California Pizza Kitchen"}, "reference": {"key": "cuisine", "value": "pizza"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/italian/Carluccio's": {"name": "Carluccio's", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/carluccios/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q25111797", "amenity": "restaurant", "cuisine": "italian"}, "addTags": {"amenity": "restaurant", "brand": "Carluccio's", "brand:wikidata": "Q25111797", "brand:wikipedia": "en:Carluccio's Ltd", "cuisine": "italian", "name": "Carluccio's"}, "reference": {"key": "cuisine", "value": "italian"}, "countryCodes": ["gb"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -2752,15 +2818,16 @@ "amenity/restaurant/american/Cheddar's": {"name": "Cheddar's", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/CheddarsScratchKitchen/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5089187", "amenity": "restaurant", "cuisine": "american"}, "addTags": {"amenity": "restaurant", "brand": "Cheddar's", "brand:wikidata": "Q5089187", "brand:wikipedia": "en:Cheddar's Scratch Kitchen", "cuisine": "american", "name": "Cheddar's", "official_name": "Cheddar's Scratch Kitchen"}, "reference": {"key": "cuisine", "value": "american"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/Cheeburger Cheeburger": {"name": "Cheeburger Cheeburger", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/136947372998541/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5089247", "amenity": "restaurant"}, "addTags": {"amenity": "restaurant", "brand": "Cheeburger Cheeburger", "brand:wikidata": "Q5089247", "brand:wikipedia": "en:Cheeburger Cheeburger", "cuisine": "burger", "name": "Cheeburger Cheeburger"}, "countryCodes": ["ca", "sa", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/mexican/Chevys": {"name": "Chevys", "icon": "fas-pepper-hot", "imageURL": "https://graph.facebook.com/ChevysFreshMex/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5094466", "amenity": "restaurant", "cuisine": "mexican"}, "addTags": {"amenity": "restaurant", "brand": "Chevys Fresh Mex", "brand:wikidata": "Q5094466", "brand:wikipedia": "en:Chevys Fresh Mex", "cuisine": "mexican", "name": "Chevys", "official_name": "Chevys Fresh Mex"}, "reference": {"key": "cuisine", "value": "mexican"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/restaurant/Chili's": {"name": "Chili's", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/Chilis/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1072948", "amenity": "restaurant"}, "addTags": {"amenity": "restaurant", "brand": "Chili's", "brand:wikidata": "Q1072948", "brand:wikipedia": "en:Chili's", "cuisine": "tex-mex", "name": "Chili's", "official_name": "Chili's Grill & Bar"}, "terms": ["chili's grill and bar"], "matchScore": 2, "suggestion": true}, + "amenity/restaurant/Chili's": {"name": "Chili's", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/Chilis/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1072948", "amenity": "restaurant"}, "addTags": {"amenity": "restaurant", "brand": "Chili's", "brand:wikidata": "Q1072948", "brand:wikipedia": "en:Chili's", "cuisine": "tex-mex", "name": "Chili's", "official_name": "Chili's Grill & Bar"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/Chiquito": {"name": "Chiquito", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/chiquito.restaurant/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5101775", "amenity": "restaurant"}, "addTags": {"amenity": "restaurant", "brand": "Chiquito", "brand:wikidata": "Q5101775", "brand:wikipedia": "en:Chiquito (restaurant)", "cuisine": "tex-mex", "name": "Chiquito"}, "countryCodes": ["gb"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/pizza/Chuck E. Cheese's": {"name": "Chuck E. Cheese's", "icon": "maki-restaurant-pizza", "imageURL": "https://graph.facebook.com/ChuckECheese/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2438391", "amenity": "restaurant", "cuisine": "pizza"}, "addTags": {"amenity": "restaurant", "brand": "Chuck E. Cheese's", "brand:wikidata": "Q2438391", "brand:wikipedia": "en:Chuck E. Cheese's", "cuisine": "pizza", "name": "Chuck E. Cheese's"}, "reference": {"key": "cuisine", "value": "pizza"}, "countryCodes": ["ca", "us"], "terms": ["chuck e cheese"], "matchScore": 2, "suggestion": true}, "amenity/restaurant/pizza/Cici's Pizza": {"name": "Cici's Pizza", "icon": "maki-restaurant-pizza", "imageURL": "https://graph.facebook.com/Cicis/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2972189", "amenity": "restaurant", "cuisine": "pizza;buffet"}, "addTags": {"amenity": "restaurant", "brand": "Cici's Pizza", "brand:wikidata": "Q2972189", "brand:wikipedia": "en:Cicis", "cuisine": "pizza;buffet", "name": "Cici's Pizza"}, "reference": {"key": "cuisine", "value": "pizza"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/american/Claim Jumper": {"name": "Claim Jumper", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/ClaimJumperRestaurants/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5125081", "amenity": "restaurant", "cuisine": "american"}, "addTags": {"amenity": "restaurant", "brand": "Claim Jumper", "brand:wikidata": "Q5125081", "brand:wikipedia": "en:Claim Jumper", "cuisine": "american", "name": "Claim Jumper"}, "reference": {"key": "cuisine", "value": "american"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/american/Coast to Coast": {"name": "Coast to Coast", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/coasttocoastrestaurants/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q22000729", "amenity": "restaurant", "cuisine": "american"}, "addTags": {"amenity": "restaurant", "brand": "Coast to Coast", "brand:wikidata": "Q22000729", "brand:wikipedia": "en:Coast to Coast (restaurant)", "cuisine": "american", "name": "Coast to Coast"}, "reference": {"key": "cuisine", "value": "american"}, "countryCodes": ["gb"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/restaurant/Cora": {"name": "Cora", "icon": "maki-restaurant", "imageURL": "https://pbs.twimg.com/profile_images/948562746962071553/e99P1Xiq_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2996960", "amenity": "restaurant"}, "addTags": {"amenity": "restaurant", "brand": "Cora", "brand:wikidata": "Q2996960", "brand:wikipedia": "en:Cora (restaurant)", "cuisine": "breakfast", "name": "Cora"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/Cosmo": {"name": "Cosmo", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/CosmoRestaurants/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5174239", "amenity": "restaurant"}, "addTags": {"amenity": "restaurant", "brand": "Cosmo", "brand:wikidata": "Q5174239", "brand:wikipedia": "en:Cosmo (restaurant)", "name": "Cosmo"}, "countryCodes": ["gb", "ie"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/american/Country Pride": {"name": "Country Pride", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/CountryPrideRestaurants/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q64051992", "amenity": "restaurant", "cuisine": "american"}, "addTags": {"amenity": "restaurant", "brand": "Country Pride", "brand:wikidata": "Q64051992", "cuisine": "american", "name": "Country Pride"}, "reference": {"key": "cuisine", "value": "american"}, "countryCodes": ["us"], "terms": ["country pride restaurant"], "matchScore": 2, "suggestion": true}, - "amenity/restaurant/french/Courtepaille": {"name": "Courtepaille", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/CourtepailleFR/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3116688", "amenity": "restaurant", "cuisine": "french"}, "addTags": {"amenity": "restaurant", "brand": "Courtepaille", "brand:wikidata": "Q3116688", "brand:wikipedia": "fr:Grill Courtepaille", "cuisine": "french", "name": "Courtepaille"}, "reference": {"key": "cuisine", "value": "french"}, "countryCodes": ["fr"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/restaurant/french/Courtepaille": {"name": "Courtepaille", "icon": "maki-restaurant", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3116688", "amenity": "restaurant", "cuisine": "french"}, "addTags": {"amenity": "restaurant", "brand": "Courtepaille", "brand:wikidata": "Q3116688", "brand:wikipedia": "fr:Grill Courtepaille", "cuisine": "french", "name": "Courtepaille"}, "reference": {"key": "cuisine", "value": "french"}, "countryCodes": ["fr"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/american/Cracker Barrel": {"name": "Cracker Barrel", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/crackerbarrel/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4492609", "amenity": "restaurant", "cuisine": "american"}, "addTags": {"amenity": "restaurant", "brand": "Cracker Barrel", "brand:wikidata": "Q4492609", "brand:wikipedia": "en:Cracker Barrel", "cuisine": "american", "name": "Cracker Barrel", "official_name": "Cracker Barrel Old Country Store"}, "reference": {"key": "cuisine", "value": "american"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/american/Dave & Buster's": {"name": "Dave & Buster's", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/daveandbusters/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5228205", "amenity": "restaurant", "cuisine": "american"}, "addTags": {"amenity": "restaurant", "brand": "Dave & Buster's", "brand:wikidata": "Q5228205", "brand:wikipedia": "en:Dave & Buster's", "cuisine": "american", "name": "Dave & Buster's"}, "reference": {"key": "cuisine", "value": "american"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/american/Denny's": {"name": "Denny's", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/dennys/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1189695", "amenity": "restaurant", "cuisine": "american"}, "addTags": {"amenity": "restaurant", "brand": "Denny's", "brand:wikidata": "Q1189695", "brand:wikipedia": "en:Denny's", "cuisine": "american", "name": "Denny's"}, "reference": {"key": "cuisine", "value": "american"}, "terms": [], "matchScore": 2, "suggestion": true}, @@ -2777,10 +2844,12 @@ "amenity/restaurant/american/Friendly's": {"name": "Friendly's", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/friendlys/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1464513", "amenity": "restaurant", "cuisine": "american"}, "addTags": {"amenity": "restaurant", "brand": "Friendly's", "brand:wikidata": "Q1464513", "brand:wikipedia": "en:Friendly's", "cuisine": "american", "name": "Friendly's"}, "reference": {"key": "cuisine", "value": "american"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/Frisch's Big Boy": {"name": "Frisch's Big Boy", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/frischsbigboy/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5504660", "amenity": "restaurant"}, "addTags": {"amenity": "restaurant", "brand": "Frisch's Big Boy", "brand:wikidata": "Q5504660", "brand:wikipedia": "en:Frisch's", "cuisine": "burger", "name": "Frisch's Big Boy", "takeaway": "yes"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/Fuddruckers": {"name": "Fuddruckers", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/fuddruckers/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5507056", "amenity": "restaurant"}, "addTags": {"amenity": "restaurant", "brand": "Fuddruckers", "brand:wikidata": "Q5507056", "brand:wikipedia": "en:Fuddruckers", "cuisine": "burger", "name": "Fuddruckers"}, "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/restaurant/pizza/Gatti's Pizza": {"name": "Gatti's Pizza", "icon": "maki-restaurant-pizza", "imageURL": "https://pbs.twimg.com/profile_images/1034520805923684352/wc5SE5R6_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5527509", "amenity": "restaurant", "cuisine": "pizza"}, "addTags": {"amenity": "restaurant", "brand": "Gatti's Pizza", "brand:wikidata": "Q5527509", "brand:wikipedia": "en:Gatti's Pizza", "cuisine": "pizza", "name": "Gatti's Pizza"}, "reference": {"key": "cuisine", "value": "pizza"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/pizza/Giordano's Pizzeria": {"name": "Giordano's Pizzeria", "icon": "maki-restaurant-pizza", "imageURL": "https://graph.facebook.com/giordanospizza/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5563393", "amenity": "restaurant", "cuisine": "pizza"}, "addTags": {"amenity": "restaurant", "brand": "Giordano's Pizzeria", "brand:wikidata": "Q5563393", "brand:wikipedia": "en:Giordano's Pizzeria", "cuisine": "pizza", "name": "Giordano's Pizzeria"}, "reference": {"key": "cuisine", "value": "pizza"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/pizza/Godfather's Pizza": {"name": "Godfather's Pizza", "icon": "maki-restaurant-pizza", "imageURL": "https://graph.facebook.com/godfatherspizza/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5576353", "amenity": "restaurant", "cuisine": "pizza"}, "addTags": {"amenity": "restaurant", "brand": "Godfather's Pizza", "brand:wikidata": "Q5576353", "brand:wikipedia": "en:Godfather's Pizza", "cuisine": "pizza", "name": "Godfather's Pizza"}, "reference": {"key": "cuisine", "value": "pizza"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/restaurant/american/Golden Corral": {"name": "Golden Corral", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/goldencorral/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4039560", "amenity": "restaurant", "cuisine": "american;buffet"}, "addTags": {"amenity": "restaurant", "brand": "Golden Corral", "brand:wikidata": "Q4039560", "brand:wikipedia": "en:Golden Corral", "cuisine": "american;buffet", "name": "Golden Corral"}, "reference": {"key": "cuisine", "value": "american"}, "countryCodes": ["us"], "terms": ["golden corral buffet", "golden corral buffet & grill", "golden corral buffet and grill"], "matchScore": 2, "suggestion": true}, + "amenity/restaurant/american/Golden Corral": {"name": "Golden Corral", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/goldencorral/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4039560", "amenity": "restaurant", "cuisine": "american;buffet"}, "addTags": {"amenity": "restaurant", "brand": "Golden Corral", "brand:wikidata": "Q4039560", "brand:wikipedia": "en:Golden Corral", "cuisine": "american;buffet", "name": "Golden Corral"}, "reference": {"key": "cuisine", "value": "american"}, "countryCodes": ["us"], "terms": ["golden corral buffet", "golden corral buffet and grill"], "matchScore": 2, "suggestion": true}, "amenity/restaurant/Gourmet Burger Kitchen": {"name": "Gourmet Burger Kitchen", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/gourmetburgerkitchen/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5588445", "amenity": "restaurant"}, "addTags": {"amenity": "restaurant", "brand": "Gourmet Burger Kitchen", "brand:wikidata": "Q5588445", "brand:wikipedia": "en:Gourmet Burger Kitchen", "cuisine": "burger", "name": "Gourmet Burger Kitchen"}, "countryCodes": ["gb", "gr", "ie"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/restaurant/pizza/Grotto Pizza": {"name": "Grotto Pizza", "icon": "maki-restaurant-pizza", "imageURL": "https://pbs.twimg.com/profile_images/3122105126/6f68644cf2b9b86b935ad99ee57fffad_bigger.jpeg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q20709024", "amenity": "restaurant", "cuisine": "pizza"}, "addTags": {"amenity": "restaurant", "brand": "Grotto Pizza", "brand:wikidata": "Q20709024", "brand:wikipedia": "en:Grotto Pizza", "cuisine": "pizza", "name": "Grotto Pizza"}, "reference": {"key": "cuisine", "value": "pizza"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/Handmade Burger Co.": {"name": "Handmade Burger Co.", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/handmadeburgercompany/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q56154673", "amenity": "restaurant"}, "addTags": {"amenity": "restaurant", "brand": "Handmade Burger Co.", "brand:wikidata": "Q56154673", "cuisine": "burger", "name": "Handmade Burger Co."}, "countryCodes": ["gb"], "terms": ["Handmade Burger Company"], "matchScore": 2, "suggestion": true}, "amenity/restaurant/Hans im Glück": {"name": "Hans im Glück", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/hansimglueck.burgergrill/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q22569868", "amenity": "restaurant"}, "addTags": {"amenity": "restaurant", "brand": "Hans im Glück", "brand:wikidata": "Q22569868", "brand:wikipedia": "de:Hans im Glück (Restaurantkette)", "cuisine": "burger", "name": "Hans im Glück"}, "countryCodes": ["at", "ch", "de", "sg"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/pizza/Happy's Pizza": {"name": "Happy's Pizza", "icon": "maki-restaurant-pizza", "imageURL": "https://graph.facebook.com/EatHappysPizza/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5652393", "amenity": "restaurant", "cuisine": "pizza"}, "addTags": {"amenity": "restaurant", "brand": "Happy's Pizza", "brand:wikidata": "Q5652393", "brand:wikipedia": "en:Happy's Pizza", "cuisine": "pizza", "name": "Happy's Pizza"}, "reference": {"key": "cuisine", "value": "pizza"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -2791,8 +2860,9 @@ "amenity/restaurant/american/Huddle House": {"name": "Huddle House", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/HuddleHouse/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5928324", "amenity": "restaurant", "cuisine": "american"}, "addTags": {"amenity": "restaurant", "brand": "Huddle House", "brand:wikidata": "Q5928324", "brand:wikipedia": "en:Huddle House", "cuisine": "american", "name": "Huddle House"}, "reference": {"key": "cuisine", "value": "american"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/Husky House": {"name": "Husky House", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/huskyenergy/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q702049", "amenity": "restaurant"}, "addTags": {"amenity": "restaurant", "brand": "Husky", "brand:wikidata": "Q702049", "brand:wikipedia": "en:Husky Energy", "cuisine": "diner", "name": "Husky House"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/IHOP": {"name": "IHOP", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/IHOP/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1185675", "amenity": "restaurant"}, "addTags": {"amenity": "restaurant", "brand": "IHOP", "brand:wikidata": "Q1185675", "brand:wikipedia": "en:IHOP", "cuisine": "breakfast;pancake", "name": "IHOP"}, "terms": ["international house of pancakes"], "matchScore": 2, "suggestion": true}, - "amenity/restaurant/american/IL Патио": {"name": "IL Патио", "icon": "maki-restaurant", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FRosInter.png&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4397763", "amenity": "restaurant", "cuisine": "american"}, "addTags": {"amenity": "restaurant", "brand": "IL Патио", "brand:wikidata": "Q4397763", "brand:wikipedia": "en:Росинтер", "cuisine": "american", "name": "IL Патио"}, "reference": {"key": "cuisine", "value": "american"}, "countryCodes": ["ru"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/restaurant/italian/IL Патио": {"name": "IL Патио", "icon": "maki-restaurant", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FRosInter.png&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4397763", "amenity": "restaurant", "cuisine": "italian"}, "addTags": {"amenity": "restaurant", "brand": "IL Патио", "brand:wikidata": "Q4397763", "brand:wikipedia": "en:Росинтер", "cuisine": "italian", "name": "IL Патио"}, "reference": {"key": "cuisine", "value": "italian"}, "countryCodes": ["ru"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/american/Iron Skillet": {"name": "Iron Skillet", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/IronSkilletRestaurant/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q64052855", "amenity": "restaurant", "cuisine": "american;buffet"}, "addTags": {"amenity": "restaurant", "brand": "Iron Skillet", "brand:wikidata": "Q64052855", "cuisine": "american;buffet", "name": "Iron Skillet"}, "reference": {"key": "cuisine", "value": "american"}, "countryCodes": ["us"], "terms": ["iron skillet restaurant"], "matchScore": 2, "suggestion": true}, + "amenity/restaurant/american/Jack Astor's": {"name": "Jack Astor's", "icon": "maki-restaurant", "imageURL": "https://pbs.twimg.com/profile_images/1003974042351792130/-v3NNNEb_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6111066", "amenity": "restaurant", "cuisine": "american"}, "addTags": {"amenity": "restaurant", "brand": "Jack Astor's", "brand:wikidata": "Q6111066", "brand:wikipedia": "en:Jack Astor's Bar and Grill", "cuisine": "american", "name": "Jack Astor's"}, "reference": {"key": "cuisine", "value": "american"}, "countryCodes": ["ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/Jason's Deli": {"name": "Jason's Deli", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/JasonsDeli/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q16997641", "amenity": "restaurant"}, "addTags": {"amenity": "restaurant", "brand": "Jason's Deli", "brand:wikidata": "Q16997641", "brand:wikipedia": "en:Jason's Deli", "cuisine": "sandwich", "name": "Jason's Deli"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/pizza/Jet's Pizza": {"name": "Jet's Pizza", "icon": "maki-restaurant-pizza", "imageURL": "https://graph.facebook.com/JetsPizza/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q16997713", "amenity": "restaurant", "cuisine": "pizza"}, "addTags": {"amenity": "restaurant", "brand": "Jet's Pizza", "brand:wikidata": "Q16997713", "brand:wikipedia": "en:Jet's Pizza", "cuisine": "pizza", "name": "Jet's Pizza"}, "reference": {"key": "cuisine", "value": "pizza"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/seafood/Joe's Crab Shack": {"name": "Joe's Crab Shack", "icon": "maki-restaurant-seafood", "imageURL": "https://graph.facebook.com/joescrabshack/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6208210", "amenity": "restaurant", "cuisine": "seafood"}, "addTags": {"amenity": "restaurant", "brand": "Joe's Crab Shack", "brand:wikidata": "Q6208210", "brand:wikipedia": "en:Joe's Crab Shack", "cuisine": "seafood", "name": "Joe's Crab Shack"}, "reference": {"key": "cuisine", "value": "seafood"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -2801,8 +2871,10 @@ "amenity/restaurant/american/Kelsey's": {"name": "Kelsey's", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/KelseysRestaurants/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6386459", "amenity": "restaurant", "cuisine": "american"}, "addTags": {"amenity": "restaurant", "brand": "Kelsey's", "brand:wikidata": "Q6386459", "brand:wikipedia": "en:Kelseys Original Roadhouse", "cuisine": "american", "name": "Kelsey's"}, "reference": {"key": "cuisine", "value": "american"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/Kudu": {"name": "Kudu", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/KuduRestaurants/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6441777", "amenity": "restaurant"}, "addTags": {"amenity": "restaurant", "brand": "Kudu", "brand:wikidata": "Q6441777", "brand:wikipedia": "en:Kudu (restaurant)", "cuisine": "sandwich", "name": "Kudu"}, "countryCodes": ["sa"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/La Boucherie": {"name": "La Boucherie", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/restaurantlaboucherie/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q21427479", "amenity": "restaurant"}, "addTags": {"amenity": "restaurant", "brand": "La Boucherie", "brand:wikidata": "Q21427479", "brand:wikipedia": "fr:La Boucherie (restaurant)", "cuisine": "steak_house", "name": "La Boucherie"}, "countryCodes": ["fr"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/restaurant/La Cage": {"name": "La Cage", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/lacagebrasseriesportive/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3206980", "amenity": "restaurant"}, "addTags": {"amenity": "restaurant", "brand": "La Cage", "brand:wikidata": "Q3206980", "brand:wikipedia": "fr:La Cage aux Sports", "cuisine": "burger;chicken;sandwich;fish;pasta", "name": "La Cage"}, "countryCodes": ["ca"], "terms": ["La Cage aux Sports"], "matchScore": 2, "suggestion": true}, "amenity/restaurant/pizza/LaRosa's Pizzeria": {"name": "LaRosa's Pizzeria", "icon": "maki-restaurant-pizza", "imageURL": "https://graph.facebook.com/LaRosasPizzeria/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6460833", "amenity": "restaurant", "cuisine": "pizza"}, "addTags": {"amenity": "restaurant", "brand": "LaRosa's Pizzeria", "brand:wikidata": "Q6460833", "brand:wikipedia": "en:LaRosa's Pizzeria", "cuisine": "pizza", "name": "LaRosa's Pizzeria", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "pizza"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/seafood/Legal Sea Foods": {"name": "Legal Sea Foods", "icon": "maki-restaurant-seafood", "imageURL": "https://graph.facebook.com/LegalSeaFoods/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6517417", "amenity": "restaurant", "cuisine": "seafood"}, "addTags": {"amenity": "restaurant", "brand": "Legal Sea Foods", "brand:wikidata": "Q6517417", "brand:wikipedia": "en:Legal Sea Foods", "cuisine": "seafood", "name": "Legal Sea Foods"}, "reference": {"key": "cuisine", "value": "seafood"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/restaurant/pizza/Les 3 Brasseurs (Qc,Br,Fr)": {"name": "Les 3 Brasseurs (Qc,Br,Fr)", "icon": "maki-restaurant-pizza", "imageURL": "https://graph.facebook.com/3Brasseursca/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3230326", "amenity": "restaurant", "cuisine": "burger;pizza;seafood"}, "addTags": {"amenity": "restaurant", "brand": "3 Brasseurs", "brand:wikidata": "Q3230326", "brand:wikipedia": "fr:Les 3 Brasseurs", "cuisine": "burger;pizza;seafood", "name": "3 Brasseurs", "name:en": "3 Brewers", "official_name": "Les 3 Brasseurs"}, "reference": {"key": "cuisine", "value": "pizza"}, "countryCodes": ["br", "ca", "fr"], "terms": ["3 Brasseurs"], "matchScore": 2, "suggestion": true}, "amenity/restaurant/american/Logan's Roadhouse": {"name": "Logan's Roadhouse", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/Logans.Roadhouse/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6666872", "amenity": "restaurant", "cuisine": "american"}, "addTags": {"amenity": "restaurant", "brand": "Logan's Roadhouse", "brand:wikidata": "Q6666872", "brand:wikipedia": "en:Logan's Roadhouse", "cuisine": "american", "name": "Logan's Roadhouse"}, "reference": {"key": "cuisine", "value": "american"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/LongHorn Steakhouse": {"name": "LongHorn Steakhouse", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/longhornsteakhouse/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3259007", "amenity": "restaurant"}, "addTags": {"amenity": "restaurant", "brand": "LongHorn Steakhouse", "brand:wikidata": "Q3259007", "brand:wikipedia": "en:LongHorn Steakhouse", "cuisine": "steak_house", "name": "LongHorn Steakhouse"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/pizza/Lou Malnati's Pizzeria": {"name": "Lou Malnati's Pizzeria", "icon": "maki-restaurant-pizza", "imageURL": "https://graph.facebook.com/loumalnatis/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6685628", "amenity": "restaurant", "cuisine": "pizza"}, "addTags": {"amenity": "restaurant", "brand": "Lou Malnati's Pizzeria", "brand:wikidata": "Q6685628", "brand:wikipedia": "en:Lou Malnati's Pizzeria", "cuisine": "pizza", "name": "Lou Malnati's Pizzeria"}, "reference": {"key": "cuisine", "value": "pizza"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -2813,15 +2885,16 @@ "amenity/restaurant/american/Marie Callender's": {"name": "Marie Callender's", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/MarieCallenders/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6762784", "amenity": "restaurant", "cuisine": "american"}, "addTags": {"amenity": "restaurant", "brand": "Marie Callender's", "brand:wikidata": "Q6762784", "brand:wikipedia": "en:Marie Callender's", "cuisine": "american", "name": "Marie Callender's"}, "reference": {"key": "cuisine", "value": "american"}, "countryCodes": ["mx", "us"], "terms": ["marie calendar", "marie calendar's", "marie callendar's"], "matchScore": 2, "suggestion": true}, "amenity/restaurant/asian/Max's Restaurant": {"name": "Max's Restaurant", "icon": "maki-restaurant-noodle", "imageURL": "https://graph.facebook.com/MaxsRestaurantNA/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6794477", "amenity": "restaurant", "cuisine": "asian"}, "addTags": {"amenity": "restaurant", "brand": "Max's Restaurant", "brand:wikidata": "Q6794477", "brand:wikipedia": "en:Max's Restaurant", "cuisine": "asian", "name": "Max's Restaurant"}, "reference": {"key": "cuisine", "value": "asian"}, "countryCodes": ["ph"], "terms": ["Max's"], "matchScore": 2, "suggestion": true}, "amenity/restaurant/McAlister's Deli": {"name": "McAlister's Deli", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/mcalistersdeli/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q17020829", "amenity": "restaurant"}, "addTags": {"amenity": "restaurant", "brand": "McAlister's Deli", "brand:wikidata": "Q17020829", "brand:wikipedia": "en:McAlister's Deli", "cuisine": "sandwich", "name": "McAlister's Deli"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/restaurant/seafood/McCormick & Schmick's": {"name": "McCormick & Schmick's", "icon": "maki-restaurant-seafood", "imageURL": "https://graph.facebook.com/mccormickandschmicks/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6800562", "amenity": "restaurant", "cuisine": "seafood;steak"}, "addTags": {"amenity": "restaurant", "brand": "McCormick & Schmick's", "brand:wikidata": "Q6800562", "brand:wikipedia": "en:McCormick & Schmick's", "cuisine": "seafood;steak", "name": "McCormick & Schmick's"}, "reference": {"key": "cuisine", "value": "seafood"}, "countryCodes": ["us"], "terms": ["mccormick & schmick", "mccormick & schmicks grill", "mccormick and schmick", "mccormick and schmick's"], "matchScore": 2, "suggestion": true}, + "amenity/restaurant/seafood/McCormick & Schmick's": {"name": "McCormick & Schmick's", "icon": "maki-restaurant-seafood", "imageURL": "https://graph.facebook.com/mccormickandschmicks/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6800562", "amenity": "restaurant", "cuisine": "seafood;steak"}, "addTags": {"amenity": "restaurant", "brand": "McCormick & Schmick's", "brand:wikidata": "Q6800562", "brand:wikipedia": "en:McCormick & Schmick's", "cuisine": "seafood;steak", "name": "McCormick & Schmick's"}, "reference": {"key": "cuisine", "value": "seafood"}, "countryCodes": ["us"], "terms": ["mccormick and schmick", "mccormick and schmicks grill"], "matchScore": 2, "suggestion": true}, "amenity/restaurant/pizza/Mellow Mushroom": {"name": "Mellow Mushroom", "icon": "maki-restaurant-pizza", "imageURL": "https://graph.facebook.com/mellowmushroom/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q17021360", "amenity": "restaurant", "cuisine": "pizza"}, "addTags": {"amenity": "restaurant", "brand": "Mellow Mushroom", "brand:wikidata": "Q17021360", "brand:wikipedia": "en:Mellow Mushroom", "cuisine": "pizza", "name": "Mellow Mushroom"}, "reference": {"key": "cuisine", "value": "pizza"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/restaurant/pizza/Mikes": {"name": "Mikes", "icon": "maki-restaurant-pizza", "imageURL": "https://graph.facebook.com/MikesRestaurant.PageOfficielle/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3313615", "amenity": "restaurant", "cuisine": "pizza;pasta;sandwich"}, "addTags": {"amenity": "restaurant", "brand": "Mikes", "brand:wikidata": "Q3313615", "brand:wikipedia": "fr:Mikes", "cuisine": "pizza;pasta;sandwich", "name": "Mikes"}, "reference": {"key": "cuisine", "value": "pizza"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/french/Mimi's Cafe": {"name": "Mimi's Cafe", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/mimiscafe/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q17022081", "amenity": "restaurant", "cuisine": "french"}, "addTags": {"amenity": "restaurant", "brand": "Mimi's Cafe", "brand:wikidata": "Q17022081", "brand:wikipedia": "en:Mimi's Cafe", "cuisine": "french", "name": "Mimi's Cafe"}, "reference": {"key": "cuisine", "value": "french"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/Montana's": {"name": "Montana's", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/montanasBBQ/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q17022490", "amenity": "restaurant"}, "addTags": {"amenity": "restaurant", "brand": "Montana's", "brand:wikidata": "Q17022490", "brand:wikipedia": "en:Montana's BBQ & Bar", "cuisine": "barbecue", "name": "Montana's", "official_name": "Montana's BBQ & Bar"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/Morton's The Steakhouse": {"name": "Morton's The Steakhouse", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/mortons/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q17022759", "amenity": "restaurant"}, "addTags": {"amenity": "restaurant", "brand": "Morton's The Steakhouse", "brand:wikidata": "Q17022759", "brand:wikipedia": "en:Morton's The Steakhouse", "cuisine": "steak_house", "name": "Morton's The Steakhouse"}, "countryCodes": ["us"], "terms": ["mortons"], "matchScore": 2, "suggestion": true}, "amenity/restaurant/Moses": {"name": "Moses", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/MosesIsrael/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q64760150", "amenity": "restaurant"}, "addTags": {"amenity": "restaurant", "brand": "Moses", "brand:en": "Moses", "brand:he": "מוזס", "brand:wikidata": "Q64760150", "cuisine": "burger", "name": "Moses", "name:en": "Moses", "name:he": "מוזס"}, "countryCodes": ["il"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/pizza/Mountain Mike's": {"name": "Mountain Mike's", "icon": "maki-restaurant-pizza", "imageURL": "https://graph.facebook.com/mountainmikes/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6925120", "amenity": "restaurant", "cuisine": "pizza"}, "addTags": {"alt_name": "Mountain Mike's Pizza", "amenity": "restaurant", "brand": "Mountain Mike's", "brand:wikidata": "Q6925120", "brand:wikipedia": "en:Mountain Mike's Pizza", "cuisine": "pizza", "name": "Mountain Mike's", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "pizza"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/Nando's": {"name": "Nando's", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/NandosUSA/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3472954", "amenity": "restaurant"}, "addTags": {"amenity": "restaurant", "brand": "Nando's", "brand:wikidata": "Q3472954", "brand:wikipedia": "en:Nando's", "cuisine": "chicken;portuguese", "name": "Nando's"}, "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/restaurant/Noodles & Company": {"name": "Noodles & Company", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/noodlesandcompany/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7049673", "amenity": "restaurant"}, "addTags": {"amenity": "restaurant", "brand": "Noodles & Company", "brand:wikidata": "Q7049673", "brand:wikipedia": "en:Noodles & Company", "cuisine": "pasta", "name": "Noodles & Company"}, "countryCodes": ["us"], "terms": ["noodles and company", "noodles co"], "matchScore": 2, "suggestion": true}, + "amenity/restaurant/Noodles & Company": {"name": "Noodles & Company", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/noodlesandcompany/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7049673", "amenity": "restaurant"}, "addTags": {"amenity": "restaurant", "brand": "Noodles & Company", "brand:wikidata": "Q7049673", "brand:wikipedia": "en:Noodles & Company", "cuisine": "pasta", "name": "Noodles & Company"}, "countryCodes": ["us"], "terms": ["noodles and co", "noodles co", "noodles company"], "matchScore": 2, "suggestion": true}, "amenity/restaurant/american/O'Charley's": {"name": "O'Charley's", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/ocharleysfans/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7071703", "amenity": "restaurant", "cuisine": "american"}, "addTags": {"amenity": "restaurant", "brand": "O'Charley's", "brand:wikidata": "Q7071703", "brand:wikipedia": "en:O'Charley's", "cuisine": "american", "name": "O'Charley's"}, "reference": {"key": "cuisine", "value": "american"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/seafood/Ocean Basket": {"name": "Ocean Basket", "icon": "maki-restaurant-seafood", "imageURL": "https://graph.facebook.com/daoceanbasket/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62075311", "amenity": "restaurant", "cuisine": "seafood"}, "addTags": {"amenity": "restaurant", "brand": "Ocean Basket", "brand:wikidata": "Q62075311", "cuisine": "seafood", "name": "Ocean Basket"}, "reference": {"key": "cuisine", "value": "seafood"}, "countryCodes": ["za"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/pizza/Old Chicago": {"name": "Old Chicago", "icon": "maki-restaurant-pizza", "imageURL": "https://graph.facebook.com/OldChicago/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q64411347", "amenity": "restaurant", "cuisine": "pizza"}, "addTags": {"amenity": "restaurant", "brand": "Old Chicago", "brand:wikidata": "Q64411347", "cuisine": "pizza", "name": "Old Chicago", "official_name": "Old Chicago Pizza & Taproom"}, "reference": {"key": "cuisine", "value": "pizza"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -2830,11 +2903,12 @@ "amenity/restaurant/On The Border": {"name": "On The Border", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/OnTheBorderMexicanGrillandCantina/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7091305", "amenity": "restaurant"}, "addTags": {"amenity": "restaurant", "brand": "On The Border", "brand:wikidata": "Q7091305", "brand:wikipedia": "en:On the Border Mexican Grill & Cantina", "cuisine": "tex-mex", "name": "On The Border", "official_name": "On The Border Mexican Grill & Cantina"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/american/Outback Steakhouse": {"name": "Outback Steakhouse", "icon": "maki-restaurant", "imageURL": "https://pbs.twimg.com/profile_images/778575984958267392/MGtDYhwg_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1064893", "amenity": "restaurant", "cuisine": "american;steak"}, "addTags": {"amenity": "restaurant", "brand": "Outback Steakhouse", "brand:wikidata": "Q1064893", "brand:wikipedia": "en:Outback Steakhouse", "cuisine": "american;steak", "name": "Outback Steakhouse"}, "reference": {"key": "cuisine", "value": "american"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/asian/P.F. Chang's": {"name": "P.F. Chang's", "icon": "maki-restaurant-noodle", "imageURL": "https://graph.facebook.com/pfchangs/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5360181", "amenity": "restaurant", "cuisine": "asian"}, "addTags": {"amenity": "restaurant", "brand": "P.F. Chang's", "brand:wikidata": "Q5360181", "brand:wikipedia": "en:P. F. Chang's China Bistro", "cuisine": "asian", "name": "P.F. Chang's", "official_name": "P.F. Chang's China Bistro"}, "reference": {"key": "cuisine", "value": "asian"}, "countryCodes": ["mx", "us"], "terms": ["pf chang"], "matchScore": 2, "suggestion": true}, + "amenity/restaurant/pizza/Papa Gino's": {"name": "Papa Gino's", "icon": "maki-restaurant-pizza", "imageURL": "https://pbs.twimg.com/profile_images/645764802531454976/5QHfmIzP_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7132333", "amenity": "restaurant", "cuisine": "pizza"}, "addTags": {"amenity": "restaurant", "brand": "Papa Gino's", "brand:wikidata": "Q7132333", "brand:wikipedia": "en:Papa Gino's", "cuisine": "pizza", "name": "Papa Gino's"}, "reference": {"key": "cuisine", "value": "pizza"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/Pardos Chicken": {"name": "Pardos Chicken", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/pardoschicken/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q17624435", "amenity": "restaurant"}, "addTags": {"amenity": "restaurant", "brand": "Pardos Chicken", "brand:wikidata": "Q17624435", "brand:wikipedia": "en:Pardos chicken", "cuisine": "peruvian", "name": "Pardos Chicken"}, "countryCodes": ["pe"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/asian/Pei Wei": {"name": "Pei Wei", "icon": "maki-restaurant-noodle", "imageURL": "https://graph.facebook.com/peiwei/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7160898", "amenity": "restaurant", "cuisine": "asian"}, "addTags": {"amenity": "restaurant", "brand": "Pei Wei", "brand:wikidata": "Q7160898", "brand:wikipedia": "en:Pei Wei Asian Diner", "cuisine": "asian", "name": "Pei Wei"}, "reference": {"key": "cuisine", "value": "asian"}, "countryCodes": ["us"], "terms": ["pei wei asian diner"], "matchScore": 2, "suggestion": true}, "amenity/restaurant/american/Perkins": {"name": "Perkins", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/eatatperkins/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7169056", "amenity": "restaurant", "cuisine": "american"}, "addTags": {"amenity": "restaurant", "brand": "Perkins", "brand:wikidata": "Q7169056", "brand:wikipedia": "en:Perkins Restaurant and Bakery", "cuisine": "american", "name": "Perkins", "official_name": "Perkins Restaurant and Bakery"}, "reference": {"key": "cuisine", "value": "american"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/vietnamese/Phở 24": {"name": "Phở 24", "icon": "maki-restaurant-noodle", "imageURL": "https://graph.facebook.com/pho24.24giavitinhte/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q63863118", "amenity": "restaurant", "cuisine": "vietnamese;noodle"}, "addTags": {"amenity": "restaurant", "brand": "Phở 24", "brand:wikidata": "Q63863118", "cuisine": "vietnamese;noodle", "name": "Phở 24", "name:en": "Pho 24", "name:vi": "Phở 24"}, "reference": {"key": "cuisine", "value": "vietnamese"}, "countryCodes": ["vn"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/restaurant/vietnamese/Phở Hòa (Branded)": {"name": "Phở Hòa (Branded)", "icon": "maki-restaurant-noodle", "imageURL": "https://graph.facebook.com/phohoanoodlesoup/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q55629932", "amenity": "restaurant", "cuisine": "vietnamese;noodle"}, "addTags": {"alt_name": "Phở Hoà", "alt_name:en": "Pho Hoa", "alt_name:vi": "Phở Hoà", "amenity": "restaurant", "brand": "Phở Hòa", "brand:wikidata": "Q55629932", "brand:wikipedia": "en:Phở Hòa", "cuisine": "vietnamese;noodle", "name": "Phở Hòa", "name:vi": "Phở Hòa"}, "reference": {"key": "cuisine", "value": "vietnamese"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/restaurant/vietnamese/Phở Hòa": {"name": "Phở Hòa", "icon": "maki-restaurant-noodle", "imageURL": "https://graph.facebook.com/phohoanoodlesoup/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q55629932", "amenity": "restaurant", "cuisine": "vietnamese;noodle"}, "addTags": {"alt_name": "Phở Hoà", "alt_name:en": "Pho Hoa", "alt_name:vi": "Phở Hoà", "amenity": "restaurant", "brand": "Phở Hòa", "brand:wikidata": "Q55629932", "brand:wikipedia": "en:Phở Hòa", "cuisine": "vietnamese;noodle", "name": "Phở Hòa", "name:vi": "Phở Hòa"}, "reference": {"key": "cuisine", "value": "vietnamese"}, "countryCodes": ["ca", "id", "kr", "ms", "ph", "tw", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/pizza/Pieology Pizzeria": {"name": "Pieology Pizzeria", "icon": "maki-restaurant-pizza", "imageURL": "https://graph.facebook.com/pieology/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q60746053", "amenity": "restaurant", "cuisine": "pizza"}, "addTags": {"amenity": "restaurant", "brand": "Pieology Pizzeria", "brand:wikidata": "Q60746053", "brand:wikipedia": "en:Pieology", "cuisine": "pizza", "name": "Pieology Pizzeria"}, "reference": {"key": "cuisine", "value": "pizza"}, "countryCodes": ["us"], "terms": ["pieology"], "matchScore": 2, "suggestion": true}, "amenity/restaurant/pizza/Pizza Factory": {"name": "Pizza Factory", "icon": "maki-restaurant-pizza", "imageURL": "https://graph.facebook.com/pizzafactoryinc/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q39054369", "amenity": "restaurant", "cuisine": "pizza"}, "addTags": {"amenity": "restaurant", "brand": "Pizza Factory", "brand:wikidata": "Q39054369", "brand:wikipedia": "en:Pizza Factory", "cuisine": "pizza", "name": "Pizza Factory"}, "reference": {"key": "cuisine", "value": "pizza"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/pizza/Pizza Hut": {"name": "Pizza Hut", "icon": "maki-restaurant-pizza", "imageURL": "https://graph.facebook.com/pizzahutus/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q191615", "amenity": "restaurant", "cuisine": "pizza"}, "addTags": {"amenity": "restaurant", "brand": "Pizza Hut", "brand:wikidata": "Q191615", "brand:wikipedia": "en:Pizza Hut", "cuisine": "pizza", "name": "Pizza Hut"}, "reference": {"key": "cuisine", "value": "pizza"}, "terms": [], "matchScore": 2, "suggestion": true}, @@ -2843,7 +2917,7 @@ "amenity/restaurant/french/Poivre Rouge": {"name": "Poivre Rouge", "icon": "maki-restaurant", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FLogo%20Restaumarch%C3%A9.jpg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7316076", "amenity": "restaurant", "cuisine": "french"}, "addTags": {"amenity": "restaurant", "brand": "Poivre Rouge", "brand:wikidata": "Q7316076", "brand:wikipedia": "fr:Poivre Rouge (restauration)", "cuisine": "french", "name": "Poivre Rouge"}, "reference": {"key": "cuisine", "value": "french"}, "countryCodes": ["fr"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/american/Ponderosa Steakhouse": {"name": "Ponderosa Steakhouse", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/ponbonsteakhouses/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q64038204", "amenity": "restaurant", "cuisine": "american;steak;buffet"}, "addTags": {"amenity": "restaurant", "brand": "Ponderosa Steakhouse", "brand:wikidata": "Q64038204", "cuisine": "american;steak;buffet", "name": "Ponderosa Steakhouse"}, "reference": {"key": "cuisine", "value": "american"}, "countryCodes": ["ae", "eg", "qa", "tw", "us"], "terms": ["ponderosa"], "matchScore": 2, "suggestion": true}, "amenity/restaurant/italian/Prezzo": {"name": "Prezzo", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/loveprezzo/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7242489", "amenity": "restaurant", "cuisine": "italian"}, "addTags": {"amenity": "restaurant", "brand": "Prezzo", "brand:wikidata": "Q7242489", "brand:wikipedia": "en:Prezzo (restaurant)", "cuisine": "italian", "name": "Prezzo"}, "reference": {"key": "cuisine", "value": "italian"}, "countryCodes": ["gb"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/restaurant/Quaker Steak & Lube": {"name": "Quaker Steak & Lube", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/TheOfficialQSL/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7268570", "amenity": "restaurant"}, "addTags": {"amenity": "restaurant", "brand": "Quaker Steak & Lube", "brand:wikidata": "Q7268570", "brand:wikipedia": "en:Quaker Steak & Lube", "cuisine": "wings", "name": "Quaker Steak & Lube"}, "countryCodes": ["us"], "terms": ["quaker steak and lube"], "matchScore": 2, "suggestion": true}, + "amenity/restaurant/Quaker Steak & Lube": {"name": "Quaker Steak & Lube", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/TheOfficialQSL/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7268570", "amenity": "restaurant"}, "addTags": {"amenity": "restaurant", "brand": "Quaker Steak & Lube", "brand:wikidata": "Q7268570", "brand:wikipedia": "en:Quaker Steak & Lube", "cuisine": "wings", "name": "Quaker Steak & Lube"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/seafood/Red Lobster": {"name": "Red Lobster", "icon": "maki-restaurant-seafood", "imageURL": "https://graph.facebook.com/redlobster/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q846301", "amenity": "restaurant", "cuisine": "seafood"}, "addTags": {"amenity": "restaurant", "brand": "Red Lobster", "brand:wikidata": "Q846301", "brand:wikipedia": "en:Red Lobster", "cuisine": "seafood", "name": "Red Lobster"}, "reference": {"key": "cuisine", "value": "seafood"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/Red Robin": {"name": "Red Robin", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/RedRobin/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7304886", "amenity": "restaurant"}, "addTags": {"amenity": "restaurant", "brand": "Red Robin", "brand:wikidata": "Q7304886", "brand:wikipedia": "en:Red Robin", "cuisine": "burger", "name": "Red Robin", "official_name": "Red Robin Gourmet Burgers and Brews"}, "countryCodes": ["ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/italian/Romano's Macaroni Grill": {"name": "Romano's Macaroni Grill", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/RomanosMacaroniGrill/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7362714", "amenity": "restaurant", "cuisine": "italian"}, "addTags": {"amenity": "restaurant", "brand": "Romano's Macaroni Grill", "brand:wikidata": "Q7362714", "brand:wikipedia": "en:Romano's Macaroni Grill", "cuisine": "italian", "name": "Romano's Macaroni Grill"}, "reference": {"key": "cuisine", "value": "italian"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -2851,6 +2925,7 @@ "amenity/restaurant/american/Ruby Tuesday": {"name": "Ruby Tuesday", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/rubytuesday/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7376400", "amenity": "restaurant", "cuisine": "american"}, "addTags": {"amenity": "restaurant", "brand": "Ruby Tuesday", "brand:wikidata": "Q7376400", "brand:wikipedia": "en:Ruby Tuesday (restaurant)", "cuisine": "american", "name": "Ruby Tuesday"}, "reference": {"key": "cuisine", "value": "american"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/american/Ruth's Chris Steak House": {"name": "Ruth's Chris Steak House", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/RuthsChrisSteakHouseNational/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7382829", "amenity": "restaurant", "cuisine": "american"}, "addTags": {"amenity": "restaurant", "brand": "Ruth's Chris Steak House", "brand:wikidata": "Q7382829", "brand:wikipedia": "en:Ruth's Chris Steak House", "cuisine": "american", "name": "Ruth's Chris Steak House"}, "reference": {"key": "cuisine", "value": "american"}, "countryCodes": ["ca", "mx", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/Saltgrass Steak House": {"name": "Saltgrass Steak House", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/saltgrass/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7406113", "amenity": "restaurant"}, "addTags": {"amenity": "restaurant", "brand": "Saltgrass Steak House", "brand:wikidata": "Q7406113", "brand:wikipedia": "en:Saltgrass Steak House", "cuisine": "steak_house", "name": "Saltgrass Steak House"}, "countryCodes": ["us"], "terms": ["saltgrass"], "matchScore": 2, "suggestion": true}, + "amenity/restaurant/Scores": {"name": "Scores", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/RestaurantScores/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3476059", "amenity": "restaurant"}, "addTags": {"amenity": "restaurant", "brand": "Scores", "brand:wikidata": "Q3476059", "brand:wikipedia": "fr:Scores", "cuisine": "chicken;barbecue", "name": "Scores"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/pizza/Shakey's": {"name": "Shakey's", "icon": "maki-restaurant-pizza", "imageURL": "https://graph.facebook.com/shakeyspizzaparlorusa/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6134929", "amenity": "restaurant", "cuisine": "pizza"}, "addTags": {"amenity": "restaurant", "brand": "Shakey's", "brand:wikidata": "Q6134929", "brand:wikipedia": "en:Shakey's Pizza", "cuisine": "pizza", "name": "Shakey's"}, "reference": {"key": "cuisine", "value": "pizza"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/american/Shari's": {"name": "Shari's", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/SharisPies/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7489612", "amenity": "restaurant", "cuisine": "american"}, "addTags": {"amenity": "restaurant", "brand": "Shari's", "brand:wikidata": "Q7489612", "brand:wikipedia": "en:Shari's Cafe & Pies", "cuisine": "american", "name": "Shari's"}, "reference": {"key": "cuisine", "value": "american"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/american/Shoney's": {"name": "Shoney's", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/shoneys/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7500392", "amenity": "restaurant", "cuisine": "american"}, "addTags": {"amenity": "restaurant", "brand": "Shoney's", "brand:wikidata": "Q7500392", "brand:wikipedia": "en:Shoney's", "cuisine": "american", "name": "Shoney's"}, "reference": {"key": "cuisine", "value": "american"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -2859,6 +2934,8 @@ "amenity/restaurant/Smitty's": {"name": "Smitty's", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/SmittysRestaurants/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7545728", "amenity": "restaurant"}, "addTags": {"amenity": "restaurant", "brand": "Smitty's", "brand:wikidata": "Q7545728", "brand:wikipedia": "en:Smitty's", "cuisine": "pancake", "name": "Smitty's"}, "countryCodes": ["ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/pizza/Snappy Tomato Pizza": {"name": "Snappy Tomato Pizza", "icon": "maki-restaurant-pizza", "imageURL": "https://graph.facebook.com/SnappyTomatoPizza/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7547352", "amenity": "restaurant", "cuisine": "pizza"}, "addTags": {"amenity": "restaurant", "brand": "Snappy Tomato Pizza", "brand:wikidata": "Q7547352", "brand:wikipedia": "en:Snappy Tomato Pizza", "cuisine": "pizza", "name": "Snappy Tomato Pizza", "takeaway": "yes"}, "reference": {"key": "cuisine", "value": "pizza"}, "countryCodes": ["gb", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/Spur": {"name": "Spur", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/SpurSteakRanches/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7581546", "amenity": "restaurant"}, "addTags": {"amenity": "restaurant", "brand": "Spur", "brand:wikidata": "Q7581546", "brand:wikipedia": "en:Spur Steak Ranches", "cuisine": "steak_house", "name": "Spur"}, "countryCodes": ["za"], "terms": ["spur steak ranches"], "matchScore": 2, "suggestion": true}, + "amenity/restaurant/St-Hubert": {"name": "St-Hubert", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/sthubert/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3495225", "amenity": "restaurant"}, "addTags": {"amenity": "restaurant", "brand": "St-Hubert", "brand:wikidata": "Q3495225", "brand:wikipedia": "en:St-Hubert", "cuisine": "chicken;barbecue", "name": "St-Hubert"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/restaurant/St. Louis Bar & Grill": {"name": "St. Louis Bar & Grill", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/stlouisbarandgrill/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q65567668", "amenity": "restaurant"}, "addTags": {"amenity": "restaurant", "brand": "St. Louis Bar & Grill", "brand:wikidata": "Q65567668", "cuisine": "chicken", "name": "St. Louis Bar & Grill"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/Steak 'n Shake": {"name": "Steak 'n Shake", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/steaknshake/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7605233", "amenity": "restaurant"}, "addTags": {"amenity": "restaurant", "brand": "Steak 'n Shake", "brand:wikidata": "Q7605233", "brand:wikipedia": "en:Steak 'n Shake", "cuisine": "burger", "name": "Steak 'n Shake"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/american/Sunset Grill": {"name": "Sunset Grill", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/SunsetGrillBreakfast/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62112489", "amenity": "restaurant", "cuisine": "american"}, "addTags": {"amenity": "restaurant", "brand": "Sunset Grill", "brand:wikidata": "Q62112489", "brand:wikipedia": "en:Sunset Grill (Canadian restaurant chain)", "cuisine": "american", "name": "Sunset Grill"}, "reference": {"key": "cuisine", "value": "american"}, "countryCodes": ["ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/Swiss Chalet": {"name": "Swiss Chalet", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/SwissChalet/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2372909", "amenity": "restaurant"}, "addTags": {"amenity": "restaurant", "brand": "Swiss Chalet", "brand:wikidata": "Q2372909", "brand:wikipedia": "en:Swiss Chalet", "cuisine": "chicken", "name": "Swiss Chalet"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -2879,8 +2956,10 @@ "amenity/restaurant/japanese/Wasabi": {"name": "Wasabi", "icon": "maki-restaurant-noodle", "imageURL": "https://graph.facebook.com/WasabiUK/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q23891278", "amenity": "restaurant", "cuisine": "japanese"}, "addTags": {"amenity": "restaurant", "brand": "Wasabi", "brand:wikidata": "Q23891278", "brand:wikipedia": "en:Wasabi (restaurant)", "cuisine": "japanese", "name": "Wasabi"}, "reference": {"key": "cuisine", "value": "japanese"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/american/Western Sizzlin'": {"name": "Western Sizzlin'", "icon": "maki-restaurant", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FWestern%20Sizzlin'%20logo.png&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7988295", "amenity": "restaurant", "cuisine": "american;steak"}, "addTags": {"amenity": "restaurant", "brand": "Western Sizzlin'", "brand:wikidata": "Q7988295", "brand:wikipedia": "en:Western Sizzlin'", "cuisine": "american;steak", "name": "Western Sizzlin'"}, "reference": {"key": "cuisine", "value": "american"}, "countryCodes": ["us"], "terms": ["western sizzling"], "matchScore": 2, "suggestion": true}, "amenity/restaurant/White Spot": {"name": "White Spot", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/whitespot/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7995414", "amenity": "restaurant"}, "addTags": {"amenity": "restaurant", "brand": "White Spot", "brand:wikidata": "Q7995414", "brand:wikipedia": "en:White Spot", "cuisine": "burger", "name": "White Spot"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/restaurant/Wild Wing": {"name": "Wild Wing", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/WildWingRestaurants/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q8000869", "amenity": "restaurant"}, "addTags": {"amenity": "restaurant", "brand": "Wild Wing", "brand:wikidata": "Q8000869", "brand:wikipedia": "en:Wild Wing Restaurants", "cuisine": "chicken", "name": "Wild Wing"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/Wingstop": {"name": "Wingstop", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/Wingstop/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q8025339", "amenity": "restaurant"}, "addTags": {"amenity": "restaurant", "brand": "Wingstop", "brand:wikidata": "Q8025339", "brand:wikipedia": "en:Wingstop", "cuisine": "wings", "name": "Wingstop"}, "countryCodes": ["mx", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/sushi/YO! Sushi": {"name": "YO! Sushi", "icon": "fas-fish", "imageURL": "https://graph.facebook.com/YOSushi/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3105441", "amenity": "restaurant", "cuisine": "sushi"}, "addTags": {"amenity": "restaurant", "brand": "YO! Sushi", "brand:wikidata": "Q3105441", "brand:wikipedia": "en:YO! Sushi", "cuisine": "sushi", "name": "YO! Sushi"}, "reference": {"key": "cuisine", "value": "sushi"}, "countryCodes": ["gb"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/restaurant/american/Yard House": {"name": "Yard House", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/yardhouse/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q21189156", "amenity": "restaurant", "cuisine": "american"}, "addTags": {"alcohol": "yes", "amenity": "restaurant", "brand": "Yard House", "brand:wikidata": "Q21189156", "brand:wikipedia": "en:Yard House", "cuisine": "american", "name": "Yard House"}, "reference": {"key": "cuisine", "value": "american"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/italian/Zizzi": {"name": "Zizzi", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/wearezizzi/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q8072944", "amenity": "restaurant", "cuisine": "italian"}, "addTags": {"amenity": "restaurant", "brand": "Zizzi", "brand:wikidata": "Q8072944", "brand:wikipedia": "en:Zizzi", "cuisine": "italian", "name": "Zizzi"}, "reference": {"key": "cuisine", "value": "italian"}, "countryCodes": ["gb"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/sushi/Планета Суши": {"name": "Планета Суши", "icon": "fas-fish", "imageURL": "https://graph.facebook.com/sushiplanet.ru/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62739250", "amenity": "restaurant", "cuisine": "sushi"}, "addTags": {"amenity": "restaurant", "brand": "Планета Суши", "brand:wikidata": "Q62739250", "cuisine": "sushi", "name": "Планета Суши", "name:en": "Planet Sushi"}, "reference": {"key": "cuisine", "value": "sushi"}, "countryCodes": ["ru"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/japanese/Тануки": {"name": "Тануки", "icon": "maki-restaurant-noodle", "imageURL": "https://graph.facebook.com/tanuki.official/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62758690", "amenity": "restaurant", "cuisine": "japanese"}, "addTags": {"amenity": "restaurant", "brand": "Тануки", "brand:wikidata": "Q62758690", "cuisine": "japanese", "name": "Тануки", "name:en": "Tanuki", "name:ru": "Тануки"}, "reference": {"key": "cuisine", "value": "japanese"}, "countryCodes": ["kz", "ru", "ua"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -2915,29 +2994,42 @@ "amenity/restaurant/japanese/華屋与兵衛": {"name": "華屋与兵衛", "icon": "maki-restaurant-noodle", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11620063", "amenity": "restaurant", "cuisine": "japanese"}, "addTags": {"amenity": "restaurant", "brand": "華屋与兵衛", "brand:en": "Hanaya Yohei", "brand:ja": "華屋与兵衛", "brand:wikidata": "Q11620063", "brand:wikipedia": "ja:華屋与兵衛 (レストラン)", "cuisine": "japanese", "name": "華屋与兵衛", "name:en": "Hanaya Yohei", "name:ja": "華屋与兵衛"}, "reference": {"key": "cuisine", "value": "japanese"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/chinese/餃子の王将": {"name": "餃子の王将", "icon": "maki-restaurant-noodle", "imageURL": "https://graph.facebook.com/ohshosaiyo/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11666805", "amenity": "restaurant", "cuisine": "chinese;gyoza"}, "addTags": {"amenity": "restaurant", "brand": "餃子の王将", "brand:en": "Gyoza no Ohsho", "brand:ja": "餃子の王将", "brand:wikidata": "Q11666805", "brand:wikipedia": "en:Gyoza no Ohsho", "cuisine": "chinese;gyoza", "name": "餃子の王将", "name:en": "Gyoza no Ohsho", "name:ja": "餃子の王将"}, "reference": {"key": "cuisine", "value": "chinese"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/restaurant/빕스": {"name": "빕스", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/ivips/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q12599540", "amenity": "restaurant"}, "addTags": {"amenity": "restaurant", "brand": "빕스", "brand:en": "VIPS", "brand:ko": "빕스", "brand:wikidata": "Q12599540", "brand:wikipedia": "en:VIPS (restaurant)", "name": "빕스", "name:en": "VIPS", "name:ko": "빕스"}, "countryCodes": ["kr"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/school/Imagine Schools": {"name": "Imagine Schools", "icon": "maki-school", "imageURL": "https://pbs.twimg.com/profile_images/378800000441414844/d5dd1489ee04654b0efb3f99873bea51_bigger.jpeg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6002737", "amenity": "school"}, "addTags": {"amenity": "school", "brand": "Imagine Schools", "brand:wikidata": "Q6002737", "brand:wikipedia": "en:Imagine Schools", "name": "Imagine Schools", "operator:type": "private_non_profit"}, "countryCodes": ["us"], "terms": ["imagine", "imagine school"], "matchScore": 2, "suggestion": true}, + "amenity/school/KIPP": {"name": "KIPP", "icon": "maki-school", "imageURL": "https://graph.facebook.com/KIPPFoundation/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6423304", "amenity": "school"}, "addTags": {"amenity": "school", "brand": "KIPP", "brand:wikidata": "Q6423304", "brand:wikipedia": "en:KIPP (organization)", "name": "KIPP", "official_name": "Knowledge Is Power Program", "operator:type": "private_non_profit"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/school/Success Academy": {"name": "Success Academy", "icon": "maki-school", "imageURL": "https://graph.facebook.com/SuccessAcademies/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q14707388", "amenity": "school"}, "addTags": {"amenity": "school", "brand": "Success Academy", "brand:wikidata": "Q14707388", "brand:wikipedia": "en:Success Academy Charter Schools", "name": "Success Academy", "operator:type": "private_non_profit"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/social_centre/American Legion Hall": {"name": "American Legion Hall", "icon": "fas-handshake", "imageURL": "https://graph.facebook.com/americanlegionhq/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q468865", "amenity": "social_centre"}, "addTags": {"amenity": "social_centre", "brand": "American Legion", "brand:wikidata": "Q468865", "brand:wikipedia": "en:American Legion", "name": "American Legion Hall", "social_centre:for": "veterans"}, "countryCodes": ["us"], "terms": ["american legion"], "matchScore": 2, "suggestion": true}, "amenity/social_centre/Eagles Lodge": {"name": "Eagles Lodge", "icon": "fas-handshake", "imageURL": "https://graph.facebook.com/foegrandaerie/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5493810", "amenity": "social_centre"}, "addTags": {"alt_name": "Aeries Lodge", "amenity": "social_centre", "brand": "Fraternal Order of Eagles", "brand:wikidata": "Q5493810", "brand:wikipedia": "en:Fraternal Order of Eagles", "name": "Eagles Lodge", "official_name": "Fraternal Order of Eagles"}, "countryCodes": ["us"], "terms": ["aeries", "eagles", "foe"], "matchScore": 2, "suggestion": true}, "amenity/social_centre/Elks Lodge": {"name": "Elks Lodge", "icon": "fas-handshake", "imageURL": "https://graph.facebook.com/107605905935671/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2895789", "amenity": "social_centre"}, "addTags": {"amenity": "social_centre", "brand": "Benevolent and Protective Order of Elks", "brand:wikidata": "Q2895789", "brand:wikipedia": "en:Benevolent and Protective Order of Elks", "name": "Elks Lodge", "official_name": "Benevolent and Protective Order of Elks"}, "countryCodes": ["us"], "terms": ["bpoe", "elks"], "matchScore": 2, "suggestion": true}, "amenity/social_centre/Moose Lodge": {"name": "Moose Lodge", "icon": "fas-handshake", "imageURL": "https://graph.facebook.com/heardofmoose/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6908585", "amenity": "social_centre"}, "addTags": {"amenity": "social_centre", "brand": "Loyal Order of Moose", "brand:wikidata": "Q6908585", "brand:wikipedia": "en:Loyal Order of Moose", "name": "Moose Lodge", "official_name": "Loyal Order of Moose"}, "countryCodes": ["bm", "ca", "us"], "terms": ["moose"], "matchScore": 2, "suggestion": true}, "amenity/social_centre/Odd Fellows Hall": {"name": "Odd Fellows Hall", "icon": "fas-handshake", "imageURL": "https://graph.facebook.com/IOOFSGL/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1425508", "amenity": "social_centre"}, "addTags": {"amenity": "social_centre", "brand": "Independent Order of Odd Fellows", "brand:wikidata": "Q1425508", "brand:wikipedia": "en:Independent Order of Odd Fellows", "name": "Odd Fellows Hall", "official_name": "Independent Order of Odd Fellows"}, "terms": ["ioof", "odd fellow", "odd fellows"], "matchScore": 2, "suggestion": true}, + "amenity/social_centre/VFW Post": {"name": "VFW Post", "icon": "fas-handshake", "imageURL": "https://graph.facebook.com/VFWFans/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3556413", "amenity": "social_centre"}, "addTags": {"amenity": "social_centre", "brand": "Veterans of Foreign Wars of the United States", "brand:wikidata": "Q3556413", "brand:wikipedia": "en:Veterans of Foreign Wars", "name": "VFW Post", "name:en": "VFW Post", "official_name": "Veterans of Foreign Wars of the United States", "social_centre:for": "veterans"}, "countryCodes": ["de", "jp", "kr", "ph", "th", "us"], "terms": ["vfw"], "matchScore": 2, "suggestion": true}, + "amenity/social_facility/Vet Center": {"name": "Vet Center", "icon": "temaki-social_facility", "imageURL": "https://graph.facebook.com/VeteransHealth/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6580225", "amenity": "social_facility"}, "addTags": {"amenity": "social_facility", "brand": "VA", "brand:wikidata": "Q6580225", "brand:wikipedia": "en:Veterans Health Administration", "healthcare": "counselling", "healthcare:counselling": "psychiatry", "healthcare:for": "veterans", "name": "Vet Center", "social_facility": "healthcare;outreach", "social_facility:for": "veterans"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/university/DeVry University": {"name": "DeVry University", "icon": "maki-college", "imageURL": "https://graph.facebook.com/DEVRYUNIVERSITY/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3298441", "amenity": "university"}, "addTags": {"amenity": "university", "brand": "DeVry University", "brand:wikidata": "Q3298441", "brand:wikipedia": "en:DeVry University", "name": "DeVry University", "short_name": "DeVry"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/university/Strayer University": {"name": "Strayer University", "icon": "maki-college", "imageURL": "https://graph.facebook.com/StrayerUniversity/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7622587", "amenity": "university"}, "addTags": {"amenity": "university", "brand": "Strayer University", "brand:wikidata": "Q7622587", "brand:wikipedia": "en:Strayer University", "name": "Strayer University", "short_name": "Strayer"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/university/University of Phoenix": {"name": "University of Phoenix", "icon": "maki-college", "imageURL": "https://graph.facebook.com/universityofphoenix/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1889100", "amenity": "university"}, "addTags": {"amenity": "university", "brand": "University of Phoenix", "brand:wikidata": "Q1889100", "brand:wikipedia": "en:University of Phoenix", "name": "University of Phoenix", "short_name": "UOPX"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/vehicle_inspection/Autosur": {"name": "Autosur", "icon": "maki-car", "imageURL": "https://graph.facebook.com/autosurfrance/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q64224807", "amenity": "vehicle_inspection"}, "addTags": {"amenity": "vehicle_inspection", "brand": "Autosur", "brand:wikidata": "Q64224807", "name": "Autosur"}, "countryCodes": ["fr"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/vehicle_inspection/Autovision": {"name": "Autovision", "icon": "maki-car", "imageURL": "https://graph.facebook.com/AutovisionFrance/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q64224842", "amenity": "vehicle_inspection"}, "addTags": {"amenity": "vehicle_inspection", "brand": "Autovision", "brand:wikidata": "Q64224842", "name": "Autovision"}, "countryCodes": ["fr"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/vehicle_inspection/Dekra": {"name": "Dekra", "icon": "maki-car", "imageURL": "https://pbs.twimg.com/profile_images/3238634623/8ccb79c10c4bfb652432961fe776c6c3_bigger.jpeg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q383711", "amenity": "vehicle_inspection"}, "addTags": {"amenity": "vehicle_inspection", "brand": "Dekra", "brand:wikidata": "Q383711", "brand:wikipedia": "en:Dekra", "name": "Dekra", "official_name": "Dekra Automotive"}, "countryCodes": ["de", "fr"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/vehicle_inspection/Sécuritest": {"name": "Sécuritest", "icon": "maki-car", "imageURL": "https://graph.facebook.com/218871841874062/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q64224992", "amenity": "vehicle_inspection"}, "addTags": {"amenity": "vehicle_inspection", "brand": "Sécuritest", "brand:wikidata": "Q64224992", "name": "Sécuritest"}, "countryCodes": ["fr"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/vending_machine/parcel_pickup/Amazon Locker": {"name": "Amazon Locker", "icon": "temaki-vending_machine", "imageURL": "https://graph.facebook.com/amazon/picture?type=large", "geometry": ["point"], "tags": {"brand:wikidata": "Q16974764", "amenity": "vending_machine", "vending": "parcel_pickup"}, "addTags": {"amenity": "vending_machine", "brand": "Amazon Locker", "brand:wikidata": "Q16974764", "brand:wikipedia": "en:Amazon Locker", "name": "Amazon Locker", "vending": "parcel_pickup"}, "reference": {"key": "vending", "value": "parcel_pickup"}, "countryCodes": ["de", "us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/vending_machine/AmeriGas": {"name": "AmeriGas", "icon": "temaki-vending_machine", "imageURL": "https://graph.facebook.com/AmeriGas/picture?type=large", "geometry": ["point"], "tags": {"brand:wikidata": "Q23130318", "amenity": "vending_machine"}, "addTags": {"amenity": "vending_machine", "brand": "AmeriGas", "brand:wikidata": "Q23130318", "fuel:lpg": "yes", "name": "AmeriGas", "vending": "gas"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/vending_machine/public_transport_tickets/Automat ŚKUP": {"name": "Automat ŚKUP", "icon": "temaki-vending_machine", "geometry": ["point"], "tags": {"brand:wikidata": "Q24945427", "amenity": "vending_machine", "vending": "public_transport_tickets"}, "addTags": {"amenity": "vending_machine", "brand": "Automat ŚKUP", "brand:wikidata": "Q24945427", "brand:wikipedia": "pl:Śląska Karta Usług Publicznych", "name": "Automat ŚKUP", "vending": "public_transport_tickets"}, "reference": {"key": "vending", "value": "public_transport_tickets"}, "countryCodes": ["pl"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/vending_machine/public_transport_tickets/BKK-automata": {"name": "BKK-automata", "icon": "temaki-vending_machine", "imageURL": "https://graph.facebook.com/bkkbudapest/picture?type=large", "geometry": ["point"], "tags": {"brand:wikidata": "Q608917", "amenity": "vending_machine", "vending": "public_transport_tickets"}, "addTags": {"amenity": "vending_machine", "brand": "BKK-automata", "brand:wikidata": "Q608917", "brand:wikipedia": "hu:Budapesti Közlekedési Központ", "name": "BKK-automata", "vending": "public_transport_tickets"}, "reference": {"key": "vending", "value": "public_transport_tickets"}, "countryCodes": ["hu"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/vending_machine/Blue Rhino": {"name": "Blue Rhino", "icon": "temaki-vending_machine", "imageURL": "https://graph.facebook.com/BlueRhino/picture?type=large", "geometry": ["point"], "tags": {"brand:wikidata": "Q65681213", "amenity": "vending_machine"}, "addTags": {"amenity": "vending_machine", "brand": "Blue Rhino", "brand:wikidata": "Q65681213", "fuel:lpg": "yes", "name": "Blue Rhino", "vending": "gas"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/vending_machine/CVS Pharmacy": {"name": "CVS Pharmacy", "icon": "temaki-vending_machine", "imageURL": "https://graph.facebook.com/CVS/picture?type=large", "geometry": ["point"], "tags": {"brand:wikidata": "Q2078880", "amenity": "vending_machine"}, "addTags": {"amenity": "vending_machine", "brand": "CVS Pharmacy", "brand:wikidata": "Q2078880", "brand:wikipedia": "en:CVS Pharmacy", "name": "CVS Pharmacy", "short_name": "CVS", "vending": "chemist"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/vending_machine/parcel_pickup_dropoff/DHL Packstation": {"name": "DHL Packstation", "icon": "temaki-vending_machine", "geometry": ["point"], "tags": {"brand:wikidata": "Q1766703", "amenity": "vending_machine", "vending": "parcel_pickup;parcel_mail_in"}, "addTags": {"amenity": "vending_machine", "brand": "Packstation", "brand:wikidata": "Q1766703", "brand:wikipedia": "en:Packstation", "name": "DHL Packstation", "vending": "parcel_pickup;parcel_mail_in"}, "reference": {"key": "vending", "value": "parcel_pickup;parcel_mail_in"}, "countryCodes": ["de"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/vending_machine/DHL Paketbox": {"name": "DHL Paketbox", "icon": "temaki-vending_machine", "geometry": ["point"], "tags": {"brand:wikidata": "Q2046604", "amenity": "vending_machine"}, "addTags": {"amenity": "vending_machine", "brand": "Paketbox", "brand:wikidata": "Q2046604", "brand:wikipedia": "de:Paketbox", "name": "DHL Paketbox", "vending": "parcel_mail_in"}, "countryCodes": ["de"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/vending_machine/excrement_bags/Dog-Station": {"name": "Dog-Station", "icon": "temaki-vending_machine", "geometry": ["point"], "tags": {"brand:wikidata": "Q63720061", "amenity": "vending_machine", "vending": "excrement_bags"}, "addTags": {"amenity": "vending_machine", "brand": "Dog-Station", "brand:wikidata": "Q63720061", "name": "Dog-Station", "vending": "excrement_bags"}, "reference": {"key": "vending", "value": "excrement_bags"}, "countryCodes": ["at", "de", "dk"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/vending_machine/Home City Ice": {"name": "Home City Ice", "icon": "temaki-vending_machine", "imageURL": "https://graph.facebook.com/HomeCityIceJobs/picture?type=large", "geometry": ["point"], "tags": {"brand:wikidata": "Q5888287", "amenity": "vending_machine"}, "addTags": {"amenity": "vending_machine", "brand": "Home City Ice", "brand:wikidata": "Q5888287", "name": "Home City Ice", "vending": "ice_cubes"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/vending_machine/public_transport_tickets/KKM": {"name": "KKM", "icon": "temaki-vending_machine", "geometry": ["point"], "tags": {"brand:wikidata": "Q57515549", "amenity": "vending_machine", "vending": "public_transport_tickets"}, "addTags": {"amenity": "vending_machine", "brand": "KKM", "brand:wikidata": "Q57515549", "name": "KKM", "vending": "public_transport_tickets"}, "reference": {"key": "vending", "value": "public_transport_tickets"}, "countryCodes": ["pl"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/vending_machine/parcel_pickup_dropoff/Paczkomat InPost": {"name": "Paczkomat InPost", "icon": "temaki-vending_machine", "imageURL": "https://graph.facebook.com/paczkomaty/picture?type=large", "geometry": ["point"], "tags": {"brand:wikidata": "Q3182097", "amenity": "vending_machine", "vending": "parcel_pickup;parcel_mail_in"}, "addTags": {"amenity": "vending_machine", "brand": "InPost", "brand:wikidata": "Q3182097", "brand:wikipedia": "pl:InPost", "name": "Paczkomat InPost", "vending": "parcel_pickup;parcel_mail_in"}, "reference": {"key": "vending", "value": "parcel_pickup;parcel_mail_in"}, "countryCodes": ["pl"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/vending_machine/parking_tickets/ParkPlus (Calgary)": {"name": "ParkPlus (Calgary)", "icon": "temaki-vending_machine", "imageURL": "https://graph.facebook.com/CalgaryParkingAuthority/picture?type=large", "geometry": ["point"], "tags": {"brand:wikidata": "Q63719595", "amenity": "vending_machine", "vending": "parking_tickets"}, "addTags": {"amenity": "vending_machine", "brand": "ParkPlus", "brand:wikidata": "Q63719595", "name": "ParkPlus", "vending": "parking_tickets"}, "reference": {"key": "vending", "value": "parking_tickets"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/vending_machine/Redbox": {"name": "Redbox", "icon": "temaki-vending_machine", "imageURL": "https://graph.facebook.com/redbox/picture?type=large", "geometry": ["point"], "tags": {"brand:wikidata": "Q7305489", "amenity": "vending_machine"}, "addTags": {"amenity": "vending_machine", "brand": "Redbox", "brand:wikidata": "Q7305489", "brand:wikipedia": "en:Redbox", "name": "Redbox", "vending": "dvd"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/vending_machine/Redbox": {"name": "Redbox", "icon": "temaki-vending_machine", "imageURL": "https://graph.facebook.com/redbox/picture?type=large", "geometry": ["point"], "tags": {"brand:wikidata": "Q7305489", "amenity": "vending_machine"}, "addTags": {"amenity": "vending_machine", "brand": "Redbox", "brand:wikidata": "Q7305489", "brand:wikipedia": "en:Redbox", "name": "Redbox", "vending": "movies"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/vending_machine/Reddy Ice": {"name": "Reddy Ice", "icon": "temaki-vending_machine", "imageURL": "https://graph.facebook.com/RealReddyIce/picture?type=large", "geometry": ["point"], "tags": {"brand:wikidata": "Q7305666", "amenity": "vending_machine"}, "addTags": {"amenity": "vending_machine", "brand": "Reddy Ice", "brand:wikidata": "Q7305666", "name": "Reddy Ice", "vending": "ice_cubes"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/vending_machine/excrement_bags/Robidog": {"name": "Robidog", "icon": "temaki-vending_machine", "geometry": ["point"], "tags": {"brand:wikidata": "Q2159689", "amenity": "vending_machine", "vending": "excrement_bags"}, "addTags": {"amenity": "vending_machine", "brand": "Robidog", "brand:wikidata": "Q2159689", "brand:wikipedia": "de:Robidog", "name": "Robidog", "vending": "excrement_bags"}, "reference": {"key": "vending", "value": "excrement_bags"}, "countryCodes": ["ch"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/vending_machine/parcel_pickup_dropoff/Smartpost": {"name": "Smartpost", "icon": "temaki-vending_machine", "geometry": ["point"], "tags": {"brand:wikidata": "Q7543889", "amenity": "vending_machine", "vending": "parcel_pickup;parcel_mail_in"}, "addTags": {"amenity": "vending_machine", "brand": "Smartpost", "brand:wikidata": "Q7543889", "brand:wikipedia": "fi:SmartPOST", "name": "Smartpost", "vending": "parcel_pickup;parcel_mail_in"}, "reference": {"key": "vending", "value": "parcel_pickup;parcel_mail_in"}, "countryCodes": ["fi"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/vending_machine/cigarettes/Tobaccoland": {"name": "Tobaccoland", "icon": "temaki-vending_machine", "geometry": ["point"], "tags": {"brand:wikidata": "Q1439872", "amenity": "vending_machine", "vending": "cigarettes"}, "addTags": {"amenity": "vending_machine", "brand": "Tobaccoland", "brand:wikidata": "Q1439872", "brand:wikipedia": "de:Tobaccoland Automatengesellschaft", "name": "Tobaccoland", "vending": "cigarettes"}, "reference": {"key": "vending", "value": "cigarettes"}, "countryCodes": ["de"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/vending_machine/drinks/コカ・コーラ": {"name": "コカ・コーラ", "icon": "temaki-vending_machine", "imageURL": "https://pbs.twimg.com/profile_images/1133719168996564992/YYUxyMIM_bigger.png", "geometry": ["point"], "tags": {"brand:wikidata": "Q2813", "amenity": "vending_machine", "vending": "drinks"}, "addTags": {"amenity": "vending_machine", "brand": "コカ・コーラ", "brand:en": "Coca-Cola", "brand:ja": "コカ・コーラ", "brand:wikidata": "Q2813", "brand:wikipedia": "ja:コカ・コーラ", "drink": "cola", "name": "コカ・コーラ", "name:en": "Coca-Cola", "name:ja": "コカ・コーラ", "vending": "drinks"}, "reference": {"key": "vending", "value": "drinks"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/vending_machine/drinks/コカ・コーラ": {"name": "コカ・コーラ", "icon": "temaki-vending_machine", "imageURL": "https://pbs.twimg.com/profile_images/1149007644918784001/b5PBpHkK_bigger.jpg", "geometry": ["point"], "tags": {"brand:wikidata": "Q2813", "amenity": "vending_machine", "vending": "drinks"}, "addTags": {"amenity": "vending_machine", "brand": "コカ・コーラ", "brand:en": "Coca-Cola", "brand:ja": "コカ・コーラ", "brand:wikidata": "Q2813", "brand:wikipedia": "ja:コカ・コーラ", "drink": "cola", "name": "コカ・コーラ", "name:en": "Coca-Cola", "name:ja": "コカ・コーラ", "vending": "drinks"}, "reference": {"key": "vending", "value": "drinks"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/vending_machine/ポッカサッポロ": {"name": "ポッカサッポロ", "icon": "temaki-vending_machine", "imageURL": "https://pbs.twimg.com/profile_images/937822527543377920/j8-XeRV8_bigger.jpg", "geometry": ["point"], "tags": {"brand:wikidata": "Q7208665", "amenity": "vending_machine"}, "addTags": {"amenity": "vending_machine", "brand": "ポッカサッポロ", "brand:en": "Pokka Sapporo", "brand:ja": "ポッカサッポロ", "brand:wikidata": "Q7208665", "brand:wikipedia": "ja:ポッカサッポロフード&ビバレッジ", "name": "ポッカサッポロ", "name:en": "Pokka Sapporo", "name:ja": "ポッカサッポロ", "vending": "water;food"}, "countryCodes": ["jp"], "terms": ["pokka sapporo"], "matchScore": 2, "suggestion": true}, "amenity/veterinary/Banfield Pet Hospital": {"name": "Banfield Pet Hospital", "icon": "temaki-veterinary_care", "imageURL": "https://graph.facebook.com/BanfieldPetHospital/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2882416", "amenity": "veterinary"}, "addTags": {"amenity": "veterinary", "brand": "Banfield Pet Hospital", "brand:wikidata": "Q2882416", "brand:wikipedia": "en:Banfield Pet Hospital", "name": "Banfield Pet Hospital"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/veterinary/VCA Animal Hospital": {"name": "VCA Animal Hospital", "icon": "temaki-veterinary_care", "imageURL": "https://graph.facebook.com/VCAAnimalHospitals/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7906620", "amenity": "veterinary"}, "addTags": {"amenity": "veterinary", "brand": "VCA Animal Hospital", "brand:wikidata": "Q7906620", "brand:wikipedia": "en:VCA Animal Hospitals", "name": "VCA Animal Hospital"}, "countryCodes": ["ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -2953,7 +3045,7 @@ "leisure/fitness_centre/Basic-Fit": {"name": "Basic-Fit", "icon": "fas-dumbbell", "imageURL": "https://graph.facebook.com/BasicFitEspana/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q40165577", "leisure": "fitness_centre"}, "addTags": {"brand": "Basic-Fit", "brand:wikidata": "Q40165577", "brand:wikipedia": "nl:Basic-Fit", "leisure": "fitness_centre", "name": "Basic-Fit"}, "countryCodes": ["be", "es", "fr", "lu", "nl"], "terms": [], "matchScore": 2, "suggestion": true}, "leisure/fitness_centre/Clever fit": {"name": "Clever fit", "icon": "fas-dumbbell", "imageURL": "https://graph.facebook.com/cleverfit/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q27909675", "leisure": "fitness_centre"}, "addTags": {"brand": "Clever fit", "brand:wikidata": "Q27909675", "brand:wikipedia": "de:Clever fit", "leisure": "fitness_centre", "name": "Clever fit"}, "countryCodes": ["at", "ch", "de"], "terms": [], "matchScore": 2, "suggestion": true}, "leisure/fitness_centre/CorePower Yoga": {"name": "CorePower Yoga", "icon": "fas-dumbbell", "imageURL": "https://graph.facebook.com/CorePowerYoga/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q21015663", "leisure": "fitness_centre"}, "addTags": {"brand": "CorePower Yoga", "brand:wikidata": "Q21015663", "brand:wikipedia": "en:CorePower Yoga", "leisure": "fitness_centre", "name": "CorePower Yoga", "sport": "yoga"}, "countryCodes": ["us"], "terms": ["corepower"], "matchScore": 2, "suggestion": true}, - "leisure/fitness_centre/Crunch Fitness": {"name": "Crunch Fitness", "icon": "fas-dumbbell", "imageURL": "https://graph.facebook.com/CRUNCH/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5190093", "leisure": "fitness_centre"}, "addTags": {"brand": "Crunch Fitness", "brand:wikidata": "Q5190093", "brand:wikipedia": "en:Crunch Fitness", "leisure": "fitness_centre", "name": "Crunch Fitness"}, "countryCodes": ["au", "ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, + "leisure/fitness_centre/Crunch Fitness": {"name": "Crunch Fitness", "icon": "fas-dumbbell", "imageURL": "https://graph.facebook.com/CRUNCH/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5190093", "leisure": "fitness_centre"}, "addTags": {"brand": "Crunch Fitness", "brand:wikidata": "Q5190093", "brand:wikipedia": "en:Crunch Fitness", "leisure": "fitness_centre", "name": "Crunch Fitness"}, "countryCodes": ["au", "ca", "us"], "terms": ["crunch"], "matchScore": 2, "suggestion": true}, "leisure/fitness_centre/Curves": {"name": "Curves", "icon": "fas-dumbbell", "imageURL": "https://graph.facebook.com/Curves/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5196080", "leisure": "fitness_centre"}, "addTags": {"brand": "Curves", "brand:wikidata": "Q5196080", "brand:wikipedia": "en:Curves International", "leisure": "fitness_centre", "name": "Curves"}, "terms": [], "matchScore": 2, "suggestion": true}, "leisure/fitness_centre/F45 Training": {"name": "F45 Training", "icon": "fas-dumbbell", "imageURL": "https://graph.facebook.com/F45FunctionalTraining/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q64390973", "leisure": "fitness_centre"}, "addTags": {"brand": "F45 Training", "brand:wikidata": "Q64390973", "leisure": "fitness_centre", "name": "F45 Training"}, "terms": [], "matchScore": 2, "suggestion": true}, "leisure/fitness_centre/Fit4Less (Canada)": {"name": "Fit4Less (Canada)", "icon": "fas-dumbbell", "imageURL": "https://pbs.twimg.com/profile_images/1002267809248768000/7GDwAjgc_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q64821050", "leisure": "fitness_centre"}, "addTags": {"brand": "Fit4Less", "brand:wikidata": "Q64821050", "leisure": "fitness_centre", "name": "Fit4Less"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -2976,18 +3068,24 @@ "leisure/sports_centre/iFLY": {"name": "iFLY", "icon": "maki-pitch", "imageURL": "https://graph.facebook.com/iFLYUS/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q64767105", "leisure": "sports_centre"}, "addTags": {"brand": "iFLY", "brand:wikidata": "Q64767105", "leisure": "sports_centre", "name": "iFLY", "sport": "indoor_skydiving"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/beauty/tanning/Palm Beach Tan": {"name": "Palm Beach Tan", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/PBTOfficial/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q64027086", "shop": "beauty", "beauty": "tanning"}, "addTags": {"beauty": "tanning", "brand": "Palm Beach Tan", "brand:wikidata": "Q64027086", "brand:wikipedia": "en:Palm Beach Tan", "leisure": "tanning_salon", "name": "Palm Beach Tan", "shop": "beauty"}, "reference": {"key": "leisure", "value": "tanning_salon"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "office/bail_bond_agent/Aladdin Bail Bonds": {"name": "Aladdin Bail Bonds", "icon": "maki-bank", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FAladdin%20Bail%20Bonds%20logo.png&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q64166257", "office": "bail_bond_agent"}, "addTags": {"brand": "Aladdin Bail Bonds", "brand:wikidata": "Q64166257", "brand:wikipedia": "en:Aladdin Bail Bonds", "name": "Aladdin Bail Bonds", "office": "bail_bond_agent", "opening_hours": "24/7"}, "countryCodes": ["us"], "terms": ["aladdin", "aladin bail bonds", "alladin bail bonds"], "matchScore": 2, "suggestion": true}, + "office/coworking/Awfis": {"name": "Awfis", "icon": "maki-suitcase", "imageURL": "https://graph.facebook.com/myawfis/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q60747757", "office": "coworking"}, "addTags": {"brand": "Awfis", "brand:wikidata": "Q60747757", "brand:wikipedia": "en:Awfis", "fee": "yes", "name": "Awfis", "office": "coworking"}, "reference": {"key": "amenity", "value": "coworking_space"}, "countryCodes": ["in"], "terms": [], "matchScore": 2, "suggestion": true}, + "office/coworking/Ucommune (China)": {"name": "Ucommune (China)", "icon": "maki-suitcase", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q60785187", "office": "coworking"}, "addTags": {"brand": "优客工场", "brand:en": "Ucommune", "brand:wikidata": "Q60785187", "brand:wikipedia": "en:Ucommune", "brand:zh": "优客工场", "brand:zh-Hans": "优客工场", "fee": "yes", "name": "优客工场", "name:en": "Ucommune", "name:zh": "优客工场", "name:zh-Hans": "优客工场", "office": "coworking"}, "reference": {"key": "amenity", "value": "coworking_space"}, "countryCodes": ["cn"], "terms": [], "matchScore": 2, "suggestion": true}, + "office/coworking/Ucommune (Hong Kong)": {"name": "Ucommune (Hong Kong)", "icon": "maki-suitcase", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q60785187", "office": "coworking"}, "addTags": {"brand": "優客工場 Ucommune", "brand:en": "Ucommune", "brand:wikidata": "Q60785187", "brand:wikipedia": "en:Ucommune", "brand:zh": "優客工場", "brand:zh-Hans": "优客工场", "brand:zh-Hant": "優客工場", "fee": "yes", "name": "優客工場 Ucommune", "name:en": "Ucommune", "name:zh": "優客工場", "name:zh-Hans": "优客工场", "name:zh-Hant": "優客工場", "office": "coworking"}, "reference": {"key": "amenity", "value": "coworking_space"}, "countryCodes": ["hk"], "terms": [], "matchScore": 2, "suggestion": true}, + "office/coworking/Ucommune (Singapore)": {"name": "Ucommune (Singapore)", "icon": "maki-suitcase", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q60785187", "office": "coworking"}, "addTags": {"brand": "Ucommune", "brand:en": "Ucommune", "brand:wikidata": "Q60785187", "brand:wikipedia": "en:Ucommune", "brand:zh": "优客工场", "brand:zh-Hans": "优客工场", "fee": "yes", "name": "Ucommune", "name:en": "Ucommune", "name:zh": "优客工场", "name:zh-Hans": "优客工场", "office": "coworking"}, "reference": {"key": "amenity", "value": "coworking_space"}, "countryCodes": ["sg"], "terms": [], "matchScore": 2, "suggestion": true}, + "office/coworking/Ucommune (Taiwan)": {"name": "Ucommune (Taiwan)", "icon": "maki-suitcase", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q60785187", "office": "coworking"}, "addTags": {"brand": "優客工場", "brand:en": "Ucommune", "brand:wikidata": "Q60785187", "brand:wikipedia": "en:Ucommune", "brand:zh": "優客工場", "brand:zh-Hans": "优客工场", "brand:zh-Hant": "優客工場", "fee": "yes", "name": "優客工場", "name:en": "Ucommune", "name:zh": "優客工場", "name:zh-Hans": "优客工场", "name:zh-Hant": "優客工場", "office": "coworking"}, "reference": {"key": "amenity", "value": "coworking_space"}, "countryCodes": ["tw"], "terms": [], "matchScore": 2, "suggestion": true}, + "office/coworking/WeWork": {"name": "WeWork", "icon": "maki-suitcase", "imageURL": "https://graph.facebook.com/wework/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q19995004", "office": "coworking"}, "addTags": {"brand": "WeWork", "brand:wikidata": "Q19995004", "brand:wikipedia": "en:WeWork", "fee": "yes", "name": "WeWork", "office": "coworking"}, "reference": {"key": "amenity", "value": "coworking_space"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "office/employment_agency/Adecco": {"name": "Adecco", "icon": "maki-suitcase", "imageURL": "https://graph.facebook.com/adeccogroupDE/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q353494", "office": "employment_agency"}, "addTags": {"brand": "Adecco", "brand:wikidata": "Q353494", "brand:wikipedia": "en:The Adecco Group", "name": "Adecco", "office": "employment_agency"}, "terms": [], "matchScore": 2, "suggestion": true}, "office/employment_agency/Manpower": {"name": "Manpower", "icon": "maki-suitcase", "imageURL": "https://graph.facebook.com/ManpowerGroup/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1472539", "office": "employment_agency"}, "addTags": {"brand": "Manpower", "brand:wikidata": "Q1472539", "brand:wikipedia": "en:ManpowerGroup", "name": "Manpower", "office": "employment_agency"}, "terms": [], "matchScore": 2, "suggestion": true}, "office/employment_agency/Pôle Emploi": {"name": "Pôle Emploi", "icon": "maki-suitcase", "imageURL": "https://graph.facebook.com/poleemploi/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q8901192", "office": "employment_agency"}, "addTags": {"brand": "Pôle Emploi", "brand:wikidata": "Q8901192", "brand:wikipedia": "en:Pôle emploi", "name": "Pôle Emploi", "office": "employment_agency"}, "countryCodes": ["fr"], "terms": [], "matchScore": 2, "suggestion": true}, "office/employment_agency/Randstad": {"name": "Randstad", "icon": "maki-suitcase", "imageURL": "https://graph.facebook.com/Randstad/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q267840", "office": "employment_agency"}, "addTags": {"brand": "Randstad", "brand:wikidata": "Q267840", "brand:wikipedia": "en:Randstad Holding", "name": "Randstad", "office": "employment_agency"}, "terms": [], "matchScore": 2, "suggestion": true}, "office/estate_agent/Century 21": {"name": "Century 21", "icon": "temaki-real_estate_agency", "imageURL": "https://graph.facebook.com/century21/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1054480", "office": "estate_agent"}, "addTags": {"brand": "Century 21", "brand:wikidata": "Q1054480", "brand:wikipedia": "en:Century 21 (real estate)", "name": "Century 21", "office": "estate_agent"}, "terms": ["century 21 real estate"], "matchScore": 2, "suggestion": true}, "office/estate_agent/Coldwell Banker": {"name": "Coldwell Banker", "icon": "temaki-real_estate_agency", "imageURL": "https://graph.facebook.com/coldwellbanker/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q738853", "office": "estate_agent"}, "addTags": {"brand": "Coldwell Banker", "brand:wikidata": "Q738853", "brand:wikipedia": "en:Coldwell Banker", "name": "Coldwell Banker", "office": "estate_agent"}, "terms": ["coldwell banker real estate"], "matchScore": 2, "suggestion": true}, - "office/estate_agent/Engel & Völkers": {"name": "Engel & Völkers", "icon": "temaki-real_estate_agency", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FEngel-voelkers-logo.png&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1341765", "office": "estate_agent"}, "addTags": {"brand": "Engel & Völkers", "brand:wikidata": "Q1341765", "brand:wikipedia": "en:Engel & Völkers", "name": "Engel & Völkers", "office": "estate_agent"}, "terms": [], "matchScore": 2, "suggestion": true}, + "office/estate_agent/Engel & Völkers": {"name": "Engel & Völkers", "icon": "temaki-real_estate_agency", "imageURL": "https://graph.facebook.com/engelvoelkershq/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1341765", "office": "estate_agent"}, "addTags": {"brand": "Engel & Völkers", "brand:wikidata": "Q1341765", "brand:wikipedia": "en:Engel & Völkers", "name": "Engel & Völkers", "office": "estate_agent"}, "terms": [], "matchScore": 2, "suggestion": true}, "office/estate_agent/Foncia": {"name": "Foncia", "icon": "temaki-real_estate_agency", "imageURL": "https://graph.facebook.com/Foncia/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1435638", "office": "estate_agent"}, "addTags": {"brand": "Foncia", "brand:wikidata": "Q1435638", "brand:wikipedia": "fr:Foncia", "name": "Foncia", "office": "estate_agent"}, "countryCodes": ["fr"], "terms": [], "matchScore": 2, "suggestion": true}, "office/estate_agent/Guy Hoquet": {"name": "Guy Hoquet", "icon": "temaki-real_estate_agency", "imageURL": "https://graph.facebook.com/GuyHoquetImmobilier/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q25383970", "office": "estate_agent"}, "addTags": {"brand": "Guy Hoquet", "brand:wikidata": "Q25383970", "brand:wikipedia": "fr:Guy Hoquet l'immobilier", "name": "Guy Hoquet", "office": "estate_agent"}, "countryCodes": ["fr"], "terms": [], "matchScore": 2, "suggestion": true}, "office/estate_agent/Orpi": {"name": "Orpi", "icon": "temaki-real_estate_agency", "imageURL": "https://graph.facebook.com/OrpiFrance/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3356080", "office": "estate_agent"}, "addTags": {"brand": "Orpi", "brand:wikidata": "Q3356080", "brand:wikipedia": "fr:Organisation régionale des professionnels de l'immobilier", "name": "Orpi", "office": "estate_agent"}, "countryCodes": ["fr"], "terms": [], "matchScore": 2, "suggestion": true}, "office/estate_agent/REMAX": {"name": "RE/MAX", "icon": "temaki-real_estate_agency", "imageURL": "https://graph.facebook.com/remax/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q965845", "office": "estate_agent"}, "addTags": {"brand": "RE/MAX", "brand:wikidata": "Q965845", "brand:wikipedia": "en:RE/MAX", "name": "RE/MAX", "office": "estate_agent"}, "terms": [], "matchScore": 2, "suggestion": true}, - "office/estate_agent/Royal LePage": {"name": "Royal LePage", "icon": "temaki-real_estate_agency", "imageURL": "https://pbs.twimg.com/profile_images/1143181179102859269/HvAK2iCT_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7374385", "office": "estate_agent"}, "addTags": {"brand": "Royal LePage", "brand:wikidata": "Q7374385", "brand:wikipedia": "en:Royal LePage", "name": "Royal LePage", "office": "estate_agent"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, + "office/estate_agent/Royal LePage": {"name": "Royal LePage", "icon": "temaki-real_estate_agency", "imageURL": "https://graph.facebook.com/royallepage/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7374385", "office": "estate_agent"}, "addTags": {"brand": "Royal LePage", "brand:wikidata": "Q7374385", "brand:wikipedia": "en:Royal LePage", "name": "Royal LePage", "office": "estate_agent"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "office/estate_agent/Square Habitat": {"name": "Square Habitat", "icon": "temaki-real_estate_agency", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q64027038", "office": "estate_agent"}, "addTags": {"brand": "Square Habitat", "brand:wikidata": "Q64027038", "brand:wikipedia": "fr:Square Habitat", "name": "Square Habitat", "office": "estate_agent"}, "countryCodes": ["fr"], "terms": [], "matchScore": 2, "suggestion": true}, "office/financial_advisor/Edward Jones": {"name": "Edward Jones", "icon": "maki-suitcase", "imageURL": "https://graph.facebook.com/edwardjones/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5343830", "office": "financial_advisor"}, "addTags": {"alt_name": "Edward Jones Investments", "brand": "Edward Jones", "brand:wikidata": "Q5343830", "brand:wikipedia": "en:Edward Jones Investments", "name": "Edward Jones", "office": "financial_advisor"}, "countryCodes": ["ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "office/insurance/AAA Insurance": {"name": "AAA Insurance", "icon": "maki-suitcase", "imageURL": "https://graph.facebook.com/AAAFanPage/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q463436", "office": "insurance"}, "addTags": {"brand": "American Automobile Association", "brand:wikidata": "Q463436", "brand:wikipedia": "en:American Automobile Association", "name": "AAA Insurance", "office": "insurance", "short_name": "AAA"}, "countryCodes": ["us"], "terms": ["american automobile association"], "matchScore": 2, "suggestion": true}, @@ -3016,6 +3114,7 @@ "office/insurance/PZU": {"name": "PZU", "icon": "maki-suitcase", "imageURL": "https://graph.facebook.com/grupapzu/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1807170", "office": "insurance"}, "addTags": {"brand": "PZU", "brand:wikidata": "Q1807170", "brand:wikipedia": "pl:Powszechny Zakład Ubezpieczeń", "name": "PZU", "office": "insurance"}, "countryCodes": ["pl"], "terms": [], "matchScore": 2, "suggestion": true}, "office/insurance/Progressive": {"name": "Progressive", "icon": "maki-suitcase", "imageURL": "https://graph.facebook.com/progressive/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7248721", "office": "insurance"}, "addTags": {"brand": "Progressive", "brand:wikidata": "Q7248721", "brand:wikipedia": "en:Progressive Corporation", "name": "Progressive", "office": "insurance"}, "countryCodes": ["us"], "terms": ["progressive insurance"], "matchScore": 2, "suggestion": true}, "office/insurance/State Farm": {"name": "State Farm", "icon": "maki-suitcase", "imageURL": "https://graph.facebook.com/statefarm/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2007336", "office": "insurance"}, "addTags": {"brand": "State Farm", "brand:wikidata": "Q2007336", "brand:wikipedia": "en:State Farm", "name": "State Farm", "office": "insurance"}, "countryCodes": ["us"], "terms": ["state farm insurance"], "matchScore": 2, "suggestion": true}, + "office/insurance/Swinton": {"name": "Swinton", "icon": "maki-suitcase", "imageURL": "https://graph.facebook.com/SwintonInsurance/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7658785", "office": "insurance"}, "addTags": {"brand": "Swinton", "brand:wikidata": "Q7658785", "name": "Swinton", "office": "insurance"}, "countryCodes": ["gb"], "terms": [], "matchScore": 2, "suggestion": true}, "office/insurance/Techniker Krankenkasse": {"name": "Techniker Krankenkasse", "icon": "maki-suitcase", "imageURL": "https://graph.facebook.com/DieTechniker/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q607531", "office": "insurance"}, "addTags": {"brand": "Techniker Krankenkasse", "brand:wikidata": "Q607531", "brand:wikipedia": "de:Techniker Krankenkasse", "name": "Techniker Krankenkasse", "office": "insurance"}, "countryCodes": ["de"], "terms": [], "matchScore": 2, "suggestion": true}, "office/insurance/The Co-operators": {"name": "The Co-operators", "icon": "maki-suitcase", "imageURL": "https://graph.facebook.com/TheCooperatorsInsurance/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3520320", "office": "insurance"}, "addTags": {"brand": "The Co-operators", "brand:wikidata": "Q3520320", "brand:wikipedia": "en:The Co-operators", "name": "The Co-operators", "office": "insurance"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "office/insurance/Росгосстрах": {"name": "Росгосстрах", "icon": "maki-suitcase", "imageURL": "https://graph.facebook.com/RGS.ru/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4397745", "office": "insurance"}, "addTags": {"brand": "Росгосстрах", "brand:wikidata": "Q4397745", "brand:wikipedia": "en:Rosgosstrakh", "name": "Росгосстрах", "office": "insurance"}, "countryCodes": ["ru"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -3023,11 +3122,12 @@ "office/tax_advisor/H&R Block": {"name": "H&R Block", "icon": "maki-suitcase", "imageURL": "https://graph.facebook.com/hrblock/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5627799", "office": "tax_advisor"}, "addTags": {"brand": "H&R Block", "brand:wikidata": "Q5627799", "brand:wikipedia": "en:H&R Block", "name": "H&R Block", "office": "tax_advisor"}, "countryCodes": ["au", "ca", "in", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "office/tax_advisor/Jackson Hewitt": {"name": "Jackson Hewitt", "icon": "maki-suitcase", "imageURL": "https://graph.facebook.com/jacksonhewitt/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6117132", "office": "tax_advisor"}, "addTags": {"brand": "Jackson Hewitt", "brand:wikidata": "Q6117132", "brand:wikipedia": "en:Jackson Hewitt", "name": "Jackson Hewitt", "office": "tax_advisor", "official_name": "Jackson Hewitt Tax Service"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "office/tax_advisor/Liberty Tax": {"name": "Liberty Tax", "icon": "maki-suitcase", "imageURL": "https://graph.facebook.com/libertytax/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6541978", "office": "tax_advisor"}, "addTags": {"alt_name": "Liberty Tax Service", "brand": "Liberty Tax", "brand:wikidata": "Q6541978", "brand:wikipedia": "en:Liberty Tax Service", "name": "Liberty Tax", "office": "tax_advisor"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, - "office/telecommunication/Ooredoo": {"name": "Ooredoo", "icon": "maki-telephone", "imageURL": "https://abs.twimg.com/sticky/default_profile_images/default_profile_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q919935", "office": "telecommunication"}, "addTags": {"brand": "Ooredoo", "brand:wikidata": "Q919935", "brand:wikipedia": "en:Ooredoo", "name": "Ooredoo", "office": "telecommunication"}, "terms": [], "matchScore": 2, "suggestion": true}, + "office/telecommunication/Ooredoo": {"name": "Ooredoo", "icon": "maki-telephone", "imageURL": "https://graph.facebook.com/ooredooqatar/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q919935", "office": "telecommunication"}, "addTags": {"brand": "Ooredoo", "brand:wikidata": "Q919935", "brand:wikipedia": "en:Ooredoo", "name": "Ooredoo", "office": "telecommunication"}, "terms": [], "matchScore": 2, "suggestion": true}, "office/telecommunication/Velcom": {"name": "Velcom", "icon": "maki-telephone", "imageURL": "https://graph.facebook.com/velcomlikes/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1888809", "office": "telecommunication"}, "addTags": {"brand": "Velcom", "brand:wikidata": "Q1888809", "brand:wikipedia": "en:Velcom", "name": "Velcom", "office": "telecommunication"}, "countryCodes": ["by"], "terms": [], "matchScore": 2, "suggestion": true}, "office/telecommunication/Ростелеком": {"name": "Ростелеком", "icon": "maki-telephone", "imageURL": "https://graph.facebook.com/288785311160831/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1477012", "office": "telecommunication"}, "addTags": {"brand": "Ростелеком", "brand:wikidata": "Q1477012", "brand:wikipedia": "en:Rostelecom", "name": "Ростелеком", "office": "telecommunication"}, "countryCodes": ["ru"], "terms": [], "matchScore": 2, "suggestion": true}, - "office/telecommunication/Укртелеком": {"name": "Укртелеком", "icon": "maki-telephone", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FUkrtelecom.png&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1505321", "office": "telecommunication"}, "addTags": {"brand": "Укртелеком", "brand:wikidata": "Q1505321", "brand:wikipedia": "en:Ukrtelecom", "name": "Укртелеком", "office": "telecommunication"}, "countryCodes": ["ua"], "terms": [], "matchScore": 2, "suggestion": true}, + "office/telecommunication/Укртелеком": {"name": "Укртелеком", "icon": "maki-telephone", "imageURL": "https://graph.facebook.com/Ukrtelecom/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1505321", "office": "telecommunication"}, "addTags": {"brand": "Укртелеком", "brand:wikidata": "Q1505321", "brand:wikipedia": "en:Ukrtelecom", "name": "Укртелеком", "office": "telecommunication"}, "countryCodes": ["ua"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/agrarian/Granngården": {"name": "Granngården", "icon": "fas-tractor", "imageURL": "https://graph.facebook.com/granngarden/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q10508136", "shop": "agrarian"}, "addTags": {"brand": "Granngården", "brand:wikidata": "Q10508136", "brand:wikipedia": "sv:Granngården AB", "name": "Granngården", "shop": "agrarian"}, "countryCodes": ["se"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/agrarian/Southern States": {"name": "Southern States", "icon": "fas-tractor", "imageURL": "https://graph.facebook.com/SouthernStatesCoop/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7570508", "shop": "agrarian"}, "addTags": {"agrarian": "seed;feed;tools", "brand": "Southern States", "brand:wikidata": "Q7570508", "brand:wikipedia": "en:Southern States Cooperative", "name": "Southern States", "official_name": "Southern States Cooperative", "shop": "agrarian"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/alcohol/Alko": {"name": "Alko", "icon": "fas-wine-bottle", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FAlko.svg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1849187", "shop": "alcohol"}, "addTags": {"brand": "Alko", "brand:wikidata": "Q1849187", "brand:wikipedia": "en:Alko", "name": "Alko", "shop": "alcohol"}, "countryCodes": ["fi"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/alcohol/BC Liquor Store": {"name": "BC Liquor Store", "icon": "fas-wine-bottle", "imageURL": "https://pbs.twimg.com/profile_images/1302250656/winesplash-icon_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q43079557", "shop": "alcohol"}, "addTags": {"brand": "BC Liquor Store", "brand:wikidata": "Q43079557", "brand:wikipedia": "en:BC Liquor Stores", "name": "BC Liquor Store", "shop": "alcohol"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/alcohol/BWS": {"name": "BWS", "icon": "fas-wine-bottle", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4836848", "shop": "alcohol"}, "addTags": {"brand": "BWS", "brand:wikidata": "Q4836848", "brand:wikipedia": "en:BWS (liquor retailer)", "name": "BWS", "shop": "alcohol"}, "countryCodes": ["au"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -3038,9 +3138,13 @@ "shop/alcohol/Gall & Gall": {"name": "Gall & Gall", "icon": "fas-wine-bottle", "imageURL": "https://pbs.twimg.com/profile_images/652468758515068928/dzFqRsLG_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q13639185", "shop": "alcohol"}, "addTags": {"brand": "Gall & Gall", "brand:wikidata": "Q13639185", "brand:wikipedia": "nl:Gall & Gall", "name": "Gall & Gall", "shop": "alcohol"}, "countryCodes": ["nl"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/alcohol/LCBO": {"name": "LCBO", "icon": "fas-wine-bottle", "imageURL": "https://pbs.twimg.com/profile_images/481885343986102272/mGMV-t--_bigger.jpeg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q845263", "shop": "alcohol"}, "addTags": {"brand": "LCBO", "brand:wikidata": "Q845263", "brand:wikipedia": "en:Liquor Control Board of Ontario", "name": "LCBO", "shop": "alcohol"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/alcohol/Liquorland": {"name": "Liquorland", "icon": "fas-wine-bottle", "imageURL": "https://pbs.twimg.com/profile_images/378800000468322180/92219ed513322ff2f4d6d416dc477704_bigger.jpeg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2283837", "shop": "alcohol"}, "addTags": {"brand": "Liquorland", "brand:wikidata": "Q2283837", "brand:wikipedia": "en:Liquorland", "name": "Liquorland", "shop": "alcohol"}, "countryCodes": ["au"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/alcohol/Majestic": {"name": "Majestic", "icon": "fas-wine-bottle", "imageURL": "https://pbs.twimg.com/profile_images/1139531853759729665/3J0irT72_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6737725", "shop": "alcohol"}, "addTags": {"brand": "Majestic", "brand:wikidata": "Q6737725", "name": "Majestic", "shop": "alcohol"}, "countryCodes": ["gb"], "terms": ["majestic wine", "majestic wine warehouse"], "matchScore": 2, "suggestion": true}, "shop/alcohol/Nicolas": {"name": "Nicolas", "icon": "fas-wine-bottle", "imageURL": "https://pbs.twimg.com/profile_images/842779196082573314/AtkEMQlh_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3340012", "shop": "alcohol"}, "addTags": {"brand": "Nicolas", "brand:wikidata": "Q3340012", "brand:wikipedia": "en:Nicolas (wine retailer)", "name": "Nicolas", "shop": "alcohol"}, "countryCodes": ["be", "fr", "gb"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/alcohol/Oddbins": {"name": "Oddbins", "icon": "fas-wine-bottle", "imageURL": "https://pbs.twimg.com/profile_images/547781884533436416/xshXfITG_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7077472", "shop": "alcohol"}, "addTags": {"brand": "Oddbins", "brand:wikidata": "Q7077472", "name": "Oddbins", "shop": "alcohol"}, "countryCodes": ["gb"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/alcohol/SAQ": {"name": "SAQ", "icon": "fas-wine-bottle", "imageURL": "https://pbs.twimg.com/profile_images/1064657571133308928/zhzEYvxp_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3488077", "shop": "alcohol"}, "addTags": {"brand": "SAQ", "brand:wikidata": "Q3488077", "brand:wikipedia": "en:Société des alcools du Québec", "name": "SAQ", "shop": "alcohol"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, - "shop/alcohol/Spec's": {"name": "Spec's", "icon": "fas-wine-bottle", "imageURL": "https://pbs.twimg.com/profile_images/1143912744858599424/oL3Wrl5R_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7574415", "shop": "alcohol"}, "addTags": {"brand": "Spec's", "brand:wikidata": "Q7574415", "brand:wikipedia": "en:Spec's Wine, Spirits & Finer Foods", "name": "Spec's", "shop": "alcohol"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/alcohol/SAQ Express": {"name": "SAQ Express", "icon": "fas-wine-bottle", "imageURL": "https://pbs.twimg.com/profile_images/1064657571133308928/zhzEYvxp_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3488077", "shop": "alcohol"}, "addTags": {"brand": "SAQ Express", "brand:wikidata": "Q3488077", "brand:wikipedia": "en:Société des alcools du Québec", "name": "SAQ Express", "shop": "alcohol"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/alcohol/SAQ Sélection": {"name": "SAQ Sélection", "icon": "fas-wine-bottle", "imageURL": "https://pbs.twimg.com/profile_images/1064657571133308928/zhzEYvxp_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3488077", "shop": "alcohol"}, "addTags": {"brand": "SAQ Sélection", "brand:wikidata": "Q3488077", "brand:wikipedia": "en:Société des alcools du Québec", "name": "SAQ Sélection", "shop": "alcohol"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/alcohol/Spec's": {"name": "Spec's", "icon": "fas-wine-bottle", "imageURL": "https://pbs.twimg.com/profile_images/1147150560644272129/jeg6tzSF_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7574415", "shop": "alcohol"}, "addTags": {"brand": "Spec's", "brand:wikidata": "Q7574415", "brand:wikipedia": "en:Spec's Wine, Spirits & Finer Foods", "name": "Spec's", "shop": "alcohol"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/alcohol/Systembolaget": {"name": "Systembolaget", "icon": "fas-wine-bottle", "imageURL": "https://pbs.twimg.com/profile_images/456046476032872449/mg3NXDpc_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1476113", "shop": "alcohol"}, "addTags": {"brand": "Systembolaget", "brand:wikidata": "Q1476113", "brand:wikipedia": "en:Systembolaget", "name": "Systembolaget", "shop": "alcohol"}, "countryCodes": ["se"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/alcohol/The Beer Store": {"name": "The Beer Store", "icon": "fas-wine-bottle", "imageURL": "https://pbs.twimg.com/profile_images/1112700310441676800/Gyk3rZl6_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q16243674", "shop": "alcohol"}, "addTags": {"brand": "The Beer Store", "brand:wikidata": "Q16243674", "brand:wikipedia": "en:The Beer Store", "name": "The Beer Store", "shop": "alcohol"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/alcohol/Total Wine": {"name": "Total Wine", "icon": "fas-wine-bottle", "imageURL": "https://pbs.twimg.com/profile_images/3095579292/69f5115c869a3b0f73bfb7ad25ba2a37_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7828084", "shop": "alcohol"}, "addTags": {"brand": "Total Wine", "brand:wikidata": "Q7828084", "brand:wikipedia": "en:Total Wine & More", "name": "Total Wine", "official_name": "Total Wine & More", "shop": "alcohol"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -3070,6 +3174,7 @@ "shop/bakery/Birds": {"name": "Birds", "icon": "maki-bakery", "imageURL": "https://graph.facebook.com/birdsbakeryderby/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q63001935", "shop": "bakery"}, "addTags": {"brand": "Birds", "brand:wikidata": "Q63001935", "brand:wikipedia": "en:Birds Bakery", "name": "Birds", "official_name": "Birds Bakery", "shop": "bakery"}, "countryCodes": ["gb"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/bakery/Breadtop": {"name": "Breadtop", "icon": "maki-bakery", "imageURL": "https://graph.facebook.com/we.love.breadtop/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4959217", "shop": "bakery"}, "addTags": {"brand": "Breadtop", "brand:wikidata": "Q4959217", "brand:wikipedia": "en:Breadtop", "cuisine": "chinese", "name": "Breadtop", "shop": "bakery"}, "countryCodes": ["au"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/bakery/Bäckerei Fuchs": {"name": "Bäckerei Fuchs", "icon": "maki-bakery", "imageURL": "https://graph.facebook.com/baeckereifuchs/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q42825993", "shop": "bakery"}, "addTags": {"brand": "Bäckerei Fuchs", "brand:wikidata": "Q42825993", "brand:wikipedia": "de:Harald Fuchs Bäckerei – Konditorei", "name": "Bäckerei Fuchs", "shop": "bakery"}, "countryCodes": ["de"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/bakery/COBS Bread": {"name": "COBS Bread", "icon": "maki-bakery", "imageURL": "https://graph.facebook.com/bakersdelight/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4849261", "shop": "bakery"}, "addTags": {"brand": "COBS Bread", "brand:wikidata": "Q4849261", "brand:wikipedia": "en:Bakers Delight", "name": "COBS Bread", "shop": "bakery"}, "countryCodes": ["ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/bakery/Cadera": {"name": "Cadera", "icon": "maki-bakery", "imageURL": "https://graph.facebook.com/Cadera1853/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62086410", "shop": "bakery"}, "addTags": {"brand": "Cadera", "brand:wikidata": "Q62086410", "name": "Cadera", "shop": "bakery"}, "countryCodes": ["de"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/bakery/Cooplands": {"name": "Cooplands", "icon": "maki-bakery", "imageURL": "https://graph.facebook.com/Cooplands/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5167971", "shop": "bakery"}, "addTags": {"brand": "Cooplands", "brand:wikidata": "Q5167971", "brand:wikipedia": "en:Cooplands", "name": "Cooplands", "shop": "bakery"}, "countryCodes": ["gb"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/bakery/Dat Backhus": {"name": "Dat Backhus", "icon": "maki-bakery", "imageURL": "https://graph.facebook.com/datbackhus.hamburg/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62093175", "shop": "bakery"}, "addTags": {"brand": "Dat Backhus", "brand:wikidata": "Q62093175", "name": "Dat Backhus", "shop": "bakery"}, "countryCodes": ["de"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -3128,7 +3233,7 @@ "shop/beverages/Orterer Getränkemarkt": {"name": "Orterer Getränkemarkt", "icon": "maki-shop", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q23787118", "shop": "beverages"}, "addTags": {"brand": "Orterer Getränkemarkt", "brand:wikidata": "Q23787118", "brand:wikipedia": "de:Orterer Gruppe", "name": "Orterer Getränkemarkt", "shop": "beverages"}, "countryCodes": ["de"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/beverages/Rewe Getränkemarkt": {"name": "Rewe Getränkemarkt", "icon": "maki-shop", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q57519344", "shop": "beverages"}, "addTags": {"brand": "Rewe Getränkemarkt", "brand:wikidata": "Q57519344", "name": "Rewe Getränkemarkt", "shop": "beverages"}, "countryCodes": ["de"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/beverages/Trinkgut": {"name": "Trinkgut", "icon": "maki-shop", "imageURL": "https://pbs.twimg.com/profile_images/339373337/twitter_icon_trinkgut_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2453627", "shop": "beverages"}, "addTags": {"brand": "Trinkgut", "brand:wikidata": "Q2453627", "brand:wikipedia": "de:Trinkgut", "name": "Trinkgut", "shop": "beverages"}, "countryCodes": ["de"], "terms": [], "matchScore": 2, "suggestion": true}, - "shop/beverages/清心福全": {"name": "清心福全", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/chingshin1987/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q10391229", "shop": "beverages"}, "addTags": {"brand": "清心福全", "brand:wikidata": "Q10391229", "brand:wikipedia": "zh:清心福全冷飲站", "name": "清心福全", "shop": "beverages"}, "countryCodes": ["tw"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/beverages/清心福全": {"name": "清心福全", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/chingshin1987/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q10391229", "shop": "beverages"}, "addTags": {"brand": "清心福全", "brand:en": "Ching Shin", "brand:wikidata": "Q10391229", "brand:wikipedia": "zh:清心福全冷飲站", "brand:zh": "清心福全", "name": "清心福全", "name:en": "Ching Shin", "name:zh": "清心福全", "shop": "beverages"}, "countryCodes": ["tw"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/bicycle/Evans Cycles": {"name": "Evans Cycles", "icon": "maki-bicycle", "imageURL": "https://graph.facebook.com/evanscycles/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5415901", "shop": "bicycle"}, "addTags": {"brand": "Evans Cycles", "brand:wikidata": "Q5415901", "brand:wikipedia": "en:Evans Cycles", "name": "Evans Cycles", "shop": "bicycle"}, "countryCodes": ["gb"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/bicycle/Fri BikeShop": {"name": "Fri BikeShop", "icon": "maki-bicycle", "imageURL": "https://graph.facebook.com/Cykelbutikken/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q26721030", "shop": "bicycle"}, "addTags": {"brand": "Fri BikeShop", "brand:wikidata": "Q26721030", "name": "Fri BikeShop", "shop": "bicycle"}, "countryCodes": ["dk"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/bicycle/Giant": {"name": "Giant", "icon": "maki-bicycle", "imageURL": "https://graph.facebook.com/giantbicycles/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q703557", "shop": "bicycle"}, "addTags": {"brand": "Giant", "brand:wikidata": "Q703557", "brand:wikipedia": "en:Giant Bicycles", "name": "Giant", "shop": "bicycle"}, "terms": [], "matchScore": 2, "suggestion": true}, @@ -3137,7 +3242,7 @@ "shop/bookmaker/Betfred": {"name": "Betfred", "icon": "maki-shop", "imageURL": "https://pbs.twimg.com/profile_images/1034363254758359041/dxetDfNN_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4897425", "shop": "bookmaker"}, "addTags": {"brand": "Betfred", "brand:wikidata": "Q4897425", "brand:wikipedia": "en:Betfred", "name": "Betfred", "shop": "bookmaker"}, "countryCodes": ["gb"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/bookmaker/Coral": {"name": "Coral", "icon": "maki-shop", "imageURL": "https://pbs.twimg.com/profile_images/1000461740772134913/T9-zMXmF_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q54621344", "shop": "bookmaker"}, "addTags": {"brand": "Coral", "brand:wikidata": "Q54621344", "brand:wikipedia": "en:Coral (bookmaker)", "name": "Coral", "shop": "bookmaker"}, "countryCodes": ["gb"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/bookmaker/Fortuna": {"name": "Fortuna", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/703606549739592/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q25857973", "shop": "bookmaker"}, "addTags": {"brand": "Fortuna", "brand:wikidata": "Q25857973", "brand:wikipedia": "en:Fortuna Entertainment Group", "name": "Fortuna", "shop": "bookmaker"}, "countryCodes": ["cz", "hr", "pl", "ro", "sk"], "terms": [], "matchScore": 2, "suggestion": true}, - "shop/bookmaker/Ladbrokes": {"name": "Ladbrokes", "icon": "maki-shop", "imageURL": "https://pbs.twimg.com/profile_images/1037325155310161921/6E9Rvy3Y_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1799875", "shop": "bookmaker"}, "addTags": {"brand": "Ladbrokes", "brand:wikidata": "Q1799875", "brand:wikipedia": "en:Ladbrokes Coral", "name": "Ladbrokes", "shop": "bookmaker"}, "countryCodes": ["gb"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/bookmaker/Ladbrokes": {"name": "Ladbrokes", "icon": "maki-shop", "imageURL": "https://pbs.twimg.com/profile_images/1148531433947967488/3zGk1STM_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1799875", "shop": "bookmaker"}, "addTags": {"brand": "Ladbrokes", "brand:wikidata": "Q1799875", "brand:wikipedia": "en:Ladbrokes Coral", "name": "Ladbrokes", "shop": "bookmaker"}, "countryCodes": ["gb"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/bookmaker/Paddy Power": {"name": "Paddy Power", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/2039606582931195/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3888718", "shop": "bookmaker"}, "addTags": {"brand": "Paddy Power", "brand:wikidata": "Q3888718", "brand:wikipedia": "en:Paddy Power", "name": "Paddy Power", "shop": "bookmaker"}, "countryCodes": ["gb", "ie"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/bookmaker/Tipico": {"name": "Tipico", "icon": "maki-shop", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FTipico%20Unternehmenslogo.jpg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q15851003", "shop": "bookmaker"}, "addTags": {"brand": "Tipico", "brand:wikidata": "Q15851003", "brand:wikipedia": "en:Tipico", "name": "Tipico", "shop": "bookmaker"}, "countryCodes": ["at", "co", "de", "gi", "hr", "mt"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/bookmaker/William Hill": {"name": "William Hill", "icon": "maki-shop", "imageURL": "https://pbs.twimg.com/profile_images/797028677733253120/bW9oFXT-_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4053147", "shop": "bookmaker"}, "addTags": {"brand": "William Hill", "brand:wikidata": "Q4053147", "brand:wikipedia": "en:William Hill (bookmaker)", "name": "William Hill", "shop": "bookmaker"}, "countryCodes": ["gb"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -3180,28 +3285,31 @@ "shop/books/未来屋書店": {"name": "未来屋書店", "icon": "fas-book", "imageURL": "https://graph.facebook.com/miraiyashoten/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11519563", "shop": "books"}, "addTags": {"brand": "未来屋書店", "brand:en": "Miraiya Shoten", "brand:ja": "未来屋書店", "brand:wikidata": "Q11519563", "brand:wikipedia": "ja:未来屋書店", "name": "未来屋書店", "name:en": "Miraiya Shoten", "name:ja": "未来屋書店", "shop": "books"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/butcher/Coqivoire": {"name": "Coqivoire", "icon": "fas-bacon", "imageURL": "https://graph.facebook.com/COQIVOIRE/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q60183284", "shop": "butcher"}, "addTags": {"brand": "Coqivoire", "brand:wikidata": "Q60183284", "butcher": "poultry", "name": "Coqivoire", "shop": "butcher"}, "countryCodes": ["ci"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/butcher/Foani": {"name": "Foani", "icon": "fas-bacon", "imageURL": "https://graph.facebook.com/foaniservices/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q60183335", "shop": "butcher"}, "addTags": {"brand": "Foani", "brand:wikidata": "Q60183335", "butcher": "poultry", "name": "Foani", "shop": "butcher"}, "countryCodes": ["ci"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/butcher/M&M Food Market": {"name": "M&M Food Market", "icon": "fas-bacon", "imageURL": "https://pbs.twimg.com/profile_images/705793072836288513/-hlwSo1Q_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6711827", "shop": "butcher"}, "addTags": {"brand": "M&M Food Market", "brand:wikidata": "Q6711827", "brand:wikipedia": "en:M&M Food Market", "name": "M&M Food Market", "shop": "butcher"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/butcher/Vinzenzmurr": {"name": "Vinzenzmurr", "icon": "fas-bacon", "imageURL": "https://graph.facebook.com/vinzenzmurrtraditionsmetzgerei/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2527361", "shop": "butcher"}, "addTags": {"brand": "Vinzenzmurr", "brand:wikidata": "Q2527361", "brand:wikipedia": "de:Vinzenzmurr", "name": "Vinzenzmurr", "shop": "butcher"}, "countryCodes": ["de"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/butcher/Великолукский мясокомбинат": {"name": "Великолукский мясокомбинат", "icon": "fas-bacon", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2F%D0%92%D0%B5%D0%BB%D0%B8%D0%BA%D0%BE%D0%BB%D1%83%D0%BA%D1%81%D0%BA%D0%B8%D0%B9%20%D0%BC%D1%8F%D1%81%D0%BE%D0%BA%D0%BE%D0%BC%D0%B1%D0%B8%D0%BD%D0%B0%D1%82.png&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q18401767", "shop": "butcher"}, "addTags": {"brand": "Великолукский мясокомбинат", "brand:wikidata": "Q18401767", "brand:wikipedia": "ru:Великолукский мясокомбинат", "name": "Великолукский мясокомбинат", "shop": "butcher"}, "countryCodes": ["ru"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/butcher/Родинна ковбаска": {"name": "Родинна ковбаска", "icon": "fas-bacon", "imageURL": "https://graph.facebook.com/rodunnakovbaska/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q30969660", "shop": "butcher"}, "addTags": {"brand": "Родинна ковбаска", "brand:en": "Rodynna-kovbaska", "brand:wikidata": "Q30969660", "brand:wikipedia": "uk:ТзОВ «Барком»", "name": "Родинна ковбаска", "name:en": "Rodynna-kovbaska", "shop": "butcher"}, "countryCodes": ["ua"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/butcher/肉のハナマサ": {"name": "肉のハナマサ", "icon": "fas-bacon", "imageURL": "https://graph.facebook.com/hanamasaresto/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11326564", "shop": "butcher"}, "addTags": {"brand": "ハナマサ", "brand:en": "Hanamasa", "brand:ja": "ハナマサ", "brand:wikidata": "Q11326564", "brand:wikipedia": "ja:ハナマサ", "butcher": "beef", "name": "肉のハナマサ", "name:en": "Hanamasa Meat", "name:ja": "肉のハナマサ", "shop": "butcher"}, "countryCodes": ["jp"], "terms": ["ハナマサ"], "matchScore": 2, "suggestion": true}, "shop/candles/Yankee Candle": {"name": "Yankee Candle", "icon": "fas-burn", "imageURL": "https://graph.facebook.com/Yankeecandle/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q8048733", "shop": "candles"}, "addTags": {"brand": "Yankee Candle", "brand:wikidata": "Q8048733", "brand:wikipedia": "en:Yankee Candle", "name": "Yankee Candle", "shop": "candles"}, "countryCodes": ["ca", "gb", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/car_parts/Advance Auto Parts": {"name": "Advance Auto Parts", "icon": "fas-car-battery", "imageURL": "https://graph.facebook.com/advanceautoparts/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4686051", "shop": "car_parts"}, "addTags": {"brand": "Advance Auto Parts", "brand:wikidata": "Q4686051", "brand:wikipedia": "en:Advance Auto Parts", "name": "Advance Auto Parts", "shop": "car_parts"}, "countryCodes": ["ca", "us", "vi"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/car_parts/Auto Plus": {"name": "Auto Plus", "icon": "fas-car-battery", "imageURL": "https://graph.facebook.com/AutoPlusUS/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q65121114", "shop": "car_parts"}, "addTags": {"brand": "Auto Plus", "brand:wikidata": "Q65121114", "name": "Auto Plus", "official_name": "Auto Plus Auto Parts", "shop": "car_parts"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/car_parts/AutoZone": {"name": "AutoZone", "icon": "fas-car-battery", "imageURL": "https://graph.facebook.com/autozone/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4826087", "shop": "car_parts"}, "addTags": {"brand": "AutoZone", "brand:wikidata": "Q4826087", "brand:wikipedia": "en:AutoZone", "name": "AutoZone", "shop": "car_parts"}, "countryCodes": ["br", "mx", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/car_parts/Halfords": {"name": "Halfords", "icon": "fas-car-battery", "imageURL": "https://graph.facebook.com/HalfordsUK/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3398786", "shop": "car_parts"}, "addTags": {"brand": "Halfords", "brand:wikidata": "Q3398786", "brand:wikipedia": "en:Halfords", "name": "Halfords", "service:bicycle:retail": "yes", "shop": "car_parts"}, "countryCodes": ["gb", "ie"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/car_parts/KOI Auto Parts": {"name": "KOI Auto Parts", "icon": "fas-car-battery", "imageURL": "https://graph.facebook.com/KOIAutoParts/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6334934", "shop": "car_parts"}, "addTags": {"brand": "KOI Auto Parts", "brand:wikidata": "Q6334934", "brand:wikipedia": "en:KOI Auto Parts", "name": "KOI Auto Parts", "shop": "car_parts", "short_name": "KOI"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/car_parts/NAPA Auto Parts": {"name": "NAPA Auto Parts", "icon": "fas-car-battery", "imageURL": "https://graph.facebook.com/NAPAAUTOPARTS/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6970842", "shop": "car_parts"}, "addTags": {"brand": "NAPA Auto Parts", "brand:wikidata": "Q6970842", "brand:wikipedia": "en:National Automotive Parts Association", "name": "NAPA Auto Parts", "shop": "car_parts"}, "countryCodes": ["ca", "mx", "us"], "terms": ["napa"], "matchScore": 2, "suggestion": true}, - "shop/car_parts/O'Reilly Auto Parts": {"name": "O'Reilly Auto Parts", "icon": "fas-car-battery", "imageURL": "https://graph.facebook.com/oreillyautoparts/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7071951", "shop": "car_parts"}, "addTags": {"brand": "O'Reilly Auto Parts", "brand:wikidata": "Q7071951", "brand:wikipedia": "en:O'Reilly Auto Parts", "name": "O'Reilly Auto Parts", "shop": "car_parts"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/car_parts/O'Reilly Auto Parts": {"name": "O'Reilly Auto Parts", "icon": "fas-car-battery", "imageURL": "https://graph.facebook.com/oreillyautoparts/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7071951", "shop": "car_parts"}, "addTags": {"brand": "O'Reilly Auto Parts", "brand:wikidata": "Q7071951", "brand:wikipedia": "en:O'Reilly Auto Parts", "name": "O'Reilly Auto Parts", "shop": "car_parts"}, "countryCodes": ["us"], "terms": ["o'reilly"], "matchScore": 2, "suggestion": true}, "shop/car_parts/Repco": {"name": "Repco", "icon": "fas-car-battery", "imageURL": "https://graph.facebook.com/RepcoAusCareers/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q173425", "shop": "car_parts"}, "addTags": {"brand": "Repco", "brand:wikidata": "Q173425", "brand:wikipedia": "en:Repco", "name": "Repco", "shop": "car_parts"}, "countryCodes": ["au", "nz"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/car_parts/Supercheap Auto": {"name": "Supercheap Auto", "icon": "fas-car-battery", "imageURL": "https://graph.facebook.com/scauto/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7643119", "shop": "car_parts"}, "addTags": {"brand": "Supercheap Auto", "brand:wikidata": "Q7643119", "brand:wikipedia": "en:Supercheap Auto", "name": "Supercheap Auto", "shop": "car_parts"}, "countryCodes": ["au", "nz"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/car_parts/Автомир": {"name": "Автомир", "icon": "fas-car-battery", "imageURL": "https://graph.facebook.com/avtomir.cars/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4056321", "shop": "car_parts"}, "addTags": {"brand": "Автомир", "brand:wikidata": "Q4056321", "brand:wikipedia": "ru:Автомир (автодилер)", "name": "Автомир", "shop": "car_parts"}, "countryCodes": ["ru"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/car_parts/イエローハット": {"name": "イエローハット", "icon": "fas-car-battery", "imageURL": "https://graph.facebook.com/YellowHatUAE/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11285915", "shop": "car_parts"}, "addTags": {"brand": "イエローハット", "brand:en": "Yellow Hat", "brand:ja": "イエローハット", "brand:wikidata": "Q11285915", "brand:wikipedia": "ja:イエローハット", "name": "イエローハット", "name:en": "Yellow Hat", "name:ja": "イエローハット", "shop": "car_parts"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/car_parts/オートバックス": {"name": "オートバックス", "icon": "fas-car-battery", "imageURL": "https://graph.facebook.com/autobacs.seven/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7886426", "shop": "car_parts"}, "addTags": {"brand": "オートバックス", "brand:en": "Autobacs", "brand:ja": "オートバックス", "brand:wikidata": "Q7886426", "brand:wikipedia": "ja:オートバックスセブン", "name": "オートバックス", "name:en": "Autobacs", "name:ja": "オートバックス", "shop": "car_parts"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, - "shop/car_parts/タイヤ館": {"name": "タイヤ館", "icon": "fas-car-battery", "imageURL": "https://pbs.twimg.com/profile_images/1069402555938037761/aK6lJYjW_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11315808", "shop": "car_parts"}, "addTags": {"brand": "タイヤ館", "brand:en": "Taiyakan", "brand:ja": "タイヤ館", "brand:wikidata": "Q11315808", "brand:wikipedia": "ja:タイヤ館", "name": "タイヤ館", "name:en": "Taiyakan", "name:ja": "タイヤ館", "shop": "car_parts"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/car_parts/タイヤ館": {"name": "タイヤ館", "icon": "fas-car-battery", "imageURL": "https://graph.facebook.com/1627235540828842/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11315808", "shop": "car_parts"}, "addTags": {"brand": "タイヤ館", "brand:en": "Taiyakan", "brand:ja": "タイヤ館", "brand:wikidata": "Q11315808", "brand:wikipedia": "ja:タイヤ館", "name": "タイヤ館", "name:en": "Taiyakan", "name:ja": "タイヤ館", "shop": "car_parts"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/car_repair/A.T.U": {"name": "A.T.U", "icon": "maki-car-repair", "imageURL": "https://graph.facebook.com/ATU/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q784721", "shop": "car_repair"}, "addTags": {"brand": "A.T.U", "brand:wikidata": "Q784721", "brand:wikipedia": "de:Auto-Teile-Unger", "name": "A.T.U", "shop": "car_repair"}, "countryCodes": ["at", "de"], "terms": ["auto-teile-unger"], "matchScore": 2, "suggestion": true}, "shop/car_repair/AAMCO": {"name": "AAMCO", "icon": "maki-car-repair", "imageURL": "https://graph.facebook.com/AAMCO/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4649902", "shop": "car_repair"}, "addTags": {"brand": "AAMCO", "brand:wikidata": "Q4649902", "brand:wikipedia": "en:AAMCO Transmissions", "name": "AAMCO", "service:vehicle:transmission": "yes", "shop": "car_repair"}, "countryCodes": ["ca", "us"], "terms": ["aamco transmissions", "aamco transmissions and total car care"], "matchScore": 2, "suggestion": true}, "shop/car_repair/ATS Euromaster": {"name": "ATS Euromaster", "icon": "maki-car-repair", "imageURL": "https://graph.facebook.com/ATSEUROMASTER/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4654920", "shop": "car_repair"}, "addTags": {"brand": "ATS Euromaster", "brand:wikidata": "Q4654920", "brand:wikipedia": "en:ATS Euromaster", "name": "ATS Euromaster", "shop": "car_repair"}, "countryCodes": ["gb"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/car_repair/BestDrive": {"name": "BestDrive", "icon": "maki-car-repair", "imageURL": "https://graph.facebook.com/BestDriveFrance/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q63057183", "shop": "car_repair"}, "addTags": {"brand": "BestDrive", "brand:wikidata": "Q63057183", "name": "BestDrive", "shop": "car_repair"}, "countryCodes": ["cz", "fr", "sk"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/car_repair/Bosch Car Service": {"name": "Bosch Car Service", "icon": "maki-car-repair", "imageURL": "https://graph.facebook.com/BoschGlobal/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q234021", "shop": "car_repair"}, "addTags": {"brand": "Bosch Car Service", "brand:wikidata": "Q234021", "brand:wikipedia": "en:Robert Bosch GmbH", "name": "Bosch Car Service", "shop": "car_repair"}, "terms": ["bosch service"], "matchScore": 2, "suggestion": true}, - "shop/car_repair/Brakes Plus": {"name": "Brakes Plus", "icon": "maki-car-repair", "imageURL": "https://pbs.twimg.com/profile_images/1003734298048905217/s6j3I8IK_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62075246", "shop": "car_repair"}, "addTags": {"brand": "Brakes Plus", "brand:wikidata": "Q62075246", "name": "Brakes Plus", "shop": "car_repair"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/car_repair/Brakes Plus": {"name": "Brakes Plus", "icon": "maki-car-repair", "imageURL": "https://pbs.twimg.com/profile_images/1152245094897950720/l4DNap9o_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62075246", "shop": "car_repair"}, "addTags": {"brand": "Brakes Plus", "brand:wikidata": "Q62075246", "name": "Brakes Plus", "shop": "car_repair"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/car_repair/Car-X": {"name": "Car-X", "icon": "maki-car-repair", "imageURL": "https://graph.facebook.com/CarxAuto/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q63859189", "shop": "car_repair"}, "addTags": {"brand": "Car-X", "brand:wikidata": "Q63859189", "name": "Car-X", "shop": "car_repair"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/car_repair/Carglass": {"name": "Carglass", "icon": "maki-car-repair", "imageURL": "https://graph.facebook.com/CarglassSweden/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1035997", "shop": "car_repair"}, "addTags": {"brand": "Carglass", "brand:wikidata": "Q1035997", "brand:wikipedia": "de:Carglass", "name": "Carglass", "shop": "car_repair"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/car_repair/Carstar": {"name": "Carstar", "icon": "maki-car-repair", "imageURL": "https://graph.facebook.com/CARSTAR/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q64187891", "shop": "car_repair"}, "addTags": {"brand": "Carstar", "brand:wikidata": "Q64187891", "name": "Carstar", "service:vehicle:body_repair": "yes", "shop": "car_repair"}, "countryCodes": ["ca", "us"], "terms": ["carstar auto body repair experts"], "matchScore": 2, "suggestion": true}, @@ -3228,14 +3336,17 @@ "shop/car_repair/Renault": {"name": "Renault", "icon": "maki-car-repair", "imageURL": "https://graph.facebook.com/Renault/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6686", "shop": "car_repair"}, "addTags": {"brand": "Renault", "brand:wikidata": "Q6686", "brand:wikipedia": "en:Renault", "name": "Renault", "shop": "car_repair"}, "terms": ["garage renault"], "matchScore": 2, "suggestion": true}, "shop/car_repair/Roady": {"name": "Roady", "icon": "maki-car-repair", "imageURL": "https://graph.facebook.com/RoadyFrance/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3434112", "shop": "car_repair"}, "addTags": {"brand": "Roady", "brand:wikidata": "Q3434112", "brand:wikipedia": "en:Roady (Mousquetaires)", "name": "Roady", "shop": "car_repair"}, "countryCodes": ["fr"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/car_repair/Safelite AutoGlass": {"name": "Safelite AutoGlass", "icon": "maki-car-repair", "imageURL": "https://graph.facebook.com/safelite/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q28797369", "shop": "car_repair"}, "addTags": {"brand": "Safelite AutoGlass", "brand:wikidata": "Q28797369", "brand:wikipedia": "en:Safelite", "name": "Safelite AutoGlass", "shop": "car_repair"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/car_repair/Sears Auto Center": {"name": "Sears Auto Center", "icon": "maki-car-repair", "imageURL": "https://graph.facebook.com/sears/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6499202", "shop": "car_repair"}, "addTags": {"brand": "Sears Auto Center", "brand:wikidata": "Q6499202", "brand:wikipedia": "en:Sears", "name": "Sears Auto Center", "shop": "car_repair"}, "countryCodes": ["mx", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/car_repair/Speedy": {"name": "Speedy", "icon": "maki-car-repair", "imageURL": "https://graph.facebook.com/vadoncchezSpeedy/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3492969", "shop": "car_repair"}, "addTags": {"brand": "Speedy", "brand:wikidata": "Q3492969", "brand:wikipedia": "fr:Speedy (entreprise)", "name": "Speedy", "shop": "car_repair"}, "countryCodes": ["fr"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/car_repair/Speedy Auto Service": {"name": "Speedy Auto Service", "icon": "maki-car-repair", "imageURL": "https://graph.facebook.com/SpeedyAutoServiceCanada/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q22318193", "shop": "car_repair"}, "addTags": {"brand": "Speedy Auto Service", "brand:wikidata": "Q22318193", "name": "Speedy Auto Service", "shop": "car_repair"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/car_repair/Toyota": {"name": "Toyota", "icon": "maki-car-repair", "imageURL": "https://graph.facebook.com/toyota/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q53268", "shop": "car_repair"}, "addTags": {"brand": "Toyota", "brand:wikidata": "Q53268", "brand:wikipedia": "en:Toyota", "name": "Toyota", "shop": "car_repair"}, "terms": [], "matchScore": 2, "suggestion": true}, - "shop/car_repair/Tuffy": {"name": "Tuffy", "icon": "maki-car-repair", "imageURL": "https://graph.facebook.com/Tuffy/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q17125314", "shop": "car_repair"}, "addTags": {"brand": "Tuffy", "brand:wikidata": "Q17125314", "brand:wikipedia": "en:Tuffy Auto Service Centers", "name": "Tuffy", "shop": "car_repair"}, "countryCodes": ["us"], "terms": ["tuffy auto service", "tuffy auto service center", "tuffy auto service centers", "tuffy service", "tuffy service center", "tuffy service centers", "tuffy tire & auto service", "tuffy tire & auto service center", "tuffy tire & auto service centers", "tuffy tire and auto service", "tuffy tire and auto service center", "tuffy tire and auto service centers"], "matchScore": 2, "suggestion": true}, + "shop/car_repair/Tuffy": {"name": "Tuffy", "icon": "maki-car-repair", "imageURL": "https://graph.facebook.com/Tuffy/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q17125314", "shop": "car_repair"}, "addTags": {"brand": "Tuffy", "brand:wikidata": "Q17125314", "brand:wikipedia": "en:Tuffy Auto Service Centers", "name": "Tuffy", "shop": "car_repair"}, "countryCodes": ["us"], "terms": ["tuffy auto service", "tuffy auto service center", "tuffy auto service centers", "tuffy service", "tuffy service center", "tuffy service centers", "tuffy tire and auto service", "tuffy tire and auto service center", "tuffy tire and auto service centers"], "matchScore": 2, "suggestion": true}, "shop/car_repair/Valvoline": {"name": "Valvoline", "icon": "maki-car-repair", "imageURL": "https://graph.facebook.com/viocofficial/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7912852", "shop": "car_repair"}, "addTags": {"brand": "Valvoline", "brand:wikidata": "Q7912852", "brand:wikipedia": "en:Valvoline Instant Oil Change", "name": "Valvoline", "official_name": "Valvoline Instant Oil Change", "shop": "car_repair"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/car_repair/ÖAMTC": {"name": "ÖAMTC", "icon": "maki-car-repair", "imageURL": "https://graph.facebook.com/OEAMTC/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q306057", "shop": "car_repair"}, "addTags": {"brand": "ÖAMTC", "brand:wikidata": "Q306057", "brand:wikipedia": "de:Österreichischer Automobil-, Motorrad- und Touring Club", "name": "ÖAMTC", "shop": "car_repair"}, "countryCodes": ["at"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/car/Audi": {"name": "Audi", "icon": "maki-car", "imageURL": "https://graph.facebook.com/audi.jp/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q23317", "shop": "car"}, "addTags": {"brand": "Audi", "brand:wikidata": "Q23317", "brand:wikipedia": "en:Audi", "name": "Audi", "shop": "car"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/car/BMW": {"name": "BMW", "icon": "maki-car", "imageURL": "https://graph.facebook.com/BMWGroup/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q26678", "shop": "car"}, "addTags": {"brand": "BMW", "brand:wikidata": "Q26678", "brand:wikipedia": "en:BMW", "name": "BMW", "shop": "car"}, "terms": [], "matchScore": 2, "suggestion": true}, + "shop/car/Cadillac": {"name": "Cadillac", "icon": "maki-car", "imageURL": "https://graph.facebook.com/cadillac/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q27436", "shop": "car"}, "addTags": {"brand": "Cadillac", "brand:wikidata": "Q27436", "brand:wikipedia": "en:Cadillac", "name": "Cadillac", "shop": "car"}, "terms": [], "matchScore": 2, "suggestion": true}, + "shop/car/CarMax": {"name": "CarMax", "icon": "maki-car", "imageURL": "https://pbs.twimg.com/profile_images/458970501172301826/63JNVTLh_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5037190", "shop": "car"}, "addTags": {"brand": "CarMax", "brand:wikidata": "Q5037190", "brand:wikipedia": "en:CarMax", "name": "CarMax", "second_hand": "only", "shop": "car"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/car/Chevrolet": {"name": "Chevrolet", "icon": "maki-car", "imageURL": "https://graph.facebook.com/chevrolet/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q29570", "shop": "car"}, "addTags": {"brand": "Chevrolet", "brand:wikidata": "Q29570", "brand:wikipedia": "en:Chevrolet", "name": "Chevrolet", "shop": "car"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/car/Citroën": {"name": "Citroën", "icon": "maki-car", "imageURL": "https://graph.facebook.com/Citroen/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6746", "shop": "car"}, "addTags": {"brand": "Citroën", "brand:wikidata": "Q6746", "brand:wikipedia": "fr:Citroën", "name": "Citroën", "shop": "car"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/car/Dacia": {"name": "Dacia", "icon": "maki-car", "imageURL": "https://graph.facebook.com/Dacia/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q27460", "shop": "car"}, "addTags": {"brand": "Dacia", "brand:wikidata": "Q27460", "brand:wikipedia": "en:Automobile Dacia", "name": "Dacia", "shop": "car"}, "terms": [], "matchScore": 2, "suggestion": true}, @@ -3244,13 +3355,15 @@ "shop/car/Honda": {"name": "Honda", "icon": "maki-car", "imageURL": "https://graph.facebook.com/HondaJP/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q9584", "shop": "car"}, "addTags": {"brand": "Honda", "brand:wikidata": "Q9584", "brand:wikipedia": "en:Honda", "name": "Honda", "shop": "car"}, "terms": ["honda cars"], "matchScore": 2, "suggestion": true}, "shop/car/Hyundai": {"name": "Hyundai", "icon": "maki-car", "imageURL": "https://graph.facebook.com/Hyundai/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q55931", "shop": "car"}, "addTags": {"brand": "Hyundai", "brand:wikidata": "Q55931", "brand:wikipedia": "en:Hyundai Motor Company", "name": "Hyundai", "shop": "car"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/car/Isuzu": {"name": "Isuzu", "icon": "maki-car", "imageURL": "https://graph.facebook.com/isuzumex/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q29803", "shop": "car"}, "addTags": {"brand": "Isuzu", "brand:wikidata": "Q29803", "brand:wikipedia": "en:Isuzu Motors", "name": "Isuzu", "shop": "car"}, "terms": [], "matchScore": 2, "suggestion": true}, + "shop/car/Jaguar": {"name": "Jaguar", "icon": "maki-car", "imageURL": "https://graph.facebook.com/landroverusa/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q26742231", "shop": "car"}, "addTags": {"brand": "Jaguar", "brand:wikidata": "Q26742231", "name": "Jaguar", "shop": "car"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/car/Kia": {"name": "Kia", "icon": "maki-car", "imageURL": "https://graph.facebook.com/Kiamotorsworldwide/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q35349", "shop": "car"}, "addTags": {"brand": "Kia", "brand:wikidata": "Q35349", "brand:wikipedia": "en:Kia Motors", "name": "Kia", "shop": "car"}, "terms": ["kia motors"], "matchScore": 2, "suggestion": true}, - "shop/car/Land Rover": {"name": "Land Rover", "icon": "maki-car", "imageURL": "https://graph.facebook.com/landroverusa/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q35907", "shop": "car"}, "addTags": {"brand": "Land Rover", "brand:wikidata": "Q35907", "brand:wikipedia": "en:Land Rover", "name": "Land Rover", "shop": "car"}, "terms": [], "matchScore": 2, "suggestion": true}, + "shop/car/Land Rover": {"name": "Land Rover", "icon": "maki-car", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FLogo%20of%20Land%20Rover%2C%20a%20British%20marque.svg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q35907", "shop": "car"}, "addTags": {"brand": "Land Rover", "brand:wikidata": "Q35907", "brand:wikipedia": "en:Land Rover", "name": "Land Rover", "shop": "car"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/car/Lexus": {"name": "Lexus", "icon": "maki-car", "imageURL": "https://graph.facebook.com/lexus/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q35919", "shop": "car"}, "addTags": {"brand": "Lexus", "brand:wikidata": "Q35919", "brand:wikipedia": "en:Lexus", "name": "Lexus", "shop": "car"}, "terms": [], "matchScore": 2, "suggestion": true}, + "shop/car/Lincoln": {"name": "Lincoln", "icon": "maki-car", "imageURL": "https://graph.facebook.com/Lincoln/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q216796", "shop": "car"}, "addTags": {"brand": "Lincoln", "brand:wikidata": "Q216796", "brand:wikipedia": "en:Lincoln Motor Company", "name": "Lincoln", "shop": "car"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/car/Mazda": {"name": "Mazda", "icon": "maki-car", "imageURL": "https://graph.facebook.com/Mazda.Japan/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q35996", "shop": "car"}, "addTags": {"brand": "Mazda", "brand:wikidata": "Q35996", "brand:wikipedia": "en:Mazda", "name": "Mazda", "shop": "car"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/car/Mercedes-Benz": {"name": "Mercedes-Benz", "icon": "maki-car", "imageURL": "https://graph.facebook.com/MercedesBenz/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q36008", "shop": "car"}, "addTags": {"brand": "Mercedes-Benz", "brand:wikidata": "Q36008", "brand:wikipedia": "en:Mercedes-Benz", "name": "Mercedes-Benz", "shop": "car"}, "terms": ["mercedes"], "matchScore": 2, "suggestion": true}, "shop/car/Mitsubishi": {"name": "Mitsubishi", "icon": "maki-car", "imageURL": "https://graph.facebook.com/MitsubishiMotors.en/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q36033", "shop": "car"}, "addTags": {"brand": "Mitsubishi", "brand:wikidata": "Q36033", "brand:wikipedia": "en:Mitsubishi Motors", "name": "Mitsubishi", "shop": "car"}, "terms": ["mitsubishi motors"], "matchScore": 2, "suggestion": true}, - "shop/car/Netz": {"name": "Netz", "icon": "maki-car", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11325416", "shop": "car"}, "addTags": {"brand": "Netz", "brand:wikidata": "Q11325416", "brand:wikipedia": "ja:ネッツ店", "name": "Netz", "shop": "car"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/car/Netz": {"name": "Netz", "icon": "maki-car", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FToyota-Dealer-Netz.png&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11325416", "shop": "car"}, "addTags": {"brand": "Netz", "brand:wikidata": "Q11325416", "brand:wikipedia": "ja:ネッツ店", "name": "Netz", "shop": "car"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/car/Nissan": {"name": "Nissan", "icon": "maki-car", "imageURL": "https://graph.facebook.com/NissanJP/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q20165", "shop": "car"}, "addTags": {"brand": "Nissan", "brand:wikidata": "Q20165", "brand:wikipedia": "ja:日産自動車", "name": "Nissan", "shop": "car"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/car/Opel": {"name": "Opel", "icon": "maki-car", "imageURL": "https://graph.facebook.com/Opel/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q40966", "shop": "car"}, "addTags": {"brand": "Opel", "brand:wikidata": "Q40966", "brand:wikipedia": "en:Opel", "name": "Opel", "shop": "car"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/car/Peugeot": {"name": "Peugeot", "icon": "maki-car", "imageURL": "https://graph.facebook.com/Peugeot/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6742", "shop": "car"}, "addTags": {"brand": "Peugeot", "brand:wikidata": "Q6742", "brand:wikipedia": "en:Peugeot", "name": "Peugeot", "shop": "car"}, "terms": [], "matchScore": 2, "suggestion": true}, @@ -3264,6 +3377,8 @@ "shop/car/Toyota": {"name": "Toyota", "icon": "maki-car", "imageURL": "https://graph.facebook.com/toyota/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q53268", "shop": "car"}, "addTags": {"brand": "Toyota", "brand:wikidata": "Q53268", "brand:wikipedia": "en:Toyota", "name": "Toyota", "shop": "car"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/car/Volkswagen": {"name": "Volkswagen", "icon": "maki-car", "imageURL": "https://graph.facebook.com/VW/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q246", "shop": "car"}, "addTags": {"brand": "Volkswagen", "brand:wikidata": "Q246", "brand:wikipedia": "en:Volkswagen", "name": "Volkswagen", "shop": "car"}, "terms": ["vw"], "matchScore": 2, "suggestion": true}, "shop/car/Volvo": {"name": "Volvo", "icon": "maki-car", "imageURL": "https://graph.facebook.com/volvocars/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q215293", "shop": "car"}, "addTags": {"brand": "Volvo", "brand:wikidata": "Q215293", "brand:wikipedia": "en:Volvo Cars", "name": "Volvo", "shop": "car"}, "terms": [], "matchScore": 2, "suggestion": true}, + "shop/car/Автомир": {"name": "Автомир", "icon": "maki-car", "imageURL": "https://graph.facebook.com/avtomir.cars/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4056321", "shop": "car"}, "addTags": {"brand": "Автомир", "brand:wikidata": "Q4056321", "brand:wikipedia": "ru:Автомир (автодилер)", "name": "Автомир", "name:en": "Autoworld", "name:ru": "Автомир", "shop": "car"}, "terms": [], "matchScore": 2, "suggestion": true}, + "shop/car/ダイハツ": {"name": "ダイハツ", "icon": "maki-car", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FDaihatsu%20Logo.svg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q27511", "shop": "car"}, "addTags": {"brand": "ダイハツ", "brand:en": "Daihatsu", "brand:ja": "ダイハツ", "brand:wikidata": "Q27511", "brand:wikipedia": "ja:ダイハツ工業", "name": "ダイハツ", "name:en": "Daihatsu", "name:ja": "ダイハツ", "shop": "car"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/car/ホンダ": {"name": "ホンダ", "icon": "maki-car", "imageURL": "https://graph.facebook.com/HondaJP/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q9584", "shop": "car"}, "addTags": {"brand": "ホンダ", "brand:en": "Honda", "brand:ja": "ホンダ", "brand:wikidata": "Q9584", "brand:wikipedia": "ja:本田技研工業", "name": "ホンダ", "name:en": "Honda", "name:ja": "ホンダ", "shop": "car"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/carpet/Carpetright": {"name": "Carpetright", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/carpetright/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5045782", "shop": "carpet"}, "addTags": {"brand": "Carpetright", "brand:wikidata": "Q5045782", "brand:wikipedia": "en:Carpetright", "name": "Carpetright", "shop": "carpet"}, "countryCodes": ["be", "gb", "ie", "nl"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/catalogue/Argos": {"name": "Argos", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/argos/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4789707", "shop": "catalogue"}, "addTags": {"brand": "Argos", "brand:wikidata": "Q4789707", "brand:wikipedia": "en:Argos (retailer)", "name": "Argos", "shop": "catalogue"}, "countryCodes": ["gb", "ie"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -3281,13 +3396,18 @@ "shop/charity/Sue Ryder": {"name": "Sue Ryder", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/SueRyderNational/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7634271", "shop": "charity"}, "addTags": {"brand": "Sue Ryder", "brand:wikidata": "Q7634271", "brand:wikipedia": "en:Sue Ryder (charity)", "name": "Sue Ryder", "shop": "charity"}, "countryCodes": ["gb", "ie"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/charity/The Salvation Army": {"name": "The Salvation Army", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/SalvationArmyUSA/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q188307", "shop": "charity"}, "addTags": {"brand": "The Salvation Army", "brand:wikidata": "Q188307", "brand:wikipedia": "en:The Salvation Army", "name": "The Salvation Army", "shop": "charity"}, "countryCodes": ["au", "ca", "gb", "us"], "terms": ["salvation army"], "matchScore": 2, "suggestion": true}, "shop/chemist/Bipa": {"name": "Bipa", "icon": "fas-shopping-basket", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FBipa%20Logo.svg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q864933", "shop": "chemist"}, "addTags": {"brand": "Bipa", "brand:wikidata": "Q864933", "brand:wikipedia": "de:Bipa", "name": "Bipa", "shop": "chemist"}, "countryCodes": ["at", "hr"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/chemist/Boots": {"name": "Boots", "icon": "fas-shopping-basket", "imageURL": "https://graph.facebook.com/bootsuk/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6123139", "shop": "chemist"}, "addTags": {"brand": "Boots", "brand:wikidata": "Q6123139", "name": "Boots", "shop": "chemist"}, "countryCodes": ["gb"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/chemist/Budnikowsky": {"name": "Budnikowsky", "icon": "fas-shopping-basket", "imageURL": "https://graph.facebook.com/BUDNI/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1001516", "shop": "chemist"}, "addTags": {"brand": "Budnikowsky", "brand:wikidata": "Q1001516", "brand:wikipedia": "de:Budnikowsky", "name": "Budnikowsky", "shop": "chemist"}, "countryCodes": ["de"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/chemist/CVS Pharmacy": {"name": "CVS Pharmacy", "icon": "fas-shopping-basket", "imageURL": "https://graph.facebook.com/CVS/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2078880", "shop": "chemist"}, "addTags": {"brand": "CVS Pharmacy", "brand:wikidata": "Q2078880", "brand:wikipedia": "en:CVS Pharmacy", "name": "CVS Pharmacy", "shop": "chemist", "short_name": "CVS"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/chemist/Drogeria Natura": {"name": "Drogeria Natura", "icon": "fas-shopping-basket", "imageURL": "https://pbs.twimg.com/profile_images/707518851785871360/aCEmonjR_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q9212032", "shop": "chemist"}, "addTags": {"brand": "Drogeria Natura", "brand:wikidata": "Q9212032", "brand:wikipedia": "pl:Drogerie Natura", "name": "Drogeria Natura", "shop": "chemist"}, "countryCodes": ["pl"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/chemist/Etos": {"name": "Etos", "icon": "fas-shopping-basket", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FEtos%20logo.png&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2609459", "shop": "chemist"}, "addTags": {"brand": "Etos", "brand:wikidata": "Q2609459", "brand:wikipedia": "en:Etos", "name": "Etos", "shop": "chemist"}, "countryCodes": ["nl"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/chemist/Kruidvat": {"name": "Kruidvat", "icon": "fas-shopping-basket", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FKruidvat%20logo.png&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2226366", "shop": "chemist"}, "addTags": {"brand": "Kruidvat", "brand:wikidata": "Q2226366", "brand:wikipedia": "en:Kruidvat", "name": "Kruidvat", "shop": "chemist"}, "countryCodes": ["be", "fr", "nl"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/chemist/Matas": {"name": "Matas", "icon": "fas-shopping-basket", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6786143", "shop": "chemist"}, "addTags": {"brand": "Matas", "brand:wikidata": "Q6786143", "brand:wikipedia": "en:Matas (drug store)", "name": "Matas", "shop": "chemist"}, "countryCodes": ["dk"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/chemist/Müller": {"name": "Müller", "icon": "fas-shopping-basket", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FLogo%20Drogerie%20Mueller.svg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1958759", "shop": "chemist"}, "addTags": {"brand": "Müller", "brand:wikidata": "Q1958759", "brand:wikipedia": "en:Müller (German trade company)", "name": "Müller", "shop": "chemist"}, "countryCodes": ["at", "ch", "de", "es", "hr", "hu"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/chemist/Rite Aid": {"name": "Rite Aid", "icon": "fas-shopping-basket", "imageURL": "https://graph.facebook.com/riteaid/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3433273", "shop": "chemist"}, "addTags": {"brand": "Rite Aid", "brand:wikidata": "Q3433273", "brand:wikipedia": "en:Rite Aid", "name": "Rite Aid", "shop": "chemist"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/chemist/Rossmann": {"name": "Rossmann", "icon": "fas-shopping-basket", "imageURL": "https://graph.facebook.com/rossmann.gmbh/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q316004", "shop": "chemist"}, "addTags": {"brand": "Rossmann", "brand:wikidata": "Q316004", "brand:wikipedia": "de:Dirk Rossmann GmbH", "name": "Rossmann", "shop": "chemist"}, "countryCodes": ["cz", "de", "hu", "pl"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/chemist/Savers": {"name": "Savers", "icon": "fas-shopping-basket", "imageURL": "https://graph.facebook.com/SaversHB/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7428189", "shop": "chemist"}, "addTags": {"brand": "Savers", "brand:wikidata": "Q7428189", "name": "Savers", "official_name": "Savers Health & Beauty", "shop": "chemist"}, "countryCodes": ["gb"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/chemist/Superdrug": {"name": "Superdrug", "icon": "fas-shopping-basket", "imageURL": "https://graph.facebook.com/Superdrug/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7643261", "shop": "chemist"}, "addTags": {"brand": "Superdrug", "brand:wikidata": "Q7643261", "name": "Superdrug", "shop": "chemist"}, "countryCodes": ["gb"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/chemist/Teta": {"name": "Teta", "icon": "fas-shopping-basket", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q20860823", "shop": "chemist"}, "addTags": {"brand": "Teta", "brand:wikidata": "Q20860823", "brand:wikipedia": "cs:Teta drogerie", "name": "Teta", "shop": "chemist"}, "countryCodes": ["cz", "sk"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/chemist/Trekpleister": {"name": "Trekpleister", "icon": "fas-shopping-basket", "imageURL": "https://pbs.twimg.com/profile_images/1141970592448602112/ubBPZHWI_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2551576", "shop": "chemist"}, "addTags": {"brand": "Trekpleister", "brand:wikidata": "Q2551576", "brand:wikipedia": "nl:Trekpleister (drogisterij)", "name": "Trekpleister", "shop": "chemist"}, "countryCodes": ["nl"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/chemist/Walgreens": {"name": "Walgreens", "icon": "fas-shopping-basket", "imageURL": "https://graph.facebook.com/walgreens/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1591889", "shop": "chemist"}, "addTags": {"brand": "Walgreens", "brand:wikidata": "Q1591889", "brand:wikipedia": "en:Walgreens", "name": "Walgreens", "shop": "chemist"}, "countryCodes": ["us"], "terms": ["walgreens pharmacy"], "matchScore": 2, "suggestion": true}, @@ -3296,15 +3416,16 @@ "shop/chemist/屈臣氏": {"name": "屈臣氏", "icon": "fas-shopping-basket", "imageURL": "https://graph.facebook.com/WatsonsPH/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7974785", "shop": "chemist"}, "addTags": {"brand": "屈臣氏", "brand:wikidata": "Q7974785", "brand:wikipedia": "zh:屈臣氏", "name": "屈臣氏", "shop": "chemist"}, "countryCodes": ["cn", "hk", "tw"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/chemist/康是美": {"name": "康是美", "icon": "fas-shopping-basket", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11063876", "shop": "chemist"}, "addTags": {"brand": "康是美", "brand:wikidata": "Q11063876", "brand:wikipedia": "zh:康是美藥妝店", "name": "康是美", "shop": "chemist"}, "countryCodes": ["tw"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/chocolate/Cacau Show": {"name": "Cacau Show", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/CacauShow/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q9671713", "shop": "chocolate"}, "addTags": {"brand": "Cacau Show", "brand:wikidata": "Q9671713", "brand:wikipedia": "en:Cacau Show", "name": "Cacau Show", "shop": "chocolate"}, "countryCodes": ["br"], "terms": [], "matchScore": 2, "suggestion": true}, - "shop/chocolate/Godiva Chocolatier": {"name": "Godiva Chocolatier", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/Godiva/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q931084", "shop": "chocolate"}, "addTags": {"brand": "Godiva Chocolatier", "brand:wikidata": "Q931084", "brand:wikipedia": "en:Godiva Chocolatier", "name": "Godiva Chocolatier", "shop": "chocolate"}, "countryCodes": ["us"], "terms": ["godiva"], "matchScore": 2, "suggestion": true}, - "shop/chocolate/Jeff de Bruges": {"name": "Jeff de Bruges", "icon": "maki-shop", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3176626", "shop": "chocolate"}, "addTags": {"brand": "Jeff de Bruges", "brand:wikidata": "Q3176626", "brand:wikipedia": "fr:Jeff de Bruges", "name": "Jeff de Bruges", "shop": "chocolate"}, "countryCodes": ["ca", "cz", "fr", "gb"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/chocolate/Gertrude Hawk Chocolates": {"name": "Gertrude Hawk Chocolates", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/gertrudehawkchocolates/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5553326", "shop": "chocolate"}, "addTags": {"brand": "Gertrude Hawk Chocolates", "brand:wikidata": "Q5553326", "brand:wikipedia": "en:Gertrude Hawk Chocolates", "name": "Gertrude Hawk Chocolates", "shop": "chocolate", "short_name": "Gertrude Hawk"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/chocolate/Godiva Chocolatier": {"name": "Godiva Chocolatier", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/Godiva/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q931084", "shop": "chocolate"}, "addTags": {"brand": "Godiva Chocolatier", "brand:wikidata": "Q931084", "brand:wikipedia": "en:Godiva Chocolatier", "name": "Godiva Chocolatier", "shop": "chocolate", "short_name": "Godiva"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/chocolate/Jeff de Bruges": {"name": "Jeff de Bruges", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/JeffdeBrugesofficiel/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3176626", "shop": "chocolate"}, "addTags": {"brand": "Jeff de Bruges", "brand:wikidata": "Q3176626", "brand:wikipedia": "fr:Jeff de Bruges", "name": "Jeff de Bruges", "shop": "chocolate"}, "countryCodes": ["ca", "cz", "fr", "gb"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/chocolate/Laura Secord": {"name": "Laura Secord", "icon": "maki-shop", "imageURL": "https://pbs.twimg.com/profile_images/771761705336639488/0S9UP_QL_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6499418", "shop": "chocolate"}, "addTags": {"brand": "Laura Secord", "brand:wikidata": "Q6499418", "brand:wikipedia": "en:Laura Secord Chocolates", "name": "Laura Secord", "shop": "chocolate"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/chocolate/Leonidas": {"name": "Leonidas", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/Leonidas.Official/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q80335", "shop": "chocolate"}, "addTags": {"brand": "Leonidas", "brand:wikidata": "Q80335", "brand:wikipedia": "en:Leonidas (chocolate maker)", "name": "Leonidas", "shop": "chocolate"}, "countryCodes": ["be", "cz", "fr", "gb", "gr", "nl"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/chocolate/Lindt": {"name": "Lindt", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/lindtchocolateusa/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q152822", "shop": "chocolate"}, "addTags": {"brand": "Lindt", "brand:wikidata": "Q152822", "brand:wikipedia": "en:Lindt & Sprüngli", "name": "Lindt", "shop": "chocolate"}, "terms": [], "matchScore": 2, "suggestion": true}, - "shop/chocolate/Purdys Chocolatier": {"name": "Purdys Chocolatier", "icon": "maki-shop", "imageURL": "https://pbs.twimg.com/profile_images/930972583658266624/Hwx_gjlb_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7261007", "shop": "chocolate"}, "addTags": {"brand": "Purdys Chocolatier", "brand:wikidata": "Q7261007", "brand:wikipedia": "en:Purdy's Chocolates", "name": "Purdys Chocolatier", "shop": "chocolate"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/chocolate/Purdys Chocolatier": {"name": "Purdys Chocolatier", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/PurdysChocolatier/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7261007", "shop": "chocolate"}, "addTags": {"brand": "Purdys Chocolatier", "brand:wikidata": "Q7261007", "brand:wikipedia": "en:Purdy's Chocolates", "name": "Purdys Chocolatier", "shop": "chocolate"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/AOKI": {"name": "AOKI", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/aokistyle/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11189480", "shop": "clothes"}, "addTags": {"brand": "AOKI", "brand:wikidata": "Q11189480", "brand:wikipedia": "ja:AOKIホールディングス", "clothes": "men", "name": "AOKI", "name:ja": "アオキ", "shop": "clothes"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/Abercrombie & Fitch": {"name": "Abercrombie & Fitch", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/abercrombieofficial/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q319344", "shop": "clothes"}, "addTags": {"brand": "Abercrombie & Fitch", "brand:wikidata": "Q319344", "brand:wikipedia": "en:Abercrombie & Fitch", "clothes": "men;women", "name": "Abercrombie & Fitch", "shop": "clothes"}, "countryCodes": ["de", "us"], "terms": [], "matchScore": 2, "suggestion": true}, - "shop/clothes/Accessorize": {"name": "Accessorize", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/MonsoonUK/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3069980", "shop": "clothes"}, "addTags": {"brand": "Accessorize", "brand:wikidata": "Q3069980", "brand:wikipedia": "en:Monsoon Accessorize", "name": "Accessorize", "shop": "clothes"}, "countryCodes": ["gb", "it", "ru"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/clothes/Accessorize": {"name": "Accessorize", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/AccessorizeUK/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q65007482", "shop": "clothes"}, "addTags": {"brand": "Accessorize", "brand:wikidata": "Q65007482", "name": "Accessorize", "shop": "clothes"}, "countryCodes": ["gb", "it", "ru"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/Ackermans": {"name": "Ackermans", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/AckermansSA/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4674255", "shop": "clothes"}, "addTags": {"brand": "Ackermans", "brand:wikidata": "Q4674255", "brand:wikipedia": "en:Ackermans", "name": "Ackermans", "shop": "clothes"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/Aeropostale": {"name": "Aeropostale", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/Aeropostale/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q794565", "shop": "clothes"}, "addTags": {"brand": "Aeropostale", "brand:wikidata": "Q794565", "brand:wikipedia": "en:Aéropostale (clothing)", "clothes": "men;women", "name": "Aeropostale", "shop": "clothes"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/AllSaints": {"name": "AllSaints", "icon": "maki-clothing-store", "imageURL": "https://pbs.twimg.com/profile_images/926445027907293185/xgAk5nhG_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4728473", "shop": "clothes"}, "addTags": {"brand": "AllSaints", "brand:wikidata": "Q4728473", "brand:wikipedia": "en:AllSaints", "name": "AllSaints", "shop": "clothes"}, "countryCodes": ["gb"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -3322,7 +3443,8 @@ "shop/clothes/Betty Barclay": {"name": "Betty Barclay", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/Barclay.Betty/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q850250", "shop": "clothes"}, "addTags": {"brand": "Betty Barclay", "brand:wikidata": "Q850250", "brand:wikipedia": "de:Betty Barclay", "name": "Betty Barclay", "shop": "clothes"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/Big Star": {"name": "Big Star", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/bigstareurope/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q9171569", "shop": "clothes"}, "addTags": {"brand": "Big Star", "brand:wikidata": "Q9171569", "brand:wikipedia": "pl:Big Star Limited", "name": "Big Star", "shop": "clothes"}, "countryCodes": ["by", "pl"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/Billabong": {"name": "Billabong", "icon": "maki-clothing-store", "imageURL": "https://pbs.twimg.com/profile_images/993897138152091648/RkssuGQ7_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q862718", "shop": "clothes"}, "addTags": {"brand": "Billabong", "brand:wikidata": "Q862718", "brand:wikipedia": "en:Billabong (clothing)", "clothes": "men;women", "name": "Billabong", "shop": "clothes"}, "terms": [], "matchScore": 2, "suggestion": true}, - "shop/clothes/Bonita": {"name": "Bonita", "icon": "maki-clothing-store", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q892598", "shop": "clothes"}, "addTags": {"brand": "Bonita", "brand:wikidata": "Q892598", "brand:wikipedia": "de:Bonita (Unternehmen)", "name": "Bonita", "shop": "clothes"}, "countryCodes": ["at", "ch", "de", "nl"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/clothes/Bluenotes": {"name": "Bluenotes", "icon": "maki-clothing-store", "imageURL": "https://pbs.twimg.com/profile_images/1148268137449775111/rhL9wC1e_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4930395", "shop": "clothes"}, "addTags": {"brand": "Bluenotes", "brand:wikidata": "Q4930395", "brand:wikipedia": "en:Bluenotes", "name": "Bluenotes", "shop": "clothes"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/clothes/Bonita": {"name": "Bonita", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/BONITAfashion/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q892598", "shop": "clothes"}, "addTags": {"brand": "Bonita", "brand:wikidata": "Q892598", "brand:wikipedia": "de:Bonita (Unternehmen)", "name": "Bonita", "shop": "clothes"}, "countryCodes": ["at", "ch", "de", "nl"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/Bonobo": {"name": "Bonobo", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/bonoboplanet/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q63682093", "shop": "clothes"}, "addTags": {"brand": "Bonobo", "brand:wikidata": "Q63682093", "clothes": "men;women", "name": "Bonobo", "shop": "clothes"}, "countryCodes": ["fr"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/Bonobos": {"name": "Bonobos", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/bonobos/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4942546", "shop": "clothes"}, "addTags": {"brand": "Bonobos", "brand:wikidata": "Q4942546", "brand:wikipedia": "en:Bonobos (apparel)", "clothes": "men", "name": "Bonobos", "shop": "clothes"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/Brice": {"name": "Brice", "icon": "maki-clothing-store", "imageURL": "https://pbs.twimg.com/profile_images/833583108603658240/v7HkRIsd_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2925067", "shop": "clothes"}, "addTags": {"brand": "Brice", "brand:wikidata": "Q2925067", "brand:wikipedia": "fr:Brice (enseigne)", "name": "Brice", "shop": "clothes"}, "countryCodes": ["be", "fr"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -3366,12 +3488,13 @@ "shop/clothes/Diesel": {"name": "Diesel", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/Diesel/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q158285", "shop": "clothes"}, "addTags": {"brand": "Diesel", "brand:wikidata": "Q158285", "brand:wikipedia": "en:Diesel (brand)", "name": "Diesel", "shop": "clothes"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/Dior": {"name": "Dior", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/Dior/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q542767", "shop": "clothes"}, "addTags": {"brand": "Dior", "brand:wikidata": "Q542767", "brand:wikipedia": "en:Christian Dior (fashion house)", "name": "Dior", "shop": "clothes"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/Diverse": {"name": "Diverse", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/DiverseSystem/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11694298", "shop": "clothes"}, "addTags": {"brand": "Diverse", "brand:wikidata": "Q11694298", "brand:wikipedia": "pl:Diverse", "name": "Diverse", "shop": "clothes"}, "countryCodes": ["pl"], "terms": [], "matchScore": 2, "suggestion": true}, - "shop/clothes/Dolce & Gabbana": {"name": "Dolce & Gabbana", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/DolceGabbana/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q214480", "shop": "clothes"}, "addTags": {"brand": "Dolce & Gabbana", "brand:wikidata": "Q214480", "brand:wikipedia": "en:Dolce & Gabbana", "name": "Dolce & Gabbana", "shop": "clothes"}, "terms": ["d&g", "dolce & gabana", "dolce & gabanna", "dolce & gabbanna", "dolce and gabana", "dolce and gabanna", "dolce and gabbana", "dolce and gabbanna", "dolce y gabana", "dolce y gabanna", "dolce y gabbana", "dolce y gabbanna"], "matchScore": 2, "suggestion": true}, + "shop/clothes/Dolce & Gabbana": {"name": "Dolce & Gabbana", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/DolceGabbana/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q214480", "shop": "clothes"}, "addTags": {"brand": "Dolce & Gabbana", "brand:wikidata": "Q214480", "brand:wikipedia": "en:Dolce & Gabbana", "name": "Dolce & Gabbana", "shop": "clothes"}, "terms": ["d and g", "dg", "dolce and gabana", "dolce and gabanna", "dolce and gabbanna", "dolce y gabana", "dolce y gabanna", "dolce y gabbana", "dolce y gabbanna"], "matchScore": 2, "suggestion": true}, "shop/clothes/Dorothy Perkins": {"name": "Dorothy Perkins", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/dorothyperkins/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5298588", "shop": "clothes"}, "addTags": {"brand": "Dorothy Perkins", "brand:wikidata": "Q5298588", "brand:wikipedia": "en:Dorothy Perkins", "name": "Dorothy Perkins", "shop": "clothes"}, "countryCodes": ["gb", "gg", "ie", "im"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/Dress Barn": {"name": "Dress Barn", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/dressbarn/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5307031", "shop": "clothes"}, "addTags": {"brand": "Dress Barn", "brand:wikidata": "Q5307031", "brand:wikipedia": "en:Ascena Retail Group", "name": "Dress Barn", "shop": "clothes"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/Dressmann": {"name": "Dressmann", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/dressmann.no/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3357081", "shop": "clothes"}, "addTags": {"brand": "Dressmann", "brand:wikidata": "Q3357081", "brand:wikipedia": "en:Dressmann", "name": "Dressmann", "shop": "clothes"}, "countryCodes": ["at", "fi", "no", "se"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/Dynamite": {"name": "Dynamite", "icon": "maki-clothing-store", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3117385", "shop": "clothes"}, "addTags": {"brand": "Dynamite", "brand:wikidata": "Q3117385", "brand:wikipedia": "en:Groupe Dynamite", "clothes": "women", "name": "Dynamite", "shop": "clothes"}, "countryCodes": ["ca", "jo", "ku", "sa", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/Eddie Bauer": {"name": "Eddie Bauer", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/EddieBauer/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q842174", "shop": "clothes"}, "addTags": {"brand": "Eddie Bauer", "brand:wikidata": "Q842174", "brand:wikipedia": "en:Eddie Bauer", "name": "Eddie Bauer", "shop": "clothes"}, "countryCodes": ["ca", "jp", "us"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/clothes/Edinburgh Woollen Mill": {"name": "Edinburgh Woollen Mill", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/edinburghwoollenmill/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q16834657", "shop": "clothes"}, "addTags": {"brand": "Edinburgh Woollen Mill", "brand:wikidata": "Q16834657", "name": "Edinburgh Woollen Mill", "shop": "clothes"}, "countryCodes": ["gb"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/Engbers": {"name": "Engbers", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/engbers.maennermode/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1290088", "shop": "clothes"}, "addTags": {"brand": "Engbers", "brand:wikidata": "Q1290088", "brand:wikipedia": "de:Engbers", "name": "Engbers", "shop": "clothes"}, "countryCodes": ["at", "de"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/Ermenegildo Zegna": {"name": "Ermenegildo Zegna", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/ermenegildozegna/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1355904", "shop": "clothes"}, "addTags": {"brand": "Ermenegildo Zegna", "brand:wikidata": "Q1355904", "brand:wikipedia": "en:Ermenegildo Zegna", "clothes": "men", "name": "Ermenegildo Zegna", "shop": "clothes", "short_name": "Zegna"}, "countryCodes": ["ch", "it"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/Ernsting's family": {"name": "Ernsting's family", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/Ernstingsfamily/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1361016", "shop": "clothes"}, "addTags": {"brand": "Ernsting's family", "brand:wikidata": "Q1361016", "brand:wikipedia": "de:Ernsting’s family", "name": "Ernsting's family", "shop": "clothes"}, "countryCodes": ["at", "de"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -3384,10 +3507,11 @@ "shop/clothes/Forever 21": {"name": "Forever 21", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/Forever21/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1060537", "shop": "clothes"}, "addTags": {"brand": "Forever 21", "brand:wikidata": "Q1060537", "brand:wikipedia": "en:Forever 21", "name": "Forever 21", "shop": "clothes"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/Free People": {"name": "Free People", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/FreePeople/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5499945", "shop": "clothes"}, "addTags": {"brand": "Free People", "brand:wikidata": "Q5499945", "brand:wikipedia": "en:Free People", "name": "Free People", "shop": "clothes"}, "countryCodes": ["ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/GU": {"name": "GU", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/g.u.japan/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5512642", "shop": "clothes"}, "addTags": {"brand": "GU", "brand:wikidata": "Q5512642", "brand:wikipedia": "en:GU (retailer)", "name": "GU", "shop": "clothes"}, "countryCodes": ["cl", "jp", "tw"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/clothes/Gabe's": {"name": "Gabe's", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/GabesStores/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5515554", "shop": "clothes"}, "addTags": {"brand": "Gabe's", "brand:wikidata": "Q5515554", "brand:wikipedia": "en:Gabe's", "name": "Gabe's", "shop": "clothes"}, "countryCodes": ["us"], "terms": ["gabriel brothers"], "matchScore": 2, "suggestion": true}, "shop/clothes/Gant": {"name": "Gant", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/gant/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1493667", "shop": "clothes"}, "addTags": {"brand": "Gant", "brand:wikidata": "Q1493667", "brand:wikipedia": "en:Gant (retailer)", "name": "Gant", "shop": "clothes"}, "terms": [], "matchScore": 2, "suggestion": true}, - "shop/clothes/Gap": {"name": "Gap", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/GapJapan/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q420822", "shop": "clothes"}, "addTags": {"brand": "Gap", "brand:wikidata": "Q420822", "brand:wikipedia": "en:Gap Inc.", "name": "Gap", "shop": "clothes"}, "terms": [], "matchScore": 2, "suggestion": true}, + "shop/clothes/Gap": {"name": "Gap", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/GapJapan/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q420822", "shop": "clothes"}, "addTags": {"brand": "Gap", "brand:wikidata": "Q420822", "brand:wikipedia": "en:Gap Inc.", "name": "Gap", "shop": "clothes"}, "terms": ["the gap"], "matchScore": 2, "suggestion": true}, "shop/clothes/Gap Kids": {"name": "Gap Kids", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/GapJapan/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q420822", "shop": "clothes"}, "addTags": {"brand": "Gap", "brand:wikidata": "Q420822", "brand:wikipedia": "en:Gap Inc.", "name": "Gap Kids", "shop": "clothes"}, "terms": [], "matchScore": 2, "suggestion": true}, - "shop/clothes/Garage": {"name": "Garage", "icon": "maki-clothing-store", "imageURL": "https://pbs.twimg.com/profile_images/1138911592970670080/7cyb2dhC_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5521860", "shop": "clothes"}, "addTags": {"brand": "Garage", "brand:wikidata": "Q5521860", "brand:wikipedia": "en:Garage (clothing retailer)", "clothes": "women", "name": "Garage", "shop": "clothes"}, "countryCodes": ["am", "ca", "jo", "om", "qa", "sa", "us"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/clothes/Garage": {"name": "Garage", "icon": "maki-clothing-store", "imageURL": "https://pbs.twimg.com/profile_images/1146854016837722112/LnnLsWgk_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5521860", "shop": "clothes"}, "addTags": {"brand": "Garage", "brand:wikidata": "Q5521860", "brand:wikipedia": "en:Garage (clothing retailer)", "clothes": "women", "name": "Garage", "shop": "clothes"}, "countryCodes": ["am", "ca", "jo", "om", "qa", "sa", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/Gerry Weber": {"name": "Gerry Weber", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/gerryweber.global/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q873447", "shop": "clothes"}, "addTags": {"brand": "Gerry Weber", "brand:wikidata": "Q873447", "brand:wikipedia": "en:Gerry Weber", "name": "Gerry Weber", "shop": "clothes"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/Gina Laura": {"name": "Gina Laura", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/ginalaura.mode/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2700576", "shop": "clothes"}, "addTags": {"brand": "Gina Laura", "brand:wikidata": "Q2700576", "brand:wikipedia": "de:Gina Laura", "name": "Gina Laura", "shop": "clothes"}, "countryCodes": ["at", "de"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/Gloria Jeans": {"name": "Gloria Jeans", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/gloriajeanscorp/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4139985", "shop": "clothes"}, "addTags": {"brand": "Gloria Jeans", "brand:wikidata": "Q4139985", "brand:wikipedia": "ru:Глория Джинс", "name": "Gloria Jeans", "shop": "clothes"}, "countryCodes": ["ru", "ua"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -3411,7 +3535,7 @@ "shop/clothes/JBC": {"name": "JBC", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/jbcfashion/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2671470", "shop": "clothes"}, "addTags": {"brand": "JBC", "brand:wikidata": "Q2671470", "brand:wikipedia": "nl:JBC", "name": "JBC", "shop": "clothes"}, "countryCodes": ["be", "lu"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/Jack & Jones": {"name": "Jack & Jones", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/jackandjonesUSA/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6077665", "shop": "clothes"}, "addTags": {"brand": "Jack & Jones", "brand:wikidata": "Q6077665", "brand:wikipedia": "en:Jack & Jones", "name": "Jack & Jones", "shop": "clothes"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/Jack Wills": {"name": "Jack Wills", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/jackwills/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6115814", "shop": "clothes"}, "addTags": {"brand": "Jack Wills", "brand:wikidata": "Q6115814", "brand:wikipedia": "en:Jack Wills", "name": "Jack Wills", "shop": "clothes"}, "countryCodes": ["ae", "gb", "hk", "ie", "kw", "lb", "mo", "sg", "us"], "terms": [], "matchScore": 2, "suggestion": true}, - "shop/clothes/Janie & Jack": {"name": "Janie & Jack", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/janieandjack/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q64449634", "shop": "clothes"}, "addTags": {"brand": "Janie & Jack", "brand:wikidata": "Q64449634", "brand:wikipedia": "en:Janie & Jack", "clothes": "children", "name": "Janie & Jack", "shop": "clothes"}, "countryCodes": ["ca", "us"], "terms": ["janie and jack"], "matchScore": 2, "suggestion": true}, + "shop/clothes/Janie & Jack": {"name": "Janie & Jack", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/janieandjack/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q64449634", "shop": "clothes"}, "addTags": {"brand": "Janie & Jack", "brand:wikidata": "Q64449634", "brand:wikipedia": "en:Janie & Jack", "clothes": "children", "name": "Janie & Jack", "shop": "clothes"}, "countryCodes": ["ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/Jeans Fritz": {"name": "Jeans Fritz", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/JeansFritz/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1686071", "shop": "clothes"}, "addTags": {"brand": "Jeans Fritz", "brand:wikidata": "Q1686071", "brand:wikipedia": "de:Jeans Fritz", "name": "Jeans Fritz", "shop": "clothes"}, "countryCodes": ["de"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/Jennyfer": {"name": "Jennyfer", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/brand.jennyfer/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3177174", "shop": "clothes"}, "addTags": {"brand": "Jennyfer", "brand:wikidata": "Q3177174", "brand:wikipedia": "fr:Jennyfer", "name": "Jennyfer", "shop": "clothes"}, "countryCodes": ["fr", "it", "lu"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/Jet": {"name": "Jet", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/JetGoodForLife/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q61995123", "shop": "clothes"}, "addTags": {"brand": "Jet", "brand:wikidata": "Q61995123", "name": "Jet", "shop": "clothes"}, "countryCodes": ["za"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -3426,9 +3550,11 @@ "shop/clothes/Kiabi": {"name": "Kiabi", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/Kiabi.official/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3196299", "shop": "clothes"}, "addTags": {"brand": "Kiabi", "brand:wikidata": "Q3196299", "brand:wikipedia": "fr:Kiabi", "name": "Kiabi", "shop": "clothes"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/LC Waikiki": {"name": "LC Waikiki", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/lcwaikiki/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3205965", "shop": "clothes"}, "addTags": {"brand": "LC Waikiki", "brand:wikidata": "Q3205965", "brand:wikipedia": "fr:LC Waikiki", "name": "LC Waikiki", "shop": "clothes"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/La Senza": {"name": "La Senza", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/lasenza/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3212802", "shop": "clothes"}, "addTags": {"brand": "La Senza", "brand:wikidata": "Q3212802", "brand:wikipedia": "en:La Senza", "name": "La Senza", "shop": "clothes"}, "countryCodes": ["ca", "gb"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/clothes/La Vie en Rose": {"name": "La Vie en Rose", "icon": "maki-clothing-store", "imageURL": "https://pbs.twimg.com/profile_images/540241105199980544/QfhC9PHl_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4950452", "shop": "clothes"}, "addTags": {"brand": "La Vie en Rose", "brand:wikidata": "Q4950452", "brand:wikipedia": "en:Boutique La Vie en Rose", "clothes": "underwear;women", "name": "La Vie en Rose", "shop": "clothes"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/Lacoste": {"name": "Lacoste", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/Lacoste/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q309031", "shop": "clothes"}, "addTags": {"brand": "Lacoste", "brand:wikidata": "Q309031", "brand:wikipedia": "en:Lacoste", "name": "Lacoste", "shop": "clothes"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/Lane Bryant": {"name": "Lane Bryant", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/LaneBryant/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6485350", "shop": "clothes"}, "addTags": {"brand": "Lane Bryant", "brand:wikidata": "Q6485350", "brand:wikipedia": "en:Lane Bryant", "clothes": "oversize;women", "name": "Lane Bryant", "shop": "clothes"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/Laura": {"name": "Laura", "icon": "maki-clothing-store", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6498590", "shop": "clothes"}, "addTags": {"brand": "Laura", "brand:wikidata": "Q6498590", "brand:wikipedia": "en:Laura (clothing retailer)", "clothes": "women", "name": "Laura", "shop": "clothes"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/clothes/Le Château": {"name": "Le Château", "icon": "maki-clothing-store", "imageURL": "https://pbs.twimg.com/profile_images/984791052736434176/OKpgwHyj_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6506731", "shop": "clothes"}, "addTags": {"brand": "Le Château", "brand:wikidata": "Q6506731", "brand:wikipedia": "en:Le Château", "name": "Le Château", "shop": "clothes"}, "countryCodes": ["ae", "ca", "sa"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/Levi's": {"name": "Levi's", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/Levis/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q127962", "shop": "clothes"}, "addTags": {"brand": "Levi's", "brand:wikidata": "Q127962", "brand:wikipedia": "en:Levi Strauss & Co.", "clothes": "denim;men;women", "name": "Levi's", "shop": "clothes"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/Lids": {"name": "Lids", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/Lids/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q19841609", "shop": "clothes"}, "addTags": {"brand": "Lids", "brand:wikidata": "Q19841609", "brand:wikipedia": "en:Lids (store)", "clothes": "hats", "name": "Lids", "shop": "clothes"}, "countryCodes": ["ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/Lindex": {"name": "Lindex", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/lindex/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1786717", "shop": "clothes"}, "addTags": {"brand": "Lindex", "brand:wikidata": "Q1786717", "brand:wikipedia": "en:Lindex", "name": "Lindex", "shop": "clothes"}, "countryCodes": ["cz", "ee", "fi", "no", "se", "sk"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -3452,7 +3578,7 @@ "shop/clothes/Men's Wearhouse": {"name": "Men's Wearhouse", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/MensWearhouse/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q57405513", "shop": "clothes"}, "addTags": {"brand": "Men's Wearhouse", "brand:wikidata": "Q57405513", "brand:wikipedia": "en:Men's Wearhouse", "clothes": "suits", "name": "Men's Wearhouse", "shop": "clothes"}, "countryCodes": ["us"], "terms": ["mens warehouse"], "matchScore": 2, "suggestion": true}, "shop/clothes/Mexx": {"name": "Mexx", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/Mexx/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1837290", "shop": "clothes"}, "addTags": {"brand": "Mexx", "brand:wikidata": "Q1837290", "brand:wikipedia": "en:Mexx", "name": "Mexx", "shop": "clothes"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/Michael Kors": {"name": "Michael Kors", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/MichaelKors/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q19572998", "shop": "clothes"}, "addTags": {"brand": "Michael Kors", "brand:wikidata": "Q19572998", "brand:wikipedia": "en:Capri Holdings", "name": "Michael Kors", "shop": "clothes"}, "terms": [], "matchScore": 2, "suggestion": true}, - "shop/clothes/Monsoon": {"name": "Monsoon", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/MonsoonUK/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3069980", "shop": "clothes"}, "addTags": {"brand": "Monsoon", "brand:wikidata": "Q3069980", "brand:wikipedia": "en:Monsoon Accessorize", "name": "Monsoon", "shop": "clothes"}, "countryCodes": ["gb", "gg", "ie"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/clothes/Monsoon": {"name": "Monsoon", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/MonsoonUK/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q65007501", "shop": "clothes"}, "addTags": {"brand": "Monsoon", "brand:wikidata": "Q65007501", "name": "Monsoon", "shop": "clothes"}, "countryCodes": ["gb", "gg", "ie"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/Moores": {"name": "Moores", "icon": "maki-clothing-store", "imageURL": "https://pbs.twimg.com/profile_images/471700618038345729/gZ8q6UVv_bigger.jpeg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6908309", "shop": "clothes"}, "addTags": {"brand": "Moores", "brand:wikidata": "Q6908309", "brand:wikipedia": "en:Moores", "clothes": "men", "name": "Moores", "shop": "clothes"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/Mr Price": {"name": "Mr Price", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/MRPFASHION/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6929120", "shop": "clothes"}, "addTags": {"brand": "Mr Price", "brand:wikidata": "Q6929120", "brand:wikipedia": "en:Mr. Price", "name": "Mr Price", "shop": "clothes"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/NKD": {"name": "NKD", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/nkd.friends/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q927272", "shop": "clothes"}, "addTags": {"brand": "NKD", "brand:wikidata": "Q927272", "brand:wikipedia": "de:NKD", "name": "NKD", "shop": "clothes"}, "countryCodes": ["at", "de", "it", "si"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -3478,7 +3604,7 @@ "shop/clothes/Peacocks": {"name": "Peacocks", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/peacocksclothing/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7157762", "shop": "clothes"}, "addTags": {"brand": "Peacocks", "brand:wikidata": "Q7157762", "brand:wikipedia": "en:Peacocks (clothing)", "name": "Peacocks", "shop": "clothes"}, "countryCodes": ["cy", "gb"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/Peek & Cloppenburg": {"name": "Peek & Cloppenburg", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/peekcloppenburg/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2066959", "shop": "clothes"}, "addTags": {"brand": "Peek & Cloppenburg", "brand:wikidata": "Q2066959", "brand:wikipedia": "en:Peek & Cloppenburg", "name": "Peek & Cloppenburg", "shop": "clothes"}, "countryCodes": ["at", "be", "de", "nl", "pl"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/Pep": {"name": "Pep", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/PEPSocial/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7166182", "shop": "clothes"}, "addTags": {"brand": "Pep", "brand:wikidata": "Q7166182", "brand:wikipedia": "en:Pep (store)", "name": "Pep", "shop": "clothes"}, "terms": [], "matchScore": 2, "suggestion": true}, - "shop/clothes/Pepco": {"name": "Pepco", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/PEPCOpl/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11815580", "shop": "clothes"}, "addTags": {"brand": "Pepco", "brand:wikidata": "Q11815580", "brand:wikipedia": "pl:Pepco", "name": "Pepco", "shop": "clothes"}, "countryCodes": ["cz", "hu", "pl", "ro", "sk"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/clothes/Pepco": {"name": "Pepco", "icon": "maki-clothing-store", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FLogo%20of%20the%20Potomac%20Electric%20Power%20Company.png&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11815580", "shop": "clothes"}, "addTags": {"brand": "Pepco", "brand:wikidata": "Q11815580", "brand:wikipedia": "pl:Pepco", "name": "Pepco", "shop": "clothes"}, "countryCodes": ["cz", "hu", "pl", "ro", "sk"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/Petit Bateau": {"name": "Petit Bateau", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/petitbateauus/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3377090", "shop": "clothes"}, "addTags": {"brand": "Petit Bateau", "brand:wikidata": "Q3377090", "brand:wikipedia": "en:Petit Bateau", "name": "Petit Bateau", "shop": "clothes"}, "countryCodes": ["be", "de", "fr", "gb", "it", "lu"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/Phase Eight": {"name": "Phase Eight", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/phaseeight/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q17020730", "shop": "clothes"}, "addTags": {"brand": "Phase Eight", "brand:wikidata": "Q17020730", "brand:wikipedia": "en:Phase Eight", "name": "Phase Eight", "shop": "clothes"}, "countryCodes": ["ch", "de", "gb"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/Pierre Cardin": {"name": "Pierre Cardin", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/PIERRECARDINOFFICIAL/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q22921009", "shop": "clothes"}, "addTags": {"brand": "Pierre Cardin", "brand:wikidata": "Q22921009", "name": "Pierre Cardin", "shop": "clothes"}, "terms": [], "matchScore": 2, "suggestion": true}, @@ -3505,10 +3631,12 @@ "shop/clothes/Spanx": {"name": "Spanx", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/SPANX/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1932886", "shop": "clothes"}, "addTags": {"brand": "Spanx", "brand:wikidata": "Q1932886", "brand:wikipedia": "en:Spanx", "clothes": "underwear", "name": "Spanx", "shop": "clothes"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/Springfield": {"name": "Springfield", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/Springfield/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q958209", "shop": "clothes"}, "addTags": {"brand": "Springfield", "brand:wikidata": "Q958209", "brand:wikipedia": "es:Springfield (cadena de tiendas)", "name": "Springfield", "shop": "clothes"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/Stefanel": {"name": "Stefanel", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/Stefanel.Official/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2338087", "shop": "clothes"}, "addTags": {"brand": "Stefanel", "brand:wikidata": "Q2338087", "brand:wikipedia": "ro:Stefanel (companie)", "name": "Stefanel", "shop": "clothes"}, "countryCodes": ["at", "de", "fr", "it"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/clothes/Stitches": {"name": "Stitches", "icon": "maki-clothing-store", "imageURL": "https://pbs.twimg.com/profile_images/659104617792434176/FTrSM8oi_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7617652", "shop": "clothes"}, "addTags": {"brand": "Stitches", "brand:wikidata": "Q7617652", "brand:wikipedia": "en:Stitches (store)", "name": "Stitches", "shop": "clothes"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/Stradivarius": {"name": "Stradivarius", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/stradivas/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3322945", "shop": "clothes"}, "addTags": {"brand": "Stradivarius", "brand:wikidata": "Q3322945", "brand:wikipedia": "en:Stradivarius (clothing brand)", "name": "Stradivarius", "shop": "clothes"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/Street One": {"name": "Street One", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/MyStreetOne/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q61997265", "shop": "clothes"}, "addTags": {"brand": "Street One", "brand:wikidata": "Q61997265", "name": "Street One", "shop": "clothes"}, "countryCodes": ["at", "be", "bg", "ch", "cz", "de", "dk", "es", "fi", "fr", "hr", "hu", "ie", "it", "lt", "lu", "lv", "nl", "no", "pl", "ro", "se", "si", "sk"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/Suburbia": {"name": "Suburbia", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/moda.suburbia/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6134992", "shop": "clothes"}, "addTags": {"brand": "Suburbia", "brand:wikidata": "Q6134992", "brand:wikipedia": "en:Suburbia (department store)", "name": "Suburbia", "shop": "clothes"}, "countryCodes": ["mx"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/Superdry": {"name": "Superdry", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/SuperdryUSA/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1684445", "shop": "clothes"}, "addTags": {"brand": "Superdry", "brand:wikidata": "Q1684445", "brand:wikipedia": "en:Superdry", "name": "Superdry", "shop": "clothes"}, "terms": [], "matchScore": 2, "suggestion": true}, + "shop/clothes/Suzy Shier": {"name": "Suzy Shier", "icon": "maki-clothing-store", "imageURL": "https://pbs.twimg.com/profile_images/743172502814285828/rKuPz3Ms_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q65464976", "shop": "clothes"}, "addTags": {"brand": "Suzy Shier", "brand:wikidata": "Q65464976", "clothes": "women", "name": "Suzy Shier", "shop": "clothes"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/TJ Maxx": {"name": "TJ Maxx", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/tjmaxx/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q10860683", "shop": "clothes"}, "addTags": {"brand": "TJ Maxx", "brand:wikidata": "Q10860683", "brand:wikipedia": "en:TJ Maxx", "name": "TJ Maxx", "shop": "clothes"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/TK Maxx": {"name": "TK Maxx", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/tkmaxx/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q23823668", "shop": "clothes"}, "addTags": {"brand": "TK Maxx", "brand:wikidata": "Q23823668", "brand:wikipedia": "en:TK Maxx", "name": "TK Maxx", "shop": "clothes"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/Takko": {"name": "Takko", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/TakkoFashion/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1371302", "shop": "clothes"}, "addTags": {"brand": "Takko", "brand:wikidata": "Q1371302", "brand:wikipedia": "de:Takko", "name": "Takko", "shop": "clothes"}, "countryCodes": ["at", "cz", "de", "hu", "nl"], "terms": ["takko fashion"], "matchScore": 2, "suggestion": true}, @@ -3534,7 +3662,7 @@ "shop/clothes/UNTUCKit": {"name": "UNTUCKit", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/UNTUCKit/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q28207006", "shop": "clothes"}, "addTags": {"brand": "UNTUCKit", "brand:wikidata": "Q28207006", "brand:wikipedia": "en:Untuckit", "name": "UNTUCKit", "shop": "clothes"}, "countryCodes": ["ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/USC": {"name": "USC", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/uscfashion/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7866331", "shop": "clothes"}, "addTags": {"brand": "USC", "brand:wikidata": "Q7866331", "brand:wikipedia": "en:USC (clothing retailer)", "name": "USC", "shop": "clothes"}, "countryCodes": ["gb", "ie"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/Ulla Popken": {"name": "Ulla Popken", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/ulla.popken/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2475146", "shop": "clothes"}, "addTags": {"brand": "Ulla Popken", "brand:wikidata": "Q2475146", "brand:wikipedia": "en:Ulla Popken", "name": "Ulla Popken", "shop": "clothes"}, "countryCodes": ["at", "be", "ch", "de", "fr", "nl"], "terms": [], "matchScore": 2, "suggestion": true}, - "shop/clothes/Under Armour": {"name": "Under Armour", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/UnderArmour/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2031485", "shop": "clothes"}, "addTags": {"brand": "Under Armour", "brand:wikidata": "Q2031485", "brand:wikipedia": "en:Under Armour", "clothes": "men;women", "name": "Under Armour", "shop": "clothes"}, "terms": [], "matchScore": 2, "suggestion": true}, + "shop/clothes/Under Armour": {"name": "Under Armour", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/UnderArmour/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2031485", "shop": "clothes"}, "addTags": {"brand": "Under Armour", "brand:wikidata": "Q2031485", "brand:wikipedia": "en:Under Armour", "clothes": "men;women", "name": "Under Armour", "shop": "clothes"}, "terms": ["under armor"], "matchScore": 2, "suggestion": true}, "shop/clothes/Uniqlo": {"name": "Uniqlo", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/uniqlo/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q26070", "shop": "clothes"}, "addTags": {"brand": "Uniqlo", "brand:wikidata": "Q26070", "brand:wikipedia": "en:Uniqlo", "name": "Uniqlo", "shop": "clothes"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/United Colors of Benetton": {"name": "United Colors of Benetton", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/BenettonUSA/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q817139", "shop": "clothes"}, "addTags": {"brand": "United Colors of Benetton", "brand:wikidata": "Q817139", "brand:wikipedia": "en:Benetton Group", "name": "United Colors of Benetton", "shop": "clothes", "short_name": "Benetton"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/Urban Outfitters": {"name": "Urban Outfitters", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/urbanoutfitters/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3552193", "shop": "clothes"}, "addTags": {"brand": "Urban Outfitters", "brand:wikidata": "Q3552193", "brand:wikipedia": "en:Urban Outfitters", "name": "Urban Outfitters", "shop": "clothes"}, "terms": [], "matchScore": 2, "suggestion": true}, @@ -3545,7 +3673,8 @@ "shop/clothes/Volcom": {"name": "Volcom", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/Volcom/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2021416", "shop": "clothes"}, "addTags": {"brand": "Volcom", "brand:wikidata": "Q2021416", "brand:wikipedia": "en:Volcom", "name": "Volcom", "shop": "clothes"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/WE": {"name": "WE", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/weeurope/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1987861", "shop": "clothes"}, "addTags": {"brand": "WE", "brand:wikidata": "Q1987861", "brand:wikipedia": "en:WE (clothing)", "name": "WE", "shop": "clothes"}, "countryCodes": ["be", "ch", "de", "nl"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/Wacoal": {"name": "Wacoal", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/wacoal/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q909522", "shop": "clothes"}, "addTags": {"brand": "Wacoal", "brand:wikidata": "Q909522", "brand:wikipedia": "en:Wacoal", "clothes": "underwear", "name": "Wacoal", "shop": "clothes"}, "terms": [], "matchScore": 2, "suggestion": true}, - "shop/clothes/White House Black Market": {"name": "White House Black Market", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/WhiteHouseBlackMarket/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7994858", "shop": "clothes"}, "addTags": {"brand": "White House Black Market", "brand:wikidata": "Q7994858", "brand:wikipedia": "en:White House Black Market", "name": "White House Black Market", "shop": "clothes"}, "countryCodes": ["ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/clothes/West 49": {"name": "West 49", "icon": "maki-clothing-store", "imageURL": "https://pbs.twimg.com/profile_images/925811570889842689/M0Y4yIjA_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7984218", "shop": "clothes"}, "addTags": {"brand": "West 49", "brand:wikidata": "Q7984218", "brand:wikipedia": "en:West 49", "name": "West 49", "shop": "clothes"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/clothes/White House Black Market": {"name": "White House Black Market", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/WhiteHouseBlackMarket/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7994858", "shop": "clothes"}, "addTags": {"brand": "White House Black Market", "brand:wikidata": "Q7994858", "brand:wikipedia": "en:White House Black Market", "name": "White House Black Market", "shop": "clothes"}, "countryCodes": ["ca", "us"], "terms": ["white house | black market"], "matchScore": 2, "suggestion": true}, "shop/clothes/White Stuff": {"name": "White Stuff", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/WhiteStuffUK/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7995442", "shop": "clothes"}, "addTags": {"brand": "White Stuff", "brand:wikidata": "Q7995442", "brand:wikipedia": "en:White Stuff Clothing", "name": "White Stuff", "shop": "clothes"}, "countryCodes": ["de", "dk", "gb", "gg"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/Wibra": {"name": "Wibra", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/WibraBelgie/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q943405", "shop": "clothes"}, "addTags": {"brand": "Wibra", "brand:wikidata": "Q943405", "brand:wikipedia": "en:Wibra", "name": "Wibra", "shop": "clothes"}, "countryCodes": ["be", "nl"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/Wilsons Leather": {"name": "Wilsons Leather", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/wilsonsleather/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q8023296", "shop": "clothes"}, "addTags": {"brand": "Wilsons Leather", "brand:wikidata": "Q8023296", "brand:wikipedia": "en:Wilsons Leather", "clothes": "men;women", "name": "Wilsons Leather", "shop": "clothes"}, "countryCodes": ["ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -3572,6 +3701,7 @@ "shop/computer/PC World": {"name": "PC World", "icon": "fas-laptop", "imageURL": "https://graph.facebook.com/curryspcworld/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7118727", "shop": "computer"}, "addTags": {"brand": "PC World", "brand:wikidata": "Q7118727", "brand:wikipedia": "en:PC World (retailer)", "name": "PC World", "shop": "computer"}, "countryCodes": ["gb"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/confectionery/Adyar Ananda Bhavan": {"name": "Adyar Ananda Bhavan", "icon": "maki-confectionery", "imageURL": "https://graph.facebook.com/a2b.officialpage/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q15178238", "shop": "confectionery"}, "addTags": {"brand": "Adyar Ananda Bhavan", "brand:wikidata": "Q15178238", "brand:wikipedia": "en:Adyar Ananda Bhavan", "name": "Adyar Ananda Bhavan", "shop": "confectionery"}, "countryCodes": ["in"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/confectionery/Hemmakvall": {"name": "Hemmakvall", "icon": "maki-confectionery", "imageURL": "https://graph.facebook.com/hemmakvall/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q10521791", "shop": "confectionery"}, "addTags": {"brand": "Hemmakväll", "brand:wikidata": "Q10521791", "brand:wikipedia": "sv:Hemmakväll", "name": "Hemmakväll", "shop": "confectionery"}, "countryCodes": ["se"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/confectionery/Hotel Chocolat": {"name": "Hotel Chocolat", "icon": "maki-confectionery", "imageURL": "https://graph.facebook.com/HotelChocolat/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5911369", "shop": "confectionery"}, "addTags": {"brand": "Hotel Chocolat", "brand:wikidata": "Q5911369", "name": "Hotel Chocolat", "shop": "confectionery"}, "countryCodes": ["gb"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/confectionery/Hussel": {"name": "Hussel", "icon": "maki-confectionery", "imageURL": "https://graph.facebook.com/HusselConfiserie/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q17123688", "shop": "confectionery"}, "addTags": {"brand": "Hussel", "brand:wikidata": "Q17123688", "brand:wikipedia": "de:Hussel", "name": "Hussel", "shop": "confectionery"}, "countryCodes": ["at", "de"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/confectionery/Jamin": {"name": "Jamin", "icon": "maki-confectionery", "imageURL": "https://graph.facebook.com/jaminonline/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2291848", "shop": "confectionery"}, "addTags": {"brand": "Jamin", "brand:wikidata": "Q2291848", "brand:wikipedia": "nl:Jamin", "name": "Jamin", "shop": "confectionery"}, "countryCodes": ["nl"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/confectionery/Kilwins": {"name": "Kilwins", "icon": "maki-confectionery", "imageURL": "https://graph.facebook.com/KilwinsChocolatesFudgeandIceCream/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q38250832", "shop": "confectionery"}, "addTags": {"brand": "Kilwins", "brand:wikidata": "Q38250832", "brand:wikipedia": "en:Kilwins", "cuisine": "chocolate;ice_cream;popcorn", "name": "Kilwins", "shop": "confectionery"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -3580,6 +3710,7 @@ "shop/confectionery/Thorntons": {"name": "Thorntons", "icon": "maki-confectionery", "imageURL": "https://graph.facebook.com/Thorntons.Official/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q683102", "shop": "confectionery"}, "addTags": {"brand": "Thorntons", "brand:wikidata": "Q683102", "brand:wikipedia": "en:Thorntons", "name": "Thorntons", "shop": "confectionery"}, "countryCodes": ["gb"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/confectionery/Вацак": {"name": "Вацак", "icon": "maki-confectionery", "imageURL": "https://graph.facebook.com/Vatsak.KD/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q30966576", "shop": "confectionery"}, "addTags": {"brand": "Вацак", "brand:wikidata": "Q30966576", "brand:wikipedia": "uk:Кондитерський Дім «Вацак»", "name": "Вацак", "shop": "confectionery"}, "countryCodes": ["ua"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/confectionery/シャトレーゼ": {"name": "シャトレーゼ", "icon": "maki-confectionery", "imageURL": "https://graph.facebook.com/chateraise.jp/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11307696", "shop": "confectionery"}, "addTags": {"brand": "シャトレーゼ", "brand:en": "Chateraise", "brand:ja": "シャトレーゼ", "brand:wikidata": "Q11307696", "brand:wikipedia": "ja:シャトレーゼ", "name": "シャトレーゼ", "name:en": "Chateraise", "name:ja": "シャトレーゼ", "shop": "confectionery"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/convenience/1st Stop": {"name": "1st Stop", "icon": "fas-shopping-basket", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q65706152", "shop": "convenience"}, "addTags": {"brand": "1st Stop", "brand:wikidata": "Q65706152", "name": "1st Stop", "shop": "convenience"}, "countryCodes": ["us"], "terms": ["first stop"], "matchScore": 2, "suggestion": true}, "shop/convenience/7-Eleven": {"name": "7-Eleven", "icon": "fas-shopping-basket", "imageURL": "https://graph.facebook.com/7ElevenMexico/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q259340", "shop": "convenience"}, "addTags": {"brand": "7-Eleven", "brand:wikidata": "Q259340", "brand:wikipedia": "en:7-Eleven", "name": "7-Eleven", "shop": "convenience"}, "terms": ["7-11", "seven eleven"], "matchScore": 2, "suggestion": true}, "shop/convenience/76": {"name": "76", "icon": "fas-shopping-basket", "imageURL": "https://graph.facebook.com/76gas/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1658320", "shop": "convenience"}, "addTags": {"brand": "76", "brand:wikidata": "Q1658320", "brand:wikipedia": "en:76 (gas station)", "name": "76", "shop": "convenience"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/convenience/8 à Huit": {"name": "8 à Huit", "icon": "fas-shopping-basket", "imageURL": "https://graph.facebook.com/fashion8a8/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2818601", "shop": "convenience"}, "addTags": {"brand": "8 à Huit", "brand:wikidata": "Q2818601", "brand:wikipedia": "fr:8 à Huit", "name": "8 à Huit", "shop": "convenience"}, "countryCodes": ["fr"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -3605,6 +3736,7 @@ "shop/convenience/Chevron": {"name": "Chevron", "icon": "fas-shopping-basket", "imageURL": "https://graph.facebook.com/Chevron/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q319642", "shop": "convenience"}, "addTags": {"brand": "Chevron", "brand:wikidata": "Q319642", "brand:wikipedia": "en:Chevron Corporation", "name": "Chevron", "shop": "convenience"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/convenience/Circle K": {"name": "Circle K", "icon": "fas-shopping-basket", "imageURL": "https://graph.facebook.com/circlekireland/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3268010", "shop": "convenience"}, "addTags": {"brand": "Circle K", "brand:wikidata": "Q3268010", "brand:wikipedia": "en:Circle K", "name": "Circle K", "shop": "convenience"}, "terms": ["ok", "ok-mart"], "matchScore": 2, "suggestion": true}, "shop/convenience/Citgo": {"name": "Citgo", "icon": "fas-shopping-basket", "imageURL": "https://graph.facebook.com/CITGOPetroleumCorporation/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2974437", "shop": "convenience"}, "addTags": {"brand": "Citgo", "brand:wikidata": "Q2974437", "brand:wikipedia": "en:Citgo", "name": "Citgo", "shop": "convenience"}, "terms": [], "matchScore": 2, "suggestion": true}, + "shop/convenience/Clark's Pump-N-Shop": {"name": "Clark's Pump-N-Shop", "icon": "fas-shopping-basket", "imageURL": "https://graph.facebook.com/clarkspumpnshop/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q65118218", "shop": "convenience"}, "addTags": {"brand": "Clark's Pump-N-Shop", "brand:wikidata": "Q65118218", "name": "Clark's Pump-N-Shop", "shop": "convenience"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/convenience/Co-op (Canada)": {"name": "Co-op (Canada)", "icon": "fas-shopping-basket", "imageURL": "https://graph.facebook.com/CoopCRS/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5440676", "shop": "convenience"}, "addTags": {"brand": "Federated Co-operatives", "brand:wikidata": "Q5440676", "brand:wikipedia": "en:Federated Co-operatives", "name": "Co-op", "shop": "convenience"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/convenience/Coles Express": {"name": "Coles Express", "icon": "fas-shopping-basket", "imageURL": "https://graph.facebook.com/ColesExpress/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5144653", "shop": "convenience"}, "addTags": {"brand": "Coles Express", "brand:wikidata": "Q5144653", "brand:wikipedia": "en:Coles Express", "name": "Coles Express", "shop": "convenience"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/convenience/Coop Pronto": {"name": "Coop Pronto", "icon": "fas-shopping-basket", "imageURL": "https://graph.facebook.com/209094172456220/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1129777", "shop": "convenience"}, "addTags": {"brand": "Coop Pronto", "brand:wikidata": "Q1129777", "brand:wikipedia": "de:Coop Mineraloel", "name": "Coop Pronto", "shop": "convenience"}, "countryCodes": ["ch", "li"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -3659,6 +3791,8 @@ "shop/convenience/Premier": {"name": "Premier", "icon": "fas-shopping-basket", "imageURL": "https://pbs.twimg.com/profile_images/552086468839997441/Ok2vWsQl_bigger.jpeg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7240340", "shop": "convenience"}, "addTags": {"brand": "Premier", "brand:wikidata": "Q7240340", "brand:wikipedia": "en:Premier Stores", "name": "Premier", "shop": "convenience"}, "countryCodes": ["gb"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/convenience/Proxi": {"name": "Proxi", "icon": "fas-shopping-basket", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3408522", "shop": "convenience"}, "addTags": {"brand": "Proxi", "brand:wikidata": "Q3408522", "brand:wikipedia": "fr:Proxi", "name": "Proxi", "shop": "convenience"}, "countryCodes": ["ch", "fr"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/convenience/RaceTrac": {"name": "RaceTrac", "icon": "fas-shopping-basket", "imageURL": "https://graph.facebook.com/RaceTrac/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q735942", "shop": "convenience"}, "addTags": {"brand": "RaceTrac", "brand:wikidata": "Q735942", "brand:wikipedia": "en:RaceTrac", "name": "RaceTrac", "shop": "convenience"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/convenience/Royal Farms": {"name": "Royal Farms", "icon": "fas-shopping-basket", "imageURL": "https://graph.facebook.com/Royalfarmsstores/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7374169", "shop": "convenience"}, "addTags": {"brand": "Royal Farms", "brand:wikidata": "Q7374169", "brand:wikipedia": "en:Royal Farms", "name": "Royal Farms", "shop": "convenience"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/convenience/Rutter's": {"name": "Rutter's", "icon": "fas-shopping-basket", "imageURL": "https://graph.facebook.com/rutters/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7383544", "shop": "convenience"}, "addTags": {"brand": "Rutter's", "brand:wikidata": "Q7383544", "brand:wikipedia": "en:Rutter's", "name": "Rutter's", "shop": "convenience"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/convenience/Sainsbury's Local": {"name": "Sainsbury's Local", "icon": "fas-shopping-basket", "imageURL": "https://graph.facebook.com/sainsburys/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q13218434", "shop": "convenience"}, "addTags": {"brand": "Sainsbury's Local", "brand:wikidata": "Q13218434", "brand:wikipedia": "en:Sainsbury's Local", "name": "Sainsbury's Local", "shop": "convenience"}, "countryCodes": ["gb"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/convenience/Sale": {"name": "Sale", "icon": "fas-shopping-basket", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11892046", "shop": "convenience"}, "addTags": {"brand": "Sale", "brand:wikidata": "Q11892046", "brand:wikipedia": "fi:Sale", "name": "Sale", "shop": "convenience"}, "countryCodes": ["fi"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/convenience/Sheetz": {"name": "Sheetz", "icon": "fas-shopping-basket", "imageURL": "https://graph.facebook.com/sheetz/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7492551", "shop": "convenience"}, "addTags": {"brand": "Sheetz", "brand:wikidata": "Q7492551", "brand:wikipedia": "en:Sheetz", "name": "Sheetz", "shop": "convenience"}, "terms": [], "matchScore": 2, "suggestion": true}, @@ -3675,6 +3809,7 @@ "shop/convenience/Tesco Express": {"name": "Tesco Express", "icon": "fas-shopping-basket", "imageURL": "https://graph.facebook.com/tesco/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q487494", "shop": "convenience"}, "addTags": {"brand": "Tesco Express", "brand:wikidata": "Q487494", "brand:wikipedia": "en:Tesco", "name": "Tesco Express", "shop": "convenience"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/convenience/The Co-operative Food (UK)": {"name": "The Co-operative Food (UK)", "icon": "fas-shopping-basket", "imageURL": "https://graph.facebook.com/coopukfood/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3277439", "shop": "convenience"}, "addTags": {"brand": "The Co-operative Food", "brand:wikidata": "Q3277439", "brand:wikipedia": "en:Co-op Food", "name": "The Co-operative Food", "shop": "convenience"}, "countryCodes": ["gb"], "terms": ["coop", "coop food", "cooperative food", "the cooperative"], "matchScore": 2, "suggestion": true}, "shop/convenience/Tiger Mart": {"name": "Tiger Mart", "icon": "fas-shopping-basket", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q57643977", "shop": "convenience"}, "addTags": {"brand": "Tiger Mart", "brand:wikidata": "Q57643977", "name": "Tiger Mart", "shop": "convenience"}, "terms": [], "matchScore": 2, "suggestion": true}, + "shop/convenience/Turkey Hill": {"name": "Turkey Hill", "icon": "fas-shopping-basket", "imageURL": "https://graph.facebook.com/turkeyhillmm/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q42376970", "shop": "convenience"}, "addTags": {"brand": "Turkey Hill", "brand:wikidata": "Q42376970", "brand:wikipedia": "en:Turkey Hill Minit Markets", "name": "Turkey Hill", "shop": "convenience"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/convenience/United Dairy Farmers": {"name": "United Dairy Farmers", "icon": "fas-shopping-basket", "imageURL": "https://graph.facebook.com/UnitedDairyFarmers/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7887677", "shop": "convenience"}, "addTags": {"amenity": "ice_cream", "brand": "United Dairy Farmers", "brand:wikidata": "Q7887677", "brand:wikipedia": "en:United Dairy Farmers", "name": "United Dairy Farmers", "shop": "convenience", "short_name": "UDF"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/convenience/Utile": {"name": "Utile", "icon": "fas-shopping-basket", "imageURL": "https://graph.facebook.com/ULesCommercants/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2529029", "shop": "convenience"}, "addTags": {"brand": "Utile", "brand:wikidata": "Q2529029", "brand:wikipedia": "en:Système U", "name": "Utile", "shop": "convenience"}, "countryCodes": ["fr"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/convenience/VinMart+": {"name": "VinMart+", "icon": "fas-shopping-basket", "imageURL": "https://graph.facebook.com/sieuthivinmart/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q60245505", "shop": "convenience"}, "addTags": {"brand": "VinMart", "brand:wikidata": "Q60245505", "brand:wikipedia": "vi:VinMart", "name": "VinMart+", "shop": "convenience"}, "countryCodes": ["vn"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -3689,6 +3824,8 @@ "shop/convenience/ВкусВилл": {"name": "ВкусВилл", "icon": "fas-shopping-basket", "imageURL": "https://graph.facebook.com/vkusvill.ru/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q57271676", "shop": "convenience"}, "addTags": {"brand": "ВкусВилл", "brand:wikidata": "Q57271676", "brand:wikipedia": "ru:Вкусвилл", "name": "ВкусВилл", "shop": "convenience"}, "countryCodes": ["ru"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/convenience/Гроздь": {"name": "Гроздь", "icon": "fas-shopping-basket", "imageURL": "https://graph.facebook.com/grozdmag/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q21638412", "shop": "convenience"}, "addTags": {"brand": "Гроздь", "brand:wikidata": "Q21638412", "brand:wikipedia": "ru:Гроздь (сеть магазинов)", "name": "Гроздь", "shop": "convenience"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/convenience/Доброном": {"name": "Доброном", "icon": "fas-shopping-basket", "imageURL": "https://graph.facebook.com/Eurooptby/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2565040", "shop": "convenience"}, "addTags": {"brand": "Доброном", "brand:wikidata": "Q2565040", "brand:wikipedia": "be:Eurotorg", "name": "Доброном", "shop": "convenience"}, "countryCodes": ["by", "ru"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/convenience/Евроопт Market": {"name": "Евроопт Market", "icon": "fas-shopping-basket", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q65455869", "shop": "convenience"}, "addTags": {"brand": "Евроопт Market", "brand:wikidata": "Q65455869", "name": "Евроопт Market", "shop": "convenience"}, "countryCodes": ["by"], "terms": ["Евроопт Маркет"], "matchScore": 2, "suggestion": true}, + "shop/convenience/Евроопт Минимаркет": {"name": "Евроопт Минимаркет", "icon": "fas-shopping-basket", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q65455911", "shop": "convenience"}, "addTags": {"brand": "Евроопт Минимаркет", "brand:wikidata": "Q65455911", "name": "Евроопт Минимаркет", "shop": "convenience"}, "countryCodes": ["by"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/convenience/Копейка": {"name": "Копейка", "icon": "fas-shopping-basket", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1783878", "shop": "convenience"}, "addTags": {"brand": "Копейка", "brand:en": "Kopeyka", "brand:wikidata": "Q1783878", "brand:wikipedia": "en:Kopeyka (supermarket)", "name": "Копейка", "name:en": "Kopeyka", "shop": "convenience"}, "countryCodes": ["by", "ru", "ua"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/convenience/Магнит": {"name": "Магнит", "icon": "fas-shopping-basket", "imageURL": "https://graph.facebook.com/magnitretail/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q940518", "shop": "convenience"}, "addTags": {"brand": "Магнит", "brand:en": "Magnit", "brand:wikidata": "Q940518", "brand:wikipedia": "ru:Магнит (сеть магазинов)", "name": "Магнит", "name:en": "Magnit", "shop": "convenience"}, "terms": ["магнит у дома"], "matchScore": 2, "suggestion": true}, "shop/convenience/Мария-Ра": {"name": "Мария-Ра", "icon": "fas-shopping-basket", "imageURL": "https://graph.facebook.com/mariarashop/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4281631", "shop": "convenience"}, "addTags": {"brand": "Мария-Ра", "brand:wikidata": "Q4281631", "brand:wikipedia": "ru:Мария-Ра", "name": "Мария-Ра", "shop": "convenience"}, "countryCodes": ["ru"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -3749,10 +3886,13 @@ "shop/craft/Hobby Lobby": {"name": "Hobby Lobby", "icon": "fas-palette", "imageURL": "https://graph.facebook.com/HobbyLobby/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5874938", "shop": "craft"}, "addTags": {"brand": "Hobby Lobby", "brand:wikidata": "Q5874938", "brand:wikipedia": "en:Hobby Lobby", "name": "Hobby Lobby", "shop": "craft"}, "countryCodes": ["in", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/craft/Hobbycraft": {"name": "Hobbycraft", "icon": "fas-palette", "imageURL": "https://graph.facebook.com/HobbycraftUK/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q16984508", "shop": "craft"}, "addTags": {"brand": "Hobbycraft", "brand:wikidata": "Q16984508", "brand:wikipedia": "en:Hobbycraft", "name": "Hobbycraft", "shop": "craft"}, "countryCodes": ["gb"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/craft/Jo-Ann": {"name": "Jo-Ann", "icon": "fas-palette", "imageURL": "https://graph.facebook.com/JoAnn/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6203968", "shop": "craft"}, "addTags": {"brand": "Jo-Ann", "brand:wikidata": "Q6203968", "brand:wikipedia": "en:Jo-Ann Stores", "name": "Jo-Ann", "shop": "craft"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, - "shop/craft/Michaels": {"name": "Michaels", "icon": "fas-palette", "imageURL": "https://graph.facebook.com/Michaels/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6835667", "shop": "craft"}, "addTags": {"brand": "Michaels", "brand:wikidata": "Q6835667", "brand:wikipedia": "en:Michaels", "name": "Michaels", "shop": "craft"}, "countryCodes": ["ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/craft/Michaels": {"name": "Michaels", "icon": "fas-palette", "imageURL": "https://graph.facebook.com/Michaels/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6835667", "shop": "craft"}, "addTags": {"brand": "Michaels", "brand:wikidata": "Q6835667", "name": "Michaels", "shop": "craft"}, "countryCodes": ["ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/craft/Woodcraft": {"name": "Woodcraft", "icon": "fas-palette", "imageURL": "https://graph.facebook.com/WoodcraftWoodworking/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q22026341", "shop": "craft"}, "addTags": {"brand": "Woodcraft", "brand:wikidata": "Q22026341", "brand:wikipedia": "en:Woodcraft Supply", "name": "Woodcraft", "shop": "craft"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/deli/ほっともっと": {"name": "ほっともっと", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/hottomotto/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q10850949", "shop": "deli"}, "addTags": {"brand": "ほっともっと", "brand:en": "Hotto Motto", "brand:ja": "ほっともっと", "brand:wikidata": "Q10850949", "brand:wikipedia": "ja:ほっともっと", "name": "ほっともっと", "name:en": "Hotto Motto", "name:ja": "ほっともっと", "shop": "deli"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/deli/京樽": {"name": "京樽", "icon": "maki-restaurant", "imageURL": "https://graph.facebook.com/kyotaru.sushi/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11374503", "shop": "deli"}, "addTags": {"brand": "京樽", "brand:en": "Kyotaru", "brand:ja": "京樽", "brand:wikidata": "Q11374503", "brand:wikipedia": "ja:京樽", "name": "京樽", "name:en": "Kyotaru", "name:ja": "京樽", "shop": "deli"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/department_store/Barneys New York": {"name": "Barneys New York", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/BarneysNY/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q59465", "shop": "department_store"}, "addTags": {"brand": "Barneys New York", "brand:wikidata": "Q59465", "brand:wikipedia": "en:Barneys New York", "name": "Barneys New York", "shop": "department_store"}, "countryCodes": ["us"], "terms": ["barneys"], "matchScore": 2, "suggestion": true}, + "shop/department_store/Bealls (Florida-based)": {"name": "Bealls (Florida-based)", "icon": "maki-shop", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FBealls%20inc%20logob.jpg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4876153", "shop": "department_store"}, "addTags": {"brand": "Bealls", "brand:wikidata": "Q4876153", "brand:wikipedia": "en:Bealls (Florida)", "name": "Bealls", "shop": "department_store"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/department_store/Bealls (Texas-based )": {"name": "Bealls (Texas-based )", "icon": "maki-shop", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4876156", "shop": "department_store"}, "addTags": {"brand": "Bealls", "brand:wikidata": "Q4876156", "brand:wikipedia": "en:Bealls (Texas)", "name": "Bealls", "shop": "department_store"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/department_store/Belk": {"name": "Belk", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/Belk/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q127428", "shop": "department_store"}, "addTags": {"brand": "Belk", "brand:wikidata": "Q127428", "brand:wikipedia": "en:Belk", "name": "Belk", "shop": "department_store"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/department_store/Bi-Mart": {"name": "Bi-Mart", "icon": "maki-shop", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FBi-Mart.svg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4902331", "shop": "department_store"}, "addTags": {"brand": "Bi-Mart", "brand:wikidata": "Q4902331", "brand:wikipedia": "en:Bi-Mart", "name": "Bi-Mart", "shop": "department_store"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/department_store/Big Lots": {"name": "Big Lots", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/biglots/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4905973", "shop": "department_store"}, "addTags": {"brand": "Big Lots", "brand:wikidata": "Q4905973", "brand:wikipedia": "en:Big Lots", "name": "Big Lots", "shop": "department_store"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -3775,16 +3915,16 @@ "shop/department_store/Havan": {"name": "Havan", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/Havanoficial/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q61968827", "shop": "department_store"}, "addTags": {"brand": "Havan", "brand:wikidata": "Q61968827", "name": "Havan", "shop": "department_store"}, "countryCodes": ["br"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/department_store/Hudson's Bay": {"name": "Hudson's Bay", "icon": "maki-shop", "imageURL": "https://pbs.twimg.com/profile_images/1101488235371479041/QIHGzj4I_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q641129", "shop": "department_store"}, "addTags": {"alt_name": "The Bay", "brand": "Hudson's Bay", "brand:wikidata": "Q641129", "brand:wikipedia": "en:Hudson's Bay (retailer)", "name": "Hudson's Bay", "shop": "department_store"}, "countryCodes": ["ca", "nl"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/department_store/JCPenney": {"name": "JCPenney", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/jcp/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q920037", "shop": "department_store"}, "addTags": {"brand": "JCPenney", "brand:wikidata": "Q920037", "brand:wikipedia": "en:J. C. Penney", "name": "JCPenney", "shop": "department_store"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, - "shop/department_store/John Lewis": {"name": "John Lewis", "icon": "maki-shop", "imageURL": "https://pbs.twimg.com/profile_images/1144621972669763585/GG6RGijn_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1918981", "shop": "department_store"}, "addTags": {"brand": "John Lewis", "brand:wikidata": "Q1918981", "brand:wikipedia": "en:John Lewis & Partners", "name": "John Lewis", "shop": "department_store"}, "countryCodes": ["gb"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/department_store/John Lewis": {"name": "John Lewis", "icon": "maki-shop", "imageURL": "https://pbs.twimg.com/profile_images/1148531679776202752/7LP87JDn_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1918981", "shop": "department_store"}, "addTags": {"brand": "John Lewis", "brand:wikidata": "Q1918981", "brand:wikipedia": "en:John Lewis & Partners", "name": "John Lewis", "shop": "department_store"}, "countryCodes": ["gb"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/department_store/Karstadt": {"name": "Karstadt", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/karstadt1881/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q182910", "shop": "department_store"}, "addTags": {"brand": "Karstadt", "brand:wikidata": "Q182910", "brand:wikipedia": "en:Karstadt", "name": "Karstadt", "shop": "department_store"}, "countryCodes": ["de"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/department_store/Kmart (Australia)": {"name": "Kmart (Australia)", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/KmartAustralia/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6421682", "shop": "department_store"}, "addTags": {"brand": "Kmart", "brand:wikidata": "Q6421682", "brand:wikipedia": "en:Kmart Australia", "name": "Kmart", "shop": "department_store"}, "countryCodes": ["au"], "terms": [], "matchScore": 2, "suggestion": true}, - "shop/department_store/Kmart (USA)": {"name": "Kmart (USA)", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/kmart/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1753080", "shop": "department_store"}, "addTags": {"brand": "Kmart", "brand:wikidata": "Q1753080", "brand:wikipedia": "en:Kmart", "name": "Kmart", "shop": "department_store"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/department_store/Kmart (USA)": {"name": "Kmart (USA)", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/kmart/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1753080", "shop": "department_store"}, "addTags": {"brand": "Kmart", "brand:wikidata": "Q1753080", "brand:wikipedia": "en:Kmart", "name": "Kmart", "shop": "department_store"}, "countryCodes": ["us"], "terms": ["k-mart"], "matchScore": 2, "suggestion": true}, "shop/department_store/Kohl's": {"name": "Kohl's", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/kohls/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q967265", "shop": "department_store"}, "addTags": {"brand": "Kohl's", "brand:wikidata": "Q967265", "brand:wikipedia": "en:Kohl's", "name": "Kohl's", "shop": "department_store"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/department_store/Lojas Americanas": {"name": "Lojas Americanas", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/lojasamericanas/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3064093", "shop": "department_store"}, "addTags": {"brand": "Lojas Americanas", "brand:wikidata": "Q3064093", "brand:wikipedia": "en:Lojas Americanas", "name": "Lojas Americanas", "shop": "department_store"}, "countryCodes": ["br"], "terms": [], "matchScore": 2, "suggestion": true}, - "shop/department_store/Lord & Taylor": {"name": "Lord & Taylor", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/lordandtaylor/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2749082", "shop": "department_store"}, "addTags": {"brand": "Lord & Taylor", "brand:wikidata": "Q2749082", "brand:wikipedia": "en:Lord & Taylor", "name": "Lord & Taylor", "shop": "department_store"}, "countryCodes": ["us"], "terms": ["lord and taylor"], "matchScore": 2, "suggestion": true}, + "shop/department_store/Lord & Taylor": {"name": "Lord & Taylor", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/lordandtaylor/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2749082", "shop": "department_store"}, "addTags": {"brand": "Lord & Taylor", "brand:wikidata": "Q2749082", "brand:wikipedia": "en:Lord & Taylor", "name": "Lord & Taylor", "shop": "department_store"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/department_store/Lotte Department Store": {"name": "Lotte Department Store", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/LOTTEshopping/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q489905", "shop": "department_store"}, "addTags": {"brand": "Lotte Department Store", "brand:wikidata": "Q489905", "brand:wikipedia": "en:Lotte Department Store", "name": "Lotte Department Store", "shop": "department_store"}, "terms": ["lotte"], "matchScore": 2, "suggestion": true}, "shop/department_store/Macy's": {"name": "Macy's", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/Macys/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q629269", "shop": "department_store"}, "addTags": {"brand": "Macy's", "brand:wikidata": "Q629269", "brand:wikipedia": "en:Macy's", "name": "Macy's", "shop": "department_store"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, - "shop/department_store/Marks & Spencer": {"name": "Marks & Spencer", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/marksandspencerrussia/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q714491", "shop": "department_store"}, "addTags": {"brand": "Marks & Spencer", "brand:wikidata": "Q714491", "brand:wikipedia": "en:Marks & Spencer", "name": "Marks & Spencer", "shop": "department_store"}, "countryCodes": ["gb", "gr", "ie"], "terms": ["M & S", "marks and spencer"], "matchScore": 2, "suggestion": true}, + "shop/department_store/Marks & Spencer": {"name": "Marks & Spencer", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/marksandspencerrussia/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q714491", "shop": "department_store"}, "addTags": {"brand": "Marks & Spencer", "brand:wikidata": "Q714491", "brand:wikipedia": "en:Marks & Spencer", "name": "Marks & Spencer", "shop": "department_store"}, "countryCodes": ["gb", "gr", "ie"], "terms": ["m and s"], "matchScore": 2, "suggestion": true}, "shop/department_store/Marshalls": {"name": "Marshalls", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/Marshalls/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q15903261", "shop": "department_store"}, "addTags": {"brand": "Marshalls", "brand:wikidata": "Q15903261", "brand:wikipedia": "en:Marshalls", "name": "Marshalls", "shop": "department_store"}, "countryCodes": ["ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/department_store/Muji": {"name": "Muji", "icon": "maki-shop", "imageURL": "https://pbs.twimg.com/profile_images/2779266335/6fbe4ceb685984dbe3a149bd94043e80_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q708789", "shop": "department_store"}, "addTags": {"brand": "Muji", "brand:en": "Muji", "brand:ja": "無印良品", "brand:wikidata": "Q708789", "brand:wikipedia": "en:Muji", "name": "Muji", "name:en": "Muji", "name:ja": "無印良品", "shop": "department_store"}, "countryCodes": ["it"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/department_store/Myer": {"name": "Myer", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/myer/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1110323", "shop": "department_store"}, "addTags": {"brand": "Myer", "brand:wikidata": "Q1110323", "brand:wikipedia": "en:Myer", "name": "Myer", "shop": "department_store"}, "countryCodes": ["au"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -3849,6 +3989,7 @@ "shop/doityourself/Sodimac": {"name": "Sodimac", "icon": "temaki-tools", "imageURL": "https://graph.facebook.com/homecenter/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7553274", "shop": "doityourself"}, "addTags": {"brand": "Sodimac", "brand:wikidata": "Q7553274", "brand:wikipedia": "es:Sodimac", "name": "Sodimac", "shop": "doityourself"}, "terms": ["sodimac constructor"], "matchScore": 2, "suggestion": true}, "shop/doityourself/Tekzen": {"name": "Tekzen", "icon": "temaki-tools", "imageURL": "https://graph.facebook.com/tekzenturkiye/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q25475379", "shop": "doityourself"}, "addTags": {"brand": "Tekzen", "brand:wikidata": "Q25475379", "brand:wikipedia": "tr:Tekzen", "name": "Tekzen", "shop": "doityourself"}, "countryCodes": ["tr"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/doityourself/The Home Depot": {"name": "The Home Depot", "icon": "temaki-tools", "imageURL": "https://graph.facebook.com/homedepot/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q864407", "shop": "doityourself"}, "addTags": {"alt_name": "Home Depot", "brand": "The Home Depot", "brand:wikidata": "Q864407", "brand:wikipedia": "en:The Home Depot", "name": "The Home Depot", "shop": "doityourself"}, "countryCodes": ["ca", "mx", "us"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/doityourself/Toolstation": {"name": "Toolstation", "icon": "temaki-tools", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FToolstation-Logo.png&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7824103", "shop": "doityourself"}, "addTags": {"brand": "Toolstation", "brand:wikidata": "Q7824103", "brand:wikipedia": "en:Toolstation", "name": "Toolstation", "shop": "doityourself"}, "countryCodes": ["fr", "gb", "nl"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/doityourself/Toom Baumarkt": {"name": "Toom Baumarkt", "icon": "temaki-tools", "imageURL": "https://graph.facebook.com/192246064148765/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2442970", "shop": "doityourself"}, "addTags": {"brand": "Toom Baumarkt", "brand:wikidata": "Q2442970", "brand:wikipedia": "de:Toom Baumarkt", "name": "Toom Baumarkt", "shop": "doityourself"}, "countryCodes": ["de"], "terms": ["toom"], "matchScore": 2, "suggestion": true}, "shop/doityourself/Travis Perkins": {"name": "Travis Perkins", "icon": "temaki-tools", "imageURL": "https://graph.facebook.com/TravisPerkinsPlcUK/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2450664", "shop": "doityourself"}, "addTags": {"brand": "Travis Perkins", "brand:wikidata": "Q2450664", "brand:wikipedia": "en:Travis Perkins", "name": "Travis Perkins", "shop": "doityourself"}, "countryCodes": ["gb"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/doityourself/Weldom": {"name": "Weldom", "icon": "temaki-tools", "imageURL": "https://graph.facebook.com/Weldom/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q16683226", "shop": "doityourself"}, "addTags": {"brand": "Weldom", "brand:wikidata": "Q16683226", "brand:wikipedia": "fr:Weldom", "name": "Weldom", "shop": "doityourself"}, "countryCodes": ["fr"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -3864,7 +4005,7 @@ "shop/dry_cleaning/タカケンサンシャイン": {"name": "タカケンサンシャイン", "icon": "temaki-clothes_hanger", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11315914", "shop": "dry_cleaning"}, "addTags": {"brand": "タカケンサンシャイン", "brand:en": "Takaken Sunshine", "brand:ja": "タカケンサンシャイン", "brand:wikidata": "Q11315914", "brand:wikipedia": "ja:タカケンサンシャイン", "name": "タカケンサンシャイン", "name:en": "Takaken Sunshine", "name:ja": "タカケンサンシャイン", "shop": "dry_cleaning"}, "countryCodes": ["jp"], "terms": ["タカケンクリーング"], "matchScore": 2, "suggestion": true}, "shop/dry_cleaning/ホワイト急便": {"name": "ホワイト急便", "icon": "temaki-clothes_hanger", "imageURL": "https://graph.facebook.com/974471789387794/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11505557", "shop": "dry_cleaning"}, "addTags": {"brand": "ホワイト急便", "brand:en": "White Kyuubin", "brand:ja": "ホワイト急便", "brand:wikidata": "Q11505557", "brand:wikipedia": "ja:日本さわやかグループ", "name": "ホワイト急便", "name:en": "White Kyuubin", "name:ja": "ホワイト急便", "shop": "dry_cleaning"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/dry_cleaning/白洋舎": {"name": "白洋舎", "icon": "temaki-clothes_hanger", "imageURL": "https://graph.facebook.com/hakuyosha.jp/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11579995", "shop": "dry_cleaning"}, "addTags": {"brand": "白洋舎", "brand:en": "Hakuyosha", "brand:wikidata": "Q11579995", "brand:wikipedia": "ja:白洋舎", "name": "白洋舎", "name:en": "Hakuyosha", "shop": "dry_cleaning"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, - "shop/electronics/Apple Store": {"name": "Apple Store", "icon": "fas-plug", "imageURL": "https://graph.facebook.com/apple/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q421253", "shop": "electronics"}, "addTags": {"brand": "Apple Store", "brand:wikidata": "Q421253", "brand:wikipedia": "en:Apple Store", "name": "Apple Store", "shop": "electronics"}, "terms": [], "matchScore": 2, "suggestion": true}, + "shop/electronics/Apple Store": {"name": "Apple Store", "icon": "fas-plug", "imageURL": "https://graph.facebook.com/apple/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q421253", "shop": "electronics"}, "addTags": {"brand": "Apple Store", "brand:wikidata": "Q421253", "brand:wikipedia": "en:Apple Store", "name": "Apple Store", "shop": "electronics"}, "terms": ["apple"], "matchScore": 2, "suggestion": true}, "shop/electronics/Batteries Plus Bulbs": {"name": "Batteries Plus Bulbs", "icon": "fas-plug", "imageURL": "https://graph.facebook.com/BatteriesPlus/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q17005157", "shop": "electronics"}, "addTags": {"brand": "Batteries Plus Bulbs", "brand:wikidata": "Q17005157", "brand:wikipedia": "en:Batteries Plus Bulbs", "name": "Batteries Plus Bulbs", "shop": "electronics"}, "countryCodes": ["us"], "terms": ["batteries plus"], "matchScore": 2, "suggestion": true}, "shop/electronics/Best Buy": {"name": "Best Buy", "icon": "fas-plug", "imageURL": "https://graph.facebook.com/bestbuy/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q533415", "shop": "electronics"}, "addTags": {"brand": "Best Buy", "brand:wikidata": "Q533415", "brand:wikipedia": "en:Best Buy", "name": "Best Buy", "shop": "electronics"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/electronics/Boulanger": {"name": "Boulanger", "icon": "fas-plug", "imageURL": "https://graph.facebook.com/Boulanger.Electromenager.Multimedia/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2921695", "shop": "electronics"}, "addTags": {"brand": "Boulanger", "brand:wikidata": "Q2921695", "brand:wikipedia": "fr:Boulanger (entreprise)", "name": "Boulanger", "shop": "electronics"}, "countryCodes": ["fr"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -3922,11 +4063,14 @@ "shop/fashion_accessories/Jimmy Choo": {"name": "Jimmy Choo", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/JimmyChoo/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5213855", "shop": "fashion_accessories"}, "addTags": {"brand": "Jimmy Choo", "brand:wikidata": "Q5213855", "brand:wikipedia": "en:Jimmy Choo Ltd", "name": "Jimmy Choo", "shop": "fashion_accessories"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/fashion_accessories/Prada": {"name": "Prada", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/Prada/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q193136", "shop": "fashion_accessories"}, "addTags": {"brand": "Prada", "brand:wikidata": "Q193136", "brand:wikipedia": "en:Prada", "name": "Prada", "shop": "fashion_accessories"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/fashion_accessories/Salvatore Ferragamo": {"name": "Salvatore Ferragamo", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/SalvatoreFerragamo/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3946053", "shop": "fashion_accessories"}, "addTags": {"brand": "Salvatore Ferragamo", "brand:wikidata": "Q3946053", "brand:wikipedia": "en:Salvatore Ferragamo S.p.A.", "name": "Salvatore Ferragamo", "shop": "fashion_accessories"}, "terms": [], "matchScore": 2, "suggestion": true}, - "shop/fashion_accessories/Van Cleef & Arpels": {"name": "Van Cleef & Arpels", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/vancleef.arpels/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2708181", "shop": "fashion_accessories"}, "addTags": {"brand": "Van Cleef & Arpels", "brand:wikidata": "Q2708181", "brand:wikipedia": "en:Van Cleef & Arpels", "name": "Van Cleef & Arpels", "shop": "fashion_accessories"}, "terms": ["van cleef & arples", "van cleef and arpels", "van cleef and arples"], "matchScore": 2, "suggestion": true}, + "shop/fashion_accessories/Van Cleef & Arpels": {"name": "Van Cleef & Arpels", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/vancleef.arpels/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2708181", "shop": "fashion_accessories"}, "addTags": {"brand": "Van Cleef & Arpels", "brand:wikidata": "Q2708181", "brand:wikipedia": "en:Van Cleef & Arpels", "name": "Van Cleef & Arpels", "shop": "fashion_accessories"}, "terms": ["van cleef & arples"], "matchScore": 2, "suggestion": true}, "shop/florist/Blume 2000": {"name": "Blume 2000", "icon": "maki-florist", "imageURL": "https://graph.facebook.com/Blume2000.de/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q886166", "shop": "florist"}, "addTags": {"brand": "Blume 2000", "brand:wikidata": "Q886166", "brand:wikipedia": "de:Blume 2000", "name": "Blume 2000", "shop": "florist"}, "countryCodes": ["de"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/florist/Blumen Risse": {"name": "Blumen Risse", "icon": "maki-florist", "imageURL": "https://graph.facebook.com/BlumenRisse/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q886177", "shop": "florist"}, "addTags": {"brand": "Blumen Risse", "brand:wikidata": "Q886177", "brand:wikipedia": "de:Blumen Risse", "name": "Blumen Risse", "shop": "florist"}, "countryCodes": ["de"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/florist/Interflora": {"name": "Interflora", "icon": "maki-florist", "imageURL": "https://graph.facebook.com/Interflora.France/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q692179", "shop": "florist"}, "addTags": {"brand": "Interflora", "brand:wikidata": "Q692179", "brand:wikipedia": "en:Interflora", "name": "Interflora", "shop": "florist"}, "countryCodes": ["fr", "gb", "no", "se"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/florist/Monceau Fleurs": {"name": "Monceau Fleurs", "icon": "maki-florist", "imageURL": "https://graph.facebook.com/Monceau.Fleurs.France/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q17629431", "shop": "florist"}, "addTags": {"brand": "Monceau Fleurs", "brand:wikidata": "Q17629431", "brand:wikipedia": "fr:Emova Group", "name": "Monceau Fleurs", "shop": "florist"}, "countryCodes": ["be", "fr"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/frame/Aaron Brothers": {"name": "Aaron Brothers", "icon": "fas-vector-square", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q64979251", "shop": "frame"}, "addTags": {"brand": "Aaron Brothers", "brand:wikidata": "Q64979251", "name": "Aaron Brothers", "shop": "frame"}, "countryCodes": ["us"], "terms": ["aaron brothers art & framing", "aaron brothers custom framing"], "matchScore": 2, "suggestion": true}, + "shop/frozen_food/Dream Dinners": {"name": "Dream Dinners", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/DreamDinners/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5306355", "shop": "frozen_food"}, "addTags": {"brand": "Dream Dinners", "brand:wikidata": "Q5306355", "brand:wikipedia": "en:Dream Dinners", "name": "Dream Dinners", "opening_hours": "\"by appointment\"", "shop": "frozen_food"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/frozen_food/Iceland": {"name": "Iceland", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/icelandfoods/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q721810", "shop": "frozen_food"}, "addTags": {"brand": "Iceland", "brand:wikidata": "Q721810", "brand:wikipedia": "en:Iceland (supermarket)", "name": "Iceland", "shop": "frozen_food"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/frozen_food/Picard": {"name": "Picard", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/picardsurgeles/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3382454", "shop": "frozen_food"}, "addTags": {"brand": "Picard", "brand:wikidata": "Q3382454", "brand:wikipedia": "en:Picard Surgelés", "name": "Picard", "shop": "frozen_food"}, "countryCodes": ["fr"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/funeral_directors/PFG": {"name": "PFG", "icon": "maki-cemetery", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3396087", "shop": "funeral_directors"}, "addTags": {"brand": "PFG", "brand:wikidata": "Q3396087", "brand:wikipedia": "fr:Pompes funèbres générales", "name": "PFG", "official_name": "Pompes Funèbres Générales", "shop": "funeral_directors"}, "countryCodes": ["fr"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/funeral_directors/Roblot": {"name": "Roblot", "icon": "maki-cemetery", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q63247414", "shop": "funeral_directors"}, "addTags": {"brand": "Roblot", "brand:wikidata": "Q63247414", "name": "Roblot", "shop": "funeral_directors"}, "countryCodes": ["fr"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -3945,7 +4089,7 @@ "shop/furniture/But": {"name": "But", "icon": "fas-couch", "imageURL": "https://graph.facebook.com/but/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q18720442", "shop": "furniture"}, "addTags": {"brand": "But", "brand:wikidata": "Q18720442", "brand:wikipedia": "en:BUT (retailer)", "name": "But", "shop": "furniture"}, "countryCodes": ["fr"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/furniture/Cabinets To Go": {"name": "Cabinets To Go", "icon": "fas-couch", "imageURL": "https://graph.facebook.com/CabinetsToGo/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q25245346", "shop": "furniture"}, "addTags": {"brand": "Cabinets To Go", "brand:wikidata": "Q25245346", "brand:wikipedia": "en:Cabinets To Go", "name": "Cabinets To Go", "shop": "furniture"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/furniture/Conforama": {"name": "Conforama", "icon": "fas-couch", "imageURL": "https://graph.facebook.com/Conforama/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q541134", "shop": "furniture"}, "addTags": {"brand": "Conforama", "brand:wikidata": "Q541134", "brand:wikipedia": "en:Conforama", "name": "Conforama", "shop": "furniture"}, "countryCodes": ["ch", "es", "fr", "it"], "terms": [], "matchScore": 2, "suggestion": true}, - "shop/furniture/Crate & Barrel": {"name": "Crate & Barrel", "icon": "fas-couch", "imageURL": "https://graph.facebook.com/crateandbarrel/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5182604", "shop": "furniture"}, "addTags": {"brand": "Crate & Barrel", "brand:wikidata": "Q5182604", "brand:wikipedia": "en:Crate & Barrel", "name": "Crate & Barrel", "shop": "furniture"}, "countryCodes": ["us"], "terms": ["crate and barrel"], "matchScore": 2, "suggestion": true}, + "shop/furniture/Crate & Barrel": {"name": "Crate & Barrel", "icon": "fas-couch", "imageURL": "https://graph.facebook.com/crateandbarrel/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5182604", "shop": "furniture"}, "addTags": {"brand": "Crate & Barrel", "brand:wikidata": "Q5182604", "brand:wikipedia": "en:Crate & Barrel", "name": "Crate & Barrel", "shop": "furniture"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/furniture/DFS": {"name": "DFS", "icon": "fas-couch", "imageURL": "https://graph.facebook.com/DFSUK/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5204927", "shop": "furniture"}, "addTags": {"brand": "DFS", "brand:wikidata": "Q5204927", "brand:wikipedia": "en:DFS Furniture", "name": "DFS", "shop": "furniture"}, "countryCodes": ["gb"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/furniture/Dänisches Bettenlager": {"name": "Dänisches Bettenlager", "icon": "fas-couch", "imageURL": "https://graph.facebook.com/JYSK.dk/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q138913", "shop": "furniture"}, "addTags": {"brand": "Dänisches Bettenlager", "brand:wikidata": "Q138913", "brand:wikipedia": "en:Jysk (store)", "name": "Dänisches Bettenlager", "shop": "furniture"}, "countryCodes": ["at", "de"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/furniture/Ethan Allen": {"name": "Ethan Allen", "icon": "fas-couch", "imageURL": "https://graph.facebook.com/ethanallendesign/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5402870", "shop": "furniture"}, "addTags": {"brand": "Ethan Allen", "brand:wikidata": "Q5402870", "brand:wikipedia": "en:Ethan Allen (furniture company)", "name": "Ethan Allen", "shop": "furniture"}, "countryCodes": ["ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -3957,6 +4101,7 @@ "shop/furniture/IKEA": {"name": "IKEA", "icon": "fas-couch", "imageURL": "https://graph.facebook.com/IKEA/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q54078", "shop": "furniture"}, "addTags": {"brand": "IKEA", "brand:wikidata": "Q54078", "brand:wikipedia": "en:IKEA", "name": "IKEA", "shop": "furniture"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/furniture/Isku": {"name": "Isku", "icon": "fas-couch", "imageURL": "https://graph.facebook.com/iskuinteriorofficial/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11865127", "shop": "furniture"}, "addTags": {"brand": "Isku", "brand:wikidata": "Q11865127", "brand:wikipedia": "fi:Isku (yritys)", "name": "Isku", "shop": "furniture"}, "countryCodes": ["fi"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/furniture/JYSK": {"name": "JYSK", "icon": "fas-couch", "imageURL": "https://graph.facebook.com/JYSK.dk/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q138913", "shop": "furniture"}, "addTags": {"brand": "JYSK", "brand:wikidata": "Q138913", "brand:wikipedia": "en:Jysk (store)", "name": "JYSK", "shop": "furniture"}, "terms": [], "matchScore": 2, "suggestion": true}, + "shop/furniture/Jerome’s Furniture": {"name": "Jerome’s Furniture", "icon": "fas-couch", "imageURL": "https://graph.facebook.com/JeromesFurniture/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q16997693", "shop": "furniture"}, "addTags": {"brand": "Jerome’s Furniture", "brand:wikidata": "Q16997693", "brand:wikipedia": "en:Jerome's", "name": "Jerome’s Furniture", "shop": "furniture", "short_name": "Jerome’s"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/furniture/Kwantum": {"name": "Kwantum", "icon": "fas-couch", "imageURL": "https://graph.facebook.com/KwantumNL/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2262591", "shop": "furniture"}, "addTags": {"brand": "Kwantum", "brand:wikidata": "Q2262591", "brand:wikipedia": "nl:Kwantum (winkelketen)", "name": "Kwantum", "shop": "furniture"}, "countryCodes": ["nl"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/furniture/La-Z-Boy": {"name": "La-Z-Boy", "icon": "fas-couch", "imageURL": "https://graph.facebook.com/lazboy/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6391583", "shop": "furniture"}, "addTags": {"brand": "La-Z-Boy", "brand:wikidata": "Q6391583", "brand:wikipedia": "en:La-Z-Boy", "name": "La-Z-Boy", "shop": "furniture"}, "countryCodes": ["ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/furniture/Leen Bakker": {"name": "Leen Bakker", "icon": "fas-couch", "imageURL": "https://graph.facebook.com/leenbakker/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3333662", "shop": "furniture"}, "addTags": {"brand": "Leen Bakker", "brand:wikidata": "Q3333662", "brand:wikipedia": "nl:Leen Bakker", "name": "Leen Bakker", "shop": "furniture"}, "countryCodes": ["nl"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -3982,6 +4127,8 @@ "shop/garden_centre/Point Vert": {"name": "Point Vert", "icon": "maki-garden-centre", "imageURL": "https://graph.facebook.com/444739795728913/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q16661975", "shop": "garden_centre"}, "addTags": {"brand": "Point Vert", "brand:wikidata": "Q16661975", "brand:wikipedia": "fr:Magasin vert", "name": "Point Vert", "shop": "garden_centre"}, "countryCodes": ["fr"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/garden_centre/Truffaut": {"name": "Truffaut", "icon": "maki-garden-centre", "imageURL": "https://graph.facebook.com/truffautfr/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3162640", "shop": "garden_centre"}, "addTags": {"brand": "Truffaut", "brand:wikidata": "Q3162640", "brand:wikipedia": "fr:Jardineries Truffaut", "name": "Truffaut", "shop": "garden_centre"}, "countryCodes": ["fr"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/gas/Airgas": {"name": "Airgas", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/airgasusa/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q80635", "shop": "gas"}, "addTags": {"brand": "Airgas", "brand:wikidata": "Q80635", "brand:wikipedia": "en:Airgas", "name": "Airgas", "shop": "gas"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/gas/AmeriGas": {"name": "AmeriGas", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/AmeriGas/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q23130318", "shop": "gas"}, "addTags": {"brand": "AmeriGas", "brand:wikidata": "Q23130318", "fuel:lpg": "yes", "name": "AmeriGas", "shop": "gas"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/gas/Ferrellgas": {"name": "Ferrellgas", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/Ferrellgas/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5445299", "shop": "gas"}, "addTags": {"brand": "Ferrellgas", "brand:wikidata": "Q5445299", "fuel:lpg": "yes", "name": "Ferrellgas", "shop": "gas"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/gift/American Greetings": {"name": "American Greetings", "icon": "maki-gift", "imageURL": "https://graph.facebook.com/AmericanGreetings/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q464767", "shop": "gift"}, "addTags": {"brand": "American Greetings", "brand:wikidata": "Q464767", "brand:wikipedia": "en:American Greetings", "name": "American Greetings", "shop": "gift"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/gift/Card Factory": {"name": "Card Factory", "icon": "maki-gift", "imageURL": "https://graph.facebook.com/cardfactoryplc/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5038192", "shop": "gift"}, "addTags": {"brand": "Card Factory", "brand:wikidata": "Q5038192", "brand:wikipedia": "en:Card Factory", "name": "Card Factory", "shop": "gift"}, "countryCodes": ["gb", "im"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/gift/Carlton Cards": {"name": "Carlton Cards", "icon": "maki-gift", "imageURL": "https://graph.facebook.com/Carltoncards.ca/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5042968", "shop": "gift"}, "addTags": {"brand": "Carlton Cards", "brand:wikidata": "Q5042968", "brand:wikipedia": "en:Carlton Cards", "name": "Carlton Cards", "shop": "gift"}, "countryCodes": ["ca"], "terms": ["carlton"], "matchScore": 2, "suggestion": true}, @@ -3992,6 +4139,7 @@ "shop/gift/Hallmark": {"name": "Hallmark", "icon": "maki-gift", "imageURL": "https://graph.facebook.com/Hallmark/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1521910", "shop": "gift"}, "addTags": {"brand": "Hallmark", "brand:wikidata": "Q1521910", "brand:wikipedia": "en:Hallmark Cards", "name": "Hallmark", "shop": "gift"}, "countryCodes": ["ca", "gb", "us"], "terms": ["hallmark gold crown"], "matchScore": 2, "suggestion": true}, "shop/gift/Nanu-Nana": {"name": "Nanu-Nana", "icon": "maki-gift", "imageURL": "https://graph.facebook.com/NanuNanaDE/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1720245", "shop": "gift"}, "addTags": {"brand": "Nanu-Nana", "brand:wikidata": "Q1720245", "brand:wikipedia": "de:Nanu-Nana", "name": "Nanu-Nana", "shop": "gift"}, "countryCodes": ["at", "de"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/gift/Papyrus": {"name": "Papyrus", "icon": "maki-gift", "imageURL": "https://graph.facebook.com/papyrus/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q28222692", "shop": "gift"}, "addTags": {"brand": "Papyrus", "brand:wikidata": "Q28222692", "brand:wikipedia": "en:Papyrus (company)", "name": "Papyrus", "shop": "gift"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/gift/Showcase": {"name": "Showcase", "icon": "maki-gift", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7503163", "shop": "gift"}, "addTags": {"brand": "Showcase", "brand:wikidata": "Q7503163", "brand:wikipedia": "en:Showcase (retailer)", "name": "Showcase", "shop": "gift"}, "countryCodes": ["ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/gift/Spencer's": {"name": "Spencer's", "icon": "maki-gift", "imageURL": "https://graph.facebook.com/spencers/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7576055", "shop": "gift"}, "addTags": {"brand": "Spencer Gifts", "brand:wikidata": "Q7576055", "brand:wikipedia": "en:Spencer Gifts", "name": "Spencer's", "official_name": "Spencer Gifts", "shop": "gift"}, "countryCodes": ["ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/gift/Things Remembered": {"name": "Things Remembered", "icon": "maki-gift", "imageURL": "https://graph.facebook.com/thingsremembered/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q54958287", "shop": "gift"}, "addTags": {"brand": "Things Remembered", "brand:wikidata": "Q54958287", "brand:wikipedia": "en:Things Remembered", "name": "Things Remembered", "shop": "gift"}, "countryCodes": ["ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/greengrocer/Produce Junction": {"name": "Produce Junction", "icon": "fas-carrot", "imageURL": "https://graph.facebook.com/ProduceJunction/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q60583541", "shop": "greengrocer"}, "addTags": {"brand": "Produce Junction", "brand:wikidata": "Q60583541", "name": "Produce Junction", "shop": "greengrocer"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -4011,21 +4159,22 @@ "shop/hairdresser/Klipp": {"name": "Klipp", "icon": "temaki-beauty_salon", "imageURL": "https://graph.facebook.com/klipp.frisoer/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1737304", "shop": "hairdresser"}, "addTags": {"brand": "Klipp", "brand:wikidata": "Q1737304", "brand:wikipedia": "de:Klipp Frisör", "name": "Klipp", "shop": "hairdresser"}, "countryCodes": ["at"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/hairdresser/Mastercuts": {"name": "Mastercuts", "icon": "temaki-beauty_salon", "imageURL": "https://graph.facebook.com/MasterCuts/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q64026258", "shop": "hairdresser"}, "addTags": {"brand": "Mastercuts", "brand:wikidata": "Q64026258", "name": "Mastercuts", "shop": "hairdresser"}, "countryCodes": ["ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/hairdresser/Saint Algue": {"name": "Saint Algue", "icon": "temaki-beauty_salon", "imageURL": "https://graph.facebook.com/saint.algue.officiel/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62973210", "shop": "hairdresser"}, "addTags": {"brand": "Saint Algue", "brand:wikidata": "Q62973210", "name": "Saint Algue", "shop": "hairdresser"}, "terms": [], "matchScore": 2, "suggestion": true}, - "shop/hairdresser/Sport Clips": {"name": "Sport Clips", "icon": "temaki-beauty_salon", "imageURL": "https://graph.facebook.com/SportClipsHaircuts/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7579310", "shop": "hairdresser"}, "addTags": {"brand": "Sport Clips", "brand:wikidata": "Q7579310", "name": "Sport Clips", "shop": "hairdresser"}, "countryCodes": ["ca", "us"], "terms": ["sport clips haircuts"], "matchScore": 2, "suggestion": true}, + "shop/hairdresser/Sport Clips": {"name": "Sport Clips", "icon": "temaki-beauty_salon", "imageURL": "https://graph.facebook.com/SportClipsHaircuts/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7579310", "shop": "hairdresser"}, "addTags": {"brand": "Sport Clips", "brand:wikidata": "Q7579310", "name": "Sport Clips", "shop": "hairdresser"}, "countryCodes": ["ca", "us"], "terms": ["sport clips haircuts", "sports clips"], "matchScore": 2, "suggestion": true}, "shop/hairdresser/Super Cut": {"name": "Super Cut", "icon": "temaki-beauty_salon", "imageURL": "https://graph.facebook.com/supercut.friseur/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q64139077", "shop": "hairdresser"}, "addTags": {"brand": "Super Cut", "brand:wikidata": "Q64139077", "name": "Super Cut", "shop": "hairdresser"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/hairdresser/Supercuts": {"name": "Supercuts", "icon": "temaki-beauty_salon", "imageURL": "https://graph.facebook.com/Supercuts/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7643239", "shop": "hairdresser"}, "addTags": {"brand": "Supercuts", "brand:wikidata": "Q7643239", "brand:wikipedia": "en:Supercuts", "name": "Supercuts", "shop": "hairdresser"}, "countryCodes": ["ca", "gb", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/hairdresser/Tchip": {"name": "Tchip", "icon": "temaki-beauty_salon", "imageURL": "https://graph.facebook.com/TCHIP.Coiffure.Officiel/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62871250", "shop": "hairdresser"}, "addTags": {"brand": "Tchip", "brand:wikidata": "Q62871250", "name": "Tchip", "shop": "hairdresser"}, "countryCodes": ["fr"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/hairdresser/The Salon at Ulta Beauty": {"name": "The Salon at Ulta Beauty", "icon": "temaki-beauty_salon", "imageURL": "https://graph.facebook.com/UltaBeauty/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7880076", "shop": "hairdresser"}, "addTags": {"alt_name": "Ulta Salon", "brand": "Ulta Beauty", "brand:wikidata": "Q7880076", "brand:wikipedia": "en:Ulta Beauty", "name": "The Salon at Ulta Beauty", "shop": "hairdresser"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/hairdresser/Toni & Guy": {"name": "Toni & Guy", "icon": "temaki-beauty_salon", "imageURL": "https://graph.facebook.com/toniandguyworld/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q324784", "shop": "hairdresser"}, "addTags": {"brand": "Toni & Guy", "brand:wikidata": "Q324784", "brand:wikipedia": "en:Toni & Guy", "name": "Toni & Guy", "shop": "hairdresser"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/hairdresser/Top Hair": {"name": "Top Hair", "icon": "temaki-beauty_salon", "imageURL": "https://graph.facebook.com/Mein.Friseur.Top.Hair/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62523343", "shop": "hairdresser"}, "addTags": {"brand": "Top Hair", "brand:wikidata": "Q62523343", "name": "Top Hair", "shop": "hairdresser"}, "countryCodes": ["de"], "terms": [], "matchScore": 2, "suggestion": true}, - "shop/hardware/Harbor Freight Tools": {"name": "Harbor Freight Tools", "icon": "temaki-tools", "imageURL": "https://graph.facebook.com/harbor.f.tools/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5654601", "shop": "hardware"}, "addTags": {"brand": "Harbor Freight Tools", "brand:wikidata": "Q5654601", "brand:wikipedia": "en:Harbor Freight Tools", "name": "Harbor Freight Tools", "shop": "hardware"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/hardware/220 вольт": {"name": "220 вольт", "icon": "temaki-tools", "imageURL": "https://graph.facebook.com/likevolt/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q18635304", "shop": "hardware"}, "addTags": {"brand": "220 вольт", "brand:en": "220 Volt", "brand:ru": "220 вольт", "brand:wikidata": "Q18635304", "brand:wikipedia": "ru:220 Вольт (компания)", "name": "220 вольт", "name:en": "220 Volt", "name:ru": "220 вольт", "shop": "hardware"}, "countryCodes": ["by", "ru", "ua"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/hardware/Harbor Freight Tools": {"name": "Harbor Freight Tools", "icon": "temaki-tools", "imageURL": "https://pbs.twimg.com/profile_images/1145780174190858241/HTbFX01b_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5654601", "shop": "hardware"}, "addTags": {"brand": "Harbor Freight Tools", "brand:wikidata": "Q5654601", "brand:wikipedia": "en:Harbor Freight Tools", "name": "Harbor Freight Tools", "shop": "hardware"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/hardware/Home Hardware": {"name": "Home Hardware", "icon": "temaki-tools", "imageURL": "https://graph.facebook.com/homehardwarestores/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3139611", "shop": "hardware"}, "addTags": {"brand": "Home Hardware", "brand:wikidata": "Q3139611", "brand:wikipedia": "en:Home Hardware", "name": "Home Hardware", "shop": "hardware"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/hardware/K-Rauta": {"name": "K-Rauta", "icon": "temaki-tools", "imageURL": "https://graph.facebook.com/KRautaSuomi/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4206187", "shop": "hardware"}, "addTags": {"brand": "K-Rauta", "brand:wikidata": "Q4206187", "brand:wikipedia": "fi:K-Rauta", "name": "K-Rauta", "shop": "hardware"}, "countryCodes": ["fi"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/hardware/Kodin Terra": {"name": "Kodin Terra", "icon": "temaki-tools", "imageURL": "https://graph.facebook.com/KodinTerraPori/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11872038", "shop": "hardware"}, "addTags": {"brand": "Kodin Terra", "brand:wikidata": "Q11872038", "brand:wikipedia": "fi:Kodin Terra", "name": "Kodin Terra", "shop": "hardware"}, "countryCodes": ["fi"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/hardware/True Value": {"name": "True Value", "icon": "temaki-tools", "imageURL": "https://graph.facebook.com/TrueValue/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7847545", "shop": "hardware"}, "addTags": {"brand": "True Value", "brand:wikidata": "Q7847545", "brand:wikipedia": "en:True Value", "name": "True Value", "shop": "hardware"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/hardware/Würth": {"name": "Würth", "icon": "temaki-tools", "imageURL": "https://graph.facebook.com/Wuerth.Group/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q679750", "shop": "hardware"}, "addTags": {"brand": "Würth", "brand:wikidata": "Q679750", "brand:wikipedia": "de:Würth-Gruppe", "name": "Würth", "shop": "hardware"}, "countryCodes": ["be", "de", "fi", "fr", "it", "no"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/hardware/Мосхозторг": {"name": "Мосхозторг", "icon": "temaki-tools", "imageURL": "https://graph.facebook.com/MosHozTorg/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62499092", "shop": "hardware"}, "addTags": {"brand": "Мосхозторг", "brand:wikidata": "Q62499092", "name": "Мосхозторг", "shop": "hardware"}, "countryCodes": ["ru"], "terms": [], "matchScore": 2, "suggestion": true}, - "shop/health_food/Holland & Barrett": {"name": "Holland & Barrett", "icon": "maki-shop", "imageURL": "https://pbs.twimg.com/profile_images/1136291410636754944/XbHAPXKQ_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5880870", "shop": "health_food"}, "addTags": {"brand": "Holland & Barrett", "brand:wikidata": "Q5880870", "brand:wikipedia": "en:Holland & Barrett", "name": "Holland & Barrett", "shop": "health_food"}, "countryCodes": ["gb", "ie", "nl"], "terms": ["holland and barrett"], "matchScore": 2, "suggestion": true}, + "shop/health_food/Holland & Barrett": {"name": "Holland & Barrett", "icon": "maki-shop", "imageURL": "https://pbs.twimg.com/profile_images/1146032750463504384/jGVlI8rw_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5880870", "shop": "health_food"}, "addTags": {"brand": "Holland & Barrett", "brand:wikidata": "Q5880870", "brand:wikipedia": "en:Holland & Barrett", "name": "Holland & Barrett", "shop": "health_food"}, "countryCodes": ["gb", "ie", "nl"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/hearing_aids/Amplifon": {"name": "Amplifon", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/AmplifonGroupCareers/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q477222", "shop": "hearing_aids"}, "addTags": {"brand": "Amplifon", "brand:wikidata": "Q477222", "brand:wikipedia": "en:Amplifon", "name": "Amplifon", "shop": "hearing_aids"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/hearing_aids/Audika": {"name": "Audika", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/audikafrance/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2870745", "shop": "hearing_aids"}, "addTags": {"brand": "Audika", "brand:wikidata": "Q2870745", "brand:wikipedia": "fr:Audika", "name": "Audika", "shop": "hearing_aids"}, "countryCodes": ["ch", "fr"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/hearing_aids/Geers": {"name": "Geers", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/geers.hoerakustik/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1497707", "shop": "hearing_aids"}, "addTags": {"brand": "Geers", "brand:wikidata": "Q1497707", "brand:wikipedia": "de:Geers Hörakustik", "name": "Geers", "shop": "hearing_aids"}, "countryCodes": ["de", "pl"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -4036,7 +4185,7 @@ "shop/hifi/Bose": {"name": "Bose", "icon": "temaki-speaker", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FBose%20logo.svg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q328568", "shop": "hifi"}, "addTags": {"brand": "Bose", "brand:wikidata": "Q328568", "brand:wikipedia": "en:Bose Corporation", "name": "Bose", "shop": "hifi"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/hobby/アニメイト": {"name": "アニメイト", "icon": "fas-dragon", "imageURL": "https://pbs.twimg.com/profile_images/1098862296787382272/pLo1nSbN_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1041890", "shop": "hobby"}, "addTags": {"brand": "アニメイト", "brand:en": "Animate", "brand:ja": "アニメイト", "brand:wikidata": "Q1041890", "brand:wikipedia": "ja:アニメイト", "name": "アニメイト", "name:en": "Animate", "name:ja": "アニメイト", "shop": "hobby"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/houseware/At Home": {"name": "At Home", "icon": "fas-blender", "imageURL": "https://graph.facebook.com/AtHomeStores/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5522290", "shop": "houseware"}, "addTags": {"brand": "At Home (store)", "brand:wikidata": "Q5522290", "name": "At Home", "shop": "houseware"}, "countryCodes": ["us"], "terms": ["garden ridge"], "matchScore": 2, "suggestion": true}, - "shop/houseware/Bed Bath & Beyond": {"name": "Bed Bath & Beyond", "icon": "fas-blender", "imageURL": "https://graph.facebook.com/BedBathAndBeyond/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q813782", "shop": "houseware"}, "addTags": {"brand": "Bed Bath & Beyond", "brand:wikidata": "Q813782", "brand:wikipedia": "en:Bed Bath & Beyond", "name": "Bed Bath & Beyond", "shop": "houseware"}, "countryCodes": ["ca", "mx", "nz", "us"], "terms": ["bed bath and beyond"], "matchScore": 2, "suggestion": true}, + "shop/houseware/Bed Bath & Beyond": {"name": "Bed Bath & Beyond", "icon": "fas-blender", "imageURL": "https://graph.facebook.com/BedBathAndBeyond/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q813782", "shop": "houseware"}, "addTags": {"brand": "Bed Bath & Beyond", "brand:wikidata": "Q813782", "brand:wikipedia": "en:Bed Bath & Beyond", "name": "Bed Bath & Beyond", "shop": "houseware"}, "countryCodes": ["ca", "mx", "nz", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/houseware/Blokker": {"name": "Blokker", "icon": "fas-blender", "imageURL": "https://graph.facebook.com/BlokkerNL/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q884934", "shop": "houseware"}, "addTags": {"brand": "Blokker", "brand:wikidata": "Q884934", "brand:wikipedia": "en:Blokker Holding", "name": "Blokker", "shop": "houseware"}, "countryCodes": ["be", "nl"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/houseware/Cervera": {"name": "Cervera", "icon": "fas-blender", "imageURL": "https://graph.facebook.com/CerveraAB/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q10447179", "shop": "houseware"}, "addTags": {"brand": "Cervera", "brand:wikidata": "Q10447179", "brand:wikipedia": "sv:Cervera (företag)", "name": "Cervera", "shop": "houseware"}, "countryCodes": ["se"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/houseware/HomeGoods": {"name": "HomeGoods", "icon": "fas-blender", "imageURL": "https://graph.facebook.com/Homegoods/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5887941", "shop": "houseware"}, "addTags": {"brand": "HomeGoods", "brand:wikidata": "Q5887941", "brand:wikipedia": "en:HomeGoods", "name": "HomeGoods", "shop": "houseware"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -4074,10 +4223,12 @@ "shop/jewelry/Jared": {"name": "Jared", "icon": "maki-jewelry-store", "imageURL": "https://graph.facebook.com/JaredTheGalleriaOfJewelry/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62029282", "shop": "jewelry"}, "addTags": {"brand": "Jared", "brand:wikidata": "Q62029282", "name": "Jared", "shop": "jewelry"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/jewelry/Julien d'Orcel": {"name": "Julien d'Orcel", "icon": "maki-jewelry-store", "imageURL": "https://graph.facebook.com/juliendorcel.bijouteries/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62497463", "shop": "jewelry"}, "addTags": {"brand": "Julien d'Orcel", "brand:wikidata": "Q62497463", "name": "Julien d'Orcel", "shop": "jewelry"}, "countryCodes": ["fr"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/jewelry/Kay Jewelers": {"name": "Kay Jewelers", "icon": "maki-jewelry-store", "imageURL": "https://graph.facebook.com/KayJewelers/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62029290", "shop": "jewelry"}, "addTags": {"brand": "Kay Jewelers", "brand:wikidata": "Q62029290", "name": "Kay Jewelers", "shop": "jewelry"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/jewelry/Michael Hill": {"name": "Michael Hill", "icon": "maki-jewelry-store", "imageURL": "https://graph.facebook.com/MichaelHillJ/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3308250", "shop": "jewelry"}, "addTags": {"brand": "Michael Hill", "brand:wikidata": "Q3308250", "brand:wikipedia": "en:Michael Hill Jeweller", "name": "Michael Hill", "shop": "jewelry"}, "countryCodes": ["au", "ca", "nz", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/jewelry/PNJ": {"name": "PNJ", "icon": "maki-jewelry-store", "imageURL": "https://graph.facebook.com/PNJ.COM.VN/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q61129183", "shop": "jewelry"}, "addTags": {"brand": "PNJ", "brand:wikidata": "Q61129183", "brand:wikipedia": "vi:PNJ", "name": "PNJ", "shop": "jewelry"}, "countryCodes": ["vn"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/jewelry/Pandora": {"name": "Pandora", "icon": "maki-jewelry-store", "imageURL": "https://graph.facebook.com/PANDORA.Japan/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2241604", "shop": "jewelry"}, "addTags": {"brand": "Pandora", "brand:wikidata": "Q2241604", "brand:wikipedia": "en:Pandora (jewelry)", "name": "Pandora", "shop": "jewelry"}, "terms": [], "matchScore": 2, "suggestion": true}, + "shop/jewelry/Peoples Jewellers": {"name": "Peoples Jewellers", "icon": "maki-jewelry-store", "imageURL": "https://graph.facebook.com/Peoples/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q64995558", "shop": "jewelry"}, "addTags": {"brand": "Peoples Jewellers", "brand:wikidata": "Q64995558", "name": "Peoples Jewellers", "shop": "jewelry"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/jewelry/Swarovski": {"name": "Swarovski", "icon": "maki-jewelry-store", "imageURL": "https://graph.facebook.com/SWAROVSKI.NorthAmerica/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q611115", "shop": "jewelry"}, "addTags": {"brand": "Swarovski", "brand:wikidata": "Q611115", "brand:wikipedia": "en:Swarovski", "name": "Swarovski", "shop": "jewelry"}, "terms": [], "matchScore": 2, "suggestion": true}, - "shop/jewelry/Tiffany & Company": {"name": "Tiffany & Company", "icon": "maki-jewelry-store", "imageURL": "https://graph.facebook.com/Tiffany/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1066858", "shop": "jewelry"}, "addTags": {"brand": "Tiffany & Company", "brand:wikidata": "Q1066858", "brand:wikipedia": "en:Tiffany & Co.", "name": "Tiffany & Company", "official_name": "Tiffany & Co.", "shop": "jewelry"}, "countryCodes": ["us"], "terms": ["tiffany", "tiffany and company", "tiffany's"], "matchScore": 2, "suggestion": true}, + "shop/jewelry/Tiffany & Company": {"name": "Tiffany & Company", "icon": "maki-jewelry-store", "imageURL": "https://graph.facebook.com/Tiffany/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1066858", "shop": "jewelry"}, "addTags": {"brand": "Tiffany & Company", "brand:wikidata": "Q1066858", "brand:wikipedia": "en:Tiffany & Co.", "name": "Tiffany & Company", "official_name": "Tiffany & Co.", "shop": "jewelry"}, "countryCodes": ["us"], "terms": ["tiffany", "tiffany's"], "matchScore": 2, "suggestion": true}, "shop/jewelry/Warren James": {"name": "Warren James", "icon": "maki-jewelry-store", "imageURL": "https://graph.facebook.com/warrenjamesjewellers/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q19604616", "shop": "jewelry"}, "addTags": {"brand": "Warren James", "brand:wikidata": "Q19604616", "brand:wikipedia": "en:Warren James Jewellers", "name": "Warren James", "shop": "jewelry"}, "countryCodes": ["gb"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/jewelry/Zales": {"name": "Zales", "icon": "maki-jewelry-store", "imageURL": "https://graph.facebook.com/Zales/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q8065305", "shop": "jewelry"}, "addTags": {"brand": "Zales", "brand:wikidata": "Q8065305", "brand:wikipedia": "en:Zale Corporation", "name": "Zales", "shop": "jewelry"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/jewelry/Адамас": {"name": "Адамас", "icon": "maki-jewelry-store", "imageURL": "https://graph.facebook.com/adamas.club/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62393709", "shop": "jewelry"}, "addTags": {"brand": "Адамас", "brand:en": "Adamas", "brand:ru": "Адамас", "brand:wikidata": "Q62393709", "name": "Адамас", "name:en": "Adamas", "name:ru": "Адамас", "shop": "jewelry"}, "countryCodes": ["ru"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -4103,7 +4254,7 @@ "shop/mobile_phone/Bell": {"name": "Bell", "icon": "fas-mobile-alt", "imageURL": "https://graph.facebook.com/BellCanada/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2894594", "shop": "mobile_phone"}, "addTags": {"brand": "Bell", "brand:wikidata": "Q2894594", "brand:wikipedia": "en:Bell Mobility", "name": "Bell", "shop": "mobile_phone"}, "countryCodes": ["ca"], "terms": ["bell mobile", "bell mobility", "bell wireless"], "matchScore": 2, "suggestion": true}, "shop/mobile_phone/Best Buy Mobile": {"name": "Best Buy Mobile", "icon": "fas-mobile-alt", "imageURL": "https://graph.facebook.com/bestbuy/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q533415", "shop": "mobile_phone"}, "addTags": {"brand": "Best Buy Mobile", "brand:wikidata": "Q533415", "brand:wikipedia": "en:Best Buy", "name": "Best Buy Mobile", "shop": "mobile_phone"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/mobile_phone/Bitė": {"name": "Bitė", "icon": "fas-mobile-alt", "imageURL": "https://graph.facebook.com/bitelietuva/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q796010", "shop": "mobile_phone"}, "addTags": {"brand": "Bitė", "brand:wikidata": "Q796010", "brand:wikipedia": "lt:Bitės grupė", "name": "Bitė", "shop": "mobile_phone"}, "countryCodes": ["lt"], "terms": [], "matchScore": 2, "suggestion": true}, - "shop/mobile_phone/Boost Mobile": {"name": "Boost Mobile", "icon": "fas-mobile-alt", "imageURL": "https://graph.facebook.com/boostmobile/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4943790", "shop": "mobile_phone"}, "addTags": {"brand": "Boost Mobile", "brand:wikidata": "Q4943790", "brand:wikipedia": "en:Boost Mobile", "name": "Boost Mobile", "shop": "mobile_phone"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/mobile_phone/Boost Mobile": {"name": "Boost Mobile", "icon": "fas-mobile-alt", "imageURL": "https://graph.facebook.com/boostmobile/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4943790", "shop": "mobile_phone"}, "addTags": {"brand": "Boost Mobile", "brand:wikidata": "Q4943790", "brand:wikipedia": "en:Boost Mobile", "name": "Boost Mobile", "shop": "mobile_phone"}, "countryCodes": ["us"], "terms": ["boost"], "matchScore": 2, "suggestion": true}, "shop/mobile_phone/Carphone Warehouse": {"name": "Carphone Warehouse", "icon": "fas-mobile-alt", "imageURL": "https://graph.facebook.com/carphonewarehouse/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q118046", "shop": "mobile_phone"}, "addTags": {"brand": "Carphone Warehouse", "brand:wikidata": "Q118046", "brand:wikipedia": "en:Carphone Warehouse", "name": "Carphone Warehouse", "shop": "mobile_phone"}, "countryCodes": ["by", "gb", "ie"], "terms": ["the carphone warehouse"], "matchScore": 2, "suggestion": true}, "shop/mobile_phone/Chatr": {"name": "Chatr", "icon": "fas-mobile-alt", "imageURL": "https://pbs.twimg.com/profile_images/705052150091681792/Rt-nwXo7_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5087766", "shop": "mobile_phone"}, "addTags": {"brand": "Chatr", "brand:wikidata": "Q5087766", "brand:wikipedia": "en:Chatr", "name": "Chatr", "shop": "mobile_phone"}, "countryCodes": ["ca"], "terms": ["Chatr Mobile"], "matchScore": 2, "suggestion": true}, "shop/mobile_phone/Claro": {"name": "Claro", "icon": "fas-mobile-alt", "imageURL": "https://graph.facebook.com/ClaroCol/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1770208", "shop": "mobile_phone"}, "addTags": {"brand": "Claro", "brand:wikidata": "Q1770208", "brand:wikipedia": "en:Claro (company)", "name": "Claro", "shop": "mobile_phone"}, "terms": [], "matchScore": 2, "suggestion": true}, @@ -4116,7 +4267,7 @@ "shop/mobile_phone/Koodo": {"name": "Koodo", "icon": "fas-mobile-alt", "imageURL": "https://graph.facebook.com/Koodo/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6430529", "shop": "mobile_phone"}, "addTags": {"brand": "Koodo", "brand:wikidata": "Q6430529", "brand:wikipedia": "en:Koodo Mobile", "name": "Koodo", "shop": "mobile_phone"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/mobile_phone/MTN": {"name": "MTN", "icon": "fas-mobile-alt", "imageURL": "https://graph.facebook.com/MTN/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1813361", "shop": "mobile_phone"}, "addTags": {"brand": "MTN", "brand:wikidata": "Q1813361", "brand:wikipedia": "en:MTN Group", "name": "MTN", "shop": "mobile_phone"}, "terms": ["agence mtn"], "matchScore": 2, "suggestion": true}, "shop/mobile_phone/MetroPCS": {"name": "MetroPCS", "icon": "fas-mobile-alt", "imageURL": "https://graph.facebook.com/MetroByTMobile/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1925685", "shop": "mobile_phone"}, "addTags": {"brand": "MetroPCS", "brand:wikidata": "Q1925685", "brand:wikipedia": "en:Metro by T-Mobile", "name": "MetroPCS", "shop": "mobile_phone"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, - "shop/mobile_phone/Mobilcom Debitel": {"name": "Mobilcom Debitel", "icon": "fas-mobile-alt", "imageURL": "https://pbs.twimg.com/profile_images/1090909837385441280/-CqxodYE_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q344744", "shop": "mobile_phone"}, "addTags": {"brand": "Mobilcom Debitel", "brand:wikidata": "Q344744", "brand:wikipedia": "en:Debitel", "name": "Mobilcom Debitel", "shop": "mobile_phone"}, "countryCodes": ["de", "ir"], "terms": ["debitel"], "matchScore": 2, "suggestion": true}, + "shop/mobile_phone/Mobilcom Debitel": {"name": "Mobilcom Debitel", "icon": "fas-mobile-alt", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q344744", "shop": "mobile_phone"}, "addTags": {"brand": "Mobilcom Debitel", "brand:wikidata": "Q344744", "brand:wikipedia": "en:Debitel", "name": "Mobilcom Debitel", "shop": "mobile_phone"}, "countryCodes": ["de", "ir"], "terms": ["debitel"], "matchScore": 2, "suggestion": true}, "shop/mobile_phone/Moov": {"name": "Moov", "icon": "fas-mobile-alt", "imageURL": "https://graph.facebook.com/moovcotedivoire/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3323637", "shop": "mobile_phone"}, "addTags": {"brand": "Moov", "brand:wikidata": "Q3323637", "brand:wikipedia": "fr:Moov Côte d'Ivoire", "name": "Moov", "shop": "mobile_phone"}, "countryCodes": ["ci", "tg"], "terms": ["agence moov"], "matchScore": 2, "suggestion": true}, "shop/mobile_phone/Movistar": {"name": "Movistar", "icon": "fas-mobile-alt", "imageURL": "https://graph.facebook.com/movistar.es/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q967735", "shop": "mobile_phone"}, "addTags": {"brand": "Movistar", "brand:wikidata": "Q967735", "brand:wikipedia": "en:Movistar", "name": "Movistar", "shop": "mobile_phone"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/mobile_phone/O2": {"name": "O2", "icon": "fas-mobile-alt", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FO2.svg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1759255", "shop": "mobile_phone"}, "addTags": {"brand": "O2", "brand:wikidata": "Q1759255", "brand:wikipedia": "en:Telefónica Europe", "name": "O2", "shop": "mobile_phone"}, "countryCodes": ["cz", "de", "gb", "ie", "sk"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -4141,6 +4292,7 @@ "shop/mobile_phone/Turkcell": {"name": "Turkcell", "icon": "fas-mobile-alt", "imageURL": "https://graph.facebook.com/Turkcell/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q283852", "shop": "mobile_phone"}, "addTags": {"brand": "Turkcell", "brand:wikidata": "Q283852", "brand:wikipedia": "en:Turkcell", "name": "Turkcell", "shop": "mobile_phone"}, "countryCodes": ["cy", "tr"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/mobile_phone/U.S. Cellular": {"name": "U.S. Cellular", "icon": "fas-mobile-alt", "imageURL": "https://graph.facebook.com/USCellular/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2466256", "shop": "mobile_phone"}, "addTags": {"brand": "U.S. Cellular", "brand:wikidata": "Q2466256", "brand:wikipedia": "en:U.S. Cellular", "name": "U.S. Cellular", "shop": "mobile_phone"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/mobile_phone/Verizon Wireless": {"name": "Verizon Wireless", "icon": "fas-mobile-alt", "imageURL": "https://graph.facebook.com/verizon/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q919641", "shop": "mobile_phone"}, "addTags": {"brand": "Verizon Wireless", "brand:wikidata": "Q919641", "brand:wikipedia": "en:Verizon Wireless", "name": "Verizon Wireless", "shop": "mobile_phone"}, "countryCodes": ["us"], "terms": ["verizon"], "matchScore": 2, "suggestion": true}, + "shop/mobile_phone/Vidéotron": {"name": "Vidéotron", "icon": "fas-mobile-alt", "imageURL": "https://pbs.twimg.com/profile_images/885158241101127683/Fy8FCpmg_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2396830", "shop": "mobile_phone"}, "addTags": {"brand": "Vidéotron", "brand:wikidata": "Q2396830", "brand:wikipedia": "en:Vidéotron", "name": "Vidéotron", "shop": "mobile_phone"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/mobile_phone/Virgin Mobile (Canada)": {"name": "Virgin Mobile (Canada)", "icon": "fas-mobile-alt", "imageURL": "https://pbs.twimg.com/profile_images/764098127641149440/uYi5SNMU_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3560641", "shop": "mobile_phone"}, "addTags": {"brand": "Virgin Mobile", "brand:wikidata": "Q3560641", "brand:wikipedia": "en:Virgin Mobile Canada", "name": "Virgin Mobile", "shop": "mobile_phone"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/mobile_phone/Vodafone": {"name": "Vodafone", "icon": "fas-mobile-alt", "imageURL": "https://graph.facebook.com/vodafoneUK/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q122141", "shop": "mobile_phone"}, "addTags": {"brand": "Vodafone", "brand:wikidata": "Q122141", "brand:wikipedia": "en:Vodafone", "name": "Vodafone", "shop": "mobile_phone"}, "terms": ["vodafone shop"], "matchScore": 2, "suggestion": true}, "shop/mobile_phone/WIFI_ETECSA": {"name": "WIFI_ETECSA", "icon": "fas-mobile-alt", "imageURL": "https://graph.facebook.com/etecsa.cu/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q490323", "shop": "mobile_phone"}, "addTags": {"brand": "WIFI_ETECSA", "brand:wikidata": "Q490323", "brand:wikipedia": "es:Empresa de Telecomunicaciones de Cuba", "name": "WIFI_ETECSA", "shop": "mobile_phone"}, "countryCodes": ["cu"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -4165,6 +4317,8 @@ "shop/money_lender/California Check Cashing Stores": {"name": "California Check Cashing Stores", "icon": "maki-bank", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q64390932", "shop": "money_lender"}, "addTags": {"brand": "California Check Cashing Stores", "brand:wikidata": "Q64390932", "name": "California Check Cashing Stores", "shop": "money_lender"}, "countryCodes": ["us"], "terms": ["california check cashing"], "matchScore": 2, "suggestion": true}, "shop/money_lender/Cash Store": {"name": "Cash Store", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/cashstore/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q61943411", "shop": "money_lender"}, "addTags": {"brand": "Cash Store", "brand:wikidata": "Q61943411", "name": "Cash Store", "shop": "money_lender"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/money_lender/Check Into Cash": {"name": "Check Into Cash", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/checkintocash/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q16961246", "shop": "money_lender"}, "addTags": {"brand": "Check Into Cash", "brand:wikidata": "Q16961246", "brand:wikipedia": "en:Check Into Cash", "name": "Check Into Cash", "shop": "money_lender"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/money_lender/CheckSmart": {"name": "CheckSmart", "icon": "maki-bank", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FCheckSmart%20logo.png&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q65640213", "shop": "money_lender"}, "addTags": {"alt_name": "Check$mart", "brand": "CheckSmart", "brand:wikidata": "Q65640213", "name": "CheckSmart", "shop": "money_lender"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/money_lender/First Virginia": {"name": "First Virginia", "icon": "maki-bank", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FFirst%20Virginia%20logo.png&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q65640051", "shop": "money_lender"}, "addTags": {"brand": "First Virginia", "brand:wikidata": "Q65640051", "name": "First Virginia", "shop": "money_lender"}, "countryCodes": ["us"], "terms": ["1st virginia"], "matchScore": 2, "suggestion": true}, "shop/money_lender/Money Mart": {"name": "Money Mart", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/moneymartusa/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6899166", "shop": "money_lender"}, "addTags": {"brand": "Money Mart", "brand:wikidata": "Q6899166", "brand:wikipedia": "en:Money Mart", "name": "Money Mart", "shop": "money_lender"}, "countryCodes": ["ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/motorcycle/Harley-Davidson": {"name": "Harley-Davidson", "icon": "fas-motorcycle", "imageURL": "https://graph.facebook.com/harley-davidson/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q192814", "shop": "motorcycle"}, "addTags": {"brand": "Harley-Davidson", "brand:wikidata": "Q192814", "brand:wikipedia": "en:Harley-Davidson", "name": "Harley-Davidson", "shop": "motorcycle"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/motorcycle/Honda": {"name": "Honda", "icon": "fas-motorcycle", "imageURL": "https://graph.facebook.com/HondaJP/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q9584", "shop": "motorcycle"}, "addTags": {"brand": "Honda", "brand:wikidata": "Q9584", "brand:wikipedia": "en:Honda", "name": "Honda", "shop": "motorcycle"}, "terms": [], "matchScore": 2, "suggestion": true}, @@ -4174,8 +4328,10 @@ "shop/motorcycle/Yamaha": {"name": "Yamaha", "icon": "fas-motorcycle", "imageURL": "https://graph.facebook.com/yamahamotorusa/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q158888", "shop": "motorcycle"}, "addTags": {"brand": "Yamaha", "brand:wikidata": "Q158888", "brand:wikipedia": "en:Yamaha Motor Company", "name": "Yamaha", "shop": "motorcycle"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/music/FYE": {"name": "FYE", "icon": "fas-compact-disc", "imageURL": "https://graph.facebook.com/FYE/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5424141", "shop": "music"}, "addTags": {"brand": "FYE", "brand:wikidata": "Q5424141", "brand:wikipedia": "en:FYE (retailer)", "name": "FYE", "shop": "music"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/music/HMV": {"name": "HMV", "icon": "fas-compact-disc", "imageURL": "https://graph.facebook.com/hmv/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q10854572", "shop": "music"}, "addTags": {"brand": "HMV", "brand:wikidata": "Q10854572", "brand:wikipedia": "en:HMV", "name": "HMV", "shop": "music"}, "countryCodes": ["ca", "gb"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/music/Sunrise Records": {"name": "Sunrise Records", "icon": "fas-compact-disc", "imageURL": "https://pbs.twimg.com/profile_images/1058023773964824576/fkO9j6IA_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q30600373", "shop": "music"}, "addTags": {"brand": "Sunrise Records", "brand:wikidata": "Q30600373", "brand:wikipedia": "en:Sunrise Records (retailer)", "name": "Sunrise Records", "shop": "music"}, "countryCodes": ["ca", "gb"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/music/TSUTAYA": {"name": "TSUTAYA", "icon": "fas-compact-disc", "imageURL": "https://graph.facebook.com/TSUTAYA/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5193457", "shop": "music"}, "addTags": {"brand": "TSUTAYA", "brand:wikidata": "Q5193457", "brand:wikipedia": "ja:カルチュア・コンビニエンス・クラブ", "name": "TSUTAYA", "shop": "music"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/musical_instrument/Guitar Center": {"name": "Guitar Center", "icon": "fas-guitar", "imageURL": "https://graph.facebook.com/GuitarCenter/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3622794", "shop": "musical_instrument"}, "addTags": {"brand": "Guitar Center", "brand:wikidata": "Q3622794", "brand:wikipedia": "en:Guitar Center", "name": "Guitar Center", "shop": "musical_instrument"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/musical_instrument/Long & McQuade": {"name": "Long & McQuade", "icon": "fas-guitar", "imageURL": "https://pbs.twimg.com/profile_images/1073318422383980546/VOZePCnz_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6672180", "shop": "musical_instrument"}, "addTags": {"brand": "Long & McQuade", "brand:wikidata": "Q6672180", "brand:wikipedia": "en:Long & McQuade", "name": "Long & McQuade", "shop": "musical_instrument"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/newsagent/Cigo": {"name": "Cigo", "icon": "fas-newspaper", "imageURL": "https://graph.facebook.com/cigo.nl/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62391977", "shop": "newsagent"}, "addTags": {"brand": "Cigo", "brand:wikidata": "Q62391977", "name": "Cigo", "shop": "newsagent"}, "countryCodes": ["de", "nl"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/newsagent/Kolporter": {"name": "Kolporter", "icon": "fas-newspaper", "imageURL": "https://graph.facebook.com/kolporterpl/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6427874", "shop": "kiosk"}, "addTags": {"brand": "Kolporter", "brand:wikidata": "Q6427874", "brand:wikipedia": "pl:Kolporter (przedsiębiorstwo)", "name": "Kolporter", "shop": "kiosk"}, "countryCodes": ["pl"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/newsagent/Maison de la Presse": {"name": "Maison de la Presse", "icon": "fas-newspaper", "imageURL": "https://graph.facebook.com/260230084083052/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62085960", "shop": "newsagent"}, "addTags": {"brand": "Maison de la Presse", "brand:wikidata": "Q62085960", "name": "Maison de la Presse", "shop": "newsagent"}, "countryCodes": ["fr"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -4224,7 +4380,7 @@ "shop/optician/Sunglass Hut": {"name": "Sunglass Hut", "icon": "maki-optician", "imageURL": "https://graph.facebook.com/SunglassHut/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q136311", "shop": "optician"}, "addTags": {"brand": "Sunglass Hut", "brand:wikidata": "Q136311", "brand:wikipedia": "en:Sunglass Hut", "name": "Sunglass Hut", "shop": "optician"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/optician/Synoptik": {"name": "Synoptik", "icon": "maki-optician", "imageURL": "https://graph.facebook.com/synoptiksverige/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q10687541", "shop": "optician"}, "addTags": {"brand": "Synoptik", "brand:wikidata": "Q10687541", "brand:wikipedia": "sv:Synoptik", "name": "Synoptik", "shop": "optician"}, "countryCodes": ["se"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/optician/Synsam": {"name": "Synsam", "icon": "maki-optician", "imageURL": "https://graph.facebook.com/synsam.se/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q12004589", "shop": "optician"}, "addTags": {"brand": "Synsam", "brand:wikidata": "Q12004589", "brand:wikipedia": "sv:Synsam", "name": "Synsam", "shop": "optician"}, "countryCodes": ["fi", "no", "se"], "terms": [], "matchScore": 2, "suggestion": true}, - "shop/optician/Target Optical": {"name": "Target Optical", "icon": "maki-optician", "imageURL": "https://graph.facebook.com/targetopticalnn/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q19903688", "shop": "optician"}, "addTags": {"brand": "Target Optical", "brand:wikidata": "Q19903688", "brand:wikipedia": "en:Target Optical", "name": "Target Optical", "shop": "optician"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/optician/Target Optical": {"name": "Target Optical", "icon": "maki-optician", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q19903688", "shop": "optician"}, "addTags": {"brand": "Target Optical", "brand:wikidata": "Q19903688", "brand:wikipedia": "en:Target Optical", "name": "Target Optical", "shop": "optician"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/optician/Vision Express": {"name": "Vision Express", "icon": "maki-optician", "imageURL": "https://graph.facebook.com/visionexpress/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7936150", "shop": "optician"}, "addTags": {"brand": "Vision Express", "brand:wikidata": "Q7936150", "brand:wikipedia": "en:Vision Express", "name": "Vision Express", "shop": "optician"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/optician/Visionworks": {"name": "Visionworks", "icon": "maki-optician", "imageURL": "https://graph.facebook.com/Visionworks/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5422607", "shop": "optician"}, "addTags": {"brand": "Visionworks", "brand:wikidata": "Q5422607", "brand:wikipedia": "en:Visionworks", "name": "Visionworks", "shop": "optician"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/optician/Warby Parker": {"name": "Warby Parker", "icon": "maki-optician", "imageURL": "https://graph.facebook.com/warbyparker/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7968882", "shop": "optician"}, "addTags": {"brand": "Warby Parker", "brand:wikidata": "Q7968882", "brand:wikipedia": "en:Warby Parker", "name": "Warby Parker", "shop": "optician"}, "countryCodes": ["ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -4240,7 +4396,7 @@ "shop/outdoor/Kathmandu": {"name": "Kathmandu", "icon": "temaki-compass", "imageURL": "https://graph.facebook.com/kathmandu/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1736294", "shop": "outdoor"}, "addTags": {"brand": "Kathmandu", "brand:wikidata": "Q1736294", "brand:wikipedia": "en:Kathmandu (company)", "name": "Kathmandu", "shop": "outdoor"}, "countryCodes": ["au", "nz"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/outdoor/Millets": {"name": "Millets", "icon": "temaki-compass", "imageURL": "https://graph.facebook.com/milletsonlinefans/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q64822903", "shop": "outdoor"}, "addTags": {"brand": "Millets", "brand:wikidata": "Q64822903", "name": "Millets", "shop": "outdoor"}, "countryCodes": ["gb"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/outdoor/Mountain Warehouse": {"name": "Mountain Warehouse", "icon": "temaki-compass", "imageURL": "https://graph.facebook.com/MountainWarehouse/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6925414", "shop": "outdoor"}, "addTags": {"brand": "Mountain Warehouse", "brand:wikidata": "Q6925414", "brand:wikipedia": "en:Mountain Warehouse", "name": "Mountain Warehouse", "shop": "outdoor"}, "countryCodes": ["gb", "pl"], "terms": [], "matchScore": 2, "suggestion": true}, - "shop/outdoor/REI": {"name": "REI", "icon": "temaki-compass", "imageURL": "https://graph.facebook.com/9062006483/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3414933", "shop": "outdoor"}, "addTags": {"brand": "REI", "brand:wikidata": "Q3414933", "brand:wikipedia": "en:Recreational Equipment, Inc.", "name": "REI", "shop": "outdoor"}, "countryCodes": ["id", "us"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/outdoor/REI": {"name": "REI", "icon": "temaki-compass", "imageURL": "https://graph.facebook.com/9062006483/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3414933", "shop": "outdoor"}, "addTags": {"brand": "REI", "brand:wikidata": "Q3414933", "brand:wikipedia": "en:Recreational Equipment, Inc.", "name": "REI", "official_name": "Recreational Equipment, Inc.", "shop": "outdoor"}, "countryCodes": ["id", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/outdoor/Sportsman's Warehouse": {"name": "Sportsman's Warehouse", "icon": "temaki-compass", "imageURL": "https://graph.facebook.com/sportsmanswh/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7579979", "shop": "outdoor"}, "addTags": {"brand": "Sportsman's Warehouse", "brand:wikidata": "Q7579979", "brand:wikipedia": "en:Sportsman's Warehouse", "name": "Sportsman's Warehouse", "shop": "outdoor"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/outdoor/Trespass": {"name": "Trespass", "icon": "temaki-compass", "imageURL": "https://graph.facebook.com/trespass/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q17035733", "shop": "outdoor"}, "addTags": {"brand": "Trespass", "brand:wikidata": "Q17035733", "brand:wikipedia": "en:Trespass (clothing)", "name": "Trespass", "shop": "outdoor"}, "countryCodes": ["fr", "gb", "ie"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/outpost/Wildberries": {"name": "Wildberries", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/wildberries.ru/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q24933714", "shop": "outpost"}, "addTags": {"brand": "Wildberries", "brand:wikidata": "Q24933714", "brand:wikipedia": "ru:Wildberries", "name": "Wildberries", "shop": "outpost"}, "countryCodes": ["by", "ru"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -4250,9 +4406,10 @@ "shop/paint/National Paints": {"name": "National Paints", "icon": "fas-paint-roller", "imageURL": "https://graph.facebook.com/NationalPaints/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62073521", "shop": "paint"}, "addTags": {"brand": "National Paints", "brand:wikidata": "Q62073521", "name": "National Paints", "shop": "paint"}, "countryCodes": ["ae", "qa"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/paint/Sherwin-Williams": {"name": "Sherwin-Williams", "icon": "fas-paint-roller", "imageURL": "https://graph.facebook.com/SherwinWilliamsforYourHome/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q48881", "shop": "paint"}, "addTags": {"brand": "Sherwin-Williams", "brand:wikidata": "Q48881", "brand:wikipedia": "en:Sherwin-Williams", "name": "Sherwin-Williams", "shop": "paint"}, "terms": ["sherwin williams paint store", "sherwin williams paints"], "matchScore": 2, "suggestion": true}, "shop/party/Party City": {"name": "Party City", "icon": "temaki-balloon", "imageURL": "https://graph.facebook.com/PartyCity/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7140896", "shop": "party"}, "addTags": {"brand": "Party City", "brand:wikidata": "Q7140896", "brand:wikipedia": "en:Party City", "name": "Party City", "shop": "party"}, "countryCodes": ["ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/pastry/Cookies by Design": {"name": "Cookies by Design", "icon": "maki-bakery", "imageURL": "https://graph.facebook.com/CookiesbyDesignHQ/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5167112", "shop": "pastry"}, "addTags": {"brand": "Cookies by Design", "brand:wikidata": "Q5167112", "craft": "bakery", "name": "Cookies by Design", "shop": "pastry"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/pastry/Smallcakes": {"name": "Smallcakes", "icon": "maki-bakery", "imageURL": "https://graph.facebook.com/SmallcakesKC/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62384749", "shop": "pastry"}, "addTags": {"brand": "Smallcakes", "brand:wikidata": "Q62384749", "name": "Smallcakes", "shop": "pastry"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/pawnbroker/Cash Converters": {"name": "Cash Converters", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/CashConvertersUK/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5048645", "shop": "pawnbroker"}, "addTags": {"brand": "Cash Converters", "brand:wikidata": "Q5048645", "brand:wikipedia": "en:Cash Converters", "name": "Cash Converters", "shop": "pawnbroker"}, "terms": [], "matchScore": 2, "suggestion": true}, - "shop/pawnbroker/Cebuana Lhuillier": {"name": "Cebuana Lhuillier", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/cebuanalhuillierpawnshop/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q17064661", "shop": "pawnbroker"}, "addTags": {"brand": "Cebuana Lhuillier", "brand:wikidata": "Q17064661", "brand:wikipedia": "en:Cebuana Lhuillier", "name": "Cebuana Lhuillier", "shop": "pawnbroker"}, "countryCodes": ["ph"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/pawnbroker/Cebuana Lhuillier": {"name": "Cebuana Lhuillier", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/cebuanalhuillierpawnshop/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q17064661", "shop": "pawnbroker"}, "addTags": {"brand": "Cebuana Lhuillier", "brand:wikidata": "Q17064661", "brand:wikipedia": "en:Cebuana Lhuillier", "name": "Cebuana Lhuillier", "shop": "pawnbroker", "short_name": "Cebuana"}, "countryCodes": ["ph"], "terms": ["agencia cebuana", "m lhuillier"], "matchScore": 2, "suggestion": true}, "shop/pawnbroker/Palawan Pawnshop": {"name": "Palawan Pawnshop", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/palawan.pawnshop/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62391488", "shop": "pawnbroker"}, "addTags": {"brand": "Palawan Pawnshop", "brand:wikidata": "Q62391488", "name": "Palawan Pawnshop", "shop": "pawnbroker"}, "countryCodes": ["ph"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/pawnbroker/Villarica Pawnshop": {"name": "Villarica Pawnshop", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/155765647803482/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62391438", "shop": "pawnbroker"}, "addTags": {"brand": "Villarica Pawnshop", "brand:wikidata": "Q62391438", "name": "Villarica Pawnshop", "shop": "pawnbroker"}, "countryCodes": ["ph"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/perfumery/Douglas": {"name": "Douglas", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/DouglasDeutschland/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2052213", "shop": "perfumery"}, "addTags": {"brand": "Douglas", "brand:wikidata": "Q2052213", "brand:wikipedia": "de:Parfümerie Douglas", "name": "Douglas", "shop": "perfumery"}, "countryCodes": ["at", "ch", "de", "es", "it", "nl", "pl"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -4281,6 +4438,7 @@ "shop/pet/Бетховен": {"name": "Бетховен", "icon": "maki-dog-park", "imageURL": "https://graph.facebook.com/zoobethowenclub/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62390798", "shop": "pet"}, "addTags": {"brand": "Бетховен", "brand:wikidata": "Q62390798", "name": "Бетховен", "shop": "pet"}, "countryCodes": ["ru"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/pet/Четыре лапы": {"name": "Четыре лапы", "icon": "maki-dog-park", "imageURL": "https://graph.facebook.com/4laps/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62390783", "shop": "pet"}, "addTags": {"brand": "Четыре лапы", "brand:wikidata": "Q62390783", "name": "Четыре лапы", "shop": "pet"}, "countryCodes": ["kz", "ru"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/photo/Kodak Express": {"name": "Kodak Express", "icon": "fas-camera-retro", "imageURL": "https://graph.facebook.com/kodakexpress/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6425126", "shop": "photo"}, "addTags": {"brand": "Kodak Express", "brand:wikidata": "Q6425126", "brand:wikipedia": "en:Kodak Express", "name": "Kodak Express", "shop": "photo"}, "terms": ["kodak"], "matchScore": 2, "suggestion": true}, + "shop/printer_ink/Cartridge World": {"name": "Cartridge World", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/CartridgeWorldNewsUK/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5047439", "shop": "printer_ink"}, "addTags": {"brand": "Cartridge World", "brand:wikidata": "Q5047439", "name": "Cartridge World", "shop": "printer_ink"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/second_hand/Value Village": {"name": "Value Village", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/savers/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7428188", "shop": "second_hand"}, "addTags": {"brand": "Value Village", "brand:wikidata": "Q7428188", "brand:wikipedia": "en:Savers", "name": "Value Village", "shop": "second_hand"}, "countryCodes": ["ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/shoes/ABCマート": {"name": "ABCマート", "icon": "maki-shoe", "imageURL": "https://graph.facebook.com/172547912801644/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11188787", "shop": "shoes"}, "addTags": {"brand": "ABCマート", "brand:ja": "ABCマート", "brand:wikidata": "Q11188787", "brand:wikipedia": "en:ABC-Mart", "name": "ABCマート", "name:ja": "ABCマート", "shop": "shoes"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/shoes/Aldo": {"name": "Aldo", "icon": "maki-shoe", "imageURL": "https://graph.facebook.com/ALDO/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2832297", "shop": "shoes"}, "addTags": {"brand": "Aldo", "brand:wikidata": "Q2832297", "brand:wikipedia": "en:Aldo Group", "name": "Aldo", "shop": "shoes"}, "terms": [], "matchScore": 2, "suggestion": true}, @@ -4290,28 +4448,32 @@ "shop/shoes/Besson Chaussures": {"name": "Besson Chaussures", "icon": "maki-shoe", "imageURL": "https://graph.facebook.com/besson.chaussures/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2899930", "shop": "shoes"}, "addTags": {"brand": "Besson Chaussures", "brand:wikidata": "Q2899930", "brand:wikipedia": "fr:Besson Chaussures", "name": "Besson Chaussures", "shop": "shoes"}, "countryCodes": ["fr"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/shoes/Birkenstock": {"name": "Birkenstock", "icon": "maki-shoe", "imageURL": "https://graph.facebook.com/birkenstock/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q648458", "shop": "shoes"}, "addTags": {"brand": "Birkenstock", "brand:wikidata": "Q648458", "brand:wikipedia": "en:Birkenstock", "name": "Birkenstock", "shop": "shoes"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/shoes/Brantano": {"name": "Brantano", "icon": "maki-shoe", "imageURL": "https://graph.facebook.com/brantano.belgie/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4957616", "shop": "shoes"}, "addTags": {"brand": "Brantano", "brand:wikidata": "Q4957616", "brand:wikipedia": "en:Brantano Footwear", "name": "Brantano", "shop": "shoes"}, "countryCodes": ["be", "gb", "lu"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/shoes/Browns": {"name": "Browns", "icon": "maki-shoe", "imageURL": "https://graph.facebook.com/Brownsshoes/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q16954153", "shop": "shoes"}, "addTags": {"brand": "Browns", "brand:wikidata": "Q16954153", "brand:wikipedia": "en:Browns Shoes", "name": "Browns", "shop": "shoes"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/shoes/CCC": {"name": "CCC", "icon": "maki-shoe", "imageURL": "https://graph.facebook.com/CCC/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11788344", "shop": "shoes"}, "addTags": {"brand": "CCC", "brand:wikidata": "Q11788344", "brand:wikipedia": "de:CCC (Unternehmen)", "name": "CCC", "shop": "shoes"}, "terms": [], "matchScore": 2, "suggestion": true}, + "shop/shoes/Call It Spring": {"name": "Call It Spring", "icon": "maki-shoe", "imageURL": "https://graph.facebook.com/CallItSpring/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7580363", "shop": "shoes"}, "addTags": {"brand": "Call It Spring", "brand:wikidata": "Q7580363", "brand:wikipedia": "en:Call It Spring", "name": "Call It Spring", "shop": "shoes"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/shoes/Camper": {"name": "Camper", "icon": "maki-shoe", "imageURL": "https://graph.facebook.com/Camper/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1030922", "shop": "shoes"}, "addTags": {"brand": "Camper", "brand:wikidata": "Q1030922", "brand:wikipedia": "en:Camper (company)", "name": "Camper", "shop": "shoes"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/shoes/Chaussea": {"name": "Chaussea", "icon": "maki-shoe", "imageURL": "https://graph.facebook.com/chaussea.fr/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62082044", "shop": "shoes"}, "addTags": {"brand": "Chaussea", "brand:wikidata": "Q62082044", "name": "Chaussea", "shop": "shoes"}, "countryCodes": ["be", "es", "fr", "lu"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/shoes/Clarks": {"name": "Clarks", "icon": "maki-shoe", "imageURL": "https://graph.facebook.com/ClarksShoesUS/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1095857", "shop": "shoes"}, "addTags": {"brand": "Clarks", "brand:wikidata": "Q1095857", "brand:wikipedia": "en:C. & J. Clark", "name": "Clarks", "shop": "shoes"}, "terms": [], "matchScore": 2, "suggestion": true}, - "shop/shoes/Cole Haan": {"name": "Cole Haan", "icon": "maki-shoe", "imageURL": "https://pbs.twimg.com/profile_images/1119296742300766209/G_KesZkl_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4356504", "shop": "shoes"}, "addTags": {"brand": "Cole Haan", "brand:wikidata": "Q4356504", "brand:wikipedia": "en:Cole Haan", "name": "Cole Haan", "shop": "shoes"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/shoes/Cole Haan": {"name": "Cole Haan", "icon": "maki-shoe", "imageURL": "https://graph.facebook.com/colehaan/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4356504", "shop": "shoes"}, "addTags": {"brand": "Cole Haan", "brand:wikidata": "Q4356504", "brand:wikipedia": "en:Cole Haan", "name": "Cole Haan", "shop": "shoes"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/shoes/Converse": {"name": "Converse", "icon": "maki-shoe", "imageURL": "https://graph.facebook.com/converse/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q319515", "shop": "shoes"}, "addTags": {"brand": "Converse", "brand:wikidata": "Q319515", "brand:wikipedia": "en:Converse (shoe company)", "name": "Converse", "shop": "shoes"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/shoes/Crocs": {"name": "Crocs", "icon": "maki-shoe", "imageURL": "https://graph.facebook.com/Crocs/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q926699", "shop": "shoes"}, "addTags": {"brand": "Crocs", "brand:wikidata": "Q926699", "brand:wikipedia": "en:Crocs", "name": "Crocs", "shop": "shoes"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/shoes/DSW": {"name": "DSW", "icon": "maki-shoe", "imageURL": "https://graph.facebook.com/designerbrands/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5206207", "shop": "shoes"}, "addTags": {"brand": "DSW", "brand:wikidata": "Q5206207", "brand:wikipedia": "en:Designer Brands", "name": "DSW", "shop": "shoes"}, "countryCodes": ["ca", "us"], "terms": ["designer shoe warehouse", "dsw shoes"], "matchScore": 2, "suggestion": true}, "shop/shoes/Deichmann": {"name": "Deichmann", "icon": "maki-shoe", "imageURL": "https://graph.facebook.com/Deichmann/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q664543", "shop": "shoes"}, "addTags": {"brand": "Deichmann", "brand:wikidata": "Q664543", "brand:wikipedia": "en:Deichmann SE", "name": "Deichmann", "shop": "shoes"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/shoes/Din sko": {"name": "Din sko", "icon": "maki-shoe", "imageURL": "https://graph.facebook.com/dinsko/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q10472869", "shop": "shoes"}, "addTags": {"brand": "Din sko", "brand:wikidata": "Q10472869", "brand:wikipedia": "sv:Din sko", "name": "Din sko", "shop": "shoes"}, "countryCodes": ["no", "se"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/shoes/Dosenbach": {"name": "Dosenbach", "icon": "maki-shoe", "imageURL": "https://graph.facebook.com/Dosenbach.CH/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2677329", "shop": "shoes"}, "addTags": {"brand": "Dosenbach", "brand:wikidata": "Q2677329", "brand:wikipedia": "de:Dosenbach-Ochsner", "name": "Dosenbach", "shop": "shoes"}, "countryCodes": ["ch"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/shoes/Dune London": {"name": "Dune London", "icon": "maki-shoe", "imageURL": "https://graph.facebook.com/DuneLondon/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q65557112", "shop": "shoes"}, "addTags": {"brand": "Dune London", "brand:wikidata": "Q65557112", "name": "Dune London", "shop": "shoes", "short_name": "Dune"}, "countryCodes": ["ch", "de", "fr", "gb", "nl"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/shoes/Ecco": {"name": "Ecco", "icon": "maki-shoe", "imageURL": "https://graph.facebook.com/Ecco/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1280255", "shop": "shoes"}, "addTags": {"brand": "Ecco", "brand:wikidata": "Q1280255", "brand:wikipedia": "en:ECCO", "name": "Ecco", "shop": "shoes"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/shoes/FLO": {"name": "FLO", "icon": "maki-shoe", "imageURL": "https://graph.facebook.com/FLOShoesGlobal/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q61994802", "shop": "shoes"}, "addTags": {"brand": "FLO", "brand:wikidata": "Q61994802", "name": "FLO", "shop": "shoes"}, "countryCodes": ["al", "tr"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/shoes/Famous Footwear": {"name": "Famous Footwear", "icon": "maki-shoe", "imageURL": "https://graph.facebook.com/famousfootwear/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5433457", "shop": "shoes"}, "addTags": {"brand": "Famous Footwear", "brand:wikidata": "Q5433457", "brand:wikipedia": "en:Famous Footwear", "name": "Famous Footwear", "shop": "shoes"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/shoes/Foot Locker": {"name": "Foot Locker", "icon": "maki-shoe", "imageURL": "https://graph.facebook.com/footlocker/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q63335", "shop": "shoes"}, "addTags": {"brand": "Foot Locker", "brand:wikidata": "Q63335", "brand:wikipedia": "en:Foot Locker", "name": "Foot Locker", "shop": "shoes"}, "terms": [], "matchScore": 2, "suggestion": true}, - "shop/shoes/G.H. Bass & Co.": {"name": "G.H. Bass & Co.", "icon": "maki-shoe", "imageURL": "https://pbs.twimg.com/profile_images/561257801650302976/enHlVVdc_bigger.jpeg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q16993893", "shop": "shoes"}, "addTags": {"brand": "G.H. Bass & Co.", "brand:wikidata": "Q16993893", "brand:wikipedia": "en:G.H. Bass & Co.", "name": "G.H. Bass & Co.", "shop": "shoes"}, "countryCodes": ["gb", "us"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/shoes/G.H. Bass & Co.": {"name": "G.H. Bass & Co.", "icon": "maki-shoe", "imageURL": "https://graph.facebook.com/G.H.Bass/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q16993893", "shop": "shoes"}, "addTags": {"brand": "G.H. Bass & Co.", "brand:wikidata": "Q16993893", "brand:wikipedia": "en:G.H. Bass & Co.", "name": "G.H. Bass & Co.", "shop": "shoes"}, "countryCodes": ["gb", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/shoes/Gabor": {"name": "Gabor", "icon": "maki-shoe", "imageURL": "https://graph.facebook.com/gaborshoesag/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1488760", "shop": "shoes"}, "addTags": {"brand": "Gabor", "brand:wikidata": "Q1488760", "brand:wikipedia": "de:Gabor Shoes", "name": "Gabor", "shop": "shoes"}, "countryCodes": ["de", "it"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/shoes/Geox": {"name": "Geox", "icon": "maki-shoe", "imageURL": "https://graph.facebook.com/GEOX/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q588001", "shop": "shoes"}, "addTags": {"brand": "Geox", "brand:wikidata": "Q588001", "brand:wikipedia": "en:Geox", "name": "Geox", "shop": "shoes"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/shoes/Görtz": {"name": "Görtz", "icon": "maki-shoe", "imageURL": "https://graph.facebook.com/goertz/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1559593", "shop": "shoes"}, "addTags": {"brand": "Görtz", "brand:wikidata": "Q1559593", "brand:wikipedia": "de:Ludwig Görtz", "name": "Görtz", "shop": "shoes"}, "countryCodes": ["de"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/shoes/Humanic": {"name": "Humanic", "icon": "maki-shoe", "imageURL": "https://graph.facebook.com/Humanic/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1636668", "shop": "shoes"}, "addTags": {"brand": "Humanic", "brand:wikidata": "Q1636668", "brand:wikipedia": "en:Humanic", "name": "Humanic", "shop": "shoes"}, "countryCodes": ["at", "cz", "de", "hu", "ro", "sk"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/shoes/Hush Puppies": {"name": "Hush Puppies", "icon": "maki-shoe", "imageURL": "https://graph.facebook.com/hushpuppiesglobal/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1828588", "shop": "shoes"}, "addTags": {"brand": "Hush Puppies", "brand:wikidata": "Q1828588", "brand:wikipedia": "en:Hush Puppies", "name": "Hush Puppies", "shop": "shoes"}, "terms": [], "matchScore": 2, "suggestion": true}, - "shop/shoes/Johnston & Murphy": {"name": "Johnston & Murphy", "icon": "maki-shoe", "imageURL": "https://graph.facebook.com/johnstonmurphy/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6268615", "shop": "shoes"}, "addTags": {"brand": "Johnston & Murphy", "brand:wikidata": "Q6268615", "brand:wikipedia": "en:Johnston & Murphy", "name": "Johnston & Murphy", "shop": "shoes"}, "countryCodes": ["ca", "us"], "terms": ["johnston and murphy"], "matchScore": 2, "suggestion": true}, + "shop/shoes/Johnston & Murphy": {"name": "Johnston & Murphy", "icon": "maki-shoe", "imageURL": "https://graph.facebook.com/johnstonmurphy/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6268615", "shop": "shoes"}, "addTags": {"brand": "Johnston & Murphy", "brand:wikidata": "Q6268615", "brand:wikipedia": "en:Johnston & Murphy", "name": "Johnston & Murphy", "shop": "shoes"}, "countryCodes": ["ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/shoes/Jones Bootmaker": {"name": "Jones Bootmaker", "icon": "maki-shoe", "imageURL": "https://graph.facebook.com/JonesBootmaker/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6275139", "shop": "shoes"}, "addTags": {"brand": "Jones Bootmaker", "brand:wikidata": "Q6275139", "name": "Jones Bootmaker", "shop": "shoes", "short_name": "Jones"}, "countryCodes": ["gb"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/shoes/Journeys": {"name": "Journeys", "icon": "maki-shoe", "imageURL": "https://graph.facebook.com/Journeys/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q61994838", "shop": "shoes"}, "addTags": {"brand": "Journeys", "brand:wikidata": "Q61994838", "name": "Journeys", "shop": "shoes"}, "countryCodes": ["ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/shoes/Kari": {"name": "Kari", "icon": "maki-shoe", "imageURL": "https://graph.facebook.com/shopkari/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q47155680", "shop": "shoes"}, "addTags": {"brand": "Kari", "brand:wikidata": "Q47155680", "brand:wikipedia": "ru:Kari (компания)", "name": "Kari", "shop": "shoes"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/shoes/Kids Foot Locker": {"name": "Kids Foot Locker", "icon": "maki-shoe", "imageURL": "https://graph.facebook.com/footlocker/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q63335", "shop": "shoes"}, "addTags": {"brand": "Foot Locker", "brand:wikidata": "Q63335", "brand:wikipedia": "en:Foot Locker", "name": "Kids Foot Locker", "shop": "shoes"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -4320,6 +4482,7 @@ "shop/shoes/Mephisto": {"name": "Mephisto", "icon": "maki-shoe", "imageURL": "https://graph.facebook.com/mephisto.usa/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q822975", "shop": "shoes"}, "addTags": {"brand": "Mephisto", "brand:wikidata": "Q822975", "brand:wikipedia": "fr:Mephisto (chaussure)", "name": "Mephisto", "shop": "shoes"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/shoes/Merrell": {"name": "Merrell", "icon": "maki-shoe", "imageURL": "https://graph.facebook.com/merrell/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1921997", "shop": "shoes"}, "addTags": {"brand": "Merrell", "brand:wikidata": "Q1921997", "brand:wikipedia": "en:Merrell (company)", "name": "Merrell", "shop": "shoes"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/shoes/Minelli": {"name": "Minelli", "icon": "maki-shoe", "imageURL": "https://graph.facebook.com/Minelli/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q61994831", "shop": "shoes"}, "addTags": {"brand": "Minelli", "brand:wikidata": "Q61994831", "name": "Minelli", "shop": "shoes"}, "terms": [], "matchScore": 2, "suggestion": true}, + "shop/shoes/Naturalizer": {"name": "Naturalizer", "icon": "maki-shoe", "imageURL": "https://graph.facebook.com/naturalizer/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q65012038", "shop": "shoes"}, "addTags": {"brand": "Naturalizer", "brand:wikidata": "Q65012038", "name": "Naturalizer", "shop": "shoes"}, "countryCodes": ["ca", "cn", "gu", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/shoes/New Balance": {"name": "New Balance", "icon": "maki-shoe", "imageURL": "https://graph.facebook.com/newbalanceusa/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q742988", "shop": "shoes"}, "addTags": {"brand": "New Balance", "brand:wikidata": "Q742988", "brand:wikipedia": "en:New Balance", "name": "New Balance", "shop": "shoes"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/shoes/Office": {"name": "Office", "icon": "maki-shoe", "imageURL": "https://graph.facebook.com/Officeshoes1/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7079121", "shop": "shoes"}, "addTags": {"brand": "Office", "brand:wikidata": "Q7079121", "brand:wikipedia": "en:Office Holdings", "name": "Office", "shop": "shoes"}, "countryCodes": ["de", "gb", "ie", "ro"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/shoes/Payless ShoeSource": {"name": "Payless ShoeSource", "icon": "maki-shoe", "imageURL": "https://graph.facebook.com/payless/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7156755", "shop": "shoes"}, "addTags": {"brand": "Payless ShoeSource", "brand:wikidata": "Q7156755", "brand:wikipedia": "en:Payless ShoeSource", "name": "Payless ShoeSource", "shop": "shoes"}, "terms": ["payless"], "matchScore": 2, "suggestion": true}, @@ -4337,6 +4500,7 @@ "shop/shoes/Shoe Zone": {"name": "Shoe Zone", "icon": "maki-shoe", "imageURL": "https://graph.facebook.com/shoezone/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7500016", "shop": "shoes"}, "addTags": {"brand": "Shoe Zone", "brand:wikidata": "Q7500016", "brand:wikipedia": "en:Shoe Zone", "name": "Shoe Zone", "shop": "shoes"}, "countryCodes": ["gb", "ie"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/shoes/Siemes Schuhcenter": {"name": "Siemes Schuhcenter", "icon": "maki-shoe", "imageURL": "https://graph.facebook.com/Schuhcenter.de/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2800720", "shop": "shoes"}, "addTags": {"brand": "Siemes Schuhcenter", "brand:wikidata": "Q2800720", "brand:wikipedia": "de:Siemes (Unternehmen)", "name": "Siemes Schuhcenter", "shop": "shoes"}, "countryCodes": ["de"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/shoes/Skechers": {"name": "Skechers", "icon": "maki-shoe", "imageURL": "https://graph.facebook.com/SKECHERS/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2945643", "shop": "shoes"}, "addTags": {"brand": "Skechers", "brand:wikidata": "Q2945643", "brand:wikipedia": "en:Skechers", "name": "Skechers", "shop": "shoes"}, "terms": ["sketchers"], "matchScore": 2, "suggestion": true}, + "shop/shoes/Soft Moc": {"name": "Soft Moc", "icon": "maki-shoe", "imageURL": "https://graph.facebook.com/softmocshoes/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q65012391", "shop": "shoes"}, "addTags": {"brand": "Soft Moc", "brand:wikidata": "Q65012391", "name": "Soft Moc", "shop": "shoes"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/shoes/Sperry": {"name": "Sperry", "icon": "maki-shoe", "imageURL": "https://graph.facebook.com/sperry/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7576421", "shop": "shoes"}, "addTags": {"brand": "Sperry", "brand:wikidata": "Q7576421", "brand:wikipedia": "en:Sperry Top-Sider", "name": "Sperry", "shop": "shoes"}, "countryCodes": ["us"], "terms": ["sperry top sider"], "matchScore": 2, "suggestion": true}, "shop/shoes/Steve Madden": {"name": "Steve Madden", "icon": "maki-shoe", "imageURL": "https://graph.facebook.com/SteveMaddenShoes/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q25352034", "shop": "shoes"}, "addTags": {"brand": "Steve Madden", "brand:wikidata": "Q25352034", "brand:wikipedia": "en:Steve Madden (company)", "name": "Steve Madden", "shop": "shoes"}, "countryCodes": ["ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/shoes/Stride Rite": {"name": "Stride Rite", "icon": "maki-shoe", "imageURL": "https://graph.facebook.com/striderite/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2356171", "shop": "shoes"}, "addTags": {"brand": "Stride Rite", "brand:wikidata": "Q2356171", "brand:wikipedia": "en:Stride Rite Corporation", "name": "Stride Rite", "shop": "shoes"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -4344,11 +4508,12 @@ "shop/shoes/The Shoe Company": {"name": "The Shoe Company", "icon": "maki-shoe", "imageURL": "https://graph.facebook.com/theshoeco/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7763892", "shop": "shoes"}, "addTags": {"brand": "The Shoe Company", "brand:wikidata": "Q7763892", "brand:wikipedia": "en:The Shoe Company", "name": "The Shoe Company", "shop": "shoes"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/shoes/UGG": {"name": "UGG", "icon": "maki-shoe", "imageURL": "https://graph.facebook.com/UGG/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1138480", "shop": "shoes"}, "addTags": {"brand": "UGG", "brand:wikidata": "Q1138480", "brand:wikipedia": "en:UGG (brand)", "name": "UGG", "shop": "shoes"}, "countryCodes": ["au", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/shoes/Vans": {"name": "Vans", "icon": "maki-shoe", "imageURL": "https://graph.facebook.com/VANS/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1135366", "shop": "shoes"}, "addTags": {"brand": "Vans", "brand:wikidata": "Q1135366", "brand:wikipedia": "en:Vans", "name": "Vans", "shop": "shoes"}, "terms": [], "matchScore": 2, "suggestion": true}, + "shop/shoes/Walking on a Cloud": {"name": "Walking on a Cloud", "icon": "maki-shoe", "imageURL": "https://graph.facebook.com/walkingonacloud/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q65012662", "shop": "shoes"}, "addTags": {"brand": "Walking on a Cloud", "brand:wikidata": "Q65012662", "name": "Walking on a Cloud", "shop": "shoes"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/shoes/vanHaren": {"name": "vanHaren", "icon": "maki-shoe", "imageURL": "https://graph.facebook.com/vanharenschoenen/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62390668", "shop": "shoes"}, "addTags": {"brand": "vanHaren", "brand:wikidata": "Q62390668", "name": "vanHaren", "shop": "shoes"}, "countryCodes": ["be", "nl"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/shoes/Éram": {"name": "Éram", "icon": "maki-shoe", "imageURL": "https://graph.facebook.com/eram.fr/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q16684192", "shop": "shoes"}, "addTags": {"brand": "Éram", "brand:wikidata": "Q16684192", "brand:wikipedia": "fr:Éram", "name": "Éram", "shop": "shoes"}, "countryCodes": ["be", "fr"], "terms": [], "matchScore": 2, "suggestion": true}, - "shop/shoes/ЦентрОбувь": {"name": "ЦентрОбувь", "icon": "maki-shoe", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4504072", "shop": "shoes"}, "addTags": {"brand": "ЦентрОбувь", "brand:wikidata": "Q4504072", "brand:wikipedia": "ru:ЦентрОбувь", "name": "ЦентрОбувь", "shop": "shoes"}, "countryCodes": ["by", "ru", "ua"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/shoes/ЦентрОбувь": {"name": "ЦентрОбувь", "icon": "maki-shoe", "imageURL": "https://graph.facebook.com/Centrobuv/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4504072", "shop": "shoes"}, "addTags": {"brand": "ЦентрОбувь", "brand:wikidata": "Q4504072", "brand:wikipedia": "ru:ЦентрОбувь", "name": "ЦентрОбувь", "shop": "shoes"}, "countryCodes": ["by", "ru", "ua"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/shoes/Юничел": {"name": "Юничел", "icon": "maki-shoe", "imageURL": "https://graph.facebook.com/unichel.shoes/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62390569", "shop": "shoes"}, "addTags": {"brand": "Юничел", "brand:wikidata": "Q62390569", "name": "Юничел", "shop": "shoes"}, "countryCodes": ["kz", "ru"], "terms": [], "matchScore": 2, "suggestion": true}, - "shop/shoes/つるや": {"name": "つるや", "icon": "maki-shoe", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11272578", "shop": "shoes"}, "addTags": {"brand": "つるや", "brand:en": "Tsuruya", "brand:ja": "つるや", "brand:wikidata": "Q11272578", "brand:wikipedia": "ja:つるや (靴屋)", "name": "つるや", "name:en": "Tsuruya", "name:ja": "つるや", "shop": "shoes"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/shoes/つるや": {"name": "つるや", "icon": "maki-shoe", "imageURL": "https://graph.facebook.com/tsuruya.jp/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11272578", "shop": "shoes"}, "addTags": {"brand": "つるや", "brand:en": "Tsuruya", "brand:ja": "つるや", "brand:wikidata": "Q11272578", "brand:wikipedia": "ja:つるや (靴屋)", "name": "つるや", "name:en": "Tsuruya", "name:ja": "つるや", "shop": "shoes"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/shoes/東京靴流通センター": {"name": "東京靴流通センター", "icon": "maki-shoe", "imageURL": "https://graph.facebook.com/chiyodafanpage/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11318515", "shop": "shoes"}, "addTags": {"brand": "東京靴流通センター", "brand:en": "Tokyo Shoes Retailing Center", "brand:ja": "東京靴流通センター", "brand:wikidata": "Q11318515", "brand:wikipedia": "ja:チヨダ", "name": "東京靴流通センター", "name:en": "Tokyo Shoes Retailing Center", "name:ja": "東京靴流通センター", "shop": "shoes"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/sports/Academy Sports + Outdoors": {"name": "Academy Sports + Outdoors", "icon": "fas-futbol", "imageURL": "https://graph.facebook.com/Academy/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4671380", "shop": "sports"}, "addTags": {"brand": "Academy Sports + Outdoors", "brand:wikidata": "Q4671380", "brand:wikipedia": "en:Academy Sports + Outdoors", "name": "Academy Sports + Outdoors", "shop": "sports"}, "countryCodes": ["us"], "terms": ["academy", "academy sports and outdoors"], "matchScore": 2, "suggestion": true}, "shop/sports/Adidas": {"name": "Adidas", "icon": "fas-futbol", "imageURL": "https://graph.facebook.com/adidasUK/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3895", "shop": "sports"}, "addTags": {"brand": "Adidas", "brand:wikidata": "Q3895", "brand:wikipedia": "en:Adidas", "name": "Adidas", "shop": "sports"}, "terms": [], "matchScore": 2, "suggestion": true}, @@ -4379,7 +4544,7 @@ "shop/sports/XXL": {"name": "XXL", "icon": "fas-futbol", "imageURL": "https://graph.facebook.com/xxlnorge/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q12010840", "shop": "sports"}, "addTags": {"brand": "XXL", "brand:wikidata": "Q12010840", "brand:wikipedia": "no:XXL", "name": "XXL", "shop": "sports"}, "countryCodes": ["fi", "no", "se"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/sports/Спортмастер": {"name": "Спортмастер", "icon": "fas-futbol", "imageURL": "https://graph.facebook.com/sportmaster.ru/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4438176", "shop": "sports"}, "addTags": {"brand": "Спортмастер", "brand:en": "Sportmaster", "brand:ru": "Спортмастер", "brand:wikidata": "Q4438176", "brand:wikipedia": "ru:Спортмастер", "name": "Спортмастер", "name:en": "Sportmaster", "name:ru": "Спортмастер", "shop": "sports"}, "countryCodes": ["by", "kz", "ru", "ua"], "terms": ["спортмастер гипер"], "matchScore": 2, "suggestion": true}, "shop/stationery/Bureau Vallée": {"name": "Bureau Vallée", "icon": "fas-paperclip", "imageURL": "https://graph.facebook.com/BureauVallee/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q18385014", "shop": "stationery"}, "addTags": {"brand": "Bureau Vallée", "brand:wikidata": "Q18385014", "brand:wikipedia": "fr:Bureau Vallée", "name": "Bureau Vallée", "shop": "stationery"}, "countryCodes": ["fr"], "terms": [], "matchScore": 2, "suggestion": true}, - "shop/stationery/McPaper": {"name": "McPaper", "icon": "fas-paperclip", "imageURL": "https://graph.facebook.com/mcpaperberlin/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1915329", "shop": "stationery"}, "addTags": {"brand": "McPaper", "brand:wikidata": "Q1915329", "brand:wikipedia": "de:McPaper", "name": "McPaper", "shop": "stationery"}, "countryCodes": ["ch", "de"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/stationery/McPaper": {"name": "McPaper", "icon": "fas-paperclip", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1915329", "shop": "stationery"}, "addTags": {"brand": "McPaper", "brand:wikidata": "Q1915329", "brand:wikipedia": "de:McPaper", "name": "McPaper", "shop": "stationery"}, "countryCodes": ["ch", "de"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/stationery/Office Depot": {"name": "Office Depot", "icon": "fas-paperclip", "imageURL": "https://graph.facebook.com/OfficeDepot/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1337797", "shop": "stationery"}, "addTags": {"brand": "Office Depot", "brand:wikidata": "Q1337797", "brand:wikipedia": "en:Office Depot", "name": "Office Depot", "shop": "stationery"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/stationery/OfficeMax": {"name": "OfficeMax", "icon": "fas-paperclip", "imageURL": "https://graph.facebook.com/OfficeDepot/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7079111", "shop": "stationery"}, "addTags": {"brand": "OfficeMax", "brand:wikidata": "Q7079111", "brand:wikipedia": "en:OfficeMax", "name": "OfficeMax", "shop": "stationery"}, "countryCodes": ["mx", "nz", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/stationery/Officeworks": {"name": "Officeworks", "icon": "fas-paperclip", "imageURL": "https://graph.facebook.com/officeworks/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7079486", "shop": "stationery"}, "addTags": {"brand": "Officeworks", "brand:wikidata": "Q7079486", "brand:wikipedia": "en:Officeworks", "name": "Officeworks", "shop": "stationery"}, "countryCodes": ["au"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -4408,6 +4573,7 @@ "shop/supermarket/Alfamart": {"name": "Alfamart", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/alfamartku/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q23745600", "shop": "supermarket"}, "addTags": {"brand": "Alfamart", "brand:wikidata": "Q23745600", "brand:wikipedia": "en:Alfamart", "name": "Alfamart", "shop": "supermarket"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/Alimerka": {"name": "Alimerka", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/alimerka.es/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q16482738", "shop": "supermarket"}, "addTags": {"brand": "Alimerka", "brand:wikidata": "Q16482738", "brand:wikipedia": "es:Alimerka", "name": "Alimerka", "shop": "supermarket"}, "countryCodes": ["es"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/Alnatura": {"name": "Alnatura", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/Alnatura/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q876811", "shop": "supermarket"}, "addTags": {"brand": "Alnatura", "brand:wikidata": "Q876811", "brand:wikipedia": "en:Alnatura", "name": "Alnatura", "organic": "only", "shop": "supermarket"}, "countryCodes": ["ch", "de"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/supermarket/Amigo": {"name": "Amigo", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/amigopuertorico/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4746234", "shop": "supermarket"}, "addTags": {"alt_name": "Supermercados Amigo", "brand": "Amigo", "brand:wikidata": "Q4746234", "brand:wikipedia": "en:Amigo Supermarkets", "name": "Amigo", "shop": "supermarket"}, "countryCodes": ["us"], "terms": ["amigo puerto rico", "amigo supermarket", "supermercado amigo"], "matchScore": 2, "suggestion": true}, "shop/supermarket/Asda": {"name": "Asda", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/Asda/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q297410", "shop": "supermarket"}, "addTags": {"brand": "Asda", "brand:wikidata": "Q297410", "brand:wikipedia": "en:Asda", "name": "Asda", "shop": "supermarket"}, "countryCodes": ["gb"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/Atacadão": {"name": "Atacadão", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/Atacadaosa.Oficial/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2868739", "shop": "supermarket"}, "addTags": {"brand": "Atacadão", "brand:wikidata": "Q2868739", "brand:wikipedia": "en:Atacadão", "name": "Atacadão", "shop": "supermarket"}, "countryCodes": ["br"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/Auchan": {"name": "Auchan", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/auchan/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q758603", "shop": "supermarket"}, "addTags": {"brand": "Auchan", "brand:wikidata": "Q758603", "brand:wikipedia": "en:Auchan", "name": "Auchan", "shop": "supermarket"}, "terms": [], "matchScore": 2, "suggestion": true}, @@ -4506,6 +4672,7 @@ "shop/supermarket/Foodland (Canada)": {"name": "Foodland (Canada)", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/dansFoodland/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5465554", "shop": "supermarket"}, "addTags": {"brand": "Foodland", "brand:wikidata": "Q5465554", "brand:wikipedia": "en:Foodland (Canada)", "name": "Foodland", "shop": "supermarket"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/Foodland (Hawaii)": {"name": "Foodland (Hawaii)", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/FoodlandHawaii/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5465560", "shop": "supermarket"}, "addTags": {"brand": "Foodland", "brand:wikidata": "Q5465560", "brand:wikipedia": "en:Foodland Hawaii", "name": "Foodland", "shop": "supermarket"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/Foodworks": {"name": "Foodworks", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/foodworksaus/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5465579", "shop": "supermarket"}, "addTags": {"brand": "Foodworks", "brand:wikidata": "Q5465579", "brand:wikipedia": "en:Foodworks", "name": "Foodworks", "shop": "supermarket"}, "countryCodes": ["au"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/supermarket/Fortinos": {"name": "Fortinos", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/fortinosgrocery/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5472662", "shop": "supermarket"}, "addTags": {"brand": "Fortinos", "brand:wikidata": "Q5472662", "brand:wikipedia": "en:Fortinos", "name": "Fortinos", "shop": "supermarket"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/Fred Meyer": {"name": "Fred Meyer", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/fredmeyer/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5495932", "shop": "supermarket"}, "addTags": {"brand": "Fred Meyer", "brand:wikidata": "Q5495932", "brand:wikipedia": "en:Fred Meyer", "name": "Fred Meyer", "shop": "supermarket"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/Fresh": {"name": "Fresh", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/freshobchod/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q50737403", "shop": "supermarket"}, "addTags": {"brand": "Fresh", "brand:wikidata": "Q50737403", "brand:wikipedia": "sk:Fresh", "name": "Fresh", "shop": "supermarket"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/Fresh Thyme": {"name": "Fresh Thyme", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/FreshThymeFarmersMarkets/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q64132791", "shop": "supermarket"}, "addTags": {"brand": "Fresh Thyme", "brand:wikidata": "Q64132791", "name": "Fresh Thyme", "shop": "supermarket"}, "countryCodes": ["us"], "terms": ["fresh thyme farmers market"], "matchScore": 2, "suggestion": true}, @@ -4521,7 +4688,7 @@ "shop/supermarket/Globus": {"name": "Globus", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/Globus.de/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q457503", "shop": "supermarket"}, "addTags": {"brand": "Globus", "brand:wikidata": "Q457503", "brand:wikipedia": "en:Globus (hypermarket)", "name": "Globus", "shop": "supermarket"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/Gordon Food Service": {"name": "Gordon Food Service", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/GordonFoodService/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1538006", "shop": "supermarket"}, "addTags": {"brand": "Gordon Food Service", "brand:wikidata": "Q1538006", "brand:wikipedia": "en:Gordon Food Service", "name": "Gordon Food Service", "shop": "supermarket"}, "countryCodes": ["ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/Grand Frais": {"name": "Grand Frais", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/GrandFrais/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3114675", "shop": "supermarket"}, "addTags": {"brand": "Grand Frais", "brand:wikidata": "Q3114675", "brand:wikipedia": "fr:Grand Frais", "name": "Grand Frais", "shop": "supermarket"}, "countryCodes": ["fr"], "terms": [], "matchScore": 2, "suggestion": true}, - "shop/supermarket/Grocery Outlet": {"name": "Grocery Outlet", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/GroceryOutletInc/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5609934", "shop": "supermarket"}, "addTags": {"brand": "Grocery Outlet", "brand:wikidata": "Q5609934", "brand:wikipedia": "en:Grocery Outlet", "name": "Grocery Outlet", "official_name": "Grocery Outlet Bargain Market", "shop": "supermarket"}, "terms": [], "matchScore": 2, "suggestion": true}, + "shop/supermarket/Grocery Outlet": {"name": "Grocery Outlet", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/GroceryOutletInc/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5609934", "shop": "supermarket"}, "addTags": {"brand": "Grocery Outlet", "brand:wikidata": "Q5609934", "brand:wikipedia": "en:Grocery Outlet", "name": "Grocery Outlet", "official_name": "Grocery Outlet Bargain Market", "shop": "supermarket"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/Groszek": {"name": "Groszek", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/Sklepy.Groszek/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q9280965", "shop": "supermarket"}, "addTags": {"brand": "Groszek", "brand:wikidata": "Q9280965", "brand:wikipedia": "pl:Groszek (sieć sklepów)", "name": "Groszek", "shop": "supermarket"}, "countryCodes": ["pl"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/Géant Casino": {"name": "Géant Casino", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/geantcasino/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1380537", "shop": "supermarket"}, "addTags": {"brand": "Géant Casino", "brand:wikidata": "Q1380537", "brand:wikipedia": "en:Géant Casino", "name": "Géant Casino", "shop": "supermarket"}, "countryCodes": ["cg", "fr"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/H Mart": {"name": "H Mart", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/hmartofficial/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5636306", "shop": "supermarket"}, "addTags": {"alt_name:ko": "H 마트", "brand": "H Mart", "brand:wikidata": "Q5636306", "brand:wikipedia": "en:H Mart", "cuisine": "asian", "name": "H Mart", "name:en": "H Mart", "name:ko": "한아름", "name:zh-Hans": "韩亚龙", "name:zh-Hant": "韓亞龍", "shop": "supermarket"}, "countryCodes": ["ca", "gb", "us"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -4541,7 +4708,6 @@ "shop/supermarket/ICA Maxi": {"name": "ICA Maxi", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/ICA/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1663776", "shop": "supermarket"}, "addTags": {"brand": "ICA Maxi", "brand:wikidata": "Q1663776", "brand:wikipedia": "sv:Ica", "name": "ICA Maxi", "shop": "supermarket"}, "countryCodes": ["no", "se"], "terms": ["maxi"], "matchScore": 2, "suggestion": true}, "shop/supermarket/IDEA": {"name": "IDEA", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/IDEASrbija/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q23461622", "shop": "supermarket"}, "addTags": {"brand": "IDEA", "brand:wikidata": "Q23461622", "brand:wikipedia": "en:Idea (supermarkets)", "name": "IDEA", "shop": "supermarket"}, "countryCodes": ["rs"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/IGA": {"name": "IGA", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/IGACorp/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3146662", "shop": "supermarket"}, "addTags": {"brand": "IGA", "brand:wikidata": "Q3146662", "brand:wikipedia": "en:IGA (supermarkets)", "name": "IGA", "shop": "supermarket"}, "countryCodes": ["au", "ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, - "shop/supermarket/Iceland": {"name": "Iceland", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/icelandfoods/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q721810", "shop": "supermarket"}, "addTags": {"brand": "Iceland", "brand:wikidata": "Q721810", "brand:wikipedia": "en:Iceland (supermarket)", "name": "Iceland", "shop": "supermarket"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/Ingles": {"name": "Ingles", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/inglesmarkets/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6032595", "shop": "supermarket"}, "addTags": {"brand": "Ingles", "brand:wikidata": "Q6032595", "brand:wikipedia": "en:Ingles", "name": "Ingles", "shop": "supermarket"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/Intermarché": {"name": "Intermarché", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/tousuniscontrelaviechere/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3153200", "shop": "supermarket"}, "addTags": {"brand": "Intermarché", "brand:wikidata": "Q3153200", "brand:wikipedia": "fr:Intermarché", "name": "Intermarché", "shop": "supermarket"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/Intermarché Super": {"name": "Intermarché Super", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/tousuniscontrelaviechere/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3153200", "shop": "supermarket"}, "addTags": {"brand": "Intermarché Super", "brand:wikidata": "Q3153200", "brand:wikipedia": "fr:Intermarché", "name": "Intermarché Super", "shop": "supermarket"}, "countryCodes": ["be", "fr", "pl", "pt"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -4559,6 +4725,7 @@ "shop/supermarket/Kiwi": {"name": "Kiwi", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/kiwiminipris/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1613639", "shop": "supermarket"}, "addTags": {"brand": "Kiwi", "brand:wikidata": "Q1613639", "brand:wikipedia": "en:Kiwi (store)", "name": "Kiwi", "shop": "supermarket"}, "countryCodes": ["dk", "no"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/Konzum (Balkans)": {"name": "Konzum (Balkans)", "icon": "maki-grocery", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FKonzum%20Logo.svg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q518563", "shop": "supermarket"}, "addTags": {"brand": "Konzum", "brand:wikidata": "Q518563", "brand:wikipedia": "hr:Konzum", "name": "Konzum", "shop": "supermarket"}, "countryCodes": ["ba", "hr", "rs"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/Kroger": {"name": "Kroger", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/Kroger/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q153417", "shop": "supermarket"}, "addTags": {"brand": "Kroger", "brand:wikidata": "Q153417", "brand:wikipedia": "en:Kroger", "name": "Kroger", "shop": "supermarket"}, "terms": ["krogers"], "matchScore": 2, "suggestion": true}, + "shop/supermarket/Kroger Marketplace": {"name": "Kroger Marketplace", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/Kroger/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q153417", "shop": "supermarket"}, "addTags": {"brand": "Kroger Marketplace", "brand:wikidata": "Q153417", "brand:wikipedia": "en:Kroger", "name": "Kroger Marketplace", "shop": "supermarket"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/Kvickly": {"name": "Kvickly", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/Kvickly/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7061148", "shop": "supermarket"}, "addTags": {"brand": "Kvickly", "brand:wikidata": "Q7061148", "brand:wikipedia": "en:Kvickly", "name": "Kvickly", "shop": "supermarket"}, "countryCodes": ["dk"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/La Anónima": {"name": "La Anónima", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/laanonimaoficial/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6135985", "shop": "supermarket"}, "addTags": {"brand": "La Anónima", "brand:wikidata": "Q6135985", "brand:wikipedia": "es:La Anónima", "name": "La Anónima", "shop": "supermarket"}, "countryCodes": ["ar"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/La Comer": {"name": "La Comer", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/LaComerOficial/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q26765126", "shop": "supermarket"}, "addTags": {"brand": "La Comer", "brand:wikidata": "Q26765126", "brand:wikipedia": "es:La Comer", "name": "La Comer", "shop": "supermarket"}, "countryCodes": ["mx"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -4598,6 +4765,7 @@ "shop/supermarket/Meijer": {"name": "Meijer", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/meijer/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1917753", "shop": "supermarket"}, "addTags": {"brand": "Meijer", "brand:wikidata": "Q1917753", "brand:wikipedia": "en:Meijer", "name": "Meijer", "shop": "supermarket"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/Meny": {"name": "Meny", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/meny/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q10581720", "shop": "supermarket"}, "addTags": {"brand": "Meny", "brand:wikidata": "Q10581720", "brand:wikipedia": "en:Meny", "name": "Meny", "shop": "supermarket"}, "countryCodes": ["dk", "no"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/Mercadona": {"name": "Mercadona", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/mercadona/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q377705", "shop": "supermarket"}, "addTags": {"brand": "Mercadona", "brand:wikidata": "Q377705", "brand:wikipedia": "en:Mercadona", "name": "Mercadona", "shop": "supermarket"}, "terms": [], "matchScore": 2, "suggestion": true}, + "shop/supermarket/Mercator": {"name": "Mercator", "icon": "maki-grocery", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q738412", "shop": "supermarket"}, "addTags": {"brand": "Mercator", "brand:wikidata": "Q738412", "brand:wikipedia": "en:Mercator (retail)", "name": "Mercator", "shop": "supermarket"}, "countryCodes": ["ba", "hz", "me", "rs", "si"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/Merkur": {"name": "Merkur", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/merkurmarkt/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1921857", "shop": "supermarket"}, "addTags": {"brand": "Merkur", "brand:wikidata": "Q1921857", "brand:wikipedia": "de:Merkur (Österreich)", "name": "Merkur", "shop": "supermarket"}, "countryCodes": ["at"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/Metro (Canada)": {"name": "Metro (Canada)", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/metro.ontario/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1145669", "shop": "supermarket"}, "addTags": {"brand": "Metro", "brand:wikidata": "Q1145669", "brand:wikipedia": "en:Metro Inc.", "name": "Metro", "shop": "supermarket"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/Metro (Peru)": {"name": "Metro (Peru)", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/metroperu/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q16640217", "shop": "supermarket"}, "addTags": {"brand": "Metro", "brand:wikidata": "Q16640217", "brand:wikipedia": "en:Tiendas Metro", "name": "Metro", "shop": "supermarket"}, "countryCodes": ["pe"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -4617,12 +4785,14 @@ "shop/supermarket/No Frills": {"name": "No Frills", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/nofrillsCA/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3342407", "shop": "supermarket"}, "addTags": {"brand": "No Frills", "brand:wikidata": "Q3342407", "brand:wikipedia": "en:No Frills (grocery store)", "name": "No Frills", "shop": "supermarket"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/Norfa XL": {"name": "Norfa XL", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/Norfalt/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1998983", "shop": "supermarket"}, "addTags": {"brand": "Norfa XL", "brand:wikidata": "Q1998983", "brand:wikipedia": "lt:Norfa", "name": "Norfa XL", "shop": "supermarket"}, "countryCodes": ["lt"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/Norma": {"name": "Norma", "icon": "maki-grocery", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FNorma%20Logo.svg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q450180", "shop": "supermarket"}, "addTags": {"brand": "Norma", "brand:wikidata": "Q450180", "brand:wikipedia": "de:Norma (Handelskette)", "name": "Norma", "shop": "supermarket"}, "countryCodes": ["at", "cz", "de", "fr"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/supermarket/Northern Store": {"name": "Northern Store", "icon": "maki-grocery", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7754361", "shop": "supermarket"}, "addTags": {"brand": "Northern Store", "brand:wikidata": "Q7754361", "brand:wikipedia": "en:The North West Company", "name": "Northern Store", "shop": "supermarket"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/Okay": {"name": "Okay", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/okaycompact/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2159701", "shop": "supermarket"}, "addTags": {"brand": "Okay", "brand:wikidata": "Q2159701", "brand:wikipedia": "fr:OKay", "name": "Okay", "shop": "supermarket"}, "countryCodes": ["be"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/Olímpica": {"name": "Olímpica", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/SupertiendaOlimpica/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q24749847", "shop": "supermarket"}, "addTags": {"brand": "Olímpica", "brand:wikidata": "Q24749847", "brand:wikipedia": "es:Grupo Empresarial Olímpica", "name": "Olímpica", "shop": "supermarket"}, "countryCodes": ["co"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/PLUS": {"name": "PLUS", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/PLUSsupermarkt/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1978981", "shop": "supermarket"}, "addTags": {"brand": "PLUS", "brand:wikidata": "Q1978981", "brand:wikipedia": "nl:PLUS (Nederlandse supermarkt)", "name": "PLUS", "shop": "supermarket"}, "countryCodes": ["nl"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/POLOmarket": {"name": "POLOmarket", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/polomarket/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11821937", "shop": "supermarket"}, "addTags": {"brand": "POLOmarket", "brand:wikidata": "Q11821937", "brand:wikipedia": "pl:Polomarket", "name": "POLOmarket", "shop": "supermarket"}, "countryCodes": ["pl"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/Palí": {"name": "Palí", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/PaliCostaRica/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1064887", "shop": "supermarket"}, "addTags": {"brand": "Palí", "brand:wikidata": "Q1064887", "brand:wikipedia": "es:Walmart de México y Centroamérica", "name": "Palí", "shop": "supermarket"}, "countryCodes": ["cr", "ni"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/Pam": {"name": "Pam", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/pampanoramaufficiale/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3777398", "shop": "supermarket"}, "addTags": {"brand": "Pam", "brand:wikidata": "Q3777398", "brand:wikipedia": "it:Gruppo PAM", "name": "Pam", "shop": "supermarket"}, "countryCodes": ["ch", "it"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/supermarket/Patel Brothers": {"name": "Patel Brothers", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/pbrosfan/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q55641396", "shop": "supermarket"}, "addTags": {"brand": "Patel Brothers", "brand:wikidata": "Q55641396", "brand:wikipedia": "en:Patel Brothers", "cuisine": "indian", "name": "Patel Brothers", "shop": "supermarket"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/Pavilions": {"name": "Pavilions", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/pavilions/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7155886", "shop": "supermarket"}, "addTags": {"brand": "Pavilions", "brand:wikidata": "Q7155886", "brand:wikipedia": "en:Pavilions (supermarket)", "name": "Pavilions", "shop": "supermarket"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/Penny": {"name": "Penny", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/pennyoesterreich/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q284688", "shop": "supermarket"}, "addTags": {"brand": "Penny", "brand:wikidata": "Q284688", "brand:wikipedia": "en:Penny (supermarket)", "name": "Penny", "shop": "supermarket"}, "countryCodes": ["at", "cz", "de", "hu", "it", "ro"], "terms": ["penny market", "penny markt"], "matchScore": 2, "suggestion": true}, "shop/supermarket/Pick 'n Save": {"name": "Pick 'n Save", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/PickNSaveStores/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7371288", "shop": "supermarket"}, "addTags": {"brand": "Pick 'n Save", "brand:wikidata": "Q7371288", "brand:wikipedia": "en:Roundy's", "name": "Pick 'n Save", "shop": "supermarket"}, "countryCodes": ["us", "za"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -4641,13 +4811,14 @@ "shop/supermarket/Provigo": {"name": "Provigo", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/ProvigoleMarcheTroisRivieres/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3408306", "shop": "supermarket"}, "addTags": {"brand": "Provigo", "brand:wikidata": "Q3408306", "brand:wikipedia": "en:Provigo", "name": "Provigo", "shop": "supermarket"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/Proxy Delhaize": {"name": "Proxy Delhaize", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/Delhaize/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q14903417", "shop": "supermarket"}, "addTags": {"brand": "Proxy Delhaize", "brand:wikidata": "Q14903417", "brand:wikipedia": "en:Delhaize Group", "name": "Proxy Delhaize", "shop": "supermarket"}, "countryCodes": ["be", "lu"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/Publix": {"name": "Publix", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/publix/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q672170", "shop": "supermarket"}, "addTags": {"brand": "Publix", "brand:wikidata": "Q672170", "brand:wikipedia": "en:Publix", "name": "Publix", "shop": "supermarket"}, "countryCodes": ["br", "us"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/supermarket/Pueblo": {"name": "Pueblo", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/supermercadospueblo/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7258464", "shop": "supermarket"}, "addTags": {"brand": "Pueblo", "brand:wikidata": "Q7258464", "brand:wikipedia": "en:Pueblo Supermarkets", "name": "Pueblo", "official_name": "Supermercados Pueblo", "official_name:en": "Pueblo Supermarkets", "official_name:es": "Supermercados Pueblo", "shop": "supermarket"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/Punto Simply": {"name": "Punto Simply", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/SDASUPERMERCATI/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3484790", "shop": "supermarket"}, "addTags": {"brand": "Punto Simply", "brand:wikidata": "Q3484790", "brand:wikipedia": "it:Simply Market", "name": "Punto Simply", "shop": "supermarket"}, "countryCodes": ["it"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/Puregold": {"name": "Puregold", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/puregold.shopping/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7261170", "shop": "supermarket"}, "addTags": {"brand": "Puregold", "brand:wikidata": "Q7261170", "brand:wikipedia": "en:Puregold", "name": "Puregold", "shop": "supermarket"}, "countryCodes": ["ph"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/Pão de Açúcar": {"name": "Pão de Açúcar", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/paodeacucar/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3411543", "shop": "supermarket"}, "addTags": {"brand": "Pão de Açúcar", "brand:wikidata": "Q3411543", "brand:wikipedia": "pt:Pão de Açúcar (supermercado brasileiro)", "name": "Pão de Açúcar", "shop": "supermarket"}, "countryCodes": ["br", "pt"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/QFC": {"name": "QFC", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/QFC/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7265425", "shop": "supermarket"}, "addTags": {"brand": "QFC", "brand:wikidata": "Q7265425", "brand:wikipedia": "en:QFC", "name": "QFC", "shop": "supermarket"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/Raley's": {"name": "Raley's", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/raleys/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7286970", "shop": "supermarket"}, "addTags": {"brand": "Raley's", "brand:wikidata": "Q7286970", "brand:wikipedia": "en:Raley's Supermarkets", "name": "Raley's", "shop": "supermarket"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/Ralphs": {"name": "Ralphs", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/Ralphs/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3929820", "shop": "supermarket"}, "addTags": {"brand": "Ralphs", "brand:wikidata": "Q3929820", "brand:wikipedia": "en:Ralphs", "name": "Ralphs", "shop": "supermarket"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, - "shop/supermarket/Real": {"name": "Real", "icon": "maki-grocery", "imageURL": "https://pbs.twimg.com/profile_images/930088669628850176/fUTDH88G_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q698473", "shop": "supermarket"}, "addTags": {"brand": "Real", "brand:wikidata": "Q698473", "brand:wikipedia": "en:Real (hypermarket)", "name": "Real", "shop": "supermarket"}, "terms": [], "matchScore": 2, "suggestion": true}, + "shop/supermarket/Real": {"name": "Real", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/real/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q698473", "shop": "supermarket"}, "addTags": {"brand": "Real", "brand:wikidata": "Q698473", "brand:wikipedia": "en:Real (hypermarket)", "name": "Real", "shop": "supermarket"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/Real Canadian Superstore": {"name": "Real Canadian Superstore", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/RealCanadianSuperstore/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7300856", "shop": "supermarket"}, "addTags": {"brand": "Real Canadian Superstore", "brand:wikidata": "Q7300856", "brand:wikipedia": "en:Real Canadian Superstore", "name": "Real Canadian Superstore", "shop": "supermarket"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/Redner's": {"name": "Redner's", "icon": "maki-grocery", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7306166", "shop": "supermarket"}, "addTags": {"brand": "Redner's", "brand:wikidata": "Q7306166", "brand:wikipedia": "en:Redner's Markets", "name": "Redner's", "shop": "supermarket"}, "countryCodes": ["us"], "terms": ["redners warehouse market"], "matchScore": 2, "suggestion": true}, "shop/supermarket/Reliance Fresh": {"name": "Reliance Fresh", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/RelianceFreshOfficial/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7311014", "shop": "supermarket"}, "addTags": {"brand": "Reliance Fresh", "brand:wikidata": "Q7311014", "brand:wikipedia": "en:Reliance Fresh", "name": "Reliance Fresh", "shop": "supermarket"}, "countryCodes": ["in"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -4677,7 +4848,7 @@ "shop/supermarket/Sprouts Farmers Market": {"name": "Sprouts Farmers Market", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/SproutsFarmersMarket/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7581369", "shop": "supermarket"}, "addTags": {"brand": "Sprouts Farmers Market", "brand:wikidata": "Q7581369", "brand:wikipedia": "en:Sprouts Farmers Market", "name": "Sprouts Farmers Market", "shop": "supermarket"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/Stater Bros.": {"name": "Stater Bros.", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/StaterBrosMarkets/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7604016", "shop": "supermarket"}, "addTags": {"brand": "Stater Bros.", "brand:wikidata": "Q7604016", "brand:wikipedia": "en:Stater Bros.", "name": "Stater Bros.", "shop": "supermarket"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/Stokrotka": {"name": "Stokrotka", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/sklepy.stokrotka/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q9345945", "shop": "supermarket"}, "addTags": {"brand": "Stokrotka", "brand:wikidata": "Q9345945", "brand:wikipedia": "pl:Stokrotka (sieć handlowa)", "name": "Stokrotka", "shop": "supermarket"}, "countryCodes": ["pl"], "terms": [], "matchScore": 2, "suggestion": true}, - "shop/supermarket/Stop & Shop": {"name": "Stop & Shop", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/StopandShop/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3658429", "shop": "supermarket"}, "addTags": {"brand": "Stop & Shop", "brand:wikidata": "Q3658429", "brand:wikipedia": "en:Stop & Shop", "name": "Stop & Shop", "shop": "supermarket"}, "countryCodes": ["us"], "terms": ["stop and shop"], "matchScore": 2, "suggestion": true}, + "shop/supermarket/Stop & Shop": {"name": "Stop & Shop", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/StopandShop/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3658429", "shop": "supermarket"}, "addTags": {"brand": "Stop & Shop", "brand:wikidata": "Q3658429", "brand:wikipedia": "en:Stop & Shop", "name": "Stop & Shop", "shop": "supermarket"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/Suma": {"name": "Suma", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/265671900499370/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q58012362", "shop": "supermarket"}, "addTags": {"brand": "Suma", "brand:wikidata": "Q58012362", "name": "Suma", "shop": "supermarket"}, "countryCodes": ["es"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/Super C": {"name": "Super C", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/superc.ca/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3504127", "shop": "supermarket"}, "addTags": {"brand": "Super C", "brand:wikidata": "Q3504127", "brand:wikipedia": "en:Super C (supermarket)", "name": "Super C", "shop": "supermarket"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/Super H Mart": {"name": "Super H Mart", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/hmartofficial/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5636306", "shop": "supermarket"}, "addTags": {"brand": "H Mart", "brand:wikidata": "Q5636306", "brand:wikipedia": "en:H Mart", "cuisine": "asian", "name": "Super H Mart", "shop": "supermarket"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -4685,10 +4856,11 @@ "shop/supermarket/Super U": {"name": "Super U", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/ULesCommercants/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2529029", "shop": "supermarket"}, "addTags": {"brand": "Super U", "brand:wikidata": "Q2529029", "brand:wikipedia": "en:Système U", "name": "Super U", "shop": "supermarket"}, "countryCodes": ["fr"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/SuperBrugsen": {"name": "SuperBrugsen", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/SuperBrugsen/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q12337746", "shop": "supermarket"}, "addTags": {"brand": "SuperBrugsen", "brand:wikidata": "Q12337746", "brand:wikipedia": "en:SuperBrugsen", "name": "SuperBrugsen", "shop": "supermarket"}, "countryCodes": ["dk"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/SuperValu": {"name": "SuperValu", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/SuperValuIreland/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7642081", "shop": "supermarket"}, "addTags": {"brand": "SuperValu", "brand:wikidata": "Q7642081", "brand:wikipedia": "en:SuperValu (Ireland)", "name": "SuperValu", "shop": "supermarket"}, "terms": [], "matchScore": 2, "suggestion": true}, - "shop/supermarket/Superama": {"name": "Superama", "icon": "maki-grocery", "imageURL": "https://pbs.twimg.com/profile_images/1141360829708886016/-mK49QYP_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6135762", "shop": "supermarket"}, "addTags": {"brand": "Superama", "brand:wikidata": "Q6135762", "brand:wikipedia": "es:Superama", "name": "Superama", "shop": "supermarket"}, "countryCodes": ["mx"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/supermarket/Superama": {"name": "Superama", "icon": "maki-grocery", "imageURL": "https://pbs.twimg.com/profile_images/1145720603724455942/zkMvSg5e_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6135762", "shop": "supermarket"}, "addTags": {"brand": "Superama", "brand:wikidata": "Q6135762", "brand:wikipedia": "es:Superama", "name": "Superama", "shop": "supermarket"}, "countryCodes": ["mx"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/Supercor": {"name": "Supercor", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/tusupercor/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6135841", "shop": "supermarket"}, "addTags": {"brand": "Supercor", "brand:wikidata": "Q6135841", "brand:wikipedia": "es:Supercor", "name": "Supercor", "shop": "supermarket"}, "countryCodes": ["es", "pt"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/Supersol": {"name": "Supersol", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/SupersolSupermercados/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62073427", "shop": "supermarket"}, "addTags": {"brand": "Supersol", "brand:wikidata": "Q62073427", "name": "Supersol", "shop": "supermarket"}, "countryCodes": ["ar", "es", "ma", "uy"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/Superspar": {"name": "Superspar", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/SPARintheUK/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q610492", "shop": "supermarket"}, "addTags": {"brand": "Superspar", "brand:wikidata": "Q610492", "brand:wikipedia": "en:Spar (retailer)", "name": "Superspar", "shop": "supermarket"}, "countryCodes": ["es", "za"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/supermarket/T&T Supermarket": {"name": "T&T Supermarket", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/TTSupermarket/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q837893", "shop": "supermarket"}, "addTags": {"brand": "T&T Supermarket", "brand:wikidata": "Q837893", "brand:wikipedia": "en:T & T Supermarket", "name": "T&T Supermarket", "shop": "supermarket"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/Tegut": {"name": "Tegut", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/tegut/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1547993", "shop": "supermarket"}, "addTags": {"brand": "Tegut", "brand:wikidata": "Q1547993", "brand:wikipedia": "en:Tegut", "name": "Tegut", "shop": "supermarket"}, "countryCodes": ["de"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/Tesco": {"name": "Tesco", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/tesco/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q487494", "shop": "supermarket"}, "addTags": {"brand": "Tesco", "brand:wikidata": "Q487494", "brand:wikipedia": "en:Tesco", "name": "Tesco", "shop": "supermarket"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/Tesco Express": {"name": "Tesco Express", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/tesco/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q487494", "shop": "supermarket"}, "addTags": {"brand": "Tesco Express", "brand:wikidata": "Q487494", "brand:wikipedia": "en:Tesco", "name": "Tesco Express", "shop": "supermarket"}, "terms": [], "matchScore": 2, "suggestion": true}, @@ -4707,6 +4879,8 @@ "shop/supermarket/U Express": {"name": "U Express", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/ULesCommercants/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2529029", "shop": "supermarket"}, "addTags": {"brand": "U Express", "brand:wikidata": "Q2529029", "brand:wikipedia": "en:Système U", "name": "U Express", "shop": "supermarket"}, "countryCodes": ["fr"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/Unimarc": {"name": "Unimarc", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/unimarc/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6156244", "shop": "supermarket"}, "addTags": {"brand": "Unimarc", "brand:wikidata": "Q6156244", "brand:wikipedia": "es:Unimarc", "name": "Unimarc", "shop": "supermarket"}, "countryCodes": ["cl"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/Unimarkt": {"name": "Unimarkt", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/Unimarkt/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1169599", "shop": "supermarket"}, "addTags": {"brand": "Unimarkt", "brand:wikidata": "Q1169599", "brand:wikipedia": "de:Unimarkt", "name": "Unimarkt", "shop": "supermarket"}, "countryCodes": ["at"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/supermarket/Vallarta": {"name": "Vallarta", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/vallarta.supermarkets/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7911833", "shop": "supermarket"}, "addTags": {"brand": "Vallarta", "brand:wikidata": "Q7911833", "brand:wikipedia": "en:Vallarta Supermarkets", "cuisine": "latin_american", "name": "Vallarta", "name:es": "Vallarta", "official_name": "Vallarta Supermarkets", "shop": "supermarket"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/supermarket/Valu-mart": {"name": "Valu-mart", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/valumartCA/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7912687", "shop": "supermarket"}, "addTags": {"brand": "Valu-mart", "brand:wikidata": "Q7912687", "brand:wikipedia": "en:Valu-mart", "name": "Valu-mart", "shop": "supermarket"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/Vea": {"name": "Vea", "icon": "maki-grocery", "imageURL": "https://pbs.twimg.com/profile_images/760081378868391936/qPOPFsTZ_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5858167", "shop": "supermarket"}, "addTags": {"brand": "Vea", "brand:wikidata": "Q5858167", "brand:wikipedia": "es:Vea (supermercado)", "name": "Vea", "shop": "supermarket"}, "countryCodes": ["ar"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/VinMart": {"name": "VinMart", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/sieuthivinmart/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q60245505", "shop": "supermarket"}, "addTags": {"brand": "VinMart", "brand:wikidata": "Q60245505", "brand:wikipedia": "vi:VinMart", "name": "VinMart", "shop": "supermarket"}, "countryCodes": ["vn"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/Volg": {"name": "Volg", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/1953378021650189/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2530746", "shop": "supermarket"}, "addTags": {"brand": "Volg", "brand:wikidata": "Q2530746", "brand:wikipedia": "de:Volg", "name": "Volg", "shop": "supermarket"}, "countryCodes": ["ch", "li"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -4724,6 +4898,7 @@ "shop/supermarket/Winn-Dixie": {"name": "Winn-Dixie", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/winndixie/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1264366", "shop": "supermarket"}, "addTags": {"brand": "Winn-Dixie", "brand:wikidata": "Q1264366", "brand:wikipedia": "en:Winn-Dixie", "name": "Winn-Dixie", "shop": "supermarket"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/Woolworths": {"name": "Woolworths", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/woolworths/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3249145", "shop": "supermarket"}, "addTags": {"brand": "Woolworths", "brand:wikidata": "Q3249145", "brand:wikipedia": "en:Woolworths Supermarkets", "name": "Woolworths", "shop": "supermarket"}, "countryCodes": ["au"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/Your Independent Grocer": {"name": "Your Independent Grocer", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/YourIndependentGrocer/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q8058833", "shop": "supermarket"}, "addTags": {"brand": "Your Independent Grocer", "brand:wikidata": "Q8058833", "brand:wikipedia": "en:Your Independent Grocer", "name": "Your Independent Grocer", "shop": "supermarket"}, "countryCodes": ["ca"], "terms": ["independent"], "matchScore": 2, "suggestion": true}, + "shop/supermarket/Zehrs": {"name": "Zehrs", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/ZehrsON/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q8068546", "shop": "supermarket"}, "addTags": {"brand": "Zehrs", "brand:wikidata": "Q8068546", "brand:wikipedia": "en:Zehrs Markets", "name": "Zehrs", "shop": "supermarket"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/basic": {"name": "basic", "icon": "maki-grocery", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FBasic%20logo.jpg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q809994", "shop": "supermarket"}, "addTags": {"brand": "basic", "brand:wikidata": "Q809994", "brand:wikipedia": "de:Basic AG", "name": "basic", "organic": "only", "shop": "supermarket"}, "countryCodes": ["de"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/denn's Biomarkt": {"name": "denn's Biomarkt", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/dennsBiomarkt/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q48883773", "shop": "supermarket"}, "addTags": {"brand": "denn's Biomarkt", "brand:wikidata": "Q48883773", "brand:wikipedia": "de:Dennree", "name": "denn's Biomarkt", "organic": "only", "shop": "supermarket"}, "countryCodes": ["at", "de"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/fakta": {"name": "fakta", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/fakta/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3172238", "shop": "supermarket"}, "addTags": {"brand": "fakta", "brand:wikidata": "Q3172238", "brand:wikipedia": "en:Fakta", "name": "fakta", "shop": "supermarket"}, "countryCodes": ["dk"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -4745,7 +4920,9 @@ "shop/supermarket/Гулливер": {"name": "Гулливер", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/gullivermarket/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q58003470", "shop": "supermarket"}, "addTags": {"brand": "Гулливер", "brand:wikidata": "Q58003470", "name": "Гулливер", "shop": "supermarket"}, "countryCodes": ["ru"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/Десяточка": {"name": "Десяточка", "icon": "maki-grocery", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q61876182", "shop": "supermarket"}, "addTags": {"brand": "Десяточка", "brand:en": "Desyatochka", "brand:wikidata": "Q61876182", "name": "Десяточка", "shop": "supermarket"}, "countryCodes": ["ru"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/Дикси": {"name": "Дикси", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/Dixyclub/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4161561", "shop": "supermarket"}, "addTags": {"brand": "Дикси", "brand:en": "Dixy", "brand:wikidata": "Q4161561", "brand:wikipedia": "ru:Дикси (сеть магазинов)", "name": "Дикси", "shop": "supermarket"}, "countryCodes": ["ru"], "terms": [], "matchScore": 2, "suggestion": true}, - "shop/supermarket/Евроопт": {"name": "Евроопт", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/Eurooptby/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2565040", "shop": "supermarket"}, "addTags": {"brand": "Евроопт", "brand:en": "Euroopt", "brand:ru": "Евроопт", "brand:wikidata": "Q2565040", "brand:wikipedia": "be:Еўрагандаль", "name": "Евроопт", "name:en": "Euroopt", "name:ru": "Евроопт", "shop": "supermarket"}, "countryCodes": ["by"], "terms": ["евроопт market"], "matchScore": 2, "suggestion": true}, + "shop/supermarket/Евроопт": {"name": "Евроопт", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/Eurooptby/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2565040", "shop": "supermarket"}, "addTags": {"brand": "Евроопт", "brand:en": "Euroopt", "brand:ru": "Евроопт", "brand:wikidata": "Q2565040", "brand:wikipedia": "be:Еўрагандаль", "name": "Евроопт", "name:en": "Euroopt", "name:ru": "Евроопт", "shop": "supermarket"}, "countryCodes": ["by"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/supermarket/Евроопт Hyper": {"name": "Евроопт Hyper", "icon": "maki-grocery", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q65455975", "shop": "supermarket"}, "addTags": {"brand": "Евроопт Hyper", "brand:wikidata": "Q65455975", "name": "Евроопт Hyper", "shop": "supermarket"}, "countryCodes": ["by"], "terms": ["евроопт Гипер"], "matchScore": 2, "suggestion": true}, + "shop/supermarket/Евроопт Super": {"name": "Евроопт Super", "icon": "maki-grocery", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q65455960", "shop": "supermarket"}, "addTags": {"brand": "Евроопт Super", "brand:wikidata": "Q65455960", "name": "Евроопт Super", "shop": "supermarket"}, "countryCodes": ["by"], "terms": ["евроопт Супер"], "matchScore": 2, "suggestion": true}, "shop/supermarket/Карусель": {"name": "Карусель", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/karuselgiper/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4216307", "shop": "supermarket"}, "addTags": {"brand": "Карусель", "brand:en": "Karusel", "brand:wikidata": "Q4216307", "brand:wikipedia": "ru:Карусель (сеть магазинов)", "name": "Карусель", "name:en": "Karusel", "shop": "supermarket"}, "countryCodes": ["ru"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/Кировский": {"name": "Кировский", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/Kirovskii/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q63301903", "shop": "supermarket"}, "addTags": {"brand": "Кировский", "brand:wikidata": "Q63301903", "name": "Кировский", "shop": "supermarket"}, "countryCodes": ["ru"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/Командор": {"name": "Командор", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/prkomandor/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q61876152", "shop": "supermarket"}, "addTags": {"brand": "Командор", "brand:en": "Komandor", "brand:wikidata": "Q61876152", "name": "Командор", "shop": "supermarket"}, "countryCodes": ["ru"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -4787,11 +4964,12 @@ "shop/supermarket/業務スーパー": {"name": "業務スーパー", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/gsjdf/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11590183", "shop": "supermarket"}, "addTags": {"brand": "業務スーパー", "brand:en": "Gyōmu sūpā", "brand:ja": "業務スーパー", "brand:wikidata": "Q11590183", "brand:wikipedia": "ja:神戸物産", "name": "業務スーパー", "name:en": "Gyōmu sūpā", "name:ja": "業務スーパー", "shop": "supermarket"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/沃尔玛": {"name": "沃尔玛", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/walmart/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q483551", "shop": "supermarket"}, "addTags": {"brand": "沃尔玛", "brand:en": "Walmart", "brand:wikidata": "Q483551", "brand:wikipedia": "wuu:沃尔玛", "name": "沃尔玛", "name:en": "Walmart", "shop": "supermarket"}, "countryCodes": ["cn"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/美廉社": {"name": "美廉社", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/simplemart1/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q15914017", "shop": "supermarket"}, "addTags": {"brand": "美廉社", "brand:en": "Simple Mart", "brand:wikidata": "Q15914017", "brand:wikipedia": "zh:美廉社", "name": "美廉社", "name:en": "Simple Mart", "shop": "supermarket"}, "countryCodes": ["tw"], "terms": [], "matchScore": 2, "suggestion": true}, - "shop/supermarket/西友": {"name": "西友", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/yourrepo/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3108542", "shop": "supermarket"}, "addTags": {"brand": "西友", "brand:en": "Seiyu Group", "brand:wikidata": "Q3108542", "brand:wikipedia": "en:Seiyu Group", "name": "西友", "name:en": "Seiyu Group", "shop": "supermarket"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/supermarket/西友": {"name": "西友", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/yourrepo/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3108542", "shop": "supermarket"}, "addTags": {"brand": "西友", "brand:en": "Seiyu", "brand:wikidata": "Q3108542", "brand:wikipedia": "en:Seiyu Group", "name": "西友", "name:en": "Seiyu", "shop": "supermarket"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/頂好": {"name": "頂好", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/wellcome.supermarket/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q706247", "shop": "supermarket"}, "addTags": {"brand": "頂好", "brand:en": "Wellcome", "brand:wikidata": "Q706247", "brand:wikipedia": "en:Wellcome", "name": "頂好", "name:en": "Wellcome", "shop": "supermarket"}, "countryCodes": ["tw"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/頂好超市": {"name": "頂好超市", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/wellcome.supermarket/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q706247", "shop": "supermarket"}, "addTags": {"brand": "頂好超市", "brand:en": "Wellcome", "brand:wikidata": "Q706247", "brand:wikipedia": "en:Wellcome", "name": "頂好超市", "name:en": "Wellcome", "shop": "supermarket"}, "countryCodes": ["tw"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/롯데마트": {"name": "롯데마트", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/lottemart/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q326715", "shop": "supermarket"}, "addTags": {"brand": "롯데마트", "brand:ko": "롯데마트", "brand:wikidata": "Q326715", "brand:wikipedia": "ko:롯데마트", "name": "롯데마트", "name:en": "Lotte Mart", "name:ko": "롯데마트", "shop": "supermarket"}, "countryCodes": ["kr"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/하나로마트": {"name": "하나로마트", "icon": "maki-grocery", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q12590611", "shop": "supermarket"}, "addTags": {"brand": "하나로마트", "brand:en": "Hanaro Mart", "brand:ko": "하나로마트", "brand:wikidata": "Q12590611", "brand:wikipedia": "ko:농협유통", "name": "하나로마트", "name:ko": "하나로마트", "shop": "supermarket"}, "countryCodes": ["kr"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/swimming_pool/Leslie's Pool Supplies": {"name": "Leslie's Pool Supplies", "icon": "fas-swimmer", "imageURL": "https://graph.facebook.com/LesliesPoolSupplies/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6530568", "shop": "swimming_pool"}, "addTags": {"brand": "Leslie's Pool Supplies", "brand:wikidata": "Q6530568", "brand:wikipedia": "en:Leslie's Poolmart", "name": "Leslie's Pool Supplies", "official_name": "Leslie's Pool Supplies Service & Repair", "shop": "swimming_pool"}, "countryCodes": ["us"], "terms": ["leslie's swimming pool supplies"], "matchScore": 2, "suggestion": true}, "shop/tea/DavidsTea": {"name": "DavidsTea", "icon": "maki-teahouse", "imageURL": "https://pbs.twimg.com/profile_images/1134536272062685184/YvIzsQOi_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3019129", "shop": "tea"}, "addTags": {"brand": "DavidsTea", "brand:wikidata": "Q3019129", "brand:wikipedia": "en:DavidsTea", "name": "DavidsTea", "shop": "tea"}, "countryCodes": ["ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/tea/T2": {"name": "T2", "icon": "maki-teahouse", "imageURL": "https://graph.facebook.com/T2Tea/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q48802134", "shop": "tea"}, "addTags": {"brand": "T2", "brand:wikidata": "Q48802134", "brand:wikipedia": "en:T2 (Australian company)", "name": "T2", "shop": "tea"}, "countryCodes": ["au"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/tea/TeeGschwendner": {"name": "TeeGschwendner", "icon": "maki-teahouse", "imageURL": "https://graph.facebook.com/TeeGschwendner/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2399969", "shop": "tea"}, "addTags": {"brand": "TeeGschwendner", "brand:wikidata": "Q2399969", "brand:wikipedia": "de:TeeGschwendner", "name": "TeeGschwendner", "shop": "tea"}, "countryCodes": ["de"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -4820,6 +4998,7 @@ "shop/travel_agency/Coral Travel": {"name": "Coral Travel", "icon": "fas-suitcase", "imageURL": "https://graph.facebook.com/coraltravelofficial/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q58011479", "shop": "travel_agency"}, "addTags": {"brand": "Coral Travel", "brand:wikidata": "Q58011479", "name": "Coral Travel", "shop": "travel_agency"}, "countryCodes": ["pl", "ru", "ua"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/travel_agency/D-reizen": {"name": "D-reizen", "icon": "fas-suitcase", "imageURL": "https://graph.facebook.com/dreizenvakanties/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2445498", "shop": "travel_agency"}, "addTags": {"brand": "D-reizen", "brand:wikidata": "Q2445498", "brand:wikipedia": "nl:D-reizen", "name": "D-reizen", "shop": "travel_agency"}, "countryCodes": ["nl"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/travel_agency/DER Reisebüro": {"name": "DER Reisebüro", "icon": "fas-suitcase", "imageURL": "https://graph.facebook.com/DER/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q56729186", "shop": "travel_agency"}, "addTags": {"brand": "DER Reisebüro", "brand:wikidata": "Q56729186", "brand:wikipedia": "de:Deutsches Reisebüro", "name": "DER Reisebüro", "shop": "travel_agency"}, "countryCodes": ["de"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/travel_agency/Expedia CruiseShipCenters": {"name": "Expedia CruiseShipCenters", "icon": "fas-suitcase", "imageURL": "https://pbs.twimg.com/profile_images/476431342729588736/6JpT6tus_bigger.jpeg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5189985", "shop": "travel_agency"}, "addTags": {"brand": "Expedia CruiseShipCenters", "brand:wikidata": "Q5189985", "brand:wikipedia": "en:Expedia CruiseShipCenters", "name": "Expedia CruiseShipCenters", "shop": "travel_agency"}, "countryCodes": ["ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/travel_agency/First Reisebüro": {"name": "First Reisebüro", "icon": "fas-suitcase", "imageURL": "https://graph.facebook.com/TUIDeutschland/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q573103", "shop": "travel_agency"}, "addTags": {"brand": "First Reisebüro", "brand:wikidata": "Q573103", "brand:wikipedia": "en:TUI Group", "name": "First Reisebüro", "shop": "travel_agency"}, "countryCodes": ["de"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/travel_agency/Flight Centre": {"name": "Flight Centre", "icon": "fas-suitcase", "imageURL": "https://graph.facebook.com/flightcentreAU/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5459202", "shop": "travel_agency"}, "addTags": {"brand": "Flight Centre", "brand:wikidata": "Q5459202", "brand:wikipedia": "en:Flight Centre", "name": "Flight Centre", "shop": "travel_agency"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/travel_agency/Halcón Viajes": {"name": "Halcón Viajes", "icon": "fas-suitcase", "imageURL": "https://graph.facebook.com/halconviajes.oficial/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q57591939", "shop": "travel_agency"}, "addTags": {"brand": "Halcón Viajes", "brand:wikidata": "Q57591939", "name": "Halcón Viajes", "shop": "travel_agency"}, "countryCodes": ["es"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -4841,7 +5020,7 @@ "shop/tyres/Tire Discounters": {"name": "Tire Discounters", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/TireDiscounters/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q29093639", "shop": "tyres"}, "addTags": {"brand": "Tire Discounters", "brand:wikidata": "Q29093639", "brand:wikipedia": "en:Tire Discounters", "name": "Tire Discounters", "shop": "tyres"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/tyres/Tires Plus": {"name": "Tires Plus", "icon": "maki-shop", "imageURL": "https://pbs.twimg.com/profile_images/378800000821067695/d59e0a647859aabacc690ebb962670aa_bigger.jpeg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q64015091", "shop": "tyres"}, "addTags": {"brand": "Tires Plus", "brand:wikidata": "Q64015091", "name": "Tires Plus", "shop": "tyres"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/tyres/Vianor": {"name": "Vianor", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/VianorSuomi/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q10714920", "shop": "tyres"}, "addTags": {"brand": "Vianor", "brand:wikidata": "Q10714920", "brand:wikipedia": "sv:Vianor", "name": "Vianor", "shop": "tyres"}, "terms": [], "matchScore": 2, "suggestion": true}, - "shop/vacuum_cleaner/Oreck": {"name": "Oreck", "icon": "maki-shop", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q57273844", "shop": "vacuum_cleaner"}, "addTags": {"brand": "Oreck", "brand:wikidata": "Q57273844", "name": "Oreck", "shop": "vacuum_cleaner"}, "countryCodes": ["us"], "terms": ["oreck vacuums"], "matchScore": 2, "suggestion": true}, + "shop/vacuum_cleaner/Oreck": {"name": "Oreck", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/oreck/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q57273844", "shop": "vacuum_cleaner"}, "addTags": {"brand": "Oreck", "brand:wikidata": "Q57273844", "name": "Oreck", "shop": "vacuum_cleaner"}, "countryCodes": ["us"], "terms": ["oreck vacuums"], "matchScore": 2, "suggestion": true}, "shop/variety_store/99 Cents Only Stores": {"name": "99 Cents Only Stores", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/99CentsOnly/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4646294", "shop": "variety_store"}, "addTags": {"brand": "99 Cents Only Stores", "brand:wikidata": "Q4646294", "brand:wikipedia": "en:99 Cents Only Stores", "name": "99 Cents Only Stores", "shop": "variety_store"}, "countryCodes": ["us"], "terms": ["99 cent only stores", "99 cents only"], "matchScore": 2, "suggestion": true}, "shop/variety_store/Action": {"name": "Action", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/actiondotcom/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2634111", "shop": "variety_store"}, "addTags": {"brand": "Action", "brand:wikidata": "Q2634111", "brand:wikipedia": "nl:Action (winkel)", "name": "Action", "shop": "variety_store"}, "countryCodes": ["at", "be", "de", "fr", "nl", "pl"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/variety_store/B&M Bargains": {"name": "B&M Bargains", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/bmstores/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4836931", "shop": "variety_store"}, "addTags": {"brand": "B&M Bargains", "brand:wikidata": "Q4836931", "brand:wikipedia": "en:B & M", "name": "B&M Bargains", "shop": "variety_store"}, "countryCodes": ["gb"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -4850,19 +5029,20 @@ "shop/variety_store/Dollar General": {"name": "Dollar General", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/dollargeneral/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q145168", "shop": "variety_store"}, "addTags": {"brand": "Dollar General", "brand:wikidata": "Q145168", "brand:wikipedia": "en:Dollar General", "name": "Dollar General", "shop": "variety_store"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/variety_store/Dollar Tree": {"name": "Dollar Tree", "icon": "maki-shop", "imageURL": "https://pbs.twimg.com/profile_images/509405558898561024/27hmihjq_bigger.png", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5289230", "shop": "variety_store"}, "addTags": {"brand": "Dollar Tree", "brand:wikidata": "Q5289230", "brand:wikipedia": "en:Dollar Tree", "name": "Dollar Tree", "shop": "variety_store"}, "countryCodes": ["ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/variety_store/Dollarama": {"name": "Dollarama", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/415845051799232/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3033947", "shop": "variety_store"}, "addTags": {"brand": "Dollarama", "brand:wikidata": "Q3033947", "brand:wikipedia": "en:Dollarama", "name": "Dollarama", "shop": "variety_store"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, - "shop/variety_store/EuroShop": {"name": "EuroShop", "icon": "maki-shop", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FEuroshop%20LOGO.jpg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q15846763", "shop": "variety_store"}, "addTags": {"brand": "EuroShop", "brand:wikidata": "Q15846763", "brand:wikipedia": "de:Schum EuroShop", "name": "EuroShop", "shop": "variety_store"}, "countryCodes": ["de"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/variety_store/EuroShop": {"name": "EuroShop", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/schumeuroshop/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q15846763", "shop": "variety_store"}, "addTags": {"brand": "EuroShop", "brand:wikidata": "Q15846763", "brand:wikipedia": "de:Schum EuroShop", "name": "EuroShop", "shop": "variety_store"}, "countryCodes": ["de"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/variety_store/Family Dollar": {"name": "Family Dollar", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/familydollar/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5433101", "shop": "variety_store"}, "addTags": {"brand": "Family Dollar", "brand:wikidata": "Q5433101", "brand:wikipedia": "en:Family Dollar", "name": "Family Dollar", "shop": "variety_store"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/variety_store/Five Below": {"name": "Five Below", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/FiveBelow/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5455836", "shop": "variety_store"}, "addTags": {"brand": "Five Below", "brand:wikidata": "Q5455836", "brand:wikipedia": "en:Five Below", "name": "Five Below", "shop": "variety_store"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/variety_store/Fix Price": {"name": "Fix Price", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/fixprice.russia/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4038791", "shop": "variety_store"}, "addTags": {"brand": "Fix Price", "brand:wikidata": "Q4038791", "brand:wikipedia": "ru:Fix Price (сеть магазинов)", "name": "Fix Price", "shop": "variety_store"}, "countryCodes": ["by", "ru"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/variety_store/Flying Tiger Copenhagen": {"name": "Flying Tiger Copenhagen", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/flyingtigercph/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2786319", "shop": "variety_store"}, "addTags": {"brand": "Flying Tiger Copenhagen", "brand:wikidata": "Q2786319", "brand:wikipedia": "en:Flying Tiger Copenhagen", "name": "Flying Tiger Copenhagen", "shop": "variety_store", "short_name": "Flying Tiger"}, "terms": ["tgr", "tiger"], "matchScore": 2, "suggestion": true}, "shop/variety_store/GiFi": {"name": "GiFi", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/GiFi.Officiel/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3105439", "shop": "variety_store"}, "addTags": {"brand": "GiFi", "brand:wikidata": "Q3105439", "brand:wikipedia": "fr:Gifi", "name": "GiFi", "shop": "variety_store"}, "countryCodes": ["fr"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/variety_store/Home Bargains": {"name": "Home Bargains", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/homebargains/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5888229", "shop": "variety_store"}, "addTags": {"brand": "Home Bargains", "brand:wikidata": "Q5888229", "brand:wikipedia": "en:Home Bargains", "name": "Home Bargains", "shop": "variety_store"}, "countryCodes": ["gb"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/variety_store/Miniso": {"name": "Miniso", "icon": "maki-shop", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FMiniso%20international%20logo.svg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q20732498", "shop": "variety_store"}, "addTags": {"brand": "Miniso", "brand:wikidata": "Q20732498", "brand:wikipedia": "en:Miniso", "name": "Miniso", "shop": "variety_store"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/variety_store/Mäc-Geiz": {"name": "Mäc-Geiz", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/1652809328274529/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1957126", "shop": "variety_store"}, "addTags": {"brand": "Mäc-Geiz", "brand:wikidata": "Q1957126", "brand:wikipedia": "de:Mäc-Geiz", "name": "Mäc-Geiz", "shop": "variety_store"}, "countryCodes": ["de"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/variety_store/NOZ": {"name": "NOZ", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/UniversNOZ/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3345688", "shop": "variety_store"}, "addTags": {"brand": "NOZ", "brand:wikidata": "Q3345688", "brand:wikipedia": "fr:Noz", "name": "NOZ", "shop": "variety_store"}, "countryCodes": ["fr"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/variety_store/Poundland": {"name": "Poundland", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/Poundland/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1434528", "shop": "variety_store"}, "addTags": {"brand": "Poundland", "brand:wikidata": "Q1434528", "brand:wikipedia": "en:Poundland", "name": "Poundland", "shop": "variety_store"}, "countryCodes": ["gb"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/variety_store/Poundstretcher": {"name": "Poundstretcher", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/Poundstretcher/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7235675", "shop": "variety_store"}, "addTags": {"brand": "Poundstretcher", "brand:wikidata": "Q7235675", "brand:wikipedia": "en:Poundstretcher", "name": "Poundstretcher", "shop": "variety_store"}, "countryCodes": ["gb"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/variety_store/Poundworld": {"name": "Poundworld", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/PoundWorld/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q16967516", "shop": "variety_store"}, "addTags": {"brand": "Poundworld", "brand:wikidata": "Q16967516", "brand:wikipedia": "en:Poundworld", "name": "Poundworld", "shop": "variety_store"}, "countryCodes": ["gb", "ie"], "terms": [], "matchScore": 2, "suggestion": true}, - "shop/variety_store/Roses": {"name": "Roses", "icon": "maki-shop", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7368644", "shop": "variety_store"}, "addTags": {"brand": "Roses", "brand:wikidata": "Q7368644", "brand:wikipedia": "en:Roses (store)", "name": "Roses", "shop": "variety_store"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/variety_store/Roses": {"name": "Roses", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/rosesdiscountstores/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7368644", "shop": "variety_store"}, "addTags": {"brand": "Roses", "brand:wikidata": "Q7368644", "brand:wikipedia": "en:Roses (store)", "name": "Roses", "shop": "variety_store"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/variety_store/TEDi": {"name": "TEDi", "icon": "maki-shop", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FTEDi-Logo.svg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1364603", "shop": "variety_store"}, "addTags": {"brand": "TEDi", "brand:wikidata": "Q1364603", "brand:wikipedia": "de:TEDi", "name": "TEDi", "shop": "variety_store"}, "countryCodes": ["at", "de", "es", "hr", "si", "sk"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/variety_store/Tokmanni": {"name": "Tokmanni", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/Tokmanni.fi/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q13423470", "shop": "variety_store"}, "addTags": {"brand": "Tokmanni", "brand:wikidata": "Q13423470", "brand:wikipedia": "fi:Tokmanni", "name": "Tokmanni", "shop": "variety_store"}, "countryCodes": ["fi"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/variety_store/Wilko": {"name": "Wilko", "icon": "maki-shop", "imageURL": "https://graph.facebook.com/LoveWilko/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q8002536", "shop": "variety_store"}, "addTags": {"brand": "Wilko", "brand:wikidata": "Q8002536", "brand:wikipedia": "en:Wilko (retailer)", "name": "Wilko", "shop": "variety_store"}, "countryCodes": ["gb"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -4899,15 +5079,15 @@ "tourism/hotel/Comfort Inn & Suites": {"name": "Comfort Inn & Suites", "icon": "fas-concierge-bell", "imageURL": "https://graph.facebook.com/choicehotels/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1075788", "tourism": "hotel"}, "addTags": {"brand": "Comfort Inn & Suites", "brand:wikidata": "Q1075788", "brand:wikipedia": "en:Choice Hotels", "name": "Comfort Inn & Suites", "tourism": "hotel"}, "countryCodes": ["ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "tourism/hotel/Comfort Suites": {"name": "Comfort Suites", "icon": "fas-concierge-bell", "imageURL": "https://graph.facebook.com/choicehotels/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1075788", "tourism": "hotel"}, "addTags": {"brand": "Comfort Suites", "brand:wikidata": "Q1075788", "brand:wikipedia": "en:Choice Hotels", "name": "Comfort Suites", "tourism": "hotel"}, "terms": [], "matchScore": 2, "suggestion": true}, "tourism/hotel/Country Inn & Suites": {"name": "Country Inn & Suites", "icon": "fas-concierge-bell", "imageURL": "https://graph.facebook.com/countryinn/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5177332", "tourism": "hotel"}, "addTags": {"brand": "Country Inn & Suites", "brand:wikidata": "Q5177332", "brand:wikipedia": "en:Country Inns & Suites", "name": "Country Inn & Suites", "tourism": "hotel"}, "countryCodes": ["ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, - "tourism/hotel/Courtyard by Marriott": {"name": "Courtyard by Marriott", "icon": "fas-concierge-bell", "imageURL": "https://graph.facebook.com/courtyard/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1053170", "tourism": "hotel"}, "addTags": {"brand": "Courtyard by Marriott", "brand:wikidata": "Q1053170", "brand:wikipedia": "en:Courtyard by Marriott", "name": "Courtyard by Marriott", "tourism": "hotel"}, "countryCodes": ["ca", "us"], "terms": ["courtyard marriott"], "matchScore": 2, "suggestion": true}, + "tourism/hotel/Courtyard by Marriott": {"name": "Courtyard by Marriott", "icon": "fas-concierge-bell", "imageURL": "https://graph.facebook.com/courtyard/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1053170", "tourism": "hotel"}, "addTags": {"brand": "Courtyard by Marriott", "brand:wikidata": "Q1053170", "brand:wikipedia": "en:Courtyard by Marriott", "name": "Courtyard by Marriott", "tourism": "hotel"}, "countryCodes": ["ca", "us"], "terms": ["courtyard", "courtyard marriott"], "matchScore": 2, "suggestion": true}, "tourism/hotel/Crowne Plaza": {"name": "Crowne Plaza", "icon": "fas-concierge-bell", "imageURL": "https://graph.facebook.com/crowneplaza/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2746220", "tourism": "hotel"}, "addTags": {"brand": "Crowne Plaza", "brand:wikidata": "Q2746220", "brand:wikipedia": "en:Crowne Plaza", "name": "Crowne Plaza", "tourism": "hotel"}, "terms": [], "matchScore": 2, "suggestion": true}, "tourism/hotel/Days Inn": {"name": "Days Inn", "icon": "fas-concierge-bell", "imageURL": "https://graph.facebook.com/DaysInn/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1047239", "tourism": "hotel"}, "addTags": {"brand": "Days Inn", "brand:wikidata": "Q1047239", "brand:wikipedia": "en:Days Inn", "name": "Days Inn", "tourism": "hotel"}, "countryCodes": ["ca", "gb", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "tourism/hotel/Embassy Suites": {"name": "Embassy Suites", "icon": "fas-concierge-bell", "imageURL": "https://graph.facebook.com/EmbassySuites/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5369524", "tourism": "hotel"}, "addTags": {"brand": "Embassy Suites", "brand:wikidata": "Q5369524", "brand:wikipedia": "en:Embassy Suites by Hilton", "name": "Embassy Suites", "tourism": "hotel"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "tourism/hotel/Extended Stay America": {"name": "Extended Stay America", "icon": "fas-concierge-bell", "imageURL": "https://graph.facebook.com/ExtendedStayAmerica/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5421850", "tourism": "hotel"}, "addTags": {"brand": "Extended Stay America", "brand:wikidata": "Q5421850", "brand:wikipedia": "en:Extended Stay America", "name": "Extended Stay America", "tourism": "hotel"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, - "tourism/hotel/Fairfield Inn": {"name": "Fairfield Inn", "icon": "fas-concierge-bell", "imageURL": "https://graph.facebook.com/fairfieldbymarriott/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5430314", "tourism": "hotel"}, "addTags": {"brand": "Fairfield Inn", "brand:wikidata": "Q5430314", "brand:wikipedia": "en:Fairfield Inn by Marriott", "name": "Fairfield Inn", "tourism": "hotel"}, "countryCodes": ["ca", "us"], "terms": ["fairfield inn & suites", "fairfield inn and suites"], "matchScore": 2, "suggestion": true}, + "tourism/hotel/Fairfield Inn": {"name": "Fairfield Inn", "icon": "fas-concierge-bell", "imageURL": "https://graph.facebook.com/fairfieldbymarriott/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5430314", "tourism": "hotel"}, "addTags": {"brand": "Fairfield Inn", "brand:wikidata": "Q5430314", "brand:wikipedia": "en:Fairfield Inn by Marriott", "name": "Fairfield Inn", "tourism": "hotel"}, "countryCodes": ["ca", "us"], "terms": ["fairfield inn and suites"], "matchScore": 2, "suggestion": true}, "tourism/hotel/Formule 1": {"name": "Formule 1", "icon": "fas-concierge-bell", "imageURL": "https://graph.facebook.com/HotelF1/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1630895", "tourism": "hotel"}, "addTags": {"brand": "Formule 1", "brand:wikidata": "Q1630895", "brand:wikipedia": "en:Hotel Formule 1", "name": "Formule 1", "tourism": "hotel"}, "countryCodes": ["fr"], "terms": [], "matchScore": 2, "suggestion": true}, "tourism/hotel/Grand Hyatt": {"name": "Grand Hyatt", "icon": "fas-concierge-bell", "imageURL": "https://graph.facebook.com/hyatt/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1425063", "tourism": "hotel"}, "addTags": {"brand": "Grand Hyatt", "brand:wikidata": "Q1425063", "brand:wikipedia": "en:Hyatt", "name": "Grand Hyatt", "tourism": "hotel"}, "terms": [], "matchScore": 2, "suggestion": true}, - "tourism/hotel/Hampton": {"name": "Hampton", "icon": "fas-concierge-bell", "imageURL": "https://graph.facebook.com/hamptonbyhilton/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5646230", "tourism": "hotel"}, "addTags": {"alt_name": "Hampton Inn", "brand": "Hampton", "brand:wikidata": "Q5646230", "brand:wikipedia": "en:Hampton by Hilton", "name": "Hampton", "tourism": "hotel"}, "countryCodes": ["us"], "terms": ["hampton inn & suites", "hampton inn and suites"], "matchScore": 2, "suggestion": true}, + "tourism/hotel/Hampton": {"name": "Hampton", "icon": "fas-concierge-bell", "imageURL": "https://graph.facebook.com/hamptonbyhilton/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5646230", "tourism": "hotel"}, "addTags": {"alt_name": "Hampton Inn", "brand": "Hampton", "brand:wikidata": "Q5646230", "brand:wikipedia": "en:Hampton by Hilton", "name": "Hampton", "tourism": "hotel"}, "countryCodes": ["us"], "terms": ["hampton inn and suites"], "matchScore": 2, "suggestion": true}, "tourism/hotel/Hilton": {"name": "Hilton", "icon": "fas-concierge-bell", "imageURL": "https://graph.facebook.com/hilton/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q598884", "tourism": "hotel"}, "addTags": {"brand": "Hilton", "brand:wikidata": "Q598884", "brand:wikipedia": "en:Hilton Hotels & Resorts", "name": "Hilton", "tourism": "hotel"}, "terms": [], "matchScore": 2, "suggestion": true}, "tourism/hotel/Hilton Garden Inn": {"name": "Hilton Garden Inn", "icon": "fas-concierge-bell", "imageURL": "https://graph.facebook.com/HiltonGardenInn/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1162859", "tourism": "hotel"}, "addTags": {"brand": "Hilton Garden Inn", "brand:wikidata": "Q1162859", "brand:wikipedia": "en:Hilton Garden Inn", "name": "Hilton Garden Inn", "tourism": "hotel"}, "countryCodes": ["ca", "mx", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "tourism/hotel/Holiday Inn": {"name": "Holiday Inn", "icon": "fas-concierge-bell", "imageURL": "https://graph.facebook.com/HolidayInn/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2717882", "tourism": "hotel"}, "addTags": {"brand": "Holiday Inn", "brand:wikidata": "Q2717882", "brand:wikipedia": "en:Holiday Inn", "name": "Holiday Inn", "tourism": "hotel"}, "terms": [], "matchScore": 2, "suggestion": true}, @@ -4924,7 +5104,7 @@ "tourism/hotel/Ibis Budget": {"name": "Ibis Budget", "icon": "fas-concierge-bell", "imageURL": "https://graph.facebook.com/ibisbudget.fr/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1458135", "tourism": "hotel"}, "addTags": {"brand": "Ibis Budget", "brand:wikidata": "Q1458135", "brand:wikipedia": "en:Ibis Budget", "name": "Ibis Budget", "tourism": "hotel"}, "terms": [], "matchScore": 2, "suggestion": true}, "tourism/hotel/Ibis Styles": {"name": "Ibis Styles", "icon": "fas-concierge-bell", "imageURL": "https://graph.facebook.com/ibisstyles.fr/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3147425", "tourism": "hotel"}, "addTags": {"brand": "Ibis Styles", "brand:wikidata": "Q3147425", "brand:wikipedia": "en:Ibis Styles", "name": "Ibis Styles", "tourism": "hotel"}, "terms": [], "matchScore": 2, "suggestion": true}, "tourism/hotel/Kyriad": {"name": "Kyriad", "icon": "fas-concierge-bell", "imageURL": "https://graph.facebook.com/kyriadindia/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11751808", "tourism": "hotel"}, "addTags": {"brand": "Kyriad", "brand:wikidata": "Q11751808", "brand:wikipedia": "pl:Kyriad", "name": "Kyriad", "tourism": "hotel"}, "countryCodes": ["fr"], "terms": [], "matchScore": 2, "suggestion": true}, - "tourism/hotel/La Quinta": {"name": "La Quinta", "icon": "fas-concierge-bell", "imageURL": "https://graph.facebook.com/laquinta/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6464734", "tourism": "hotel"}, "addTags": {"brand": "La Quinta", "brand:wikidata": "Q6464734", "brand:wikipedia": "en:La Quinta Inns & Suites", "name": "La Quinta", "tourism": "hotel"}, "countryCodes": ["us"], "terms": ["la quinta inn & suites", "la quinta inn and suites", "la quinta inns & suites", "la quinta inns and suites"], "matchScore": 2, "suggestion": true}, + "tourism/hotel/La Quinta": {"name": "La Quinta", "icon": "fas-concierge-bell", "imageURL": "https://graph.facebook.com/laquinta/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6464734", "tourism": "hotel"}, "addTags": {"brand": "La Quinta", "brand:wikidata": "Q6464734", "brand:wikipedia": "en:La Quinta Inns & Suites", "name": "La Quinta", "tourism": "hotel"}, "countryCodes": ["us"], "terms": ["la quinta inn and suites", "la quinta inns and suites"], "matchScore": 2, "suggestion": true}, "tourism/hotel/Le Méridien": {"name": "Le Méridien", "icon": "fas-concierge-bell", "imageURL": "https://pbs.twimg.com/profile_images/444194265032163329/ioAHiave_bigger.jpeg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q261077", "tourism": "hotel"}, "addTags": {"brand": "Le Méridien", "brand:wikidata": "Q261077", "brand:wikipedia": "en:Le Méridien", "name": "Le Méridien", "tourism": "hotel"}, "terms": [], "matchScore": 2, "suggestion": true}, "tourism/hotel/Marriott": {"name": "Marriott", "icon": "fas-concierge-bell", "imageURL": "https://graph.facebook.com/marriottinternational/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1141173", "tourism": "hotel"}, "addTags": {"brand": "Marriott", "brand:wikidata": "Q1141173", "brand:wikipedia": "en:Marriott International", "name": "Marriott", "tourism": "hotel"}, "terms": [], "matchScore": 2, "suggestion": true}, "tourism/hotel/Mercure": {"name": "Mercure", "icon": "fas-concierge-bell", "imageURL": "https://graph.facebook.com/MercureHotels/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1709809", "tourism": "hotel"}, "addTags": {"brand": "Mercure", "brand:wikidata": "Q1709809", "brand:wikipedia": "en:Mercure (hotel)", "name": "Mercure", "tourism": "hotel"}, "terms": [], "matchScore": 2, "suggestion": true}, @@ -4941,6 +5121,7 @@ "tourism/hotel/Sheraton": {"name": "Sheraton", "icon": "fas-concierge-bell", "imageURL": "https://graph.facebook.com/Sheraton/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q634831", "tourism": "hotel"}, "addTags": {"brand": "Sheraton", "brand:wikidata": "Q634831", "brand:wikipedia": "en:Sheraton Hotels and Resorts", "name": "Sheraton", "tourism": "hotel"}, "terms": [], "matchScore": 2, "suggestion": true}, "tourism/hotel/Sleep Inn": {"name": "Sleep Inn", "icon": "fas-concierge-bell", "imageURL": "https://graph.facebook.com/choicehotels/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1075788", "tourism": "hotel"}, "addTags": {"brand": "Sleep Inn", "brand:wikidata": "Q1075788", "brand:wikipedia": "en:Choice Hotels", "name": "Sleep Inn", "tourism": "hotel"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "tourism/hotel/Staybridge Suites": {"name": "Staybridge Suites", "icon": "fas-concierge-bell", "imageURL": "https://graph.facebook.com/StaybridgeSuites/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7605116", "tourism": "hotel"}, "addTags": {"brand": "Staybridge Suites", "brand:wikidata": "Q7605116", "brand:wikipedia": "en:Staybridge Suites", "name": "Staybridge Suites", "tourism": "hotel"}, "countryCodes": ["ca", "gb", "us"], "terms": [], "matchScore": 2, "suggestion": true}, + "tourism/hotel/TownePlace Suites": {"name": "TownePlace Suites", "icon": "fas-concierge-bell", "imageURL": "https://graph.facebook.com/TownePlaceSuites/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7830092", "tourism": "hotel"}, "addTags": {"brand": "TownePlace Suites", "brand:wikidata": "Q7830092", "brand:wikipedia": "en:TownePlace Suites", "name": "TownePlace Suites", "official_name": "TownePlace Suites by Marriott", "tourism": "hotel"}, "countryCodes": ["ca", "us"], "terms": ["TownePlace Marriott", "TownePlace Suites Marriott"], "matchScore": 2, "suggestion": true}, "tourism/hotel/Travelodge": {"name": "Travelodge", "icon": "fas-concierge-bell", "imageURL": "https://graph.facebook.com/Travelodge/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7836087", "tourism": "hotel"}, "addTags": {"brand": "Travelodge", "brand:wikidata": "Q7836087", "brand:wikipedia": "en:Travelodge", "name": "Travelodge", "tourism": "hotel"}, "terms": [], "matchScore": 2, "suggestion": true}, "tourism/hotel/W Hotels": {"name": "W Hotels", "icon": "fas-concierge-bell", "imageURL": "https://graph.facebook.com/WHotels/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7958488", "tourism": "hotel"}, "addTags": {"brand": "W Hotels", "brand:wikidata": "Q7958488", "brand:wikipedia": "en:W Hotels", "name": "W Hotels", "short_name": "W", "tourism": "hotel"}, "terms": [], "matchScore": 2, "suggestion": true}, "tourism/hotel/東横イン": {"name": "東横イン", "icon": "fas-concierge-bell", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1320541", "tourism": "hotel"}, "addTags": {"brand": "東横イン", "brand:en": "Toyoko Inn", "brand:ja": "東横イン", "brand:wikidata": "Q1320541", "brand:wikipedia": "en:Toyoko Inn", "name": "東横イン", "name:en": "Toyoko Inn", "name:ja": "東横イン", "tourism": "hotel"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, diff --git a/data/presets/presets/shop/printer_ink.json b/data/presets/presets/shop/printer_ink.json new file mode 100644 index 0000000000..e0c7b1253f --- /dev/null +++ b/data/presets/presets/shop/printer_ink.json @@ -0,0 +1,17 @@ +{ + "icon": "maki-shop", + "geometry": [ + "point", + "area" + ], + "terms": [ + "copier ink", + "fax ink", + "ink cartridges", + "toner" + ], + "tags": { + "shop": "printer_ink" + }, + "name": "Printer Ink Store" +} diff --git a/data/taginfo.json b/data/taginfo.json index 58ec62d84b..8d066debfd 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -1022,6 +1022,7 @@ {"key": "shop", "value": "pet_grooming", "description": "🄿 Pet Grooming Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/dog-park-15.svg"}, {"key": "shop", "value": "pet", "description": "🄿 Pet Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/dog-park-15.svg"}, {"key": "shop", "value": "photo", "description": "🄿 Photography Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-camera-retro.svg"}, + {"key": "shop", "value": "printer_ink", "description": "🄿 Printer Ink Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, {"key": "shop", "value": "pyrotechnics", "description": "🄿 Fireworks Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, {"key": "shop", "value": "radiotechnics", "description": "🄿 Radio/Electronic Component Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-microchip.svg"}, {"key": "shop", "value": "religion", "description": "🄿 Religious Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, diff --git a/dist/locales/en.json b/dist/locales/en.json index 3600c39e55..a4d1bffd28 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -8699,6 +8699,10 @@ "name": "Photography Store", "terms": "camera,film" }, + "shop/printer_ink": { + "name": "Printer Ink Store", + "terms": "copier ink,fax ink,ink cartridges,toner" + }, "shop/pyrotechnics": { "name": "Fireworks Store", "terms": "fireworks" From aeb9d843643f2e9fb441cc8dfb015ea33996950f Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Fri, 26 Jul 2019 12:04:34 -0400 Subject: [PATCH 227/774] Add Printer Ink Store preset to the changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 240734ed82..b48ad28990 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -70,7 +70,7 @@ _Breaking changes, which may affect downstream projects or sites that embed iD, * Add Dressing Room preset ([#6643]) * Add Pool Supply Store preset ([#6599]) * Add Address Interpolation line preset ([#4220]) -* Add Park & Ride Lot, Aircraft Holding Position, and Aircraft Parking Position presets +* Add Printer Ink Store, Park & Ride Lot, Aircraft Holding Position, and Aircraft Parking Position presets * Add Type and Address fields to Public Bookcase preset ([#6564], thanks [@ToastHawaii]) * Add Underground Levels field to building presets ([#6628]) * Add more fields to the Kindergarten, Ferry Route, Ford, Dam, Weir, and Bridge Support presets From 7bb4c28cd261ad2c15370010f7fc84b1cc6bbc1e Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" <23040076+greenkeeper[bot]@users.noreply.github.com> Date: Fri, 26 Jul 2019 16:16:41 +0000 Subject: [PATCH 228/774] chore(package): update osm-community-index to version 0.10.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 27aa404376..fb2c97f0e7 100644 --- a/package.json +++ b/package.json @@ -79,7 +79,7 @@ "mocha-phantomjs-core": "^2.1.0", "name-suggestion-index": "3.1.0", "npm-run-all": "^4.0.0", - "osm-community-index": "0.9.0", + "osm-community-index": "0.10.0", "phantomjs-prebuilt": "~2.1.11", "request": "^2.88.0", "rollup": "~1.16.2", From 0c237fb14c6975d1513c8c54ea38a1258a2065f1 Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" <23040076+greenkeeper[bot]@users.noreply.github.com> Date: Fri, 26 Jul 2019 16:16:41 +0000 Subject: [PATCH 229/774] chore(package): update osm-community-index to version 0.10.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d2c5d805c4..f85f370ae0 100644 --- a/package.json +++ b/package.json @@ -79,7 +79,7 @@ "mocha-phantomjs-core": "^2.1.0", "name-suggestion-index": "3.1.0", "npm-run-all": "^4.0.0", - "osm-community-index": "0.9.0", + "osm-community-index": "0.10.0", "phantomjs-prebuilt": "~2.1.11", "request": "^2.88.0", "rollup": "~1.16.2", From cafeccfcea4594cf794c4c551b3800e1bfbf198a Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Fri, 26 Jul 2019 12:21:49 -0400 Subject: [PATCH 230/774] Update strings for osm-community-index 0.10.0 --- dist/locales/en.json | 50 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 49 insertions(+), 1 deletion(-) diff --git a/dist/locales/en.json b/dist/locales/en.json index a4d1bffd28..75ef6d60e3 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -9950,6 +9950,10 @@ "description": "YouthMappers chapter at University of Nigeria, Enugu Campus", "extendedDescription": "The LionMappersTeam(LMT)Enugu Campus is an affiliate of YouthMappers Network, with the sole aim of providing members the opportunity to learn and improve their skills in the field of Geoinformatics and to create open geographic data and analysis that addresses locally defined challenges globally. It is a team of volunteers for Crowdsourced Mapping and Geographic Information provision using Openstreetmap, Citizen Science and other Geospatial Technology for research, training and response to resilient community challenges. We are involved in Web-Cartography, GIS and Remote Sensing Applications and ResearchWe are passionate about Volunteered Geographic Information.Paticipatory GIS and Citizen Science.Our major activities include online crowdsourced-Cartography, Field Mapping ,Training workshops and outreaches to High School as well as Humanitarian/Disaster Response Mapping." }, + "osm-africa-telegram": { + "name": "OpenStreetMap Africa Telegram", + "description": "OpenStreetMap Telegram for Africa" + }, "ym-Insititue-d-Enseignement-Superieur-de-Ruhengeri": { "name": "YouthMappers at INES Ruhengeri", "description": "YouthMappers chapter at Insititue d' Enseignement Superieur de Ruhengeri", @@ -10076,6 +10080,10 @@ "description": "YouthMappers chapter at University of Zimbabwe", "extendedDescription": "UzMappersTeam Zimbabwe is a team of Volunteers using OpenStreetMap for Open Data Mapping and Humanitarian Disaster response mapping .The team empowers its members with open source geospatial technology skills." }, + "osm-afghanistan-facebook": { + "name": "OpenStreetMap Afghanistan", + "description": "Improve OpenStreetMap in Afghanistan" + }, "OSM-BGD-facebook": { "name": "OpenStreetMap Bangladesh", "description": "Improve OpenStreetMap in Bangladesh", @@ -10611,6 +10619,10 @@ "name": "OpenStreetMap Kosovo on Telegram", "description": "Semi-official all-Kosovo Telegram public group. We welcome all mappers from anywhere in any language." }, + "lu-mailinglist": { + "name": "Talk-lu Mailing List", + "description": "Official mailing list for the Luxembourgish OSM community" + }, "ym-Universit-Mohammed-V-Rabat": { "name": "Brahmapoutre at Rabat", "description": "YouthMappers chapter at Université Mohammed V Rabat", @@ -10765,10 +10777,26 @@ "description": "YouthMappers chapter at University of the West Indies, Mona Campus", "extendedDescription": "The UWI, Mona Campus Library engages in public, outreach and special projects. This will allow our library the means to be a catalyst for spatial literacy and advocate for spatial data sharing and access to Jamaican and Caribbean interests. We have disaster relief and communication needs and extensive earth science and geo-hazards needs to better serve our campus and community. Specifically, we hace a Science Library to showcase such to all faculty and students." }, - "OSM-NI-telegram": { + "ni-facebook": { + "name": "OpenStreetMap NI Community", + "description": "Mappers and OpenStreetMap on Facebook in Nicaragua" + }, + "ni-mailinglist": { + "name": "Talk-ni Mailing List", + "description": "Talk-ni is the official mailing list for the Nicaraguan OSM community" + }, + "ni-telegram": { "name": "OSM Nicaragua on Telegram", "description": "OpenStreetMap Nicaragua Telegram chat" }, + "ni-twitter": { + "name": "OpenStreetMap Nicaragua Twitter", + "description": "OSM Nicaragua on Twitter: @osm_ni" + }, + "osm-ni": { + "name": "MapaNica.net", + "description": "Provide OSM services and information for the local community in Nicaragua" + }, "ym-Universidad-Nacional-de-Ingenieria": { "name": "Yeka Street MGA", "description": "YouthMappers chapter at Universidad Nacional de Ingenieria", @@ -11137,6 +11165,10 @@ "name": "Geography Club", "description": "YouthMappers chapter at Western Michigan University" }, + "geogeeks_perth_meetup": { + "name": "GeoGeeks Perth Meetup", + "description": "Perth-based meetup group for people interested in mapping, geospatial data, and open source. We'll be working on anything that involves a sense of place." + }, "talk-au": { "name": "Talk-au Mailing List", "description": "Place for Aussie mappers to chat" @@ -11193,6 +11225,10 @@ "description": "Join the OpenStreetMap Brasília community on Telegram", "extendedDescription": "Join the community to learn more about OpenStreetMap, ask questions or participate in our meetings. Everyone is welcome!" }, + "OSM-br-discord": { + "name": "OpenStreetMap Brasil Discord", + "description": "Join the OpenStreetMap Brasil community on Discord" + }, "OSM-br-mailinglist": { "name": "Talk-br Mailing List", "description": "A mailing list to discuss OpenStreetMap in Brazil" @@ -11330,6 +11366,18 @@ "name": "Talk-uy Mailing List", "description": "Talk-uy is the official mailing list for the Uruguayan OSM community" }, + "ve-forum": { + "name": "OpenStreetMap VE Forum", + "description": "OpenStreetMap Venezuela web forum" + }, + "ve-mailinglist": { + "name": "Talk-ve Mailing List", + "description": "Talk-ve is the official mailing list for the Venezuelan OSM community" + }, + "ve-telegram": { + "name": "OpenStreetMap Venezuela Telegram", + "description": "Join the OpenStreetMap Venezuela community on Telegram" + }, "LATAM-Facebook": { "name": "OpenStreetMap Latam Facebook", "description": "OpenStreetMap Latam on Facebook" From 0171c3b403250dab386efd717cc2fb73a2d71cc3 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Fri, 26 Jul 2019 12:26:45 -0400 Subject: [PATCH 231/774] npm run imagery --- data/imagery.json | 260 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 259 insertions(+), 1 deletion(-) diff --git a/data/imagery.json b/data/imagery.json index c033f28884..141e8552f0 100644 --- a/data/imagery.json +++ b/data/imagery.json @@ -6798,7 +6798,84 @@ [13.29535, 52.392] ] ], - "terms_text": "Geoportal Berlin/Digitale farbige Orthophotos 2018", + "terms_text": "Geoportal Berlin/Digitale farbige Orthophotos 2018" + }, + { + "id": "Berlin-2019", + "name": "Berlin aerial photography 2019", + "type": "tms", + "template": "https://tiles.codefor.de/berlin-2019/{zoom}/{x}/{y}.png", + "endDate": "2019-04-06T00:00:00.000Z", + "startDate": "2019-04-01T00:00:00.000Z", + "polygon": [ + [ + [13.29535, 52.392], + [13.29502, 52.40083], + [13.19206, 52.39937], + [13.19241, 52.39035], + [13.14839, 52.3897], + [13.14877, 52.38046], + [13.11926, 52.38001], + [13.11888, 52.38921], + [13.08906, 52.40693], + [13.07431, 52.4067], + [13.07356, 52.42447], + [13.10259, 52.43394], + [13.10073, 52.47912], + [13.11534, 52.47934], + [13.11055, 52.59579], + [13.13972, 52.60527], + [13.18403, 52.60593], + [13.21212, 52.63346], + [13.27041, 52.65222], + [13.26973, 52.67025], + [13.31405, 52.67086], + [13.32953, 52.65323], + [13.43315, 52.65458], + [13.43254, 52.67251], + [13.44682, 52.68189], + [13.50593, 52.68261], + [13.50681, 52.65545], + [13.53643, 52.6558], + [13.53757, 52.61964], + [13.52288, 52.61946], + [13.52345, 52.6017], + [13.53842, 52.59279], + [13.56782, 52.59313], + [13.59798, 52.58464], + [13.5988, 52.55755], + [13.62826, 52.55788], + [13.65822, 52.53124], + [13.67314, 52.53139], + [13.67365, 52.51359], + [13.65912, 52.51344], + [13.65989, 52.48661], + [13.68929, 52.48692], + [13.7188, 52.47807], + [13.73406, 52.4604], + [13.7636, 52.46069], + [13.76454, 52.42482], + [13.75027, 52.42468], + [13.75097, 52.39814], + [13.70722, 52.37923], + [13.70772, 52.36111], + [13.67826, 52.36081], + [13.67876, 52.34302], + [13.66428, 52.34287], + [13.66454, 52.33367], + [13.62038, 52.33319], + [13.61959, 52.36012], + [13.58956, 52.37786], + [13.5313, 52.37719], + [13.53103, 52.38581], + [13.44254, 52.38473], + [13.42861, 52.36674], + [13.38418, 52.36617], + [13.35417, 52.39279], + [13.29535, 52.392] + ] + ], + "terms_text": "Geoportal Berlin/Digitale farbige Orthophotos 2019 (DOP20RGB)", "best": true }, { @@ -44182,6 +44259,187 @@ "description": "Orthophotos from the municipality of Linköping 2010, open data", "icon": "https://upload.wikimedia.org/wikipedia/commons/thumb/2/29/Linköping_vapen.svg/198px-Linköping_vapen.svg.png" }, + { + "id": "LINZ_NZ_Aerial_Imagery", + "name": "LINZ NZ Aerial Imagery", + "type": "tms", + "template": "https://map.cazzaserver.com/linz_aerial/{zoom}/{x}/{y}.png", + "zoomExtent": [0, 21], + "polygon": [ + [ + [167.25037, -47.21957], + [167.24487, -47.28016], + [167.50305, -47.37975], + [168.25012, -47.1561], + [168.74451, -46.7963], + [169.32678, -46.75492], + [169.78271, -46.60417], + [170.42542, -46.11133], + [170.80444, -45.95115], + [170.95276, -45.44086], + [171.30981, -44.91036], + [171.40869, -44.39062], + [172.56226, -43.92955], + [172.90283, -43.9691], + [173.16101, -43.90977], + [173.25989, -43.69568], + [172.97424, -43.5366], + [172.76001, -43.37711], + [173.15002, -43.17714], + [173.70483, -42.63396], + [174.36401, -41.7836], + [174.32007, -41.40978], + [174.84741, -41.52914], + [175.07263, -41.70573], + [175.50659, -41.67291], + [176.2262, -41.10833], + [176.83044, -40.42604], + [177.17102, -39.67337], + [177.03918, -39.39375], + [177.44568, -39.18118], + [177.60498, -39.33005], + [177.97852, -39.36828], + [178.33557, -38.65978], + [178.70911, -37.74466], + [178.62671, -37.54458], + [178.3136, -37.43125], + [177.62146, -37.37889], + [177.03918, -37.39635], + [176.56128, -37.37016], + [176.33606, -37.05956], + [176.00647, -36.29742], + [175.67688, -36.05354], + [174.67163, -35.1783], + [173.19397, -34.28445], + [172.67761, -34.23451], + [172.38647, -34.40238], + [172.47986, -34.71904], + [172.98523, -35.32185], + [173.56201, -36.14231], + [174.30908, -37.07709], + [174.55627, -38.05242], + [174.47937, -38.65549], + [174.32556, -38.86537], + [173.79822, -38.95941], + [173.60596, -39.23225], + [173.69934, -39.56335], + [174.58923, -39.95607], + [174.98474, -40.21664], + [174.98474, -40.49292], + [174.72107, -40.80549], + [174.14978, -40.65147], + [173.28186, -40.4344], + [172.58972, -40.35073], + [172.08435, -40.53468], + [171.76575, -40.82628], + [171.57349, -41.39742], + [171.28235, -41.65239], + [170.87585, -42.53284], + [170.354, -42.87194], + [168.27759, -43.92955], + [167.6239, -44.47691], + [166.55273, -45.38688], + [166.27258, -45.91677], + [166.48132, -46.22545], + [167.67883, -46.47192], + [167.25037, -47.21957] + ] + ], + "terms_url": "https://www.linz.govt.nz/data/licensing-and-using-data/attributing-elevation-or-aerial-imagery-data", + "terms_text": "Sourced from LINZ CC-BY 4.0", + "best": true, + "icon": "https://koordinates.a.ssl.fastly.net/media/settings/branding/favicon-lds.ico" + }, + { + "id": "LINZ_NZ_Topo50_Gridless_Maps", + "name": "LINZ NZ Topo50 Gridless Maps", + "type": "tms", + "template": "https://map.cazzaserver.com/linz_topo/{zoom}/{x}/{y}.png", + "zoomExtent": [0, 21], + "polygon": [ + [ + [167.25037, -47.21957], + [167.24487, -47.28016], + [167.50305, -47.37975], + [168.25012, -47.1561], + [168.74451, -46.7963], + [169.32678, -46.75492], + [169.78271, -46.60417], + [170.42542, -46.11133], + [170.80444, -45.95115], + [170.95276, -45.44086], + [171.30981, -44.91036], + [171.40869, -44.39062], + [172.56226, -43.92955], + [172.90283, -43.9691], + [173.16101, -43.90977], + [173.25989, -43.69568], + [172.97424, -43.5366], + [172.76001, -43.37711], + [173.15002, -43.17714], + [173.70483, -42.63396], + [174.36401, -41.7836], + [174.32007, -41.40978], + [174.84741, -41.52914], + [175.07263, -41.70573], + [175.50659, -41.67291], + [176.2262, -41.10833], + [176.83044, -40.42604], + [177.17102, -39.67337], + [177.03918, -39.39375], + [177.44568, -39.18118], + [177.60498, -39.33005], + [177.97852, -39.36828], + [178.33557, -38.65978], + [178.70911, -37.74466], + [178.62671, -37.54458], + [178.3136, -37.43125], + [177.62146, -37.37889], + [177.03918, -37.39635], + [176.56128, -37.37016], + [176.33606, -37.05956], + [176.00647, -36.29742], + [175.67688, -36.05354], + [174.67163, -35.1783], + [173.19397, -34.28445], + [172.67761, -34.23451], + [172.38647, -34.40238], + [172.47986, -34.71904], + [172.98523, -35.32185], + [173.56201, -36.14231], + [174.30908, -37.07709], + [174.55627, -38.05242], + [174.47937, -38.65549], + [174.32556, -38.86537], + [173.79822, -38.95941], + [173.60596, -39.23225], + [173.69934, -39.56335], + [174.58923, -39.95607], + [174.98474, -40.21664], + [174.98474, -40.49292], + [174.72107, -40.80549], + [174.14978, -40.65147], + [173.28186, -40.4344], + [172.58972, -40.35073], + [172.08435, -40.53468], + [171.76575, -40.82628], + [171.57349, -41.39742], + [171.28235, -41.65239], + [170.87585, -42.53284], + [170.354, -42.87194], + [168.27759, -43.92955], + [167.6239, -44.47691], + [166.55273, -45.38688], + [166.27258, -45.91677], + [166.48132, -46.22545], + [167.67883, -46.47192], + [167.25037, -47.21957] + ] + ], + "terms_url": "https://data.linz.govt.nz/layer/2343-nz-mainland-topo50-gridless-maps", + "terms_text": "CC BY 4.0 Land Information New Zealand", + "icon": "https://koordinates.a.ssl.fastly.net/media/settings/branding/favicon-lds.ico" + }, { "id": "ORT10LT", "name": "Lithuania - NŽT ORT10LT", From 46212ec8ec9f3c8a85f45cc7da2b841866e62c1d Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Fri, 26 Jul 2019 12:27:43 -0400 Subject: [PATCH 232/774] npm run translations --- dist/locales/af.json | 6 - dist/locales/ar.json | 93 ++++- dist/locales/ast.json | 6 - dist/locales/bg.json | 6 - dist/locales/bs.json | 6 - dist/locales/ca.json | 6 - dist/locales/cs.json | 145 ++++++- dist/locales/da.json | 6 - dist/locales/de.json | 109 ++++- dist/locales/el.json | 9 +- dist/locales/en-AU.json | 6 + dist/locales/en-GB.json | 6 - dist/locales/eo.json | 48 ++- dist/locales/es.json | 107 ++++- dist/locales/et.json | 6 - dist/locales/fa.json | 18 +- dist/locales/fi.json | 93 ++++- dist/locales/fr.json | 121 +++++- dist/locales/gl.json | 83 +++- dist/locales/he.json | 110 ++++-- dist/locales/hr.json | 399 ++++++++++++++++++- dist/locales/hu.json | 854 +++++++++++++++++++++++++++++++++++++--- dist/locales/is.json | 6 - dist/locales/it.json | 9 +- dist/locales/ja.json | 107 ++++- dist/locales/kn.json | 6 - dist/locales/ko.json | 6 - dist/locales/lt.json | 6 - dist/locales/lv.json | 6 - dist/locales/mk.json | 102 ++++- dist/locales/ms.json | 6 - dist/locales/nl.json | 6 - dist/locales/no.json | 6 - dist/locales/pl.json | 266 +++++++++++-- dist/locales/pt-BR.json | 75 +++- dist/locales/pt.json | 99 ++++- dist/locales/ro.json | 6 - dist/locales/ru.json | 150 ++++++- dist/locales/sk.json | 6 - dist/locales/sl.json | 6 - dist/locales/sr.json | 6 - dist/locales/sv.json | 42 +- dist/locales/ta.json | 6 - dist/locales/tl.json | 6 - dist/locales/tr.json | 6 - dist/locales/uk.json | 73 +++- dist/locales/vi.json | 6 - dist/locales/yue.json | 6 - dist/locales/zh-CN.json | 9 +- dist/locales/zh-HK.json | 6 - dist/locales/zh-TW.json | 53 ++- dist/locales/zh.json | 6 - 52 files changed, 2892 insertions(+), 450 deletions(-) diff --git a/dist/locales/af.json b/dist/locales/af.json index 400fbf6a8d..fc3b691dea 100644 --- a/dist/locales/af.json +++ b/dist/locales/af.json @@ -327,12 +327,6 @@ "historic": { "label": "Tipe" }, - "iata": { - "label": "IATA" - }, - "icao": { - "label": "ICAO" - }, "incline": { "label": "Steilte" }, diff --git a/dist/locales/ar.json b/dist/locales/ar.json index 4b1dc1e389..e2bffea04a 100644 --- a/dist/locales/ar.json +++ b/dist/locales/ar.json @@ -641,7 +641,7 @@ "all_members": "كل اﻷعضاء", "all_relations": "كل العلاقات", "add_to_relation": "إضافة إلى علاقة", - "new_relation": "علاقة جديدة....", + "new_relation": "علاقة جديدة...", "choose_relation": "اختر العلاقة الأم", "role": "القاعدة", "choose": "اختر نوع العنصر", @@ -782,7 +782,7 @@ "tooltip": "مباني، ملاجئ، مرائب، الخ" }, "building_parts": { - "description": "أجزاء بناء" + "description": "أجزاء المبنى" }, "indoor": { "description": "عناصر داخل المبنى", @@ -859,6 +859,7 @@ }, "restore": { "heading": "لديك تغييرات غير محفوظة", + "description": "هل ترغب في استعادة التغييرات الغير محفوظة من جلسة التعديل السابقة؟", "restore": "استعادة تغييراتي", "reset": "تجاهل تغييراتي" }, @@ -979,19 +980,24 @@ "this_relation": "هذه العلاقة", "this_oneway": "هذا الطريق وحيد الاتجاه", "this_highway": "هذا الطريق السريع", - "this_waterway": "هذا الممر المائي", + "this_railway": "سكة الحديد هذه", + "this_waterway": "هذا المجرى المائي", + "this_cycleway": "طريق الدراجات هذا", + "this_cycleway_footpath": "طريق الدراجات/مسار المشي هذا", "this_riverbank": "ضفة النهر هذه", "this_crossing": "هذا المعبر", + "this_railway_crossing": "مزلقان سكة الحديد هذا", "this_bridge": "هذا الجسر", "this_tunnel": "هذا النفق", "this_boundary": "هذه الحدود", + "this_turn_restriction": "قيد الانعطاف هذا", "this_roundabout": "هذا الدوران", "this_mini_roundabout": "هذا الدوران الصغير", "this_track": "هذا المسار", "this_feature": "هذا العنصر", "highway": "طريق سريع", "railway": "سكة حديد", - "waterway": "ممر مائي", + "waterway": "مجرى مائي", "cycleway": "طريق دراجات", "cycleway_footpath": "طريق دراجات / طريق مشاة", "riverbank": "ضفاف النهر", @@ -1025,10 +1031,36 @@ "description": "{var1} موسوم بـ \"{var2}\" ويجب أن تكون حلقة مغلقة." }, "40": { + "title": "اتجاه واحد مستحيل", "description": "العُقدة الأولى {var1} من {var2} غير متصلة بأي طُرق أخرى." }, + "41": { + "description": "العُقدة الأخيرة {var1} من {var2} غير متصلة بأي طُرق أخرى." + }, + "42": { + "description": "لا يمكنك الوصول إلى {var1} لأن جميع الطرق القادمة منه هي طرق باتجاه واحد فقط." + }, + "43": { + "description": "لا يمكنك الهروب من {var1} لأن جميع الطرق المؤدية إليه هي طُرق باتجاه واحد فقط." + }, + "50": { + "title": "غالبا تقاطع", + "description": "{var1} قريب جدا ولكنه غير متصل بطريق {var2}." + }, + "60": { + "title": "وسم مُهمل", + "description": "{var1} يستخدم الوسم المُهمل \"{var2} \". برجاء استخدام \"{var3} \" بدلا من ذلك." + }, "70": { - "title": "وسم مفقود" + "title": "وسم مفقود", + "description": "{var1} يحتوي وسما فارغا: \"{var2}\"." + }, + "71": { + "description": "{var1} لا يحتوي على أوسمة." + }, + "410": { + "title": "مشكلة في الموقع", + "description": "هناك مشكلة غير محددة بشأن الاتصال بالموقع أو الرابط." } } } @@ -1356,7 +1388,8 @@ "title": "إصلاح" }, "fix_all": { - "title": "إصلاح الكل" + "title": "إصلاح الكل", + "annotation": "تم إصلاح العديد من مشكلات المصادقة." }, "almost_junction": { "title": "تقريبا تقاطعات", @@ -1385,7 +1418,7 @@ "reference": "السكك الحديدية التي تقطع المباني ينبغي أن تستخدم جسورًا أو أنفاقًا." }, "building-waterway": { - "reference": "الممرات المائية التي تقطع المباني ينبغي أن تستخدم أنفاقًا أو طبقات مختلفة." + "reference": "المجاري المائية التي تقطع المباني ينبغي أن تستخدم أنفاقًا أو طبقات مختلفة." }, "highway-highway": { "reference": "الطُرق المتقاطعة ينبغي أن تستخدم الجسور، أو الأنفاق، أو عُقد التقاطع العادية." @@ -1394,16 +1427,16 @@ "reference": "الطُرق التي تتقاطع مع السكك الحديدية ينبغي أن تستخدم جسورًا، أو أنفاقًا، أو مزلقانات." }, "highway-waterway": { - "reference": "الطُرق التي تتقاطع مع الممرات المائية ينبغي أن تستخدم جسورًا، أو أنفاقًا، أو مخاضات." + "reference": "الطُرق التي تتقاطع مع المجاري المائية ينبغي أن تستخدم جسورًا، أو أنفاقًا، أو مخاضات." }, "railway-railway": { "reference": "سكك الحديد المتقاطعة ينبغي أن تكون متصلة أو تستخدم جسورًا أو أنفاقًا." }, "railway-waterway": { - "reference": "السكك الحديدية التي تتقاطع مع الممرات المائية ينبغي أن تستخدم جسورًا أو أنفاقًا." + "reference": "السكك الحديدية التي تتقاطع مع المجاري المائية ينبغي أن تستخدم جسورًا أو أنفاقًا." }, "waterway-waterway": { - "reference": "الممرات المائية المتقاطعة ينبغي أن تكون متصلة أو أن تستخدم الأنفاق." + "reference": "المجاري المائية المتقاطعة ينبغي أن تكون متصلة أو أن تستخدم الأنفاق." }, "tunnel-tunnel": { "reference": "الأنفاق المتقاطعة ينبغي أن تستخدم الطبقات المختلفة." @@ -1504,13 +1537,34 @@ }, "impossible_oneway": { "title": "اتجاه واحد مستحيل", - "tip": "العثور على مشاكل تحديد مسار الوجهة باستخدام عناصر الاتجاه الواحد" + "tip": "العثور على مشاكل تحديد مسار الوجهة باستخدام عناصر الاتجاه الواحد", + "waterway": { + "connected": { + "start": { + "message": "{feature} تتدفق بعيدا عن مجرى مائي متصل" + }, + "end": { + "message": "{feature} تتدفق بعكس اتجاه مجرى مائي متصل" + }, + "reference": "يجب أن تتدفق أجزاء المجرى المائي جميعها في نفس الاتجاه." + } + }, + "highway": { + "start": { + "message": "لا يمكن الوصول إلى {feature}", + "reference": "يجب أن يكون الوصول إلى الطُرق ذات الاتجاه الواحد عن طريق طرق أخرى." + }, + "end": { + "message": "لا يوجد منفذ لـ {feature}", + "reference": "يجب أن تؤدي الطُرق ذات الاتجاه الواحد إلى طُرق أخرى." + } + } }, "unsquare_way": { "message": "{feature} تحتوي أركان غير مربعة", "tip": "العثور على عناصر ذات أركان غير مربعة يمكن رسمها بشكل أفضل", "buildings": { - "reference": "المباني ذات الأركان الغير مربعة يمكن رسمها في الغالب بدقة أكثر." + "reference": "المباني ذات الأركان غير المربعة يمكن رسمها في الغالب بدقة أكثر." } }, "fix": { @@ -1597,6 +1651,10 @@ "title": "وسم كمنفصل", "annotation": "وسمت العناصر القريبة جدا من بعضها كمنفصلة." }, + "tag_as_unsquare": { + "title": "وسم كغير مربعة فعليا", + "annotation": "طريق موسوم بأنه يحتوي على أركان غير مربعة." + }, "tag_this_as_higher": { "title": "وسم هذا كمرتفع" }, @@ -1613,6 +1671,9 @@ "use_different_layers": { "title": "استخدم طبقات مختلفة" }, + "use_different_layers_or_levels": { + "title": "استخدم طبقات أو مستويات مختلفة" + }, "use_different_levels": { "title": "استخدم مستويات مختلفة" }, @@ -1891,7 +1952,7 @@ "pause": "Pause", "pgdn": "PgDn", "pgup": "PgUp", - "return": "رجوع", + "return": "Return", "shift": "Shift", "space": "Space" }, @@ -2798,12 +2859,6 @@ "undefined": "لا" } }, - "iata": { - "label": "IATA" - }, - "icao": { - "label": "ICAO" - }, "incline": { "label": "انحدار" }, diff --git a/dist/locales/ast.json b/dist/locales/ast.json index 881af479d4..64ed6c5711 100644 --- a/dist/locales/ast.json +++ b/dist/locales/ast.json @@ -1214,12 +1214,6 @@ "label": "Númberu d'aros", "placeholder": "1, 2, 4..." }, - "iata": { - "label": "IATA" - }, - "icao": { - "label": "ICAO" - }, "incline": { "label": "Pendiente" }, diff --git a/dist/locales/bg.json b/dist/locales/bg.json index 9ffb121223..19920f507b 100644 --- a/dist/locales/bg.json +++ b/dist/locales/bg.json @@ -1348,12 +1348,6 @@ "label": "Кошове", "placeholder": "1, 2, 4..." }, - "iata": { - "label": "IATA" - }, - "icao": { - "label": "ICAO" - }, "incline": { "label": "Наклон" }, diff --git a/dist/locales/bs.json b/dist/locales/bs.json index c912433bb9..6b06fa4671 100644 --- a/dist/locales/bs.json +++ b/dist/locales/bs.json @@ -443,12 +443,6 @@ "historic": { "label": "Vrsta" }, - "iata": { - "label": "IATA" - }, - "icao": { - "label": "ICAO" - }, "incline": { "label": "Nagib" }, diff --git a/dist/locales/ca.json b/dist/locales/ca.json index 2675ad5f6f..0824d6c88c 100644 --- a/dist/locales/ca.json +++ b/dist/locales/ca.json @@ -1888,12 +1888,6 @@ "undefined": "No" } }, - "iata": { - "label": "IATA" - }, - "icao": { - "label": "ICAO" - }, "incline": { "label": "Pendent" }, diff --git a/dist/locales/cs.json b/dist/locales/cs.json index 490debc603..3b5fad5ae9 100644 --- a/dist/locales/cs.json +++ b/dist/locales/cs.json @@ -160,7 +160,9 @@ "points": "Narovnáno několik bodů.", "line": "Narovnána linie." }, - "too_bendy": "Nelze narovnat, protože je příliš zakroucený." + "too_bendy": "Nelze narovnat, protože je příliš zakroucený.", + "connected_to_hidden": "Nemůže být narovnáno, protože je připojeno k neviditelnému prvku.", + "not_downloaded": "Nemůže být narovnáno, protože některé jeho části nebyly zcela staženy." }, "delete": { "title": "Smazat", @@ -191,10 +193,21 @@ "connected_to_hidden": { "single": "Nelze smazat, protože je napojen na skrytý prvek.", "multiple": "Nelze smazat, protože jsou napojené na skryté prvky." + }, + "not_downloaded": { + "single": "Prvek nemůže být smazán, neboť některé jeho části nebyly dosud staženy.", + "multiple": "Tyto prvky nemohou být smazány, neboť některé jejich části nebyly dosud staženy." } }, "downgrade": { - "title": "Degradovat" + "title": "Degradovat", + "annotation": { + "building": { + "single": "Prvek degradován na základní budovu.", + "multiple": "Degradováno {n} prvků na základní budovy." + }, + "multiple": "Degradováno {n} prvků." + } }, "add_member": { "annotation": "Přidán člen do relace." @@ -375,6 +388,9 @@ "create": "Přidáno omezení odbočování", "delete": "Smazáno omezení odbočování" } + }, + "extract": { + "key": "E" } }, "restriction": { @@ -450,11 +466,11 @@ "rateLimit": "API omezuje anonymní připojení. Můžete to vyřešit tím, že se přihlásíte." }, "commit": { - "title": "Nahrát na OpenStreetMap", + "title": "Odeslat na OpenStreetMap", "upload_explanation": "Vámi provedené změny budou viditelné na všech mapách postavených na datech z OpenStreetMap.", "upload_explanation_with_user": "Změny provedené pod jménem {user} budou viditelné na všech mapách postavených na datech z OpenStreetMap.", "request_review": "Rád bych, kdyby se na mé změny někdo podíval.", - "save": "Nahrát", + "save": "Odeslat", "cancel": "Storno", "changes": "{count} změn", "download_changes": "Stáhnout soubor osmChange", @@ -471,7 +487,7 @@ }, "contributors": { "list": "Přispěli {users}", - "truncated_list": "Přispěli {users} a {count} další." + "truncated_list": "Přispěli {users} a dalších {count}." }, "info_panels": { "key": "I", @@ -573,6 +589,9 @@ "edit_reference": "editovat / přeložit", "wiki_reference": "Zobrazit dokumentaci", "wiki_en_reference": "Zobrazit dokumentaci v angličtině", + "hidden_preset": { + "zoom": "{features} jsou skryté. Pro jejich zobrazení přibližte." + }, "back_tooltip": "Změnit prvek", "remove": "Odstranit", "search": "Hledat", @@ -723,6 +742,9 @@ "description": "Železnice", "tooltip": "Koleje, nádraží atd." }, + "pistes": { + "description": "Stezky" + }, "power": { "description": "Energetika", "tooltip": "Elektrická vedení, elektrárny, transformátory atd." @@ -816,6 +838,7 @@ "success": { "just_edited": "Právě jste upravili OpenStreetMap!", "thank_you": "Děkujeme za vylepšení mapy.", + "thank_you_location": "Děkujeme za vylepšení mapy kolem {where}.", "thank_you_where": { "format": "{place}{separator}{region}", "separator": ", " @@ -1293,8 +1316,8 @@ "save_h": "Uložit", "save": "Stiskněte{save} **Uložit** pro ukončení svých úprav a jejich nahrání na OpenStreetMap. Pamatujte na časté ukládání své práce!", "save_validation": "Na obrazovce ukládání budete mít šanci prohlédnout si své úpravy. iD také provede některé základní kontroly ohledně chybějících informací a případně Vám může pomoci návrhy a varováními, pokud se něco nebude zdát v pořádku.", - "upload_h": "Nahrát", - "upload": "Před nahráním vašich změn musíte vložit [popis vaší sady změn](https://wiki.openstreetmap.org/wiki/Good_changeset_comments). Poté klikněte na tlačítko **Nahrát** pro odeslání vašich změn do OpenStreetMap, kde budou připojeny do mapy a veřejně viditelné pro všechny.", + "upload_h": "Odeslat", + "upload": "Před nahráním vašich změn musíte vložit [popis vaší sady změn](https://wiki.openstreetmap.org/wiki/Good_changeset_comments). Poté klikněte na tlačítko **Odeslat** pro odeslání vašich změn do OpenStreetMap, kde budou připojeny do mapy a veřejně viditelné pro všechny.", "backups_h": "Automatické zálohy", "backups": "Pokud nemůžete dokončit vaše změny najednou, například pokud vám spadne počítač nebo zavřete panel prohlížeče, vaše změny jsou uloženy v úložišti vašeho prohlížeče. Ke změnám se můžete vrátit (ve stejném prohlížeči na stejném počítači) a iD vám nabídne obnovení vaší neuložené práce.", "keyboard_h": "Klávesové zkratky", @@ -1422,6 +1445,7 @@ }, "options": { "what": { + "title": "Hledat:", "edited": "Mé úpravy", "all": "Všechno" }, @@ -1445,7 +1469,10 @@ "title": "Skoro spojení" }, "close_nodes": { - "title": "Body sobě velmi blízko" + "title": "Body sobě velmi blízko", + "detached": { + "message": "{feature} je příliš blízko {feature2}" + } }, "crossing_ways": { "title": "Křížení linií", @@ -1457,6 +1484,13 @@ "fixme_tag": { "title": "Žádosti na opravu" }, + "generic_name": { + "title": "Podezřelé názvy", + "message": "{feature} má podezřelý název \"{name}\"" + }, + "incompatible_source": { + "title": "Podezřelé zdroje" + }, "invalid_format": { "title": "Neplatné formátování", "email": { @@ -1491,6 +1525,11 @@ "impossible_oneway": { "title": "Nemožné jednosměrky" }, + "unsquare_way": { + "title": "Nepravoúhlé rohy (do {val}°)", + "message": "{feature} má nepravoúhlé rohy", + "tip": "Najít prvky s nepravoúhlými rohy, které by mohly být zakresleny lépe" + }, "fix": { "connect_almost_junction": { "annotation": "Připojeny velmi blízké prvky." @@ -1521,12 +1560,15 @@ }, "tag_as_disconnected": { "title": "Označit jako odpojené" + }, + "tag_as_unsquare": { + "title": "Označit jako fyzicky nepravoúhlé" } } }, "intro": { "done": "hotovo", - "ok": "OK", + "ok": "Vskutku", "graph": { "block_number": "", "city": "Meziříčí", @@ -1927,9 +1969,15 @@ "category-building": { "name": "Budovy" }, + "category-golf": { + "name": "Golfové prvky" + }, "category-landuse": { "name": "Využití krajiny" }, + "category-natural": { + "name": "Přírodní prvky" + }, "category-path": { "name": "Pěší cesty" }, @@ -2010,6 +2058,15 @@ "access_simple": { "label": "Povolený vstup/vjezd" }, + "addr/interpolation": { + "label": "Druh", + "options": { + "all": "Vše", + "alphabetic": "Abecední", + "even": "Sudý", + "odd": "Lichý" + } + }, "address": { "label": "Adresa", "placeholders": { @@ -2197,6 +2254,10 @@ "building": { "label": "Budova" }, + "building/levels/underground": { + "label": "Podzemní patra", + "placeholder": "2, 4, 6,..." + }, "building/levels_building": { "label": "Patra budovy", "placeholder": "2, 4, 6…" @@ -2706,12 +2767,6 @@ "undefined": "Ne" } }, - "iata": { - "label": "IATA" - }, - "icao": { - "label": "ICAO" - }, "incline": { "label": "Sklon" }, @@ -3310,6 +3365,9 @@ "sanitary_dump_station": { "label": "Výlevka pro WC" }, + "screen": { + "placeholder": "1, 4, 8,…" + }, "scuba_diving": { "label": "Služby" }, @@ -3609,9 +3667,16 @@ "options": { "bucket": "Nádrž na odpad", "chemical": "Chemický", - "flush": "Splachovací" + "flush": "Splachovací", + "pitlatrine": "Kadibudka" } }, + "toilets/handwashing": { + "label": "Mytí rukou" + }, + "toilets/position": { + "label": "Pozice" + }, "toll": { "label": "Mýtné" }, @@ -3649,6 +3714,7 @@ "label": "Dopravní značka" }, "traffic_sign/direction": { + "label": "Dotčený směr", "options": { "backward": "Zpátky", "both": "Oba/všechny směry", @@ -3659,6 +3725,7 @@ "label": "Typ" }, "traffic_signals/direction": { + "label": "Dotčený směr", "options": { "backward": "Zpátky", "both": "Oba/všechny směry", @@ -3696,6 +3763,9 @@ "trench": { "label": "Typ" }, + "trolley_wire": { + "label": "Trolejové vedení" + }, "tunnel": { "label": "Typ", "placeholder": "Výchozí" @@ -3774,7 +3844,8 @@ "label": "Typ" }, "website": { - "label": "Webová stránka" + "label": "Webová stránka", + "placeholder": "https://priklad.cz" }, "wetland": { "label": "Typ" @@ -3804,6 +3875,7 @@ "delta": "Trojúhelník", "leblanc": "LeBlanc", "open": "Otevřít", + "open-delta": "Otevřená delta", "star": "Hvězda", "zigzag": "Cikcak" } @@ -5133,6 +5205,9 @@ "name": "Brod", "terms": "brod,přejezd vody,ford" }, + "ford_line": { + "name": "Brod" + }, "golf/bunker": { "name": "Pískový bunker", "terms": "pískový bunker,písková překážka,písečná překážka,bunker,hazard" @@ -5888,6 +5963,9 @@ "name": "Stadion", "terms": "stadion,fotbal,fotbalový stadión,hřiště" }, + "leisure/swimming_area": { + "name": "Přírodní koupaliště" + }, "leisure/swimming_pool": { "name": "Plavecký bazén", "terms": "plovárna,koupaliště" @@ -5896,6 +5974,18 @@ "name": "Závodní dráha (ne pro motorsport)", "terms": "jezdit na kole,pes,chrt,kůň,koně,chrti,chrtů,závod*,dráha" }, + "leisure/track/horse_racing": { + "name": "Jezdecká dráha" + }, + "leisure/track/horse_racing_point": { + "name": "Jezdecká dráha" + }, + "leisure/track/running": { + "name": "Běžecká dráha" + }, + "leisure/track/running_point": { + "name": "Běžecká dráha" + }, "leisure/water_park": { "name": "Akvapark", "terms": "akvapark,aquapark,vodní zábavní park,bazén,koupaliště,tobogán" @@ -6034,6 +6124,9 @@ "man_made/tower/observation": { "name": "Vyhlídková věž" }, + "man_made/tunnel": { + "name": "Tunel" + }, "man_made/wastewater_plant": { "name": "Čistírna odpadních vod", "terms": "čistírna,čistička,čistírna odpadních vod,ČOV,čovka" @@ -6199,7 +6292,7 @@ "terms": "mokřad,mokřina,rašeliniště,slatiniště,slatina,bažina,slanisko,slať,slatě,mangrovy" }, "natural/wood": { - "name": "Prales", + "name": "Les", "terms": "prales,přírodní les,neudržovaný les,nehospodářský les" }, "noexit/yes": { @@ -7593,6 +7686,22 @@ "text": "© agentschap Informatie Vlaanderen" } }, + "AGIVFlandersGRB": { + "attribution": { + "text": "© agentschap Informatie Vlaanderen" + }, + "name": "AIV Flanders GRB" + }, + "AIV_DHMV_II_HILL_25cm": { + "attribution": { + "text": "© agentschap Informatie Vlaanderen" + } + }, + "AIV_DHMV_II_SVF_25cm": { + "attribution": { + "text": "© agentschap Informatie Vlaanderen" + } + }, "Bing": { "description": "Satelitní a letecké snímky.", "name": "Letecké snímky Bing" diff --git a/dist/locales/da.json b/dist/locales/da.json index 22d0cfb24c..0cf1937d9a 100644 --- a/dist/locales/da.json +++ b/dist/locales/da.json @@ -2331,12 +2331,6 @@ "undefined": "Nej" } }, - "iata": { - "label": "IATA" - }, - "icao": { - "label": "ICAO" - }, "incline": { "label": "Stigning" }, diff --git a/dist/locales/de.json b/dist/locales/de.json index 6936d8a8b6..28445516a5 100644 --- a/dist/locales/de.json +++ b/dist/locales/de.json @@ -1710,7 +1710,7 @@ "tip": "Finde nicht routingfähige Straßen, Wege und Fährrouten.", "routable": { "message": { - "multiple": "{count} routingfähige Objekte sind nur untereinander vunden." + "multiple": "{count} routingfähige Objekte sind nur untereinander verbunden." }, "reference": "Alle Straßen, Wege und Fährrouten sollten verbunden sein und ein zusammenhängendes routingfähiges Netzwerk bilden." }, @@ -1719,8 +1719,8 @@ } }, "fixme_tag": { - "title": "„FIXME“ Ersuchen", - "message": "{feature} mit „FIXME“ Ersuchen", + "title": "Ersuchen um Verbesserung („Fix Me“)", + "message": "{feature} mit Ersuchen um Verbesserung („Fix Me“)", "tip": "Finde Objekte mit einer „fixme“ Eigenschaft", "reference": "Eine „fixme“ Eigenschaft weist darauf hin, dass ein Mapper um Hilfe mit einem Objekt ersucht hat." }, @@ -1952,6 +1952,9 @@ "use_different_layers": { "title": "Benutze verschiedene Ebenen" }, + "use_different_layers_or_levels": { + "title": "Benutze verschiedene Ebenen oder Stockwerke (level/layer)" + }, "use_different_levels": { "title": "Benutze verschiedene Stockwerke" }, @@ -2460,6 +2463,15 @@ "access_simple": { "label": "Erlaubter Zugang" }, + "addr/interpolation": { + "label": "Typ", + "options": { + "all": "Alle", + "alphabetic": "Alphabetisch", + "even": "Gerade", + "odd": "Ungerade" + } + }, "address": { "label": "Adresse", "placeholders": { @@ -2650,6 +2662,10 @@ "building": { "label": "Gebäude" }, + "building/levels/underground": { + "label": "Unterirdische Geschosse", + "placeholder": "2, 4, 6..." + }, "building/levels_building": { "label": "Gebäudeetagen", "placeholder": "2, 4, 6..." @@ -3168,10 +3184,10 @@ } }, "iata": { - "label": "IATA" + "label": "IATA Flughafen Code" }, "icao": { - "label": "ICAO" + "label": "ICAO Flughafen Code" }, "incline": { "label": "Neigung" @@ -3673,12 +3689,18 @@ "power_supply": { "label": "Stromversorgung" }, + "preschool": { + "label": "Vorschule" + }, "produce": { "label": "Erzeugnisse" }, "product": { "label": "Produkte" }, + "public_bookcase/type": { + "label": "Typ" + }, "railway": { "label": "Typ" }, @@ -4337,6 +4359,9 @@ } }, "presets": { + "addr/interpolation": { + "name": "Address-Interpolation" + }, "address": { "name": "Adresse", "terms": "Adresse" @@ -4430,10 +4455,18 @@ "name": "Hubschrauberlandeplatz", "terms": "Hubschrauberlandeplatz, Helikopterlandeplatz, Heliport" }, + "aeroway/holding_position": { + "name": "Rollhalteort", + "terms": "Rollhalteort, Rollhalt" + }, "aeroway/jet_bridge": { "name": "Jetbrücke", "terms": "Jetbrücke, Flugzeugbrücke, Passagierbrücke," }, + "aeroway/parking_position": { + "name": "Flugzeugparkposition", + "terms": "Flugzeugparkposition" + }, "aeroway/runway": { "name": "Start- und Landebahn", "terms": "Start- und Landebahn, Start-/Landebahn, Startbahn, Landebahn" @@ -4639,6 +4672,10 @@ "name": "Kampfsportstudio", "terms": "Kampfsportstudio, Kampfsportzentrum, Karatestudio, Dojo" }, + "amenity/dressing_room": { + "name": "Umkleideraum", + "terms": "Umkleideraum, Umkleidekabine" + }, "amenity/drinking_water": { "name": "Trinkwasser", "terms": "Brunnen,Trinkwasserbrunnen,Wasserhahn,Trinkbrunnen" @@ -4741,7 +4778,7 @@ "terms": "Karaoke Klub, Karaoke, Raum, Karaoke TV" }, "amenity/kindergarten": { - "name": "Kindergarten, Kindergartengelände, Kindertagesstätte, Kindertagesstättengelände", + "name": "Vorschule/Kindergarten, Kindergartengelände, Kindertagesstätte, Kindertagesstättengelände", "terms": "Kindergartengelände" }, "amenity/language_school": { @@ -4795,6 +4832,10 @@ "name": "Mehrstöckige Parkgarage", "terms": "Mehrstöckige Parkgarage" }, + "amenity/parking/park_ride": { + "name": "Park & Ride Platz", + "terms": "Pendlerparkplatz, Park&Pool, Park&Ride, P+R, öffentlicher Verkehr, U-Bahn, Eisenbahnparkplatz" + }, "amenity/parking/underground": { "name": "Tiefgarage", "terms": "Autoparkplatz, Parkplatz, Tiefgaragenparkplatz, LKW-Parken" @@ -6997,6 +7038,10 @@ "name": "Fahrsilo", "terms": "offener Schüttgutbunker, Fahrsilokammer" }, + "man_made/cairn": { + "name": "Steinmännchen", + "terms": "Steinhügel, Steinmänner, Steinmandl, Steinmanderl, Steindauben" + }, "man_made/chimney": { "name": "Schornstein", "terms": "Schornstein, Kamin" @@ -8409,6 +8454,10 @@ "name": "HiFi-Laden", "terms": "HiFi-Geschäft" }, + "shop/hobby": { + "name": "Bastelgeschäft", + "terms": "Bastelgeschäft, Hobbyshop" + }, "shop/houseware": { "name": "Haushaltswarengeschäft", "terms": "Haushaltswarengeschäft, Haushaltswarenladen" @@ -8601,6 +8650,10 @@ "name": "Supermarkt", "terms": "Supermarkt" }, + "shop/swimming_pool": { + "name": "Swimmingpoolbedarf", + "terms": "Swimmingpoolbedarf" + }, "shop/tailor": { "name": "Schneider", "terms": "Schneider, Herrenschneider" @@ -8743,6 +8796,10 @@ "name": "Sehenswürdigkeit", "terms": "Touristenattraktion" }, + "tourism/camp_pitch": { + "name": "Zeltplatz/Wohnwagenplatz", + "terms": "Zelt, Wohnwagen" + }, "tourism/camp_site": { "name": "Campingplatz", "terms": "Camping Lager, Zeltplatz, Campingplatz" @@ -9799,6 +9856,10 @@ "description": "YouthMappers Ortsverband an der Universität von Nigerie, Enugu Campus", "extendedDescription": "Das LionMappersTeam (LMT) Enugu Campus ist ein Teil des YouthMappers Network. Das einzige Ziel ist, Mitgliedern die Möglichkeit zu geben, ihre Fähigkeiten im Bereich der Geoinformatik zu erlernen und zu verbessern sowie offene geografische Daten und Analysen zu erstellen, die lokal definierten Herausforderungen auf globaler Ebene begegnen. Es handelt sich um ein Team von Freiwilligen für die Bereitstellung von Crowdsourced-Mapping und Geoinformationen unter Verwendung von Openstreetmap, Citizen Science und anderer Geospatial-Technologie für Forschung, Schulung und Reaktion auf widerstandsfähige gesellschaftliche Herausforderungen. Wir sind in den Bereichen Web-Kartografie, GIS und Fernerkundung und Forschung involviert. Wir beschäftigen uns mit Freiwilligen Geografischen Informationen. GIS und Gerechtigkeit und Citizen Science. Zu unseren Hauptaktivitäten zählen Online-Crowdsourcing-Kartografie, Field Mapping, Schulungsworkshops und Schulungen zu High School sowie humanitärer Katastrophenhilfe." }, + "osm-africa-telegram": { + "name": "OpenStreetMap Afrika Telegram", + "description": "OpenStreetMap Telegram für Afrika" + }, "ym-Insititue-d-Enseignement-Superieur-de-Ruhengeri": { "name": "YouthMappers INES Ruhengeri", "description": "YouthMappers Ortsverband am Institut für Hochschulbildung in Ruhengeri", @@ -9925,6 +9986,10 @@ "description": "YouthMappers chapter at University of Zimbabwe", "extendedDescription": "UzMappersTeam Zimbabwe is a team of Volunteers using OpenStreetMap for Open Data Mapping and Humanitarian Disaster response mapping .The team empowers its members with open source geospatial technology skills." }, + "osm-afghanistan-facebook": { + "name": "OpenStreetMap Afghanistan", + "description": "Verbessere OpenStreetMap in Afghanistan" + }, "OSM-BGD-facebook": { "name": "OpenStreetMap Bangladesch", "description": "Verbessere OpenStreetMap in Bangladesch", @@ -10460,6 +10525,10 @@ "name": "OpenStreetMap Kosovo auf Telegram", "description": "Halboffizielle öffentliche Gesamt-Kosovo Telegram Gruppe. Mapper von überall in jeder Sprache sind willkommen." }, + "lu-mailinglist": { + "name": "Talk-lu Mailing Liste", + "description": "Offizielle Mailing Liste für die Luxembourgische OSM Gemeinschaft" + }, "ym-Universit-Mohammed-V-Rabat": { "name": "Brahmapoutre at Rabat", "description": "YouthMappers chapter at Université Mohammed V Rabat", @@ -10489,6 +10558,14 @@ "name": "OpenStreetMap Polen Web Forum", "description": "Forum der polnischen OpenStreetMap-Community" }, + "pt-mailinglist": { + "name": "Talk-pt Mailing Liste", + "description": "Talk-pt ist die offizielle Mailingliste für die Portugiesische OSM-Gemeinschaft" + }, + "pt-telegram": { + "name": "OpenStreetMap Portugal no Telegram", + "description": "Telegram Gruppe der Portugiesischen OpenStreetMap Gemeinschaft {url}" + }, "si-forum": { "name": "OpenStreetMap Slowenien Forum", "description": "Forum der OpenStreetMap-Community in Slowenien" @@ -10978,6 +11055,10 @@ "name": "Geography Club", "description": "YouthMappers chapter at Western Michigan University" }, + "geogeeks_perth_meetup": { + "name": "GeoGeeks Perth Treffen", + "description": "Treffen in Perth für Menschen die sich für GIS-Daten, Mappen und Open Source interessieren. Wir beschäftigen uns mit allen Angelegenheiten von lokaler Bedeutung." + }, "talk-au": { "name": "Talk-au Mailing Liste", "description": "Mappers in Australien chatten hier" @@ -11034,6 +11115,10 @@ "description": "Beteiligte dich an der OpenStreetMap Brasília Gemeinschaft auf Telegram", "extendedDescription": "Mach mit, um mehr über OpenStreetMap zu erfahren, Fragen zu stellen oder an unseren Treffen teilzunehmen. Alle sind willkommen!" }, + "OSM-br-discord": { + "name": "OpenStreetMap Brasil Discord", + "description": "Beteilige dich an der OpenStreetMap Brasilien Community auf Discord" + }, "OSM-br-mailinglist": { "name": "Talk-br Mailingliste", "description": "Eine Mailingliste zu OpenStreetMap in Brasilien" @@ -11171,6 +11256,18 @@ "name": "Talk-uy Mailing Liste", "description": "Talk-uy ist die offizielle Mailingliste für die OSM Gemeinschaft in Uruguay" }, + "ve-forum": { + "name": "OpenStreetMap VE Forum", + "description": "OpenStreetMap Venezuela web forum" + }, + "ve-mailinglist": { + "name": "Talk-ve Mailing Liste", + "description": "Talk-ve ist die offizielle Mailingliste für die OSM Community in Venezuela." + }, + "ve-telegram": { + "name": "OpenStreetMap Venezuela Telegram", + "description": "Mach mit bei der OpenStreetMap Venezuela Gemeinschaft auf Telegram" + }, "LATAM-Facebook": { "name": "OpenStreetMap Lateinamerika Facebook", "description": "OpenStreetMap Lateinamerika auf Facebook" diff --git a/dist/locales/el.json b/dist/locales/el.json index 6774d518fe..8bf57cd4d9 100644 --- a/dist/locales/el.json +++ b/dist/locales/el.json @@ -1913,12 +1913,6 @@ "undefined": "Όχι" } }, - "iata": { - "label": "IATA" - }, - "icao": { - "label": "ICAO" - }, "incline": { "label": "Κλίση" }, @@ -4853,6 +4847,9 @@ "name": "Γλίστρα", "terms": "Γλίστρα, Νεωλκείο" }, + "leisure/slipway_point": { + "name": "Γλίστρα" + }, "leisure/sports_centre": { "name": "Αθλητικό Κέντρο/ Συγκρότημα", "terms": "Αθλητικό Κέντρο/ Συγκρότημα" diff --git a/dist/locales/en-AU.json b/dist/locales/en-AU.json index 4ce31edb96..6fa701378f 100644 --- a/dist/locales/en-AU.json +++ b/dist/locales/en-AU.json @@ -61,6 +61,9 @@ "amenity/social_centre": { "name": "Social Centre" }, + "amenity/vending_machine/fuel": { + "name": "Fuel Pump" + }, "barrier/kerb": { "name": "Kerb" }, @@ -106,6 +109,9 @@ "highway/give_way": { "name": "Give Way Sign" }, + "highway/living_street": { + "name": "Shared Zone Road" + }, "leisure/adult_gaming_centre": { "name": "Adult Gaming Centre" }, diff --git a/dist/locales/en-GB.json b/dist/locales/en-GB.json index ffa6c9535f..51b77cdd42 100644 --- a/dist/locales/en-GB.json +++ b/dist/locales/en-GB.json @@ -1872,12 +1872,6 @@ "undefined": "No" } }, - "iata": { - "label": "IATA" - }, - "icao": { - "label": "ICAO" - }, "incline": { "label": "Incline" }, diff --git a/dist/locales/eo.json b/dist/locales/eo.json index e968f5eb68..7f4d32830d 100644 --- a/dist/locales/eo.json +++ b/dist/locales/eo.json @@ -1950,6 +1950,9 @@ "use_different_layers": { "title": "Uzi malsamajn tavolojn" }, + "use_different_layers_or_levels": { + "title": "Uzi malsamajn tavolojn aŭ etaĝojn" + }, "use_different_levels": { "title": "Uzi malsamajn etaĝojn" }, @@ -2458,6 +2461,15 @@ "access_simple": { "label": "Aliro permesata" }, + "addr/interpolation": { + "label": "Maniero", + "options": { + "all": "Ĉiuj", + "alphabetic": "Alfabeta", + "even": "Parnombra", + "odd": "Neparnombra" + } + }, "address": { "label": "Adreso", "placeholders": { @@ -2648,6 +2660,10 @@ "building": { "label": "Konstruaĵo" }, + "building/levels/underground": { + "label": "Kiom da subteraj etaĝoj", + "placeholder": "2, 4, 6…" + }, "building/levels_building": { "label": "Etaĝoj de konstruaĵo", "placeholder": "2, 4, 6…" @@ -3165,12 +3181,6 @@ "undefined": "Ne" } }, - "iata": { - "label": "IATA" - }, - "icao": { - "label": "ICAO" - }, "incline": { "label": "Klino" }, @@ -3671,6 +3681,9 @@ "power_supply": { "label": "Energi-fonto" }, + "preschool": { + "label": "Infanvartejo" + }, "produce": { "label": "Produktaĵo" }, @@ -4335,6 +4348,9 @@ } }, "presets": { + "addr/interpolation": { + "name": "Interpolado de adresoj" + }, "address": { "name": "Adreso", "terms": "stratnomo,domnumero,numero" @@ -4637,6 +4653,10 @@ "name": "Doĵo / batalart-lernejo", "terms": "dojho,dojxo,batalarto,luktoarto,luktarto" }, + "amenity/dressing_room": { + "name": "Vestejo", + "terms": "travestejo,tualetejo" + }, "amenity/drinking_water": { "name": "Trinkakvejo", "terms": "ŝprucakvo,shprucakvo,sxprucakvo,trinkejo,akvokrano,krano" @@ -4793,6 +4813,10 @@ "name": "Pluretaĝa parkumejo", "terms": "parkejo,parkumejo,aŭtejo,aŭtoparkejo" }, + "amenity/parking/park_ride": { + "name": "Parkumejo P+R (ĉe publika transporto)", + "terms": "parkumejo" + }, "amenity/parking/underground": { "name": "Parkumejo subtera", "terms": "parkejo subtera,subtera parkumejo" @@ -6996,6 +7020,10 @@ "name": "Stokejo senkovra", "terms": "turstokejo,stokturo,silo,magazeno" }, + "man_made/cairn": { + "name": "Ŝtonamaso", + "terms": "shtonamaso,sxtonamaso,kairno,amasaĵo" + }, "man_made/chimney": { "name": "Kamentubo", "terms": "kameno,fumtubo" @@ -8589,6 +8617,10 @@ "name": "Superbazaro", "terms": "vendejaro,vendejego" }, + "shop/swimming_pool": { + "name": "Vendejo de naĝej-akcesoriaĵoj", + "terms": "naĝejo,naĝbaseno" + }, "shop/tailor": { "name": "Tajlora laborejo/vendejo", "terms": "tajloro" @@ -8731,6 +8763,10 @@ "name": "Turisma vidindaĵo", "terms": "vidindaĵo,vidindajho,vidindajxo,atrakcio,vizitindaĵo" }, + "tourism/camp_pitch": { + "name": "Loko por kampadveturilo/tendo", + "terms": "kampadejo,tendo,kampadveturilo" + }, "tourism/camp_site": { "name": "Kampadejo", "terms": "tendo,bivakejo" diff --git a/dist/locales/es.json b/dist/locales/es.json index 90d75f89bd..61f3e6e8dc 100644 --- a/dist/locales/es.json +++ b/dist/locales/es.json @@ -1952,6 +1952,9 @@ "use_different_layers": { "title": "Use capas diferentes" }, + "use_different_layers_or_levels": { + "title": "Use diferentes capas o niveles" + }, "use_different_levels": { "title": "Use niveles diferentes" }, @@ -2460,6 +2463,15 @@ "access_simple": { "label": "Acceso permitido" }, + "addr/interpolation": { + "label": "Tipo", + "options": { + "all": "Todo", + "alphabetic": "Alfabético", + "even": "Par", + "odd": "Impar" + } + }, "address": { "label": "Dirección", "placeholders": { @@ -2650,6 +2662,10 @@ "building": { "label": "Edificio" }, + "building/levels/underground": { + "label": "Niveles subterráneos", + "placeholder": "2, 4, 6..." + }, "building/levels_building": { "label": "Niveles del edificio", "placeholder": "2, 4, 6..." @@ -2844,7 +2860,7 @@ "label": "Diseño" }, "destination/ref_oneway": { - "label": "Números de carretera de destino" + "label": "Números de vía de destino" }, "destination/symbol_oneway": { "label": "Símbolos de destino" @@ -3168,10 +3184,10 @@ } }, "iata": { - "label": "IATA" + "label": "Código de aeropuerto IATA" }, "icao": { - "label": "ICAO" + "label": "Código de aeropuerto de la OACI - ICAO" }, "incline": { "label": "Pendiente" @@ -3673,12 +3689,18 @@ "power_supply": { "label": "Fuente de energía" }, + "preschool": { + "label": "Preescolar" + }, "produce": { "label": "Produce" }, "product": { "label": "Productos" }, + "public_bookcase/type": { + "label": "Tipo" + }, "railway": { "label": "Tipo" }, @@ -4337,6 +4359,9 @@ } }, "presets": { + "addr/interpolation": { + "name": "Interpolación de direcciones" + }, "address": { "name": "Dirección", "terms": "dirección, altura, domicilio, residencia" @@ -4430,10 +4455,18 @@ "name": "Helipuerto", "terms": "helipuerto, pista de aterrizaje para helicópteros, pista de despegue para helicópteros, helicóptero" }, + "aeroway/holding_position": { + "name": "Posición de espera de aviones", + "terms": "aeronave, avión, posición, espera" + }, "aeroway/jet_bridge": { "name": "Manga de aeropuerto", "terms": "puente avión, puente aéreo, pasarela, puente de embarque de pasajeros, PBB, portal, conector de puerta de terminal" }, + "aeroway/parking_position": { + "name": "Posición de estacionamiento de aviones", + "terms": "aeronave, avión, posición, estacionamiento, parqueo" + }, "aeroway/runway": { "name": "Pista de aterrizaje", "terms": "pista, pista de aterrizaje, pista de despegue" @@ -4639,6 +4672,10 @@ "name": "Academia de artes marciales", "terms": "dojo, academia, artes marciales, karate, judo, taekwondo, kendo, ninjutsu, kung fu" }, + "amenity/dressing_room": { + "name": "Vestuario", + "terms": "Cambio de ropa, vestidor, vestuario" + }, "amenity/drinking_water": { "name": "Fuente de agua potable", "terms": "agua,potable,bebible,fuente,manantial, fontana, fontanal, hontanar, venero, bebedero" @@ -4795,6 +4832,10 @@ "name": "Garaje de estacionamiento multinivel", "terms": "aparcamiento, estacionamiento, estacionamiento de varios pisos, estructura de estacionamiento, rampa de estacionamiento, plataforma de estacionamiento, estacionamiento cubierto" }, + "amenity/parking/park_ride": { + "name": "Estacionamiento con transporte público", + "terms": "cercanías, incentivo, estacionamiento, P + R, park, ride, transporte público, bus, metro, subte" + }, "amenity/parking/underground": { "name": "Estacionamiento subterráneo", "terms": "Estacionamiento, estacionamiento de automóviles, estacionamiento de vehículos, estacionamiento de rv, estacionamiento subterráneo, estacionamiento de camiones, estacionamiento de vehículos, aparcamiento" @@ -5192,8 +5233,8 @@ "terms": "correo, paquete, retiro, envio, productos" }, "amenity/vending_machine/parking_tickets": { - "name": "Máquina expendedora de boletos de aparcamiento", - "terms": "ticket, boleto, recibo, expendedor, coche, carro, auto, automóvil, vehículo, aparcamiento, parking, aparcadero, estacionamiento, garaje, parqueadero, parqueo" + "name": "Parquímetro", + "terms": "ticket, boleto, recibo, expendedor, aparcamiento, parking, aparcadero, estacionamiento, parqueadero, parqueo, parquímetro" }, "amenity/vending_machine/public_transport_tickets": { "name": "Máquina expendedora del boleto de transporte", @@ -6997,6 +7038,10 @@ "name": "Silo búnker", "terms": "silo búnker, silo, bunker" }, + "man_made/cairn": { + "name": "Mojón", + "terms": "pila de piedra, pila de piedras, càrn" + }, "man_made/chimney": { "name": "Chimenea", "terms": "chimenea, fogón, fuego" @@ -8410,6 +8455,10 @@ "name": "Tienda de equipos de sonido", "terms": "sonido, hifi, alta fidelidad, altavoz, amplificador, equipos HIFI" }, + "shop/hobby": { + "name": "Tienda de pasatiempos", + "terms": "manga, figuras, modelo" + }, "shop/houseware": { "name": "Tienda de artículos del hogar ", "terms": "artículos del hogar, enseres del hogar, hogar, houseware" @@ -8602,6 +8651,10 @@ "name": "Supermercado", "terms": "supermercado, supermercados, cadena de supermercados, hipermercado" }, + "shop/swimming_pool": { + "name": "Tienda de suministros para piscinas", + "terms": "equipos para jacuzzis, cuidado de jacuzzis, suministros para jacuzzis, tienda de piscinas, piscinas, instalación de piscinas, mantenimiento de piscinas, insumos de piscinas, jacuzzi, piscina, pileta, alberca" + }, "shop/tailor": { "name": "Sastrería", "terms": "Sastre, taller de costura, costura, taller de sastrería, sastrería" @@ -8744,6 +8797,10 @@ "name": "Atracción turística", "terms": "punto de interés, interés turístico, atracción turística, atracciones turísticas, atractivos turísticos, lugares turísticos" }, + "tourism/camp_pitch": { + "name": "Lugar para acampar", + "terms": "lugar, patio, cancha, terreno, camping, cámping, campamento, acampe, tienda, carpa, rv, motorhome, motor home, caravana, autocaravana," + }, "tourism/camp_site": { "name": "Campamento", "terms": "terreno, área, lugar, camping, cámping, campamento, acampe, tienda, carpa, rv, motorhome, motor home, caravana, autocaravana" @@ -9800,6 +9857,10 @@ "description": "Capítulo de los YouthMappers en la Universidad de Nigeria, Campus Enugu", "extendedDescription": "El LionMappersTeam (LMT) Enugu Campus es un afiliado de YouthMappers Network, con el único objetivo de brindar a los miembros la oportunidad de aprender y mejorar sus habilidades en el campo de la geoinformática y crear datos geográficos abiertos y análisis que aborden los desafíos definidos localmente a nivel mundial. Es un equipo de voluntarios para la provisión de información geográfica y de mapas de colaboración colectiva que utiliza Openstreetmap, Citizen Science y otras tecnologías geoespaciales para la investigación, la capacitación y la respuesta a los desafíos de la comunidad resistente. Participamos en aplicaciones de cartografía web, SIG y teledetección e investigación. Nos apasiona la información geográfica voluntaria. El SIG participativo y la ciencia ciudadana. Nuestras actividades principales incluyen cartografía en línea, cartografía de campo, talleres de capacitación y divulgación a la escuela secundaria, así como Mapeo de Respuesta Humanitaria / Desastres." }, + "osm-africa-telegram": { + "name": "Telegram de OpenStreetMap África", + "description": "Telegram de OpenStreetMap África" + }, "ym-Insititue-d-Enseignement-Superieur-de-Ruhengeri": { "name": "YouthMappers en INES Ruhengeri", "description": "El capítulo de YouthMappers en el Instituto de Educación Superior de Ruhengeri", @@ -9926,6 +9987,10 @@ "description": "El capítulo de YouthMappers en la Universidad de Zimbabwe", "extendedDescription": "UzMappersTeam Zimbabwe es un equipo de voluntarios que utilizan OpenStreetMap para el mapeo de datos abiertos y el mapeo de respuesta ante desastres humanitarios. El equipo capacita a sus miembros con habilidades de tecnología geoespacial de código abierto." }, + "osm-afghanistan-facebook": { + "name": "OpenStreetMap Afganistán", + "description": "Mejore OpenStreetMap en Afganistán" + }, "OSM-BGD-facebook": { "name": "OpenStreetMap Bangladesh", "description": "Mejore OpenStreetMap en Bangladesh", @@ -10461,6 +10526,10 @@ "name": "OpenStreetMap Kosovo en Telegram", "description": "Grupo público de Telegram semi-oficial sobre Kosovo. Damos la bienvenida a todos los mapeadores de cualquier lugar en cualquier idioma." }, + "lu-mailinglist": { + "name": "Lista de correo de Talk-lu", + "description": "Lista de correo oficial para la comunidad OSM de Luxemburgo" + }, "ym-Universit-Mohammed-V-Rabat": { "name": "Brahmapoutre en Rabat", "description": "Capítulo de YouthMapper en la Université Mohammed V Rabat", @@ -10490,6 +10559,14 @@ "name": "Foro de OpenStreetMap Polonia", "description": "Foro de la comunidad polaca OpenStreetMap" }, + "pt-mailinglist": { + "name": "Lista de correo de Talk-pt", + "description": "Talk-pt es la lista de correo oficial de la comunidad OSM portuguesa" + }, + "pt-telegram": { + "name": "Telegram de OpenStreetMap en Portugal", + "description": "Grupo de Telegram de la comunidad portuguesa de OpenStreetMap {url}" + }, "si-forum": { "name": "Foro de OpenStreetMap Eslovenia", "description": "Foro de la comunidad OpenStreetMap en Eslovenia" @@ -10979,6 +11056,10 @@ "name": "Club de geografía", "description": "El capítulo de YouthMappers en la Universidad de Western Michigan" }, + "geogeeks_perth_meetup": { + "name": "Grupo de Meetup de GeoGeeks Perth", + "description": "Grupo de reuniones basado en Perth para personas interesadas en mapas, datos geoespaciales y código abierto. Estaremos trabajando en cualquier cosa que implique un sentido de lugar." + }, "talk-au": { "name": "Lista de correo Talk-au", "description": "Lugar para que los mapeadores australianos chateen" @@ -11035,6 +11116,10 @@ "description": "Únase a la comunidad de OpenStreetMap Brasília en Telegram", "extendedDescription": "Únase a la comunidad para obtener más información sobre OpenStreetMap, hacer preguntas o participar en nuestras reuniones. ¡Todos son bienvenidos!" }, + "OSM-br-discord": { + "name": "Discord de OpenStreetMap Brasil", + "description": "Únete a la comunidad de OpenStreetMap Brasil en Discord" + }, "OSM-br-mailinglist": { "name": "Lista de correo Talk-br", "description": "Una lista de correo para discutir OpenStreetMap en Brasil" @@ -11172,6 +11257,18 @@ "name": "Lista de correo de Talk-uy", "description": "Talk-uy es la lista de correo oficial de la comunidad uruguaya de OSM" }, + "ve-forum": { + "name": "Foro de OpenStreetMap VE", + "description": "Foro web de OpenStreetMap Venezuela" + }, + "ve-mailinglist": { + "name": "Lista de correo de Talk-ve", + "description": "Talk-ve es la lista de correo oficial de la comunidad OSM de Venezuela" + }, + "ve-telegram": { + "name": "Telegram de OpenStreetMap Venezuela", + "description": "Únase a la comunidad de OpenStreetMap Venezuela en Telegram" + }, "LATAM-Facebook": { "name": "Facebook de OpenStreetMap Latam", "description": "OpenStreetMap Latam en Facebook" diff --git a/dist/locales/et.json b/dist/locales/et.json index ff602bbcc3..86312f9541 100644 --- a/dist/locales/et.json +++ b/dist/locales/et.json @@ -1115,12 +1115,6 @@ "horse_riding": { "label": "Ratsutamine" }, - "iata": { - "label": "IATA" - }, - "icao": { - "label": "ICAO" - }, "indoor": { "label": "Siseruum" }, diff --git a/dist/locales/fa.json b/dist/locales/fa.json index feb36861a6..daa3104693 100644 --- a/dist/locales/fa.json +++ b/dist/locales/fa.json @@ -115,7 +115,7 @@ "annotation": "تگ‌ها تغییر یافت." }, "circularize": { - "title": "دایره کردن", + "title": "دایره", "description": { "line": "این خط را دایره‌ای کنید.", "area": "این محدوده را دایره‌ای کنید." @@ -496,7 +496,7 @@ }, "redo": { "tooltip": "ازنو: {action}", - "nothing": "چیزی برای ازنو انجام‌دادن نیست." + "nothing": "چیزی برای انجام دوباره نیست." }, "tooltip_keyhint": "میانبر:", "browser_notice": "این ویرایشگر از مرورگرهای کروم، سافاری، اپرا و اینترنت اکسپلورر ۱۱ و ویرایش‌های جدیدتر آن پشتیبانی می‌کند. لطفاً مرورگر خود را به‌روز کنید یا از Potlatch 2 برای ویرایش نقشه استفاده کنید.", @@ -2301,7 +2301,7 @@ "rotate": "چرخاندن عارضه‌های انتخاب‌شده", "orthogonalize": "قائمه‌کردن گوشه‌های یک خط یا محدوده", "straighten": "مسقیم‌کردن یک خط یا به‌خط‌کردن نقطه‌ها", - "circularize": "دایره‌کردن یک خط بسته یا محدوده", + "circularize": "دایره کردن یک خط بسته یا محدوده", "reflect_long": "بازتاب عارضه‌ها حول قطر بزرگ‌تر", "reflect_short": "بازتاب عارضه‌ها حول قطر کوچک‌تر", "delete": "حذف عارضه‌های انتخاب‌شده" @@ -3096,12 +3096,6 @@ "undefined": "خیر" } }, - "iata": { - "label": "یاتا" - }, - "icao": { - "label": "ایکائو" - }, "incline": { "label": "شیب" }, @@ -4669,7 +4663,7 @@ "name": "ساختمان" }, "building/apartments": { - "name": "آپارتمان", + "name": "ساختمان آپارتمانی", "terms": "ساختمان چندطبقه" }, "building/barn": { @@ -5092,7 +5086,7 @@ }, "highway/footway": { "name": "راه پیاده", - "terms": "پیاده روی, پیاده, پا, پیاده گردی, تریل, مسیر پیاده" + "terms": "پیاده, پیاده روی, پا, پیاده گردی, تریل, مسیر پیاده" }, "highway/footway/conveying": { "name": "راه پیاده متحرک", @@ -5418,7 +5412,7 @@ "terms": "منطقه مسکونی, محدوده مسکونی, ناحیه مسکونی, محوطه مسکونی, محیط مسکونی" }, "landuse/residential/apartments": { - "name": "مجتمع آپارتمانی" + "name": "محدوده مجتمع آپارتمانی" }, "landuse/retail": { "name": "منطقه خرید و فروش" diff --git a/dist/locales/fi.json b/dist/locales/fi.json index 91f11753fc..73a87d64a1 100644 --- a/dist/locales/fi.json +++ b/dist/locales/fi.json @@ -19,6 +19,7 @@ }, "modes": { "add_feature": { + "title": "Lisää karttakohde", "key": "Välilehti", "result": "{count} tulos", "results": "{count} tulosta" @@ -203,10 +204,26 @@ } }, "downgrade": { + "title": "Yksinkertaista", "description": { - "building_address": "Poista kaikki osoitteet ja rakennukset ilman ominaisuustietoja", + "building_address": "Poista kaikki muut ominaisuustiedot paitsi osoite- ja rakennustiedot.", "building": "Poista kaikki rakennukset ilman ominaisuustietoja.", - "address": "Poista kaikki osoitteet ilman ominaisuustietoja." + "address": "Poista kaikki muut ominaisuustiedot paitsi osoitteet." + }, + "annotation": { + "building": { + "single": "Karttakohde yksinkertaistettu tavalliseksi rakennukseksi.", + "multiple": "{n} karttakohdetta yksinkertaistettu tavalliseksi rakennukseksi." + }, + "address": { + "single": "Karttakohde yksinkertaistettu pelkäksi osoitteeksi.", + "multiple": "{n} karttakohdetta yksinkertaistettu pelkäksi osoitteeksi." + }, + "multiple": "Yksinkertaistettu {n} karttakohdetta" + }, + "has_wikidata_tag": { + "single": "Tätä kohdetta ei voi yksinkertaistaa, sillä se on kytketty Wikidata-tietokantaan.", + "multiple": "Näitä kohteita ei voi yksinkertaistaa, sillä jotknin niistä on kytketty Wikidata-tietokantaan." } }, "add_member": { @@ -718,7 +735,7 @@ "tooltip": "Rakennukset, katokset, autotallit jne." }, "building_parts": { - "description": "Rakennuksen osat", + "description": "Rakennusten osat", "tooltip": "3D-rakennukset ja -kattokomponentit" }, "indoor": { @@ -1184,7 +1201,7 @@ "open_data_h": "Avoin data", "open_data": "Tekemäsi muokkaukset näkyvät kaikille käyttäjille. Muokkauksesi voi perustua paikallistuntemukseen, paikan päällä tehtyihin havaintoihin tai ilmakuva- ja katutasokuvamateriaaleihin. Tietojen kopiointi kaupallisista lähteistä, kuten Google-kartoista, [on ehdottomasti kielletty](https://www.openstreetmap.org/copyright).", "before_start_h": "Ennen aloittamista", - "before_start": "Tutustu huolellisesti OpenStreetMapiin ja tähän muokkausohjelmaan ennen muokkaamisen aloittamista. Tämän kartanmuokkausohjelman aloitusoppaan avulla voit harjoitella interaktiivisesti OpenStreetMapin muokkaamista. Aloita harjoittelu napsauttamalla Aloitusopas - se vie vain 15 minuuttia.", + "before_start": "Tutustu huolellisesti OpenStreetMapiin ja tähän kartanmuokkausohjelmaan ennen muokkaamisen aloittamista. Aloitusoppaan avulla voit harjoitella muokkaamista vuorovaikutteisesti. Aloita harjoittelu napsauttamalla Aloitusopas - se vie vain 15 minuuttia.", "open_source_h": "Avoin lähdekoodi", "open_source": "Tämä avoimen lähdekoodin iD-ohjelman versio {version} perustuu vapaaehtoisten käyttäjien työhön. Lähdekoodi on saatavilla [GitHub-palvelusta](https://github.com/openstreetmap/iD).", "open_source_help": "Voit osallistua projektiin auttamalla ohjelman [kääntämisessä](https://github.com/openstreetmap/iD/blob/master/CONTRIBUTING.md#translating) tai [ilmoittamalla ohjelmistovirheistä](https://github.com/openstreetmap/iD/issues)." @@ -2092,7 +2109,7 @@ "name": "Luontokohteet" }, "category-path": { - "name": "Kävely- ja pyörätiet " + "name": "Kävely- ja pyörätiet" }, "category-rail": { "name": "Raidekohteet" @@ -2171,6 +2188,15 @@ "access_simple": { "label": "Sallittu käyttäjäryhmä" }, + "addr/interpolation": { + "label": "Tyyppi", + "options": { + "all": "Kaikki", + "alphabetic": "Aakkosellinen", + "even": "Parillinen", + "odd": "Pariton" + } + }, "address": { "label": "Osoite", "placeholders": { @@ -2437,7 +2463,8 @@ "label": "Liikkeen suunta", "options": { "backward": "taaksepäin", - "forward": "eteenpäin" + "forward": "eteenpäin", + "reversible": "Suuntaa vaihtava" } }, "country": { @@ -2559,6 +2586,10 @@ "label": "Laitteet", "placeholder": "1, 2, 3..." }, + "diameter": { + "label": "Läpimitta", + "placeholder": "5 mm, 10 cm, 15 in, …" + }, "diaper": { "label": "Vaipanvaihtomahdollisuus" }, @@ -2816,6 +2847,12 @@ "historic/wreck/date_sunk": { "label": "Uppoamispäivä" }, + "historic/wreck/visible_at_high_tide": { + "label": "Näkyvissä nousuveden aikaan" + }, + "historic/wreck/visible_at_low_tide": { + "label": "Näkyvissä laskuveden aikaan" + }, "hoops": { "label": "Koritelineet", "placeholder": "1, 2, 4..." @@ -2849,12 +2886,6 @@ "undefined": "Ei" } }, - "iata": { - "label": "IATA" - }, - "icao": { - "label": "ICAO" - }, "incline": { "label": "Kaltevuus" }, @@ -2868,6 +2899,9 @@ "indoor": { "label": "Sisätila" }, + "indoor_type": { + "label": "Tyyppi" + }, "industrial": { "label": "Tyyppi" }, @@ -2985,6 +3019,9 @@ "label": "Kerroslukumäärä", "placeholder": "2, 4, 6..." }, + "liaison": { + "label": "Tyyppi" + }, "lit": { "label": "Valaistus" }, @@ -3206,8 +3243,31 @@ }, "piste/difficulty": { "label": "Haastavuus", + "options": { + "advanced": "Vaikea", + "easy": "Helppo", + "freeride": "Vapaalasku", + "intermediate": "Keskivaikea", + "novice": "Erittäin helppo" + }, "placeholder": "Helppo, keskivaikea, vaikea..." }, + "piste/difficulty_downhill": { + "label": "Vaikeusaste", + "options": { + "advanced": "Vaikea (musta)", + "easy": "Helppo (sininen)", + "freeride": "Vapaalasku (off-piste)", + "intermediate": "Keskivaikea (punainen)", + "novice": "Erittäin helppo (vihreä / opettelu)" + } + }, + "piste/difficulty_nordic": { + "label": "Vaikeusaste" + }, + "piste/difficulty_skitour": { + "label": "Vaikeusaste" + }, "piste/grooming": { "label": "Rinne/latupohja", "options": { @@ -3289,6 +3349,7 @@ "placeholder": "Etäisyys yhden desimaalin tarkkuudella (123.4)" }, "railway/signal/direction": { + "label": "Vaikutussuunta", "options": { "backward": "Taaksepäin", "both": "Molemmat/kaikki", @@ -3639,7 +3700,7 @@ "label": "Tyyppi" }, "tracktype": { - "label": "Raidetyyppi", + "label": "Tiepohja", "options": { "grade1": "Kiinteä: päällystetty tai voimakkaasti pakkaantunut, kova pinta", "grade2": "Enimmäkseen kiinteä: soraa/kiveä johon sekoittunut hieman pehmeää maa-ainesta", @@ -3659,6 +3720,7 @@ "label": "Liikennemerkki" }, "traffic_sign/direction": { + "label": "Vaikutussuunta", "options": { "backward": "Taaksepäin", "both": "Molemmat/kaikki", @@ -3669,6 +3731,7 @@ "label": "Tyyppi" }, "traffic_signals/direction": { + "label": "Vaikutussuunta", "options": { "backward": "Taaksepäin", "both": "Molemmat/kaikki", @@ -4038,7 +4101,7 @@ "name": "Kongressikeskus" }, "amenity/courthouse": { - "name": "Käräjäoikeus", + "name": "Tuomioistuin", "terms": "oikeustalo, käräjätalo, alioikeus, kihlakunnanoikeus, syyttäjäntalo, raastupa, käräjätuomari, syyttäjä, lautamies, käräjäoikeus" }, "amenity/coworking_space": { @@ -7279,7 +7342,7 @@ "name": "Taajamaliikennemerkki" }, "traffic_sign_vertex": { - "name": "Liikennemerkk" + "name": "Liikennemerkki" }, "type/boundary": { "name": "Raja" diff --git a/dist/locales/fr.json b/dist/locales/fr.json index 76bc527551..d28a0154b2 100644 --- a/dist/locales/fr.json +++ b/dist/locales/fr.json @@ -1952,6 +1952,9 @@ "use_different_layers": { "title": "Utiliser des couches différentes" }, + "use_different_layers_or_levels": { + "title": "Utiliser des couches ou des niveaux différents" + }, "use_different_levels": { "title": "Utiliser des niveaux différents" }, @@ -2460,6 +2463,15 @@ "access_simple": { "label": "Accès autorisé" }, + "addr/interpolation": { + "label": "Adresses interpolées", + "options": { + "all": "Toutes", + "alphabetic": "Alphabétique", + "even": "Paires", + "odd": "Impaires" + } + }, "address": { "label": "Adresse", "placeholders": { @@ -2650,6 +2662,10 @@ "building": { "label": "Bâtiment " }, + "building/levels/underground": { + "label": "Niveaux souterrains", + "placeholder": "2, 4, 6…" + }, "building/levels_building": { "label": "Nombre de niveaux", "placeholder": "2, 4, 6..." @@ -3167,12 +3183,6 @@ "undefined": "Non" } }, - "iata": { - "label": "Code AITA (*IATA*)" - }, - "icao": { - "label": "Code OACI (*ICAO*)" - }, "incline": { "label": "Pente" }, @@ -3673,6 +3683,9 @@ "power_supply": { "label": "Source de courant" }, + "preschool": { + "label": "École maternelle" + }, "produce": { "label": "Produits agricoles" }, @@ -4337,6 +4350,9 @@ } }, "presets": { + "addr/interpolation": { + "name": "Interpolation d'adresse" + }, "address": { "name": "Adresse", "terms": "Adresse, localisation, BAN, address" @@ -4639,6 +4655,10 @@ "name": "Dojo", "terms": "dojo, arts martiaux, art martial, tatami, judo, karate, aikido, aïkido, kendo, jujitsu, jujutsu, ju-jitsu, ju-jutsu, jūjutsu, jiu-jitsu, akhara, dojang, gelanggang, silat melayu, heya, sumo, kalari, kalaripayat, sasaran, pencak silat, wuguan, wushu, shorinji kempo, yoseikan budo, budo, aïkibudo, kenjutsu, bujutsu, katana, wakizashi, bokken, kobudo, bo-jutsu, bojustu, kendō, bō-jutsu, taijitsu, taijutsu" }, + "amenity/dressing_room": { + "name": "Vestiaire", + "terms": "vestiaire,cabine d'essayage,cabine de plage" + }, "amenity/drinking_water": { "name": "Eau potable", "terms": "eau potable, robinet, boire, fontaine d'eau, fontaine à eau, distributeur d'eau, eau, fontaine, drinking water" @@ -6996,6 +7016,10 @@ "name": "Silo-couloir", "terms": "Silo-couloir, trémie" }, + "man_made/cairn": { + "name": "Cairn", + "terms": "cairn,pierres,tas de cailloux,pile de cailloux" + }, "man_made/chimney": { "name": "Cheminée", "terms": "Cheminée" @@ -8409,6 +8433,10 @@ "name": "Magasin de matériel hi-fi", "terms": "Magasin d'appareils audio-visuel" }, + "shop/hobby": { + "name": "Magasin pour hobby (non spécifié)", + "terms": "manga,figurine,modèle,modélisme" + }, "shop/houseware": { "name": "Magasin d’articles ménagers", "terms": "Vente d'articles de cuisine" @@ -8601,6 +8629,10 @@ "name": "Supermarché", "terms": "Supermarché" }, + "shop/swimming_pool": { + "name": "Magasin de matériel de piscine", + "terms": "spa,cuve thermale,maintenance,piscine" + }, "shop/tailor": { "name": "Tailleur", "terms": "Habilleur, Giletier" @@ -8743,6 +8775,10 @@ "name": "Attraction touristique", "terms": "Attraction touristique" }, + "tourism/camp_pitch": { + "name": "Parcelle dans un camping", + "terms": "emplacement de camping,tente,caravane,camping-car,parcelle" + }, "tourism/camp_site": { "name": "Camping", "terms": "Terrain de camping,Site de camping,Aire de camping" @@ -9859,12 +9895,18 @@ "name": "Jeunes cartographes de l'Open University of Tanzania", "description": "Groupe des jeunes cartographes de l'Open University of Tanzania" }, + "ym-Sokoine-University-of-Agriculture": { + "description": "Chapitre YouthMappers à l'Université d'Agriculture Sokoine" + }, "ym-University-of-Dar-es-Salaam": { "name": "YouthMappers à l'Université de Dar es Salaam", - "description": "Chapitre YouthMappers à l'Université de Dar es Salaam" + "description": "Chapitre YouthMappers à l'Université de Dar es Salaam", + "extendedDescription": "Le but du chapitre YouthMappers de l'Université de Dar es Salaam est d'utiliser et de promouvoir les données open source et les technologies SIG pour cartographier les zones de catastrophe potentielle, fournir des ressources pour les interventions d'urgence, mettre en contact ses membres avec les organismes travaillant sur l'open source et les SIG dans la ville de Dar es Salaam, et contribuer aux besoins futurs de nos partenaires." }, "ym-Busitema-University": { - "description": "Chapitre YouthMappers à l'Université de Busitema" + "name": "Good Mappers", + "description": "Chapitre YouthMappers à l'Université de Busitema", + "extendedDescription": "Good mappers est une équipe d'étudiants de l'Université de Busitema. Son principal objectif est de créer une communauté de cartographes expérimentés qui pourront contribuer à cartographier le monde." }, "ym-Gulu-University": { "description": "Chapitre YouthMappers à l'Université de Gulu" @@ -9875,6 +9917,9 @@ "ym-Makerere-University": { "description": "Chapitre YouthMappers à l'Université de Makerere" }, + "ym-Mbarara-University-of-Science-and-Technology": { + "description": "Chapitre YouthMappers à l'Université des Sciences et Technologies de Mbarara" + }, "ym-St.-Augustine-International-University": { "name": "YouthMappers à l'Université Internationale de St Augustine", "description": "Chapitre YouthMappers à l'Université Internationale de St. Augustine" @@ -10008,6 +10053,9 @@ "description": "Améliorez OpenStreetMap au Népal", "extendedDescription": "Vous cartographiez au Népal ? Vous avez des questions, vous souhaitez rencontrer la communauté ? Rejoignez-nous sur {Url}. Vous êtes tous les bienvenus !" }, + "ym-Kathmandu-University": { + "description": "Chapitre YouthMappers à l'Université de Katmandou" + }, "OSM-Asia-mailinglist": { "name": "Liste de diffusion OpenStreetMap Asie", "description": "Talk-asia est la liste de diffusion officielle pour la communauté d'Asie" @@ -10317,12 +10365,17 @@ "description": "Liste de discussion OpenStreetMap Italie régionale pour Trentino." }, "ym-Yarmouk-University": { - "name": "YouthMappers à YU" + "name": "YouthMappers à YU", + "description": "Chapitre YouthMappers à l'Université de Yarmouk" }, "kosovo-telegram": { "name": "OpenStreetMap Kosovo sur Telegram", "description": "Groupe Telegram public semi-officiel pour tout le Kosovo. Nous accueillons tous les cartographes de n'importe où dans toutes les langues." }, + "lu-mailinglist": { + "name": "Liste de diffusion Talk-lu", + "description": "Liste de diffusion officielle pour la communauté luxembourgeoise d'OSM" + }, "ym-Universit-Mohammed-V-Rabat": { "name": "Brahmapoutre à Rabat", "description": "Chapitre YouthMappers à l'Université Mohammed V de Rabat" @@ -10351,6 +10404,13 @@ "name": "Forum d'OpenStreetMap Pologne", "description": "Forum de la communauté polonaise d'OpenStreetMap" }, + "pt-mailinglist": { + "name": "Liste de diffusion Talk-pt", + "description": "Talk-pt est la liste de diffusion officielle de la communauté portugaise d'OSM" + }, + "pt-telegram": { + "description": "Groupe Telegram de la communauté portugaise d'OpenStreetMap {url}" + }, "si-forum": { "name": "Forum d'OpenStreetMap Slovénie", "description": "Forum de la communauté OpenStreetMap en Slovénie" @@ -10375,6 +10435,9 @@ "name": "YouthMappers à l'UAM", "description": "Chapitre YouthMappers à l'Université Autonome de Madrid" }, + "ym-Universidad-Politcnica-de-Madrid": { + "description": "Chapitre YouthMappers à l'Université Polytechnique de Madrid" + }, "osm-se": { "name": "OpenStreetMap.se", "description": "Des nouvelles de la communauté OpenStreetMap suédoise" @@ -10399,6 +10462,10 @@ "name": "OpenStreetMap Suède sur Twitter", "description": "Suivez-nous sur Twitter : {url}" }, + "ym-Istanbul-Technical-University": { + "name": "YouthMappers ITU", + "description": "Chapitre YouthMappers à l'Université Technique d'Istanbul" + }, "Nottingham-OSM-pub-meetup": { "name": "Rencontres mensuelles dans un pub de East Midlands (Nottingham)", "description": "Rassemblement social pour les cartographes et les utilisateur d'East Midlands", @@ -10424,6 +10491,10 @@ "ym-University-of-Warwick": { "description": "Chapitre YouthMappers à l'Université de Warwick" }, + "ym-Sacred-Heart-Junior-College": { + "name": "YouthMappers au Sacred Heart Junior College", + "description": "Chapitre YouthMappers au Sacred Heart Junior College" + }, "OSM-CA-Slack": { "name": "Slack OSM-CA", "description": "Vous êtes tous les bienvenus ! Enregistrez-vous sur {signupUrl}." @@ -10432,14 +10503,28 @@ "name": "OpenStreetMap Vancouver", "description": "Cartographes et utilisateurs d'OpenStreetMap à Vancouver" }, + "ym-Universidad-de-Costa-Rica": { + "description": "Chapitre YouthMappers à l'Université du Costa Rica" + }, "OSM-CU-telegram": { "name": "OSM Cuba sur Telegram", "description": "Chat Telegram d'OpenStreetMap Cuba" }, + "ym-Universidad-Nacional-Autnoma-de-Honduras": { + "description": "Chapitre YouthMappers à l'Université Nationale Autonome du Honduras" + }, "OSM-NI-telegram": { "name": "OSM Nicaragua sur Telegram", "description": "Chat Telegram d'OpenStreetMap Nicaragua" }, + "ym-University-of-Panama": { + "name": "YouthMappers UP", + "description": "Chapitre YouthMappers à l'Université du Panama" + }, + "ym-Universidad-de-Puerto-Rico-Rio-Piedras": { + "name": "YouthMappers à l'UPR", + "description": "Chapitre YouthMappers à l'Université de Puerto Rico - Rio Piedras" + }, "Bay-Area-OpenStreetMappers": { "name": "Bay Area OpenStreetMappers", "description": "Améliorez OpenStreetMap dans la Bay Area", @@ -10552,8 +10637,15 @@ "description": "Nous aidons OpenStreetMap à grandir et à s'améliorer aux États-Unis.", "extendedDescription": "Nous soutenons OpenStreetMap en organisant des conférences annuelles, en fournissant des moyens à la communauté, en établissant des partenariats, et en relayant les informations. Rejoignez OpenStreetMap États-Unis ici: {signupUrl}", "events": { + "sotmus2019-cfs": { + "name": "Proposez un sujet pour le SotM-US 2019", + "description": "Nous invitons tous les membres de la communauté OpenStreetMap à partager leurs idées et leurs propositions d'intervention pour la rencontre State of the Map US 2019. Que vous soyez nouveau ou expérimenté, n'hésitez pas à vous manifester!", + "where": "Minneapolis, Minnesota" + }, "sotmus2019": { - "name": "State of the Map USA 2019" + "name": "State of the Map USA 2019", + "description": "Rejoignez la communauté OpenStreetMap au State of the Map US à Minneapolis, Minnesota. Établissez des contacts avec d'autres cartographes, entrepreneurs, agences gouvernementales et à but non lucratif, collaborant tous à la carte libre du monde.", + "where": "Minneapolis, Minnesota" } } }, @@ -10585,9 +10677,18 @@ "description": "Cartographes et utilisateurs d'OpenStreetMap autour de Grand Junction, CO", "extendedDescription": "Le but de ce groupe est de présenter OpenStreetMap aux communautés, développer une communauté de cartographes, créer la meilleure donnée géographique possible par n'importe quel moyen et finalement d'élaborer une stratégie pour communiquer cette donnée aux communautés. Imaginez des panneaux indicatifs sur les chemins de randonnées ! Imaginez un meilleur développement des voies cyclables ! Imaginez tout ce que vous voulez, c'est le plaisir d'OpenStreetMap !" }, + "ym-Central-Washington-University": { + "description": "Chapitre YouthMappers à la Central Washington University" + }, + "ym-Jacksonville-State-University": { + "description": "Chapitre YouthMappers à l'Université d’État de Jacksonville" + }, "ym-Kansas-State-University": { "description": "Chapitre YouthMappers à l'Université d’État du Kansas" }, + "ym-McGill-University": { + "description": "Chapitre YouthMappers à l'Université McGill" + }, "ym-Miami-University": { "description": "Chapitre YouthMappers à l'Université de Miami" }, diff --git a/dist/locales/gl.json b/dist/locales/gl.json index c80eb984de..89aecbb3b8 100644 --- a/dist/locales/gl.json +++ b/dist/locales/gl.json @@ -1952,6 +1952,9 @@ "use_different_layers": { "title": "Emprega capas diferentes" }, + "use_different_layers_or_levels": { + "title": "Emprega diferentes capas ou niveis" + }, "use_different_levels": { "title": "Emprega niveis diferentes" }, @@ -3163,12 +3166,6 @@ "undefined": "Non" } }, - "iata": { - "label": "IATA" - }, - "icao": { - "label": "ICAO" - }, "incline": { "label": "Inclinación" }, @@ -4496,7 +4493,7 @@ }, "amenity/bicycle_rental": { "name": "Alugamento de bicicletas", - "terms": "bici, bicicleta, alugueiro, préstamo" + "terms": "bici, bicicleta, alugueiro, préstamo, alugamento, locación" }, "amenity/bicycle_repair_station": { "name": "Lugar para ferramentas de reparación de bicicletas", @@ -4507,8 +4504,8 @@ "terms": "cervexa, bar, terraza, xardín, ó ar libre, ao aire libre, biergarten" }, "amenity/boat_rental": { - "name": "Aluguer de botes", - "terms": "aluguer, bote, barca, lancha" + "name": "Alugamento de embarcacións", + "terms": "alugueiro, alugamento, locación, bote, barca, lancha, embarcación, embarcacións" }, "amenity/bureau_de_change": { "name": "Troco de divisas", @@ -4526,8 +4523,8 @@ "terms": "car pool, car pooling, transporte, automóbil, vehículo, auto, carro, coche, compartido" }, "amenity/car_rental": { - "name": "Aluguer de automóbiles", - "terms": "aluguer, coche, automóbil, rent-a-car" + "name": "Alugamento de automóbiles", + "terms": "alugueiro, alugamento, locación, coche, automóbil, vehículo, rent-a-car" }, "amenity/car_sharing": { "name": "Auto compartido", @@ -4555,7 +4552,7 @@ }, "amenity/clinic": { "name": "Clínica ou centro de saúde", - "terms": "clínica, médico, saúde, urxencias" + "terms": "clínica, médico, saúde, urxencias, clinica, ambulatorio, saude" }, "amenity/clinic/abortion": { "name": "Clínica de aborto", @@ -4614,7 +4611,7 @@ }, "amenity/doctors": { "name": "Doutor", - "terms": "doutor, médico, clínica, saúde" + "terms": "doutor, médico, clínica, saúde, clinica, saude" }, "amenity/dojo": { "name": "Dojo/academia de artes marciais", @@ -4691,7 +4688,7 @@ }, "amenity/hospital": { "name": "Hospital", - "terms": "hospital, clínica, urxencias, sanidade, saúde, médico" + "terms": "clínica, urxencias, sanidade, saúde, médico, clinica, saude, ambulatorio" }, "amenity/hunting_stand": { "name": "Stand de Caza" @@ -4859,7 +4856,8 @@ "terms": "centro de reciclaxe, punto limpo" }, "amenity/recycling_container": { - "name": "Colector de reciclaxe" + "name": "Colector de reciclaxe", + "terms": "reciclaxe, colector, contenedor, contedor, lixo, basura" }, "amenity/register_office": { "name": "Oficina do rexistro" @@ -5137,7 +5135,7 @@ }, "attraction/drop_tower": { "name": "Torre de caída", - "terms": "caída, torre, atracción" + "terms": "caída, torre, atracción, pilar de caída, piar de caída, xogo mecánico, xogo de feria, feira" }, "attraction/maze": { "name": "Labirinto" @@ -6040,7 +6038,7 @@ "name": "Conca" }, "landuse/brownfield": { - "name": "Solar anteriormente edificado" + "name": "Soar urbanizado abandonado" }, "landuse/cemetery": { "name": "Cemiterio" @@ -6253,6 +6251,10 @@ "leisure/nature_reserve": { "name": "Reserva natural" }, + "leisure/outdoor_seating": { + "name": "Área de asentos ó exterior", + "terms": "ó ar libre, ó aire libre, ao ar libre, ao aire libre, xardín de cervexa, comedor, cafetería, cafetaría, cafeteria, restaurante, pub, bar, patio, terraza, mesas, estar, sombrilla, parasol, antuca, catasol" + }, "leisure/park": { "name": "Parque", "terms": "parque, zona verde, xardín, alameda" @@ -6449,7 +6451,24 @@ "terms": "vértice xeodésico, xeodesia" }, "man_made/tower": { - "name": "Torre" + "name": "Torre", + "terms": "torre, mastro, edificio, estrutura alta" + }, + "man_made/tower/bell_tower": { + "name": "Campanil", + "terms": "campanario, campanil, torre da igrexa, campá, sino" + }, + "man_made/tower/communication": { + "name": "Torre de comunicación", + "terms": "antena, torre de transmisión, torre de telefonía celular, torre de telefonía móbil, mastro de comunicación, torre de comunicación, torre adaptada, torre de telefonía móbil, mastro de radio, torre de radio, torre de televisión, mastro de transmisión, torre de transmisión, torre de televisión" + }, + "man_made/tower/defensive": { + "name": "Torre defensiva", + "terms": "torre fortificada, torre do castelo" + }, + "man_made/tower/observation": { + "name": "Torre de observación", + "terms": "torre de vixiancia, torre de lume" }, "man_made/wastewater_plant": { "name": "Depuradora de augas", @@ -6850,17 +6869,27 @@ "name": "Subestación" }, "power/tower": { - "name": "Torre de Alta Tensión" + "name": "Torre de alta tensión", + "terms": "torre de alto voltaxe, torres de alta tensión, torre de electricidade" }, "power/transformer": { "name": "Transformador" }, + "public_transport/platform/light_rail": { + "name": "Plataforma de tren lixeiro" + }, + "public_transport/platform/light_rail_point": { + "name": "Paraxe / Plataforma de tren lixeiro" + }, "public_transport/station": { "name": "Estación de transporte público" }, "public_transport/station_bus": { "name": "Estación de autobuses" }, + "public_transport/station_light_rail": { + "name": "Estación de tren lixeiro" + }, "public_transport/station_subway": { "name": "Estación de metro" }, @@ -6913,6 +6942,9 @@ "name": "Paso a nivel (estrada)", "terms": "paso a nivel, cruzamento ferroviario, paso ferroviario, cruzamento a nivel" }, + "railway/light_rail": { + "name": "Tren lixeiro" + }, "railway/milestone": { "name": "Fito de Vía" }, @@ -7127,6 +7159,10 @@ "name": "Tenda de enmarcado", "terms": "enmarcado, marco, enmarcar, cadro" }, + "shop/frozen_food": { + "name": "Conxelados", + "terms": "alimentos, comidas, conxeladas, conxelados" + }, "shop/funeral_directors": { "name": "Funeraria", "terms": "funeraria, tanatorio, velorio, abellón" @@ -7185,6 +7221,10 @@ "shop/leather": { "name": "Tenda de peles" }, + "shop/lighting": { + "name": "Tenda de iluminación", + "terms": "Iluminación fluorescente, lámpadas, LEDs, luminarias" + }, "shop/locksmith": { "name": "Cerralleiro", "terms": "cerralleiro, zarralleiro, cerraxeiro, chaves, duplicado de chaves, copia de chaves" @@ -7287,7 +7327,7 @@ "name": "Papelaría" }, "shop/storage_rental": { - "name": "Aluguer de almacéns" + "name": "Alugamento de almacéns" }, "shop/supermarket": { "name": "Supermercado" @@ -7547,6 +7587,9 @@ "type/route/horse": { "name": "Rota de equitación" }, + "type/route/light_rail": { + "name": "Rota de tren lixeiro" + }, "type/route/pipeline": { "name": "Rota de tubaxe" }, diff --git a/dist/locales/he.json b/dist/locales/he.json index c7d23a077c..935211bfd4 100644 --- a/dist/locales/he.json +++ b/dist/locales/he.json @@ -1952,6 +1952,9 @@ "use_different_layers": { "title": "שימוש בשכבות שונות" }, + "use_different_layers_or_levels": { + "title": "להשתמש בשכבות או רמות שונים" + }, "use_different_levels": { "title": "שימוש ברמות שונות" }, @@ -2460,6 +2463,15 @@ "access_simple": { "label": "הכניסה מותרת" }, + "addr/interpolation": { + "label": "סוג", + "options": { + "all": "הכול", + "alphabetic": "אלפביתית", + "even": "זוגית", + "odd": "אי־זוגית" + } + }, "address": { "label": "כתובת", "placeholders": { @@ -2650,6 +2662,10 @@ "building": { "label": "בניין" }, + "building/levels/underground": { + "label": "קומות תת־קרקעיות", + "placeholder": "2, 4, 6..." + }, "building/levels_building": { "label": "קומות בבניין", "placeholder": "2, 4, 6…" @@ -3168,10 +3184,10 @@ } }, "iata": { - "label": "IATA" + "label": "קוד נמל תעופה של IATA" }, "icao": { - "label": "ICAO" + "label": "קוד נמל תעופה של ICAO" }, "incline": { "label": "שיפוע" @@ -3673,12 +3689,18 @@ "power_supply": { "label": "הספק חשמל" }, + "preschool": { + "label": "גן חובה" + }, "produce": { "label": "ירקות" }, "product": { "label": "מוצרים" }, + "public_bookcase/type": { + "label": "סוג" + }, "railway": { "label": "סוג" }, @@ -4337,6 +4359,9 @@ } }, "presets": { + "addr/interpolation": { + "name": "שיטת חלוקת כתובות" + }, "address": { "name": "כתובת", "terms": "כתובת,מען" @@ -4430,6 +4455,10 @@ "name": "מנחת מסוקים", "terms": "מנחת מסוקים" }, + "aeroway/holding_position": { + "name": "תבנית ריתוק כלי טיס", + "terms": "תנוחת המתנה כלי טיס,תנוחת מעגל המתנה כלי טיס,תבנית המתנה מטוס,תבנית מעגל המתנה מטוס,תנוחת ריתוק מטוס,תנוחת ריתוק כלי טיס" + }, "aeroway/jet_bridge": { "name": "גשר עלייה למטוס", "terms": "שרוול עליה למטוס,שרוול נוסעים" @@ -4639,6 +4668,10 @@ "name": "דוג׳ו / מרכז לאומנויות לחימה", "terms": "אקדמיה למקצועות לחימה" }, + "amenity/dressing_room": { + "name": "חדר הלבשה", + "terms": "חדר החלפה,תא מדידה,חדר מדידה,תא הלבשה" + }, "amenity/drinking_water": { "name": "מי שתייה", "terms": "מי שתייה" @@ -4795,6 +4828,10 @@ "name": "חניון רב קומות", "terms": "מבנה חנייה" }, + "amenity/parking/park_ride": { + "name": "חניון חנה וסע", + "terms": "מגרש חניה,חניון,חניון תחבורה ציבורית,מתחם חנייה" + }, "amenity/parking/underground": { "name": "חנייה תת־קרקעית", "terms": "חניית כלי רכב,חנייה למכוניות,חניון,חניון לילה,חנייה על פני הקרקע,חניית משאיות,חניית מכוניות" @@ -5199,11 +5236,11 @@ }, "amenity/veterinary": { "name": "וטרינר", - "terms": "וטרינר" + "terms": "רופא חיות" }, "amenity/waste/dog_excrement": { "name": "שקי-קקי", - "terms": "שקי-קקי" + "terms": "שקית לאיסוף צרכים" }, "amenity/waste_basket": { "name": "סל אשפה", @@ -5339,14 +5376,16 @@ "terms": "גדר" }, "barrier/fence/railing": { - "name": "מעקה" + "name": "מעקה", + "terms": "מעקה מדרגות" }, "barrier/gate": { "name": "שער", "terms": "שער" }, "barrier/guard_rail": { - "name": "מעקה בטיחות" + "name": "מעקה בטיחות", + "terms": "מעקה" }, "barrier/hedge": { "name": "גדר חיה", @@ -5361,17 +5400,20 @@ "terms": "שפת המדרכה,אבני השפה,מדרכה,אבני שפה" }, "barrier/kerb/flush": { - "name": "אבן שפה משופעת" + "name": "אבן שפה משופעת", + "terms": "מדרכה משופעת" }, "barrier/kerb/lowered": { "name": "שפת מדרכה מונמכת", "terms": "שפת המדרכה,אבני שפה מונמכות,מדרכה מונמכת,אבני שפה מונמכות" }, "barrier/kerb/raised": { - "name": "אבן שפה מוגבהת" + "name": "אבן שפה מוגבהת", + "terms": "אבן שפה עם הגבהה,מדרכה מוגבהת,הגבהת מדרכה" }, "barrier/kerb/rolled": { - "name": "תעלה חד־שיפועית" + "name": "תעלה חד־שיפועית", + "terms": "תעלת ניקוז,מרזב" }, "barrier/kissing_gate": { "name": "מחסום חיות", @@ -5425,7 +5467,8 @@ "terms": "בניין" }, "building/apartments": { - "name": "בניין דירות" + "name": "בניין דירות", + "terms": "בניין מגורים" }, "building/barn": { "name": "אסם", @@ -5636,7 +5679,8 @@ "terms": "מועדון" }, "club/sport": { - "name": "מועדון ספורט" + "name": "מועדון ספורט", + "terms": "מועדון אתלטיקה,מועדון התעמלות,מכון התעמלות,מכון כושר,מגרש אתלטיקה,רחבת אתלטיקה" }, "craft": { "name": "מלאכה", @@ -5684,7 +5728,7 @@ }, "craft/chimney_sweeper": { "name": "מנקה ארובות", - "terms": "מנקה ארובות" + "terms": "מנקת ארובות" }, "craft/clockmaker": { "name": "שען", @@ -5708,7 +5752,7 @@ }, "craft/electronics_repair": { "name": "חנות תיקון אלקטרוניקה", - "terms": "חנות תיקון אלקטרוניקה" + "terms": "חנות תיקון מוצרי אלקטרוניקה" }, "craft/floorer": { "name": "ריצוף", @@ -5776,7 +5820,7 @@ "terms": "שרברבית" }, "craft/pottery": { - "name": "כלי חרס", + "name": "קדרות", "terms": "כלי חרס" }, "craft/rigger": { @@ -5797,7 +5841,7 @@ }, "craft/sawmill": { "name": "מנסרה", - "terms": "מנסרה" + "terms": "נגריה,בית מלאכה,בית עץ" }, "craft/scaffolder": { "name": "התקנת פיגומים", @@ -5926,6 +5970,9 @@ "name": "מקום צליחה", "terms": "מקום צליחה" }, + "ford_line": { + "name": "מעברה" + }, "golf/bunker": { "name": "מכשול חול", "terms": "מכשול חול" @@ -5951,7 +5998,8 @@ "terms": "חור גולף" }, "golf/lateral_water_hazard": { - "name": "מכשול מים צדדי" + "name": "מכשול מים צדדי", + "terms": "נקודת חצייה,מעבר על מים" }, "golf/path": { "name": "נתיב הליכה לגולף", @@ -6018,7 +6066,7 @@ }, "healthcare/physiotherapist": { "name": "פיזיותרפיה", - "terms": "פזיווטרפיה" + "terms": "פיזיוטרפיה" }, "healthcare/podiatrist": { "name": "פודיאטור", @@ -6026,15 +6074,15 @@ }, "healthcare/psychotherapist": { "name": "פסיכותרפיסט", - "terms": "פסיכותרפיסט" + "terms": "פסיכותרפיסטית,בריאות הנפש" }, "healthcare/rehabilitation": { "name": "מוסד שיקומי", - "terms": "מוסד שיקומי" + "terms": "מוסד גמילה" }, "healthcare/speech_therapist": { "name": "קלינאית תקשורת", - "terms": "קלינאי תקשורת" + "terms": "קלינאי תקשורת,קלינאות תקשורת" }, "highway": { "name": "כביש בין־עירוני" @@ -6051,7 +6099,8 @@ "name": "תחנת אוטובוס" }, "highway/construction": { - "name": "כביש סגור" + "name": "כביש סגור", + "terms": "סגירה,חסימה,מחסום,חסום,סגור" }, "highway/corridor": { "name": "מסדרון", @@ -6094,10 +6143,12 @@ "name": "מעבר אופניים" }, "highway/cycleway/crossing/marked": { - "name": "מעבר דו־גלגליים מסומן" + "name": "מעבר דו־גלגליים מסומן", + "terms": "מעבר לאופניים,מעבר לאופנועים,מעבר לקורקינט" }, "highway/cycleway/crossing/unmarked": { - "name": "מעבר דו־גלגליים בלתי מסומן" + "name": "מעבר דו־גלגליים בלתי מסומן", + "terms": "מעבר לאופניים,מעבר לאופנועים,מעבר לקורקינט" }, "highway/elevator": { "name": "מעלית", @@ -6404,7 +6455,8 @@ "name": "חדר" }, "indoor/wall": { - "name": "קיר פנימי" + "name": "קיר פנימי", + "terms": "גבול פנימי,תחימה פנימית" }, "internet_access/wlan": { "name": "נקודת רשת אלחוטית חמה", @@ -6762,7 +6814,7 @@ }, "leisure/pitch": { "name": "מגרש ספורט", - "terms": "צגרש,כדורגל,כדורסל,טניס" + "terms": "מגרש,כדורגל,כדורסל,טניס" }, "leisure/pitch/american_football": { "name": "מגרש פוטבול", @@ -8334,6 +8386,10 @@ "name": "חנות הגברה", "terms": "חנות ציוד הגברה" }, + "shop/hobby": { + "name": "חנות תחביבים", + "terms": "חנות פנאי,מנגה,אנימה,דמויות,דגם,בובה,פנאי" + }, "shop/houseware": { "name": "חנות כלי בית", "terms": "חנות כלי בית" @@ -8526,6 +8582,10 @@ "name": "סופרמרקט", "terms": "סופרמרקט" }, + "shop/swimming_pool": { + "name": "חנות ציוד לבריכות", + "terms": "ציוד שחייה,ציוד לבריכות,תחזוקת ג׳קוזי,חנות בריכות,בריכת שחייה,חנות ציוד,ברכת שחייה,חנות להתקנת ברכת שחייה,חנות להתקנת בריכת שחייה,חנות לתחזוקת ברכות,חנות לתחזוקת בריכות,חנות ציוד לברכות" + }, "shop/tailor": { "name": "חייט", "terms": "חייטת" diff --git a/dist/locales/hr.json b/dist/locales/hr.json index e6714b1b21..8331176e05 100644 --- a/dist/locales/hr.json +++ b/dist/locales/hr.json @@ -1302,6 +1302,14 @@ "access_simple": { "label": "Dozvoljen pristup" }, + "addr/interpolation": { + "options": { + "all": "Sve", + "alphabetic": "Abecedno", + "even": "Parni", + "odd": "Neparni" + } + }, "address": { "label": "Adresa", "placeholders": { @@ -1368,6 +1376,9 @@ "aeroway": { "label": "Vrsta" }, + "agrarian": { + "label": "Proizvodi" + }, "air_conditioning": { "label": "Klimatizirano" }, @@ -1398,12 +1409,31 @@ "atm": { "label": "Bankomat" }, + "attraction": { + "label": "Tip" + }, "backrest": { "label": "Naslon" }, "barrier": { "label": "Vrsta" }, + "bath/open_air": { + "label": "Vanjsko kupalište" + }, + "bath/sand_bath": { + "label": "Pješčano kupalište (Suna Yu)" + }, + "bath/type": { + "options": { + "foot_bath": "Kupalište za noge (Ashi Yu)", + "hot_spring": "Vrući izvor", + "onsen": "Japansko Onsen kupalište" + } + }, + "beauty": { + "label": "Specijalizacija njege" + }, "bench": { "label": "Klupa" }, @@ -1413,6 +1443,21 @@ "bin": { "label": "Kanta za smeće" }, + "blood_components": { + "label": "Krvni sastojci", + "options": { + "plasma": "plazma", + "platelets": "trombociti", + "stemcells": "uzorci matičnih stanica", + "whole": "puna krv" + } + }, + "board_type": { + "label": "Tip" + }, + "boules": { + "label": "Vrsta" + }, "boundary": { "label": "Vrsta" }, @@ -1422,15 +1467,29 @@ "brewery": { "label": "Točena piva" }, + "bridge": { + "label": "Vrsta" + }, "building": { "label": "Zgrada" }, + "building/levels/underground": { + "label": "Podzemnih katova", + "placeholder": "2, 4, 6..." + }, "building/levels_building": { + "label": "Katova zgrade", "placeholder": "2, 4, 6..." }, + "building/material": { + "label": "Materijal" + }, "building_area": { "label": "Zgrada" }, + "bunker_type": { + "label": "Vrsta" + }, "cables": { "label": "Broj kabela", "placeholder": "1, 2, 3..." @@ -1439,10 +1498,24 @@ "label": "Smjer (stupnjeva u smjeru kazaljke na satu)", "placeholder": "45, 90, 180, 270" }, + "camera/mount": { + "label": "Držač kamere" + }, + "camera/type": { + "label": "Vrsta kamere", + "options": { + "dome": "Kupola", + "fixed": "Fiksirana", + "panning": "Horizontalno okretanje (paniranje)" + } + }, "capacity": { "label": "Kapacitet", "placeholder": "50, 100, 200..." }, + "clothes": { + "label": "Odjeća" + }, "collection_times": { "label": "Vrijeme preuzimanja" }, @@ -1453,8 +1526,17 @@ "label": "Vrsta" }, "contact/webcam": { + "label": "URL web kamere", "placeholder": "http://primjer.hr/" }, + "conveying": { + "label": "Smjer kretanja", + "options": { + "backward": "Nazad", + "forward": "Naprijed", + "reversible": "Izmjenjiv smjer" + } + }, "country": { "label": "Država" }, @@ -1464,12 +1546,29 @@ "craft": { "label": "Vrsta" }, + "crane/type": { + "label": "Vrsta dizalice", + "options": { + "floor-mounted_crane": "Dizalica montirana na pod", + "portal_crane": "Dizalica montirana na portal", + "travel_lift": "Pokretna dizalica" + } + }, + "crop": { + "label": "Usjev" + }, "crossing": { "label": "Vrsta" }, "cuisine": { "label": "Kuhinja" }, + "currency_multi": { + "label": "Vrste valuta" + }, + "cutting": { + "label": "Vrsta" + }, "cycle_network": { "label": "Mreža" }, @@ -1511,6 +1610,9 @@ "cycleway:right": "Desna strana" } }, + "dance/style": { + "label": "Vrste plesova" + }, "date": { "label": "Datum" }, @@ -1535,6 +1637,12 @@ "description": { "label": "Opis" }, + "design": { + "label": "Dizajn" + }, + "diameter": { + "label": "Promjer" + }, "diaper": { "label": "Omogućeno mijenjanje pelena" }, @@ -1565,6 +1673,13 @@ "clockwise": "U smjeru kazaljke na satu" } }, + "direction_vertex": { + "options": { + "backward": "Nazad", + "both": "Oba smjera", + "forward": "Naprijed" + } + }, "dock": { "label": "Vrsta" }, @@ -1598,6 +1713,10 @@ "elevation": { "label": "Nadmorska visina" }, + "email": { + "label": "Email", + "placeholder": "primjer@primjer.hr" + }, "emergency": { "label": "Hitna pomoć" }, @@ -1651,12 +1770,19 @@ "generator/method": { "label": "Metoda" }, + "generator/output/electricity": { + "label": "Izlazna snaga", + "placeholder": "50 MW, 100 MW, 200 MW..." + }, "generator/source": { "label": "Izvor" }, "generator/type": { "label": "Vrsta" }, + "grape_variety": { + "label": "Vrsta grožđa" + }, "handicap": { "label": "Smetnja", "placeholder": "1-18" @@ -1667,12 +1793,27 @@ "height": { "label": "Visina (u metrima)" }, + "height_building": { + "label": "Visina zgrade" + }, "highway": { "label": "Vrsta" }, "historic": { "label": "Vrsta" }, + "historic/civilization": { + "label": "Povijesna civilizacija" + }, + "historic/wreck/date_sunk": { + "label": "Datum potonuća" + }, + "historic/wreck/visible_at_high_tide": { + "label": "Vidljivo kod plime" + }, + "historic/wreck/visible_at_low_tide": { + "label": "Vidljivo kod oseke" + }, "hoops": { "label": "Obruči", "placeholder": "1, 2, 4..." @@ -1689,12 +1830,6 @@ "undefined": "Ne" } }, - "iata": { - "label": "Međunarodni IATA kôd zračne luke" - }, - "icao": { - "label": "Međunarodni ICAO kôd zračne luke" - }, "incline": { "label": "Nagib" }, @@ -1929,6 +2064,9 @@ "operator": { "label": "Operator" }, + "outdoor_seating": { + "label": "Vanjsko sjedenje" + }, "par": { "label": "Vrsta rupe (par)", "placeholder": "3, 4, 5..." @@ -2026,6 +2164,15 @@ "religion": { "label": "Religija" }, + "reservation": { + "label": "Rezervacije", + "options": { + "no": "Ne primaju", + "recommended": "Preporučeno", + "required": "Obavezne", + "yes": "Primaju" + } + }, "restriction": { "label": "Vrsta" }, @@ -2035,6 +2182,9 @@ "roof/colour": { "label": "Boja krova" }, + "rooms": { + "label": "Sobe" + }, "route": { "label": "Vrsta" }, @@ -2059,9 +2209,28 @@ "sanitary_dump_station": { "label": "Odvod toaleta" }, + "seamark/beacon_lateral/colour": { + "label": "Boja", + "options": { + "green": "Zelena", + "grey": "Siva", + "red": "Crvena" + } + }, + "seamark/beacon_lateral/shape": { + "label": "Oblik" + }, + "seamark/buoy_lateral/colour": { + "options": { + "green": "Zelena" + } + }, "seasonal": { "label": "Sezonski" }, + "self_service": { + "label": "Samoposluga" + }, "service": { "label": "Vrsta" }, @@ -2115,6 +2284,27 @@ "source": { "label": "Izvornici" }, + "sport": { + "label": "Sportovi" + }, + "sport_ice": { + "label": "Sportovi" + }, + "sport_racing_motor": { + "label": "Sportovi" + }, + "sport_racing_nonmotor": { + "label": "Sportovi" + }, + "stars": { + "label": "Zvjezdice" + }, + "start_date": { + "label": "Datum nastanka" + }, + "step_count": { + "label": "Broj stepenica" + }, "stop": { "options": { "minor": "Mala cesta" @@ -2314,6 +2504,12 @@ "name": "Parkiralište za bicikle", "terms": "parking za bicikle" }, + "amenity/bicycle_parking/building": { + "name": "Garaža za parkiranje bicikla" + }, + "amenity/bicycle_parking/shed": { + "name": "Nadstrešnica za bicikle" + }, "amenity/bicycle_rental": { "name": "Najam bicikla", "terms": "rentanje bicikala,rentanje bicikla,iznajmljivanje bicikala,iznajmljivanje bicikla,najam bicikala,najam bicikla,rent a bike" @@ -2328,6 +2524,9 @@ "amenity/bureau_de_change": { "name": "Mjenjačnica" }, + "amenity/bus_station": { + "name": "Autobusni kolodvor" + }, "amenity/cafe": { "name": "Kafić", "terms": "kafić,cafe,caffee,kafeterija,caffe bar,kavana" @@ -2442,6 +2641,10 @@ "amenity/nightclub": { "name": "Noćni klub" }, + "amenity/parking": { + "name": "Parkiralište za automobile", + "terms": "parking,kamione" + }, "amenity/parking_entrance": { "name": "Parking garaža Ulaz/Izlaz" }, @@ -2456,6 +2659,15 @@ "name": "Budistički hram", "terms": "budistički hram,hram,mjesto za molitvu,bogomolja" }, + "amenity/place_of_worship/christian": { + "name": "Kršćanska crkva" + }, + "amenity/place_of_worship/muslim": { + "name": "Muslimanska džamija" + }, + "amenity/planetarium": { + "name": "Planetarij" + }, "amenity/police": { "name": "Policija", "terms": "policija,milicija,gradska policija,državna policija,vojna policija" @@ -2468,10 +2680,17 @@ "name": "Pošta", "terms": "pošta,poštanski ured" }, + "amenity/prison": { + "name": "Zatvorsko zemljište" + }, "amenity/pub": { "name": "Pivnica", "terms": "pivnica,birtija,birc,bircuz" }, + "amenity/public_bath": { + "name": "Javno kupalište", + "terms": "toplice,bazeni,akvapark" + }, "amenity/public_bookcase": { "name": "Javna knjižnica" }, @@ -2495,18 +2714,42 @@ "name": "Restoran", "terms": "restoran,buffet,zdravljak,zalogajnica" }, + "amenity/restaurant/asian": { + "name": "Azijski restoran" + }, "amenity/restaurant/chinese": { "name": "Kineski restoran" }, + "amenity/restaurant/french": { + "name": "Francuski restoran" + }, + "amenity/restaurant/german": { + "name": "Njemački restoran" + }, + "amenity/restaurant/greek": { + "name": "Grčki restoran" + }, "amenity/restaurant/indian": { "name": "Indijski restoran" }, + "amenity/restaurant/italian": { + "name": "Talijanski restoran" + }, + "amenity/restaurant/japanese": { + "name": "Japanski restoran" + }, "amenity/restaurant/mexican": { "name": "Meksički restoran" }, "amenity/restaurant/pizza": { "name": "Pizzeria" }, + "amenity/restaurant/seafood": { + "name": "Riblji restoran" + }, + "amenity/restaurant/vietnamese": { + "name": "Vijetnamski restoran" + }, "amenity/sanitary_dump_station": { "name": "Pražnjenje toaleta za kamp kućice" }, @@ -2520,6 +2763,9 @@ "amenity/shelter/gazebo": { "name": "Sjenica" }, + "amenity/shower": { + "name": "Tuš" + }, "amenity/social_facility": { "name": "Socijalna ustanova" }, @@ -2550,6 +2796,9 @@ "name": "Kazalište", "terms": "kazalište" }, + "amenity/theatre/type/amphi": { + "name": "Amfiteatar" + }, "amenity/toilets": { "name": "Toalet", "terms": "WC,toalet,nužnik,sanitarni čvor" @@ -2564,15 +2813,36 @@ "amenity/vehicle_inspection": { "name": "Tehnički pregled vozila" }, + "amenity/vending_machine": { + "name": "Automat za prodaju" + }, "amenity/vending_machine/cigarettes": { "name": "Automat za cigarete" }, + "amenity/vending_machine/coffee": { + "name": "Automat za prodaju kave" + }, "amenity/vending_machine/condoms": { "name": "Automat za kondome" }, "amenity/vending_machine/drinks": { "name": "Automat za piće" }, + "amenity/vending_machine/electronics": { + "name": "Automat za prodaju elektronike" + }, + "amenity/vending_machine/food": { + "name": "Automat za prodaju hrane" + }, + "amenity/vending_machine/fuel": { + "name": "Pumpni automat za gorivo" + }, + "amenity/vending_machine/ice_cream": { + "name": "Automat za prodaju sladoleda" + }, + "amenity/vending_machine/newspapers": { + "name": "Automat za prodaju novina" + }, "amenity/vending_machine/parking_tickets": { "name": "Automat za parkirališne karte" }, @@ -2605,6 +2875,26 @@ "area/highway": { "name": "Površina ceste" }, + "attraction": { + "name": "Atrakcija" + }, + "attraction/animal": { + "name": "Životinjska nastamba", + "terms": "životinja,kavez,akvarij,terarij,dupinarij,safari,lav,majmun,slon,riba,insekt,zmija,zoološki,zoo" + }, + "attraction/bumper_car": { + "name": "Električni autići za sudaranje" + }, + "attraction/bungee_jumping": { + "name": "Bungee skokovi" + }, + "attraction/carousel": { + "name": "Mehanički vrtuljak", + "terms": "Ringišpil" + }, + "attraction/maze": { + "name": "Labirint" + }, "barrier": { "name": "Prepreka" }, @@ -2961,6 +3251,12 @@ "highway/bridleway": { "name": "Staza za konje" }, + "highway/bus_guideway": { + "name": "Pruga za autobuse" + }, + "highway/bus_stop": { + "name": "Autobusna stanica" + }, "highway/corridor": { "name": "Hodnik" }, @@ -2976,6 +3272,12 @@ "highway/cycleway": { "name": "Biciklistička staza" }, + "highway/cycleway/bicycle_foot": { + "name": "Staza za bicikle i pješake" + }, + "highway/cycleway/crossing": { + "name": "Biciklistički prijelaz" + }, "highway/cycleway/crossing/marked": { "name": "Označeni biciklistički prijelaz" }, @@ -3259,6 +3561,13 @@ "leisure/firepit": { "name": "Mjesto za vatru" }, + "leisure/fitness_centre": { + "name": "Zatvoreni prostor za vježbanje", + "terms": "teretana,aerobik,pilates" + }, + "leisure/fitness_station": { + "name": "Vanjski prostor za vježbanje" + }, "leisure/garden": { "name": "Vrt", "terms": "vrt,bašća,povrtnjak,cvjetnjak" @@ -3277,6 +3586,10 @@ "leisure/nature_reserve": { "name": "Prirodni rezervat" }, + "leisure/outdoor_seating": { + "name": "Sjedenje vani", + "terms": "terasa" + }, "leisure/park": { "name": "Park" }, @@ -3330,6 +3643,12 @@ "name": "Sportski bazen", "terms": "bazen" }, + "leisure/track/running": { + "name": "Staza za trčanje" + }, + "leisure/track/running_point": { + "name": "Staza za trčanje" + }, "leisure/water_park": { "name": "Vodeni park", "terms": "Aquapark, akvapark, bazeni" @@ -3348,6 +3667,9 @@ "name": "Lukobran", "terms": "lukobran,zaštita luke od valova,zaštita luke,umjetna zaštita luke,valolom,utvrda obale,molo" }, + "man_made/bridge": { + "name": "Most" + }, "man_made/chimney": { "name": "Dimnjak" }, @@ -3365,6 +3687,12 @@ "name": "Svjetionik", "terms": "svjetionik,svjetlosni signal,toranj za svjetlosnu navigaciju" }, + "man_made/monitoring_station": { + "name": "Stanica za mjerenje" + }, + "man_made/observatory": { + "name": "Opservatorij" + }, "man_made/petroleum_well": { "name": "Izvor nafte" }, @@ -3376,15 +3704,28 @@ "name": "Cjevovod", "terms": "cjevovod,sustav cijevi za prijenos materijala,vod u obliku cijevi,protočna struktura,naftovod,plinovod,cjevovodni transport,transport" }, + "man_made/pipeline/underground": { + "name": "Podzemni cjevovod" + }, + "man_made/pumping_station": { + "name": "Crpna stanica" + }, "man_made/silo": { "name": "Silos" }, "man_made/storage_tank": { "name": "Spremnik" }, + "man_made/street_cabinet": { + "name": "Vanjski razvodni ormar", + "terms": "ulični ormar,telekomunikacijski,semaforski,kabelska televizija" + }, "man_made/surveillance": { "name": "Nadzor" }, + "man_made/surveillance/camera": { + "name": "Nadzorna kamera" + }, "man_made/survey_point": { "name": "Geodetska točka", "terms": "geodetska točka,poligonska točka,trigonometrijska točka,trigonometar,poligon,GPS točka,GNSS točka,geodetska oznaka" @@ -3393,6 +3734,22 @@ "name": "Toranj", "terms": "toranj,osmatračnica,kula,odašiljač,vidikovac,zvonik,stupa,obrambeni toranj" }, + "man_made/tower/bell_tower": { + "name": "Toranj zvonika" + }, + "man_made/tower/communication": { + "name": "Komunikacijski toranj" + }, + "man_made/tower/defensive": { + "name": "Kula", + "terms": "Utvrđeni toranj" + }, + "man_made/tower/minaret": { + "name": "Minaret" + }, + "man_made/tower/observation": { + "name": "Toranj za promatranje" + }, "man_made/tunnel": { "name": "Tunel" }, @@ -3424,6 +3781,9 @@ "manhole": { "name": "Šaht" }, + "manhole/telecom": { + "name": "Šaht za telekomunikacije" + }, "military/bunker": { "name": "Vojni bunker" }, @@ -3481,6 +3841,9 @@ "natural/reef": { "name": "Greben" }, + "natural/ridge": { + "name": "Greben" + }, "natural/saddle": { "name": "Sedlo", "terms": "prijevoj" @@ -3496,6 +3859,9 @@ "name": "Makija", "terms": "šikara,zaraslo zemljište,gust šibljak,guštara,guštik,šiprag,šipražje,gustiš,šiblje, samoniklo šiblje,šibljar,šibljik,makija" }, + "natural/shingle": { + "name": "Krupan šljunak" + }, "natural/spring": { "name": "Izvor", "terms": "izvor,vrelo,vrutak,zdenac,studenac" @@ -3546,16 +3912,28 @@ "name": "Prašuma", "terms": "prašuma,prirodna šuma,džungla" }, + "noexit/yes": { + "name": "Bez izlaza" + }, "office": { "name": "Ured", "terms": "ured,kancelarija" }, + "office/adoption_agency": { + "name": "Agencija za posvajanje" + }, + "office/advertising_agency": { + "name": "Reklamna agencija" + }, "office/architect": { "name": "Arhitektonski ured" }, "office/association": { "name": "Ured neprofitne udruge" }, + "office/company": { + "name": "Ured firme" + }, "office/diplomatic/consulate": { "name": "Konzulat" }, @@ -3665,6 +4043,12 @@ "name": "Transformator", "terms": "transformator, transformator el. energije,transformator struje" }, + "public_transport/platform/bus": { + "name": "Autobusno stajalište" + }, + "public_transport/platform/bus_point": { + "name": "Autobusno stajalište" + }, "public_transport/platform/train_point": { "name": "Željezničko stajalište" }, @@ -4068,6 +4452,9 @@ "name": "Prodavaonica motocikala", "terms": "trgovina motocikala" }, + "shop/motorcycle_repair": { + "name": "Ormarići za bicikle" + }, "shop/music": { "name": "Prodavaonica glazbene opreme", "terms": "glazbeni dućan,glazbena trgovina" diff --git a/dist/locales/hu.json b/dist/locales/hu.json index 88a16b549b..a7559b99b5 100644 --- a/dist/locales/hu.json +++ b/dist/locales/hu.json @@ -19,6 +19,8 @@ }, "modes": { "add_feature": { + "title": "Egy elem hozzáadása", + "description": "Elem keresése a térképhez való adáshoz.", "key": "Tab", "result": "{count} eredmény", "results": "{count} eredmény" @@ -125,7 +127,8 @@ }, "not_closed": "Nem lehet kör alakúvá tenni, mert nem hurok.", "too_large": "Nem lehet kör alakúvá tenni, mert túl kevés látszik belőle.", - "connected_to_hidden": "Nem lehet kör alakúvá tenni, mert egy rejtett elemhez csatlakozik." + "connected_to_hidden": "Nem lehet kör alakúvá tenni, mert egy rejtett elemhez csatlakozik.", + "not_downloaded": "Nem lehet kör alakúvá tenni, mert egyes részei nincsenek letöltve." }, "orthogonalize": { "title": "Derékszögesítés", @@ -136,6 +139,7 @@ }, "key": "Q", "annotation": { + "vertex": "Egy sarok derékszögesítése.", "line": "Vonal sarkai derékszögesítve.", "area": "Terület sarkai derékszögesítve." }, @@ -143,12 +147,23 @@ "square_enough": "Nem lehet a jelenleginél is derékszögesebbé tenni.", "not_squarish": "Nem lehet derékszögesíteni, mert nem derékszögszerű.", "too_large": "Nem lehet derékszögesíteni, mert túl kevés látszik belőle.", - "connected_to_hidden": "Nem lehet derékszögesíteni, mert csatlakozik egy rejtett elemhez." + "connected_to_hidden": "Nem lehet derékszögesíteni, mert csatlakozik egy rejtett elemhez.", + "not_downloaded": "Nem lehet derékszögesíteni, mert egyes részei nincsenek letöltve." }, "straighten": { "title": "Kiegyenesít", + "description": { + "points": "Pontok kiegyenesítése.", + "line": "Vonal kiegyenesítése." + }, "key": "S", - "too_bendy": "Nem lehet kiegyenesíteni, mert túl görbe." + "annotation": { + "points": "Pontok kiegyenesítve.", + "line": "Vonal kiegyenesítve." + }, + "too_bendy": "Nem lehet kiegyenesíteni, mert túl görbe.", + "connected_to_hidden": "Ezt nem lehet kiegyenesíteni, mert egy rejtett elemhez csatlakozik.", + "not_downloaded": "Nem lehet kiegyenesíteni, mert egyes részei nincsenek letöltve." }, "delete": { "title": "Törlés", @@ -180,11 +195,23 @@ "single": "Az elem nem törölhető, mert egy rejtett elemhez csatlakozik.", "multiple": "Az elemek nem törölhetőek, mert rejtett elemekhez csatlakoznak." }, + "not_downloaded": { + "single": "Nem lehet törölni, mert egyes részei nincsenek letöltve.", + "multiple": "Ezeket nem lehet törölni, mert egyes részeik nincsenek letöltve." + }, "has_wikidata_tag": { "single": "Az elem nem törölhető, mert Wikidata címkével rendelkezik.", "multiple": "Az elemek nem törölhetőek, mert néhányuk Wikidata címkével rendelkezik." } }, + "downgrade": { + "title": "Visszafejleszt", + "description": { + "building_address": "Minden elem eltávolítása, ami nem épület és nem cím.", + "building": "Minden elem eltávolítása, ami nem épület.", + "address": "Minden elem eltávolítása, ami nem cím." + } + }, "add_member": { "annotation": "Tag hozzáadva a kapcsolathoz" }, @@ -258,6 +285,10 @@ "connected_to_hidden": { "single": "Az elem nem mozgatható el, mert egy rejtett elemhez csatlakozik.", "multiple": "Az elemek nem mozgathatóak el, mert rejtett elemekhez csatlakoznak." + }, + "not_downloaded": { + "single": "Nem lehet mozgatni, mert egyes részei nincsenek letöltve.", + "multiple": "Ezeket nem lehet mozgatni, mert egyes részeik nincsenek letöltve." } }, "reflect": { @@ -300,6 +331,10 @@ "connected_to_hidden": { "single": "Az elem nem tükrözhető, mert egy rejtett elemhez csatlakozik.", "multiple": "Az elemek nem tükrözhetőek, mert egy rejtett elemekhez csatlakoznak." + }, + "not_downloaded": { + "single": "Nem lehet tükrözni, mert egyes részei nincsenek letöltve.", + "multiple": "Ezeket nem lehet tükrözni, mert egyes részeik nincsenek letöltve." } }, "rotate": { @@ -325,6 +360,10 @@ "connected_to_hidden": { "single": "Az elem nem forgatható el, mert egy rejtett elemhez csatlakozik.", "multiple": "Az elemek nem forgathatóak el, mert rejtett elemekhez csatlakoznak." + }, + "not_downloaded": { + "single": "Nem lehet forgatni, mert egyes részei nincsenek letöltve.", + "multiple": "Ezeket nem lehet forgatni, mert egyes részeik nincsenek letöltve." } }, "reverse": { @@ -444,6 +483,7 @@ "deleted": "Törölve", "created": "Létrehozva", "outstanding_errors_message": "Kérjük, előbb javítsd az összes hibát. Még {count} van hátra.", + "comment_needed_message": "Először adj megjegyzést a módosításcsomaghoz. ", "about_changeset_comments": "A módosításcsomag megjegyzésekről", "about_changeset_comments_link": "//wiki.openstreetmap.org/wiki/Hu:Good_changeset_comments", "google_warning": "Megemlítetted a Google-t a megjegyzésben: ne felejtsd, hogy a Google Mapsből történő másolás szigorúan tilos.", @@ -520,6 +560,7 @@ }, "geocoder": { "search": "Keresés a világban…", + "no_results_visible": "Nincs találat a térkép látható részén", "no_results_worldwide": "Nincs találat" }, "geolocate": { @@ -542,6 +583,7 @@ "all_tags": "Összes címke", "all_members": "Összes kapcsolattag", "all_relations": "Összes kapcsolat", + "add_to_relation": "Hozzáadás kapcsolathoz", "new_relation": "Új kapcsolat…", "choose_relation": "Szülő kapcsolat kiválasztása", "role": "Szerep", @@ -595,6 +637,7 @@ "overlays": "Előterek", "imagery_source_faq": "Információ a légiképről / Probléma jelentése", "reset": "visszavonás", + "reset_all": "Alaphelyzetbe mindent", "display_options": "Megjelenítési beállítások", "brightness": "Világosság", "contrast": "Kontraszt", @@ -678,6 +721,10 @@ "description": "Épületek", "tooltip": "Épületek, menhelyek, garázsok, stb." }, + "indoor": { + "description": "Beltéri elemek", + "tooltip": "Szobák, folyosók, lépcsők, stb." + }, "landuse": { "description": "Területi elemek", "tooltip": "Erdők, mezőgazdasági területek, parkok, lakott területek, kereskedelmi területek, stb." @@ -745,6 +792,12 @@ } } }, + "restore": { + "heading": "Elmentetlen változtatásaid vannak", + "description": "Szeretnéd visszaállítani az elmentetlen változtatásokat az előző munkamenetből?", + "restore": "Módosítások visszaállítása", + "reset": "Módosításaim elvetése" + }, "save": { "title": "Mentés", "help": "Tekintsd át a változtatásaidat, és töltsd föl őket az OpenStreetMapbe, hogy más felhasználóknak is láthatóak legyenek.", @@ -779,6 +832,14 @@ } }, "success": { + "just_edited": "Szerkesztetted az OpenStreetMap-et!", + "thank_you": "Köszönjük, hogy jobbá tetted a térképet.", + "thank_you_location": "Köszönjük, hogy jobbá tetted a térképet. {where} környékén.", + "thank_you_where": { + "format": "{place}{separator}{region}", + "separator": ", " + }, + "help_html": "Módosításaid pár percen belül meg kell, hogy jelenjenek az OpenStreetMap felületén. Más térképeken a frissítéshez hosszabb idő kell.", "help_link_text": "Részletek", "help_link_url": "https://wiki.openstreetmap.org/wiki/Hu:FAQ#V.C3.A1ltoztat.C3.A1sokat_eszk.C3.B6z.C3.B6ltem_a_t.C3.A9rk.C3.A9pen.2C_hogyan_l.C3.A1thatom_ezeket.3F", "view_on_osm": "Változtatások megtekintése OSM-en", @@ -794,6 +855,12 @@ "okay": "OK", "cancel": "Mégsem" }, + "splash": { + "welcome": "Légy üdvözölve az iD OpenStreetMap szerkesztőprogramban", + "text": "Az iD egy könnyen kezelhető, de jól felszerelt eszköz a világ legjobb ingyenes térképéhez. Verziószám: {version} \nTovábbi információk: {website} \nHibajelentés: {github}", + "walkthrough": "Gyakorlás indítása", + "start": "Szerkesztés most" + }, "source_switch": { "live": "élő", "lose_changes": "Elmentetlen változtatásaid vannak, amelyek a térképkiszolgáló váltásával elvesznek. Biztosan kiszolgálót akarsz váltani?", @@ -815,6 +882,7 @@ "full_screen": "Váltás teljes képernyőre", "QA": { "improveOSM": { + "title": "ImproveOSM Detection", "geometry_types": { "path": "gyalogutak", "parking": "parkolók", @@ -848,6 +916,7 @@ "detail_title": "Hiba", "detail_description": "Leírás", "comment": "Hozzászólás", + "comment_placeholder": "Megjegyzés írása a többi felhasználó számára.", "close": "Lezárás (hiba javítva)", "ignore": "Mellőzés (nem hiba)", "save_comment": "Hozzászólás mentése", @@ -1159,6 +1228,7 @@ "streetside": { "tooltip": "Útmenti fotók a Microsoft-tól", "title": "Bing Streetside", + "report": "Személyiségi jog problémás lehet ez a kép", "view_on_bing": "Megtekintés a Bing Maps-en", "hires": "Nagy felbontású" }, @@ -1192,6 +1262,7 @@ "closed": "lezárva: {when}" }, "newComment": "Új hozzászólás", + "inputPlaceholder": "Megjegyzés írása a többi felhasználó számára.", "close": "Jegyzet lezárása", "open": "Jegyzet újranyitása", "comment": "Hozzászólás", @@ -1210,14 +1281,14 @@ "key": "H", "help": { "title": "Súgó", - "welcome": "Isten hozott az [OpenStreetMap](https://www.openstreetmap.org/) iD szerkesztőjében. Ezzel a szerkesztővel közvetlenül a webböngésződből frissítheted a térképet.", + "welcome": "Üdvözlünk az [OpenStreetMap](https://www.openstreetmap.org/) iD szerkesztőjében. Ezzel a szerkesztővel közvetlenül a webböngésződből frissítheted a térképet.", "open_data_h": "Nyílt hozzáférésű adatok", "open_data": "A térképen elvégzett szerkesztéseidet mindenki látni fogja, aki az OpenStreetMapet használja. Szerkesztéseid alapja lehet személyes helyismereted, helyszíni felmérés vagy légi, illetve utcaszintű fényképek. A kereskedelmi forrásokból (pl. Google Maps) történő másolás [szigorúan tilos] (https://www.openstreetmap.org/copyright).", "before_start_h": "Mielőtt nekikezdenél", - "before_start": "Szerkesztés előtt nem árt ismerned az OpenStreetMap-et és ezt a szerkesztőfelületet. Az iD tartalmaz egy útmutatót, amellyel megtanulhatod az OpenStreetMap szerkesztésének alapjait. Kattints a „Gyakorlás indítása” gombra - csak 15 percet vesz igénybe.", + "before_start": "Szerkesztés előtt érdemes megismerned az OpenStreetMap-et és ezt a szerkesztőfelületet. Az iD tartalmaz egy útmutatót, amellyel megtanulhatod az OpenStreetMap szerkesztésének alapjait. Kattints a „Gyakorlás indítása” gombra - csak 15 percet vesz igénybe.", "open_source_h": "Nyílt forrású", - "open_source": "Az iD szerkesztő egy kollaboratív nyílt forrású projekt, és te a(z) {version} verziót használod épp. A forráskód elérhető [a GitHub-on](https://github.com/openstreetmap/iD).", - "open_source_help": "Segíthetsz [fordítással](https://github.com/openstreetmap/iD/blob/master/CONTRIBUTING.md#translating) vagy [hibák jelentésével](https://github.com/openstreetmap/iD/issues)." + "open_source": "Az iD szerkesztő egy közös fejlesztésű, nyílt forrású projekt, amiből te most a(z) {version} verziót használod. A forráskód elérhető [a GitHub-on](https://github.com/openstreetmap/iD).", + "open_source_help": "Segíthetsz a [fordításban](https://github.com/openstreetmap/iD/blob/master/CONTRIBUTING.md#translating) vagy [hibák jelentésével](https://github.com/openstreetmap/iD/issues)." }, "overview": { "title": "Áttekintő", @@ -1225,8 +1296,8 @@ "navigation_drag": "A térképet a {leftclick} bal egérgombot nyomva tartva és az egeret mozgatva tudod arrébb húzni. A billentyűzeten található `↓`, `↑`, `←`, `→` nyílgombokat is használhatod.", "navigation_zoom": "Nagyítani vagy kicsinyíteni az egér kerekével vagy a tapipaddal görgetve lehet, vagy a térkép szélén található {plus} / {minus} gombra kattintva. A billentyűzeten található `+`, `-` gombokat is használhatod.", "features_h": "Térképszolgáltatások", - "features": "A térképen megjelenő dolgokat, úgy mint utak, épületek vagy érdekes helyek, *elemeknek* (features) hívjuk. A való világból bármi felrajzolható az OpenStreetMapre elemként. A térképelemek *pontokként*, *vonalakként* vagy *területekként* jelennek meg.", - "nodes_ways": "Az OpenStreetMapben a pontokat *csomópontnak* (node), a vonalakat és területeket pedig *útnak* (way) is szoktuk hívni." + "features": "A térképen megjelenő dolgokat, úgymint utak, épületek vagy érdekes helyek, *elemeknek* (''features'') hívjuk. A való világból bármi felrajzolható az OpenStreetMapre elemként. A térképelem *pontként*, *vonalként* vagy *területként* jelenik meg.", + "nodes_ways": "Az OpenStreetMapben a pontot *csomópontnak* (node), a vonalat és területet pedig *útnak* (way) is szoktuk hívni." }, "editing": { "title": "Szerkesztés és mentés", @@ -1235,44 +1306,87 @@ "select_right_click": "A szerkesztési menü megjelenítéséhez kattints {rightclick} jobb gombbal egy elemre. Ez megjeleníti az elérhető műveleteket, mint például forgatás, mozgatás és törlés.", "multiselect_h": "Többszörös kijelölés", "multiselect_shift_click": "`{shift}`+{leftclick} bal gombbal tudsz egyszerre több elemet kijelölni. Ezzel könnyebb egyszerre több elemet mozgatni vagy törölni.", + "multiselect_lasso": "Tartsd lenyomva a `{shift}` gombot, és az egér {leftclick} bal gombjának lenyomásával és húzásával lehetséges a kijelölés. A kijelölésen belüli összes pont ki lesz választva, amikkel műveletet lehet végezni.", "undo_redo_h": "Visszavonás és helyrehozás", + "undo_redo": "Szerkesztéseidet a böngésző helyileg tárolja, amíg fel nem töltöd őket az OpenStreetMap szerverre. Szerkesztéseidet visszavonhatod a {undo} **Vissza** gombbal, és újra végrehajthatod a {redo} **Mégis** gombbal.", "save_h": "Mentés", + "save": "Kattints a {save} **Mentés**-re a módosítások feltöltéséhez az OpenStreetMap szerverre. Gyakran érdemes menteni a módosításaidat!", "save_validation": "A mentési képernyőn lehetőség nyílik arra, hogy átnézd, amit csináltál. Az iD is végre fog hajtani néhány alapvető ellenőrzést hiányzó adatokra, és segítőkész javaslatokat tehet vagy figyelmeztethet, ha valami nem tűnik jónak.", "upload_h": "Feltöltés", - "backups_h": "Autómatikus bisztonsági mentés", + "upload": "Feltöltés előtt meg kell adnod egy [összefoglalót a módosításról](https://wiki.openstreetmap.org/wiki/Good_changeset_comments). Majd kattints a **Feltölt** gombra, így kis idő múlva láthatóvá válik mindenki számára.", + "backups_h": "Automatikus biztonsági mentés", "backups": "Ha nem tudod egy menetben befejezni a szerkesztést, mert például lefagy a géped vagy bezárod a böngészőfület, a változtatásaid továbbra is el lesznek mentve a böngésződ tárhelyén. Később visszatérhetsz (ugyanazon gépen és böngészőn), és az iD fel fogja ajánlani legutóbbi szerkesztéseid visszaállítását.", "keyboard_h": "Gyorsbillentyűk", "keyboard": "A gyorsbillentyűk listáját a `?` gomb lenyomásával tekintheted meg." }, "feature_editor": { "title": "Elemszerkesztő", + "intro": "Az elemszerkesztő a térképpel együtt használható. Lehetővé teszi, hogy a kiválasztott elem valamennyi adatát módosíthasd.", + "definitions": "Az elemszerkesztő felső része az elem típusát mutatja. A középső rész az elem tulajdonságait, mint például a nevét és címét.", "type_h": "Elemtípus", + "type": "Az elem típusára kattintva meg lehet változtatni. Több ezer elemtípus között választhatsz.", + "type_picker": "A típusválasztó felajánlja a leggyakoribb elemtípusokat (például park, kórház, étterem, út, épület). Bármire rá lehet keresni a keresőmezőbe való beírással. Az {inspect} **Infó**-ra kattintva az elem mellett további információk jelennek meg.", "fields_h": "Mezők", - "tags_h": "Címkék" + "fields_all_fields": "Az \"összes mező\" rész tartalmazza az alapvető információkat. Az OpenStreetMap-ben minden mező opcionális, tehát nem szükséges megadni mindet, ha nem vagy bennük biztos.", + "fields_example": "Minden elemtípus különböző mezőket jelenít meg. Például egy út adata lehet az anyaga vagy a rajta érvényes sebesség-korlátozás, míg egy étterem az ott felszolgált ételek típusát tünteti fel, vagy a nyitvatartási időt.", + "fields_add_field": "A \"mező hozzáadása\" részre kattintva további információkat lehet megadni (pl. Wikipédia hivatkozást, lehet-e ott kerekesszékkel közlekedni, stb.)", + "tags_h": "Címkék", + "tags_all_tags": "A mezők alatti részen, az \"Összes címke\" résznél címkéket lehet megadni az adott elemhez. Minden címke egy \"kulcs\" és egy \"érték\" adatból áll. ", + "tags_resources": "Egy elem címkéinek szerkesztése az OpenStreetMap alapfogalmainak legalább középszintű ismeretét igényli. Ehhez érdemes megnézni az [OpenStreetMap Wiki](https://wiki.openstreetmap.org/wiki/Main_Page) vagy [Taginfo](https://taginfo.openstreetmap.org/) oldalakat az OpenStreetMap-ben használatos gyakorlatról." }, "points": { "title": "Pontok", + "intro": "Ponttal olyan elemet lehet megjeleníteni, mint például bolt, étterem vagy emlékmű.. Egy konkrét helyet jelöl, és leírja, mi van ott. ", "add_point_h": "Pontok hozzáadása", + "add_point": "Pont hozzáadásához a {point} **Pont** gombra kell kattintani vagy megnyomni az `1` billentyűt. Az egérkurzor kereszt szimbólumra vált. ", + "add_point_finish": "Egy új pont térképen való elhelyezéséhez vidd oda az egérrel a kurzort, ahová a pontnak kerülnie kell, majd kattints a bal gombbal vagy nyomd meg a szóközt.", "move_point_h": "Pontok mozgatása", - "delete_point_h": "Pontok törlése" + "move_point": "Pont mozgatása: az egérkurzort vigyük az adott pontra, majd a {leftclick} bal egérgomb lenyomása mellett mozgassuk az egeret az új pozícióba, és ott engedjük fel.", + "delete_point_h": "Pontok törlése", + "delete_point": "A valóságban nem létező elemeket törölhetjük a térképről.{br}Ha egy elemet törlünk az OpenStreetMapről, akkor az többé nem lesz látható a mindenki által használt térképen. A törlés előtt győződjünk meg róla, hogy az adott elem valóban nem létezik. ", + "delete_point_command": "Pont törlése: {rightclick}  jobb gomb, majd {delete} **Törlés** parancs." }, "lines": { "title": "Vonalak", + "intro": "A *vonalak* utakat, vasutakat, folyókat és ezekhez hasonló elemeket ábrázolnak. Egy \"vonal\" az elem középvonalában fut.", "add_line_h": "Vonalak hozzáadása", + "add_line": "Vonal hozzáadása: kattints a {line} **Vonal** gombra az eszköztáron, vagy nyomd meg a \"2\" gombot. Az egérkurzor kereszt szimbólumra változik. ", + "add_line_draw": "Vidd oda az egeret, ahol a vonal kezdőpontja lesz, és nyomd le a {leftclick}  bal egérgombot, vagy a szóközt. Folytasd további pontok lerakásával a vonal megrajzolását. Rajzolás közben lehet nagyítani vagy kicsinyíteni, illetve elmozgatni a látható területet. ", "add_line_finish": "Egy vonal befejezéséhez nyomj `{return}`-t vagy kattints ismét az utolsó pontra.", "modify_line_h": "Vonalak módosítása", + "modify_line_dragnode": "Gyakran találkozni olyan vonalakkal, amik nincsenek jól elhelyezve, például lehet ez egy olyan épület, ami nem illeszkedik a háttérben lévő műholdképhez. Vonal formájának beállításához először ki kell választani az {leftclick} egér bal gombjával. A vonalon lévő összes pont kis körrel lesz megjelenítve. Ezeket a kis köröket megfogva lehet korrigálni a vonal formáján.", + "modify_line_addnode": "Új pontokat lehet létrehozni a terület széleit jelölő vonalon kattintva {leftclick}**x2**  a bal gombbal, vagy a pontok közötti kis háromszöget mozgatva.", "connect_line_h": "Vonalak összekötése", + "connect_line": "Az utak megfelelő összekötése alapvető fontosságú a térkép számára, mivel ez kell majd az útvonaltervezéshez.", + "connect_line_display": "Az utak összekötése szürke körökkel van jelölve. A vonal vége nagyobb fehér körrel van ábrázolva, ha az nem kapcsolódik sehova.", + "connect_line_drag": "Vonal összekapcsolása másik elemmel: a vonal valamelyik pontját meg kell fogni és ráejteni a másik elemre, amikor úgy látszik, hogy illeszkednek. Tipp: az `{alt}`  gombot érdemes lenyomva tartani közben, hogy a pontok máshova ne kapcsolódjanak.", + "connect_line_tag": "Ha tudomásod van róla, hogy a kereszteződésben forgalmi lámpa vagy gyalogátkelő van, ezeket el tudod helyezni az összekötési pont kiválasztásával, és elemeinek szerkesztésével.", "disconnect_line_h": "Vonalak szétkapcsolása", + "disconnect_line_command": "Út leválasztása másik elemről úgy történhet, hogy a {rightclick}  jobb gombbal kattintunk az összekötési pontra, és kiválasztjuk a {disconnect} **Szétválasztás** parancsot a helyi menüből.", "move_line_h": "Vonalak mozgatása", - "delete_line_h": "Vonalak törlése" + "move_line_command": "Vonal mozgatása: {rightclick} jobb gomb, {move} **Mozgatás** parancs a helyi menüből, mozgatás az új helyre, majd a {leftclick} bal gombbal le lehet rakni.", + "move_line_connected": "Más objektumhoz kapcsolódó vonal összekapcsolva marad vele a mozgatás után is. Az iD szerkesztő nem engedi vonal mozgatását összekapcsolt vonalat keresztezve.", + "delete_line_h": "Vonalak törlése", + "delete_line": "Ha egy vonal, például egy út nem létezik, természetesen törölhetjük a térképről. A törlés előtt vegyük figyelembe, hogy a háttérnek használt kép lehet régi, vagy a \"nem létező út\" esetleg új építésű lehet.", + "delete_line_command": "Vonal törlése: {rightclick} jobb gomb, majd a helyi menüből {delete} **Törlés** parancs." }, "areas": { "title": "Területek", - "point_or_area_h": "Pontok vagy Területek?", + "intro": "A *terület*-et különféle elemek határainak megjelölésére használjuk. A *terület*-et a határait jelentő pontokkal kell felvinni (például egy épületet).", + "point_or_area_h": "Pontok vagy területek?", + "point_or_area": "Sok objektum pontokkal vagy területtel is megjeleníthető lenne. Törekedni kell rá, hogy egy épület például mindig területként legyen felvive. Az épületen belül pontokat helyezhetünk el, például üzlethelyiség, vagy más jellemzők ábrázolásakor.", "add_area_h": "Területek hozzáadása", + "add_area_command": "Terület hozzáadása: kattints a {area} **Terület** gombra az eszköztáron, vagy nyomd meg a \"3\" gombot. Az egérkurzor kereszt szimbólumra változik. ", + "add_area_draw": "Vidd oda az egeret, ahol az objektum kezdőpontja lesz, az objektum külső széleinél, és nyomd le a {leftclick} bal egérgombot, vagy a szóközt. Folytasd további pontok lerakásával a vonal megrajzolását. Rajzolás közben lehet nagyítani vagy kicsinyíteni, illetve elmozgatni a látható területet. ", + "add_area_finish": "A terület befejezéséhez kattintsunk az első vagy az utolsó pontra, vagy üssük le az Entert. ", "square_area_h": "Derékszöges sarkok", + "square_area_command": "Sok terület (például egy épület) derékszögű sarkokkal rendelkezik. Egy megrajzolt terület sarkait derékszögűvé alakíthatjuk: {rightclick}  jobb gomb az egérrel a terület szélein, majd a helyi menüből {orthogonalize} **Derékszögesítés** kiválasztása.", "modify_area_h": "Területek módosítása", - "delete_area_h": "Területek törlése" + "modify_area_dragnode": "Gyakran látható, hogy egy terület formája nem megfelelő (például egy épület nem illeszkedik a háttérképhez). A terület formájának alakítása: {leftclick} bal gomb a kiválasztáshoz (a terület minden pontja apró körként jelenik meg), majd a pontokat a megfelelő pozícióba lehet átmozgatni.", + "modify_area_addnode": "Új pontokat lehet létrehozni a terület széleit jelölő vonalon kattintva {leftclick}**x2**  a bal gombbal, vagy a pontok közötti kis háromszöget mozgatva.", + "delete_area_h": "Területek törlése", + "delete_area": "Ha egy terület, például egy épület a valóságban nem létezik, az természetesen törölhető. Legyünk azonban óvatosak az elemek törlésével: a háttérként használt kép lehet régi, vagy az épület új építésű.", + "delete_area_command": "Terület törlése: {rightclick} jobb gomb a terület körvonalán, majd a helyi menüből {delete} **Törlés** parancs." }, "relations": { "title": "Kapcsolatok", @@ -1301,6 +1415,8 @@ }, "gps": { "title": "GPS nyomvonalak", + "intro": "Az összegyűjtött GPS nyomvonalak fontos adatforrások az OpenStreetMap számára. Ez a szerkesztő támogatja a *.gpx*, *.geojson* és *.kml* fájlok feltöltését. GPS nyomvonalakat mobiltelefonnal, fitnessz órával, vagy bármilyen más, GPS nyomvonalat rögzítő eszközzel készíthetsz.", + "survey": "További információk a GPS nyomvonalak készítéséről: [Mapping with a smartphone, GPS, or paper](http://learnosm.org/en/mobile-mapping/).", "using_h": "GPS nyomvonal használata" }, "qa": { @@ -1340,56 +1456,225 @@ "rules": { "title": "Szabályok" }, + "no_issues": { + "message": { + "everything": "Minden rendben lévőnek látszik", + "everything_in_view": "Úgy tűnik, minden rendben a látható területen", + "edits": "A szerkesztéseid rendben vannak", + "edits_in_view": "A szerkesztéseid rendben vannak a látható területen " + }, + "hidden_issues": { + "none": "Az észlelt problémák itt fognak megjelenni", + "elsewhere": "Problémák máshol: {count}", + "disabled_rules": "Problémák száma a kikapcsolt szabályokkal: {count}", + "ignored_issues": "Hanyagolt problémák: {count}", + "ignored_issues_elsewhere": "Hanyagolt problémák máshol: {count}" + } + }, + "options": { + "what": { + "title": "Ellenőrzés:", + "edited": "Szerkesztéseim", + "all": "Minden" + }, + "where": { + "title": "Hol:", + "visible": "Látható", + "all": "Mindenhol" + } + }, + "suggested": "Javasolt frissítések:", + "enable_all": "Mindent engedélyez", + "disable_all": "Mindent tilt", + "reset_ignored": "Hanyagolt problémák nullázása ({count})", + "fix_one": { + "title": "javít" + }, + "fix_all": { + "title": "Mindent javít" + }, "almost_junction": { - "title": "Majdnem csomópontok", - "message": "{feature} nagyon közel van, de nem csatlakozik ehhez: {feature2}" + "title": "Majdnem csomópont", + "message": "{feature} nagyon közel van, de nem csatlakozik ehhez: {feature2}", + "tip": "Olyan objektumok keresése, amiket valószínűleg össze kellene kötni más objektummal." + }, + "close_nodes": { + "title": "Nagyon közeli pontok", + "tip": "Olyan pontok keresése, amik valószínűleg ugyanazt írják le.", + "detached": { + "message": "{feature} nagyon közel van ehhez: {feature2}" + } + }, + "crossing_ways": { + "title": "Átfedő utak", + "message": "{feature} keresztezi ezt: {feature2}", + "tip": "Kereszteződő - de nem kapcsolódó vonalak/utak", + "building-building": { + "reference": "Az épületek csak különböző rétegeken metszhetik egymást." + }, + "building-railway": { + "reference": "Épületet keresztező vasútnak hidat vagy alagutat kell használnia." + }, + "building-waterway": { + "reference": "Épületet keresztező víziútnak alagutat vagy eltérő réteget kell használnia." + }, + "railway-railway": { + "reference": "Az átfedő vasutak vagy össze vannak kötve, vagy az egyik hídon vagy alagútban halad." + }, + "railway-waterway": { + "reference": "Víziutat keresztező vasútnak hidat vagy alagutat kell használnia." + }, + "waterway-waterway": { + "reference": "Az átfedő víziutak vagy össze vannak kötve, vagy különböző szinteken futnak, vagy az egyik alagútban halad." + } }, "disconnected_way": { "title": "Szétkapcsolt utak" }, + "fixme_tag": { + "title": "\"Javíts ki\" kérés", + "message": "{feature} \"Javíts ki\" kéréssel", + "tip": "Szolgáltatások keresése \"Javíts ki\" kéréssel", + "reference": "A \"Javíts ki\" kérés azt jelzi, hogy egy térképező szerint probléma van az adott objektummal." + }, + "generic_name": { + "title": "Gyanús név", + "message": "{feature} gyanús névvel: \"{name}\"", + "tip": "Szolgáltatások keresése általános vagy gyanús névvel" + }, + "incompatible_source": { + "title": "Gyanús forrás", + "tip": "Szolgáltatások keresése gyanús forrásjelölővel", + "google": { + "feature": { + "message": "{feature} adatforrásnak Google van megadva" + }, + "reference": "A Google termékek jogvédettek, ezért nem szabad használni őket hivatkozásként." + } + }, + "invalid_format": { + "title": "Érvénytelen formázás", + "tip": "Formailag hibás címkék keresése.", + "email": { + "message": "{feature} hibás email címmel", + "message_multi": "{feature} több hibás email címmel", + "reference": "Egy email címnek valahogy így kell kinéznie: \"felhasznalo@pelda.com\"" + }, + "website": { + "message": "{feature} hibás weboldal címmel", + "message_multi": "{feature} több hibás weboldal címmel", + "reference": "Egy weboldal címnek így kell kezdődnie: \"http\" vagy \"https\"." + } + }, "missing_role": { - "title": "Hiányzó szerepek" + "title": "Hiányzó szerep" }, "missing_tag": { - "title": "Hiányzó címkék", + "title": "Hiányzó címke", + "tip": "Objektum keresése, aminél hiányos a leíró címke. ", "any": { "message": "{feature} nem rendelkezik címkékkel" + }, + "descriptive": { + "message": "{feature} nem rendelkezik leíró címkékkel" } }, "outdated_tags": { - "title": "Idejétmúlt címkék", - "message": "{feature} idejétmúlt címkékkel rendelkezik" + "title": "Idejétmúlt címke", + "message": "{feature} idejétmúlt címkével rendelkezik", + "tip": "Objektumok keresése, amik elavult, frissítendő címkével rendelkeznek.", + "reference": "Bizonyos címkék időnként változnak, ezeket ilyenkor frissíteni kell.", + "incomplete": { + "message": "{feature} hiányos címkékkel" + }, + "noncanonical_brand": { + "message": "{feature} márkanév nem szabályos címkével" + } + }, + "private_data": { + "title": "Magáninformáció", + "tip": "Objektum keresése, ami magánjellegű címkét tartalmazhat.", + "reference": "Érzékeny adat, például magántelefonszám ne legyen megadva címkének.", + "contact": { + "message": "{feature} magánjellegű kapcsolati címkét tartalmazhat" + } }, "tag_suggests_area": { - "title": "Vonalak területnek címkézve" + "title": "Vonalak területnek címkézve", + "message": "{feature}: ennek zárt területnek kellene lennie \"{tag}\" címke miatt", + "tip": "Olyan objektumok keresése, amik vonalnak vannak jelölve, de lehetséges, hogy területek." }, "unknown_road": { "message": "{feature} nincs besorolva" }, + "impossible_oneway": { + "title": "Lehetetlen egyirányú út", + "highway": { + "start": { + "message": "{feature} elérhetetlen", + "reference": "Egyirányú utcának elérhetőnek kell lennie más utaktól." + } + } + }, + "unsquare_way": { + "title": "Nem szögletes sarok ({val}-ig)", + "message": "{feature} nem rendelkezik szögletes sarkokkal", + "tip": "Nem szögletes sarokkal rendelkező objektumok keresése, amik pontosabban is megrajzolhatók.", + "buildings": { + "reference": "Nem szögletes sarokkal rendelkező épület gyakran pontosabban is megrajzolható." + } + }, "fix": { "connect_endpoints": { "title": "A végpontok összekötése" }, + "connect_feature": { + "title": "Elem összekötése" + }, + "continue_from_start": { + "title": "Rajzolás folytatása a kezdettől" + }, + "continue_from_end": { + "title": "Rajzolás folytatása a végtől" + }, "delete_feature": { "title": "Elem törlése" }, + "ignore_issue": { + "title": "Probléma hanyagolása" + }, + "merge_points": { + "title": "Pontok egyesítése." + }, + "move_points_apart": { + "title": "Pontok szétválasztása" + }, "move_tags": { - "title": "Címkék mozgatása" + "title": "Címkék mozgatása", + "annotation": "Mozgatott címkék." }, "remove_from_relation": { "title": "Eltávolítás kapcsolatból" }, "remove_generic_name": { - "title": "A név eltávolítása" + "title": "A név eltávolítása", + "annotation": "Általános név eltávolítása" + }, + "remove_private_info": { + "annotation": "Magáninformáció eltávolítva." + }, + "remove_proprietary_data": { + "title": "Jogvédett adat eltávolítva" }, "remove_tag": { - "title": "A címke eltávolítása" + "title": "A címke eltávolítása", + "annotation": "Eltávolított címke." }, "remove_tags": { "title": "A címkék eltávolítása" }, "upgrade_tags": { - "title": "Címkék frissítése", + "title": "Címke frissítése", "annotation": "Régi címkék frissítve." }, "use_bridge_or_tunnel": { @@ -1398,6 +1683,9 @@ "use_different_layers": { "title": "Eltérő rétegek használata" }, + "use_different_layers_or_levels": { + "title": "Eltérő rétegek vagy szintek használata" + }, "use_different_levels": { "title": "Eltérő szintek használata" }, @@ -1536,10 +1824,10 @@ }, "welcome": { "title": "Üdvözlet", - "welcome": "Isten hozott! Ezzel a gyakorló feladatsorral megtanulhatod az OpenStreetMap szerkesztésének alapjait.", + "welcome": "Légy üdvözölve! Ezzel a gyakorló feladatsorral megtanulhatod az OpenStreetMap szerkesztésének alapjait.", "practice": "A bevezető tanfolyamban használt adatok csak gyakorlásra szolgálnak; az itt elvégzett szerkesztések nem lesznek elmentve.", "words": "Meg fogunk ismerkedni néhány új szóval és fogalommal is. Ha egy új szót először használunk, *dőlt betűvel* írjuk.", - "mouse": "A térkép bármilyen beviteli eszközzel szerkeszthető, de ennél a tanfolyamnál abból indulunk ki, hogy egeret használsz, amelynek van jobb és bal gombja. **Ha szeretnél egy egeret csatlakoztatni, tedd meg, majd kattints az OK-ra.**", + "mouse": "A térkép bármilyen beviteli eszközzel szerkeszthető, de ennél a tanfolyamnál abból indulunk ki, hogy egeret használsz, amelynek van jobb és bal gombja. **Ha most szeretnél egeret csatlakoztatni, tedd meg, majd kattints az OK-ra.**", "leftclick": "Ha a tanfolyamon azt kérjük, kattints egyszer vagy duplán, mindig a bal gombra gondolunk. Érintőtáblán lehet, hogy ez egy kattintás vagy egyujjas koppintás. **Kattints a bal gombbal {num} alkalommal.**", "rightclick": "Néha arra is megkérünk majd, hogy a jobb gombbal kattints. Érintőtáblán lehet, hogy ez Ctrl-kattintás vagy kétujjas koppintás. Elképzelhető, hogy a billentyűzeteden van egy 'menu' gomb, amelyik úgy működik, mint a jobb gombos kattintás. **Kattints a jobb gombbal {num} alkalommal.**", "chapters": "Eddig megvolnánk! A lenti gombokkal bármikor átugorhatsz egy fejezetet vagy újrakezdheted, ha elakadtál. Lássunk hozzá! **A folytatáshoz kattints ide: {next}.**" @@ -1550,7 +1838,7 @@ "zoom": "Nagyítani vagy kicsinyíteni az egér kerekével vagy a tapipaddal lehet, vagy a {plus} / {minus} gombra kattintva. **Nagyíts a térképen!**", "features": "A térképen megjelenő dolgokat *elemnek* (features) hívjuk. A való világból bármi felrajzolható az OpenStreetMapre elemként.", "points_lines_areas": "A térképelemek *pontokként, vonalakként vagy területekként* jelennek meg.", - "nodes_ways": "Az OpenStreetMapben a pontokat *csomópontnak* is szoktuk hívni, a vonalakat és felületeket pedig néha *útnak* is nevezzük. A két kifejezés angol változatával is találkozhatsz, ezek a node és a way.", + "nodes_ways": "Az OpenStreetMapben a pontot *csomópontnak* is szoktuk hívni, a vonalat és felületet pedig néha *útnak* is nevezzük. A két kifejezés angol változatával is találkozhatsz, ezek a node és a way.", "click_townhall": "A térképen egy elem úgy jelölhető ki, ha rákattintunk. **Kattints a pontra a kijelöléséhez!**", "selected_townhall": "Nagyon jó! A pont ki van jelölve. A kiválasztott elemek pulzálva ragyognak a térképen.", "editor_townhall": "Ha egy elem ki van jelölve, a térkép mellett megjelenik az *elemszerkesztő*.", @@ -1565,7 +1853,7 @@ }, "points": { "title": "Pontok", - "add_point": "Pontokkal olyan elemeket lehet megjeleníteni, mint például boltok, éttermek és emlékművek.{br}Egy konkrét helyet jelölnek, és leírják, mi van ott. **Kattints a {button} Pont gombra egy új pont hozzáadásához.**", + "add_point": "Ponttal olyan elemet lehet megjeleníteni, mint például bolt, étterem vagy emlékmű..{br}Egy konkrét helyet jelöl, és leírja, mi van ott. **Kattints a {button} Pont gombra egy új pont hozzáadásához.**", "place_point": "Egy új pont térképen való elhelyezéséhez vidd oda az egérrel a kurzort, ahová a pontnak kerülnie kell, majd kattints a bal gombbal vagy nyomd meg a szóközt. **Vidd az egérmutatót erre az épületre, aztán kattints a bal gombbal vagy nyomd meg a szóközt.**", "search_cafe": "Pontokkal rengeteg különböző térképelemet megjeleníthetünk. Az általad hozzáadott pont egy kávézó. **Keress rá a következőre: „{preset}”.**", "choose_cafe": "**A felsorolásból válaszd ki a következőt: {preset}.**", @@ -1582,6 +1870,7 @@ }, "areas": { "title": "Területek", + "add_playground": "A *terület*-et különféle elemek – pl. tó, épület vagy lakóterület – határainak megjelölésére használjuk.{br}Arra is használható, hogy részletesebben jelenítsünk meg olyan elemeket, amelyeket esetleg csak pontként rajzolnánk fel. **Egy új terület felrajzolásához kattints a {button} Terület gombra.**", "start_playground": "Adjuk hozzá ezt a játszóteret a térképhez úgy, hogy rajzolunk belőle egy területet. Területeket úgy rajzolunk, hogy *pontokat* helyezünk el az elem külső pereme mentén. **A kezdő pont elhelyezéséhez kattints vagy üsd le a szóközt a játszótér valamelyik sarkánál.**", "continue_playground": "A terület rajzolását úgy folytathatod, hogy további pontokat teszel a játszótér szélére. Helyes dolog összekapcsolni a területet a meglévő gyalogutakkal.{br}Tipp: Az '{alt}' billentyű lenyomva tartásával megakadályozható, hogy a pontok más elemekhez kapcsolódjanak. **Folytasd a játszótér területének megrajzolását!**", "finish_playground": "Fejezd be a területet az Enter megnyomásával, vagy újra az első vagy utolsó elemre kattintással. **Fejezd be a játszótér területének megrajzolását.**", @@ -1596,7 +1885,7 @@ "lines": { "title": "Vonalak", "add_line": "A *vonalak* utakat, vasutakat, folyókat és ezekhez hasonló elemeket ábrázolnak. **Kattints a {button} gombra egy új vonal hozzáadásához!**", - "start_line": "Itt egy hiányzó út. Rajzoljuk föl a térképre!{br}Az OpenStreetMapben az utakat ábrázoló vonalat az út középvonalába kell rajzolni. Rajzolás közben szükség esetén az egérrel odébb is húzhatjuk a térképet. **A hiányzó út felső végére kattintva kezdd el egy új vonal felrajzolását!**", + "start_line": "Itt egy hiányzó út. Rajzoljuk föl a térképre!{br}Az OpenStreetMapben az utakat ábrázoló vonalat az út középvonalába kell rajzolni! Rajzolás közben szükség esetén az egérrel odébb is húzhatjuk a térképet. **A hiányzó út felső végére kattintva kezdd el egy új vonal felrajzolását!**", "intersect": "Kattintással vagy a szóköz billentyűvel újabb pontokat adhatunk a vonalhoz.{br}Az utak és egyes más vonaltípusok is nagyobb hálózatok részei. Fontos, hogy ezek a vonalak megfelelően kapcsolódjanak, és így például az útvonaltervező alkalmazások megfelelően működhessenek. **A két vonalat összekötő útkereszteződés létrehozásához kattints a következőre: {name}**", "retry_intersect": "Az útnak kereszteznie kell a következőt: {name}. Próbáld meg újra!", "continue_line": "Az új út létrehozásához folytassuk a vonal rajzolását. Ne felejtsd el, hogy szükség esetén nagyíthatjuk és odébb húzhatjuk a térképet.{br}Ha elkészültél a rajzolással, kattints még egyszer az utolsó pontra. **Fejezd be az út rajzolását!**", @@ -1705,6 +1994,7 @@ "fullscreen": "Teljes képernyős módba váltás", "sidebar": "Oldalsáv be/ki", "wireframe": "Drótváz mód átkapcsolása", + "osm_data": "OpenStreetMap adatok ki- vagy bekapcsolása", "minimap": "Minitérkép átkapcsolása" }, "selecting": { @@ -1751,6 +2041,7 @@ "move": "Kiválasztott elemek mozgatása", "rotate": "Kiválasztott elemek forgatása", "orthogonalize": "Vonal vagy terület sarkainak derékszögesítése", + "straighten": "Vonal vagy pontok kiegyenesítése", "circularize": "Zárt vonal vagy terület körvonalasítása", "reflect_long": "Elemek tükrözése a hosszanti tengelyre", "reflect_short": "Elemek tükrözése az oldalirányú tengelyre", @@ -1842,6 +2133,9 @@ "category-route": { "name": "Útvonalelemek" }, + "category-utility": { + "name": "Közmű elemek" + }, "category-water": { "name": "Víztestek" }, @@ -1898,6 +2192,15 @@ "access_simple": { "label": "Használat engedélyezett" }, + "addr/interpolation": { + "label": "Típus", + "options": { + "all": "Összes", + "alphabetic": "Ábécésorrendben", + "even": "Páros", + "odd": "Páratlan" + } + }, "address": { "label": "Cím", "placeholders": { @@ -1980,6 +2283,9 @@ "agrarian": { "label": "Termékek" }, + "air_conditioning": { + "label": "Légkondicionálás" + }, "amenity": { "label": "Típus" }, @@ -2082,7 +2388,12 @@ "building": { "label": "Épület" }, + "building/levels/underground": { + "label": "Föld alatti szintek", + "placeholder": "2, 4, 6…" + }, "building/levels_building": { + "label": "Épületszintek", "placeholder": "2, 4, 6..." }, "building/material": { @@ -2167,6 +2478,7 @@ "label": "Ország" }, "couplings": { + "label": "Csatlakozók", "placeholder": "1, 2, 3..." }, "covered": { @@ -2256,22 +2568,37 @@ "label": "Jelentőség" }, "departures_board": { + "label": "Indulásjelző tábla", "options": { "no": "Nincs", "realtime": "Valósidejű", + "timetable": "Menetrend", "yes": "Van" } }, "description": { "label": "Leírás" }, + "design": { + "label": "Dizájn" + }, + "destination_oneway": { + "label": "Célállomások" + }, "devices": { "label": "Eszközök", "placeholder": "1, 2, 3..." }, + "diameter": { + "label": "Átmérő", + "placeholder": "5 mm, 10 cm, 15 in…" + }, "diaper": { "label": "Pelenkázó van" }, + "diet_multi": { + "label": "Diétatípusok" + }, "diplomatic": { "label": "Típus" }, @@ -2399,6 +2726,9 @@ "fence_type": { "label": "Típus" }, + "fire_hydrant/diameter": { + "label": "Átmérő (mm vagy betű)" + }, "fire_hydrant/pressure": { "label": "Nyomás (bar)" }, @@ -2498,6 +2828,9 @@ "height": { "label": "Magasság (méter)" }, + "height_building": { + "label": "Épületmagasság (méterben)" + }, "highway": { "label": "Típus" }, @@ -2536,22 +2869,22 @@ "horse_scale": { "label": "Lovaglás nehézsége", "options": { - "dangerous": "Veszélyes: csak nagyon tapasztalt lovak és lovasok számára járható és csak jó időjárás esetén. Le kell szállni." + "common": "Könnyű: nincsenek problémák és nehézségek (alapértelmezés)", + "critical": "Közepes: csak tapasztalt lovak és lovasok számára járható. Nagyobb akadályok. A hidakat gondosan meg kell vizsgálni.", + "dangerous": "Veszélyes: csak nagyon tapasztalt lovak és lovasok számára járható és csak jó időjárás esetén. Le kell szállni.", + "demanding": "Vigyázva használható: egyenetlen út, időnként nehezebb útszakaszok.", + "difficult": "Nehéz: az út keskeny és nyitott. Akadályok lehetnek, amiket át kell lépni és szűk szakaszokon haladni.", + "impossible": "Járhatatlan: az út vagy híd lovak számára járhatatlan. Túl keskeny, nincs hova lépni, vagy olyan akadályok vannak, mint például létra. Életveszélyes." }, "placeholder": "Nehéz, veszélyes…" }, "horse_stables": { + "label": "Lovaglóistálló", "options": { "stables": "Igen", "undefined": "Nem" } }, - "iata": { - "label": "IATA" - }, - "icao": { - "label": "ICAO" - }, "incline": { "label": "Lejtés" }, @@ -2593,6 +2926,12 @@ "internet_access/fee": { "label": "Internetcsatlakozás díja" }, + "internet_access/ssid": { + "label": "Wifi hálózat neve" + }, + "interval": { + "label": "Intervallum" + }, "junction/ref_oneway": { "label": "Csomópont száma" }, @@ -2864,6 +3203,9 @@ "operator": { "label": "Üzemeltető" }, + "operator/type": { + "label": "Üzemeltető típusa" + }, "outdoor_seating": { "label": "Kiülős helyek" }, @@ -2889,6 +3231,9 @@ "payment_multi": { "label": "Fizetési típusok" }, + "payment_multi_fee": { + "label": "Fizetési típusok" + }, "phases": { "label": "Fázisok", "placeholder": "1, 2, 3..." @@ -2902,6 +3247,7 @@ "options": { "advanced": "Haladó", "easy": "Könnyű", + "expert": "Haladó", "extreme": "Extrém", "intermediate": "Középhaladó", "novice": "Kezdő" @@ -2911,7 +3257,12 @@ "piste/difficulty_downhill": { "label": "Nehézség", "options": { - "easy": "Könnyű (zöld kör)" + "advanced": "Haladó (fekete gyémánt)", + "easy": "Könnyű (zöld kör)", + "expert": "Profi (dupla fekete gyémánt)", + "extreme": "Extrém (hegymászófelszerelés szükséges)", + "intermediate": "Közepes (kék négyzet)", + "novice": "Kezdő (utasításokra vár)" }, "placeholder": "Kezdő, középhaladó, haladó…" }, @@ -2933,6 +3284,16 @@ "skating": "Szabad stílus" } }, + "piste/grooming_downhill": { + "options": { + "classic": "Klasszikus" + } + }, + "piste/grooming_nordic": { + "options": { + "classic": "Klasszikus" + } + }, "piste/type": { "label": "Típus", "options": { @@ -2979,6 +3340,9 @@ "power_supply": { "label": "Elektromos csatlakozás" }, + "preschool": { + "label": "Óvoda" + }, "produce": { "label": "Mezőgazdasági termék" }, @@ -3042,7 +3406,7 @@ "label": "Útvonal szám" }, "ref_runway": { - "label": "Kifutó sorszám", + "label": "Kifutópálya szám", "placeholder": "pl. 01L/19L" }, "ref_stop_position": { @@ -3058,6 +3422,14 @@ "religion": { "label": "Vallás" }, + "reservation": { + "label": "Foglalás", + "options": { + "recommended": "Ajánlott", + "required": "Szükséges", + "yes": "Elfogadás" + } + }, "resort": { "label": "Típus" }, @@ -3198,6 +3570,9 @@ }, "placeholder": "Igen, nem, kizárólag" }, + "self_service": { + "label": "Önkiszolgáló" + }, "service": { "label": "Típus" }, @@ -3368,6 +3743,7 @@ "label": "Típus", "options": { "circuit_breaker": "Áramkör megszakító", + "disconnector": "Szakaszoló", "earthing": "Földelés", "mechanical": "Mechanikus" } @@ -3392,7 +3768,8 @@ "options": { "bucket": "Vödör", "chemical": "Vegyi öblítéses", - "flush": "Vízöblitéses" + "flush": "Vízöblitéses", + "pitlatrine": "Árnyékszék" } }, "toilets/handwashing": { @@ -3478,6 +3855,9 @@ "trees": { "label": "Fák" }, + "trolley_wire": { + "label": "Trolibusz-felsővezeték" + }, "tunnel": { "label": "Típus", "placeholder": "Alapértelmezett" @@ -3805,6 +4185,9 @@ "name": "Óra", "terms": "óra" }, + "amenity/clock/sundial": { + "name": "Napóra" + }, "amenity/college": { "name": "Főiskola", "terms": "főiskola, felsőoktatás, fősuli" @@ -3843,6 +4226,9 @@ "name": "Harcművészeti edzőterem / dodzso", "terms": "kick-box,karate, kung fu, aikido, taekwando, judo, jujitsu, kendo,capoeira,dzsudo,baranta,zenbukan,kempo,boksz,krav maga,csikung,vusu,saolin,kungfu," }, + "amenity/dressing_room": { + "name": "Öltöző" + }, "amenity/drinking_water": { "name": "Ivóvíz", "terms": "Ivókút, kút, csap, közkifolyó, közkút, nyomós kút, forrás, víz" @@ -3864,9 +4250,15 @@ "amenity/fast_food/chicken": { "name": "Csirke gyorsétterem" }, + "amenity/fast_food/donut": { + "name": "Fánk gyorsétterem" + }, "amenity/fast_food/fish_and_chips": { "name": "Hal és krumpli gyorsétterem" }, + "amenity/fast_food/ice_cream": { + "name": "Fagylaltozó gyorsétterem" + }, "amenity/fast_food/kebab": { "name": "Kebab gyorsétterem" }, @@ -3943,6 +4335,9 @@ "amenity/monastery": { "name": "Kolostor" }, + "amenity/money_transfer": { + "name": "Pénz átutaló hely" + }, "amenity/motorcycle_parking": { "name": "Motorkerékpár-parkoló", "terms": "motoros parkoló, motor parkoló" @@ -3966,6 +4361,9 @@ "amenity/parking/multi-storey": { "name": "Többszintes parkolóház" }, + "amenity/parking/underground": { + "name": "Mélygarázs" + }, "amenity/parking_entrance": { "name": "Parkolóház be-/kijárat", "terms": "garázsbejárat, parkolóház" @@ -3974,6 +4372,9 @@ "name": "Parkolóhely", "terms": "parkoló, parkolópont, várakozó hely" }, + "amenity/photo_booth": { + "name": "Fényképezőfülke" + }, "amenity/place_of_worship": { "name": "Istentiszteleti hely", "terms": "templom, kápolna, vallás, felszentelt" @@ -4094,7 +4495,7 @@ "name": "Mexikói étterem" }, "amenity/restaurant/sushi": { - "name": "Sushi étterem" + "name": "Szusi étterem" }, "amenity/restaurant/thai": { "name": "Thai étterem" @@ -4135,6 +4536,9 @@ "name": "Szociális létesítmény", "terms": "Szociális intézmény" }, + "amenity/social_facility/ambulatory_care": { + "name": "Elsősegélynyújtó hely" + }, "amenity/social_facility/food_bank": { "name": "Élelmiszerbank ", "terms": "Élelmiszer-adomány elosztó, Élelmiszersegély begyűjtő és elosztó" @@ -4177,6 +4581,12 @@ "name": "WC", "terms": "vécé, illemhely, toalett, klotyó, árnyékszék, budi, pottyantós" }, + "amenity/toilets/disposal/flush": { + "name": "WC" + }, + "amenity/toilets/disposal/pitlatrine": { + "name": "Árnyékszék" + }, "amenity/townhall": { "name": "Városháza", "terms": "Polgármesteri hivatal, Községháza," @@ -4185,6 +4595,9 @@ "name": "Egyetem", "terms": "kampusz, campus, felsőoktatás" }, + "amenity/vehicle_inspection": { + "name": "Autóműszaki vizsgáló" + }, "amenity/vending_machine": { "name": "Árusító automata", "terms": "automata,árusító automata" @@ -4276,6 +4689,9 @@ "name": "Mutatványos berendezés", "terms": "körhinta, ringlispíl, óriáskerék, dodzsem, hullámvasút," }, + "attraction/animal": { + "name": "Állatkifutó" + }, "attraction/big_wheel": { "name": "Óriáskerék", "terms": "nagy kerék,óriás kerék" @@ -4346,6 +4762,9 @@ "name": "Szarvasmarharács", "terms": "tehénrács, marharács" }, + "barrier/chain": { + "name": "Lánc" + }, "barrier/city_wall": { "name": "Városfal", "terms": "fal, középkor" @@ -4444,7 +4863,7 @@ "terms": "templomépület" }, "building/civic": { - "name": "Polgári Épület" + "name": "Városi épület" }, "building/college": { "name": "Főiskolai épület", @@ -4487,6 +4906,9 @@ "name": "Üvegház", "terms": "Üvegház" }, + "building/hangar": { + "name": "Hangárépület" + }, "building/hospital": { "name": "Kórházépület", "terms": "Kórházi épület, Klinika épület, Gyógyintézet épület" @@ -4499,6 +4921,9 @@ "name": "Családi ház", "terms": "Ház" }, + "building/houseboat": { + "name": "Lakóhajó" + }, "building/hut": { "name": "Kunyhó", "terms": "Kunyhó, kalyiba, viskó" @@ -4514,6 +4939,9 @@ "building/mosque": { "name": "Mecset" }, + "building/pavilion": { + "name": "Pavilonépület " + }, "building/public": { "name": "Középület", "terms": "Nyilvános épület" @@ -4598,6 +5026,9 @@ "name": "Műhely", "terms": "kézműves, iparos, iparművész, mesterember, műhely" }, + "craft/agricultural_engines": { + "name": "Mezőgazdaságigép szerelő" + }, "craft/basket_maker": { "name": "Kosárfonó", "terms": "Kosárfonó" @@ -4658,7 +5089,7 @@ }, "craft/electronics_repair": { "name": "Elektronikai szerviz", - "terms": "eltronikai,szerviz,javító,bontó" + "terms": "elektronikai,szerviz,javító,bontó" }, "craft/gardener": { "name": "Kertész", @@ -4752,6 +5183,9 @@ "name": "Cipész", "terms": "Cipész, Cipőkészítő, Cipőjavító, Suszter, Csizmadia, Varga, Lábbeli készítő és javító mester" }, + "craft/signmaker": { + "name": "Címfestő" + }, "craft/stonemason": { "name": "Kőfaragó", "terms": "Kőfaragó műhely" @@ -4800,9 +5234,15 @@ "emergency/destination": { "name": "Kivéve célforgalom, vészhelyzetben" }, + "emergency/fire_alarm": { + "name": "Tűzriasztó gomb" + }, "emergency/fire_extinguisher": { "name": "Tűzoltókészülék" }, + "emergency/fire_hose": { + "name": "Tűzoltótömlő" + }, "emergency/fire_hydrant": { "name": "Tűzcsap", "terms": "Tűzcsap, vészhelyzet, tűzoltók, spricni, fecskendő, tömlő" @@ -4895,10 +5335,16 @@ "name": "Véradóhely", "terms": "véradás, vérellátás, őssejt, plazma, transzfúzió, vérátömlesztés" }, + "healthcare/counselling": { + "name": "Jogi tanácsadó központ" + }, "healthcare/hospice": { "name": "Szeretetház", "terms": "betegség, szeretet, gondoskodás" }, + "healthcare/laboratory": { + "name": "Orvosi laboratórium" + }, "healthcare/midwife": { "name": "Bába", "terms": "gyermek, születés, terhesség" @@ -4951,6 +5397,9 @@ "name": "Beltéri folyosó", "terms": "beltéri folyosó" }, + "highway/crossing": { + "name": "Kereszteződés, átkelő" + }, "highway/crossing/marked": { "name": "Jelölt gyalogátkelőhely" }, @@ -4973,14 +5422,32 @@ "name": "Kerékpárút", "terms": "Bicikliút, bringaút" }, + "highway/cycleway/bicycle_foot": { + "name": "Kerékpárút és gyalogút" + }, + "highway/cycleway/crossing": { + "name": "Kerékpáros kereszteződés" + }, + "highway/cycleway/crossing/marked": { + "name": "Jelölt kerékpáros kereszteződés" + }, + "highway/cycleway/crossing/unmarked": { + "name": "Nem jelölt kerékpáros kereszteződés" + }, "highway/elevator": { "name": "Felvonó", "terms": "lift" }, + "highway/emergency_bay": { + "name": "Vészhelyzeti megállóhely" + }, "highway/footway": { "name": "Gyalogút", "terms": "Járda" }, + "highway/footway/crossing": { + "name": "Gyalogosátkelő" + }, "highway/footway/marked": { "name": "Jelölt gyalogátkelőhely" }, @@ -5177,10 +5644,28 @@ "name": "Vár", "terms": "Kastély, Palota" }, + "historic/castle/fortress": { + "name": "Történelmi vár" + }, + "historic/castle/palace": { + "name": "Palota" + }, + "historic/castle/stately": { + "name": "Kastély" + }, + "historic/city_gate": { + "name": "Városkapu" + }, + "historic/fort": { + "name": "Történelmi erődítmény" + }, "historic/memorial": { "name": "Emlékmű", "terms": "Emlékhely" }, + "historic/memorial/plaque": { + "name": "Emléktábla" + }, "historic/monument": { "name": "Monumentális, épületszerű emlékmű", "terms": "monumentális emlékmű" @@ -5300,7 +5785,7 @@ "terms": "ipar, gyárterület, gyár, ipari park" }, "landuse/industrial/scrap_yard": { - "name": "Szeméttelep" + "name": "Roncstelep" }, "landuse/industrial/slaughterhouse": { "name": "Vágóhíd" @@ -5389,6 +5874,9 @@ "name": "Szőlő", "terms": "szőlőskert, szőlőültetvény" }, + "landuse/winter_sports": { + "name": "Téli sportok" + }, "leisure": { "name": "Szabadidő" }, @@ -5584,6 +6072,9 @@ "name": "Sólya", "terms": "Sólya, hajócsúszda" }, + "leisure/slipway_point": { + "name": "Sólya" + }, "leisure/sports_centre": { "name": "Sportközpont / komplexum", "terms": "sport,központ,komplexum" @@ -5604,6 +6095,24 @@ "name": "Versenypálya (nem motorsport)", "terms": "versenypálya," }, + "leisure/track/cycling": { + "name": "Kerékpár pálya" + }, + "leisure/track/cycling_point": { + "name": "Kerékpár pálya" + }, + "leisure/track/horse_racing": { + "name": "Lóverseny pálya" + }, + "leisure/track/horse_racing_point": { + "name": "Lóverseny pálya" + }, + "leisure/track/running": { + "name": "Futópálya" + }, + "leisure/track/running_point": { + "name": "Futópálya" + }, "leisure/water_park": { "name": "Élményfürdő", "terms": "strand,akvapark,aquapark,vízi szórakoztatópark" @@ -5622,6 +6131,9 @@ "man_made/antenna": { "name": "Antenna" }, + "man_made/beacon": { + "name": "Jeladó" + }, "man_made/breakwater": { "name": "Hullámtörő", "terms": "Hullámtörő" @@ -5645,6 +6157,9 @@ "name": "Nyiladék", "terms": "Irtás" }, + "man_made/dyke": { + "name": "Védőgát" + }, "man_made/embankment": { "name": "Töltés" }, @@ -5668,6 +6183,18 @@ "name": "Pózna", "terms": "pózna, mobiltorony, mobilcella, rádióadó" }, + "man_made/mast/communication/mobile_phone": { + "name": "Mobiltelefon torony" + }, + "man_made/mast/communication/radio": { + "name": "Rádió adótorony" + }, + "man_made/mast/communication/television": { + "name": "Tévé adótorony" + }, + "man_made/mineshaft": { + "name": "Bányaakna" + }, "man_made/monitoring_station": { "name": "Megfigyelőállomás" }, @@ -5689,6 +6216,9 @@ "man_made/pipeline/underground": { "name": "Földalatti Csőhálózat" }, + "man_made/pipeline/valve": { + "name": "Csővezeték-szelep" + }, "man_made/pumping_station": { "name": "Szivattyúház", "terms": "szivattyú,pumpa" @@ -5719,9 +6249,15 @@ "name": "Torony", "terms": "magas épület" }, + "man_made/tower/bell_tower": { + "name": "Harangtorony" + }, "man_made/tower/communication": { "name": "Kommunikációs torony" }, + "man_made/tower/minaret": { + "name": "Minaret" + }, "man_made/tower/observation": { "name": "Kilátótorony" }, @@ -5768,6 +6304,15 @@ "name": "Távközlési akna", "terms": "akna, szekrény, távközlés" }, + "military/bunker": { + "name": "Katonai bunker" + }, + "military/checkpoint": { + "name": "Ellenőrzőpont" + }, + "military/nuclear_explosion_site": { + "name": "Nukleáris robbantás helyszíne" + }, "natural": { "name": "Természet" }, @@ -5783,6 +6328,9 @@ "name": "Természetes strand", "terms": "Strand, vízpart, tengerpart, fürdőhely" }, + "natural/cape": { + "name": "Fok" + }, "natural/cave_entrance": { "name": "Barlangbejárat", "terms": "Barlang" @@ -5841,6 +6389,9 @@ "name": "Bozót", "terms": "bokor, cserjés" }, + "natural/shingle": { + "name": "Kavicsos" + }, "natural/spring": { "name": "Forrás", "terms": "Forrás" @@ -5863,6 +6414,9 @@ "name": "Víz", "terms": "Víz" }, + "natural/water/basin": { + "name": "Vízgyűjtő" + }, "natural/water/canal": { "name": "Csatorna" }, @@ -5881,6 +6435,9 @@ "natural/water/river": { "name": "Folyó" }, + "natural/water/stream": { + "name": "Patak" + }, "natural/wetland": { "name": "Mocsaras terület", "terms": "Mocsaras, vizenyő, nádas, láp, ingovány" @@ -5915,6 +6472,9 @@ "office/association": { "name": "Nonprofit szervezet iroda" }, + "office/bail_bond_agent": { + "name": "Óvadékiroda" + }, "office/charity": { "name": "Jótékonysági iroda" }, @@ -5925,9 +6485,15 @@ "name": "Közösségi iroda", "terms": "közösségi munkatér, coworking" }, + "office/diplomatic": { + "name": "Diplomáciai iroda" + }, "office/diplomatic/consulate": { "name": "Konzulátus" }, + "office/diplomatic/embassy": { + "name": "Külképviselet (nagykövetség)" + }, "office/educational_institution": { "name": "Oktatási intézmény", "terms": "oktatási intézmény" @@ -5961,6 +6527,9 @@ "name": "Anyakönyvi hivatal", "terms": "anyakönyvi hivatal, házasságkötési hivatal" }, + "office/guide": { + "name": "Turisztikai iroda" + }, "office/insurance": { "name": "Biztosító", "terms": "Biztosító" @@ -5985,6 +6554,9 @@ "name": "Civil szervezet", "terms": "Nonprofit szervezet, NGO, egyesület" }, + "office/notary": { + "name": "Közjegyzői iroda" + }, "office/physician": { "name": "Orvosi rendelő" }, @@ -5995,6 +6567,9 @@ "office/private_investigator": { "name": "Magánnyomozó iroda" }, + "office/religion": { + "name": "Egyházi iroda" + }, "office/research": { "name": "Kutatóintézet", "terms": "kutatás, fejlesztés, alapkutatás" @@ -6006,6 +6581,9 @@ "office/travel_agent": { "name": "Utazási iroda" }, + "office/water_utility": { + "name": "Vízmű iroda" + }, "piste/sleigh": { "name": "Szánkópálya" }, @@ -6119,6 +6697,9 @@ "power": { "name": "Energia" }, + "power/cable/underground": { + "name": "Föld alatti elektromos kábel" + }, "power/generator": { "name": "Áramfejlesztő", "terms": "generátor, erőmű, villamos energia, áram" @@ -6126,6 +6707,9 @@ "power/generator/method/photovoltaic": { "name": "Napelem" }, + "power/generator/source/hydro": { + "name": "Vízturbina" + }, "power/generator/source/nuclear": { "name": "Atomreaktor" }, @@ -6205,6 +6789,15 @@ "public_transport/stop_position_bus": { "name": "Busz megállási hely" }, + "public_transport/stop_position_ferry": { + "name": "Komp megállóhely" + }, + "public_transport/stop_position_light_rail": { + "name": "HÉV megállóhely" + }, + "public_transport/stop_position_monorail": { + "name": "Egysínű megállóhely" + }, "public_transport/stop_position_subway": { "name": "Metró megállási hely" }, @@ -6228,6 +6821,9 @@ "name": "Ütközőbak", "terms": "üköző, ütközőbak, vasúti ütköző" }, + "railway/construction": { + "name": "Vasút építés alatt" + }, "railway/crossing": { "name": "Vasúti átjáró (gyalogos)", "terms": "vasúti kereszteződés,átkelő" @@ -6269,10 +6865,16 @@ "name": "Kisvasút", "terms": "Keskeny nyomtávú vasút" }, + "railway/platform": { + "name": "Vasúti peron" + }, "railway/rail": { "name": "Vasúti pálya", "terms": "Vasútvonal" }, + "railway/rail/highspeed": { + "name": "Nagysebességű vasút" + }, "railway/signal": { "name": "Vasúti jelző", "terms": "jelző, jelzés, vasút" @@ -6511,6 +7113,9 @@ "shop/fashion": { "name": "Divatüzlet" }, + "shop/fashion_accessories": { + "name": "Divat kiegészítők boltja" + }, "shop/fishing": { "name": "Horgászbolt" }, @@ -6525,6 +7130,9 @@ "name": "Képkeretező", "terms": "Képkeretes" }, + "shop/frozen_food": { + "name": "Fagyasztott élelmiszer" + }, "shop/funeral_directors": { "name": "Temetkezési iroda", "terms": "Temetkezési ügyintézés, temetkezési intézet, temetkezési és hamvasztási ügyintézés" @@ -6556,10 +7164,16 @@ "name": "Fodrász", "terms": "hajvágás" }, + "shop/hairdresser_supply": { + "name": "Fodrászcikk bolt" + }, "shop/hardware": { "name": "Vas-műszaki bolt", "terms": "csavarbolt, villanyszerelés, vasbolt, vaskereskedés" }, + "shop/health_food": { + "name": "Egészséges ételek boltja" + }, "shop/hearing_aids": { "name": "Hallókészülékbolt", "terms": "hallókészülékek" @@ -6572,6 +7186,9 @@ "name": "HiFi-bolt", "terms": "akusztika, extreme audio,hifi,hi-fi,audio,audiophyl,high end,házimozi,erősítő,hangfal," }, + "shop/hobby": { + "name": "Hobbi bolt" + }, "shop/houseware": { "name": "Háztartási bolt", "terms": "edények, evőeszközök, konyha, háztartási kisgépek, kerti eszközök," @@ -6597,6 +7214,9 @@ "name": "Mosoda", "terms": "ruhatisztító, vegytisztító, patyolat" }, + "shop/laundry/self_service": { + "name": "Önkiszolgáló mosoda" + }, "shop/leather": { "name": "Bőrdíszműbolt", "terms": "bőrdíszműves, bőrös, bőrruházat, bőrékeszer" @@ -6621,6 +7241,9 @@ "name": "Gyógyászati segédeszközök boltja", "terms": "Gyógybolt, Egészségbolt, Gyógyászati eszközök boltja" }, + "shop/military_surplus": { + "name": "Katonai felszerelések boltja" + }, "shop/mobile_phone": { "name": "Mobiltelefon-szaküzlet", "terms": "android,iphone,nokia, mobiltelefon, okostelefon" @@ -6633,6 +7256,9 @@ "name": "Motorkerékpár-kereskedés", "terms": "Motorbicikli Márkakereskedő, Robogó és motor márkakereskedő," }, + "shop/motorcycle_repair": { + "name": "Motorkerékpár alkatrész bolt" + }, "shop/music": { "name": "Hanglemezbolt", "terms": "Zenebolt, CD és DVD bolt, Zeneműbolt, Muzsikabolt, kotta és hanglemezbolt" @@ -6709,6 +7335,9 @@ "name": "Használtáru-bolt", "terms": "Használtruha bolt, Turkáló, Turi, Turkáló butik, bálás bolt, second hand bolt, használt cikk" }, + "shop/sewing": { + "name": "Varrásfelszerelés bolt" + }, "shop/shoes": { "name": "Cipőbolt", "terms": "cipőbolt, cipő papucs csizma és más lábbelik boltja, cipobolt" @@ -6790,6 +7419,9 @@ "name": "Órabolt (karóra)", "terms": "órabolt, órás" }, + "shop/water": { + "name": "Ivóvíz bolt" + }, "shop/water_sports": { "name": "Vízisport-bolt", "terms": "kajak,csónak,mentőmellény,fürdőruha,szörf" @@ -6798,6 +7430,9 @@ "name": "Fegyverbolt", "terms": "Kés, lőfegyver, riasztófegyver" }, + "shop/wholesale": { + "name": "Nagykereskedelem" + }, "shop/window_blind": { "name": "Redőnybolt", "terms": "redőny, roló, ablaksötétítő, árnyékolástechnika" @@ -6806,6 +7441,9 @@ "name": "Borszaküzlet", "terms": "borászat, italbolt, borkereskedés" }, + "tactile_paving": { + "name": "Vakvezető burkolat" + }, "tourism": { "name": "Turizmus" }, @@ -6825,6 +7463,15 @@ "name": "Műalkotás", "terms": "Művészeti alkotás, szobor, fafaragás" }, + "tourism/artwork/bust": { + "name": "Mellszobor" + }, + "tourism/artwork/graffiti": { + "name": "Graffiti" + }, + "tourism/artwork/installation": { + "name": "Művészeti kiállítás" + }, "tourism/artwork/mural": { "name": "Freskó" }, @@ -6915,6 +7562,12 @@ "tourism/zoo/petting": { "name": "Állatsimogató" }, + "tourism/zoo/safari": { + "name": "Szafaripark" + }, + "tourism/zoo/wildlife": { + "name": "Vadvédelmi park" + }, "traffic_calming": { "name": "Forgalomcsillapító", "terms": "forgalomcsillapító" @@ -7004,6 +7657,18 @@ "name": "Megfordulni tilos", "terms": "Tilos megfordulni" }, + "type/restriction/only_left_turn": { + "name": "Kötelező irány: balra" + }, + "type/restriction/only_right_turn": { + "name": "Kötelező irány: jobbra" + }, + "type/restriction/only_straight_on": { + "name": "Kötelező irány: egyenesen" + }, + "type/restriction/only_u_turn": { + "name": "Kötelező megfordulni" + }, "type/route": { "name": "Útvonal", "terms": "útvonal, nyomvonal" @@ -7039,6 +7704,9 @@ "type/route/light_rail": { "name": "HÉV-vonal" }, + "type/route/monorail": { + "name": "Egysínű vonal" + }, "type/route/pipeline": { "name": "Csővezeték nyomvonala", "terms": "Csővezeték, gázvezeték, kőolajvezeték" @@ -7088,6 +7756,9 @@ "name": "Csatorna", "terms": "kanális" }, + "waterway/canal/lock": { + "name": "Csatorna zsilip" + }, "waterway/dam": { "name": "Völgyzáró gát", "terms": "vízerőmű, tározó, víztározó, gát" @@ -7150,10 +7821,46 @@ } }, "imagery": { + "AGIV": { + "attribution": { + "text": "© agentschap Informatie Vlaanderen" + }, + "name": "AIV Flanders legfrissebb légifelvétel" + }, + "AGIV10cm": { + "attribution": { + "text": "© agentschap Informatie Vlaanderen" + }, + "name": "AIV Flanders 2013-2015 10cm-es légifelvétel" + }, + "AGIVFlandersGRB": { + "attribution": { + "text": "© agentschap Informatie Vlaanderen" + }, + "name": "AIV Flanders GRB" + }, + "AIV_DHMV_II_HILL_25cm": { + "attribution": { + "text": "© agentschap Informatie Vlaanderen" + }, + "name": "AIV Digitaal Hoogtemodel Vlaanderen II, 0,25 m-es többirányú domborzati árnyalás" + }, + "AIV_DHMV_II_SVF_25cm": { + "attribution": { + "text": "© agentschap Informatie Vlaanderen" + } + }, "Bing": { "description": "Műholdképek és légifelvételek", "name": "Bing légifelvételek" }, + "EOXAT2018CLOUDLESS": { + "attribution": { + "text": "Sentinel-2 felhőtlen – https://s2maps.eu készítette: EOX IT Services GmbH (Módosított 2017-es és 2018-as Copernicus Sentinel adatokat tartalmaz)" + }, + "description": "Utófeldolgozott Sentinel műholdas légifelvétel.", + "name": "eox.at 2018 felhőtlen" + }, "EsriWorldImagery": { "attribution": { "text": "Feltételek és visszajelzés" @@ -7182,6 +7889,19 @@ "description": "Műholdképek és légi felvételek", "name": "Mapbox műholdképek" }, + "Maxar-Premium": { + "attribution": { + "text": "Feltételek és visszajelzés" + }, + "name": "Maxar prémium légifelvétel (Béta)" + }, + "Maxar-Standard": { + "attribution": { + "text": "Feltételek és visszajelzés" + }, + "description": "A Maxar normál egy válogatott légifelvétel-készlet, amely a Föld szárazföldjének 86%-át lefedi, 30-60 cm-es felbontással ahol az elérhető, a többi helyen pedig a Landsat adataival van kitöltve. Az átlagéletkor 2,31 év, egyes területek pedig évente kétszer frissülnek.", + "name": "Maxar normál légifelvétel (Béta)" + }, "OSM_Inspector-Addresses": { "attribution": { "text": "© Geofabrik GmbH, OpenStreetMap-közreműködők, CC-BY-SA" @@ -7320,6 +8040,27 @@ "description": "A basemap.at által biztosított ortofotóréteg; a geoimage.at felvételeinek utódja", "name": "basemap.at ortofotó" }, + "basemap.at-overlay": { + "attribution": { + "text": "basemap.at" + }, + "description": "A megnevezéseket a basemap.at biztosítja.", + "name": "basemap.at térképelőtér" + }, + "basemap.at-surface": { + "attribution": { + "text": "basemap.at" + }, + "description": "A felületi réteget a basemap.at biztosítja.", + "name": "basemap.at felület" + }, + "basemap.at-terrain": { + "attribution": { + "text": "basemap.at" + }, + "description": "A domborzati réteget a basemap.at biztosítja.", + "name": "basemap.at domborzat" + }, "eufar-balaton": { "attribution": { "text": "EUFAR Balaton ortofotó 2010" @@ -7350,7 +8091,9 @@ "gsi.go.jp_std_map": { "attribution": { "text": "GSI Japán" - } + }, + "description": "Japán GSI standard térkép. Nagyrészt mindent lefed.", + "name": "Japán GSI standard térkép." }, "helsingborg-orto": { "attribution": { @@ -7388,12 +8131,14 @@ "attribution": { "text": "© Lantmäteriet, CC0" }, + "description": "Svéd ortofotók 1955-1965 között. Egyes képek ennél régebbiek vagy újabbak lehetnek.", "name": "Lantmäteriet történelmi ortofotó, 1960" }, "lantmateriet-orto1975": { "attribution": { "text": "© Lantmäteriet, CC0" }, + "description": "Svéd ortofotók mozaikja 1970-1980 között. Feltöltés alatt.", "name": "Lantmäteriet történelmi ortofotó, 1975" }, "lantmateriet-topowebb": { @@ -7446,6 +8191,7 @@ "attribution": { "text": "© Lantmäteriet" }, + "description": "Szkennelt gazdasági térképek 1950–1980 között", "name": "Lantmäteriet gazdasági térkép 1950–1980" }, "qa_no_address": { @@ -7468,6 +8214,9 @@ "name": "Svéd motoros szán térkép" }, "stamen-terrain-background": { + "attribution": { + "text": "Térképcsempék a Stamen Design által, CC BY 3.0 szerint, adatok OpenStreetMap, ODbL alatt." + }, "name": "Stamen Terrain (terep)" }, "stockholm-orto": { @@ -7495,7 +8244,9 @@ "trafikverket-baninfo-option": { "attribution": { "text": "© Trafikverket, CC0" - } + }, + "description": "Svéd vasúthálózat néhány térkép felület opcióval.", + "name": "Trafikverket vasúthálózat opciók" }, "trafikverket-vagnat": { "attribution": { @@ -7521,7 +8272,9 @@ "trafikverket-vagnat-option": { "attribution": { "text": "© Trafikverket, CC0" - } + }, + "description": "Svéd NVDB úthálózat néhány térkép felület opcióval.", + "name": "Trafikverket úthálózat opciók" } }, "community": { @@ -7676,6 +8429,9 @@ "name": "GeoPhilly", "description": "Térképrajongók találkozója Philadelphia térségében" }, + "ym-The-George-Washington-University": { + "name": "Humanitarian Mapping Society" + }, "OSM-Facebook": { "name": "OpenStreetMap Facebookon", "description": "A OpenStreetMappel kapcsolatos hírekért és frissítésekért kedvelj minket Facebookon." @@ -7683,7 +8439,7 @@ "OSM-help": { "name": "OpenStreetMap Súgó", "description": "Tegyél fel kérdéseket az OSM közösségi kérdezz-felelek oldalán.", - "extendedDescription": "{url} elérhető bárkinek, aki OpenStreetMappel kapcsolatban szeretne segítéseget. Ha kezdő szerkesztő vagy, vagy technikai kérdésed van, szívesen segítünk!" + "extendedDescription": "{url} elérhető bárkinek, aki OpenStreetMappel kapcsolatban szeretne segítséget. Ha kezdő szerkesztő vagy, vagy technikai kérdésed van, szívesen segítünk!" }, "OSM-Reddit": { "name": "OpenStreetMap Redditen" diff --git a/dist/locales/is.json b/dist/locales/is.json index 69e0d13460..82e1cd5d9d 100644 --- a/dist/locales/is.json +++ b/dist/locales/is.json @@ -2332,12 +2332,6 @@ "undefined": "Nei" } }, - "iata": { - "label": "IATA" - }, - "icao": { - "label": "ICAO" - }, "incline": { "label": "Halli" }, diff --git a/dist/locales/it.json b/dist/locales/it.json index b9f4afc547..7e98b2b07d 100644 --- a/dist/locales/it.json +++ b/dist/locales/it.json @@ -1952,6 +1952,9 @@ "use_different_layers": { "title": "Usa livelli differenti" }, + "use_different_layers_or_levels": { + "title": "Usa differenti livelli o piani" + }, "use_different_levels": { "title": "Usa livelli differenti" }, @@ -3167,12 +3170,6 @@ "undefined": "No" } }, - "iata": { - "label": "IATA" - }, - "icao": { - "label": "ICAO" - }, "incline": { "label": "Pendenza" }, diff --git a/dist/locales/ja.json b/dist/locales/ja.json index ad86282c52..3abb0fdd0e 100644 --- a/dist/locales/ja.json +++ b/dist/locales/ja.json @@ -1952,6 +1952,9 @@ "use_different_layers": { "title": "別のレイヤを使う" }, + "use_different_layers_or_levels": { + "title": "違うlayerかlevelを使ってください" + }, "use_different_levels": { "title": "別の階を使う" }, @@ -2460,6 +2463,15 @@ "access_simple": { "label": "アクセス制限" }, + "addr/interpolation": { + "label": "補間の種類", + "options": { + "all": "すべて", + "alphabetic": "アルファベット補間", + "even": "最初が奇数", + "odd": "最初が偶数" + } + }, "address": { "label": "住所", "placeholders": { @@ -2650,6 +2662,10 @@ "building": { "label": "建物" }, + "building/levels/underground": { + "label": "地下階数", + "placeholder": "2, 4, 6..." + }, "building/levels_building": { "label": "建物の地上階数", "placeholder": "2, 4, 6..." @@ -3168,10 +3184,10 @@ } }, "iata": { - "label": "IATA" + "label": "IATA空港コード" }, "icao": { - "label": "ICAO" + "label": "ICAO空港コード" }, "incline": { "label": "傾斜" @@ -3673,12 +3689,18 @@ "power_supply": { "label": "電源" }, + "preschool": { + "label": "幼児教育" + }, "produce": { "label": "生産物" }, "product": { "label": "製品" }, + "public_bookcase/type": { + "label": "種類" + }, "railway": { "label": "路線の種類" }, @@ -4337,6 +4359,9 @@ } }, "presets": { + "addr/interpolation": { + "name": "住所補間" + }, "address": { "name": "住所", "terms": "住所" @@ -4430,10 +4455,18 @@ "name": "ヘリパッド", "terms": "ヘリパッド, ヘリコプター発着所, ヘリポート" }, + "aeroway/holding_position": { + "name": "停止ポイント(空港)", + "terms": "停止ポイント, 飛行機, 空港" + }, "aeroway/jet_bridge": { "name": "ボーディング・ブリッジ", "terms": "ボーディング・ブリッジ, 搭乗橋, 空港, 飛行機" }, + "aeroway/parking_position": { + "name": "駐機ポイント(空港)", + "terms": "駐機ポイント, 飛行機, 空港" + }, "aeroway/runway": { "name": "滑走路", "terms": "滑走路" @@ -4639,6 +4672,10 @@ "name": "道場", "terms": "道場, スポーツ, 訓練, 稽古, 練習, 習い事, 教習, トレーニング, 教室, 体操, 運動" }, + "amenity/dressing_room": { + "name": "更衣室", + "terms": "更衣室, 着替え, 脱衣所, ロッカールーム, 試着室" + }, "amenity/drinking_water": { "name": "水飲み場", "terms": "水飲み場, 水道, 飲用水, 飲料水, 飲み水, 蛇口, 公園" @@ -4795,6 +4832,10 @@ "name": "立体駐車場", "terms": "複数階の駐車場, 駐車場, 立体駐車場, 立駐" }, + "amenity/parking/park_ride": { + "name": "パーク&ライド", + "terms": "駐車場, 自動車, パーキング, コインパーキング, パーク&ライド, 通勤, 乗り換え, 公共交通機関" + }, "amenity/parking/underground": { "name": "地下駐車場", "terms": "地下駐車場, 地下, 駐車場" @@ -5347,7 +5388,7 @@ }, "barrier/fence": { "name": "フェンス", - "terms": "フェンス, 柵, 障害物, バリア" + "terms": "フェンス, 柵, 障害物, バリア, 塀, ブロック塀" }, "barrier/fence/railing": { "name": "ガードレール(歩行者用)", @@ -5889,8 +5930,8 @@ "name": "行き先に用事がある緊急車両, 救命" }, "emergency/fire_alarm": { - "name": "火災通報ボックス", - "terms": "火災通報ボックス, 火災通報装置" + "name": "火災放置機", + "terms": "火災通報ボックス, 火災通報装置, 火災放置機, 火事, 消防" }, "emergency/fire_extinguisher": { "name": "消火器", @@ -6998,6 +7039,10 @@ "name": "バンカーサイロ", "terms": "バンカーサイロ, サイロ" }, + "man_made/cairn": { + "name": "ケルン", + "terms": "ケルン,ケアン, 積み石,石積み, 小石" + }, "man_made/chimney": { "name": "煙突", "terms": "煙突" @@ -8411,6 +8456,10 @@ "name": "音響機器店", "terms": "音響機器店, オーディオ店, 音楽" }, + "shop/hobby": { + "name": "ホビーショップ", + "terms": "ホビーショップ, ホビー店, プラモデル, フィギュア, マンガ, ミリタリー, 模型" + }, "shop/houseware": { "name": "家庭用品店", "terms": "雑貨屋, 家庭用品, 日用雑貨, バス用品, お風呂用品, 台所用品, キッチン用品, 生活雑貨, 料理道具, 調理器具, 食器, クッション, 茶碗, 皿, 包丁, ナイフ, フォーク, 箸" @@ -8603,6 +8652,10 @@ "name": "スーパーマーケット", "terms": "スーパーマーケット, スーパー, 買い物, ショッピング" }, + "shop/swimming_pool": { + "name": "プール用品店", + "terms": "プール用品店, スポーツ, 遊泳プール, 店舗, お店" + }, "shop/tailor": { "name": "仕立屋", "terms": "仕立屋, テイラー, 洋裁店, 衣類, 衣料, 仕立て屋, 縫製, 服, スーツ" @@ -8745,6 +8798,10 @@ "name": "観光地", "terms": "観光名所, 見どころ, アトラクション, 見もの, 名所, 旧跡, 名勝, 観光地" }, + "tourism/camp_pitch": { + "name": "キャンプ区画(キャンプ場内)", + "terms": "キャンプ区画, テント, アウトドア" + }, "tourism/camp_site": { "name": "キャンプ場", "terms": "キャンプ場, アウトドア" @@ -9801,6 +9858,10 @@ "description": "YouthMappers chapter at University of Nigeria, Enugu Campus", "extendedDescription": "The LionMappersTeam(LMT)Enugu Campus is an affiliate of YouthMappers Network, with the sole aim of providing members the opportunity to learn and improve their skills in the field of Geoinformatics and to create open geographic data and analysis that addresses locally defined challenges globally. It is a team of volunteers for Crowdsourced Mapping and Geographic Information provision using Openstreetmap, Citizen Science and other Geospatial Technology for research, training and response to resilient community challenges. We are involved in Web-Cartography, GIS and Remote Sensing Applications and ResearchWe are passionate about Volunteered Geographic Information.Paticipatory GIS and Citizen Science.Our major activities include online crowdsourced-Cartography, Field Mapping ,Training workshops and outreaches to High School as well as Humanitarian/Disaster Response Mapping." }, + "osm-africa-telegram": { + "name": "OpenStreetMap Africa Telegram", + "description": "OpenStreetMap Telegram for Africa" + }, "ym-Insititue-d-Enseignement-Superieur-de-Ruhengeri": { "name": "YouthMappers at INES Ruhengeri", "description": "YouthMappers chapter at Insititue d' Enseignement Superieur de Ruhengeri", @@ -9927,6 +9988,10 @@ "description": "YouthMappers chapter at University of Zimbabwe", "extendedDescription": "UzMappersTeam Zimbabwe is a team of Volunteers using OpenStreetMap for Open Data Mapping and Humanitarian Disaster response mapping .The team empowers its members with open source geospatial technology skills." }, + "osm-afghanistan-facebook": { + "name": "OpenStreetMap Afghanistan", + "description": "Improve OpenStreetMap in Afghanistan" + }, "OSM-BGD-facebook": { "name": "OpenStreetMap Bangladesh", "description": "Improve OpenStreetMap in Bangladesh", @@ -10462,6 +10527,10 @@ "name": "OpenStreetMap Kosovo on Telegram", "description": "Semi-official all-Kosovo Telegram public group. We welcome all mappers from anywhere in any language." }, + "lu-mailinglist": { + "name": "Talk-lu Mailing List", + "description": "Official mailing list for the Luxembourgish OSM community" + }, "ym-Universit-Mohammed-V-Rabat": { "name": "Brahmapoutre at Rabat", "description": "YouthMappers chapter at Université Mohammed V Rabat", @@ -10491,6 +10560,14 @@ "name": "OpenStreetMap Poland Forum", "description": "Forum of Polish OpenStreetMap community" }, + "pt-mailinglist": { + "name": "Talk-pt Mailing List", + "description": "Talk-pt is the official mailing list for the Portuguese OSM community" + }, + "pt-telegram": { + "name": "OpenStreetMap Portugal no Telegram", + "description": "Telegram Group of the Portuguese OpenStreetMap community {url}" + }, "si-forum": { "name": "OpenStreetMap Slovenia Forum", "description": "Forum of OpenStreetMap community in Slovenia" @@ -10980,6 +11057,10 @@ "name": "Geography Club", "description": "YouthMappers chapter at Western Michigan University" }, + "geogeeks_perth_meetup": { + "name": "GeoGeeks Perth Meetup", + "description": "Perth-based meetup group for people interested in mapping, geospatial data, and open source. We'll be working on anything that involves a sense of place." + }, "talk-au": { "name": "Talk-au Mailing List", "description": "Place for Aussie mappers to chat" @@ -11036,6 +11117,10 @@ "description": "Join the OpenStreetMap Brasília community on Telegram", "extendedDescription": "Join the community to learn more about OpenStreetMap, ask questions or participate in our meetings. Everyone is welcome!" }, + "OSM-br-discord": { + "name": "OpenStreetMap Brasil Discord", + "description": "Join the OpenStreetMap Brasil community on Discord" + }, "OSM-br-mailinglist": { "name": "Talk-br Mailing List", "description": "A mailing list to discuss OpenStreetMap in Brazil" @@ -11173,6 +11258,18 @@ "name": "Talk-uy Mailing List", "description": "Talk-uy is the official mailing list for the Uruguayan OSM community" }, + "ve-forum": { + "name": "OpenStreetMap VE Forum", + "description": "OpenStreetMap Venezuela web forum" + }, + "ve-mailinglist": { + "name": "Talk-ve Mailing List", + "description": "Talk-ve is the official mailing list for the Venezuelan OSM community" + }, + "ve-telegram": { + "name": "OpenStreetMap Venezuela Telegram", + "description": "Join the OpenStreetMap Venezuela community on Telegram" + }, "LATAM-Facebook": { "name": "OpenStreetMap Latam Facebook", "description": "OpenStreetMap Latam on Facebook" diff --git a/dist/locales/kn.json b/dist/locales/kn.json index 5877c714be..139b4c7674 100644 --- a/dist/locales/kn.json +++ b/dist/locales/kn.json @@ -995,12 +995,6 @@ "hoops": { "placeholder": "1, 2, 4..." }, - "iata": { - "label": "IATA" - }, - "icao": { - "label": "ICAO" - }, "incline": { "label": "ಬಾಗಿಸು" }, diff --git a/dist/locales/ko.json b/dist/locales/ko.json index 53cefd18fb..876e359bcc 100644 --- a/dist/locales/ko.json +++ b/dist/locales/ko.json @@ -2571,12 +2571,6 @@ "undefined": "아니오" } }, - "iata": { - "label": "IATA" - }, - "icao": { - "label": "ICAO" - }, "incline": { "label": "경사" }, diff --git a/dist/locales/lt.json b/dist/locales/lt.json index 0ae7643266..504398119d 100644 --- a/dist/locales/lt.json +++ b/dist/locales/lt.json @@ -1899,12 +1899,6 @@ "undefined": "Ne" } }, - "iata": { - "label": "IATA" - }, - "icao": { - "label": "ICAO" - }, "incline": { "label": "Nuolydis" }, diff --git a/dist/locales/lv.json b/dist/locales/lv.json index 04c6276147..948b098f2f 100644 --- a/dist/locales/lv.json +++ b/dist/locales/lv.json @@ -1423,12 +1423,6 @@ "undefined": "Nē" } }, - "iata": { - "label": "IATA" - }, - "icao": { - "label": "ICAO" - }, "incline": { "label": "Slīpums" }, diff --git a/dist/locales/mk.json b/dist/locales/mk.json index beedc7dedf..5889851507 100644 --- a/dist/locales/mk.json +++ b/dist/locales/mk.json @@ -271,6 +271,7 @@ "single": "Не може да се оддели бидејќи не е наполно видливо." }, "not_connected": "Нема доволно линии/подрачја за одделување.", + "not_downloaded": "Не може да се одврзе бидејќи не е наполно преземено.", "connected_to_hidden": "Не може да се оддели бидејќи е поврзано со скриен елемент.", "relation": "Не може да се оддели бидејќи поврзува членови на однос." }, @@ -312,6 +313,10 @@ "connected_to_hidden": { "single": "Овој елемент не може да се премести бидејќи е поврзан со скриен елемент.", "multiple": "Овие елементи не можат да се преместат бидејќи се поврзани со скриени елементи." + }, + "not_downloaded": { + "single": "Не може да се премести бидејќи не е наполно преземено.", + "multiple": "Не можат да се преместат бидејќи не се наполно преземени." } }, "reflect": { @@ -354,6 +359,10 @@ "connected_to_hidden": { "single": "Овој елемент не може да се преслика бидејќи не е поврзан со скриен елемент.", "multiple": "Овие елементи не можат да се пресликаат бидејќи се поврзани со скриени елементи." + }, + "not_downloaded": { + "single": "Не може да се одрази бидејќи не е наполно преземено.", + "multiple": "Не можат да се одразат бидејќи не се наполно преземени." } }, "rotate": { @@ -379,6 +388,10 @@ "connected_to_hidden": { "single": "Овој елемент не може да се сврти бидејќи е поврзан со скриен елемент.", "multiple": "Овие елементи не можат да се свртат бидејќи се поврзани со скриени елементи." + }, + "not_downloaded": { + "single": "Не може да се сврти бидејќи не е наполно преземено.", + "multiple": "Не можат да се свртат бидејќи не се наполно преземени." } }, "reverse": { @@ -412,6 +425,7 @@ }, "extract": { "title": "Извади", + "key": "ИГД", "description": { "vertex": { "single": "Извади ја точкава од нејзините матички линии/подрачја." @@ -604,6 +618,7 @@ }, "geocoder": { "search": "Пребарај по светот...", + "no_results_visible": "На подрачјево нема видливи исходни ставки", "no_results_worldwide": "Не најдов ништо" }, "geolocate": { @@ -850,6 +865,12 @@ } } }, + "restore": { + "heading": "Имате незачувани промени", + "description": "Дали сакате да ги повратите незачуваните промени од претходното уредување?", + "restore": "Поврати ги промените", + "reset": "Отфрли ги промените" + }, "save": { "title": "Зачувај", "help": "Прегледајте ги направените промени и подигнете ги на OpenStreetMap, со што ќе станат видливи за јавноста.", @@ -884,10 +905,14 @@ } }, "success": { + "just_edited": "Штотуку го уредивте OpenStreetMap!", + "thank_you": "Ви благодариме што ја подобривте картата.", + "thank_you_location": "Ви благодариме што ја подобривте картата околу {where}.", "thank_you_where": { "format": "{place}{separator}{region}", "separator": ", " }, + "help_html": "Вашите промени треба да се појават на OpenStreetMap во рок од неколку минути. Ќе им треба подолго да се појават на други карти.", "help_link_text": "Подробно", "help_link_url": "https://wiki.openstreetmap.org/wiki/FAQ#I_have_just_made_some_changes_to_the_map._How_do_I_get_to_see_my_changes.3F", "view_on_osm": "Погледајте ги промените на OSM", @@ -903,6 +928,12 @@ "okay": "ОК", "cancel": "Откажи" }, + "splash": { + "welcome": "Добре дојдовте на уредникот ID за OpenStreetMap", + "text": "iD е достапна, но моќна алатка за учество во најдобрата слободна карта на светот. Ова е верзијата {version}. Повеќе информации ќе најдете на {website}. Грешките пријавувајте ги на {github}.", + "walkthrough": "Започнете ја прошетката", + "start": "Уреди сега" + }, "source_switch": { "live": "во живо", "lose_changes": "Имате незачувани промени. Ако се префрлите на друг картог. опслужувач, истите ќе се избришат. Дали сигурно сакате да се префрлите на друг опслужувач?", @@ -1457,6 +1488,20 @@ "message": "{feature} има барање „Поправи ме“", "tip": "Најди елементи со ознаки „поправи ме“" }, + "invalid_format": { + "title": "Неважечко форматирање", + "tip": "Најди ознаки со неочекувани формати", + "email": { + "message": "{feature} има неважечка е-пошта.", + "message_multi": "{feature} има повеќе неважечки е-пошти.", + "reference": "Е-поштенските адреси треба да бидат од обликот „user@example.com“." + }, + "website": { + "message": "{feature} има неважечко мрежно место.", + "message_multi": "{feature} има повеќе неважечки мрежни места.", + "reference": "Мрежните места мора да почнуваат со „http“ или „https“." + } + }, "missing_tag": { "title": "Отсутни ознаки", "any": { @@ -1473,6 +1518,10 @@ "incomplete": { "message": "{feature} има непотполни ознаки", "reference": "Некои елементи треба да имаат дополнителни ознаки." + }, + "noncanonical_brand": { + "message": "{feature} делува како марка со нестандардни ознаки", + "reference": "Сите елементи со истата марка треба да се означат на истиот начин." } }, "private_data": { @@ -1592,6 +1641,9 @@ "use_different_layers": { "title": "Користи различни слоеви" }, + "use_different_layers_or_levels": { + "title": "Користи различни слоеви или степени" + }, "use_different_levels": { "title": "Користи различни нивоа" }, @@ -1931,6 +1983,15 @@ "access_simple": { "label": "Дозволен пристап" }, + "addr/interpolation": { + "label": "Вид", + "options": { + "all": "Сите", + "alphabetic": "Азбучно", + "even": "Парни", + "odd": "Непарни" + } + }, "address": { "label": "Адреса", "placeholders": { @@ -2121,6 +2182,10 @@ "building": { "label": "Градба" }, + "building/levels/underground": { + "label": "Подземни катови", + "placeholder": "2, 4, 6..." + }, "building/levels_building": { "label": "Катови на градбата", "placeholder": "2, 4, 6..." @@ -2639,10 +2704,10 @@ } }, "iata": { - "label": "IATA" + "label": "Аеродромски код по IATA" }, "icao": { - "label": "ICAO" + "label": "Аеродромски код по ICAO" }, "incline": { "label": "Наклон" @@ -3144,12 +3209,18 @@ "power_supply": { "label": "Напојување" }, + "preschool": { + "label": "Претшколски" + }, "produce": { "label": "Пилјарска стока" }, "product": { "label": "Производи" }, + "public_bookcase/type": { + "label": "Вид" + }, "railway": { "label": "Вид" }, @@ -3808,6 +3879,9 @@ } }, "presets": { + "addr/interpolation": { + "name": "Вметнување на адреси" + }, "address": { "name": "Адреса" }, @@ -3880,9 +3954,15 @@ "aeroway/helipad": { "name": "Хеликоптерско слетувалиште" }, + "aeroway/holding_position": { + "name": "Чекална положба на леталото" + }, "aeroway/jet_bridge": { "name": "Авионски пристапен мост" }, + "aeroway/parking_position": { + "name": "Паркирна положба на леталото" + }, "aeroway/runway": { "name": "Писта" }, @@ -4039,6 +4119,9 @@ "amenity/dojo": { "name": "Училиште за боречки вештини" }, + "amenity/dressing_room": { + "name": "Соблекувална" + }, "amenity/drinking_water": { "name": "Пивка вода" }, @@ -4159,6 +4242,9 @@ "amenity/parking/multi-storey": { "name": "Катна гаража" }, + "amenity/parking/park_ride": { + "name": "Преодно паркиралиште" + }, "amenity/parking/underground": { "name": "Подземно паркиралиште" }, @@ -5846,6 +5932,9 @@ "man_made/bunker_silo": { "name": "Бункерски силос" }, + "man_made/cairn": { + "name": "Могила" + }, "man_made/chimney": { "name": "Оџак" }, @@ -6926,6 +7015,9 @@ "shop/hifi": { "name": "Продавница за аудиоопрема" }, + "shop/hobby": { + "name": "Хобистичка продавница" + }, "shop/houseware": { "name": "Продавница за домот" }, @@ -7071,6 +7163,9 @@ "shop/supermarket": { "name": "Супермаркет" }, + "shop/swimming_pool": { + "name": "Базенски залихи" + }, "shop/tailor": { "name": "Кројач" }, @@ -7179,6 +7274,9 @@ "tourism/attraction": { "name": "Знаменитост" }, + "tourism/camp_pitch": { + "name": "Логориште" + }, "tourism/camp_site": { "name": "Камп" }, diff --git a/dist/locales/ms.json b/dist/locales/ms.json index 1ab6934fc9..3bf3c69c5f 100644 --- a/dist/locales/ms.json +++ b/dist/locales/ms.json @@ -1280,12 +1280,6 @@ "label": "Gelung", "placeholder": "1, 2, 4..." }, - "iata": { - "label": "IATA" - }, - "icao": { - "label": "ICAO" - }, "incline": { "label": "Kecenderungan, Kecondongan" }, diff --git a/dist/locales/nl.json b/dist/locales/nl.json index fc470317a6..606acedd80 100644 --- a/dist/locales/nl.json +++ b/dist/locales/nl.json @@ -2806,12 +2806,6 @@ "undefined": "Nee" } }, - "iata": { - "label": "IATA" - }, - "icao": { - "label": "ICAO" - }, "incline": { "label": "Helling" }, diff --git a/dist/locales/no.json b/dist/locales/no.json index a88e39de83..69fa8929e9 100644 --- a/dist/locales/no.json +++ b/dist/locales/no.json @@ -1517,12 +1517,6 @@ "undefined": "Nei" } }, - "iata": { - "label": "IATA" - }, - "icao": { - "label": "ICAO" - }, "incline": { "label": "Stigning" }, diff --git a/dist/locales/pl.json b/dist/locales/pl.json index d24d13064b..afb3f71291 100644 --- a/dist/locales/pl.json +++ b/dist/locales/pl.json @@ -1952,6 +1952,9 @@ "use_different_layers": { "title": "Ustaw różne warstwy (tag layer)" }, + "use_different_layers_or_levels": { + "title": "Ustaw różne warstwy lub kondygnacje" + }, "use_different_levels": { "title": "Ustaw różne kondygnacje" }, @@ -2460,6 +2463,15 @@ "access_simple": { "label": "Dozwolony wstęp" }, + "addr/interpolation": { + "label": "Rodzaj", + "options": { + "all": "Wszystkie", + "alphabetic": "Alfabetycznie", + "even": "Parzyste", + "odd": "Nieparzyste" + } + }, "address": { "label": "Adres", "placeholders": { @@ -2650,6 +2662,10 @@ "building": { "label": "Budynek" }, + "building/levels/underground": { + "label": "Kondygnacje podziemne", + "placeholder": "2, 4, 6..." + }, "building/levels_building": { "label": "Liczba kondygnacji", "placeholder": "2, 4, 6..." @@ -3168,10 +3184,10 @@ } }, "iata": { - "label": "IATA" + "label": "Kod lotniska - IATA" }, "icao": { - "label": "ICAO" + "label": "Kod lotniska - ICAO" }, "incline": { "label": "Nachylenie" @@ -3497,10 +3513,10 @@ "placeholder": "24/7, sunrise-sunset, Mo-Sa 08:00-20:00" }, "operator": { - "label": "Operator" + "label": "Zarządca" }, "operator/type": { - "label": "Operator (rodzaj)" + "label": "Zarządca (rodzaj)" }, "outdoor_seating": { "label": "Ogródek restauracyjny" @@ -3673,12 +3689,18 @@ "power_supply": { "label": "Zasilacz" }, + "preschool": { + "label": "Przedszkole" + }, "produce": { "label": "Produkt rolny" }, "product": { "label": "Produkty" }, + "public_bookcase/type": { + "label": "Typ" + }, "railway": { "label": "Rodzaj" }, @@ -4337,6 +4359,9 @@ } }, "presets": { + "addr/interpolation": { + "name": "Interpolacja adresów" + }, "address": { "name": "Adres", "terms": "namiar, numer" @@ -4430,10 +4455,18 @@ "name": "Lądowisko dla helikopterów", "terms": "lądowisko dla helikopterów, lądowisko dla śmigłowców, śmigłowiec, lotnisko" }, + "aeroway/holding_position": { + "name": "Punkt oczekiwania dla samolotu", + "terms": "punkt oczekiwania dla samolotu, pozycja oczekiwania dla samolotu, holding position" + }, "aeroway/jet_bridge": { "name": "Rękaw lotniczy", "terms": "rękaw lotniczy, pomost lotniczy" }, + "aeroway/parking_position": { + "name": "Miejsce postoju samolotu", + "terms": "miejsce postoju samolotu, miejsce postoju dla samolotu, pozycja parkowania dla samolotu, pozycja parkowania samolotu" + }, "aeroway/runway": { "name": "Pas startowy", "terms": "droga startowa, pas startowy, rozbieg" @@ -4639,6 +4672,10 @@ "name": "Dojo/szkoła sztuk walki", "terms": "Dojo, szkoła walki" }, + "amenity/dressing_room": { + "name": "Przebieralnia", + "terms": "przebieralnia, szatnia" + }, "amenity/drinking_water": { "name": "Woda pitna", "terms": "wodotrysk,woda pitna,poidło" @@ -4795,6 +4832,10 @@ "name": "Parking wielopoziomowy", "terms": "parking wielopiętrowy,samochód,parking wewnętrzny,parking wielopoziomowy,budynek parkingu,pokład parkingowy,garaż parkingowy,rampa parkingowa,struktura parkingowa" }, + "amenity/parking/park_ride": { + "name": "Parking \"parkuj i jedź\"", + "terms": "parking parkuj i jedź, park & ride, p&r" + }, "amenity/parking/underground": { "name": "Parking podziemny", "terms": "parking podziemny, parking samochodowy" @@ -5074,7 +5115,7 @@ }, "amenity/social_facility/homeless_shelter": { "name": "Schronisko dla bezdomnych", - "terms": "przytułek dla bezdomnych" + "terms": "schronisko dla bezdomnych, przytułek dla bezdomnych, noclegownia" }, "amenity/social_facility/nursing_home": { "name": "Dom opieki", @@ -5125,7 +5166,7 @@ }, "amenity/university": { "name": "Teren uczelni", - "terms": "teren uniwersytetu,teren akademii,teren politechniki" + "terms": "teren uniwersytetu, teren akademii, teren politechniki, uniwersytet, akademia, politechnika, uczelnia, wydział, instytut" }, "amenity/vehicle_inspection": { "name": "Stacja kontroli pojazdów", @@ -5591,7 +5632,7 @@ "terms": "ruiny,wyburzony" }, "building/school": { - "name": "Budynek wyglądający jak szkoła", + "name": "Budynek szkolny", "terms": "budynek szkolny" }, "building/semidetached_house": { @@ -5880,7 +5921,7 @@ }, "emergency/defibrillator": { "name": "Defibrylator", - "terms": "defibrylator" + "terms": "defibrylator aed" }, "emergency/designated": { "name": "Wyznaczony dojazd dla służb ratowniczych" @@ -6637,7 +6678,7 @@ }, "leisure/amusement_arcade": { "name": "Salon gier", - "terms": "salon gier,automaty wrzutowe,gry wideo,symulatory jazdy,pinball" + "terms": "salon gier, automaty wrzutowe, gry wideo, gry video, symulatory jazdy, symulatory jazdy, symulator lotu, pinball, wirtualna rzeczywistość, rzeczywistość wirtualna" }, "leisure/bandstand": { "name": "Estrada", @@ -6877,7 +6918,7 @@ }, "leisure/pitch/table_tennis": { "name": "Stół do tenisa stołowego", - "terms": "stół do ping ponga" + "terms": "stół do tenisa stołowego, stół do ping ponga, stół do ping-ponga, stół do pingponga, tenis stołowy" }, "leisure/pitch/tennis": { "name": "Kort tenisowy", @@ -6998,6 +7039,10 @@ "name": "Silos", "terms": "silos,zbiornik,magazyn" }, + "man_made/cairn": { + "name": "Kopiec", + "terms": "kopiec kamieni" + }, "man_made/chimney": { "name": "Komin", "terms": "kominek" @@ -8411,6 +8456,10 @@ "name": "Sklep ze sprzętem hi-fi", "terms": "hi-fi, hifi, audio, stereo, wieże, głośniki, wzmacniacze, amplitunery" }, + "shop/hobby": { + "name": "Sklep hobbystyczny", + "terms": "sklep hobbystyczny" + }, "shop/houseware": { "name": "Sklep z małymi artykułami gospodarstwa domowego", "terms": "sztućce, garnki, artykuły kuchenne, małe agd" @@ -8603,6 +8652,10 @@ "name": "Supermarket", "terms": "supermarket,biedronka,netto,dino" }, + "shop/swimming_pool": { + "name": "Sklep z akcesoriami do basenów", + "terms": "Sklep z akcesoriami do basenów, akcesoria do basenów, materiały do basenów, baseny" + }, "shop/tailor": { "name": "Krawiec", "terms": "krawiec, krawcowa, szycie na miarę, odzież na miarę, rzemiosło, rzemieślnik, rzemieślnicy" @@ -8656,11 +8709,11 @@ }, "shop/video": { "name": "Sklep/wypożyczalnia z filmami wideo/dvd", - "terms": "filmy wideo, filmy dvd, filmy bluray" + "terms": "sklep z filmami, wypożyczalnia filmów, filmy wideo, filmy video, filmy dvd, filmy blu-ray, vhs" }, "shop/video_games": { "name": "Sklep z grami wideo", - "terms": "gry wideo" + "terms": "sklep z grami wideo, gry wideo, gry video, gry komputerowe, gry konsolowe, gry na konsole" }, "shop/watches": { "name": "Sklep z zegarkami", @@ -8707,7 +8760,7 @@ }, "tourism/apartment": { "name": "Mieszkanie na wynajem", - "terms": "aparatament na wynajem, apartamenty na wynajem, mieszkanie na wynajem, mieszkania na wynajem, apartament, apartamenty, do wynajęcia" + "terms": "mieszkanie na wynajem, mieszkania na wynajem, apartament na wynajem, apartamenty na wynajem, apartament, apartamenty, do wynajęcia, nocleg" }, "tourism/aquarium": { "name": "Akwarium", @@ -8745,6 +8798,10 @@ "name": "Atrakcja turystyczna", "terms": "atrakcja turystyczna" }, + "tourism/camp_pitch": { + "name": "Miejsce na kempingu", + "terms": "miejsce na kempingu, miejsce na rozbicie namiotu, miejsce na namiot, miejsce na kampera" + }, "tourism/camp_site": { "name": "Kemping", "terms": "kemping, pole kempingowe, pole namiotowe" @@ -9626,7 +9683,8 @@ "name": "Eco-Club" }, "ym-University-of-Ghana": { - "name": "YouthMappers z Uniwersytetu w Ghanie" + "name": "YouthMappers z Uniwersytetu w Ghanie", + "description": "Oddział YouthMappers na Uniwersytecie w Ghanie" }, "ym-University-of-Mines-and-Technology": { "name": "YouthMappers UMaT" @@ -9640,6 +9698,9 @@ "ym-Dedan-Kimathi-University-of-Technology": { "name": "GDEV" }, + "ym-University-of-Nairobi": { + "description": "Oddział YouthMappers na Uniwersytecie w Nairobi" + }, "ym-African-Methodist-Episcopal-University": { "name": "YouthMappers-AMEU" }, @@ -9654,6 +9715,9 @@ "name": "Lista dyskusyjna Talk-mg", "description": "Miejsce rozmów twórców, społeczności i użytkowników OpenStreetMap na Madagaskarze." }, + "ym-University-of-Malawi": { + "description": "Oddział YouthMappers na Uniwersytecie w Malawi" + }, "ym-Ignatius-Ajuru-University-of-Education": { "name": "IgnatiusMappersTeam (IMT)" }, @@ -9666,6 +9730,10 @@ "ym-University-of-Nigeria-Enugu-Campus": { "name": "LionMappersTeam (LMT) Enugu" }, + "osm-africa-telegram": { + "name": "OpenStreetMap Afryka na Telegramie", + "description": "Kanał OpenStreetMap Afryka na Telegramie" + }, "ym-Insititue-d-Enseignement-Superieur-de-Ruhengeri": { "name": "YouthMappers z INES Ruhengeri" }, @@ -9678,17 +9746,34 @@ "ym-Njala-University-Njala-Campus": { "name": "YouthMappers Njala University, Njala Campus" }, + "ym-University-of-Pretoria": { + "description": "Oddział YouthMappers na Uniwersytecie w Pretorii" + }, "ym-Sokoine-University-of-Agriculture": { "name": "SMCoSE YouthMappers" }, "ym-University-of-Dar-es-Salaam": { "name": "YouthMappers na Uniwersytecie Dar es Salaam" }, + "ym-The-University-of-Zambia": { + "description": "Oddział YouthMappers na Uniwersytecie w Zambii" + }, + "ym-University-of-Zimbabwe": { + "name": "UZMappers", + "description": "Oddział YouthMappers na Uniwersytecie w Zimbabwe" + }, + "osm-afghanistan-facebook": { + "name": "OpenStreetMap Afganistan", + "description": "Ulepsz OpenStreetMap w Afganistanie" + }, "OSM-BGD-facebook": { "name": "OpenStreetMap Bangladesz", "description": "Ulepsz OpenStreetMap w Bangladeszu", "extendedDescription": "Mapujesz w Bangladeszu? Masz pytania lub chcesz dołączyć do naszej społeczności? Wejdź na {url}. Zapraszamy wszystkich!" }, + "ym-Khulna-University": { + "name": "OpenStreetMap" + }, "OSM-India-facebook": { "name": "OpenStreetMap Indie – Uczestniczący w mapowaniu sąsiedztwa", "description": "Ulepsz OpenStreetMap w Indiach", @@ -9753,6 +9838,12 @@ "description": "Ulepsz OpenStreetMap w Indonezji", "extendedDescription": "Mapujesz w Indonezji? Masz pytania lub chcesz dołączyć do naszej społeczności? Wejdź na {url}. Zapraszamy wszystkich!" }, + "ym-Universitas-Negeri-Makassar": { + "name": "Kontur Geografi" + }, + "ym-University-Muhammadiyah-Surakarta": { + "name": "SpaceTime" + }, "osm-iran-aparat": { "name": "OpenStreetMap Iran Aparat", "description": "Subskrybuj nasz kanał: {url}", @@ -9810,6 +9901,9 @@ "description": "Ulepsz OpenStreetMap w Nepalu", "extendedDescription": "Mapujesz w Nepalu? Masz pytania lub chcesz dołączyć do naszej społeczności? Wejdź na {url}. Zapraszamy wszystkich!" }, + "ym-Kathmandu-University": { + "description": "Oddział YouthMappers na Uniwersytecie w Katmandu" + }, "OSM-Asia-mailinglist": { "name": "Lista dyskusyjna OpenStreetMap Azja", "description": "Talk-asia to oficjalna lista dyskusyjna azjatyckiej społeczności" @@ -9923,8 +10017,8 @@ }, "be-irc": { "name": "OpenStreetMap Belgia na IRC", - "description": "Dołącz do #osmbe na irc.oftc.net (port 6667)", - "extendedDescription": "Dołącz do #osmbe na irc.oftc.net (port 6667), który jest połączony z kanałem Matrixa" + "description": "Wejdź na kanał #osmbe na irc.oftc.net (port 6667)", + "extendedDescription": "Wejdź na kanał #osmbe na irc.oftc.net (port 6667), który jest połączony z kanałem Matrixa" }, "be-mailinglist": { "name": "Lista dyskusyjna Talk-be", @@ -9950,7 +10044,7 @@ }, "hr-irc": { "name": "OpenStreetMap Chorwacja na IRC", - "description": "Dołącz do #osm-hr na irc.freenode.org (port 6667)" + "description": "Wejdź na kanał do #osm-hr na irc.freenode.org (port 6667)" }, "hr-mailinglist": { "name": "Lista dyskusyjna Talk-hr", @@ -9978,19 +10072,22 @@ }, "dk-irc": { "name": "OpenStreetMap Dania na IRC", - "description": "Dołącz do #osm-dk na irc.oftc.net (port 6667)" + "description": "Wejdź na kanał #osm-dk na irc.oftc.net (port 6667)" }, "dk-mailinglist": { "name": "Lista dyskusyjna Talk-dk", "description": "Lista dyskusyjna OpenStreetMap w Danii" }, + "ym-Queen-Mary-University-of-London": { + "description": "Oddział YouthMappers na Queen Mary University of London" + }, "fi-forum": { "name": "Forum OpenStreetMap FI", "description": "Forum www OpenStreetMap Finlandia" }, "fi-irc": { "name": "OpenStreetMap Finlandia na IRC", - "description": "Dołącz do #osm-fi na irc.oftc.net (port 6667)" + "description": "Wejdź na kanał #osm-fi na irc.oftc.net (port 6667)" }, "fi-mailinglist": { "name": "Lista dyskusyjna Talk-fi", @@ -10006,7 +10103,7 @@ }, "fr-irc": { "name": "OpenStreetMap Francja na IRC", - "description": "Dołącz do #osm-fr na irc.oftc.net (port 6667)" + "description": "Wejdź na kanał #osm-fr na irc.oftc.net (port 6667)" }, "fr-mailinglist": { "name": "Lista dyskusyjna Talk-fr", @@ -10038,7 +10135,7 @@ }, "de-irc": { "name": "OpenStreetMap Niemcy na IRC", - "description": "Dołącza do #osm-de na irc.oftc.net (port 6667)" + "description": "Wejdź na kanał #osm-de na irc.oftc.net (port 6667)" }, "de-mailinglist": { "name": "Lista dyskusyjna Talk-de", @@ -10056,6 +10153,9 @@ "name": "OpenStreetMap Niemcy", "description": "Platofrma z informacjami o OpenStreetMap w Niemczech" }, + "ym-Heidelberg-University": { + "description": "Oddział YouthMappers na Uniwersytecie w Heidelbergu" + }, "hu-facebook": { "name": "OpenStreetMap HU na Facebooku", "description": "Mapujący i OpenStreetMap Węgry na Facebooku" @@ -10074,7 +10174,7 @@ }, "is-mailinglist": { "name": "Lista dyskusyjna Talk-is", - "description": "Talk-be to oficjalna lista dyskusyjna islandzkiej społeczności OSM" + "description": "Talk-is to oficjalna lista dyskusyjna islandzkiej społeczności OSM" }, "is-twitter": { "name": "OSM Islandia na Twitterze", @@ -10086,11 +10186,11 @@ }, "it-irc": { "name": "OpenStreetMap Włochy na IRC", - "description": "Dołącz do #osm-it na irc.oftc.net (port 6667)" + "description": "Wejdź na kanał #osm-it na irc.oftc.net (port 6667)" }, "it-mailinglist": { "name": "Lista dyskusyjna Talk-it", - "description": "Talk-at to oficjalna lista dyskusyjna włoskiej społeczności OSM" + "description": "Talk-it to oficjalna lista dyskusyjna włoskiej społeczności OSM" }, "it-telegram": { "name": "@OpenStreetMapItalia na Telegramie", @@ -10118,10 +10218,18 @@ "name": "Lista dyskusyjna OpenStreetMap dla Trydentu", "description": "Regionalna lista dyskusyjna OpenStreetMap Włochy dla Trydentu" }, + "ym-Politecnico-di-Milano": { + "name": "PoliMappers", + "description": "Oddział YouthMappers na Politechnice w Milanie" + }, "kosovo-telegram": { - "name": "OpenStreetMap Kosowa na Telegramie", + "name": "OpenStreetMap Kosowo na Telegramie", "description": "Półoficjalna grupa publiczna na Telegramie dla Kosowa i okolic. Zapraszamy wszystkich mapujących z dowolnego kraju i z dowolnym językiem." }, + "lu-mailinglist": { + "name": "Lista dyskusyjna Talk-lu", + "description": "Oficjalna lista dyskusyjna luksemburskiej społeczności OSM" + }, "no-forum": { "name": "Forum www OpenStreetMap Norwegia", "description": "Forum www OpenStreetMap Norwegia" @@ -10146,6 +10254,14 @@ "name": "Forum OpenStreetMap Polska", "description": "Forum dyskusyjne polskiej społeczności OpenStreetMap" }, + "pt-mailinglist": { + "name": "Lista dyskusyjna Talk-pt", + "description": "Talk-pt to oficjalna lista dyskusyjna portugalskiej społeczności OSM" + }, + "pt-telegram": { + "name": "OpenStreetMap Portugalia na Telegramie", + "description": "Grupa na Telegramie portugalskiej społeczności OpenStreetMap {url}" + }, "si-forum": { "name": "Forum OpenStreetMap Słowenia", "description": "Forum społeczności OpenStreetMap w Słowenii" @@ -10166,6 +10282,9 @@ "name": "@OSMes na Telegramie", "description": "Kanał OpenStreetMap Hiszpania na Telegramie" }, + "ym-Universidad-Politcnica-de-Madrid": { + "description": "Oddział YouthMappers na Politechnice w Madrycie" + }, "osm-se": { "name": "OpenStreetMap.se", "description": "Zapewniaj usługi OSM i informacje dla lokalnej społeczności w Szwecji" @@ -10180,7 +10299,7 @@ }, "se-irc": { "name": "OpenStreetMap Szwecja na IRC", - "description": "Dołącz do #osm.se na irc.oftc.net (port 6667)" + "description": "Wejdź na kanał #osm.se na irc.oftc.net (port 6667)" }, "se-mailinglist": { "name": "Lista dyskusyjna Talk-se", @@ -10206,8 +10325,14 @@ }, "gb-irc": { "name": "OpenStreetMap Zjednoczone Królestwo na IRC", - "description": "Dołącz do #osm-gb na irc.oftc.net (port 6667)", - "extendedDescription": "Dołącz do #osm-gb na irc.oftc.net (port 6667), prosimy o cierpliwość i chwilę oczekiwania po zadaniu pytania" + "description": "Wejdź na kanał #osm-gb na irc.oftc.net (port 6667)", + "extendedDescription": "Wejdź na kanał #osm-gb na irc.oftc.net (port 6667), prosimy o cierpliwość i chwilę oczekiwania po zadaniu pytania" + }, + "ym-University-of-Exeter": { + "description": "Oddział YouthMappers na Uniwersytecie w Exeter" + }, + "ym-University-of-Warwick": { + "description": "Oddział YouthMappers na Uniwersytecie w Warwick" }, "OSM-CA-Slack": { "name": "OSM-CA na Slacku", @@ -10228,6 +10353,9 @@ "ym-Universidad-Nacional-de-Ingenieria": { "name": "Yeka Street MGA" }, + "ym-University-of-Panama": { + "description": "Oddział YouthMappers na Uniwersytecie w Panamie" + }, "Bay-Area-OpenStreetMappers": { "name": "Mapujący OpenStreetMap z Bay Area", "description": "Ulepsz OpenStreetMap w Bay Area", @@ -10376,19 +10504,59 @@ "description": "Mapujący i użytkownicy OpenStreetMap z okolic Grand Junction", "extendedDescription": "Celem tej grupy jest przedstawienie OpenStreetMap społeczności, utworzenie wspólnoty mapujących, stworzenie najbardziej niesamowitych danych geograficznych używając wszystkich dostępnych metod, które znamy i ostatecznie zintegrowanie tego wszystkiego, aby przedstawić nasze osiągnięcia. Wyobraź sobie dokładne oznakowania szlaków! Wyobraź sobie dalszy rozwój ścieżek rowerowych! Wyobraź sobie cokolwiek chcesz! To jest właśnie radość z OpenStreetMap!" }, + "ym-George-Mason-University": { + "name": "Mason Mappers", + "description": "Oddział YouthMappers na George Mason University" + }, + "ym-Kansas-State-University": { + "description": "Oddział YouthMappers na Uniwersytecie Stanowym Kansas" + }, + "ym-Miami-University": { + "description": "Oddział YouthMappers na Uniwersytecie Miami w Oxford, Ohio" + }, + "ym-Montgomery-College": { + "name": "GeoMC" + }, + "ym-New-York-University": { + "description": "Oddział YouthMappers na Uniwersytecie Nowojorskim" + }, + "ym-State-University-of-New-York-Geneseo": { + "name": "Stowarzyszenie SUNY Geneseo GIS" + }, + "ym-SUNY-at-Fredonia": { + "name": "Geoventurers" + }, + "ym-The-Pennsylvania-State-University": { + "description": "Oddział YouthMappers na Uniwersytecie Stanowym Pensylwanii" + }, "ym-University-of-California-Davis": { "name": "Mapping Club" }, + "ym-University-of-Chicago": { + "description": "Oddział YouthMappers na Uniwersytecie Chicagowskim" + }, "ym-University-of-Southern-California": { "name": "SC Mappers" }, "ym-UW-Madison": { "name": "BadgerMaps" }, + "ym-Vassar-College": { + "name": "Hudson Valley Mappers" + }, + "ym-Western-Michigan-University": { + "name": "Geography Club" + }, + "geogeeks_perth_meetup": { + "name": "Spotkania GeoGeeks Perth" + }, "talk-au": { "name": "Lista dyskusyjna Talk-au", "description": "Miejsce rozmów mapujących z Aussie" }, + "talk-nz": { + "name": "Lista dyskusyjna Talk-nz" + }, "OSM-AR-facebook": { "name": "OpenStreetMap Argentyna na Facebooku", "description": "Dołącz do społeczności OpenStreetMap Argentyna na Facebooku", @@ -10401,7 +10569,7 @@ }, "OSM-AR-irc": { "name": "OpenStreetMap Argentyna na IRC", - "description": "Dołącz do #osm-ar na irc.oftc.net (port 6667)", + "description": "Wejdź na kanał #osm-ar na irc.oftc.net (port 6667)", "extendedDescription": "Możesz znaleźć największego geeka w społeczności." }, "OSM-AR-mailinglist": { @@ -10433,6 +10601,10 @@ "description": "Dołącz do społeczności OpenStreetMap Brazylia na Telegramie", "extendedDescription": "Dołącz do społeczności, aby dowiedzieć się więcej o OpenStreetMap, zadawać pytania i brać udział w naszych spotkaniach. Zapraszamy wszystkich!" }, + "OSM-br-discord": { + "name": "OpenStreetMap Brazylia na Discord", + "description": "Dołącz do społeczności OpenStreetMap Brazylia na Discord" + }, "OSM-br-mailinglist": { "name": "Lista dyskusyjna Talk-br", "description": "Lista dyskusyjna OpenStreetMap w Brazylii" @@ -10495,6 +10667,15 @@ "name": "OpenStreetMap Kolumbia", "description": "Wiadomości z kolumbijskiej społeczności OpenStreetMap i fundacji OSMCo" }, + "ym-Universidad-de-Antioquia": { + "name": "Geomatica UDEA" + }, + "ym-Universidad-de-La-Guajira": { + "name": "Grupo Mesh" + }, + "ym-Universidad-Nacional-de-Colombia": { + "name": "Grupo UN" + }, "OSM-EC-telegram": { "name": "OSM Ekwador na Telegramie", "description": "Kanał OpenStreetMap Ekwador na Telegramie" @@ -10527,6 +10708,31 @@ "name": "OpenStreetMap Peru", "description": "Wiadomości i zasoby z peruwiańskiej społeczności OpenStreetMap" }, + "uy-forum": { + "name": "Forum OpenStreetMap UY", + "description": "Forum OpenStreetMap Urugwaj" + }, + "uy-irc": { + "name": "OpenStreetMap Urugwaj na IRC", + "description": "Wejdź na kanał #osmuruguay na irc.freenode.org (port 6667)", + "extendedDescription": "Wejdź na kanał #osmuruguay na irc.freenode.org" + }, + "uy-mailinglist": { + "name": "Lista dyskusyjna Talk-uy", + "description": "Talk-uy to oficjalna lista dyskusyjna urugwajskiej społeczności OSM" + }, + "ve-forum": { + "name": "Forum OpenStreetMap VE", + "description": "Forum www OpenStreetMap Wenezuela" + }, + "ve-mailinglist": { + "name": "Lista dyskusyjna Talk-ve", + "description": "Talk-ve to oficjalna lista dyskusyjna wenezuelskiej społeczności OSM" + }, + "ve-telegram": { + "name": "OSM Wenezuela na Telegramie", + "description": "Dołącz do społeczności OpenStreetMap Wenezuela na Telegramie" + }, "LATAM-Facebook": { "name": "OpenStreetMap Latam na Facebooku", "description": "OpenStreetMap Latam na Facebooku" @@ -10565,7 +10771,7 @@ }, "OSM-IRC": { "name": "IRC OpenStreetMap", - "description": "Dołącz do #osm na serwerze irc.oftc.net (port 6667)" + "description": "Wejdź na kanał #osm na irc.oftc.net (port 6667)" }, "OSM-Reddit": { "name": "OpenStreetMap na Reddit", diff --git a/dist/locales/pt-BR.json b/dist/locales/pt-BR.json index 9a495665a9..ec9b256eb6 100644 --- a/dist/locales/pt-BR.json +++ b/dist/locales/pt-BR.json @@ -1952,6 +1952,9 @@ "use_different_layers": { "title": "Use camadas diferentes" }, + "use_different_layers_or_levels": { + "title": "Use camadas ou níveis diferentes" + }, "use_different_levels": { "title": "Use níveis diferentes" }, @@ -2460,6 +2463,15 @@ "access_simple": { "label": "Acesso permitido" }, + "addr/interpolation": { + "label": "Tipo", + "options": { + "all": "Tudo", + "alphabetic": "Alfabético", + "even": "Par", + "odd": "Ímpar" + } + }, "address": { "label": "Endereço", "placeholders": { @@ -2650,6 +2662,10 @@ "building": { "label": "Edifício" }, + "building/levels/underground": { + "label": "Níveis subterrâneos", + "placeholder": "2, 4, 6..." + }, "building/levels_building": { "label": "Níveis do edifício ", "placeholder": "2, 4, 6..." @@ -3168,10 +3184,10 @@ } }, "iata": { - "label": "Código IATA" + "label": "Código do aeroporto IATA" }, "icao": { - "label": "Código ICAO" + "label": "Código do aeroporto da ICAO" }, "incline": { "label": "Declividade" @@ -3673,12 +3689,18 @@ "power_supply": { "label": "Fonte de Energia" }, + "preschool": { + "label": "Educação infantil" + }, "produce": { "label": "Tipo de Produção" }, "product": { "label": "Produtos" }, + "public_bookcase/type": { + "label": "Tipo" + }, "railway": { "label": "Tipo" }, @@ -4337,6 +4359,9 @@ } }, "presets": { + "addr/interpolation": { + "name": "Interpolação de endereços" + }, "address": { "name": "Endereço", "terms": "Endereço" @@ -4429,10 +4454,18 @@ "name": "Heliponto", "terms": "Heliponto, ponto de pouso de helicópteros, Heliporto" }, + "aeroway/holding_position": { + "name": "Posição de retenção de aeronaves", + "terms": "Posição de retenção de aeronaves" + }, "aeroway/jet_bridge": { "name": "Ponte telescópica", "terms": "Ponte telescópica" }, + "aeroway/parking_position": { + "name": "Posição de estacionamento de aeronaves", + "terms": "Posição de estacionamento de aeronaves" + }, "aeroway/runway": { "name": "Pista de Pouso e Decolagem", "terms": "Pista de pouso e decolagem" @@ -4572,7 +4605,7 @@ }, "amenity/clinic": { "name": "Clínica ou Posto de Saúde", - "terms": "Clínica, Consultório, Posto de Saúde, Médico, Atendimento médico especializado, hospital" + "terms": "clínica, consultório, posto de saúde, unidade de saúde, unidade básica de saúde, ubs, pronto atendimento, enfermaria, doutor, médico, atendimento médico especializado, hospital" }, "amenity/clinic/abortion": { "name": "Clínica de Aborto", @@ -4637,6 +4670,10 @@ "name": "Academia de Artes Marciais", "terms": "Judô, Karatê, hapkidô, jiu-jítsu, ju-jitsu boxe, savate, ninjitsu, esgrima, luta olímpica, krav magá, capoeira, artes marciais, luta, taekwondo, kickboxing" }, + "amenity/dressing_room": { + "name": "Vestiário", + "terms": "provador, vestiário, cabine de trocar de roupa" + }, "amenity/drinking_water": { "name": "Bebedouro", "terms": "Água Potável, Bebedouro, fonte" @@ -4735,8 +4772,8 @@ "terms": "Cyber Café" }, "amenity/karaoke": { - "name": "Karaoke Box", - "terms": "Karaoke Box" + "name": "Caixa de Karaokê", + "terms": "Caixa de Karaokê" }, "amenity/kindergarten": { "name": "Pré-escola", @@ -4792,6 +4829,10 @@ "name": "Estacionamento de carros multinível", "terms": "Estacionamento de carros multinível" }, + "amenity/parking/park_ride": { + "name": "Estacionamento Pare e Siga", + "terms": "Parque de estacionamento integrado,parque de estacionamento de incentivo,parque de estacionamento de metro,parque de estacionamento dissuasor,P&R,Park & Ride" + }, "amenity/parking/underground": { "name": "Estacionamento subterrâneo", "terms": "Estacionamento subterrâneo" @@ -5078,7 +5119,7 @@ }, "amenity/studio": { "name": "Estúdio de rádio/TV ou de gravação", - "terms": "Estúdio, rádio, ensaio, música, banda, gravação, TV, cinema, produtora," + "terms": "Estúdio, rádio, ensaio, música, banda, gravação, TV, televisão, filmes, cinema, produtora," }, "amenity/swimming_pool": { "name": "Piscina" @@ -6990,6 +7031,10 @@ "name": "Silo Bunker", "terms": "Bunker de silo" }, + "man_made/cairn": { + "name": "Moledros", + "terms": "Moledros,Moledos,Melédros" + }, "man_made/chimney": { "name": "Chaminé", "terms": "Lareira, Forno, Fábrica, Indústria, Gás" @@ -8287,7 +8332,7 @@ }, "shop/electronics": { "name": "Loja de Eletrônicos", - "terms": "Loja de Eletrônicos, Equipamentos Eletrônicos, TV, Eletrodomésticos" + "terms": "loja de eletrônicos, equipamentos eletrônicos, TV, eletrodomésticos, televisão, bluray, câmera, celular, smartphone, vídeo, computador, áudio, som, rádio" }, "shop/erotic": { "name": "Sex Shop", @@ -8402,6 +8447,10 @@ "name": "Loja de Aparelhos Hi-Fi", "terms": "Loja de Equipamentos de Áudio, Loja de Aparelhos de Alta Fidelidade" }, + "shop/hobby": { + "name": "Loja de passatempo", + "terms": "Loja de passatempo,Loja de hobbies" + }, "shop/houseware": { "name": "Loja de Utensílios Domésticos", "terms": "Loja de utensílios, Loja de acessórios para casa" @@ -8594,6 +8643,10 @@ "name": "Supermercado", "terms": "Supermercado" }, + "shop/swimming_pool": { + "name": "Loja de suprimentos para piscinas", + "terms": "Loja de suprimentos para piscinas" + }, "shop/tailor": { "name": "Alfaiataria", "terms": "Alfaiataria" @@ -8736,6 +8789,10 @@ "name": "Atração Turística", "terms": "ponto turístico, atração turística, parque turístico, turismo" }, + "tourism/camp_pitch": { + "name": "Acampamento de arremesso", + "terms": "Acampamento de arremesso" + }, "tourism/camp_site": { "name": "Local de Acampamento", "terms": "Área de Acampamento, Acampamento, Camping" @@ -10170,6 +10227,10 @@ "description": "Junte-se à comunidade OpenStreetMap Brasília no Telegram", "extendedDescription": "Entre na comunidade para aprender mais sobre o OpenStreetMap, fazer perguntas ou participar dos nossos encontros. Todos são bem-vindos!" }, + "OSM-br-discord": { + "name": "Discord do OpenStreetMap Brasil", + "description": "Junte-se à comunidade do OpenStreetMap Brasil no Discord" + }, "OSM-br-mailinglist": { "name": "Lista de Discussão Talk-br", "description": "Uma lista de discussão para falar sobre o OpenStreetMap no Brasil" diff --git a/dist/locales/pt.json b/dist/locales/pt.json index e33792ac88..3195f559d4 100644 --- a/dist/locales/pt.json +++ b/dist/locales/pt.json @@ -1952,6 +1952,9 @@ "use_different_layers": { "title": "Usar camadas diferentes" }, + "use_different_layers_or_levels": { + "title": "Usar camadas ou níveis diferentes " + }, "use_different_levels": { "title": "Usar níveis diferentes" }, @@ -2424,11 +2427,11 @@ "title": "Destino" }, "dismount": { - "description": "Acesso permitido mas o cavaleiro deve desmontar", + "description": "Acesso permitido, mas o cavaleiro deve desmontar", "title": "Desmontar" }, "no": { - "description": "Acesso não permitido para o público geral", + "description": "Acesso não permitido ao público em geral", "title": "Proibido" }, "permissive": { @@ -2460,6 +2463,15 @@ "access_simple": { "label": "Acesso permitido" }, + "addr/interpolation": { + "label": "Tipo", + "options": { + "all": "Tudo", + "alphabetic": "Alfabética", + "even": "Par", + "odd": "Ímpar" + } + }, "address": { "label": "Morada", "placeholders": { @@ -2650,6 +2662,10 @@ "building": { "label": "Edifício" }, + "building/levels/underground": { + "label": "Níveis no subsolo", + "placeholder": "2, 4, 6..." + }, "building/levels_building": { "label": "Pisos do edifício", "placeholder": "2, 4, 6..." @@ -3168,10 +3184,10 @@ } }, "iata": { - "label": "IATA" + "label": "Código aeroportuário IATA" }, "icao": { - "label": "ICAO" + "label": "Código aeroportuário ICAO" }, "incline": { "label": "Inclinação" @@ -3499,6 +3515,9 @@ "operator": { "label": "Organismo operador" }, + "operator/type": { + "label": "Tipo de operador" + }, "outdoor_seating": { "label": "Cadeiras exteriores" }, @@ -3670,12 +3689,18 @@ "power_supply": { "label": "Fonte de energia" }, + "preschool": { + "label": "Pré-escola" + }, "produce": { "label": "produz" }, "product": { "label": "Produtos" }, + "public_bookcase/type": { + "label": "Tipo" + }, "railway": { "label": "Tipo" }, @@ -4334,6 +4359,9 @@ } }, "presets": { + "addr/interpolation": { + "name": "Interpolação de endereço" + }, "address": { "name": "Morada / nº de porta", "terms": "endereço, morada, endereçamento, código postal, localização, número de porta, nº de porta, n.º de porta, número de polícia, nº de polícia, n.º de polícia, número" @@ -4427,10 +4455,18 @@ "name": "Heliporto / heliponto", "terms": "Helicóptero" }, + "aeroway/holding_position": { + "name": "Ponto de espera de avião", + "terms": "aircraft holding position, ponto de espera de avião, posição de espera de avião" + }, "aeroway/jet_bridge": { "name": "Ponte de embarque", "terms": "jet bridge, jetway, finger, aerobridge, ponte de embarque, ponte telescópica, manga, manga de embarque, ponte de aeroporto" }, + "aeroway/parking_position": { + "name": "Área de estacionamento de avião", + "terms": "aircraft parking position, área de estacionamento de avião, ponto de estacionamento de avião, lugar de estacionamento de avião" + }, "aeroway/runway": { "name": "Pista de aterragem e descolagem", "terms": "Faixa de Aterragem, Pista, Pista de Aeroporto, Pista de Aeródromo, Pista de Aterragem, Pista de Descolagem" @@ -4636,6 +4672,10 @@ "name": "Centro de artes marciais", "terms": "Dojo, Karaté, Taekwondo, Judo, Jiu-jitsu, Jiu-jitsu Brasileiro, Kung Fu, Capoeira, Eskrima, Escrima, Escryma, Muay Thai, Krav Magá, Jeet Kune Do" }, + "amenity/dressing_room": { + "name": "Cabine de provas", + "terms": "changing room, cabine de provas, sala de provas, troca de roupa, trocar de roupa, mudar de roupa" + }, "amenity/drinking_water": { "name": "Água potável", "terms": "fonte de água, água potável, água, bebedouro, bebedoiro, fontanário, fontenário, beber" @@ -4733,6 +4773,10 @@ "name": "Cibercafé", "terms": "cyber café, cyber cafe, cyber-café, cyber-cafe, ciber café, ciber cafe, ciber-café, ciber-cafe, cybercafe, cibercafe, cibercafé, cybercafé, internet café, internet cafe, internet, acesso à internet, wi-fi" }, + "amenity/karaoke": { + "name": "Sala de karaoke", + "terms": "karaoke box, karaoke, caraoque, karaoque, caraoke, noraebang" + }, "amenity/kindergarten": { "name": "Jardim infantil / infantário", "terms": "preschool, kindergarten, grounds, pré-escola, pré escola, creche, jardim de infância, jardim-de-infância, jardim infantil, pré-escola, pré-escolar, infantário" @@ -4788,6 +4832,10 @@ "name": "Garagem de estacionamento multi nível", "terms": "Garagem de estacionamento de vários níveis, silo" }, + "amenity/parking/park_ride": { + "name": "Estacionamento Pare e Siga", + "terms": "Parque de estacionamento integrado,parque de estacionamento de incentivo,parque de estacionamento de metro,parque de estacionamento dissuasor,P&R,Park & Ride" + }, "amenity/parking/underground": { "name": "Estacionamento subterrâneo", "terms": "underground parking, estacionamento subterrâneo, parque de estacionamento subterrâneo, parque subterrâneo, parque de estacionamento, subterrâneo, estacionamento, estacionar" @@ -5941,6 +5989,9 @@ "name": "Vau (ponto de passagem num curso de água baixo)", "terms": "Baixio, Banco, Parel" }, + "ford_line": { + "name": "Vau / almegue" + }, "golf/bunker": { "name": "Banco de areia", "terms": "Sand Trap" @@ -6009,6 +6060,10 @@ "name": "Banco de sangue ", "terms": "Centro de Doação de Sangue, doação de sangue, transfusão de sangue, blood donor center" }, + "healthcare/counselling": { + "name": "Centro de aconselhamento", + "terms": "counselling center, centro de aconselhamento, aconselhamento, aconcelhamento" + }, "healthcare/hospice": { "name": "Unidade de cuidados paliativos", "terms": "hospice, cuidados paliativos, paliativos" @@ -6984,6 +7039,10 @@ "name": "Silo tipo búnquer", "terms": "silo-corredor, funil, silo, búnquer, bunquer, búnker, bunker, armazenamento" }, + "man_made/cairn": { + "name": "Moledros / mariolas", + "terms": "cairn, moledros, moledos, melédros, mariolas, moledro, moledo, melédro, mariola" + }, "man_made/chimney": { "name": "Chaminé", "terms": "Chimney" @@ -7080,6 +7139,10 @@ "name": "Tubagem no subsolo", "terms": "tubo, tubos, pipeline, tubagem, gasoduto, oleoduto, canalização" }, + "man_made/pipeline/valve": { + "name": "Válvula de pipeline", + "terms": "pipeline valve, válvula de pipeline, válvula, torneira, pipeline, oleoduto, gasoduto, tubo, tubagem, canalização" + }, "man_made/pumping_station": { "name": "Estação de bombeamento", "terms": "Pumping Station" @@ -7112,6 +7175,10 @@ "name": "Vértice geodésico / talefe", "terms": "Survey Point" }, + "man_made/torii": { + "name": "Torii", + "terms": "torii, tori, tóri" + }, "man_made/tower": { "name": "Torre", "terms": "Torre, Alto, Tower" @@ -8295,6 +8362,10 @@ "shop/fashion": { "name": "Loja de moda" }, + "shop/fashion_accessories": { + "name": "Loja de acessórios de moda", + "terms": "fashion accessories store, loja de acessórios de moda, acessórios de moda, acessórios, bijuteria, mala, bolsa, chapéu, joalharia, joalheria, óculos de sol, carteira" + }, "shop/fireplace": { "name": "Loja de lareiras", "terms": "Lareira, fogo, lenha" @@ -8385,6 +8456,10 @@ "name": "Loja de alta fidelidade", "terms": "Hifi Store, Som" }, + "shop/hobby": { + "name": "Loja de passatempos", + "terms": "hobby shop, loja de passatempos, loja de hobbys, passatempo, passa-tempo, hobby, hoby, hobi, obby, oby, hobie, obie" + }, "shop/houseware": { "name": "Loja de utensílios", "terms": "Houseware Store, Utensílios Domésticos, Artigos para o Lar, Artigos para Casa, Panelas, Panela, Talheres, Utensílios, Cozinha" @@ -8577,6 +8652,10 @@ "name": "Supermercado / hipermercado", "terms": "Hiper-mercado, Hiper mercado, Super-mercado, Super mercado, Compras, Loja, Alimentar, Alimentos" }, + "shop/swimming_pool": { + "name": "Loja de artigos para piscinas", + "terms": "pool supply store, artigos para piscinas, piscina, picina, pissina, pisina" + }, "shop/tailor": { "name": "Alfaiate", "terms": "Tailor, Vestido, Fato, Roupa" @@ -8719,6 +8798,10 @@ "name": "Atração turística", "terms": "ponto turístico, turismo, atração turística, atração, atracção" }, + "tourism/camp_pitch": { + "name": "Alvéolo de parque de campismo", + "terms": "camp pitch, alvéolo, talhão, secção, parte, parque de campismo" + }, "tourism/camp_site": { "name": "Parque de campismo", "terms": "acampamento, parque, campismo, campistas, acampar" @@ -10069,6 +10152,14 @@ "name": "Fórum OpenStreetMap Polónia", "description": "Fórum da comunidade polaca OpenStreetMap" }, + "pt-mailinglist": { + "name": "Mailing List Talk-pt", + "description": "Talk-pt faz parte da mailing list oficial para a comunidade portuguesa do OSM" + }, + "pt-telegram": { + "name": "OpenStreetMap Portugal no Telegram", + "description": "Grupo do Telegram da comunidade Portuguesa do OpenStreetMap {url}" + }, "si-forum": { "name": "Fórum do OpenStreetMap Eslovénia", "description": "Fórum da comunidade OpenStreetMap na Eslovénia" diff --git a/dist/locales/ro.json b/dist/locales/ro.json index 2a7a660d25..440f94f8f2 100644 --- a/dist/locales/ro.json +++ b/dist/locales/ro.json @@ -1110,12 +1110,6 @@ "undefined": "Nu" } }, - "iata": { - "label": "IATA" - }, - "icao": { - "label": "ICAO" - }, "incline": { "label": "Înclinare" }, diff --git a/dist/locales/ru.json b/dist/locales/ru.json index de7cb73eab..ab61a0722c 100644 --- a/dist/locales/ru.json +++ b/dist/locales/ru.json @@ -205,6 +205,11 @@ }, "downgrade": { "title": "Понизить", + "description": { + "building_address": "Удалить все тэги, кроме адреса и здания.", + "building": "Удалить все тэги, кроме здания.", + "address": "Удалить все тэги, кроме адреса." + }, "annotation": { "building": { "single": "Понизить объект до обычного здания.", @@ -276,7 +281,8 @@ "restriction": "Эти объекты нельзя объединить, потому что это повредит отношение \"{relation}\".", "relation": "Эти объекты нельзя объединить, потому что их роли в отношении конфликтуют друг с другом.", "incomplete_relation": "Эти объекты нельзя объединить, так как хотя бы один из них не был загружен целиком.", - "conflicting_tags": "Эти объекты нельзя объединить, так как некоторые из их тегов содержат конфликтующие значения." + "conflicting_tags": "Эти объекты нельзя объединить, так как некоторые из их тегов содержат конфликтующие значения.", + "paths_intersect": "Объекты нельзя объединить, так как результирующий контур будет пересекаться сам с собой." }, "move": { "title": "Переместить", @@ -303,6 +309,10 @@ "connected_to_hidden": { "single": "Этот объект нельзя переместить, так как он соединён со скрытым объектом.", "multiple": "Эти объекты нельзя переместить, так как они соединёны со скрытыми объектами." + }, + "not_downloaded": { + "single": "Объект нельзя передвинуть, так как его части еще не были загружены.", + "multiple": "Объекты нельзя передвинуть, так как их части еще не были загружены." } }, "reflect": { @@ -345,6 +355,10 @@ "connected_to_hidden": { "single": "Этот объект нельзя отразить, так как он соединён со скрытым объектом.", "multiple": "Эти объекты нельзя отразить, так как они соединёны со скрытыми объектами." + }, + "not_downloaded": { + "single": "Объект нельзя отразить, так как его части еще не были загружены.", + "multiple": "Объекты нельзя отразить, так как их части еще не были загружены." } }, "rotate": { @@ -370,6 +384,10 @@ "connected_to_hidden": { "single": "Этот объект нельзя повернуть, так как он соединён со скрытым объектом.", "multiple": "Эти объекты нельзя повернуть, так как они соединёны со скрытыми объектами." + }, + "not_downloaded": { + "single": "Объект нельзя повернуть, так как его части еще не были загружены.", + "multiple": "Объекты нельзя повернуть, так как их части еще не были загружены." } }, "reverse": { @@ -761,6 +779,7 @@ "tooltip": "Здания, укрытия, гаражи и т.д." }, "building_parts": { + "description": "Части зданий", "tooltip": "3D здания и компоненты крыши" }, "indoor": { @@ -908,7 +927,8 @@ "splash": { "welcome": "Вас приветствует iD — редактор карт OpenStreetMap", "text": "Редактор iD — простой, но мощный инструмент для редактирования лучшей в мире бесплатной открытой карты. Версия программы: {version}. Дополнительную информацию смотрите на {website}, об ошибках сообщайте на {github}.", - "walkthrough": "Начать обучение" + "walkthrough": "Начать обучение", + "start": "Начать редактировать" }, "source_switch": { "live": "основной", @@ -948,13 +968,21 @@ "west": "запад" }, "error_types": { + "ow": { + "title": "Пропущено односторонее движение" + }, "mr": { "title": "Пропущена геометрия" + }, + "tr": { + "title": "Отсутствует запрет манёвра" } } }, "keepRight": { "title": "Ошибка KeepRight", + "detail_title": "Ошибка", + "detail_description": "Описание", "comment": "Комментарий", "comment_placeholder": "Введите комментарий для других пользователей", "close": "Закрыть (ошибка исправлена)", @@ -963,12 +991,69 @@ "close_comment": "Закрыть с комментарием", "ignore_comment": "Игнорировать с комментарием", "error_parts": { + "this_node": "эту точку", + "this_way": "эту линию", + "this_relation": "это отношение", + "this_oneway": "это односторонее движение", + "this_highway": "эту дорогу", + "this_railway": "эту железную дорогу", + "this_waterway": "этот водный путь", + "this_cycleway": "эту велодорожку", + "this_cycleway_footpath": "эту велопешеходную дорожку", + "this_riverbank": "этот берег реки", + "this_crossing": "этот пешеходный переход", + "this_railway_crossing": "этот железнодородный переезд", + "this_bridge": "этот мост", + "this_tunnel": "этот туннель", + "this_boundary": "эту границу", + "this_turn_restriction": "этот запрет манёвра", + "this_roundabout": "эту кольцевую развязку", + "this_mini_roundabout": "этот миникруг", + "this_track": "эту грунтовую дорогу", + "this_feature": "этот объект", + "highway": "дорога", + "railway": "железная дорога", + "waterway": "водный путь", + "cycleway": "велосипедная дорожка", + "cycleway_footpath": "велопешеходная дорожка", + "riverbank": "берег реки", + "place_of_worship": "храм", + "pub": "паб", "restaurant": "ресторан", - "pharmacy": "аптека" + "school": "школа", + "university": "университет", + "hospital": "больница", + "library": "библиотека", + "theatre": "театр", + "courthouse": "суд", + "bank": "банк", + "cinema": "кинотеатр", + "pharmacy": "аптека", + "cafe": "кафе", + "fast_food": "фаст-фуд", + "fuel": "топливо", + "left_hand": "левосторонний", + "right_hand": "правосторонний" }, "errorTypes": { + "30": { + "title": "Незаконченный полигон" + }, "40": { - "title": "Некорректное указание односторонней дороги" + "title": "Некорректное указание односторонней дороги", + "description": "Первая точка {var1} из {var2} не соединена ни с одной линией." + }, + "41": { + "description": "Последняя точка {var1} из {var2} не соединена ни с одной линией. " + }, + "42": { + "description": "{var1} не досигаема, так как все линии ведущие сюда однонаправленные." + }, + "43": { + "description": "{var1} не может быть покинута, так как все линии ведущие сюда однонаправленные. " + }, + "50": { + "title": "Почти пересечение" }, "60": { "title": "Устаревший тег", @@ -1837,6 +1922,12 @@ "access_simple": { "label": "Доступ для всех" }, + "addr/interpolation": { + "label": "Тип", + "options": { + "all": "Все" + } + }, "address": { "label": "Адресная информация", "placeholders": { @@ -2027,6 +2118,9 @@ "building": { "label": "Тип здания / конструкция" }, + "building/levels/underground": { + "placeholder": "2, 4, 6..." + }, "building/levels_building": { "label": "Число этажей", "placeholder": "2, 4, 6…" @@ -2232,6 +2326,10 @@ "label": "Устройства", "placeholder": "1, 2, 3…" }, + "diameter": { + "label": "Диаметр", + "placeholder": "5 мм, 10 см, 15 дюймов..." + }, "diaper": { "label": "Доступно пеленание" }, @@ -2538,12 +2636,6 @@ "undefined": "Нет" } }, - "iata": { - "label": "IATA" - }, - "icao": { - "label": "ICAO" - }, "incline": { "label": "Перепад высоты вдоль пути" }, @@ -3133,6 +3225,9 @@ "sanitary_dump_station": { "label": "Ассенизационная сливная станция" }, + "screen": { + "placeholder": "1, 4, 8..." + }, "seamark/beacon_isolated_danger/shape": { "label": "Форма" }, @@ -3213,6 +3308,9 @@ "seasonal": { "label": "Сезонный объект" }, + "seats": { + "placeholder": "2, 4, 6..." + }, "second_hand": { "label": "Продажа подержанного товара", "options": { @@ -3746,6 +3844,9 @@ "name": "Бар", "terms": "Бар, рюмочная" }, + "amenity/bar/lgbtq": { + "name": "ЛГБТ+ Бар" + }, "amenity/bbq": { "name": "Барбекю/Гриль", "terms": "барбекю, гриль, мангал, шашлык, еда, огонь, блюда, кухня" @@ -3882,6 +3983,9 @@ "name": "Фаст-фуд", "terms": "фастфуд, фаст-фуд, быстрое питание, ресторан быстрого питания, столовая, бистро, кафетерий" }, + "amenity/fast_food/chicken": { + "name": "Куриный Фаст-Фуд" + }, "amenity/ferry_terminal": { "name": "Пристань/терминал для парома" }, @@ -6171,6 +6275,9 @@ "name": "Энергетические агрегаты", "terms": "энергетический агрегат, устройство преобразования, турбина, котёл, котел, ветряк, солнечная панель, гидротурбина, ветрогенератор" }, + "power/generator/method/photovoltaic": { + "name": "Солнечная Панель" + }, "power/line": { "name": "Высоковольтная ЛЭП", "terms": "линия электропередачи, ЛЭП" @@ -7299,6 +7406,16 @@ "description": "Спутниковые и аэрофотоснимки.", "name": "Спутниковые снимки Mapbox" }, + "Maxar-Premium": { + "attribution": { + "text": "Условия и обратная связь" + } + }, + "Maxar-Standard": { + "attribution": { + "text": "Условия и обратная связь" + } + }, "OSM_Inspector-Addresses": { "attribution": { "text": "© Geofabrik GmbH, участники OpenStreetMap, CC-BY-SA" @@ -7349,6 +7466,9 @@ "description": "Жёлтым = общедоступные картографические данные от US Census. Красным = данные, отсутствующие в OpenStreetMap", "name": "Дороги TIGER 2017" }, + "US-TIGER-Roads-2018": { + "description": "Жёлтым = общедоступные картографические данные от US Census. Красным = данные, отсутствующие в OpenStreetMap" + }, "US_Forest_Service_roads_overlay": { "description": "Дороги: зелёный контур = без классификации; коричневый = просёлочные. Покрытие: гравий = светло-коричневый цвет; асфальт = чёрный; другое покрытие = серый; земля = белый; бетон = синий; трава = зелёный. Сезонные дороги = белые штрихи", "name": "Лесные дороги США" @@ -7397,6 +7517,16 @@ "description": "Слой Orthofoto предоставлен basemap.at. «Преемник» geoimage.at.", "name": "basemap.at Orthofoto" }, + "basemap.at-surface": { + "attribution": { + "text": "basemap.at" + } + }, + "basemap.at-terrain": { + "attribution": { + "text": "basemap.at" + } + }, "mapbox_locator_overlay": { "attribution": { "text": "Условия и обратная связь" diff --git a/dist/locales/sk.json b/dist/locales/sk.json index d79b0bc9f3..d3d3f8f3f6 100644 --- a/dist/locales/sk.json +++ b/dist/locales/sk.json @@ -1493,12 +1493,6 @@ "undefined": "Nie" } }, - "iata": { - "label": "IATA" - }, - "icao": { - "label": "ICAO" - }, "incline": { "label": "Sklon" }, diff --git a/dist/locales/sl.json b/dist/locales/sl.json index 5df584686f..325e051420 100644 --- a/dist/locales/sl.json +++ b/dist/locales/sl.json @@ -1589,12 +1589,6 @@ "label": "Obroči", "placeholder": "1, 2, 4..." }, - "iata": { - "label": "IATA" - }, - "icao": { - "label": "ICAO" - }, "incline": { "label": "Naklon" }, diff --git a/dist/locales/sr.json b/dist/locales/sr.json index f84629735f..e87640be70 100644 --- a/dist/locales/sr.json +++ b/dist/locales/sr.json @@ -1310,12 +1310,6 @@ "label": "Обручи", "placeholder": "1, 2, 4..." }, - "iata": { - "label": "ИАТА" - }, - "icao": { - "label": "ИЦАО" - }, "incline": { "label": "Успон" }, diff --git a/dist/locales/sv.json b/dist/locales/sv.json index 8689700db0..9daa023838 100644 --- a/dist/locales/sv.json +++ b/dist/locales/sv.json @@ -1952,6 +1952,9 @@ "use_different_layers": { "title": "Använd olika lager" }, + "use_different_layers_or_levels": { + "title": "Använd olika lager eller våningar" + }, "use_different_levels": { "title": "Använd olika våningar" }, @@ -2460,6 +2463,15 @@ "access_simple": { "label": "Tillåten åtkomst" }, + "addr/interpolation": { + "label": "Typ", + "options": { + "all": "Alla", + "alphabetic": "Alfabetisk", + "even": "Jämna", + "odd": "Udda" + } + }, "address": { "label": "Adress", "placeholders": { @@ -2650,6 +2662,10 @@ "building": { "label": "Byggnad" }, + "building/levels/underground": { + "label": "Underjordiska våningar", + "placeholder": "2, 4, 6..." + }, "building/levels_building": { "label": "Byggnadsvåning", "placeholder": "2, 4, 6..." @@ -3167,12 +3183,6 @@ "undefined": "Nej" } }, - "iata": { - "label": "IATA" - }, - "icao": { - "label": "ICAO" - }, "incline": { "label": "Lutning" }, @@ -3499,6 +3509,9 @@ "operator": { "label": "Operatör" }, + "operator/type": { + "label": "Typ av operatör" + }, "outdoor_seating": { "label": "Utomhusplatser" }, @@ -3658,6 +3671,9 @@ "playground/min_age": { "label": "Lägsta ålder" }, + "polling_station": { + "label": "Vallokal" + }, "population": { "label": "Folkmängd" }, @@ -3667,6 +3683,9 @@ "power_supply": { "label": "Strömförsörjning" }, + "preschool": { + "label": "Förskola" + }, "produce": { "label": "Naturprodukt" }, @@ -4331,6 +4350,9 @@ } }, "presets": { + "addr/interpolation": { + "name": "Adressinterpolering" + }, "address": { "name": "Adress", "terms": "Adress, husnummer, destination, gatuadress, postnummer, postort, postadress" @@ -4814,6 +4836,10 @@ "name": "Polis", "terms": "Polis, ordningsmakt, polisväsende, polismyndighet, polismakt, polisstation, snut, konstapel, poliskonstapel, polisman, pass, kriminalare, lag" }, + "amenity/polling_station": { + "name": "Permanent vallokal", + "terms": "vallokal, valurna, valsedel, val, rösta, röstning, folkomröstning, omröstning, röstmaskin, valmaskin, omröstningsapparat, valbås" + }, "amenity/post_box": { "name": "Postlåda", "terms": "Brevlåda, postlåda, brevinkast, brev, post" @@ -7342,6 +7368,10 @@ "name": "Punkt", "terms": "Punkt, fläck, läge, ställe, plats" }, + "polling_station": { + "name": "Tillfällig vallokal", + "terms": "vallokal, valurna, valsedel, val, rösta, röstning, folkomröstning, omröstning, röstmaskin, valmaskin, omröstningsapparat, valbås" + }, "power": { "name": "Elförsörjning" }, diff --git a/dist/locales/ta.json b/dist/locales/ta.json index 6ee33ae38a..1f49dffe56 100644 --- a/dist/locales/ta.json +++ b/dist/locales/ta.json @@ -971,12 +971,6 @@ "undefined": "இல்லை" } }, - "iata": { - "label": "IATA" - }, - "icao": { - "label": "ICAO" - }, "incline": { "label": "சாய்வு தளம்" }, diff --git a/dist/locales/tl.json b/dist/locales/tl.json index e48b8505cc..7b954c41cd 100644 --- a/dist/locales/tl.json +++ b/dist/locales/tl.json @@ -955,12 +955,6 @@ "hoops": { "placeholder": "1, 2, 4..." }, - "iata": { - "label": "IATA" - }, - "icao": { - "label": "ICAO" - }, "incline_steps": { "options": { "down": "Baba", diff --git a/dist/locales/tr.json b/dist/locales/tr.json index 6a326aa645..50c59d3830 100644 --- a/dist/locales/tr.json +++ b/dist/locales/tr.json @@ -1690,12 +1690,6 @@ "undefined": "Hayır" } }, - "iata": { - "label": "IATA" - }, - "icao": { - "label": "ICAO" - }, "incline": { "label": "Meyil" }, diff --git a/dist/locales/uk.json b/dist/locales/uk.json index 367ac64f81..d7ced14079 100644 --- a/dist/locales/uk.json +++ b/dist/locales/uk.json @@ -699,7 +699,7 @@ "imagery_source_faq": "Про фонове зображення/Повідомити про проблему", "reset": "скинути", "reset_all": "Скинути все", - "display_options": "Параметри відображення", + "display_options": "Параметри зображення", "brightness": "Яскравість", "contrast": "Контрастність", "saturation": "Насиченість", @@ -1952,6 +1952,9 @@ "use_different_layers": { "title": "Використовуйте різні шари" }, + "use_different_layers_or_levels": { + "title": "Використовуйте відмінні параметри для layer або level" + }, "use_different_levels": { "title": "Використовуйте різні рівні" }, @@ -2253,7 +2256,7 @@ "keyboard": "Покзати комбінації клавіш" }, "display_options": { - "title": "Параметри відображення", + "title": "Параметри екрану", "background": "Налаштування тла", "background_switch": "Перейти до останнього фонового зображення", "map_data": "Налаштування даних мапи", @@ -2460,6 +2463,15 @@ "access_simple": { "label": "Доступ" }, + "addr/interpolation": { + "label": "Тип", + "options": { + "all": "Всі", + "alphabetic": "Алфавітний", + "even": "Парні", + "odd": "Непарні" + } + }, "address": { "label": "Адреса", "placeholders": { @@ -2650,6 +2662,10 @@ "building": { "label": "Будівля" }, + "building/levels/underground": { + "label": "Підземні поверхи", + "placeholder": "2, 4, 6…" + }, "building/levels_building": { "label": "Кількість поверхів", "placeholder": "2, 4, 6…" @@ -3167,12 +3183,6 @@ "undefined": "Ні" } }, - "iata": { - "label": "IATA" - }, - "icao": { - "label": "ICAO" - }, "incline": { "label": "Нахил" }, @@ -3662,7 +3672,7 @@ "label": "Мінімальний вік" }, "polling_station": { - "label": "Виборча дільниця" + "label": "Місце для голосування" }, "population": { "label": "Населення" @@ -3673,6 +3683,9 @@ "power_supply": { "label": "Розетка" }, + "preschool": { + "label": "Дошкільний заклад" + }, "produce": { "label": "Вирощується" }, @@ -4337,6 +4350,9 @@ } }, "presets": { + "addr/interpolation": { + "name": "Інтерполяція адрес" + }, "address": { "name": "Адреса", "terms": "address,адреса,місце,квартира,будинок,корпус,flhtcf,vscwt,rdfhnbhf,elbyjr,rjhgec" @@ -4639,6 +4655,10 @@ "name": "Додзьо / Школа бойових мистецтв", "terms": "додзьо, бій, навчання, бойові мистецтва" }, + "amenity/dressing_room": { + "name": "Роздягальня", + "terms": "перевдягальня,примірочна" + }, "amenity/drinking_water": { "name": "Питна вода", "terms": "Drinking Water, gbnyf djlf, бювет, питна вода, вода" @@ -4879,6 +4899,10 @@ "name": "Міліція/Поліція", "terms": "Police, vskswsz, gjkswsz, міліція, поліція, охорона порядку" }, + "amenity/polling_station": { + "name": "Виборча дільниця", + "terms": "вибори,голос,дільниця,виборці,бюлетень,кабінка,машина,голосування,кандидат" + }, "amenity/post_box": { "name": "Поштова скриня", "terms": "Mailbox, gjinjdf crhbyz, поштова скринька, пошта, лист" @@ -5940,6 +5964,9 @@ "name": "Брід", "terms": "брід, переправа" }, + "ford_line": { + "name": "Брід" + }, "golf/bunker": { "name": "Піщана пастка", "terms": "піщана пастка, гольф" @@ -6008,6 +6035,10 @@ "name": "Банк крові", "terms": "донор,кров,банк,плазма,переливання,плазмаферез" }, + "healthcare/counselling": { + "name": "Консультаційний центр", + "terms": "здоров'я,хвороба,лікар,консультація,діагноз,пацієнт" + }, "healthcare/hospice": { "name": "Хоспіс", "terms": "хвороба,хоспіс,невіліковна,допомога" @@ -6893,7 +6924,8 @@ "terms": "зал,спортивний центр,спорт" }, "leisure/sports_centre/climbing": { - "name": "Скеледром" + "name": "Скеледром", + "terms": "скелі,спорт,розваги,стіна,каміння" }, "leisure/sports_centre/swimming": { "name": "Плавальний басейн", @@ -6966,6 +6998,10 @@ "name": "Силосна яма", "terms": "силос,яма,бункер,корм,сховище" }, + "man_made/cairn": { + "name": "Тур", + "terms": "гурій,каїрн,пірамідка,каміння,гірка" + }, "man_made/chimney": { "name": "Димохід", "terms": "труба,дим,димохід,викиди" @@ -7095,7 +7131,8 @@ "terms": "Survey Point, utjltpbxybq geyrn, місце спостереження" }, "man_made/torii": { - "name": "Торії" + "name": "Торії", + "terms": "ворота,храм,сінто" }, "man_made/tower": { "name": "Вежа", @@ -7166,7 +7203,8 @@ "terms": "люк,колодязь,кабель,зв'язок,телефон,інтернет,діра,дріт" }, "military/nuclear_explosion_site": { - "name": "Місце ядерного вибуху" + "name": "Місце ядерного вибуху", + "terms": "атом,бомба,вибух,випробування,радиація,полігон" }, "natural": { "name": "Природа" @@ -7307,6 +7345,10 @@ "name": "Струмок", "terms": "вода,потік,берег" }, + "natural/water/wastewater": { + "name": "Накопичувач стоків", + "terms": "стоки,відстійник,відходи" + }, "natural/wetland": { "name": "Заболочені землі", "terms": "Wetland, pfjkjxtys ptvks, болото, торф, плавні, мангрові зарості" @@ -7624,6 +7666,10 @@ "name": "Точка", "terms": "Point, njxrf, точка" }, + "polling_station": { + "name": "Тимчасова виборча дільниця", + "terms": "вибори,голос,дільниця,виборці,бюлетень,кабінка,машина,голосування,кандидат" + }, "power": { "name": "Енергетика" }, @@ -8839,7 +8885,8 @@ "terms": "легкорейковий,транспорт,електричка,міська,колії,трамвай" }, "type/route/monorail": { - "name": "Монорейковий маршрут" + "name": "Маршрут монорейки", + "terms": "монорейка,траснспорт,потяг,пасажир,станція,вокзал,колія,маршрут" }, "type/route/pipeline": { "name": "Трубопровід", diff --git a/dist/locales/vi.json b/dist/locales/vi.json index 6825f8cd25..c6ad78c991 100644 --- a/dist/locales/vi.json +++ b/dist/locales/vi.json @@ -2481,12 +2481,6 @@ "undefined": "Không" } }, - "iata": { - "label": "IATA" - }, - "icao": { - "label": "ICAO" - }, "incline": { "label": "Độ dốc" }, diff --git a/dist/locales/yue.json b/dist/locales/yue.json index b9393efc11..fd2c389666 100644 --- a/dist/locales/yue.json +++ b/dist/locales/yue.json @@ -1012,12 +1012,6 @@ "label": "藍框數", "placeholder": "1, 2, 4..." }, - "iata": { - "label": "萬國航空運輸協會(IATA)" - }, - "icao": { - "label": "萬國民航組織(ICAO)" - }, "incline": { "label": "斜" }, diff --git a/dist/locales/zh-CN.json b/dist/locales/zh-CN.json index 70438540aa..6dc524e8de 100644 --- a/dist/locales/zh-CN.json +++ b/dist/locales/zh-CN.json @@ -1952,6 +1952,9 @@ "use_different_layers": { "title": "使用不同图层" }, + "use_different_layers_or_levels": { + "title": "使用不同图层或楼层" + }, "use_different_levels": { "title": "使用不同楼层数" }, @@ -3157,12 +3160,6 @@ "undefined": "否" } }, - "iata": { - "label": "IATA (国际航空运输协会)" - }, - "icao": { - "label": "ICAO(国际民航组织)" - }, "incline": { "label": "斜度" }, diff --git a/dist/locales/zh-HK.json b/dist/locales/zh-HK.json index e370009df1..c08375537d 100644 --- a/dist/locales/zh-HK.json +++ b/dist/locales/zh-HK.json @@ -1780,12 +1780,6 @@ "undefined": "否" } }, - "iata": { - "label": "萬國航空運輸協會(IATA)" - }, - "icao": { - "label": "萬國民航組織(ICAO)" - }, "incline": { "label": "斜" }, diff --git a/dist/locales/zh-TW.json b/dist/locales/zh-TW.json index 5552a4e32a..109f2e7b39 100644 --- a/dist/locales/zh-TW.json +++ b/dist/locales/zh-TW.json @@ -1952,6 +1952,9 @@ "use_different_layers": { "title": "使用不同階層" }, + "use_different_layers_or_levels": { + "title": "使用不同階層或樓層" + }, "use_different_levels": { "title": "使用不同樓層" }, @@ -2460,6 +2463,15 @@ "access_simple": { "label": "允許通行" }, + "addr/interpolation": { + "label": "類型", + "options": { + "all": "全部", + "alphabetic": "字母", + "even": "偶數", + "odd": "奇數" + } + }, "address": { "label": "地址", "placeholders": { @@ -2650,6 +2662,10 @@ "building": { "label": "建築物" }, + "building/levels/underground": { + "label": "地下樓層數", + "placeholder": "2, 4, 6..." + }, "building/levels_building": { "label": "建築物樓層", "placeholder": "2, 4, 6..." @@ -3168,10 +3184,10 @@ } }, "iata": { - "label": "IATA" + "label": "IATA 機場代碼" }, "icao": { - "label": "ICAO" + "label": "ICAO 機場代碼" }, "incline": { "label": "斜度" @@ -3673,12 +3689,18 @@ "power_supply": { "label": "電源供應器" }, + "preschool": { + "label": "育幼院" + }, "produce": { "label": "生產產品" }, "product": { "label": "產品" }, + "public_bookcase/type": { + "label": "類型" + }, "railway": { "label": "種類" }, @@ -4337,6 +4359,9 @@ } }, "presets": { + "addr/interpolation": { + "name": "地址插補" + }, "address": { "name": "地址", "terms": "地址,位置,位址" @@ -4637,6 +4662,10 @@ "name": "道場/武術研習班", "terms": "道場/武術學院,道場/武藝研習班" }, + "amenity/dressing_room": { + "name": "更衣室", + "terms": "更衣室" + }, "amenity/drinking_water": { "name": "飲水機", "terms": "飲水,水源,活水,飲處,取水處" @@ -4793,6 +4822,10 @@ "name": "立體停車場", "terms": "多層停車場,停車塔" }, + "amenity/parking/park_ride": { + "name": "轉乘停車場", + "terms": "泊車轉乘" + }, "amenity/parking/underground": { "name": "地下停車場" }, @@ -6984,6 +7017,10 @@ "name": "地面筒倉", "terms": "地面筒倉;筒倉" }, + "man_made/cairn": { + "name": "石標", + "terms": "石標" + }, "man_made/chimney": { "name": "煙囪", "terms": "煙筒" @@ -8387,6 +8424,10 @@ "name": "音響店", "terms": "音響店" }, + "shop/hobby": { + "name": "嗜好商店", + "terms": "嗜好商店" + }, "shop/houseware": { "name": "家庭用品店", "terms": "家居用品店" @@ -8579,6 +8620,10 @@ "name": "超級市場", "terms": "超市" }, + "shop/swimming_pool": { + "name": "泳池用品商店", + "terms": "泳池用品商店" + }, "shop/tailor": { "name": "裁縫", "terms": "裁縫師,成衣訂作,成衣匠" @@ -8721,6 +8766,10 @@ "name": "觀光景點", "terms": "觀光點" }, + "tourism/camp_pitch": { + "name": "營地", + "terms": "營地" + }, "tourism/camp_site": { "name": "露營地", "terms": "營地" diff --git a/dist/locales/zh.json b/dist/locales/zh.json index 9ad8c09ec2..1e2e1b7459 100644 --- a/dist/locales/zh.json +++ b/dist/locales/zh.json @@ -360,12 +360,6 @@ "historic": { "label": "类型" }, - "iata": { - "label": "国际航空运输协会IATA" - }, - "icao": { - "label": "国际民航组织ICAO" - }, "incline": { "label": "斜度" }, From b730e903a44c317e0872af9d4168bc3b79ec9917 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Fri, 26 Jul 2019 12:28:41 -0400 Subject: [PATCH 233/774] v2.15.4 --- modules/core/context.js | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/core/context.js b/modules/core/context.js index 333acaa0db..19084c6910 100644 --- a/modules/core/context.js +++ b/modules/core/context.js @@ -25,7 +25,7 @@ export function coreContext() { var context = utilRebind({}, dispatch, 'on'); var _deferred = new Set(); - context.version = '2.15.3'; + context.version = '2.15.4'; // create a special translation that contains the keys in place of the strings var tkeys = JSON.parse(JSON.stringify(dataEn)); // clone deep diff --git a/package.json b/package.json index f85f370ae0..d5cfd02eb0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "iD", - "version": "2.15.3", + "version": "2.15.4", "description": "A friendly editor for OpenStreetMap", "main": "iD.js", "repository": "openstreetmap/iD", From d5da5a601c3df1c0bba884c09089cd648b604c66 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Fri, 26 Jul 2019 14:11:15 -0400 Subject: [PATCH 234/774] Fix error upon revalidating after changing unsquare building threshold (close #6690) --- modules/core/validator.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/core/validator.js b/modules/core/validator.js index 1a60e908b4..e01a207a56 100644 --- a/modules/core/validator.js +++ b/modules/core/validator.js @@ -94,7 +94,7 @@ export function coreValidator(context) { // rerun for all buildings buildings.forEach(function(entity) { - var detected = checkUnsquareWay(entity, context); + var detected = checkUnsquareWay(entity, context.graph()); if (detected.length !== 1) return; var issue = detected[0]; From 4e07aa573d672e394b608736929136edc6969222 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 30 Jul 2019 09:48:04 -0400 Subject: [PATCH 235/774] Add layer tags with the Structure tool (close #6673) --- modules/ui/tools/structure.js | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/modules/ui/tools/structure.js b/modules/ui/tools/structure.js index fbf3e9e48c..78d185bf90 100644 --- a/modules/ui/tools/structure.js +++ b/modules/ui/tools/structure.js @@ -28,6 +28,10 @@ export function uiToolStructure(context) { label: t('presets.fields.structure.options.bridge'), tags: { bridge: 'yes' + }, + addTags: { + bridge: 'yes', + layer: '1' } }; var structureTunnel = { @@ -36,6 +40,10 @@ export function uiToolStructure(context) { label: t('presets.fields.structure.options.tunnel'), tags: { tunnel: 'yes' + }, + addTags: { + tunnel: 'yes', + layer: '-1' } }; @@ -63,14 +71,14 @@ export function uiToolStructure(context) { var tags = Object.assign({}, activeTags()); var priorStructure = tool.activeItem(); - var tagsToRemove = priorStructure.tags; + var tagsToRemove = priorStructure.addTags || priorStructure.tags; for (var key in tagsToRemove) { if (tags[key]) { delete tags[key]; } } // add tags for structure - Object.assign(tags, d.tags); + Object.assign(tags, d.addTags || d.tags); var mode = context.mode(); if (mode.id === 'add-line') { From 6df19286602bbd0328f585d93be5dbb0cdc8f48d Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 30 Jul 2019 10:24:46 -0400 Subject: [PATCH 236/774] Enable zoom-to-center of multiple selected entities (close #6696) --- modules/modes/select.js | 11 +++++++---- modules/renderer/map.js | 16 ++++++++++++++-- 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/modules/modes/select.js b/modules/modes/select.js index 3f9caea5b5..27dc39a1da 100644 --- a/modules/modes/select.js +++ b/modules/modes/select.js @@ -64,6 +64,12 @@ export function modeSelect(context, selectedIDs) { } } + function selectedEntities() { + return selectedIDs.map(function(id) { + return context.hasEntity(id); + }).filter(Boolean); + } + function checkSelectedIDs() { var ids = []; @@ -178,10 +184,7 @@ export function modeSelect(context, selectedIDs) { mode.zoomToSelected = function() { - var entity = singular(); - if (entity) { - context.map().zoomToEase(entity); - } + context.map().zoomToEase(selectedEntities()); }; diff --git a/modules/renderer/map.js b/modules/renderer/map.js index a322cdbcee..379da6db6c 100644 --- a/modules/renderer/map.js +++ b/modules/renderer/map.js @@ -844,8 +844,20 @@ export function rendererMap(context) { }; - map.zoomToEase = function(entity, duration) { - var extent = entity.extent(context.graph()); + map.zoomToEase = function(obj, duration) { + var extent; + if (Array.isArray(obj)) { + obj.forEach(function(entity) { + var entityExtent = entity.extent(context.graph()); + if (!extent) { + extent = entityExtent; + } else { + extent = extent.extend(entityExtent); + } + }); + } else { + extent = obj.extent(context.graph()); + } if (!isFinite(extent.area())) return map; var z2 = clamp(map.trimmedExtentZoom(extent), 0, 20); From b0c7500e33c239bead737489892dd88ca137261b Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 30 Jul 2019 13:05:19 -0400 Subject: [PATCH 237/774] Fix deletion and update issues with localized name field (close #6491) --- modules/ui/fields/localized.js | 84 +++++++++++++++++++++------------- 1 file changed, 53 insertions(+), 31 deletions(-) diff --git a/modules/ui/fields/localized.js b/modules/ui/fields/localized.js index 20afe4df11..c9e63cdc2e 100644 --- a/modules/ui/fields/localized.js +++ b/modules/ui/fields/localized.js @@ -64,16 +64,30 @@ export function uiFieldLocalized(field, context) { field.locked(isLocked); } - + // update _multilingual, maintaining the existing order function calcMultilingual(tags) { - _multilingual = []; + var existingLangsOrdered = _multilingual.map(function(item) { + return item.lang; + }); + var existingLangs = new Set(existingLangsOrdered.filter(Boolean)); + for (var k in tags) { var m = k.match(/^(.*):([a-zA-Z_-]+)$/); if (m && m[1] === field.key && m[2]) { - _multilingual.push({ lang: m[2], value: tags[k] }); + var item = { lang: m[2], value: tags[k] }; + if (existingLangs.has(item.lang)) { + // update the value + _multilingual[existingLangsOrdered.indexOf(item.lang)].value = item.value; + existingLangs.delete(item.lang); + } else { + _multilingual.push(item); + } } } - _multilingual.reverse(); + + _multilingual = _multilingual.filter(function(item) { + return !item.lang || !existingLangs.has(item.lang); + }); } @@ -291,11 +305,16 @@ export function uiFieldLocalized(field, context) { var isLangEn = defaultLang.indexOf('en') > -1; if (isLangEn || langExists) { defaultLang = ''; + langExists = _multilingual.find(function(datum) { return datum.lang === defaultLang; }); } - _multilingual.push({ lang: defaultLang, value: '' }); - localizedInputs - .call(renderMultilingual); + if (!langExists) { + // prepend the value so it appears at the top + _multilingual.unshift({ lang: defaultLang, value: '' }); + + localizedInputs + .call(renderMultilingual); + } } @@ -348,8 +367,10 @@ export function uiFieldLocalized(field, context) { function changeValue(d) { if (!d.lang) return; + var value = utilGetSetValue(d3_select(this)) || undefined; var t = {}; - t[key(d.lang)] = utilGetSetValue(d3_select(this)) || undefined; + t[key(d.lang)] = value; + d.value = value; dispatch.call('change', this, t); } @@ -368,21 +389,20 @@ export function uiFieldLocalized(field, context) { function renderMultilingual(selection) { - var wraps = selection.selectAll('div.entry') + var entries = selection.selectAll('div.entry') .data(_multilingual, function(d) { return d.lang; }); - wraps.exit() + entries.exit() + .style('top', '0') + .style('max-height', '240px') .transition() .duration(200) - .style('max-height', '0px') .style('opacity', '0') - .style('top', '-10px') + .style('max-height', '0px') .remove(); - var innerWrap = wraps.enter() - .insert('div', ':first-child'); - - innerWrap + var entriesEnter = entries.enter() + .append('div') .attr('class', 'entry') .each(function() { var wrap = d3_select(this); @@ -407,19 +427,20 @@ export function uiFieldLocalized(field, context) { label .append('button') .attr('class', 'remove-icon-multilingual') - .on('click', function(d){ + .on('click', function(d, index) { if (field.locked()) return; d3_event.preventDefault(); - var t = {}; - t[key(d.lang)] = undefined; - dispatch.call('change', this, t); - d3_select(this.parentNode.parentNode.parentNode) - .style('top', '0') - .style('max-height', '240px') - .transition() - .style('opacity', '0') - .style('max-height', '0px') - .remove(); + + if (!d.lang || !d.value) { + _multilingual.splice(index, 1); + renderMultilingual(selection); + } else { + // remove from entity tags + var t = {}; + t[key(d.lang)] = undefined; + dispatch.call('change', this, t); + } + }) .call(svgIcon('#iD-operation-delete')); @@ -441,7 +462,7 @@ export function uiFieldLocalized(field, context) { .on('change', changeValue); }); - innerWrap + entriesEnter .style('margin-top', '0px') .style('max-height', '0px') .style('opacity', '0') @@ -456,15 +477,16 @@ export function uiFieldLocalized(field, context) { .style('overflow', 'visible'); }); + entries = entries.merge(entriesEnter); - var entry = selection.selectAll('.entry'); + entries.order(); - utilGetSetValue(entry.select('.localized-lang'), function(d) { + utilGetSetValue(entries.select('.localized-lang'), function(d) { var lang = dataWikipedia.find(function(lang) { return lang[2] === d.lang; }); return lang ? lang[1] : d.lang; }); - utilGetSetValue(entry.select('.localized-value'), + utilGetSetValue(entries.select('.localized-value'), function(d) { return d.value; }); } From cd5cd81ba5506ecdabc65e0bf9a5301a5547bd06 Mon Sep 17 00:00:00 2001 From: Albin Larsson Date: Wed, 31 Jul 2019 08:24:26 +0200 Subject: [PATCH 238/774] make additional buttons and links keyboard accessible --- modules/ui/background.js | 2 -- modules/ui/commit.js | 1 - modules/ui/contributors.js | 2 -- modules/ui/geolocate.js | 1 - modules/ui/help.js | 1 - modules/ui/init.js | 2 -- modules/ui/issues.js | 1 - modules/ui/map_data.js | 1 - modules/ui/raw_member_editor.js | 1 - modules/ui/source_switch.js | 1 - modules/ui/tools/modes.js | 1 - modules/ui/tools/save.js | 2 +- modules/ui/tools/sidebar_toggle.js | 1 - modules/ui/version.js | 2 -- modules/ui/zoom.js | 1 - 15 files changed, 1 insertion(+), 19 deletions(-) diff --git a/modules/ui/background.js b/modules/ui/background.js index b7317e5fb1..45142dd929 100644 --- a/modules/ui/background.js +++ b/modules/ui/background.js @@ -236,7 +236,6 @@ export function uiBackground(context) { .attr('class', 'imagery-faq') .append('a') .attr('target', '_blank') - .attr('tabindex', -1) .call(svgIcon('#iD-icon-out-link', 'inline')) .attr('href', 'https://github.com/openstreetmap/iD/blob/master/FAQ.md#how-can-i-report-an-issue-with-background-imagery') .append('span') @@ -316,7 +315,6 @@ export function uiBackground(context) { _toggleButton = selection .append('button') - .attr('tabindex', -1) .on('click', uiBackground.togglePane) .call(svgIcon('#iD-icon-layers', 'light')) .call(paneTooltip); diff --git a/modules/ui/commit.js b/modules/ui/commit.js index a653484ba3..0b0a402d09 100644 --- a/modules/ui/commit.js +++ b/modules/ui/commit.js @@ -273,7 +273,6 @@ export function uiCommit(context) { .attr('class', 'user-info') .text(user.display_name) .attr('href', osm.userURL(user.display_name)) - .attr('tabindex', -1) .attr('target', '_blank'); prose diff --git a/modules/ui/contributors.js b/modules/ui/contributors.js index 3f07c2fe2e..5be69230de 100644 --- a/modules/ui/contributors.js +++ b/modules/ui/contributors.js @@ -39,7 +39,6 @@ export function uiContributors(context) { .attr('class', 'user-link') .attr('href', function(d) { return osm.userURL(d); }) .attr('target', '_blank') - .attr('tabindex', -1) .text(String); if (u.length > limit) { @@ -47,7 +46,6 @@ export function uiContributors(context) { count.append('a') .attr('target', '_blank') - .attr('tabindex', -1) .attr('href', function() { return osm.changesetsURL(context.map().center(), context.map().zoom()); }) diff --git a/modules/ui/geolocate.js b/modules/ui/geolocate.js index 765de39f51..b46b6b385b 100644 --- a/modules/ui/geolocate.js +++ b/modules/ui/geolocate.js @@ -66,7 +66,6 @@ export function uiGeolocate(context) { selection .append('button') - .attr('tabindex', -1) .attr('title', t('geolocate.title')) .on('click', click) .call(svgIcon('#iD-icon-geolocate', 'light')) diff --git a/modules/ui/help.js b/modules/ui/help.js index da69f94033..a5bc96f97b 100644 --- a/modules/ui/help.js +++ b/modules/ui/help.js @@ -299,7 +299,6 @@ export function uiHelp(context) { uiHelp.renderToggleButton = function(selection) { _toggleButton = selection.append('button') - .attr('tabindex', -1) .on('click', uiHelp.togglePane) .call(svgIcon('#iD-icon-help', 'light')) .call(paneTooltip); diff --git a/modules/ui/init.js b/modules/ui/init.js index 695ce94fac..ebe93f2fbc 100644 --- a/modules/ui/init.js +++ b/modules/ui/init.js @@ -190,7 +190,6 @@ export function uiInit(context) { issueLinks .append('a') .attr('target', '_blank') - .attr('tabindex', -1) .attr('href', 'https://github.com/openstreetmap/iD/issues') .call(svgIcon('#iD-icon-bug', 'light')) .call(tooltip().title(t('report_a_bug')).placement('top')); @@ -198,7 +197,6 @@ export function uiInit(context) { issueLinks .append('a') .attr('target', '_blank') - .attr('tabindex', -1) .attr('href', 'https://github.com/openstreetmap/iD/blob/master/CONTRIBUTING.md#translating') .call(svgIcon('#iD-icon-translate', 'light')) .call(tooltip().title(t('help_translate')).placement('top')); diff --git a/modules/ui/issues.js b/modules/ui/issues.js index e4e2458fb7..3e49e9018e 100644 --- a/modules/ui/issues.js +++ b/modules/ui/issues.js @@ -677,7 +677,6 @@ export function uiIssues(context) { uiIssues.renderToggleButton = function(selection) { _toggleButton = selection .append('button') - .attr('tabindex', -1) .on('click', uiIssues.togglePane) .call(svgIcon('#iD-icon-alert', 'light')) .call(addNotificationBadge) diff --git a/modules/ui/map_data.js b/modules/ui/map_data.js index 1d8aad3d1f..af49925c9e 100644 --- a/modules/ui/map_data.js +++ b/modules/ui/map_data.js @@ -787,7 +787,6 @@ export function uiMapData(context) { _toggleButton = selection .append('button') - .attr('tabindex', -1) .on('click', uiMapData.togglePane) .call(svgIcon('#iD-icon-data', 'light')) .call(paneTooltip); diff --git a/modules/ui/raw_member_editor.js b/modules/ui/raw_member_editor.js index df2c9a436f..4fa567b17d 100644 --- a/modules/ui/raw_member_editor.js +++ b/modules/ui/raw_member_editor.js @@ -173,7 +173,6 @@ export function uiRawMemberEditor(context) { .append('button') .attr('class', 'member-zoom') .attr('title', t('icons.zoom_to')) - .attr('tabindex', -1) .call(svgIcon('#iD-icon-geolocate')) .on('click', zoomToMember); diff --git a/modules/ui/source_switch.js b/modules/ui/source_switch.js index 49d7292272..2af3e463ed 100644 --- a/modules/ui/source_switch.js +++ b/modules/ui/source_switch.js @@ -43,7 +43,6 @@ export function uiSourceSwitch(context) { .attr('href', '#') .text(t('source_switch.live')) .classed('live', true) - .attr('tabindex', -1) .on('click', click); }; diff --git a/modules/ui/tools/modes.js b/modules/ui/tools/modes.js index c92c88ad9a..8ae74ee992 100644 --- a/modules/ui/tools/modes.js +++ b/modules/ui/tools/modes.js @@ -113,7 +113,6 @@ export function uiToolOldDrawModes(context) { // enter var buttonsEnter = buttons.enter() .append('button') - .attr('tabindex', -1) .attr('class', function(d) { return d.id + ' add-button bar-button'; }) .on('click.mode-buttons', function(d) { if (!enabled(d)) return; diff --git a/modules/ui/tools/save.js b/modules/ui/tools/save.js index ca6473fbe6..6a418f5048 100644 --- a/modules/ui/tools/save.js +++ b/modules/ui/tools/save.js @@ -84,7 +84,6 @@ export function uiToolSave(context) { button = selection .append('button') .attr('class', 'save disabled bar-button') - .attr('tabindex', -1) .on('click', save) .call(tooltipBehavior); @@ -94,6 +93,7 @@ export function uiToolSave(context) { button .append('span') .attr('class', 'count') + .attr('aria-hidden', 'true') .text('0'); updateCount(); diff --git a/modules/ui/tools/sidebar_toggle.js b/modules/ui/tools/sidebar_toggle.js index 53daa5266c..30d88e942d 100644 --- a/modules/ui/tools/sidebar_toggle.js +++ b/modules/ui/tools/sidebar_toggle.js @@ -15,7 +15,6 @@ export function uiToolSidebarToggle(context) { selection .append('button') .attr('class', 'bar-button') - .attr('tabindex', -1) .on('click', function() { context.ui().sidebar.toggle(); }) diff --git a/modules/ui/version.js b/modules/ui/version.js index 42080a7bb0..e6cc1f03ff 100644 --- a/modules/ui/version.js +++ b/modules/ui/version.js @@ -25,7 +25,6 @@ export function uiVersion(context) { selection .append('a') .attr('target', '_blank') - .attr('tabindex', -1) .attr('href', 'https://github.com/openstreetmap/iD') .text(currVersion); @@ -36,7 +35,6 @@ export function uiVersion(context) { .attr('class', 'badge') .append('a') .attr('target', '_blank') - .attr('tabindex', -1) .attr('href', 'https://github.com/openstreetmap/iD/blob/master/CHANGELOG.md#whats-new') .call(svgIcon('#maki-gift-11')) .call(tooltip() diff --git a/modules/ui/zoom.js b/modules/ui/zoom.js index 8063232427..ac1704f643 100644 --- a/modules/ui/zoom.js +++ b/modules/ui/zoom.js @@ -55,7 +55,6 @@ export function uiZoom(context) { .data(zooms) .enter() .append('button') - .attr('tabindex', -1) .attr('class', function(d) { return d.id; }) .on('click.editor', function(d) { d.action(); }) .call(tooltip() From 30e45413c70ddf4de3355b54594fed0abf200d01 Mon Sep 17 00:00:00 2001 From: Albin Larsson Date: Wed, 31 Jul 2019 08:25:02 +0200 Subject: [PATCH 239/774] align hover and focus styles --- css/80_app.css | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/css/80_app.css b/css/80_app.css index b074cefc52..7d7a47c72a 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -2977,7 +2977,8 @@ input.key-trap { border-radius: 0; } -.map-control > button:hover { +.map-control > button:hover, +.map-control > button:focus { background: rgba(0, 0, 0, .8); } @@ -5136,7 +5137,8 @@ svg.mouseclick use.right { border-radius: 8px; } -.notice .zoom-to:hover { +.notice .zoom-to:hover, +.notice .zoom-to:focus { background: rgba(0,0,0,0.6); } From e37948fe9abe9837cc0ebdfc83bcf74547468682 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 31 Jul 2019 13:47:53 -0400 Subject: [PATCH 240/774] Use CLDR for a translated language list in the localized name field instead of untranslated wmf site matrix (close #2457) Translate language names in the community index list (close #4990) --- data/core.yaml | 1 + data/index.js | 1 + data/languages.json | 726 +++++++++++++++++++++++++++++++++ data/locales.json | 169 ++++---- data/update_locales.js | 107 ++++- modules/ui/fields/localized.js | 44 +- modules/ui/success.js | 8 +- modules/util/detect.js | 5 +- modules/util/locale.js | 29 ++ package.json | 1 + 10 files changed, 987 insertions(+), 104 deletions(-) create mode 100644 data/languages.json diff --git a/data/core.yaml b/data/core.yaml index 5cc6fd21df..504fd6661d 100644 --- a/data/core.yaml +++ b/data/core.yaml @@ -391,6 +391,7 @@ en: localized_translation_label: Multilingual Name localized_translation_language: Choose language localized_translation_name: Name + language_and_code: "{language} ({code})" zoom_in_edit: Zoom in to edit login: Log In logout: Log Out diff --git a/data/index.js b/data/index.js index c71f03febf..8e31190985 100644 --- a/data/index.js +++ b/data/index.js @@ -3,6 +3,7 @@ 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'; diff --git a/data/languages.json b/data/languages.json new file mode 100644 index 0000000000..fac92146fe --- /dev/null +++ b/data/languages.json @@ -0,0 +1,726 @@ +{ + "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": "Cebuano" + }, + "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" + }, + "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" + } + } +} \ No newline at end of file diff --git a/data/locales.json b/data/locales.json index c738df9afe..41a01ac2b5 100644 --- a/data/locales.json +++ b/data/locales.json @@ -1,88 +1,89 @@ { "dataLocales": { - "af": {"rtl": false}, - "ar": {"rtl": true}, - "ar-AA": {"rtl": true}, - "ast": {"rtl": false}, - "be": {"rtl": false}, - "bg": {"rtl": false}, - "bn": {"rtl": false}, - "bs": {"rtl": false}, - "ca": {"rtl": false}, - "ckb": {"rtl": true}, - "cs": {"rtl": false}, - "cy": {"rtl": false}, - "da": {"rtl": false}, - "de": {"rtl": false}, - "dv": {"rtl": true}, - "el": {"rtl": false}, - "en-AU": {"rtl": false}, - "en-GB": {"rtl": false}, - "eo": {"rtl": false}, - "es": {"rtl": false}, - "et": {"rtl": false}, - "eu": {"rtl": false}, - "fa": {"rtl": true}, - "fi": {"rtl": false}, - "fr": {"rtl": false}, - "gan": {"rtl": false}, - "gl": {"rtl": false}, - "gu": {"rtl": false}, - "he": {"rtl": true}, - "hi": {"rtl": false}, - "hr": {"rtl": false}, - "hu": {"rtl": false}, - "hy": {"rtl": false}, - "ia": {"rtl": false}, - "id": {"rtl": false}, - "is": {"rtl": false}, - "it": {"rtl": false}, - "ja": {"rtl": false}, - "jv": {"rtl": false}, - "km": {"rtl": false}, - "kn": {"rtl": false}, - "ko": {"rtl": false}, - "ku": {"rtl": false}, - "lij": {"rtl": false}, - "lt": {"rtl": false}, - "lv": {"rtl": false}, - "mg": {"rtl": false}, - "mk": {"rtl": false}, - "ml": {"rtl": false}, - "mn": {"rtl": false}, - "ms": {"rtl": false}, - "ne": {"rtl": false}, - "nl": {"rtl": false}, - "nn": {"rtl": false}, - "no": {"rtl": false}, - "nv": {"rtl": false}, - "pap": {"rtl": false}, - "pl": {"rtl": false}, - "pt": {"rtl": false}, - "pt-BR": {"rtl": false}, - "rm": {"rtl": false}, - "ro": {"rtl": false}, - "ru": {"rtl": false}, - "sc": {"rtl": false}, - "si": {"rtl": false}, - "sk": {"rtl": false}, - "sl": {"rtl": false}, - "so": {"rtl": false}, - "sq": {"rtl": false}, - "sr": {"rtl": false}, - "sv": {"rtl": false}, - "ta": {"rtl": false}, - "te": {"rtl": false}, - "th": {"rtl": false}, - "tl": {"rtl": false}, - "tr": {"rtl": false}, - "uk": {"rtl": false}, - "ur": {"rtl": true}, - "vi": {"rtl": false}, - "yue": {"rtl": false}, - "zh": {"rtl": false}, - "zh-CN": {"rtl": false}, - "zh-HK": {"rtl": false}, - "zh-TW": {"rtl": false} + "af": {"rtl": false, "languageNames": {"aa": "Afar", "ab": "Abkasies", "ace": "Atsjenees", "ach": "Akoli", "ada": "Adangme", "ady": "Adyghe", "af": "Afrikaans", "agq": "Aghem", "ain": "Ainu", "ak": "Akan", "ale": "Aleut", "alt": "Suid-Altai", "am": "Amharies", "an": "Aragonees", "anp": "Angika", "ar": "Arabies", "ar-001": "Moderne Standaardarabies", "arc": "Aramees", "arn": "Mapuche", "arp": "Arapaho", "as": "Assamees", "asa": "Asu", "ast": "Asturies", "av": "Avaries", "awa": "Awadhi", "ay": "Aymara", "az": "Azerbeidjans", "ba": "Baskir", "ban": "Balinees", "bas": "Basaa", "be": "Belarussies", "bem": "Bemba", "bez": "Bena", "bg": "Bulgaars", "bgn": "Wes-Balochi", "bho": "Bhojpuri", "bi": "Bislama", "bin": "Bini", "bla": "Siksika", "bm": "Bambara", "bn": "Bengaals", "bo": "Tibettaans", "br": "Bretons", "brx": "Bodo", "bs": "Bosnies", "bug": "Buginees", "byn": "Blin", "ca": "Katalaans", "ce": "Tsjetsjeens", "ceb": "Cebuano", "cgg": "Kiga", "ch": "Chamorro", "chk": "Chuukees", "chm": "Mari", "cho": "Choctaw", "chr": "Cherokees", "chy": "Cheyennees", "ckb": "Sorani", "co": "Korsikaans", "cop": "Kopties", "crs": "Seselwa Franskreools", "cs": "Tsjeggies", "cu": "Kerkslawies", "cv": "Chuvash", "cy": "Wallies", "da": "Deens", "dak": "Dakotaans", "dar": "Dakota", "dav": "Taita", "de": "Duits", "de-AT": "Duits (Oostenryk)", "de-CH": "Switserse hoog-Duits", "dgr": "Dogrib", "dje": "Zarma", "dsb": "Benedesorbies", "dua": "Duala", "dv": "Divehi", "dyo": "Jola-Fonyi", "dz": "Dzongkha", "dzg": "Dazaga", "ebu": "Embu", "ee": "Ewe", "efi": "Efik", "egy": "Antieke Egipties", "eka": "Ekajuk", "el": "Grieks", "en": "Engels", "en-AU": "Engels (Australië)", "en-CA": "Engels (Kanada)", "en-GB": "Engels (VK)", "en-US": "Engels (VSA)", "eo": "Esperanto", "es": "Spaans", "es-419": "Spaans (Latyns-Amerika)", "es-ES": "Spaans (Spanje)", "es-MX": "Spaans (Meksiko)", "et": "Estnies", "eu": "Baskies", "ewo": "Ewondo", "fa": "Persies", "ff": "Fulah", "fi": "Fins", "fil": "Filippyns", "fj": "Fidjiaans", "fo": "Faroëes", "fon": "Fon", "fr": "Frans", "fr-CA": "Frans (Kanada)", "fr-CH": "Frans (Switserland)", "fur": "Friuliaans", "fy": "Fries", "ga": "Iers", "gaa": "Gaa", "gag": "Gagauz", "gan": "Gan-Sjinees", "gd": "Skotse Gallies", "gez": "Geez", "gil": "Gilbertees", "gl": "Galisies", "gn": "Guarani", "gor": "Gorontalo", "got": "Goties", "grc": "Antieke Grieks", "gsw": "Switserse Duits", "gu": "Goedjarati", "guz": "Gusii", "gv": "Manx", "gwi": "Gwichʼin", "ha": "Hausa", "hak": "Hakka-Sjinees", "haw": "Hawais", "he": "Hebreeus", "hi": "Hindi", "hil": "Hiligaynon", "hit": "Hetities", "hmn": "Hmong", "hr": "Kroaties", "hsb": "Oppersorbies", "hsn": "Xiang-Sjinees", "ht": "Haïtiaans", "hu": "Hongaars", "hup": "Hupa", "hy": "Armeens", "hz": "Herero", "ia": "Interlingua", "iba": "Ibanees", "ibb": "Ibibio", "id": "Indonesies", "ie": "Interlingue", "ig": "Igbo", "ii": "Sichuan Yi", "ilo": "Iloko", "inh": "Ingush", "io": "Ido", "is": "Yslands", "it": "Italiaans", "iu": "Inuïties", "ja": "Japannees", "jbo": "Lojban", "jgo": "Ngomba", "jmc": "Machame", "jv": "Javaans", "ka": "Georgies", "kab": "Kabyle", "kac": "Kachin", "kaj": "Jju", "kam": "Kamba", "kbd": "Kabardiaans", "kcg": "Tyap", "kde": "Makonde", "kea": "Kabuverdianu", "kfo": "Koro", "kg": "Kongolees", "kha": "Khasi", "khq": "Koyra Chiini", "ki": "Kikuyu", "kj": "Kuanyama", "kk": "Kazaks", "kkj": "Kako", "kl": "Kalaallisut", "kln": "Kalenjin", "km": "Khmer", "kmb": "Kimbundu", "kn": "Kannada", "ko": "Koreaans", "koi": "Komi-Permyaks", "kok": "Konkani", "kpe": "Kpellees", "kr": "Kanuri", "krc": "Karachay-Balkar", "krl": "Karelies", "kru": "Kurukh", "ks": "Kasjmirs", "ksb": "Shambala", "ksf": "Bafia", "ksh": "Keuls", "ku": "Koerdies", "kum": "Kumyk", "kv": "Komi", "kw": "Kornies", "ky": "Kirgisies", "la": "Latyn", "lad": "Ladino", "lag": "Langi", "lb": "Luxemburgs", "lez": "Lezghies", "lg": "Ganda", "li": "Limburgs", "lkt": "Lakota", "ln": "Lingaals", "lo": "Lao", "loz": "Lozi", "lrc": "Noord-Luri", "lt": "Litaus", "lu": "Luba-Katanga", "lua": "Luba-Lulua", "lun": "Lunda", "luo": "Luo", "lus": "Mizo", "luy": "Luyia", "lv": "Letties", "mad": "Madurees", "mag": "Magahi", "mai": "Maithili", "mak": "Makasar", "mas": "Masai", "mdf": "Moksha", "men": "Mende", "mer": "Meru", "mfe": "Morisjen", "mg": "Malgassies", "mgh": "Makhuwa-Meetto", "mgo": "Meta’", "mh": "Marshallees", "mi": "Maori", "mic": "Micmac", "min": "Minangkabaus", "mk": "Masedonies", "ml": "Malabaars", "mn": "Mongools", "mni": "Manipuri", "moh": "Mohawk", "mos": "Mossi", "mr": "Marathi", "ms": "Maleis", "mt": "Maltees", "mua": "Mundang", "mus": "Kreek", "mwl": "Mirandees", "my": "Birmaans", "myv": "Erzya", "mzn": "Masanderani", "na": "Nauru", "nan": "Min Nan-Sjinees", "nap": "Neapolitaans", "naq": "Nama", "nb": "Boeknoors", "nd": "Noord-Ndebele", "nds": "Lae Duits", "nds-NL": "Nedersaksies", "ne": "Nepalees", "new": "Newari", "ng": "Ndonga", "nia": "Nias", "niu": "Niueaans", "nl": "Nederlands", "nl-BE": "Vlaams", "nmg": "Kwasio", "nn": "Nuwe Noors", "nnh": "Ngiemboon", "no": "Noors", "nog": "Nogai", "nqo": "N’Ko", "nr": "Suid-Ndebele", "nso": "Noord-Sotho", "nus": "Nuer", "nv": "Navajo", "ny": "Nyanja", "nyn": "Nyankole", "oc": "Oksitaans", "om": "Oromo", "or": "Oriya", "os": "Osseties", "pa": "Pandjabi", "pag": "Pangasinan", "pam": "Pampanga", "pap": "Papiamento", "pau": "Palauaans", "pcm": "Nigeriese Pidgin", "phn": "Fenisies", "pl": "Pools", "prg": "Pruisies", "ps": "Pasjto", "pt": "Portugees", "pt-BR": "Portugees (Brasilië)", "pt-PT": "Portugees (Portugal)", "qu": "Quechua", "quc": "K’iche’", "rap": "Rapanui", "rar": "Rarotongaans", "rm": "Reto-Romaans", "rn": "Rundi", "ro": "Roemeens", "ro-MD": "Roemeens (Moldowa)", "rof": "Rombo", "root": "Root", "ru": "Russies", "rup": "Aromanies", "rw": "Rwandees", "rwk": "Rwa", "sa": "Sanskrit", "sad": "Sandawees", "sah": "Sakhaans", "saq": "Samburu", "sat": "Santalies", "sba": "Ngambay", "sbp": "Sangu", "sc": "Sardinies", "scn": "Sisiliaans", "sco": "Skots", "sd": "Sindhi", "sdh": "Suid-Koerdies", "se": "Noord-Sami", "seh": "Sena", "ses": "Koyraboro Senni", "sg": "Sango", "sh": "Serwo-Kroaties", "shi": "Tachelhit", "shn": "Shan", "si": "Sinhala", "sk": "Slowaaks", "sl": "Sloweens", "sm": "Samoaans", "sma": "Suid-Sami", "smj": "Lule Sami", "smn": "Inari Sami", "sms": "Skolt Sami", "sn": "Shona", "snk": "Soninke", "so": "Somalies", "sq": "Albanees", "sr": "Serwies", "srn": "Sranan Tongo", "ss": "Swazi", "ssy": "Saho", "st": "Suid-Sotho", "su": "Sundanees", "suk": "Sukuma", "sv": "Sweeds", "sw": "Swahili", "sw-CD": "Swahili (Demokratiese Republiek van die Kongo)", "swb": "Comoraans", "syr": "Siries", "ta": "Tamil", "te": "Teloegoe", "tem": "Timne", "teo": "Teso", "tet": "Tetoem", "tg": "Tadjiks", "th": "Thai", "ti": "Tigrinya", "tig": "Tigre", "tk": "Turkmeens", "tlh": "Klingon", "tn": "Tswana", "to": "Tongaans", "tpi": "Tok Pisin", "tr": "Turks", "trv": "Taroko", "ts": "Tsonga", "tt": "Tataars", "tum": "Toemboeka", "tvl": "Tuvalu", "tw": "Twi", "twq": "Tasawaq", "ty": "Tahities", "tyv": "Tuvinees", "tzm": "Sentraal-Atlas-Tamazight", "udm": "Udmurt", "ug": "Uighur", "uk": "Oekraïens", "umb": "Umbundu", "ur": "Oerdoe", "uz": "Oezbeeks", "vai": "Vai", "ve": "Venda", "vi": "Viëtnamees", "vo": "Volapük", "vun": "Vunjo", "wa": "Walloon", "wae": "Walser", "wal": "Wolaytta", "war": "Waray", "wbp": "Warlpiri", "wo": "Wolof", "wuu": "Wu-Sjinees", "xal": "Kalmyk", "xh": "Xhosa", "xog": "Soga", "yav": "Yangben", "ybb": "Yemba", "yi": "Jiddisj", "yo": "Yoruba", "yue": "Kantonees", "zgh": "Standaard Marokkaanse Tamazight", "zh": "Sjinees", "zh-Hans": "Chinees (Vereenvoudig)", "zh-Hant": "Chinees (Tradisioneel)", "zu": "Zoeloe", "zun": "Zuni", "zza": "Zaza"}}, + "ar": {"rtl": true, "languageNames": {"aa": "الأفارية", "ab": "الأبخازية", "ace": "الأتشينيزية", "ach": "الأكولية", "ada": "الأدانجمية", "ady": "الأديغة", "ae": "الأفستية", "af": "الأفريقانية", "afh": "الأفريهيلية", "agq": "الأغم", "ain": "الآينوية", "ak": "الأكانية", "akk": "الأكادية", "ale": "الأليوتية", "alt": "الألطائية الجنوبية", "am": "الأمهرية", "an": "الأراغونية", "ang": "الإنجليزية القديمة", "anp": "الأنجيكا", "ar": "العربية", "ar-001": "العربية الرسمية الحديثة", "arc": "الآرامية", "arn": "المابودونغونية", "arp": "الأراباهو", "ars": "اللهجة النجدية", "arw": "الأراواكية", "as": "الأسامية", "asa": "الآسو", "ast": "الأسترية", "av": "الأوارية", "awa": "الأوادية", "ay": "الأيمارا", "az": "الأذربيجانية", "ba": "الباشكيرية", "bal": "البلوشية", "ban": "البالينية", "bas": "الباسا", "bax": "بامن", "bbj": "لغة الغومالا", "be": "البيلاروسية", "bej": "البيجا", "bem": "البيمبا", "bez": "بينا", "bfd": "لغة البافوت", "bg": "البلغارية", "bgn": "البلوشية الغربية", "bho": "البهوجبورية", "bi": "البيسلامية", "bik": "البيكولية", "bin": "البينية", "bkm": "لغة الكوم", "bla": "السيكسيكية", "bm": "البامبارا", "bn": "البنغالية", "bo": "التبتية", "br": "البريتونية", "bra": "البراجية", "brx": "البودو", "bs": "البوسنية", "bss": "أكوس", "bua": "البرياتية", "bug": "البجينيزية", "bum": "لغة البولو", "byn": "البلينية", "byv": "لغة الميدومبا", "ca": "الكتالانية", "cad": "الكادو", "car": "الكاريبية", "cay": "الكايوجية", "cch": "الأتسام", "ce": "الشيشانية", "ceb": "السيبيوانية", "cgg": "تشيغا", "ch": "التشامورو", "chb": "التشيبشا", "chg": "التشاجاتاي", "chk": "التشكيزية", "chm": "الماري", "chn": "الشينوك جارجون", "cho": "الشوكتو", "chp": "الشيباوايان", "chr": "الشيروكي", "chy": "الشايان", "ckb": "السورانية الكردية", "co": "الكورسيكية", "cop": "القبطية", "cr": "الكرى", "crh": "لغة تتار القرم", "crs": "الفرنسية الكريولية السيشيلية", "cs": "التشيكية", "csb": "الكاشبايان", "cu": "سلافية كنسية", "cv": "التشوفاشي", "cy": "الويلزية", "da": "الدانمركية", "dak": "الداكوتا", "dar": "الدارجوا", "dav": "تيتا", "de": "الألمانية", "de-AT": "الألمانية النمساوية", "de-CH": "الألمانية العليا السويسرية", "del": "الديلوير", "den": "السلافية", "dgr": "الدوجريب", "din": "الدنكا", "dje": "الزارمية", "doi": "الدوجرية", "dsb": "صوربيا السفلى", "dua": "الديولا", "dum": "الهولندية الوسطى", "dv": "المالديفية", "dyo": "جولا فونيا", "dyu": "الدايلا", "dz": "الزونخاية", "dzg": "القرعانية", "ebu": "إمبو", "ee": "الإيوي", "efi": "الإفيك", "egy": "المصرية القديمة", "eka": "الإكاجك", "el": "اليونانية", "elx": "الإمايت", "en": "الإنجليزية", "en-AU": "الإنجليزية الأسترالية", "en-CA": "الإنجليزية الكندية", "en-GB": "الإنجليزية البريطانية", "en-US": "الإنجليزية الأمريكية", "enm": "الإنجليزية الوسطى", "eo": "الإسبرانتو", "es": "الإسبانية", "es-419": "الإسبانية أمريكا اللاتينية", "es-ES": "الإسبانية الأوروبية", "es-MX": "الإسبانية المكسيكية", "et": "الإستونية", "eu": "الباسكية", "ewo": "الإيوندو", "fa": "الفارسية", "fan": "الفانج", "fat": "الفانتي", "ff": "الفولانية", "fi": "الفنلندية", "fil": "الفلبينية", "fj": "الفيجية", "fo": "الفاروية", "fon": "الفون", "fr": "الفرنسية", "fr-CA": "الفرنسية الكندية", "fr-CH": "الفرنسية السويسرية", "frc": "الفرنسية الكاجونية", "frm": "الفرنسية الوسطى", "fro": "الفرنسية القديمة", "frr": "الفريزينية الشمالية", "frs": "الفريزينية الشرقية", "fur": "الفريلايان", "fy": "الفريزيان", "ga": "الأيرلندية", "gaa": "الجا", "gag": "الغاغوز", "gan": "الغان الصينية", "gay": "الجايو", "gba": "الجبيا", "gd": "الغيلية الأسكتلندية", "gez": "الجعزية", "gil": "لغة أهل جبل طارق", "gl": "الجاليكية", "gmh": "الألمانية العليا الوسطى", "gn": "الغوارانية", "goh": "الألمانية العليا القديمة", "gon": "الجندي", "gor": "الجورونتالو", "got": "القوطية", "grb": "الجريبو", "grc": "اليونانية القديمة", "gsw": "الألمانية السويسرية", "gu": "الغوجاراتية", "guz": "الغيزية", "gv": "المنكية", "gwi": "غوتشن", "ha": "الهوسا", "hai": "الهيدا", "hak": "الهاكا الصينية", "haw": "لغة هاواي", "he": "العبرية", "hi": "الهندية", "hil": "الهيليجينون", "hit": "الحثية", "hmn": "الهمونجية", "ho": "الهيري موتو", "hr": "الكرواتية", "hsb": "الصوربية العليا", "hsn": "شيانغ الصينية", "ht": "الكريولية الهايتية", "hu": "الهنغارية", "hup": "الهبا", "hy": "الأرمنية", "hz": "الهيريرو", "ia": "اللّغة الوسيطة", "iba": "الإيبان", "ibb": "الإيبيبيو", "id": "الإندونيسية", "ie": "الإنترلينج", "ig": "الإيجبو", "ii": "السيتشيون يي", "ik": "الإينبياك", "ilo": "الإيلوكو", "inh": "الإنجوشية", "io": "الإيدو", "is": "الأيسلندية", "it": "الإيطالية", "iu": "الإينكتيتت", "ja": "اليابانية", "jbo": "اللوجبان", "jgo": "نغومبا", "jmc": "الماتشامية", "jpr": "الفارسية اليهودية", "jrb": "العربية اليهودية", "jv": "الجاوية", "ka": "الجورجية", "kaa": "الكارا-كالباك", "kab": "القبيلية", "kac": "الكاتشين", "kaj": "الجو", "kam": "الكامبا", "kaw": "الكوي", "kbd": "الكاباردايان", "kbl": "كانمبو", "kcg": "التايابية", "kde": "ماكونده", "kea": "كابوفيرديانو", "kfo": "الكورو", "kg": "الكونغو", "kha": "الكازية", "kho": "الخوتانيز", "khq": "كويرا تشيني", "ki": "الكيكيو", "kj": "الكيونياما", "kk": "الكازاخستانية", "kkj": "لغة الكاكو", "kl": "الكالاليست", "kln": "كالينجين", "km": "الخميرية", "kmb": "الكيمبندو", "kn": "الكانادا", "ko": "الكورية", "koi": "كومي-بيرماياك", "kok": "الكونكانية", "kos": "الكوسراين", "kpe": "الكبيل", "kr": "الكانوري", "krc": "الكاراتشاي-بالكار", "krl": "الكاريلية", "kru": "الكوروخ", "ks": "الكشميرية", "ksb": "شامبالا", "ksf": "لغة البافيا", "ksh": "لغة الكولونيان", "ku": "الكردية", "kum": "القموقية", "kut": "الكتيناي", "kv": "الكومي", "kw": "الكورنية", "ky": "القيرغيزية", "la": "اللاتينية", "lad": "اللادينو", "lag": "لانجي", "lah": "اللاهندا", "lam": "اللامبا", "lb": "اللكسمبورغية", "lez": "الليزجية", "lg": "الغاندا", "li": "الليمبورغية", "lkt": "لاكوتا", "ln": "اللينجالا", "lo": "اللاوية", "lol": "منغولى", "lou": "الكريولية اللويزيانية", "loz": "اللوزي", "lrc": "اللرية الشمالية", "lt": "الليتوانية", "lu": "اللوبا كاتانغا", "lua": "اللبا-لؤلؤ", "lui": "اللوسينو", "lun": "اللوندا", "luo": "اللو", "lus": "الميزو", "luy": "لغة اللويا", "lv": "اللاتفية", "mad": "المادريز", "mag": "الماجا", "mai": "المايثيلي", "mak": "الماكاسار", "man": "الماندينغ", "mas": "الماساي", "mde": "مابا", "mdf": "الموكشا", "mdr": "الماندار", "men": "الميند", "mer": "الميرو", "mfe": "المورسيانية", "mg": "الملغاشي", "mga": "الأيرلندية الوسطى", "mgh": "ماخاوا-ميتو", "mgo": "ميتا", "mh": "المارشالية", "mi": "الماورية", "mic": "الميكماكيونية", "min": "المينانجكاباو", "mk": "المقدونية", "ml": "المالايالامية", "mn": "المنغولية", "mnc": "المانشو", "mni": "المانيبورية", "moh": "الموهوك", "mos": "الموسي", "mr": "الماراثية", "ms": "الماليزية", "mt": "المالطية", "mua": "مندنج", "mus": "الكريك", "mwl": "الميرانديز", "mwr": "الماروارية", "my": "البورمية", "myv": "الأرزية", "mzn": "المازندرانية", "na": "النورو", "nan": "مين-نان الصينية", "nap": "النابولية", "naq": "لغة الناما", "nb": "النرويجية بوكمال", "nd": "النديبيل الشمالية", "nds": "الألمانية السفلى", "nds-NL": "السكسونية السفلى", "ne": "النيبالية", "new": "النوارية", "ng": "الندونجا", "nia": "النياس", "niu": "النيوي", "nl": "الهولندية", "nl-BE": "الفلمنكية", "nmg": "كواسيو", "nn": "النرويجية نينورسك", "nnh": "لغة النجيمبون", "no": "النرويجية", "nog": "النوجاي", "non": "النورس القديم", "nqo": "أنكو", "nr": "النديبيل الجنوبي", "nso": "السوتو الشمالية", "nus": "النوير", "nv": "النافاجو", "nwc": "النوارية التقليدية", "ny": "النيانجا", "nym": "النيامويزي", "nyn": "النيانكول", "nyo": "النيورو", "nzi": "النزيما", "oc": "الأوكسيتانية", "oj": "الأوجيبوا", "om": "الأورومية", "or": "الأورية", "os": "الأوسيتيك", "osa": "الأوساج", "ota": "التركية العثمانية", "pa": "البنجابية", "pag": "البانجاسينان", "pal": "البهلوية", "pam": "البامبانجا", "pap": "البابيامينتو", "pau": "البالوان", "pcm": "البدجنية النيجيرية", "peo": "الفارسية القديمة", "phn": "الفينيقية", "pi": "البالية", "pl": "البولندية", "pon": "البوهنبيايان", "prg": "البروسياوية", "pro": "البروفانسية القديمة", "ps": "البشتو", "pt": "البرتغالية", "pt-BR": "البرتغالية البرازيلية", "pt-PT": "البرتغالية الأوروبية", "qu": "الكويتشوا", "quc": "الكيشية", "raj": "الراجاسثانية", "rap": "الراباني", "rar": "الراروتونجاني", "rm": "الرومانشية", "rn": "الرندي", "ro": "الرومانية", "ro-MD": "المولدوفية", "rof": "الرومبو", "rom": "الغجرية", "root": "الجذر", "ru": "الروسية", "rup": "الأرومانيان", "rw": "الكينيارواندا", "rwk": "الروا", "sa": "السنسكريتية", "sad": "السانداوي", "sah": "الساخيّة", "sam": "الآرامية السامرية", "saq": "سامبورو", "sas": "الساساك", "sat": "السانتالية", "sba": "نامبي", "sbp": "سانغو", "sc": "السردينية", "scn": "الصقلية", "sco": "الأسكتلندية", "sd": "السندية", "sdh": "الكردية الجنوبية", "se": "سامي الشمالية", "see": "السنيكا", "seh": "سينا", "sel": "السيلكب", "ses": "كويرابورو سيني", "sg": "السانجو", "sga": "الأيرلندية القديمة", "sh": "صربية-كرواتية", "shi": "تشلحيت", "shn": "الشان", "shu": "العربية التشادية", "si": "السنهالية", "sid": "السيدامو", "sk": "السلوفاكية", "sl": "السلوفانية", "sm": "الساموائية", "sma": "السامي الجنوبي", "smj": "اللول سامي", "smn": "الإيناري سامي", "sms": "السكولت سامي", "sn": "الشونا", "snk": "السونينك", "so": "الصومالية", "sog": "السوجدين", "sq": "الألبانية", "sr": "الصربية", "srn": "السرانان تونجو", "srr": "السرر", "ss": "السواتي", "ssy": "لغة الساهو", "st": "السوتو الجنوبية", "su": "السوندانية", "suk": "السوكوما", "sus": "السوسو", "sux": "السومارية", "sv": "السويدية", "sw": "السواحلية", "sw-CD": "الكونغو السواحلية", "swb": "القمرية", "syc": "سريانية تقليدية", "syr": "السريانية", "ta": "التاميلية", "te": "التيلوغوية", "tem": "التيمن", "teo": "تيسو", "ter": "التيرينو", "tet": "التيتم", "tg": "الطاجيكية", "th": "التايلاندية", "ti": "التغرينية", "tig": "التيغرية", "tiv": "التيف", "tk": "التركمانية", "tkl": "التوكيلاو", "tl": "التاغالوغية", "tlh": "الكلينجون", "tli": "التلينغيتية", "tmh": "التاماشيك", "tn": "التسوانية", "to": "التونغية", "tog": "تونجا - نياسا", "tpi": "التوك بيسين", "tr": "التركية", "trv": "لغة التاروكو", "ts": "السونجا", "tsi": "التسيمشيان", "tt": "التترية", "tum": "التامبوكا", "tvl": "التوفالو", "tw": "التوي", "twq": "تاساواق", "ty": "التاهيتية", "tyv": "التوفية", "tzm": "الأمازيغية وسط الأطلس", "udm": "الأدمرت", "ug": "الأويغورية", "uga": "اليجاريتيك", "uk": "الأوكرانية", "umb": "الأمبندو", "ur": "الأوردية", "uz": "الأوزبكية", "vai": "الفاي", "ve": "الفيندا", "vi": "الفيتنامية", "vo": "لغة الفولابوك", "vot": "الفوتيك", "vun": "الفونجو", "wa": "الولونية", "wae": "الوالسر", "wal": "الولاياتا", "war": "الواراي", "was": "الواشو", "wbp": "وارلبيري", "wo": "الولوفية", "wuu": "الوو الصينية", "xal": "الكالميك", "xh": "الخوسا", "xog": "السوغا", "yao": "الياو", "yap": "اليابيز", "yav": "يانجبن", "ybb": "يمبا", "yi": "اليديشية", "yo": "اليوروبا", "yue": "الكَنْتُونية", "za": "الزهيونج", "zap": "الزابوتيك", "zbl": "رموز المعايير الأساسية", "zen": "الزيناجا", "zgh": "التمازيغية المغربية القياسية", "zh": "الصينية", "zh-Hans": "الصينية المبسطة", "zh-Hant": "الصينية التقليدية", "zu": "الزولو", "zun": "الزونية", "zza": "زازا"}}, + "ar-AA": {"rtl": true, "languageNames": {"aa": "الأفارية", "ab": "الأبخازية", "ace": "الأتشينيزية", "ach": "الأكولية", "ada": "الأدانجمية", "ady": "الأديغة", "ae": "الأفستية", "af": "الأفريقانية", "afh": "الأفريهيلية", "agq": "الأغم", "ain": "الآينوية", "ak": "الأكانية", "akk": "الأكادية", "ale": "الأليوتية", "alt": "الألطائية الجنوبية", "am": "الأمهرية", "an": "الأراغونية", "ang": "الإنجليزية القديمة", "anp": "الأنجيكا", "ar": "العربية", "ar-001": "العربية الرسمية الحديثة", "arc": "الآرامية", "arn": "المابودونغونية", "arp": "الأراباهو", "ars": "اللهجة النجدية", "arw": "الأراواكية", "as": "الأسامية", "asa": "الآسو", "ast": "الأسترية", "av": "الأوارية", "awa": "الأوادية", "ay": "الأيمارا", "az": "الأذربيجانية", "ba": "الباشكيرية", "bal": "البلوشية", "ban": "البالينية", "bas": "الباسا", "bax": "بامن", "bbj": "لغة الغومالا", "be": "البيلاروسية", "bej": "البيجا", "bem": "البيمبا", "bez": "بينا", "bfd": "لغة البافوت", "bg": "البلغارية", "bgn": "البلوشية الغربية", "bho": "البهوجبورية", "bi": "البيسلامية", "bik": "البيكولية", "bin": "البينية", "bkm": "لغة الكوم", "bla": "السيكسيكية", "bm": "البامبارا", "bn": "البنغالية", "bo": "التبتية", "br": "البريتونية", "bra": "البراجية", "brx": "البودو", "bs": "البوسنية", "bss": "أكوس", "bua": "البرياتية", "bug": "البجينيزية", "bum": "لغة البولو", "byn": "البلينية", "byv": "لغة الميدومبا", "ca": "الكتالانية", "cad": "الكادو", "car": "الكاريبية", "cay": "الكايوجية", "cch": "الأتسام", "ce": "الشيشانية", "ceb": "السيبيوانية", "cgg": "تشيغا", "ch": "التشامورو", "chb": "التشيبشا", "chg": "التشاجاتاي", "chk": "التشكيزية", "chm": "الماري", "chn": "الشينوك جارجون", "cho": "الشوكتو", "chp": "الشيباوايان", "chr": "الشيروكي", "chy": "الشايان", "ckb": "السورانية الكردية", "co": "الكورسيكية", "cop": "القبطية", "cr": "الكرى", "crh": "لغة تتار القرم", "crs": "الفرنسية الكريولية السيشيلية", "cs": "التشيكية", "csb": "الكاشبايان", "cu": "سلافية كنسية", "cv": "التشوفاشي", "cy": "الويلزية", "da": "الدانمركية", "dak": "الداكوتا", "dar": "الدارجوا", "dav": "تيتا", "de": "الألمانية", "de-AT": "الألمانية النمساوية", "de-CH": "الألمانية العليا السويسرية", "del": "الديلوير", "den": "السلافية", "dgr": "الدوجريب", "din": "الدنكا", "dje": "الزارمية", "doi": "الدوجرية", "dsb": "صوربيا السفلى", "dua": "الديولا", "dum": "الهولندية الوسطى", "dv": "المالديفية", "dyo": "جولا فونيا", "dyu": "الدايلا", "dz": "الزونخاية", "dzg": "القرعانية", "ebu": "إمبو", "ee": "الإيوي", "efi": "الإفيك", "egy": "المصرية القديمة", "eka": "الإكاجك", "el": "اليونانية", "elx": "الإمايت", "en": "الإنجليزية", "en-AU": "الإنجليزية الأسترالية", "en-CA": "الإنجليزية الكندية", "en-GB": "الإنجليزية البريطانية", "en-US": "الإنجليزية الأمريكية", "enm": "الإنجليزية الوسطى", "eo": "الإسبرانتو", "es": "الإسبانية", "es-419": "الإسبانية أمريكا اللاتينية", "es-ES": "الإسبانية الأوروبية", "es-MX": "الإسبانية المكسيكية", "et": "الإستونية", "eu": "الباسكية", "ewo": "الإيوندو", "fa": "الفارسية", "fan": "الفانج", "fat": "الفانتي", "ff": "الفولانية", "fi": "الفنلندية", "fil": "الفلبينية", "fj": "الفيجية", "fo": "الفاروية", "fon": "الفون", "fr": "الفرنسية", "fr-CA": "الفرنسية الكندية", "fr-CH": "الفرنسية السويسرية", "frc": "الفرنسية الكاجونية", "frm": "الفرنسية الوسطى", "fro": "الفرنسية القديمة", "frr": "الفريزينية الشمالية", "frs": "الفريزينية الشرقية", "fur": "الفريلايان", "fy": "الفريزيان", "ga": "الأيرلندية", "gaa": "الجا", "gag": "الغاغوز", "gan": "الغان الصينية", "gay": "الجايو", "gba": "الجبيا", "gd": "الغيلية الأسكتلندية", "gez": "الجعزية", "gil": "لغة أهل جبل طارق", "gl": "الجاليكية", "gmh": "الألمانية العليا الوسطى", "gn": "الغوارانية", "goh": "الألمانية العليا القديمة", "gon": "الجندي", "gor": "الجورونتالو", "got": "القوطية", "grb": "الجريبو", "grc": "اليونانية القديمة", "gsw": "الألمانية السويسرية", "gu": "الغوجاراتية", "guz": "الغيزية", "gv": "المنكية", "gwi": "غوتشن", "ha": "الهوسا", "hai": "الهيدا", "hak": "الهاكا الصينية", "haw": "لغة هاواي", "he": "العبرية", "hi": "الهندية", "hil": "الهيليجينون", "hit": "الحثية", "hmn": "الهمونجية", "ho": "الهيري موتو", "hr": "الكرواتية", "hsb": "الصوربية العليا", "hsn": "شيانغ الصينية", "ht": "الكريولية الهايتية", "hu": "الهنغارية", "hup": "الهبا", "hy": "الأرمنية", "hz": "الهيريرو", "ia": "اللّغة الوسيطة", "iba": "الإيبان", "ibb": "الإيبيبيو", "id": "الإندونيسية", "ie": "الإنترلينج", "ig": "الإيجبو", "ii": "السيتشيون يي", "ik": "الإينبياك", "ilo": "الإيلوكو", "inh": "الإنجوشية", "io": "الإيدو", "is": "الأيسلندية", "it": "الإيطالية", "iu": "الإينكتيتت", "ja": "اليابانية", "jbo": "اللوجبان", "jgo": "نغومبا", "jmc": "الماتشامية", "jpr": "الفارسية اليهودية", "jrb": "العربية اليهودية", "jv": "الجاوية", "ka": "الجورجية", "kaa": "الكارا-كالباك", "kab": "القبيلية", "kac": "الكاتشين", "kaj": "الجو", "kam": "الكامبا", "kaw": "الكوي", "kbd": "الكاباردايان", "kbl": "كانمبو", "kcg": "التايابية", "kde": "ماكونده", "kea": "كابوفيرديانو", "kfo": "الكورو", "kg": "الكونغو", "kha": "الكازية", "kho": "الخوتانيز", "khq": "كويرا تشيني", "ki": "الكيكيو", "kj": "الكيونياما", "kk": "الكازاخستانية", "kkj": "لغة الكاكو", "kl": "الكالاليست", "kln": "كالينجين", "km": "الخميرية", "kmb": "الكيمبندو", "kn": "الكانادا", "ko": "الكورية", "koi": "كومي-بيرماياك", "kok": "الكونكانية", "kos": "الكوسراين", "kpe": "الكبيل", "kr": "الكانوري", "krc": "الكاراتشاي-بالكار", "krl": "الكاريلية", "kru": "الكوروخ", "ks": "الكشميرية", "ksb": "شامبالا", "ksf": "لغة البافيا", "ksh": "لغة الكولونيان", "ku": "الكردية", "kum": "القموقية", "kut": "الكتيناي", "kv": "الكومي", "kw": "الكورنية", "ky": "القيرغيزية", "la": "اللاتينية", "lad": "اللادينو", "lag": "لانجي", "lah": "اللاهندا", "lam": "اللامبا", "lb": "اللكسمبورغية", "lez": "الليزجية", "lg": "الغاندا", "li": "الليمبورغية", "lkt": "لاكوتا", "ln": "اللينجالا", "lo": "اللاوية", "lol": "منغولى", "lou": "الكريولية اللويزيانية", "loz": "اللوزي", "lrc": "اللرية الشمالية", "lt": "الليتوانية", "lu": "اللوبا كاتانغا", "lua": "اللبا-لؤلؤ", "lui": "اللوسينو", "lun": "اللوندا", "luo": "اللو", "lus": "الميزو", "luy": "لغة اللويا", "lv": "اللاتفية", "mad": "المادريز", "mag": "الماجا", "mai": "المايثيلي", "mak": "الماكاسار", "man": "الماندينغ", "mas": "الماساي", "mde": "مابا", "mdf": "الموكشا", "mdr": "الماندار", "men": "الميند", "mer": "الميرو", "mfe": "المورسيانية", "mg": "الملغاشي", "mga": "الأيرلندية الوسطى", "mgh": "ماخاوا-ميتو", "mgo": "ميتا", "mh": "المارشالية", "mi": "الماورية", "mic": "الميكماكيونية", "min": "المينانجكاباو", "mk": "المقدونية", "ml": "المالايالامية", "mn": "المنغولية", "mnc": "المانشو", "mni": "المانيبورية", "moh": "الموهوك", "mos": "الموسي", "mr": "الماراثية", "ms": "الماليزية", "mt": "المالطية", "mua": "مندنج", "mus": "الكريك", "mwl": "الميرانديز", "mwr": "الماروارية", "my": "البورمية", "myv": "الأرزية", "mzn": "المازندرانية", "na": "النورو", "nan": "مين-نان الصينية", "nap": "النابولية", "naq": "لغة الناما", "nb": "النرويجية بوكمال", "nd": "النديبيل الشمالية", "nds": "الألمانية السفلى", "nds-NL": "السكسونية السفلى", "ne": "النيبالية", "new": "النوارية", "ng": "الندونجا", "nia": "النياس", "niu": "النيوي", "nl": "الهولندية", "nl-BE": "الفلمنكية", "nmg": "كواسيو", "nn": "النرويجية نينورسك", "nnh": "لغة النجيمبون", "no": "النرويجية", "nog": "النوجاي", "non": "النورس القديم", "nqo": "أنكو", "nr": "النديبيل الجنوبي", "nso": "السوتو الشمالية", "nus": "النوير", "nv": "النافاجو", "nwc": "النوارية التقليدية", "ny": "النيانجا", "nym": "النيامويزي", "nyn": "النيانكول", "nyo": "النيورو", "nzi": "النزيما", "oc": "الأوكسيتانية", "oj": "الأوجيبوا", "om": "الأورومية", "or": "الأورية", "os": "الأوسيتيك", "osa": "الأوساج", "ota": "التركية العثمانية", "pa": "البنجابية", "pag": "البانجاسينان", "pal": "البهلوية", "pam": "البامبانجا", "pap": "البابيامينتو", "pau": "البالوان", "pcm": "البدجنية النيجيرية", "peo": "الفارسية القديمة", "phn": "الفينيقية", "pi": "البالية", "pl": "البولندية", "pon": "البوهنبيايان", "prg": "البروسياوية", "pro": "البروفانسية القديمة", "ps": "البشتو", "pt": "البرتغالية", "pt-BR": "البرتغالية البرازيلية", "pt-PT": "البرتغالية الأوروبية", "qu": "الكويتشوا", "quc": "الكيشية", "raj": "الراجاسثانية", "rap": "الراباني", "rar": "الراروتونجاني", "rm": "الرومانشية", "rn": "الرندي", "ro": "الرومانية", "ro-MD": "المولدوفية", "rof": "الرومبو", "rom": "الغجرية", "root": "الجذر", "ru": "الروسية", "rup": "الأرومانيان", "rw": "الكينيارواندا", "rwk": "الروا", "sa": "السنسكريتية", "sad": "السانداوي", "sah": "الساخيّة", "sam": "الآرامية السامرية", "saq": "سامبورو", "sas": "الساساك", "sat": "السانتالية", "sba": "نامبي", "sbp": "سانغو", "sc": "السردينية", "scn": "الصقلية", "sco": "الأسكتلندية", "sd": "السندية", "sdh": "الكردية الجنوبية", "se": "سامي الشمالية", "see": "السنيكا", "seh": "سينا", "sel": "السيلكب", "ses": "كويرابورو سيني", "sg": "السانجو", "sga": "الأيرلندية القديمة", "sh": "صربية-كرواتية", "shi": "تشلحيت", "shn": "الشان", "shu": "العربية التشادية", "si": "السنهالية", "sid": "السيدامو", "sk": "السلوفاكية", "sl": "السلوفانية", "sm": "الساموائية", "sma": "السامي الجنوبي", "smj": "اللول سامي", "smn": "الإيناري سامي", "sms": "السكولت سامي", "sn": "الشونا", "snk": "السونينك", "so": "الصومالية", "sog": "السوجدين", "sq": "الألبانية", "sr": "الصربية", "srn": "السرانان تونجو", "srr": "السرر", "ss": "السواتي", "ssy": "لغة الساهو", "st": "السوتو الجنوبية", "su": "السوندانية", "suk": "السوكوما", "sus": "السوسو", "sux": "السومارية", "sv": "السويدية", "sw": "السواحلية", "sw-CD": "الكونغو السواحلية", "swb": "القمرية", "syc": "سريانية تقليدية", "syr": "السريانية", "ta": "التاميلية", "te": "التيلوغوية", "tem": "التيمن", "teo": "تيسو", "ter": "التيرينو", "tet": "التيتم", "tg": "الطاجيكية", "th": "التايلاندية", "ti": "التغرينية", "tig": "التيغرية", "tiv": "التيف", "tk": "التركمانية", "tkl": "التوكيلاو", "tl": "التاغالوغية", "tlh": "الكلينجون", "tli": "التلينغيتية", "tmh": "التاماشيك", "tn": "التسوانية", "to": "التونغية", "tog": "تونجا - نياسا", "tpi": "التوك بيسين", "tr": "التركية", "trv": "لغة التاروكو", "ts": "السونجا", "tsi": "التسيمشيان", "tt": "التترية", "tum": "التامبوكا", "tvl": "التوفالو", "tw": "التوي", "twq": "تاساواق", "ty": "التاهيتية", "tyv": "التوفية", "tzm": "الأمازيغية وسط الأطلس", "udm": "الأدمرت", "ug": "الأويغورية", "uga": "اليجاريتيك", "uk": "الأوكرانية", "umb": "الأمبندو", "ur": "الأوردية", "uz": "الأوزبكية", "vai": "الفاي", "ve": "الفيندا", "vi": "الفيتنامية", "vo": "لغة الفولابوك", "vot": "الفوتيك", "vun": "الفونجو", "wa": "الولونية", "wae": "الوالسر", "wal": "الولاياتا", "war": "الواراي", "was": "الواشو", "wbp": "وارلبيري", "wo": "الولوفية", "wuu": "الوو الصينية", "xal": "الكالميك", "xh": "الخوسا", "xog": "السوغا", "yao": "الياو", "yap": "اليابيز", "yav": "يانجبن", "ybb": "يمبا", "yi": "اليديشية", "yo": "اليوروبا", "yue": "الكَنْتُونية", "za": "الزهيونج", "zap": "الزابوتيك", "zbl": "رموز المعايير الأساسية", "zen": "الزيناجا", "zgh": "التمازيغية المغربية القياسية", "zh": "الصينية", "zh-Hans": "الصينية المبسطة", "zh-Hant": "الصينية التقليدية", "zu": "الزولو", "zun": "الزونية", "zza": "زازا"}}, + "ast": {"rtl": false, "languageNames": {"aa": "afar", "ab": "abkhazianu", "ace": "achinés", "ach": "acoli", "ada": "adangme", "ady": "adyghe", "ae": "avestanín", "aeb": "árabe de Túnez", "af": "afrikaans", "afh": "afrihili", "agq": "aghem", "ain": "ainu", "ak": "akan", "akk": "acadianu", "akz": "alabama", "ale": "aleut", "aln": "gheg d’Albania", "alt": "altai del sur", "am": "amháricu", "an": "aragonés", "ang": "inglés antiguu", "anp": "angika", "ar": "árabe", "ar-001": "árabe estándar modernu", "arc": "araméu", "arn": "mapuche", "aro": "araona", "arp": "arapaho", "arq": "árabe d’Arxelia", "arw": "arawak", "ary": "árabe de Marruecos", "arz": "árabe d’Exiptu", "as": "asamés", "asa": "asu", "ase": "llingua de signos americana", "ast": "asturianu", "av": "aváricu", "avk": "kotava", "awa": "awadhi", "ay": "aymara", "az": "azerbaixanu", "ba": "bashkir", "bal": "baluchi", "ban": "balinés", "bar": "bávaru", "bas": "basaa", "bax": "bamun", "bbc": "batak toba", "bbj": "ghomala", "be": "bielorrusu", "bej": "beja", "bem": "bemba", "bew": "betawi", "bez": "bena", "bfd": "bafut", "bfq": "badaga", "bg": "búlgaru", "bgn": "balochi occidental", "bho": "bhojpuri", "bi": "bislama", "bik": "bikol", "bin": "bini", "bjn": "banjar", "bkm": "kom", "bla": "siksika", "bm": "bambara", "bn": "bengalín", "bo": "tibetanu", "bpy": "bishnupriya", "bqi": "bakhtiari", "br": "bretón", "bra": "braj", "brh": "brahui", "brx": "bodo", "bs": "bosniu", "bss": "akoose", "bua": "buriat", "bug": "buginés", "bum": "bulu", "byn": "blin", "byv": "medumba", "ca": "catalán", "cad": "caddo", "car": "caribe", "cay": "cayuga", "cch": "atsam", "ce": "chechenu", "ceb": "cebuanu", "cgg": "chiga", "ch": "chamorro", "chb": "chibcha", "chg": "chagatai", "chk": "chuukés", "chm": "mari", "chn": "xíriga chinook", "cho": "choctaw", "chp": "chipewyanu", "chr": "cheroqui", "chy": "cheyenne", "ckb": "kurdu central", "co": "corsu", "cop": "cópticu", "cps": "capiznon", "cr": "cree", "crh": "turcu de Crimea", "crs": "francés criollu seselwa", "cs": "checu", "csb": "kashubianu", "cu": "eslávicu eclesiásticu", "cv": "chuvash", "cy": "galés", "da": "danés", "dak": "dakota", "dar": "dargwa", "dav": "taita", "de": "alemán", "de-AT": "alemán d’Austria", "de-CH": "altualemán de Suiza", "del": "delaware", "den": "slave", "dgr": "dogrib", "din": "dinka", "dje": "zarma", "doi": "dogri", "dsb": "baxu sorbiu", "dtp": "dusun central", "dua": "duala", "dum": "neerlandés mediu", "dv": "divehi", "dyo": "jola-fonyi", "dyu": "dyula", "dz": "dzongkha", "dzg": "dazaga", "ebu": "embú", "ee": "ewe", "efi": "efik", "egl": "emilianu", "egy": "exipciu antiguu", "eka": "ekajuk", "el": "griegu", "elx": "elamita", "en": "inglés", "en-AU": "inglés d’Australia", "en-CA": "inglés de Canadá", "en-GB": "inglés de Gran Bretaña", "en-US": "inglés d’Estaos Xuníos", "enm": "inglés mediu", "eo": "esperanto", "es": "español", "es-419": "español d’América Llatina", "es-ES": "español européu", "es-MX": "español de Méxicu", "esu": "yupik central", "et": "estoniu", "eu": "vascu", "ewo": "ewondo", "ext": "estremeñu", "fa": "persa", "fan": "fang", "fat": "fanti", "ff": "fulah", "fi": "finlandés", "fil": "filipín", "fit": "finlandés de Tornedalen", "fj": "fixanu", "fo": "feroés", "fr": "francés", "fr-CA": "francés de Canadá", "fr-CH": "francés de Suiza", "frc": "francés cajun", "frm": "francés mediu", "fro": "francés antiguu", "frp": "arpitanu", "frr": "frisón del norte", "frs": "frisón oriental", "fur": "friulianu", "fy": "frisón occidental", "ga": "irlandés", "gaa": "ga", "gag": "gagauz", "gan": "chinu gan", "gay": "gayo", "gba": "gbaya", "gbz": "dari zoroastrianu", "gd": "gaélicu escocés", "gez": "geez", "gil": "gilbertés", "gl": "gallegu", "glk": "gilaki", "gmh": "altualemán mediu", "gn": "guaraní", "goh": "altualemán antiguu", "gom": "goan konkani", "gon": "gondi", "gor": "gorontalo", "got": "góticu", "grb": "grebo", "grc": "griegu antiguu", "gsw": "alemán de Suiza", "gu": "guyaratí", "guc": "wayuu", "gur": "frafra", "guz": "gusii", "gv": "manés", "gwi": "gwichʼin", "ha": "ḥausa", "hai": "haida", "hak": "chinu hakka", "haw": "hawaianu", "he": "hebréu", "hi": "hindi", "hif": "hindi de Fiji", "hil": "hiligaynon", "hit": "hitita", "hmn": "hmong", "ho": "hiri motu", "hr": "croata", "hsb": "altu sorbiu", "hsn": "chinu xiang", "ht": "haitianu", "hu": "húngaru", "hup": "hupa", "hy": "armeniu", "hz": "herero", "ia": "interlingua", "iba": "iban", "ibb": "ibibio", "id": "indonesiu", "ie": "interlingue", "ig": "igbo", "ii": "yi de Sichuán", "ik": "inupiaq", "ilo": "iloko", "inh": "ingush", "io": "ido", "is": "islandés", "it": "italianu", "iu": "inuktitut", "izh": "ingrianu", "ja": "xaponés", "jam": "inglés criollu xamaicanu", "jbo": "lojban", "jgo": "ngomba", "jmc": "machame", "jpr": "xudeo-persa", "jrb": "xudeo-árabe", "jut": "jutlandés", "jv": "xavanés", "ka": "xeorxanu", "kaa": "kara-kalpak", "kab": "kabileñu", "kac": "kachin", "kaj": "jju", "kam": "kamba", "kaw": "kawi", "kbd": "kabardianu", "kbl": "kanembu", "kcg": "tyap", "kde": "makonde", "kea": "cabuverdianu", "ken": "kenyang", "kfo": "koro", "kg": "kongo", "kgp": "kaingang", "kha": "khasi", "kho": "khotanés", "khq": "koyra chiini", "khw": "khowar", "ki": "kikuyu", "kiu": "kirmanjki", "kj": "kuanyama", "kk": "kazaquistanín", "kkj": "kako", "kl": "kalaallisut", "kln": "kalenjin", "km": "ḥemer", "kmb": "kimbundu", "kn": "canarés", "ko": "coreanu", "koi": "komi-permyak", "kok": "konkani", "kos": "kosraeanu", "kpe": "kpelle", "kr": "kanuri", "krc": "karachay-balkar", "kri": "krio", "krj": "kinaray-a", "krl": "karelianu", "kru": "kurukh", "ks": "cachemirés", "ksb": "shambala", "ksf": "bafia", "ksh": "colonianu", "ku": "curdu", "kum": "kumyk", "kut": "kutenai", "kv": "komi", "kw": "córnicu", "ky": "kirguistanín", "la": "llatín", "lad": "ladino", "lag": "langi", "lah": "lahnda", "lam": "lamba", "lb": "luxemburgués", "lez": "lezghianu", "lfn": "lingua franca nova", "lg": "ganda", "li": "limburgués", "lij": "ligurianu", "liv": "livonianu", "lkt": "lakota", "lmo": "lombardu", "ln": "lingala", "lo": "laosianu", "lol": "mongo", "loz": "lozi", "lrc": "luri del norte", "lt": "lituanu", "ltg": "latgalianu", "lu": "luba-katanga", "lua": "luba-lulua", "lui": "luiseno", "lun": "lunda", "lus": "mizo", "luy": "luyia", "lv": "letón", "lzh": "chinu lliterariu", "lzz": "laz", "mad": "madurés", "maf": "mafa", "mag": "magahi", "mai": "maithili", "mak": "makasar", "man": "mandingo", "mas": "masái", "mde": "maba", "mdf": "moksha", "mdr": "mandar", "men": "mende", "mer": "meru", "mfe": "morisyen", "mg": "malgaxe", "mga": "írlandés mediu", "mgh": "makhuwa-meetto", "mgo": "meta’", "mh": "marshallés", "mi": "maorí", "mic": "micmac", "min": "minangkabau", "mk": "macedoniu", "ml": "malayalam", "mn": "mongol", "mnc": "manchú", "mni": "manipuri", "moh": "mohawk", "mos": "mossi", "mr": "marathi", "mrj": "mari occidental", "ms": "malayu", "mt": "maltés", "mua": "mundang", "mus": "creek", "mwl": "mirandés", "mwr": "marwari", "mwv": "mentawai", "my": "birmanu", "mye": "myene", "myv": "erzya", "mzn": "mazanderani", "na": "nauru", "nan": "chinu min nan", "nap": "napolitanu", "naq": "nama", "nb": "noruegu Bokmål", "nd": "ndebele del norte", "nds": "baxu alemán", "nds-NL": "baxu saxón", "ne": "nepalés", "new": "newari", "ng": "ndonga", "nia": "nias", "niu": "niueanu", "njo": "ao naga", "nl": "neerlandés", "nl-BE": "flamencu", "nmg": "kwasio", "nn": "noruegu Nynorsk", "nnh": "ngiemboon", "no": "noruegu", "nog": "nogai", "non": "noruegu antiguu", "nov": "novial", "nqo": "n’ko", "nr": "ndebele del sur", "nso": "sotho del norte", "nus": "nuer", "nv": "navajo", "nwc": "newari clásicu", "ny": "nyanja", "nym": "nyamwezi", "nyn": "nyankole", "nyo": "nyoro", "nzi": "nzima", "oc": "occitanu", "oj": "ojibwa", "om": "oromo", "or": "oriya", "os": "oséticu", "osa": "osage", "ota": "turcu otomanu", "pa": "punyabí", "pag": "pangasinan", "pal": "pahlavi", "pam": "pampanga", "pap": "papiamento", "pau": "palauanu", "pcd": "pícaru", "pcm": "nixerianu simplificáu", "pdc": "alemán de Pennsylvania", "pdt": "plautdietsch", "peo": "persa antiguu", "pfl": "alemán palatinu", "phn": "feniciu", "pi": "pali", "pl": "polacu", "pms": "piamontés", "pnt": "pónticu", "pon": "pohnpeianu", "prg": "prusianu", "pro": "provenzal antiguu", "ps": "pashtu", "pt": "portugués", "pt-BR": "portugués del Brasil", "pt-PT": "portugués européu", "qu": "quechua", "quc": "kʼicheʼ", "qug": "quichua del altiplanu de Chimborazo", "raj": "rajasthanín", "rap": "rapanui", "rar": "rarotonganu", "rgn": "romañol", "rif": "rifianu", "rm": "romanche", "rn": "rundi", "ro": "rumanu", "ro-MD": "moldavu", "rof": "rombo", "rom": "romaní", "rtm": "rotumanu", "ru": "rusu", "rue": "rusyn", "rug": "roviana", "rup": "aromanianu", "rw": "kinyarwanda", "rwk": "rwa", "sa": "sánscritu", "sad": "sandavés", "sah": "sakha", "sam": "araméu samaritanu", "saq": "samburu", "sas": "sasak", "sat": "santali", "saz": "saurashtra", "sba": "ngambay", "sbp": "sangu", "sc": "sardu", "scn": "sicilianu", "sco": "scots", "sd": "sindhi", "sdc": "sardu sassarés", "sdh": "kurdu del sur", "se": "sami del norte", "see": "séneca", "seh": "sena", "sei": "seri", "sel": "selkup", "ses": "koyraboro senni", "sg": "sango", "sga": "irlandés antiguu", "sgs": "samogitianu", "sh": "serbo-croata", "shi": "tachelhit", "shn": "shan", "shu": "árabe chadianu", "si": "cingalés", "sid": "sidamo", "sk": "eslovacu", "sl": "eslovenu", "sli": "baxu silesianu", "sly": "selayarés", "sm": "samoanu", "sma": "sami del sur", "smj": "lule sami", "smn": "inari sami", "sms": "skolt sami", "sn": "shona", "snk": "soninke", "so": "somalín", "sog": "sogdianu", "sq": "albanu", "sr": "serbiu", "srn": "sranan tongo", "srr": "serer", "ss": "swati", "ssy": "saho", "st": "sotho del sur", "stq": "frisón de Saterland", "su": "sondanés", "suk": "sukuma", "sus": "susu", "sux": "sumeriu", "sv": "suecu", "sw": "suaḥili", "sw-CD": "suaḥili del Congu", "swb": "comorianu", "syc": "siriacu clásicu", "syr": "siriacu", "szl": "silesianu", "ta": "tamil", "tcy": "tulu", "te": "telugu", "tem": "timne", "teo": "teso", "ter": "terena", "tet": "tetum", "tg": "taxiquistanín", "th": "tailandés", "ti": "tigrinya", "tig": "tigre", "tk": "turcomanu", "tkl": "tokelau", "tkr": "tsakhur", "tl": "tagalog", "tlh": "klingon", "tli": "tlingit", "tly": "talixín", "tmh": "tamashek", "tn": "tswana", "to": "tonganu", "tog": "tonga nyasa", "tpi": "tok pisin", "tr": "turcu", "tru": "turoyo", "trv": "taroko", "ts": "tsonga", "tsd": "tsakoniu", "tsi": "tsimshian", "tt": "tártaru", "ttt": "tati musulmán", "tum": "tumbuka", "tvl": "tuvalu", "tw": "twi", "twq": "tasawaq", "ty": "tahitianu", "tyv": "tuvinianu", "tzm": "tamazight del Atles central", "udm": "udmurt", "ug": "uigur", "uga": "ugaríticu", "uk": "ucraín", "umb": "umbundu", "ur": "urdu", "uz": "uzbequistanín", "ve": "venda", "vec": "venecianu", "vep": "vepsiu", "vi": "vietnamín", "vls": "flamencu occidental", "vmf": "franconianu del Main", "vo": "volapük", "vot": "vóticu", "vro": "voro", "vun": "vunjo", "wa": "valón", "wae": "walser", "wal": "wolaytta", "war": "waray", "was": "washo", "wbp": "warlpiri", "wo": "wolof", "wuu": "chinu wu", "xal": "calmuco", "xh": "xhosa", "xmf": "mingrelianu", "xog": "soga", "yap": "yapés", "yav": "yangben", "ybb": "yemba", "yi": "yiddish", "yo": "yoruba", "yrl": "nheengatu", "yue": "cantonés", "za": "zhuang", "zap": "zapoteca", "zbl": "simbólicu Bliss", "zea": "zeelandés", "zen": "zenaga", "zgh": "tamazight estándar de Marruecos", "zh": "chinu", "zh-Hans": "chinu simplificáu", "zh-Hant": "chinu tradicional", "zu": "zulú", "zun": "zuni", "zza": "zaza"}}, + "be": {"rtl": false, "languageNames": {"aa": "афарская", "ab": "абхазская", "ace": "ачэх", "ada": "адангмэ", "ady": "адыгейская", "af": "афрыкаанс", "agq": "агем", "ain": "айнская", "ak": "акан", "akk": "акадская", "ale": "алеуцкая", "alt": "паўднёваалтайская", "am": "амхарская", "an": "арагонская", "ang": "стараанглійская", "anp": "ангіка", "ar": "арабская", "ar-001": "арабская (Свет)", "arc": "арамейская", "arn": "мапудунгун", "arp": "арапаха", "as": "асамская", "asa": "асу", "ast": "астурыйская", "av": "аварская", "awa": "авадхі", "ay": "аймара", "az": "азербайджанская", "ba": "башкірская", "ban": "балійская", "bas": "басаа", "be": "беларуская", "bem": "бемба", "bez": "бена", "bg": "балгарская", "bgn": "заходняя белуджская", "bho": "бхаджпуры", "bi": "біслама", "bin": "эда", "bla": "блэкфут", "bm": "бамбара", "bn": "бенгальская", "bo": "тыбецкая", "br": "брэтонская", "brx": "бода", "bs": "баснійская", "bua": "бурацкая", "bug": "бугіс", "byn": "білен", "ca": "каталанская", "ce": "чачэнская", "ceb": "себуана", "cgg": "чыга", "ch": "чамора", "chb": "чыбча", "chk": "чуук", "chm": "мары", "cho": "чокта", "chr": "чэрокі", "chy": "шэйен", "ckb": "цэнтральнакурдская", "co": "карсіканская", "cop": "копцкая", "crs": "сэсэльва", "cs": "чэшская", "cu": "царкоўнаславянская", "cv": "чувашская", "cy": "валійская", "da": "дацкая", "dak": "дакота", "dar": "даргінская", "dav": "таіта", "de": "нямецкая", "de-AT": "нямецкая (Аўстрыя)", "de-CH": "нямецкая (Швейцарыя)", "dgr": "догрыб", "dje": "зарма", "dsb": "ніжнялужыцкая", "dua": "дуала", "dv": "мальдыўская", "dyo": "джола-фоньі", "dz": "дзонг-кэ", "dzg": "дазага", "ebu": "эмбу", "ee": "эве", "efi": "эфік", "egy": "старажытнаегіпецкая", "eka": "экаджук", "el": "грэчаская", "en": "англійская", "en-AU": "англійская (Аўстралія)", "en-CA": "англійская (Канада)", "en-GB": "англійская (Вялікабрытанія)", "en-US": "англійская (Злучаныя Штаты Амерыкі)", "eo": "эсперанта", "es": "іспанская", "es-419": "іспанская (Лацінская Амерыка)", "es-ES": "іспанская (Іспанія)", "es-MX": "іспанская (Мексіка)", "et": "эстонская", "eu": "баскская", "ewo": "эвонда", "fa": "фарсі", "ff": "фула", "fi": "фінская", "fil": "філіпінская", "fj": "фіджыйская", "fo": "фарэрская", "fon": "фон", "fr": "французская", "fr-CA": "французская (Канада)", "fr-CH": "французская (Швейцарыя)", "fro": "старафранцузская", "fur": "фрыульская", "fy": "заходняя фрызская", "ga": "ірландская", "gaa": "га", "gag": "гагаузская", "gd": "шатландская гэльская", "gez": "геэз", "gil": "кірыбаці", "gl": "галісійская", "gn": "гуарані", "gor": "гарантала", "grc": "старажытнагрэчаская", "gsw": "швейцарская нямецкая", "gu": "гуджараці", "guz": "гусіі", "gv": "мэнская", "gwi": "гуіч’ін", "ha": "хауса", "haw": "гавайская", "he": "іўрыт", "hi": "хіндзі", "hil": "хілігайнон", "hmn": "хмонг", "hr": "харвацкая", "hsb": "верхнялужыцкая", "ht": "гаіцянская крэольская", "hu": "венгерская", "hup": "хупа", "hy": "армянская", "hz": "герэра", "ia": "інтэрлінгва", "iba": "ібан", "ibb": "ібібія", "id": "інданезійская", "ie": "інтэрлінгвэ", "ig": "ігба", "ii": "сычуаньская йі", "ilo": "ілакана", "inh": "інгушская", "io": "іда", "is": "ісландская", "it": "італьянская", "iu": "інуктытут", "ja": "японская", "jbo": "ложбан", "jgo": "нгомба", "jmc": "мачамбэ", "jv": "яванская", "ka": "грузінская", "kab": "кабільская", "kac": "качынская", "kaj": "дджу", "kam": "камба", "kbd": "кабардзінская", "kcg": "т’яп", "kde": "макондэ", "kea": "кабувердыяну", "kfo": "кора", "kha": "кхасі", "khq": "койра чыіні", "ki": "кікуйю", "kj": "куаньяма", "kk": "казахская", "kkj": "како", "kl": "грэнландская", "kln": "календжын", "km": "кхмерская", "kmb": "кімбунду", "kn": "канада", "ko": "карэйская", "koi": "комі-пярмяцкая", "kok": "канкані", "kpe": "кпеле", "kr": "кануры", "krc": "карачай-балкарская", "krl": "карэльская", "kru": "курух", "ks": "кашмірская", "ksb": "шамбала", "ksf": "бафія", "ksh": "кёльнская", "ku": "курдская", "kum": "кумыцкая", "kv": "комі", "kw": "корнская", "ky": "кіргізская", "la": "лацінская", "lad": "ладына", "lag": "лангі", "lb": "люксембургская", "lez": "лезгінская", "lg": "ганда", "li": "лімбургская", "lkt": "лакота", "ln": "лінгала", "lo": "лаоская", "lol": "монга", "loz": "лозі", "lrc": "паўночная луры", "lt": "літоўская", "lu": "луба-катанга", "lua": "луба-касаі", "lun": "лунда", "luo": "луо", "lus": "мізо", "luy": "луйя", "lv": "латышская", "mad": "мадурская", "mag": "магахі", "mai": "майтхілі", "mak": "макасар", "man": "мандынг", "mas": "маасай", "mdf": "макшанская", "men": "мендэ", "mer": "меру", "mfe": "марысьен", "mg": "малагасійская", "mgh": "макуўа-меета", "mgo": "мета", "mh": "маршальская", "mi": "маары", "mic": "мікмак", "min": "мінангкабау", "mk": "македонская", "ml": "малаялам", "mn": "мангольская", "mni": "мейтэй", "moh": "мохак", "mos": "мосі", "mr": "маратхі", "ms": "малайская", "mt": "мальтыйская", "mua": "мунданг", "mus": "мускогі", "mwl": "мірандыйская", "my": "бірманская", "myv": "эрзянская", "mzn": "мазандэранская", "na": "науру", "nap": "неапалітанская", "naq": "нама", "nb": "нарвежская (букмол)", "nd": "паўночная ндэбеле", "nds": "ніжненямецкая", "nds-NL": "ніжнесаксонская", "ne": "непальская", "new": "неўары", "ng": "ндонга", "nia": "ніас", "niu": "ніўэ", "nl": "нідэрландская", "nl-BE": "нідэрландская (Бельгія)", "nmg": "нгумба", "nn": "нарвежская (нюношк)", "nnh": "нг’ембон", "no": "нарвежская", "nog": "нагайская", "non": "старанарвежская", "nqo": "нко", "nr": "паўднёвая ндэбеле", "nso": "паўночная сота", "nus": "нуэр", "nv": "наваха", "ny": "ньянджа", "nyn": "ньянколе", "oc": "аксітанская", "oj": "аджыбва", "om": "арома", "or": "орыя", "os": "асецінская", "pa": "панджабі", "pag": "пангасінан", "pam": "пампанга", "pap": "пап’яменту", "pau": "палау", "pcm": "нігерыйскі піджын", "peo": "стараперсідская", "phn": "фінікійская", "pl": "польская", "prg": "пруская", "pro": "стараправансальская", "ps": "пушту", "pt": "партугальская", "pt-BR": "бразільская партугальская", "pt-PT": "еўрапейская партугальская", "qu": "кечуа", "quc": "кічэ", "raj": "раджастханская", "rap": "рапануі", "rar": "раратонг", "rm": "рэтараманская", "rn": "рундзі", "ro": "румынская", "ro-MD": "малдаўская", "rof": "ромба", "root": "корань", "ru": "руская", "rup": "арумунская", "rw": "руанда", "rwk": "руа", "sa": "санскрыт", "sad": "сандаўэ", "sah": "якуцкая", "saq": "самбуру", "sat": "санталі", "sba": "нгамбай", "sbp": "сангу", "sc": "сардзінская", "scn": "сіцылійская", "sco": "шатландская", "sd": "сіндхі", "sdh": "паўднёвакурдская", "se": "паўночнасаамская", "seh": "сена", "ses": "кайрабора сэні", "sg": "санга", "sga": "стараірландская", "sh": "сербскахарвацкая", "shi": "ташэльхіт", "shn": "шан", "si": "сінгальская", "sk": "славацкая", "sl": "славенская", "sm": "самоа", "sma": "паўднёвасаамская", "smj": "луле-саамская", "smn": "інары-саамская", "sms": "колта-саамская", "sn": "шона", "snk": "санінке", "so": "самалі", "sq": "албанская", "sr": "сербская", "srn": "сранан-тонга", "ss": "суаці", "ssy": "саха", "st": "сесута", "su": "сунда", "suk": "сукума", "sux": "шумерская", "sv": "шведская", "sw": "суахілі", "sw-CD": "кангалезская суахілі", "swb": "каморская", "syr": "сірыйская", "ta": "тамільская", "te": "тэлугу", "tem": "тэмнэ", "teo": "тэсо", "tet": "тэтум", "tg": "таджыкская", "th": "тайская", "ti": "тыгрынья", "tig": "тыгрэ", "tk": "туркменская", "tlh": "клінган", "tn": "тсвана", "to": "танганская", "tpi": "ток-пісін", "tr": "турэцкая", "trv": "тарока", "ts": "тсонга", "tt": "татарская", "tum": "тумбука", "tvl": "тувалу", "twq": "тасаўак", "ty": "таіці", "tyv": "тувінская", "tzm": "цэнтральнаатлаская тамазіхт", "udm": "удмурцкая", "ug": "уйгурская", "uk": "украінская", "umb": "умбунду", "ur": "урду", "uz": "узбекская", "vai": "ваі", "ve": "венда", "vi": "в’етнамская", "vo": "валапюк", "vun": "вунджо", "wa": "валонская", "wae": "вальшская", "wal": "волайта", "war": "варай", "wbp": "варлпіры", "wo": "валоф", "xal": "калмыцкая", "xh": "коса", "xog": "сога", "yav": "янгбэн", "ybb": "йемба", "yi": "ідыш", "yo": "ёруба", "yue": "кантонскі дыялект кітайскай", "zap": "сапатэк", "zgh": "стандартная мараканская тамазіхт", "zh": "кітайская", "zh-Hans": "кітайская (спрошчаныя іерогліфы)", "zh-Hant": "кітайская (традыцыйныя іерогліфы)", "zu": "зулу", "zun": "зуні", "zza": "зазакі"}}, + "bg": {"rtl": false, "languageNames": {"aa": "афарски", "ab": "абхазки", "ace": "ачешки", "ach": "аколи", "ada": "адангме", "ady": "адигейски", "ae": "авестски", "af": "африканс", "afh": "африхили", "agq": "агем", "ain": "айну", "ak": "акан", "akk": "акадски", "ale": "алеутски", "alt": "южноалтайски", "am": "амхарски", "an": "арагонски", "ang": "староанглийски", "anp": "ангика", "ar": "арабски", "ar-001": "съвременен стандартен арабски", "arc": "арамейски", "arn": "мапуче", "arp": "арапахо", "arw": "аравак", "as": "асамски", "asa": "асу", "ast": "астурски", "av": "аварски", "awa": "авади", "ay": "аймара", "az": "азербайджански", "ba": "башкирски", "bal": "балучи", "ban": "балийски", "bas": "баса", "be": "беларуски", "bej": "бея", "bem": "бемба", "bez": "бена", "bg": "български", "bgn": "западен балочи", "bho": "боджпури", "bi": "бислама", "bik": "биколски", "bin": "бини", "bla": "сиксика", "bm": "бамбара", "bn": "бенгалски", "bo": "тибетски", "br": "бретонски", "bra": "брадж", "brx": "бодо", "bs": "босненски", "bua": "бурятски", "bug": "бугински", "byn": "биленски", "ca": "каталонски", "cad": "каддо", "car": "карибски", "cch": "атсам", "ce": "чеченски", "ceb": "себуански", "cgg": "чига", "ch": "чаморо", "chb": "чибча", "chg": "чагатай", "chk": "чуук", "chm": "марийски", "chn": "жаргон чинуук", "cho": "чокто", "chp": "чиипувски", "chr": "черокски", "chy": "шайенски", "ckb": "кюрдски (централен)", "co": "корсикански", "cop": "коптски", "cr": "крии", "crh": "кримскотатарски", "crs": "сеселва, креолски френски", "cs": "чешки", "csb": "кашубски", "cu": "църковнославянски", "cv": "чувашки", "cy": "уелски", "da": "датски", "dak": "дакотски", "dar": "даргински", "dav": "таита", "de": "немски", "de-AT": "немски (Австрия)", "de-CH": "немски (Швейцария)", "del": "делауер", "den": "слейви", "dgr": "догриб", "din": "динка", "dje": "зарма", "doi": "догри", "dsb": "долнолужишки", "dua": "дуала", "dum": "средновековен холандски", "dv": "дивехи", "dyo": "диола-фони", "dyu": "диула", "dz": "дзонгкха", "dzg": "дазага", "ebu": "ембу", "ee": "еве", "efi": "ефик", "egy": "древноегипетски", "eka": "екажук", "el": "гръцки", "elx": "еламитски", "en": "английски", "en-AU": "английски (Австралия)", "en-CA": "английски (Канада)", "en-GB": "английски (Обединеното кралство)", "en-US": "английски (САЩ)", "enm": "средновековен английски", "eo": "есперанто", "es": "испански", "es-419": "испански (Латинска Америка)", "es-ES": "испански (Испания)", "es-MX": "испански (Мексико)", "et": "естонски", "eu": "баски", "ewo": "евондо", "fa": "персийски", "fan": "фанг", "fat": "фанти", "ff": "фула", "fi": "фински", "fil": "филипински", "fj": "фиджийски", "fo": "фарьорски", "fon": "фон", "fr": "френски", "fr-CA": "френски (Канада)", "fr-CH": "френски (Швейцария)", "frm": "средновековен френски", "fro": "старофренски", "frr": "северен фризски", "frs": "източнофризийски", "fur": "фриулиански", "fy": "западнофризийски", "ga": "ирландски", "gaa": "га", "gag": "гагаузки", "gay": "гайо", "gba": "гбая", "gd": "шотландски галски", "gez": "гииз", "gil": "гилбертски", "gl": "галисийски", "gmh": "средновисоконемски", "gn": "гуарани", "goh": "старовисоконемски", "gon": "гонди", "gor": "горонтало", "got": "готически", "grb": "гребо", "grc": "древногръцки", "gsw": "швейцарски немски", "gu": "гуджарати", "guz": "гусии", "gv": "манкски", "gwi": "гвичин", "ha": "хауса", "hai": "хайда", "haw": "хавайски", "he": "иврит", "hi": "хинди", "hil": "хилигайнон", "hit": "хитски", "hmn": "хмонг", "ho": "хири моту", "hr": "хърватски", "hsb": "горнолужишки", "ht": "хаитянски креолски", "hu": "унгарски", "hup": "хупа", "hy": "арменски", "hz": "хереро", "ia": "интерлингва", "iba": "ибан", "ibb": "ибибио", "id": "индонезийски", "ie": "оксидентал", "ig": "игбо", "ii": "съчуански и", "ik": "инупиак", "ilo": "илоко", "inh": "ингушетски", "io": "идо", "is": "исландски", "it": "италиански", "iu": "инуктитут", "ja": "японски", "jbo": "ложбан", "jgo": "нгомба", "jmc": "мачаме", "jpr": "юдео-персийски", "jrb": "юдео-арабски", "jv": "явански", "ka": "грузински", "kaa": "каракалпашки", "kab": "кабилски", "kac": "качински", "kaj": "жжу", "kam": "камба", "kaw": "кави", "kbd": "кабардиан", "kcg": "туап", "kde": "маконде", "kea": "кабовердиански", "kfo": "коро", "kg": "конгоански", "kha": "кхаси", "kho": "котски", "khq": "койра чиини", "ki": "кикую", "kj": "кваняма", "kk": "казахски", "kkj": "како", "kl": "гренландски", "kln": "календжин", "km": "кхмерски", "kmb": "кимбунду", "kn": "каннада", "ko": "корейски", "koi": "коми-пермякски", "kok": "конкани", "kos": "косраен", "kpe": "кпеле", "kr": "канури", "krc": "карачай-балкарски", "krl": "карелски", "kru": "курук", "ks": "кашмирски", "ksb": "шамбала", "ksf": "бафия", "ksh": "кьолнски", "ku": "кюрдски", "kum": "кумикски", "kut": "кутенай", "kv": "коми", "kw": "корнуолски", "ky": "киргизки", "la": "латински", "lad": "ладино", "lag": "ланги", "lah": "лахнда", "lam": "ламба", "lb": "люксембургски", "lez": "лезгински", "lg": "ганда", "li": "лимбургски", "lkt": "лакота", "ln": "лингала", "lo": "лаоски", "lol": "монго", "loz": "лози", "lrc": "северен лури", "lt": "литовски", "lu": "луба-катанга", "lua": "луба-лулуа", "lui": "луисеньо", "lun": "лунда", "luo": "луо", "lus": "мизо", "luy": "лухя", "lv": "латвийски", "mad": "мадурски", "mag": "магахи", "mai": "майтхили", "mak": "макасар", "man": "мандинго", "mas": "масайски", "mdf": "мокша", "mdr": "мандар", "men": "менде", "mer": "меру", "mfe": "морисиен", "mg": "малгашки", "mga": "средновековен ирландски", "mgh": "макуа мето", "mgo": "мета", "mh": "маршалезе", "mi": "маорски", "mic": "микмак", "min": "минангкабау", "mk": "македонски", "ml": "малаялам", "mn": "монголски", "mnc": "манджурски", "mni": "манипурски", "moh": "мохоук", "mos": "моси", "mr": "марати", "ms": "малайски", "mt": "малтийски", "mua": "мунданг", "mus": "мускогски", "mwl": "мирандийски", "mwr": "марвари", "my": "бирмански", "myv": "ерзиа", "mzn": "мазандари", "na": "науру", "nap": "неаполитански", "naq": "нама", "nb": "норвежки (букмол)", "nd": "северен ндебеле", "nds": "долнонемски", "nds-NL": "долносаксонски", "ne": "непалски", "new": "неварски", "ng": "ндонга", "nia": "ниас", "niu": "ниуеан", "nl": "нидерландски", "nl-BE": "фламандски", "nmg": "квасио", "nn": "норвежки (нюношк)", "nnh": "нгиембун", "no": "норвежки", "nog": "ногаи", "non": "старонорвежки", "nqo": "нко", "nr": "южен ндебеле", "nso": "северен сото", "nus": "нуер", "nv": "навахо", "nwc": "класически невари", "ny": "нянджа", "nym": "ниамвези", "nyn": "нянколе", "nyo": "нуоро", "nzi": "нзима", "oc": "окситански", "oj": "оджибва", "om": "оромо", "or": "ория", "os": "осетски", "osa": "осейджи", "ota": "отомански турски", "pa": "пенджабски", "pag": "пангасинан", "pal": "пахлави", "pam": "пампанга", "pap": "папиаменто", "pau": "палауан", "pcm": "нигерийски пиджин", "peo": "староперсийски", "phn": "финикийски", "pi": "пали", "pl": "полски", "pon": "понапеан", "prg": "пруски", "pro": "старопровансалски", "ps": "пущу", "pt": "португалски", "pt-BR": "португалски (Бразилия)", "pt-PT": "португалски (Португалия)", "qu": "кечуа", "quc": "киче", "raj": "раджастански", "rap": "рапа нуи", "rar": "раротонга", "rm": "реторомански", "rn": "рунди", "ro": "румънски", "ro-MD": "молдовски", "rof": "ромбо", "rom": "ромски", "root": "роот", "ru": "руски", "rup": "арумънски", "rw": "киняруанда", "rwk": "рва", "sa": "санскрит", "sad": "сандаве", "sah": "якутски", "sam": "самаритански арамейски", "saq": "самбуру", "sas": "сасак", "sat": "сантали", "sba": "нгамбай", "sbp": "сангу", "sc": "сардински", "scn": "сицилиански", "sco": "шотландски", "sd": "синдхи", "sdh": "южнокюрдски", "se": "северносаамски", "seh": "сена", "sel": "селкуп", "ses": "койраборо сени", "sg": "санго", "sga": "староирландски", "sh": "сърбохърватски", "shi": "ташелхит", "shn": "шан", "si": "синхалски", "sid": "сидамо", "sk": "словашки", "sl": "словенски", "sm": "самоански", "sma": "южносаамски", "smj": "луле-саамски", "smn": "инари-саамски", "sms": "сколт-саамски", "sn": "шона", "snk": "сонинке", "so": "сомалийски", "sog": "согдийски", "sq": "албански", "sr": "сръбски", "srn": "сранан тонго", "srr": "серер", "ss": "свати", "ssy": "сахо", "st": "сесото", "su": "сундански", "suk": "сукума", "sus": "сусу", "sux": "шумерски", "sv": "шведски", "sw": "суахили", "sw-CD": "конгоански суахили", "swb": "коморски", "syc": "класически сирийски", "syr": "сирийски", "ta": "тамилски", "te": "телугу", "tem": "темне", "teo": "тесо", "ter": "терено", "tet": "тетум", "tg": "таджикски", "th": "тайски", "ti": "тигриня", "tig": "тигре", "tiv": "тив", "tk": "туркменски", "tkl": "токелайски", "tl": "тагалог", "tlh": "клингонски", "tli": "тлингит", "tmh": "тамашек", "tn": "тсвана", "to": "тонгански", "tog": "нианса тонга", "tpi": "ток писин", "tr": "турски", "trv": "тароко", "ts": "цонга", "tsi": "цимшиански", "tt": "татарски", "tum": "тумбука", "tvl": "тувалуански", "tw": "туи", "twq": "тасавак", "ty": "таитянски", "tyv": "тувински", "tzm": "централноатласки тамазигт", "udm": "удмуртски", "ug": "уйгурски", "uga": "угаритски", "uk": "украински", "umb": "умбунду", "ur": "урду", "uz": "узбекски", "vai": "ваи", "ve": "венда", "vi": "виетнамски", "vo": "волапюк", "vot": "вотик", "vun": "вунджо", "wa": "валонски", "wae": "валзерски немски", "wal": "валамо", "war": "варай", "was": "уашо", "wbp": "валпири", "wo": "волоф", "xal": "калмик", "xh": "ксоса", "xog": "сога", "yao": "яо", "yap": "япезе", "yav": "янгбен", "ybb": "йемба", "yi": "идиш", "yo": "йоруба", "yue": "кантонски", "za": "зуанг", "zap": "запотек", "zbl": "блис символи", "zen": "зенага", "zgh": "стандартен марокански тамазигт", "zh": "китайски", "zh-Hans": "китайски (опростен)", "zh-Hant": "китайски (традиционен)", "zu": "зулуски", "zun": "зуни", "zza": "заза"}}, + "bn": {"rtl": false, "languageNames": {"aa": "আফার", "ab": "আবখাজিয়ান", "ace": "অ্যাচাইনিজ", "ach": "আকোলি", "ada": "অদাগ্মে", "ady": "আদেগে", "ae": "আবেস্তীয়", "af": "আফ্রিকান", "afh": "আফ্রিহিলি", "agq": "এঘেম", "ain": "আইনু", "ak": "আকান", "akk": "আক্কাদিয়ান", "ale": "আলেউত", "alt": "দক্ষিন আলতাই", "am": "আমহারিক", "an": "আর্গোনিজ", "ang": "প্রাচীন ইংরেজী", "anp": "আঙ্গিকা", "ar": "আরবী", "ar-001": "আধুনিক আদর্শ আরবী", "arc": "আরামাইক", "arn": "মাপুচি", "arp": "আরাপাহো", "arw": "আরাওয়াক", "as": "অসমীয়া", "asa": "আসু", "ast": "আস্তুরিয়", "av": "আভেরিক", "awa": "আওয়াধি", "ay": "আয়মারা", "az": "আজারবাইজানী", "ba": "বাশকির", "bal": "বেলুচী", "ban": "বালিনীয়", "bas": "বাসা", "be": "বেলারুশিয়", "bej": "বেজা", "bem": "বেম্বা", "bez": "বেনা", "bg": "বুলগেরিয়", "bgn": "পশ্চিম বালোচি", "bho": "ভোজপুরি", "bi": "বিসলামা", "bik": "বিকোল", "bin": "বিনি", "bla": "সিকসিকা", "bm": "বামবারা", "bn": "বাংলা", "bo": "তিব্বতি", "br": "ব্রেটন", "bra": "ব্রাজ", "brx": "বোড়ো", "bs": "বসনীয়ান", "bua": "বুরিয়াত", "bug": "বুগিনি", "byn": "ব্লিন", "ca": "কাতালান", "cad": "ক্যাডো", "car": "ক্যারিব", "cch": "আত্সাম", "ce": "চেচেন", "ceb": "চেবুয়ানো", "cgg": "চিগা", "ch": "চামোরো", "chb": "চিবচা", "chg": "চাগাতাই", "chk": "চুকি", "chm": "মারি", "chn": "চিনুক জার্গন", "cho": "চকটোও", "chp": "চিপেওয়ান", "chr": "চেরোকী", "chy": "শাইয়েন", "ckb": "মধ্য কুর্দিশ", "co": "কর্সিকান", "cop": "কপটিক", "cr": "ক্রি", "crh": "ক্রিমিয়ান তুর্কি", "crs": "সেসেলওয়া ক্রেওল ফ্রেঞ্চ", "cs": "চেক", "csb": "কাশুবিয়ান", "cu": "চার্চ স্লাভিক", "cv": "চুবাস", "cy": "ওয়েলশ", "da": "ডেনিশ", "dak": "ডাকোটা", "dar": "দার্গওয়া", "dav": "তাইতা", "de": "জার্মান", "de-AT": "অস্ট্রিয়ান জার্মান", "de-CH": "সুইস হাই জার্মান", "del": "ডেলাওয়ের", "den": "স্ল্যাভ", "dgr": "দোগ্রীব", "din": "ডিংকা", "dje": "জার্মা", "doi": "ডোগরি", "dsb": "নিম্নতর সোর্বিয়ান", "dua": "দুয়ালা", "dum": "মধ্য ডাচ", "dv": "দিবেহি", "dyo": "জোলা-ফনী", "dyu": "ডিউলা", "dz": "জোঙ্গা", "dzg": "দাজাগা", "ebu": "এম্বু", "ee": "ইউয়ি", "efi": "এফিক", "egy": "প্রাচীন মিশরীয়", "eka": "ইকাজুক", "el": "গ্রিক", "elx": "এলামাইট", "en": "ইংরেজি", "en-AU": "অস্ট্রেলীয় ইংরেজি", "en-CA": "কানাডীয় ইংরেজি", "en-GB": "ব্রিটিশ ইংরেজি", "en-US": "আমেরিকার ইংরেজি", "enm": "মধ্য ইংরেজি", "eo": "এস্পেরান্তো", "es": "স্প্যানিশ", "es-419": "ল্যাটিন আমেরিকান স্প্যানিশ", "es-ES": "ইউরোপীয় স্প্যানিশ", "es-MX": "ম্যাক্সিকান স্প্যানিশ", "et": "এস্তোনীয়", "eu": "বাস্ক", "ewo": "ইওন্ডো", "fa": "ফার্সি", "fan": "ফ্যাঙ্গ", "fat": "ফান্তি", "ff": "ফুলাহ্", "fi": "ফিনিশ", "fil": "ফিলিপিনো", "fj": "ফিজিআন", "fo": "ফারোস", "fon": "ফন", "fr": "ফরাসি", "fr-CA": "কানাডীয় ফরাসি", "fr-CH": "সুইস ফরাসি", "frc": "কাজুন ফরাসি", "frm": "মধ্য ফরাসি", "fro": "প্রাচীন ফরাসি", "frr": "উত্তরাঞ্চলীয় ফ্রিসিয়ান", "frs": "পূর্ব ফ্রিসিয়", "fur": "ফ্রিউলিয়ান", "fy": "পশ্চিম ফ্রিসিয়ান", "ga": "আইরিশ", "gaa": "গা", "gag": "গাগাউজ", "gay": "গায়ো", "gba": "বায়া", "gd": "স্কটস-গ্যেলিক", "gez": "গীজ", "gil": "গিলবার্টিজ", "gl": "গ্যালিশিয়", "gmh": "মধ্য-উচ্চ জার্মানি", "gn": "গুয়ারানি", "goh": "প্রাচীন উচ্চ জার্মানি", "gon": "গোন্ডি", "gor": "গোরোন্তালো", "got": "গথিক", "grb": "গ্রেবো", "grc": "প্রাচীন গ্রীক", "gsw": "সুইস জার্মান", "gu": "গুজরাটি", "guz": "গুসী", "gv": "ম্যাঙ্কস", "gwi": "গওইচ্’ইন", "ha": "হাউসা", "hai": "হাইডা", "haw": "হাওয়াইয়ান", "he": "হিব্রু", "hi": "হিন্দি", "hil": "হিলিগ্যায়নোন", "hit": "হিট্টিট", "hmn": "হ্‌মোঙ", "ho": "হিরি মোতু", "hr": "ক্রোয়েশীয়", "hsb": "উচ্চ সোর্বিয়ান", "hsn": "Xiang চীনা", "ht": "হাইতিয়ান ক্রেওল", "hu": "হাঙ্গেরীয়", "hup": "হুপা", "hy": "আর্মেনিয়", "hz": "হেরেরো", "ia": "ইন্টারলিঙ্গুয়া", "iba": "ইবান", "ibb": "ইবিবিও", "id": "ইন্দোনেশীয়", "ie": "ইন্টারলিঙ্গ", "ig": "ইগ্‌বো", "ii": "সিচুয়ান য়ি", "ik": "ইনুপিয়াক", "ilo": "ইলোকো", "inh": "ইঙ্গুশ", "io": "ইডো", "is": "আইসল্যান্ডীয়", "it": "ইতালিয়", "iu": "ইনুক্টিটুট", "ja": "জাপানি", "jbo": "লোজবান", "jgo": "গোম্বা", "jmc": "মাকামে", "jpr": "জুদেও ফার্সি", "jrb": "জুদেও আরবি", "jv": "জাভানিজ", "ka": "জর্জিয়ান", "kaa": "কারা-কাল্পাক", "kab": "কাবাইলে", "kac": "কাচিন", "kaj": "অজ্জু", "kam": "কাম্বা", "kaw": "কাউই", "kbd": "কাবার্ডিয়ান", "kcg": "টাইয়াপ", "kde": "মাকোন্দে", "kea": "কাবুভারদিয়ানু", "kfo": "কোরো", "kg": "কঙ্গো", "kha": "খাশি", "kho": "খোটানিজ", "khq": "কোয়রা চীনি", "ki": "কিকুয়ু", "kj": "কোয়ানিয়ামা", "kk": "কাজাখ", "kkj": "কাকো", "kl": "ক্যালাল্লিসুট", "kln": "কালেনজিন", "km": "খমের", "kmb": "কিম্বুন্দু", "kn": "কন্নড়", "ko": "কোরিয়ান", "koi": "কমি-পারমিআক", "kok": "কোঙ্কানি", "kos": "কোস্রাইন", "kpe": "ক্‌পেল্লে", "kr": "কানুরি", "krc": "কারচে-বাল্কার", "krl": "কারেলিয়ান", "kru": "কুরুখ", "ks": "কাশ্মীরি", "ksb": "শাম্বালা", "ksf": "বাফিয়া", "ksh": "কলোনিয়ান", "ku": "কুর্দিশ", "kum": "কুমিক", "kut": "কুটেনাই", "kv": "কোমি", "kw": "কর্ণিশ", "ky": "কির্গিজ", "la": "লাতিন", "lad": "লাডিনো", "lag": "লাঙ্গি", "lah": "লান্ডা", "lam": "লাম্বা", "lb": "লুক্সেমবার্গীয়", "lez": "লেজঘিয়ান", "lg": "গান্ডা", "li": "লিম্বুর্গিশ", "lkt": "লাকোটা", "ln": "লিঙ্গালা", "lo": "লাও", "lol": "মোঙ্গো", "lou": "লুইসিয়ানা ক্রেওল", "loz": "লোজি", "lrc": "উত্তর লুরি", "lt": "লিথুয়েনীয়", "lu": "লুবা-কাটাঙ্গা", "lua": "লুবা-লুলুয়া", "lui": "লুইসেনো", "lun": "লুন্ডা", "luo": "লুয়ো", "lus": "মিজো", "luy": "লুইয়া", "lv": "লাত্‌ভীয়", "mad": "মাদুরেসে", "mag": "মাগাহি", "mai": "মৈথিলি", "mak": "ম্যাকাসার", "man": "ম্যান্ডিঙ্গো", "mas": "মাসাই", "mdf": "মোকশা", "mdr": "ম্যাণ্ডার", "men": "মেন্ডে", "mer": "মেরু", "mfe": "মরিসিয়ান", "mg": "মালাগাসি", "mga": "মধ্য আইরিশ", "mgh": "মাখুয়া-মেত্তো", "mgo": "মেটা", "mh": "মার্শালিজ", "mi": "মাওরি", "mic": "মিকম্যাক", "min": "মিনাংকাবাউ", "mk": "ম্যাসিডোনীয়", "ml": "মালায়ালাম", "mn": "মঙ্গোলিয়", "mnc": "মাঞ্চু", "mni": "মণিপুরী", "moh": "মোহাওক", "mos": "মসি", "mr": "মারাঠি", "ms": "মালয়", "mt": "মল্টিয়", "mua": "মুদাঙ্গ", "mus": "ক্রিক", "mwl": "মিরান্ডিজ", "mwr": "মারোয়ারি", "my": "বর্মি", "myv": "এরজিয়া", "mzn": "মাজানদেরানি", "na": "নাউরু", "nap": "নেয়াপোলিটান", "naq": "নামা", "nb": "নরওয়েজিয়ান বোকমাল", "nd": "উত্তর এন্দেবিলি", "nds": "নিম্ন জার্মানি", "nds-NL": "লো স্যাক্সন", "ne": "নেপালী", "new": "নেওয়ারি", "ng": "এন্দোঙ্গা", "nia": "নিয়াস", "niu": "নিউয়ান", "nl": "ওলন্দাজ", "nl-BE": "ফ্লেমিশ", "nmg": "কোয়াসিও", "nn": "নরওয়েজীয়ান নিনর্স্ক", "nnh": "নিঙ্গেম্বুন", "no": "নরওয়েজীয়", "nog": "নোগাই", "non": "প্রাচীন নর্স", "nqo": "এন’কো", "nr": "দক্ষিণ এনডেবেলে", "nso": "উত্তরাঞ্চলীয় সোথো", "nus": "নুয়ার", "nv": "নাভাজো", "nwc": "প্রাচীন নেওয়ারী", "ny": "নায়াঞ্জা", "nym": "ন্যায়ামওয়েজি", "nyn": "ন্যায়াঙ্কোলে", "nyo": "ন্যোরো", "nzi": "এনজিমা", "oc": "অক্সিটান", "oj": "ওজিবওয়া", "om": "অরোমো", "or": "ওড়িয়া", "os": "ওসেটিক", "osa": "ওসেজ", "ota": "অটোমান তুর্কি", "pa": "পাঞ্জাবী", "pag": "পাঙ্গাসিনান", "pal": "পাহ্লাভি", "pam": "পাম্পাঙ্গা", "pap": "পাপিয়ামেন্টো", "pau": "পালায়ুয়ান", "pcm": "নাইজেরিয় পিজিন", "peo": "প্রাচীন ফার্সি", "phn": "ফোনিশীয়ান", "pi": "পালি", "pl": "পোলিশ", "pon": "পোহ্নপেইয়ান", "prg": "প্রুশিয়ান", "pro": "প্রাচীন প্রোভেনসাল", "ps": "পুশতু", "pt": "পর্তুগীজ", "pt-BR": "ব্রাজিলের পর্তুগীজ", "pt-PT": "ইউরোপের পর্তুগীজ", "qu": "কেচুয়া", "quc": "কি‘চে", "raj": "রাজস্থানী", "rap": "রাপানুই", "rar": "রারোটোংগান", "rm": "রোমান্স", "rn": "রুন্দি", "ro": "রোমানীয়", "ro-MD": "মলদাভিয়", "rof": "রম্বো", "rom": "রোমানি", "root": "মূল", "ru": "রুশ", "rup": "আরমেনিয়ান", "rw": "কিনয়ারোয়ান্ডা", "rwk": "রাওয়া", "sa": "সংস্কৃত", "sad": "স্যান্ডাওয়ে", "sah": "শাখা", "sam": "সামারিটান আরামিক", "saq": "সামবুরু", "sas": "সাসাক", "sat": "সাঁওতালি", "sba": "ন্যাগাম্বে", "sbp": "সাঙ্গু", "sc": "সার্ডিনিয়ান", "scn": "সিসিলিয়ান", "sco": "স্কটস", "sd": "সিন্ধি", "sdh": "দক্ষিণ কুর্দিশ", "se": "উত্তরাঞ্চলীয় সামি", "seh": "সেনা", "sel": "সেল্কুপ", "ses": "কোয়রাবেনো সেন্নী", "sg": "সাঙ্গো", "sga": "প্রাচীন আইরিশ", "sh": "সার্বো-ক্রোয়েশিয়", "shi": "তাচেলহিত", "shn": "শান", "si": "সিংহলী", "sid": "সিডামো", "sk": "স্লোভাক", "sl": "স্লোভেনীয়", "sm": "সামোয়ান", "sma": "দক্ষিণাঞ্চলীয় সামি", "smj": "লুলে সামি", "smn": "ইনারি সামি", "sms": "স্কোল্ট সামি", "sn": "শোনা", "snk": "সোনিঙ্কে", "so": "সোমালি", "sog": "সোগডিয়ান", "sq": "আলবেনীয়", "sr": "সার্বীয়", "srn": "স্রানান টোঙ্গো", "srr": "সেরের", "ss": "সোয়াতি", "ssy": "সাহো", "st": "দক্ষিন সোথো", "su": "সুদানী", "suk": "সুকুমা", "sus": "সুসু", "sux": "সুমেরীয়", "sv": "সুইডিশ", "sw": "সোয়াহিলি", "sw-CD": "কঙ্গো সোয়াহিলি", "swb": "কমোরিয়ান", "syc": "প্রাচীন সিরিও", "syr": "সিরিয়াক", "ta": "তামিল", "te": "তেলুগু", "tem": "টাইম্নে", "teo": "তেসো", "ter": "তেরেনো", "tet": "তেতুম", "tg": "তাজিক", "th": "থাই", "ti": "তিগরিনিয়া", "tig": "টাইগ্রে", "tiv": "টিভ", "tk": "তুর্কমেনী", "tkl": "টোকেলাউ", "tl": "তাগালগ", "tlh": "ক্লিঙ্গন", "tli": "ত্লিঙ্গিট", "tmh": "তামাশেক", "tn": "সোয়ানা", "to": "টোঙ্গান", "tog": "নায়াসা টোঙ্গা", "tpi": "টোক পিসিন", "tr": "তুর্কী", "trv": "তারোকো", "ts": "সঙ্গা", "tsi": "সিমশিয়ান", "tt": "তাতার", "tum": "তুম্বুকা", "tvl": "টুভালু", "tw": "টোয়াই", "twq": "তাসাওয়াক", "ty": "তাহিতিয়ান", "tyv": "টুভিনিয়ান", "tzm": "সেন্ট্রাল আটলাস তামাজিগাত", "udm": "উডমুর্ট", "ug": "উইঘুর", "uga": "উগারিটিক", "uk": "ইউক্রেনীয়", "umb": "উম্বুন্দু", "ur": "উর্দু", "uz": "উজবেকীয়", "vai": "ভাই", "ve": "ভেন্ডা", "vi": "ভিয়েতনামী", "vo": "ভোলাপুক", "vot": "ভোটিক", "vun": "ভুঞ্জো", "wa": "ওয়ালুন", "wae": "ওয়ালসের", "wal": "ওয়ালামো", "war": "ওয়ারে", "was": "ওয়াশো", "wbp": "ওয়ার্লপিরি", "wo": "উওলোফ", "wuu": "Wu চীনা", "xal": "কাল্মইক", "xh": "জোসা", "xog": "সোগা", "yao": "ইয়াও", "yap": "ইয়াপেসে", "yav": "ইয়াঙ্গবেন", "ybb": "ইয়েম্বা", "yi": "ইয়েদ্দিশ", "yo": "ইওরুবা", "yue": "ক্যানটোনীজ", "za": "ঝু্য়াঙ", "zap": "জাপোটেক", "zbl": "চিত্র ভাষা", "zen": "জেনাগা", "zgh": "আদর্শ মরক্কোন তামাজিগাত", "zh": "চীনা", "zh-Hans": "সরলীকৃত চীনা", "zh-Hant": "ঐতিহ্যবাহি চীনা", "zu": "জুলু", "zun": "জুনি", "zza": "জাজা"}}, + "bs": {"rtl": false, "languageNames": {"aa": "afarski", "ab": "abhaski", "ace": "ačinski", "ach": "akoli", "ada": "adangmejski", "ady": "adigejski", "ae": "avestanski", "af": "afrikans", "afh": "afrihili", "agq": "aghem", "ain": "ainu", "ak": "akan", "akk": "akadijski", "ale": "aleutski", "alt": "južni altai", "am": "amharski", "an": "aragonski", "ang": "staroengleski", "anp": "angika", "ar": "arapski", "ar-001": "moderni standardni arapski", "arc": "aramejski", "arn": "mapuški", "arp": "arapaho", "arw": "aravak", "as": "asamski", "asa": "asu", "ast": "asturijski", "av": "avarski", "awa": "avadhi", "ay": "ajmara", "az": "azerbejdžanski", "ba": "baškirski", "bal": "baluči", "ban": "balinezijski", "bas": "basa", "bax": "bamunski", "bbj": "gomala", "be": "bjeloruski", "bej": "beja", "bem": "bemba", "bez": "bena", "bfd": "bafut", "bg": "bugarski", "bgn": "zapadni belučki", "bho": "bojpuri", "bi": "bislama", "bik": "bikol", "bin": "bini", "bkm": "kom", "bla": "siksika", "bm": "bambara", "bn": "bengalski", "bo": "tibetanski", "br": "bretonski", "bra": "braj", "brx": "bodo", "bs": "bosanski", "bss": "akoski", "bua": "buriat", "bug": "bugiški", "bum": "bulu", "byn": "blin", "byv": "medumba", "ca": "katalonski", "cad": "kado", "car": "karipski", "cay": "kajuga", "cch": "atsam", "ce": "čečenski", "ceb": "cebuano", "cgg": "čiga", "ch": "čamoro", "chb": "čibča", "chg": "čagatai", "chk": "čukeski", "chm": "mari", "chn": "činukski žargon", "cho": "čoktav", "chp": "čipvijanski", "chr": "čiroki", "chy": "čejenski", "ckb": "centralnokurdski", "co": "korzikanski", "cop": "koptski", "cr": "kri", "crh": "krimski turski", "crs": "seselva kreolski francuski", "cs": "češki", "csb": "kašubijanski", "cu": "staroslavenski", "cv": "čuvaški", "cy": "velški", "da": "danski", "dak": "dakota", "dar": "dargva", "dav": "taita", "de": "njemački", "de-AT": "njemački (Austrija)", "de-CH": "gornjonjemački (Švicarska)", "del": "delaver", "den": "slave", "dgr": "dogrib", "din": "dinka", "dje": "zarma", "doi": "dogri", "dsb": "donjolužičkosrpski", "dua": "duala", "dum": "srednjovjekovni holandski", "dv": "divehi", "dyo": "jola-foni", "dyu": "diula", "dz": "džonga", "dzg": "dazaga", "ebu": "embu", "ee": "eve", "efi": "efik", "egy": "staroegipatski", "eka": "ekajuk", "el": "grčki", "elx": "elamitski", "en": "engleski", "en-AU": "engleski (Australija)", "en-CA": "engleski (Kanada)", "en-GB": "engleski (Velika Britanija)", "en-US": "engleski (Sjedinjene Američke Države)", "enm": "srednjovjekovni engleski", "eo": "esperanto", "es": "španski", "es-419": "španski (Latinska Amerika)", "es-ES": "španski (Španija)", "es-MX": "španski (Meksiko)", "et": "estonski", "eu": "baskijski", "ewo": "evondo", "fa": "perzijski", "fan": "fang", "fat": "fanti", "ff": "fulah", "fi": "finski", "fil": "filipino", "fj": "fidžijski", "fo": "farski", "fr": "francuski", "fr-CA": "francuski (Kanada)", "fr-CH": "francuski (Švicarska)", "frm": "srednjovjekovni francuski", "fro": "starofrancuski", "frr": "sjeverni frizijski", "frs": "istočnofrizijski", "fur": "friulijski", "fy": "zapadni frizijski", "ga": "irski", "gaa": "ga", "gag": "gagauški", "gay": "gajo", "gba": "gbaja", "gd": "škotski galski", "gez": "staroetiopski", "gil": "gilbertski", "gl": "galicijski", "gmh": "srednjovjekovni gornjonjemački", "gn": "gvarani", "goh": "staronjemački", "gon": "gondi", "gor": "gorontalo", "got": "gotski", "grb": "grebo", "grc": "starogrčki", "gsw": "njemački (Švicarska)", "gu": "gudžarati", "guz": "gusi", "gv": "manks", "gwi": "gvičin", "ha": "hausa", "hai": "haida", "haw": "havajski", "he": "hebrejski", "hi": "hindi", "hil": "hiligajnon", "hit": "hitite", "hmn": "hmong", "ho": "hiri motu", "hr": "hrvatski", "hsb": "gornjolužičkosrpski", "ht": "haićanski kreolski", "hu": "mađarski", "hup": "hupa", "hy": "armenski", "hz": "herero", "ia": "interlingva", "iba": "iban", "ibb": "ibibio", "id": "indonezijski", "ie": "interlingve", "ig": "igbo", "ii": "sičuan ji", "ik": "inupiak", "ilo": "iloko", "inh": "ingušetski", "io": "ido", "is": "islandski", "it": "italijanski", "iu": "inuktitut", "ja": "japanski", "jbo": "lojban", "jgo": "ngomba", "jmc": "makame", "jpr": "judeo-perzijski", "jrb": "judeo-arapski", "jv": "javanski", "ka": "gruzijski", "kaa": "kara-kalpak", "kab": "kabile", "kac": "kačin", "kaj": "kaju", "kam": "kamba", "kaw": "kavi", "kbd": "kabardijski", "kbl": "kanembu", "kcg": "tjap", "kde": "makonde", "kea": "zelenortski", "kfo": "koro", "kg": "kongo", "kha": "kasi", "kho": "kotanizijski", "khq": "kojra čini", "ki": "kikuju", "kj": "kuanjama", "kk": "kazaški", "kkj": "kako", "kl": "kalalisutski", "kln": "kalenjin", "km": "kmerski", "kmb": "kimbundu", "kn": "kanada", "ko": "korejski", "koi": "komi-permski", "kok": "konkani", "kos": "kosrejski", "kpe": "kpele", "kr": "kanuri", "krc": "karačaj-balkar", "kri": "krio", "krl": "karelijski", "kru": "kuruški", "ks": "kašmirski", "ksb": "šambala", "ksf": "bafia", "ksh": "kelnski", "ku": "kurdski", "kum": "kumik", "kut": "kutenai", "kv": "komi", "kw": "kornski", "ky": "kirgiški", "la": "latinski", "lad": "ladino", "lag": "langi", "lah": "landa", "lam": "lamba", "lb": "luksemburški", "lez": "lezgijski", "lg": "ganda", "li": "limburški", "lkt": "lakota", "ln": "lingala", "lo": "laoski", "lol": "mongo", "loz": "lozi", "lrc": "sjeverni luri", "lt": "litvanski", "lu": "luba-katanga", "lua": "luba-lulua", "lui": "luiseno", "lun": "lunda", "lus": "mizo", "luy": "luhija", "lv": "latvijski", "mad": "madureški", "maf": "mafa", "mag": "magahi", "mai": "maitili", "mak": "makasar", "man": "mandingo", "mas": "masai", "mde": "maba", "mdf": "mokša", "mdr": "mandar", "men": "mende", "mer": "meru", "mfe": "mauricijski kreolski", "mg": "malgaški", "mga": "srednjovjekovni irski", "mgh": "makuva-meto", "mgo": "meta", "mh": "maršalski", "mi": "maorski", "mic": "mikmak", "min": "minangkabau", "mk": "makedonski", "ml": "malajalam", "mn": "mongolski", "mnc": "manču", "mni": "manipuri", "moh": "mohavk", "mos": "mosi", "mr": "marati", "ms": "malajski", "mt": "malteški", "mua": "mundang", "mus": "kriški", "mwl": "mirandeški", "mwr": "marvari", "my": "burmanski", "mye": "mjene", "myv": "erzija", "mzn": "mazanderanski", "na": "nauru", "nap": "napolitanski", "naq": "nama", "nb": "norveški (Bokmal)", "nd": "sjeverni ndebele", "nds": "donjonjemački", "nds-NL": "donjosaksonski", "ne": "nepalski", "new": "nevari", "ng": "ndonga", "nia": "nias", "niu": "niue", "nl": "holandski", "nl-BE": "flamanski", "nmg": "kvasio", "nn": "norveški (Nynorsk)", "nnh": "ngiembon", "no": "norveški", "nog": "nogai", "non": "staronordijski", "nqo": "nko", "nr": "južni ndebele", "nso": "sjeverni soto", "nus": "nuer", "nv": "navaho", "nwc": "klasični nevari", "ny": "njanja", "nym": "njamvezi", "nyn": "njankole", "nyo": "njoro", "nzi": "nzima", "oc": "oksitanski", "oj": "ojibva", "om": "oromo", "or": "orijski", "os": "osetski", "osa": "osage", "ota": "osmanski turski", "pa": "pandžapski", "pag": "pangasinski", "pal": "pahlavi", "pam": "pampanga", "pap": "papiamento", "pau": "palauanski", "pcm": "nigerijski pidžin", "peo": "staroperzijski", "phn": "feničanski", "pi": "pali", "pl": "poljski", "pon": "ponpejski", "prg": "pruski", "pro": "staroprovansalski", "ps": "paštu", "pt": "portugalski", "pt-BR": "portugalski (Brazil)", "pt-PT": "portugalski (Portugal)", "qu": "kečua", "quc": "kiče", "raj": "rajastani", "rap": "rapanui", "rar": "rarotongan", "rm": "retoromanski", "rn": "rundi", "ro": "rumunski", "ro-MD": "moldavski", "rof": "rombo", "rom": "romani", "root": "korijenski", "ru": "ruski", "rup": "arumunski", "rw": "kinjaruanda", "rwk": "rua", "sa": "sanskrit", "sad": "sandave", "sah": "jakutski", "sam": "samaritanski aramejski", "saq": "samburu", "sas": "sasak", "sat": "santali", "sba": "ngambaj", "sbp": "sangu", "sc": "sardinijski", "scn": "sicilijanski", "sco": "škotski", "sd": "sindi", "sdh": "južni kurdski", "se": "sjeverni sami", "see": "seneka", "seh": "sena", "sel": "selkup", "ses": "kojraboro seni", "sg": "sango", "sga": "staroirski", "sh": "srpskohrvatski", "shi": "tahelhit", "shn": "šan", "shu": "čadski arapski", "si": "sinhaleški", "sid": "sidamo", "sk": "slovački", "sl": "slovenski", "sm": "samoanski", "sma": "južni sami", "smj": "lule sami", "smn": "inari sami", "sms": "skolt sami", "sn": "šona", "snk": "soninke", "so": "somalski", "sog": "sogdien", "sq": "albanski", "sr": "srpski", "srn": "srananski tongo", "srr": "serer", "ss": "svati", "ssy": "saho", "st": "južni soto", "su": "sundanski", "suk": "sukuma", "sus": "susu", "sux": "sumerski", "sv": "švedski", "sw": "svahili", "sw-CD": "svahili (Demokratska Republika Kongo)", "swb": "komorski", "syc": "klasični sirijski", "syr": "sirijski", "ta": "tamilski", "te": "telugu", "tem": "timne", "teo": "teso", "ter": "tereno", "tet": "tetum", "tg": "tadžički", "th": "tajlandski", "ti": "tigrinja", "tig": "tigre", "tk": "turkmenski", "tkl": "tokelau", "tl": "tagalog", "tlh": "klingonski", "tli": "tlingit", "tmh": "tamašek", "tn": "tsvana", "to": "tonganski", "tog": "njasa tonga", "tpi": "tok pisin", "tr": "turski", "trv": "taroko", "ts": "tsonga", "tsi": "tsimšian", "tt": "tatarski", "tum": "tumbuka", "tvl": "tuvalu", "tw": "tvi", "twq": "tasavak", "ty": "tahićanski", "tyv": "tuvinijski", "tzm": "centralnoatlaski tamazigt", "udm": "udmurt", "ug": "ujgurski", "uga": "ugaritski", "uk": "ukrajinski", "umb": "umbundu", "ur": "urdu", "uz": "uzbečki", "ve": "venda", "vi": "vijetnamski", "vo": "volapuk", "vot": "votski", "vun": "vunjo", "wa": "valun", "wae": "valser", "wal": "valamo", "war": "varej", "was": "vašo", "wbp": "varlpiri", "wo": "volof", "xal": "kalmik", "xh": "hosa", "xog": "soga", "yao": "jao", "yap": "japeški", "yav": "jangben", "ybb": "jemba", "yi": "jidiš", "yo": "jorubanski", "yue": "kantonski", "za": "zuang", "zap": "zapotečki", "zbl": "blis simboli", "zen": "zenaga", "zgh": "standardni marokanski tamazigt", "zh": "kineski", "zh-Hans": "kineski (pojednostavljeni)", "zh-Hant": "kineski (tradicionalni)", "zu": "zulu", "zun": "zuni", "zza": "zaza"}}, + "ca": {"rtl": false, "languageNames": {"aa": "àfar", "ab": "abkhaz", "ace": "atjeh", "ach": "acoli", "ada": "adangme", "ady": "adigué", "ae": "avèstic", "af": "afrikaans", "afh": "afrihili", "agq": "aghem", "ain": "ainu", "ak": "àkan", "akk": "accadi", "akz": "alabama", "ale": "aleuta", "aln": "albanès geg", "alt": "altaic meridional", "am": "amhàric", "an": "aragonès", "ang": "anglès antic", "anp": "angika", "ar": "àrab", "ar-001": "àrab estàndard modern", "arc": "arameu", "arn": "mapudungu", "aro": "araona", "arp": "arapaho", "ars": "àrab najdi", "arw": "arauac", "arz": "àrab egipci", "as": "assamès", "asa": "pare", "ase": "llengua de signes americana", "ast": "asturià", "av": "àvar", "awa": "awadhi", "ay": "aimara", "az": "azerbaidjanès", "ba": "baixkir", "bal": "balutxi", "ban": "balinès", "bar": "bavarès", "bas": "basa", "bax": "bamum", "bbj": "ghomala", "be": "belarús", "bej": "beja", "bem": "bemba", "bez": "bena", "bfd": "bafut", "bfq": "badaga", "bg": "búlgar", "bgn": "balutxi occidental", "bho": "bhojpuri", "bi": "bislama", "bik": "bicol", "bin": "edo", "bkm": "kom", "bla": "blackfoot", "bm": "bambara", "bn": "bengalí", "bo": "tibetà", "br": "bretó", "bra": "braj", "brh": "brahui", "brx": "bodo", "bs": "bosnià", "bss": "akoose", "bua": "buriat", "bug": "bugui", "bum": "bulu", "byn": "bilin", "byv": "medumba", "ca": "català", "cad": "caddo", "car": "carib", "cay": "cayuga", "cch": "atsam", "ccp": "chakma", "ce": "txetxè", "ceb": "cebuà", "cgg": "chiga", "ch": "chamorro", "chb": "txibtxa", "chg": "txagatai", "chk": "chuuk", "chm": "mari", "chn": "pidgin chinook", "cho": "choctaw", "chp": "chipewyan", "chr": "cherokee", "chy": "xeiene", "ckb": "kurd central", "co": "cors", "cop": "copte", "cr": "cree", "crh": "tàtar de Crimea", "crs": "francès crioll de les Seychelles", "cs": "txec", "csb": "caixubi", "cu": "eslau eclesiàstic", "cv": "txuvaix", "cy": "gal·lès", "da": "danès", "dak": "dakota", "dar": "darguà", "dav": "taita", "de": "alemany", "de-AT": "alemany austríac", "de-CH": "alemany estàndard suís", "del": "delaware", "den": "slavi", "dgr": "dogrib", "din": "dinka", "dje": "zarma", "doi": "dogri", "dsb": "baix sòrab", "dua": "douala", "dum": "neerlandès mitjà", "dv": "divehi", "dyo": "diola", "dyu": "jula", "dz": "dzongka", "dzg": "dazaga", "ebu": "embu", "ee": "ewe", "efi": "efik", "egl": "emilià", "egy": "egipci antic", "eka": "ekajuk", "el": "grec", "elx": "elamita", "en": "anglès", "en-AU": "anglès australià", "en-CA": "anglès canadenc", "en-GB": "anglès britànic", "en-US": "anglès americà", "enm": "anglès mitjà", "eo": "esperanto", "es": "espanyol", "es-419": "espanyol hispanoamericà", "es-ES": "espanyol europeu", "es-MX": "espanyol de Mèxic", "et": "estonià", "eu": "basc", "ewo": "ewondo", "ext": "extremeny", "fa": "persa", "fan": "fang", "fat": "fanti", "ff": "ful", "fi": "finès", "fil": "filipí", "fj": "fijià", "fo": "feroès", "fr": "francès", "fr-CA": "francès canadenc", "fr-CH": "francès suís", "frc": "francès cajun", "frm": "francès mitjà", "fro": "francès antic", "frr": "frisó septentrional", "frs": "frisó oriental", "fur": "friülà", "fy": "frisó occidental", "ga": "irlandès", "gaa": "ga", "gag": "gagaús", "gan": "xinès gan", "gay": "gayo", "gba": "gbaya", "gd": "gaèlic escocès", "gez": "gueez", "gil": "gilbertès", "gl": "gallec", "glk": "gilaki", "gmh": "alt alemany mitjà", "gn": "guaraní", "goh": "alt alemany antic", "gom": "concani de Goa", "gon": "gondi", "gor": "gorontalo", "got": "gòtic", "grb": "grebo", "grc": "grec antic", "gsw": "alemany suís", "gu": "gujarati", "guc": "wayú", "guz": "gusí", "gv": "manx", "gwi": "gwich’in", "ha": "haussa", "hai": "haida", "hak": "xinès hakka", "haw": "hawaià", "he": "hebreu", "hi": "hindi", "hif": "hindi de Fiji", "hil": "híligaynon", "hit": "hitita", "hmn": "hmong", "ho": "hiri motu", "hr": "croat", "hsb": "alt sòrab", "hsn": "xinès xiang", "ht": "crioll d’Haití", "hu": "hongarès", "hup": "hupa", "hy": "armeni", "hz": "herero", "ia": "interlingua", "iba": "iban", "ibb": "ibibio", "id": "indonesi", "ie": "interlingue", "ig": "igbo", "ii": "yi sichuan", "ik": "inupiak", "ilo": "ilocano", "inh": "ingúix", "io": "ido", "is": "islandès", "it": "italià", "iu": "inuktitut", "ja": "japonès", "jam": "crioll anglès de Jamaica", "jbo": "lojban", "jgo": "ngomba", "jmc": "machame", "jpr": "judeopersa", "jrb": "judeoàrab", "jv": "javanès", "ka": "georgià", "kaa": "karakalpak", "kab": "cabilenc", "kac": "katxin", "kaj": "jju", "kam": "kamba", "kaw": "kawi", "kbd": "kabardí", "kbl": "kanembu", "kcg": "tyap", "kde": "makonde", "kea": "crioll capverdià", "ken": "kenyang", "kfo": "koro", "kg": "kongo", "kgp": "kaingà", "kha": "khasi", "kho": "khotanès", "khq": "koyra chiini", "ki": "kikuiu", "kj": "kuanyama", "kk": "kazakh", "kkj": "kako", "kl": "grenlandès", "kln": "kalenjin", "km": "khmer", "kmb": "kimbundu", "kn": "kannada", "ko": "coreà", "koi": "komi-permiac", "kok": "concani", "kos": "kosraeà", "kpe": "kpelle", "kr": "kanuri", "krc": "karatxai-balkar", "kri": "krio", "krl": "carelià", "kru": "kurukh", "ks": "caixmiri", "ksb": "shambala", "ksf": "bafia", "ksh": "kölsch", "ku": "kurd", "kum": "kúmik", "kut": "kutenai", "kv": "komi", "kw": "còrnic", "ky": "kirguís", "la": "llatí", "lad": "judeocastellà", "lag": "langi", "lah": "panjabi occidental", "lam": "lamba", "lb": "luxemburguès", "lez": "lesguià", "lg": "ganda", "li": "limburguès", "lij": "lígur", "lkt": "lakota", "lmo": "llombard", "ln": "lingala", "lo": "laosià", "lol": "mongo", "lou": "crioll francès de Louisiana", "loz": "lozi", "lrc": "luri septentrional", "lt": "lituà", "lu": "luba katanga", "lua": "luba-lulua", "lui": "luisenyo", "lun": "lunda", "lus": "mizo", "luy": "luyia", "lv": "letó", "lzh": "xinès clàssic", "lzz": "laz", "mad": "madurès", "maf": "mafa", "mag": "magahi", "mai": "maithili", "mak": "makassar", "man": "mandinga", "mas": "massai", "mde": "maba", "mdf": "mordovià moksa", "mdr": "mandar", "men": "mende", "mer": "meru", "mfe": "mauricià", "mg": "malgaix", "mga": "gaèlic irlandès mitjà", "mgh": "makhuwa-metto", "mgo": "meta’", "mh": "marshallès", "mi": "maori", "mic": "micmac", "min": "minangkabau", "mk": "macedoni", "ml": "malaiàlam", "mn": "mongol", "mnc": "manxú", "mni": "manipurí", "moh": "mohawk", "mos": "moore", "mr": "marathi", "mrj": "mari occidental", "ms": "malai", "mt": "maltès", "mua": "mundang", "mus": "creek", "mwl": "mirandès", "mwr": "marwari", "my": "birmà", "mye": "myene", "myv": "mordovià erza", "mzn": "mazanderani", "na": "nauruà", "nan": "xinès min del sud", "nap": "napolità", "naq": "nama", "nb": "noruec bokmål", "nd": "ndebele septentrional", "nds": "baix alemany", "nds-NL": "baix saxó", "ne": "nepalès", "new": "newari", "ng": "ndonga", "nia": "nias", "niu": "niueà", "nl": "neerlandès", "nl-BE": "flamenc", "nmg": "bissio", "nn": "noruec nynorsk", "nnh": "ngiemboon", "no": "noruec", "nog": "nogai", "non": "nòrdic antic", "nov": "novial", "nqo": "n’Ko", "nr": "ndebele meridional", "nso": "sotho septentrional", "nus": "nuer", "nv": "navaho", "nwc": "newari clàssic", "ny": "nyanja", "nym": "nyamwesi", "nyn": "nyankole", "nyo": "nyoro", "nzi": "nzema", "oc": "occità", "oj": "ojibwa", "om": "oromo", "or": "oriya", "os": "osseta", "osa": "osage", "ota": "turc otomà", "pa": "panjabi", "pag": "pangasinan", "pal": "pahlavi", "pam": "pampanga", "pap": "papiament", "pau": "palauà", "pcd": "picard", "pcm": "pidgin de Nigèria", "pdc": "alemany pennsilvanià", "peo": "persa antic", "pfl": "alemany palatí", "phn": "fenici", "pi": "pali", "pl": "polonès", "pms": "piemontès", "pnt": "pòntic", "pon": "ponapeà", "prg": "prussià", "pro": "provençal antic", "ps": "paixtu", "pt": "portuguès", "pt-BR": "portuguès del Brasil", "pt-PT": "portuguès de Portugal", "qu": "quítxua", "quc": "k’iche’", "raj": "rajasthani", "rap": "rapanui", "rar": "rarotongà", "rgn": "romanyès", "rm": "retoromànic", "rn": "rundi", "ro": "romanès", "ro-MD": "moldau", "rof": "rombo", "rom": "romaní", "root": "arrel", "ru": "rus", "rup": "aromanès", "rw": "ruandès", "rwk": "rwo", "sa": "sànscrit", "sad": "sandawe", "sah": "iacut", "sam": "arameu samarità", "saq": "samburu", "sas": "sasak", "sat": "santali", "sba": "ngambay", "sbp": "sangu", "sc": "sard", "scn": "sicilià", "sco": "escocès", "sd": "sindi", "sdc": "sasserès", "sdh": "kurd meridional", "se": "sami septentrional", "see": "seneca", "seh": "sena", "sel": "selkup", "ses": "songhai oriental", "sg": "sango", "sga": "irlandès antic", "sh": "serbocroat", "shi": "taixelhit", "shn": "xan", "shu": "àrab txadià", "si": "singalès", "sid": "sidamo", "sk": "eslovac", "sl": "eslovè", "sm": "samoà", "sma": "sami meridional", "smj": "sami lule", "smn": "sami d’Inari", "sms": "sami skolt", "sn": "shona", "snk": "soninke", "so": "somali", "sog": "sogdià", "sq": "albanès", "sr": "serbi", "srn": "sranan", "srr": "serer", "ss": "swazi", "ssy": "saho", "st": "sotho meridional", "su": "sondanès", "suk": "sukuma", "sus": "susú", "sux": "sumeri", "sv": "suec", "sw": "suahili", "sw-CD": "suahili del Congo", "swb": "comorià", "syc": "siríac clàssic", "syr": "siríac", "szl": "silesià", "ta": "tàmil", "te": "telugu", "tem": "temne", "teo": "teso", "ter": "terena", "tet": "tètum", "tg": "tadjik", "th": "tai", "ti": "tigrinya", "tig": "tigre", "tk": "turcman", "tkl": "tokelauès", "tkr": "tsakhur", "tl": "tagal", "tlh": "klingonià", "tli": "tlingit", "tly": "talix", "tmh": "amazic", "tn": "setswana", "to": "tongalès", "tog": "tonga", "tpi": "tok pisin", "tr": "turc", "trv": "taroko", "ts": "tsonga", "tsi": "tsimshià", "tt": "tàtar", "ttt": "tat meridional", "tum": "tumbuka", "tvl": "tuvaluà", "tw": "twi", "twq": "tasawaq", "ty": "tahitià", "tyv": "tuvinià", "tzm": "amazic del Marroc central", "udm": "udmurt", "ug": "uigur", "uga": "ugarític", "uk": "ucraïnès", "umb": "umbundu", "ur": "urdú", "uz": "uzbek", "ve": "venda", "vec": "vènet", "vep": "vepse", "vi": "vietnamita", "vls": "flamenc occidental", "vo": "volapük", "vot": "vòtic", "vun": "vunjo", "wa": "való", "wae": "walser", "wal": "wolaita", "war": "waray", "was": "washo", "wbp": "warlpiri", "wo": "wòlof", "wuu": "xinès wu", "xal": "calmuc", "xh": "xosa", "xmf": "mingrelià", "xog": "soga", "yap": "yapeà", "yav": "yangben", "ybb": "yemba", "yi": "ídix", "yo": "ioruba", "yue": "cantonès", "za": "zhuang", "zap": "zapoteca", "zbl": "símbols Bliss", "zea": "zelandès", "zen": "zenaga", "zgh": "amazic estàndard marroquí", "zh": "xinès", "zh-Hans": "xinès simplificat", "zh-Hant": "xinès tradicional", "zu": "zulu", "zun": "zuni", "zza": "zaza"}}, + "ckb": {"rtl": true, "languageNames": {"aa": "ئەفار", "ab": "ئەبخازی", "ace": "ئاچەیی", "ada": "دانگمێ", "ady": "ئادیگی", "af": "ئەفریکانس", "agq": "ئاگێم", "ain": "ئاینوو", "ak": "ئاکان", "ale": "ئالیوت", "alt": "ئاڵتایی باشوور", "am": "ئەمھەری", "an": "ئاراگۆنی", "anp": "ئەنگیکا", "ar": "عەرەبی", "ar-001": "عەرەبیی ستاندارد", "arn": "ماپووچە", "arp": "ئاراپاهۆ", "as": "ئاسامی", "asa": "ئاسوو", "ast": "ئاستۆری", "av": "ئەڤاری", "awa": "ئاوادهی", "ay": "ئایمارا", "az": "ئازەربایجانی", "az-Arab": "ئازەربایجانی باشووری", "ba": "باشکیەر", "ban": "بالی", "bas": "باسا", "be": "بیلاڕووسی", "bem": "بێمبا", "bez": "بێنا", "bg": "بۆلگاری", "bho": "بوجپووری", "bi": "بیسلاما", "bin": "بینی", "bla": "سیکسیکا", "bm": "بامبارا", "bn": "بەنگلادێشی", "bo": "تەبەتی", "br": "برێتونی", "brx": "بۆدۆ", "bs": "بۆسنی", "bug": "بووگی", "byn": "بلین", "ca": "كاتالۆنی", "ce": "چیچانی", "ceb": "سێبوانۆ", "cgg": "کیگا", "ch": "چامۆرۆ", "chk": "چووکی", "chm": "ماری", "cho": "چۆکتاو", "chr": "چێرۆکی", "chy": "شایان", "ckb": "کوردیی ناوەندی", "co": "کۆرسیکی", "crs": "فەرەنسیی سیشێلی", "cs": "چێکی", "cu": "سلاویی کلیسەیی", "cv": "چووڤاشی", "cy": "وێلزی", "da": "دانماركی", "dak": "داکۆتایی", "dar": "دارگینی", "dav": "تایتا", "de": "ئەڵمانی", "de-AT": "ئەڵمانی (نەمسا)", "de-CH": "ئەڵمانی (سویسڕا)", "dgr": "دۆگریب", "dje": "زارما", "dsb": "سربیی خوارین", "dua": "دووالا", "dv": "دیڤێهی", "dyo": "جۆلافۆنی", "dz": "دزوونگخا", "dzg": "دازا", "ebu": "ئێمبوو", "ee": "ئێوێیی", "efi": "ئێفیک", "eka": "ئێکاجووک", "el": "یۆنانی", "en": "ئینگلیزی", "en-AU": "ئینگلیزیی ئۆسترالیایی", "en-CA": "ئینگلیزیی کەنەدایی", "en-GB": "ئینگلیزیی بریتانیایی", "en-US": "ئینگلیزیی ئەمەریکایی", "eo": "ئێسپیرانتۆ", "es": "ئیسپانی", "es-419": "ئیسپانی (ئەمەریکای لاتین)", "es-ES": "ئیسپانی (ئیسپانیا)", "es-MX": "ئیسپانی (مەکسیک)", "et": "ئیستۆنی", "eu": "باسکی", "ewo": "ئێوۆندۆ", "fa": "فارسی", "ff": "فوولایی", "fi": "فینلەندی", "fil": "فیلیپینی", "fj": "فیجی", "fo": "فەرۆیی", "fon": "فۆنی", "fr": "فەرەنسی", "fr-CA": "فەرەنسی (کەنەدا)", "fr-CH": "فەرەنسی (سویسڕا)", "fur": "فریئوولی", "fy": "فریسیی ڕۆژاوا", "ga": "ئیرلەندی", "gaa": "گایی", "gd": "گه‌لیكی سكۆتله‌ندی", "gez": "گیزی", "gil": "گیلبێرتی", "gl": "گالیسی", "gn": "گووارانی", "gor": "گۆرۆنتالی", "gsw": "ئەڵمانیی سویسڕا", "gu": "گوجاراتی", "guz": "گووسی", "gv": "مانکی", "gwi": "گویچین", "ha": "هائووسا", "haw": "هاوایی", "he": "عیبری", "hi": "هیندی", "hil": "هیلیگاینۆن", "hmn": "همۆنگ", "hr": "كرواتی", "hsb": "سربیی سەروو", "ht": "کریولی هائیتی", "hu": "هەنگاری (مەجاری)", "hup": "هووپا", "hy": "ئەرمەنی", "hz": "هێرێرۆ", "ia": "ئینترلینگووا", "iba": "ئیبان", "ibb": "ئیبیبۆ", "id": "ئیندۆنیزی", "ig": "ئیگبۆ", "ii": "سیچوان یی", "ilo": "ئیلۆکۆ", "inh": "ئینگووش", "io": "ئیدۆ", "is": "ئیسلەندی", "it": "ئیتالی", "iu": "ئینوکتیتوت", "ja": "ژاپۆنی", "jbo": "لۆژبان", "jgo": "نگۆمبا", "jmc": "ماچامێ", "jv": "جاڤایی", "ka": "گۆرجستانی", "kab": "کبائیلی", "kac": "کاچین", "kaj": "کیجوو", "kam": "کامبا", "kbd": "کاباردی", "kcg": "تیاپ", "kde": "ماکۆندە", "kea": "کابووڤێردیانۆ", "kfo": "کۆرۆ", "kha": "کهاسی", "khq": "کۆیرا چینی", "ki": "کیکوویوو", "kj": "کوانیاما", "kk": "کازاخی", "kkj": "کاکۆ", "kl": "کالالیسووت", "kln": "کالێنجین", "km": "خمێر", "kmb": "کیمبووندوو", "kn": "کاننادا", "ko": "كۆری", "kok": "کۆنکانی", "kpe": "کپێلێ", "kr": "کانووری", "krc": "کاراچای بالکار", "krl": "کارێلی", "kru": "کوورووخ", "ks": "کەشمیری", "ksb": "شامابالا", "ksf": "بافیا", "ksh": "کۆلۆنی", "ku": "کوردی", "kum": "کوومیک", "kv": "کۆمی", "kw": "کۆڕنی", "ky": "كرگیزی", "la": "لاتینی", "lad": "لادینۆ", "lag": "لانگی", "lb": "لوکسەمبورگی", "lez": "لەزگی", "lg": "گاندا", "li": "لیمبورگی", "lkt": "لاکۆتا", "ln": "لينگالا", "lo": "لائۆیی", "loz": "لۆزی", "lrc": "لوڕیی باکوور", "lt": "لیتوانی", "lu": "لووبا کاتانگا", "lua": "لووبا لوولووا", "lun": "لووندا", "luo": "لووئۆ", "lus": "میزۆ", "luy": "لوویا", "lv": "لێتۆنی", "mad": "مادووری", "mag": "ماگاهی", "mai": "مائیتیلی", "mak": "ماکاسار", "mas": "ماسایی", "mdf": "مۆکشا", "men": "مێندێ", "mer": "مێروو", "mfe": "مۆریسی", "mg": "مالاگاسی", "mgh": "ماخوامیتۆ", "mgo": "مێتە", "mh": "مارشاڵی", "mi": "مائۆری", "mic": "میکماک", "min": "مینانکاباو", "mk": "ماكێدۆنی", "ml": "مالایالام", "mn": "مەنگۆلی", "mni": "مانیپووری", "moh": "مۆهاوک", "mos": "مۆسی", "mr": "ماراتی", "ms": "مالیزی", "mt": "ماڵتی", "mua": "موندانگ", "mus": "کریک", "mwl": "میراندی", "my": "میانماری", "myv": "ئێرزیا", "mzn": "مازەندەرانی", "na": "نائوروو", "nap": "ناپۆلی", "naq": "ناما", "nb": "نەرویژیی بۆکمال", "nd": "ئندێبێلێی باکوور", "nds-NL": "nds (ھۆڵەندا)", "ne": "نیپالی", "new": "نێواری", "ng": "ندۆنگا", "nia": "نیاس", "niu": "نیئوویی", "nl": "هۆڵەندی", "nl-BE": "فلێمی", "nmg": "کواسیۆ", "nn": "نەرویژیی نینۆرسک", "nnh": "نگیمبوون", "no": "نۆروێژی", "nog": "نۆگای", "nqo": "نکۆ", "nr": "ئندێبێلێی باشوور", "nso": "سۆتۆی باکوور", "nus": "نوێر", "nv": "ناڤاجۆ", "ny": "نیانجا", "nyn": "نیانکۆلێ", "oc": "ئۆکسیتانی", "om": "ئۆرۆمۆ", "or": "ئۆدیا", "os": "ئۆسێتی", "pa": "پەنجابی", "pag": "پانگاسینان", "pam": "پامپانگا", "pap": "پاپیامێنتۆ", "pau": "پالائوویی", "pcm": "پیجینی نیجریا", "pl": "پۆڵەندی", "prg": "پڕووسی", "ps": "پەشتوو", "pt": "پورتوگالی", "pt-BR": "پورتوگالی (برازیل)", "pt-PT": "پورتوگالی (پورتوگال)", "qu": "کێچوا", "quc": "کیچەیی", "rap": "ڕاپانوویی", "rar": "ڕاڕۆتۆنگان", "rm": "ڕۆمانش", "rn": "ڕووندی", "ro": "ڕۆمانی", "ro-MD": "مۆڵداڤی", "rof": "ڕۆمبۆ", "root": "ڕووت", "ru": "ڕووسی", "rup": "ئارمۆمانی", "rw": "کینیارواندا", "rwk": "ڕوا", "sa": "سانسکريت", "sad": "سانداوێ", "sah": "ساخا", "saq": "سامبووروو", "sat": "سانتالی", "sba": "نگامبای", "sbp": "سانگوو", "sc": "ساردینی", "scn": "سیسیلی", "sco": "سکۆتس", "sd": "سيندی", "sdh": "کوردیی باشووری", "se": "سامیی باکوور", "seh": "سێنا", "ses": "کۆیرابۆرۆ سێنی", "sg": "سانگۆ", "shi": "شیلها", "shn": "شان", "si": "سینهالی", "sk": "سلۆڤاكی", "sl": "سلۆڤێنی", "sm": "سامۆیی", "sma": "سامیی باشوور", "smj": "لوولێ سامی", "smn": "ئیناری سامی", "sms": "سامیی سکۆڵت", "sn": "شۆنا", "snk": "سۆنینکێ", "so": "سۆمالی", "sq": "ئەڵبانی", "sr": "سربی", "srn": "سرانان تۆنگۆ", "ss": "سواتی", "ssy": "ساهۆ", "st": "سۆتۆی باشوور", "su": "سوندانی", "suk": "سووکووما", "sv": "سویدی", "sw": "سواهیلی", "sw-CD": "سواهیلیی کۆنگۆ", "swb": "کۆمۆری", "syr": "سریانی", "ta": "تامیلی", "te": "تێلووگوو", "tem": "تیمنێ", "teo": "تێسوو", "tet": "تێتووم", "tg": "تاجیکی", "th": "تایلەندی", "ti": "تیگرینیا", "tig": "تیگرێ", "tk": "تورکمانی", "tlh": "كلینگۆن", "tn": "تسوانا", "to": "تۆنگان", "tpi": "تۆکپیسین", "tr": "تورکی", "trv": "تارۆکۆ", "ts": "تسۆنگا", "tt": "تاتاری", "tum": "تومبووکا", "tvl": "تووڤالوو", "twq": "تاساواک", "ty": "تاهیتی", "tyv": "تووڤینی", "tzm": "ئەمازیغی ناوەڕاست", "udm": "ئوودموورت", "ug": "ئۆیخۆری", "uk": "ئۆكراینی", "umb": "ئومبووندوو", "ur": "ئۆردوو", "uz": "ئوزبەکی", "vai": "ڤایی", "ve": "ڤێندا", "vi": "ڤیەتنامی", "vo": "ڤۆلاپووک", "vun": "ڤوونجوو", "wa": "والوون", "wae": "والسێر", "wal": "وۆلایتا", "war": "وارای", "wo": "وۆلۆف", "xal": "کالمیک", "xh": "سسوسا", "xog": "سۆگا", "yav": "یانگبێن", "ybb": "یێمبا", "yi": "ییدیش", "yo": "یۆرووبا", "yue": "کانتۆنی", "zgh": "ئەمازیغیی مەغریب", "zh": "چینی", "zh-Hans": "چینی (چینیی ئاسانکراو)", "zh-Hant": "چینی (چینیی دێرین)", "zu": "زوولوو", "zun": "زوونی", "zza": "زازا"}}, + "cs": {"rtl": false, "languageNames": {"aa": "afarština", "ab": "abcházština", "ace": "acehština", "ach": "akolština", "ada": "adangme", "ady": "adygejština", "ae": "avestánština", "aeb": "arabština (tuniská)", "af": "afrikánština", "afh": "afrihili", "agq": "aghem", "ain": "ainština", "ak": "akanština", "akk": "akkadština", "akz": "alabamština", "ale": "aleutština", "aln": "albánština (Gheg)", "alt": "altajština (jižní)", "am": "amharština", "an": "aragonština", "ang": "staroangličtina", "anp": "angika", "ar": "arabština", "ar-001": "arabština (moderní standardní)", "arc": "aramejština", "arn": "mapudungun", "aro": "araonština", "arp": "arapažština", "arq": "arabština (alžírská)", "ars": "arabština (Nadžd)", "arw": "arawacké jazyky", "ary": "arabština (marocká)", "arz": "arabština (egyptská)", "as": "ásámština", "asa": "asu", "ase": "znaková řeč (americká)", "ast": "asturština", "av": "avarština", "avk": "kotava", "awa": "awadhština", "ay": "ajmarština", "az": "ázerbájdžánština", "ba": "baškirština", "bal": "balúčština", "ban": "balijština", "bar": "bavorština", "bas": "basa", "bax": "bamun", "bbc": "batak toba", "bbj": "ghomala", "be": "běloruština", "bej": "bedža", "bem": "bembština", "bew": "batavština", "bez": "bena", "bfd": "bafut", "bfq": "badagština", "bg": "bulharština", "bgn": "balúčština (západní)", "bho": "bhódžpurština", "bi": "bislamština", "bik": "bikolština", "bin": "bini", "bjn": "bandžarština", "bkm": "kom", "bla": "siksika", "bm": "bambarština", "bn": "bengálština", "bo": "tibetština", "bpy": "bišnuprijskomanipurština", "bqi": "bachtijárština", "br": "bretonština", "bra": "bradžština", "brh": "brahujština", "brx": "bodoština", "bs": "bosenština", "bss": "akoose", "bua": "burjatština", "bug": "bugiština", "bum": "bulu", "byn": "blinština", "byv": "medumba", "ca": "katalánština", "cad": "caddo", "car": "karibština", "cay": "kajugština", "cch": "atsam", "ccp": "čakma", "ce": "čečenština", "ceb": "cebuánština", "cgg": "kiga", "ch": "čamoro", "chb": "čibča", "chg": "čagatajština", "chk": "čukština", "chm": "marijština", "chn": "činuk pidžin", "cho": "čoktština", "chp": "čipevajština", "chr": "čerokézština", "chy": "čejenština", "ckb": "kurdština (sorání)", "co": "korsičtina", "cop": "koptština", "cps": "kapiznonština", "cr": "kríjština", "crh": "turečtina (krymská)", "crs": "kreolština (seychelská)", "cs": "čeština", "csb": "kašubština", "cu": "staroslověnština", "cv": "čuvaština", "cy": "velština", "da": "dánština", "dak": "dakotština", "dar": "dargština", "dav": "taita", "de": "němčina", "de-AT": "němčina (Rakousko)", "de-CH": "němčina standardní (Švýcarsko)", "del": "delawarština", "den": "slejvština (athabaský jazyk)", "dgr": "dogrib", "din": "dinkština", "dje": "zarmština", "doi": "dogarština", "dsb": "dolnolužická srbština", "dtp": "kadazandusunština", "dua": "dualština", "dum": "holandština (středověká)", "dv": "maledivština", "dyo": "jola-fonyi", "dyu": "djula", "dz": "dzongkä", "dzg": "dazaga", "ebu": "embu", "ee": "eweština", "efi": "efikština", "egl": "emilijština", "egy": "egyptština stará", "eka": "ekajuk", "el": "řečtina", "elx": "elamitština", "en": "angličtina", "en-AU": "angličtina (Austrálie)", "en-CA": "angličtina (Kanada)", "en-GB": "angličtina (Velká Británie)", "en-US": "angličtina (USA)", "enm": "angličtina (středověká)", "eo": "esperanto", "es": "španělština", "es-419": "španělština (Latinská Amerika)", "es-ES": "španělština (Evropa)", "es-MX": "španělština (Mexiko)", "esu": "jupikština (středoaljašská)", "et": "estonština", "eu": "baskičtina", "ewo": "ewondo", "ext": "extremadurština", "fa": "perština", "fan": "fang", "fat": "fantština", "ff": "fulbština", "fi": "finština", "fil": "filipínština", "fit": "finština (tornedalská)", "fj": "fidžijština", "fo": "faerština", "fon": "fonština", "fr": "francouzština", "fr-CA": "francouzština (Kanada)", "fr-CH": "francouzština (Švýcarsko)", "frc": "francouzština (cajunská)", "frm": "francouzština (středověká)", "fro": "francouzština (stará)", "frp": "franko-provensálština", "frr": "fríština (severní)", "frs": "fríština (východní)", "fur": "furlanština", "fy": "fríština (západní)", "ga": "irština", "gaa": "gaština", "gag": "gagauzština", "gan": "čínština (dialekty Gan)", "gay": "gayo", "gba": "gbaja", "gbz": "daríjština (zoroastrijská)", "gd": "skotská gaelština", "gez": "geez", "gil": "kiribatština", "gl": "galicijština", "glk": "gilačtina", "gmh": "hornoněmčina (středověká)", "gn": "guaranština", "goh": "hornoněmčina (stará)", "gom": "konkánština (Goa)", "gon": "góndština", "gor": "gorontalo", "got": "gótština", "grb": "grebo", "grc": "starořečtina", "gsw": "němčina (Švýcarsko)", "gu": "gudžarátština", "guc": "wayúuština", "gur": "frafra", "guz": "gusii", "gv": "manština", "gwi": "gwichʼin", "ha": "hauština", "hai": "haidština", "hak": "čínština (dialekty Hakka)", "haw": "havajština", "he": "hebrejština", "hi": "hindština", "hif": "hindština (Fidži)", "hil": "hiligajnonština", "hit": "chetitština", "hmn": "hmongština", "ho": "hiri motu", "hr": "chorvatština", "hsb": "hornolužická srbština", "hsn": "čínština (dialekty Xiang)", "ht": "haitština", "hu": "maďarština", "hup": "hupa", "hy": "arménština", "hz": "hererština", "ia": "interlingua", "iba": "ibanština", "ibb": "ibibio", "id": "indonéština", "ie": "interlingue", "ig": "igboština", "ii": "iština (sečuánská)", "ik": "inupiakština", "ilo": "ilokánština", "inh": "inguština", "io": "ido", "is": "islandština", "it": "italština", "iu": "inuktitutština", "izh": "ingrijština", "ja": "japonština", "jam": "jamajská kreolština", "jbo": "lojban", "jgo": "ngomba", "jmc": "mašame", "jpr": "judeoperština", "jrb": "judeoarabština", "jut": "jutština", "jv": "javánština", "ka": "gruzínština", "kaa": "karakalpačtina", "kab": "kabylština", "kac": "kačijština", "kaj": "jju", "kam": "kambština", "kaw": "kawi", "kbd": "kabardinština", "kbl": "kanembu", "kcg": "tyap", "kde": "makonde", "kea": "kapverdština", "ken": "kenyang", "kfo": "koro", "kg": "konžština", "kgp": "kaingang", "kha": "khásí", "kho": "chotánština", "khq": "koyra chiini", "khw": "chovarština", "ki": "kikujština", "kiu": "zazakština", "kj": "kuaňamština", "kk": "kazaština", "kkj": "kako", "kl": "grónština", "kln": "kalendžin", "km": "khmérština", "kmb": "kimbundština", "kn": "kannadština", "ko": "korejština", "koi": "komi-permjačtina", "kok": "konkánština", "kos": "kosrajština", "kpe": "kpelle", "kr": "kanuri", "krc": "karačajevo-balkarština", "kri": "krio", "krj": "kinaraj-a", "krl": "karelština", "kru": "kuruchština", "ks": "kašmírština", "ksb": "šambala", "ksf": "bafia", "ksh": "kolínština", "ku": "kurdština", "kum": "kumyčtina", "kut": "kutenajština", "kv": "komijština", "kw": "kornština", "ky": "kyrgyzština", "la": "latina", "lad": "ladinština", "lag": "langi", "lah": "lahndština", "lam": "lambština", "lb": "lucemburština", "lez": "lezginština", "lfn": "lingua franca nova", "lg": "gandština", "li": "limburština", "lij": "ligurština", "liv": "livonština", "lkt": "lakotština", "lmo": "lombardština", "ln": "lingalština", "lo": "laoština", "lol": "mongština", "lou": "kreolština (Louisiana)", "loz": "lozština", "lrc": "lúrština (severní)", "lt": "litevština", "ltg": "latgalština", "lu": "lubu-katanžština", "lua": "luba-luluaština", "lui": "luiseňo", "lun": "lundština", "luo": "luoština", "lus": "mizoština", "luy": "luhja", "lv": "lotyština", "lzh": "čínština (klasická)", "lzz": "lazština", "mad": "madurština", "maf": "mafa", "mag": "magahijština", "mai": "maithiliština", "mak": "makasarština", "man": "mandingština", "mas": "masajština", "mde": "maba", "mdf": "mokšanština", "mdr": "mandar", "men": "mende", "mer": "meru", "mfe": "mauricijská kreolština", "mg": "malgaština", "mga": "irština (středověká)", "mgh": "makhuwa-meetto", "mgo": "meta’", "mh": "maršálština", "mi": "maorština", "mic": "micmac", "min": "minangkabau", "mk": "makedonština", "ml": "malajálamština", "mn": "mongolština", "mnc": "mandžuština", "mni": "manipurština", "moh": "mohawkština", "mos": "mosi", "mr": "maráthština", "mrj": "marijština (západní)", "ms": "malajština", "mt": "maltština", "mua": "mundang", "mus": "kríkština", "mwl": "mirandština", "mwr": "márvárština", "mwv": "mentavajština", "my": "barmština", "mye": "myene", "myv": "erzjanština", "mzn": "mázandaránština", "na": "naurština", "nan": "čínština (dialekty Minnan)", "nap": "neapolština", "naq": "namaština", "nb": "norština (bokmål)", "nd": "ndebele (Zimbabwe)", "nds": "dolnoněmčina", "nds-NL": "dolnosaština", "ne": "nepálština", "new": "névárština", "ng": "ndondština", "nia": "nias", "niu": "niueština", "njo": "ao (jazyky Nágálandu)", "nl": "nizozemština", "nl-BE": "vlámština", "nmg": "kwasio", "nn": "norština (nynorsk)", "nnh": "ngiemboon", "no": "norština", "nog": "nogajština", "non": "norština historická", "nov": "novial", "nqo": "n’ko", "nr": "ndebele (Jižní Afrika)", "nso": "sotština (severní)", "nus": "nuerština", "nv": "navažština", "nwc": "newarština (klasická)", "ny": "ňandžština", "nym": "ňamwežština", "nyn": "ňankolština", "nyo": "ňorština", "nzi": "nzima", "oc": "okcitánština", "oj": "odžibvejština", "om": "oromština", "or": "urijština", "os": "osetština", "osa": "osage", "ota": "turečtina (osmanská)", "pa": "paňdžábština", "pag": "pangasinanština", "pal": "pahlavština", "pam": "papangau", "pap": "papiamento", "pau": "palauština", "pcd": "picardština", "pcm": "nigerijský pidžin", "pdc": "němčina (pensylvánská)", "pdt": "němčina (plautdietsch)", "peo": "staroperština", "pfl": "falčtina", "phn": "féničtina", "pi": "pálí", "pl": "polština", "pms": "piemonština", "pnt": "pontština", "pon": "pohnpeiština", "prg": "pruština", "pro": "provensálština", "ps": "paštština", "pt": "portugalština", "pt-BR": "portugalština (Brazílie)", "pt-PT": "portugalština (Evropa)", "qu": "kečuánština", "quc": "kičé", "qug": "kečuánština (chimborazo)", "raj": "rádžastánština", "rap": "rapanujština", "rar": "rarotongánština", "rgn": "romaňolština", "rif": "rífština", "rm": "rétorománština", "rn": "kirundština", "ro": "rumunština", "ro-MD": "moldavština", "rof": "rombo", "rom": "romština", "root": "kořen", "rtm": "rotumanština", "ru": "ruština", "rue": "rusínština", "rug": "rovianština", "rup": "arumunština", "rw": "kiňarwandština", "rwk": "rwa", "sa": "sanskrt", "sad": "sandawština", "sah": "jakutština", "sam": "samarština", "saq": "samburu", "sas": "sasakština", "sat": "santálština", "saz": "saurášterština", "sba": "ngambay", "sbp": "sangoština", "sc": "sardština", "scn": "sicilština", "sco": "skotština", "sd": "sindhština", "sdc": "sassarština", "sdh": "kurdština (jižní)", "se": "sámština (severní)", "see": "seneca", "seh": "sena", "sei": "seriština", "sel": "selkupština", "ses": "koyraboro senni", "sg": "sangština", "sga": "irština (stará)", "sgs": "žemaitština", "sh": "srbochorvatština", "shi": "tašelhit", "shn": "šanština", "shu": "arabština (čadská)", "si": "sinhálština", "sid": "sidamo", "sk": "slovenština", "sl": "slovinština", "sli": "němčina (slezská)", "sly": "selajarština", "sm": "samojština", "sma": "sámština (jižní)", "smj": "sámština (lulejská)", "smn": "sámština (inarijská)", "sms": "sámština (skoltská)", "sn": "šonština", "snk": "sonikština", "so": "somálština", "sog": "sogdština", "sq": "albánština", "sr": "srbština", "srn": "sranan tongo", "srr": "sererština", "ss": "siswatština", "ssy": "saho", "st": "sotština (jižní)", "stq": "fríština (saterlandská)", "su": "sundština", "suk": "sukuma", "sus": "susu", "sux": "sumerština", "sv": "švédština", "sw": "svahilština", "sw-CD": "svahilština (Kongo)", "swb": "komorština", "syc": "syrština (klasická)", "syr": "syrština", "szl": "slezština", "ta": "tamilština", "tcy": "tuluština", "te": "telugština", "tem": "temne", "teo": "teso", "ter": "tereno", "tet": "tetumština", "tg": "tádžičtina", "th": "thajština", "ti": "tigrinijština", "tig": "tigrejština", "tiv": "tivština", "tk": "turkmenština", "tkl": "tokelauština", "tkr": "cachurština", "tl": "tagalog", "tlh": "klingonština", "tli": "tlingit", "tly": "talyština", "tmh": "tamašek", "tn": "setswanština", "to": "tongánština", "tog": "tonžština (nyasa)", "tpi": "tok pisin", "tr": "turečtina", "tru": "turojština", "trv": "taroko", "ts": "tsonga", "tsd": "tsakonština", "tsi": "tsimšijské jazyky", "tt": "tatarština", "ttt": "tatština", "tum": "tumbukština", "tvl": "tuvalština", "tw": "twi", "twq": "tasawaq", "ty": "tahitština", "tyv": "tuvinština", "tzm": "tamazight (střední Maroko)", "udm": "udmurtština", "ug": "ujgurština", "uga": "ugaritština", "uk": "ukrajinština", "umb": "umbundu", "ur": "urdština", "uz": "uzbečtina", "ve": "venda", "vec": "benátština", "vep": "vepština", "vi": "vietnamština", "vls": "vlámština (západní)", "vmf": "němčina (mohansko-franské dialekty)", "vo": "volapük", "vot": "votština", "vro": "võruština", "vun": "vunjo", "wa": "valonština", "wae": "němčina (walser)", "wal": "wolajtština", "war": "warajština", "was": "waština", "wbp": "warlpiri", "wo": "wolofština", "wuu": "čínština (dialekty Wu)", "xal": "kalmyčtina", "xh": "xhoština", "xmf": "mingrelština", "xog": "sogština", "yao": "jaoština", "yap": "japština", "yav": "jangbenština", "ybb": "yemba", "yi": "jidiš", "yo": "jorubština", "yrl": "nheengatu", "yue": "kantonština", "za": "čuangština", "zap": "zapotéčtina", "zbl": "bliss systém", "zea": "zélandština", "zen": "zenaga", "zgh": "tamazight (standardní marocký)", "zh": "čínština", "zh-Hans": "čínština (zjednodušená)", "zh-Hant": "čínština (tradiční)", "zu": "zuluština", "zun": "zunijština", "zza": "zaza"}}, + "cy": {"rtl": false, "languageNames": {"aa": "Affareg", "ab": "Abchaseg", "ace": "Acehneg", "ach": "Acoli", "ada": "Adangmeg", "ady": "Circaseg Gorllewinol", "ae": "Afestaneg", "aeb": "Arabeg Tunisia", "af": "Affricâneg", "afh": "Affrihili", "agq": "Aghemeg", "ain": "Ainŵeg", "ak": "Acaneg", "akk": "Acadeg", "akz": "Alabamäeg", "ale": "Alewteg", "aln": "Ghegeg Albania", "alt": "Altäeg Deheuol", "am": "Amhareg", "an": "Aragoneg", "ang": "Hen Saesneg", "anp": "Angika", "ar": "Arabeg", "ar-001": "Arabeg Modern Safonol", "arc": "Aramaeg", "arn": "Arawcaneg", "aro": "Araonaeg", "arp": "Arapaho", "arq": "Arabeg Algeria", "arw": "Arawaceg", "ary": "Arabeg Moroco", "arz": "Arabeg yr Aifft", "as": "Asameg", "asa": "Asw", "ase": "Iaith Arwyddion America", "ast": "Astwrianeg", "av": "Afareg", "awa": "Awadhi", "ay": "Aymareg", "az": "Aserbaijaneg", "az-Arab": "Aserbaijaneg Deheuol", "ba": "Bashcorteg", "bal": "Balwtsi", "ban": "Balïeg", "bas": "Basâeg", "bax": "Bamwmeg", "be": "Belarwseg", "bej": "Bejäeg", "bem": "Bembeg", "bez": "Bena", "bfd": "Baffwteg", "bfq": "Badaga", "bg": "Bwlgareg", "bgn": "Balochi Gorllewinol", "bho": "Bhojpuri", "bi": "Bislama", "bin": "Bini", "bkm": "Comeg", "bla": "Siksika", "bm": "Bambareg", "bn": "Bengaleg", "bo": "Tibeteg", "br": "Llydaweg", "brh": "Brahui", "brx": "Bodo", "bs": "Bosnieg", "bss": "Acwseg", "bua": "Bwriateg", "bug": "Bwginaeg", "bum": "Bwlw", "byn": "Blin", "ca": "Catalaneg", "cad": "Cado", "car": "Caribeg", "cch": "Atsameg", "ccp": "Tsiacma", "ce": "Tsietsieneg", "ceb": "Cebuano", "cgg": "Tsiga", "ch": "Tsiamorro", "chk": "Chuukaeg", "chm": "Marieg", "cho": "Siocto", "chr": "Tsierocî", "chy": "Cheyenne", "ckb": "Cwrdeg Sorani", "co": "Corseg", "cop": "Copteg", "cr": "Cri", "crh": "Tyrceg y Crimea", "crs": "Ffrangeg Seselwa Creole", "cs": "Tsieceg", "cu": "Hen Slafoneg", "cv": "Tshwfasheg", "cy": "Cymraeg", "da": "Daneg", "dak": "Dacotaeg", "dar": "Dargwa", "dav": "Taita", "de": "Almaeneg", "de-AT": "Almaeneg Awstria", "de-CH": "Almaeneg Safonol y Swistir", "dgr": "Dogrib", "din": "Dinca", "dje": "Sarmaeg", "doi": "Dogri", "dsb": "Sorbeg Isaf", "dua": "Diwaleg", "dum": "Iseldireg Canol", "dv": "Difehi", "dyo": "Jola-Fonyi", "dz": "Dzongkha", "dzg": "Dazaga", "ebu": "Embw", "ee": "Ewe", "efi": "Efik", "egy": "Hen Eiffteg", "eka": "Ekajuk", "el": "Groeg", "elx": "Elameg", "en": "Saesneg", "en-AU": "Saesneg Awstralia", "en-CA": "Saesneg Canada", "en-GB": "Saesneg Prydain", "en-US": "Saesneg America", "enm": "Saesneg Canol", "eo": "Esperanto", "es": "Sbaeneg", "es-419": "Sbaeneg America Ladin", "es-ES": "Sbaeneg Ewrop", "es-MX": "Sbaeneg Mecsico", "et": "Estoneg", "eu": "Basgeg", "ewo": "Ewondo", "ext": "Extremadureg", "fa": "Perseg", "fat": "Ffanti", "ff": "Ffwla", "fi": "Ffinneg", "fil": "Ffilipineg", "fit": "Ffinneg Tornedal", "fj": "Ffijïeg", "fo": "Ffaröeg", "fon": "Fon", "fr": "Ffrangeg", "fr-CA": "Ffrangeg Canada", "fr-CH": "Ffrangeg y Swistir", "frc": "Ffrangeg Cajwn", "frm": "Ffrangeg Canol", "fro": "Hen Ffrangeg", "frp": "Arpitaneg", "frr": "Ffriseg Gogleddol", "frs": "Ffriseg y Dwyrain", "fur": "Ffriwleg", "fy": "Ffriseg y Gorllewin", "ga": "Gwyddeleg", "gaa": "Ga", "gag": "Gagauz", "gay": "Gaio", "gba": "Gbaia", "gbz": "Dareg y Zoroastriaid", "gd": "Gaeleg yr Alban", "gez": "Geez", "gil": "Gilberteg", "gl": "Galisieg", "gmh": "Almaeneg Uchel Canol", "gn": "Guaraní", "goh": "Hen Almaeneg Uchel", "gor": "Gorontalo", "got": "Gotheg", "grc": "Hen Roeg", "gsw": "Almaeneg y Swistir", "gu": "Gwjarati", "guz": "Gusii", "gv": "Manaweg", "gwi": "Gwichʼin", "ha": "Hawsa", "hai": "Haida", "haw": "Hawäieg", "he": "Hebraeg", "hi": "Hindi", "hil": "Hiligaynon", "hit": "Hetheg", "hmn": "Hmongeg", "hr": "Croateg", "hsb": "Sorbeg Uchaf", "ht": "Creol Haiti", "hu": "Hwngareg", "hup": "Hupa", "hy": "Armeneg", "hz": "Herero", "ia": "Interlingua", "iba": "Ibaneg", "ibb": "Ibibio", "id": "Indoneseg", "ie": "Interlingue", "ig": "Igbo", "ii": "Nwosw", "ik": "Inwpiaceg", "ilo": "Ilocaneg", "inh": "Ingwsieg", "io": "Ido", "is": "Islandeg", "it": "Eidaleg", "iu": "Inwctitwt", "ja": "Japaneeg", "jbo": "Lojban", "jgo": "Ngomba", "jmc": "Matsiame", "jpr": "Iddew-Bersieg", "jrb": "Iddew-Arabeg", "jv": "Jafanaeg", "ka": "Georgeg", "kaa": "Cara-Calpaceg", "kab": "Cabileg", "kac": "Kachin", "kaj": "Jju", "kam": "Camba", "kbd": "Cabardieg", "kcg": "Tyapeg", "kde": "Macondeg", "kea": "Caboferdianeg", "kfo": "Koro", "kg": "Congo", "kha": "Càseg", "khq": "Koyra Chiini", "khw": "Chowareg", "ki": "Kikuyu", "kj": "Kuanyama", "kk": "Casacheg", "kkj": "Kako", "kl": "Kalaallisut", "kln": "Kalenjin", "km": "Chmereg", "kmb": "Kimbundu", "kn": "Kannada", "ko": "Coreeg", "koi": "Komi-Permyak", "kok": "Concani", "kpe": "Kpelle", "kr": "Canwri", "krc": "Karachay-Balkar", "krl": "Careleg", "kru": "Kurukh", "ks": "Cashmireg", "ksb": "Shambala", "ksf": "Baffia", "ksh": "Cwleneg", "ku": "Cwrdeg", "kum": "Cwmiceg", "kv": "Comi", "kw": "Cernyweg", "ky": "Cirgiseg", "la": "Lladin", "lad": "Iddew-Sbaeneg", "lag": "Langi", "lah": "Lahnda", "lam": "Lamba", "lb": "Lwcsembwrgeg", "lez": "Lezgheg", "lg": "Ganda", "li": "Limbwrgeg", "lkt": "Lakota", "lmo": "Lombardeg", "ln": "Lingala", "lo": "Laoeg", "lol": "Mongo", "loz": "Lozi", "lrc": "Luri Gogleddol", "lt": "Lithwaneg", "ltg": "Latgaleg", "lu": "Luba-Katanga", "lua": "Luba-Lulua", "lun": "Lwnda", "luo": "Lŵo", "lus": "Lwshaieg", "luy": "Lwyia", "lv": "Latfieg", "mad": "Madwreg", "mag": "Magahi", "mai": "Maithili", "mak": "Macasareg", "man": "Mandingo", "mas": "Masai", "mdf": "Mocsia", "mdr": "Mandareg", "men": "Mendeg", "mer": "Mêrw", "mfe": "Morisyen", "mg": "Malagaseg", "mga": "Gwyddeleg Canol", "mgh": "Makhuwa-Meetto", "mgo": "Meta", "mh": "Marsialeg", "mi": "Maori", "mic": "Micmaceg", "min": "Minangkabau", "mk": "Macedoneg", "ml": "Malayalam", "mn": "Mongoleg", "mnc": "Manshw", "mni": "Manipwri", "moh": "Mohoceg", "mos": "Mosi", "mr": "Marathi", "mrj": "Mari Gorllewinol", "ms": "Maleieg", "mt": "Malteg", "mua": "Mundang", "mus": "Creek", "mwl": "Mirandeg", "mwr": "Marwari", "my": "Byrmaneg", "myv": "Erzya", "mzn": "Masanderani", "na": "Nawrŵeg", "nap": "Naplieg", "naq": "Nama", "nb": "Norwyeg Bokmål", "nd": "Ndebele Gogleddol", "nds": "Almaeneg Isel", "nds-NL": "Sacsoneg Isel", "ne": "Nepaleg", "new": "Newaeg", "ng": "Ndonga", "nia": "Nias", "niu": "Niuean", "njo": "Ao Naga", "nl": "Iseldireg", "nl-BE": "Fflemeg", "nmg": "Kwasio", "nn": "Norwyeg Nynorsk", "nnh": "Ngiemboon", "no": "Norwyeg", "nog": "Nogai", "non": "Hen Norseg", "nqo": "N’Ko", "nr": "Ndebele Deheuol", "nso": "Sotho Gogleddol", "nus": "Nŵereg", "nv": "Nafaho", "nwc": "Hen Newari", "ny": "Nianja", "nym": "Niamwezi", "nyn": "Niancole", "nyo": "Nioro", "nzi": "Nzimeg", "oc": "Ocsitaneg", "oj": "Ojibwa", "om": "Oromo", "or": "Odia", "os": "Oseteg", "osa": "Osageg", "ota": "Tyrceg Otoman", "pa": "Pwnjabeg", "pag": "Pangasineg", "pal": "Pahlafi", "pam": "Pampanga", "pap": "Papiamento", "pau": "Palawan", "pcd": "Picardeg", "pcm": "Pidgin Nigeria", "pdc": "Almaeneg Pensylfania", "peo": "Hen Bersieg", "pfl": "Almaeneg Palatin", "phn": "Phoeniceg", "pi": "Pali", "pl": "Pwyleg", "pms": "Piedmonteg", "pnt": "Ponteg", "pon": "Pohnpeianeg", "prg": "Prwseg", "pro": "Hen Brofensaleg", "ps": "Pashto", "pt": "Portiwgeeg", "pt-BR": "Portiwgeeg Brasil", "pt-PT": "Portiwgeeg Ewrop", "qu": "Quechua", "quc": "K’iche’", "raj": "Rajasthaneg", "rap": "Rapanŵi", "rar": "Raratongeg", "rm": "Románsh", "rn": "Rwndi", "ro": "Rwmaneg", "ro-MD": "Moldofeg", "rof": "Rombo", "rom": "Romani", "root": "Y Gwraidd", "rtm": "Rotumaneg", "ru": "Rwseg", "rup": "Aromaneg", "rw": "Ciniarŵandeg", "rwk": "Rwa", "sa": "Sansgrit", "sad": "Sandäweg", "sah": "Sakha", "sam": "Aramaeg Samaria", "saq": "Sambŵrw", "sas": "Sasaceg", "sat": "Santali", "sba": "Ngambeieg", "sbp": "Sangw", "sc": "Sardeg", "scn": "Sisileg", "sco": "Sgoteg", "sd": "Sindhi", "sdc": "Sasareseg Sardinia", "sdh": "Cwrdeg Deheuol", "se": "Sami Gogleddol", "see": "Seneca", "seh": "Sena", "sei": "Seri", "sel": "Selcypeg", "ses": "Koyraboro Senni", "sg": "Sango", "sga": "Hen Wyddeleg", "sgs": "Samogiteg", "sh": "Serbo-Croateg", "shi": "Tachelhit", "shn": "Shan", "shu": "Arabeg Chad", "si": "Sinhaleg", "sid": "Sidamo", "sk": "Slofaceg", "sl": "Slofeneg", "sli": "Is-silesieg", "sm": "Samöeg", "sma": "Sami Deheuol", "smj": "Sami Lwle", "smn": "Sami Inari", "sms": "Sami Scolt", "sn": "Shona", "snk": "Soninceg", "so": "Somaleg", "sog": "Sogdeg", "sq": "Albaneg", "sr": "Serbeg", "srn": "Sranan Tongo", "srr": "Serereg", "ss": "Swati", "ssy": "Saho", "st": "Sesotheg Deheuol", "stq": "Ffriseg Saterland", "su": "Swndaneg", "suk": "Swcwma", "sus": "Swsŵeg", "sux": "Swmereg", "sv": "Swedeg", "sw": "Swahili", "sw-CD": "Swahili’r Congo", "swb": "Comoreg", "syc": "Hen Syrieg", "syr": "Syrieg", "szl": "Silesieg", "ta": "Tamileg", "tcy": "Tulu", "te": "Telugu", "tem": "Timneg", "teo": "Teso", "ter": "Terena", "tet": "Tetumeg", "tg": "Tajiceg", "th": "Thai", "ti": "Tigrinya", "tig": "Tigreg", "tiv": "Tifeg", "tk": "Twrcmeneg", "tkl": "Tocelaweg", "tkr": "Tsakhureg", "tl": "Tagalog", "tlh": "Klingon", "tli": "Llingit", "tly": "Talysheg", "tmh": "Tamasheceg", "tn": "Tswana", "to": "Tongeg", "tpi": "Tok Pisin", "tr": "Tyrceg", "trv": "Taroko", "ts": "Tsongaeg", "tsd": "Tsaconeg", "tt": "Tatareg", "tum": "Twmbwca", "tvl": "Twfalweg", "tw": "Twi", "twq": "Tasawaq", "ty": "Tahitïeg", "tyv": "Twfwnieg", "tzm": "Tamaseit Canolbarth Moroco", "udm": "Fotiaceg", "ug": "Uighur", "uga": "Wgariteg", "uk": "Wcreineg", "umb": "Umbundu", "ur": "Wrdw", "uz": "Wsbeceg", "vai": "Faieg", "ve": "Fendeg", "vec": "Feniseg", "vep": "Feps", "vi": "Fietnameg", "vls": "Fflemeg Gorllewinol", "vo": "Folapük", "vot": "Foteg", "vun": "Funjo", "wa": "Walwneg", "wae": "Walsereg", "wal": "Walamo", "war": "Winarayeg", "was": "Washo", "wbp": "Warlpiri", "wo": "Woloff", "xal": "Calmyceg", "xh": "Xhosa", "xog": "Soga", "yav": "Iangben", "ybb": "Iembaeg", "yi": "Iddew-Almaeneg", "yo": "Iorwba", "yue": "Cantoneeg", "zap": "Zapoteceg", "zbl": "Blisssymbols", "zea": "Zêlandeg", "zgh": "Tamaseit Safonol", "zh": "Tsieineeg", "zh-Hans": "Tsieineeg Symledig", "zh-Hant": "Tsieineeg Traddodiadol", "zu": "Swlw", "zun": "Swni", "zza": "Sasäeg"}}, + "da": {"rtl": false, "languageNames": {"aa": "afar", "ab": "abkhasisk", "ace": "achinesisk", "ach": "acoli", "ada": "adangme", "ady": "adyghe", "ae": "avestan", "af": "afrikaans", "afh": "afrihili", "agq": "aghem", "ain": "ainu", "ak": "akan", "akk": "akkadisk", "ale": "aleutisk", "alt": "sydaltaisk", "am": "amharisk", "an": "aragonesisk", "ang": "oldengelsk", "anp": "angika", "ar": "arabisk", "ar-001": "moderne standardarabisk", "arc": "aramæisk", "arn": "mapudungun", "arp": "arapaho", "ars": "Najd-arabisk", "arw": "arawak", "as": "assamesisk", "asa": "asu", "ast": "asturisk", "av": "avarisk", "awa": "awadhi", "ay": "aymara", "az": "aserbajdsjansk", "ba": "bashkir", "bal": "baluchi", "ban": "balinesisk", "bas": "basaa", "bax": "bamun", "bbj": "ghomala", "be": "hviderussisk", "bej": "beja", "bem": "bemba", "bez": "bena", "bfd": "bafut", "bg": "bulgarsk", "bgn": "vestbaluchi", "bho": "bhojpuri", "bi": "bislama", "bik": "bikol", "bin": "bini", "bkm": "kom", "bla": "siksika", "bm": "bambara", "bn": "bengali", "bo": "tibetansk", "br": "bretonsk", "bra": "braj", "brx": "bodo", "bs": "bosnisk", "bss": "bakossi", "bua": "buriatisk", "bug": "buginesisk", "bum": "bulu", "byn": "blin", "byv": "medumba", "ca": "catalansk", "cad": "caddo", "car": "caribisk", "cay": "cayuga", "cch": "atsam", "ce": "tjetjensk", "ceb": "cebuano", "cgg": "chiga", "ch": "chamorro", "chb": "chibcha", "chg": "chagatai", "chk": "chuukese", "chm": "mari", "chn": "chinook", "cho": "choctaw", "chp": "chipewyan", "chr": "cherokee", "chy": "cheyenne", "ckb": "sorani", "co": "korsikansk", "cop": "koptisk", "cr": "cree", "crh": "krim-tyrkisk", "crs": "seselwa (kreol-fransk)", "cs": "tjekkisk", "csb": "kasjubisk", "cu": "kirkeslavisk", "cv": "chuvash", "cy": "walisisk", "da": "dansk", "dak": "dakota", "dar": "dargwa", "dav": "taita", "de": "tysk", "de-AT": "østrigsk tysk", "de-CH": "schweizerhøjtysk", "del": "delaware", "den": "athapaskisk", "dgr": "dogrib", "din": "dinka", "dje": "zarma", "doi": "dogri", "dsb": "nedersorbisk", "dua": "duala", "dum": "middelhollandsk", "dv": "divehi", "dyo": "jola-fonyi", "dyu": "dyula", "dz": "dzongkha", "dzg": "dazaga", "ebu": "kiembu", "ee": "ewe", "efi": "efik", "egy": "oldegyptisk", "eka": "ekajuk", "el": "græsk", "elx": "elamitisk", "en": "engelsk", "en-AU": "australsk engelsk", "en-CA": "canadisk engelsk", "en-GB": "britisk engelsk", "en-US": "amerikansk engelsk", "enm": "middelengelsk", "eo": "esperanto", "es": "spansk", "es-419": "latinamerikansk spansk", "es-ES": "europæisk spansk", "es-MX": "mexicansk spansk", "et": "estisk", "eu": "baskisk", "ewo": "ewondo", "fa": "persisk", "fan": "fang", "fat": "fanti", "ff": "fulah", "fi": "finsk", "fil": "filippinsk", "fj": "fijiansk", "fo": "færøsk", "fr": "fransk", "fr-CA": "canadisk fransk", "fr-CH": "schweizisk fransk", "frc": "cajunfransk", "frm": "middelfransk", "fro": "oldfransk", "frr": "nordfrisisk", "frs": "østfrisisk", "fur": "friulian", "fy": "vestfrisisk", "ga": "irsk", "gaa": "ga", "gag": "gagauzisk", "gan": "gan-kinesisk", "gay": "gayo", "gba": "gbaya", "gd": "skotsk gælisk", "gez": "geez", "gil": "gilbertesisk", "gl": "galicisk", "gmh": "middelhøjtysk", "gn": "guarani", "goh": "oldhøjtysk", "gon": "gondi", "gor": "gorontalo", "got": "gotisk", "grb": "grebo", "grc": "oldgræsk", "gsw": "schweizertysk", "gu": "gujarati", "guz": "gusii", "gv": "manx", "gwi": "gwichin", "ha": "hausa", "hai": "haida", "hak": "hakka-kinesisk", "haw": "hawaiiansk", "he": "hebraisk", "hi": "hindi", "hil": "hiligaynon", "hit": "hittitisk", "hmn": "hmong", "ho": "hirimotu", "hr": "kroatisk", "hsb": "øvresorbisk", "hsn": "xiang-kinesisk", "ht": "haitisk", "hu": "ungarsk", "hup": "hupa", "hy": "armensk", "hz": "herero", "ia": "interlingua", "iba": "iban", "ibb": "ibibio", "id": "indonesisk", "ie": "interlingue", "ig": "igbo", "ii": "sichuan yi", "ik": "inupiaq", "ilo": "iloko", "inh": "ingush", "io": "ido", "is": "islandsk", "it": "italiensk", "iu": "inuktitut", "ja": "japansk", "jbo": "lojban", "jgo": "ngomba", "jmc": "machame", "jpr": "jødisk-persisk", "jrb": "jødisk-arabisk", "jv": "javanesisk", "ka": "georgisk", "kaa": "karakalpakisk", "kab": "kabylisk", "kac": "kachin", "kaj": "jju", "kam": "kamba", "kaw": "kawi", "kbd": "kabardian", "kbl": "kanembu", "kcg": "tyap", "kde": "makonde", "kea": "kapverdisk", "kfo": "koro", "kg": "kongo", "kha": "khasi", "kho": "khotanesisk", "khq": "koyra-chiini", "ki": "kikuyu", "kj": "kuanyama", "kk": "kasakhisk", "kkj": "kako", "kl": "grønlandsk", "kln": "kalenjin", "km": "khmer", "kmb": "kimbundu", "kn": "kannada", "ko": "koreansk", "koi": "komi-permjakisk", "kok": "konkani", "kos": "kosraean", "kpe": "kpelle", "kr": "kanuri", "krc": "karatjai-balkar", "krl": "karelsk", "kru": "kurukh", "ks": "kashmiri", "ksb": "shambala", "ksf": "bafia", "ksh": "kölsch", "ku": "kurdisk", "kum": "kymyk", "kut": "kutenaj", "kv": "komi", "kw": "cornisk", "ky": "kirgisisk", "la": "latin", "lad": "ladino", "lag": "langi", "lah": "lahnda", "lam": "lamba", "lb": "luxembourgsk", "lez": "lezghian", "lg": "ganda", "li": "limburgsk", "lkt": "lakota", "ln": "lingala", "lo": "lao", "lol": "mongo", "lou": "Louisiana-kreolsk", "loz": "lozi", "lrc": "nordluri", "lt": "litauisk", "lu": "luba-Katanga", "lua": "luba-Lulua", "lui": "luiseno", "lun": "lunda", "lus": "lushai", "luy": "luyana", "lv": "lettisk", "mad": "madurese", "maf": "mafa", "mag": "magahi", "mai": "maithili", "mak": "makasar", "man": "mandingo", "mas": "masai", "mde": "maba", "mdf": "moksha", "mdr": "mandar", "men": "mende", "mer": "meru", "mfe": "morisyen", "mg": "malagassisk", "mga": "middelirsk", "mgh": "makhuwa-meetto", "mgo": "meta", "mh": "marshallese", "mi": "maori", "mic": "micmac", "min": "minangkabau", "mk": "makedonsk", "ml": "malayalam", "mn": "mongolsk", "mnc": "manchu", "mni": "manipuri", "moh": "mohawk", "mos": "mossi", "mr": "marathisk", "ms": "malajisk", "mt": "maltesisk", "mua": "mundang", "mus": "creek", "mwl": "mirandesisk", "mwr": "marwari", "my": "burmesisk", "mye": "myene", "myv": "erzya", "mzn": "mazenisk", "na": "nauru", "nan": "min-kinesisk", "nap": "napolitansk", "naq": "nama", "nb": "norsk bokmål", "nd": "nordndebele", "nds": "nedertysk", "nds-NL": "nedertysk (Holland)", "ne": "nepalesisk", "new": "newari", "ng": "ndonga", "nia": "nias", "niu": "niueansk", "nl": "hollandsk", "nl-BE": "flamsk", "nmg": "kwasio", "nn": "nynorsk", "nnh": "ngiemboon", "no": "norsk", "nog": "nogai", "non": "oldislandsk", "nqo": "n-ko", "nr": "sydndebele", "nso": "nordsotho", "nus": "nuer", "nv": "navajo", "nwc": "klassisk newarisk", "ny": "nyanja", "nym": "nyamwezi", "nyn": "nyankole", "nyo": "nyoro-sprog", "nzi": "nzima", "oc": "occitansk", "oj": "ojibwa", "om": "oromo", "or": "oriya", "os": "ossetisk", "osa": "osage", "ota": "osmannisk tyrkisk", "pa": "punjabisk", "pag": "pangasinan", "pal": "pahlavi", "pam": "pampanga", "pap": "papiamento", "pau": "palauansk", "pcm": "nigeriansk pidgin", "peo": "oldpersisk", "phn": "fønikisk", "pi": "pali", "pl": "polsk", "pon": "ponape", "prg": "preussisk", "pro": "oldprovencalsk", "ps": "pashto", "pt": "portugisisk", "pt-BR": "brasiliansk portugisisk", "pt-PT": "europæisk portugisisk", "qu": "quechua", "quc": "quiché", "raj": "rajasthani", "rap": "rapanui", "rar": "rarotonga", "rm": "rætoromansk", "rn": "rundi", "ro": "rumænsk", "ro-MD": "moldovisk", "rof": "rombo", "rom": "romani", "root": "rod", "ru": "russisk", "rup": "arumænsk", "rw": "kinyarwanda", "rwk": "rwa", "sa": "sanskrit", "sad": "sandawe", "sah": "yakut", "sam": "samaritansk aramæisk", "saq": "samburu", "sas": "sasak", "sat": "santali", "sba": "ngambay", "sbp": "sangu", "sc": "sardinsk", "scn": "siciliansk", "sco": "skotsk", "sd": "sindhi", "sdh": "sydkurdisk", "se": "nordsamisk", "see": "seneca", "seh": "sena", "sel": "selkupisk", "ses": "koyraboro senni", "sg": "sango", "sga": "oldirsk", "sh": "serbokroatisk", "shi": "tachelhit", "shn": "shan", "shu": "tchadisk arabisk", "si": "singalesisk", "sid": "sidamo", "sk": "slovakisk", "sl": "slovensk", "sm": "samoansk", "sma": "sydsamisk", "smj": "lulesamisk", "smn": "enaresamisk", "sms": "skoltesamisk", "sn": "shona", "snk": "soninke", "so": "somali", "sog": "sogdiansk", "sq": "albansk", "sr": "serbisk", "srn": "sranan tongo", "srr": "serer", "ss": "swati", "ssy": "saho", "st": "sydsotho", "su": "sundanesisk", "suk": "sukuma", "sus": "susu", "sux": "sumerisk", "sv": "svensk", "sw": "swahili", "sw-CD": "congolesisk swahili", "swb": "shimaore", "syc": "klassisk syrisk", "syr": "syrisk", "ta": "tamil", "te": "telugu", "tem": "temne", "teo": "teso", "ter": "tereno", "tet": "tetum", "tg": "tadsjikisk", "th": "thai", "ti": "tigrinya", "tig": "tigre", "tiv": "tivi", "tk": "turkmensk", "tkl": "tokelau", "tl": "tagalog", "tlh": "klingon", "tli": "tlingit", "tmh": "tamashek", "tn": "tswana", "to": "tongansk", "tog": "nyasa tongansk", "tpi": "tok pisin", "tr": "tyrkisk", "trv": "taroko", "ts": "tsonga", "tsi": "tsimshisk", "tt": "tatarisk", "tum": "tumbuka", "tvl": "tuvaluansk", "tw": "twi", "twq": "tasawaq", "ty": "tahitiansk", "tyv": "tuvinian", "tzm": "centralmarokkansk tamazight", "udm": "udmurt", "ug": "uygurisk", "uga": "ugaristisk", "uk": "ukrainsk", "umb": "umbundu", "ur": "urdu", "uz": "usbekisk", "ve": "venda", "vi": "vietnamesisk", "vo": "volapyk", "vot": "votisk", "vun": "vunjo", "wa": "vallonsk", "wae": "walsertysk", "wal": "walamo", "war": "waray", "was": "washo", "wbp": "walbiri", "wo": "wolof", "wuu": "wu-kinesisk", "xal": "kalmyk", "xh": "isiXhosa", "xog": "soga", "yap": "yapese", "yav": "yangben", "ybb": "yemba", "yi": "jiddisch", "yo": "yoruba", "yue": "kantonesisk", "za": "zhuang", "zap": "zapotec", "zbl": "blissymboler", "zen": "zenaga", "zgh": "tamazight", "zh": "kinesisk", "zh-Hans": "forenklet kinesisk", "zh-Hant": "traditionelt kinesisk", "zu": "zulu", "zun": "zuni", "zza": "zaza"}}, + "de": {"rtl": false, "languageNames": {"aa": "Afar", "ab": "Abchasisch", "ace": "Aceh", "ach": "Acholi", "ada": "Adangme", "ady": "Adygeisch", "ae": "Avestisch", "aeb": "Tunesisches Arabisch", "af": "Afrikaans", "afh": "Afrihili", "agq": "Aghem", "ain": "Ainu", "ak": "Akan", "akk": "Akkadisch", "akz": "Alabama", "ale": "Aleutisch", "aln": "Gegisch", "alt": "Süd-Altaisch", "am": "Amharisch", "an": "Aragonesisch", "ang": "Altenglisch", "anp": "Angika", "ar": "Arabisch", "ar-001": "Modernes Hocharabisch", "arc": "Aramäisch", "arn": "Mapudungun", "aro": "Araona", "arp": "Arapaho", "arq": "Algerisches Arabisch", "ars": "Arabisch (Nadschd)", "arw": "Arawak", "ary": "Marokkanisches Arabisch", "arz": "Ägyptisches Arabisch", "as": "Assamesisch", "asa": "Asu", "ase": "Amerikanische Gebärdensprache", "ast": "Asturianisch", "av": "Awarisch", "avk": "Kotava", "awa": "Awadhi", "ay": "Aymara", "az": "Aserbaidschanisch", "ba": "Baschkirisch", "bal": "Belutschisch", "ban": "Balinesisch", "bar": "Bairisch", "bas": "Basaa", "bax": "Bamun", "bbc": "Batak Toba", "bbj": "Ghomala", "be": "Weißrussisch", "bej": "Bedauye", "bem": "Bemba", "bew": "Betawi", "bez": "Bena", "bfd": "Bafut", "bfq": "Badaga", "bg": "Bulgarisch", "bgn": "Westliches Belutschi", "bho": "Bhodschpuri", "bi": "Bislama", "bik": "Bikol", "bin": "Bini", "bjn": "Banjaresisch", "bkm": "Kom", "bla": "Blackfoot", "bm": "Bambara", "bn": "Bengalisch", "bo": "Tibetisch", "bpy": "Bishnupriya", "bqi": "Bachtiarisch", "br": "Bretonisch", "bra": "Braj-Bhakha", "brh": "Brahui", "brx": "Bodo", "bs": "Bosnisch", "bss": "Akoose", "bua": "Burjatisch", "bug": "Buginesisch", "bum": "Bulu", "byn": "Blin", "byv": "Medumba", "ca": "Katalanisch", "cad": "Caddo", "car": "Karibisch", "cay": "Cayuga", "cch": "Atsam", "ce": "Tschetschenisch", "ceb": "Cebuano", "cgg": "Rukiga", "ch": "Chamorro", "chb": "Chibcha", "chg": "Tschagataisch", "chk": "Chuukesisch", "chm": "Mari", "chn": "Chinook", "cho": "Choctaw", "chp": "Chipewyan", "chr": "Cherokee", "chy": "Cheyenne", "ckb": "Zentralkurdisch", "co": "Korsisch", "cop": "Koptisch", "cps": "Capiznon", "cr": "Cree", "crh": "Krimtatarisch", "crs": "Seychellenkreol", "cs": "Tschechisch", "csb": "Kaschubisch", "cu": "Kirchenslawisch", "cv": "Tschuwaschisch", "cy": "Walisisch", "da": "Dänisch", "dak": "Dakota", "dar": "Darginisch", "dav": "Taita", "de": "Deutsch", "de-AT": "Österreichisches Deutsch", "de-CH": "Schweizer Hochdeutsch", "del": "Delaware", "den": "Slave", "dgr": "Dogrib", "din": "Dinka", "dje": "Zarma", "doi": "Dogri", "dsb": "Niedersorbisch", "dtp": "Zentral-Dusun", "dua": "Duala", "dum": "Mittelniederländisch", "dv": "Dhivehi", "dyo": "Diola", "dyu": "Dyula", "dz": "Dzongkha", "dzg": "Dazaga", "ebu": "Embu", "ee": "Ewe", "efi": "Efik", "egl": "Emilianisch", "egy": "Ägyptisch", "eka": "Ekajuk", "el": "Griechisch", "elx": "Elamisch", "en": "Englisch", "en-AU": "Englisch (Australien)", "en-CA": "Englisch (Kanada)", "en-GB": "Englisch (Vereinigtes Königreich)", "en-US": "Englisch (Vereinigte Staaten)", "enm": "Mittelenglisch", "eo": "Esperanto", "es": "Spanisch", "es-419": "Spanisch (Lateinamerika)", "es-ES": "Spanisch (Spanien)", "es-MX": "Spanisch (Mexiko)", "esu": "Zentral-Alaska-Yupik", "et": "Estnisch", "eu": "Baskisch", "ewo": "Ewondo", "ext": "Extremadurisch", "fa": "Persisch", "fan": "Pangwe", "fat": "Fanti", "ff": "Ful", "fi": "Finnisch", "fil": "Filipino", "fit": "Meänkieli", "fj": "Fidschi", "fo": "Färöisch", "fon": "Fon", "fr": "Französisch", "fr-CA": "Französisch (Kanada)", "fr-CH": "Französisch (Schweiz)", "frc": "Cajun", "frm": "Mittelfranzösisch", "fro": "Altfranzösisch", "frp": "Frankoprovenzalisch", "frr": "Nordfriesisch", "frs": "Ostfriesisch", "fur": "Friaulisch", "fy": "Westfriesisch", "ga": "Irisch", "gaa": "Ga", "gag": "Gagausisch", "gan": "Gan", "gay": "Gayo", "gba": "Gbaya", "gbz": "Gabri", "gd": "Schottisches Gälisch", "gez": "Geez", "gil": "Kiribatisch", "gl": "Galicisch", "glk": "Gilaki", "gmh": "Mittelhochdeutsch", "gn": "Guaraní", "goh": "Althochdeutsch", "gom": "Goa-Konkani", "gon": "Gondi", "gor": "Mongondou", "got": "Gotisch", "grb": "Grebo", "grc": "Altgriechisch", "gsw": "Schweizerdeutsch", "gu": "Gujarati", "guc": "Wayúu", "gur": "Farefare", "guz": "Gusii", "gv": "Manx", "gwi": "Kutchin", "ha": "Haussa", "hai": "Haida", "hak": "Hakka", "haw": "Hawaiisch", "he": "Hebräisch", "hi": "Hindi", "hif": "Fidschi-Hindi", "hil": "Hiligaynon", "hit": "Hethitisch", "hmn": "Miao", "ho": "Hiri-Motu", "hr": "Kroatisch", "hsb": "Obersorbisch", "hsn": "Xiang", "ht": "Haiti-Kreolisch", "hu": "Ungarisch", "hup": "Hupa", "hy": "Armenisch", "hz": "Herero", "ia": "Interlingua", "iba": "Iban", "ibb": "Ibibio", "id": "Indonesisch", "ie": "Interlingue", "ig": "Igbo", "ii": "Yi", "ik": "Inupiak", "ilo": "Ilokano", "inh": "Inguschisch", "io": "Ido", "is": "Isländisch", "it": "Italienisch", "iu": "Inuktitut", "izh": "Ischorisch", "ja": "Japanisch", "jam": "Jamaikanisch-Kreolisch", "jbo": "Lojban", "jgo": "Ngomba", "jmc": "Machame", "jpr": "Jüdisch-Persisch", "jrb": "Jüdisch-Arabisch", "jut": "Jütisch", "jv": "Javanisch", "ka": "Georgisch", "kaa": "Karakalpakisch", "kab": "Kabylisch", "kac": "Kachin", "kaj": "Jju", "kam": "Kamba", "kaw": "Kawi", "kbd": "Kabardinisch", "kbl": "Kanembu", "kcg": "Tyap", "kde": "Makonde", "kea": "Kabuverdianu", "ken": "Kenyang", "kfo": "Koro", "kg": "Kongolesisch", "kgp": "Kaingang", "kha": "Khasi", "kho": "Sakisch", "khq": "Koyra Chiini", "khw": "Khowar", "ki": "Kikuyu", "kiu": "Kirmanjki", "kj": "Kwanyama", "kk": "Kasachisch", "kkj": "Kako", "kl": "Grönländisch", "kln": "Kalenjin", "km": "Khmer", "kmb": "Kimbundu", "kn": "Kannada", "ko": "Koreanisch", "koi": "Komi-Permjakisch", "kok": "Konkani", "kos": "Kosraeanisch", "kpe": "Kpelle", "kr": "Kanuri", "krc": "Karatschaiisch-Balkarisch", "kri": "Krio", "krj": "Kinaray-a", "krl": "Karelisch", "kru": "Oraon", "ks": "Kaschmiri", "ksb": "Shambala", "ksf": "Bafia", "ksh": "Kölsch", "ku": "Kurdisch", "kum": "Kumükisch", "kut": "Kutenai", "kv": "Komi", "kw": "Kornisch", "ky": "Kirgisisch", "la": "Latein", "lad": "Ladino", "lag": "Langi", "lah": "Lahnda", "lam": "Lamba", "lb": "Luxemburgisch", "lez": "Lesgisch", "lfn": "Lingua Franca Nova", "lg": "Ganda", "li": "Limburgisch", "lij": "Ligurisch", "liv": "Livisch", "lkt": "Lakota", "lmo": "Lombardisch", "ln": "Lingala", "lo": "Laotisch", "lol": "Mongo", "lou": "Kreol (Louisiana)", "loz": "Lozi", "lrc": "Nördliches Luri", "lt": "Litauisch", "ltg": "Lettgallisch", "lu": "Luba-Katanga", "lua": "Luba-Lulua", "lui": "Luiseno", "lun": "Lunda", "luo": "Luo", "lus": "Lushai", "luy": "Luhya", "lv": "Lettisch", "lzh": "Klassisches Chinesisch", "lzz": "Lasisch", "mad": "Maduresisch", "maf": "Mafa", "mag": "Khotta", "mai": "Maithili", "mak": "Makassarisch", "man": "Malinke", "mas": "Massai", "mde": "Maba", "mdf": "Mokschanisch", "mdr": "Mandaresisch", "men": "Mende", "mer": "Meru", "mfe": "Morisyen", "mg": "Madagassisch", "mga": "Mittelirisch", "mgh": "Makhuwa-Meetto", "mgo": "Meta’", "mh": "Marschallesisch", "mi": "Maori", "mic": "Micmac", "min": "Minangkabau", "mk": "Mazedonisch", "ml": "Malayalam", "mn": "Mongolisch", "mnc": "Mandschurisch", "mni": "Meithei", "moh": "Mohawk", "mos": "Mossi", "mr": "Marathi", "mrj": "Bergmari", "ms": "Malaiisch", "mt": "Maltesisch", "mua": "Mundang", "mus": "Muskogee", "mwl": "Mirandesisch", "mwr": "Marwari", "mwv": "Mentawai", "my": "Birmanisch", "mye": "Myene", "myv": "Ersja-Mordwinisch", "mzn": "Masanderanisch", "na": "Nauruisch", "nan": "Min Nan", "nap": "Neapolitanisch", "naq": "Nama", "nb": "Norwegisch Bokmål", "nd": "Nord-Ndebele", "nds": "Niederdeutsch", "nds-NL": "Niedersächsisch", "ne": "Nepalesisch", "new": "Newari", "ng": "Ndonga", "nia": "Nias", "niu": "Niue", "njo": "Ao-Naga", "nl": "Niederländisch", "nl-BE": "Flämisch", "nmg": "Kwasio", "nn": "Norwegisch Nynorsk", "nnh": "Ngiemboon", "no": "Norwegisch", "nog": "Nogai", "non": "Altnordisch", "nov": "Novial", "nqo": "N’Ko", "nr": "Süd-Ndebele", "nso": "Nord-Sotho", "nus": "Nuer", "nv": "Navajo", "nwc": "Alt-Newari", "ny": "Nyanja", "nym": "Nyamwezi", "nyn": "Nyankole", "nyo": "Nyoro", "nzi": "Nzima", "oc": "Okzitanisch", "oj": "Ojibwa", "om": "Oromo", "or": "Oriya", "os": "Ossetisch", "osa": "Osage", "ota": "Osmanisch", "pa": "Punjabi", "pag": "Pangasinan", "pal": "Mittelpersisch", "pam": "Pampanggan", "pap": "Papiamento", "pau": "Palau", "pcd": "Picardisch", "pcm": "Nigerianisches Pidgin", "pdc": "Pennsylvaniadeutsch", "pdt": "Plautdietsch", "peo": "Altpersisch", "pfl": "Pfälzisch", "phn": "Phönizisch", "pi": "Pali", "pl": "Polnisch", "pms": "Piemontesisch", "pnt": "Pontisch", "pon": "Ponapeanisch", "prg": "Altpreußisch", "pro": "Altprovenzalisch", "ps": "Paschtu", "pt": "Portugiesisch", "pt-BR": "Portugiesisch (Brasilien)", "pt-PT": "Portugiesisch (Portugal)", "qu": "Quechua", "quc": "K’iche’", "qug": "Chimborazo Hochland-Quechua", "raj": "Rajasthani", "rap": "Rapanui", "rar": "Rarotonganisch", "rgn": "Romagnol", "rif": "Tarifit", "rm": "Rätoromanisch", "rn": "Rundi", "ro": "Rumänisch", "ro-MD": "Moldauisch", "rof": "Rombo", "rom": "Romani", "root": "Root", "rtm": "Rotumanisch", "ru": "Russisch", "rue": "Russinisch", "rug": "Roviana", "rup": "Aromunisch", "rw": "Kinyarwanda", "rwk": "Rwa", "sa": "Sanskrit", "sad": "Sandawe", "sah": "Jakutisch", "sam": "Samaritanisch", "saq": "Samburu", "sas": "Sasak", "sat": "Santali", "saz": "Saurashtra", "sba": "Ngambay", "sbp": "Sangu", "sc": "Sardisch", "scn": "Sizilianisch", "sco": "Schottisch", "sd": "Sindhi", "sdc": "Sassarisch", "sdh": "Südkurdisch", "se": "Nordsamisch", "see": "Seneca", "seh": "Sena", "sei": "Seri", "sel": "Selkupisch", "ses": "Koyra Senni", "sg": "Sango", "sga": "Altirisch", "sgs": "Samogitisch", "sh": "Serbo-Kroatisch", "shi": "Taschelhit", "shn": "Schan", "shu": "Tschadisch-Arabisch", "si": "Singhalesisch", "sid": "Sidamo", "sk": "Slowakisch", "sl": "Slowenisch", "sli": "Schlesisch (Niederschlesisch)", "sly": "Selayar", "sm": "Samoanisch", "sma": "Südsamisch", "smj": "Lule-Samisch", "smn": "Inari-Samisch", "sms": "Skolt-Samisch", "sn": "Shona", "snk": "Soninke", "so": "Somali", "sog": "Sogdisch", "sq": "Albanisch", "sr": "Serbisch", "srn": "Srananisch", "srr": "Serer", "ss": "Swazi", "ssy": "Saho", "st": "Süd-Sotho", "stq": "Saterfriesisch", "su": "Sundanesisch", "suk": "Sukuma", "sus": "Susu", "sux": "Sumerisch", "sv": "Schwedisch", "sw": "Suaheli", "sw-CD": "Kongo-Swahili", "swb": "Komorisch", "syc": "Altsyrisch", "syr": "Syrisch", "szl": "Schlesisch (Wasserpolnisch)", "ta": "Tamil", "tcy": "Tulu", "te": "Telugu", "tem": "Temne", "teo": "Teso", "ter": "Tereno", "tet": "Tetum", "tg": "Tadschikisch", "th": "Thailändisch", "ti": "Tigrinya", "tig": "Tigre", "tiv": "Tiv", "tk": "Turkmenisch", "tkl": "Tokelauanisch", "tkr": "Tsachurisch", "tl": "Tagalog", "tlh": "Klingonisch", "tli": "Tlingit", "tly": "Talisch", "tmh": "Tamaseq", "tn": "Tswana", "to": "Tongaisch", "tog": "Nyasa Tonga", "tpi": "Neumelanesisch", "tr": "Türkisch", "tru": "Turoyo", "trv": "Taroko", "ts": "Tsonga", "tsd": "Tsakonisch", "tsi": "Tsimshian", "tt": "Tatarisch", "ttt": "Tatisch", "tum": "Tumbuka", "tvl": "Tuvaluisch", "tw": "Twi", "twq": "Tasawaq", "ty": "Tahitisch", "tyv": "Tuwinisch", "tzm": "Zentralatlas-Tamazight", "udm": "Udmurtisch", "ug": "Uigurisch", "uga": "Ugaritisch", "uk": "Ukrainisch", "umb": "Umbundu", "ur": "Urdu", "uz": "Usbekisch", "vai": "Vai", "ve": "Venda", "vec": "Venetisch", "vep": "Wepsisch", "vi": "Vietnamesisch", "vls": "Westflämisch", "vmf": "Mainfränkisch", "vo": "Volapük", "vot": "Wotisch", "vro": "Võro", "vun": "Vunjo", "wa": "Wallonisch", "wae": "Walliserdeutsch", "wal": "Walamo", "war": "Waray", "was": "Washo", "wbp": "Warlpiri", "wo": "Wolof", "wuu": "Wu", "xal": "Kalmückisch", "xh": "Xhosa", "xmf": "Mingrelisch", "xog": "Soga", "yao": "Yao", "yap": "Yapesisch", "yav": "Yangben", "ybb": "Yemba", "yi": "Jiddisch", "yo": "Yoruba", "yrl": "Nheengatu", "yue": "Kantonesisch", "za": "Zhuang", "zap": "Zapotekisch", "zbl": "Bliss-Symbole", "zea": "Seeländisch", "zen": "Zenaga", "zgh": "Tamazight", "zh": "Chinesisch", "zh-Hans": "Chinesisch (vereinfacht)", "zh-Hant": "Chinesisch (traditionell)", "zu": "Zulu", "zun": "Zuni", "zza": "Zaza"}}, + "dv": {"rtl": true, "languageNames": {}}, + "el": {"rtl": false, "languageNames": {"aa": "Αφάρ", "ab": "Αμπχαζικά", "ace": "Ατσινιζικά", "ach": "Ακολί", "ada": "Αντάνγκμε", "ady": "Αντιγκέα", "ae": "Αβεστάν", "af": "Αφρικάανς", "afh": "Αφριχίλι", "agq": "Αγκέμ", "ain": "Αϊνού", "ak": "Ακάν", "akk": "Ακάντιαν", "ale": "Αλεούτ", "alt": "Νότια Αλτάι", "am": "Αμχαρικά", "an": "Αραγονικά", "ang": "Παλαιά Αγγλικά", "anp": "Ανγκικά", "ar": "Αραβικά", "ar-001": "Σύγχρονα Τυπικά Αραβικά", "arc": "Αραμαϊκά", "arn": "Αραουκανικά", "arp": "Αραπάχο", "ars": "Αραβικά Νάτζντι", "arw": "Αραγουάκ", "as": "Ασαμικά", "asa": "Άσου", "ast": "Αστουριανά", "av": "Αβαρικά", "awa": "Αγουαντί", "ay": "Αϊμάρα", "az": "Αζερμπαϊτζανικά", "ba": "Μπασκίρ", "bal": "Μπαλούτσι", "ban": "Μπαλινίζ", "bas": "Μπάσα", "bax": "Μπαμούν", "bbj": "Γκομάλα", "be": "Λευκορωσικά", "bej": "Μπέζα", "bem": "Μπέμπα", "bez": "Μπένα", "bfd": "Μπαφούτ", "bg": "Βουλγαρικά", "bgn": "Δυτικά Μπαλοχικά", "bho": "Μπότζπουρι", "bi": "Μπισλάμα", "bik": "Μπικόλ", "bin": "Μπίνι", "bkm": "Κομ", "bla": "Σικσίκα", "bm": "Μπαμπάρα", "bn": "Βεγγαλικά", "bo": "Θιβετιανά", "br": "Βρετονικά", "bra": "Μπρατζ", "brx": "Μπόντο", "bs": "Βοσνιακά", "bss": "Ακόσι", "bua": "Μπουριάτ", "bug": "Μπουγκίζ", "bum": "Μπουλού", "byn": "Μπλιν", "byv": "Μεντούμπα", "ca": "Καταλανικά", "cad": "Κάντο", "car": "Καρίμπ", "cay": "Καγιούγκα", "cch": "Ατσάμ", "ccp": "Τσάκμα", "ce": "Τσετσενικά", "ceb": "Σεμπουάνο", "cgg": "Τσίγκα", "ch": "Τσαμόρο", "chb": "Τσίμπτσα", "chg": "Τσαγκατάι", "chk": "Τσουκίζι", "chm": "Μάρι", "chn": "Ιδιωματικά Σινούκ", "cho": "Τσόκτο", "chp": "Τσίπιουαν", "chr": "Τσερόκι", "chy": "Τσεγιέν", "ckb": "Κουρδικά Σοράνι", "co": "Κορσικανικά", "cop": "Κοπτικά", "cr": "Κρι", "crh": "Τουρκικά Κριμαίας", "crs": "Κρεολικά Γαλλικά Σεϋχελλών", "cs": "Τσεχικά", "csb": "Κασούμπιαν", "cu": "Εκκλησιαστικά Σλαβικά", "cv": "Τσουβασικά", "cy": "Ουαλικά", "da": "Δανικά", "dak": "Ντακότα", "dar": "Ντάργκουα", "dav": "Τάιτα", "de": "Γερμανικά", "de-AT": "Γερμανικά Αυστρίας", "de-CH": "Υψηλά Γερμανικά Ελβετίας", "del": "Ντέλαγουερ", "den": "Σλαβικά", "dgr": "Ντόγκριμπ", "din": "Ντίνκα", "dje": "Ζάρμα", "doi": "Ντόγκρι", "dsb": "Κάτω Σορβικά", "dua": "Ντουάλα", "dum": "Μέσα Ολλανδικά", "dv": "Ντιβέχι", "dyo": "Τζόλα-Φόνι", "dyu": "Ντογιούλα", "dz": "Ντζόνγκχα", "dzg": "Νταζάγκα", "ebu": "Έμπου", "ee": "Έουε", "efi": "Εφίκ", "egy": "Αρχαία Αιγυπτιακά", "eka": "Εκατζούκ", "el": "Ελληνικά", "elx": "Ελαμάιτ", "en": "Αγγλικά", "en-AU": "Αγγλικά Αυστραλίας", "en-CA": "Αγγλικά Καναδά", "en-GB": "Αγγλικά Βρετανίας", "en-US": "Αγγλικά Αμερικής", "enm": "Μέσα Αγγλικά", "eo": "Εσπεράντο", "es": "Ισπανικά", "es-419": "Ισπανικά Λατινικής Αμερικής", "es-ES": "Ισπανικά Ευρώπης", "es-MX": "Ισπανικά Μεξικού", "et": "Εσθονικά", "eu": "Βασκικά", "ewo": "Εγουόντο", "fa": "Περσικά", "fan": "Φανγκ", "fat": "Φάντι", "ff": "Φουλά", "fi": "Φινλανδικά", "fil": "Φιλιππινικά", "fj": "Φίτζι", "fo": "Φεροϊκά", "fon": "Φον", "fr": "Γαλλικά", "fr-CA": "Γαλλικά Καναδά", "fr-CH": "Γαλλικά Ελβετίας", "frc": "Γαλλικά (Λουιζιάνα)", "frm": "Μέσα Γαλλικά", "fro": "Παλαιά Γαλλικά", "frr": "Βόρεια Φριζιανά", "frs": "Ανατολικά Φριζιανά", "fur": "Φριουλανικά", "fy": "Δυτικά Φριζικά", "ga": "Ιρλανδικά", "gaa": "Γκα", "gag": "Γκαγκάουζ", "gay": "Γκάγιο", "gba": "Γκμπάγια", "gd": "Σκωτικά Κελτικά", "gez": "Γκιζ", "gil": "Γκιλμπερτίζ", "gl": "Γαλικιανά", "gmh": "Μέσα Άνω Γερμανικά", "gn": "Γκουαρανί", "goh": "Παλαιά Άνω Γερμανικά", "gon": "Γκόντι", "gor": "Γκοροντάλο", "got": "Γοτθικά", "grb": "Γκρίμπο", "grc": "Αρχαία Ελληνικά", "gsw": "Γερμανικά Ελβετίας", "gu": "Γκουγιαράτι", "guz": "Γκούσι", "gv": "Μανξ", "gwi": "Γκουίτσιν", "ha": "Χάουσα", "hai": "Χάιντα", "haw": "Χαβαϊκά", "he": "Εβραϊκά", "hi": "Χίντι", "hil": "Χιλιγκαϊνόν", "hit": "Χιτίτε", "hmn": "Χμονγκ", "ho": "Χίρι Μότου", "hr": "Κροατικά", "hsb": "Άνω Σορβικά", "ht": "Αϊτιανά", "hu": "Ουγγρικά", "hup": "Χούπα", "hy": "Αρμενικά", "hz": "Χερέρο", "ia": "Ιντερλίνγκουα", "iba": "Ιμπάν", "ibb": "Ιμπίμπιο", "id": "Ινδονησιακά", "ie": "Ιντερλίνγκουε", "ig": "Ίγκμπο", "ii": "Σίτσουαν Γι", "ik": "Ινουπιάκ", "ilo": "Ιλόκο", "inh": "Ινγκούς", "io": "Ίντο", "is": "Ισλανδικά", "it": "Ιταλικά", "iu": "Ινούκτιτουτ", "ja": "Ιαπωνικά", "jbo": "Λόζμπαν", "jgo": "Νγκόμπα", "jmc": "Ματσάμε", "jpr": "Ιουδαϊκά-Περσικά", "jrb": "Ιουδαϊκά-Αραβικά", "jv": "Ιαβανικά", "ka": "Γεωργιανά", "kaa": "Κάρα-Καλπάκ", "kab": "Καμπίλε", "kac": "Κατσίν", "kaj": "Τζου", "kam": "Κάμπα", "kaw": "Κάουι", "kbd": "Καμπαρντιανά", "kbl": "Κανέμπου", "kcg": "Τιάπ", "kde": "Μακόντε", "kea": "Γλώσσα του Πράσινου Ακρωτηρίου", "kfo": "Κόρο", "kg": "Κονγκό", "kha": "Κάσι", "kho": "Κοτανικά", "khq": "Κόιρα Τσίνι", "ki": "Κικούγιου", "kj": "Κουανιάμα", "kk": "Καζακικά", "kkj": "Κάκο", "kl": "Καλαάλισουτ", "kln": "Καλεντζίν", "km": "Χμερ", "kmb": "Κιμπούντου", "kn": "Κανάντα", "ko": "Κορεατικά", "koi": "Κόμι-Περμιάκ", "kok": "Κονκανικά", "kos": "Κοσραενικά", "kpe": "Κπέλε", "kr": "Κανούρι", "krc": "Καρατσάι-Μπαλκάρ", "krl": "Καρελικά", "kru": "Κουρούχ", "ks": "Κασμιρικά", "ksb": "Σαμπάλα", "ksf": "Μπάφια", "ksh": "Κολωνικά", "ku": "Κουρδικά", "kum": "Κουμγιούκ", "kut": "Κουτενάι", "kv": "Κόμι", "kw": "Κορνουαλικά", "ky": "Κιργιζικά", "la": "Λατινικά", "lad": "Λαδίνο", "lag": "Λάνγκι", "lah": "Λάχδα", "lam": "Λάμπα", "lb": "Λουξεμβουργιανά", "lez": "Λεζγκικά", "lg": "Γκάντα", "li": "Λιμβουργιανά", "lkt": "Λακότα", "ln": "Λινγκάλα", "lo": "Λαοτινά", "lol": "Μόνγκο", "lou": "Κρεολικά (Λουιζιάνα)", "loz": "Λόζι", "lrc": "Βόρεια Λούρι", "lt": "Λιθουανικά", "lu": "Λούμπα-Κατάνγκα", "lua": "Λούμπα-Λουλούα", "lui": "Λουισένο", "lun": "Λούντα", "luo": "Λούο", "lus": "Μίζο", "luy": "Λούχια", "lv": "Λετονικά", "mad": "Μαντουρίζ", "maf": "Μάφα", "mag": "Μαγκάχι", "mai": "Μαϊτχίλι", "mak": "Μακασάρ", "man": "Μαντίνγκο", "mas": "Μασάι", "mde": "Μάμπα", "mdf": "Μόκσα", "mdr": "Μανδάρ", "men": "Μέντε", "mer": "Μέρου", "mfe": "Μορισιέν", "mg": "Μαλγασικά", "mga": "Μέσα Ιρλανδικά", "mgh": "Μακούβα-Μέτο", "mgo": "Μέτα", "mh": "Μαρσαλέζικα", "mi": "Μαορί", "mic": "Μικμάκ", "min": "Μινανγκαμπάου", "mk": "Μακεδονικά", "ml": "Μαλαγιαλαμικά", "mn": "Μογγολικά", "mnc": "Μαντσού", "mni": "Μανιπούρι", "moh": "Μοχόκ", "mos": "Μόσι", "mr": "Μαραθικά", "ms": "Μαλαισιανά", "mt": "Μαλτεζικά", "mua": "Μουντάνγκ", "mus": "Κρικ", "mwl": "Μιραντεζικά", "mwr": "Μαργουάρι", "my": "Βιρμανικά", "mye": "Μιένε", "myv": "Έρζια", "mzn": "Μαζαντεράνι", "na": "Ναούρου", "nap": "Ναπολιτανικά", "naq": "Νάμα", "nb": "Νορβηγικά Μποκμάλ", "nd": "Βόρεια Ντεμπέλε", "nds": "Κάτω Γερμανικά", "nds-NL": "Κάτω Γερμανικά Ολλανδίας", "ne": "Νεπαλικά", "new": "Νεγουάρι", "ng": "Ντόνγκα", "nia": "Νίας", "niu": "Νιούε", "nl": "Ολλανδικά", "nl-BE": "Φλαμανδικά", "nmg": "Κβάσιο", "nn": "Νορβηγικά Νινόρσκ", "nnh": "Νγκιεμπούν", "no": "Νορβηγικά", "nog": "Νογκάι", "non": "Παλαιά Νορβηγικά", "nqo": "Ν’Κο", "nr": "Νότια Ντεμπέλε", "nso": "Βόρεια Σόθο", "nus": "Νούερ", "nv": "Νάβαχο", "nwc": "Κλασικά Νεουάρι", "ny": "Νιάντζα", "nym": "Νιαμγουέζι", "nyn": "Νιανκόλε", "nyo": "Νιόρο", "nzi": "Νζίμα", "oc": "Οξιτανικά", "oj": "Οζιβίγουα", "om": "Ορόμο", "or": "Όντια", "os": "Οσετικά", "osa": "Οσάζ", "ota": "Οθωμανικά Τουρκικά", "pa": "Παντζαπικά", "pag": "Πανγκασινάν", "pal": "Παχλάβι", "pam": "Παμπάνγκα", "pap": "Παπιαμέντο", "pau": "Παλάουαν", "pcm": "Πίτζιν Νιγηρίας", "peo": "Αρχαία Περσικά", "phn": "Φοινικικά", "pi": "Πάλι", "pl": "Πολωνικά", "pon": "Πομπηικά", "prg": "Πρωσικά", "pro": "Παλαιά Προβανσάλ", "ps": "Πάστο", "pt": "Πορτογαλικά", "pt-BR": "Πορτογαλικά Βραζιλίας", "pt-PT": "Πορτογαλικά Ευρώπης", "qu": "Κέτσουα", "quc": "Κιτσέ", "raj": "Ραζασθάνι", "rap": "Ραπανούι", "rar": "Ραροτονγκάν", "rm": "Ρομανικά", "rn": "Ρούντι", "ro": "Ρουμανικά", "ro-MD": "Μολδαβικά", "rof": "Ρόμπο", "rom": "Ρομανί", "root": "Ρίζα", "ru": "Ρωσικά", "rup": "Αρομανικά", "rw": "Κινιαρουάντα", "rwk": "Ρουά", "sa": "Σανσκριτικά", "sad": "Σαντάγουε", "sah": "Σαχά", "sam": "Σαμαρίτικα Αραμαϊκά", "saq": "Σαμπούρου", "sas": "Σασάκ", "sat": "Σαντάλι", "sba": "Νγκαμπέι", "sbp": "Σάνγκου", "sc": "Σαρδηνιακά", "scn": "Σικελικά", "sco": "Σκωτικά", "sd": "Σίντι", "sdh": "Νότια Κουρδικά", "se": "Βόρεια Σάμι", "see": "Σένεκα", "seh": "Σένα", "sel": "Σελκούπ", "ses": "Κοϊραμπόρο Σένι", "sg": "Σάνγκο", "sga": "Παλαιά Ιρλανδικά", "sh": "Σερβοκροατικά", "shi": "Τασελχίτ", "shn": "Σαν", "shu": "Αραβικά του Τσαντ", "si": "Σινχαλεζικά", "sid": "Σιντάμο", "sk": "Σλοβακικά", "sl": "Σλοβενικά", "sm": "Σαμοανά", "sma": "Νότια Σάμι", "smj": "Λούλε Σάμι", "smn": "Ινάρι Σάμι", "sms": "Σκολτ Σάμι", "sn": "Σόνα", "snk": "Σονίνκε", "so": "Σομαλικά", "sog": "Σογκντιέν", "sq": "Αλβανικά", "sr": "Σερβικά", "srn": "Σρανάν Τόνγκο", "srr": "Σερέρ", "ss": "Σουάτι", "ssy": "Σάχο", "st": "Νότια Σόθο", "su": "Σουνδανικά", "suk": "Σουκούμα", "sus": "Σούσου", "sux": "Σουμερικά", "sv": "Σουηδικά", "sw": "Σουαχίλι", "sw-CD": "Κονγκό Σουαχίλι", "swb": "Κομοριανά", "syc": "Κλασικά Συριακά", "syr": "Συριακά", "ta": "Ταμιλικά", "te": "Τελούγκου", "tem": "Τίμνε", "teo": "Τέσο", "ter": "Τερένο", "tet": "Τέτουμ", "tg": "Τατζικικά", "th": "Ταϊλανδικά", "ti": "Τιγκρινικά", "tig": "Τίγκρε", "tiv": "Τιβ", "tk": "Τουρκμενικά", "tkl": "Τοκελάου", "tl": "Τάγκαλογκ", "tlh": "Κλίνγκον", "tli": "Τλίνγκιτ", "tmh": "Ταμασέκ", "tn": "Τσουάνα", "to": "Τονγκανικά", "tog": "Νιάσα Τόνγκα", "tpi": "Τοκ Πισίν", "tr": "Τουρκικά", "trv": "Ταρόκο", "ts": "Τσόνγκα", "tsi": "Τσίμσιαν", "tt": "Ταταρικά", "tum": "Τουμπούκα", "tvl": "Τουβαλού", "tw": "Τούι", "twq": "Τασαβάκ", "ty": "Ταϊτιανά", "tyv": "Τουβινικά", "tzm": "Ταμαζίτ Κεντρικού Μαρόκο", "udm": "Ουντμούρτ", "ug": "Ουιγκουρικά", "uga": "Ουγκαριτικά", "uk": "Ουκρανικά", "umb": "Ουμπούντου", "ur": "Ουρντού", "uz": "Ουζμπεκικά", "vai": "Βάι", "ve": "Βέντα", "vi": "Βιετναμικά", "vo": "Βολαπιούκ", "vot": "Βότικ", "vun": "Βούντζο", "wa": "Βαλλωνικά", "wae": "Βάλσερ", "wal": "Γουολάιτα", "war": "Γουάραϊ", "was": "Γουασό", "wbp": "Γουαρλπίρι", "wo": "Γουόλοφ", "wuu": "Κινεζικά Γου", "xal": "Καλμίκ", "xh": "Κόσα", "xog": "Σόγκα", "yao": "Γιάο", "yap": "Γιαπίζ", "yav": "Γιανγκμπέν", "ybb": "Γιέμπα", "yi": "Γίντις", "yo": "Γιορούμπα", "yue": "Καντονέζικα", "za": "Ζουάνγκ", "zap": "Ζάποτεκ", "zbl": "Σύμβολα Bliss", "zen": "Ζενάγκα", "zgh": "Τυπικά Ταμαζίτ Μαρόκου", "zh": "Κινεζικά", "zh-Hans": "Απλοποιημένα Κινεζικά", "zh-Hant": "Παραδοσιακά Κινεζικά", "zu": "Ζουλού", "zun": "Ζούνι", "zza": "Ζάζα"}}, + "en": {"rtl": false, "languageNames": {"aa": "Afar", "ab": "Abkhazian", "ace": "Achinese", "ach": "Acoli", "ada": "Adangme", "ady": "Adyghe", "ae": "Avestan", "aeb": "Tunisian Arabic", "af": "Afrikaans", "afh": "Afrihili", "agq": "Aghem", "ain": "Ainu", "ak": "Akan", "akk": "Akkadian", "akz": "Alabama", "ale": "Aleut", "aln": "Gheg Albanian", "alt": "Southern Altai", "am": "Amharic", "an": "Aragonese", "ang": "Old English", "anp": "Angika", "ar": "Arabic", "ar-001": "Modern Standard Arabic", "arc": "Aramaic", "arn": "Mapuche", "aro": "Araona", "arp": "Arapaho", "arq": "Algerian Arabic", "ars": "Najdi Arabic", "arw": "Arawak", "ary": "Moroccan Arabic", "arz": "Egyptian Arabic", "as": "Assamese", "asa": "Asu", "ase": "American Sign Language", "ast": "Asturian", "av": "Avaric", "avk": "Kotava", "awa": "Awadhi", "ay": "Aymara", "az": "Azerbaijani", "ba": "Bashkir", "bal": "Baluchi", "ban": "Balinese", "bar": "Bavarian", "bas": "Basaa", "bax": "Bamun", "bbc": "Batak Toba", "bbj": "Ghomala", "be": "Belarusian", "bej": "Beja", "bem": "Bemba", "bew": "Betawi", "bez": "Bena", "bfd": "Bafut", "bfq": "Badaga", "bg": "Bulgarian", "bgn": "Western Balochi", "bho": "Bhojpuri", "bi": "Bislama", "bik": "Bikol", "bin": "Bini", "bjn": "Banjar", "bkm": "Kom", "bla": "Siksika", "bm": "Bambara", "bn": "Bangla", "bo": "Tibetan", "bpy": "Bishnupriya", "bqi": "Bakhtiari", "br": "Breton", "bra": "Braj", "brh": "Brahui", "brx": "Bodo", "bs": "Bosnian", "bss": "Akoose", "bua": "Buriat", "bug": "Buginese", "bum": "Bulu", "byn": "Blin", "byv": "Medumba", "ca": "Catalan", "cad": "Caddo", "car": "Carib", "cay": "Cayuga", "cch": "Atsam", "ccp": "Chakma", "ce": "Chechen", "ceb": "Cebuano", "cgg": "Chiga", "ch": "Chamorro", "chb": "Chibcha", "chg": "Chagatai", "chk": "Chuukese", "chm": "Mari", "chn": "Chinook Jargon", "cho": "Choctaw", "chp": "Chipewyan", "chr": "Cherokee", "chy": "Cheyenne", "ckb": "Central Kurdish", "co": "Corsican", "cop": "Coptic", "cps": "Capiznon", "cr": "Cree", "crh": "Crimean Turkish", "crs": "Seselwa Creole French", "cs": "Czech", "csb": "Kashubian", "cu": "Church Slavic", "cv": "Chuvash", "cy": "Welsh", "da": "Danish", "dak": "Dakota", "dar": "Dargwa", "dav": "Taita", "de": "German", "de-AT": "Austrian German", "de-CH": "Swiss High German", "del": "Delaware", "den": "Slave", "dgr": "Dogrib", "din": "Dinka", "dje": "Zarma", "doi": "Dogri", "dsb": "Lower Sorbian", "dtp": "Central Dusun", "dua": "Duala", "dum": "Middle Dutch", "dv": "Divehi", "dyo": "Jola-Fonyi", "dyu": "Dyula", "dz": "Dzongkha", "dzg": "Dazaga", "ebu": "Embu", "ee": "Ewe", "efi": "Efik", "egl": "Emilian", "egy": "Ancient Egyptian", "eka": "Ekajuk", "el": "Greek", "elx": "Elamite", "en": "English", "en-AU": "Australian English", "en-CA": "Canadian English", "en-GB": "British English", "en-US": "American English", "enm": "Middle English", "eo": "Esperanto", "es": "Spanish", "es-419": "Latin American Spanish", "es-ES": "European Spanish", "es-MX": "Mexican Spanish", "esu": "Central Yupik", "et": "Estonian", "eu": "Basque", "ewo": "Ewondo", "ext": "Extremaduran", "fa": "Persian", "fa-AF": "Dari", "fan": "Fang", "fat": "Fanti", "ff": "Fulah", "fi": "Finnish", "fil": "Filipino", "fit": "Tornedalen Finnish", "fj": "Fijian", "fo": "Faroese", "fon": "Fon", "fr": "French", "fr-CA": "Canadian French", "fr-CH": "Swiss French", "frc": "Cajun French", "frm": "Middle French", "fro": "Old French", "frp": "Arpitan", "frr": "Northern Frisian", "frs": "Eastern Frisian", "fur": "Friulian", "fy": "Western Frisian", "ga": "Irish", "gaa": "Ga", "gag": "Gagauz", "gan": "Gan Chinese", "gay": "Gayo", "gba": "Gbaya", "gbz": "Zoroastrian Dari", "gd": "Scottish Gaelic", "gez": "Geez", "gil": "Gilbertese", "gl": "Galician", "glk": "Gilaki", "gmh": "Middle High German", "gn": "Guarani", "goh": "Old High German", "gom": "Goan Konkani", "gon": "Gondi", "gor": "Gorontalo", "got": "Gothic", "grb": "Grebo", "grc": "Ancient Greek", "gsw": "Swiss German", "gu": "Gujarati", "guc": "Wayuu", "gur": "Frafra", "guz": "Gusii", "gv": "Manx", "gwi": "Gwichʼin", "ha": "Hausa", "hai": "Haida", "hak": "Hakka Chinese", "haw": "Hawaiian", "he": "Hebrew", "hi": "Hindi", "hif": "Fiji Hindi", "hil": "Hiligaynon", "hit": "Hittite", "hmn": "Hmong", "ho": "Hiri Motu", "hr": "Croatian", "hsb": "Upper Sorbian", "hsn": "Xiang Chinese", "ht": "Haitian Creole", "hu": "Hungarian", "hup": "Hupa", "hy": "Armenian", "hz": "Herero", "ia": "Interlingua", "iba": "Iban", "ibb": "Ibibio", "id": "Indonesian", "ie": "Interlingue", "ig": "Igbo", "ii": "Sichuan Yi", "ik": "Inupiaq", "ilo": "Iloko", "inh": "Ingush", "io": "Ido", "is": "Icelandic", "it": "Italian", "iu": "Inuktitut", "izh": "Ingrian", "ja": "Japanese", "jam": "Jamaican Creole English", "jbo": "Lojban", "jgo": "Ngomba", "jmc": "Machame", "jpr": "Judeo-Persian", "jrb": "Judeo-Arabic", "jut": "Jutish", "jv": "Javanese", "ka": "Georgian", "kaa": "Kara-Kalpak", "kab": "Kabyle", "kac": "Kachin", "kaj": "Jju", "kam": "Kamba", "kaw": "Kawi", "kbd": "Kabardian", "kbl": "Kanembu", "kcg": "Tyap", "kde": "Makonde", "kea": "Kabuverdianu", "ken": "Kenyang", "kfo": "Koro", "kg": "Kongo", "kgp": "Kaingang", "kha": "Khasi", "kho": "Khotanese", "khq": "Koyra Chiini", "khw": "Khowar", "ki": "Kikuyu", "kiu": "Kirmanjki", "kj": "Kuanyama", "kk": "Kazakh", "kkj": "Kako", "kl": "Kalaallisut", "kln": "Kalenjin", "km": "Khmer", "kmb": "Kimbundu", "kn": "Kannada", "ko": "Korean", "koi": "Komi-Permyak", "kok": "Konkani", "kos": "Kosraean", "kpe": "Kpelle", "kr": "Kanuri", "krc": "Karachay-Balkar", "kri": "Krio", "krj": "Kinaray-a", "krl": "Karelian", "kru": "Kurukh", "ks": "Kashmiri", "ksb": "Shambala", "ksf": "Bafia", "ksh": "Colognian", "ku": "Kurdish", "kum": "Kumyk", "kut": "Kutenai", "kv": "Komi", "kw": "Cornish", "ky": "Kyrgyz", "la": "Latin", "lad": "Ladino", "lag": "Langi", "lah": "Lahnda", "lam": "Lamba", "lb": "Luxembourgish", "lez": "Lezghian", "lfn": "Lingua Franca Nova", "lg": "Ganda", "li": "Limburgish", "lij": "Ligurian", "liv": "Livonian", "lkt": "Lakota", "lmo": "Lombard", "ln": "Lingala", "lo": "Lao", "lol": "Mongo", "lou": "Louisiana Creole", "loz": "Lozi", "lrc": "Northern Luri", "lt": "Lithuanian", "ltg": "Latgalian", "lu": "Luba-Katanga", "lua": "Luba-Lulua", "lui": "Luiseno", "lun": "Lunda", "luo": "Luo", "lus": "Mizo", "luy": "Luyia", "lv": "Latvian", "lzh": "Literary Chinese", "lzz": "Laz", "mad": "Madurese", "maf": "Mafa", "mag": "Magahi", "mai": "Maithili", "mak": "Makasar", "man": "Mandingo", "mas": "Masai", "mde": "Maba", "mdf": "Moksha", "mdr": "Mandar", "men": "Mende", "mer": "Meru", "mfe": "Morisyen", "mg": "Malagasy", "mga": "Middle Irish", "mgh": "Makhuwa-Meetto", "mgo": "Metaʼ", "mh": "Marshallese", "mi": "Maori", "mic": "Mi'kmaq", "min": "Minangkabau", "mk": "Macedonian", "ml": "Malayalam", "mn": "Mongolian", "mnc": "Manchu", "mni": "Manipuri", "moh": "Mohawk", "mos": "Mossi", "mr": "Marathi", "mrj": "Western Mari", "ms": "Malay", "mt": "Maltese", "mua": "Mundang", "mus": "Creek", "mwl": "Mirandese", "mwr": "Marwari", "mwv": "Mentawai", "my": "Burmese", "mye": "Myene", "myv": "Erzya", "mzn": "Mazanderani", "na": "Nauru", "nan": "Min Nan Chinese", "nap": "Neapolitan", "naq": "Nama", "nb": "Norwegian Bokmål", "nd": "North Ndebele", "nds": "Low German", "nds-NL": "Low Saxon", "ne": "Nepali", "new": "Newari", "ng": "Ndonga", "nia": "Nias", "niu": "Niuean", "njo": "Ao Naga", "nl": "Dutch", "nl-BE": "Flemish", "nmg": "Kwasio", "nn": "Norwegian Nynorsk", "nnh": "Ngiemboon", "no": "Norwegian", "nog": "Nogai", "non": "Old Norse", "nov": "Novial", "nqo": "N’Ko", "nr": "South Ndebele", "nso": "Northern Sotho", "nus": "Nuer", "nv": "Navajo", "nwc": "Classical Newari", "ny": "Nyanja", "nym": "Nyamwezi", "nyn": "Nyankole", "nyo": "Nyoro", "nzi": "Nzima", "oc": "Occitan", "oj": "Ojibwa", "om": "Oromo", "or": "Odia", "os": "Ossetic", "osa": "Osage", "ota": "Ottoman Turkish", "pa": "Punjabi", "pag": "Pangasinan", "pal": "Pahlavi", "pam": "Pampanga", "pap": "Papiamento", "pau": "Palauan", "pcd": "Picard", "pcm": "Nigerian Pidgin", "pdc": "Pennsylvania German", "pdt": "Plautdietsch", "peo": "Old Persian", "pfl": "Palatine German", "phn": "Phoenician", "pi": "Pali", "pl": "Polish", "pms": "Piedmontese", "pnt": "Pontic", "pon": "Pohnpeian", "prg": "Prussian", "pro": "Old Provençal", "ps": "Pashto", "pt": "Portuguese", "pt-BR": "Brazilian Portuguese", "pt-PT": "European Portuguese", "qu": "Quechua", "quc": "Kʼicheʼ", "qug": "Chimborazo Highland Quichua", "raj": "Rajasthani", "rap": "Rapanui", "rar": "Rarotongan", "rgn": "Romagnol", "rif": "Riffian", "rm": "Romansh", "rn": "Rundi", "ro": "Romanian", "ro-MD": "Moldavian", "rof": "Rombo", "rom": "Romany", "root": "Root", "rtm": "Rotuman", "ru": "Russian", "rue": "Rusyn", "rug": "Roviana", "rup": "Aromanian", "rw": "Kinyarwanda", "rwk": "Rwa", "sa": "Sanskrit", "sad": "Sandawe", "sah": "Sakha", "sam": "Samaritan Aramaic", "saq": "Samburu", "sas": "Sasak", "sat": "Santali", "saz": "Saurashtra", "sba": "Ngambay", "sbp": "Sangu", "sc": "Sardinian", "scn": "Sicilian", "sco": "Scots", "sd": "Sindhi", "sdc": "Sassarese Sardinian", "sdh": "Southern Kurdish", "se": "Northern Sami", "see": "Seneca", "seh": "Sena", "sei": "Seri", "sel": "Selkup", "ses": "Koyraboro Senni", "sg": "Sango", "sga": "Old Irish", "sgs": "Samogitian", "sh": "Serbo-Croatian", "shi": "Tachelhit", "shn": "Shan", "shu": "Chadian Arabic", "si": "Sinhala", "sid": "Sidamo", "sk": "Slovak", "sl": "Slovenian", "sli": "Lower Silesian", "sly": "Selayar", "sm": "Samoan", "sma": "Southern Sami", "smj": "Lule Sami", "smn": "Inari Sami", "sms": "Skolt Sami", "sn": "Shona", "snk": "Soninke", "so": "Somali", "sog": "Sogdien", "sq": "Albanian", "sr": "Serbian", "sr-ME": "Montenegrin", "srn": "Sranan Tongo", "srr": "Serer", "ss": "Swati", "ssy": "Saho", "st": "Southern Sotho", "stq": "Saterland Frisian", "su": "Sundanese", "suk": "Sukuma", "sus": "Susu", "sux": "Sumerian", "sv": "Swedish", "sw": "Swahili", "sw-CD": "Congo Swahili", "swb": "Comorian", "syc": "Classical Syriac", "syr": "Syriac", "szl": "Silesian", "ta": "Tamil", "tcy": "Tulu", "te": "Telugu", "tem": "Timne", "teo": "Teso", "ter": "Tereno", "tet": "Tetum", "tg": "Tajik", "th": "Thai", "ti": "Tigrinya", "tig": "Tigre", "tiv": "Tiv", "tk": "Turkmen", "tkl": "Tokelau", "tkr": "Tsakhur", "tl": "Tagalog", "tlh": "Klingon", "tli": "Tlingit", "tly": "Talysh", "tmh": "Tamashek", "tn": "Tswana", "to": "Tongan", "tog": "Nyasa Tonga", "tpi": "Tok Pisin", "tr": "Turkish", "tru": "Turoyo", "trv": "Taroko", "ts": "Tsonga", "tsd": "Tsakonian", "tsi": "Tsimshian", "tt": "Tatar", "ttt": "Muslim Tat", "tum": "Tumbuka", "tvl": "Tuvalu", "tw": "Twi", "twq": "Tasawaq", "ty": "Tahitian", "tyv": "Tuvinian", "tzm": "Central Atlas Tamazight", "udm": "Udmurt", "ug": "Uyghur", "uga": "Ugaritic", "uk": "Ukrainian", "umb": "Umbundu", "ur": "Urdu", "uz": "Uzbek", "vai": "Vai", "ve": "Venda", "vec": "Venetian", "vep": "Veps", "vi": "Vietnamese", "vls": "West Flemish", "vmf": "Main-Franconian", "vo": "Volapük", "vot": "Votic", "vro": "Võro", "vun": "Vunjo", "wa": "Walloon", "wae": "Walser", "wal": "Wolaytta", "war": "Waray", "was": "Washo", "wbp": "Warlpiri", "wo": "Wolof", "wuu": "Wu Chinese", "xal": "Kalmyk", "xh": "Xhosa", "xmf": "Mingrelian", "xog": "Soga", "yao": "Yao", "yap": "Yapese", "yav": "Yangben", "ybb": "Yemba", "yi": "Yiddish", "yo": "Yoruba", "yrl": "Nheengatu", "yue": "Cantonese", "za": "Zhuang", "zap": "Zapotec", "zbl": "Blissymbols", "zea": "Zeelandic", "zen": "Zenaga", "zgh": "Standard Moroccan Tamazight", "zh": "Mandarin Chinese", "zh-Hans": "Simplified Chinese", "zh-Hant": "Traditional Chinese", "zu": "Zulu", "zun": "Zuni", "zza": "Zaza"}}, + "en-AU": {"rtl": false, "languageNames": {"aa": "Afar", "ab": "Abkhazian", "ace": "Achinese", "ach": "Acoli", "ada": "Adangme", "ady": "Adyghe", "ae": "Avestan", "aeb": "Tunisian Arabic", "af": "Afrikaans", "afh": "Afrihili", "agq": "Aghem", "ain": "Ainu", "ak": "Akan", "akk": "Akkadian", "akz": "Alabama", "ale": "Aleut", "aln": "Gheg Albanian", "alt": "Southern Altai", "am": "Amharic", "an": "Aragonese", "ang": "Old English", "anp": "Angika", "ar": "Arabic", "ar-001": "Modern Standard Arabic", "arc": "Aramaic", "arn": "Mapuche", "aro": "Araona", "arp": "Arapaho", "arq": "Algerian Arabic", "ars": "Najdi Arabic", "arw": "Arawak", "ary": "Moroccan Arabic", "arz": "Egyptian Arabic", "as": "Assamese", "asa": "Asu", "ase": "American Sign Language", "ast": "Asturian", "av": "Avaric", "avk": "Kotava", "awa": "Awadhi", "ay": "Aymara", "az": "Azerbaijani", "ba": "Bashkir", "bal": "Baluchi", "ban": "Balinese", "bar": "Bavarian", "bas": "Basaa", "bax": "Bamun", "bbc": "Batak Toba", "bbj": "Ghomala", "be": "Belarusian", "bej": "Beja", "bem": "Bemba", "bew": "Betawi", "bez": "Bena", "bfd": "Bafut", "bfq": "Badaga", "bg": "Bulgarian", "bgn": "Western Balochi", "bho": "Bhojpuri", "bi": "Bislama", "bik": "Bikol", "bin": "Bini", "bjn": "Banjar", "bkm": "Kom", "bla": "Siksika", "bm": "Bambara", "bn": "Bengali", "bo": "Tibetan", "bpy": "Bishnupriya", "bqi": "Bakhtiari", "br": "Breton", "bra": "Braj", "brh": "Brahui", "brx": "Bodo", "bs": "Bosnian", "bss": "Akoose", "bua": "Buriat", "bug": "Buginese", "bum": "Bulu", "byn": "Blin", "byv": "Medumba", "ca": "Catalan", "cad": "Caddo", "car": "Carib", "cay": "Cayuga", "cch": "Atsam", "ccp": "Chakma", "ce": "Chechen", "ceb": "Cebuano", "cgg": "Chiga", "ch": "Chamorro", "chb": "Chibcha", "chg": "Chagatai", "chk": "Chuukese", "chm": "Mari", "chn": "Chinook Jargon", "cho": "Choctaw", "chp": "Chipewyan", "chr": "Cherokee", "chy": "Cheyenne", "ckb": "Central Kurdish", "co": "Corsican", "cop": "Coptic", "cps": "Capiznon", "cr": "Cree", "crh": "Crimean Turkish", "crs": "Seselwa Creole French", "cs": "Czech", "csb": "Kashubian", "cu": "Church Slavic", "cv": "Chuvash", "cy": "Welsh", "da": "Danish", "dak": "Dakota", "dar": "Dargwa", "dav": "Taita", "de": "German", "de-AT": "Austrian German", "de-CH": "Swiss High German", "del": "Delaware", "den": "Slave", "dgr": "Dogrib", "din": "Dinka", "dje": "Zarma", "doi": "Dogri", "dsb": "Lower Sorbian", "dtp": "Central Dusun", "dua": "Duala", "dum": "Middle Dutch", "dv": "Divehi", "dyo": "Jola-Fonyi", "dyu": "Dyula", "dz": "Dzongkha", "dzg": "Dazaga", "ebu": "Embu", "ee": "Ewe", "efi": "Efik", "egl": "Emilian", "egy": "Ancient Egyptian", "eka": "Ekajuk", "el": "Greek", "elx": "Elamite", "en": "English", "en-AU": "Australian English", "en-CA": "Canadian English", "en-GB": "British English", "en-US": "United States English", "enm": "Middle English", "eo": "Esperanto", "es": "Spanish", "es-419": "Latin American Spanish", "es-ES": "European Spanish", "es-MX": "Mexican Spanish", "esu": "Central Yupik", "et": "Estonian", "eu": "Basque", "ewo": "Ewondo", "ext": "Extremaduran", "fa": "Persian", "fa-AF": "Dari", "fan": "Fang", "fat": "Fanti", "ff": "Fulah", "fi": "Finnish", "fil": "Filipino", "fit": "Tornedalen Finnish", "fj": "Fijian", "fo": "Faroese", "fon": "Fon", "fr": "French", "fr-CA": "Canadian French", "fr-CH": "Swiss French", "frm": "Middle French", "fro": "Old French", "frp": "Arpitan", "frr": "Northern Frisian", "frs": "Eastern Frisian", "fur": "Friulian", "fy": "Western Frisian", "ga": "Irish", "gaa": "Ga", "gag": "Gagauz", "gan": "Gan Chinese", "gay": "Gayo", "gba": "Gbaya", "gbz": "Zoroastrian Dari", "gd": "Scottish Gaelic", "gez": "Geez", "gil": "Gilbertese", "gl": "Galician", "glk": "Gilaki", "gmh": "Middle High German", "gn": "Guarani", "goh": "Old High German", "gom": "Goan Konkani", "gon": "Gondi", "gor": "Gorontalo", "got": "Gothic", "grb": "Grebo", "grc": "Ancient Greek", "gsw": "Swiss German", "gu": "Gujarati", "guc": "Wayuu", "gur": "Frafra", "guz": "Gusii", "gv": "Manx", "gwi": "Gwichʼin", "ha": "Hausa", "hai": "Haida", "hak": "Hakka Chinese", "haw": "Hawaiian", "he": "Hebrew", "hi": "Hindi", "hif": "Fiji Hindi", "hil": "Hiligaynon", "hit": "Hittite", "hmn": "Hmong", "ho": "Hiri Motu", "hr": "Croatian", "hsb": "Upper Sorbian", "hsn": "Xiang Chinese", "ht": "Haitian Creole", "hu": "Hungarian", "hup": "Hupa", "hy": "Armenian", "hz": "Herero", "ia": "Interlingua", "iba": "Iban", "ibb": "Ibibio", "id": "Indonesian", "ie": "Interlingue", "ig": "Igbo", "ii": "Sichuan Yi", "ik": "Inupiaq", "ilo": "Iloko", "inh": "Ingush", "io": "Ido", "is": "Icelandic", "it": "Italian", "iu": "Inuktitut", "izh": "Ingrian", "ja": "Japanese", "jam": "Jamaican Creole English", "jbo": "Lojban", "jgo": "Ngomba", "jmc": "Machame", "jpr": "Judeo-Persian", "jrb": "Judeo-Arabic", "jut": "Jutish", "jv": "Javanese", "ka": "Georgian", "kaa": "Kara-Kalpak", "kab": "Kabyle", "kac": "Kachin", "kaj": "Jju", "kam": "Kamba", "kaw": "Kawi", "kbd": "Kabardian", "kbl": "Kanembu", "kcg": "Tyap", "kde": "Makonde", "kea": "Kabuverdianu", "ken": "Kenyang", "kfo": "Koro", "kg": "Kongo", "kgp": "Kaingang", "kha": "Khasi", "kho": "Khotanese", "khq": "Koyra Chiini", "khw": "Khowar", "ki": "Kikuyu", "kiu": "Kirmanjki", "kj": "Kuanyama", "kk": "Kazakh", "kkj": "Kako", "kl": "Kalaallisut", "kln": "Kalenjin", "km": "Khmer", "kmb": "Kimbundu", "kn": "Kannada", "ko": "Korean", "koi": "Komi-Permyak", "kok": "Konkani", "kos": "Kosraean", "kpe": "Kpelle", "kr": "Kanuri", "krc": "Karachay-Balkar", "kri": "Krio", "krj": "Kinaray-a", "krl": "Karelian", "kru": "Kurukh", "ks": "Kashmiri", "ksb": "Shambala", "ksf": "Bafia", "ksh": "Colognian", "ku": "Kurdish", "kum": "Kumyk", "kut": "Kutenai", "kv": "Komi", "kw": "Cornish", "ky": "Kyrgyz", "la": "Latin", "lad": "Ladino", "lag": "Langi", "lah": "Lahnda", "lam": "Lamba", "lb": "Luxembourgish", "lez": "Lezghian", "lfn": "Lingua Franca Nova", "lg": "Ganda", "li": "Limburgish", "lij": "Ligurian", "liv": "Livonian", "lkt": "Lakota", "lmo": "Lombard", "ln": "Lingala", "lo": "Lao", "lol": "Mongo", "loz": "Lozi", "lrc": "Northern Luri", "lt": "Lithuanian", "ltg": "Latgalian", "lu": "Luba-Katanga", "lua": "Luba-Lulua", "lui": "Luiseno", "lun": "Lunda", "luo": "Luo", "lus": "Mizo", "luy": "Luyia", "lv": "Latvian", "lzh": "Literary Chinese", "lzz": "Laz", "mad": "Madurese", "maf": "Mafa", "mag": "Magahi", "mai": "Maithili", "mak": "Makasar", "man": "Mandingo", "mas": "Masai", "mde": "Maba", "mdf": "Moksha", "mdr": "Mandar", "men": "Mende", "mer": "Meru", "mfe": "Morisyen", "mg": "Malagasy", "mga": "Middle Irish", "mgh": "Makhuwa-Meetto", "mgo": "Metaʼ", "mh": "Marshallese", "mi": "Maori", "mic": "Mi'kmaq", "min": "Minangkabau", "mk": "Macedonian", "ml": "Malayalam", "mn": "Mongolian", "mnc": "Manchu", "mni": "Manipuri", "moh": "Mohawk", "mos": "Mossi", "mr": "Marathi", "mrj": "Western Mari", "ms": "Malay", "mt": "Maltese", "mua": "Mundang", "mus": "Creek", "mwl": "Mirandese", "mwr": "Marwari", "mwv": "Mentawai", "my": "Burmese", "mye": "Myene", "myv": "Erzya", "mzn": "Mazanderani", "na": "Nauru", "nan": "Min Nan Chinese", "nap": "Neapolitan", "naq": "Nama", "nb": "Norwegian Bokmål", "nd": "North Ndebele", "nds": "Low German", "nds-NL": "Low Saxon", "ne": "Nepali", "new": "Newari", "ng": "Ndonga", "nia": "Nias", "niu": "Niuean", "njo": "Ao Naga", "nl": "Dutch", "nl-BE": "Flemish", "nmg": "Kwasio", "nn": "Norwegian Nynorsk", "nnh": "Ngiemboon", "no": "Norwegian", "nog": "Nogai", "non": "Old Norse", "nov": "Novial", "nqo": "N’Ko", "nr": "South Ndebele", "nso": "Northern Sotho", "nus": "Nuer", "nv": "Navajo", "nwc": "Classical Newari", "ny": "Nyanja", "nym": "Nyamwezi", "nyn": "Nyankole", "nyo": "Nyoro", "nzi": "Nzima", "oc": "Occitan", "oj": "Ojibwa", "om": "Oromo", "or": "Odia", "os": "Ossetic", "osa": "Osage", "ota": "Ottoman Turkish", "pa": "Punjabi", "pag": "Pangasinan", "pal": "Pahlavi", "pam": "Pampanga", "pap": "Papiamento", "pau": "Palauan", "pcd": "Picard", "pcm": "Nigerian Pidgin", "pdc": "Pennsylvania German", "pdt": "Plautdietsch", "peo": "Old Persian", "pfl": "Palatine German", "phn": "Phoenician", "pi": "Pali", "pl": "Polish", "pms": "Piedmontese", "pnt": "Pontic", "pon": "Pohnpeian", "prg": "Prussian", "pro": "Old Provençal", "ps": "Pashto", "pt": "Portuguese", "pt-BR": "Brazilian Portuguese", "pt-PT": "European Portuguese", "qu": "Quechua", "quc": "Kʼicheʼ", "qug": "Chimborazo Highland Quichua", "raj": "Rajasthani", "rap": "Rapanui", "rar": "Rarotongan", "rgn": "Romagnol", "rif": "Riffian", "rm": "Romansh", "rn": "Rundi", "ro": "Romanian", "ro-MD": "Moldovan", "rof": "Rombo", "rom": "Romany", "root": "Root", "rtm": "Rotuman", "ru": "Russian", "rue": "Rusyn", "rug": "Roviana", "rup": "Aromanian", "rw": "Kinyarwanda", "rwk": "Rwa", "sa": "Sanskrit", "sad": "Sandawe", "sah": "Sakha", "sam": "Samaritan Aramaic", "saq": "Samburu", "sas": "Sasak", "sat": "Santali", "saz": "Saurashtra", "sba": "Ngambay", "sbp": "Sangu", "sc": "Sardinian", "scn": "Sicilian", "sco": "Scots", "sd": "Sindhi", "sdc": "Sassarese Sardinian", "sdh": "Southern Kurdish", "se": "Northern Sami", "see": "Seneca", "seh": "Sena", "sei": "Seri", "sel": "Selkup", "ses": "Koyraboro Senni", "sg": "Sango", "sga": "Old Irish", "sgs": "Samogitian", "sh": "Serbo-Croatian", "shi": "Tachelhit", "shn": "Shan", "shu": "Chadian Arabic", "si": "Sinhala", "sid": "Sidamo", "sk": "Slovak", "sl": "Slovenian", "sli": "Lower Silesian", "sly": "Selayar", "sm": "Samoan", "sma": "Southern Sami", "smj": "Lule Sami", "smn": "Inari Sami", "sms": "Skolt Sami", "sn": "Shona", "snk": "Soninke", "so": "Somali", "sog": "Sogdien", "sq": "Albanian", "sr": "Serbian", "sr-ME": "Montenegrin", "srn": "Sranan Tongo", "srr": "Serer", "ss": "Swati", "ssy": "Saho", "st": "Southern Sotho", "stq": "Saterland Frisian", "su": "Sundanese", "suk": "Sukuma", "sus": "Susu", "sux": "Sumerian", "sv": "Swedish", "sw": "Swahili", "sw-CD": "Congo Swahili", "swb": "Comorian", "syc": "Classical Syriac", "syr": "Syriac", "szl": "Silesian", "ta": "Tamil", "tcy": "Tulu", "te": "Telugu", "tem": "Timne", "teo": "Teso", "ter": "Tereno", "tet": "Tetum", "tg": "Tajik", "th": "Thai", "ti": "Tigrinya", "tig": "Tigre", "tiv": "Tiv", "tk": "Turkmen", "tkl": "Tokelau", "tkr": "Tsakhur", "tl": "Tagalog", "tlh": "Klingon", "tli": "Tlingit", "tly": "Talysh", "tmh": "Tamashek", "tn": "Tswana", "to": "Tongan", "tog": "Nyasa Tonga", "tpi": "Tok Pisin", "tr": "Turkish", "tru": "Turoyo", "trv": "Taroko", "ts": "Tsonga", "tsd": "Tsakonian", "tsi": "Tsimshian", "tt": "Tatar", "ttt": "Muslim Tat", "tum": "Tumbuka", "tvl": "Tuvalu", "tw": "Twi", "twq": "Tasawaq", "ty": "Tahitian", "tyv": "Tuvinian", "tzm": "Central Atlas Tamazight", "udm": "Udmurt", "ug": "Uyghur", "uga": "Ugaritic", "uk": "Ukrainian", "umb": "Umbundu", "ur": "Urdu", "uz": "Uzbek", "vai": "Vai", "ve": "Venda", "vec": "Venetian", "vep": "Veps", "vi": "Vietnamese", "vls": "West Flemish", "vmf": "Main-Franconian", "vo": "Volapük", "vot": "Votic", "vro": "Võro", "vun": "Vunjo", "wa": "Walloon", "wae": "Walser", "wal": "Wolaytta", "war": "Waray", "was": "Washo", "wbp": "Warlpiri", "wo": "Wolof", "wuu": "Wu Chinese", "xal": "Kalmyk", "xh": "Xhosa", "xmf": "Mingrelian", "xog": "Soga", "yao": "Yao", "yap": "Yapese", "yav": "Yangben", "ybb": "Yemba", "yi": "Yiddish", "yo": "Yoruba", "yrl": "Nheengatu", "yue": "Cantonese", "za": "Zhuang", "zap": "Zapotec", "zbl": "Blissymbols", "zea": "Zeelandic", "zen": "Zenaga", "zgh": "Standard Moroccan Tamazight", "zh": "Mandarin Chinese", "zh-Hans": "Simplified Chinese", "zh-Hant": "Traditional Chinese", "zu": "Zulu", "zun": "Zuni", "zza": "Zaza"}}, + "en-GB": {"rtl": false, "languageNames": {"aa": "Afar", "ab": "Abkhazian", "ace": "Achinese", "ach": "Acoli", "ada": "Adangme", "ady": "Adyghe", "ae": "Avestan", "aeb": "Tunisian Arabic", "af": "Afrikaans", "afh": "Afrihili", "agq": "Aghem", "ain": "Ainu", "ak": "Akan", "akk": "Akkadian", "akz": "Alabama", "ale": "Aleut", "aln": "Gheg Albanian", "alt": "Southern Altai", "am": "Amharic", "an": "Aragonese", "ang": "Old English", "anp": "Angika", "ar": "Arabic", "ar-001": "Modern Standard Arabic", "arc": "Aramaic", "arn": "Mapuche", "aro": "Araona", "arp": "Arapaho", "arq": "Algerian Arabic", "ars": "Najdi Arabic", "arw": "Arawak", "ary": "Moroccan Arabic", "arz": "Egyptian Arabic", "as": "Assamese", "asa": "Asu", "ase": "American Sign Language", "ast": "Asturian", "av": "Avaric", "avk": "Kotava", "awa": "Awadhi", "ay": "Aymara", "az": "Azerbaijani", "ba": "Bashkir", "bal": "Baluchi", "ban": "Balinese", "bar": "Bavarian", "bas": "Basaa", "bax": "Bamun", "bbc": "Batak Toba", "bbj": "Ghomala", "be": "Belarusian", "bej": "Beja", "bem": "Bemba", "bew": "Betawi", "bez": "Bena", "bfd": "Bafut", "bfq": "Badaga", "bg": "Bulgarian", "bgn": "Western Balochi", "bho": "Bhojpuri", "bi": "Bislama", "bik": "Bikol", "bin": "Bini", "bjn": "Banjar", "bkm": "Kom", "bla": "Siksika", "bm": "Bambara", "bn": "Bangla", "bo": "Tibetan", "bpy": "Bishnupriya", "bqi": "Bakhtiari", "br": "Breton", "bra": "Braj", "brh": "Brahui", "brx": "Bodo", "bs": "Bosnian", "bss": "Akoose", "bua": "Buriat", "bug": "Buginese", "bum": "Bulu", "byn": "Blin", "byv": "Medumba", "ca": "Catalan", "cad": "Caddo", "car": "Carib", "cay": "Cayuga", "cch": "Atsam", "ccp": "Chakma", "ce": "Chechen", "ceb": "Cebuano", "cgg": "Chiga", "ch": "Chamorro", "chb": "Chibcha", "chg": "Chagatai", "chk": "Chuukese", "chm": "Mari", "chn": "Chinook Jargon", "cho": "Choctaw", "chp": "Chipewyan", "chr": "Cherokee", "chy": "Cheyenne", "ckb": "Central Kurdish", "co": "Corsican", "cop": "Coptic", "cps": "Capiznon", "cr": "Cree", "crh": "Crimean Turkish", "crs": "Seselwa Creole French", "cs": "Czech", "csb": "Kashubian", "cu": "Church Slavic", "cv": "Chuvash", "cy": "Welsh", "da": "Danish", "dak": "Dakota", "dar": "Dargwa", "dav": "Taita", "de": "German", "de-AT": "Austrian German", "de-CH": "Swiss High German", "del": "Delaware", "den": "Slave", "dgr": "Dogrib", "din": "Dinka", "dje": "Zarma", "doi": "Dogri", "dsb": "Lower Sorbian", "dtp": "Central Dusun", "dua": "Duala", "dum": "Middle Dutch", "dv": "Divehi", "dyo": "Jola-Fonyi", "dyu": "Dyula", "dz": "Dzongkha", "dzg": "Dazaga", "ebu": "Embu", "ee": "Ewe", "efi": "Efik", "egl": "Emilian", "egy": "Ancient Egyptian", "eka": "Ekajuk", "el": "Greek", "elx": "Elamite", "en": "English", "en-AU": "Australian English", "en-CA": "Canadian English", "en-GB": "British English", "en-US": "American English", "enm": "Middle English", "eo": "Esperanto", "es": "Spanish", "es-419": "Latin American Spanish", "es-ES": "European Spanish", "es-MX": "Mexican Spanish", "esu": "Central Yupik", "et": "Estonian", "eu": "Basque", "ewo": "Ewondo", "ext": "Extremaduran", "fa": "Persian", "fa-AF": "Dari", "fan": "Fang", "fat": "Fanti", "ff": "Fulah", "fi": "Finnish", "fil": "Filipino", "fit": "Tornedalen Finnish", "fj": "Fijian", "fo": "Faroese", "fon": "Fon", "fr": "French", "fr-CA": "Canadian French", "fr-CH": "Swiss French", "frc": "Cajun French", "frm": "Middle French", "fro": "Old French", "frp": "Arpitan", "frr": "Northern Frisian", "frs": "Eastern Frisian", "fur": "Friulian", "fy": "Western Frisian", "ga": "Irish", "gaa": "Ga", "gag": "Gagauz", "gan": "Gan Chinese", "gay": "Gayo", "gba": "Gbaya", "gbz": "Zoroastrian Dari", "gd": "Scottish Gaelic", "gez": "Geez", "gil": "Gilbertese", "gl": "Galician", "glk": "Gilaki", "gmh": "Middle High German", "gn": "Guarani", "goh": "Old High German", "gom": "Goan Konkani", "gon": "Gondi", "gor": "Gorontalo", "got": "Gothic", "grb": "Grebo", "grc": "Ancient Greek", "gsw": "Swiss German", "gu": "Gujarati", "guc": "Wayuu", "gur": "Frafra", "guz": "Gusii", "gv": "Manx", "gwi": "Gwichʼin", "ha": "Hausa", "hai": "Haida", "hak": "Hakka Chinese", "haw": "Hawaiian", "he": "Hebrew", "hi": "Hindi", "hif": "Fiji Hindi", "hil": "Hiligaynon", "hit": "Hittite", "hmn": "Hmong", "ho": "Hiri Motu", "hr": "Croatian", "hsb": "Upper Sorbian", "hsn": "Xiang Chinese", "ht": "Haitian Creole", "hu": "Hungarian", "hup": "Hupa", "hy": "Armenian", "hz": "Herero", "ia": "Interlingua", "iba": "Iban", "ibb": "Ibibio", "id": "Indonesian", "ie": "Interlingue", "ig": "Igbo", "ii": "Sichuan Yi", "ik": "Inupiaq", "ilo": "Iloko", "inh": "Ingush", "io": "Ido", "is": "Icelandic", "it": "Italian", "iu": "Inuktitut", "izh": "Ingrian", "ja": "Japanese", "jam": "Jamaican Creole English", "jbo": "Lojban", "jgo": "Ngomba", "jmc": "Machame", "jpr": "Judeo-Persian", "jrb": "Judeo-Arabic", "jut": "Jutish", "jv": "Javanese", "ka": "Georgian", "kaa": "Kara-Kalpak", "kab": "Kabyle", "kac": "Kachin", "kaj": "Jju", "kam": "Kamba", "kaw": "Kawi", "kbd": "Kabardian", "kbl": "Kanembu", "kcg": "Tyap", "kde": "Makonde", "kea": "Kabuverdianu", "ken": "Kenyang", "kfo": "Koro", "kg": "Kongo", "kgp": "Kaingang", "kha": "Khasi", "kho": "Khotanese", "khq": "Koyra Chiini", "khw": "Khowar", "ki": "Kikuyu", "kiu": "Kirmanjki", "kj": "Kuanyama", "kk": "Kazakh", "kkj": "Kako", "kl": "Kalaallisut", "kln": "Kalenjin", "km": "Khmer", "kmb": "Kimbundu", "kn": "Kannada", "ko": "Korean", "koi": "Komi-Permyak", "kok": "Konkani", "kos": "Kosraean", "kpe": "Kpelle", "kr": "Kanuri", "krc": "Karachay-Balkar", "kri": "Krio", "krj": "Kinaray-a", "krl": "Karelian", "kru": "Kurukh", "ks": "Kashmiri", "ksb": "Shambala", "ksf": "Bafia", "ksh": "Colognian", "ku": "Kurdish", "kum": "Kumyk", "kut": "Kutenai", "kv": "Komi", "kw": "Cornish", "ky": "Kyrgyz", "la": "Latin", "lad": "Ladino", "lag": "Langi", "lah": "Lahnda", "lam": "Lamba", "lb": "Luxembourgish", "lez": "Lezghian", "lfn": "Lingua Franca Nova", "lg": "Ganda", "li": "Limburgish", "lij": "Ligurian", "liv": "Livonian", "lkt": "Lakota", "lmo": "Lombard", "ln": "Lingala", "lo": "Lao", "lol": "Mongo", "lou": "Louisiana Creole", "loz": "Lozi", "lrc": "Northern Luri", "lt": "Lithuanian", "ltg": "Latgalian", "lu": "Luba-Katanga", "lua": "Luba-Lulua", "lui": "Luiseno", "lun": "Lunda", "luo": "Luo", "lus": "Mizo", "luy": "Luyia", "lv": "Latvian", "lzh": "Literary Chinese", "lzz": "Laz", "mad": "Madurese", "maf": "Mafa", "mag": "Magahi", "mai": "Maithili", "mak": "Makasar", "man": "Mandingo", "mas": "Masai", "mde": "Maba", "mdf": "Moksha", "mdr": "Mandar", "men": "Mende", "mer": "Meru", "mfe": "Morisyen", "mg": "Malagasy", "mga": "Middle Irish", "mgh": "Makhuwa-Meetto", "mgo": "Metaʼ", "mh": "Marshallese", "mi": "Maori", "mic": "Mi'kmaq", "min": "Minangkabau", "mk": "Macedonian", "ml": "Malayalam", "mn": "Mongolian", "mnc": "Manchu", "mni": "Manipuri", "moh": "Mohawk", "mos": "Mossi", "mr": "Marathi", "mrj": "Western Mari", "ms": "Malay", "mt": "Maltese", "mua": "Mundang", "mus": "Creek", "mwl": "Mirandese", "mwr": "Marwari", "mwv": "Mentawai", "my": "Burmese", "mye": "Myene", "myv": "Erzya", "mzn": "Mazanderani", "na": "Nauru", "nan": "Min Nan Chinese", "nap": "Neapolitan", "naq": "Nama", "nb": "Norwegian Bokmål", "nd": "North Ndebele", "nds": "Low German", "nds-NL": "West Low German", "ne": "Nepali", "new": "Newari", "ng": "Ndonga", "nia": "Nias", "niu": "Niuean", "njo": "Ao Naga", "nl": "Dutch", "nl-BE": "Flemish", "nmg": "Kwasio", "nn": "Norwegian Nynorsk", "nnh": "Ngiemboon", "no": "Norwegian", "nog": "Nogai", "non": "Old Norse", "nov": "Novial", "nqo": "N’Ko", "nr": "South Ndebele", "nso": "Northern Sotho", "nus": "Nuer", "nv": "Navajo", "nwc": "Classical Newari", "ny": "Nyanja", "nym": "Nyamwezi", "nyn": "Nyankole", "nyo": "Nyoro", "nzi": "Nzima", "oc": "Occitan", "oj": "Ojibwa", "om": "Oromo", "or": "Odia", "os": "Ossetic", "osa": "Osage", "ota": "Ottoman Turkish", "pa": "Punjabi", "pag": "Pangasinan", "pal": "Pahlavi", "pam": "Pampanga", "pap": "Papiamento", "pau": "Palauan", "pcd": "Picard", "pcm": "Nigerian Pidgin", "pdc": "Pennsylvania German", "pdt": "Plautdietsch", "peo": "Old Persian", "pfl": "Palatine German", "phn": "Phoenician", "pi": "Pali", "pl": "Polish", "pms": "Piedmontese", "pnt": "Pontic", "pon": "Pohnpeian", "prg": "Prussian", "pro": "Old Provençal", "ps": "Pashto", "pt": "Portuguese", "pt-BR": "Brazilian Portuguese", "pt-PT": "European Portuguese", "qu": "Quechua", "quc": "Kʼicheʼ", "qug": "Chimborazo Highland Quichua", "raj": "Rajasthani", "rap": "Rapanui", "rar": "Rarotongan", "rgn": "Romagnol", "rif": "Riffian", "rm": "Romansh", "rn": "Rundi", "ro": "Romanian", "ro-MD": "Moldavian", "rof": "Rombo", "rom": "Romany", "root": "Root", "rtm": "Rotuman", "ru": "Russian", "rue": "Rusyn", "rug": "Roviana", "rup": "Aromanian", "rw": "Kinyarwanda", "rwk": "Rwa", "sa": "Sanskrit", "sad": "Sandawe", "sah": "Sakha", "sam": "Samaritan Aramaic", "saq": "Samburu", "sas": "Sasak", "sat": "Santali", "saz": "Saurashtra", "sba": "Ngambay", "sbp": "Sangu", "sc": "Sardinian", "scn": "Sicilian", "sco": "Scots", "sd": "Sindhi", "sdc": "Sassarese Sardinian", "sdh": "Southern Kurdish", "se": "Northern Sami", "see": "Seneca", "seh": "Sena", "sei": "Seri", "sel": "Selkup", "ses": "Koyraboro Senni", "sg": "Sango", "sga": "Old Irish", "sgs": "Samogitian", "sh": "Serbo-Croatian", "shi": "Tachelhit", "shn": "Shan", "shu": "Chadian Arabic", "si": "Sinhala", "sid": "Sidamo", "sk": "Slovak", "sl": "Slovenian", "sli": "Lower Silesian", "sly": "Selayar", "sm": "Samoan", "sma": "Southern Sami", "smj": "Lule Sami", "smn": "Inari Sami", "sms": "Skolt Sami", "sn": "Shona", "snk": "Soninke", "so": "Somali", "sog": "Sogdien", "sq": "Albanian", "sr": "Serbian", "sr-ME": "Montenegrin", "srn": "Sranan Tongo", "srr": "Serer", "ss": "Swati", "ssy": "Saho", "st": "Southern Sotho", "stq": "Saterland Frisian", "su": "Sundanese", "suk": "Sukuma", "sus": "Susu", "sux": "Sumerian", "sv": "Swedish", "sw": "Swahili", "sw-CD": "Congo Swahili", "swb": "Comorian", "syc": "Classical Syriac", "syr": "Syriac", "szl": "Silesian", "ta": "Tamil", "tcy": "Tulu", "te": "Telugu", "tem": "Timne", "teo": "Teso", "ter": "Tereno", "tet": "Tetum", "tg": "Tajik", "th": "Thai", "ti": "Tigrinya", "tig": "Tigre", "tiv": "Tiv", "tk": "Turkmen", "tkl": "Tokelau", "tkr": "Tsakhur", "tl": "Tagalog", "tlh": "Klingon", "tli": "Tlingit", "tly": "Talysh", "tmh": "Tamashek", "tn": "Tswana", "to": "Tongan", "tog": "Nyasa Tonga", "tpi": "Tok Pisin", "tr": "Turkish", "tru": "Turoyo", "trv": "Taroko", "ts": "Tsonga", "tsd": "Tsakonian", "tsi": "Tsimshian", "tt": "Tatar", "ttt": "Muslim Tat", "tum": "Tumbuka", "tvl": "Tuvalu", "tw": "Twi", "twq": "Tasawaq", "ty": "Tahitian", "tyv": "Tuvinian", "tzm": "Central Atlas Tamazight", "udm": "Udmurt", "ug": "Uyghur", "uga": "Ugaritic", "uk": "Ukrainian", "umb": "Umbundu", "ur": "Urdu", "uz": "Uzbek", "vai": "Vai", "ve": "Venda", "vec": "Venetian", "vep": "Veps", "vi": "Vietnamese", "vls": "West Flemish", "vmf": "Main-Franconian", "vo": "Volapük", "vot": "Votic", "vro": "Võro", "vun": "Vunjo", "wa": "Walloon", "wae": "Walser", "wal": "Wolaytta", "war": "Waray", "was": "Washo", "wbp": "Warlpiri", "wo": "Wolof", "wuu": "Wu Chinese", "xal": "Kalmyk", "xh": "Xhosa", "xmf": "Mingrelian", "xog": "Soga", "yao": "Yao", "yap": "Yapese", "yav": "Yangben", "ybb": "Yemba", "yi": "Yiddish", "yo": "Yoruba", "yrl": "Nheengatu", "yue": "Cantonese", "za": "Zhuang", "zap": "Zapotec", "zbl": "Blissymbols", "zea": "Zeelandic", "zen": "Zenaga", "zgh": "Standard Moroccan Tamazight", "zh": "Mandarin Chinese", "zh-Hans": "Simplified Chinese", "zh-Hant": "Traditional Chinese", "zu": "Zulu", "zun": "Zuni", "zza": "Zaza"}}, + "eo": {"rtl": false, "languageNames": {"aa": "afara", "ab": "abĥaza", "af": "afrikansa", "am": "amhara", "ar": "araba", "ar-001": "araba (Mondo)", "as": "asama", "ay": "ajmara", "az": "azerbajĝana", "ba": "baŝkira", "be": "belorusa", "bg": "bulgara", "bi": "bislamo", "bn": "bengala", "bo": "tibeta", "br": "bretona", "bs": "bosnia", "ca": "kataluna", "co": "korsika", "cs": "ĉeĥa", "cy": "kimra", "da": "dana", "de": "germana", "de-AT": "germana (Aŭstrujo)", "de-CH": "germana (Svisujo)", "dv": "mahla", "dz": "dzonko", "efi": "ibibioefika", "el": "greka", "en": "angla", "en-AU": "angla (Aŭstralio)", "en-CA": "angla (Kanado)", "en-GB": "angla (Unuiĝinta Reĝlando)", "en-US": "angla (Usono)", "eo": "esperanto", "es": "hispana", "es-419": "hispana (419)", "es-ES": "hispana (Hispanujo)", "es-MX": "hispana (Meksiko)", "et": "estona", "eu": "eŭska", "fa": "persa", "fi": "finna", "fil": "filipina", "fj": "fiĝia", "fo": "feroa", "fr": "franca", "fr-CA": "franca (Kanado)", "fr-CH": "franca (Svisujo)", "fy": "frisa", "ga": "irlanda", "gd": "gaela", "gl": "galega", "gn": "gvarania", "gu": "guĝarata", "ha": "haŭsa", "haw": "havaja", "he": "hebrea", "hi": "hinda", "hr": "kroata", "ht": "haitia kreola", "hu": "hungara", "hy": "armena", "ia": "interlingvao", "id": "indonezia", "ie": "okcidentalo", "ik": "eskima", "is": "islanda", "it": "itala", "iu": "inuita", "ja": "japana", "jv": "java", "ka": "kartvela", "kk": "kazaĥa", "kl": "gronlanda", "km": "kmera", "kn": "kanara", "ko": "korea", "ks": "kaŝmira", "ku": "kurda", "ky": "kirgiza", "la": "latino", "lb": "luksemburga", "ln": "lingala", "lo": "laŭa", "lt": "litova", "lv": "latva", "mg": "malagasa", "mi": "maoria", "mk": "makedona", "ml": "malajalama", "mn": "mongola", "mr": "marata", "ms": "malaja", "mt": "malta", "my": "birma", "na": "naura", "nb": "dannorvega", "nds-NL": "nds (Nederlando)", "ne": "nepala", "nl": "nederlanda", "nl-BE": "nederlanda (Belgujo)", "nn": "novnorvega", "no": "norvega", "oc": "okcitana", "om": "oroma", "or": "orijo", "pa": "panĝaba", "pl": "pola", "ps": "paŝtoa", "pt": "portugala", "pt-BR": "brazilportugala", "pt-PT": "eŭropportugala", "qu": "keĉua", "rm": "romanĉa", "rn": "burunda", "ro": "rumana", "ro-MD": "rumana (Moldavujo)", "ru": "rusa", "rw": "ruanda", "sa": "sanskrito", "sd": "sinda", "sg": "sangoa", "sh": "serbo-Kroata", "si": "sinhala", "sk": "slovaka", "sl": "slovena", "sm": "samoa", "sn": "ŝona", "so": "somala", "sq": "albana", "sr": "serba", "ss": "svazia", "st": "sota", "su": "sunda", "sv": "sveda", "sw": "svahila", "sw-CD": "svahila (CD)", "ta": "tamila", "te": "telugua", "tg": "taĝika", "th": "taja", "ti": "tigraja", "tk": "turkmena", "tl": "tagaloga", "tlh": "klingona", "tn": "cvana", "to": "tongaa", "tr": "turka", "ts": "conga", "tt": "tatara", "ug": "ujgura", "uk": "ukraina", "ur": "urduo", "uz": "uzbeka", "vi": "vjetnama", "vo": "volapuko", "wo": "volofa", "xh": "ksosa", "yi": "jida", "yo": "joruba", "za": "ĝuanga", "zh": "ĉina", "zh-Hans": "ĉina simpligita", "zh-Hant": "ĉina tradicia", "zu": "zulua"}}, + "es": {"rtl": false, "languageNames": {"aa": "afar", "ab": "abjasio", "ace": "acehnés", "ach": "acoli", "ada": "adangme", "ady": "adigué", "ae": "avéstico", "af": "afrikáans", "afh": "afrihili", "agq": "aghem", "ain": "ainu", "ak": "akan", "akk": "acadio", "ale": "aleutiano", "alt": "altái meridional", "am": "amárico", "an": "aragonés", "ang": "inglés antiguo", "anp": "angika", "ar": "árabe", "ar-001": "árabe estándar moderno", "arc": "arameo", "arn": "mapuche", "arp": "arapaho", "ars": "árabe najdí", "arw": "arahuaco", "as": "asamés", "asa": "asu", "ast": "asturiano", "av": "avar", "awa": "avadhi", "ay": "aimara", "az": "azerbaiyano", "ba": "baskir", "bal": "baluchi", "ban": "balinés", "bas": "basaa", "bax": "bamún", "bbj": "ghomala", "be": "bielorruso", "bej": "beja", "bem": "bemba", "bez": "bena", "bfd": "bafut", "bg": "búlgaro", "bgn": "baluchi occidental", "bho": "bhoyapurí", "bi": "bislama", "bik": "bicol", "bin": "bini", "bkm": "kom", "bla": "siksika", "bm": "bambara", "bn": "bengalí", "bo": "tibetano", "br": "bretón", "bra": "braj", "brx": "bodo", "bs": "bosnio", "bss": "akoose", "bua": "buriato", "bug": "buginés", "bum": "bulu", "byn": "blin", "byv": "medumba", "ca": "catalán", "cad": "caddo", "car": "caribe", "cay": "cayuga", "cch": "atsam", "ce": "checheno", "ceb": "cebuano", "cgg": "chiga", "ch": "chamorro", "chb": "chibcha", "chg": "chagatái", "chk": "trukés", "chm": "marí", "chn": "jerga chinuk", "cho": "choctaw", "chp": "chipewyan", "chr": "cheroqui", "chy": "cheyene", "ckb": "kurdo sorani", "co": "corso", "cop": "copto", "cr": "cree", "crh": "tártaro de Crimea", "crs": "criollo seychelense", "cs": "checo", "csb": "casubio", "cu": "eslavo eclesiástico", "cv": "chuvasio", "cy": "galés", "da": "danés", "dak": "dakota", "dar": "dargva", "dav": "taita", "de": "alemán", "de-AT": "alemán austríaco", "de-CH": "alto alemán suizo", "del": "delaware", "den": "slave", "dgr": "dogrib", "din": "dinka", "dje": "zarma", "doi": "dogri", "dsb": "bajo sorbio", "dua": "duala", "dum": "neerlandés medio", "dv": "divehi", "dyo": "jola-fonyi", "dyu": "diula", "dz": "dzongkha", "dzg": "dazaga", "ebu": "embu", "ee": "ewé", "efi": "efik", "egy": "egipcio antiguo", "eka": "ekajuk", "el": "griego", "elx": "elamita", "en": "inglés", "en-AU": "inglés australiano", "en-CA": "inglés canadiense", "en-GB": "inglés británico", "en-US": "inglés estadounidense", "enm": "inglés medio", "eo": "esperanto", "es": "español", "es-419": "español latinoamericano", "es-ES": "español de España", "es-MX": "español de México", "et": "estonio", "eu": "euskera", "ewo": "ewondo", "fa": "persa", "fan": "fang", "fat": "fanti", "ff": "fula", "fi": "finés", "fil": "filipino", "fj": "fiyiano", "fo": "feroés", "fr": "francés", "fr-CA": "francés canadiense", "fr-CH": "francés suizo", "frc": "francés cajún", "frm": "francés medio", "fro": "francés antiguo", "frr": "frisón septentrional", "frs": "frisón oriental", "fur": "friulano", "fy": "frisón occidental", "ga": "irlandés", "gaa": "ga", "gag": "gagauzo", "gan": "chino gan", "gay": "gayo", "gba": "gbaya", "gd": "gaélico escocés", "gez": "geez", "gil": "gilbertés", "gl": "gallego", "gmh": "alto alemán medio", "gn": "guaraní", "goh": "alto alemán antiguo", "gon": "gondi", "gor": "gorontalo", "got": "gótico", "grb": "grebo", "grc": "griego antiguo", "gsw": "alemán suizo", "gu": "guyaratí", "guz": "gusii", "gv": "manés", "gwi": "kutchin", "ha": "hausa", "hai": "haida", "hak": "chino hakka", "haw": "hawaiano", "he": "hebreo", "hi": "hindi", "hil": "hiligaynon", "hit": "hitita", "hmn": "hmong", "ho": "hiri motu", "hr": "croata", "hsb": "alto sorbio", "hsn": "chino xiang", "ht": "criollo haitiano", "hu": "húngaro", "hup": "hupa", "hy": "armenio", "hz": "herero", "ia": "interlingua", "iba": "iban", "ibb": "ibibio", "id": "indonesio", "ie": "interlingue", "ig": "igbo", "ii": "yi de Sichuán", "ik": "inupiaq", "ilo": "ilocano", "inh": "ingush", "io": "ido", "is": "islandés", "it": "italiano", "iu": "inuktitut", "ja": "japonés", "jbo": "lojban", "jgo": "ngomba", "jmc": "machame", "jpr": "judeo-persa", "jrb": "judeo-árabe", "jv": "javanés", "ka": "georgiano", "kaa": "karakalpako", "kab": "cabila", "kac": "kachin", "kaj": "jju", "kam": "kamba", "kaw": "kawi", "kbd": "kabardiano", "kbl": "kanembu", "kcg": "tyap", "kde": "makonde", "kea": "criollo caboverdiano", "kfo": "koro", "kg": "kongo", "kha": "khasi", "kho": "kotanés", "khq": "koyra chiini", "ki": "kikuyu", "kj": "kuanyama", "kk": "kazajo", "kkj": "kako", "kl": "groenlandés", "kln": "kalenjin", "km": "jemer", "kmb": "kimbundu", "kn": "canarés", "ko": "coreano", "koi": "komi permio", "kok": "konkaní", "kos": "kosraeano", "kpe": "kpelle", "kr": "kanuri", "krc": "karachay-balkar", "krl": "carelio", "kru": "kurukh", "ks": "cachemiro", "ksb": "shambala", "ksf": "bafia", "ksh": "kölsch", "ku": "kurdo", "kum": "kumyk", "kut": "kutenai", "kv": "komi", "kw": "córnico", "ky": "kirguís", "la": "latín", "lad": "ladino", "lag": "langi", "lah": "lahnda", "lam": "lamba", "lb": "luxemburgués", "lez": "lezgiano", "lg": "ganda", "li": "limburgués", "lkt": "lakota", "ln": "lingala", "lo": "lao", "lol": "mongo", "lou": "criollo de Luisiana", "loz": "lozi", "lrc": "lorí septentrional", "lt": "lituano", "lu": "luba-katanga", "lua": "luba-lulua", "lui": "luiseño", "lun": "lunda", "lus": "mizo", "luy": "luyia", "lv": "letón", "mad": "madurés", "maf": "mafa", "mag": "magahi", "mai": "maithili", "mak": "macasar", "man": "mandingo", "mas": "masái", "mde": "maba", "mdf": "moksha", "mdr": "mandar", "men": "mende", "mer": "meru", "mfe": "criollo mauriciano", "mg": "malgache", "mga": "irlandés medio", "mgh": "makhuwa-meetto", "mgo": "meta’", "mh": "marshalés", "mi": "maorí", "mic": "micmac", "min": "minangkabau", "mk": "macedonio", "ml": "malayalam", "mn": "mongol", "mnc": "manchú", "mni": "manipuri", "moh": "mohawk", "mos": "mossi", "mr": "maratí", "ms": "malayo", "mt": "maltés", "mua": "mundang", "mus": "creek", "mwl": "mirandés", "mwr": "marwari", "my": "birmano", "mye": "myene", "myv": "erzya", "mzn": "mazandaraní", "na": "nauruano", "nan": "chino min nan", "nap": "napolitano", "naq": "nama", "nb": "noruego bokmal", "nd": "ndebele septentrional", "nds": "bajo alemán", "nds-NL": "bajo sajón", "ne": "nepalí", "new": "newari", "ng": "ndonga", "nia": "nias", "niu": "niueano", "nl": "neerlandés", "nl-BE": "flamenco", "nmg": "kwasio", "nn": "noruego nynorsk", "nnh": "ngiemboon", "no": "noruego", "nog": "nogai", "non": "nórdico antiguo", "nqo": "n’ko", "nr": "ndebele meridional", "nso": "sotho septentrional", "nus": "nuer", "nv": "navajo", "nwc": "newari clásico", "ny": "nyanja", "nym": "nyamwezi", "nyn": "nyankole", "nyo": "nyoro", "nzi": "nzima", "oc": "occitano", "oj": "ojibwa", "om": "oromo", "or": "oriya", "os": "osético", "osa": "osage", "ota": "turco otomano", "pa": "panyabí", "pag": "pangasinán", "pal": "pahlavi", "pam": "pampanga", "pap": "papiamento", "pau": "palauano", "pcm": "pidgin de Nigeria", "peo": "persa antiguo", "phn": "fenicio", "pi": "pali", "pl": "polaco", "pon": "pohnpeiano", "prg": "prusiano", "pro": "provenzal antiguo", "ps": "pastún", "pt": "portugués", "pt-BR": "portugués de Brasil", "pt-PT": "portugués de Portugal", "qu": "quechua", "quc": "quiché", "raj": "rajasthani", "rap": "rapanui", "rar": "rarotongano", "rm": "romanche", "rn": "kirundi", "ro": "rumano", "ro-MD": "moldavo", "rof": "rombo", "rom": "romaní", "root": "raíz", "ru": "ruso", "rup": "arrumano", "rw": "kinyarwanda", "rwk": "rwa", "sa": "sánscrito", "sad": "sandawe", "sah": "sakha", "sam": "arameo samaritano", "saq": "samburu", "sas": "sasak", "sat": "santali", "sba": "ngambay", "sbp": "sangu", "sc": "sardo", "scn": "siciliano", "sco": "escocés", "sd": "sindhi", "sdh": "kurdo meridional", "se": "sami septentrional", "see": "seneca", "seh": "sena", "sel": "selkup", "ses": "koyraboro senni", "sg": "sango", "sga": "irlandés antiguo", "sh": "serbocroata", "shi": "tashelhit", "shn": "shan", "shu": "árabe chadiano", "si": "cingalés", "sid": "sidamo", "sk": "eslovaco", "sl": "esloveno", "sm": "samoano", "sma": "sami meridional", "smj": "sami lule", "smn": "sami inari", "sms": "sami skolt", "sn": "shona", "snk": "soninké", "so": "somalí", "sog": "sogdiano", "sq": "albanés", "sr": "serbio", "srn": "sranan tongo", "srr": "serer", "ss": "suazi", "ssy": "saho", "st": "sotho meridional", "su": "sundanés", "suk": "sukuma", "sus": "susu", "sux": "sumerio", "sv": "sueco", "sw": "suajili", "sw-CD": "suajili del Congo", "swb": "comorense", "syc": "siríaco clásico", "syr": "siriaco", "ta": "tamil", "te": "telugu", "tem": "temne", "teo": "teso", "ter": "tereno", "tet": "tetún", "tg": "tayiko", "th": "tailandés", "ti": "tigriña", "tig": "tigré", "tk": "turcomano", "tkl": "tokelauano", "tl": "tagalo", "tlh": "klingon", "tli": "tlingit", "tmh": "tamashek", "tn": "setsuana", "to": "tongano", "tog": "tonga del Nyasa", "tpi": "tok pisin", "tr": "turco", "trv": "taroko", "ts": "tsonga", "tsi": "tsimshiano", "tt": "tártaro", "tum": "tumbuka", "tvl": "tuvaluano", "tw": "twi", "twq": "tasawaq", "ty": "tahitiano", "tyv": "tuviniano", "tzm": "tamazight del Atlas Central", "udm": "udmurt", "ug": "uigur", "uga": "ugarítico", "uk": "ucraniano", "umb": "umbundu", "ur": "urdu", "uz": "uzbeko", "ve": "venda", "vi": "vietnamita", "vo": "volapük", "vot": "vótico", "vun": "vunjo", "wa": "valón", "wae": "walser", "wal": "wolayta", "war": "waray", "was": "washo", "wbp": "warlpiri", "wo": "wólof", "wuu": "chino wu", "xal": "kalmyk", "xh": "xhosa", "xog": "soga", "yap": "yapés", "yav": "yangben", "ybb": "yemba", "yi": "yidis", "yo": "yoruba", "yue": "cantonés", "za": "zhuang", "zap": "zapoteco", "zbl": "símbolos Bliss", "zen": "zenaga", "zgh": "tamazight estándar marroquí", "zh": "chino", "zh-Hans": "chino simplificado", "zh-Hant": "chino tradicional", "zu": "zulú", "zun": "zuñi", "zza": "zazaki"}}, + "et": {"rtl": false, "languageNames": {"aa": "afari", "ab": "abhaasi", "ace": "atšehi", "ach": "atšoli", "ada": "adangme", "ady": "adõgee", "ae": "avesta", "aeb": "Tuneesia araabia", "af": "afrikaani", "afh": "afrihili", "agq": "aghemi", "ain": "ainu", "ak": "akani", "akk": "akadi", "akz": "alabama", "ale": "aleuudi", "aln": "geegi", "alt": "altai", "am": "amhara", "an": "aragoni", "ang": "vanainglise", "anp": "angika", "ar": "araabia", "ar-001": "araabia (tänapäevane)", "arc": "aramea", "arn": "mapudunguni", "aro": "araona", "arp": "arapaho", "arq": "Alžeeria araabia", "arw": "aravaki", "ary": "Maroko araabia", "arz": "Egiptuse araabia", "as": "assami", "asa": "asu", "ase": "Ameerika viipekeel", "ast": "astuuria", "av": "avaari", "awa": "avadhi", "ay": "aimara", "az": "aserbaidžaani", "ba": "baškiiri", "bal": "belutši", "ban": "bali", "bar": "baieri", "bas": "basaa", "bax": "bamuni", "bbc": "bataki", "bbj": "ghomala", "be": "valgevene", "bej": "bedža", "bem": "bemba", "bew": "betavi", "bez": "bena", "bfd": "bafuti", "bfq": "badaga", "bg": "bulgaaria", "bgn": "läänebelutši", "bho": "bhodžpuri", "bi": "bislama", "bik": "bikoli", "bin": "edo", "bjn": "bandžari", "bkm": "komi (Aafrika)", "bla": "mustjalaindiaani", "bm": "bambara", "bn": "bengali", "bo": "tiibeti", "bpy": "bišnuprija", "bqi": "bahtiari", "br": "bretooni", "bra": "bradži", "brh": "brahui", "brx": "bodo", "bs": "bosnia", "bss": "akoose", "bua": "burjaadi", "bug": "bugi", "bum": "bulu", "byn": "bilini", "byv": "medumba", "ca": "katalaani", "cad": "kado", "car": "kariibi", "cay": "kajuka", "cch": "aitšami", "ccp": "Chakma", "ce": "tšetšeeni", "ceb": "sebu", "cgg": "tšiga", "ch": "tšamorro", "chb": "tšibtša", "chg": "tšagatai", "chk": "tšuugi", "chm": "mari", "chn": "tšinuki žargoon", "cho": "tšokto", "chp": "tšipevai", "chr": "tšerokii", "chy": "šaieeni", "ckb": "sorani", "co": "korsika", "cop": "kopti", "cps": "kapisnoni", "cr": "krii", "crh": "krimmitatari", "crs": "seišelli", "cs": "tšehhi", "csb": "kašuubi", "cu": "kirikuslaavi", "cv": "tšuvaši", "cy": "kõmri", "da": "taani", "dak": "siuu", "dar": "dargi", "dav": "davida", "de": "saksa", "de-AT": "Austria saksa", "de-CH": "Šveitsi ülemsaksa", "del": "delavari", "den": "sleivi", "dgr": "dogribi", "din": "dinka", "dje": "zarma", "doi": "dogri", "dsb": "alamsorbi", "dtp": "keskdusuni", "dua": "duala", "dum": "keskhollandi", "dv": "maldiivi", "dyo": "fonji", "dyu": "djula", "dz": "dzongkha", "dzg": "daza", "ebu": "embu", "ee": "eve", "efi": "efiki", "egl": "emiilia", "egy": "egiptuse", "eka": "ekadžuki", "el": "kreeka", "elx": "eelami", "en": "inglise", "en-AU": "Austraalia inglise", "en-CA": "Kanada inglise", "en-GB": "Briti inglise", "en-US": "Ameerika inglise", "enm": "keskinglise", "eo": "esperanto", "es": "hispaania", "es-419": "Ladina-Ameerika hispaania", "es-ES": "Euroopa hispaania", "es-MX": "Mehhiko hispaania", "esu": "keskjupiki", "et": "eesti", "eu": "baski", "ewo": "evondo", "ext": "estremenju", "fa": "pärsia", "fan": "fangi", "fat": "fanti", "ff": "fula", "fi": "soome", "fil": "filipiini", "fit": "meä", "fj": "fidži", "fo": "fääri", "fon": "foni", "fr": "prantsuse", "fr-CA": "Kanada prantsuse", "fr-CH": "Šveitsi prantsuse", "frc": "cajun’i", "frm": "keskprantsuse", "fro": "vanaprantsuse", "frp": "frankoprovansi", "frr": "põhjafriisi", "frs": "idafriisi", "fur": "friuuli", "fy": "läänefriisi", "ga": "iiri", "gag": "gagauusi", "gan": "kani", "gay": "gajo", "gba": "gbaja", "gd": "gaeli", "gez": "etioopia", "gil": "kiribati", "gl": "galeegi", "glk": "gilaki", "gmh": "keskülemsaksa", "gn": "guaranii", "goh": "vanaülemsaksa", "gon": "gondi", "gor": "gorontalo", "got": "gooti", "grb": "grebo", "grc": "vanakreeka", "gsw": "šveitsisaksa", "gu": "gudžarati", "guc": "vajuu", "gur": "farefare", "guz": "gusii", "gv": "mänksi", "gwi": "gvitšini", "ha": "hausa", "hai": "haida", "hak": "hakka", "haw": "havai", "he": "heebrea", "hi": "hindi", "hif": "Fidži hindi", "hil": "hiligainoni", "hit": "heti", "hmn": "hmongi", "ho": "hirimotu", "hr": "horvaadi", "hsb": "ülemsorbi", "hsn": "sjangi", "ht": "haiti", "hu": "ungari", "hup": "hupa", "hy": "armeenia", "hz": "herero", "ia": "interlingua", "iba": "ibani", "ibb": "ibibio", "id": "indoneesia", "ie": "interlingue", "ig": "ibo", "ii": "Sichuani jii", "ik": "injupiaki", "ilo": "iloko", "inh": "inguši", "io": "ido", "is": "islandi", "it": "itaalia", "iu": "inuktituti", "izh": "isuri", "ja": "jaapani", "jam": "Jamaica kreoolkeel", "jbo": "ložban", "jgo": "ngomba", "jmc": "matšame", "jpr": "juudipärsia", "jrb": "juudiaraabia", "jut": "jüüti", "jv": "jaava", "ka": "gruusia", "kaa": "karakalpaki", "kab": "kabiili", "kac": "katšini", "kaj": "jju", "kam": "kamba", "kaw": "kaavi", "kbd": "kabardi-tšerkessi", "kbl": "kanembu", "kcg": "tjapi", "kde": "makonde", "kea": "kabuverdianu", "kfo": "koro", "kg": "kongo", "kgp": "kaingangi", "kha": "khasi", "kho": "saka", "khq": "koyra chiini", "khw": "khovari", "ki": "kikuju", "kiu": "kõrmandžki", "kj": "kvanjama", "kk": "kasahhi", "kkj": "kako", "kl": "grööni", "kln": "kalendžini", "km": "khmeeri", "kmb": "mbundu", "kn": "kannada", "ko": "korea", "koi": "permikomi", "kok": "konkani", "kos": "kosrae", "kpe": "kpelle", "kr": "kanuri", "krc": "karatšai-balkaari", "kri": "krio", "krj": "kinaraia", "krl": "karjala", "kru": "kuruhhi", "ks": "kašmiiri", "ksb": "šambala", "ksf": "bafia", "ksh": "kölni", "ku": "kurdi", "kum": "kumõki", "kut": "kutenai", "kv": "komi", "kw": "korni", "ky": "kirgiisi", "la": "ladina", "lad": "ladiino", "lag": "langi", "lah": "lahnda", "lam": "lamba", "lb": "letseburgi", "lez": "lesgi", "lg": "ganda", "li": "limburgi", "lij": "liguuri", "liv": "liivi", "lkt": "lakota", "lmo": "lombardi", "ln": "lingala", "lo": "lao", "lol": "mongo", "lou": "Louisiana kreoolkeel", "loz": "lozi", "lrc": "põhjaluri", "lt": "leedu", "ltg": "latgali", "lu": "luba", "lua": "lulua", "lui": "luisenjo", "lun": "lunda", "lus": "lušei", "luy": "luhja", "lv": "läti", "lzh": "klassikaline hiina", "lzz": "lazi", "mad": "madura", "maf": "mafa", "mag": "magahi", "mai": "maithili", "mak": "makassari", "man": "malinke", "mas": "masai", "mde": "maba", "mdf": "mokša", "mdr": "mandari", "men": "mende", "mer": "meru", "mfe": "Mauritiuse kreoolkeel", "mg": "malagassi", "mga": "keskiiri", "mgh": "makhuwa-meetto", "mgo": "meta", "mh": "maršalli", "mi": "maoori", "mic": "mikmaki", "min": "minangkabau", "mk": "makedoonia", "ml": "malajalami", "mn": "mongoli", "mnc": "mandžu", "mni": "manipuri", "moh": "mohoogi", "mos": "more", "mr": "marathi", "mrj": "mäemari", "ms": "malai", "mt": "malta", "mua": "mundangi", "mus": "maskogi", "mwl": "miranda", "mwr": "marvari", "mwv": "mentavei", "my": "birma", "mye": "mjene", "myv": "ersa", "mzn": "mazandaraani", "na": "nauru", "nan": "lõunamini", "nap": "napoli", "naq": "nama", "nb": "norra bokmål", "nd": "põhjandebele", "nds": "alamsaksa", "nds-NL": "Hollandi alamsaksa", "ne": "nepali", "new": "nevari", "ng": "ndonga", "nia": "niasi", "niu": "niue", "njo": "ao", "nl": "hollandi", "nl-BE": "flaami", "nmg": "kwasio", "nn": "uusnorra", "nnh": "ngiembooni", "no": "norra", "nog": "nogai", "non": "vanapõhjala", "nov": "noviaal", "nqo": "nkoo", "nr": "lõunandebele", "nso": "põhjasotho", "nus": "nueri", "nv": "navaho", "nwc": "vananevari", "ny": "njandža", "nym": "njamvesi", "nyn": "nkole", "nyo": "njoro", "nzi": "nzima", "oc": "oksitaani", "oj": "odžibvei", "om": "oromo", "or": "oria", "os": "osseedi", "osa": "oseidži", "ota": "osmanitürgi", "pa": "pandžabi", "pag": "pangasinani", "pal": "pahlavi", "pam": "pampanga", "pap": "papiamento", "pau": "belau", "pcd": "pikardi", "pcm": "Nigeeria pidžinkeel", "pdc": "Pennsylvania saksa", "pdt": "mennoniidisaksa", "peo": "vanapärsia", "pfl": "Pfalzi", "phn": "foiniikia", "pi": "paali", "pl": "poola", "pms": "piemonte", "pnt": "pontose", "pon": "poonpei", "prg": "preisi", "pro": "vanaprovansi", "ps": "puštu", "pt": "portugali", "pt-BR": "Brasiilia portugali", "pt-PT": "Euroopa portugali", "qu": "ketšua", "quc": "kitše", "raj": "radžastani", "rap": "rapanui", "rar": "rarotonga", "rgn": "romanja", "rif": "riifi", "rm": "romanši", "rn": "rundi", "ro": "rumeenia", "ro-MD": "moldova", "rof": "rombo", "rom": "mustlaskeel", "rtm": "rotuma", "ru": "vene", "rue": "russiini", "rug": "roviana", "rup": "aromuuni", "rw": "ruanda", "rwk": "rvaa", "sa": "sanskriti", "sad": "sandave", "sah": "jakuudi", "sam": "Samaaria aramea", "saq": "samburu", "sas": "sasaki", "sat": "santali", "saz": "sauraštra", "sba": "ngambai", "sbp": "sangu", "sc": "sardi", "scn": "sitsiilia", "sco": "šoti", "sd": "sindhi", "sdh": "lõunakurdi", "se": "põhjasaami", "see": "seneka", "seh": "sena", "sei": "seri", "sel": "sölkupi", "ses": "koyraboro senni", "sg": "sango", "sga": "vanaiiri", "sgs": "žemaidi", "sh": "serbia-horvaadi", "shi": "šilha", "shn": "šani", "shu": "Tšaadi araabia", "si": "singali", "sid": "sidamo", "sk": "slovaki", "sl": "sloveeni", "sli": "alamsileesia", "sly": "selajari", "sm": "samoa", "sma": "lõunasaami", "smj": "Lule saami", "smn": "Inari saami", "sms": "koltasaami", "sn": "šona", "snk": "soninke", "so": "somaali", "sog": "sogdi", "sq": "albaania", "sr": "serbia", "srn": "sranani", "srr": "sereri", "ss": "svaasi", "ssy": "saho", "st": "lõunasotho", "stq": "saterfriisi", "su": "sunda", "suk": "sukuma", "sus": "susu", "sux": "sumeri", "sv": "rootsi", "sw": "suahiili", "sw-CD": "Kongo suahiili", "swb": "komoori", "syc": "vanasüüria", "syr": "süüria", "szl": "sileesia", "ta": "tamili", "tcy": "tulu", "te": "telugu", "tem": "temne", "teo": "teso", "ter": "tereno", "tet": "tetumi", "tg": "tadžiki", "th": "tai", "ti": "tigrinja", "tig": "tigree", "tiv": "tivi", "tk": "türkmeeni", "tkl": "tokelau", "tkr": "tsahhi", "tl": "tagalogi", "tlh": "klingoni", "tli": "tlingiti", "tly": "talõši", "tmh": "tamašeki", "tn": "tsvana", "to": "tonga", "tog": "tšitonga", "tpi": "uusmelaneesia", "tr": "türgi", "tru": "turojo", "trv": "taroko", "ts": "tsonga", "tsd": "tsakoonia", "tsi": "tšimši", "tt": "tatari", "ttt": "lõunataadi", "tum": "tumbuka", "tvl": "tuvalu", "tw": "tvii", "twq": "taswaqi", "ty": "tahiti", "tyv": "tõva", "tzm": "tamasikti", "udm": "udmurdi", "ug": "uiguuri", "uga": "ugariti", "uk": "ukraina", "umb": "umbundu", "ur": "urdu", "uz": "usbeki", "ve": "venda", "vec": "veneti", "vep": "vepsa", "vi": "vietnami", "vls": "lääneflaami", "vmf": "Maini frangi", "vo": "volapüki", "vot": "vadja", "vro": "võru", "vun": "vundžo", "wa": "vallooni", "wae": "walseri", "wal": "volaita", "war": "varai", "was": "vašo", "wbp": "varlpiri", "wo": "volofi", "wuu": "uu", "xal": "kalmõki", "xh": "koosa", "xmf": "megreli", "xog": "soga", "yao": "jao", "yap": "japi", "yav": "yangbeni", "ybb": "jemba", "yi": "jidiši", "yo": "joruba", "yrl": "njengatu", "yue": "kantoni", "za": "tšuangi", "zap": "sapoteegi", "zbl": "Blissi sümbolid", "zea": "zeelandi", "zen": "zenaga", "zgh": "tamasikti (Maroko)", "zh": "hiina", "zh-Hans": "lihtsustatud hiina", "zh-Hant": "traditsiooniline hiina", "zu": "suulu", "zun": "sunji", "zza": "zaza"}}, + "eu": {"rtl": false, "languageNames": {"aa": "afarera", "ab": "abkhaziera", "ace": "acehnera", "ach": "acholiera", "ada": "adangmera", "ady": "adigera", "af": "afrikaans", "agq": "aghemera", "ain": "ainuera", "ak": "akanera", "ale": "aleutera", "alt": "hegoaldeko altaiera", "am": "amharera", "an": "aragoiera", "anp": "angikera", "ar": "arabiera", "ar-001": "arabiera moderno estandarra", "arn": "maputxe", "arp": "arapaho", "as": "assamera", "asa": "asua", "ast": "asturiera", "av": "avarera", "awa": "awadhiera", "ay": "aimara", "az": "azerbaijanera", "ba": "baxkirera", "ban": "baliera", "bas": "basaa", "be": "bielorrusiera", "bem": "bembera", "bez": "benera", "bg": "bulgariera", "bho": "bhojpurera", "bi": "bislama", "bin": "edoera", "bla": "siksikera", "bm": "bambarera", "bn": "bengalera", "bo": "tibetera", "br": "bretoiera", "brx": "bodoera", "bs": "bosniera", "bug": "buginera", "byn": "bilena", "ca": "katalan", "ce": "txetxenera", "ceb": "cebuera", "cgg": "chigera", "ch": "chamorrera", "chk": "chuukera", "chm": "mariera", "cho": "choctaw", "chr": "txerokiera", "chy": "cheyennera", "ckb": "sorania", "co": "korsikera", "crs": "Seychelleetako kreolera", "cs": "txekiera", "cu": "elizako eslaviera", "cv": "txuvaxera", "cy": "gales", "da": "daniera", "dak": "dakotera", "dar": "dargvera", "dav": "taitera", "de": "aleman", "de-AT": "Austriako aleman", "de-CH": "Suitzako aleman garai", "dgr": "dogribera", "dje": "zarma", "dsb": "behe-sorabiera", "dua": "dualera", "dv": "divehiera", "dyo": "fonyi jolera", "dz": "dzongkha", "dzg": "dazaga", "ebu": "embua", "ee": "eweera", "efi": "efikera", "eka": "akajuka", "el": "greziera", "en": "ingeles", "en-AU": "Australiako ingeles", "en-CA": "Kanadako ingeles", "en-GB": "Britania Handiko ingeles", "en-US": "AEBko ingeles", "eo": "esperanto", "es": "espainiera", "es-419": "Latinoamerikako espainiera", "es-ES": "espainiera (Europa)", "es-MX": "Mexikoko espainiera", "et": "estoniera", "eu": "euskara", "ewo": "ewondera", "fa": "persiera", "ff": "fula", "fi": "finlandiera", "fil": "filipinera", "fj": "fijiera", "fo": "faroera", "fon": "fona", "fr": "frantses", "fr-CA": "Kanadako frantses", "fr-CH": "Suitzako frantses", "fur": "friuliera", "fy": "frisiera", "ga": "gaeliko", "gaa": "ga", "gag": "gagauzera", "gd": "Eskoziako gaeliko", "gez": "ge’ez", "gil": "gilbertera", "gl": "galiziera", "gn": "guaraniera", "gor": "gorontaloa", "gsw": "Suitzako aleman", "gu": "gujaratera", "guz": "gusiiera", "gv": "manxera", "gwi": "gwichʼin", "ha": "hausa", "haw": "hawaiiera", "he": "hebreera", "hi": "hindi", "hil": "hiligainon", "hmn": "hmong", "hr": "kroaziera", "hsb": "goi-sorabiera", "ht": "Haitiko kreolera", "hu": "hungariera", "hup": "hupera", "hy": "armeniera", "hz": "hereroera", "ia": "interlingua", "iba": "ibanera", "ibb": "ibibioera", "id": "indonesiera", "ie": "interlingue", "ig": "igboera", "ii": "Sichuango yiera", "ilo": "ilokanera", "inh": "ingushera", "io": "ido", "is": "islandiera", "it": "italiera", "iu": "inuktitut", "ja": "japoniera", "jbo": "lojbanera", "jgo": "ngomba", "jmc": "machamera", "jv": "javera", "ka": "georgiera", "kab": "kabilera", "kac": "jingpoera", "kaj": "kaiji", "kam": "kambera", "kbd": "kabardiera", "kcg": "kataba", "kde": "makondera", "kea": "Cabo Verdeko kreolera", "kfo": "koroa", "kg": "kikongoa", "kha": "kashia", "khq": "koyra chiiniera", "ki": "kikuyuera", "kj": "kuanyama", "kk": "kazakhera", "kkj": "kakoa", "kl": "groenlandiera", "kln": "kalenjinera", "km": "khemerera", "kmb": "kimbundua", "kn": "kannada", "ko": "koreera", "koi": "komi-permyakera", "kok": "konkanera", "kpe": "kpellea", "kr": "kanuriera", "krc": "karachayera-balkarera", "krl": "kareliera", "kru": "kurukhera", "ks": "kaxmirera", "ksb": "shambalera", "ksf": "bafiera", "ksh": "koloniera", "ku": "kurduera", "kum": "kumykera", "kv": "komiera", "kw": "kornubiera", "ky": "kirgizera", "la": "latin", "lad": "ladino", "lag": "langiera", "lb": "luxenburgera", "lez": "lezgiera", "lg": "gandera", "li": "limburgera", "lkt": "lakotera", "ln": "lingala", "lo": "laosera", "loz": "loziera", "lrc": "iparraldeko lurera", "lt": "lituaniera", "lu": "luba-katangera", "lua": "txilubera", "lun": "lundera", "luo": "luoera", "lus": "mizoa", "luy": "luhyera", "lv": "letoniera", "mad": "madurera", "mag": "magahiera", "mai": "maithilera", "mak": "makasarera", "mas": "masaiera", "mdf": "mokxera", "men": "mendeera", "mer": "meruera", "mfe": "Mauritaniako kreolera", "mg": "malgaxe", "mgh": "makhuwa-meettoera", "mgo": "metera", "mh": "marshallera", "mi": "maoriera", "mic": "mikmakera", "min": "minangkabauera", "mk": "mazedoniera", "ml": "malabarera", "mn": "mongoliera", "mni": "manipurera", "moh": "mohawkera", "mos": "moreera", "mr": "marathera", "ms": "malaysiera", "mt": "maltera", "mua": "mudangera", "mus": "creera", "mwl": "mirandera", "my": "birmaniera", "myv": "erziera", "mzn": "mazandarandera", "na": "nauruera", "nap": "napoliera", "naq": "namera", "nb": "bokmål (norvegiera)", "nd": "iparraldeko ndebeleera", "nds-NL": "behe-saxoiera", "ne": "nepalera", "new": "newarera", "ng": "ndongera", "nia": "niasera", "niu": "niueera", "nl": "nederlandera", "nl-BE": "flandriera", "nmg": "kwasiera", "nn": "nynorsk (norvegiera)", "nnh": "ngiemboonera", "no": "norvegiera", "nog": "nogaiera", "nqo": "n’koera", "nr": "hegoaldeko ndebelera", "nso": "pediera", "nus": "nuerera", "nv": "navajoera", "ny": "chewera", "nyn": "ankolera", "oc": "okzitaniera", "om": "oromoera", "or": "oriya", "os": "osetiera", "pa": "punjabera", "pag": "pangasinanera", "pam": "pampangera", "pap": "papiamento", "pau": "palauera", "pcm": "Nigeriako pidgina", "pl": "poloniera", "prg": "prusiera", "ps": "paxtuera", "pt": "portuges", "pt-BR": "Brasilgo portuges", "pt-PT": "Europako portuges", "qu": "kitxua", "quc": "quicheera", "rap": "rapa nui", "rar": "rarotongera", "rm": "erretorromaniera", "rn": "rundiera", "ro": "errumaniera", "ro-MD": "moldaviera", "rof": "romboera", "root": "erroa", "ru": "errusiera", "rup": "aromaniera", "rw": "kinyaruanda", "rwk": "rwaera", "sa": "sanskrito", "sad": "sandaweera", "sah": "sakhera", "saq": "samburuera", "sat": "santalera", "sba": "ngambayera", "sbp": "sanguera", "sc": "sardiniera", "scn": "siziliera", "sco": "eskoziera", "sd": "sindhi", "se": "iparraldeko samiera", "seh": "senera", "ses": "koyraboro sennia", "sg": "sango", "sh": "serbokroaziera", "shi": "tachelhita", "shn": "shanera", "si": "sinhala", "sk": "eslovakiera", "sl": "esloveniera", "sm": "samoera", "sma": "hegoaldeko samiera", "smj": "Luleko samiera", "smn": "Inariko samiera", "sms": "skolten samiera", "sn": "shonera", "snk": "soninkera", "so": "somaliera", "sq": "albaniera", "sr": "serbiera", "srn": "srananera", "ss": "swatiera", "ssy": "sahoa", "st": "hegoaldeko sothoera", "su": "sundanera", "suk": "sukumera", "sv": "suediera", "sw": "swahilia", "sw-CD": "Kongoko swahilia", "swb": "komoreera", "syr": "siriera", "ta": "tamilera", "te": "telugu", "tem": "temnea", "teo": "tesoera", "tet": "tetum", "tg": "tajikera", "th": "thailandiera", "ti": "tigrinyera", "tig": "tigrea", "tk": "turkmenera", "tl": "tagalog", "tlh": "klingonera", "tn": "tswanera", "to": "tongera", "tpi": "tok pisin", "tr": "turkiera", "trv": "tarokoa", "ts": "tsongera", "tt": "tatarera", "tum": "tumbukera", "tvl": "tuvaluera", "tw": "twia", "twq": "tasawaq", "ty": "tahitiera", "tyv": "tuvera", "tzm": "Erdialdeko Atlaseko amazigera", "udm": "udmurtera", "ug": "uigurrera", "uk": "ukrainera", "umb": "umbundu", "ur": "urdu", "uz": "uzbekera", "vai": "vaiera", "ve": "vendera", "vi": "vietnamera", "vo": "volapük", "vun": "vunjo", "wa": "waloiera", "wae": "walserera", "wal": "welayta", "war": "samerera", "wo": "wolofera", "xal": "kalmykera", "xh": "xhosera", "xog": "sogera", "yav": "jangbenera", "ybb": "yemba", "yi": "yiddish", "yo": "jorubera", "yue": "kantonera", "zgh": "amazigera estandarra", "zh": "txinera", "zh-Hans": "txinera soildua", "zh-Hant": "txinera tradizionala", "zu": "zuluera", "zun": "zuñia", "zza": "zazera"}}, + "fa": {"rtl": true, "languageNames": {"aa": "آفاری", "ab": "آبخازی", "ace": "آچئی", "ach": "آچولیایی", "ada": "آدانگمه‌ای", "ady": "آدیجیایی", "ae": "اوستایی", "aeb": "عربی تونسی", "af": "آفریکانس", "afh": "آفریهیلی", "agq": "آگیم", "ain": "آینویی", "ak": "آکان", "akk": "اکدی", "akz": "آلابامایی", "ale": "آلئوتی", "alt": "آلتایی جنوبی", "am": "امهری", "an": "آراگونی", "ang": "انگلیسی باستان", "anp": "آنگیکا", "ar": "عربی", "ar-001": "عربی رسمی", "arc": "آرامی", "arn": "ماپوچه‌ای", "arp": "آراپاهویی", "arq": "عربی الجزایری", "arw": "آراواکی", "ary": "عربی مراکشی", "arz": "عربی مصری", "as": "آسامی", "asa": "آسو", "ast": "آستوری", "av": "آواری", "awa": "اودهی", "ay": "آیمارایی", "az": "ترکی آذربایجانی", "az-Arab": "ترکی آذری جنوبی", "ba": "باشقیری", "bal": "بلوچی", "ban": "بالیایی", "bar": "باواریایی", "bas": "باسایی", "bax": "بمونی", "be": "بلاروسی", "bej": "بجایی", "bem": "بمبایی", "bez": "بنایی", "bg": "بلغاری", "bgn": "بلوچی غربی", "bho": "بوجپوری", "bi": "بیسلاما", "bik": "بیکولی", "bin": "بینی", "bla": "سیکسیکا", "bm": "بامبارایی", "bn": "بنگالی", "bo": "تبتی", "bqi": "لری بختیاری", "br": "برتون", "bra": "براج", "brh": "براهویی", "brx": "بودویی", "bs": "بوسنیایی", "bua": "بوریاتی", "bug": "بوگیایی", "byn": "بلین", "ca": "کاتالان", "cad": "کادویی", "car": "کاریبی", "ccp": "چاکما", "ce": "چچنی", "ceb": "سبویی", "cgg": "چیگا", "ch": "چامورویی", "chb": "چیبچا", "chg": "جغتایی", "chk": "چوکی", "chm": "ماریایی", "cho": "چوکتویی", "chp": "چیپه‌ویه‌ای", "chr": "چروکیایی", "chy": "شایانی", "ckb": "کردی مرکزی", "co": "کورسی", "cop": "قبطی", "cr": "کریایی", "crh": "ترکی کریمه", "crs": "سیشل آمیختهٔ فرانسوی", "cs": "چکی", "csb": "کاشوبی", "cu": "اسلاوی کلیسایی", "cv": "چوواشی", "cy": "ولزی", "da": "دانمارکی", "dak": "داکوتایی", "dar": "دارقینی", "dav": "تایتا", "de": "آلمانی", "de-AT": "آلمانی اتریش", "de-CH": "آلمانی معیار سوئیس", "del": "دلاواری", "dgr": "دوگریب", "din": "دینکایی", "dje": "زرما", "doi": "دوگری", "dsb": "صُربی سفلی", "dua": "دوآلایی", "dum": "هلندی میانه", "dv": "دیوهی", "dyo": "دیولا فونی", "dyu": "دایولایی", "dz": "دزونگخا", "dzg": "دازاگایی", "ebu": "امبو", "ee": "اوه‌ای", "efi": "افیکی", "egy": "مصری کهن", "eka": "اکاجوک", "el": "یونانی", "elx": "عیلامی", "en": "انگلیسی", "en-AU": "انگلیسی استرالیا", "en-CA": "انگلیسی کانادا", "en-GB": "انگلیسی بریتانیا", "en-US": "انگلیسی امریکا", "enm": "انگلیسی میانه", "eo": "اسپرانتو", "es": "اسپانیایی", "es-419": "اسپانیایی امریکای لاتین", "es-ES": "اسپانیایی اروپا", "es-MX": "اسپانیایی مکزیک", "et": "استونیایی", "eu": "باسکی", "ewo": "اواندو", "fa": "فارسی", "fa-AF": "دری", "fan": "فانگی", "fat": "فانتیایی", "ff": "فولانی", "fi": "فنلاندی", "fil": "فیلیپینی", "fj": "فیجیایی", "fo": "فارویی", "fon": "فونی", "fr": "فرانسوی", "fr-CA": "فرانسوی کانادا", "fr-CH": "فرانسوی سوئیس", "frc": "فرانسوی کادین", "frm": "فرانسوی میانه", "fro": "فرانسوی باستان", "frr": "فریزی شمالی", "frs": "فریزی شرقی", "fur": "فریولیایی", "fy": "فریزی غربی", "ga": "ایرلندی", "gaa": "گایی", "gag": "گاگائوزیایی", "gay": "گایویی", "gba": "گبایایی", "gbz": "دری زرتشتی", "gd": "گیلی اسکاتلندی", "gez": "گی‌ئزی", "gil": "گیلبرتی", "gl": "گالیسیایی", "glk": "گیلکی", "gmh": "آلمانی معیار میانه", "gn": "گوارانی", "goh": "آلمانی علیای باستان", "gon": "گوندی", "gor": "گورونتالو", "got": "گوتی", "grb": "گریبویی", "grc": "یونانی کهن", "gsw": "آلمانی سوئیسی", "gu": "گجراتی", "guz": "گوسی", "gv": "مانی", "gwi": "گویچ این", "ha": "هوسیایی", "hai": "هایدایی", "haw": "هاوائیایی", "he": "عبری", "hi": "هندی", "hif": "هندی فیجیایی", "hil": "هیلی‌گاینونی", "hit": "هیتی", "hmn": "همونگ", "ho": "موتویی هیری", "hr": "کروات", "hsb": "صُربی علیا", "ht": "هائیتیایی", "hu": "مجاری", "hup": "هوپا", "hy": "ارمنی", "hz": "هریرویی", "ia": "میان‌زبان", "iba": "ایبانی", "ibb": "ایبیبیو", "id": "اندونزیایی", "ie": "اکسیدنتال", "ig": "ایگبویی", "ii": "یی سیچوان", "ik": "اینوپیک", "ilo": "ایلوکویی", "inh": "اینگوشی", "io": "ایدو", "is": "ایسلندی", "it": "ایتالیایی", "iu": "اینوکتیتوت", "ja": "ژاپنی", "jbo": "لوجبان", "jgo": "نگومبا", "jmc": "ماچامه‌ای", "jpr": "فارسی یهودی", "jrb": "عربی یهودی", "jv": "جاوه‌ای", "ka": "گرجی", "kaa": "قره‌قالپاقی", "kab": "قبایلی", "kac": "کاچینی", "kaj": "جو", "kam": "کامبایی", "kaw": "کاویایی", "kbd": "کاباردینی", "kcg": "تیاپی", "kde": "ماکونده", "kea": "کابووردیانو", "kfo": "کورو", "kg": "کنگویی", "kha": "خاسیایی", "kho": "ختنی", "khq": "کوجراچینی", "khw": "کهوار", "ki": "کیکویویی", "kiu": "کرمانجی", "kj": "کوانیاما", "kk": "قزاقی", "kkj": "کاکایی", "kl": "گرینلندی", "kln": "کالنجین", "km": "خمری", "kmb": "کیمبوندویی", "kn": "کانارا", "ko": "کره‌ای", "koi": "کومی پرمیاک", "kok": "کنکانی", "kpe": "کپله‌ای", "kr": "کانوریایی", "krc": "قره‌چایی‐بالکاری", "krl": "کاریلیانی", "kru": "کوروخی", "ks": "کشمیری", "ksb": "شامبالا", "ksf": "بافیایی", "ksh": "ریپواری", "ku": "کردی", "kum": "کومیکی", "kut": "کوتنی", "kv": "کومیایی", "kw": "کرنوالی", "ky": "قرقیزی", "la": "لاتین", "lad": "لادینو", "lag": "لانگی", "lah": "لاهندا", "lam": "لامبا", "lb": "لوگزامبورگی", "lez": "لزگی", "lg": "گاندایی", "li": "لیمبورگی", "lkt": "لاکوتا", "ln": "لینگالا", "lo": "لائوسی", "lol": "مونگویی", "lou": "زبان آمیختهٔ مادری لوئیزیانا", "loz": "لوزیایی", "lrc": "لری شمالی", "lt": "لیتوانیایی", "lu": "لوبایی‐کاتانگا", "lua": "لوبایی‐لولوا", "lui": "لویسنو", "lun": "لوندایی", "luo": "لوئویی", "lus": "لوشه‌ای", "luy": "لویا", "lv": "لتونیایی", "lzh": "چینی ادبی", "mad": "مادورایی", "mag": "ماگاهیایی", "mai": "مایدیلی", "mak": "ماکاسار", "man": "ماندینگویی", "mas": "ماسایی", "mdf": "مکشایی", "mdr": "ماندار", "men": "منده‌ای", "mer": "مرویی", "mfe": "موریسین", "mg": "مالاگاسیایی", "mga": "ایرلندی میانه", "mgh": "ماکوا متو", "mgo": "متایی", "mh": "مارشالی", "mi": "مائوریایی", "mic": "میکماکی", "min": "مینانگ‌کابویی", "mk": "مقدونی", "ml": "مالایالامی", "mn": "مغولی", "mnc": "مانچویی", "mni": "میته‌ای", "moh": "موهاکی", "mos": "ماسیایی", "mr": "مراتی", "ms": "مالایی", "mt": "مالتی", "mua": "ماندانگی", "mus": "کریکی", "mwl": "میراندی", "mwr": "مارواری", "my": "برمه‌ای", "myv": "ارزیایی", "mzn": "مازندرانی", "na": "نائورویی", "nap": "ناپلی", "naq": "نامایی", "nb": "نروژی بوک‌مُل", "nd": "انده‌بله‌ای شمالی", "nds": "آلمانی سفلی", "nds-NL": "ساکسونی سفلی", "ne": "نپالی", "new": "نواریایی", "ng": "اندونگایی", "nia": "نیاسی", "niu": "نیویی", "nl": "هلندی", "nl-BE": "فلمنگی", "nmg": "کوازیو", "nn": "نروژی نی‌نُشک", "nnh": "انگیمبونی", "no": "نروژی", "nog": "نغایی", "non": "نرس باستان", "nqo": "نکو", "nr": "انده‌بله‌ای جنوبی", "nso": "سوتویی شمالی", "nus": "نویر", "nv": "ناواهویی", "nwc": "نواریایی کلاسیک", "ny": "نیانجایی", "nym": "نیام‌وزیایی", "nyn": "نیانکوله‌ای", "nyo": "نیورویی", "nzi": "نزیمایی", "oc": "اکسیتان", "oj": "اوجیبوایی", "om": "اورومویی", "or": "اوریه‌ای", "os": "آسی", "osa": "اوسیجی", "ota": "ترکی عثمانی", "pa": "پنجابی", "pag": "پانگاسینانی", "pal": "پهلوی", "pam": "پامپانگایی", "pap": "پاپیامنتو", "pau": "پالائویی", "pcm": "نیم‌زبان نیجریه‌ای", "pdc": "آلمانی پنسیلوانیایی", "peo": "فارسی باستان", "phn": "فنیقی", "pi": "پالی", "pl": "لهستانی", "pon": "پانپیی", "prg": "پروسی", "pro": "پرووانسی باستان", "ps": "پشتو", "pt": "پرتغالی", "pt-BR": "پرتغالی برزیل", "pt-PT": "پرتغالی اروپا", "qu": "کچوایی", "quc": "کیچه‌", "raj": "راجستانی", "rap": "راپانویی", "rar": "راروتونگایی", "rm": "رومانش", "rn": "روندیایی", "ro": "رومانیایی", "ro-MD": "مولداویایی", "rof": "رومبویی", "rom": "رومانویی", "root": "ریشه", "ru": "روسی", "rup": "آرومانی", "rw": "کینیارواندایی", "rwk": "روایی", "sa": "سانسکریت", "sad": "سانداوه‌ای", "sah": "یاقوتی", "sam": "آرامی سامری", "saq": "سامبورو", "sas": "ساساکی", "sat": "سانتالی", "sba": "انگامبایی", "sbp": "سانگویی", "sc": "ساردینیایی", "scn": "سیسیلی", "sco": "اسکاتلندی", "sd": "سندی", "sdh": "کردی جنوبی", "se": "سامی شمالی", "seh": "سنا", "sel": "سلکوپی", "ses": "کویرابورا سنی", "sg": "سانگو", "sga": "ایرلندی باستان", "sh": "صرب و کرواتی", "shi": "تاچل‌هیت", "shn": "شانی", "shu": "عربی چادی", "si": "سینهالی", "sid": "سیدامویی", "sk": "اسلواکی", "sl": "اسلوونیایی", "sli": "سیلزیایی سفلی", "sm": "ساموآیی", "sma": "سامی جنوبی", "smj": "لوله سامی", "smn": "ایناری سامی", "sms": "اسکولت سامی", "sn": "شونایی", "snk": "سونینکه‌ای", "so": "سومالیایی", "sog": "سغدی", "sq": "آلبانیایی", "sr": "صربی", "srn": "تاکی‌تاکی", "srr": "سریری", "ss": "سوازیایی", "ssy": "ساهو", "st": "سوتویی جنوبی", "su": "سوندایی", "suk": "سوکومایی", "sus": "سوسویی", "sux": "سومری", "sv": "سوئدی", "sw": "سواحیلی", "sw-CD": "سواحیلی کنگو", "swb": "کوموری", "syc": "سریانی کلاسیک", "syr": "سریانی", "szl": "سیلزیایی", "ta": "تامیلی", "te": "تلوگویی", "tem": "تمنه‌ای", "teo": "تسویی", "ter": "ترنو", "tet": "تتومی", "tg": "تاجیکی", "th": "تایلندی", "ti": "تیگرینیایی", "tig": "تیگره‌ای", "tiv": "تیوی", "tk": "ترکمنی", "tl": "تاگالوگی", "tlh": "کلینگون", "tli": "تلین‌گیتی", "tmh": "تاماشقی", "tn": "تسوانایی", "to": "تونگایی", "tog": "تونگایی نیاسا", "tpi": "توک‌پیسینی", "tr": "ترکی استانبولی", "trv": "تاروکویی", "ts": "تسونگایی", "tsi": "تسیم‌شیانی", "tt": "تاتاری", "tum": "تومبوکایی", "tvl": "تووالویی", "tw": "توی‌یایی", "twq": "تسواکی", "ty": "تاهیتیایی", "tyv": "تووایی", "tzm": "آمازیغی اطلس مرکزی", "udm": "اودمورتی", "ug": "اویغوری", "uga": "اوگاریتی", "uk": "اوکراینی", "umb": "امبوندویی", "ur": "اردو", "uz": "ازبکی", "vai": "ویایی", "ve": "وندایی", "vi": "ویتنامی", "vo": "ولاپوک", "vot": "وتی", "vun": "ونجو", "wa": "والونی", "wae": "والسر", "wal": "والامو", "war": "وارایی", "was": "واشویی", "wbp": "وارلپیری", "wo": "ولوفی", "xal": "قلموقی", "xh": "خوسایی", "xog": "سوگایی", "yao": "یائویی", "yap": "یاپی", "yav": "یانگبنی", "ybb": "یمبایی", "yi": "یدی", "yo": "یوروبایی", "yue": "کانتونی", "za": "چوانگی", "zap": "زاپوتکی", "zen": "زناگا", "zgh": "آمازیغی معیار مراکش", "zh": "چینی", "zh-Hans": "چینی ساده‌شده", "zh-Hant": "چینی سنتی", "zu": "زولویی", "zun": "زونیایی", "zza": "زازایی"}}, + "fi": {"rtl": false, "languageNames": {"aa": "afar", "ab": "abhaasi", "ace": "atšeh", "ach": "atšoli", "ada": "adangme", "ady": "adyge", "ae": "avesta", "aeb": "tunisianarabia", "af": "afrikaans", "afh": "afrihili", "agq": "aghem", "ain": "ainu", "ak": "akan", "akk": "akkadi", "akz": "alabama", "ale": "aleutti", "aln": "gegi", "alt": "altai", "am": "amhara", "an": "aragonia", "ang": "muinaisenglanti", "anp": "angika", "ar": "arabia", "ar-001": "yleisarabia", "arc": "valtakunnanaramea", "arn": "mapudungun", "aro": "araona", "arp": "arapaho", "arq": "algerianarabia", "ars": "arabia – najd", "arw": "arawak", "ary": "marokonarabia", "arz": "egyptinarabia", "as": "assami", "asa": "asu", "ase": "amerikkalainen viittomakieli", "ast": "asturia", "av": "avaari", "avk": "kotava", "awa": "awadhi", "ay": "aimara", "az": "azeri", "ba": "baškiiri", "bal": "belutši", "ban": "bali", "bar": "baijeri", "bas": "basaa", "bax": "bamum", "bbc": "batak-toba", "bbj": "ghomala", "be": "valkovenäjä", "bej": "bedža", "bem": "bemba", "bew": "betawi", "bez": "bena", "bfd": "fut", "bfq": "badaga", "bg": "bulgaria", "bgn": "länsibelutši", "bho": "bhodžpuri", "bi": "bislama", "bik": "bikol", "bin": "bini", "bjn": "banjar", "bkm": "kom", "bla": "siksika", "bm": "bambara", "bn": "bengali", "bo": "tiibet", "bpy": "bišnupria", "bqi": "bahtiari", "br": "bretoni", "bra": "bradž", "brh": "brahui", "brx": "bodo", "bs": "bosnia", "bss": "koose", "bua": "burjaatti", "bug": "bugi", "bum": "bulu", "byn": "bilin", "byv": "medumba", "ca": "katalaani", "cad": "caddo", "car": "karibi", "cay": "cayuga", "cch": "atsam", "ccp": "chakma", "ce": "tšetšeeni", "ceb": "cebuano", "cgg": "kiga", "ch": "tšamorro", "chb": "tšibtša", "chg": "tšagatai", "chk": "chuuk", "chm": "mari", "chn": "chinook-jargon", "cho": "choctaw", "chp": "chipewyan", "chr": "cherokee", "chy": "cheyenne", "ckb": "sorani", "co": "korsika", "cop": "kopti", "cps": "capiznon", "cr": "cree", "crh": "krimintataari", "crs": "seychellienkreoli", "cs": "tšekki", "csb": "kašubi", "cu": "kirkkoslaavi", "cv": "tšuvassi", "cy": "kymri", "da": "tanska", "dak": "dakota", "dar": "dargi", "dav": "taita", "de": "saksa", "de-AT": "itävallansaksa", "de-CH": "sveitsinyläsaksa", "del": "delaware", "den": "slevi", "dgr": "dogrib", "din": "dinka", "dje": "djerma", "doi": "dogri", "dsb": "alasorbi", "dtp": "dusun", "dua": "duala", "dum": "keskihollanti", "dv": "divehi", "dyo": "jola-fonyi", "dyu": "djula", "dz": "dzongkha", "dzg": "dazaga", "ebu": "embu", "ee": "ewe", "efi": "efik", "egl": "emilia", "egy": "muinaisegypti", "eka": "ekajuk", "el": "kreikka", "elx": "elami", "en": "englanti", "en-AU": "australianenglanti", "en-CA": "kanadanenglanti", "en-GB": "britannianenglanti", "en-US": "amerikanenglanti", "enm": "keskienglanti", "eo": "esperanto", "es": "espanja", "es-419": "amerikanespanja", "es-ES": "euroopanespanja", "es-MX": "meksikonespanja", "esu": "alaskanjupik", "et": "viro", "eu": "baski", "ewo": "ewondo", "ext": "extremadura", "fa": "persia", "fan": "fang", "fat": "fanti", "ff": "fulani", "fi": "suomi", "fil": "filipino", "fit": "meänkieli", "fj": "fidži", "fo": "fääri", "fr": "ranska", "fr-CA": "kanadanranska", "fr-CH": "sveitsinranska", "frc": "cajunranska", "frm": "keskiranska", "fro": "muinaisranska", "frp": "arpitaani", "frr": "pohjoisfriisi", "frs": "itäfriisi", "fur": "friuli", "fy": "länsifriisi", "ga": "iiri", "gaa": "ga", "gag": "gagauzi", "gan": "gan-kiina", "gay": "gajo", "gba": "gbaja", "gbz": "zoroastrialaisdari", "gd": "gaeli", "gez": "ge’ez", "gil": "kiribati", "gl": "galicia", "glk": "gilaki", "gmh": "keskiyläsaksa", "gn": "guarani", "goh": "muinaisyläsaksa", "gom": "goankonkani", "gon": "gondi", "gor": "gorontalo", "got": "gootti", "grb": "grebo", "grc": "muinaiskreikka", "gsw": "sveitsinsaksa", "gu": "gudžarati", "guc": "wayuu", "gur": "frafra", "guz": "gusii", "gv": "manksi", "gwi": "gwitšin", "ha": "hausa", "hai": "haida", "hak": "hakka-kiina", "haw": "havaiji", "he": "heprea", "hi": "hindi", "hif": "fidžinhindi", "hil": "hiligaino", "hit": "heetti", "hmn": "hmong", "ho": "hiri-motu", "hr": "kroatia", "hsb": "yläsorbi", "hsn": "xiang-kiina", "ht": "haiti", "hu": "unkari", "hup": "hupa", "hy": "armenia", "hz": "herero", "ia": "interlingua", "iba": "iban", "ibb": "ibibio", "id": "indonesia", "ie": "interlingue", "ig": "igbo", "ii": "sichuanin-yi", "ik": "inupiaq", "ilo": "iloko", "inh": "inguuši", "io": "ido", "is": "islanti", "it": "italia", "iu": "inuktitut", "izh": "inkeroinen", "ja": "japani", "jam": "jamaikankreolienglanti", "jbo": "lojban", "jgo": "ngomba", "jmc": "machame", "jpr": "juutalaispersia", "jrb": "juutalaisarabia", "jut": "juutti", "jv": "jaava", "ka": "georgia", "kaa": "karakalpakki", "kab": "kabyyli", "kac": "katšin", "kaj": "jju", "kam": "kamba", "kaw": "kavi", "kbd": "kabardi", "kbl": "kanembu", "kcg": "tyap", "kde": "makonde", "kea": "kapverdenkreoli", "ken": "kenyang", "kfo": "norsunluurannikonkoro", "kg": "kongo", "kgp": "kaingang", "kha": "khasi", "kho": "khotani", "khq": "koyra chiini", "khw": "khowar", "ki": "kikuju", "kiu": "kirmanjki", "kj": "kuanjama", "kk": "kazakki", "kkj": "kako", "kl": "kalaallisut", "kln": "kalenjin", "km": "khmer", "kmb": "kimbundu", "kn": "kannada", "ko": "korea", "koi": "komipermjakki", "kok": "konkani", "kos": "kosrae", "kpe": "kpelle", "kr": "kanuri", "krc": "karatšai-balkaari", "kri": "krio", "krj": "kinaray-a", "krl": "karjala", "kru": "kurukh", "ks": "kašmiri", "ksb": "shambala", "ksf": "bafia", "ksh": "kölsch", "ku": "kurdi", "kum": "kumykki", "kut": "kutenai", "kv": "komi", "kw": "korni", "ky": "kirgiisi", "la": "latina", "lad": "ladino", "lag": "lango", "lah": "lahnda", "lam": "lamba", "lb": "luxemburg", "lez": "lezgi", "lfn": "lingua franca nova", "lg": "ganda", "li": "limburg", "lij": "liguuri", "liv": "liivi", "lkt": "lakota", "lmo": "lombardi", "ln": "lingala", "lo": "lao", "lol": "mongo", "lou": "louisianankreoli", "loz": "lozi", "lrc": "pohjoisluri", "lt": "liettua", "ltg": "latgalli", "lu": "katanganluba", "lua": "luluanluba", "lui": "luiseño", "lun": "lunda", "lus": "lusai", "luy": "luhya", "lv": "latvia", "lzh": "klassinen kiina", "lzz": "lazi", "mad": "madura", "maf": "mafa", "mag": "magahi", "mai": "maithili", "mak": "makassar", "man": "mandingo", "mas": "maasai", "mde": "maba", "mdf": "mokša", "mdr": "mandar", "men": "mende", "mer": "meru", "mfe": "morisyen", "mg": "malagassi", "mga": "keski-iiri", "mgh": "makua-meetto", "mgo": "meta’", "mh": "marshall", "mi": "maori", "mic": "micmac", "min": "minangkabau", "mk": "makedonia", "ml": "malajalam", "mn": "mongoli", "mnc": "mantšu", "mni": "manipuri", "moh": "mohawk", "mos": "mossi", "mr": "marathi", "mrj": "vuorimari", "ms": "malaiji", "mt": "malta", "mua": "mundang", "mus": "creek", "mwl": "mirandeesi", "mwr": "marwari", "mwv": "mentawai", "my": "burma", "mye": "myene", "myv": "ersä", "mzn": "mazandarani", "na": "nauru", "nan": "min nan -kiina", "nap": "napoli", "naq": "nama", "nb": "norjan bokmål", "nd": "pohjois-ndebele", "nds": "alasaksa", "nds-NL": "alankomaidenalasaksa", "ne": "nepali", "new": "newari", "ng": "ndonga", "nia": "nias", "niu": "niue", "njo": "ao naga", "nl": "hollanti", "nl-BE": "flaami", "nmg": "kwasio", "nn": "norjan nynorsk", "nnh": "ngiemboon", "no": "norja", "nog": "nogai", "non": "muinaisnorja", "nov": "novial", "nqo": "n’ko", "nr": "etelä-ndebele", "nso": "pohjoissotho", "nus": "nuer", "nv": "navajo", "nwc": "klassinen newari", "ny": "njandža", "nym": "nyamwezi", "nyn": "nyankole", "nyo": "nyoro", "nzi": "nzima", "oc": "oksitaani", "oj": "odžibwa", "om": "oromo", "or": "orija", "os": "osseetti", "osa": "osage", "ota": "osmani", "pa": "pandžabi", "pag": "pangasinan", "pal": "pahlavi", "pam": "pampanga", "pap": "papiamentu", "pau": "palau", "pcd": "picardi", "pcm": "nigerianpidgin", "pdc": "pennsylvaniansaksa", "pdt": "plautdietsch", "peo": "muinaispersia", "pfl": "pfaltsi", "phn": "foinikia", "pi": "paali", "pl": "puola", "pms": "piemonte", "pnt": "pontoksenkreikka", "pon": "pohnpei", "prg": "muinaispreussi", "pro": "muinaisprovensaali", "ps": "paštu", "pt": "portugali", "pt-BR": "brasilianportugali", "pt-PT": "euroopanportugali", "qu": "ketšua", "quc": "kʼicheʼ", "qug": "chimborazonylänköketšua", "raj": "radžastani", "rap": "rapanui", "rar": "rarotonga", "rgn": "romagnoli", "rif": "tarifit", "rm": "retoromaani", "rn": "rundi", "ro": "romania", "ro-MD": "moldova", "rof": "rombo", "rom": "romani", "root": "juuri", "rtm": "rotuma", "ru": "venäjä", "rue": "ruteeni", "rug": "roviana", "rup": "aromania", "rw": "ruanda", "rwk": "rwa", "sa": "sanskrit", "sad": "sandawe", "sah": "jakuutti", "sam": "samarianaramea", "saq": "samburu", "sas": "sasak", "sat": "santali", "saz": "sauraštri", "sba": "ngambay", "sbp": "sangu", "sc": "sardi", "scn": "sisilia", "sco": "skotti", "sd": "sindhi", "sdc": "sassarinsardi", "sdh": "eteläkurdi", "se": "pohjoissaame", "see": "seneca", "seh": "sena", "sei": "seri", "sel": "selkuppi", "ses": "koyraboro senni", "sg": "sango", "sga": "muinaisiiri", "sgs": "samogiitti", "sh": "serbokroaatti", "shi": "tašelhit", "shn": "shan", "shu": "tšadinarabia", "si": "sinhala", "sid": "sidamo", "sk": "slovakki", "sl": "sloveeni", "sli": "sleesiansaksa", "sly": "selayar", "sm": "samoa", "sma": "eteläsaame", "smj": "luulajansaame", "smn": "inarinsaame", "sms": "koltansaame", "sn": "šona", "snk": "soninke", "so": "somali", "sog": "sogdi", "sq": "albania", "sr": "serbia", "srn": "sranan", "srr": "serer", "ss": "swazi", "ssy": "saho", "st": "eteläsotho", "stq": "saterlandinfriisi", "su": "sunda", "suk": "sukuma", "sus": "susu", "sux": "sumeri", "sv": "ruotsi", "sw": "swahili", "sw-CD": "kingwana", "swb": "komori", "syc": "muinaissyyria", "syr": "syyria", "szl": "sleesia", "ta": "tamili", "tcy": "tulu", "te": "telugu", "tem": "temne", "teo": "teso", "ter": "tereno", "tet": "tetum", "tg": "tadžikki", "th": "thai", "ti": "tigrinja", "tig": "tigre", "tk": "turkmeeni", "tkl": "tokelau", "tkr": "tsahuri", "tl": "tagalog", "tlh": "klingon", "tli": "tlingit", "tly": "tališi", "tmh": "tamašek", "tn": "tswana", "to": "tonga", "tog": "malawintonga", "tpi": "tok-pisin", "tr": "turkki", "tru": "turojo", "trv": "taroko", "ts": "tsonga", "tsd": "tsakonia", "tsi": "tsimši", "tt": "tataari", "ttt": "tati", "tum": "tumbuka", "tvl": "tuvalu", "tw": "twi", "twq": "tasawaq", "ty": "tahiti", "tyv": "tuva", "tzm": "keskiatlaksentamazight", "udm": "udmurtti", "ug": "uiguuri", "uga": "ugarit", "uk": "ukraina", "umb": "mbundu", "ur": "urdu", "uz": "uzbekki", "ve": "venda", "vec": "venetsia", "vep": "vepsä", "vi": "vietnam", "vls": "länsiflaami", "vmf": "maininfrankki", "vo": "volapük", "vot": "vatja", "vro": "võro", "vun": "vunjo", "wa": "valloni", "wae": "walser", "wal": "wolaitta", "war": "waray", "was": "washo", "wbp": "warlpiri", "wo": "wolof", "wuu": "wu-kiina", "xal": "kalmukki", "xh": "xhosa", "xmf": "mingreli", "xog": "soga", "yao": "jao", "yap": "japi", "yav": "yangben", "ybb": "yemba", "yi": "jiddiš", "yo": "joruba", "yrl": "ñeengatú", "yue": "kantoninkiina", "za": "zhuang", "zap": "zapoteekki", "zbl": "blisskieli", "zea": "seelanti", "zen": "zenaga", "zgh": "vakioitu tamazight", "zh": "kiina", "zh-Hans": "yksinkertaistettu kiina", "zh-Hant": "perinteinen kiina", "zu": "zulu", "zun": "zuni", "zza": "zaza"}}, + "fr": {"rtl": false, "languageNames": {"aa": "afar", "ab": "abkhaze", "ace": "aceh", "ach": "acoli", "ada": "adangme", "ady": "adyguéen", "ae": "avestique", "aeb": "arabe tunisien", "af": "afrikaans", "afh": "afrihili", "agq": "aghem", "ain": "aïnou", "ak": "akan", "akk": "akkadien", "akz": "alabama", "ale": "aléoute", "aln": "guègue", "alt": "altaï du Sud", "am": "amharique", "an": "aragonais", "ang": "ancien anglais", "anp": "angika", "ar": "arabe", "ar-001": "arabe standard moderne", "arc": "araméen", "arn": "mapuche", "aro": "araona", "arp": "arapaho", "arq": "arabe algérien", "ars": "arabe najdi", "arw": "arawak", "ary": "arabe marocain", "arz": "arabe égyptien", "as": "assamais", "asa": "asu", "ase": "langue des signes américaine", "ast": "asturien", "av": "avar", "avk": "kotava", "awa": "awadhi", "ay": "aymara", "az": "azéri", "ba": "bachkir", "bal": "baloutchi", "ban": "balinais", "bar": "bavarois", "bas": "bassa", "bax": "bamoun", "bbc": "batak toba", "bbj": "ghomalaʼ", "be": "biélorusse", "bej": "bedja", "bem": "bemba", "bew": "betawi", "bez": "béna", "bfd": "bafut", "bfq": "badaga", "bg": "bulgare", "bgn": "baloutchi occidental", "bho": "bhodjpouri", "bi": "bichelamar", "bik": "bikol", "bin": "bini", "bjn": "banjar", "bkm": "kom", "bla": "siksika", "bm": "bambara", "bn": "bengali", "bo": "tibétain", "bpy": "bishnupriya", "bqi": "bakhtiari", "br": "breton", "bra": "braj", "brh": "brahoui", "brx": "bodo", "bs": "bosniaque", "bss": "akoose", "bua": "bouriate", "bug": "bugi", "bum": "boulou", "byn": "blin", "byv": "médumba", "ca": "catalan", "cad": "caddo", "car": "caribe", "cay": "cayuga", "cch": "atsam", "ccp": "changma kodha", "ce": "tchétchène", "ceb": "cebuano", "cgg": "kiga", "ch": "chamorro", "chb": "chibcha", "chg": "tchaghataï", "chk": "chuuk", "chm": "mari", "chn": "jargon chinook", "cho": "choctaw", "chp": "chipewyan", "chr": "cherokee", "chy": "cheyenne", "ckb": "sorani", "co": "corse", "cop": "copte", "cps": "capiznon", "cr": "cree", "crh": "turc de Crimée", "crs": "créole seychellois", "cs": "tchèque", "csb": "kachoube", "cu": "slavon d’église", "cv": "tchouvache", "cy": "gallois", "da": "danois", "dak": "dakota", "dar": "dargwa", "dav": "taita", "de": "allemand", "de-AT": "allemand autrichien", "de-CH": "allemand suisse", "del": "delaware", "den": "esclave", "dgr": "dogrib", "din": "dinka", "dje": "zarma", "doi": "dogri", "dsb": "bas-sorabe", "dtp": "dusun central", "dua": "douala", "dum": "moyen néerlandais", "dv": "maldivien", "dyo": "diola-fogny", "dyu": "dioula", "dz": "dzongkha", "dzg": "dazaga", "ebu": "embou", "ee": "éwé", "efi": "éfik", "egl": "émilien", "egy": "égyptien ancien", "eka": "ékadjouk", "el": "grec", "elx": "élamite", "en": "anglais", "en-AU": "anglais australien", "en-CA": "anglais canadien", "en-GB": "anglais britannique", "en-US": "anglais américain", "enm": "moyen anglais", "eo": "espéranto", "es": "espagnol", "es-419": "espagnol d’Amérique latine", "es-ES": "espagnol d’Espagne", "es-MX": "espagnol du Mexique", "esu": "youpik central", "et": "estonien", "eu": "basque", "ewo": "éwondo", "ext": "estrémègne", "fa": "persan", "fan": "fang", "fat": "fanti", "ff": "peul", "fi": "finnois", "fil": "filipino", "fit": "finnois tornédalien", "fj": "fidjien", "fo": "féroïen", "fr": "français", "fr-CA": "français canadien", "fr-CH": "français suisse", "frc": "français cadien", "frm": "moyen français", "fro": "ancien français", "frp": "francoprovençal", "frr": "frison du Nord", "frs": "frison oriental", "fur": "frioulan", "fy": "frison occidental", "ga": "irlandais", "gaa": "ga", "gag": "gagaouze", "gay": "gayo", "gba": "gbaya", "gbz": "dari zoroastrien", "gd": "gaélique écossais", "gez": "guèze", "gil": "gilbertin", "gl": "galicien", "glk": "gilaki", "gmh": "moyen haut-allemand", "gn": "guarani", "goh": "ancien haut allemand", "gom": "konkani de Goa", "gon": "gondi", "gor": "gorontalo", "got": "gotique", "grb": "grebo", "grc": "grec ancien", "gsw": "suisse allemand", "gu": "goudjerati", "guc": "wayuu", "gur": "gurenne", "guz": "gusii", "gv": "mannois", "gwi": "gwichʼin", "ha": "haoussa", "hai": "haida", "hak": "hakka", "haw": "hawaïen", "he": "hébreu", "hi": "hindi", "hif": "hindi fidjien", "hil": "hiligaynon", "hit": "hittite", "hmn": "hmong", "ho": "hiri motu", "hr": "croate", "hsb": "haut-sorabe", "hsn": "xiang", "ht": "créole haïtien", "hu": "hongrois", "hup": "hupa", "hy": "arménien", "hz": "héréro", "ia": "interlingua", "iba": "iban", "ibb": "ibibio", "id": "indonésien", "ie": "interlingue", "ig": "igbo", "ii": "yi du Sichuan", "ik": "inupiaq", "ilo": "ilocano", "inh": "ingouche", "io": "ido", "is": "islandais", "it": "italien", "iu": "inuktitut", "izh": "ingrien", "ja": "japonais", "jam": "créole jamaïcain", "jbo": "lojban", "jgo": "ngomba", "jmc": "matchamé", "jpr": "judéo-persan", "jrb": "judéo-arabe", "jut": "jute", "jv": "javanais", "ka": "géorgien", "kaa": "karakalpak", "kab": "kabyle", "kac": "kachin", "kaj": "jju", "kam": "kamba", "kaw": "kawi", "kbd": "kabarde", "kbl": "kanembou", "kcg": "tyap", "kde": "makondé", "kea": "capverdien", "ken": "kényang", "kfo": "koro", "kg": "kikongo", "kgp": "caingangue", "kha": "khasi", "kho": "khotanais", "khq": "koyra chiini", "khw": "khowar", "ki": "kikuyu", "kiu": "kirmanjki", "kj": "kuanyama", "kk": "kazakh", "kkj": "kako", "kl": "groenlandais", "kln": "kalendjin", "km": "khmer", "kmb": "kimboundou", "kn": "kannada", "ko": "coréen", "koi": "komi-permiak", "kok": "konkani", "kos": "kosraéen", "kpe": "kpellé", "kr": "kanouri", "krc": "karatchaï balkar", "kri": "krio", "krj": "kinaray-a", "krl": "carélien", "kru": "kouroukh", "ks": "cachemiri", "ksb": "shambala", "ksf": "bafia", "ksh": "francique ripuaire", "ku": "kurde", "kum": "koumyk", "kut": "kutenai", "kv": "komi", "kw": "cornique", "ky": "kirghize", "la": "latin", "lad": "ladino", "lag": "langi", "lah": "lahnda", "lam": "lamba", "lb": "luxembourgeois", "lez": "lezghien", "lfn": "lingua franca nova", "lg": "ganda", "li": "limbourgeois", "lij": "ligure", "liv": "livonien", "lkt": "lakota", "lmo": "lombard", "ln": "lingala", "lo": "lao", "lol": "mongo", "lou": "créole louisianais", "loz": "lozi", "lrc": "lori du Nord", "lt": "lituanien", "ltg": "latgalien", "lu": "luba-katanga (kiluba)", "lua": "luba-kasaï (ciluba)", "lui": "luiseño", "lun": "lunda", "lus": "lushaï", "luy": "luyia", "lv": "letton", "lzh": "chinois littéraire", "lzz": "laze", "mad": "madurais", "maf": "mafa", "mag": "magahi", "mai": "maïthili", "mak": "makassar", "man": "mandingue", "mas": "maasaï", "mde": "maba", "mdf": "mokcha", "mdr": "mandar", "men": "mendé", "mer": "meru", "mfe": "créole mauricien", "mg": "malgache", "mga": "moyen irlandais", "mgh": "makua", "mgo": "metaʼ", "mh": "marshallais", "mi": "maori", "mic": "micmac", "min": "minangkabau", "mk": "macédonien", "ml": "malayalam", "mn": "mongol", "mnc": "mandchou", "mni": "manipuri", "moh": "mohawk", "mos": "moré", "mr": "marathi", "mrj": "mari occidental", "ms": "malais", "mt": "maltais", "mua": "moundang", "mus": "creek", "mwl": "mirandais", "mwr": "marwarî", "mwv": "mentawaï", "my": "birman", "mye": "myènè", "myv": "erzya", "mzn": "mazandérani", "na": "nauruan", "nan": "minnan", "nap": "napolitain", "naq": "nama", "nb": "norvégien bokmål", "nd": "ndébélé du Nord", "nds": "bas-allemand", "nds-NL": "bas-saxon néerlandais", "ne": "népalais", "new": "newari", "ng": "ndonga", "nia": "niha", "niu": "niuéen", "njo": "Ao", "nl": "néerlandais", "nl-BE": "flamand", "nmg": "ngoumba", "nn": "norvégien nynorsk", "nnh": "ngiemboon", "no": "norvégien", "nog": "nogaï", "non": "vieux norrois", "nov": "novial", "nqo": "n’ko", "nr": "ndébélé du Sud", "nso": "sotho du Nord", "nus": "nuer", "nv": "navajo", "nwc": "newarî classique", "ny": "chewa", "nym": "nyamwezi", "nyn": "nyankolé", "nyo": "nyoro", "nzi": "nzema", "oc": "occitan", "oj": "ojibwa", "om": "oromo", "or": "odia", "os": "ossète", "osa": "osage", "ota": "turc ottoman", "pa": "pendjabi", "pag": "pangasinan", "pal": "pahlavi", "pam": "pampangan", "pap": "papiamento", "pau": "palau", "pcd": "picard", "pcm": "pidgin nigérian", "pdc": "pennsilfaanisch", "pdt": "bas-prussien", "peo": "persan ancien", "pfl": "allemand palatin", "phn": "phénicien", "pi": "pali", "pl": "polonais", "pms": "piémontais", "pnt": "pontique", "pon": "pohnpei", "prg": "prussien", "pro": "provençal ancien", "ps": "pachto", "pt": "portugais", "pt-BR": "portugais brésilien", "pt-PT": "portugais européen", "qu": "quechua", "quc": "quiché", "qug": "quichua du Haut-Chimborazo", "raj": "rajasthani", "rap": "rapanui", "rar": "rarotongien", "rgn": "romagnol", "rif": "rifain", "rm": "romanche", "rn": "roundi", "ro": "roumain", "ro-MD": "moldave", "rof": "rombo", "rom": "romani", "root": "racine", "rtm": "rotuman", "ru": "russe", "rue": "ruthène", "rug": "roviana", "rup": "aroumain", "rw": "kinyarwanda", "rwk": "rwa", "sa": "sanskrit", "sad": "sandawe", "sah": "iakoute", "sam": "araméen samaritain", "saq": "samburu", "sas": "sasak", "sat": "santali", "saz": "saurashtra", "sba": "ngambay", "sbp": "isangu", "sc": "sarde", "scn": "sicilien", "sco": "écossais", "sd": "sindhi", "sdc": "sarde sassarais", "sdh": "kurde du Sud", "se": "same du Nord", "see": "seneca", "seh": "cisena", "sei": "séri", "sel": "selkoupe", "ses": "koyraboro senni", "sg": "sango", "sga": "ancien irlandais", "sgs": "samogitien", "sh": "serbo-croate", "shi": "chleuh", "shn": "shan", "shu": "arabe tchadien", "si": "cingalais", "sid": "sidamo", "sk": "slovaque", "sl": "slovène", "sli": "bas-silésien", "sly": "sélayar", "sm": "samoan", "sma": "same du Sud", "smj": "same de Lule", "smn": "same d’Inari", "sms": "same skolt", "sn": "shona", "snk": "soninké", "so": "somali", "sog": "sogdien", "sq": "albanais", "sr": "serbe", "srn": "sranan tongo", "srr": "sérère", "ss": "swati", "ssy": "saho", "st": "sotho du Sud", "stq": "saterlandais", "su": "soundanais", "suk": "soukouma", "sus": "soussou", "sux": "sumérien", "sv": "suédois", "sw": "swahili", "sw-CD": "swahili du Congo", "swb": "comorien", "syc": "syriaque classique", "syr": "syriaque", "szl": "silésien", "ta": "tamoul", "tcy": "toulou", "te": "télougou", "tem": "timné", "teo": "teso", "ter": "tereno", "tet": "tétoum", "tg": "tadjik", "th": "thaï", "ti": "tigrigna", "tig": "tigré", "tk": "turkmène", "tkl": "tokelau", "tkr": "tsakhour", "tl": "tagalog", "tlh": "klingon", "tli": "tlingit", "tly": "talysh", "tmh": "tamacheq", "tn": "tswana", "to": "tongien", "tog": "tonga nyasa", "tpi": "tok pisin", "tr": "turc", "tru": "touroyo", "trv": "taroko", "ts": "tsonga", "tsd": "tsakonien", "tsi": "tsimshian", "tt": "tatar", "ttt": "tati caucasien", "tum": "tumbuka", "tvl": "tuvalu", "tw": "twi", "twq": "tasawaq", "ty": "tahitien", "tyv": "touvain", "tzm": "amazighe de l’Atlas central", "udm": "oudmourte", "ug": "ouïghour", "uga": "ougaritique", "uk": "ukrainien", "umb": "umbundu", "ur": "ourdou", "uz": "ouzbek", "vai": "vaï", "ve": "venda", "vec": "vénitien", "vep": "vepse", "vi": "vietnamien", "vls": "flamand occidental", "vmf": "franconien du Main", "vo": "volapük", "vot": "vote", "vro": "võro", "vun": "vunjo", "wa": "wallon", "wae": "walser", "wal": "walamo", "war": "waray", "was": "washo", "wbp": "warlpiri", "wo": "wolof", "wuu": "wu", "xal": "kalmouk", "xh": "xhosa", "xmf": "mingrélien", "xog": "soga", "yap": "yapois", "yav": "yangben", "ybb": "yemba", "yi": "yiddish", "yo": "yoruba", "yrl": "nheengatou", "yue": "cantonais", "za": "zhuang", "zap": "zapotèque", "zbl": "symboles Bliss", "zea": "zélandais", "zen": "zenaga", "zgh": "amazighe standard marocain", "zh": "chinois", "zh-Hans": "chinois simplifié", "zh-Hant": "chinois traditionnel", "zu": "zoulou", "zun": "zuñi", "zza": "zazaki"}}, + "gan": {"rtl": false, "languageNames": {}}, + "gl": {"rtl": false, "languageNames": {"aa": "afar", "ab": "abkhazo", "ace": "achinés", "ach": "acholí", "ada": "adangme", "ady": "adigueo", "af": "afrikaans", "agq": "aghem", "ain": "ainu", "ak": "akan", "ale": "aleutiano", "alt": "altai meridional", "am": "amhárico", "an": "aragonés", "anp": "angika", "ar": "árabe", "ar-001": "árabe estándar moderno", "arc": "arameo", "arn": "mapuche", "arp": "arapaho", "as": "assamés", "asa": "asu", "ast": "asturiano", "av": "avar", "awa": "awadhi", "ay": "aimará", "az": "acerbaixano", "ba": "baxkir", "ban": "balinés", "bas": "basaa", "be": "bielorruso", "bem": "bemba", "bez": "bena", "bg": "búlgaro", "bgn": "baluchi occidental", "bho": "bhojpuri", "bi": "bislama", "bin": "bini", "bla": "siksiká", "bm": "bambara", "bn": "bengalí", "bo": "tibetano", "br": "bretón", "brx": "bodo", "bs": "bosníaco", "bug": "buginés", "byn": "blin", "ca": "catalán", "ce": "checheno", "ceb": "cebuano", "cgg": "kiga", "ch": "chamorro", "chk": "chuuk", "chm": "mari", "cho": "choctaw", "chr": "cherokee", "chy": "cheyenne", "ckb": "kurdo soraní", "co": "corso", "crs": "seselwa (crioulo das Seychelles)", "cs": "checo", "cu": "eslavo eclesiástico", "cv": "chuvaxo", "cy": "galés", "da": "dinamarqués", "dak": "dakota", "dar": "dargwa", "dav": "taita", "de": "alemán", "de-AT": "alemán austríaco", "de-CH": "alto alemán suízo", "dgr": "dogrib", "dje": "zarma", "dsb": "baixo sorbio", "dua": "duala", "dv": "divehi", "dyo": "jola-fonyi", "dz": "dzongkha", "dzg": "dazaga", "ebu": "embu", "ee": "ewe", "efi": "efik", "egy": "exipcio antigo", "eka": "ekajuk", "el": "grego", "en": "inglés", "en-AU": "inglés australiano", "en-CA": "inglés canadense", "en-GB": "inglés británico", "en-US": "inglés estadounidense", "eo": "esperanto", "es": "español", "es-419": "español de América", "es-ES": "español de España", "es-MX": "español de México", "et": "estoniano", "eu": "éuscaro", "ewo": "ewondo", "fa": "persa", "ff": "fula", "fi": "finés", "fil": "filipino", "fj": "fixiano", "fo": "feroés", "fr": "francés", "fr-CA": "francés canadense", "fr-CH": "francés suízo", "fur": "friulano", "fy": "frisón occidental", "ga": "irlandés", "gaa": "ga", "gag": "gagauz", "gd": "gaélico escocés", "gez": "ge’ez", "gil": "kiribatiano", "gl": "galego", "gn": "guaraní", "gor": "gorontalo", "grc": "grego antigo", "gsw": "alemán suízo", "gu": "guxarati", "guz": "gusii", "gv": "manx", "gwi": "gwichʼin", "ha": "hausa", "haw": "hawaiano", "he": "hebreo", "hi": "hindi", "hil": "hiligaynon", "hmn": "hmong", "hr": "croata", "hsb": "alto sorbio", "ht": "crioulo haitiano", "hu": "húngaro", "hup": "hupa", "hy": "armenio", "hz": "herero", "ia": "interlingua", "iba": "iban", "ibb": "ibibio", "id": "indonesio", "ig": "igbo", "ii": "yi sichuanés", "ilo": "ilocano", "inh": "inguxo", "io": "ido", "is": "islandés", "it": "italiano", "iu": "inuktitut", "ja": "xaponés", "jbo": "lojban", "jgo": "ngomba", "jmc": "machame", "jv": "xavanés", "ka": "xeorxiano", "kab": "cabila", "kac": "kachin", "kaj": "jju", "kam": "kamba", "kbd": "cabardiano", "kcg": "tyap", "kde": "makonde", "kea": "caboverdiano", "kfo": "koro", "kg": "kongo", "kha": "khasi", "khq": "koyra chiini", "ki": "kikuyu", "kj": "kuanyama", "kk": "casaco", "kkj": "kako", "kl": "groenlandés", "kln": "kalenjin", "km": "khmer", "kmb": "kimbundu", "kn": "kannará", "ko": "coreano", "koi": "komi permio", "kok": "konkani", "kpe": "kpelle", "kr": "kanuri", "krc": "carachaio-bálcara", "krl": "carelio", "kru": "kurukh", "ks": "caxemirés", "ksb": "shambala", "ksf": "bafia", "ksh": "kölsch", "ku": "kurdo", "kum": "kumyk", "kv": "komi", "kw": "córnico", "ky": "kirguiz", "la": "latín", "lad": "ladino", "lag": "langi", "lb": "luxemburgués", "lez": "lezguio", "lg": "ganda", "li": "limburgués", "lkt": "lakota", "ln": "lingala", "lo": "laosiano", "loz": "lozi", "lrc": "luri setentrional", "lt": "lituano", "lu": "luba-katanga", "lua": "luba-lulua", "lun": "lunda", "lus": "mizo", "luy": "luyia", "lv": "letón", "mad": "madurés", "mag": "magahi", "mai": "maithili", "mak": "makasar", "mas": "masai", "mdf": "moksha", "men": "mende", "mer": "meru", "mfe": "crioulo mauriciano", "mg": "malgaxe", "mgh": "makhuwa-meetto", "mgo": "meta’", "mh": "marshalés", "mi": "maorí", "mic": "micmac", "min": "minangkabau", "mk": "macedonio", "ml": "malabar", "mn": "mongol", "mni": "manipuri", "moh": "mohawk", "mos": "mossi", "mr": "marathi", "ms": "malaio", "mt": "maltés", "mua": "mundang", "mus": "creek", "mwl": "mirandés", "my": "birmano", "myv": "erzya", "mzn": "mazandaraní", "na": "nauruano", "nap": "napolitano", "naq": "nama", "nb": "noruegués bokmål", "nd": "ndebele setentrional", "nds": "baixo alemán", "nds-NL": "baixo saxón", "ne": "nepalí", "new": "newari", "ng": "ndonga", "nia": "nias", "niu": "niueano", "nl": "neerlandés", "nl-BE": "flamengo", "nmg": "kwasio", "nn": "noruegués nynorsk", "nnh": "ngiemboon", "no": "noruegués", "nog": "nogai", "nqo": "n’ko", "nr": "ndebele meridional", "nso": "sesotho do norte", "nus": "nuer", "nv": "navajo", "ny": "nyanja", "nyn": "nyankole", "oc": "occitano", "om": "oromo", "or": "odiá", "os": "ossetio", "pa": "panxabí", "pag": "pangasinan", "pam": "pampanga", "pap": "papiamento", "pau": "palauano", "pcm": "pidgin nixeriano", "pl": "polaco", "prg": "prusiano", "ps": "paxto", "pt": "portugués", "pt-BR": "portugués do Brasil", "pt-PT": "portugués de Portugal", "qu": "quechua", "quc": "quiché", "rap": "rapanui", "rar": "rarotongano", "rm": "romanche", "rn": "rundi", "ro": "romanés", "ro-MD": "moldavo", "rof": "rombo", "root": "raíz", "ru": "ruso", "rup": "aromanés", "rw": "kiñaruanda", "rwk": "rwa", "sa": "sánscrito", "sad": "sandawe", "sah": "iacuto", "saq": "samburu", "sat": "santali", "sba": "ngambay", "sbp": "sangu", "sc": "sardo", "scn": "siciliano", "sco": "escocés", "sd": "sindhi", "sdh": "kurdo meridional", "se": "saami setentrional", "seh": "sena", "ses": "koyraboro senni", "sg": "sango", "sh": "serbocroata", "shi": "tachelhit", "shn": "shan", "si": "cingalés", "sk": "eslovaco", "sl": "esloveno", "sm": "samoano", "sma": "saami meridional", "smj": "saami de Lule", "smn": "saami de Inari", "sms": "saami skolt", "sn": "shona", "snk": "soninke", "so": "somalí", "sq": "albanés", "sr": "serbio", "srn": "sranan tongo", "ss": "suazi", "ssy": "saho", "st": "sesotho", "su": "sundanés", "suk": "sukuma", "sv": "sueco", "sw": "suahili", "sw-CD": "suahili congolés", "swb": "comoriano", "syr": "siríaco", "ta": "támil", "te": "telugu", "tem": "temne", "teo": "teso", "tet": "tetun", "tg": "taxico", "th": "tailandés", "ti": "tigriña", "tig": "tigré", "tk": "turcomán", "tl": "tagalo", "tlh": "klingon", "tn": "tswana", "to": "tongano", "tpi": "tok pisin", "tr": "turco", "trv": "taroko", "ts": "tsonga", "tt": "tártaro", "tum": "tumbuka", "tvl": "tuvalés", "tw": "twi", "twq": "tasawaq", "ty": "tahitiano", "tyv": "tuvaniano", "tzm": "tamazight de Marrocos central", "udm": "udmurto", "ug": "uigur", "uk": "ucraíno", "umb": "umbundu", "ur": "urdú", "uz": "uzbeco", "ve": "venda", "vi": "vietnamita", "vo": "volapuk", "vun": "vunjo", "wa": "valón", "wae": "walser", "wal": "wolaytta", "war": "waray-waray", "wbp": "walrpiri", "wo": "wólof", "xal": "calmuco", "xh": "xhosa", "xog": "soga", "yav": "yangben", "ybb": "yemba", "yi": "yiddish", "yo": "ioruba", "yue": "cantonés", "zgh": "tamazight marroquí estándar", "zh": "chinés", "zh-Hans": "chinés simplificado", "zh-Hant": "chinés tradicional", "zu": "zulú", "zun": "zuni", "zza": "zazaki"}}, + "gu": {"rtl": false, "languageNames": {"aa": "અફાર", "ab": "અબખાજિયન", "ace": "અચીની", "ach": "એકોલી", "ada": "અદાંગ્મી", "ady": "અદિઘે", "ae": "અવેસ્તન", "af": "આફ્રિકન્સ", "afh": "અફ્રિહિલી", "agq": "અઘેમ", "ain": "ઐનુ", "ak": "અકાન", "akk": "અક્કાદીયાન", "ale": "અલેઉત", "alt": "દક્ષિણ અલ્તાઇ", "am": "એમ્હારિક", "an": "અર્ગોનીઝ", "ang": "જુની અંગ્રેજી", "anp": "અંગીકા", "ar": "અરબી", "ar-001": "મોડર્ન સ્ટાન્ડર્ડ અરબી", "arc": "એરમૈક", "arn": "મેપુચે", "arp": "અરાપાહો", "arq": "આલ્જેરિયન અરબી", "arw": "અરાવક", "ary": "મોરોક્કન અરબી", "arz": "ઈજિપ્શિયન અરબી", "as": "આસામી", "asa": "અસુ", "ast": "અસ્તુરિયન", "av": "અવેરિક", "awa": "અવધી", "ay": "આયમારા", "az": "અઝરબૈજાની", "ba": "બશ્કીર", "bal": "બલૂચી", "ban": "બાલિનીસ", "bas": "બસા", "bax": "બામન", "be": "બેલારુશિયન", "bej": "બેજા", "bem": "બેમ્બા", "bez": "બેના", "bg": "બલ્ગેરિયન", "bgn": "પશ્ચિમી બાલોચી", "bho": "ભોજપુરી", "bi": "બિસ્લામા", "bik": "બિકોલ", "bin": "બિની", "bla": "સિક્સિકા", "bm": "બામ્બારા", "bn": "બાંગ્લા", "bo": "તિબેટીયન", "bpy": "બિષ્નુપ્રિયા", "br": "બ્રેટોન", "bra": "વ્રજ", "brh": "બ્રાહુઈ", "brx": "બોડો", "bs": "બોસ્નિયન", "bua": "બુરિયાત", "bug": "બુગિનીસ", "byn": "બ્લિન", "ca": "કતલાન", "cad": "કડ્ડો", "car": "કરિબ", "cch": "અત્સમ", "ce": "ચેચન", "ceb": "સિબુઆનો", "cgg": "ચિગા", "ch": "કેમોરો", "chb": "ચિબ્ચા", "chg": "છગાતાઇ", "chk": "ચૂકીસ", "chm": "મારી", "chn": "ચિનૂક જાર્ગન", "cho": "ચોક્તૌ", "chp": "શિપેવ્યાન", "chr": "શેરોકી", "chy": "શેયેન્ન", "ckb": "સેન્ટ્રલ કુર્દિશ", "co": "કોર્સિકન", "cop": "કોપ્ટિક", "cr": "ક્રી", "crh": "ક્રિમિયન તુર્કી", "crs": "સેસેલ્વા ક્રેઓલે ફ્રેન્ચ", "cs": "ચેક", "csb": "કાશુબિયન", "cu": "ચર્ચ સ્લાવિક", "cv": "ચૂવાશ", "cy": "વેલ્શ", "da": "ડેનિશ", "dak": "દાકોતા", "dar": "દાર્ગવા", "dav": "તૈતા", "de": "જર્મન", "de-AT": "ઓસ્ટ્રિઅન જર્મન", "de-CH": "સ્વિસ હાય જર્મન", "del": "દેલવેર", "den": "સ્લેવ", "dgr": "ડોગ્રિબ", "din": "દિન્કા", "dje": "ઝર્મા", "doi": "ડોગ્રી", "dsb": "લોઅર સોર્બિયન", "dua": "દુઆલા", "dum": "મધ્ય ડચ", "dv": "દિવેહી", "dyo": "જોલા-ફોન્યી", "dyu": "ડ્યુલા", "dz": "ડ્ઝોંગ્ખા", "dzg": "દાઝાગા", "ebu": "ઍમ્બુ", "ee": "ઈવ", "efi": "એફિક", "egy": "પ્રાચીન ઇજીપ્શિયન", "eka": "એકાજુક", "el": "ગ્રીક", "elx": "એલામાઇટ", "en": "અંગ્રેજી", "en-AU": "ઓસ્ટ્રેલિયન અંગ્રેજી", "en-CA": "કેનેડિયન અંગ્રેજી", "en-GB": "બ્રિટિશ અંગ્રેજી", "en-US": "અમેરિકન અંગ્રેજી", "enm": "મિડિલ અંગ્રેજી", "eo": "એસ્પેરાન્ટો", "es": "સ્પેનિશ", "es-419": "લેટિન અમેરિકન સ્પેનિશ", "es-ES": "યુરોપિયન સ્પેનિશ", "es-MX": "મેક્સિકન સ્પેનિશ", "et": "એસ્ટોનિયન", "eu": "બાસ્ક", "ewo": "ઇવોન્ડો", "fa": "ફારસી", "fan": "ફેંગ", "fat": "ફન્ટી", "ff": "ફુલાહ", "fi": "ફિનિશ", "fil": "ફિલિપિનો", "fj": "ફીજીયન", "fo": "ફોરિસ્ત", "fon": "ફોન", "fr": "ફ્રેન્ચ", "fr-CA": "કેનેડિયન ફ્રેંચ", "fr-CH": "સ્વિસ ફ્રેંચ", "frc": "કાજૂન ફ્રેન્ચ", "frm": "મિડિલ ફ્રેંચ", "fro": "જૂની ફ્રેંચ", "frr": "ઉત્તરીય ફ્રિશિયન", "frs": "પૂર્વ ફ્રિશિયન", "fur": "ફ્રિયુલિયાન", "fy": "પશ્ચિમી ફ્રિસિયન", "ga": "આઇરિશ", "gaa": "ગા", "gag": "ગાગાઝ", "gay": "ગાયો", "gba": "બાયા", "gbz": "ઝોરોસ્ટ્રિઅન દારી", "gd": "સ્કોટીસ ગેલિક", "gez": "ગીઝ", "gil": "જિલ્બરટીઝ", "gl": "ગેલિશિયન", "gmh": "મધ્ય હાઇ જર્મન", "gn": "ગુઆરાની", "goh": "જૂની હાઇ જર્મન", "gom": "ગોઅન કોંકણી", "gon": "ગોંડી", "gor": "ગોરોન્તાલો", "got": "ગોથિક", "grb": "ગ્રેબો", "grc": "પ્રાચીન ગ્રીક", "gsw": "સ્વિસ જર્મન", "gu": "ગુજરાતી", "guz": "ગુસી", "gv": "માંક્સ", "gwi": "ગ્વિચ’ઇન", "ha": "હૌસા", "hai": "હૈડા", "haw": "હવાઇયન", "he": "હીબ્રુ", "hi": "હિન્દી", "hif": "ફીજી હિંદી", "hil": "હિલિગેનોન", "hit": "હિટ્ટિતે", "hmn": "હમોંગ", "ho": "હિરી મોટૂ", "hr": "ક્રોએશિયન", "hsb": "અપર સોર્બિયન", "ht": "હૈતિઅન ક્રેઓલે", "hu": "હંગેરિયન", "hup": "હૂપા", "hy": "આર્મેનિયન", "hz": "હેરેરો", "ia": "ઇંટરલિંગુઆ", "iba": "ઇબાન", "ibb": "ઇબિબિઓ", "id": "ઇન્ડોનેશિયન", "ie": "ઇંટરલિંગ", "ig": "ઇગ્બો", "ii": "સિચુઆન યી", "ik": "ઇનુપિયાક", "ilo": "ઇલોકો", "inh": "ઇંગુશ", "io": "ઈડો", "is": "આઇસલેન્ડિક", "it": "ઇટાલિયન", "iu": "ઇનુકિટૂટ", "ja": "જાપાનીઝ", "jbo": "લોજ્બાન", "jgo": "નગોમ્બા", "jmc": "મકામે", "jpr": "જુદેઓ-પર્શિયન", "jrb": "જુદેઓ-અરબી", "jv": "જાવાનીસ", "ka": "જ્યોર્જિયન", "kaa": "કારા-કલ્પક", "kab": "કબાઇલ", "kac": "કાચિન", "kaj": "જ્જુ", "kam": "કમ્બા", "kaw": "કાવી", "kbd": "કબાર્ડિયન", "kcg": "ત્યાપ", "kde": "મકોન્ડે", "kea": "કાબુવર્ડિઆનુ", "kfo": "કોરો", "kg": "કોંગો", "kha": "ખાસી", "kho": "ખોતાનીસ", "khq": "કોયરા ચિનિ", "ki": "કિકુયૂ", "kj": "ક્વાન્યામા", "kk": "કઝાખ", "kkj": "કાકો", "kl": "કલાલ્લિસુત", "kln": "કલેજિન", "km": "ખ્મેર", "kmb": "કિમ્બન્દુ", "kn": "કન્નડ", "ko": "કોરિયન", "koi": "કોમી-પર્મ્યાક", "kok": "કોંકણી", "kos": "કોસરિયન", "kpe": "ક્પેલ્લે", "kr": "કનુરી", "krc": "કરાચય-બલ્કાર", "krl": "કરેલિયન", "kru": "કુરૂખ", "ks": "કાશ્મીરી", "ksb": "શમ્બાલા", "ksf": "બફિયા", "ksh": "કોલોગ્નિયન", "ku": "કુર્દિશ", "kum": "કુમીક", "kut": "કુતેનાઇ", "kv": "કોમી", "kw": "કોર્નિશ", "ky": "કિર્ગીઝ", "la": "લેટિન", "lad": "લાદીનો", "lag": "લંગી", "lah": "લાહન્ડા", "lam": "લામ્બા", "lb": "લક્ઝેમબર્ગિશ", "lez": "લેઝધીયન", "lfn": "લિંગ્વા ફેન્કા નોવા", "lg": "ગાંડા", "li": "લિંબૂર્ગિશ", "lkt": "લાકોટા", "ln": "લિંગાલા", "lo": "લાઓ", "lol": "મોંગો", "lou": "લ્યુઇસિયાના ક્રેઓલ", "loz": "લોઝી", "lrc": "ઉત્તરી લુરી", "lt": "લિથુઆનિયન", "lu": "લૂબા-કટાંગા", "lua": "લૂબા-લુલુઆ", "lui": "લુઇસેનો", "lun": "લુન્ડા", "luo": "લ્યુઓ", "lus": "મિઝો", "luy": "લુઈયા", "lv": "લાતવિયન", "mad": "માદુરીસ", "mag": "મગહી", "mai": "મૈથિલી", "mak": "મકાસર", "man": "મન્ડિન્ગો", "mas": "મસાઇ", "mdf": "મોક્ષ", "mdr": "મંદાર", "men": "મેન્ડે", "mer": "મેરુ", "mfe": "મોરીસ્યેન", "mg": "મલાગસી", "mga": "મધ્ય આઈરિશ", "mgh": "માખુવા-મીટ્ટુ", "mgo": "મેતા", "mh": "માર્શલીઝ", "mi": "માઓરી", "mic": "મિકમેક", "min": "મિનાંગ્કાબાઉ", "mk": "મેસેડોનિયન", "ml": "મલયાલમ", "mn": "મોંગોલિયન", "mnc": "માન્ચુ", "mni": "મણિપુરી", "moh": "મોહૌક", "mos": "મોસ્સી", "mr": "મરાઠી", "mrj": "પશ્ચિમી મારી", "ms": "મલય", "mt": "માલ્ટિઝ", "mua": "મુનડાન્ગ", "mus": "ક્રિક", "mwl": "મિરાંડી", "mwr": "મારવાડી", "my": "બર્મીઝ", "myv": "એર્ઝયા", "mzn": "મઝાન્દેરાની", "na": "નાઉરૂ", "nap": "નેપોલિટાન", "naq": "નમા", "nb": "નોર્વેજિયન બોકમાલ", "nd": "ઉત્તર દેબેલ", "nds": "લો જર્મન", "nds-NL": "લો સેક્સોન", "ne": "નેપાળી", "new": "નેવારી", "ng": "ડોન્ગા", "nia": "નિયાસ", "niu": "નિયુઆન", "nl": "ડચ", "nl-BE": "ફ્લેમિશ", "nmg": "ક્વાસિઓ", "nn": "નોર્વેજિયન નાયનૉર્સ્ક", "nnh": "નીએમબુન", "no": "નૉર્વેજીયન", "nog": "નોગાઇ", "non": "જૂની નોર્સ", "nqo": "એન’કો", "nr": "દક્ષિણ દેબેલ", "nso": "ઉત્તરી સોથો", "nus": "નુએર", "nv": "નાવાજો", "nwc": "પરંપરાગત નેવારી", "ny": "ન્યાન્જા", "nym": "ન્યામવેઝી", "nyn": "ન્યાનકોલ", "nyo": "ન્યોરો", "nzi": "ન્ઝિમા", "oc": "ઓક્સિટન", "oj": "ઓજિબ્વા", "om": "ઓરોમો", "or": "ઉડિયા", "os": "ઓસ્સેટિક", "osa": "ઓસેજ", "ota": "ઓટોમાન તુર્કિશ", "pa": "પંજાબી", "pag": "પંગાસીનાન", "pal": "પહલવી", "pam": "પમ્પાન્ગા", "pap": "પાપિયામેન્ટો", "pau": "પલાઉઆન", "pcm": "નાઇજેરિયન પીજીન", "peo": "જૂની ફારસી", "phn": "ફોનિશિયન", "pi": "પાલી", "pl": "પોલીશ", "pon": "પોહપિએન", "prg": "પ્રુસ્સીયન", "pro": "જુની પ્રોવેન્સલ", "ps": "પશ્તો", "pt": "પોર્ટુગીઝ", "pt-BR": "બ્રાઝિલીયન પોર્ટુગીઝ", "pt-PT": "યુરોપિયન પોર્ટુગીઝ", "qu": "ક્વેચુઆ", "quc": "કિચે", "raj": "રાજસ્થાની", "rap": "રાપાનુઇ", "rar": "રારોટોંગન", "rm": "રોમાન્શ", "rn": "રૂન્દી", "ro": "રોમાનિયન", "ro-MD": "મોલડાવિયન", "rof": "રોમ્બો", "rom": "રોમાની", "root": "રૂટ", "ru": "રશિયન", "rup": "અરોમેનિયન", "rw": "કિન્યારવાન્ડા", "rwk": "રવા", "sa": "સંસ્કૃત", "sad": "સોંડવે", "sah": "સખા", "sam": "સામરિટાન અરેમિક", "saq": "સમ્બુરુ", "sas": "સાસાક", "sat": "સંતાલી", "sba": "ન્ગામ્બેય", "sbp": "સાંગુ", "sc": "સાર્દિનિયન", "scn": "સિસિલિયાન", "sco": "સ્કોટ્સ", "sd": "સિંધી", "sdh": "સર્ઘન કુર્દીશ", "se": "ઉત્તરી સામી", "seh": "સેના", "sel": "સેલ્કપ", "ses": "કોયરાબોરો સેન્ની", "sg": "સાંગો", "sga": "જૂની આયરિશ", "sh": "સર્બો-ક્રોએશિયન", "shi": "તેશીલહિટ", "shn": "શેન", "si": "સિંહાલી", "sid": "સિદામો", "sk": "સ્લોવૅક", "sl": "સ્લોવેનિયન", "sm": "સામોન", "sma": "દક્ષિણી સામી", "smj": "લુલે સામી", "smn": "ઇનારી સામી", "sms": "સ્કોલ્ટ સામી", "sn": "શોના", "snk": "સોનિન્કે", "so": "સોમાલી", "sog": "સોગ્ડિએન", "sq": "અલ્બેનિયન", "sr": "સર્બિયન", "srn": "સ્રાનન ટોન્ગો", "srr": "સેરેર", "ss": "સ્વાતી", "ssy": "સાહો", "st": "દક્ષિણ સોથો", "su": "સંડેનીઝ", "suk": "સુકુમા", "sus": "સુસુ", "sux": "સુમેરિયન", "sv": "સ્વીડિશ", "sw": "સ્વાહિલી", "sw-CD": "કોંગો સ્વાહિલી", "swb": "કોમોરિયન", "syc": "પરંપરાગત સિરિએક", "syr": "સિરિએક", "ta": "તમિલ", "tcy": "તુલુ", "te": "તેલુગુ", "tem": "ટિમ્ને", "teo": "તેસો", "ter": "તેરેનો", "tet": "તેતુમ", "tg": "તાજીક", "th": "થાઈ", "ti": "ટાઇગ્રિનિયા", "tig": "ટાઇગ્રે", "tiv": "તિવ", "tk": "તુર્કમેન", "tkl": "તોકેલાઉ", "tl": "ટાગાલોગ", "tlh": "ક્લિન્ગોન", "tli": "ક્લીન્ગકિટ", "tmh": "તામાશેખ", "tn": "ત્સ્વાના", "to": "ટોંગાન", "tog": "ન્યાસા ટોન્ગા", "tpi": "ટોક પિસિન", "tr": "ટર્કિશ", "trv": "ટારોકો", "ts": "સોંગા", "tsi": "સિમ્શિયન", "tt": "તતાર", "ttt": "મુસ્લિમ તાટ", "tum": "તુમ્બુકા", "tvl": "તુવાલુ", "tw": "ટ્વાઇ", "twq": "તસાવાક", "ty": "તાહિતિયન", "tyv": "ટુવીનિયન", "tzm": "સેન્ટ્રલ એટલાસ તામાઝિટ", "udm": "ઉદમુર્ત", "ug": "ઉઇગુર", "uga": "યુગેરિટિક", "uk": "યુક્રેનિયન", "umb": "ઉમ્બુન્ડૂ", "ur": "ઉર્દૂ", "uz": "ઉઝ્બેક", "vai": "વાઇ", "ve": "વેન્દા", "vi": "વિયેતનામીસ", "vo": "વોલાપુક", "vot": "વોટિક", "vun": "વુન્જો", "wa": "વાલૂન", "wae": "વેલ્સેર", "wal": "વોલાયટ્ટા", "war": "વારેય", "was": "વાશો", "wbp": "વાર્લ્પીરી", "wo": "વોલોફ", "xal": "કાલ્મિક", "xh": "ખોસા", "xog": "સોગા", "yao": "યાઓ", "yap": "યાપીસ", "yav": "યાન્ગબેન", "ybb": "યેમ્બા", "yi": "યિદ્દિશ", "yo": "યોરૂબા", "yue": "કેંટોનીઝ", "za": "ઝુઆગ", "zap": "ઝેપોટેક", "zbl": "બ્લિસિમ્બોલ્સ", "zen": "ઝેનાગા", "zgh": "માનક મોરોક્કન તામાઝિટ", "zh": "ચાઇનીઝ", "zh-Hans": "સરળીકૃત ચાઇનીઝ", "zh-Hant": "પારંપરિક ચાઇનીઝ", "zu": "ઝુલુ", "zun": "ઝૂની", "zza": "ઝાઝા"}}, + "he": {"rtl": true, "languageNames": {"aa": "אפארית", "ab": "אבחזית", "ace": "אכינזית", "ach": "אקצ׳ולי", "ada": "אדנמה", "ady": "אדיגית", "ae": "אבסטן", "af": "אפריקאנס", "afh": "אפריהילי", "agq": "אע׳ם", "ain": "אינו", "ak": "אקאן", "akk": "אכדית", "ale": "אלאוט", "alt": "אלטאי דרומית", "am": "אמהרית", "an": "אראגונית", "ang": "אנגלית עתיקה", "anp": "אנג׳יקה", "ar": "ערבית", "ar-001": "ערבית ספרותית", "arc": "ארמית", "arn": "אראוקנית", "arp": "אראפהו", "ars": "ערבית - נג׳ד", "arw": "ארוואק", "as": "אסאמית", "asa": "אסו", "ast": "אסטורית", "av": "אווארית", "awa": "אוואדית", "ay": "איימארית", "az": "אזרית", "ba": "בשקירית", "bal": "באלוצ׳י", "ban": "באלינזית", "bar": "בווארית", "bas": "בסאא", "bax": "במום", "bbj": "גומאלה", "be": "בלארוסית", "bej": "בז׳ה", "bem": "במבה", "bez": "בנה", "bfd": "באפוט", "bg": "בולגרית", "bgn": "באלוצ׳י מערבית", "bho": "בוג׳פורי", "bi": "ביסלמה", "bik": "ביקול", "bin": "ביני", "bkm": "קום", "bla": "סיקסיקה", "bm": "במבארה", "bn": "בנגלית", "bo": "טיבטית", "br": "ברטונית", "bra": "בראג׳", "brx": "בודו", "bs": "בוסנית", "bss": "אקוסה", "bua": "בוריאט", "bug": "בוגינזית", "bum": "בולו", "byn": "בלין", "byv": "מדומבה", "ca": "קטלאנית", "cad": "קאדו", "car": "קאריב", "cay": "קאיוגה", "cch": "אטסם", "ccp": "צ׳אקמה", "ce": "צ׳צ׳נית", "ceb": "סבואנו", "cgg": "צ׳יגה", "ch": "צ׳מורו", "chb": "צ׳יבצ׳ה", "chg": "צ׳אגאטאי", "chk": "צ׳וקסה", "chm": "מארי", "chn": "ניב צ׳ינוק", "cho": "צ׳וקטאו", "chp": "צ׳יפוויאן", "chr": "צ׳רוקי", "chy": "שאיין", "ckb": "כורדית סוראנית", "co": "קורסיקנית", "cop": "קופטית", "cr": "קרי", "crh": "טטרית של קרים", "crs": "קריאולית (סיישל)", "cs": "צ׳כית", "csb": "קשובית", "cu": "סלאבית כנסייתית עתיקה", "cv": "צ׳ובאש", "cy": "וולשית", "da": "דנית", "dak": "דקוטה", "dar": "דרגווה", "dav": "טאיטה", "de": "גרמנית", "de-AT": "גרמנית (אוסטריה)", "de-CH": "גרמנית (שוויץ)", "del": "דלאוור", "den": "סלאבית", "dgr": "דוגריב", "din": "דינקה", "dje": "זארמה", "doi": "דוגרי", "dsb": "סורבית תחתית", "dua": "דואלה", "dum": "הולנדית תיכונה", "dv": "דיבהי", "dyo": "ג׳ולה פונית", "dyu": "דיולה", "dz": "דזונקה", "dzg": "דזאנגה", "ebu": "אמבו", "ee": "אווה", "efi": "אפיק", "egy": "מצרית עתיקה", "eka": "אקיוק", "el": "יוונית", "elx": "עילמית", "en": "אנגלית", "en-AU": "אנגלית (אוסטרליה)", "en-CA": "אנגלית (קנדה)", "en-GB": "אנגלית (בריטניה)", "en-US": "אנגלית (ארצות הברית)", "enm": "אנגלית תיכונה", "eo": "אספרנטו", "es": "ספרדית", "es-419": "ספרדית (אמריקה הלטינית)", "es-ES": "ספרדית (ספרד)", "es-MX": "ספרדית (מקסיקו)", "et": "אסטונית", "eu": "בסקית", "ewo": "אוונדו", "fa": "פרסית", "fan": "פנג", "fat": "פאנטי", "ff": "פולה", "fi": "פינית", "fil": "פיליפינית", "fj": "פיג׳ית", "fo": "פארואזית", "fon": "פון", "fr": "צרפתית", "fr-CA": "צרפתית (קנדה)", "fr-CH": "צרפתית (שוויץ)", "frc": "צרפתית קייג׳ונית", "frm": "צרפתית תיכונה", "fro": "צרפתית עתיקה", "frr": "פריזית צפונית", "frs": "פריזית מזרחית", "fur": "פריולית", "fy": "פריזית מערבית", "ga": "אירית", "gaa": "גא", "gag": "גגאוזית", "gan": "סינית גאן", "gay": "גאיו", "gba": "גבאיה", "gd": "גאלית סקוטית", "gez": "געז", "gil": "קיריבטית", "gl": "גליציאנית", "gmh": "גרמנית בינונית-גבוהה", "gn": "גוארני", "goh": "גרמנית עתיקה גבוהה", "gon": "גונדי", "gor": "גורונטאלו", "got": "גותית", "grb": "גרבו", "grc": "יוונית עתיקה", "gsw": "גרמנית שוויצרית", "gu": "גוג׳ארטי", "guz": "גוסי", "gv": "מאנית", "gwi": "גוויצ׳ן", "ha": "האוסה", "hai": "האידה", "hak": "סינית האקה", "haw": "הוואית", "he": "עברית", "hi": "הינדי", "hil": "היליגאינון", "hit": "חתית", "hmn": "המונג", "ho": "הירי מוטו", "hr": "קרואטית", "hsb": "סורבית גבוהה", "hsn": "סינית שיאנג", "ht": "קריאולית (האיטי)", "hu": "הונגרית", "hup": "הופה", "hy": "ארמנית", "hz": "הררו", "ia": "‏אינטרלינגואה", "iba": "איבאן", "ibb": "איביביו", "id": "אינדונזית", "ie": "אינטרלינגה", "ig": "איגבו", "ii": "סצ׳ואן יי", "ik": "אינופיאק", "ilo": "אילוקו", "inh": "אינגושית", "io": "אידו", "is": "איסלנדית", "it": "איטלקית", "iu": "אינוקטיטוט", "ja": "יפנית", "jbo": "לוז׳באן", "jgo": "נגומבה", "jmc": "מאקאמה", "jpr": "פרסית יהודית", "jrb": "ערבית יהודית", "jv": "יאוואית", "ka": "גאורגית", "kaa": "קארא-קלפאק", "kab": "קבילה", "kac": "קצ׳ין", "kaj": "ג׳ו", "kam": "קמבה", "kaw": "קאווי", "kbd": "קברדית", "kbl": "קנמבו", "kcg": "טיאפ", "kde": "מקונדה", "kea": "קאבוורדיאנו", "kfo": "קורו", "kg": "קונגו", "kha": "קהאסי", "kho": "קוטאנזית", "khq": "קוירה צ׳יני", "ki": "קיקויו", "kj": "קואניאמה", "kk": "קזחית", "kkj": "קאקו", "kl": "גרינלנדית", "kln": "קלנג׳ין", "km": "חמרית", "kmb": "קימבונדו", "kn": "קנאדה", "ko": "קוריאנית", "koi": "קומי-פרמיאקית", "kok": "קונקאני", "kos": "קוסראיאן", "kpe": "קפלה", "kr": "קאנורי", "krc": "קראצ׳י-בלקר", "krl": "קארלית", "kru": "קורוק", "ks": "קשמירית", "ksb": "שמבאלה", "ksf": "באפיה", "ksh": "קולוניאן", "ku": "כורדית", "kum": "קומיקית", "kut": "קוטנאי", "kv": "קומי", "kw": "קורנית", "ky": "קירגיזית", "la": "לטינית", "lad": "לדינו", "lag": "לאנגי", "lah": "לנדה", "lam": "למבה", "lb": "לוקסמבורגית", "lez": "לזגית", "lg": "גאנדה", "li": "לימבורגית", "lkt": "לקוטה", "ln": "לינגלה", "lo": "לאו", "lol": "מונגו", "lou": "קריאולית לואיזיאנית", "loz": "לוזית", "lrc": "לורית צפונית", "lt": "ליטאית", "lu": "לובה-קטנגה", "lua": "לובה-לולואה", "lui": "לויסנו", "lun": "לונדה", "luo": "לואו", "lus": "מיזו", "luy": "לויה", "lv": "לטבית", "mad": "מדורזית", "maf": "מאפאה", "mag": "מאגאהית", "mai": "מאיטילית", "mak": "מקסאר", "man": "מנדינגו", "mas": "מסאית", "mde": "מאבא", "mdf": "מוקשה", "mdr": "מנדאר", "men": "מנדה", "mer": "מרו", "mfe": "קריאולית מאוריציאנית", "mg": "מלגשית", "mga": "אירית תיכונה", "mgh": "מאקוואה מטו", "mgo": "מטא", "mh": "מרשלית", "mi": "מאורית", "mic": "מיקמק", "min": "מיננגקבאו", "mk": "מקדונית", "ml": "מליאלאם", "mn": "מונגולית", "mnc": "מנצ׳ו", "mni": "מניפורית", "moh": "מוהוק", "mos": "מוסי", "mr": "מראטהי", "ms": "מלאית", "mt": "מלטית", "mua": "מונדאנג", "mus": "קריק", "mwl": "מירנדזית", "mwr": "מרווארי", "my": "בורמזית", "mye": "מאיין", "myv": "ארזיה", "mzn": "מאזאנדראני", "na": "נאורית", "nan": "סינית מין נאן", "nap": "נפוליטנית", "naq": "נאמה", "nb": "נורווגית ספרותית", "nd": "נדבלה צפונית", "nds": "גרמנית תחתית", "nds-NL": "סקסונית תחתית", "ne": "נפאלית", "new": "נווארי", "ng": "נדונגה", "nia": "ניאס", "niu": "ניואן", "nl": "הולנדית", "nl-BE": "פלמית", "nmg": "קוואסיו", "nn": "נורווגית חדשה", "nnh": "נגיאמבון", "no": "נורווגית", "nog": "נוגאי", "non": "‏נורדית עתיקה", "nqo": "נ׳קו", "nr": "נדבלה דרומית", "nso": "סותו צפונית", "nus": "נואר", "nv": "נאוואחו", "nwc": "נווארית קלאסית", "ny": "ניאנג׳ה", "nym": "ניאמווזי", "nyn": "ניאנקולה", "nyo": "ניורו", "nzi": "נזימה", "oc": "אוקסיטנית", "oj": "אוג׳יבווה", "om": "אורומו", "or": "אורייה", "os": "אוסטית", "osa": "אוסג׳", "ota": "טורקית עות׳מנית", "pa": "פנג׳אבי", "pag": "פנגסינאן", "pal": "פלאבי", "pam": "פמפאניה", "pap": "פפיאמנטו", "pau": "פלוואן", "pcm": "ניגרית פידג׳ית", "peo": "פרסית עתיקה", "phn": "פיניקית", "pi": "פאלי", "pl": "פולנית", "pon": "פונפיאן", "prg": "פרוסית", "pro": "פרובנסאל עתיקה", "ps": "פאשטו", "pt": "פורטוגזית", "pt-BR": "פורטוגזית (ברזיל)", "pt-PT": "פורטוגזית (פורטוגל)", "qu": "קצ׳ואה", "quc": "קיצ׳ה", "raj": "ראג׳סטאני", "rap": "רפאנוי", "rar": "ררוטונגאן", "rm": "רומאנש", "rn": "קירונדי", "ro": "רומנית", "ro-MD": "מולדבית", "rof": "רומבו", "rom": "רומאני", "root": "רוט", "ru": "רוסית", "rup": "ארומנית", "rw": "קנירואנדית", "rwk": "ראווה", "sa": "סנסקריט", "sad": "סנדאווה", "sah": "סאחה", "sam": "ארמית שומרונית", "saq": "סמבורו", "sas": "סאסק", "sat": "סאנטאלי", "sba": "נגמבאי", "sbp": "סאנגו", "sc": "סרדינית", "scn": "סיציליאנית", "sco": "סקוטית", "sd": "סינדהית", "sdh": "כורדית דרומית", "se": "סמי צפונית", "see": "סנקה", "seh": "סנה", "sel": "סלקופ", "ses": "קויראבורו סני", "sg": "סנגו", "sga": "אירית עתיקה", "sh": "סרבו-קרואטית", "shi": "שילה", "shn": "שאן", "shu": "ערבית צ׳אדית", "si": "סינהלה", "sid": "סידאמו", "sk": "סלובקית", "sl": "סלובנית", "sm": "סמואית", "sma": "סאמי דרומית", "smj": "לולה סאמי", "smn": "אינארי סאמי", "sms": "סקולט סאמי", "sn": "שונה", "snk": "סונינקה", "so": "סומלית", "sog": "סוגדיאן", "sq": "אלבנית", "sr": "סרבית", "srn": "סרנאן טונגו", "srr": "סרר", "ss": "סאווזי", "ssy": "סאהו", "st": "סותו דרומית", "su": "סונדנזית", "suk": "סוקומה", "sus": "סוסו", "sux": "שומרית", "sv": "שוודית", "sw": "סווהילי", "sw-CD": "סווהילי קונגו", "swb": "קומורית", "syc": "סירית קלאסית", "syr": "סורית", "ta": "טמילית", "te": "טלוגו", "tem": "טימנה", "teo": "טסו", "ter": "טרנו", "tet": "טטום", "tg": "טג׳יקית", "th": "תאית", "ti": "תיגרינית", "tig": "טיגרית", "tiv": "טיב", "tk": "טורקמנית", "tkl": "טוקלאו", "tl": "טאגאלוג", "tlh": "קלינגון", "tli": "טלינגיט", "tmh": "טמאשק", "tn": "סוואנה", "to": "טונגאית", "tog": "ניאסה טונגה", "tpi": "טוק פיסין", "tr": "טורקית", "trv": "טרוקו", "ts": "טסונגה", "tsi": "טסימשיאן", "tt": "טטרית", "tum": "טומבוקה", "tvl": "טובאלו", "tw": "טווי", "twq": "טסוואק", "ty": "טהיטית", "tyv": "טובינית", "tzm": "תמאזיגת של מרכז מרוקו", "udm": "אודמורט", "ug": "אויגור", "uga": "אוגריתית", "uk": "אוקראינית", "umb": "אומבונדו", "ur": "אורדו", "uz": "אוזבקית", "vai": "וואי", "ve": "וונדה", "vi": "ויאטנמית", "vo": "‏וולאפיק", "vot": "ווטיק", "vun": "וונג׳ו", "wa": "ולונית", "wae": "וואלסר", "wal": "ווליאטה", "war": "ווראי", "was": "וואשו", "wbp": "וורלפירי", "wo": "וולוף", "wuu": "סינית וו", "xal": "קלמיקית", "xh": "קוסה", "xog": "סוגה", "yao": "יאו", "yap": "יאפזית", "yav": "יאנגבן", "ybb": "ימבה", "yi": "יידיש", "yo": "יורובה", "yue": "קנטונזית", "za": "זואנג", "zap": "זאפוטק", "zbl": "בליסימבולס", "zen": "זנאגה", "zgh": "תמזיע׳ת מרוקאית תקנית", "zh": "סינית", "zh-Hans": "סינית פשוטה", "zh-Hant": "סינית מסורתית", "zu": "זולו", "zun": "זוני", "zza": "זאזא"}}, + "hi": {"rtl": false, "languageNames": {"aa": "अफ़ार", "ab": "अब्ख़ाज़ियन", "ace": "अचाइनीस", "ach": "अकोली", "ada": "अदान्गमे", "ady": "अदिघे", "ae": "अवस्ताई", "af": "अफ़्रीकी", "afh": "अफ्रिहिली", "agq": "अग्हेम", "ain": "ऐनू", "ak": "अकन", "akk": "अक्कादी", "ale": "अलेउत", "alt": "दक्षिणी अल्ताई", "am": "अम्हेरी", "an": "अर्गोनी", "ang": "पुरानी अंग्रेज़ी", "anp": "अंगिका", "ar": "अरबी", "ar-001": "आधुनिक मानक अरबी", "arc": "ऐरेमेक", "arn": "मापूचे", "arp": "अरापाहो", "ars": "नज्दी अरबी", "arw": "अरावक", "as": "असमिया", "asa": "असु", "ast": "अस्तुरियन", "av": "अवेरिक", "awa": "अवधी", "ay": "आयमारा", "az": "अज़रबैजानी", "ba": "बशख़िर", "bal": "बलूची", "ban": "बालिनीस", "bas": "बसा", "be": "बेलारूसी", "bej": "बेजा", "bem": "बेम्बा", "bez": "बेना", "bg": "बुल्गारियाई", "bgn": "पश्चिमी बलोची", "bho": "भोजपुरी", "bi": "बिस्लामा", "bik": "बिकोल", "bin": "बिनी", "bla": "सिक्सिका", "bm": "बाम्बारा", "bn": "बंगाली", "bo": "तिब्बती", "br": "ब्रेटन", "bra": "ब्रज", "brx": "बोडो", "bs": "बोस्नियाई", "bua": "बुरियात", "bug": "बगिनीस", "byn": "ब्लिन", "ca": "कातालान", "cad": "कैड्डो", "car": "कैरिब", "cch": "अत्सम", "ce": "चेचन", "ceb": "सिबुआनो", "cgg": "शिगा", "ch": "कमोरो", "chb": "चिब्चा", "chg": "छगाताई", "chk": "चूकीस", "chm": "मारी", "chn": "चिनूक जारगॉन", "cho": "चोक्तौ", "chp": "शिपेव्यान", "chr": "चेरोकी", "chy": "शेयेन्न", "ckb": "सोरानी कुर्दिश", "co": "कोर्सीकन", "cop": "कॉप्टिक", "cr": "क्री", "crh": "क्रीमीन तुर्की", "crs": "सेसेल्वा क्रिओल फ्रेंच", "cs": "चेक", "csb": "काशुबियन", "cu": "चर्च साल्विक", "cv": "चूवाश", "cy": "वेल्श", "da": "डेनिश", "dak": "दाकोता", "dar": "दार्गवा", "dav": "तैता", "de": "जर्मन", "de-AT": "ऑस्ट्रियाई जर्मन", "de-CH": "स्विस उच्च जर्मन", "del": "डिलैवेयर", "den": "स्लेव", "dgr": "डोग्रिब", "din": "दिन्का", "dje": "झार्मा", "doi": "डोग्री", "dsb": "निचला सॉर्बियन", "dua": "दुआला", "dum": "मध्यकालीन पुर्तगाली", "dv": "दिवेही", "dyo": "जोला-फोंई", "dyu": "ड्युला", "dz": "ज़ोन्गखा", "dzg": "दज़ागा", "ebu": "एम्बु", "ee": "ईवे", "efi": "एफिक", "egy": "प्राचीन मिस्री", "eka": "एकाजुक", "el": "यूनानी", "elx": "एलामाइट", "en": "अंग्रेज़ी", "en-AU": "ऑस्ट्रेलियाई अंग्रेज़ी", "en-CA": "कनाडाई अंग्रेज़ी", "en-GB": "ब्रिटिश अंग्रेज़ी", "en-US": "अमेरिकी अंग्रेज़ी", "enm": "मध्यकालीन अंग्रेज़ी", "eo": "एस्पेरेंतो", "es": "स्पेनी", "es-419": "लैटिन अमेरिकी स्पेनिश", "es-ES": "यूरोपीय स्पेनिश", "es-MX": "मैक्सिकन स्पेनिश", "et": "एस्टोनियाई", "eu": "बास्क", "ewo": "इवोन्डो", "fa": "फ़ारसी", "fan": "फैन्ग", "fat": "फन्टी", "ff": "फुलाह", "fi": "फ़िनिश", "fil": "फ़िलिपीनो", "fj": "फिजियन", "fo": "फ़ैरोइज़", "fon": "फॉन", "fr": "फ़्रेंच", "fr-CA": "कनाडाई फ़्रेंच", "fr-CH": "स्विस फ़्रेंच", "frc": "केजन फ़्रेंच", "frm": "मध्यकालीन फ़्रांसीसी", "fro": "पुरातन फ़्रांसीसी", "frr": "उत्तरी फ़्रीसियाई", "frs": "पूर्वी फ़्रीसियाई", "fur": "फ्रीयुलीयान", "fy": "पश्चिमी फ़्रिसियाई", "ga": "आयरिश", "gaa": "गा", "gag": "गागौज़", "gay": "गायो", "gba": "ग्बाया", "gd": "स्कॉटिश गाएलिक", "gez": "गीज़", "gil": "गिल्बरतीस", "gl": "गैलिशियन", "gmh": "मध्यकालीन हाइ जर्मन", "gn": "गुआरानी", "goh": "पुरातन हाइ जर्मन", "gon": "गाँडी", "gor": "गोरोन्तालो", "got": "गॉथिक", "grb": "ग्रेबो", "grc": "प्राचीन यूनानी", "gsw": "स्विस जर्मन", "gu": "गुजराती", "guz": "गुसी", "gv": "मैंक्स", "gwi": "ग्विचइन", "ha": "हौसा", "hai": "हैडा", "haw": "हवाई", "he": "हिब्रू", "hi": "हिन्दी", "hil": "हिलिगेनन", "hit": "हिताइत", "hmn": "ह्मॉंग", "ho": "हिरी मोटू", "hr": "क्रोएशियाई", "hsb": "ऊपरी सॉर्बियन", "ht": "हैतियाई", "hu": "हंगेरियाई", "hup": "हूपा", "hy": "आर्मेनियाई", "hz": "हरैरो", "ia": "इंटरलिंगुआ", "iba": "इबान", "ibb": "इबिबियो", "id": "इंडोनेशियाई", "ie": "ईन्टरलिंगुइ", "ig": "ईग्बो", "ii": "सिचुआन यी", "ik": "इनुपियाक्", "ilo": "इलोको", "inh": "इंगुश", "io": "इडौ", "is": "आइसलैंडिक", "it": "इतालवी", "iu": "इनूकीटूत्", "ja": "जापानी", "jbo": "लोज्बान", "jgo": "नगोंबा", "jmc": "मैकहैमे", "jpr": "जुदेओ-पर्शियन", "jrb": "जुदेओ-अरेबिक", "jv": "जावानीज़", "ka": "जॉर्जियाई", "kaa": "कारा-कल्पक", "kab": "कबाइल", "kac": "काचिन", "kaj": "ज्जु", "kam": "कम्बा", "kaw": "कावी", "kbd": "कबार्डियन", "kcg": "त्याप", "kde": "मैकोंड", "kea": "काबुवेर्दियानु", "kfo": "कोरो", "kg": "कोंगो", "kha": "खासी", "kho": "खोतानीस", "khq": "कोयरा चीनी", "ki": "किकुयू", "kj": "क्वान्यामा", "kk": "कज़ाख़", "kkj": "काको", "kl": "कलालीसुत", "kln": "कलेंजिन", "km": "खमेर", "kmb": "किम्बन्दु", "kn": "कन्नड़", "ko": "कोरियाई", "koi": "कोमी-पर्मयाक", "kok": "कोंकणी", "kos": "कोसरैन", "kpe": "क्पेल", "kr": "कनुरी", "krc": "कराचय-बल्कार", "krl": "करेलियन", "kru": "कुरूख", "ks": "कश्मीरी", "ksb": "शम्बाला", "ksf": "बफिआ", "ksh": "कोलोनियाई", "ku": "कुर्दिश", "kum": "कुमीक", "kut": "क्यूतनाई", "kv": "कोमी", "kw": "कोर्निश", "ky": "किर्गीज़", "la": "लैटिन", "lad": "लादीनो", "lag": "लांगि", "lah": "लाह्न्डा", "lam": "लाम्बा", "lb": "लग्ज़मबर्गी", "lez": "लेज़्घीयन", "lg": "गांडा", "li": "लिंबर्गिश", "lkt": "लैकोटा", "ln": "लिंगाला", "lo": "लाओ", "lol": "मोंगो", "lou": "लुईज़ियाना क्रियोल", "loz": "लोज़ी", "lrc": "उत्तरी लूरी", "lt": "लिथुआनियाई", "lu": "ल्यूबा-कटांगा", "lua": "ल्यूबा-लुलुआ", "lui": "लुइसेनो", "lun": "लुन्डा", "luo": "ल्युओ", "lus": "मिज़ो", "luy": "ल्युईआ", "lv": "लातवियाई", "mad": "मादुरीस", "mag": "मगही", "mai": "मैथिली", "mak": "मकासर", "man": "मन्डिन्गो", "mas": "मसाई", "mdf": "मोक्ष", "mdr": "मंदार", "men": "मेन्डे", "mer": "मेरु", "mfe": "मोरीस्येन", "mg": "मालागासी", "mga": "मध्यकालीन आइरिश", "mgh": "मैखुवा-मीट्टो", "mgo": "मेटा", "mh": "मार्शलीज़", "mi": "माओरी", "mic": "मिकमैक", "min": "मिनांग्काबाउ", "mk": "मकदूनियाई", "ml": "मलयालम", "mn": "मंगोलियाई", "mnc": "मन्चु", "mni": "मणिपुरी", "moh": "मोहौक", "mos": "मोस्सी", "mr": "मराठी", "ms": "मलय", "mt": "माल्टीज़", "mua": "मुंडैंग", "mus": "क्रीक", "mwl": "मिरांडी", "mwr": "मारवाड़ी", "my": "बर्मीज़", "myv": "एर्ज़या", "mzn": "माज़न्देरानी", "na": "नाउरू", "nap": "नीपोलिटन", "naq": "नामा", "nb": "नॉर्वेजियाई बोकमाल", "nd": "उत्तरी देबेल", "nds": "निचला जर्मन", "nds-NL": "निचली सैक्सन", "ne": "नेपाली", "new": "नेवाड़ी", "ng": "डोन्गा", "nia": "नियास", "niu": "नियुआन", "nl": "डच", "nl-BE": "फ़्लेमिश", "nmg": "क्वासिओ", "nn": "नॉर्वेजियाई नॉयनॉर्स्क", "nnh": "गैम्बू", "no": "नॉर्वेजियाई", "nog": "नोगाई", "non": "पुराना नॉर्स", "nqo": "एन्को", "nr": "दक्षिण देबेल", "nso": "उत्तरी सोथो", "nus": "नुएर", "nv": "नावाजो", "nwc": "पारम्परिक नेवारी", "ny": "न्यानजा", "nym": "न्यामवेज़ी", "nyn": "न्यानकोल", "nyo": "न्योरो", "nzi": "न्ज़ीमा", "oc": "ओसीटान", "oj": "ओजिब्वा", "om": "ओरोमो", "or": "उड़िया", "os": "ओस्सेटिक", "osa": "ओसेज", "ota": "ओटोमान तुर्किश", "pa": "पंजाबी", "pag": "पंगासीनान", "pal": "पाह्लावी", "pam": "पाम्पान्गा", "pap": "पापियामेन्टो", "pau": "पलोउआन", "pcm": "नाइजीरियाई पिडगिन", "peo": "पुरानी फारसी", "phn": "फोएनिशियन", "pi": "पाली", "pl": "पोलिश", "pon": "पोह्नपिएन", "prg": "प्रुशियाई", "pro": "पुरानी प्रोवेन्सल", "ps": "पश्तो", "pt": "पुर्तगाली", "pt-BR": "ब्राज़ीली पुर्तगाली", "pt-PT": "यूरोपीय पुर्तगाली", "qu": "क्वेचुआ", "quc": "किश", "raj": "राजस्थानी", "rap": "रापानुई", "rar": "रारोतोंगन", "rm": "रोमान्श", "rn": "रुन्दी", "ro": "रोमानियाई", "ro-MD": "मोलडावियन", "rof": "रोम्बो", "rom": "रोमानी", "root": "रूट", "ru": "रूसी", "rup": "अरोमानियन", "rw": "किन्यारवांडा", "rwk": "रवा", "sa": "संस्कृत", "sad": "सन्डावे", "sah": "याकूत", "sam": "सामैरिटन अरैमिक", "saq": "सैम्बुरु", "sas": "सासाक", "sat": "संथाली", "sba": "न्गाम्बे", "sbp": "सैंगु", "sc": "सार्दिनियन", "scn": "सिसिलियन", "sco": "स्कॉट्स", "sd": "सिंधी", "sdh": "दक्षिणी कार्डिश", "se": "नॉर्दन सामी", "seh": "सेना", "sel": "सेल्कप", "ses": "कोयराबोरो सेन्नी", "sg": "सांगो", "sga": "पुरानी आइरिश", "sh": "सेर्बो-क्रोएशियाई", "shi": "तैचेल्हित", "shn": "शैन", "si": "सिंहली", "sid": "सिदामो", "sk": "स्लोवाक", "sl": "स्लोवेनियाई", "sm": "सामोन", "sma": "दक्षिणी सामी", "smj": "ल्युल सामी", "smn": "इनारी सामी", "sms": "स्कोल्ट सामी", "sn": "शोणा", "snk": "सोनिन्के", "so": "सोमाली", "sog": "सोग्डिएन", "sq": "अल्बानियाई", "sr": "सर्बियाई", "srn": "स्रानान टॉन्गो", "srr": "सेरेर", "ss": "स्वाती", "ssy": "साहो", "st": "दक्षिणी सेसेथो", "su": "सुंडानी", "suk": "सुकुमा", "sus": "सुसु", "sux": "सुमेरियन", "sv": "स्वीडिश", "sw": "स्वाहिली", "sw-CD": "कांगो स्वाहिली", "swb": "कोमोरियन", "syc": "क्लासिकल सिरिएक", "syr": "सिरिएक", "ta": "तमिल", "te": "तेलुगू", "tem": "टिम्ने", "teo": "टेसो", "ter": "तेरेनो", "tet": "तेतुम", "tg": "ताजिक", "th": "थाई", "ti": "तिग्रीन्या", "tig": "टाइग्रे", "tiv": "तिव", "tk": "तुर्कमेन", "tkl": "तोकेलाऊ", "tl": "टैगलॉग", "tlh": "क्लिंगन", "tli": "त्लिंगित", "tmh": "तामाशेक", "tn": "सेत्स्वाना", "to": "टोंगन", "tog": "न्यासा टोन्गा", "tpi": "टोक पिसिन", "tr": "तुर्की", "trv": "तारोको", "ts": "सोंगा", "tsi": "त्सिमीशियन", "tt": "तातार", "tum": "तम्बूका", "tvl": "तुवालु", "tw": "ट्वी", "twq": "टासवाक", "ty": "ताहितियन", "tyv": "तुवीनियन", "tzm": "मध्य एटलस तमाज़ित", "udm": "उदमुर्त", "ug": "उइगर", "uga": "युगैरिटिक", "uk": "यूक्रेनियाई", "umb": "उम्बुन्डु", "ur": "उर्दू", "uz": "उज़्बेक", "vai": "वाई", "ve": "वेन्दा", "vi": "वियतनामी", "vo": "वोलापुक", "vot": "वॉटिक", "vun": "वुंजो", "wa": "वाल्लून", "wae": "वाल्सर", "wal": "वलामो", "war": "वारै", "was": "वाशो", "wbp": "वॉल्पेरी", "wo": "वोलोफ़", "wuu": "वू चीनी", "xal": "काल्मिक", "xh": "ख़ोसा", "xog": "सोगा", "yao": "याओ", "yap": "यापीस", "yav": "यांगबेन", "ybb": "येंबा", "yi": "यहूदी", "yo": "योरूबा", "yue": "कैंटोनीज़", "za": "ज़ुआंग", "zap": "ज़ेपोटेक", "zbl": "ब्लिसिम्बॉल्स", "zen": "ज़ेनान्गा", "zgh": "मानक मोरक्कन तामाज़ाइट", "zh": "चीनी", "zh-Hans": "सरलीकृत चीनी", "zh-Hant": "पारंपरिक चीनी", "zu": "ज़ुलू", "zun": "ज़ूनी", "zza": "ज़ाज़ा"}}, + "hr": {"rtl": false, "languageNames": {"aa": "afarski", "ab": "abhaski", "ace": "ačinski", "ach": "ačoli", "ada": "adangme", "ady": "adigejski", "ae": "avestički", "af": "afrikaans", "afh": "afrihili", "agq": "aghem", "ain": "ainuski", "ak": "akanski", "akk": "akadski", "ale": "aleutski", "alt": "južni altai", "am": "amharski", "an": "aragonski", "ang": "staroengleski", "anp": "angika", "ar": "arapski", "ar-001": "moderni standardni arapski", "arc": "aramejski", "arn": "mapuche", "arp": "arapaho", "ars": "najdi arapski", "arw": "aravački", "as": "asamski", "asa": "asu", "ast": "asturijski", "av": "avarski", "awa": "awadhi", "ay": "ajmarski", "az": "azerbajdžanski", "az-Arab": "južnoazerbajdžanski", "ba": "baškirski", "bal": "belučki", "ban": "balijski", "bas": "basa", "bax": "bamunski", "bbj": "ghomala", "be": "bjeloruski", "bej": "beja", "bem": "bemba", "bez": "bena", "bfd": "bafut", "bg": "bugarski", "bgn": "zapadnobaludžijski", "bho": "bhojpuri", "bi": "bislama", "bik": "bikolski", "bin": "bini", "bkm": "kom", "bla": "siksika", "bm": "bambara", "bn": "bangla", "bo": "tibetski", "br": "bretonski", "bra": "braj", "brx": "bodo", "bs": "bosanski", "bss": "akoose", "bua": "burjatski", "bug": "buginski", "bum": "bulu", "byn": "blin", "byv": "medumba", "ca": "katalonski", "cad": "caddo", "car": "karipski", "cay": "cayuga", "cch": "atsam", "ccp": "chakma", "ce": "čečenski", "ceb": "cebuano", "cgg": "chiga", "ch": "chamorro", "chb": "čibča", "chg": "čagatajski", "chk": "chuukese", "chm": "marijski", "chn": "chinook žargon", "cho": "choctaw", "chp": "chipewyan", "chr": "čerokijski", "chy": "čejenski", "ckb": "soranski kurdski", "co": "korzički", "cop": "koptski", "cr": "cree", "crh": "krimski turski", "crs": "sejšelski kreolski", "cs": "češki", "csb": "kašupski", "cu": "crkvenoslavenski", "cv": "čuvaški", "cy": "velški", "da": "danski", "dak": "dakota jezik", "dar": "dargwa", "dav": "taita", "de": "njemački", "de-AT": "austrijski njemački", "de-CH": "gornjonjemački (švicarski)", "del": "delavarski", "den": "slave", "dgr": "dogrib", "din": "dinka", "dje": "zarma", "doi": "dogri", "dsb": "donjolužički", "dua": "duala", "dum": "srednjonizozemski", "dv": "divehi", "dyo": "jola-fonyi", "dyu": "dyula", "dz": "dzongkha", "dzg": "dazaga", "ebu": "embu", "ee": "ewe", "efi": "efik", "egy": "staroegipatski", "eka": "ekajuk", "el": "grčki", "elx": "elamitski", "en": "engleski", "en-AU": "australski engleski", "en-CA": "kanadski engleski", "en-GB": "britanski engleski", "en-US": "američki engleski", "enm": "srednjoengleski", "eo": "esperanto", "es": "španjolski", "es-419": "latinoamerički španjolski", "es-ES": "europski španjolski", "es-MX": "meksički španjolski", "et": "estonski", "eu": "baskijski", "ewo": "ewondo", "fa": "perzijski", "fan": "fang", "fat": "fanti", "ff": "fula", "fi": "finski", "fil": "filipinski", "fj": "fidžijski", "fo": "ferojski", "fr": "francuski", "fr-CA": "kanadski francuski", "fr-CH": "švicarski francuski", "frc": "kajunski francuski", "frm": "srednjofrancuski", "fro": "starofrancuski", "frr": "sjevernofrizijski", "frs": "istočnofrizijski", "fur": "furlanski", "fy": "zapadnofrizijski", "ga": "irski", "gaa": "ga", "gag": "gagauski", "gan": "gan kineski", "gay": "gayo", "gba": "gbaya", "gd": "škotski gaelski", "gez": "geez", "gil": "gilbertski", "gl": "galicijski", "gmh": "srednjogornjonjemački", "gn": "gvaranski", "goh": "starovisokonjemački", "gon": "gondi", "gor": "gorontalo", "got": "gotski", "grb": "grebo", "grc": "starogrčki", "gsw": "švicarski njemački", "gu": "gudžaratski", "guz": "gusii", "gv": "manski", "gwi": "gwich’in", "ha": "hausa", "hai": "haidi", "hak": "hakka kineski", "haw": "havajski", "he": "hebrejski", "hi": "hindski", "hil": "hiligaynonski", "hit": "hetitski", "hmn": "hmong", "ho": "hiri motu", "hr": "hrvatski", "hsb": "gornjolužički", "hsn": "xiang kineski", "ht": "haićanski kreolski", "hu": "mađarski", "hup": "hupa", "hy": "armenski", "hz": "herero", "ia": "interlingua", "iba": "iban", "ibb": "ibibio", "id": "indonezijski", "ie": "interligua", "ig": "igbo", "ii": "sichuan ji", "ik": "inupiaq", "ilo": "iloko", "inh": "ingušetski", "io": "ido", "is": "islandski", "it": "talijanski", "iu": "inuktitut", "ja": "japanski", "jbo": "lojban", "jgo": "ngomba", "jmc": "machame", "jpr": "judejsko-perzijski", "jrb": "judejsko-arapski", "jv": "javanski", "ka": "gruzijski", "kaa": "kara-kalpak", "kab": "kabilski", "kac": "kačinski", "kaj": "kaje", "kam": "kamba", "kaw": "kawi", "kbd": "kabardinski", "kbl": "kanembu", "kcg": "tyap", "kde": "makonde", "kea": "zelenortski", "kfo": "koro", "kg": "kongo", "kha": "khasi", "kho": "khotanese", "khq": "koyra chiini", "ki": "kikuyu", "kj": "kuanyama", "kk": "kazaški", "kkj": "kako", "kl": "kalaallisut", "kln": "kalenjin", "km": "kmerski", "kmb": "kimbundu", "kn": "karnatački", "ko": "korejski", "koi": "komi-permski", "kok": "konkani", "kos": "naurski", "kpe": "kpelle", "kr": "kanuri", "krc": "karachay-balkar", "krl": "karelijski", "kru": "kuruški", "ks": "kašmirski", "ksb": "shambala", "ksf": "bafia", "ksh": "kelnski", "ku": "kurdski", "kum": "kumyk", "kut": "kutenai", "kv": "komi", "kw": "kornski", "ky": "kirgiski", "la": "latinski", "lad": "ladino", "lag": "langi", "lah": "lahnda", "lam": "lamba", "lb": "luksemburški", "lez": "lezgiški", "lg": "ganda", "li": "limburški", "lkt": "lakota", "ln": "lingala", "lo": "laoski", "lol": "mongo", "lou": "lujzijanski kreolski", "loz": "lozi", "lrc": "sjevernolurski", "lt": "litavski", "lu": "luba-katanga", "lua": "luba-lulua", "lui": "luiseno", "lun": "lunda", "lus": "lushai", "luy": "luyia", "lv": "latvijski", "mad": "madurski", "maf": "mafa", "mag": "magahi", "mai": "maithili", "mak": "makasar", "man": "mandingo", "mas": "masajski", "mde": "maba", "mdf": "moksha", "mdr": "mandar", "men": "mende", "mer": "meru", "mfe": "mauricijski kreolski", "mg": "malgaški", "mga": "srednjoirski", "mgh": "makhuwa-meetto", "mgo": "meta’", "mh": "maršalski", "mi": "maorski", "mic": "micmac", "min": "minangkabau", "mk": "makedonski", "ml": "malajalamski", "mn": "mongolski", "mnc": "mandžurski", "mni": "manipurski", "moh": "mohok", "mos": "mossi", "mr": "marathski", "ms": "malajski", "mt": "malteški", "mua": "mundang", "mus": "creek", "mwl": "mirandski", "mwr": "marwari", "my": "burmanski", "mye": "myene", "myv": "mordvinski", "mzn": "mazanderanski", "na": "nauru", "nan": "min nan kineski", "nap": "napolitanski", "naq": "nama", "nb": "norveški bokmål", "nd": "sjeverni ndebele", "nds": "donjonjemački", "nds-NL": "donjosaksonski", "ne": "nepalski", "new": "newari", "ng": "ndonga", "nia": "nias", "niu": "niujski", "nl": "nizozemski", "nl-BE": "flamanski", "nmg": "kwasio", "nn": "norveški nynorsk", "nnh": "ngiemboon", "no": "norveški", "nog": "nogajski", "non": "staronorveški", "nqo": "n’ko", "nr": "južni ndebele", "nso": "sjeverni sotski", "nus": "nuerski", "nv": "navajo", "nwc": "klasični newari", "ny": "njandža", "nym": "nyamwezi", "nyn": "nyankole", "nyo": "nyoro", "nzi": "nzima", "oc": "okcitanski", "oj": "ojibwa", "om": "oromski", "or": "orijski", "os": "osetski", "osa": "osage", "ota": "turski - otomanski", "pa": "pandžapski", "pag": "pangasinan", "pal": "pahlavi", "pam": "pampanga", "pap": "papiamento", "pau": "palauanski", "pcm": "nigerijski pidžin", "peo": "staroperzijski", "phn": "fenički", "pi": "pali", "pl": "poljski", "pon": "pohnpeian", "prg": "pruski", "pro": "staroprovansalski", "ps": "paštunski", "pt": "portugalski", "pt-BR": "brazilski portugalski", "pt-PT": "europski portugalski", "qu": "kečuanski", "quc": "kiče", "raj": "rajasthani", "rap": "rapa nui", "rar": "rarotonški", "rm": "retoromanski", "rn": "rundi", "ro": "rumunjski", "ro-MD": "moldavski", "rof": "rombo", "rom": "romski", "root": "korijenski", "ru": "ruski", "rup": "aromunski", "rw": "kinyarwanda", "rwk": "rwa", "sa": "sanskrtski", "sad": "sandawe", "sah": "jakutski", "sam": "samarijanski aramejski", "saq": "samburu", "sas": "sasak", "sat": "santalski", "sba": "ngambay", "sbp": "sangu", "sc": "sardski", "scn": "sicilijski", "sco": "škotski", "sd": "sindski", "sdh": "južnokurdski", "se": "sjeverni sami", "see": "seneca", "seh": "sena", "sel": "selkupski", "ses": "koyraboro senni", "sg": "sango", "sga": "staroirski", "sh": "srpsko-hrvatski", "shi": "tachelhit", "shn": "shan", "shu": "čadski arapski", "si": "sinhaleški", "sid": "sidamo", "sk": "slovački", "sl": "slovenski", "sm": "samoanski", "sma": "južni sami", "smj": "lule sami", "smn": "inari sami", "sms": "skolt sami", "sn": "shona", "snk": "soninke", "so": "somalski", "sog": "sogdien", "sq": "albanski", "sr": "srpski", "srn": "sranan tongo", "srr": "serer", "ss": "svati", "ssy": "saho", "st": "sesotski", "su": "sundanski", "suk": "sukuma", "sus": "susu", "sux": "sumerski", "sv": "švedski", "sw": "svahili", "sw-CD": "kongoanski svahili", "swb": "komorski", "syc": "klasični sirski", "syr": "sirijski", "ta": "tamilski", "te": "teluški", "tem": "temne", "teo": "teso", "ter": "tereno", "tet": "tetum", "tg": "tadžički", "th": "tajlandski", "ti": "tigrinja", "tig": "tigriški", "tk": "turkmenski", "tkl": "tokelaunski", "tl": "tagalog", "tlh": "klingonski", "tli": "tlingit", "tmh": "tamašečki", "tn": "cvana", "to": "tonganski", "tog": "nyasa tonga", "tpi": "tok pisin", "tr": "turski", "trv": "taroko", "ts": "tsonga", "tsi": "tsimshian", "tt": "tatarski", "tum": "tumbuka", "tvl": "tuvaluanski", "tw": "twi", "twq": "tasawaq", "ty": "tahićanski", "tyv": "tuvinski", "tzm": "tamašek (Srednji Atlas)", "udm": "udmurtski", "ug": "ujgurski", "uga": "ugaritski", "uk": "ukrajinski", "umb": "umbundu", "ur": "urdski", "uz": "uzbečki", "ve": "venda", "vi": "vijetnamski", "vo": "volapük", "vot": "votski", "vun": "vunjo", "wa": "valonski", "wae": "walserski", "wal": "walamo", "war": "waray", "was": "washo", "wbp": "warlpiri", "wo": "volof", "wuu": "wu kineski", "xal": "kalmyk", "xh": "xhosa", "xog": "soga", "yap": "japski", "yav": "yangben", "ybb": "yemba", "yi": "jidiš", "yo": "jorupski", "yue": "kantonski", "za": "zhuang", "zap": "zapotečki", "zbl": "Blissovi simboli", "zen": "zenaga", "zgh": "standardni marokanski tamašek", "zh": "kineski", "zh-Hans": "kineski (pojednostavljeni)", "zh-Hant": "kineski (tradicionalni)", "zu": "zulu", "zun": "zuni", "zza": "zazaki"}}, + "hu": {"rtl": false, "languageNames": {"aa": "afar", "ab": "abház", "ace": "achinéz", "ach": "akoli", "ada": "adangme", "ady": "adyghe", "ae": "avesztán", "af": "afrikaans", "afh": "afrihili", "agq": "agem", "ain": "ainu", "ak": "akan", "akk": "akkád", "ale": "aleut", "alt": "dél-altaji", "am": "amhara", "an": "aragonéz", "ang": "óangol", "anp": "angika", "ar": "arab", "ar-001": "modern szabányos arab", "arc": "arámi", "arn": "mapucse", "arp": "arapaho", "ars": "nedzsdi arab", "arw": "aravak", "as": "asszámi", "asa": "asu", "ast": "asztúr", "av": "avar", "awa": "awádi", "ay": "ajmara", "az": "azerbajdzsáni", "ba": "baskír", "bal": "balucsi", "ban": "balinéz", "bas": "basza", "bax": "bamun", "bbj": "gomala", "be": "belarusz", "bej": "bedzsa", "bem": "bemba", "bez": "bena", "bfd": "bafut", "bg": "bolgár", "bgn": "nyugati beludzs", "bho": "bodzspuri", "bi": "bislama", "bik": "bikol", "bin": "bini", "bkm": "kom", "bla": "siksika", "bm": "bambara", "bn": "bangla", "bo": "tibeti", "br": "breton", "bra": "braj", "brx": "bodo", "bs": "bosnyák", "bss": "koszi", "bua": "burját", "bug": "buginéz", "bum": "bulu", "byn": "blin", "byv": "medumba", "ca": "katalán", "cad": "caddo", "car": "karib", "cay": "kajuga", "cch": "atszam", "ccp": "csakma", "ce": "csecsen", "ceb": "szebuano", "cgg": "kiga", "ch": "csamoró", "chb": "csibcsa", "chg": "csagatáj", "chk": "csukéz", "chm": "mari", "chn": "csinuk zsargon", "cho": "csoktó", "chp": "csipevé", "chr": "cseroki", "chy": "csejen", "ckb": "közép-ázsiai kurd", "co": "korzikai", "cop": "kopt", "cr": "krí", "crh": "krími tatár", "crs": "szeszelva kreol francia", "cs": "cseh", "csb": "kasub", "cu": "egyházi szláv", "cv": "csuvas", "cy": "walesi", "da": "dán", "dak": "dakota", "dar": "dargva", "dav": "taita", "de": "német", "de-AT": "osztrák német", "de-CH": "svájci felnémet", "del": "delavár", "den": "szlevi", "dgr": "dogrib", "din": "dinka", "dje": "zarma", "doi": "dogri", "dsb": "alsó-szorb", "dua": "duala", "dum": "közép holland", "dv": "divehi", "dyo": "jola-fonyi", "dyu": "diula", "dz": "dzsonga", "dzg": "dazaga", "ebu": "embu", "ee": "eve", "efi": "efik", "egy": "óegyiptomi", "eka": "ekadzsuk", "el": "görög", "elx": "elamit", "en": "angol", "en-AU": "ausztrál angol", "en-CA": "kanadai angol", "en-GB": "brit angol", "en-US": "amerikai angol", "enm": "közép angol", "eo": "eszperantó", "es": "spanyol", "es-419": "latin-amerikai spanyol", "es-ES": "európai spanyol", "es-MX": "spanyol (mexikói)", "et": "észt", "eu": "baszk", "ewo": "evondo", "fa": "perzsa", "fan": "fang", "fat": "fanti", "ff": "fulani", "fi": "finn", "fil": "filippínó", "fj": "fidzsi", "fo": "feröeri", "fr": "francia", "fr-CA": "kanadai francia", "fr-CH": "svájci francia", "frc": "cajun francia", "frm": "közép francia", "fro": "ófrancia", "frr": "északi fríz", "frs": "keleti fríz", "fur": "friuli", "fy": "nyugati fríz", "ga": "ír", "gaa": "ga", "gag": "gagauz", "gan": "gan kínai", "gay": "gajo", "gba": "gbaja", "gd": "skóciai kelta", "gez": "geez", "gil": "ikiribati", "gl": "gallego", "gmh": "közép felső német", "gn": "guarani", "goh": "ófelső német", "gon": "gondi", "gor": "gorontalo", "got": "gót", "grb": "grebó", "grc": "ógörög", "gsw": "svájci német", "gu": "gudzsaráti", "guz": "guszii", "gv": "man-szigeti", "gwi": "gvicsin", "ha": "hausza", "hai": "haida", "hak": "hakka kínai", "haw": "hawaii", "he": "héber", "hi": "hindi", "hil": "ilokano", "hit": "hittite", "hmn": "hmong", "ho": "hiri motu", "hr": "horvát", "hsb": "felső-szorb", "hsn": "xiang kínai", "ht": "haiti kreol", "hu": "magyar", "hup": "hupa", "hy": "örmény", "hz": "herero", "ia": "interlingva", "iba": "iban", "ibb": "ibibio", "id": "indonéz", "ie": "interlingue", "ig": "igbó", "ii": "szecsuán ji", "ik": "inupiak", "ilo": "ilokó", "inh": "ingus", "io": "idó", "is": "izlandi", "it": "olasz", "iu": "inuktitut", "ja": "japán", "jbo": "lojban", "jgo": "ngomba", "jmc": "machame", "jpr": "zsidó-perzsa", "jrb": "zsidó-arab", "jv": "jávai", "ka": "grúz", "kaa": "kara-kalpak", "kab": "kabije", "kac": "kacsin", "kaj": "jju", "kam": "kamba", "kaw": "kawi", "kbd": "kabardi", "kbl": "kanembu", "kcg": "tyap", "kde": "makonde", "kea": "kabuverdianu", "kfo": "koro", "kg": "kongo", "kha": "kaszi", "kho": "kotanéz", "khq": "kojra-csíni", "ki": "kikuju", "kj": "kuanyama", "kk": "kazah", "kkj": "kakó", "kl": "grönlandi", "kln": "kalendzsin", "km": "khmer", "kmb": "kimbundu", "kn": "kannada", "ko": "koreai", "koi": "komi-permják", "kok": "konkani", "kos": "kosrei", "kpe": "kpelle", "kr": "kanuri", "krc": "karacsáj-balkár", "krl": "karelai", "kru": "kuruh", "ks": "kasmíri", "ksb": "sambala", "ksf": "bafia", "ksh": "kölsch", "ku": "kurd", "kum": "kumük", "kut": "kutenai", "kv": "komi", "kw": "korni", "ky": "kirgiz", "la": "latin", "lad": "ladino", "lag": "langi", "lah": "lahnda", "lam": "lamba", "lb": "luxemburgi", "lez": "lezg", "lg": "ganda", "li": "limburgi", "lkt": "lakota", "ln": "lingala", "lo": "lao", "lol": "mongó", "lou": "louisianai kreol", "loz": "lozi", "lrc": "északi luri", "lt": "litván", "lu": "luba-katanga", "lua": "luba-lulua", "lui": "luiseno", "lun": "lunda", "lus": "lushai", "luy": "lujia", "lv": "lett", "mad": "madurai", "maf": "mafa", "mag": "magahi", "mai": "maithili", "mak": "makaszar", "man": "mandingó", "mas": "masai", "mde": "maba", "mdf": "moksán", "mdr": "mandar", "men": "mende", "mer": "meru", "mfe": "mauritiusi kreol", "mg": "malgas", "mga": "közép ír", "mgh": "makua-metó", "mgo": "meta’", "mh": "marshalli", "mi": "maori", "mic": "mikmak", "min": "minangkabau", "mk": "macedón", "ml": "malajálam", "mn": "mongol", "mnc": "mandzsu", "mni": "manipuri", "moh": "mohawk", "mos": "moszi", "mr": "maráthi", "ms": "maláj", "mt": "máltai", "mua": "mundang", "mus": "krík", "mwl": "mirandéz", "mwr": "márvári", "my": "burmai", "mye": "myene", "myv": "erzjány", "mzn": "mázanderáni", "na": "naurui", "nan": "min nan kínai", "nap": "nápolyi", "naq": "nama", "nb": "norvég (bokmål)", "nd": "északi ndebele", "nds": "alsónémet", "nds-NL": "alsószász", "ne": "nepáli", "new": "nevari", "ng": "ndonga", "nia": "nias", "niu": "niuei", "nl": "holland", "nl-BE": "flamand", "nmg": "ngumba", "nn": "norvég (nynorsk)", "nnh": "ngiemboon", "no": "norvég", "nog": "nogaj", "non": "óskandináv", "nqo": "n’kó", "nr": "déli ndebele", "nso": "északi szeszotó", "nus": "nuer", "nv": "navahó", "nwc": "klasszikus newari", "ny": "nyandzsa", "nym": "nyamvézi", "nyn": "nyankole", "nyo": "nyoró", "nzi": "nzima", "oc": "okszitán", "oj": "ojibva", "om": "oromo", "or": "odia", "os": "oszét", "osa": "osage", "ota": "ottomán török", "pa": "pandzsábi", "pag": "pangaszinan", "pal": "pahlavi", "pam": "pampangan", "pap": "papiamento", "pau": "palaui", "pcm": "nigériai pidgin", "peo": "óperzsa", "phn": "főniciai", "pi": "pali", "pl": "lengyel", "pon": "pohnpei", "prg": "porosz", "pro": "óprovánszi", "ps": "pastu", "pt": "portugál", "pt-BR": "brazíliai portugál", "pt-PT": "európai portugál", "qu": "kecsua", "quc": "kicse", "raj": "radzsasztáni", "rap": "rapanui", "rar": "rarotongai", "rm": "rétoromán", "rn": "kirundi", "ro": "román", "ro-MD": "moldvai", "rof": "rombo", "rom": "roma", "root": "ősi", "ru": "orosz", "rup": "aromán", "rw": "kinyarvanda", "rwk": "rwo", "sa": "szanszkrit", "sad": "szandave", "sah": "szaha", "sam": "szamaritánus arámi", "saq": "szamburu", "sas": "sasak", "sat": "szantáli", "sba": "ngambay", "sbp": "szangu", "sc": "szardíniai", "scn": "szicíliai", "sco": "skót", "sd": "szindhi", "sdh": "dél-kurd", "se": "északi számi", "see": "szeneka", "seh": "szena", "sel": "szölkup", "ses": "kojra-szenni", "sg": "szangó", "sga": "óír", "sh": "szerbhorvát", "shi": "tachelhit", "shn": "san", "shu": "csádi arab", "si": "szingaléz", "sid": "szidamó", "sk": "szlovák", "sl": "szlovén", "sm": "szamoai", "sma": "déli számi", "smj": "lulei számi", "smn": "inari számi", "sms": "kolta számi", "sn": "sona", "snk": "szoninke", "so": "szomáli", "sog": "sogdien", "sq": "albán", "sr": "szerb", "srn": "szranai tongó", "srr": "szerer", "ss": "sziszuati", "ssy": "szahó", "st": "déli szeszotó", "su": "szundanéz", "suk": "szukuma", "sus": "szuszu", "sux": "sumér", "sv": "svéd", "sw": "szuahéli", "sw-CD": "kongói szuahéli", "swb": "comorei", "syc": "klasszikus szír", "syr": "szír", "ta": "tamil", "te": "telugu", "tem": "temne", "teo": "teszó", "ter": "terenó", "tet": "tetum", "tg": "tadzsik", "th": "thai", "ti": "tigrinya", "tig": "tigré", "tk": "türkmén", "tkl": "tokelaui", "tl": "tagalog", "tlh": "klingon", "tli": "tlingit", "tmh": "tamasek", "tn": "szecsuáni", "to": "tongai", "tog": "nyugati nyasza", "tpi": "tok pisin", "tr": "török", "trv": "tarokó", "ts": "conga", "tsi": "csimsiáni", "tt": "tatár", "tum": "tumbuka", "tvl": "tuvalu", "tw": "twi", "twq": "szavák", "ty": "tahiti", "tyv": "tuvai", "tzm": "közép-atlaszi tamazigt", "udm": "udmurt", "ug": "ujgur", "uga": "ugariti", "uk": "ukrán", "umb": "umbundu", "ur": "urdu", "uz": "üzbég", "ve": "venda", "vi": "vietnami", "vo": "volapük", "vot": "votják", "vun": "vunjo", "wa": "vallon", "wae": "walser", "wal": "valamo", "war": "varaó", "was": "vasó", "wbp": "warlpiri", "wo": "volof", "wuu": "wu kínai", "xal": "kalmük", "xh": "xhosza", "xog": "szoga", "yao": "jaó", "yap": "japi", "yav": "jangben", "ybb": "jemba", "yi": "jiddis", "yo": "joruba", "yue": "kantoni", "za": "zsuang", "zap": "zapoték", "zbl": "Bliss jelképrendszer", "zen": "zenaga", "zgh": "marokkói tamazight", "zh": "kínai", "zh-Hans": "egyszerűsített kínai", "zh-Hant": "hagyományos kínai", "zu": "zulu", "zun": "zuni", "zza": "zaza"}}, + "hy": {"rtl": false, "languageNames": {"aa": "աֆարերեն", "ab": "աբխազերեն", "ace": "աչեհերեն", "ach": "աչոլի", "ada": "ադանգմերեն", "ady": "ադիղերեն", "aeb": "թունիսական արաբերեն", "af": "աֆրիկաանս", "agq": "աղեմ", "ain": "այներեն", "ak": "աքան", "akk": "աքքադերեն", "ale": "ալեութերեն", "alt": "հարավային ալթայերեն", "am": "ամհարերեն", "an": "արագոներեն", "ang": "հին անգլերեն", "anp": "անգիկա", "ar": "արաբերեն", "ar-001": "արդի ընդհանուր արաբերեն", "arc": "արամեերեն", "arn": "մապուչի", "arp": "արապահո", "arq": "ալժիրական արաբերեն", "arz": "եգիպտական արաբերեն", "as": "ասամերեն", "asa": "ասու", "ase": "ամերիկյան ժեստերի լեզու", "ast": "աստուրերեն", "av": "ավարերեն", "awa": "ավադհի", "ay": "այմարա", "az": "ադրբեջաներեն", "ba": "բաշկիրերեն", "ban": "բալիերեն", "bas": "բասաա", "be": "բելառուսերեն", "bem": "բեմբա", "bez": "բենա", "bg": "բուլղարերեն", "bgn": "արևմտաբելուջիերեն", "bho": "բհոպուրի", "bi": "բիսլամա", "bin": "բինի", "bla": "սիկսիկա", "bm": "բամբարա", "bn": "բենգալերեն", "bo": "տիբեթերեն", "br": "բրետոներեն", "brx": "բոդո", "bs": "բոսնիերեն", "bss": "աքուզ", "bug": "բուգիերեն", "byn": "բիլին", "ca": "կատալաներեն", "ce": "չեչեներեն", "ceb": "սեբուերեն", "cgg": "չիգա", "ch": "չամոռո", "chk": "տրուկերեն", "chm": "մարի", "cho": "չոկտո", "chr": "չերոկի", "chy": "շայեն", "ckb": "սորանի քրդերեն", "co": "կորսիկերեն", "cop": "ղպտերեն", "crh": "ղրիմյան թուրքերեն", "crs": "սեյշելյան խառնակերտ ֆրանսերեն", "cs": "չեխերեն", "cu": "եկեղեցական սլավոներեն", "cv": "չուվաշերեն", "cy": "ուելսերեն", "da": "դանիերեն", "dak": "դակոտա", "dar": "դարգիներեն", "dav": "թաիթա", "de": "գերմաներեն", "de-AT": "ավստրիական գերմաներեն", "de-CH": "շվեյցարական վերին գերմաներեն", "dgr": "դոգրիբ", "dje": "զարմա", "dsb": "ստորին սորբերեն", "dua": "դուալա", "dv": "մալդիվերեն", "dyo": "ջոլա-ֆոնյի", "dz": "ջոնգքհա", "dzg": "դազագա", "ebu": "էմբու", "ee": "էվե", "efi": "էֆիկ", "egy": "հին եգիպտերեն", "eka": "էկաջուկ", "el": "հունարեն", "en": "անգլերեն", "en-AU": "ավստրալիական անգլերեն", "en-CA": "կանադական անգլերեն", "en-GB": "բրիտանական անգլերեն", "en-US": "ամերիկյան անգլերեն", "eo": "էսպերանտո", "es": "իսպաներեն", "es-419": "լատինամերիկյան իսպաներեն", "es-ES": "եվրոպական իսպաներեն", "es-MX": "մեքսիկական իսպաներեն", "et": "էստոներեն", "eu": "բասկերեն", "ewo": "էվոնդո", "fa": "պարսկերեն", "ff": "ֆուլահ", "fi": "ֆիններեն", "fil": "ֆիլիպիներեն", "fit": "տորնադելեն ֆիններեն", "fj": "ֆիջիերեն", "fo": "ֆարյորերեն", "fon": "ֆոն", "fr": "ֆրանսերեն", "fr-CA": "կանադական ֆրանսերեն", "fr-CH": "շվեյցարական ֆրանսերեն", "fro": "հին ֆրանսերեն", "frs": "արևելաֆրիզերեն", "fur": "ֆրիուլիերեն", "fy": "արևմտաֆրիզերեն", "ga": "իռլանդերեն", "gaa": "գայերեն", "gag": "գագաուզերեն", "gbz": "զրադաշտական դարի", "gd": "շոտլանդական գաելերեն", "gez": "գեեզ", "gil": "կիրիբատի", "gl": "գալիսերեն", "gn": "գուարանի", "goh": "հին վերին գերմաներեն", "gor": "գորոնտալո", "got": "գոթերեն", "grc": "հին հունարեն", "gsw": "շվեյցարական գերմաներեն", "gu": "գուջարաթի", "guc": "վայուու", "guz": "գուսի", "gv": "մեներեն", "gwi": "գվիչին", "ha": "հաուսա", "haw": "հավայիերեն", "he": "եբրայերեն", "hi": "հինդի", "hil": "հիլիգայնոն", "hmn": "հմոնգ", "hr": "խորվաթերեն", "hsb": "վերին սորբերեն", "hsn": "սյան չինարեն", "ht": "խառնակերտ հայիթերեն", "hu": "հունգարերեն", "hup": "հուպա", "hy": "հայերեն", "hz": "հերերո", "ia": "ինտերլինգուա", "iba": "իբաներեն", "ibb": "իբիբիո", "id": "ինդոնեզերեն", "ie": "ինտերլինգուե", "ig": "իգբո", "ii": "սիչուան", "ilo": "իլոկերեն", "inh": "ինգուշերեն", "io": "իդո", "is": "իսլանդերեն", "it": "իտալերեն", "iu": "ինուկտիտուտ", "ja": "ճապոներեն", "jbo": "լոժբան", "jgo": "նգոմբա", "jmc": "մաշամե", "jv": "ճավայերեն", "ka": "վրացերեն", "kab": "կաբիլերեն", "kac": "կաչիներեն", "kaj": "ջյու", "kam": "կամբա", "kbd": "կաբարդերեն", "kcg": "տիապ", "kde": "մակոնդե", "kea": "կաբուվերդերեն", "kfo": "կորո", "kha": "քասիերեն", "khq": "կոյրա չինի", "ki": "կիկույու", "kj": "կուանյամա", "kk": "ղազախերեն", "kkj": "կակո", "kl": "կալաալիսուտ", "kln": "կալենջին", "km": "քմերերեն", "kmb": "կիմբունդու", "kn": "կաննադա", "ko": "կորեերեն", "koi": "պերմյակ կոմիերեն", "kok": "կոնկանի", "kpe": "կպելլեերեն", "kr": "կանուրի", "krc": "կարաչայ-բալկարերեն", "krl": "կարելերեն", "kru": "կուրուխ", "ks": "քաշմիրերեն", "ksb": "շամբալա", "ksf": "բաֆիա", "ksh": "քյոլներեն", "ku": "քրդերեն", "kum": "կումիկերեն", "kv": "կոմիերեն", "kw": "կոռներեն", "ky": "ղրղզերեն", "la": "լատիներեն", "lad": "լադինո", "lag": "լանգի", "lb": "լյուքսեմբուրգերեն", "lez": "լեզգիերեն", "lg": "գանդա", "li": "լիմբուրգերեն", "lkt": "լակոտա", "ln": "լինգալա", "lo": "լաոսերեն", "loz": "լոզի", "lrc": "հյուսիսային լուրիերեն", "lt": "լիտվերեն", "lu": "լուբա-կատանգա", "lua": "լուբա-լուլուա", "lun": "լունդա", "luo": "լուո", "lus": "միզո", "luy": "լույա", "lv": "լատվիերեն", "mad": "մադուրերեն", "mag": "մագահի", "mai": "մայթիլի", "mak": "մակասարերեն", "mas": "մասաի", "mdf": "մոկշայերեն", "men": "մենդե", "mer": "մերու", "mfe": "մորիսյեն", "mg": "մալգաշերեն", "mgh": "մաքուա-մետտո", "mgo": "մետա", "mh": "մարշալերեն", "mi": "մաորի", "mic": "միկմակ", "min": "մինանգկաբաու", "mk": "մակեդոներեն", "ml": "մալայալամ", "mn": "մոնղոլերեն", "mni": "մանիպուրի", "moh": "մոհավք", "mos": "մոսսի", "mr": "մարաթի", "mrj": "արևմտամարիերեն", "ms": "մալայերեն", "mt": "մալթայերեն", "mua": "մունդանգ", "mus": "կրիկ", "mwl": "միրանդերեն", "my": "բիրմայերեն", "myv": "էրզյա", "mzn": "մազանդարաներեն", "na": "նաուրու", "nap": "նեապոլերեն", "naq": "նամա", "nb": "գրքային նորվեգերեն", "nd": "հյուսիսային նդեբելե", "nds-NL": "ստորին սաքսոներեն", "ne": "նեպալերեն", "new": "նեվարերեն", "ng": "նդոնգա", "nia": "նիասերեն", "niu": "նիուերեն", "nl": "հոլանդերեն", "nl-BE": "ֆլամանդերեն", "nmg": "կվասիո", "nn": "նոր նորվեգերեն", "nnh": "նգիեմբուն", "no": "նորվեգերեն", "nog": "նոգայերեն", "non": "հին նորվեգերեն", "nqo": "նկո", "nr": "հարավային նդեբելե", "nso": "հյուսիսային սոթո", "nus": "նուեր", "nv": "նավախո", "ny": "նյանջա", "nyn": "նյանկոլե", "oc": "օքսիտաներեն", "oj": "օջիբվա", "om": "օրոմո", "or": "օրիյա", "os": "օսերեն", "osa": "օսեյջ", "ota": "օսմաներեն", "pa": "փենջաբերեն", "pag": "պանգասինաներեն", "pal": "պահլավերեն", "pam": "պամպանգաերեն", "pap": "պապյամենտո", "pau": "պալաուերեն", "pcd": "պիկարդերեն", "pcm": "նիգերյան կրեոլերեն", "pdc": "փենսիլվանական գերմաներեն", "pdt": "պլատագերմաներեն", "peo": "հին պարսկերեն", "pfl": "պալատինյան գերմաներեն", "phn": "փյունիկերեն", "pi": "պալի", "pl": "լեհերեն", "pms": "պիեմոնտերեն", "pnt": "պոնտերեն", "pon": "պոնպեերեն", "prg": "պրուսերեն", "pro": "հին պրովանսերեն", "ps": "փուշթու", "pt": "պորտուգալերեն", "pt-BR": "բրազիլական պորտուգալերեն", "pt-PT": "եվրոպական պորտուգալերեն", "qu": "կեչուա", "quc": "քիչե", "raj": "ռաջաստաներեն", "rap": "ռապանուի", "rar": "ռարոտոնգաներեն", "rgn": "ռոմանիոլերեն", "rif": "ռիֆերեն", "rm": "ռոմանշերեն", "rn": "ռունդի", "ro": "ռումիներեն", "ro-MD": "մոլդովերեն", "rof": "ռոմբո", "rom": "ռոմաներեն", "root": "ռուտերեն", "rtm": "ռոտուման", "ru": "ռուսերեն", "rue": "ռուսիներեն", "rug": "ռովիանա", "rup": "արոմաներեն", "rw": "կինյառուանդա", "rwk": "ռվա", "sa": "սանսկրիտ", "sad": "սանդավե", "sah": "յակուտերեն", "saq": "սամբուրու", "sat": "սանտալի", "sba": "նգամբայ", "sbp": "սանգու", "sc": "սարդիներեն", "scn": "սիցիլիերեն", "sco": "շոտլանդերեն", "sd": "սինդհի", "sdh": "հարավային քրդերեն", "se": "հյուսիսային սաամի", "seh": "սենա", "ses": "կոյրաբորո սեննի", "sg": "սանգո", "sga": "հին իռլանդերեն", "sh": "սերբա-խորվաթերեն", "shi": "տաշելհիթ", "shn": "շաներեն", "si": "սինհալերեն", "sk": "սլովակերեն", "sl": "սլովեներեն", "sm": "սամոաերեն", "sma": "հարավային սաամի", "smj": "լուլե սաամի", "smn": "ինարի սաամի", "sms": "սկոլտ սաամի", "sn": "շոնա", "snk": "սոնինկե", "so": "սոմալիերեն", "sq": "ալբաներեն", "sr": "սերբերեն", "srn": "սրանան տոնգո", "ss": "սվազերեն", "ssy": "սահոերեն", "st": "հարավային սոթո", "su": "սունդաներեն", "suk": "սուկումա", "sv": "շվեդերեն", "sw": "սուահիլի", "sw-CD": "կոնգոյի սուահիլի", "swb": "կոմորերեն", "syr": "ասորերեն", "ta": "թամիլերեն", "tcy": "տուլու", "te": "թելուգու", "tem": "տեմնե", "teo": "տեսո", "ter": "տերենո", "tet": "տետում", "tg": "տաջիկերեն", "th": "թայերեն", "ti": "տիգրինյա", "tig": "տիգրե", "tiv": "տիվերեն", "tk": "թուրքմեներեն", "tkl": "տոկելաու", "tkr": "ցախուր", "tl": "տագալերեն", "tlh": "կլինգոն", "tli": "տլինգիտ", "tly": "թալիշերեն", "tmh": "տամաշեկ", "tn": "ցվանա", "to": "տոնգերեն", "tpi": "տոկ փիսին", "tr": "թուրքերեն", "tru": "տուրոյո", "trv": "տարոկո", "ts": "ցոնգա", "tsd": "ցակոներեն", "tsi": "ցիմշյան", "tt": "թաթարերեն", "tum": "տումբուկա", "tvl": "թուվալուերեն", "tw": "տուի", "twq": "տասավաք", "ty": "թաիտերեն", "tyv": "տուվերեն", "tzm": "կենտրոնատլասյան թամազիղտ", "udm": "ուդմուրտերեն", "ug": "ույղուրերեն", "uga": "ուգարիտերեն", "uk": "ուկրաիներեն", "umb": "ումբունդու", "ur": "ուրդու", "uz": "ուզբեկերեն", "vai": "վաի", "ve": "վենդա", "vec": "վենետերեն", "vep": "վեպսերեն", "vi": "վիետնամերեն", "vls": "արևմտաֆլամանդերեն", "vo": "վոլապյուկ", "vot": "վոդերեն", "vro": "վորո", "vun": "վունջո", "wa": "վալոներեն", "wae": "վալսերեն", "wal": "վոլայտա", "war": "վարայերեն", "was": "վաշո", "wbp": "վարլպիրի", "wo": "վոլոֆ", "wuu": "վու չինարեն", "xal": "կալմիկերեն", "xh": "քոսա", "xog": "սոգա", "yao": "յաո", "yap": "յափերեն", "yav": "յանգբեն", "ybb": "եմբա", "yi": "իդիշ", "yo": "յորուբա", "yue": "կանտոներեն", "za": "ժուանգ", "zap": "սապոտեկերեն", "zea": "զեյլանդերեն", "zen": "զենագա", "zgh": "ընդհանուր մարոկյան թամազիղտ", "zh": "չինարեն", "zh-Hans": "պարզեցված չինարեն", "zh-Hant": "ավանդական չինարեն", "zu": "զուլուերեն", "zun": "զունիերեն", "zza": "զազաերեն"}}, + "ia": {"rtl": false, "languageNames": {"aa": "afar", "ab": "abkhazo", "ace": "acehnese", "ada": "adangme", "ady": "adygeano", "af": "afrikaans", "agq": "aghem", "ain": "ainu", "ak": "akan", "ale": "aleuto", "alt": "altai del sud", "am": "amharico", "an": "aragonese", "anp": "angika", "ar": "arabe", "ar-001": "arabe standard moderne", "arn": "mapuche", "arp": "arapaho", "as": "assamese", "asa": "asu", "ast": "asturiano", "av": "avaro", "awa": "awadhi", "ay": "aymara", "az": "azerbaidzhano", "ba": "bashkir", "ban": "balinese", "bas": "basaa", "be": "bielorusso", "bem": "bemba", "bez": "bena", "bg": "bulgaro", "bho": "bhojpuri", "bi": "bislama", "bin": "bini", "bla": "siksika", "bm": "bambara", "bn": "bengalese", "bo": "tibetano", "br": "breton", "brx": "bodo", "bs": "bosniaco", "bug": "buginese", "byn": "blin", "ca": "catalano", "ce": "checheno", "ceb": "cebuano", "cgg": "chiga", "ch": "chamorro", "chk": "chuukese", "chm": "mari", "cho": "choctaw", "chr": "cherokee", "chy": "cheyenne", "ckb": "kurdo central", "co": "corso", "crs": "creolo seychellese", "cs": "checo", "cu": "slavo ecclesiastic", "cv": "chuvash", "cy": "gallese", "da": "danese", "dak": "dakota", "dar": "dargwa", "dav": "taita", "de": "germano", "de-AT": "germano austriac", "de-CH": "alte germano suisse", "dgr": "dogrib", "dje": "zarma", "dsb": "basse sorabo", "dua": "duala", "dv": "divehi", "dyo": "jola-fonyi", "dz": "dzongkha", "dzg": "dazaga", "ebu": "embu", "ee": "ewe", "efi": "efik", "eka": "ekajuk", "el": "greco", "en": "anglese", "en-AU": "anglese australian", "en-CA": "anglese canadian", "en-GB": "anglese britannic", "en-US": "anglese american", "eo": "esperanto", "es": "espaniol", "es-419": "espaniol latinoamerican", "es-ES": "espaniol europee", "es-MX": "espaniol mexican", "et": "estoniano", "eu": "basco", "ewo": "ewondo", "fa": "persa", "ff": "fula", "fi": "finnese", "fil": "filipino", "fj": "fijiano", "fo": "feroese", "fr": "francese", "fr-CA": "francese canadian", "fr-CH": "francese suisse", "fur": "friulano", "fy": "frison occidental", "ga": "irlandese", "gaa": "ga", "gd": "gaelico scotese", "gez": "ge’ez", "gil": "gilbertese", "gl": "galleco", "gn": "guarani", "gor": "gorontalo", "gsw": "germano suisse", "gu": "gujarati", "guz": "gusii", "gv": "mannese", "gwi": "gwich’in", "ha": "hausa", "haw": "hawaiano", "he": "hebreo", "hi": "hindi", "hil": "hiligaynon", "hmn": "hmong", "hr": "croato", "hsb": "alte sorabo", "ht": "creolo haitian", "hu": "hungaro", "hup": "hupa", "hy": "armeniano", "hz": "herero", "ia": "interlingua", "iba": "iban", "ibb": "ibibio", "id": "indonesiano", "ig": "igbo", "ii": "yi de Sichuan", "ilo": "ilocano", "inh": "ingush", "io": "ido", "is": "islandese", "it": "italiano", "iu": "inuktitut", "ja": "japonese", "jbo": "lojban", "jgo": "ngomba", "jmc": "machame", "jv": "javanese", "ka": "georgiano", "kab": "kabylo", "kac": "kachin", "kaj": "jju", "kam": "kamba", "kbd": "cabardiano", "kcg": "tyap", "kde": "makonde", "kea": "capoverdiano", "kfo": "koro", "kha": "khasi", "khq": "koyra chiini", "ki": "kikuyu", "kj": "kuanyama", "kk": "kazakh", "kkj": "kako", "kl": "groenlandese", "kln": "kalenjin", "km": "khmer", "kmb": "kimbundu", "kn": "kannada", "ko": "coreano", "kok": "konkani", "kpe": "kpelle", "kr": "kanuri", "krc": "karachay-balkaro", "krl": "careliano", "kru": "kurukh", "ks": "kashmiri", "ksb": "shambala", "ksf": "bafia", "ksh": "coloniese", "ku": "kurdo", "kum": "kumyko", "kv": "komi", "kw": "cornico", "ky": "kirghizo", "la": "latino", "lad": "ladino", "lag": "langi", "lb": "luxemburgese", "lez": "lezghiano", "lg": "luganda", "li": "limburgese", "lkt": "lakota", "ln": "lingala", "lo": "laotiano", "loz": "lozi", "lrc": "luri del nord", "lt": "lithuano", "lu": "luba-katanga", "lua": "luba-lulua", "lun": "lunda", "lus": "mizo", "luy": "luyia", "lv": "letton", "mad": "madurese", "mag": "magahi", "mai": "maithili", "mak": "macassarese", "mas": "masai", "mdf": "moksha", "men": "mende", "mer": "meri", "mfe": "creolo mauritian", "mg": "malgache", "mgh": "makhuwa-meetto", "mgo": "metaʼ", "mh": "marshallese", "mi": "maori", "mic": "micmac", "min": "minangkabau", "mk": "macedone", "ml": "malayalam", "mn": "mongol", "mni": "manipuri", "moh": "mohawk", "mos": "mossi", "mr": "marathi", "ms": "malay", "mt": "maltese", "mua": "mundang", "mus": "creek", "mwl": "mirandese", "my": "birmano", "myv": "erzya", "mzn": "mazanderani", "na": "nauru", "nap": "napolitano", "naq": "nama", "nb": "norvegiano bokmål", "nd": "ndebele del nord", "nds-NL": "nds (Nederlandia)", "ne": "nepalese", "new": "newari", "ng": "ndonga", "nia": "nias", "niu": "nieuano", "nl": "nederlandese", "nl-BE": "flamingo", "nmg": "kwasio", "nn": "norvegiano nynorsk", "nnh": "ngiemboon", "nog": "nogai", "nqo": "n’ko", "nr": "ndebele del sud", "nso": "sotho del nord", "nus": "nuer", "nv": "navajo", "ny": "nyanja", "nyn": "nyankole", "oc": "occitano", "om": "oromo", "or": "oriya", "os": "osseto", "pa": "punjabi", "pag": "pangasinan", "pam": "pampanga", "pap": "papiamento", "pau": "palauano", "pcm": "pidgin nigerian", "pl": "polonese", "prg": "prussiano", "ps": "pashto", "pt": "portugese", "pt-BR": "portugese de Brasil", "pt-PT": "portugese de Portugal", "qu": "quechua", "quc": "kʼicheʼ", "rap": "rapanui", "rar": "rarotongano", "rm": "romanche", "rn": "rundi", "ro": "romaniano", "ro-MD": "moldavo", "rof": "rombo", "root": "radice", "ru": "russo", "rup": "aromaniano", "rw": "kinyarwanda", "rwk": "rwa", "sa": "sanscrito", "sad": "sandawe", "sah": "yakuto", "saq": "samburu", "sat": "santali", "sba": "ngambay", "sbp": "sangu", "sc": "sardo", "scn": "siciliano", "sco": "scotese", "sd": "sindhi", "se": "sami del nord", "seh": "sena", "ses": "koyraboro senni", "sg": "sango", "shi": "tachelhit", "shn": "shan", "si": "cingalese", "sk": "slovaco", "sl": "sloveno", "sm": "samoano", "sma": "sami del sud", "smj": "sami de Lule", "smn": "sami de Inari", "sms": "sami skolt", "sn": "shona", "snk": "soninke", "so": "somali", "sq": "albanese", "sr": "serbo", "srn": "sranan tongo", "ss": "swati", "ssy": "saho", "st": "sotho del sud", "su": "sundanese", "suk": "sukuma", "sv": "svedese", "sw": "swahili", "sw-CD": "swahili del Congo", "swb": "comoriano", "syr": "syriaco", "ta": "tamil", "te": "telugu", "tem": "temne", "teo": "teso", "tet": "tetum", "tg": "tajiko", "th": "thai", "ti": "tigrinya", "tig": "tigre", "tk": "turkmeno", "tlh": "klingon", "tn": "tswana", "to": "tongano", "tpi": "tok pisin", "tr": "turco", "trv": "taroko", "ts": "tsonga", "tt": "tataro", "tum": "tumbuka", "tvl": "tuvaluano", "twq": "tasawaq", "ty": "tahitiano", "tyv": "tuvano", "tzm": "tamazight del Atlas Central", "udm": "udmurto", "ug": "uighur", "uk": "ukrainiano", "umb": "umbundu", "ur": "urdu", "uz": "uzbeko", "ve": "venda", "vi": "vietnamese", "vo": "volapük", "vun": "vunjo", "wa": "wallon", "wae": "walser", "wal": "wolaytta", "war": "waray", "wo": "wolof", "xal": "calmuco", "xh": "xhosa", "xog": "soga", "yav": "yangben", "ybb": "yemba", "yi": "yiddish", "yo": "yoruba", "yue": "cantonese", "zgh": "tamazight marocchin standard", "zh": "chinese", "zh-Hans": "chinese simplificate", "zh-Hant": "chinese traditional", "zu": "zulu", "zun": "zuni", "zza": "zaza"}}, + "id": {"rtl": false, "languageNames": {"aa": "Afar", "ab": "Abkhaz", "ace": "Aceh", "ach": "Acoli", "ada": "Adangme", "ady": "Adygei", "ae": "Avesta", "aeb": "Arab Tunisia", "af": "Afrikaans", "afh": "Afrihili", "agq": "Aghem", "ain": "Ainu", "ak": "Akan", "akk": "Akkadia", "akz": "Alabama", "ale": "Aleut", "alt": "Altai Selatan", "am": "Amharik", "an": "Aragon", "ang": "Inggris Kuno", "anp": "Angika", "ar": "Arab", "ar-001": "Arab Standar Modern", "arc": "Aram", "arn": "Mapuche", "arp": "Arapaho", "arq": "Arab Aljazair", "ars": "Arab Najdi", "arw": "Arawak", "ary": "Arab Maroko", "arz": "Arab Mesir", "as": "Assam", "asa": "Asu", "ase": "Bahasa Isyarat Amerika", "ast": "Asturia", "av": "Avar", "awa": "Awadhi", "ay": "Aymara", "az": "Azerbaijani", "ba": "Bashkir", "bal": "Baluchi", "ban": "Bali", "bar": "Bavaria", "bas": "Basa", "bax": "Bamun", "bbc": "Batak Toba", "bbj": "Ghomala", "be": "Belarusia", "bej": "Beja", "bem": "Bemba", "bew": "Betawi", "bez": "Bena", "bfd": "Bafut", "bg": "Bulgaria", "bgn": "Balochi Barat", "bho": "Bhojpuri", "bi": "Bislama", "bik": "Bikol", "bin": "Bini", "bjn": "Banjar", "bkm": "Kom", "bla": "Siksika", "bm": "Bambara", "bn": "Bengali", "bo": "Tibet", "br": "Breton", "bra": "Braj", "brx": "Bodo", "bs": "Bosnia", "bss": "Akoose", "bua": "Buriat", "bug": "Bugis", "bum": "Bulu", "byn": "Blin", "byv": "Medumba", "ca": "Katalan", "cad": "Kado", "car": "Karib", "cay": "Cayuga", "cch": "Atsam", "ccp": "Chakma", "ce": "Chechen", "ceb": "Cebuano", "cgg": "Kiga", "ch": "Chamorro", "chb": "Chibcha", "chg": "Chagatai", "chk": "Chuuke", "chm": "Mari", "chn": "Jargon Chinook", "cho": "Koktaw", "chp": "Chipewyan", "chr": "Cherokee", "chy": "Cheyenne", "ckb": "Kurdi Sorani", "co": "Korsika", "cop": "Koptik", "cr": "Kree", "crh": "Tatar Krimea", "crs": "Seselwa Kreol Prancis", "cs": "Cheska", "csb": "Kashubia", "cu": "Bahasa Gereja Slavonia", "cv": "Chuvash", "cy": "Welsh", "da": "Dansk", "dak": "Dakota", "dar": "Dargwa", "dav": "Taita", "de": "Jerman", "de-AT": "Jerman (Austria)", "de-CH": "Jerman Tinggi (Swiss)", "del": "Delaware", "den": "Slave", "dgr": "Dogrib", "din": "Dinka", "dje": "Zarma", "doi": "Dogri", "dsb": "Sorbia Hilir", "dua": "Duala", "dum": "Belanda Abad Pertengahan", "dv": "Divehi", "dyo": "Jola-Fonyi", "dyu": "Dyula", "dz": "Dzongkha", "dzg": "Dazaga", "ebu": "Embu", "ee": "Ewe", "efi": "Efik", "egy": "Mesir Kuno", "eka": "Ekajuk", "el": "Yunani", "elx": "Elam", "en": "Inggris", "en-AU": "Inggris (Australia)", "en-CA": "Inggris (Kanada)", "en-GB": "Inggris (Inggris)", "en-US": "Inggris (Amerika Serikat)", "enm": "Inggris Abad Pertengahan", "eo": "Esperanto", "es": "Spanyol", "es-419": "Spanyol (Amerika Latin)", "es-ES": "Spanyol (Eropa)", "es-MX": "Spanyol (Meksiko)", "et": "Esti", "eu": "Basque", "ewo": "Ewondo", "fa": "Persia", "fan": "Fang", "fat": "Fanti", "ff": "Fula", "fi": "Suomi", "fil": "Filipino", "fj": "Fiji", "fo": "Faroe", "fon": "Fon", "fr": "Prancis", "fr-CA": "Perancis (Kanada)", "fr-CH": "Perancis (Swiss)", "frc": "Prancis Cajun", "frm": "Prancis Abad Pertengahan", "fro": "Prancis Kuno", "frp": "Arpitan", "frr": "Frisia Utara", "frs": "Frisia Timur", "fur": "Friuli", "fy": "Frisia Barat", "ga": "Irlandia", "gaa": "Ga", "gag": "Gagauz", "gay": "Gayo", "gba": "Gbaya", "gd": "Gaelik Skotlandia", "gez": "Geez", "gil": "Gilbert", "gl": "Galisia", "glk": "Gilaki", "gmh": "Jerman Abad Pertengahan", "gn": "Guarani", "goh": "Jerman Kuno", "gon": "Gondi", "gor": "Gorontalo", "got": "Gotik", "grb": "Grebo", "grc": "Yunani Kuno", "gsw": "Jerman (Swiss)", "gu": "Gujarat", "guz": "Gusii", "gv": "Manx", "gwi": "Gwich’in", "ha": "Hausa", "hai": "Haida", "haw": "Hawaii", "he": "Ibrani", "hi": "Hindi", "hif": "Hindi Fiji", "hil": "Hiligaynon", "hit": "Hitit", "hmn": "Hmong", "ho": "Hiri Motu", "hr": "Kroasia", "hsb": "Sorbia Hulu", "ht": "Kreol Haiti", "hu": "Hungaria", "hup": "Hupa", "hy": "Armenia", "hz": "Herero", "ia": "Interlingua", "iba": "Iban", "ibb": "Ibibio", "id": "Indonesia", "ie": "Interlingue", "ig": "Igbo", "ii": "Sichuan Yi", "ik": "Inupiak", "ilo": "Iloko", "inh": "Ingushetia", "io": "Ido", "is": "Islandia", "it": "Italia", "iu": "Inuktitut", "ja": "Jepang", "jbo": "Lojban", "jgo": "Ngomba", "jmc": "Machame", "jpr": "Ibrani-Persia", "jrb": "Ibrani-Arab", "jv": "Jawa", "ka": "Georgia", "kaa": "Kara-Kalpak", "kab": "Kabyle", "kac": "Kachin", "kaj": "Jju", "kam": "Kamba", "kaw": "Kawi", "kbd": "Kabardi", "kbl": "Kanembu", "kcg": "Tyap", "kde": "Makonde", "kea": "Kabuverdianu", "ken": "Kenyang", "kfo": "Koro", "kg": "Kongo", "kha": "Khasi", "kho": "Khotan", "khq": "Koyra Chiini", "ki": "Kikuyu", "kj": "Kuanyama", "kk": "Kazakh", "kkj": "Kako", "kl": "Kalaallisut", "kln": "Kalenjin", "km": "Khmer", "kmb": "Kimbundu", "kn": "Kannada", "ko": "Korea", "koi": "Komi-Permyak", "kok": "Konkani", "kos": "Kosre", "kpe": "Kpelle", "kr": "Kanuri", "krc": "Karachai Balkar", "kri": "Krio", "krl": "Karelia", "kru": "Kuruk", "ks": "Kashmir", "ksb": "Shambala", "ksf": "Bafia", "ksh": "Dialek Kolsch", "ku": "Kurdi", "kum": "Kumyk", "kut": "Kutenai", "kv": "Komi", "kw": "Kornish", "ky": "Kirgiz", "la": "Latin", "lad": "Ladino", "lag": "Langi", "lah": "Lahnda", "lam": "Lamba", "lb": "Luksemburg", "lez": "Lezghia", "lg": "Ganda", "li": "Limburgia", "lij": "Liguria", "lkt": "Lakota", "ln": "Lingala", "lo": "Lao", "lol": "Mongo", "lou": "Kreol Louisiana", "loz": "Lozi", "lrc": "Luri Utara", "lt": "Lituavi", "lu": "Luba-Katanga", "lua": "Luba-Lulua", "lui": "Luiseno", "lun": "Lunda", "luo": "Luo", "lus": "Mizo", "luy": "Luyia", "lv": "Latvi", "lzz": "Laz", "mad": "Madura", "maf": "Mafa", "mag": "Magahi", "mai": "Maithili", "mak": "Makasar", "man": "Mandingo", "mas": "Masai", "mde": "Maba", "mdf": "Moksha", "mdr": "Mandar", "men": "Mende", "mer": "Meru", "mfe": "Morisien", "mg": "Malagasi", "mga": "Irlandia Abad Pertengahan", "mgh": "Makhuwa-Meetto", "mgo": "Meta’", "mh": "Marshall", "mi": "Maori", "mic": "Mikmak", "min": "Minangkabau", "mk": "Makedonia", "ml": "Malayalam", "mn": "Mongolia", "mnc": "Manchuria", "mni": "Manipuri", "moh": "Mohawk", "mos": "Mossi", "mr": "Marathi", "ms": "Melayu", "mt": "Malta", "mua": "Mundang", "mus": "Bahasa Muskogee", "mwl": "Miranda", "mwr": "Marwari", "mwv": "Mentawai", "my": "Burma", "mye": "Myene", "myv": "Eryza", "mzn": "Mazanderani", "na": "Nauru", "nap": "Neapolitan", "naq": "Nama", "nb": "Bokmål Norwegia", "nd": "Ndebele Utara", "nds": "Jerman Rendah", "nds-NL": "Jerman Rendah (Belanda)", "ne": "Nepali", "new": "Newari", "ng": "Ndonga", "nia": "Nias", "niu": "Niuea", "nl": "Belanda", "nl-BE": "Belanda (Belgia)", "nmg": "Kwasio", "nn": "Nynorsk Norwegia", "nnh": "Ngiemboon", "no": "Norwegia", "nog": "Nogai", "non": "Norse Kuno", "nqo": "N’Ko", "nr": "Ndebele Selatan", "nso": "Sotho Utara", "nus": "Nuer", "nv": "Navajo", "nwc": "Newari Klasik", "ny": "Nyanja", "nym": "Nyamwezi", "nyn": "Nyankole", "nyo": "Nyoro", "nzi": "Nzima", "oc": "Ositania", "oj": "Ojibwa", "om": "Oromo", "or": "Oriya", "os": "Ossetia", "osa": "Osage", "ota": "Turki Osmani", "pa": "Punjabi", "pag": "Pangasina", "pal": "Pahlevi", "pam": "Pampanga", "pap": "Papiamento", "pau": "Palau", "pcm": "Pidgin Nigeria", "pdc": "Jerman Pennsylvania", "peo": "Persia Kuno", "phn": "Funisia", "pi": "Pali", "pl": "Polski", "pon": "Pohnpeia", "prg": "Prusia", "pro": "Provencal Lama", "ps": "Pashto", "pt": "Portugis", "pt-BR": "Portugis (Brasil)", "pt-PT": "Portugis (Eropa)", "qu": "Quechua", "quc": "Kʼicheʼ", "raj": "Rajasthani", "rap": "Rapanui", "rar": "Rarotonga", "rm": "Reto-Roman", "rn": "Rundi", "ro": "Rumania", "ro-MD": "Moldavia", "rof": "Rombo", "rom": "Romani", "root": "Root", "rtm": "Rotuma", "ru": "Rusia", "rup": "Aromania", "rw": "Kinyarwanda", "rwk": "Rwa", "sa": "Sanskerta", "sad": "Sandawe", "sah": "Sakha", "sam": "Aram Samaria", "saq": "Samburu", "sas": "Sasak", "sat": "Santali", "sba": "Ngambai", "sbp": "Sangu", "sc": "Sardinia", "scn": "Sisilia", "sco": "Skotlandia", "sd": "Sindhi", "sdh": "Kurdi Selatan", "se": "Sami Utara", "see": "Seneca", "seh": "Sena", "sei": "Seri", "sel": "Selkup", "ses": "Koyraboro Senni", "sg": "Sango", "sga": "Irlandia Kuno", "sh": "Serbo-Kroasia", "shi": "Tachelhit", "shn": "Shan", "shu": "Arab Suwa", "si": "Sinhala", "sid": "Sidamo", "sk": "Slovak", "sl": "Sloven", "sli": "Silesia Rendah", "sly": "Selayar", "sm": "Samoa", "sma": "Sami Selatan", "smj": "Lule Sami", "smn": "Inari Sami", "sms": "Skolt Sami", "sn": "Shona", "snk": "Soninke", "so": "Somalia", "sog": "Sogdien", "sq": "Albania", "sr": "Serbia", "srn": "Sranan Tongo", "srr": "Serer", "ss": "Swati", "ssy": "Saho", "st": "Sotho Selatan", "su": "Sunda", "suk": "Sukuma", "sus": "Susu", "sux": "Sumeria", "sv": "Swedia", "sw": "Swahili", "sw-CD": "Swahili (Kongo)", "swb": "Komoria", "syc": "Suriah Klasik", "syr": "Suriah", "szl": "Silesia", "ta": "Tamil", "tcy": "Tulu", "te": "Telugu", "tem": "Timne", "teo": "Teso", "ter": "Tereno", "tet": "Tetun", "tg": "Tajik", "th": "Thai", "ti": "Tigrinya", "tig": "Tigre", "tiv": "Tiv", "tk": "Turkmen", "tkl": "Tokelau", "tl": "Tagalog", "tlh": "Klingon", "tli": "Tlingit", "tmh": "Tamashek", "tn": "Tswana", "to": "Tonga", "tog": "Nyasa Tonga", "tpi": "Tok Pisin", "tr": "Turki", "tru": "Turoyo", "trv": "Taroko", "ts": "Tsonga", "tsi": "Tsimshia", "tt": "Tatar", "ttt": "Tat Muslim", "tum": "Tumbuka", "tvl": "Tuvalu", "tw": "Twi", "twq": "Tasawaq", "ty": "Tahiti", "tyv": "Tuvinia", "tzm": "Tamazight Maroko Tengah", "udm": "Udmurt", "ug": "Uyghur", "uga": "Ugarit", "uk": "Ukraina", "umb": "Umbundu", "ur": "Urdu", "uz": "Uzbek", "vai": "Vai", "ve": "Venda", "vec": "Venesia", "vi": "Vietnam", "vo": "Volapuk", "vot": "Votia", "vun": "Vunjo", "wa": "Walloon", "wae": "Walser", "wal": "Walamo", "war": "Warai", "was": "Washo", "wbp": "Warlpiri", "wo": "Wolof", "xal": "Kalmuk", "xh": "Xhosa", "xog": "Soga", "yao": "Yao", "yap": "Yapois", "yav": "Yangben", "ybb": "Yemba", "yi": "Yiddish", "yo": "Yoruba", "yue": "Kanton", "za": "Zhuang", "zap": "Zapotek", "zbl": "Blissymbol", "zen": "Zenaga", "zgh": "Tamazight Maroko Standar", "zh": "Tionghoa", "zh-Hans": "Tionghoa (Aksara Sederhana)", "zh-Hant": "Tionghoa (Aksara Tradisional)", "zu": "Zulu", "zun": "Zuni", "zza": "Zaza"}}, + "is": {"rtl": false, "languageNames": {"aa": "afár", "ab": "abkasíska", "ace": "akkíska", "ach": "acoli", "ada": "adangme", "ady": "adýge", "ae": "avestíska", "af": "afríkanska", "afh": "afríhílí", "agq": "aghem", "ain": "aínu (Japan)", "ak": "akan", "akk": "akkadíska", "ale": "aleúska", "alt": "suðuraltaíska", "am": "amharíska", "an": "aragonska", "ang": "fornenska", "anp": "angíka", "ar": "arabíska", "ar-001": "stöðluð nútímaarabíska", "arc": "arameíska", "arn": "mapuche", "arp": "arapahó", "arw": "aravakska", "as": "assamska", "asa": "asu", "ast": "astúríska", "av": "avaríska", "awa": "avadí", "ay": "aímara", "az": "aserska", "ba": "baskír", "bal": "balúkí", "ban": "balíska", "bas": "basa", "bax": "bamun", "be": "hvítrússneska", "bej": "beja", "bem": "bemba", "bez": "bena", "bg": "búlgarska", "bgn": "vesturbalotsí", "bho": "bojpúrí", "bi": "bíslama", "bik": "bíkol", "bin": "bíní", "bla": "siksika", "bm": "bambara", "bn": "bengalska", "bo": "tíbeska", "br": "bretónska", "bra": "braí", "brx": "bódó", "bs": "bosníska", "bss": "bakossi", "bua": "búríat", "bug": "búgíska", "byn": "blín", "ca": "katalónska", "cad": "kaddó", "car": "karíbamál", "cay": "kajúga", "cch": "atsam", "ce": "tsjetsjenska", "ceb": "kebúanó", "cgg": "kíga", "ch": "kamorró", "chb": "síbsja", "chg": "sjagataí", "chk": "sjúkíska", "chm": "marí", "chn": "sínúk", "cho": "sjoktá", "chp": "sípevíska", "chr": "Cherokee-mál", "chy": "sjeyen", "ckb": "sorani-kúrdíska", "co": "korsíska", "cop": "koptíska", "cr": "krí", "crh": "krímtyrkneska", "crs": "seychelles-kreólska", "cs": "tékkneska", "csb": "kasúbíska", "cu": "kirkjuslavneska", "cv": "sjúvas", "cy": "velska", "da": "danska", "dak": "dakóta", "dar": "dargva", "dav": "taíta", "de": "þýska", "de-AT": "austurrísk þýska", "de-CH": "svissnesk háþýska", "del": "delaver", "den": "slavneska", "dgr": "dogríb", "din": "dinka", "dje": "zarma", "doi": "dogrí", "dsb": "lágsorbneska", "dua": "dúala", "dum": "miðhollenska", "dv": "dívehí", "dyo": "jola-fonyi", "dyu": "djúla", "dz": "dsongka", "dzg": "dazaga", "ebu": "embu", "ee": "ewe", "efi": "efík", "egy": "fornegypska", "eka": "ekajúk", "el": "gríska", "elx": "elamít", "en": "enska", "en-AU": "áströlsk enska", "en-CA": "kanadísk enska", "en-GB": "bresk enska", "en-US": "bandarísk enska", "enm": "miðenska", "eo": "esperantó", "es": "spænska", "es-419": "rómönsk-amerísk spænska", "es-ES": "evrópsk spænska", "es-MX": "mexíkósk spænska", "et": "eistneska", "eu": "baskneska", "ewo": "evondó", "fa": "persneska", "fan": "fang", "fat": "fantí", "ff": "fúla", "fi": "finnska", "fil": "filippseyska", "fj": "fídjeyska", "fo": "færeyska", "fon": "fón", "fr": "franska", "fr-CA": "kanadísk franska", "fr-CH": "svissnesk franska", "frc": "cajun-franska", "frm": "miðfranska", "fro": "fornfranska", "frr": "norðurfrísneska", "frs": "austurfrísneska", "fur": "fríúlska", "fy": "vesturfrísneska", "ga": "írska", "gaa": "ga", "gag": "gagás", "gay": "gajó", "gba": "gbaja", "gd": "skosk gelíska", "gez": "gís", "gil": "gilberska", "gl": "galíanska", "gmh": "miðháþýska", "gn": "gvaraní", "goh": "fornháþýska", "gon": "gondí", "gor": "gorontaló", "got": "gotneska", "grb": "gerbó", "grc": "forngríska", "gsw": "svissnesk þýska", "gu": "gújaratí", "guz": "gusii", "gv": "manska", "gwi": "gvísín", "ha": "hása", "hai": "haída", "haw": "havaíska", "he": "hebreska", "hi": "hindí", "hil": "híligaínon", "hit": "hettitíska", "hmn": "hmong", "ho": "hírímótú", "hr": "króatíska", "hsb": "hásorbneska", "ht": "haítíska", "hu": "ungverska", "hup": "húpa", "hy": "armenska", "hz": "hereró", "ia": "alþjóðatunga", "iba": "íban", "ibb": "ibibio", "id": "indónesíska", "ie": "interlingve", "ig": "ígbó", "ii": "sísúanjí", "ik": "ínúpíak", "ilo": "ílokó", "inh": "ingús", "io": "ídó", "is": "íslenska", "it": "ítalska", "iu": "inúktitút", "ja": "japanska", "jbo": "lojban", "jgo": "ngomba", "jmc": "masjáme", "jpr": "gyðingapersneska", "jrb": "gyðingaarabíska", "jv": "javanska", "ka": "georgíska", "kaa": "karakalpak", "kab": "kabíle", "kac": "kasín", "kaj": "jju", "kam": "kamba", "kaw": "kaví", "kbd": "kabardíska", "kcg": "tyap", "kde": "makonde", "kea": "grænhöfðeyska", "kfo": "koro", "kg": "kongóska", "kha": "kasí", "kho": "kotaska", "khq": "koyra chiini", "ki": "kíkújú", "kj": "kúanjama", "kk": "kasakska", "kkj": "kako", "kl": "grænlenska", "kln": "kalenjin", "km": "kmer", "kmb": "kimbúndú", "kn": "kannada", "ko": "kóreska", "koi": "kómí-permyak", "kok": "konkaní", "kos": "kosraska", "kpe": "kpelle", "kr": "kanúrí", "krc": "karasaíbalkar", "krl": "karélska", "kru": "kúrúk", "ks": "kasmírska", "ksb": "sjambala", "ksf": "bafía", "ksh": "kölníska", "ku": "kúrdíska", "kum": "kúmík", "kut": "kútenaí", "kv": "komíska", "kw": "kornbreska", "ky": "kirgiska", "la": "latína", "lad": "ladínska", "lag": "langí", "lah": "landa", "lam": "lamba", "lb": "lúxemborgíska", "lez": "lesgíska", "lg": "ganda", "li": "limbúrgíska", "lkt": "lakóta", "ln": "lingala", "lo": "laó", "lol": "mongó", "lou": "kreólska (Louisiana)", "loz": "lozi", "lrc": "norðurlúrí", "lt": "litháíska", "lu": "lúbakatanga", "lua": "luba-lulua", "lui": "lúisenó", "lun": "lúnda", "luo": "lúó", "lus": "lúsaí", "luy": "luyia", "lv": "lettneska", "mad": "madúrska", "mag": "magahí", "mai": "maítílí", "mak": "makasar", "man": "mandingó", "mas": "masaí", "mdf": "moksa", "mdr": "mandar", "men": "mende", "mer": "merú", "mfe": "máritíska", "mg": "malagasíska", "mga": "miðírska", "mgh": "makhuwa-meetto", "mgo": "meta’", "mh": "marshallska", "mi": "maorí", "mic": "mikmak", "min": "mínangkabá", "mk": "makedónska", "ml": "malajalam", "mn": "mongólska", "mnc": "mansjú", "mni": "manípúrí", "moh": "móhíska", "mos": "mossí", "mr": "maratí", "ms": "malaíska", "mt": "maltneska", "mua": "mundang", "mus": "krík", "mwl": "mirandesíska", "mwr": "marvarí", "my": "burmneska", "myv": "ersja", "mzn": "masanderaní", "na": "nárúska", "nap": "napólíska", "naq": "nama", "nb": "norskt bókmál", "nd": "norður-ndebele", "nds": "lágþýska; lágsaxneska", "nds-NL": "lágsaxneska", "ne": "nepalska", "new": "nevarí", "ng": "ndonga", "nia": "nías", "niu": "níveska", "nl": "hollenska", "nl-BE": "flæmska", "nmg": "kwasio", "nn": "nýnorska", "nnh": "ngiemboon", "no": "norska", "nog": "nógaí", "non": "norræna", "nqo": "n’ko", "nr": "suðurndebele", "nso": "norðursótó", "nus": "núer", "nv": "navahó", "nwc": "klassísk nevaríska", "ny": "njanja; sísjeva; sjeva", "nym": "njamvesí", "nyn": "nyankole", "nyo": "njóró", "nzi": "nsíma", "oc": "oksítaníska", "oj": "ojibva", "om": "oromo", "or": "óría", "os": "ossetíska", "osa": "ósage", "ota": "tyrkneska, ottóman", "pa": "púnjabí", "pag": "pangasínmál", "pal": "palaví", "pam": "pampanga", "pap": "papíamentó", "pau": "paláska", "pcm": "nígerískt pidgin", "peo": "fornpersneska", "phn": "fönikíska", "pi": "palí", "pl": "pólska", "pon": "ponpeiska", "prg": "prússneska", "pro": "fornpróvensalska", "ps": "pastú", "pt": "portúgalska", "pt-BR": "brasílísk portúgalska", "pt-PT": "evrópsk portúgalska", "qu": "kvesjúa", "quc": "kiche", "raj": "rajastaní", "rap": "rapanúí", "rar": "rarótongska", "rm": "rómanska", "rn": "rúndí", "ro": "rúmenska", "ro-MD": "moldóvska", "rof": "rombó", "rom": "romaní", "root": "rót", "ru": "rússneska", "rup": "arúmenska", "rw": "kínjarvanda", "rwk": "rúa", "sa": "sanskrít", "sad": "sandave", "sah": "jakút", "sam": "samversk arameíska", "saq": "sambúrú", "sas": "sasak", "sat": "santalí", "sba": "ngambay", "sbp": "sangú", "sc": "sardínska", "scn": "sikileyska", "sco": "skoska", "sd": "sindí", "sdh": "suðurkúrdíska", "se": "norðursamíska", "seh": "sena", "sel": "selkúp", "ses": "koíraboró-senní", "sg": "sangó", "sga": "fornírska", "sh": "serbókróatíska", "shi": "tachelhit", "shn": "sjan", "si": "singalíska", "sid": "sídamó", "sk": "slóvakíska", "sl": "slóvenska", "sm": "samóska", "sma": "suðursamíska", "smj": "lúlesamíska", "smn": "enaresamíska", "sms": "skoltesamíska", "sn": "shona", "snk": "sóninke", "so": "sómalska", "sog": "sogdíen", "sq": "albanska", "sr": "serbneska", "srn": "sranan tongo", "srr": "serer", "ss": "svatí", "ssy": "saho", "st": "suðursótó", "su": "súndanska", "suk": "súkúma", "sus": "súsú", "sux": "súmerska", "sv": "sænska", "sw": "svahílí", "sw-CD": "kongósvahílí", "swb": "shimaoríska", "syc": "klassísk sýrlenska", "syr": "sýrlenska", "ta": "tamílska", "te": "telúgú", "tem": "tímne", "teo": "tesó", "ter": "terenó", "tet": "tetúm", "tg": "tadsjikska", "th": "taílenska", "ti": "tígrinja", "tig": "tígre", "tiv": "tív", "tk": "túrkmenska", "tkl": "tókeláska", "tl": "tagalog", "tlh": "klingonska", "tli": "tlingit", "tmh": "tamasjek", "tn": "tsúana", "to": "tongverska", "tog": "tongverska (nyasa)", "tpi": "tokpisin", "tr": "tyrkneska", "trv": "tarókó", "ts": "tsonga", "tsi": "tsimsíska", "tt": "tatarska", "tum": "túmbúka", "tvl": "túvalúska", "tw": "tví", "twq": "tasawaq", "ty": "tahítíska", "tyv": "túvínska", "tzm": "tamazight", "udm": "údmúrt", "ug": "úígúr", "uga": "úgarítíska", "uk": "úkraínska", "umb": "úmbúndú", "ur": "úrdú", "uz": "úsbekska", "vai": "vaí", "ve": "venda", "vi": "víetnamska", "vo": "volapyk", "vot": "votíska", "vun": "vunjó", "wa": "vallónska", "wae": "valser", "wal": "volayatta", "war": "varaí", "was": "vasjó", "wbp": "varlpiri", "wo": "volof", "xal": "kalmúkska", "xh": "sósa", "xog": "sóga", "yao": "jaó", "yap": "japíska", "yav": "yangben", "ybb": "yemba", "yi": "jiddíska", "yo": "jórúba", "yue": "kantónska", "za": "súang", "zap": "sapótek", "zbl": "blisstákn", "zen": "senaga", "zgh": "staðlað marokkóskt tamazight", "zh": "kínverska", "zh-Hans": "kínverska (einfölduð)", "zh-Hant": "kínverska (hefðbundin)", "zu": "súlú", "zun": "súní", "zza": "zázáíska"}}, + "it": {"rtl": false, "languageNames": {"aa": "afar", "ab": "abcaso", "ace": "accinese", "ach": "acioli", "ada": "adangme", "ady": "adyghe", "ae": "avestan", "aeb": "arabo tunisino", "af": "afrikaans", "afh": "afrihili", "agq": "aghem", "ain": "ainu", "ak": "akan", "akk": "accado", "akz": "alabama", "ale": "aleuto", "aln": "albanese ghego", "alt": "altai meridionale", "am": "amarico", "an": "aragonese", "ang": "inglese antico", "anp": "angika", "ar": "arabo", "ar-001": "arabo moderno standard", "arc": "aramaico", "arn": "mapudungun", "aro": "araona", "arp": "arapaho", "arq": "arabo algerino", "ars": "arabo najd", "arw": "aruaco", "ary": "arabo marocchino", "arz": "arabo egiziano", "as": "assamese", "asa": "asu", "ase": "lingua dei segni americana", "ast": "asturiano", "av": "avaro", "avk": "kotava", "awa": "awadhi", "ay": "aymara", "az": "azerbaigiano", "ba": "baschiro", "bal": "beluci", "ban": "balinese", "bar": "bavarese", "bas": "basa", "bax": "bamun", "bbc": "batak toba", "bbj": "ghomala", "be": "bielorusso", "bej": "begia", "bem": "wemba", "bew": "betawi", "bez": "bena", "bfd": "bafut", "bfq": "badaga", "bg": "bulgaro", "bgn": "beluci occidentale", "bho": "bhojpuri", "bi": "bislama", "bik": "bicol", "bin": "bini", "bjn": "banjar", "bkm": "kom", "bla": "siksika", "bm": "bambara", "bn": "bengalese", "bo": "tibetano", "bpy": "bishnupriya", "bqi": "bakhtiari", "br": "bretone", "bra": "braj", "brh": "brahui", "brx": "bodo", "bs": "bosniaco", "bss": "akoose", "bua": "buriat", "bug": "bugi", "bum": "bulu", "byn": "blin", "byv": "medumba", "ca": "catalano", "cad": "caddo", "car": "caribico", "cay": "cayuga", "cch": "atsam", "ccp": "chakma", "ce": "ceceno", "ceb": "cebuano", "cgg": "chiga", "ch": "chamorro", "chb": "chibcha", "chg": "ciagataico", "chk": "chuukese", "chm": "mari", "chn": "gergo chinook", "cho": "choctaw", "chp": "chipewyan", "chr": "cherokee", "chy": "cheyenne", "ckb": "curdo sorani", "co": "corso", "cop": "copto", "cps": "capiznon", "cr": "cree", "crh": "turco crimeo", "crs": "creolo delle Seychelles", "cs": "ceco", "csb": "kashubian", "cu": "slavo della Chiesa", "cv": "ciuvascio", "cy": "gallese", "da": "danese", "dak": "dakota", "dar": "dargwa", "dav": "taita", "de": "tedesco", "de-AT": "tedesco austriaco", "de-CH": "alto tedesco svizzero", "del": "delaware", "den": "slave", "dgr": "dogrib", "din": "dinca", "dje": "zarma", "doi": "dogri", "dsb": "basso sorabo", "dtp": "dusun centrale", "dua": "duala", "dum": "olandese medio", "dv": "divehi", "dyo": "jola-fony", "dyu": "diula", "dz": "dzongkha", "dzg": "dazaga", "ebu": "embu", "ee": "ewe", "efi": "efik", "egl": "emiliano", "egy": "egiziano antico", "eka": "ekajuka", "el": "greco", "elx": "elamitico", "en": "inglese", "en-AU": "inglese australiano", "en-CA": "inglese canadese", "en-GB": "inglese britannico", "en-US": "inglese americano", "enm": "inglese medio", "eo": "esperanto", "es": "spagnolo", "es-419": "spagnolo latinoamericano", "es-ES": "spagnolo europeo", "es-MX": "spagnolo messicano", "esu": "yupik centrale", "et": "estone", "eu": "basco", "ewo": "ewondo", "ext": "estremegno", "fa": "persiano", "fan": "fang", "fat": "fanti", "ff": "fulah", "fi": "finlandese", "fil": "filippino", "fit": "finlandese del Tornedalen", "fj": "figiano", "fo": "faroese", "fr": "francese", "fr-CA": "francese canadese", "fr-CH": "francese svizzero", "frc": "francese cajun", "frm": "francese medio", "fro": "francese antico", "frp": "francoprovenzale", "frr": "frisone settentrionale", "frs": "frisone orientale", "fur": "friulano", "fy": "frisone occidentale", "ga": "irlandese", "gaa": "ga", "gag": "gagauzo", "gay": "gayo", "gba": "gbaya", "gbz": "dari zoroastriano", "gd": "gaelico scozzese", "gez": "geez", "gil": "gilbertese", "gl": "galiziano", "glk": "gilaki", "gmh": "tedesco medio alto", "gn": "guaraní", "goh": "tedesco antico alto", "gom": "konkani goano", "gon": "gondi", "gor": "gorontalo", "got": "gotico", "grb": "grebo", "grc": "greco antico", "gsw": "tedesco svizzero", "gu": "gujarati", "guc": "wayuu", "guz": "gusii", "gv": "mannese", "gwi": "gwichʼin", "ha": "hausa", "hai": "haida", "hak": "hakka", "haw": "hawaiano", "he": "ebraico", "hi": "hindi", "hif": "hindi figiano", "hil": "ilongo", "hit": "hittite", "hmn": "hmong", "ho": "hiri motu", "hr": "croato", "hsb": "alto sorabo", "hsn": "xiang", "ht": "haitiano", "hu": "ungherese", "hup": "hupa", "hy": "armeno", "hz": "herero", "ia": "interlingua", "iba": "iban", "ibb": "ibibio", "id": "indonesiano", "ie": "interlingue", "ig": "igbo", "ii": "sichuan yi", "ik": "inupiak", "ilo": "ilocano", "inh": "ingush", "io": "ido", "is": "islandese", "it": "italiano", "iu": "inuktitut", "izh": "ingrico", "ja": "giapponese", "jam": "creolo giamaicano", "jbo": "lojban", "jgo": "ngamambo", "jmc": "machame", "jpr": "giudeo persiano", "jrb": "giudeo arabo", "jut": "jutlandico", "jv": "giavanese", "ka": "georgiano", "kaa": "kara-kalpak", "kab": "cabilo", "kac": "kachin", "kaj": "kai", "kam": "kamba", "kaw": "kawi", "kbd": "cabardino", "kbl": "kanembu", "kcg": "tyap", "kde": "makonde", "kea": "capoverdiano", "kfo": "koro", "kg": "kongo", "kgp": "kaingang", "kha": "khasi", "kho": "khotanese", "khq": "koyra chiini", "khw": "khowar", "ki": "kikuyu", "kiu": "kirmanjki", "kj": "kuanyama", "kk": "kazako", "kkj": "kako", "kl": "groenlandese", "kln": "kalenjin", "km": "khmer", "kmb": "kimbundu", "kn": "kannada", "ko": "coreano", "koi": "permiaco", "kok": "konkani", "kos": "kosraean", "kpe": "kpelle", "kr": "kanuri", "krc": "karachay-Balkar", "krl": "careliano", "kru": "kurukh", "ks": "kashmiri", "ksb": "shambala", "ksf": "bafia", "ksh": "coloniese", "ku": "curdo", "kum": "kumyk", "kut": "kutenai", "kv": "komi", "kw": "cornico", "ky": "kirghiso", "la": "latino", "lad": "giudeo-spagnolo", "lag": "langi", "lah": "lahnda", "lam": "lamba", "lb": "lussemburghese", "lez": "lesgo", "lfn": "Lingua Franca Nova", "lg": "ganda", "li": "limburghese", "lij": "ligure", "liv": "livone", "lkt": "lakota", "lmo": "lombardo", "ln": "lingala", "lo": "lao", "lol": "lolo bantu", "lou": "creolo della Louisiana", "loz": "lozi", "lrc": "luri settentrionale", "lt": "lituano", "ltg": "letgallo", "lu": "luba-katanga", "lua": "luba-lulua", "lui": "luiseno", "lun": "lunda", "lus": "lushai", "luy": "luyia", "lv": "lettone", "lzh": "cinese classico", "lzz": "laz", "mad": "madurese", "maf": "mafa", "mag": "magahi", "mai": "maithili", "mak": "makasar", "man": "mandingo", "mas": "masai", "mde": "maba", "mdf": "moksha", "mdr": "mandar", "men": "mende", "mer": "meru", "mfe": "creolo mauriziano", "mg": "malgascio", "mga": "irlandese medio", "mgh": "makhuwa-meetto", "mgo": "meta’", "mh": "marshallese", "mi": "maori", "mic": "micmac", "min": "menangkabau", "mk": "macedone", "ml": "malayalam", "mn": "mongolo", "mnc": "manchu", "mni": "manipuri", "moh": "mohawk", "mos": "mossi", "mr": "marathi", "mrj": "mari occidentale", "ms": "malese", "mt": "maltese", "mua": "mundang", "mus": "creek", "mwl": "mirandese", "mwr": "marwari", "mwv": "mentawai", "my": "birmano", "mye": "myene", "myv": "erzya", "mzn": "mazandarani", "na": "nauru", "nan": "min nan", "nap": "napoletano", "naq": "nama", "nb": "norvegese bokmål", "nd": "ndebele del nord", "nds": "basso tedesco", "nds-NL": "basso tedesco olandese", "ne": "nepalese", "new": "newari", "ng": "ndonga", "nia": "nias", "niu": "niue", "njo": "ao", "nl": "olandese", "nl-BE": "fiammingo", "nmg": "kwasio", "nn": "norvegese nynorsk", "nnh": "ngiemboon", "no": "norvegese", "nog": "nogai", "non": "norse antico", "nov": "novial", "nqo": "n’ko", "nr": "ndebele del sud", "nso": "sotho del nord", "nus": "nuer", "nv": "navajo", "nwc": "newari classico", "ny": "nyanja", "nym": "nyamwezi", "nyn": "nyankole", "nyo": "nyoro", "nzi": "nzima", "oc": "occitano", "oj": "ojibwa", "om": "oromo", "or": "odia", "os": "ossetico", "osa": "osage", "ota": "turco ottomano", "pa": "punjabi", "pag": "pangasinan", "pal": "pahlavi", "pam": "pampanga", "pap": "papiamento", "pau": "palau", "pcd": "piccardo", "pcm": "pidgin nigeriano", "pdc": "tedesco della Pennsylvania", "peo": "persiano antico", "pfl": "tedesco palatino", "phn": "fenicio", "pi": "pali", "pl": "polacco", "pms": "piemontese", "pnt": "pontico", "pon": "ponape", "prg": "prussiano", "pro": "provenzale antico", "ps": "pashto", "pt": "portoghese", "pt-BR": "portoghese brasiliano", "pt-PT": "portoghese europeo", "qu": "quechua", "quc": "k’iche’", "qug": "quechua dell’altopiano del Chimborazo", "raj": "rajasthani", "rap": "rapanui", "rar": "rarotonga", "rgn": "romagnolo", "rif": "tarifit", "rm": "romancio", "rn": "rundi", "ro": "rumeno", "ro-MD": "moldavo", "rof": "rombo", "rom": "romani", "rtm": "rotumano", "ru": "russo", "rue": "ruteno", "rug": "roviana", "rup": "arumeno", "rw": "kinyarwanda", "rwk": "rwa", "sa": "sanscrito", "sad": "sandawe", "sah": "yakut", "sam": "aramaico samaritano", "saq": "samburu", "sas": "sasak", "sat": "santali", "saz": "saurashtra", "sba": "ngambay", "sbp": "sangu", "sc": "sardo", "scn": "siciliano", "sco": "scozzese", "sd": "sindhi", "sdc": "sassarese", "sdh": "curdo meridionale", "se": "sami del nord", "see": "seneca", "seh": "sena", "sei": "seri", "sel": "selkup", "ses": "koyraboro senni", "sg": "sango", "sga": "irlandese antico", "sgs": "samogitico", "sh": "serbo-croato", "shi": "tashelhit", "shn": "shan", "shu": "arabo ciadiano", "si": "singalese", "sid": "sidamo", "sk": "slovacco", "sl": "sloveno", "sli": "tedesco slesiano", "sly": "selayar", "sm": "samoano", "sma": "sami del sud", "smj": "sami di Lule", "smn": "sami di Inari", "sms": "sami skolt", "sn": "shona", "snk": "soninke", "so": "somalo", "sog": "sogdiano", "sq": "albanese", "sr": "serbo", "srn": "sranan tongo", "srr": "serer", "ss": "swati", "ssy": "saho", "st": "sotho del sud", "stq": "saterfriesisch", "su": "sundanese", "suk": "sukuma", "sus": "susu", "sux": "sumero", "sv": "svedese", "sw": "swahili", "sw-CD": "swahili del Congo", "swb": "comoriano", "syc": "siriaco classico", "syr": "siriaco", "szl": "slesiano", "ta": "tamil", "tcy": "tulu", "te": "telugu", "tem": "temne", "teo": "teso", "ter": "tereno", "tet": "tetum", "tg": "tagico", "th": "thai", "ti": "tigrino", "tig": "tigre", "tk": "turcomanno", "tkl": "tokelau", "tkr": "tsakhur", "tl": "tagalog", "tlh": "klingon", "tli": "tlingit", "tly": "taliscio", "tmh": "tamashek", "tn": "tswana", "to": "tongano", "tog": "nyasa del Tonga", "tpi": "tok pisin", "tr": "turco", "tru": "turoyo", "trv": "taroko", "ts": "tsonga", "tsd": "zaconico", "tsi": "tsimshian", "tt": "tataro", "ttt": "tat islamico", "tum": "tumbuka", "tvl": "tuvalu", "tw": "ci", "twq": "tasawaq", "ty": "taitiano", "tyv": "tuvinian", "tzm": "tamazight", "udm": "udmurt", "ug": "uiguro", "uga": "ugaritico", "uk": "ucraino", "umb": "mbundu", "ur": "urdu", "uz": "uzbeco", "ve": "venda", "vec": "veneto", "vep": "vepso", "vi": "vietnamita", "vls": "fiammingo occidentale", "vo": "volapük", "vot": "voto", "vro": "võro", "vun": "vunjo", "wa": "vallone", "wae": "walser", "wal": "walamo", "war": "waray", "was": "washo", "wbp": "warlpiri", "wo": "wolof", "wuu": "wu", "xal": "kalmyk", "xh": "xhosa", "xmf": "mengrelio", "xog": "soga", "yao": "yao (bantu)", "yap": "yapese", "yav": "yangben", "ybb": "yemba", "yi": "yiddish", "yo": "yoruba", "yrl": "nheengatu", "yue": "cantonese", "za": "zhuang", "zap": "zapotec", "zbl": "blissymbol", "zea": "zelandese", "zen": "zenaga", "zgh": "tamazight del Marocco standard", "zh": "cinese", "zh-Hans": "cinese semplificato", "zh-Hant": "cinese tradizionale", "zu": "zulu", "zun": "zuni", "zza": "zaza"}}, + "ja": {"rtl": false, "languageNames": {"aa": "アファル語", "ab": "アブハズ語", "ace": "アチェ語", "ach": "アチョリ語", "ada": "アダングメ語", "ady": "アディゲ語", "ae": "アヴェスタ語", "aeb": "チュニジア・アラビア語", "af": "アフリカーンス語", "afh": "アフリヒリ語", "agq": "アゲム語", "ain": "アイヌ語", "ak": "アカン語", "akk": "アッカド語", "akz": "アラバマ語", "ale": "アレウト語", "aln": "ゲグ・アルバニア語", "alt": "南アルタイ語", "am": "アムハラ語", "an": "アラゴン語", "ang": "古英語", "anp": "アンギカ語", "ar": "アラビア語", "ar-001": "現代標準アラビア語", "arc": "アラム語", "arn": "マプチェ語", "aro": "アラオナ語", "arp": "アラパホー語", "arq": "アルジェリア・アラビア語", "ars": "ナジュド地方・アラビア語", "arw": "アラワク語", "ary": "モロッコ・アラビア語", "arz": "エジプト・アラビア語", "as": "アッサム語", "asa": "アス語", "ase": "アメリカ手話", "ast": "アストゥリアス語", "av": "アヴァル語", "avk": "コタヴァ", "awa": "アワディー語", "ay": "アイマラ語", "az": "アゼルバイジャン語", "ba": "バシキール語", "bal": "バルーチー語", "ban": "バリ語", "bar": "バイエルン・オーストリア語", "bas": "バサ語", "bax": "バムン語", "bbc": "トバ・バタク語", "bbj": "ゴーマラ語", "be": "ベラルーシ語", "bej": "ベジャ語", "bem": "ベンバ語", "bew": "ベタウィ語", "bez": "ベナ語", "bfd": "バフット語", "bfq": "バダガ語", "bg": "ブルガリア語", "bgn": "西バローチー語", "bho": "ボージュプリー語", "bi": "ビスラマ語", "bik": "ビコル語", "bin": "ビニ語", "bjn": "バンジャル語", "bkm": "コム語", "bla": "シクシカ語", "bm": "バンバラ語", "bn": "ベンガル語", "bo": "チベット語", "bpy": "ビシュヌプリヤ・マニプリ語", "bqi": "バフティヤーリー語", "br": "ブルトン語", "bra": "ブラジ語", "brh": "ブラフイ語", "brx": "ボド語", "bs": "ボスニア語", "bss": "アコース語", "bua": "ブリヤート語", "bug": "ブギ語", "bum": "ブル語", "byn": "ビリン語", "byv": "メドゥンバ語", "ca": "カタロニア語", "cad": "カドー語", "car": "カリブ語", "cay": "カユーガ語", "cch": "チャワイ語", "ccp": "チャクマ語", "ce": "チェチェン語", "ceb": "セブアノ語", "cgg": "チガ語", "ch": "チャモロ語", "chb": "チブチャ語", "chg": "チャガタイ語", "chk": "チューク語", "chm": "マリ語", "chn": "チヌーク混成語", "cho": "チョクトー語", "chp": "チペワイアン語", "chr": "チェロキー語", "chy": "シャイアン語", "ckb": "中央クルド語", "co": "コルシカ語", "cop": "コプト語", "cps": "カピス語", "cr": "クリー語", "crh": "クリミア・タタール語", "crs": "セーシェル・クレオール語", "cs": "チェコ語", "csb": "カシューブ語", "cu": "教会スラブ語", "cv": "チュヴァシ語", "cy": "ウェールズ語", "da": "デンマーク語", "dak": "ダコタ語", "dar": "ダルグワ語", "dav": "タイタ語", "de": "ドイツ語", "de-AT": "ドイツ語 (オーストリア)", "de-CH": "標準ドイツ語 (スイス)", "del": "デラウェア語", "den": "スレイビー語", "dgr": "ドグリブ語", "din": "ディンカ語", "dje": "ザルマ語", "doi": "ドーグリー語", "dsb": "低地ソルブ語", "dtp": "中央ドゥスン語", "dua": "ドゥアラ語", "dum": "中世オランダ語", "dv": "ディベヒ語", "dyo": "ジョラ=フォニィ語", "dyu": "ジュラ語", "dz": "ゾンカ語", "dzg": "ダザガ語", "ebu": "エンブ語", "ee": "エウェ語", "efi": "エフィク語", "egl": "エミリア語", "egy": "古代エジプト語", "eka": "エカジュク語", "el": "ギリシャ語", "elx": "エラム語", "en": "英語", "en-AU": "オーストラリア英語", "en-CA": "カナダ英語", "en-GB": "イギリス英語", "en-US": "アメリカ英語", "enm": "中英語", "eo": "エスペラント語", "es": "スペイン語", "es-419": "スペイン語 (ラテンアメリカ)", "es-ES": "スペイン語 (イベリア半島)", "es-MX": "スペイン語 (メキシコ)", "esu": "中央アラスカ・ユピック語", "et": "エストニア語", "eu": "バスク語", "ewo": "エウォンド語", "ext": "エストレマドゥーラ語", "fa": "ペルシア語", "fan": "ファング語", "fat": "ファンティー語", "ff": "フラ語", "fi": "フィンランド語", "fil": "フィリピノ語", "fit": "トルネダール・フィンランド語", "fj": "フィジー語", "fo": "フェロー語", "fon": "フォン語", "fr": "フランス語", "fr-CA": "フランス語 (カナダ)", "fr-CH": "フランス語 (スイス)", "frc": "ケイジャン・フランス語", "frm": "中期フランス語", "fro": "古フランス語", "frp": "アルピタン語", "frr": "北フリジア語", "frs": "東フリジア語", "fur": "フリウリ語", "fy": "西フリジア語", "ga": "アイルランド語", "gaa": "ガ語", "gag": "ガガウズ語", "gan": "贛語", "gay": "ガヨ語", "gba": "バヤ語", "gbz": "ダリー語(ゾロアスター教)", "gd": "スコットランド・ゲール語", "gez": "ゲエズ語", "gil": "キリバス語", "gl": "ガリシア語", "glk": "ギラキ語", "gmh": "中高ドイツ語", "gn": "グアラニー語", "goh": "古高ドイツ語", "gom": "ゴア・コンカニ語", "gon": "ゴーンディー語", "gor": "ゴロンタロ語", "got": "ゴート語", "grb": "グレボ語", "grc": "古代ギリシャ語", "gsw": "スイスドイツ語", "gu": "グジャラート語", "guc": "ワユ語", "gur": "フラフラ語", "guz": "グシイ語", "gv": "マン島語", "gwi": "グウィッチン語", "ha": "ハウサ語", "hai": "ハイダ語", "hak": "客家語", "haw": "ハワイ語", "he": "ヘブライ語", "hi": "ヒンディー語", "hif": "フィジー・ヒンディー語", "hil": "ヒリガイノン語", "hit": "ヒッタイト語", "hmn": "フモン語", "ho": "ヒリモツ語", "hr": "クロアチア語", "hsb": "高地ソルブ語", "hsn": "湘語", "ht": "ハイチ・クレオール語", "hu": "ハンガリー語", "hup": "フパ語", "hy": "アルメニア語", "hz": "ヘレロ語", "ia": "インターリングア", "iba": "イバン語", "ibb": "イビビオ語", "id": "インドネシア語", "ie": "インターリング", "ig": "イボ語", "ii": "四川イ語", "ik": "イヌピアック語", "ilo": "イロカノ語", "inh": "イングーシ語", "io": "イド語", "is": "アイスランド語", "it": "イタリア語", "iu": "イヌクティトット語", "izh": "イングリア語", "ja": "日本語", "jam": "ジャマイカ・クレオール語", "jbo": "ロジバン語", "jgo": "ンゴンバ語", "jmc": "マチャメ語", "jpr": "ユダヤ・ペルシア語", "jrb": "ユダヤ・アラビア語", "jut": "ユトランド語", "jv": "ジャワ語", "ka": "ジョージア語", "kaa": "カラカルパク語", "kab": "カビル語", "kac": "カチン語", "kaj": "カジェ語", "kam": "カンバ語", "kaw": "カウィ語", "kbd": "カバルド語", "kbl": "カネンブ語", "kcg": "カタブ語", "kde": "マコンデ語", "kea": "カーボベルデ・クレオール語", "ken": "ニャン語", "kfo": "コロ語", "kg": "コンゴ語", "kgp": "カインガング語", "kha": "カシ語", "kho": "コータン語", "khq": "コイラ・チーニ語", "khw": "コワール語", "ki": "キクユ語", "kiu": "キルマンジュキ語", "kj": "クワニャマ語", "kk": "カザフ語", "kkj": "カコ語", "kl": "グリーンランド語", "kln": "カレンジン語", "km": "クメール語", "kmb": "キンブンド語", "kn": "カンナダ語", "ko": "韓国語", "koi": "コミ・ペルミャク語", "kok": "コンカニ語", "kos": "コスラエ語", "kpe": "クペレ語", "kr": "カヌリ語", "krc": "カラチャイ・バルカル語", "kri": "クリオ語", "krj": "キナライア語", "krl": "カレリア語", "kru": "クルク語", "ks": "カシミール語", "ksb": "サンバー語", "ksf": "バフィア語", "ksh": "ケルン語", "ku": "クルド語", "kum": "クムク語", "kut": "クテナイ語", "kv": "コミ語", "kw": "コーンウォール語", "ky": "キルギス語", "la": "ラテン語", "lad": "ラディノ語", "lag": "ランギ語", "lah": "ラフンダー語", "lam": "ランバ語", "lb": "ルクセンブルク語", "lez": "レズギ語", "lfn": "リングア・フランカ・ノバ", "lg": "ガンダ語", "li": "リンブルフ語", "lij": "リグリア語", "liv": "リヴォニア語", "lkt": "ラコタ語", "lmo": "ロンバルド語", "ln": "リンガラ語", "lo": "ラオ語", "lol": "モンゴ語", "lou": "ルイジアナ・クレオール語", "loz": "ロジ語", "lrc": "北ロル語", "lt": "リトアニア語", "ltg": "ラトガリア語", "lu": "ルバ・カタンガ語", "lua": "ルバ・ルルア語", "lui": "ルイセーニョ語", "lun": "ルンダ語", "luo": "ルオ語", "lus": "ミゾ語", "luy": "ルヒヤ語", "lv": "ラトビア語", "lzh": "漢文", "lzz": "ラズ語", "mad": "マドゥラ語", "maf": "マファ語", "mag": "マガヒー語", "mai": "マイティリー語", "mak": "マカッサル語", "man": "マンディンゴ語", "mas": "マサイ語", "mde": "マバ語", "mdf": "モクシャ語", "mdr": "マンダル語", "men": "メンデ語", "mer": "メル語", "mfe": "モーリシャス・クレオール語", "mg": "マダガスカル語", "mga": "中期アイルランド語", "mgh": "マクア・ミート語", "mgo": "メタ語", "mh": "マーシャル語", "mi": "マオリ語", "mic": "ミクマク語", "min": "ミナンカバウ語", "mk": "マケドニア語", "ml": "マラヤーラム語", "mn": "モンゴル語", "mnc": "満州語", "mni": "マニプリ語", "moh": "モーホーク語", "mos": "モシ語", "mr": "マラーティー語", "mrj": "山地マリ語", "ms": "マレー語", "mt": "マルタ語", "mua": "ムンダン語", "mus": "クリーク語", "mwl": "ミランダ語", "mwr": "マールワーリー語", "mwv": "メンタワイ語", "my": "ミャンマー語", "mye": "ミエネ語", "myv": "エルジャ語", "mzn": "マーザンダラーン語", "na": "ナウル語", "nan": "閩南語", "nap": "ナポリ語", "naq": "ナマ語", "nb": "ノルウェー語(ブークモール)", "nd": "北ンデベレ語", "nds": "低地ドイツ語", "nds-NL": "低地ドイツ語 (オランダ)", "ne": "ネパール語", "new": "ネワール語", "ng": "ンドンガ語", "nia": "ニアス語", "niu": "ニウーエイ語", "njo": "アオ・ナガ語", "nl": "オランダ語", "nl-BE": "フレミッシュ語", "nmg": "クワシオ語", "nn": "ノルウェー語(ニーノシュク)", "nnh": "ンジエムブーン語", "no": "ノルウェー語", "nog": "ノガイ語", "non": "古ノルド語", "nov": "ノヴィアル", "nqo": "ンコ語", "nr": "南ンデベレ語", "nso": "北部ソト語", "nus": "ヌエル語", "nv": "ナバホ語", "nwc": "古典ネワール語", "ny": "ニャンジャ語", "nym": "ニャムウェジ語", "nyn": "ニャンコレ語", "nyo": "ニョロ語", "nzi": "ンゼマ語", "oc": "オック語", "oj": "オジブウェー語", "om": "オロモ語", "or": "オディア語", "os": "オセット語", "osa": "オセージ語", "ota": "オスマントルコ語", "pa": "パンジャブ語", "pag": "パンガシナン語", "pal": "パフラヴィー語", "pam": "パンパンガ語", "pap": "パピアメント語", "pau": "パラオ語", "pcd": "ピカルディ語", "pcm": "ナイジェリア・ピジン語", "pdc": "ペンシルベニア・ドイツ語", "pdt": "メノナイト低地ドイツ語", "peo": "古代ペルシア語", "pfl": "プファルツ語", "phn": "フェニキア語", "pi": "パーリ語", "pl": "ポーランド語", "pms": "ピエモンテ語", "pnt": "ポントス・ギリシャ語", "pon": "ポンペイ語", "prg": "プロシア語", "pro": "古期プロバンス語", "ps": "パシュトゥー語", "pt": "ポルトガル語", "pt-BR": "ポルトガル語 (ブラジル)", "pt-PT": "ポルトガル語 (イベリア半島)", "qu": "ケチュア語", "quc": "キチェ語", "qug": "チンボラソ高地ケチュア語", "raj": "ラージャスターン語", "rap": "ラパヌイ語", "rar": "ラロトンガ語", "rgn": "ロマーニャ語", "rif": "リーフ語", "rm": "ロマンシュ語", "rn": "ルンディ語", "ro": "ルーマニア語", "ro-MD": "モルダビア語", "rof": "ロンボ語", "rom": "ロマーニー語", "root": "ルート", "rtm": "ロツマ語", "ru": "ロシア語", "rue": "ルシン語", "rug": "ロヴィアナ語", "rup": "アルーマニア語", "rw": "キニアルワンダ語", "rwk": "ルワ語", "sa": "サンスクリット語", "sad": "サンダウェ語", "sah": "サハ語", "sam": "サマリア・アラム語", "saq": "サンブル語", "sas": "ササク語", "sat": "サンターリー語", "saz": "サウラーシュトラ語", "sba": "ンガムバイ語", "sbp": "サング語", "sc": "サルデーニャ語", "scn": "シチリア語", "sco": "スコットランド語", "sd": "シンド語", "sdc": "サッサリ・サルデーニャ語", "sdh": "南部クルド語", "se": "北サーミ語", "see": "セネカ語", "seh": "セナ語", "sei": "セリ語", "sel": "セリクプ語", "ses": "コイラボロ・センニ語", "sg": "サンゴ語", "sga": "古アイルランド語", "sgs": "サモギティア語", "sh": "セルボ・クロアチア語", "shi": "タシルハイト語", "shn": "シャン語", "shu": "チャド・アラビア語", "si": "シンハラ語", "sid": "シダモ語", "sk": "スロバキア語", "sl": "スロベニア語", "sli": "低シレジア語", "sly": "スラヤール語", "sm": "サモア語", "sma": "南サーミ語", "smj": "ルレ・サーミ語", "smn": "イナリ・サーミ語", "sms": "スコルト・サーミ語", "sn": "ショナ語", "snk": "ソニンケ語", "so": "ソマリ語", "sog": "ソグド語", "sq": "アルバニア語", "sr": "セルビア語", "srn": "スリナム語", "srr": "セレル語", "ss": "スワジ語", "ssy": "サホ語", "st": "南部ソト語", "stq": "ザーターフリジア語", "su": "スンダ語", "suk": "スクマ語", "sus": "スス語", "sux": "シュメール語", "sv": "スウェーデン語", "sw": "スワヒリ語", "sw-CD": "コンゴ・スワヒリ語", "swb": "コモロ語", "syc": "古典シリア語", "syr": "シリア語", "szl": "シレジア語", "ta": "タミル語", "tcy": "トゥル語", "te": "テルグ語", "tem": "テムネ語", "teo": "テソ語", "ter": "テレーノ語", "tet": "テトゥン語", "tg": "タジク語", "th": "タイ語", "ti": "ティグリニア語", "tig": "ティグレ語", "tiv": "ティブ語", "tk": "トルクメン語", "tkl": "トケラウ語", "tkr": "ツァフル語", "tl": "タガログ語", "tlh": "クリンゴン語", "tli": "トリンギット語", "tly": "タリシュ語", "tmh": "タマシェク語", "tn": "ツワナ語", "to": "トンガ語", "tog": "トンガ語(ニアサ)", "tpi": "トク・ピシン語", "tr": "トルコ語", "tru": "トゥロヨ語", "trv": "タロコ語", "ts": "ツォンガ語", "tsd": "ツァコン語", "tsi": "チムシュ語", "tt": "タタール語", "ttt": "ムスリム・タタール語", "tum": "トゥンブカ語", "tvl": "ツバル語", "tw": "トウィ語", "twq": "タサワク語", "ty": "タヒチ語", "tyv": "トゥヴァ語", "tzm": "中央アトラス・タマジクト語", "udm": "ウドムルト語", "ug": "ウイグル語", "uga": "ウガリト語", "uk": "ウクライナ語", "umb": "ムブンドゥ語", "ur": "ウルドゥー語", "uz": "ウズベク語", "vai": "ヴァイ語", "ve": "ベンダ語", "vec": "ヴェネト語", "vep": "ヴェプス語", "vi": "ベトナム語", "vls": "西フラマン語", "vmf": "マインフランク語", "vo": "ヴォラピュク語", "vot": "ヴォート語", "vro": "ヴォロ語", "vun": "ヴンジョ語", "wa": "ワロン語", "wae": "ヴァリス語", "wal": "ウォライタ語", "war": "ワライ語", "was": "ワショ語", "wbp": "ワルピリ語", "wo": "ウォロフ語", "wuu": "呉語", "xal": "カルムイク語", "xh": "コサ語", "xmf": "メグレル語", "xog": "ソガ語", "yao": "ヤオ語", "yap": "ヤップ語", "yav": "ヤンベン語", "ybb": "イエンバ語", "yi": "イディッシュ語", "yo": "ヨルバ語", "yrl": "ニェエンガトゥ語", "yue": "広東語", "za": "チワン語", "zap": "サポテカ語", "zbl": "ブリスシンボル", "zea": "ゼーラント語", "zen": "ゼナガ語", "zgh": "標準モロッコ タマジクト語", "zh": "中国語", "zh-Hans": "簡体中国語", "zh-Hant": "繁体中国語", "zu": "ズールー語", "zun": "ズニ語", "zza": "ザザ語"}}, + "jv": {"rtl": false, "languageNames": {"agq": "Aghem", "ak": "Akan", "am": "Amharik", "ar": "Arab", "ar-001": "Arab Standar Anyar", "as": "Assam", "asa": "Asu", "ast": "Asturia", "az": "Azerbaijan", "bas": "Basaa", "bem": "Bemba", "bez": "Bena", "bg": "Bulgaria", "bm": "Bambara", "bn": "Bengali", "bo": "Tibet", "br": "Breton", "brx": "Bodo", "ca": "Katala", "ce": "Chechen", "ceb": "Cebuano", "cgg": "Chiga", "chr": "Cherokee", "ckb": "Kurdi Tengah", "co": "Korsika", "cs": "Ceska", "cu": "Slavia Gerejani", "cy": "Welsh", "da": "Dansk", "dav": "Taita", "de": "Jérman", "de-AT": "Jérman (Ostenrik)", "de-CH": "Jérman (Switserlan)", "dje": "Zarma", "dsb": "Sorbia Non Standar", "dua": "Duala", "dyo": "Jola-Fonyi", "dz": "Dzongkha", "ebu": "Embu", "ee": "Ewe", "el": "Yunani", "en": "Inggris", "en-AU": "Inggris (Ostrali)", "en-CA": "Inggris (Kanada)", "en-GB": "Inggris (Karajan Manunggal)", "en-US": "Inggris (Amérika Sarékat)", "eo": "Esperanto", "es": "Spanyol", "es-419": "Spanyol (Amerika Latin)", "es-ES": "Spanyol (Eropah)", "es-MX": "Spanyol (Meksiko)", "et": "Estonia", "eu": "Basque", "ewo": "Ewondo", "fa": "Persia", "ff": "Fulah", "fi": "Suomi", "fil": "Tagalog", "fo": "Faroe", "fr": "Prancis", "fr-CA": "Prancis (Kanada)", "fr-CH": "Prancis (Switserlan)", "fur": "Friulian", "fy": "Frisia Sisih Kulon", "ga": "Irlandia", "gd": "Gaulia", "gl": "Galisia", "gsw": "Jerman Swiss", "gu": "Gujarat", "guz": "Gusii", "gv": "Manx", "ha": "Hausa", "haw": "Hawaii", "he": "Ibrani", "hi": "India", "hmn": "Hmong", "hr": "Kroasia", "hsb": "Sorbia Standar", "ht": "Kreol Haiti", "hu": "Hungaria", "hy": "Armenia", "ia": "Interlingua", "id": "Indonesia", "ig": "Iqbo", "ii": "Sichuan Yi", "is": "Islandia", "it": "Italia", "ja": "Jepang", "jgo": "Ngomba", "jmc": "Machame", "jv": "Jawa", "ka": "Georgia", "kab": "Kabyle", "kam": "Kamba", "kde": "Makonde", "kea": "Kabuverdianu", "khq": "Koyra Chiini", "ki": "Kikuyu", "kk": "Kazakh", "kkj": "Kako", "kl": "Kalaallisut", "kln": "Kalenjin", "km": "Khmer", "kn": "Kannada", "ko": "Korea", "kok": "Konkani", "ks": "Kashmiri", "ksb": "Shambala", "ksf": "Bafia", "ksh": "Colonia", "ku": "Kurdis", "kw": "Kernowek", "ky": "Kirgis", "la": "Latin", "lag": "Langi", "lb": "Luksemburg", "lg": "Ganda", "lkt": "Lakota", "ln": "Lingala", "lo": "Laos", "lrc": "Luri Sisih Lor", "lt": "Lithuania", "lu": "Luba-Katanga", "luo": "Luo", "luy": "Luyia", "lv": "Latvia", "mas": "Masai", "mer": "Meru", "mfe": "Morisyen", "mg": "Malagasi", "mgh": "Makhuwa-Meeto", "mgo": "Meta’", "mi": "Maori", "mk": "Makedonia", "ml": "Malayalam", "mn": "Mongolia", "mr": "Marathi", "ms": "Melayu", "mt": "Malta", "mua": "Mundang", "my": "Myanmar", "mzn": "Mazanderani", "naq": "Nama", "nb": "Bokmål Norwegia", "nd": "Ndebele Lor", "nds": "Jerman Non Standar", "nds-NL": "Jerman Non Standar (Walanda)", "ne": "Nepal", "nl": "Walanda", "nl-BE": "Flemis", "nmg": "Kwasio", "nn": "Nynorsk Norwegia", "nnh": "Ngiemboon", "nus": "Nuer", "ny": "Nyanja", "nyn": "Nyankole", "om": "Oromo", "or": "Odia", "os": "Ossetia", "pa": "Punjab", "pl": "Polandia", "prg": "Prusia", "ps": "Pashto", "pt": "Portugis", "pt-BR": "Portugis (Brasil)", "pt-PT": "Portugis (Portugal)", "qu": "Quechua", "rm": "Roman", "rn": "Rundi", "ro": "Rumania", "ro-MD": "Rumania (Moldova)", "rof": "Rombo", "ru": "Rusia", "rw": "Kinyarwanda", "rwk": "Rwa", "sa": "Sanskerta", "sah": "Sakha", "saq": "Samburu", "sbp": "Sangu", "sd": "Sindhi", "se": "Sami Sisih Lor", "seh": "Sena", "ses": "Koyraboro Senni", "sg": "Sango", "shi": "Tachelhit", "si": "Sinhala", "sk": "Slowakia", "sl": "Slovenia", "sm": "Samoa", "smn": "Inari Sami", "sn": "Shona", "so": "Somalia", "sq": "Albania", "sr": "Serbia", "st": "Sotho Sisih Kidul", "su": "Sunda", "sv": "Swedia", "sw": "Swahili", "sw-CD": "Swahili (Kongo - Kinshasa)", "ta": "Tamil", "te": "Telugu", "teo": "Teso", "tg": "Tajik", "th": "Thailand", "ti": "Tigrinya", "tk": "Turkmen", "to": "Tonga", "tr": "Turki", "tt": "Tatar", "twq": "Tasawaq", "tzm": "Tamazight Atlas Tengah", "ug": "Uighur", "uk": "Ukraina", "ur": "Urdu", "uz": "Uzbek", "vai": "Vai", "vi": "Vietnam", "vo": "Volapuk", "vun": "Vunjo", "wae": "Walser", "wo": "Wolof", "xh": "Xhosa", "xog": "Soga", "yav": "Yangben", "yi": "Yiddish", "yo": "Yoruba", "yue": "Kanton", "zgh": "Tamazight Moroko Standar", "zh": "Tyonghwa", "zh-Hans": "Tyonghwa (Prasaja)", "zh-Hant": "Tyonghwa (Tradisional)", "zu": "Zulu"}}, + "km": {"rtl": false, "languageNames": {"aa": "អាហ្វារ", "ab": "អាប់ខាហ៊្សាន", "ace": "អាកហ៊ីនឺស", "ada": "អាដេងមី", "ady": "អាឌីហ្គី", "ae": "អាវេស្ថាន", "af": "អាហ្វ្រិកាន", "agq": "អាហ្គីម", "ain": "អាយនូ", "ak": "អាកាន", "ale": "អាលូត", "alt": "អាល់តៃខាងត្បូង", "am": "អាំហារិក", "an": "អារ៉ាហ្គោន", "anp": "អាហ្គីកា", "ar": "អារ៉ាប់", "ar-001": "អារ៉ាប់ (ស្តង់ដារ)", "arn": "ម៉ាពូឈី", "arp": "អារ៉ាប៉ាហូ", "as": "អាសាមីស", "asa": "អាស៊ូ", "ast": "អាស្ទូរី", "av": "អាវ៉ារីក", "awa": "អាវ៉ាឌី", "ay": "អីម៉ារ៉ា", "az": "អាស៊ែបៃហ្សង់", "ba": "បាស្គៀ", "ban": "បាលី", "bas": "បាសា", "be": "បេឡារុស", "bem": "បេមបា", "bez": "បេណា", "bg": "ប៊ុលហ្គារី", "bgn": "បាឡូជីខាងលិច", "bho": "បូចពូរី", "bi": "ប៊ីស្លាម៉ា", "bin": "ប៊ីនី", "bla": "ស៊ីកស៊ីកា", "bm": "បាម្បារា", "bn": "បង់ក្លាដែស", "bo": "ទីបេ", "br": "ប្រីស្តុន", "brx": "បូដូ", "bs": "បូស្នី", "bug": "ប៊ុកហ្គី", "byn": "ប្ល៊ីន", "ca": "កាតាឡាន", "ce": "ឈីឆេន", "ceb": "ស៊ីប៊ូអាណូ", "cgg": "ឈីហ្គា", "ch": "ឈីម៉ូរ៉ូ", "chk": "ឈូគី", "chm": "ម៉ារី", "cho": "ឆុកតាវ", "chr": "ឆេរូគី", "chy": "ឈីយីនី", "ckb": "ឃើដភាគកណ្តាល", "co": "កូស៊ីខាន", "crs": "សេសេលវ៉ាគ្រីអូល (បារាំង)", "cs": "ឆែក", "cu": "ឈឺជស្លាវិក", "cv": "ឈូវ៉ាស", "cy": "វេល", "da": "ដាណឺម៉ាក", "dak": "ដាកូតា", "dar": "ដាចវ៉ា", "dav": "តៃតា", "de": "អាល្លឺម៉ង់", "de-AT": "អាល្លឺម៉ង់ (អូទ្រីស)", "de-CH": "អាល្លឺម៉ង់ (ស្វីស)", "dgr": "ដូគ្រីប", "dje": "ហ្សាម៉ា", "dsb": "សូប៊ីក្រោម", "dua": "ឌួលឡា", "dv": "ទេវីហ៊ី", "dyo": "ចូឡាហ៊្វុនយី", "dz": "ដុងខា", "dzg": "ដាហ្សាហ្គា", "ebu": "អេមប៊ូ", "ee": "អ៊ីវ", "efi": "អ៊ីហ្វិក", "eka": "អ៊ីកាជុក", "el": "ក្រិក", "en": "អង់គ្លេស", "en-AU": "អង់គ្លេស (អូស្ត្រាលី)", "en-CA": "អង់គ្លេស (កាណាដា)", "en-GB": "អង់គ្លេស (ចក្រភព​អង់គ្លេស)", "en-US": "អង់គ្លេស (សហរដ្ឋអាមេរិក)", "eo": "អេស្ពេរ៉ាន់តូ", "es": "អេស្ប៉ាញ", "es-419": "អេស្ប៉ាញ (អាមេរិក​ឡាទីន)", "es-ES": "អេស្ប៉ាញ (អ៊ឺរ៉ុប)", "es-MX": "អេស្ប៉ាញ (ម៉ិកស៊ិក)", "et": "អេស្តូនី", "eu": "បាសខ៍", "ewo": "អ៊ីវ៉ុនដូ", "fa": "ភឺសៀន", "ff": "ហ្វ៊ូឡា", "fi": "ហ្វាំងឡង់", "fil": "ហ្វីលីពីន", "fj": "ហ៊្វីជី", "fo": "ហ្វារូស", "fon": "ហ្វ៊ុន", "fr": "បារាំង", "fr-CA": "បារាំង (កាណាដា)", "fr-CH": "បារាំង (ស្វីស)", "fur": "ហ៊្វ្រូលាន", "fy": "ហ្វ្រីស៊ានខាងលិច", "ga": "អៀរឡង់", "gaa": "ហ្គា", "gag": "កាគូស", "gd": "ស្កុតហ្កែលិគ", "gez": "ជីស", "gil": "ហ្គីលបឺទ", "gl": "ហ្គាលីស្យាន", "gn": "ហ្គូរ៉ានី", "gor": "ហ្គូរុនតាឡូ", "gsw": "អាល្លឺម៉ង (ស្វីស)", "gu": "ហ្កុយ៉ារាទី", "guz": "ហ្គូស៊ី", "gv": "មេន", "gwi": "ហ្គីចឈីន", "ha": "ហូសា", "haw": "ហាវៃ", "he": "ហេប្រឺ", "hi": "ហិណ្ឌី", "hil": "ហ៊ីលីហ្គេណុន", "hmn": "ម៉ុង", "hr": "ក្រូអាត", "hsb": "សូប៊ីលើ", "ht": "ហៃទី", "hu": "ហុងគ្រី", "hup": "ហ៊ូប៉ា", "hy": "អាមេនី", "hz": "ហឺរីរ៉ូ", "ia": "អីនធើលីង", "iba": "អ៊ីបាន", "ibb": "អាយប៊ីប៊ីអូ", "id": "ឥណ្ឌូណេស៊ី", "ig": "អ៊ីកបូ", "ii": "ស៊ីឈាន់យី", "ilo": "អ៊ីឡូកូ", "inh": "អ៊ិនហ្គូស", "io": "អ៊ីដូ", "is": "អ៊ីស្លង់", "it": "អ៊ីតាលី", "iu": "អ៊ីនុកទីទុត", "ja": "ជប៉ុន", "jbo": "លុចបាន", "jgo": "ងុំបា", "jmc": "ម៉ាឆាំ", "jv": "ជ្វា", "ka": "ហ្សក​ហ្ស៊ី", "kab": "កាប៊ីឡេ", "kac": "កាឈីន", "kaj": "ជូ", "kam": "កាំបា", "kbd": "កាបាឌៀ", "kcg": "យ៉ាប់", "kde": "ម៉ាកូនដេ", "kea": "កាប៊ូវឺឌៀនូ", "kfo": "គូរូ", "kha": "កាស៊ី", "khq": "គុយរ៉ាឈីនី", "ki": "គីគូយូ", "kj": "គូនយ៉ាម៉ា", "kk": "កាហ្សាក់", "kkj": "កាកូ", "kl": "កាឡាលលីស៊ុត", "kln": "កាលែនជីន", "km": "ខ្មែរ", "kmb": "គីមប៊ុនឌូ", "kn": "ខាណាដា", "ko": "កូរ៉េ", "koi": "គូមីភឹមយ៉ាគ", "kok": "គុនកានី", "kpe": "គ្លីប", "kr": "កានូរី", "krc": "ការ៉ាឆាយបាល់កា", "krl": "ការីលា", "kru": "គូរូក", "ks": "កាស្មៀរ", "ksb": "សាមបាឡា", "ksf": "បាហ្វៀ", "ksh": "កូឡូញ", "ku": "ឃឺដ", "kum": "គូមីគ", "kv": "កូមី", "kw": "កូនីស", "ky": "​កៀហ្ស៊ីស", "la": "ឡាតំាង", "lad": "ឡាឌីណូ", "lag": "ឡានហ្គី", "lb": "លុចសំបួ", "lez": "ឡេសហ្គី", "lg": "ហ្គាន់ដា", "li": "លីមប៊ូស", "lkt": "ឡាកូតា", "ln": "លីនកាឡា", "lo": "ឡាវ", "loz": "ឡូហ្ស៊ី", "lrc": "លូរីខាងជើង", "lt": "លីទុយអានី", "lu": "លូបាកាតានហ្គា", "lua": "លូបាលូឡា", "lun": "លុនដា", "luo": "លូអូ", "lus": "មីហ្សូ", "luy": "លូយ៉ា", "lv": "ឡាតវី", "mad": "ម៉ាឌូរីស", "mag": "ម៉ាហ្គាហ៊ី", "mai": "ម៉ៃធីលី", "mak": "ម៉ាកាសា", "mas": "ម៉ាសៃ", "mdf": "មុខសា", "men": "មេនឌី", "mer": "មេរូ", "mfe": "ម៉ូរីស៊ីន", "mg": "ម៉ាឡាហ្គាស៊ី", "mgh": "ម៉ាកគូវ៉ាមីតូ", "mgo": "មេតា", "mh": "ម៉ាស់សល", "mi": "ម៉ោរី", "mic": "មិកមេក", "min": "មីណាងកាប៊ូ", "mk": "ម៉ាសេដូនី", "ml": "ម៉ាឡាយ៉ាឡាម", "mn": "ម៉ុងហ្គោលី", "mni": "ម៉ានីពូរី", "moh": "ម៊ូហាគ", "mos": "មូស៊ី", "mr": "ម៉ារ៉ាធី", "ms": "ម៉ាឡេ", "mt": "ម៉ាល់តា", "mua": "មុនដាង", "mus": "គ្រីក", "mwl": "មីរ៉ានដេស", "my": "ភូមា", "myv": "អឺហ្ស៊ីយ៉ា", "mzn": "ម៉ាហ្សានដឺរេនី", "na": "ណូរូ", "nap": "នាប៉ូលីតាន", "naq": "ណាម៉ា", "nb": "ន័រវែស បុកម៉ាល់", "nd": "នេបេលេខាងជើង", "nds": "អាល្លឺម៉ង់ក្រោម", "nds-NL": "ហ្សាក់ស្យុងក្រោម", "ne": "នេប៉ាល់", "new": "នេវ៉ាវី", "ng": "នុនហ្គា", "nia": "នីអាស", "niu": "នូអៀន", "nl": "ហូឡង់", "nl-BE": "ផ្លាមីស", "nmg": "ក្វាស្យូ", "nn": "ន័រវែស នីនូស", "nnh": "ងៀមប៊ូន", "no": "ន័រវែស", "nog": "ណូហ្គៃ", "nqo": "នគោ", "nr": "នេប៊េលខាងត្បូង", "nso": "សូថូខាងជើង", "nus": "នូអ័រ", "nv": "ណាវ៉ាចូ", "ny": "ណានចា", "nyn": "ណានកូលេ", "oc": "អូសីតាន់", "om": "អូរ៉ូម៉ូ", "or": "អូឌៀ", "os": "អូស៊ីទិក", "pa": "បឹនជាពិ", "pag": "ភេនហ្គាស៊ីណាន", "pam": "ផាមភេនហ្គា", "pap": "ប៉ាប៉ៃមេនតូ", "pau": "ប៉ាលូអាន", "pcm": "ភាសាទំនាក់ទំនងនីហ្សេរីយ៉ា", "pl": "ប៉ូឡូញ", "prg": "ព្រូស៊ាន", "ps": "បាស្តូ", "pt": "ព័រទុយហ្គាល់", "pt-BR": "ព័រទុយហ្គាល់ (ប្រេស៊ីល)", "pt-PT": "ព័រទុយហ្គាល់ (អឺរ៉ុប)", "qu": "ហ្គិកឈួ", "quc": "គីចឈី", "rap": "រ៉ាប៉ានូ", "rar": "រ៉ារ៉ូតុងហ្គាន", "rm": "រ៉ូម៉ង់", "rn": "រុណ្ឌី", "ro": "រូម៉ានី", "ro-MD": "ម៉ុលដាវី", "rof": "រុមបូ", "root": "រូត", "ru": "រុស្ស៊ី", "rup": "អារ៉ូម៉ានី", "rw": "គិនយ៉ាវ៉ាន់ដា", "rwk": "រ៉្វា", "sa": "សំស្ក្រឹត", "sad": "សានដាវី", "sah": "សាខា", "saq": "សាមបូរូ", "sat": "សាន់តាលី", "sba": "ងាំបេយ", "sbp": "សានហ្គូ", "sc": "សាឌីនា", "scn": "ស៊ីស៊ីលាន", "sco": "ស្កុត", "sd": "ស៊ីនឌី", "sdh": "ឃើដភាគខាងត្បូង", "se": "សាមីខាងជើង", "seh": "ស៊ីណា", "ses": "គុយរ៉ាបូរ៉ុស៊ីនី", "sg": "សានហ្គោ", "sh": "សឺបូក្រូអាត", "shi": "តាឈីលហ៊ីត", "shn": "សាន", "si": "ស្រីលង្កា", "sk": "ស្លូវ៉ាគី", "sl": "ស្លូវ៉ានី", "sm": "សាម័រ", "sma": "សាមីខាងត្បូង", "smj": "លូលីសាមី", "smn": "អ៊ីណារីសាម៉ី", "sms": "ស្កុលសាមី", "sn": "សូណា", "snk": "សូនីនគេ", "so": "សូម៉ាលី", "sq": "អាល់បានី", "sr": "ស៊ែប", "srn": "ស្រាណានតុងហ្គោ", "ss": "ស្វាទី", "ssy": "សាហូ", "st": "សូថូខាងត្បូង", "su": "ស៊ូដង់", "suk": "ស៊ូគូម៉ា", "sv": "ស៊ុយអែត", "sw": "ស្វាហ៊ីលី", "sw-CD": "កុងហ្គោស្វាហ៊ីលី", "swb": "កូម៉ូរី", "syr": "ស៊ីរី", "ta": "តាមីល", "te": "តេលុគុ", "tem": "ធីមនី", "teo": "តេសូ", "tet": "ទីទុំ", "tg": "តាហ្ស៊ីគ", "th": "ថៃ", "ti": "ទីហ្គ្រីញ៉ា", "tig": "ធីហ្គ្រា", "tk": "តួកម៉េន", "tlh": "ឃ្លីនហ្គុន", "tn": "ស្វាណា", "to": "តុងហ្គា", "tpi": "ថុកពីស៊ីន", "tr": "ទួរគី", "trv": "តារ៉ូកូ", "ts": "សុងហ្គា", "tt": "តាតា", "tum": "ទុមប៊ូកា", "tvl": "ទូវ៉ាលូ", "tw": "ទ្វី", "twq": "តាសាវ៉ាក់", "ty": "តាហ៊ីទី", "tyv": "ទូវីនៀ", "tzm": "តាម៉ាសាយអាត្លាសកណ្តាល", "udm": "អាត់មូដ", "ug": "អ៊ុយហ្គឺរ", "uk": "អ៊ុយក្រែន", "umb": "អាម់ប៊ុនឌូ", "ur": "អ៊ូរឌូ", "uz": "អ៊ូសបេគ", "vai": "វៃ", "ve": "វេនដា", "vi": "វៀតណាម", "vo": "វូឡាពូក", "vun": "វុនចូ", "wa": "វ៉ាលូន", "wae": "វេលសឺ", "wal": "វ៉ូឡាយតា", "war": "វ៉ារេយ", "wbp": "វ៉ារីប៉ារី", "wo": "វូឡុហ្វ", "xal": "កាលមីគ", "xh": "ឃសា", "xog": "សូហ្គា", "yav": "យ៉ាងបេន", "ybb": "យេមបា", "yi": "យ៉ីឌីស", "yo": "យរូបា", "yue": "កន្តាំង", "za": "ហ្សួង", "zgh": "តាម៉ាហ្សៃម៉ារ៉ុកស្តង់ដា", "zh": "ចិន", "zh-Hans": "ចិន​អក្សរ​កាត់", "zh-Hant": "ចិន​អក្សរ​ពេញ", "zu": "ហ្សូលូ", "zun": "ហ្សូនី", "zza": "ហ្សាហ្សា"}}, + "kn": {"rtl": false, "languageNames": {"aa": "ಅಫಾರ್", "ab": "ಅಬ್ಖಾಜಿಯನ್", "ace": "ಅಛಿನೀಸ್", "ach": "ಅಕೋಲಿ", "ada": "ಅಡಂಗ್ಮೆ", "ady": "ಅಡೈಘೆ", "ae": "ಅವೆಸ್ಟನ್", "af": "ಆಫ್ರಿಕಾನ್ಸ್", "afh": "ಆಫ್ರಿಹಿಲಿ", "agq": "ಅಘೆಮ್", "ain": "ಐನು", "ak": "ಅಕಾನ್", "akk": "ಅಕ್ಕಾಡಿಯನ್", "ale": "ಅಲೆಯುಟ್", "alt": "ದಕ್ಷಿಣ ಅಲ್ಟಾಯ್", "am": "ಅಂಹರಿಕ್", "an": "ಅರಗೊನೀಸ್", "ang": "ಪ್ರಾಚೀನ ಇಂಗ್ಲೀಷ್", "anp": "ಆಂಗಿಕಾ", "ar": "ಅರೇಬಿಕ್", "ar-001": "ಆಧುನಿಕ ಪ್ರಮಾಣಿತ ಅರೇಬಿಕ್", "arc": "ಅರಾಮಿಕ್", "arn": "ಮಪುಚೆ", "arp": "ಅರಪಾಹೋ", "arw": "ಅರಾವಾಕ್", "as": "ಅಸ್ಸಾಮೀಸ್", "asa": "ಅಸು", "ast": "ಆಸ್ಟುರಿಯನ್", "av": "ಅವರಿಕ್", "awa": "ಅವಧಿ", "ay": "ಅಯ್ಮಾರಾ", "az": "ಅಜೆರ್ಬೈಜಾನಿ", "ba": "ಬಶ್ಕಿರ್", "bal": "ಬಲೂಚಿ", "ban": "ಬಲಿನೀಸ್", "bas": "ಬಸಾ", "be": "ಬೆಲರೂಸಿಯನ್", "bej": "ಬೇಜಾ", "bem": "ಬೆಂಬಾ", "bez": "ಬೆನ", "bg": "ಬಲ್ಗೇರಿಯನ್", "bgn": "ಪಶ್ಚಿಮ ಬಲೊಚಿ", "bho": "ಭೋಜಪುರಿ", "bi": "ಬಿಸ್ಲಾಮಾ", "bik": "ಬಿಕೊಲ್", "bin": "ಬಿನಿ", "bla": "ಸಿಕ್ಸಿಕಾ", "bm": "ಬಂಬಾರಾ", "bn": "ಬಾಂಗ್ಲಾ", "bo": "ಟಿಬೇಟಿಯನ್", "br": "ಬ್ರೆಟನ್", "bra": "ಬ್ರಜ್", "brx": "ಬೋಡೊ", "bs": "ಬೋಸ್ನಿಯನ್", "bua": "ಬುರಿಯಟ್", "bug": "ಬುಗಿನೀಸ್", "byn": "ಬ್ಲಿನ್", "ca": "ಕೆಟಲಾನ್", "cad": "ಕ್ಯಾಡ್ಡೋ", "car": "ಕಾರಿಬ್", "cch": "ಅಟ್ಸಮ್", "ce": "ಚೆಚನ್", "ceb": "ಸೆಬುವಾನೊ", "cgg": "ಚಿಗಾ", "ch": "ಕಮೊರೊ", "chb": "ಚಿಬ್ಚಾ", "chg": "ಚಗಟಾಯ್", "chk": "ಚೂಕಿಸೆ", "chm": "ಮಾರಿ", "chn": "ಚಿನೂಕ್ ಜಾರ್ಗೋನ್", "cho": "ಚೋಕ್ಟಾವ್", "chp": "ಚಿಪೆವ್ಯಾನ್", "chr": "ಚೆರೋಕಿ", "chy": "ಚೀಯೆನ್ನೇ", "ckb": "ಮಧ್ಯ ಕುರ್ದಿಶ್", "co": "ಕೋರ್ಸಿಕನ್", "cop": "ಕೊಪ್ಟಿಕ್", "cr": "ಕ್ರೀ", "crh": "ಕ್ರಿಮೀಯನ್ ಟರ್ಕಿಷ್", "crs": "ಸೆಸೆಲ್ವಾ ಕ್ರಯೋಲ್ ಫ್ರೆಂಚ್", "cs": "ಜೆಕ್", "csb": "ಕಶುಬಿಯನ್", "cu": "ಚರ್ಚ್ ಸ್ಲಾವಿಕ್", "cv": "ಚುವಾಶ್", "cy": "ವೆಲ್ಶ್", "da": "ಡ್ಯಾನಿಶ್", "dak": "ಡಕೋಟಾ", "dar": "ದರ್ಗ್ವಾ", "dav": "ಟೈಟ", "de": "ಜರ್ಮನ್", "de-AT": "ಆಸ್ಟ್ರಿಯನ್ ಜರ್ಮನ್", "de-CH": "ಸ್ವಿಸ್ ಹೈ ಜರ್ಮನ್", "del": "ಡೆಲಾವೇರ್", "den": "ಸ್ಲೇವ್", "dgr": "ಡೋಗ್ರಿಬ್", "din": "ಡಿಂಕಾ", "dje": "ಜರ್ಮಾ", "doi": "ಡೋಗ್ರಿ", "dsb": "ಲೋವರ್ ಸೋರ್ಬಿಯನ್", "dua": "ಡುವಾಲಾ", "dum": "ಮಧ್ಯ ಡಚ್", "dv": "ದಿವೆಹಿ", "dyo": "ಜೊಲ-ಫೊನ್ಯಿ", "dyu": "ಡ್ಯೂಲಾ", "dz": "ಜೋಂಗ್‌ಖಾ", "dzg": "ಡಜಾಗ", "ebu": "ಎಂಬು", "ee": "ಈವ್", "efi": "ಎಫಿಕ್", "egy": "ಪ್ರಾಚೀನ ಈಜಿಪ್ಟಿಯನ್", "eka": "ಎಕಾಜುಕ್", "el": "ಗ್ರೀಕ್", "elx": "ಎಲಾಮೈಟ್", "en": "ಇಂಗ್ಲಿಷ್", "en-AU": "ಆಸ್ಟ್ರೇಲಿಯನ್ ಇಂಗ್ಲಿಷ್", "en-CA": "ಕೆನೆಡಿಯನ್ ಇಂಗ್ಲಿಷ್", "en-GB": "ಬ್ರಿಟಿಷ್ ಇಂಗ್ಲಿಷ್", "en-US": "ಅಮೆರಿಕನ್ ಇಂಗ್ಲಿಷ್", "enm": "ಮಧ್ಯ ಇಂಗ್ಲೀಷ್", "eo": "ಎಸ್ಪೆರಾಂಟೊ", "es": "ಸ್ಪ್ಯಾನಿಷ್", "es-419": "ಲ್ಯಾಟಿನ್ ಅಮೇರಿಕನ್ ಸ್ಪ್ಯಾನಿಷ್", "es-ES": "ಯುರೋಪಿಯನ್ ಸ್ಪ್ಯಾನಿಷ್", "es-MX": "ಮೆಕ್ಸಿಕನ್ ಸ್ಪ್ಯಾನಿಷ್", "et": "ಎಸ್ಟೊನಿಯನ್", "eu": "ಬಾಸ್ಕ್", "ewo": "ಇವಾಂಡೋ", "fa": "ಪರ್ಶಿಯನ್", "fan": "ಫಾಂಗ್", "fat": "ಫಾಂಟಿ", "ff": "ಫುಲಾ", "fi": "ಫಿನ್ನಿಶ್", "fil": "ಫಿಲಿಪಿನೊ", "fj": "ಫಿಜಿಯನ್", "fo": "ಫರೋಸಿ", "fon": "ಫೋನ್", "fr": "ಫ್ರೆಂಚ್", "fr-CA": "ಕೆನೆಡಿಯನ್ ಫ್ರೆಂಚ್", "fr-CH": "ಸ್ವಿಸ್ ಫ್ರೆಂಚ್", "frc": "ಕಾಜುನ್ ಫ್ರೆಂಚ್", "frm": "ಮಧ್ಯ ಫ್ರೆಂಚ್", "fro": "ಪ್ರಾಚೀನ ಫ್ರೆಂಚ್", "frr": "ಉತ್ತರ ಫ್ರಿಸಿಯನ್", "frs": "ಪೂರ್ವ ಫ್ರಿಸಿಯನ್", "fur": "ಫ್ರಿಯುಲಿಯನ್", "fy": "ಪಶ್ಚಿಮ ಫ್ರಿಸಿಯನ್", "ga": "ಐರಿಷ್", "gaa": "ಗ", "gag": "ಗಗೌಜ್", "gan": "ಗಾನ್ ಚೀನೀಸ್", "gay": "ಗಾಯೋ", "gba": "ಗ್ಬಾಯಾ", "gd": "ಸ್ಕಾಟಿಶ್ ಗೆಲಿಕ್", "gez": "ಗೀಝ್", "gil": "ಗಿಲ್ಬರ್ಟೀಸ್", "gl": "ಗ್ಯಾಲಿಶಿಯನ್", "gmh": "ಮಧ್ಯ ಹೈ ಜರ್ಮನ್", "gn": "ಗೌರಾನಿ", "goh": "ಪ್ರಾಚೀನ ಹೈ ಜರ್ಮನ್", "gon": "ಗೊಂಡಿ", "gor": "ಗೊರೊಂಟಾಲೋ", "got": "ಗೋಥಿಕ್", "grb": "ಗ್ರೇಬೋ", "grc": "ಪ್ರಾಚೀನ ಗ್ರೀಕ್", "gsw": "ಸ್ವಿಸ್ ಜರ್ಮನ್", "gu": "ಗುಜರಾತಿ", "guz": "ಗುಸಿ", "gv": "ಮ್ಯಾಂಕ್ಸ್", "gwi": "ಗ್ವಿಚ್‌ಇನ್", "ha": "ಹೌಸಾ", "hai": "ಹೈಡಾ", "hak": "ಹಕ್", "haw": "ಹವಾಯಿಯನ್", "he": "ಹೀಬ್ರೂ", "hi": "ಹಿಂದಿ", "hil": "ಹಿಲಿಗೇನನ್", "hit": "ಹಿಟ್ಟಿಟೆ", "hmn": "ಮೋಂಗ್", "ho": "ಹಿರಿ ಮೊಟು", "hr": "ಕ್ರೊಯೇಶಿಯನ್", "hsb": "ಅಪ್ಪರ್ ಸರ್ಬಿಯನ್", "hsn": "ಶಯಾಂಗ್ ಚೀನೀಸೇ", "ht": "ಹೈಟಿಯನ್ ಕ್ರಿಯೋಲಿ", "hu": "ಹಂಗೇರಿಯನ್", "hup": "ಹೂಪಾ", "hy": "ಅರ್ಮೇನಿಯನ್", "hz": "ಹೆರೆರೊ", "ia": "ಇಂಟರ್‌ಲಿಂಗ್ವಾ", "iba": "ಇಬಾನ್", "ibb": "ಇಬಿಬಿಯೋ", "id": "ಇಂಡೋನೇಶಿಯನ್", "ie": "ಇಂಟರ್ಲಿಂಗ್", "ig": "ಇಗ್ಬೊ", "ii": "ಸಿಚುಅನ್ ಯಿ", "ik": "ಇನುಪಿಯಾಕ್", "ilo": "ಇಲ್ಲಿಕೋ", "inh": "ಇಂಗುಷ್", "io": "ಇಡೊ", "is": "ಐಸ್‌ಲ್ಯಾಂಡಿಕ್", "it": "ಇಟಾಲಿಯನ್", "iu": "ಇನುಕ್ಟಿಟುಟ್", "ja": "ಜಾಪನೀಸ್", "jbo": "ಲೊಜ್ಬಾನ್", "jgo": "ನೊಂಬಾ", "jmc": "ಮ್ಯಕಮೆ", "jpr": "ಜೂಡಿಯೋ-ಪರ್ಶಿಯನ್", "jrb": "ಜೂಡಿಯೋ-ಅರೇಬಿಕ್", "jv": "ಜಾವಾನೀಸ್", "ka": "ಜಾರ್ಜಿಯನ್", "kaa": "ಕಾರಾ-ಕಲ್ಪಾಕ್", "kab": "ಕಬೈಲ್", "kac": "ಕಚಿನ್", "kaj": "ಜ್ಜು", "kam": "ಕಂಬಾ", "kaw": "ಕಾವಿ", "kbd": "ಕಬರ್ಡಿಯನ್", "kcg": "ಟ್ಯಾಪ್", "kde": "ಮ್ಯಾಕೊಂಡ್", "kea": "ಕಬುವೆರ್ಡಿಯನು", "kfo": "ಕೋರೋ", "kg": "ಕಾಂಗೋ", "kha": "ಖಾಸಿ", "kho": "ಖೋಟಾನೀಸ್", "khq": "ಕೊಯ್ರ ಚೀನಿ", "ki": "ಕಿಕುಯು", "kj": "ಕ್ವಾನ್‌ಯಾಮಾ", "kk": "ಕಝಕ್", "kkj": "ಕಾಕೊ", "kl": "ಕಲಾಲ್ಲಿಸುಟ್", "kln": "ಕಲೆಂಜಿನ್", "km": "ಖಮೇರ್", "kmb": "ಕಿಂಬುಂಡು", "kn": "ಕನ್ನಡ", "ko": "ಕೊರಿಯನ್", "koi": "ಕೋಮಿ-ಪರ್ಮ್ಯಕ್", "kok": "ಕೊಂಕಣಿ", "kos": "ಕೊಸರಿಯನ್", "kpe": "ಕಪೆಲ್ಲೆ", "kr": "ಕನುರಿ", "krc": "ಕರಚಯ್-ಬಲ್ಕಾರ್", "krl": "ಕರೇಲಿಯನ್", "kru": "ಕುರುಖ್", "ks": "ಕಾಶ್ಮೀರಿ", "ksb": "ಶಂಬಲ", "ksf": "ಬಫಿಯ", "ksh": "ಕಲೊಗ್ನಿಯನ್", "ku": "ಕುರ್ದಿಷ್", "kum": "ಕುಮೈಕ್", "kut": "ಕುಟೇನಾಯ್", "kv": "ಕೋಮಿ", "kw": "ಕಾರ್ನಿಷ್", "ky": "ಕಿರ್ಗಿಜ್", "la": "ಲ್ಯಾಟಿನ್", "lad": "ಲ್ಯಾಡಿನೋ", "lag": "ಲಾಂಗಿ", "lah": "ಲಹಂಡಾ", "lam": "ಲಂಬಾ", "lb": "ಲಕ್ಸಂಬರ್ಗಿಷ್", "lez": "ಲೆಜ್ಘಿಯನ್", "lg": "ಗಾಂಡಾ", "li": "ಲಿಂಬರ್ಗಿಶ್", "lkt": "ಲಕೊಟ", "ln": "ಲಿಂಗಾಲ", "lo": "ಲಾವೋ", "lol": "ಮೊಂಗೋ", "lou": "ಲೂಯಿಸಿಯಾನ ಕ್ರಿಯೋಲ್", "loz": "ಲೋಝಿ", "lrc": "ಉತ್ತರ ಲೂರಿ", "lt": "ಲಿಥುವೇನಿಯನ್", "lu": "ಲೂಬಾ-ಕಟಾಂಗಾ", "lua": "ಲುಬ-ಲುಲಾ", "lui": "ಲೂಯಿಸೆನೋ", "lun": "ಲುಂಡಾ", "luo": "ಲುವೋ", "lus": "ಮಿಝೋ", "luy": "ಲುಯಿಯ", "lv": "ಲಾಟ್ವಿಯನ್", "mad": "ಮದುರೀಸ್", "mag": "ಮಗಾಹಿ", "mai": "ಮೈಥಿಲಿ", "mak": "ಮಕಾಸರ್", "man": "ಮಂಡಿಂಗೊ", "mas": "ಮಸಾಯ್", "mdf": "ಮೋಕ್ಷ", "mdr": "ಮಂದಾರ್", "men": "ಮೆಂಡೆ", "mer": "ಮೆರು", "mfe": "ಮೊರಿಸನ್", "mg": "ಮಲಗಾಸಿ", "mga": "ಮಧ್ಯ ಐರಿಷ್", "mgh": "ಮ್ಯಖುವಾ- ಮೀಟ್ಟೊ", "mgo": "ಮೆಟಾ", "mh": "ಮಾರ್ಶಲ್ಲೀಸ್", "mi": "ಮಾವೋರಿ", "mic": "ಮಿಕ್‌ಮ್ಯಾಕ್", "min": "ಮಿನಂಗ್‌ಕಬಾವು", "mk": "ಮೆಸಿಡೋನಿಯನ್", "ml": "ಮಲಯಾಳಂ", "mn": "ಮಂಗೋಲಿಯನ್", "mnc": "ಮಂಚು", "mni": "ಮಣಿಪುರಿ", "moh": "ಮೊಹಾವ್ಕ್", "mos": "ಮೊಸ್ಸಿ", "mr": "ಮರಾಠಿ", "ms": "ಮಲಯ್", "mt": "ಮಾಲ್ಟೀಸ್", "mua": "ಮುಂಡಂಗ್", "mus": "ಕ್ರೀಕ್", "mwl": "ಮಿರಾಂಡೀಸ್", "mwr": "ಮಾರ್ವಾಡಿ", "my": "ಬರ್ಮೀಸ್", "myv": "ಎರ್ಝ್ಯಾ", "mzn": "ಮಜಂದೆರಾನಿ", "na": "ನೌರು", "nan": "ನಾನ್", "nap": "ನಿಯಾಪೊಲಿಟನ್", "naq": "ನಮ", "nb": "ನಾರ್ವೆಜಿಯನ್ ಬೊಕ್ಮಲ್", "nd": "ಉತ್ತರ ದೆಬೆಲೆ", "nds": "ಲೋ ಜರ್ಮನ್", "nds-NL": "ಲೋ ಸ್ಯಾಕ್ಸನ್", "ne": "ನೇಪಾಳಿ", "new": "ನೇವಾರೀ", "ng": "ಡೋಂಗಾ", "nia": "ನಿಯಾಸ್", "niu": "ನಿಯುವನ್", "nl": "ಡಚ್", "nl-BE": "ಫ್ಲೆಮಿಷ್", "nmg": "ಖ್ವಾಸಿಯೊ", "nn": "ನಾರ್ವೇಜಿಯನ್ ನೈನಾರ್ಸ್ಕ್", "nnh": "ನಿಂಬೂನ್", "no": "ನಾರ್ವೇಜಿಯನ್", "nog": "ನೊಗಾಯ್", "non": "ಪ್ರಾಚೀನ ನೋರ್ಸ್", "nqo": "ಎನ್‌ಕೋ", "nr": "ದಕ್ಷಿಣ ದೆಬೆಲೆ", "nso": "ಉತ್ತರ ಸೋಥೋ", "nus": "ನೂಯರ್", "nv": "ನವಾಜೊ", "nwc": "ಶಾಸ್ತ್ರೀಯ ನೇವಾರಿ", "ny": "ನ್ಯಾಂಜಾ", "nym": "ನ್ಯಾಮ್‌ವೆಂಜಿ", "nyn": "ನ್ಯಾನ್‌ಕೋಲೆ", "nyo": "ನ್ಯೋರೋ", "nzi": "ಜೀಮಾ", "oc": "ಒಸಿಟನ್", "oj": "ಒಜಿಬ್ವಾ", "om": "ಒರೊಮೊ", "or": "ಒಡಿಯ", "os": "ಒಸ್ಸೆಟಿಕ್", "osa": "ಓಸಾಜ್", "ota": "ಒಟ್ಟೋಮನ್ ತುರ್ಕಿಷ್", "pa": "ಪಂಜಾಬಿ", "pag": "ಪಂಗಾಸಿನನ್", "pal": "ಪಹ್ಲವಿ", "pam": "ಪಂಪಾಂಗಾ", "pap": "ಪಪಿಯಾಮೆಂಟೊ", "pau": "ಪಲುಆನ್", "pcm": "ನೈಜೀರಿಯನ್ ಪಿಡ್ಗಿನ್", "peo": "ಪ್ರಾಚೀನ ಪರ್ಶಿಯನ್", "phn": "ಫೀನಿಷಿಯನ್", "pi": "ಪಾಲಿ", "pl": "ಪೊಲಿಶ್", "pon": "ಪೋನ್‌‌ಪಿಯನ್", "prg": "ಪ್ರಶಿಯನ್", "pro": "ಪ್ರಾಚೀನ ಪ್ರೊವೆನ್ಶಿಯಲ್", "ps": "ಪಾಷ್ಟೋ", "pt": "ಪೋರ್ಚುಗೀಸ್", "pt-BR": "ಬ್ರೆಜಿಲಿಯನ್ ಪೋರ್ಚುಗೀಸ್", "pt-PT": "ಯೂರೋಪಿಯನ್ ಪೋರ್ಚುಗೀಸ್", "qu": "ಕ್ವೆಚುವಾ", "quc": "ಕಿಷೆ", "raj": "ರಾಜಸ್ಥಾನಿ", "rap": "ರಾಪಾನುಯಿ", "rar": "ರಾರೋಟೊಂಗನ್", "rm": "ರೊಮಾನ್ಶ್", "rn": "ರುಂಡಿ", "ro": "ರೊಮೇನಿಯನ್", "ro-MD": "ಮಾಲ್ಡೇವಿಯನ್", "rof": "ರೊಂಬೊ", "rom": "ರೋಮಾನಿ", "root": "ರೂಟ್", "ru": "ರಷ್ಯನ್", "rup": "ಅರೋಮಾನಿಯನ್", "rw": "ಕಿನ್ಯಾರ್‌ವಾಂಡಾ", "rwk": "ರುವ", "sa": "ಸಂಸ್ಕೃತ", "sad": "ಸಂಡಾವೇ", "sah": "ಸಖಾ", "sam": "ಸಮರಿಟನ್ ಅರಾಮಿಕ್", "saq": "ಸಂಬುರು", "sas": "ಸಸಾಕ್", "sat": "ಸಂತಾಲಿ", "sba": "ನಂಬೇ", "sbp": "ಸಂಗು", "sc": "ಸರ್ಡೀನಿಯನ್", "scn": "ಸಿಸಿಲಿಯನ್", "sco": "ಸ್ಕೋಟ್ಸ್", "sd": "ಸಿಂಧಿ", "sdh": "ದಕ್ಷಿಣ ಕುರ್ದಿಶ್", "se": "ಉತ್ತರ ಸಾಮಿ", "seh": "ಸೆನ", "sel": "ಸೆಲ್ಕಪ್", "ses": "ಕೊಯ್ರಬೊರೊ ಸೆನ್ನಿ", "sg": "ಸಾಂಗೋ", "sga": "ಪ್ರಾಚೀನ ಐರಿಷ್", "sh": "ಸರ್ಬೋ-ಕ್ರೊಯೇಶಿಯನ್", "shi": "ಟಷೆಲ್‍ಹಿಟ್", "shn": "ಶಾನ್", "si": "ಸಿಂಹಳ", "sid": "ಸಿಡಾಮೋ", "sk": "ಸ್ಲೋವಾಕ್", "sl": "ಸ್ಲೋವೇನಿಯನ್", "sm": "ಸಮೋವನ್", "sma": "ದಕ್ಷಿಣ ಸಾಮಿ", "smj": "ಲೂಲ್ ಸಾಮಿ", "smn": "ಇನಾರಿ ಸಮೀ", "sms": "ಸ್ಕೋಟ್ ಸಾಮಿ", "sn": "ಶೋನಾ", "snk": "ಸೋನಿಂಕೆ", "so": "ಸೊಮಾಲಿ", "sog": "ಸೋಗ್ಡಿಯನ್", "sq": "ಅಲ್ಬೇನಿಯನ್", "sr": "ಸೆರ್ಬಿಯನ್", "srn": "ಸ್ರಾನನ್ ಟೋಂಗೋ", "srr": "ಸೇರೇರ್", "ss": "ಸ್ವಾತಿ", "ssy": "ಸಹೊ", "st": "ದಕ್ಷಿಣ ಸೋಥೋ", "su": "ಸುಂಡಾನೀಸ್", "suk": "ಸುಕುಮಾ", "sus": "ಸುಸು", "sux": "ಸುಮೇರಿಯನ್", "sv": "ಸ್ವೀಡಿಷ್", "sw": "ಸ್ವಹಿಲಿ", "sw-CD": "ಕಾಂಗೊ ಸ್ವಹಿಲಿ", "swb": "ಕೊಮೊರಿಯನ್", "syc": "ಶಾಸ್ತ್ರೀಯ ಸಿರಿಯಕ್", "syr": "ಸಿರಿಯಾಕ್", "ta": "ತಮಿಳು", "te": "ತೆಲುಗು", "tem": "ಟಿಮ್ನೆ", "teo": "ಟೆಸೊ", "ter": "ಟೆರೆನೋ", "tet": "ಟೇಟಮ್", "tg": "ತಾಜಿಕ್", "th": "ಥಾಯ್", "ti": "ಟಿಗ್ರಿನ್ಯಾ", "tig": "ಟೈಗ್ರೆ", "tiv": "ಟಿವ್", "tk": "ಟರ್ಕ್‌ಮೆನ್", "tkl": "ಟೊಕೆಲಾವ್", "tl": "ಟ್ಯಾಗಲೋಗ್", "tlh": "ಕ್ಲಿಂಗನ್", "tli": "ಟ್ಲಿಂಗಿಟ್", "tmh": "ಟಮಾಷೆಕ್", "tn": "ಸ್ವಾನಾ", "to": "ಟೋಂಗನ್", "tog": "ನ್ಯಾಸಾ ಟೋಂಗಾ", "tpi": "ಟೋಕ್ ಪಿಸಿನ್", "tr": "ಟರ್ಕಿಶ್", "trv": "ಟರೊಕೊ", "ts": "ಸೋಂಗಾ", "tsi": "ಸಿಂಶಿಯನ್", "tt": "ಟಾಟರ್", "tum": "ತುಂಬುಕಾ", "tvl": "ಟುವಾಲು", "tw": "ಟ್ವಿ", "twq": "ಟಸವಕ್", "ty": "ಟಹೀಟಿಯನ್", "tyv": "ಟುವಿನಿಯನ್", "tzm": "ಮಧ್ಯ ಅಟ್ಲಾಸ್ ಟಮಜೈಟ್", "udm": "ಉಡ್‌ಮುರ್ಟ್", "ug": "ಉಯಿಘರ್", "uga": "ಉಗಾರಿಟಿಕ್", "uk": "ಉಕ್ರೇನಿಯನ್", "umb": "ಉಂಬುಂಡು", "ur": "ಉರ್ದು", "uz": "ಉಜ್ಬೇಕ್", "vai": "ವಾಯಿ", "ve": "ವೆಂಡಾ", "vi": "ವಿಯೆಟ್ನಾಮೀಸ್", "vo": "ವೋಲಾಪುಕ್", "vot": "ವೋಟಿಕ್", "vun": "ವುಂಜೊ", "wa": "ವಾಲೂನ್", "wae": "ವಾಲ್ಸರ್", "wal": "ವಲಾಯ್ತಾ", "war": "ವರಾಯ್", "was": "ವಾಷೋ", "wbp": "ವಾರ್ಲ್‌ಪಿರಿ", "wo": "ವೋಲೋಫ್", "wuu": "ವು", "xal": "ಕಲ್ಮೈಕ್", "xh": "ಕ್ಸೋಸ", "xog": "ಸೊಗ", "yao": "ಯಾವೊ", "yap": "ಯಪೀಸೆ", "yav": "ಯಾಂಗ್ಬೆನ್", "ybb": "ಯೆಂಬಾ", "yi": "ಯಿಡ್ಡಿಶ್", "yo": "ಯೊರುಬಾ", "yue": "ಕ್ಯಾಂಟನೀಸ್", "za": "ಝೂವಾಂಗ್", "zap": "ಝೋಪೊಟೆಕ್", "zbl": "ಬ್ಲಿಸ್ಸಿಂಬಲ್ಸ್", "zen": "ಝೆನಾಗಾ", "zgh": "ಸ್ಟ್ಯಾಂಡರ್ಡ್ ಮೊರೊಕ್ಕನ್ ಟಮಜೈಟ್", "zh": "ಚೈನೀಸ್", "zh-Hans": "ಸರಳೀಕೃತ ಚೈನೀಸ್", "zh-Hant": "ಸಾಂಪ್ರದಾಯಿಕ ಚೈನೀಸ್", "zu": "ಜುಲು", "zun": "ಝೂನಿ", "zza": "ಜಾಝಾ"}}, + "ko": {"rtl": false, "languageNames": {"aa": "아파르어", "ab": "압카즈어", "ace": "아체어", "ach": "아콜리어", "ada": "아당메어", "ady": "아디게어", "ae": "아베스타어", "aeb": "튀니지 아랍어", "af": "아프리칸스어", "afh": "아프리힐리어", "agq": "아그햄어", "ain": "아이누어", "ak": "아칸어", "akk": "아카드어", "ale": "알류트어", "alt": "남부 알타이어", "am": "암하라어", "an": "아라곤어", "ang": "고대 영어", "anp": "앙가어", "ar": "아랍어", "ar-001": "현대 표준 아랍어", "arc": "아람어", "arn": "마푸둥군어", "arp": "아라파호어", "arq": "알제리 아랍어", "ars": "아랍어(나즈디)", "arw": "아라와크어", "ary": "모로코 아랍어", "arz": "이집트 아랍어", "as": "아삼어", "asa": "아수어", "ast": "아스투리아어", "av": "아바릭어", "awa": "아와히어", "ay": "아이마라어", "az": "아제르바이잔어", "ba": "바슈키르어", "bal": "발루치어", "ban": "발리어", "bas": "바사어", "bax": "바문어", "bbj": "고말라어", "be": "벨라루스어", "bej": "베자어", "bem": "벰바어", "bez": "베나어", "bfd": "바푸트어", "bg": "불가리아어", "bgn": "서부 발로치어", "bho": "호즈푸리어", "bi": "비슬라마어", "bik": "비콜어", "bin": "비니어", "bkm": "콤어", "bla": "식시카어", "bm": "밤바라어", "bn": "벵골어", "bo": "티베트어", "br": "브르타뉴어", "bra": "브라지어", "brh": "브라후이어", "brx": "보도어", "bs": "보스니아어", "bss": "아쿠즈어", "bua": "부리아타", "bug": "부기어", "bum": "불루어", "byn": "브린어", "byv": "메둠바어", "ca": "카탈로니아어", "cad": "카도어", "car": "카리브어", "cay": "카유가어", "cch": "앗삼어", "ccp": "차크마어", "ce": "체첸어", "ceb": "세부아노어", "cgg": "치가어", "ch": "차모로어", "chb": "치브차어", "chg": "차가타이어", "chk": "추크어", "chm": "마리어", "chn": "치누크 자곤", "cho": "촉토어", "chp": "치페우얀", "chr": "체로키어", "chy": "샤이엔어", "ckb": "소라니 쿠르드어", "co": "코르시카어", "cop": "콥트어", "cr": "크리어", "crh": "크리민 터키어; 크리민 타타르어", "crs": "세이셸 크리올 프랑스어", "cs": "체코어", "csb": "카슈비아어", "cu": "교회 슬라브어", "cv": "추바시어", "cy": "웨일스어", "da": "덴마크어", "dak": "다코타어", "dar": "다르그와어", "dav": "타이타어", "de": "독일어", "de-AT": "독일어(오스트리아)", "de-CH": "고지 독일어(스위스)", "del": "델라웨어어", "den": "슬라브어", "dgr": "도그리브어", "din": "딩카어", "dje": "자르마어", "doi": "도그리어", "dsb": "저지 소르비아어", "dua": "두알라어", "dum": "중세 네덜란드어", "dv": "디베히어", "dyo": "졸라 포니어", "dyu": "드율라어", "dz": "종카어", "dzg": "다장가어", "ebu": "엠부어", "ee": "에웨어", "efi": "이픽어", "egy": "고대 이집트어", "eka": "이카죽어", "el": "그리스어", "elx": "엘람어", "en": "영어", "en-AU": "영어(호주)", "en-CA": "영어(캐나다)", "en-GB": "영어(영국)", "en-US": "영어(미국)", "enm": "중세 영어", "eo": "에스페란토어", "es": "스페인어", "es-419": "스페인어(라틴 아메리카)", "es-ES": "스페인어(유럽)", "es-MX": "스페인어(멕시코)", "et": "에스토니아어", "eu": "바스크어", "ewo": "이원도어", "fa": "페르시아어", "fan": "팡그어", "fat": "판티어", "ff": "풀라어", "fi": "핀란드어", "fil": "필리핀어", "fj": "피지어", "fo": "페로어", "fon": "폰어", "fr": "프랑스어", "fr-CA": "프랑스어(캐나다)", "fr-CH": "프랑스어(스위스)", "frc": "케이준 프랑스어", "frm": "중세 프랑스어", "fro": "고대 프랑스어", "frr": "북부 프리지아어", "frs": "동부 프리슬란드어", "fur": "프리울리어", "fy": "서부 프리지아어", "ga": "아일랜드어", "gaa": "가어", "gag": "가가우스어", "gan": "간어", "gay": "가요어", "gba": "그바야어", "gbz": "조로아스터 다리어", "gd": "스코틀랜드 게일어", "gez": "게이즈어", "gil": "키리바시어", "gl": "갈리시아어", "glk": "길라키어", "gmh": "중세 고지 독일어", "gn": "과라니어", "goh": "고대 고지 독일어", "gom": "고아 콘칸어", "gon": "곤디어", "gor": "고론탈로어", "got": "고트어", "grb": "게르보어", "grc": "고대 그리스어", "gsw": "독일어(스위스)", "gu": "구자라트어", "guz": "구시어", "gv": "맹크스어", "gwi": "그위친어", "ha": "하우사어", "hai": "하이다어", "hak": "하카어", "haw": "하와이어", "he": "히브리어", "hi": "힌디어", "hif": "피지 힌디어", "hil": "헤리가뇬어", "hit": "하타이트어", "hmn": "히몸어", "ho": "히리 모투어", "hr": "크로아티아어", "hsb": "고지 소르비아어", "hsn": "샹어", "ht": "아이티어", "hu": "헝가리어", "hup": "후파어", "hy": "아르메니아어", "hz": "헤레로어", "ia": "인터링구아", "iba": "이반어", "ibb": "이비비오어", "id": "인도네시아어", "ie": "인테르링구에", "ig": "이그보어", "ii": "쓰촨 이어", "ik": "이누피아크어", "ilo": "이로코어", "inh": "인귀시어", "io": "이도어", "is": "아이슬란드어", "it": "이탈리아어", "iu": "이눅티투트어", "ja": "일본어", "jbo": "로반어", "jgo": "응곰바어", "jmc": "마차메어", "jpr": "유대-페르시아어", "jrb": "유대-아라비아어", "jv": "자바어", "ka": "조지아어", "kaa": "카라칼파크어", "kab": "커바일어", "kac": "카친어", "kaj": "까꼬토끄어", "kam": "캄바어", "kaw": "카위어", "kbd": "카바르디어", "kbl": "카넴부어", "kcg": "티얍어", "kde": "마콘데어", "kea": "크리올어", "kfo": "코로어", "kg": "콩고어", "kha": "카시어", "kho": "호탄어", "khq": "코이라 친니어", "khw": "코와르어", "ki": "키쿠유어", "kj": "쿠안야마어", "kk": "카자흐어", "kkj": "카코어", "kl": "그린란드어", "kln": "칼렌진어", "km": "크메르어", "kmb": "킴분두어", "kn": "칸나다어", "ko": "한국어", "koi": "코미페르먀크어", "kok": "코카니어", "kos": "코스라이엔어", "kpe": "크펠레어", "kr": "칸누리어", "krc": "카라챠이-발카르어", "krl": "카렐리야어", "kru": "쿠르크어", "ks": "카슈미르어", "ksb": "샴발라어", "ksf": "바피아어", "ksh": "콜로그니안어", "ku": "쿠르드어", "kum": "쿠믹어", "kut": "쿠테네어", "kv": "코미어", "kw": "콘월어", "ky": "키르기스어", "la": "라틴어", "lad": "라디노어", "lag": "랑기어", "lah": "라한다어", "lam": "람바어", "lb": "룩셈부르크어", "lez": "레즈기안어", "lfn": "링구아 프랑카 노바", "lg": "간다어", "li": "림버거어", "lkt": "라코타어", "ln": "링갈라어", "lo": "라오어", "lol": "몽고어", "lou": "루이지애나 크리올어", "loz": "로지어", "lrc": "북부 루리어", "lt": "리투아니아어", "lu": "루바-카탄가어", "lua": "루바-룰루아어", "lui": "루이세노어", "lun": "룬다어", "luo": "루오어", "lus": "루샤이어", "luy": "루야어", "lv": "라트비아어", "mad": "마두라어", "maf": "마파어", "mag": "마가히어", "mai": "마이틸리어", "mak": "마카사어", "man": "만딩고어", "mas": "마사이어", "mde": "마바어", "mdf": "모크샤어", "mdr": "만다르어", "men": "멘데어", "mer": "메루어", "mfe": "모리스얀어", "mg": "말라가시어", "mga": "중세 아일랜드어", "mgh": "마크후와-메토어", "mgo": "메타어", "mh": "마셜어", "mi": "마오리어", "mic": "미크맥어", "min": "미낭카바우어", "mk": "마케도니아어", "ml": "말라얄람어", "mn": "몽골어", "mnc": "만주어", "mni": "마니푸리어", "moh": "모호크어", "mos": "모시어", "mr": "마라티어", "mrj": "서부 마리어", "ms": "말레이어", "mt": "몰타어", "mua": "문당어", "mus": "크리크어", "mwl": "미란데어", "mwr": "마르와리어", "my": "버마어", "mye": "미예네어", "myv": "엘즈야어", "mzn": "마잔데라니어", "na": "나우루어", "nan": "민난어", "nap": "나폴리어", "naq": "나마어", "nb": "노르웨이어(보크말)", "nd": "북부 은데벨레어", "nds": "저지 독일어", "nds-NL": "저지 색슨어", "ne": "네팔어", "new": "네와르어", "ng": "느동가어", "nia": "니아스어", "niu": "니웨언어", "nl": "네덜란드어", "nl-BE": "플라망어", "nmg": "크와시오어", "nn": "노르웨이어(니노르스크)", "nnh": "느기엠본어", "no": "노르웨이어", "nog": "노가이어", "non": "고대 노르웨이어", "nqo": "응코어", "nr": "남부 은데벨레어", "nso": "북부 소토어", "nus": "누에르어", "nv": "나바호어", "nwc": "고전 네와르어", "ny": "냔자어", "nym": "니암웨지어", "nyn": "니안콜어", "nyo": "뉴로어", "nzi": "느지마어", "oc": "오크어", "oj": "오지브와어", "om": "오로모어", "or": "오리야어", "os": "오세트어", "osa": "오세이지어", "ota": "오스만 터키어", "pa": "펀잡어", "pag": "판가시난어", "pal": "팔레비어", "pam": "팜팡가어", "pap": "파피아먼토어", "pau": "팔라우어", "pcm": "나이지리아 피진어", "peo": "고대 페르시아어", "phn": "페니키아어", "pi": "팔리어", "pl": "폴란드어", "pnt": "폰틱어", "pon": "폼페이어", "prg": "프러시아어", "pro": "고대 프로방스어", "ps": "파슈토어", "pt": "포르투갈어", "pt-BR": "포르투갈어(브라질)", "pt-PT": "포르투갈어(유럽)", "qu": "케추아어", "quc": "키체어", "raj": "라자스탄어", "rap": "라파뉴이", "rar": "라로통가어", "rm": "로만시어", "rn": "룬디어", "ro": "루마니아어", "ro-MD": "몰도바어", "rof": "롬보어", "rom": "집시어", "root": "어근", "ru": "러시아어", "rue": "루신어", "rup": "아로마니아어", "rw": "르완다어", "rwk": "르와어", "sa": "산스크리트어", "sad": "산다웨어", "sah": "야쿠트어", "sam": "사마리아 아랍어", "saq": "삼부루어", "sas": "사사크어", "sat": "산탈리어", "sba": "느감바이어", "sbp": "상구어", "sc": "사르디니아어", "scn": "시칠리아어", "sco": "스코틀랜드어", "sd": "신디어", "sdh": "남부 쿠르드어", "se": "북부 사미어", "see": "세네카어", "seh": "세나어", "sel": "셀쿠프어", "ses": "코이야보로 세니어", "sg": "산고어", "sga": "고대 아일랜드어", "sh": "세르비아-크로아티아어", "shi": "타셸히트어", "shn": "샨어", "shu": "차디언 아라비아어", "si": "스리랑카어", "sid": "시다모어", "sk": "슬로바키아어", "sl": "슬로베니아어", "sm": "사모아어", "sma": "남부 사미어", "smj": "룰레 사미어", "smn": "이나리 사미어", "sms": "스콜트 사미어", "sn": "쇼나어", "snk": "소닌케어", "so": "소말리아어", "sog": "소그디엔어", "sq": "알바니아어", "sr": "세르비아어", "srn": "스라난 통가어", "srr": "세레르어", "ss": "시스와티어", "ssy": "사호어", "st": "남부 소토어", "su": "순다어", "suk": "수쿠마어", "sus": "수수어", "sux": "수메르어", "sv": "스웨덴어", "sw": "스와힐리어", "sw-CD": "콩고 스와힐리어", "swb": "코모로어", "syc": "고전 시리아어", "syr": "시리아어", "ta": "타밀어", "te": "텔루구어", "tem": "팀니어", "teo": "테조어", "ter": "테레노어", "tet": "테툼어", "tg": "타지크어", "th": "태국어", "ti": "티그리냐어", "tig": "티그레어", "tiv": "티브어", "tk": "투르크멘어", "tkl": "토켈라우제도어", "tkr": "차후르어", "tl": "타갈로그어", "tlh": "클링온어", "tli": "틀링깃족어", "tly": "탈리쉬어", "tmh": "타마섹어", "tn": "츠와나어", "to": "통가어", "tog": "니아사 통가어", "tpi": "토크 피신어", "tr": "터키어", "trv": "타로코어", "ts": "총가어", "tsi": "트심시안어", "tt": "타타르어", "tum": "툼부카어", "tvl": "투발루어", "tw": "트위어", "twq": "타사와크어", "ty": "타히티어", "tyv": "투비니안어", "tzm": "중앙 모로코 타마지트어", "udm": "우드말트어", "ug": "위구르어", "uga": "유가리틱어", "uk": "우크라이나어", "umb": "움분두어", "ur": "우르두어", "uz": "우즈베크어", "vai": "바이어", "ve": "벤다어", "vi": "베트남어", "vo": "볼라퓌크어", "vot": "보틱어", "vun": "분조어", "wa": "왈론어", "wae": "월저어", "wal": "월라이타어", "war": "와라이어", "was": "와쇼어", "wbp": "왈피리어", "wo": "월로프어", "wuu": "우어", "xal": "칼미크어", "xh": "코사어", "xog": "소가어", "yao": "야오족어", "yap": "얍페세어", "yav": "양본어", "ybb": "옘바어", "yi": "이디시어", "yo": "요루바어", "yue": "광둥어", "za": "주앙어", "zap": "사포테크어", "zbl": "블리스 심볼", "zen": "제나가어", "zgh": "표준 모로코 타마지트어", "zh": "중국어", "zh-Hans": "중국어(간체)", "zh-Hant": "중국어(번체)", "zu": "줄루어", "zun": "주니어", "zza": "자자어"}}, + "ku": {"rtl": false, "languageNames": {"aa": "afarî", "ab": "abxazî", "ace": "açehî", "ady": "adîgeyî", "af": "afrîkansî", "ain": "aynuyî", "ale": "alêwîtî", "am": "amharî", "an": "aragonî", "ar": "erebî", "ar-001": "erebiya standard", "as": "asamî", "ast": "astûrî", "av": "avarî", "ay": "aymarayî", "az": "azerî", "ba": "başkîrî", "ban": "balînî", "be": "belarusî", "bem": "bembayî", "bg": "bulgarî", "bho": "bojpûrî", "bi": "bîslamayî", "bla": "blakfotî", "bm": "bambarayî", "bn": "bengalî", "bo": "tîbetî", "br": "bretonî", "bs": "bosnî", "bug": "bugî", "ca": "katalanî", "ce": "çeçenî", "ceb": "sebwanoyî", "ch": "çamoroyî", "chk": "çûkî", "chm": "marî", "chr": "çerokî", "chy": "çeyenî", "ckb": "soranî", "co": "korsîkayî", "cs": "çekî", "cv": "çuvaşî", "cy": "weylsî", "da": "danmarkî", "de": "elmanî", "de-AT": "elmanî (Awistirya)", "de-CH": "elmanî (Swîsre)", "dsb": "sorbiya jêrîn", "dua": "diwalayî", "dv": "divehî", "dz": "conxayî", "ee": "eweyî", "el": "yewnanî", "en": "îngilîzî", "en-AU": "îngilîzî (Awistralya)", "en-CA": "îngilîzî (Kanada)", "en-GB": "îngilîzî (Keyaniya Yekbûyî)", "en-US": "îngilîzî (Dewletên Yekbûyî yên Amerîkayê)", "eo": "esperantoyî", "es": "spanî", "es-419": "spanî (Amerîkaya Latînî)", "es-ES": "spanî (Spanya)", "es-MX": "spanî (Meksîk)", "et": "estonî", "eu": "baskî", "fa": "farisî", "ff": "fulahî", "fi": "fînî", "fil": "fîlîpînoyî", "fj": "fîjî", "fo": "ferî", "fr": "frensî", "fr-CA": "frensî (Kanada)", "fr-CH": "frensî (Swîsre)", "fur": "friyolî", "fy": "frîsî", "ga": "îrî", "gd": "gaelîka skotî", "gil": "kîrîbatî", "gl": "galîsî", "gn": "guwaranî", "gor": "gorontaloyî", "gsw": "elmanîşî", "gu": "gujaratî", "gv": "manksî", "ha": "hawsayî", "haw": "hawayî", "he": "îbranî", "hi": "hindî", "hil": "hîlîgaynonî", "hr": "xirwatî", "hsb": "sorbiya jorîn", "ht": "haîtî", "hu": "mecarî", "hy": "ermenî", "hz": "hereroyî", "ia": "interlingua", "id": "indonezî", "ig": "îgboyî", "ilo": "îlokanoyî", "inh": "îngûşî", "io": "îdoyî", "is": "îzlendî", "it": "îtalî", "iu": "înuîtî", "ja": "japonî", "jbo": "lojbanî", "jv": "javayî", "ka": "gurcî", "kab": "kabîlî", "kea": "kapverdî", "kk": "qazaxî", "kl": "kalalîsûtî", "km": "ximêrî", "kn": "kannadayî", "ko": "koreyî", "kok": "konkanî", "ks": "keşmîrî", "ksh": "rîpwarî", "ku": "kurdî", "kv": "komî", "kw": "kornî", "ky": "kirgizî", "lad": "ladînoyî", "lb": "luksembûrgî", "lez": "lezgînî", "lg": "lugandayî", "li": "lîmbûrgî", "lkt": "lakotayî", "ln": "lingalayî", "lo": "lawsî", "lrc": "luriya bakur", "lt": "lîtwanî", "lv": "latviyayî", "mad": "madurayî", "mas": "masayî", "mdf": "mokşayî", "mg": "malagasî", "mh": "marşalî", "mi": "maorî", "mic": "mîkmakî", "min": "mînangkabawî", "mk": "makedonî", "ml": "malayalamî", "mn": "mongolî", "moh": "mohawkî", "mr": "maratî", "ms": "malezî", "mt": "maltayî", "my": "burmayî", "myv": "erzayî", "mzn": "mazenderanî", "na": "nawrûyî", "nap": "napolîtanî", "nb": "norwecî (bokmål)", "nds-NL": "nds (Holenda)", "ne": "nepalî", "niu": "nîwî", "nl": "holendî", "nl-BE": "flamî", "nn": "norwecî (nynorsk)", "nso": "sotoyiya bakur", "nv": "navajoyî", "oc": "oksîtanî", "om": "oromoyî", "or": "oriyayî", "os": "osetî", "pa": "puncabî", "pam": "kapampanganî", "pap": "papyamentoyî", "pau": "palawî", "pl": "polonî", "prg": "prûsyayî", "ps": "peştûyî", "pt": "portugalî", "pt-BR": "portugalî (Brazîl)", "pt-PT": "portugalî (Portûgal)", "qu": "keçwayî", "rap": "rapanuyî", "rar": "rarotongî", "rm": "romancî", "ro": "romanî", "ro-MD": "romanî (Moldova)", "ru": "rusî", "rup": "aromanî", "rw": "kînyariwandayî", "sa": "sanskrîtî", "sc": "sardînî", "scn": "sicîlî", "sco": "skotî", "sd": "sindhî", "se": "samiya bakur", "si": "kîngalî", "sk": "slovakî", "sl": "slovenî", "sm": "samoayî", "smn": "samiya înarî", "sn": "şonayî", "so": "somalî", "sq": "elbanî", "sr": "sirbî", "srn": "sirananî", "ss": "swazî", "st": "sotoyiya başûr", "su": "sundanî", "sv": "swêdî", "sw": "swahîlî", "sw-CD": "swahîlî (Kongo - Kînşasa)", "swb": "komorî", "syr": "siryanî", "ta": "tamîlî", "te": "telûgûyî", "tet": "tetûmî", "tg": "tacikî", "th": "tayî", "ti": "tigrînî", "tk": "tirkmenî", "tlh": "klîngonî", "tn": "tswanayî", "to": "tongî", "tpi": "tokpisinî", "tr": "tirkî", "trv": "tarokoyî", "ts": "tsongayî", "tt": "teterî", "tum": "tumbukayî", "tvl": "tuvalûyî", "ty": "tahîtî", "tzm": "temazîxtî", "udm": "udmurtî", "ug": "oygurî", "uk": "ukraynî", "ur": "urdûyî", "uz": "ozbekî", "vi": "viyetnamî", "vo": "volapûkî", "wa": "walonî", "war": "warayî", "wo": "wolofî", "xh": "xosayî", "yi": "yidîşî", "yo": "yorubayî", "yue": "kantonî", "zh-Hans": "zh (Hans)", "zh-Hant": "zh (Hant)", "zu": "zuluyî", "zza": "zazakî"}}, + "lij": {"rtl": false, "languageNames": {}}, + "lt": {"rtl": false, "languageNames": {"aa": "afarų", "ab": "abchazų", "ace": "ačinezų", "ach": "akolių", "ada": "adangmų", "ady": "adygėjų", "ae": "avestų", "aeb": "Tuniso arabų", "af": "afrikanų", "afh": "afrihili", "agq": "aghemų", "ain": "ainų", "ak": "akanų", "akk": "akadianų", "akz": "alabamiečių", "ale": "aleutų", "aln": "albanų kalbos gegų tarmė", "alt": "pietų Altajaus", "am": "amharų", "an": "aragonesų", "ang": "senoji anglų", "anp": "angikų", "ar": "arabų", "ar-001": "šiuolaikinė standartinė arabų", "arc": "aramaikų", "arn": "mapudungunų", "aro": "araonų", "arp": "arapahų", "arq": "Alžyro arabų", "arw": "aravakų", "ary": "Maroko arabų", "arz": "Egipto arabų", "as": "asamų", "asa": "asu", "ase": "Amerikos ženklų kalba", "ast": "asturianų", "av": "avarikų", "avk": "kotava", "awa": "avadhi", "ay": "aimarų", "az": "azerbaidžaniečių", "ba": "baškirų", "bal": "baluči", "ban": "baliečių", "bar": "bavarų", "bas": "basų", "bax": "bamunų", "bbc": "batak toba", "bbj": "ghomalų", "be": "baltarusių", "bej": "bėjų", "bem": "bembų", "bew": "betavi", "bez": "benų", "bfd": "bafutų", "bfq": "badaga", "bg": "bulgarų", "bgn": "vakarų beludžių", "bho": "baučpuri", "bi": "bislama", "bik": "bikolų", "bin": "bini", "bjn": "bandžarų", "bkm": "komų", "bla": "siksikų", "bm": "bambarų", "bn": "bengalų", "bo": "tibetiečių", "bpy": "bišnuprijos", "bqi": "bakhtiari", "br": "bretonų", "bra": "brajų", "brh": "brahujų", "brx": "bodo", "bs": "bosnių", "bss": "akūsų", "bua": "buriatų", "bug": "buginezų", "bum": "bulu", "byn": "blin", "byv": "medumbų", "ca": "katalonų", "cad": "kado", "car": "karibų", "cay": "kaijūgų", "cch": "atsamų", "ccp": "Čakma", "ce": "čečėnų", "ceb": "sebuanų", "cgg": "čigų", "ch": "čamorų", "chb": "čibčų", "chg": "čagatų", "chk": "čukesų", "chm": "marių", "chn": "činuk žargonas", "cho": "čoktau", "chp": "čipvėjų", "chr": "čerokių", "chy": "čajenų", "ckb": "soranių kurdų", "co": "korsikiečių", "cop": "koptų", "cps": "capiznon", "cr": "kry", "crh": "Krymo turkų", "crs": "Seišelių kreolų ir prancūzų", "cs": "čekų", "csb": "kašubų", "cu": "bažnytinė slavų", "cv": "čiuvašų", "cy": "valų", "da": "danų", "dak": "dakotų", "dar": "dargva", "dav": "taitų", "de": "vokiečių", "de-AT": "Austrijos vokiečių", "de-CH": "Šveicarijos aukštutinė vokiečių", "del": "delavero", "den": "slave", "dgr": "dogribų", "din": "dinkų", "dje": "zarmų", "doi": "dogri", "dsb": "žemutinių sorbų", "dtp": "centrinio Dusuno", "dua": "dualų", "dum": "Vidurio Vokietijos", "dv": "divehų", "dyo": "džiola-foni", "dyu": "dyulų", "dz": "botijų", "dzg": "dazagų", "ebu": "embu", "ee": "evių", "efi": "efik", "egl": "italų kalbos Emilijos tarmė", "egy": "senovės egiptiečių", "eka": "ekajuk", "el": "graikų", "elx": "elamitų", "en": "anglų", "en-AU": "Australijos anglų", "en-CA": "Kanados anglų", "en-GB": "Didžiosios Britanijos anglų", "en-US": "Jungtinių Valstijų anglų", "enm": "Vidurio Anglijos", "eo": "esperanto", "es": "ispanų", "es-419": "Lotynų Amerikos ispanų", "es-ES": "Europos ispanų", "es-MX": "Meksikos ispanų", "esu": "centrinės Aliaskos jupikų", "et": "estų", "eu": "baskų", "ewo": "evondo", "ext": "ispanų kalbos Ekstremadūros tarmė", "fa": "persų", "fan": "fangų", "fat": "fanti", "ff": "fulahų", "fi": "suomių", "fil": "filipiniečių", "fit": "suomių kalbos Tornedalio tarmė", "fj": "fidžių", "fo": "farerų", "fr": "prancūzų", "fr-CA": "Kanados prancūzų", "fr-CH": "Šveicarijos prancūzų", "frc": "kadžunų prancūzų", "frm": "Vidurio Prancūzijos", "fro": "senoji prancūzų", "frp": "arpitano", "frr": "šiaurinių fryzų", "frs": "rytų fryzų", "fur": "friulių", "fy": "vakarų fryzų", "ga": "airių", "gaa": "ga", "gag": "gagaūzų", "gan": "kinų kalbos dziangsi tarmė", "gay": "gajo", "gba": "gbaja", "gbz": "zoroastrų dari", "gd": "škotų (gėlų)", "gez": "gyz", "gil": "kiribati", "gl": "galisų", "glk": "gilaki", "gmh": "Vidurio Aukštosios Vokietijos", "gn": "gvaranių", "goh": "senoji Aukštosios Vokietijos", "gom": "Goa konkanių", "gon": "gondi", "gor": "gorontalo", "got": "gotų", "grb": "grebo", "grc": "senovės graikų", "gsw": "Šveicarijos vokiečių", "gu": "gudžaratų", "guc": "vajų", "gur": "frafra", "guz": "gusi", "gv": "meniečių", "gwi": "gvičino", "ha": "hausų", "hai": "haido", "hak": "kinų kalbos hakų tarmė", "haw": "havajiečių", "he": "hebrajų", "hi": "hindi", "hif": "Fidžio hindi", "hil": "hiligainonų", "hit": "hititų", "hmn": "hmong", "ho": "hiri motu", "hr": "kroatų", "hsb": "aukštutinių sorbų", "hsn": "kinų kalbos hunano tarmė", "ht": "Haičio", "hu": "vengrų", "hup": "hupa", "hy": "armėnų", "hz": "hererų", "ia": "tarpinė", "iba": "iban", "ibb": "ibibijų", "id": "indoneziečių", "ie": "interkalba", "ig": "igbų", "ii": "sičuan ji", "ik": "inupiakų", "ilo": "ilokų", "inh": "ingušų", "io": "ido", "is": "islandų", "it": "italų", "iu": "inukitut", "izh": "ingrų", "ja": "japonų", "jam": "Jamaikos kreolų anglų", "jbo": "loiban", "jgo": "ngombų", "jmc": "mačamų", "jpr": "judėjų persų", "jrb": "judėjų arabų", "jut": "danų kalbos jutų tarmė", "jv": "javiečių", "ka": "gruzinų", "kaa": "karakalpakų", "kab": "kebailų", "kac": "kačinų", "kaj": "ju", "kam": "kembų", "kaw": "kavių", "kbd": "kabardinų", "kbl": "kanembų", "kcg": "tyap", "kde": "makondų", "kea": "Žaliojo Kyšulio kreolų", "ken": "kenyang", "kfo": "koro", "kg": "Kongo", "kgp": "kaingang", "kha": "kasi", "kho": "kotanezų", "khq": "kojra čini", "khw": "khovarų", "ki": "kikujų", "kiu": "kirmanjki", "kj": "kuaniama", "kk": "kazachų", "kkj": "kako", "kl": "kalalisut", "kln": "kalenjinų", "km": "khmerų", "kmb": "kimbundu", "kn": "kanadų", "ko": "korėjiečių", "koi": "komių-permių", "kok": "konkanių", "kos": "kosreanų", "kpe": "kpelių", "kr": "kanurių", "krc": "karačiajų balkarijos", "kri": "krio", "krj": "kinaray-a", "krl": "karelų", "kru": "kuruk", "ks": "kašmyrų", "ksb": "šambalų", "ksf": "bafų", "ksh": "kolognų", "ku": "kurdų", "kum": "kumikų", "kut": "kutenai", "kv": "komi", "kw": "kornų", "ky": "kirgizų", "la": "lotynų", "lad": "ladino", "lag": "langi", "lah": "landa", "lam": "lamba", "lb": "liuksemburgiečių", "lez": "lezginų", "lfn": "naujoji frankų kalba", "lg": "ganda", "li": "limburgiečių", "lij": "ligūrų", "liv": "lyvių", "lkt": "lakotų", "lmo": "lombardų", "ln": "ngalų", "lo": "laosiečių", "lol": "mongų", "lou": "Luizianos kreolų", "loz": "lozių", "lrc": "šiaurės luri", "lt": "lietuvių", "ltg": "latgalių", "lu": "luba katanga", "lua": "luba lulua", "lui": "luiseno", "lun": "Lundos", "lus": "mizo", "luy": "luja", "lv": "latvių", "lzh": "klasikinė kinų", "lzz": "laz", "mad": "madurezų", "maf": "mafų", "mag": "magahi", "mai": "maithili", "mak": "Makasaro", "man": "mandingų", "mas": "masajų", "mde": "mabų", "mdf": "mokša", "mdr": "mandarų", "men": "mende", "mer": "merų", "mfe": "morisijų", "mg": "malagasų", "mga": "Vidurio Airijos", "mgh": "makua-maeto", "mgo": "meta", "mh": "Maršalo Salų", "mi": "maorių", "mic": "mikmakų", "min": "minangkabau", "mk": "makedonų", "ml": "malajalių", "mn": "mongolų", "mnc": "manču", "mni": "manipurių", "moh": "mohok", "mos": "mosi", "mr": "maratų", "mrj": "vakarų mari", "ms": "malajiečių", "mt": "maltiečių", "mua": "mundangų", "mus": "krykų", "mwl": "mirandezų", "mwr": "marvari", "mwv": "mentavai", "my": "birmiečių", "mye": "mjenų", "myv": "erzyjų", "mzn": "mazenderanių", "na": "naurų", "nan": "kinų kalbos pietų minų tarmė", "nap": "neapoliečių", "naq": "nama", "nb": "norvegų bukmolas", "nd": "šiaurės ndebelų", "nds": "Žemutinės Vokietijos", "nds-NL": "Žemutinės Saksonijos (Nyderlandai)", "ne": "nepaliečių", "new": "nevari", "ng": "ndongų", "nia": "nias", "niu": "niujiečių", "njo": "ao naga", "nl": "olandų", "nl-BE": "flamandų", "nmg": "kvasių", "nn": "naujoji norvegų", "nnh": "ngiembūnų", "no": "norvegų", "nog": "nogų", "non": "senoji norsų", "nov": "novial", "nqo": "enko", "nr": "pietų ndebele", "nso": "šiaurės Soto", "nus": "nuerų", "nv": "navajų", "nwc": "klasikinė nevari", "ny": "nianjų", "nym": "niamvezi", "nyn": "niankolų", "nyo": "niorų", "nzi": "nzima", "oc": "očitarų", "oj": "ojibva", "om": "oromų", "or": "odijų", "os": "osetinų", "osa": "osage", "ota": "osmanų turkų", "pa": "pendžabų", "pag": "pangasinanų", "pal": "vidurinė persų kalba", "pam": "pampangų", "pap": "papiamento", "pau": "palauliečių", "pcd": "pikardų", "pcm": "Nigerijos pidžinų", "pdc": "Pensilvanijos vokiečių", "pdt": "vokiečių kalbos žemaičių tarmė", "peo": "senoji persų", "pfl": "vokiečių kalbos Pfalco tarmė", "phn": "finikiečių", "pi": "pali", "pl": "lenkų", "pms": "italų kalbos Pjemonto tarmė", "pnt": "Ponto", "pon": "Ponapės", "prg": "prūsų", "pro": "senovės provansalų", "ps": "puštūnų", "pt": "portugalų", "pt-BR": "Brazilijos portugalų", "pt-PT": "Europos portugalų", "qu": "kečujų", "quc": "kičių", "qug": "Čimboraso aukštumų kečujų", "raj": "Radžastano", "rap": "rapanui", "rar": "rarotonganų", "rgn": "italų kalbos Romanijos tarmė", "rif": "rifų", "rm": "retoromanų", "rn": "rundi", "ro": "rumunų", "ro-MD": "moldavų", "rof": "rombo", "rom": "romų", "root": "rūt", "rtm": "rotumanų", "ru": "rusų", "rue": "rusinų", "rug": "Rovianos", "rup": "aromanių", "rw": "kinjaruandų", "rwk": "rua", "sa": "sanskritas", "sad": "sandavių", "sah": "jakutų", "sam": "samarėjų aramių", "saq": "sambūrų", "sas": "sasak", "sat": "santalių", "saz": "sauraštrų", "sba": "ngambajų", "sbp": "sangų", "sc": "sardiniečių", "scn": "siciliečių", "sco": "škotų", "sd": "sindų", "sdc": "sasaresų sardinų", "sdh": "pietų kurdų", "se": "šiaurės samių", "see": "senecų", "seh": "senų", "sei": "seri", "sel": "selkup", "ses": "kojraboro seni", "sg": "sango", "sga": "senoji airių", "sgs": "žemaičių", "sh": "serbų-kroatų", "shi": "tachelhitų", "shn": "šan", "shu": "chadian arabų", "si": "sinhalų", "sid": "sidamų", "sk": "slovakų", "sl": "slovėnų", "sli": "sileziečių žemaičių", "sly": "selajarų", "sm": "Samoa", "sma": "pietų samių", "smj": "Liuleo samių", "smn": "Inario samių", "sms": "Skolto samių", "sn": "šonų", "snk": "soninke", "so": "somaliečių", "sog": "sogdien", "sq": "albanų", "sr": "serbų", "srn": "sranan tongo", "srr": "sererų", "ss": "svatų", "ssy": "saho", "st": "pietų Soto", "stq": "Saterlendo fryzų", "su": "sundų", "suk": "sukuma", "sus": "susu", "sux": "šumerų", "sv": "švedų", "sw": "suahilių", "sw-CD": "Kongo suahilių", "swb": "Komorų", "syc": "klasikinė sirų", "syr": "sirų", "szl": "sileziečių", "ta": "tamilų", "tcy": "tulų", "te": "telugų", "tem": "timne", "teo": "teso", "ter": "Tereno", "tet": "tetum", "tg": "tadžikų", "th": "tajų", "ti": "tigrajų", "tig": "tigre", "tk": "turkmėnų", "tkl": "Tokelau", "tkr": "tsakurų", "tl": "tagalogų", "tlh": "klingonų", "tli": "tlingitų", "tly": "talyšų", "tmh": "tamašek", "tn": "tsvanų", "to": "tonganų", "tog": "niasa tongų", "tpi": "Papua pidžinų", "tr": "turkų", "tru": "turoyo", "trv": "Taroko", "ts": "tsongų", "tsd": "tsakonų", "tsi": "tsimšian", "tt": "totorių", "ttt": "musulmonų tatų", "tum": "tumbukų", "tvl": "Tuvalu", "tw": "tvi", "twq": "tasavakų", "ty": "taitiečių", "tyv": "tuvių", "tzm": "Centrinio Maroko tamazitų", "udm": "udmurtų", "ug": "uigūrų", "uga": "ugaritų", "uk": "ukrainiečių", "umb": "umbundu", "ur": "urdų", "uz": "uzbekų", "ve": "vendų", "vec": "venetų", "vep": "vepsų", "vi": "vietnamiečių", "vls": "vakarų flamandų", "vmf": "pagrindinė frankonų", "vo": "volapiuko", "vot": "Votik", "vro": "veru", "vun": "vunjo", "wa": "valonų", "wae": "valserų", "wal": "valamo", "war": "varai", "was": "Vašo", "wbp": "valrpiri", "wo": "volofų", "wuu": "kinų kalbos vu tarmė", "xal": "kalmukų", "xh": "kosų", "xmf": "megrelų", "xog": "sogų", "yao": "jao", "yap": "japezų", "yav": "jangbenų", "ybb": "jembų", "yi": "jidiš", "yo": "jorubų", "yrl": "njengatu", "yue": "kinų kalbos Kantono tarmė", "za": "chuang", "zap": "zapotekų", "zbl": "BLISS simbolių", "zea": "zelandų", "zen": "zenaga", "zgh": "standartinė Maroko tamazigtų", "zh": "kinų", "zh-Hans": "supaprastintoji kinų", "zh-Hant": "tradicinė kinų", "zu": "zulų", "zun": "Zuni", "zza": "zaza"}}, + "lv": {"rtl": false, "languageNames": {"aa": "afāru", "ab": "abhāzu", "ace": "ačinu", "ach": "ačolu", "ada": "adangmu", "ady": "adigu", "ae": "avesta", "af": "afrikandu", "afh": "afrihili", "agq": "aghemu", "ain": "ainu", "ak": "akanu", "akk": "akadiešu", "ale": "aleutu", "alt": "dienvidaltajiešu", "am": "amharu", "an": "aragoniešu", "ang": "senangļu", "anp": "angika", "ar": "arābu", "ar-001": "mūsdienu standarta arābu", "arc": "aramiešu", "arn": "araukāņu", "arp": "arapahu", "arw": "aravaku", "as": "asamiešu", "asa": "asu", "ast": "astūriešu", "av": "avāru", "awa": "avadhu", "ay": "aimaru", "az": "azerbaidžāņu", "az-Arab": "dienvidazerbaidžāņu", "ba": "baškīru", "bal": "beludžu", "ban": "baliešu", "bas": "basu", "bax": "bamumu", "bbj": "gomalu", "be": "baltkrievu", "bej": "bedžu", "bem": "bembu", "bez": "bena", "bfd": "bafutu", "bg": "bulgāru", "bgn": "rietumbeludžu", "bho": "bhodžpūru", "bi": "bišlamā", "bik": "bikolu", "bin": "binu", "bkm": "komu", "bla": "siksiku", "bm": "bambaru", "bn": "bengāļu", "bo": "tibetiešu", "br": "bretoņu", "bra": "bradžiešu", "brx": "bodo", "bs": "bosniešu", "bss": "nkosi", "bua": "burjatu", "bug": "bugu", "bum": "bulu", "byn": "bilinu", "byv": "medumbu", "ca": "katalāņu", "cad": "kadu", "car": "karību", "cay": "kajuga", "cch": "atsamu", "ccp": "čakmu", "ce": "čečenu", "ceb": "sebuāņu", "cgg": "kiga", "ch": "čamorru", "chb": "čibču", "chg": "džagatajs", "chk": "čūku", "chm": "mariešu", "chn": "činuku žargons", "cho": "čoktavu", "chp": "čipevaianu", "chr": "čiroku", "chy": "šejenu", "ckb": "centrālkurdu", "co": "korsikāņu", "cop": "koptu", "cr": "krī", "crh": "Krimas tatāru", "crs": "franciskā kreoliskā valoda (Seišelu salas)", "cs": "čehu", "csb": "kašubu", "cu": "baznīcslāvu", "cv": "čuvašu", "cy": "velsiešu", "da": "dāņu", "dak": "dakotu", "dar": "dargu", "dav": "taitu", "de": "vācu", "de-AT": "vācu (Austrija)", "de-CH": "augšvācu (Šveice)", "del": "delavēru", "den": "sleivu", "dgr": "dogribu", "din": "dinku", "dje": "zarmu", "doi": "dogru", "dsb": "lejassorbu", "dua": "dualu", "dum": "vidusholandiešu", "dv": "maldīviešu", "dyo": "diola-fonjī", "dyu": "diūlu", "dz": "dzongke", "dzg": "dazu", "ebu": "kjembu", "ee": "evu", "efi": "efiku", "egy": "ēģiptiešu", "eka": "ekadžuku", "el": "grieķu", "elx": "elamiešu", "en": "angļu", "en-AU": "angļu (Austrālija)", "en-CA": "angļu (Kanāda)", "en-GB": "angļu (Lielbritānija)", "en-US": "angļu (Amerikas Savienotās Valstis)", "enm": "vidusangļu", "eo": "esperanto", "es": "spāņu", "es-419": "spāņu (Latīņamerika)", "es-ES": "spāņu (Spānija)", "es-MX": "spāņu (Meksika)", "et": "igauņu", "eu": "basku", "ewo": "evondu", "fa": "persiešu", "fan": "fangu", "fat": "fantu", "ff": "fulu", "fi": "somu", "fil": "filipīniešu", "fj": "fidžiešu", "fo": "fēru", "fon": "fonu", "fr": "franču", "fr-CA": "franču (Kanāda)", "fr-CH": "franču (Šveice)", "frc": "kadžūnu franču", "frm": "vidusfranču", "fro": "senfranču", "frr": "ziemeļfrīzu", "frs": "austrumfrīzu", "fur": "friūlu", "fy": "rietumfrīzu", "ga": "īru", "gaa": "ga", "gag": "gagauzu", "gay": "gajo", "gba": "gbaju", "gd": "skotu gēlu", "gez": "gēzu", "gil": "kiribatiešu", "gl": "galisiešu", "gmh": "vidusaugšvācu", "gn": "gvaranu", "goh": "senaugšvācu", "gon": "gondu valodas", "gor": "gorontalu", "got": "gotu", "grb": "grebo", "grc": "sengrieķu", "gsw": "Šveices vācu", "gu": "gudžaratu", "guz": "gusii", "gv": "meniešu", "gwi": "kučinu", "ha": "hausu", "hai": "haidu", "haw": "havajiešu", "he": "ivrits", "hi": "hindi", "hil": "hiligainonu", "hit": "hetu", "hmn": "hmongu", "ho": "hirimotu", "hr": "horvātu", "hsb": "augšsorbu", "ht": "haitiešu", "hu": "ungāru", "hup": "hupu", "hy": "armēņu", "hz": "hereru", "ia": "interlingva", "iba": "ibanu", "ibb": "ibibio", "id": "indonēziešu", "ie": "interlingve", "ig": "igbo", "ii": "Sičuaņas ji", "ik": "inupiaku", "ilo": "iloku", "inh": "ingušu", "io": "ido", "is": "islandiešu", "it": "itāļu", "iu": "inuītu", "ja": "japāņu", "jbo": "ložbans", "jmc": "mačamu", "jpr": "jūdpersiešu", "jrb": "jūdarābu", "jv": "javiešu", "ka": "gruzīnu", "kaa": "karakalpaku", "kab": "kabilu", "kac": "kačinu", "kaj": "kadži", "kam": "kambu", "kaw": "kāvi", "kbd": "kabardiešu", "kbl": "kaņembu", "kcg": "katabu", "kde": "makonde", "kea": "kaboverdiešu", "kfo": "koru", "kg": "kongu", "kha": "khasu", "kho": "hotaniešu", "khq": "koiračiinī", "ki": "kikuju", "kj": "kvaņamu", "kk": "kazahu", "kkj": "kako", "kl": "grenlandiešu", "kln": "kalendžīnu", "km": "khmeru", "kmb": "kimbundu", "kn": "kannadu", "ko": "korejiešu", "koi": "komiešu-permiešu", "kok": "konkanu", "kos": "kosrājiešu", "kpe": "kpellu", "kr": "kanuru", "krc": "karačaju un balkāru", "krl": "karēļu", "kru": "kuruhu", "ks": "kašmiriešu", "ksb": "šambalu", "ksf": "bafiju", "ksh": "Ķelnes vācu", "ku": "kurdu", "kum": "kumiku", "kut": "kutenaju", "kv": "komiešu", "kw": "korniešu", "ky": "kirgīzu", "la": "latīņu", "lad": "ladino", "lag": "langi", "lah": "landu", "lam": "lambu", "lb": "luksemburgiešu", "lez": "lezgīnu", "lg": "gandu", "li": "limburgiešu", "lkt": "lakotu", "ln": "lingala", "lo": "laosiešu", "lol": "mongu", "lou": "Luiziānas kreolu", "loz": "lozu", "lrc": "ziemeļluru", "lt": "lietuviešu", "lu": "lubakatanga", "lua": "lubalulva", "lui": "luisenu", "lun": "lundu", "lus": "lušeju", "luy": "luhju", "lv": "latviešu", "mad": "maduriešu", "maf": "mafu", "mag": "magahiešu", "mai": "maithili", "mak": "makasaru", "man": "mandingu", "mas": "masaju", "mde": "mabu", "mdf": "mokšu", "mdr": "mandaru", "men": "mendu", "mer": "meru", "mfe": "Maurīcijas kreolu", "mg": "malagasu", "mga": "vidusīru", "mgh": "makua", "mh": "māršaliešu", "mi": "maoru", "mic": "mikmaku", "min": "minangkabavu", "mk": "maķedoniešu", "ml": "malajalu", "mn": "mongoļu", "mnc": "mandžūru", "mni": "manipūru", "moh": "mohauku", "mos": "mosu", "mr": "marathu", "ms": "malajiešu", "mt": "maltiešu", "mua": "mundangu", "mus": "krīku", "mwl": "mirandiešu", "mwr": "marvaru", "my": "birmiešu", "mye": "mjenu", "myv": "erzju", "mzn": "mazanderāņu", "na": "nauruiešu", "nap": "neapoliešu", "naq": "nama", "nb": "norvēģu bukmols", "nd": "ziemeļndebelu", "nds": "lejasvācu", "nds-NL": "lejassakšu", "ne": "nepāliešu", "new": "nevaru", "ng": "ndongu", "nia": "njasu", "niu": "niuāņu", "nl": "holandiešu", "nl-BE": "flāmu", "nmg": "kvasio", "nn": "jaunnorvēģu", "nnh": "ngjembūnu", "no": "norvēģu", "nog": "nogaju", "non": "sennorvēģu", "nqo": "nko", "nr": "dienvidndebelu", "nso": "ziemeļsotu", "nus": "nueru", "nv": "navahu", "nwc": "klasiskā nevaru", "ny": "čičeva", "nym": "ņamvezu", "nyn": "ņankolu", "nyo": "ņoru", "nzi": "nzemu", "oc": "oksitāņu", "oj": "odžibvu", "om": "oromu", "or": "oriju", "os": "osetīnu", "osa": "važāžu", "ota": "turku osmaņu", "pa": "pandžabu", "pag": "pangasinanu", "pal": "pehlevi", "pam": "pampanganu", "pap": "papjamento", "pau": "palaviešu", "pcm": "Nigērijas pidžinvaloda", "peo": "senpersu", "phn": "feniķiešu", "pi": "pāli", "pl": "poļu", "pon": "ponapiešu", "prg": "prūšu", "pro": "senprovansiešu", "ps": "puštu", "pt": "portugāļu", "pt-BR": "portugāļu (Brazīlija)", "pt-PT": "portugāļu (Portugāle)", "qu": "kečvu", "quc": "kiče", "raj": "radžastāņu", "rap": "rapanuju", "rar": "rarotongiešu", "rm": "retoromāņu", "rn": "rundu", "ro": "rumāņu", "ro-MD": "moldāvu", "rof": "rombo", "rom": "čigānu", "root": "sakne", "ru": "krievu", "rup": "aromūnu", "rw": "kiņaruanda", "rwk": "ruanda", "sa": "sanskrits", "sad": "sandavu", "sah": "jakutu", "sam": "Samārijas aramiešu", "saq": "samburu", "sas": "sasaku", "sat": "santalu", "sba": "ngambeju", "sbp": "sangu", "sc": "sardīniešu", "scn": "sicīliešu", "sco": "skotu", "sd": "sindhu", "sdh": "dienvidkurdu", "se": "ziemeļsāmu", "see": "seneku", "seh": "senu", "sel": "selkupu", "ses": "koiraboro senni", "sg": "sango", "sga": "senīru", "sh": "serbu–horvātu", "shi": "šilhu", "shn": "šanu", "shu": "Čadas arābu", "si": "singāļu", "sid": "sidamu", "sk": "slovāku", "sl": "slovēņu", "sm": "samoāņu", "sma": "dienvidsāmu", "smj": "Luleo sāmu", "smn": "Inari sāmu", "sms": "skoltsāmu", "sn": "šonu", "snk": "soninku", "so": "somāļu", "sog": "sogdiešu", "sq": "albāņu", "sr": "serbu", "srn": "sranantogo", "srr": "serēru", "ss": "svatu", "ssy": "saho", "st": "dienvidsotu", "su": "zundu", "suk": "sukumu", "sus": "susu", "sux": "šumeru", "sv": "zviedru", "sw": "svahili", "sw-CD": "svahili (Kongo)", "swb": "komoru", "syc": "klasiskā sīriešu", "syr": "sīriešu", "ta": "tamilu", "te": "telugu", "tem": "temnu", "teo": "teso", "ter": "tereno", "tet": "tetumu", "tg": "tadžiku", "th": "taju", "ti": "tigrinja", "tig": "tigru", "tiv": "tivu", "tk": "turkmēņu", "tkl": "tokelaviešu", "tl": "tagalu", "tlh": "klingoņu", "tli": "tlinkitu", "tmh": "tuaregu", "tn": "cvanu", "to": "tongiešu", "tog": "Njasas tongu", "tpi": "tokpisins", "tr": "turku", "trv": "taroko", "ts": "congu", "tsi": "cimšiāņu", "tt": "tatāru", "tum": "tumbuku", "tvl": "tuvaliešu", "tw": "tvī", "twq": "tasavaku", "ty": "taitiešu", "tyv": "tuviešu", "tzm": "Centrālmarokas tamazīts", "udm": "udmurtu", "ug": "uiguru", "uga": "ugaritiešu", "uk": "ukraiņu", "umb": "umbundu", "ur": "urdu", "uz": "uzbeku", "vai": "vaju", "ve": "vendu", "vi": "vjetnamiešu", "vo": "volapiks", "vot": "votu", "vun": "vundžo", "wa": "valoņu", "wae": "Vallisas vācu", "wal": "valamu", "war": "varaju", "was": "vašo", "wbp": "varlpirī", "wo": "volofu", "xal": "kalmiku", "xh": "khosu", "xog": "sogu", "yao": "jao", "yap": "japiešu", "yav": "janbaņu", "ybb": "jembu", "yi": "jidišs", "yo": "jorubu", "yue": "kantoniešu", "za": "džuanu", "zap": "sapoteku", "zbl": "blissimbolika", "zen": "zenagu", "zgh": "standarta tamazigtu (Maroka)", "zh": "ķīniešu", "zh-Hans": "ķīniešu vienkāršotā", "zh-Hant": "ķīniešu tradicionālā", "zu": "zulu", "zun": "zunju", "zza": "zazaki"}}, + "mg": {"rtl": false, "languageNames": {"ak": "Akan", "am": "Amharika", "ar": "Arabo", "ar-001": "Arabo (001)", "be": "Bielorosy", "bg": "Biolgara", "bn": "Bengali", "cs": "Tseky", "de": "Alemanina", "de-AT": "Alemanina (Aotrisy)", "de-CH": "Alemanina (Soisa)", "el": "Grika", "en": "Anglisy", "en-AU": "Anglisy (Aostralia)", "en-CA": "Anglisy (Kanada)", "en-GB": "Anglisy (Angletera)", "en-US": "Anglisy (Etazonia)", "es": "Espaniola", "es-419": "Espaniola (419)", "es-ES": "Espaniola (Espaina)", "es-MX": "Espaniola (Meksika)", "fa": "Persa", "fr": "Frantsay", "fr-CA": "Frantsay (Kanada)", "fr-CH": "Frantsay (Soisa)", "ha": "haoussa", "hi": "hindi", "hu": "hongroà", "id": "Indonezianina", "ig": "igbo", "it": "Italianina", "ja": "Japoney", "jv": "Javaney", "km": "khmer", "ko": "Koreanina", "mg": "Malagasy", "ms": "Malay", "my": "Birmana", "nds-NL": "nds (Holanda)", "ne": "Nepale", "nl": "Holandey", "nl-BE": "Holandey (Belzika)", "pa": "Penjabi", "pl": "Poloney", "pt": "Portiogey", "pt-BR": "Portiogey (Brezila)", "pt-PT": "Portiogey (Pôrtiogala)", "ro": "Romanianina", "ro-MD": "Romanianina (Môldavia)", "ru": "Rosianina", "rw": "Roande", "so": "Somalianina", "sv": "Soisa", "sw-CD": "sw (Repoblikan’i Kongo)", "ta": "Tamoila", "th": "Taioaney", "tr": "Tiorka", "uk": "Okrainianina", "ur": "Ordò", "vi": "Vietnamianina", "yo": "Yôrobà", "zh": "Sinoa, Mandarin", "zh-Hans": "Sinoa, Mandarin (Hans)", "zh-Hant": "Sinoa, Mandarin (Hant)", "zu": "Zolò"}}, + "mk": {"rtl": false, "languageNames": {"aa": "афарски", "ab": "апхаски", "ace": "ачешки", "ach": "аколи", "ada": "адангме", "ady": "адигејски", "ae": "авестански", "aeb": "туниски арапски", "af": "африканс", "afh": "африхили", "agq": "агемски", "ain": "ајну", "ak": "акански", "akk": "акадски", "akz": "алабамски", "ale": "алеутски", "aln": "гешки албански", "alt": "јужноалтајски", "am": "амхарски", "an": "арагонски", "ang": "староанглиски", "anp": "ангика", "ar": "арапски", "ar-001": "литературен арапски", "arc": "арамејски", "arn": "мапучки", "aro": "араона", "arp": "арапахо", "arq": "алжирски арапски", "arw": "аравачки", "ary": "марокански арапски", "arz": "египетски арапски", "as": "асамски", "asa": "асу", "ase": "американски знаковен јазик", "ast": "астурски", "av": "аварски", "avk": "котава", "awa": "авади", "ay": "ајмарски", "az": "азербејџански", "ba": "башкирски", "bal": "белуџиски", "ban": "балиски", "bar": "баварски", "bas": "баса", "bax": "бамунски", "bbc": "тоба", "bbj": "гомала", "be": "белоруски", "bej": "беџа", "bem": "бемба", "bew": "бетавски", "bez": "бена", "bfd": "бафут", "bfq": "бадага", "bg": "бугарски", "bgn": "западен балочи", "bho": "боџпури", "bi": "бислама", "bik": "биколски", "bin": "бини", "bjn": "банџарски", "bkm": "ком", "bla": "сиксика", "bm": "бамбара", "bn": "бенгалски", "bo": "тибетски", "bpy": "бишнуприја", "bqi": "бахтијарски", "br": "бретонски", "bra": "брај", "brh": "брахујски", "brx": "бодо", "bs": "босански", "bss": "акосе", "bua": "бурјатски", "bug": "бугиски", "bum": "булу", "byn": "биленски", "byv": "медумба", "ca": "каталонски", "cad": "кадо", "car": "карипски", "cay": "кајуга", "cch": "ацам", "ccp": "чакмански", "ce": "чеченски", "ceb": "себуански", "cgg": "чига", "ch": "чаморски", "chb": "чибча", "chg": "чагатајски", "chk": "чучки", "chm": "мариски", "chn": "чинучки жаргон", "cho": "чоктавски", "chp": "чипевјански", "chr": "черокиски", "chy": "чејенски", "ckb": "централнокурдски", "co": "корзикански", "cop": "коптски", "cps": "капизнон", "cr": "кри", "crh": "кримскотурски", "crs": "француски (Сеселва креоли)", "cs": "чешки", "csb": "кашупски", "cu": "црковнословенски", "cv": "чувашки", "cy": "велшки", "da": "дански", "dak": "дакота", "dar": "даргва", "dav": "таита", "de": "германски", "de-AT": "австриски германски", "de-CH": "швајцарски високо-германски", "del": "делавер", "den": "слејви", "dgr": "догрипски", "din": "динка", "dje": "зарма", "doi": "догри", "dsb": "долнолужички", "dtp": "дусунски", "dua": "дуала", "dum": "среднохоландски", "dv": "дивехи", "dyo": "јола-фоњи", "dyu": "џула", "dz": "ѕонгка", "dzg": "дазага", "ebu": "ембу", "ee": "еве", "efi": "ефик", "egl": "емилијански", "egy": "староегипетски", "eka": "екаџук", "el": "грчки", "elx": "еламски", "en": "англиски", "en-AU": "австралиски англиски", "en-CA": "канадски англиски", "en-GB": "британски англиски", "en-US": "американски англиски", "enm": "средноанглиски", "eo": "есперанто", "es": "шпански", "es-419": "латиноамерикански шпански", "es-ES": "шпански (во Европа)", "es-MX": "мексикански шпански", "esu": "централнојупички", "et": "естонски", "eu": "баскиски", "ewo": "евондо", "ext": "екстремадурски", "fa": "персиски", "fan": "фанг", "fat": "фанти", "ff": "фула", "fi": "фински", "fil": "филипински", "fit": "турнедаленски фински", "fj": "фиџиски", "fo": "фарски", "fon": "фон", "fr": "француски", "fr-CA": "канадски француски", "fr-CH": "швајцарски француски", "frc": "каџунски француски", "frm": "среднофранцуски", "fro": "старофранцуски", "frp": "франкопровансалски", "frr": "севернофризиски", "frs": "источнофризиски", "fur": "фурлански", "fy": "западнофризиски", "ga": "ирски", "gaa": "га", "gag": "гагауски", "gan": "ган", "gay": "гајо", "gba": "гбаја", "gbz": "зороастриски дари", "gd": "шкотски гелски", "gez": "гиз", "gil": "гилбертански", "gl": "галициски", "glk": "гилански", "gmh": "средногорногермански", "gn": "гварански", "goh": "старогорногермански", "gom": "гоански конкани", "gon": "гонди", "gor": "горонтало", "got": "готски", "grb": "гребо", "grc": "старогрчки", "gsw": "швајцарски германски", "gu": "гуџарати", "guc": "гвахиро", "gur": "фарефаре", "guz": "гуси", "gv": "манкс", "gwi": "гвичински", "ha": "хауса", "hai": "хајда", "hak": "хака", "haw": "хавајски", "he": "хебрејски", "hi": "хинди", "hif": "фиџиски хинди", "hil": "хилигајнонски", "hit": "хетитски", "hmn": "хмонг", "ho": "хири моту", "hr": "хрватски", "hsb": "горнолужички", "hsn": "сјанг", "ht": "хаитски", "hu": "унгарски", "hup": "хупа", "hy": "ерменски", "hz": "хереро", "ia": "интерлингва", "iba": "ибан", "ibb": "ибибио", "id": "индонезиски", "ie": "окцидентал", "ig": "игбо", "ii": "сичуан ји", "ik": "инупијачки", "ilo": "илокански", "inh": "ингушки", "io": "идо", "is": "исландски", "it": "италијански", "iu": "инуктитут", "izh": "ижорски", "ja": "јапонски", "jam": "јамајски креолски", "jbo": "ложбан", "jgo": "нгомба", "jmc": "мачаме", "jpr": "еврејскоперсиски", "jrb": "еврејскоарапски", "jut": "јитски", "jv": "јавански", "ka": "грузиски", "kaa": "каракалпачки", "kab": "кабилски", "kac": "качински", "kaj": "каџе", "kam": "камба", "kaw": "кави", "kbd": "кабардински", "kbl": "канембу", "kcg": "тјап", "kde": "маконде", "kea": "кабувердиану", "ken": "кењанг", "kfo": "коро", "kg": "конго", "kgp": "каинганшки", "kha": "каси", "kho": "хотански", "khq": "којра чиини", "khw": "коварски", "ki": "кикују", "kiu": "зазаки", "kj": "квањама", "kk": "казашки", "kkj": "како", "kl": "калалисут", "kln": "каленџин", "km": "кмерски", "kmb": "кимбунду", "kn": "каннада", "ko": "корејски", "koi": "коми-пермјачки", "kok": "конкани", "kos": "козрејски", "kpe": "кпеле", "kr": "канури", "krc": "карачаевско-балкарски", "kri": "крио", "krj": "кинарајски", "krl": "карелски", "kru": "курух", "ks": "кашмирски", "ksb": "шамбала", "ksf": "бафија", "ksh": "колоњски", "ku": "курдски", "kum": "кумички", "kut": "кутенајски", "kv": "коми", "kw": "корнски", "ky": "киргиски", "la": "латински", "lad": "ладино", "lag": "ланги", "lah": "ланда", "lam": "ламба", "lb": "луксембуршки", "lez": "лезгински", "lfn": "лингва франка нова", "lg": "ганда", "li": "лимбуршки", "lij": "лигурски", "liv": "ливонски", "lkt": "лакотски", "lmo": "ломбардиски", "ln": "лингала", "lo": "лаошки", "lol": "монго", "lou": "луизијански креолски", "loz": "лози", "lrc": "севернолуриски", "lt": "литвански", "ltg": "латгалски", "lu": "луба-катанга", "lua": "луба-лулуа", "lui": "лујсењски", "lun": "лунда", "luo": "луо", "lus": "мизо", "luy": "луја", "lv": "латвиски", "lzh": "книжевен кинески", "lzz": "ласки", "mad": "мадурски", "maf": "мафа", "mag": "магахи", "mai": "маитили", "mak": "макасарски", "man": "мандинго", "mas": "масајски", "mde": "маба", "mdf": "мокшански", "mdr": "мандарски", "men": "менде", "mer": "меру", "mfe": "морисјен", "mg": "малгашки", "mga": "средноирски", "mgh": "макува-мито", "mgo": "мета", "mh": "маршалски", "mi": "маорски", "mic": "микмак", "min": "минангкабау", "mk": "македонски", "ml": "малајамски", "mn": "монголски", "mnc": "манџурски", "mni": "манипурски", "moh": "мохавски", "mos": "моси", "mr": "марати", "mrj": "западномариски", "ms": "малајски", "mt": "малтешки", "mua": "мунданг", "mus": "крик", "mwl": "мирандски", "mwr": "марвари", "my": "бурмански", "mye": "мјене", "myv": "ерзјански", "mzn": "мазендерански", "na": "науруански", "nan": "јужномински", "nap": "неаполски", "naq": "нама", "nb": "норвешки букмол", "nd": "северен ндебеле", "nds": "долногермански", "nds-NL": "долносаксонски", "ne": "непалски", "new": "неварски", "ng": "ндонга", "nia": "нијас", "niu": "ниујески", "njo": "ао нага", "nl": "холандски", "nl-BE": "фламански", "nmg": "квазио", "nn": "норвешки нинорск", "nnh": "нгиембун", "no": "норвешки", "nog": "ногајски", "non": "старонордиски", "nov": "новијал", "nqo": "нко", "nr": "јужен ндебеле", "nso": "северносотски", "nus": "нуер", "nv": "навахо", "nwc": "класичен неварски", "ny": "њанџа", "nym": "њамвези", "nyn": "њанколе", "nyo": "њоро", "nzi": "нзима", "oc": "окситански", "oj": "оџибва", "om": "оромо", "or": "одија", "os": "осетски", "osa": "осашки", "ota": "отомански турски", "pa": "пенџапски", "pag": "пангасинански", "pal": "средноперсиски", "pam": "пампанга", "pap": "папијаменто", "pau": "палауански", "pcd": "пикардски", "pcm": "нигериски пиџин", "pdc": "пенсилваниски германски", "pdt": "менонитски долногермански", "peo": "староперсиски", "pfl": "фалечкогермански", "phn": "феникиски", "pi": "пали", "pl": "полски", "pms": "пиемонтски", "pnt": "понтски", "pon": "понпејски", "prg": "пруски", "pro": "старопровансалски", "ps": "паштунски", "pt": "португалски", "pt-BR": "бразилски португалски", "pt-PT": "португалски (во Европа)", "qu": "кечуански", "quc": "киче", "qug": "кичвански", "raj": "раџастански", "rap": "рапанујски", "rar": "раротонгански", "rgn": "ромањолски", "rif": "рифски", "rm": "реторомански", "rn": "рунди", "ro": "романски", "ro-MD": "молдавски", "rof": "ромбо", "rom": "ромски", "root": "корен", "rtm": "ротумански", "ru": "руски", "rue": "русински", "rug": "ровијански", "rup": "влашки", "rw": "руандски", "rwk": "руа", "sa": "санскрит", "sad": "сандаве", "sah": "јакутски", "sam": "самарјански арамејски", "saq": "самбуру", "sas": "сасачки", "sat": "сантали", "saz": "саураштра", "sba": "нгембеј", "sbp": "сангу", "sc": "сардински", "scn": "сицилијански", "sco": "шкотски германски", "sd": "синди", "sdc": "сасарски сардински", "sdh": "јужнокурдски", "se": "северен сами", "see": "сенека", "seh": "сена", "sei": "сери", "sel": "селкупски", "ses": "којраборо сени", "sg": "санго", "sga": "староирски", "sgs": "самогитски", "sh": "српскохрватски", "shi": "тачелхит", "shn": "шан", "shu": "чадски арапски", "si": "синхалски", "sid": "сидамо", "sk": "словачки", "sl": "словенечки", "sli": "долношлезиски", "sly": "селајарски", "sm": "самоански", "sma": "јужен сами", "smj": "луле сами", "smn": "инари сами", "sms": "сколт сами", "sn": "шона", "snk": "сонинке", "so": "сомалиски", "sog": "зогдијански", "sq": "албански", "sr": "српски", "srn": "срански тонго", "srr": "серер", "ss": "свати", "ssy": "сахо", "st": "сесото", "stq": "затерландски фризиски", "su": "сундски", "suk": "сукума", "sus": "сусу", "sux": "сумерски", "sv": "шведски", "sw": "свахили", "sw-CD": "конгоански свахили", "swb": "коморијански", "syc": "класичен сириски", "syr": "сириски", "szl": "шлезиски", "ta": "тамилски", "tcy": "тулу", "te": "телугу", "tem": "тимне", "teo": "тесо", "ter": "терено", "tet": "тетум", "tg": "таџикистански", "th": "тајландски", "ti": "тигриња", "tig": "тигре", "tiv": "тив", "tk": "туркменски", "tkl": "токелауански", "tkr": "цахурски", "tl": "тагалог", "tlh": "клингонски", "tli": "тлингит", "tly": "талишки", "tmh": "тамашек", "tn": "цвана", "to": "тонгајски", "tog": "њаса тонга", "tpi": "ток писин", "tr": "турски", "tru": "туројо", "trv": "тароко", "ts": "цонга", "tsd": "цаконски", "tsi": "цимшијански", "tt": "татарски", "ttt": "татски", "tum": "тумбука", "tvl": "тувалуански", "tw": "тви", "twq": "тазавак", "ty": "тахитски", "tyv": "тувански", "tzm": "централноатлански тамазитски", "udm": "удмуртски", "ug": "ујгурски", "uga": "угаритски", "uk": "украински", "umb": "умбунду", "ur": "урду", "uz": "узбечки", "vai": "вај", "ve": "венда", "vec": "венетски", "vep": "вепшки", "vi": "виетнамски", "vls": "западнофламански", "vmf": "мајнскофранконски", "vo": "волапик", "vot": "вотски", "vro": "виру", "vun": "вунџо", "wa": "валонски", "wae": "валсер", "wal": "воламо", "war": "варајски", "was": "вашо", "wbp": "варлпири", "wo": "волофски", "wuu": "ву", "xal": "калмички", "xh": "коса", "xmf": "мегрелски", "xog": "сога", "yao": "јао", "yap": "јапски", "yav": "јенгбен", "ybb": "јемба", "yi": "јидиш", "yo": "јорупски", "yrl": "њенгату", "yue": "кантонски", "za": "џуаншки", "zap": "запотечки", "zbl": "блиссимболи", "zea": "зеландски", "zen": "зенага", "zgh": "стандарден марокански тамазитски", "zh": "кинески", "zh-Hans": "поедноставен кинески", "zh-Hant": "традиционален кинески", "zu": "зулу", "zun": "зуни", "zza": "заза"}}, + "ml": {"rtl": false, "languageNames": {"aa": "അഫാർ", "ab": "അബ്‌ഖാസിയൻ", "ace": "അചിനീസ്", "ach": "അകോലി", "ada": "അഡാങ്‌മി", "ady": "അഡൈഗേ", "ae": "അവസ്റ്റാൻ", "af": "ആഫ്രിക്കാൻസ്", "afh": "ആഫ്രിഹിലി", "agq": "ആഘേം", "ain": "ഐനു", "ak": "അകാൻ‌", "akk": "അക്കാഡിയൻ", "ale": "അലൂട്ട്", "alt": "തെക്കൻ അൾത്തായി", "am": "അംഹാരിക്", "an": "അരഗോണീസ്", "ang": "പഴയ ഇംഗ്ലീഷ്", "anp": "ആൻഗിക", "ar": "അറബിക്", "ar-001": "ആധുനിക സ്റ്റാൻഡേർഡ് അറബിക്", "arc": "അരമായ", "arn": "മാപുചി", "arp": "അറാപഹോ", "arw": "അറാവക്", "as": "ആസ്സാമീസ്", "asa": "ആസു", "ast": "ഓസ്‌ട്രിയൻ", "av": "അവാരിക്", "awa": "അവാധി", "ay": "അയ്മാറ", "az": "അസർബൈജാനി", "ba": "ബഷ്ഖിർ", "bal": "ബലൂചി", "ban": "ബാലിനീസ്", "bas": "ബസ", "bax": "ബാമുൻ", "bbj": "ഘോമാല", "be": "ബെലാറുഷ്യൻ", "bej": "ബേജ", "bem": "ബേംബ", "bez": "ബെനാ", "bfd": "ബാഫട്ട്", "bg": "ബൾഗേറിയൻ", "bgn": "പശ്ചിമ ബലൂചി", "bho": "ഭോജ്‌പുരി", "bi": "ബിസ്‌ലാമ", "bik": "ബികോൽ", "bin": "ബിനി", "bkm": "കോം", "bla": "സിക്സിക", "bm": "ബംബാറ", "bn": "ബംഗാളി", "bo": "ടിബറ്റൻ", "br": "ബ്രെട്ടൺ", "bra": "ബ്രജ്", "brx": "ബോഡോ", "bs": "ബോസ്നിയൻ", "bss": "അക്കൂസ്", "bua": "ബുറിയത്ത്", "bug": "ബുഗിനീസ്", "bum": "ബുളു", "byn": "ബ്ലിൻ", "byv": "മെഡുംബ", "ca": "കറ്റാലാൻ", "cad": "കാഡോ", "car": "കാരിബ്", "cay": "കയൂഗ", "cch": "അറ്റ്സാം", "ce": "ചെചൻ", "ceb": "സെബുവാനോ", "cgg": "ചിഗ", "ch": "ചമോറോ", "chb": "ചിബ്ച", "chg": "ഷാഗതായ്", "chk": "ചൂകീസ്", "chm": "മാരി", "chn": "ചിനൂഗ് ജാർഗൺ", "cho": "ചോക്റ്റാവ്", "chp": "ചിപേവ്യൻ", "chr": "ഷെരോക്കി", "chy": "ഷായാൻ", "ckb": "സെൻട്രൽ കുർദിഷ്", "co": "കോർസിക്കൻ", "cop": "കോപ്റ്റിക്", "cr": "ക്രീ", "crh": "ക്രിമിയൻ ടർക്കിഷ്", "crs": "സെഷൽവ ക്രിയോൾ ഫ്രഞ്ച്", "cs": "ചെക്ക്", "csb": "കാഷുബിയാൻ", "cu": "ചർച്ച് സ്ലാവിക്", "cv": "ചുവാഷ്", "cy": "വെൽഷ്", "da": "ഡാനിഷ്", "dak": "ഡകോട്ട", "dar": "ഡർഗ്വാ", "dav": "തൈത", "de": "ജർമ്മൻ", "de-AT": "ഓസ്‌ട്രിയൻ ജർമൻ", "de-CH": "സ്വിസ് ഹൈ ജർമൻ", "del": "ദെലവേർ", "den": "സ്ലേവ്", "dgr": "ഡോഗ്രിബ്", "din": "ദിൻക", "dje": "സാർമ്മ", "doi": "ഡോഗ്രി", "dsb": "ലോവർ സോർബിയൻ", "dua": "ദ്വാല", "dum": "മദ്ധ്യ ഡച്ച്", "dv": "ദിവെഹി", "dyo": "യോല-ഫോന്യി", "dyu": "ദ്വൈല", "dz": "സോങ്ക", "dzg": "ഡാസാഗ", "ebu": "എംബു", "ee": "യൂവ്", "efi": "എഫിക്", "egy": "പ്രാചീന ഈജിപ്ഷ്യൻ", "eka": "എകാജുക്", "el": "ഗ്രീക്ക്", "elx": "എലാമൈറ്റ്", "en": "ഇംഗ്ലീഷ്", "en-AU": "ഓസ്‌ട്രേലിയൻ ഇംഗ്ലീഷ്", "en-CA": "കനേഡിയൻ ഇംഗ്ലീഷ്", "en-GB": "ബ്രിട്ടീഷ് ഇംഗ്ലീഷ്", "en-US": "അമേരിക്കൻ ഇംഗ്ലീഷ്", "enm": "മദ്ധ്യ ഇംഗ്ലീഷ്", "eo": "എസ്‌പരാന്റോ", "es": "സ്‌പാനിഷ്", "es-419": "ലാറ്റിൻ അമേരിക്കൻ സ്‌പാനിഷ്", "es-ES": "യൂറോപ്യൻ സ്‌പാനിഷ്", "es-MX": "മെക്സിക്കൻ സ്പാനിഷ്", "et": "എസ്റ്റോണിയൻ", "eu": "ബാസ്‌ക്", "ewo": "എവോൻഡോ", "fa": "പേർഷ്യൻ", "fan": "ഫങ്", "fat": "ഫാന്റി", "ff": "ഫുല", "fi": "ഫിന്നിഷ്", "fil": "ഫിലിപ്പിനോ", "fj": "ഫിജിയൻ", "fo": "ഫാറോസ്", "fon": "ഫോൻ", "fr": "ഫ്രഞ്ച്", "fr-CA": "കനേഡിയൻ ഫ്രഞ്ച്", "fr-CH": "സ്വിസ് ഫ്രഞ്ച്", "frc": "കേജൺ ഫ്രഞ്ച്", "frm": "മദ്ധ്യ ഫ്രഞ്ച്", "fro": "പഴയ ഫ്രഞ്ച്", "frr": "നോർത്തേൻ ഫ്രിഷ്യൻ", "frs": "ഈസ്റ്റേൺ ഫ്രിഷ്യൻ", "fur": "ഫ്രിയുലിയാൻ", "fy": "പശ്ചിമ ഫ്രിഷിയൻ", "ga": "ഐറിഷ്", "gaa": "ഗാ", "gag": "ഗാഗൂസ്", "gan": "ഗാൻ ചൈനീസ്", "gay": "ഗയൊ", "gba": "ഗബ്യ", "gd": "സ്കോട്ടിഷ് ഗൈലിക്", "gez": "ഗീസ്", "gil": "ഗിൽബർട്ടീസ്", "gl": "ഗലീഷ്യൻ", "gmh": "മദ്ധ്യ ഉച്ച ജർമൻ", "gn": "ഗ്വരനീ", "goh": "ഓൾഡ് ഹൈ ജർമൻ", "gon": "ഗോണ്ഡി", "gor": "ഗൊറോന്റാലോ", "got": "ഗോഥിക്ക്", "grb": "ഗ്രബൊ", "grc": "പുരാതന ഗ്രീക്ക്", "gsw": "സ്വിസ് ജർമ്മൻ", "gu": "ഗുജറാത്തി", "guz": "ഗുസീ", "gv": "മാൻസ്", "gwi": "ഗ്വിച്ചിൻ", "ha": "ഹൗസ", "hai": "ഹൈഡ", "hak": "ഹാക്ക ചൈനീസ്", "haw": "ഹവായിയൻ", "he": "ഹീബ്രു", "hi": "ഹിന്ദി", "hil": "ഹിലിഗയ്നോൺ", "hit": "ഹിറ്റൈറ്റ്", "hmn": "മോങ്", "ho": "ഹിരി മോതു", "hr": "ക്രൊയേഷ്യൻ", "hsb": "അപ്പർ സോർബിയൻ", "hsn": "ഷ്യാങ് ചൈനീസ്", "ht": "ഹെയ്‌തിയൻ ക്രിയോൾ", "hu": "ഹംഗേറിയൻ", "hup": "ഹൂപ", "hy": "അർമേനിയൻ", "hz": "ഹെരേരൊ", "ia": "ഇന്റർലിംഗ്വ", "iba": "ഇബാൻ", "ibb": "ഇബീബിയോ", "id": "ഇന്തോനേഷ്യൻ", "ie": "ഇന്റർലിംഗ്വേ", "ig": "ഇഗ്ബോ", "ii": "ഷുവാൻയി", "ik": "ഇനുപിയാക്", "ilo": "ഇലോകോ", "inh": "ഇംഗ്വിഷ്", "io": "ഇഡോ", "is": "ഐസ്‌ലാൻഡിക്", "it": "ഇറ്റാലിയൻ", "iu": "ഇനുക്റ്റിറ്റട്ട്", "ja": "ജാപ്പനീസ്", "jbo": "ലോജ്ബാൻ", "jgo": "ഗോമ്പ", "jmc": "മചേം", "jpr": "ജൂഡിയോ-പേർഷ്യൻ", "jrb": "ജൂഡിയോ-അറബിക്", "jv": "ജാവാനീസ്", "ka": "ജോർജിയൻ", "kaa": "കര-കാൽപ്പക്", "kab": "കബൈൽ", "kac": "കാചിൻ", "kaj": "ജ്ജു", "kam": "കംബ", "kaw": "കാവി", "kbd": "കബർഡിയാൻ", "kbl": "കനെംബു", "kcg": "ട്യാപ്", "kde": "മക്കോണ്ടെ", "kea": "കബുവെർദിയാനു", "kfo": "കോറോ", "kg": "കോംഗോ", "kha": "ഘാസി", "kho": "ഘോറ്റാനേസേ", "khq": "കൊയ്റ ചീനി", "ki": "കികൂയു", "kj": "ക്വാന്യമ", "kk": "കസാഖ്", "kkj": "കാകോ", "kl": "കലാല്ലിസട്ട്", "kln": "കലെഞ്ഞിൻ", "km": "ഖമെർ", "kmb": "കിംബുണ്ടു", "kn": "കന്നഡ", "ko": "കൊറിയൻ", "koi": "കോമി-പെർമ്യാക്ക്", "kok": "കൊങ്കണി", "kos": "കൊസറേയൻ", "kpe": "കപെല്ലേ", "kr": "കനൂറി", "krc": "കരചൈ-ബാൽകർ", "krl": "കരീലിയൻ", "kru": "കുരുഖ്", "ks": "കാശ്‌മീരി", "ksb": "ഷംഭാള", "ksf": "ബാഫിയ", "ksh": "കൊളോണിയൻ", "ku": "കുർദ്ദിഷ്", "kum": "കുമൈക്", "kut": "കുതേനൈ", "kv": "കോമി", "kw": "കോർണിഷ്", "ky": "കിർഗിസ്", "la": "ലാറ്റിൻ", "lad": "ലാഡിനോ", "lag": "ലാംഗി", "lah": "ലഹ്‌ൻഡ", "lam": "ലംബ", "lb": "ലക്‌സംബർഗിഷ്", "lez": "ലഹ്ഗിയാൻ", "lg": "ഗാണ്ട", "li": "ലിംബർഗിഷ്", "lkt": "ലഗോത്ത", "ln": "ലിംഗാല", "lo": "ലാവോ", "lol": "മോങ്കോ", "lou": "ലൂസിയാന ക്രിയോൾ", "loz": "ലൊസി", "lrc": "വടക്കൻ ലൂറി", "lt": "ലിത്വാനിയൻ", "lu": "ലുബ-കറ്റംഗ", "lua": "ലൂബ-ലുലുവ", "lui": "ലൂയിസെനോ", "lun": "ലുൻഡ", "luo": "ലുവോ", "lus": "മിസോ", "luy": "ലുയിയ", "lv": "ലാറ്റ്വിയൻ", "mad": "മദുരേസേ", "maf": "മാഫ", "mag": "മഗാഹി", "mai": "മൈഥിലി", "mak": "മകാസർ", "man": "മണ്ഡിൻഗോ", "mas": "മസായ്", "mde": "മാബ", "mdf": "മോക്ഷ", "mdr": "മണ്ഡാർ", "men": "മെൻഡെ", "mer": "മേരു", "mfe": "മൊറിസിൻ", "mg": "മലഗാസി", "mga": "മദ്ധ്യ ഐറിഷ്", "mgh": "മാഖുവാ-മീത്തോ", "mgo": "മേത്താ", "mh": "മാർഷല്ലീസ്", "mi": "മവോറി", "mic": "മിക്മാക്", "min": "മിനാങ്കബൗ", "mk": "മാസിഡോണിയൻ", "ml": "മലയാളം", "mn": "മംഗോളിയൻ", "mnc": "മാൻ‌ചു", "mni": "മണിപ്പൂരി", "moh": "മോഹാക്", "mos": "മൊസ്സി", "mr": "മറാത്തി", "ms": "മലെയ്", "mt": "മാൾട്ടീസ്", "mua": "മുന്ദാംഗ്", "mus": "ക്രീക്ക്", "mwl": "മിരാൻറസേ", "mwr": "മർവാരി", "my": "ബർമീസ്", "mye": "മയീൻ", "myv": "ഏഴ്സ്യ", "mzn": "മസന്ററാനി", "na": "നൗറു", "nan": "മിൻ നാൻ ചൈനീസ്", "nap": "നെപ്പോളിറ്റാൻ", "naq": "നാമ", "nb": "നോർവീജിയൻ ബുക്‌മൽ", "nd": "നോർത്ത് ഡെബിൾ", "nds": "ലോ ജർമൻ", "nds-NL": "ലോ സാക്സൺ", "ne": "നേപ്പാളി", "new": "നേവാരി", "ng": "ഡോങ്ക", "nia": "നിയാസ്", "niu": "ന്യുവാൻ", "nl": "ഡച്ച്", "nl-BE": "ഫ്ലമിഷ്", "nmg": "ക്വാസിയോ", "nn": "നോർവീജിയൻ നൈനോർക്‌സ്", "nnh": "ഗീംബൂൺ", "no": "നോർവീജിയൻ", "nog": "നോഗൈ", "non": "പഴയ നോഴ്‌സ്", "nqo": "ഇൻകോ", "nr": "ദക്ഷിണ നെഡിബിൾ", "nso": "നോർത്തേൻ സോതോ", "nus": "നുവേർ", "nv": "നവാജോ", "nwc": "ക്ലാസിക്കൽ നേവാരി", "ny": "ന്യൻജ", "nym": "ന്യാംവേസി", "nyn": "ന്യാൻകോൾ", "nyo": "ന്യോറോ", "nzi": "സിമ", "oc": "ഓക്‌സിറ്റൻ", "oj": "ഓജിബ്വാ", "om": "ഒറോമോ", "or": "ഒഡിയ", "os": "ഒസ്സെറ്റിക്", "osa": "ഒസേജ്", "ota": "ഓട്ടോമൻ തുർക്കിഷ്", "pa": "പഞ്ചാബി", "pag": "പങ്കാസിനൻ", "pal": "പാഹ്ലവി", "pam": "പാംപൻഗ", "pap": "പാപിയാമെന്റൊ", "pau": "പലാവുൻ", "pcm": "നൈജീരിയൻ പിഡ്‌ഗിൻ", "peo": "പഴയ പേർഷ്യൻ", "phn": "ഫീനിഷ്യൻ", "pi": "പാലി", "pl": "പോളിഷ്", "pon": "പൊൻപിയൻ", "prg": "പ്രഷ്യൻ", "pro": "പഴയ പ്രൊവൻഷ്ൽ", "ps": "പഷ്‌തോ", "pt": "പോർച്ചുഗീസ്", "pt-BR": "ബ്രസീലിയൻ പോർച്ചുഗീസ്", "pt-PT": "യൂറോപ്യൻ പോർച്ചുഗീസ്", "qu": "ക്വെച്ചുവ", "quc": "ക്വിച്ചെ", "raj": "രാജസ്ഥാനി", "rap": "രാപനൂയി", "rar": "രാരോടോങ്കൻ", "rm": "റൊമാഞ്ച്", "rn": "റുണ്ടി", "ro": "റൊമാനിയൻ", "ro-MD": "മോൾഡാവിയൻ", "rof": "റോംബോ", "rom": "റൊമാനി", "root": "മൂലഭാഷ", "ru": "റഷ്യൻ", "rup": "ആരോമാനിയൻ", "rw": "കിന്യാർവാണ്ട", "rwk": "റുവാ", "sa": "സംസ്‌കൃതം", "sad": "സാൻഡവേ", "sah": "സാഖ", "sam": "സമരിയാക്കാരുടെ അരമായ", "saq": "സംബുരു", "sas": "സസാക്", "sat": "സന്താലി", "sba": "ഗംബായ്", "sbp": "സംഗു", "sc": "സർഡിനിയാൻ", "scn": "സിസിലിയൻ", "sco": "സ്കോട്സ്", "sd": "സിന്ധി", "sdh": "തെക്കൻ കുർദ്ദിഷ്", "se": "വടക്കൻ സമി", "see": "സെനേക", "seh": "സേന", "sel": "സെൽകപ്", "ses": "കൊയ്റാബൊറോ സെന്നി", "sg": "സാംഗോ", "sga": "പഴയ ഐറിഷ്", "sh": "സെർബോ-ക്രൊയേഷ്യൻ", "shi": "താച്ചലിറ്റ്", "shn": "ഷാൻ", "shu": "ചാഡിയൻ അറബി", "si": "സിംഹള", "sid": "സിഡാമോ", "sk": "സ്ലോവാക്", "sl": "സ്ലോവേനിയൻ", "sm": "സമോവൻ", "sma": "തെക്കൻ സമി", "smj": "ലൂലീ സമി", "smn": "ഇനാരി സമി", "sms": "സ്കോൾട്ട് സമി", "sn": "ഷോണ", "snk": "സോണിൻകെ", "so": "സോമാലി", "sog": "സോജിഡിയൻ", "sq": "അൽബേനിയൻ", "sr": "സെർബിയൻ", "srn": "ശ്രാനൻ ഡോങ്കോ", "srr": "സെറർ", "ss": "സ്വാറ്റി", "ssy": "സാഹോ", "st": "തെക്കൻ സോതോ", "su": "സുണ്ടാനീസ്", "suk": "സുകുമ", "sus": "സുസു", "sux": "സുമേരിയൻ", "sv": "സ്വീഡിഷ്", "sw": "സ്വാഹിലി", "sw-CD": "കോംഗോ സ്വാഹിലി", "swb": "കൊമോറിയൻ", "syc": "പുരാതന സുറിയാനിഭാഷ", "syr": "സുറിയാനി", "ta": "തമിഴ്", "te": "തെലുങ്ക്", "tem": "ടിംനേ", "teo": "ടെസോ", "ter": "ടെറേനോ", "tet": "ടെറ്റും", "tg": "താജിക്", "th": "തായ്", "ti": "ടൈഗ്രിന്യ", "tig": "ടൈഗ്രി", "tiv": "ടിവ്", "tk": "തുർക്‌മെൻ", "tkl": "ടൊക്കേലൗ", "tl": "തഗാലോഗ്", "tlh": "ക്ലിംഗോൺ", "tli": "ലിംഗ്വിറ്റ്", "tmh": "ടമഷേക്", "tn": "സ്വാന", "to": "ടോംഗൻ", "tog": "ന്യാസാ ഡോങ്ക", "tpi": "ടോക് പിസിൻ", "tr": "ടർക്കിഷ്", "trv": "തരോക്കോ", "ts": "സോംഗ", "tsi": "സിംഷ്യൻ", "tt": "ടാട്ടർ", "tum": "ടുംബുക", "tvl": "ടുവാലു", "tw": "ട്വി", "twq": "ടസവാക്ക്", "ty": "താഹിതിയൻ", "tyv": "തുവിനിയൻ", "tzm": "മധ്യ അറ്റ്‌ലസ് ടമാസൈറ്റ്", "udm": "ഉഡ്മുർട്ട്", "ug": "ഉയ്ഘുർ", "uga": "ഉഗറിട്ടിക്", "uk": "ഉക്രേനിയൻ", "umb": "ഉംബുന്ദു", "ur": "ഉറുദു", "uz": "ഉസ്‌ബെക്ക്", "vai": "വൈ", "ve": "വെന്ദ", "vi": "വിയറ്റ്നാമീസ്", "vo": "വോളാപുക്", "vot": "വോട്ടിക്", "vun": "വുൻജോ", "wa": "വല്ലൂൺ", "wae": "വാൾസർ", "wal": "വൊലൈറ്റ", "war": "വാരേയ്", "was": "വാഷൊ", "wbp": "വൂൾപിരി", "wo": "വൊളോഫ്", "wuu": "വു ചൈനീസ്", "xal": "കൽമൈക്", "xh": "ഖോസ", "xog": "സോഗോ", "yao": "യാവോ", "yap": "യെപ്പീസ്", "yav": "യാംഗ്ബെൻ", "ybb": "യംബ", "yi": "യിദ്ദിഷ്", "yo": "യൊറൂബാ", "yue": "കാന്റണീസ്", "za": "സ്വാംഗ്", "zap": "സാപ്പോടെക്", "zbl": "ബ്ലിസ്സിംബൽസ്", "zen": "സെനഗ", "zgh": "സ്റ്റാൻഡേർഡ് മൊറോക്കൻ റ്റാമസിയറ്റ്", "zh": "ചൈനീസ്", "zh-Hans": "ലളിതമാക്കിയ ചൈനീസ്", "zh-Hant": "പരമ്പരാഗത ചൈനീസ്", "zu": "സുലു", "zun": "സുനി", "zza": "സാസാ"}}, + "mn": {"rtl": false, "languageNames": {"aa": "афар", "ab": "абхаз", "ace": "ачин", "ada": "адангмэ", "ady": "адигэ", "af": "африкаанс", "agq": "агем", "ain": "айну", "ak": "акан", "ale": "алют", "alt": "өмнөд алтай", "am": "амхар", "an": "арагон", "anp": "ангик", "ar": "араб", "ar-001": "стандарт араб", "arn": "мапүчи", "arp": "арапаго", "as": "ассам", "asa": "асу", "ast": "астури", "av": "авар", "awa": "авадхи", "ay": "аймара", "az": "азербайжан", "ba": "башкир", "ban": "бали", "bas": "басаа", "be": "беларусь", "bem": "бемба", "bez": "бена", "bg": "болгар", "bho": "божпури", "bi": "бислам", "bin": "бини", "bla": "сиксика", "bm": "бамбара", "bn": "бенгал", "bo": "төвд", "br": "бретон", "brx": "бодо", "bs": "босни", "bug": "буги", "byn": "блин", "ca": "каталан", "ce": "чечень", "ceb": "себуано", "cgg": "чига", "ch": "чаморро", "chk": "чуук", "chm": "мари хэл", "cho": "чоктау", "chr": "чероки", "chy": "чэенн", "ckb": "төв курд", "co": "корсик", "crs": "сеселва креол франц", "cs": "чех", "cu": "сүмийн славян", "cv": "чуваш", "cy": "уэльс", "da": "дани", "dak": "дакота", "dar": "даргва", "dav": "тайта", "de": "герман", "de-AT": "австри-герман", "de-CH": "швейцарь-герман", "dgr": "догриб", "dje": "зарма", "dsb": "доод сорби", "dua": "дуала", "dv": "дивехи", "dyo": "жола-фони", "dz": "зонха", "dzg": "дазага", "ebu": "эмбу", "ee": "эвэ", "efi": "эфик", "eka": "экажук", "el": "грек", "en": "англи", "en-AU": "австрали-англи", "en-CA": "канад-англи", "en-GB": "британи-англи", "en-US": "америк-англи", "eo": "эсперанто", "es": "испани", "es-419": "испани хэл (Латин Америк)", "es-ES": "испани хэл (Европ)", "es-MX": "испани хэл (Мексик)", "et": "эстони", "eu": "баск", "ewo": "эвондо", "fa": "перс", "ff": "фула", "fi": "фин", "fil": "филипино", "fj": "фижи", "fo": "фарер", "fon": "фон", "fr": "франц", "fr-CA": "канад-франц", "fr-CH": "швейцари-франц", "fur": "фриулан", "fy": "баруун фриз", "ga": "ирланд", "gaa": "га", "gag": "гагуз", "gd": "шотландын гел", "gez": "гийз", "gil": "гилберт", "gl": "галего", "gn": "гуарани", "gor": "горонтало", "gsw": "швейцари-герман", "gu": "гужарати", "guz": "гузы", "gv": "манкс", "gwi": "гвичин", "ha": "хауса", "haw": "хавай", "he": "еврей", "hi": "хинди", "hil": "хилигайнон", "hmn": "хмонг", "hr": "хорват", "hsb": "дээд сорби", "ht": "Гаитийн креол", "hu": "мажар", "hup": "хупа", "hy": "армен", "hz": "хереро", "ia": "интерлингво", "iba": "ибан", "ibb": "ибибио", "id": "индонези", "ie": "нэгдмэл хэл", "ig": "игбо", "ii": "сычуань и", "ilo": "илоко", "inh": "ингуш", "io": "идо", "is": "исланд", "it": "итали", "iu": "инуктитут", "ja": "япон", "jbo": "ложбан", "jgo": "нгомба", "jmc": "мачамэ", "jv": "ява", "ka": "гүрж", "kab": "кабиле", "kac": "качин", "kaj": "жжу", "kam": "камба", "kbd": "кабардин", "kcg": "тяп", "kde": "маконде", "kea": "кабүвердиану", "kfo": "коро", "kha": "каси", "khq": "койра чини", "ki": "кикуюү", "kj": "куаньяма", "kk": "казах", "kkj": "како", "kl": "калалисут", "kln": "каленжин", "km": "кхмер", "kmb": "кимбунду", "kn": "каннада", "ko": "солонгос", "koi": "коми-пермяк", "kok": "конкани", "kpe": "кпелле", "kr": "канури", "krc": "карачай-балкар", "krl": "карель", "kru": "курук", "ks": "кашмир", "ksb": "шамбал", "ksf": "бафиа", "ksh": "кёльш", "ku": "курд", "kum": "кумук", "kv": "коми", "kw": "корн", "ky": "киргиз", "la": "латин", "lad": "ладин", "lag": "ланги", "lb": "люксембург", "lez": "лезги", "lg": "ганда", "li": "лимбург", "lkt": "лакота", "ln": "лингала", "lo": "лаос", "loz": "лози", "lrc": "хойд лури", "lt": "литва", "lu": "луба-катанга", "lua": "луба-лулуа", "lun": "лунда", "luo": "луо", "lus": "мизо", "luy": "луяа", "lv": "латви", "mad": "мадури хэл", "mag": "магахи", "mai": "май", "mak": "макасар", "mas": "масай", "mdf": "мокша", "men": "менде", "mer": "меру", "mfe": "морисен", "mg": "малагаси", "mgh": "макува-мито", "mgo": "мета", "mh": "маршалл", "mi": "маори", "mic": "микмак", "min": "минангкабау", "mk": "македон", "ml": "малаялам", "mn": "монгол", "mni": "манипури", "moh": "мохаук", "mos": "мосси", "mr": "марати", "ms": "малай", "mt": "малта", "mua": "мунданг", "mus": "крик", "mwl": "меранди", "my": "бирм", "myv": "эрзя", "mzn": "мазандерани", "na": "науру", "nap": "неаполитан", "naq": "нама", "nb": "норвегийн букмол", "nd": "хойд ндебеле", "nds-NL": "бага саксон", "ne": "балба", "new": "невари", "ng": "ндонга", "nia": "ниас хэл", "niu": "ниуэ", "nl": "нидерланд", "nl-BE": "фламанд", "nmg": "квазио", "nn": "норвегийн нинорск", "nnh": "нгиембүүн", "no": "норвеги", "nog": "ногаи", "nqo": "нко", "nr": "өмнөд ндебеле", "nso": "хойд сото", "nus": "нуер", "nv": "навахо", "ny": "нянжа", "nyn": "нянколе", "oc": "окситан", "om": "оромо", "or": "ория", "os": "оссетин", "pa": "панжаби", "pag": "пангасин", "pam": "пампанга", "pap": "папьяменто", "pau": "палау", "pcm": "нигерийн пиджин", "pl": "польш", "prg": "прусс", "ps": "пушту", "pt": "португал", "pt-BR": "португал хэл (Бразил)", "pt-PT": "португал хэл (Европ)", "qu": "кечуа", "quc": "киче", "rap": "рапануи", "rar": "раротонг", "rm": "романш", "rn": "рунди", "ro": "румын", "ro-MD": "молдав", "rof": "ромбо", "root": "рут", "ru": "орос", "rup": "ароманы", "rw": "киньяруанда", "rwk": "рва", "sa": "санскрит", "sad": "сандавэ", "sah": "саха", "saq": "самбүрү", "sat": "сантали", "sba": "нгамбай", "sbp": "сангү", "sc": "сардин", "scn": "сицил", "sco": "шотланд", "sd": "синдхи", "se": "хойд сами", "seh": "сена", "ses": "кёраборо сени", "sg": "санго", "sh": "хорватын серб", "shi": "тачелхит", "shn": "шань", "si": "синхала", "sk": "словак", "sl": "словени", "sm": "самоа", "sma": "өмнөд сами", "smj": "люле сами", "smn": "инари сами", "sms": "сколт сами", "sn": "шона", "snk": "сонинке", "so": "сомали", "sq": "албани", "sr": "серб", "srn": "сранан тонго", "ss": "свати", "ssy": "сахо", "st": "сесото", "su": "сундан", "suk": "сукума", "sv": "швед", "sw": "свахили", "sw-CD": "конгогийн свахили", "swb": "комори", "syr": "сири", "ta": "тамил", "te": "тэлүгү", "tem": "тимн", "teo": "тэсо", "tet": "тетум", "tg": "тажик", "th": "тай", "ti": "тигринья", "tig": "тигр", "tk": "туркмен", "tlh": "клингон", "tn": "цвана", "to": "тонга", "tpi": "ток писин", "tr": "турк", "trv": "тароко", "ts": "цонга", "tt": "татар", "tum": "тумбула", "tvl": "тувалу", "tw": "тви", "twq": "тасавак", "ty": "таити", "tyv": "тува", "tzm": "Төв Атласын тамазайт", "udm": "удмурт", "ug": "уйгур", "uk": "украин", "umb": "умбунду", "ur": "урду", "uz": "узбек", "vai": "вай", "ve": "венда", "vi": "вьетнам", "vo": "волапюк", "vun": "вунжо", "wa": "уоллун", "wae": "уолсэр", "wal": "уоллайтта", "war": "варай", "wo": "волоф", "xal": "халимаг", "xh": "хоса", "xog": "сога", "yav": "янгбен", "ybb": "емба", "yi": "иддиш", "yo": "ёруба", "yue": "кантон", "zgh": "Мороккогийн стандарт тамазайт", "zh": "хятад", "zh-Hans": "хялбаршуулсан хятад", "zh-Hant": "уламжлалт хятад", "zu": "зулу", "zun": "зуни", "zza": "заза"}}, + "ms": {"rtl": false, "languageNames": {"aa": "Afar", "ab": "Abkhazia", "ace": "Aceh", "ach": "Akoli", "ada": "Adangme", "ady": "Adyghe", "ae": "Avestan", "aeb": "Arab Tunisia", "af": "Afrikaans", "agq": "Aghem", "ain": "Ainu", "ak": "Akan", "ale": "Aleut", "alt": "Altai Selatan", "am": "Amharic", "an": "Aragon", "anp": "Angika", "ar": "Arab", "ar-001": "Arab Standard Moden", "arn": "Mapuche", "arp": "Arapaho", "arq": "Arab Algeria", "ars": "Arab Najdi", "ary": "Arab Maghribi", "arz": "Arab Mesir", "as": "Assam", "asa": "Asu", "ast": "Asturia", "av": "Avaric", "awa": "Awadhi", "ay": "Aymara", "az": "Azerbaijan", "ba": "Bashkir", "bal": "Baluchi", "ban": "Bali", "bas": "Basaa", "bax": "Bamun", "bbj": "Ghomala", "be": "Belarus", "bej": "Beja", "bem": "Bemba", "bez": "Bena", "bfd": "Bafut", "bg": "Bulgaria", "bgn": "Balochi Barat", "bho": "Bhojpuri", "bi": "Bislama", "bin": "Bini", "bkm": "Kom", "bla": "Siksika", "bm": "Bambara", "bn": "Benggala", "bo": "Tibet", "bpy": "Bishnupriya", "br": "Breton", "brh": "Brahui", "brx": "Bodo", "bs": "Bosnia", "bss": "Akoose", "bua": "Buriat", "bug": "Bugis", "bum": "Bulu", "byn": "Blin", "byv": "Medumba", "ca": "Catalonia", "cay": "Cayuga", "ccp": "Chakma", "ce": "Chechen", "ceb": "Cebuano", "cgg": "Chiga", "ch": "Chamorro", "chk": "Chukese", "chm": "Mari", "cho": "Choctaw", "chr": "Cherokee", "chy": "Cheyenne", "ckb": "Kurdi Sorani", "co": "Corsica", "cop": "Coptic", "crh": "Turki Krimea", "crs": "Perancis Seselwa Creole", "cs": "Czech", "cu": "Slavik Gereja", "cv": "Chuvash", "cy": "Wales", "da": "Denmark", "dak": "Dakota", "dar": "Dargwa", "dav": "Taita", "de": "Jerman", "de-AT": "Jerman Austria", "de-CH": "Jerman Halus Switzerland", "dgr": "Dogrib", "dje": "Zarma", "doi": "Dogri", "dsb": "Sorbian Rendah", "dua": "Duala", "dv": "Divehi", "dyo": "Jola-Fonyi", "dz": "Dzongkha", "dzg": "Dazaga", "ebu": "Embu", "ee": "Ewe", "efi": "Efik", "eka": "Ekajuk", "el": "Greek", "en": "Inggeris", "en-AU": "Inggeris Australia", "en-CA": "Inggeris Kanada", "en-GB": "Inggeris British", "en-US": "Inggeris AS", "eo": "Esperanto", "es": "Sepanyol", "es-419": "Sepanyol Amerika Latin", "es-ES": "Sepanyol Eropah", "es-MX": "Sepanyol Mexico", "et": "Estonia", "eu": "Basque", "ewo": "Ewondo", "fa": "Parsi", "ff": "Fulah", "fi": "Finland", "fil": "Filipina", "fj": "Fiji", "fo": "Faroe", "fon": "Fon", "fr": "Perancis", "fr-CA": "Perancis Kanada", "fr-CH": "Perancis Switzerland", "frc": "Perancis Cajun", "fur": "Friulian", "fy": "Frisian Barat", "ga": "Ireland", "gaa": "Ga", "gag": "Gagauz", "gan": "Cina Gan", "gba": "Gbaya", "gbz": "Zoroastrian Dari", "gd": "Scots Gaelic", "gez": "Geez", "gil": "Kiribati", "gl": "Galicia", "glk": "Gilaki", "gn": "Guarani", "gor": "Gorontalo", "grc": "Greek Purba", "gsw": "Jerman Switzerland", "gu": "Gujerat", "guz": "Gusii", "gv": "Manx", "gwi": "Gwichʼin", "ha": "Hausa", "hak": "Cina Hakka", "haw": "Hawaii", "he": "Ibrani", "hi": "Hindi", "hil": "Hiligaynon", "hmn": "Hmong", "hr": "Croatia", "hsb": "Sorbian Atas", "hsn": "Cina Xiang", "ht": "Haiti", "hu": "Hungary", "hup": "Hupa", "hy": "Armenia", "hz": "Herero", "ia": "Interlingua", "iba": "Iban", "ibb": "Ibibio", "id": "Indonesia", "ie": "Interlingue", "ig": "Igbo", "ii": "Sichuan Yi", "ilo": "Iloko", "inh": "Ingush", "io": "Ido", "is": "Iceland", "it": "Itali", "iu": "Inuktitut", "ja": "Jepun", "jbo": "Lojban", "jgo": "Ngomba", "jmc": "Machame", "jv": "Jawa", "ka": "Georgia", "kab": "Kabyle", "kac": "Kachin", "kaj": "Jju", "kam": "Kamba", "kbd": "Kabardia", "kbl": "Kanembu", "kcg": "Tyap", "kde": "Makonde", "kea": "Kabuverdianu", "kfo": "Koro", "kg": "Kongo", "kha": "Khasi", "khq": "Koyra Chiini", "khw": "Khowar", "ki": "Kikuya", "kj": "Kuanyama", "kk": "Kazakhstan", "kkj": "Kako", "kl": "Kalaallisut", "kln": "Kalenjin", "km": "Khmer", "kmb": "Kimbundu", "kn": "Kannada", "ko": "Korea", "koi": "Komi-Permyak", "kok": "Konkani", "kpe": "Kpelle", "kr": "Kanuri", "krc": "Karachay-Balkar", "krl": "Karelian", "kru": "Kurukh", "ks": "Kashmir", "ksb": "Shambala", "ksf": "Bafia", "ksh": "Colognian", "ku": "Kurdish", "kum": "Kumyk", "kv": "Komi", "kw": "Cornish", "ky": "Kirghiz", "la": "Latin", "lad": "Ladino", "lag": "Langi", "lah": "Lahnda", "lb": "Luxembourg", "lez": "Lezghian", "lg": "Ganda", "li": "Limburgish", "lkt": "Lakota", "ln": "Lingala", "lo": "Laos", "lou": "Kreol Louisiana", "loz": "Lozi", "lrc": "Luri Utara", "lt": "Lithuania", "lu": "Luba-Katanga", "lua": "Luba-Lulua", "lun": "Lunda", "luo": "Luo", "lus": "Mizo", "luy": "Luyia", "lv": "Latvia", "mad": "Madura", "maf": "Mafa", "mag": "Magahi", "mai": "Maithili", "mak": "Makasar", "mas": "Masai", "mde": "Maba", "mdf": "Moksha", "men": "Mende", "mer": "Meru", "mfe": "Morisyen", "mg": "Malagasy", "mgh": "Makhuwa-Meetto", "mgo": "Meta’", "mh": "Marshall", "mi": "Maori", "mic": "Micmac", "min": "Minangkabau", "mk": "Macedonia", "ml": "Malayalam", "mn": "Mongolia", "mni": "Manipuri", "moh": "Mohawk", "mos": "Mossi", "mr": "Marathi", "ms": "Melayu", "mt": "Malta", "mua": "Mundang", "mus": "Creek", "mwl": "Mirandese", "my": "Burma", "mye": "Myene", "myv": "Erzya", "mzn": "Mazanderani", "na": "Nauru", "nan": "Cina Min Nan", "nap": "Neapolitan", "naq": "Nama", "nb": "Bokmål Norway", "nd": "Ndebele Utara", "nds": "Jerman Rendah", "nds-NL": "Saxon Rendah", "ne": "Nepal", "new": "Newari", "ng": "Ndonga", "nia": "Nias", "niu": "Niu", "nl": "Belanda", "nl-BE": "Flemish", "nmg": "Kwasio", "nn": "Nynorsk Norway", "nnh": "Ngiemboon", "no": "Norway", "nog": "Nogai", "nqo": "N’ko", "nr": "Ndebele Selatan", "nso": "Sotho Utara", "nus": "Nuer", "nv": "Navajo", "ny": "Nyanja", "nyn": "Nyankole", "oc": "Occitania", "om": "Oromo", "or": "Odia", "os": "Ossete", "pa": "Punjabi", "pag": "Pangasinan", "pam": "Pampanga", "pap": "Papiamento", "pau": "Palauan", "pcm": "Nigerian Pidgin", "pl": "Poland", "prg": "Prusia", "ps": "Pashto", "pt": "Portugis", "pt-BR": "Portugis Brazil", "pt-PT": "Portugis Eropah", "qu": "Quechua", "quc": "Kʼicheʼ", "rap": "Rapanui", "rar": "Rarotonga", "rm": "Romansh", "rn": "Rundi", "ro": "Romania", "ro-MD": "Moldavia", "rof": "Rombo", "root": "Root", "ru": "Rusia", "rup": "Aromanian", "rw": "Kinyarwanda", "rwk": "Rwa", "sa": "Sanskrit", "sad": "Sandawe", "sah": "Sakha", "saq": "Samburu", "sat": "Santali", "sba": "Ngambay", "sbp": "Sangu", "sc": "Sardinia", "scn": "Sicili", "sco": "Scots", "sd": "Sindhi", "sdh": "Kurdish Selatan", "se": "Sami Utara", "see": "Seneca", "seh": "Sena", "ses": "Koyraboro Senni", "sg": "Sango", "sh": "SerboCroatia", "shi": "Tachelhit", "shn": "Shan", "shu": "Arab Chadian", "si": "Sinhala", "sk": "Slovak", "sl": "Slovenia", "sm": "Samoa", "sma": "Sami Selatan", "smj": "Lule Sami", "smn": "Inari Sami", "sms": "Skolt Sami", "sn": "Shona", "snk": "Soninke", "so": "Somali", "sq": "Albania", "sr": "Serbia", "srn": "Sranan Tongo", "ss": "Swati", "ssy": "Saho", "st": "Sotho Selatan", "su": "Sunda", "suk": "Sukuma", "sv": "Sweden", "sw": "Swahili", "sw-CD": "Congo Swahili", "swb": "Comoria", "syr": "Syriac", "ta": "Tamil", "te": "Telugu", "tem": "Timne", "teo": "Teso", "tet": "Tetum", "tg": "Tajik", "th": "Thai", "ti": "Tigrinya", "tig": "Tigre", "tk": "Turkmen", "tlh": "Klingon", "tly": "Talysh", "tn": "Tswana", "to": "Tonga", "tpi": "Tok Pisin", "tr": "Turki", "trv": "Taroko", "ts": "Tsonga", "tt": "Tatar", "tum": "Tumbuka", "tvl": "Tuvalu", "tw": "Twi", "twq": "Tasawaq", "ty": "Tahiti", "tyv": "Tuvinian", "tzm": "Tamazight Atlas Tengah", "udm": "Udmurt", "ug": "Uyghur", "uk": "Ukraine", "umb": "Umbundu", "ur": "Urdu", "uz": "Uzbekistan", "vai": "Vai", "ve": "Venda", "vi": "Vietnam", "vo": "Volapük", "vun": "Vunjo", "wa": "Walloon", "wae": "Walser", "wal": "Wolaytta", "war": "Waray", "wbp": "Warlpiri", "wo": "Wolof", "wuu": "Cina Wu", "xal": "Kalmyk", "xh": "Xhosa", "xog": "Soga", "yav": "Yangben", "ybb": "Yemba", "yi": "Yiddish", "yo": "Yoruba", "yue": "Kantonis", "zgh": "Tamazight Maghribi Standard", "zh": "Cina", "zh-Hans": "Cina Ringkas", "zh-Hant": "Cina Tradisional", "zu": "Zulu", "zun": "Zuni", "zza": "Zaza"}}, + "ne": {"rtl": false, "languageNames": {"aa": "अफार", "ab": "अब्खाजियाली", "ace": "अचाइनिज", "ach": "अकोली", "ada": "अदाङमे", "ady": "अदिघे", "ae": "अवेस्तान", "af": "अफ्रिकान्स", "afh": "अफ्रिहिली", "agq": "आघेम", "ain": "अइनु", "ak": "आकान", "akk": "अक्कादियाली", "akz": "अलाबामा", "ale": "अलेउट", "aln": "घेग अल्बानियाली", "alt": "दक्षिणी आल्टाइ", "am": "अम्हारिक", "an": "अरागोनी", "ang": "पुरातन अङ्ग्रेजी", "anp": "अङ्गिका", "ar": "अरबी", "ar-001": "आधुनिक मानक अरबी", "arc": "अरामाइक", "arn": "मापुचे", "aro": "अराओना", "arp": "अरापाहो", "arq": "अल्जेरियाली अरबी", "arw": "अरावाक", "ary": "मोरोक्कोली अरबी", "arz": "इजिप्ट अरबी", "as": "आसामी", "asa": "आसु", "ase": "अमेरिकी साङ्केतिक भाषा", "ast": "अस्टुरियाली", "av": "अवारिक", "avk": "कोटावा", "awa": "अवधी", "ay": "ऐमारा", "az": "अजरबैजानी", "ba": "बास्किर", "bal": "बालुची", "ban": "बाली", "bar": "बाभारियाली", "bas": "बासा", "bax": "बामुन", "bbc": "बाताक तोबा", "bbj": "घोमाला", "be": "बेलारुसी", "bej": "बेजा", "bem": "बेम्बा", "bew": "बेटावी", "bez": "बेना", "bfd": "बाफुट", "bfq": "बडागा", "bg": "बुल्गेरियाली", "bgn": "पश्चिम बालोची", "bho": "भोजपुरी", "bi": "बिस्लाम", "bik": "बिकोल", "bin": "बिनी", "bjn": "बन्जार", "bkm": "कोम", "bla": "सिक्सिका", "bm": "बाम्बारा", "bn": "बंगाली", "bo": "तिब्बती", "bpy": "विष्णुप्रिया", "bqi": "बाख्तिआरी", "br": "ब्रेटन", "bra": "ब्रज", "brh": "ब्राहुइ", "brx": "बोडो", "bs": "बोस्नियाली", "bss": "अकुज", "bua": "बुरिआत", "bug": "बुगिनियाली", "bum": "बुलु", "byn": "ब्लिन", "byv": "मेडुम्बा", "ca": "क्याटालन", "cad": "काड्डो", "car": "क्यारिब", "cay": "कायुगा", "cch": "अट्साम", "ce": "चेचेन", "ceb": "सेबुआनो", "cgg": "चिगा", "ch": "चामोर्रो", "chb": "चिब्चा", "chg": "चागाटाई", "chk": "चुकेसे", "chm": "मारी", "chn": "चिनुक जार्गन", "cho": "चोक्टाव", "chp": "चिपेव्यान", "chr": "चेरोकी", "chy": "चेयेन्ने", "ckb": "मध्यवर्ती कुर्दिस", "co": "कोर्सिकन", "cop": "कोप्टिक", "cps": "कापिज्नोन", "cr": "क्री", "crh": "क्रिमियाली तुर्क", "crs": "सेसेल्वा क्रिओल फ्रान्सेली", "cs": "चेक", "csb": "कासुवियन", "cu": "चर्च स्लाभिक", "cv": "चुभास", "cy": "वेल्श", "da": "डेनिस", "dak": "डाकोटा", "dar": "दार्ग्वा", "dav": "ताइता", "de": "जर्मन", "de-AT": "अस्ट्रिएन जर्मन", "de-CH": "स्वीस हाई जर्मन", "del": "देलावर", "dgr": "दोग्रिब", "din": "दिन्का", "dje": "जर्मा", "doi": "डोगरी", "dsb": "तल्लो सोर्बियन", "dtp": "केन्द्रीय दुसुन", "dua": "दुवाला", "dum": "मध्य डच", "dv": "दिबेही", "dyo": "जोला-फोनिल", "dyu": "द्युला", "dz": "जोङ्खा", "dzg": "दाजागा", "ebu": "एम्बु", "ee": "इवी", "efi": "एफिक", "egl": "एमिलियाली", "egy": "पुरातन इजिप्टी", "eka": "एकाजुक", "el": "ग्रीक", "elx": "एलामाइट", "en": "अङ्ग्रेजी", "en-AU": "अस्ट्रेलियाली अङ्ग्रेजी", "en-CA": "क्यानाडेली अङ्ग्रेजी", "en-GB": "बेलायती अङ्ग्रेजी", "en-US": "अमेरिकी अङ्ग्रेजी", "enm": "मध्य अङ्ग्रेजी", "eo": "एस्पेरान्तो", "es": "स्पेनी", "es-419": "ल्याटिन अमेरिकी स्पेनी", "es-ES": "युरोपेली स्पेनी", "es-MX": "मेक्सिकन स्पेनी", "esu": "केन्द्रीय युपिक", "et": "इस्टोनियन", "eu": "बास्क", "ewo": "इवोन्डो", "ext": "एक्सट्रेमादुराली", "fa": "फारसी", "fan": "फाङ", "fat": "फान्टी", "ff": "फुलाह", "fi": "फिनिस", "fil": "फिलिपिनी", "fj": "फिजियन", "fo": "फारोज", "fon": "फोन", "fr": "फ्रान्सेली", "fr-CA": "क्यानेडाली फ्रान्सेली", "fr-CH": "स्विस फ्रेन्च", "frc": "काहुन फ्रान्सेली", "frm": "मध्य फ्रान्सेली", "fro": "पुरातन फ्रान्सेली", "frp": "अर्पितान", "frr": "उत्तरी फ्रिजी", "frs": "पूर्वी फ्रिसियाली", "fur": "फ्रिउलियाली", "fy": "पश्चिमी फ्रिसियन", "ga": "आइरिस", "gaa": "गा", "gag": "गगाउज", "gan": "गान चिनियाँ", "gay": "गायो", "gba": "ग्बाया", "gd": "स्कटिस गाएलिक", "gez": "गिज", "gil": "गिल्बर्टी", "gl": "गलिसियाली", "glk": "गिलाकी", "gmh": "मध्य उच्च जर्मन", "gn": "गुवारानी", "goh": "पुरातन उच्च जर्मन", "gom": "गोवा कोन्कानी", "gon": "गोन्डी", "gor": "गोरोन्टालो", "got": "गोथिक", "grb": "ग्रेबो", "grc": "पुरातन ग्रिक", "gsw": "स्वीस जर्मन", "gu": "गुजराती", "gur": "फ्राफ्रा", "guz": "गुसी", "gv": "मान्क्स", "gwi": "गुइचिन", "ha": "हाउसा", "hai": "हाइदा", "hak": "हक्का चिनियाँ", "haw": "हवाइयन", "he": "हिब्रु", "hi": "हिन्दी", "hif": "फिजी हिन्दी", "hil": "हिलिगायनोन", "hit": "हिट्टिटे", "hmn": "हमोङ", "ho": "हिरी मोटु", "hr": "क्रोयसियाली", "hsb": "माथिल्लो सोर्बियन", "hsn": "जियाङ चिनियाँ", "ht": "हैटियाली क्रियोल", "hu": "हङ्गेरियाली", "hup": "हुपा", "hy": "आर्मेनियाली", "hz": "हेरेरो", "ia": "इन्टर्लिङ्गुआ", "iba": "इबान", "ibb": "इबिबियो", "id": "इन्डोनेसियाली", "ie": "इन्टरलिङ्ग्वे", "ig": "इग्बो", "ii": "सिचुआन यि", "ik": "इनुपिआक्", "ilo": "इयोको", "inh": "इन्गस", "io": "इडो", "is": "आइसल्यान्डियाली", "it": "इटालेली", "iu": "इनुक्टिटुट", "izh": "इन्ग्रियाली", "ja": "जापानी", "jam": "जमैकाली क्रेओले अङ्ग्रेजी", "jbo": "लोज्बान", "jgo": "न्गोम्बा", "jmc": "माचामे", "jpr": "जुडियो-फारसी", "jrb": "जुडियो-अरबी", "jut": "जुटिस", "jv": "जाभानी", "ka": "जर्जियाली", "kaa": "कारा-काल्पाक", "kab": "काबिल", "kac": "काचिन", "kaj": "ज्जु", "kam": "काम्बा", "kaw": "कावी", "kbd": "काबार्दियाली", "kbl": "कानेम्बु", "kcg": "टुआप", "kde": "माकोन्डे", "kea": "काबुभेर्डियानु", "ken": "केनयाङ", "kfo": "कोरो", "kg": "कोङ्गो", "kgp": "काइनगाङ", "kha": "खासी", "kho": "खोटानी", "khq": "कोयरा चिनी", "khw": "खोवार", "ki": "किकुयु", "kiu": "किर्मान्जकी", "kj": "कुआन्यामा", "kk": "काजाख", "kkj": "काको", "kl": "कालालिसुट", "kln": "कालेन्जिन", "km": "खमेर", "kmb": "किम्बुन्डु", "kn": "कन्नाडा", "ko": "कोरियाली", "koi": "कोमी-पर्म्याक", "kok": "कोन्कानी", "kos": "कोस्राली", "kpe": "क्पेल्ले", "kr": "कानुरी", "krc": "काराचाय-बाल्कर", "kri": "क्रिओ", "krj": "किनाराय-ए", "krl": "करेलियन", "kru": "कुरुख", "ks": "कास्मिरी", "ksb": "शाम्बाला", "ksf": "बाफिया", "ksh": "कोलोग्नियाली", "ku": "कुर्दी", "kum": "कुमिक", "kut": "कुतेनाइ", "kv": "कोमी", "kw": "कोर्निस", "ky": "किर्गिज", "la": "ल्याटिन", "lad": "लाडिनो", "lag": "लाङ्गी", "lah": "लाहन्डा", "lam": "लाम्बा", "lb": "लक्जेम्बर्गी", "lez": "लाज्घियाली", "lfn": "लिङ्गुवा फ्राङ्का नोभा", "lg": "गान्डा", "li": "लिम्बुर्गी", "lij": "लिगुरियाली", "liv": "लिभोनियाली", "lkt": "लाकोता", "lmo": "लोम्बार्ड", "ln": "लिङ्गाला", "lo": "लाओ", "lol": "मोङ्गो", "loz": "लोजी", "lrc": "उत्तरी लुरी", "lt": "लिथुआनियाली", "ltg": "लाट्गाली", "lu": "लुबा-काताङ्गा", "lua": "लुबा-लुलुआ", "lui": "लुइसेनो", "lun": "लुन्डा", "luo": "लुओ", "lus": "मिजो", "luy": "लुइया", "lv": "लात्भियाली", "lzh": "साहित्यिक चिनियाँ", "lzz": "लाज", "mad": "मादुरेसे", "maf": "माफा", "mag": "मगधी", "mai": "मैथिली", "mak": "माकासार", "man": "मान्दिङो", "mas": "मसाई", "mde": "माबा", "mdf": "मोक्ष", "mdr": "मन्दर", "men": "मेन्डे", "mer": "मेरू", "mfe": "मोरिसेन", "mg": "मलागासी", "mga": "मध्य आयरिस", "mgh": "माखुवा-मिट्टो", "mgo": "मेटा", "mh": "मार्साली", "mi": "माओरी", "mic": "मिकमाक", "min": "मिनाङकाबाउ", "mk": "म्यासेडोनियन", "ml": "मलयालम", "mn": "मङ्गोलियाली", "mnc": "मान्चु", "mni": "मनिपुरी", "moh": "मोहक", "mos": "मोस्सी", "mr": "मराठी", "ms": "मलाय", "mt": "माल्टिज", "mua": "मुन्डाङ", "mus": "क्रिक", "mwl": "मिरान्डी", "mwr": "माडवारी", "mwv": "मेन्टावाई", "my": "बर्मेली", "mye": "म्येने", "myv": "इर्ज्या", "mzn": "मजानडेरानी", "na": "नाउरू", "nan": "मिन नान चिनियाँ", "nap": "नेपोलिटान", "naq": "नामा", "nb": "नर्वेली बोकमाल", "nd": "उत्तरी न्डेबेले", "nds": "तल्लो जर्मन", "nds-NL": "तल्लो साक्सन", "ne": "नेपाली", "new": "नेवारी", "ng": "न्दोन्गा", "nia": "नियास", "niu": "निउएन", "njo": "अओ नागा", "nl": "डच", "nl-BE": "फ्लेमिस", "nmg": "क्वासियो", "nn": "नर्वेली नाइनोर्स्क", "nnh": "न्गिएम्बुन", "no": "नर्वेली", "nog": "नोगाइ", "non": "पुरानो नोर्से", "nov": "नोभियल", "nqo": "नको", "nr": "दक्षिण न्देबेले", "nso": "उत्तरी सोथो", "nus": "नुएर", "nv": "नाभाजो", "nwc": "परम्परागत नेवारी", "ny": "न्यान्जा", "nym": "न्यामवेजी", "nyn": "न्यान्कोल", "nyo": "न्योरो", "nzi": "नजिमा", "oc": "अक्सिटन", "oj": "ओजिब्वा", "om": "ओरोमो", "or": "उडिया", "os": "अोस्सेटिक", "osa": "ओसागे", "ota": "अटोमन तुर्की", "pa": "पंजाबी", "pag": "पाङ्गासिनान", "pal": "पाहलावी", "pam": "पामपाङ्गा", "pap": "पापियामेन्तो", "pau": "पालाउवाली", "pcd": "पिकार्ड", "pcm": "नाइजेरियाली पिड्जिन", "pdc": "पेन्सिलभानियाली जर्मन", "peo": "पुरातन फारसी", "pfl": "पालाटिन जर्मन", "phn": "फोनिसियाली", "pi": "पाली", "pl": "पोलिस", "pms": "पिएडमोन्तेसे", "pnt": "पोन्टिक", "prg": "प्रसियाली", "pro": "पुरातन प्रोभेन्काल", "ps": "पास्तो", "pt": "पोर्तुगी", "pt-BR": "ब्राजिली पोर्तुगी", "pt-PT": "युरोपेली पोर्तुगी", "qu": "क्वेचुवा", "quc": "किचे", "qug": "चिम्बोराजो उच्चस्थान किचुआ", "raj": "राजस्थानी", "rap": "रापानुई", "rar": "रारोटोङ्गान", "rm": "रोमानिस", "rn": "रुन्डी", "ro": "रोमानियाली", "ro-MD": "मोल्डाभियाली", "rof": "रोम्बो", "root": "रुट", "ru": "रसियाली", "rup": "अरोमानीयाली", "rw": "किन्यारवान्डा", "rwk": "र्‌वा", "sa": "संस्कृत", "sad": "सान्डेअ", "sah": "साखा", "saq": "साम्बुरू", "sat": "सान्ताली", "sba": "न्गामबाय", "sbp": "साङ्गु", "sc": "सार्डिनियाली", "scn": "सिसिलियाली", "sco": "स्कट्स", "sd": "सिन्धी", "sdh": "दक्षिणी कुर्दिश", "se": "उत्तरी सामी", "seh": "सेना", "ses": "कोयराबोरो सेन्नी", "sg": "साङ्गो", "sga": "पुरातन आयरीस", "shi": "टाचेल्हिट", "shn": "शान", "shu": "चाड अरबी", "si": "सिन्हाली", "sk": "स्लोभाकियाली", "sl": "स्लोभेनियाली", "sli": "तल्लो सिलेसियाली", "sm": "सामोआ", "sma": "दक्षिणी सामी", "smj": "लुले सामी", "smn": "इनारी सामी", "sms": "स्कोइट सामी", "sn": "शोना", "snk": "सोनिन्के", "so": "सोमाली", "sq": "अल्बानियाली", "sr": "सर्बियाली", "srn": "स्रानान टोङ्गो", "ss": "स्वाती", "ssy": "साहो", "st": "दक्षिणी सोथो", "su": "सुडानी", "suk": "सुकुमा", "sus": "सुसू", "sux": "सुमेरियाली", "sv": "स्विडिस", "sw": "स्वाहिली", "sw-CD": "कङ्गो स्वाहिली", "swb": "कोमोरी", "syc": "परम्परागत सिरियाक", "syr": "सिरियाक", "ta": "तामिल", "te": "तेलुगु", "tem": "टिम्ने", "teo": "टेसो", "tet": "टेटुम", "tg": "ताजिक", "th": "थाई", "ti": "टिग्रिन्या", "tig": "टिग्रे", "tk": "टर्कमेन", "tlh": "क्लिङ्गन", "tn": "ट्स्वाना", "to": "टोङ्गन", "tog": "न्यास टोङ्गा", "tpi": "टोक पिसिन", "tr": "टर्किश", "trv": "टारोको", "ts": "ट्सोङ्गा", "tt": "तातार", "ttt": "मुस्लिम टाट", "tum": "टुम्बुका", "tvl": "टुभालु", "twq": "तासावाक", "ty": "टाहिटियन", "tyv": "टुभिनियाली", "tzm": "केन्द्रीय एट्लास टामाजिघट", "udm": "उड्मुर्ट", "ug": "उइघुर", "uk": "युक्रेनी", "umb": "उम्बुन्डी", "ur": "उर्दु", "uz": "उज्बेकी", "vai": "भाइ", "ve": "भेन्डा", "vi": "भियतनामी", "vmf": "मुख्य-फ्राङ्कोनियाली", "vo": "भोलापिक", "vun": "भुन्जो", "wa": "वाल्लुन", "wae": "वाल्सर", "wal": "वोलेट्टा", "war": "वारे", "wbp": "वार्ल्पिरी", "wo": "वुलुफ", "xal": "काल्मिक", "xh": "खोसा", "xmf": "मिनग्रेलियाली", "xog": "सोगा", "yav": "याङ्बेन", "ybb": "येम्बा", "yi": "यिद्दिस", "yo": "योरूवा", "yrl": "न्हिनगातु", "yue": "क्यान्टोनिज", "zbl": "ब्लिससिम्बोल्स", "zgh": "मानक मोरोक्कोन तामाजिघट", "zh": "चिनियाँ", "zh-Hans": "सरलिकृत चिनियाँ", "zh-Hant": "परम्परागत चिनियाँ", "zu": "जुलु", "zun": "जुनी", "zza": "जाजा"}}, + "nl": {"rtl": false, "languageNames": {"aa": "Afar", "ab": "Abchazisch", "ace": "Atjehs", "ach": "Akoli", "ada": "Adangme", "ady": "Adygees", "ae": "Avestisch", "aeb": "Tunesisch Arabisch", "af": "Afrikaans", "afh": "Afrihili", "agq": "Aghem", "ain": "Aino", "ak": "Akan", "akk": "Akkadisch", "akz": "Alabama", "ale": "Aleoetisch", "aln": "Gegisch", "alt": "Zuid-Altaïsch", "am": "Amhaars", "an": "Aragonees", "ang": "Oudengels", "anp": "Angika", "ar": "Arabisch", "ar-001": "Arabisch (wereld)", "arc": "Aramees", "arn": "Mapudungun", "aro": "Araona", "arp": "Arapaho", "arq": "Algerijns Arabisch", "ars": "Nadjdi-Arabisch", "arw": "Arawak", "ary": "Marokkaans Arabisch", "arz": "Egyptisch Arabisch", "as": "Assamees", "asa": "Asu", "ase": "Amerikaanse Gebarentaal", "ast": "Asturisch", "av": "Avarisch", "avk": "Kotava", "awa": "Awadhi", "ay": "Aymara", "az": "Azerbeidzjaans", "ba": "Basjkiers", "bal": "Beloetsji", "ban": "Balinees", "bar": "Beiers", "bas": "Basa", "bax": "Bamoun", "bbc": "Batak Toba", "bbj": "Ghomala’", "be": "Wit-Russisch", "bej": "Beja", "bem": "Bemba", "bew": "Betawi", "bez": "Bena", "bfd": "Bafut", "bfq": "Badaga", "bg": "Bulgaars", "bgn": "Westers Beloetsji", "bho": "Bhojpuri", "bi": "Bislama", "bik": "Bikol", "bin": "Bini", "bjn": "Banjar", "bkm": "Kom", "bla": "Siksika", "bm": "Bambara", "bn": "Bengaals", "bo": "Tibetaans", "bpy": "Bishnupriya", "bqi": "Bakhtiari", "br": "Bretons", "bra": "Braj", "brh": "Brahui", "brx": "Bodo", "bs": "Bosnisch", "bss": "Akoose", "bua": "Boerjatisch", "bug": "Buginees", "bum": "Bulu", "byn": "Blin", "byv": "Medumba", "ca": "Catalaans", "cad": "Caddo", "car": "Caribisch", "cay": "Cayuga", "cch": "Atsam", "ccp": "Chakma", "ce": "Tsjetsjeens", "ceb": "Cebuano", "cgg": "Chiga", "ch": "Chamorro", "chb": "Chibcha", "chg": "Chagatai", "chk": "Chuukees", "chm": "Mari", "chn": "Chinook Jargon", "cho": "Choctaw", "chp": "Chipewyan", "chr": "Cherokee", "chy": "Cheyenne", "ckb": "Soranî", "co": "Corsicaans", "cop": "Koptisch", "cps": "Capiznon", "cr": "Cree", "crh": "Krim-Tataars", "crs": "Seychellencreools", "cs": "Tsjechisch", "csb": "Kasjoebisch", "cu": "Kerkslavisch", "cv": "Tsjoevasjisch", "cy": "Welsh", "da": "Deens", "dak": "Dakota", "dar": "Dargwa", "dav": "Taita", "de": "Duits", "de-AT": "Duits (Oostenrijk)", "de-CH": "Duits (Zwitserland)", "del": "Delaware", "den": "Slavey", "dgr": "Dogrib", "din": "Dinka", "dje": "Zarma", "doi": "Dogri", "dsb": "Nedersorbisch", "dtp": "Dusun", "dua": "Duala", "dum": "Middelnederlands", "dv": "Divehi", "dyo": "Jola-Fonyi", "dyu": "Dyula", "dz": "Dzongkha", "dzg": "Dazaga", "ebu": "Embu", "ee": "Ewe", "efi": "Efik", "egl": "Emiliano", "egy": "Oudegyptisch", "eka": "Ekajuk", "el": "Grieks", "elx": "Elamitisch", "en": "Engels", "en-AU": "Engels (Australië)", "en-CA": "Engels (Canada)", "en-GB": "Engels (Verenigd Koninkrijk)", "en-US": "Engels (Verenigde Staten)", "enm": "Middelengels", "eo": "Esperanto", "es": "Spaans", "es-419": "Spaans (Latijns-Amerika)", "es-ES": "Spaans (Spanje)", "es-MX": "Spaans (Mexico)", "esu": "Yupik", "et": "Estisch", "eu": "Baskisch", "ewo": "Ewondo", "ext": "Extremeens", "fa": "Perzisch", "fan": "Fang", "fat": "Fanti", "ff": "Fulah", "fi": "Fins", "fil": "Filipijns", "fit": "Tornedal-Fins", "fj": "Fijisch", "fo": "Faeröers", "fon": "Fon", "fr": "Frans", "fr-CA": "Frans (Canada)", "fr-CH": "Frans (Zwitserland)", "frc": "Cajun-Frans", "frm": "Middelfrans", "fro": "Oudfrans", "frp": "Arpitaans", "frr": "Noord-Fries", "frs": "Oost-Fries", "fur": "Friulisch", "fy": "Fries", "ga": "Iers", "gaa": "Ga", "gag": "Gagaoezisch", "gan": "Ganyu", "gay": "Gayo", "gba": "Gbaya", "gbz": "Zoroastrisch Dari", "gd": "Schots-Gaelisch", "gez": "Ge’ez", "gil": "Gilbertees", "gl": "Galicisch", "glk": "Gilaki", "gmh": "Middelhoogduits", "gn": "Guaraní", "goh": "Oudhoogduits", "gom": "Goa Konkani", "gon": "Gondi", "gor": "Gorontalo", "got": "Gothisch", "grb": "Grebo", "grc": "Oudgrieks", "gsw": "Zwitserduits", "gu": "Gujarati", "guc": "Wayuu", "gur": "Gurune", "guz": "Gusii", "gv": "Manx", "gwi": "Gwichʼin", "ha": "Hausa", "hai": "Haida", "hak": "Hakka", "haw": "Hawaïaans", "he": "Hebreeuws", "hi": "Hindi", "hif": "Fijisch Hindi", "hil": "Hiligaynon", "hit": "Hettitisch", "hmn": "Hmong", "ho": "Hiri Motu", "hr": "Kroatisch", "hsb": "Oppersorbisch", "hsn": "Xiangyu", "ht": "Haïtiaans Creools", "hu": "Hongaars", "hup": "Hupa", "hy": "Armeens", "hz": "Herero", "ia": "Interlingua", "iba": "Iban", "ibb": "Ibibio", "id": "Indonesisch", "ie": "Interlingue", "ig": "Igbo", "ii": "Yi", "ik": "Inupiaq", "ilo": "Iloko", "inh": "Ingoesjetisch", "io": "Ido", "is": "IJslands", "it": "Italiaans", "iu": "Inuktitut", "izh": "Ingrisch", "ja": "Japans", "jam": "Jamaicaans Creools", "jbo": "Lojban", "jgo": "Ngomba", "jmc": "Machame", "jpr": "Judeo-Perzisch", "jrb": "Judeo-Arabisch", "jut": "Jutlands", "jv": "Javaans", "ka": "Georgisch", "kaa": "Karakalpaks", "kab": "Kabylisch", "kac": "Kachin", "kaj": "Jju", "kam": "Kamba", "kaw": "Kawi", "kbd": "Kabardisch", "kbl": "Kanembu", "kcg": "Tyap", "kde": "Makonde", "kea": "Kaapverdisch Creools", "ken": "Kenyang", "kfo": "Koro", "kg": "Kongo", "kgp": "Kaingang", "kha": "Khasi", "kho": "Khotanees", "khq": "Koyra Chiini", "khw": "Khowar", "ki": "Gikuyu", "kiu": "Kirmanckî", "kj": "Kuanyama", "kk": "Kazachs", "kkj": "Kako", "kl": "Groenlands", "kln": "Kalenjin", "km": "Khmer", "kmb": "Kimbundu", "kn": "Kannada", "ko": "Koreaans", "koi": "Komi-Permjaaks", "kok": "Konkani", "kos": "Kosraeaans", "kpe": "Kpelle", "kr": "Kanuri", "krc": "Karatsjaj-Balkarisch", "kri": "Krio", "krj": "Kinaray-a", "krl": "Karelisch", "kru": "Kurukh", "ks": "Kasjmiri", "ksb": "Shambala", "ksf": "Bafia", "ksh": "Kölsch", "ku": "Koerdisch", "kum": "Koemuks", "kut": "Kutenai", "kv": "Komi", "kw": "Cornish", "ky": "Kirgizisch", "la": "Latijn", "lad": "Ladino", "lag": "Langi", "lah": "Lahnda", "lam": "Lamba", "lb": "Luxemburgs", "lez": "Lezgisch", "lfn": "Lingua Franca Nova", "lg": "Luganda", "li": "Limburgs", "lij": "Ligurisch", "liv": "Lijfs", "lkt": "Lakota", "lmo": "Lombardisch", "ln": "Lingala", "lo": "Laotiaans", "lol": "Mongo", "lou": "Louisiana-Creools", "loz": "Lozi", "lrc": "Noordelijk Luri", "lt": "Litouws", "ltg": "Letgaals", "lu": "Luba-Katanga", "lua": "Luba-Lulua", "lui": "Luiseno", "lun": "Lunda", "luo": "Luo", "lus": "Mizo", "luy": "Luyia", "lv": "Lets", "lzh": "Klassiek Chinees", "lzz": "Lazisch", "mad": "Madoerees", "maf": "Mafa", "mag": "Magahi", "mai": "Maithili", "mak": "Makassaars", "man": "Mandingo", "mas": "Maa", "mde": "Maba", "mdf": "Moksja", "mdr": "Mandar", "men": "Mende", "mer": "Meru", "mfe": "Morisyen", "mg": "Malagassisch", "mga": "Middeliers", "mgh": "Makhuwa-Meetto", "mgo": "Meta’", "mh": "Marshallees", "mi": "Maori", "mic": "Mi’kmaq", "min": "Minangkabau", "mk": "Macedonisch", "ml": "Malayalam", "mn": "Mongools", "mnc": "Mantsjoe", "mni": "Meitei", "moh": "Mohawk", "mos": "Mossi", "mr": "Marathi", "mrj": "West-Mari", "ms": "Maleis", "mt": "Maltees", "mua": "Mundang", "mus": "Creek", "mwl": "Mirandees", "mwr": "Marwari", "mwv": "Mentawai", "my": "Birmaans", "mye": "Myene", "myv": "Erzja", "mzn": "Mazanderani", "na": "Nauruaans", "nan": "Minnanyu", "nap": "Napolitaans", "naq": "Nama", "nb": "Noors - Bokmål", "nd": "Noord-Ndebele", "nds": "Nedersaksisch", "nds-NL": "Nederduits", "ne": "Nepalees", "new": "Newari", "ng": "Ndonga", "nia": "Nias", "niu": "Niueaans", "njo": "Ao Naga", "nl": "Nederlands", "nl-BE": "Nederlands (België)", "nmg": "Ngumba", "nn": "Noors - Nynorsk", "nnh": "Ngiemboon", "no": "Noors", "nog": "Nogai", "non": "Oudnoors", "nov": "Novial", "nqo": "N’Ko", "nr": "Zuid-Ndbele", "nso": "Noord-Sotho", "nus": "Nuer", "nv": "Navajo", "nwc": "Klassiek Nepalbhasa", "ny": "Nyanja", "nym": "Nyamwezi", "nyn": "Nyankole", "nyo": "Nyoro", "nzi": "Nzima", "oc": "Occitaans", "oj": "Ojibwa", "om": "Afaan Oromo", "or": "Odia", "os": "Ossetisch", "osa": "Osage", "ota": "Ottomaans-Turks", "pa": "Punjabi", "pag": "Pangasinan", "pal": "Pahlavi", "pam": "Pampanga", "pap": "Papiaments", "pau": "Palaus", "pcd": "Picardisch", "pcm": "Nigeriaans Pidgin", "pdc": "Pennsylvania-Duits", "pdt": "Plautdietsch", "peo": "Oudperzisch", "pfl": "Paltsisch", "phn": "Foenicisch", "pi": "Pali", "pl": "Pools", "pms": "Piëmontees", "pnt": "Pontisch", "pon": "Pohnpeiaans", "prg": "Oudpruisisch", "pro": "Oudprovençaals", "ps": "Pasjtoe", "pt": "Portugees", "pt-BR": "Portugees (Brazilië)", "pt-PT": "Portugees (Portugal)", "qu": "Quechua", "quc": "K’iche’", "qug": "Kichwa", "raj": "Rajasthani", "rap": "Rapanui", "rar": "Rarotongan", "rgn": "Romagnol", "rif": "Riffijns", "rm": "Reto-Romaans", "rn": "Kirundi", "ro": "Roemeens", "ro-MD": "Roemeens (Moldavië)", "rof": "Rombo", "rom": "Romani", "root": "Root", "rtm": "Rotumaans", "ru": "Russisch", "rue": "Roetheens", "rug": "Roviana", "rup": "Aroemeens", "rw": "Kinyarwanda", "rwk": "Rwa", "sa": "Sanskriet", "sad": "Sandawe", "sah": "Jakoets", "sam": "Samaritaans-Aramees", "saq": "Samburu", "sas": "Sasak", "sat": "Santali", "saz": "Saurashtra", "sba": "Ngambay", "sbp": "Sangu", "sc": "Sardijns", "scn": "Siciliaans", "sco": "Schots", "sd": "Sindhi", "sdc": "Sassarees", "sdh": "Pahlavani", "se": "Noord-Samisch", "see": "Seneca", "seh": "Sena", "sei": "Seri", "sel": "Selkoeps", "ses": "Koyraboro Senni", "sg": "Sango", "sga": "Oudiers", "sgs": "Samogitisch", "sh": "Servo-Kroatisch", "shi": "Tashelhiyt", "shn": "Shan", "shu": "Tsjadisch Arabisch", "si": "Singalees", "sid": "Sidamo", "sk": "Slowaaks", "sl": "Sloveens", "sli": "Silezisch Duits", "sly": "Selayar", "sm": "Samoaans", "sma": "Zuid-Samisch", "smj": "Lule-Samisch", "smn": "Inari-Samisch", "sms": "Skolt-Samisch", "sn": "Shona", "snk": "Soninke", "so": "Somalisch", "sog": "Sogdisch", "sq": "Albanees", "sr": "Servisch", "srn": "Sranantongo", "srr": "Serer", "ss": "Swazi", "ssy": "Saho", "st": "Zuid-Sotho", "stq": "Saterfries", "su": "Soendanees", "suk": "Sukuma", "sus": "Soesoe", "sux": "Soemerisch", "sv": "Zweeds", "sw": "Swahili", "sw-CD": "Swahili (Congo-Kinshasa)", "swb": "Shimaore", "syc": "Klassiek Syrisch", "syr": "Syrisch", "szl": "Silezisch", "ta": "Tamil", "tcy": "Tulu", "te": "Telugu", "tem": "Timne", "teo": "Teso", "ter": "Tereno", "tet": "Tetun", "tg": "Tadzjieks", "th": "Thai", "ti": "Tigrinya", "tig": "Tigre", "tiv": "Tiv", "tk": "Turkmeens", "tkl": "Tokelaus", "tkr": "Tsakhur", "tl": "Tagalog", "tlh": "Klingon", "tli": "Tlingit", "tly": "Talysh", "tmh": "Tamashek", "tn": "Tswana", "to": "Tongaans", "tog": "Nyasa Tonga", "tpi": "Tok Pisin", "tr": "Turks", "tru": "Turoyo", "trv": "Taroko", "ts": "Tsonga", "tsd": "Tsakonisch", "tsi": "Tsimshian", "tt": "Tataars", "ttt": "Moslim Tat", "tum": "Toemboeka", "tvl": "Tuvaluaans", "tw": "Twi", "twq": "Tasawaq", "ty": "Tahitiaans", "tyv": "Toevaans", "tzm": "Tamazight (Centraal-Marokko)", "udm": "Oedmoerts", "ug": "Oeigoers", "uga": "Oegaritisch", "uk": "Oekraïens", "umb": "Umbundu", "ur": "Urdu", "uz": "Oezbeeks", "vai": "Vai", "ve": "Venda", "vec": "Venetiaans", "vep": "Wepsisch", "vi": "Vietnamees", "vls": "West-Vlaams", "vmf": "Opperfrankisch", "vo": "Volapük", "vot": "Votisch", "vro": "Võro", "vun": "Vunjo", "wa": "Waals", "wae": "Walser", "wal": "Wolaytta", "war": "Waray", "was": "Washo", "wbp": "Warlpiri", "wo": "Wolof", "wuu": "Wuyu", "xal": "Kalmuks", "xh": "Xhosa", "xmf": "Mingreels", "xog": "Soga", "yao": "Yao", "yap": "Yapees", "yav": "Yangben", "ybb": "Yemba", "yi": "Jiddisch", "yo": "Yoruba", "yrl": "Nheengatu", "yue": "Kantonees", "za": "Zhuang", "zap": "Zapotec", "zbl": "Blissymbolen", "zea": "Zeeuws", "zen": "Zenaga", "zgh": "Standaard Marokkaanse Tamazight", "zh": "Chinees", "zh-Hans": "Chinees (vereenvoudigd)", "zh-Hant": "Chinees (traditioneel)", "zu": "Zoeloe", "zun": "Zuni", "zza": "Zaza"}}, + "nn": {"rtl": false, "languageNames": {"aa": "afar", "ab": "abkhasisk", "ace": "achinesisk", "ach": "acoli", "ada": "adangme", "ady": "adygeisk", "ae": "avestisk", "af": "afrikaans", "afh": "afrihili", "agq": "aghem", "ain": "ainu", "ak": "akan", "akk": "akkadisk", "ale": "aleutisk", "alt": "sør-altaj", "am": "amharisk", "an": "aragonsk", "ang": "gammalengelsk", "anp": "angika", "ar": "arabisk", "ar-001": "moderne standardarabisk", "arc": "arameisk", "arn": "mapudungun", "arp": "arapaho", "arw": "arawak", "as": "assamesisk", "asa": "asu (Tanzania)", "ast": "asturisk", "av": "avarisk", "awa": "avadhi", "ay": "aymara", "az": "aserbajdsjansk", "ba": "basjkirsk", "bal": "baluchi", "ban": "balinesisk", "bas": "basa", "bax": "bamun", "be": "kviterussisk", "bej": "beja", "bem": "bemba", "bez": "bena (Tanzania)", "bg": "bulgarsk", "bho": "bhojpuri", "bi": "bislama", "bik": "bikol", "bin": "bini", "bla": "siksika", "bm": "bambara", "bn": "bengali", "bo": "tibetansk", "br": "bretonsk", "bra": "braj", "brx": "bodo", "bs": "bosnisk", "bss": "bakossi", "bua": "burjatisk", "bug": "buginesisk", "byn": "blin", "ca": "katalansk", "cad": "caddo", "car": "carib", "cch": "atsam", "ce": "tsjetsjensk", "ceb": "cebuano", "cgg": "kiga", "ch": "chamorro", "chb": "chibcha", "chg": "tsjagataisk", "chk": "chuukesisk", "chm": "mari", "chn": "chinook", "cho": "choctaw", "chp": "chipewiansk", "chr": "cherokee", "chy": "cheyenne", "ckb": "sorani", "co": "korsikansk", "cop": "koptisk", "cr": "cree", "crh": "krimtatarisk", "crs": "seselwa (fransk-kreolsk)", "cs": "tsjekkisk", "csb": "kasjubisk", "cu": "kyrkjeslavisk", "cv": "tsjuvansk", "cy": "walisisk", "da": "dansk", "dak": "dakota", "dar": "dargwa", "dav": "taita", "de": "tysk", "de-AT": "tysk (Austerrike)", "de-CH": "tysk (Sveits)", "del": "delaware", "den": "slavej", "dgr": "dogrib", "din": "dinka", "dje": "zarma", "doi": "dogri", "dsb": "lågsorbisk", "dua": "duala", "dum": "mellomnederlandsk", "dv": "divehi", "dyo": "jola-fonyi", "dyu": "dyula", "dz": "dzongkha", "dzg": "dazaga", "ebu": "embu", "ee": "ewe", "efi": "efik", "egy": "gammalegyptisk", "eka": "ekajuk", "el": "gresk", "elx": "elamite", "en": "engelsk", "en-AU": "engelsk (Australia)", "en-CA": "engelsk (Canada)", "en-GB": "britisk engelsk", "en-US": "engelsk (USA)", "enm": "mellomengelsk", "eo": "esperanto", "es": "spansk", "es-419": "spansk (Latin-Amerika)", "es-ES": "spansk (Spania)", "es-MX": "spansk (Mexico)", "et": "estisk", "eu": "baskisk", "ewo": "ewondo", "fa": "persisk", "fan": "fang", "fat": "fanti", "ff": "fulfulde", "fi": "finsk", "fil": "filippinsk", "fj": "fijiansk", "fo": "færøysk", "fr": "fransk", "fr-CA": "fransk (Canada)", "fr-CH": "fransk (Sveits)", "frm": "mellomfransk", "fro": "gammalfransk", "frr": "nordfrisisk", "frs": "austfrisisk", "fur": "friulisk", "fy": "vestfrisisk", "ga": "irsk", "gaa": "ga", "gay": "gayo", "gba": "gbaya", "gd": "skotsk-gælisk", "gez": "geez", "gil": "gilbertese", "gl": "galicisk", "gmh": "mellomhøgtysk", "gn": "guarani", "goh": "gammalhøgtysk", "gon": "gondi", "gor": "gorontalo", "got": "gotisk", "grb": "grebo", "grc": "gammalgresk", "gsw": "sveitsertysk", "gu": "gujarati", "guz": "gusii", "gv": "manx", "gwi": "gwichin", "ha": "hausa", "hai": "haida", "haw": "hawaiisk", "he": "hebraisk", "hi": "hindi", "hil": "hiligaynon", "hit": "hettittisk", "hmn": "hmong", "ho": "hiri motu", "hr": "kroatisk", "hsb": "høgsorbisk", "ht": "haitisk", "hu": "ungarsk", "hup": "hupa", "hy": "armensk", "hz": "herero", "ia": "interlingua", "iba": "iban", "ibb": "ibibio", "id": "indonesisk", "ie": "interlingue", "ig": "ibo", "ii": "sichuan-yi", "ik": "inupiak", "ilo": "iloko", "inh": "ingusjisk", "io": "ido", "is": "islandsk", "it": "italiensk", "iu": "inuktitut", "ja": "japansk", "jbo": "lojban", "jgo": "ngomba", "jmc": "machame", "jpr": "jødepersisk", "jrb": "jødearabisk", "jv": "javanesisk", "ka": "georgisk", "kaa": "karakalpakisk", "kab": "kabyle", "kac": "kachin", "kaj": "jju", "kam": "kamba", "kaw": "kawi", "kbd": "kabardisk", "kcg": "tyap", "kde": "makonde", "kea": "kabuverdianu", "kfo": "koro", "kg": "kikongo", "kha": "khasi", "kho": "khotanesisk", "khq": "koyra chiini", "ki": "kikuyu", "kj": "kuanyama", "kk": "kasakhisk", "kkj": "kako", "kl": "grønlandsk (kalaallisut)", "kln": "kalenjin", "km": "khmer", "kmb": "kimbundu", "kn": "kannada", "ko": "koreansk", "kok": "konkani", "kos": "kosraeansk", "kpe": "kpelle", "kr": "kanuri", "krc": "karachay-balkar", "krl": "karelsk", "kru": "kurukh", "ks": "kasjmiri", "ksb": "shambala", "ksf": "bafia", "ksh": "kølnsk", "ku": "kurdisk", "kum": "kumyk", "kut": "kutenai", "kv": "komi", "kw": "kornisk", "ky": "kirgisisk", "la": "latin", "lad": "ladino", "lag": "langi", "lah": "lahnda", "lam": "lamba", "lb": "luxemburgsk", "lez": "lezghian", "lg": "ganda", "li": "limburgisk", "lkt": "lakota", "ln": "lingala", "lo": "laotisk", "lol": "mongo", "loz": "lozi", "lrc": "nord-lurisk", "lt": "litauisk", "lu": "luba-katanga", "lua": "luba-lulua", "lui": "luiseno", "lun": "lunda", "lus": "lushai", "luy": "olulujia", "lv": "latvisk", "mad": "maduresisk", "mag": "magahi", "mai": "maithili", "mak": "makasar", "man": "mandingo", "mas": "masai", "mdf": "moksha", "mdr": "mandar", "men": "mende", "mer": "meru", "mfe": "morisyen", "mg": "madagassisk", "mga": "mellomirsk", "mgh": "Makhuwa-Meetto", "mgo": "meta’", "mh": "marshallesisk", "mi": "maori", "mic": "micmac", "min": "minangkabau", "mk": "makedonsk", "ml": "malayalam", "mn": "mongolsk", "mnc": "mandsju", "mni": "manipuri", "moh": "mohawk", "mos": "mossi", "mr": "marathi", "ms": "malayisk", "mt": "maltesisk", "mua": "mundang", "mus": "creek", "mwl": "mirandesisk", "mwr": "marwari", "my": "burmesisk", "myv": "erzia", "mzn": "mazanderani", "na": "nauru", "nap": "napolitansk", "naq": "nama", "nb": "bokmål", "nd": "nord-ndebele", "nds": "lågtysk", "nds-NL": "lågsaksisk", "ne": "nepalsk", "new": "newari", "ng": "ndonga", "nia": "nias", "niu": "niuisk", "nl": "nederlandsk", "nl-BE": "flamsk", "nmg": "kwasio", "nn": "nynorsk", "nnh": "ngiemboon", "no": "norsk", "nog": "nogai", "non": "gammalnorsk", "nqo": "n’ko", "nr": "sør-ndebele", "nso": "nordsotho", "nus": "nuer", "nv": "navajo", "nwc": "klassisk newarisk", "ny": "nyanja", "nym": "nyamwezi", "nyn": "nyankole", "nyo": "nyoro", "nzi": "nzima", "oc": "oksitansk", "oj": "ojibwa", "om": "oromo", "or": "odia", "os": "ossetisk", "osa": "osage", "ota": "ottomansk tyrkisk", "pa": "panjabi", "pag": "pangasinan", "pal": "pahlavi", "pam": "pampanga", "pap": "papiamento", "pau": "palauisk", "pcm": "nigeriansk pidgin", "peo": "gammalpersisk", "phn": "fønikisk", "pi": "pali", "pl": "polsk", "pon": "ponapisk", "prg": "prøyssisk", "pro": "gammalprovençalsk", "ps": "pashto", "pt": "portugisisk", "pt-BR": "portugisisk (Brasil)", "pt-PT": "portugisisk (Portugal)", "qu": "quechua", "quc": "k’iche", "raj": "rajasthani", "rap": "rapanui", "rar": "rarotongansk", "rm": "retoromansk", "rn": "rundi", "ro": "rumensk", "ro-MD": "moldavisk", "rof": "rombo", "rom": "romani", "root": "rot", "ru": "russisk", "rup": "arumensk", "rw": "kinjarwanda", "rwk": "rwa", "sa": "sanskrit", "sad": "sandawe", "sah": "sakha", "sam": "samaritansk arameisk", "saq": "samburu", "sas": "sasak", "sat": "santali", "sba": "ngambay", "sbp": "sangu", "sc": "sardinsk", "scn": "siciliansk", "sco": "skotsk", "sd": "sindhi", "se": "nordsamisk", "seh": "sena", "sel": "selkupisk", "ses": "Koyraboro Senni", "sg": "sango", "sga": "gammalirsk", "sh": "serbokroatisk", "shi": "tachelhit", "shn": "shan", "si": "singalesisk", "sid": "sidamo", "sk": "slovakisk", "sl": "slovensk", "sm": "samoansk", "sma": "sørsamisk", "smj": "lulesamisk", "smn": "enaresamisk", "sms": "skoltesamisk", "sn": "shona", "snk": "soninke", "so": "somali", "sog": "sogdisk", "sq": "albansk", "sr": "serbisk", "srn": "sranan tongo", "srr": "serer", "ss": "swati", "ssy": "saho", "st": "sørsotho", "su": "sundanesisk", "suk": "sukuma", "sus": "susu", "sux": "sumerisk", "sv": "svensk", "sw": "swahili", "sw-CD": "swahili (Kongo-Kinshasa)", "swb": "shimaore", "syc": "klassisk syrisk", "syr": "syrisk", "ta": "tamil", "te": "telugu", "tem": "temne", "teo": "teso", "ter": "tereno", "tet": "tetum", "tg": "tadsjikisk", "th": "thai", "ti": "tigrinja", "tig": "tigré", "tiv": "tivi", "tk": "turkmensk", "tkl": "tokelau", "tl": "tagalog", "tlh": "klingon", "tli": "tlingit", "tmh": "tamasjek", "tn": "tswana", "to": "tongansk", "tog": "tonga (Nyasa)", "tpi": "tok pisin", "tr": "tyrkisk", "trv": "taroko", "ts": "tsonga", "tsi": "tsimshian", "tt": "tatarisk", "tum": "tumbuka", "tvl": "tuvalu", "tw": "twi", "twq": "tasawaq", "ty": "tahitisk", "tyv": "tuvinisk", "tzm": "sentral-tamazight", "udm": "udmurt", "ug": "uigurisk", "uga": "ugaritisk", "uk": "ukrainsk", "umb": "umbundu", "ur": "urdu", "uz": "usbekisk", "ve": "venda", "vi": "vietnamesisk", "vo": "volapyk", "vot": "votisk", "vun": "vunjo", "wa": "vallonsk", "wae": "walsertysk", "wal": "wolaytta", "war": "waray", "was": "washo", "wo": "wolof", "xal": "kalmykisk", "xh": "xhosa", "xog": "soga", "yap": "yapesisk", "yav": "yangben", "ybb": "yemba", "yi": "jiddisk", "yo": "joruba", "yue": "kantonesisk", "za": "zhuang", "zap": "zapotec", "zbl": "blissymbol", "zen": "zenaga", "zgh": "standard marokkansk tamazight", "zh": "kinesisk", "zh-Hans": "forenkla kinesisk", "zh-Hant": "tradisjonell kinesisk", "zu": "zulu", "zun": "zuni", "zza": "zaza"}}, + "no": {"rtl": false, "languageNames": {}}, + "nv": {"rtl": false, "languageNames": {}}, + "pap": {"rtl": false, "languageNames": {}}, + "pl": {"rtl": false, "languageNames": {"aa": "afar", "ab": "abchaski", "ace": "aceh", "ach": "aczoli", "ada": "adangme", "ady": "adygejski", "ae": "awestyjski", "aeb": "tunezyjski arabski", "af": "afrikaans", "afh": "afrihili", "agq": "aghem", "ain": "ajnu", "ak": "akan", "akk": "akadyjski", "akz": "alabama", "ale": "aleucki", "aln": "albański gegijski", "alt": "południowoałtajski", "am": "amharski", "an": "aragoński", "ang": "staroangielski", "anp": "angika", "ar": "arabski", "ar-001": "współczesny arabski", "arc": "aramejski", "arn": "mapudungun", "aro": "araona", "arp": "arapaho", "arq": "algierski arabski", "ars": "arabski nadżdyjski", "arw": "arawak", "ary": "marokański arabski", "arz": "egipski arabski", "as": "asamski", "asa": "asu", "ase": "amerykański język migowy", "ast": "asturyjski", "av": "awarski", "avk": "kotava", "awa": "awadhi", "ay": "ajmara", "az": "azerbejdżański", "ba": "baszkirski", "bal": "beludżi", "ban": "balijski", "bar": "bawarski", "bas": "basaa", "bax": "bamum", "bbc": "batak toba", "bbj": "ghomala", "be": "białoruski", "bej": "bedża", "bem": "bemba", "bew": "betawi", "bez": "bena", "bfd": "bafut", "bfq": "badaga", "bg": "bułgarski", "bgn": "beludżi północny", "bho": "bhodżpuri", "bi": "bislama", "bik": "bikol", "bin": "bini", "bjn": "banjar", "bkm": "kom", "bla": "siksika", "bm": "bambara", "bn": "bengalski", "bo": "tybetański", "bpy": "bisznuprija-manipuri", "bqi": "bachtiarski", "br": "bretoński", "bra": "bradź", "brh": "brahui", "brx": "bodo", "bs": "bośniacki", "bss": "akoose", "bua": "buriacki", "bug": "bugijski", "bum": "bulu", "byn": "blin", "byv": "medumba", "ca": "kataloński", "cad": "kaddo", "car": "karaibski", "cay": "kajuga", "cch": "atsam", "ccp": "czakma", "ce": "czeczeński", "ceb": "cebuano", "cgg": "chiga", "ch": "czamorro", "chb": "czibcza", "chg": "czagatajski", "chk": "chuuk", "chm": "maryjski", "chn": "żargon czinucki", "cho": "czoktawski", "chp": "czipewiański", "chr": "czirokeski", "chy": "czejeński", "ckb": "sorani", "co": "korsykański", "cop": "koptyjski", "cps": "capiznon", "cr": "kri", "crh": "krymskotatarski", "crs": "kreolski seszelski", "cs": "czeski", "csb": "kaszubski", "cu": "cerkiewnosłowiański", "cv": "czuwaski", "cy": "walijski", "da": "duński", "dak": "dakota", "dar": "dargwijski", "dav": "taita", "de": "niemiecki", "de-AT": "austriacki niemiecki", "de-CH": "szwajcarski wysokoniemiecki", "del": "delaware", "den": "slave", "dgr": "dogrib", "din": "dinka", "dje": "dżerma", "doi": "dogri", "dsb": "dolnołużycki", "dtp": "dusun centralny", "dua": "duala", "dum": "średniowieczny niderlandzki", "dv": "malediwski", "dyo": "diola", "dyu": "diula", "dz": "dzongkha", "dzg": "dazaga", "ebu": "embu", "ee": "ewe", "efi": "efik", "egl": "emilijski", "egy": "staroegipski", "eka": "ekajuk", "el": "grecki", "elx": "elamicki", "en": "angielski", "en-AU": "australijski angielski", "en-CA": "kanadyjski angielski", "en-GB": "brytyjski angielski", "en-US": "amerykański angielski", "enm": "średnioangielski", "eo": "esperanto", "es": "hiszpański", "es-419": "amerykański hiszpański", "es-ES": "europejski hiszpański", "es-MX": "meksykański hiszpański", "esu": "yupik środkowosyberyjski", "et": "estoński", "eu": "baskijski", "ewo": "ewondo", "ext": "estremadurski", "fa": "perski", "fan": "fang", "fat": "fanti", "ff": "fulani", "fi": "fiński", "fil": "filipino", "fit": "meänkieli", "fj": "fidżijski", "fo": "farerski", "fr": "francuski", "fr-CA": "kanadyjski francuski", "fr-CH": "szwajcarski francuski", "frc": "cajuński", "frm": "średniofrancuski", "fro": "starofrancuski", "frp": "franko-prowansalski", "frr": "północnofryzyjski", "frs": "wschodniofryzyjski", "fur": "friulski", "fy": "zachodniofryzyjski", "ga": "irlandzki", "gaa": "ga", "gag": "gagauski", "gay": "gayo", "gba": "gbaya", "gbz": "zaratusztriański dari", "gd": "szkocki gaelicki", "gez": "gyyz", "gil": "gilbertański", "gl": "galicyjski", "glk": "giliański", "gmh": "średnio-wysoko-niemiecki", "gn": "guarani", "goh": "staro-wysoko-niemiecki", "gom": "konkani (Goa)", "gon": "gondi", "gor": "gorontalo", "got": "gocki", "grb": "grebo", "grc": "starogrecki", "gsw": "szwajcarski niemiecki", "gu": "gudżarati", "guc": "wayúu", "gur": "frafra", "guz": "gusii", "gv": "manx", "gwi": "gwichʼin", "ha": "hausa", "hai": "haida", "hak": "hakka", "haw": "hawajski", "he": "hebrajski", "hi": "hindi", "hif": "hindi fidżyjskie", "hil": "hiligaynon", "hit": "hetycki", "hmn": "hmong", "ho": "hiri motu", "hr": "chorwacki", "hsb": "górnołużycki", "hsn": "xiang", "ht": "kreolski haitański", "hu": "węgierski", "hup": "hupa", "hy": "ormiański", "hz": "herero", "ia": "interlingua", "iba": "iban", "ibb": "ibibio", "id": "indonezyjski", "ie": "interlingue", "ig": "igbo", "ii": "syczuański", "ik": "inupiak", "ilo": "ilokano", "inh": "inguski", "io": "ido", "is": "islandzki", "it": "włoski", "iu": "inuktitut", "izh": "ingryjski", "ja": "japoński", "jam": "jamajski", "jbo": "lojban", "jgo": "ngombe", "jmc": "machame", "jpr": "judeo-perski", "jrb": "judeoarabski", "jut": "jutlandzki", "jv": "jawajski", "ka": "gruziński", "kaa": "karakałpacki", "kab": "kabylski", "kac": "kaczin", "kaj": "jju", "kam": "kamba", "kaw": "kawi", "kbd": "kabardyjski", "kbl": "kanembu", "kcg": "tyap", "kde": "makonde", "kea": "kreolski Wysp Zielonego Przylądka", "ken": "kenyang", "kfo": "koro", "kg": "kongo", "kgp": "kaingang", "kha": "khasi", "kho": "chotański", "khq": "koyra chiini", "khw": "khowar", "ki": "kikuju", "kiu": "kirmandżki", "kj": "kwanyama", "kk": "kazachski", "kkj": "kako", "kl": "grenlandzki", "kln": "kalenjin", "km": "khmerski", "kmb": "kimbundu", "kn": "kannada", "ko": "koreański", "koi": "komi-permiacki", "kok": "konkani", "kos": "kosrae", "kpe": "kpelle", "kr": "kanuri", "krc": "karaczajsko-bałkarski", "kri": "krio", "krj": "kinaraya", "krl": "karelski", "kru": "kurukh", "ks": "kaszmirski", "ksb": "sambala", "ksf": "bafia", "ksh": "gwara kolońska", "ku": "kurdyjski", "kum": "kumycki", "kut": "kutenai", "kv": "komi", "kw": "kornijski", "ky": "kirgiski", "la": "łaciński", "lad": "ladyński", "lag": "langi", "lah": "lahnda", "lam": "lamba", "lb": "luksemburski", "lez": "lezgijski", "lfn": "Lingua Franca Nova", "lg": "ganda", "li": "limburski", "lij": "liguryjski", "liv": "liwski", "lkt": "lakota", "lmo": "lombardzki", "ln": "lingala", "lo": "laotański", "lol": "mongo", "lou": "kreolski luizjański", "loz": "lozi", "lrc": "luryjski północny", "lt": "litewski", "ltg": "łatgalski", "lu": "luba-katanga", "lua": "luba-lulua", "lui": "luiseno", "lun": "lunda", "lus": "mizo", "luy": "luhya", "lv": "łotewski", "lzh": "chiński klasyczny", "lzz": "lazyjski", "mad": "madurski", "maf": "mafa", "mag": "magahi", "mai": "maithili", "mak": "makasar", "man": "mandingo", "mas": "masajski", "mde": "maba", "mdf": "moksza", "mdr": "mandar", "men": "mende", "mer": "meru", "mfe": "kreolski Mauritiusa", "mg": "malgaski", "mga": "średnioirlandzki", "mgh": "makua", "mgo": "meta", "mh": "marszalski", "mi": "maoryjski", "mic": "mikmak", "min": "minangkabu", "mk": "macedoński", "ml": "malajalam", "mn": "mongolski", "mnc": "manchu", "mni": "manipuri", "moh": "mohawk", "mos": "mossi", "mr": "marathi", "mrj": "zachodniomaryjski", "ms": "malajski", "mt": "maltański", "mua": "mundang", "mus": "krik", "mwl": "mirandyjski", "mwr": "marwari", "mwv": "mentawai", "my": "birmański", "mye": "myene", "myv": "erzja", "mzn": "mazanderański", "na": "nauruański", "nan": "minnański", "nap": "neapolitański", "naq": "nama", "nb": "norweski (bokmål)", "nd": "ndebele północny", "nds": "dolnoniemiecki", "nds-NL": "dolnosaksoński", "ne": "nepalski", "new": "newarski", "ng": "ndonga", "nia": "nias", "niu": "niue", "njo": "ao", "nl": "niderlandzki", "nl-BE": "flamandzki", "nmg": "ngumba", "nn": "norweski (nynorsk)", "nnh": "ngiemboon", "no": "norweski", "nog": "nogajski", "non": "staronordyjski", "nov": "novial", "nqo": "n’ko", "nr": "ndebele południowy", "nso": "sotho północny", "nus": "nuer", "nv": "nawaho", "nwc": "newarski klasyczny", "ny": "njandża", "nym": "niamwezi", "nyn": "nyankole", "nyo": "nyoro", "nzi": "nzema", "oc": "oksytański", "oj": "odżibwa", "om": "oromo", "or": "orija", "os": "osetyjski", "osa": "osage", "ota": "osmańsko-turecki", "pa": "pendżabski", "pag": "pangasinan", "pal": "pahlavi", "pam": "pampango", "pap": "papiamento", "pau": "palau", "pcd": "pikardyjski", "pcm": "pidżyn nigeryjski", "pdc": "pensylwański", "pdt": "plautdietsch", "peo": "staroperski", "pfl": "palatynacki", "phn": "fenicki", "pi": "palijski", "pl": "polski", "pms": "piemoncki", "pnt": "pontyjski", "pon": "ponpejski", "prg": "pruski", "pro": "staroprowansalski", "ps": "paszto", "pt": "portugalski", "pt-BR": "brazylijski portugalski", "pt-PT": "europejski portugalski", "qu": "keczua", "quc": "kicze", "qug": "keczua górski (Chimborazo)", "raj": "radźasthani", "rap": "rapanui", "rar": "rarotonga", "rgn": "romagnol", "rif": "tarifit", "rm": "retoromański", "rn": "rundi", "ro": "rumuński", "ro-MD": "mołdawski", "rof": "rombo", "rom": "cygański", "root": "język rdzenny", "rtm": "rotumański", "ru": "rosyjski", "rue": "rusiński", "rug": "roviana", "rup": "arumuński", "rw": "kinya-ruanda", "rwk": "rwa", "sa": "sanskryt", "sad": "sandawe", "sah": "jakucki", "sam": "samarytański aramejski", "saq": "samburu", "sas": "sasak", "sat": "santali", "saz": "saurasztryjski", "sba": "ngambay", "sbp": "sangu", "sc": "sardyński", "scn": "sycylijski", "sco": "scots", "sd": "sindhi", "sdc": "sassarski", "sdh": "południowokurdyjski", "se": "północnolapoński", "see": "seneka", "seh": "sena", "sei": "seri", "sel": "selkupski", "ses": "koyraboro senni", "sg": "sango", "sga": "staroirlandzki", "sgs": "żmudzki", "sh": "serbsko-chorwacki", "shi": "tashelhiyt", "shn": "szan", "shu": "arabski (Czad)", "si": "syngaleski", "sid": "sidamo", "sk": "słowacki", "sl": "słoweński", "sli": "dolnośląski", "sly": "selayar", "sm": "samoański", "sma": "południowolapoński", "smj": "lule", "smn": "inari", "sms": "skolt", "sn": "shona", "snk": "soninke", "so": "somalijski", "sog": "sogdyjski", "sq": "albański", "sr": "serbski", "srn": "sranan tongo", "srr": "serer", "ss": "suazi", "ssy": "saho", "st": "sotho południowy", "stq": "fryzyjski saterlandzki", "su": "sundajski", "suk": "sukuma", "sus": "susu", "sux": "sumeryjski", "sv": "szwedzki", "sw": "suahili", "sw-CD": "kongijski suahili", "swb": "komoryjski", "syc": "syriacki", "syr": "syryjski", "szl": "śląski", "ta": "tamilski", "tcy": "tulu", "te": "telugu", "tem": "temne", "teo": "ateso", "ter": "tereno", "tet": "tetum", "tg": "tadżycki", "th": "tajski", "ti": "tigrinia", "tig": "tigre", "tiv": "tiw", "tk": "turkmeński", "tkl": "tokelau", "tkr": "cachurski", "tl": "tagalski", "tlh": "klingoński", "tli": "tlingit", "tly": "tałyski", "tmh": "tamaszek", "tn": "setswana", "to": "tonga", "tog": "tonga (Niasa)", "tpi": "tok pisin", "tr": "turecki", "tru": "turoyo", "trv": "taroko", "ts": "tsonga", "tsd": "cakoński", "tsi": "tsimshian", "tt": "tatarski", "ttt": "tacki", "tum": "tumbuka", "tvl": "tuvalu", "tw": "twi", "twq": "tasawaq", "ty": "tahitański", "tyv": "tuwiński", "tzm": "tamazight (Atlas Środkowy)", "udm": "udmurcki", "ug": "ujgurski", "uga": "ugarycki", "uk": "ukraiński", "umb": "umbundu", "ur": "urdu", "uz": "uzbecki", "vai": "wai", "ve": "venda", "vec": "wenecki", "vep": "wepski", "vi": "wietnamski", "vls": "zachodnioflamandzki", "vmf": "meński frankoński", "vo": "wolapik", "vot": "wotiacki", "vro": "võro", "vun": "vunjo", "wa": "waloński", "wae": "walser", "wal": "wolayta", "war": "waraj", "was": "washo", "wbp": "warlpiri", "wo": "wolof", "wuu": "wu", "xal": "kałmucki", "xh": "khosa", "xmf": "megrelski", "xog": "soga", "yap": "japski", "yav": "yangben", "ybb": "yemba", "yi": "jidysz", "yo": "joruba", "yrl": "nheengatu", "yue": "kantoński", "za": "czuang", "zap": "zapotecki", "zbl": "bliss", "zea": "zelandzki", "zen": "zenaga", "zgh": "standardowy marokański tamazight", "zh": "chiński", "zh-Hans": "chiński uproszczony", "zh-Hant": "chiński tradycyjny", "zu": "zulu", "zun": "zuni", "zza": "zazaki"}}, + "pt": {"rtl": false, "languageNames": {"aa": "afar", "ab": "abcázio", "ace": "achém", "ach": "acoli", "ada": "adangme", "ady": "adigue", "ae": "avéstico", "af": "africanês", "afh": "afrihili", "agq": "aghem", "ain": "ainu", "ak": "akan", "akk": "acadiano", "ale": "aleúte", "alt": "altai do sul", "am": "amárico", "an": "aragonês", "ang": "inglês antigo", "anp": "angika", "ar": "árabe", "ar-001": "árabe moderno padrão", "arc": "aramaico", "arn": "mapuche", "arp": "arapaho", "ars": "árabe do Négede", "arw": "arauaqui", "as": "assamês", "asa": "asu", "ast": "asturiano", "av": "avaric", "awa": "awadhi", "ay": "aimará", "az": "azerbaijano", "az-Arab": "azeri sul", "ba": "bashkir", "bal": "balúchi", "ban": "balinês", "bas": "basa", "bax": "bamun", "bbj": "ghomala", "be": "bielorrusso", "bej": "beja", "bem": "bemba", "bez": "bena", "bfd": "bafut", "bg": "búlgaro", "bgn": "balúchi ocidental", "bho": "bhojpuri", "bi": "bislamá", "bik": "bikol", "bin": "bini", "bkm": "kom", "bla": "siksika", "bm": "bambara", "bn": "bengalês", "bo": "tibetano", "br": "bretão", "bra": "braj", "brx": "bodo", "bs": "bósnio", "bss": "akoose", "bua": "buriat", "bug": "buginês", "bum": "bulu", "byn": "blin", "byv": "medumba", "ca": "catalão", "cad": "caddo", "car": "caribe", "cay": "cayuga", "cch": "atsam", "ccp": "Chakma", "ce": "checheno", "ceb": "cebuano", "cgg": "chiga", "ch": "chamorro", "chb": "chibcha", "chg": "chagatai", "chk": "chuquês", "chm": "mari", "chn": "jargão chinook", "cho": "choctaw", "chp": "chipewyan", "chr": "cherokee", "chy": "cheyenne", "ckb": "sorani curdo", "co": "córsico", "cop": "copta", "cr": "cree", "crh": "turco da Crimeia", "crs": "francês crioulo seselwa", "cs": "checo", "csb": "kashubian", "cu": "eslavo eclesiástico", "cv": "chuvash", "cy": "galês", "da": "dinamarquês", "dak": "dacota", "dar": "dargwa", "dav": "taita", "de": "alemão", "de-AT": "alemão austríaco", "de-CH": "alto alemão suíço", "del": "delaware", "den": "slave", "dgr": "dogrib", "din": "dinka", "dje": "zarma", "doi": "dogri", "dsb": "baixo sorábio", "dua": "duala", "dum": "holandês médio", "dv": "divehi", "dyo": "jola-fonyi", "dyu": "diúla", "dz": "dzonga", "dzg": "dazaga", "ebu": "embu", "ee": "ewe", "efi": "efik", "egy": "egípcio clássico", "eka": "ekajuk", "el": "grego", "elx": "elamite", "en": "inglês", "en-AU": "inglês australiano", "en-CA": "inglês canadiano", "en-GB": "inglês britânico", "en-US": "inglês americano", "enm": "inglês médio", "eo": "esperanto", "es": "espanhol", "es-419": "espanhol latino-americano", "es-ES": "espanhol europeu", "es-MX": "espanhol mexicano", "et": "estónio", "eu": "basco", "ewo": "ewondo", "fa": "persa", "fan": "fangue", "fat": "fanti", "ff": "fula", "fi": "finlandês", "fil": "filipino", "fj": "fijiano", "fo": "feroês", "fr": "francês", "fr-CA": "francês canadiano", "fr-CH": "francês suíço", "frc": "francês cajun", "frm": "francês médio", "fro": "francês antigo", "frr": "frísio setentrional", "frs": "frísio oriental", "fur": "friulano", "fy": "frísico ocidental", "ga": "irlandês", "gaa": "ga", "gag": "gagauz", "gay": "gayo", "gba": "gbaia", "gd": "gaélico escocês", "gez": "geʼez", "gil": "gilbertês", "gl": "galego", "gmh": "alto alemão médio", "gn": "guarani", "goh": "alemão alto antigo", "gon": "gondi", "gor": "gorontalo", "got": "gótico", "grb": "grebo", "grc": "grego clássico", "gsw": "alemão suíço", "gu": "guzerate", "guz": "gusii", "gv": "manx", "gwi": "gwichʼin", "ha": "haúça", "hai": "haida", "hak": "hacá", "haw": "havaiano", "he": "hebraico", "hi": "hindi", "hil": "hiligaynon", "hit": "hitita", "hmn": "hmong", "ho": "hiri motu", "hr": "croata", "hsb": "alto sorábio", "hsn": "xiang", "ht": "haitiano", "hu": "húngaro", "hup": "hupa", "hy": "arménio", "hz": "herero", "ia": "interlíngua", "iba": "iban", "ibb": "ibibio", "id": "indonésio", "ie": "interlingue", "ig": "igbo", "ii": "sichuan yi", "ik": "inupiaque", "ilo": "ilocano", "inh": "inguche", "io": "ido", "is": "islandês", "it": "italiano", "iu": "inuktitut", "ja": "japonês", "jbo": "lojban", "jgo": "nguemba", "jmc": "machame", "jpr": "judaico-persa", "jrb": "judaico-arábico", "jv": "javanês", "ka": "georgiano", "kaa": "kara-kalpak", "kab": "kabyle", "kac": "kachin", "kaj": "jju", "kam": "kamba", "kaw": "kawi", "kbd": "cabardiano", "kbl": "kanembu", "kcg": "tyap", "kde": "maconde", "kea": "crioulo cabo-verdiano", "kfo": "koro", "kg": "congolês", "kha": "khasi", "kho": "khotanês", "khq": "koyra chiini", "ki": "quicuio", "kj": "cuanhama", "kk": "cazaque", "kkj": "kako", "kl": "gronelandês", "kln": "kalenjin", "km": "khmer", "kmb": "quimbundo", "kn": "canarim", "ko": "coreano", "koi": "komi-permyak", "kok": "concani", "kos": "kosraean", "kpe": "kpelle", "kr": "canúri", "krc": "carachaio-bálcaro", "krl": "carélio", "kru": "kurukh", "ks": "caxemira", "ksb": "shambala", "ksf": "bafia", "ksh": "kölsch", "ku": "curdo", "kum": "kumyk", "kut": "kutenai", "kv": "komi", "kw": "córnico", "ky": "quirguiz", "la": "latim", "lad": "ladino", "lag": "langi", "lah": "lahnda", "lam": "lamba", "lb": "luxemburguês", "lez": "lezghiano", "lg": "ganda", "li": "limburguês", "lkt": "lacota", "ln": "lingala", "lo": "laosiano", "lol": "mongo", "lou": "crioulo de Louisiana", "loz": "lozi", "lrc": "luri do norte", "lt": "lituano", "lu": "luba-catanga", "lua": "luba-lulua", "lui": "luiseno", "lun": "lunda", "lus": "lushai", "luy": "luyia", "lv": "letão", "mad": "madurês", "maf": "mafa", "mag": "magahi", "mai": "maithili", "mak": "makassarês", "man": "mandinga", "mas": "massai", "mde": "maba", "mdf": "mocsa", "mdr": "mandar", "men": "mende", "mer": "meru", "mfe": "morisyen", "mg": "malgaxe", "mga": "irlandês médio", "mgh": "macua", "mgo": "meta’", "mh": "marshalês", "mi": "maori", "mic": "miquemaque", "min": "minangkabau", "mk": "macedónio", "ml": "malaiala", "mn": "mongol", "mnc": "manchu", "mni": "manipuri", "moh": "mohawk", "mos": "mossi", "mr": "marata", "ms": "malaio", "mt": "maltês", "mua": "mundang", "mus": "creek", "mwl": "mirandês", "mwr": "marwari", "my": "birmanês", "mye": "myene", "myv": "erzya", "mzn": "mazandarani", "na": "nauruano", "nan": "min nan", "nap": "napolitano", "naq": "nama", "nb": "norueguês bokmål", "nd": "ndebele do norte", "nds": "baixo-alemão", "nds-NL": "baixo-saxão", "ne": "nepalês", "new": "newari", "ng": "dongo", "nia": "nias", "niu": "niueano", "nl": "neerlandês", "nl-BE": "flamengo", "nmg": "kwasio", "nn": "norueguês nynorsk", "nnh": "ngiemboon", "no": "norueguês", "nog": "nogai", "non": "nórdico antigo", "nqo": "n’ko", "nr": "ndebele do sul", "nso": "soto setentrional", "nus": "nuer", "nv": "navajo", "nwc": "newari clássico", "ny": "nianja", "nym": "nyamwezi", "nyn": "nyankole", "nyo": "nyoro", "nzi": "nzima", "oc": "occitano", "oj": "ojibwa", "om": "oromo", "or": "oriya", "os": "ossético", "osa": "osage", "ota": "turco otomano", "pa": "panjabi", "pag": "língua pangasinesa", "pal": "pálavi", "pam": "pampango", "pap": "papiamento", "pau": "palauano", "pcm": "pidgin nigeriano", "peo": "persa antigo", "phn": "fenício", "pi": "páli", "pl": "polaco", "pon": "língua pohnpeica", "prg": "prussiano", "pro": "provençal antigo", "ps": "pastó", "pt": "português", "pt-BR": "português do Brasil", "pt-PT": "português europeu", "qu": "quíchua", "quc": "quiché", "raj": "rajastanês", "rap": "rapanui", "rar": "rarotongano", "rm": "romanche", "rn": "rundi", "ro": "romeno", "ro-MD": "moldávio", "rof": "rombo", "rom": "romani", "ru": "russo", "rup": "aromeno", "rw": "quiniaruanda", "rwk": "rwa", "sa": "sânscrito", "sad": "sandawe", "sah": "sakha", "sam": "aramaico samaritano", "saq": "samburu", "sas": "sasak", "sat": "santali", "sba": "ngambay", "sbp": "sangu", "sc": "sardo", "scn": "siciliano", "sco": "scots", "sd": "sindi", "sdh": "curdo meridional", "se": "sami do norte", "see": "seneca", "seh": "sena", "sel": "selkup", "ses": "koyraboro senni", "sg": "sango", "sga": "irlandês antigo", "sh": "servo-croata", "shi": "tachelhit", "shn": "shan", "shu": "árabe do Chade", "si": "cingalês", "sid": "sidamo", "sk": "eslovaco", "sl": "esloveno", "sm": "samoano", "sma": "sami do sul", "smj": "sami de Lule", "smn": "inari sami", "sms": "sami de Skolt", "sn": "shona", "snk": "soninquê", "so": "somali", "sog": "sogdiano", "sq": "albanês", "sr": "sérvio", "srn": "surinamês", "srr": "serere", "ss": "suázi", "ssy": "saho", "st": "soto do sul", "su": "sundanês", "suk": "sukuma", "sus": "susu", "sux": "sumério", "sv": "sueco", "sw": "suaíli", "sw-CD": "suaíli do Congo", "swb": "comoriano", "syc": "siríaco clássico", "syr": "siríaco", "ta": "tâmil", "te": "telugu", "tem": "temne", "teo": "teso", "ter": "tereno", "tet": "tétum", "tg": "tajique", "th": "tailandês", "ti": "tigrínia", "tig": "tigré", "tk": "turcomano", "tkl": "toquelauano", "tl": "tagalo", "tlh": "klingon", "tli": "tlinguite", "tmh": "tamaxeque", "tn": "tswana", "to": "tonga", "tog": "tonganês de Nyasa", "tpi": "tok pisin", "tr": "turco", "trv": "taroko", "ts": "tsonga", "tsi": "tsimshiano", "tt": "tatar", "tum": "tumbuka", "tvl": "tuvaluano", "tw": "twi", "twq": "tasawaq", "ty": "taitiano", "tyv": "tuviniano", "tzm": "tamazight do Atlas Central", "udm": "udmurte", "ug": "uigur", "uga": "ugarítico", "uk": "ucraniano", "umb": "umbundu", "ur": "urdu", "uz": "usbeque", "ve": "venda", "vi": "vietnamita", "vo": "volapuque", "vot": "vótico", "vun": "vunjo", "wa": "valão", "wae": "walser", "wal": "wolaytta", "war": "waray", "was": "washo", "wbp": "warlpiri", "wo": "uólofe", "wuu": "wu", "xal": "kalmyk", "xh": "xosa", "xog": "soga", "yap": "yapese", "yav": "yangben", "ybb": "yemba", "yi": "iídiche", "yo": "ioruba", "yue": "cantonês", "za": "zhuang", "zap": "zapoteco", "zbl": "símbolos blis", "zen": "zenaga", "zgh": "tamazight marroquino padrão", "zh": "chinês", "zh-Hans": "chinês simplificado", "zh-Hant": "chinês tradicional", "zu": "zulu", "zun": "zuni", "zza": "zaza"}}, + "pt-BR": {"rtl": false, "languageNames": {"aa": "afar", "ab": "abcázio", "ace": "achém", "ach": "acoli", "ada": "adangme", "ady": "adigue", "ae": "avéstico", "af": "africâner", "afh": "afrihili", "agq": "aghem", "ain": "ainu", "ak": "akan", "akk": "acadiano", "ale": "aleúte", "alt": "altai meridional", "am": "amárico", "an": "aragonês", "ang": "inglês arcaico", "anp": "angika", "ar": "árabe", "ar-001": "árabe moderno", "arc": "aramaico", "arn": "mapudungun", "arp": "arapaho", "ars": "árabe négede", "arw": "arauaqui", "as": "assamês", "asa": "asu", "ast": "asturiano", "av": "avárico", "awa": "awadhi", "ay": "aimará", "az": "azerbaijano", "az-Arab": "azeri sul", "ba": "bashkir", "bal": "balúchi", "ban": "balinês", "bas": "basa", "bax": "bamum", "bbj": "ghomala’", "be": "bielorrusso", "bej": "beja", "bem": "bemba", "bez": "bena", "bfd": "bafut", "bg": "búlgaro", "bgn": "balúchi ocidental", "bho": "bhojpuri", "bi": "bislamá", "bik": "bikol", "bin": "bini", "bkm": "kom", "bla": "siksika", "bm": "bambara", "bn": "bengali", "bo": "tibetano", "br": "bretão", "bra": "braj", "brx": "bodo", "bs": "bósnio", "bss": "akoose", "bua": "buriato", "bug": "buginês", "bum": "bulu", "byn": "blin", "byv": "medumba", "ca": "catalão", "cad": "caddo", "car": "caribe", "cay": "cayuga", "cch": "atsam", "ccp": "Chakma", "ce": "checheno", "ceb": "cebuano", "cgg": "chiga", "ch": "chamorro", "chb": "chibcha", "chg": "chagatai", "chk": "chuukese", "chm": "mari", "chn": "jargão Chinook", "cho": "choctaw", "chp": "chipewyan", "chr": "cheroqui", "chy": "cheiene", "ckb": "curdo central", "co": "corso", "cop": "copta", "cr": "cree", "crh": "turco da Crimeia", "crs": "crioulo francês seichelense", "cs": "tcheco", "csb": "kashubian", "cu": "eslavo eclesiástico", "cv": "tchuvache", "cy": "galês", "da": "dinamarquês", "dak": "dacota", "dar": "dargwa", "dav": "taita", "de": "alemão", "de-AT": "alemão (Áustria)", "de-CH": "alto alemão (Suíça)", "del": "delaware", "den": "slave", "dgr": "dogrib", "din": "dinka", "dje": "zarma", "doi": "dogri", "dsb": "baixo sorábio", "dua": "duala", "dum": "holandês médio", "dv": "divehi", "dyo": "jola-fonyi", "dyu": "diúla", "dz": "dzonga", "dzg": "dazaga", "ebu": "embu", "ee": "eve", "efi": "efique", "egy": "egípcio arcaico", "eka": "ekajuk", "el": "grego", "elx": "elamite", "en": "inglês", "en-AU": "inglês (Austrália)", "en-CA": "inglês (Canadá)", "en-GB": "inglês (Reino Unido)", "en-US": "inglês (Estados Unidos)", "enm": "inglês médio", "eo": "esperanto", "es": "espanhol", "es-419": "espanhol (América Latina)", "es-ES": "espanhol (Espanha)", "es-MX": "espanhol (México)", "et": "estoniano", "eu": "basco", "ewo": "ewondo", "fa": "persa", "fan": "fangue", "fat": "fanti", "ff": "fula", "fi": "finlandês", "fil": "filipino", "fj": "fijiano", "fo": "feroês", "fon": "fom", "fr": "francês", "fr-CA": "francês (Canadá)", "fr-CH": "francês (Suíça)", "frc": "francês cajun", "frm": "francês médio", "fro": "francês arcaico", "frr": "frísio setentrional", "frs": "frisão oriental", "fur": "friulano", "fy": "frísio ocidental", "ga": "irlandês", "gaa": "ga", "gag": "gagauz", "gay": "gayo", "gba": "gbaia", "gd": "gaélico escocês", "gez": "geez", "gil": "gilbertês", "gl": "galego", "gmh": "alto alemão médio", "gn": "guarani", "goh": "alemão arcaico alto", "gon": "gondi", "gor": "gorontalo", "got": "gótico", "grb": "grebo", "grc": "grego arcaico", "gsw": "alemão (Suíça)", "gu": "guzerate", "guz": "gusii", "gv": "manx", "gwi": "gwichʼin", "ha": "hauçá", "hai": "haida", "hak": "hacá", "haw": "havaiano", "he": "hebraico", "hi": "híndi", "hil": "hiligaynon", "hit": "hitita", "hmn": "hmong", "ho": "hiri motu", "hr": "croata", "hsb": "alto sorábio", "hsn": "xiang", "ht": "haitiano", "hu": "húngaro", "hup": "hupa", "hy": "armênio", "hz": "herero", "ia": "interlíngua", "iba": "iban", "ibb": "ibibio", "id": "indonésio", "ie": "interlingue", "ig": "igbo", "ii": "sichuan yi", "ik": "inupiaque", "ilo": "ilocano", "inh": "inguche", "io": "ido", "is": "islandês", "it": "italiano", "iu": "inuktitut", "ja": "japonês", "jbo": "lojban", "jgo": "nguemba", "jmc": "machame", "jpr": "judaico-persa", "jrb": "judaico-arábico", "jv": "javanês", "ka": "georgiano", "kaa": "kara-kalpak", "kab": "kabyle", "kac": "kachin", "kaj": "jju", "kam": "kamba", "kaw": "kawi", "kbd": "kabardiano", "kbl": "kanembu", "kcg": "tyap", "kde": "maconde", "kea": "crioulo cabo-verdiano", "kfo": "koro", "kg": "congolês", "kha": "khasi", "kho": "khotanês", "khq": "koyra chiini", "ki": "quicuio", "kj": "cuanhama", "kk": "cazaque", "kkj": "kako", "kl": "groenlandês", "kln": "kalenjin", "km": "khmer", "kmb": "quimbundo", "kn": "canarim", "ko": "coreano", "koi": "komi-permyak", "kok": "concani", "kos": "kosraean", "kpe": "kpelle", "kr": "canúri", "krc": "karachay-balkar", "krl": "carélio", "kru": "kurukh", "ks": "caxemira", "ksb": "shambala", "ksf": "bafia", "ksh": "kölsch", "ku": "curdo", "kum": "kumyk", "kut": "kutenai", "kv": "komi", "kw": "córnico", "ky": "quirguiz", "la": "latim", "lad": "ladino", "lag": "langi", "lah": "lahnda", "lam": "lamba", "lb": "luxemburguês", "lez": "lezgui", "lg": "luganda", "li": "limburguês", "lkt": "lacota", "ln": "lingala", "lo": "laosiano", "lol": "mongo", "lou": "crioulo da Louisiana", "loz": "lozi", "lrc": "luri setentrional", "lt": "lituano", "lu": "luba-catanga", "lua": "luba-lulua", "lui": "luiseno", "lun": "lunda", "lus": "lushai", "luy": "luyia", "lv": "letão", "mad": "madurês", "maf": "mafa", "mag": "magahi", "mai": "maithili", "mak": "makasar", "man": "mandinga", "mas": "massai", "mde": "maba", "mdf": "mocsa", "mdr": "mandar", "men": "mende", "mer": "meru", "mfe": "morisyen", "mg": "malgaxe", "mga": "irlandês médio", "mgh": "macua", "mgo": "meta’", "mh": "marshalês", "mi": "maori", "mic": "miquemaque", "min": "minangkabau", "mk": "macedônio", "ml": "malaiala", "mn": "mongol", "mnc": "manchu", "mni": "manipuri", "moh": "moicano", "mos": "mossi", "mr": "marati", "ms": "malaio", "mt": "maltês", "mua": "mundang", "mus": "creek", "mwl": "mirandês", "mwr": "marwari", "my": "birmanês", "mye": "myene", "myv": "erzya", "mzn": "mazandarani", "na": "nauruano", "nan": "min nan", "nap": "napolitano", "naq": "nama", "nb": "bokmål norueguês", "nd": "ndebele do norte", "nds": "baixo alemão", "nds-NL": "baixo saxão", "ne": "nepalês", "new": "newari", "ng": "dongo", "nia": "nias", "niu": "niueano", "nl": "holandês", "nl-BE": "flamengo", "nmg": "kwasio", "nn": "nynorsk norueguês", "nnh": "ngiemboon", "no": "norueguês", "nog": "nogai", "non": "nórdico arcaico", "nqo": "n’ko", "nr": "ndebele do sul", "nso": "soto setentrional", "nus": "nuer", "nv": "navajo", "nwc": "newari clássico", "ny": "nianja", "nym": "nyamwezi", "nyn": "nyankole", "nyo": "nyoro", "nzi": "nzima", "oc": "occitânico", "oj": "ojibwa", "om": "oromo", "or": "oriá", "os": "osseto", "osa": "osage", "ota": "turco otomano", "pa": "panjabi", "pag": "pangasinã", "pal": "pálavi", "pam": "pampanga", "pap": "papiamento", "pau": "palauano", "pcm": "pidgin nigeriano", "peo": "persa arcaico", "phn": "fenício", "pi": "páli", "pl": "polonês", "pon": "pohnpeiano", "prg": "prussiano", "pro": "provençal arcaico", "ps": "pashto", "pt": "português", "pt-BR": "português (Brasil)", "pt-PT": "português (Portugal)", "qu": "quíchua", "quc": "quiché", "raj": "rajastani", "rap": "rapanui", "rar": "rarotongano", "rm": "romanche", "rn": "rundi", "ro": "romeno", "ro-MD": "moldávio", "rof": "rombo", "rom": "romani", "root": "raiz", "ru": "russo", "rup": "aromeno", "rw": "quiniaruanda", "rwk": "rwa", "sa": "sânscrito", "sad": "sandawe", "sah": "sakha", "sam": "aramaico samaritano", "saq": "samburu", "sas": "sasak", "sat": "santali", "sba": "ngambay", "sbp": "sangu", "sc": "sardo", "scn": "siciliano", "sco": "scots", "sd": "sindi", "sdh": "curdo meridional", "se": "sami setentrional", "see": "seneca", "seh": "sena", "sel": "selkup", "ses": "koyraboro senni", "sg": "sango", "sga": "irlandês arcaico", "sh": "servo-croata", "shi": "tachelhit", "shn": "shan", "shu": "árabe chadiano", "si": "cingalês", "sid": "sidamo", "sk": "eslovaco", "sl": "esloveno", "sm": "samoano", "sma": "sami meridional", "smj": "sami de Lule", "smn": "sami de Inari", "sms": "sami de Skolt", "sn": "xona", "snk": "soninquê", "so": "somali", "sog": "sogdiano", "sq": "albanês", "sr": "sérvio", "srn": "surinamês", "srr": "serere", "ss": "suázi", "ssy": "saho", "st": "soto do sul", "su": "sundanês", "suk": "sukuma", "sus": "susu", "sux": "sumério", "sv": "sueco", "sw": "suaíli", "sw-CD": "suaíli do Congo", "swb": "comoriano", "syc": "siríaco clássico", "syr": "siríaco", "ta": "tâmil", "te": "télugo", "tem": "timne", "teo": "teso", "ter": "tereno", "tet": "tétum", "tg": "tadjique", "th": "tailandês", "ti": "tigrínia", "tig": "tigré", "tk": "turcomeno", "tkl": "toquelauano", "tl": "tagalo", "tlh": "klingon", "tli": "tlinguite", "tmh": "tamaxeque", "tn": "tswana", "to": "tonganês", "tog": "tonganês de Nyasa", "tpi": "tok pisin", "tr": "turco", "trv": "taroko", "ts": "tsonga", "tsi": "tsimshiano", "tt": "tártaro", "tum": "tumbuka", "tvl": "tuvaluano", "tw": "twi", "twq": "tasawaq", "ty": "taitiano", "tyv": "tuviniano", "tzm": "tamazirte do Atlas Central", "udm": "udmurte", "ug": "uigur", "uga": "ugarítico", "uk": "ucraniano", "umb": "umbundu", "ur": "urdu", "uz": "uzbeque", "ve": "venda", "vi": "vietnamita", "vo": "volapuque", "vot": "vótico", "vun": "vunjo", "wa": "valão", "wae": "walser", "wal": "wolaytta", "war": "waray", "was": "washo", "wbp": "warlpiri", "wo": "uolofe", "wuu": "wu", "xal": "kalmyk", "xh": "xhosa", "xog": "lusoga", "yap": "yapese", "yav": "yangben", "ybb": "yemba", "yi": "iídiche", "yo": "iorubá", "yue": "cantonês", "za": "zhuang", "zap": "zapoteco", "zbl": "símbolos blis", "zen": "zenaga", "zgh": "tamazirte marroqino padrão", "zh": "chinês", "zh-Hans": "chinês simplificado", "zh-Hant": "chinês tradicional", "zu": "zulu", "zun": "zunhi", "zza": "zazaki"}}, + "rm": {"rtl": false, "languageNames": {"aa": "afar", "ab": "abchasian", "ace": "aceh", "ach": "acoli", "ada": "andangme", "ady": "adygai", "ae": "avestic", "af": "afrikaans", "afh": "afrihili", "ain": "ainu", "ak": "akan", "akk": "accadic", "ale": "aleutic", "alt": "altaic dal sid", "am": "amaric", "an": "aragonais", "ang": "englais vegl", "anp": "angika", "ar": "arab", "ar-001": "arab (mund)", "arc": "arameic", "arn": "araucanic", "arp": "arapaho", "arw": "arawak", "as": "assami", "ast": "asturian", "av": "avaric", "awa": "awadhi", "ay": "aymara", "az": "aserbeidschanic", "ba": "baschkir", "bal": "belutschi", "ban": "balinais", "bas": "basaa", "be": "bieloruss", "bej": "bedscha", "bem": "bemba", "bg": "bulgar", "bho": "bhojpuri", "bi": "bislama", "bik": "bikol", "bin": "bini", "bla": "siksika", "bm": "bambara", "bn": "bengal", "bo": "tibetan", "br": "breton", "bra": "braj", "bs": "bosniac", "bua": "buriat", "bug": "bugi", "byn": "blin", "ca": "catalan", "cad": "caddo", "car": "caribic", "cch": "atsam", "ce": "tschetschen", "ceb": "cebuano", "ch": "chamorro", "chb": "chibcha", "chg": "tschagataic", "chk": "chuukais", "chm": "mari", "chn": "patuà chinook", "cho": "choctaw", "chp": "chipewyan", "chr": "cherokee", "chy": "cheyenne", "co": "cors", "cop": "coptic", "cr": "cree", "crh": "tirc crimean", "cs": "tschec", "csb": "kaschubic", "cu": "slav da baselgia", "cv": "tschuvasch", "cy": "kimric", "da": "danais", "dak": "dakota", "dar": "dargwa", "de": "tudestg", "de-AT": "tudestg austriac", "de-CH": "tudestg (Svizra)", "del": "delaware", "den": "slavey", "dgr": "dogrib", "din": "dinka", "doi": "dogri", "dsb": "bass sorb", "dua": "duala", "dum": "ollandais mesaun", "dv": "maledivic", "dyu": "diula", "dz": "dzongkha", "ee": "ewe", "efi": "efik", "egy": "egipzian vegl", "eka": "ekajuk", "el": "grec", "elx": "elamitic", "en": "englais", "en-AU": "englais australian", "en-CA": "englais canadais", "en-GB": "englais britannic", "en-US": "englais american", "enm": "englais mesaun", "eo": "esperanto", "es": "spagnol", "es-419": "spagnol latinamerican", "es-ES": "spagnol iberic", "es-MX": "spagnol (Mexico)", "et": "eston", "eu": "basc", "ewo": "ewondo", "fa": "persian", "fan": "fang", "fat": "fanti", "ff": "fulah", "fi": "finlandais", "fil": "filippino", "fj": "fidschian", "fo": "ferrais", "fr": "franzos", "fr-CA": "franzos canadais", "fr-CH": "franzos svizzer", "frm": "franzos mesaun", "fro": "franzos vegl", "frr": "fris dal nord", "frs": "fris da l’ost", "fur": "friulan", "fy": "fris", "ga": "irlandais", "gaa": "ga", "gay": "gayo", "gba": "gbaya", "gd": "gaelic scot", "gez": "geez", "gil": "gilbertais", "gl": "galician", "gmh": "tudestg mesaun", "gn": "guarani", "goh": "vegl tudestg da scrittira", "gon": "gondi", "gor": "gorontalo", "got": "gotic", "grb": "grebo", "grc": "grec vegl", "gsw": "tudestg svizzer", "gu": "gujarati", "gv": "manx", "gwi": "gwichʼin", "ha": "haussa", "hai": "haida", "haw": "hawaian", "he": "ebraic", "hi": "hindi", "hil": "hiligaynon", "hit": "ettitic", "hmn": "hmong", "ho": "hiri motu", "hr": "croat", "hsb": "aut sorb", "ht": "haitian", "hu": "ungarais", "hup": "hupa", "hy": "armen", "hz": "herero", "ia": "interlingua", "iba": "iban", "id": "indonais", "ie": "interlingue", "ig": "igbo", "ii": "sichuan yi", "ik": "inupiak", "ilo": "ilocano", "inh": "ingush", "io": "ido", "is": "islandais", "it": "talian", "iu": "inuktitut", "ja": "giapunais", "jbo": "lojban", "jpr": "giudaic-persian", "jrb": "giudaic-arab", "jv": "javanais", "ka": "georgian", "kaa": "karakalpak", "kab": "kabyle", "kac": "kachin", "kaj": "jju", "kam": "kamba", "kaw": "kawi", "kbd": "kabardic", "kcg": "tyap", "kfo": "koro", "kg": "kongo", "kha": "khasi", "kho": "khotanais", "ki": "kikuyu", "kj": "kuanyama", "kk": "casac", "kl": "grönlandais", "km": "cambodschan", "kmb": "kimbundu", "kn": "kannada", "ko": "corean", "kok": "konkani", "kos": "kosraean", "kpe": "kpelle", "kr": "kanuri", "krc": "karachay-balkar", "krl": "carelian", "kru": "kurukh", "ks": "kashmiri", "ku": "curd", "kum": "kumuk", "kut": "kutenai", "kv": "komi", "kw": "cornic", "ky": "kirghis", "la": "latin", "lad": "ladino", "lah": "lahnda", "lam": "lamba", "lb": "luxemburgais", "lez": "lezghian", "lg": "ganda", "li": "limburgais", "ln": "lingala", "lo": "laot", "lol": "lomongo", "loz": "lozi", "lt": "lituan", "lu": "luba-katanga", "lua": "luba-lulua", "lui": "luiseno", "lun": "lunda", "lus": "lushai", "lv": "letton", "mad": "madurais", "mag": "magahi", "mai": "maithili", "mak": "makassar", "man": "mandingo", "mas": "masai", "mdf": "moksha", "mdr": "mandar", "men": "mende", "mg": "malagassi", "mga": "irlandais mesaun", "mh": "marschallais", "mi": "maori", "mic": "micmac", "min": "minangkabau", "mk": "macedon", "ml": "malayalam", "mn": "mongolic", "mnc": "manchu", "mni": "manipuri", "moh": "mohawk", "mos": "mossi", "mr": "marathi", "ms": "malaic", "mt": "maltais", "mus": "creek", "mwl": "mirandais", "mwr": "marwari", "my": "birman", "myv": "erzya", "na": "nauru", "nap": "neapolitan", "nb": "norvegais bokmål", "nd": "ndebele dal nord", "nds": "bass tudestg", "nds-NL": "bass tudestg (Pajais Bass)", "ne": "nepalais", "new": "newari", "ng": "ndonga", "nia": "nias", "niu": "niue", "nl": "ollandais", "nl-BE": "flam", "nn": "norvegiais nynorsk", "no": "norvegiais", "nog": "nogai", "non": "nordic vegl", "nqo": "n’ko", "nr": "ndebele dal sid", "nso": "sotho dal nord", "nv": "navajo", "nwc": "newari classic", "ny": "nyanja", "nym": "nyamwezi", "nyn": "nyankole", "nyo": "nyoro", "nzi": "nzima", "oc": "occitan", "oj": "ojibwa", "om": "oromo", "or": "oriya", "os": "ossetic", "osa": "osage", "ota": "tirc ottoman", "pa": "punjabi", "pag": "pangasinan", "pal": "pahlavi", "pam": "pampanga", "pap": "papiamento", "pau": "palau", "peo": "persian vegl", "phn": "fenizian", "pi": "pali", "pl": "polac", "pon": "ponapean", "pro": "provenzal vegl", "ps": "paschto", "pt": "portugais", "pt-BR": "portugais brasilian", "pt-PT": "portugais iberian", "qu": "quechua", "raj": "rajasthani", "rap": "rapanui", "rar": "rarotonga", "rm": "rumantsch", "rn": "rundi", "ro": "rumen", "ro-MD": "moldav", "rom": "romani", "ru": "russ", "rup": "aromunic", "rw": "kinyarwanda", "sa": "sanscrit", "sad": "sandawe", "sah": "jakut", "sam": "arameic samaritan", "sas": "sasak", "sat": "santali", "sc": "sard", "scn": "sicilian", "sco": "scot", "sd": "sindhi", "se": "sami dal nord", "sel": "selkup", "sg": "sango", "sga": "irlandais vegl", "sh": "serbo-croat", "shn": "shan", "si": "singalais", "sid": "sidamo", "sk": "slovac", "sl": "sloven", "sm": "samoan", "sma": "sami dal sid", "smj": "sami lule", "smn": "sami inari", "sms": "sami skolt", "sn": "shona", "snk": "soninke", "so": "somali", "sog": "sogdian", "sq": "albanais", "sr": "serb", "srn": "sranan tongo", "srr": "serer", "ss": "swazi", "st": "sotho dal sid", "su": "sundanais", "suk": "sukuma", "sus": "susu", "sux": "sumeric", "sv": "svedais", "sw": "suahili", "sw-CD": "suahili (Republica Democratica dal Congo)", "syc": "siric classic", "syr": "siric", "ta": "tamil", "te": "telugu", "tem": "temne", "ter": "tereno", "tet": "tetum", "tg": "tadjik", "th": "tailandais", "ti": "tigrinya", "tig": "tigre", "tk": "turkmen", "tkl": "tokelau", "tl": "tagalog", "tlh": "klingonic", "tli": "tlingit", "tmh": "tamasheq", "tn": "tswana", "to": "tonga", "tog": "lingua tsonga", "tpi": "tok pisin", "tr": "tirc", "ts": "tsonga", "tsi": "tsimshian", "tt": "tatar", "tum": "tumbuka", "tvl": "tuvalu", "tw": "twi", "ty": "tahitian", "tyv": "tuvinian", "udm": "udmurt", "ug": "uiguric", "uga": "ugaritic", "uk": "ucranais", "umb": "mbundu", "ur": "urdu", "uz": "usbec", "ve": "venda", "vi": "vietnamais", "vo": "volapuk", "vot": "votic", "wa": "vallon", "wal": "walamo", "war": "waray", "was": "washo", "wo": "wolof", "xal": "kalmuk", "xh": "xhosa", "yap": "yapais", "yi": "jiddic", "yo": "yoruba", "za": "zhuang", "zap": "zapotec", "zbl": "simbols da Bliss", "zen": "zenaga", "zh": "chinais", "zh-Hans": "chinais simplifitgà", "zh-Hant": "chinais tradiziunal", "zu": "zulu", "zun": "zuni", "zza": "zaza"}}, + "ro": {"rtl": false, "languageNames": {"aa": "afar", "ab": "abhază", "ace": "aceh", "ach": "acoli", "ada": "adangme", "ady": "adyghe", "ae": "avestană", "af": "afrikaans", "afh": "afrihili", "agq": "aghem", "ain": "ainu", "ak": "akan", "akk": "akkadiană", "ale": "aleută", "alt": "altaică meridională", "am": "amharică", "an": "aragoneză", "ang": "engleză veche", "anp": "angika", "ar": "arabă", "ar-001": "arabă standard modernă", "arc": "aramaică", "arn": "mapuche", "arp": "arapaho", "ars": "arabă najdi", "arw": "arawak", "as": "asameză", "asa": "asu", "ast": "asturiană", "av": "avară", "awa": "awadhi", "ay": "aymara", "az": "azeră", "ba": "bașkiră", "bal": "baluchi", "ban": "balineză", "bas": "basaa", "bax": "bamun", "bbj": "ghomala", "be": "belarusă", "bej": "beja", "bem": "bemba", "bez": "bena", "bfd": "bafut", "bg": "bulgară", "bgn": "baluchi occidentală", "bho": "bhojpuri", "bi": "bislama", "bik": "bikol", "bin": "bini", "bkm": "kom", "bla": "siksika", "bm": "bambara", "bn": "bengaleză", "bo": "tibetană", "br": "bretonă", "bra": "braj", "brx": "bodo", "bs": "bosniacă", "bss": "akoose", "bua": "buriat", "bug": "bugineză", "bum": "bulu", "byn": "blin", "byv": "medumba", "ca": "catalană", "cad": "caddo", "car": "carib", "cay": "cayuga", "cch": "atsam", "ccp": "chakma", "ce": "cecenă", "ceb": "cebuană", "cgg": "chiga", "ch": "chamorro", "chb": "chibcha", "chg": "chagatai", "chk": "chuukese", "chm": "mari", "chn": "jargon chinook", "cho": "choctaw", "chp": "chipewyan", "chr": "cherokee", "chy": "cheyenne", "ckb": "kurdă centrală", "co": "corsicană", "cop": "coptă", "cr": "cree", "crh": "turcă crimeeană", "crs": "creolă franceză seselwa", "cs": "cehă", "csb": "cașubiană", "cu": "slavonă", "cv": "ciuvașă", "cy": "galeză", "da": "daneză", "dak": "dakota", "dar": "dargwa", "dav": "taita", "de": "germană", "de-AT": "germană (Austria)", "de-CH": "germană standard (Elveția)", "del": "delaware", "den": "slave", "dgr": "dogrib", "din": "dinka", "dje": "zarma", "doi": "dogri", "dsb": "sorabă de jos", "dua": "duala", "dum": "neerlandeză medie", "dv": "divehi", "dyo": "jola-fonyi", "dyu": "dyula", "dz": "dzongkha", "dzg": "dazaga", "ebu": "embu", "ee": "ewe", "efi": "efik", "egy": "egipteană veche", "eka": "ekajuk", "el": "greacă", "elx": "elamită", "en": "engleză", "en-AU": "engleză (Australia)", "en-CA": "engleză (Canada)", "en-GB": "engleză (Regatul Unit)", "en-US": "engleză (Statele Unite ale Americii)", "enm": "engleză medie", "eo": "esperanto", "es": "spaniolă", "es-419": "spaniolă (America Latină)", "es-ES": "spaniolă (Europa)", "es-MX": "spaniolă (Mexic)", "et": "estonă", "eu": "bască", "ewo": "ewondo", "fa": "persană", "fan": "fang", "fat": "fanti", "ff": "fulah", "fi": "finlandeză", "fil": "filipineză", "fj": "fijiană", "fo": "faroeză", "fr": "franceză", "fr-CA": "franceză (Canada)", "fr-CH": "franceză (Elveția)", "frc": "franceză cajun", "frm": "franceză medie", "fro": "franceză veche", "frr": "frizonă nordică", "frs": "frizonă orientală", "fur": "friulană", "fy": "frizonă occidentală", "ga": "irlandeză", "gaa": "ga", "gag": "găgăuză", "gan": "chineză gan", "gay": "gayo", "gba": "gbaya", "gd": "gaelică scoțiană", "gez": "geez", "gil": "gilbertină", "gl": "galiciană", "gmh": "germană înaltă medie", "gn": "guarani", "goh": "germană înaltă veche", "gon": "gondi", "gor": "gorontalo", "got": "gotică", "grb": "grebo", "grc": "greacă veche", "gsw": "germană (Elveția)", "gu": "gujarati", "guz": "gusii", "gv": "manx", "gwi": "gwichʼin", "ha": "hausa", "hai": "haida", "hak": "chineză hakka", "haw": "hawaiiană", "he": "ebraică", "hi": "hindi", "hil": "hiligaynon", "hit": "hitită", "hmn": "hmong", "ho": "hiri motu", "hr": "croată", "hsb": "sorabă de sus", "hsn": "chineză xiang", "ht": "haitiană", "hu": "maghiară", "hup": "hupa", "hy": "armeană", "hz": "herero", "ia": "interlingua", "iba": "iban", "ibb": "ibibio", "id": "indoneziană", "ie": "interlingue", "ig": "igbo", "ii": "yi din Sichuan", "ik": "inupiak", "ilo": "iloko", "inh": "ingușă", "io": "ido", "is": "islandeză", "it": "italiană", "iu": "inuktitut", "ja": "japoneză", "jbo": "lojban", "jgo": "ngomba", "jmc": "machame", "jpr": "iudeo-persană", "jrb": "iudeo-arabă", "jv": "javaneză", "ka": "georgiană", "kaa": "karakalpak", "kab": "kabyle", "kac": "kachin", "kaj": "jju", "kam": "kamba", "kaw": "kawi", "kbd": "kabardian", "kbl": "kanembu", "kcg": "tyap", "kde": "makonde", "kea": "kabuverdianu", "kfo": "koro", "kg": "congoleză", "kha": "khasi", "kho": "khotaneză", "khq": "koyra chiini", "ki": "kikuyu", "kj": "kuanyama", "kk": "kazahă", "kkj": "kako", "kl": "kalaallisut", "kln": "kalenjin", "km": "khmeră", "kmb": "kimbundu", "kn": "kannada", "ko": "coreeană", "koi": "komi-permiak", "kok": "konkani", "kos": "kosrae", "kpe": "kpelle", "kr": "kanuri", "krc": "karaceai-balkar", "krl": "kareliană", "kru": "kurukh", "ks": "cașmiră", "ksb": "shambala", "ksf": "bafia", "ksh": "kölsch", "ku": "kurdă", "kum": "kumyk", "kut": "kutenai", "kv": "komi", "kw": "cornică", "ky": "kârgâză", "la": "latină", "lad": "ladino", "lag": "langi", "lah": "lahnda", "lam": "lamba", "lb": "luxemburgheză", "lez": "lezghian", "lg": "ganda", "li": "limburgheză", "lkt": "lakota", "ln": "lingala", "lo": "laoțiană", "lol": "mongo", "lou": "creolă (Louisiana)", "loz": "lozi", "lrc": "luri de nord", "lt": "lituaniană", "lu": "luba-katanga", "lua": "luba-lulua", "lui": "luiseno", "lun": "lunda", "lus": "mizo", "luy": "luyia", "lv": "letonă", "mad": "madureză", "maf": "mafa", "mag": "magahi", "mai": "maithili", "mak": "makasar", "man": "mandingo", "mas": "masai", "mde": "maba", "mdf": "moksha", "mdr": "mandar", "men": "mende", "mer": "meru", "mfe": "morisyen", "mg": "malgașă", "mga": "irlandeză medie", "mgh": "makhuwa-meetto", "mgo": "meta’", "mh": "marshalleză", "mi": "maori", "mic": "micmac", "min": "minangkabau", "mk": "macedoneană", "ml": "malayalam", "mn": "mongolă", "mnc": "manciuriană", "mni": "manipuri", "moh": "mohawk", "mos": "mossi", "mr": "marathi", "ms": "malaeză", "mt": "malteză", "mua": "mundang", "mus": "creek", "mwl": "mirandeză", "mwr": "marwari", "my": "birmană", "mye": "myene", "myv": "erzya", "mzn": "mazanderani", "na": "nauru", "nan": "chineză min nan", "nap": "napolitană", "naq": "nama", "nb": "norvegiană bokmål", "nd": "ndebele de nord", "nds": "germana de jos", "nds-NL": "saxona de jos", "ne": "nepaleză", "new": "newari", "ng": "ndonga", "nia": "nias", "niu": "niueană", "nl": "neerlandeză", "nl-BE": "flamandă", "nmg": "kwasio", "nn": "norvegiană nynorsk", "nnh": "ngiemboon", "no": "norvegiană", "nog": "nogai", "non": "nordică veche", "nqo": "n’ko", "nr": "ndebele de sud", "nso": "sotho de nord", "nus": "nuer", "nv": "navajo", "nwc": "newari clasică", "ny": "nyanja", "nym": "nyamwezi", "nyn": "nyankole", "nyo": "nyoro", "nzi": "nzima", "oc": "occitană", "oj": "ojibwa", "om": "oromo", "or": "odia", "os": "osetă", "osa": "osage", "ota": "turcă otomană", "pa": "punjabi", "pag": "pangasinan", "pal": "pahlavi", "pam": "pampanga", "pap": "papiamento", "pau": "palauană", "pcm": "pidgin nigerian", "peo": "persană veche", "phn": "feniciană", "pi": "pali", "pl": "poloneză", "pon": "pohnpeiană", "prg": "prusacă", "pro": "provensală veche", "ps": "paștună", "pt": "portugheză", "pt-BR": "portugheză (Brazilia)", "pt-PT": "portugheză (Europa)", "qu": "quechua", "quc": "quiché", "raj": "rajasthani", "rap": "rapanui", "rar": "rarotongan", "rm": "romanșă", "rn": "kirundi", "ro": "română", "ro-MD": "română (Republica Moldova)", "rof": "rombo", "rom": "romani", "ru": "rusă", "rup": "aromână", "rw": "kinyarwanda", "rwk": "rwa", "sa": "sanscrită", "sad": "sandawe", "sah": "sakha", "sam": "aramaică samariteană", "saq": "samburu", "sas": "sasak", "sat": "santali", "sba": "ngambay", "sbp": "sangu", "sc": "sardiniană", "scn": "siciliană", "sco": "scots", "sd": "sindhi", "sdh": "kurdă de sud", "se": "sami de nord", "see": "seneca", "seh": "sena", "sel": "selkup", "ses": "koyraboro Senni", "sg": "sango", "sga": "irlandeză veche", "sh": "sârbo-croată", "shi": "tachelhit", "shn": "shan", "shu": "arabă ciadiană", "si": "singhaleză", "sid": "sidamo", "sk": "slovacă", "sl": "slovenă", "sm": "samoană", "sma": "sami de sud", "smj": "sami lule", "smn": "sami inari", "sms": "sami skolt", "sn": "shona", "snk": "soninke", "so": "somaleză", "sog": "sogdien", "sq": "albaneză", "sr": "sârbă", "srn": "sranan tongo", "srr": "serer", "ss": "swati", "ssy": "saho", "st": "sesotho", "su": "sundaneză", "suk": "sukuma", "sus": "susu", "sux": "sumeriană", "sv": "suedeză", "sw": "swahili", "sw-CD": "swahili (R.D. Congo)", "swb": "comoreză", "syc": "siriacă clasică", "syr": "siriacă", "ta": "tamilă", "te": "telugu", "tem": "timne", "teo": "teso", "ter": "tereno", "tet": "tetum", "tg": "tadjică", "th": "thailandeză", "ti": "tigrină", "tig": "tigre", "tk": "turkmenă", "tkl": "tokelau", "tl": "tagalog", "tlh": "klingoniană", "tli": "tlingit", "tmh": "tamashek", "tn": "setswana", "to": "tongană", "tog": "nyasa tonga", "tpi": "tok pisin", "tr": "turcă", "trv": "taroko", "ts": "tsonga", "tsi": "tsimshian", "tt": "tătară", "tum": "tumbuka", "tvl": "tuvalu", "tw": "twi", "twq": "tasawaq", "ty": "tahitiană", "tyv": "tuvană", "tzm": "tamazight din Altasul Central", "udm": "udmurt", "ug": "uigură", "uga": "ugaritică", "uk": "ucraineană", "umb": "umbundu", "ur": "urdu", "uz": "uzbecă", "ve": "venda", "vi": "vietnameză", "vo": "volapuk", "vot": "votică", "vun": "vunjo", "wa": "valonă", "wae": "walser", "wal": "wolaita", "war": "waray", "was": "washo", "wbp": "warlpiri", "wo": "wolof", "wuu": "chineză wu", "xal": "calmucă", "xh": "xhosa", "xog": "soga", "yap": "yapeză", "yav": "yangben", "ybb": "yemba", "yi": "idiș", "yo": "yoruba", "yue": "cantoneză", "za": "zhuang", "zap": "zapotecă", "zbl": "simboluri Bilss", "zen": "zenaga", "zgh": "tamazight standard marocană", "zh": "chineză", "zh-Hans": "chineză simplificată", "zh-Hant": "chineză tradițională", "zu": "zulu", "zun": "zuni", "zza": "zaza"}}, + "ru": {"rtl": false, "languageNames": {"aa": "афарский", "ab": "абхазский", "ace": "ачехский", "ach": "ачоли", "ada": "адангме", "ady": "адыгейский", "ae": "авестийский", "af": "африкаанс", "afh": "африхили", "agq": "агем", "ain": "айнский", "ak": "акан", "akk": "аккадский", "ale": "алеутский", "alt": "южноалтайский", "am": "амхарский", "an": "арагонский", "ang": "староанглийский", "anp": "ангика", "ar": "арабский", "ar-001": "литературный арабский", "arc": "арамейский", "arn": "мапуче", "arp": "арапахо", "ars": "недждийский арабский", "arw": "аравакский", "as": "ассамский", "asa": "асу", "ast": "астурийский", "av": "аварский", "awa": "авадхи", "ay": "аймара", "az": "азербайджанский", "ba": "башкирский", "bal": "белуджский", "ban": "балийский", "bas": "баса", "bax": "бамум", "bbj": "гомала", "be": "белорусский", "bej": "беджа", "bem": "бемба", "bez": "бена", "bfd": "бафут", "bg": "болгарский", "bgn": "западный белуджский", "bho": "бходжпури", "bi": "бислама", "bik": "бикольский", "bin": "бини", "bkm": "ком", "bla": "сиксика", "bm": "бамбара", "bn": "бенгальский", "bo": "тибетский", "br": "бретонский", "bra": "брауи", "brx": "бодо", "bs": "боснийский", "bss": "акоосе", "bua": "бурятский", "bug": "бугийский", "bum": "булу", "byn": "билин", "byv": "медумба", "ca": "каталанский", "cad": "каддо", "car": "кариб", "cay": "кайюга", "cch": "атсам", "ccp": "чакма", "ce": "чеченский", "ceb": "себуано", "cgg": "кига", "ch": "чаморро", "chb": "чибча", "chg": "чагатайский", "chk": "чукотский", "chm": "марийский", "chn": "чинук жаргон", "cho": "чоктавский", "chp": "чипевьян", "chr": "чероки", "chy": "шайенский", "ckb": "сорани", "co": "корсиканский", "cop": "коптский", "cr": "кри", "crh": "крымско-татарский", "crs": "сейшельский креольский", "cs": "чешский", "csb": "кашубский", "cu": "церковнославянский", "cv": "чувашский", "cy": "валлийский", "da": "датский", "dak": "дакота", "dar": "даргинский", "dav": "таита", "de": "немецкий", "de-AT": "австрийский немецкий", "de-CH": "литературный швейцарский немецкий", "del": "делаварский", "den": "слейви", "dgr": "догриб", "din": "динка", "dje": "джерма", "doi": "догри", "dsb": "нижнелужицкий", "dua": "дуала", "dum": "средненидерландский", "dv": "мальдивский", "dyo": "диола-фоньи", "dyu": "диула", "dz": "дзонг-кэ", "dzg": "даза", "ebu": "эмбу", "ee": "эве", "efi": "эфик", "egy": "древнеегипетский", "eka": "экаджук", "el": "греческий", "elx": "эламский", "en": "английский", "en-AU": "австралийский английский", "en-CA": "канадский английский", "en-GB": "британский английский", "en-US": "американский английский", "enm": "среднеанглийский", "eo": "эсперанто", "es": "испанский", "es-419": "латиноамериканский испанский", "es-ES": "европейский испанский", "es-MX": "мексиканский испанский", "et": "эстонский", "eu": "баскский", "ewo": "эвондо", "fa": "персидский", "fan": "фанг", "fat": "фанти", "ff": "фулах", "fi": "финский", "fil": "филиппинский", "fj": "фиджи", "fo": "фарерский", "fon": "фон", "fr": "французский", "fr-CA": "канадский французский", "fr-CH": "швейцарский французский", "frc": "каджунский французский", "frm": "среднефранцузский", "fro": "старофранцузский", "frr": "северный фризский", "frs": "восточный фризский", "fur": "фриульский", "fy": "западнофризский", "ga": "ирландский", "gaa": "га", "gag": "гагаузский", "gan": "гань", "gay": "гайо", "gba": "гбая", "gd": "гэльский", "gez": "геэз", "gil": "гилбертский", "gl": "галисийский", "gmh": "средневерхненемецкий", "gn": "гуарани", "goh": "древневерхненемецкий", "gon": "гонди", "gor": "горонтало", "got": "готский", "grb": "гребо", "grc": "древнегреческий", "gsw": "швейцарский немецкий", "gu": "гуджарати", "guz": "гусии", "gv": "мэнский", "gwi": "гвичин", "ha": "хауса", "hai": "хайда", "hak": "хакка", "haw": "гавайский", "he": "иврит", "hi": "хинди", "hil": "хилигайнон", "hit": "хеттский", "hmn": "хмонг", "ho": "хиримоту", "hr": "хорватский", "hsb": "верхнелужицкий", "hsn": "сян", "ht": "гаитянский", "hu": "венгерский", "hup": "хупа", "hy": "армянский", "hz": "гереро", "ia": "интерлингва", "iba": "ибанский", "ibb": "ибибио", "id": "индонезийский", "ie": "интерлингве", "ig": "игбо", "ii": "носу", "ik": "инупиак", "ilo": "илоко", "inh": "ингушский", "io": "идо", "is": "исландский", "it": "итальянский", "iu": "инуктитут", "ja": "японский", "jbo": "ложбан", "jgo": "нгомба", "jmc": "мачаме", "jpr": "еврейско-персидский", "jrb": "еврейско-арабский", "jv": "яванский", "ka": "грузинский", "kaa": "каракалпакский", "kab": "кабильский", "kac": "качинский", "kaj": "каджи", "kam": "камба", "kaw": "кави", "kbd": "кабардинский", "kbl": "канембу", "kcg": "тьяп", "kde": "маконде", "kea": "кабувердьяну", "kfo": "коро", "kg": "конго", "kha": "кхаси", "kho": "хотанский", "khq": "койра чиини", "ki": "кикуйю", "kj": "кунама", "kk": "казахский", "kkj": "како", "kl": "гренландский", "kln": "календжин", "km": "кхмерский", "kmb": "кимбунду", "kn": "каннада", "ko": "корейский", "koi": "коми-пермяцкий", "kok": "конкани", "kos": "косраенский", "kpe": "кпелле", "kr": "канури", "krc": "карачаево-балкарский", "krl": "карельский", "kru": "курух", "ks": "кашмири", "ksb": "шамбала", "ksf": "бафия", "ksh": "кёльнский", "ku": "курдский", "kum": "кумыкский", "kut": "кутенаи", "kv": "коми", "kw": "корнский", "ky": "киргизский", "la": "латинский", "lad": "ладино", "lag": "ланго", "lah": "лахнда", "lam": "ламба", "lb": "люксембургский", "lez": "лезгинский", "lg": "ганда", "li": "лимбургский", "lkt": "лакота", "ln": "лингала", "lo": "лаосский", "lol": "монго", "lou": "луизианский креольский", "loz": "лози", "lrc": "севернолурский", "lt": "литовский", "lu": "луба-катанга", "lua": "луба-лулуа", "lui": "луисеньо", "lun": "лунда", "luo": "луо", "lus": "мизо", "luy": "лухья", "lv": "латышский", "mad": "мадурский", "maf": "мафа", "mag": "магахи", "mai": "майтхили", "mak": "макассарский", "man": "мандинго", "mas": "масаи", "mde": "маба", "mdf": "мокшанский", "mdr": "мандарский", "men": "менде", "mer": "меру", "mfe": "маврикийский креольский", "mg": "малагасийский", "mga": "среднеирландский", "mgh": "макуа-меетто", "mgo": "мета", "mh": "маршалльский", "mi": "маори", "mic": "микмак", "min": "минангкабау", "mk": "македонский", "ml": "малаялам", "mn": "монгольский", "mnc": "маньчжурский", "mni": "манипурский", "moh": "мохаук", "mos": "моси", "mr": "маратхи", "ms": "малайский", "mt": "мальтийский", "mua": "мунданг", "mus": "крик", "mwl": "мирандский", "mwr": "марвари", "my": "бирманский", "mye": "миене", "myv": "эрзянский", "mzn": "мазендеранский", "na": "науру", "nan": "миньнань", "nap": "неаполитанский", "naq": "нама", "nb": "норвежский букмол", "nd": "северный ндебеле", "nds": "нижнегерманский", "nds-NL": "нижнесаксонский", "ne": "непальский", "new": "неварский", "ng": "ндонга", "nia": "ниас", "niu": "ниуэ", "nl": "нидерландский", "nl-BE": "фламандский", "nmg": "квасио", "nn": "нюнорск", "nnh": "нгиембунд", "no": "норвежский", "nog": "ногайский", "non": "старонорвежский", "nqo": "нко", "nr": "южный ндебеле", "nso": "северный сото", "nus": "нуэр", "nv": "навахо", "nwc": "классический невари", "ny": "ньянджа", "nym": "ньямвези", "nyn": "ньянколе", "nyo": "ньоро", "nzi": "нзима", "oc": "окситанский", "oj": "оджибва", "om": "оромо", "or": "ория", "os": "осетинский", "osa": "оседжи", "ota": "старотурецкий", "pa": "панджаби", "pag": "пангасинан", "pal": "пехлевийский", "pam": "пампанга", "pap": "папьяменто", "pau": "палау", "pcm": "нигерийско-креольский", "peo": "староперсидский", "phn": "финикийский", "pi": "пали", "pl": "польский", "pon": "понапе", "prg": "прусский", "pro": "старопровансальский", "ps": "пушту", "pt": "португальский", "pt-BR": "бразильский португальский", "pt-PT": "европейский португальский", "qu": "кечуа", "quc": "киче", "raj": "раджастхани", "rap": "рапануйский", "rar": "раротонга", "rm": "романшский", "rn": "рунди", "ro": "румынский", "ro-MD": "молдавский", "rof": "ромбо", "rom": "цыганский", "root": "праязык", "ru": "русский", "rup": "арумынский", "rw": "киньяруанда", "rwk": "руанда", "sa": "санскрит", "sad": "сандаве", "sah": "саха", "sam": "самаритянский арамейский", "saq": "самбуру", "sas": "сасакский", "sat": "сантали", "sba": "нгамбайский", "sbp": "сангу", "sc": "сардинский", "scn": "сицилийский", "sco": "шотландский", "sd": "синдхи", "sdh": "южнокурдский", "se": "северносаамский", "see": "сенека", "seh": "сена", "sel": "селькупский", "ses": "койраборо сенни", "sg": "санго", "sga": "староирландский", "sh": "сербскохорватский", "shi": "ташельхит", "shn": "шанский", "shu": "чадский арабский", "si": "сингальский", "sid": "сидама", "sk": "словацкий", "sl": "словенский", "sm": "самоанский", "sma": "южносаамский", "smj": "луле-саамский", "smn": "инари-саамский", "sms": "колтта-саамский", "sn": "шона", "snk": "сонинке", "so": "сомали", "sog": "согдийский", "sq": "албанский", "sr": "сербский", "srn": "сранан-тонго", "srr": "серер", "ss": "свази", "ssy": "сахо", "st": "южный сото", "su": "сунданский", "suk": "сукума", "sus": "сусу", "sux": "шумерский", "sv": "шведский", "sw": "суахили", "sw-CD": "конголезский суахили", "swb": "коморский", "syc": "классический сирийский", "syr": "сирийский", "ta": "тамильский", "te": "телугу", "tem": "темне", "teo": "тесо", "ter": "терено", "tet": "тетум", "tg": "таджикский", "th": "тайский", "ti": "тигринья", "tig": "тигре", "tiv": "тиви", "tk": "туркменский", "tkl": "токелайский", "tl": "тагалог", "tlh": "клингонский", "tli": "тлингит", "tmh": "тамашек", "tn": "тсвана", "to": "тонганский", "tog": "тонга", "tpi": "ток-писин", "tr": "турецкий", "tru": "туройо", "trv": "седекский", "ts": "тсонга", "tsi": "цимшиан", "tt": "татарский", "tum": "тумбука", "tvl": "тувалу", "tw": "тви", "twq": "тасавак", "ty": "таитянский", "tyv": "тувинский", "tzm": "среднеатласский тамазигхтский", "udm": "удмуртский", "ug": "уйгурский", "uga": "угаритский", "uk": "украинский", "umb": "умбунду", "ur": "урду", "uz": "узбекский", "vai": "ваи", "ve": "венда", "vi": "вьетнамский", "vo": "волапюк", "vot": "водский", "vun": "вунджо", "wa": "валлонский", "wae": "валлисский", "wal": "воламо", "war": "варай", "was": "вашо", "wbp": "вальбири", "wo": "волоф", "wuu": "ву", "xal": "калмыцкий", "xh": "коса", "xog": "сога", "yao": "яо", "yap": "яп", "yav": "янгбен", "ybb": "йемба", "yi": "идиш", "yo": "йоруба", "yue": "кантонский", "za": "чжуань", "zap": "сапотекский", "zbl": "блиссимволика", "zen": "зенагский", "zgh": "тамазигхтский", "zh": "китайский", "zh-Hans": "китайский, упрощенное письмо", "zh-Hant": "китайский, традиционное письмо", "zu": "зулу", "zun": "зуньи", "zza": "заза"}}, + "sc": {"rtl": false, "languageNames": {}}, + "si": {"rtl": false, "languageNames": {"aa": "අෆාර්", "ab": "ඇබ්කාසියානු", "ace": "අචයිනිස්", "ada": "අඩන්ග්මෙ", "ady": "අඩිඝෙ", "aeb": "ටියුනිසියනු අරාබි", "af": "අෆ්රිකාන්ස්", "agq": "ඇගම්", "ain": "අයිනු", "ak": "අකාන්", "ale": "ඇලුඑට්", "alt": "සතර්න් අල්ටය්", "am": "ඇම්හාරික්", "an": "ඇරගොනීස්", "anp": "අන්ගික", "ar": "අරාබි", "ar-001": "නූතන සම්මත අරාබි", "arn": "මපුචෙ", "arp": "ඇරපහො", "as": "ඇසෑම්", "asa": "අසු", "ast": "ඇස්ටියුරියන්", "av": "ඇවරික්", "awa": "අවදි", "ay": "අයිමරා", "az": "අසර්බයිජාන්", "ba": "බාෂ්කිර්", "ban": "බැලිනීස්", "bas": "බසා", "be": "බෙලරුසියානු", "bem": "බෙම්බා", "bez": "බෙනා", "bg": "බල්ගේරියානු", "bgn": "බටහිර බලොචි", "bho": "බොජ්පුරි", "bi": "බිස්ලමා", "bin": "බිනි", "bla": "සික්සිකා", "bm": "බම්බරා", "bn": "බෙංගාලි", "bo": "ටිබෙට්", "br": "බ්‍රේටොන්", "brx": "බොඩො", "bs": "බොස්නියානු", "bug": "බුගිනීස්", "byn": "බ්ලින්", "ca": "කැටලන්", "ce": "චෙච්නියානු", "ceb": "සෙබුඅනො", "cgg": "චිගා", "ch": "චමොරො", "chk": "චූකීස්", "chm": "මරි", "cho": "චොක්ටොව්", "chr": "චෙරොකී", "chy": "චෙයෙන්නෙ", "ckb": "සොරානි කුර්දිෂ්", "co": "කෝසිකානු", "crs": "සෙසෙල්ව ක්‍රොල් ෆ්‍රෙන්ච්", "cs": "චෙක්", "cu": "චර්ච් ස්ලැවික්", "cv": "චවේෂ්", "cy": "වෙල්ෂ්", "da": "ඩැනිශ්", "dak": "ඩකොටා", "dar": "ඩාර්ග්වා", "dav": "ටයිටා", "de": "ජර්මන්", "de-AT": "ඔස්ට්‍රියානු ජර්මන්", "de-CH": "ස්විස් උසස් ජර්මන්", "dgr": "ඩොග්‍රිබ්", "dje": "සර්මා", "dsb": "පහළ සෝබියානු", "dua": "ඩුආලා", "dv": "ඩිවෙහි", "dyo": "ජොල-ෆෝනියි", "dz": "ඩිසොන්කා", "dzg": "ඩසාගා", "ebu": "එම්බු", "ee": "ඉව්", "efi": "එෆික්", "eka": "එකජුක්", "el": "ග්‍රීක", "en": "ඉංග්‍රීසි", "en-AU": "ඕස්ට්‍රේලියානු ඉංග්‍රීසි", "en-CA": "කැනේඩියානු ඉංග්‍රීසි", "en-GB": "බ්‍රිතාන්‍ය ඉංග්‍රීසි", "en-US": "ඇමෙරිකානු ඉංග්‍රීසි", "eo": "එස්පැරන්ටෝ", "es": "ස්පාඤ්ඤ", "es-419": "ලතින් ඇමරිකානු ස්පාඤ්ඤ", "es-ES": "යුරෝපීය ස්පාඤ්ඤ", "es-MX": "මෙක්සිකානු ස්පාඤ්ඤ", "et": "එස්තෝනියානු", "eu": "බාස්ක්", "ewo": "එවොන්ඩො", "fa": "පර්සියානු", "ff": "ෆුලාහ්", "fi": "ෆින්ලන්ත", "fil": "පිලිපීන", "fj": "ෆීජි", "fo": "ෆාරෝස්", "fon": "ෆොන්", "fr": "ප්‍රංශ", "fr-CA": "කැනේඩියානු ප්‍රංශ", "fr-CH": "ස්විස් ප්‍රංශ", "fur": "ෆ්‍රියුලියන්", "fy": "බටහිර ෆ්‍රිසියානු", "ga": "අයර්ලන්ත", "gaa": "ගා", "gag": "ගගාස්", "gan": "ගැන් චයිනිස්", "gd": "ස්කොට්ටිශ් ගෙලික්", "gez": "ගීස්", "gil": "ගිල්බර්ටීස්", "gl": "ගැලීසියානු", "gn": "ගුවාරනි", "gor": "ගොරොන්ටාලො", "gsw": "ස්විස් ජර්මානු", "gu": "ගුජරාටි", "guz": "ගුසී", "gv": "මැන්ක්ස්", "gwi": "ග්විචින්", "ha": "හෝසා", "hak": "හකා චයිනිස්", "haw": "හවායි", "he": "හීබෲ", "hi": "හින්දි", "hil": "හිලිගෙනන්", "hmn": "මොන්ග්", "hr": "කෝඒෂියානු", "hsb": "ඉහළ සෝබියානු", "hsn": "සියැන් චීන", "ht": "හයිටි", "hu": "හන්ගේරියානු", "hup": "හුපා", "hy": "ආර්මේනියානු", "hz": "හෙරෙරො", "ia": "ඉන්ටලින්ගුආ", "iba": "ඉබන්", "ibb": "ඉබිබියො", "id": "ඉන්දුනීසියානු", "ig": "ඉග්බෝ", "ii": "සිචුආන් යී", "ilo": "ඉලොකො", "inh": "ඉන්ගුෂ්", "io": "ඉඩො", "is": "අයිස්ලන්ත", "it": "ඉතාලි", "iu": "ඉනුක්ටිටුට්", "ja": "ජපන්", "jbo": "ලොජ්බන්", "jgo": "නොම්බා", "jmc": "මැකාමී", "jv": "ජාවා", "ka": "ජෝර්ජියානු", "kab": "කාබිල්", "kac": "කචින්", "kaj": "ජ්ජු", "kam": "කැම්බා", "kbd": "කබාර්ඩියන්", "kcg": "ට්යප්", "kde": "මැකොන්ඩ්", "kea": "කබුවෙර්ඩියානු", "kfo": "කොරො", "kha": "ඛසි", "khq": "කොයිරා චිනි", "ki": "කිකුයු", "kj": "කුයන්යමා", "kk": "කසාඛ්", "kkj": "කකො", "kl": "කලාලිසට්", "kln": "කලෙන්ජන්", "km": "කමර්", "kmb": "කිම්බුන්ඩු", "kn": "කණ්ණඩ", "ko": "කොරියානු", "koi": "කොමි-පර්මියාක්", "kok": "කොන්කනි", "kpe": "ක්පෙලෙ", "kr": "කනුරි", "krc": "කරන්චි-බාකර්", "krl": "කැරෙලියන්", "kru": "කුරුඛ්", "ks": "කාෂ්මීර්", "ksb": "ශාම්බලා", "ksf": "බාෆියා", "ksh": "කොලොග්නියන්", "ku": "කුර්දි", "kum": "කුමික්", "kv": "කොමි", "kw": "කෝනීසියානු", "ky": "කිර්ගිස්", "la": "ලතින්", "lad": "ලඩිනො", "lag": "ලංගි", "lb": "ලක්සැම්බර්ග්", "lez": "ලෙස්ගියන්", "lg": "ගන්ඩා", "li": "ලිම්බර්ගිශ්", "lkt": "ලකොට", "ln": "ලින්ගලා", "lo": "ලාඕ", "loz": "ලොසි", "lrc": "උතුරු ලුරි", "lt": "ලිතුවේනියානු", "lu": "ලුබා-කටන්ගා", "lua": "ලුබ-ලුලුඅ", "lun": "ලුන්ඩ", "luo": "ලුඔ", "lus": "මිසො", "luy": "ලුයියා", "lv": "ලැට්වියානු", "mad": "මදුරීස්", "mag": "මඝහි", "mai": "මයිතිලි", "mak": "මකාසාර්", "mas": "මසායි", "mdf": "මොක්ශා", "men": "මෙන්ඩෙ", "mer": "මෙරු", "mfe": "මොරිස්යෙම්", "mg": "මලගාසි", "mgh": "මඛුවා-මීටෝ", "mgo": "මෙටා", "mh": "මාශලීස්", "mi": "මාවොරි", "mic": "මික්මැක්", "min": "මිනන්ග්කබාවු", "mk": "මැසිඩෝනියානු", "ml": "මලයාලම්", "mn": "මොංගෝලියානු", "mni": "මනිපුරි", "moh": "මොහොව්ක්", "mos": "මොස්සි", "mr": "මරාති", "ms": "මැලේ", "mt": "මොල්ටිස්", "mua": "මුන්ඩන්", "mus": "ක්‍රීක්", "mwl": "මිරන්ඩීස්", "my": "බුරුම", "myv": "එර්ස්යා", "mzn": "මැසන්ඩරනි", "na": "නෞරු", "nan": "මින් නන් චයිනිස්", "nap": "නියාපොලිටන්", "naq": "නාමා", "nb": "නෝර්වීජියානු බොක්මල්", "nd": "උතුරු එන්ඩිබෙලෙ", "nds": "පහළ ජර්මන්", "nds-NL": "පහළ සැක්සන්", "ne": "නේපාල", "new": "නෙවාරි", "ng": "න්ඩොන්ගා", "nia": "නියාස්", "niu": "නියුඑන්", "nl": "ලන්දේසි", "nl-BE": "ෆ්ලෙමිශ්", "nmg": "කුවාසිඔ", "nn": "නෝර්වීජියානු නයිනෝර්ස්ක්", "nnh": "න්ගියාම්බූන්", "nog": "නොගායි", "nqo": "එන්‘කෝ", "nr": "සෞත් ඩ්බේල්", "nso": "නොදර්න් සොතො", "nus": "නොයර්", "nv": "නවාජො", "ny": "න්යන්ජා", "nyn": "නයන්කෝලෙ", "oc": "ඔසිටාන්", "om": "ඔරොමෝ", "or": "ඔඩියා", "os": "ඔසිටෙක්", "pa": "පන්ජාබි", "pag": "පන්ගසීනන්", "pam": "පන්පන්ග", "pap": "පපියමෙන්ටො", "pau": "පලවුවන්", "pcm": "නෛජීරියන් පෙන්ගින්", "pl": "පෝලන්ත", "prg": "පෘශියන්", "ps": "පෂ්ටො", "pt": "පෘතුගීසි", "pt-BR": "බ්‍රසීල පෘතුගීසි", "pt-PT": "යුරෝපීය පෘතුගීසි", "qu": "ක්වීචුවා", "quc": "කියිචේ", "rap": "රපනුයි", "rar": "රරොටොන්ගන්", "rm": "රොමෑන්ශ්", "rn": "රුන්ඩි", "ro": "රොමේනියානු", "ro-MD": "මොල්ඩවිආනු", "rof": "රෝම්බෝ", "root": "රූට්", "ru": "රුසියානු", "rup": "ඇරොමානියානු", "rw": "කින්යර්වන්ඩා", "rwk": "ර්වා", "sa": "සංස්කෘත", "sad": "සන්ඩවෙ", "sah": "සඛා", "saq": "සම්බුරු", "sat": "සෑන්ටලි", "sba": "න්ගම්බෙ", "sbp": "සංගු", "sc": "සාර්ඩිනිඅන්", "scn": "සිසිලියන්", "sco": "ස්කොට්ස්", "sd": "සින්ධි", "sdh": "දකුණු කුර්දි", "se": "උතුරු සාමි", "seh": "සෙනා", "ses": "කෝයිරාබොරො සෙන්නි", "sg": "සන්ග්‍රෝ", "shi": "ටචේල්හිට්", "shn": "ශාන්", "si": "සිංහල", "sk": "ස්ලෝවැක්", "sl": "ස්ලෝවේනියානු", "sm": "සෑමොඅන්", "sma": "දකුණු සාමි", "smj": "ලුලේ සාමි", "smn": "ඉනාරි සාමි", "sms": "ස්කොල්ට් සාමි", "sn": "ශෝනා", "snk": "සොනින්කෙ", "so": "සෝමාලි", "sq": "ඇල්බේනියානු", "sr": "සර්බියානු", "srn": "ස්‍රන් ටොන්ගො", "ss": "ස්වති", "ssy": "සහො", "st": "සතර්න් සොතො", "su": "සන්ඩනීසියානු", "suk": "සුකුමා", "sv": "ස්වීඩන්", "sw": "ස්වාහිලි", "sw-CD": "කොංගෝ ස්වාහිලි", "swb": "කොමොරියන්", "syr": "ස්‍රයෑක්", "ta": "දෙමළ", "te": "තෙළිඟු", "tem": "ටිම්නෙ", "teo": "ටෙසෝ", "tet": "ටේටම්", "tg": "ටජික්", "th": "තායි", "ti": "ටිග්‍රින්යා", "tig": "ටීග්‍රෙ", "tk": "ටර්ක්මෙන්", "tlh": "ක්ලින්ගොන්", "tn": "ස්වනා", "to": "ටොංගා", "tpi": "ටොක් පිසින්", "tr": "තුර්කි", "trv": "ටරොකො", "ts": "සොන්ග", "tt": "ටාටර්", "tum": "ටුම්බුකා", "tvl": "ටුවාලු", "twq": "ටසවාක්", "ty": "ටහිටියන්", "tyv": "ටුවිනියන්", "tzm": "මධ්‍යම ඇට්ලස් ටමසිට්", "udm": "අඩ්මර්ට්", "ug": "උයිගර්", "uk": "යුක්රේනියානු", "umb": "උබුන්ඩු", "ur": "උර්දු", "uz": "උස්බෙක්", "vai": "වයි", "ve": "වෙන්ඩා", "vi": "වියට්නාම්", "vo": "වොලපූක්", "vun": "වුන්ජෝ", "wa": "වෑලූන්", "wae": "වොල්සර්", "wal": "වොලෙට්ට", "war": "වොරෙය්", "wbp": "වොපිරි", "wo": "වොලොෆ්", "wuu": "වූ චයිනිස්", "xal": "කල්මික්", "xh": "ශෝසා", "xog": "සොගා", "yav": "යන්ග්බෙන්", "ybb": "යෙම්බා", "yi": "යිඩිශ්", "yo": "යොරූබා", "yue": "කැන්ටොනීස්", "zgh": "සම්මත මොරොක්කෝ ටමසිග්ත්", "zh": "චීන", "zh-Hans": "සරල චීන", "zh-Hant": "සාම්ප්‍රදායික චීන", "zu": "සුලු", "zun": "සුනි", "zza": "සාසා"}}, + "sk": {"rtl": false, "languageNames": {"aa": "afarčina", "ab": "abcházčina", "ace": "acehčina", "ach": "ačoli", "ada": "adangme", "ady": "adygejčina", "ae": "avestčina", "af": "afrikánčina", "afh": "afrihili", "agq": "aghem", "ain": "ainčina", "ak": "akančina", "akk": "akkadčina", "ale": "aleutčina", "alt": "južná altajčina", "am": "amharčina", "an": "aragónčina", "ang": "stará angličtina", "anp": "angika", "ar": "arabčina", "ar-001": "arabčina (moderná štandardná)", "arc": "aramejčina", "arn": "mapudungun", "arp": "arapažština", "ars": "arabčina (nadždská)", "arw": "arawačtina", "as": "ásamčina", "asa": "asu", "ast": "astúrčina", "av": "avarčina", "awa": "awadhi", "ay": "aymarčina", "az": "azerbajdžančina", "ba": "baškirčina", "bal": "balúčtina", "ban": "balijčina", "bas": "basa", "bax": "bamun", "bbj": "ghomala", "be": "bieloruština", "bej": "bedža", "bem": "bemba", "bez": "bena", "bfd": "bafut", "bg": "bulharčina", "bgn": "západná balúčtina", "bho": "bhódžpurčina", "bi": "bislama", "bik": "bikolčina", "bin": "bini", "bkm": "kom", "bla": "siksika", "bm": "bambarčina", "bn": "bengálčina", "bo": "tibetčina", "br": "bretónčina", "bra": "bradžčina", "brx": "bodo", "bs": "bosniačtina", "bss": "akoose", "bua": "buriatčina", "bug": "bugiština", "bum": "bulu", "byn": "blin", "byv": "medumba", "ca": "katalánčina", "cad": "kaddo", "car": "karibčina", "cay": "kajugčina", "cch": "atsam", "ce": "čečenčina", "ceb": "cebuánčina", "cgg": "kiga", "ch": "čamorčina", "chb": "čibča", "chg": "čagatajčina", "chk": "chuuk", "chm": "marijčina", "chn": "činucký žargón", "cho": "čoktčina", "chp": "čipevajčina", "chr": "čerokí", "chy": "čejenčina", "ckb": "kurdčina (sorání)", "co": "korzičtina", "cop": "koptčina", "cr": "krí", "crh": "krymská tatárčina", "crs": "seychelská kreolčina", "cs": "čeština", "csb": "kašubčina", "cu": "cirkevná slovančina", "cv": "čuvaština", "cy": "waleština", "da": "dánčina", "dak": "dakotčina", "dar": "darginčina", "dav": "taita", "de": "nemčina", "de-AT": "nemčina (rakúska)", "de-CH": "nemčina (švajčiarska spisovná)", "del": "delawarčina", "den": "slavé", "dgr": "dogribčina", "din": "dinkčina", "dje": "zarma", "doi": "dógrí", "dsb": "dolnolužická srbčina", "dua": "duala", "dum": "stredná holandčina", "dv": "maldivčina", "dyo": "jola-fonyi", "dyu": "ďula", "dz": "dzongkha", "dzg": "dazaga", "ebu": "embu", "ee": "eweština", "efi": "efik", "egy": "staroegyptčina", "eka": "ekadžuk", "el": "gréčtina", "elx": "elamčina", "en": "angličtina", "en-AU": "angličtina (austrálska)", "en-CA": "angličtina (kanadská)", "en-GB": "angličtina (britská)", "en-US": "angličtina (americká)", "enm": "stredná angličtina", "eo": "esperanto", "es": "španielčina", "es-419": "španielčina (latinskoamerická)", "es-ES": "španielčina (európska)", "es-MX": "španielčina (mexická)", "et": "estónčina", "eu": "baskičtina", "ewo": "ewondo", "fa": "perzština", "fan": "fangčina", "fat": "fanti", "ff": "fulbčina", "fi": "fínčina", "fil": "filipínčina", "fj": "fidžijčina", "fo": "faerčina", "fon": "fončina", "fr": "francúzština", "fr-CA": "francúzština (kanadská)", "fr-CH": "francúzština (švajčiarska)", "frc": "francúzština (Cajun)", "frm": "stredná francúzština", "fro": "stará francúzština", "frr": "severná frízština", "frs": "východofrízština", "fur": "friulčina", "fy": "západná frízština", "ga": "írčina", "gaa": "ga", "gag": "gagauzština", "gay": "gayo", "gba": "gbaja", "gd": "škótska gaelčina", "gez": "etiópčina", "gil": "kiribatčina", "gl": "galícijčina", "gmh": "stredná horná nemčina", "gn": "guaraníjčina", "goh": "stará horná nemčina", "gon": "góndčina", "gor": "gorontalo", "got": "gótčina", "grb": "grebo", "grc": "starogréčtina", "gsw": "nemčina (švajčiarska)", "gu": "gudžarátčina", "guz": "gusii", "gv": "mančina", "gwi": "kučinčina", "ha": "hauština", "hai": "haida", "haw": "havajčina", "he": "hebrejčina", "hi": "hindčina", "hil": "hiligajnončina", "hit": "chetitčina", "hmn": "hmongčina", "ho": "hiri motu", "hr": "chorvátčina", "hsb": "hornolužická srbčina", "ht": "haitská kreolčina", "hu": "maďarčina", "hup": "hupčina", "hy": "arménčina", "hz": "herero", "ia": "interlingua", "iba": "ibančina", "ibb": "ibibio", "id": "indonézština", "ie": "interlingue", "ig": "igboština", "ii": "s’čchuanská iovčina", "ik": "inupik", "ilo": "ilokánčina", "inh": "inguština", "io": "ido", "is": "islandčina", "it": "taliančina", "iu": "inuktitut", "ja": "japončina", "jbo": "lojban", "jgo": "ngomba", "jmc": "mašame", "jpr": "židovská perzština", "jrb": "židovská arabčina", "jv": "jávčina", "ka": "gruzínčina", "kaa": "karakalpačtina", "kab": "kabylčina", "kac": "kačjinčina", "kaj": "jju", "kam": "kamba", "kaw": "kawi", "kbd": "kabardčina", "kbl": "kanembu", "kcg": "tyap", "kde": "makonde", "kea": "kapverdčina", "kfo": "koro", "kg": "kongčina", "kha": "khasijčina", "kho": "chotančina", "khq": "západná songhajčina", "ki": "kikujčina", "kj": "kuaňama", "kk": "kazaština", "kkj": "kako", "kl": "grónčina", "kln": "kalendžin", "km": "khmérčina", "kmb": "kimbundu", "kn": "kannadčina", "ko": "kórejčina", "koi": "komi-permiačtina", "kok": "konkánčina", "kos": "kusaie", "kpe": "kpelle", "kr": "kanurijčina", "krc": "karačajevsko-balkarčina", "krl": "karelčina", "kru": "kuruchčina", "ks": "kašmírčina", "ksb": "šambala", "ksf": "bafia", "ksh": "kolínčina", "ku": "kurdčina", "kum": "kumyčtina", "kut": "kutenajčina", "kv": "komijčina", "kw": "kornčina", "ky": "kirgizština", "la": "latinčina", "lad": "židovská španielčina", "lag": "langi", "lah": "lahandčina", "lam": "lamba", "lb": "luxemburčina", "lez": "lezginčina", "lg": "gandčina", "li": "limburčina", "lkt": "lakotčina", "ln": "lingalčina", "lo": "laoština", "lol": "mongo", "lou": "kreolčina (Louisiana)", "loz": "lozi", "lrc": "severné luri", "lt": "litovčina", "lu": "lubčina (katanžská)", "lua": "lubčina (luluánska)", "lui": "luiseňo", "lun": "lunda", "lus": "mizorámčina", "luy": "luhja", "lv": "lotyština", "mad": "madurčina", "maf": "mafa", "mag": "magadhčina", "mai": "maithilčina", "mak": "makasarčina", "man": "mandingo", "mas": "masajčina", "mde": "maba", "mdf": "mokšiančina", "mdr": "mandarčina", "men": "mendejčina", "mer": "meru", "mfe": "maurícijská kreolčina", "mg": "malgaština", "mga": "stredná írčina", "mgh": "makua-meetto", "mgo": "meta’", "mh": "marshallčina", "mi": "maorijčina", "mic": "mikmakčina", "min": "minangkabaučina", "mk": "macedónčina", "ml": "malajálamčina", "mn": "mongolčina", "mnc": "mandžuština", "mni": "manípurčina", "moh": "mohawkčina", "mos": "mossi", "mr": "maráthčina", "ms": "malajčina", "mt": "maltčina", "mua": "mundang", "mus": "kríkčina", "mwl": "mirandčina", "mwr": "marwari", "my": "barmčina", "mye": "myene", "myv": "erzjančina", "mzn": "mázandaránčina", "na": "nauruština", "nap": "neapolčina", "naq": "nama", "nb": "nórčina (bokmal)", "nd": "ndebelčina (severná)", "nds": "dolná nemčina", "nds-NL": "dolná saština", "ne": "nepálčina", "new": "nevárčina", "ng": "ndonga", "nia": "niasánčina", "niu": "niueština", "nl": "holandčina", "nl-BE": "flámčina", "nmg": "kwasio", "nn": "nórčina (nynorsk)", "nnh": "ngiemboon", "no": "nórčina", "nog": "nogajčina", "non": "stará nórčina", "nqo": "n’ko", "nr": "ndebelčina (južná)", "nso": "sothčina (severná)", "nus": "nuer", "nv": "navaho", "nwc": "klasická nevárčina", "ny": "ňandža", "nym": "ňamwezi", "nyn": "ňankole", "nyo": "ňoro", "nzi": "nzima", "oc": "okcitánčina", "oj": "odžibva", "om": "oromčina", "or": "uríjčina", "os": "osetčina", "osa": "osedžština", "ota": "osmanská turečtina", "pa": "pandžábčina", "pag": "pangasinančina", "pal": "pahlaví", "pam": "kapampangančina", "pap": "papiamento", "pau": "palaučina", "pcm": "nigerijský pidžin", "peo": "stará perzština", "phn": "feničtina", "pi": "pálí", "pl": "poľština", "pon": "pohnpeiština", "prg": "pruština", "pro": "stará okcitánčina", "ps": "paštčina", "pt": "portugalčina", "pt-BR": "portugalčina (brazílska)", "pt-PT": "portugalčina (európska)", "qu": "kečuánčina", "quc": "quiché", "raj": "radžastančina", "rap": "rapanujčina", "rar": "rarotongská maorijčina", "rm": "rétorománčina", "rn": "rundčina", "ro": "rumunčina", "ro-MD": "moldavčina", "rof": "rombo", "rom": "rómčina", "root": "koreň", "ru": "ruština", "rup": "arumunčina", "rw": "rwandčina", "rwk": "rwa", "sa": "sanskrit", "sad": "sandaweština", "sah": "jakutčina", "sam": "samaritánska aramejčina", "saq": "samburu", "sas": "sasačtina", "sat": "santalčina", "sba": "ngambay", "sbp": "sangu", "sc": "sardínčina", "scn": "sicílčina", "sco": "škótčina", "sd": "sindhčina", "sdh": "južná kurdčina", "se": "saamčina (severná)", "see": "senekčina", "seh": "sena", "sel": "selkupčina", "ses": "koyraboro senni", "sg": "sango", "sga": "stará írčina", "sh": "srbochorvátčina", "shi": "tachelhit", "shn": "šančina", "shu": "čadská arabčina", "si": "sinhalčina", "sid": "sidamo", "sk": "slovenčina", "sl": "slovinčina", "sm": "samojčina", "sma": "saamčina (južná)", "smj": "saamčina (lulská)", "smn": "saamčina (inarijská)", "sms": "saamčina (skoltská)", "sn": "šončina", "snk": "soninke", "so": "somálčina", "sog": "sogdijčina", "sq": "albánčina", "sr": "srbčina", "srn": "surinamčina", "srr": "sererčina", "ss": "svazijčina", "ssy": "saho", "st": "sothčina (južná)", "su": "sundčina", "suk": "sukuma", "sus": "susu", "sux": "sumerčina", "sv": "švédčina", "sw": "swahilčina", "sw-CD": "svahilčina (konžská)", "swb": "komorčina", "syc": "sýrčina (klasická)", "syr": "sýrčina", "ta": "tamilčina", "te": "telugčina", "tem": "temne", "teo": "teso", "ter": "terêna", "tet": "tetumčina", "tg": "tadžičtina", "th": "thajčina", "ti": "tigriňa", "tig": "tigrejčina", "tk": "turkménčina", "tkl": "tokelauština", "tl": "tagalčina", "tlh": "klingónčina", "tli": "tlingitčina", "tmh": "tuaregčina", "tn": "tswančina", "to": "tongčina", "tog": "ňasa tonga", "tpi": "novoguinejský pidžin", "tr": "turečtina", "trv": "taroko", "ts": "tsongčina", "tsi": "cimšjančina", "tt": "tatárčina", "tum": "tumbuka", "tvl": "tuvalčina", "tw": "twi", "twq": "tasawaq", "ty": "tahitčina", "tyv": "tuviančina", "tzm": "tuaregčina (stredomarocká)", "udm": "udmurtčina", "ug": "ujgurčina", "uga": "ugaritčina", "uk": "ukrajinčina", "umb": "umbundu", "ur": "urdčina", "uz": "uzbečtina", "ve": "vendčina", "vi": "vietnamčina", "vo": "volapük", "vot": "vodčina", "vun": "vunjo", "wa": "valónčina", "wae": "walserčina", "wal": "walamčina", "war": "waray", "was": "washo", "wbp": "warlpiri", "wo": "wolofčina", "xal": "kalmyčtina", "xh": "xhoština", "xog": "soga", "yao": "jao", "yap": "japčina", "yav": "jangben", "ybb": "yemba", "yi": "jidiš", "yo": "jorubčina", "yue": "kantončina", "za": "čuangčina", "zap": "zapotéčtina", "zbl": "systém Bliss", "zen": "zenaga", "zgh": "tuaregčina (štandardná marocká)", "zh": "čínština", "zh-Hans": "čínština (zjednodušená)", "zh-Hant": "čínština (tradičná)", "zu": "zuluština", "zun": "zuniština", "zza": "zaza"}}, + "sl": {"rtl": false, "languageNames": {"aa": "afarščina", "ab": "abhaščina", "ace": "ačejščina", "ach": "ačolijščina", "ada": "adangmejščina", "ady": "adigejščina", "ae": "avestijščina", "af": "afrikanščina", "afh": "afrihili", "agq": "aghemščina", "ain": "ainujščina", "ak": "akanščina", "akk": "akadščina", "ale": "aleutščina", "alt": "južna altajščina", "am": "amharščina", "an": "aragonščina", "ang": "stara angleščina", "anp": "angikaščina", "ar": "arabščina", "ar-001": "sodobna standardna arabščina", "arc": "aramejščina", "arn": "mapudungunščina", "arp": "arapaščina", "arw": "aravaščina", "as": "asamščina", "asa": "asujščina", "ast": "asturijščina", "av": "avarščina", "awa": "avadščina", "ay": "ajmarščina", "az": "azerbajdžanščina", "ba": "baškirščina", "bal": "beludžijščina", "ban": "balijščina", "bas": "basa", "be": "beloruščina", "bej": "bedža", "bem": "bemba", "bez": "benajščina", "bg": "bolgarščina", "bgn": "zahodnobalučijščina", "bho": "bodžpuri", "bi": "bislamščina", "bik": "bikolski jezik", "bin": "edo", "bla": "siksika", "bm": "bambarščina", "bn": "bengalščina", "bo": "tibetanščina", "br": "bretonščina", "bra": "bradžbakanščina", "brx": "bodojščina", "bs": "bosanščina", "bua": "burjatščina", "bug": "buginščina", "byn": "blinščina", "ca": "katalonščina", "cad": "kadoščina", "car": "karibski jezik", "ccp": "chakma", "ce": "čečenščina", "ceb": "sebuanščina", "cgg": "čigajščina", "ch": "čamorščina", "chb": "čibčevščina", "chg": "čagatajščina", "chk": "trukeščina", "chm": "marijščina", "chn": "činuški žargon", "cho": "čoktavščina", "chp": "čipevščina", "chr": "čerokeščina", "chy": "čejenščina", "ckb": "soranska kurdščina", "co": "korziščina", "cop": "koptščina", "cr": "krijščina", "crh": "krimska tatarščina", "crs": "sejšelska francoska kreolščina", "cs": "češčina", "csb": "kašubščina", "cu": "stara cerkvena slovanščina", "cv": "čuvaščina", "cy": "valižanščina", "da": "danščina", "dak": "dakotščina", "dar": "darginščina", "dav": "taitajščina", "de": "nemščina", "de-AT": "avstrijska nemščina", "de-CH": "visoka nemščina (Švica)", "del": "delavarščina", "den": "slavejščina", "dgr": "dogrib", "din": "dinka", "dje": "zarmajščina", "doi": "dogri", "dsb": "dolnja lužiška srbščina", "dua": "duala", "dum": "srednja nizozemščina", "dv": "diveščina", "dyo": "jola-fonjiščina", "dyu": "diula", "dz": "dzonka", "dzg": "dazaga", "ebu": "embujščina", "ee": "evenščina", "efi": "efiščina", "egy": "stara egipčanščina", "eka": "ekajuk", "el": "grščina", "elx": "elamščina", "en": "angleščina", "en-AU": "avstralska angleščina", "en-CA": "kanadska angleščina", "en-GB": "angleščina (VB)", "en-US": "angleščina (ZDA)", "enm": "srednja angleščina", "eo": "esperanto", "es": "španščina", "es-419": "španščina (Latinska Amerika)", "es-ES": "evropska španščina", "es-MX": "mehiška španščina", "et": "estonščina", "eu": "baskovščina", "ewo": "evondovščina", "fa": "perzijščina", "fan": "fangijščina", "fat": "fantijščina", "ff": "fulščina", "fi": "finščina", "fil": "filipinščina", "fj": "fidžijščina", "fo": "ferščina", "fon": "fonščina", "fr": "francoščina", "fr-CA": "kanadska francoščina", "fr-CH": "švicarska francoščina", "frc": "cajunska francoščina", "frm": "srednja francoščina", "fro": "stara francoščina", "frr": "severna frizijščina", "frs": "vzhodna frizijščina", "fur": "furlanščina", "fy": "zahodna frizijščina", "ga": "irščina", "gaa": "ga", "gag": "gagavščina", "gay": "gajščina", "gba": "gbajščina", "gd": "škotska gelščina", "gez": "etiopščina", "gil": "kiribatščina", "gl": "galicijščina", "gmh": "srednja visoka nemščina", "gn": "gvaranijščina", "goh": "stara visoka nemščina", "gon": "gondi", "gor": "gorontalščina", "got": "gotščina", "grb": "grebščina", "grc": "stara grščina", "gsw": "nemščina (Švica)", "gu": "gudžaratščina", "guz": "gusijščina", "gv": "manščina", "gwi": "gvičin", "ha": "havščina", "hai": "haidščina", "haw": "havajščina", "he": "hebrejščina", "hi": "hindujščina", "hil": "hiligajnonščina", "hit": "hetitščina", "hmn": "hmonščina", "ho": "hiri motu", "hr": "hrvaščina", "hsb": "gornja lužiška srbščina", "ht": "haitijska kreolščina", "hu": "madžarščina", "hup": "hupa", "hy": "armenščina", "hz": "herero", "ia": "interlingva", "iba": "ibanščina", "ibb": "ibibijščina", "id": "indonezijščina", "ie": "interlingve", "ig": "igboščina", "ii": "sečuanska jiščina", "ik": "inupiaščina", "ilo": "ilokanščina", "inh": "inguščina", "io": "ido", "is": "islandščina", "it": "italijanščina", "iu": "inuktitutščina", "ja": "japonščina", "jbo": "lojban", "jgo": "ngomba", "jmc": "mačamejščina", "jpr": "judovska perzijščina", "jrb": "judovska arabščina", "jv": "javanščina", "ka": "gruzijščina", "kaa": "karakalpaščina", "kab": "kabilščina", "kac": "kačinščina", "kaj": "jju", "kam": "kambaščina", "kaw": "kavi", "kbd": "kabardinščina", "kcg": "tjapska nigerijščina", "kde": "makondščina", "kea": "zelenortskootoška kreolščina", "kfo": "koro", "kg": "kongovščina", "kha": "kasi", "kho": "kotanščina", "khq": "koyra chiini", "ki": "kikujščina", "kj": "kvanjama", "kk": "kazaščina", "kkj": "kako", "kl": "grenlandščina", "kln": "kalenjinščina", "km": "kmerščina", "kmb": "kimbundu", "kn": "kanareščina", "ko": "korejščina", "koi": "komi-permjaščina", "kok": "konkanščina", "kos": "kosrajščina", "kpe": "kpelejščina", "kr": "kanurščina", "krc": "karačaj-balkarščina", "krl": "karelščina", "kru": "kuruk", "ks": "kašmirščina", "ksb": "šambala", "ksf": "bafia", "ksh": "kölnsko narečje", "ku": "kurdščina", "kum": "kumiščina", "kut": "kutenajščina", "kv": "komijščina", "kw": "kornijščina", "ky": "kirgiščina", "la": "latinščina", "lad": "ladinščina", "lag": "langijščina", "lah": "landa", "lam": "lamba", "lb": "luksemburščina", "lez": "lezginščina", "lg": "ganda", "li": "limburščina", "lkt": "lakotščina", "ln": "lingala", "lo": "laoščina", "lol": "mongo", "lou": "louisianska kreolščina", "loz": "lozi", "lrc": "severna lurijščina", "lt": "litovščina", "lu": "luba-katanga", "lua": "luba-lulua", "lui": "luisenščina", "lun": "lunda", "lus": "mizojščina", "luy": "luhijščina", "lv": "latvijščina", "mad": "madurščina", "mag": "magadščina", "mai": "maitili", "mak": "makasarščina", "man": "mandingo", "mas": "masajščina", "mdf": "mokšavščina", "mdr": "mandarščina", "men": "mende", "mer": "meru", "mfe": "morisjenščina", "mg": "malagaščina", "mga": "srednja irščina", "mgh": "makuva-meto", "mgo": "meta", "mh": "marshallovščina", "mi": "maorščina", "mic": "mikmaščina", "min": "minangkabau", "mk": "makedonščina", "ml": "malajalamščina", "mn": "mongolščina", "mnc": "mandžurščina", "mni": "manipurščina", "moh": "mohoščina", "mos": "mosijščina", "mr": "maratščina", "ms": "malajščina", "mt": "malteščina", "mua": "mundang", "mus": "creekovščina", "mwl": "mirandeščina", "mwr": "marvarščina", "my": "burmanščina", "myv": "erzjanščina", "mzn": "mazanderanščina", "na": "naurujščina", "nan": "min nan kitajščina", "nap": "napolitanščina", "naq": "khoekhoe", "nb": "knjižna norveščina", "nd": "severna ndebelščina", "nds": "nizka nemščina", "nds-NL": "nizka saščina", "ne": "nepalščina", "new": "nevarščina", "ng": "ndonga", "nia": "niaščina", "niu": "niuejščina", "nl": "nizozemščina", "nl-BE": "flamščina", "nmg": "kwasio", "nn": "novonorveščina", "nnh": "ngiemboonščina", "no": "norveščina", "nog": "nogajščina", "non": "stara nordijščina", "nqo": "n’ko", "nr": "južna ndebelščina", "nso": "severna sotščina", "nus": "nuerščina", "nv": "navajščina", "nwc": "klasična nevarščina", "ny": "njanščina", "nym": "njamveščina", "nyn": "njankole", "nyo": "njoro", "nzi": "nzima", "oc": "okcitanščina", "oj": "anašinabščina", "om": "oromo", "or": "odijščina", "os": "osetinščina", "osa": "osage", "ota": "otomanska turščina", "pa": "pandžabščina", "pag": "pangasinanščina", "pam": "pampanščina", "pap": "papiamentu", "pau": "palavanščina", "pcm": "nigerijski pidžin", "peo": "stara perzijščina", "phn": "feničanščina", "pi": "palijščina", "pl": "poljščina", "pon": "ponpejščina", "prg": "stara pruščina", "pro": "stara provansalščina", "ps": "paštunščina", "pt": "portugalščina", "pt-BR": "brazilska portugalščina", "pt-PT": "evropska portugalščina", "qu": "kečuanščina", "quc": "quiche", "raj": "radžastanščina", "rap": "rapanujščina", "rar": "rarotongščina", "rm": "retoromanščina", "rn": "rundščina", "ro": "romunščina", "ro-MD": "moldavščina", "rof": "rombo", "rom": "romščina", "root": "rootščina", "ru": "ruščina", "rup": "aromunščina", "rw": "ruandščina", "rwk": "rwa", "sa": "sanskrt", "sad": "sandavščina", "sah": "jakutščina", "sam": "samaritanska aramejščina", "saq": "samburščina", "sas": "sasaščina", "sat": "santalščina", "sba": "ngambajščina", "sbp": "sangujščina", "sc": "sardinščina", "scn": "sicilijanščina", "sco": "škotščina", "sd": "sindščina", "sdh": "južna kurdščina", "se": "severna samijščina", "seh": "sena", "sel": "selkupščina", "ses": "koyraboro senni", "sg": "sango", "sga": "stara irščina", "sh": "srbohrvaščina", "shi": "tahelitska berberščina", "shn": "šanščina", "si": "sinhalščina", "sid": "sidamščina", "sk": "slovaščina", "sl": "slovenščina", "sm": "samoanščina", "sma": "južna samijščina", "smj": "luleška samijščina", "smn": "inarska samijščina", "sms": "skoltska samijščina", "sn": "šonščina", "snk": "soninke", "so": "somalščina", "sq": "albanščina", "sr": "srbščina", "srn": "surinamska kreolščina", "srr": "sererščina", "ss": "svazijščina", "ssy": "saho", "st": "sesoto", "su": "sundanščina", "suk": "sukuma", "sus": "susujščina", "sux": "sumerščina", "sv": "švedščina", "sw": "svahili", "sw-CD": "kongoški svahili", "swb": "šikomor", "syc": "klasična sirščina", "syr": "sirščina", "ta": "tamilščina", "te": "telugijščina", "tem": "temnejščina", "teo": "teso", "tet": "tetumščina", "tg": "tadžiščina", "th": "tajščina", "ti": "tigrajščina", "tig": "tigrejščina", "tiv": "tivščina", "tk": "turkmenščina", "tkl": "tokelavščina", "tl": "tagalogščina", "tlh": "klingonščina", "tli": "tlingitščina", "tmh": "tamajaščina", "tn": "cvanščina", "to": "tongščina", "tog": "malavijska tongščina", "tpi": "tok pisin", "tr": "turščina", "trv": "taroko", "ts": "congščina", "tsi": "tsimščina", "tt": "tatarščina", "tum": "tumbukščina", "tvl": "tuvalujščina", "tw": "tvi", "twq": "tasawaq", "ty": "tahitščina", "tyv": "tuvinščina", "tzm": "tamašek (Srednji Atlas)", "udm": "udmurtščina", "ug": "ujgurščina", "uga": "ugaritski jezik", "uk": "ukrajinščina", "umb": "umbundščina", "ur": "urdujščina", "uz": "uzbeščina", "vai": "vajščina", "ve": "venda", "vi": "vietnamščina", "vo": "volapuk", "vot": "votjaščina", "vun": "vunjo", "wa": "valonščina", "wae": "walser", "wal": "valamščina", "war": "varajščina", "was": "vašajščina", "wbp": "varlpirščina", "wo": "volofščina", "xal": "kalmiščina", "xh": "koščina", "xog": "sogščina", "yao": "jaojščina", "yap": "japščina", "yav": "jangben", "ybb": "jembajščina", "yi": "jidiš", "yo": "jorubščina", "yue": "kantonščina", "zap": "zapoteščina", "zbl": "znakovni jezik Bliss", "zen": "zenaščina", "zgh": "standardni maroški tamazig", "zh": "kitajščina", "zh-Hans": "poenostavljena kitajščina", "zh-Hant": "tradicionalna kitajščina", "zu": "zulujščina", "zun": "zunijščina", "zza": "zazajščina"}}, + "so": {"rtl": false, "languageNames": {"af": "Afrikaanka", "agq": "Ageem", "ak": "Akan", "am": "Axmaari", "ar": "Carabi", "ar-001": "Carabiga rasmiga ah", "as": "Asaamiis", "asa": "Asu", "ast": "Astuuriyaan", "az": "Asarbayjan", "bas": "Basaa", "be": "Beleruusiyaan", "bem": "Bemba", "bez": "Bena", "bg": "Bulgeeriyaan", "bm": "Bambaara", "bn": "Bangladesh", "bo": "Tibeetaan", "br": "Biriton", "brx": "Bodo", "bs": "Bosniyaan", "ca": "Katalaan", "ccp": "Jakma", "ce": "Jejen", "ceb": "Sebuano", "cgg": "Jiga", "chr": "Jerookee", "ckb": "Bartamaha Kurdish", "co": "Korsikan", "cs": "Jeeg", "cu": "Kaniisadda Islaafik", "cy": "Welsh", "da": "Dhaanish", "dav": "Taiita", "de": "Jarmal", "de-AT": "Jarmal (Awsteriya)", "de-CH": "Jarmal (Iswiiserlaand)", "dje": "Sarma", "dsb": "Soorbiyaanka Hoose", "dua": "Duaala", "dyo": "Joola-Foonyi", "dz": "D’zongqa", "ebu": "Embuu", "ee": "Eewe", "el": "Giriik", "en": "Ingiriisi", "en-AU": "Ingiriis Austaraaliyaan", "en-CA": "Ingiriis Kanadiyaan", "en-GB": "Ingiriis Biritish", "en-US": "Ingiriis Maraykan", "eo": "Isberaanto", "es": "Isbaanish", "es-419": "Isbaanishka Laatiin Ameerika", "es-ES": "Isbaanish (Isbayn)", "es-MX": "Isbaanish (Meksiko)", "et": "Istooniyaan", "eu": "Basquu", "ewo": "Eewondho", "fa": "Faarisi", "ff": "Fuulah", "fi": "Finishka", "fil": "Tagalog", "fo": "Farowsi", "fr": "Faransiis", "fr-CA": "Faransiiska Kanada", "fr-CH": "Faransiis (Iswiiserlaand)", "fur": "Firiyuuliyaan", "fy": "Firiisiyan Galbeed", "ga": "Ayrish", "gd": "Iskot Giilik", "gl": "Galiisiyaan", "gsw": "Jarmal Iswiis", "gu": "Gujaraati", "guz": "Guusii", "gv": "Mankis", "ha": "Hawsa", "haw": "Hawaay", "he": "Cibraani", "hi": "Hindi", "hmn": "Hamong", "hr": "Koro’eeshiyaan", "hsb": "Sorobiyaanka Sare", "ht": "Heeytiyaan Karawle", "hu": "Hangariyaan", "hy": "Armeeniyaan", "ia": "Interlinguwa", "id": "Indunusiyaan", "ig": "Igbo", "ii": "Sijuwan Yi", "is": "Ayslandays", "it": "Talyaani", "ja": "Jabaaniis", "jgo": "Ingoomba", "jmc": "Chaga", "jv": "Jafaaniis", "ka": "Joorijiyaan", "kab": "Kabayle", "kam": "Kaamba", "kde": "Kimakonde", "kea": "Kabuferdiyanu", "khq": "Koyra Jiini", "ki": "Kikuuyu", "kk": "Kasaaq", "kkj": "Kaako", "kl": "Kalaallisuut", "kln": "Kalenjiin", "km": "Kamboodhian", "kn": "Kannadays", "ko": "Kuuriyaan", "kok": "Konkani", "ks": "Kaashmiir", "ksb": "Shambaala", "ksf": "Bafiya", "ksh": "Kologniyaan", "ku": "Kurdishka", "kw": "Kornish", "ky": "Kirgiis", "la": "Laatiin", "lag": "Laangi", "lb": "Luksaamboorgish", "lg": "Gandha", "lkt": "Laakoota", "ln": "Lingala", "lo": "Lao", "lrc": "Koonfurta Luuri", "lt": "Lituwaanays", "lu": "Luuba-kataanga", "luo": "Luwada", "luy": "Luhya", "lv": "Laatfiyaan", "mas": "Masaay", "mer": "Meeru", "mfe": "Moorisayn", "mg": "Malagaasi", "mgh": "Makhuwa", "mgo": "Meetaa", "mi": "Maaoori", "mk": "Masadooniyaan", "ml": "Malayalam", "mn": "Mangooli", "mr": "Maarati", "ms": "Malaay", "mt": "Maltiis", "mua": "Miyundhaang", "my": "Burmese", "mzn": "Masanderaani", "naq": "Nama", "nb": "Noorwijiyaan Bokma", "nd": "Indhebeele", "nds": "Jarmal Hooseeya", "nds-NL": "Jarmal Hooseeya (Nederlaands)", "ne": "Nebaali", "nl": "Holandays", "nl-BE": "Af faleemi", "nmg": "Kuwaasiyo", "nn": "Nowrwejiyan (naynoroski)", "nnh": "Ingiyembuun", "nus": "Nuweer", "ny": "Inyaanja", "nyn": "Inyankoole", "om": "Oromo", "or": "Oodhiya", "os": "Oseetic", "pa": "Bunjaabi", "pl": "Boolish", "prg": "Brashiyaanki Hore", "ps": "Bashtuu", "pt": "Boortaqiis", "pt-BR": "Boortaqiiska Baraasiil", "pt-PT": "Boortaqiis (Boortuqaal)", "qu": "Quwejuwa", "rm": "Romaanis", "rn": "Rundhi", "ro": "Romanka", "ro-MD": "Romanka (Moldofa)", "rof": "Rombo", "ru": "Ruush", "rw": "Ruwaandha", "rwk": "Raawa", "sa": "Sanskrit", "sah": "Saaqa", "saq": "Sambuuru", "sbp": "Sangu", "sd": "Siindhi", "se": "Koonfurta Saami", "seh": "Seena", "ses": "Koyraboro Seenni", "sg": "Sango", "shi": "Shilha", "si": "Sinhaleys", "sk": "Isloofaak", "sl": "Islofeeniyaan", "sm": "Samowan", "smn": "Inaari Saami", "sn": "Shoona", "so": "Soomaali", "sq": "Albeeniyaan", "sr": "Seerbiyaan", "st": "Sesooto", "su": "Suudaaniis", "sv": "Swiidhis", "sw": "Sawaaxili", "sw-CD": "Sawaaxili (Jamhuuriyadda Dimuquraadiga Kongo)", "ta": "Tamiil", "te": "Teluugu", "teo": "Teeso", "tg": "Taajik", "th": "Taaylandays", "ti": "Tigrinya", "tk": "Turkumaanish", "to": "Toongan", "tr": "Turkish", "tt": "Taatar", "twq": "Tasaawaq", "tzm": "Bartamaha Atlaas Tamasayt", "ug": "Uighur", "uk": "Yukreeniyaan", "ur": "Urduu", "uz": "Usbakis", "vai": "Faayi", "vi": "Fiitnaamays", "vo": "Folabuuk", "vun": "Fuunjo", "wae": "Walseer", "wo": "Woolof", "xh": "Hoosta", "xog": "Sooga", "yav": "Yaangbeen", "yi": "Yadhish", "yo": "Yoruuba", "yue": "Kantoneese", "zgh": "Morokaanka Tamasayt Rasmiga", "zh": "Shiinaha Mandarin", "zh-Hans": "Shiinaha Rasmiga ah", "zh-Hant": "Shiinahii Hore", "zu": "Zuulu"}}, + "sq": {"rtl": false, "languageNames": {"aa": "afarisht", "ab": "abkazisht", "ace": "akinezisht", "ada": "andangmeisht", "ady": "adigisht", "af": "afrikanisht", "agq": "agemisht", "ain": "ajnuisht", "ak": "akanisht", "ale": "aleutisht", "alt": "altaishte jugore", "am": "amarisht", "an": "aragonezisht", "anp": "angikisht", "ar": "arabisht", "ar-001": "arabishte standarde moderne", "arn": "mapuçisht", "arp": "arapahoisht", "as": "asamezisht", "asa": "asuisht", "ast": "asturisht", "av": "avarikisht", "awa": "auadhisht", "ay": "ajmarisht", "az": "azerbajxhanisht", "ba": "bashkirisht", "ban": "balinezisht", "bas": "basaisht", "be": "bjellorusisht", "bem": "bembaisht", "bez": "benaisht", "bg": "bullgarisht", "bgn": "balokishte perëndimore", "bho": "boxhpurisht", "bi": "bislamisht", "bin": "binisht", "bla": "siksikaisht", "bm": "bambarisht", "bn": "bengalisht", "bo": "tibetisht", "br": "bretonisht", "brx": "bodoisht", "bs": "boshnjakisht", "bug": "buginezisht", "byn": "blinisht", "ca": "katalonisht", "ccp": "çakmaisht", "ce": "çeçenisht", "ceb": "sebuanisht", "cgg": "çigisht", "ch": "kamoroisht", "chk": "çukezisht", "chm": "marisht", "cho": "çoktauisht", "chr": "çerokisht", "chy": "çejenisht", "ckb": "kurdishte qendrore", "co": "korsikisht", "crs": "frëngjishte kreole seselve", "cs": "çekisht", "cu": "sllavishte kishtare", "cv": "çuvashisht", "cy": "uellsisht", "da": "danisht", "dak": "dakotisht", "dar": "darguaisht", "dav": "tajtaisht", "de": "gjermanisht", "de-AT": "gjermanishte austriake", "de-CH": "gjermanishte zvicerane (dialekti i Alpeve)", "dgr": "dogribisht", "dje": "zarmaisht", "dsb": "sorbishte e poshtme", "dua": "dualaisht", "dv": "divehisht", "dyo": "xhulafonjisht", "dz": "xhongaisht", "dzg": "dazagauisht", "ebu": "embuisht", "ee": "eveisht", "efi": "efikisht", "eka": "ekajukisht", "el": "greqisht", "en": "anglisht", "en-AU": "anglishte australiane", "en-CA": "anglishte kanadeze", "en-GB": "anglishte britanike", "en-US": "anglishte amerikane", "eo": "esperanto", "es": "spanjisht", "es-419": "spanjishte amerikano-latine", "es-ES": "spanjishte evropiane", "es-MX": "spanjishte meksikane", "et": "estonisht", "eu": "baskisht", "ewo": "euondoisht", "fa": "persisht", "ff": "fulaisht", "fi": "finlandisht", "fil": "filipinisht", "fj": "fixhianisht", "fo": "faroisht", "fon": "fonisht", "fr": "frëngjisht", "fr-CA": "frëngjishte kanadeze", "fr-CH": "frëngjishte zvicerane", "fur": "friulianisht", "fy": "frizianishte perëndimore", "ga": "irlandisht", "gaa": "gaisht", "gag": "gagauzisht", "gd": "galishte skoceze", "gez": "gizisht", "gil": "gilbertazisht", "gl": "galicisht", "gn": "guaranisht", "gor": "gorontaloisht", "gsw": "gjermanishte zvicerane", "gu": "guxharatisht", "guz": "gusisht", "gv": "manksisht", "gwi": "guiçinisht", "ha": "hausisht", "haw": "havaisht", "he": "hebraisht", "hi": "indisht", "hil": "hiligajnonisht", "hmn": "hmongisht", "hr": "kroatisht", "hsb": "sorbishte e sipërme", "ht": "haitisht", "hu": "hungarisht", "hup": "hupaisht", "hy": "armenisht", "hz": "hereroisht", "ia": "interlingua", "iba": "ibanisht", "ibb": "ibibioisht", "id": "indonezisht", "ie": "gjuha oksidentale", "ig": "igboisht", "ii": "sishuanisht", "ilo": "ilokoisht", "inh": "ingushisht", "io": "idoisht", "is": "islandisht", "it": "italisht", "iu": "inuktitutisht", "ja": "japonisht", "jbo": "lojbanisht", "jgo": "ngombisht", "jmc": "maçamisht", "jv": "javanisht", "ka": "gjeorgjisht", "kab": "kabilisht", "kac": "kaçinisht", "kaj": "kajeisht", "kam": "kambaisht", "kbd": "kabardianisht", "kcg": "tjapisht", "kde": "makondisht", "kea": "kreolishte e Kepit të Gjelbër", "kfo": "koroisht", "kha": "kasisht", "khq": "kojraçinisht", "ki": "kikujuisht", "kj": "kuanjamaisht", "kk": "kazakisht", "kkj": "kakoisht", "kl": "kalalisutisht", "kln": "kalenxhinisht", "km": "kmerisht", "kmb": "kimbunduisht", "kn": "kanadisht", "ko": "koreanisht", "koi": "komi-parmjakisht", "kok": "konkanisht", "kpe": "kpeleisht", "kr": "kanurisht", "krc": "karaçaj-balkarisht", "krl": "karelianisht", "kru": "kurukisht", "ks": "kashmirisht", "ksb": "shambalisht", "ksf": "bafianisht", "ksh": "këlnisht", "ku": "kurdisht", "kum": "kumikisht", "kv": "komisht", "kw": "kornisht", "ky": "kirgizisht", "la": "latinisht", "lad": "ladinoisht", "lag": "langisht", "lb": "luksemburgisht", "lez": "lezgianisht", "lg": "gandaisht", "li": "limburgisht", "lkt": "lakotisht", "ln": "lingalisht", "lo": "laosisht", "loz": "lozisht", "lrc": "lurishte veriore", "lt": "lituanisht", "lu": "luba-katangaisht", "lua": "luba-luluaisht", "lun": "lundaisht", "luo": "luoisht", "lus": "mizoisht", "luy": "lujaisht", "lv": "letonisht", "mad": "madurezisht", "mag": "magaisht", "mai": "maitilisht", "mak": "makasarisht", "mas": "masaisht", "mdf": "mokshaisht", "men": "mendisht", "mer": "meruisht", "mfe": "morisjenisht", "mg": "madagaskarisht", "mgh": "makua-mitoisht", "mgo": "metaisht", "mh": "marshallisht", "mi": "maorisht", "mic": "mikmakisht", "min": "minangkabauisht", "mk": "maqedonisht", "ml": "malajalamisht", "mn": "mongolisht", "mni": "manipurisht", "moh": "mohokisht", "mos": "mosisht", "mr": "maratisht", "ms": "malajisht", "mt": "maltisht", "mua": "mundangisht", "mus": "krikisht", "mwl": "mirandisht", "my": "birmanisht", "myv": "erzjaisht", "mzn": "mazanderanisht", "na": "nauruisht", "nap": "napoletanisht", "naq": "namaisht", "nb": "norvegjishte letrare", "nd": "ndebelishte veriore", "nds": "gjermanishte e vendeve të ulëta", "nds-NL": "gjermanishte saksone e vendeve të ulëta", "ne": "nepalisht", "new": "neuarisht", "ng": "ndongaisht", "nia": "niasisht", "niu": "niueanisht", "nl": "holandisht", "nl-BE": "flamandisht", "nmg": "kuasisht", "nn": "norvegjishte nynorsk", "nnh": "ngiembunisht", "no": "norvegjisht", "nog": "nogajisht", "nqo": "nkoisht", "nr": "ndebelishte jugore", "nso": "sotoishte veriore", "nus": "nuerisht", "nv": "navahoisht", "ny": "nianjisht", "nyn": "niankolisht", "oc": "oksitanisht", "om": "oromoisht", "or": "odisht", "os": "osetisht", "pa": "punxhabisht", "pag": "pangasinanisht", "pam": "pampangaisht", "pap": "papiamentisht", "pau": "paluanisht", "pcm": "pixhinishte nigeriane", "pl": "polonisht", "prg": "prusisht", "ps": "pashtoisht", "pt": "portugalisht", "pt-BR": "portugalishte braziliane", "pt-PT": "portugalishte evropiane", "qu": "keçuaisht", "quc": "kiçeisht", "rap": "rapanuisht", "rar": "rarontonganisht", "rm": "retoromanisht", "rn": "rundisht", "ro": "rumanisht", "ro-MD": "moldavisht", "rof": "romboisht", "root": "rutisht", "ru": "rusisht", "rup": "vllahisht", "rw": "kiniaruandisht", "rwk": "ruaisht", "sa": "sanskritisht", "sad": "sandauisht", "sah": "sakaisht", "saq": "samburisht", "sat": "santalisht", "sba": "ngambajisht", "sbp": "sanguisht", "sc": "sardenjisht", "scn": "siçilianisht", "sco": "skotisht", "sd": "sindisht", "sdh": "kurdishte jugore", "se": "samishte veriore", "seh": "senaisht", "ses": "senishte kojrabore", "sg": "sangoisht", "sh": "serbo-kroatisht", "shi": "taçelitisht", "shn": "shanisht", "si": "sinhalisht", "sk": "sllovakisht", "sl": "sllovenisht", "sm": "samoanisht", "sma": "samishte jugore", "smj": "samishte lule", "smn": "samishte inari", "sms": "samishte skolti", "sn": "shonisht", "snk": "soninkisht", "so": "somalisht", "sq": "shqip", "sr": "serbisht", "srn": "srananisht (sranantongoisht)", "ss": "suatisht", "ssy": "sahoisht", "st": "sotoishte jugore", "su": "sundanisht", "suk": "sukumaisht", "sv": "suedisht", "sw": "suahilisht", "sw-CD": "suahilishte kongoleze", "swb": "kamorianisht", "syr": "siriakisht", "ta": "tamilisht", "te": "teluguisht", "tem": "timneisht", "teo": "tesoisht", "tet": "tetumisht", "tg": "taxhikisht", "th": "tajlandisht", "ti": "tigrinjaisht", "tig": "tigreisht", "tk": "turkmenisht", "tlh": "klingonisht", "tn": "cuanaisht", "to": "tonganisht", "tpi": "pisinishte toku", "tr": "turqisht", "trv": "torokoisht", "ts": "congaisht", "tt": "tatarisht", "tum": "tumbukaisht", "tvl": "tuvaluisht", "tw": "tuisht", "twq": "tasavakisht", "ty": "tahitisht", "tyv": "tuvinianisht", "tzm": "tamazajtisht e Atlasit Qendror", "udm": "udmurtisht", "ug": "ujgurisht", "uk": "ukrainisht", "umb": "umbunduisht", "ur": "urduisht", "uz": "uzbekisht", "vai": "vaisht", "ve": "vendaisht", "vi": "vietnamisht", "vo": "volapykisht", "vun": "vunxhoisht", "wa": "ualunisht", "wae": "ualserisht", "wal": "ulajtaisht", "war": "uarajisht", "wbp": "uarlpirisht", "wo": "uolofisht", "xal": "kalmikisht", "xh": "xhosaisht", "xog": "sogisht", "yav": "jangbenisht", "ybb": "jembaisht", "yi": "jidisht", "yo": "jorubaisht", "yue": "kantonezisht", "zgh": "tamaziatishte standarde marokene", "zh": "kinezisht", "zh-Hans": "kinezishte e thjeshtuar", "zh-Hant": "kinezishte tradicionale", "zu": "zuluisht", "zun": "zunisht", "zza": "zazaisht"}}, + "sr": {"rtl": false, "languageNames": {"aa": "афарски", "ab": "абхаски", "ace": "ацешки", "ach": "аколи", "ada": "адангме", "ady": "адигејски", "ae": "авестански", "af": "африканс", "afh": "африхили", "agq": "агем", "ain": "аину", "ak": "акански", "akk": "акадијски", "ale": "алеутски", "alt": "јужноалтајски", "am": "амхарски", "an": "арагонски", "ang": "староенглески", "anp": "ангика", "ar": "арапски", "ar-001": "савремени стандардни арапски", "arc": "арамејски", "arn": "мапуче", "arp": "арапахо", "arw": "аравачки", "as": "асамски", "asa": "асу", "ast": "астуријски", "av": "аварски", "awa": "авади", "ay": "ајмара", "az": "азербејџански", "ba": "башкирски", "bal": "белучки", "ban": "балијски", "bas": "баса", "be": "белоруски", "bej": "беџа", "bem": "бемба", "bez": "бена", "bg": "бугарски", "bgn": "западни белучки", "bho": "боџпури", "bi": "бислама", "bik": "бикол", "bin": "бини", "bla": "сисика", "bm": "бамбара", "bn": "бенгалски", "bo": "тибетански", "br": "бретонски", "bra": "брај", "brx": "бодо", "bs": "босански", "bua": "бурјатски", "bug": "бугијски", "byn": "блински", "ca": "каталонски", "cad": "кадо", "car": "карипски", "cch": "атсам", "ce": "чеченски", "ceb": "себуански", "cgg": "чига", "ch": "чаморо", "chb": "чипча", "chg": "чагатај", "chk": "чучки", "chm": "мари", "chn": "чинучки", "cho": "чоктавски", "chp": "чипевјански", "chr": "чероки", "chy": "чејенски", "ckb": "централни курдски", "co": "корзикански", "cop": "коптски", "cr": "кри", "crh": "кримскотатарски", "crs": "сејшелски креолски француски", "cs": "чешки", "csb": "кашупски", "cu": "црквенословенски", "cv": "чувашки", "cy": "велшки", "da": "дански", "dak": "дакота", "dar": "даргински", "dav": "таита", "de": "немачки", "de-AT": "немачки (Аустрија)", "de-CH": "швајцарски високи немачки", "del": "делаверски", "den": "слејви", "dgr": "догрипски", "din": "динка", "dje": "зарма", "doi": "догри", "dsb": "доњи лужичкосрпски", "dua": "дуала", "dum": "средњехоландски", "dv": "малдивски", "dyo": "џола фоњи", "dyu": "ђула", "dz": "џонга", "dzg": "дазага", "ebu": "ембу", "ee": "еве", "efi": "ефички", "egy": "староегипатски", "eka": "екаџук", "el": "грчки", "elx": "еламитски", "en": "енглески", "en-AU": "енглески (Аустралија)", "en-CA": "енглески (Канада)", "en-GB": "енглески (Велика Британија)", "en-US": "енглески (Сједињене Америчке Државе)", "enm": "средњеенглески", "eo": "есперанто", "es": "шпански", "es-419": "шпански (Латинска Америка)", "es-ES": "шпански (Европа)", "es-MX": "шпански (Мексико)", "et": "естонски", "eu": "баскијски", "ewo": "евондо", "fa": "персијски", "fan": "фанг", "fat": "фанти", "ff": "фула", "fi": "фински", "fil": "филипински", "fj": "фиџијски", "fo": "фарски", "fon": "фон", "fr": "француски", "fr-CA": "француски (Канада)", "fr-CH": "француски (Швајцарска)", "frc": "кајунски француски", "frm": "средњефранцуски", "fro": "старофранцуски", "frr": "севернофризијски", "frs": "источнофризијски", "fur": "фриулски", "fy": "западни фризијски", "ga": "ирски", "gaa": "га", "gag": "гагауз", "gay": "гајо", "gba": "гбаја", "gd": "шкотски гелски", "gez": "геез", "gil": "гилбертски", "gl": "галицијски", "gmh": "средњи високонемачки", "gn": "гварани", "goh": "старонемачки", "gon": "гонди", "gor": "горонтало", "got": "готски", "grb": "гребо", "grc": "старогрчки", "gsw": "немачки (Швајцарска)", "gu": "гуџарати", "guz": "гуси", "gv": "манкс", "gwi": "гвичински", "ha": "хауса", "hai": "хаида", "haw": "хавајски", "he": "хебрејски", "hi": "хинди", "hil": "хилигајнонски", "hit": "хетитски", "hmn": "хмоншки", "ho": "хири моту", "hr": "хрватски", "hsb": "горњи лужичкосрпски", "ht": "хаићански", "hu": "мађарски", "hup": "хупа", "hy": "јерменски", "hz": "хереро", "ia": "интерлингва", "iba": "ибански", "ibb": "ибибио", "id": "индонежански", "ie": "интерлингве", "ig": "игбо", "ii": "сечуански ји", "ik": "инупик", "ilo": "илоко", "inh": "ингушки", "io": "идо", "is": "исландски", "it": "италијански", "iu": "инуктитутски", "ja": "јапански", "jbo": "ложбан", "jgo": "нгомба", "jmc": "мачаме", "jpr": "јудео-персијски", "jrb": "јудео-арапски", "jv": "јавански", "ka": "грузијски", "kaa": "кара-калпашки", "kab": "кабиле", "kac": "качински", "kaj": "џу", "kam": "камба", "kaw": "кави", "kbd": "кабардијски", "kcg": "тјап", "kde": "маконде", "kea": "зеленортски", "kfo": "коро", "kg": "конго", "kha": "каси", "kho": "котанешки", "khq": "којра чиини", "ki": "кикују", "kj": "квањама", "kk": "казашки", "kkj": "како", "kl": "гренландски", "kln": "каленџински", "km": "кмерски", "kmb": "кимбунду", "kn": "канада", "ko": "корејски", "koi": "коми-пермски", "kok": "конкани", "kos": "косренски", "kpe": "кпеле", "kr": "канури", "krc": "карачајско-балкарски", "kri": "крио", "krl": "карелски", "kru": "курук", "ks": "кашмирски", "ksb": "шамбала", "ksf": "бафија", "ksh": "келнски", "ku": "курдски", "kum": "кумички", "kut": "кутенај", "kv": "коми", "kw": "корнволски", "ky": "киргиски", "la": "латински", "lad": "ладино", "lag": "ланги", "lah": "ланда", "lam": "ламба", "lb": "луксембуршки", "lez": "лезгински", "lg": "ганда", "li": "лимбуршки", "lkt": "лакота", "ln": "лингала", "lo": "лаоски", "lol": "монго", "lou": "луизијански креолски", "loz": "лози", "lrc": "северни лури", "lt": "литвански", "lu": "луба-катанга", "lua": "луба-лулуа", "lui": "луисењо", "lun": "лунда", "luo": "луо", "lus": "мизо", "luy": "лујиа", "lv": "летонски", "mad": "мадурски", "mag": "магахи", "mai": "маитили", "mak": "макасарски", "man": "мандинго", "mas": "масајски", "mdf": "мокша", "mdr": "мандар", "men": "менде", "mer": "меру", "mfe": "морисјен", "mg": "малгашки", "mga": "средњеирски", "mgh": "макува-мито", "mgo": "мета", "mh": "маршалски", "mi": "маорски", "mic": "микмак", "min": "минангкабау", "mk": "македонски", "ml": "малајалам", "mn": "монголски", "mnc": "манџурски", "mni": "манипурски", "moh": "мохочки", "mos": "моси", "mr": "марати", "ms": "малајски", "mt": "малтешки", "mua": "мунданг", "mus": "кришки", "mwl": "мирандски", "mwr": "марвари", "my": "бурмански", "myv": "ерзја", "mzn": "мазандерански", "na": "науруски", "nap": "напуљски", "naq": "нама", "nb": "норвешки букмол", "nd": "северни ндебеле", "nds": "нисконемачки", "nds-NL": "нискосаксонски", "ne": "непалски", "new": "невари", "ng": "ндонга", "nia": "ниас", "niu": "ниуејски", "nl": "холандски", "nl-BE": "фламански", "nmg": "квасио", "nn": "норвешки нинорск", "nnh": "нгиембун", "no": "норвешки", "nog": "ногајски", "non": "старонордијски", "nqo": "нко", "nr": "јужни ндебеле", "nso": "северни сото", "nus": "нуер", "nv": "навахо", "nwc": "класични неварски", "ny": "њанџа", "nym": "њамвези", "nyn": "њанколе", "nyo": "њоро", "nzi": "нзима", "oc": "окситански", "oj": "оџибве", "om": "оромо", "or": "одија", "os": "осетински", "osa": "осаге", "ota": "османски турски", "pa": "пенџапски", "pag": "пангасинански", "pal": "пахлави", "pam": "пампанга", "pap": "папијаменто", "pau": "палауски", "pcm": "нигеријски пиџин", "peo": "староперсијски", "phn": "феничански", "pi": "пали", "pl": "пољски", "pon": "понпејски", "prg": "пруски", "pro": "староокситански", "ps": "паштунски", "pt": "португалски", "pt-BR": "португалски (Бразил)", "pt-PT": "португалски (Португал)", "qu": "кечуа", "quc": "киче", "raj": "раџастански", "rap": "рапануи", "rar": "раротонгански", "rm": "романш", "rn": "кирунди", "ro": "румунски", "ro-MD": "молдавски", "rof": "ромбо", "rom": "ромски", "root": "рут", "ru": "руски", "rup": "цинцарски", "rw": "кињаруанда", "rwk": "руа", "sa": "санскрит", "sad": "сандаве", "sah": "саха", "sam": "самаријански арамејски", "saq": "самбуру", "sas": "сасак", "sat": "сантали", "sba": "нгамбај", "sbp": "сангу", "sc": "сардински", "scn": "сицилијански", "sco": "шкотски", "sd": "синди", "sdh": "јужнокурдски", "se": "северни сами", "seh": "сена", "sel": "селкупски", "ses": "којраборо сени", "sg": "санго", "sga": "староирски", "sh": "српскохрватски", "shi": "ташелхит", "shn": "шански", "si": "синхалешки", "sid": "сидамо", "sk": "словачки", "sl": "словеначки", "sm": "самоански", "sma": "јужни сами", "smj": "луле сами", "smn": "инари сами", "sms": "сколт сами", "sn": "шона", "snk": "сонинке", "so": "сомалски", "sog": "согдијски", "sq": "албански", "sr": "српски", "srn": "сранан тонго", "srr": "серерски", "ss": "свази", "ssy": "сахо", "st": "сесото", "su": "сундански", "suk": "сукума", "sus": "сусу", "sux": "сумерски", "sv": "шведски", "sw": "свахили", "sw-CD": "кисвахили", "swb": "коморски", "syc": "сиријачки", "syr": "сиријски", "ta": "тамилски", "te": "телугу", "tem": "тимне", "teo": "тесо", "ter": "терено", "tet": "тетум", "tg": "таџички", "th": "тајски", "ti": "тигриња", "tig": "тигре", "tiv": "тив", "tk": "туркменски", "tkl": "токелау", "tl": "тагалог", "tlh": "клингонски", "tli": "тлингит", "tmh": "тамашек", "tn": "цвана", "to": "тонгански", "tog": "њаса тонга", "tpi": "ток писин", "tr": "турски", "trv": "тароко", "ts": "цонга", "tsi": "цимшиан", "tt": "татарски", "tum": "тумбука", "tvl": "тувалу", "tw": "тви", "twq": "тасавак", "ty": "тахићански", "tyv": "тувински", "tzm": "централноатласки тамазигт", "udm": "удмуртски", "ug": "ујгурски", "uga": "угаритски", "uk": "украјински", "umb": "умбунду", "ur": "урду", "uz": "узбечки", "vai": "ваи", "ve": "венда", "vi": "вијетнамски", "vo": "волапик", "vot": "водски", "vun": "вунџо", "wa": "валонски", "wae": "валсерски", "wal": "волајта", "war": "варајски", "was": "вашо", "wbp": "варлпири", "wo": "волоф", "xal": "калмички", "xh": "коса", "xog": "сога", "yao": "јао", "yap": "јапски", "yav": "јангбен", "ybb": "јемба", "yi": "јидиш", "yo": "јоруба", "yue": "кантонски", "za": "џуаншки", "zap": "запотечки", "zbl": "блисимболи", "zen": "зенага", "zgh": "стандардни марокански тамазигт", "zh": "кинески", "zh-Hans": "поједностављени кинески", "zh-Hant": "традиционални кинески", "zu": "зулу", "zun": "зуни", "zza": "заза"}}, + "sv": {"rtl": false, "languageNames": {"aa": "afar", "ab": "abchaziska", "ace": "acehnesiska", "ach": "acholi", "ada": "adangme", "ady": "adygeiska", "ae": "avestiska", "aeb": "tunisisk arabiska", "af": "afrikaans", "afh": "afrihili", "agq": "aghem", "ain": "ainu", "ak": "akan", "akk": "akkadiska", "akz": "Alabama-muskogee", "ale": "aleutiska", "aln": "gegiska", "alt": "sydaltaiska", "am": "amhariska", "an": "aragonesiska", "ang": "fornengelska", "anp": "angika", "ar": "arabiska", "ar-001": "modern standardarabiska", "arc": "arameiska", "arn": "mapudungun", "aro": "araoniska", "arp": "arapaho", "arq": "algerisk arabiska", "ars": "najdiarabiska", "arw": "arawakiska", "ary": "marockansk arabiska", "arz": "egyptisk arabiska", "as": "assamesiska", "asa": "asu", "ase": "amerikanskt teckenspråk", "ast": "asturiska", "av": "avariska", "avk": "kotava", "awa": "awadhi", "ay": "aymara", "az": "azerbajdzjanska", "ba": "basjkiriska", "bal": "baluchiska", "ban": "balinesiska", "bar": "bayerska", "bas": "basa", "bax": "bamunska", "bbc": "batak-toba", "bbj": "ghomala", "be": "vitryska", "bej": "beja", "bem": "bemba", "bew": "betawiska", "bez": "bena", "bfd": "bafut", "bfq": "bagada", "bg": "bulgariska", "bgn": "västbaluchiska", "bho": "bhojpuri", "bi": "bislama", "bik": "bikol", "bin": "bini", "bjn": "banjariska", "bkm": "bamekon", "bla": "siksika", "bm": "bambara", "bn": "bengali", "bo": "tibetanska", "bpy": "bishnupriya", "bqi": "bakhtiari", "br": "bretonska", "bra": "braj", "brh": "brahuiska", "brx": "bodo", "bs": "bosniska", "bss": "bakossi", "bua": "burjätiska", "bug": "buginesiska", "bum": "boulou", "byn": "blin", "byv": "bagangte", "ca": "katalanska", "cad": "caddo", "car": "karibiska", "cay": "cayuga", "cch": "atsam", "ccp": "chakma", "ce": "tjetjenska", "ceb": "cebuano", "cgg": "chiga", "ch": "chamorro", "chb": "chibcha", "chg": "chagatai", "chk": "chuukesiska", "chm": "mariska", "chn": "chinook", "cho": "choctaw", "chp": "chipewyan", "chr": "cherokesiska", "chy": "cheyenne", "ckb": "soranisk kurdiska", "co": "korsikanska", "cop": "koptiska", "cps": "kapisnon", "cr": "cree", "crh": "krimtatariska", "crs": "seychellisk kreol", "cs": "tjeckiska", "csb": "kasjubiska", "cu": "kyrkslaviska", "cv": "tjuvasjiska", "cy": "walesiska", "da": "danska", "dak": "dakota", "dar": "darginska", "dav": "taita", "de": "tyska", "de-AT": "österrikisk tyska", "de-CH": "schweizisk högtyska", "del": "delaware", "den": "slavej", "dgr": "dogrib", "din": "dinka", "dje": "zarma", "doi": "dogri", "dsb": "lågsorbiska", "dtp": "centraldusun", "dua": "duala", "dum": "medelnederländska", "dv": "divehi", "dyo": "jola-fonyi", "dyu": "dyula", "dz": "dzongkha", "dzg": "dazaga", "ebu": "embu", "ee": "ewe", "efi": "efik", "egl": "emiliska", "egy": "fornegyptiska", "eka": "ekajuk", "el": "grekiska", "elx": "elamitiska", "en": "engelska", "en-AU": "australisk engelska", "en-CA": "kanadensisk engelska", "en-GB": "brittisk engelska", "en-US": "amerikansk engelska", "enm": "medelengelska", "eo": "esperanto", "es": "spanska", "es-419": "latinamerikansk spanska", "es-ES": "europeisk spanska", "es-MX": "mexikansk spanska", "esu": "centralalaskisk jupiska", "et": "estniska", "eu": "baskiska", "ewo": "ewondo", "ext": "extremaduriska", "fa": "persiska", "fan": "fang", "fat": "fanti", "ff": "fulani", "fi": "finska", "fil": "filippinska", "fit": "meänkieli", "fj": "fijianska", "fo": "färöiska", "fon": "fonspråket", "fr": "franska", "fr-CA": "kanadensisk franska", "fr-CH": "schweizisk franska", "frc": "cajun-franska", "frm": "medelfranska", "fro": "fornfranska", "frp": "frankoprovensalska", "frr": "nordfrisiska", "frs": "östfrisiska", "fur": "friulianska", "fy": "västfrisiska", "ga": "iriska", "gaa": "gã", "gag": "gagauziska", "gay": "gayo", "gba": "gbaya", "gbz": "zoroastrisk dari", "gd": "skotsk gäliska", "gez": "etiopiska", "gil": "gilbertiska", "gl": "galiciska", "glk": "gilaki", "gmh": "medelhögtyska", "gn": "guaraní", "goh": "fornhögtyska", "gom": "Goa-konkani", "gon": "gondi", "gor": "gorontalo", "got": "gotiska", "grb": "grebo", "grc": "forngrekiska", "gsw": "schweizertyska", "gu": "gujarati", "guc": "wayuu", "gur": "farefare", "guz": "gusii", "gv": "manx", "gwi": "gwichin", "ha": "hausa", "hai": "haida", "hak": "hakka", "haw": "hawaiiska", "he": "hebreiska", "hi": "hindi", "hif": "Fiji-hindi", "hil": "hiligaynon", "hit": "hettitiska", "hmn": "hmongspråk", "ho": "hirimotu", "hr": "kroatiska", "hsb": "högsorbiska", "hsn": "xiang", "ht": "haitiska", "hu": "ungerska", "hup": "hupa", "hy": "armeniska", "hz": "herero", "ia": "interlingua", "iba": "ibanska", "ibb": "ibibio", "id": "indonesiska", "ie": "interlingue", "ig": "igbo", "ii": "szezuan i", "ik": "inupiak", "ilo": "iloko", "inh": "ingusjiska", "io": "ido", "is": "isländska", "it": "italienska", "iu": "inuktitut", "izh": "ingriska", "ja": "japanska", "jam": "jamaikansk engelsk kreol", "jbo": "lojban", "jgo": "ngomba", "jmc": "kimashami", "jpr": "judisk persiska", "jrb": "judisk arabiska", "jut": "jylländska", "jv": "javanesiska", "ka": "georgiska", "kaa": "karakalpakiska", "kab": "kabyliska", "kac": "kachin", "kaj": "jju", "kam": "kamba", "kaw": "kawi", "kbd": "kabardinska", "kbl": "kanembu", "kcg": "tyap", "kde": "makonde", "kea": "kapverdiska", "ken": "kenjang", "kfo": "koro", "kg": "kikongo", "kgp": "kaingang", "kha": "khasi", "kho": "khotanesiska", "khq": "Timbuktu-songhoy", "khw": "khowar", "ki": "kikuyu", "kiu": "kirmanjki", "kj": "kuanyama", "kk": "kazakiska", "kkj": "mkako", "kl": "grönländska", "kln": "kalenjin", "km": "kambodjanska", "kmb": "kimbundu", "kn": "kannada", "ko": "koreanska", "koi": "komi-permjakiska", "kok": "konkani", "kos": "kosreanska", "kpe": "kpelle", "kr": "kanuri", "krc": "karachay-balkar", "kri": "krio", "krj": "kinaray-a", "krl": "karelska", "kru": "kurukh", "ks": "kashmiriska", "ksb": "kisambaa", "ksf": "bafia", "ksh": "kölniska", "ku": "kurdiska", "kum": "kumykiska", "kut": "kutenaj", "kv": "kome", "kw": "korniska", "ky": "kirgisiska", "la": "latin", "lad": "ladino", "lag": "langi", "lah": "lahnda", "lam": "lamba", "lb": "luxemburgiska", "lez": "lezghien", "lfn": "lingua franca nova", "lg": "luganda", "li": "limburgiska", "lij": "liguriska", "liv": "livoniska", "lkt": "lakota", "lmo": "lombardiska", "ln": "lingala", "lo": "laotiska", "lol": "mongo", "lou": "louisiana-kreol", "loz": "lozi", "lrc": "nordluri", "lt": "litauiska", "ltg": "lettgalliska", "lu": "luba-katanga", "lua": "luba-lulua", "lui": "luiseño", "lun": "lunda", "lus": "lushai", "luy": "luhya", "lv": "lettiska", "lzh": "litterär kineiska", "lzz": "laziska", "mad": "maduresiska", "maf": "mafa", "mag": "magahi", "mai": "maithili", "mak": "makasar", "man": "mande", "mas": "massajiska", "mde": "maba", "mdf": "moksja", "mdr": "mandar", "men": "mende", "mer": "meru", "mfe": "mauritansk kreol", "mg": "malagassiska", "mga": "medeliriska", "mgh": "makhuwa-meetto", "mgo": "meta’", "mh": "marshalliska", "mi": "maori", "mic": "mi’kmaq", "min": "minangkabau", "mk": "makedonska", "ml": "malayalam", "mn": "mongoliska", "mnc": "manchuriska", "mni": "manipuri", "moh": "mohawk", "mos": "mossi", "mr": "marathi", "mrj": "västmariska", "ms": "malajiska", "mt": "maltesiska", "mua": "mundang", "mus": "muskogee", "mwl": "mirandesiska", "mwr": "marwari", "mwv": "mentawai", "my": "burmesiska", "mye": "myene", "myv": "erjya", "mzn": "mazanderani", "na": "nauruanska", "nan": "min nan", "nap": "napolitanska", "naq": "nama", "nb": "norskt bokmål", "nd": "nordndebele", "nds": "lågtyska", "nds-NL": "lågsaxiska", "ne": "nepalesiska", "new": "newariska", "ng": "ndonga", "nia": "nias", "niu": "niueanska", "njo": "ao-naga", "nl": "nederländska", "nl-BE": "flamländska", "nmg": "kwasio", "nn": "nynorska", "nnh": "bamileké-ngiemboon", "no": "norska", "nog": "nogai", "non": "fornnordiska", "nov": "novial", "nqo": "n-kå", "nr": "sydndebele", "nso": "nordsotho", "nus": "nuer", "nv": "navaho", "nwc": "klassisk newariska", "ny": "nyanja", "nym": "nyamwezi", "nyn": "nyankole", "nyo": "nyoro", "nzi": "nzima", "oc": "occitanska", "oj": "odjibwa", "om": "oromo", "or": "oriya", "os": "ossetiska", "osa": "osage", "ota": "ottomanska", "pa": "punjabi", "pag": "pangasinan", "pal": "medelpersiska", "pam": "pampanga", "pap": "papiamento", "pau": "palau", "pcd": "pikardiska", "pcm": "Nigeria-pidgin", "pdc": "Pennsylvaniatyska", "pdt": "mennonitisk lågtyska", "peo": "fornpersiska", "pfl": "Pfalz-tyska", "phn": "feniciska", "pi": "pali", "pl": "polska", "pms": "piemontesiska", "pnt": "pontiska", "pon": "pohnpeiska", "prg": "fornpreussiska", "pro": "fornprovensalska", "ps": "afghanska", "pt": "portugisiska", "pt-BR": "brasiliansk portugisiska", "pt-PT": "europeisk portugisiska", "qu": "quechua", "quc": "quiché", "qug": "Chimborazo-höglandskichwa", "raj": "rajasthani", "rap": "rapanui", "rar": "rarotonganska", "rgn": "romagnol", "rif": "riffianska", "rm": "rätoromanska", "rn": "rundi", "ro": "rumänska", "ro-MD": "moldaviska", "rof": "rombo", "rom": "romani", "root": "rot", "rtm": "rotumänska", "ru": "ryska", "rue": "rusyn", "rug": "rovianska", "rup": "arumänska", "rw": "kinjarwanda", "rwk": "rwa", "sa": "sanskrit", "sad": "sandawe", "sah": "jakutiska", "sam": "samaritanska", "saq": "samburu", "sas": "sasak", "sat": "santali", "saz": "saurashtra", "sba": "ngambay", "sbp": "sangu", "sc": "sardinska", "scn": "sicilianska", "sco": "skotska", "sd": "sindhi", "sdc": "sassaresisk sardiska", "sdh": "sydkurdiska", "se": "nordsamiska", "see": "seneca", "seh": "sena", "sei": "seri", "sel": "selkup", "ses": "Gao-songhay", "sg": "sango", "sga": "forniriska", "sgs": "samogitiska", "sh": "serbokroatiska", "shi": "tachelhit", "shn": "shan", "shu": "Tchad-arabiska", "si": "singalesiska", "sid": "sidamo", "sk": "slovakiska", "sl": "slovenska", "sli": "lågsilesiska", "sly": "selayar", "sm": "samoanska", "sma": "sydsamiska", "smj": "lulesamiska", "smn": "enaresamiska", "sms": "skoltsamiska", "sn": "shona", "snk": "soninke", "so": "somaliska", "sog": "sogdiska", "sq": "albanska", "sr": "serbiska", "srn": "sranan tongo", "srr": "serer", "ss": "swati", "ssy": "saho", "st": "sydsotho", "stq": "saterfrisiska", "su": "sundanesiska", "suk": "sukuma", "sus": "susu", "sux": "sumeriska", "sv": "svenska", "sw": "swahili", "sw-CD": "Kongo-swahili", "swb": "shimaoré", "syc": "klassisk syriska", "syr": "syriska", "szl": "silesiska", "ta": "tamil", "tcy": "tulu", "te": "telugu", "tem": "temne", "teo": "teso", "ter": "tereno", "tet": "tetum", "tg": "tadzjikiska", "th": "thailändska", "ti": "tigrinja", "tig": "tigré", "tiv": "tivi", "tk": "turkmeniska", "tkl": "tokelauiska", "tkr": "tsakhur", "tl": "tagalog", "tlh": "klingonska", "tli": "tlingit", "tly": "talysh", "tmh": "tamashek", "tn": "tswana", "to": "tonganska", "tog": "nyasatonganska", "tpi": "tok pisin", "tr": "turkiska", "tru": "turoyo", "trv": "taroko", "ts": "tsonga", "tsd": "tsakodiska", "tsi": "tsimshian", "tt": "tatariska", "ttt": "muslimsk tatariska", "tum": "tumbuka", "tvl": "tuvaluanska", "tw": "twi", "twq": "tasawaq", "ty": "tahitiska", "tyv": "tuviniska", "tzm": "centralmarockansk tamazight", "udm": "udmurtiska", "ug": "uiguriska", "uga": "ugaritiska", "uk": "ukrainska", "umb": "umbundu", "ur": "urdu", "uz": "uzbekiska", "vai": "vaj", "ve": "venda", "vec": "venetianska", "vep": "veps", "vi": "vietnamesiska", "vls": "västflamländska", "vmf": "Main-frankiska", "vo": "volapük", "vot": "votiska", "vro": "võru", "vun": "vunjo", "wa": "vallonska", "wae": "walsertyska", "wal": "walamo", "war": "waray", "was": "washo", "wbp": "warlpiri", "wo": "wolof", "wuu": "wu", "xal": "kalmuckiska", "xh": "xhosa", "xmf": "mingrelianska", "xog": "lusoga", "yao": "kiyao", "yap": "japetiska", "yav": "yangben", "ybb": "bamileké-jemba", "yi": "jiddisch", "yo": "yoruba", "yrl": "nheengatu", "yue": "kantonesiska", "za": "zhuang", "zap": "zapotek", "zbl": "blissymboler", "zea": "zeeländska", "zen": "zenaga", "zgh": "marockansk standard-tamazight", "zh": "kinesiska", "zh-Hans": "förenklad kinesiska", "zh-Hant": "traditionell kinesiska", "zu": "zulu", "zun": "zuni", "zza": "zazaiska"}}, + "ta": {"rtl": false, "languageNames": {"aa": "அஃபார்", "ab": "அப்காஜியான்", "ace": "ஆச்சினீஸ்", "ach": "அகோலி", "ada": "அதாங்மே", "ady": "அதகே", "ae": "அவெஸ்தான்", "aeb": "துனிசிய அரபு", "af": "ஆஃப்ரிகான்ஸ்", "afh": "அஃப்ரிஹிலி", "agq": "அகெம்", "ain": "ஐனு", "ak": "அகான்", "akk": "அக்கேதியன்", "ale": "அலூட்", "alt": "தெற்கு அல்தை", "am": "அம்ஹாரிக்", "an": "ஆர்கோனீஸ்", "ang": "பழைய ஆங்கிலம்", "anp": "அங்கிகா", "ar": "அரபிக்", "ar-001": "நவீன நிலையான அரபிக்", "arc": "அராமைக்", "arn": "மபுச்சே", "arp": "அரபஹோ", "arw": "அராவாக்", "as": "அஸ்ஸாமீஸ்", "asa": "அசு", "ast": "அஸ்துரியன்", "av": "அவேரிக்", "awa": "அவதி", "ay": "அய்மரா", "az": "அஸர்பைஜானி", "ba": "பஷ்கிர்", "bal": "பலூச்சி", "ban": "பலினீஸ்", "bas": "பாஸா", "be": "பெலாருஷியன்", "bej": "பேஜா", "bem": "பெம்பா", "bez": "பெனா", "bfq": "படகா", "bg": "பல்கேரியன்", "bgn": "மேற்கு பலோச்சி", "bho": "போஜ்பூரி", "bi": "பிஸ்லாமா", "bik": "பிகோல்", "bin": "பினி", "bla": "சிக்சிகா", "bm": "பம்பாரா", "bn": "வங்காளம்", "bo": "திபெத்தியன்", "bpy": "பிஷ்ணுப்பிரியா", "br": "பிரெட்டன்", "bra": "ப்ராஜ்", "brx": "போடோ", "bs": "போஸ்னியன்", "bua": "புரியாத்", "bug": "புகினீஸ்", "byn": "ப்லின்", "ca": "கேட்டலான்", "cad": "கேடோ", "car": "கரீப்", "cch": "ஆட்சம்", "ce": "செச்சென்", "ceb": "செபுவானோ", "cgg": "சிகா", "ch": "சாமோரோ", "chb": "சிப்சா", "chg": "ஷகதை", "chk": "சூகிசே", "chm": "மாரி", "chn": "சினூக் ஜார்கான்", "cho": "சோக்தௌ", "chp": "சிபெவ்யான்", "chr": "செரோகீ", "chy": "செயேனி", "ckb": "மத்திய குர்திஷ்", "co": "கார்சிகன்", "cop": "காப்டிக்", "cr": "க்ரீ", "crh": "கிரிமியன் துர்க்கி", "crs": "செசெல்வா க்ரெயோல் பிரெஞ்சு", "cs": "செக்", "csb": "கஷுபியன்", "cu": "சர்ச் ஸ்லாவிக்", "cv": "சுவாஷ்", "cy": "வேல்ஷ்", "da": "டேனிஷ்", "dak": "டகோடா", "dar": "தார்குவா", "dav": "டைடா", "de": "ஜெர்மன்", "de-AT": "ஆஸ்திரிய ஜெர்மன்", "de-CH": "ஸ்விஸ் ஹை ஜெர்மன்", "del": "டெலாவர்", "den": "ஸ்லாவ்", "dgr": "டோக்ரிப்", "din": "டின்கா", "dje": "ஸார்மா", "doi": "டோக்ரி", "dsb": "லோயர் சோர்பியன்", "dua": "டுவாலா", "dum": "மிடில் டச்சு", "dv": "திவேஹி", "dyo": "ஜோலா-ஃபோன்யி", "dyu": "ட்யூலா", "dz": "பூடானி", "dzg": "டசாகா", "ebu": "எம்பு", "ee": "ஈவ்", "efi": "எஃபிக்", "egy": "பண்டைய எகிப்தியன்", "eka": "ஈகாஜுக்", "el": "கிரேக்கம்", "elx": "எலமைட்", "en": "ஆங்கிலம்", "en-AU": "ஆஸ்திரேலிய ஆங்கிலம்", "en-CA": "கனடிய ஆங்கிலம்", "en-GB": "பிரிட்டிஷ் ஆங்கிலம்", "en-US": "அமெரிக்க ஆங்கிலம்", "enm": "மிடில் ஆங்கிலம்", "eo": "எஸ்பரேன்டோ", "es": "ஸ்பானிஷ்", "es-419": "லத்தின் அமெரிக்க ஸ்பானிஷ்", "es-ES": "ஐரோப்பிய ஸ்பானிஷ்", "es-MX": "மெக்ஸிகன் ஸ்பானிஷ்", "et": "எஸ்டோனியன்", "eu": "பாஸ்க்", "ewo": "எவோன்டோ", "fa": "பெர்ஷியன்", "fan": "ஃபேங்க்", "fat": "ஃபான்டி", "ff": "ஃபுலா", "fi": "ஃபின்னிஷ்", "fil": "ஃபிலிபினோ", "fj": "ஃபிஜியன்", "fo": "ஃபரோயிஸ்", "fon": "ஃபான்", "fr": "பிரெஞ்சு", "fr-CA": "கனடிய பிரெஞ்சு", "fr-CH": "ஸ்விஸ் பிரஞ்சு", "frc": "கஜுன் பிரெஞ்சு", "frm": "மிடில் பிரெஞ்சு", "fro": "பழைய பிரெஞ்சு", "frr": "வடக்கு ஃப்ரிஸியான்", "frs": "கிழக்கு ஃப்ரிஸியான்", "fur": "ஃப்ரியூலியன்", "fy": "மேற்கு ஃப்ரிஷியன்", "ga": "ஐரிஷ்", "gaa": "கா", "gag": "காகௌஸ்", "gan": "கன் சீனம்", "gay": "கயோ", "gba": "பயா", "gd": "ஸ்காட்ஸ் கேலிக்", "gez": "கீஜ்", "gil": "கில்பெர்டீஸ்", "gl": "காலிஸியன்", "gmh": "மிடில் ஹை ஜெர்மன்", "gn": "க்வாரனி", "goh": "பழைய ஹை ஜெர்மன்", "gon": "கோன்டி", "gor": "கோரோன்டலோ", "got": "கோதிக்", "grb": "க்ரேபோ", "grc": "பண்டைய கிரேக்கம்", "gsw": "ஸ்விஸ் ஜெர்மன்", "gu": "குஜராத்தி", "guz": "குஸி", "gv": "மேங்க்ஸ்", "gwi": "குவிசின்", "ha": "ஹௌஸா", "hai": "ஹைடா", "hak": "ஹக்கா சீனம்", "haw": "ஹவாயியன்", "he": "ஹீப்ரூ", "hi": "இந்தி", "hif": "ஃபிஜி இந்தி", "hil": "ஹிலிகாய்னான்", "hit": "ஹிட்டைட்", "hmn": "மாங்க்", "ho": "ஹிரி மோட்டு", "hr": "குரோஷியன்", "hsb": "அப்பர் சோர்பியான்", "hsn": "சியாங்க் சீனம்", "ht": "ஹைத்தியன் க்ரியோலி", "hu": "ஹங்கேரியன்", "hup": "ஹுபா", "hy": "ஆர்மேனியன்", "hz": "ஹெரேரோ", "ia": "இன்டர்லிங்வா", "iba": "இபான்", "ibb": "இபிபியோ", "id": "இந்தோனேஷியன்", "ie": "இன்டர்லிங்", "ig": "இக்போ", "ii": "சிசுவான் ஈ", "ik": "இனுபியாக்", "ilo": "இலோகோ", "inh": "இங்குஷ்", "io": "இடோ", "is": "ஐஸ்லேண்டிக்", "it": "இத்தாலியன்", "iu": "இனுகிடூட்", "ja": "ஜப்பானியம்", "jbo": "லோஜ்பன்", "jgo": "நகொம்பா", "jmc": "மாசெம்", "jpr": "ஜூதேயோ-பெர்ஷியன்", "jrb": "ஜூதேயோ-அராபிக்", "jv": "ஜாவனீஸ்", "ka": "ஜார்ஜியன்", "kaa": "காரா-கல்பாக்", "kab": "கபாய்ல்", "kac": "காசின்", "kaj": "ஜ்ஜூ", "kam": "கம்பா", "kaw": "காவி", "kbd": "கபார்டியன்", "kcg": "தையாப்", "kde": "மகொண்டே", "kea": "கபுவெர்தியானு", "kfo": "கோரோ", "kg": "காங்கோ", "kha": "காஸி", "kho": "கோதானீஸ்", "khq": "கொய்ரா சீனீ", "ki": "கிகுயூ", "kj": "குவான்யாமா", "kk": "கசாக்", "kkj": "ககோ", "kl": "கலாலிசூட்", "kln": "கலின்ஜின்", "km": "கெமெர்", "kmb": "கிம்புன்து", "kn": "கன்னடம்", "ko": "கொரியன்", "koi": "கொமி-பெர்ம்யாக்", "kok": "கொங்கணி", "kos": "கோஸ்ரைன்", "kpe": "க்பெல்லே", "kr": "கனுரி", "krc": "கராசே-பல்கார்", "krl": "கரேலியன்", "kru": "குருக்", "ks": "காஷ்மிரி", "ksb": "ஷம்பாலா", "ksf": "பாஃபியா", "ksh": "கொலோக்னியன்", "ku": "குர்திஷ்", "kum": "கும்இக்", "kut": "குடேனை", "kv": "கொமி", "kw": "கார்னிஷ்", "ky": "கிர்கிஸ்", "la": "லத்தின்", "lad": "லடினோ", "lag": "லங்கி", "lah": "லஹன்டா", "lam": "லம்பா", "lb": "லக்ஸம்போர்கிஷ்", "lez": "லெஜ்ஜியன்", "lg": "கான்டா", "li": "லிம்பர்கிஷ்", "lkt": "லகோடா", "ln": "லிங்காலா", "lo": "லாவோ", "lol": "மோங்கோ", "lou": "லூசியானா க்ரயோல்", "loz": "லோசி", "lrc": "வடக்கு லுரி", "lt": "லிதுவேனியன்", "lu": "லுபா-கடாங்கா", "lua": "லுபா-லுலுலா", "lui": "லுய்சேனோ", "lun": "லூன்டா", "luo": "லுயோ", "lus": "மிஸோ", "luy": "லுயியா", "lv": "லாட்வியன்", "mad": "மதுரீஸ்", "mag": "மகாஹி", "mai": "மைதிலி", "mak": "மகாசார்", "man": "மான்டிங்கோ", "mas": "மாசாய்", "mdf": "மோக்க்ஷா", "mdr": "மான்டார்", "men": "மென்டீ", "mer": "மெரு", "mfe": "மொரிசியன்", "mg": "மலகாஸி", "mga": "மிடில் ஐரிஷ்", "mgh": "மகுவா-மீட்டோ", "mgo": "மேடா", "mh": "மார்ஷெலீஸ்", "mi": "மௌரி", "mic": "மிக்மாக்", "min": "மின்னாங்கபௌ", "mk": "மாஸிடோனியன்", "ml": "மலையாளம்", "mn": "மங்கோலியன்", "mnc": "மன்சூ", "mni": "மணிப்புரி", "moh": "மொஹாக்", "mos": "மோஸ்ஸி", "mr": "மராத்தி", "ms": "மலாய்", "mt": "மால்டிஸ்", "mua": "முன்டாங்", "mus": "க்ரீக்", "mwl": "மிரான்டீஸ்", "mwr": "மார்வாரி", "my": "பர்மீஸ்", "myv": "ஏர்ஜியா", "mzn": "மசந்தேரனி", "na": "நவ்ரூ", "nan": "மின் நான் சீனம்", "nap": "நியோபோலிடன்", "naq": "நாமா", "nb": "நார்வேஜியன் பொக்மால்", "nd": "வடக்கு தெபெலே", "nds": "லோ ஜெர்மன்", "nds-NL": "லோ சாக்ஸன்", "ne": "நேபாளி", "new": "நெவாரி", "ng": "தோங்கா", "nia": "நியாஸ்", "niu": "நியூவான்", "nl": "டச்சு", "nl-BE": "ஃப்லெமிஷ்", "nmg": "க்வாசியோ", "nn": "நார்வேஜியன் நியூநார்ஸ்க்", "nnh": "நெகெய்ம்பூன்", "no": "நார்வேஜியன்", "nog": "நோகை", "non": "பழைய நோர்ஸ்", "nqo": "என்‘கோ", "nr": "தெற்கு தெபெலே", "nso": "வடக்கு சோதோ", "nus": "நியூர்", "nv": "நவாஜோ", "nwc": "பாரம்பரிய நேவாரி", "ny": "நயன்ஜா", "nym": "நியாம்வேஜி", "nyn": "நியான்கோலே", "nyo": "நியோரோ", "nzi": "நிஜ்மா", "oc": "ஒக்கிடன்", "oj": "ஒஜிப்வா", "om": "ஒரோமோ", "or": "ஒடியா", "os": "ஒசெட்டிக்", "osa": "ஓசேஜ்", "ota": "ஓட்டோமான் துருக்கிஷ்", "pa": "பஞ்சாபி", "pag": "பன்காசினன்", "pal": "பாஹ்லவி", "pam": "பம்பாங்கா", "pap": "பபியாமென்டோ", "pau": "பலௌவன்", "pcm": "நைஜீரியன் பிட்கின்", "pdc": "பென்சில்வேனிய ஜெர்மன்", "peo": "பழைய பெர்ஷியன்", "phn": "ஃபொனிஷியன்", "pi": "பாலி", "pl": "போலிஷ்", "pon": "ஃபோன்பெயென்", "prg": "பிரஷ்யன்", "pro": "பழைய ப்ரோவென்சால்", "ps": "பஷ்தோ", "pt": "போர்ச்சுக்கீஸ்", "pt-BR": "பிரேசிலிய போர்ச்சுகீஸ்", "pt-PT": "ஐரோப்பிய போர்ச்சுகீஸ்", "qu": "க்வெச்சுவா", "quc": "கீசீ", "raj": "ராஜஸ்தானி", "rap": "ரபனுய்", "rar": "ரரோடோங்கன்", "rm": "ரோமான்ஷ்", "rn": "ருண்டி", "ro": "ரோமேனியன்", "ro-MD": "மோல்டாவியன்", "rof": "ரோம்போ", "rom": "ரோமானி", "root": "ரூட்", "ru": "ரஷியன்", "rup": "அரோமானியன்", "rw": "கின்யாருவான்டா", "rwk": "ருவா", "sa": "சமஸ்கிருதம்", "sad": "சான்டாவே", "sah": "சக்கா", "sam": "சமாரிடன் அராமைக்", "saq": "சம்புரு", "sas": "சாசாக்", "sat": "சான்டாலி", "saz": "சௌராஷ்டிரம்", "sba": "நெகாம்பே", "sbp": "சங்கு", "sc": "சார்தீனியன்", "scn": "சிசிலியன்", "sco": "ஸ்காட்ஸ்", "sd": "சிந்தி", "sdh": "தெற்கு குர்திஷ்", "se": "வடக்கு சமி", "seh": "செனா", "sel": "செல்குப்", "ses": "கொய்ராபோரோ சென்னி", "sg": "சாங்கோ", "sga": "பழைய ஐரிஷ்", "sh": "செர்போ-குரோஷியன்", "shi": "தசேஹித்", "shn": "ஷான்", "si": "சிங்களம்", "sid": "சிடாமோ", "sk": "ஸ்லோவாக்", "sl": "ஸ்லோவேனியன்", "sm": "சமோவான்", "sma": "தெற்கு சமி", "smj": "லுலே சமி", "smn": "இனாரி சமி", "sms": "ஸ்கோல்ட் சமி", "sn": "ஷோனா", "snk": "சோனின்கே", "so": "சோமாலி", "sog": "சோக்தியன்", "sq": "அல்பேனியன்", "sr": "செர்பியன்", "srn": "ஸ்ரானன் டோங்கோ", "srr": "செரெர்", "ss": "ஸ்வாடீ", "ssy": "சஹோ", "st": "தெற்கு ஸோதோ", "su": "சுண்டானீஸ்", "suk": "சுகுமா", "sus": "சுசு", "sux": "சுமேரியன்", "sv": "ஸ்வீடிஷ்", "sw": "ஸ்வாஹிலி", "sw-CD": "காங்கோ ஸ்வாஹிலி", "swb": "கொமோரியன்", "syc": "பாரம்பரிய சிரியாக்", "syr": "சிரியாக்", "ta": "தமிழ்", "te": "தெலுங்கு", "tem": "டிம்னே", "teo": "டெசோ", "ter": "டெரெனோ", "tet": "டெடும்", "tg": "தஜிக்", "th": "தாய்", "ti": "டிக்ரின்யா", "tig": "டைக்ரே", "tiv": "டிவ்", "tk": "துருக்மென்", "tkl": "டோகேலௌ", "tl": "டாகாலோக்", "tlh": "க்ளிங்கோன்", "tli": "லிங்கிட்", "tmh": "தமஷேக்", "tn": "ஸ்வானா", "to": "டோங்கான்", "tog": "நயாசா டோங்கா", "tpi": "டோக் பிஸின்", "tr": "துருக்கிஷ்", "trv": "தரோகோ", "ts": "ஸோங்கா", "tsi": "ட்ஸிம்ஷியன்", "tt": "டாடர்", "tum": "தும்புகா", "tvl": "டுவாலு", "tw": "ட்வி", "twq": "டசவாக்", "ty": "தஹிதியன்", "tyv": "டுவினியன்", "tzm": "மத்திய அட்லஸ் டமசைட்", "udm": "உட்முர்ட்", "ug": "உய்குர்", "uga": "உகாரிடிக்", "uk": "உக்ரைனியன்", "umb": "அம்பொண்டு", "ur": "உருது", "uz": "உஸ்பெக்", "vai": "வை", "ve": "வென்டா", "vi": "வியட்நாமீஸ்", "vo": "ஒலாபூக்", "vot": "வோட்க்", "vun": "வுன்ஜோ", "wa": "ஒவாலூன்", "wae": "வால்சேர்", "wal": "வோலாய்ட்டா", "war": "வாரே", "was": "வாஷோ", "wbp": "வல்பிரி", "wo": "ஓலோஃப்", "wuu": "வூ சீனம்", "xal": "கல்மிக்", "xh": "ஹோசா", "xog": "சோகா", "yao": "யாவ்", "yap": "யாபேசே", "yav": "யாங்பென்", "ybb": "யெம்பா", "yi": "யெட்டிஷ்", "yo": "யோருபா", "yue": "காண்டோனீஸ்", "za": "ஜுவாங்", "zap": "ஜாபோடெக்", "zbl": "ப்லிஸ்ஸிம்பால்ஸ்", "zen": "ஜெனகா", "zgh": "ஸ்டாண்டர்ட் மொராக்கன் தமாசைட்", "zh": "சீனம்", "zh-Hans": "எளிதாக்கப்பட்ட சீனம்", "zh-Hant": "பாரம்பரிய சீனம்", "zu": "ஜுலு", "zun": "ஜூனி", "zza": "ஜாஜா"}}, + "te": {"rtl": false, "languageNames": {"aa": "అఫార్", "ab": "అబ్ఖాజియన్", "ace": "ఆఖినీస్", "ach": "అకోలి", "ada": "అడాంగ్మే", "ady": "అడిగాబ్జే", "ae": "అవేస్టాన్", "aeb": "టునీషియా అరబిక్", "af": "ఆఫ్రికాన్స్", "afh": "అఫ్రిహిలి", "agq": "అగేమ్", "ain": "ఐను", "ak": "అకాన్", "akk": "అక్కాడియాన్", "ale": "అలియుట్", "alt": "దక్షిణ ఆల్టై", "am": "అమ్హారిక్", "an": "అరగోనిస్", "ang": "ప్రాచీన ఆంగ్లం", "anp": "ఆంగిక", "ar": "అరబిక్", "ar-001": "ఆధునిక ప్రామాణిక అరబిక్", "arc": "అరామైక్", "arn": "మపుచే", "arp": "అరాపాహో", "arw": "అరావాక్", "arz": "ఈజిప్షియన్ అరబిక్", "as": "అస్సామీస్", "asa": "అసు", "ast": "ఆస్టూరియన్", "av": "అవారిక్", "awa": "అవధి", "ay": "ఐమారా", "az": "అజర్బైజాని", "ba": "బాష్కిర్", "bal": "బాలుచి", "ban": "బాలినీస్", "bas": "బసా", "be": "బెలారుషియన్", "bej": "బేజా", "bem": "బెంబా", "bez": "బెనా", "bg": "బల్గేరియన్", "bgn": "పశ్చిమ బలూచీ", "bho": "భోజ్‌పురి", "bi": "బిస్లామా", "bik": "బికోల్", "bin": "బిని", "bla": "సిక్సికా", "bm": "బంబారా", "bn": "బంగ్లా", "bo": "టిబెటన్", "bpy": "బిష్ణుప్రియ", "br": "బ్రెటన్", "bra": "బ్రాజ్", "brx": "బోడో", "bs": "బోస్నియన్", "bua": "బురియట్", "bug": "బుగినీస్", "byn": "బ్లిన్", "ca": "కాటలాన్", "cad": "కేడ్డో", "car": "కేరిబ్", "cch": "అట్సామ్", "ce": "చెచెన్", "ceb": "సెబువానో", "cgg": "ఛిగా", "ch": "చమర్రో", "chb": "చిబ్చా", "chg": "చాగటై", "chk": "చూకీస్", "chm": "మారి", "chn": "చినూక్ జార్గన్", "cho": "చక్టా", "chp": "చిపెవ్యాన్", "chr": "చెరోకీ", "chy": "చేయేన్", "ckb": "సెంట్రల్ కర్డిష్", "co": "కోర్సికన్", "cop": "కోప్టిక్", "cr": "క్రి", "crh": "క్రిమియన్ టర్కిష్", "crs": "సెసేల్వా క్రియోల్ ఫ్రెంచ్", "cs": "చెక్", "csb": "కషుబియన్", "cu": "చర్చ్ స్లావిక్", "cv": "చువాష్", "cy": "వెల్ష్", "da": "డానిష్", "dak": "డకోటా", "dar": "డార్గ్వా", "dav": "టైటా", "de": "జర్మన్", "de-AT": "ఆస్ట్రియన్ జర్మన్", "de-CH": "స్విస్ హై జర్మన్", "del": "డెలావేర్", "den": "స్లేవ్", "dgr": "డోగ్రిబ్", "din": "డింకా", "dje": "జార్మా", "doi": "డోగ్రి", "dsb": "లోయర్ సోర్బియన్", "dua": "డ్యూలా", "dum": "మధ్యమ డచ్", "dv": "దివేహి", "dyo": "జోలా-ఫోనయి", "dyu": "డ్యులా", "dz": "జోంఖా", "dzg": "డాజాగా", "ebu": "ఇంబు", "ee": "యూ", "efi": "ఎఫిక్", "egy": "ప్రాచీన ఈజిప్షియన్", "eka": "ఏకాజక్", "el": "గ్రీక్", "elx": "ఎలామైట్", "en": "ఆంగ్లం", "en-AU": "ఆస్ట్రేలియన్ ఇంగ్లీష్", "en-CA": "కెనడియన్ ఇంగ్లీష్", "en-GB": "బ్రిటిష్ ఇంగ్లీష్", "en-US": "అమెరికన్ ఇంగ్లీష్", "enm": "మధ్యమ ఆంగ్లం", "eo": "ఎస్పెరాంటో", "es": "స్పానిష్", "es-419": "లాటిన్ అమెరికన్ స్పానిష్", "es-ES": "యూరోపియన్ స్పానిష్", "es-MX": "మెక్సికన్ స్పానిష్", "et": "ఎస్టోనియన్", "eu": "బాస్క్యూ", "ewo": "ఎవోండొ", "fa": "పర్షియన్", "fan": "ఫాంగ్", "fat": "ఫాంటి", "ff": "ఫ్యుల", "fi": "ఫిన్నిష్", "fil": "ఫిలిపినో", "fj": "ఫిజియన్", "fo": "ఫారోస్", "fon": "ఫాన్", "fr": "ఫ్రెంచ్", "fr-CA": "కెనడియెన్ ఫ్రెంచ్", "fr-CH": "స్విస్ ఫ్రెంచ్", "frc": "కాజున్ ఫ్రెంచ్", "frm": "మధ్యమ ప్రెంచ్", "fro": "ప్రాచీన ఫ్రెంచ్", "frr": "ఉత్తర ఫ్రిసియన్", "frs": "తూర్పు ఫ్రిసియన్", "fur": "ఫ్రియులియన్", "fy": "పశ్చిమ ఫ్రిసియన్", "ga": "ఐరిష్", "gaa": "గా", "gag": "గాగౌజ్", "gan": "గాన్ చైనీస్", "gay": "గాయో", "gba": "గ్బాయా", "gd": "స్కాటిష్ గేలిక్", "gez": "జీజ్", "gil": "గిల్బర్టీస్", "gl": "గాలిషియన్", "gmh": "మధ్యమ హై జర్మన్", "gn": "గ్వారనీ", "goh": "ప్రాచీన హై జర్మన్", "gon": "గోండి", "gor": "గోరోంటలా", "got": "గోథిక్", "grb": "గ్రేబో", "grc": "ప్రాచీన గ్రీక్", "gsw": "స్విస్ జర్మన్", "gu": "గుజరాతి", "guz": "గుస్సీ", "gv": "మాంక్స్", "gwi": "గ్విచిన్", "ha": "హౌసా", "hai": "హైడా", "hak": "హక్కా చైనీస్", "haw": "హవాయియన్", "he": "హిబ్రూ", "hi": "హిందీ", "hil": "హిలిగెనాన్", "hit": "హిట్టిటే", "hmn": "మోంగ్", "ho": "హిరి మోటు", "hr": "క్రొయేషియన్", "hsb": "అప్పర్ సోర్బియన్", "hsn": "జియాంగ్ చైనీస్", "ht": "హైటియన్ క్రియోల్", "hu": "హంగేరియన్", "hup": "హుపా", "hy": "ఆర్మేనియన్", "hz": "హెరెరో", "ia": "ఇంటర్లింగ్వా", "iba": "ఐబాన్", "ibb": "ఇబిబియో", "id": "ఇండోనేషియన్", "ie": "ఇంటర్లింగ్", "ig": "ఇగ్బో", "ii": "శిషువన్ ఈ", "ik": "ఇనుపైయాక్", "ilo": "ఐలోకో", "inh": "ఇంగుష్", "io": "ఈడో", "is": "ఐస్లాండిక్", "it": "ఇటాలియన్", "iu": "ఇనుక్టిటుట్", "ja": "జపనీస్", "jbo": "లోజ్బాన్", "jgo": "గోంబా", "jmc": "మకొమ్", "jpr": "జ్యుడియో-పర్షియన్", "jrb": "జ్యుడియో-అరబిక్", "jv": "జావనీస్", "ka": "జార్జియన్", "kaa": "కారా-కల్పాక్", "kab": "కాబిల్", "kac": "కాచిన్", "kaj": "జ్యూ", "kam": "కంబా", "kaw": "కావి", "kbd": "కబార్డియన్", "kcg": "ట్యాప్", "kde": "మకొండే", "kea": "కాబువేర్దియను", "kfo": "కోరో", "kg": "కోంగో", "kha": "ఖాసి", "kho": "ఖోటనీస్", "khq": "కొయరా చీన్నీ", "ki": "కికుయు", "kj": "క్వాన్యామ", "kk": "కజఖ్", "kkj": "కాకో", "kl": "కలాల్లిసూట్", "kln": "కలెంజిన్", "km": "ఖ్మేర్", "kmb": "కిమ్బుండు", "kn": "కన్నడ", "ko": "కొరియన్", "koi": "కోమి-పర్మాక్", "kok": "కొంకణి", "kos": "కోస్రేయన్", "kpe": "పెల్లే", "kr": "కానురి", "krc": "కరచే-బల్కార్", "krl": "కరేలియన్", "kru": "కూరుఖ్", "ks": "కాశ్మీరి", "ksb": "శంబాలా", "ksf": "బాఫియ", "ksh": "కొలోనియన్", "ku": "కుర్దిష్", "kum": "కుమ్యిక్", "kut": "కుటేనై", "kv": "కోమి", "kw": "కోర్నిష్", "ky": "కిర్గిజ్", "la": "లాటిన్", "lad": "లాడినో", "lag": "లాంగీ", "lah": "లాహండా", "lam": "లాంబా", "lb": "లక్సెంబర్గిష్", "lez": "లేజ్ఘియన్", "lg": "గాండా", "li": "లిమ్బర్గిష్", "lkt": "లకొటా", "ln": "లింగాల", "lo": "లావో", "lol": "మొంగో", "lou": "లూసియానా క్రియోల్", "loz": "లోజి", "lrc": "ఉత్తర లూరీ", "lt": "లిథువేనియన్", "lu": "లూబ-కటాంగ", "lua": "లుబా-లులువ", "lui": "లుయిసెనో", "lun": "లుండా", "luo": "లువో", "lus": "మిజో", "luy": "లుయియ", "lv": "లాట్వియన్", "mad": "మాదురీస్", "mag": "మగాహి", "mai": "మైథిలి", "mak": "మకాసార్", "man": "మండింగో", "mas": "మాసై", "mdf": "మోక్ష", "mdr": "మండార్", "men": "మెండే", "mer": "మెరు", "mfe": "మొరిస్యేన్", "mg": "మలగాసి", "mga": "మధ్యమ ఐరిష్", "mgh": "మక్వా-మిట్టో", "mgo": "మెటా", "mh": "మార్షలీస్", "mi": "మావొరీ", "mic": "మికమాక్", "min": "మినాంగ్‌కాబో", "mk": "మాసిడోనియన్", "ml": "మలయాళం", "mn": "మంగోలియన్", "mnc": "మంచు", "mni": "మణిపురి", "moh": "మోహాక్", "mos": "మోస్సి", "mr": "మరాఠీ", "ms": "మలయ్", "mt": "మాల్టీస్", "mua": "మండాంగ్", "mus": "క్రీక్", "mwl": "మిరాండిస్", "mwr": "మార్వాడి", "my": "బర్మీస్", "myv": "ఎర్జియా", "mzn": "మాసన్‌దెరాని", "na": "నౌరు", "nan": "మిన్ నాన్ చైనీస్", "nap": "నియాపోలిటన్", "naq": "నమ", "nb": "నార్వేజియన్ బొక్మాల్", "nd": "ఉత్తర దెబెలె", "nds": "లో జర్మన్", "nds-NL": "లో సాక్సన్", "ne": "నేపాలి", "new": "నెవారి", "ng": "డోంగా", "nia": "నియాస్", "niu": "నియాన్", "nl": "డచ్", "nl-BE": "ఫ్లెమిష్", "nmg": "క్వాసియె", "nn": "నార్వేజియాన్ న్యోర్స్క్", "nnh": "గింబూన్", "no": "నార్వేజియన్", "nog": "నోగై", "non": "ప్రాచిన నోర్స్", "nqo": "న్కో", "nr": "దక్షిణ దెబెలె", "nso": "ఉత్తర సోతో", "nus": "న్యుర్", "nv": "నవాజొ", "nwc": "సాంప్రదాయ న్యూయారీ", "ny": "న్యాన్జా", "nym": "న్యంవేజి", "nyn": "న్యాన్కోలె", "nyo": "నేయోరో", "nzi": "జీమా", "oc": "ఆక్సిటన్", "oj": "చేవా", "om": "ఒరోమో", "or": "ఒడియా", "os": "ఒసేటిక్", "osa": "ఒసాజ్", "ota": "ఒట్టోమన్ టర్కిష్", "pa": "పంజాబీ", "pag": "పంగాసినాన్", "pal": "పహ్లావి", "pam": "పంపన్గా", "pap": "పపియమేంటో", "pau": "పలావెన్", "pcm": "నైజీరియా పిడ్గిన్", "peo": "ప్రాచీన పర్షియన్", "phn": "ఫోనికన్", "pi": "పాలీ", "pl": "పోలిష్", "pon": "పోహ్న్పెయన్", "prg": "ప్రష్యన్", "pro": "ప్రాచీన ప్రోవెంసాల్", "ps": "పాష్టో", "pt": "పోర్చుగీస్", "pt-BR": "బ్రెజీలియన్ పోర్చుగీస్", "pt-PT": "యూరోపియన్ పోర్చుగీస్", "qu": "కెచువా", "quc": "కిచే", "raj": "రాజస్తానీ", "rap": "రాపన్యుయి", "rar": "రారోటొంగాన్", "rm": "రోమన్ష్", "rn": "రుండి", "ro": "రోమేనియన్", "ro-MD": "మొల్డావియన్", "rof": "రోంబో", "rom": "రోమానీ", "root": "రూట్", "ru": "రష్యన్", "rup": "ఆరోమేనియన్", "rw": "కిన్యర్వాండా", "rwk": "ర్వా", "sa": "సంస్కృతం", "sad": "సండావి", "sah": "సాఖా", "sam": "సమారిటన్ అరామైక్", "saq": "సంబురు", "sas": "ససక్", "sat": "సంతాలి", "sba": "గాంబే", "sbp": "సాంగు", "sc": "సార్డీనియన్", "scn": "సిసిలియన్", "sco": "స్కాట్స్", "sd": "సింధీ", "sdh": "దక్షిణ కుర్డిష్", "se": "ఉత్తర సామి", "seh": "సెనా", "sel": "సేల్కప్", "ses": "కోయోరాబోరో సెన్నీ", "sg": "సాంగో", "sga": "ప్రాచీన ఐరిష్", "sh": "సేర్బో-క్రొయేషియన్", "shi": "టాచెల్‌హిట్", "shn": "షాన్", "si": "సింహళం", "sid": "సిడామో", "sk": "స్లోవక్", "sl": "స్లోవేనియన్", "sm": "సమోవన్", "sma": "దక్షిణ సామి", "smj": "లులే సామి", "smn": "ఇనారి సామి", "sms": "స్కోల్ట్ సామి", "sn": "షోన", "snk": "సోనింకి", "so": "సోమాలి", "sog": "సోగ్డియన్", "sq": "అల్బేనియన్", "sr": "సెర్బియన్", "srn": "స్రానన్ టోంగో", "srr": "సెరేర్", "ss": "స్వాతి", "ssy": "సాహో", "st": "దక్షిణ సోతో", "su": "సండానీస్", "suk": "సుకుమా", "sus": "సుసు", "sux": "సుమేరియాన్", "sv": "స్వీడిష్", "sw": "స్వాహిలి", "sw-CD": "కాంగో స్వాహిలి", "swb": "కొమొరియన్", "syc": "సాంప్రదాయ సిరియాక్", "syr": "సిరియాక్", "ta": "తమిళము", "tcy": "తుళు", "te": "తెలుగు", "tem": "టిమ్నే", "teo": "టెసో", "ter": "టెరెనో", "tet": "టేటం", "tg": "తజిక్", "th": "థాయ్", "ti": "టిగ్రిన్యా", "tig": "టీగ్రె", "tiv": "టివ్", "tk": "తుర్క్‌మెన్", "tkl": "టోకెలావ్", "tl": "టగలాగ్", "tlh": "క్లింగాన్", "tli": "ట్లింగిట్", "tmh": "టామషేక్", "tn": "స్వానా", "to": "టాంగాన్", "tog": "న్యాసా టోన్గా", "tpi": "టోక్ పిసిన్", "tr": "టర్కిష్", "trv": "తరోకో", "ts": "సోంగా", "tsi": "శింషీయన్", "tt": "టాటర్", "tum": "టుంబుకా", "tvl": "టువాలు", "tw": "ట్వి", "twq": "టసావాఖ్", "ty": "తహితియన్", "tyv": "టువినియన్", "tzm": "సెంట్రల్ అట్లాస్ టామాజైట్", "udm": "ఉడ్ముర్ట్", "ug": "ఉయ్‌ఘర్", "uga": "ఉగారిటిక్", "uk": "ఉక్రెయినియన్", "umb": "ఉమ్బుండు", "ur": "ఉర్దూ", "uz": "ఉజ్బెక్", "vai": "వాయి", "ve": "వెండా", "vi": "వియత్నామీస్", "vo": "వోలాపుక్", "vot": "వోటిక్", "vun": "వుంజొ", "wa": "వాలూన్", "wae": "వాల్సర్", "wal": "వాలేట్టా", "war": "వారే", "was": "వాషో", "wbp": "వార్లపిరి", "wo": "ఉలూఫ్", "wuu": "వు చైనీస్", "xal": "కల్మిక్", "xh": "షోసా", "xog": "సొగా", "yao": "యాయే", "yap": "యాపిస్", "yav": "యాంగ్‌బెన్", "ybb": "యెంబా", "yi": "ఇడ్డిష్", "yo": "యోరుబా", "yue": "కాంటనీస్", "za": "జువాన్", "zap": "జపోటెక్", "zbl": "బ్లిసింబల్స్", "zen": "జెనాగా", "zgh": "ప్రామాణిక మొరొకన్ టామజైట్", "zh": "చైనీస్", "zh-Hans": "సరళీకృత చైనీస్", "zh-Hant": "సాంప్రదాయక చైనీస్", "zu": "జూలూ", "zun": "జుని", "zza": "జాజా"}}, + "th": {"rtl": false, "languageNames": {"aa": "อะฟาร์", "ab": "อับฮาเซีย", "ace": "อาเจะห์", "ach": "อาโคลิ", "ada": "อาแดงมี", "ady": "อะดืยเก", "ae": "อเวสตะ", "aeb": "อาหรับตูนิเซีย", "af": "แอฟริกานส์", "afh": "แอฟริฮีลี", "agq": "อักเฮม", "ain": "ไอนุ", "ak": "อาคาน", "akk": "อักกาด", "akz": "แอละแบมา", "ale": "อาลิวต์", "aln": "เกกแอลเบเนีย", "alt": "อัลไตใต้", "am": "อัมฮารา", "an": "อารากอน", "ang": "อังกฤษโบราณ", "anp": "อังคิกา", "ar": "อาหรับ", "ar-001": "อาหรับมาตรฐานสมัยใหม่", "arc": "อราเมอิก", "arn": "มาปูเช", "aro": "อาเรานา", "arp": "อาราปาโฮ", "arq": "อาหรับแอลจีเรีย", "ars": "อาหรับนัจญ์ดี", "arw": "อาราวัก", "ary": "อาหรับโมร็อกโก", "arz": "อาหรับพื้นเมืองอียิปต์", "as": "อัสสัม", "asa": "อาซู", "ase": "ภาษามืออเมริกัน", "ast": "อัสตูเรียส", "av": "อาวาร์", "avk": "โคตาวา", "awa": "อวธี", "ay": "ไอย์มารา", "az": "อาเซอร์ไบจาน", "ba": "บัชคีร์", "bal": "บาลูชิ", "ban": "บาหลี", "bar": "บาวาเรีย", "bas": "บาสา", "bax": "บามัน", "bbc": "บาตักโทบา", "bbj": "โคมาลา", "be": "เบลารุส", "bej": "เบจา", "bem": "เบมบา", "bew": "เบตาวี", "bez": "เบนา", "bfd": "บาฟัต", "bfq": "พทคะ", "bg": "บัลแกเรีย", "bgn": "บาลูจิตะวันตก", "bho": "โภชปุรี", "bi": "บิสลามา", "bik": "บิกอล", "bin": "บินี", "bjn": "บันจาร์", "bkm": "กม", "bla": "สิกสิกา", "bm": "บัมบารา", "bn": "บังกลา", "bo": "ทิเบต", "bpy": "พิศนุปริยะ", "bqi": "บักติยารี", "br": "เบรตัน", "bra": "พัรช", "brh": "บราฮุย", "brx": "โพโฑ", "bs": "บอสเนีย", "bss": "อาโคซี", "bua": "บูเรียต", "bug": "บูกิส", "bum": "บูลู", "byn": "บลิน", "byv": "เมดุมบา", "ca": "คาตาลัน", "cad": "คัดโด", "car": "คาริบ", "cay": "คายูกา", "cch": "แอตแซม", "ce": "เชเชน", "ceb": "เซบู", "cgg": "คีกา", "ch": "ชามอร์โร", "chb": "ชิบชา", "chg": "ชะกะไต", "chk": "ชูก", "chm": "มารี", "chn": "ชินุกจาร์กอน", "cho": "ช็อกทอว์", "chp": "ชิพิวยัน", "chr": "เชอโรกี", "chy": "เชเยนเน", "ckb": "เคิร์ดตอนกลาง", "co": "คอร์ซิกา", "cop": "คอปติก", "cps": "กาปิซนอน", "cr": "ครี", "crh": "ตุรกีไครเมีย", "crs": "ครีโอลเซเซลส์ฝรั่งเศส", "cs": "เช็ก", "csb": "คาซูเบียน", "cu": "เชอร์ชสลาวิก", "cv": "ชูวัช", "cy": "เวลส์", "da": "เดนมาร์ก", "dak": "ดาโกทา", "dar": "ดาร์กิน", "dav": "ไททา", "de": "เยอรมัน", "de-AT": "เยอรมัน - ออสเตรีย", "de-CH": "เยอรมันสูง (สวิส)", "del": "เดลาแวร์", "den": "สเลวี", "dgr": "โดกริบ", "din": "ดิงกา", "dje": "ซาร์มา", "doi": "โฑครี", "dsb": "ซอร์เบียตอนล่าง", "dtp": "ดูซุนกลาง", "dua": "ดัวลา", "dum": "ดัตช์กลาง", "dv": "ธิเวหิ", "dyo": "โจลา-ฟอนยี", "dyu": "ดิวลา", "dz": "ซองคา", "dzg": "ดาซากา", "ebu": "เอ็มบู", "ee": "เอเว", "efi": "อีฟิก", "egl": "เอมีเลีย", "egy": "อียิปต์โบราณ", "eka": "อีกาจุก", "el": "กรีก", "elx": "อีลาไมต์", "en": "อังกฤษ", "en-AU": "อังกฤษ - ออสเตรเลีย", "en-CA": "อังกฤษ - แคนาดา", "en-GB": "อังกฤษ - สหราชอาณาจักร", "en-US": "อังกฤษ - อเมริกัน", "enm": "อังกฤษกลาง", "eo": "เอสเปรันโต", "es": "สเปน", "es-419": "สเปน - ละตินอเมริกา", "es-ES": "สเปน - ยุโรป", "es-MX": "สเปน - เม็กซิโก", "esu": "ยูพิกกลาง", "et": "เอสโตเนีย", "eu": "บาสก์", "ewo": "อีวันโด", "ext": "เอกซ์เตรมาดูรา", "fa": "เปอร์เซีย", "fan": "ฟอง", "fat": "ฟันติ", "ff": "ฟูลาห์", "fi": "ฟินแลนด์", "fil": "ฟิลิปปินส์", "fit": "ฟินแลนด์ทอร์เนดาเล็น", "fj": "ฟิจิ", "fo": "แฟโร", "fon": "ฟอน", "fr": "ฝรั่งเศส", "fr-CA": "ฝรั่งเศส - แคนาดา", "fr-CH": "ฝรั่งเศส (สวิส)", "frc": "ฝรั่งเศสกาฌ็อง", "frm": "ฝรั่งเศสกลาง", "fro": "ฝรั่งเศสโบราณ", "frp": "อาร์พิตา", "frr": "ฟริเซียนเหนือ", "frs": "ฟริเซียนตะวันออก", "fur": "ฟรูลี", "fy": "ฟริเซียนตะวันตก", "ga": "ไอริช", "gaa": "กา", "gag": "กากาอุซ", "gan": "จีนกั้น", "gay": "กาโย", "gba": "กบายา", "gbz": "ดารีโซโรอัสเตอร์", "gd": "เกลิกสกอต", "gez": "กีซ", "gil": "กิลเบอร์ต", "gl": "กาลิเซีย", "glk": "กิลากี", "gmh": "เยอรมันสูงกลาง", "gn": "กัวรานี", "goh": "เยอรมันสูงโบราณ", "gom": "กอนกานีของกัว", "gon": "กอนดิ", "gor": "กอรอนทาโล", "got": "โกธิก", "grb": "เกรโบ", "grc": "กรีกโบราณ", "gsw": "เยอรมันสวิส", "gu": "คุชราต", "guc": "วายู", "gur": "ฟราฟรา", "guz": "กุซซี", "gv": "มานซ์", "gwi": "กวิชอิน", "ha": "เฮาซา", "hai": "ไฮดา", "hak": "จีนแคะ", "haw": "ฮาวาย", "he": "ฮิบรู", "hi": "ฮินดี", "hif": "ฮินดีฟิจิ", "hil": "ฮีลีกัยนน", "hit": "ฮิตไตต์", "hmn": "ม้ง", "ho": "ฮีรีโมตู", "hr": "โครเอเชีย", "hsb": "ซอร์เบียตอนบน", "hsn": "จีนเซียง", "ht": "เฮติครีโอล", "hu": "ฮังการี", "hup": "ฮูปา", "hy": "อาร์เมเนีย", "hz": "เฮเรโร", "ia": "อินเตอร์ลิงกัว", "iba": "อิบาน", "ibb": "อิบิบิโอ", "id": "อินโดนีเซีย", "ie": "อินเตอร์ลิงกิว", "ig": "อิกโบ", "ii": "เสฉวนยิ", "ik": "อีนูเปียก", "ilo": "อีโลโก", "inh": "อินกุช", "io": "อีโด", "is": "ไอซ์แลนด์", "it": "อิตาลี", "iu": "อินุกติตุต", "izh": "อินเกรียน", "ja": "ญี่ปุ่น", "jam": "อังกฤษคลีโอลจาเมกา", "jbo": "โลชบัน", "jgo": "อึนกอมบา", "jmc": "มาชาเม", "jpr": "ยิว-เปอร์เซีย", "jrb": "ยิว-อาหรับ", "jut": "จัท", "jv": "ชวา", "ka": "จอร์เจีย", "kaa": "การา-กาลพาก", "kab": "กาไบล", "kac": "กะฉิ่น", "kaj": "คจู", "kam": "คัมบา", "kaw": "กวี", "kbd": "คาร์บาเดีย", "kbl": "คาเนมบู", "kcg": "ทีแยป", "kde": "มาคอนเด", "kea": "คาบูเวอร์เดียนู", "ken": "เกินยาง", "kfo": "โคโร", "kg": "คองโก", "kgp": "เคนก่าง", "kha": "กาสี", "kho": "โคตัน", "khq": "โคย์ราชีนี", "khw": "โควาร์", "ki": "กีกูยู", "kiu": "เคอร์มานิกิ", "kj": "กวนยามา", "kk": "คาซัค", "kkj": "คาโก", "kl": "กรีนแลนด์", "kln": "คาเลนจิน", "km": "เขมร", "kmb": "คิมบุนดู", "kn": "กันนาดา", "ko": "เกาหลี", "koi": "โคมิ-เปียร์เมียค", "kok": "กอนกานี", "kos": "คูสไร", "kpe": "กาแปล", "kr": "คานูรี", "krc": "คาราไช-บัลคาร์", "kri": "คริโอ", "krj": "กินารายอา", "krl": "แกรเลียน", "kru": "กุรุข", "ks": "แคชเมียร์", "ksb": "ชัมบาลา", "ksf": "บาเฟีย", "ksh": "โคโลญ", "ku": "เคิร์ด", "kum": "คูมืยค์", "kut": "คูเทไน", "kv": "โกมิ", "kw": "คอร์นิช", "ky": "คีร์กีซ", "la": "ละติน", "lad": "ลาดิโน", "lag": "แลนจี", "lah": "ลาฮ์นดา", "lam": "แลมบา", "lb": "ลักเซมเบิร์ก", "lez": "เลซเกียน", "lfn": "ลิงกัวฟรังกาโนวา", "lg": "ยูกันดา", "li": "ลิมเบิร์ก", "lij": "ลิกูเรีย", "liv": "ลิโวเนีย", "lkt": "ลาโกตา", "lmo": "ลอมบาร์ด", "ln": "ลิงกาลา", "lo": "ลาว", "lol": "มองโก", "lou": "ภาษาครีโอลุยเซียนา", "loz": "โลซิ", "lrc": "ลูรีเหนือ", "lt": "ลิทัวเนีย", "ltg": "ลัตเกล", "lu": "ลูบา-กาตองกา", "lua": "ลูบา-ลูลัว", "lui": "ลุยเซโน", "lun": "ลันดา", "luo": "ลัว", "lus": "มิโซ", "luy": "ลูเยีย", "lv": "ลัตเวีย", "lzh": "จีนคลาสสิก", "lzz": "แลซ", "mad": "มาดูรา", "maf": "มาฟา", "mag": "มคหี", "mai": "ไมถิลี", "mak": "มากาซาร์", "man": "มันดิงกา", "mas": "มาไซ", "mde": "มาบา", "mdf": "มอคชา", "mdr": "มานดาร์", "men": "เมนเด", "mer": "เมรู", "mfe": "มอริสเยน", "mg": "มาลากาซี", "mga": "ไอริชกลาง", "mgh": "มากัววา-มีทโท", "mgo": "เมตา", "mh": "มาร์แชลลิส", "mi": "เมารี", "mic": "มิกแมก", "min": "มีนังกาเบา", "mk": "มาซิโดเนีย", "ml": "มาลายาลัม", "mn": "มองโกเลีย", "mnc": "แมนจู", "mni": "มณีปุระ", "moh": "โมฮอว์ก", "mos": "โมซี", "mr": "มราฐี", "mrj": "มารีตะวันตก", "ms": "มาเลย์", "mt": "มอลตา", "mua": "มันดัง", "mus": "ครีก", "mwl": "มีรันดา", "mwr": "มารวาฑี", "mwv": "เม็นตาไว", "my": "พม่า", "mye": "มยีน", "myv": "เอียร์ซยา", "mzn": "มาซันดารานี", "na": "นาอูรู", "nan": "จีนมินหนาน", "nap": "นาโปลี", "naq": "นามา", "nb": "นอร์เวย์บุคมอล", "nd": "เอ็นเดเบเลเหนือ", "nds": "เยอรมันต่ำ", "nds-NL": "แซกซอนใต้", "ne": "เนปาล", "new": "เนวาร์", "ng": "ดองกา", "nia": "นีอัส", "niu": "นีวเว", "njo": "อ๋าวนากา", "nl": "ดัตช์", "nl-BE": "เฟลมิช", "nmg": "กวาซิโอ", "nn": "นอร์เวย์นีนอสก์", "nnh": "จีมบูน", "no": "นอร์เวย์", "nog": "โนไก", "non": "นอร์สโบราณ", "nov": "โนเวียล", "nqo": "เอ็นโก", "nr": "เอ็นเดเบเลใต้", "nso": "โซโทเหนือ", "nus": "เนือร์", "nv": "นาวาโฮ", "nwc": "เนวาร์ดั้งเดิม", "ny": "เนียนจา", "nym": "เนียมเวซี", "nyn": "เนียนโกเล", "nyo": "นิโอโร", "nzi": "นซิมา", "oc": "อ็อกซิตัน", "oj": "โอจิบวา", "om": "โอโรโม", "or": "โอดิยา", "os": "ออสเซเตีย", "osa": "โอซากี", "ota": "ตุรกีออตโตมัน", "pa": "ปัญจาบ", "pag": "ปางาซีนัน", "pal": "ปะห์ลาวี", "pam": "ปัมปางา", "pap": "ปาเปียเมนโต", "pau": "ปาเลา", "pcd": "ปิการ์", "pcm": "พิดจิน", "pdc": "เยอรมันเพนซิลเวเนีย", "pdt": "เพลาท์ดิช", "peo": "เปอร์เซียโบราณ", "pfl": "เยอรมันพาลาทิเนต", "phn": "ฟินิเชีย", "pi": "บาลี", "pl": "โปแลนด์", "pms": "พีดมอนต์", "pnt": "พอนติก", "pon": "พอห์นเพ", "prg": "ปรัสเซีย", "pro": "โปรวองซาลโบราณ", "ps": "พัชโต", "pt": "โปรตุเกส", "pt-BR": "โปรตุเกส - บราซิล", "pt-PT": "โปรตุเกส - ยุโรป", "qu": "เคชวา", "quc": "กีเช", "qug": "ควิชัวไฮแลนด์ชิมโบราโซ", "raj": "ราชสถาน", "rap": "ราปานู", "rar": "ราโรทองกา", "rgn": "โรมัณโญ", "rif": "ริฟฟิอัน", "rm": "โรแมนซ์", "rn": "บุรุนดี", "ro": "โรมาเนีย", "ro-MD": "มอลโดวา", "rof": "รอมโบ", "rom": "โรมานี", "root": "รูท", "rtm": "โรทูมัน", "ru": "รัสเซีย", "rue": "รูซิน", "rug": "โรเวียนา", "rup": "อาโรมาเนียน", "rw": "รวันดา", "rwk": "รวา", "sa": "สันสกฤต", "sad": "ซันดาเว", "sah": "ซาคา", "sam": "อราเมอิกซามาเรีย", "saq": "แซมบูรู", "sas": "ซาซัก", "sat": "สันตาลี", "saz": "เสาราษฏร์", "sba": "กัมเบ", "sbp": "แซงกู", "sc": "ซาร์เดญา", "scn": "ซิซิลี", "sco": "สกอตส์", "sd": "สินธิ", "sdc": "ซาร์ดิเนียซาสซารี", "sdh": "เคอร์ดิชใต้", "se": "ซามิเหนือ", "see": "เซนิกา", "seh": "เซนา", "sei": "เซรี", "sel": "เซลคุป", "ses": "โคย์ราโบโรเซนนี", "sg": "ซันโก", "sga": "ไอริชโบราณ", "sgs": "ซาโมจิเตียน", "sh": "เซอร์โบ-โครเอเชีย", "shi": "ทาเชลีห์ท", "shn": "ไทใหญ่", "shu": "อาหรับ-ชาด", "si": "สิงหล", "sid": "ซิดาโม", "sk": "สโลวัก", "sl": "สโลวีเนีย", "sli": "ไซลีเซียตอนล่าง", "sly": "เซลายาร์", "sm": "ซามัว", "sma": "ซามิใต้", "smj": "ซามิลูเล", "smn": "ซามิอีนารี", "sms": "ซามิสคอลต์", "sn": "โชนา", "snk": "โซนีนเก", "so": "โซมาลี", "sog": "ซอกดีน", "sq": "แอลเบเนีย", "sr": "เซอร์เบีย", "srn": "ซูรินาเม", "srr": "เซแรร์", "ss": "สวาติ", "ssy": "ซาโฮ", "st": "โซโทใต้", "stq": "ฟรีเซียนซัทเธอร์แลนด์", "su": "ซุนดา", "suk": "ซูคูมา", "sus": "ซูซู", "sux": "ซูเมอ", "sv": "สวีเดน", "sw": "สวาฮีลี", "sw-CD": "สวาฮีลี - คองโก", "swb": "โคเมอเรียน", "syc": "ซีเรียแบบดั้งเดิม", "syr": "ซีเรีย", "szl": "ไซลีเซีย", "ta": "ทมิฬ", "tcy": "ตูลู", "te": "เตลูกู", "tem": "ทิมเน", "teo": "เตโซ", "ter": "เทเรโน", "tet": "เตตุม", "tg": "ทาจิก", "th": "ไทย", "ti": "ติกริญญา", "tig": "ตีเกร", "tiv": "ทิฟ", "tk": "เติร์กเมน", "tkl": "โตเกเลา", "tkr": "แซคเซอร์", "tl": "ตากาล็อก", "tlh": "คลิงงอน", "tli": "ทลิงกิต", "tly": "ทาลิช", "tmh": "ทามาเชก", "tn": "บอตสวานา", "to": "ตองกา", "tog": "ไนอะซาตองกา", "tpi": "ท็อกพิซิน", "tr": "ตุรกี", "tru": "ตูโรโย", "trv": "ทาโรโก", "ts": "ซิตซองกา", "tsd": "ซาโคเนีย", "tsi": "ซิมชีแอน", "tt": "ตาตาร์", "ttt": "ตัตมุสลิม", "tum": "ทุมบูกา", "tvl": "ตูวาลู", "tw": "ทวิ", "twq": "ตัสซาวัค", "ty": "ตาฮิตี", "tyv": "ตูวา", "tzm": "ทามาไซต์แอตลาสกลาง", "udm": "อุดมูร์ต", "ug": "อุยกูร์", "uga": "ยูการิต", "uk": "ยูเครน", "umb": "อุมบุนดู", "ur": "อูรดู", "uz": "อุซเบก", "vai": "ไว", "ve": "เวนดา", "vec": "เวเนโต้", "vep": "เวปส์", "vi": "เวียดนาม", "vls": "เฟลมิชตะวันตก", "vmf": "เมน-ฟรานโกเนีย", "vo": "โวลาพึค", "vot": "โวทิก", "vro": "โวโร", "vun": "วุนจู", "wa": "วาโลนี", "wae": "วัลเซอร์", "wal": "วาลาโม", "war": "วาเรย์", "was": "วาโช", "wbp": "วอล์เพอร์รี", "wo": "โวลอฟ", "wuu": "จีนอู๋", "xal": "คัลมืยค์", "xh": "คะห์โอซา", "xmf": "เมเกรเลีย", "xog": "โซกา", "yao": "เย้า", "yap": "ยัป", "yav": "แยงเบน", "ybb": "เยมบา", "yi": "ยิดดิช", "yo": "โยรูบา", "yrl": "เหงงกาตุ", "yue": "กวางตุ้ง", "za": "จ้วง", "zap": "ซาโปเตก", "zbl": "บลิสซิมโบลส์", "zea": "เซแลนด์", "zen": "เซนากา", "zgh": "ทามาไซต์โมร็อกโกมาตรฐาน", "zh": "จีน", "zh-Hans": "จีนประยุกต์", "zh-Hant": "จีนดั้งเดิม", "zu": "ซูลู", "zun": "ซูนิ", "zza": "ซาซา"}}, + "tl": {"rtl": false, "languageNames": {}}, + "tr": {"rtl": false, "languageNames": {"aa": "Afar", "ab": "Abhazca", "ace": "Açece", "ach": "Acoli", "ada": "Adangme", "ady": "Adigece", "ae": "Avestçe", "aeb": "Tunus Arapçası", "af": "Afrikaanca", "afh": "Afrihili", "agq": "Aghem", "ain": "Ayni Dili", "ak": "Akan", "akk": "Akad Dili", "akz": "Alabamaca", "ale": "Aleut dili", "aln": "Gheg Arnavutçası", "alt": "Güney Altayca", "am": "Amharca", "an": "Aragonca", "ang": "Eski İngilizce", "anp": "Angika", "ar": "Arapça", "ar-001": "Modern Standart Arapça", "arc": "Aramice", "arn": "Mapuçe dili", "aro": "Araona", "arp": "Arapaho Dili", "arq": "Cezayir Arapçası", "ars": "Necd Arapçası", "arw": "Arawak Dili", "ary": "Fas Arapçası", "arz": "Mısır Arapçası", "as": "Assamca", "asa": "Asu", "ase": "Amerikan İşaret Dili", "ast": "Asturyasça", "av": "Avar Dili", "avk": "Kotava", "awa": "Awadhi", "ay": "Aymara", "az": "Azerice", "az-Arab": "Güney Azerice", "ba": "Başkırtça", "bal": "Beluçça", "ban": "Bali dili", "bar": "Bavyera dili", "bas": "Basa Dili", "bax": "Bamun", "bbc": "Batak Toba", "bbj": "Ghomala", "be": "Belarusça", "bej": "Beja dili", "bem": "Bemba", "bew": "Betawi", "bez": "Bena", "bfd": "Bafut", "bfq": "Badaga", "bg": "Bulgarca", "bgn": "Batı Balochi", "bho": "Arayanice", "bi": "Bislama", "bik": "Bikol", "bin": "Bini", "bjn": "Banjar Dili", "bkm": "Kom", "bla": "Karaayak dili", "bm": "Bambara", "bn": "Bengalce", "bo": "Tibetçe", "bpy": "Bishnupriya", "bqi": "Bahtiyari", "br": "Bretonca", "bra": "Braj", "brh": "Brohice", "brx": "Bodo", "bs": "Boşnakça", "bss": "Akoose", "bua": "Buryatça", "bug": "Bugis", "bum": "Bulu", "byn": "Blin", "byv": "Medumba", "ca": "Katalanca", "cad": "Kado dili", "car": "Carib", "cay": "Kayuga dili", "cch": "Atsam", "ccp": "Chakma", "ce": "Çeçence", "ceb": "Sebuano dili", "cgg": "Kigaca", "ch": "Çamorro dili", "chb": "Çibça dili", "chg": "Çağatayca", "chk": "Chuukese", "chm": "Mari dili", "chn": "Çinuk dili", "cho": "Çoktav dili", "chp": "Çipevya dili", "chr": "Çerokice", "chy": "Şayence", "ckb": "Orta Kürtçe", "co": "Korsikaca", "cop": "Kıptice", "cps": "Capiznon", "cr": "Krice", "crh": "Kırım Türkçesi", "crs": "Seselwa Kreole Fransızcası", "cs": "Çekçe", "csb": "Kashubian", "cu": "Kilise Slavcası", "cv": "Çuvaşça", "cy": "Galce", "da": "Danca", "dak": "Dakotaca", "dar": "Dargince", "dav": "Taita", "de": "Almanca", "de-AT": "Avusturya Almancası", "de-CH": "İsviçre Yüksek Almancası", "del": "Delaware", "den": "Slavey dili", "dgr": "Dogrib", "din": "Dinka dili", "dje": "Zarma", "doi": "Dogri", "dsb": "Aşağı Sorbça", "dtp": "Orta Kadazan", "dua": "Duala", "dum": "Ortaçağ Felemenkçesi", "dv": "Divehi dili", "dyo": "Jola-Fonyi", "dyu": "Dyula", "dz": "Dzongkha", "dzg": "Dazaga", "ebu": "Embu", "ee": "Ewe", "efi": "Efik", "egl": "Emilia Dili", "egy": "Eski Mısır Dili", "eka": "Ekajuk", "el": "Yunanca", "elx": "Elam", "en": "İngilizce", "en-AU": "Avustralya İngilizcesi", "en-CA": "Kanada İngilizcesi", "en-GB": "İngiliz İngilizcesi", "en-US": "Amerikan İngilizcesi", "enm": "Ortaçağ İngilizcesi", "eo": "Esperanto", "es": "İspanyolca", "es-419": "Latin Amerika İspanyolcası", "es-ES": "Avrupa İspanyolcası", "es-MX": "Meksika İspanyolcası", "esu": "Merkezi Yupikçe", "et": "Estonca", "eu": "Baskça", "ewo": "Ewondo", "ext": "Ekstremadura Dili", "fa": "Farsça", "fan": "Fang", "fat": "Fanti", "ff": "Fula dili", "fi": "Fince", "fil": "Filipince", "fit": "Tornedalin Fincesi", "fj": "Fiji dili", "fo": "Faroe dili", "fon": "Fon", "fr": "Fransızca", "fr-CA": "Kanada Fransızcası", "fr-CH": "İsviçre Fransızcası", "frc": "Cajun Fransızcası", "frm": "Ortaçağ Fransızcası", "fro": "Eski Fransızca", "frp": "Arpitanca", "frr": "Kuzey Frizce", "frs": "Doğu Frizcesi", "fur": "Friuli dili", "fy": "Batı Frizcesi", "ga": "İrlandaca", "gaa": "Ga dili", "gag": "Gagavuzca", "gan": "Gan Çincesi", "gay": "Gayo dili", "gba": "Gbaya", "gbz": "Zerdüşt Daricesi", "gd": "İskoç Gaelcesi", "gez": "Geez", "gil": "Kiribatice", "gl": "Galiçyaca", "glk": "Gilanice", "gmh": "Ortaçağ Yüksek Almancası", "gn": "Guarani dili", "goh": "Eski Yüksek Almanca", "gom": "Goa Konkanicesi", "gon": "Gondi dili", "gor": "Gorontalo dili", "got": "Gotça", "grb": "Grebo dili", "grc": "Antik Yunanca", "gsw": "İsviçre Almancası", "gu": "Güceratça", "guc": "Wayuu dili", "gur": "Frafra", "guz": "Gusii", "gv": "Man dili", "gwi": "Guçince", "ha": "Hausa dili", "hai": "Haydaca", "hak": "Hakka Çincesi", "haw": "Hawaii dili", "he": "İbranice", "hi": "Hintçe", "hif": "Fiji Hintçesi", "hil": "Hiligaynon dili", "hit": "Hititçe", "hmn": "Hmong", "ho": "Hiri Motu", "hr": "Hırvatça", "hsb": "Yukarı Sorbça", "hsn": "Xiang Çincesi", "ht": "Haiti Kreyolu", "hu": "Macarca", "hup": "Hupaca", "hy": "Ermenice", "hz": "Herero dili", "ia": "Interlingua", "iba": "Iban", "ibb": "İbibio dili", "id": "Endonezce", "ie": "Interlingue", "ig": "İbo dili", "ii": "Sichuan Yi", "ik": "İnyupikçe", "ilo": "Iloko", "inh": "İnguşça", "io": "Ido", "is": "İzlandaca", "it": "İtalyanca", "iu": "İnuktitut dili", "izh": "İngriya Dili", "ja": "Japonca", "jam": "Jamaika Patois Dili", "jbo": "Lojban", "jgo": "Ngomba", "jmc": "Machame", "jpr": "Yahudi Farsçası", "jrb": "Yahudi Arapçası", "jut": "Yutland Dili", "jv": "Cava Dili", "ka": "Gürcüce", "kaa": "Karakalpakça", "kab": "Kabiliyece", "kac": "Kaçin dili", "kaj": "Jju", "kam": "Kamba", "kaw": "Kawi", "kbd": "Kabardeyce", "kbl": "Kanembu", "kcg": "Tyap", "kde": "Makonde", "kea": "Kabuverdianu", "ken": "Kenyang", "kfo": "Koro", "kg": "Kongo dili", "kgp": "Kaingang", "kha": "Khasi dili", "kho": "Hotanca", "khq": "Koyra Chiini", "khw": "Çitral Dili", "ki": "Kikuyu", "kiu": "Kırmançça", "kj": "Kuanyama", "kk": "Kazakça", "kkj": "Kako", "kl": "Grönland dili", "kln": "Kalenjin", "km": "Khmer dili", "kmb": "Kimbundu", "kn": "Kannada dili", "ko": "Korece", "koi": "Komi-Permyak", "kok": "Konkani dili", "kos": "Kosraean", "kpe": "Kpelle dili", "kr": "Kanuri dili", "krc": "Karaçay-Balkarca", "kri": "Krio", "krj": "Kinaray-a", "krl": "Karelyaca", "kru": "Kurukh dili", "ks": "Keşmir dili", "ksb": "Shambala", "ksf": "Bafia", "ksh": "Köln lehçesi", "ku": "Kürtçe", "kum": "Kumukça", "kut": "Kutenai dili", "kv": "Komi", "kw": "Kernevekçe", "ky": "Kırgızca", "la": "Latince", "lad": "Ladino", "lag": "Langi", "lah": "Lahnda", "lam": "Lamba dili", "lb": "Lüksemburgca", "lez": "Lezgice", "lfn": "Lingua Franca Nova", "lg": "Ganda", "li": "Limburgca", "lij": "Ligurca", "liv": "Livonca", "lkt": "Lakotaca", "lmo": "Lombardça", "ln": "Lingala", "lo": "Lao dili", "lol": "Mongo", "lou": "Louisiana Kreolcesi", "loz": "Lozi", "lrc": "Kuzey Luri", "lt": "Litvanca", "ltg": "Latgalian", "lu": "Luba-Katanga", "lua": "Luba-Lulua", "lui": "Luiseno", "lun": "Lunda", "luo": "Luo", "lus": "Lushai", "luy": "Luyia", "lv": "Letonca", "lzh": "Edebi Çince", "lzz": "Lazca", "mad": "Madura Dili", "maf": "Mafa", "mag": "Magahi", "mai": "Maithili", "mak": "Makasar", "man": "Mandingo", "mas": "Masai", "mde": "Maba", "mdf": "Mokşa dili", "mdr": "Mandar", "men": "Mende dili", "mer": "Meru", "mfe": "Morisyen", "mg": "Malgaşça", "mga": "Ortaçağ İrlandacası", "mgh": "Makhuwa-Meetto", "mgo": "Meta’", "mh": "Marshall Adaları dili", "mi": "Maori dili", "mic": "Micmac", "min": "Minangkabau", "mk": "Makedonca", "ml": "Malayalam dili", "mn": "Moğolca", "mnc": "Mançurya dili", "mni": "Manipuri dili", "moh": "Mohavk dili", "mos": "Mossi", "mr": "Marathi dili", "mrj": "Ova Çirmişçesi", "ms": "Malayca", "mt": "Maltaca", "mua": "Mundang", "mus": "Krikçe", "mwl": "Miranda dili", "mwr": "Marvari", "mwv": "Mentawai", "my": "Birman dili", "mye": "Myene", "myv": "Erzya", "mzn": "Mazenderanca", "na": "Nauru dili", "nan": "Min Nan Çincesi", "nap": "Napolice", "naq": "Nama", "nb": "Norveççe Bokmål", "nd": "Kuzey Ndebele", "nds": "Aşağı Almanca", "nds-NL": "Aşağı Saksonca", "ne": "Nepalce", "new": "Nevari", "ng": "Ndonga", "nia": "Nias", "niu": "Niue dili", "njo": "Ao Naga", "nl": "Felemenkçe", "nl-BE": "Flamanca", "nmg": "Kwasio", "nn": "Norveççe Nynorsk", "nnh": "Ngiemboon", "no": "Norveççe", "nog": "Nogayca", "non": "Eski Nors dili", "nov": "Novial", "nqo": "N’Ko", "nr": "Güney Ndebele", "nso": "Kuzey Sotho dili", "nus": "Nuer", "nv": "Navaho dili", "nwc": "Klasik Nevari", "ny": "Nyanja", "nym": "Nyamvezi", "nyn": "Nyankole", "nyo": "Nyoro", "nzi": "Nzima dili", "oc": "Oksitan dili", "oj": "Ojibva dili", "om": "Oromo dili", "or": "Oriya Dili", "os": "Osetçe", "osa": "Osage", "ota": "Osmanlı Türkçesi", "pa": "Pencapça", "pag": "Pangasinan dili", "pal": "Pehlevi Dili", "pam": "Pampanga", "pap": "Papiamento", "pau": "Palau dili", "pcd": "Picard Dili", "pcm": "Nijerya Pidgin dili", "pdc": "Pensilvanya Almancası", "pdt": "Plautdietsch", "peo": "Eski Farsça", "pfl": "Palatin Almancası", "phn": "Fenike dili", "pi": "Pali", "pl": "Lehçe", "pms": "Piyemontece", "pnt": "Kuzeybatı Kafkasya", "pon": "Pohnpeian", "prg": "Prusyaca", "pro": "Eski Provensal", "ps": "Peştuca", "pt": "Portekizce", "pt-BR": "Brezilya Portekizcesi", "pt-PT": "Avrupa Portekizcesi", "qu": "Keçuva dili", "quc": "Kiçece", "qug": "Chimborazo Highland Quichua", "raj": "Rajasthani", "rap": "Rapanui dili", "rar": "Rarotongan", "rgn": "Romanyolca", "rif": "Rif Berbericesi", "rm": "Romanşça", "rn": "Kirundi", "ro": "Rumence", "ro-MD": "Moldovaca", "rof": "Rombo", "rom": "Romanca", "root": "Köken", "rtm": "Rotuman", "ru": "Rusça", "rue": "Rusince", "rug": "Roviana", "rup": "Ulahça", "rw": "Kinyarwanda", "rwk": "Rwa", "sa": "Sanskrit", "sad": "Sandave", "sah": "Yakutça", "sam": "Samarit Aramcası", "saq": "Samburu", "sas": "Sasak", "sat": "Santali", "saz": "Saurashtra", "sba": "Ngambay", "sbp": "Sangu", "sc": "Sardunya dili", "scn": "Sicilyaca", "sco": "İskoçça", "sd": "Sindhi dili", "sdc": "Sassari Sarduca", "sdh": "Güney Kürtçesi", "se": "Kuzey Laponcası", "see": "Seneca dili", "seh": "Sena", "sei": "Seri", "sel": "Selkup dili", "ses": "Koyraboro Senni", "sg": "Sango", "sga": "Eski İrlandaca", "sgs": "Samogitçe", "sh": "Sırp-Hırvat Dili", "shi": "Taşelhit", "shn": "Shan dili", "shu": "Çad Arapçası", "si": "Sinhali dili", "sid": "Sidamo dili", "sk": "Slovakça", "sl": "Slovence", "sli": "Aşağı Silezyaca", "sly": "Selayar", "sm": "Samoa dili", "sma": "Güney Laponcası", "smj": "Lule Laponcası", "smn": "İnari Laponcası", "sms": "Skolt Laponcası", "sn": "Shona", "snk": "Soninke", "so": "Somalice", "sog": "Sogdiana Dili", "sq": "Arnavutça", "sr": "Sırpça", "srn": "Sranan Tongo", "srr": "Serer dili", "ss": "Sisvati", "ssy": "Saho", "st": "Güney Sotho dili", "stq": "Saterland Frizcesi", "su": "Sunda Dili", "suk": "Sukuma dili", "sus": "Susu", "sux": "Sümerce", "sv": "İsveççe", "sw": "Svahili dili", "sw-CD": "Kongo Svahili", "swb": "Komorca", "syc": "Klasik Süryanice", "syr": "Süryanice", "szl": "Silezyaca", "ta": "Tamilce", "tcy": "Tuluca", "te": "Telugu dili", "tem": "Timne", "teo": "Teso", "ter": "Tereno", "tet": "Tetum", "tg": "Tacikçe", "th": "Tayca", "ti": "Tigrinya dili", "tig": "Tigre", "tiv": "Tiv", "tk": "Türkmence", "tkl": "Tokelau dili", "tkr": "Sahurca", "tl": "Tagalogca", "tlh": "Klingonca", "tli": "Tlingit", "tly": "Talışça", "tmh": "Tamaşek", "tn": "Setsvana", "to": "Tonga dili", "tog": "Nyasa Tonga", "tpi": "Tok Pisin", "tr": "Türkçe", "tru": "Turoyo", "trv": "Taroko", "ts": "Tsonga", "tsd": "Tsakonca", "tsi": "Tsimshian", "tt": "Tatarca", "ttt": "Tatça", "tum": "Tumbuka", "tvl": "Tuvalyanca", "tw": "Tvi", "twq": "Tasawaq", "ty": "Tahiti dili", "tyv": "Tuvaca", "tzm": "Orta Atlas Tamazigti", "udm": "Udmurtça", "ug": "Uygurca", "uga": "Ugarit dili", "uk": "Ukraynaca", "umb": "Umbundu", "ur": "Urduca", "uz": "Özbekçe", "vai": "Vai", "ve": "Venda dili", "vec": "Venedikçe", "vep": "Veps dili", "vi": "Vietnamca", "vls": "Batı Flamanca", "vmf": "Main Frankonya Dili", "vo": "Volapük", "vot": "Votça", "vro": "Võro", "vun": "Vunjo", "wa": "Valonca", "wae": "Walser", "wal": "Valamo", "war": "Varay", "was": "Vaşo", "wbp": "Warlpiri", "wo": "Volofça", "wuu": "Wu Çincesi", "xal": "Kalmıkça", "xh": "Zosa dili", "xmf": "Megrelce", "xog": "Soga", "yao": "Yao", "yap": "Yapça", "yav": "Yangben", "ybb": "Yemba", "yi": "Yidiş", "yo": "Yorubaca", "yrl": "Nheengatu", "yue": "Kantonca", "za": "Zhuangca", "zap": "Zapotek dili", "zbl": "Blis Sembolleri", "zea": "Zelandaca", "zen": "Zenaga dili", "zgh": "Standart Fas Tamazigti", "zh": "Çince", "zh-Hans": "Basitleştirilmiş Çince", "zh-Hant": "Geleneksel Çince", "zu": "Zuluca", "zun": "Zunice", "zza": "Zazaca"}}, + "uk": {"rtl": false, "languageNames": {"aa": "афарська", "ab": "абхазька", "ace": "ачехська", "ach": "ачолі", "ada": "адангме", "ady": "адигейська", "ae": "авестійська", "af": "африкаанс", "afh": "африхілі", "agq": "агем", "ain": "айнська", "ak": "акан", "akk": "аккадська", "akz": "алабама", "ale": "алеутська", "alt": "південноалтайська", "am": "амхарська", "an": "арагонська", "ang": "давньоанглійська", "anp": "ангіка", "ar": "арабська", "ar-001": "сучасна стандартна арабська", "arc": "арамейська", "arn": "арауканська", "aro": "араона", "arp": "арапахо", "arq": "алжирська арабська", "ars": "надждійська арабська", "arw": "аравакська", "as": "асамська", "asa": "асу", "ase": "американська мова рухів", "ast": "астурська", "av": "аварська", "awa": "авадхі", "ay": "аймара", "az": "азербайджанська", "az-Arab": "південноазербайджанська", "ba": "башкирська", "bal": "балучі", "ban": "балійська", "bar": "баеріш", "bas": "баса", "bax": "бамум", "bbc": "батак тоба", "bbj": "гомала", "be": "білоруська", "bej": "беджа", "bem": "бемба", "bew": "бетаві", "bez": "бена", "bfd": "бафут", "bfq": "бадага", "bg": "болгарська", "bgn": "східнобелуджійська", "bho": "бходжпурі", "bi": "біслама", "bik": "бікольська", "bin": "біні", "bjn": "банджарська", "bkm": "ком", "bla": "сіксіка", "bm": "бамбара", "bn": "банґла", "bo": "тибетська", "bqi": "бахтіарі", "br": "бретонська", "bra": "брадж", "brx": "бодо", "bs": "боснійська", "bss": "акус", "bua": "бурятська", "bug": "бугійська", "bum": "булу", "byn": "блін", "byv": "медумба", "ca": "каталонська", "cad": "каддо", "car": "карібська", "cay": "кайюга", "cch": "атсам", "ccp": "чакма", "ce": "чеченська", "ceb": "себуанська", "cgg": "кіга", "ch": "чаморро", "chb": "чібча", "chg": "чагатайська", "chk": "чуукська", "chm": "марійська", "chn": "чинук жаргон", "cho": "чокто", "chp": "чіпевʼян", "chr": "черокі", "chy": "чейєнн", "ckb": "центральнокурдська", "co": "корсиканська", "cop": "коптська", "cr": "крі", "crh": "кримськотатарська", "crs": "сейшельська креольська", "cs": "чеська", "csb": "кашубська", "cu": "церковнословʼянська", "cv": "чуваська", "cy": "валлійська", "da": "данська", "dak": "дакота", "dar": "даргінська", "dav": "таіта", "de": "німецька", "de-AT": "австрійська німецька", "de-CH": "верхньонімецька (Швейцарія)", "del": "делаварська", "den": "слейв", "dgr": "догрибська", "din": "дінка", "dje": "джерма", "doi": "догрі", "dsb": "нижньолужицька", "dua": "дуала", "dum": "середньонідерландська", "dv": "дівехі", "dyo": "дьола-фоні", "dyu": "діула", "dz": "дзонг-ке", "dzg": "дазага", "ebu": "ембу", "ee": "еве", "efi": "ефік", "egy": "давньоєгипетська", "eka": "екаджук", "el": "грецька", "elx": "еламська", "en": "англійська", "en-AU": "австралійська англійська", "en-CA": "канадська англійська", "en-GB": "британська англійська", "en-US": "англійська (США)", "enm": "середньоанглійська", "eo": "есперанто", "es": "іспанська", "es-419": "латиноамериканська іспанська", "es-ES": "іспанська (Європа)", "es-MX": "мексиканська іспанська", "et": "естонська", "eu": "баскська", "ewo": "евондо", "fa": "перська", "fan": "фанг", "fat": "фанті", "ff": "фула", "fi": "фінська", "fil": "філіппінська", "fj": "фіджі", "fo": "фарерська", "fon": "фон", "fr": "французька", "fr-CA": "канадська французька", "fr-CH": "швейцарська французька", "frc": "кажунська французька", "frm": "середньофранцузька", "fro": "давньофранцузька", "frp": "арпітанська", "frr": "фризька північна", "frs": "фризька східна", "fur": "фріульська", "fy": "західнофризька", "ga": "ірландська", "gaa": "га", "gag": "гагаузька", "gan": "ґань", "gay": "гайо", "gba": "гбайя", "gd": "гаельська", "gez": "гєез", "gil": "гільбертська", "gl": "галісійська", "gmh": "середньоверхньонімецька", "gn": "гуарані", "goh": "давньоверхньонімецька", "gon": "гонді", "gor": "горонтало", "got": "готська", "grb": "гребо", "grc": "давньогрецька", "gsw": "німецька (Швейцарія)", "gu": "гуджараті", "guz": "гусії", "gv": "менкська", "gwi": "кучін", "ha": "хауса", "hai": "хайда", "hak": "хаккаська", "haw": "гавайська", "he": "іврит", "hi": "гінді", "hil": "хілігайнон", "hit": "хітіті", "hmn": "хмонг", "ho": "хірі-моту", "hr": "хорватська", "hsb": "верхньолужицька", "hsn": "сянська китайська", "ht": "гаїтянська", "hu": "угорська", "hup": "хупа", "hy": "вірменська", "hz": "гереро", "ia": "інтерлінгва", "iba": "ібанська", "ibb": "ібібіо", "id": "індонезійська", "ie": "інтерлінгве", "ig": "ігбо", "ii": "сичуань", "ik": "інупіак", "ilo": "ілоканська", "inh": "інгуська", "io": "ідо", "is": "ісландська", "it": "італійська", "iu": "інуктітут", "ja": "японська", "jbo": "ложбан", "jgo": "нгомба", "jmc": "мачаме", "jpr": "юдео-перська", "jrb": "юдео-арабська", "jv": "яванська", "ka": "грузинська", "kaa": "каракалпацька", "kab": "кабільська", "kac": "качін", "kaj": "йю", "kam": "камба", "kaw": "каві", "kbd": "кабардинська", "kbl": "канембу", "kcg": "тіап", "kde": "маконде", "kea": "кабувердіану", "kfo": "коро", "kg": "конґолезька", "kha": "кхасі", "kho": "хотаносакська", "khq": "койра чіїні", "ki": "кікуйю", "kj": "кунама", "kk": "казахська", "kkj": "како", "kl": "калааллісут", "kln": "календжин", "km": "кхмерська", "kmb": "кімбунду", "kn": "каннада", "ko": "корейська", "koi": "комі-перм’яцька", "kok": "конкані", "kos": "косрае", "kpe": "кпеллє", "kr": "канурі", "krc": "карачаєво-балкарська", "krl": "карельська", "kru": "курукх", "ks": "кашмірська", "ksb": "шамбала", "ksf": "бафіа", "ksh": "колоніан", "ku": "курдська", "kum": "кумицька", "kut": "кутенаї", "kv": "комі", "kw": "корнійська", "ky": "киргизька", "la": "латинська", "lad": "ладіно", "lag": "лангі", "lah": "ланда", "lam": "ламба", "lb": "люксембурзька", "lez": "лезгінська", "lg": "ганда", "li": "лімбургійська", "lkt": "лакота", "ln": "лінгала", "lo": "лаоська", "lol": "монго", "lou": "луїзіанська креольська", "loz": "лозі", "lrc": "північнолурська", "lt": "литовська", "lu": "луба-катанга", "lua": "луба-лулуа", "lui": "луїсеньо", "lun": "лунда", "luo": "луо", "lus": "мізо", "luy": "луйя", "lv": "латвійська", "mad": "мадурська", "maf": "мафа", "mag": "магадхі", "mai": "майтхілі", "mak": "макасарська", "man": "мандінго", "mas": "масаї", "mde": "маба", "mdf": "мокша", "mdr": "мандарська", "men": "менде", "mer": "меру", "mfe": "маврикійська креольська", "mg": "малагасійська", "mga": "середньоірландська", "mgh": "макува-меето", "mgo": "мета", "mh": "маршалльська", "mi": "маорі", "mic": "мікмак", "min": "мінангкабау", "mk": "македонська", "ml": "малаялам", "mn": "монгольська", "mnc": "манчжурська", "mni": "маніпурі", "moh": "магавк", "mos": "моссі", "mr": "маратхі", "ms": "малайська", "mt": "мальтійська", "mua": "мунданг", "mus": "крік", "mwl": "мірандська", "mwr": "марварі", "my": "бірманська", "mye": "миін", "myv": "ерзя", "mzn": "мазандеранська", "na": "науру", "nan": "південноміньська", "nap": "неаполітанська", "naq": "нама", "nb": "норвезька (букмол)", "nd": "північна ндебеле", "nds": "нижньонімецька", "nds-NL": "нижньосаксонська", "ne": "непальська", "new": "неварі", "ng": "ндонга", "nia": "ніаська", "niu": "ніуе", "njo": "ао нага", "nl": "нідерландська", "nl-BE": "фламандська", "nmg": "квазіо", "nn": "норвезька (нюношк)", "nnh": "нгємбун", "no": "норвезька", "nog": "ногайська", "non": "давньонорвезька", "nqo": "нко", "nr": "ндебелє південна", "nso": "північна сото", "nus": "нуер", "nv": "навахо", "nwc": "неварі класична", "ny": "ньянджа", "nym": "ньямвезі", "nyn": "ньянколе", "nyo": "ньоро", "nzi": "нзіма", "oc": "окситанська", "oj": "оджібва", "om": "оромо", "or": "одія", "os": "осетинська", "osa": "осейдж", "ota": "османська", "pa": "панджабі", "pag": "пангасінанська", "pal": "пехлеві", "pam": "пампанга", "pap": "папʼяменто", "pau": "палауанська", "pcm": "нігерійсько-креольська", "peo": "давньоперська", "phn": "фінікійсько-пунічна", "pi": "палі", "pl": "польська", "pon": "понапе", "prg": "пруська", "pro": "давньопровансальська", "ps": "пушту", "pt": "портуґальська", "pt-BR": "португальська (Бразилія)", "pt-PT": "європейська портуґальська", "qu": "кечуа", "quc": "кіче", "raj": "раджастхані", "rap": "рапануї", "rar": "раротонга", "rm": "ретороманська", "rn": "рунді", "ro": "румунська", "ro-MD": "молдавська", "rof": "ромбо", "rom": "циганська", "root": "коренева", "ru": "російська", "rup": "арумунська", "rw": "кіньяруанда", "rwk": "рва", "sa": "санскрит", "sad": "сандаве", "sah": "якутська", "sam": "самаритянська арамейська", "saq": "самбуру", "sas": "сасакська", "sat": "сантальська", "sba": "нгамбай", "sbp": "сангу", "sc": "сардинська", "scn": "сицилійська", "sco": "шотландська", "sd": "сіндхі", "sdh": "південнокурдська", "se": "північносаамська", "see": "сенека", "seh": "сена", "sel": "селькупська", "ses": "койраборо сені", "sg": "санго", "sga": "давньоірландська", "sh": "сербсько-хорватська", "shi": "тачеліт", "shn": "шанська", "shu": "чадійська арабська", "si": "сингальська", "sid": "сідамо", "sk": "словацька", "sl": "словенська", "sm": "самоанська", "sma": "південносаамська", "smj": "саамська луле", "smn": "саамська інарі", "sms": "скольт-саамська", "sn": "шона", "snk": "сонінке", "so": "сомалі", "sog": "согдійська", "sq": "албанська", "sr": "сербська", "srn": "сранан тонго", "srr": "серер", "ss": "сісваті", "ssy": "сахо", "st": "сото південна", "su": "сунданська", "suk": "сукума", "sus": "сусу", "sux": "шумерська", "sv": "шведська", "sw": "суахілі", "sw-CD": "суахілі (Конго)", "swb": "коморська", "syc": "сирійська класична", "syr": "сирійська", "ta": "тамільська", "te": "телугу", "tem": "темне", "teo": "тесо", "ter": "терено", "tet": "тетум", "tg": "таджицька", "th": "тайська", "ti": "тигринья", "tig": "тигре", "tiv": "тів", "tk": "туркменська", "tkl": "токелау", "tl": "тагальська", "tlh": "клінгонська", "tli": "тлінгіт", "tmh": "тамашек", "tn": "тсвана", "to": "тонґанська", "tog": "ньяса тонга", "tpi": "ток-пісін", "tr": "турецька", "trv": "тароко", "ts": "тсонга", "tsi": "цимшиан", "tt": "татарська", "tum": "тумбука", "tvl": "тувалу", "tw": "тві", "twq": "тасавак", "ty": "таїтянська", "tyv": "тувинська", "tzm": "центральноатласька тамазігт", "udm": "удмуртська", "ug": "уйгурська", "uga": "угаритська", "uk": "українська", "umb": "умбунду", "ur": "урду", "uz": "узбецька", "vai": "ваї", "ve": "венда", "vi": "вʼєтнамська", "vo": "волапʼюк", "vot": "водська", "vun": "вуньо", "wa": "валлонська", "wae": "валзерська", "wal": "волайтта", "war": "варай", "was": "вашо", "wbp": "валпірі", "wo": "волоф", "wuu": "уська китайська", "xal": "калмицька", "xh": "кхоса", "xog": "сога", "yao": "яо", "yap": "яп", "yav": "янгбен", "ybb": "ємба", "yi": "їдиш", "yo": "йоруба", "yue": "кантонська", "za": "чжуан", "zap": "сапотекська", "zbl": "блісса мова", "zen": "зенага", "zgh": "стандартна марокканська берберська", "zh": "китайська", "zh-Hans": "китайська (спрощене письмо)", "zh-Hant": "китайська (традиційне письмо)", "zu": "зулуська", "zun": "зуньї", "zza": "зазакі"}}, + "ur": {"rtl": true, "languageNames": {"aa": "افار", "ab": "ابقازیان", "ace": "اچائینیز", "ach": "اکولی", "ada": "ادانگمے", "ady": "ادیگھے", "af": "افریقی", "agq": "اغم", "ain": "اینو", "ak": "اکان", "ale": "الیوت", "alt": "جنوبی الٹائی", "am": "امہاری", "an": "اراگونیز", "anp": "انگیکا", "ar": "عربی", "ar-001": "ماڈرن اسٹینڈرڈ عربی", "arn": "ماپوچے", "arp": "اراپاہو", "as": "آسامی", "asa": "آسو", "ast": "اسٹوریائی", "av": "اواری", "awa": "اوادھی", "ay": "ایمارا", "az": "آذربائیجانی", "az-Arab": "آزربائیجانی (عربی)", "ba": "باشکیر", "ban": "بالینیز", "bas": "باسا", "be": "بیلاروسی", "bem": "بیمبا", "bez": "بینا", "bg": "بلغاری", "bgn": "مغربی بلوچی", "bho": "بھوجپوری", "bi": "بسلاما", "bin": "بینی", "bla": "سکسیکا", "bm": "بمبارا", "bn": "بنگالی", "bo": "تبتی", "br": "بریٹن", "brx": "بوڈو", "bs": "بوسنیائی", "bug": "بگینیز", "byn": "بلین", "ca": "کیٹالان", "ccp": "چکمہ", "ce": "چیچن", "ceb": "سیبوآنو", "cgg": "چیگا", "ch": "چیمارو", "chk": "چوکیز", "chm": "ماری", "cho": "چاکٹاؤ", "chr": "چیروکی", "chy": "چینّے", "ckb": "سینٹرل کردش", "co": "کوراسیکن", "crs": "سیسلوا کریولے فرانسیسی", "cs": "چیک", "cu": "چرچ سلاوک", "cv": "چوواش", "cy": "ویلش", "da": "ڈینش", "dak": "ڈاکوٹا", "dar": "درگوا", "dav": "تائتا", "de": "جرمن", "de-AT": "آسٹریائی جرمن", "de-CH": "سوئس ہائی جرمن", "dgr": "دوگریب", "dje": "زرما", "dsb": "ذیلی سربیائی", "dua": "دوالا", "dv": "ڈیویہی", "dyo": "جولا فونيا", "dz": "ژونگکھا", "dzg": "دزاگا", "ebu": "امبو", "ee": "ایو", "efi": "ایفِک", "eka": "ایکاجوی", "el": "یونانی", "en": "انگریزی", "en-AU": "آسٹریلیائی انگریزی", "en-CA": "کینیڈین انگریزی", "en-GB": "برطانوی انگریزی", "en-US": "امریکی انگریزی", "eo": "ایسپرانٹو", "es": "ہسپانوی", "es-419": "لاطینی امریکی ہسپانوی", "es-ES": "یورپی ہسپانوی", "es-MX": "میکسیکن ہسپانوی", "et": "اسٹونین", "eu": "باسکی", "ewo": "ایوانڈو", "fa": "فارسی", "ff": "فولہ", "fi": "فینیش", "fil": "فلیپینو", "fj": "فجی", "fo": "فیروئیز", "fon": "فون", "fr": "فرانسیسی", "fr-CA": "کینیڈین فرانسیسی", "fr-CH": "سوئس فرینچ", "frc": "کاجن فرانسیسی", "fur": "فریولیائی", "fy": "مغربی فریسیئن", "ga": "آئیرِش", "gaa": "گا", "gag": "غاغاوز", "gd": "سکاٹش گیلک", "gez": "گیز", "gil": "گلبرتیز", "gl": "گالیشیائی", "gn": "گُارانی", "gor": "گورانٹالو", "gsw": "سوئس جرمن", "gu": "گجراتی", "guz": "گسی", "gv": "مینکس", "gwi": "گوئچ ان", "ha": "ہؤسا", "haw": "ہوائی", "he": "عبرانی", "hi": "ہندی", "hil": "ہالیگینون", "hmn": "ہمانگ", "hr": "کراتی", "hsb": "اپر سربیائی", "ht": "ہیتی", "hu": "ہنگیرین", "hup": "ہیوپا", "hy": "آرمینیائی", "hz": "ہریرو", "ia": "بین لسانیات", "iba": "ایبان", "ibb": "ابی بیو", "id": "انڈونیثیائی", "ig": "اِگبو", "ii": "سچوان ای", "ilo": "ایلوکو", "inh": "انگوش", "io": "ایڈو", "is": "آئس لینڈک", "it": "اطالوی", "iu": "اینُکٹیٹٹ", "ja": "جاپانی", "jbo": "لوجبان", "jgo": "نگومبا", "jmc": "ماشیم", "jv": "جاوی", "ka": "جارجیائی", "kab": "قبائلی", "kac": "کاچن", "kaj": "جے جو", "kam": "کامبا", "kbd": "کبارڈین", "kcg": "تیاپ", "kde": "ماکونده", "kea": "کابويرديانو", "kfo": "کورو", "kg": "کانگو", "kha": "کھاسی", "khq": "کويرا شيني", "ki": "کیکویو", "kj": "کونیاما", "kk": "قزاخ", "kkj": "کاکو", "kl": "کالاليست", "kln": "کالينجين", "km": "خمیر", "kmb": "کیمبونڈو", "kn": "کنّاڈا", "ko": "کوریائی", "koi": "کومی پرمیاک", "kok": "کونکنی", "kpe": "کیپیلّے", "kr": "کنوری", "krc": "کراچے بالکر", "krl": "کیرلین", "kru": "کوروکھ", "ks": "کشمیری", "ksb": "شامبالا", "ksf": "بافيا", "ksh": "کولوگنیائی", "ku": "کردش", "kum": "کومیک", "kv": "کومی", "kw": "کورنش", "ky": "کرغیزی", "la": "لاطینی", "lad": "لیڈینو", "lag": "لانگی", "lb": "لکسمبرگیش", "lez": "لیزگیان", "lg": "گینڈا", "li": "لیمبرگش", "lkt": "لاکوٹا", "ln": "لِنگَلا", "lo": "لاؤ", "lou": "لوزیانا کریول", "loz": "لوزی", "lrc": "شمالی لری", "lt": "لیتھوینین", "lu": "لبا-کاتانجا", "lua": "لیوبا لولوآ", "lun": "لونڈا", "luo": "لو", "lus": "میزو", "luy": "لویا", "lv": "لیٹوین", "mad": "مدورسی", "mag": "مگاہی", "mai": "میتھیلی", "mak": "مکاسر", "mas": "مسائی", "mdf": "موکشا", "men": "میندے", "mer": "میرو", "mfe": "موریسیین", "mg": "ملاگاسی", "mgh": "ماخاوا-ميتو", "mgo": "میٹا", "mh": "مارشلیز", "mi": "ماؤری", "mic": "مکمیک", "min": "منانگکباؤ", "mk": "مقدونیائی", "ml": "مالایالم", "mn": "منگولین", "mni": "منی پوری", "moh": "موہاک", "mos": "موسی", "mr": "مراٹهی", "ms": "مالے", "mt": "مالٹی", "mua": "منڈانگ", "mus": "کریک", "mwl": "میرانڈیز", "my": "برمی", "myv": "ارزیا", "mzn": "مزندرانی", "na": "ناؤرو", "nap": "نیاپولیٹن", "naq": "ناما", "nb": "نارویجین بوکمل", "nd": "شمالی دبیل", "nds": "ادنی جرمن", "nds-NL": "ادنی سیکسن", "ne": "نیپالی", "new": "نیواری", "ng": "نڈونگا", "nia": "نیاس", "niu": "نیویائی", "nl": "ڈچ", "nl-BE": "فلیمِش", "nmg": "کوايسو", "nn": "نارویجین نینورسک", "nnh": "نگیمبون", "no": "نارویجین", "nog": "نوگائی", "nqo": "اینکو", "nr": "جنوبی نڈیبیلی", "nso": "شمالی سوتھو", "nus": "نویر", "nv": "نواجو", "ny": "نیانجا", "nyn": "نینکول", "oc": "آکسیٹان", "om": "اورومو", "or": "اڑیہ", "os": "اوسیٹک", "pa": "پنجابی", "pag": "پنگاسنان", "pam": "پامپنگا", "pap": "پاپیامینٹو", "pau": "پالاون", "pcm": "نائجیریائی پڈگن", "pl": "پولش", "prg": "پارسی", "ps": "پشتو", "pt": "پُرتگالی", "pt-BR": "برازیلی پرتگالی", "pt-PT": "یورپی پرتگالی", "qu": "کویچوآ", "quc": "کيشی", "rap": "رپانوی", "rar": "راروتونگان", "rm": "رومانش", "rn": "رونڈی", "ro": "رومینین", "ro-MD": "مالدووا", "rof": "رومبو", "root": "روٹ", "ru": "روسی", "rup": "ارومانی", "rw": "کینیاروانڈا", "rwk": "روا", "sa": "سنسکرت", "sad": "سنڈاوے", "sah": "ساکھا", "saq": "سامبورو", "sat": "سنتالی", "sba": "نگامبے", "sbp": "سانگو", "sc": "سردینین", "scn": "سیسیلین", "sco": "سکاٹ", "sd": "سندھی", "sdh": "جنوبی کرد", "se": "شمالی سامی", "seh": "سینا", "ses": "کويرابورو سينی", "sg": "ساںغو", "sh": "سربو-کروئیشین", "shi": "تشلحيت", "shn": "شان", "si": "سنہالا", "sk": "سلوواک", "sl": "سلووینیائی", "sm": "ساموآن", "sma": "جنوبی سامی", "smj": "لول سامی", "smn": "اناری سامی", "sms": "سکولٹ سامی", "sn": "شونا", "snk": "سوننکے", "so": "صومالی", "sq": "البانی", "sr": "سربین", "srn": "سرانن ٹونگو", "ss": "سواتی", "ssy": "ساہو", "st": "جنوبی سوتھو", "su": "سنڈانیز", "suk": "سکوما", "sv": "سویڈش", "sw": "سواحلی", "sw-CD": "کانگو سواحلی", "swb": "کوموریائی", "syr": "سریانی", "ta": "تمل", "te": "تیلگو", "tem": "ٹمنے", "teo": "تیسو", "tet": "ٹیٹم", "tg": "تاجک", "th": "تھائی", "ti": "ٹگرینیا", "tig": "ٹگرے", "tk": "ترکمان", "tl": "ٹیگا لوگ", "tlh": "کلنگن", "tn": "سوانا", "to": "ٹونگن", "tpi": "ٹوک پِسِن", "tr": "ترکی", "trv": "ٹوروکو", "ts": "زونگا", "tt": "تاتار", "tum": "ٹمبوکا", "tvl": "تووالو", "tw": "توی", "twq": "تاساواق", "ty": "تاہیتی", "tyv": "تووینین", "tzm": "سینٹرل ایٹلس ٹمازائٹ", "udm": "ادمورت", "ug": "یوئگہر", "uk": "یوکرینیائی", "umb": "اومبوندو", "ur": "اردو", "uz": "ازبیک", "vai": "وائی", "ve": "وینڈا", "vi": "ویتنامی", "vo": "وولاپوک", "vun": "ونجو", "wa": "والون", "wae": "والسر", "wal": "وولایتا", "war": "وارے", "wbp": "وارلپیری", "wo": "وولوف", "xal": "کالمیک", "xh": "ژوسا", "xog": "سوگا", "yav": "یانگبین", "ybb": "یمبا", "yi": "یدش", "yo": "یوروبا", "yue": "کینٹونیز", "zgh": "اسٹینڈرڈ مراقشی تمازیقی", "zh": "چینی", "zh-Hans": "چینی (آسان کردہ)", "zh-Hant": "روایتی چینی", "zu": "زولو", "zun": "زونی", "zza": "زازا"}}, + "vi": {"rtl": false, "languageNames": {"aa": "Tiếng Afar", "ab": "Tiếng Abkhazia", "ace": "Tiếng Achinese", "ach": "Tiếng Acoli", "ada": "Tiếng Adangme", "ady": "Tiếng Adyghe", "ae": "Tiếng Avestan", "af": "Tiếng Afrikaans", "afh": "Tiếng Afrihili", "agq": "Tiếng Aghem", "ain": "Tiếng Ainu", "ak": "Tiếng Akan", "akk": "Tiếng Akkadia", "akz": "Tiếng Alabama", "ale": "Tiếng Aleut", "aln": "Tiếng Gheg Albani", "alt": "Tiếng Altai Miền Nam", "am": "Tiếng Amharic", "an": "Tiếng Aragon", "ang": "Tiếng Anh cổ", "anp": "Tiếng Angika", "ar": "Tiếng Ả Rập", "ar-001": "Tiếng Ả Rập Hiện đại", "arc": "Tiếng Aramaic", "arn": "Tiếng Mapuche", "aro": "Tiếng Araona", "arp": "Tiếng Arapaho", "arq": "Tiếng Ả Rập Algeria", "ars": "Tiếng Ả Rập Najdi", "arw": "Tiếng Arawak", "arz": "Tiếng Ả Rập Ai Cập", "as": "Tiếng Assam", "asa": "Tiếng Asu", "ase": "Ngôn ngữ Ký hiệu Mỹ", "ast": "Tiếng Asturias", "av": "Tiếng Avaric", "awa": "Tiếng Awadhi", "ay": "Tiếng Aymara", "az": "Tiếng Azerbaijan", "ba": "Tiếng Bashkir", "bal": "Tiếng Baluchi", "ban": "Tiếng Bali", "bar": "Tiếng Bavaria", "bas": "Tiếng Basaa", "bax": "Tiếng Bamun", "bbc": "Tiếng Batak Toba", "bbj": "Tiếng Ghomala", "be": "Tiếng Belarus", "bej": "Tiếng Beja", "bem": "Tiếng Bemba", "bew": "Tiếng Betawi", "bez": "Tiếng Bena", "bfd": "Tiếng Bafut", "bfq": "Tiếng Badaga", "bg": "Tiếng Bulgaria", "bgn": "Tiếng Tây Balochi", "bho": "Tiếng Bhojpuri", "bi": "Tiếng Bislama", "bik": "Tiếng Bikol", "bin": "Tiếng Bini", "bjn": "Tiếng Banjar", "bkm": "Tiếng Kom", "bla": "Tiếng Siksika", "bm": "Tiếng Bambara", "bn": "Tiếng Bangla", "bo": "Tiếng Tây Tạng", "bpy": "Tiếng Bishnupriya", "bqi": "Tiếng Bakhtiari", "br": "Tiếng Breton", "bra": "Tiếng Braj", "brh": "Tiếng Brahui", "brx": "Tiếng Bodo", "bs": "Tiếng Bosnia", "bss": "Tiếng Akoose", "bua": "Tiếng Buriat", "bug": "Tiếng Bugin", "bum": "Tiếng Bulu", "byn": "Tiếng Blin", "byv": "Tiếng Medumba", "ca": "Tiếng Catalan", "cad": "Tiếng Caddo", "car": "Tiếng Carib", "cay": "Tiếng Cayuga", "cch": "Tiếng Atsam", "ccp": "Tiếng Chakma", "ce": "Tiếng Chechen", "ceb": "Tiếng Cebuano", "cgg": "Tiếng Chiga", "ch": "Tiếng Chamorro", "chb": "Tiếng Chibcha", "chg": "Tiếng Chagatai", "chk": "Tiếng Chuuk", "chm": "Tiếng Mari", "chn": "Biệt ngữ Chinook", "cho": "Tiếng Choctaw", "chp": "Tiếng Chipewyan", "chr": "Tiếng Cherokee", "chy": "Tiếng Cheyenne", "ckb": "Tiếng Kurd Miền Trung", "co": "Tiếng Corsica", "cop": "Tiếng Coptic", "cps": "Tiếng Capiznon", "cr": "Tiếng Cree", "crh": "Tiếng Thổ Nhĩ Kỳ Crimean", "crs": "Tiếng Pháp Seselwa Creole", "cs": "Tiếng Séc", "csb": "Tiếng Kashubia", "cu": "Tiếng Slavơ Nhà thờ", "cv": "Tiếng Chuvash", "cy": "Tiếng Wales", "da": "Tiếng Đan Mạch", "dak": "Tiếng Dakota", "dar": "Tiếng Dargwa", "dav": "Tiếng Taita", "de": "Tiếng Đức", "de-AT": "Tiếng Đức (Áo)", "de-CH": "Tiếng Thượng Giéc-man (Thụy Sĩ)", "del": "Tiếng Delaware", "den": "Tiếng Slave", "dgr": "Tiếng Dogrib", "din": "Tiếng Dinka", "dje": "Tiếng Zarma", "doi": "Tiếng Dogri", "dsb": "Tiếng Hạ Sorbia", "dtp": "Tiếng Dusun Miền Trung", "dua": "Tiếng Duala", "dum": "Tiếng Hà Lan Trung cổ", "dv": "Tiếng Divehi", "dyo": "Tiếng Jola-Fonyi", "dyu": "Tiếng Dyula", "dz": "Tiếng Dzongkha", "dzg": "Tiếng Dazaga", "ebu": "Tiếng Embu", "ee": "Tiếng Ewe", "efi": "Tiếng Efik", "egl": "Tiếng Emilia", "egy": "Tiếng Ai Cập cổ", "eka": "Tiếng Ekajuk", "el": "Tiếng Hy Lạp", "elx": "Tiếng Elamite", "en": "Tiếng Anh", "en-AU": "Tiếng Anh (Australia)", "en-CA": "Tiếng Anh (Canada)", "en-GB": "Tiếng Anh (Anh)", "en-US": "Tiếng Anh (Mỹ)", "enm": "Tiếng Anh Trung cổ", "eo": "Tiếng Quốc Tế Ngữ", "es": "Tiếng Tây Ban Nha", "es-419": "Tiếng Tây Ban Nha (Mỹ La tinh)", "es-ES": "Tiếng Tây Ban Nha (Châu Âu)", "es-MX": "Tiếng Tây Ban Nha (Mexico)", "esu": "Tiếng Yupik Miền Trung", "et": "Tiếng Estonia", "eu": "Tiếng Basque", "ewo": "Tiếng Ewondo", "ext": "Tiếng Extremadura", "fa": "Tiếng Ba Tư", "fan": "Tiếng Fang", "fat": "Tiếng Fanti", "ff": "Tiếng Fulah", "fi": "Tiếng Phần Lan", "fil": "Tiếng Philippines", "fj": "Tiếng Fiji", "fo": "Tiếng Faroe", "fon": "Tiếng Fon", "fr": "Tiếng Pháp", "fr-CA": "Tiếng Pháp (Canada)", "fr-CH": "Tiếng Pháp (Thụy Sĩ)", "frc": "Tiếng Pháp Cajun", "frm": "Tiếng Pháp Trung cổ", "fro": "Tiếng Pháp cổ", "frp": "Tiếng Arpitan", "frr": "Tiếng Frisia Miền Bắc", "frs": "Tiếng Frisian Miền Đông", "fur": "Tiếng Friulian", "fy": "Tiếng Frisia", "ga": "Tiếng Ireland", "gaa": "Tiếng Ga", "gag": "Tiếng Gagauz", "gan": "Tiếng Cám", "gay": "Tiếng Gayo", "gba": "Tiếng Gbaya", "gd": "Tiếng Gael Scotland", "gez": "Tiếng Geez", "gil": "Tiếng Gilbert", "gl": "Tiếng Galician", "glk": "Tiếng Gilaki", "gmh": "Tiếng Thượng Giéc-man Trung cổ", "gn": "Tiếng Guarani", "goh": "Tiếng Thượng Giéc-man cổ", "gom": "Tiếng Goan Konkani", "gon": "Tiếng Gondi", "gor": "Tiếng Gorontalo", "got": "Tiếng Gô-tích", "grb": "Tiếng Grebo", "grc": "Tiếng Hy Lạp cổ", "gsw": "Tiếng Đức (Thụy Sĩ)", "gu": "Tiếng Gujarati", "gur": "Tiếng Frafra", "guz": "Tiếng Gusii", "gv": "Tiếng Manx", "gwi": "Tiếng Gwichʼin", "ha": "Tiếng Hausa", "hai": "Tiếng Haida", "hak": "Tiếng Khách Gia", "haw": "Tiếng Hawaii", "he": "Tiếng Do Thái", "hi": "Tiếng Hindi", "hif": "Tiếng Fiji Hindi", "hil": "Tiếng Hiligaynon", "hit": "Tiếng Hittite", "hmn": "Tiếng Hmông", "ho": "Tiếng Hiri Motu", "hr": "Tiếng Croatia", "hsb": "Tiếng Thượng Sorbia", "hsn": "Tiếng Tương", "ht": "Tiếng Haiti", "hu": "Tiếng Hungary", "hup": "Tiếng Hupa", "hy": "Tiếng Armenia", "hz": "Tiếng Herero", "ia": "Tiếng Khoa Học Quốc Tế", "iba": "Tiếng Iban", "ibb": "Tiếng Ibibio", "id": "Tiếng Indonesia", "ie": "Tiếng Interlingue", "ig": "Tiếng Igbo", "ii": "Tiếng Di Tứ Xuyên", "ik": "Tiếng Inupiaq", "ilo": "Tiếng Iloko", "inh": "Tiếng Ingush", "io": "Tiếng Ido", "is": "Tiếng Iceland", "it": "Tiếng Italy", "iu": "Tiếng Inuktitut", "izh": "Tiếng Ingria", "ja": "Tiếng Nhật", "jam": "Tiếng Anh Jamaica Creole", "jbo": "Tiếng Lojban", "jgo": "Tiếng Ngomba", "jmc": "Tiếng Machame", "jpr": "Tiếng Judeo-Ba Tư", "jrb": "Tiếng Judeo-Ả Rập", "jut": "Tiếng Jutish", "jv": "Tiếng Java", "ka": "Tiếng Georgia", "kaa": "Tiếng Kara-Kalpak", "kab": "Tiếng Kabyle", "kac": "Tiếng Kachin", "kaj": "Tiếng Jju", "kam": "Tiếng Kamba", "kaw": "Tiếng Kawi", "kbd": "Tiếng Kabardian", "kbl": "Tiếng Kanembu", "kcg": "Tiếng Tyap", "kde": "Tiếng Makonde", "kea": "Tiếng Kabuverdianu", "kfo": "Tiếng Koro", "kg": "Tiếng Kongo", "kha": "Tiếng Khasi", "kho": "Tiếng Khotan", "khq": "Tiếng Koyra Chiini", "ki": "Tiếng Kikuyu", "kj": "Tiếng Kuanyama", "kk": "Tiếng Kazakh", "kkj": "Tiếng Kako", "kl": "Tiếng Kalaallisut", "kln": "Tiếng Kalenjin", "km": "Tiếng Khmer", "kmb": "Tiếng Kimbundu", "kn": "Tiếng Kannada", "ko": "Tiếng Hàn", "koi": "Tiếng Komi-Permyak", "kok": "Tiếng Konkani", "kos": "Tiếng Kosrae", "kpe": "Tiếng Kpelle", "kr": "Tiếng Kanuri", "krc": "Tiếng Karachay-Balkar", "krl": "Tiếng Karelian", "kru": "Tiếng Kurukh", "ks": "Tiếng Kashmir", "ksb": "Tiếng Shambala", "ksf": "Tiếng Bafia", "ksh": "Tiếng Cologne", "ku": "Tiếng Kurd", "kum": "Tiếng Kumyk", "kut": "Tiếng Kutenai", "kv": "Tiếng Komi", "kw": "Tiếng Cornwall", "ky": "Tiếng Kyrgyz", "la": "Tiếng La-tinh", "lad": "Tiếng Ladino", "lag": "Tiếng Langi", "lah": "Tiếng Lahnda", "lam": "Tiếng Lamba", "lb": "Tiếng Luxembourg", "lez": "Tiếng Lezghian", "lg": "Tiếng Ganda", "li": "Tiếng Limburg", "lkt": "Tiếng Lakota", "ln": "Tiếng Lingala", "lo": "Tiếng Lào", "lol": "Tiếng Mongo", "lou": "Tiếng Creole Louisiana", "loz": "Tiếng Lozi", "lrc": "Tiếng Bắc Luri", "lt": "Tiếng Litva", "lu": "Tiếng Luba-Katanga", "lua": "Tiếng Luba-Lulua", "lui": "Tiếng Luiseno", "lun": "Tiếng Lunda", "luo": "Tiếng Luo", "lus": "Tiếng Lushai", "luy": "Tiếng Luyia", "lv": "Tiếng Latvia", "mad": "Tiếng Madura", "maf": "Tiếng Mafa", "mag": "Tiếng Magahi", "mai": "Tiếng Maithili", "mak": "Tiếng Makasar", "man": "Tiếng Mandingo", "mas": "Tiếng Masai", "mde": "Tiếng Maba", "mdf": "Tiếng Moksha", "mdr": "Tiếng Mandar", "men": "Tiếng Mende", "mer": "Tiếng Meru", "mfe": "Tiếng Morisyen", "mg": "Tiếng Malagasy", "mga": "Tiếng Ai-len Trung cổ", "mgh": "Tiếng Makhuwa-Meetto", "mgo": "Tiếng Meta’", "mh": "Tiếng Marshall", "mi": "Tiếng Maori", "mic": "Tiếng Micmac", "min": "Tiếng Minangkabau", "mk": "Tiếng Macedonia", "ml": "Tiếng Malayalam", "mn": "Tiếng Mông Cổ", "mnc": "Tiếng Mãn Châu", "mni": "Tiếng Manipuri", "moh": "Tiếng Mohawk", "mos": "Tiếng Mossi", "mr": "Tiếng Marathi", "ms": "Tiếng Mã Lai", "mt": "Tiếng Malta", "mua": "Tiếng Mundang", "mus": "Tiếng Creek", "mwl": "Tiếng Miranda", "mwr": "Tiếng Marwari", "my": "Tiếng Miến Điện", "mye": "Tiếng Myene", "myv": "Tiếng Erzya", "mzn": "Tiếng Mazanderani", "na": "Tiếng Nauru", "nan": "Tiếng Mân Nam", "nap": "Tiếng Napoli", "naq": "Tiếng Nama", "nb": "Tiếng Na Uy (Bokmål)", "nd": "Tiếng Ndebele Miền Bắc", "nds": "Tiếng Hạ Giéc-man", "nds-NL": "Tiếng Hạ Saxon", "ne": "Tiếng Nepal", "new": "Tiếng Newari", "ng": "Tiếng Ndonga", "nia": "Tiếng Nias", "niu": "Tiếng Niuean", "njo": "Tiếng Ao Naga", "nl": "Tiếng Hà Lan", "nl-BE": "Tiếng Flemish", "nmg": "Tiếng Kwasio", "nn": "Tiếng Na Uy (Nynorsk)", "nnh": "Tiếng Ngiemboon", "no": "Tiếng Na Uy", "nog": "Tiếng Nogai", "non": "Tiếng Na Uy cổ", "nqo": "Tiếng N’Ko", "nr": "Tiếng Ndebele Miền Nam", "nso": "Tiếng Sotho Miền Bắc", "nus": "Tiếng Nuer", "nv": "Tiếng Navajo", "nwc": "Tiếng Newari cổ", "ny": "Tiếng Nyanja", "nym": "Tiếng Nyamwezi", "nyn": "Tiếng Nyankole", "nyo": "Tiếng Nyoro", "nzi": "Tiếng Nzima", "oc": "Tiếng Occitan", "oj": "Tiếng Ojibwa", "om": "Tiếng Oromo", "or": "Tiếng Odia", "os": "Tiếng Ossetic", "osa": "Tiếng Osage", "ota": "Tiếng Thổ Nhĩ Kỳ Ottoman", "pa": "Tiếng Punjab", "pag": "Tiếng Pangasinan", "pal": "Tiếng Pahlavi", "pam": "Tiếng Pampanga", "pap": "Tiếng Papiamento", "pau": "Tiếng Palauan", "pcm": "Tiếng Nigeria Pidgin", "peo": "Tiếng Ba Tư cổ", "phn": "Tiếng Phoenicia", "pi": "Tiếng Pali", "pl": "Tiếng Ba Lan", "pon": "Tiếng Pohnpeian", "prg": "Tiếng Prussia", "pro": "Tiếng Provençal cổ", "ps": "Tiếng Pashto", "pt": "Tiếng Bồ Đào Nha", "pt-BR": "Tiếng Bồ Đào Nha (Brazil)", "pt-PT": "Tiếng Bồ Đào Nha (Châu Âu)", "qu": "Tiếng Quechua", "quc": "Tiếng Kʼicheʼ", "qug": "Tiếng Quechua ở Cao nguyên Chimborazo", "raj": "Tiếng Rajasthani", "rap": "Tiếng Rapanui", "rar": "Tiếng Rarotongan", "rm": "Tiếng Romansh", "rn": "Tiếng Rundi", "ro": "Tiếng Romania", "ro-MD": "Tiếng Moldova", "rof": "Tiếng Rombo", "rom": "Tiếng Romany", "root": "Tiếng Root", "ru": "Tiếng Nga", "rup": "Tiếng Aromania", "rw": "Tiếng Kinyarwanda", "rwk": "Tiếng Rwa", "sa": "Tiếng Phạn", "sad": "Tiếng Sandawe", "sah": "Tiếng Sakha", "sam": "Tiếng Samaritan Aramaic", "saq": "Tiếng Samburu", "sas": "Tiếng Sasak", "sat": "Tiếng Santali", "sba": "Tiếng Ngambay", "sbp": "Tiếng Sangu", "sc": "Tiếng Sardinia", "scn": "Tiếng Sicilia", "sco": "Tiếng Scots", "sd": "Tiếng Sindhi", "sdh": "Tiếng Kurd Miền Nam", "se": "Tiếng Sami Miền Bắc", "see": "Tiếng Seneca", "seh": "Tiếng Sena", "sel": "Tiếng Selkup", "ses": "Tiếng Koyraboro Senni", "sg": "Tiếng Sango", "sga": "Tiếng Ai-len cổ", "sh": "Tiếng Serbo-Croatia", "shi": "Tiếng Tachelhit", "shn": "Tiếng Shan", "shu": "Tiếng Ả-Rập Chad", "si": "Tiếng Sinhala", "sid": "Tiếng Sidamo", "sk": "Tiếng Slovak", "sl": "Tiếng Slovenia", "sm": "Tiếng Samoa", "sma": "Tiếng Sami Miền Nam", "smj": "Tiếng Lule Sami", "smn": "Tiếng Inari Sami", "sms": "Tiếng Skolt Sami", "sn": "Tiếng Shona", "snk": "Tiếng Soninke", "so": "Tiếng Somali", "sog": "Tiếng Sogdien", "sq": "Tiếng Albania", "sr": "Tiếng Serbia", "srn": "Tiếng Sranan Tongo", "srr": "Tiếng Serer", "ss": "Tiếng Swati", "ssy": "Tiếng Saho", "st": "Tiếng Sotho Miền Nam", "su": "Tiếng Sunda", "suk": "Tiếng Sukuma", "sus": "Tiếng Susu", "sux": "Tiếng Sumeria", "sv": "Tiếng Thụy Điển", "sw": "Tiếng Swahili", "sw-CD": "Tiếng Swahili Congo", "swb": "Tiếng Cômo", "syc": "Tiếng Syriac cổ", "syr": "Tiếng Syriac", "ta": "Tiếng Tamil", "te": "Tiếng Telugu", "tem": "Tiếng Timne", "teo": "Tiếng Teso", "ter": "Tiếng Tereno", "tet": "Tiếng Tetum", "tg": "Tiếng Tajik", "th": "Tiếng Thái", "ti": "Tiếng Tigrinya", "tig": "Tiếng Tigre", "tiv": "Tiếng Tiv", "tk": "Tiếng Turkmen", "tkl": "Tiếng Tokelau", "tl": "Tiếng Tagalog", "tlh": "Tiếng Klingon", "tli": "Tiếng Tlingit", "tmh": "Tiếng Tamashek", "tn": "Tiếng Tswana", "to": "Tiếng Tonga", "tog": "Tiếng Nyasa Tonga", "tpi": "Tiếng Tok Pisin", "tr": "Tiếng Thổ Nhĩ Kỳ", "trv": "Tiếng Taroko", "ts": "Tiếng Tsonga", "tsi": "Tiếng Tsimshian", "tt": "Tiếng Tatar", "tum": "Tiếng Tumbuka", "tvl": "Tiếng Tuvalu", "tw": "Tiếng Twi", "twq": "Tiếng Tasawaq", "ty": "Tiếng Tahiti", "tyv": "Tiếng Tuvinian", "tzm": "Tiếng Tamazight Miền Trung Ma-rốc", "udm": "Tiếng Udmurt", "ug": "Tiếng Uyghur", "uga": "Tiếng Ugaritic", "uk": "Tiếng Ucraina", "umb": "Tiếng Umbundu", "ur": "Tiếng Urdu", "uz": "Tiếng Uzbek", "vai": "Tiếng Vai", "ve": "Tiếng Venda", "vi": "Tiếng Việt", "vo": "Tiếng Volapük", "vot": "Tiếng Votic", "vun": "Tiếng Vunjo", "wa": "Tiếng Walloon", "wae": "Tiếng Walser", "wal": "Tiếng Walamo", "war": "Tiếng Waray", "was": "Tiếng Washo", "wbp": "Tiếng Warlpiri", "wo": "Tiếng Wolof", "wuu": "Tiếng Ngô", "xal": "Tiếng Kalmyk", "xh": "Tiếng Xhosa", "xog": "Tiếng Soga", "yao": "Tiếng Yao", "yap": "Tiếng Yap", "yav": "Tiếng Yangben", "ybb": "Tiếng Yemba", "yi": "Tiếng Yiddish", "yo": "Tiếng Yoruba", "yue": "Tiếng Quảng Đông", "za": "Tiếng Choang", "zap": "Tiếng Zapotec", "zbl": "Ký hiệu Blissymbols", "zen": "Tiếng Zenaga", "zgh": "Tiếng Tamazight Chuẩn của Ma-rốc", "zh": "Tiếng Trung", "zh-Hans": "Tiếng Trung (Giản thể)", "zh-Hant": "Tiếng Trung (Phồn thể)", "zu": "Tiếng Zulu", "zun": "Tiếng Zuni", "zza": "Tiếng Zaza"}}, + "yue": {"rtl": false, "languageNames": {"aa": "阿法文", "ab": "阿布哈茲文", "ace": "亞齊文", "ach": "阿僑利文", "ada": "阿當莫文", "ady": "阿迪各文", "ae": "阿緯斯陀文", "aeb": "突尼斯阿拉伯文", "af": "南非荷蘭文", "afh": "阿弗里希利文", "agq": "亞罕文", "ain": "阿伊努文", "ak": "阿坎文", "akk": "阿卡德文", "akz": "阿拉巴馬文", "ale": "阿留申文", "aln": "蓋格阿爾巴尼亞文", "alt": "南阿爾泰文", "am": "阿姆哈拉文", "an": "阿拉貢文", "ang": "古英文", "anp": "昂加文", "ar": "阿拉伯文", "ar-001": "現代標準阿拉伯文", "arc": "阿拉米文", "arn": "馬普切文", "aro": "阿拉奧納文", "arp": "阿拉帕霍文", "arq": "阿爾及利亞阿拉伯文", "arw": "阿拉瓦克文", "ary": "摩洛哥阿拉伯文", "arz": "埃及阿拉伯文", "as": "阿薩姆文", "asa": "阿蘇文", "ase": "美國手語", "ast": "阿斯圖里亞文", "av": "阿瓦爾文", "avk": "科塔瓦文", "awa": "阿瓦文", "ay": "艾馬拉文", "az": "亞塞拜然文", "ba": "巴什客爾文", "bal": "俾路支文", "ban": "峇里文", "bar": "巴伐利亞文", "bas": "巴薩文", "bax": "巴姆穆文", "bbc": "巴塔克托巴文", "bbj": "戈馬拉文", "be": "白俄羅斯文", "bej": "貝扎文", "bem": "別姆巴文", "bew": "貝塔維文", "bez": "貝納文", "bfd": "富特文", "bfq": "巴達加文", "bg": "保加利亞文", "bgn": "西俾路支文", "bho": "博傑普爾文", "bi": "比斯拉馬文", "bik": "比科爾文", "bin": "比尼文", "bjn": "班亞爾文", "bkm": "康姆文", "bla": "錫克錫卡文", "bm": "班巴拉文", "bn": "孟加拉文", "bo": "藏文", "bpy": "比什奴普萊利亞文", "bqi": "巴赫蒂亞里文", "br": "布列塔尼文", "bra": "布拉杰文", "brh": "布拉維文", "brx": "博多文", "bs": "波士尼亞文", "bss": "阿庫色文", "bua": "布里阿特文", "bug": "布吉斯文", "bum": "布魯文", "byn": "比林文", "byv": "梅敦巴文", "ca": "加泰羅尼亞文", "cad": "卡多文", "car": "加勒比文", "cay": "卡尤加文", "cch": "阿燦文", "ccp": "查克馬文", "ce": "車臣文", "ceb": "宿霧文", "cgg": "奇加文", "ch": "查莫洛文", "chb": "奇布查文", "chg": "查加文", "chk": "處奇斯文", "chm": "馬里文", "chn": "契奴克文", "cho": "喬克托文", "chp": "奇佩瓦揚文", "chr": "柴羅基文", "chy": "沙伊安文", "ckb": "索拉尼庫爾德文", "co": "科西嘉文", "cop": "科普特文", "cps": "卡皮茲文", "cr": "克裡文", "crh": "克里米亞半島的土耳其文;克里米亞半島的塔塔爾文", "crs": "法語克里奧爾混合語", "cs": "捷克文", "csb": "卡舒布文", "cu": "宗教斯拉夫文", "cv": "楚瓦什文", "cy": "威爾斯文", "da": "丹麥文", "dak": "達科他文", "dar": "達爾格瓦文", "dav": "台塔文", "de": "德文", "de-AT": "德文 (奧地利)", "de-CH": "高地德文(瑞士)", "del": "德拉瓦文", "den": "斯拉夫", "dgr": "多格里布文", "din": "丁卡文", "dje": "扎爾馬文", "doi": "多格來文", "dsb": "下索布文", "dtp": "中部杜順文", "dua": "杜亞拉文", "dum": "中古荷蘭文", "dv": "迪維西文", "dyo": "朱拉文", "dyu": "迪尤拉文", "dz": "宗卡文", "dzg": "達薩文", "ebu": "恩布文", "ee": "埃維文", "efi": "埃菲克文", "egl": "埃米利安文", "egy": "古埃及文", "eka": "艾卡朱克文", "el": "希臘文", "elx": "埃蘭文", "en": "英文", "en-AU": "英文 (澳洲)", "en-CA": "英文 (加拿大)", "en-GB": "英文 (英國)", "en-US": "英文 (美國)", "enm": "中古英文", "eo": "世界文", "es": "西班牙文", "es-419": "西班牙文 (拉丁美洲)", "es-ES": "西班牙文 (西班牙)", "es-MX": "西班牙文 (墨西哥)", "esu": "中尤皮克文", "et": "愛沙尼亞文", "eu": "巴斯克文", "ewo": "依汪都文", "ext": "埃斯特雷馬杜拉文", "fa": "波斯文", "fan": "芳族文", "fat": "芳蒂文", "ff": "富拉文", "fi": "芬蘭文", "fil": "菲律賓文", "fit": "托爾訥芬蘭文", "fj": "斐濟文", "fo": "法羅文", "fon": "豐文", "fr": "法文", "fr-CA": "法文 (加拿大)", "fr-CH": "法文 (瑞士)", "frc": "卡真法文", "frm": "中古法文", "fro": "古法文", "frp": "法蘭克-普羅旺斯文", "frr": "北弗里西亞文", "frs": "東弗里西亞文", "fur": "弗留利文", "fy": "西弗里西亞文", "ga": "愛爾蘭文", "gaa": "加族文", "gag": "加告茲文", "gan": "贛語", "gay": "加約文", "gba": "葛巴亞文", "gbz": "索羅亞斯德教達里文", "gd": "蘇格蘭蓋爾文", "gez": "吉茲文", "gil": "吉爾伯特群島文", "gl": "加利西亞文", "glk": "吉拉基文", "gmh": "中古高地德文", "gn": "瓜拉尼文", "goh": "古高地日耳曼文", "gom": "孔卡尼文", "gon": "岡德文", "gor": "科隆達羅文", "got": "哥德文", "grb": "格列博文", "grc": "古希臘文", "gsw": "德文(瑞士)", "gu": "古吉拉特文", "guc": "瓦尤文", "gur": "弗拉弗拉文", "guz": "古西文", "gv": "曼島文", "gwi": "圭契文", "ha": "豪撒文", "hai": "海達文", "hak": "客家話", "haw": "夏威夷文", "he": "希伯來文", "hi": "北印度文", "hif": "斐濟印地文", "hil": "希利蓋農文", "hit": "赫梯文", "hmn": "孟文", "ho": "西里莫圖土文", "hr": "克羅埃西亞文", "hsb": "上索布文", "hsn": "湘語", "ht": "海地文", "hu": "匈牙利文", "hup": "胡帕文", "hy": "亞美尼亞文", "hz": "赫雷羅文", "ia": "國際文", "iba": "伊班文", "ibb": "伊比比奧文", "id": "印尼文", "ie": "國際文(E)", "ig": "伊布文", "ii": "四川彝文", "ik": "依奴皮維克文", "ilo": "伊洛闊文", "inh": "印古什文", "io": "伊多文", "is": "冰島文", "it": "義大利文", "iu": "因紐特文", "izh": "英格裏亞文", "ja": "日文", "jam": "牙買加克裏奧爾英文", "jbo": "邏輯文", "jgo": "恩格姆巴文", "jmc": "馬恰美文", "jpr": "猶太教-波斯文", "jrb": "猶太阿拉伯文", "jut": "日德蘭文", "jv": "爪哇文", "ka": "喬治亞文", "kaa": "卡拉卡爾帕克文", "kab": "卡比爾文", "kac": "卡琴文", "kaj": "卡捷文", "kam": "卡姆巴文", "kaw": "卡威文", "kbd": "卡巴爾達文", "kbl": "卡念布文", "kcg": "卡塔布文", "kde": "馬孔德文", "kea": "卡布威爾第文", "ken": "肯揚文", "kfo": "科羅文", "kg": "剛果文", "kgp": "坎剛文", "kha": "卡西文", "kho": "和闐文", "khq": "西桑海文", "khw": "科瓦文", "ki": "吉庫尤文", "kiu": "北紮紮其文", "kj": "廣亞馬文", "kk": "哈薩克文", "kkj": "卡庫文", "kl": "格陵蘭文", "kln": "卡倫金文", "km": "高棉文", "kmb": "金邦杜文", "kn": "坎那達文", "ko": "韓文", "koi": "科米-彼爾米亞克文", "kok": "貢根文", "kos": "科斯雷恩文", "kpe": "克佩列文", "kr": "卡努裡文", "krc": "卡拉柴-包爾卡爾文", "kri": "塞拉利昂克裏奧爾文", "krj": "基那來阿文", "krl": "卡累利阿文", "kru": "庫魯科文", "ks": "喀什米爾文", "ksb": "尚巴拉文", "ksf": "巴菲亞文", "ksh": "科隆文", "ku": "庫爾德文", "kum": "庫密克文", "kut": "庫特奈文", "kv": "科米文", "kw": "康瓦耳文", "ky": "吉爾吉斯文", "la": "拉丁文", "lad": "拉迪諾文", "lag": "朗吉文", "lah": "拉亨達文", "lam": "蘭巴文", "lb": "盧森堡文", "lez": "列茲干文", "lfn": "新共同語言", "lg": "干達文", "li": "林堡文", "lij": "利古里亞文", "liv": "利伏尼亞文", "lkt": "拉科塔文", "lmo": "倫巴底文", "ln": "林加拉文", "lo": "寮文", "lol": "芒戈文", "loz": "洛齊文", "lrc": "北盧爾文", "lt": "立陶宛文", "ltg": "拉特加萊文", "lu": "魯巴加丹加文", "lua": "魯巴魯魯亞文", "lui": "路易塞諾文", "lun": "盧恩達文", "luo": "盧奧文", "lus": "盧晒文", "luy": "盧雅文", "lv": "拉脫維亞文", "lzh": "文言文", "lzz": "拉茲文", "mad": "馬都拉文", "maf": "馬法文", "mag": "馬加伊文", "mai": "邁蒂利文", "mak": "望加錫文", "man": "曼丁哥文", "mas": "馬賽文", "mde": "馬巴文", "mdf": "莫克沙文", "mdr": "曼達文", "men": "門德文", "mer": "梅魯文", "mfe": "克里奧文(模里西斯)", "mg": "馬拉加什文", "mga": "中古愛爾蘭文", "mgh": "馬夸文", "mgo": "美塔文", "mh": "馬紹爾文", "mi": "毛利文", "mic": "米克馬克文", "min": "米南卡堡文", "mk": "馬其頓文", "ml": "馬來亞拉姆文", "mn": "蒙古文", "mnc": "滿族文", "mni": "曼尼普裡文", "moh": "莫霍克文", "mos": "莫西文", "mr": "馬拉地文", "mrj": "西馬裏文", "ms": "馬來文", "mt": "馬爾他文", "mua": "蒙當文", "mus": "克里克文", "mwl": "米蘭德斯文", "mwr": "馬爾尼裡文", "mwv": "明打威文", "my": "緬甸文", "mye": "姆耶內文", "myv": "厄爾茲亞文", "mzn": "馬贊德蘭文", "na": "諾魯文", "nan": "閩南語", "nap": "拿波里文", "naq": "納馬文", "nb": "巴克摩挪威文", "nd": "北地畢列文", "nds": "低地德文", "nds-NL": "低地薩克遜文", "ne": "尼泊爾文", "new": "尼瓦爾文", "ng": "恩東加文", "nia": "尼亞斯文", "niu": "紐埃文", "njo": "阿沃那加文", "nl": "荷蘭文", "nl-BE": "佛蘭芒文", "nmg": "夸西奧文", "nn": "耐諾斯克挪威文", "nnh": "恩甘澎文", "no": "挪威文", "nog": "諾蓋文", "non": "古諾爾斯文", "nov": "諾維亞文", "nqo": "曼德文字 (N’Ko)", "nr": "南地畢列文", "nso": "北索托文", "nus": "努埃爾文", "nv": "納瓦霍文", "nwc": "古尼瓦爾文", "ny": "尼揚賈文", "nym": "尼揚韋齊文", "nyn": "尼揚科萊文", "nyo": "尼奧囉文", "nzi": "尼茲馬文", "oc": "奧克西坦文", "oj": "奧杰布瓦文", "om": "奧羅莫文", "or": "歐利亞文", "os": "奧塞提文", "osa": "歐塞奇文", "ota": "鄂圖曼土耳其文", "pa": "旁遮普文", "pag": "潘加辛文", "pal": "巴列維文", "pam": "潘帕嘉文", "pap": "帕皮阿門托文", "pau": "帛琉文", "pcd": "庇卡底文", "pcm": "尼日利亞皮欽語", "pdc": "賓夕法尼亞德文", "pdt": "門諾低地德文", "peo": "古波斯文", "pfl": "普法爾茨德文", "phn": "腓尼基文", "pi": "巴利文", "pl": "波蘭文", "pms": "皮埃蒙特文", "pnt": "旁狄希臘文", "pon": "波那貝文", "prg": "普魯士文", "pro": "古普羅旺斯文", "ps": "普什圖文", "pt": "葡萄牙文", "pt-BR": "葡萄牙文 (巴西)", "pt-PT": "葡萄牙文 (葡萄牙)", "qu": "蓋楚瓦文", "quc": "基切文", "qug": "欽博拉索海蘭蓋丘亞文", "raj": "拉賈斯坦諸文", "rap": "復活島文", "rar": "拉羅通加文", "rgn": "羅馬格諾里文", "rif": "里菲亞諾文", "rm": "羅曼斯文", "rn": "隆迪文", "ro": "羅馬尼亞文", "ro-MD": "摩爾多瓦文", "rof": "蘭博文", "rom": "吉普賽文", "root": "根語言", "rtm": "羅圖馬島文", "ru": "俄文", "rue": "盧森尼亞文", "rug": "羅維阿納文", "rup": "羅馬尼亞語系", "rw": "盧安達文", "rwk": "羅瓦文", "sa": "梵文", "sad": "桑達韋文", "sah": "雅庫特文", "sam": "薩瑪利亞阿拉姆文", "saq": "薩布魯文", "sas": "撒撒克文", "sat": "散塔利文", "saz": "索拉什特拉文", "sba": "甘拜文", "sbp": "桑古文", "sc": "撒丁文", "scn": "西西里文", "sco": "蘇格蘭文", "sd": "信德文", "sdc": "薩丁尼亞-薩薩里文", "sdh": "南庫爾德文", "se": "北方薩米文", "see": "塞訥卡文", "seh": "賽納文", "sei": "瑟里文", "sel": "瑟爾卡普文", "ses": "東桑海文", "sg": "桑戈文", "sga": "古愛爾蘭文", "sgs": "薩莫吉希亞文", "sh": "塞爾維亞克羅埃西亞文", "shi": "希爾哈文", "shn": "撣文", "shu": "阿拉伯文(查德)", "si": "僧伽羅文", "sid": "希達摩文", "sk": "斯洛伐克文", "sl": "斯洛維尼亞文", "sli": "下西利西亞文", "sly": "塞拉亞文", "sm": "薩摩亞文", "sma": "南薩米文", "smj": "魯勒薩米文", "smn": "伊納裡薩米文", "sms": "斯科特薩米文", "sn": "塞內加爾文", "snk": "索尼基文", "so": "索馬利文", "sog": "索格底亞納文", "sq": "阿爾巴尼亞文", "sr": "塞爾維亞文", "srn": "蘇拉南東墎文", "srr": "塞雷爾文", "ss": "斯瓦特文", "ssy": "薩霍文", "st": "塞索托文", "stq": "沙特菲士蘭文", "su": "巽他文", "suk": "蘇庫馬文", "sus": "蘇蘇文", "sux": "蘇美文", "sv": "瑞典文", "sw": "史瓦希里文", "sw-CD": "史瓦希里文(剛果)", "swb": "葛摩文", "syc": "古敘利亞文", "syr": "敘利亞文", "szl": "西利西亞文", "ta": "坦米爾文", "tcy": "圖盧文", "te": "泰盧固文", "tem": "提姆文", "teo": "特索文", "ter": "泰雷諾文", "tet": "泰頓文", "tg": "塔吉克文", "th": "泰文", "ti": "提格利尼亞文", "tig": "蒂格雷文", "tiv": "提夫文", "tk": "土庫曼文", "tkl": "托克勞文", "tkr": "查庫爾文", "tl": "塔加路族文", "tlh": "克林貢文", "tli": "特林基特文", "tly": "塔里什文", "tmh": "塔馬奇克文", "tn": "突尼西亞文", "to": "東加文", "tog": "東加文(尼亞薩)", "tpi": "托比辛文", "tr": "土耳其文", "tru": "圖羅尤文", "trv": "太魯閣文", "ts": "特松加文", "tsd": "特薩克尼恩文", "tsi": "欽西安文", "tt": "韃靼文", "ttt": "穆斯林塔特文", "tum": "圖姆布卡文", "tvl": "吐瓦魯文", "tw": "特威文", "twq": "北桑海文", "ty": "大溪地文", "tyv": "土凡文", "tzm": "塔馬齊格特文", "udm": "沃蒂艾克文", "ug": "維吾爾文", "uga": "烏加列文", "uk": "烏克蘭文", "umb": "姆本杜文", "ur": "烏都文", "uz": "烏茲別克文", "vai": "瓦伊文", "ve": "溫達文", "vec": "威尼斯文", "vep": "維普森文", "vi": "越南文", "vls": "西佛蘭德文", "vmf": "美茵-法蘭克尼亞文", "vo": "沃拉普克文", "vot": "沃提克文", "vro": "佛羅文", "vun": "溫舊文", "wa": "瓦隆文", "wae": "瓦瑟文", "wal": "瓦拉莫文", "war": "瓦瑞文", "was": "瓦紹文", "wbp": "沃皮瑞文", "wo": "沃洛夫文", "wuu": "吳語", "xal": "卡爾梅克文", "xh": "科薩文", "xmf": "明格列爾文", "xog": "索加文", "yao": "瑤文", "yap": "雅浦文", "yav": "洋卞文", "ybb": "耶姆巴文", "yi": "意第緒文", "yo": "約魯巴文", "yrl": "奈恩加圖文", "yue": "粵語", "za": "壯文", "zap": "薩波特克文", "zbl": "布列斯符號", "zea": "西蘭文", "zen": "澤納加文", "zgh": "標準摩洛哥塔馬塞特文", "zh": "中文", "zh-Hans": "簡體中文", "zh-Hant": "繁體中文", "zu": "祖魯文", "zun": "祖尼文", "zza": "扎扎文"}}, + "zh": {"rtl": false, "languageNames": {"aa": "阿法尔语", "ab": "阿布哈西亚语", "ace": "亚齐语", "ach": "阿乔利语", "ada": "阿当梅语", "ady": "阿迪格语", "ae": "阿维斯塔语", "af": "南非荷兰语", "afh": "阿弗里希利语", "agq": "亚罕语", "ain": "阿伊努语", "ak": "阿肯语", "akk": "阿卡德语", "ale": "阿留申语", "alt": "南阿尔泰语", "am": "阿姆哈拉语", "an": "阿拉贡语", "ang": "古英语", "anp": "昂加语", "ar": "阿拉伯语", "ar-001": "现代标准阿拉伯语", "arc": "阿拉米语", "arn": "马普切语", "arp": "阿拉帕霍语", "ars": "纳吉迪阿拉伯语", "arw": "阿拉瓦克语", "as": "阿萨姆语", "asa": "帕雷语", "ast": "阿斯图里亚斯语", "av": "阿瓦尔语", "awa": "阿瓦德语", "ay": "艾马拉语", "az": "阿塞拜疆语", "az-Arab": "南阿塞拜疆语", "ba": "巴什基尔语", "bal": "俾路支语", "ban": "巴厘语", "bas": "巴萨语", "bax": "巴姆穆语", "bbj": "戈马拉语", "be": "白俄罗斯语", "bej": "贝沙语", "bem": "本巴语", "bez": "贝纳语", "bfd": "巴非特语", "bg": "保加利亚语", "bgn": "西俾路支语", "bho": "博杰普尔语", "bi": "比斯拉马语", "bik": "比科尔语", "bin": "比尼语", "bkm": "科姆语", "bla": "西克西卡语", "bm": "班巴拉语", "bn": "孟加拉语", "bo": "藏语", "br": "布列塔尼语", "bra": "布拉杰语", "brx": "博多语", "bs": "波斯尼亚语", "bss": "阿库色语", "bua": "布里亚特语", "bug": "布吉语", "bum": "布鲁语", "byn": "比林语", "byv": "梅敦巴语", "ca": "加泰罗尼亚语", "cad": "卡多语", "car": "加勒比语", "cay": "卡尤加语", "cch": "阿灿语", "ccp": "查克玛语", "ce": "车臣语", "ceb": "宿务语", "cgg": "奇加语", "ch": "查莫罗语", "chb": "奇布查语", "chg": "察合台语", "chk": "楚克语", "chm": "马里语", "chn": "奇努克混合语", "cho": "乔克托语", "chp": "奇佩维安语", "chr": "切罗基语", "chy": "夏延语", "ckb": "中库尔德语", "co": "科西嘉语", "cop": "科普特语", "cr": "克里族语", "crh": "克里米亚土耳其语", "crs": "塞舌尔克里奥尔语", "cs": "捷克语", "csb": "卡舒比语", "cu": "教会斯拉夫语", "cv": "楚瓦什语", "cy": "威尔士语", "da": "丹麦语", "dak": "达科他语", "dar": "达尔格瓦语", "dav": "台塔语", "de": "德语", "de-AT": "奥地利德语", "de-CH": "瑞士高地德语", "del": "特拉华语", "den": "史拉维语", "dgr": "多格里布语", "din": "丁卡语", "dje": "哲尔马语", "doi": "多格拉语", "dsb": "下索布语", "dua": "都阿拉语", "dum": "中古荷兰语", "dv": "迪维希语", "dyo": "朱拉语", "dyu": "迪尤拉语", "dz": "宗卡语", "dzg": "达扎葛语", "ebu": "恩布语", "ee": "埃维语", "efi": "埃菲克语", "egy": "古埃及语", "eka": "艾卡朱克语", "el": "希腊语", "elx": "埃兰语", "en": "英语", "en-AU": "澳大利亚英语", "en-CA": "加拿大英语", "en-GB": "英国英语", "en-US": "美国英语", "enm": "中古英语", "eo": "世界语", "es": "西班牙语", "es-419": "拉丁美洲西班牙语", "es-ES": "欧洲西班牙语", "es-MX": "墨西哥西班牙语", "et": "爱沙尼亚语", "eu": "巴斯克语", "ewo": "旺杜语", "fa": "波斯语", "fan": "芳格语", "fat": "芳蒂语", "ff": "富拉语", "fi": "芬兰语", "fil": "菲律宾语", "fj": "斐济语", "fo": "法罗语", "fon": "丰语", "fr": "法语", "fr-CA": "加拿大法语", "fr-CH": "瑞士法语", "frc": "卡真法语", "frm": "中古法语", "fro": "古法语", "frr": "北弗里西亚语", "frs": "东弗里西亚语", "fur": "弗留利语", "fy": "西弗里西亚语", "ga": "爱尔兰语", "gaa": "加族语", "gag": "加告兹语", "gan": "赣语", "gay": "迦约语", "gba": "格巴亚语", "gd": "苏格兰盖尔语", "gez": "吉兹语", "gil": "吉尔伯特语", "gl": "加利西亚语", "gmh": "中古高地德语", "gn": "瓜拉尼语", "goh": "古高地德语", "gon": "冈德语", "gor": "哥伦打洛语", "got": "哥特语", "grb": "格列博语", "grc": "古希腊语", "gsw": "瑞士德语", "gu": "古吉拉特语", "guz": "古西语", "gv": "马恩语", "gwi": "哥威迅语", "ha": "豪萨语", "hai": "海达语", "hak": "客家语", "haw": "夏威夷语", "he": "希伯来语", "hi": "印地语", "hil": "希利盖农语", "hit": "赫梯语", "hmn": "苗语", "ho": "希里莫图语", "hr": "克罗地亚语", "hsb": "上索布语", "hsn": "湘语", "ht": "海地克里奥尔语", "hu": "匈牙利语", "hup": "胡帕语", "hy": "亚美尼亚语", "hz": "赫雷罗语", "ia": "国际语", "iba": "伊班语", "ibb": "伊比比奥语", "id": "印度尼西亚语", "ie": "国际文字(E)", "ig": "伊博语", "ii": "四川彝语", "ik": "伊努皮克语", "ilo": "伊洛卡诺语", "inh": "印古什语", "io": "伊多语", "is": "冰岛语", "it": "意大利语", "iu": "因纽特语", "ja": "日语", "jbo": "逻辑语", "jgo": "恩艮巴语", "jmc": "马切姆语", "jpr": "犹太波斯语", "jrb": "犹太阿拉伯语", "jv": "爪哇语", "ka": "格鲁吉亚语", "kaa": "卡拉卡尔帕克语", "kab": "卡拜尔语", "kac": "克钦语", "kaj": "卡捷语", "kam": "卡姆巴语", "kaw": "卡威语", "kbd": "卡巴尔德语", "kbl": "加涅姆布语", "kcg": "卡塔布语", "kde": "马孔德语", "kea": "卡布佛得鲁语", "kfo": "克罗语", "kg": "刚果语", "kha": "卡西语", "kho": "和田语", "khq": "西桑海语", "ki": "吉库尤语", "kj": "宽亚玛语", "kk": "哈萨克语", "kkj": "卡库语", "kl": "格陵兰语", "kln": "卡伦金语", "km": "高棉语", "kmb": "金邦杜语", "kn": "卡纳达语", "ko": "韩语", "koi": "科米-彼尔米亚克语", "kok": "孔卡尼语", "kos": "科斯拉伊语", "kpe": "克佩列语", "kr": "卡努里语", "krc": "卡拉恰伊巴尔卡尔语", "krl": "卡累利阿语", "kru": "库鲁克语", "ks": "克什米尔语", "ksb": "香巴拉语", "ksf": "巴菲亚语", "ksh": "科隆语", "ku": "库尔德语", "kum": "库梅克语", "kut": "库特奈语", "kv": "科米语", "kw": "康沃尔语", "ky": "柯尔克孜语", "la": "拉丁语", "lad": "拉迪诺语", "lag": "朗吉语", "lah": "印度-雅利安语", "lam": "兰巴语", "lb": "卢森堡语", "lez": "列兹金语", "lg": "卢干达语", "li": "林堡语", "lkt": "拉科塔语", "ln": "林加拉语", "lo": "老挝语", "lol": "蒙戈语", "lou": "路易斯安那克里奥尔语", "loz": "洛齐语", "lrc": "北卢尔语", "lt": "立陶宛语", "lu": "鲁巴加丹加语", "lua": "卢巴-卢拉语", "lui": "卢伊塞诺语", "lun": "隆达语", "luo": "卢奥语", "lus": "米佐语", "luy": "卢雅语", "lv": "拉脱维亚语", "mad": "马都拉语", "maf": "马法语", "mag": "摩揭陀语", "mai": "迈蒂利语", "mak": "望加锡语", "man": "曼丁哥语", "mas": "马赛语", "mde": "马坝语", "mdf": "莫克沙语", "mdr": "曼达尔语", "men": "门德语", "mer": "梅鲁语", "mfe": "毛里求斯克里奥尔语", "mg": "马拉加斯语", "mga": "中古爱尔兰语", "mgh": "马库阿语", "mgo": "梅塔语", "mh": "马绍尔语", "mi": "毛利语", "mic": "密克马克语", "min": "米南佳保语", "mk": "马其顿语", "ml": "马拉雅拉姆语", "mn": "蒙古语", "mnc": "满语", "mni": "曼尼普尔语", "moh": "摩霍克语", "mos": "莫西语", "mr": "马拉地语", "ms": "马来语", "mt": "马耳他语", "mua": "蒙当语", "mus": "克里克语", "mwl": "米兰德斯语", "mwr": "马尔瓦里语", "my": "缅甸语", "mye": "姆耶内语", "myv": "厄尔兹亚语", "mzn": "马赞德兰语", "na": "瑙鲁语", "nan": "闽南语", "nap": "那不勒斯语", "naq": "纳马语", "nb": "书面挪威语", "nd": "北恩德贝勒语", "nds": "低地德语", "nds-NL": "低萨克森语", "ne": "尼泊尔语", "new": "尼瓦尔语", "ng": "恩东加语", "nia": "尼亚斯语", "niu": "纽埃语", "nl": "荷兰语", "nl-BE": "弗拉芒语", "nmg": "夸西奥语", "nn": "挪威尼诺斯克语", "nnh": "恩甘澎语", "no": "挪威语", "nog": "诺盖语", "non": "古诺尔斯语", "nqo": "西非书面文字", "nr": "南恩德贝勒语", "nso": "北索托语", "nus": "努埃尔语", "nv": "纳瓦霍语", "nwc": "古典尼瓦尔语", "ny": "齐切瓦语", "nym": "尼扬韦齐语", "nyn": "尼昂科勒语", "nyo": "尼奥罗语", "nzi": "恩济马语", "oc": "奥克语", "oj": "奥吉布瓦语", "om": "奥罗莫语", "or": "奥里亚语", "os": "奥塞梯语", "osa": "奥塞治语", "ota": "奥斯曼土耳其语", "pa": "旁遮普语", "pag": "邦阿西南语", "pal": "巴拉维语", "pam": "邦板牙语", "pap": "帕皮阿门托语", "pau": "帕劳语", "pcm": "尼日利亚皮钦语", "peo": "古波斯语", "phn": "腓尼基语", "pi": "巴利语", "pl": "波兰语", "pon": "波纳佩语", "prg": "普鲁士语", "pro": "古普罗文斯语", "ps": "普什图语", "pt": "葡萄牙语", "pt-BR": "巴西葡萄牙语", "pt-PT": "欧洲葡萄牙语", "qu": "克丘亚语", "quc": "基切语", "raj": "拉贾斯坦语", "rap": "拉帕努伊语", "rar": "拉罗汤加语", "rm": "罗曼什语", "rn": "隆迪语", "ro": "罗马尼亚语", "ro-MD": "摩尔多瓦语", "rof": "兰博语", "rom": "吉普赛语", "root": "根语言", "ru": "俄语", "rup": "阿罗马尼亚语", "rw": "卢旺达语", "rwk": "罗瓦语", "sa": "梵语", "sad": "桑达韦语", "sah": "萨哈语", "sam": "萨马利亚阿拉姆语", "saq": "桑布鲁语", "sas": "萨萨克文", "sat": "桑塔利语", "sba": "甘拜语", "sbp": "桑古语", "sc": "萨丁语", "scn": "西西里语", "sco": "苏格兰语", "sd": "信德语", "sdh": "南库尔德语", "se": "北方萨米语", "see": "塞内卡语", "seh": "塞纳语", "sel": "塞尔库普语", "ses": "东桑海语", "sg": "桑戈语", "sga": "古爱尔兰语", "sh": "塞尔维亚-克罗地亚语", "shi": "希尔哈语", "shn": "掸语", "shu": "乍得阿拉伯语", "si": "僧伽罗语", "sid": "悉达摩语", "sk": "斯洛伐克语", "sl": "斯洛文尼亚语", "sm": "萨摩亚语", "sma": "南萨米语", "smj": "吕勒萨米语", "smn": "伊纳里萨米语", "sms": "斯科特萨米语", "sn": "绍纳语", "snk": "索宁克语", "so": "索马里语", "sog": "粟特语", "sq": "阿尔巴尼亚语", "sr": "塞尔维亚语", "srn": "苏里南汤加语", "srr": "塞雷尔语", "ss": "斯瓦蒂语", "ssy": "萨霍语", "st": "南索托语", "su": "巽他语", "suk": "苏库马语", "sus": "苏苏语", "sux": "苏美尔语", "sv": "瑞典语", "sw": "斯瓦希里语", "sw-CD": "刚果斯瓦希里语", "swb": "科摩罗语", "syc": "古典叙利亚语", "syr": "叙利亚语", "ta": "泰米尔语", "te": "泰卢固语", "tem": "泰姆奈语", "teo": "特索语", "ter": "特伦诺语", "tet": "德顿语", "tg": "塔吉克语", "th": "泰语", "ti": "提格利尼亚语", "tig": "提格雷语", "tiv": "蒂夫语", "tk": "土库曼语", "tkl": "托克劳语", "tl": "他加禄语", "tlh": "克林贡语", "tli": "特林吉特语", "tmh": "塔马奇克语", "tn": "茨瓦纳语", "to": "汤加语", "tog": "尼亚萨汤加语", "tpi": "托克皮辛语", "tr": "土耳其语", "trv": "赛德克语", "ts": "聪加语", "tsi": "钦西安语", "tt": "鞑靼语", "tum": "通布卡语", "tvl": "图瓦卢语", "tw": "契维语", "twq": "北桑海语", "ty": "塔希提语", "tyv": "图瓦语", "tzm": "塔马齐格特语", "udm": "乌德穆尔特语", "ug": "维吾尔语", "uga": "乌加里特语", "uk": "乌克兰语", "umb": "翁本杜语", "ur": "乌尔都语", "uz": "乌兹别克语", "vai": "瓦伊语", "ve": "文达语", "vep": "维普森语", "vi": "越南语", "vo": "沃拉普克语", "vot": "沃提克语", "vun": "温旧语", "wa": "瓦隆语", "wae": "瓦尔瑟语", "wal": "瓦拉莫语", "war": "瓦瑞语", "was": "瓦绍语", "wbp": "瓦尔皮瑞语", "wo": "沃洛夫语", "wuu": "吴语", "xal": "卡尔梅克语", "xh": "科萨语", "xog": "索加语", "yao": "瑶族语", "yap": "雅浦语", "yav": "洋卞语", "ybb": "耶姆巴语", "yi": "意第绪语", "yo": "约鲁巴语", "yue": "粤语", "za": "壮语", "zap": "萨波蒂克语", "zbl": "布里斯符号", "zen": "泽纳加语", "zgh": "标准摩洛哥塔马塞特语", "zh": "中文", "zh-Hans": "简体中文", "zh-Hant": "繁体中文", "zu": "祖鲁语", "zun": "祖尼语", "zza": "扎扎语"}}, + "zh-CN": {"rtl": false, "languageNames": {"aa": "阿法尔语", "ab": "阿布哈西亚语", "ace": "亚齐语", "ach": "阿乔利语", "ada": "阿当梅语", "ady": "阿迪格语", "ae": "阿维斯塔语", "af": "南非荷兰语", "afh": "阿弗里希利语", "agq": "亚罕语", "ain": "阿伊努语", "ak": "阿肯语", "akk": "阿卡德语", "ale": "阿留申语", "alt": "南阿尔泰语", "am": "阿姆哈拉语", "an": "阿拉贡语", "ang": "古英语", "anp": "昂加语", "ar": "阿拉伯语", "ar-001": "现代标准阿拉伯语", "arc": "阿拉米语", "arn": "马普切语", "arp": "阿拉帕霍语", "ars": "纳吉迪阿拉伯语", "arw": "阿拉瓦克语", "as": "阿萨姆语", "asa": "帕雷语", "ast": "阿斯图里亚斯语", "av": "阿瓦尔语", "awa": "阿瓦德语", "ay": "艾马拉语", "az": "阿塞拜疆语", "az-Arab": "南阿塞拜疆语", "ba": "巴什基尔语", "bal": "俾路支语", "ban": "巴厘语", "bas": "巴萨语", "bax": "巴姆穆语", "bbj": "戈马拉语", "be": "白俄罗斯语", "bej": "贝沙语", "bem": "本巴语", "bez": "贝纳语", "bfd": "巴非特语", "bg": "保加利亚语", "bgn": "西俾路支语", "bho": "博杰普尔语", "bi": "比斯拉马语", "bik": "比科尔语", "bin": "比尼语", "bkm": "科姆语", "bla": "西克西卡语", "bm": "班巴拉语", "bn": "孟加拉语", "bo": "藏语", "br": "布列塔尼语", "bra": "布拉杰语", "brx": "博多语", "bs": "波斯尼亚语", "bss": "阿库色语", "bua": "布里亚特语", "bug": "布吉语", "bum": "布鲁语", "byn": "比林语", "byv": "梅敦巴语", "ca": "加泰罗尼亚语", "cad": "卡多语", "car": "加勒比语", "cay": "卡尤加语", "cch": "阿灿语", "ccp": "查克玛语", "ce": "车臣语", "ceb": "宿务语", "cgg": "奇加语", "ch": "查莫罗语", "chb": "奇布查语", "chg": "察合台语", "chk": "楚克语", "chm": "马里语", "chn": "奇努克混合语", "cho": "乔克托语", "chp": "奇佩维安语", "chr": "切罗基语", "chy": "夏延语", "ckb": "中库尔德语", "co": "科西嘉语", "cop": "科普特语", "cr": "克里族语", "crh": "克里米亚土耳其语", "crs": "塞舌尔克里奥尔语", "cs": "捷克语", "csb": "卡舒比语", "cu": "教会斯拉夫语", "cv": "楚瓦什语", "cy": "威尔士语", "da": "丹麦语", "dak": "达科他语", "dar": "达尔格瓦语", "dav": "台塔语", "de": "德语", "de-AT": "奥地利德语", "de-CH": "瑞士高地德语", "del": "特拉华语", "den": "史拉维语", "dgr": "多格里布语", "din": "丁卡语", "dje": "哲尔马语", "doi": "多格拉语", "dsb": "下索布语", "dua": "都阿拉语", "dum": "中古荷兰语", "dv": "迪维希语", "dyo": "朱拉语", "dyu": "迪尤拉语", "dz": "宗卡语", "dzg": "达扎葛语", "ebu": "恩布语", "ee": "埃维语", "efi": "埃菲克语", "egy": "古埃及语", "eka": "艾卡朱克语", "el": "希腊语", "elx": "埃兰语", "en": "英语", "en-AU": "澳大利亚英语", "en-CA": "加拿大英语", "en-GB": "英国英语", "en-US": "美国英语", "enm": "中古英语", "eo": "世界语", "es": "西班牙语", "es-419": "拉丁美洲西班牙语", "es-ES": "欧洲西班牙语", "es-MX": "墨西哥西班牙语", "et": "爱沙尼亚语", "eu": "巴斯克语", "ewo": "旺杜语", "fa": "波斯语", "fan": "芳格语", "fat": "芳蒂语", "ff": "富拉语", "fi": "芬兰语", "fil": "菲律宾语", "fj": "斐济语", "fo": "法罗语", "fon": "丰语", "fr": "法语", "fr-CA": "加拿大法语", "fr-CH": "瑞士法语", "frc": "卡真法语", "frm": "中古法语", "fro": "古法语", "frr": "北弗里西亚语", "frs": "东弗里西亚语", "fur": "弗留利语", "fy": "西弗里西亚语", "ga": "爱尔兰语", "gaa": "加族语", "gag": "加告兹语", "gan": "赣语", "gay": "迦约语", "gba": "格巴亚语", "gd": "苏格兰盖尔语", "gez": "吉兹语", "gil": "吉尔伯特语", "gl": "加利西亚语", "gmh": "中古高地德语", "gn": "瓜拉尼语", "goh": "古高地德语", "gon": "冈德语", "gor": "哥伦打洛语", "got": "哥特语", "grb": "格列博语", "grc": "古希腊语", "gsw": "瑞士德语", "gu": "古吉拉特语", "guz": "古西语", "gv": "马恩语", "gwi": "哥威迅语", "ha": "豪萨语", "hai": "海达语", "hak": "客家语", "haw": "夏威夷语", "he": "希伯来语", "hi": "印地语", "hil": "希利盖农语", "hit": "赫梯语", "hmn": "苗语", "ho": "希里莫图语", "hr": "克罗地亚语", "hsb": "上索布语", "hsn": "湘语", "ht": "海地克里奥尔语", "hu": "匈牙利语", "hup": "胡帕语", "hy": "亚美尼亚语", "hz": "赫雷罗语", "ia": "国际语", "iba": "伊班语", "ibb": "伊比比奥语", "id": "印度尼西亚语", "ie": "国际文字(E)", "ig": "伊博语", "ii": "四川彝语", "ik": "伊努皮克语", "ilo": "伊洛卡诺语", "inh": "印古什语", "io": "伊多语", "is": "冰岛语", "it": "意大利语", "iu": "因纽特语", "ja": "日语", "jbo": "逻辑语", "jgo": "恩艮巴语", "jmc": "马切姆语", "jpr": "犹太波斯语", "jrb": "犹太阿拉伯语", "jv": "爪哇语", "ka": "格鲁吉亚语", "kaa": "卡拉卡尔帕克语", "kab": "卡拜尔语", "kac": "克钦语", "kaj": "卡捷语", "kam": "卡姆巴语", "kaw": "卡威语", "kbd": "卡巴尔德语", "kbl": "加涅姆布语", "kcg": "卡塔布语", "kde": "马孔德语", "kea": "卡布佛得鲁语", "kfo": "克罗语", "kg": "刚果语", "kha": "卡西语", "kho": "和田语", "khq": "西桑海语", "ki": "吉库尤语", "kj": "宽亚玛语", "kk": "哈萨克语", "kkj": "卡库语", "kl": "格陵兰语", "kln": "卡伦金语", "km": "高棉语", "kmb": "金邦杜语", "kn": "卡纳达语", "ko": "韩语", "koi": "科米-彼尔米亚克语", "kok": "孔卡尼语", "kos": "科斯拉伊语", "kpe": "克佩列语", "kr": "卡努里语", "krc": "卡拉恰伊巴尔卡尔语", "krl": "卡累利阿语", "kru": "库鲁克语", "ks": "克什米尔语", "ksb": "香巴拉语", "ksf": "巴菲亚语", "ksh": "科隆语", "ku": "库尔德语", "kum": "库梅克语", "kut": "库特奈语", "kv": "科米语", "kw": "康沃尔语", "ky": "柯尔克孜语", "la": "拉丁语", "lad": "拉迪诺语", "lag": "朗吉语", "lah": "印度-雅利安语", "lam": "兰巴语", "lb": "卢森堡语", "lez": "列兹金语", "lg": "卢干达语", "li": "林堡语", "lkt": "拉科塔语", "ln": "林加拉语", "lo": "老挝语", "lol": "蒙戈语", "lou": "路易斯安那克里奥尔语", "loz": "洛齐语", "lrc": "北卢尔语", "lt": "立陶宛语", "lu": "鲁巴加丹加语", "lua": "卢巴-卢拉语", "lui": "卢伊塞诺语", "lun": "隆达语", "luo": "卢奥语", "lus": "米佐语", "luy": "卢雅语", "lv": "拉脱维亚语", "mad": "马都拉语", "maf": "马法语", "mag": "摩揭陀语", "mai": "迈蒂利语", "mak": "望加锡语", "man": "曼丁哥语", "mas": "马赛语", "mde": "马坝语", "mdf": "莫克沙语", "mdr": "曼达尔语", "men": "门德语", "mer": "梅鲁语", "mfe": "毛里求斯克里奥尔语", "mg": "马拉加斯语", "mga": "中古爱尔兰语", "mgh": "马库阿语", "mgo": "梅塔语", "mh": "马绍尔语", "mi": "毛利语", "mic": "密克马克语", "min": "米南佳保语", "mk": "马其顿语", "ml": "马拉雅拉姆语", "mn": "蒙古语", "mnc": "满语", "mni": "曼尼普尔语", "moh": "摩霍克语", "mos": "莫西语", "mr": "马拉地语", "ms": "马来语", "mt": "马耳他语", "mua": "蒙当语", "mus": "克里克语", "mwl": "米兰德斯语", "mwr": "马尔瓦里语", "my": "缅甸语", "mye": "姆耶内语", "myv": "厄尔兹亚语", "mzn": "马赞德兰语", "na": "瑙鲁语", "nan": "闽南语", "nap": "那不勒斯语", "naq": "纳马语", "nb": "书面挪威语", "nd": "北恩德贝勒语", "nds": "低地德语", "nds-NL": "低萨克森语", "ne": "尼泊尔语", "new": "尼瓦尔语", "ng": "恩东加语", "nia": "尼亚斯语", "niu": "纽埃语", "nl": "荷兰语", "nl-BE": "弗拉芒语", "nmg": "夸西奥语", "nn": "挪威尼诺斯克语", "nnh": "恩甘澎语", "no": "挪威语", "nog": "诺盖语", "non": "古诺尔斯语", "nqo": "西非书面文字", "nr": "南恩德贝勒语", "nso": "北索托语", "nus": "努埃尔语", "nv": "纳瓦霍语", "nwc": "古典尼瓦尔语", "ny": "齐切瓦语", "nym": "尼扬韦齐语", "nyn": "尼昂科勒语", "nyo": "尼奥罗语", "nzi": "恩济马语", "oc": "奥克语", "oj": "奥吉布瓦语", "om": "奥罗莫语", "or": "奥里亚语", "os": "奥塞梯语", "osa": "奥塞治语", "ota": "奥斯曼土耳其语", "pa": "旁遮普语", "pag": "邦阿西南语", "pal": "巴拉维语", "pam": "邦板牙语", "pap": "帕皮阿门托语", "pau": "帕劳语", "pcm": "尼日利亚皮钦语", "peo": "古波斯语", "phn": "腓尼基语", "pi": "巴利语", "pl": "波兰语", "pon": "波纳佩语", "prg": "普鲁士语", "pro": "古普罗文斯语", "ps": "普什图语", "pt": "葡萄牙语", "pt-BR": "巴西葡萄牙语", "pt-PT": "欧洲葡萄牙语", "qu": "克丘亚语", "quc": "基切语", "raj": "拉贾斯坦语", "rap": "拉帕努伊语", "rar": "拉罗汤加语", "rm": "罗曼什语", "rn": "隆迪语", "ro": "罗马尼亚语", "ro-MD": "摩尔多瓦语", "rof": "兰博语", "rom": "吉普赛语", "root": "根语言", "ru": "俄语", "rup": "阿罗马尼亚语", "rw": "卢旺达语", "rwk": "罗瓦语", "sa": "梵语", "sad": "桑达韦语", "sah": "萨哈语", "sam": "萨马利亚阿拉姆语", "saq": "桑布鲁语", "sas": "萨萨克文", "sat": "桑塔利语", "sba": "甘拜语", "sbp": "桑古语", "sc": "萨丁语", "scn": "西西里语", "sco": "苏格兰语", "sd": "信德语", "sdh": "南库尔德语", "se": "北方萨米语", "see": "塞内卡语", "seh": "塞纳语", "sel": "塞尔库普语", "ses": "东桑海语", "sg": "桑戈语", "sga": "古爱尔兰语", "sh": "塞尔维亚-克罗地亚语", "shi": "希尔哈语", "shn": "掸语", "shu": "乍得阿拉伯语", "si": "僧伽罗语", "sid": "悉达摩语", "sk": "斯洛伐克语", "sl": "斯洛文尼亚语", "sm": "萨摩亚语", "sma": "南萨米语", "smj": "吕勒萨米语", "smn": "伊纳里萨米语", "sms": "斯科特萨米语", "sn": "绍纳语", "snk": "索宁克语", "so": "索马里语", "sog": "粟特语", "sq": "阿尔巴尼亚语", "sr": "塞尔维亚语", "srn": "苏里南汤加语", "srr": "塞雷尔语", "ss": "斯瓦蒂语", "ssy": "萨霍语", "st": "南索托语", "su": "巽他语", "suk": "苏库马语", "sus": "苏苏语", "sux": "苏美尔语", "sv": "瑞典语", "sw": "斯瓦希里语", "sw-CD": "刚果斯瓦希里语", "swb": "科摩罗语", "syc": "古典叙利亚语", "syr": "叙利亚语", "ta": "泰米尔语", "te": "泰卢固语", "tem": "泰姆奈语", "teo": "特索语", "ter": "特伦诺语", "tet": "德顿语", "tg": "塔吉克语", "th": "泰语", "ti": "提格利尼亚语", "tig": "提格雷语", "tiv": "蒂夫语", "tk": "土库曼语", "tkl": "托克劳语", "tl": "他加禄语", "tlh": "克林贡语", "tli": "特林吉特语", "tmh": "塔马奇克语", "tn": "茨瓦纳语", "to": "汤加语", "tog": "尼亚萨汤加语", "tpi": "托克皮辛语", "tr": "土耳其语", "trv": "赛德克语", "ts": "聪加语", "tsi": "钦西安语", "tt": "鞑靼语", "tum": "通布卡语", "tvl": "图瓦卢语", "tw": "契维语", "twq": "北桑海语", "ty": "塔希提语", "tyv": "图瓦语", "tzm": "塔马齐格特语", "udm": "乌德穆尔特语", "ug": "维吾尔语", "uga": "乌加里特语", "uk": "乌克兰语", "umb": "翁本杜语", "ur": "乌尔都语", "uz": "乌兹别克语", "vai": "瓦伊语", "ve": "文达语", "vep": "维普森语", "vi": "越南语", "vo": "沃拉普克语", "vot": "沃提克语", "vun": "温旧语", "wa": "瓦隆语", "wae": "瓦尔瑟语", "wal": "瓦拉莫语", "war": "瓦瑞语", "was": "瓦绍语", "wbp": "瓦尔皮瑞语", "wo": "沃洛夫语", "wuu": "吴语", "xal": "卡尔梅克语", "xh": "科萨语", "xog": "索加语", "yao": "瑶族语", "yap": "雅浦语", "yav": "洋卞语", "ybb": "耶姆巴语", "yi": "意第绪语", "yo": "约鲁巴语", "yue": "粤语", "za": "壮语", "zap": "萨波蒂克语", "zbl": "布里斯符号", "zen": "泽纳加语", "zgh": "标准摩洛哥塔马塞特语", "zh": "中文", "zh-Hans": "简体中文", "zh-Hant": "繁体中文", "zu": "祖鲁语", "zun": "祖尼语", "zza": "扎扎语"}}, + "zh-HK": {"rtl": false, "languageNames": {"aa": "阿法爾文", "ab": "阿布哈茲文", "ace": "亞齊文", "ach": "阿僑利文", "ada": "阿當莫文", "ady": "阿迪各文", "ae": "阿維斯塔文", "aeb": "突尼斯阿拉伯文", "af": "南非荷蘭文", "afh": "阿弗里希利文", "agq": "亞罕文", "ain": "阿伊努文", "ak": "阿坎文", "akk": "阿卡德文", "akz": "阿拉巴馬文", "ale": "阿留申文", "aln": "蓋格阿爾巴尼亞文", "alt": "南阿爾泰文", "am": "阿姆哈拉文", "an": "阿拉貢文", "ang": "古英文", "anp": "昂加文", "ar": "阿拉伯文", "ar-001": "現代標準阿拉伯文", "arc": "阿拉米文", "arn": "馬普切文", "aro": "阿拉奧納文", "arp": "阿拉帕霍文", "arq": "阿爾及利亞阿拉伯文", "ars": "納吉迪阿拉伯文", "arw": "阿拉瓦克文", "ary": "摩洛哥阿拉伯文", "arz": "埃及阿拉伯文", "as": "阿薩姆文", "asa": "阿蘇文", "ase": "美國手語", "ast": "阿斯圖里亞文", "av": "阿瓦爾文", "avk": "科塔瓦文", "awa": "阿瓦文", "ay": "艾馬拉文", "az": "阿塞拜疆文", "az-Arab": "南阿塞拜疆文", "ba": "巴什基爾文", "bal": "俾路支文", "ban": "峇里文", "bar": "巴伐利亞文", "bas": "巴薩文", "bax": "巴姆穆文", "bbc": "巴塔克托巴文", "bbj": "戈馬拉文", "be": "白俄羅斯文", "bej": "貝扎文", "bem": "別姆巴文", "bew": "貝塔維文", "bez": "貝納文", "bfd": "富特文", "bfq": "巴達加文", "bg": "保加利亞文", "bgn": "西俾路支文", "bho": "博傑普爾文", "bi": "比斯拉馬文", "bik": "比科爾文", "bin": "比尼文", "bjn": "班亞爾文", "bkm": "康姆文", "bla": "錫克錫卡文", "bm": "班巴拉文", "bn": "孟加拉文", "bo": "藏文", "bpy": "比什奴普萊利亞文", "bqi": "巴赫蒂亞里文", "br": "布里多尼文", "bra": "布拉杰文", "brh": "布拉維文", "brx": "博多文", "bs": "波斯尼亞文", "bss": "阿庫色文", "bua": "布里阿特文", "bug": "布吉斯文", "bum": "布魯文", "byn": "比林文", "byv": "梅敦巴文", "ca": "加泰隆尼亞文", "cad": "卡多文", "car": "加勒比文", "cay": "卡尤加文", "cch": "阿燦文", "ccp": "查克馬文", "ce": "車臣文", "ceb": "宿霧文", "cgg": "奇加文", "ch": "查莫洛文", "chb": "奇布查文", "chg": "查加文", "chk": "處奇斯文", "chm": "馬里文", "chn": "契奴克文", "cho": "喬克托文", "chp": "奇佩瓦揚文", "chr": "柴羅基文", "chy": "沙伊安文", "ckb": "中庫德文", "co": "科西嘉文", "cop": "科普特文", "cps": "卡皮茲文", "cr": "克里文", "crh": "克里米亞韃靼文", "crs": "塞舌爾克里奧爾法文", "cs": "捷克文", "csb": "卡舒布文", "cu": "宗教斯拉夫文", "cv": "楚瓦什文", "cy": "威爾斯文", "da": "丹麥文", "dak": "達科他文", "dar": "達爾格瓦文", "dav": "台塔文", "de": "德文", "de-AT": "奧地利德文", "de-CH": "瑞士德語", "del": "德拉瓦文", "den": "斯拉夫文", "dgr": "多格里布文", "din": "丁卡文", "dje": "扎爾馬文", "doi": "多格來文", "dsb": "下索布文", "dtp": "中部杜順文", "dua": "杜亞拉文", "dum": "中古荷蘭文", "dv": "迪維西文", "dyo": "朱拉文", "dyu": "迪尤拉文", "dz": "宗卡文", "dzg": "達薩文", "ebu": "恩布文", "ee": "埃維文", "efi": "埃菲克文", "egl": "埃米利安文", "egy": "古埃及文", "eka": "艾卡朱克文", "el": "希臘文", "elx": "埃蘭文", "en": "英文", "en-AU": "澳洲英文", "en-CA": "加拿大英文", "en-GB": "英國英文", "en-US": "美國英文", "enm": "中古英文", "eo": "世界語", "es": "西班牙文", "es-419": "拉丁美洲西班牙文", "es-ES": "歐洲西班牙文", "es-MX": "墨西哥西班牙文", "esu": "中尤皮克文", "et": "愛沙尼亞文", "eu": "巴斯克文", "ewo": "依汪都文", "ext": "埃斯特雷馬杜拉文", "fa": "波斯文", "fan": "芳族文", "fat": "芳蒂文", "ff": "富拉文", "fi": "芬蘭文", "fil": "菲律賓文", "fit": "托爾訥芬蘭文", "fj": "斐濟文", "fo": "法羅文", "fon": "豐文", "fr": "法文", "fr-CA": "加拿大法文", "fr-CH": "瑞士法文", "frc": "卡真法文", "frm": "中古法文", "fro": "古法文", "frp": "法蘭克-普羅旺斯文", "frr": "北弗里西亞文", "frs": "東弗里西亞文", "fur": "弗留利文", "fy": "西弗里西亞文", "ga": "愛爾蘭文", "gaa": "加族文", "gag": "加告茲文", "gan": "贛語", "gay": "加約文", "gba": "葛巴亞文", "gbz": "索羅亞斯德教達里文", "gd": "蘇格蘭蓋爾文", "gez": "吉茲文", "gil": "吉爾伯特文", "gl": "加里西亞文", "glk": "吉拉基文", "gmh": "中古高地德文", "gn": "瓜拉尼文", "goh": "古高地德文", "gom": "孔卡尼文", "gon": "岡德文", "gor": "科隆達羅文", "got": "哥德文", "grb": "格列博文", "grc": "古希臘文", "gsw": "瑞士德文", "gu": "古吉拉特文", "guc": "瓦尤文", "gur": "弗拉弗拉文", "guz": "古西文", "gv": "曼島文", "gwi": "圭契文", "ha": "豪撒文", "hai": "海達文", "hak": "客家話", "haw": "夏威夷文", "he": "希伯來文", "hi": "印度文", "hif": "斐濟印地文", "hil": "希利蓋農文", "hit": "赫梯文", "hmn": "苗語", "ho": "西里莫圖土文", "hr": "克羅地亞文", "hsb": "上索布文", "hsn": "湘語", "ht": "海地文", "hu": "匈牙利文", "hup": "胡帕文", "hy": "亞美尼亞文", "hz": "赫雷羅文", "ia": "國際文", "iba": "伊班文", "ibb": "伊比比奧文", "id": "印尼文", "ie": "國際文(E)", "ig": "伊布文", "ii": "四川彝文", "ik": "依奴皮維克文", "ilo": "伊洛闊文", "inh": "印古什文", "io": "伊多文", "is": "冰島文", "it": "意大利文", "iu": "因紐特文", "izh": "英格里亞文", "ja": "日文", "jam": "牙買加克里奧爾英文", "jbo": "邏輯文", "jgo": "恩格姆巴文", "jmc": "馬恰美文", "jpr": "猶太波斯文", "jrb": "猶太阿拉伯文", "jut": "日德蘭文", "jv": "爪哇文", "ka": "格魯吉亞文", "kaa": "卡拉卡爾帕克文", "kab": "卡比爾文", "kac": "卡琴文", "kaj": "卡捷文", "kam": "卡姆巴文", "kaw": "卡威文", "kbd": "卡巴爾達文", "kbl": "卡念布文", "kcg": "卡塔布文", "kde": "馬孔德文", "kea": "卡布威爾第文", "ken": "肯揚文", "kfo": "科羅文", "kg": "剛果文", "kgp": "坎剛文", "kha": "卡西文", "kho": "和闐文", "khq": "西桑海文", "khw": "科瓦文", "ki": "吉庫尤文", "kiu": "扎扎其文", "kj": "廣亞馬文", "kk": "哈薩克文", "kkj": "卡庫文", "kl": "格陵蘭文", "kln": "卡倫金文", "km": "高棉文", "kmb": "金邦杜文", "kn": "坎納達文", "ko": "韓文", "koi": "科米-彼爾米亞克文", "kok": "貢根文", "kos": "科斯雷恩文", "kpe": "克佩列文", "kr": "卡努里文", "krc": "卡拉柴-包爾卡爾文", "kri": "克裡奧爾文", "krj": "基那來阿文", "krl": "卡累利阿文", "kru": "庫魯科文", "ks": "喀什米爾文", "ksb": "尚巴拉文", "ksf": "巴菲亞文", "ksh": "科隆文", "ku": "庫德文", "kum": "庫密克文", "kut": "庫特奈文", "kv": "科米文", "kw": "康瓦耳文", "ky": "吉爾吉斯文", "la": "拉丁文", "lad": "拉迪諾文", "lag": "朗吉文", "lah": "拉亨達文", "lam": "蘭巴文", "lb": "盧森堡文", "lez": "列茲干文", "lfn": "新共同語言", "lg": "干達文", "li": "林堡文", "lij": "利古里亞文", "liv": "利伏尼亞文", "lkt": "拉科塔文", "lmo": "倫巴底文", "ln": "林加拉文", "lo": "老撾文", "lol": "芒戈文", "lou": "路易斯安那克里奧爾文", "loz": "洛齊文", "lrc": "北盧爾文", "lt": "立陶宛文", "ltg": "拉特加萊文", "lu": "魯巴加丹加文", "lua": "魯巴魯魯亞文", "lui": "路易塞諾文", "lun": "盧恩達文", "luo": "盧歐文", "lus": "米佐文", "luy": "盧雅文", "lv": "拉脫維亞文", "lzh": "文言文", "lzz": "拉茲文", "mad": "馬都拉文", "maf": "馬法文", "mag": "馬加伊文", "mai": "邁蒂利文", "mak": "望加錫文", "man": "曼丁哥文", "mas": "馬賽文", "mde": "馬巴文", "mdf": "莫克沙文", "mdr": "曼達文", "men": "門德文", "mer": "梅魯文", "mfe": "毛里裘斯克里奧爾文", "mg": "馬拉加斯文", "mga": "中古愛爾蘭文", "mgh": "馬夸文", "mgo": "美塔文", "mh": "馬紹爾文", "mi": "毛利文", "mic": "米克馬克文", "min": "米南卡堡文", "mk": "馬其頓文", "ml": "馬拉雅拉姆文", "mn": "蒙古文", "mnc": "滿族文", "mni": "曼尼普爾文", "moh": "莫霍克文", "mos": "莫西文", "mr": "馬拉地文", "mrj": "西馬里文", "ms": "馬來文", "mt": "馬耳他文", "mua": "蒙當文", "mus": "克里克文", "mwl": "米蘭德斯文", "mwr": "馬瓦里文", "mwv": "明打威文", "my": "緬甸文", "mye": "姆耶內文", "myv": "厄爾茲亞文", "mzn": "馬贊德蘭文", "na": "諾魯文", "nan": "閩南語", "nap": "拿波里文", "naq": "納馬文", "nb": "巴克摩挪威文", "nd": "北地畢列文", "nds": "低地德文", "nds-NL": "低地薩克遜文", "ne": "尼泊爾文", "new": "尼瓦爾文", "ng": "恩東加文", "nia": "尼亞斯文", "niu": "紐埃文", "njo": "阿沃那加文", "nl": "荷蘭文", "nl-BE": "比利時荷蘭文", "nmg": "夸西奧文", "nn": "耐諾斯克挪威文", "nnh": "恩甘澎文", "no": "挪威文", "nog": "諾蓋文", "non": "古諾爾斯文", "nov": "諾維亞文", "nqo": "西非書面語言(N’ko)", "nr": "南地畢列文", "nso": "北索托文", "nus": "努埃爾文", "nv": "納瓦霍文", "nwc": "古尼瓦爾文", "ny": "尼揚賈文", "nym": "尼揚韋齊文", "nyn": "尼揚科萊文", "nyo": "尼奧囉文", "nzi": "尼茲馬文", "oc": "奧克西坦文", "oj": "奧杰布瓦文", "om": "奧羅莫文", "or": "奧里雅文", "os": "奧塞提文", "osa": "歐塞奇文", "ota": "鄂圖曼土耳其文", "pa": "旁遮普文", "pag": "潘加辛文", "pal": "巴列維文", "pam": "潘帕嘉文", "pap": "帕皮阿門托文", "pau": "帛琉文", "pcd": "庇卡底文", "pcm": "尼日利亞皮欽文", "pdc": "賓夕法尼亞德文", "pdt": "門諾低地德文", "peo": "古波斯文", "pfl": "普法爾茨德文", "phn": "腓尼基文", "pi": "巴利文", "pl": "波蘭文", "pms": "皮埃蒙特文", "pnt": "旁狄希臘文", "pon": "波那貝文", "prg": "普魯士文", "pro": "古普羅旺斯文", "ps": "普什圖文", "pt": "葡萄牙文", "pt-BR": "巴西葡萄牙文", "pt-PT": "歐洲葡萄牙文", "qu": "蓋楚瓦文", "quc": "基切文", "qug": "欽博拉索海蘭蓋丘亞文", "raj": "拉賈斯坦諸文", "rap": "復活島文", "rar": "拉羅通加文", "rgn": "羅馬格諾里文", "rif": "里菲亞諾文", "rm": "羅曼斯文", "rn": "隆迪文", "ro": "羅馬尼亞文", "ro-MD": "摩爾多瓦羅馬尼亞文", "rof": "蘭博文", "rom": "吉普賽文", "root": "根語言", "rtm": "羅圖馬島文", "ru": "俄文", "rue": "盧森尼亞文", "rug": "羅維阿納文", "rup": "阿羅馬尼亞語", "rw": "盧旺達文", "rwk": "羅瓦文", "sa": "梵文", "sad": "桑達韋文", "sah": "雅庫特文", "sam": "薩瑪利亞阿拉姆文", "saq": "薩布魯文", "sas": "撒撒克文", "sat": "桑塔利文", "saz": "索拉什特拉文", "sba": "甘拜文", "sbp": "桑古文", "sc": "撒丁文", "scn": "西西里文", "sco": "蘇格蘭文", "sd": "信德文", "sdc": "薩丁尼亞-薩薩里文", "sdh": "南庫德文", "se": "北薩米文", "see": "塞訥卡文", "seh": "賽納文", "sei": "瑟里文", "sel": "塞爾庫普文", "ses": "東桑海文", "sg": "桑戈文", "sga": "古愛爾蘭文", "sgs": "薩莫吉希亞文", "sh": "塞爾維亞克羅埃西亞文", "shi": "希爾哈文", "shn": "撣文", "shu": "阿拉伯文(查德)", "si": "僧伽羅文", "sid": "希達摩文", "sk": "斯洛伐克文", "sl": "斯洛文尼亞文", "sli": "下西利西亞文", "sly": "塞拉亞文", "sm": "薩摩亞文", "sma": "南薩米文", "smj": "魯勒薩米文", "smn": "伊納里薩米文", "sms": "斯科特薩米文", "sn": "修納文", "snk": "索尼基文", "so": "索馬里文", "sog": "索格底亞納文", "sq": "阿爾巴尼亞文", "sr": "塞爾維亞文", "srn": "蘇拉南東墎文", "srr": "塞雷爾文", "ss": "斯瓦特文", "ssy": "薩霍文", "st": "塞索托文", "stq": "沙特菲士蘭文", "su": "巽他文", "suk": "蘇庫馬文", "sus": "蘇蘇文", "sux": "蘇美文", "sv": "瑞典文", "sw": "史瓦希里文", "sw-CD": "剛果史瓦希里文", "swb": "葛摩文", "syc": "古敘利亞文", "syr": "敍利亞文", "szl": "西利西亞文", "ta": "泰米爾文", "tcy": "圖盧文", "te": "泰盧固文", "tem": "提姆文", "teo": "特索文", "ter": "泰雷諾文", "tet": "泰頓文", "tg": "塔吉克文", "th": "泰文", "ti": "提格利尼亞文", "tig": "蒂格雷文", "tiv": "提夫文", "tk": "土庫曼文", "tkl": "托克勞文", "tkr": "查庫爾文", "tl": "塔加路族文", "tlh": "克林貢文", "tli": "特林基特文", "tly": "塔里什文", "tmh": "塔馬奇克文", "tn": "突尼西亞文", "to": "湯加文", "tog": "東加文(尼亞薩)", "tpi": "托比辛文", "tr": "土耳其文", "tru": "圖羅尤文", "trv": "太魯閣文", "ts": "特松加文", "tsd": "特薩克尼恩文", "tsi": "欽西安文", "tt": "韃靼文", "ttt": "穆斯林塔特文", "tum": "圖姆布卡文", "tvl": "吐瓦魯文", "tw": "特威文", "twq": "北桑海文", "ty": "大溪地文", "tyv": "圖瓦文", "tzm": "中阿特拉斯塔馬塞特文", "udm": "烏德穆爾特文", "ug": "維吾爾文", "uga": "烏加列文", "uk": "烏克蘭文", "umb": "姆本杜文", "ur": "烏爾都文", "uz": "烏茲別克文", "vai": "瓦伊文", "ve": "溫達文", "vec": "威尼斯文", "vep": "維普森文", "vi": "越南文", "vls": "西佛蘭德文", "vmf": "美茵-法蘭克尼亞文", "vo": "沃拉普克文", "vot": "沃提克文", "vro": "佛羅文", "vun": "溫舊文", "wa": "瓦隆文", "wae": "瓦爾瑟文", "wal": "瓦拉莫文", "war": "瓦瑞文", "was": "瓦紹文", "wbp": "瓦爾皮里文", "wo": "沃洛夫文", "wuu": "吳語", "xal": "卡爾梅克文", "xh": "科薩文", "xmf": "明格列爾文", "xog": "索加文", "yao": "瑤文", "yap": "雅浦文", "yav": "洋卞文", "ybb": "耶姆巴文", "yi": "意第緒文", "yo": "約魯巴文", "yrl": "奈恩加圖文", "yue": "廣東話", "za": "壯文", "zap": "薩波特克文", "zbl": "布列斯符號", "zea": "西蘭文", "zen": "澤納加文", "zgh": "摩洛哥標準塔馬齊格特文", "zh": "中文", "zh-Hans": "簡體中文", "zh-Hant": "繁體中文", "zu": "祖魯文", "zun": "祖尼文", "zza": "扎扎文"}}, + "zh-TW": {"rtl": false, "languageNames": {"aa": "阿法尔语", "ab": "阿布哈西亚语", "ace": "亚齐语", "ach": "阿乔利语", "ada": "阿当梅语", "ady": "阿迪格语", "ae": "阿维斯塔语", "af": "南非荷兰语", "afh": "阿弗里希利语", "agq": "亚罕语", "ain": "阿伊努语", "ak": "阿肯语", "akk": "阿卡德语", "ale": "阿留申语", "alt": "南阿尔泰语", "am": "阿姆哈拉语", "an": "阿拉贡语", "ang": "古英语", "anp": "昂加语", "ar": "阿拉伯语", "ar-001": "现代标准阿拉伯语", "arc": "阿拉米语", "arn": "马普切语", "arp": "阿拉帕霍语", "ars": "纳吉迪阿拉伯语", "arw": "阿拉瓦克语", "as": "阿萨姆语", "asa": "帕雷语", "ast": "阿斯图里亚斯语", "av": "阿瓦尔语", "awa": "阿瓦德语", "ay": "艾马拉语", "az": "阿塞拜疆语", "az-Arab": "南阿塞拜疆语", "ba": "巴什基尔语", "bal": "俾路支语", "ban": "巴厘语", "bas": "巴萨语", "bax": "巴姆穆语", "bbj": "戈马拉语", "be": "白俄罗斯语", "bej": "贝沙语", "bem": "本巴语", "bez": "贝纳语", "bfd": "巴非特语", "bg": "保加利亚语", "bgn": "西俾路支语", "bho": "博杰普尔语", "bi": "比斯拉马语", "bik": "比科尔语", "bin": "比尼语", "bkm": "科姆语", "bla": "西克西卡语", "bm": "班巴拉语", "bn": "孟加拉语", "bo": "藏语", "br": "布列塔尼语", "bra": "布拉杰语", "brx": "博多语", "bs": "波斯尼亚语", "bss": "阿库色语", "bua": "布里亚特语", "bug": "布吉语", "bum": "布鲁语", "byn": "比林语", "byv": "梅敦巴语", "ca": "加泰罗尼亚语", "cad": "卡多语", "car": "加勒比语", "cay": "卡尤加语", "cch": "阿灿语", "ccp": "查克玛语", "ce": "车臣语", "ceb": "宿务语", "cgg": "奇加语", "ch": "查莫罗语", "chb": "奇布查语", "chg": "察合台语", "chk": "楚克语", "chm": "马里语", "chn": "奇努克混合语", "cho": "乔克托语", "chp": "奇佩维安语", "chr": "切罗基语", "chy": "夏延语", "ckb": "中库尔德语", "co": "科西嘉语", "cop": "科普特语", "cr": "克里族语", "crh": "克里米亚土耳其语", "crs": "塞舌尔克里奥尔语", "cs": "捷克语", "csb": "卡舒比语", "cu": "教会斯拉夫语", "cv": "楚瓦什语", "cy": "威尔士语", "da": "丹麦语", "dak": "达科他语", "dar": "达尔格瓦语", "dav": "台塔语", "de": "德语", "de-AT": "奥地利德语", "de-CH": "瑞士高地德语", "del": "特拉华语", "den": "史拉维语", "dgr": "多格里布语", "din": "丁卡语", "dje": "哲尔马语", "doi": "多格拉语", "dsb": "下索布语", "dua": "都阿拉语", "dum": "中古荷兰语", "dv": "迪维希语", "dyo": "朱拉语", "dyu": "迪尤拉语", "dz": "宗卡语", "dzg": "达扎葛语", "ebu": "恩布语", "ee": "埃维语", "efi": "埃菲克语", "egy": "古埃及语", "eka": "艾卡朱克语", "el": "希腊语", "elx": "埃兰语", "en": "英语", "en-AU": "澳大利亚英语", "en-CA": "加拿大英语", "en-GB": "英国英语", "en-US": "美国英语", "enm": "中古英语", "eo": "世界语", "es": "西班牙语", "es-419": "拉丁美洲西班牙语", "es-ES": "欧洲西班牙语", "es-MX": "墨西哥西班牙语", "et": "爱沙尼亚语", "eu": "巴斯克语", "ewo": "旺杜语", "fa": "波斯语", "fan": "芳格语", "fat": "芳蒂语", "ff": "富拉语", "fi": "芬兰语", "fil": "菲律宾语", "fj": "斐济语", "fo": "法罗语", "fon": "丰语", "fr": "法语", "fr-CA": "加拿大法语", "fr-CH": "瑞士法语", "frc": "卡真法语", "frm": "中古法语", "fro": "古法语", "frr": "北弗里西亚语", "frs": "东弗里西亚语", "fur": "弗留利语", "fy": "西弗里西亚语", "ga": "爱尔兰语", "gaa": "加族语", "gag": "加告兹语", "gan": "赣语", "gay": "迦约语", "gba": "格巴亚语", "gd": "苏格兰盖尔语", "gez": "吉兹语", "gil": "吉尔伯特语", "gl": "加利西亚语", "gmh": "中古高地德语", "gn": "瓜拉尼语", "goh": "古高地德语", "gon": "冈德语", "gor": "哥伦打洛语", "got": "哥特语", "grb": "格列博语", "grc": "古希腊语", "gsw": "瑞士德语", "gu": "古吉拉特语", "guz": "古西语", "gv": "马恩语", "gwi": "哥威迅语", "ha": "豪萨语", "hai": "海达语", "hak": "客家语", "haw": "夏威夷语", "he": "希伯来语", "hi": "印地语", "hil": "希利盖农语", "hit": "赫梯语", "hmn": "苗语", "ho": "希里莫图语", "hr": "克罗地亚语", "hsb": "上索布语", "hsn": "湘语", "ht": "海地克里奥尔语", "hu": "匈牙利语", "hup": "胡帕语", "hy": "亚美尼亚语", "hz": "赫雷罗语", "ia": "国际语", "iba": "伊班语", "ibb": "伊比比奥语", "id": "印度尼西亚语", "ie": "国际文字(E)", "ig": "伊博语", "ii": "四川彝语", "ik": "伊努皮克语", "ilo": "伊洛卡诺语", "inh": "印古什语", "io": "伊多语", "is": "冰岛语", "it": "意大利语", "iu": "因纽特语", "ja": "日语", "jbo": "逻辑语", "jgo": "恩艮巴语", "jmc": "马切姆语", "jpr": "犹太波斯语", "jrb": "犹太阿拉伯语", "jv": "爪哇语", "ka": "格鲁吉亚语", "kaa": "卡拉卡尔帕克语", "kab": "卡拜尔语", "kac": "克钦语", "kaj": "卡捷语", "kam": "卡姆巴语", "kaw": "卡威语", "kbd": "卡巴尔德语", "kbl": "加涅姆布语", "kcg": "卡塔布语", "kde": "马孔德语", "kea": "卡布佛得鲁语", "kfo": "克罗语", "kg": "刚果语", "kha": "卡西语", "kho": "和田语", "khq": "西桑海语", "ki": "吉库尤语", "kj": "宽亚玛语", "kk": "哈萨克语", "kkj": "卡库语", "kl": "格陵兰语", "kln": "卡伦金语", "km": "高棉语", "kmb": "金邦杜语", "kn": "卡纳达语", "ko": "韩语", "koi": "科米-彼尔米亚克语", "kok": "孔卡尼语", "kos": "科斯拉伊语", "kpe": "克佩列语", "kr": "卡努里语", "krc": "卡拉恰伊巴尔卡尔语", "krl": "卡累利阿语", "kru": "库鲁克语", "ks": "克什米尔语", "ksb": "香巴拉语", "ksf": "巴菲亚语", "ksh": "科隆语", "ku": "库尔德语", "kum": "库梅克语", "kut": "库特奈语", "kv": "科米语", "kw": "康沃尔语", "ky": "柯尔克孜语", "la": "拉丁语", "lad": "拉迪诺语", "lag": "朗吉语", "lah": "印度-雅利安语", "lam": "兰巴语", "lb": "卢森堡语", "lez": "列兹金语", "lg": "卢干达语", "li": "林堡语", "lkt": "拉科塔语", "ln": "林加拉语", "lo": "老挝语", "lol": "蒙戈语", "lou": "路易斯安那克里奥尔语", "loz": "洛齐语", "lrc": "北卢尔语", "lt": "立陶宛语", "lu": "鲁巴加丹加语", "lua": "卢巴-卢拉语", "lui": "卢伊塞诺语", "lun": "隆达语", "luo": "卢奥语", "lus": "米佐语", "luy": "卢雅语", "lv": "拉脱维亚语", "mad": "马都拉语", "maf": "马法语", "mag": "摩揭陀语", "mai": "迈蒂利语", "mak": "望加锡语", "man": "曼丁哥语", "mas": "马赛语", "mde": "马坝语", "mdf": "莫克沙语", "mdr": "曼达尔语", "men": "门德语", "mer": "梅鲁语", "mfe": "毛里求斯克里奥尔语", "mg": "马拉加斯语", "mga": "中古爱尔兰语", "mgh": "马库阿语", "mgo": "梅塔语", "mh": "马绍尔语", "mi": "毛利语", "mic": "密克马克语", "min": "米南佳保语", "mk": "马其顿语", "ml": "马拉雅拉姆语", "mn": "蒙古语", "mnc": "满语", "mni": "曼尼普尔语", "moh": "摩霍克语", "mos": "莫西语", "mr": "马拉地语", "ms": "马来语", "mt": "马耳他语", "mua": "蒙当语", "mus": "克里克语", "mwl": "米兰德斯语", "mwr": "马尔瓦里语", "my": "缅甸语", "mye": "姆耶内语", "myv": "厄尔兹亚语", "mzn": "马赞德兰语", "na": "瑙鲁语", "nan": "闽南语", "nap": "那不勒斯语", "naq": "纳马语", "nb": "书面挪威语", "nd": "北恩德贝勒语", "nds": "低地德语", "nds-NL": "低萨克森语", "ne": "尼泊尔语", "new": "尼瓦尔语", "ng": "恩东加语", "nia": "尼亚斯语", "niu": "纽埃语", "nl": "荷兰语", "nl-BE": "弗拉芒语", "nmg": "夸西奥语", "nn": "挪威尼诺斯克语", "nnh": "恩甘澎语", "no": "挪威语", "nog": "诺盖语", "non": "古诺尔斯语", "nqo": "西非书面文字", "nr": "南恩德贝勒语", "nso": "北索托语", "nus": "努埃尔语", "nv": "纳瓦霍语", "nwc": "古典尼瓦尔语", "ny": "齐切瓦语", "nym": "尼扬韦齐语", "nyn": "尼昂科勒语", "nyo": "尼奥罗语", "nzi": "恩济马语", "oc": "奥克语", "oj": "奥吉布瓦语", "om": "奥罗莫语", "or": "奥里亚语", "os": "奥塞梯语", "osa": "奥塞治语", "ota": "奥斯曼土耳其语", "pa": "旁遮普语", "pag": "邦阿西南语", "pal": "巴拉维语", "pam": "邦板牙语", "pap": "帕皮阿门托语", "pau": "帕劳语", "pcm": "尼日利亚皮钦语", "peo": "古波斯语", "phn": "腓尼基语", "pi": "巴利语", "pl": "波兰语", "pon": "波纳佩语", "prg": "普鲁士语", "pro": "古普罗文斯语", "ps": "普什图语", "pt": "葡萄牙语", "pt-BR": "巴西葡萄牙语", "pt-PT": "欧洲葡萄牙语", "qu": "克丘亚语", "quc": "基切语", "raj": "拉贾斯坦语", "rap": "拉帕努伊语", "rar": "拉罗汤加语", "rm": "罗曼什语", "rn": "隆迪语", "ro": "罗马尼亚语", "ro-MD": "摩尔多瓦语", "rof": "兰博语", "rom": "吉普赛语", "root": "根语言", "ru": "俄语", "rup": "阿罗马尼亚语", "rw": "卢旺达语", "rwk": "罗瓦语", "sa": "梵语", "sad": "桑达韦语", "sah": "萨哈语", "sam": "萨马利亚阿拉姆语", "saq": "桑布鲁语", "sas": "萨萨克文", "sat": "桑塔利语", "sba": "甘拜语", "sbp": "桑古语", "sc": "萨丁语", "scn": "西西里语", "sco": "苏格兰语", "sd": "信德语", "sdh": "南库尔德语", "se": "北方萨米语", "see": "塞内卡语", "seh": "塞纳语", "sel": "塞尔库普语", "ses": "东桑海语", "sg": "桑戈语", "sga": "古爱尔兰语", "sh": "塞尔维亚-克罗地亚语", "shi": "希尔哈语", "shn": "掸语", "shu": "乍得阿拉伯语", "si": "僧伽罗语", "sid": "悉达摩语", "sk": "斯洛伐克语", "sl": "斯洛文尼亚语", "sm": "萨摩亚语", "sma": "南萨米语", "smj": "吕勒萨米语", "smn": "伊纳里萨米语", "sms": "斯科特萨米语", "sn": "绍纳语", "snk": "索宁克语", "so": "索马里语", "sog": "粟特语", "sq": "阿尔巴尼亚语", "sr": "塞尔维亚语", "srn": "苏里南汤加语", "srr": "塞雷尔语", "ss": "斯瓦蒂语", "ssy": "萨霍语", "st": "南索托语", "su": "巽他语", "suk": "苏库马语", "sus": "苏苏语", "sux": "苏美尔语", "sv": "瑞典语", "sw": "斯瓦希里语", "sw-CD": "刚果斯瓦希里语", "swb": "科摩罗语", "syc": "古典叙利亚语", "syr": "叙利亚语", "ta": "泰米尔语", "te": "泰卢固语", "tem": "泰姆奈语", "teo": "特索语", "ter": "特伦诺语", "tet": "德顿语", "tg": "塔吉克语", "th": "泰语", "ti": "提格利尼亚语", "tig": "提格雷语", "tiv": "蒂夫语", "tk": "土库曼语", "tkl": "托克劳语", "tl": "他加禄语", "tlh": "克林贡语", "tli": "特林吉特语", "tmh": "塔马奇克语", "tn": "茨瓦纳语", "to": "汤加语", "tog": "尼亚萨汤加语", "tpi": "托克皮辛语", "tr": "土耳其语", "trv": "赛德克语", "ts": "聪加语", "tsi": "钦西安语", "tt": "鞑靼语", "tum": "通布卡语", "tvl": "图瓦卢语", "tw": "契维语", "twq": "北桑海语", "ty": "塔希提语", "tyv": "图瓦语", "tzm": "塔马齐格特语", "udm": "乌德穆尔特语", "ug": "维吾尔语", "uga": "乌加里特语", "uk": "乌克兰语", "umb": "翁本杜语", "ur": "乌尔都语", "uz": "乌兹别克语", "vai": "瓦伊语", "ve": "文达语", "vep": "维普森语", "vi": "越南语", "vo": "沃拉普克语", "vot": "沃提克语", "vun": "温旧语", "wa": "瓦隆语", "wae": "瓦尔瑟语", "wal": "瓦拉莫语", "war": "瓦瑞语", "was": "瓦绍语", "wbp": "瓦尔皮瑞语", "wo": "沃洛夫语", "wuu": "吴语", "xal": "卡尔梅克语", "xh": "科萨语", "xog": "索加语", "yao": "瑶族语", "yap": "雅浦语", "yav": "洋卞语", "ybb": "耶姆巴语", "yi": "意第绪语", "yo": "约鲁巴语", "yue": "粤语", "za": "壮语", "zap": "萨波蒂克语", "zbl": "布里斯符号", "zen": "泽纳加语", "zgh": "标准摩洛哥塔马塞特语", "zh": "中文", "zh-Hans": "简体中文", "zh-Hant": "繁体中文", "zu": "祖鲁语", "zun": "祖尼语", "zza": "扎扎语"}} } } \ No newline at end of file diff --git a/data/update_locales.js b/data/update_locales.js index b9f716b60b..e4bd725a42 100644 --- a/data/update_locales.js +++ b/data/update_locales.js @@ -27,6 +27,12 @@ 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 cldrMainDir = './node_modules/cldr-localenames-full/main/'; + +const languageInfo = { + dataLanguages: getLangNamesInNativeLang() +}; +fs.writeFileSync('data/languages.json', JSON.stringify(languageInfo, null, 4)); asyncMap(resources, getResource, function(err, results) { if (err) return console.log(err); @@ -43,7 +49,9 @@ asyncMap(resources, getResource, function(err, results) { }); // write files and fetch language info for each locale - var dataLocales = {}; + var dataLocales = { + en: { rtl: false, languageNames: foreignLanguageNamesInLanguageOf('en') } + }; asyncMap(Object.keys(allStrings), function(code, done) { if (code === 'en' || !Object.keys(allStrings[code]).length) { @@ -61,7 +69,8 @@ asyncMap(resources, getResource, function(err, results) { } else if (code === 'ku') { rtl = false; } - dataLocales[code] = { rtl: rtl }; + var langTranslations = foreignLanguageNamesInLanguageOf(code); + dataLocales[code] = { rtl: rtl, languageNames: langTranslations || {} }; done(); }); } @@ -70,7 +79,7 @@ asyncMap(resources, getResource, function(err, results) { const keys = Object.keys(dataLocales).sort(); var sorted = {}; keys.forEach(function (k) { sorted[k] = dataLocales[k]; }); - fs.writeFileSync('data/locales.json', prettyStringify({ dataLocales: sorted })); + fs.writeFileSync('data/locales.json', prettyStringify({ dataLocales: sorted }, { maxLength: 99999 })); } } ); @@ -183,3 +192,95 @@ function asyncMap(inputs, func, callback) { }); } } + +function getLangNamesInNativeLang() { + // manually add languages we want that aren't in CLDR + var unordered = { + 'ja-Hira': { + base: 'ja', + script: 'Hira' + }, + 'ja-Latn': { + base: 'ja', + script: 'Latn' + }, + 'ko-Latn': { + base: 'ko', + script: 'Latn' + }, + 'zh_pinyin': { + base: 'zh', + script: 'Latn' + } + }; + var langDirectoryPaths = fs.readdirSync(cldrMainDir); + langDirectoryPaths.forEach(function(code) { + + var languagesPath = cldrMainDir + code + '/languages.json'; + + //if (!fs.existsSync(languagesPath)) return; + var languageObj = JSON.parse(fs.readFileSync(languagesPath, 'utf8')).main[code]; + + var identity = languageObj.identity; + + // skip locale-specific languages + if (identity.variant || identity.territory) return; + + var info = {}; + + var script = identity.script; + if (script) { + info.base = identity.language; + info.script = script; + } + + var nativeName = languageObj.localeDisplayNames.languages[code]; + if (nativeName) { + info.nativeName = nativeName; + } + + unordered[code] = info; + }); + var ordered = {}; + Object.keys(unordered).sort().forEach(function(key) { + ordered[key] = unordered[key]; + }); + return ordered; +} + +var rematchCodes = { 'ar-AA': 'ar', 'zh-CN': 'zh', 'zh-HK': 'zh-Hant-HK', 'zh-TW': 'zh', 'pt-BR': 'pt', 'pt': 'pt-PT' }; + +function foreignLanguageNamesInLanguageOf(code) { + + if (rematchCodes[code]) code = rematchCodes[code]; + + var languageFilePath = cldrMainDir + code + '/languages.json'; + if (!fs.existsSync(languageFilePath)) { + return null; + } + var translatedLangsByCode = JSON.parse(fs.readFileSync(languageFilePath, 'utf8')).main[code].localeDisplayNames.languages; + + // ignore codes for non-languages + for (var nonLangCode in { mis: true, mul: true, und: true, zxx: true }) { + delete translatedLangsByCode[nonLangCode]; + } + + for (var langCode in translatedLangsByCode) { + var altLongIndex = langCode.indexOf('-alt-long'); + if (altLongIndex !== -1) { + // prefer long names (e.g. Chinese -> Mandarin Chinese) + var base = langCode.substring(0, altLongIndex); + translatedLangsByCode[base] = translatedLangsByCode[langCode]; + } + + if (langCode.includes('-alt-')) { + // remove alternative names + delete translatedLangsByCode[langCode]; + } else if (langCode === translatedLangsByCode[langCode]) { + // no localized value available + delete translatedLangsByCode[langCode]; + } + } + + return translatedLangsByCode; +} diff --git a/modules/ui/fields/localized.js b/modules/ui/fields/localized.js index c9e63cdc2e..665f401b5b 100644 --- a/modules/ui/fields/localized.js +++ b/modules/ui/fields/localized.js @@ -1,8 +1,8 @@ import { dispatch as d3_dispatch } from 'd3-dispatch'; import { select as d3_select, event as d3_event } from 'd3-selection'; -import { t } from '../../util/locale'; -import { dataWikipedia } from '../../../data'; +import { t, languageName } from '../../util/locale'; +import { dataLanguages } from '../../../data'; import { services } from '../../services'; import { svgIcon } from '../../svg'; import { tooltip } from '../../util/tooltip'; @@ -10,6 +10,20 @@ import { uiCombobox } from '../combobox'; import { utilDetect } from '../../util/detect'; import { utilEditDistance, utilGetSetValue, utilNoAuto, utilRebind } from '../../util'; +var languagesArray = []; +function loadLanguagesArray() { + if (languagesArray.length !== 0) return; + + for (var code in dataLanguages) { + languagesArray.push({ + localName: languageName(code, { localOnly: true }), + nativeName: dataLanguages[code].nativeName, + code: code, + label: languageName(code) + }); + } +} + export function uiFieldLocalized(field, context) { var dispatch = d3_dispatch('change', 'input'); @@ -92,6 +106,9 @@ export function uiFieldLocalized(field, context) { function localized(selection) { + // load if needed + loadLanguagesArray(); + _selection = selection; calcLocked(); var isLocked = field.locked(); @@ -340,12 +357,13 @@ export function uiFieldLocalized(field, context) { function changeLang(d) { var lang = utilGetSetValue(d3_select(this)); var t = {}; - var language = dataWikipedia.find(function(d) { - return d[0].toLowerCase() === lang.toLowerCase() || - d[1].toLowerCase() === lang.toLowerCase(); + 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()); }); - if (language) lang = language[2]; + if (language) lang = language.code; if (d.lang && d.lang !== lang) { t[key(d.lang)] = undefined; @@ -378,12 +396,13 @@ export function uiFieldLocalized(field, context) { function fetchLanguages(value, cb) { var v = value.toLowerCase(); - cb(dataWikipedia.filter(function(d) { - return d[0].toLowerCase().indexOf(v) >= 0 || - d[1].toLowerCase().indexOf(v) >= 0 || - d[2].toLowerCase().indexOf(v) >= 0; + cb(languagesArray.filter(function(d) { + return d.label.toLowerCase().indexOf(v) >= 0 || + (d.localName && d.localName.toLowerCase().indexOf(v) >= 0) || + (d.nativeName && d.nativeName.toLowerCase().indexOf(v) >= 0) || + d.code.toLowerCase().indexOf(v) >= 0; }).map(function(d) { - return { value: d[1] }; + return { value: d.label }; })); } @@ -482,8 +501,7 @@ export function uiFieldLocalized(field, context) { entries.order(); utilGetSetValue(entries.select('.localized-lang'), function(d) { - var lang = dataWikipedia.find(function(lang) { return lang[2] === d.lang; }); - return lang ? lang[1] : d.lang; + return languageName(d.lang); }); utilGetSetValue(entries.select('.localized-value'), diff --git a/modules/ui/success.js b/modules/ui/success.js index 7b938b1e8e..6e964ab2d5 100644 --- a/modules/ui/success.js +++ b/modules/ui/success.js @@ -1,7 +1,7 @@ import { dispatch as d3_dispatch } from 'd3-dispatch'; import { select as d3_select } from 'd3-selection'; -import { t } from '../util/locale'; +import { t, languageName } from '../util/locale'; import { data } from '../../data'; import { svgIcon } from '../svg/icon'; import { uiDisclosure } from '../ui/disclosure'; @@ -296,10 +296,14 @@ export function uiSuccess(context) { } if (d.languageCodes && d.languageCodes.length) { + var languageList = d.languageCodes.map(function(code) { + return languageName(code); + }).join(', '); + moreEnter .append('div') .attr('class', 'community-languages') - .text(t('success.languages', { languages: d.languageCodes.join(', ') })); + .text(t('success.languages', { languages: languageList })); } } diff --git a/modules/util/detect.js b/modules/util/detect.js index a89531c2e8..a9f009cc1e 100644 --- a/modules/util/detect.js +++ b/modules/util/detect.js @@ -1,4 +1,4 @@ -import { currentLocale, setTextDirection } from './locale'; +import { currentLocale, setTextDirection, setLanguageNames } from './locale'; import { dataLocales } from '../../data/index'; import { utilStringQs } from './util'; @@ -97,13 +97,14 @@ export function utilDetect(force) { } // detect text direction - var lang = dataLocales[detected.locale]; + var lang = dataLocales[detected.locale] || dataLocales[detected.language]; if ((lang && lang.rtl) || (q.rtl === 'true')) { detected.textDirection = 'rtl'; } else { detected.textDirection = 'ltr'; } setTextDirection(detected.textDirection); + setLanguageNames((lang && lang.languageNames) || {}); // detect host var loc = window.top.location; diff --git a/modules/util/locale.js b/modules/util/locale.js index 2257e16f0a..3bfa2afa05 100644 --- a/modules/util/locale.js +++ b/modules/util/locale.js @@ -1,7 +1,10 @@ +import { dataLanguages } from '../../../data'; + var translations = Object.create(null); export var currentLocale = 'en'; export var textDirection = 'ltr'; +export var languageNames = {}; export function setLocale(val) { if (translations[val] !== undefined) { @@ -73,3 +76,29 @@ export function t(s, o, loc) { export function setTextDirection(dir) { textDirection = dir; } + +export function setLanguageNames(obj) { + languageNames = obj; +} + +export function languageName(code, options = {}) { + if (languageNames[code]) { // name in locale langauge + return languageNames[code]; + } + // sometimes we only want the local name + if (options.localOnly) return null; + + if (dataLanguages[code]) { // language info + if (dataLanguages[code].nativeName) { // name in native language + return t('translate.language_and_code', { language: dataLanguages[code].nativeName, code: code }); + } else if (dataLanguages[code].base && dataLanguages[code].script) { + var base = dataLanguages[code].base; + if (languageNames[base]) { // base name in locale langauge + return t('translate.language_and_code', { language: languageNames[base], code: code }); + } else if (dataLanguages[code] && dataLanguages[code].nativeName) { + return t('translate.language_and_code', { language: dataLanguages[base].nativeName, code: code }); + } + } + } + return code; // if not found, use the code +} diff --git a/package.json b/package.json index d5cfd02eb0..d6330e01b2 100644 --- a/package.json +++ b/package.json @@ -61,6 +61,7 @@ "@fortawesome/free-solid-svg-icons": "^5.8.2", "@mapbox/maki": "^6.0.0", "chai": "^4.1.0", + "cldr-localenames-full": "35.1.0", "colors": "^1.1.2", "concat-files": "^0.1.1", "d3": "~5.9.2", From 08b4897335767c58ac07b2b8ffd96c403cebbf4c Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 31 Jul 2019 14:08:54 -0400 Subject: [PATCH 241/774] Change syntax that the tests can't handle --- modules/util/locale.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/util/locale.js b/modules/util/locale.js index 3bfa2afa05..30e31f325e 100644 --- a/modules/util/locale.js +++ b/modules/util/locale.js @@ -81,12 +81,12 @@ export function setLanguageNames(obj) { languageNames = obj; } -export function languageName(code, options = {}) { +export function languageName(code, options) { if (languageNames[code]) { // name in locale langauge return languageNames[code]; } // sometimes we only want the local name - if (options.localOnly) return null; + if (options && options.localOnly) return null; if (dataLanguages[code]) { // language info if (dataLanguages[code].nativeName) { // name in native language From 982aa783c41b91b8a4590120d7a7198b2f62f260 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 31 Jul 2019 14:09:39 -0400 Subject: [PATCH 242/774] Run translations --- dist/locales/ar.json | 18 ++- dist/locales/ckb.json | 170 +++++++++++++++++++++- dist/locales/de.json | 36 +++-- dist/locales/el.json | 28 ++-- dist/locales/eo.json | 4 - dist/locales/es.json | 30 +++- dist/locales/fa.json | 6 +- dist/locales/fi.json | 304 ++++++++++++++++++++++++++++++++++------ dist/locales/fr.json | 4 - dist/locales/gl.json | 12 ++ dist/locales/he.json | 4 - dist/locales/hu.json | 71 ++++++++-- dist/locales/it.json | 31 +++- dist/locales/ja.json | 22 ++- dist/locales/ko.json | 4 - dist/locales/lv.json | 4 - dist/locales/mk.json | 7 +- dist/locales/nl.json | 4 - dist/locales/pl.json | 4 - dist/locales/pt-BR.json | 34 ++++- dist/locales/pt.json | 4 - dist/locales/ru.json | 167 ++++++++++++++++++++-- dist/locales/sv.json | 13 +- dist/locales/uk.json | 13 +- dist/locales/vi.json | 4 - dist/locales/zh-CN.json | 75 +++++++++- dist/locales/zh-TW.json | 16 ++- dist/locales/zh.json | 11 ++ 28 files changed, 930 insertions(+), 170 deletions(-) diff --git a/dist/locales/ar.json b/dist/locales/ar.json index e2bffea04a..ff96f7d03b 100644 --- a/dist/locales/ar.json +++ b/dist/locales/ar.json @@ -923,7 +923,7 @@ "splash": { "welcome": "مرحبًا بك في مصمم iD OpenStreetMap", "text": "مصمم iD هو أداة ودودة وقوية للمساهمة في أفضل خريطة حرة للعالم. هذا هو الإصدار {version}. للمزيد من المعلومات شاهد {website} وقم بالإبلاغ عن الأخطاء التقنية في {github}.", - "walkthrough": "ابدأ الجولة التعريفية", + "walkthrough": "بدء جولة تعليمية", "start": "التعديل الآن" }, "source_switch": { @@ -1125,7 +1125,7 @@ "open_data_h": "البيانات مفتوحة ومتاحة للعامة", "open_data": "التعديلات والتغييرات التي تقوم بها على هذه الخرائط ستكون مرئية لكل من يستخدم خرائط OpenStreetMap.\nتعديلاتك يمكن أن تستند على معرفتك الشخصية، أو من خلال المسح والاستقصاء على أرض الواقع، أو من خلال الصور التي تم جمعها من التصوير الجوي وصور مستوى الشارع.\n كما ينبغي التنبيه والتشديد على أن النسخ من المصادر التجارية، كخرائط جوجل [ممنوع منعًا باتا](https://www.openstreetmap.org/copyright).", "before_start_h": "قبل أن تبدأ", - "before_start": "ينبغي أن تكون على دراية بخرائط OpenStreetMap وهذا المحرر قبل البدء بالتحرير.\nإن محرر iD يحتوي على جولة لتعليمك أساسيات التحرير على خرائط OpenStreetMap.\nانقر على \"بدء جولة تعليم\" الظاهرة في هذه الصفحة لبدء جولة تعليمية - قد تستغرق منك حوالي 15 دقيقة فقط.", + "before_start": "ينبغي أن تكون على دراية بخرائط OpenStreetMap وهذا المحرر قبل البدء بالتحرير.\nإن محرر iD يحتوي على جولة لتعليمك أساسيات التحرير على خرائط OpenStreetMap.\nانقر على \"بدء جولة تعليمية\" الظاهرة في هذه الصفحة لبدء جولة تعليمية - قد تستغرق منك حوالي 15 دقيقة فقط.", "open_source_h": "المصدر مفتوح", "open_source": "إن محرر iD هو مشروع تعاوني مفتوح المصدر، وأنت تستخدم الإصدار رقم {version} منه الآن.\nالكود المصدري متوفر [على موقع الاستضافة GitHub](https://github.com/openstreetmap/iD).", "open_source_help": "يمكنك المساهمة والمساعدة في مشروع iD عن طريق [الترجمة](https://github.com/openstreetmap/iD/blob/master/CONTRIBUTING.md#translating) أو [الإبلاغ عن العلل والمشاكل](https://github.com/openstreetmap/iD/issues) التي قد تواجهها أثناء استخدامك للمحرر." @@ -1395,14 +1395,21 @@ "title": "تقريبا تقاطعات", "message": "{feature} قريب للغاية ولكنه غير متصل بـ {feature2}", "tip": "بحث عن العناصر التي ينبغي أن تكون متصلة بعناصر أخرى قريبة", + "self": { + "message": "{feature} ينتهي قريب جدًا من نفسه ولكنه لا يتصل بنفسه" + }, "highway-highway": { "reference": "الطُرق المتقاطعة ينبغي أن تتشارك مع بعضها في نقاط التقاطع." } }, "close_nodes": { "title": "نقاط متقاربة جدا", + "tip": "البحث عن النقاط الزائدة والمزدحمة", "message": "نقطتان في {way} متقاربين من بعضهما للغاية", - "reference": "ينبغي أن تُدمج النقاط الزائدة في الطريق أو تُنقل بعيدا." + "reference": "ينبغي أن تُدمج النقاط الزائدة في الطريق أو تُنقل بعيدا.", + "detached": { + "message": "{feature} قريب جدا من {feature2}" + } }, "crossing_ways": { "title": "الطُرق المتقاطعة", @@ -1485,6 +1492,11 @@ "reference": "منتجات جووجل هي منتجات خاصة ومملوكة مِن قِبل الشركة ويجب ألا تُستخدم كمصادر." } }, + "invalid_format": { + "website": { + "reference": "ينبغي أن تبدأ صفحات الويب بـ \"http\" أو \"https\"." + } + }, "missing_role": { "title": "قواعد مفقودة", "message": "{member} ليس لديه قاعدة في {relation}", diff --git a/dist/locales/ckb.json b/dist/locales/ckb.json index dd86a17e7c..0c89db3870 100644 --- a/dist/locales/ckb.json +++ b/dist/locales/ckb.json @@ -1,13 +1,22 @@ { "ckb": { "icons": { - "information": "زانیاری" + "download": "دابەزاندن", + "information": "زانیاری", + "remove": "لابردن", + "copy": "لەبەرگرتنەوە", + "open_wikidata": "کردنەوە لە ماڵپەڕی wikidata.org" }, "modes": { + "add_feature": { + "result": "{count} ئەنجام", + "results": "{count} ئەنجام" + }, "add_area": { "title": "ناوچە", "description": "زیادکردنی باخچە و بینا و گۆم و شوێنی تر بۆ سەر نەخشەکە.", - "tail": "کرتە لەسەر نەخشەکە بکە بۆ کێشانی ناوچەیەک، وەک باخچە، و دەریاچە یان باڵەخانە." + "tail": "کرتە لەسەر نەخشەکە بکە بۆ کێشانی ناوچەیەک، وەک باخچە، و دەریاچە یان باڵەخانە.", + "filter_tooltip": "ناوچەکان" }, "add_line": { "title": "هێڵ" @@ -182,28 +191,120 @@ } }, "success": { + "thank_you_where": { + "format": "{place}{separator}{region}", + "separator": "،" + }, "help_link_text": "وردەکارییەکان", "help_link_url": "https://wiki.openstreetmap.org/wiki/FAQ#I_have_just_made_some_changes_to_the_map._How_do_I_get_to_see_my_changes.3F", + "view_on_osm": "پێشاندانی گۆڕانکارییەکان لە OSM", "more": "زۆرتر", "events": "بۆنەکان", - "languages": "زمان: {languages}" + "languages": "زمان: {languages}", + "tell_us": "پێمان بڵێ!" }, "confirm": { "okay": "باشە", "cancel": "هەڵوەشاندنەوە" }, + "splash": { + "welcome": "بەخێربێیت بۆ دەستکاریکەری iD OpenStreetMap", + "start": "دەست بکە بە دەستکاریکردن" + }, "version": { "whats_new": "چی نوێ هەیە لە iD {version}" }, + "QA": { + "improveOSM": { + "geometry_types": { + "road": "ڕێگاکان" + }, + "directions": { + "east": "ڕۆژهەڵات", + "north": "باکوور", + "northeast": "باکووری ڕۆژهەڵات", + "northwest": "باکووری ڕۆژاوا", + "south": "باشوور", + "southeast": "باشووری ڕۆژهەڵات", + "southwest": "باشووری ڕۆژاوا", + "west": "ڕۆژاوا" + } + }, + "keepRight": { + "detail_description": "پێناسە", + "comment": "سەرنج", + "save_comment": "پاشەکەوتکردنی سەرنج", + "error_parts": { + "this_way": "ئەم ڕێگەیە", + "this_railway": "ئەم هێڵی شەمەندەفەرە", + "this_crossing": "ئەم یەکتربڕە", + "this_railway_crossing": "ئەم یەکتربڕەی هێڵی شەمەندەفەر", + "this_bridge": "ئەم پردە", + "this_tunnel": "ئەم تونێلە", + "railway": "هێڵی شەمەندەفەر", + "place_of_worship": "پەرستگا", + "restaurant": "خواردنگە", + "school": "قوتابخانە", + "university": "زانکۆ", + "hospital": "نەخۆشخانە", + "library": "پەڕتووکخانە", + "theatre": "شانۆ", + "courthouse": "دادگا", + "bank": "بانک", + "cinema": "سینەما", + "pharmacy": "دەرمانخانە", + "cafe": "قاوەخانە", + "fast_food": "خواردنگەی خێرا", + "from": "لە", + "to": "بۆ", + "left_hand": "دەستەچەپ", + "right_hand": "دەستەڕاست" + }, + "errorTypes": { + "281": { + "description": "{var1} هیچ ناوێکی نییە." + } + } + } + }, + "streetside": { + "hires": "جۆریەتی بەرز" + }, + "mapillary": { + "title": "Mapillary" + }, + "openstreetcam": { + "title": "OpenStreetCam" + }, + "note": { + "note": "تێبینی", + "title": "دەستکاریکردنی تێبینی", + "anonymous": "نەناسراو", + "closed": "(Closed)", + "commentTitle": "سەرنجەکان", + "status": { + "opened": "کراوەیە {when}", + "closed": "داخراوە {when}" + }, + "newComment": "سەرنجێکی نوێ", + "close": "داخستنی تێبینی", + "comment": "سەرنج", + "new": "تێبینی نوێ", + "save": "پاشەکەوتکردنی تێبینی" + }, "help": { "title": "یارمەتی", "help": { "title": "یارمەتی", + "open_data_h": "دراوەی کراوە", "before_start_h": "پێش ئەوەی دەستپێبکەی", "open_source_h": "سەرچاوە کراوە" }, "editing": { + "title": "دەستکاریکردن و پاشەکەوتکردن", + "select_h": "دیاریکردن", "save_h": "پاشەکەوتکردن", + "upload_h": "بەرزکردنەوە", "keyboard_h": "کورتبڕەکانی تەختەکلیل" }, "lines": { @@ -217,7 +318,33 @@ } } }, + "issues": { + "fixme_tag": { + "title": "داواکاری \"چاکم بکەوە\"" + }, + "invalid_format": { + "email": { + "reference": "پێویستە پۆستی ئەلیکترۆنییەکەت لەوە بچێت\n\"user@example.com\"." + } + }, + "private_data": { + "title": "زانیاری تایبەتی" + }, + "fix": { + "select_road_type": { + "title": "هەڵبژاردنی جۆری ڕێگا" + }, + "use_bridge_or_tunnel": { + "title": "پرد یان تونێل بەکاربهێنە" + }, + "use_tunnel": { + "title": "تونێل بەکاربهێنە" + } + } + }, "intro": { + "done": "تەواو", + "ok": "باشە", "graph": { "block_number": "", "county": "", @@ -232,6 +359,20 @@ "suburb": "", "countrycode": "tr" }, + "welcome": { + "title": "بەرخێربێیت" + }, + "areas": { + "title": "ناوچەکان", + "search_playground": "**گەڕان بە دوای '{preset}'.**" + }, + "lines": { + "retry_delete": "کرتەت لەسەر دوگمەی سڕینەوە نەکردووە. دووبارەی بکەوە." + }, + "buildings": { + "retry_square": "کرتەت لەسەر دوگمە چوارگۆشەییەکە نەکردووە. دووبارەی بکەوە.", + "search_tank": "**گەڕان بە دوای '{preset}'.**" + }, "startediting": { "title": "دەستپێکردنی دەستکاری", "start": "دەستکردن بە نەخشەکێشان!" @@ -239,6 +380,14 @@ }, "shortcuts": { "title": "کورتبڕەکانی تەختەکلیل", + "tooltip": "پیشاندانی کورتبڕەکانی تەختەکلیل", + "toggle": { + "key": "؟" + }, + "key": { + "alt": "Alt", + "delete": "سڕینەوە" + }, "or": "-یان-", "browsing": { "help": { @@ -271,6 +420,18 @@ } }, "units": { + "feet": "{quantity} پێ", + "miles": "{quantity} میل", + "square_feet": "{quantity} پێ چوارگۆشە", + "square_miles": "{quantity} میل چوارگۆشە", + "meters": "{quantity} م", + "kilometers": "{quantity} کم", + "square_meters": "{quantity} م²", + "square_kilometers": "{quantity} کم²", + "area_pair": "{area1} ({area2})", + "arcdegrees": "{quantity}°", + "arcminutes": "{quantity}′", + "arcseconds": "{quantity}″", "north": "باکوور", "south": "باشوور", "east": "ڕۆژهەڵات", @@ -278,6 +439,9 @@ "coordinate": "{coordinate}{direction}", "coordinate_pair": "{latitude}, {longitude}" }, + "wikidata": { + "description": "پێناسە" + }, "presets": { "fields": { "access": { diff --git a/dist/locales/de.json b/dist/locales/de.json index 28445516a5..168ce01690 100644 --- a/dist/locales/de.json +++ b/dist/locales/de.json @@ -1660,28 +1660,28 @@ "reference": "Gebäude sollen sich nicht kreuzen, ausgenommen auf verschiedenen Ebenen." }, "building-highway": { - "reference": "Straßen die Gebäude kreuzen sollten Brücken, Tunnel, Überdachungen oder Einfahrten benutzen." + "reference": "Straßen, die Gebäude kreuzen, sollten Brücken, Tunnel, Überdachungen oder Einfahrten benutzen." }, "building-railway": { - "reference": "Eisenbahnen die Gebäude kreuzen sollten Brücken oder Tunnel benutzen." + "reference": "Eisenbahnen, die Gebäude kreuzen, sollten Brücken oder Tunnel benutzen." }, "building-waterway": { - "reference": "Wasserwege die Gebäude kreuzen sollten Tunnel oder verschiedene Ebenen benutzen." + "reference": "Wasserwege, die Gebäude kreuzen, sollten Tunnel oder verschiedene Ebenen benutzen." }, "highway-highway": { "reference": "Kreuzende Straßen sollten Brücken oder Tunnel benutzen oder verbunden sein." }, "highway-railway": { - "reference": "Straßen die Eisenbahnen kreuzen sollten Brücken, Tunnel oder Eisenbahnkreuzungen verwenden." + "reference": "Straßen, die Eisenbahnen kreuzen, sollten Brücken, Tunnel oder Eisenbahnkreuzungen verwenden." }, "highway-waterway": { - "reference": "Straßen die Wasserwege kreuzen sollten Brücken, Tunnel oder Furten benutzen." + "reference": "Straßen, die Wasserwege kreuzen, sollten Brücken, Tunnel oder Furten benutzen." }, "railway-railway": { "reference": "Kreuzende Eisenbahnen sollten verbunden sein oder Brücken oder Tunnel benutzen." }, "railway-waterway": { - "reference": "Eisenbahnen die Wasserwege kreuzen sollten Brücken oder Tunnel verwenden." + "reference": "Eisenbahnen, die Wasserwege kreuzen, sollten Brücken oder Tunnel verwenden." }, "waterway-waterway": { "reference": "Kreuezende Wasserwege sollten verbunden sein oder Tunnel benutzen." @@ -7056,7 +7056,7 @@ }, "man_made/cross": { "name": "Gipfelkreuz", - "terms": "Gipfelkreuz, Kreuz ohne historischem oder religiösem Wert" + "terms": "Gipfelkreuz, Kreuz ohne historischen oder religiösen Wert" }, "man_made/cutline": { "name": "Schneise", @@ -8602,6 +8602,10 @@ "name": "Fotofachgeschäft", "terms": "Fotoladen, Fotograf, Fotogeschäft" }, + "shop/printer_ink": { + "name": "Druckertintengeschäft", + "terms": "Kopierertinte, Faxtinte, Toner" + }, "shop/pyrotechnics": { "name": "Feuerwerksgeschäft", "terms": "Feuerwerksartikelladen,Feuerwerkskörpergeschäft" @@ -10683,10 +10687,26 @@ "description": "YouthMappers chapter at University of the West Indies, Mona Campus", "extendedDescription": "The UWI, Mona Campus Library engages in public, outreach and special projects. This will allow our library the means to be a catalyst for spatial literacy and advocate for spatial data sharing and access to Jamaican and Caribbean interests. We have disaster relief and communication needs and extensive earth science and geo-hazards needs to better serve our campus and community. Specifically, we hace a Science Library to showcase such to all faculty and students." }, - "OSM-NI-telegram": { + "ni-facebook": { + "name": "OpenStreetMap Nicaragua Gemeinschaft", + "description": "Mapper und OpenStreetMap Benutzer auf Facebook in Nicaragua" + }, + "ni-mailinglist": { + "name": "Talk-ni Mailing Liste", + "description": "Talk-ni ist die offizielle Mail8ng Liste für die OSM Gemeinschaft in Nicaragua" + }, + "ni-telegram": { "name": "OSM Nicaragua auf Telegram", "description": "OpenStreetMap Nicaragua Telegram chat" }, + "ni-twitter": { + "name": "OpenStreetMap Nicaragua Twitter", + "description": "OSM Nicaragua auf Twitter: @osm_ni" + }, + "osm-ni": { + "name": "MapaNica.net", + "description": "Stelle OSM service und Information für die lokale Gemeinschaft in Nicaragua zur Verfügung" + }, "ym-Universidad-Nacional-de-Ingenieria": { "name": "Yeka Street MGA", "description": "YouthMappers chapter at Universidad Nacional de Ingenieria", diff --git a/dist/locales/el.json b/dist/locales/el.json index 8bf57cd4d9..81a2543da6 100644 --- a/dist/locales/el.json +++ b/dist/locales/el.json @@ -1560,7 +1560,7 @@ "title": "Αντίθετη ποδηλατολωρίδα" }, "share_busway": { - "description": "Μία Ποδηλατολωρίδα που είναι και Λεωφορειολωρίδα", + "description": "Ποδηλατολωρίδα και Λεωφορειολωρίδα μαζί", "title": "Ποδηλατολωρίδα κοινόχρηστη με λεωφορείο" }, "shared_lane": { @@ -3093,7 +3093,7 @@ "name": "Ανταλλακτήριο Συναλλάγματος" }, "amenity/bus_station": { - "name": "Τερματικός Σταθμός Λεωφορείων" + "name": "Τερματικός Σταθμός Λεωφορείου" }, "amenity/cafe": { "name": "Καφετέρια", @@ -4245,10 +4245,10 @@ "name": "Διαδρομή Ιππασίας" }, "highway/bus_guideway": { - "name": "Λεωφορειόδρομος" + "name": "Κατευθυντήριος Λεωφορείου" }, "highway/bus_stop": { - "name": "Στάση Λεωφορείου δίπλα στη διαδρομή" + "name": "Στάση Λεωφορείου" }, "highway/construction": { "name": "Κλειστός Δρόμος" @@ -4422,7 +4422,7 @@ "terms": "Σύνδεσμος τριτεύουσας οδού" }, "highway/track": { - "name": "Ανώμαλη Δρόμος Μη Συντηρούμενος" + "name": "Ανώμαλος Δρόμος μη Συντηρούμενος" }, "highway/traffic_mirror": { "name": "Οδικός Καθρέπτης" @@ -5432,10 +5432,10 @@ "name": "Στάση / Αποβάθρα Αερομεταφοράς" }, "public_transport/platform/bus": { - "name": "Αποβάθρα Λεωφορείου δίπλα στη διαδρομή" + "name": "Αποβάθρα Λεωφορείου" }, "public_transport/platform/bus_point": { - "name": "Στάση Λεωφορείου δίπλα στη διαδρομή" + "name": "Στάση Λεωφορείου" }, "public_transport/platform/ferry": { "name": "Αποβάθρα Ferry Boat" @@ -5462,10 +5462,10 @@ "name": "Στάση / Αποβάθρα Τραμ" }, "public_transport/platform/trolleybus": { - "name": "Αποβάθρα Τρόλεϊ δίπλα στη διαδρομή" + "name": "Αποβάθρα Τρόλεϊ" }, "public_transport/platform/trolleybus_point": { - "name": "Στάση Τρόλεϊ δίπλα στη διαδρομή" + "name": "Στάση Τρόλεϊ" }, "public_transport/platform_point": { "name": "Στάση / Αποβάθρα Διέλευσης" @@ -5474,7 +5474,7 @@ "name": "Σταθμός Μετεπιβίβασης" }, "public_transport/station_bus": { - "name": "Σταθμός / Τέρμα Λεωφορείου δίπλα στη διαδρομή" + "name": "Σταθμός / Τέρμα Λεωφορείου" }, "public_transport/station_ferry": { "name": "Πορθμείο Φέρι Μπωτ" @@ -5495,7 +5495,7 @@ "name": "Σταθμός Τραμ" }, "public_transport/station_trolleybus": { - "name": "Σταθμός / Τέρμα Τρόλεϊ δίπλα στη διαδρομή" + "name": "Σταθμός / Τέρμα Τρόλεϊ" }, "public_transport/stop_area": { "name": "Περιοχή Στάσης για Διέλευση" @@ -5507,7 +5507,7 @@ "name": "Τοποθεσία Στάσης Αεροσκαφών" }, "public_transport/stop_position_bus": { - "name": "Τοποθεσία Στάσης Λεωφορείου πάνω στη διαδρομή" + "name": "Χώρος Στάσης Λεωφορείου" }, "public_transport/stop_position_ferry": { "name": "Τοποθεσία Στάσης Ferry Boat" @@ -5522,7 +5522,7 @@ "name": "Τοποθεσία Στάσης Τραμ πάνω στις ράγες" }, "public_transport/stop_position_trolleybus": { - "name": "Τοποθεσία Στάσης Τρόλεϊ πάνω στη διαδρομή" + "name": "Χώρος Στάσης Τρόλεϊ" }, "railway": { "name": "Σιδηροδρομικός Διάδρομος" @@ -6283,7 +6283,7 @@ "terms": "Διαδρομή ποδηλάτου, Ποδηλατόδρομος" }, "type/route/bus": { - "name": "Διαδρομή Λεωφορείων", + "name": "Δρομολόγιο Λεωφορείου", "terms": "Διαδρομή Λεωφορείου" }, "type/route/detour": { diff --git a/dist/locales/eo.json b/dist/locales/eo.json index 7f4d32830d..0cfbd7e3b7 100644 --- a/dist/locales/eo.json +++ b/dist/locales/eo.json @@ -10120,10 +10120,6 @@ "name": "OSM Cuba ĉe Telegram", "description": "Telegram-kanalo OpenStreetMap Kubo" }, - "OSM-NI-telegram": { - "name": "OSM Nicaragua ĉe Telegram", - "description": "Telegram-kanalo OpenStreetMap Nikaragvo" - }, "Bay-Area-OpenStreetMappers": { "name": "Bay Area OpenStreetMappers", "description": "Plibonigi OpenStreetMap en la regiono apud Golfo de San-Francisko", diff --git a/dist/locales/es.json b/dist/locales/es.json index 61f3e6e8dc..f273805f1a 100644 --- a/dist/locales/es.json +++ b/dist/locales/es.json @@ -1602,7 +1602,7 @@ "elsewhere": "Problemas en otra parte: {count}", "other_features": "Problemas con otros elementos: {count}", "other_features_elsewhere": "Problemas en otros lugares con otros elementos: {count}", - "disabled_rules": "Problemas con las reglas desactivadas: {count}", + "disabled_rules": "Problemas con reglas desactivadas: {count}", "disabled_rules_elsewhere": "Problemas en otros lugares con reglas desactivadas: {count}", "ignored_issues": "Problemas ignorados: {count}", "ignored_issues_elsewhere": "Problemas ignorados en otros lugares: {count}" @@ -8603,6 +8603,10 @@ "name": "Tienda de fotografía", "terms": "fotografía, fotógrafo, cámara, retratista, revelado, film, rollo, impresión, fotos" }, + "shop/printer_ink": { + "name": "Tienda de tinta para impresora", + "terms": "tinta, cartuchos, toner, tóner, copiadora, fax, impresora, laser, chorro de tinta, insumos" + }, "shop/pyrotechnics": { "name": "Tienda de fuegos artificiales", "terms": "fuegos artificiales, pirotecnia" @@ -10684,9 +10688,25 @@ "description": "Capítulo de los YouthMappers en la Universidad de las Indias Occidentales, Campus Mona", "extendedDescription": "La Biblioteca Universitaria Mona de la UWI participa en proyectos públicos, de divulgación y especiales. Esto permitirá a nuestra biblioteca los medios para ser un catalizador para la alfabetización espacial y abogar por el intercambio de datos espaciales y el acceso a los intereses de Jamaica y el Caribe. Tenemos necesidades de comunicación y socorro en casos de desastre, y una amplia variedad de necesidades de geomedia y ciencias de la Tierra para servir mejor a nuestro campus y comunidad. Específicamente, tenemos una biblioteca de ciencias para mostrar a todos los profesores y estudiantes." }, - "OSM-NI-telegram": { + "ni-facebook": { + "name": "Comunidad OpenStreetMap NI", + "description": "Mapeadores y OpenStreetMap en Facebook Nicaragua" + }, + "ni-mailinglist": { + "name": "Lista de correo Talk-ni", + "description": "Talk-ni es la lista de correo oficial de la comunidad nicaragüense de OSM" + }, + "ni-telegram": { "name": "OSM Nicaragua en Telegram", - "description": "Chat de Telegram de OpenStreetMap Nicaragua " + "description": "Chat de Telegram de OpenStreetMap Nicaragua" + }, + "ni-twitter": { + "name": "Twitter de OpenStreetMap Nicaragua", + "description": "OSM Nicaragua en Twitter: @osm_ni" + }, + "osm-ni": { + "name": "MapaNica.net", + "description": "Proporciona servicios e información de OSM para la comunidad local en Nicaragua" }, "ym-Universidad-Nacional-de-Ingenieria": { "name": "Yeka Street MGA", @@ -11141,10 +11161,10 @@ "OSM-CL-facebook": { "name": "Facebook de OpenStreetMap Chile", "description": "Únase a la comunidad de OpenStreetMap Chile en Facebook", - "extendedDescription": "Únase a la comunidad para obtener más información sobre OpenStreetMap, hacer preguntas o participar en nuestras reuniones. ¡Todos son bienvenidos!" + "extendedDescription": "Únase a la comunidad para obtener más información sobre OpenStreetMap, hacer preguntas o participar en nuestras reuniones ¡Todos son bienvenidos!" }, "OSM-CL-mailinglist": { - "name": "Lista de correo Talk-br", + "name": "Lista de correo Talk-cl", "description": "Una lista de correo para discutir OpenStreetMap en Chile" }, "OSM-CL-telegram": { diff --git a/dist/locales/fa.json b/dist/locales/fa.json index daa3104693..18652f5497 100644 --- a/dist/locales/fa.json +++ b/dist/locales/fa.json @@ -544,7 +544,7 @@ "comment_needed_message": "لطفاً ابتدا توضیحی برای بستهٔ تغییرات خود بنویسید.", "about_changeset_comments": "دربارهٔ توضیح تغییرات", "about_changeset_comments_link": "//wiki.openstreetmap.org/wiki/Fa:Good_changeset_comments", - "google_warning": "شما در توضیحات خود از گوگل نام بردید. لطفا توجه داشته باشید که کپی کردن از نقشه‌های گوگل، ممنوع است.", + "google_warning": "شما در توضیحات خود از گوگل نام بردید.: به یاد داشته باشید که کپی کردن از نقشه‌های گوگل، شدیداً ممنوع است.", "google_warning_link": "https://www.openstreetmap.org/copyright" }, "contributors": { @@ -6580,8 +6580,8 @@ "name": "پارک تفریحی, شهربازی" }, "tourism/viewpoint": { - "name": "چشم‌انداز", - "terms": "منظره, ویو" + "name": "نقطه دید", + "terms": "چشم‌انداز" }, "tourism/zoo": { "name": "باغ وحش", diff --git a/dist/locales/fi.json b/dist/locales/fi.json index 73a87d64a1..c9358bcef4 100644 --- a/dist/locales/fi.json +++ b/dist/locales/fi.json @@ -20,6 +20,7 @@ "modes": { "add_feature": { "title": "Lisää karttakohde", + "description": "Hae karttakohteita", "key": "Välilehti", "result": "{count} tulos", "results": "{count} tulosta" @@ -266,6 +267,9 @@ }, "key": "D", "annotation": "Erotetut viivat/alueet.", + "too_large": { + "single": "Tätä liitosta ei voi purkaa, koska sitä ei ole nykyisin riittävästi näkyvillä." + }, "not_connected": "Ei riittävästi viivoja/alueita niiden erottamiseksi.", "connected_to_hidden": "Tätä kohdetta ei voi katkaista, sillä se on yhdistetty piilotettuun karttakohteeseen.", "relation": "Tätä ei voi katkaista, sillä se on yhteydessä relaatiojäseniin." @@ -280,7 +284,8 @@ "restriction": "Näitä ominaisuuksia ei voida yhdistää, koska se voisi vahingoittaa relaatiota {relation}.", "relation": "Näitä ominaisuuksia ei voida yhdistää, koska niillä on ristiriitaisia relaatiorooleja.", "incomplete_relation": "Näitä karttakohteita ei voi yhdistää, sillä ainakin yhden tietoja ei ole täysin ladattu.", - "conflicting_tags": "Näitä kohteita ei voi yhdistää, koska joidenkin niiden ominaisuustiedoissa on ristiriitaisia arvoja. " + "conflicting_tags": "Näitä kohteita ei voi yhdistää, koska joidenkin niiden ominaisuustiedoissa on ristiriitaisia arvoja. ", + "paths_intersect": "Näitä kohteita ei voi yhdistää, sillä yhdistetty polku risteäisi itsensä kanssa." }, "move": { "title": "Siirrä", @@ -406,7 +411,19 @@ } }, "extract": { - "title": "Irrota" + "title": "Irrota", + "key": "E", + "description": { + "vertex": { + "single": "Irroita tämä piste viivoistaan/alueistaan." + }, + "area": { + "single": "Irroita piste tästä alueesta." + } + }, + "annotation": { + "single": "Irroitettu piste." + } } }, "restriction": { @@ -882,7 +899,7 @@ }, "splash": { "welcome": "Tervetuloa iD- OpenStreetMapin kartanmuokkausohjelmaan", - "text": "iD on tehokas ja helppokäyttöinen kartanmuokkausohjelma, jolla luodaan maailman tasokkain kartta. Tämä on versio {version}. Lisätietoja ohjelmasta on osoitteessa {website}, ja ohjelmistovirheistä voi ilmoittaa osoitteessa {github}.", + "text": "iD on tehokas ja helppokäyttöinen kartanmuokkausohjelma maailman tasokkaimman kartan luomiseen. Tämä on versio {version}. Lisätietoja ohjelmasta on osoitteessa {website}, ja ohjelmistovirheistä voi ilmoittaa osoitteessa {github}.", "walkthrough": "Aloitusopas", "start": "Muokkaa heti" }, @@ -1000,7 +1017,8 @@ "description": "Tässä sijainnissa on useita pisteitä. Pisteiden tunnistenumerot: {var1}." }, "30": { - "title": "Avoin alue" + "title": "Avoin alue", + "description": "{var1} on merkitty \"{var2}\" ja pitäisi siten olla suljettu silmukka." }, "40": { "title": "Mahdoton yksisuuntaisuus", @@ -1009,6 +1027,9 @@ "41": { "description": "Viimeistä pistettä {var1} osana {var2} ei ole yhdistetty mihinkään muuhun viivaan." }, + "42": { + "description": "{var1} ei voida saavuttaa koska kaikki tiet, jotka johtavat siitä pois ovat yksisuuntaisia." + }, "50": { "title": "Melkein risteys" }, @@ -1021,6 +1042,12 @@ "71": { "description": "{var1} ei ole merkitty millään ominaisuustiedoilla" }, + "73": { + "description": "{var1} on merkitty \"{var2}\"-ominaisuustiedolla mutta sillä ei ole \"highway\"-ominaisuustietoa." + }, + "75": { + "description": "{var1} on nimetty \"{var2}\" mutta sillä ei ole muita ominaisuustietoja." + }, "90": { "title": "Moottoritie ilman tienumeroa", "description": "{var1} on merkitty moottoritieksi ja tarvitsee siksi \"ref\"-, \"nat_ref\"- tai \"int_ref\"-ominaisuustiedon." @@ -1366,7 +1393,7 @@ "upload": "Jos aineisto on laajempi eikä sen hyödyntäminen ole mahdollista ensimmäisellä kerralla tai siitä voi olla hyötyä myös muille käyttäjille, se kannattaa [tallentaa OpenStreetMapin jälkitietokantaan](https://www.openstreetmap.org/trace/create) kaikkien kartoittajien tausta-aineistoksi." }, "qa": { - "title": "Laadun varmistus", + "title": "Laaduntarkkailu", "intro": "*Laaduntarkkailutoiminto* tarkastaa automaattisesti muokkauksia yleisimpien merkintävirheiden, kuten virheellisten ominaisuustietojen ja risteysmerkintöjen varalta. Kartoittajan on kuitenkin itse korjattava havaitut puutteet. Tarkastele merkintävirhelistaa napsauttamalla {data} **Kartta-aineisto**.", "tools_h": "Työkalut", "tools": "iD tukee toistaiseksi ohjelmistoja [KeepRight](https://www.keepright.at/) ja [ImproveOSM](https://improveosm.org/en/) (englanniksi). Kehitteillä on yhteensopivuus [Osmose](https://osmose.openstreetmap.fr/)-ohjelmiston ja mahdollisesti myös muiden toimintojen kanssa.", @@ -2278,7 +2305,7 @@ "label": "Tuotteet" }, "air_conditioning": { - "label": "Ilmanvaihto" + "label": "Ilmastointi" }, "amenity": { "label": "Tyyppi" @@ -2336,6 +2363,9 @@ "onsen": "Japanilainen Onsen" } }, + "beauty": { + "label": "Hoitopalvelut" + }, "bench": { "label": "Penkki" }, @@ -2370,7 +2400,7 @@ "label": "Brändi" }, "brewery": { - "label": "Hanaoluita" + "label": "Oluthana" }, "bridge": { "label": "Tyyppi", @@ -2382,6 +2412,10 @@ "building": { "label": "Rakennus" }, + "building/levels/underground": { + "label": "Maanalaiset kerrokset", + "placeholder": "2, 4, 6..." + }, "building/levels_building": { "label": "Rakennuksen kerrokset", "placeholder": "2, 4, 6..." @@ -2594,7 +2628,7 @@ "label": "Vaipanvaihtomahdollisuus" }, "diet_multi": { - "label": "ruokavalio" + "label": "Erityisruokavaliot" }, "diplomatic": { "label": "Tyyppi" @@ -2757,7 +2791,7 @@ "label": "Kelluva" }, "flood_prone": { - "label": "Altis tulville" + "label": "Tulva-altis" }, "ford": { "label": "Tyyppi", @@ -2886,6 +2920,12 @@ "undefined": "Ei" } }, + "iata": { + "label": "IATA-lentoasemakoodi" + }, + "icao": { + "label": "ICAO-lentoasemakoodi" + }, "incline": { "label": "Kaltevuus" }, @@ -2914,6 +2954,9 @@ "intermittent": { "label": "Kuivuminen ajoittain" }, + "intermittent_yes": { + "label": "Ajoittain kuivuva" + }, "internet_access": { "label": "Internet-yhteys", "options": { @@ -3327,6 +3370,9 @@ "playground/min_age": { "label": "Alaikäraja" }, + "polling_station": { + "label": "Äänestyspaikka" + }, "population": { "label": "Asukasmäärä" }, @@ -3368,6 +3414,9 @@ "container": "Keräysastia" } }, + "ref": { + "label": "Tunnus" + }, "ref/isil": { "label": "ISIL-tunnus" }, @@ -3411,7 +3460,7 @@ "label": "Uskonto" }, "reservation": { - "label": "Varaukset", + "label": "Pöytävaraukset", "options": { "no": "Ei oteta vastaan", "recommended": "Suositellaan", @@ -3458,9 +3507,18 @@ "sanitary_dump_station": { "label": "Tyhjennystekniikka" }, + "screen": { + "placeholder": "1, 4, 8..." + }, "scuba_diving": { "label": "Palvelut" }, + "seamark/beacon_isolated_danger/shape": { + "label": "Muoto" + }, + "seamark/beacon_lateral/category": { + "label": "Luokka" + }, "seamark/beacon_lateral/colour": { "label": "Väri", "options": { @@ -3482,10 +3540,11 @@ "label": "Kausiluonteisuus" }, "seats": { - "label": "Istumapaikkoja" + "label": "Istumapaikkoja", + "placeholder": "2, 4, 6..." }, "second_hand": { - "label": "Myy käytettyjä", + "label": "Käytetyn tavaran kauppa", "options": { "no": "Ei", "only": "Ainoastaan", @@ -3583,7 +3642,7 @@ "label": "Urheilulajit" }, "stars": { - "label": "Tähdet" + "label": "Tähtiluokitus" }, "start_date": { "label": "Perustamispäivä" @@ -3870,6 +3929,9 @@ } }, "presets": { + "addr/interpolation": { + "name": "Osoitteen interpolointi" + }, "address": { "name": "Osoite", "terms": "asuinpaikka, viittauskohde" @@ -3951,6 +4013,9 @@ "name": "Helikopterikenttä", "terms": "helikopterikenttä, helikopteri" }, + "aeroway/parking_position": { + "name": "Lentokoneen pysäköintikohta" + }, "aeroway/runway": { "name": "Kiitorata", "terms": "kiitorata, kiitotie, lentokone, lentoonlähtörata, lentoonlähtötie" @@ -4012,6 +4077,15 @@ "name": "Pyöräpysäköinti", "terms": "pyöräpysäköinti, pyöräparkki, pyöräpaikka, pyöräteline, polkupyöräpysäköinti, polkupyöräparkki, polkupyöräpaikka, polkupyöräteline, lukkopaikka, polkupyörä, pyörä" }, + "amenity/bicycle_parking/building": { + "name": "Polkupyörävarasto" + }, + "amenity/bicycle_parking/lockers": { + "name": "Polkupyörien lukkokaapit" + }, + "amenity/bicycle_parking/shed": { + "name": "Polkupyörävaja" + }, "amenity/bicycle_rental": { "name": "Kaupunkipyöräasema", "terms": "pyörävuokraamo, kaupunkipyörä, pyöränvuokraus, pyörän vuokraus, polkupyörävuokraamo, polkupyörän vuokraus, polkupyöränvuokraus, polkupyörä, pyörä" @@ -4126,6 +4200,9 @@ "name": "Itsepuolustuslajien harjoittelupaikka", "terms": "taistelulaji, taistelu, itsepuolustus, laji, lajit, urheilu, kamppailu, kamppailulaji, itsepuolustuslaji, taekwondo, taekwon-do, judo, karate, taiji, jujutsu, aikido, kravmaga, krav maga, hapkido" }, + "amenity/dressing_room": { + "name": "Pukuhuone" + }, "amenity/drinking_water": { "name": "Juomavesipiste", "terms": "juomavesi, juoma-automaatti, juomapaikka, vesipiste, vesiautomaatti, vedenjakelu, hana, kaivo" @@ -4156,6 +4233,9 @@ "amenity/fast_food/fish_and_chips": { "name": "Fish & Chips -pikaruokaravintola" }, + "amenity/fast_food/ice_cream": { + "name": "Jäätelöpikaruokaravintola" + }, "amenity/fast_food/kebab": { "name": "Kebabpikaruokaravintola" }, @@ -4208,6 +4288,9 @@ "name": "Internetkahvila", "terms": "nettikahvila, wlan, wifi" }, + "amenity/karaoke": { + "name": "Karaokekoppi" + }, "amenity/kindergarten": { "name": "Esikoulu", "terms": "eskari, leikkikoulu, koulu, nollaluokka, 0. luokka, 0 luokka, 0-luokka" @@ -4257,6 +4340,9 @@ "name": "Pysäköintitalo", "terms": "auto, parkki, parkkihalli, pysäköintialue, pysäköinti, parkki, parkkipaikka, pysäköintialue, parkkialue" }, + "amenity/parking/park_ride": { + "name": "Liityntäpysäköintialue" + }, "amenity/parking/underground": { "name": "Pysäköintiluola" }, @@ -4286,7 +4372,10 @@ "terms": "buddhalainen, stupa, pagoda, luostari, zendo, dojo, meditaatio" }, "amenity/place_of_worship/christian": { - "name": "Kristinusko, kirkko" + "name": "Kirkko" + }, + "amenity/place_of_worship/christian/jehovahs_witness": { + "name": "Jehovan todistajien valtakunnansali" }, "amenity/place_of_worship/hindu": { "name": "Hindutemppeli", @@ -4296,7 +4385,7 @@ "name": "Juutalaisuus, synagoga" }, "amenity/place_of_worship/muslim": { - "name": "Islam, moskeija" + "name": "Moskeija" }, "amenity/place_of_worship/shinto": { "name": "Šintolainen pyhäkkö", @@ -4317,6 +4406,10 @@ "name": "Poliisiasema", "terms": "Poliisi, Poliisiasema" }, + "amenity/polling_station": { + "name": "Pysyvä äänestyspaikka", + "terms": "äänestys, vaali, vaalit, äänestäminen, huoneisto, paikka, äänihuoneisto, vaalihuoneisto, uurna, äänestäjä" + }, "amenity/post_box": { "name": "Postilaatikko", "terms": "postilaatikko, postinlähetys, oranssi laatikko, kirjeenlähetys, posti, kirje, itella" @@ -4335,6 +4428,10 @@ "amenity/pub/lgbtq": { "name": "Seksuaalivähemmistöjen pubi" }, + "amenity/pub/microbrewery": { + "name": "Pienpanimopubi", + "terms": "pienpanimo,olut,kalja,viina,alkoholi" + }, "amenity/public_bath": { "name": "Kylpylaitos" }, @@ -4493,12 +4590,15 @@ "name": "WC", "terms": "vessa, käymälä, saniteetti, saniteettitila, sanitaatio, pisuaari, pönttö, wc-istuin, wc-pönttö, pesuhuone, pesuallas, tarpeet, uloste, ulostaminen, virtsa, virtsaaminen" }, + "amenity/toilets/disposal/flush": { + "name": "Vesivessa" + }, "amenity/townhall": { "name": "Kunnantalo", "terms": "kunnantalo, kaupungintalo, valtuusto," }, "amenity/university": { - "name": "Yliopistoalue" + "name": "Yliopistokampus" }, "amenity/vehicle_inspection": { "name": "Katsastusasema" @@ -4634,7 +4734,7 @@ "terms": "huvipuisto, elämyspuisto, laite, härveli, viikinki, merirosvo, laiva, vene, vimpain, vitkutin, huvilaite" }, "attraction/river_rafting": { - "name": "Vesilaite (huvipuisto)", + "name": "Huvipuiston vesilaite", "terms": "tukkijoki, koski, vesilaite, kastuminen, kastua, huvipuisto, huvilaite, elämyspuisto, joki, kanava, tukki" }, "attraction/roller_coaster": { @@ -4692,6 +4792,9 @@ "name": "Portti", "terms": "puomi, ovi" }, + "barrier/guard_rail": { + "name": "Keskikaide" + }, "barrier/hedge": { "name": "Pensasaita" }, @@ -4841,7 +4944,7 @@ "terms": "islamilainen, muslimi" }, "building/pavilion": { - "name": "Paviljonki" + "name": "Urheilurakennus" }, "building/public": { "name": "Julkinen rakennus" @@ -4994,7 +5097,7 @@ "name": "Kultaseppä" }, "craft/key_cutter": { - "name": "Lukkoseppä", + "name": "Avaimen kopiointi", "terms": "avain, lukko, avaimet, lukot, lukkoseppä, lukkoliike, avainliike, avainseppä" }, "craft/locksmith": { @@ -5261,12 +5364,28 @@ "highway/crossing/unmarked": { "name": "Merkitsemätön suojatie" }, + "highway/crossing/zebra": { + "name": "Maalattu suojatie" + }, + "highway/crossing/zebra-raised": { + "name": "Maalattu ja korotettu suojatie" + }, "highway/cycleway": { "name": "Pyörätie" }, "highway/cycleway/bicycle_foot": { "name": "Kävely- ja pyörätie" }, + "highway/cycleway/crossing": { + "name": "Pyörätien jatke" + }, + "highway/cycleway/crossing/marked": { + "name": "Maalattu pyörätien jatke", + "terms": "pyörätie,suojatie" + }, + "highway/cycleway/crossing/unmarked": { + "name": "Merkitsemätön pyörätien jatke" + }, "highway/elevator": { "name": "Hissi" }, @@ -5277,9 +5396,18 @@ "name": "Kävelytie", "terms": "jalankulkija, kävelijä, kävely, jalankulku, polku, reitti, väylä, tie" }, + "highway/footway/crossing": { + "name": "Suojatie" + }, + "highway/footway/marked": { + "name": "Maalattu suojatie" + }, "highway/footway/sidewalk": { "name": "Jalkakäytävä" }, + "highway/footway/unmarked": { + "name": "Merkitsemätön suojatie" + }, "highway/footway/zebra": { "name": "Merkitty suojatie" }, @@ -5417,7 +5545,7 @@ "name": "Saarekkeellinen kääntöpaikka" }, "highway/unclassified": { - "name": "Syrjätie/luokittelematon tie" + "name": "Sivutie" }, "historic": { "name": "Historiallinen paikka", @@ -5535,7 +5663,7 @@ "name": "Hautausmaa" }, "landuse/churchyard": { - "name": "Hautausmaa", + "name": "Kirkkomaa", "terms": "hautaaminen, vainaja, kuollut, ruumis, hautuumaa, hautaus, hauta, haudat" }, "landuse/commercial": { @@ -5562,7 +5690,7 @@ "name": "Autotallialue" }, "landuse/grass": { - "name": "Ruohokenttä", + "name": "Julkinen nurmikko", "terms": "ruoho, ruohikko, nurmikko, kenttä, ruohoalue, alue, kenttä" }, "landuse/greenfield": { @@ -5656,6 +5784,9 @@ "landuse/vineyard": { "name": "Viinitarha" }, + "landuse/winter_sports": { + "name": "Talviurheilualue" + }, "leisure": { "name": "Vapaa-aika" }, @@ -5690,10 +5821,16 @@ "name": "Tanssikoulu", "terms": "tanssiopisto" }, + "leisure/disc_golf_course": { + "name": "Frisbeegolfkenttä" + }, "leisure/dog_park": { "name": "Koirapuisto", "terms": "koira, koirat, koira-alue, koiranulkoilutusalue, koirahäkki, koirapuisto" }, + "leisure/escape_game": { + "name": "Pakopeli" + }, "leisure/firepit": { "name": "Nuotiopaikka", "terms": "nuotio, ruoanlaitto, ruoka, piste, grilli, grillaus, tulipiste, tulipesä, tuli" @@ -5713,6 +5850,12 @@ "name": "Ulkokuntosali", "terms": "ulko, ulkona, liikunta, urheilu, kuntoilu, kuntolaite, kuntoilulaite, lihaskunto, sali" }, + "leisure/fitness_station/horizontal_bar": { + "name": "Kuntoilutanko" + }, + "leisure/fitness_station/push-up": { + "name": "Punnerruspaikka" + }, "leisure/fitness_station/stairs": { "name": "Kuntoportaat" }, @@ -5791,6 +5934,12 @@ "leisure/pitch/equestrian": { "name": "Ratsastusareena" }, + "leisure/pitch/field_hockey": { + "name": "Maahockeykenttä" + }, + "leisure/pitch/horseshoes": { + "name": "Hevosenkenkien heittokenttä" + }, "leisure/pitch/netball": { "name": "Verkkopallokenttä" }, @@ -5853,6 +6002,9 @@ "leisure/stadium": { "name": "Stadion" }, + "leisure/swimming_area": { + "name": "Uimaranta" + }, "leisure/swimming_pool": { "name": "Uimahalli tai -allas", "terms": "uimahalli, uintikeskus, uimastadion, uima-allas, uinti, uiminen, maauimala, julkinen, ulkoilma, ulkoilma-allas, ulkoallas" @@ -5906,6 +6058,9 @@ "man_made/bridge": { "name": "Silta" }, + "man_made/cairn": { + "name": "Kiviröykkiö" + }, "man_made/chimney": { "name": "Savupiippu" }, @@ -5979,6 +6134,9 @@ "man_made/pipeline/underground": { "name": "Maanalainen putki" }, + "man_made/pipeline/valve": { + "name": "Putkilinjan venttiili" + }, "man_made/pumping_station": { "name": "Pumppaamo" }, @@ -5988,6 +6146,9 @@ "man_made/storage_tank": { "name": "Varastosäiliö" }, + "man_made/storage_tank/water": { + "name": "Vesisäiliö" + }, "man_made/surveillance": { "name": "Valvontakamera", "terms": "kamera, valvonta, poliisi, turva, turvallisuus, turvakamera, nauhoittava, tallentava, kameravalvonta" @@ -6047,6 +6208,15 @@ "manhole/drain": { "name": "Sadevesikaivo" }, + "military/bunker": { + "name": "Sotilasbunkkeri" + }, + "military/nuclear_explosion_site": { + "name": "Ydinräjäytyspaikka" + }, + "military/office": { + "name": "Sotilastoimisto" + }, "natural": { "name": "Luonto" }, @@ -6159,7 +6329,7 @@ "name": "Tekojärvi" }, "natural/water/river": { - "name": "Joki" + "name": "Joentörmä" }, "natural/water/stream": { "name": "Puro" @@ -6216,6 +6386,9 @@ "office/diplomatic/consulate": { "name": "Konsulaatti" }, + "office/diplomatic/embassy": { + "name": "Suurlähetystö" + }, "office/educational_institution": { "name": "Koulutushallinnon toimisto", "terms": "opetus, koulutus, hallinto, toimisto, konttori, koulu, oppilaitos" @@ -6234,6 +6407,9 @@ "office/financial": { "name": "Taloustoimisto" }, + "office/financial_advisor": { + "name": "Talousneuvonta" + }, "office/forestry": { "name": "Metsätalousvirasto" }, @@ -6380,7 +6556,7 @@ "name": "Aukio" }, "place/suburb": { - "name": "Esikaupunkikeskus" + "name": "Kaupunginosa / lähiö" }, "place/town": { "name": "Pieni kaupunki", @@ -6431,6 +6607,10 @@ "point": { "name": "Paikkapiste" }, + "polling_station": { + "name": "Väliaikainen äänestyspaikka", + "terms": "äänestys, vaali, vaalit, äänestäminen, huoneisto, paikka, äänihuoneisto, vaalihuoneisto, uurna, äänestäjä" + }, "power": { "name": "Sähkö" }, @@ -6643,6 +6823,9 @@ "railway/light_rail": { "name": "Pikaraitiotie" }, + "railway/milestone": { + "name": "Rautatien kilometritolppa" + }, "railway/miniature": { "name": "Pienoisrautatie" }, @@ -6800,6 +6983,9 @@ "name": "Autokorjaamo", "terms": "autokorjaamo, korjaamo, autohuolto, huolto, katsastus, autokatsastus, auto, autot, autoliike" }, + "shop/caravan": { + "name": "Asuntovaunukauppa" + }, "shop/carpet": { "name": "Mattokauppa" }, @@ -7017,6 +7203,9 @@ "shop/medical_supply": { "name": "Lääketarvikemyymälä" }, + "shop/military_surplus": { + "name": "Armeijan ylijäämämyymälä" + }, "shop/mobile_phone": { "name": "Matkapuhelinmyymälä" }, @@ -7076,6 +7265,9 @@ "shop/photo": { "name": "Valokuvausliike" }, + "shop/printer_ink": { + "name": "Tulostinmustemyymälä" + }, "shop/pyrotechnics": { "name": "Ilotulitemyymälä", "terms": "ilotulite, ilotulitus, raketti, kauppa, liike, myymälä, puoti, myyntipiste, uusi, vuosi, uusivuosi, raketin, raketinammunta" @@ -7277,6 +7469,9 @@ "name": "Matkailuneuvonta", "terms": "info, turismi, matkailu, turisti, neuvonta" }, + "tourism/information/terminal": { + "name": "Opastuspääte" + }, "tourism/motel": { "name": "Motelli" }, @@ -7341,6 +7536,12 @@ "traffic_sign/city_limit_vertex": { "name": "Taajamaliikennemerkki" }, + "traffic_sign/maxspeed": { + "name": "Nopeusrajoitusliikennemerkki" + }, + "traffic_sign/maxspeed_vertex": { + "name": "Nopeusrajoitusliikennemerkki" + }, "traffic_sign_vertex": { "name": "Liikennemerkki" }, @@ -7380,6 +7581,9 @@ "type/restriction/only_straight_on": { "name": "Pakollinen ajosuunta suoraan" }, + "type/restriction/only_u_turn": { + "name": "Vain u-käännökset" + }, "type/route": { "name": "Reitti", "terms": "matkareitti, rengasreitti, lenkki, kulkuohjeet, ohjaus, reititys, navigointi, kurssi, traili" @@ -7507,14 +7711,15 @@ "attribution": { "text": "Käyttöehdot ja palaute" }, - "description": "Kansainväliset Esri-sateliittikuvat", - "name": "Kansainväliset Esri-sateliittikuvat" + "description": "Kansainväliset Esri-satelliittikuvat", + "name": "Kansainväliset Esri-satelliittikuvat" }, "EsriWorldImageryClarity": { "attribution": { "text": "Käyttöehdot ja palaute" }, - "description": "Esrin arkistokuvat voivat olla oletustaustakuvaa selkeämpiä ja tarkempia." + "description": "Esrin arkistokuvat voivat olla oletustaustakuvaa selkeämpiä ja tarkempia.", + "name": "Kansainväliset Esri-satelliittikuvat (Clarity)" }, "MAPNIK": { "attribution": { @@ -7530,6 +7735,18 @@ "description": "Satelliitti- ja ilmakuvat", "name": "Mapbox-satelliittikuvat" }, + "Maxar-Premium": { + "attribution": { + "text": "Käyttöehdot ja palaute" + }, + "name": "Maxar Premium -ilmakuvat (beta)" + }, + "Maxar-Standard": { + "attribution": { + "text": "Käyttöehdot ja palaute" + }, + "name": "Maxar Standard -ilmakuvat (beta)" + }, "OSM_Inspector-Addresses": { "attribution": { "text": "© OpenStreetMapin tekijät, CC-BY-SA" @@ -7648,17 +7865,22 @@ }, "lantmateriet-orto1960": { "attribution": { - "text": "© Maanmittauslaitos, CC0" + "text": "© Ruotsin maanmittauslaitos, CC0" }, "description": "Mosaiikkiortokuva Ruotsista vuosilta 1955–1965. Aineistossa saattaa olla myös uudempia ja vanhempia kuvia.", - "name": "Maanmittauslaitoksen historiallinen ortokuva 1960" + "name": "Ruotsin maanmittauslaitoksen historiallinen ortokuva 1960" }, "lantmateriet-orto1975": { "attribution": { - "text": "© Maanmittauslaitos, CC0" + "text": "© Ruotsin maanmittauslaitos, CC0" }, "description": "Mosaiikkiortokuva Ruotsista vuosilta 1970–1980, keskeneräinen", - "name": "Maanmittauslaitoksen historiallinen ortokuva 1975" + "name": "Ruotsin maanmittauslaitoksen historiallinen ortokuva 1975" + }, + "lantmateriet-topowebb": { + "attribution": { + "text": "© Ruotsin maanmittauslaitos, CC0" + } }, "linkoping-orto": { "description": "Avoimen datan ortokuvat Linköpingin kunnasta vuodelta 2010", @@ -7701,7 +7923,7 @@ "text": "© Lantmäteriet" }, "description": "Digitoitu talouskartta vuosilta 1950–1980", - "name": "Maanmittauslaitoksen talouskartta 1950–1980" + "name": "Ruotsin maanmittauslaitoksen talouskartta 1950–1980" }, "qa_no_address": { "attribution": { @@ -7748,35 +7970,35 @@ "text": "© Trafikverket, CC0" }, "description": "Ruotsin rataverkko mukautettavilla asetusvalinnoilla", - "name": "Liikenneviraston rataverkon asetukset" + "name": "Ruotsin liikenneviraston rataverkon asetukset" }, "trafikverket-vagnat": { "attribution": { - "text": "© Liikennevirasto, CC0" + "text": "© Ruotsin liikennevirasto, CC0" }, "description": "Ruotsin kansallinen tiestötietokanta", - "name": "Liikenneviraston tieverkko" + "name": "Ruotsin liikenneviraston tieverkko" }, "trafikverket-vagnat-extra": { "attribution": { - "text": "© Liikennevirasto, CC0" + "text": "© Ruotsin liikennevirasto, CC0" }, "description": "Ruotsin kansallinen tiestötietokanta laajennettuna: valtatienumerointi, hidasteet, pysähdysalueet, linja-autopysäkit, sillat, tunnelit ja liikenteenvalvontakamerat", - "name": "Liikenneviraston laajennettu tieverkko" + "name": "Ruotsin liikenneviraston laajennettu tieverkko" }, "trafikverket-vagnat-navn": { "attribution": { - "text": "© Liikennevirasto, CC0" + "text": "© Ruotsin liikennevirasto, CC0" }, "description": "Ruotsin kansallisen tiestötietokannan nimistö", - "name": "Liikenneviraston kadunnimikartta" + "name": "Ruotsin liikenneviraston kadunnimikartta" }, "trafikverket-vagnat-option": { "attribution": { - "text": "© Liikennevirasto, CC0" + "text": "© Ruotsin liikennevirasto, CC0" }, "description": "Ruotsin kansallinen tiestötietokanta mukautettavilla asetusvalinnoilla", - "name": "Liikenneviraston tieverkon asetukset" + "name": "Ruotsin liikenneviraston tieverkon asetukset" } }, "community": { diff --git a/dist/locales/fr.json b/dist/locales/fr.json index d28a0154b2..b0f2ca2025 100644 --- a/dist/locales/fr.json +++ b/dist/locales/fr.json @@ -10513,10 +10513,6 @@ "ym-Universidad-Nacional-Autnoma-de-Honduras": { "description": "Chapitre YouthMappers à l'Université Nationale Autonome du Honduras" }, - "OSM-NI-telegram": { - "name": "OSM Nicaragua sur Telegram", - "description": "Chat Telegram d'OpenStreetMap Nicaragua" - }, "ym-University-of-Panama": { "name": "YouthMappers UP", "description": "Chapitre YouthMappers à l'Université du Panama" diff --git a/dist/locales/gl.json b/dist/locales/gl.json index 89aecbb3b8..9c806ea6c1 100644 --- a/dist/locales/gl.json +++ b/dist/locales/gl.json @@ -5244,6 +5244,10 @@ "barrier/retaining_wall": { "name": "Muro de contención" }, + "barrier/sally_port": { + "name": "Poterna", + "terms": "poterna, porta lateral do castelo, porta esclusa, porta de seguridade, porta de seguranza, porta de castelo, porta castelo, poterna castelo" + }, "barrier/stile": { "name": "Escada", "terms": "escada, escaleira, valado, cerca, reixa" @@ -6847,6 +6851,10 @@ "power/generator": { "name": "Xerador de enerxía" }, + "power/generator/method/photovoltaic": { + "name": "Panel solar", + "terms": "módulo fotovoltaico, FV, PV, luz solar, solar, panel" + }, "power/generator/source/wind": { "name": "Turbina eólica" }, @@ -7515,6 +7523,10 @@ "name": "Bandas sonoras", "terms": "bandas reductoras de velocidade, bandas sonoras" }, + "traffic_calming/table": { + "name": "Redutor de velocidade", + "terms": "redutor de velocidade ancho, lomo de burro, lomada, velocidade, lento, lombo, badén, baden, lomba, lombada" + }, "traffic_sign": { "name": "Sinal de tráfico" }, diff --git a/dist/locales/he.json b/dist/locales/he.json index 935211bfd4..e826a5bb02 100644 --- a/dist/locales/he.json +++ b/dist/locales/he.json @@ -10137,10 +10137,6 @@ "name": "ערוץ הטלגרם של OSM קובה", "description": "הטלגרם של OpenStreetMap קובה" }, - "OSM-NI-telegram": { - "name": "ערוץ הטלגרם של OSM ניקרגואה", - "description": "הטלגרם של OpenStreetMap ניקרגואה" - }, "Bay-Area-OpenStreetMappers": { "name": "ממפי OpenStreetMap באזור מפרץ סן פרנסיסקו", "description": "שיפור OpenStreetMap באזור מפרץ סן פרנסיסקו", diff --git a/dist/locales/hu.json b/dist/locales/hu.json index a7559b99b5..0b03d50bad 100644 --- a/dist/locales/hu.json +++ b/dist/locales/hu.json @@ -83,7 +83,7 @@ "add": { "annotation": { "point": "Pont hozzáadva.", - "vertex": "Pont hozzáadva a vonalhoz.", + "vertex": "Pont hozzáadva vonalhoz.", "relation": "Kapcsolat hozzáadva.", "note": "Hozzáadott egy megjegyzést." } @@ -218,6 +218,9 @@ "delete_member": { "annotation": "Egy tag eltávolítva a kapcsolatból" }, + "reorder_members": { + "annotation": "Egy kapcsolat tagjainak újrarendezése." + }, "connect": { "annotation": { "from_vertex": { @@ -241,9 +244,19 @@ "disconnect": { "title": "Szétválasztás", "description": "Vonalak/területek szétválasztása egymástól.", + "line": { + "description": "Vonal leválasztása más elemektől." + }, + "area": { + "description": "Terület leválasztása más elemektől." + }, "key": "D", "annotation": "Vonalak/területek szétválasztva.", + "too_large": { + "single": "Nem lehet leválasztani, mert nem látszik az egész alakzat." + }, "not_connected": "Nincsenek szétválasztható vonalak/területek.", + "not_downloaded": "Nem törölhető, mert nem lett teljesen letöltve.", "connected_to_hidden": "Nem választható szét, mert egy rejtett elemhez csatlakozik.", "relation": "Nem választható szét, mert egy kapcsolat tagjait köti össze." }, @@ -472,7 +485,7 @@ "title": "Feltöltés az OpenStreetMapre", "upload_explanation": "Az általad feltöltött változtatások minden OpenStreetMapet használó térképen láthatóak lesznek.", "upload_explanation_with_user": "Az általad {user} néven feltöltött változtatások minden OpenStreetMapet használó térképen láthatóak lesznek.", - "request_review": "Szeretném ha valaki ellenőrizné a szerkesztéseimet.", + "request_review": "Szeretném, ha valaki ellenőrizné a szerkesztéseimet.", "save": "Feltöltés", "cancel": "Mégsem", "changes": "{count} módosítás", @@ -623,7 +636,10 @@ "way": "Út", "relation": "Kapcsolat", "location": "Pozíció", - "add_fields": "Mező hozzáadása:" + "add_fields": "Mező hozzáadása:", + "lock": { + "suggestion": "A \"{label}\" mező zárolva van, mert van hozzá Wikidata címke. Törölhető, vagy a címkék szerkeszthetők a \"Minden címke\" szakaszban." + } }, "background": { "title": "Háttér", @@ -721,6 +737,10 @@ "description": "Épületek", "tooltip": "Épületek, menhelyek, garázsok, stb." }, + "building_parts": { + "description": "Épületrész", + "tooltip": "3D épület és tető összetevők" + }, "indoor": { "description": "Beltéri elemek", "tooltip": "Szobák, folyosók, lépcsők, stb." @@ -839,7 +859,7 @@ "format": "{place}{separator}{region}", "separator": ", " }, - "help_html": "Módosításaid pár percen belül meg kell, hogy jelenjenek az OpenStreetMap felületén. Más térképeken a frissítéshez hosszabb idő kell.", + "help_html": "Módosításaidnak pár perc kell, hogy megjelenjenek az OpenStreetMap felületén. Más térképeken a frissítésekig hosszabb idő szükséges.", "help_link_text": "Részletek", "help_link_url": "https://wiki.openstreetmap.org/wiki/Hu:FAQ#V.C3.A1ltoztat.C3.A1sokat_eszk.C3.B6z.C3.B6ltem_a_t.C3.A9rk.C3.A9pen.2C_hogyan_l.C3.A1thatom_ezeket.3F", "view_on_osm": "Változtatások megtekintése OSM-en", @@ -1466,7 +1486,7 @@ "hidden_issues": { "none": "Az észlelt problémák itt fognak megjelenni", "elsewhere": "Problémák máshol: {count}", - "disabled_rules": "Problémák száma a kikapcsolt szabályokkal: {count}", + "disabled_rules": "Problémák száma a kikapcsolt szabályoknál: {count}", "ignored_issues": "Hanyagolt problémák: {count}", "ignored_issues_elsewhere": "Hanyagolt problémák máshol: {count}" } @@ -1475,7 +1495,7 @@ "what": { "title": "Ellenőrzés:", "edited": "Szerkesztéseim", - "all": "Minden" + "all": "Mindenkié" }, "where": { "title": "Hol:", @@ -1485,7 +1505,7 @@ }, "suggested": "Javasolt frissítések:", "enable_all": "Mindent engedélyez", - "disable_all": "Mindent tilt", + "disable_all": "Mindent kikapcsol", "reset_ignored": "Hanyagolt problémák nullázása ({count})", "fix_one": { "title": "javít" @@ -1501,6 +1521,8 @@ "close_nodes": { "title": "Nagyon közeli pontok", "tip": "Olyan pontok keresése, amik valószínűleg ugyanazt írják le.", + "message": "Két pont itt: {way}  nagyon közel van egymáshoz.", + "reference": "A túl közeli pontokat vagy összevonni vagy elmozgatni szükséges.", "detached": { "message": "{feature} nagyon közel van ehhez: {feature2}" } @@ -1529,7 +1551,10 @@ } }, "disconnected_way": { - "title": "Szétkapcsolt utak" + "title": "Szétkapcsolt utak", + "highway": { + "message": "{highway} nem kapcsolódik más úthoz" + } }, "fixme_tag": { "title": "\"Javíts ki\" kérés", @@ -1567,7 +1592,8 @@ } }, "missing_role": { - "title": "Hiányzó szerep" + "title": "Hiányzó szerep", + "tip": "Olyan kapcsolatok keresése, ahol hiányzik vagy hibás egy tag szerepe." }, "missing_tag": { "title": "Hiányzó címke", @@ -1609,6 +1635,7 @@ }, "impossible_oneway": { "title": "Lehetetlen egyirányú út", + "tip": "Egyirányú úttal kapcsolatos problémák", "highway": { "start": { "message": "{feature} elérhetetlen", @@ -1631,6 +1658,9 @@ "connect_feature": { "title": "Elem összekötése" }, + "connect_features": { + "title": "Elemek összekötése" + }, "continue_from_start": { "title": "Rajzolás folytatása a kezdettől" }, @@ -1673,6 +1703,19 @@ "remove_tags": { "title": "A címkék eltávolítása" }, + "reposition_features": { + "title": "Elemek áthelyezése" + }, + "select_preset": { + "title": "Elemtípus kiválasztása" + }, + "select_road_type": { + "title": "Úttípus kiválasztása" + }, + "tag_as_disconnected": { + "title": "Szétkapcsoltnak jelölöm", + "annotation": "Közeli elemek szétkapcsoltnak jelölve." + }, "upgrade_tags": { "title": "Címke frissítése", "annotation": "Régi címkék frissítve." @@ -4582,7 +4625,7 @@ "terms": "vécé, illemhely, toalett, klotyó, árnyékszék, budi, pottyantós" }, "amenity/toilets/disposal/flush": { - "name": "WC" + "name": "WC (öblítéses)" }, "amenity/toilets/disposal/pitlatrine": { "name": "Árnyékszék" @@ -4625,7 +4668,7 @@ "name": "Ételárusító automata" }, "amenity/vending_machine/fuel": { - "name": "Benzinkút" + "name": "Benzinautomata" }, "amenity/vending_machine/ice_cream": { "name": "Jégkrém árusító automata" @@ -4774,7 +4817,7 @@ "terms": "bicikliakadály" }, "barrier/ditch": { - "name": "Árok", + "name": "Árok (akadály)", "terms": "árok, gödör" }, "barrier/entrance": { @@ -6235,7 +6278,7 @@ "name": "Víztartály" }, "man_made/surveillance": { - "name": "Térfigyelő kamera", + "name": "Térfigyelő eszköz vagy őrség", "terms": "biztonsági kamera, CCTV, zártláncú kamera" }, "man_made/surveillance/camera": { @@ -7764,7 +7807,7 @@ "terms": "vízerőmű, tározó, víztározó, gát" }, "waterway/ditch": { - "name": "Árok", + "name": "Árok (vízelvezető)", "terms": "árok, vízelvezető" }, "waterway/dock": { diff --git a/dist/locales/it.json b/dist/locales/it.json index 7e98b2b07d..ce9d959d59 100644 --- a/dist/locales/it.json +++ b/dist/locales/it.json @@ -2463,6 +2463,15 @@ "access_simple": { "label": "Accesso consentito" }, + "addr/interpolation": { + "label": "Tipo", + "options": { + "all": "Tutti", + "alphabetic": "Alfabetico", + "even": "Pari", + "odd": "Dispari" + } + }, "address": { "label": "Indirizzo", "placeholders": { @@ -2653,6 +2662,10 @@ "building": { "label": "Edificio" }, + "building/levels/underground": { + "label": "Piani sotterranei", + "placeholder": "2, 4, 6..." + }, "building/levels_building": { "label": "Piani dell’edificio", "placeholder": "2, 4, 6..." @@ -3170,6 +3183,12 @@ "undefined": "No" } }, + "iata": { + "label": "Codice aeroportuale IATA" + }, + "icao": { + "label": "Codice aeroportuale ICAO" + }, "incline": { "label": "Pendenza" }, @@ -3496,6 +3515,9 @@ "operator": { "label": "Operatore" }, + "operator/type": { + "label": "Tipo operatore" + }, "outdoor_seating": { "label": "Seduta all'aperto" }, @@ -3670,6 +3692,9 @@ "product": { "label": "Prodotti" }, + "public_bookcase/type": { + "label": "Tipo" + }, "railway": { "label": "Tipo" }, @@ -7399,7 +7424,7 @@ }, "place/village": { "name": "Villaggio", - "terms": "Frazione" + "terms": "Paese,villaggio,frazione" }, "playground": { "name": "Giochi" @@ -9740,10 +9765,6 @@ "name": "OSM di Cuba su Telegram", "description": "La chat su Telegram di OpenStreetMap di Cuba" }, - "OSM-NI-telegram": { - "name": "OSM Nicaragua su Telegram", - "description": "La chat su Telegram di OpenStreetMap del Nicaragua" - }, "Bay-Area-OpenStreetMappers": { "name": "OpenStreetMappers a Bay Area", "description": "Migliora OpenStreetMap a Bay Area", diff --git a/dist/locales/ja.json b/dist/locales/ja.json index 3abb0fdd0e..6e2ba6b871 100644 --- a/dist/locales/ja.json +++ b/dist/locales/ja.json @@ -8604,6 +8604,10 @@ "name": "写真店", "terms": "写真屋, 写真店, 現像, ビデオ, デジカメ" }, + "shop/printer_ink": { + "name": "プリンタ用インク店", + "terms": "プリンタ用インク店, プリンタ, インクカートリッジ, トナー" + }, "shop/pyrotechnics": { "name": "花火店", "terms": "花火店" @@ -10685,10 +10689,26 @@ "description": "YouthMappers chapter at University of the West Indies, Mona Campus", "extendedDescription": "The UWI, Mona Campus Library engages in public, outreach and special projects. This will allow our library the means to be a catalyst for spatial literacy and advocate for spatial data sharing and access to Jamaican and Caribbean interests. We have disaster relief and communication needs and extensive earth science and geo-hazards needs to better serve our campus and community. Specifically, we hace a Science Library to showcase such to all faculty and students." }, - "OSM-NI-telegram": { + "ni-facebook": { + "name": "OpenStreetMap NI Community", + "description": "Mappers and OpenStreetMap on Facebook in Nicaragua" + }, + "ni-mailinglist": { + "name": "Talk-ni Mailing List", + "description": "Talk-ni is the official mailing list for the Nicaraguan OSM community" + }, + "ni-telegram": { "name": "OSM Nicaragua on Telegram", "description": "OpenStreetMap Nicaragua Telegram chat" }, + "ni-twitter": { + "name": "OpenStreetMap Nicaragua Twitter", + "description": "OSM Nicaragua on Twitter: @osm_ni" + }, + "osm-ni": { + "name": "MapaNica.net", + "description": "Provide OSM services and information for the local community in Nicaragua" + }, "ym-Universidad-Nacional-de-Ingenieria": { "name": "Yeka Street MGA", "description": "YouthMappers chapter at Universidad Nacional de Ingenieria", diff --git a/dist/locales/ko.json b/dist/locales/ko.json index 876e359bcc..41bdadf531 100644 --- a/dist/locales/ko.json +++ b/dist/locales/ko.json @@ -7926,10 +7926,6 @@ "name": "오픈스트리트맵 쿠바 텔레그램", "description": "오픈스트리트맵 쿠바 텔레그램 대화방" }, - "OSM-NI-telegram": { - "name": "오픈스트리트맵 니카라과 텔레그램", - "description": "오픈스트리트맵 니카라과 텔레그램 대화방" - }, "Bay-Area-OpenStreetMappers": { "description": "베이에어리어 내 오픈스트리트맵 개선하기" }, diff --git a/dist/locales/lv.json b/dist/locales/lv.json index 948b098f2f..9dc418240d 100644 --- a/dist/locales/lv.json +++ b/dist/locales/lv.json @@ -4619,10 +4619,6 @@ "name": "OSM Kubas Telegram", "description": "OpenStreetMap Kubas Telegram čats" }, - "OSM-NI-telegram": { - "name": "OSM Nikaragva Telegrammā", - "description": "OpenStreetMap Nikaragvas Telegram čats" - }, "Bay-Area-OpenStreetMappers": { "name": "Līča rajona OpenStreetMappers", "description": "Uzlabo OpenStreetMap Sanfrancisko līča rajonā." diff --git a/dist/locales/mk.json b/dist/locales/mk.json index 5889851507..c4019db5e2 100644 --- a/dist/locales/mk.json +++ b/dist/locales/mk.json @@ -7127,6 +7127,9 @@ "shop/photo": { "name": "Фотографски дуќан" }, + "shop/printer_ink": { + "name": "Продавница за печатарска боја" + }, "shop/pyrotechnics": { "name": "Продавница за огномет" }, @@ -8333,10 +8336,6 @@ "name": "OSM Куба на Telegram", "description": "Разговори на OpenStreetMap Куба на Telegram" }, - "OSM-NI-telegram": { - "name": "OSM Никарагва на Telegram", - "description": "Разговори на OpenStreetMap Никарагва на Telegram" - }, "MaptimeHRVA-twitter": { "name": "MaptimeHRVA на Twitter", "description": "Следете нè на Twitter на {url}" diff --git a/dist/locales/nl.json b/dist/locales/nl.json index 606acedd80..a2d914fbe4 100644 --- a/dist/locales/nl.json +++ b/dist/locales/nl.json @@ -8930,10 +8930,6 @@ "name": "OSM Cuba op Telegram", "description": "OpenStreetMap Cuba Telegram-chat" }, - "OSM-NI-telegram": { - "name": "OSM Nicaragua op Telegram", - "description": "OpenStreetMap Nicaragua Telegram-chat" - }, "Bay-Area-OpenStreetMappers": { "name": "Bay Area OpenStreetMappers", "description": "Verbeter OpenStreetMap in de Bay Area" diff --git a/dist/locales/pl.json b/dist/locales/pl.json index afb3f71291..f898dede00 100644 --- a/dist/locales/pl.json +++ b/dist/locales/pl.json @@ -10346,10 +10346,6 @@ "name": "OSM Kuba na Telegramie", "description": "Kanał OpenStreetMap Kuba na Telegramie" }, - "OSM-NI-telegram": { - "name": "OSM Nikaragua na Telegramie", - "description": "Kanał OpenStreetMap Nikaragua na Telegramie" - }, "ym-Universidad-Nacional-de-Ingenieria": { "name": "Yeka Street MGA" }, diff --git a/dist/locales/pt-BR.json b/dist/locales/pt-BR.json index ec9b256eb6..87cb515707 100644 --- a/dist/locales/pt-BR.json +++ b/dist/locales/pt-BR.json @@ -8595,6 +8595,10 @@ "name": "Loja de Fotografia", "terms": "Loja de Fotografia, Foto, Produtos fotográficos" }, + "shop/printer_ink": { + "name": "Loja de tinta de impressora", + "terms": "Loja de tinta de impressora" + }, "shop/pyrotechnics": { "name": "Loja de Fogos de Artifício", "terms": "loja de fogos de artifício" @@ -9652,8 +9656,14 @@ "name": "Mapeando Botsuana no Twitter", "description": "Twitter do OpenStreetMap no Botsuana" }, + "ym-Centre-Universitaire-de-Recherche-et-dApplication-en-Tldtection-CURAT-de-lUniversit-Felix-Houphouet-Boigny": { + "name": "YouthMappers CURAT" + }, + "ym-The-Gambia-YMCA-University-of-the-Gambia": { + "name": "YouthMappers conectado" + }, "cape-coast-youthmappers": { - "name": "Universidade de Cape Coast YouthMappers", + "name": "YouthMappers da Universidade de Cape Coast", "description": "Siga-nos no Twitter: {url}", "extendedDescription": "Esta é a descrição oficial do capítulo Youth Mappers da Universidade de Cape Coast, no Gana. adoramos mapas, os dados abertos e ajudar os mais vulneráveis." }, @@ -9670,6 +9680,12 @@ "name": "Lista de Discussão Talk-gh", "description": "Talk-gh é a lista de discussão oficial para a comunidade OSM de Gana" }, + "ym-Kwame-Nkrumah-University-of-Science-and-Technology": { + "description": "YouthMappers na Universidade de Ciência e Tecnologia de Kwame Nkrumah" + }, + "ym-Dedan-Kimathi-University-of-Technology": { + "name": "GDEV" + }, "osm-mg-facebook": { "name": "Grupo OpenStreetMap Madagascar no Facebook", "description": "Grupo malgaxe no Facebook para pessoas interessadas no OpenStreetMap." @@ -10089,10 +10105,6 @@ "name": "OSM Cuba no Telegram", "description": "Bate-papo do OpenStreetMap Cuba no Telegram" }, - "OSM-NI-telegram": { - "name": "OSM Nicarágua no Telegram", - "description": "Bate-papo do OpenStreetMap Nicarágua no Telegram" - }, "Bay-Area-OpenStreetMappers": { "name": "OpenStreetMappers da Bay Area", "description": "Melhorar o OpenStreetMap na Área da Baía", @@ -10184,6 +10196,9 @@ "PHXGeo-twitter": { "description": "Siga-nos no Twitter em {url}" }, + "ym-Western-Michigan-University": { + "name": "Clube de Geografia" + }, "talk-au": { "name": "Lista de Discussão Talk-au" }, @@ -10198,7 +10213,8 @@ }, "OSM-AR-irc": { "name": "IRC OpenStreetMap Argentina", - "description": "Junte-se à #osm-ar no irc.oftc.net (porta 6667)" + "description": "Junte-se à #osm-ar no irc.oftc.net (porta 6667)", + "extendedDescription": "Você pode encontrar o usuário mais nerd da comunidade." }, "OSM-AR-mailinglist": { "name": "Lista de Discussão Talk-ar", @@ -10267,6 +10283,9 @@ "name": "Twitter OpenStreetMap Chile", "description": "Siga-nos no Twitter em {url}" }, + "Maptime-Bogota": { + "name": "Horário de Bogotá" + }, "OSM-CO-facebook": { "description": "Junte-se à comunidade OpenStreetMap Colômbia no Facebook", "extendedDescription": "Entre na comunidade para aprender mais sobre o OpenStreetMap. Todos são bem-vindos!" @@ -10286,6 +10305,9 @@ "OSM-CO": { "name": "OpenStreetMap Colômbia" }, + "ym-Universidad-de-Los-Andes": { + "description": "YouthMappers na Universidade de Los Andes" + }, "OSM-EC-telegram": { "name": "OSM Equador no Telegram", "description": "Bate-papo do OpenStreetMap Equador no Telegram" diff --git a/dist/locales/pt.json b/dist/locales/pt.json index 3195f559d4..18863c8152 100644 --- a/dist/locales/pt.json +++ b/dist/locales/pt.json @@ -10231,10 +10231,6 @@ "name": "OSM Cuba no Telegram", "description": "Chat telegram OpenStreetMap Cuba" }, - "OSM-NI-telegram": { - "name": "OSM Nicarágua no Telegram", - "description": "Chat telegram OpenStreetMap Nicaráguaa" - }, "Bay-Area-OpenStreetMappers": { "name": "OpenStreetMappers de Bay", "description": "Melhorar o OpenStreetMap na área de Bay", diff --git a/dist/locales/ru.json b/dist/locales/ru.json index ab61a0722c..befd54fc54 100644 --- a/dist/locales/ru.json +++ b/dist/locales/ru.json @@ -206,9 +206,9 @@ "downgrade": { "title": "Понизить", "description": { - "building_address": "Удалить все тэги, кроме адреса и здания.", - "building": "Удалить все тэги, кроме здания.", - "address": "Удалить все тэги, кроме адреса." + "building_address": "Удалить все теги, кроме адреса и здания.", + "building": "Удалить все теги, кроме здания.", + "address": "Удалить все теги, кроме адреса." }, "annotation": { "building": { @@ -874,7 +874,7 @@ "error": "Во время сохранения произошла ошибка", "status_code": "Получен ответ сервера с кодом {code}", "unknown_error_details": "Проверьте наличие подключения к Интернету.", - "uploading": "Передать изменения на сервер OpenStreetMap...", + "uploading": "Отправка изменений на сервер OpenStreetMap.", "conflict_progress": "Проверка на наличие конфликов: {num} из {total}", "unsaved_changes": "У вас есть несохранённые изменения", "conflict": { @@ -975,7 +975,7 @@ "title": "Пропущена геометрия" }, "tr": { - "title": "Отсутствует запрет манёвра" + "title": "Отсутствует ограничение поворота" } } }, @@ -1037,7 +1037,8 @@ }, "errorTypes": { "30": { - "title": "Незаконченный полигон" + "title": "Незаконченный полигон", + "description": "{var1} отмечено как \"{var2}\" и должна быть закольцована." }, "40": { "title": "Некорректное указание односторонней дороги", @@ -1060,22 +1061,131 @@ "description": "{var1} использует устаревший тег \"{var2}\". Пожалуйста, используйте \"{var3}\"." }, "70": { - "title": "Пропущен тег" + "title": "Пропущен тег", + "description": "У {var1} есть пустой тег: \"{var2}\"." + }, + "71": { + "description": "У {var1} нет тегов." }, "72": { "description": "{var1} не является участником линии и не имеет тегов." }, + "73": { + "description": "У {var1} есть тег \"{var2}\", но нет тега \"highway\"" + }, + "74": { + "description": "У {var1} есть пустой тег: \"{var2}\"." + }, + "75": { + "description": "У {var1} есть наименование \"{var2}\", но нет других тегов." + }, + "90": { + "title": "Шоссе без тега ref.", + "description": "{var1} отмечено как шоссе и один из тегов \"ref\", \"nat_ref\", \"int_ref\" обязателен." + }, + "100": { + "title": "Место поклонения без указания религии.", + "description": "{var1} отмечено как место поклонения и требует тега \"religion\"." + }, + "110": { + "title": "Точка интереса без имени", + "description": "{var1} отмечено как \"{var2}\" и требует тега наименования." + }, + "120": { + "title": "Линия без точек", + "description": "{var1} имеет только один узел." + }, + "130": { + "title": "Разъединенная линия.", + "description": "{var1} не соединён с остальной картой." + }, + "150": { + "title": "Железнодорожный переезд без тэга", + "description": "{var1} шоссе и железной дороги должно быть отмечено как \"railway=crossing\" или \"railway=level_crossing\"." + }, + "160": { + "title": "Конфликт уровней железных дорог", + "description": "Пути разных уровней (мосты или туннели) встречаются в {var1}." + }, + "170": { + "title": "Позиция отмечена тэгом \"Исправь меня\"", + "description": "{var1} имеет тег FIXME: {var2}" + }, + "180": { + "title": "Отношение без типа", + "description": "У {var1} должен быть тег \"type\"." + }, + "190": { + "description": "{var1} пересекает {var2} и {var3}, но нет точки соединения, моста или туннеля." + }, + "210": { + "title": "Самопересекающаяся линия", + "description": "С путями, пересекающими самих себя, есть проблема." + }, + "211": { + "description": "{var1} содержит узлы более одного раза. Узлы: {var2}. Это может быть, а может и не быть ошибкой." + }, + "212": { + "description": "{var1} содержит только 2 различных узлы и один из них повторяется." + }, "220": { - "title": "Опечатка в теге" + "title": "Опечатка в теге", + "description": "{var1} отмечено как \"{var2}\". \"{var3}\" может быть \"{var4}\"." + }, + "221": { + "description": "{var1} имеет подозрительный тег \"{var2}\"." }, "230": { - "title": "Конфликт слоёв" + "title": "Конфликт слоёв", + "description": "{var1} является соединением путей с разных слоёв." + }, + "231": { + "description": "{var1} является соединением путей с разных слоёв: {var2}.", + "layer": "(слой: {layer})" + }, + "232": { + "description": "{var1} отмечено как \"layer={var2}\". Это не ошибка, но выглядит странно." + }, + "270": { + "title": "Нестандартное соединение шоссе." + }, + "281": { + "description": "{var1} не имеет наименования." + }, + "290": { + "title": "Проблема с ограничением.", + "description": "С этим ограничением связана невыясненная проблема." + }, + "291": { + "title": "Пропущен тип ограничения", + "description": "{var1} имеет непонятный тип." }, "298": { "title": "Избыточное ограничение - односторонняя дорога" }, + "312": { + "title": "Неправильное направление на кольцевой развязке" + }, + "400": { + "title": "Проблема геометрии" + }, "401": { "title": "Отсутствует запрет манёвра" + }, + "402": { + "title": "Некорректный угол" + }, + "410": { + "title": "Проблема с веб-сайтом" + }, + "411": { + "description": "Возможно, {var1} содержит несуществующий URL: {var2} вернул HTTP {var3}." + }, + "412": { + "description": "Возможно, {var1} содержит несуществующий URL: {var2} содержит подозрительные слова \"{var3}\"." + }, + "413": { + "description": "Возможно, {var1} содержит несуществующий URL: {var2} не содержит ключевых слов \"{var3}\"." } } } @@ -1090,12 +1200,17 @@ "tooltip": "Уличные фото и панорамы от Mapillary" }, "mapillary": { + "title": "Mapillary", + "signs": { + "tooltip": "Дорожные знаки из Mapillary" + }, "view_on_mapillary": "Посмотреть это изображение на Mapillary" }, "openstreetcam_images": { "tooltip": "Уличные фото из OpenStreetCam" }, "openstreetcam": { + "title": "OpenStreetCam ", "view_on_openstreetcam": "Посмотреть это изображение на OpenStreetCam" }, "note": { @@ -1301,6 +1416,7 @@ }, "qa": { "title": "Контроль качества", + "tools_h": "Инструменты", "issues_h": "Обработка проблем" }, "field": { @@ -1345,6 +1461,12 @@ "issues": { "title": "Проблемы", "list_title": "Проблемы ({count})", + "errors": { + "list_title": "Ошибок ({count}) " + }, + "warnings": { + "list_title": "Предупрежденя ({count})" + }, "rules": { "title": "Правила" }, @@ -1358,10 +1480,12 @@ }, "options": { "what": { + "title": "Проверять:", "edited": "Мои изменения", "all": "Все" }, "where": { + "title": "Где:", "visible": "При просмотре", "all": "Везде" } @@ -1371,14 +1495,35 @@ "fix_all": { "title": "Исправить все" }, + "close_nodes": { + "title": "Очень Близкие Точки", + "message": "Две точки в {way} очень близки", + "reference": "Излишние точки на линии должны быть объединены или раздвинуты.", + "detached": { + "message": "{feature} слишком близко от {feature2} " + } + }, "crossing_ways": { - "title": "Пересечения путей" + "title": "Пересечения путей", + "message": "{feature} пересекает {feature2} " }, "disconnected_way": { "title": "Разъединены линии" }, + "fixme_tag": { + "title": "Запросы \"Исправь меня\"", + "message": "Для {feature} имеется запрос \"Исправь меня\"", + "tip": "Найти объекты с тегом \"Исправь меня\"" + }, "outdated_tags": { - "title": "Устаревшие теги" + "title": "Устаревшие теги", + "message": "{feature} содержит устаревшие теги", + "incomplete": { + "message": "{feature} имеет неполные теги" + }, + "noncanonical_brand": { + "message": "{feature} выглядит как бренд с нестандартными тегами" + } }, "impossible_oneway": { "title": "Некорректное указание односторонних дорог" diff --git a/dist/locales/sv.json b/dist/locales/sv.json index 9daa023838..0e37fe9c45 100644 --- a/dist/locales/sv.json +++ b/dist/locales/sv.json @@ -3183,6 +3183,12 @@ "undefined": "Nej" } }, + "iata": { + "label": "IATA-flygplatskod" + }, + "icao": { + "label": "ICAO-flygplatskod" + }, "incline": { "label": "Lutning" }, @@ -3692,6 +3698,9 @@ "product": { "label": "Produkter" }, + "public_bookcase/type": { + "label": "Typ" + }, "railway": { "label": "Typ" }, @@ -9663,10 +9672,6 @@ "name": "OSM Kuba på Telegram", "description": "Telegram-chatt för OpenStreetMap Kuba" }, - "OSM-NI-telegram": { - "name": "OSM Nicaragua på Telegram", - "description": "Telegram-chatt för OpenStreetMap Nicaragua" - }, "Bay-Area-OpenStreetMappers": { "name": "Bay Area OpenStreetMappers", "description": "Förbättra OpenStreetMap i San Francisco Bay Area", diff --git a/dist/locales/uk.json b/dist/locales/uk.json index d7ced14079..3ffd32069a 100644 --- a/dist/locales/uk.json +++ b/dist/locales/uk.json @@ -3183,6 +3183,12 @@ "undefined": "Ні" } }, + "iata": { + "label": "IATA" + }, + "icao": { + "label": "ICAO" + }, "incline": { "label": "Нахил" }, @@ -3692,6 +3698,9 @@ "product": { "label": "Виробляє" }, + "public_bookcase/type": { + "label": "Тип" + }, "railway": { "label": "Тип" }, @@ -10046,10 +10055,6 @@ "name": "OSM Куба в Telegram", "description": "OpenStreetMap Куба чат в Telegram" }, - "OSM-NI-telegram": { - "name": "OSM Нікарагуа в Telegram", - "description": "OpenStreetMap Нікарагуа чат в Telegram" - }, "Bay-Area-OpenStreetMappers": { "name": "Bay Area OpenStreetMappers", "description": "Покращити OpenStreetMap в районі Затоки Сан-Франциско", diff --git a/dist/locales/vi.json b/dist/locales/vi.json index c6ad78c991..ba8656a3d4 100644 --- a/dist/locales/vi.json +++ b/dist/locales/vi.json @@ -8547,10 +8547,6 @@ "name": "OSM Cuba tại Telegram", "description": "Trò chuyện Telegram của OpenStreetMap Cuba" }, - "OSM-NI-telegram": { - "name": "OSM Nicaragua tại Telegram", - "description": "Trò chuyện Telegram của OpenStreetMap Nicaragua" - }, "Bay-Area-OpenStreetMappers": { "name": "Cộng đồng OpenStreetMap tại Khu vực vịnh", "description": "Cải thiện OpenStreetMap tại Khu vực Vịnh San Francisco", diff --git a/dist/locales/zh-CN.json b/dist/locales/zh-CN.json index 6dc524e8de..ced4be11f8 100644 --- a/dist/locales/zh-CN.json +++ b/dist/locales/zh-CN.json @@ -2439,7 +2439,8 @@ "title": "默许" }, "permit": { - "description": "仅限凭证驶入" + "description": "仅限凭证驶入", + "title": "许可证" }, "private": { "title": "私人" @@ -6536,8 +6537,8 @@ "terms": "电力,电源,电,能源,煤气,天然气,电网,公司" }, "office/estate_agent": { - "name": "地产代理", - "terms": "地产代理" + "name": "地产中介", + "terms": "地产代理,地产中介,房产中介,中介,房屋中介" }, "office/financial": { "name": "金融机构", @@ -6623,7 +6624,7 @@ }, "office/telecommunication": { "name": "电信办公室", - "terms": "电信公司" + "terms": "电信公司,营业厅,电信营业厅" }, "office/therapist": { "name": "治疗师工作室", @@ -7926,11 +7927,43 @@ } }, "imagery": { + "AGIV": { + "attribution": { + "text": "© agentschap Informatie Vlaanderen" + }, + "name": "AIV Flanders 最近的航拍图" + }, + "AGIV10cm": { + "attribution": { + "text": "© agentschap Informatie Vlaanderen" + }, + "name": "AIV Flanders 2013-2015 的 10厘米 航拍图" + }, + "AGIVFlandersGRB": { + "attribution": { + "text": "© agentschap Informatie Vlaanderen" + }, + "name": "AIV Flanders GRB" + }, + "AIV_DHMV_II_HILL_25cm": { + "attribution": { + "text": "© agentschap Informatie Vlaanderen" + } + }, + "AIV_DHMV_II_SVF_25cm": { + "attribution": { + "text": "© agentschap Informatie Vlaanderen" + }, + "name": "AIV Digitaal Hoogtemodel Vlaanderen II, 0.25 米 Skyview" + }, "Bing": { "description": "卫星和航空影像", "name": "必应航空影像" }, "EOXAT2018CLOUDLESS": { + "attribution": { + "text": "Sentinel-2 无云 - https://s2maps.eu by EOX IT Services GmbH (包含已修改的 Copernicus Sentinel data 2017 & 2018)" + }, "description": "经后期处理的 Sentinel 卫星影像。", "name": "eox.at 2018 无云" }, @@ -7966,12 +7999,14 @@ "attribution": { "text": "条款与反馈" }, + "description": "Maxar Premium 是由 Maxar 底图所组成的拼接图,特定区域以 +Vivid 或自订照片填充,其解析度为 50 厘米或更高,且会不断更新。", "name": "Maxar 优质影像 (Beta)" }, "Maxar-Standard": { "attribution": { "text": "条款与反馈" }, + "description": "Maxar Standard 是一套经过精心选取,覆盖地球上 86% 的陆地面积,其解析度为 30-60 厘米,不足的部份以 Landsat 填满。平均更新时间为 2.31 年,部份地区每年更新两次。", "name": "Maxar 标准影像 (Beta)" }, "OSM_Inspector-Addresses": { @@ -8016,6 +8051,12 @@ }, "name": "OSM查看器:标签" }, + "SPW_ORTHO_LAST": { + "name": "SPW(allonie) 最新航空影像" + }, + "SPW_PICC": { + "name": "SPW(allonie) PICC 数字图像" + }, "US-TIGER-Roads-2014": { "description": "在缩放等级16级以上是来自美国人口调查局的公共领域地图数据。低缩放等级下仅包含自2006年以来的变更,不含已纳入 OpenStreetMap 的变更。", "name": "TIGER 道路 2014" @@ -8028,10 +8069,20 @@ "description": "黄色 = 来自美国人口调查局的公共领域地图数据。红色 = 在 OpenStreetMap 中找不到数据。", "name": "TIGER 道路 2018" }, + "USDA-NAIP": { + "description": "近年来自美国各州的国家农业影像计划 (NAIP) 的 DOQQ。", + "name": "国家农业影像计划" + }, "US_Forest_Service_roads_overlay": { "description": "公路:绿色线框 = 未分级。棕色线框 = 未铺设路面。表面:沙砾 = 浅棕色填充,沥青 = 黑色,已铺设 = 灰色,土地 = 白色,混凝土 = 蓝色,草地 = 绿色。季节性 = 白色条状", "name": "美国森林道路叠加层" }, + "UrbISOrtho2016": { + "attribution": { + "text": "道路:绿色外框 = 非分类道路。棕色外框 = 土路。路面:碎石路 = 亮棕色实心填满,柏油 = 黑色,有铺面 = 灰色,地面 = 白色,水泥 = 蓝色,草地 = 绿色。季节性 = 白色条纹" + }, + "name": "UrbIS-Ortho 2016" + }, "Waymarked_Trails-Cycling": { "attribution": { "text": "© waymarkedtrails.org, OpenStreetMap 贡献者, 署名-相同方式共享 3.0" @@ -8140,6 +8191,22 @@ } }, "community": { + "bw-facebook": { + "name": "在 Facebook 上的 Mapping Botswana", + "description": "OpenStreetMap in Botswana 的页面" + }, + "bw-twitter": { + "name": "在 Twitter 上的 Mapping Botswana", + "description": "OpenStreetMap in Botswana 的 Twitter" + }, + "ym-Centre-Universitaire-de-Recherche-et-dApplication-en-Tldtection-CURAT-de-lUniversit-Felix-Houphouet-Boigny": { + "name": "YouthMappers CURAT", + "extendedDescription": "我们分会目的是推广自由画地图的协同使用,以及在研究与决策应用时运用开放街图资料,帮助学生产生他们研究时自己的资料。" + }, + "ym-The-Gambia-YMCA-University-of-the-Gambia": { + "name": "YouthMappers 接触", + "description": "Connected YouthMappers 由年轻甘比亚组成,希望能改变和协助国家发展" + }, "cape-coast-youthmappers": { "name": "海岸角大学 YouthMappers", "description": "在 Twitter 上关注我们:{url}", diff --git a/dist/locales/zh-TW.json b/dist/locales/zh-TW.json index 109f2e7b39..53d7794cd0 100644 --- a/dist/locales/zh-TW.json +++ b/dist/locales/zh-TW.json @@ -4455,9 +4455,17 @@ "name": "直昇機坪", "terms": "直昇機停機坪,直升機停機坪" }, + "aeroway/holding_position": { + "name": "飛機停靠點", + "terms": "飛機停靠點" + }, "aeroway/jet_bridge": { "name": "空橋" }, + "aeroway/parking_position": { + "name": "停機坪", + "terms": "停機坪" + }, "aeroway/runway": { "name": "機場跑道", "terms": "跑道" @@ -8572,6 +8580,10 @@ "name": "攝影用品店", "terms": "照相店" }, + "shop/printer_ink": { + "name": "印表機墨水商店", + "terms": "印表機墨水商店" + }, "shop/pyrotechnics": { "name": "煙火商", "terms": "煙火用品店" @@ -10230,10 +10242,6 @@ "name": "OSM 古巴在 Telegram", "description": "開放街圖古巴 Telegram 聊天室" }, - "OSM-NI-telegram": { - "name": "OSM 尼加拉瓜在 Telegram", - "description": "開放街圖尼加拉瓜 Telegram 聊天室" - }, "Bay-Area-OpenStreetMappers": { "name": "灣區的 OpenStreetMap 圖客", "description": "改善在灣區的 OpenStreetMap", diff --git a/dist/locales/zh.json b/dist/locales/zh.json index 1e2e1b7459..c556f45c62 100644 --- a/dist/locales/zh.json +++ b/dist/locales/zh.json @@ -250,6 +250,17 @@ } }, "presets": { + "categories": { + "category-barrier": { + "name": "障碍物要素" + }, + "category-building": { + "name": "建筑物要素" + }, + "category-golf": { + "name": "高尔夫要素" + } + }, "fields": { "access": { "options": { From 491451d800184ab314afc010604c31608faf83c7 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 31 Jul 2019 14:10:07 -0400 Subject: [PATCH 243/774] Add english string --- dist/locales/en.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dist/locales/en.json b/dist/locales/en.json index 75ef6d60e3..430285bcb7 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -504,7 +504,8 @@ "translate": "Translate", "localized_translation_label": "Multilingual Name", "localized_translation_language": "Choose language", - "localized_translation_name": "Name" + "localized_translation_name": "Name", + "language_and_code": "{language} ({code})" }, "zoom_in_edit": "Zoom in to edit", "login": "Log In", From f43dd185e09bbd629996771cfc514fb07fe38549 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 31 Jul 2019 15:09:52 -0400 Subject: [PATCH 244/774] Avoid squishing preset browser search field --- css/80_app.css | 1 + 1 file changed, 1 insertion(+) diff --git a/css/80_app.css b/css/80_app.css index 5ebb109a6f..1ea31c1cbe 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -717,6 +717,7 @@ button.add-note svg.icon { .preset-browser .popover-header { height: 40px; border-bottom: 2px solid #DCDCDC; + flex: 0 0 auto; } .preset-browser .popover-footer { padding: 5px 10px 5px 10px; From 2d33bcb03d7db37bed498c0d3a14ad6cca5aa7c2 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 31 Jul 2019 15:34:25 -0400 Subject: [PATCH 245/774] Update cycleway preset icons to differentiate them from bike-related POI icons --- data/presets/presets.json | 10 +++++----- data/presets/presets/highway/cycleway.json | 2 +- data/presets/presets/highway/cycleway/_crossing.json | 2 +- .../presets/presets/highway/cycleway/bicycle_foot.json | 2 +- .../presets/highway/cycleway/crossing/marked.json | 2 +- .../presets/highway/cycleway/crossing/unmarked.json | 2 +- data/taginfo.json | 6 +++--- svg/fontawesome/fas-biking.svg | 1 + 8 files changed, 14 insertions(+), 13 deletions(-) create mode 100644 svg/fontawesome/fas-biking.svg diff --git a/data/presets/presets.json b/data/presets/presets.json index 8a60a94e02..7fe3b1ca23 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -470,11 +470,11 @@ "highway/crossing/marked": {"icon": "temaki-pedestrian", "fields": ["crossing", "tactile_paving"], "geometry": ["vertex"], "tags": {"highway": "crossing", "crossing": "marked"}, "addTags": {"highway": "crossing", "crossing": "marked"}, "reference": {"key": "highway", "value": "crossing"}, "terms": ["zebra crossing", "marked crossing", "crosswalk"], "name": "Marked Crosswalk"}, "highway/crossing/unmarked-raised": {"icon": "temaki-pedestrian", "fields": ["crossing", "tactile_paving"], "geometry": ["vertex"], "tags": {"highway": "crossing", "crossing": "unmarked", "traffic_calming": "table"}, "reference": {"key": "traffic_calming", "value": "table"}, "terms": ["flat top", "hump", "speed", "slow"], "name": "Unmarked Crossing (Raised)"}, "highway/crossing/unmarked": {"icon": "temaki-pedestrian", "fields": ["crossing", "tactile_paving"], "geometry": ["vertex"], "tags": {"highway": "crossing", "crossing": "unmarked"}, "addTags": {"highway": "crossing", "crossing": "unmarked"}, "reference": {"key": "crossing", "value": "unmarked"}, "terms": [], "name": "Unmarked Crossing"}, - "highway/cycleway": {"icon": "maki-bicycle", "fields": ["name", "oneway", "surface", "width", "structure", "access", "incline"], "moreFields": ["covered", "dog", "lit", "maxspeed", "maxweight_bridge", "smoothness", "wheelchair"], "geometry": ["line"], "tags": {"highway": "cycleway"}, "terms": ["bike path", "bicyle path"], "matchScore": 0.9, "name": "Cycle Path"}, - "highway/cycleway/crossing": {"icon": "maki-bicycle", "fields": ["crossing", "access", "surface", "tactile_paving"], "geometry": ["line"], "tags": {"cycleway": "crossing"}, "addTags": {"highway": "cycleway", "cycleway": "crossing"}, "reference": {"key": "cycleway", "value": "crossing"}, "searchable": false, "matchScore": 0.95, "name": "Cycle Crossing"}, - "highway/cycleway/bicycle_foot": {"icon": "maki-bicycle", "geometry": ["line"], "tags": {"highway": "cycleway", "foot": "designated"}, "addTags": {"highway": "cycleway", "foot": "designated", "bicycle": "designated"}, "terms": ["bicycle and foot path", "bike and pedestrian path", "green way", "greenway", "mixed-use trail", "multi-use trail", "segregated trail", "rail trail"], "matchScore": 0.95, "name": "Cycle & Foot Path"}, - "highway/cycleway/crossing/marked": {"icon": "maki-bicycle", "fields": ["crossing", "access", "surface", "tactile_paving"], "geometry": ["line"], "tags": {"cycleway": "crossing", "crossing": "marked"}, "addTags": {"highway": "cycleway", "cycleway": "crossing", "crossing": "marked"}, "reference": {"key": "cycleway", "value": "crossing"}, "terms": ["cycle crosswalk", "cycle path crossing", "cycleway crossing", "bicycle crossing", "bike crossing"], "name": "Marked Cycle Crossing"}, - "highway/cycleway/crossing/unmarked": {"icon": "maki-bicycle", "fields": ["crossing", "access", "surface", "tactile_paving"], "geometry": ["line"], "tags": {"cycleway": "crossing", "crossing": "unmarked"}, "addTags": {"highway": "cycleway", "cycleway": "crossing", "crossing": "unmarked"}, "reference": {"key": "cycleway", "value": "crossing"}, "terms": ["cycle path crossing", "cycleway crossing", "bicycle crossing", "bike crossing"], "name": "Unmarked Cycle Crossing"}, + "highway/cycleway": {"icon": "fas-biking", "fields": ["name", "oneway", "surface", "width", "structure", "access", "incline"], "moreFields": ["covered", "dog", "lit", "maxspeed", "maxweight_bridge", "smoothness", "wheelchair"], "geometry": ["line"], "tags": {"highway": "cycleway"}, "terms": ["bike path", "bicyle path"], "matchScore": 0.9, "name": "Cycle Path"}, + "highway/cycleway/crossing": {"icon": "fas-biking", "fields": ["crossing", "access", "surface", "tactile_paving"], "geometry": ["line"], "tags": {"cycleway": "crossing"}, "addTags": {"highway": "cycleway", "cycleway": "crossing"}, "reference": {"key": "cycleway", "value": "crossing"}, "searchable": false, "matchScore": 0.95, "name": "Cycle Crossing"}, + "highway/cycleway/bicycle_foot": {"icon": "fas-biking", "geometry": ["line"], "tags": {"highway": "cycleway", "foot": "designated"}, "addTags": {"highway": "cycleway", "foot": "designated", "bicycle": "designated"}, "terms": ["bicycle and foot path", "bike and pedestrian path", "green way", "greenway", "mixed-use trail", "multi-use trail", "segregated trail", "rail trail"], "matchScore": 0.95, "name": "Cycle & Foot Path"}, + "highway/cycleway/crossing/marked": {"icon": "fas-biking", "fields": ["crossing", "access", "surface", "tactile_paving"], "geometry": ["line"], "tags": {"cycleway": "crossing", "crossing": "marked"}, "addTags": {"highway": "cycleway", "cycleway": "crossing", "crossing": "marked"}, "reference": {"key": "cycleway", "value": "crossing"}, "terms": ["cycle crosswalk", "cycle path crossing", "cycleway crossing", "bicycle crossing", "bike crossing"], "name": "Marked Cycle Crossing"}, + "highway/cycleway/crossing/unmarked": {"icon": "fas-biking", "fields": ["crossing", "access", "surface", "tactile_paving"], "geometry": ["line"], "tags": {"cycleway": "crossing", "crossing": "unmarked"}, "addTags": {"highway": "cycleway", "cycleway": "crossing", "crossing": "unmarked"}, "reference": {"key": "cycleway", "value": "crossing"}, "terms": ["cycle path crossing", "cycleway crossing", "bicycle crossing", "bike crossing"], "name": "Unmarked Cycle Crossing"}, "highway/elevator": {"icon": "temaki-elevator", "fields": ["access_simple", "opening_hours", "maxweight", "ref", "wheelchair"], "moreFields": ["maxheight"], "geometry": ["vertex"], "tags": {"highway": "elevator"}, "terms": ["lift"], "name": "Elevator"}, "highway/emergency_bay": {"icon": "maki-car", "geometry": ["vertex"], "tags": {"highway": "emergency_bay"}, "terms": ["Highway Emergency Bay"], "name": "Emergency Stopping Place"}, "highway/footway": {"icon": "temaki-pedestrian", "fields": ["name", "surface", "width", "structure", "access", "incline"], "moreFields": ["covered", "dog", "lit", "maxweight_bridge", "smoothness", "wheelchair"], "geometry": ["line"], "terms": ["hike", "hiking", "promenade", "trackway", "trail", "walk"], "tags": {"highway": "footway"}, "matchScore": 0.9, "name": "Foot Path"}, diff --git a/data/presets/presets/highway/cycleway.json b/data/presets/presets/highway/cycleway.json index cee1c37e3f..cca0dfa041 100644 --- a/data/presets/presets/highway/cycleway.json +++ b/data/presets/presets/highway/cycleway.json @@ -1,5 +1,5 @@ { - "icon": "maki-bicycle", + "icon": "fas-biking", "fields": [ "name", "oneway", diff --git a/data/presets/presets/highway/cycleway/_crossing.json b/data/presets/presets/highway/cycleway/_crossing.json index acf9078344..7f0722c3d0 100644 --- a/data/presets/presets/highway/cycleway/_crossing.json +++ b/data/presets/presets/highway/cycleway/_crossing.json @@ -1,5 +1,5 @@ { - "icon": "maki-bicycle", + "icon": "fas-biking", "fields": [ "crossing", "access", diff --git a/data/presets/presets/highway/cycleway/bicycle_foot.json b/data/presets/presets/highway/cycleway/bicycle_foot.json index d787c03b28..72ecc16ad5 100644 --- a/data/presets/presets/highway/cycleway/bicycle_foot.json +++ b/data/presets/presets/highway/cycleway/bicycle_foot.json @@ -1,5 +1,5 @@ { - "icon": "maki-bicycle", + "icon": "fas-biking", "geometry": [ "line" ], diff --git a/data/presets/presets/highway/cycleway/crossing/marked.json b/data/presets/presets/highway/cycleway/crossing/marked.json index b7581d01a6..d951a4aa86 100644 --- a/data/presets/presets/highway/cycleway/crossing/marked.json +++ b/data/presets/presets/highway/cycleway/crossing/marked.json @@ -1,5 +1,5 @@ { - "icon": "maki-bicycle", + "icon": "fas-biking", "fields": [ "crossing", "access", diff --git a/data/presets/presets/highway/cycleway/crossing/unmarked.json b/data/presets/presets/highway/cycleway/crossing/unmarked.json index 34cb5c227d..8948e189e3 100644 --- a/data/presets/presets/highway/cycleway/crossing/unmarked.json +++ b/data/presets/presets/highway/cycleway/crossing/unmarked.json @@ -1,5 +1,5 @@ { - "icon": "maki-bicycle", + "icon": "fas-biking", "fields": [ "crossing", "access", diff --git a/data/taginfo.json b/data/taginfo.json index 8d066debfd..d5546f98e1 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -460,9 +460,9 @@ {"key": "crossing", "value": "zebra", "description": "🄿 Marked Crosswalk (unsearchable), 🄳 ➜ crossing=marked", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/pedestrian.svg"}, {"key": "crossing", "value": "marked", "description": "🄿 Marked Crosswalk, 🄿 Marked Cycle Crossing", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/pedestrian.svg"}, {"key": "crossing", "value": "unmarked", "description": "🄿 Unmarked Crossing, 🄿 Unmarked Cycle Crossing", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/pedestrian.svg"}, - {"key": "highway", "value": "cycleway", "description": "🄿 Cycle Path", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/bicycle-15.svg"}, - {"key": "cycleway", "value": "crossing", "description": "🄿 Cycle Crossing (unsearchable)", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/bicycle-15.svg"}, - {"key": "foot", "value": "designated", "description": "🄿 Cycle & Foot Path, 🄵 Allowed Access", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/bicycle-15.svg"}, + {"key": "highway", "value": "cycleway", "description": "🄿 Cycle Path", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-biking.svg"}, + {"key": "cycleway", "value": "crossing", "description": "🄿 Cycle Crossing (unsearchable)", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-biking.svg"}, + {"key": "foot", "value": "designated", "description": "🄿 Cycle & Foot Path, 🄵 Allowed Access", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD/svg/fontawesome/fas-biking.svg"}, {"key": "highway", "value": "elevator", "description": "🄿 Elevator", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/elevator.svg"}, {"key": "highway", "value": "emergency_bay", "description": "🄿 Emergency Stopping Place", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/car-15.svg"}, {"key": "highway", "value": "footway", "description": "🄿 Foot Path", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/pedestrian.svg"}, diff --git a/svg/fontawesome/fas-biking.svg b/svg/fontawesome/fas-biking.svg new file mode 100644 index 0000000000..91e2ac8bbd --- /dev/null +++ b/svg/fontawesome/fas-biking.svg @@ -0,0 +1 @@ + \ No newline at end of file From 3bf3ecf5600f8ba5b6d43d5385b703b7376f7e78 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 31 Jul 2019 16:18:10 -0400 Subject: [PATCH 246/774] Populate the default preset list with the `presets` parameter values, if any (close #6703) --- modules/core/context.js | 9 +++------ modules/presets/index.js | 24 ++++++++++++++++++++---- 2 files changed, 23 insertions(+), 10 deletions(-) diff --git a/modules/core/context.js b/modules/core/context.js index 19084c6910..7ea33cff8d 100644 --- a/modules/core/context.js +++ b/modules/core/context.js @@ -569,15 +569,12 @@ export function coreContext() { osmSetVertexTags(presets.vertexTags()); }); } else { - var isVisible; + var addablePresetIDs; if (presetsParameter) { // assume list of allowed preset IDs - var visiblePresetIDs = new Set(presetsParameter.split(',')); - isVisible = function(presetID) { - return visiblePresetIDs.has(presetID); - }; + addablePresetIDs = presetsParameter.split(','); } - presets.init(isVisible); + presets.init(addablePresetIDs); osmSetAreaKeys(presets.areaKeys()); osmSetPointTags(presets.pointTags()); osmSetVertexTags(presets.vertexTags()); diff --git a/modules/presets/index.js b/modules/presets/index.js index a7c94b6fb5..315002e557 100644 --- a/modules/presets/index.js +++ b/modules/presets/index.js @@ -26,6 +26,8 @@ export function presetIndex(context) { var _fields = {}; var _universal = []; var _favorites, _recents; + // presets that the user can add + var _addablePresetIDs; // Index of presets by (geometry, tag key). var _index = { @@ -220,8 +222,14 @@ export function presetIndex(context) { }); } - if (d.defaults) { - var getItem = (all.item).bind(all); + var getItem = (all.item).bind(all); + if (_addablePresetIDs) { + ['area', 'line', 'point', 'vertex', 'relation'].forEach(function(geometry) { + _defaults[geometry] = presetCollection(_addablePresetIDs.map(getItem).filter(function(preset) { + return preset.geometry.indexOf(geometry) !== -1; + })); + }); + } else if (d.defaults) { _defaults = { area: presetCollection(d.defaults.area.map(getItem)), line: presetCollection(d.defaults.line.map(getItem)), @@ -245,15 +253,23 @@ export function presetIndex(context) { return all; }; - all.init = function(shouldShow) { + all.init = function(addablePresetIDs) { all.collection = []; _favorites = null; _recents = null; + _addablePresetIDs = addablePresetIDs; _fields = {}; _universal = []; _index = { point: {}, vertex: {}, line: {}, area: {}, relation: {} }; - return all.build(data.presets, shouldShow || true); + var show = true; + if (addablePresetIDs) { + show = function(presetID) { + return addablePresetIDs.indexOf(presetID) !== -1; + }; + } + + return all.build(data.presets, show); }; From 68439498c947dfa02a9de9a7023b675a89b71ad4 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 31 Jul 2019 16:25:08 -0400 Subject: [PATCH 247/774] Deprecate roof:shape=half_hipped (close #6704) --- data/deprecated.json | 4 ++++ data/taginfo.json | 1 + 2 files changed, 5 insertions(+) diff --git a/data/deprecated.json b/data/deprecated.json index 9a41940771..bf75568d08 100644 --- a/data/deprecated.json +++ b/data/deprecated.json @@ -629,6 +629,10 @@ "old": {"roof:color": "*"}, "replace": {"roof:colour": "$1"} }, + { + "old": {"roof:shape": "half_hipped"}, + "replace": {"roof:shape": "half-hipped"} + }, { "old": {"route": "ncn"}, "replace": {"route": "bicycle", "network": "ncn"} diff --git a/data/taginfo.json b/data/taginfo.json index d5546f98e1..f8c8b47ce4 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -1924,6 +1924,7 @@ {"key": "religion", "value": "catholic", "description": "🄳 ➜ religion=christian + denomination=catholic"}, {"key": "reservations", "description": "🄳 ➜ reservation=*"}, {"key": "roof:color", "description": "🄳 ➜ roof:colour=*"}, + {"key": "roof:shape", "value": "half_hipped", "description": "🄳 ➜ roof:shape=half-hipped"}, {"key": "route", "value": "ncn", "description": "🄳 ➜ route=bicycle + network=ncn"}, {"key": "shop", "value": "adult", "description": "🄳 ➜ shop=erotic"}, {"key": "shop", "value": "antique", "description": "🄳 ➜ shop=antiques"}, From 3ca01d3690cc14cc8e8619d42c7848a9af6b60ff Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 31 Jul 2019 16:59:44 -0400 Subject: [PATCH 248/774] Generalize wikidata field type Add Species Wikidata field to tree, orchard, and animal enclosure presets (close #6652) --- data/presets.yaml | 3 + data/presets/fields.json | 1 + data/presets/fields/species/wikidata.json | 9 +++ data/presets/presets.json | 6 +- data/presets/presets/attraction/animal.json | 3 +- data/presets/presets/landuse/orchard.json | 7 ++- data/presets/presets/natural/tree.json | 3 + data/taginfo.json | 2 + dist/locales/en.json | 3 + modules/ui/fields/wikidata.js | 61 ++++++++++++--------- 10 files changed, 64 insertions(+), 34 deletions(-) create mode 100644 data/presets/fields/species/wikidata.json diff --git a/data/presets.yaml b/data/presets.yaml index 7c1e6c2468..940b6aca66 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -1921,6 +1921,9 @@ en: source: # source=* label: Sources + species/wikidata: + # 'species:wikidata=*, species:wikipedia=*' + label: Species Wikidata sport: # sport=* label: Sports diff --git a/data/presets/fields.json b/data/presets/fields.json index a10f3d054a..69b3affca1 100644 --- a/data/presets/fields.json +++ b/data/presets/fields.json @@ -344,6 +344,7 @@ "social_facility_for": {"key": "social_facility:for", "type": "combo", "label": "People Served"}, "social_facility": {"key": "social_facility", "type": "combo", "label": "Type"}, "source": {"key": "source", "type": "semiCombo", "icon": "source", "universal": true, "label": "Sources", "snake_case": false, "caseSensitive": true, "options": ["survey", "local knowledge", "gps", "aerial imagery", "streetlevel imagery"]}, + "species/wikidata": {"key": "species:wikidata", "keys": ["species:wikidata", "species:wikipedia"], "type": "wikidata", "label": "Species Wikidata"}, "sport_ice": {"key": "sport", "type": "semiCombo", "label": "Sports", "options": ["ice_skating", "ice_hockey", "multi", "curling", "ice_stock"]}, "sport_racing_motor": {"key": "sport", "type": "semiCombo", "label": "Sports", "options": ["motor", "karting", "motocross"]}, "sport_racing_nonmotor": {"key": "sport", "type": "semiCombo", "label": "Sports", "options": ["bmx", "cycling", "dog_racing", "horse_racing", "running"]}, diff --git a/data/presets/fields/species/wikidata.json b/data/presets/fields/species/wikidata.json new file mode 100644 index 0000000000..a7f6c8bade --- /dev/null +++ b/data/presets/fields/species/wikidata.json @@ -0,0 +1,9 @@ +{ + "key": "species:wikidata", + "keys": [ + "species:wikidata", + "species:wikipedia" + ], + "type": "wikidata", + "label": "Species Wikidata" +} diff --git a/data/presets/presets.json b/data/presets/presets.json index 7fe3b1ca23..44393b8fe8 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -255,7 +255,7 @@ "area": {"fields": ["name"], "geometry": ["area"], "tags": {"area": "yes"}, "terms": ["polygon"], "name": "Area", "matchScore": 0.1}, "area/highway": {"fields": ["name", "area/highway", "surface"], "geometry": ["area"], "terms": ["area:highway", "edge of pavement", "highway area", "highway shape", "pavement", "road shape", "street area"], "tags": {"area:highway": "*"}, "name": "Road Surface"}, "attraction/amusement_ride": {"icon": "maki-amusement-park", "geometry": ["point", "area"], "terms": ["theme park", "carnival ride"], "tags": {"attraction": "amusement_ride"}, "name": "Amusement Ride"}, - "attraction/animal": {"icon": "maki-zoo", "fields": ["name", "operator"], "geometry": ["point", "area"], "terms": ["amphibian", "animal park", "aquarium", "bear", "bird", "fish", "insect", "lion", "mammal", "monkey", "penguin", "reptile", "safari", "theme park", "tiger", "zoo"], "tags": {"attraction": "animal"}, "name": "Animal Enclosure"}, + "attraction/animal": {"icon": "maki-zoo", "fields": ["name", "operator", "species/wikidata"], "geometry": ["point", "area"], "terms": ["amphibian", "animal park", "aquarium", "bear", "bird", "fish", "insect", "lion", "mammal", "monkey", "penguin", "reptile", "safari", "theme park", "tiger", "zoo"], "tags": {"attraction": "animal"}, "name": "Animal Enclosure"}, "attraction/big_wheel": {"icon": "maki-amusement-park", "fields": ["{attraction}", "height"], "geometry": ["point"], "terms": ["ferris wheel", "theme park", "amusement ride"], "tags": {"attraction": "big_wheel"}, "name": "Big Wheel"}, "attraction/bumper_car": {"icon": "maki-car", "geometry": ["point", "area"], "terms": ["theme park", "dodgem cars", "autoscooter"], "tags": {"attraction": "bumper_car"}, "name": "Bumper Car"}, "attraction/bungee_jumping": {"icon": "maki-pitch", "fields": ["{attraction}", "height"], "geometry": ["point", "area"], "terms": ["theme park", "bungy jumping", "jumping platform"], "tags": {"attraction": "bungee_jumping"}, "name": "Bungee Jumping"}, @@ -590,7 +590,7 @@ "landuse/military/obstacle_course": {"icon": "temaki-military", "geometry": ["point", "area"], "tags": {"military": "obstacle_course"}, "addTags": {"landuse": "military", "military": "obstacle_course"}, "terms": ["army", "base", "force", "guard", "marine", "navy", "troop", "war"], "name": "Obstacle Course"}, "landuse/military/range": {"icon": "temaki-military", "fields": ["name"], "geometry": ["point", "area"], "tags": {"military": "range"}, "addTags": {"landuse": "military", "military": "range"}, "terms": ["air force", "army", "base", "fight", "fire", "force", "guard", "gun", "marine", "navy", "rifle", "shoot*", "snip*", "train", "troop", "war"], "name": "Military Range"}, "landuse/military/training_area": {"icon": "temaki-military", "fields": ["name"], "geometry": ["point", "area"], "tags": {"military": "training_area"}, "addTags": {"landuse": "military", "military": "training_area"}, "terms": ["air force", "army", "base", "fight", "fire", "force", "guard", "gun", "marine", "navy", "rifle", "shoot*", "snip*", "train", "troop", "war"], "name": "Training Area"}, - "landuse/orchard": {"icon": "maki-park", "fields": ["name", "operator", "trees"], "moreFields": ["address", "website", "phone", "email", "fax"], "geometry": ["area"], "tags": {"landuse": "orchard"}, "terms": ["fruit"], "name": "Orchard"}, + "landuse/orchard": {"icon": "maki-park", "fields": ["name", "operator", "trees"], "moreFields": ["address", "email", "fax", "phone", "species/wikidata", "website"], "geometry": ["area"], "tags": {"landuse": "orchard"}, "terms": ["fruit"], "name": "Orchard"}, "landuse/plant_nursery": {"icon": "maki-garden", "fields": ["name", "operator", "plant"], "moreFields": ["address", "website", "phone", "email", "fax"], "geometry": ["area"], "tags": {"landuse": "plant_nursery"}, "terms": ["flower", "garden", "grow", "vivero"], "name": "Plant Nursery"}, "landuse/quarry": {"geometry": ["area"], "fields": ["name", "operator", "resource"], "moreFields": ["address", "website", "phone", "email", "fax"], "tags": {"landuse": "quarry"}, "terms": [], "name": "Quarry"}, "landuse/railway": {"icon": "maki-rail", "fields": ["operator"], "geometry": ["area"], "tags": {"landuse": "railway"}, "terms": ["rail", "train", "track"], "name": "Railway Corridor"}, @@ -773,7 +773,7 @@ "natural/spring": {"icon": "maki-water", "fields": ["name", "intermittent"], "geometry": ["point", "vertex"], "tags": {"natural": "spring"}, "terms": [], "name": "Spring"}, "natural/stone": {"icon": "temaki-boulder1", "fields": ["name"], "geometry": ["point", "area"], "tags": {"natural": "stone"}, "terms": ["boulder", "stone", "rock"], "name": "Unattached Stone / Boulder"}, "natural/tree_row": {"icon": "maki-park", "fields": ["leaf_type", "leaf_cycle", "denotation"], "geometry": ["line"], "tags": {"natural": "tree_row"}, "terms": [], "name": "Tree Row"}, - "natural/tree": {"icon": "maki-park", "fields": ["leaf_type_singular", "leaf_cycle_singular", "denotation", "diameter"], "geometry": ["point", "vertex"], "tags": {"natural": "tree"}, "terms": [], "name": "Tree"}, + "natural/tree": {"icon": "maki-park", "fields": ["leaf_type_singular", "leaf_cycle_singular", "denotation", "diameter"], "moreFields": ["species/wikidata"], "geometry": ["point", "vertex"], "tags": {"natural": "tree"}, "terms": [], "name": "Tree"}, "natural/valley": {"icon": "maki-triangle-stroked", "fields": ["name", "elevation", "description"], "geometry": ["vertex", "point", "line"], "tags": {"natural": "valley"}, "terms": ["canyon", "dale", "dell", "dene", "depression", "glen", "gorge", "gully", "gulley", "gultch", "hollow", "ravine", "rift", "vale"], "name": "Valley"}, "natural/volcano": {"icon": "maki-volcano", "fields": ["name", "elevation", "volcano/status", "volcano/type"], "geometry": ["point", "vertex"], "tags": {"natural": "volcano"}, "terms": ["mountain", "crater"], "name": "Volcano"}, "natural/water": {"icon": "maki-water", "fields": ["name", "water", "intermittent"], "moreFields": ["fishing", "salt", "tidal"], "geometry": ["area"], "tags": {"natural": "water"}, "name": "Water"}, diff --git a/data/presets/presets/attraction/animal.json b/data/presets/presets/attraction/animal.json index 3d07612032..240e59b5a6 100644 --- a/data/presets/presets/attraction/animal.json +++ b/data/presets/presets/attraction/animal.json @@ -2,7 +2,8 @@ "icon": "maki-zoo", "fields": [ "name", - "operator" + "operator", + "species/wikidata" ], "geometry": [ "point", diff --git a/data/presets/presets/landuse/orchard.json b/data/presets/presets/landuse/orchard.json index 8f76c3cbf3..de6b2a9b53 100644 --- a/data/presets/presets/landuse/orchard.json +++ b/data/presets/presets/landuse/orchard.json @@ -7,10 +7,11 @@ ], "moreFields": [ "address", - "website", - "phone", "email", - "fax" + "fax", + "phone", + "species/wikidata", + "website" ], "geometry": [ "area" diff --git a/data/presets/presets/natural/tree.json b/data/presets/presets/natural/tree.json index 022c8a563c..41c5600441 100644 --- a/data/presets/presets/natural/tree.json +++ b/data/presets/presets/natural/tree.json @@ -6,6 +6,9 @@ "denotation", "diameter" ], + "moreFields": [ + "species/wikidata" + ], "geometry": [ "point", "vertex" diff --git a/data/taginfo.json b/data/taginfo.json index f8c8b47ce4..6006a886d1 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -1679,6 +1679,8 @@ {"key": "social_facility:for", "description": "🄵 People Served"}, {"key": "social_facility", "description": "🄵 Type"}, {"key": "source", "description": "🄵 Sources"}, + {"key": "species:wikidata", "description": "🄵 Species Wikidata"}, + {"key": "species:wikipedia", "description": "🄵 Species Wikidata"}, {"key": "sport", "description": "🄵 Sports"}, {"key": "stars", "description": "🄵 Stars"}, {"key": "start_date", "description": "🄵 Start Date"}, diff --git a/dist/locales/en.json b/dist/locales/en.json index 75ef6d60e3..5418c56228 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -4020,6 +4020,9 @@ "source": { "label": "Sources" }, + "species/wikidata": { + "label": "Species Wikidata" + }, "sport_ice": { "label": "Sports" }, diff --git a/modules/ui/fields/wikidata.js b/modules/ui/fields/wikidata.js index 0714db37ef..1c75ba3dcc 100644 --- a/modules/ui/fields/wikidata.js +++ b/modules/ui/fields/wikidata.js @@ -29,6 +29,11 @@ export function uiFieldWikidata(field, context) { var _wikiURL = ''; var _entity; + var _wikipediaKey = field.keys && field.keys.find(function(key) { + return key.includes('wikipedia'); + }), + _hintKey = field.key === 'wikidata' ? 'name' : field.key.split(':')[0]; + var combobox = uiCombobox(context, 'combo-' + field.safeid) .caseSensitive(true) .minItems(1); @@ -137,7 +142,7 @@ export function uiFieldWikidata(field, context) { function fetchWikidataItems(q, callback) { if (!q && _entity) { - q = context.entity(_entity.id).tags.name || ''; + q = (_hintKey && context.entity(_entity.id).tags[_hintKey]) || ''; } wikidata.itemsForSearchQuery(q, function(err, data) { @@ -186,35 +191,37 @@ export function uiFieldWikidata(field, context) { var currTags = Object.assign({}, context.entity(initEntityID).tags); // shallow copy - var foundPreferred; - for (var i in langs) { - var lang = langs[i]; - var siteID = lang.replace('-', '_') + 'wiki'; - if (entity.sitelinks[siteID]) { - foundPreferred = true; - currTags.wikipedia = lang + ':' + entity.sitelinks[siteID].title; - // use the first match - break; + if (_wikipediaKey) { + var foundPreferred; + for (var i in langs) { + var lang = langs[i]; + var siteID = lang.replace('-', '_') + 'wiki'; + if (entity.sitelinks[siteID]) { + foundPreferred = true; + currTags[_wikipediaKey] = lang + ':' + entity.sitelinks[siteID].title; + // use the first match + break; + } } - } - - if (!foundPreferred) { - // No wikipedia sites available in the user's language or the fallback languages, - // default to any wikipedia sitelink - - var wikiSiteKeys = Object.keys(entity.sitelinks).filter(function(site) { - return site.endsWith('wiki'); - }); - if (wikiSiteKeys.length === 0) { - // if no wikipedia pages are linked to this wikidata entity, delete that tag - if (currTags.wikipedia) { - delete currTags.wikipedia; + if (!foundPreferred) { + // No wikipedia sites available in the user's language or the fallback languages, + // default to any wikipedia sitelink + + var wikiSiteKeys = Object.keys(entity.sitelinks).filter(function(site) { + return site.endsWith('wiki'); + }); + + if (wikiSiteKeys.length === 0) { + // if no wikipedia pages are linked to this wikidata entity, delete that tag + if (currTags[_wikipediaKey]) { + delete currTags[_wikipediaKey]; + } + } else { + var wikiLang = wikiSiteKeys[0].slice(0, -4).replace('_', '-'); + var wikiTitle = entity.sitelinks[wikiSiteKeys[0]].title; + currTags[_wikipediaKey] = wikiLang + ':' + wikiTitle; } - } else { - var wikiLang = wikiSiteKeys[0].slice(0, -4).replace('_', '-'); - var wikiTitle = entity.sitelinks[wikiSiteKeys[0]].title; - currTags.wikipedia = wikiLang + ':' + wikiTitle; } } From dafb574e8f412514537b7718a2e2ffc14238602e Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Thu, 1 Aug 2019 13:08:10 -0400 Subject: [PATCH 249/774] Don't use generic presets as favorites for brand new users (close #6708) --- modules/core/context.js | 2 ++ modules/presets/index.js | 29 ++++++++++++++++++++++------- modules/ui/assistant.js | 6 +++--- 3 files changed, 27 insertions(+), 10 deletions(-) diff --git a/modules/core/context.js b/modules/core/context.js index f00fcd1805..1d76048d80 100644 --- a/modules/core/context.js +++ b/modules/core/context.js @@ -622,5 +622,7 @@ export function coreContext() { osmSetVertexTags(presets.vertexTags()); } + context.isFirstSession = !context.storage('sawSplash'); + return context; } diff --git a/modules/presets/index.js b/modules/presets/index.js index 4157ffae84..af819bcecc 100644 --- a/modules/presets/index.js +++ b/modules/presets/index.js @@ -281,7 +281,7 @@ export function presetIndex(context) { _universal = []; _favorites = null; _recents = null; - + groupManager.clearCachedPresets(); // Index of presets by (geometry, tag key). @@ -387,13 +387,28 @@ export function presetIndex(context) { all.getFavorites = function() { if (!_favorites) { + // fetch from local storage - _favorites = (JSON.parse(context.storage('preset_favorites')) || [ - // use the generic presets as the default favorites - { pID: 'point', geom: 'point'}, - { pID: 'line', geom: 'line'}, - { pID: 'area', geom: 'area'} - ]).reduce(function(output, d) { + var rawFavorites = JSON.parse(context.storage('preset_favorites')); + + if (!rawFavorites) { + // no saved favorites + + if (!context.isFirstSession) { + // assume existing user coming from iD 2, use the generic presets as defaults + rawFavorites = [ + { pID: 'point', geom: 'point'}, + { pID: 'line', geom: 'line'}, + { pID: 'area', geom: 'area'} + ]; + } else { + // new user, no default favorites + rawFavorites = []; + } + context.storage('preset_favorites', JSON.stringify(rawFavorites)); + } + + _favorites = rawFavorites.reduce(function(output, d) { var item = ribbonItemForMinified(d, 'favorite'); if (item) output.push(item); return output; diff --git a/modules/ui/assistant.js b/modules/ui/assistant.js index 7b7be9f0bd..2c3a744d48 100644 --- a/modules/ui/assistant.js +++ b/modules/ui/assistant.js @@ -57,7 +57,7 @@ export function uiAssistant(context) { var savedChangeset = null; var savedChangeCount = null; var didEditAnythingYet = false; - var isFirstSession = !context.storage('sawSplash'); + context.storage('sawSplash', true); var assistant = function(selection) { @@ -350,11 +350,11 @@ export function uiAssistant(context) { var mainFooter = selection.append('div') .attr('class', 'main-footer'); - bodyTextArea.html(t('assistant.welcome.' + (isFirstSession ? 'first_time' : 'return'))); + bodyTextArea.html(t('assistant.welcome.' + (context.isFirstSession ? 'first_time' : 'return'))); bodyTextArea.selectAll('a') .attr('href', '#') .on('click', function() { - isFirstSession = false; + context.isFirstSession = false; updateDidEditStatus(); context.container().call(uiIntro(context)); redraw(); From 90c427b2c4da0e5e79ced9b974320dccdf32d5e8 Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" <23040076+greenkeeper[bot]@users.noreply.github.com> Date: Thu, 1 Aug 2019 18:46:12 +0000 Subject: [PATCH 250/774] chore(package): update osm-community-index to version 0.11.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 7952d66777..3582ea9bb1 100644 --- a/package.json +++ b/package.json @@ -79,7 +79,7 @@ "mocha-phantomjs-core": "^2.1.0", "name-suggestion-index": "3.1.0", "npm-run-all": "^4.0.0", - "osm-community-index": "0.10.0", + "osm-community-index": "0.11.0", "phantomjs-prebuilt": "~2.1.11", "request": "^2.88.0", "rollup": "~1.16.2", From c41cdcddb7c476d9b766d8163957c148c0dd1eb5 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Thu, 1 Aug 2019 14:56:19 -0400 Subject: [PATCH 251/774] Upgrade to FontAwesome 5.9.0 --- package.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index d5cfd02eb0..4b65380e7f 100644 --- a/package.json +++ b/package.json @@ -55,10 +55,10 @@ "wmf-sitematrix": "0.1.4" }, "devDependencies": { - "@fortawesome/fontawesome-svg-core": "^1.2.18", - "@fortawesome/free-brands-svg-icons": "^5.8.2", - "@fortawesome/free-regular-svg-icons": "^5.8.2", - "@fortawesome/free-solid-svg-icons": "^5.8.2", + "@fortawesome/fontawesome-svg-core": "^1.2.19", + "@fortawesome/free-brands-svg-icons": "^5.9.0", + "@fortawesome/free-regular-svg-icons": "^5.9.0", + "@fortawesome/free-solid-svg-icons": "^5.9.0", "@mapbox/maki": "^6.0.0", "chai": "^4.1.0", "colors": "^1.1.2", From 09bcb1c445ae7cc918eb2b3ddff0d54424deb11e Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Thu, 1 Aug 2019 16:06:29 -0400 Subject: [PATCH 252/774] Don't reload the preset browser results for every toolbar render --- modules/ui/preset_browser.js | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/ui/preset_browser.js b/modules/ui/preset_browser.js index 18bd0c8ec7..098479c73f 100644 --- a/modules/ui/preset_browser.js +++ b/modules/ui/preset_browser.js @@ -97,7 +97,6 @@ export function uiPresetBrowser(context, allowedGeometry, onChoose, onCancel) { popoverContent = popover.selectAll('.popover-content'); renderFilterButtons(); - updateResultsList(); }; browser.isShown = function() { From 56969595ed755423730ac76e59abeaf060ac5fdc Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" <23040076+greenkeeper[bot]@users.noreply.github.com> Date: Thu, 1 Aug 2019 18:46:12 +0000 Subject: [PATCH 253/774] chore(package): update osm-community-index to version 0.11.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 4b65380e7f..df1eb8ee7d 100644 --- a/package.json +++ b/package.json @@ -79,7 +79,7 @@ "mocha-phantomjs-core": "^2.1.0", "name-suggestion-index": "3.1.0", "npm-run-all": "^4.0.0", - "osm-community-index": "0.10.0", + "osm-community-index": "0.11.0", "phantomjs-prebuilt": "~2.1.11", "request": "^2.88.0", "rollup": "~1.16.2", From e705c0f77e20be270a0d27692e1be982e0b7db8c Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Thu, 1 Aug 2019 16:41:11 -0400 Subject: [PATCH 254/774] Fix issue where cycleway field wouldn't populate with existing values (close #6141) --- modules/ui/fields/cycleway.js | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/ui/fields/cycleway.js b/modules/ui/fields/cycleway.js index d6fbecd517..12c097d262 100644 --- a/modules/ui/fields/cycleway.js +++ b/modules/ui/fields/cycleway.js @@ -63,6 +63,7 @@ export function uiFieldCycleway(field, context) { ); }); + items = items.merge(enter); // Update wrap.selectAll('.preset-input-cycleway') From 8cc9ca6aa6f6f3d1a95500a70feef6fbeeba8167 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Fri, 2 Aug 2019 11:17:39 -0400 Subject: [PATCH 255/774] Add script translations to labels --- data/locales.json | 170 ++++++++++++++++++++--------------------- data/update_locales.js | 34 ++++++++- modules/util/detect.js | 3 +- modules/util/locale.js | 37 +++++++-- 4 files changed, 146 insertions(+), 98 deletions(-) diff --git a/data/locales.json b/data/locales.json index 41a01ac2b5..81d3dde479 100644 --- a/data/locales.json +++ b/data/locales.json @@ -1,89 +1,89 @@ { "dataLocales": { - "af": {"rtl": false, "languageNames": {"aa": "Afar", "ab": "Abkasies", "ace": "Atsjenees", "ach": "Akoli", "ada": "Adangme", "ady": "Adyghe", "af": "Afrikaans", "agq": "Aghem", "ain": "Ainu", "ak": "Akan", "ale": "Aleut", "alt": "Suid-Altai", "am": "Amharies", "an": "Aragonees", "anp": "Angika", "ar": "Arabies", "ar-001": "Moderne Standaardarabies", "arc": "Aramees", "arn": "Mapuche", "arp": "Arapaho", "as": "Assamees", "asa": "Asu", "ast": "Asturies", "av": "Avaries", "awa": "Awadhi", "ay": "Aymara", "az": "Azerbeidjans", "ba": "Baskir", "ban": "Balinees", "bas": "Basaa", "be": "Belarussies", "bem": "Bemba", "bez": "Bena", "bg": "Bulgaars", "bgn": "Wes-Balochi", "bho": "Bhojpuri", "bi": "Bislama", "bin": "Bini", "bla": "Siksika", "bm": "Bambara", "bn": "Bengaals", "bo": "Tibettaans", "br": "Bretons", "brx": "Bodo", "bs": "Bosnies", "bug": "Buginees", "byn": "Blin", "ca": "Katalaans", "ce": "Tsjetsjeens", "ceb": "Cebuano", "cgg": "Kiga", "ch": "Chamorro", "chk": "Chuukees", "chm": "Mari", "cho": "Choctaw", "chr": "Cherokees", "chy": "Cheyennees", "ckb": "Sorani", "co": "Korsikaans", "cop": "Kopties", "crs": "Seselwa Franskreools", "cs": "Tsjeggies", "cu": "Kerkslawies", "cv": "Chuvash", "cy": "Wallies", "da": "Deens", "dak": "Dakotaans", "dar": "Dakota", "dav": "Taita", "de": "Duits", "de-AT": "Duits (Oostenryk)", "de-CH": "Switserse hoog-Duits", "dgr": "Dogrib", "dje": "Zarma", "dsb": "Benedesorbies", "dua": "Duala", "dv": "Divehi", "dyo": "Jola-Fonyi", "dz": "Dzongkha", "dzg": "Dazaga", "ebu": "Embu", "ee": "Ewe", "efi": "Efik", "egy": "Antieke Egipties", "eka": "Ekajuk", "el": "Grieks", "en": "Engels", "en-AU": "Engels (Australië)", "en-CA": "Engels (Kanada)", "en-GB": "Engels (VK)", "en-US": "Engels (VSA)", "eo": "Esperanto", "es": "Spaans", "es-419": "Spaans (Latyns-Amerika)", "es-ES": "Spaans (Spanje)", "es-MX": "Spaans (Meksiko)", "et": "Estnies", "eu": "Baskies", "ewo": "Ewondo", "fa": "Persies", "ff": "Fulah", "fi": "Fins", "fil": "Filippyns", "fj": "Fidjiaans", "fo": "Faroëes", "fon": "Fon", "fr": "Frans", "fr-CA": "Frans (Kanada)", "fr-CH": "Frans (Switserland)", "fur": "Friuliaans", "fy": "Fries", "ga": "Iers", "gaa": "Gaa", "gag": "Gagauz", "gan": "Gan-Sjinees", "gd": "Skotse Gallies", "gez": "Geez", "gil": "Gilbertees", "gl": "Galisies", "gn": "Guarani", "gor": "Gorontalo", "got": "Goties", "grc": "Antieke Grieks", "gsw": "Switserse Duits", "gu": "Goedjarati", "guz": "Gusii", "gv": "Manx", "gwi": "Gwichʼin", "ha": "Hausa", "hak": "Hakka-Sjinees", "haw": "Hawais", "he": "Hebreeus", "hi": "Hindi", "hil": "Hiligaynon", "hit": "Hetities", "hmn": "Hmong", "hr": "Kroaties", "hsb": "Oppersorbies", "hsn": "Xiang-Sjinees", "ht": "Haïtiaans", "hu": "Hongaars", "hup": "Hupa", "hy": "Armeens", "hz": "Herero", "ia": "Interlingua", "iba": "Ibanees", "ibb": "Ibibio", "id": "Indonesies", "ie": "Interlingue", "ig": "Igbo", "ii": "Sichuan Yi", "ilo": "Iloko", "inh": "Ingush", "io": "Ido", "is": "Yslands", "it": "Italiaans", "iu": "Inuïties", "ja": "Japannees", "jbo": "Lojban", "jgo": "Ngomba", "jmc": "Machame", "jv": "Javaans", "ka": "Georgies", "kab": "Kabyle", "kac": "Kachin", "kaj": "Jju", "kam": "Kamba", "kbd": "Kabardiaans", "kcg": "Tyap", "kde": "Makonde", "kea": "Kabuverdianu", "kfo": "Koro", "kg": "Kongolees", "kha": "Khasi", "khq": "Koyra Chiini", "ki": "Kikuyu", "kj": "Kuanyama", "kk": "Kazaks", "kkj": "Kako", "kl": "Kalaallisut", "kln": "Kalenjin", "km": "Khmer", "kmb": "Kimbundu", "kn": "Kannada", "ko": "Koreaans", "koi": "Komi-Permyaks", "kok": "Konkani", "kpe": "Kpellees", "kr": "Kanuri", "krc": "Karachay-Balkar", "krl": "Karelies", "kru": "Kurukh", "ks": "Kasjmirs", "ksb": "Shambala", "ksf": "Bafia", "ksh": "Keuls", "ku": "Koerdies", "kum": "Kumyk", "kv": "Komi", "kw": "Kornies", "ky": "Kirgisies", "la": "Latyn", "lad": "Ladino", "lag": "Langi", "lb": "Luxemburgs", "lez": "Lezghies", "lg": "Ganda", "li": "Limburgs", "lkt": "Lakota", "ln": "Lingaals", "lo": "Lao", "loz": "Lozi", "lrc": "Noord-Luri", "lt": "Litaus", "lu": "Luba-Katanga", "lua": "Luba-Lulua", "lun": "Lunda", "luo": "Luo", "lus": "Mizo", "luy": "Luyia", "lv": "Letties", "mad": "Madurees", "mag": "Magahi", "mai": "Maithili", "mak": "Makasar", "mas": "Masai", "mdf": "Moksha", "men": "Mende", "mer": "Meru", "mfe": "Morisjen", "mg": "Malgassies", "mgh": "Makhuwa-Meetto", "mgo": "Meta’", "mh": "Marshallees", "mi": "Maori", "mic": "Micmac", "min": "Minangkabaus", "mk": "Masedonies", "ml": "Malabaars", "mn": "Mongools", "mni": "Manipuri", "moh": "Mohawk", "mos": "Mossi", "mr": "Marathi", "ms": "Maleis", "mt": "Maltees", "mua": "Mundang", "mus": "Kreek", "mwl": "Mirandees", "my": "Birmaans", "myv": "Erzya", "mzn": "Masanderani", "na": "Nauru", "nan": "Min Nan-Sjinees", "nap": "Neapolitaans", "naq": "Nama", "nb": "Boeknoors", "nd": "Noord-Ndebele", "nds": "Lae Duits", "nds-NL": "Nedersaksies", "ne": "Nepalees", "new": "Newari", "ng": "Ndonga", "nia": "Nias", "niu": "Niueaans", "nl": "Nederlands", "nl-BE": "Vlaams", "nmg": "Kwasio", "nn": "Nuwe Noors", "nnh": "Ngiemboon", "no": "Noors", "nog": "Nogai", "nqo": "N’Ko", "nr": "Suid-Ndebele", "nso": "Noord-Sotho", "nus": "Nuer", "nv": "Navajo", "ny": "Nyanja", "nyn": "Nyankole", "oc": "Oksitaans", "om": "Oromo", "or": "Oriya", "os": "Osseties", "pa": "Pandjabi", "pag": "Pangasinan", "pam": "Pampanga", "pap": "Papiamento", "pau": "Palauaans", "pcm": "Nigeriese Pidgin", "phn": "Fenisies", "pl": "Pools", "prg": "Pruisies", "ps": "Pasjto", "pt": "Portugees", "pt-BR": "Portugees (Brasilië)", "pt-PT": "Portugees (Portugal)", "qu": "Quechua", "quc": "K’iche’", "rap": "Rapanui", "rar": "Rarotongaans", "rm": "Reto-Romaans", "rn": "Rundi", "ro": "Roemeens", "ro-MD": "Roemeens (Moldowa)", "rof": "Rombo", "root": "Root", "ru": "Russies", "rup": "Aromanies", "rw": "Rwandees", "rwk": "Rwa", "sa": "Sanskrit", "sad": "Sandawees", "sah": "Sakhaans", "saq": "Samburu", "sat": "Santalies", "sba": "Ngambay", "sbp": "Sangu", "sc": "Sardinies", "scn": "Sisiliaans", "sco": "Skots", "sd": "Sindhi", "sdh": "Suid-Koerdies", "se": "Noord-Sami", "seh": "Sena", "ses": "Koyraboro Senni", "sg": "Sango", "sh": "Serwo-Kroaties", "shi": "Tachelhit", "shn": "Shan", "si": "Sinhala", "sk": "Slowaaks", "sl": "Sloweens", "sm": "Samoaans", "sma": "Suid-Sami", "smj": "Lule Sami", "smn": "Inari Sami", "sms": "Skolt Sami", "sn": "Shona", "snk": "Soninke", "so": "Somalies", "sq": "Albanees", "sr": "Serwies", "srn": "Sranan Tongo", "ss": "Swazi", "ssy": "Saho", "st": "Suid-Sotho", "su": "Sundanees", "suk": "Sukuma", "sv": "Sweeds", "sw": "Swahili", "sw-CD": "Swahili (Demokratiese Republiek van die Kongo)", "swb": "Comoraans", "syr": "Siries", "ta": "Tamil", "te": "Teloegoe", "tem": "Timne", "teo": "Teso", "tet": "Tetoem", "tg": "Tadjiks", "th": "Thai", "ti": "Tigrinya", "tig": "Tigre", "tk": "Turkmeens", "tlh": "Klingon", "tn": "Tswana", "to": "Tongaans", "tpi": "Tok Pisin", "tr": "Turks", "trv": "Taroko", "ts": "Tsonga", "tt": "Tataars", "tum": "Toemboeka", "tvl": "Tuvalu", "tw": "Twi", "twq": "Tasawaq", "ty": "Tahities", "tyv": "Tuvinees", "tzm": "Sentraal-Atlas-Tamazight", "udm": "Udmurt", "ug": "Uighur", "uk": "Oekraïens", "umb": "Umbundu", "ur": "Oerdoe", "uz": "Oezbeeks", "vai": "Vai", "ve": "Venda", "vi": "Viëtnamees", "vo": "Volapük", "vun": "Vunjo", "wa": "Walloon", "wae": "Walser", "wal": "Wolaytta", "war": "Waray", "wbp": "Warlpiri", "wo": "Wolof", "wuu": "Wu-Sjinees", "xal": "Kalmyk", "xh": "Xhosa", "xog": "Soga", "yav": "Yangben", "ybb": "Yemba", "yi": "Jiddisj", "yo": "Yoruba", "yue": "Kantonees", "zgh": "Standaard Marokkaanse Tamazight", "zh": "Sjinees", "zh-Hans": "Chinees (Vereenvoudig)", "zh-Hant": "Chinees (Tradisioneel)", "zu": "Zoeloe", "zun": "Zuni", "zza": "Zaza"}}, - "ar": {"rtl": true, "languageNames": {"aa": "الأفارية", "ab": "الأبخازية", "ace": "الأتشينيزية", "ach": "الأكولية", "ada": "الأدانجمية", "ady": "الأديغة", "ae": "الأفستية", "af": "الأفريقانية", "afh": "الأفريهيلية", "agq": "الأغم", "ain": "الآينوية", "ak": "الأكانية", "akk": "الأكادية", "ale": "الأليوتية", "alt": "الألطائية الجنوبية", "am": "الأمهرية", "an": "الأراغونية", "ang": "الإنجليزية القديمة", "anp": "الأنجيكا", "ar": "العربية", "ar-001": "العربية الرسمية الحديثة", "arc": "الآرامية", "arn": "المابودونغونية", "arp": "الأراباهو", "ars": "اللهجة النجدية", "arw": "الأراواكية", "as": "الأسامية", "asa": "الآسو", "ast": "الأسترية", "av": "الأوارية", "awa": "الأوادية", "ay": "الأيمارا", "az": "الأذربيجانية", "ba": "الباشكيرية", "bal": "البلوشية", "ban": "البالينية", "bas": "الباسا", "bax": "بامن", "bbj": "لغة الغومالا", "be": "البيلاروسية", "bej": "البيجا", "bem": "البيمبا", "bez": "بينا", "bfd": "لغة البافوت", "bg": "البلغارية", "bgn": "البلوشية الغربية", "bho": "البهوجبورية", "bi": "البيسلامية", "bik": "البيكولية", "bin": "البينية", "bkm": "لغة الكوم", "bla": "السيكسيكية", "bm": "البامبارا", "bn": "البنغالية", "bo": "التبتية", "br": "البريتونية", "bra": "البراجية", "brx": "البودو", "bs": "البوسنية", "bss": "أكوس", "bua": "البرياتية", "bug": "البجينيزية", "bum": "لغة البولو", "byn": "البلينية", "byv": "لغة الميدومبا", "ca": "الكتالانية", "cad": "الكادو", "car": "الكاريبية", "cay": "الكايوجية", "cch": "الأتسام", "ce": "الشيشانية", "ceb": "السيبيوانية", "cgg": "تشيغا", "ch": "التشامورو", "chb": "التشيبشا", "chg": "التشاجاتاي", "chk": "التشكيزية", "chm": "الماري", "chn": "الشينوك جارجون", "cho": "الشوكتو", "chp": "الشيباوايان", "chr": "الشيروكي", "chy": "الشايان", "ckb": "السورانية الكردية", "co": "الكورسيكية", "cop": "القبطية", "cr": "الكرى", "crh": "لغة تتار القرم", "crs": "الفرنسية الكريولية السيشيلية", "cs": "التشيكية", "csb": "الكاشبايان", "cu": "سلافية كنسية", "cv": "التشوفاشي", "cy": "الويلزية", "da": "الدانمركية", "dak": "الداكوتا", "dar": "الدارجوا", "dav": "تيتا", "de": "الألمانية", "de-AT": "الألمانية النمساوية", "de-CH": "الألمانية العليا السويسرية", "del": "الديلوير", "den": "السلافية", "dgr": "الدوجريب", "din": "الدنكا", "dje": "الزارمية", "doi": "الدوجرية", "dsb": "صوربيا السفلى", "dua": "الديولا", "dum": "الهولندية الوسطى", "dv": "المالديفية", "dyo": "جولا فونيا", "dyu": "الدايلا", "dz": "الزونخاية", "dzg": "القرعانية", "ebu": "إمبو", "ee": "الإيوي", "efi": "الإفيك", "egy": "المصرية القديمة", "eka": "الإكاجك", "el": "اليونانية", "elx": "الإمايت", "en": "الإنجليزية", "en-AU": "الإنجليزية الأسترالية", "en-CA": "الإنجليزية الكندية", "en-GB": "الإنجليزية البريطانية", "en-US": "الإنجليزية الأمريكية", "enm": "الإنجليزية الوسطى", "eo": "الإسبرانتو", "es": "الإسبانية", "es-419": "الإسبانية أمريكا اللاتينية", "es-ES": "الإسبانية الأوروبية", "es-MX": "الإسبانية المكسيكية", "et": "الإستونية", "eu": "الباسكية", "ewo": "الإيوندو", "fa": "الفارسية", "fan": "الفانج", "fat": "الفانتي", "ff": "الفولانية", "fi": "الفنلندية", "fil": "الفلبينية", "fj": "الفيجية", "fo": "الفاروية", "fon": "الفون", "fr": "الفرنسية", "fr-CA": "الفرنسية الكندية", "fr-CH": "الفرنسية السويسرية", "frc": "الفرنسية الكاجونية", "frm": "الفرنسية الوسطى", "fro": "الفرنسية القديمة", "frr": "الفريزينية الشمالية", "frs": "الفريزينية الشرقية", "fur": "الفريلايان", "fy": "الفريزيان", "ga": "الأيرلندية", "gaa": "الجا", "gag": "الغاغوز", "gan": "الغان الصينية", "gay": "الجايو", "gba": "الجبيا", "gd": "الغيلية الأسكتلندية", "gez": "الجعزية", "gil": "لغة أهل جبل طارق", "gl": "الجاليكية", "gmh": "الألمانية العليا الوسطى", "gn": "الغوارانية", "goh": "الألمانية العليا القديمة", "gon": "الجندي", "gor": "الجورونتالو", "got": "القوطية", "grb": "الجريبو", "grc": "اليونانية القديمة", "gsw": "الألمانية السويسرية", "gu": "الغوجاراتية", "guz": "الغيزية", "gv": "المنكية", "gwi": "غوتشن", "ha": "الهوسا", "hai": "الهيدا", "hak": "الهاكا الصينية", "haw": "لغة هاواي", "he": "العبرية", "hi": "الهندية", "hil": "الهيليجينون", "hit": "الحثية", "hmn": "الهمونجية", "ho": "الهيري موتو", "hr": "الكرواتية", "hsb": "الصوربية العليا", "hsn": "شيانغ الصينية", "ht": "الكريولية الهايتية", "hu": "الهنغارية", "hup": "الهبا", "hy": "الأرمنية", "hz": "الهيريرو", "ia": "اللّغة الوسيطة", "iba": "الإيبان", "ibb": "الإيبيبيو", "id": "الإندونيسية", "ie": "الإنترلينج", "ig": "الإيجبو", "ii": "السيتشيون يي", "ik": "الإينبياك", "ilo": "الإيلوكو", "inh": "الإنجوشية", "io": "الإيدو", "is": "الأيسلندية", "it": "الإيطالية", "iu": "الإينكتيتت", "ja": "اليابانية", "jbo": "اللوجبان", "jgo": "نغومبا", "jmc": "الماتشامية", "jpr": "الفارسية اليهودية", "jrb": "العربية اليهودية", "jv": "الجاوية", "ka": "الجورجية", "kaa": "الكارا-كالباك", "kab": "القبيلية", "kac": "الكاتشين", "kaj": "الجو", "kam": "الكامبا", "kaw": "الكوي", "kbd": "الكاباردايان", "kbl": "كانمبو", "kcg": "التايابية", "kde": "ماكونده", "kea": "كابوفيرديانو", "kfo": "الكورو", "kg": "الكونغو", "kha": "الكازية", "kho": "الخوتانيز", "khq": "كويرا تشيني", "ki": "الكيكيو", "kj": "الكيونياما", "kk": "الكازاخستانية", "kkj": "لغة الكاكو", "kl": "الكالاليست", "kln": "كالينجين", "km": "الخميرية", "kmb": "الكيمبندو", "kn": "الكانادا", "ko": "الكورية", "koi": "كومي-بيرماياك", "kok": "الكونكانية", "kos": "الكوسراين", "kpe": "الكبيل", "kr": "الكانوري", "krc": "الكاراتشاي-بالكار", "krl": "الكاريلية", "kru": "الكوروخ", "ks": "الكشميرية", "ksb": "شامبالا", "ksf": "لغة البافيا", "ksh": "لغة الكولونيان", "ku": "الكردية", "kum": "القموقية", "kut": "الكتيناي", "kv": "الكومي", "kw": "الكورنية", "ky": "القيرغيزية", "la": "اللاتينية", "lad": "اللادينو", "lag": "لانجي", "lah": "اللاهندا", "lam": "اللامبا", "lb": "اللكسمبورغية", "lez": "الليزجية", "lg": "الغاندا", "li": "الليمبورغية", "lkt": "لاكوتا", "ln": "اللينجالا", "lo": "اللاوية", "lol": "منغولى", "lou": "الكريولية اللويزيانية", "loz": "اللوزي", "lrc": "اللرية الشمالية", "lt": "الليتوانية", "lu": "اللوبا كاتانغا", "lua": "اللبا-لؤلؤ", "lui": "اللوسينو", "lun": "اللوندا", "luo": "اللو", "lus": "الميزو", "luy": "لغة اللويا", "lv": "اللاتفية", "mad": "المادريز", "mag": "الماجا", "mai": "المايثيلي", "mak": "الماكاسار", "man": "الماندينغ", "mas": "الماساي", "mde": "مابا", "mdf": "الموكشا", "mdr": "الماندار", "men": "الميند", "mer": "الميرو", "mfe": "المورسيانية", "mg": "الملغاشي", "mga": "الأيرلندية الوسطى", "mgh": "ماخاوا-ميتو", "mgo": "ميتا", "mh": "المارشالية", "mi": "الماورية", "mic": "الميكماكيونية", "min": "المينانجكاباو", "mk": "المقدونية", "ml": "المالايالامية", "mn": "المنغولية", "mnc": "المانشو", "mni": "المانيبورية", "moh": "الموهوك", "mos": "الموسي", "mr": "الماراثية", "ms": "الماليزية", "mt": "المالطية", "mua": "مندنج", "mus": "الكريك", "mwl": "الميرانديز", "mwr": "الماروارية", "my": "البورمية", "myv": "الأرزية", "mzn": "المازندرانية", "na": "النورو", "nan": "مين-نان الصينية", "nap": "النابولية", "naq": "لغة الناما", "nb": "النرويجية بوكمال", "nd": "النديبيل الشمالية", "nds": "الألمانية السفلى", "nds-NL": "السكسونية السفلى", "ne": "النيبالية", "new": "النوارية", "ng": "الندونجا", "nia": "النياس", "niu": "النيوي", "nl": "الهولندية", "nl-BE": "الفلمنكية", "nmg": "كواسيو", "nn": "النرويجية نينورسك", "nnh": "لغة النجيمبون", "no": "النرويجية", "nog": "النوجاي", "non": "النورس القديم", "nqo": "أنكو", "nr": "النديبيل الجنوبي", "nso": "السوتو الشمالية", "nus": "النوير", "nv": "النافاجو", "nwc": "النوارية التقليدية", "ny": "النيانجا", "nym": "النيامويزي", "nyn": "النيانكول", "nyo": "النيورو", "nzi": "النزيما", "oc": "الأوكسيتانية", "oj": "الأوجيبوا", "om": "الأورومية", "or": "الأورية", "os": "الأوسيتيك", "osa": "الأوساج", "ota": "التركية العثمانية", "pa": "البنجابية", "pag": "البانجاسينان", "pal": "البهلوية", "pam": "البامبانجا", "pap": "البابيامينتو", "pau": "البالوان", "pcm": "البدجنية النيجيرية", "peo": "الفارسية القديمة", "phn": "الفينيقية", "pi": "البالية", "pl": "البولندية", "pon": "البوهنبيايان", "prg": "البروسياوية", "pro": "البروفانسية القديمة", "ps": "البشتو", "pt": "البرتغالية", "pt-BR": "البرتغالية البرازيلية", "pt-PT": "البرتغالية الأوروبية", "qu": "الكويتشوا", "quc": "الكيشية", "raj": "الراجاسثانية", "rap": "الراباني", "rar": "الراروتونجاني", "rm": "الرومانشية", "rn": "الرندي", "ro": "الرومانية", "ro-MD": "المولدوفية", "rof": "الرومبو", "rom": "الغجرية", "root": "الجذر", "ru": "الروسية", "rup": "الأرومانيان", "rw": "الكينيارواندا", "rwk": "الروا", "sa": "السنسكريتية", "sad": "السانداوي", "sah": "الساخيّة", "sam": "الآرامية السامرية", "saq": "سامبورو", "sas": "الساساك", "sat": "السانتالية", "sba": "نامبي", "sbp": "سانغو", "sc": "السردينية", "scn": "الصقلية", "sco": "الأسكتلندية", "sd": "السندية", "sdh": "الكردية الجنوبية", "se": "سامي الشمالية", "see": "السنيكا", "seh": "سينا", "sel": "السيلكب", "ses": "كويرابورو سيني", "sg": "السانجو", "sga": "الأيرلندية القديمة", "sh": "صربية-كرواتية", "shi": "تشلحيت", "shn": "الشان", "shu": "العربية التشادية", "si": "السنهالية", "sid": "السيدامو", "sk": "السلوفاكية", "sl": "السلوفانية", "sm": "الساموائية", "sma": "السامي الجنوبي", "smj": "اللول سامي", "smn": "الإيناري سامي", "sms": "السكولت سامي", "sn": "الشونا", "snk": "السونينك", "so": "الصومالية", "sog": "السوجدين", "sq": "الألبانية", "sr": "الصربية", "srn": "السرانان تونجو", "srr": "السرر", "ss": "السواتي", "ssy": "لغة الساهو", "st": "السوتو الجنوبية", "su": "السوندانية", "suk": "السوكوما", "sus": "السوسو", "sux": "السومارية", "sv": "السويدية", "sw": "السواحلية", "sw-CD": "الكونغو السواحلية", "swb": "القمرية", "syc": "سريانية تقليدية", "syr": "السريانية", "ta": "التاميلية", "te": "التيلوغوية", "tem": "التيمن", "teo": "تيسو", "ter": "التيرينو", "tet": "التيتم", "tg": "الطاجيكية", "th": "التايلاندية", "ti": "التغرينية", "tig": "التيغرية", "tiv": "التيف", "tk": "التركمانية", "tkl": "التوكيلاو", "tl": "التاغالوغية", "tlh": "الكلينجون", "tli": "التلينغيتية", "tmh": "التاماشيك", "tn": "التسوانية", "to": "التونغية", "tog": "تونجا - نياسا", "tpi": "التوك بيسين", "tr": "التركية", "trv": "لغة التاروكو", "ts": "السونجا", "tsi": "التسيمشيان", "tt": "التترية", "tum": "التامبوكا", "tvl": "التوفالو", "tw": "التوي", "twq": "تاساواق", "ty": "التاهيتية", "tyv": "التوفية", "tzm": "الأمازيغية وسط الأطلس", "udm": "الأدمرت", "ug": "الأويغورية", "uga": "اليجاريتيك", "uk": "الأوكرانية", "umb": "الأمبندو", "ur": "الأوردية", "uz": "الأوزبكية", "vai": "الفاي", "ve": "الفيندا", "vi": "الفيتنامية", "vo": "لغة الفولابوك", "vot": "الفوتيك", "vun": "الفونجو", "wa": "الولونية", "wae": "الوالسر", "wal": "الولاياتا", "war": "الواراي", "was": "الواشو", "wbp": "وارلبيري", "wo": "الولوفية", "wuu": "الوو الصينية", "xal": "الكالميك", "xh": "الخوسا", "xog": "السوغا", "yao": "الياو", "yap": "اليابيز", "yav": "يانجبن", "ybb": "يمبا", "yi": "اليديشية", "yo": "اليوروبا", "yue": "الكَنْتُونية", "za": "الزهيونج", "zap": "الزابوتيك", "zbl": "رموز المعايير الأساسية", "zen": "الزيناجا", "zgh": "التمازيغية المغربية القياسية", "zh": "الصينية", "zh-Hans": "الصينية المبسطة", "zh-Hant": "الصينية التقليدية", "zu": "الزولو", "zun": "الزونية", "zza": "زازا"}}, - "ar-AA": {"rtl": true, "languageNames": {"aa": "الأفارية", "ab": "الأبخازية", "ace": "الأتشينيزية", "ach": "الأكولية", "ada": "الأدانجمية", "ady": "الأديغة", "ae": "الأفستية", "af": "الأفريقانية", "afh": "الأفريهيلية", "agq": "الأغم", "ain": "الآينوية", "ak": "الأكانية", "akk": "الأكادية", "ale": "الأليوتية", "alt": "الألطائية الجنوبية", "am": "الأمهرية", "an": "الأراغونية", "ang": "الإنجليزية القديمة", "anp": "الأنجيكا", "ar": "العربية", "ar-001": "العربية الرسمية الحديثة", "arc": "الآرامية", "arn": "المابودونغونية", "arp": "الأراباهو", "ars": "اللهجة النجدية", "arw": "الأراواكية", "as": "الأسامية", "asa": "الآسو", "ast": "الأسترية", "av": "الأوارية", "awa": "الأوادية", "ay": "الأيمارا", "az": "الأذربيجانية", "ba": "الباشكيرية", "bal": "البلوشية", "ban": "البالينية", "bas": "الباسا", "bax": "بامن", "bbj": "لغة الغومالا", "be": "البيلاروسية", "bej": "البيجا", "bem": "البيمبا", "bez": "بينا", "bfd": "لغة البافوت", "bg": "البلغارية", "bgn": "البلوشية الغربية", "bho": "البهوجبورية", "bi": "البيسلامية", "bik": "البيكولية", "bin": "البينية", "bkm": "لغة الكوم", "bla": "السيكسيكية", "bm": "البامبارا", "bn": "البنغالية", "bo": "التبتية", "br": "البريتونية", "bra": "البراجية", "brx": "البودو", "bs": "البوسنية", "bss": "أكوس", "bua": "البرياتية", "bug": "البجينيزية", "bum": "لغة البولو", "byn": "البلينية", "byv": "لغة الميدومبا", "ca": "الكتالانية", "cad": "الكادو", "car": "الكاريبية", "cay": "الكايوجية", "cch": "الأتسام", "ce": "الشيشانية", "ceb": "السيبيوانية", "cgg": "تشيغا", "ch": "التشامورو", "chb": "التشيبشا", "chg": "التشاجاتاي", "chk": "التشكيزية", "chm": "الماري", "chn": "الشينوك جارجون", "cho": "الشوكتو", "chp": "الشيباوايان", "chr": "الشيروكي", "chy": "الشايان", "ckb": "السورانية الكردية", "co": "الكورسيكية", "cop": "القبطية", "cr": "الكرى", "crh": "لغة تتار القرم", "crs": "الفرنسية الكريولية السيشيلية", "cs": "التشيكية", "csb": "الكاشبايان", "cu": "سلافية كنسية", "cv": "التشوفاشي", "cy": "الويلزية", "da": "الدانمركية", "dak": "الداكوتا", "dar": "الدارجوا", "dav": "تيتا", "de": "الألمانية", "de-AT": "الألمانية النمساوية", "de-CH": "الألمانية العليا السويسرية", "del": "الديلوير", "den": "السلافية", "dgr": "الدوجريب", "din": "الدنكا", "dje": "الزارمية", "doi": "الدوجرية", "dsb": "صوربيا السفلى", "dua": "الديولا", "dum": "الهولندية الوسطى", "dv": "المالديفية", "dyo": "جولا فونيا", "dyu": "الدايلا", "dz": "الزونخاية", "dzg": "القرعانية", "ebu": "إمبو", "ee": "الإيوي", "efi": "الإفيك", "egy": "المصرية القديمة", "eka": "الإكاجك", "el": "اليونانية", "elx": "الإمايت", "en": "الإنجليزية", "en-AU": "الإنجليزية الأسترالية", "en-CA": "الإنجليزية الكندية", "en-GB": "الإنجليزية البريطانية", "en-US": "الإنجليزية الأمريكية", "enm": "الإنجليزية الوسطى", "eo": "الإسبرانتو", "es": "الإسبانية", "es-419": "الإسبانية أمريكا اللاتينية", "es-ES": "الإسبانية الأوروبية", "es-MX": "الإسبانية المكسيكية", "et": "الإستونية", "eu": "الباسكية", "ewo": "الإيوندو", "fa": "الفارسية", "fan": "الفانج", "fat": "الفانتي", "ff": "الفولانية", "fi": "الفنلندية", "fil": "الفلبينية", "fj": "الفيجية", "fo": "الفاروية", "fon": "الفون", "fr": "الفرنسية", "fr-CA": "الفرنسية الكندية", "fr-CH": "الفرنسية السويسرية", "frc": "الفرنسية الكاجونية", "frm": "الفرنسية الوسطى", "fro": "الفرنسية القديمة", "frr": "الفريزينية الشمالية", "frs": "الفريزينية الشرقية", "fur": "الفريلايان", "fy": "الفريزيان", "ga": "الأيرلندية", "gaa": "الجا", "gag": "الغاغوز", "gan": "الغان الصينية", "gay": "الجايو", "gba": "الجبيا", "gd": "الغيلية الأسكتلندية", "gez": "الجعزية", "gil": "لغة أهل جبل طارق", "gl": "الجاليكية", "gmh": "الألمانية العليا الوسطى", "gn": "الغوارانية", "goh": "الألمانية العليا القديمة", "gon": "الجندي", "gor": "الجورونتالو", "got": "القوطية", "grb": "الجريبو", "grc": "اليونانية القديمة", "gsw": "الألمانية السويسرية", "gu": "الغوجاراتية", "guz": "الغيزية", "gv": "المنكية", "gwi": "غوتشن", "ha": "الهوسا", "hai": "الهيدا", "hak": "الهاكا الصينية", "haw": "لغة هاواي", "he": "العبرية", "hi": "الهندية", "hil": "الهيليجينون", "hit": "الحثية", "hmn": "الهمونجية", "ho": "الهيري موتو", "hr": "الكرواتية", "hsb": "الصوربية العليا", "hsn": "شيانغ الصينية", "ht": "الكريولية الهايتية", "hu": "الهنغارية", "hup": "الهبا", "hy": "الأرمنية", "hz": "الهيريرو", "ia": "اللّغة الوسيطة", "iba": "الإيبان", "ibb": "الإيبيبيو", "id": "الإندونيسية", "ie": "الإنترلينج", "ig": "الإيجبو", "ii": "السيتشيون يي", "ik": "الإينبياك", "ilo": "الإيلوكو", "inh": "الإنجوشية", "io": "الإيدو", "is": "الأيسلندية", "it": "الإيطالية", "iu": "الإينكتيتت", "ja": "اليابانية", "jbo": "اللوجبان", "jgo": "نغومبا", "jmc": "الماتشامية", "jpr": "الفارسية اليهودية", "jrb": "العربية اليهودية", "jv": "الجاوية", "ka": "الجورجية", "kaa": "الكارا-كالباك", "kab": "القبيلية", "kac": "الكاتشين", "kaj": "الجو", "kam": "الكامبا", "kaw": "الكوي", "kbd": "الكاباردايان", "kbl": "كانمبو", "kcg": "التايابية", "kde": "ماكونده", "kea": "كابوفيرديانو", "kfo": "الكورو", "kg": "الكونغو", "kha": "الكازية", "kho": "الخوتانيز", "khq": "كويرا تشيني", "ki": "الكيكيو", "kj": "الكيونياما", "kk": "الكازاخستانية", "kkj": "لغة الكاكو", "kl": "الكالاليست", "kln": "كالينجين", "km": "الخميرية", "kmb": "الكيمبندو", "kn": "الكانادا", "ko": "الكورية", "koi": "كومي-بيرماياك", "kok": "الكونكانية", "kos": "الكوسراين", "kpe": "الكبيل", "kr": "الكانوري", "krc": "الكاراتشاي-بالكار", "krl": "الكاريلية", "kru": "الكوروخ", "ks": "الكشميرية", "ksb": "شامبالا", "ksf": "لغة البافيا", "ksh": "لغة الكولونيان", "ku": "الكردية", "kum": "القموقية", "kut": "الكتيناي", "kv": "الكومي", "kw": "الكورنية", "ky": "القيرغيزية", "la": "اللاتينية", "lad": "اللادينو", "lag": "لانجي", "lah": "اللاهندا", "lam": "اللامبا", "lb": "اللكسمبورغية", "lez": "الليزجية", "lg": "الغاندا", "li": "الليمبورغية", "lkt": "لاكوتا", "ln": "اللينجالا", "lo": "اللاوية", "lol": "منغولى", "lou": "الكريولية اللويزيانية", "loz": "اللوزي", "lrc": "اللرية الشمالية", "lt": "الليتوانية", "lu": "اللوبا كاتانغا", "lua": "اللبا-لؤلؤ", "lui": "اللوسينو", "lun": "اللوندا", "luo": "اللو", "lus": "الميزو", "luy": "لغة اللويا", "lv": "اللاتفية", "mad": "المادريز", "mag": "الماجا", "mai": "المايثيلي", "mak": "الماكاسار", "man": "الماندينغ", "mas": "الماساي", "mde": "مابا", "mdf": "الموكشا", "mdr": "الماندار", "men": "الميند", "mer": "الميرو", "mfe": "المورسيانية", "mg": "الملغاشي", "mga": "الأيرلندية الوسطى", "mgh": "ماخاوا-ميتو", "mgo": "ميتا", "mh": "المارشالية", "mi": "الماورية", "mic": "الميكماكيونية", "min": "المينانجكاباو", "mk": "المقدونية", "ml": "المالايالامية", "mn": "المنغولية", "mnc": "المانشو", "mni": "المانيبورية", "moh": "الموهوك", "mos": "الموسي", "mr": "الماراثية", "ms": "الماليزية", "mt": "المالطية", "mua": "مندنج", "mus": "الكريك", "mwl": "الميرانديز", "mwr": "الماروارية", "my": "البورمية", "myv": "الأرزية", "mzn": "المازندرانية", "na": "النورو", "nan": "مين-نان الصينية", "nap": "النابولية", "naq": "لغة الناما", "nb": "النرويجية بوكمال", "nd": "النديبيل الشمالية", "nds": "الألمانية السفلى", "nds-NL": "السكسونية السفلى", "ne": "النيبالية", "new": "النوارية", "ng": "الندونجا", "nia": "النياس", "niu": "النيوي", "nl": "الهولندية", "nl-BE": "الفلمنكية", "nmg": "كواسيو", "nn": "النرويجية نينورسك", "nnh": "لغة النجيمبون", "no": "النرويجية", "nog": "النوجاي", "non": "النورس القديم", "nqo": "أنكو", "nr": "النديبيل الجنوبي", "nso": "السوتو الشمالية", "nus": "النوير", "nv": "النافاجو", "nwc": "النوارية التقليدية", "ny": "النيانجا", "nym": "النيامويزي", "nyn": "النيانكول", "nyo": "النيورو", "nzi": "النزيما", "oc": "الأوكسيتانية", "oj": "الأوجيبوا", "om": "الأورومية", "or": "الأورية", "os": "الأوسيتيك", "osa": "الأوساج", "ota": "التركية العثمانية", "pa": "البنجابية", "pag": "البانجاسينان", "pal": "البهلوية", "pam": "البامبانجا", "pap": "البابيامينتو", "pau": "البالوان", "pcm": "البدجنية النيجيرية", "peo": "الفارسية القديمة", "phn": "الفينيقية", "pi": "البالية", "pl": "البولندية", "pon": "البوهنبيايان", "prg": "البروسياوية", "pro": "البروفانسية القديمة", "ps": "البشتو", "pt": "البرتغالية", "pt-BR": "البرتغالية البرازيلية", "pt-PT": "البرتغالية الأوروبية", "qu": "الكويتشوا", "quc": "الكيشية", "raj": "الراجاسثانية", "rap": "الراباني", "rar": "الراروتونجاني", "rm": "الرومانشية", "rn": "الرندي", "ro": "الرومانية", "ro-MD": "المولدوفية", "rof": "الرومبو", "rom": "الغجرية", "root": "الجذر", "ru": "الروسية", "rup": "الأرومانيان", "rw": "الكينيارواندا", "rwk": "الروا", "sa": "السنسكريتية", "sad": "السانداوي", "sah": "الساخيّة", "sam": "الآرامية السامرية", "saq": "سامبورو", "sas": "الساساك", "sat": "السانتالية", "sba": "نامبي", "sbp": "سانغو", "sc": "السردينية", "scn": "الصقلية", "sco": "الأسكتلندية", "sd": "السندية", "sdh": "الكردية الجنوبية", "se": "سامي الشمالية", "see": "السنيكا", "seh": "سينا", "sel": "السيلكب", "ses": "كويرابورو سيني", "sg": "السانجو", "sga": "الأيرلندية القديمة", "sh": "صربية-كرواتية", "shi": "تشلحيت", "shn": "الشان", "shu": "العربية التشادية", "si": "السنهالية", "sid": "السيدامو", "sk": "السلوفاكية", "sl": "السلوفانية", "sm": "الساموائية", "sma": "السامي الجنوبي", "smj": "اللول سامي", "smn": "الإيناري سامي", "sms": "السكولت سامي", "sn": "الشونا", "snk": "السونينك", "so": "الصومالية", "sog": "السوجدين", "sq": "الألبانية", "sr": "الصربية", "srn": "السرانان تونجو", "srr": "السرر", "ss": "السواتي", "ssy": "لغة الساهو", "st": "السوتو الجنوبية", "su": "السوندانية", "suk": "السوكوما", "sus": "السوسو", "sux": "السومارية", "sv": "السويدية", "sw": "السواحلية", "sw-CD": "الكونغو السواحلية", "swb": "القمرية", "syc": "سريانية تقليدية", "syr": "السريانية", "ta": "التاميلية", "te": "التيلوغوية", "tem": "التيمن", "teo": "تيسو", "ter": "التيرينو", "tet": "التيتم", "tg": "الطاجيكية", "th": "التايلاندية", "ti": "التغرينية", "tig": "التيغرية", "tiv": "التيف", "tk": "التركمانية", "tkl": "التوكيلاو", "tl": "التاغالوغية", "tlh": "الكلينجون", "tli": "التلينغيتية", "tmh": "التاماشيك", "tn": "التسوانية", "to": "التونغية", "tog": "تونجا - نياسا", "tpi": "التوك بيسين", "tr": "التركية", "trv": "لغة التاروكو", "ts": "السونجا", "tsi": "التسيمشيان", "tt": "التترية", "tum": "التامبوكا", "tvl": "التوفالو", "tw": "التوي", "twq": "تاساواق", "ty": "التاهيتية", "tyv": "التوفية", "tzm": "الأمازيغية وسط الأطلس", "udm": "الأدمرت", "ug": "الأويغورية", "uga": "اليجاريتيك", "uk": "الأوكرانية", "umb": "الأمبندو", "ur": "الأوردية", "uz": "الأوزبكية", "vai": "الفاي", "ve": "الفيندا", "vi": "الفيتنامية", "vo": "لغة الفولابوك", "vot": "الفوتيك", "vun": "الفونجو", "wa": "الولونية", "wae": "الوالسر", "wal": "الولاياتا", "war": "الواراي", "was": "الواشو", "wbp": "وارلبيري", "wo": "الولوفية", "wuu": "الوو الصينية", "xal": "الكالميك", "xh": "الخوسا", "xog": "السوغا", "yao": "الياو", "yap": "اليابيز", "yav": "يانجبن", "ybb": "يمبا", "yi": "اليديشية", "yo": "اليوروبا", "yue": "الكَنْتُونية", "za": "الزهيونج", "zap": "الزابوتيك", "zbl": "رموز المعايير الأساسية", "zen": "الزيناجا", "zgh": "التمازيغية المغربية القياسية", "zh": "الصينية", "zh-Hans": "الصينية المبسطة", "zh-Hant": "الصينية التقليدية", "zu": "الزولو", "zun": "الزونية", "zza": "زازا"}}, - "ast": {"rtl": false, "languageNames": {"aa": "afar", "ab": "abkhazianu", "ace": "achinés", "ach": "acoli", "ada": "adangme", "ady": "adyghe", "ae": "avestanín", "aeb": "árabe de Túnez", "af": "afrikaans", "afh": "afrihili", "agq": "aghem", "ain": "ainu", "ak": "akan", "akk": "acadianu", "akz": "alabama", "ale": "aleut", "aln": "gheg d’Albania", "alt": "altai del sur", "am": "amháricu", "an": "aragonés", "ang": "inglés antiguu", "anp": "angika", "ar": "árabe", "ar-001": "árabe estándar modernu", "arc": "araméu", "arn": "mapuche", "aro": "araona", "arp": "arapaho", "arq": "árabe d’Arxelia", "arw": "arawak", "ary": "árabe de Marruecos", "arz": "árabe d’Exiptu", "as": "asamés", "asa": "asu", "ase": "llingua de signos americana", "ast": "asturianu", "av": "aváricu", "avk": "kotava", "awa": "awadhi", "ay": "aymara", "az": "azerbaixanu", "ba": "bashkir", "bal": "baluchi", "ban": "balinés", "bar": "bávaru", "bas": "basaa", "bax": "bamun", "bbc": "batak toba", "bbj": "ghomala", "be": "bielorrusu", "bej": "beja", "bem": "bemba", "bew": "betawi", "bez": "bena", "bfd": "bafut", "bfq": "badaga", "bg": "búlgaru", "bgn": "balochi occidental", "bho": "bhojpuri", "bi": "bislama", "bik": "bikol", "bin": "bini", "bjn": "banjar", "bkm": "kom", "bla": "siksika", "bm": "bambara", "bn": "bengalín", "bo": "tibetanu", "bpy": "bishnupriya", "bqi": "bakhtiari", "br": "bretón", "bra": "braj", "brh": "brahui", "brx": "bodo", "bs": "bosniu", "bss": "akoose", "bua": "buriat", "bug": "buginés", "bum": "bulu", "byn": "blin", "byv": "medumba", "ca": "catalán", "cad": "caddo", "car": "caribe", "cay": "cayuga", "cch": "atsam", "ce": "chechenu", "ceb": "cebuanu", "cgg": "chiga", "ch": "chamorro", "chb": "chibcha", "chg": "chagatai", "chk": "chuukés", "chm": "mari", "chn": "xíriga chinook", "cho": "choctaw", "chp": "chipewyanu", "chr": "cheroqui", "chy": "cheyenne", "ckb": "kurdu central", "co": "corsu", "cop": "cópticu", "cps": "capiznon", "cr": "cree", "crh": "turcu de Crimea", "crs": "francés criollu seselwa", "cs": "checu", "csb": "kashubianu", "cu": "eslávicu eclesiásticu", "cv": "chuvash", "cy": "galés", "da": "danés", "dak": "dakota", "dar": "dargwa", "dav": "taita", "de": "alemán", "de-AT": "alemán d’Austria", "de-CH": "altualemán de Suiza", "del": "delaware", "den": "slave", "dgr": "dogrib", "din": "dinka", "dje": "zarma", "doi": "dogri", "dsb": "baxu sorbiu", "dtp": "dusun central", "dua": "duala", "dum": "neerlandés mediu", "dv": "divehi", "dyo": "jola-fonyi", "dyu": "dyula", "dz": "dzongkha", "dzg": "dazaga", "ebu": "embú", "ee": "ewe", "efi": "efik", "egl": "emilianu", "egy": "exipciu antiguu", "eka": "ekajuk", "el": "griegu", "elx": "elamita", "en": "inglés", "en-AU": "inglés d’Australia", "en-CA": "inglés de Canadá", "en-GB": "inglés de Gran Bretaña", "en-US": "inglés d’Estaos Xuníos", "enm": "inglés mediu", "eo": "esperanto", "es": "español", "es-419": "español d’América Llatina", "es-ES": "español européu", "es-MX": "español de Méxicu", "esu": "yupik central", "et": "estoniu", "eu": "vascu", "ewo": "ewondo", "ext": "estremeñu", "fa": "persa", "fan": "fang", "fat": "fanti", "ff": "fulah", "fi": "finlandés", "fil": "filipín", "fit": "finlandés de Tornedalen", "fj": "fixanu", "fo": "feroés", "fr": "francés", "fr-CA": "francés de Canadá", "fr-CH": "francés de Suiza", "frc": "francés cajun", "frm": "francés mediu", "fro": "francés antiguu", "frp": "arpitanu", "frr": "frisón del norte", "frs": "frisón oriental", "fur": "friulianu", "fy": "frisón occidental", "ga": "irlandés", "gaa": "ga", "gag": "gagauz", "gan": "chinu gan", "gay": "gayo", "gba": "gbaya", "gbz": "dari zoroastrianu", "gd": "gaélicu escocés", "gez": "geez", "gil": "gilbertés", "gl": "gallegu", "glk": "gilaki", "gmh": "altualemán mediu", "gn": "guaraní", "goh": "altualemán antiguu", "gom": "goan konkani", "gon": "gondi", "gor": "gorontalo", "got": "góticu", "grb": "grebo", "grc": "griegu antiguu", "gsw": "alemán de Suiza", "gu": "guyaratí", "guc": "wayuu", "gur": "frafra", "guz": "gusii", "gv": "manés", "gwi": "gwichʼin", "ha": "ḥausa", "hai": "haida", "hak": "chinu hakka", "haw": "hawaianu", "he": "hebréu", "hi": "hindi", "hif": "hindi de Fiji", "hil": "hiligaynon", "hit": "hitita", "hmn": "hmong", "ho": "hiri motu", "hr": "croata", "hsb": "altu sorbiu", "hsn": "chinu xiang", "ht": "haitianu", "hu": "húngaru", "hup": "hupa", "hy": "armeniu", "hz": "herero", "ia": "interlingua", "iba": "iban", "ibb": "ibibio", "id": "indonesiu", "ie": "interlingue", "ig": "igbo", "ii": "yi de Sichuán", "ik": "inupiaq", "ilo": "iloko", "inh": "ingush", "io": "ido", "is": "islandés", "it": "italianu", "iu": "inuktitut", "izh": "ingrianu", "ja": "xaponés", "jam": "inglés criollu xamaicanu", "jbo": "lojban", "jgo": "ngomba", "jmc": "machame", "jpr": "xudeo-persa", "jrb": "xudeo-árabe", "jut": "jutlandés", "jv": "xavanés", "ka": "xeorxanu", "kaa": "kara-kalpak", "kab": "kabileñu", "kac": "kachin", "kaj": "jju", "kam": "kamba", "kaw": "kawi", "kbd": "kabardianu", "kbl": "kanembu", "kcg": "tyap", "kde": "makonde", "kea": "cabuverdianu", "ken": "kenyang", "kfo": "koro", "kg": "kongo", "kgp": "kaingang", "kha": "khasi", "kho": "khotanés", "khq": "koyra chiini", "khw": "khowar", "ki": "kikuyu", "kiu": "kirmanjki", "kj": "kuanyama", "kk": "kazaquistanín", "kkj": "kako", "kl": "kalaallisut", "kln": "kalenjin", "km": "ḥemer", "kmb": "kimbundu", "kn": "canarés", "ko": "coreanu", "koi": "komi-permyak", "kok": "konkani", "kos": "kosraeanu", "kpe": "kpelle", "kr": "kanuri", "krc": "karachay-balkar", "kri": "krio", "krj": "kinaray-a", "krl": "karelianu", "kru": "kurukh", "ks": "cachemirés", "ksb": "shambala", "ksf": "bafia", "ksh": "colonianu", "ku": "curdu", "kum": "kumyk", "kut": "kutenai", "kv": "komi", "kw": "córnicu", "ky": "kirguistanín", "la": "llatín", "lad": "ladino", "lag": "langi", "lah": "lahnda", "lam": "lamba", "lb": "luxemburgués", "lez": "lezghianu", "lfn": "lingua franca nova", "lg": "ganda", "li": "limburgués", "lij": "ligurianu", "liv": "livonianu", "lkt": "lakota", "lmo": "lombardu", "ln": "lingala", "lo": "laosianu", "lol": "mongo", "loz": "lozi", "lrc": "luri del norte", "lt": "lituanu", "ltg": "latgalianu", "lu": "luba-katanga", "lua": "luba-lulua", "lui": "luiseno", "lun": "lunda", "lus": "mizo", "luy": "luyia", "lv": "letón", "lzh": "chinu lliterariu", "lzz": "laz", "mad": "madurés", "maf": "mafa", "mag": "magahi", "mai": "maithili", "mak": "makasar", "man": "mandingo", "mas": "masái", "mde": "maba", "mdf": "moksha", "mdr": "mandar", "men": "mende", "mer": "meru", "mfe": "morisyen", "mg": "malgaxe", "mga": "írlandés mediu", "mgh": "makhuwa-meetto", "mgo": "meta’", "mh": "marshallés", "mi": "maorí", "mic": "micmac", "min": "minangkabau", "mk": "macedoniu", "ml": "malayalam", "mn": "mongol", "mnc": "manchú", "mni": "manipuri", "moh": "mohawk", "mos": "mossi", "mr": "marathi", "mrj": "mari occidental", "ms": "malayu", "mt": "maltés", "mua": "mundang", "mus": "creek", "mwl": "mirandés", "mwr": "marwari", "mwv": "mentawai", "my": "birmanu", "mye": "myene", "myv": "erzya", "mzn": "mazanderani", "na": "nauru", "nan": "chinu min nan", "nap": "napolitanu", "naq": "nama", "nb": "noruegu Bokmål", "nd": "ndebele del norte", "nds": "baxu alemán", "nds-NL": "baxu saxón", "ne": "nepalés", "new": "newari", "ng": "ndonga", "nia": "nias", "niu": "niueanu", "njo": "ao naga", "nl": "neerlandés", "nl-BE": "flamencu", "nmg": "kwasio", "nn": "noruegu Nynorsk", "nnh": "ngiemboon", "no": "noruegu", "nog": "nogai", "non": "noruegu antiguu", "nov": "novial", "nqo": "n’ko", "nr": "ndebele del sur", "nso": "sotho del norte", "nus": "nuer", "nv": "navajo", "nwc": "newari clásicu", "ny": "nyanja", "nym": "nyamwezi", "nyn": "nyankole", "nyo": "nyoro", "nzi": "nzima", "oc": "occitanu", "oj": "ojibwa", "om": "oromo", "or": "oriya", "os": "oséticu", "osa": "osage", "ota": "turcu otomanu", "pa": "punyabí", "pag": "pangasinan", "pal": "pahlavi", "pam": "pampanga", "pap": "papiamento", "pau": "palauanu", "pcd": "pícaru", "pcm": "nixerianu simplificáu", "pdc": "alemán de Pennsylvania", "pdt": "plautdietsch", "peo": "persa antiguu", "pfl": "alemán palatinu", "phn": "feniciu", "pi": "pali", "pl": "polacu", "pms": "piamontés", "pnt": "pónticu", "pon": "pohnpeianu", "prg": "prusianu", "pro": "provenzal antiguu", "ps": "pashtu", "pt": "portugués", "pt-BR": "portugués del Brasil", "pt-PT": "portugués européu", "qu": "quechua", "quc": "kʼicheʼ", "qug": "quichua del altiplanu de Chimborazo", "raj": "rajasthanín", "rap": "rapanui", "rar": "rarotonganu", "rgn": "romañol", "rif": "rifianu", "rm": "romanche", "rn": "rundi", "ro": "rumanu", "ro-MD": "moldavu", "rof": "rombo", "rom": "romaní", "rtm": "rotumanu", "ru": "rusu", "rue": "rusyn", "rug": "roviana", "rup": "aromanianu", "rw": "kinyarwanda", "rwk": "rwa", "sa": "sánscritu", "sad": "sandavés", "sah": "sakha", "sam": "araméu samaritanu", "saq": "samburu", "sas": "sasak", "sat": "santali", "saz": "saurashtra", "sba": "ngambay", "sbp": "sangu", "sc": "sardu", "scn": "sicilianu", "sco": "scots", "sd": "sindhi", "sdc": "sardu sassarés", "sdh": "kurdu del sur", "se": "sami del norte", "see": "séneca", "seh": "sena", "sei": "seri", "sel": "selkup", "ses": "koyraboro senni", "sg": "sango", "sga": "irlandés antiguu", "sgs": "samogitianu", "sh": "serbo-croata", "shi": "tachelhit", "shn": "shan", "shu": "árabe chadianu", "si": "cingalés", "sid": "sidamo", "sk": "eslovacu", "sl": "eslovenu", "sli": "baxu silesianu", "sly": "selayarés", "sm": "samoanu", "sma": "sami del sur", "smj": "lule sami", "smn": "inari sami", "sms": "skolt sami", "sn": "shona", "snk": "soninke", "so": "somalín", "sog": "sogdianu", "sq": "albanu", "sr": "serbiu", "srn": "sranan tongo", "srr": "serer", "ss": "swati", "ssy": "saho", "st": "sotho del sur", "stq": "frisón de Saterland", "su": "sondanés", "suk": "sukuma", "sus": "susu", "sux": "sumeriu", "sv": "suecu", "sw": "suaḥili", "sw-CD": "suaḥili del Congu", "swb": "comorianu", "syc": "siriacu clásicu", "syr": "siriacu", "szl": "silesianu", "ta": "tamil", "tcy": "tulu", "te": "telugu", "tem": "timne", "teo": "teso", "ter": "terena", "tet": "tetum", "tg": "taxiquistanín", "th": "tailandés", "ti": "tigrinya", "tig": "tigre", "tk": "turcomanu", "tkl": "tokelau", "tkr": "tsakhur", "tl": "tagalog", "tlh": "klingon", "tli": "tlingit", "tly": "talixín", "tmh": "tamashek", "tn": "tswana", "to": "tonganu", "tog": "tonga nyasa", "tpi": "tok pisin", "tr": "turcu", "tru": "turoyo", "trv": "taroko", "ts": "tsonga", "tsd": "tsakoniu", "tsi": "tsimshian", "tt": "tártaru", "ttt": "tati musulmán", "tum": "tumbuka", "tvl": "tuvalu", "tw": "twi", "twq": "tasawaq", "ty": "tahitianu", "tyv": "tuvinianu", "tzm": "tamazight del Atles central", "udm": "udmurt", "ug": "uigur", "uga": "ugaríticu", "uk": "ucraín", "umb": "umbundu", "ur": "urdu", "uz": "uzbequistanín", "ve": "venda", "vec": "venecianu", "vep": "vepsiu", "vi": "vietnamín", "vls": "flamencu occidental", "vmf": "franconianu del Main", "vo": "volapük", "vot": "vóticu", "vro": "voro", "vun": "vunjo", "wa": "valón", "wae": "walser", "wal": "wolaytta", "war": "waray", "was": "washo", "wbp": "warlpiri", "wo": "wolof", "wuu": "chinu wu", "xal": "calmuco", "xh": "xhosa", "xmf": "mingrelianu", "xog": "soga", "yap": "yapés", "yav": "yangben", "ybb": "yemba", "yi": "yiddish", "yo": "yoruba", "yrl": "nheengatu", "yue": "cantonés", "za": "zhuang", "zap": "zapoteca", "zbl": "simbólicu Bliss", "zea": "zeelandés", "zen": "zenaga", "zgh": "tamazight estándar de Marruecos", "zh": "chinu", "zh-Hans": "chinu simplificáu", "zh-Hant": "chinu tradicional", "zu": "zulú", "zun": "zuni", "zza": "zaza"}}, - "be": {"rtl": false, "languageNames": {"aa": "афарская", "ab": "абхазская", "ace": "ачэх", "ada": "адангмэ", "ady": "адыгейская", "af": "афрыкаанс", "agq": "агем", "ain": "айнская", "ak": "акан", "akk": "акадская", "ale": "алеуцкая", "alt": "паўднёваалтайская", "am": "амхарская", "an": "арагонская", "ang": "стараанглійская", "anp": "ангіка", "ar": "арабская", "ar-001": "арабская (Свет)", "arc": "арамейская", "arn": "мапудунгун", "arp": "арапаха", "as": "асамская", "asa": "асу", "ast": "астурыйская", "av": "аварская", "awa": "авадхі", "ay": "аймара", "az": "азербайджанская", "ba": "башкірская", "ban": "балійская", "bas": "басаа", "be": "беларуская", "bem": "бемба", "bez": "бена", "bg": "балгарская", "bgn": "заходняя белуджская", "bho": "бхаджпуры", "bi": "біслама", "bin": "эда", "bla": "блэкфут", "bm": "бамбара", "bn": "бенгальская", "bo": "тыбецкая", "br": "брэтонская", "brx": "бода", "bs": "баснійская", "bua": "бурацкая", "bug": "бугіс", "byn": "білен", "ca": "каталанская", "ce": "чачэнская", "ceb": "себуана", "cgg": "чыга", "ch": "чамора", "chb": "чыбча", "chk": "чуук", "chm": "мары", "cho": "чокта", "chr": "чэрокі", "chy": "шэйен", "ckb": "цэнтральнакурдская", "co": "карсіканская", "cop": "копцкая", "crs": "сэсэльва", "cs": "чэшская", "cu": "царкоўнаславянская", "cv": "чувашская", "cy": "валійская", "da": "дацкая", "dak": "дакота", "dar": "даргінская", "dav": "таіта", "de": "нямецкая", "de-AT": "нямецкая (Аўстрыя)", "de-CH": "нямецкая (Швейцарыя)", "dgr": "догрыб", "dje": "зарма", "dsb": "ніжнялужыцкая", "dua": "дуала", "dv": "мальдыўская", "dyo": "джола-фоньі", "dz": "дзонг-кэ", "dzg": "дазага", "ebu": "эмбу", "ee": "эве", "efi": "эфік", "egy": "старажытнаегіпецкая", "eka": "экаджук", "el": "грэчаская", "en": "англійская", "en-AU": "англійская (Аўстралія)", "en-CA": "англійская (Канада)", "en-GB": "англійская (Вялікабрытанія)", "en-US": "англійская (Злучаныя Штаты Амерыкі)", "eo": "эсперанта", "es": "іспанская", "es-419": "іспанская (Лацінская Амерыка)", "es-ES": "іспанская (Іспанія)", "es-MX": "іспанская (Мексіка)", "et": "эстонская", "eu": "баскская", "ewo": "эвонда", "fa": "фарсі", "ff": "фула", "fi": "фінская", "fil": "філіпінская", "fj": "фіджыйская", "fo": "фарэрская", "fon": "фон", "fr": "французская", "fr-CA": "французская (Канада)", "fr-CH": "французская (Швейцарыя)", "fro": "старафранцузская", "fur": "фрыульская", "fy": "заходняя фрызская", "ga": "ірландская", "gaa": "га", "gag": "гагаузская", "gd": "шатландская гэльская", "gez": "геэз", "gil": "кірыбаці", "gl": "галісійская", "gn": "гуарані", "gor": "гарантала", "grc": "старажытнагрэчаская", "gsw": "швейцарская нямецкая", "gu": "гуджараці", "guz": "гусіі", "gv": "мэнская", "gwi": "гуіч’ін", "ha": "хауса", "haw": "гавайская", "he": "іўрыт", "hi": "хіндзі", "hil": "хілігайнон", "hmn": "хмонг", "hr": "харвацкая", "hsb": "верхнялужыцкая", "ht": "гаіцянская крэольская", "hu": "венгерская", "hup": "хупа", "hy": "армянская", "hz": "герэра", "ia": "інтэрлінгва", "iba": "ібан", "ibb": "ібібія", "id": "інданезійская", "ie": "інтэрлінгвэ", "ig": "ігба", "ii": "сычуаньская йі", "ilo": "ілакана", "inh": "інгушская", "io": "іда", "is": "ісландская", "it": "італьянская", "iu": "інуктытут", "ja": "японская", "jbo": "ложбан", "jgo": "нгомба", "jmc": "мачамбэ", "jv": "яванская", "ka": "грузінская", "kab": "кабільская", "kac": "качынская", "kaj": "дджу", "kam": "камба", "kbd": "кабардзінская", "kcg": "т’яп", "kde": "макондэ", "kea": "кабувердыяну", "kfo": "кора", "kha": "кхасі", "khq": "койра чыіні", "ki": "кікуйю", "kj": "куаньяма", "kk": "казахская", "kkj": "како", "kl": "грэнландская", "kln": "календжын", "km": "кхмерская", "kmb": "кімбунду", "kn": "канада", "ko": "карэйская", "koi": "комі-пярмяцкая", "kok": "канкані", "kpe": "кпеле", "kr": "кануры", "krc": "карачай-балкарская", "krl": "карэльская", "kru": "курух", "ks": "кашмірская", "ksb": "шамбала", "ksf": "бафія", "ksh": "кёльнская", "ku": "курдская", "kum": "кумыцкая", "kv": "комі", "kw": "корнская", "ky": "кіргізская", "la": "лацінская", "lad": "ладына", "lag": "лангі", "lb": "люксембургская", "lez": "лезгінская", "lg": "ганда", "li": "лімбургская", "lkt": "лакота", "ln": "лінгала", "lo": "лаоская", "lol": "монга", "loz": "лозі", "lrc": "паўночная луры", "lt": "літоўская", "lu": "луба-катанга", "lua": "луба-касаі", "lun": "лунда", "luo": "луо", "lus": "мізо", "luy": "луйя", "lv": "латышская", "mad": "мадурская", "mag": "магахі", "mai": "майтхілі", "mak": "макасар", "man": "мандынг", "mas": "маасай", "mdf": "макшанская", "men": "мендэ", "mer": "меру", "mfe": "марысьен", "mg": "малагасійская", "mgh": "макуўа-меета", "mgo": "мета", "mh": "маршальская", "mi": "маары", "mic": "мікмак", "min": "мінангкабау", "mk": "македонская", "ml": "малаялам", "mn": "мангольская", "mni": "мейтэй", "moh": "мохак", "mos": "мосі", "mr": "маратхі", "ms": "малайская", "mt": "мальтыйская", "mua": "мунданг", "mus": "мускогі", "mwl": "мірандыйская", "my": "бірманская", "myv": "эрзянская", "mzn": "мазандэранская", "na": "науру", "nap": "неапалітанская", "naq": "нама", "nb": "нарвежская (букмол)", "nd": "паўночная ндэбеле", "nds": "ніжненямецкая", "nds-NL": "ніжнесаксонская", "ne": "непальская", "new": "неўары", "ng": "ндонга", "nia": "ніас", "niu": "ніўэ", "nl": "нідэрландская", "nl-BE": "нідэрландская (Бельгія)", "nmg": "нгумба", "nn": "нарвежская (нюношк)", "nnh": "нг’ембон", "no": "нарвежская", "nog": "нагайская", "non": "старанарвежская", "nqo": "нко", "nr": "паўднёвая ндэбеле", "nso": "паўночная сота", "nus": "нуэр", "nv": "наваха", "ny": "ньянджа", "nyn": "ньянколе", "oc": "аксітанская", "oj": "аджыбва", "om": "арома", "or": "орыя", "os": "асецінская", "pa": "панджабі", "pag": "пангасінан", "pam": "пампанга", "pap": "пап’яменту", "pau": "палау", "pcm": "нігерыйскі піджын", "peo": "стараперсідская", "phn": "фінікійская", "pl": "польская", "prg": "пруская", "pro": "стараправансальская", "ps": "пушту", "pt": "партугальская", "pt-BR": "бразільская партугальская", "pt-PT": "еўрапейская партугальская", "qu": "кечуа", "quc": "кічэ", "raj": "раджастханская", "rap": "рапануі", "rar": "раратонг", "rm": "рэтараманская", "rn": "рундзі", "ro": "румынская", "ro-MD": "малдаўская", "rof": "ромба", "root": "корань", "ru": "руская", "rup": "арумунская", "rw": "руанда", "rwk": "руа", "sa": "санскрыт", "sad": "сандаўэ", "sah": "якуцкая", "saq": "самбуру", "sat": "санталі", "sba": "нгамбай", "sbp": "сангу", "sc": "сардзінская", "scn": "сіцылійская", "sco": "шатландская", "sd": "сіндхі", "sdh": "паўднёвакурдская", "se": "паўночнасаамская", "seh": "сена", "ses": "кайрабора сэні", "sg": "санга", "sga": "стараірландская", "sh": "сербскахарвацкая", "shi": "ташэльхіт", "shn": "шан", "si": "сінгальская", "sk": "славацкая", "sl": "славенская", "sm": "самоа", "sma": "паўднёвасаамская", "smj": "луле-саамская", "smn": "інары-саамская", "sms": "колта-саамская", "sn": "шона", "snk": "санінке", "so": "самалі", "sq": "албанская", "sr": "сербская", "srn": "сранан-тонга", "ss": "суаці", "ssy": "саха", "st": "сесута", "su": "сунда", "suk": "сукума", "sux": "шумерская", "sv": "шведская", "sw": "суахілі", "sw-CD": "кангалезская суахілі", "swb": "каморская", "syr": "сірыйская", "ta": "тамільская", "te": "тэлугу", "tem": "тэмнэ", "teo": "тэсо", "tet": "тэтум", "tg": "таджыкская", "th": "тайская", "ti": "тыгрынья", "tig": "тыгрэ", "tk": "туркменская", "tlh": "клінган", "tn": "тсвана", "to": "танганская", "tpi": "ток-пісін", "tr": "турэцкая", "trv": "тарока", "ts": "тсонга", "tt": "татарская", "tum": "тумбука", "tvl": "тувалу", "twq": "тасаўак", "ty": "таіці", "tyv": "тувінская", "tzm": "цэнтральнаатлаская тамазіхт", "udm": "удмурцкая", "ug": "уйгурская", "uk": "украінская", "umb": "умбунду", "ur": "урду", "uz": "узбекская", "vai": "ваі", "ve": "венда", "vi": "в’етнамская", "vo": "валапюк", "vun": "вунджо", "wa": "валонская", "wae": "вальшская", "wal": "волайта", "war": "варай", "wbp": "варлпіры", "wo": "валоф", "xal": "калмыцкая", "xh": "коса", "xog": "сога", "yav": "янгбэн", "ybb": "йемба", "yi": "ідыш", "yo": "ёруба", "yue": "кантонскі дыялект кітайскай", "zap": "сапатэк", "zgh": "стандартная мараканская тамазіхт", "zh": "кітайская", "zh-Hans": "кітайская (спрошчаныя іерогліфы)", "zh-Hant": "кітайская (традыцыйныя іерогліфы)", "zu": "зулу", "zun": "зуні", "zza": "зазакі"}}, - "bg": {"rtl": false, "languageNames": {"aa": "афарски", "ab": "абхазки", "ace": "ачешки", "ach": "аколи", "ada": "адангме", "ady": "адигейски", "ae": "авестски", "af": "африканс", "afh": "африхили", "agq": "агем", "ain": "айну", "ak": "акан", "akk": "акадски", "ale": "алеутски", "alt": "южноалтайски", "am": "амхарски", "an": "арагонски", "ang": "староанглийски", "anp": "ангика", "ar": "арабски", "ar-001": "съвременен стандартен арабски", "arc": "арамейски", "arn": "мапуче", "arp": "арапахо", "arw": "аравак", "as": "асамски", "asa": "асу", "ast": "астурски", "av": "аварски", "awa": "авади", "ay": "аймара", "az": "азербайджански", "ba": "башкирски", "bal": "балучи", "ban": "балийски", "bas": "баса", "be": "беларуски", "bej": "бея", "bem": "бемба", "bez": "бена", "bg": "български", "bgn": "западен балочи", "bho": "боджпури", "bi": "бислама", "bik": "биколски", "bin": "бини", "bla": "сиксика", "bm": "бамбара", "bn": "бенгалски", "bo": "тибетски", "br": "бретонски", "bra": "брадж", "brx": "бодо", "bs": "босненски", "bua": "бурятски", "bug": "бугински", "byn": "биленски", "ca": "каталонски", "cad": "каддо", "car": "карибски", "cch": "атсам", "ce": "чеченски", "ceb": "себуански", "cgg": "чига", "ch": "чаморо", "chb": "чибча", "chg": "чагатай", "chk": "чуук", "chm": "марийски", "chn": "жаргон чинуук", "cho": "чокто", "chp": "чиипувски", "chr": "черокски", "chy": "шайенски", "ckb": "кюрдски (централен)", "co": "корсикански", "cop": "коптски", "cr": "крии", "crh": "кримскотатарски", "crs": "сеселва, креолски френски", "cs": "чешки", "csb": "кашубски", "cu": "църковнославянски", "cv": "чувашки", "cy": "уелски", "da": "датски", "dak": "дакотски", "dar": "даргински", "dav": "таита", "de": "немски", "de-AT": "немски (Австрия)", "de-CH": "немски (Швейцария)", "del": "делауер", "den": "слейви", "dgr": "догриб", "din": "динка", "dje": "зарма", "doi": "догри", "dsb": "долнолужишки", "dua": "дуала", "dum": "средновековен холандски", "dv": "дивехи", "dyo": "диола-фони", "dyu": "диула", "dz": "дзонгкха", "dzg": "дазага", "ebu": "ембу", "ee": "еве", "efi": "ефик", "egy": "древноегипетски", "eka": "екажук", "el": "гръцки", "elx": "еламитски", "en": "английски", "en-AU": "английски (Австралия)", "en-CA": "английски (Канада)", "en-GB": "английски (Обединеното кралство)", "en-US": "английски (САЩ)", "enm": "средновековен английски", "eo": "есперанто", "es": "испански", "es-419": "испански (Латинска Америка)", "es-ES": "испански (Испания)", "es-MX": "испански (Мексико)", "et": "естонски", "eu": "баски", "ewo": "евондо", "fa": "персийски", "fan": "фанг", "fat": "фанти", "ff": "фула", "fi": "фински", "fil": "филипински", "fj": "фиджийски", "fo": "фарьорски", "fon": "фон", "fr": "френски", "fr-CA": "френски (Канада)", "fr-CH": "френски (Швейцария)", "frm": "средновековен френски", "fro": "старофренски", "frr": "северен фризски", "frs": "източнофризийски", "fur": "фриулиански", "fy": "западнофризийски", "ga": "ирландски", "gaa": "га", "gag": "гагаузки", "gay": "гайо", "gba": "гбая", "gd": "шотландски галски", "gez": "гииз", "gil": "гилбертски", "gl": "галисийски", "gmh": "средновисоконемски", "gn": "гуарани", "goh": "старовисоконемски", "gon": "гонди", "gor": "горонтало", "got": "готически", "grb": "гребо", "grc": "древногръцки", "gsw": "швейцарски немски", "gu": "гуджарати", "guz": "гусии", "gv": "манкски", "gwi": "гвичин", "ha": "хауса", "hai": "хайда", "haw": "хавайски", "he": "иврит", "hi": "хинди", "hil": "хилигайнон", "hit": "хитски", "hmn": "хмонг", "ho": "хири моту", "hr": "хърватски", "hsb": "горнолужишки", "ht": "хаитянски креолски", "hu": "унгарски", "hup": "хупа", "hy": "арменски", "hz": "хереро", "ia": "интерлингва", "iba": "ибан", "ibb": "ибибио", "id": "индонезийски", "ie": "оксидентал", "ig": "игбо", "ii": "съчуански и", "ik": "инупиак", "ilo": "илоко", "inh": "ингушетски", "io": "идо", "is": "исландски", "it": "италиански", "iu": "инуктитут", "ja": "японски", "jbo": "ложбан", "jgo": "нгомба", "jmc": "мачаме", "jpr": "юдео-персийски", "jrb": "юдео-арабски", "jv": "явански", "ka": "грузински", "kaa": "каракалпашки", "kab": "кабилски", "kac": "качински", "kaj": "жжу", "kam": "камба", "kaw": "кави", "kbd": "кабардиан", "kcg": "туап", "kde": "маконде", "kea": "кабовердиански", "kfo": "коро", "kg": "конгоански", "kha": "кхаси", "kho": "котски", "khq": "койра чиини", "ki": "кикую", "kj": "кваняма", "kk": "казахски", "kkj": "како", "kl": "гренландски", "kln": "календжин", "km": "кхмерски", "kmb": "кимбунду", "kn": "каннада", "ko": "корейски", "koi": "коми-пермякски", "kok": "конкани", "kos": "косраен", "kpe": "кпеле", "kr": "канури", "krc": "карачай-балкарски", "krl": "карелски", "kru": "курук", "ks": "кашмирски", "ksb": "шамбала", "ksf": "бафия", "ksh": "кьолнски", "ku": "кюрдски", "kum": "кумикски", "kut": "кутенай", "kv": "коми", "kw": "корнуолски", "ky": "киргизки", "la": "латински", "lad": "ладино", "lag": "ланги", "lah": "лахнда", "lam": "ламба", "lb": "люксембургски", "lez": "лезгински", "lg": "ганда", "li": "лимбургски", "lkt": "лакота", "ln": "лингала", "lo": "лаоски", "lol": "монго", "loz": "лози", "lrc": "северен лури", "lt": "литовски", "lu": "луба-катанга", "lua": "луба-лулуа", "lui": "луисеньо", "lun": "лунда", "luo": "луо", "lus": "мизо", "luy": "лухя", "lv": "латвийски", "mad": "мадурски", "mag": "магахи", "mai": "майтхили", "mak": "макасар", "man": "мандинго", "mas": "масайски", "mdf": "мокша", "mdr": "мандар", "men": "менде", "mer": "меру", "mfe": "морисиен", "mg": "малгашки", "mga": "средновековен ирландски", "mgh": "макуа мето", "mgo": "мета", "mh": "маршалезе", "mi": "маорски", "mic": "микмак", "min": "минангкабау", "mk": "македонски", "ml": "малаялам", "mn": "монголски", "mnc": "манджурски", "mni": "манипурски", "moh": "мохоук", "mos": "моси", "mr": "марати", "ms": "малайски", "mt": "малтийски", "mua": "мунданг", "mus": "мускогски", "mwl": "мирандийски", "mwr": "марвари", "my": "бирмански", "myv": "ерзиа", "mzn": "мазандари", "na": "науру", "nap": "неаполитански", "naq": "нама", "nb": "норвежки (букмол)", "nd": "северен ндебеле", "nds": "долнонемски", "nds-NL": "долносаксонски", "ne": "непалски", "new": "неварски", "ng": "ндонга", "nia": "ниас", "niu": "ниуеан", "nl": "нидерландски", "nl-BE": "фламандски", "nmg": "квасио", "nn": "норвежки (нюношк)", "nnh": "нгиембун", "no": "норвежки", "nog": "ногаи", "non": "старонорвежки", "nqo": "нко", "nr": "южен ндебеле", "nso": "северен сото", "nus": "нуер", "nv": "навахо", "nwc": "класически невари", "ny": "нянджа", "nym": "ниамвези", "nyn": "нянколе", "nyo": "нуоро", "nzi": "нзима", "oc": "окситански", "oj": "оджибва", "om": "оромо", "or": "ория", "os": "осетски", "osa": "осейджи", "ota": "отомански турски", "pa": "пенджабски", "pag": "пангасинан", "pal": "пахлави", "pam": "пампанга", "pap": "папиаменто", "pau": "палауан", "pcm": "нигерийски пиджин", "peo": "староперсийски", "phn": "финикийски", "pi": "пали", "pl": "полски", "pon": "понапеан", "prg": "пруски", "pro": "старопровансалски", "ps": "пущу", "pt": "португалски", "pt-BR": "португалски (Бразилия)", "pt-PT": "португалски (Португалия)", "qu": "кечуа", "quc": "киче", "raj": "раджастански", "rap": "рапа нуи", "rar": "раротонга", "rm": "реторомански", "rn": "рунди", "ro": "румънски", "ro-MD": "молдовски", "rof": "ромбо", "rom": "ромски", "root": "роот", "ru": "руски", "rup": "арумънски", "rw": "киняруанда", "rwk": "рва", "sa": "санскрит", "sad": "сандаве", "sah": "якутски", "sam": "самаритански арамейски", "saq": "самбуру", "sas": "сасак", "sat": "сантали", "sba": "нгамбай", "sbp": "сангу", "sc": "сардински", "scn": "сицилиански", "sco": "шотландски", "sd": "синдхи", "sdh": "южнокюрдски", "se": "северносаамски", "seh": "сена", "sel": "селкуп", "ses": "койраборо сени", "sg": "санго", "sga": "староирландски", "sh": "сърбохърватски", "shi": "ташелхит", "shn": "шан", "si": "синхалски", "sid": "сидамо", "sk": "словашки", "sl": "словенски", "sm": "самоански", "sma": "южносаамски", "smj": "луле-саамски", "smn": "инари-саамски", "sms": "сколт-саамски", "sn": "шона", "snk": "сонинке", "so": "сомалийски", "sog": "согдийски", "sq": "албански", "sr": "сръбски", "srn": "сранан тонго", "srr": "серер", "ss": "свати", "ssy": "сахо", "st": "сесото", "su": "сундански", "suk": "сукума", "sus": "сусу", "sux": "шумерски", "sv": "шведски", "sw": "суахили", "sw-CD": "конгоански суахили", "swb": "коморски", "syc": "класически сирийски", "syr": "сирийски", "ta": "тамилски", "te": "телугу", "tem": "темне", "teo": "тесо", "ter": "терено", "tet": "тетум", "tg": "таджикски", "th": "тайски", "ti": "тигриня", "tig": "тигре", "tiv": "тив", "tk": "туркменски", "tkl": "токелайски", "tl": "тагалог", "tlh": "клингонски", "tli": "тлингит", "tmh": "тамашек", "tn": "тсвана", "to": "тонгански", "tog": "нианса тонга", "tpi": "ток писин", "tr": "турски", "trv": "тароко", "ts": "цонга", "tsi": "цимшиански", "tt": "татарски", "tum": "тумбука", "tvl": "тувалуански", "tw": "туи", "twq": "тасавак", "ty": "таитянски", "tyv": "тувински", "tzm": "централноатласки тамазигт", "udm": "удмуртски", "ug": "уйгурски", "uga": "угаритски", "uk": "украински", "umb": "умбунду", "ur": "урду", "uz": "узбекски", "vai": "ваи", "ve": "венда", "vi": "виетнамски", "vo": "волапюк", "vot": "вотик", "vun": "вунджо", "wa": "валонски", "wae": "валзерски немски", "wal": "валамо", "war": "варай", "was": "уашо", "wbp": "валпири", "wo": "волоф", "xal": "калмик", "xh": "ксоса", "xog": "сога", "yao": "яо", "yap": "япезе", "yav": "янгбен", "ybb": "йемба", "yi": "идиш", "yo": "йоруба", "yue": "кантонски", "za": "зуанг", "zap": "запотек", "zbl": "блис символи", "zen": "зенага", "zgh": "стандартен марокански тамазигт", "zh": "китайски", "zh-Hans": "китайски (опростен)", "zh-Hant": "китайски (традиционен)", "zu": "зулуски", "zun": "зуни", "zza": "заза"}}, - "bn": {"rtl": false, "languageNames": {"aa": "আফার", "ab": "আবখাজিয়ান", "ace": "অ্যাচাইনিজ", "ach": "আকোলি", "ada": "অদাগ্মে", "ady": "আদেগে", "ae": "আবেস্তীয়", "af": "আফ্রিকান", "afh": "আফ্রিহিলি", "agq": "এঘেম", "ain": "আইনু", "ak": "আকান", "akk": "আক্কাদিয়ান", "ale": "আলেউত", "alt": "দক্ষিন আলতাই", "am": "আমহারিক", "an": "আর্গোনিজ", "ang": "প্রাচীন ইংরেজী", "anp": "আঙ্গিকা", "ar": "আরবী", "ar-001": "আধুনিক আদর্শ আরবী", "arc": "আরামাইক", "arn": "মাপুচি", "arp": "আরাপাহো", "arw": "আরাওয়াক", "as": "অসমীয়া", "asa": "আসু", "ast": "আস্তুরিয়", "av": "আভেরিক", "awa": "আওয়াধি", "ay": "আয়মারা", "az": "আজারবাইজানী", "ba": "বাশকির", "bal": "বেলুচী", "ban": "বালিনীয়", "bas": "বাসা", "be": "বেলারুশিয়", "bej": "বেজা", "bem": "বেম্বা", "bez": "বেনা", "bg": "বুলগেরিয়", "bgn": "পশ্চিম বালোচি", "bho": "ভোজপুরি", "bi": "বিসলামা", "bik": "বিকোল", "bin": "বিনি", "bla": "সিকসিকা", "bm": "বামবারা", "bn": "বাংলা", "bo": "তিব্বতি", "br": "ব্রেটন", "bra": "ব্রাজ", "brx": "বোড়ো", "bs": "বসনীয়ান", "bua": "বুরিয়াত", "bug": "বুগিনি", "byn": "ব্লিন", "ca": "কাতালান", "cad": "ক্যাডো", "car": "ক্যারিব", "cch": "আত্সাম", "ce": "চেচেন", "ceb": "চেবুয়ানো", "cgg": "চিগা", "ch": "চামোরো", "chb": "চিবচা", "chg": "চাগাতাই", "chk": "চুকি", "chm": "মারি", "chn": "চিনুক জার্গন", "cho": "চকটোও", "chp": "চিপেওয়ান", "chr": "চেরোকী", "chy": "শাইয়েন", "ckb": "মধ্য কুর্দিশ", "co": "কর্সিকান", "cop": "কপটিক", "cr": "ক্রি", "crh": "ক্রিমিয়ান তুর্কি", "crs": "সেসেলওয়া ক্রেওল ফ্রেঞ্চ", "cs": "চেক", "csb": "কাশুবিয়ান", "cu": "চার্চ স্লাভিক", "cv": "চুবাস", "cy": "ওয়েলশ", "da": "ডেনিশ", "dak": "ডাকোটা", "dar": "দার্গওয়া", "dav": "তাইতা", "de": "জার্মান", "de-AT": "অস্ট্রিয়ান জার্মান", "de-CH": "সুইস হাই জার্মান", "del": "ডেলাওয়ের", "den": "স্ল্যাভ", "dgr": "দোগ্রীব", "din": "ডিংকা", "dje": "জার্মা", "doi": "ডোগরি", "dsb": "নিম্নতর সোর্বিয়ান", "dua": "দুয়ালা", "dum": "মধ্য ডাচ", "dv": "দিবেহি", "dyo": "জোলা-ফনী", "dyu": "ডিউলা", "dz": "জোঙ্গা", "dzg": "দাজাগা", "ebu": "এম্বু", "ee": "ইউয়ি", "efi": "এফিক", "egy": "প্রাচীন মিশরীয়", "eka": "ইকাজুক", "el": "গ্রিক", "elx": "এলামাইট", "en": "ইংরেজি", "en-AU": "অস্ট্রেলীয় ইংরেজি", "en-CA": "কানাডীয় ইংরেজি", "en-GB": "ব্রিটিশ ইংরেজি", "en-US": "আমেরিকার ইংরেজি", "enm": "মধ্য ইংরেজি", "eo": "এস্পেরান্তো", "es": "স্প্যানিশ", "es-419": "ল্যাটিন আমেরিকান স্প্যানিশ", "es-ES": "ইউরোপীয় স্প্যানিশ", "es-MX": "ম্যাক্সিকান স্প্যানিশ", "et": "এস্তোনীয়", "eu": "বাস্ক", "ewo": "ইওন্ডো", "fa": "ফার্সি", "fan": "ফ্যাঙ্গ", "fat": "ফান্তি", "ff": "ফুলাহ্", "fi": "ফিনিশ", "fil": "ফিলিপিনো", "fj": "ফিজিআন", "fo": "ফারোস", "fon": "ফন", "fr": "ফরাসি", "fr-CA": "কানাডীয় ফরাসি", "fr-CH": "সুইস ফরাসি", "frc": "কাজুন ফরাসি", "frm": "মধ্য ফরাসি", "fro": "প্রাচীন ফরাসি", "frr": "উত্তরাঞ্চলীয় ফ্রিসিয়ান", "frs": "পূর্ব ফ্রিসিয়", "fur": "ফ্রিউলিয়ান", "fy": "পশ্চিম ফ্রিসিয়ান", "ga": "আইরিশ", "gaa": "গা", "gag": "গাগাউজ", "gay": "গায়ো", "gba": "বায়া", "gd": "স্কটস-গ্যেলিক", "gez": "গীজ", "gil": "গিলবার্টিজ", "gl": "গ্যালিশিয়", "gmh": "মধ্য-উচ্চ জার্মানি", "gn": "গুয়ারানি", "goh": "প্রাচীন উচ্চ জার্মানি", "gon": "গোন্ডি", "gor": "গোরোন্তালো", "got": "গথিক", "grb": "গ্রেবো", "grc": "প্রাচীন গ্রীক", "gsw": "সুইস জার্মান", "gu": "গুজরাটি", "guz": "গুসী", "gv": "ম্যাঙ্কস", "gwi": "গওইচ্’ইন", "ha": "হাউসা", "hai": "হাইডা", "haw": "হাওয়াইয়ান", "he": "হিব্রু", "hi": "হিন্দি", "hil": "হিলিগ্যায়নোন", "hit": "হিট্টিট", "hmn": "হ্‌মোঙ", "ho": "হিরি মোতু", "hr": "ক্রোয়েশীয়", "hsb": "উচ্চ সোর্বিয়ান", "hsn": "Xiang চীনা", "ht": "হাইতিয়ান ক্রেওল", "hu": "হাঙ্গেরীয়", "hup": "হুপা", "hy": "আর্মেনিয়", "hz": "হেরেরো", "ia": "ইন্টারলিঙ্গুয়া", "iba": "ইবান", "ibb": "ইবিবিও", "id": "ইন্দোনেশীয়", "ie": "ইন্টারলিঙ্গ", "ig": "ইগ্‌বো", "ii": "সিচুয়ান য়ি", "ik": "ইনুপিয়াক", "ilo": "ইলোকো", "inh": "ইঙ্গুশ", "io": "ইডো", "is": "আইসল্যান্ডীয়", "it": "ইতালিয়", "iu": "ইনুক্টিটুট", "ja": "জাপানি", "jbo": "লোজবান", "jgo": "গোম্বা", "jmc": "মাকামে", "jpr": "জুদেও ফার্সি", "jrb": "জুদেও আরবি", "jv": "জাভানিজ", "ka": "জর্জিয়ান", "kaa": "কারা-কাল্পাক", "kab": "কাবাইলে", "kac": "কাচিন", "kaj": "অজ্জু", "kam": "কাম্বা", "kaw": "কাউই", "kbd": "কাবার্ডিয়ান", "kcg": "টাইয়াপ", "kde": "মাকোন্দে", "kea": "কাবুভারদিয়ানু", "kfo": "কোরো", "kg": "কঙ্গো", "kha": "খাশি", "kho": "খোটানিজ", "khq": "কোয়রা চীনি", "ki": "কিকুয়ু", "kj": "কোয়ানিয়ামা", "kk": "কাজাখ", "kkj": "কাকো", "kl": "ক্যালাল্লিসুট", "kln": "কালেনজিন", "km": "খমের", "kmb": "কিম্বুন্দু", "kn": "কন্নড়", "ko": "কোরিয়ান", "koi": "কমি-পারমিআক", "kok": "কোঙ্কানি", "kos": "কোস্রাইন", "kpe": "ক্‌পেল্লে", "kr": "কানুরি", "krc": "কারচে-বাল্কার", "krl": "কারেলিয়ান", "kru": "কুরুখ", "ks": "কাশ্মীরি", "ksb": "শাম্বালা", "ksf": "বাফিয়া", "ksh": "কলোনিয়ান", "ku": "কুর্দিশ", "kum": "কুমিক", "kut": "কুটেনাই", "kv": "কোমি", "kw": "কর্ণিশ", "ky": "কির্গিজ", "la": "লাতিন", "lad": "লাডিনো", "lag": "লাঙ্গি", "lah": "লান্ডা", "lam": "লাম্বা", "lb": "লুক্সেমবার্গীয়", "lez": "লেজঘিয়ান", "lg": "গান্ডা", "li": "লিম্বুর্গিশ", "lkt": "লাকোটা", "ln": "লিঙ্গালা", "lo": "লাও", "lol": "মোঙ্গো", "lou": "লুইসিয়ানা ক্রেওল", "loz": "লোজি", "lrc": "উত্তর লুরি", "lt": "লিথুয়েনীয়", "lu": "লুবা-কাটাঙ্গা", "lua": "লুবা-লুলুয়া", "lui": "লুইসেনো", "lun": "লুন্ডা", "luo": "লুয়ো", "lus": "মিজো", "luy": "লুইয়া", "lv": "লাত্‌ভীয়", "mad": "মাদুরেসে", "mag": "মাগাহি", "mai": "মৈথিলি", "mak": "ম্যাকাসার", "man": "ম্যান্ডিঙ্গো", "mas": "মাসাই", "mdf": "মোকশা", "mdr": "ম্যাণ্ডার", "men": "মেন্ডে", "mer": "মেরু", "mfe": "মরিসিয়ান", "mg": "মালাগাসি", "mga": "মধ্য আইরিশ", "mgh": "মাখুয়া-মেত্তো", "mgo": "মেটা", "mh": "মার্শালিজ", "mi": "মাওরি", "mic": "মিকম্যাক", "min": "মিনাংকাবাউ", "mk": "ম্যাসিডোনীয়", "ml": "মালায়ালাম", "mn": "মঙ্গোলিয়", "mnc": "মাঞ্চু", "mni": "মণিপুরী", "moh": "মোহাওক", "mos": "মসি", "mr": "মারাঠি", "ms": "মালয়", "mt": "মল্টিয়", "mua": "মুদাঙ্গ", "mus": "ক্রিক", "mwl": "মিরান্ডিজ", "mwr": "মারোয়ারি", "my": "বর্মি", "myv": "এরজিয়া", "mzn": "মাজানদেরানি", "na": "নাউরু", "nap": "নেয়াপোলিটান", "naq": "নামা", "nb": "নরওয়েজিয়ান বোকমাল", "nd": "উত্তর এন্দেবিলি", "nds": "নিম্ন জার্মানি", "nds-NL": "লো স্যাক্সন", "ne": "নেপালী", "new": "নেওয়ারি", "ng": "এন্দোঙ্গা", "nia": "নিয়াস", "niu": "নিউয়ান", "nl": "ওলন্দাজ", "nl-BE": "ফ্লেমিশ", "nmg": "কোয়াসিও", "nn": "নরওয়েজীয়ান নিনর্স্ক", "nnh": "নিঙ্গেম্বুন", "no": "নরওয়েজীয়", "nog": "নোগাই", "non": "প্রাচীন নর্স", "nqo": "এন’কো", "nr": "দক্ষিণ এনডেবেলে", "nso": "উত্তরাঞ্চলীয় সোথো", "nus": "নুয়ার", "nv": "নাভাজো", "nwc": "প্রাচীন নেওয়ারী", "ny": "নায়াঞ্জা", "nym": "ন্যায়ামওয়েজি", "nyn": "ন্যায়াঙ্কোলে", "nyo": "ন্যোরো", "nzi": "এনজিমা", "oc": "অক্সিটান", "oj": "ওজিবওয়া", "om": "অরোমো", "or": "ওড়িয়া", "os": "ওসেটিক", "osa": "ওসেজ", "ota": "অটোমান তুর্কি", "pa": "পাঞ্জাবী", "pag": "পাঙ্গাসিনান", "pal": "পাহ্লাভি", "pam": "পাম্পাঙ্গা", "pap": "পাপিয়ামেন্টো", "pau": "পালায়ুয়ান", "pcm": "নাইজেরিয় পিজিন", "peo": "প্রাচীন ফার্সি", "phn": "ফোনিশীয়ান", "pi": "পালি", "pl": "পোলিশ", "pon": "পোহ্নপেইয়ান", "prg": "প্রুশিয়ান", "pro": "প্রাচীন প্রোভেনসাল", "ps": "পুশতু", "pt": "পর্তুগীজ", "pt-BR": "ব্রাজিলের পর্তুগীজ", "pt-PT": "ইউরোপের পর্তুগীজ", "qu": "কেচুয়া", "quc": "কি‘চে", "raj": "রাজস্থানী", "rap": "রাপানুই", "rar": "রারোটোংগান", "rm": "রোমান্স", "rn": "রুন্দি", "ro": "রোমানীয়", "ro-MD": "মলদাভিয়", "rof": "রম্বো", "rom": "রোমানি", "root": "মূল", "ru": "রুশ", "rup": "আরমেনিয়ান", "rw": "কিনয়ারোয়ান্ডা", "rwk": "রাওয়া", "sa": "সংস্কৃত", "sad": "স্যান্ডাওয়ে", "sah": "শাখা", "sam": "সামারিটান আরামিক", "saq": "সামবুরু", "sas": "সাসাক", "sat": "সাঁওতালি", "sba": "ন্যাগাম্বে", "sbp": "সাঙ্গু", "sc": "সার্ডিনিয়ান", "scn": "সিসিলিয়ান", "sco": "স্কটস", "sd": "সিন্ধি", "sdh": "দক্ষিণ কুর্দিশ", "se": "উত্তরাঞ্চলীয় সামি", "seh": "সেনা", "sel": "সেল্কুপ", "ses": "কোয়রাবেনো সেন্নী", "sg": "সাঙ্গো", "sga": "প্রাচীন আইরিশ", "sh": "সার্বো-ক্রোয়েশিয়", "shi": "তাচেলহিত", "shn": "শান", "si": "সিংহলী", "sid": "সিডামো", "sk": "স্লোভাক", "sl": "স্লোভেনীয়", "sm": "সামোয়ান", "sma": "দক্ষিণাঞ্চলীয় সামি", "smj": "লুলে সামি", "smn": "ইনারি সামি", "sms": "স্কোল্ট সামি", "sn": "শোনা", "snk": "সোনিঙ্কে", "so": "সোমালি", "sog": "সোগডিয়ান", "sq": "আলবেনীয়", "sr": "সার্বীয়", "srn": "স্রানান টোঙ্গো", "srr": "সেরের", "ss": "সোয়াতি", "ssy": "সাহো", "st": "দক্ষিন সোথো", "su": "সুদানী", "suk": "সুকুমা", "sus": "সুসু", "sux": "সুমেরীয়", "sv": "সুইডিশ", "sw": "সোয়াহিলি", "sw-CD": "কঙ্গো সোয়াহিলি", "swb": "কমোরিয়ান", "syc": "প্রাচীন সিরিও", "syr": "সিরিয়াক", "ta": "তামিল", "te": "তেলুগু", "tem": "টাইম্নে", "teo": "তেসো", "ter": "তেরেনো", "tet": "তেতুম", "tg": "তাজিক", "th": "থাই", "ti": "তিগরিনিয়া", "tig": "টাইগ্রে", "tiv": "টিভ", "tk": "তুর্কমেনী", "tkl": "টোকেলাউ", "tl": "তাগালগ", "tlh": "ক্লিঙ্গন", "tli": "ত্লিঙ্গিট", "tmh": "তামাশেক", "tn": "সোয়ানা", "to": "টোঙ্গান", "tog": "নায়াসা টোঙ্গা", "tpi": "টোক পিসিন", "tr": "তুর্কী", "trv": "তারোকো", "ts": "সঙ্গা", "tsi": "সিমশিয়ান", "tt": "তাতার", "tum": "তুম্বুকা", "tvl": "টুভালু", "tw": "টোয়াই", "twq": "তাসাওয়াক", "ty": "তাহিতিয়ান", "tyv": "টুভিনিয়ান", "tzm": "সেন্ট্রাল আটলাস তামাজিগাত", "udm": "উডমুর্ট", "ug": "উইঘুর", "uga": "উগারিটিক", "uk": "ইউক্রেনীয়", "umb": "উম্বুন্দু", "ur": "উর্দু", "uz": "উজবেকীয়", "vai": "ভাই", "ve": "ভেন্ডা", "vi": "ভিয়েতনামী", "vo": "ভোলাপুক", "vot": "ভোটিক", "vun": "ভুঞ্জো", "wa": "ওয়ালুন", "wae": "ওয়ালসের", "wal": "ওয়ালামো", "war": "ওয়ারে", "was": "ওয়াশো", "wbp": "ওয়ার্লপিরি", "wo": "উওলোফ", "wuu": "Wu চীনা", "xal": "কাল্মইক", "xh": "জোসা", "xog": "সোগা", "yao": "ইয়াও", "yap": "ইয়াপেসে", "yav": "ইয়াঙ্গবেন", "ybb": "ইয়েম্বা", "yi": "ইয়েদ্দিশ", "yo": "ইওরুবা", "yue": "ক্যানটোনীজ", "za": "ঝু্য়াঙ", "zap": "জাপোটেক", "zbl": "চিত্র ভাষা", "zen": "জেনাগা", "zgh": "আদর্শ মরক্কোন তামাজিগাত", "zh": "চীনা", "zh-Hans": "সরলীকৃত চীনা", "zh-Hant": "ঐতিহ্যবাহি চীনা", "zu": "জুলু", "zun": "জুনি", "zza": "জাজা"}}, - "bs": {"rtl": false, "languageNames": {"aa": "afarski", "ab": "abhaski", "ace": "ačinski", "ach": "akoli", "ada": "adangmejski", "ady": "adigejski", "ae": "avestanski", "af": "afrikans", "afh": "afrihili", "agq": "aghem", "ain": "ainu", "ak": "akan", "akk": "akadijski", "ale": "aleutski", "alt": "južni altai", "am": "amharski", "an": "aragonski", "ang": "staroengleski", "anp": "angika", "ar": "arapski", "ar-001": "moderni standardni arapski", "arc": "aramejski", "arn": "mapuški", "arp": "arapaho", "arw": "aravak", "as": "asamski", "asa": "asu", "ast": "asturijski", "av": "avarski", "awa": "avadhi", "ay": "ajmara", "az": "azerbejdžanski", "ba": "baškirski", "bal": "baluči", "ban": "balinezijski", "bas": "basa", "bax": "bamunski", "bbj": "gomala", "be": "bjeloruski", "bej": "beja", "bem": "bemba", "bez": "bena", "bfd": "bafut", "bg": "bugarski", "bgn": "zapadni belučki", "bho": "bojpuri", "bi": "bislama", "bik": "bikol", "bin": "bini", "bkm": "kom", "bla": "siksika", "bm": "bambara", "bn": "bengalski", "bo": "tibetanski", "br": "bretonski", "bra": "braj", "brx": "bodo", "bs": "bosanski", "bss": "akoski", "bua": "buriat", "bug": "bugiški", "bum": "bulu", "byn": "blin", "byv": "medumba", "ca": "katalonski", "cad": "kado", "car": "karipski", "cay": "kajuga", "cch": "atsam", "ce": "čečenski", "ceb": "cebuano", "cgg": "čiga", "ch": "čamoro", "chb": "čibča", "chg": "čagatai", "chk": "čukeski", "chm": "mari", "chn": "činukski žargon", "cho": "čoktav", "chp": "čipvijanski", "chr": "čiroki", "chy": "čejenski", "ckb": "centralnokurdski", "co": "korzikanski", "cop": "koptski", "cr": "kri", "crh": "krimski turski", "crs": "seselva kreolski francuski", "cs": "češki", "csb": "kašubijanski", "cu": "staroslavenski", "cv": "čuvaški", "cy": "velški", "da": "danski", "dak": "dakota", "dar": "dargva", "dav": "taita", "de": "njemački", "de-AT": "njemački (Austrija)", "de-CH": "gornjonjemački (Švicarska)", "del": "delaver", "den": "slave", "dgr": "dogrib", "din": "dinka", "dje": "zarma", "doi": "dogri", "dsb": "donjolužičkosrpski", "dua": "duala", "dum": "srednjovjekovni holandski", "dv": "divehi", "dyo": "jola-foni", "dyu": "diula", "dz": "džonga", "dzg": "dazaga", "ebu": "embu", "ee": "eve", "efi": "efik", "egy": "staroegipatski", "eka": "ekajuk", "el": "grčki", "elx": "elamitski", "en": "engleski", "en-AU": "engleski (Australija)", "en-CA": "engleski (Kanada)", "en-GB": "engleski (Velika Britanija)", "en-US": "engleski (Sjedinjene Američke Države)", "enm": "srednjovjekovni engleski", "eo": "esperanto", "es": "španski", "es-419": "španski (Latinska Amerika)", "es-ES": "španski (Španija)", "es-MX": "španski (Meksiko)", "et": "estonski", "eu": "baskijski", "ewo": "evondo", "fa": "perzijski", "fan": "fang", "fat": "fanti", "ff": "fulah", "fi": "finski", "fil": "filipino", "fj": "fidžijski", "fo": "farski", "fr": "francuski", "fr-CA": "francuski (Kanada)", "fr-CH": "francuski (Švicarska)", "frm": "srednjovjekovni francuski", "fro": "starofrancuski", "frr": "sjeverni frizijski", "frs": "istočnofrizijski", "fur": "friulijski", "fy": "zapadni frizijski", "ga": "irski", "gaa": "ga", "gag": "gagauški", "gay": "gajo", "gba": "gbaja", "gd": "škotski galski", "gez": "staroetiopski", "gil": "gilbertski", "gl": "galicijski", "gmh": "srednjovjekovni gornjonjemački", "gn": "gvarani", "goh": "staronjemački", "gon": "gondi", "gor": "gorontalo", "got": "gotski", "grb": "grebo", "grc": "starogrčki", "gsw": "njemački (Švicarska)", "gu": "gudžarati", "guz": "gusi", "gv": "manks", "gwi": "gvičin", "ha": "hausa", "hai": "haida", "haw": "havajski", "he": "hebrejski", "hi": "hindi", "hil": "hiligajnon", "hit": "hitite", "hmn": "hmong", "ho": "hiri motu", "hr": "hrvatski", "hsb": "gornjolužičkosrpski", "ht": "haićanski kreolski", "hu": "mađarski", "hup": "hupa", "hy": "armenski", "hz": "herero", "ia": "interlingva", "iba": "iban", "ibb": "ibibio", "id": "indonezijski", "ie": "interlingve", "ig": "igbo", "ii": "sičuan ji", "ik": "inupiak", "ilo": "iloko", "inh": "ingušetski", "io": "ido", "is": "islandski", "it": "italijanski", "iu": "inuktitut", "ja": "japanski", "jbo": "lojban", "jgo": "ngomba", "jmc": "makame", "jpr": "judeo-perzijski", "jrb": "judeo-arapski", "jv": "javanski", "ka": "gruzijski", "kaa": "kara-kalpak", "kab": "kabile", "kac": "kačin", "kaj": "kaju", "kam": "kamba", "kaw": "kavi", "kbd": "kabardijski", "kbl": "kanembu", "kcg": "tjap", "kde": "makonde", "kea": "zelenortski", "kfo": "koro", "kg": "kongo", "kha": "kasi", "kho": "kotanizijski", "khq": "kojra čini", "ki": "kikuju", "kj": "kuanjama", "kk": "kazaški", "kkj": "kako", "kl": "kalalisutski", "kln": "kalenjin", "km": "kmerski", "kmb": "kimbundu", "kn": "kanada", "ko": "korejski", "koi": "komi-permski", "kok": "konkani", "kos": "kosrejski", "kpe": "kpele", "kr": "kanuri", "krc": "karačaj-balkar", "kri": "krio", "krl": "karelijski", "kru": "kuruški", "ks": "kašmirski", "ksb": "šambala", "ksf": "bafia", "ksh": "kelnski", "ku": "kurdski", "kum": "kumik", "kut": "kutenai", "kv": "komi", "kw": "kornski", "ky": "kirgiški", "la": "latinski", "lad": "ladino", "lag": "langi", "lah": "landa", "lam": "lamba", "lb": "luksemburški", "lez": "lezgijski", "lg": "ganda", "li": "limburški", "lkt": "lakota", "ln": "lingala", "lo": "laoski", "lol": "mongo", "loz": "lozi", "lrc": "sjeverni luri", "lt": "litvanski", "lu": "luba-katanga", "lua": "luba-lulua", "lui": "luiseno", "lun": "lunda", "lus": "mizo", "luy": "luhija", "lv": "latvijski", "mad": "madureški", "maf": "mafa", "mag": "magahi", "mai": "maitili", "mak": "makasar", "man": "mandingo", "mas": "masai", "mde": "maba", "mdf": "mokša", "mdr": "mandar", "men": "mende", "mer": "meru", "mfe": "mauricijski kreolski", "mg": "malgaški", "mga": "srednjovjekovni irski", "mgh": "makuva-meto", "mgo": "meta", "mh": "maršalski", "mi": "maorski", "mic": "mikmak", "min": "minangkabau", "mk": "makedonski", "ml": "malajalam", "mn": "mongolski", "mnc": "manču", "mni": "manipuri", "moh": "mohavk", "mos": "mosi", "mr": "marati", "ms": "malajski", "mt": "malteški", "mua": "mundang", "mus": "kriški", "mwl": "mirandeški", "mwr": "marvari", "my": "burmanski", "mye": "mjene", "myv": "erzija", "mzn": "mazanderanski", "na": "nauru", "nap": "napolitanski", "naq": "nama", "nb": "norveški (Bokmal)", "nd": "sjeverni ndebele", "nds": "donjonjemački", "nds-NL": "donjosaksonski", "ne": "nepalski", "new": "nevari", "ng": "ndonga", "nia": "nias", "niu": "niue", "nl": "holandski", "nl-BE": "flamanski", "nmg": "kvasio", "nn": "norveški (Nynorsk)", "nnh": "ngiembon", "no": "norveški", "nog": "nogai", "non": "staronordijski", "nqo": "nko", "nr": "južni ndebele", "nso": "sjeverni soto", "nus": "nuer", "nv": "navaho", "nwc": "klasični nevari", "ny": "njanja", "nym": "njamvezi", "nyn": "njankole", "nyo": "njoro", "nzi": "nzima", "oc": "oksitanski", "oj": "ojibva", "om": "oromo", "or": "orijski", "os": "osetski", "osa": "osage", "ota": "osmanski turski", "pa": "pandžapski", "pag": "pangasinski", "pal": "pahlavi", "pam": "pampanga", "pap": "papiamento", "pau": "palauanski", "pcm": "nigerijski pidžin", "peo": "staroperzijski", "phn": "feničanski", "pi": "pali", "pl": "poljski", "pon": "ponpejski", "prg": "pruski", "pro": "staroprovansalski", "ps": "paštu", "pt": "portugalski", "pt-BR": "portugalski (Brazil)", "pt-PT": "portugalski (Portugal)", "qu": "kečua", "quc": "kiče", "raj": "rajastani", "rap": "rapanui", "rar": "rarotongan", "rm": "retoromanski", "rn": "rundi", "ro": "rumunski", "ro-MD": "moldavski", "rof": "rombo", "rom": "romani", "root": "korijenski", "ru": "ruski", "rup": "arumunski", "rw": "kinjaruanda", "rwk": "rua", "sa": "sanskrit", "sad": "sandave", "sah": "jakutski", "sam": "samaritanski aramejski", "saq": "samburu", "sas": "sasak", "sat": "santali", "sba": "ngambaj", "sbp": "sangu", "sc": "sardinijski", "scn": "sicilijanski", "sco": "škotski", "sd": "sindi", "sdh": "južni kurdski", "se": "sjeverni sami", "see": "seneka", "seh": "sena", "sel": "selkup", "ses": "kojraboro seni", "sg": "sango", "sga": "staroirski", "sh": "srpskohrvatski", "shi": "tahelhit", "shn": "šan", "shu": "čadski arapski", "si": "sinhaleški", "sid": "sidamo", "sk": "slovački", "sl": "slovenski", "sm": "samoanski", "sma": "južni sami", "smj": "lule sami", "smn": "inari sami", "sms": "skolt sami", "sn": "šona", "snk": "soninke", "so": "somalski", "sog": "sogdien", "sq": "albanski", "sr": "srpski", "srn": "srananski tongo", "srr": "serer", "ss": "svati", "ssy": "saho", "st": "južni soto", "su": "sundanski", "suk": "sukuma", "sus": "susu", "sux": "sumerski", "sv": "švedski", "sw": "svahili", "sw-CD": "svahili (Demokratska Republika Kongo)", "swb": "komorski", "syc": "klasični sirijski", "syr": "sirijski", "ta": "tamilski", "te": "telugu", "tem": "timne", "teo": "teso", "ter": "tereno", "tet": "tetum", "tg": "tadžički", "th": "tajlandski", "ti": "tigrinja", "tig": "tigre", "tk": "turkmenski", "tkl": "tokelau", "tl": "tagalog", "tlh": "klingonski", "tli": "tlingit", "tmh": "tamašek", "tn": "tsvana", "to": "tonganski", "tog": "njasa tonga", "tpi": "tok pisin", "tr": "turski", "trv": "taroko", "ts": "tsonga", "tsi": "tsimšian", "tt": "tatarski", "tum": "tumbuka", "tvl": "tuvalu", "tw": "tvi", "twq": "tasavak", "ty": "tahićanski", "tyv": "tuvinijski", "tzm": "centralnoatlaski tamazigt", "udm": "udmurt", "ug": "ujgurski", "uga": "ugaritski", "uk": "ukrajinski", "umb": "umbundu", "ur": "urdu", "uz": "uzbečki", "ve": "venda", "vi": "vijetnamski", "vo": "volapuk", "vot": "votski", "vun": "vunjo", "wa": "valun", "wae": "valser", "wal": "valamo", "war": "varej", "was": "vašo", "wbp": "varlpiri", "wo": "volof", "xal": "kalmik", "xh": "hosa", "xog": "soga", "yao": "jao", "yap": "japeški", "yav": "jangben", "ybb": "jemba", "yi": "jidiš", "yo": "jorubanski", "yue": "kantonski", "za": "zuang", "zap": "zapotečki", "zbl": "blis simboli", "zen": "zenaga", "zgh": "standardni marokanski tamazigt", "zh": "kineski", "zh-Hans": "kineski (pojednostavljeni)", "zh-Hant": "kineski (tradicionalni)", "zu": "zulu", "zun": "zuni", "zza": "zaza"}}, - "ca": {"rtl": false, "languageNames": {"aa": "àfar", "ab": "abkhaz", "ace": "atjeh", "ach": "acoli", "ada": "adangme", "ady": "adigué", "ae": "avèstic", "af": "afrikaans", "afh": "afrihili", "agq": "aghem", "ain": "ainu", "ak": "àkan", "akk": "accadi", "akz": "alabama", "ale": "aleuta", "aln": "albanès geg", "alt": "altaic meridional", "am": "amhàric", "an": "aragonès", "ang": "anglès antic", "anp": "angika", "ar": "àrab", "ar-001": "àrab estàndard modern", "arc": "arameu", "arn": "mapudungu", "aro": "araona", "arp": "arapaho", "ars": "àrab najdi", "arw": "arauac", "arz": "àrab egipci", "as": "assamès", "asa": "pare", "ase": "llengua de signes americana", "ast": "asturià", "av": "àvar", "awa": "awadhi", "ay": "aimara", "az": "azerbaidjanès", "ba": "baixkir", "bal": "balutxi", "ban": "balinès", "bar": "bavarès", "bas": "basa", "bax": "bamum", "bbj": "ghomala", "be": "belarús", "bej": "beja", "bem": "bemba", "bez": "bena", "bfd": "bafut", "bfq": "badaga", "bg": "búlgar", "bgn": "balutxi occidental", "bho": "bhojpuri", "bi": "bislama", "bik": "bicol", "bin": "edo", "bkm": "kom", "bla": "blackfoot", "bm": "bambara", "bn": "bengalí", "bo": "tibetà", "br": "bretó", "bra": "braj", "brh": "brahui", "brx": "bodo", "bs": "bosnià", "bss": "akoose", "bua": "buriat", "bug": "bugui", "bum": "bulu", "byn": "bilin", "byv": "medumba", "ca": "català", "cad": "caddo", "car": "carib", "cay": "cayuga", "cch": "atsam", "ccp": "chakma", "ce": "txetxè", "ceb": "cebuà", "cgg": "chiga", "ch": "chamorro", "chb": "txibtxa", "chg": "txagatai", "chk": "chuuk", "chm": "mari", "chn": "pidgin chinook", "cho": "choctaw", "chp": "chipewyan", "chr": "cherokee", "chy": "xeiene", "ckb": "kurd central", "co": "cors", "cop": "copte", "cr": "cree", "crh": "tàtar de Crimea", "crs": "francès crioll de les Seychelles", "cs": "txec", "csb": "caixubi", "cu": "eslau eclesiàstic", "cv": "txuvaix", "cy": "gal·lès", "da": "danès", "dak": "dakota", "dar": "darguà", "dav": "taita", "de": "alemany", "de-AT": "alemany austríac", "de-CH": "alemany estàndard suís", "del": "delaware", "den": "slavi", "dgr": "dogrib", "din": "dinka", "dje": "zarma", "doi": "dogri", "dsb": "baix sòrab", "dua": "douala", "dum": "neerlandès mitjà", "dv": "divehi", "dyo": "diola", "dyu": "jula", "dz": "dzongka", "dzg": "dazaga", "ebu": "embu", "ee": "ewe", "efi": "efik", "egl": "emilià", "egy": "egipci antic", "eka": "ekajuk", "el": "grec", "elx": "elamita", "en": "anglès", "en-AU": "anglès australià", "en-CA": "anglès canadenc", "en-GB": "anglès britànic", "en-US": "anglès americà", "enm": "anglès mitjà", "eo": "esperanto", "es": "espanyol", "es-419": "espanyol hispanoamericà", "es-ES": "espanyol europeu", "es-MX": "espanyol de Mèxic", "et": "estonià", "eu": "basc", "ewo": "ewondo", "ext": "extremeny", "fa": "persa", "fan": "fang", "fat": "fanti", "ff": "ful", "fi": "finès", "fil": "filipí", "fj": "fijià", "fo": "feroès", "fr": "francès", "fr-CA": "francès canadenc", "fr-CH": "francès suís", "frc": "francès cajun", "frm": "francès mitjà", "fro": "francès antic", "frr": "frisó septentrional", "frs": "frisó oriental", "fur": "friülà", "fy": "frisó occidental", "ga": "irlandès", "gaa": "ga", "gag": "gagaús", "gan": "xinès gan", "gay": "gayo", "gba": "gbaya", "gd": "gaèlic escocès", "gez": "gueez", "gil": "gilbertès", "gl": "gallec", "glk": "gilaki", "gmh": "alt alemany mitjà", "gn": "guaraní", "goh": "alt alemany antic", "gom": "concani de Goa", "gon": "gondi", "gor": "gorontalo", "got": "gòtic", "grb": "grebo", "grc": "grec antic", "gsw": "alemany suís", "gu": "gujarati", "guc": "wayú", "guz": "gusí", "gv": "manx", "gwi": "gwich’in", "ha": "haussa", "hai": "haida", "hak": "xinès hakka", "haw": "hawaià", "he": "hebreu", "hi": "hindi", "hif": "hindi de Fiji", "hil": "híligaynon", "hit": "hitita", "hmn": "hmong", "ho": "hiri motu", "hr": "croat", "hsb": "alt sòrab", "hsn": "xinès xiang", "ht": "crioll d’Haití", "hu": "hongarès", "hup": "hupa", "hy": "armeni", "hz": "herero", "ia": "interlingua", "iba": "iban", "ibb": "ibibio", "id": "indonesi", "ie": "interlingue", "ig": "igbo", "ii": "yi sichuan", "ik": "inupiak", "ilo": "ilocano", "inh": "ingúix", "io": "ido", "is": "islandès", "it": "italià", "iu": "inuktitut", "ja": "japonès", "jam": "crioll anglès de Jamaica", "jbo": "lojban", "jgo": "ngomba", "jmc": "machame", "jpr": "judeopersa", "jrb": "judeoàrab", "jv": "javanès", "ka": "georgià", "kaa": "karakalpak", "kab": "cabilenc", "kac": "katxin", "kaj": "jju", "kam": "kamba", "kaw": "kawi", "kbd": "kabardí", "kbl": "kanembu", "kcg": "tyap", "kde": "makonde", "kea": "crioll capverdià", "ken": "kenyang", "kfo": "koro", "kg": "kongo", "kgp": "kaingà", "kha": "khasi", "kho": "khotanès", "khq": "koyra chiini", "ki": "kikuiu", "kj": "kuanyama", "kk": "kazakh", "kkj": "kako", "kl": "grenlandès", "kln": "kalenjin", "km": "khmer", "kmb": "kimbundu", "kn": "kannada", "ko": "coreà", "koi": "komi-permiac", "kok": "concani", "kos": "kosraeà", "kpe": "kpelle", "kr": "kanuri", "krc": "karatxai-balkar", "kri": "krio", "krl": "carelià", "kru": "kurukh", "ks": "caixmiri", "ksb": "shambala", "ksf": "bafia", "ksh": "kölsch", "ku": "kurd", "kum": "kúmik", "kut": "kutenai", "kv": "komi", "kw": "còrnic", "ky": "kirguís", "la": "llatí", "lad": "judeocastellà", "lag": "langi", "lah": "panjabi occidental", "lam": "lamba", "lb": "luxemburguès", "lez": "lesguià", "lg": "ganda", "li": "limburguès", "lij": "lígur", "lkt": "lakota", "lmo": "llombard", "ln": "lingala", "lo": "laosià", "lol": "mongo", "lou": "crioll francès de Louisiana", "loz": "lozi", "lrc": "luri septentrional", "lt": "lituà", "lu": "luba katanga", "lua": "luba-lulua", "lui": "luisenyo", "lun": "lunda", "lus": "mizo", "luy": "luyia", "lv": "letó", "lzh": "xinès clàssic", "lzz": "laz", "mad": "madurès", "maf": "mafa", "mag": "magahi", "mai": "maithili", "mak": "makassar", "man": "mandinga", "mas": "massai", "mde": "maba", "mdf": "mordovià moksa", "mdr": "mandar", "men": "mende", "mer": "meru", "mfe": "mauricià", "mg": "malgaix", "mga": "gaèlic irlandès mitjà", "mgh": "makhuwa-metto", "mgo": "meta’", "mh": "marshallès", "mi": "maori", "mic": "micmac", "min": "minangkabau", "mk": "macedoni", "ml": "malaiàlam", "mn": "mongol", "mnc": "manxú", "mni": "manipurí", "moh": "mohawk", "mos": "moore", "mr": "marathi", "mrj": "mari occidental", "ms": "malai", "mt": "maltès", "mua": "mundang", "mus": "creek", "mwl": "mirandès", "mwr": "marwari", "my": "birmà", "mye": "myene", "myv": "mordovià erza", "mzn": "mazanderani", "na": "nauruà", "nan": "xinès min del sud", "nap": "napolità", "naq": "nama", "nb": "noruec bokmål", "nd": "ndebele septentrional", "nds": "baix alemany", "nds-NL": "baix saxó", "ne": "nepalès", "new": "newari", "ng": "ndonga", "nia": "nias", "niu": "niueà", "nl": "neerlandès", "nl-BE": "flamenc", "nmg": "bissio", "nn": "noruec nynorsk", "nnh": "ngiemboon", "no": "noruec", "nog": "nogai", "non": "nòrdic antic", "nov": "novial", "nqo": "n’Ko", "nr": "ndebele meridional", "nso": "sotho septentrional", "nus": "nuer", "nv": "navaho", "nwc": "newari clàssic", "ny": "nyanja", "nym": "nyamwesi", "nyn": "nyankole", "nyo": "nyoro", "nzi": "nzema", "oc": "occità", "oj": "ojibwa", "om": "oromo", "or": "oriya", "os": "osseta", "osa": "osage", "ota": "turc otomà", "pa": "panjabi", "pag": "pangasinan", "pal": "pahlavi", "pam": "pampanga", "pap": "papiament", "pau": "palauà", "pcd": "picard", "pcm": "pidgin de Nigèria", "pdc": "alemany pennsilvanià", "peo": "persa antic", "pfl": "alemany palatí", "phn": "fenici", "pi": "pali", "pl": "polonès", "pms": "piemontès", "pnt": "pòntic", "pon": "ponapeà", "prg": "prussià", "pro": "provençal antic", "ps": "paixtu", "pt": "portuguès", "pt-BR": "portuguès del Brasil", "pt-PT": "portuguès de Portugal", "qu": "quítxua", "quc": "k’iche’", "raj": "rajasthani", "rap": "rapanui", "rar": "rarotongà", "rgn": "romanyès", "rm": "retoromànic", "rn": "rundi", "ro": "romanès", "ro-MD": "moldau", "rof": "rombo", "rom": "romaní", "root": "arrel", "ru": "rus", "rup": "aromanès", "rw": "ruandès", "rwk": "rwo", "sa": "sànscrit", "sad": "sandawe", "sah": "iacut", "sam": "arameu samarità", "saq": "samburu", "sas": "sasak", "sat": "santali", "sba": "ngambay", "sbp": "sangu", "sc": "sard", "scn": "sicilià", "sco": "escocès", "sd": "sindi", "sdc": "sasserès", "sdh": "kurd meridional", "se": "sami septentrional", "see": "seneca", "seh": "sena", "sel": "selkup", "ses": "songhai oriental", "sg": "sango", "sga": "irlandès antic", "sh": "serbocroat", "shi": "taixelhit", "shn": "xan", "shu": "àrab txadià", "si": "singalès", "sid": "sidamo", "sk": "eslovac", "sl": "eslovè", "sm": "samoà", "sma": "sami meridional", "smj": "sami lule", "smn": "sami d’Inari", "sms": "sami skolt", "sn": "shona", "snk": "soninke", "so": "somali", "sog": "sogdià", "sq": "albanès", "sr": "serbi", "srn": "sranan", "srr": "serer", "ss": "swazi", "ssy": "saho", "st": "sotho meridional", "su": "sondanès", "suk": "sukuma", "sus": "susú", "sux": "sumeri", "sv": "suec", "sw": "suahili", "sw-CD": "suahili del Congo", "swb": "comorià", "syc": "siríac clàssic", "syr": "siríac", "szl": "silesià", "ta": "tàmil", "te": "telugu", "tem": "temne", "teo": "teso", "ter": "terena", "tet": "tètum", "tg": "tadjik", "th": "tai", "ti": "tigrinya", "tig": "tigre", "tk": "turcman", "tkl": "tokelauès", "tkr": "tsakhur", "tl": "tagal", "tlh": "klingonià", "tli": "tlingit", "tly": "talix", "tmh": "amazic", "tn": "setswana", "to": "tongalès", "tog": "tonga", "tpi": "tok pisin", "tr": "turc", "trv": "taroko", "ts": "tsonga", "tsi": "tsimshià", "tt": "tàtar", "ttt": "tat meridional", "tum": "tumbuka", "tvl": "tuvaluà", "tw": "twi", "twq": "tasawaq", "ty": "tahitià", "tyv": "tuvinià", "tzm": "amazic del Marroc central", "udm": "udmurt", "ug": "uigur", "uga": "ugarític", "uk": "ucraïnès", "umb": "umbundu", "ur": "urdú", "uz": "uzbek", "ve": "venda", "vec": "vènet", "vep": "vepse", "vi": "vietnamita", "vls": "flamenc occidental", "vo": "volapük", "vot": "vòtic", "vun": "vunjo", "wa": "való", "wae": "walser", "wal": "wolaita", "war": "waray", "was": "washo", "wbp": "warlpiri", "wo": "wòlof", "wuu": "xinès wu", "xal": "calmuc", "xh": "xosa", "xmf": "mingrelià", "xog": "soga", "yap": "yapeà", "yav": "yangben", "ybb": "yemba", "yi": "ídix", "yo": "ioruba", "yue": "cantonès", "za": "zhuang", "zap": "zapoteca", "zbl": "símbols Bliss", "zea": "zelandès", "zen": "zenaga", "zgh": "amazic estàndard marroquí", "zh": "xinès", "zh-Hans": "xinès simplificat", "zh-Hant": "xinès tradicional", "zu": "zulu", "zun": "zuni", "zza": "zaza"}}, - "ckb": {"rtl": true, "languageNames": {"aa": "ئەفار", "ab": "ئەبخازی", "ace": "ئاچەیی", "ada": "دانگمێ", "ady": "ئادیگی", "af": "ئەفریکانس", "agq": "ئاگێم", "ain": "ئاینوو", "ak": "ئاکان", "ale": "ئالیوت", "alt": "ئاڵتایی باشوور", "am": "ئەمھەری", "an": "ئاراگۆنی", "anp": "ئەنگیکا", "ar": "عەرەبی", "ar-001": "عەرەبیی ستاندارد", "arn": "ماپووچە", "arp": "ئاراپاهۆ", "as": "ئاسامی", "asa": "ئاسوو", "ast": "ئاستۆری", "av": "ئەڤاری", "awa": "ئاوادهی", "ay": "ئایمارا", "az": "ئازەربایجانی", "az-Arab": "ئازەربایجانی باشووری", "ba": "باشکیەر", "ban": "بالی", "bas": "باسا", "be": "بیلاڕووسی", "bem": "بێمبا", "bez": "بێنا", "bg": "بۆلگاری", "bho": "بوجپووری", "bi": "بیسلاما", "bin": "بینی", "bla": "سیکسیکا", "bm": "بامبارا", "bn": "بەنگلادێشی", "bo": "تەبەتی", "br": "برێتونی", "brx": "بۆدۆ", "bs": "بۆسنی", "bug": "بووگی", "byn": "بلین", "ca": "كاتالۆنی", "ce": "چیچانی", "ceb": "سێبوانۆ", "cgg": "کیگا", "ch": "چامۆرۆ", "chk": "چووکی", "chm": "ماری", "cho": "چۆکتاو", "chr": "چێرۆکی", "chy": "شایان", "ckb": "کوردیی ناوەندی", "co": "کۆرسیکی", "crs": "فەرەنسیی سیشێلی", "cs": "چێکی", "cu": "سلاویی کلیسەیی", "cv": "چووڤاشی", "cy": "وێلزی", "da": "دانماركی", "dak": "داکۆتایی", "dar": "دارگینی", "dav": "تایتا", "de": "ئەڵمانی", "de-AT": "ئەڵمانی (نەمسا)", "de-CH": "ئەڵمانی (سویسڕا)", "dgr": "دۆگریب", "dje": "زارما", "dsb": "سربیی خوارین", "dua": "دووالا", "dv": "دیڤێهی", "dyo": "جۆلافۆنی", "dz": "دزوونگخا", "dzg": "دازا", "ebu": "ئێمبوو", "ee": "ئێوێیی", "efi": "ئێفیک", "eka": "ئێکاجووک", "el": "یۆنانی", "en": "ئینگلیزی", "en-AU": "ئینگلیزیی ئۆسترالیایی", "en-CA": "ئینگلیزیی کەنەدایی", "en-GB": "ئینگلیزیی بریتانیایی", "en-US": "ئینگلیزیی ئەمەریکایی", "eo": "ئێسپیرانتۆ", "es": "ئیسپانی", "es-419": "ئیسپانی (ئەمەریکای لاتین)", "es-ES": "ئیسپانی (ئیسپانیا)", "es-MX": "ئیسپانی (مەکسیک)", "et": "ئیستۆنی", "eu": "باسکی", "ewo": "ئێوۆندۆ", "fa": "فارسی", "ff": "فوولایی", "fi": "فینلەندی", "fil": "فیلیپینی", "fj": "فیجی", "fo": "فەرۆیی", "fon": "فۆنی", "fr": "فەرەنسی", "fr-CA": "فەرەنسی (کەنەدا)", "fr-CH": "فەرەنسی (سویسڕا)", "fur": "فریئوولی", "fy": "فریسیی ڕۆژاوا", "ga": "ئیرلەندی", "gaa": "گایی", "gd": "گه‌لیكی سكۆتله‌ندی", "gez": "گیزی", "gil": "گیلبێرتی", "gl": "گالیسی", "gn": "گووارانی", "gor": "گۆرۆنتالی", "gsw": "ئەڵمانیی سویسڕا", "gu": "گوجاراتی", "guz": "گووسی", "gv": "مانکی", "gwi": "گویچین", "ha": "هائووسا", "haw": "هاوایی", "he": "عیبری", "hi": "هیندی", "hil": "هیلیگاینۆن", "hmn": "همۆنگ", "hr": "كرواتی", "hsb": "سربیی سەروو", "ht": "کریولی هائیتی", "hu": "هەنگاری (مەجاری)", "hup": "هووپا", "hy": "ئەرمەنی", "hz": "هێرێرۆ", "ia": "ئینترلینگووا", "iba": "ئیبان", "ibb": "ئیبیبۆ", "id": "ئیندۆنیزی", "ig": "ئیگبۆ", "ii": "سیچوان یی", "ilo": "ئیلۆکۆ", "inh": "ئینگووش", "io": "ئیدۆ", "is": "ئیسلەندی", "it": "ئیتالی", "iu": "ئینوکتیتوت", "ja": "ژاپۆنی", "jbo": "لۆژبان", "jgo": "نگۆمبا", "jmc": "ماچامێ", "jv": "جاڤایی", "ka": "گۆرجستانی", "kab": "کبائیلی", "kac": "کاچین", "kaj": "کیجوو", "kam": "کامبا", "kbd": "کاباردی", "kcg": "تیاپ", "kde": "ماکۆندە", "kea": "کابووڤێردیانۆ", "kfo": "کۆرۆ", "kha": "کهاسی", "khq": "کۆیرا چینی", "ki": "کیکوویوو", "kj": "کوانیاما", "kk": "کازاخی", "kkj": "کاکۆ", "kl": "کالالیسووت", "kln": "کالێنجین", "km": "خمێر", "kmb": "کیمبووندوو", "kn": "کاننادا", "ko": "كۆری", "kok": "کۆنکانی", "kpe": "کپێلێ", "kr": "کانووری", "krc": "کاراچای بالکار", "krl": "کارێلی", "kru": "کوورووخ", "ks": "کەشمیری", "ksb": "شامابالا", "ksf": "بافیا", "ksh": "کۆلۆنی", "ku": "کوردی", "kum": "کوومیک", "kv": "کۆمی", "kw": "کۆڕنی", "ky": "كرگیزی", "la": "لاتینی", "lad": "لادینۆ", "lag": "لانگی", "lb": "لوکسەمبورگی", "lez": "لەزگی", "lg": "گاندا", "li": "لیمبورگی", "lkt": "لاکۆتا", "ln": "لينگالا", "lo": "لائۆیی", "loz": "لۆزی", "lrc": "لوڕیی باکوور", "lt": "لیتوانی", "lu": "لووبا کاتانگا", "lua": "لووبا لوولووا", "lun": "لووندا", "luo": "لووئۆ", "lus": "میزۆ", "luy": "لوویا", "lv": "لێتۆنی", "mad": "مادووری", "mag": "ماگاهی", "mai": "مائیتیلی", "mak": "ماکاسار", "mas": "ماسایی", "mdf": "مۆکشا", "men": "مێندێ", "mer": "مێروو", "mfe": "مۆریسی", "mg": "مالاگاسی", "mgh": "ماخوامیتۆ", "mgo": "مێتە", "mh": "مارشاڵی", "mi": "مائۆری", "mic": "میکماک", "min": "مینانکاباو", "mk": "ماكێدۆنی", "ml": "مالایالام", "mn": "مەنگۆلی", "mni": "مانیپووری", "moh": "مۆهاوک", "mos": "مۆسی", "mr": "ماراتی", "ms": "مالیزی", "mt": "ماڵتی", "mua": "موندانگ", "mus": "کریک", "mwl": "میراندی", "my": "میانماری", "myv": "ئێرزیا", "mzn": "مازەندەرانی", "na": "نائوروو", "nap": "ناپۆلی", "naq": "ناما", "nb": "نەرویژیی بۆکمال", "nd": "ئندێبێلێی باکوور", "nds-NL": "nds (ھۆڵەندا)", "ne": "نیپالی", "new": "نێواری", "ng": "ندۆنگا", "nia": "نیاس", "niu": "نیئوویی", "nl": "هۆڵەندی", "nl-BE": "فلێمی", "nmg": "کواسیۆ", "nn": "نەرویژیی نینۆرسک", "nnh": "نگیمبوون", "no": "نۆروێژی", "nog": "نۆگای", "nqo": "نکۆ", "nr": "ئندێبێلێی باشوور", "nso": "سۆتۆی باکوور", "nus": "نوێر", "nv": "ناڤاجۆ", "ny": "نیانجا", "nyn": "نیانکۆلێ", "oc": "ئۆکسیتانی", "om": "ئۆرۆمۆ", "or": "ئۆدیا", "os": "ئۆسێتی", "pa": "پەنجابی", "pag": "پانگاسینان", "pam": "پامپانگا", "pap": "پاپیامێنتۆ", "pau": "پالائوویی", "pcm": "پیجینی نیجریا", "pl": "پۆڵەندی", "prg": "پڕووسی", "ps": "پەشتوو", "pt": "پورتوگالی", "pt-BR": "پورتوگالی (برازیل)", "pt-PT": "پورتوگالی (پورتوگال)", "qu": "کێچوا", "quc": "کیچەیی", "rap": "ڕاپانوویی", "rar": "ڕاڕۆتۆنگان", "rm": "ڕۆمانش", "rn": "ڕووندی", "ro": "ڕۆمانی", "ro-MD": "مۆڵداڤی", "rof": "ڕۆمبۆ", "root": "ڕووت", "ru": "ڕووسی", "rup": "ئارمۆمانی", "rw": "کینیارواندا", "rwk": "ڕوا", "sa": "سانسکريت", "sad": "سانداوێ", "sah": "ساخا", "saq": "سامبووروو", "sat": "سانتالی", "sba": "نگامبای", "sbp": "سانگوو", "sc": "ساردینی", "scn": "سیسیلی", "sco": "سکۆتس", "sd": "سيندی", "sdh": "کوردیی باشووری", "se": "سامیی باکوور", "seh": "سێنا", "ses": "کۆیرابۆرۆ سێنی", "sg": "سانگۆ", "shi": "شیلها", "shn": "شان", "si": "سینهالی", "sk": "سلۆڤاكی", "sl": "سلۆڤێنی", "sm": "سامۆیی", "sma": "سامیی باشوور", "smj": "لوولێ سامی", "smn": "ئیناری سامی", "sms": "سامیی سکۆڵت", "sn": "شۆنا", "snk": "سۆنینکێ", "so": "سۆمالی", "sq": "ئەڵبانی", "sr": "سربی", "srn": "سرانان تۆنگۆ", "ss": "سواتی", "ssy": "ساهۆ", "st": "سۆتۆی باشوور", "su": "سوندانی", "suk": "سووکووما", "sv": "سویدی", "sw": "سواهیلی", "sw-CD": "سواهیلیی کۆنگۆ", "swb": "کۆمۆری", "syr": "سریانی", "ta": "تامیلی", "te": "تێلووگوو", "tem": "تیمنێ", "teo": "تێسوو", "tet": "تێتووم", "tg": "تاجیکی", "th": "تایلەندی", "ti": "تیگرینیا", "tig": "تیگرێ", "tk": "تورکمانی", "tlh": "كلینگۆن", "tn": "تسوانا", "to": "تۆنگان", "tpi": "تۆکپیسین", "tr": "تورکی", "trv": "تارۆکۆ", "ts": "تسۆنگا", "tt": "تاتاری", "tum": "تومبووکا", "tvl": "تووڤالوو", "twq": "تاساواک", "ty": "تاهیتی", "tyv": "تووڤینی", "tzm": "ئەمازیغی ناوەڕاست", "udm": "ئوودموورت", "ug": "ئۆیخۆری", "uk": "ئۆكراینی", "umb": "ئومبووندوو", "ur": "ئۆردوو", "uz": "ئوزبەکی", "vai": "ڤایی", "ve": "ڤێندا", "vi": "ڤیەتنامی", "vo": "ڤۆلاپووک", "vun": "ڤوونجوو", "wa": "والوون", "wae": "والسێر", "wal": "وۆلایتا", "war": "وارای", "wo": "وۆلۆف", "xal": "کالمیک", "xh": "سسوسا", "xog": "سۆگا", "yav": "یانگبێن", "ybb": "یێمبا", "yi": "ییدیش", "yo": "یۆرووبا", "yue": "کانتۆنی", "zgh": "ئەمازیغیی مەغریب", "zh": "چینی", "zh-Hans": "چینی (چینیی ئاسانکراو)", "zh-Hant": "چینی (چینیی دێرین)", "zu": "زوولوو", "zun": "زوونی", "zza": "زازا"}}, - "cs": {"rtl": false, "languageNames": {"aa": "afarština", "ab": "abcházština", "ace": "acehština", "ach": "akolština", "ada": "adangme", "ady": "adygejština", "ae": "avestánština", "aeb": "arabština (tuniská)", "af": "afrikánština", "afh": "afrihili", "agq": "aghem", "ain": "ainština", "ak": "akanština", "akk": "akkadština", "akz": "alabamština", "ale": "aleutština", "aln": "albánština (Gheg)", "alt": "altajština (jižní)", "am": "amharština", "an": "aragonština", "ang": "staroangličtina", "anp": "angika", "ar": "arabština", "ar-001": "arabština (moderní standardní)", "arc": "aramejština", "arn": "mapudungun", "aro": "araonština", "arp": "arapažština", "arq": "arabština (alžírská)", "ars": "arabština (Nadžd)", "arw": "arawacké jazyky", "ary": "arabština (marocká)", "arz": "arabština (egyptská)", "as": "ásámština", "asa": "asu", "ase": "znaková řeč (americká)", "ast": "asturština", "av": "avarština", "avk": "kotava", "awa": "awadhština", "ay": "ajmarština", "az": "ázerbájdžánština", "ba": "baškirština", "bal": "balúčština", "ban": "balijština", "bar": "bavorština", "bas": "basa", "bax": "bamun", "bbc": "batak toba", "bbj": "ghomala", "be": "běloruština", "bej": "bedža", "bem": "bembština", "bew": "batavština", "bez": "bena", "bfd": "bafut", "bfq": "badagština", "bg": "bulharština", "bgn": "balúčština (západní)", "bho": "bhódžpurština", "bi": "bislamština", "bik": "bikolština", "bin": "bini", "bjn": "bandžarština", "bkm": "kom", "bla": "siksika", "bm": "bambarština", "bn": "bengálština", "bo": "tibetština", "bpy": "bišnuprijskomanipurština", "bqi": "bachtijárština", "br": "bretonština", "bra": "bradžština", "brh": "brahujština", "brx": "bodoština", "bs": "bosenština", "bss": "akoose", "bua": "burjatština", "bug": "bugiština", "bum": "bulu", "byn": "blinština", "byv": "medumba", "ca": "katalánština", "cad": "caddo", "car": "karibština", "cay": "kajugština", "cch": "atsam", "ccp": "čakma", "ce": "čečenština", "ceb": "cebuánština", "cgg": "kiga", "ch": "čamoro", "chb": "čibča", "chg": "čagatajština", "chk": "čukština", "chm": "marijština", "chn": "činuk pidžin", "cho": "čoktština", "chp": "čipevajština", "chr": "čerokézština", "chy": "čejenština", "ckb": "kurdština (sorání)", "co": "korsičtina", "cop": "koptština", "cps": "kapiznonština", "cr": "kríjština", "crh": "turečtina (krymská)", "crs": "kreolština (seychelská)", "cs": "čeština", "csb": "kašubština", "cu": "staroslověnština", "cv": "čuvaština", "cy": "velština", "da": "dánština", "dak": "dakotština", "dar": "dargština", "dav": "taita", "de": "němčina", "de-AT": "němčina (Rakousko)", "de-CH": "němčina standardní (Švýcarsko)", "del": "delawarština", "den": "slejvština (athabaský jazyk)", "dgr": "dogrib", "din": "dinkština", "dje": "zarmština", "doi": "dogarština", "dsb": "dolnolužická srbština", "dtp": "kadazandusunština", "dua": "dualština", "dum": "holandština (středověká)", "dv": "maledivština", "dyo": "jola-fonyi", "dyu": "djula", "dz": "dzongkä", "dzg": "dazaga", "ebu": "embu", "ee": "eweština", "efi": "efikština", "egl": "emilijština", "egy": "egyptština stará", "eka": "ekajuk", "el": "řečtina", "elx": "elamitština", "en": "angličtina", "en-AU": "angličtina (Austrálie)", "en-CA": "angličtina (Kanada)", "en-GB": "angličtina (Velká Británie)", "en-US": "angličtina (USA)", "enm": "angličtina (středověká)", "eo": "esperanto", "es": "španělština", "es-419": "španělština (Latinská Amerika)", "es-ES": "španělština (Evropa)", "es-MX": "španělština (Mexiko)", "esu": "jupikština (středoaljašská)", "et": "estonština", "eu": "baskičtina", "ewo": "ewondo", "ext": "extremadurština", "fa": "perština", "fan": "fang", "fat": "fantština", "ff": "fulbština", "fi": "finština", "fil": "filipínština", "fit": "finština (tornedalská)", "fj": "fidžijština", "fo": "faerština", "fon": "fonština", "fr": "francouzština", "fr-CA": "francouzština (Kanada)", "fr-CH": "francouzština (Švýcarsko)", "frc": "francouzština (cajunská)", "frm": "francouzština (středověká)", "fro": "francouzština (stará)", "frp": "franko-provensálština", "frr": "fríština (severní)", "frs": "fríština (východní)", "fur": "furlanština", "fy": "fríština (západní)", "ga": "irština", "gaa": "gaština", "gag": "gagauzština", "gan": "čínština (dialekty Gan)", "gay": "gayo", "gba": "gbaja", "gbz": "daríjština (zoroastrijská)", "gd": "skotská gaelština", "gez": "geez", "gil": "kiribatština", "gl": "galicijština", "glk": "gilačtina", "gmh": "hornoněmčina (středověká)", "gn": "guaranština", "goh": "hornoněmčina (stará)", "gom": "konkánština (Goa)", "gon": "góndština", "gor": "gorontalo", "got": "gótština", "grb": "grebo", "grc": "starořečtina", "gsw": "němčina (Švýcarsko)", "gu": "gudžarátština", "guc": "wayúuština", "gur": "frafra", "guz": "gusii", "gv": "manština", "gwi": "gwichʼin", "ha": "hauština", "hai": "haidština", "hak": "čínština (dialekty Hakka)", "haw": "havajština", "he": "hebrejština", "hi": "hindština", "hif": "hindština (Fidži)", "hil": "hiligajnonština", "hit": "chetitština", "hmn": "hmongština", "ho": "hiri motu", "hr": "chorvatština", "hsb": "hornolužická srbština", "hsn": "čínština (dialekty Xiang)", "ht": "haitština", "hu": "maďarština", "hup": "hupa", "hy": "arménština", "hz": "hererština", "ia": "interlingua", "iba": "ibanština", "ibb": "ibibio", "id": "indonéština", "ie": "interlingue", "ig": "igboština", "ii": "iština (sečuánská)", "ik": "inupiakština", "ilo": "ilokánština", "inh": "inguština", "io": "ido", "is": "islandština", "it": "italština", "iu": "inuktitutština", "izh": "ingrijština", "ja": "japonština", "jam": "jamajská kreolština", "jbo": "lojban", "jgo": "ngomba", "jmc": "mašame", "jpr": "judeoperština", "jrb": "judeoarabština", "jut": "jutština", "jv": "javánština", "ka": "gruzínština", "kaa": "karakalpačtina", "kab": "kabylština", "kac": "kačijština", "kaj": "jju", "kam": "kambština", "kaw": "kawi", "kbd": "kabardinština", "kbl": "kanembu", "kcg": "tyap", "kde": "makonde", "kea": "kapverdština", "ken": "kenyang", "kfo": "koro", "kg": "konžština", "kgp": "kaingang", "kha": "khásí", "kho": "chotánština", "khq": "koyra chiini", "khw": "chovarština", "ki": "kikujština", "kiu": "zazakština", "kj": "kuaňamština", "kk": "kazaština", "kkj": "kako", "kl": "grónština", "kln": "kalendžin", "km": "khmérština", "kmb": "kimbundština", "kn": "kannadština", "ko": "korejština", "koi": "komi-permjačtina", "kok": "konkánština", "kos": "kosrajština", "kpe": "kpelle", "kr": "kanuri", "krc": "karačajevo-balkarština", "kri": "krio", "krj": "kinaraj-a", "krl": "karelština", "kru": "kuruchština", "ks": "kašmírština", "ksb": "šambala", "ksf": "bafia", "ksh": "kolínština", "ku": "kurdština", "kum": "kumyčtina", "kut": "kutenajština", "kv": "komijština", "kw": "kornština", "ky": "kyrgyzština", "la": "latina", "lad": "ladinština", "lag": "langi", "lah": "lahndština", "lam": "lambština", "lb": "lucemburština", "lez": "lezginština", "lfn": "lingua franca nova", "lg": "gandština", "li": "limburština", "lij": "ligurština", "liv": "livonština", "lkt": "lakotština", "lmo": "lombardština", "ln": "lingalština", "lo": "laoština", "lol": "mongština", "lou": "kreolština (Louisiana)", "loz": "lozština", "lrc": "lúrština (severní)", "lt": "litevština", "ltg": "latgalština", "lu": "lubu-katanžština", "lua": "luba-luluaština", "lui": "luiseňo", "lun": "lundština", "luo": "luoština", "lus": "mizoština", "luy": "luhja", "lv": "lotyština", "lzh": "čínština (klasická)", "lzz": "lazština", "mad": "madurština", "maf": "mafa", "mag": "magahijština", "mai": "maithiliština", "mak": "makasarština", "man": "mandingština", "mas": "masajština", "mde": "maba", "mdf": "mokšanština", "mdr": "mandar", "men": "mende", "mer": "meru", "mfe": "mauricijská kreolština", "mg": "malgaština", "mga": "irština (středověká)", "mgh": "makhuwa-meetto", "mgo": "meta’", "mh": "maršálština", "mi": "maorština", "mic": "micmac", "min": "minangkabau", "mk": "makedonština", "ml": "malajálamština", "mn": "mongolština", "mnc": "mandžuština", "mni": "manipurština", "moh": "mohawkština", "mos": "mosi", "mr": "maráthština", "mrj": "marijština (západní)", "ms": "malajština", "mt": "maltština", "mua": "mundang", "mus": "kríkština", "mwl": "mirandština", "mwr": "márvárština", "mwv": "mentavajština", "my": "barmština", "mye": "myene", "myv": "erzjanština", "mzn": "mázandaránština", "na": "naurština", "nan": "čínština (dialekty Minnan)", "nap": "neapolština", "naq": "namaština", "nb": "norština (bokmål)", "nd": "ndebele (Zimbabwe)", "nds": "dolnoněmčina", "nds-NL": "dolnosaština", "ne": "nepálština", "new": "névárština", "ng": "ndondština", "nia": "nias", "niu": "niueština", "njo": "ao (jazyky Nágálandu)", "nl": "nizozemština", "nl-BE": "vlámština", "nmg": "kwasio", "nn": "norština (nynorsk)", "nnh": "ngiemboon", "no": "norština", "nog": "nogajština", "non": "norština historická", "nov": "novial", "nqo": "n’ko", "nr": "ndebele (Jižní Afrika)", "nso": "sotština (severní)", "nus": "nuerština", "nv": "navažština", "nwc": "newarština (klasická)", "ny": "ňandžština", "nym": "ňamwežština", "nyn": "ňankolština", "nyo": "ňorština", "nzi": "nzima", "oc": "okcitánština", "oj": "odžibvejština", "om": "oromština", "or": "urijština", "os": "osetština", "osa": "osage", "ota": "turečtina (osmanská)", "pa": "paňdžábština", "pag": "pangasinanština", "pal": "pahlavština", "pam": "papangau", "pap": "papiamento", "pau": "palauština", "pcd": "picardština", "pcm": "nigerijský pidžin", "pdc": "němčina (pensylvánská)", "pdt": "němčina (plautdietsch)", "peo": "staroperština", "pfl": "falčtina", "phn": "féničtina", "pi": "pálí", "pl": "polština", "pms": "piemonština", "pnt": "pontština", "pon": "pohnpeiština", "prg": "pruština", "pro": "provensálština", "ps": "paštština", "pt": "portugalština", "pt-BR": "portugalština (Brazílie)", "pt-PT": "portugalština (Evropa)", "qu": "kečuánština", "quc": "kičé", "qug": "kečuánština (chimborazo)", "raj": "rádžastánština", "rap": "rapanujština", "rar": "rarotongánština", "rgn": "romaňolština", "rif": "rífština", "rm": "rétorománština", "rn": "kirundština", "ro": "rumunština", "ro-MD": "moldavština", "rof": "rombo", "rom": "romština", "root": "kořen", "rtm": "rotumanština", "ru": "ruština", "rue": "rusínština", "rug": "rovianština", "rup": "arumunština", "rw": "kiňarwandština", "rwk": "rwa", "sa": "sanskrt", "sad": "sandawština", "sah": "jakutština", "sam": "samarština", "saq": "samburu", "sas": "sasakština", "sat": "santálština", "saz": "saurášterština", "sba": "ngambay", "sbp": "sangoština", "sc": "sardština", "scn": "sicilština", "sco": "skotština", "sd": "sindhština", "sdc": "sassarština", "sdh": "kurdština (jižní)", "se": "sámština (severní)", "see": "seneca", "seh": "sena", "sei": "seriština", "sel": "selkupština", "ses": "koyraboro senni", "sg": "sangština", "sga": "irština (stará)", "sgs": "žemaitština", "sh": "srbochorvatština", "shi": "tašelhit", "shn": "šanština", "shu": "arabština (čadská)", "si": "sinhálština", "sid": "sidamo", "sk": "slovenština", "sl": "slovinština", "sli": "němčina (slezská)", "sly": "selajarština", "sm": "samojština", "sma": "sámština (jižní)", "smj": "sámština (lulejská)", "smn": "sámština (inarijská)", "sms": "sámština (skoltská)", "sn": "šonština", "snk": "sonikština", "so": "somálština", "sog": "sogdština", "sq": "albánština", "sr": "srbština", "srn": "sranan tongo", "srr": "sererština", "ss": "siswatština", "ssy": "saho", "st": "sotština (jižní)", "stq": "fríština (saterlandská)", "su": "sundština", "suk": "sukuma", "sus": "susu", "sux": "sumerština", "sv": "švédština", "sw": "svahilština", "sw-CD": "svahilština (Kongo)", "swb": "komorština", "syc": "syrština (klasická)", "syr": "syrština", "szl": "slezština", "ta": "tamilština", "tcy": "tuluština", "te": "telugština", "tem": "temne", "teo": "teso", "ter": "tereno", "tet": "tetumština", "tg": "tádžičtina", "th": "thajština", "ti": "tigrinijština", "tig": "tigrejština", "tiv": "tivština", "tk": "turkmenština", "tkl": "tokelauština", "tkr": "cachurština", "tl": "tagalog", "tlh": "klingonština", "tli": "tlingit", "tly": "talyština", "tmh": "tamašek", "tn": "setswanština", "to": "tongánština", "tog": "tonžština (nyasa)", "tpi": "tok pisin", "tr": "turečtina", "tru": "turojština", "trv": "taroko", "ts": "tsonga", "tsd": "tsakonština", "tsi": "tsimšijské jazyky", "tt": "tatarština", "ttt": "tatština", "tum": "tumbukština", "tvl": "tuvalština", "tw": "twi", "twq": "tasawaq", "ty": "tahitština", "tyv": "tuvinština", "tzm": "tamazight (střední Maroko)", "udm": "udmurtština", "ug": "ujgurština", "uga": "ugaritština", "uk": "ukrajinština", "umb": "umbundu", "ur": "urdština", "uz": "uzbečtina", "ve": "venda", "vec": "benátština", "vep": "vepština", "vi": "vietnamština", "vls": "vlámština (západní)", "vmf": "němčina (mohansko-franské dialekty)", "vo": "volapük", "vot": "votština", "vro": "võruština", "vun": "vunjo", "wa": "valonština", "wae": "němčina (walser)", "wal": "wolajtština", "war": "warajština", "was": "waština", "wbp": "warlpiri", "wo": "wolofština", "wuu": "čínština (dialekty Wu)", "xal": "kalmyčtina", "xh": "xhoština", "xmf": "mingrelština", "xog": "sogština", "yao": "jaoština", "yap": "japština", "yav": "jangbenština", "ybb": "yemba", "yi": "jidiš", "yo": "jorubština", "yrl": "nheengatu", "yue": "kantonština", "za": "čuangština", "zap": "zapotéčtina", "zbl": "bliss systém", "zea": "zélandština", "zen": "zenaga", "zgh": "tamazight (standardní marocký)", "zh": "čínština", "zh-Hans": "čínština (zjednodušená)", "zh-Hant": "čínština (tradiční)", "zu": "zuluština", "zun": "zunijština", "zza": "zaza"}}, - "cy": {"rtl": false, "languageNames": {"aa": "Affareg", "ab": "Abchaseg", "ace": "Acehneg", "ach": "Acoli", "ada": "Adangmeg", "ady": "Circaseg Gorllewinol", "ae": "Afestaneg", "aeb": "Arabeg Tunisia", "af": "Affricâneg", "afh": "Affrihili", "agq": "Aghemeg", "ain": "Ainŵeg", "ak": "Acaneg", "akk": "Acadeg", "akz": "Alabamäeg", "ale": "Alewteg", "aln": "Ghegeg Albania", "alt": "Altäeg Deheuol", "am": "Amhareg", "an": "Aragoneg", "ang": "Hen Saesneg", "anp": "Angika", "ar": "Arabeg", "ar-001": "Arabeg Modern Safonol", "arc": "Aramaeg", "arn": "Arawcaneg", "aro": "Araonaeg", "arp": "Arapaho", "arq": "Arabeg Algeria", "arw": "Arawaceg", "ary": "Arabeg Moroco", "arz": "Arabeg yr Aifft", "as": "Asameg", "asa": "Asw", "ase": "Iaith Arwyddion America", "ast": "Astwrianeg", "av": "Afareg", "awa": "Awadhi", "ay": "Aymareg", "az": "Aserbaijaneg", "az-Arab": "Aserbaijaneg Deheuol", "ba": "Bashcorteg", "bal": "Balwtsi", "ban": "Balïeg", "bas": "Basâeg", "bax": "Bamwmeg", "be": "Belarwseg", "bej": "Bejäeg", "bem": "Bembeg", "bez": "Bena", "bfd": "Baffwteg", "bfq": "Badaga", "bg": "Bwlgareg", "bgn": "Balochi Gorllewinol", "bho": "Bhojpuri", "bi": "Bislama", "bin": "Bini", "bkm": "Comeg", "bla": "Siksika", "bm": "Bambareg", "bn": "Bengaleg", "bo": "Tibeteg", "br": "Llydaweg", "brh": "Brahui", "brx": "Bodo", "bs": "Bosnieg", "bss": "Acwseg", "bua": "Bwriateg", "bug": "Bwginaeg", "bum": "Bwlw", "byn": "Blin", "ca": "Catalaneg", "cad": "Cado", "car": "Caribeg", "cch": "Atsameg", "ccp": "Tsiacma", "ce": "Tsietsieneg", "ceb": "Cebuano", "cgg": "Tsiga", "ch": "Tsiamorro", "chk": "Chuukaeg", "chm": "Marieg", "cho": "Siocto", "chr": "Tsierocî", "chy": "Cheyenne", "ckb": "Cwrdeg Sorani", "co": "Corseg", "cop": "Copteg", "cr": "Cri", "crh": "Tyrceg y Crimea", "crs": "Ffrangeg Seselwa Creole", "cs": "Tsieceg", "cu": "Hen Slafoneg", "cv": "Tshwfasheg", "cy": "Cymraeg", "da": "Daneg", "dak": "Dacotaeg", "dar": "Dargwa", "dav": "Taita", "de": "Almaeneg", "de-AT": "Almaeneg Awstria", "de-CH": "Almaeneg Safonol y Swistir", "dgr": "Dogrib", "din": "Dinca", "dje": "Sarmaeg", "doi": "Dogri", "dsb": "Sorbeg Isaf", "dua": "Diwaleg", "dum": "Iseldireg Canol", "dv": "Difehi", "dyo": "Jola-Fonyi", "dz": "Dzongkha", "dzg": "Dazaga", "ebu": "Embw", "ee": "Ewe", "efi": "Efik", "egy": "Hen Eiffteg", "eka": "Ekajuk", "el": "Groeg", "elx": "Elameg", "en": "Saesneg", "en-AU": "Saesneg Awstralia", "en-CA": "Saesneg Canada", "en-GB": "Saesneg Prydain", "en-US": "Saesneg America", "enm": "Saesneg Canol", "eo": "Esperanto", "es": "Sbaeneg", "es-419": "Sbaeneg America Ladin", "es-ES": "Sbaeneg Ewrop", "es-MX": "Sbaeneg Mecsico", "et": "Estoneg", "eu": "Basgeg", "ewo": "Ewondo", "ext": "Extremadureg", "fa": "Perseg", "fat": "Ffanti", "ff": "Ffwla", "fi": "Ffinneg", "fil": "Ffilipineg", "fit": "Ffinneg Tornedal", "fj": "Ffijïeg", "fo": "Ffaröeg", "fon": "Fon", "fr": "Ffrangeg", "fr-CA": "Ffrangeg Canada", "fr-CH": "Ffrangeg y Swistir", "frc": "Ffrangeg Cajwn", "frm": "Ffrangeg Canol", "fro": "Hen Ffrangeg", "frp": "Arpitaneg", "frr": "Ffriseg Gogleddol", "frs": "Ffriseg y Dwyrain", "fur": "Ffriwleg", "fy": "Ffriseg y Gorllewin", "ga": "Gwyddeleg", "gaa": "Ga", "gag": "Gagauz", "gay": "Gaio", "gba": "Gbaia", "gbz": "Dareg y Zoroastriaid", "gd": "Gaeleg yr Alban", "gez": "Geez", "gil": "Gilberteg", "gl": "Galisieg", "gmh": "Almaeneg Uchel Canol", "gn": "Guaraní", "goh": "Hen Almaeneg Uchel", "gor": "Gorontalo", "got": "Gotheg", "grc": "Hen Roeg", "gsw": "Almaeneg y Swistir", "gu": "Gwjarati", "guz": "Gusii", "gv": "Manaweg", "gwi": "Gwichʼin", "ha": "Hawsa", "hai": "Haida", "haw": "Hawäieg", "he": "Hebraeg", "hi": "Hindi", "hil": "Hiligaynon", "hit": "Hetheg", "hmn": "Hmongeg", "hr": "Croateg", "hsb": "Sorbeg Uchaf", "ht": "Creol Haiti", "hu": "Hwngareg", "hup": "Hupa", "hy": "Armeneg", "hz": "Herero", "ia": "Interlingua", "iba": "Ibaneg", "ibb": "Ibibio", "id": "Indoneseg", "ie": "Interlingue", "ig": "Igbo", "ii": "Nwosw", "ik": "Inwpiaceg", "ilo": "Ilocaneg", "inh": "Ingwsieg", "io": "Ido", "is": "Islandeg", "it": "Eidaleg", "iu": "Inwctitwt", "ja": "Japaneeg", "jbo": "Lojban", "jgo": "Ngomba", "jmc": "Matsiame", "jpr": "Iddew-Bersieg", "jrb": "Iddew-Arabeg", "jv": "Jafanaeg", "ka": "Georgeg", "kaa": "Cara-Calpaceg", "kab": "Cabileg", "kac": "Kachin", "kaj": "Jju", "kam": "Camba", "kbd": "Cabardieg", "kcg": "Tyapeg", "kde": "Macondeg", "kea": "Caboferdianeg", "kfo": "Koro", "kg": "Congo", "kha": "Càseg", "khq": "Koyra Chiini", "khw": "Chowareg", "ki": "Kikuyu", "kj": "Kuanyama", "kk": "Casacheg", "kkj": "Kako", "kl": "Kalaallisut", "kln": "Kalenjin", "km": "Chmereg", "kmb": "Kimbundu", "kn": "Kannada", "ko": "Coreeg", "koi": "Komi-Permyak", "kok": "Concani", "kpe": "Kpelle", "kr": "Canwri", "krc": "Karachay-Balkar", "krl": "Careleg", "kru": "Kurukh", "ks": "Cashmireg", "ksb": "Shambala", "ksf": "Baffia", "ksh": "Cwleneg", "ku": "Cwrdeg", "kum": "Cwmiceg", "kv": "Comi", "kw": "Cernyweg", "ky": "Cirgiseg", "la": "Lladin", "lad": "Iddew-Sbaeneg", "lag": "Langi", "lah": "Lahnda", "lam": "Lamba", "lb": "Lwcsembwrgeg", "lez": "Lezgheg", "lg": "Ganda", "li": "Limbwrgeg", "lkt": "Lakota", "lmo": "Lombardeg", "ln": "Lingala", "lo": "Laoeg", "lol": "Mongo", "loz": "Lozi", "lrc": "Luri Gogleddol", "lt": "Lithwaneg", "ltg": "Latgaleg", "lu": "Luba-Katanga", "lua": "Luba-Lulua", "lun": "Lwnda", "luo": "Lŵo", "lus": "Lwshaieg", "luy": "Lwyia", "lv": "Latfieg", "mad": "Madwreg", "mag": "Magahi", "mai": "Maithili", "mak": "Macasareg", "man": "Mandingo", "mas": "Masai", "mdf": "Mocsia", "mdr": "Mandareg", "men": "Mendeg", "mer": "Mêrw", "mfe": "Morisyen", "mg": "Malagaseg", "mga": "Gwyddeleg Canol", "mgh": "Makhuwa-Meetto", "mgo": "Meta", "mh": "Marsialeg", "mi": "Maori", "mic": "Micmaceg", "min": "Minangkabau", "mk": "Macedoneg", "ml": "Malayalam", "mn": "Mongoleg", "mnc": "Manshw", "mni": "Manipwri", "moh": "Mohoceg", "mos": "Mosi", "mr": "Marathi", "mrj": "Mari Gorllewinol", "ms": "Maleieg", "mt": "Malteg", "mua": "Mundang", "mus": "Creek", "mwl": "Mirandeg", "mwr": "Marwari", "my": "Byrmaneg", "myv": "Erzya", "mzn": "Masanderani", "na": "Nawrŵeg", "nap": "Naplieg", "naq": "Nama", "nb": "Norwyeg Bokmål", "nd": "Ndebele Gogleddol", "nds": "Almaeneg Isel", "nds-NL": "Sacsoneg Isel", "ne": "Nepaleg", "new": "Newaeg", "ng": "Ndonga", "nia": "Nias", "niu": "Niuean", "njo": "Ao Naga", "nl": "Iseldireg", "nl-BE": "Fflemeg", "nmg": "Kwasio", "nn": "Norwyeg Nynorsk", "nnh": "Ngiemboon", "no": "Norwyeg", "nog": "Nogai", "non": "Hen Norseg", "nqo": "N’Ko", "nr": "Ndebele Deheuol", "nso": "Sotho Gogleddol", "nus": "Nŵereg", "nv": "Nafaho", "nwc": "Hen Newari", "ny": "Nianja", "nym": "Niamwezi", "nyn": "Niancole", "nyo": "Nioro", "nzi": "Nzimeg", "oc": "Ocsitaneg", "oj": "Ojibwa", "om": "Oromo", "or": "Odia", "os": "Oseteg", "osa": "Osageg", "ota": "Tyrceg Otoman", "pa": "Pwnjabeg", "pag": "Pangasineg", "pal": "Pahlafi", "pam": "Pampanga", "pap": "Papiamento", "pau": "Palawan", "pcd": "Picardeg", "pcm": "Pidgin Nigeria", "pdc": "Almaeneg Pensylfania", "peo": "Hen Bersieg", "pfl": "Almaeneg Palatin", "phn": "Phoeniceg", "pi": "Pali", "pl": "Pwyleg", "pms": "Piedmonteg", "pnt": "Ponteg", "pon": "Pohnpeianeg", "prg": "Prwseg", "pro": "Hen Brofensaleg", "ps": "Pashto", "pt": "Portiwgeeg", "pt-BR": "Portiwgeeg Brasil", "pt-PT": "Portiwgeeg Ewrop", "qu": "Quechua", "quc": "K’iche’", "raj": "Rajasthaneg", "rap": "Rapanŵi", "rar": "Raratongeg", "rm": "Románsh", "rn": "Rwndi", "ro": "Rwmaneg", "ro-MD": "Moldofeg", "rof": "Rombo", "rom": "Romani", "root": "Y Gwraidd", "rtm": "Rotumaneg", "ru": "Rwseg", "rup": "Aromaneg", "rw": "Ciniarŵandeg", "rwk": "Rwa", "sa": "Sansgrit", "sad": "Sandäweg", "sah": "Sakha", "sam": "Aramaeg Samaria", "saq": "Sambŵrw", "sas": "Sasaceg", "sat": "Santali", "sba": "Ngambeieg", "sbp": "Sangw", "sc": "Sardeg", "scn": "Sisileg", "sco": "Sgoteg", "sd": "Sindhi", "sdc": "Sasareseg Sardinia", "sdh": "Cwrdeg Deheuol", "se": "Sami Gogleddol", "see": "Seneca", "seh": "Sena", "sei": "Seri", "sel": "Selcypeg", "ses": "Koyraboro Senni", "sg": "Sango", "sga": "Hen Wyddeleg", "sgs": "Samogiteg", "sh": "Serbo-Croateg", "shi": "Tachelhit", "shn": "Shan", "shu": "Arabeg Chad", "si": "Sinhaleg", "sid": "Sidamo", "sk": "Slofaceg", "sl": "Slofeneg", "sli": "Is-silesieg", "sm": "Samöeg", "sma": "Sami Deheuol", "smj": "Sami Lwle", "smn": "Sami Inari", "sms": "Sami Scolt", "sn": "Shona", "snk": "Soninceg", "so": "Somaleg", "sog": "Sogdeg", "sq": "Albaneg", "sr": "Serbeg", "srn": "Sranan Tongo", "srr": "Serereg", "ss": "Swati", "ssy": "Saho", "st": "Sesotheg Deheuol", "stq": "Ffriseg Saterland", "su": "Swndaneg", "suk": "Swcwma", "sus": "Swsŵeg", "sux": "Swmereg", "sv": "Swedeg", "sw": "Swahili", "sw-CD": "Swahili’r Congo", "swb": "Comoreg", "syc": "Hen Syrieg", "syr": "Syrieg", "szl": "Silesieg", "ta": "Tamileg", "tcy": "Tulu", "te": "Telugu", "tem": "Timneg", "teo": "Teso", "ter": "Terena", "tet": "Tetumeg", "tg": "Tajiceg", "th": "Thai", "ti": "Tigrinya", "tig": "Tigreg", "tiv": "Tifeg", "tk": "Twrcmeneg", "tkl": "Tocelaweg", "tkr": "Tsakhureg", "tl": "Tagalog", "tlh": "Klingon", "tli": "Llingit", "tly": "Talysheg", "tmh": "Tamasheceg", "tn": "Tswana", "to": "Tongeg", "tpi": "Tok Pisin", "tr": "Tyrceg", "trv": "Taroko", "ts": "Tsongaeg", "tsd": "Tsaconeg", "tt": "Tatareg", "tum": "Twmbwca", "tvl": "Twfalweg", "tw": "Twi", "twq": "Tasawaq", "ty": "Tahitïeg", "tyv": "Twfwnieg", "tzm": "Tamaseit Canolbarth Moroco", "udm": "Fotiaceg", "ug": "Uighur", "uga": "Wgariteg", "uk": "Wcreineg", "umb": "Umbundu", "ur": "Wrdw", "uz": "Wsbeceg", "vai": "Faieg", "ve": "Fendeg", "vec": "Feniseg", "vep": "Feps", "vi": "Fietnameg", "vls": "Fflemeg Gorllewinol", "vo": "Folapük", "vot": "Foteg", "vun": "Funjo", "wa": "Walwneg", "wae": "Walsereg", "wal": "Walamo", "war": "Winarayeg", "was": "Washo", "wbp": "Warlpiri", "wo": "Woloff", "xal": "Calmyceg", "xh": "Xhosa", "xog": "Soga", "yav": "Iangben", "ybb": "Iembaeg", "yi": "Iddew-Almaeneg", "yo": "Iorwba", "yue": "Cantoneeg", "zap": "Zapoteceg", "zbl": "Blisssymbols", "zea": "Zêlandeg", "zgh": "Tamaseit Safonol", "zh": "Tsieineeg", "zh-Hans": "Tsieineeg Symledig", "zh-Hant": "Tsieineeg Traddodiadol", "zu": "Swlw", "zun": "Swni", "zza": "Sasäeg"}}, - "da": {"rtl": false, "languageNames": {"aa": "afar", "ab": "abkhasisk", "ace": "achinesisk", "ach": "acoli", "ada": "adangme", "ady": "adyghe", "ae": "avestan", "af": "afrikaans", "afh": "afrihili", "agq": "aghem", "ain": "ainu", "ak": "akan", "akk": "akkadisk", "ale": "aleutisk", "alt": "sydaltaisk", "am": "amharisk", "an": "aragonesisk", "ang": "oldengelsk", "anp": "angika", "ar": "arabisk", "ar-001": "moderne standardarabisk", "arc": "aramæisk", "arn": "mapudungun", "arp": "arapaho", "ars": "Najd-arabisk", "arw": "arawak", "as": "assamesisk", "asa": "asu", "ast": "asturisk", "av": "avarisk", "awa": "awadhi", "ay": "aymara", "az": "aserbajdsjansk", "ba": "bashkir", "bal": "baluchi", "ban": "balinesisk", "bas": "basaa", "bax": "bamun", "bbj": "ghomala", "be": "hviderussisk", "bej": "beja", "bem": "bemba", "bez": "bena", "bfd": "bafut", "bg": "bulgarsk", "bgn": "vestbaluchi", "bho": "bhojpuri", "bi": "bislama", "bik": "bikol", "bin": "bini", "bkm": "kom", "bla": "siksika", "bm": "bambara", "bn": "bengali", "bo": "tibetansk", "br": "bretonsk", "bra": "braj", "brx": "bodo", "bs": "bosnisk", "bss": "bakossi", "bua": "buriatisk", "bug": "buginesisk", "bum": "bulu", "byn": "blin", "byv": "medumba", "ca": "catalansk", "cad": "caddo", "car": "caribisk", "cay": "cayuga", "cch": "atsam", "ce": "tjetjensk", "ceb": "cebuano", "cgg": "chiga", "ch": "chamorro", "chb": "chibcha", "chg": "chagatai", "chk": "chuukese", "chm": "mari", "chn": "chinook", "cho": "choctaw", "chp": "chipewyan", "chr": "cherokee", "chy": "cheyenne", "ckb": "sorani", "co": "korsikansk", "cop": "koptisk", "cr": "cree", "crh": "krim-tyrkisk", "crs": "seselwa (kreol-fransk)", "cs": "tjekkisk", "csb": "kasjubisk", "cu": "kirkeslavisk", "cv": "chuvash", "cy": "walisisk", "da": "dansk", "dak": "dakota", "dar": "dargwa", "dav": "taita", "de": "tysk", "de-AT": "østrigsk tysk", "de-CH": "schweizerhøjtysk", "del": "delaware", "den": "athapaskisk", "dgr": "dogrib", "din": "dinka", "dje": "zarma", "doi": "dogri", "dsb": "nedersorbisk", "dua": "duala", "dum": "middelhollandsk", "dv": "divehi", "dyo": "jola-fonyi", "dyu": "dyula", "dz": "dzongkha", "dzg": "dazaga", "ebu": "kiembu", "ee": "ewe", "efi": "efik", "egy": "oldegyptisk", "eka": "ekajuk", "el": "græsk", "elx": "elamitisk", "en": "engelsk", "en-AU": "australsk engelsk", "en-CA": "canadisk engelsk", "en-GB": "britisk engelsk", "en-US": "amerikansk engelsk", "enm": "middelengelsk", "eo": "esperanto", "es": "spansk", "es-419": "latinamerikansk spansk", "es-ES": "europæisk spansk", "es-MX": "mexicansk spansk", "et": "estisk", "eu": "baskisk", "ewo": "ewondo", "fa": "persisk", "fan": "fang", "fat": "fanti", "ff": "fulah", "fi": "finsk", "fil": "filippinsk", "fj": "fijiansk", "fo": "færøsk", "fr": "fransk", "fr-CA": "canadisk fransk", "fr-CH": "schweizisk fransk", "frc": "cajunfransk", "frm": "middelfransk", "fro": "oldfransk", "frr": "nordfrisisk", "frs": "østfrisisk", "fur": "friulian", "fy": "vestfrisisk", "ga": "irsk", "gaa": "ga", "gag": "gagauzisk", "gan": "gan-kinesisk", "gay": "gayo", "gba": "gbaya", "gd": "skotsk gælisk", "gez": "geez", "gil": "gilbertesisk", "gl": "galicisk", "gmh": "middelhøjtysk", "gn": "guarani", "goh": "oldhøjtysk", "gon": "gondi", "gor": "gorontalo", "got": "gotisk", "grb": "grebo", "grc": "oldgræsk", "gsw": "schweizertysk", "gu": "gujarati", "guz": "gusii", "gv": "manx", "gwi": "gwichin", "ha": "hausa", "hai": "haida", "hak": "hakka-kinesisk", "haw": "hawaiiansk", "he": "hebraisk", "hi": "hindi", "hil": "hiligaynon", "hit": "hittitisk", "hmn": "hmong", "ho": "hirimotu", "hr": "kroatisk", "hsb": "øvresorbisk", "hsn": "xiang-kinesisk", "ht": "haitisk", "hu": "ungarsk", "hup": "hupa", "hy": "armensk", "hz": "herero", "ia": "interlingua", "iba": "iban", "ibb": "ibibio", "id": "indonesisk", "ie": "interlingue", "ig": "igbo", "ii": "sichuan yi", "ik": "inupiaq", "ilo": "iloko", "inh": "ingush", "io": "ido", "is": "islandsk", "it": "italiensk", "iu": "inuktitut", "ja": "japansk", "jbo": "lojban", "jgo": "ngomba", "jmc": "machame", "jpr": "jødisk-persisk", "jrb": "jødisk-arabisk", "jv": "javanesisk", "ka": "georgisk", "kaa": "karakalpakisk", "kab": "kabylisk", "kac": "kachin", "kaj": "jju", "kam": "kamba", "kaw": "kawi", "kbd": "kabardian", "kbl": "kanembu", "kcg": "tyap", "kde": "makonde", "kea": "kapverdisk", "kfo": "koro", "kg": "kongo", "kha": "khasi", "kho": "khotanesisk", "khq": "koyra-chiini", "ki": "kikuyu", "kj": "kuanyama", "kk": "kasakhisk", "kkj": "kako", "kl": "grønlandsk", "kln": "kalenjin", "km": "khmer", "kmb": "kimbundu", "kn": "kannada", "ko": "koreansk", "koi": "komi-permjakisk", "kok": "konkani", "kos": "kosraean", "kpe": "kpelle", "kr": "kanuri", "krc": "karatjai-balkar", "krl": "karelsk", "kru": "kurukh", "ks": "kashmiri", "ksb": "shambala", "ksf": "bafia", "ksh": "kölsch", "ku": "kurdisk", "kum": "kymyk", "kut": "kutenaj", "kv": "komi", "kw": "cornisk", "ky": "kirgisisk", "la": "latin", "lad": "ladino", "lag": "langi", "lah": "lahnda", "lam": "lamba", "lb": "luxembourgsk", "lez": "lezghian", "lg": "ganda", "li": "limburgsk", "lkt": "lakota", "ln": "lingala", "lo": "lao", "lol": "mongo", "lou": "Louisiana-kreolsk", "loz": "lozi", "lrc": "nordluri", "lt": "litauisk", "lu": "luba-Katanga", "lua": "luba-Lulua", "lui": "luiseno", "lun": "lunda", "lus": "lushai", "luy": "luyana", "lv": "lettisk", "mad": "madurese", "maf": "mafa", "mag": "magahi", "mai": "maithili", "mak": "makasar", "man": "mandingo", "mas": "masai", "mde": "maba", "mdf": "moksha", "mdr": "mandar", "men": "mende", "mer": "meru", "mfe": "morisyen", "mg": "malagassisk", "mga": "middelirsk", "mgh": "makhuwa-meetto", "mgo": "meta", "mh": "marshallese", "mi": "maori", "mic": "micmac", "min": "minangkabau", "mk": "makedonsk", "ml": "malayalam", "mn": "mongolsk", "mnc": "manchu", "mni": "manipuri", "moh": "mohawk", "mos": "mossi", "mr": "marathisk", "ms": "malajisk", "mt": "maltesisk", "mua": "mundang", "mus": "creek", "mwl": "mirandesisk", "mwr": "marwari", "my": "burmesisk", "mye": "myene", "myv": "erzya", "mzn": "mazenisk", "na": "nauru", "nan": "min-kinesisk", "nap": "napolitansk", "naq": "nama", "nb": "norsk bokmål", "nd": "nordndebele", "nds": "nedertysk", "nds-NL": "nedertysk (Holland)", "ne": "nepalesisk", "new": "newari", "ng": "ndonga", "nia": "nias", "niu": "niueansk", "nl": "hollandsk", "nl-BE": "flamsk", "nmg": "kwasio", "nn": "nynorsk", "nnh": "ngiemboon", "no": "norsk", "nog": "nogai", "non": "oldislandsk", "nqo": "n-ko", "nr": "sydndebele", "nso": "nordsotho", "nus": "nuer", "nv": "navajo", "nwc": "klassisk newarisk", "ny": "nyanja", "nym": "nyamwezi", "nyn": "nyankole", "nyo": "nyoro-sprog", "nzi": "nzima", "oc": "occitansk", "oj": "ojibwa", "om": "oromo", "or": "oriya", "os": "ossetisk", "osa": "osage", "ota": "osmannisk tyrkisk", "pa": "punjabisk", "pag": "pangasinan", "pal": "pahlavi", "pam": "pampanga", "pap": "papiamento", "pau": "palauansk", "pcm": "nigeriansk pidgin", "peo": "oldpersisk", "phn": "fønikisk", "pi": "pali", "pl": "polsk", "pon": "ponape", "prg": "preussisk", "pro": "oldprovencalsk", "ps": "pashto", "pt": "portugisisk", "pt-BR": "brasiliansk portugisisk", "pt-PT": "europæisk portugisisk", "qu": "quechua", "quc": "quiché", "raj": "rajasthani", "rap": "rapanui", "rar": "rarotonga", "rm": "rætoromansk", "rn": "rundi", "ro": "rumænsk", "ro-MD": "moldovisk", "rof": "rombo", "rom": "romani", "root": "rod", "ru": "russisk", "rup": "arumænsk", "rw": "kinyarwanda", "rwk": "rwa", "sa": "sanskrit", "sad": "sandawe", "sah": "yakut", "sam": "samaritansk aramæisk", "saq": "samburu", "sas": "sasak", "sat": "santali", "sba": "ngambay", "sbp": "sangu", "sc": "sardinsk", "scn": "siciliansk", "sco": "skotsk", "sd": "sindhi", "sdh": "sydkurdisk", "se": "nordsamisk", "see": "seneca", "seh": "sena", "sel": "selkupisk", "ses": "koyraboro senni", "sg": "sango", "sga": "oldirsk", "sh": "serbokroatisk", "shi": "tachelhit", "shn": "shan", "shu": "tchadisk arabisk", "si": "singalesisk", "sid": "sidamo", "sk": "slovakisk", "sl": "slovensk", "sm": "samoansk", "sma": "sydsamisk", "smj": "lulesamisk", "smn": "enaresamisk", "sms": "skoltesamisk", "sn": "shona", "snk": "soninke", "so": "somali", "sog": "sogdiansk", "sq": "albansk", "sr": "serbisk", "srn": "sranan tongo", "srr": "serer", "ss": "swati", "ssy": "saho", "st": "sydsotho", "su": "sundanesisk", "suk": "sukuma", "sus": "susu", "sux": "sumerisk", "sv": "svensk", "sw": "swahili", "sw-CD": "congolesisk swahili", "swb": "shimaore", "syc": "klassisk syrisk", "syr": "syrisk", "ta": "tamil", "te": "telugu", "tem": "temne", "teo": "teso", "ter": "tereno", "tet": "tetum", "tg": "tadsjikisk", "th": "thai", "ti": "tigrinya", "tig": "tigre", "tiv": "tivi", "tk": "turkmensk", "tkl": "tokelau", "tl": "tagalog", "tlh": "klingon", "tli": "tlingit", "tmh": "tamashek", "tn": "tswana", "to": "tongansk", "tog": "nyasa tongansk", "tpi": "tok pisin", "tr": "tyrkisk", "trv": "taroko", "ts": "tsonga", "tsi": "tsimshisk", "tt": "tatarisk", "tum": "tumbuka", "tvl": "tuvaluansk", "tw": "twi", "twq": "tasawaq", "ty": "tahitiansk", "tyv": "tuvinian", "tzm": "centralmarokkansk tamazight", "udm": "udmurt", "ug": "uygurisk", "uga": "ugaristisk", "uk": "ukrainsk", "umb": "umbundu", "ur": "urdu", "uz": "usbekisk", "ve": "venda", "vi": "vietnamesisk", "vo": "volapyk", "vot": "votisk", "vun": "vunjo", "wa": "vallonsk", "wae": "walsertysk", "wal": "walamo", "war": "waray", "was": "washo", "wbp": "walbiri", "wo": "wolof", "wuu": "wu-kinesisk", "xal": "kalmyk", "xh": "isiXhosa", "xog": "soga", "yap": "yapese", "yav": "yangben", "ybb": "yemba", "yi": "jiddisch", "yo": "yoruba", "yue": "kantonesisk", "za": "zhuang", "zap": "zapotec", "zbl": "blissymboler", "zen": "zenaga", "zgh": "tamazight", "zh": "kinesisk", "zh-Hans": "forenklet kinesisk", "zh-Hant": "traditionelt kinesisk", "zu": "zulu", "zun": "zuni", "zza": "zaza"}}, - "de": {"rtl": false, "languageNames": {"aa": "Afar", "ab": "Abchasisch", "ace": "Aceh", "ach": "Acholi", "ada": "Adangme", "ady": "Adygeisch", "ae": "Avestisch", "aeb": "Tunesisches Arabisch", "af": "Afrikaans", "afh": "Afrihili", "agq": "Aghem", "ain": "Ainu", "ak": "Akan", "akk": "Akkadisch", "akz": "Alabama", "ale": "Aleutisch", "aln": "Gegisch", "alt": "Süd-Altaisch", "am": "Amharisch", "an": "Aragonesisch", "ang": "Altenglisch", "anp": "Angika", "ar": "Arabisch", "ar-001": "Modernes Hocharabisch", "arc": "Aramäisch", "arn": "Mapudungun", "aro": "Araona", "arp": "Arapaho", "arq": "Algerisches Arabisch", "ars": "Arabisch (Nadschd)", "arw": "Arawak", "ary": "Marokkanisches Arabisch", "arz": "Ägyptisches Arabisch", "as": "Assamesisch", "asa": "Asu", "ase": "Amerikanische Gebärdensprache", "ast": "Asturianisch", "av": "Awarisch", "avk": "Kotava", "awa": "Awadhi", "ay": "Aymara", "az": "Aserbaidschanisch", "ba": "Baschkirisch", "bal": "Belutschisch", "ban": "Balinesisch", "bar": "Bairisch", "bas": "Basaa", "bax": "Bamun", "bbc": "Batak Toba", "bbj": "Ghomala", "be": "Weißrussisch", "bej": "Bedauye", "bem": "Bemba", "bew": "Betawi", "bez": "Bena", "bfd": "Bafut", "bfq": "Badaga", "bg": "Bulgarisch", "bgn": "Westliches Belutschi", "bho": "Bhodschpuri", "bi": "Bislama", "bik": "Bikol", "bin": "Bini", "bjn": "Banjaresisch", "bkm": "Kom", "bla": "Blackfoot", "bm": "Bambara", "bn": "Bengalisch", "bo": "Tibetisch", "bpy": "Bishnupriya", "bqi": "Bachtiarisch", "br": "Bretonisch", "bra": "Braj-Bhakha", "brh": "Brahui", "brx": "Bodo", "bs": "Bosnisch", "bss": "Akoose", "bua": "Burjatisch", "bug": "Buginesisch", "bum": "Bulu", "byn": "Blin", "byv": "Medumba", "ca": "Katalanisch", "cad": "Caddo", "car": "Karibisch", "cay": "Cayuga", "cch": "Atsam", "ce": "Tschetschenisch", "ceb": "Cebuano", "cgg": "Rukiga", "ch": "Chamorro", "chb": "Chibcha", "chg": "Tschagataisch", "chk": "Chuukesisch", "chm": "Mari", "chn": "Chinook", "cho": "Choctaw", "chp": "Chipewyan", "chr": "Cherokee", "chy": "Cheyenne", "ckb": "Zentralkurdisch", "co": "Korsisch", "cop": "Koptisch", "cps": "Capiznon", "cr": "Cree", "crh": "Krimtatarisch", "crs": "Seychellenkreol", "cs": "Tschechisch", "csb": "Kaschubisch", "cu": "Kirchenslawisch", "cv": "Tschuwaschisch", "cy": "Walisisch", "da": "Dänisch", "dak": "Dakota", "dar": "Darginisch", "dav": "Taita", "de": "Deutsch", "de-AT": "Österreichisches Deutsch", "de-CH": "Schweizer Hochdeutsch", "del": "Delaware", "den": "Slave", "dgr": "Dogrib", "din": "Dinka", "dje": "Zarma", "doi": "Dogri", "dsb": "Niedersorbisch", "dtp": "Zentral-Dusun", "dua": "Duala", "dum": "Mittelniederländisch", "dv": "Dhivehi", "dyo": "Diola", "dyu": "Dyula", "dz": "Dzongkha", "dzg": "Dazaga", "ebu": "Embu", "ee": "Ewe", "efi": "Efik", "egl": "Emilianisch", "egy": "Ägyptisch", "eka": "Ekajuk", "el": "Griechisch", "elx": "Elamisch", "en": "Englisch", "en-AU": "Englisch (Australien)", "en-CA": "Englisch (Kanada)", "en-GB": "Englisch (Vereinigtes Königreich)", "en-US": "Englisch (Vereinigte Staaten)", "enm": "Mittelenglisch", "eo": "Esperanto", "es": "Spanisch", "es-419": "Spanisch (Lateinamerika)", "es-ES": "Spanisch (Spanien)", "es-MX": "Spanisch (Mexiko)", "esu": "Zentral-Alaska-Yupik", "et": "Estnisch", "eu": "Baskisch", "ewo": "Ewondo", "ext": "Extremadurisch", "fa": "Persisch", "fan": "Pangwe", "fat": "Fanti", "ff": "Ful", "fi": "Finnisch", "fil": "Filipino", "fit": "Meänkieli", "fj": "Fidschi", "fo": "Färöisch", "fon": "Fon", "fr": "Französisch", "fr-CA": "Französisch (Kanada)", "fr-CH": "Französisch (Schweiz)", "frc": "Cajun", "frm": "Mittelfranzösisch", "fro": "Altfranzösisch", "frp": "Frankoprovenzalisch", "frr": "Nordfriesisch", "frs": "Ostfriesisch", "fur": "Friaulisch", "fy": "Westfriesisch", "ga": "Irisch", "gaa": "Ga", "gag": "Gagausisch", "gan": "Gan", "gay": "Gayo", "gba": "Gbaya", "gbz": "Gabri", "gd": "Schottisches Gälisch", "gez": "Geez", "gil": "Kiribatisch", "gl": "Galicisch", "glk": "Gilaki", "gmh": "Mittelhochdeutsch", "gn": "Guaraní", "goh": "Althochdeutsch", "gom": "Goa-Konkani", "gon": "Gondi", "gor": "Mongondou", "got": "Gotisch", "grb": "Grebo", "grc": "Altgriechisch", "gsw": "Schweizerdeutsch", "gu": "Gujarati", "guc": "Wayúu", "gur": "Farefare", "guz": "Gusii", "gv": "Manx", "gwi": "Kutchin", "ha": "Haussa", "hai": "Haida", "hak": "Hakka", "haw": "Hawaiisch", "he": "Hebräisch", "hi": "Hindi", "hif": "Fidschi-Hindi", "hil": "Hiligaynon", "hit": "Hethitisch", "hmn": "Miao", "ho": "Hiri-Motu", "hr": "Kroatisch", "hsb": "Obersorbisch", "hsn": "Xiang", "ht": "Haiti-Kreolisch", "hu": "Ungarisch", "hup": "Hupa", "hy": "Armenisch", "hz": "Herero", "ia": "Interlingua", "iba": "Iban", "ibb": "Ibibio", "id": "Indonesisch", "ie": "Interlingue", "ig": "Igbo", "ii": "Yi", "ik": "Inupiak", "ilo": "Ilokano", "inh": "Inguschisch", "io": "Ido", "is": "Isländisch", "it": "Italienisch", "iu": "Inuktitut", "izh": "Ischorisch", "ja": "Japanisch", "jam": "Jamaikanisch-Kreolisch", "jbo": "Lojban", "jgo": "Ngomba", "jmc": "Machame", "jpr": "Jüdisch-Persisch", "jrb": "Jüdisch-Arabisch", "jut": "Jütisch", "jv": "Javanisch", "ka": "Georgisch", "kaa": "Karakalpakisch", "kab": "Kabylisch", "kac": "Kachin", "kaj": "Jju", "kam": "Kamba", "kaw": "Kawi", "kbd": "Kabardinisch", "kbl": "Kanembu", "kcg": "Tyap", "kde": "Makonde", "kea": "Kabuverdianu", "ken": "Kenyang", "kfo": "Koro", "kg": "Kongolesisch", "kgp": "Kaingang", "kha": "Khasi", "kho": "Sakisch", "khq": "Koyra Chiini", "khw": "Khowar", "ki": "Kikuyu", "kiu": "Kirmanjki", "kj": "Kwanyama", "kk": "Kasachisch", "kkj": "Kako", "kl": "Grönländisch", "kln": "Kalenjin", "km": "Khmer", "kmb": "Kimbundu", "kn": "Kannada", "ko": "Koreanisch", "koi": "Komi-Permjakisch", "kok": "Konkani", "kos": "Kosraeanisch", "kpe": "Kpelle", "kr": "Kanuri", "krc": "Karatschaiisch-Balkarisch", "kri": "Krio", "krj": "Kinaray-a", "krl": "Karelisch", "kru": "Oraon", "ks": "Kaschmiri", "ksb": "Shambala", "ksf": "Bafia", "ksh": "Kölsch", "ku": "Kurdisch", "kum": "Kumükisch", "kut": "Kutenai", "kv": "Komi", "kw": "Kornisch", "ky": "Kirgisisch", "la": "Latein", "lad": "Ladino", "lag": "Langi", "lah": "Lahnda", "lam": "Lamba", "lb": "Luxemburgisch", "lez": "Lesgisch", "lfn": "Lingua Franca Nova", "lg": "Ganda", "li": "Limburgisch", "lij": "Ligurisch", "liv": "Livisch", "lkt": "Lakota", "lmo": "Lombardisch", "ln": "Lingala", "lo": "Laotisch", "lol": "Mongo", "lou": "Kreol (Louisiana)", "loz": "Lozi", "lrc": "Nördliches Luri", "lt": "Litauisch", "ltg": "Lettgallisch", "lu": "Luba-Katanga", "lua": "Luba-Lulua", "lui": "Luiseno", "lun": "Lunda", "luo": "Luo", "lus": "Lushai", "luy": "Luhya", "lv": "Lettisch", "lzh": "Klassisches Chinesisch", "lzz": "Lasisch", "mad": "Maduresisch", "maf": "Mafa", "mag": "Khotta", "mai": "Maithili", "mak": "Makassarisch", "man": "Malinke", "mas": "Massai", "mde": "Maba", "mdf": "Mokschanisch", "mdr": "Mandaresisch", "men": "Mende", "mer": "Meru", "mfe": "Morisyen", "mg": "Madagassisch", "mga": "Mittelirisch", "mgh": "Makhuwa-Meetto", "mgo": "Meta’", "mh": "Marschallesisch", "mi": "Maori", "mic": "Micmac", "min": "Minangkabau", "mk": "Mazedonisch", "ml": "Malayalam", "mn": "Mongolisch", "mnc": "Mandschurisch", "mni": "Meithei", "moh": "Mohawk", "mos": "Mossi", "mr": "Marathi", "mrj": "Bergmari", "ms": "Malaiisch", "mt": "Maltesisch", "mua": "Mundang", "mus": "Muskogee", "mwl": "Mirandesisch", "mwr": "Marwari", "mwv": "Mentawai", "my": "Birmanisch", "mye": "Myene", "myv": "Ersja-Mordwinisch", "mzn": "Masanderanisch", "na": "Nauruisch", "nan": "Min Nan", "nap": "Neapolitanisch", "naq": "Nama", "nb": "Norwegisch Bokmål", "nd": "Nord-Ndebele", "nds": "Niederdeutsch", "nds-NL": "Niedersächsisch", "ne": "Nepalesisch", "new": "Newari", "ng": "Ndonga", "nia": "Nias", "niu": "Niue", "njo": "Ao-Naga", "nl": "Niederländisch", "nl-BE": "Flämisch", "nmg": "Kwasio", "nn": "Norwegisch Nynorsk", "nnh": "Ngiemboon", "no": "Norwegisch", "nog": "Nogai", "non": "Altnordisch", "nov": "Novial", "nqo": "N’Ko", "nr": "Süd-Ndebele", "nso": "Nord-Sotho", "nus": "Nuer", "nv": "Navajo", "nwc": "Alt-Newari", "ny": "Nyanja", "nym": "Nyamwezi", "nyn": "Nyankole", "nyo": "Nyoro", "nzi": "Nzima", "oc": "Okzitanisch", "oj": "Ojibwa", "om": "Oromo", "or": "Oriya", "os": "Ossetisch", "osa": "Osage", "ota": "Osmanisch", "pa": "Punjabi", "pag": "Pangasinan", "pal": "Mittelpersisch", "pam": "Pampanggan", "pap": "Papiamento", "pau": "Palau", "pcd": "Picardisch", "pcm": "Nigerianisches Pidgin", "pdc": "Pennsylvaniadeutsch", "pdt": "Plautdietsch", "peo": "Altpersisch", "pfl": "Pfälzisch", "phn": "Phönizisch", "pi": "Pali", "pl": "Polnisch", "pms": "Piemontesisch", "pnt": "Pontisch", "pon": "Ponapeanisch", "prg": "Altpreußisch", "pro": "Altprovenzalisch", "ps": "Paschtu", "pt": "Portugiesisch", "pt-BR": "Portugiesisch (Brasilien)", "pt-PT": "Portugiesisch (Portugal)", "qu": "Quechua", "quc": "K’iche’", "qug": "Chimborazo Hochland-Quechua", "raj": "Rajasthani", "rap": "Rapanui", "rar": "Rarotonganisch", "rgn": "Romagnol", "rif": "Tarifit", "rm": "Rätoromanisch", "rn": "Rundi", "ro": "Rumänisch", "ro-MD": "Moldauisch", "rof": "Rombo", "rom": "Romani", "root": "Root", "rtm": "Rotumanisch", "ru": "Russisch", "rue": "Russinisch", "rug": "Roviana", "rup": "Aromunisch", "rw": "Kinyarwanda", "rwk": "Rwa", "sa": "Sanskrit", "sad": "Sandawe", "sah": "Jakutisch", "sam": "Samaritanisch", "saq": "Samburu", "sas": "Sasak", "sat": "Santali", "saz": "Saurashtra", "sba": "Ngambay", "sbp": "Sangu", "sc": "Sardisch", "scn": "Sizilianisch", "sco": "Schottisch", "sd": "Sindhi", "sdc": "Sassarisch", "sdh": "Südkurdisch", "se": "Nordsamisch", "see": "Seneca", "seh": "Sena", "sei": "Seri", "sel": "Selkupisch", "ses": "Koyra Senni", "sg": "Sango", "sga": "Altirisch", "sgs": "Samogitisch", "sh": "Serbo-Kroatisch", "shi": "Taschelhit", "shn": "Schan", "shu": "Tschadisch-Arabisch", "si": "Singhalesisch", "sid": "Sidamo", "sk": "Slowakisch", "sl": "Slowenisch", "sli": "Schlesisch (Niederschlesisch)", "sly": "Selayar", "sm": "Samoanisch", "sma": "Südsamisch", "smj": "Lule-Samisch", "smn": "Inari-Samisch", "sms": "Skolt-Samisch", "sn": "Shona", "snk": "Soninke", "so": "Somali", "sog": "Sogdisch", "sq": "Albanisch", "sr": "Serbisch", "srn": "Srananisch", "srr": "Serer", "ss": "Swazi", "ssy": "Saho", "st": "Süd-Sotho", "stq": "Saterfriesisch", "su": "Sundanesisch", "suk": "Sukuma", "sus": "Susu", "sux": "Sumerisch", "sv": "Schwedisch", "sw": "Suaheli", "sw-CD": "Kongo-Swahili", "swb": "Komorisch", "syc": "Altsyrisch", "syr": "Syrisch", "szl": "Schlesisch (Wasserpolnisch)", "ta": "Tamil", "tcy": "Tulu", "te": "Telugu", "tem": "Temne", "teo": "Teso", "ter": "Tereno", "tet": "Tetum", "tg": "Tadschikisch", "th": "Thailändisch", "ti": "Tigrinya", "tig": "Tigre", "tiv": "Tiv", "tk": "Turkmenisch", "tkl": "Tokelauanisch", "tkr": "Tsachurisch", "tl": "Tagalog", "tlh": "Klingonisch", "tli": "Tlingit", "tly": "Talisch", "tmh": "Tamaseq", "tn": "Tswana", "to": "Tongaisch", "tog": "Nyasa Tonga", "tpi": "Neumelanesisch", "tr": "Türkisch", "tru": "Turoyo", "trv": "Taroko", "ts": "Tsonga", "tsd": "Tsakonisch", "tsi": "Tsimshian", "tt": "Tatarisch", "ttt": "Tatisch", "tum": "Tumbuka", "tvl": "Tuvaluisch", "tw": "Twi", "twq": "Tasawaq", "ty": "Tahitisch", "tyv": "Tuwinisch", "tzm": "Zentralatlas-Tamazight", "udm": "Udmurtisch", "ug": "Uigurisch", "uga": "Ugaritisch", "uk": "Ukrainisch", "umb": "Umbundu", "ur": "Urdu", "uz": "Usbekisch", "vai": "Vai", "ve": "Venda", "vec": "Venetisch", "vep": "Wepsisch", "vi": "Vietnamesisch", "vls": "Westflämisch", "vmf": "Mainfränkisch", "vo": "Volapük", "vot": "Wotisch", "vro": "Võro", "vun": "Vunjo", "wa": "Wallonisch", "wae": "Walliserdeutsch", "wal": "Walamo", "war": "Waray", "was": "Washo", "wbp": "Warlpiri", "wo": "Wolof", "wuu": "Wu", "xal": "Kalmückisch", "xh": "Xhosa", "xmf": "Mingrelisch", "xog": "Soga", "yao": "Yao", "yap": "Yapesisch", "yav": "Yangben", "ybb": "Yemba", "yi": "Jiddisch", "yo": "Yoruba", "yrl": "Nheengatu", "yue": "Kantonesisch", "za": "Zhuang", "zap": "Zapotekisch", "zbl": "Bliss-Symbole", "zea": "Seeländisch", "zen": "Zenaga", "zgh": "Tamazight", "zh": "Chinesisch", "zh-Hans": "Chinesisch (vereinfacht)", "zh-Hant": "Chinesisch (traditionell)", "zu": "Zulu", "zun": "Zuni", "zza": "Zaza"}}, - "dv": {"rtl": true, "languageNames": {}}, - "el": {"rtl": false, "languageNames": {"aa": "Αφάρ", "ab": "Αμπχαζικά", "ace": "Ατσινιζικά", "ach": "Ακολί", "ada": "Αντάνγκμε", "ady": "Αντιγκέα", "ae": "Αβεστάν", "af": "Αφρικάανς", "afh": "Αφριχίλι", "agq": "Αγκέμ", "ain": "Αϊνού", "ak": "Ακάν", "akk": "Ακάντιαν", "ale": "Αλεούτ", "alt": "Νότια Αλτάι", "am": "Αμχαρικά", "an": "Αραγονικά", "ang": "Παλαιά Αγγλικά", "anp": "Ανγκικά", "ar": "Αραβικά", "ar-001": "Σύγχρονα Τυπικά Αραβικά", "arc": "Αραμαϊκά", "arn": "Αραουκανικά", "arp": "Αραπάχο", "ars": "Αραβικά Νάτζντι", "arw": "Αραγουάκ", "as": "Ασαμικά", "asa": "Άσου", "ast": "Αστουριανά", "av": "Αβαρικά", "awa": "Αγουαντί", "ay": "Αϊμάρα", "az": "Αζερμπαϊτζανικά", "ba": "Μπασκίρ", "bal": "Μπαλούτσι", "ban": "Μπαλινίζ", "bas": "Μπάσα", "bax": "Μπαμούν", "bbj": "Γκομάλα", "be": "Λευκορωσικά", "bej": "Μπέζα", "bem": "Μπέμπα", "bez": "Μπένα", "bfd": "Μπαφούτ", "bg": "Βουλγαρικά", "bgn": "Δυτικά Μπαλοχικά", "bho": "Μπότζπουρι", "bi": "Μπισλάμα", "bik": "Μπικόλ", "bin": "Μπίνι", "bkm": "Κομ", "bla": "Σικσίκα", "bm": "Μπαμπάρα", "bn": "Βεγγαλικά", "bo": "Θιβετιανά", "br": "Βρετονικά", "bra": "Μπρατζ", "brx": "Μπόντο", "bs": "Βοσνιακά", "bss": "Ακόσι", "bua": "Μπουριάτ", "bug": "Μπουγκίζ", "bum": "Μπουλού", "byn": "Μπλιν", "byv": "Μεντούμπα", "ca": "Καταλανικά", "cad": "Κάντο", "car": "Καρίμπ", "cay": "Καγιούγκα", "cch": "Ατσάμ", "ccp": "Τσάκμα", "ce": "Τσετσενικά", "ceb": "Σεμπουάνο", "cgg": "Τσίγκα", "ch": "Τσαμόρο", "chb": "Τσίμπτσα", "chg": "Τσαγκατάι", "chk": "Τσουκίζι", "chm": "Μάρι", "chn": "Ιδιωματικά Σινούκ", "cho": "Τσόκτο", "chp": "Τσίπιουαν", "chr": "Τσερόκι", "chy": "Τσεγιέν", "ckb": "Κουρδικά Σοράνι", "co": "Κορσικανικά", "cop": "Κοπτικά", "cr": "Κρι", "crh": "Τουρκικά Κριμαίας", "crs": "Κρεολικά Γαλλικά Σεϋχελλών", "cs": "Τσεχικά", "csb": "Κασούμπιαν", "cu": "Εκκλησιαστικά Σλαβικά", "cv": "Τσουβασικά", "cy": "Ουαλικά", "da": "Δανικά", "dak": "Ντακότα", "dar": "Ντάργκουα", "dav": "Τάιτα", "de": "Γερμανικά", "de-AT": "Γερμανικά Αυστρίας", "de-CH": "Υψηλά Γερμανικά Ελβετίας", "del": "Ντέλαγουερ", "den": "Σλαβικά", "dgr": "Ντόγκριμπ", "din": "Ντίνκα", "dje": "Ζάρμα", "doi": "Ντόγκρι", "dsb": "Κάτω Σορβικά", "dua": "Ντουάλα", "dum": "Μέσα Ολλανδικά", "dv": "Ντιβέχι", "dyo": "Τζόλα-Φόνι", "dyu": "Ντογιούλα", "dz": "Ντζόνγκχα", "dzg": "Νταζάγκα", "ebu": "Έμπου", "ee": "Έουε", "efi": "Εφίκ", "egy": "Αρχαία Αιγυπτιακά", "eka": "Εκατζούκ", "el": "Ελληνικά", "elx": "Ελαμάιτ", "en": "Αγγλικά", "en-AU": "Αγγλικά Αυστραλίας", "en-CA": "Αγγλικά Καναδά", "en-GB": "Αγγλικά Βρετανίας", "en-US": "Αγγλικά Αμερικής", "enm": "Μέσα Αγγλικά", "eo": "Εσπεράντο", "es": "Ισπανικά", "es-419": "Ισπανικά Λατινικής Αμερικής", "es-ES": "Ισπανικά Ευρώπης", "es-MX": "Ισπανικά Μεξικού", "et": "Εσθονικά", "eu": "Βασκικά", "ewo": "Εγουόντο", "fa": "Περσικά", "fan": "Φανγκ", "fat": "Φάντι", "ff": "Φουλά", "fi": "Φινλανδικά", "fil": "Φιλιππινικά", "fj": "Φίτζι", "fo": "Φεροϊκά", "fon": "Φον", "fr": "Γαλλικά", "fr-CA": "Γαλλικά Καναδά", "fr-CH": "Γαλλικά Ελβετίας", "frc": "Γαλλικά (Λουιζιάνα)", "frm": "Μέσα Γαλλικά", "fro": "Παλαιά Γαλλικά", "frr": "Βόρεια Φριζιανά", "frs": "Ανατολικά Φριζιανά", "fur": "Φριουλανικά", "fy": "Δυτικά Φριζικά", "ga": "Ιρλανδικά", "gaa": "Γκα", "gag": "Γκαγκάουζ", "gay": "Γκάγιο", "gba": "Γκμπάγια", "gd": "Σκωτικά Κελτικά", "gez": "Γκιζ", "gil": "Γκιλμπερτίζ", "gl": "Γαλικιανά", "gmh": "Μέσα Άνω Γερμανικά", "gn": "Γκουαρανί", "goh": "Παλαιά Άνω Γερμανικά", "gon": "Γκόντι", "gor": "Γκοροντάλο", "got": "Γοτθικά", "grb": "Γκρίμπο", "grc": "Αρχαία Ελληνικά", "gsw": "Γερμανικά Ελβετίας", "gu": "Γκουγιαράτι", "guz": "Γκούσι", "gv": "Μανξ", "gwi": "Γκουίτσιν", "ha": "Χάουσα", "hai": "Χάιντα", "haw": "Χαβαϊκά", "he": "Εβραϊκά", "hi": "Χίντι", "hil": "Χιλιγκαϊνόν", "hit": "Χιτίτε", "hmn": "Χμονγκ", "ho": "Χίρι Μότου", "hr": "Κροατικά", "hsb": "Άνω Σορβικά", "ht": "Αϊτιανά", "hu": "Ουγγρικά", "hup": "Χούπα", "hy": "Αρμενικά", "hz": "Χερέρο", "ia": "Ιντερλίνγκουα", "iba": "Ιμπάν", "ibb": "Ιμπίμπιο", "id": "Ινδονησιακά", "ie": "Ιντερλίνγκουε", "ig": "Ίγκμπο", "ii": "Σίτσουαν Γι", "ik": "Ινουπιάκ", "ilo": "Ιλόκο", "inh": "Ινγκούς", "io": "Ίντο", "is": "Ισλανδικά", "it": "Ιταλικά", "iu": "Ινούκτιτουτ", "ja": "Ιαπωνικά", "jbo": "Λόζμπαν", "jgo": "Νγκόμπα", "jmc": "Ματσάμε", "jpr": "Ιουδαϊκά-Περσικά", "jrb": "Ιουδαϊκά-Αραβικά", "jv": "Ιαβανικά", "ka": "Γεωργιανά", "kaa": "Κάρα-Καλπάκ", "kab": "Καμπίλε", "kac": "Κατσίν", "kaj": "Τζου", "kam": "Κάμπα", "kaw": "Κάουι", "kbd": "Καμπαρντιανά", "kbl": "Κανέμπου", "kcg": "Τιάπ", "kde": "Μακόντε", "kea": "Γλώσσα του Πράσινου Ακρωτηρίου", "kfo": "Κόρο", "kg": "Κονγκό", "kha": "Κάσι", "kho": "Κοτανικά", "khq": "Κόιρα Τσίνι", "ki": "Κικούγιου", "kj": "Κουανιάμα", "kk": "Καζακικά", "kkj": "Κάκο", "kl": "Καλαάλισουτ", "kln": "Καλεντζίν", "km": "Χμερ", "kmb": "Κιμπούντου", "kn": "Κανάντα", "ko": "Κορεατικά", "koi": "Κόμι-Περμιάκ", "kok": "Κονκανικά", "kos": "Κοσραενικά", "kpe": "Κπέλε", "kr": "Κανούρι", "krc": "Καρατσάι-Μπαλκάρ", "krl": "Καρελικά", "kru": "Κουρούχ", "ks": "Κασμιρικά", "ksb": "Σαμπάλα", "ksf": "Μπάφια", "ksh": "Κολωνικά", "ku": "Κουρδικά", "kum": "Κουμγιούκ", "kut": "Κουτενάι", "kv": "Κόμι", "kw": "Κορνουαλικά", "ky": "Κιργιζικά", "la": "Λατινικά", "lad": "Λαδίνο", "lag": "Λάνγκι", "lah": "Λάχδα", "lam": "Λάμπα", "lb": "Λουξεμβουργιανά", "lez": "Λεζγκικά", "lg": "Γκάντα", "li": "Λιμβουργιανά", "lkt": "Λακότα", "ln": "Λινγκάλα", "lo": "Λαοτινά", "lol": "Μόνγκο", "lou": "Κρεολικά (Λουιζιάνα)", "loz": "Λόζι", "lrc": "Βόρεια Λούρι", "lt": "Λιθουανικά", "lu": "Λούμπα-Κατάνγκα", "lua": "Λούμπα-Λουλούα", "lui": "Λουισένο", "lun": "Λούντα", "luo": "Λούο", "lus": "Μίζο", "luy": "Λούχια", "lv": "Λετονικά", "mad": "Μαντουρίζ", "maf": "Μάφα", "mag": "Μαγκάχι", "mai": "Μαϊτχίλι", "mak": "Μακασάρ", "man": "Μαντίνγκο", "mas": "Μασάι", "mde": "Μάμπα", "mdf": "Μόκσα", "mdr": "Μανδάρ", "men": "Μέντε", "mer": "Μέρου", "mfe": "Μορισιέν", "mg": "Μαλγασικά", "mga": "Μέσα Ιρλανδικά", "mgh": "Μακούβα-Μέτο", "mgo": "Μέτα", "mh": "Μαρσαλέζικα", "mi": "Μαορί", "mic": "Μικμάκ", "min": "Μινανγκαμπάου", "mk": "Μακεδονικά", "ml": "Μαλαγιαλαμικά", "mn": "Μογγολικά", "mnc": "Μαντσού", "mni": "Μανιπούρι", "moh": "Μοχόκ", "mos": "Μόσι", "mr": "Μαραθικά", "ms": "Μαλαισιανά", "mt": "Μαλτεζικά", "mua": "Μουντάνγκ", "mus": "Κρικ", "mwl": "Μιραντεζικά", "mwr": "Μαργουάρι", "my": "Βιρμανικά", "mye": "Μιένε", "myv": "Έρζια", "mzn": "Μαζαντεράνι", "na": "Ναούρου", "nap": "Ναπολιτανικά", "naq": "Νάμα", "nb": "Νορβηγικά Μποκμάλ", "nd": "Βόρεια Ντεμπέλε", "nds": "Κάτω Γερμανικά", "nds-NL": "Κάτω Γερμανικά Ολλανδίας", "ne": "Νεπαλικά", "new": "Νεγουάρι", "ng": "Ντόνγκα", "nia": "Νίας", "niu": "Νιούε", "nl": "Ολλανδικά", "nl-BE": "Φλαμανδικά", "nmg": "Κβάσιο", "nn": "Νορβηγικά Νινόρσκ", "nnh": "Νγκιεμπούν", "no": "Νορβηγικά", "nog": "Νογκάι", "non": "Παλαιά Νορβηγικά", "nqo": "Ν’Κο", "nr": "Νότια Ντεμπέλε", "nso": "Βόρεια Σόθο", "nus": "Νούερ", "nv": "Νάβαχο", "nwc": "Κλασικά Νεουάρι", "ny": "Νιάντζα", "nym": "Νιαμγουέζι", "nyn": "Νιανκόλε", "nyo": "Νιόρο", "nzi": "Νζίμα", "oc": "Οξιτανικά", "oj": "Οζιβίγουα", "om": "Ορόμο", "or": "Όντια", "os": "Οσετικά", "osa": "Οσάζ", "ota": "Οθωμανικά Τουρκικά", "pa": "Παντζαπικά", "pag": "Πανγκασινάν", "pal": "Παχλάβι", "pam": "Παμπάνγκα", "pap": "Παπιαμέντο", "pau": "Παλάουαν", "pcm": "Πίτζιν Νιγηρίας", "peo": "Αρχαία Περσικά", "phn": "Φοινικικά", "pi": "Πάλι", "pl": "Πολωνικά", "pon": "Πομπηικά", "prg": "Πρωσικά", "pro": "Παλαιά Προβανσάλ", "ps": "Πάστο", "pt": "Πορτογαλικά", "pt-BR": "Πορτογαλικά Βραζιλίας", "pt-PT": "Πορτογαλικά Ευρώπης", "qu": "Κέτσουα", "quc": "Κιτσέ", "raj": "Ραζασθάνι", "rap": "Ραπανούι", "rar": "Ραροτονγκάν", "rm": "Ρομανικά", "rn": "Ρούντι", "ro": "Ρουμανικά", "ro-MD": "Μολδαβικά", "rof": "Ρόμπο", "rom": "Ρομανί", "root": "Ρίζα", "ru": "Ρωσικά", "rup": "Αρομανικά", "rw": "Κινιαρουάντα", "rwk": "Ρουά", "sa": "Σανσκριτικά", "sad": "Σαντάγουε", "sah": "Σαχά", "sam": "Σαμαρίτικα Αραμαϊκά", "saq": "Σαμπούρου", "sas": "Σασάκ", "sat": "Σαντάλι", "sba": "Νγκαμπέι", "sbp": "Σάνγκου", "sc": "Σαρδηνιακά", "scn": "Σικελικά", "sco": "Σκωτικά", "sd": "Σίντι", "sdh": "Νότια Κουρδικά", "se": "Βόρεια Σάμι", "see": "Σένεκα", "seh": "Σένα", "sel": "Σελκούπ", "ses": "Κοϊραμπόρο Σένι", "sg": "Σάνγκο", "sga": "Παλαιά Ιρλανδικά", "sh": "Σερβοκροατικά", "shi": "Τασελχίτ", "shn": "Σαν", "shu": "Αραβικά του Τσαντ", "si": "Σινχαλεζικά", "sid": "Σιντάμο", "sk": "Σλοβακικά", "sl": "Σλοβενικά", "sm": "Σαμοανά", "sma": "Νότια Σάμι", "smj": "Λούλε Σάμι", "smn": "Ινάρι Σάμι", "sms": "Σκολτ Σάμι", "sn": "Σόνα", "snk": "Σονίνκε", "so": "Σομαλικά", "sog": "Σογκντιέν", "sq": "Αλβανικά", "sr": "Σερβικά", "srn": "Σρανάν Τόνγκο", "srr": "Σερέρ", "ss": "Σουάτι", "ssy": "Σάχο", "st": "Νότια Σόθο", "su": "Σουνδανικά", "suk": "Σουκούμα", "sus": "Σούσου", "sux": "Σουμερικά", "sv": "Σουηδικά", "sw": "Σουαχίλι", "sw-CD": "Κονγκό Σουαχίλι", "swb": "Κομοριανά", "syc": "Κλασικά Συριακά", "syr": "Συριακά", "ta": "Ταμιλικά", "te": "Τελούγκου", "tem": "Τίμνε", "teo": "Τέσο", "ter": "Τερένο", "tet": "Τέτουμ", "tg": "Τατζικικά", "th": "Ταϊλανδικά", "ti": "Τιγκρινικά", "tig": "Τίγκρε", "tiv": "Τιβ", "tk": "Τουρκμενικά", "tkl": "Τοκελάου", "tl": "Τάγκαλογκ", "tlh": "Κλίνγκον", "tli": "Τλίνγκιτ", "tmh": "Ταμασέκ", "tn": "Τσουάνα", "to": "Τονγκανικά", "tog": "Νιάσα Τόνγκα", "tpi": "Τοκ Πισίν", "tr": "Τουρκικά", "trv": "Ταρόκο", "ts": "Τσόνγκα", "tsi": "Τσίμσιαν", "tt": "Ταταρικά", "tum": "Τουμπούκα", "tvl": "Τουβαλού", "tw": "Τούι", "twq": "Τασαβάκ", "ty": "Ταϊτιανά", "tyv": "Τουβινικά", "tzm": "Ταμαζίτ Κεντρικού Μαρόκο", "udm": "Ουντμούρτ", "ug": "Ουιγκουρικά", "uga": "Ουγκαριτικά", "uk": "Ουκρανικά", "umb": "Ουμπούντου", "ur": "Ουρντού", "uz": "Ουζμπεκικά", "vai": "Βάι", "ve": "Βέντα", "vi": "Βιετναμικά", "vo": "Βολαπιούκ", "vot": "Βότικ", "vun": "Βούντζο", "wa": "Βαλλωνικά", "wae": "Βάλσερ", "wal": "Γουολάιτα", "war": "Γουάραϊ", "was": "Γουασό", "wbp": "Γουαρλπίρι", "wo": "Γουόλοφ", "wuu": "Κινεζικά Γου", "xal": "Καλμίκ", "xh": "Κόσα", "xog": "Σόγκα", "yao": "Γιάο", "yap": "Γιαπίζ", "yav": "Γιανγκμπέν", "ybb": "Γιέμπα", "yi": "Γίντις", "yo": "Γιορούμπα", "yue": "Καντονέζικα", "za": "Ζουάνγκ", "zap": "Ζάποτεκ", "zbl": "Σύμβολα Bliss", "zen": "Ζενάγκα", "zgh": "Τυπικά Ταμαζίτ Μαρόκου", "zh": "Κινεζικά", "zh-Hans": "Απλοποιημένα Κινεζικά", "zh-Hant": "Παραδοσιακά Κινεζικά", "zu": "Ζουλού", "zun": "Ζούνι", "zza": "Ζάζα"}}, - "en": {"rtl": false, "languageNames": {"aa": "Afar", "ab": "Abkhazian", "ace": "Achinese", "ach": "Acoli", "ada": "Adangme", "ady": "Adyghe", "ae": "Avestan", "aeb": "Tunisian Arabic", "af": "Afrikaans", "afh": "Afrihili", "agq": "Aghem", "ain": "Ainu", "ak": "Akan", "akk": "Akkadian", "akz": "Alabama", "ale": "Aleut", "aln": "Gheg Albanian", "alt": "Southern Altai", "am": "Amharic", "an": "Aragonese", "ang": "Old English", "anp": "Angika", "ar": "Arabic", "ar-001": "Modern Standard Arabic", "arc": "Aramaic", "arn": "Mapuche", "aro": "Araona", "arp": "Arapaho", "arq": "Algerian Arabic", "ars": "Najdi Arabic", "arw": "Arawak", "ary": "Moroccan Arabic", "arz": "Egyptian Arabic", "as": "Assamese", "asa": "Asu", "ase": "American Sign Language", "ast": "Asturian", "av": "Avaric", "avk": "Kotava", "awa": "Awadhi", "ay": "Aymara", "az": "Azerbaijani", "ba": "Bashkir", "bal": "Baluchi", "ban": "Balinese", "bar": "Bavarian", "bas": "Basaa", "bax": "Bamun", "bbc": "Batak Toba", "bbj": "Ghomala", "be": "Belarusian", "bej": "Beja", "bem": "Bemba", "bew": "Betawi", "bez": "Bena", "bfd": "Bafut", "bfq": "Badaga", "bg": "Bulgarian", "bgn": "Western Balochi", "bho": "Bhojpuri", "bi": "Bislama", "bik": "Bikol", "bin": "Bini", "bjn": "Banjar", "bkm": "Kom", "bla": "Siksika", "bm": "Bambara", "bn": "Bangla", "bo": "Tibetan", "bpy": "Bishnupriya", "bqi": "Bakhtiari", "br": "Breton", "bra": "Braj", "brh": "Brahui", "brx": "Bodo", "bs": "Bosnian", "bss": "Akoose", "bua": "Buriat", "bug": "Buginese", "bum": "Bulu", "byn": "Blin", "byv": "Medumba", "ca": "Catalan", "cad": "Caddo", "car": "Carib", "cay": "Cayuga", "cch": "Atsam", "ccp": "Chakma", "ce": "Chechen", "ceb": "Cebuano", "cgg": "Chiga", "ch": "Chamorro", "chb": "Chibcha", "chg": "Chagatai", "chk": "Chuukese", "chm": "Mari", "chn": "Chinook Jargon", "cho": "Choctaw", "chp": "Chipewyan", "chr": "Cherokee", "chy": "Cheyenne", "ckb": "Central Kurdish", "co": "Corsican", "cop": "Coptic", "cps": "Capiznon", "cr": "Cree", "crh": "Crimean Turkish", "crs": "Seselwa Creole French", "cs": "Czech", "csb": "Kashubian", "cu": "Church Slavic", "cv": "Chuvash", "cy": "Welsh", "da": "Danish", "dak": "Dakota", "dar": "Dargwa", "dav": "Taita", "de": "German", "de-AT": "Austrian German", "de-CH": "Swiss High German", "del": "Delaware", "den": "Slave", "dgr": "Dogrib", "din": "Dinka", "dje": "Zarma", "doi": "Dogri", "dsb": "Lower Sorbian", "dtp": "Central Dusun", "dua": "Duala", "dum": "Middle Dutch", "dv": "Divehi", "dyo": "Jola-Fonyi", "dyu": "Dyula", "dz": "Dzongkha", "dzg": "Dazaga", "ebu": "Embu", "ee": "Ewe", "efi": "Efik", "egl": "Emilian", "egy": "Ancient Egyptian", "eka": "Ekajuk", "el": "Greek", "elx": "Elamite", "en": "English", "en-AU": "Australian English", "en-CA": "Canadian English", "en-GB": "British English", "en-US": "American English", "enm": "Middle English", "eo": "Esperanto", "es": "Spanish", "es-419": "Latin American Spanish", "es-ES": "European Spanish", "es-MX": "Mexican Spanish", "esu": "Central Yupik", "et": "Estonian", "eu": "Basque", "ewo": "Ewondo", "ext": "Extremaduran", "fa": "Persian", "fa-AF": "Dari", "fan": "Fang", "fat": "Fanti", "ff": "Fulah", "fi": "Finnish", "fil": "Filipino", "fit": "Tornedalen Finnish", "fj": "Fijian", "fo": "Faroese", "fon": "Fon", "fr": "French", "fr-CA": "Canadian French", "fr-CH": "Swiss French", "frc": "Cajun French", "frm": "Middle French", "fro": "Old French", "frp": "Arpitan", "frr": "Northern Frisian", "frs": "Eastern Frisian", "fur": "Friulian", "fy": "Western Frisian", "ga": "Irish", "gaa": "Ga", "gag": "Gagauz", "gan": "Gan Chinese", "gay": "Gayo", "gba": "Gbaya", "gbz": "Zoroastrian Dari", "gd": "Scottish Gaelic", "gez": "Geez", "gil": "Gilbertese", "gl": "Galician", "glk": "Gilaki", "gmh": "Middle High German", "gn": "Guarani", "goh": "Old High German", "gom": "Goan Konkani", "gon": "Gondi", "gor": "Gorontalo", "got": "Gothic", "grb": "Grebo", "grc": "Ancient Greek", "gsw": "Swiss German", "gu": "Gujarati", "guc": "Wayuu", "gur": "Frafra", "guz": "Gusii", "gv": "Manx", "gwi": "Gwichʼin", "ha": "Hausa", "hai": "Haida", "hak": "Hakka Chinese", "haw": "Hawaiian", "he": "Hebrew", "hi": "Hindi", "hif": "Fiji Hindi", "hil": "Hiligaynon", "hit": "Hittite", "hmn": "Hmong", "ho": "Hiri Motu", "hr": "Croatian", "hsb": "Upper Sorbian", "hsn": "Xiang Chinese", "ht": "Haitian Creole", "hu": "Hungarian", "hup": "Hupa", "hy": "Armenian", "hz": "Herero", "ia": "Interlingua", "iba": "Iban", "ibb": "Ibibio", "id": "Indonesian", "ie": "Interlingue", "ig": "Igbo", "ii": "Sichuan Yi", "ik": "Inupiaq", "ilo": "Iloko", "inh": "Ingush", "io": "Ido", "is": "Icelandic", "it": "Italian", "iu": "Inuktitut", "izh": "Ingrian", "ja": "Japanese", "jam": "Jamaican Creole English", "jbo": "Lojban", "jgo": "Ngomba", "jmc": "Machame", "jpr": "Judeo-Persian", "jrb": "Judeo-Arabic", "jut": "Jutish", "jv": "Javanese", "ka": "Georgian", "kaa": "Kara-Kalpak", "kab": "Kabyle", "kac": "Kachin", "kaj": "Jju", "kam": "Kamba", "kaw": "Kawi", "kbd": "Kabardian", "kbl": "Kanembu", "kcg": "Tyap", "kde": "Makonde", "kea": "Kabuverdianu", "ken": "Kenyang", "kfo": "Koro", "kg": "Kongo", "kgp": "Kaingang", "kha": "Khasi", "kho": "Khotanese", "khq": "Koyra Chiini", "khw": "Khowar", "ki": "Kikuyu", "kiu": "Kirmanjki", "kj": "Kuanyama", "kk": "Kazakh", "kkj": "Kako", "kl": "Kalaallisut", "kln": "Kalenjin", "km": "Khmer", "kmb": "Kimbundu", "kn": "Kannada", "ko": "Korean", "koi": "Komi-Permyak", "kok": "Konkani", "kos": "Kosraean", "kpe": "Kpelle", "kr": "Kanuri", "krc": "Karachay-Balkar", "kri": "Krio", "krj": "Kinaray-a", "krl": "Karelian", "kru": "Kurukh", "ks": "Kashmiri", "ksb": "Shambala", "ksf": "Bafia", "ksh": "Colognian", "ku": "Kurdish", "kum": "Kumyk", "kut": "Kutenai", "kv": "Komi", "kw": "Cornish", "ky": "Kyrgyz", "la": "Latin", "lad": "Ladino", "lag": "Langi", "lah": "Lahnda", "lam": "Lamba", "lb": "Luxembourgish", "lez": "Lezghian", "lfn": "Lingua Franca Nova", "lg": "Ganda", "li": "Limburgish", "lij": "Ligurian", "liv": "Livonian", "lkt": "Lakota", "lmo": "Lombard", "ln": "Lingala", "lo": "Lao", "lol": "Mongo", "lou": "Louisiana Creole", "loz": "Lozi", "lrc": "Northern Luri", "lt": "Lithuanian", "ltg": "Latgalian", "lu": "Luba-Katanga", "lua": "Luba-Lulua", "lui": "Luiseno", "lun": "Lunda", "luo": "Luo", "lus": "Mizo", "luy": "Luyia", "lv": "Latvian", "lzh": "Literary Chinese", "lzz": "Laz", "mad": "Madurese", "maf": "Mafa", "mag": "Magahi", "mai": "Maithili", "mak": "Makasar", "man": "Mandingo", "mas": "Masai", "mde": "Maba", "mdf": "Moksha", "mdr": "Mandar", "men": "Mende", "mer": "Meru", "mfe": "Morisyen", "mg": "Malagasy", "mga": "Middle Irish", "mgh": "Makhuwa-Meetto", "mgo": "Metaʼ", "mh": "Marshallese", "mi": "Maori", "mic": "Mi'kmaq", "min": "Minangkabau", "mk": "Macedonian", "ml": "Malayalam", "mn": "Mongolian", "mnc": "Manchu", "mni": "Manipuri", "moh": "Mohawk", "mos": "Mossi", "mr": "Marathi", "mrj": "Western Mari", "ms": "Malay", "mt": "Maltese", "mua": "Mundang", "mus": "Creek", "mwl": "Mirandese", "mwr": "Marwari", "mwv": "Mentawai", "my": "Burmese", "mye": "Myene", "myv": "Erzya", "mzn": "Mazanderani", "na": "Nauru", "nan": "Min Nan Chinese", "nap": "Neapolitan", "naq": "Nama", "nb": "Norwegian Bokmål", "nd": "North Ndebele", "nds": "Low German", "nds-NL": "Low Saxon", "ne": "Nepali", "new": "Newari", "ng": "Ndonga", "nia": "Nias", "niu": "Niuean", "njo": "Ao Naga", "nl": "Dutch", "nl-BE": "Flemish", "nmg": "Kwasio", "nn": "Norwegian Nynorsk", "nnh": "Ngiemboon", "no": "Norwegian", "nog": "Nogai", "non": "Old Norse", "nov": "Novial", "nqo": "N’Ko", "nr": "South Ndebele", "nso": "Northern Sotho", "nus": "Nuer", "nv": "Navajo", "nwc": "Classical Newari", "ny": "Nyanja", "nym": "Nyamwezi", "nyn": "Nyankole", "nyo": "Nyoro", "nzi": "Nzima", "oc": "Occitan", "oj": "Ojibwa", "om": "Oromo", "or": "Odia", "os": "Ossetic", "osa": "Osage", "ota": "Ottoman Turkish", "pa": "Punjabi", "pag": "Pangasinan", "pal": "Pahlavi", "pam": "Pampanga", "pap": "Papiamento", "pau": "Palauan", "pcd": "Picard", "pcm": "Nigerian Pidgin", "pdc": "Pennsylvania German", "pdt": "Plautdietsch", "peo": "Old Persian", "pfl": "Palatine German", "phn": "Phoenician", "pi": "Pali", "pl": "Polish", "pms": "Piedmontese", "pnt": "Pontic", "pon": "Pohnpeian", "prg": "Prussian", "pro": "Old Provençal", "ps": "Pashto", "pt": "Portuguese", "pt-BR": "Brazilian Portuguese", "pt-PT": "European Portuguese", "qu": "Quechua", "quc": "Kʼicheʼ", "qug": "Chimborazo Highland Quichua", "raj": "Rajasthani", "rap": "Rapanui", "rar": "Rarotongan", "rgn": "Romagnol", "rif": "Riffian", "rm": "Romansh", "rn": "Rundi", "ro": "Romanian", "ro-MD": "Moldavian", "rof": "Rombo", "rom": "Romany", "root": "Root", "rtm": "Rotuman", "ru": "Russian", "rue": "Rusyn", "rug": "Roviana", "rup": "Aromanian", "rw": "Kinyarwanda", "rwk": "Rwa", "sa": "Sanskrit", "sad": "Sandawe", "sah": "Sakha", "sam": "Samaritan Aramaic", "saq": "Samburu", "sas": "Sasak", "sat": "Santali", "saz": "Saurashtra", "sba": "Ngambay", "sbp": "Sangu", "sc": "Sardinian", "scn": "Sicilian", "sco": "Scots", "sd": "Sindhi", "sdc": "Sassarese Sardinian", "sdh": "Southern Kurdish", "se": "Northern Sami", "see": "Seneca", "seh": "Sena", "sei": "Seri", "sel": "Selkup", "ses": "Koyraboro Senni", "sg": "Sango", "sga": "Old Irish", "sgs": "Samogitian", "sh": "Serbo-Croatian", "shi": "Tachelhit", "shn": "Shan", "shu": "Chadian Arabic", "si": "Sinhala", "sid": "Sidamo", "sk": "Slovak", "sl": "Slovenian", "sli": "Lower Silesian", "sly": "Selayar", "sm": "Samoan", "sma": "Southern Sami", "smj": "Lule Sami", "smn": "Inari Sami", "sms": "Skolt Sami", "sn": "Shona", "snk": "Soninke", "so": "Somali", "sog": "Sogdien", "sq": "Albanian", "sr": "Serbian", "sr-ME": "Montenegrin", "srn": "Sranan Tongo", "srr": "Serer", "ss": "Swati", "ssy": "Saho", "st": "Southern Sotho", "stq": "Saterland Frisian", "su": "Sundanese", "suk": "Sukuma", "sus": "Susu", "sux": "Sumerian", "sv": "Swedish", "sw": "Swahili", "sw-CD": "Congo Swahili", "swb": "Comorian", "syc": "Classical Syriac", "syr": "Syriac", "szl": "Silesian", "ta": "Tamil", "tcy": "Tulu", "te": "Telugu", "tem": "Timne", "teo": "Teso", "ter": "Tereno", "tet": "Tetum", "tg": "Tajik", "th": "Thai", "ti": "Tigrinya", "tig": "Tigre", "tiv": "Tiv", "tk": "Turkmen", "tkl": "Tokelau", "tkr": "Tsakhur", "tl": "Tagalog", "tlh": "Klingon", "tli": "Tlingit", "tly": "Talysh", "tmh": "Tamashek", "tn": "Tswana", "to": "Tongan", "tog": "Nyasa Tonga", "tpi": "Tok Pisin", "tr": "Turkish", "tru": "Turoyo", "trv": "Taroko", "ts": "Tsonga", "tsd": "Tsakonian", "tsi": "Tsimshian", "tt": "Tatar", "ttt": "Muslim Tat", "tum": "Tumbuka", "tvl": "Tuvalu", "tw": "Twi", "twq": "Tasawaq", "ty": "Tahitian", "tyv": "Tuvinian", "tzm": "Central Atlas Tamazight", "udm": "Udmurt", "ug": "Uyghur", "uga": "Ugaritic", "uk": "Ukrainian", "umb": "Umbundu", "ur": "Urdu", "uz": "Uzbek", "vai": "Vai", "ve": "Venda", "vec": "Venetian", "vep": "Veps", "vi": "Vietnamese", "vls": "West Flemish", "vmf": "Main-Franconian", "vo": "Volapük", "vot": "Votic", "vro": "Võro", "vun": "Vunjo", "wa": "Walloon", "wae": "Walser", "wal": "Wolaytta", "war": "Waray", "was": "Washo", "wbp": "Warlpiri", "wo": "Wolof", "wuu": "Wu Chinese", "xal": "Kalmyk", "xh": "Xhosa", "xmf": "Mingrelian", "xog": "Soga", "yao": "Yao", "yap": "Yapese", "yav": "Yangben", "ybb": "Yemba", "yi": "Yiddish", "yo": "Yoruba", "yrl": "Nheengatu", "yue": "Cantonese", "za": "Zhuang", "zap": "Zapotec", "zbl": "Blissymbols", "zea": "Zeelandic", "zen": "Zenaga", "zgh": "Standard Moroccan Tamazight", "zh": "Mandarin Chinese", "zh-Hans": "Simplified Chinese", "zh-Hant": "Traditional Chinese", "zu": "Zulu", "zun": "Zuni", "zza": "Zaza"}}, - "en-AU": {"rtl": false, "languageNames": {"aa": "Afar", "ab": "Abkhazian", "ace": "Achinese", "ach": "Acoli", "ada": "Adangme", "ady": "Adyghe", "ae": "Avestan", "aeb": "Tunisian Arabic", "af": "Afrikaans", "afh": "Afrihili", "agq": "Aghem", "ain": "Ainu", "ak": "Akan", "akk": "Akkadian", "akz": "Alabama", "ale": "Aleut", "aln": "Gheg Albanian", "alt": "Southern Altai", "am": "Amharic", "an": "Aragonese", "ang": "Old English", "anp": "Angika", "ar": "Arabic", "ar-001": "Modern Standard Arabic", "arc": "Aramaic", "arn": "Mapuche", "aro": "Araona", "arp": "Arapaho", "arq": "Algerian Arabic", "ars": "Najdi Arabic", "arw": "Arawak", "ary": "Moroccan Arabic", "arz": "Egyptian Arabic", "as": "Assamese", "asa": "Asu", "ase": "American Sign Language", "ast": "Asturian", "av": "Avaric", "avk": "Kotava", "awa": "Awadhi", "ay": "Aymara", "az": "Azerbaijani", "ba": "Bashkir", "bal": "Baluchi", "ban": "Balinese", "bar": "Bavarian", "bas": "Basaa", "bax": "Bamun", "bbc": "Batak Toba", "bbj": "Ghomala", "be": "Belarusian", "bej": "Beja", "bem": "Bemba", "bew": "Betawi", "bez": "Bena", "bfd": "Bafut", "bfq": "Badaga", "bg": "Bulgarian", "bgn": "Western Balochi", "bho": "Bhojpuri", "bi": "Bislama", "bik": "Bikol", "bin": "Bini", "bjn": "Banjar", "bkm": "Kom", "bla": "Siksika", "bm": "Bambara", "bn": "Bengali", "bo": "Tibetan", "bpy": "Bishnupriya", "bqi": "Bakhtiari", "br": "Breton", "bra": "Braj", "brh": "Brahui", "brx": "Bodo", "bs": "Bosnian", "bss": "Akoose", "bua": "Buriat", "bug": "Buginese", "bum": "Bulu", "byn": "Blin", "byv": "Medumba", "ca": "Catalan", "cad": "Caddo", "car": "Carib", "cay": "Cayuga", "cch": "Atsam", "ccp": "Chakma", "ce": "Chechen", "ceb": "Cebuano", "cgg": "Chiga", "ch": "Chamorro", "chb": "Chibcha", "chg": "Chagatai", "chk": "Chuukese", "chm": "Mari", "chn": "Chinook Jargon", "cho": "Choctaw", "chp": "Chipewyan", "chr": "Cherokee", "chy": "Cheyenne", "ckb": "Central Kurdish", "co": "Corsican", "cop": "Coptic", "cps": "Capiznon", "cr": "Cree", "crh": "Crimean Turkish", "crs": "Seselwa Creole French", "cs": "Czech", "csb": "Kashubian", "cu": "Church Slavic", "cv": "Chuvash", "cy": "Welsh", "da": "Danish", "dak": "Dakota", "dar": "Dargwa", "dav": "Taita", "de": "German", "de-AT": "Austrian German", "de-CH": "Swiss High German", "del": "Delaware", "den": "Slave", "dgr": "Dogrib", "din": "Dinka", "dje": "Zarma", "doi": "Dogri", "dsb": "Lower Sorbian", "dtp": "Central Dusun", "dua": "Duala", "dum": "Middle Dutch", "dv": "Divehi", "dyo": "Jola-Fonyi", "dyu": "Dyula", "dz": "Dzongkha", "dzg": "Dazaga", "ebu": "Embu", "ee": "Ewe", "efi": "Efik", "egl": "Emilian", "egy": "Ancient Egyptian", "eka": "Ekajuk", "el": "Greek", "elx": "Elamite", "en": "English", "en-AU": "Australian English", "en-CA": "Canadian English", "en-GB": "British English", "en-US": "United States English", "enm": "Middle English", "eo": "Esperanto", "es": "Spanish", "es-419": "Latin American Spanish", "es-ES": "European Spanish", "es-MX": "Mexican Spanish", "esu": "Central Yupik", "et": "Estonian", "eu": "Basque", "ewo": "Ewondo", "ext": "Extremaduran", "fa": "Persian", "fa-AF": "Dari", "fan": "Fang", "fat": "Fanti", "ff": "Fulah", "fi": "Finnish", "fil": "Filipino", "fit": "Tornedalen Finnish", "fj": "Fijian", "fo": "Faroese", "fon": "Fon", "fr": "French", "fr-CA": "Canadian French", "fr-CH": "Swiss French", "frm": "Middle French", "fro": "Old French", "frp": "Arpitan", "frr": "Northern Frisian", "frs": "Eastern Frisian", "fur": "Friulian", "fy": "Western Frisian", "ga": "Irish", "gaa": "Ga", "gag": "Gagauz", "gan": "Gan Chinese", "gay": "Gayo", "gba": "Gbaya", "gbz": "Zoroastrian Dari", "gd": "Scottish Gaelic", "gez": "Geez", "gil": "Gilbertese", "gl": "Galician", "glk": "Gilaki", "gmh": "Middle High German", "gn": "Guarani", "goh": "Old High German", "gom": "Goan Konkani", "gon": "Gondi", "gor": "Gorontalo", "got": "Gothic", "grb": "Grebo", "grc": "Ancient Greek", "gsw": "Swiss German", "gu": "Gujarati", "guc": "Wayuu", "gur": "Frafra", "guz": "Gusii", "gv": "Manx", "gwi": "Gwichʼin", "ha": "Hausa", "hai": "Haida", "hak": "Hakka Chinese", "haw": "Hawaiian", "he": "Hebrew", "hi": "Hindi", "hif": "Fiji Hindi", "hil": "Hiligaynon", "hit": "Hittite", "hmn": "Hmong", "ho": "Hiri Motu", "hr": "Croatian", "hsb": "Upper Sorbian", "hsn": "Xiang Chinese", "ht": "Haitian Creole", "hu": "Hungarian", "hup": "Hupa", "hy": "Armenian", "hz": "Herero", "ia": "Interlingua", "iba": "Iban", "ibb": "Ibibio", "id": "Indonesian", "ie": "Interlingue", "ig": "Igbo", "ii": "Sichuan Yi", "ik": "Inupiaq", "ilo": "Iloko", "inh": "Ingush", "io": "Ido", "is": "Icelandic", "it": "Italian", "iu": "Inuktitut", "izh": "Ingrian", "ja": "Japanese", "jam": "Jamaican Creole English", "jbo": "Lojban", "jgo": "Ngomba", "jmc": "Machame", "jpr": "Judeo-Persian", "jrb": "Judeo-Arabic", "jut": "Jutish", "jv": "Javanese", "ka": "Georgian", "kaa": "Kara-Kalpak", "kab": "Kabyle", "kac": "Kachin", "kaj": "Jju", "kam": "Kamba", "kaw": "Kawi", "kbd": "Kabardian", "kbl": "Kanembu", "kcg": "Tyap", "kde": "Makonde", "kea": "Kabuverdianu", "ken": "Kenyang", "kfo": "Koro", "kg": "Kongo", "kgp": "Kaingang", "kha": "Khasi", "kho": "Khotanese", "khq": "Koyra Chiini", "khw": "Khowar", "ki": "Kikuyu", "kiu": "Kirmanjki", "kj": "Kuanyama", "kk": "Kazakh", "kkj": "Kako", "kl": "Kalaallisut", "kln": "Kalenjin", "km": "Khmer", "kmb": "Kimbundu", "kn": "Kannada", "ko": "Korean", "koi": "Komi-Permyak", "kok": "Konkani", "kos": "Kosraean", "kpe": "Kpelle", "kr": "Kanuri", "krc": "Karachay-Balkar", "kri": "Krio", "krj": "Kinaray-a", "krl": "Karelian", "kru": "Kurukh", "ks": "Kashmiri", "ksb": "Shambala", "ksf": "Bafia", "ksh": "Colognian", "ku": "Kurdish", "kum": "Kumyk", "kut": "Kutenai", "kv": "Komi", "kw": "Cornish", "ky": "Kyrgyz", "la": "Latin", "lad": "Ladino", "lag": "Langi", "lah": "Lahnda", "lam": "Lamba", "lb": "Luxembourgish", "lez": "Lezghian", "lfn": "Lingua Franca Nova", "lg": "Ganda", "li": "Limburgish", "lij": "Ligurian", "liv": "Livonian", "lkt": "Lakota", "lmo": "Lombard", "ln": "Lingala", "lo": "Lao", "lol": "Mongo", "loz": "Lozi", "lrc": "Northern Luri", "lt": "Lithuanian", "ltg": "Latgalian", "lu": "Luba-Katanga", "lua": "Luba-Lulua", "lui": "Luiseno", "lun": "Lunda", "luo": "Luo", "lus": "Mizo", "luy": "Luyia", "lv": "Latvian", "lzh": "Literary Chinese", "lzz": "Laz", "mad": "Madurese", "maf": "Mafa", "mag": "Magahi", "mai": "Maithili", "mak": "Makasar", "man": "Mandingo", "mas": "Masai", "mde": "Maba", "mdf": "Moksha", "mdr": "Mandar", "men": "Mende", "mer": "Meru", "mfe": "Morisyen", "mg": "Malagasy", "mga": "Middle Irish", "mgh": "Makhuwa-Meetto", "mgo": "Metaʼ", "mh": "Marshallese", "mi": "Maori", "mic": "Mi'kmaq", "min": "Minangkabau", "mk": "Macedonian", "ml": "Malayalam", "mn": "Mongolian", "mnc": "Manchu", "mni": "Manipuri", "moh": "Mohawk", "mos": "Mossi", "mr": "Marathi", "mrj": "Western Mari", "ms": "Malay", "mt": "Maltese", "mua": "Mundang", "mus": "Creek", "mwl": "Mirandese", "mwr": "Marwari", "mwv": "Mentawai", "my": "Burmese", "mye": "Myene", "myv": "Erzya", "mzn": "Mazanderani", "na": "Nauru", "nan": "Min Nan Chinese", "nap": "Neapolitan", "naq": "Nama", "nb": "Norwegian Bokmål", "nd": "North Ndebele", "nds": "Low German", "nds-NL": "Low Saxon", "ne": "Nepali", "new": "Newari", "ng": "Ndonga", "nia": "Nias", "niu": "Niuean", "njo": "Ao Naga", "nl": "Dutch", "nl-BE": "Flemish", "nmg": "Kwasio", "nn": "Norwegian Nynorsk", "nnh": "Ngiemboon", "no": "Norwegian", "nog": "Nogai", "non": "Old Norse", "nov": "Novial", "nqo": "N’Ko", "nr": "South Ndebele", "nso": "Northern Sotho", "nus": "Nuer", "nv": "Navajo", "nwc": "Classical Newari", "ny": "Nyanja", "nym": "Nyamwezi", "nyn": "Nyankole", "nyo": "Nyoro", "nzi": "Nzima", "oc": "Occitan", "oj": "Ojibwa", "om": "Oromo", "or": "Odia", "os": "Ossetic", "osa": "Osage", "ota": "Ottoman Turkish", "pa": "Punjabi", "pag": "Pangasinan", "pal": "Pahlavi", "pam": "Pampanga", "pap": "Papiamento", "pau": "Palauan", "pcd": "Picard", "pcm": "Nigerian Pidgin", "pdc": "Pennsylvania German", "pdt": "Plautdietsch", "peo": "Old Persian", "pfl": "Palatine German", "phn": "Phoenician", "pi": "Pali", "pl": "Polish", "pms": "Piedmontese", "pnt": "Pontic", "pon": "Pohnpeian", "prg": "Prussian", "pro": "Old Provençal", "ps": "Pashto", "pt": "Portuguese", "pt-BR": "Brazilian Portuguese", "pt-PT": "European Portuguese", "qu": "Quechua", "quc": "Kʼicheʼ", "qug": "Chimborazo Highland Quichua", "raj": "Rajasthani", "rap": "Rapanui", "rar": "Rarotongan", "rgn": "Romagnol", "rif": "Riffian", "rm": "Romansh", "rn": "Rundi", "ro": "Romanian", "ro-MD": "Moldovan", "rof": "Rombo", "rom": "Romany", "root": "Root", "rtm": "Rotuman", "ru": "Russian", "rue": "Rusyn", "rug": "Roviana", "rup": "Aromanian", "rw": "Kinyarwanda", "rwk": "Rwa", "sa": "Sanskrit", "sad": "Sandawe", "sah": "Sakha", "sam": "Samaritan Aramaic", "saq": "Samburu", "sas": "Sasak", "sat": "Santali", "saz": "Saurashtra", "sba": "Ngambay", "sbp": "Sangu", "sc": "Sardinian", "scn": "Sicilian", "sco": "Scots", "sd": "Sindhi", "sdc": "Sassarese Sardinian", "sdh": "Southern Kurdish", "se": "Northern Sami", "see": "Seneca", "seh": "Sena", "sei": "Seri", "sel": "Selkup", "ses": "Koyraboro Senni", "sg": "Sango", "sga": "Old Irish", "sgs": "Samogitian", "sh": "Serbo-Croatian", "shi": "Tachelhit", "shn": "Shan", "shu": "Chadian Arabic", "si": "Sinhala", "sid": "Sidamo", "sk": "Slovak", "sl": "Slovenian", "sli": "Lower Silesian", "sly": "Selayar", "sm": "Samoan", "sma": "Southern Sami", "smj": "Lule Sami", "smn": "Inari Sami", "sms": "Skolt Sami", "sn": "Shona", "snk": "Soninke", "so": "Somali", "sog": "Sogdien", "sq": "Albanian", "sr": "Serbian", "sr-ME": "Montenegrin", "srn": "Sranan Tongo", "srr": "Serer", "ss": "Swati", "ssy": "Saho", "st": "Southern Sotho", "stq": "Saterland Frisian", "su": "Sundanese", "suk": "Sukuma", "sus": "Susu", "sux": "Sumerian", "sv": "Swedish", "sw": "Swahili", "sw-CD": "Congo Swahili", "swb": "Comorian", "syc": "Classical Syriac", "syr": "Syriac", "szl": "Silesian", "ta": "Tamil", "tcy": "Tulu", "te": "Telugu", "tem": "Timne", "teo": "Teso", "ter": "Tereno", "tet": "Tetum", "tg": "Tajik", "th": "Thai", "ti": "Tigrinya", "tig": "Tigre", "tiv": "Tiv", "tk": "Turkmen", "tkl": "Tokelau", "tkr": "Tsakhur", "tl": "Tagalog", "tlh": "Klingon", "tli": "Tlingit", "tly": "Talysh", "tmh": "Tamashek", "tn": "Tswana", "to": "Tongan", "tog": "Nyasa Tonga", "tpi": "Tok Pisin", "tr": "Turkish", "tru": "Turoyo", "trv": "Taroko", "ts": "Tsonga", "tsd": "Tsakonian", "tsi": "Tsimshian", "tt": "Tatar", "ttt": "Muslim Tat", "tum": "Tumbuka", "tvl": "Tuvalu", "tw": "Twi", "twq": "Tasawaq", "ty": "Tahitian", "tyv": "Tuvinian", "tzm": "Central Atlas Tamazight", "udm": "Udmurt", "ug": "Uyghur", "uga": "Ugaritic", "uk": "Ukrainian", "umb": "Umbundu", "ur": "Urdu", "uz": "Uzbek", "vai": "Vai", "ve": "Venda", "vec": "Venetian", "vep": "Veps", "vi": "Vietnamese", "vls": "West Flemish", "vmf": "Main-Franconian", "vo": "Volapük", "vot": "Votic", "vro": "Võro", "vun": "Vunjo", "wa": "Walloon", "wae": "Walser", "wal": "Wolaytta", "war": "Waray", "was": "Washo", "wbp": "Warlpiri", "wo": "Wolof", "wuu": "Wu Chinese", "xal": "Kalmyk", "xh": "Xhosa", "xmf": "Mingrelian", "xog": "Soga", "yao": "Yao", "yap": "Yapese", "yav": "Yangben", "ybb": "Yemba", "yi": "Yiddish", "yo": "Yoruba", "yrl": "Nheengatu", "yue": "Cantonese", "za": "Zhuang", "zap": "Zapotec", "zbl": "Blissymbols", "zea": "Zeelandic", "zen": "Zenaga", "zgh": "Standard Moroccan Tamazight", "zh": "Mandarin Chinese", "zh-Hans": "Simplified Chinese", "zh-Hant": "Traditional Chinese", "zu": "Zulu", "zun": "Zuni", "zza": "Zaza"}}, - "en-GB": {"rtl": false, "languageNames": {"aa": "Afar", "ab": "Abkhazian", "ace": "Achinese", "ach": "Acoli", "ada": "Adangme", "ady": "Adyghe", "ae": "Avestan", "aeb": "Tunisian Arabic", "af": "Afrikaans", "afh": "Afrihili", "agq": "Aghem", "ain": "Ainu", "ak": "Akan", "akk": "Akkadian", "akz": "Alabama", "ale": "Aleut", "aln": "Gheg Albanian", "alt": "Southern Altai", "am": "Amharic", "an": "Aragonese", "ang": "Old English", "anp": "Angika", "ar": "Arabic", "ar-001": "Modern Standard Arabic", "arc": "Aramaic", "arn": "Mapuche", "aro": "Araona", "arp": "Arapaho", "arq": "Algerian Arabic", "ars": "Najdi Arabic", "arw": "Arawak", "ary": "Moroccan Arabic", "arz": "Egyptian Arabic", "as": "Assamese", "asa": "Asu", "ase": "American Sign Language", "ast": "Asturian", "av": "Avaric", "avk": "Kotava", "awa": "Awadhi", "ay": "Aymara", "az": "Azerbaijani", "ba": "Bashkir", "bal": "Baluchi", "ban": "Balinese", "bar": "Bavarian", "bas": "Basaa", "bax": "Bamun", "bbc": "Batak Toba", "bbj": "Ghomala", "be": "Belarusian", "bej": "Beja", "bem": "Bemba", "bew": "Betawi", "bez": "Bena", "bfd": "Bafut", "bfq": "Badaga", "bg": "Bulgarian", "bgn": "Western Balochi", "bho": "Bhojpuri", "bi": "Bislama", "bik": "Bikol", "bin": "Bini", "bjn": "Banjar", "bkm": "Kom", "bla": "Siksika", "bm": "Bambara", "bn": "Bangla", "bo": "Tibetan", "bpy": "Bishnupriya", "bqi": "Bakhtiari", "br": "Breton", "bra": "Braj", "brh": "Brahui", "brx": "Bodo", "bs": "Bosnian", "bss": "Akoose", "bua": "Buriat", "bug": "Buginese", "bum": "Bulu", "byn": "Blin", "byv": "Medumba", "ca": "Catalan", "cad": "Caddo", "car": "Carib", "cay": "Cayuga", "cch": "Atsam", "ccp": "Chakma", "ce": "Chechen", "ceb": "Cebuano", "cgg": "Chiga", "ch": "Chamorro", "chb": "Chibcha", "chg": "Chagatai", "chk": "Chuukese", "chm": "Mari", "chn": "Chinook Jargon", "cho": "Choctaw", "chp": "Chipewyan", "chr": "Cherokee", "chy": "Cheyenne", "ckb": "Central Kurdish", "co": "Corsican", "cop": "Coptic", "cps": "Capiznon", "cr": "Cree", "crh": "Crimean Turkish", "crs": "Seselwa Creole French", "cs": "Czech", "csb": "Kashubian", "cu": "Church Slavic", "cv": "Chuvash", "cy": "Welsh", "da": "Danish", "dak": "Dakota", "dar": "Dargwa", "dav": "Taita", "de": "German", "de-AT": "Austrian German", "de-CH": "Swiss High German", "del": "Delaware", "den": "Slave", "dgr": "Dogrib", "din": "Dinka", "dje": "Zarma", "doi": "Dogri", "dsb": "Lower Sorbian", "dtp": "Central Dusun", "dua": "Duala", "dum": "Middle Dutch", "dv": "Divehi", "dyo": "Jola-Fonyi", "dyu": "Dyula", "dz": "Dzongkha", "dzg": "Dazaga", "ebu": "Embu", "ee": "Ewe", "efi": "Efik", "egl": "Emilian", "egy": "Ancient Egyptian", "eka": "Ekajuk", "el": "Greek", "elx": "Elamite", "en": "English", "en-AU": "Australian English", "en-CA": "Canadian English", "en-GB": "British English", "en-US": "American English", "enm": "Middle English", "eo": "Esperanto", "es": "Spanish", "es-419": "Latin American Spanish", "es-ES": "European Spanish", "es-MX": "Mexican Spanish", "esu": "Central Yupik", "et": "Estonian", "eu": "Basque", "ewo": "Ewondo", "ext": "Extremaduran", "fa": "Persian", "fa-AF": "Dari", "fan": "Fang", "fat": "Fanti", "ff": "Fulah", "fi": "Finnish", "fil": "Filipino", "fit": "Tornedalen Finnish", "fj": "Fijian", "fo": "Faroese", "fon": "Fon", "fr": "French", "fr-CA": "Canadian French", "fr-CH": "Swiss French", "frc": "Cajun French", "frm": "Middle French", "fro": "Old French", "frp": "Arpitan", "frr": "Northern Frisian", "frs": "Eastern Frisian", "fur": "Friulian", "fy": "Western Frisian", "ga": "Irish", "gaa": "Ga", "gag": "Gagauz", "gan": "Gan Chinese", "gay": "Gayo", "gba": "Gbaya", "gbz": "Zoroastrian Dari", "gd": "Scottish Gaelic", "gez": "Geez", "gil": "Gilbertese", "gl": "Galician", "glk": "Gilaki", "gmh": "Middle High German", "gn": "Guarani", "goh": "Old High German", "gom": "Goan Konkani", "gon": "Gondi", "gor": "Gorontalo", "got": "Gothic", "grb": "Grebo", "grc": "Ancient Greek", "gsw": "Swiss German", "gu": "Gujarati", "guc": "Wayuu", "gur": "Frafra", "guz": "Gusii", "gv": "Manx", "gwi": "Gwichʼin", "ha": "Hausa", "hai": "Haida", "hak": "Hakka Chinese", "haw": "Hawaiian", "he": "Hebrew", "hi": "Hindi", "hif": "Fiji Hindi", "hil": "Hiligaynon", "hit": "Hittite", "hmn": "Hmong", "ho": "Hiri Motu", "hr": "Croatian", "hsb": "Upper Sorbian", "hsn": "Xiang Chinese", "ht": "Haitian Creole", "hu": "Hungarian", "hup": "Hupa", "hy": "Armenian", "hz": "Herero", "ia": "Interlingua", "iba": "Iban", "ibb": "Ibibio", "id": "Indonesian", "ie": "Interlingue", "ig": "Igbo", "ii": "Sichuan Yi", "ik": "Inupiaq", "ilo": "Iloko", "inh": "Ingush", "io": "Ido", "is": "Icelandic", "it": "Italian", "iu": "Inuktitut", "izh": "Ingrian", "ja": "Japanese", "jam": "Jamaican Creole English", "jbo": "Lojban", "jgo": "Ngomba", "jmc": "Machame", "jpr": "Judeo-Persian", "jrb": "Judeo-Arabic", "jut": "Jutish", "jv": "Javanese", "ka": "Georgian", "kaa": "Kara-Kalpak", "kab": "Kabyle", "kac": "Kachin", "kaj": "Jju", "kam": "Kamba", "kaw": "Kawi", "kbd": "Kabardian", "kbl": "Kanembu", "kcg": "Tyap", "kde": "Makonde", "kea": "Kabuverdianu", "ken": "Kenyang", "kfo": "Koro", "kg": "Kongo", "kgp": "Kaingang", "kha": "Khasi", "kho": "Khotanese", "khq": "Koyra Chiini", "khw": "Khowar", "ki": "Kikuyu", "kiu": "Kirmanjki", "kj": "Kuanyama", "kk": "Kazakh", "kkj": "Kako", "kl": "Kalaallisut", "kln": "Kalenjin", "km": "Khmer", "kmb": "Kimbundu", "kn": "Kannada", "ko": "Korean", "koi": "Komi-Permyak", "kok": "Konkani", "kos": "Kosraean", "kpe": "Kpelle", "kr": "Kanuri", "krc": "Karachay-Balkar", "kri": "Krio", "krj": "Kinaray-a", "krl": "Karelian", "kru": "Kurukh", "ks": "Kashmiri", "ksb": "Shambala", "ksf": "Bafia", "ksh": "Colognian", "ku": "Kurdish", "kum": "Kumyk", "kut": "Kutenai", "kv": "Komi", "kw": "Cornish", "ky": "Kyrgyz", "la": "Latin", "lad": "Ladino", "lag": "Langi", "lah": "Lahnda", "lam": "Lamba", "lb": "Luxembourgish", "lez": "Lezghian", "lfn": "Lingua Franca Nova", "lg": "Ganda", "li": "Limburgish", "lij": "Ligurian", "liv": "Livonian", "lkt": "Lakota", "lmo": "Lombard", "ln": "Lingala", "lo": "Lao", "lol": "Mongo", "lou": "Louisiana Creole", "loz": "Lozi", "lrc": "Northern Luri", "lt": "Lithuanian", "ltg": "Latgalian", "lu": "Luba-Katanga", "lua": "Luba-Lulua", "lui": "Luiseno", "lun": "Lunda", "luo": "Luo", "lus": "Mizo", "luy": "Luyia", "lv": "Latvian", "lzh": "Literary Chinese", "lzz": "Laz", "mad": "Madurese", "maf": "Mafa", "mag": "Magahi", "mai": "Maithili", "mak": "Makasar", "man": "Mandingo", "mas": "Masai", "mde": "Maba", "mdf": "Moksha", "mdr": "Mandar", "men": "Mende", "mer": "Meru", "mfe": "Morisyen", "mg": "Malagasy", "mga": "Middle Irish", "mgh": "Makhuwa-Meetto", "mgo": "Metaʼ", "mh": "Marshallese", "mi": "Maori", "mic": "Mi'kmaq", "min": "Minangkabau", "mk": "Macedonian", "ml": "Malayalam", "mn": "Mongolian", "mnc": "Manchu", "mni": "Manipuri", "moh": "Mohawk", "mos": "Mossi", "mr": "Marathi", "mrj": "Western Mari", "ms": "Malay", "mt": "Maltese", "mua": "Mundang", "mus": "Creek", "mwl": "Mirandese", "mwr": "Marwari", "mwv": "Mentawai", "my": "Burmese", "mye": "Myene", "myv": "Erzya", "mzn": "Mazanderani", "na": "Nauru", "nan": "Min Nan Chinese", "nap": "Neapolitan", "naq": "Nama", "nb": "Norwegian Bokmål", "nd": "North Ndebele", "nds": "Low German", "nds-NL": "West Low German", "ne": "Nepali", "new": "Newari", "ng": "Ndonga", "nia": "Nias", "niu": "Niuean", "njo": "Ao Naga", "nl": "Dutch", "nl-BE": "Flemish", "nmg": "Kwasio", "nn": "Norwegian Nynorsk", "nnh": "Ngiemboon", "no": "Norwegian", "nog": "Nogai", "non": "Old Norse", "nov": "Novial", "nqo": "N’Ko", "nr": "South Ndebele", "nso": "Northern Sotho", "nus": "Nuer", "nv": "Navajo", "nwc": "Classical Newari", "ny": "Nyanja", "nym": "Nyamwezi", "nyn": "Nyankole", "nyo": "Nyoro", "nzi": "Nzima", "oc": "Occitan", "oj": "Ojibwa", "om": "Oromo", "or": "Odia", "os": "Ossetic", "osa": "Osage", "ota": "Ottoman Turkish", "pa": "Punjabi", "pag": "Pangasinan", "pal": "Pahlavi", "pam": "Pampanga", "pap": "Papiamento", "pau": "Palauan", "pcd": "Picard", "pcm": "Nigerian Pidgin", "pdc": "Pennsylvania German", "pdt": "Plautdietsch", "peo": "Old Persian", "pfl": "Palatine German", "phn": "Phoenician", "pi": "Pali", "pl": "Polish", "pms": "Piedmontese", "pnt": "Pontic", "pon": "Pohnpeian", "prg": "Prussian", "pro": "Old Provençal", "ps": "Pashto", "pt": "Portuguese", "pt-BR": "Brazilian Portuguese", "pt-PT": "European Portuguese", "qu": "Quechua", "quc": "Kʼicheʼ", "qug": "Chimborazo Highland Quichua", "raj": "Rajasthani", "rap": "Rapanui", "rar": "Rarotongan", "rgn": "Romagnol", "rif": "Riffian", "rm": "Romansh", "rn": "Rundi", "ro": "Romanian", "ro-MD": "Moldavian", "rof": "Rombo", "rom": "Romany", "root": "Root", "rtm": "Rotuman", "ru": "Russian", "rue": "Rusyn", "rug": "Roviana", "rup": "Aromanian", "rw": "Kinyarwanda", "rwk": "Rwa", "sa": "Sanskrit", "sad": "Sandawe", "sah": "Sakha", "sam": "Samaritan Aramaic", "saq": "Samburu", "sas": "Sasak", "sat": "Santali", "saz": "Saurashtra", "sba": "Ngambay", "sbp": "Sangu", "sc": "Sardinian", "scn": "Sicilian", "sco": "Scots", "sd": "Sindhi", "sdc": "Sassarese Sardinian", "sdh": "Southern Kurdish", "se": "Northern Sami", "see": "Seneca", "seh": "Sena", "sei": "Seri", "sel": "Selkup", "ses": "Koyraboro Senni", "sg": "Sango", "sga": "Old Irish", "sgs": "Samogitian", "sh": "Serbo-Croatian", "shi": "Tachelhit", "shn": "Shan", "shu": "Chadian Arabic", "si": "Sinhala", "sid": "Sidamo", "sk": "Slovak", "sl": "Slovenian", "sli": "Lower Silesian", "sly": "Selayar", "sm": "Samoan", "sma": "Southern Sami", "smj": "Lule Sami", "smn": "Inari Sami", "sms": "Skolt Sami", "sn": "Shona", "snk": "Soninke", "so": "Somali", "sog": "Sogdien", "sq": "Albanian", "sr": "Serbian", "sr-ME": "Montenegrin", "srn": "Sranan Tongo", "srr": "Serer", "ss": "Swati", "ssy": "Saho", "st": "Southern Sotho", "stq": "Saterland Frisian", "su": "Sundanese", "suk": "Sukuma", "sus": "Susu", "sux": "Sumerian", "sv": "Swedish", "sw": "Swahili", "sw-CD": "Congo Swahili", "swb": "Comorian", "syc": "Classical Syriac", "syr": "Syriac", "szl": "Silesian", "ta": "Tamil", "tcy": "Tulu", "te": "Telugu", "tem": "Timne", "teo": "Teso", "ter": "Tereno", "tet": "Tetum", "tg": "Tajik", "th": "Thai", "ti": "Tigrinya", "tig": "Tigre", "tiv": "Tiv", "tk": "Turkmen", "tkl": "Tokelau", "tkr": "Tsakhur", "tl": "Tagalog", "tlh": "Klingon", "tli": "Tlingit", "tly": "Talysh", "tmh": "Tamashek", "tn": "Tswana", "to": "Tongan", "tog": "Nyasa Tonga", "tpi": "Tok Pisin", "tr": "Turkish", "tru": "Turoyo", "trv": "Taroko", "ts": "Tsonga", "tsd": "Tsakonian", "tsi": "Tsimshian", "tt": "Tatar", "ttt": "Muslim Tat", "tum": "Tumbuka", "tvl": "Tuvalu", "tw": "Twi", "twq": "Tasawaq", "ty": "Tahitian", "tyv": "Tuvinian", "tzm": "Central Atlas Tamazight", "udm": "Udmurt", "ug": "Uyghur", "uga": "Ugaritic", "uk": "Ukrainian", "umb": "Umbundu", "ur": "Urdu", "uz": "Uzbek", "vai": "Vai", "ve": "Venda", "vec": "Venetian", "vep": "Veps", "vi": "Vietnamese", "vls": "West Flemish", "vmf": "Main-Franconian", "vo": "Volapük", "vot": "Votic", "vro": "Võro", "vun": "Vunjo", "wa": "Walloon", "wae": "Walser", "wal": "Wolaytta", "war": "Waray", "was": "Washo", "wbp": "Warlpiri", "wo": "Wolof", "wuu": "Wu Chinese", "xal": "Kalmyk", "xh": "Xhosa", "xmf": "Mingrelian", "xog": "Soga", "yao": "Yao", "yap": "Yapese", "yav": "Yangben", "ybb": "Yemba", "yi": "Yiddish", "yo": "Yoruba", "yrl": "Nheengatu", "yue": "Cantonese", "za": "Zhuang", "zap": "Zapotec", "zbl": "Blissymbols", "zea": "Zeelandic", "zen": "Zenaga", "zgh": "Standard Moroccan Tamazight", "zh": "Mandarin Chinese", "zh-Hans": "Simplified Chinese", "zh-Hant": "Traditional Chinese", "zu": "Zulu", "zun": "Zuni", "zza": "Zaza"}}, - "eo": {"rtl": false, "languageNames": {"aa": "afara", "ab": "abĥaza", "af": "afrikansa", "am": "amhara", "ar": "araba", "ar-001": "araba (Mondo)", "as": "asama", "ay": "ajmara", "az": "azerbajĝana", "ba": "baŝkira", "be": "belorusa", "bg": "bulgara", "bi": "bislamo", "bn": "bengala", "bo": "tibeta", "br": "bretona", "bs": "bosnia", "ca": "kataluna", "co": "korsika", "cs": "ĉeĥa", "cy": "kimra", "da": "dana", "de": "germana", "de-AT": "germana (Aŭstrujo)", "de-CH": "germana (Svisujo)", "dv": "mahla", "dz": "dzonko", "efi": "ibibioefika", "el": "greka", "en": "angla", "en-AU": "angla (Aŭstralio)", "en-CA": "angla (Kanado)", "en-GB": "angla (Unuiĝinta Reĝlando)", "en-US": "angla (Usono)", "eo": "esperanto", "es": "hispana", "es-419": "hispana (419)", "es-ES": "hispana (Hispanujo)", "es-MX": "hispana (Meksiko)", "et": "estona", "eu": "eŭska", "fa": "persa", "fi": "finna", "fil": "filipina", "fj": "fiĝia", "fo": "feroa", "fr": "franca", "fr-CA": "franca (Kanado)", "fr-CH": "franca (Svisujo)", "fy": "frisa", "ga": "irlanda", "gd": "gaela", "gl": "galega", "gn": "gvarania", "gu": "guĝarata", "ha": "haŭsa", "haw": "havaja", "he": "hebrea", "hi": "hinda", "hr": "kroata", "ht": "haitia kreola", "hu": "hungara", "hy": "armena", "ia": "interlingvao", "id": "indonezia", "ie": "okcidentalo", "ik": "eskima", "is": "islanda", "it": "itala", "iu": "inuita", "ja": "japana", "jv": "java", "ka": "kartvela", "kk": "kazaĥa", "kl": "gronlanda", "km": "kmera", "kn": "kanara", "ko": "korea", "ks": "kaŝmira", "ku": "kurda", "ky": "kirgiza", "la": "latino", "lb": "luksemburga", "ln": "lingala", "lo": "laŭa", "lt": "litova", "lv": "latva", "mg": "malagasa", "mi": "maoria", "mk": "makedona", "ml": "malajalama", "mn": "mongola", "mr": "marata", "ms": "malaja", "mt": "malta", "my": "birma", "na": "naura", "nb": "dannorvega", "nds-NL": "nds (Nederlando)", "ne": "nepala", "nl": "nederlanda", "nl-BE": "nederlanda (Belgujo)", "nn": "novnorvega", "no": "norvega", "oc": "okcitana", "om": "oroma", "or": "orijo", "pa": "panĝaba", "pl": "pola", "ps": "paŝtoa", "pt": "portugala", "pt-BR": "brazilportugala", "pt-PT": "eŭropportugala", "qu": "keĉua", "rm": "romanĉa", "rn": "burunda", "ro": "rumana", "ro-MD": "rumana (Moldavujo)", "ru": "rusa", "rw": "ruanda", "sa": "sanskrito", "sd": "sinda", "sg": "sangoa", "sh": "serbo-Kroata", "si": "sinhala", "sk": "slovaka", "sl": "slovena", "sm": "samoa", "sn": "ŝona", "so": "somala", "sq": "albana", "sr": "serba", "ss": "svazia", "st": "sota", "su": "sunda", "sv": "sveda", "sw": "svahila", "sw-CD": "svahila (CD)", "ta": "tamila", "te": "telugua", "tg": "taĝika", "th": "taja", "ti": "tigraja", "tk": "turkmena", "tl": "tagaloga", "tlh": "klingona", "tn": "cvana", "to": "tongaa", "tr": "turka", "ts": "conga", "tt": "tatara", "ug": "ujgura", "uk": "ukraina", "ur": "urduo", "uz": "uzbeka", "vi": "vjetnama", "vo": "volapuko", "wo": "volofa", "xh": "ksosa", "yi": "jida", "yo": "joruba", "za": "ĝuanga", "zh": "ĉina", "zh-Hans": "ĉina simpligita", "zh-Hant": "ĉina tradicia", "zu": "zulua"}}, - "es": {"rtl": false, "languageNames": {"aa": "afar", "ab": "abjasio", "ace": "acehnés", "ach": "acoli", "ada": "adangme", "ady": "adigué", "ae": "avéstico", "af": "afrikáans", "afh": "afrihili", "agq": "aghem", "ain": "ainu", "ak": "akan", "akk": "acadio", "ale": "aleutiano", "alt": "altái meridional", "am": "amárico", "an": "aragonés", "ang": "inglés antiguo", "anp": "angika", "ar": "árabe", "ar-001": "árabe estándar moderno", "arc": "arameo", "arn": "mapuche", "arp": "arapaho", "ars": "árabe najdí", "arw": "arahuaco", "as": "asamés", "asa": "asu", "ast": "asturiano", "av": "avar", "awa": "avadhi", "ay": "aimara", "az": "azerbaiyano", "ba": "baskir", "bal": "baluchi", "ban": "balinés", "bas": "basaa", "bax": "bamún", "bbj": "ghomala", "be": "bielorruso", "bej": "beja", "bem": "bemba", "bez": "bena", "bfd": "bafut", "bg": "búlgaro", "bgn": "baluchi occidental", "bho": "bhoyapurí", "bi": "bislama", "bik": "bicol", "bin": "bini", "bkm": "kom", "bla": "siksika", "bm": "bambara", "bn": "bengalí", "bo": "tibetano", "br": "bretón", "bra": "braj", "brx": "bodo", "bs": "bosnio", "bss": "akoose", "bua": "buriato", "bug": "buginés", "bum": "bulu", "byn": "blin", "byv": "medumba", "ca": "catalán", "cad": "caddo", "car": "caribe", "cay": "cayuga", "cch": "atsam", "ce": "checheno", "ceb": "cebuano", "cgg": "chiga", "ch": "chamorro", "chb": "chibcha", "chg": "chagatái", "chk": "trukés", "chm": "marí", "chn": "jerga chinuk", "cho": "choctaw", "chp": "chipewyan", "chr": "cheroqui", "chy": "cheyene", "ckb": "kurdo sorani", "co": "corso", "cop": "copto", "cr": "cree", "crh": "tártaro de Crimea", "crs": "criollo seychelense", "cs": "checo", "csb": "casubio", "cu": "eslavo eclesiástico", "cv": "chuvasio", "cy": "galés", "da": "danés", "dak": "dakota", "dar": "dargva", "dav": "taita", "de": "alemán", "de-AT": "alemán austríaco", "de-CH": "alto alemán suizo", "del": "delaware", "den": "slave", "dgr": "dogrib", "din": "dinka", "dje": "zarma", "doi": "dogri", "dsb": "bajo sorbio", "dua": "duala", "dum": "neerlandés medio", "dv": "divehi", "dyo": "jola-fonyi", "dyu": "diula", "dz": "dzongkha", "dzg": "dazaga", "ebu": "embu", "ee": "ewé", "efi": "efik", "egy": "egipcio antiguo", "eka": "ekajuk", "el": "griego", "elx": "elamita", "en": "inglés", "en-AU": "inglés australiano", "en-CA": "inglés canadiense", "en-GB": "inglés británico", "en-US": "inglés estadounidense", "enm": "inglés medio", "eo": "esperanto", "es": "español", "es-419": "español latinoamericano", "es-ES": "español de España", "es-MX": "español de México", "et": "estonio", "eu": "euskera", "ewo": "ewondo", "fa": "persa", "fan": "fang", "fat": "fanti", "ff": "fula", "fi": "finés", "fil": "filipino", "fj": "fiyiano", "fo": "feroés", "fr": "francés", "fr-CA": "francés canadiense", "fr-CH": "francés suizo", "frc": "francés cajún", "frm": "francés medio", "fro": "francés antiguo", "frr": "frisón septentrional", "frs": "frisón oriental", "fur": "friulano", "fy": "frisón occidental", "ga": "irlandés", "gaa": "ga", "gag": "gagauzo", "gan": "chino gan", "gay": "gayo", "gba": "gbaya", "gd": "gaélico escocés", "gez": "geez", "gil": "gilbertés", "gl": "gallego", "gmh": "alto alemán medio", "gn": "guaraní", "goh": "alto alemán antiguo", "gon": "gondi", "gor": "gorontalo", "got": "gótico", "grb": "grebo", "grc": "griego antiguo", "gsw": "alemán suizo", "gu": "guyaratí", "guz": "gusii", "gv": "manés", "gwi": "kutchin", "ha": "hausa", "hai": "haida", "hak": "chino hakka", "haw": "hawaiano", "he": "hebreo", "hi": "hindi", "hil": "hiligaynon", "hit": "hitita", "hmn": "hmong", "ho": "hiri motu", "hr": "croata", "hsb": "alto sorbio", "hsn": "chino xiang", "ht": "criollo haitiano", "hu": "húngaro", "hup": "hupa", "hy": "armenio", "hz": "herero", "ia": "interlingua", "iba": "iban", "ibb": "ibibio", "id": "indonesio", "ie": "interlingue", "ig": "igbo", "ii": "yi de Sichuán", "ik": "inupiaq", "ilo": "ilocano", "inh": "ingush", "io": "ido", "is": "islandés", "it": "italiano", "iu": "inuktitut", "ja": "japonés", "jbo": "lojban", "jgo": "ngomba", "jmc": "machame", "jpr": "judeo-persa", "jrb": "judeo-árabe", "jv": "javanés", "ka": "georgiano", "kaa": "karakalpako", "kab": "cabila", "kac": "kachin", "kaj": "jju", "kam": "kamba", "kaw": "kawi", "kbd": "kabardiano", "kbl": "kanembu", "kcg": "tyap", "kde": "makonde", "kea": "criollo caboverdiano", "kfo": "koro", "kg": "kongo", "kha": "khasi", "kho": "kotanés", "khq": "koyra chiini", "ki": "kikuyu", "kj": "kuanyama", "kk": "kazajo", "kkj": "kako", "kl": "groenlandés", "kln": "kalenjin", "km": "jemer", "kmb": "kimbundu", "kn": "canarés", "ko": "coreano", "koi": "komi permio", "kok": "konkaní", "kos": "kosraeano", "kpe": "kpelle", "kr": "kanuri", "krc": "karachay-balkar", "krl": "carelio", "kru": "kurukh", "ks": "cachemiro", "ksb": "shambala", "ksf": "bafia", "ksh": "kölsch", "ku": "kurdo", "kum": "kumyk", "kut": "kutenai", "kv": "komi", "kw": "córnico", "ky": "kirguís", "la": "latín", "lad": "ladino", "lag": "langi", "lah": "lahnda", "lam": "lamba", "lb": "luxemburgués", "lez": "lezgiano", "lg": "ganda", "li": "limburgués", "lkt": "lakota", "ln": "lingala", "lo": "lao", "lol": "mongo", "lou": "criollo de Luisiana", "loz": "lozi", "lrc": "lorí septentrional", "lt": "lituano", "lu": "luba-katanga", "lua": "luba-lulua", "lui": "luiseño", "lun": "lunda", "lus": "mizo", "luy": "luyia", "lv": "letón", "mad": "madurés", "maf": "mafa", "mag": "magahi", "mai": "maithili", "mak": "macasar", "man": "mandingo", "mas": "masái", "mde": "maba", "mdf": "moksha", "mdr": "mandar", "men": "mende", "mer": "meru", "mfe": "criollo mauriciano", "mg": "malgache", "mga": "irlandés medio", "mgh": "makhuwa-meetto", "mgo": "meta’", "mh": "marshalés", "mi": "maorí", "mic": "micmac", "min": "minangkabau", "mk": "macedonio", "ml": "malayalam", "mn": "mongol", "mnc": "manchú", "mni": "manipuri", "moh": "mohawk", "mos": "mossi", "mr": "maratí", "ms": "malayo", "mt": "maltés", "mua": "mundang", "mus": "creek", "mwl": "mirandés", "mwr": "marwari", "my": "birmano", "mye": "myene", "myv": "erzya", "mzn": "mazandaraní", "na": "nauruano", "nan": "chino min nan", "nap": "napolitano", "naq": "nama", "nb": "noruego bokmal", "nd": "ndebele septentrional", "nds": "bajo alemán", "nds-NL": "bajo sajón", "ne": "nepalí", "new": "newari", "ng": "ndonga", "nia": "nias", "niu": "niueano", "nl": "neerlandés", "nl-BE": "flamenco", "nmg": "kwasio", "nn": "noruego nynorsk", "nnh": "ngiemboon", "no": "noruego", "nog": "nogai", "non": "nórdico antiguo", "nqo": "n’ko", "nr": "ndebele meridional", "nso": "sotho septentrional", "nus": "nuer", "nv": "navajo", "nwc": "newari clásico", "ny": "nyanja", "nym": "nyamwezi", "nyn": "nyankole", "nyo": "nyoro", "nzi": "nzima", "oc": "occitano", "oj": "ojibwa", "om": "oromo", "or": "oriya", "os": "osético", "osa": "osage", "ota": "turco otomano", "pa": "panyabí", "pag": "pangasinán", "pal": "pahlavi", "pam": "pampanga", "pap": "papiamento", "pau": "palauano", "pcm": "pidgin de Nigeria", "peo": "persa antiguo", "phn": "fenicio", "pi": "pali", "pl": "polaco", "pon": "pohnpeiano", "prg": "prusiano", "pro": "provenzal antiguo", "ps": "pastún", "pt": "portugués", "pt-BR": "portugués de Brasil", "pt-PT": "portugués de Portugal", "qu": "quechua", "quc": "quiché", "raj": "rajasthani", "rap": "rapanui", "rar": "rarotongano", "rm": "romanche", "rn": "kirundi", "ro": "rumano", "ro-MD": "moldavo", "rof": "rombo", "rom": "romaní", "root": "raíz", "ru": "ruso", "rup": "arrumano", "rw": "kinyarwanda", "rwk": "rwa", "sa": "sánscrito", "sad": "sandawe", "sah": "sakha", "sam": "arameo samaritano", "saq": "samburu", "sas": "sasak", "sat": "santali", "sba": "ngambay", "sbp": "sangu", "sc": "sardo", "scn": "siciliano", "sco": "escocés", "sd": "sindhi", "sdh": "kurdo meridional", "se": "sami septentrional", "see": "seneca", "seh": "sena", "sel": "selkup", "ses": "koyraboro senni", "sg": "sango", "sga": "irlandés antiguo", "sh": "serbocroata", "shi": "tashelhit", "shn": "shan", "shu": "árabe chadiano", "si": "cingalés", "sid": "sidamo", "sk": "eslovaco", "sl": "esloveno", "sm": "samoano", "sma": "sami meridional", "smj": "sami lule", "smn": "sami inari", "sms": "sami skolt", "sn": "shona", "snk": "soninké", "so": "somalí", "sog": "sogdiano", "sq": "albanés", "sr": "serbio", "srn": "sranan tongo", "srr": "serer", "ss": "suazi", "ssy": "saho", "st": "sotho meridional", "su": "sundanés", "suk": "sukuma", "sus": "susu", "sux": "sumerio", "sv": "sueco", "sw": "suajili", "sw-CD": "suajili del Congo", "swb": "comorense", "syc": "siríaco clásico", "syr": "siriaco", "ta": "tamil", "te": "telugu", "tem": "temne", "teo": "teso", "ter": "tereno", "tet": "tetún", "tg": "tayiko", "th": "tailandés", "ti": "tigriña", "tig": "tigré", "tk": "turcomano", "tkl": "tokelauano", "tl": "tagalo", "tlh": "klingon", "tli": "tlingit", "tmh": "tamashek", "tn": "setsuana", "to": "tongano", "tog": "tonga del Nyasa", "tpi": "tok pisin", "tr": "turco", "trv": "taroko", "ts": "tsonga", "tsi": "tsimshiano", "tt": "tártaro", "tum": "tumbuka", "tvl": "tuvaluano", "tw": "twi", "twq": "tasawaq", "ty": "tahitiano", "tyv": "tuviniano", "tzm": "tamazight del Atlas Central", "udm": "udmurt", "ug": "uigur", "uga": "ugarítico", "uk": "ucraniano", "umb": "umbundu", "ur": "urdu", "uz": "uzbeko", "ve": "venda", "vi": "vietnamita", "vo": "volapük", "vot": "vótico", "vun": "vunjo", "wa": "valón", "wae": "walser", "wal": "wolayta", "war": "waray", "was": "washo", "wbp": "warlpiri", "wo": "wólof", "wuu": "chino wu", "xal": "kalmyk", "xh": "xhosa", "xog": "soga", "yap": "yapés", "yav": "yangben", "ybb": "yemba", "yi": "yidis", "yo": "yoruba", "yue": "cantonés", "za": "zhuang", "zap": "zapoteco", "zbl": "símbolos Bliss", "zen": "zenaga", "zgh": "tamazight estándar marroquí", "zh": "chino", "zh-Hans": "chino simplificado", "zh-Hant": "chino tradicional", "zu": "zulú", "zun": "zuñi", "zza": "zazaki"}}, - "et": {"rtl": false, "languageNames": {"aa": "afari", "ab": "abhaasi", "ace": "atšehi", "ach": "atšoli", "ada": "adangme", "ady": "adõgee", "ae": "avesta", "aeb": "Tuneesia araabia", "af": "afrikaani", "afh": "afrihili", "agq": "aghemi", "ain": "ainu", "ak": "akani", "akk": "akadi", "akz": "alabama", "ale": "aleuudi", "aln": "geegi", "alt": "altai", "am": "amhara", "an": "aragoni", "ang": "vanainglise", "anp": "angika", "ar": "araabia", "ar-001": "araabia (tänapäevane)", "arc": "aramea", "arn": "mapudunguni", "aro": "araona", "arp": "arapaho", "arq": "Alžeeria araabia", "arw": "aravaki", "ary": "Maroko araabia", "arz": "Egiptuse araabia", "as": "assami", "asa": "asu", "ase": "Ameerika viipekeel", "ast": "astuuria", "av": "avaari", "awa": "avadhi", "ay": "aimara", "az": "aserbaidžaani", "ba": "baškiiri", "bal": "belutši", "ban": "bali", "bar": "baieri", "bas": "basaa", "bax": "bamuni", "bbc": "bataki", "bbj": "ghomala", "be": "valgevene", "bej": "bedža", "bem": "bemba", "bew": "betavi", "bez": "bena", "bfd": "bafuti", "bfq": "badaga", "bg": "bulgaaria", "bgn": "läänebelutši", "bho": "bhodžpuri", "bi": "bislama", "bik": "bikoli", "bin": "edo", "bjn": "bandžari", "bkm": "komi (Aafrika)", "bla": "mustjalaindiaani", "bm": "bambara", "bn": "bengali", "bo": "tiibeti", "bpy": "bišnuprija", "bqi": "bahtiari", "br": "bretooni", "bra": "bradži", "brh": "brahui", "brx": "bodo", "bs": "bosnia", "bss": "akoose", "bua": "burjaadi", "bug": "bugi", "bum": "bulu", "byn": "bilini", "byv": "medumba", "ca": "katalaani", "cad": "kado", "car": "kariibi", "cay": "kajuka", "cch": "aitšami", "ccp": "Chakma", "ce": "tšetšeeni", "ceb": "sebu", "cgg": "tšiga", "ch": "tšamorro", "chb": "tšibtša", "chg": "tšagatai", "chk": "tšuugi", "chm": "mari", "chn": "tšinuki žargoon", "cho": "tšokto", "chp": "tšipevai", "chr": "tšerokii", "chy": "šaieeni", "ckb": "sorani", "co": "korsika", "cop": "kopti", "cps": "kapisnoni", "cr": "krii", "crh": "krimmitatari", "crs": "seišelli", "cs": "tšehhi", "csb": "kašuubi", "cu": "kirikuslaavi", "cv": "tšuvaši", "cy": "kõmri", "da": "taani", "dak": "siuu", "dar": "dargi", "dav": "davida", "de": "saksa", "de-AT": "Austria saksa", "de-CH": "Šveitsi ülemsaksa", "del": "delavari", "den": "sleivi", "dgr": "dogribi", "din": "dinka", "dje": "zarma", "doi": "dogri", "dsb": "alamsorbi", "dtp": "keskdusuni", "dua": "duala", "dum": "keskhollandi", "dv": "maldiivi", "dyo": "fonji", "dyu": "djula", "dz": "dzongkha", "dzg": "daza", "ebu": "embu", "ee": "eve", "efi": "efiki", "egl": "emiilia", "egy": "egiptuse", "eka": "ekadžuki", "el": "kreeka", "elx": "eelami", "en": "inglise", "en-AU": "Austraalia inglise", "en-CA": "Kanada inglise", "en-GB": "Briti inglise", "en-US": "Ameerika inglise", "enm": "keskinglise", "eo": "esperanto", "es": "hispaania", "es-419": "Ladina-Ameerika hispaania", "es-ES": "Euroopa hispaania", "es-MX": "Mehhiko hispaania", "esu": "keskjupiki", "et": "eesti", "eu": "baski", "ewo": "evondo", "ext": "estremenju", "fa": "pärsia", "fan": "fangi", "fat": "fanti", "ff": "fula", "fi": "soome", "fil": "filipiini", "fit": "meä", "fj": "fidži", "fo": "fääri", "fon": "foni", "fr": "prantsuse", "fr-CA": "Kanada prantsuse", "fr-CH": "Šveitsi prantsuse", "frc": "cajun’i", "frm": "keskprantsuse", "fro": "vanaprantsuse", "frp": "frankoprovansi", "frr": "põhjafriisi", "frs": "idafriisi", "fur": "friuuli", "fy": "läänefriisi", "ga": "iiri", "gag": "gagauusi", "gan": "kani", "gay": "gajo", "gba": "gbaja", "gd": "gaeli", "gez": "etioopia", "gil": "kiribati", "gl": "galeegi", "glk": "gilaki", "gmh": "keskülemsaksa", "gn": "guaranii", "goh": "vanaülemsaksa", "gon": "gondi", "gor": "gorontalo", "got": "gooti", "grb": "grebo", "grc": "vanakreeka", "gsw": "šveitsisaksa", "gu": "gudžarati", "guc": "vajuu", "gur": "farefare", "guz": "gusii", "gv": "mänksi", "gwi": "gvitšini", "ha": "hausa", "hai": "haida", "hak": "hakka", "haw": "havai", "he": "heebrea", "hi": "hindi", "hif": "Fidži hindi", "hil": "hiligainoni", "hit": "heti", "hmn": "hmongi", "ho": "hirimotu", "hr": "horvaadi", "hsb": "ülemsorbi", "hsn": "sjangi", "ht": "haiti", "hu": "ungari", "hup": "hupa", "hy": "armeenia", "hz": "herero", "ia": "interlingua", "iba": "ibani", "ibb": "ibibio", "id": "indoneesia", "ie": "interlingue", "ig": "ibo", "ii": "Sichuani jii", "ik": "injupiaki", "ilo": "iloko", "inh": "inguši", "io": "ido", "is": "islandi", "it": "itaalia", "iu": "inuktituti", "izh": "isuri", "ja": "jaapani", "jam": "Jamaica kreoolkeel", "jbo": "ložban", "jgo": "ngomba", "jmc": "matšame", "jpr": "juudipärsia", "jrb": "juudiaraabia", "jut": "jüüti", "jv": "jaava", "ka": "gruusia", "kaa": "karakalpaki", "kab": "kabiili", "kac": "katšini", "kaj": "jju", "kam": "kamba", "kaw": "kaavi", "kbd": "kabardi-tšerkessi", "kbl": "kanembu", "kcg": "tjapi", "kde": "makonde", "kea": "kabuverdianu", "kfo": "koro", "kg": "kongo", "kgp": "kaingangi", "kha": "khasi", "kho": "saka", "khq": "koyra chiini", "khw": "khovari", "ki": "kikuju", "kiu": "kõrmandžki", "kj": "kvanjama", "kk": "kasahhi", "kkj": "kako", "kl": "grööni", "kln": "kalendžini", "km": "khmeeri", "kmb": "mbundu", "kn": "kannada", "ko": "korea", "koi": "permikomi", "kok": "konkani", "kos": "kosrae", "kpe": "kpelle", "kr": "kanuri", "krc": "karatšai-balkaari", "kri": "krio", "krj": "kinaraia", "krl": "karjala", "kru": "kuruhhi", "ks": "kašmiiri", "ksb": "šambala", "ksf": "bafia", "ksh": "kölni", "ku": "kurdi", "kum": "kumõki", "kut": "kutenai", "kv": "komi", "kw": "korni", "ky": "kirgiisi", "la": "ladina", "lad": "ladiino", "lag": "langi", "lah": "lahnda", "lam": "lamba", "lb": "letseburgi", "lez": "lesgi", "lg": "ganda", "li": "limburgi", "lij": "liguuri", "liv": "liivi", "lkt": "lakota", "lmo": "lombardi", "ln": "lingala", "lo": "lao", "lol": "mongo", "lou": "Louisiana kreoolkeel", "loz": "lozi", "lrc": "põhjaluri", "lt": "leedu", "ltg": "latgali", "lu": "luba", "lua": "lulua", "lui": "luisenjo", "lun": "lunda", "lus": "lušei", "luy": "luhja", "lv": "läti", "lzh": "klassikaline hiina", "lzz": "lazi", "mad": "madura", "maf": "mafa", "mag": "magahi", "mai": "maithili", "mak": "makassari", "man": "malinke", "mas": "masai", "mde": "maba", "mdf": "mokša", "mdr": "mandari", "men": "mende", "mer": "meru", "mfe": "Mauritiuse kreoolkeel", "mg": "malagassi", "mga": "keskiiri", "mgh": "makhuwa-meetto", "mgo": "meta", "mh": "maršalli", "mi": "maoori", "mic": "mikmaki", "min": "minangkabau", "mk": "makedoonia", "ml": "malajalami", "mn": "mongoli", "mnc": "mandžu", "mni": "manipuri", "moh": "mohoogi", "mos": "more", "mr": "marathi", "mrj": "mäemari", "ms": "malai", "mt": "malta", "mua": "mundangi", "mus": "maskogi", "mwl": "miranda", "mwr": "marvari", "mwv": "mentavei", "my": "birma", "mye": "mjene", "myv": "ersa", "mzn": "mazandaraani", "na": "nauru", "nan": "lõunamini", "nap": "napoli", "naq": "nama", "nb": "norra bokmål", "nd": "põhjandebele", "nds": "alamsaksa", "nds-NL": "Hollandi alamsaksa", "ne": "nepali", "new": "nevari", "ng": "ndonga", "nia": "niasi", "niu": "niue", "njo": "ao", "nl": "hollandi", "nl-BE": "flaami", "nmg": "kwasio", "nn": "uusnorra", "nnh": "ngiembooni", "no": "norra", "nog": "nogai", "non": "vanapõhjala", "nov": "noviaal", "nqo": "nkoo", "nr": "lõunandebele", "nso": "põhjasotho", "nus": "nueri", "nv": "navaho", "nwc": "vananevari", "ny": "njandža", "nym": "njamvesi", "nyn": "nkole", "nyo": "njoro", "nzi": "nzima", "oc": "oksitaani", "oj": "odžibvei", "om": "oromo", "or": "oria", "os": "osseedi", "osa": "oseidži", "ota": "osmanitürgi", "pa": "pandžabi", "pag": "pangasinani", "pal": "pahlavi", "pam": "pampanga", "pap": "papiamento", "pau": "belau", "pcd": "pikardi", "pcm": "Nigeeria pidžinkeel", "pdc": "Pennsylvania saksa", "pdt": "mennoniidisaksa", "peo": "vanapärsia", "pfl": "Pfalzi", "phn": "foiniikia", "pi": "paali", "pl": "poola", "pms": "piemonte", "pnt": "pontose", "pon": "poonpei", "prg": "preisi", "pro": "vanaprovansi", "ps": "puštu", "pt": "portugali", "pt-BR": "Brasiilia portugali", "pt-PT": "Euroopa portugali", "qu": "ketšua", "quc": "kitše", "raj": "radžastani", "rap": "rapanui", "rar": "rarotonga", "rgn": "romanja", "rif": "riifi", "rm": "romanši", "rn": "rundi", "ro": "rumeenia", "ro-MD": "moldova", "rof": "rombo", "rom": "mustlaskeel", "rtm": "rotuma", "ru": "vene", "rue": "russiini", "rug": "roviana", "rup": "aromuuni", "rw": "ruanda", "rwk": "rvaa", "sa": "sanskriti", "sad": "sandave", "sah": "jakuudi", "sam": "Samaaria aramea", "saq": "samburu", "sas": "sasaki", "sat": "santali", "saz": "sauraštra", "sba": "ngambai", "sbp": "sangu", "sc": "sardi", "scn": "sitsiilia", "sco": "šoti", "sd": "sindhi", "sdh": "lõunakurdi", "se": "põhjasaami", "see": "seneka", "seh": "sena", "sei": "seri", "sel": "sölkupi", "ses": "koyraboro senni", "sg": "sango", "sga": "vanaiiri", "sgs": "žemaidi", "sh": "serbia-horvaadi", "shi": "šilha", "shn": "šani", "shu": "Tšaadi araabia", "si": "singali", "sid": "sidamo", "sk": "slovaki", "sl": "sloveeni", "sli": "alamsileesia", "sly": "selajari", "sm": "samoa", "sma": "lõunasaami", "smj": "Lule saami", "smn": "Inari saami", "sms": "koltasaami", "sn": "šona", "snk": "soninke", "so": "somaali", "sog": "sogdi", "sq": "albaania", "sr": "serbia", "srn": "sranani", "srr": "sereri", "ss": "svaasi", "ssy": "saho", "st": "lõunasotho", "stq": "saterfriisi", "su": "sunda", "suk": "sukuma", "sus": "susu", "sux": "sumeri", "sv": "rootsi", "sw": "suahiili", "sw-CD": "Kongo suahiili", "swb": "komoori", "syc": "vanasüüria", "syr": "süüria", "szl": "sileesia", "ta": "tamili", "tcy": "tulu", "te": "telugu", "tem": "temne", "teo": "teso", "ter": "tereno", "tet": "tetumi", "tg": "tadžiki", "th": "tai", "ti": "tigrinja", "tig": "tigree", "tiv": "tivi", "tk": "türkmeeni", "tkl": "tokelau", "tkr": "tsahhi", "tl": "tagalogi", "tlh": "klingoni", "tli": "tlingiti", "tly": "talõši", "tmh": "tamašeki", "tn": "tsvana", "to": "tonga", "tog": "tšitonga", "tpi": "uusmelaneesia", "tr": "türgi", "tru": "turojo", "trv": "taroko", "ts": "tsonga", "tsd": "tsakoonia", "tsi": "tšimši", "tt": "tatari", "ttt": "lõunataadi", "tum": "tumbuka", "tvl": "tuvalu", "tw": "tvii", "twq": "taswaqi", "ty": "tahiti", "tyv": "tõva", "tzm": "tamasikti", "udm": "udmurdi", "ug": "uiguuri", "uga": "ugariti", "uk": "ukraina", "umb": "umbundu", "ur": "urdu", "uz": "usbeki", "ve": "venda", "vec": "veneti", "vep": "vepsa", "vi": "vietnami", "vls": "lääneflaami", "vmf": "Maini frangi", "vo": "volapüki", "vot": "vadja", "vro": "võru", "vun": "vundžo", "wa": "vallooni", "wae": "walseri", "wal": "volaita", "war": "varai", "was": "vašo", "wbp": "varlpiri", "wo": "volofi", "wuu": "uu", "xal": "kalmõki", "xh": "koosa", "xmf": "megreli", "xog": "soga", "yao": "jao", "yap": "japi", "yav": "yangbeni", "ybb": "jemba", "yi": "jidiši", "yo": "joruba", "yrl": "njengatu", "yue": "kantoni", "za": "tšuangi", "zap": "sapoteegi", "zbl": "Blissi sümbolid", "zea": "zeelandi", "zen": "zenaga", "zgh": "tamasikti (Maroko)", "zh": "hiina", "zh-Hans": "lihtsustatud hiina", "zh-Hant": "traditsiooniline hiina", "zu": "suulu", "zun": "sunji", "zza": "zaza"}}, - "eu": {"rtl": false, "languageNames": {"aa": "afarera", "ab": "abkhaziera", "ace": "acehnera", "ach": "acholiera", "ada": "adangmera", "ady": "adigera", "af": "afrikaans", "agq": "aghemera", "ain": "ainuera", "ak": "akanera", "ale": "aleutera", "alt": "hegoaldeko altaiera", "am": "amharera", "an": "aragoiera", "anp": "angikera", "ar": "arabiera", "ar-001": "arabiera moderno estandarra", "arn": "maputxe", "arp": "arapaho", "as": "assamera", "asa": "asua", "ast": "asturiera", "av": "avarera", "awa": "awadhiera", "ay": "aimara", "az": "azerbaijanera", "ba": "baxkirera", "ban": "baliera", "bas": "basaa", "be": "bielorrusiera", "bem": "bembera", "bez": "benera", "bg": "bulgariera", "bho": "bhojpurera", "bi": "bislama", "bin": "edoera", "bla": "siksikera", "bm": "bambarera", "bn": "bengalera", "bo": "tibetera", "br": "bretoiera", "brx": "bodoera", "bs": "bosniera", "bug": "buginera", "byn": "bilena", "ca": "katalan", "ce": "txetxenera", "ceb": "cebuera", "cgg": "chigera", "ch": "chamorrera", "chk": "chuukera", "chm": "mariera", "cho": "choctaw", "chr": "txerokiera", "chy": "cheyennera", "ckb": "sorania", "co": "korsikera", "crs": "Seychelleetako kreolera", "cs": "txekiera", "cu": "elizako eslaviera", "cv": "txuvaxera", "cy": "gales", "da": "daniera", "dak": "dakotera", "dar": "dargvera", "dav": "taitera", "de": "aleman", "de-AT": "Austriako aleman", "de-CH": "Suitzako aleman garai", "dgr": "dogribera", "dje": "zarma", "dsb": "behe-sorabiera", "dua": "dualera", "dv": "divehiera", "dyo": "fonyi jolera", "dz": "dzongkha", "dzg": "dazaga", "ebu": "embua", "ee": "eweera", "efi": "efikera", "eka": "akajuka", "el": "greziera", "en": "ingeles", "en-AU": "Australiako ingeles", "en-CA": "Kanadako ingeles", "en-GB": "Britania Handiko ingeles", "en-US": "AEBko ingeles", "eo": "esperanto", "es": "espainiera", "es-419": "Latinoamerikako espainiera", "es-ES": "espainiera (Europa)", "es-MX": "Mexikoko espainiera", "et": "estoniera", "eu": "euskara", "ewo": "ewondera", "fa": "persiera", "ff": "fula", "fi": "finlandiera", "fil": "filipinera", "fj": "fijiera", "fo": "faroera", "fon": "fona", "fr": "frantses", "fr-CA": "Kanadako frantses", "fr-CH": "Suitzako frantses", "fur": "friuliera", "fy": "frisiera", "ga": "gaeliko", "gaa": "ga", "gag": "gagauzera", "gd": "Eskoziako gaeliko", "gez": "ge’ez", "gil": "gilbertera", "gl": "galiziera", "gn": "guaraniera", "gor": "gorontaloa", "gsw": "Suitzako aleman", "gu": "gujaratera", "guz": "gusiiera", "gv": "manxera", "gwi": "gwichʼin", "ha": "hausa", "haw": "hawaiiera", "he": "hebreera", "hi": "hindi", "hil": "hiligainon", "hmn": "hmong", "hr": "kroaziera", "hsb": "goi-sorabiera", "ht": "Haitiko kreolera", "hu": "hungariera", "hup": "hupera", "hy": "armeniera", "hz": "hereroera", "ia": "interlingua", "iba": "ibanera", "ibb": "ibibioera", "id": "indonesiera", "ie": "interlingue", "ig": "igboera", "ii": "Sichuango yiera", "ilo": "ilokanera", "inh": "ingushera", "io": "ido", "is": "islandiera", "it": "italiera", "iu": "inuktitut", "ja": "japoniera", "jbo": "lojbanera", "jgo": "ngomba", "jmc": "machamera", "jv": "javera", "ka": "georgiera", "kab": "kabilera", "kac": "jingpoera", "kaj": "kaiji", "kam": "kambera", "kbd": "kabardiera", "kcg": "kataba", "kde": "makondera", "kea": "Cabo Verdeko kreolera", "kfo": "koroa", "kg": "kikongoa", "kha": "kashia", "khq": "koyra chiiniera", "ki": "kikuyuera", "kj": "kuanyama", "kk": "kazakhera", "kkj": "kakoa", "kl": "groenlandiera", "kln": "kalenjinera", "km": "khemerera", "kmb": "kimbundua", "kn": "kannada", "ko": "koreera", "koi": "komi-permyakera", "kok": "konkanera", "kpe": "kpellea", "kr": "kanuriera", "krc": "karachayera-balkarera", "krl": "kareliera", "kru": "kurukhera", "ks": "kaxmirera", "ksb": "shambalera", "ksf": "bafiera", "ksh": "koloniera", "ku": "kurduera", "kum": "kumykera", "kv": "komiera", "kw": "kornubiera", "ky": "kirgizera", "la": "latin", "lad": "ladino", "lag": "langiera", "lb": "luxenburgera", "lez": "lezgiera", "lg": "gandera", "li": "limburgera", "lkt": "lakotera", "ln": "lingala", "lo": "laosera", "loz": "loziera", "lrc": "iparraldeko lurera", "lt": "lituaniera", "lu": "luba-katangera", "lua": "txilubera", "lun": "lundera", "luo": "luoera", "lus": "mizoa", "luy": "luhyera", "lv": "letoniera", "mad": "madurera", "mag": "magahiera", "mai": "maithilera", "mak": "makasarera", "mas": "masaiera", "mdf": "mokxera", "men": "mendeera", "mer": "meruera", "mfe": "Mauritaniako kreolera", "mg": "malgaxe", "mgh": "makhuwa-meettoera", "mgo": "metera", "mh": "marshallera", "mi": "maoriera", "mic": "mikmakera", "min": "minangkabauera", "mk": "mazedoniera", "ml": "malabarera", "mn": "mongoliera", "mni": "manipurera", "moh": "mohawkera", "mos": "moreera", "mr": "marathera", "ms": "malaysiera", "mt": "maltera", "mua": "mudangera", "mus": "creera", "mwl": "mirandera", "my": "birmaniera", "myv": "erziera", "mzn": "mazandarandera", "na": "nauruera", "nap": "napoliera", "naq": "namera", "nb": "bokmål (norvegiera)", "nd": "iparraldeko ndebeleera", "nds-NL": "behe-saxoiera", "ne": "nepalera", "new": "newarera", "ng": "ndongera", "nia": "niasera", "niu": "niueera", "nl": "nederlandera", "nl-BE": "flandriera", "nmg": "kwasiera", "nn": "nynorsk (norvegiera)", "nnh": "ngiemboonera", "no": "norvegiera", "nog": "nogaiera", "nqo": "n’koera", "nr": "hegoaldeko ndebelera", "nso": "pediera", "nus": "nuerera", "nv": "navajoera", "ny": "chewera", "nyn": "ankolera", "oc": "okzitaniera", "om": "oromoera", "or": "oriya", "os": "osetiera", "pa": "punjabera", "pag": "pangasinanera", "pam": "pampangera", "pap": "papiamento", "pau": "palauera", "pcm": "Nigeriako pidgina", "pl": "poloniera", "prg": "prusiera", "ps": "paxtuera", "pt": "portuges", "pt-BR": "Brasilgo portuges", "pt-PT": "Europako portuges", "qu": "kitxua", "quc": "quicheera", "rap": "rapa nui", "rar": "rarotongera", "rm": "erretorromaniera", "rn": "rundiera", "ro": "errumaniera", "ro-MD": "moldaviera", "rof": "romboera", "root": "erroa", "ru": "errusiera", "rup": "aromaniera", "rw": "kinyaruanda", "rwk": "rwaera", "sa": "sanskrito", "sad": "sandaweera", "sah": "sakhera", "saq": "samburuera", "sat": "santalera", "sba": "ngambayera", "sbp": "sanguera", "sc": "sardiniera", "scn": "siziliera", "sco": "eskoziera", "sd": "sindhi", "se": "iparraldeko samiera", "seh": "senera", "ses": "koyraboro sennia", "sg": "sango", "sh": "serbokroaziera", "shi": "tachelhita", "shn": "shanera", "si": "sinhala", "sk": "eslovakiera", "sl": "esloveniera", "sm": "samoera", "sma": "hegoaldeko samiera", "smj": "Luleko samiera", "smn": "Inariko samiera", "sms": "skolten samiera", "sn": "shonera", "snk": "soninkera", "so": "somaliera", "sq": "albaniera", "sr": "serbiera", "srn": "srananera", "ss": "swatiera", "ssy": "sahoa", "st": "hegoaldeko sothoera", "su": "sundanera", "suk": "sukumera", "sv": "suediera", "sw": "swahilia", "sw-CD": "Kongoko swahilia", "swb": "komoreera", "syr": "siriera", "ta": "tamilera", "te": "telugu", "tem": "temnea", "teo": "tesoera", "tet": "tetum", "tg": "tajikera", "th": "thailandiera", "ti": "tigrinyera", "tig": "tigrea", "tk": "turkmenera", "tl": "tagalog", "tlh": "klingonera", "tn": "tswanera", "to": "tongera", "tpi": "tok pisin", "tr": "turkiera", "trv": "tarokoa", "ts": "tsongera", "tt": "tatarera", "tum": "tumbukera", "tvl": "tuvaluera", "tw": "twia", "twq": "tasawaq", "ty": "tahitiera", "tyv": "tuvera", "tzm": "Erdialdeko Atlaseko amazigera", "udm": "udmurtera", "ug": "uigurrera", "uk": "ukrainera", "umb": "umbundu", "ur": "urdu", "uz": "uzbekera", "vai": "vaiera", "ve": "vendera", "vi": "vietnamera", "vo": "volapük", "vun": "vunjo", "wa": "waloiera", "wae": "walserera", "wal": "welayta", "war": "samerera", "wo": "wolofera", "xal": "kalmykera", "xh": "xhosera", "xog": "sogera", "yav": "jangbenera", "ybb": "yemba", "yi": "yiddish", "yo": "jorubera", "yue": "kantonera", "zgh": "amazigera estandarra", "zh": "txinera", "zh-Hans": "txinera soildua", "zh-Hant": "txinera tradizionala", "zu": "zuluera", "zun": "zuñia", "zza": "zazera"}}, - "fa": {"rtl": true, "languageNames": {"aa": "آفاری", "ab": "آبخازی", "ace": "آچئی", "ach": "آچولیایی", "ada": "آدانگمه‌ای", "ady": "آدیجیایی", "ae": "اوستایی", "aeb": "عربی تونسی", "af": "آفریکانس", "afh": "آفریهیلی", "agq": "آگیم", "ain": "آینویی", "ak": "آکان", "akk": "اکدی", "akz": "آلابامایی", "ale": "آلئوتی", "alt": "آلتایی جنوبی", "am": "امهری", "an": "آراگونی", "ang": "انگلیسی باستان", "anp": "آنگیکا", "ar": "عربی", "ar-001": "عربی رسمی", "arc": "آرامی", "arn": "ماپوچه‌ای", "arp": "آراپاهویی", "arq": "عربی الجزایری", "arw": "آراواکی", "ary": "عربی مراکشی", "arz": "عربی مصری", "as": "آسامی", "asa": "آسو", "ast": "آستوری", "av": "آواری", "awa": "اودهی", "ay": "آیمارایی", "az": "ترکی آذربایجانی", "az-Arab": "ترکی آذری جنوبی", "ba": "باشقیری", "bal": "بلوچی", "ban": "بالیایی", "bar": "باواریایی", "bas": "باسایی", "bax": "بمونی", "be": "بلاروسی", "bej": "بجایی", "bem": "بمبایی", "bez": "بنایی", "bg": "بلغاری", "bgn": "بلوچی غربی", "bho": "بوجپوری", "bi": "بیسلاما", "bik": "بیکولی", "bin": "بینی", "bla": "سیکسیکا", "bm": "بامبارایی", "bn": "بنگالی", "bo": "تبتی", "bqi": "لری بختیاری", "br": "برتون", "bra": "براج", "brh": "براهویی", "brx": "بودویی", "bs": "بوسنیایی", "bua": "بوریاتی", "bug": "بوگیایی", "byn": "بلین", "ca": "کاتالان", "cad": "کادویی", "car": "کاریبی", "ccp": "چاکما", "ce": "چچنی", "ceb": "سبویی", "cgg": "چیگا", "ch": "چامورویی", "chb": "چیبچا", "chg": "جغتایی", "chk": "چوکی", "chm": "ماریایی", "cho": "چوکتویی", "chp": "چیپه‌ویه‌ای", "chr": "چروکیایی", "chy": "شایانی", "ckb": "کردی مرکزی", "co": "کورسی", "cop": "قبطی", "cr": "کریایی", "crh": "ترکی کریمه", "crs": "سیشل آمیختهٔ فرانسوی", "cs": "چکی", "csb": "کاشوبی", "cu": "اسلاوی کلیسایی", "cv": "چوواشی", "cy": "ولزی", "da": "دانمارکی", "dak": "داکوتایی", "dar": "دارقینی", "dav": "تایتا", "de": "آلمانی", "de-AT": "آلمانی اتریش", "de-CH": "آلمانی معیار سوئیس", "del": "دلاواری", "dgr": "دوگریب", "din": "دینکایی", "dje": "زرما", "doi": "دوگری", "dsb": "صُربی سفلی", "dua": "دوآلایی", "dum": "هلندی میانه", "dv": "دیوهی", "dyo": "دیولا فونی", "dyu": "دایولایی", "dz": "دزونگخا", "dzg": "دازاگایی", "ebu": "امبو", "ee": "اوه‌ای", "efi": "افیکی", "egy": "مصری کهن", "eka": "اکاجوک", "el": "یونانی", "elx": "عیلامی", "en": "انگلیسی", "en-AU": "انگلیسی استرالیا", "en-CA": "انگلیسی کانادا", "en-GB": "انگلیسی بریتانیا", "en-US": "انگلیسی امریکا", "enm": "انگلیسی میانه", "eo": "اسپرانتو", "es": "اسپانیایی", "es-419": "اسپانیایی امریکای لاتین", "es-ES": "اسپانیایی اروپا", "es-MX": "اسپانیایی مکزیک", "et": "استونیایی", "eu": "باسکی", "ewo": "اواندو", "fa": "فارسی", "fa-AF": "دری", "fan": "فانگی", "fat": "فانتیایی", "ff": "فولانی", "fi": "فنلاندی", "fil": "فیلیپینی", "fj": "فیجیایی", "fo": "فارویی", "fon": "فونی", "fr": "فرانسوی", "fr-CA": "فرانسوی کانادا", "fr-CH": "فرانسوی سوئیس", "frc": "فرانسوی کادین", "frm": "فرانسوی میانه", "fro": "فرانسوی باستان", "frr": "فریزی شمالی", "frs": "فریزی شرقی", "fur": "فریولیایی", "fy": "فریزی غربی", "ga": "ایرلندی", "gaa": "گایی", "gag": "گاگائوزیایی", "gay": "گایویی", "gba": "گبایایی", "gbz": "دری زرتشتی", "gd": "گیلی اسکاتلندی", "gez": "گی‌ئزی", "gil": "گیلبرتی", "gl": "گالیسیایی", "glk": "گیلکی", "gmh": "آلمانی معیار میانه", "gn": "گوارانی", "goh": "آلمانی علیای باستان", "gon": "گوندی", "gor": "گورونتالو", "got": "گوتی", "grb": "گریبویی", "grc": "یونانی کهن", "gsw": "آلمانی سوئیسی", "gu": "گجراتی", "guz": "گوسی", "gv": "مانی", "gwi": "گویچ این", "ha": "هوسیایی", "hai": "هایدایی", "haw": "هاوائیایی", "he": "عبری", "hi": "هندی", "hif": "هندی فیجیایی", "hil": "هیلی‌گاینونی", "hit": "هیتی", "hmn": "همونگ", "ho": "موتویی هیری", "hr": "کروات", "hsb": "صُربی علیا", "ht": "هائیتیایی", "hu": "مجاری", "hup": "هوپا", "hy": "ارمنی", "hz": "هریرویی", "ia": "میان‌زبان", "iba": "ایبانی", "ibb": "ایبیبیو", "id": "اندونزیایی", "ie": "اکسیدنتال", "ig": "ایگبویی", "ii": "یی سیچوان", "ik": "اینوپیک", "ilo": "ایلوکویی", "inh": "اینگوشی", "io": "ایدو", "is": "ایسلندی", "it": "ایتالیایی", "iu": "اینوکتیتوت", "ja": "ژاپنی", "jbo": "لوجبان", "jgo": "نگومبا", "jmc": "ماچامه‌ای", "jpr": "فارسی یهودی", "jrb": "عربی یهودی", "jv": "جاوه‌ای", "ka": "گرجی", "kaa": "قره‌قالپاقی", "kab": "قبایلی", "kac": "کاچینی", "kaj": "جو", "kam": "کامبایی", "kaw": "کاویایی", "kbd": "کاباردینی", "kcg": "تیاپی", "kde": "ماکونده", "kea": "کابووردیانو", "kfo": "کورو", "kg": "کنگویی", "kha": "خاسیایی", "kho": "ختنی", "khq": "کوجراچینی", "khw": "کهوار", "ki": "کیکویویی", "kiu": "کرمانجی", "kj": "کوانیاما", "kk": "قزاقی", "kkj": "کاکایی", "kl": "گرینلندی", "kln": "کالنجین", "km": "خمری", "kmb": "کیمبوندویی", "kn": "کانارا", "ko": "کره‌ای", "koi": "کومی پرمیاک", "kok": "کنکانی", "kpe": "کپله‌ای", "kr": "کانوریایی", "krc": "قره‌چایی‐بالکاری", "krl": "کاریلیانی", "kru": "کوروخی", "ks": "کشمیری", "ksb": "شامبالا", "ksf": "بافیایی", "ksh": "ریپواری", "ku": "کردی", "kum": "کومیکی", "kut": "کوتنی", "kv": "کومیایی", "kw": "کرنوالی", "ky": "قرقیزی", "la": "لاتین", "lad": "لادینو", "lag": "لانگی", "lah": "لاهندا", "lam": "لامبا", "lb": "لوگزامبورگی", "lez": "لزگی", "lg": "گاندایی", "li": "لیمبورگی", "lkt": "لاکوتا", "ln": "لینگالا", "lo": "لائوسی", "lol": "مونگویی", "lou": "زبان آمیختهٔ مادری لوئیزیانا", "loz": "لوزیایی", "lrc": "لری شمالی", "lt": "لیتوانیایی", "lu": "لوبایی‐کاتانگا", "lua": "لوبایی‐لولوا", "lui": "لویسنو", "lun": "لوندایی", "luo": "لوئویی", "lus": "لوشه‌ای", "luy": "لویا", "lv": "لتونیایی", "lzh": "چینی ادبی", "mad": "مادورایی", "mag": "ماگاهیایی", "mai": "مایدیلی", "mak": "ماکاسار", "man": "ماندینگویی", "mas": "ماسایی", "mdf": "مکشایی", "mdr": "ماندار", "men": "منده‌ای", "mer": "مرویی", "mfe": "موریسین", "mg": "مالاگاسیایی", "mga": "ایرلندی میانه", "mgh": "ماکوا متو", "mgo": "متایی", "mh": "مارشالی", "mi": "مائوریایی", "mic": "میکماکی", "min": "مینانگ‌کابویی", "mk": "مقدونی", "ml": "مالایالامی", "mn": "مغولی", "mnc": "مانچویی", "mni": "میته‌ای", "moh": "موهاکی", "mos": "ماسیایی", "mr": "مراتی", "ms": "مالایی", "mt": "مالتی", "mua": "ماندانگی", "mus": "کریکی", "mwl": "میراندی", "mwr": "مارواری", "my": "برمه‌ای", "myv": "ارزیایی", "mzn": "مازندرانی", "na": "نائورویی", "nap": "ناپلی", "naq": "نامایی", "nb": "نروژی بوک‌مُل", "nd": "انده‌بله‌ای شمالی", "nds": "آلمانی سفلی", "nds-NL": "ساکسونی سفلی", "ne": "نپالی", "new": "نواریایی", "ng": "اندونگایی", "nia": "نیاسی", "niu": "نیویی", "nl": "هلندی", "nl-BE": "فلمنگی", "nmg": "کوازیو", "nn": "نروژی نی‌نُشک", "nnh": "انگیمبونی", "no": "نروژی", "nog": "نغایی", "non": "نرس باستان", "nqo": "نکو", "nr": "انده‌بله‌ای جنوبی", "nso": "سوتویی شمالی", "nus": "نویر", "nv": "ناواهویی", "nwc": "نواریایی کلاسیک", "ny": "نیانجایی", "nym": "نیام‌وزیایی", "nyn": "نیانکوله‌ای", "nyo": "نیورویی", "nzi": "نزیمایی", "oc": "اکسیتان", "oj": "اوجیبوایی", "om": "اورومویی", "or": "اوریه‌ای", "os": "آسی", "osa": "اوسیجی", "ota": "ترکی عثمانی", "pa": "پنجابی", "pag": "پانگاسینانی", "pal": "پهلوی", "pam": "پامپانگایی", "pap": "پاپیامنتو", "pau": "پالائویی", "pcm": "نیم‌زبان نیجریه‌ای", "pdc": "آلمانی پنسیلوانیایی", "peo": "فارسی باستان", "phn": "فنیقی", "pi": "پالی", "pl": "لهستانی", "pon": "پانپیی", "prg": "پروسی", "pro": "پرووانسی باستان", "ps": "پشتو", "pt": "پرتغالی", "pt-BR": "پرتغالی برزیل", "pt-PT": "پرتغالی اروپا", "qu": "کچوایی", "quc": "کیچه‌", "raj": "راجستانی", "rap": "راپانویی", "rar": "راروتونگایی", "rm": "رومانش", "rn": "روندیایی", "ro": "رومانیایی", "ro-MD": "مولداویایی", "rof": "رومبویی", "rom": "رومانویی", "root": "ریشه", "ru": "روسی", "rup": "آرومانی", "rw": "کینیارواندایی", "rwk": "روایی", "sa": "سانسکریت", "sad": "سانداوه‌ای", "sah": "یاقوتی", "sam": "آرامی سامری", "saq": "سامبورو", "sas": "ساساکی", "sat": "سانتالی", "sba": "انگامبایی", "sbp": "سانگویی", "sc": "ساردینیایی", "scn": "سیسیلی", "sco": "اسکاتلندی", "sd": "سندی", "sdh": "کردی جنوبی", "se": "سامی شمالی", "seh": "سنا", "sel": "سلکوپی", "ses": "کویرابورا سنی", "sg": "سانگو", "sga": "ایرلندی باستان", "sh": "صرب و کرواتی", "shi": "تاچل‌هیت", "shn": "شانی", "shu": "عربی چادی", "si": "سینهالی", "sid": "سیدامویی", "sk": "اسلواکی", "sl": "اسلوونیایی", "sli": "سیلزیایی سفلی", "sm": "ساموآیی", "sma": "سامی جنوبی", "smj": "لوله سامی", "smn": "ایناری سامی", "sms": "اسکولت سامی", "sn": "شونایی", "snk": "سونینکه‌ای", "so": "سومالیایی", "sog": "سغدی", "sq": "آلبانیایی", "sr": "صربی", "srn": "تاکی‌تاکی", "srr": "سریری", "ss": "سوازیایی", "ssy": "ساهو", "st": "سوتویی جنوبی", "su": "سوندایی", "suk": "سوکومایی", "sus": "سوسویی", "sux": "سومری", "sv": "سوئدی", "sw": "سواحیلی", "sw-CD": "سواحیلی کنگو", "swb": "کوموری", "syc": "سریانی کلاسیک", "syr": "سریانی", "szl": "سیلزیایی", "ta": "تامیلی", "te": "تلوگویی", "tem": "تمنه‌ای", "teo": "تسویی", "ter": "ترنو", "tet": "تتومی", "tg": "تاجیکی", "th": "تایلندی", "ti": "تیگرینیایی", "tig": "تیگره‌ای", "tiv": "تیوی", "tk": "ترکمنی", "tl": "تاگالوگی", "tlh": "کلینگون", "tli": "تلین‌گیتی", "tmh": "تاماشقی", "tn": "تسوانایی", "to": "تونگایی", "tog": "تونگایی نیاسا", "tpi": "توک‌پیسینی", "tr": "ترکی استانبولی", "trv": "تاروکویی", "ts": "تسونگایی", "tsi": "تسیم‌شیانی", "tt": "تاتاری", "tum": "تومبوکایی", "tvl": "تووالویی", "tw": "توی‌یایی", "twq": "تسواکی", "ty": "تاهیتیایی", "tyv": "تووایی", "tzm": "آمازیغی اطلس مرکزی", "udm": "اودمورتی", "ug": "اویغوری", "uga": "اوگاریتی", "uk": "اوکراینی", "umb": "امبوندویی", "ur": "اردو", "uz": "ازبکی", "vai": "ویایی", "ve": "وندایی", "vi": "ویتنامی", "vo": "ولاپوک", "vot": "وتی", "vun": "ونجو", "wa": "والونی", "wae": "والسر", "wal": "والامو", "war": "وارایی", "was": "واشویی", "wbp": "وارلپیری", "wo": "ولوفی", "xal": "قلموقی", "xh": "خوسایی", "xog": "سوگایی", "yao": "یائویی", "yap": "یاپی", "yav": "یانگبنی", "ybb": "یمبایی", "yi": "یدی", "yo": "یوروبایی", "yue": "کانتونی", "za": "چوانگی", "zap": "زاپوتکی", "zen": "زناگا", "zgh": "آمازیغی معیار مراکش", "zh": "چینی", "zh-Hans": "چینی ساده‌شده", "zh-Hant": "چینی سنتی", "zu": "زولویی", "zun": "زونیایی", "zza": "زازایی"}}, - "fi": {"rtl": false, "languageNames": {"aa": "afar", "ab": "abhaasi", "ace": "atšeh", "ach": "atšoli", "ada": "adangme", "ady": "adyge", "ae": "avesta", "aeb": "tunisianarabia", "af": "afrikaans", "afh": "afrihili", "agq": "aghem", "ain": "ainu", "ak": "akan", "akk": "akkadi", "akz": "alabama", "ale": "aleutti", "aln": "gegi", "alt": "altai", "am": "amhara", "an": "aragonia", "ang": "muinaisenglanti", "anp": "angika", "ar": "arabia", "ar-001": "yleisarabia", "arc": "valtakunnanaramea", "arn": "mapudungun", "aro": "araona", "arp": "arapaho", "arq": "algerianarabia", "ars": "arabia – najd", "arw": "arawak", "ary": "marokonarabia", "arz": "egyptinarabia", "as": "assami", "asa": "asu", "ase": "amerikkalainen viittomakieli", "ast": "asturia", "av": "avaari", "avk": "kotava", "awa": "awadhi", "ay": "aimara", "az": "azeri", "ba": "baškiiri", "bal": "belutši", "ban": "bali", "bar": "baijeri", "bas": "basaa", "bax": "bamum", "bbc": "batak-toba", "bbj": "ghomala", "be": "valkovenäjä", "bej": "bedža", "bem": "bemba", "bew": "betawi", "bez": "bena", "bfd": "fut", "bfq": "badaga", "bg": "bulgaria", "bgn": "länsibelutši", "bho": "bhodžpuri", "bi": "bislama", "bik": "bikol", "bin": "bini", "bjn": "banjar", "bkm": "kom", "bla": "siksika", "bm": "bambara", "bn": "bengali", "bo": "tiibet", "bpy": "bišnupria", "bqi": "bahtiari", "br": "bretoni", "bra": "bradž", "brh": "brahui", "brx": "bodo", "bs": "bosnia", "bss": "koose", "bua": "burjaatti", "bug": "bugi", "bum": "bulu", "byn": "bilin", "byv": "medumba", "ca": "katalaani", "cad": "caddo", "car": "karibi", "cay": "cayuga", "cch": "atsam", "ccp": "chakma", "ce": "tšetšeeni", "ceb": "cebuano", "cgg": "kiga", "ch": "tšamorro", "chb": "tšibtša", "chg": "tšagatai", "chk": "chuuk", "chm": "mari", "chn": "chinook-jargon", "cho": "choctaw", "chp": "chipewyan", "chr": "cherokee", "chy": "cheyenne", "ckb": "sorani", "co": "korsika", "cop": "kopti", "cps": "capiznon", "cr": "cree", "crh": "krimintataari", "crs": "seychellienkreoli", "cs": "tšekki", "csb": "kašubi", "cu": "kirkkoslaavi", "cv": "tšuvassi", "cy": "kymri", "da": "tanska", "dak": "dakota", "dar": "dargi", "dav": "taita", "de": "saksa", "de-AT": "itävallansaksa", "de-CH": "sveitsinyläsaksa", "del": "delaware", "den": "slevi", "dgr": "dogrib", "din": "dinka", "dje": "djerma", "doi": "dogri", "dsb": "alasorbi", "dtp": "dusun", "dua": "duala", "dum": "keskihollanti", "dv": "divehi", "dyo": "jola-fonyi", "dyu": "djula", "dz": "dzongkha", "dzg": "dazaga", "ebu": "embu", "ee": "ewe", "efi": "efik", "egl": "emilia", "egy": "muinaisegypti", "eka": "ekajuk", "el": "kreikka", "elx": "elami", "en": "englanti", "en-AU": "australianenglanti", "en-CA": "kanadanenglanti", "en-GB": "britannianenglanti", "en-US": "amerikanenglanti", "enm": "keskienglanti", "eo": "esperanto", "es": "espanja", "es-419": "amerikanespanja", "es-ES": "euroopanespanja", "es-MX": "meksikonespanja", "esu": "alaskanjupik", "et": "viro", "eu": "baski", "ewo": "ewondo", "ext": "extremadura", "fa": "persia", "fan": "fang", "fat": "fanti", "ff": "fulani", "fi": "suomi", "fil": "filipino", "fit": "meänkieli", "fj": "fidži", "fo": "fääri", "fr": "ranska", "fr-CA": "kanadanranska", "fr-CH": "sveitsinranska", "frc": "cajunranska", "frm": "keskiranska", "fro": "muinaisranska", "frp": "arpitaani", "frr": "pohjoisfriisi", "frs": "itäfriisi", "fur": "friuli", "fy": "länsifriisi", "ga": "iiri", "gaa": "ga", "gag": "gagauzi", "gan": "gan-kiina", "gay": "gajo", "gba": "gbaja", "gbz": "zoroastrialaisdari", "gd": "gaeli", "gez": "ge’ez", "gil": "kiribati", "gl": "galicia", "glk": "gilaki", "gmh": "keskiyläsaksa", "gn": "guarani", "goh": "muinaisyläsaksa", "gom": "goankonkani", "gon": "gondi", "gor": "gorontalo", "got": "gootti", "grb": "grebo", "grc": "muinaiskreikka", "gsw": "sveitsinsaksa", "gu": "gudžarati", "guc": "wayuu", "gur": "frafra", "guz": "gusii", "gv": "manksi", "gwi": "gwitšin", "ha": "hausa", "hai": "haida", "hak": "hakka-kiina", "haw": "havaiji", "he": "heprea", "hi": "hindi", "hif": "fidžinhindi", "hil": "hiligaino", "hit": "heetti", "hmn": "hmong", "ho": "hiri-motu", "hr": "kroatia", "hsb": "yläsorbi", "hsn": "xiang-kiina", "ht": "haiti", "hu": "unkari", "hup": "hupa", "hy": "armenia", "hz": "herero", "ia": "interlingua", "iba": "iban", "ibb": "ibibio", "id": "indonesia", "ie": "interlingue", "ig": "igbo", "ii": "sichuanin-yi", "ik": "inupiaq", "ilo": "iloko", "inh": "inguuši", "io": "ido", "is": "islanti", "it": "italia", "iu": "inuktitut", "izh": "inkeroinen", "ja": "japani", "jam": "jamaikankreolienglanti", "jbo": "lojban", "jgo": "ngomba", "jmc": "machame", "jpr": "juutalaispersia", "jrb": "juutalaisarabia", "jut": "juutti", "jv": "jaava", "ka": "georgia", "kaa": "karakalpakki", "kab": "kabyyli", "kac": "katšin", "kaj": "jju", "kam": "kamba", "kaw": "kavi", "kbd": "kabardi", "kbl": "kanembu", "kcg": "tyap", "kde": "makonde", "kea": "kapverdenkreoli", "ken": "kenyang", "kfo": "norsunluurannikonkoro", "kg": "kongo", "kgp": "kaingang", "kha": "khasi", "kho": "khotani", "khq": "koyra chiini", "khw": "khowar", "ki": "kikuju", "kiu": "kirmanjki", "kj": "kuanjama", "kk": "kazakki", "kkj": "kako", "kl": "kalaallisut", "kln": "kalenjin", "km": "khmer", "kmb": "kimbundu", "kn": "kannada", "ko": "korea", "koi": "komipermjakki", "kok": "konkani", "kos": "kosrae", "kpe": "kpelle", "kr": "kanuri", "krc": "karatšai-balkaari", "kri": "krio", "krj": "kinaray-a", "krl": "karjala", "kru": "kurukh", "ks": "kašmiri", "ksb": "shambala", "ksf": "bafia", "ksh": "kölsch", "ku": "kurdi", "kum": "kumykki", "kut": "kutenai", "kv": "komi", "kw": "korni", "ky": "kirgiisi", "la": "latina", "lad": "ladino", "lag": "lango", "lah": "lahnda", "lam": "lamba", "lb": "luxemburg", "lez": "lezgi", "lfn": "lingua franca nova", "lg": "ganda", "li": "limburg", "lij": "liguuri", "liv": "liivi", "lkt": "lakota", "lmo": "lombardi", "ln": "lingala", "lo": "lao", "lol": "mongo", "lou": "louisianankreoli", "loz": "lozi", "lrc": "pohjoisluri", "lt": "liettua", "ltg": "latgalli", "lu": "katanganluba", "lua": "luluanluba", "lui": "luiseño", "lun": "lunda", "lus": "lusai", "luy": "luhya", "lv": "latvia", "lzh": "klassinen kiina", "lzz": "lazi", "mad": "madura", "maf": "mafa", "mag": "magahi", "mai": "maithili", "mak": "makassar", "man": "mandingo", "mas": "maasai", "mde": "maba", "mdf": "mokša", "mdr": "mandar", "men": "mende", "mer": "meru", "mfe": "morisyen", "mg": "malagassi", "mga": "keski-iiri", "mgh": "makua-meetto", "mgo": "meta’", "mh": "marshall", "mi": "maori", "mic": "micmac", "min": "minangkabau", "mk": "makedonia", "ml": "malajalam", "mn": "mongoli", "mnc": "mantšu", "mni": "manipuri", "moh": "mohawk", "mos": "mossi", "mr": "marathi", "mrj": "vuorimari", "ms": "malaiji", "mt": "malta", "mua": "mundang", "mus": "creek", "mwl": "mirandeesi", "mwr": "marwari", "mwv": "mentawai", "my": "burma", "mye": "myene", "myv": "ersä", "mzn": "mazandarani", "na": "nauru", "nan": "min nan -kiina", "nap": "napoli", "naq": "nama", "nb": "norjan bokmål", "nd": "pohjois-ndebele", "nds": "alasaksa", "nds-NL": "alankomaidenalasaksa", "ne": "nepali", "new": "newari", "ng": "ndonga", "nia": "nias", "niu": "niue", "njo": "ao naga", "nl": "hollanti", "nl-BE": "flaami", "nmg": "kwasio", "nn": "norjan nynorsk", "nnh": "ngiemboon", "no": "norja", "nog": "nogai", "non": "muinaisnorja", "nov": "novial", "nqo": "n’ko", "nr": "etelä-ndebele", "nso": "pohjoissotho", "nus": "nuer", "nv": "navajo", "nwc": "klassinen newari", "ny": "njandža", "nym": "nyamwezi", "nyn": "nyankole", "nyo": "nyoro", "nzi": "nzima", "oc": "oksitaani", "oj": "odžibwa", "om": "oromo", "or": "orija", "os": "osseetti", "osa": "osage", "ota": "osmani", "pa": "pandžabi", "pag": "pangasinan", "pal": "pahlavi", "pam": "pampanga", "pap": "papiamentu", "pau": "palau", "pcd": "picardi", "pcm": "nigerianpidgin", "pdc": "pennsylvaniansaksa", "pdt": "plautdietsch", "peo": "muinaispersia", "pfl": "pfaltsi", "phn": "foinikia", "pi": "paali", "pl": "puola", "pms": "piemonte", "pnt": "pontoksenkreikka", "pon": "pohnpei", "prg": "muinaispreussi", "pro": "muinaisprovensaali", "ps": "paštu", "pt": "portugali", "pt-BR": "brasilianportugali", "pt-PT": "euroopanportugali", "qu": "ketšua", "quc": "kʼicheʼ", "qug": "chimborazonylänköketšua", "raj": "radžastani", "rap": "rapanui", "rar": "rarotonga", "rgn": "romagnoli", "rif": "tarifit", "rm": "retoromaani", "rn": "rundi", "ro": "romania", "ro-MD": "moldova", "rof": "rombo", "rom": "romani", "root": "juuri", "rtm": "rotuma", "ru": "venäjä", "rue": "ruteeni", "rug": "roviana", "rup": "aromania", "rw": "ruanda", "rwk": "rwa", "sa": "sanskrit", "sad": "sandawe", "sah": "jakuutti", "sam": "samarianaramea", "saq": "samburu", "sas": "sasak", "sat": "santali", "saz": "sauraštri", "sba": "ngambay", "sbp": "sangu", "sc": "sardi", "scn": "sisilia", "sco": "skotti", "sd": "sindhi", "sdc": "sassarinsardi", "sdh": "eteläkurdi", "se": "pohjoissaame", "see": "seneca", "seh": "sena", "sei": "seri", "sel": "selkuppi", "ses": "koyraboro senni", "sg": "sango", "sga": "muinaisiiri", "sgs": "samogiitti", "sh": "serbokroaatti", "shi": "tašelhit", "shn": "shan", "shu": "tšadinarabia", "si": "sinhala", "sid": "sidamo", "sk": "slovakki", "sl": "sloveeni", "sli": "sleesiansaksa", "sly": "selayar", "sm": "samoa", "sma": "eteläsaame", "smj": "luulajansaame", "smn": "inarinsaame", "sms": "koltansaame", "sn": "šona", "snk": "soninke", "so": "somali", "sog": "sogdi", "sq": "albania", "sr": "serbia", "srn": "sranan", "srr": "serer", "ss": "swazi", "ssy": "saho", "st": "eteläsotho", "stq": "saterlandinfriisi", "su": "sunda", "suk": "sukuma", "sus": "susu", "sux": "sumeri", "sv": "ruotsi", "sw": "swahili", "sw-CD": "kingwana", "swb": "komori", "syc": "muinaissyyria", "syr": "syyria", "szl": "sleesia", "ta": "tamili", "tcy": "tulu", "te": "telugu", "tem": "temne", "teo": "teso", "ter": "tereno", "tet": "tetum", "tg": "tadžikki", "th": "thai", "ti": "tigrinja", "tig": "tigre", "tk": "turkmeeni", "tkl": "tokelau", "tkr": "tsahuri", "tl": "tagalog", "tlh": "klingon", "tli": "tlingit", "tly": "tališi", "tmh": "tamašek", "tn": "tswana", "to": "tonga", "tog": "malawintonga", "tpi": "tok-pisin", "tr": "turkki", "tru": "turojo", "trv": "taroko", "ts": "tsonga", "tsd": "tsakonia", "tsi": "tsimši", "tt": "tataari", "ttt": "tati", "tum": "tumbuka", "tvl": "tuvalu", "tw": "twi", "twq": "tasawaq", "ty": "tahiti", "tyv": "tuva", "tzm": "keskiatlaksentamazight", "udm": "udmurtti", "ug": "uiguuri", "uga": "ugarit", "uk": "ukraina", "umb": "mbundu", "ur": "urdu", "uz": "uzbekki", "ve": "venda", "vec": "venetsia", "vep": "vepsä", "vi": "vietnam", "vls": "länsiflaami", "vmf": "maininfrankki", "vo": "volapük", "vot": "vatja", "vro": "võro", "vun": "vunjo", "wa": "valloni", "wae": "walser", "wal": "wolaitta", "war": "waray", "was": "washo", "wbp": "warlpiri", "wo": "wolof", "wuu": "wu-kiina", "xal": "kalmukki", "xh": "xhosa", "xmf": "mingreli", "xog": "soga", "yao": "jao", "yap": "japi", "yav": "yangben", "ybb": "yemba", "yi": "jiddiš", "yo": "joruba", "yrl": "ñeengatú", "yue": "kantoninkiina", "za": "zhuang", "zap": "zapoteekki", "zbl": "blisskieli", "zea": "seelanti", "zen": "zenaga", "zgh": "vakioitu tamazight", "zh": "kiina", "zh-Hans": "yksinkertaistettu kiina", "zh-Hant": "perinteinen kiina", "zu": "zulu", "zun": "zuni", "zza": "zaza"}}, - "fr": {"rtl": false, "languageNames": {"aa": "afar", "ab": "abkhaze", "ace": "aceh", "ach": "acoli", "ada": "adangme", "ady": "adyguéen", "ae": "avestique", "aeb": "arabe tunisien", "af": "afrikaans", "afh": "afrihili", "agq": "aghem", "ain": "aïnou", "ak": "akan", "akk": "akkadien", "akz": "alabama", "ale": "aléoute", "aln": "guègue", "alt": "altaï du Sud", "am": "amharique", "an": "aragonais", "ang": "ancien anglais", "anp": "angika", "ar": "arabe", "ar-001": "arabe standard moderne", "arc": "araméen", "arn": "mapuche", "aro": "araona", "arp": "arapaho", "arq": "arabe algérien", "ars": "arabe najdi", "arw": "arawak", "ary": "arabe marocain", "arz": "arabe égyptien", "as": "assamais", "asa": "asu", "ase": "langue des signes américaine", "ast": "asturien", "av": "avar", "avk": "kotava", "awa": "awadhi", "ay": "aymara", "az": "azéri", "ba": "bachkir", "bal": "baloutchi", "ban": "balinais", "bar": "bavarois", "bas": "bassa", "bax": "bamoun", "bbc": "batak toba", "bbj": "ghomalaʼ", "be": "biélorusse", "bej": "bedja", "bem": "bemba", "bew": "betawi", "bez": "béna", "bfd": "bafut", "bfq": "badaga", "bg": "bulgare", "bgn": "baloutchi occidental", "bho": "bhodjpouri", "bi": "bichelamar", "bik": "bikol", "bin": "bini", "bjn": "banjar", "bkm": "kom", "bla": "siksika", "bm": "bambara", "bn": "bengali", "bo": "tibétain", "bpy": "bishnupriya", "bqi": "bakhtiari", "br": "breton", "bra": "braj", "brh": "brahoui", "brx": "bodo", "bs": "bosniaque", "bss": "akoose", "bua": "bouriate", "bug": "bugi", "bum": "boulou", "byn": "blin", "byv": "médumba", "ca": "catalan", "cad": "caddo", "car": "caribe", "cay": "cayuga", "cch": "atsam", "ccp": "changma kodha", "ce": "tchétchène", "ceb": "cebuano", "cgg": "kiga", "ch": "chamorro", "chb": "chibcha", "chg": "tchaghataï", "chk": "chuuk", "chm": "mari", "chn": "jargon chinook", "cho": "choctaw", "chp": "chipewyan", "chr": "cherokee", "chy": "cheyenne", "ckb": "sorani", "co": "corse", "cop": "copte", "cps": "capiznon", "cr": "cree", "crh": "turc de Crimée", "crs": "créole seychellois", "cs": "tchèque", "csb": "kachoube", "cu": "slavon d’église", "cv": "tchouvache", "cy": "gallois", "da": "danois", "dak": "dakota", "dar": "dargwa", "dav": "taita", "de": "allemand", "de-AT": "allemand autrichien", "de-CH": "allemand suisse", "del": "delaware", "den": "esclave", "dgr": "dogrib", "din": "dinka", "dje": "zarma", "doi": "dogri", "dsb": "bas-sorabe", "dtp": "dusun central", "dua": "douala", "dum": "moyen néerlandais", "dv": "maldivien", "dyo": "diola-fogny", "dyu": "dioula", "dz": "dzongkha", "dzg": "dazaga", "ebu": "embou", "ee": "éwé", "efi": "éfik", "egl": "émilien", "egy": "égyptien ancien", "eka": "ékadjouk", "el": "grec", "elx": "élamite", "en": "anglais", "en-AU": "anglais australien", "en-CA": "anglais canadien", "en-GB": "anglais britannique", "en-US": "anglais américain", "enm": "moyen anglais", "eo": "espéranto", "es": "espagnol", "es-419": "espagnol d’Amérique latine", "es-ES": "espagnol d’Espagne", "es-MX": "espagnol du Mexique", "esu": "youpik central", "et": "estonien", "eu": "basque", "ewo": "éwondo", "ext": "estrémègne", "fa": "persan", "fan": "fang", "fat": "fanti", "ff": "peul", "fi": "finnois", "fil": "filipino", "fit": "finnois tornédalien", "fj": "fidjien", "fo": "féroïen", "fr": "français", "fr-CA": "français canadien", "fr-CH": "français suisse", "frc": "français cadien", "frm": "moyen français", "fro": "ancien français", "frp": "francoprovençal", "frr": "frison du Nord", "frs": "frison oriental", "fur": "frioulan", "fy": "frison occidental", "ga": "irlandais", "gaa": "ga", "gag": "gagaouze", "gay": "gayo", "gba": "gbaya", "gbz": "dari zoroastrien", "gd": "gaélique écossais", "gez": "guèze", "gil": "gilbertin", "gl": "galicien", "glk": "gilaki", "gmh": "moyen haut-allemand", "gn": "guarani", "goh": "ancien haut allemand", "gom": "konkani de Goa", "gon": "gondi", "gor": "gorontalo", "got": "gotique", "grb": "grebo", "grc": "grec ancien", "gsw": "suisse allemand", "gu": "goudjerati", "guc": "wayuu", "gur": "gurenne", "guz": "gusii", "gv": "mannois", "gwi": "gwichʼin", "ha": "haoussa", "hai": "haida", "hak": "hakka", "haw": "hawaïen", "he": "hébreu", "hi": "hindi", "hif": "hindi fidjien", "hil": "hiligaynon", "hit": "hittite", "hmn": "hmong", "ho": "hiri motu", "hr": "croate", "hsb": "haut-sorabe", "hsn": "xiang", "ht": "créole haïtien", "hu": "hongrois", "hup": "hupa", "hy": "arménien", "hz": "héréro", "ia": "interlingua", "iba": "iban", "ibb": "ibibio", "id": "indonésien", "ie": "interlingue", "ig": "igbo", "ii": "yi du Sichuan", "ik": "inupiaq", "ilo": "ilocano", "inh": "ingouche", "io": "ido", "is": "islandais", "it": "italien", "iu": "inuktitut", "izh": "ingrien", "ja": "japonais", "jam": "créole jamaïcain", "jbo": "lojban", "jgo": "ngomba", "jmc": "matchamé", "jpr": "judéo-persan", "jrb": "judéo-arabe", "jut": "jute", "jv": "javanais", "ka": "géorgien", "kaa": "karakalpak", "kab": "kabyle", "kac": "kachin", "kaj": "jju", "kam": "kamba", "kaw": "kawi", "kbd": "kabarde", "kbl": "kanembou", "kcg": "tyap", "kde": "makondé", "kea": "capverdien", "ken": "kényang", "kfo": "koro", "kg": "kikongo", "kgp": "caingangue", "kha": "khasi", "kho": "khotanais", "khq": "koyra chiini", "khw": "khowar", "ki": "kikuyu", "kiu": "kirmanjki", "kj": "kuanyama", "kk": "kazakh", "kkj": "kako", "kl": "groenlandais", "kln": "kalendjin", "km": "khmer", "kmb": "kimboundou", "kn": "kannada", "ko": "coréen", "koi": "komi-permiak", "kok": "konkani", "kos": "kosraéen", "kpe": "kpellé", "kr": "kanouri", "krc": "karatchaï balkar", "kri": "krio", "krj": "kinaray-a", "krl": "carélien", "kru": "kouroukh", "ks": "cachemiri", "ksb": "shambala", "ksf": "bafia", "ksh": "francique ripuaire", "ku": "kurde", "kum": "koumyk", "kut": "kutenai", "kv": "komi", "kw": "cornique", "ky": "kirghize", "la": "latin", "lad": "ladino", "lag": "langi", "lah": "lahnda", "lam": "lamba", "lb": "luxembourgeois", "lez": "lezghien", "lfn": "lingua franca nova", "lg": "ganda", "li": "limbourgeois", "lij": "ligure", "liv": "livonien", "lkt": "lakota", "lmo": "lombard", "ln": "lingala", "lo": "lao", "lol": "mongo", "lou": "créole louisianais", "loz": "lozi", "lrc": "lori du Nord", "lt": "lituanien", "ltg": "latgalien", "lu": "luba-katanga (kiluba)", "lua": "luba-kasaï (ciluba)", "lui": "luiseño", "lun": "lunda", "lus": "lushaï", "luy": "luyia", "lv": "letton", "lzh": "chinois littéraire", "lzz": "laze", "mad": "madurais", "maf": "mafa", "mag": "magahi", "mai": "maïthili", "mak": "makassar", "man": "mandingue", "mas": "maasaï", "mde": "maba", "mdf": "mokcha", "mdr": "mandar", "men": "mendé", "mer": "meru", "mfe": "créole mauricien", "mg": "malgache", "mga": "moyen irlandais", "mgh": "makua", "mgo": "metaʼ", "mh": "marshallais", "mi": "maori", "mic": "micmac", "min": "minangkabau", "mk": "macédonien", "ml": "malayalam", "mn": "mongol", "mnc": "mandchou", "mni": "manipuri", "moh": "mohawk", "mos": "moré", "mr": "marathi", "mrj": "mari occidental", "ms": "malais", "mt": "maltais", "mua": "moundang", "mus": "creek", "mwl": "mirandais", "mwr": "marwarî", "mwv": "mentawaï", "my": "birman", "mye": "myènè", "myv": "erzya", "mzn": "mazandérani", "na": "nauruan", "nan": "minnan", "nap": "napolitain", "naq": "nama", "nb": "norvégien bokmål", "nd": "ndébélé du Nord", "nds": "bas-allemand", "nds-NL": "bas-saxon néerlandais", "ne": "népalais", "new": "newari", "ng": "ndonga", "nia": "niha", "niu": "niuéen", "njo": "Ao", "nl": "néerlandais", "nl-BE": "flamand", "nmg": "ngoumba", "nn": "norvégien nynorsk", "nnh": "ngiemboon", "no": "norvégien", "nog": "nogaï", "non": "vieux norrois", "nov": "novial", "nqo": "n’ko", "nr": "ndébélé du Sud", "nso": "sotho du Nord", "nus": "nuer", "nv": "navajo", "nwc": "newarî classique", "ny": "chewa", "nym": "nyamwezi", "nyn": "nyankolé", "nyo": "nyoro", "nzi": "nzema", "oc": "occitan", "oj": "ojibwa", "om": "oromo", "or": "odia", "os": "ossète", "osa": "osage", "ota": "turc ottoman", "pa": "pendjabi", "pag": "pangasinan", "pal": "pahlavi", "pam": "pampangan", "pap": "papiamento", "pau": "palau", "pcd": "picard", "pcm": "pidgin nigérian", "pdc": "pennsilfaanisch", "pdt": "bas-prussien", "peo": "persan ancien", "pfl": "allemand palatin", "phn": "phénicien", "pi": "pali", "pl": "polonais", "pms": "piémontais", "pnt": "pontique", "pon": "pohnpei", "prg": "prussien", "pro": "provençal ancien", "ps": "pachto", "pt": "portugais", "pt-BR": "portugais brésilien", "pt-PT": "portugais européen", "qu": "quechua", "quc": "quiché", "qug": "quichua du Haut-Chimborazo", "raj": "rajasthani", "rap": "rapanui", "rar": "rarotongien", "rgn": "romagnol", "rif": "rifain", "rm": "romanche", "rn": "roundi", "ro": "roumain", "ro-MD": "moldave", "rof": "rombo", "rom": "romani", "root": "racine", "rtm": "rotuman", "ru": "russe", "rue": "ruthène", "rug": "roviana", "rup": "aroumain", "rw": "kinyarwanda", "rwk": "rwa", "sa": "sanskrit", "sad": "sandawe", "sah": "iakoute", "sam": "araméen samaritain", "saq": "samburu", "sas": "sasak", "sat": "santali", "saz": "saurashtra", "sba": "ngambay", "sbp": "isangu", "sc": "sarde", "scn": "sicilien", "sco": "écossais", "sd": "sindhi", "sdc": "sarde sassarais", "sdh": "kurde du Sud", "se": "same du Nord", "see": "seneca", "seh": "cisena", "sei": "séri", "sel": "selkoupe", "ses": "koyraboro senni", "sg": "sango", "sga": "ancien irlandais", "sgs": "samogitien", "sh": "serbo-croate", "shi": "chleuh", "shn": "shan", "shu": "arabe tchadien", "si": "cingalais", "sid": "sidamo", "sk": "slovaque", "sl": "slovène", "sli": "bas-silésien", "sly": "sélayar", "sm": "samoan", "sma": "same du Sud", "smj": "same de Lule", "smn": "same d’Inari", "sms": "same skolt", "sn": "shona", "snk": "soninké", "so": "somali", "sog": "sogdien", "sq": "albanais", "sr": "serbe", "srn": "sranan tongo", "srr": "sérère", "ss": "swati", "ssy": "saho", "st": "sotho du Sud", "stq": "saterlandais", "su": "soundanais", "suk": "soukouma", "sus": "soussou", "sux": "sumérien", "sv": "suédois", "sw": "swahili", "sw-CD": "swahili du Congo", "swb": "comorien", "syc": "syriaque classique", "syr": "syriaque", "szl": "silésien", "ta": "tamoul", "tcy": "toulou", "te": "télougou", "tem": "timné", "teo": "teso", "ter": "tereno", "tet": "tétoum", "tg": "tadjik", "th": "thaï", "ti": "tigrigna", "tig": "tigré", "tk": "turkmène", "tkl": "tokelau", "tkr": "tsakhour", "tl": "tagalog", "tlh": "klingon", "tli": "tlingit", "tly": "talysh", "tmh": "tamacheq", "tn": "tswana", "to": "tongien", "tog": "tonga nyasa", "tpi": "tok pisin", "tr": "turc", "tru": "touroyo", "trv": "taroko", "ts": "tsonga", "tsd": "tsakonien", "tsi": "tsimshian", "tt": "tatar", "ttt": "tati caucasien", "tum": "tumbuka", "tvl": "tuvalu", "tw": "twi", "twq": "tasawaq", "ty": "tahitien", "tyv": "touvain", "tzm": "amazighe de l’Atlas central", "udm": "oudmourte", "ug": "ouïghour", "uga": "ougaritique", "uk": "ukrainien", "umb": "umbundu", "ur": "ourdou", "uz": "ouzbek", "vai": "vaï", "ve": "venda", "vec": "vénitien", "vep": "vepse", "vi": "vietnamien", "vls": "flamand occidental", "vmf": "franconien du Main", "vo": "volapük", "vot": "vote", "vro": "võro", "vun": "vunjo", "wa": "wallon", "wae": "walser", "wal": "walamo", "war": "waray", "was": "washo", "wbp": "warlpiri", "wo": "wolof", "wuu": "wu", "xal": "kalmouk", "xh": "xhosa", "xmf": "mingrélien", "xog": "soga", "yap": "yapois", "yav": "yangben", "ybb": "yemba", "yi": "yiddish", "yo": "yoruba", "yrl": "nheengatou", "yue": "cantonais", "za": "zhuang", "zap": "zapotèque", "zbl": "symboles Bliss", "zea": "zélandais", "zen": "zenaga", "zgh": "amazighe standard marocain", "zh": "chinois", "zh-Hans": "chinois simplifié", "zh-Hant": "chinois traditionnel", "zu": "zoulou", "zun": "zuñi", "zza": "zazaki"}}, - "gan": {"rtl": false, "languageNames": {}}, - "gl": {"rtl": false, "languageNames": {"aa": "afar", "ab": "abkhazo", "ace": "achinés", "ach": "acholí", "ada": "adangme", "ady": "adigueo", "af": "afrikaans", "agq": "aghem", "ain": "ainu", "ak": "akan", "ale": "aleutiano", "alt": "altai meridional", "am": "amhárico", "an": "aragonés", "anp": "angika", "ar": "árabe", "ar-001": "árabe estándar moderno", "arc": "arameo", "arn": "mapuche", "arp": "arapaho", "as": "assamés", "asa": "asu", "ast": "asturiano", "av": "avar", "awa": "awadhi", "ay": "aimará", "az": "acerbaixano", "ba": "baxkir", "ban": "balinés", "bas": "basaa", "be": "bielorruso", "bem": "bemba", "bez": "bena", "bg": "búlgaro", "bgn": "baluchi occidental", "bho": "bhojpuri", "bi": "bislama", "bin": "bini", "bla": "siksiká", "bm": "bambara", "bn": "bengalí", "bo": "tibetano", "br": "bretón", "brx": "bodo", "bs": "bosníaco", "bug": "buginés", "byn": "blin", "ca": "catalán", "ce": "checheno", "ceb": "cebuano", "cgg": "kiga", "ch": "chamorro", "chk": "chuuk", "chm": "mari", "cho": "choctaw", "chr": "cherokee", "chy": "cheyenne", "ckb": "kurdo soraní", "co": "corso", "crs": "seselwa (crioulo das Seychelles)", "cs": "checo", "cu": "eslavo eclesiástico", "cv": "chuvaxo", "cy": "galés", "da": "dinamarqués", "dak": "dakota", "dar": "dargwa", "dav": "taita", "de": "alemán", "de-AT": "alemán austríaco", "de-CH": "alto alemán suízo", "dgr": "dogrib", "dje": "zarma", "dsb": "baixo sorbio", "dua": "duala", "dv": "divehi", "dyo": "jola-fonyi", "dz": "dzongkha", "dzg": "dazaga", "ebu": "embu", "ee": "ewe", "efi": "efik", "egy": "exipcio antigo", "eka": "ekajuk", "el": "grego", "en": "inglés", "en-AU": "inglés australiano", "en-CA": "inglés canadense", "en-GB": "inglés británico", "en-US": "inglés estadounidense", "eo": "esperanto", "es": "español", "es-419": "español de América", "es-ES": "español de España", "es-MX": "español de México", "et": "estoniano", "eu": "éuscaro", "ewo": "ewondo", "fa": "persa", "ff": "fula", "fi": "finés", "fil": "filipino", "fj": "fixiano", "fo": "feroés", "fr": "francés", "fr-CA": "francés canadense", "fr-CH": "francés suízo", "fur": "friulano", "fy": "frisón occidental", "ga": "irlandés", "gaa": "ga", "gag": "gagauz", "gd": "gaélico escocés", "gez": "ge’ez", "gil": "kiribatiano", "gl": "galego", "gn": "guaraní", "gor": "gorontalo", "grc": "grego antigo", "gsw": "alemán suízo", "gu": "guxarati", "guz": "gusii", "gv": "manx", "gwi": "gwichʼin", "ha": "hausa", "haw": "hawaiano", "he": "hebreo", "hi": "hindi", "hil": "hiligaynon", "hmn": "hmong", "hr": "croata", "hsb": "alto sorbio", "ht": "crioulo haitiano", "hu": "húngaro", "hup": "hupa", "hy": "armenio", "hz": "herero", "ia": "interlingua", "iba": "iban", "ibb": "ibibio", "id": "indonesio", "ig": "igbo", "ii": "yi sichuanés", "ilo": "ilocano", "inh": "inguxo", "io": "ido", "is": "islandés", "it": "italiano", "iu": "inuktitut", "ja": "xaponés", "jbo": "lojban", "jgo": "ngomba", "jmc": "machame", "jv": "xavanés", "ka": "xeorxiano", "kab": "cabila", "kac": "kachin", "kaj": "jju", "kam": "kamba", "kbd": "cabardiano", "kcg": "tyap", "kde": "makonde", "kea": "caboverdiano", "kfo": "koro", "kg": "kongo", "kha": "khasi", "khq": "koyra chiini", "ki": "kikuyu", "kj": "kuanyama", "kk": "casaco", "kkj": "kako", "kl": "groenlandés", "kln": "kalenjin", "km": "khmer", "kmb": "kimbundu", "kn": "kannará", "ko": "coreano", "koi": "komi permio", "kok": "konkani", "kpe": "kpelle", "kr": "kanuri", "krc": "carachaio-bálcara", "krl": "carelio", "kru": "kurukh", "ks": "caxemirés", "ksb": "shambala", "ksf": "bafia", "ksh": "kölsch", "ku": "kurdo", "kum": "kumyk", "kv": "komi", "kw": "córnico", "ky": "kirguiz", "la": "latín", "lad": "ladino", "lag": "langi", "lb": "luxemburgués", "lez": "lezguio", "lg": "ganda", "li": "limburgués", "lkt": "lakota", "ln": "lingala", "lo": "laosiano", "loz": "lozi", "lrc": "luri setentrional", "lt": "lituano", "lu": "luba-katanga", "lua": "luba-lulua", "lun": "lunda", "lus": "mizo", "luy": "luyia", "lv": "letón", "mad": "madurés", "mag": "magahi", "mai": "maithili", "mak": "makasar", "mas": "masai", "mdf": "moksha", "men": "mende", "mer": "meru", "mfe": "crioulo mauriciano", "mg": "malgaxe", "mgh": "makhuwa-meetto", "mgo": "meta’", "mh": "marshalés", "mi": "maorí", "mic": "micmac", "min": "minangkabau", "mk": "macedonio", "ml": "malabar", "mn": "mongol", "mni": "manipuri", "moh": "mohawk", "mos": "mossi", "mr": "marathi", "ms": "malaio", "mt": "maltés", "mua": "mundang", "mus": "creek", "mwl": "mirandés", "my": "birmano", "myv": "erzya", "mzn": "mazandaraní", "na": "nauruano", "nap": "napolitano", "naq": "nama", "nb": "noruegués bokmål", "nd": "ndebele setentrional", "nds": "baixo alemán", "nds-NL": "baixo saxón", "ne": "nepalí", "new": "newari", "ng": "ndonga", "nia": "nias", "niu": "niueano", "nl": "neerlandés", "nl-BE": "flamengo", "nmg": "kwasio", "nn": "noruegués nynorsk", "nnh": "ngiemboon", "no": "noruegués", "nog": "nogai", "nqo": "n’ko", "nr": "ndebele meridional", "nso": "sesotho do norte", "nus": "nuer", "nv": "navajo", "ny": "nyanja", "nyn": "nyankole", "oc": "occitano", "om": "oromo", "or": "odiá", "os": "ossetio", "pa": "panxabí", "pag": "pangasinan", "pam": "pampanga", "pap": "papiamento", "pau": "palauano", "pcm": "pidgin nixeriano", "pl": "polaco", "prg": "prusiano", "ps": "paxto", "pt": "portugués", "pt-BR": "portugués do Brasil", "pt-PT": "portugués de Portugal", "qu": "quechua", "quc": "quiché", "rap": "rapanui", "rar": "rarotongano", "rm": "romanche", "rn": "rundi", "ro": "romanés", "ro-MD": "moldavo", "rof": "rombo", "root": "raíz", "ru": "ruso", "rup": "aromanés", "rw": "kiñaruanda", "rwk": "rwa", "sa": "sánscrito", "sad": "sandawe", "sah": "iacuto", "saq": "samburu", "sat": "santali", "sba": "ngambay", "sbp": "sangu", "sc": "sardo", "scn": "siciliano", "sco": "escocés", "sd": "sindhi", "sdh": "kurdo meridional", "se": "saami setentrional", "seh": "sena", "ses": "koyraboro senni", "sg": "sango", "sh": "serbocroata", "shi": "tachelhit", "shn": "shan", "si": "cingalés", "sk": "eslovaco", "sl": "esloveno", "sm": "samoano", "sma": "saami meridional", "smj": "saami de Lule", "smn": "saami de Inari", "sms": "saami skolt", "sn": "shona", "snk": "soninke", "so": "somalí", "sq": "albanés", "sr": "serbio", "srn": "sranan tongo", "ss": "suazi", "ssy": "saho", "st": "sesotho", "su": "sundanés", "suk": "sukuma", "sv": "sueco", "sw": "suahili", "sw-CD": "suahili congolés", "swb": "comoriano", "syr": "siríaco", "ta": "támil", "te": "telugu", "tem": "temne", "teo": "teso", "tet": "tetun", "tg": "taxico", "th": "tailandés", "ti": "tigriña", "tig": "tigré", "tk": "turcomán", "tl": "tagalo", "tlh": "klingon", "tn": "tswana", "to": "tongano", "tpi": "tok pisin", "tr": "turco", "trv": "taroko", "ts": "tsonga", "tt": "tártaro", "tum": "tumbuka", "tvl": "tuvalés", "tw": "twi", "twq": "tasawaq", "ty": "tahitiano", "tyv": "tuvaniano", "tzm": "tamazight de Marrocos central", "udm": "udmurto", "ug": "uigur", "uk": "ucraíno", "umb": "umbundu", "ur": "urdú", "uz": "uzbeco", "ve": "venda", "vi": "vietnamita", "vo": "volapuk", "vun": "vunjo", "wa": "valón", "wae": "walser", "wal": "wolaytta", "war": "waray-waray", "wbp": "walrpiri", "wo": "wólof", "xal": "calmuco", "xh": "xhosa", "xog": "soga", "yav": "yangben", "ybb": "yemba", "yi": "yiddish", "yo": "ioruba", "yue": "cantonés", "zgh": "tamazight marroquí estándar", "zh": "chinés", "zh-Hans": "chinés simplificado", "zh-Hant": "chinés tradicional", "zu": "zulú", "zun": "zuni", "zza": "zazaki"}}, - "gu": {"rtl": false, "languageNames": {"aa": "અફાર", "ab": "અબખાજિયન", "ace": "અચીની", "ach": "એકોલી", "ada": "અદાંગ્મી", "ady": "અદિઘે", "ae": "અવેસ્તન", "af": "આફ્રિકન્સ", "afh": "અફ્રિહિલી", "agq": "અઘેમ", "ain": "ઐનુ", "ak": "અકાન", "akk": "અક્કાદીયાન", "ale": "અલેઉત", "alt": "દક્ષિણ અલ્તાઇ", "am": "એમ્હારિક", "an": "અર્ગોનીઝ", "ang": "જુની અંગ્રેજી", "anp": "અંગીકા", "ar": "અરબી", "ar-001": "મોડર્ન સ્ટાન્ડર્ડ અરબી", "arc": "એરમૈક", "arn": "મેપુચે", "arp": "અરાપાહો", "arq": "આલ્જેરિયન અરબી", "arw": "અરાવક", "ary": "મોરોક્કન અરબી", "arz": "ઈજિપ્શિયન અરબી", "as": "આસામી", "asa": "અસુ", "ast": "અસ્તુરિયન", "av": "અવેરિક", "awa": "અવધી", "ay": "આયમારા", "az": "અઝરબૈજાની", "ba": "બશ્કીર", "bal": "બલૂચી", "ban": "બાલિનીસ", "bas": "બસા", "bax": "બામન", "be": "બેલારુશિયન", "bej": "બેજા", "bem": "બેમ્બા", "bez": "બેના", "bg": "બલ્ગેરિયન", "bgn": "પશ્ચિમી બાલોચી", "bho": "ભોજપુરી", "bi": "બિસ્લામા", "bik": "બિકોલ", "bin": "બિની", "bla": "સિક્સિકા", "bm": "બામ્બારા", "bn": "બાંગ્લા", "bo": "તિબેટીયન", "bpy": "બિષ્નુપ્રિયા", "br": "બ્રેટોન", "bra": "વ્રજ", "brh": "બ્રાહુઈ", "brx": "બોડો", "bs": "બોસ્નિયન", "bua": "બુરિયાત", "bug": "બુગિનીસ", "byn": "બ્લિન", "ca": "કતલાન", "cad": "કડ્ડો", "car": "કરિબ", "cch": "અત્સમ", "ce": "ચેચન", "ceb": "સિબુઆનો", "cgg": "ચિગા", "ch": "કેમોરો", "chb": "ચિબ્ચા", "chg": "છગાતાઇ", "chk": "ચૂકીસ", "chm": "મારી", "chn": "ચિનૂક જાર્ગન", "cho": "ચોક્તૌ", "chp": "શિપેવ્યાન", "chr": "શેરોકી", "chy": "શેયેન્ન", "ckb": "સેન્ટ્રલ કુર્દિશ", "co": "કોર્સિકન", "cop": "કોપ્ટિક", "cr": "ક્રી", "crh": "ક્રિમિયન તુર્કી", "crs": "સેસેલ્વા ક્રેઓલે ફ્રેન્ચ", "cs": "ચેક", "csb": "કાશુબિયન", "cu": "ચર્ચ સ્લાવિક", "cv": "ચૂવાશ", "cy": "વેલ્શ", "da": "ડેનિશ", "dak": "દાકોતા", "dar": "દાર્ગવા", "dav": "તૈતા", "de": "જર્મન", "de-AT": "ઓસ્ટ્રિઅન જર્મન", "de-CH": "સ્વિસ હાય જર્મન", "del": "દેલવેર", "den": "સ્લેવ", "dgr": "ડોગ્રિબ", "din": "દિન્કા", "dje": "ઝર્મા", "doi": "ડોગ્રી", "dsb": "લોઅર સોર્બિયન", "dua": "દુઆલા", "dum": "મધ્ય ડચ", "dv": "દિવેહી", "dyo": "જોલા-ફોન્યી", "dyu": "ડ્યુલા", "dz": "ડ્ઝોંગ્ખા", "dzg": "દાઝાગા", "ebu": "ઍમ્બુ", "ee": "ઈવ", "efi": "એફિક", "egy": "પ્રાચીન ઇજીપ્શિયન", "eka": "એકાજુક", "el": "ગ્રીક", "elx": "એલામાઇટ", "en": "અંગ્રેજી", "en-AU": "ઓસ્ટ્રેલિયન અંગ્રેજી", "en-CA": "કેનેડિયન અંગ્રેજી", "en-GB": "બ્રિટિશ અંગ્રેજી", "en-US": "અમેરિકન અંગ્રેજી", "enm": "મિડિલ અંગ્રેજી", "eo": "એસ્પેરાન્ટો", "es": "સ્પેનિશ", "es-419": "લેટિન અમેરિકન સ્પેનિશ", "es-ES": "યુરોપિયન સ્પેનિશ", "es-MX": "મેક્સિકન સ્પેનિશ", "et": "એસ્ટોનિયન", "eu": "બાસ્ક", "ewo": "ઇવોન્ડો", "fa": "ફારસી", "fan": "ફેંગ", "fat": "ફન્ટી", "ff": "ફુલાહ", "fi": "ફિનિશ", "fil": "ફિલિપિનો", "fj": "ફીજીયન", "fo": "ફોરિસ્ત", "fon": "ફોન", "fr": "ફ્રેન્ચ", "fr-CA": "કેનેડિયન ફ્રેંચ", "fr-CH": "સ્વિસ ફ્રેંચ", "frc": "કાજૂન ફ્રેન્ચ", "frm": "મિડિલ ફ્રેંચ", "fro": "જૂની ફ્રેંચ", "frr": "ઉત્તરીય ફ્રિશિયન", "frs": "પૂર્વ ફ્રિશિયન", "fur": "ફ્રિયુલિયાન", "fy": "પશ્ચિમી ફ્રિસિયન", "ga": "આઇરિશ", "gaa": "ગા", "gag": "ગાગાઝ", "gay": "ગાયો", "gba": "બાયા", "gbz": "ઝોરોસ્ટ્રિઅન દારી", "gd": "સ્કોટીસ ગેલિક", "gez": "ગીઝ", "gil": "જિલ્બરટીઝ", "gl": "ગેલિશિયન", "gmh": "મધ્ય હાઇ જર્મન", "gn": "ગુઆરાની", "goh": "જૂની હાઇ જર્મન", "gom": "ગોઅન કોંકણી", "gon": "ગોંડી", "gor": "ગોરોન્તાલો", "got": "ગોથિક", "grb": "ગ્રેબો", "grc": "પ્રાચીન ગ્રીક", "gsw": "સ્વિસ જર્મન", "gu": "ગુજરાતી", "guz": "ગુસી", "gv": "માંક્સ", "gwi": "ગ્વિચ’ઇન", "ha": "હૌસા", "hai": "હૈડા", "haw": "હવાઇયન", "he": "હીબ્રુ", "hi": "હિન્દી", "hif": "ફીજી હિંદી", "hil": "હિલિગેનોન", "hit": "હિટ્ટિતે", "hmn": "હમોંગ", "ho": "હિરી મોટૂ", "hr": "ક્રોએશિયન", "hsb": "અપર સોર્બિયન", "ht": "હૈતિઅન ક્રેઓલે", "hu": "હંગેરિયન", "hup": "હૂપા", "hy": "આર્મેનિયન", "hz": "હેરેરો", "ia": "ઇંટરલિંગુઆ", "iba": "ઇબાન", "ibb": "ઇબિબિઓ", "id": "ઇન્ડોનેશિયન", "ie": "ઇંટરલિંગ", "ig": "ઇગ્બો", "ii": "સિચુઆન યી", "ik": "ઇનુપિયાક", "ilo": "ઇલોકો", "inh": "ઇંગુશ", "io": "ઈડો", "is": "આઇસલેન્ડિક", "it": "ઇટાલિયન", "iu": "ઇનુકિટૂટ", "ja": "જાપાનીઝ", "jbo": "લોજ્બાન", "jgo": "નગોમ્બા", "jmc": "મકામે", "jpr": "જુદેઓ-પર્શિયન", "jrb": "જુદેઓ-અરબી", "jv": "જાવાનીસ", "ka": "જ્યોર્જિયન", "kaa": "કારા-કલ્પક", "kab": "કબાઇલ", "kac": "કાચિન", "kaj": "જ્જુ", "kam": "કમ્બા", "kaw": "કાવી", "kbd": "કબાર્ડિયન", "kcg": "ત્યાપ", "kde": "મકોન્ડે", "kea": "કાબુવર્ડિઆનુ", "kfo": "કોરો", "kg": "કોંગો", "kha": "ખાસી", "kho": "ખોતાનીસ", "khq": "કોયરા ચિનિ", "ki": "કિકુયૂ", "kj": "ક્વાન્યામા", "kk": "કઝાખ", "kkj": "કાકો", "kl": "કલાલ્લિસુત", "kln": "કલેજિન", "km": "ખ્મેર", "kmb": "કિમ્બન્દુ", "kn": "કન્નડ", "ko": "કોરિયન", "koi": "કોમી-પર્મ્યાક", "kok": "કોંકણી", "kos": "કોસરિયન", "kpe": "ક્પેલ્લે", "kr": "કનુરી", "krc": "કરાચય-બલ્કાર", "krl": "કરેલિયન", "kru": "કુરૂખ", "ks": "કાશ્મીરી", "ksb": "શમ્બાલા", "ksf": "બફિયા", "ksh": "કોલોગ્નિયન", "ku": "કુર્દિશ", "kum": "કુમીક", "kut": "કુતેનાઇ", "kv": "કોમી", "kw": "કોર્નિશ", "ky": "કિર્ગીઝ", "la": "લેટિન", "lad": "લાદીનો", "lag": "લંગી", "lah": "લાહન્ડા", "lam": "લામ્બા", "lb": "લક્ઝેમબર્ગિશ", "lez": "લેઝધીયન", "lfn": "લિંગ્વા ફેન્કા નોવા", "lg": "ગાંડા", "li": "લિંબૂર્ગિશ", "lkt": "લાકોટા", "ln": "લિંગાલા", "lo": "લાઓ", "lol": "મોંગો", "lou": "લ્યુઇસિયાના ક્રેઓલ", "loz": "લોઝી", "lrc": "ઉત્તરી લુરી", "lt": "લિથુઆનિયન", "lu": "લૂબા-કટાંગા", "lua": "લૂબા-લુલુઆ", "lui": "લુઇસેનો", "lun": "લુન્ડા", "luo": "લ્યુઓ", "lus": "મિઝો", "luy": "લુઈયા", "lv": "લાતવિયન", "mad": "માદુરીસ", "mag": "મગહી", "mai": "મૈથિલી", "mak": "મકાસર", "man": "મન્ડિન્ગો", "mas": "મસાઇ", "mdf": "મોક્ષ", "mdr": "મંદાર", "men": "મેન્ડે", "mer": "મેરુ", "mfe": "મોરીસ્યેન", "mg": "મલાગસી", "mga": "મધ્ય આઈરિશ", "mgh": "માખુવા-મીટ્ટુ", "mgo": "મેતા", "mh": "માર્શલીઝ", "mi": "માઓરી", "mic": "મિકમેક", "min": "મિનાંગ્કાબાઉ", "mk": "મેસેડોનિયન", "ml": "મલયાલમ", "mn": "મોંગોલિયન", "mnc": "માન્ચુ", "mni": "મણિપુરી", "moh": "મોહૌક", "mos": "મોસ્સી", "mr": "મરાઠી", "mrj": "પશ્ચિમી મારી", "ms": "મલય", "mt": "માલ્ટિઝ", "mua": "મુનડાન્ગ", "mus": "ક્રિક", "mwl": "મિરાંડી", "mwr": "મારવાડી", "my": "બર્મીઝ", "myv": "એર્ઝયા", "mzn": "મઝાન્દેરાની", "na": "નાઉરૂ", "nap": "નેપોલિટાન", "naq": "નમા", "nb": "નોર્વેજિયન બોકમાલ", "nd": "ઉત્તર દેબેલ", "nds": "લો જર્મન", "nds-NL": "લો સેક્સોન", "ne": "નેપાળી", "new": "નેવારી", "ng": "ડોન્ગા", "nia": "નિયાસ", "niu": "નિયુઆન", "nl": "ડચ", "nl-BE": "ફ્લેમિશ", "nmg": "ક્વાસિઓ", "nn": "નોર્વેજિયન નાયનૉર્સ્ક", "nnh": "નીએમબુન", "no": "નૉર્વેજીયન", "nog": "નોગાઇ", "non": "જૂની નોર્સ", "nqo": "એન’કો", "nr": "દક્ષિણ દેબેલ", "nso": "ઉત્તરી સોથો", "nus": "નુએર", "nv": "નાવાજો", "nwc": "પરંપરાગત નેવારી", "ny": "ન્યાન્જા", "nym": "ન્યામવેઝી", "nyn": "ન્યાનકોલ", "nyo": "ન્યોરો", "nzi": "ન્ઝિમા", "oc": "ઓક્સિટન", "oj": "ઓજિબ્વા", "om": "ઓરોમો", "or": "ઉડિયા", "os": "ઓસ્સેટિક", "osa": "ઓસેજ", "ota": "ઓટોમાન તુર્કિશ", "pa": "પંજાબી", "pag": "પંગાસીનાન", "pal": "પહલવી", "pam": "પમ્પાન્ગા", "pap": "પાપિયામેન્ટો", "pau": "પલાઉઆન", "pcm": "નાઇજેરિયન પીજીન", "peo": "જૂની ફારસી", "phn": "ફોનિશિયન", "pi": "પાલી", "pl": "પોલીશ", "pon": "પોહપિએન", "prg": "પ્રુસ્સીયન", "pro": "જુની પ્રોવેન્સલ", "ps": "પશ્તો", "pt": "પોર્ટુગીઝ", "pt-BR": "બ્રાઝિલીયન પોર્ટુગીઝ", "pt-PT": "યુરોપિયન પોર્ટુગીઝ", "qu": "ક્વેચુઆ", "quc": "કિચે", "raj": "રાજસ્થાની", "rap": "રાપાનુઇ", "rar": "રારોટોંગન", "rm": "રોમાન્શ", "rn": "રૂન્દી", "ro": "રોમાનિયન", "ro-MD": "મોલડાવિયન", "rof": "રોમ્બો", "rom": "રોમાની", "root": "રૂટ", "ru": "રશિયન", "rup": "અરોમેનિયન", "rw": "કિન્યારવાન્ડા", "rwk": "રવા", "sa": "સંસ્કૃત", "sad": "સોંડવે", "sah": "સખા", "sam": "સામરિટાન અરેમિક", "saq": "સમ્બુરુ", "sas": "સાસાક", "sat": "સંતાલી", "sba": "ન્ગામ્બેય", "sbp": "સાંગુ", "sc": "સાર્દિનિયન", "scn": "સિસિલિયાન", "sco": "સ્કોટ્સ", "sd": "સિંધી", "sdh": "સર્ઘન કુર્દીશ", "se": "ઉત્તરી સામી", "seh": "સેના", "sel": "સેલ્કપ", "ses": "કોયરાબોરો સેન્ની", "sg": "સાંગો", "sga": "જૂની આયરિશ", "sh": "સર્બો-ક્રોએશિયન", "shi": "તેશીલહિટ", "shn": "શેન", "si": "સિંહાલી", "sid": "સિદામો", "sk": "સ્લોવૅક", "sl": "સ્લોવેનિયન", "sm": "સામોન", "sma": "દક્ષિણી સામી", "smj": "લુલે સામી", "smn": "ઇનારી સામી", "sms": "સ્કોલ્ટ સામી", "sn": "શોના", "snk": "સોનિન્કે", "so": "સોમાલી", "sog": "સોગ્ડિએન", "sq": "અલ્બેનિયન", "sr": "સર્બિયન", "srn": "સ્રાનન ટોન્ગો", "srr": "સેરેર", "ss": "સ્વાતી", "ssy": "સાહો", "st": "દક્ષિણ સોથો", "su": "સંડેનીઝ", "suk": "સુકુમા", "sus": "સુસુ", "sux": "સુમેરિયન", "sv": "સ્વીડિશ", "sw": "સ્વાહિલી", "sw-CD": "કોંગો સ્વાહિલી", "swb": "કોમોરિયન", "syc": "પરંપરાગત સિરિએક", "syr": "સિરિએક", "ta": "તમિલ", "tcy": "તુલુ", "te": "તેલુગુ", "tem": "ટિમ્ને", "teo": "તેસો", "ter": "તેરેનો", "tet": "તેતુમ", "tg": "તાજીક", "th": "થાઈ", "ti": "ટાઇગ્રિનિયા", "tig": "ટાઇગ્રે", "tiv": "તિવ", "tk": "તુર્કમેન", "tkl": "તોકેલાઉ", "tl": "ટાગાલોગ", "tlh": "ક્લિન્ગોન", "tli": "ક્લીન્ગકિટ", "tmh": "તામાશેખ", "tn": "ત્સ્વાના", "to": "ટોંગાન", "tog": "ન્યાસા ટોન્ગા", "tpi": "ટોક પિસિન", "tr": "ટર્કિશ", "trv": "ટારોકો", "ts": "સોંગા", "tsi": "સિમ્શિયન", "tt": "તતાર", "ttt": "મુસ્લિમ તાટ", "tum": "તુમ્બુકા", "tvl": "તુવાલુ", "tw": "ટ્વાઇ", "twq": "તસાવાક", "ty": "તાહિતિયન", "tyv": "ટુવીનિયન", "tzm": "સેન્ટ્રલ એટલાસ તામાઝિટ", "udm": "ઉદમુર્ત", "ug": "ઉઇગુર", "uga": "યુગેરિટિક", "uk": "યુક્રેનિયન", "umb": "ઉમ્બુન્ડૂ", "ur": "ઉર્દૂ", "uz": "ઉઝ્બેક", "vai": "વાઇ", "ve": "વેન્દા", "vi": "વિયેતનામીસ", "vo": "વોલાપુક", "vot": "વોટિક", "vun": "વુન્જો", "wa": "વાલૂન", "wae": "વેલ્સેર", "wal": "વોલાયટ્ટા", "war": "વારેય", "was": "વાશો", "wbp": "વાર્લ્પીરી", "wo": "વોલોફ", "xal": "કાલ્મિક", "xh": "ખોસા", "xog": "સોગા", "yao": "યાઓ", "yap": "યાપીસ", "yav": "યાન્ગબેન", "ybb": "યેમ્બા", "yi": "યિદ્દિશ", "yo": "યોરૂબા", "yue": "કેંટોનીઝ", "za": "ઝુઆગ", "zap": "ઝેપોટેક", "zbl": "બ્લિસિમ્બોલ્સ", "zen": "ઝેનાગા", "zgh": "માનક મોરોક્કન તામાઝિટ", "zh": "ચાઇનીઝ", "zh-Hans": "સરળીકૃત ચાઇનીઝ", "zh-Hant": "પારંપરિક ચાઇનીઝ", "zu": "ઝુલુ", "zun": "ઝૂની", "zza": "ઝાઝા"}}, - "he": {"rtl": true, "languageNames": {"aa": "אפארית", "ab": "אבחזית", "ace": "אכינזית", "ach": "אקצ׳ולי", "ada": "אדנמה", "ady": "אדיגית", "ae": "אבסטן", "af": "אפריקאנס", "afh": "אפריהילי", "agq": "אע׳ם", "ain": "אינו", "ak": "אקאן", "akk": "אכדית", "ale": "אלאוט", "alt": "אלטאי דרומית", "am": "אמהרית", "an": "אראגונית", "ang": "אנגלית עתיקה", "anp": "אנג׳יקה", "ar": "ערבית", "ar-001": "ערבית ספרותית", "arc": "ארמית", "arn": "אראוקנית", "arp": "אראפהו", "ars": "ערבית - נג׳ד", "arw": "ארוואק", "as": "אסאמית", "asa": "אסו", "ast": "אסטורית", "av": "אווארית", "awa": "אוואדית", "ay": "איימארית", "az": "אזרית", "ba": "בשקירית", "bal": "באלוצ׳י", "ban": "באלינזית", "bar": "בווארית", "bas": "בסאא", "bax": "במום", "bbj": "גומאלה", "be": "בלארוסית", "bej": "בז׳ה", "bem": "במבה", "bez": "בנה", "bfd": "באפוט", "bg": "בולגרית", "bgn": "באלוצ׳י מערבית", "bho": "בוג׳פורי", "bi": "ביסלמה", "bik": "ביקול", "bin": "ביני", "bkm": "קום", "bla": "סיקסיקה", "bm": "במבארה", "bn": "בנגלית", "bo": "טיבטית", "br": "ברטונית", "bra": "בראג׳", "brx": "בודו", "bs": "בוסנית", "bss": "אקוסה", "bua": "בוריאט", "bug": "בוגינזית", "bum": "בולו", "byn": "בלין", "byv": "מדומבה", "ca": "קטלאנית", "cad": "קאדו", "car": "קאריב", "cay": "קאיוגה", "cch": "אטסם", "ccp": "צ׳אקמה", "ce": "צ׳צ׳נית", "ceb": "סבואנו", "cgg": "צ׳יגה", "ch": "צ׳מורו", "chb": "צ׳יבצ׳ה", "chg": "צ׳אגאטאי", "chk": "צ׳וקסה", "chm": "מארי", "chn": "ניב צ׳ינוק", "cho": "צ׳וקטאו", "chp": "צ׳יפוויאן", "chr": "צ׳רוקי", "chy": "שאיין", "ckb": "כורדית סוראנית", "co": "קורסיקנית", "cop": "קופטית", "cr": "קרי", "crh": "טטרית של קרים", "crs": "קריאולית (סיישל)", "cs": "צ׳כית", "csb": "קשובית", "cu": "סלאבית כנסייתית עתיקה", "cv": "צ׳ובאש", "cy": "וולשית", "da": "דנית", "dak": "דקוטה", "dar": "דרגווה", "dav": "טאיטה", "de": "גרמנית", "de-AT": "גרמנית (אוסטריה)", "de-CH": "גרמנית (שוויץ)", "del": "דלאוור", "den": "סלאבית", "dgr": "דוגריב", "din": "דינקה", "dje": "זארמה", "doi": "דוגרי", "dsb": "סורבית תחתית", "dua": "דואלה", "dum": "הולנדית תיכונה", "dv": "דיבהי", "dyo": "ג׳ולה פונית", "dyu": "דיולה", "dz": "דזונקה", "dzg": "דזאנגה", "ebu": "אמבו", "ee": "אווה", "efi": "אפיק", "egy": "מצרית עתיקה", "eka": "אקיוק", "el": "יוונית", "elx": "עילמית", "en": "אנגלית", "en-AU": "אנגלית (אוסטרליה)", "en-CA": "אנגלית (קנדה)", "en-GB": "אנגלית (בריטניה)", "en-US": "אנגלית (ארצות הברית)", "enm": "אנגלית תיכונה", "eo": "אספרנטו", "es": "ספרדית", "es-419": "ספרדית (אמריקה הלטינית)", "es-ES": "ספרדית (ספרד)", "es-MX": "ספרדית (מקסיקו)", "et": "אסטונית", "eu": "בסקית", "ewo": "אוונדו", "fa": "פרסית", "fan": "פנג", "fat": "פאנטי", "ff": "פולה", "fi": "פינית", "fil": "פיליפינית", "fj": "פיג׳ית", "fo": "פארואזית", "fon": "פון", "fr": "צרפתית", "fr-CA": "צרפתית (קנדה)", "fr-CH": "צרפתית (שוויץ)", "frc": "צרפתית קייג׳ונית", "frm": "צרפתית תיכונה", "fro": "צרפתית עתיקה", "frr": "פריזית צפונית", "frs": "פריזית מזרחית", "fur": "פריולית", "fy": "פריזית מערבית", "ga": "אירית", "gaa": "גא", "gag": "גגאוזית", "gan": "סינית גאן", "gay": "גאיו", "gba": "גבאיה", "gd": "גאלית סקוטית", "gez": "געז", "gil": "קיריבטית", "gl": "גליציאנית", "gmh": "גרמנית בינונית-גבוהה", "gn": "גוארני", "goh": "גרמנית עתיקה גבוהה", "gon": "גונדי", "gor": "גורונטאלו", "got": "גותית", "grb": "גרבו", "grc": "יוונית עתיקה", "gsw": "גרמנית שוויצרית", "gu": "גוג׳ארטי", "guz": "גוסי", "gv": "מאנית", "gwi": "גוויצ׳ן", "ha": "האוסה", "hai": "האידה", "hak": "סינית האקה", "haw": "הוואית", "he": "עברית", "hi": "הינדי", "hil": "היליגאינון", "hit": "חתית", "hmn": "המונג", "ho": "הירי מוטו", "hr": "קרואטית", "hsb": "סורבית גבוהה", "hsn": "סינית שיאנג", "ht": "קריאולית (האיטי)", "hu": "הונגרית", "hup": "הופה", "hy": "ארמנית", "hz": "הררו", "ia": "‏אינטרלינגואה", "iba": "איבאן", "ibb": "איביביו", "id": "אינדונזית", "ie": "אינטרלינגה", "ig": "איגבו", "ii": "סצ׳ואן יי", "ik": "אינופיאק", "ilo": "אילוקו", "inh": "אינגושית", "io": "אידו", "is": "איסלנדית", "it": "איטלקית", "iu": "אינוקטיטוט", "ja": "יפנית", "jbo": "לוז׳באן", "jgo": "נגומבה", "jmc": "מאקאמה", "jpr": "פרסית יהודית", "jrb": "ערבית יהודית", "jv": "יאוואית", "ka": "גאורגית", "kaa": "קארא-קלפאק", "kab": "קבילה", "kac": "קצ׳ין", "kaj": "ג׳ו", "kam": "קמבה", "kaw": "קאווי", "kbd": "קברדית", "kbl": "קנמבו", "kcg": "טיאפ", "kde": "מקונדה", "kea": "קאבוורדיאנו", "kfo": "קורו", "kg": "קונגו", "kha": "קהאסי", "kho": "קוטאנזית", "khq": "קוירה צ׳יני", "ki": "קיקויו", "kj": "קואניאמה", "kk": "קזחית", "kkj": "קאקו", "kl": "גרינלנדית", "kln": "קלנג׳ין", "km": "חמרית", "kmb": "קימבונדו", "kn": "קנאדה", "ko": "קוריאנית", "koi": "קומי-פרמיאקית", "kok": "קונקאני", "kos": "קוסראיאן", "kpe": "קפלה", "kr": "קאנורי", "krc": "קראצ׳י-בלקר", "krl": "קארלית", "kru": "קורוק", "ks": "קשמירית", "ksb": "שמבאלה", "ksf": "באפיה", "ksh": "קולוניאן", "ku": "כורדית", "kum": "קומיקית", "kut": "קוטנאי", "kv": "קומי", "kw": "קורנית", "ky": "קירגיזית", "la": "לטינית", "lad": "לדינו", "lag": "לאנגי", "lah": "לנדה", "lam": "למבה", "lb": "לוקסמבורגית", "lez": "לזגית", "lg": "גאנדה", "li": "לימבורגית", "lkt": "לקוטה", "ln": "לינגלה", "lo": "לאו", "lol": "מונגו", "lou": "קריאולית לואיזיאנית", "loz": "לוזית", "lrc": "לורית צפונית", "lt": "ליטאית", "lu": "לובה-קטנגה", "lua": "לובה-לולואה", "lui": "לויסנו", "lun": "לונדה", "luo": "לואו", "lus": "מיזו", "luy": "לויה", "lv": "לטבית", "mad": "מדורזית", "maf": "מאפאה", "mag": "מאגאהית", "mai": "מאיטילית", "mak": "מקסאר", "man": "מנדינגו", "mas": "מסאית", "mde": "מאבא", "mdf": "מוקשה", "mdr": "מנדאר", "men": "מנדה", "mer": "מרו", "mfe": "קריאולית מאוריציאנית", "mg": "מלגשית", "mga": "אירית תיכונה", "mgh": "מאקוואה מטו", "mgo": "מטא", "mh": "מרשלית", "mi": "מאורית", "mic": "מיקמק", "min": "מיננגקבאו", "mk": "מקדונית", "ml": "מליאלאם", "mn": "מונגולית", "mnc": "מנצ׳ו", "mni": "מניפורית", "moh": "מוהוק", "mos": "מוסי", "mr": "מראטהי", "ms": "מלאית", "mt": "מלטית", "mua": "מונדאנג", "mus": "קריק", "mwl": "מירנדזית", "mwr": "מרווארי", "my": "בורמזית", "mye": "מאיין", "myv": "ארזיה", "mzn": "מאזאנדראני", "na": "נאורית", "nan": "סינית מין נאן", "nap": "נפוליטנית", "naq": "נאמה", "nb": "נורווגית ספרותית", "nd": "נדבלה צפונית", "nds": "גרמנית תחתית", "nds-NL": "סקסונית תחתית", "ne": "נפאלית", "new": "נווארי", "ng": "נדונגה", "nia": "ניאס", "niu": "ניואן", "nl": "הולנדית", "nl-BE": "פלמית", "nmg": "קוואסיו", "nn": "נורווגית חדשה", "nnh": "נגיאמבון", "no": "נורווגית", "nog": "נוגאי", "non": "‏נורדית עתיקה", "nqo": "נ׳קו", "nr": "נדבלה דרומית", "nso": "סותו צפונית", "nus": "נואר", "nv": "נאוואחו", "nwc": "נווארית קלאסית", "ny": "ניאנג׳ה", "nym": "ניאמווזי", "nyn": "ניאנקולה", "nyo": "ניורו", "nzi": "נזימה", "oc": "אוקסיטנית", "oj": "אוג׳יבווה", "om": "אורומו", "or": "אורייה", "os": "אוסטית", "osa": "אוסג׳", "ota": "טורקית עות׳מנית", "pa": "פנג׳אבי", "pag": "פנגסינאן", "pal": "פלאבי", "pam": "פמפאניה", "pap": "פפיאמנטו", "pau": "פלוואן", "pcm": "ניגרית פידג׳ית", "peo": "פרסית עתיקה", "phn": "פיניקית", "pi": "פאלי", "pl": "פולנית", "pon": "פונפיאן", "prg": "פרוסית", "pro": "פרובנסאל עתיקה", "ps": "פאשטו", "pt": "פורטוגזית", "pt-BR": "פורטוגזית (ברזיל)", "pt-PT": "פורטוגזית (פורטוגל)", "qu": "קצ׳ואה", "quc": "קיצ׳ה", "raj": "ראג׳סטאני", "rap": "רפאנוי", "rar": "ררוטונגאן", "rm": "רומאנש", "rn": "קירונדי", "ro": "רומנית", "ro-MD": "מולדבית", "rof": "רומבו", "rom": "רומאני", "root": "רוט", "ru": "רוסית", "rup": "ארומנית", "rw": "קנירואנדית", "rwk": "ראווה", "sa": "סנסקריט", "sad": "סנדאווה", "sah": "סאחה", "sam": "ארמית שומרונית", "saq": "סמבורו", "sas": "סאסק", "sat": "סאנטאלי", "sba": "נגמבאי", "sbp": "סאנגו", "sc": "סרדינית", "scn": "סיציליאנית", "sco": "סקוטית", "sd": "סינדהית", "sdh": "כורדית דרומית", "se": "סמי צפונית", "see": "סנקה", "seh": "סנה", "sel": "סלקופ", "ses": "קויראבורו סני", "sg": "סנגו", "sga": "אירית עתיקה", "sh": "סרבו-קרואטית", "shi": "שילה", "shn": "שאן", "shu": "ערבית צ׳אדית", "si": "סינהלה", "sid": "סידאמו", "sk": "סלובקית", "sl": "סלובנית", "sm": "סמואית", "sma": "סאמי דרומית", "smj": "לולה סאמי", "smn": "אינארי סאמי", "sms": "סקולט סאמי", "sn": "שונה", "snk": "סונינקה", "so": "סומלית", "sog": "סוגדיאן", "sq": "אלבנית", "sr": "סרבית", "srn": "סרנאן טונגו", "srr": "סרר", "ss": "סאווזי", "ssy": "סאהו", "st": "סותו דרומית", "su": "סונדנזית", "suk": "סוקומה", "sus": "סוסו", "sux": "שומרית", "sv": "שוודית", "sw": "סווהילי", "sw-CD": "סווהילי קונגו", "swb": "קומורית", "syc": "סירית קלאסית", "syr": "סורית", "ta": "טמילית", "te": "טלוגו", "tem": "טימנה", "teo": "טסו", "ter": "טרנו", "tet": "טטום", "tg": "טג׳יקית", "th": "תאית", "ti": "תיגרינית", "tig": "טיגרית", "tiv": "טיב", "tk": "טורקמנית", "tkl": "טוקלאו", "tl": "טאגאלוג", "tlh": "קלינגון", "tli": "טלינגיט", "tmh": "טמאשק", "tn": "סוואנה", "to": "טונגאית", "tog": "ניאסה טונגה", "tpi": "טוק פיסין", "tr": "טורקית", "trv": "טרוקו", "ts": "טסונגה", "tsi": "טסימשיאן", "tt": "טטרית", "tum": "טומבוקה", "tvl": "טובאלו", "tw": "טווי", "twq": "טסוואק", "ty": "טהיטית", "tyv": "טובינית", "tzm": "תמאזיגת של מרכז מרוקו", "udm": "אודמורט", "ug": "אויגור", "uga": "אוגריתית", "uk": "אוקראינית", "umb": "אומבונדו", "ur": "אורדו", "uz": "אוזבקית", "vai": "וואי", "ve": "וונדה", "vi": "ויאטנמית", "vo": "‏וולאפיק", "vot": "ווטיק", "vun": "וונג׳ו", "wa": "ולונית", "wae": "וואלסר", "wal": "ווליאטה", "war": "ווראי", "was": "וואשו", "wbp": "וורלפירי", "wo": "וולוף", "wuu": "סינית וו", "xal": "קלמיקית", "xh": "קוסה", "xog": "סוגה", "yao": "יאו", "yap": "יאפזית", "yav": "יאנגבן", "ybb": "ימבה", "yi": "יידיש", "yo": "יורובה", "yue": "קנטונזית", "za": "זואנג", "zap": "זאפוטק", "zbl": "בליסימבולס", "zen": "זנאגה", "zgh": "תמזיע׳ת מרוקאית תקנית", "zh": "סינית", "zh-Hans": "סינית פשוטה", "zh-Hant": "סינית מסורתית", "zu": "זולו", "zun": "זוני", "zza": "זאזא"}}, - "hi": {"rtl": false, "languageNames": {"aa": "अफ़ार", "ab": "अब्ख़ाज़ियन", "ace": "अचाइनीस", "ach": "अकोली", "ada": "अदान्गमे", "ady": "अदिघे", "ae": "अवस्ताई", "af": "अफ़्रीकी", "afh": "अफ्रिहिली", "agq": "अग्हेम", "ain": "ऐनू", "ak": "अकन", "akk": "अक्कादी", "ale": "अलेउत", "alt": "दक्षिणी अल्ताई", "am": "अम्हेरी", "an": "अर्गोनी", "ang": "पुरानी अंग्रेज़ी", "anp": "अंगिका", "ar": "अरबी", "ar-001": "आधुनिक मानक अरबी", "arc": "ऐरेमेक", "arn": "मापूचे", "arp": "अरापाहो", "ars": "नज्दी अरबी", "arw": "अरावक", "as": "असमिया", "asa": "असु", "ast": "अस्तुरियन", "av": "अवेरिक", "awa": "अवधी", "ay": "आयमारा", "az": "अज़रबैजानी", "ba": "बशख़िर", "bal": "बलूची", "ban": "बालिनीस", "bas": "बसा", "be": "बेलारूसी", "bej": "बेजा", "bem": "बेम्बा", "bez": "बेना", "bg": "बुल्गारियाई", "bgn": "पश्चिमी बलोची", "bho": "भोजपुरी", "bi": "बिस्लामा", "bik": "बिकोल", "bin": "बिनी", "bla": "सिक्सिका", "bm": "बाम्बारा", "bn": "बंगाली", "bo": "तिब्बती", "br": "ब्रेटन", "bra": "ब्रज", "brx": "बोडो", "bs": "बोस्नियाई", "bua": "बुरियात", "bug": "बगिनीस", "byn": "ब्लिन", "ca": "कातालान", "cad": "कैड्डो", "car": "कैरिब", "cch": "अत्सम", "ce": "चेचन", "ceb": "सिबुआनो", "cgg": "शिगा", "ch": "कमोरो", "chb": "चिब्चा", "chg": "छगाताई", "chk": "चूकीस", "chm": "मारी", "chn": "चिनूक जारगॉन", "cho": "चोक्तौ", "chp": "शिपेव्यान", "chr": "चेरोकी", "chy": "शेयेन्न", "ckb": "सोरानी कुर्दिश", "co": "कोर्सीकन", "cop": "कॉप्टिक", "cr": "क्री", "crh": "क्रीमीन तुर्की", "crs": "सेसेल्वा क्रिओल फ्रेंच", "cs": "चेक", "csb": "काशुबियन", "cu": "चर्च साल्विक", "cv": "चूवाश", "cy": "वेल्श", "da": "डेनिश", "dak": "दाकोता", "dar": "दार्गवा", "dav": "तैता", "de": "जर्मन", "de-AT": "ऑस्ट्रियाई जर्मन", "de-CH": "स्विस उच्च जर्मन", "del": "डिलैवेयर", "den": "स्लेव", "dgr": "डोग्रिब", "din": "दिन्का", "dje": "झार्मा", "doi": "डोग्री", "dsb": "निचला सॉर्बियन", "dua": "दुआला", "dum": "मध्यकालीन पुर्तगाली", "dv": "दिवेही", "dyo": "जोला-फोंई", "dyu": "ड्युला", "dz": "ज़ोन्गखा", "dzg": "दज़ागा", "ebu": "एम्बु", "ee": "ईवे", "efi": "एफिक", "egy": "प्राचीन मिस्री", "eka": "एकाजुक", "el": "यूनानी", "elx": "एलामाइट", "en": "अंग्रेज़ी", "en-AU": "ऑस्ट्रेलियाई अंग्रेज़ी", "en-CA": "कनाडाई अंग्रेज़ी", "en-GB": "ब्रिटिश अंग्रेज़ी", "en-US": "अमेरिकी अंग्रेज़ी", "enm": "मध्यकालीन अंग्रेज़ी", "eo": "एस्पेरेंतो", "es": "स्पेनी", "es-419": "लैटिन अमेरिकी स्पेनिश", "es-ES": "यूरोपीय स्पेनिश", "es-MX": "मैक्सिकन स्पेनिश", "et": "एस्टोनियाई", "eu": "बास्क", "ewo": "इवोन्डो", "fa": "फ़ारसी", "fan": "फैन्ग", "fat": "फन्टी", "ff": "फुलाह", "fi": "फ़िनिश", "fil": "फ़िलिपीनो", "fj": "फिजियन", "fo": "फ़ैरोइज़", "fon": "फॉन", "fr": "फ़्रेंच", "fr-CA": "कनाडाई फ़्रेंच", "fr-CH": "स्विस फ़्रेंच", "frc": "केजन फ़्रेंच", "frm": "मध्यकालीन फ़्रांसीसी", "fro": "पुरातन फ़्रांसीसी", "frr": "उत्तरी फ़्रीसियाई", "frs": "पूर्वी फ़्रीसियाई", "fur": "फ्रीयुलीयान", "fy": "पश्चिमी फ़्रिसियाई", "ga": "आयरिश", "gaa": "गा", "gag": "गागौज़", "gay": "गायो", "gba": "ग्बाया", "gd": "स्कॉटिश गाएलिक", "gez": "गीज़", "gil": "गिल्बरतीस", "gl": "गैलिशियन", "gmh": "मध्यकालीन हाइ जर्मन", "gn": "गुआरानी", "goh": "पुरातन हाइ जर्मन", "gon": "गाँडी", "gor": "गोरोन्तालो", "got": "गॉथिक", "grb": "ग्रेबो", "grc": "प्राचीन यूनानी", "gsw": "स्विस जर्मन", "gu": "गुजराती", "guz": "गुसी", "gv": "मैंक्स", "gwi": "ग्विचइन", "ha": "हौसा", "hai": "हैडा", "haw": "हवाई", "he": "हिब्रू", "hi": "हिन्दी", "hil": "हिलिगेनन", "hit": "हिताइत", "hmn": "ह्मॉंग", "ho": "हिरी मोटू", "hr": "क्रोएशियाई", "hsb": "ऊपरी सॉर्बियन", "ht": "हैतियाई", "hu": "हंगेरियाई", "hup": "हूपा", "hy": "आर्मेनियाई", "hz": "हरैरो", "ia": "इंटरलिंगुआ", "iba": "इबान", "ibb": "इबिबियो", "id": "इंडोनेशियाई", "ie": "ईन्टरलिंगुइ", "ig": "ईग्बो", "ii": "सिचुआन यी", "ik": "इनुपियाक्", "ilo": "इलोको", "inh": "इंगुश", "io": "इडौ", "is": "आइसलैंडिक", "it": "इतालवी", "iu": "इनूकीटूत्", "ja": "जापानी", "jbo": "लोज्बान", "jgo": "नगोंबा", "jmc": "मैकहैमे", "jpr": "जुदेओ-पर्शियन", "jrb": "जुदेओ-अरेबिक", "jv": "जावानीज़", "ka": "जॉर्जियाई", "kaa": "कारा-कल्पक", "kab": "कबाइल", "kac": "काचिन", "kaj": "ज्जु", "kam": "कम्बा", "kaw": "कावी", "kbd": "कबार्डियन", "kcg": "त्याप", "kde": "मैकोंड", "kea": "काबुवेर्दियानु", "kfo": "कोरो", "kg": "कोंगो", "kha": "खासी", "kho": "खोतानीस", "khq": "कोयरा चीनी", "ki": "किकुयू", "kj": "क्वान्यामा", "kk": "कज़ाख़", "kkj": "काको", "kl": "कलालीसुत", "kln": "कलेंजिन", "km": "खमेर", "kmb": "किम्बन्दु", "kn": "कन्नड़", "ko": "कोरियाई", "koi": "कोमी-पर्मयाक", "kok": "कोंकणी", "kos": "कोसरैन", "kpe": "क्पेल", "kr": "कनुरी", "krc": "कराचय-बल्कार", "krl": "करेलियन", "kru": "कुरूख", "ks": "कश्मीरी", "ksb": "शम्बाला", "ksf": "बफिआ", "ksh": "कोलोनियाई", "ku": "कुर्दिश", "kum": "कुमीक", "kut": "क्यूतनाई", "kv": "कोमी", "kw": "कोर्निश", "ky": "किर्गीज़", "la": "लैटिन", "lad": "लादीनो", "lag": "लांगि", "lah": "लाह्न्डा", "lam": "लाम्बा", "lb": "लग्ज़मबर्गी", "lez": "लेज़्घीयन", "lg": "गांडा", "li": "लिंबर्गिश", "lkt": "लैकोटा", "ln": "लिंगाला", "lo": "लाओ", "lol": "मोंगो", "lou": "लुईज़ियाना क्रियोल", "loz": "लोज़ी", "lrc": "उत्तरी लूरी", "lt": "लिथुआनियाई", "lu": "ल्यूबा-कटांगा", "lua": "ल्यूबा-लुलुआ", "lui": "लुइसेनो", "lun": "लुन्डा", "luo": "ल्युओ", "lus": "मिज़ो", "luy": "ल्युईआ", "lv": "लातवियाई", "mad": "मादुरीस", "mag": "मगही", "mai": "मैथिली", "mak": "मकासर", "man": "मन्डिन्गो", "mas": "मसाई", "mdf": "मोक्ष", "mdr": "मंदार", "men": "मेन्डे", "mer": "मेरु", "mfe": "मोरीस्येन", "mg": "मालागासी", "mga": "मध्यकालीन आइरिश", "mgh": "मैखुवा-मीट्टो", "mgo": "मेटा", "mh": "मार्शलीज़", "mi": "माओरी", "mic": "मिकमैक", "min": "मिनांग्काबाउ", "mk": "मकदूनियाई", "ml": "मलयालम", "mn": "मंगोलियाई", "mnc": "मन्चु", "mni": "मणिपुरी", "moh": "मोहौक", "mos": "मोस्सी", "mr": "मराठी", "ms": "मलय", "mt": "माल्टीज़", "mua": "मुंडैंग", "mus": "क्रीक", "mwl": "मिरांडी", "mwr": "मारवाड़ी", "my": "बर्मीज़", "myv": "एर्ज़या", "mzn": "माज़न्देरानी", "na": "नाउरू", "nap": "नीपोलिटन", "naq": "नामा", "nb": "नॉर्वेजियाई बोकमाल", "nd": "उत्तरी देबेल", "nds": "निचला जर्मन", "nds-NL": "निचली सैक्सन", "ne": "नेपाली", "new": "नेवाड़ी", "ng": "डोन्गा", "nia": "नियास", "niu": "नियुआन", "nl": "डच", "nl-BE": "फ़्लेमिश", "nmg": "क्वासिओ", "nn": "नॉर्वेजियाई नॉयनॉर्स्क", "nnh": "गैम्बू", "no": "नॉर्वेजियाई", "nog": "नोगाई", "non": "पुराना नॉर्स", "nqo": "एन्को", "nr": "दक्षिण देबेल", "nso": "उत्तरी सोथो", "nus": "नुएर", "nv": "नावाजो", "nwc": "पारम्परिक नेवारी", "ny": "न्यानजा", "nym": "न्यामवेज़ी", "nyn": "न्यानकोल", "nyo": "न्योरो", "nzi": "न्ज़ीमा", "oc": "ओसीटान", "oj": "ओजिब्वा", "om": "ओरोमो", "or": "उड़िया", "os": "ओस्सेटिक", "osa": "ओसेज", "ota": "ओटोमान तुर्किश", "pa": "पंजाबी", "pag": "पंगासीनान", "pal": "पाह्लावी", "pam": "पाम्पान्गा", "pap": "पापियामेन्टो", "pau": "पलोउआन", "pcm": "नाइजीरियाई पिडगिन", "peo": "पुरानी फारसी", "phn": "फोएनिशियन", "pi": "पाली", "pl": "पोलिश", "pon": "पोह्नपिएन", "prg": "प्रुशियाई", "pro": "पुरानी प्रोवेन्सल", "ps": "पश्तो", "pt": "पुर्तगाली", "pt-BR": "ब्राज़ीली पुर्तगाली", "pt-PT": "यूरोपीय पुर्तगाली", "qu": "क्वेचुआ", "quc": "किश", "raj": "राजस्थानी", "rap": "रापानुई", "rar": "रारोतोंगन", "rm": "रोमान्श", "rn": "रुन्दी", "ro": "रोमानियाई", "ro-MD": "मोलडावियन", "rof": "रोम्बो", "rom": "रोमानी", "root": "रूट", "ru": "रूसी", "rup": "अरोमानियन", "rw": "किन्यारवांडा", "rwk": "रवा", "sa": "संस्कृत", "sad": "सन्डावे", "sah": "याकूत", "sam": "सामैरिटन अरैमिक", "saq": "सैम्बुरु", "sas": "सासाक", "sat": "संथाली", "sba": "न्गाम्बे", "sbp": "सैंगु", "sc": "सार्दिनियन", "scn": "सिसिलियन", "sco": "स्कॉट्स", "sd": "सिंधी", "sdh": "दक्षिणी कार्डिश", "se": "नॉर्दन सामी", "seh": "सेना", "sel": "सेल्कप", "ses": "कोयराबोरो सेन्नी", "sg": "सांगो", "sga": "पुरानी आइरिश", "sh": "सेर्बो-क्रोएशियाई", "shi": "तैचेल्हित", "shn": "शैन", "si": "सिंहली", "sid": "सिदामो", "sk": "स्लोवाक", "sl": "स्लोवेनियाई", "sm": "सामोन", "sma": "दक्षिणी सामी", "smj": "ल्युल सामी", "smn": "इनारी सामी", "sms": "स्कोल्ट सामी", "sn": "शोणा", "snk": "सोनिन्के", "so": "सोमाली", "sog": "सोग्डिएन", "sq": "अल्बानियाई", "sr": "सर्बियाई", "srn": "स्रानान टॉन्गो", "srr": "सेरेर", "ss": "स्वाती", "ssy": "साहो", "st": "दक्षिणी सेसेथो", "su": "सुंडानी", "suk": "सुकुमा", "sus": "सुसु", "sux": "सुमेरियन", "sv": "स्वीडिश", "sw": "स्वाहिली", "sw-CD": "कांगो स्वाहिली", "swb": "कोमोरियन", "syc": "क्लासिकल सिरिएक", "syr": "सिरिएक", "ta": "तमिल", "te": "तेलुगू", "tem": "टिम्ने", "teo": "टेसो", "ter": "तेरेनो", "tet": "तेतुम", "tg": "ताजिक", "th": "थाई", "ti": "तिग्रीन्या", "tig": "टाइग्रे", "tiv": "तिव", "tk": "तुर्कमेन", "tkl": "तोकेलाऊ", "tl": "टैगलॉग", "tlh": "क्लिंगन", "tli": "त्लिंगित", "tmh": "तामाशेक", "tn": "सेत्स्वाना", "to": "टोंगन", "tog": "न्यासा टोन्गा", "tpi": "टोक पिसिन", "tr": "तुर्की", "trv": "तारोको", "ts": "सोंगा", "tsi": "त्सिमीशियन", "tt": "तातार", "tum": "तम्बूका", "tvl": "तुवालु", "tw": "ट्वी", "twq": "टासवाक", "ty": "ताहितियन", "tyv": "तुवीनियन", "tzm": "मध्य एटलस तमाज़ित", "udm": "उदमुर्त", "ug": "उइगर", "uga": "युगैरिटिक", "uk": "यूक्रेनियाई", "umb": "उम्बुन्डु", "ur": "उर्दू", "uz": "उज़्बेक", "vai": "वाई", "ve": "वेन्दा", "vi": "वियतनामी", "vo": "वोलापुक", "vot": "वॉटिक", "vun": "वुंजो", "wa": "वाल्लून", "wae": "वाल्सर", "wal": "वलामो", "war": "वारै", "was": "वाशो", "wbp": "वॉल्पेरी", "wo": "वोलोफ़", "wuu": "वू चीनी", "xal": "काल्मिक", "xh": "ख़ोसा", "xog": "सोगा", "yao": "याओ", "yap": "यापीस", "yav": "यांगबेन", "ybb": "येंबा", "yi": "यहूदी", "yo": "योरूबा", "yue": "कैंटोनीज़", "za": "ज़ुआंग", "zap": "ज़ेपोटेक", "zbl": "ब्लिसिम्बॉल्स", "zen": "ज़ेनान्गा", "zgh": "मानक मोरक्कन तामाज़ाइट", "zh": "चीनी", "zh-Hans": "सरलीकृत चीनी", "zh-Hant": "पारंपरिक चीनी", "zu": "ज़ुलू", "zun": "ज़ूनी", "zza": "ज़ाज़ा"}}, - "hr": {"rtl": false, "languageNames": {"aa": "afarski", "ab": "abhaski", "ace": "ačinski", "ach": "ačoli", "ada": "adangme", "ady": "adigejski", "ae": "avestički", "af": "afrikaans", "afh": "afrihili", "agq": "aghem", "ain": "ainuski", "ak": "akanski", "akk": "akadski", "ale": "aleutski", "alt": "južni altai", "am": "amharski", "an": "aragonski", "ang": "staroengleski", "anp": "angika", "ar": "arapski", "ar-001": "moderni standardni arapski", "arc": "aramejski", "arn": "mapuche", "arp": "arapaho", "ars": "najdi arapski", "arw": "aravački", "as": "asamski", "asa": "asu", "ast": "asturijski", "av": "avarski", "awa": "awadhi", "ay": "ajmarski", "az": "azerbajdžanski", "az-Arab": "južnoazerbajdžanski", "ba": "baškirski", "bal": "belučki", "ban": "balijski", "bas": "basa", "bax": "bamunski", "bbj": "ghomala", "be": "bjeloruski", "bej": "beja", "bem": "bemba", "bez": "bena", "bfd": "bafut", "bg": "bugarski", "bgn": "zapadnobaludžijski", "bho": "bhojpuri", "bi": "bislama", "bik": "bikolski", "bin": "bini", "bkm": "kom", "bla": "siksika", "bm": "bambara", "bn": "bangla", "bo": "tibetski", "br": "bretonski", "bra": "braj", "brx": "bodo", "bs": "bosanski", "bss": "akoose", "bua": "burjatski", "bug": "buginski", "bum": "bulu", "byn": "blin", "byv": "medumba", "ca": "katalonski", "cad": "caddo", "car": "karipski", "cay": "cayuga", "cch": "atsam", "ccp": "chakma", "ce": "čečenski", "ceb": "cebuano", "cgg": "chiga", "ch": "chamorro", "chb": "čibča", "chg": "čagatajski", "chk": "chuukese", "chm": "marijski", "chn": "chinook žargon", "cho": "choctaw", "chp": "chipewyan", "chr": "čerokijski", "chy": "čejenski", "ckb": "soranski kurdski", "co": "korzički", "cop": "koptski", "cr": "cree", "crh": "krimski turski", "crs": "sejšelski kreolski", "cs": "češki", "csb": "kašupski", "cu": "crkvenoslavenski", "cv": "čuvaški", "cy": "velški", "da": "danski", "dak": "dakota jezik", "dar": "dargwa", "dav": "taita", "de": "njemački", "de-AT": "austrijski njemački", "de-CH": "gornjonjemački (švicarski)", "del": "delavarski", "den": "slave", "dgr": "dogrib", "din": "dinka", "dje": "zarma", "doi": "dogri", "dsb": "donjolužički", "dua": "duala", "dum": "srednjonizozemski", "dv": "divehi", "dyo": "jola-fonyi", "dyu": "dyula", "dz": "dzongkha", "dzg": "dazaga", "ebu": "embu", "ee": "ewe", "efi": "efik", "egy": "staroegipatski", "eka": "ekajuk", "el": "grčki", "elx": "elamitski", "en": "engleski", "en-AU": "australski engleski", "en-CA": "kanadski engleski", "en-GB": "britanski engleski", "en-US": "američki engleski", "enm": "srednjoengleski", "eo": "esperanto", "es": "španjolski", "es-419": "latinoamerički španjolski", "es-ES": "europski španjolski", "es-MX": "meksički španjolski", "et": "estonski", "eu": "baskijski", "ewo": "ewondo", "fa": "perzijski", "fan": "fang", "fat": "fanti", "ff": "fula", "fi": "finski", "fil": "filipinski", "fj": "fidžijski", "fo": "ferojski", "fr": "francuski", "fr-CA": "kanadski francuski", "fr-CH": "švicarski francuski", "frc": "kajunski francuski", "frm": "srednjofrancuski", "fro": "starofrancuski", "frr": "sjevernofrizijski", "frs": "istočnofrizijski", "fur": "furlanski", "fy": "zapadnofrizijski", "ga": "irski", "gaa": "ga", "gag": "gagauski", "gan": "gan kineski", "gay": "gayo", "gba": "gbaya", "gd": "škotski gaelski", "gez": "geez", "gil": "gilbertski", "gl": "galicijski", "gmh": "srednjogornjonjemački", "gn": "gvaranski", "goh": "starovisokonjemački", "gon": "gondi", "gor": "gorontalo", "got": "gotski", "grb": "grebo", "grc": "starogrčki", "gsw": "švicarski njemački", "gu": "gudžaratski", "guz": "gusii", "gv": "manski", "gwi": "gwich’in", "ha": "hausa", "hai": "haidi", "hak": "hakka kineski", "haw": "havajski", "he": "hebrejski", "hi": "hindski", "hil": "hiligaynonski", "hit": "hetitski", "hmn": "hmong", "ho": "hiri motu", "hr": "hrvatski", "hsb": "gornjolužički", "hsn": "xiang kineski", "ht": "haićanski kreolski", "hu": "mađarski", "hup": "hupa", "hy": "armenski", "hz": "herero", "ia": "interlingua", "iba": "iban", "ibb": "ibibio", "id": "indonezijski", "ie": "interligua", "ig": "igbo", "ii": "sichuan ji", "ik": "inupiaq", "ilo": "iloko", "inh": "ingušetski", "io": "ido", "is": "islandski", "it": "talijanski", "iu": "inuktitut", "ja": "japanski", "jbo": "lojban", "jgo": "ngomba", "jmc": "machame", "jpr": "judejsko-perzijski", "jrb": "judejsko-arapski", "jv": "javanski", "ka": "gruzijski", "kaa": "kara-kalpak", "kab": "kabilski", "kac": "kačinski", "kaj": "kaje", "kam": "kamba", "kaw": "kawi", "kbd": "kabardinski", "kbl": "kanembu", "kcg": "tyap", "kde": "makonde", "kea": "zelenortski", "kfo": "koro", "kg": "kongo", "kha": "khasi", "kho": "khotanese", "khq": "koyra chiini", "ki": "kikuyu", "kj": "kuanyama", "kk": "kazaški", "kkj": "kako", "kl": "kalaallisut", "kln": "kalenjin", "km": "kmerski", "kmb": "kimbundu", "kn": "karnatački", "ko": "korejski", "koi": "komi-permski", "kok": "konkani", "kos": "naurski", "kpe": "kpelle", "kr": "kanuri", "krc": "karachay-balkar", "krl": "karelijski", "kru": "kuruški", "ks": "kašmirski", "ksb": "shambala", "ksf": "bafia", "ksh": "kelnski", "ku": "kurdski", "kum": "kumyk", "kut": "kutenai", "kv": "komi", "kw": "kornski", "ky": "kirgiski", "la": "latinski", "lad": "ladino", "lag": "langi", "lah": "lahnda", "lam": "lamba", "lb": "luksemburški", "lez": "lezgiški", "lg": "ganda", "li": "limburški", "lkt": "lakota", "ln": "lingala", "lo": "laoski", "lol": "mongo", "lou": "lujzijanski kreolski", "loz": "lozi", "lrc": "sjevernolurski", "lt": "litavski", "lu": "luba-katanga", "lua": "luba-lulua", "lui": "luiseno", "lun": "lunda", "lus": "lushai", "luy": "luyia", "lv": "latvijski", "mad": "madurski", "maf": "mafa", "mag": "magahi", "mai": "maithili", "mak": "makasar", "man": "mandingo", "mas": "masajski", "mde": "maba", "mdf": "moksha", "mdr": "mandar", "men": "mende", "mer": "meru", "mfe": "mauricijski kreolski", "mg": "malgaški", "mga": "srednjoirski", "mgh": "makhuwa-meetto", "mgo": "meta’", "mh": "maršalski", "mi": "maorski", "mic": "micmac", "min": "minangkabau", "mk": "makedonski", "ml": "malajalamski", "mn": "mongolski", "mnc": "mandžurski", "mni": "manipurski", "moh": "mohok", "mos": "mossi", "mr": "marathski", "ms": "malajski", "mt": "malteški", "mua": "mundang", "mus": "creek", "mwl": "mirandski", "mwr": "marwari", "my": "burmanski", "mye": "myene", "myv": "mordvinski", "mzn": "mazanderanski", "na": "nauru", "nan": "min nan kineski", "nap": "napolitanski", "naq": "nama", "nb": "norveški bokmål", "nd": "sjeverni ndebele", "nds": "donjonjemački", "nds-NL": "donjosaksonski", "ne": "nepalski", "new": "newari", "ng": "ndonga", "nia": "nias", "niu": "niujski", "nl": "nizozemski", "nl-BE": "flamanski", "nmg": "kwasio", "nn": "norveški nynorsk", "nnh": "ngiemboon", "no": "norveški", "nog": "nogajski", "non": "staronorveški", "nqo": "n’ko", "nr": "južni ndebele", "nso": "sjeverni sotski", "nus": "nuerski", "nv": "navajo", "nwc": "klasični newari", "ny": "njandža", "nym": "nyamwezi", "nyn": "nyankole", "nyo": "nyoro", "nzi": "nzima", "oc": "okcitanski", "oj": "ojibwa", "om": "oromski", "or": "orijski", "os": "osetski", "osa": "osage", "ota": "turski - otomanski", "pa": "pandžapski", "pag": "pangasinan", "pal": "pahlavi", "pam": "pampanga", "pap": "papiamento", "pau": "palauanski", "pcm": "nigerijski pidžin", "peo": "staroperzijski", "phn": "fenički", "pi": "pali", "pl": "poljski", "pon": "pohnpeian", "prg": "pruski", "pro": "staroprovansalski", "ps": "paštunski", "pt": "portugalski", "pt-BR": "brazilski portugalski", "pt-PT": "europski portugalski", "qu": "kečuanski", "quc": "kiče", "raj": "rajasthani", "rap": "rapa nui", "rar": "rarotonški", "rm": "retoromanski", "rn": "rundi", "ro": "rumunjski", "ro-MD": "moldavski", "rof": "rombo", "rom": "romski", "root": "korijenski", "ru": "ruski", "rup": "aromunski", "rw": "kinyarwanda", "rwk": "rwa", "sa": "sanskrtski", "sad": "sandawe", "sah": "jakutski", "sam": "samarijanski aramejski", "saq": "samburu", "sas": "sasak", "sat": "santalski", "sba": "ngambay", "sbp": "sangu", "sc": "sardski", "scn": "sicilijski", "sco": "škotski", "sd": "sindski", "sdh": "južnokurdski", "se": "sjeverni sami", "see": "seneca", "seh": "sena", "sel": "selkupski", "ses": "koyraboro senni", "sg": "sango", "sga": "staroirski", "sh": "srpsko-hrvatski", "shi": "tachelhit", "shn": "shan", "shu": "čadski arapski", "si": "sinhaleški", "sid": "sidamo", "sk": "slovački", "sl": "slovenski", "sm": "samoanski", "sma": "južni sami", "smj": "lule sami", "smn": "inari sami", "sms": "skolt sami", "sn": "shona", "snk": "soninke", "so": "somalski", "sog": "sogdien", "sq": "albanski", "sr": "srpski", "srn": "sranan tongo", "srr": "serer", "ss": "svati", "ssy": "saho", "st": "sesotski", "su": "sundanski", "suk": "sukuma", "sus": "susu", "sux": "sumerski", "sv": "švedski", "sw": "svahili", "sw-CD": "kongoanski svahili", "swb": "komorski", "syc": "klasični sirski", "syr": "sirijski", "ta": "tamilski", "te": "teluški", "tem": "temne", "teo": "teso", "ter": "tereno", "tet": "tetum", "tg": "tadžički", "th": "tajlandski", "ti": "tigrinja", "tig": "tigriški", "tk": "turkmenski", "tkl": "tokelaunski", "tl": "tagalog", "tlh": "klingonski", "tli": "tlingit", "tmh": "tamašečki", "tn": "cvana", "to": "tonganski", "tog": "nyasa tonga", "tpi": "tok pisin", "tr": "turski", "trv": "taroko", "ts": "tsonga", "tsi": "tsimshian", "tt": "tatarski", "tum": "tumbuka", "tvl": "tuvaluanski", "tw": "twi", "twq": "tasawaq", "ty": "tahićanski", "tyv": "tuvinski", "tzm": "tamašek (Srednji Atlas)", "udm": "udmurtski", "ug": "ujgurski", "uga": "ugaritski", "uk": "ukrajinski", "umb": "umbundu", "ur": "urdski", "uz": "uzbečki", "ve": "venda", "vi": "vijetnamski", "vo": "volapük", "vot": "votski", "vun": "vunjo", "wa": "valonski", "wae": "walserski", "wal": "walamo", "war": "waray", "was": "washo", "wbp": "warlpiri", "wo": "volof", "wuu": "wu kineski", "xal": "kalmyk", "xh": "xhosa", "xog": "soga", "yap": "japski", "yav": "yangben", "ybb": "yemba", "yi": "jidiš", "yo": "jorupski", "yue": "kantonski", "za": "zhuang", "zap": "zapotečki", "zbl": "Blissovi simboli", "zen": "zenaga", "zgh": "standardni marokanski tamašek", "zh": "kineski", "zh-Hans": "kineski (pojednostavljeni)", "zh-Hant": "kineski (tradicionalni)", "zu": "zulu", "zun": "zuni", "zza": "zazaki"}}, - "hu": {"rtl": false, "languageNames": {"aa": "afar", "ab": "abház", "ace": "achinéz", "ach": "akoli", "ada": "adangme", "ady": "adyghe", "ae": "avesztán", "af": "afrikaans", "afh": "afrihili", "agq": "agem", "ain": "ainu", "ak": "akan", "akk": "akkád", "ale": "aleut", "alt": "dél-altaji", "am": "amhara", "an": "aragonéz", "ang": "óangol", "anp": "angika", "ar": "arab", "ar-001": "modern szabányos arab", "arc": "arámi", "arn": "mapucse", "arp": "arapaho", "ars": "nedzsdi arab", "arw": "aravak", "as": "asszámi", "asa": "asu", "ast": "asztúr", "av": "avar", "awa": "awádi", "ay": "ajmara", "az": "azerbajdzsáni", "ba": "baskír", "bal": "balucsi", "ban": "balinéz", "bas": "basza", "bax": "bamun", "bbj": "gomala", "be": "belarusz", "bej": "bedzsa", "bem": "bemba", "bez": "bena", "bfd": "bafut", "bg": "bolgár", "bgn": "nyugati beludzs", "bho": "bodzspuri", "bi": "bislama", "bik": "bikol", "bin": "bini", "bkm": "kom", "bla": "siksika", "bm": "bambara", "bn": "bangla", "bo": "tibeti", "br": "breton", "bra": "braj", "brx": "bodo", "bs": "bosnyák", "bss": "koszi", "bua": "burját", "bug": "buginéz", "bum": "bulu", "byn": "blin", "byv": "medumba", "ca": "katalán", "cad": "caddo", "car": "karib", "cay": "kajuga", "cch": "atszam", "ccp": "csakma", "ce": "csecsen", "ceb": "szebuano", "cgg": "kiga", "ch": "csamoró", "chb": "csibcsa", "chg": "csagatáj", "chk": "csukéz", "chm": "mari", "chn": "csinuk zsargon", "cho": "csoktó", "chp": "csipevé", "chr": "cseroki", "chy": "csejen", "ckb": "közép-ázsiai kurd", "co": "korzikai", "cop": "kopt", "cr": "krí", "crh": "krími tatár", "crs": "szeszelva kreol francia", "cs": "cseh", "csb": "kasub", "cu": "egyházi szláv", "cv": "csuvas", "cy": "walesi", "da": "dán", "dak": "dakota", "dar": "dargva", "dav": "taita", "de": "német", "de-AT": "osztrák német", "de-CH": "svájci felnémet", "del": "delavár", "den": "szlevi", "dgr": "dogrib", "din": "dinka", "dje": "zarma", "doi": "dogri", "dsb": "alsó-szorb", "dua": "duala", "dum": "közép holland", "dv": "divehi", "dyo": "jola-fonyi", "dyu": "diula", "dz": "dzsonga", "dzg": "dazaga", "ebu": "embu", "ee": "eve", "efi": "efik", "egy": "óegyiptomi", "eka": "ekadzsuk", "el": "görög", "elx": "elamit", "en": "angol", "en-AU": "ausztrál angol", "en-CA": "kanadai angol", "en-GB": "brit angol", "en-US": "amerikai angol", "enm": "közép angol", "eo": "eszperantó", "es": "spanyol", "es-419": "latin-amerikai spanyol", "es-ES": "európai spanyol", "es-MX": "spanyol (mexikói)", "et": "észt", "eu": "baszk", "ewo": "evondo", "fa": "perzsa", "fan": "fang", "fat": "fanti", "ff": "fulani", "fi": "finn", "fil": "filippínó", "fj": "fidzsi", "fo": "feröeri", "fr": "francia", "fr-CA": "kanadai francia", "fr-CH": "svájci francia", "frc": "cajun francia", "frm": "közép francia", "fro": "ófrancia", "frr": "északi fríz", "frs": "keleti fríz", "fur": "friuli", "fy": "nyugati fríz", "ga": "ír", "gaa": "ga", "gag": "gagauz", "gan": "gan kínai", "gay": "gajo", "gba": "gbaja", "gd": "skóciai kelta", "gez": "geez", "gil": "ikiribati", "gl": "gallego", "gmh": "közép felső német", "gn": "guarani", "goh": "ófelső német", "gon": "gondi", "gor": "gorontalo", "got": "gót", "grb": "grebó", "grc": "ógörög", "gsw": "svájci német", "gu": "gudzsaráti", "guz": "guszii", "gv": "man-szigeti", "gwi": "gvicsin", "ha": "hausza", "hai": "haida", "hak": "hakka kínai", "haw": "hawaii", "he": "héber", "hi": "hindi", "hil": "ilokano", "hit": "hittite", "hmn": "hmong", "ho": "hiri motu", "hr": "horvát", "hsb": "felső-szorb", "hsn": "xiang kínai", "ht": "haiti kreol", "hu": "magyar", "hup": "hupa", "hy": "örmény", "hz": "herero", "ia": "interlingva", "iba": "iban", "ibb": "ibibio", "id": "indonéz", "ie": "interlingue", "ig": "igbó", "ii": "szecsuán ji", "ik": "inupiak", "ilo": "ilokó", "inh": "ingus", "io": "idó", "is": "izlandi", "it": "olasz", "iu": "inuktitut", "ja": "japán", "jbo": "lojban", "jgo": "ngomba", "jmc": "machame", "jpr": "zsidó-perzsa", "jrb": "zsidó-arab", "jv": "jávai", "ka": "grúz", "kaa": "kara-kalpak", "kab": "kabije", "kac": "kacsin", "kaj": "jju", "kam": "kamba", "kaw": "kawi", "kbd": "kabardi", "kbl": "kanembu", "kcg": "tyap", "kde": "makonde", "kea": "kabuverdianu", "kfo": "koro", "kg": "kongo", "kha": "kaszi", "kho": "kotanéz", "khq": "kojra-csíni", "ki": "kikuju", "kj": "kuanyama", "kk": "kazah", "kkj": "kakó", "kl": "grönlandi", "kln": "kalendzsin", "km": "khmer", "kmb": "kimbundu", "kn": "kannada", "ko": "koreai", "koi": "komi-permják", "kok": "konkani", "kos": "kosrei", "kpe": "kpelle", "kr": "kanuri", "krc": "karacsáj-balkár", "krl": "karelai", "kru": "kuruh", "ks": "kasmíri", "ksb": "sambala", "ksf": "bafia", "ksh": "kölsch", "ku": "kurd", "kum": "kumük", "kut": "kutenai", "kv": "komi", "kw": "korni", "ky": "kirgiz", "la": "latin", "lad": "ladino", "lag": "langi", "lah": "lahnda", "lam": "lamba", "lb": "luxemburgi", "lez": "lezg", "lg": "ganda", "li": "limburgi", "lkt": "lakota", "ln": "lingala", "lo": "lao", "lol": "mongó", "lou": "louisianai kreol", "loz": "lozi", "lrc": "északi luri", "lt": "litván", "lu": "luba-katanga", "lua": "luba-lulua", "lui": "luiseno", "lun": "lunda", "lus": "lushai", "luy": "lujia", "lv": "lett", "mad": "madurai", "maf": "mafa", "mag": "magahi", "mai": "maithili", "mak": "makaszar", "man": "mandingó", "mas": "masai", "mde": "maba", "mdf": "moksán", "mdr": "mandar", "men": "mende", "mer": "meru", "mfe": "mauritiusi kreol", "mg": "malgas", "mga": "közép ír", "mgh": "makua-metó", "mgo": "meta’", "mh": "marshalli", "mi": "maori", "mic": "mikmak", "min": "minangkabau", "mk": "macedón", "ml": "malajálam", "mn": "mongol", "mnc": "mandzsu", "mni": "manipuri", "moh": "mohawk", "mos": "moszi", "mr": "maráthi", "ms": "maláj", "mt": "máltai", "mua": "mundang", "mus": "krík", "mwl": "mirandéz", "mwr": "márvári", "my": "burmai", "mye": "myene", "myv": "erzjány", "mzn": "mázanderáni", "na": "naurui", "nan": "min nan kínai", "nap": "nápolyi", "naq": "nama", "nb": "norvég (bokmål)", "nd": "északi ndebele", "nds": "alsónémet", "nds-NL": "alsószász", "ne": "nepáli", "new": "nevari", "ng": "ndonga", "nia": "nias", "niu": "niuei", "nl": "holland", "nl-BE": "flamand", "nmg": "ngumba", "nn": "norvég (nynorsk)", "nnh": "ngiemboon", "no": "norvég", "nog": "nogaj", "non": "óskandináv", "nqo": "n’kó", "nr": "déli ndebele", "nso": "északi szeszotó", "nus": "nuer", "nv": "navahó", "nwc": "klasszikus newari", "ny": "nyandzsa", "nym": "nyamvézi", "nyn": "nyankole", "nyo": "nyoró", "nzi": "nzima", "oc": "okszitán", "oj": "ojibva", "om": "oromo", "or": "odia", "os": "oszét", "osa": "osage", "ota": "ottomán török", "pa": "pandzsábi", "pag": "pangaszinan", "pal": "pahlavi", "pam": "pampangan", "pap": "papiamento", "pau": "palaui", "pcm": "nigériai pidgin", "peo": "óperzsa", "phn": "főniciai", "pi": "pali", "pl": "lengyel", "pon": "pohnpei", "prg": "porosz", "pro": "óprovánszi", "ps": "pastu", "pt": "portugál", "pt-BR": "brazíliai portugál", "pt-PT": "európai portugál", "qu": "kecsua", "quc": "kicse", "raj": "radzsasztáni", "rap": "rapanui", "rar": "rarotongai", "rm": "rétoromán", "rn": "kirundi", "ro": "román", "ro-MD": "moldvai", "rof": "rombo", "rom": "roma", "root": "ősi", "ru": "orosz", "rup": "aromán", "rw": "kinyarvanda", "rwk": "rwo", "sa": "szanszkrit", "sad": "szandave", "sah": "szaha", "sam": "szamaritánus arámi", "saq": "szamburu", "sas": "sasak", "sat": "szantáli", "sba": "ngambay", "sbp": "szangu", "sc": "szardíniai", "scn": "szicíliai", "sco": "skót", "sd": "szindhi", "sdh": "dél-kurd", "se": "északi számi", "see": "szeneka", "seh": "szena", "sel": "szölkup", "ses": "kojra-szenni", "sg": "szangó", "sga": "óír", "sh": "szerbhorvát", "shi": "tachelhit", "shn": "san", "shu": "csádi arab", "si": "szingaléz", "sid": "szidamó", "sk": "szlovák", "sl": "szlovén", "sm": "szamoai", "sma": "déli számi", "smj": "lulei számi", "smn": "inari számi", "sms": "kolta számi", "sn": "sona", "snk": "szoninke", "so": "szomáli", "sog": "sogdien", "sq": "albán", "sr": "szerb", "srn": "szranai tongó", "srr": "szerer", "ss": "sziszuati", "ssy": "szahó", "st": "déli szeszotó", "su": "szundanéz", "suk": "szukuma", "sus": "szuszu", "sux": "sumér", "sv": "svéd", "sw": "szuahéli", "sw-CD": "kongói szuahéli", "swb": "comorei", "syc": "klasszikus szír", "syr": "szír", "ta": "tamil", "te": "telugu", "tem": "temne", "teo": "teszó", "ter": "terenó", "tet": "tetum", "tg": "tadzsik", "th": "thai", "ti": "tigrinya", "tig": "tigré", "tk": "türkmén", "tkl": "tokelaui", "tl": "tagalog", "tlh": "klingon", "tli": "tlingit", "tmh": "tamasek", "tn": "szecsuáni", "to": "tongai", "tog": "nyugati nyasza", "tpi": "tok pisin", "tr": "török", "trv": "tarokó", "ts": "conga", "tsi": "csimsiáni", "tt": "tatár", "tum": "tumbuka", "tvl": "tuvalu", "tw": "twi", "twq": "szavák", "ty": "tahiti", "tyv": "tuvai", "tzm": "közép-atlaszi tamazigt", "udm": "udmurt", "ug": "ujgur", "uga": "ugariti", "uk": "ukrán", "umb": "umbundu", "ur": "urdu", "uz": "üzbég", "ve": "venda", "vi": "vietnami", "vo": "volapük", "vot": "votják", "vun": "vunjo", "wa": "vallon", "wae": "walser", "wal": "valamo", "war": "varaó", "was": "vasó", "wbp": "warlpiri", "wo": "volof", "wuu": "wu kínai", "xal": "kalmük", "xh": "xhosza", "xog": "szoga", "yao": "jaó", "yap": "japi", "yav": "jangben", "ybb": "jemba", "yi": "jiddis", "yo": "joruba", "yue": "kantoni", "za": "zsuang", "zap": "zapoték", "zbl": "Bliss jelképrendszer", "zen": "zenaga", "zgh": "marokkói tamazight", "zh": "kínai", "zh-Hans": "egyszerűsített kínai", "zh-Hant": "hagyományos kínai", "zu": "zulu", "zun": "zuni", "zza": "zaza"}}, - "hy": {"rtl": false, "languageNames": {"aa": "աֆարերեն", "ab": "աբխազերեն", "ace": "աչեհերեն", "ach": "աչոլի", "ada": "ադանգմերեն", "ady": "ադիղերեն", "aeb": "թունիսական արաբերեն", "af": "աֆրիկաանս", "agq": "աղեմ", "ain": "այներեն", "ak": "աքան", "akk": "աքքադերեն", "ale": "ալեութերեն", "alt": "հարավային ալթայերեն", "am": "ամհարերեն", "an": "արագոներեն", "ang": "հին անգլերեն", "anp": "անգիկա", "ar": "արաբերեն", "ar-001": "արդի ընդհանուր արաբերեն", "arc": "արամեերեն", "arn": "մապուչի", "arp": "արապահո", "arq": "ալժիրական արաբերեն", "arz": "եգիպտական արաբերեն", "as": "ասամերեն", "asa": "ասու", "ase": "ամերիկյան ժեստերի լեզու", "ast": "աստուրերեն", "av": "ավարերեն", "awa": "ավադհի", "ay": "այմարա", "az": "ադրբեջաներեն", "ba": "բաշկիրերեն", "ban": "բալիերեն", "bas": "բասաա", "be": "բելառուսերեն", "bem": "բեմբա", "bez": "բենա", "bg": "բուլղարերեն", "bgn": "արևմտաբելուջիերեն", "bho": "բհոպուրի", "bi": "բիսլամա", "bin": "բինի", "bla": "սիկսիկա", "bm": "բամբարա", "bn": "բենգալերեն", "bo": "տիբեթերեն", "br": "բրետոներեն", "brx": "բոդո", "bs": "բոսնիերեն", "bss": "աքուզ", "bug": "բուգիերեն", "byn": "բիլին", "ca": "կատալաներեն", "ce": "չեչեներեն", "ceb": "սեբուերեն", "cgg": "չիգա", "ch": "չամոռո", "chk": "տրուկերեն", "chm": "մարի", "cho": "չոկտո", "chr": "չերոկի", "chy": "շայեն", "ckb": "սորանի քրդերեն", "co": "կորսիկերեն", "cop": "ղպտերեն", "crh": "ղրիմյան թուրքերեն", "crs": "սեյշելյան խառնակերտ ֆրանսերեն", "cs": "չեխերեն", "cu": "եկեղեցական սլավոներեն", "cv": "չուվաշերեն", "cy": "ուելսերեն", "da": "դանիերեն", "dak": "դակոտա", "dar": "դարգիներեն", "dav": "թաիթա", "de": "գերմաներեն", "de-AT": "ավստրիական գերմաներեն", "de-CH": "շվեյցարական վերին գերմաներեն", "dgr": "դոգրիբ", "dje": "զարմա", "dsb": "ստորին սորբերեն", "dua": "դուալա", "dv": "մալդիվերեն", "dyo": "ջոլա-ֆոնյի", "dz": "ջոնգքհա", "dzg": "դազագա", "ebu": "էմբու", "ee": "էվե", "efi": "էֆիկ", "egy": "հին եգիպտերեն", "eka": "էկաջուկ", "el": "հունարեն", "en": "անգլերեն", "en-AU": "ավստրալիական անգլերեն", "en-CA": "կանադական անգլերեն", "en-GB": "բրիտանական անգլերեն", "en-US": "ամերիկյան անգլերեն", "eo": "էսպերանտո", "es": "իսպաներեն", "es-419": "լատինամերիկյան իսպաներեն", "es-ES": "եվրոպական իսպաներեն", "es-MX": "մեքսիկական իսպաներեն", "et": "էստոներեն", "eu": "բասկերեն", "ewo": "էվոնդո", "fa": "պարսկերեն", "ff": "ֆուլահ", "fi": "ֆիններեն", "fil": "ֆիլիպիներեն", "fit": "տորնադելեն ֆիններեն", "fj": "ֆիջիերեն", "fo": "ֆարյորերեն", "fon": "ֆոն", "fr": "ֆրանսերեն", "fr-CA": "կանադական ֆրանսերեն", "fr-CH": "շվեյցարական ֆրանսերեն", "fro": "հին ֆրանսերեն", "frs": "արևելաֆրիզերեն", "fur": "ֆրիուլիերեն", "fy": "արևմտաֆրիզերեն", "ga": "իռլանդերեն", "gaa": "գայերեն", "gag": "գագաուզերեն", "gbz": "զրադաշտական դարի", "gd": "շոտլանդական գաելերեն", "gez": "գեեզ", "gil": "կիրիբատի", "gl": "գալիսերեն", "gn": "գուարանի", "goh": "հին վերին գերմաներեն", "gor": "գորոնտալո", "got": "գոթերեն", "grc": "հին հունարեն", "gsw": "շվեյցարական գերմաներեն", "gu": "գուջարաթի", "guc": "վայուու", "guz": "գուսի", "gv": "մեներեն", "gwi": "գվիչին", "ha": "հաուսա", "haw": "հավայիերեն", "he": "եբրայերեն", "hi": "հինդի", "hil": "հիլիգայնոն", "hmn": "հմոնգ", "hr": "խորվաթերեն", "hsb": "վերին սորբերեն", "hsn": "սյան չինարեն", "ht": "խառնակերտ հայիթերեն", "hu": "հունգարերեն", "hup": "հուպա", "hy": "հայերեն", "hz": "հերերո", "ia": "ինտերլինգուա", "iba": "իբաներեն", "ibb": "իբիբիո", "id": "ինդոնեզերեն", "ie": "ինտերլինգուե", "ig": "իգբո", "ii": "սիչուան", "ilo": "իլոկերեն", "inh": "ինգուշերեն", "io": "իդո", "is": "իսլանդերեն", "it": "իտալերեն", "iu": "ինուկտիտուտ", "ja": "ճապոներեն", "jbo": "լոժբան", "jgo": "նգոմբա", "jmc": "մաշամե", "jv": "ճավայերեն", "ka": "վրացերեն", "kab": "կաբիլերեն", "kac": "կաչիներեն", "kaj": "ջյու", "kam": "կամբա", "kbd": "կաբարդերեն", "kcg": "տիապ", "kde": "մակոնդե", "kea": "կաբուվերդերեն", "kfo": "կորո", "kha": "քասիերեն", "khq": "կոյրա չինի", "ki": "կիկույու", "kj": "կուանյամա", "kk": "ղազախերեն", "kkj": "կակո", "kl": "կալաալիսուտ", "kln": "կալենջին", "km": "քմերերեն", "kmb": "կիմբունդու", "kn": "կաննադա", "ko": "կորեերեն", "koi": "պերմյակ կոմիերեն", "kok": "կոնկանի", "kpe": "կպելլեերեն", "kr": "կանուրի", "krc": "կարաչայ-բալկարերեն", "krl": "կարելերեն", "kru": "կուրուխ", "ks": "քաշմիրերեն", "ksb": "շամբալա", "ksf": "բաֆիա", "ksh": "քյոլներեն", "ku": "քրդերեն", "kum": "կումիկերեն", "kv": "կոմիերեն", "kw": "կոռներեն", "ky": "ղրղզերեն", "la": "լատիներեն", "lad": "լադինո", "lag": "լանգի", "lb": "լյուքսեմբուրգերեն", "lez": "լեզգիերեն", "lg": "գանդա", "li": "լիմբուրգերեն", "lkt": "լակոտա", "ln": "լինգալա", "lo": "լաոսերեն", "loz": "լոզի", "lrc": "հյուսիսային լուրիերեն", "lt": "լիտվերեն", "lu": "լուբա-կատանգա", "lua": "լուբա-լուլուա", "lun": "լունդա", "luo": "լուո", "lus": "միզո", "luy": "լույա", "lv": "լատվիերեն", "mad": "մադուրերեն", "mag": "մագահի", "mai": "մայթիլի", "mak": "մակասարերեն", "mas": "մասաի", "mdf": "մոկշայերեն", "men": "մենդե", "mer": "մերու", "mfe": "մորիսյեն", "mg": "մալգաշերեն", "mgh": "մաքուա-մետտո", "mgo": "մետա", "mh": "մարշալերեն", "mi": "մաորի", "mic": "միկմակ", "min": "մինանգկաբաու", "mk": "մակեդոներեն", "ml": "մալայալամ", "mn": "մոնղոլերեն", "mni": "մանիպուրի", "moh": "մոհավք", "mos": "մոսսի", "mr": "մարաթի", "mrj": "արևմտամարիերեն", "ms": "մալայերեն", "mt": "մալթայերեն", "mua": "մունդանգ", "mus": "կրիկ", "mwl": "միրանդերեն", "my": "բիրմայերեն", "myv": "էրզյա", "mzn": "մազանդարաներեն", "na": "նաուրու", "nap": "նեապոլերեն", "naq": "նամա", "nb": "գրքային նորվեգերեն", "nd": "հյուսիսային նդեբելե", "nds-NL": "ստորին սաքսոներեն", "ne": "նեպալերեն", "new": "նեվարերեն", "ng": "նդոնգա", "nia": "նիասերեն", "niu": "նիուերեն", "nl": "հոլանդերեն", "nl-BE": "ֆլամանդերեն", "nmg": "կվասիո", "nn": "նոր նորվեգերեն", "nnh": "նգիեմբուն", "no": "նորվեգերեն", "nog": "նոգայերեն", "non": "հին նորվեգերեն", "nqo": "նկո", "nr": "հարավային նդեբելե", "nso": "հյուսիսային սոթո", "nus": "նուեր", "nv": "նավախո", "ny": "նյանջա", "nyn": "նյանկոլե", "oc": "օքսիտաներեն", "oj": "օջիբվա", "om": "օրոմո", "or": "օրիյա", "os": "օսերեն", "osa": "օսեյջ", "ota": "օսմաներեն", "pa": "փենջաբերեն", "pag": "պանգասինաներեն", "pal": "պահլավերեն", "pam": "պամպանգաերեն", "pap": "պապյամենտո", "pau": "պալաուերեն", "pcd": "պիկարդերեն", "pcm": "նիգերյան կրեոլերեն", "pdc": "փենսիլվանական գերմաներեն", "pdt": "պլատագերմաներեն", "peo": "հին պարսկերեն", "pfl": "պալատինյան գերմաներեն", "phn": "փյունիկերեն", "pi": "պալի", "pl": "լեհերեն", "pms": "պիեմոնտերեն", "pnt": "պոնտերեն", "pon": "պոնպեերեն", "prg": "պրուսերեն", "pro": "հին պրովանսերեն", "ps": "փուշթու", "pt": "պորտուգալերեն", "pt-BR": "բրազիլական պորտուգալերեն", "pt-PT": "եվրոպական պորտուգալերեն", "qu": "կեչուա", "quc": "քիչե", "raj": "ռաջաստաներեն", "rap": "ռապանուի", "rar": "ռարոտոնգաներեն", "rgn": "ռոմանիոլերեն", "rif": "ռիֆերեն", "rm": "ռոմանշերեն", "rn": "ռունդի", "ro": "ռումիներեն", "ro-MD": "մոլդովերեն", "rof": "ռոմբո", "rom": "ռոմաներեն", "root": "ռուտերեն", "rtm": "ռոտուման", "ru": "ռուսերեն", "rue": "ռուսիներեն", "rug": "ռովիանա", "rup": "արոմաներեն", "rw": "կինյառուանդա", "rwk": "ռվա", "sa": "սանսկրիտ", "sad": "սանդավե", "sah": "յակուտերեն", "saq": "սամբուրու", "sat": "սանտալի", "sba": "նգամբայ", "sbp": "սանգու", "sc": "սարդիներեն", "scn": "սիցիլիերեն", "sco": "շոտլանդերեն", "sd": "սինդհի", "sdh": "հարավային քրդերեն", "se": "հյուսիսային սաամի", "seh": "սենա", "ses": "կոյրաբորո սեննի", "sg": "սանգո", "sga": "հին իռլանդերեն", "sh": "սերբա-խորվաթերեն", "shi": "տաշելհիթ", "shn": "շաներեն", "si": "սինհալերեն", "sk": "սլովակերեն", "sl": "սլովեներեն", "sm": "սամոաերեն", "sma": "հարավային սաամի", "smj": "լուլե սաամի", "smn": "ինարի սաամի", "sms": "սկոլտ սաամի", "sn": "շոնա", "snk": "սոնինկե", "so": "սոմալիերեն", "sq": "ալբաներեն", "sr": "սերբերեն", "srn": "սրանան տոնգո", "ss": "սվազերեն", "ssy": "սահոերեն", "st": "հարավային սոթո", "su": "սունդաներեն", "suk": "սուկումա", "sv": "շվեդերեն", "sw": "սուահիլի", "sw-CD": "կոնգոյի սուահիլի", "swb": "կոմորերեն", "syr": "ասորերեն", "ta": "թամիլերեն", "tcy": "տուլու", "te": "թելուգու", "tem": "տեմնե", "teo": "տեսո", "ter": "տերենո", "tet": "տետում", "tg": "տաջիկերեն", "th": "թայերեն", "ti": "տիգրինյա", "tig": "տիգրե", "tiv": "տիվերեն", "tk": "թուրքմեներեն", "tkl": "տոկելաու", "tkr": "ցախուր", "tl": "տագալերեն", "tlh": "կլինգոն", "tli": "տլինգիտ", "tly": "թալիշերեն", "tmh": "տամաշեկ", "tn": "ցվանա", "to": "տոնգերեն", "tpi": "տոկ փիսին", "tr": "թուրքերեն", "tru": "տուրոյո", "trv": "տարոկո", "ts": "ցոնգա", "tsd": "ցակոներեն", "tsi": "ցիմշյան", "tt": "թաթարերեն", "tum": "տումբուկա", "tvl": "թուվալուերեն", "tw": "տուի", "twq": "տասավաք", "ty": "թաիտերեն", "tyv": "տուվերեն", "tzm": "կենտրոնատլասյան թամազիղտ", "udm": "ուդմուրտերեն", "ug": "ույղուրերեն", "uga": "ուգարիտերեն", "uk": "ուկրաիներեն", "umb": "ումբունդու", "ur": "ուրդու", "uz": "ուզբեկերեն", "vai": "վաի", "ve": "վենդա", "vec": "վենետերեն", "vep": "վեպսերեն", "vi": "վիետնամերեն", "vls": "արևմտաֆլամանդերեն", "vo": "վոլապյուկ", "vot": "վոդերեն", "vro": "վորո", "vun": "վունջո", "wa": "վալոներեն", "wae": "վալսերեն", "wal": "վոլայտա", "war": "վարայերեն", "was": "վաշո", "wbp": "վարլպիրի", "wo": "վոլոֆ", "wuu": "վու չինարեն", "xal": "կալմիկերեն", "xh": "քոսա", "xog": "սոգա", "yao": "յաո", "yap": "յափերեն", "yav": "յանգբեն", "ybb": "եմբա", "yi": "իդիշ", "yo": "յորուբա", "yue": "կանտոներեն", "za": "ժուանգ", "zap": "սապոտեկերեն", "zea": "զեյլանդերեն", "zen": "զենագա", "zgh": "ընդհանուր մարոկյան թամազիղտ", "zh": "չինարեն", "zh-Hans": "պարզեցված չինարեն", "zh-Hant": "ավանդական չինարեն", "zu": "զուլուերեն", "zun": "զունիերեն", "zza": "զազաերեն"}}, - "ia": {"rtl": false, "languageNames": {"aa": "afar", "ab": "abkhazo", "ace": "acehnese", "ada": "adangme", "ady": "adygeano", "af": "afrikaans", "agq": "aghem", "ain": "ainu", "ak": "akan", "ale": "aleuto", "alt": "altai del sud", "am": "amharico", "an": "aragonese", "anp": "angika", "ar": "arabe", "ar-001": "arabe standard moderne", "arn": "mapuche", "arp": "arapaho", "as": "assamese", "asa": "asu", "ast": "asturiano", "av": "avaro", "awa": "awadhi", "ay": "aymara", "az": "azerbaidzhano", "ba": "bashkir", "ban": "balinese", "bas": "basaa", "be": "bielorusso", "bem": "bemba", "bez": "bena", "bg": "bulgaro", "bho": "bhojpuri", "bi": "bislama", "bin": "bini", "bla": "siksika", "bm": "bambara", "bn": "bengalese", "bo": "tibetano", "br": "breton", "brx": "bodo", "bs": "bosniaco", "bug": "buginese", "byn": "blin", "ca": "catalano", "ce": "checheno", "ceb": "cebuano", "cgg": "chiga", "ch": "chamorro", "chk": "chuukese", "chm": "mari", "cho": "choctaw", "chr": "cherokee", "chy": "cheyenne", "ckb": "kurdo central", "co": "corso", "crs": "creolo seychellese", "cs": "checo", "cu": "slavo ecclesiastic", "cv": "chuvash", "cy": "gallese", "da": "danese", "dak": "dakota", "dar": "dargwa", "dav": "taita", "de": "germano", "de-AT": "germano austriac", "de-CH": "alte germano suisse", "dgr": "dogrib", "dje": "zarma", "dsb": "basse sorabo", "dua": "duala", "dv": "divehi", "dyo": "jola-fonyi", "dz": "dzongkha", "dzg": "dazaga", "ebu": "embu", "ee": "ewe", "efi": "efik", "eka": "ekajuk", "el": "greco", "en": "anglese", "en-AU": "anglese australian", "en-CA": "anglese canadian", "en-GB": "anglese britannic", "en-US": "anglese american", "eo": "esperanto", "es": "espaniol", "es-419": "espaniol latinoamerican", "es-ES": "espaniol europee", "es-MX": "espaniol mexican", "et": "estoniano", "eu": "basco", "ewo": "ewondo", "fa": "persa", "ff": "fula", "fi": "finnese", "fil": "filipino", "fj": "fijiano", "fo": "feroese", "fr": "francese", "fr-CA": "francese canadian", "fr-CH": "francese suisse", "fur": "friulano", "fy": "frison occidental", "ga": "irlandese", "gaa": "ga", "gd": "gaelico scotese", "gez": "ge’ez", "gil": "gilbertese", "gl": "galleco", "gn": "guarani", "gor": "gorontalo", "gsw": "germano suisse", "gu": "gujarati", "guz": "gusii", "gv": "mannese", "gwi": "gwich’in", "ha": "hausa", "haw": "hawaiano", "he": "hebreo", "hi": "hindi", "hil": "hiligaynon", "hmn": "hmong", "hr": "croato", "hsb": "alte sorabo", "ht": "creolo haitian", "hu": "hungaro", "hup": "hupa", "hy": "armeniano", "hz": "herero", "ia": "interlingua", "iba": "iban", "ibb": "ibibio", "id": "indonesiano", "ig": "igbo", "ii": "yi de Sichuan", "ilo": "ilocano", "inh": "ingush", "io": "ido", "is": "islandese", "it": "italiano", "iu": "inuktitut", "ja": "japonese", "jbo": "lojban", "jgo": "ngomba", "jmc": "machame", "jv": "javanese", "ka": "georgiano", "kab": "kabylo", "kac": "kachin", "kaj": "jju", "kam": "kamba", "kbd": "cabardiano", "kcg": "tyap", "kde": "makonde", "kea": "capoverdiano", "kfo": "koro", "kha": "khasi", "khq": "koyra chiini", "ki": "kikuyu", "kj": "kuanyama", "kk": "kazakh", "kkj": "kako", "kl": "groenlandese", "kln": "kalenjin", "km": "khmer", "kmb": "kimbundu", "kn": "kannada", "ko": "coreano", "kok": "konkani", "kpe": "kpelle", "kr": "kanuri", "krc": "karachay-balkaro", "krl": "careliano", "kru": "kurukh", "ks": "kashmiri", "ksb": "shambala", "ksf": "bafia", "ksh": "coloniese", "ku": "kurdo", "kum": "kumyko", "kv": "komi", "kw": "cornico", "ky": "kirghizo", "la": "latino", "lad": "ladino", "lag": "langi", "lb": "luxemburgese", "lez": "lezghiano", "lg": "luganda", "li": "limburgese", "lkt": "lakota", "ln": "lingala", "lo": "laotiano", "loz": "lozi", "lrc": "luri del nord", "lt": "lithuano", "lu": "luba-katanga", "lua": "luba-lulua", "lun": "lunda", "lus": "mizo", "luy": "luyia", "lv": "letton", "mad": "madurese", "mag": "magahi", "mai": "maithili", "mak": "macassarese", "mas": "masai", "mdf": "moksha", "men": "mende", "mer": "meri", "mfe": "creolo mauritian", "mg": "malgache", "mgh": "makhuwa-meetto", "mgo": "metaʼ", "mh": "marshallese", "mi": "maori", "mic": "micmac", "min": "minangkabau", "mk": "macedone", "ml": "malayalam", "mn": "mongol", "mni": "manipuri", "moh": "mohawk", "mos": "mossi", "mr": "marathi", "ms": "malay", "mt": "maltese", "mua": "mundang", "mus": "creek", "mwl": "mirandese", "my": "birmano", "myv": "erzya", "mzn": "mazanderani", "na": "nauru", "nap": "napolitano", "naq": "nama", "nb": "norvegiano bokmål", "nd": "ndebele del nord", "nds-NL": "nds (Nederlandia)", "ne": "nepalese", "new": "newari", "ng": "ndonga", "nia": "nias", "niu": "nieuano", "nl": "nederlandese", "nl-BE": "flamingo", "nmg": "kwasio", "nn": "norvegiano nynorsk", "nnh": "ngiemboon", "nog": "nogai", "nqo": "n’ko", "nr": "ndebele del sud", "nso": "sotho del nord", "nus": "nuer", "nv": "navajo", "ny": "nyanja", "nyn": "nyankole", "oc": "occitano", "om": "oromo", "or": "oriya", "os": "osseto", "pa": "punjabi", "pag": "pangasinan", "pam": "pampanga", "pap": "papiamento", "pau": "palauano", "pcm": "pidgin nigerian", "pl": "polonese", "prg": "prussiano", "ps": "pashto", "pt": "portugese", "pt-BR": "portugese de Brasil", "pt-PT": "portugese de Portugal", "qu": "quechua", "quc": "kʼicheʼ", "rap": "rapanui", "rar": "rarotongano", "rm": "romanche", "rn": "rundi", "ro": "romaniano", "ro-MD": "moldavo", "rof": "rombo", "root": "radice", "ru": "russo", "rup": "aromaniano", "rw": "kinyarwanda", "rwk": "rwa", "sa": "sanscrito", "sad": "sandawe", "sah": "yakuto", "saq": "samburu", "sat": "santali", "sba": "ngambay", "sbp": "sangu", "sc": "sardo", "scn": "siciliano", "sco": "scotese", "sd": "sindhi", "se": "sami del nord", "seh": "sena", "ses": "koyraboro senni", "sg": "sango", "shi": "tachelhit", "shn": "shan", "si": "cingalese", "sk": "slovaco", "sl": "sloveno", "sm": "samoano", "sma": "sami del sud", "smj": "sami de Lule", "smn": "sami de Inari", "sms": "sami skolt", "sn": "shona", "snk": "soninke", "so": "somali", "sq": "albanese", "sr": "serbo", "srn": "sranan tongo", "ss": "swati", "ssy": "saho", "st": "sotho del sud", "su": "sundanese", "suk": "sukuma", "sv": "svedese", "sw": "swahili", "sw-CD": "swahili del Congo", "swb": "comoriano", "syr": "syriaco", "ta": "tamil", "te": "telugu", "tem": "temne", "teo": "teso", "tet": "tetum", "tg": "tajiko", "th": "thai", "ti": "tigrinya", "tig": "tigre", "tk": "turkmeno", "tlh": "klingon", "tn": "tswana", "to": "tongano", "tpi": "tok pisin", "tr": "turco", "trv": "taroko", "ts": "tsonga", "tt": "tataro", "tum": "tumbuka", "tvl": "tuvaluano", "twq": "tasawaq", "ty": "tahitiano", "tyv": "tuvano", "tzm": "tamazight del Atlas Central", "udm": "udmurto", "ug": "uighur", "uk": "ukrainiano", "umb": "umbundu", "ur": "urdu", "uz": "uzbeko", "ve": "venda", "vi": "vietnamese", "vo": "volapük", "vun": "vunjo", "wa": "wallon", "wae": "walser", "wal": "wolaytta", "war": "waray", "wo": "wolof", "xal": "calmuco", "xh": "xhosa", "xog": "soga", "yav": "yangben", "ybb": "yemba", "yi": "yiddish", "yo": "yoruba", "yue": "cantonese", "zgh": "tamazight marocchin standard", "zh": "chinese", "zh-Hans": "chinese simplificate", "zh-Hant": "chinese traditional", "zu": "zulu", "zun": "zuni", "zza": "zaza"}}, - "id": {"rtl": false, "languageNames": {"aa": "Afar", "ab": "Abkhaz", "ace": "Aceh", "ach": "Acoli", "ada": "Adangme", "ady": "Adygei", "ae": "Avesta", "aeb": "Arab Tunisia", "af": "Afrikaans", "afh": "Afrihili", "agq": "Aghem", "ain": "Ainu", "ak": "Akan", "akk": "Akkadia", "akz": "Alabama", "ale": "Aleut", "alt": "Altai Selatan", "am": "Amharik", "an": "Aragon", "ang": "Inggris Kuno", "anp": "Angika", "ar": "Arab", "ar-001": "Arab Standar Modern", "arc": "Aram", "arn": "Mapuche", "arp": "Arapaho", "arq": "Arab Aljazair", "ars": "Arab Najdi", "arw": "Arawak", "ary": "Arab Maroko", "arz": "Arab Mesir", "as": "Assam", "asa": "Asu", "ase": "Bahasa Isyarat Amerika", "ast": "Asturia", "av": "Avar", "awa": "Awadhi", "ay": "Aymara", "az": "Azerbaijani", "ba": "Bashkir", "bal": "Baluchi", "ban": "Bali", "bar": "Bavaria", "bas": "Basa", "bax": "Bamun", "bbc": "Batak Toba", "bbj": "Ghomala", "be": "Belarusia", "bej": "Beja", "bem": "Bemba", "bew": "Betawi", "bez": "Bena", "bfd": "Bafut", "bg": "Bulgaria", "bgn": "Balochi Barat", "bho": "Bhojpuri", "bi": "Bislama", "bik": "Bikol", "bin": "Bini", "bjn": "Banjar", "bkm": "Kom", "bla": "Siksika", "bm": "Bambara", "bn": "Bengali", "bo": "Tibet", "br": "Breton", "bra": "Braj", "brx": "Bodo", "bs": "Bosnia", "bss": "Akoose", "bua": "Buriat", "bug": "Bugis", "bum": "Bulu", "byn": "Blin", "byv": "Medumba", "ca": "Katalan", "cad": "Kado", "car": "Karib", "cay": "Cayuga", "cch": "Atsam", "ccp": "Chakma", "ce": "Chechen", "ceb": "Cebuano", "cgg": "Kiga", "ch": "Chamorro", "chb": "Chibcha", "chg": "Chagatai", "chk": "Chuuke", "chm": "Mari", "chn": "Jargon Chinook", "cho": "Koktaw", "chp": "Chipewyan", "chr": "Cherokee", "chy": "Cheyenne", "ckb": "Kurdi Sorani", "co": "Korsika", "cop": "Koptik", "cr": "Kree", "crh": "Tatar Krimea", "crs": "Seselwa Kreol Prancis", "cs": "Cheska", "csb": "Kashubia", "cu": "Bahasa Gereja Slavonia", "cv": "Chuvash", "cy": "Welsh", "da": "Dansk", "dak": "Dakota", "dar": "Dargwa", "dav": "Taita", "de": "Jerman", "de-AT": "Jerman (Austria)", "de-CH": "Jerman Tinggi (Swiss)", "del": "Delaware", "den": "Slave", "dgr": "Dogrib", "din": "Dinka", "dje": "Zarma", "doi": "Dogri", "dsb": "Sorbia Hilir", "dua": "Duala", "dum": "Belanda Abad Pertengahan", "dv": "Divehi", "dyo": "Jola-Fonyi", "dyu": "Dyula", "dz": "Dzongkha", "dzg": "Dazaga", "ebu": "Embu", "ee": "Ewe", "efi": "Efik", "egy": "Mesir Kuno", "eka": "Ekajuk", "el": "Yunani", "elx": "Elam", "en": "Inggris", "en-AU": "Inggris (Australia)", "en-CA": "Inggris (Kanada)", "en-GB": "Inggris (Inggris)", "en-US": "Inggris (Amerika Serikat)", "enm": "Inggris Abad Pertengahan", "eo": "Esperanto", "es": "Spanyol", "es-419": "Spanyol (Amerika Latin)", "es-ES": "Spanyol (Eropa)", "es-MX": "Spanyol (Meksiko)", "et": "Esti", "eu": "Basque", "ewo": "Ewondo", "fa": "Persia", "fan": "Fang", "fat": "Fanti", "ff": "Fula", "fi": "Suomi", "fil": "Filipino", "fj": "Fiji", "fo": "Faroe", "fon": "Fon", "fr": "Prancis", "fr-CA": "Perancis (Kanada)", "fr-CH": "Perancis (Swiss)", "frc": "Prancis Cajun", "frm": "Prancis Abad Pertengahan", "fro": "Prancis Kuno", "frp": "Arpitan", "frr": "Frisia Utara", "frs": "Frisia Timur", "fur": "Friuli", "fy": "Frisia Barat", "ga": "Irlandia", "gaa": "Ga", "gag": "Gagauz", "gay": "Gayo", "gba": "Gbaya", "gd": "Gaelik Skotlandia", "gez": "Geez", "gil": "Gilbert", "gl": "Galisia", "glk": "Gilaki", "gmh": "Jerman Abad Pertengahan", "gn": "Guarani", "goh": "Jerman Kuno", "gon": "Gondi", "gor": "Gorontalo", "got": "Gotik", "grb": "Grebo", "grc": "Yunani Kuno", "gsw": "Jerman (Swiss)", "gu": "Gujarat", "guz": "Gusii", "gv": "Manx", "gwi": "Gwich’in", "ha": "Hausa", "hai": "Haida", "haw": "Hawaii", "he": "Ibrani", "hi": "Hindi", "hif": "Hindi Fiji", "hil": "Hiligaynon", "hit": "Hitit", "hmn": "Hmong", "ho": "Hiri Motu", "hr": "Kroasia", "hsb": "Sorbia Hulu", "ht": "Kreol Haiti", "hu": "Hungaria", "hup": "Hupa", "hy": "Armenia", "hz": "Herero", "ia": "Interlingua", "iba": "Iban", "ibb": "Ibibio", "id": "Indonesia", "ie": "Interlingue", "ig": "Igbo", "ii": "Sichuan Yi", "ik": "Inupiak", "ilo": "Iloko", "inh": "Ingushetia", "io": "Ido", "is": "Islandia", "it": "Italia", "iu": "Inuktitut", "ja": "Jepang", "jbo": "Lojban", "jgo": "Ngomba", "jmc": "Machame", "jpr": "Ibrani-Persia", "jrb": "Ibrani-Arab", "jv": "Jawa", "ka": "Georgia", "kaa": "Kara-Kalpak", "kab": "Kabyle", "kac": "Kachin", "kaj": "Jju", "kam": "Kamba", "kaw": "Kawi", "kbd": "Kabardi", "kbl": "Kanembu", "kcg": "Tyap", "kde": "Makonde", "kea": "Kabuverdianu", "ken": "Kenyang", "kfo": "Koro", "kg": "Kongo", "kha": "Khasi", "kho": "Khotan", "khq": "Koyra Chiini", "ki": "Kikuyu", "kj": "Kuanyama", "kk": "Kazakh", "kkj": "Kako", "kl": "Kalaallisut", "kln": "Kalenjin", "km": "Khmer", "kmb": "Kimbundu", "kn": "Kannada", "ko": "Korea", "koi": "Komi-Permyak", "kok": "Konkani", "kos": "Kosre", "kpe": "Kpelle", "kr": "Kanuri", "krc": "Karachai Balkar", "kri": "Krio", "krl": "Karelia", "kru": "Kuruk", "ks": "Kashmir", "ksb": "Shambala", "ksf": "Bafia", "ksh": "Dialek Kolsch", "ku": "Kurdi", "kum": "Kumyk", "kut": "Kutenai", "kv": "Komi", "kw": "Kornish", "ky": "Kirgiz", "la": "Latin", "lad": "Ladino", "lag": "Langi", "lah": "Lahnda", "lam": "Lamba", "lb": "Luksemburg", "lez": "Lezghia", "lg": "Ganda", "li": "Limburgia", "lij": "Liguria", "lkt": "Lakota", "ln": "Lingala", "lo": "Lao", "lol": "Mongo", "lou": "Kreol Louisiana", "loz": "Lozi", "lrc": "Luri Utara", "lt": "Lituavi", "lu": "Luba-Katanga", "lua": "Luba-Lulua", "lui": "Luiseno", "lun": "Lunda", "luo": "Luo", "lus": "Mizo", "luy": "Luyia", "lv": "Latvi", "lzz": "Laz", "mad": "Madura", "maf": "Mafa", "mag": "Magahi", "mai": "Maithili", "mak": "Makasar", "man": "Mandingo", "mas": "Masai", "mde": "Maba", "mdf": "Moksha", "mdr": "Mandar", "men": "Mende", "mer": "Meru", "mfe": "Morisien", "mg": "Malagasi", "mga": "Irlandia Abad Pertengahan", "mgh": "Makhuwa-Meetto", "mgo": "Meta’", "mh": "Marshall", "mi": "Maori", "mic": "Mikmak", "min": "Minangkabau", "mk": "Makedonia", "ml": "Malayalam", "mn": "Mongolia", "mnc": "Manchuria", "mni": "Manipuri", "moh": "Mohawk", "mos": "Mossi", "mr": "Marathi", "ms": "Melayu", "mt": "Malta", "mua": "Mundang", "mus": "Bahasa Muskogee", "mwl": "Miranda", "mwr": "Marwari", "mwv": "Mentawai", "my": "Burma", "mye": "Myene", "myv": "Eryza", "mzn": "Mazanderani", "na": "Nauru", "nap": "Neapolitan", "naq": "Nama", "nb": "Bokmål Norwegia", "nd": "Ndebele Utara", "nds": "Jerman Rendah", "nds-NL": "Jerman Rendah (Belanda)", "ne": "Nepali", "new": "Newari", "ng": "Ndonga", "nia": "Nias", "niu": "Niuea", "nl": "Belanda", "nl-BE": "Belanda (Belgia)", "nmg": "Kwasio", "nn": "Nynorsk Norwegia", "nnh": "Ngiemboon", "no": "Norwegia", "nog": "Nogai", "non": "Norse Kuno", "nqo": "N’Ko", "nr": "Ndebele Selatan", "nso": "Sotho Utara", "nus": "Nuer", "nv": "Navajo", "nwc": "Newari Klasik", "ny": "Nyanja", "nym": "Nyamwezi", "nyn": "Nyankole", "nyo": "Nyoro", "nzi": "Nzima", "oc": "Ositania", "oj": "Ojibwa", "om": "Oromo", "or": "Oriya", "os": "Ossetia", "osa": "Osage", "ota": "Turki Osmani", "pa": "Punjabi", "pag": "Pangasina", "pal": "Pahlevi", "pam": "Pampanga", "pap": "Papiamento", "pau": "Palau", "pcm": "Pidgin Nigeria", "pdc": "Jerman Pennsylvania", "peo": "Persia Kuno", "phn": "Funisia", "pi": "Pali", "pl": "Polski", "pon": "Pohnpeia", "prg": "Prusia", "pro": "Provencal Lama", "ps": "Pashto", "pt": "Portugis", "pt-BR": "Portugis (Brasil)", "pt-PT": "Portugis (Eropa)", "qu": "Quechua", "quc": "Kʼicheʼ", "raj": "Rajasthani", "rap": "Rapanui", "rar": "Rarotonga", "rm": "Reto-Roman", "rn": "Rundi", "ro": "Rumania", "ro-MD": "Moldavia", "rof": "Rombo", "rom": "Romani", "root": "Root", "rtm": "Rotuma", "ru": "Rusia", "rup": "Aromania", "rw": "Kinyarwanda", "rwk": "Rwa", "sa": "Sanskerta", "sad": "Sandawe", "sah": "Sakha", "sam": "Aram Samaria", "saq": "Samburu", "sas": "Sasak", "sat": "Santali", "sba": "Ngambai", "sbp": "Sangu", "sc": "Sardinia", "scn": "Sisilia", "sco": "Skotlandia", "sd": "Sindhi", "sdh": "Kurdi Selatan", "se": "Sami Utara", "see": "Seneca", "seh": "Sena", "sei": "Seri", "sel": "Selkup", "ses": "Koyraboro Senni", "sg": "Sango", "sga": "Irlandia Kuno", "sh": "Serbo-Kroasia", "shi": "Tachelhit", "shn": "Shan", "shu": "Arab Suwa", "si": "Sinhala", "sid": "Sidamo", "sk": "Slovak", "sl": "Sloven", "sli": "Silesia Rendah", "sly": "Selayar", "sm": "Samoa", "sma": "Sami Selatan", "smj": "Lule Sami", "smn": "Inari Sami", "sms": "Skolt Sami", "sn": "Shona", "snk": "Soninke", "so": "Somalia", "sog": "Sogdien", "sq": "Albania", "sr": "Serbia", "srn": "Sranan Tongo", "srr": "Serer", "ss": "Swati", "ssy": "Saho", "st": "Sotho Selatan", "su": "Sunda", "suk": "Sukuma", "sus": "Susu", "sux": "Sumeria", "sv": "Swedia", "sw": "Swahili", "sw-CD": "Swahili (Kongo)", "swb": "Komoria", "syc": "Suriah Klasik", "syr": "Suriah", "szl": "Silesia", "ta": "Tamil", "tcy": "Tulu", "te": "Telugu", "tem": "Timne", "teo": "Teso", "ter": "Tereno", "tet": "Tetun", "tg": "Tajik", "th": "Thai", "ti": "Tigrinya", "tig": "Tigre", "tiv": "Tiv", "tk": "Turkmen", "tkl": "Tokelau", "tl": "Tagalog", "tlh": "Klingon", "tli": "Tlingit", "tmh": "Tamashek", "tn": "Tswana", "to": "Tonga", "tog": "Nyasa Tonga", "tpi": "Tok Pisin", "tr": "Turki", "tru": "Turoyo", "trv": "Taroko", "ts": "Tsonga", "tsi": "Tsimshia", "tt": "Tatar", "ttt": "Tat Muslim", "tum": "Tumbuka", "tvl": "Tuvalu", "tw": "Twi", "twq": "Tasawaq", "ty": "Tahiti", "tyv": "Tuvinia", "tzm": "Tamazight Maroko Tengah", "udm": "Udmurt", "ug": "Uyghur", "uga": "Ugarit", "uk": "Ukraina", "umb": "Umbundu", "ur": "Urdu", "uz": "Uzbek", "vai": "Vai", "ve": "Venda", "vec": "Venesia", "vi": "Vietnam", "vo": "Volapuk", "vot": "Votia", "vun": "Vunjo", "wa": "Walloon", "wae": "Walser", "wal": "Walamo", "war": "Warai", "was": "Washo", "wbp": "Warlpiri", "wo": "Wolof", "xal": "Kalmuk", "xh": "Xhosa", "xog": "Soga", "yao": "Yao", "yap": "Yapois", "yav": "Yangben", "ybb": "Yemba", "yi": "Yiddish", "yo": "Yoruba", "yue": "Kanton", "za": "Zhuang", "zap": "Zapotek", "zbl": "Blissymbol", "zen": "Zenaga", "zgh": "Tamazight Maroko Standar", "zh": "Tionghoa", "zh-Hans": "Tionghoa (Aksara Sederhana)", "zh-Hant": "Tionghoa (Aksara Tradisional)", "zu": "Zulu", "zun": "Zuni", "zza": "Zaza"}}, - "is": {"rtl": false, "languageNames": {"aa": "afár", "ab": "abkasíska", "ace": "akkíska", "ach": "acoli", "ada": "adangme", "ady": "adýge", "ae": "avestíska", "af": "afríkanska", "afh": "afríhílí", "agq": "aghem", "ain": "aínu (Japan)", "ak": "akan", "akk": "akkadíska", "ale": "aleúska", "alt": "suðuraltaíska", "am": "amharíska", "an": "aragonska", "ang": "fornenska", "anp": "angíka", "ar": "arabíska", "ar-001": "stöðluð nútímaarabíska", "arc": "arameíska", "arn": "mapuche", "arp": "arapahó", "arw": "aravakska", "as": "assamska", "asa": "asu", "ast": "astúríska", "av": "avaríska", "awa": "avadí", "ay": "aímara", "az": "aserska", "ba": "baskír", "bal": "balúkí", "ban": "balíska", "bas": "basa", "bax": "bamun", "be": "hvítrússneska", "bej": "beja", "bem": "bemba", "bez": "bena", "bg": "búlgarska", "bgn": "vesturbalotsí", "bho": "bojpúrí", "bi": "bíslama", "bik": "bíkol", "bin": "bíní", "bla": "siksika", "bm": "bambara", "bn": "bengalska", "bo": "tíbeska", "br": "bretónska", "bra": "braí", "brx": "bódó", "bs": "bosníska", "bss": "bakossi", "bua": "búríat", "bug": "búgíska", "byn": "blín", "ca": "katalónska", "cad": "kaddó", "car": "karíbamál", "cay": "kajúga", "cch": "atsam", "ce": "tsjetsjenska", "ceb": "kebúanó", "cgg": "kíga", "ch": "kamorró", "chb": "síbsja", "chg": "sjagataí", "chk": "sjúkíska", "chm": "marí", "chn": "sínúk", "cho": "sjoktá", "chp": "sípevíska", "chr": "Cherokee-mál", "chy": "sjeyen", "ckb": "sorani-kúrdíska", "co": "korsíska", "cop": "koptíska", "cr": "krí", "crh": "krímtyrkneska", "crs": "seychelles-kreólska", "cs": "tékkneska", "csb": "kasúbíska", "cu": "kirkjuslavneska", "cv": "sjúvas", "cy": "velska", "da": "danska", "dak": "dakóta", "dar": "dargva", "dav": "taíta", "de": "þýska", "de-AT": "austurrísk þýska", "de-CH": "svissnesk háþýska", "del": "delaver", "den": "slavneska", "dgr": "dogríb", "din": "dinka", "dje": "zarma", "doi": "dogrí", "dsb": "lágsorbneska", "dua": "dúala", "dum": "miðhollenska", "dv": "dívehí", "dyo": "jola-fonyi", "dyu": "djúla", "dz": "dsongka", "dzg": "dazaga", "ebu": "embu", "ee": "ewe", "efi": "efík", "egy": "fornegypska", "eka": "ekajúk", "el": "gríska", "elx": "elamít", "en": "enska", "en-AU": "áströlsk enska", "en-CA": "kanadísk enska", "en-GB": "bresk enska", "en-US": "bandarísk enska", "enm": "miðenska", "eo": "esperantó", "es": "spænska", "es-419": "rómönsk-amerísk spænska", "es-ES": "evrópsk spænska", "es-MX": "mexíkósk spænska", "et": "eistneska", "eu": "baskneska", "ewo": "evondó", "fa": "persneska", "fan": "fang", "fat": "fantí", "ff": "fúla", "fi": "finnska", "fil": "filippseyska", "fj": "fídjeyska", "fo": "færeyska", "fon": "fón", "fr": "franska", "fr-CA": "kanadísk franska", "fr-CH": "svissnesk franska", "frc": "cajun-franska", "frm": "miðfranska", "fro": "fornfranska", "frr": "norðurfrísneska", "frs": "austurfrísneska", "fur": "fríúlska", "fy": "vesturfrísneska", "ga": "írska", "gaa": "ga", "gag": "gagás", "gay": "gajó", "gba": "gbaja", "gd": "skosk gelíska", "gez": "gís", "gil": "gilberska", "gl": "galíanska", "gmh": "miðháþýska", "gn": "gvaraní", "goh": "fornháþýska", "gon": "gondí", "gor": "gorontaló", "got": "gotneska", "grb": "gerbó", "grc": "forngríska", "gsw": "svissnesk þýska", "gu": "gújaratí", "guz": "gusii", "gv": "manska", "gwi": "gvísín", "ha": "hása", "hai": "haída", "haw": "havaíska", "he": "hebreska", "hi": "hindí", "hil": "híligaínon", "hit": "hettitíska", "hmn": "hmong", "ho": "hírímótú", "hr": "króatíska", "hsb": "hásorbneska", "ht": "haítíska", "hu": "ungverska", "hup": "húpa", "hy": "armenska", "hz": "hereró", "ia": "alþjóðatunga", "iba": "íban", "ibb": "ibibio", "id": "indónesíska", "ie": "interlingve", "ig": "ígbó", "ii": "sísúanjí", "ik": "ínúpíak", "ilo": "ílokó", "inh": "ingús", "io": "ídó", "is": "íslenska", "it": "ítalska", "iu": "inúktitút", "ja": "japanska", "jbo": "lojban", "jgo": "ngomba", "jmc": "masjáme", "jpr": "gyðingapersneska", "jrb": "gyðingaarabíska", "jv": "javanska", "ka": "georgíska", "kaa": "karakalpak", "kab": "kabíle", "kac": "kasín", "kaj": "jju", "kam": "kamba", "kaw": "kaví", "kbd": "kabardíska", "kcg": "tyap", "kde": "makonde", "kea": "grænhöfðeyska", "kfo": "koro", "kg": "kongóska", "kha": "kasí", "kho": "kotaska", "khq": "koyra chiini", "ki": "kíkújú", "kj": "kúanjama", "kk": "kasakska", "kkj": "kako", "kl": "grænlenska", "kln": "kalenjin", "km": "kmer", "kmb": "kimbúndú", "kn": "kannada", "ko": "kóreska", "koi": "kómí-permyak", "kok": "konkaní", "kos": "kosraska", "kpe": "kpelle", "kr": "kanúrí", "krc": "karasaíbalkar", "krl": "karélska", "kru": "kúrúk", "ks": "kasmírska", "ksb": "sjambala", "ksf": "bafía", "ksh": "kölníska", "ku": "kúrdíska", "kum": "kúmík", "kut": "kútenaí", "kv": "komíska", "kw": "kornbreska", "ky": "kirgiska", "la": "latína", "lad": "ladínska", "lag": "langí", "lah": "landa", "lam": "lamba", "lb": "lúxemborgíska", "lez": "lesgíska", "lg": "ganda", "li": "limbúrgíska", "lkt": "lakóta", "ln": "lingala", "lo": "laó", "lol": "mongó", "lou": "kreólska (Louisiana)", "loz": "lozi", "lrc": "norðurlúrí", "lt": "litháíska", "lu": "lúbakatanga", "lua": "luba-lulua", "lui": "lúisenó", "lun": "lúnda", "luo": "lúó", "lus": "lúsaí", "luy": "luyia", "lv": "lettneska", "mad": "madúrska", "mag": "magahí", "mai": "maítílí", "mak": "makasar", "man": "mandingó", "mas": "masaí", "mdf": "moksa", "mdr": "mandar", "men": "mende", "mer": "merú", "mfe": "máritíska", "mg": "malagasíska", "mga": "miðírska", "mgh": "makhuwa-meetto", "mgo": "meta’", "mh": "marshallska", "mi": "maorí", "mic": "mikmak", "min": "mínangkabá", "mk": "makedónska", "ml": "malajalam", "mn": "mongólska", "mnc": "mansjú", "mni": "manípúrí", "moh": "móhíska", "mos": "mossí", "mr": "maratí", "ms": "malaíska", "mt": "maltneska", "mua": "mundang", "mus": "krík", "mwl": "mirandesíska", "mwr": "marvarí", "my": "burmneska", "myv": "ersja", "mzn": "masanderaní", "na": "nárúska", "nap": "napólíska", "naq": "nama", "nb": "norskt bókmál", "nd": "norður-ndebele", "nds": "lágþýska; lágsaxneska", "nds-NL": "lágsaxneska", "ne": "nepalska", "new": "nevarí", "ng": "ndonga", "nia": "nías", "niu": "níveska", "nl": "hollenska", "nl-BE": "flæmska", "nmg": "kwasio", "nn": "nýnorska", "nnh": "ngiemboon", "no": "norska", "nog": "nógaí", "non": "norræna", "nqo": "n’ko", "nr": "suðurndebele", "nso": "norðursótó", "nus": "núer", "nv": "navahó", "nwc": "klassísk nevaríska", "ny": "njanja; sísjeva; sjeva", "nym": "njamvesí", "nyn": "nyankole", "nyo": "njóró", "nzi": "nsíma", "oc": "oksítaníska", "oj": "ojibva", "om": "oromo", "or": "óría", "os": "ossetíska", "osa": "ósage", "ota": "tyrkneska, ottóman", "pa": "púnjabí", "pag": "pangasínmál", "pal": "palaví", "pam": "pampanga", "pap": "papíamentó", "pau": "paláska", "pcm": "nígerískt pidgin", "peo": "fornpersneska", "phn": "fönikíska", "pi": "palí", "pl": "pólska", "pon": "ponpeiska", "prg": "prússneska", "pro": "fornpróvensalska", "ps": "pastú", "pt": "portúgalska", "pt-BR": "brasílísk portúgalska", "pt-PT": "evrópsk portúgalska", "qu": "kvesjúa", "quc": "kiche", "raj": "rajastaní", "rap": "rapanúí", "rar": "rarótongska", "rm": "rómanska", "rn": "rúndí", "ro": "rúmenska", "ro-MD": "moldóvska", "rof": "rombó", "rom": "romaní", "root": "rót", "ru": "rússneska", "rup": "arúmenska", "rw": "kínjarvanda", "rwk": "rúa", "sa": "sanskrít", "sad": "sandave", "sah": "jakút", "sam": "samversk arameíska", "saq": "sambúrú", "sas": "sasak", "sat": "santalí", "sba": "ngambay", "sbp": "sangú", "sc": "sardínska", "scn": "sikileyska", "sco": "skoska", "sd": "sindí", "sdh": "suðurkúrdíska", "se": "norðursamíska", "seh": "sena", "sel": "selkúp", "ses": "koíraboró-senní", "sg": "sangó", "sga": "fornírska", "sh": "serbókróatíska", "shi": "tachelhit", "shn": "sjan", "si": "singalíska", "sid": "sídamó", "sk": "slóvakíska", "sl": "slóvenska", "sm": "samóska", "sma": "suðursamíska", "smj": "lúlesamíska", "smn": "enaresamíska", "sms": "skoltesamíska", "sn": "shona", "snk": "sóninke", "so": "sómalska", "sog": "sogdíen", "sq": "albanska", "sr": "serbneska", "srn": "sranan tongo", "srr": "serer", "ss": "svatí", "ssy": "saho", "st": "suðursótó", "su": "súndanska", "suk": "súkúma", "sus": "súsú", "sux": "súmerska", "sv": "sænska", "sw": "svahílí", "sw-CD": "kongósvahílí", "swb": "shimaoríska", "syc": "klassísk sýrlenska", "syr": "sýrlenska", "ta": "tamílska", "te": "telúgú", "tem": "tímne", "teo": "tesó", "ter": "terenó", "tet": "tetúm", "tg": "tadsjikska", "th": "taílenska", "ti": "tígrinja", "tig": "tígre", "tiv": "tív", "tk": "túrkmenska", "tkl": "tókeláska", "tl": "tagalog", "tlh": "klingonska", "tli": "tlingit", "tmh": "tamasjek", "tn": "tsúana", "to": "tongverska", "tog": "tongverska (nyasa)", "tpi": "tokpisin", "tr": "tyrkneska", "trv": "tarókó", "ts": "tsonga", "tsi": "tsimsíska", "tt": "tatarska", "tum": "túmbúka", "tvl": "túvalúska", "tw": "tví", "twq": "tasawaq", "ty": "tahítíska", "tyv": "túvínska", "tzm": "tamazight", "udm": "údmúrt", "ug": "úígúr", "uga": "úgarítíska", "uk": "úkraínska", "umb": "úmbúndú", "ur": "úrdú", "uz": "úsbekska", "vai": "vaí", "ve": "venda", "vi": "víetnamska", "vo": "volapyk", "vot": "votíska", "vun": "vunjó", "wa": "vallónska", "wae": "valser", "wal": "volayatta", "war": "varaí", "was": "vasjó", "wbp": "varlpiri", "wo": "volof", "xal": "kalmúkska", "xh": "sósa", "xog": "sóga", "yao": "jaó", "yap": "japíska", "yav": "yangben", "ybb": "yemba", "yi": "jiddíska", "yo": "jórúba", "yue": "kantónska", "za": "súang", "zap": "sapótek", "zbl": "blisstákn", "zen": "senaga", "zgh": "staðlað marokkóskt tamazight", "zh": "kínverska", "zh-Hans": "kínverska (einfölduð)", "zh-Hant": "kínverska (hefðbundin)", "zu": "súlú", "zun": "súní", "zza": "zázáíska"}}, - "it": {"rtl": false, "languageNames": {"aa": "afar", "ab": "abcaso", "ace": "accinese", "ach": "acioli", "ada": "adangme", "ady": "adyghe", "ae": "avestan", "aeb": "arabo tunisino", "af": "afrikaans", "afh": "afrihili", "agq": "aghem", "ain": "ainu", "ak": "akan", "akk": "accado", "akz": "alabama", "ale": "aleuto", "aln": "albanese ghego", "alt": "altai meridionale", "am": "amarico", "an": "aragonese", "ang": "inglese antico", "anp": "angika", "ar": "arabo", "ar-001": "arabo moderno standard", "arc": "aramaico", "arn": "mapudungun", "aro": "araona", "arp": "arapaho", "arq": "arabo algerino", "ars": "arabo najd", "arw": "aruaco", "ary": "arabo marocchino", "arz": "arabo egiziano", "as": "assamese", "asa": "asu", "ase": "lingua dei segni americana", "ast": "asturiano", "av": "avaro", "avk": "kotava", "awa": "awadhi", "ay": "aymara", "az": "azerbaigiano", "ba": "baschiro", "bal": "beluci", "ban": "balinese", "bar": "bavarese", "bas": "basa", "bax": "bamun", "bbc": "batak toba", "bbj": "ghomala", "be": "bielorusso", "bej": "begia", "bem": "wemba", "bew": "betawi", "bez": "bena", "bfd": "bafut", "bfq": "badaga", "bg": "bulgaro", "bgn": "beluci occidentale", "bho": "bhojpuri", "bi": "bislama", "bik": "bicol", "bin": "bini", "bjn": "banjar", "bkm": "kom", "bla": "siksika", "bm": "bambara", "bn": "bengalese", "bo": "tibetano", "bpy": "bishnupriya", "bqi": "bakhtiari", "br": "bretone", "bra": "braj", "brh": "brahui", "brx": "bodo", "bs": "bosniaco", "bss": "akoose", "bua": "buriat", "bug": "bugi", "bum": "bulu", "byn": "blin", "byv": "medumba", "ca": "catalano", "cad": "caddo", "car": "caribico", "cay": "cayuga", "cch": "atsam", "ccp": "chakma", "ce": "ceceno", "ceb": "cebuano", "cgg": "chiga", "ch": "chamorro", "chb": "chibcha", "chg": "ciagataico", "chk": "chuukese", "chm": "mari", "chn": "gergo chinook", "cho": "choctaw", "chp": "chipewyan", "chr": "cherokee", "chy": "cheyenne", "ckb": "curdo sorani", "co": "corso", "cop": "copto", "cps": "capiznon", "cr": "cree", "crh": "turco crimeo", "crs": "creolo delle Seychelles", "cs": "ceco", "csb": "kashubian", "cu": "slavo della Chiesa", "cv": "ciuvascio", "cy": "gallese", "da": "danese", "dak": "dakota", "dar": "dargwa", "dav": "taita", "de": "tedesco", "de-AT": "tedesco austriaco", "de-CH": "alto tedesco svizzero", "del": "delaware", "den": "slave", "dgr": "dogrib", "din": "dinca", "dje": "zarma", "doi": "dogri", "dsb": "basso sorabo", "dtp": "dusun centrale", "dua": "duala", "dum": "olandese medio", "dv": "divehi", "dyo": "jola-fony", "dyu": "diula", "dz": "dzongkha", "dzg": "dazaga", "ebu": "embu", "ee": "ewe", "efi": "efik", "egl": "emiliano", "egy": "egiziano antico", "eka": "ekajuka", "el": "greco", "elx": "elamitico", "en": "inglese", "en-AU": "inglese australiano", "en-CA": "inglese canadese", "en-GB": "inglese britannico", "en-US": "inglese americano", "enm": "inglese medio", "eo": "esperanto", "es": "spagnolo", "es-419": "spagnolo latinoamericano", "es-ES": "spagnolo europeo", "es-MX": "spagnolo messicano", "esu": "yupik centrale", "et": "estone", "eu": "basco", "ewo": "ewondo", "ext": "estremegno", "fa": "persiano", "fan": "fang", "fat": "fanti", "ff": "fulah", "fi": "finlandese", "fil": "filippino", "fit": "finlandese del Tornedalen", "fj": "figiano", "fo": "faroese", "fr": "francese", "fr-CA": "francese canadese", "fr-CH": "francese svizzero", "frc": "francese cajun", "frm": "francese medio", "fro": "francese antico", "frp": "francoprovenzale", "frr": "frisone settentrionale", "frs": "frisone orientale", "fur": "friulano", "fy": "frisone occidentale", "ga": "irlandese", "gaa": "ga", "gag": "gagauzo", "gay": "gayo", "gba": "gbaya", "gbz": "dari zoroastriano", "gd": "gaelico scozzese", "gez": "geez", "gil": "gilbertese", "gl": "galiziano", "glk": "gilaki", "gmh": "tedesco medio alto", "gn": "guaraní", "goh": "tedesco antico alto", "gom": "konkani goano", "gon": "gondi", "gor": "gorontalo", "got": "gotico", "grb": "grebo", "grc": "greco antico", "gsw": "tedesco svizzero", "gu": "gujarati", "guc": "wayuu", "guz": "gusii", "gv": "mannese", "gwi": "gwichʼin", "ha": "hausa", "hai": "haida", "hak": "hakka", "haw": "hawaiano", "he": "ebraico", "hi": "hindi", "hif": "hindi figiano", "hil": "ilongo", "hit": "hittite", "hmn": "hmong", "ho": "hiri motu", "hr": "croato", "hsb": "alto sorabo", "hsn": "xiang", "ht": "haitiano", "hu": "ungherese", "hup": "hupa", "hy": "armeno", "hz": "herero", "ia": "interlingua", "iba": "iban", "ibb": "ibibio", "id": "indonesiano", "ie": "interlingue", "ig": "igbo", "ii": "sichuan yi", "ik": "inupiak", "ilo": "ilocano", "inh": "ingush", "io": "ido", "is": "islandese", "it": "italiano", "iu": "inuktitut", "izh": "ingrico", "ja": "giapponese", "jam": "creolo giamaicano", "jbo": "lojban", "jgo": "ngamambo", "jmc": "machame", "jpr": "giudeo persiano", "jrb": "giudeo arabo", "jut": "jutlandico", "jv": "giavanese", "ka": "georgiano", "kaa": "kara-kalpak", "kab": "cabilo", "kac": "kachin", "kaj": "kai", "kam": "kamba", "kaw": "kawi", "kbd": "cabardino", "kbl": "kanembu", "kcg": "tyap", "kde": "makonde", "kea": "capoverdiano", "kfo": "koro", "kg": "kongo", "kgp": "kaingang", "kha": "khasi", "kho": "khotanese", "khq": "koyra chiini", "khw": "khowar", "ki": "kikuyu", "kiu": "kirmanjki", "kj": "kuanyama", "kk": "kazako", "kkj": "kako", "kl": "groenlandese", "kln": "kalenjin", "km": "khmer", "kmb": "kimbundu", "kn": "kannada", "ko": "coreano", "koi": "permiaco", "kok": "konkani", "kos": "kosraean", "kpe": "kpelle", "kr": "kanuri", "krc": "karachay-Balkar", "krl": "careliano", "kru": "kurukh", "ks": "kashmiri", "ksb": "shambala", "ksf": "bafia", "ksh": "coloniese", "ku": "curdo", "kum": "kumyk", "kut": "kutenai", "kv": "komi", "kw": "cornico", "ky": "kirghiso", "la": "latino", "lad": "giudeo-spagnolo", "lag": "langi", "lah": "lahnda", "lam": "lamba", "lb": "lussemburghese", "lez": "lesgo", "lfn": "Lingua Franca Nova", "lg": "ganda", "li": "limburghese", "lij": "ligure", "liv": "livone", "lkt": "lakota", "lmo": "lombardo", "ln": "lingala", "lo": "lao", "lol": "lolo bantu", "lou": "creolo della Louisiana", "loz": "lozi", "lrc": "luri settentrionale", "lt": "lituano", "ltg": "letgallo", "lu": "luba-katanga", "lua": "luba-lulua", "lui": "luiseno", "lun": "lunda", "lus": "lushai", "luy": "luyia", "lv": "lettone", "lzh": "cinese classico", "lzz": "laz", "mad": "madurese", "maf": "mafa", "mag": "magahi", "mai": "maithili", "mak": "makasar", "man": "mandingo", "mas": "masai", "mde": "maba", "mdf": "moksha", "mdr": "mandar", "men": "mende", "mer": "meru", "mfe": "creolo mauriziano", "mg": "malgascio", "mga": "irlandese medio", "mgh": "makhuwa-meetto", "mgo": "meta’", "mh": "marshallese", "mi": "maori", "mic": "micmac", "min": "menangkabau", "mk": "macedone", "ml": "malayalam", "mn": "mongolo", "mnc": "manchu", "mni": "manipuri", "moh": "mohawk", "mos": "mossi", "mr": "marathi", "mrj": "mari occidentale", "ms": "malese", "mt": "maltese", "mua": "mundang", "mus": "creek", "mwl": "mirandese", "mwr": "marwari", "mwv": "mentawai", "my": "birmano", "mye": "myene", "myv": "erzya", "mzn": "mazandarani", "na": "nauru", "nan": "min nan", "nap": "napoletano", "naq": "nama", "nb": "norvegese bokmål", "nd": "ndebele del nord", "nds": "basso tedesco", "nds-NL": "basso tedesco olandese", "ne": "nepalese", "new": "newari", "ng": "ndonga", "nia": "nias", "niu": "niue", "njo": "ao", "nl": "olandese", "nl-BE": "fiammingo", "nmg": "kwasio", "nn": "norvegese nynorsk", "nnh": "ngiemboon", "no": "norvegese", "nog": "nogai", "non": "norse antico", "nov": "novial", "nqo": "n’ko", "nr": "ndebele del sud", "nso": "sotho del nord", "nus": "nuer", "nv": "navajo", "nwc": "newari classico", "ny": "nyanja", "nym": "nyamwezi", "nyn": "nyankole", "nyo": "nyoro", "nzi": "nzima", "oc": "occitano", "oj": "ojibwa", "om": "oromo", "or": "odia", "os": "ossetico", "osa": "osage", "ota": "turco ottomano", "pa": "punjabi", "pag": "pangasinan", "pal": "pahlavi", "pam": "pampanga", "pap": "papiamento", "pau": "palau", "pcd": "piccardo", "pcm": "pidgin nigeriano", "pdc": "tedesco della Pennsylvania", "peo": "persiano antico", "pfl": "tedesco palatino", "phn": "fenicio", "pi": "pali", "pl": "polacco", "pms": "piemontese", "pnt": "pontico", "pon": "ponape", "prg": "prussiano", "pro": "provenzale antico", "ps": "pashto", "pt": "portoghese", "pt-BR": "portoghese brasiliano", "pt-PT": "portoghese europeo", "qu": "quechua", "quc": "k’iche’", "qug": "quechua dell’altopiano del Chimborazo", "raj": "rajasthani", "rap": "rapanui", "rar": "rarotonga", "rgn": "romagnolo", "rif": "tarifit", "rm": "romancio", "rn": "rundi", "ro": "rumeno", "ro-MD": "moldavo", "rof": "rombo", "rom": "romani", "rtm": "rotumano", "ru": "russo", "rue": "ruteno", "rug": "roviana", "rup": "arumeno", "rw": "kinyarwanda", "rwk": "rwa", "sa": "sanscrito", "sad": "sandawe", "sah": "yakut", "sam": "aramaico samaritano", "saq": "samburu", "sas": "sasak", "sat": "santali", "saz": "saurashtra", "sba": "ngambay", "sbp": "sangu", "sc": "sardo", "scn": "siciliano", "sco": "scozzese", "sd": "sindhi", "sdc": "sassarese", "sdh": "curdo meridionale", "se": "sami del nord", "see": "seneca", "seh": "sena", "sei": "seri", "sel": "selkup", "ses": "koyraboro senni", "sg": "sango", "sga": "irlandese antico", "sgs": "samogitico", "sh": "serbo-croato", "shi": "tashelhit", "shn": "shan", "shu": "arabo ciadiano", "si": "singalese", "sid": "sidamo", "sk": "slovacco", "sl": "sloveno", "sli": "tedesco slesiano", "sly": "selayar", "sm": "samoano", "sma": "sami del sud", "smj": "sami di Lule", "smn": "sami di Inari", "sms": "sami skolt", "sn": "shona", "snk": "soninke", "so": "somalo", "sog": "sogdiano", "sq": "albanese", "sr": "serbo", "srn": "sranan tongo", "srr": "serer", "ss": "swati", "ssy": "saho", "st": "sotho del sud", "stq": "saterfriesisch", "su": "sundanese", "suk": "sukuma", "sus": "susu", "sux": "sumero", "sv": "svedese", "sw": "swahili", "sw-CD": "swahili del Congo", "swb": "comoriano", "syc": "siriaco classico", "syr": "siriaco", "szl": "slesiano", "ta": "tamil", "tcy": "tulu", "te": "telugu", "tem": "temne", "teo": "teso", "ter": "tereno", "tet": "tetum", "tg": "tagico", "th": "thai", "ti": "tigrino", "tig": "tigre", "tk": "turcomanno", "tkl": "tokelau", "tkr": "tsakhur", "tl": "tagalog", "tlh": "klingon", "tli": "tlingit", "tly": "taliscio", "tmh": "tamashek", "tn": "tswana", "to": "tongano", "tog": "nyasa del Tonga", "tpi": "tok pisin", "tr": "turco", "tru": "turoyo", "trv": "taroko", "ts": "tsonga", "tsd": "zaconico", "tsi": "tsimshian", "tt": "tataro", "ttt": "tat islamico", "tum": "tumbuka", "tvl": "tuvalu", "tw": "ci", "twq": "tasawaq", "ty": "taitiano", "tyv": "tuvinian", "tzm": "tamazight", "udm": "udmurt", "ug": "uiguro", "uga": "ugaritico", "uk": "ucraino", "umb": "mbundu", "ur": "urdu", "uz": "uzbeco", "ve": "venda", "vec": "veneto", "vep": "vepso", "vi": "vietnamita", "vls": "fiammingo occidentale", "vo": "volapük", "vot": "voto", "vro": "võro", "vun": "vunjo", "wa": "vallone", "wae": "walser", "wal": "walamo", "war": "waray", "was": "washo", "wbp": "warlpiri", "wo": "wolof", "wuu": "wu", "xal": "kalmyk", "xh": "xhosa", "xmf": "mengrelio", "xog": "soga", "yao": "yao (bantu)", "yap": "yapese", "yav": "yangben", "ybb": "yemba", "yi": "yiddish", "yo": "yoruba", "yrl": "nheengatu", "yue": "cantonese", "za": "zhuang", "zap": "zapotec", "zbl": "blissymbol", "zea": "zelandese", "zen": "zenaga", "zgh": "tamazight del Marocco standard", "zh": "cinese", "zh-Hans": "cinese semplificato", "zh-Hant": "cinese tradizionale", "zu": "zulu", "zun": "zuni", "zza": "zaza"}}, - "ja": {"rtl": false, "languageNames": {"aa": "アファル語", "ab": "アブハズ語", "ace": "アチェ語", "ach": "アチョリ語", "ada": "アダングメ語", "ady": "アディゲ語", "ae": "アヴェスタ語", "aeb": "チュニジア・アラビア語", "af": "アフリカーンス語", "afh": "アフリヒリ語", "agq": "アゲム語", "ain": "アイヌ語", "ak": "アカン語", "akk": "アッカド語", "akz": "アラバマ語", "ale": "アレウト語", "aln": "ゲグ・アルバニア語", "alt": "南アルタイ語", "am": "アムハラ語", "an": "アラゴン語", "ang": "古英語", "anp": "アンギカ語", "ar": "アラビア語", "ar-001": "現代標準アラビア語", "arc": "アラム語", "arn": "マプチェ語", "aro": "アラオナ語", "arp": "アラパホー語", "arq": "アルジェリア・アラビア語", "ars": "ナジュド地方・アラビア語", "arw": "アラワク語", "ary": "モロッコ・アラビア語", "arz": "エジプト・アラビア語", "as": "アッサム語", "asa": "アス語", "ase": "アメリカ手話", "ast": "アストゥリアス語", "av": "アヴァル語", "avk": "コタヴァ", "awa": "アワディー語", "ay": "アイマラ語", "az": "アゼルバイジャン語", "ba": "バシキール語", "bal": "バルーチー語", "ban": "バリ語", "bar": "バイエルン・オーストリア語", "bas": "バサ語", "bax": "バムン語", "bbc": "トバ・バタク語", "bbj": "ゴーマラ語", "be": "ベラルーシ語", "bej": "ベジャ語", "bem": "ベンバ語", "bew": "ベタウィ語", "bez": "ベナ語", "bfd": "バフット語", "bfq": "バダガ語", "bg": "ブルガリア語", "bgn": "西バローチー語", "bho": "ボージュプリー語", "bi": "ビスラマ語", "bik": "ビコル語", "bin": "ビニ語", "bjn": "バンジャル語", "bkm": "コム語", "bla": "シクシカ語", "bm": "バンバラ語", "bn": "ベンガル語", "bo": "チベット語", "bpy": "ビシュヌプリヤ・マニプリ語", "bqi": "バフティヤーリー語", "br": "ブルトン語", "bra": "ブラジ語", "brh": "ブラフイ語", "brx": "ボド語", "bs": "ボスニア語", "bss": "アコース語", "bua": "ブリヤート語", "bug": "ブギ語", "bum": "ブル語", "byn": "ビリン語", "byv": "メドゥンバ語", "ca": "カタロニア語", "cad": "カドー語", "car": "カリブ語", "cay": "カユーガ語", "cch": "チャワイ語", "ccp": "チャクマ語", "ce": "チェチェン語", "ceb": "セブアノ語", "cgg": "チガ語", "ch": "チャモロ語", "chb": "チブチャ語", "chg": "チャガタイ語", "chk": "チューク語", "chm": "マリ語", "chn": "チヌーク混成語", "cho": "チョクトー語", "chp": "チペワイアン語", "chr": "チェロキー語", "chy": "シャイアン語", "ckb": "中央クルド語", "co": "コルシカ語", "cop": "コプト語", "cps": "カピス語", "cr": "クリー語", "crh": "クリミア・タタール語", "crs": "セーシェル・クレオール語", "cs": "チェコ語", "csb": "カシューブ語", "cu": "教会スラブ語", "cv": "チュヴァシ語", "cy": "ウェールズ語", "da": "デンマーク語", "dak": "ダコタ語", "dar": "ダルグワ語", "dav": "タイタ語", "de": "ドイツ語", "de-AT": "ドイツ語 (オーストリア)", "de-CH": "標準ドイツ語 (スイス)", "del": "デラウェア語", "den": "スレイビー語", "dgr": "ドグリブ語", "din": "ディンカ語", "dje": "ザルマ語", "doi": "ドーグリー語", "dsb": "低地ソルブ語", "dtp": "中央ドゥスン語", "dua": "ドゥアラ語", "dum": "中世オランダ語", "dv": "ディベヒ語", "dyo": "ジョラ=フォニィ語", "dyu": "ジュラ語", "dz": "ゾンカ語", "dzg": "ダザガ語", "ebu": "エンブ語", "ee": "エウェ語", "efi": "エフィク語", "egl": "エミリア語", "egy": "古代エジプト語", "eka": "エカジュク語", "el": "ギリシャ語", "elx": "エラム語", "en": "英語", "en-AU": "オーストラリア英語", "en-CA": "カナダ英語", "en-GB": "イギリス英語", "en-US": "アメリカ英語", "enm": "中英語", "eo": "エスペラント語", "es": "スペイン語", "es-419": "スペイン語 (ラテンアメリカ)", "es-ES": "スペイン語 (イベリア半島)", "es-MX": "スペイン語 (メキシコ)", "esu": "中央アラスカ・ユピック語", "et": "エストニア語", "eu": "バスク語", "ewo": "エウォンド語", "ext": "エストレマドゥーラ語", "fa": "ペルシア語", "fan": "ファング語", "fat": "ファンティー語", "ff": "フラ語", "fi": "フィンランド語", "fil": "フィリピノ語", "fit": "トルネダール・フィンランド語", "fj": "フィジー語", "fo": "フェロー語", "fon": "フォン語", "fr": "フランス語", "fr-CA": "フランス語 (カナダ)", "fr-CH": "フランス語 (スイス)", "frc": "ケイジャン・フランス語", "frm": "中期フランス語", "fro": "古フランス語", "frp": "アルピタン語", "frr": "北フリジア語", "frs": "東フリジア語", "fur": "フリウリ語", "fy": "西フリジア語", "ga": "アイルランド語", "gaa": "ガ語", "gag": "ガガウズ語", "gan": "贛語", "gay": "ガヨ語", "gba": "バヤ語", "gbz": "ダリー語(ゾロアスター教)", "gd": "スコットランド・ゲール語", "gez": "ゲエズ語", "gil": "キリバス語", "gl": "ガリシア語", "glk": "ギラキ語", "gmh": "中高ドイツ語", "gn": "グアラニー語", "goh": "古高ドイツ語", "gom": "ゴア・コンカニ語", "gon": "ゴーンディー語", "gor": "ゴロンタロ語", "got": "ゴート語", "grb": "グレボ語", "grc": "古代ギリシャ語", "gsw": "スイスドイツ語", "gu": "グジャラート語", "guc": "ワユ語", "gur": "フラフラ語", "guz": "グシイ語", "gv": "マン島語", "gwi": "グウィッチン語", "ha": "ハウサ語", "hai": "ハイダ語", "hak": "客家語", "haw": "ハワイ語", "he": "ヘブライ語", "hi": "ヒンディー語", "hif": "フィジー・ヒンディー語", "hil": "ヒリガイノン語", "hit": "ヒッタイト語", "hmn": "フモン語", "ho": "ヒリモツ語", "hr": "クロアチア語", "hsb": "高地ソルブ語", "hsn": "湘語", "ht": "ハイチ・クレオール語", "hu": "ハンガリー語", "hup": "フパ語", "hy": "アルメニア語", "hz": "ヘレロ語", "ia": "インターリングア", "iba": "イバン語", "ibb": "イビビオ語", "id": "インドネシア語", "ie": "インターリング", "ig": "イボ語", "ii": "四川イ語", "ik": "イヌピアック語", "ilo": "イロカノ語", "inh": "イングーシ語", "io": "イド語", "is": "アイスランド語", "it": "イタリア語", "iu": "イヌクティトット語", "izh": "イングリア語", "ja": "日本語", "jam": "ジャマイカ・クレオール語", "jbo": "ロジバン語", "jgo": "ンゴンバ語", "jmc": "マチャメ語", "jpr": "ユダヤ・ペルシア語", "jrb": "ユダヤ・アラビア語", "jut": "ユトランド語", "jv": "ジャワ語", "ka": "ジョージア語", "kaa": "カラカルパク語", "kab": "カビル語", "kac": "カチン語", "kaj": "カジェ語", "kam": "カンバ語", "kaw": "カウィ語", "kbd": "カバルド語", "kbl": "カネンブ語", "kcg": "カタブ語", "kde": "マコンデ語", "kea": "カーボベルデ・クレオール語", "ken": "ニャン語", "kfo": "コロ語", "kg": "コンゴ語", "kgp": "カインガング語", "kha": "カシ語", "kho": "コータン語", "khq": "コイラ・チーニ語", "khw": "コワール語", "ki": "キクユ語", "kiu": "キルマンジュキ語", "kj": "クワニャマ語", "kk": "カザフ語", "kkj": "カコ語", "kl": "グリーンランド語", "kln": "カレンジン語", "km": "クメール語", "kmb": "キンブンド語", "kn": "カンナダ語", "ko": "韓国語", "koi": "コミ・ペルミャク語", "kok": "コンカニ語", "kos": "コスラエ語", "kpe": "クペレ語", "kr": "カヌリ語", "krc": "カラチャイ・バルカル語", "kri": "クリオ語", "krj": "キナライア語", "krl": "カレリア語", "kru": "クルク語", "ks": "カシミール語", "ksb": "サンバー語", "ksf": "バフィア語", "ksh": "ケルン語", "ku": "クルド語", "kum": "クムク語", "kut": "クテナイ語", "kv": "コミ語", "kw": "コーンウォール語", "ky": "キルギス語", "la": "ラテン語", "lad": "ラディノ語", "lag": "ランギ語", "lah": "ラフンダー語", "lam": "ランバ語", "lb": "ルクセンブルク語", "lez": "レズギ語", "lfn": "リングア・フランカ・ノバ", "lg": "ガンダ語", "li": "リンブルフ語", "lij": "リグリア語", "liv": "リヴォニア語", "lkt": "ラコタ語", "lmo": "ロンバルド語", "ln": "リンガラ語", "lo": "ラオ語", "lol": "モンゴ語", "lou": "ルイジアナ・クレオール語", "loz": "ロジ語", "lrc": "北ロル語", "lt": "リトアニア語", "ltg": "ラトガリア語", "lu": "ルバ・カタンガ語", "lua": "ルバ・ルルア語", "lui": "ルイセーニョ語", "lun": "ルンダ語", "luo": "ルオ語", "lus": "ミゾ語", "luy": "ルヒヤ語", "lv": "ラトビア語", "lzh": "漢文", "lzz": "ラズ語", "mad": "マドゥラ語", "maf": "マファ語", "mag": "マガヒー語", "mai": "マイティリー語", "mak": "マカッサル語", "man": "マンディンゴ語", "mas": "マサイ語", "mde": "マバ語", "mdf": "モクシャ語", "mdr": "マンダル語", "men": "メンデ語", "mer": "メル語", "mfe": "モーリシャス・クレオール語", "mg": "マダガスカル語", "mga": "中期アイルランド語", "mgh": "マクア・ミート語", "mgo": "メタ語", "mh": "マーシャル語", "mi": "マオリ語", "mic": "ミクマク語", "min": "ミナンカバウ語", "mk": "マケドニア語", "ml": "マラヤーラム語", "mn": "モンゴル語", "mnc": "満州語", "mni": "マニプリ語", "moh": "モーホーク語", "mos": "モシ語", "mr": "マラーティー語", "mrj": "山地マリ語", "ms": "マレー語", "mt": "マルタ語", "mua": "ムンダン語", "mus": "クリーク語", "mwl": "ミランダ語", "mwr": "マールワーリー語", "mwv": "メンタワイ語", "my": "ミャンマー語", "mye": "ミエネ語", "myv": "エルジャ語", "mzn": "マーザンダラーン語", "na": "ナウル語", "nan": "閩南語", "nap": "ナポリ語", "naq": "ナマ語", "nb": "ノルウェー語(ブークモール)", "nd": "北ンデベレ語", "nds": "低地ドイツ語", "nds-NL": "低地ドイツ語 (オランダ)", "ne": "ネパール語", "new": "ネワール語", "ng": "ンドンガ語", "nia": "ニアス語", "niu": "ニウーエイ語", "njo": "アオ・ナガ語", "nl": "オランダ語", "nl-BE": "フレミッシュ語", "nmg": "クワシオ語", "nn": "ノルウェー語(ニーノシュク)", "nnh": "ンジエムブーン語", "no": "ノルウェー語", "nog": "ノガイ語", "non": "古ノルド語", "nov": "ノヴィアル", "nqo": "ンコ語", "nr": "南ンデベレ語", "nso": "北部ソト語", "nus": "ヌエル語", "nv": "ナバホ語", "nwc": "古典ネワール語", "ny": "ニャンジャ語", "nym": "ニャムウェジ語", "nyn": "ニャンコレ語", "nyo": "ニョロ語", "nzi": "ンゼマ語", "oc": "オック語", "oj": "オジブウェー語", "om": "オロモ語", "or": "オディア語", "os": "オセット語", "osa": "オセージ語", "ota": "オスマントルコ語", "pa": "パンジャブ語", "pag": "パンガシナン語", "pal": "パフラヴィー語", "pam": "パンパンガ語", "pap": "パピアメント語", "pau": "パラオ語", "pcd": "ピカルディ語", "pcm": "ナイジェリア・ピジン語", "pdc": "ペンシルベニア・ドイツ語", "pdt": "メノナイト低地ドイツ語", "peo": "古代ペルシア語", "pfl": "プファルツ語", "phn": "フェニキア語", "pi": "パーリ語", "pl": "ポーランド語", "pms": "ピエモンテ語", "pnt": "ポントス・ギリシャ語", "pon": "ポンペイ語", "prg": "プロシア語", "pro": "古期プロバンス語", "ps": "パシュトゥー語", "pt": "ポルトガル語", "pt-BR": "ポルトガル語 (ブラジル)", "pt-PT": "ポルトガル語 (イベリア半島)", "qu": "ケチュア語", "quc": "キチェ語", "qug": "チンボラソ高地ケチュア語", "raj": "ラージャスターン語", "rap": "ラパヌイ語", "rar": "ラロトンガ語", "rgn": "ロマーニャ語", "rif": "リーフ語", "rm": "ロマンシュ語", "rn": "ルンディ語", "ro": "ルーマニア語", "ro-MD": "モルダビア語", "rof": "ロンボ語", "rom": "ロマーニー語", "root": "ルート", "rtm": "ロツマ語", "ru": "ロシア語", "rue": "ルシン語", "rug": "ロヴィアナ語", "rup": "アルーマニア語", "rw": "キニアルワンダ語", "rwk": "ルワ語", "sa": "サンスクリット語", "sad": "サンダウェ語", "sah": "サハ語", "sam": "サマリア・アラム語", "saq": "サンブル語", "sas": "ササク語", "sat": "サンターリー語", "saz": "サウラーシュトラ語", "sba": "ンガムバイ語", "sbp": "サング語", "sc": "サルデーニャ語", "scn": "シチリア語", "sco": "スコットランド語", "sd": "シンド語", "sdc": "サッサリ・サルデーニャ語", "sdh": "南部クルド語", "se": "北サーミ語", "see": "セネカ語", "seh": "セナ語", "sei": "セリ語", "sel": "セリクプ語", "ses": "コイラボロ・センニ語", "sg": "サンゴ語", "sga": "古アイルランド語", "sgs": "サモギティア語", "sh": "セルボ・クロアチア語", "shi": "タシルハイト語", "shn": "シャン語", "shu": "チャド・アラビア語", "si": "シンハラ語", "sid": "シダモ語", "sk": "スロバキア語", "sl": "スロベニア語", "sli": "低シレジア語", "sly": "スラヤール語", "sm": "サモア語", "sma": "南サーミ語", "smj": "ルレ・サーミ語", "smn": "イナリ・サーミ語", "sms": "スコルト・サーミ語", "sn": "ショナ語", "snk": "ソニンケ語", "so": "ソマリ語", "sog": "ソグド語", "sq": "アルバニア語", "sr": "セルビア語", "srn": "スリナム語", "srr": "セレル語", "ss": "スワジ語", "ssy": "サホ語", "st": "南部ソト語", "stq": "ザーターフリジア語", "su": "スンダ語", "suk": "スクマ語", "sus": "スス語", "sux": "シュメール語", "sv": "スウェーデン語", "sw": "スワヒリ語", "sw-CD": "コンゴ・スワヒリ語", "swb": "コモロ語", "syc": "古典シリア語", "syr": "シリア語", "szl": "シレジア語", "ta": "タミル語", "tcy": "トゥル語", "te": "テルグ語", "tem": "テムネ語", "teo": "テソ語", "ter": "テレーノ語", "tet": "テトゥン語", "tg": "タジク語", "th": "タイ語", "ti": "ティグリニア語", "tig": "ティグレ語", "tiv": "ティブ語", "tk": "トルクメン語", "tkl": "トケラウ語", "tkr": "ツァフル語", "tl": "タガログ語", "tlh": "クリンゴン語", "tli": "トリンギット語", "tly": "タリシュ語", "tmh": "タマシェク語", "tn": "ツワナ語", "to": "トンガ語", "tog": "トンガ語(ニアサ)", "tpi": "トク・ピシン語", "tr": "トルコ語", "tru": "トゥロヨ語", "trv": "タロコ語", "ts": "ツォンガ語", "tsd": "ツァコン語", "tsi": "チムシュ語", "tt": "タタール語", "ttt": "ムスリム・タタール語", "tum": "トゥンブカ語", "tvl": "ツバル語", "tw": "トウィ語", "twq": "タサワク語", "ty": "タヒチ語", "tyv": "トゥヴァ語", "tzm": "中央アトラス・タマジクト語", "udm": "ウドムルト語", "ug": "ウイグル語", "uga": "ウガリト語", "uk": "ウクライナ語", "umb": "ムブンドゥ語", "ur": "ウルドゥー語", "uz": "ウズベク語", "vai": "ヴァイ語", "ve": "ベンダ語", "vec": "ヴェネト語", "vep": "ヴェプス語", "vi": "ベトナム語", "vls": "西フラマン語", "vmf": "マインフランク語", "vo": "ヴォラピュク語", "vot": "ヴォート語", "vro": "ヴォロ語", "vun": "ヴンジョ語", "wa": "ワロン語", "wae": "ヴァリス語", "wal": "ウォライタ語", "war": "ワライ語", "was": "ワショ語", "wbp": "ワルピリ語", "wo": "ウォロフ語", "wuu": "呉語", "xal": "カルムイク語", "xh": "コサ語", "xmf": "メグレル語", "xog": "ソガ語", "yao": "ヤオ語", "yap": "ヤップ語", "yav": "ヤンベン語", "ybb": "イエンバ語", "yi": "イディッシュ語", "yo": "ヨルバ語", "yrl": "ニェエンガトゥ語", "yue": "広東語", "za": "チワン語", "zap": "サポテカ語", "zbl": "ブリスシンボル", "zea": "ゼーラント語", "zen": "ゼナガ語", "zgh": "標準モロッコ タマジクト語", "zh": "中国語", "zh-Hans": "簡体中国語", "zh-Hant": "繁体中国語", "zu": "ズールー語", "zun": "ズニ語", "zza": "ザザ語"}}, - "jv": {"rtl": false, "languageNames": {"agq": "Aghem", "ak": "Akan", "am": "Amharik", "ar": "Arab", "ar-001": "Arab Standar Anyar", "as": "Assam", "asa": "Asu", "ast": "Asturia", "az": "Azerbaijan", "bas": "Basaa", "bem": "Bemba", "bez": "Bena", "bg": "Bulgaria", "bm": "Bambara", "bn": "Bengali", "bo": "Tibet", "br": "Breton", "brx": "Bodo", "ca": "Katala", "ce": "Chechen", "ceb": "Cebuano", "cgg": "Chiga", "chr": "Cherokee", "ckb": "Kurdi Tengah", "co": "Korsika", "cs": "Ceska", "cu": "Slavia Gerejani", "cy": "Welsh", "da": "Dansk", "dav": "Taita", "de": "Jérman", "de-AT": "Jérman (Ostenrik)", "de-CH": "Jérman (Switserlan)", "dje": "Zarma", "dsb": "Sorbia Non Standar", "dua": "Duala", "dyo": "Jola-Fonyi", "dz": "Dzongkha", "ebu": "Embu", "ee": "Ewe", "el": "Yunani", "en": "Inggris", "en-AU": "Inggris (Ostrali)", "en-CA": "Inggris (Kanada)", "en-GB": "Inggris (Karajan Manunggal)", "en-US": "Inggris (Amérika Sarékat)", "eo": "Esperanto", "es": "Spanyol", "es-419": "Spanyol (Amerika Latin)", "es-ES": "Spanyol (Eropah)", "es-MX": "Spanyol (Meksiko)", "et": "Estonia", "eu": "Basque", "ewo": "Ewondo", "fa": "Persia", "ff": "Fulah", "fi": "Suomi", "fil": "Tagalog", "fo": "Faroe", "fr": "Prancis", "fr-CA": "Prancis (Kanada)", "fr-CH": "Prancis (Switserlan)", "fur": "Friulian", "fy": "Frisia Sisih Kulon", "ga": "Irlandia", "gd": "Gaulia", "gl": "Galisia", "gsw": "Jerman Swiss", "gu": "Gujarat", "guz": "Gusii", "gv": "Manx", "ha": "Hausa", "haw": "Hawaii", "he": "Ibrani", "hi": "India", "hmn": "Hmong", "hr": "Kroasia", "hsb": "Sorbia Standar", "ht": "Kreol Haiti", "hu": "Hungaria", "hy": "Armenia", "ia": "Interlingua", "id": "Indonesia", "ig": "Iqbo", "ii": "Sichuan Yi", "is": "Islandia", "it": "Italia", "ja": "Jepang", "jgo": "Ngomba", "jmc": "Machame", "jv": "Jawa", "ka": "Georgia", "kab": "Kabyle", "kam": "Kamba", "kde": "Makonde", "kea": "Kabuverdianu", "khq": "Koyra Chiini", "ki": "Kikuyu", "kk": "Kazakh", "kkj": "Kako", "kl": "Kalaallisut", "kln": "Kalenjin", "km": "Khmer", "kn": "Kannada", "ko": "Korea", "kok": "Konkani", "ks": "Kashmiri", "ksb": "Shambala", "ksf": "Bafia", "ksh": "Colonia", "ku": "Kurdis", "kw": "Kernowek", "ky": "Kirgis", "la": "Latin", "lag": "Langi", "lb": "Luksemburg", "lg": "Ganda", "lkt": "Lakota", "ln": "Lingala", "lo": "Laos", "lrc": "Luri Sisih Lor", "lt": "Lithuania", "lu": "Luba-Katanga", "luo": "Luo", "luy": "Luyia", "lv": "Latvia", "mas": "Masai", "mer": "Meru", "mfe": "Morisyen", "mg": "Malagasi", "mgh": "Makhuwa-Meeto", "mgo": "Meta’", "mi": "Maori", "mk": "Makedonia", "ml": "Malayalam", "mn": "Mongolia", "mr": "Marathi", "ms": "Melayu", "mt": "Malta", "mua": "Mundang", "my": "Myanmar", "mzn": "Mazanderani", "naq": "Nama", "nb": "Bokmål Norwegia", "nd": "Ndebele Lor", "nds": "Jerman Non Standar", "nds-NL": "Jerman Non Standar (Walanda)", "ne": "Nepal", "nl": "Walanda", "nl-BE": "Flemis", "nmg": "Kwasio", "nn": "Nynorsk Norwegia", "nnh": "Ngiemboon", "nus": "Nuer", "ny": "Nyanja", "nyn": "Nyankole", "om": "Oromo", "or": "Odia", "os": "Ossetia", "pa": "Punjab", "pl": "Polandia", "prg": "Prusia", "ps": "Pashto", "pt": "Portugis", "pt-BR": "Portugis (Brasil)", "pt-PT": "Portugis (Portugal)", "qu": "Quechua", "rm": "Roman", "rn": "Rundi", "ro": "Rumania", "ro-MD": "Rumania (Moldova)", "rof": "Rombo", "ru": "Rusia", "rw": "Kinyarwanda", "rwk": "Rwa", "sa": "Sanskerta", "sah": "Sakha", "saq": "Samburu", "sbp": "Sangu", "sd": "Sindhi", "se": "Sami Sisih Lor", "seh": "Sena", "ses": "Koyraboro Senni", "sg": "Sango", "shi": "Tachelhit", "si": "Sinhala", "sk": "Slowakia", "sl": "Slovenia", "sm": "Samoa", "smn": "Inari Sami", "sn": "Shona", "so": "Somalia", "sq": "Albania", "sr": "Serbia", "st": "Sotho Sisih Kidul", "su": "Sunda", "sv": "Swedia", "sw": "Swahili", "sw-CD": "Swahili (Kongo - Kinshasa)", "ta": "Tamil", "te": "Telugu", "teo": "Teso", "tg": "Tajik", "th": "Thailand", "ti": "Tigrinya", "tk": "Turkmen", "to": "Tonga", "tr": "Turki", "tt": "Tatar", "twq": "Tasawaq", "tzm": "Tamazight Atlas Tengah", "ug": "Uighur", "uk": "Ukraina", "ur": "Urdu", "uz": "Uzbek", "vai": "Vai", "vi": "Vietnam", "vo": "Volapuk", "vun": "Vunjo", "wae": "Walser", "wo": "Wolof", "xh": "Xhosa", "xog": "Soga", "yav": "Yangben", "yi": "Yiddish", "yo": "Yoruba", "yue": "Kanton", "zgh": "Tamazight Moroko Standar", "zh": "Tyonghwa", "zh-Hans": "Tyonghwa (Prasaja)", "zh-Hant": "Tyonghwa (Tradisional)", "zu": "Zulu"}}, - "km": {"rtl": false, "languageNames": {"aa": "អាហ្វារ", "ab": "អាប់ខាហ៊្សាន", "ace": "អាកហ៊ីនឺស", "ada": "អាដេងមី", "ady": "អាឌីហ្គី", "ae": "អាវេស្ថាន", "af": "អាហ្វ្រិកាន", "agq": "អាហ្គីម", "ain": "អាយនូ", "ak": "អាកាន", "ale": "អាលូត", "alt": "អាល់តៃខាងត្បូង", "am": "អាំហារិក", "an": "អារ៉ាហ្គោន", "anp": "អាហ្គីកា", "ar": "អារ៉ាប់", "ar-001": "អារ៉ាប់ (ស្តង់ដារ)", "arn": "ម៉ាពូឈី", "arp": "អារ៉ាប៉ាហូ", "as": "អាសាមីស", "asa": "អាស៊ូ", "ast": "អាស្ទូរី", "av": "អាវ៉ារីក", "awa": "អាវ៉ាឌី", "ay": "អីម៉ារ៉ា", "az": "អាស៊ែបៃហ្សង់", "ba": "បាស្គៀ", "ban": "បាលី", "bas": "បាសា", "be": "បេឡារុស", "bem": "បេមបា", "bez": "បេណា", "bg": "ប៊ុលហ្គារី", "bgn": "បាឡូជីខាងលិច", "bho": "បូចពូរី", "bi": "ប៊ីស្លាម៉ា", "bin": "ប៊ីនី", "bla": "ស៊ីកស៊ីកា", "bm": "បាម្បារា", "bn": "បង់ក្លាដែស", "bo": "ទីបេ", "br": "ប្រីស្តុន", "brx": "បូដូ", "bs": "បូស្នី", "bug": "ប៊ុកហ្គី", "byn": "ប្ល៊ីន", "ca": "កាតាឡាន", "ce": "ឈីឆេន", "ceb": "ស៊ីប៊ូអាណូ", "cgg": "ឈីហ្គា", "ch": "ឈីម៉ូរ៉ូ", "chk": "ឈូគី", "chm": "ម៉ារី", "cho": "ឆុកតាវ", "chr": "ឆេរូគី", "chy": "ឈីយីនី", "ckb": "ឃើដភាគកណ្តាល", "co": "កូស៊ីខាន", "crs": "សេសេលវ៉ាគ្រីអូល (បារាំង)", "cs": "ឆែក", "cu": "ឈឺជស្លាវិក", "cv": "ឈូវ៉ាស", "cy": "វេល", "da": "ដាណឺម៉ាក", "dak": "ដាកូតា", "dar": "ដាចវ៉ា", "dav": "តៃតា", "de": "អាល្លឺម៉ង់", "de-AT": "អាល្លឺម៉ង់ (អូទ្រីស)", "de-CH": "អាល្លឺម៉ង់ (ស្វីស)", "dgr": "ដូគ្រីប", "dje": "ហ្សាម៉ា", "dsb": "សូប៊ីក្រោម", "dua": "ឌួលឡា", "dv": "ទេវីហ៊ី", "dyo": "ចូឡាហ៊្វុនយី", "dz": "ដុងខា", "dzg": "ដាហ្សាហ្គា", "ebu": "អេមប៊ូ", "ee": "អ៊ីវ", "efi": "អ៊ីហ្វិក", "eka": "អ៊ីកាជុក", "el": "ក្រិក", "en": "អង់គ្លេស", "en-AU": "អង់គ្លេស (អូស្ត្រាលី)", "en-CA": "អង់គ្លេស (កាណាដា)", "en-GB": "អង់គ្លេស (ចក្រភព​អង់គ្លេស)", "en-US": "អង់គ្លេស (សហរដ្ឋអាមេរិក)", "eo": "អេស្ពេរ៉ាន់តូ", "es": "អេស្ប៉ាញ", "es-419": "អេស្ប៉ាញ (អាមេរិក​ឡាទីន)", "es-ES": "អេស្ប៉ាញ (អ៊ឺរ៉ុប)", "es-MX": "អេស្ប៉ាញ (ម៉ិកស៊ិក)", "et": "អេស្តូនី", "eu": "បាសខ៍", "ewo": "អ៊ីវ៉ុនដូ", "fa": "ភឺសៀន", "ff": "ហ្វ៊ូឡា", "fi": "ហ្វាំងឡង់", "fil": "ហ្វីលីពីន", "fj": "ហ៊្វីជី", "fo": "ហ្វារូស", "fon": "ហ្វ៊ុន", "fr": "បារាំង", "fr-CA": "បារាំង (កាណាដា)", "fr-CH": "បារាំង (ស្វីស)", "fur": "ហ៊្វ្រូលាន", "fy": "ហ្វ្រីស៊ានខាងលិច", "ga": "អៀរឡង់", "gaa": "ហ្គា", "gag": "កាគូស", "gd": "ស្កុតហ្កែលិគ", "gez": "ជីស", "gil": "ហ្គីលបឺទ", "gl": "ហ្គាលីស្យាន", "gn": "ហ្គូរ៉ានី", "gor": "ហ្គូរុនតាឡូ", "gsw": "អាល្លឺម៉ង (ស្វីស)", "gu": "ហ្កុយ៉ារាទី", "guz": "ហ្គូស៊ី", "gv": "មេន", "gwi": "ហ្គីចឈីន", "ha": "ហូសា", "haw": "ហាវៃ", "he": "ហេប្រឺ", "hi": "ហិណ្ឌី", "hil": "ហ៊ីលីហ្គេណុន", "hmn": "ម៉ុង", "hr": "ក្រូអាត", "hsb": "សូប៊ីលើ", "ht": "ហៃទី", "hu": "ហុងគ្រី", "hup": "ហ៊ូប៉ា", "hy": "អាមេនី", "hz": "ហឺរីរ៉ូ", "ia": "អីនធើលីង", "iba": "អ៊ីបាន", "ibb": "អាយប៊ីប៊ីអូ", "id": "ឥណ្ឌូណេស៊ី", "ig": "អ៊ីកបូ", "ii": "ស៊ីឈាន់យី", "ilo": "អ៊ីឡូកូ", "inh": "អ៊ិនហ្គូស", "io": "អ៊ីដូ", "is": "អ៊ីស្លង់", "it": "អ៊ីតាលី", "iu": "អ៊ីនុកទីទុត", "ja": "ជប៉ុន", "jbo": "លុចបាន", "jgo": "ងុំបា", "jmc": "ម៉ាឆាំ", "jv": "ជ្វា", "ka": "ហ្សក​ហ្ស៊ី", "kab": "កាប៊ីឡេ", "kac": "កាឈីន", "kaj": "ជូ", "kam": "កាំបា", "kbd": "កាបាឌៀ", "kcg": "យ៉ាប់", "kde": "ម៉ាកូនដេ", "kea": "កាប៊ូវឺឌៀនូ", "kfo": "គូរូ", "kha": "កាស៊ី", "khq": "គុយរ៉ាឈីនី", "ki": "គីគូយូ", "kj": "គូនយ៉ាម៉ា", "kk": "កាហ្សាក់", "kkj": "កាកូ", "kl": "កាឡាលលីស៊ុត", "kln": "កាលែនជីន", "km": "ខ្មែរ", "kmb": "គីមប៊ុនឌូ", "kn": "ខាណាដា", "ko": "កូរ៉េ", "koi": "គូមីភឹមយ៉ាគ", "kok": "គុនកានី", "kpe": "គ្លីប", "kr": "កានូរី", "krc": "ការ៉ាឆាយបាល់កា", "krl": "ការីលា", "kru": "គូរូក", "ks": "កាស្មៀរ", "ksb": "សាមបាឡា", "ksf": "បាហ្វៀ", "ksh": "កូឡូញ", "ku": "ឃឺដ", "kum": "គូមីគ", "kv": "កូមី", "kw": "កូនីស", "ky": "​កៀហ្ស៊ីស", "la": "ឡាតំាង", "lad": "ឡាឌីណូ", "lag": "ឡានហ្គី", "lb": "លុចសំបួ", "lez": "ឡេសហ្គី", "lg": "ហ្គាន់ដា", "li": "លីមប៊ូស", "lkt": "ឡាកូតា", "ln": "លីនកាឡា", "lo": "ឡាវ", "loz": "ឡូហ្ស៊ី", "lrc": "លូរីខាងជើង", "lt": "លីទុយអានី", "lu": "លូបាកាតានហ្គា", "lua": "លូបាលូឡា", "lun": "លុនដា", "luo": "លូអូ", "lus": "មីហ្សូ", "luy": "លូយ៉ា", "lv": "ឡាតវី", "mad": "ម៉ាឌូរីស", "mag": "ម៉ាហ្គាហ៊ី", "mai": "ម៉ៃធីលី", "mak": "ម៉ាកាសា", "mas": "ម៉ាសៃ", "mdf": "មុខសា", "men": "មេនឌី", "mer": "មេរូ", "mfe": "ម៉ូរីស៊ីន", "mg": "ម៉ាឡាហ្គាស៊ី", "mgh": "ម៉ាកគូវ៉ាមីតូ", "mgo": "មេតា", "mh": "ម៉ាស់សល", "mi": "ម៉ោរី", "mic": "មិកមេក", "min": "មីណាងកាប៊ូ", "mk": "ម៉ាសេដូនី", "ml": "ម៉ាឡាយ៉ាឡាម", "mn": "ម៉ុងហ្គោលី", "mni": "ម៉ានីពូរី", "moh": "ម៊ូហាគ", "mos": "មូស៊ី", "mr": "ម៉ារ៉ាធី", "ms": "ម៉ាឡេ", "mt": "ម៉ាល់តា", "mua": "មុនដាង", "mus": "គ្រីក", "mwl": "មីរ៉ានដេស", "my": "ភូមា", "myv": "អឺហ្ស៊ីយ៉ា", "mzn": "ម៉ាហ្សានដឺរេនី", "na": "ណូរូ", "nap": "នាប៉ូលីតាន", "naq": "ណាម៉ា", "nb": "ន័រវែស បុកម៉ាល់", "nd": "នេបេលេខាងជើង", "nds": "អាល្លឺម៉ង់ក្រោម", "nds-NL": "ហ្សាក់ស្យុងក្រោម", "ne": "នេប៉ាល់", "new": "នេវ៉ាវី", "ng": "នុនហ្គា", "nia": "នីអាស", "niu": "នូអៀន", "nl": "ហូឡង់", "nl-BE": "ផ្លាមីស", "nmg": "ក្វាស្យូ", "nn": "ន័រវែស នីនូស", "nnh": "ងៀមប៊ូន", "no": "ន័រវែស", "nog": "ណូហ្គៃ", "nqo": "នគោ", "nr": "នេប៊េលខាងត្បូង", "nso": "សូថូខាងជើង", "nus": "នូអ័រ", "nv": "ណាវ៉ាចូ", "ny": "ណានចា", "nyn": "ណានកូលេ", "oc": "អូសីតាន់", "om": "អូរ៉ូម៉ូ", "or": "អូឌៀ", "os": "អូស៊ីទិក", "pa": "បឹនជាពិ", "pag": "ភេនហ្គាស៊ីណាន", "pam": "ផាមភេនហ្គា", "pap": "ប៉ាប៉ៃមេនតូ", "pau": "ប៉ាលូអាន", "pcm": "ភាសាទំនាក់ទំនងនីហ្សេរីយ៉ា", "pl": "ប៉ូឡូញ", "prg": "ព្រូស៊ាន", "ps": "បាស្តូ", "pt": "ព័រទុយហ្គាល់", "pt-BR": "ព័រទុយហ្គាល់ (ប្រេស៊ីល)", "pt-PT": "ព័រទុយហ្គាល់ (អឺរ៉ុប)", "qu": "ហ្គិកឈួ", "quc": "គីចឈី", "rap": "រ៉ាប៉ានូ", "rar": "រ៉ារ៉ូតុងហ្គាន", "rm": "រ៉ូម៉ង់", "rn": "រុណ្ឌី", "ro": "រូម៉ានី", "ro-MD": "ម៉ុលដាវី", "rof": "រុមបូ", "root": "រូត", "ru": "រុស្ស៊ី", "rup": "អារ៉ូម៉ានី", "rw": "គិនយ៉ាវ៉ាន់ដា", "rwk": "រ៉្វា", "sa": "សំស្ក្រឹត", "sad": "សានដាវី", "sah": "សាខា", "saq": "សាមបូរូ", "sat": "សាន់តាលី", "sba": "ងាំបេយ", "sbp": "សានហ្គូ", "sc": "សាឌីនា", "scn": "ស៊ីស៊ីលាន", "sco": "ស្កុត", "sd": "ស៊ីនឌី", "sdh": "ឃើដភាគខាងត្បូង", "se": "សាមីខាងជើង", "seh": "ស៊ីណា", "ses": "គុយរ៉ាបូរ៉ុស៊ីនី", "sg": "សានហ្គោ", "sh": "សឺបូក្រូអាត", "shi": "តាឈីលហ៊ីត", "shn": "សាន", "si": "ស្រីលង្កា", "sk": "ស្លូវ៉ាគី", "sl": "ស្លូវ៉ានី", "sm": "សាម័រ", "sma": "សាមីខាងត្បូង", "smj": "លូលីសាមី", "smn": "អ៊ីណារីសាម៉ី", "sms": "ស្កុលសាមី", "sn": "សូណា", "snk": "សូនីនគេ", "so": "សូម៉ាលី", "sq": "អាល់បានី", "sr": "ស៊ែប", "srn": "ស្រាណានតុងហ្គោ", "ss": "ស្វាទី", "ssy": "សាហូ", "st": "សូថូខាងត្បូង", "su": "ស៊ូដង់", "suk": "ស៊ូគូម៉ា", "sv": "ស៊ុយអែត", "sw": "ស្វាហ៊ីលី", "sw-CD": "កុងហ្គោស្វាហ៊ីលី", "swb": "កូម៉ូរី", "syr": "ស៊ីរី", "ta": "តាមីល", "te": "តេលុគុ", "tem": "ធីមនី", "teo": "តេសូ", "tet": "ទីទុំ", "tg": "តាហ្ស៊ីគ", "th": "ថៃ", "ti": "ទីហ្គ្រីញ៉ា", "tig": "ធីហ្គ្រា", "tk": "តួកម៉េន", "tlh": "ឃ្លីនហ្គុន", "tn": "ស្វាណា", "to": "តុងហ្គា", "tpi": "ថុកពីស៊ីន", "tr": "ទួរគី", "trv": "តារ៉ូកូ", "ts": "សុងហ្គា", "tt": "តាតា", "tum": "ទុមប៊ូកា", "tvl": "ទូវ៉ាលូ", "tw": "ទ្វី", "twq": "តាសាវ៉ាក់", "ty": "តាហ៊ីទី", "tyv": "ទូវីនៀ", "tzm": "តាម៉ាសាយអាត្លាសកណ្តាល", "udm": "អាត់មូដ", "ug": "អ៊ុយហ្គឺរ", "uk": "អ៊ុយក្រែន", "umb": "អាម់ប៊ុនឌូ", "ur": "អ៊ូរឌូ", "uz": "អ៊ូសបេគ", "vai": "វៃ", "ve": "វេនដា", "vi": "វៀតណាម", "vo": "វូឡាពូក", "vun": "វុនចូ", "wa": "វ៉ាលូន", "wae": "វេលសឺ", "wal": "វ៉ូឡាយតា", "war": "វ៉ារេយ", "wbp": "វ៉ារីប៉ារី", "wo": "វូឡុហ្វ", "xal": "កាលមីគ", "xh": "ឃសា", "xog": "សូហ្គា", "yav": "យ៉ាងបេន", "ybb": "យេមបា", "yi": "យ៉ីឌីស", "yo": "យរូបា", "yue": "កន្តាំង", "za": "ហ្សួង", "zgh": "តាម៉ាហ្សៃម៉ារ៉ុកស្តង់ដា", "zh": "ចិន", "zh-Hans": "ចិន​អក្សរ​កាត់", "zh-Hant": "ចិន​អក្សរ​ពេញ", "zu": "ហ្សូលូ", "zun": "ហ្សូនី", "zza": "ហ្សាហ្សា"}}, - "kn": {"rtl": false, "languageNames": {"aa": "ಅಫಾರ್", "ab": "ಅಬ್ಖಾಜಿಯನ್", "ace": "ಅಛಿನೀಸ್", "ach": "ಅಕೋಲಿ", "ada": "ಅಡಂಗ್ಮೆ", "ady": "ಅಡೈಘೆ", "ae": "ಅವೆಸ್ಟನ್", "af": "ಆಫ್ರಿಕಾನ್ಸ್", "afh": "ಆಫ್ರಿಹಿಲಿ", "agq": "ಅಘೆಮ್", "ain": "ಐನು", "ak": "ಅಕಾನ್", "akk": "ಅಕ್ಕಾಡಿಯನ್", "ale": "ಅಲೆಯುಟ್", "alt": "ದಕ್ಷಿಣ ಅಲ್ಟಾಯ್", "am": "ಅಂಹರಿಕ್", "an": "ಅರಗೊನೀಸ್", "ang": "ಪ್ರಾಚೀನ ಇಂಗ್ಲೀಷ್", "anp": "ಆಂಗಿಕಾ", "ar": "ಅರೇಬಿಕ್", "ar-001": "ಆಧುನಿಕ ಪ್ರಮಾಣಿತ ಅರೇಬಿಕ್", "arc": "ಅರಾಮಿಕ್", "arn": "ಮಪುಚೆ", "arp": "ಅರಪಾಹೋ", "arw": "ಅರಾವಾಕ್", "as": "ಅಸ್ಸಾಮೀಸ್", "asa": "ಅಸು", "ast": "ಆಸ್ಟುರಿಯನ್", "av": "ಅವರಿಕ್", "awa": "ಅವಧಿ", "ay": "ಅಯ್ಮಾರಾ", "az": "ಅಜೆರ್ಬೈಜಾನಿ", "ba": "ಬಶ್ಕಿರ್", "bal": "ಬಲೂಚಿ", "ban": "ಬಲಿನೀಸ್", "bas": "ಬಸಾ", "be": "ಬೆಲರೂಸಿಯನ್", "bej": "ಬೇಜಾ", "bem": "ಬೆಂಬಾ", "bez": "ಬೆನ", "bg": "ಬಲ್ಗೇರಿಯನ್", "bgn": "ಪಶ್ಚಿಮ ಬಲೊಚಿ", "bho": "ಭೋಜಪುರಿ", "bi": "ಬಿಸ್ಲಾಮಾ", "bik": "ಬಿಕೊಲ್", "bin": "ಬಿನಿ", "bla": "ಸಿಕ್ಸಿಕಾ", "bm": "ಬಂಬಾರಾ", "bn": "ಬಾಂಗ್ಲಾ", "bo": "ಟಿಬೇಟಿಯನ್", "br": "ಬ್ರೆಟನ್", "bra": "ಬ್ರಜ್", "brx": "ಬೋಡೊ", "bs": "ಬೋಸ್ನಿಯನ್", "bua": "ಬುರಿಯಟ್", "bug": "ಬುಗಿನೀಸ್", "byn": "ಬ್ಲಿನ್", "ca": "ಕೆಟಲಾನ್", "cad": "ಕ್ಯಾಡ್ಡೋ", "car": "ಕಾರಿಬ್", "cch": "ಅಟ್ಸಮ್", "ce": "ಚೆಚನ್", "ceb": "ಸೆಬುವಾನೊ", "cgg": "ಚಿಗಾ", "ch": "ಕಮೊರೊ", "chb": "ಚಿಬ್ಚಾ", "chg": "ಚಗಟಾಯ್", "chk": "ಚೂಕಿಸೆ", "chm": "ಮಾರಿ", "chn": "ಚಿನೂಕ್ ಜಾರ್ಗೋನ್", "cho": "ಚೋಕ್ಟಾವ್", "chp": "ಚಿಪೆವ್ಯಾನ್", "chr": "ಚೆರೋಕಿ", "chy": "ಚೀಯೆನ್ನೇ", "ckb": "ಮಧ್ಯ ಕುರ್ದಿಶ್", "co": "ಕೋರ್ಸಿಕನ್", "cop": "ಕೊಪ್ಟಿಕ್", "cr": "ಕ್ರೀ", "crh": "ಕ್ರಿಮೀಯನ್ ಟರ್ಕಿಷ್", "crs": "ಸೆಸೆಲ್ವಾ ಕ್ರಯೋಲ್ ಫ್ರೆಂಚ್", "cs": "ಜೆಕ್", "csb": "ಕಶುಬಿಯನ್", "cu": "ಚರ್ಚ್ ಸ್ಲಾವಿಕ್", "cv": "ಚುವಾಶ್", "cy": "ವೆಲ್ಶ್", "da": "ಡ್ಯಾನಿಶ್", "dak": "ಡಕೋಟಾ", "dar": "ದರ್ಗ್ವಾ", "dav": "ಟೈಟ", "de": "ಜರ್ಮನ್", "de-AT": "ಆಸ್ಟ್ರಿಯನ್ ಜರ್ಮನ್", "de-CH": "ಸ್ವಿಸ್ ಹೈ ಜರ್ಮನ್", "del": "ಡೆಲಾವೇರ್", "den": "ಸ್ಲೇವ್", "dgr": "ಡೋಗ್ರಿಬ್", "din": "ಡಿಂಕಾ", "dje": "ಜರ್ಮಾ", "doi": "ಡೋಗ್ರಿ", "dsb": "ಲೋವರ್ ಸೋರ್ಬಿಯನ್", "dua": "ಡುವಾಲಾ", "dum": "ಮಧ್ಯ ಡಚ್", "dv": "ದಿವೆಹಿ", "dyo": "ಜೊಲ-ಫೊನ್ಯಿ", "dyu": "ಡ್ಯೂಲಾ", "dz": "ಜೋಂಗ್‌ಖಾ", "dzg": "ಡಜಾಗ", "ebu": "ಎಂಬು", "ee": "ಈವ್", "efi": "ಎಫಿಕ್", "egy": "ಪ್ರಾಚೀನ ಈಜಿಪ್ಟಿಯನ್", "eka": "ಎಕಾಜುಕ್", "el": "ಗ್ರೀಕ್", "elx": "ಎಲಾಮೈಟ್", "en": "ಇಂಗ್ಲಿಷ್", "en-AU": "ಆಸ್ಟ್ರೇಲಿಯನ್ ಇಂಗ್ಲಿಷ್", "en-CA": "ಕೆನೆಡಿಯನ್ ಇಂಗ್ಲಿಷ್", "en-GB": "ಬ್ರಿಟಿಷ್ ಇಂಗ್ಲಿಷ್", "en-US": "ಅಮೆರಿಕನ್ ಇಂಗ್ಲಿಷ್", "enm": "ಮಧ್ಯ ಇಂಗ್ಲೀಷ್", "eo": "ಎಸ್ಪೆರಾಂಟೊ", "es": "ಸ್ಪ್ಯಾನಿಷ್", "es-419": "ಲ್ಯಾಟಿನ್ ಅಮೇರಿಕನ್ ಸ್ಪ್ಯಾನಿಷ್", "es-ES": "ಯುರೋಪಿಯನ್ ಸ್ಪ್ಯಾನಿಷ್", "es-MX": "ಮೆಕ್ಸಿಕನ್ ಸ್ಪ್ಯಾನಿಷ್", "et": "ಎಸ್ಟೊನಿಯನ್", "eu": "ಬಾಸ್ಕ್", "ewo": "ಇವಾಂಡೋ", "fa": "ಪರ್ಶಿಯನ್", "fan": "ಫಾಂಗ್", "fat": "ಫಾಂಟಿ", "ff": "ಫುಲಾ", "fi": "ಫಿನ್ನಿಶ್", "fil": "ಫಿಲಿಪಿನೊ", "fj": "ಫಿಜಿಯನ್", "fo": "ಫರೋಸಿ", "fon": "ಫೋನ್", "fr": "ಫ್ರೆಂಚ್", "fr-CA": "ಕೆನೆಡಿಯನ್ ಫ್ರೆಂಚ್", "fr-CH": "ಸ್ವಿಸ್ ಫ್ರೆಂಚ್", "frc": "ಕಾಜುನ್ ಫ್ರೆಂಚ್", "frm": "ಮಧ್ಯ ಫ್ರೆಂಚ್", "fro": "ಪ್ರಾಚೀನ ಫ್ರೆಂಚ್", "frr": "ಉತ್ತರ ಫ್ರಿಸಿಯನ್", "frs": "ಪೂರ್ವ ಫ್ರಿಸಿಯನ್", "fur": "ಫ್ರಿಯುಲಿಯನ್", "fy": "ಪಶ್ಚಿಮ ಫ್ರಿಸಿಯನ್", "ga": "ಐರಿಷ್", "gaa": "ಗ", "gag": "ಗಗೌಜ್", "gan": "ಗಾನ್ ಚೀನೀಸ್", "gay": "ಗಾಯೋ", "gba": "ಗ್ಬಾಯಾ", "gd": "ಸ್ಕಾಟಿಶ್ ಗೆಲಿಕ್", "gez": "ಗೀಝ್", "gil": "ಗಿಲ್ಬರ್ಟೀಸ್", "gl": "ಗ್ಯಾಲಿಶಿಯನ್", "gmh": "ಮಧ್ಯ ಹೈ ಜರ್ಮನ್", "gn": "ಗೌರಾನಿ", "goh": "ಪ್ರಾಚೀನ ಹೈ ಜರ್ಮನ್", "gon": "ಗೊಂಡಿ", "gor": "ಗೊರೊಂಟಾಲೋ", "got": "ಗೋಥಿಕ್", "grb": "ಗ್ರೇಬೋ", "grc": "ಪ್ರಾಚೀನ ಗ್ರೀಕ್", "gsw": "ಸ್ವಿಸ್ ಜರ್ಮನ್", "gu": "ಗುಜರಾತಿ", "guz": "ಗುಸಿ", "gv": "ಮ್ಯಾಂಕ್ಸ್", "gwi": "ಗ್ವಿಚ್‌ಇನ್", "ha": "ಹೌಸಾ", "hai": "ಹೈಡಾ", "hak": "ಹಕ್", "haw": "ಹವಾಯಿಯನ್", "he": "ಹೀಬ್ರೂ", "hi": "ಹಿಂದಿ", "hil": "ಹಿಲಿಗೇನನ್", "hit": "ಹಿಟ್ಟಿಟೆ", "hmn": "ಮೋಂಗ್", "ho": "ಹಿರಿ ಮೊಟು", "hr": "ಕ್ರೊಯೇಶಿಯನ್", "hsb": "ಅಪ್ಪರ್ ಸರ್ಬಿಯನ್", "hsn": "ಶಯಾಂಗ್ ಚೀನೀಸೇ", "ht": "ಹೈಟಿಯನ್ ಕ್ರಿಯೋಲಿ", "hu": "ಹಂಗೇರಿಯನ್", "hup": "ಹೂಪಾ", "hy": "ಅರ್ಮೇನಿಯನ್", "hz": "ಹೆರೆರೊ", "ia": "ಇಂಟರ್‌ಲಿಂಗ್ವಾ", "iba": "ಇಬಾನ್", "ibb": "ಇಬಿಬಿಯೋ", "id": "ಇಂಡೋನೇಶಿಯನ್", "ie": "ಇಂಟರ್ಲಿಂಗ್", "ig": "ಇಗ್ಬೊ", "ii": "ಸಿಚುಅನ್ ಯಿ", "ik": "ಇನುಪಿಯಾಕ್", "ilo": "ಇಲ್ಲಿಕೋ", "inh": "ಇಂಗುಷ್", "io": "ಇಡೊ", "is": "ಐಸ್‌ಲ್ಯಾಂಡಿಕ್", "it": "ಇಟಾಲಿಯನ್", "iu": "ಇನುಕ್ಟಿಟುಟ್", "ja": "ಜಾಪನೀಸ್", "jbo": "ಲೊಜ್ಬಾನ್", "jgo": "ನೊಂಬಾ", "jmc": "ಮ್ಯಕಮೆ", "jpr": "ಜೂಡಿಯೋ-ಪರ್ಶಿಯನ್", "jrb": "ಜೂಡಿಯೋ-ಅರೇಬಿಕ್", "jv": "ಜಾವಾನೀಸ್", "ka": "ಜಾರ್ಜಿಯನ್", "kaa": "ಕಾರಾ-ಕಲ್ಪಾಕ್", "kab": "ಕಬೈಲ್", "kac": "ಕಚಿನ್", "kaj": "ಜ್ಜು", "kam": "ಕಂಬಾ", "kaw": "ಕಾವಿ", "kbd": "ಕಬರ್ಡಿಯನ್", "kcg": "ಟ್ಯಾಪ್", "kde": "ಮ್ಯಾಕೊಂಡ್", "kea": "ಕಬುವೆರ್ಡಿಯನು", "kfo": "ಕೋರೋ", "kg": "ಕಾಂಗೋ", "kha": "ಖಾಸಿ", "kho": "ಖೋಟಾನೀಸ್", "khq": "ಕೊಯ್ರ ಚೀನಿ", "ki": "ಕಿಕುಯು", "kj": "ಕ್ವಾನ್‌ಯಾಮಾ", "kk": "ಕಝಕ್", "kkj": "ಕಾಕೊ", "kl": "ಕಲಾಲ್ಲಿಸುಟ್", "kln": "ಕಲೆಂಜಿನ್", "km": "ಖಮೇರ್", "kmb": "ಕಿಂಬುಂಡು", "kn": "ಕನ್ನಡ", "ko": "ಕೊರಿಯನ್", "koi": "ಕೋಮಿ-ಪರ್ಮ್ಯಕ್", "kok": "ಕೊಂಕಣಿ", "kos": "ಕೊಸರಿಯನ್", "kpe": "ಕಪೆಲ್ಲೆ", "kr": "ಕನುರಿ", "krc": "ಕರಚಯ್-ಬಲ್ಕಾರ್", "krl": "ಕರೇಲಿಯನ್", "kru": "ಕುರುಖ್", "ks": "ಕಾಶ್ಮೀರಿ", "ksb": "ಶಂಬಲ", "ksf": "ಬಫಿಯ", "ksh": "ಕಲೊಗ್ನಿಯನ್", "ku": "ಕುರ್ದಿಷ್", "kum": "ಕುಮೈಕ್", "kut": "ಕುಟೇನಾಯ್", "kv": "ಕೋಮಿ", "kw": "ಕಾರ್ನಿಷ್", "ky": "ಕಿರ್ಗಿಜ್", "la": "ಲ್ಯಾಟಿನ್", "lad": "ಲ್ಯಾಡಿನೋ", "lag": "ಲಾಂಗಿ", "lah": "ಲಹಂಡಾ", "lam": "ಲಂಬಾ", "lb": "ಲಕ್ಸಂಬರ್ಗಿಷ್", "lez": "ಲೆಜ್ಘಿಯನ್", "lg": "ಗಾಂಡಾ", "li": "ಲಿಂಬರ್ಗಿಶ್", "lkt": "ಲಕೊಟ", "ln": "ಲಿಂಗಾಲ", "lo": "ಲಾವೋ", "lol": "ಮೊಂಗೋ", "lou": "ಲೂಯಿಸಿಯಾನ ಕ್ರಿಯೋಲ್", "loz": "ಲೋಝಿ", "lrc": "ಉತ್ತರ ಲೂರಿ", "lt": "ಲಿಥುವೇನಿಯನ್", "lu": "ಲೂಬಾ-ಕಟಾಂಗಾ", "lua": "ಲುಬ-ಲುಲಾ", "lui": "ಲೂಯಿಸೆನೋ", "lun": "ಲುಂಡಾ", "luo": "ಲುವೋ", "lus": "ಮಿಝೋ", "luy": "ಲುಯಿಯ", "lv": "ಲಾಟ್ವಿಯನ್", "mad": "ಮದುರೀಸ್", "mag": "ಮಗಾಹಿ", "mai": "ಮೈಥಿಲಿ", "mak": "ಮಕಾಸರ್", "man": "ಮಂಡಿಂಗೊ", "mas": "ಮಸಾಯ್", "mdf": "ಮೋಕ್ಷ", "mdr": "ಮಂದಾರ್", "men": "ಮೆಂಡೆ", "mer": "ಮೆರು", "mfe": "ಮೊರಿಸನ್", "mg": "ಮಲಗಾಸಿ", "mga": "ಮಧ್ಯ ಐರಿಷ್", "mgh": "ಮ್ಯಖುವಾ- ಮೀಟ್ಟೊ", "mgo": "ಮೆಟಾ", "mh": "ಮಾರ್ಶಲ್ಲೀಸ್", "mi": "ಮಾವೋರಿ", "mic": "ಮಿಕ್‌ಮ್ಯಾಕ್", "min": "ಮಿನಂಗ್‌ಕಬಾವು", "mk": "ಮೆಸಿಡೋನಿಯನ್", "ml": "ಮಲಯಾಳಂ", "mn": "ಮಂಗೋಲಿಯನ್", "mnc": "ಮಂಚು", "mni": "ಮಣಿಪುರಿ", "moh": "ಮೊಹಾವ್ಕ್", "mos": "ಮೊಸ್ಸಿ", "mr": "ಮರಾಠಿ", "ms": "ಮಲಯ್", "mt": "ಮಾಲ್ಟೀಸ್", "mua": "ಮುಂಡಂಗ್", "mus": "ಕ್ರೀಕ್", "mwl": "ಮಿರಾಂಡೀಸ್", "mwr": "ಮಾರ್ವಾಡಿ", "my": "ಬರ್ಮೀಸ್", "myv": "ಎರ್ಝ್ಯಾ", "mzn": "ಮಜಂದೆರಾನಿ", "na": "ನೌರು", "nan": "ನಾನ್", "nap": "ನಿಯಾಪೊಲಿಟನ್", "naq": "ನಮ", "nb": "ನಾರ್ವೆಜಿಯನ್ ಬೊಕ್ಮಲ್", "nd": "ಉತ್ತರ ದೆಬೆಲೆ", "nds": "ಲೋ ಜರ್ಮನ್", "nds-NL": "ಲೋ ಸ್ಯಾಕ್ಸನ್", "ne": "ನೇಪಾಳಿ", "new": "ನೇವಾರೀ", "ng": "ಡೋಂಗಾ", "nia": "ನಿಯಾಸ್", "niu": "ನಿಯುವನ್", "nl": "ಡಚ್", "nl-BE": "ಫ್ಲೆಮಿಷ್", "nmg": "ಖ್ವಾಸಿಯೊ", "nn": "ನಾರ್ವೇಜಿಯನ್ ನೈನಾರ್ಸ್ಕ್", "nnh": "ನಿಂಬೂನ್", "no": "ನಾರ್ವೇಜಿಯನ್", "nog": "ನೊಗಾಯ್", "non": "ಪ್ರಾಚೀನ ನೋರ್ಸ್", "nqo": "ಎನ್‌ಕೋ", "nr": "ದಕ್ಷಿಣ ದೆಬೆಲೆ", "nso": "ಉತ್ತರ ಸೋಥೋ", "nus": "ನೂಯರ್", "nv": "ನವಾಜೊ", "nwc": "ಶಾಸ್ತ್ರೀಯ ನೇವಾರಿ", "ny": "ನ್ಯಾಂಜಾ", "nym": "ನ್ಯಾಮ್‌ವೆಂಜಿ", "nyn": "ನ್ಯಾನ್‌ಕೋಲೆ", "nyo": "ನ್ಯೋರೋ", "nzi": "ಜೀಮಾ", "oc": "ಒಸಿಟನ್", "oj": "ಒಜಿಬ್ವಾ", "om": "ಒರೊಮೊ", "or": "ಒಡಿಯ", "os": "ಒಸ್ಸೆಟಿಕ್", "osa": "ಓಸಾಜ್", "ota": "ಒಟ್ಟೋಮನ್ ತುರ್ಕಿಷ್", "pa": "ಪಂಜಾಬಿ", "pag": "ಪಂಗಾಸಿನನ್", "pal": "ಪಹ್ಲವಿ", "pam": "ಪಂಪಾಂಗಾ", "pap": "ಪಪಿಯಾಮೆಂಟೊ", "pau": "ಪಲುಆನ್", "pcm": "ನೈಜೀರಿಯನ್ ಪಿಡ್ಗಿನ್", "peo": "ಪ್ರಾಚೀನ ಪರ್ಶಿಯನ್", "phn": "ಫೀನಿಷಿಯನ್", "pi": "ಪಾಲಿ", "pl": "ಪೊಲಿಶ್", "pon": "ಪೋನ್‌‌ಪಿಯನ್", "prg": "ಪ್ರಶಿಯನ್", "pro": "ಪ್ರಾಚೀನ ಪ್ರೊವೆನ್ಶಿಯಲ್", "ps": "ಪಾಷ್ಟೋ", "pt": "ಪೋರ್ಚುಗೀಸ್", "pt-BR": "ಬ್ರೆಜಿಲಿಯನ್ ಪೋರ್ಚುಗೀಸ್", "pt-PT": "ಯೂರೋಪಿಯನ್ ಪೋರ್ಚುಗೀಸ್", "qu": "ಕ್ವೆಚುವಾ", "quc": "ಕಿಷೆ", "raj": "ರಾಜಸ್ಥಾನಿ", "rap": "ರಾಪಾನುಯಿ", "rar": "ರಾರೋಟೊಂಗನ್", "rm": "ರೊಮಾನ್ಶ್", "rn": "ರುಂಡಿ", "ro": "ರೊಮೇನಿಯನ್", "ro-MD": "ಮಾಲ್ಡೇವಿಯನ್", "rof": "ರೊಂಬೊ", "rom": "ರೋಮಾನಿ", "root": "ರೂಟ್", "ru": "ರಷ್ಯನ್", "rup": "ಅರೋಮಾನಿಯನ್", "rw": "ಕಿನ್ಯಾರ್‌ವಾಂಡಾ", "rwk": "ರುವ", "sa": "ಸಂಸ್ಕೃತ", "sad": "ಸಂಡಾವೇ", "sah": "ಸಖಾ", "sam": "ಸಮರಿಟನ್ ಅರಾಮಿಕ್", "saq": "ಸಂಬುರು", "sas": "ಸಸಾಕ್", "sat": "ಸಂತಾಲಿ", "sba": "ನಂಬೇ", "sbp": "ಸಂಗು", "sc": "ಸರ್ಡೀನಿಯನ್", "scn": "ಸಿಸಿಲಿಯನ್", "sco": "ಸ್ಕೋಟ್ಸ್", "sd": "ಸಿಂಧಿ", "sdh": "ದಕ್ಷಿಣ ಕುರ್ದಿಶ್", "se": "ಉತ್ತರ ಸಾಮಿ", "seh": "ಸೆನ", "sel": "ಸೆಲ್ಕಪ್", "ses": "ಕೊಯ್ರಬೊರೊ ಸೆನ್ನಿ", "sg": "ಸಾಂಗೋ", "sga": "ಪ್ರಾಚೀನ ಐರಿಷ್", "sh": "ಸರ್ಬೋ-ಕ್ರೊಯೇಶಿಯನ್", "shi": "ಟಷೆಲ್‍ಹಿಟ್", "shn": "ಶಾನ್", "si": "ಸಿಂಹಳ", "sid": "ಸಿಡಾಮೋ", "sk": "ಸ್ಲೋವಾಕ್", "sl": "ಸ್ಲೋವೇನಿಯನ್", "sm": "ಸಮೋವನ್", "sma": "ದಕ್ಷಿಣ ಸಾಮಿ", "smj": "ಲೂಲ್ ಸಾಮಿ", "smn": "ಇನಾರಿ ಸಮೀ", "sms": "ಸ್ಕೋಟ್ ಸಾಮಿ", "sn": "ಶೋನಾ", "snk": "ಸೋನಿಂಕೆ", "so": "ಸೊಮಾಲಿ", "sog": "ಸೋಗ್ಡಿಯನ್", "sq": "ಅಲ್ಬೇನಿಯನ್", "sr": "ಸೆರ್ಬಿಯನ್", "srn": "ಸ್ರಾನನ್ ಟೋಂಗೋ", "srr": "ಸೇರೇರ್", "ss": "ಸ್ವಾತಿ", "ssy": "ಸಹೊ", "st": "ದಕ್ಷಿಣ ಸೋಥೋ", "su": "ಸುಂಡಾನೀಸ್", "suk": "ಸುಕುಮಾ", "sus": "ಸುಸು", "sux": "ಸುಮೇರಿಯನ್", "sv": "ಸ್ವೀಡಿಷ್", "sw": "ಸ್ವಹಿಲಿ", "sw-CD": "ಕಾಂಗೊ ಸ್ವಹಿಲಿ", "swb": "ಕೊಮೊರಿಯನ್", "syc": "ಶಾಸ್ತ್ರೀಯ ಸಿರಿಯಕ್", "syr": "ಸಿರಿಯಾಕ್", "ta": "ತಮಿಳು", "te": "ತೆಲುಗು", "tem": "ಟಿಮ್ನೆ", "teo": "ಟೆಸೊ", "ter": "ಟೆರೆನೋ", "tet": "ಟೇಟಮ್", "tg": "ತಾಜಿಕ್", "th": "ಥಾಯ್", "ti": "ಟಿಗ್ರಿನ್ಯಾ", "tig": "ಟೈಗ್ರೆ", "tiv": "ಟಿವ್", "tk": "ಟರ್ಕ್‌ಮೆನ್", "tkl": "ಟೊಕೆಲಾವ್", "tl": "ಟ್ಯಾಗಲೋಗ್", "tlh": "ಕ್ಲಿಂಗನ್", "tli": "ಟ್ಲಿಂಗಿಟ್", "tmh": "ಟಮಾಷೆಕ್", "tn": "ಸ್ವಾನಾ", "to": "ಟೋಂಗನ್", "tog": "ನ್ಯಾಸಾ ಟೋಂಗಾ", "tpi": "ಟೋಕ್ ಪಿಸಿನ್", "tr": "ಟರ್ಕಿಶ್", "trv": "ಟರೊಕೊ", "ts": "ಸೋಂಗಾ", "tsi": "ಸಿಂಶಿಯನ್", "tt": "ಟಾಟರ್", "tum": "ತುಂಬುಕಾ", "tvl": "ಟುವಾಲು", "tw": "ಟ್ವಿ", "twq": "ಟಸವಕ್", "ty": "ಟಹೀಟಿಯನ್", "tyv": "ಟುವಿನಿಯನ್", "tzm": "ಮಧ್ಯ ಅಟ್ಲಾಸ್ ಟಮಜೈಟ್", "udm": "ಉಡ್‌ಮುರ್ಟ್", "ug": "ಉಯಿಘರ್", "uga": "ಉಗಾರಿಟಿಕ್", "uk": "ಉಕ್ರೇನಿಯನ್", "umb": "ಉಂಬುಂಡು", "ur": "ಉರ್ದು", "uz": "ಉಜ್ಬೇಕ್", "vai": "ವಾಯಿ", "ve": "ವೆಂಡಾ", "vi": "ವಿಯೆಟ್ನಾಮೀಸ್", "vo": "ವೋಲಾಪುಕ್", "vot": "ವೋಟಿಕ್", "vun": "ವುಂಜೊ", "wa": "ವಾಲೂನ್", "wae": "ವಾಲ್ಸರ್", "wal": "ವಲಾಯ್ತಾ", "war": "ವರಾಯ್", "was": "ವಾಷೋ", "wbp": "ವಾರ್ಲ್‌ಪಿರಿ", "wo": "ವೋಲೋಫ್", "wuu": "ವು", "xal": "ಕಲ್ಮೈಕ್", "xh": "ಕ್ಸೋಸ", "xog": "ಸೊಗ", "yao": "ಯಾವೊ", "yap": "ಯಪೀಸೆ", "yav": "ಯಾಂಗ್ಬೆನ್", "ybb": "ಯೆಂಬಾ", "yi": "ಯಿಡ್ಡಿಶ್", "yo": "ಯೊರುಬಾ", "yue": "ಕ್ಯಾಂಟನೀಸ್", "za": "ಝೂವಾಂಗ್", "zap": "ಝೋಪೊಟೆಕ್", "zbl": "ಬ್ಲಿಸ್ಸಿಂಬಲ್ಸ್", "zen": "ಝೆನಾಗಾ", "zgh": "ಸ್ಟ್ಯಾಂಡರ್ಡ್ ಮೊರೊಕ್ಕನ್ ಟಮಜೈಟ್", "zh": "ಚೈನೀಸ್", "zh-Hans": "ಸರಳೀಕೃತ ಚೈನೀಸ್", "zh-Hant": "ಸಾಂಪ್ರದಾಯಿಕ ಚೈನೀಸ್", "zu": "ಜುಲು", "zun": "ಝೂನಿ", "zza": "ಜಾಝಾ"}}, - "ko": {"rtl": false, "languageNames": {"aa": "아파르어", "ab": "압카즈어", "ace": "아체어", "ach": "아콜리어", "ada": "아당메어", "ady": "아디게어", "ae": "아베스타어", "aeb": "튀니지 아랍어", "af": "아프리칸스어", "afh": "아프리힐리어", "agq": "아그햄어", "ain": "아이누어", "ak": "아칸어", "akk": "아카드어", "ale": "알류트어", "alt": "남부 알타이어", "am": "암하라어", "an": "아라곤어", "ang": "고대 영어", "anp": "앙가어", "ar": "아랍어", "ar-001": "현대 표준 아랍어", "arc": "아람어", "arn": "마푸둥군어", "arp": "아라파호어", "arq": "알제리 아랍어", "ars": "아랍어(나즈디)", "arw": "아라와크어", "ary": "모로코 아랍어", "arz": "이집트 아랍어", "as": "아삼어", "asa": "아수어", "ast": "아스투리아어", "av": "아바릭어", "awa": "아와히어", "ay": "아이마라어", "az": "아제르바이잔어", "ba": "바슈키르어", "bal": "발루치어", "ban": "발리어", "bas": "바사어", "bax": "바문어", "bbj": "고말라어", "be": "벨라루스어", "bej": "베자어", "bem": "벰바어", "bez": "베나어", "bfd": "바푸트어", "bg": "불가리아어", "bgn": "서부 발로치어", "bho": "호즈푸리어", "bi": "비슬라마어", "bik": "비콜어", "bin": "비니어", "bkm": "콤어", "bla": "식시카어", "bm": "밤바라어", "bn": "벵골어", "bo": "티베트어", "br": "브르타뉴어", "bra": "브라지어", "brh": "브라후이어", "brx": "보도어", "bs": "보스니아어", "bss": "아쿠즈어", "bua": "부리아타", "bug": "부기어", "bum": "불루어", "byn": "브린어", "byv": "메둠바어", "ca": "카탈로니아어", "cad": "카도어", "car": "카리브어", "cay": "카유가어", "cch": "앗삼어", "ccp": "차크마어", "ce": "체첸어", "ceb": "세부아노어", "cgg": "치가어", "ch": "차모로어", "chb": "치브차어", "chg": "차가타이어", "chk": "추크어", "chm": "마리어", "chn": "치누크 자곤", "cho": "촉토어", "chp": "치페우얀", "chr": "체로키어", "chy": "샤이엔어", "ckb": "소라니 쿠르드어", "co": "코르시카어", "cop": "콥트어", "cr": "크리어", "crh": "크리민 터키어; 크리민 타타르어", "crs": "세이셸 크리올 프랑스어", "cs": "체코어", "csb": "카슈비아어", "cu": "교회 슬라브어", "cv": "추바시어", "cy": "웨일스어", "da": "덴마크어", "dak": "다코타어", "dar": "다르그와어", "dav": "타이타어", "de": "독일어", "de-AT": "독일어(오스트리아)", "de-CH": "고지 독일어(스위스)", "del": "델라웨어어", "den": "슬라브어", "dgr": "도그리브어", "din": "딩카어", "dje": "자르마어", "doi": "도그리어", "dsb": "저지 소르비아어", "dua": "두알라어", "dum": "중세 네덜란드어", "dv": "디베히어", "dyo": "졸라 포니어", "dyu": "드율라어", "dz": "종카어", "dzg": "다장가어", "ebu": "엠부어", "ee": "에웨어", "efi": "이픽어", "egy": "고대 이집트어", "eka": "이카죽어", "el": "그리스어", "elx": "엘람어", "en": "영어", "en-AU": "영어(호주)", "en-CA": "영어(캐나다)", "en-GB": "영어(영국)", "en-US": "영어(미국)", "enm": "중세 영어", "eo": "에스페란토어", "es": "스페인어", "es-419": "스페인어(라틴 아메리카)", "es-ES": "스페인어(유럽)", "es-MX": "스페인어(멕시코)", "et": "에스토니아어", "eu": "바스크어", "ewo": "이원도어", "fa": "페르시아어", "fan": "팡그어", "fat": "판티어", "ff": "풀라어", "fi": "핀란드어", "fil": "필리핀어", "fj": "피지어", "fo": "페로어", "fon": "폰어", "fr": "프랑스어", "fr-CA": "프랑스어(캐나다)", "fr-CH": "프랑스어(스위스)", "frc": "케이준 프랑스어", "frm": "중세 프랑스어", "fro": "고대 프랑스어", "frr": "북부 프리지아어", "frs": "동부 프리슬란드어", "fur": "프리울리어", "fy": "서부 프리지아어", "ga": "아일랜드어", "gaa": "가어", "gag": "가가우스어", "gan": "간어", "gay": "가요어", "gba": "그바야어", "gbz": "조로아스터 다리어", "gd": "스코틀랜드 게일어", "gez": "게이즈어", "gil": "키리바시어", "gl": "갈리시아어", "glk": "길라키어", "gmh": "중세 고지 독일어", "gn": "과라니어", "goh": "고대 고지 독일어", "gom": "고아 콘칸어", "gon": "곤디어", "gor": "고론탈로어", "got": "고트어", "grb": "게르보어", "grc": "고대 그리스어", "gsw": "독일어(스위스)", "gu": "구자라트어", "guz": "구시어", "gv": "맹크스어", "gwi": "그위친어", "ha": "하우사어", "hai": "하이다어", "hak": "하카어", "haw": "하와이어", "he": "히브리어", "hi": "힌디어", "hif": "피지 힌디어", "hil": "헤리가뇬어", "hit": "하타이트어", "hmn": "히몸어", "ho": "히리 모투어", "hr": "크로아티아어", "hsb": "고지 소르비아어", "hsn": "샹어", "ht": "아이티어", "hu": "헝가리어", "hup": "후파어", "hy": "아르메니아어", "hz": "헤레로어", "ia": "인터링구아", "iba": "이반어", "ibb": "이비비오어", "id": "인도네시아어", "ie": "인테르링구에", "ig": "이그보어", "ii": "쓰촨 이어", "ik": "이누피아크어", "ilo": "이로코어", "inh": "인귀시어", "io": "이도어", "is": "아이슬란드어", "it": "이탈리아어", "iu": "이눅티투트어", "ja": "일본어", "jbo": "로반어", "jgo": "응곰바어", "jmc": "마차메어", "jpr": "유대-페르시아어", "jrb": "유대-아라비아어", "jv": "자바어", "ka": "조지아어", "kaa": "카라칼파크어", "kab": "커바일어", "kac": "카친어", "kaj": "까꼬토끄어", "kam": "캄바어", "kaw": "카위어", "kbd": "카바르디어", "kbl": "카넴부어", "kcg": "티얍어", "kde": "마콘데어", "kea": "크리올어", "kfo": "코로어", "kg": "콩고어", "kha": "카시어", "kho": "호탄어", "khq": "코이라 친니어", "khw": "코와르어", "ki": "키쿠유어", "kj": "쿠안야마어", "kk": "카자흐어", "kkj": "카코어", "kl": "그린란드어", "kln": "칼렌진어", "km": "크메르어", "kmb": "킴분두어", "kn": "칸나다어", "ko": "한국어", "koi": "코미페르먀크어", "kok": "코카니어", "kos": "코스라이엔어", "kpe": "크펠레어", "kr": "칸누리어", "krc": "카라챠이-발카르어", "krl": "카렐리야어", "kru": "쿠르크어", "ks": "카슈미르어", "ksb": "샴발라어", "ksf": "바피아어", "ksh": "콜로그니안어", "ku": "쿠르드어", "kum": "쿠믹어", "kut": "쿠테네어", "kv": "코미어", "kw": "콘월어", "ky": "키르기스어", "la": "라틴어", "lad": "라디노어", "lag": "랑기어", "lah": "라한다어", "lam": "람바어", "lb": "룩셈부르크어", "lez": "레즈기안어", "lfn": "링구아 프랑카 노바", "lg": "간다어", "li": "림버거어", "lkt": "라코타어", "ln": "링갈라어", "lo": "라오어", "lol": "몽고어", "lou": "루이지애나 크리올어", "loz": "로지어", "lrc": "북부 루리어", "lt": "리투아니아어", "lu": "루바-카탄가어", "lua": "루바-룰루아어", "lui": "루이세노어", "lun": "룬다어", "luo": "루오어", "lus": "루샤이어", "luy": "루야어", "lv": "라트비아어", "mad": "마두라어", "maf": "마파어", "mag": "마가히어", "mai": "마이틸리어", "mak": "마카사어", "man": "만딩고어", "mas": "마사이어", "mde": "마바어", "mdf": "모크샤어", "mdr": "만다르어", "men": "멘데어", "mer": "메루어", "mfe": "모리스얀어", "mg": "말라가시어", "mga": "중세 아일랜드어", "mgh": "마크후와-메토어", "mgo": "메타어", "mh": "마셜어", "mi": "마오리어", "mic": "미크맥어", "min": "미낭카바우어", "mk": "마케도니아어", "ml": "말라얄람어", "mn": "몽골어", "mnc": "만주어", "mni": "마니푸리어", "moh": "모호크어", "mos": "모시어", "mr": "마라티어", "mrj": "서부 마리어", "ms": "말레이어", "mt": "몰타어", "mua": "문당어", "mus": "크리크어", "mwl": "미란데어", "mwr": "마르와리어", "my": "버마어", "mye": "미예네어", "myv": "엘즈야어", "mzn": "마잔데라니어", "na": "나우루어", "nan": "민난어", "nap": "나폴리어", "naq": "나마어", "nb": "노르웨이어(보크말)", "nd": "북부 은데벨레어", "nds": "저지 독일어", "nds-NL": "저지 색슨어", "ne": "네팔어", "new": "네와르어", "ng": "느동가어", "nia": "니아스어", "niu": "니웨언어", "nl": "네덜란드어", "nl-BE": "플라망어", "nmg": "크와시오어", "nn": "노르웨이어(니노르스크)", "nnh": "느기엠본어", "no": "노르웨이어", "nog": "노가이어", "non": "고대 노르웨이어", "nqo": "응코어", "nr": "남부 은데벨레어", "nso": "북부 소토어", "nus": "누에르어", "nv": "나바호어", "nwc": "고전 네와르어", "ny": "냔자어", "nym": "니암웨지어", "nyn": "니안콜어", "nyo": "뉴로어", "nzi": "느지마어", "oc": "오크어", "oj": "오지브와어", "om": "오로모어", "or": "오리야어", "os": "오세트어", "osa": "오세이지어", "ota": "오스만 터키어", "pa": "펀잡어", "pag": "판가시난어", "pal": "팔레비어", "pam": "팜팡가어", "pap": "파피아먼토어", "pau": "팔라우어", "pcm": "나이지리아 피진어", "peo": "고대 페르시아어", "phn": "페니키아어", "pi": "팔리어", "pl": "폴란드어", "pnt": "폰틱어", "pon": "폼페이어", "prg": "프러시아어", "pro": "고대 프로방스어", "ps": "파슈토어", "pt": "포르투갈어", "pt-BR": "포르투갈어(브라질)", "pt-PT": "포르투갈어(유럽)", "qu": "케추아어", "quc": "키체어", "raj": "라자스탄어", "rap": "라파뉴이", "rar": "라로통가어", "rm": "로만시어", "rn": "룬디어", "ro": "루마니아어", "ro-MD": "몰도바어", "rof": "롬보어", "rom": "집시어", "root": "어근", "ru": "러시아어", "rue": "루신어", "rup": "아로마니아어", "rw": "르완다어", "rwk": "르와어", "sa": "산스크리트어", "sad": "산다웨어", "sah": "야쿠트어", "sam": "사마리아 아랍어", "saq": "삼부루어", "sas": "사사크어", "sat": "산탈리어", "sba": "느감바이어", "sbp": "상구어", "sc": "사르디니아어", "scn": "시칠리아어", "sco": "스코틀랜드어", "sd": "신디어", "sdh": "남부 쿠르드어", "se": "북부 사미어", "see": "세네카어", "seh": "세나어", "sel": "셀쿠프어", "ses": "코이야보로 세니어", "sg": "산고어", "sga": "고대 아일랜드어", "sh": "세르비아-크로아티아어", "shi": "타셸히트어", "shn": "샨어", "shu": "차디언 아라비아어", "si": "스리랑카어", "sid": "시다모어", "sk": "슬로바키아어", "sl": "슬로베니아어", "sm": "사모아어", "sma": "남부 사미어", "smj": "룰레 사미어", "smn": "이나리 사미어", "sms": "스콜트 사미어", "sn": "쇼나어", "snk": "소닌케어", "so": "소말리아어", "sog": "소그디엔어", "sq": "알바니아어", "sr": "세르비아어", "srn": "스라난 통가어", "srr": "세레르어", "ss": "시스와티어", "ssy": "사호어", "st": "남부 소토어", "su": "순다어", "suk": "수쿠마어", "sus": "수수어", "sux": "수메르어", "sv": "스웨덴어", "sw": "스와힐리어", "sw-CD": "콩고 스와힐리어", "swb": "코모로어", "syc": "고전 시리아어", "syr": "시리아어", "ta": "타밀어", "te": "텔루구어", "tem": "팀니어", "teo": "테조어", "ter": "테레노어", "tet": "테툼어", "tg": "타지크어", "th": "태국어", "ti": "티그리냐어", "tig": "티그레어", "tiv": "티브어", "tk": "투르크멘어", "tkl": "토켈라우제도어", "tkr": "차후르어", "tl": "타갈로그어", "tlh": "클링온어", "tli": "틀링깃족어", "tly": "탈리쉬어", "tmh": "타마섹어", "tn": "츠와나어", "to": "통가어", "tog": "니아사 통가어", "tpi": "토크 피신어", "tr": "터키어", "trv": "타로코어", "ts": "총가어", "tsi": "트심시안어", "tt": "타타르어", "tum": "툼부카어", "tvl": "투발루어", "tw": "트위어", "twq": "타사와크어", "ty": "타히티어", "tyv": "투비니안어", "tzm": "중앙 모로코 타마지트어", "udm": "우드말트어", "ug": "위구르어", "uga": "유가리틱어", "uk": "우크라이나어", "umb": "움분두어", "ur": "우르두어", "uz": "우즈베크어", "vai": "바이어", "ve": "벤다어", "vi": "베트남어", "vo": "볼라퓌크어", "vot": "보틱어", "vun": "분조어", "wa": "왈론어", "wae": "월저어", "wal": "월라이타어", "war": "와라이어", "was": "와쇼어", "wbp": "왈피리어", "wo": "월로프어", "wuu": "우어", "xal": "칼미크어", "xh": "코사어", "xog": "소가어", "yao": "야오족어", "yap": "얍페세어", "yav": "양본어", "ybb": "옘바어", "yi": "이디시어", "yo": "요루바어", "yue": "광둥어", "za": "주앙어", "zap": "사포테크어", "zbl": "블리스 심볼", "zen": "제나가어", "zgh": "표준 모로코 타마지트어", "zh": "중국어", "zh-Hans": "중국어(간체)", "zh-Hant": "중국어(번체)", "zu": "줄루어", "zun": "주니어", "zza": "자자어"}}, - "ku": {"rtl": false, "languageNames": {"aa": "afarî", "ab": "abxazî", "ace": "açehî", "ady": "adîgeyî", "af": "afrîkansî", "ain": "aynuyî", "ale": "alêwîtî", "am": "amharî", "an": "aragonî", "ar": "erebî", "ar-001": "erebiya standard", "as": "asamî", "ast": "astûrî", "av": "avarî", "ay": "aymarayî", "az": "azerî", "ba": "başkîrî", "ban": "balînî", "be": "belarusî", "bem": "bembayî", "bg": "bulgarî", "bho": "bojpûrî", "bi": "bîslamayî", "bla": "blakfotî", "bm": "bambarayî", "bn": "bengalî", "bo": "tîbetî", "br": "bretonî", "bs": "bosnî", "bug": "bugî", "ca": "katalanî", "ce": "çeçenî", "ceb": "sebwanoyî", "ch": "çamoroyî", "chk": "çûkî", "chm": "marî", "chr": "çerokî", "chy": "çeyenî", "ckb": "soranî", "co": "korsîkayî", "cs": "çekî", "cv": "çuvaşî", "cy": "weylsî", "da": "danmarkî", "de": "elmanî", "de-AT": "elmanî (Awistirya)", "de-CH": "elmanî (Swîsre)", "dsb": "sorbiya jêrîn", "dua": "diwalayî", "dv": "divehî", "dz": "conxayî", "ee": "eweyî", "el": "yewnanî", "en": "îngilîzî", "en-AU": "îngilîzî (Awistralya)", "en-CA": "îngilîzî (Kanada)", "en-GB": "îngilîzî (Keyaniya Yekbûyî)", "en-US": "îngilîzî (Dewletên Yekbûyî yên Amerîkayê)", "eo": "esperantoyî", "es": "spanî", "es-419": "spanî (Amerîkaya Latînî)", "es-ES": "spanî (Spanya)", "es-MX": "spanî (Meksîk)", "et": "estonî", "eu": "baskî", "fa": "farisî", "ff": "fulahî", "fi": "fînî", "fil": "fîlîpînoyî", "fj": "fîjî", "fo": "ferî", "fr": "frensî", "fr-CA": "frensî (Kanada)", "fr-CH": "frensî (Swîsre)", "fur": "friyolî", "fy": "frîsî", "ga": "îrî", "gd": "gaelîka skotî", "gil": "kîrîbatî", "gl": "galîsî", "gn": "guwaranî", "gor": "gorontaloyî", "gsw": "elmanîşî", "gu": "gujaratî", "gv": "manksî", "ha": "hawsayî", "haw": "hawayî", "he": "îbranî", "hi": "hindî", "hil": "hîlîgaynonî", "hr": "xirwatî", "hsb": "sorbiya jorîn", "ht": "haîtî", "hu": "mecarî", "hy": "ermenî", "hz": "hereroyî", "ia": "interlingua", "id": "indonezî", "ig": "îgboyî", "ilo": "îlokanoyî", "inh": "îngûşî", "io": "îdoyî", "is": "îzlendî", "it": "îtalî", "iu": "înuîtî", "ja": "japonî", "jbo": "lojbanî", "jv": "javayî", "ka": "gurcî", "kab": "kabîlî", "kea": "kapverdî", "kk": "qazaxî", "kl": "kalalîsûtî", "km": "ximêrî", "kn": "kannadayî", "ko": "koreyî", "kok": "konkanî", "ks": "keşmîrî", "ksh": "rîpwarî", "ku": "kurdî", "kv": "komî", "kw": "kornî", "ky": "kirgizî", "lad": "ladînoyî", "lb": "luksembûrgî", "lez": "lezgînî", "lg": "lugandayî", "li": "lîmbûrgî", "lkt": "lakotayî", "ln": "lingalayî", "lo": "lawsî", "lrc": "luriya bakur", "lt": "lîtwanî", "lv": "latviyayî", "mad": "madurayî", "mas": "masayî", "mdf": "mokşayî", "mg": "malagasî", "mh": "marşalî", "mi": "maorî", "mic": "mîkmakî", "min": "mînangkabawî", "mk": "makedonî", "ml": "malayalamî", "mn": "mongolî", "moh": "mohawkî", "mr": "maratî", "ms": "malezî", "mt": "maltayî", "my": "burmayî", "myv": "erzayî", "mzn": "mazenderanî", "na": "nawrûyî", "nap": "napolîtanî", "nb": "norwecî (bokmål)", "nds-NL": "nds (Holenda)", "ne": "nepalî", "niu": "nîwî", "nl": "holendî", "nl-BE": "flamî", "nn": "norwecî (nynorsk)", "nso": "sotoyiya bakur", "nv": "navajoyî", "oc": "oksîtanî", "om": "oromoyî", "or": "oriyayî", "os": "osetî", "pa": "puncabî", "pam": "kapampanganî", "pap": "papyamentoyî", "pau": "palawî", "pl": "polonî", "prg": "prûsyayî", "ps": "peştûyî", "pt": "portugalî", "pt-BR": "portugalî (Brazîl)", "pt-PT": "portugalî (Portûgal)", "qu": "keçwayî", "rap": "rapanuyî", "rar": "rarotongî", "rm": "romancî", "ro": "romanî", "ro-MD": "romanî (Moldova)", "ru": "rusî", "rup": "aromanî", "rw": "kînyariwandayî", "sa": "sanskrîtî", "sc": "sardînî", "scn": "sicîlî", "sco": "skotî", "sd": "sindhî", "se": "samiya bakur", "si": "kîngalî", "sk": "slovakî", "sl": "slovenî", "sm": "samoayî", "smn": "samiya înarî", "sn": "şonayî", "so": "somalî", "sq": "elbanî", "sr": "sirbî", "srn": "sirananî", "ss": "swazî", "st": "sotoyiya başûr", "su": "sundanî", "sv": "swêdî", "sw": "swahîlî", "sw-CD": "swahîlî (Kongo - Kînşasa)", "swb": "komorî", "syr": "siryanî", "ta": "tamîlî", "te": "telûgûyî", "tet": "tetûmî", "tg": "tacikî", "th": "tayî", "ti": "tigrînî", "tk": "tirkmenî", "tlh": "klîngonî", "tn": "tswanayî", "to": "tongî", "tpi": "tokpisinî", "tr": "tirkî", "trv": "tarokoyî", "ts": "tsongayî", "tt": "teterî", "tum": "tumbukayî", "tvl": "tuvalûyî", "ty": "tahîtî", "tzm": "temazîxtî", "udm": "udmurtî", "ug": "oygurî", "uk": "ukraynî", "ur": "urdûyî", "uz": "ozbekî", "vi": "viyetnamî", "vo": "volapûkî", "wa": "walonî", "war": "warayî", "wo": "wolofî", "xh": "xosayî", "yi": "yidîşî", "yo": "yorubayî", "yue": "kantonî", "zh-Hans": "zh (Hans)", "zh-Hant": "zh (Hant)", "zu": "zuluyî", "zza": "zazakî"}}, - "lij": {"rtl": false, "languageNames": {}}, - "lt": {"rtl": false, "languageNames": {"aa": "afarų", "ab": "abchazų", "ace": "ačinezų", "ach": "akolių", "ada": "adangmų", "ady": "adygėjų", "ae": "avestų", "aeb": "Tuniso arabų", "af": "afrikanų", "afh": "afrihili", "agq": "aghemų", "ain": "ainų", "ak": "akanų", "akk": "akadianų", "akz": "alabamiečių", "ale": "aleutų", "aln": "albanų kalbos gegų tarmė", "alt": "pietų Altajaus", "am": "amharų", "an": "aragonesų", "ang": "senoji anglų", "anp": "angikų", "ar": "arabų", "ar-001": "šiuolaikinė standartinė arabų", "arc": "aramaikų", "arn": "mapudungunų", "aro": "araonų", "arp": "arapahų", "arq": "Alžyro arabų", "arw": "aravakų", "ary": "Maroko arabų", "arz": "Egipto arabų", "as": "asamų", "asa": "asu", "ase": "Amerikos ženklų kalba", "ast": "asturianų", "av": "avarikų", "avk": "kotava", "awa": "avadhi", "ay": "aimarų", "az": "azerbaidžaniečių", "ba": "baškirų", "bal": "baluči", "ban": "baliečių", "bar": "bavarų", "bas": "basų", "bax": "bamunų", "bbc": "batak toba", "bbj": "ghomalų", "be": "baltarusių", "bej": "bėjų", "bem": "bembų", "bew": "betavi", "bez": "benų", "bfd": "bafutų", "bfq": "badaga", "bg": "bulgarų", "bgn": "vakarų beludžių", "bho": "baučpuri", "bi": "bislama", "bik": "bikolų", "bin": "bini", "bjn": "bandžarų", "bkm": "komų", "bla": "siksikų", "bm": "bambarų", "bn": "bengalų", "bo": "tibetiečių", "bpy": "bišnuprijos", "bqi": "bakhtiari", "br": "bretonų", "bra": "brajų", "brh": "brahujų", "brx": "bodo", "bs": "bosnių", "bss": "akūsų", "bua": "buriatų", "bug": "buginezų", "bum": "bulu", "byn": "blin", "byv": "medumbų", "ca": "katalonų", "cad": "kado", "car": "karibų", "cay": "kaijūgų", "cch": "atsamų", "ccp": "Čakma", "ce": "čečėnų", "ceb": "sebuanų", "cgg": "čigų", "ch": "čamorų", "chb": "čibčų", "chg": "čagatų", "chk": "čukesų", "chm": "marių", "chn": "činuk žargonas", "cho": "čoktau", "chp": "čipvėjų", "chr": "čerokių", "chy": "čajenų", "ckb": "soranių kurdų", "co": "korsikiečių", "cop": "koptų", "cps": "capiznon", "cr": "kry", "crh": "Krymo turkų", "crs": "Seišelių kreolų ir prancūzų", "cs": "čekų", "csb": "kašubų", "cu": "bažnytinė slavų", "cv": "čiuvašų", "cy": "valų", "da": "danų", "dak": "dakotų", "dar": "dargva", "dav": "taitų", "de": "vokiečių", "de-AT": "Austrijos vokiečių", "de-CH": "Šveicarijos aukštutinė vokiečių", "del": "delavero", "den": "slave", "dgr": "dogribų", "din": "dinkų", "dje": "zarmų", "doi": "dogri", "dsb": "žemutinių sorbų", "dtp": "centrinio Dusuno", "dua": "dualų", "dum": "Vidurio Vokietijos", "dv": "divehų", "dyo": "džiola-foni", "dyu": "dyulų", "dz": "botijų", "dzg": "dazagų", "ebu": "embu", "ee": "evių", "efi": "efik", "egl": "italų kalbos Emilijos tarmė", "egy": "senovės egiptiečių", "eka": "ekajuk", "el": "graikų", "elx": "elamitų", "en": "anglų", "en-AU": "Australijos anglų", "en-CA": "Kanados anglų", "en-GB": "Didžiosios Britanijos anglų", "en-US": "Jungtinių Valstijų anglų", "enm": "Vidurio Anglijos", "eo": "esperanto", "es": "ispanų", "es-419": "Lotynų Amerikos ispanų", "es-ES": "Europos ispanų", "es-MX": "Meksikos ispanų", "esu": "centrinės Aliaskos jupikų", "et": "estų", "eu": "baskų", "ewo": "evondo", "ext": "ispanų kalbos Ekstremadūros tarmė", "fa": "persų", "fan": "fangų", "fat": "fanti", "ff": "fulahų", "fi": "suomių", "fil": "filipiniečių", "fit": "suomių kalbos Tornedalio tarmė", "fj": "fidžių", "fo": "farerų", "fr": "prancūzų", "fr-CA": "Kanados prancūzų", "fr-CH": "Šveicarijos prancūzų", "frc": "kadžunų prancūzų", "frm": "Vidurio Prancūzijos", "fro": "senoji prancūzų", "frp": "arpitano", "frr": "šiaurinių fryzų", "frs": "rytų fryzų", "fur": "friulių", "fy": "vakarų fryzų", "ga": "airių", "gaa": "ga", "gag": "gagaūzų", "gan": "kinų kalbos dziangsi tarmė", "gay": "gajo", "gba": "gbaja", "gbz": "zoroastrų dari", "gd": "škotų (gėlų)", "gez": "gyz", "gil": "kiribati", "gl": "galisų", "glk": "gilaki", "gmh": "Vidurio Aukštosios Vokietijos", "gn": "gvaranių", "goh": "senoji Aukštosios Vokietijos", "gom": "Goa konkanių", "gon": "gondi", "gor": "gorontalo", "got": "gotų", "grb": "grebo", "grc": "senovės graikų", "gsw": "Šveicarijos vokiečių", "gu": "gudžaratų", "guc": "vajų", "gur": "frafra", "guz": "gusi", "gv": "meniečių", "gwi": "gvičino", "ha": "hausų", "hai": "haido", "hak": "kinų kalbos hakų tarmė", "haw": "havajiečių", "he": "hebrajų", "hi": "hindi", "hif": "Fidžio hindi", "hil": "hiligainonų", "hit": "hititų", "hmn": "hmong", "ho": "hiri motu", "hr": "kroatų", "hsb": "aukštutinių sorbų", "hsn": "kinų kalbos hunano tarmė", "ht": "Haičio", "hu": "vengrų", "hup": "hupa", "hy": "armėnų", "hz": "hererų", "ia": "tarpinė", "iba": "iban", "ibb": "ibibijų", "id": "indoneziečių", "ie": "interkalba", "ig": "igbų", "ii": "sičuan ji", "ik": "inupiakų", "ilo": "ilokų", "inh": "ingušų", "io": "ido", "is": "islandų", "it": "italų", "iu": "inukitut", "izh": "ingrų", "ja": "japonų", "jam": "Jamaikos kreolų anglų", "jbo": "loiban", "jgo": "ngombų", "jmc": "mačamų", "jpr": "judėjų persų", "jrb": "judėjų arabų", "jut": "danų kalbos jutų tarmė", "jv": "javiečių", "ka": "gruzinų", "kaa": "karakalpakų", "kab": "kebailų", "kac": "kačinų", "kaj": "ju", "kam": "kembų", "kaw": "kavių", "kbd": "kabardinų", "kbl": "kanembų", "kcg": "tyap", "kde": "makondų", "kea": "Žaliojo Kyšulio kreolų", "ken": "kenyang", "kfo": "koro", "kg": "Kongo", "kgp": "kaingang", "kha": "kasi", "kho": "kotanezų", "khq": "kojra čini", "khw": "khovarų", "ki": "kikujų", "kiu": "kirmanjki", "kj": "kuaniama", "kk": "kazachų", "kkj": "kako", "kl": "kalalisut", "kln": "kalenjinų", "km": "khmerų", "kmb": "kimbundu", "kn": "kanadų", "ko": "korėjiečių", "koi": "komių-permių", "kok": "konkanių", "kos": "kosreanų", "kpe": "kpelių", "kr": "kanurių", "krc": "karačiajų balkarijos", "kri": "krio", "krj": "kinaray-a", "krl": "karelų", "kru": "kuruk", "ks": "kašmyrų", "ksb": "šambalų", "ksf": "bafų", "ksh": "kolognų", "ku": "kurdų", "kum": "kumikų", "kut": "kutenai", "kv": "komi", "kw": "kornų", "ky": "kirgizų", "la": "lotynų", "lad": "ladino", "lag": "langi", "lah": "landa", "lam": "lamba", "lb": "liuksemburgiečių", "lez": "lezginų", "lfn": "naujoji frankų kalba", "lg": "ganda", "li": "limburgiečių", "lij": "ligūrų", "liv": "lyvių", "lkt": "lakotų", "lmo": "lombardų", "ln": "ngalų", "lo": "laosiečių", "lol": "mongų", "lou": "Luizianos kreolų", "loz": "lozių", "lrc": "šiaurės luri", "lt": "lietuvių", "ltg": "latgalių", "lu": "luba katanga", "lua": "luba lulua", "lui": "luiseno", "lun": "Lundos", "lus": "mizo", "luy": "luja", "lv": "latvių", "lzh": "klasikinė kinų", "lzz": "laz", "mad": "madurezų", "maf": "mafų", "mag": "magahi", "mai": "maithili", "mak": "Makasaro", "man": "mandingų", "mas": "masajų", "mde": "mabų", "mdf": "mokša", "mdr": "mandarų", "men": "mende", "mer": "merų", "mfe": "morisijų", "mg": "malagasų", "mga": "Vidurio Airijos", "mgh": "makua-maeto", "mgo": "meta", "mh": "Maršalo Salų", "mi": "maorių", "mic": "mikmakų", "min": "minangkabau", "mk": "makedonų", "ml": "malajalių", "mn": "mongolų", "mnc": "manču", "mni": "manipurių", "moh": "mohok", "mos": "mosi", "mr": "maratų", "mrj": "vakarų mari", "ms": "malajiečių", "mt": "maltiečių", "mua": "mundangų", "mus": "krykų", "mwl": "mirandezų", "mwr": "marvari", "mwv": "mentavai", "my": "birmiečių", "mye": "mjenų", "myv": "erzyjų", "mzn": "mazenderanių", "na": "naurų", "nan": "kinų kalbos pietų minų tarmė", "nap": "neapoliečių", "naq": "nama", "nb": "norvegų bukmolas", "nd": "šiaurės ndebelų", "nds": "Žemutinės Vokietijos", "nds-NL": "Žemutinės Saksonijos (Nyderlandai)", "ne": "nepaliečių", "new": "nevari", "ng": "ndongų", "nia": "nias", "niu": "niujiečių", "njo": "ao naga", "nl": "olandų", "nl-BE": "flamandų", "nmg": "kvasių", "nn": "naujoji norvegų", "nnh": "ngiembūnų", "no": "norvegų", "nog": "nogų", "non": "senoji norsų", "nov": "novial", "nqo": "enko", "nr": "pietų ndebele", "nso": "šiaurės Soto", "nus": "nuerų", "nv": "navajų", "nwc": "klasikinė nevari", "ny": "nianjų", "nym": "niamvezi", "nyn": "niankolų", "nyo": "niorų", "nzi": "nzima", "oc": "očitarų", "oj": "ojibva", "om": "oromų", "or": "odijų", "os": "osetinų", "osa": "osage", "ota": "osmanų turkų", "pa": "pendžabų", "pag": "pangasinanų", "pal": "vidurinė persų kalba", "pam": "pampangų", "pap": "papiamento", "pau": "palauliečių", "pcd": "pikardų", "pcm": "Nigerijos pidžinų", "pdc": "Pensilvanijos vokiečių", "pdt": "vokiečių kalbos žemaičių tarmė", "peo": "senoji persų", "pfl": "vokiečių kalbos Pfalco tarmė", "phn": "finikiečių", "pi": "pali", "pl": "lenkų", "pms": "italų kalbos Pjemonto tarmė", "pnt": "Ponto", "pon": "Ponapės", "prg": "prūsų", "pro": "senovės provansalų", "ps": "puštūnų", "pt": "portugalų", "pt-BR": "Brazilijos portugalų", "pt-PT": "Europos portugalų", "qu": "kečujų", "quc": "kičių", "qug": "Čimboraso aukštumų kečujų", "raj": "Radžastano", "rap": "rapanui", "rar": "rarotonganų", "rgn": "italų kalbos Romanijos tarmė", "rif": "rifų", "rm": "retoromanų", "rn": "rundi", "ro": "rumunų", "ro-MD": "moldavų", "rof": "rombo", "rom": "romų", "root": "rūt", "rtm": "rotumanų", "ru": "rusų", "rue": "rusinų", "rug": "Rovianos", "rup": "aromanių", "rw": "kinjaruandų", "rwk": "rua", "sa": "sanskritas", "sad": "sandavių", "sah": "jakutų", "sam": "samarėjų aramių", "saq": "sambūrų", "sas": "sasak", "sat": "santalių", "saz": "sauraštrų", "sba": "ngambajų", "sbp": "sangų", "sc": "sardiniečių", "scn": "siciliečių", "sco": "škotų", "sd": "sindų", "sdc": "sasaresų sardinų", "sdh": "pietų kurdų", "se": "šiaurės samių", "see": "senecų", "seh": "senų", "sei": "seri", "sel": "selkup", "ses": "kojraboro seni", "sg": "sango", "sga": "senoji airių", "sgs": "žemaičių", "sh": "serbų-kroatų", "shi": "tachelhitų", "shn": "šan", "shu": "chadian arabų", "si": "sinhalų", "sid": "sidamų", "sk": "slovakų", "sl": "slovėnų", "sli": "sileziečių žemaičių", "sly": "selajarų", "sm": "Samoa", "sma": "pietų samių", "smj": "Liuleo samių", "smn": "Inario samių", "sms": "Skolto samių", "sn": "šonų", "snk": "soninke", "so": "somaliečių", "sog": "sogdien", "sq": "albanų", "sr": "serbų", "srn": "sranan tongo", "srr": "sererų", "ss": "svatų", "ssy": "saho", "st": "pietų Soto", "stq": "Saterlendo fryzų", "su": "sundų", "suk": "sukuma", "sus": "susu", "sux": "šumerų", "sv": "švedų", "sw": "suahilių", "sw-CD": "Kongo suahilių", "swb": "Komorų", "syc": "klasikinė sirų", "syr": "sirų", "szl": "sileziečių", "ta": "tamilų", "tcy": "tulų", "te": "telugų", "tem": "timne", "teo": "teso", "ter": "Tereno", "tet": "tetum", "tg": "tadžikų", "th": "tajų", "ti": "tigrajų", "tig": "tigre", "tk": "turkmėnų", "tkl": "Tokelau", "tkr": "tsakurų", "tl": "tagalogų", "tlh": "klingonų", "tli": "tlingitų", "tly": "talyšų", "tmh": "tamašek", "tn": "tsvanų", "to": "tonganų", "tog": "niasa tongų", "tpi": "Papua pidžinų", "tr": "turkų", "tru": "turoyo", "trv": "Taroko", "ts": "tsongų", "tsd": "tsakonų", "tsi": "tsimšian", "tt": "totorių", "ttt": "musulmonų tatų", "tum": "tumbukų", "tvl": "Tuvalu", "tw": "tvi", "twq": "tasavakų", "ty": "taitiečių", "tyv": "tuvių", "tzm": "Centrinio Maroko tamazitų", "udm": "udmurtų", "ug": "uigūrų", "uga": "ugaritų", "uk": "ukrainiečių", "umb": "umbundu", "ur": "urdų", "uz": "uzbekų", "ve": "vendų", "vec": "venetų", "vep": "vepsų", "vi": "vietnamiečių", "vls": "vakarų flamandų", "vmf": "pagrindinė frankonų", "vo": "volapiuko", "vot": "Votik", "vro": "veru", "vun": "vunjo", "wa": "valonų", "wae": "valserų", "wal": "valamo", "war": "varai", "was": "Vašo", "wbp": "valrpiri", "wo": "volofų", "wuu": "kinų kalbos vu tarmė", "xal": "kalmukų", "xh": "kosų", "xmf": "megrelų", "xog": "sogų", "yao": "jao", "yap": "japezų", "yav": "jangbenų", "ybb": "jembų", "yi": "jidiš", "yo": "jorubų", "yrl": "njengatu", "yue": "kinų kalbos Kantono tarmė", "za": "chuang", "zap": "zapotekų", "zbl": "BLISS simbolių", "zea": "zelandų", "zen": "zenaga", "zgh": "standartinė Maroko tamazigtų", "zh": "kinų", "zh-Hans": "supaprastintoji kinų", "zh-Hant": "tradicinė kinų", "zu": "zulų", "zun": "Zuni", "zza": "zaza"}}, - "lv": {"rtl": false, "languageNames": {"aa": "afāru", "ab": "abhāzu", "ace": "ačinu", "ach": "ačolu", "ada": "adangmu", "ady": "adigu", "ae": "avesta", "af": "afrikandu", "afh": "afrihili", "agq": "aghemu", "ain": "ainu", "ak": "akanu", "akk": "akadiešu", "ale": "aleutu", "alt": "dienvidaltajiešu", "am": "amharu", "an": "aragoniešu", "ang": "senangļu", "anp": "angika", "ar": "arābu", "ar-001": "mūsdienu standarta arābu", "arc": "aramiešu", "arn": "araukāņu", "arp": "arapahu", "arw": "aravaku", "as": "asamiešu", "asa": "asu", "ast": "astūriešu", "av": "avāru", "awa": "avadhu", "ay": "aimaru", "az": "azerbaidžāņu", "az-Arab": "dienvidazerbaidžāņu", "ba": "baškīru", "bal": "beludžu", "ban": "baliešu", "bas": "basu", "bax": "bamumu", "bbj": "gomalu", "be": "baltkrievu", "bej": "bedžu", "bem": "bembu", "bez": "bena", "bfd": "bafutu", "bg": "bulgāru", "bgn": "rietumbeludžu", "bho": "bhodžpūru", "bi": "bišlamā", "bik": "bikolu", "bin": "binu", "bkm": "komu", "bla": "siksiku", "bm": "bambaru", "bn": "bengāļu", "bo": "tibetiešu", "br": "bretoņu", "bra": "bradžiešu", "brx": "bodo", "bs": "bosniešu", "bss": "nkosi", "bua": "burjatu", "bug": "bugu", "bum": "bulu", "byn": "bilinu", "byv": "medumbu", "ca": "katalāņu", "cad": "kadu", "car": "karību", "cay": "kajuga", "cch": "atsamu", "ccp": "čakmu", "ce": "čečenu", "ceb": "sebuāņu", "cgg": "kiga", "ch": "čamorru", "chb": "čibču", "chg": "džagatajs", "chk": "čūku", "chm": "mariešu", "chn": "činuku žargons", "cho": "čoktavu", "chp": "čipevaianu", "chr": "čiroku", "chy": "šejenu", "ckb": "centrālkurdu", "co": "korsikāņu", "cop": "koptu", "cr": "krī", "crh": "Krimas tatāru", "crs": "franciskā kreoliskā valoda (Seišelu salas)", "cs": "čehu", "csb": "kašubu", "cu": "baznīcslāvu", "cv": "čuvašu", "cy": "velsiešu", "da": "dāņu", "dak": "dakotu", "dar": "dargu", "dav": "taitu", "de": "vācu", "de-AT": "vācu (Austrija)", "de-CH": "augšvācu (Šveice)", "del": "delavēru", "den": "sleivu", "dgr": "dogribu", "din": "dinku", "dje": "zarmu", "doi": "dogru", "dsb": "lejassorbu", "dua": "dualu", "dum": "vidusholandiešu", "dv": "maldīviešu", "dyo": "diola-fonjī", "dyu": "diūlu", "dz": "dzongke", "dzg": "dazu", "ebu": "kjembu", "ee": "evu", "efi": "efiku", "egy": "ēģiptiešu", "eka": "ekadžuku", "el": "grieķu", "elx": "elamiešu", "en": "angļu", "en-AU": "angļu (Austrālija)", "en-CA": "angļu (Kanāda)", "en-GB": "angļu (Lielbritānija)", "en-US": "angļu (Amerikas Savienotās Valstis)", "enm": "vidusangļu", "eo": "esperanto", "es": "spāņu", "es-419": "spāņu (Latīņamerika)", "es-ES": "spāņu (Spānija)", "es-MX": "spāņu (Meksika)", "et": "igauņu", "eu": "basku", "ewo": "evondu", "fa": "persiešu", "fan": "fangu", "fat": "fantu", "ff": "fulu", "fi": "somu", "fil": "filipīniešu", "fj": "fidžiešu", "fo": "fēru", "fon": "fonu", "fr": "franču", "fr-CA": "franču (Kanāda)", "fr-CH": "franču (Šveice)", "frc": "kadžūnu franču", "frm": "vidusfranču", "fro": "senfranču", "frr": "ziemeļfrīzu", "frs": "austrumfrīzu", "fur": "friūlu", "fy": "rietumfrīzu", "ga": "īru", "gaa": "ga", "gag": "gagauzu", "gay": "gajo", "gba": "gbaju", "gd": "skotu gēlu", "gez": "gēzu", "gil": "kiribatiešu", "gl": "galisiešu", "gmh": "vidusaugšvācu", "gn": "gvaranu", "goh": "senaugšvācu", "gon": "gondu valodas", "gor": "gorontalu", "got": "gotu", "grb": "grebo", "grc": "sengrieķu", "gsw": "Šveices vācu", "gu": "gudžaratu", "guz": "gusii", "gv": "meniešu", "gwi": "kučinu", "ha": "hausu", "hai": "haidu", "haw": "havajiešu", "he": "ivrits", "hi": "hindi", "hil": "hiligainonu", "hit": "hetu", "hmn": "hmongu", "ho": "hirimotu", "hr": "horvātu", "hsb": "augšsorbu", "ht": "haitiešu", "hu": "ungāru", "hup": "hupu", "hy": "armēņu", "hz": "hereru", "ia": "interlingva", "iba": "ibanu", "ibb": "ibibio", "id": "indonēziešu", "ie": "interlingve", "ig": "igbo", "ii": "Sičuaņas ji", "ik": "inupiaku", "ilo": "iloku", "inh": "ingušu", "io": "ido", "is": "islandiešu", "it": "itāļu", "iu": "inuītu", "ja": "japāņu", "jbo": "ložbans", "jmc": "mačamu", "jpr": "jūdpersiešu", "jrb": "jūdarābu", "jv": "javiešu", "ka": "gruzīnu", "kaa": "karakalpaku", "kab": "kabilu", "kac": "kačinu", "kaj": "kadži", "kam": "kambu", "kaw": "kāvi", "kbd": "kabardiešu", "kbl": "kaņembu", "kcg": "katabu", "kde": "makonde", "kea": "kaboverdiešu", "kfo": "koru", "kg": "kongu", "kha": "khasu", "kho": "hotaniešu", "khq": "koiračiinī", "ki": "kikuju", "kj": "kvaņamu", "kk": "kazahu", "kkj": "kako", "kl": "grenlandiešu", "kln": "kalendžīnu", "km": "khmeru", "kmb": "kimbundu", "kn": "kannadu", "ko": "korejiešu", "koi": "komiešu-permiešu", "kok": "konkanu", "kos": "kosrājiešu", "kpe": "kpellu", "kr": "kanuru", "krc": "karačaju un balkāru", "krl": "karēļu", "kru": "kuruhu", "ks": "kašmiriešu", "ksb": "šambalu", "ksf": "bafiju", "ksh": "Ķelnes vācu", "ku": "kurdu", "kum": "kumiku", "kut": "kutenaju", "kv": "komiešu", "kw": "korniešu", "ky": "kirgīzu", "la": "latīņu", "lad": "ladino", "lag": "langi", "lah": "landu", "lam": "lambu", "lb": "luksemburgiešu", "lez": "lezgīnu", "lg": "gandu", "li": "limburgiešu", "lkt": "lakotu", "ln": "lingala", "lo": "laosiešu", "lol": "mongu", "lou": "Luiziānas kreolu", "loz": "lozu", "lrc": "ziemeļluru", "lt": "lietuviešu", "lu": "lubakatanga", "lua": "lubalulva", "lui": "luisenu", "lun": "lundu", "lus": "lušeju", "luy": "luhju", "lv": "latviešu", "mad": "maduriešu", "maf": "mafu", "mag": "magahiešu", "mai": "maithili", "mak": "makasaru", "man": "mandingu", "mas": "masaju", "mde": "mabu", "mdf": "mokšu", "mdr": "mandaru", "men": "mendu", "mer": "meru", "mfe": "Maurīcijas kreolu", "mg": "malagasu", "mga": "vidusīru", "mgh": "makua", "mh": "māršaliešu", "mi": "maoru", "mic": "mikmaku", "min": "minangkabavu", "mk": "maķedoniešu", "ml": "malajalu", "mn": "mongoļu", "mnc": "mandžūru", "mni": "manipūru", "moh": "mohauku", "mos": "mosu", "mr": "marathu", "ms": "malajiešu", "mt": "maltiešu", "mua": "mundangu", "mus": "krīku", "mwl": "mirandiešu", "mwr": "marvaru", "my": "birmiešu", "mye": "mjenu", "myv": "erzju", "mzn": "mazanderāņu", "na": "nauruiešu", "nap": "neapoliešu", "naq": "nama", "nb": "norvēģu bukmols", "nd": "ziemeļndebelu", "nds": "lejasvācu", "nds-NL": "lejassakšu", "ne": "nepāliešu", "new": "nevaru", "ng": "ndongu", "nia": "njasu", "niu": "niuāņu", "nl": "holandiešu", "nl-BE": "flāmu", "nmg": "kvasio", "nn": "jaunnorvēģu", "nnh": "ngjembūnu", "no": "norvēģu", "nog": "nogaju", "non": "sennorvēģu", "nqo": "nko", "nr": "dienvidndebelu", "nso": "ziemeļsotu", "nus": "nueru", "nv": "navahu", "nwc": "klasiskā nevaru", "ny": "čičeva", "nym": "ņamvezu", "nyn": "ņankolu", "nyo": "ņoru", "nzi": "nzemu", "oc": "oksitāņu", "oj": "odžibvu", "om": "oromu", "or": "oriju", "os": "osetīnu", "osa": "važāžu", "ota": "turku osmaņu", "pa": "pandžabu", "pag": "pangasinanu", "pal": "pehlevi", "pam": "pampanganu", "pap": "papjamento", "pau": "palaviešu", "pcm": "Nigērijas pidžinvaloda", "peo": "senpersu", "phn": "feniķiešu", "pi": "pāli", "pl": "poļu", "pon": "ponapiešu", "prg": "prūšu", "pro": "senprovansiešu", "ps": "puštu", "pt": "portugāļu", "pt-BR": "portugāļu (Brazīlija)", "pt-PT": "portugāļu (Portugāle)", "qu": "kečvu", "quc": "kiče", "raj": "radžastāņu", "rap": "rapanuju", "rar": "rarotongiešu", "rm": "retoromāņu", "rn": "rundu", "ro": "rumāņu", "ro-MD": "moldāvu", "rof": "rombo", "rom": "čigānu", "root": "sakne", "ru": "krievu", "rup": "aromūnu", "rw": "kiņaruanda", "rwk": "ruanda", "sa": "sanskrits", "sad": "sandavu", "sah": "jakutu", "sam": "Samārijas aramiešu", "saq": "samburu", "sas": "sasaku", "sat": "santalu", "sba": "ngambeju", "sbp": "sangu", "sc": "sardīniešu", "scn": "sicīliešu", "sco": "skotu", "sd": "sindhu", "sdh": "dienvidkurdu", "se": "ziemeļsāmu", "see": "seneku", "seh": "senu", "sel": "selkupu", "ses": "koiraboro senni", "sg": "sango", "sga": "senīru", "sh": "serbu–horvātu", "shi": "šilhu", "shn": "šanu", "shu": "Čadas arābu", "si": "singāļu", "sid": "sidamu", "sk": "slovāku", "sl": "slovēņu", "sm": "samoāņu", "sma": "dienvidsāmu", "smj": "Luleo sāmu", "smn": "Inari sāmu", "sms": "skoltsāmu", "sn": "šonu", "snk": "soninku", "so": "somāļu", "sog": "sogdiešu", "sq": "albāņu", "sr": "serbu", "srn": "sranantogo", "srr": "serēru", "ss": "svatu", "ssy": "saho", "st": "dienvidsotu", "su": "zundu", "suk": "sukumu", "sus": "susu", "sux": "šumeru", "sv": "zviedru", "sw": "svahili", "sw-CD": "svahili (Kongo)", "swb": "komoru", "syc": "klasiskā sīriešu", "syr": "sīriešu", "ta": "tamilu", "te": "telugu", "tem": "temnu", "teo": "teso", "ter": "tereno", "tet": "tetumu", "tg": "tadžiku", "th": "taju", "ti": "tigrinja", "tig": "tigru", "tiv": "tivu", "tk": "turkmēņu", "tkl": "tokelaviešu", "tl": "tagalu", "tlh": "klingoņu", "tli": "tlinkitu", "tmh": "tuaregu", "tn": "cvanu", "to": "tongiešu", "tog": "Njasas tongu", "tpi": "tokpisins", "tr": "turku", "trv": "taroko", "ts": "congu", "tsi": "cimšiāņu", "tt": "tatāru", "tum": "tumbuku", "tvl": "tuvaliešu", "tw": "tvī", "twq": "tasavaku", "ty": "taitiešu", "tyv": "tuviešu", "tzm": "Centrālmarokas tamazīts", "udm": "udmurtu", "ug": "uiguru", "uga": "ugaritiešu", "uk": "ukraiņu", "umb": "umbundu", "ur": "urdu", "uz": "uzbeku", "vai": "vaju", "ve": "vendu", "vi": "vjetnamiešu", "vo": "volapiks", "vot": "votu", "vun": "vundžo", "wa": "valoņu", "wae": "Vallisas vācu", "wal": "valamu", "war": "varaju", "was": "vašo", "wbp": "varlpirī", "wo": "volofu", "xal": "kalmiku", "xh": "khosu", "xog": "sogu", "yao": "jao", "yap": "japiešu", "yav": "janbaņu", "ybb": "jembu", "yi": "jidišs", "yo": "jorubu", "yue": "kantoniešu", "za": "džuanu", "zap": "sapoteku", "zbl": "blissimbolika", "zen": "zenagu", "zgh": "standarta tamazigtu (Maroka)", "zh": "ķīniešu", "zh-Hans": "ķīniešu vienkāršotā", "zh-Hant": "ķīniešu tradicionālā", "zu": "zulu", "zun": "zunju", "zza": "zazaki"}}, - "mg": {"rtl": false, "languageNames": {"ak": "Akan", "am": "Amharika", "ar": "Arabo", "ar-001": "Arabo (001)", "be": "Bielorosy", "bg": "Biolgara", "bn": "Bengali", "cs": "Tseky", "de": "Alemanina", "de-AT": "Alemanina (Aotrisy)", "de-CH": "Alemanina (Soisa)", "el": "Grika", "en": "Anglisy", "en-AU": "Anglisy (Aostralia)", "en-CA": "Anglisy (Kanada)", "en-GB": "Anglisy (Angletera)", "en-US": "Anglisy (Etazonia)", "es": "Espaniola", "es-419": "Espaniola (419)", "es-ES": "Espaniola (Espaina)", "es-MX": "Espaniola (Meksika)", "fa": "Persa", "fr": "Frantsay", "fr-CA": "Frantsay (Kanada)", "fr-CH": "Frantsay (Soisa)", "ha": "haoussa", "hi": "hindi", "hu": "hongroà", "id": "Indonezianina", "ig": "igbo", "it": "Italianina", "ja": "Japoney", "jv": "Javaney", "km": "khmer", "ko": "Koreanina", "mg": "Malagasy", "ms": "Malay", "my": "Birmana", "nds-NL": "nds (Holanda)", "ne": "Nepale", "nl": "Holandey", "nl-BE": "Holandey (Belzika)", "pa": "Penjabi", "pl": "Poloney", "pt": "Portiogey", "pt-BR": "Portiogey (Brezila)", "pt-PT": "Portiogey (Pôrtiogala)", "ro": "Romanianina", "ro-MD": "Romanianina (Môldavia)", "ru": "Rosianina", "rw": "Roande", "so": "Somalianina", "sv": "Soisa", "sw-CD": "sw (Repoblikan’i Kongo)", "ta": "Tamoila", "th": "Taioaney", "tr": "Tiorka", "uk": "Okrainianina", "ur": "Ordò", "vi": "Vietnamianina", "yo": "Yôrobà", "zh": "Sinoa, Mandarin", "zh-Hans": "Sinoa, Mandarin (Hans)", "zh-Hant": "Sinoa, Mandarin (Hant)", "zu": "Zolò"}}, - "mk": {"rtl": false, "languageNames": {"aa": "афарски", "ab": "апхаски", "ace": "ачешки", "ach": "аколи", "ada": "адангме", "ady": "адигејски", "ae": "авестански", "aeb": "туниски арапски", "af": "африканс", "afh": "африхили", "agq": "агемски", "ain": "ајну", "ak": "акански", "akk": "акадски", "akz": "алабамски", "ale": "алеутски", "aln": "гешки албански", "alt": "јужноалтајски", "am": "амхарски", "an": "арагонски", "ang": "староанглиски", "anp": "ангика", "ar": "арапски", "ar-001": "литературен арапски", "arc": "арамејски", "arn": "мапучки", "aro": "араона", "arp": "арапахо", "arq": "алжирски арапски", "arw": "аравачки", "ary": "марокански арапски", "arz": "египетски арапски", "as": "асамски", "asa": "асу", "ase": "американски знаковен јазик", "ast": "астурски", "av": "аварски", "avk": "котава", "awa": "авади", "ay": "ајмарски", "az": "азербејџански", "ba": "башкирски", "bal": "белуџиски", "ban": "балиски", "bar": "баварски", "bas": "баса", "bax": "бамунски", "bbc": "тоба", "bbj": "гомала", "be": "белоруски", "bej": "беџа", "bem": "бемба", "bew": "бетавски", "bez": "бена", "bfd": "бафут", "bfq": "бадага", "bg": "бугарски", "bgn": "западен балочи", "bho": "боџпури", "bi": "бислама", "bik": "биколски", "bin": "бини", "bjn": "банџарски", "bkm": "ком", "bla": "сиксика", "bm": "бамбара", "bn": "бенгалски", "bo": "тибетски", "bpy": "бишнуприја", "bqi": "бахтијарски", "br": "бретонски", "bra": "брај", "brh": "брахујски", "brx": "бодо", "bs": "босански", "bss": "акосе", "bua": "бурјатски", "bug": "бугиски", "bum": "булу", "byn": "биленски", "byv": "медумба", "ca": "каталонски", "cad": "кадо", "car": "карипски", "cay": "кајуга", "cch": "ацам", "ccp": "чакмански", "ce": "чеченски", "ceb": "себуански", "cgg": "чига", "ch": "чаморски", "chb": "чибча", "chg": "чагатајски", "chk": "чучки", "chm": "мариски", "chn": "чинучки жаргон", "cho": "чоктавски", "chp": "чипевјански", "chr": "черокиски", "chy": "чејенски", "ckb": "централнокурдски", "co": "корзикански", "cop": "коптски", "cps": "капизнон", "cr": "кри", "crh": "кримскотурски", "crs": "француски (Сеселва креоли)", "cs": "чешки", "csb": "кашупски", "cu": "црковнословенски", "cv": "чувашки", "cy": "велшки", "da": "дански", "dak": "дакота", "dar": "даргва", "dav": "таита", "de": "германски", "de-AT": "австриски германски", "de-CH": "швајцарски високо-германски", "del": "делавер", "den": "слејви", "dgr": "догрипски", "din": "динка", "dje": "зарма", "doi": "догри", "dsb": "долнолужички", "dtp": "дусунски", "dua": "дуала", "dum": "среднохоландски", "dv": "дивехи", "dyo": "јола-фоњи", "dyu": "џула", "dz": "ѕонгка", "dzg": "дазага", "ebu": "ембу", "ee": "еве", "efi": "ефик", "egl": "емилијански", "egy": "староегипетски", "eka": "екаџук", "el": "грчки", "elx": "еламски", "en": "англиски", "en-AU": "австралиски англиски", "en-CA": "канадски англиски", "en-GB": "британски англиски", "en-US": "американски англиски", "enm": "средноанглиски", "eo": "есперанто", "es": "шпански", "es-419": "латиноамерикански шпански", "es-ES": "шпански (во Европа)", "es-MX": "мексикански шпански", "esu": "централнојупички", "et": "естонски", "eu": "баскиски", "ewo": "евондо", "ext": "екстремадурски", "fa": "персиски", "fan": "фанг", "fat": "фанти", "ff": "фула", "fi": "фински", "fil": "филипински", "fit": "турнедаленски фински", "fj": "фиџиски", "fo": "фарски", "fon": "фон", "fr": "француски", "fr-CA": "канадски француски", "fr-CH": "швајцарски француски", "frc": "каџунски француски", "frm": "среднофранцуски", "fro": "старофранцуски", "frp": "франкопровансалски", "frr": "севернофризиски", "frs": "источнофризиски", "fur": "фурлански", "fy": "западнофризиски", "ga": "ирски", "gaa": "га", "gag": "гагауски", "gan": "ган", "gay": "гајо", "gba": "гбаја", "gbz": "зороастриски дари", "gd": "шкотски гелски", "gez": "гиз", "gil": "гилбертански", "gl": "галициски", "glk": "гилански", "gmh": "средногорногермански", "gn": "гварански", "goh": "старогорногермански", "gom": "гоански конкани", "gon": "гонди", "gor": "горонтало", "got": "готски", "grb": "гребо", "grc": "старогрчки", "gsw": "швајцарски германски", "gu": "гуџарати", "guc": "гвахиро", "gur": "фарефаре", "guz": "гуси", "gv": "манкс", "gwi": "гвичински", "ha": "хауса", "hai": "хајда", "hak": "хака", "haw": "хавајски", "he": "хебрејски", "hi": "хинди", "hif": "фиџиски хинди", "hil": "хилигајнонски", "hit": "хетитски", "hmn": "хмонг", "ho": "хири моту", "hr": "хрватски", "hsb": "горнолужички", "hsn": "сјанг", "ht": "хаитски", "hu": "унгарски", "hup": "хупа", "hy": "ерменски", "hz": "хереро", "ia": "интерлингва", "iba": "ибан", "ibb": "ибибио", "id": "индонезиски", "ie": "окцидентал", "ig": "игбо", "ii": "сичуан ји", "ik": "инупијачки", "ilo": "илокански", "inh": "ингушки", "io": "идо", "is": "исландски", "it": "италијански", "iu": "инуктитут", "izh": "ижорски", "ja": "јапонски", "jam": "јамајски креолски", "jbo": "ложбан", "jgo": "нгомба", "jmc": "мачаме", "jpr": "еврејскоперсиски", "jrb": "еврејскоарапски", "jut": "јитски", "jv": "јавански", "ka": "грузиски", "kaa": "каракалпачки", "kab": "кабилски", "kac": "качински", "kaj": "каџе", "kam": "камба", "kaw": "кави", "kbd": "кабардински", "kbl": "канембу", "kcg": "тјап", "kde": "маконде", "kea": "кабувердиану", "ken": "кењанг", "kfo": "коро", "kg": "конго", "kgp": "каинганшки", "kha": "каси", "kho": "хотански", "khq": "којра чиини", "khw": "коварски", "ki": "кикују", "kiu": "зазаки", "kj": "квањама", "kk": "казашки", "kkj": "како", "kl": "калалисут", "kln": "каленџин", "km": "кмерски", "kmb": "кимбунду", "kn": "каннада", "ko": "корејски", "koi": "коми-пермјачки", "kok": "конкани", "kos": "козрејски", "kpe": "кпеле", "kr": "канури", "krc": "карачаевско-балкарски", "kri": "крио", "krj": "кинарајски", "krl": "карелски", "kru": "курух", "ks": "кашмирски", "ksb": "шамбала", "ksf": "бафија", "ksh": "колоњски", "ku": "курдски", "kum": "кумички", "kut": "кутенајски", "kv": "коми", "kw": "корнски", "ky": "киргиски", "la": "латински", "lad": "ладино", "lag": "ланги", "lah": "ланда", "lam": "ламба", "lb": "луксембуршки", "lez": "лезгински", "lfn": "лингва франка нова", "lg": "ганда", "li": "лимбуршки", "lij": "лигурски", "liv": "ливонски", "lkt": "лакотски", "lmo": "ломбардиски", "ln": "лингала", "lo": "лаошки", "lol": "монго", "lou": "луизијански креолски", "loz": "лози", "lrc": "севернолуриски", "lt": "литвански", "ltg": "латгалски", "lu": "луба-катанга", "lua": "луба-лулуа", "lui": "лујсењски", "lun": "лунда", "luo": "луо", "lus": "мизо", "luy": "луја", "lv": "латвиски", "lzh": "книжевен кинески", "lzz": "ласки", "mad": "мадурски", "maf": "мафа", "mag": "магахи", "mai": "маитили", "mak": "макасарски", "man": "мандинго", "mas": "масајски", "mde": "маба", "mdf": "мокшански", "mdr": "мандарски", "men": "менде", "mer": "меру", "mfe": "морисјен", "mg": "малгашки", "mga": "средноирски", "mgh": "макува-мито", "mgo": "мета", "mh": "маршалски", "mi": "маорски", "mic": "микмак", "min": "минангкабау", "mk": "македонски", "ml": "малајамски", "mn": "монголски", "mnc": "манџурски", "mni": "манипурски", "moh": "мохавски", "mos": "моси", "mr": "марати", "mrj": "западномариски", "ms": "малајски", "mt": "малтешки", "mua": "мунданг", "mus": "крик", "mwl": "мирандски", "mwr": "марвари", "my": "бурмански", "mye": "мјене", "myv": "ерзјански", "mzn": "мазендерански", "na": "науруански", "nan": "јужномински", "nap": "неаполски", "naq": "нама", "nb": "норвешки букмол", "nd": "северен ндебеле", "nds": "долногермански", "nds-NL": "долносаксонски", "ne": "непалски", "new": "неварски", "ng": "ндонга", "nia": "нијас", "niu": "ниујески", "njo": "ао нага", "nl": "холандски", "nl-BE": "фламански", "nmg": "квазио", "nn": "норвешки нинорск", "nnh": "нгиембун", "no": "норвешки", "nog": "ногајски", "non": "старонордиски", "nov": "новијал", "nqo": "нко", "nr": "јужен ндебеле", "nso": "северносотски", "nus": "нуер", "nv": "навахо", "nwc": "класичен неварски", "ny": "њанџа", "nym": "њамвези", "nyn": "њанколе", "nyo": "њоро", "nzi": "нзима", "oc": "окситански", "oj": "оџибва", "om": "оромо", "or": "одија", "os": "осетски", "osa": "осашки", "ota": "отомански турски", "pa": "пенџапски", "pag": "пангасинански", "pal": "средноперсиски", "pam": "пампанга", "pap": "папијаменто", "pau": "палауански", "pcd": "пикардски", "pcm": "нигериски пиџин", "pdc": "пенсилваниски германски", "pdt": "менонитски долногермански", "peo": "староперсиски", "pfl": "фалечкогермански", "phn": "феникиски", "pi": "пали", "pl": "полски", "pms": "пиемонтски", "pnt": "понтски", "pon": "понпејски", "prg": "пруски", "pro": "старопровансалски", "ps": "паштунски", "pt": "португалски", "pt-BR": "бразилски португалски", "pt-PT": "португалски (во Европа)", "qu": "кечуански", "quc": "киче", "qug": "кичвански", "raj": "раџастански", "rap": "рапанујски", "rar": "раротонгански", "rgn": "ромањолски", "rif": "рифски", "rm": "реторомански", "rn": "рунди", "ro": "романски", "ro-MD": "молдавски", "rof": "ромбо", "rom": "ромски", "root": "корен", "rtm": "ротумански", "ru": "руски", "rue": "русински", "rug": "ровијански", "rup": "влашки", "rw": "руандски", "rwk": "руа", "sa": "санскрит", "sad": "сандаве", "sah": "јакутски", "sam": "самарјански арамејски", "saq": "самбуру", "sas": "сасачки", "sat": "сантали", "saz": "саураштра", "sba": "нгембеј", "sbp": "сангу", "sc": "сардински", "scn": "сицилијански", "sco": "шкотски германски", "sd": "синди", "sdc": "сасарски сардински", "sdh": "јужнокурдски", "se": "северен сами", "see": "сенека", "seh": "сена", "sei": "сери", "sel": "селкупски", "ses": "којраборо сени", "sg": "санго", "sga": "староирски", "sgs": "самогитски", "sh": "српскохрватски", "shi": "тачелхит", "shn": "шан", "shu": "чадски арапски", "si": "синхалски", "sid": "сидамо", "sk": "словачки", "sl": "словенечки", "sli": "долношлезиски", "sly": "селајарски", "sm": "самоански", "sma": "јужен сами", "smj": "луле сами", "smn": "инари сами", "sms": "сколт сами", "sn": "шона", "snk": "сонинке", "so": "сомалиски", "sog": "зогдијански", "sq": "албански", "sr": "српски", "srn": "срански тонго", "srr": "серер", "ss": "свати", "ssy": "сахо", "st": "сесото", "stq": "затерландски фризиски", "su": "сундски", "suk": "сукума", "sus": "сусу", "sux": "сумерски", "sv": "шведски", "sw": "свахили", "sw-CD": "конгоански свахили", "swb": "коморијански", "syc": "класичен сириски", "syr": "сириски", "szl": "шлезиски", "ta": "тамилски", "tcy": "тулу", "te": "телугу", "tem": "тимне", "teo": "тесо", "ter": "терено", "tet": "тетум", "tg": "таџикистански", "th": "тајландски", "ti": "тигриња", "tig": "тигре", "tiv": "тив", "tk": "туркменски", "tkl": "токелауански", "tkr": "цахурски", "tl": "тагалог", "tlh": "клингонски", "tli": "тлингит", "tly": "талишки", "tmh": "тамашек", "tn": "цвана", "to": "тонгајски", "tog": "њаса тонга", "tpi": "ток писин", "tr": "турски", "tru": "туројо", "trv": "тароко", "ts": "цонга", "tsd": "цаконски", "tsi": "цимшијански", "tt": "татарски", "ttt": "татски", "tum": "тумбука", "tvl": "тувалуански", "tw": "тви", "twq": "тазавак", "ty": "тахитски", "tyv": "тувански", "tzm": "централноатлански тамазитски", "udm": "удмуртски", "ug": "ујгурски", "uga": "угаритски", "uk": "украински", "umb": "умбунду", "ur": "урду", "uz": "узбечки", "vai": "вај", "ve": "венда", "vec": "венетски", "vep": "вепшки", "vi": "виетнамски", "vls": "западнофламански", "vmf": "мајнскофранконски", "vo": "волапик", "vot": "вотски", "vro": "виру", "vun": "вунџо", "wa": "валонски", "wae": "валсер", "wal": "воламо", "war": "варајски", "was": "вашо", "wbp": "варлпири", "wo": "волофски", "wuu": "ву", "xal": "калмички", "xh": "коса", "xmf": "мегрелски", "xog": "сога", "yao": "јао", "yap": "јапски", "yav": "јенгбен", "ybb": "јемба", "yi": "јидиш", "yo": "јорупски", "yrl": "њенгату", "yue": "кантонски", "za": "џуаншки", "zap": "запотечки", "zbl": "блиссимболи", "zea": "зеландски", "zen": "зенага", "zgh": "стандарден марокански тамазитски", "zh": "кинески", "zh-Hans": "поедноставен кинески", "zh-Hant": "традиционален кинески", "zu": "зулу", "zun": "зуни", "zza": "заза"}}, - "ml": {"rtl": false, "languageNames": {"aa": "അഫാർ", "ab": "അബ്‌ഖാസിയൻ", "ace": "അചിനീസ്", "ach": "അകോലി", "ada": "അഡാങ്‌മി", "ady": "അഡൈഗേ", "ae": "അവസ്റ്റാൻ", "af": "ആഫ്രിക്കാൻസ്", "afh": "ആഫ്രിഹിലി", "agq": "ആഘേം", "ain": "ഐനു", "ak": "അകാൻ‌", "akk": "അക്കാഡിയൻ", "ale": "അലൂട്ട്", "alt": "തെക്കൻ അൾത്തായി", "am": "അംഹാരിക്", "an": "അരഗോണീസ്", "ang": "പഴയ ഇംഗ്ലീഷ്", "anp": "ആൻഗിക", "ar": "അറബിക്", "ar-001": "ആധുനിക സ്റ്റാൻഡേർഡ് അറബിക്", "arc": "അരമായ", "arn": "മാപുചി", "arp": "അറാപഹോ", "arw": "അറാവക്", "as": "ആസ്സാമീസ്", "asa": "ആസു", "ast": "ഓസ്‌ട്രിയൻ", "av": "അവാരിക്", "awa": "അവാധി", "ay": "അയ്മാറ", "az": "അസർബൈജാനി", "ba": "ബഷ്ഖിർ", "bal": "ബലൂചി", "ban": "ബാലിനീസ്", "bas": "ബസ", "bax": "ബാമുൻ", "bbj": "ഘോമാല", "be": "ബെലാറുഷ്യൻ", "bej": "ബേജ", "bem": "ബേംബ", "bez": "ബെനാ", "bfd": "ബാഫട്ട്", "bg": "ബൾഗേറിയൻ", "bgn": "പശ്ചിമ ബലൂചി", "bho": "ഭോജ്‌പുരി", "bi": "ബിസ്‌ലാമ", "bik": "ബികോൽ", "bin": "ബിനി", "bkm": "കോം", "bla": "സിക്സിക", "bm": "ബംബാറ", "bn": "ബംഗാളി", "bo": "ടിബറ്റൻ", "br": "ബ്രെട്ടൺ", "bra": "ബ്രജ്", "brx": "ബോഡോ", "bs": "ബോസ്നിയൻ", "bss": "അക്കൂസ്", "bua": "ബുറിയത്ത്", "bug": "ബുഗിനീസ്", "bum": "ബുളു", "byn": "ബ്ലിൻ", "byv": "മെഡുംബ", "ca": "കറ്റാലാൻ", "cad": "കാഡോ", "car": "കാരിബ്", "cay": "കയൂഗ", "cch": "അറ്റ്സാം", "ce": "ചെചൻ", "ceb": "സെബുവാനോ", "cgg": "ചിഗ", "ch": "ചമോറോ", "chb": "ചിബ്ച", "chg": "ഷാഗതായ്", "chk": "ചൂകീസ്", "chm": "മാരി", "chn": "ചിനൂഗ് ജാർഗൺ", "cho": "ചോക്റ്റാവ്", "chp": "ചിപേവ്യൻ", "chr": "ഷെരോക്കി", "chy": "ഷായാൻ", "ckb": "സെൻട്രൽ കുർദിഷ്", "co": "കോർസിക്കൻ", "cop": "കോപ്റ്റിക്", "cr": "ക്രീ", "crh": "ക്രിമിയൻ ടർക്കിഷ്", "crs": "സെഷൽവ ക്രിയോൾ ഫ്രഞ്ച്", "cs": "ചെക്ക്", "csb": "കാഷുബിയാൻ", "cu": "ചർച്ച് സ്ലാവിക്", "cv": "ചുവാഷ്", "cy": "വെൽഷ്", "da": "ഡാനിഷ്", "dak": "ഡകോട്ട", "dar": "ഡർഗ്വാ", "dav": "തൈത", "de": "ജർമ്മൻ", "de-AT": "ഓസ്‌ട്രിയൻ ജർമൻ", "de-CH": "സ്വിസ് ഹൈ ജർമൻ", "del": "ദെലവേർ", "den": "സ്ലേവ്", "dgr": "ഡോഗ്രിബ്", "din": "ദിൻക", "dje": "സാർമ്മ", "doi": "ഡോഗ്രി", "dsb": "ലോവർ സോർബിയൻ", "dua": "ദ്വാല", "dum": "മദ്ധ്യ ഡച്ച്", "dv": "ദിവെഹി", "dyo": "യോല-ഫോന്യി", "dyu": "ദ്വൈല", "dz": "സോങ്ക", "dzg": "ഡാസാഗ", "ebu": "എംബു", "ee": "യൂവ്", "efi": "എഫിക്", "egy": "പ്രാചീന ഈജിപ്ഷ്യൻ", "eka": "എകാജുക്", "el": "ഗ്രീക്ക്", "elx": "എലാമൈറ്റ്", "en": "ഇംഗ്ലീഷ്", "en-AU": "ഓസ്‌ട്രേലിയൻ ഇംഗ്ലീഷ്", "en-CA": "കനേഡിയൻ ഇംഗ്ലീഷ്", "en-GB": "ബ്രിട്ടീഷ് ഇംഗ്ലീഷ്", "en-US": "അമേരിക്കൻ ഇംഗ്ലീഷ്", "enm": "മദ്ധ്യ ഇംഗ്ലീഷ്", "eo": "എസ്‌പരാന്റോ", "es": "സ്‌പാനിഷ്", "es-419": "ലാറ്റിൻ അമേരിക്കൻ സ്‌പാനിഷ്", "es-ES": "യൂറോപ്യൻ സ്‌പാനിഷ്", "es-MX": "മെക്സിക്കൻ സ്പാനിഷ്", "et": "എസ്റ്റോണിയൻ", "eu": "ബാസ്‌ക്", "ewo": "എവോൻഡോ", "fa": "പേർഷ്യൻ", "fan": "ഫങ്", "fat": "ഫാന്റി", "ff": "ഫുല", "fi": "ഫിന്നിഷ്", "fil": "ഫിലിപ്പിനോ", "fj": "ഫിജിയൻ", "fo": "ഫാറോസ്", "fon": "ഫോൻ", "fr": "ഫ്രഞ്ച്", "fr-CA": "കനേഡിയൻ ഫ്രഞ്ച്", "fr-CH": "സ്വിസ് ഫ്രഞ്ച്", "frc": "കേജൺ ഫ്രഞ്ച്", "frm": "മദ്ധ്യ ഫ്രഞ്ച്", "fro": "പഴയ ഫ്രഞ്ച്", "frr": "നോർത്തേൻ ഫ്രിഷ്യൻ", "frs": "ഈസ്റ്റേൺ ഫ്രിഷ്യൻ", "fur": "ഫ്രിയുലിയാൻ", "fy": "പശ്ചിമ ഫ്രിഷിയൻ", "ga": "ഐറിഷ്", "gaa": "ഗാ", "gag": "ഗാഗൂസ്", "gan": "ഗാൻ ചൈനീസ്", "gay": "ഗയൊ", "gba": "ഗബ്യ", "gd": "സ്കോട്ടിഷ് ഗൈലിക്", "gez": "ഗീസ്", "gil": "ഗിൽബർട്ടീസ്", "gl": "ഗലീഷ്യൻ", "gmh": "മദ്ധ്യ ഉച്ച ജർമൻ", "gn": "ഗ്വരനീ", "goh": "ഓൾഡ് ഹൈ ജർമൻ", "gon": "ഗോണ്ഡി", "gor": "ഗൊറോന്റാലോ", "got": "ഗോഥിക്ക്", "grb": "ഗ്രബൊ", "grc": "പുരാതന ഗ്രീക്ക്", "gsw": "സ്വിസ് ജർമ്മൻ", "gu": "ഗുജറാത്തി", "guz": "ഗുസീ", "gv": "മാൻസ്", "gwi": "ഗ്വിച്ചിൻ", "ha": "ഹൗസ", "hai": "ഹൈഡ", "hak": "ഹാക്ക ചൈനീസ്", "haw": "ഹവായിയൻ", "he": "ഹീബ്രു", "hi": "ഹിന്ദി", "hil": "ഹിലിഗയ്നോൺ", "hit": "ഹിറ്റൈറ്റ്", "hmn": "മോങ്", "ho": "ഹിരി മോതു", "hr": "ക്രൊയേഷ്യൻ", "hsb": "അപ്പർ സോർബിയൻ", "hsn": "ഷ്യാങ് ചൈനീസ്", "ht": "ഹെയ്‌തിയൻ ക്രിയോൾ", "hu": "ഹംഗേറിയൻ", "hup": "ഹൂപ", "hy": "അർമേനിയൻ", "hz": "ഹെരേരൊ", "ia": "ഇന്റർലിംഗ്വ", "iba": "ഇബാൻ", "ibb": "ഇബീബിയോ", "id": "ഇന്തോനേഷ്യൻ", "ie": "ഇന്റർലിംഗ്വേ", "ig": "ഇഗ്ബോ", "ii": "ഷുവാൻയി", "ik": "ഇനുപിയാക്", "ilo": "ഇലോകോ", "inh": "ഇംഗ്വിഷ്", "io": "ഇഡോ", "is": "ഐസ്‌ലാൻഡിക്", "it": "ഇറ്റാലിയൻ", "iu": "ഇനുക്റ്റിറ്റട്ട്", "ja": "ജാപ്പനീസ്", "jbo": "ലോജ്ബാൻ", "jgo": "ഗോമ്പ", "jmc": "മചേം", "jpr": "ജൂഡിയോ-പേർഷ്യൻ", "jrb": "ജൂഡിയോ-അറബിക്", "jv": "ജാവാനീസ്", "ka": "ജോർജിയൻ", "kaa": "കര-കാൽപ്പക്", "kab": "കബൈൽ", "kac": "കാചിൻ", "kaj": "ജ്ജു", "kam": "കംബ", "kaw": "കാവി", "kbd": "കബർഡിയാൻ", "kbl": "കനെംബു", "kcg": "ട്യാപ്", "kde": "മക്കോണ്ടെ", "kea": "കബുവെർദിയാനു", "kfo": "കോറോ", "kg": "കോംഗോ", "kha": "ഘാസി", "kho": "ഘോറ്റാനേസേ", "khq": "കൊയ്റ ചീനി", "ki": "കികൂയു", "kj": "ക്വാന്യമ", "kk": "കസാഖ്", "kkj": "കാകോ", "kl": "കലാല്ലിസട്ട്", "kln": "കലെഞ്ഞിൻ", "km": "ഖമെർ", "kmb": "കിംബുണ്ടു", "kn": "കന്നഡ", "ko": "കൊറിയൻ", "koi": "കോമി-പെർമ്യാക്ക്", "kok": "കൊങ്കണി", "kos": "കൊസറേയൻ", "kpe": "കപെല്ലേ", "kr": "കനൂറി", "krc": "കരചൈ-ബാൽകർ", "krl": "കരീലിയൻ", "kru": "കുരുഖ്", "ks": "കാശ്‌മീരി", "ksb": "ഷംഭാള", "ksf": "ബാഫിയ", "ksh": "കൊളോണിയൻ", "ku": "കുർദ്ദിഷ്", "kum": "കുമൈക്", "kut": "കുതേനൈ", "kv": "കോമി", "kw": "കോർണിഷ്", "ky": "കിർഗിസ്", "la": "ലാറ്റിൻ", "lad": "ലാഡിനോ", "lag": "ലാംഗി", "lah": "ലഹ്‌ൻഡ", "lam": "ലംബ", "lb": "ലക്‌സംബർഗിഷ്", "lez": "ലഹ്ഗിയാൻ", "lg": "ഗാണ്ട", "li": "ലിംബർഗിഷ്", "lkt": "ലഗോത്ത", "ln": "ലിംഗാല", "lo": "ലാവോ", "lol": "മോങ്കോ", "lou": "ലൂസിയാന ക്രിയോൾ", "loz": "ലൊസി", "lrc": "വടക്കൻ ലൂറി", "lt": "ലിത്വാനിയൻ", "lu": "ലുബ-കറ്റംഗ", "lua": "ലൂബ-ലുലുവ", "lui": "ലൂയിസെനോ", "lun": "ലുൻഡ", "luo": "ലുവോ", "lus": "മിസോ", "luy": "ലുയിയ", "lv": "ലാറ്റ്വിയൻ", "mad": "മദുരേസേ", "maf": "മാഫ", "mag": "മഗാഹി", "mai": "മൈഥിലി", "mak": "മകാസർ", "man": "മണ്ഡിൻഗോ", "mas": "മസായ്", "mde": "മാബ", "mdf": "മോക്ഷ", "mdr": "മണ്ഡാർ", "men": "മെൻഡെ", "mer": "മേരു", "mfe": "മൊറിസിൻ", "mg": "മലഗാസി", "mga": "മദ്ധ്യ ഐറിഷ്", "mgh": "മാഖുവാ-മീത്തോ", "mgo": "മേത്താ", "mh": "മാർഷല്ലീസ്", "mi": "മവോറി", "mic": "മിക്മാക്", "min": "മിനാങ്കബൗ", "mk": "മാസിഡോണിയൻ", "ml": "മലയാളം", "mn": "മംഗോളിയൻ", "mnc": "മാൻ‌ചു", "mni": "മണിപ്പൂരി", "moh": "മോഹാക്", "mos": "മൊസ്സി", "mr": "മറാത്തി", "ms": "മലെയ്", "mt": "മാൾട്ടീസ്", "mua": "മുന്ദാംഗ്", "mus": "ക്രീക്ക്", "mwl": "മിരാൻറസേ", "mwr": "മർവാരി", "my": "ബർമീസ്", "mye": "മയീൻ", "myv": "ഏഴ്സ്യ", "mzn": "മസന്ററാനി", "na": "നൗറു", "nan": "മിൻ നാൻ ചൈനീസ്", "nap": "നെപ്പോളിറ്റാൻ", "naq": "നാമ", "nb": "നോർവീജിയൻ ബുക്‌മൽ", "nd": "നോർത്ത് ഡെബിൾ", "nds": "ലോ ജർമൻ", "nds-NL": "ലോ സാക്സൺ", "ne": "നേപ്പാളി", "new": "നേവാരി", "ng": "ഡോങ്ക", "nia": "നിയാസ്", "niu": "ന്യുവാൻ", "nl": "ഡച്ച്", "nl-BE": "ഫ്ലമിഷ്", "nmg": "ക്വാസിയോ", "nn": "നോർവീജിയൻ നൈനോർക്‌സ്", "nnh": "ഗീംബൂൺ", "no": "നോർവീജിയൻ", "nog": "നോഗൈ", "non": "പഴയ നോഴ്‌സ്", "nqo": "ഇൻകോ", "nr": "ദക്ഷിണ നെഡിബിൾ", "nso": "നോർത്തേൻ സോതോ", "nus": "നുവേർ", "nv": "നവാജോ", "nwc": "ക്ലാസിക്കൽ നേവാരി", "ny": "ന്യൻജ", "nym": "ന്യാംവേസി", "nyn": "ന്യാൻകോൾ", "nyo": "ന്യോറോ", "nzi": "സിമ", "oc": "ഓക്‌സിറ്റൻ", "oj": "ഓജിബ്വാ", "om": "ഒറോമോ", "or": "ഒഡിയ", "os": "ഒസ്സെറ്റിക്", "osa": "ഒസേജ്", "ota": "ഓട്ടോമൻ തുർക്കിഷ്", "pa": "പഞ്ചാബി", "pag": "പങ്കാസിനൻ", "pal": "പാഹ്ലവി", "pam": "പാംപൻഗ", "pap": "പാപിയാമെന്റൊ", "pau": "പലാവുൻ", "pcm": "നൈജീരിയൻ പിഡ്‌ഗിൻ", "peo": "പഴയ പേർഷ്യൻ", "phn": "ഫീനിഷ്യൻ", "pi": "പാലി", "pl": "പോളിഷ്", "pon": "പൊൻപിയൻ", "prg": "പ്രഷ്യൻ", "pro": "പഴയ പ്രൊവൻഷ്ൽ", "ps": "പഷ്‌തോ", "pt": "പോർച്ചുഗീസ്", "pt-BR": "ബ്രസീലിയൻ പോർച്ചുഗീസ്", "pt-PT": "യൂറോപ്യൻ പോർച്ചുഗീസ്", "qu": "ക്വെച്ചുവ", "quc": "ക്വിച്ചെ", "raj": "രാജസ്ഥാനി", "rap": "രാപനൂയി", "rar": "രാരോടോങ്കൻ", "rm": "റൊമാഞ്ച്", "rn": "റുണ്ടി", "ro": "റൊമാനിയൻ", "ro-MD": "മോൾഡാവിയൻ", "rof": "റോംബോ", "rom": "റൊമാനി", "root": "മൂലഭാഷ", "ru": "റഷ്യൻ", "rup": "ആരോമാനിയൻ", "rw": "കിന്യാർവാണ്ട", "rwk": "റുവാ", "sa": "സംസ്‌കൃതം", "sad": "സാൻഡവേ", "sah": "സാഖ", "sam": "സമരിയാക്കാരുടെ അരമായ", "saq": "സംബുരു", "sas": "സസാക്", "sat": "സന്താലി", "sba": "ഗംബായ്", "sbp": "സംഗു", "sc": "സർഡിനിയാൻ", "scn": "സിസിലിയൻ", "sco": "സ്കോട്സ്", "sd": "സിന്ധി", "sdh": "തെക്കൻ കുർദ്ദിഷ്", "se": "വടക്കൻ സമി", "see": "സെനേക", "seh": "സേന", "sel": "സെൽകപ്", "ses": "കൊയ്റാബൊറോ സെന്നി", "sg": "സാംഗോ", "sga": "പഴയ ഐറിഷ്", "sh": "സെർബോ-ക്രൊയേഷ്യൻ", "shi": "താച്ചലിറ്റ്", "shn": "ഷാൻ", "shu": "ചാഡിയൻ അറബി", "si": "സിംഹള", "sid": "സിഡാമോ", "sk": "സ്ലോവാക്", "sl": "സ്ലോവേനിയൻ", "sm": "സമോവൻ", "sma": "തെക്കൻ സമി", "smj": "ലൂലീ സമി", "smn": "ഇനാരി സമി", "sms": "സ്കോൾട്ട് സമി", "sn": "ഷോണ", "snk": "സോണിൻകെ", "so": "സോമാലി", "sog": "സോജിഡിയൻ", "sq": "അൽബേനിയൻ", "sr": "സെർബിയൻ", "srn": "ശ്രാനൻ ഡോങ്കോ", "srr": "സെറർ", "ss": "സ്വാറ്റി", "ssy": "സാഹോ", "st": "തെക്കൻ സോതോ", "su": "സുണ്ടാനീസ്", "suk": "സുകുമ", "sus": "സുസു", "sux": "സുമേരിയൻ", "sv": "സ്വീഡിഷ്", "sw": "സ്വാഹിലി", "sw-CD": "കോംഗോ സ്വാഹിലി", "swb": "കൊമോറിയൻ", "syc": "പുരാതന സുറിയാനിഭാഷ", "syr": "സുറിയാനി", "ta": "തമിഴ്", "te": "തെലുങ്ക്", "tem": "ടിംനേ", "teo": "ടെസോ", "ter": "ടെറേനോ", "tet": "ടെറ്റും", "tg": "താജിക്", "th": "തായ്", "ti": "ടൈഗ്രിന്യ", "tig": "ടൈഗ്രി", "tiv": "ടിവ്", "tk": "തുർക്‌മെൻ", "tkl": "ടൊക്കേലൗ", "tl": "തഗാലോഗ്", "tlh": "ക്ലിംഗോൺ", "tli": "ലിംഗ്വിറ്റ്", "tmh": "ടമഷേക്", "tn": "സ്വാന", "to": "ടോംഗൻ", "tog": "ന്യാസാ ഡോങ്ക", "tpi": "ടോക് പിസിൻ", "tr": "ടർക്കിഷ്", "trv": "തരോക്കോ", "ts": "സോംഗ", "tsi": "സിംഷ്യൻ", "tt": "ടാട്ടർ", "tum": "ടുംബുക", "tvl": "ടുവാലു", "tw": "ട്വി", "twq": "ടസവാക്ക്", "ty": "താഹിതിയൻ", "tyv": "തുവിനിയൻ", "tzm": "മധ്യ അറ്റ്‌ലസ് ടമാസൈറ്റ്", "udm": "ഉഡ്മുർട്ട്", "ug": "ഉയ്ഘുർ", "uga": "ഉഗറിട്ടിക്", "uk": "ഉക്രേനിയൻ", "umb": "ഉംബുന്ദു", "ur": "ഉറുദു", "uz": "ഉസ്‌ബെക്ക്", "vai": "വൈ", "ve": "വെന്ദ", "vi": "വിയറ്റ്നാമീസ്", "vo": "വോളാപുക്", "vot": "വോട്ടിക്", "vun": "വുൻജോ", "wa": "വല്ലൂൺ", "wae": "വാൾസർ", "wal": "വൊലൈറ്റ", "war": "വാരേയ്", "was": "വാഷൊ", "wbp": "വൂൾപിരി", "wo": "വൊളോഫ്", "wuu": "വു ചൈനീസ്", "xal": "കൽമൈക്", "xh": "ഖോസ", "xog": "സോഗോ", "yao": "യാവോ", "yap": "യെപ്പീസ്", "yav": "യാംഗ്ബെൻ", "ybb": "യംബ", "yi": "യിദ്ദിഷ്", "yo": "യൊറൂബാ", "yue": "കാന്റണീസ്", "za": "സ്വാംഗ്", "zap": "സാപ്പോടെക്", "zbl": "ബ്ലിസ്സിംബൽസ്", "zen": "സെനഗ", "zgh": "സ്റ്റാൻഡേർഡ് മൊറോക്കൻ റ്റാമസിയറ്റ്", "zh": "ചൈനീസ്", "zh-Hans": "ലളിതമാക്കിയ ചൈനീസ്", "zh-Hant": "പരമ്പരാഗത ചൈനീസ്", "zu": "സുലു", "zun": "സുനി", "zza": "സാസാ"}}, - "mn": {"rtl": false, "languageNames": {"aa": "афар", "ab": "абхаз", "ace": "ачин", "ada": "адангмэ", "ady": "адигэ", "af": "африкаанс", "agq": "агем", "ain": "айну", "ak": "акан", "ale": "алют", "alt": "өмнөд алтай", "am": "амхар", "an": "арагон", "anp": "ангик", "ar": "араб", "ar-001": "стандарт араб", "arn": "мапүчи", "arp": "арапаго", "as": "ассам", "asa": "асу", "ast": "астури", "av": "авар", "awa": "авадхи", "ay": "аймара", "az": "азербайжан", "ba": "башкир", "ban": "бали", "bas": "басаа", "be": "беларусь", "bem": "бемба", "bez": "бена", "bg": "болгар", "bho": "божпури", "bi": "бислам", "bin": "бини", "bla": "сиксика", "bm": "бамбара", "bn": "бенгал", "bo": "төвд", "br": "бретон", "brx": "бодо", "bs": "босни", "bug": "буги", "byn": "блин", "ca": "каталан", "ce": "чечень", "ceb": "себуано", "cgg": "чига", "ch": "чаморро", "chk": "чуук", "chm": "мари хэл", "cho": "чоктау", "chr": "чероки", "chy": "чэенн", "ckb": "төв курд", "co": "корсик", "crs": "сеселва креол франц", "cs": "чех", "cu": "сүмийн славян", "cv": "чуваш", "cy": "уэльс", "da": "дани", "dak": "дакота", "dar": "даргва", "dav": "тайта", "de": "герман", "de-AT": "австри-герман", "de-CH": "швейцарь-герман", "dgr": "догриб", "dje": "зарма", "dsb": "доод сорби", "dua": "дуала", "dv": "дивехи", "dyo": "жола-фони", "dz": "зонха", "dzg": "дазага", "ebu": "эмбу", "ee": "эвэ", "efi": "эфик", "eka": "экажук", "el": "грек", "en": "англи", "en-AU": "австрали-англи", "en-CA": "канад-англи", "en-GB": "британи-англи", "en-US": "америк-англи", "eo": "эсперанто", "es": "испани", "es-419": "испани хэл (Латин Америк)", "es-ES": "испани хэл (Европ)", "es-MX": "испани хэл (Мексик)", "et": "эстони", "eu": "баск", "ewo": "эвондо", "fa": "перс", "ff": "фула", "fi": "фин", "fil": "филипино", "fj": "фижи", "fo": "фарер", "fon": "фон", "fr": "франц", "fr-CA": "канад-франц", "fr-CH": "швейцари-франц", "fur": "фриулан", "fy": "баруун фриз", "ga": "ирланд", "gaa": "га", "gag": "гагуз", "gd": "шотландын гел", "gez": "гийз", "gil": "гилберт", "gl": "галего", "gn": "гуарани", "gor": "горонтало", "gsw": "швейцари-герман", "gu": "гужарати", "guz": "гузы", "gv": "манкс", "gwi": "гвичин", "ha": "хауса", "haw": "хавай", "he": "еврей", "hi": "хинди", "hil": "хилигайнон", "hmn": "хмонг", "hr": "хорват", "hsb": "дээд сорби", "ht": "Гаитийн креол", "hu": "мажар", "hup": "хупа", "hy": "армен", "hz": "хереро", "ia": "интерлингво", "iba": "ибан", "ibb": "ибибио", "id": "индонези", "ie": "нэгдмэл хэл", "ig": "игбо", "ii": "сычуань и", "ilo": "илоко", "inh": "ингуш", "io": "идо", "is": "исланд", "it": "итали", "iu": "инуктитут", "ja": "япон", "jbo": "ложбан", "jgo": "нгомба", "jmc": "мачамэ", "jv": "ява", "ka": "гүрж", "kab": "кабиле", "kac": "качин", "kaj": "жжу", "kam": "камба", "kbd": "кабардин", "kcg": "тяп", "kde": "маконде", "kea": "кабүвердиану", "kfo": "коро", "kha": "каси", "khq": "койра чини", "ki": "кикуюү", "kj": "куаньяма", "kk": "казах", "kkj": "како", "kl": "калалисут", "kln": "каленжин", "km": "кхмер", "kmb": "кимбунду", "kn": "каннада", "ko": "солонгос", "koi": "коми-пермяк", "kok": "конкани", "kpe": "кпелле", "kr": "канури", "krc": "карачай-балкар", "krl": "карель", "kru": "курук", "ks": "кашмир", "ksb": "шамбал", "ksf": "бафиа", "ksh": "кёльш", "ku": "курд", "kum": "кумук", "kv": "коми", "kw": "корн", "ky": "киргиз", "la": "латин", "lad": "ладин", "lag": "ланги", "lb": "люксембург", "lez": "лезги", "lg": "ганда", "li": "лимбург", "lkt": "лакота", "ln": "лингала", "lo": "лаос", "loz": "лози", "lrc": "хойд лури", "lt": "литва", "lu": "луба-катанга", "lua": "луба-лулуа", "lun": "лунда", "luo": "луо", "lus": "мизо", "luy": "луяа", "lv": "латви", "mad": "мадури хэл", "mag": "магахи", "mai": "май", "mak": "макасар", "mas": "масай", "mdf": "мокша", "men": "менде", "mer": "меру", "mfe": "морисен", "mg": "малагаси", "mgh": "макува-мито", "mgo": "мета", "mh": "маршалл", "mi": "маори", "mic": "микмак", "min": "минангкабау", "mk": "македон", "ml": "малаялам", "mn": "монгол", "mni": "манипури", "moh": "мохаук", "mos": "мосси", "mr": "марати", "ms": "малай", "mt": "малта", "mua": "мунданг", "mus": "крик", "mwl": "меранди", "my": "бирм", "myv": "эрзя", "mzn": "мазандерани", "na": "науру", "nap": "неаполитан", "naq": "нама", "nb": "норвегийн букмол", "nd": "хойд ндебеле", "nds-NL": "бага саксон", "ne": "балба", "new": "невари", "ng": "ндонга", "nia": "ниас хэл", "niu": "ниуэ", "nl": "нидерланд", "nl-BE": "фламанд", "nmg": "квазио", "nn": "норвегийн нинорск", "nnh": "нгиембүүн", "no": "норвеги", "nog": "ногаи", "nqo": "нко", "nr": "өмнөд ндебеле", "nso": "хойд сото", "nus": "нуер", "nv": "навахо", "ny": "нянжа", "nyn": "нянколе", "oc": "окситан", "om": "оромо", "or": "ория", "os": "оссетин", "pa": "панжаби", "pag": "пангасин", "pam": "пампанга", "pap": "папьяменто", "pau": "палау", "pcm": "нигерийн пиджин", "pl": "польш", "prg": "прусс", "ps": "пушту", "pt": "португал", "pt-BR": "португал хэл (Бразил)", "pt-PT": "португал хэл (Европ)", "qu": "кечуа", "quc": "киче", "rap": "рапануи", "rar": "раротонг", "rm": "романш", "rn": "рунди", "ro": "румын", "ro-MD": "молдав", "rof": "ромбо", "root": "рут", "ru": "орос", "rup": "ароманы", "rw": "киньяруанда", "rwk": "рва", "sa": "санскрит", "sad": "сандавэ", "sah": "саха", "saq": "самбүрү", "sat": "сантали", "sba": "нгамбай", "sbp": "сангү", "sc": "сардин", "scn": "сицил", "sco": "шотланд", "sd": "синдхи", "se": "хойд сами", "seh": "сена", "ses": "кёраборо сени", "sg": "санго", "sh": "хорватын серб", "shi": "тачелхит", "shn": "шань", "si": "синхала", "sk": "словак", "sl": "словени", "sm": "самоа", "sma": "өмнөд сами", "smj": "люле сами", "smn": "инари сами", "sms": "сколт сами", "sn": "шона", "snk": "сонинке", "so": "сомали", "sq": "албани", "sr": "серб", "srn": "сранан тонго", "ss": "свати", "ssy": "сахо", "st": "сесото", "su": "сундан", "suk": "сукума", "sv": "швед", "sw": "свахили", "sw-CD": "конгогийн свахили", "swb": "комори", "syr": "сири", "ta": "тамил", "te": "тэлүгү", "tem": "тимн", "teo": "тэсо", "tet": "тетум", "tg": "тажик", "th": "тай", "ti": "тигринья", "tig": "тигр", "tk": "туркмен", "tlh": "клингон", "tn": "цвана", "to": "тонга", "tpi": "ток писин", "tr": "турк", "trv": "тароко", "ts": "цонга", "tt": "татар", "tum": "тумбула", "tvl": "тувалу", "tw": "тви", "twq": "тасавак", "ty": "таити", "tyv": "тува", "tzm": "Төв Атласын тамазайт", "udm": "удмурт", "ug": "уйгур", "uk": "украин", "umb": "умбунду", "ur": "урду", "uz": "узбек", "vai": "вай", "ve": "венда", "vi": "вьетнам", "vo": "волапюк", "vun": "вунжо", "wa": "уоллун", "wae": "уолсэр", "wal": "уоллайтта", "war": "варай", "wo": "волоф", "xal": "халимаг", "xh": "хоса", "xog": "сога", "yav": "янгбен", "ybb": "емба", "yi": "иддиш", "yo": "ёруба", "yue": "кантон", "zgh": "Мороккогийн стандарт тамазайт", "zh": "хятад", "zh-Hans": "хялбаршуулсан хятад", "zh-Hant": "уламжлалт хятад", "zu": "зулу", "zun": "зуни", "zza": "заза"}}, - "ms": {"rtl": false, "languageNames": {"aa": "Afar", "ab": "Abkhazia", "ace": "Aceh", "ach": "Akoli", "ada": "Adangme", "ady": "Adyghe", "ae": "Avestan", "aeb": "Arab Tunisia", "af": "Afrikaans", "agq": "Aghem", "ain": "Ainu", "ak": "Akan", "ale": "Aleut", "alt": "Altai Selatan", "am": "Amharic", "an": "Aragon", "anp": "Angika", "ar": "Arab", "ar-001": "Arab Standard Moden", "arn": "Mapuche", "arp": "Arapaho", "arq": "Arab Algeria", "ars": "Arab Najdi", "ary": "Arab Maghribi", "arz": "Arab Mesir", "as": "Assam", "asa": "Asu", "ast": "Asturia", "av": "Avaric", "awa": "Awadhi", "ay": "Aymara", "az": "Azerbaijan", "ba": "Bashkir", "bal": "Baluchi", "ban": "Bali", "bas": "Basaa", "bax": "Bamun", "bbj": "Ghomala", "be": "Belarus", "bej": "Beja", "bem": "Bemba", "bez": "Bena", "bfd": "Bafut", "bg": "Bulgaria", "bgn": "Balochi Barat", "bho": "Bhojpuri", "bi": "Bislama", "bin": "Bini", "bkm": "Kom", "bla": "Siksika", "bm": "Bambara", "bn": "Benggala", "bo": "Tibet", "bpy": "Bishnupriya", "br": "Breton", "brh": "Brahui", "brx": "Bodo", "bs": "Bosnia", "bss": "Akoose", "bua": "Buriat", "bug": "Bugis", "bum": "Bulu", "byn": "Blin", "byv": "Medumba", "ca": "Catalonia", "cay": "Cayuga", "ccp": "Chakma", "ce": "Chechen", "ceb": "Cebuano", "cgg": "Chiga", "ch": "Chamorro", "chk": "Chukese", "chm": "Mari", "cho": "Choctaw", "chr": "Cherokee", "chy": "Cheyenne", "ckb": "Kurdi Sorani", "co": "Corsica", "cop": "Coptic", "crh": "Turki Krimea", "crs": "Perancis Seselwa Creole", "cs": "Czech", "cu": "Slavik Gereja", "cv": "Chuvash", "cy": "Wales", "da": "Denmark", "dak": "Dakota", "dar": "Dargwa", "dav": "Taita", "de": "Jerman", "de-AT": "Jerman Austria", "de-CH": "Jerman Halus Switzerland", "dgr": "Dogrib", "dje": "Zarma", "doi": "Dogri", "dsb": "Sorbian Rendah", "dua": "Duala", "dv": "Divehi", "dyo": "Jola-Fonyi", "dz": "Dzongkha", "dzg": "Dazaga", "ebu": "Embu", "ee": "Ewe", "efi": "Efik", "eka": "Ekajuk", "el": "Greek", "en": "Inggeris", "en-AU": "Inggeris Australia", "en-CA": "Inggeris Kanada", "en-GB": "Inggeris British", "en-US": "Inggeris AS", "eo": "Esperanto", "es": "Sepanyol", "es-419": "Sepanyol Amerika Latin", "es-ES": "Sepanyol Eropah", "es-MX": "Sepanyol Mexico", "et": "Estonia", "eu": "Basque", "ewo": "Ewondo", "fa": "Parsi", "ff": "Fulah", "fi": "Finland", "fil": "Filipina", "fj": "Fiji", "fo": "Faroe", "fon": "Fon", "fr": "Perancis", "fr-CA": "Perancis Kanada", "fr-CH": "Perancis Switzerland", "frc": "Perancis Cajun", "fur": "Friulian", "fy": "Frisian Barat", "ga": "Ireland", "gaa": "Ga", "gag": "Gagauz", "gan": "Cina Gan", "gba": "Gbaya", "gbz": "Zoroastrian Dari", "gd": "Scots Gaelic", "gez": "Geez", "gil": "Kiribati", "gl": "Galicia", "glk": "Gilaki", "gn": "Guarani", "gor": "Gorontalo", "grc": "Greek Purba", "gsw": "Jerman Switzerland", "gu": "Gujerat", "guz": "Gusii", "gv": "Manx", "gwi": "Gwichʼin", "ha": "Hausa", "hak": "Cina Hakka", "haw": "Hawaii", "he": "Ibrani", "hi": "Hindi", "hil": "Hiligaynon", "hmn": "Hmong", "hr": "Croatia", "hsb": "Sorbian Atas", "hsn": "Cina Xiang", "ht": "Haiti", "hu": "Hungary", "hup": "Hupa", "hy": "Armenia", "hz": "Herero", "ia": "Interlingua", "iba": "Iban", "ibb": "Ibibio", "id": "Indonesia", "ie": "Interlingue", "ig": "Igbo", "ii": "Sichuan Yi", "ilo": "Iloko", "inh": "Ingush", "io": "Ido", "is": "Iceland", "it": "Itali", "iu": "Inuktitut", "ja": "Jepun", "jbo": "Lojban", "jgo": "Ngomba", "jmc": "Machame", "jv": "Jawa", "ka": "Georgia", "kab": "Kabyle", "kac": "Kachin", "kaj": "Jju", "kam": "Kamba", "kbd": "Kabardia", "kbl": "Kanembu", "kcg": "Tyap", "kde": "Makonde", "kea": "Kabuverdianu", "kfo": "Koro", "kg": "Kongo", "kha": "Khasi", "khq": "Koyra Chiini", "khw": "Khowar", "ki": "Kikuya", "kj": "Kuanyama", "kk": "Kazakhstan", "kkj": "Kako", "kl": "Kalaallisut", "kln": "Kalenjin", "km": "Khmer", "kmb": "Kimbundu", "kn": "Kannada", "ko": "Korea", "koi": "Komi-Permyak", "kok": "Konkani", "kpe": "Kpelle", "kr": "Kanuri", "krc": "Karachay-Balkar", "krl": "Karelian", "kru": "Kurukh", "ks": "Kashmir", "ksb": "Shambala", "ksf": "Bafia", "ksh": "Colognian", "ku": "Kurdish", "kum": "Kumyk", "kv": "Komi", "kw": "Cornish", "ky": "Kirghiz", "la": "Latin", "lad": "Ladino", "lag": "Langi", "lah": "Lahnda", "lb": "Luxembourg", "lez": "Lezghian", "lg": "Ganda", "li": "Limburgish", "lkt": "Lakota", "ln": "Lingala", "lo": "Laos", "lou": "Kreol Louisiana", "loz": "Lozi", "lrc": "Luri Utara", "lt": "Lithuania", "lu": "Luba-Katanga", "lua": "Luba-Lulua", "lun": "Lunda", "luo": "Luo", "lus": "Mizo", "luy": "Luyia", "lv": "Latvia", "mad": "Madura", "maf": "Mafa", "mag": "Magahi", "mai": "Maithili", "mak": "Makasar", "mas": "Masai", "mde": "Maba", "mdf": "Moksha", "men": "Mende", "mer": "Meru", "mfe": "Morisyen", "mg": "Malagasy", "mgh": "Makhuwa-Meetto", "mgo": "Meta’", "mh": "Marshall", "mi": "Maori", "mic": "Micmac", "min": "Minangkabau", "mk": "Macedonia", "ml": "Malayalam", "mn": "Mongolia", "mni": "Manipuri", "moh": "Mohawk", "mos": "Mossi", "mr": "Marathi", "ms": "Melayu", "mt": "Malta", "mua": "Mundang", "mus": "Creek", "mwl": "Mirandese", "my": "Burma", "mye": "Myene", "myv": "Erzya", "mzn": "Mazanderani", "na": "Nauru", "nan": "Cina Min Nan", "nap": "Neapolitan", "naq": "Nama", "nb": "Bokmål Norway", "nd": "Ndebele Utara", "nds": "Jerman Rendah", "nds-NL": "Saxon Rendah", "ne": "Nepal", "new": "Newari", "ng": "Ndonga", "nia": "Nias", "niu": "Niu", "nl": "Belanda", "nl-BE": "Flemish", "nmg": "Kwasio", "nn": "Nynorsk Norway", "nnh": "Ngiemboon", "no": "Norway", "nog": "Nogai", "nqo": "N’ko", "nr": "Ndebele Selatan", "nso": "Sotho Utara", "nus": "Nuer", "nv": "Navajo", "ny": "Nyanja", "nyn": "Nyankole", "oc": "Occitania", "om": "Oromo", "or": "Odia", "os": "Ossete", "pa": "Punjabi", "pag": "Pangasinan", "pam": "Pampanga", "pap": "Papiamento", "pau": "Palauan", "pcm": "Nigerian Pidgin", "pl": "Poland", "prg": "Prusia", "ps": "Pashto", "pt": "Portugis", "pt-BR": "Portugis Brazil", "pt-PT": "Portugis Eropah", "qu": "Quechua", "quc": "Kʼicheʼ", "rap": "Rapanui", "rar": "Rarotonga", "rm": "Romansh", "rn": "Rundi", "ro": "Romania", "ro-MD": "Moldavia", "rof": "Rombo", "root": "Root", "ru": "Rusia", "rup": "Aromanian", "rw": "Kinyarwanda", "rwk": "Rwa", "sa": "Sanskrit", "sad": "Sandawe", "sah": "Sakha", "saq": "Samburu", "sat": "Santali", "sba": "Ngambay", "sbp": "Sangu", "sc": "Sardinia", "scn": "Sicili", "sco": "Scots", "sd": "Sindhi", "sdh": "Kurdish Selatan", "se": "Sami Utara", "see": "Seneca", "seh": "Sena", "ses": "Koyraboro Senni", "sg": "Sango", "sh": "SerboCroatia", "shi": "Tachelhit", "shn": "Shan", "shu": "Arab Chadian", "si": "Sinhala", "sk": "Slovak", "sl": "Slovenia", "sm": "Samoa", "sma": "Sami Selatan", "smj": "Lule Sami", "smn": "Inari Sami", "sms": "Skolt Sami", "sn": "Shona", "snk": "Soninke", "so": "Somali", "sq": "Albania", "sr": "Serbia", "srn": "Sranan Tongo", "ss": "Swati", "ssy": "Saho", "st": "Sotho Selatan", "su": "Sunda", "suk": "Sukuma", "sv": "Sweden", "sw": "Swahili", "sw-CD": "Congo Swahili", "swb": "Comoria", "syr": "Syriac", "ta": "Tamil", "te": "Telugu", "tem": "Timne", "teo": "Teso", "tet": "Tetum", "tg": "Tajik", "th": "Thai", "ti": "Tigrinya", "tig": "Tigre", "tk": "Turkmen", "tlh": "Klingon", "tly": "Talysh", "tn": "Tswana", "to": "Tonga", "tpi": "Tok Pisin", "tr": "Turki", "trv": "Taroko", "ts": "Tsonga", "tt": "Tatar", "tum": "Tumbuka", "tvl": "Tuvalu", "tw": "Twi", "twq": "Tasawaq", "ty": "Tahiti", "tyv": "Tuvinian", "tzm": "Tamazight Atlas Tengah", "udm": "Udmurt", "ug": "Uyghur", "uk": "Ukraine", "umb": "Umbundu", "ur": "Urdu", "uz": "Uzbekistan", "vai": "Vai", "ve": "Venda", "vi": "Vietnam", "vo": "Volapük", "vun": "Vunjo", "wa": "Walloon", "wae": "Walser", "wal": "Wolaytta", "war": "Waray", "wbp": "Warlpiri", "wo": "Wolof", "wuu": "Cina Wu", "xal": "Kalmyk", "xh": "Xhosa", "xog": "Soga", "yav": "Yangben", "ybb": "Yemba", "yi": "Yiddish", "yo": "Yoruba", "yue": "Kantonis", "zgh": "Tamazight Maghribi Standard", "zh": "Cina", "zh-Hans": "Cina Ringkas", "zh-Hant": "Cina Tradisional", "zu": "Zulu", "zun": "Zuni", "zza": "Zaza"}}, - "ne": {"rtl": false, "languageNames": {"aa": "अफार", "ab": "अब्खाजियाली", "ace": "अचाइनिज", "ach": "अकोली", "ada": "अदाङमे", "ady": "अदिघे", "ae": "अवेस्तान", "af": "अफ्रिकान्स", "afh": "अफ्रिहिली", "agq": "आघेम", "ain": "अइनु", "ak": "आकान", "akk": "अक्कादियाली", "akz": "अलाबामा", "ale": "अलेउट", "aln": "घेग अल्बानियाली", "alt": "दक्षिणी आल्टाइ", "am": "अम्हारिक", "an": "अरागोनी", "ang": "पुरातन अङ्ग्रेजी", "anp": "अङ्गिका", "ar": "अरबी", "ar-001": "आधुनिक मानक अरबी", "arc": "अरामाइक", "arn": "मापुचे", "aro": "अराओना", "arp": "अरापाहो", "arq": "अल्जेरियाली अरबी", "arw": "अरावाक", "ary": "मोरोक्कोली अरबी", "arz": "इजिप्ट अरबी", "as": "आसामी", "asa": "आसु", "ase": "अमेरिकी साङ्केतिक भाषा", "ast": "अस्टुरियाली", "av": "अवारिक", "avk": "कोटावा", "awa": "अवधी", "ay": "ऐमारा", "az": "अजरबैजानी", "ba": "बास्किर", "bal": "बालुची", "ban": "बाली", "bar": "बाभारियाली", "bas": "बासा", "bax": "बामुन", "bbc": "बाताक तोबा", "bbj": "घोमाला", "be": "बेलारुसी", "bej": "बेजा", "bem": "बेम्बा", "bew": "बेटावी", "bez": "बेना", "bfd": "बाफुट", "bfq": "बडागा", "bg": "बुल्गेरियाली", "bgn": "पश्चिम बालोची", "bho": "भोजपुरी", "bi": "बिस्लाम", "bik": "बिकोल", "bin": "बिनी", "bjn": "बन्जार", "bkm": "कोम", "bla": "सिक्सिका", "bm": "बाम्बारा", "bn": "बंगाली", "bo": "तिब्बती", "bpy": "विष्णुप्रिया", "bqi": "बाख्तिआरी", "br": "ब्रेटन", "bra": "ब्रज", "brh": "ब्राहुइ", "brx": "बोडो", "bs": "बोस्नियाली", "bss": "अकुज", "bua": "बुरिआत", "bug": "बुगिनियाली", "bum": "बुलु", "byn": "ब्लिन", "byv": "मेडुम्बा", "ca": "क्याटालन", "cad": "काड्डो", "car": "क्यारिब", "cay": "कायुगा", "cch": "अट्साम", "ce": "चेचेन", "ceb": "सेबुआनो", "cgg": "चिगा", "ch": "चामोर्रो", "chb": "चिब्चा", "chg": "चागाटाई", "chk": "चुकेसे", "chm": "मारी", "chn": "चिनुक जार्गन", "cho": "चोक्टाव", "chp": "चिपेव्यान", "chr": "चेरोकी", "chy": "चेयेन्ने", "ckb": "मध्यवर्ती कुर्दिस", "co": "कोर्सिकन", "cop": "कोप्टिक", "cps": "कापिज्नोन", "cr": "क्री", "crh": "क्रिमियाली तुर्क", "crs": "सेसेल्वा क्रिओल फ्रान्सेली", "cs": "चेक", "csb": "कासुवियन", "cu": "चर्च स्लाभिक", "cv": "चुभास", "cy": "वेल्श", "da": "डेनिस", "dak": "डाकोटा", "dar": "दार्ग्वा", "dav": "ताइता", "de": "जर्मन", "de-AT": "अस्ट्रिएन जर्मन", "de-CH": "स्वीस हाई जर्मन", "del": "देलावर", "dgr": "दोग्रिब", "din": "दिन्का", "dje": "जर्मा", "doi": "डोगरी", "dsb": "तल्लो सोर्बियन", "dtp": "केन्द्रीय दुसुन", "dua": "दुवाला", "dum": "मध्य डच", "dv": "दिबेही", "dyo": "जोला-फोनिल", "dyu": "द्युला", "dz": "जोङ्खा", "dzg": "दाजागा", "ebu": "एम्बु", "ee": "इवी", "efi": "एफिक", "egl": "एमिलियाली", "egy": "पुरातन इजिप्टी", "eka": "एकाजुक", "el": "ग्रीक", "elx": "एलामाइट", "en": "अङ्ग्रेजी", "en-AU": "अस्ट्रेलियाली अङ्ग्रेजी", "en-CA": "क्यानाडेली अङ्ग्रेजी", "en-GB": "बेलायती अङ्ग्रेजी", "en-US": "अमेरिकी अङ्ग्रेजी", "enm": "मध्य अङ्ग्रेजी", "eo": "एस्पेरान्तो", "es": "स्पेनी", "es-419": "ल्याटिन अमेरिकी स्पेनी", "es-ES": "युरोपेली स्पेनी", "es-MX": "मेक्सिकन स्पेनी", "esu": "केन्द्रीय युपिक", "et": "इस्टोनियन", "eu": "बास्क", "ewo": "इवोन्डो", "ext": "एक्सट्रेमादुराली", "fa": "फारसी", "fan": "फाङ", "fat": "फान्टी", "ff": "फुलाह", "fi": "फिनिस", "fil": "फिलिपिनी", "fj": "फिजियन", "fo": "फारोज", "fon": "फोन", "fr": "फ्रान्सेली", "fr-CA": "क्यानेडाली फ्रान्सेली", "fr-CH": "स्विस फ्रेन्च", "frc": "काहुन फ्रान्सेली", "frm": "मध्य फ्रान्सेली", "fro": "पुरातन फ्रान्सेली", "frp": "अर्पितान", "frr": "उत्तरी फ्रिजी", "frs": "पूर्वी फ्रिसियाली", "fur": "फ्रिउलियाली", "fy": "पश्चिमी फ्रिसियन", "ga": "आइरिस", "gaa": "गा", "gag": "गगाउज", "gan": "गान चिनियाँ", "gay": "गायो", "gba": "ग्बाया", "gd": "स्कटिस गाएलिक", "gez": "गिज", "gil": "गिल्बर्टी", "gl": "गलिसियाली", "glk": "गिलाकी", "gmh": "मध्य उच्च जर्मन", "gn": "गुवारानी", "goh": "पुरातन उच्च जर्मन", "gom": "गोवा कोन्कानी", "gon": "गोन्डी", "gor": "गोरोन्टालो", "got": "गोथिक", "grb": "ग्रेबो", "grc": "पुरातन ग्रिक", "gsw": "स्वीस जर्मन", "gu": "गुजराती", "gur": "फ्राफ्रा", "guz": "गुसी", "gv": "मान्क्स", "gwi": "गुइचिन", "ha": "हाउसा", "hai": "हाइदा", "hak": "हक्का चिनियाँ", "haw": "हवाइयन", "he": "हिब्रु", "hi": "हिन्दी", "hif": "फिजी हिन्दी", "hil": "हिलिगायनोन", "hit": "हिट्टिटे", "hmn": "हमोङ", "ho": "हिरी मोटु", "hr": "क्रोयसियाली", "hsb": "माथिल्लो सोर्बियन", "hsn": "जियाङ चिनियाँ", "ht": "हैटियाली क्रियोल", "hu": "हङ्गेरियाली", "hup": "हुपा", "hy": "आर्मेनियाली", "hz": "हेरेरो", "ia": "इन्टर्लिङ्गुआ", "iba": "इबान", "ibb": "इबिबियो", "id": "इन्डोनेसियाली", "ie": "इन्टरलिङ्ग्वे", "ig": "इग्बो", "ii": "सिचुआन यि", "ik": "इनुपिआक्", "ilo": "इयोको", "inh": "इन्गस", "io": "इडो", "is": "आइसल्यान्डियाली", "it": "इटालेली", "iu": "इनुक्टिटुट", "izh": "इन्ग्रियाली", "ja": "जापानी", "jam": "जमैकाली क्रेओले अङ्ग्रेजी", "jbo": "लोज्बान", "jgo": "न्गोम्बा", "jmc": "माचामे", "jpr": "जुडियो-फारसी", "jrb": "जुडियो-अरबी", "jut": "जुटिस", "jv": "जाभानी", "ka": "जर्जियाली", "kaa": "कारा-काल्पाक", "kab": "काबिल", "kac": "काचिन", "kaj": "ज्जु", "kam": "काम्बा", "kaw": "कावी", "kbd": "काबार्दियाली", "kbl": "कानेम्बु", "kcg": "टुआप", "kde": "माकोन्डे", "kea": "काबुभेर्डियानु", "ken": "केनयाङ", "kfo": "कोरो", "kg": "कोङ्गो", "kgp": "काइनगाङ", "kha": "खासी", "kho": "खोटानी", "khq": "कोयरा चिनी", "khw": "खोवार", "ki": "किकुयु", "kiu": "किर्मान्जकी", "kj": "कुआन्यामा", "kk": "काजाख", "kkj": "काको", "kl": "कालालिसुट", "kln": "कालेन्जिन", "km": "खमेर", "kmb": "किम्बुन्डु", "kn": "कन्नाडा", "ko": "कोरियाली", "koi": "कोमी-पर्म्याक", "kok": "कोन्कानी", "kos": "कोस्राली", "kpe": "क्पेल्ले", "kr": "कानुरी", "krc": "काराचाय-बाल्कर", "kri": "क्रिओ", "krj": "किनाराय-ए", "krl": "करेलियन", "kru": "कुरुख", "ks": "कास्मिरी", "ksb": "शाम्बाला", "ksf": "बाफिया", "ksh": "कोलोग्नियाली", "ku": "कुर्दी", "kum": "कुमिक", "kut": "कुतेनाइ", "kv": "कोमी", "kw": "कोर्निस", "ky": "किर्गिज", "la": "ल्याटिन", "lad": "लाडिनो", "lag": "लाङ्गी", "lah": "लाहन्डा", "lam": "लाम्बा", "lb": "लक्जेम्बर्गी", "lez": "लाज्घियाली", "lfn": "लिङ्गुवा फ्राङ्का नोभा", "lg": "गान्डा", "li": "लिम्बुर्गी", "lij": "लिगुरियाली", "liv": "लिभोनियाली", "lkt": "लाकोता", "lmo": "लोम्बार्ड", "ln": "लिङ्गाला", "lo": "लाओ", "lol": "मोङ्गो", "loz": "लोजी", "lrc": "उत्तरी लुरी", "lt": "लिथुआनियाली", "ltg": "लाट्गाली", "lu": "लुबा-काताङ्गा", "lua": "लुबा-लुलुआ", "lui": "लुइसेनो", "lun": "लुन्डा", "luo": "लुओ", "lus": "मिजो", "luy": "लुइया", "lv": "लात्भियाली", "lzh": "साहित्यिक चिनियाँ", "lzz": "लाज", "mad": "मादुरेसे", "maf": "माफा", "mag": "मगधी", "mai": "मैथिली", "mak": "माकासार", "man": "मान्दिङो", "mas": "मसाई", "mde": "माबा", "mdf": "मोक्ष", "mdr": "मन्दर", "men": "मेन्डे", "mer": "मेरू", "mfe": "मोरिसेन", "mg": "मलागासी", "mga": "मध्य आयरिस", "mgh": "माखुवा-मिट्टो", "mgo": "मेटा", "mh": "मार्साली", "mi": "माओरी", "mic": "मिकमाक", "min": "मिनाङकाबाउ", "mk": "म्यासेडोनियन", "ml": "मलयालम", "mn": "मङ्गोलियाली", "mnc": "मान्चु", "mni": "मनिपुरी", "moh": "मोहक", "mos": "मोस्सी", "mr": "मराठी", "ms": "मलाय", "mt": "माल्टिज", "mua": "मुन्डाङ", "mus": "क्रिक", "mwl": "मिरान्डी", "mwr": "माडवारी", "mwv": "मेन्टावाई", "my": "बर्मेली", "mye": "म्येने", "myv": "इर्ज्या", "mzn": "मजानडेरानी", "na": "नाउरू", "nan": "मिन नान चिनियाँ", "nap": "नेपोलिटान", "naq": "नामा", "nb": "नर्वेली बोकमाल", "nd": "उत्तरी न्डेबेले", "nds": "तल्लो जर्मन", "nds-NL": "तल्लो साक्सन", "ne": "नेपाली", "new": "नेवारी", "ng": "न्दोन्गा", "nia": "नियास", "niu": "निउएन", "njo": "अओ नागा", "nl": "डच", "nl-BE": "फ्लेमिस", "nmg": "क्वासियो", "nn": "नर्वेली नाइनोर्स्क", "nnh": "न्गिएम्बुन", "no": "नर्वेली", "nog": "नोगाइ", "non": "पुरानो नोर्से", "nov": "नोभियल", "nqo": "नको", "nr": "दक्षिण न्देबेले", "nso": "उत्तरी सोथो", "nus": "नुएर", "nv": "नाभाजो", "nwc": "परम्परागत नेवारी", "ny": "न्यान्जा", "nym": "न्यामवेजी", "nyn": "न्यान्कोल", "nyo": "न्योरो", "nzi": "नजिमा", "oc": "अक्सिटन", "oj": "ओजिब्वा", "om": "ओरोमो", "or": "उडिया", "os": "अोस्सेटिक", "osa": "ओसागे", "ota": "अटोमन तुर्की", "pa": "पंजाबी", "pag": "पाङ्गासिनान", "pal": "पाहलावी", "pam": "पामपाङ्गा", "pap": "पापियामेन्तो", "pau": "पालाउवाली", "pcd": "पिकार्ड", "pcm": "नाइजेरियाली पिड्जिन", "pdc": "पेन्सिलभानियाली जर्मन", "peo": "पुरातन फारसी", "pfl": "पालाटिन जर्मन", "phn": "फोनिसियाली", "pi": "पाली", "pl": "पोलिस", "pms": "पिएडमोन्तेसे", "pnt": "पोन्टिक", "prg": "प्रसियाली", "pro": "पुरातन प्रोभेन्काल", "ps": "पास्तो", "pt": "पोर्तुगी", "pt-BR": "ब्राजिली पोर्तुगी", "pt-PT": "युरोपेली पोर्तुगी", "qu": "क्वेचुवा", "quc": "किचे", "qug": "चिम्बोराजो उच्चस्थान किचुआ", "raj": "राजस्थानी", "rap": "रापानुई", "rar": "रारोटोङ्गान", "rm": "रोमानिस", "rn": "रुन्डी", "ro": "रोमानियाली", "ro-MD": "मोल्डाभियाली", "rof": "रोम्बो", "root": "रुट", "ru": "रसियाली", "rup": "अरोमानीयाली", "rw": "किन्यारवान्डा", "rwk": "र्‌वा", "sa": "संस्कृत", "sad": "सान्डेअ", "sah": "साखा", "saq": "साम्बुरू", "sat": "सान्ताली", "sba": "न्गामबाय", "sbp": "साङ्गु", "sc": "सार्डिनियाली", "scn": "सिसिलियाली", "sco": "स्कट्स", "sd": "सिन्धी", "sdh": "दक्षिणी कुर्दिश", "se": "उत्तरी सामी", "seh": "सेना", "ses": "कोयराबोरो सेन्नी", "sg": "साङ्गो", "sga": "पुरातन आयरीस", "shi": "टाचेल्हिट", "shn": "शान", "shu": "चाड अरबी", "si": "सिन्हाली", "sk": "स्लोभाकियाली", "sl": "स्लोभेनियाली", "sli": "तल्लो सिलेसियाली", "sm": "सामोआ", "sma": "दक्षिणी सामी", "smj": "लुले सामी", "smn": "इनारी सामी", "sms": "स्कोइट सामी", "sn": "शोना", "snk": "सोनिन्के", "so": "सोमाली", "sq": "अल्बानियाली", "sr": "सर्बियाली", "srn": "स्रानान टोङ्गो", "ss": "स्वाती", "ssy": "साहो", "st": "दक्षिणी सोथो", "su": "सुडानी", "suk": "सुकुमा", "sus": "सुसू", "sux": "सुमेरियाली", "sv": "स्विडिस", "sw": "स्वाहिली", "sw-CD": "कङ्गो स्वाहिली", "swb": "कोमोरी", "syc": "परम्परागत सिरियाक", "syr": "सिरियाक", "ta": "तामिल", "te": "तेलुगु", "tem": "टिम्ने", "teo": "टेसो", "tet": "टेटुम", "tg": "ताजिक", "th": "थाई", "ti": "टिग्रिन्या", "tig": "टिग्रे", "tk": "टर्कमेन", "tlh": "क्लिङ्गन", "tn": "ट्स्वाना", "to": "टोङ्गन", "tog": "न्यास टोङ्गा", "tpi": "टोक पिसिन", "tr": "टर्किश", "trv": "टारोको", "ts": "ट्सोङ्गा", "tt": "तातार", "ttt": "मुस्लिम टाट", "tum": "टुम्बुका", "tvl": "टुभालु", "twq": "तासावाक", "ty": "टाहिटियन", "tyv": "टुभिनियाली", "tzm": "केन्द्रीय एट्लास टामाजिघट", "udm": "उड्मुर्ट", "ug": "उइघुर", "uk": "युक्रेनी", "umb": "उम्बुन्डी", "ur": "उर्दु", "uz": "उज्बेकी", "vai": "भाइ", "ve": "भेन्डा", "vi": "भियतनामी", "vmf": "मुख्य-फ्राङ्कोनियाली", "vo": "भोलापिक", "vun": "भुन्जो", "wa": "वाल्लुन", "wae": "वाल्सर", "wal": "वोलेट्टा", "war": "वारे", "wbp": "वार्ल्पिरी", "wo": "वुलुफ", "xal": "काल्मिक", "xh": "खोसा", "xmf": "मिनग्रेलियाली", "xog": "सोगा", "yav": "याङ्बेन", "ybb": "येम्बा", "yi": "यिद्दिस", "yo": "योरूवा", "yrl": "न्हिनगातु", "yue": "क्यान्टोनिज", "zbl": "ब्लिससिम्बोल्स", "zgh": "मानक मोरोक्कोन तामाजिघट", "zh": "चिनियाँ", "zh-Hans": "सरलिकृत चिनियाँ", "zh-Hant": "परम्परागत चिनियाँ", "zu": "जुलु", "zun": "जुनी", "zza": "जाजा"}}, - "nl": {"rtl": false, "languageNames": {"aa": "Afar", "ab": "Abchazisch", "ace": "Atjehs", "ach": "Akoli", "ada": "Adangme", "ady": "Adygees", "ae": "Avestisch", "aeb": "Tunesisch Arabisch", "af": "Afrikaans", "afh": "Afrihili", "agq": "Aghem", "ain": "Aino", "ak": "Akan", "akk": "Akkadisch", "akz": "Alabama", "ale": "Aleoetisch", "aln": "Gegisch", "alt": "Zuid-Altaïsch", "am": "Amhaars", "an": "Aragonees", "ang": "Oudengels", "anp": "Angika", "ar": "Arabisch", "ar-001": "Arabisch (wereld)", "arc": "Aramees", "arn": "Mapudungun", "aro": "Araona", "arp": "Arapaho", "arq": "Algerijns Arabisch", "ars": "Nadjdi-Arabisch", "arw": "Arawak", "ary": "Marokkaans Arabisch", "arz": "Egyptisch Arabisch", "as": "Assamees", "asa": "Asu", "ase": "Amerikaanse Gebarentaal", "ast": "Asturisch", "av": "Avarisch", "avk": "Kotava", "awa": "Awadhi", "ay": "Aymara", "az": "Azerbeidzjaans", "ba": "Basjkiers", "bal": "Beloetsji", "ban": "Balinees", "bar": "Beiers", "bas": "Basa", "bax": "Bamoun", "bbc": "Batak Toba", "bbj": "Ghomala’", "be": "Wit-Russisch", "bej": "Beja", "bem": "Bemba", "bew": "Betawi", "bez": "Bena", "bfd": "Bafut", "bfq": "Badaga", "bg": "Bulgaars", "bgn": "Westers Beloetsji", "bho": "Bhojpuri", "bi": "Bislama", "bik": "Bikol", "bin": "Bini", "bjn": "Banjar", "bkm": "Kom", "bla": "Siksika", "bm": "Bambara", "bn": "Bengaals", "bo": "Tibetaans", "bpy": "Bishnupriya", "bqi": "Bakhtiari", "br": "Bretons", "bra": "Braj", "brh": "Brahui", "brx": "Bodo", "bs": "Bosnisch", "bss": "Akoose", "bua": "Boerjatisch", "bug": "Buginees", "bum": "Bulu", "byn": "Blin", "byv": "Medumba", "ca": "Catalaans", "cad": "Caddo", "car": "Caribisch", "cay": "Cayuga", "cch": "Atsam", "ccp": "Chakma", "ce": "Tsjetsjeens", "ceb": "Cebuano", "cgg": "Chiga", "ch": "Chamorro", "chb": "Chibcha", "chg": "Chagatai", "chk": "Chuukees", "chm": "Mari", "chn": "Chinook Jargon", "cho": "Choctaw", "chp": "Chipewyan", "chr": "Cherokee", "chy": "Cheyenne", "ckb": "Soranî", "co": "Corsicaans", "cop": "Koptisch", "cps": "Capiznon", "cr": "Cree", "crh": "Krim-Tataars", "crs": "Seychellencreools", "cs": "Tsjechisch", "csb": "Kasjoebisch", "cu": "Kerkslavisch", "cv": "Tsjoevasjisch", "cy": "Welsh", "da": "Deens", "dak": "Dakota", "dar": "Dargwa", "dav": "Taita", "de": "Duits", "de-AT": "Duits (Oostenrijk)", "de-CH": "Duits (Zwitserland)", "del": "Delaware", "den": "Slavey", "dgr": "Dogrib", "din": "Dinka", "dje": "Zarma", "doi": "Dogri", "dsb": "Nedersorbisch", "dtp": "Dusun", "dua": "Duala", "dum": "Middelnederlands", "dv": "Divehi", "dyo": "Jola-Fonyi", "dyu": "Dyula", "dz": "Dzongkha", "dzg": "Dazaga", "ebu": "Embu", "ee": "Ewe", "efi": "Efik", "egl": "Emiliano", "egy": "Oudegyptisch", "eka": "Ekajuk", "el": "Grieks", "elx": "Elamitisch", "en": "Engels", "en-AU": "Engels (Australië)", "en-CA": "Engels (Canada)", "en-GB": "Engels (Verenigd Koninkrijk)", "en-US": "Engels (Verenigde Staten)", "enm": "Middelengels", "eo": "Esperanto", "es": "Spaans", "es-419": "Spaans (Latijns-Amerika)", "es-ES": "Spaans (Spanje)", "es-MX": "Spaans (Mexico)", "esu": "Yupik", "et": "Estisch", "eu": "Baskisch", "ewo": "Ewondo", "ext": "Extremeens", "fa": "Perzisch", "fan": "Fang", "fat": "Fanti", "ff": "Fulah", "fi": "Fins", "fil": "Filipijns", "fit": "Tornedal-Fins", "fj": "Fijisch", "fo": "Faeröers", "fon": "Fon", "fr": "Frans", "fr-CA": "Frans (Canada)", "fr-CH": "Frans (Zwitserland)", "frc": "Cajun-Frans", "frm": "Middelfrans", "fro": "Oudfrans", "frp": "Arpitaans", "frr": "Noord-Fries", "frs": "Oost-Fries", "fur": "Friulisch", "fy": "Fries", "ga": "Iers", "gaa": "Ga", "gag": "Gagaoezisch", "gan": "Ganyu", "gay": "Gayo", "gba": "Gbaya", "gbz": "Zoroastrisch Dari", "gd": "Schots-Gaelisch", "gez": "Ge’ez", "gil": "Gilbertees", "gl": "Galicisch", "glk": "Gilaki", "gmh": "Middelhoogduits", "gn": "Guaraní", "goh": "Oudhoogduits", "gom": "Goa Konkani", "gon": "Gondi", "gor": "Gorontalo", "got": "Gothisch", "grb": "Grebo", "grc": "Oudgrieks", "gsw": "Zwitserduits", "gu": "Gujarati", "guc": "Wayuu", "gur": "Gurune", "guz": "Gusii", "gv": "Manx", "gwi": "Gwichʼin", "ha": "Hausa", "hai": "Haida", "hak": "Hakka", "haw": "Hawaïaans", "he": "Hebreeuws", "hi": "Hindi", "hif": "Fijisch Hindi", "hil": "Hiligaynon", "hit": "Hettitisch", "hmn": "Hmong", "ho": "Hiri Motu", "hr": "Kroatisch", "hsb": "Oppersorbisch", "hsn": "Xiangyu", "ht": "Haïtiaans Creools", "hu": "Hongaars", "hup": "Hupa", "hy": "Armeens", "hz": "Herero", "ia": "Interlingua", "iba": "Iban", "ibb": "Ibibio", "id": "Indonesisch", "ie": "Interlingue", "ig": "Igbo", "ii": "Yi", "ik": "Inupiaq", "ilo": "Iloko", "inh": "Ingoesjetisch", "io": "Ido", "is": "IJslands", "it": "Italiaans", "iu": "Inuktitut", "izh": "Ingrisch", "ja": "Japans", "jam": "Jamaicaans Creools", "jbo": "Lojban", "jgo": "Ngomba", "jmc": "Machame", "jpr": "Judeo-Perzisch", "jrb": "Judeo-Arabisch", "jut": "Jutlands", "jv": "Javaans", "ka": "Georgisch", "kaa": "Karakalpaks", "kab": "Kabylisch", "kac": "Kachin", "kaj": "Jju", "kam": "Kamba", "kaw": "Kawi", "kbd": "Kabardisch", "kbl": "Kanembu", "kcg": "Tyap", "kde": "Makonde", "kea": "Kaapverdisch Creools", "ken": "Kenyang", "kfo": "Koro", "kg": "Kongo", "kgp": "Kaingang", "kha": "Khasi", "kho": "Khotanees", "khq": "Koyra Chiini", "khw": "Khowar", "ki": "Gikuyu", "kiu": "Kirmanckî", "kj": "Kuanyama", "kk": "Kazachs", "kkj": "Kako", "kl": "Groenlands", "kln": "Kalenjin", "km": "Khmer", "kmb": "Kimbundu", "kn": "Kannada", "ko": "Koreaans", "koi": "Komi-Permjaaks", "kok": "Konkani", "kos": "Kosraeaans", "kpe": "Kpelle", "kr": "Kanuri", "krc": "Karatsjaj-Balkarisch", "kri": "Krio", "krj": "Kinaray-a", "krl": "Karelisch", "kru": "Kurukh", "ks": "Kasjmiri", "ksb": "Shambala", "ksf": "Bafia", "ksh": "Kölsch", "ku": "Koerdisch", "kum": "Koemuks", "kut": "Kutenai", "kv": "Komi", "kw": "Cornish", "ky": "Kirgizisch", "la": "Latijn", "lad": "Ladino", "lag": "Langi", "lah": "Lahnda", "lam": "Lamba", "lb": "Luxemburgs", "lez": "Lezgisch", "lfn": "Lingua Franca Nova", "lg": "Luganda", "li": "Limburgs", "lij": "Ligurisch", "liv": "Lijfs", "lkt": "Lakota", "lmo": "Lombardisch", "ln": "Lingala", "lo": "Laotiaans", "lol": "Mongo", "lou": "Louisiana-Creools", "loz": "Lozi", "lrc": "Noordelijk Luri", "lt": "Litouws", "ltg": "Letgaals", "lu": "Luba-Katanga", "lua": "Luba-Lulua", "lui": "Luiseno", "lun": "Lunda", "luo": "Luo", "lus": "Mizo", "luy": "Luyia", "lv": "Lets", "lzh": "Klassiek Chinees", "lzz": "Lazisch", "mad": "Madoerees", "maf": "Mafa", "mag": "Magahi", "mai": "Maithili", "mak": "Makassaars", "man": "Mandingo", "mas": "Maa", "mde": "Maba", "mdf": "Moksja", "mdr": "Mandar", "men": "Mende", "mer": "Meru", "mfe": "Morisyen", "mg": "Malagassisch", "mga": "Middeliers", "mgh": "Makhuwa-Meetto", "mgo": "Meta’", "mh": "Marshallees", "mi": "Maori", "mic": "Mi’kmaq", "min": "Minangkabau", "mk": "Macedonisch", "ml": "Malayalam", "mn": "Mongools", "mnc": "Mantsjoe", "mni": "Meitei", "moh": "Mohawk", "mos": "Mossi", "mr": "Marathi", "mrj": "West-Mari", "ms": "Maleis", "mt": "Maltees", "mua": "Mundang", "mus": "Creek", "mwl": "Mirandees", "mwr": "Marwari", "mwv": "Mentawai", "my": "Birmaans", "mye": "Myene", "myv": "Erzja", "mzn": "Mazanderani", "na": "Nauruaans", "nan": "Minnanyu", "nap": "Napolitaans", "naq": "Nama", "nb": "Noors - Bokmål", "nd": "Noord-Ndebele", "nds": "Nedersaksisch", "nds-NL": "Nederduits", "ne": "Nepalees", "new": "Newari", "ng": "Ndonga", "nia": "Nias", "niu": "Niueaans", "njo": "Ao Naga", "nl": "Nederlands", "nl-BE": "Nederlands (België)", "nmg": "Ngumba", "nn": "Noors - Nynorsk", "nnh": "Ngiemboon", "no": "Noors", "nog": "Nogai", "non": "Oudnoors", "nov": "Novial", "nqo": "N’Ko", "nr": "Zuid-Ndbele", "nso": "Noord-Sotho", "nus": "Nuer", "nv": "Navajo", "nwc": "Klassiek Nepalbhasa", "ny": "Nyanja", "nym": "Nyamwezi", "nyn": "Nyankole", "nyo": "Nyoro", "nzi": "Nzima", "oc": "Occitaans", "oj": "Ojibwa", "om": "Afaan Oromo", "or": "Odia", "os": "Ossetisch", "osa": "Osage", "ota": "Ottomaans-Turks", "pa": "Punjabi", "pag": "Pangasinan", "pal": "Pahlavi", "pam": "Pampanga", "pap": "Papiaments", "pau": "Palaus", "pcd": "Picardisch", "pcm": "Nigeriaans Pidgin", "pdc": "Pennsylvania-Duits", "pdt": "Plautdietsch", "peo": "Oudperzisch", "pfl": "Paltsisch", "phn": "Foenicisch", "pi": "Pali", "pl": "Pools", "pms": "Piëmontees", "pnt": "Pontisch", "pon": "Pohnpeiaans", "prg": "Oudpruisisch", "pro": "Oudprovençaals", "ps": "Pasjtoe", "pt": "Portugees", "pt-BR": "Portugees (Brazilië)", "pt-PT": "Portugees (Portugal)", "qu": "Quechua", "quc": "K’iche’", "qug": "Kichwa", "raj": "Rajasthani", "rap": "Rapanui", "rar": "Rarotongan", "rgn": "Romagnol", "rif": "Riffijns", "rm": "Reto-Romaans", "rn": "Kirundi", "ro": "Roemeens", "ro-MD": "Roemeens (Moldavië)", "rof": "Rombo", "rom": "Romani", "root": "Root", "rtm": "Rotumaans", "ru": "Russisch", "rue": "Roetheens", "rug": "Roviana", "rup": "Aroemeens", "rw": "Kinyarwanda", "rwk": "Rwa", "sa": "Sanskriet", "sad": "Sandawe", "sah": "Jakoets", "sam": "Samaritaans-Aramees", "saq": "Samburu", "sas": "Sasak", "sat": "Santali", "saz": "Saurashtra", "sba": "Ngambay", "sbp": "Sangu", "sc": "Sardijns", "scn": "Siciliaans", "sco": "Schots", "sd": "Sindhi", "sdc": "Sassarees", "sdh": "Pahlavani", "se": "Noord-Samisch", "see": "Seneca", "seh": "Sena", "sei": "Seri", "sel": "Selkoeps", "ses": "Koyraboro Senni", "sg": "Sango", "sga": "Oudiers", "sgs": "Samogitisch", "sh": "Servo-Kroatisch", "shi": "Tashelhiyt", "shn": "Shan", "shu": "Tsjadisch Arabisch", "si": "Singalees", "sid": "Sidamo", "sk": "Slowaaks", "sl": "Sloveens", "sli": "Silezisch Duits", "sly": "Selayar", "sm": "Samoaans", "sma": "Zuid-Samisch", "smj": "Lule-Samisch", "smn": "Inari-Samisch", "sms": "Skolt-Samisch", "sn": "Shona", "snk": "Soninke", "so": "Somalisch", "sog": "Sogdisch", "sq": "Albanees", "sr": "Servisch", "srn": "Sranantongo", "srr": "Serer", "ss": "Swazi", "ssy": "Saho", "st": "Zuid-Sotho", "stq": "Saterfries", "su": "Soendanees", "suk": "Sukuma", "sus": "Soesoe", "sux": "Soemerisch", "sv": "Zweeds", "sw": "Swahili", "sw-CD": "Swahili (Congo-Kinshasa)", "swb": "Shimaore", "syc": "Klassiek Syrisch", "syr": "Syrisch", "szl": "Silezisch", "ta": "Tamil", "tcy": "Tulu", "te": "Telugu", "tem": "Timne", "teo": "Teso", "ter": "Tereno", "tet": "Tetun", "tg": "Tadzjieks", "th": "Thai", "ti": "Tigrinya", "tig": "Tigre", "tiv": "Tiv", "tk": "Turkmeens", "tkl": "Tokelaus", "tkr": "Tsakhur", "tl": "Tagalog", "tlh": "Klingon", "tli": "Tlingit", "tly": "Talysh", "tmh": "Tamashek", "tn": "Tswana", "to": "Tongaans", "tog": "Nyasa Tonga", "tpi": "Tok Pisin", "tr": "Turks", "tru": "Turoyo", "trv": "Taroko", "ts": "Tsonga", "tsd": "Tsakonisch", "tsi": "Tsimshian", "tt": "Tataars", "ttt": "Moslim Tat", "tum": "Toemboeka", "tvl": "Tuvaluaans", "tw": "Twi", "twq": "Tasawaq", "ty": "Tahitiaans", "tyv": "Toevaans", "tzm": "Tamazight (Centraal-Marokko)", "udm": "Oedmoerts", "ug": "Oeigoers", "uga": "Oegaritisch", "uk": "Oekraïens", "umb": "Umbundu", "ur": "Urdu", "uz": "Oezbeeks", "vai": "Vai", "ve": "Venda", "vec": "Venetiaans", "vep": "Wepsisch", "vi": "Vietnamees", "vls": "West-Vlaams", "vmf": "Opperfrankisch", "vo": "Volapük", "vot": "Votisch", "vro": "Võro", "vun": "Vunjo", "wa": "Waals", "wae": "Walser", "wal": "Wolaytta", "war": "Waray", "was": "Washo", "wbp": "Warlpiri", "wo": "Wolof", "wuu": "Wuyu", "xal": "Kalmuks", "xh": "Xhosa", "xmf": "Mingreels", "xog": "Soga", "yao": "Yao", "yap": "Yapees", "yav": "Yangben", "ybb": "Yemba", "yi": "Jiddisch", "yo": "Yoruba", "yrl": "Nheengatu", "yue": "Kantonees", "za": "Zhuang", "zap": "Zapotec", "zbl": "Blissymbolen", "zea": "Zeeuws", "zen": "Zenaga", "zgh": "Standaard Marokkaanse Tamazight", "zh": "Chinees", "zh-Hans": "Chinees (vereenvoudigd)", "zh-Hant": "Chinees (traditioneel)", "zu": "Zoeloe", "zun": "Zuni", "zza": "Zaza"}}, - "nn": {"rtl": false, "languageNames": {"aa": "afar", "ab": "abkhasisk", "ace": "achinesisk", "ach": "acoli", "ada": "adangme", "ady": "adygeisk", "ae": "avestisk", "af": "afrikaans", "afh": "afrihili", "agq": "aghem", "ain": "ainu", "ak": "akan", "akk": "akkadisk", "ale": "aleutisk", "alt": "sør-altaj", "am": "amharisk", "an": "aragonsk", "ang": "gammalengelsk", "anp": "angika", "ar": "arabisk", "ar-001": "moderne standardarabisk", "arc": "arameisk", "arn": "mapudungun", "arp": "arapaho", "arw": "arawak", "as": "assamesisk", "asa": "asu (Tanzania)", "ast": "asturisk", "av": "avarisk", "awa": "avadhi", "ay": "aymara", "az": "aserbajdsjansk", "ba": "basjkirsk", "bal": "baluchi", "ban": "balinesisk", "bas": "basa", "bax": "bamun", "be": "kviterussisk", "bej": "beja", "bem": "bemba", "bez": "bena (Tanzania)", "bg": "bulgarsk", "bho": "bhojpuri", "bi": "bislama", "bik": "bikol", "bin": "bini", "bla": "siksika", "bm": "bambara", "bn": "bengali", "bo": "tibetansk", "br": "bretonsk", "bra": "braj", "brx": "bodo", "bs": "bosnisk", "bss": "bakossi", "bua": "burjatisk", "bug": "buginesisk", "byn": "blin", "ca": "katalansk", "cad": "caddo", "car": "carib", "cch": "atsam", "ce": "tsjetsjensk", "ceb": "cebuano", "cgg": "kiga", "ch": "chamorro", "chb": "chibcha", "chg": "tsjagataisk", "chk": "chuukesisk", "chm": "mari", "chn": "chinook", "cho": "choctaw", "chp": "chipewiansk", "chr": "cherokee", "chy": "cheyenne", "ckb": "sorani", "co": "korsikansk", "cop": "koptisk", "cr": "cree", "crh": "krimtatarisk", "crs": "seselwa (fransk-kreolsk)", "cs": "tsjekkisk", "csb": "kasjubisk", "cu": "kyrkjeslavisk", "cv": "tsjuvansk", "cy": "walisisk", "da": "dansk", "dak": "dakota", "dar": "dargwa", "dav": "taita", "de": "tysk", "de-AT": "tysk (Austerrike)", "de-CH": "tysk (Sveits)", "del": "delaware", "den": "slavej", "dgr": "dogrib", "din": "dinka", "dje": "zarma", "doi": "dogri", "dsb": "lågsorbisk", "dua": "duala", "dum": "mellomnederlandsk", "dv": "divehi", "dyo": "jola-fonyi", "dyu": "dyula", "dz": "dzongkha", "dzg": "dazaga", "ebu": "embu", "ee": "ewe", "efi": "efik", "egy": "gammalegyptisk", "eka": "ekajuk", "el": "gresk", "elx": "elamite", "en": "engelsk", "en-AU": "engelsk (Australia)", "en-CA": "engelsk (Canada)", "en-GB": "britisk engelsk", "en-US": "engelsk (USA)", "enm": "mellomengelsk", "eo": "esperanto", "es": "spansk", "es-419": "spansk (Latin-Amerika)", "es-ES": "spansk (Spania)", "es-MX": "spansk (Mexico)", "et": "estisk", "eu": "baskisk", "ewo": "ewondo", "fa": "persisk", "fan": "fang", "fat": "fanti", "ff": "fulfulde", "fi": "finsk", "fil": "filippinsk", "fj": "fijiansk", "fo": "færøysk", "fr": "fransk", "fr-CA": "fransk (Canada)", "fr-CH": "fransk (Sveits)", "frm": "mellomfransk", "fro": "gammalfransk", "frr": "nordfrisisk", "frs": "austfrisisk", "fur": "friulisk", "fy": "vestfrisisk", "ga": "irsk", "gaa": "ga", "gay": "gayo", "gba": "gbaya", "gd": "skotsk-gælisk", "gez": "geez", "gil": "gilbertese", "gl": "galicisk", "gmh": "mellomhøgtysk", "gn": "guarani", "goh": "gammalhøgtysk", "gon": "gondi", "gor": "gorontalo", "got": "gotisk", "grb": "grebo", "grc": "gammalgresk", "gsw": "sveitsertysk", "gu": "gujarati", "guz": "gusii", "gv": "manx", "gwi": "gwichin", "ha": "hausa", "hai": "haida", "haw": "hawaiisk", "he": "hebraisk", "hi": "hindi", "hil": "hiligaynon", "hit": "hettittisk", "hmn": "hmong", "ho": "hiri motu", "hr": "kroatisk", "hsb": "høgsorbisk", "ht": "haitisk", "hu": "ungarsk", "hup": "hupa", "hy": "armensk", "hz": "herero", "ia": "interlingua", "iba": "iban", "ibb": "ibibio", "id": "indonesisk", "ie": "interlingue", "ig": "ibo", "ii": "sichuan-yi", "ik": "inupiak", "ilo": "iloko", "inh": "ingusjisk", "io": "ido", "is": "islandsk", "it": "italiensk", "iu": "inuktitut", "ja": "japansk", "jbo": "lojban", "jgo": "ngomba", "jmc": "machame", "jpr": "jødepersisk", "jrb": "jødearabisk", "jv": "javanesisk", "ka": "georgisk", "kaa": "karakalpakisk", "kab": "kabyle", "kac": "kachin", "kaj": "jju", "kam": "kamba", "kaw": "kawi", "kbd": "kabardisk", "kcg": "tyap", "kde": "makonde", "kea": "kabuverdianu", "kfo": "koro", "kg": "kikongo", "kha": "khasi", "kho": "khotanesisk", "khq": "koyra chiini", "ki": "kikuyu", "kj": "kuanyama", "kk": "kasakhisk", "kkj": "kako", "kl": "grønlandsk (kalaallisut)", "kln": "kalenjin", "km": "khmer", "kmb": "kimbundu", "kn": "kannada", "ko": "koreansk", "kok": "konkani", "kos": "kosraeansk", "kpe": "kpelle", "kr": "kanuri", "krc": "karachay-balkar", "krl": "karelsk", "kru": "kurukh", "ks": "kasjmiri", "ksb": "shambala", "ksf": "bafia", "ksh": "kølnsk", "ku": "kurdisk", "kum": "kumyk", "kut": "kutenai", "kv": "komi", "kw": "kornisk", "ky": "kirgisisk", "la": "latin", "lad": "ladino", "lag": "langi", "lah": "lahnda", "lam": "lamba", "lb": "luxemburgsk", "lez": "lezghian", "lg": "ganda", "li": "limburgisk", "lkt": "lakota", "ln": "lingala", "lo": "laotisk", "lol": "mongo", "loz": "lozi", "lrc": "nord-lurisk", "lt": "litauisk", "lu": "luba-katanga", "lua": "luba-lulua", "lui": "luiseno", "lun": "lunda", "lus": "lushai", "luy": "olulujia", "lv": "latvisk", "mad": "maduresisk", "mag": "magahi", "mai": "maithili", "mak": "makasar", "man": "mandingo", "mas": "masai", "mdf": "moksha", "mdr": "mandar", "men": "mende", "mer": "meru", "mfe": "morisyen", "mg": "madagassisk", "mga": "mellomirsk", "mgh": "Makhuwa-Meetto", "mgo": "meta’", "mh": "marshallesisk", "mi": "maori", "mic": "micmac", "min": "minangkabau", "mk": "makedonsk", "ml": "malayalam", "mn": "mongolsk", "mnc": "mandsju", "mni": "manipuri", "moh": "mohawk", "mos": "mossi", "mr": "marathi", "ms": "malayisk", "mt": "maltesisk", "mua": "mundang", "mus": "creek", "mwl": "mirandesisk", "mwr": "marwari", "my": "burmesisk", "myv": "erzia", "mzn": "mazanderani", "na": "nauru", "nap": "napolitansk", "naq": "nama", "nb": "bokmål", "nd": "nord-ndebele", "nds": "lågtysk", "nds-NL": "lågsaksisk", "ne": "nepalsk", "new": "newari", "ng": "ndonga", "nia": "nias", "niu": "niuisk", "nl": "nederlandsk", "nl-BE": "flamsk", "nmg": "kwasio", "nn": "nynorsk", "nnh": "ngiemboon", "no": "norsk", "nog": "nogai", "non": "gammalnorsk", "nqo": "n’ko", "nr": "sør-ndebele", "nso": "nordsotho", "nus": "nuer", "nv": "navajo", "nwc": "klassisk newarisk", "ny": "nyanja", "nym": "nyamwezi", "nyn": "nyankole", "nyo": "nyoro", "nzi": "nzima", "oc": "oksitansk", "oj": "ojibwa", "om": "oromo", "or": "odia", "os": "ossetisk", "osa": "osage", "ota": "ottomansk tyrkisk", "pa": "panjabi", "pag": "pangasinan", "pal": "pahlavi", "pam": "pampanga", "pap": "papiamento", "pau": "palauisk", "pcm": "nigeriansk pidgin", "peo": "gammalpersisk", "phn": "fønikisk", "pi": "pali", "pl": "polsk", "pon": "ponapisk", "prg": "prøyssisk", "pro": "gammalprovençalsk", "ps": "pashto", "pt": "portugisisk", "pt-BR": "portugisisk (Brasil)", "pt-PT": "portugisisk (Portugal)", "qu": "quechua", "quc": "k’iche", "raj": "rajasthani", "rap": "rapanui", "rar": "rarotongansk", "rm": "retoromansk", "rn": "rundi", "ro": "rumensk", "ro-MD": "moldavisk", "rof": "rombo", "rom": "romani", "root": "rot", "ru": "russisk", "rup": "arumensk", "rw": "kinjarwanda", "rwk": "rwa", "sa": "sanskrit", "sad": "sandawe", "sah": "sakha", "sam": "samaritansk arameisk", "saq": "samburu", "sas": "sasak", "sat": "santali", "sba": "ngambay", "sbp": "sangu", "sc": "sardinsk", "scn": "siciliansk", "sco": "skotsk", "sd": "sindhi", "se": "nordsamisk", "seh": "sena", "sel": "selkupisk", "ses": "Koyraboro Senni", "sg": "sango", "sga": "gammalirsk", "sh": "serbokroatisk", "shi": "tachelhit", "shn": "shan", "si": "singalesisk", "sid": "sidamo", "sk": "slovakisk", "sl": "slovensk", "sm": "samoansk", "sma": "sørsamisk", "smj": "lulesamisk", "smn": "enaresamisk", "sms": "skoltesamisk", "sn": "shona", "snk": "soninke", "so": "somali", "sog": "sogdisk", "sq": "albansk", "sr": "serbisk", "srn": "sranan tongo", "srr": "serer", "ss": "swati", "ssy": "saho", "st": "sørsotho", "su": "sundanesisk", "suk": "sukuma", "sus": "susu", "sux": "sumerisk", "sv": "svensk", "sw": "swahili", "sw-CD": "swahili (Kongo-Kinshasa)", "swb": "shimaore", "syc": "klassisk syrisk", "syr": "syrisk", "ta": "tamil", "te": "telugu", "tem": "temne", "teo": "teso", "ter": "tereno", "tet": "tetum", "tg": "tadsjikisk", "th": "thai", "ti": "tigrinja", "tig": "tigré", "tiv": "tivi", "tk": "turkmensk", "tkl": "tokelau", "tl": "tagalog", "tlh": "klingon", "tli": "tlingit", "tmh": "tamasjek", "tn": "tswana", "to": "tongansk", "tog": "tonga (Nyasa)", "tpi": "tok pisin", "tr": "tyrkisk", "trv": "taroko", "ts": "tsonga", "tsi": "tsimshian", "tt": "tatarisk", "tum": "tumbuka", "tvl": "tuvalu", "tw": "twi", "twq": "tasawaq", "ty": "tahitisk", "tyv": "tuvinisk", "tzm": "sentral-tamazight", "udm": "udmurt", "ug": "uigurisk", "uga": "ugaritisk", "uk": "ukrainsk", "umb": "umbundu", "ur": "urdu", "uz": "usbekisk", "ve": "venda", "vi": "vietnamesisk", "vo": "volapyk", "vot": "votisk", "vun": "vunjo", "wa": "vallonsk", "wae": "walsertysk", "wal": "wolaytta", "war": "waray", "was": "washo", "wo": "wolof", "xal": "kalmykisk", "xh": "xhosa", "xog": "soga", "yap": "yapesisk", "yav": "yangben", "ybb": "yemba", "yi": "jiddisk", "yo": "joruba", "yue": "kantonesisk", "za": "zhuang", "zap": "zapotec", "zbl": "blissymbol", "zen": "zenaga", "zgh": "standard marokkansk tamazight", "zh": "kinesisk", "zh-Hans": "forenkla kinesisk", "zh-Hant": "tradisjonell kinesisk", "zu": "zulu", "zun": "zuni", "zza": "zaza"}}, - "no": {"rtl": false, "languageNames": {}}, - "nv": {"rtl": false, "languageNames": {}}, - "pap": {"rtl": false, "languageNames": {}}, - "pl": {"rtl": false, "languageNames": {"aa": "afar", "ab": "abchaski", "ace": "aceh", "ach": "aczoli", "ada": "adangme", "ady": "adygejski", "ae": "awestyjski", "aeb": "tunezyjski arabski", "af": "afrikaans", "afh": "afrihili", "agq": "aghem", "ain": "ajnu", "ak": "akan", "akk": "akadyjski", "akz": "alabama", "ale": "aleucki", "aln": "albański gegijski", "alt": "południowoałtajski", "am": "amharski", "an": "aragoński", "ang": "staroangielski", "anp": "angika", "ar": "arabski", "ar-001": "współczesny arabski", "arc": "aramejski", "arn": "mapudungun", "aro": "araona", "arp": "arapaho", "arq": "algierski arabski", "ars": "arabski nadżdyjski", "arw": "arawak", "ary": "marokański arabski", "arz": "egipski arabski", "as": "asamski", "asa": "asu", "ase": "amerykański język migowy", "ast": "asturyjski", "av": "awarski", "avk": "kotava", "awa": "awadhi", "ay": "ajmara", "az": "azerbejdżański", "ba": "baszkirski", "bal": "beludżi", "ban": "balijski", "bar": "bawarski", "bas": "basaa", "bax": "bamum", "bbc": "batak toba", "bbj": "ghomala", "be": "białoruski", "bej": "bedża", "bem": "bemba", "bew": "betawi", "bez": "bena", "bfd": "bafut", "bfq": "badaga", "bg": "bułgarski", "bgn": "beludżi północny", "bho": "bhodżpuri", "bi": "bislama", "bik": "bikol", "bin": "bini", "bjn": "banjar", "bkm": "kom", "bla": "siksika", "bm": "bambara", "bn": "bengalski", "bo": "tybetański", "bpy": "bisznuprija-manipuri", "bqi": "bachtiarski", "br": "bretoński", "bra": "bradź", "brh": "brahui", "brx": "bodo", "bs": "bośniacki", "bss": "akoose", "bua": "buriacki", "bug": "bugijski", "bum": "bulu", "byn": "blin", "byv": "medumba", "ca": "kataloński", "cad": "kaddo", "car": "karaibski", "cay": "kajuga", "cch": "atsam", "ccp": "czakma", "ce": "czeczeński", "ceb": "cebuano", "cgg": "chiga", "ch": "czamorro", "chb": "czibcza", "chg": "czagatajski", "chk": "chuuk", "chm": "maryjski", "chn": "żargon czinucki", "cho": "czoktawski", "chp": "czipewiański", "chr": "czirokeski", "chy": "czejeński", "ckb": "sorani", "co": "korsykański", "cop": "koptyjski", "cps": "capiznon", "cr": "kri", "crh": "krymskotatarski", "crs": "kreolski seszelski", "cs": "czeski", "csb": "kaszubski", "cu": "cerkiewnosłowiański", "cv": "czuwaski", "cy": "walijski", "da": "duński", "dak": "dakota", "dar": "dargwijski", "dav": "taita", "de": "niemiecki", "de-AT": "austriacki niemiecki", "de-CH": "szwajcarski wysokoniemiecki", "del": "delaware", "den": "slave", "dgr": "dogrib", "din": "dinka", "dje": "dżerma", "doi": "dogri", "dsb": "dolnołużycki", "dtp": "dusun centralny", "dua": "duala", "dum": "średniowieczny niderlandzki", "dv": "malediwski", "dyo": "diola", "dyu": "diula", "dz": "dzongkha", "dzg": "dazaga", "ebu": "embu", "ee": "ewe", "efi": "efik", "egl": "emilijski", "egy": "staroegipski", "eka": "ekajuk", "el": "grecki", "elx": "elamicki", "en": "angielski", "en-AU": "australijski angielski", "en-CA": "kanadyjski angielski", "en-GB": "brytyjski angielski", "en-US": "amerykański angielski", "enm": "średnioangielski", "eo": "esperanto", "es": "hiszpański", "es-419": "amerykański hiszpański", "es-ES": "europejski hiszpański", "es-MX": "meksykański hiszpański", "esu": "yupik środkowosyberyjski", "et": "estoński", "eu": "baskijski", "ewo": "ewondo", "ext": "estremadurski", "fa": "perski", "fan": "fang", "fat": "fanti", "ff": "fulani", "fi": "fiński", "fil": "filipino", "fit": "meänkieli", "fj": "fidżijski", "fo": "farerski", "fr": "francuski", "fr-CA": "kanadyjski francuski", "fr-CH": "szwajcarski francuski", "frc": "cajuński", "frm": "średniofrancuski", "fro": "starofrancuski", "frp": "franko-prowansalski", "frr": "północnofryzyjski", "frs": "wschodniofryzyjski", "fur": "friulski", "fy": "zachodniofryzyjski", "ga": "irlandzki", "gaa": "ga", "gag": "gagauski", "gay": "gayo", "gba": "gbaya", "gbz": "zaratusztriański dari", "gd": "szkocki gaelicki", "gez": "gyyz", "gil": "gilbertański", "gl": "galicyjski", "glk": "giliański", "gmh": "średnio-wysoko-niemiecki", "gn": "guarani", "goh": "staro-wysoko-niemiecki", "gom": "konkani (Goa)", "gon": "gondi", "gor": "gorontalo", "got": "gocki", "grb": "grebo", "grc": "starogrecki", "gsw": "szwajcarski niemiecki", "gu": "gudżarati", "guc": "wayúu", "gur": "frafra", "guz": "gusii", "gv": "manx", "gwi": "gwichʼin", "ha": "hausa", "hai": "haida", "hak": "hakka", "haw": "hawajski", "he": "hebrajski", "hi": "hindi", "hif": "hindi fidżyjskie", "hil": "hiligaynon", "hit": "hetycki", "hmn": "hmong", "ho": "hiri motu", "hr": "chorwacki", "hsb": "górnołużycki", "hsn": "xiang", "ht": "kreolski haitański", "hu": "węgierski", "hup": "hupa", "hy": "ormiański", "hz": "herero", "ia": "interlingua", "iba": "iban", "ibb": "ibibio", "id": "indonezyjski", "ie": "interlingue", "ig": "igbo", "ii": "syczuański", "ik": "inupiak", "ilo": "ilokano", "inh": "inguski", "io": "ido", "is": "islandzki", "it": "włoski", "iu": "inuktitut", "izh": "ingryjski", "ja": "japoński", "jam": "jamajski", "jbo": "lojban", "jgo": "ngombe", "jmc": "machame", "jpr": "judeo-perski", "jrb": "judeoarabski", "jut": "jutlandzki", "jv": "jawajski", "ka": "gruziński", "kaa": "karakałpacki", "kab": "kabylski", "kac": "kaczin", "kaj": "jju", "kam": "kamba", "kaw": "kawi", "kbd": "kabardyjski", "kbl": "kanembu", "kcg": "tyap", "kde": "makonde", "kea": "kreolski Wysp Zielonego Przylądka", "ken": "kenyang", "kfo": "koro", "kg": "kongo", "kgp": "kaingang", "kha": "khasi", "kho": "chotański", "khq": "koyra chiini", "khw": "khowar", "ki": "kikuju", "kiu": "kirmandżki", "kj": "kwanyama", "kk": "kazachski", "kkj": "kako", "kl": "grenlandzki", "kln": "kalenjin", "km": "khmerski", "kmb": "kimbundu", "kn": "kannada", "ko": "koreański", "koi": "komi-permiacki", "kok": "konkani", "kos": "kosrae", "kpe": "kpelle", "kr": "kanuri", "krc": "karaczajsko-bałkarski", "kri": "krio", "krj": "kinaraya", "krl": "karelski", "kru": "kurukh", "ks": "kaszmirski", "ksb": "sambala", "ksf": "bafia", "ksh": "gwara kolońska", "ku": "kurdyjski", "kum": "kumycki", "kut": "kutenai", "kv": "komi", "kw": "kornijski", "ky": "kirgiski", "la": "łaciński", "lad": "ladyński", "lag": "langi", "lah": "lahnda", "lam": "lamba", "lb": "luksemburski", "lez": "lezgijski", "lfn": "Lingua Franca Nova", "lg": "ganda", "li": "limburski", "lij": "liguryjski", "liv": "liwski", "lkt": "lakota", "lmo": "lombardzki", "ln": "lingala", "lo": "laotański", "lol": "mongo", "lou": "kreolski luizjański", "loz": "lozi", "lrc": "luryjski północny", "lt": "litewski", "ltg": "łatgalski", "lu": "luba-katanga", "lua": "luba-lulua", "lui": "luiseno", "lun": "lunda", "lus": "mizo", "luy": "luhya", "lv": "łotewski", "lzh": "chiński klasyczny", "lzz": "lazyjski", "mad": "madurski", "maf": "mafa", "mag": "magahi", "mai": "maithili", "mak": "makasar", "man": "mandingo", "mas": "masajski", "mde": "maba", "mdf": "moksza", "mdr": "mandar", "men": "mende", "mer": "meru", "mfe": "kreolski Mauritiusa", "mg": "malgaski", "mga": "średnioirlandzki", "mgh": "makua", "mgo": "meta", "mh": "marszalski", "mi": "maoryjski", "mic": "mikmak", "min": "minangkabu", "mk": "macedoński", "ml": "malajalam", "mn": "mongolski", "mnc": "manchu", "mni": "manipuri", "moh": "mohawk", "mos": "mossi", "mr": "marathi", "mrj": "zachodniomaryjski", "ms": "malajski", "mt": "maltański", "mua": "mundang", "mus": "krik", "mwl": "mirandyjski", "mwr": "marwari", "mwv": "mentawai", "my": "birmański", "mye": "myene", "myv": "erzja", "mzn": "mazanderański", "na": "nauruański", "nan": "minnański", "nap": "neapolitański", "naq": "nama", "nb": "norweski (bokmål)", "nd": "ndebele północny", "nds": "dolnoniemiecki", "nds-NL": "dolnosaksoński", "ne": "nepalski", "new": "newarski", "ng": "ndonga", "nia": "nias", "niu": "niue", "njo": "ao", "nl": "niderlandzki", "nl-BE": "flamandzki", "nmg": "ngumba", "nn": "norweski (nynorsk)", "nnh": "ngiemboon", "no": "norweski", "nog": "nogajski", "non": "staronordyjski", "nov": "novial", "nqo": "n’ko", "nr": "ndebele południowy", "nso": "sotho północny", "nus": "nuer", "nv": "nawaho", "nwc": "newarski klasyczny", "ny": "njandża", "nym": "niamwezi", "nyn": "nyankole", "nyo": "nyoro", "nzi": "nzema", "oc": "oksytański", "oj": "odżibwa", "om": "oromo", "or": "orija", "os": "osetyjski", "osa": "osage", "ota": "osmańsko-turecki", "pa": "pendżabski", "pag": "pangasinan", "pal": "pahlavi", "pam": "pampango", "pap": "papiamento", "pau": "palau", "pcd": "pikardyjski", "pcm": "pidżyn nigeryjski", "pdc": "pensylwański", "pdt": "plautdietsch", "peo": "staroperski", "pfl": "palatynacki", "phn": "fenicki", "pi": "palijski", "pl": "polski", "pms": "piemoncki", "pnt": "pontyjski", "pon": "ponpejski", "prg": "pruski", "pro": "staroprowansalski", "ps": "paszto", "pt": "portugalski", "pt-BR": "brazylijski portugalski", "pt-PT": "europejski portugalski", "qu": "keczua", "quc": "kicze", "qug": "keczua górski (Chimborazo)", "raj": "radźasthani", "rap": "rapanui", "rar": "rarotonga", "rgn": "romagnol", "rif": "tarifit", "rm": "retoromański", "rn": "rundi", "ro": "rumuński", "ro-MD": "mołdawski", "rof": "rombo", "rom": "cygański", "root": "język rdzenny", "rtm": "rotumański", "ru": "rosyjski", "rue": "rusiński", "rug": "roviana", "rup": "arumuński", "rw": "kinya-ruanda", "rwk": "rwa", "sa": "sanskryt", "sad": "sandawe", "sah": "jakucki", "sam": "samarytański aramejski", "saq": "samburu", "sas": "sasak", "sat": "santali", "saz": "saurasztryjski", "sba": "ngambay", "sbp": "sangu", "sc": "sardyński", "scn": "sycylijski", "sco": "scots", "sd": "sindhi", "sdc": "sassarski", "sdh": "południowokurdyjski", "se": "północnolapoński", "see": "seneka", "seh": "sena", "sei": "seri", "sel": "selkupski", "ses": "koyraboro senni", "sg": "sango", "sga": "staroirlandzki", "sgs": "żmudzki", "sh": "serbsko-chorwacki", "shi": "tashelhiyt", "shn": "szan", "shu": "arabski (Czad)", "si": "syngaleski", "sid": "sidamo", "sk": "słowacki", "sl": "słoweński", "sli": "dolnośląski", "sly": "selayar", "sm": "samoański", "sma": "południowolapoński", "smj": "lule", "smn": "inari", "sms": "skolt", "sn": "shona", "snk": "soninke", "so": "somalijski", "sog": "sogdyjski", "sq": "albański", "sr": "serbski", "srn": "sranan tongo", "srr": "serer", "ss": "suazi", "ssy": "saho", "st": "sotho południowy", "stq": "fryzyjski saterlandzki", "su": "sundajski", "suk": "sukuma", "sus": "susu", "sux": "sumeryjski", "sv": "szwedzki", "sw": "suahili", "sw-CD": "kongijski suahili", "swb": "komoryjski", "syc": "syriacki", "syr": "syryjski", "szl": "śląski", "ta": "tamilski", "tcy": "tulu", "te": "telugu", "tem": "temne", "teo": "ateso", "ter": "tereno", "tet": "tetum", "tg": "tadżycki", "th": "tajski", "ti": "tigrinia", "tig": "tigre", "tiv": "tiw", "tk": "turkmeński", "tkl": "tokelau", "tkr": "cachurski", "tl": "tagalski", "tlh": "klingoński", "tli": "tlingit", "tly": "tałyski", "tmh": "tamaszek", "tn": "setswana", "to": "tonga", "tog": "tonga (Niasa)", "tpi": "tok pisin", "tr": "turecki", "tru": "turoyo", "trv": "taroko", "ts": "tsonga", "tsd": "cakoński", "tsi": "tsimshian", "tt": "tatarski", "ttt": "tacki", "tum": "tumbuka", "tvl": "tuvalu", "tw": "twi", "twq": "tasawaq", "ty": "tahitański", "tyv": "tuwiński", "tzm": "tamazight (Atlas Środkowy)", "udm": "udmurcki", "ug": "ujgurski", "uga": "ugarycki", "uk": "ukraiński", "umb": "umbundu", "ur": "urdu", "uz": "uzbecki", "vai": "wai", "ve": "venda", "vec": "wenecki", "vep": "wepski", "vi": "wietnamski", "vls": "zachodnioflamandzki", "vmf": "meński frankoński", "vo": "wolapik", "vot": "wotiacki", "vro": "võro", "vun": "vunjo", "wa": "waloński", "wae": "walser", "wal": "wolayta", "war": "waraj", "was": "washo", "wbp": "warlpiri", "wo": "wolof", "wuu": "wu", "xal": "kałmucki", "xh": "khosa", "xmf": "megrelski", "xog": "soga", "yap": "japski", "yav": "yangben", "ybb": "yemba", "yi": "jidysz", "yo": "joruba", "yrl": "nheengatu", "yue": "kantoński", "za": "czuang", "zap": "zapotecki", "zbl": "bliss", "zea": "zelandzki", "zen": "zenaga", "zgh": "standardowy marokański tamazight", "zh": "chiński", "zh-Hans": "chiński uproszczony", "zh-Hant": "chiński tradycyjny", "zu": "zulu", "zun": "zuni", "zza": "zazaki"}}, - "pt": {"rtl": false, "languageNames": {"aa": "afar", "ab": "abcázio", "ace": "achém", "ach": "acoli", "ada": "adangme", "ady": "adigue", "ae": "avéstico", "af": "africanês", "afh": "afrihili", "agq": "aghem", "ain": "ainu", "ak": "akan", "akk": "acadiano", "ale": "aleúte", "alt": "altai do sul", "am": "amárico", "an": "aragonês", "ang": "inglês antigo", "anp": "angika", "ar": "árabe", "ar-001": "árabe moderno padrão", "arc": "aramaico", "arn": "mapuche", "arp": "arapaho", "ars": "árabe do Négede", "arw": "arauaqui", "as": "assamês", "asa": "asu", "ast": "asturiano", "av": "avaric", "awa": "awadhi", "ay": "aimará", "az": "azerbaijano", "az-Arab": "azeri sul", "ba": "bashkir", "bal": "balúchi", "ban": "balinês", "bas": "basa", "bax": "bamun", "bbj": "ghomala", "be": "bielorrusso", "bej": "beja", "bem": "bemba", "bez": "bena", "bfd": "bafut", "bg": "búlgaro", "bgn": "balúchi ocidental", "bho": "bhojpuri", "bi": "bislamá", "bik": "bikol", "bin": "bini", "bkm": "kom", "bla": "siksika", "bm": "bambara", "bn": "bengalês", "bo": "tibetano", "br": "bretão", "bra": "braj", "brx": "bodo", "bs": "bósnio", "bss": "akoose", "bua": "buriat", "bug": "buginês", "bum": "bulu", "byn": "blin", "byv": "medumba", "ca": "catalão", "cad": "caddo", "car": "caribe", "cay": "cayuga", "cch": "atsam", "ccp": "Chakma", "ce": "checheno", "ceb": "cebuano", "cgg": "chiga", "ch": "chamorro", "chb": "chibcha", "chg": "chagatai", "chk": "chuquês", "chm": "mari", "chn": "jargão chinook", "cho": "choctaw", "chp": "chipewyan", "chr": "cherokee", "chy": "cheyenne", "ckb": "sorani curdo", "co": "córsico", "cop": "copta", "cr": "cree", "crh": "turco da Crimeia", "crs": "francês crioulo seselwa", "cs": "checo", "csb": "kashubian", "cu": "eslavo eclesiástico", "cv": "chuvash", "cy": "galês", "da": "dinamarquês", "dak": "dacota", "dar": "dargwa", "dav": "taita", "de": "alemão", "de-AT": "alemão austríaco", "de-CH": "alto alemão suíço", "del": "delaware", "den": "slave", "dgr": "dogrib", "din": "dinka", "dje": "zarma", "doi": "dogri", "dsb": "baixo sorábio", "dua": "duala", "dum": "holandês médio", "dv": "divehi", "dyo": "jola-fonyi", "dyu": "diúla", "dz": "dzonga", "dzg": "dazaga", "ebu": "embu", "ee": "ewe", "efi": "efik", "egy": "egípcio clássico", "eka": "ekajuk", "el": "grego", "elx": "elamite", "en": "inglês", "en-AU": "inglês australiano", "en-CA": "inglês canadiano", "en-GB": "inglês britânico", "en-US": "inglês americano", "enm": "inglês médio", "eo": "esperanto", "es": "espanhol", "es-419": "espanhol latino-americano", "es-ES": "espanhol europeu", "es-MX": "espanhol mexicano", "et": "estónio", "eu": "basco", "ewo": "ewondo", "fa": "persa", "fan": "fangue", "fat": "fanti", "ff": "fula", "fi": "finlandês", "fil": "filipino", "fj": "fijiano", "fo": "feroês", "fr": "francês", "fr-CA": "francês canadiano", "fr-CH": "francês suíço", "frc": "francês cajun", "frm": "francês médio", "fro": "francês antigo", "frr": "frísio setentrional", "frs": "frísio oriental", "fur": "friulano", "fy": "frísico ocidental", "ga": "irlandês", "gaa": "ga", "gag": "gagauz", "gay": "gayo", "gba": "gbaia", "gd": "gaélico escocês", "gez": "geʼez", "gil": "gilbertês", "gl": "galego", "gmh": "alto alemão médio", "gn": "guarani", "goh": "alemão alto antigo", "gon": "gondi", "gor": "gorontalo", "got": "gótico", "grb": "grebo", "grc": "grego clássico", "gsw": "alemão suíço", "gu": "guzerate", "guz": "gusii", "gv": "manx", "gwi": "gwichʼin", "ha": "haúça", "hai": "haida", "hak": "hacá", "haw": "havaiano", "he": "hebraico", "hi": "hindi", "hil": "hiligaynon", "hit": "hitita", "hmn": "hmong", "ho": "hiri motu", "hr": "croata", "hsb": "alto sorábio", "hsn": "xiang", "ht": "haitiano", "hu": "húngaro", "hup": "hupa", "hy": "arménio", "hz": "herero", "ia": "interlíngua", "iba": "iban", "ibb": "ibibio", "id": "indonésio", "ie": "interlingue", "ig": "igbo", "ii": "sichuan yi", "ik": "inupiaque", "ilo": "ilocano", "inh": "inguche", "io": "ido", "is": "islandês", "it": "italiano", "iu": "inuktitut", "ja": "japonês", "jbo": "lojban", "jgo": "nguemba", "jmc": "machame", "jpr": "judaico-persa", "jrb": "judaico-arábico", "jv": "javanês", "ka": "georgiano", "kaa": "kara-kalpak", "kab": "kabyle", "kac": "kachin", "kaj": "jju", "kam": "kamba", "kaw": "kawi", "kbd": "cabardiano", "kbl": "kanembu", "kcg": "tyap", "kde": "maconde", "kea": "crioulo cabo-verdiano", "kfo": "koro", "kg": "congolês", "kha": "khasi", "kho": "khotanês", "khq": "koyra chiini", "ki": "quicuio", "kj": "cuanhama", "kk": "cazaque", "kkj": "kako", "kl": "gronelandês", "kln": "kalenjin", "km": "khmer", "kmb": "quimbundo", "kn": "canarim", "ko": "coreano", "koi": "komi-permyak", "kok": "concani", "kos": "kosraean", "kpe": "kpelle", "kr": "canúri", "krc": "carachaio-bálcaro", "krl": "carélio", "kru": "kurukh", "ks": "caxemira", "ksb": "shambala", "ksf": "bafia", "ksh": "kölsch", "ku": "curdo", "kum": "kumyk", "kut": "kutenai", "kv": "komi", "kw": "córnico", "ky": "quirguiz", "la": "latim", "lad": "ladino", "lag": "langi", "lah": "lahnda", "lam": "lamba", "lb": "luxemburguês", "lez": "lezghiano", "lg": "ganda", "li": "limburguês", "lkt": "lacota", "ln": "lingala", "lo": "laosiano", "lol": "mongo", "lou": "crioulo de Louisiana", "loz": "lozi", "lrc": "luri do norte", "lt": "lituano", "lu": "luba-catanga", "lua": "luba-lulua", "lui": "luiseno", "lun": "lunda", "lus": "lushai", "luy": "luyia", "lv": "letão", "mad": "madurês", "maf": "mafa", "mag": "magahi", "mai": "maithili", "mak": "makassarês", "man": "mandinga", "mas": "massai", "mde": "maba", "mdf": "mocsa", "mdr": "mandar", "men": "mende", "mer": "meru", "mfe": "morisyen", "mg": "malgaxe", "mga": "irlandês médio", "mgh": "macua", "mgo": "meta’", "mh": "marshalês", "mi": "maori", "mic": "miquemaque", "min": "minangkabau", "mk": "macedónio", "ml": "malaiala", "mn": "mongol", "mnc": "manchu", "mni": "manipuri", "moh": "mohawk", "mos": "mossi", "mr": "marata", "ms": "malaio", "mt": "maltês", "mua": "mundang", "mus": "creek", "mwl": "mirandês", "mwr": "marwari", "my": "birmanês", "mye": "myene", "myv": "erzya", "mzn": "mazandarani", "na": "nauruano", "nan": "min nan", "nap": "napolitano", "naq": "nama", "nb": "norueguês bokmål", "nd": "ndebele do norte", "nds": "baixo-alemão", "nds-NL": "baixo-saxão", "ne": "nepalês", "new": "newari", "ng": "dongo", "nia": "nias", "niu": "niueano", "nl": "neerlandês", "nl-BE": "flamengo", "nmg": "kwasio", "nn": "norueguês nynorsk", "nnh": "ngiemboon", "no": "norueguês", "nog": "nogai", "non": "nórdico antigo", "nqo": "n’ko", "nr": "ndebele do sul", "nso": "soto setentrional", "nus": "nuer", "nv": "navajo", "nwc": "newari clássico", "ny": "nianja", "nym": "nyamwezi", "nyn": "nyankole", "nyo": "nyoro", "nzi": "nzima", "oc": "occitano", "oj": "ojibwa", "om": "oromo", "or": "oriya", "os": "ossético", "osa": "osage", "ota": "turco otomano", "pa": "panjabi", "pag": "língua pangasinesa", "pal": "pálavi", "pam": "pampango", "pap": "papiamento", "pau": "palauano", "pcm": "pidgin nigeriano", "peo": "persa antigo", "phn": "fenício", "pi": "páli", "pl": "polaco", "pon": "língua pohnpeica", "prg": "prussiano", "pro": "provençal antigo", "ps": "pastó", "pt": "português", "pt-BR": "português do Brasil", "pt-PT": "português europeu", "qu": "quíchua", "quc": "quiché", "raj": "rajastanês", "rap": "rapanui", "rar": "rarotongano", "rm": "romanche", "rn": "rundi", "ro": "romeno", "ro-MD": "moldávio", "rof": "rombo", "rom": "romani", "ru": "russo", "rup": "aromeno", "rw": "quiniaruanda", "rwk": "rwa", "sa": "sânscrito", "sad": "sandawe", "sah": "sakha", "sam": "aramaico samaritano", "saq": "samburu", "sas": "sasak", "sat": "santali", "sba": "ngambay", "sbp": "sangu", "sc": "sardo", "scn": "siciliano", "sco": "scots", "sd": "sindi", "sdh": "curdo meridional", "se": "sami do norte", "see": "seneca", "seh": "sena", "sel": "selkup", "ses": "koyraboro senni", "sg": "sango", "sga": "irlandês antigo", "sh": "servo-croata", "shi": "tachelhit", "shn": "shan", "shu": "árabe do Chade", "si": "cingalês", "sid": "sidamo", "sk": "eslovaco", "sl": "esloveno", "sm": "samoano", "sma": "sami do sul", "smj": "sami de Lule", "smn": "inari sami", "sms": "sami de Skolt", "sn": "shona", "snk": "soninquê", "so": "somali", "sog": "sogdiano", "sq": "albanês", "sr": "sérvio", "srn": "surinamês", "srr": "serere", "ss": "suázi", "ssy": "saho", "st": "soto do sul", "su": "sundanês", "suk": "sukuma", "sus": "susu", "sux": "sumério", "sv": "sueco", "sw": "suaíli", "sw-CD": "suaíli do Congo", "swb": "comoriano", "syc": "siríaco clássico", "syr": "siríaco", "ta": "tâmil", "te": "telugu", "tem": "temne", "teo": "teso", "ter": "tereno", "tet": "tétum", "tg": "tajique", "th": "tailandês", "ti": "tigrínia", "tig": "tigré", "tk": "turcomano", "tkl": "toquelauano", "tl": "tagalo", "tlh": "klingon", "tli": "tlinguite", "tmh": "tamaxeque", "tn": "tswana", "to": "tonga", "tog": "tonganês de Nyasa", "tpi": "tok pisin", "tr": "turco", "trv": "taroko", "ts": "tsonga", "tsi": "tsimshiano", "tt": "tatar", "tum": "tumbuka", "tvl": "tuvaluano", "tw": "twi", "twq": "tasawaq", "ty": "taitiano", "tyv": "tuviniano", "tzm": "tamazight do Atlas Central", "udm": "udmurte", "ug": "uigur", "uga": "ugarítico", "uk": "ucraniano", "umb": "umbundu", "ur": "urdu", "uz": "usbeque", "ve": "venda", "vi": "vietnamita", "vo": "volapuque", "vot": "vótico", "vun": "vunjo", "wa": "valão", "wae": "walser", "wal": "wolaytta", "war": "waray", "was": "washo", "wbp": "warlpiri", "wo": "uólofe", "wuu": "wu", "xal": "kalmyk", "xh": "xosa", "xog": "soga", "yap": "yapese", "yav": "yangben", "ybb": "yemba", "yi": "iídiche", "yo": "ioruba", "yue": "cantonês", "za": "zhuang", "zap": "zapoteco", "zbl": "símbolos blis", "zen": "zenaga", "zgh": "tamazight marroquino padrão", "zh": "chinês", "zh-Hans": "chinês simplificado", "zh-Hant": "chinês tradicional", "zu": "zulu", "zun": "zuni", "zza": "zaza"}}, - "pt-BR": {"rtl": false, "languageNames": {"aa": "afar", "ab": "abcázio", "ace": "achém", "ach": "acoli", "ada": "adangme", "ady": "adigue", "ae": "avéstico", "af": "africâner", "afh": "afrihili", "agq": "aghem", "ain": "ainu", "ak": "akan", "akk": "acadiano", "ale": "aleúte", "alt": "altai meridional", "am": "amárico", "an": "aragonês", "ang": "inglês arcaico", "anp": "angika", "ar": "árabe", "ar-001": "árabe moderno", "arc": "aramaico", "arn": "mapudungun", "arp": "arapaho", "ars": "árabe négede", "arw": "arauaqui", "as": "assamês", "asa": "asu", "ast": "asturiano", "av": "avárico", "awa": "awadhi", "ay": "aimará", "az": "azerbaijano", "az-Arab": "azeri sul", "ba": "bashkir", "bal": "balúchi", "ban": "balinês", "bas": "basa", "bax": "bamum", "bbj": "ghomala’", "be": "bielorrusso", "bej": "beja", "bem": "bemba", "bez": "bena", "bfd": "bafut", "bg": "búlgaro", "bgn": "balúchi ocidental", "bho": "bhojpuri", "bi": "bislamá", "bik": "bikol", "bin": "bini", "bkm": "kom", "bla": "siksika", "bm": "bambara", "bn": "bengali", "bo": "tibetano", "br": "bretão", "bra": "braj", "brx": "bodo", "bs": "bósnio", "bss": "akoose", "bua": "buriato", "bug": "buginês", "bum": "bulu", "byn": "blin", "byv": "medumba", "ca": "catalão", "cad": "caddo", "car": "caribe", "cay": "cayuga", "cch": "atsam", "ccp": "Chakma", "ce": "checheno", "ceb": "cebuano", "cgg": "chiga", "ch": "chamorro", "chb": "chibcha", "chg": "chagatai", "chk": "chuukese", "chm": "mari", "chn": "jargão Chinook", "cho": "choctaw", "chp": "chipewyan", "chr": "cheroqui", "chy": "cheiene", "ckb": "curdo central", "co": "corso", "cop": "copta", "cr": "cree", "crh": "turco da Crimeia", "crs": "crioulo francês seichelense", "cs": "tcheco", "csb": "kashubian", "cu": "eslavo eclesiástico", "cv": "tchuvache", "cy": "galês", "da": "dinamarquês", "dak": "dacota", "dar": "dargwa", "dav": "taita", "de": "alemão", "de-AT": "alemão (Áustria)", "de-CH": "alto alemão (Suíça)", "del": "delaware", "den": "slave", "dgr": "dogrib", "din": "dinka", "dje": "zarma", "doi": "dogri", "dsb": "baixo sorábio", "dua": "duala", "dum": "holandês médio", "dv": "divehi", "dyo": "jola-fonyi", "dyu": "diúla", "dz": "dzonga", "dzg": "dazaga", "ebu": "embu", "ee": "eve", "efi": "efique", "egy": "egípcio arcaico", "eka": "ekajuk", "el": "grego", "elx": "elamite", "en": "inglês", "en-AU": "inglês (Austrália)", "en-CA": "inglês (Canadá)", "en-GB": "inglês (Reino Unido)", "en-US": "inglês (Estados Unidos)", "enm": "inglês médio", "eo": "esperanto", "es": "espanhol", "es-419": "espanhol (América Latina)", "es-ES": "espanhol (Espanha)", "es-MX": "espanhol (México)", "et": "estoniano", "eu": "basco", "ewo": "ewondo", "fa": "persa", "fan": "fangue", "fat": "fanti", "ff": "fula", "fi": "finlandês", "fil": "filipino", "fj": "fijiano", "fo": "feroês", "fon": "fom", "fr": "francês", "fr-CA": "francês (Canadá)", "fr-CH": "francês (Suíça)", "frc": "francês cajun", "frm": "francês médio", "fro": "francês arcaico", "frr": "frísio setentrional", "frs": "frisão oriental", "fur": "friulano", "fy": "frísio ocidental", "ga": "irlandês", "gaa": "ga", "gag": "gagauz", "gay": "gayo", "gba": "gbaia", "gd": "gaélico escocês", "gez": "geez", "gil": "gilbertês", "gl": "galego", "gmh": "alto alemão médio", "gn": "guarani", "goh": "alemão arcaico alto", "gon": "gondi", "gor": "gorontalo", "got": "gótico", "grb": "grebo", "grc": "grego arcaico", "gsw": "alemão (Suíça)", "gu": "guzerate", "guz": "gusii", "gv": "manx", "gwi": "gwichʼin", "ha": "hauçá", "hai": "haida", "hak": "hacá", "haw": "havaiano", "he": "hebraico", "hi": "híndi", "hil": "hiligaynon", "hit": "hitita", "hmn": "hmong", "ho": "hiri motu", "hr": "croata", "hsb": "alto sorábio", "hsn": "xiang", "ht": "haitiano", "hu": "húngaro", "hup": "hupa", "hy": "armênio", "hz": "herero", "ia": "interlíngua", "iba": "iban", "ibb": "ibibio", "id": "indonésio", "ie": "interlingue", "ig": "igbo", "ii": "sichuan yi", "ik": "inupiaque", "ilo": "ilocano", "inh": "inguche", "io": "ido", "is": "islandês", "it": "italiano", "iu": "inuktitut", "ja": "japonês", "jbo": "lojban", "jgo": "nguemba", "jmc": "machame", "jpr": "judaico-persa", "jrb": "judaico-arábico", "jv": "javanês", "ka": "georgiano", "kaa": "kara-kalpak", "kab": "kabyle", "kac": "kachin", "kaj": "jju", "kam": "kamba", "kaw": "kawi", "kbd": "kabardiano", "kbl": "kanembu", "kcg": "tyap", "kde": "maconde", "kea": "crioulo cabo-verdiano", "kfo": "koro", "kg": "congolês", "kha": "khasi", "kho": "khotanês", "khq": "koyra chiini", "ki": "quicuio", "kj": "cuanhama", "kk": "cazaque", "kkj": "kako", "kl": "groenlandês", "kln": "kalenjin", "km": "khmer", "kmb": "quimbundo", "kn": "canarim", "ko": "coreano", "koi": "komi-permyak", "kok": "concani", "kos": "kosraean", "kpe": "kpelle", "kr": "canúri", "krc": "karachay-balkar", "krl": "carélio", "kru": "kurukh", "ks": "caxemira", "ksb": "shambala", "ksf": "bafia", "ksh": "kölsch", "ku": "curdo", "kum": "kumyk", "kut": "kutenai", "kv": "komi", "kw": "córnico", "ky": "quirguiz", "la": "latim", "lad": "ladino", "lag": "langi", "lah": "lahnda", "lam": "lamba", "lb": "luxemburguês", "lez": "lezgui", "lg": "luganda", "li": "limburguês", "lkt": "lacota", "ln": "lingala", "lo": "laosiano", "lol": "mongo", "lou": "crioulo da Louisiana", "loz": "lozi", "lrc": "luri setentrional", "lt": "lituano", "lu": "luba-catanga", "lua": "luba-lulua", "lui": "luiseno", "lun": "lunda", "lus": "lushai", "luy": "luyia", "lv": "letão", "mad": "madurês", "maf": "mafa", "mag": "magahi", "mai": "maithili", "mak": "makasar", "man": "mandinga", "mas": "massai", "mde": "maba", "mdf": "mocsa", "mdr": "mandar", "men": "mende", "mer": "meru", "mfe": "morisyen", "mg": "malgaxe", "mga": "irlandês médio", "mgh": "macua", "mgo": "meta’", "mh": "marshalês", "mi": "maori", "mic": "miquemaque", "min": "minangkabau", "mk": "macedônio", "ml": "malaiala", "mn": "mongol", "mnc": "manchu", "mni": "manipuri", "moh": "moicano", "mos": "mossi", "mr": "marati", "ms": "malaio", "mt": "maltês", "mua": "mundang", "mus": "creek", "mwl": "mirandês", "mwr": "marwari", "my": "birmanês", "mye": "myene", "myv": "erzya", "mzn": "mazandarani", "na": "nauruano", "nan": "min nan", "nap": "napolitano", "naq": "nama", "nb": "bokmål norueguês", "nd": "ndebele do norte", "nds": "baixo alemão", "nds-NL": "baixo saxão", "ne": "nepalês", "new": "newari", "ng": "dongo", "nia": "nias", "niu": "niueano", "nl": "holandês", "nl-BE": "flamengo", "nmg": "kwasio", "nn": "nynorsk norueguês", "nnh": "ngiemboon", "no": "norueguês", "nog": "nogai", "non": "nórdico arcaico", "nqo": "n’ko", "nr": "ndebele do sul", "nso": "soto setentrional", "nus": "nuer", "nv": "navajo", "nwc": "newari clássico", "ny": "nianja", "nym": "nyamwezi", "nyn": "nyankole", "nyo": "nyoro", "nzi": "nzima", "oc": "occitânico", "oj": "ojibwa", "om": "oromo", "or": "oriá", "os": "osseto", "osa": "osage", "ota": "turco otomano", "pa": "panjabi", "pag": "pangasinã", "pal": "pálavi", "pam": "pampanga", "pap": "papiamento", "pau": "palauano", "pcm": "pidgin nigeriano", "peo": "persa arcaico", "phn": "fenício", "pi": "páli", "pl": "polonês", "pon": "pohnpeiano", "prg": "prussiano", "pro": "provençal arcaico", "ps": "pashto", "pt": "português", "pt-BR": "português (Brasil)", "pt-PT": "português (Portugal)", "qu": "quíchua", "quc": "quiché", "raj": "rajastani", "rap": "rapanui", "rar": "rarotongano", "rm": "romanche", "rn": "rundi", "ro": "romeno", "ro-MD": "moldávio", "rof": "rombo", "rom": "romani", "root": "raiz", "ru": "russo", "rup": "aromeno", "rw": "quiniaruanda", "rwk": "rwa", "sa": "sânscrito", "sad": "sandawe", "sah": "sakha", "sam": "aramaico samaritano", "saq": "samburu", "sas": "sasak", "sat": "santali", "sba": "ngambay", "sbp": "sangu", "sc": "sardo", "scn": "siciliano", "sco": "scots", "sd": "sindi", "sdh": "curdo meridional", "se": "sami setentrional", "see": "seneca", "seh": "sena", "sel": "selkup", "ses": "koyraboro senni", "sg": "sango", "sga": "irlandês arcaico", "sh": "servo-croata", "shi": "tachelhit", "shn": "shan", "shu": "árabe chadiano", "si": "cingalês", "sid": "sidamo", "sk": "eslovaco", "sl": "esloveno", "sm": "samoano", "sma": "sami meridional", "smj": "sami de Lule", "smn": "sami de Inari", "sms": "sami de Skolt", "sn": "xona", "snk": "soninquê", "so": "somali", "sog": "sogdiano", "sq": "albanês", "sr": "sérvio", "srn": "surinamês", "srr": "serere", "ss": "suázi", "ssy": "saho", "st": "soto do sul", "su": "sundanês", "suk": "sukuma", "sus": "susu", "sux": "sumério", "sv": "sueco", "sw": "suaíli", "sw-CD": "suaíli do Congo", "swb": "comoriano", "syc": "siríaco clássico", "syr": "siríaco", "ta": "tâmil", "te": "télugo", "tem": "timne", "teo": "teso", "ter": "tereno", "tet": "tétum", "tg": "tadjique", "th": "tailandês", "ti": "tigrínia", "tig": "tigré", "tk": "turcomeno", "tkl": "toquelauano", "tl": "tagalo", "tlh": "klingon", "tli": "tlinguite", "tmh": "tamaxeque", "tn": "tswana", "to": "tonganês", "tog": "tonganês de Nyasa", "tpi": "tok pisin", "tr": "turco", "trv": "taroko", "ts": "tsonga", "tsi": "tsimshiano", "tt": "tártaro", "tum": "tumbuka", "tvl": "tuvaluano", "tw": "twi", "twq": "tasawaq", "ty": "taitiano", "tyv": "tuviniano", "tzm": "tamazirte do Atlas Central", "udm": "udmurte", "ug": "uigur", "uga": "ugarítico", "uk": "ucraniano", "umb": "umbundu", "ur": "urdu", "uz": "uzbeque", "ve": "venda", "vi": "vietnamita", "vo": "volapuque", "vot": "vótico", "vun": "vunjo", "wa": "valão", "wae": "walser", "wal": "wolaytta", "war": "waray", "was": "washo", "wbp": "warlpiri", "wo": "uolofe", "wuu": "wu", "xal": "kalmyk", "xh": "xhosa", "xog": "lusoga", "yap": "yapese", "yav": "yangben", "ybb": "yemba", "yi": "iídiche", "yo": "iorubá", "yue": "cantonês", "za": "zhuang", "zap": "zapoteco", "zbl": "símbolos blis", "zen": "zenaga", "zgh": "tamazirte marroqino padrão", "zh": "chinês", "zh-Hans": "chinês simplificado", "zh-Hant": "chinês tradicional", "zu": "zulu", "zun": "zunhi", "zza": "zazaki"}}, - "rm": {"rtl": false, "languageNames": {"aa": "afar", "ab": "abchasian", "ace": "aceh", "ach": "acoli", "ada": "andangme", "ady": "adygai", "ae": "avestic", "af": "afrikaans", "afh": "afrihili", "ain": "ainu", "ak": "akan", "akk": "accadic", "ale": "aleutic", "alt": "altaic dal sid", "am": "amaric", "an": "aragonais", "ang": "englais vegl", "anp": "angika", "ar": "arab", "ar-001": "arab (mund)", "arc": "arameic", "arn": "araucanic", "arp": "arapaho", "arw": "arawak", "as": "assami", "ast": "asturian", "av": "avaric", "awa": "awadhi", "ay": "aymara", "az": "aserbeidschanic", "ba": "baschkir", "bal": "belutschi", "ban": "balinais", "bas": "basaa", "be": "bieloruss", "bej": "bedscha", "bem": "bemba", "bg": "bulgar", "bho": "bhojpuri", "bi": "bislama", "bik": "bikol", "bin": "bini", "bla": "siksika", "bm": "bambara", "bn": "bengal", "bo": "tibetan", "br": "breton", "bra": "braj", "bs": "bosniac", "bua": "buriat", "bug": "bugi", "byn": "blin", "ca": "catalan", "cad": "caddo", "car": "caribic", "cch": "atsam", "ce": "tschetschen", "ceb": "cebuano", "ch": "chamorro", "chb": "chibcha", "chg": "tschagataic", "chk": "chuukais", "chm": "mari", "chn": "patuà chinook", "cho": "choctaw", "chp": "chipewyan", "chr": "cherokee", "chy": "cheyenne", "co": "cors", "cop": "coptic", "cr": "cree", "crh": "tirc crimean", "cs": "tschec", "csb": "kaschubic", "cu": "slav da baselgia", "cv": "tschuvasch", "cy": "kimric", "da": "danais", "dak": "dakota", "dar": "dargwa", "de": "tudestg", "de-AT": "tudestg austriac", "de-CH": "tudestg (Svizra)", "del": "delaware", "den": "slavey", "dgr": "dogrib", "din": "dinka", "doi": "dogri", "dsb": "bass sorb", "dua": "duala", "dum": "ollandais mesaun", "dv": "maledivic", "dyu": "diula", "dz": "dzongkha", "ee": "ewe", "efi": "efik", "egy": "egipzian vegl", "eka": "ekajuk", "el": "grec", "elx": "elamitic", "en": "englais", "en-AU": "englais australian", "en-CA": "englais canadais", "en-GB": "englais britannic", "en-US": "englais american", "enm": "englais mesaun", "eo": "esperanto", "es": "spagnol", "es-419": "spagnol latinamerican", "es-ES": "spagnol iberic", "es-MX": "spagnol (Mexico)", "et": "eston", "eu": "basc", "ewo": "ewondo", "fa": "persian", "fan": "fang", "fat": "fanti", "ff": "fulah", "fi": "finlandais", "fil": "filippino", "fj": "fidschian", "fo": "ferrais", "fr": "franzos", "fr-CA": "franzos canadais", "fr-CH": "franzos svizzer", "frm": "franzos mesaun", "fro": "franzos vegl", "frr": "fris dal nord", "frs": "fris da l’ost", "fur": "friulan", "fy": "fris", "ga": "irlandais", "gaa": "ga", "gay": "gayo", "gba": "gbaya", "gd": "gaelic scot", "gez": "geez", "gil": "gilbertais", "gl": "galician", "gmh": "tudestg mesaun", "gn": "guarani", "goh": "vegl tudestg da scrittira", "gon": "gondi", "gor": "gorontalo", "got": "gotic", "grb": "grebo", "grc": "grec vegl", "gsw": "tudestg svizzer", "gu": "gujarati", "gv": "manx", "gwi": "gwichʼin", "ha": "haussa", "hai": "haida", "haw": "hawaian", "he": "ebraic", "hi": "hindi", "hil": "hiligaynon", "hit": "ettitic", "hmn": "hmong", "ho": "hiri motu", "hr": "croat", "hsb": "aut sorb", "ht": "haitian", "hu": "ungarais", "hup": "hupa", "hy": "armen", "hz": "herero", "ia": "interlingua", "iba": "iban", "id": "indonais", "ie": "interlingue", "ig": "igbo", "ii": "sichuan yi", "ik": "inupiak", "ilo": "ilocano", "inh": "ingush", "io": "ido", "is": "islandais", "it": "talian", "iu": "inuktitut", "ja": "giapunais", "jbo": "lojban", "jpr": "giudaic-persian", "jrb": "giudaic-arab", "jv": "javanais", "ka": "georgian", "kaa": "karakalpak", "kab": "kabyle", "kac": "kachin", "kaj": "jju", "kam": "kamba", "kaw": "kawi", "kbd": "kabardic", "kcg": "tyap", "kfo": "koro", "kg": "kongo", "kha": "khasi", "kho": "khotanais", "ki": "kikuyu", "kj": "kuanyama", "kk": "casac", "kl": "grönlandais", "km": "cambodschan", "kmb": "kimbundu", "kn": "kannada", "ko": "corean", "kok": "konkani", "kos": "kosraean", "kpe": "kpelle", "kr": "kanuri", "krc": "karachay-balkar", "krl": "carelian", "kru": "kurukh", "ks": "kashmiri", "ku": "curd", "kum": "kumuk", "kut": "kutenai", "kv": "komi", "kw": "cornic", "ky": "kirghis", "la": "latin", "lad": "ladino", "lah": "lahnda", "lam": "lamba", "lb": "luxemburgais", "lez": "lezghian", "lg": "ganda", "li": "limburgais", "ln": "lingala", "lo": "laot", "lol": "lomongo", "loz": "lozi", "lt": "lituan", "lu": "luba-katanga", "lua": "luba-lulua", "lui": "luiseno", "lun": "lunda", "lus": "lushai", "lv": "letton", "mad": "madurais", "mag": "magahi", "mai": "maithili", "mak": "makassar", "man": "mandingo", "mas": "masai", "mdf": "moksha", "mdr": "mandar", "men": "mende", "mg": "malagassi", "mga": "irlandais mesaun", "mh": "marschallais", "mi": "maori", "mic": "micmac", "min": "minangkabau", "mk": "macedon", "ml": "malayalam", "mn": "mongolic", "mnc": "manchu", "mni": "manipuri", "moh": "mohawk", "mos": "mossi", "mr": "marathi", "ms": "malaic", "mt": "maltais", "mus": "creek", "mwl": "mirandais", "mwr": "marwari", "my": "birman", "myv": "erzya", "na": "nauru", "nap": "neapolitan", "nb": "norvegais bokmål", "nd": "ndebele dal nord", "nds": "bass tudestg", "nds-NL": "bass tudestg (Pajais Bass)", "ne": "nepalais", "new": "newari", "ng": "ndonga", "nia": "nias", "niu": "niue", "nl": "ollandais", "nl-BE": "flam", "nn": "norvegiais nynorsk", "no": "norvegiais", "nog": "nogai", "non": "nordic vegl", "nqo": "n’ko", "nr": "ndebele dal sid", "nso": "sotho dal nord", "nv": "navajo", "nwc": "newari classic", "ny": "nyanja", "nym": "nyamwezi", "nyn": "nyankole", "nyo": "nyoro", "nzi": "nzima", "oc": "occitan", "oj": "ojibwa", "om": "oromo", "or": "oriya", "os": "ossetic", "osa": "osage", "ota": "tirc ottoman", "pa": "punjabi", "pag": "pangasinan", "pal": "pahlavi", "pam": "pampanga", "pap": "papiamento", "pau": "palau", "peo": "persian vegl", "phn": "fenizian", "pi": "pali", "pl": "polac", "pon": "ponapean", "pro": "provenzal vegl", "ps": "paschto", "pt": "portugais", "pt-BR": "portugais brasilian", "pt-PT": "portugais iberian", "qu": "quechua", "raj": "rajasthani", "rap": "rapanui", "rar": "rarotonga", "rm": "rumantsch", "rn": "rundi", "ro": "rumen", "ro-MD": "moldav", "rom": "romani", "ru": "russ", "rup": "aromunic", "rw": "kinyarwanda", "sa": "sanscrit", "sad": "sandawe", "sah": "jakut", "sam": "arameic samaritan", "sas": "sasak", "sat": "santali", "sc": "sard", "scn": "sicilian", "sco": "scot", "sd": "sindhi", "se": "sami dal nord", "sel": "selkup", "sg": "sango", "sga": "irlandais vegl", "sh": "serbo-croat", "shn": "shan", "si": "singalais", "sid": "sidamo", "sk": "slovac", "sl": "sloven", "sm": "samoan", "sma": "sami dal sid", "smj": "sami lule", "smn": "sami inari", "sms": "sami skolt", "sn": "shona", "snk": "soninke", "so": "somali", "sog": "sogdian", "sq": "albanais", "sr": "serb", "srn": "sranan tongo", "srr": "serer", "ss": "swazi", "st": "sotho dal sid", "su": "sundanais", "suk": "sukuma", "sus": "susu", "sux": "sumeric", "sv": "svedais", "sw": "suahili", "sw-CD": "suahili (Republica Democratica dal Congo)", "syc": "siric classic", "syr": "siric", "ta": "tamil", "te": "telugu", "tem": "temne", "ter": "tereno", "tet": "tetum", "tg": "tadjik", "th": "tailandais", "ti": "tigrinya", "tig": "tigre", "tk": "turkmen", "tkl": "tokelau", "tl": "tagalog", "tlh": "klingonic", "tli": "tlingit", "tmh": "tamasheq", "tn": "tswana", "to": "tonga", "tog": "lingua tsonga", "tpi": "tok pisin", "tr": "tirc", "ts": "tsonga", "tsi": "tsimshian", "tt": "tatar", "tum": "tumbuka", "tvl": "tuvalu", "tw": "twi", "ty": "tahitian", "tyv": "tuvinian", "udm": "udmurt", "ug": "uiguric", "uga": "ugaritic", "uk": "ucranais", "umb": "mbundu", "ur": "urdu", "uz": "usbec", "ve": "venda", "vi": "vietnamais", "vo": "volapuk", "vot": "votic", "wa": "vallon", "wal": "walamo", "war": "waray", "was": "washo", "wo": "wolof", "xal": "kalmuk", "xh": "xhosa", "yap": "yapais", "yi": "jiddic", "yo": "yoruba", "za": "zhuang", "zap": "zapotec", "zbl": "simbols da Bliss", "zen": "zenaga", "zh": "chinais", "zh-Hans": "chinais simplifitgà", "zh-Hant": "chinais tradiziunal", "zu": "zulu", "zun": "zuni", "zza": "zaza"}}, - "ro": {"rtl": false, "languageNames": {"aa": "afar", "ab": "abhază", "ace": "aceh", "ach": "acoli", "ada": "adangme", "ady": "adyghe", "ae": "avestană", "af": "afrikaans", "afh": "afrihili", "agq": "aghem", "ain": "ainu", "ak": "akan", "akk": "akkadiană", "ale": "aleută", "alt": "altaică meridională", "am": "amharică", "an": "aragoneză", "ang": "engleză veche", "anp": "angika", "ar": "arabă", "ar-001": "arabă standard modernă", "arc": "aramaică", "arn": "mapuche", "arp": "arapaho", "ars": "arabă najdi", "arw": "arawak", "as": "asameză", "asa": "asu", "ast": "asturiană", "av": "avară", "awa": "awadhi", "ay": "aymara", "az": "azeră", "ba": "bașkiră", "bal": "baluchi", "ban": "balineză", "bas": "basaa", "bax": "bamun", "bbj": "ghomala", "be": "belarusă", "bej": "beja", "bem": "bemba", "bez": "bena", "bfd": "bafut", "bg": "bulgară", "bgn": "baluchi occidentală", "bho": "bhojpuri", "bi": "bislama", "bik": "bikol", "bin": "bini", "bkm": "kom", "bla": "siksika", "bm": "bambara", "bn": "bengaleză", "bo": "tibetană", "br": "bretonă", "bra": "braj", "brx": "bodo", "bs": "bosniacă", "bss": "akoose", "bua": "buriat", "bug": "bugineză", "bum": "bulu", "byn": "blin", "byv": "medumba", "ca": "catalană", "cad": "caddo", "car": "carib", "cay": "cayuga", "cch": "atsam", "ccp": "chakma", "ce": "cecenă", "ceb": "cebuană", "cgg": "chiga", "ch": "chamorro", "chb": "chibcha", "chg": "chagatai", "chk": "chuukese", "chm": "mari", "chn": "jargon chinook", "cho": "choctaw", "chp": "chipewyan", "chr": "cherokee", "chy": "cheyenne", "ckb": "kurdă centrală", "co": "corsicană", "cop": "coptă", "cr": "cree", "crh": "turcă crimeeană", "crs": "creolă franceză seselwa", "cs": "cehă", "csb": "cașubiană", "cu": "slavonă", "cv": "ciuvașă", "cy": "galeză", "da": "daneză", "dak": "dakota", "dar": "dargwa", "dav": "taita", "de": "germană", "de-AT": "germană (Austria)", "de-CH": "germană standard (Elveția)", "del": "delaware", "den": "slave", "dgr": "dogrib", "din": "dinka", "dje": "zarma", "doi": "dogri", "dsb": "sorabă de jos", "dua": "duala", "dum": "neerlandeză medie", "dv": "divehi", "dyo": "jola-fonyi", "dyu": "dyula", "dz": "dzongkha", "dzg": "dazaga", "ebu": "embu", "ee": "ewe", "efi": "efik", "egy": "egipteană veche", "eka": "ekajuk", "el": "greacă", "elx": "elamită", "en": "engleză", "en-AU": "engleză (Australia)", "en-CA": "engleză (Canada)", "en-GB": "engleză (Regatul Unit)", "en-US": "engleză (Statele Unite ale Americii)", "enm": "engleză medie", "eo": "esperanto", "es": "spaniolă", "es-419": "spaniolă (America Latină)", "es-ES": "spaniolă (Europa)", "es-MX": "spaniolă (Mexic)", "et": "estonă", "eu": "bască", "ewo": "ewondo", "fa": "persană", "fan": "fang", "fat": "fanti", "ff": "fulah", "fi": "finlandeză", "fil": "filipineză", "fj": "fijiană", "fo": "faroeză", "fr": "franceză", "fr-CA": "franceză (Canada)", "fr-CH": "franceză (Elveția)", "frc": "franceză cajun", "frm": "franceză medie", "fro": "franceză veche", "frr": "frizonă nordică", "frs": "frizonă orientală", "fur": "friulană", "fy": "frizonă occidentală", "ga": "irlandeză", "gaa": "ga", "gag": "găgăuză", "gan": "chineză gan", "gay": "gayo", "gba": "gbaya", "gd": "gaelică scoțiană", "gez": "geez", "gil": "gilbertină", "gl": "galiciană", "gmh": "germană înaltă medie", "gn": "guarani", "goh": "germană înaltă veche", "gon": "gondi", "gor": "gorontalo", "got": "gotică", "grb": "grebo", "grc": "greacă veche", "gsw": "germană (Elveția)", "gu": "gujarati", "guz": "gusii", "gv": "manx", "gwi": "gwichʼin", "ha": "hausa", "hai": "haida", "hak": "chineză hakka", "haw": "hawaiiană", "he": "ebraică", "hi": "hindi", "hil": "hiligaynon", "hit": "hitită", "hmn": "hmong", "ho": "hiri motu", "hr": "croată", "hsb": "sorabă de sus", "hsn": "chineză xiang", "ht": "haitiană", "hu": "maghiară", "hup": "hupa", "hy": "armeană", "hz": "herero", "ia": "interlingua", "iba": "iban", "ibb": "ibibio", "id": "indoneziană", "ie": "interlingue", "ig": "igbo", "ii": "yi din Sichuan", "ik": "inupiak", "ilo": "iloko", "inh": "ingușă", "io": "ido", "is": "islandeză", "it": "italiană", "iu": "inuktitut", "ja": "japoneză", "jbo": "lojban", "jgo": "ngomba", "jmc": "machame", "jpr": "iudeo-persană", "jrb": "iudeo-arabă", "jv": "javaneză", "ka": "georgiană", "kaa": "karakalpak", "kab": "kabyle", "kac": "kachin", "kaj": "jju", "kam": "kamba", "kaw": "kawi", "kbd": "kabardian", "kbl": "kanembu", "kcg": "tyap", "kde": "makonde", "kea": "kabuverdianu", "kfo": "koro", "kg": "congoleză", "kha": "khasi", "kho": "khotaneză", "khq": "koyra chiini", "ki": "kikuyu", "kj": "kuanyama", "kk": "kazahă", "kkj": "kako", "kl": "kalaallisut", "kln": "kalenjin", "km": "khmeră", "kmb": "kimbundu", "kn": "kannada", "ko": "coreeană", "koi": "komi-permiak", "kok": "konkani", "kos": "kosrae", "kpe": "kpelle", "kr": "kanuri", "krc": "karaceai-balkar", "krl": "kareliană", "kru": "kurukh", "ks": "cașmiră", "ksb": "shambala", "ksf": "bafia", "ksh": "kölsch", "ku": "kurdă", "kum": "kumyk", "kut": "kutenai", "kv": "komi", "kw": "cornică", "ky": "kârgâză", "la": "latină", "lad": "ladino", "lag": "langi", "lah": "lahnda", "lam": "lamba", "lb": "luxemburgheză", "lez": "lezghian", "lg": "ganda", "li": "limburgheză", "lkt": "lakota", "ln": "lingala", "lo": "laoțiană", "lol": "mongo", "lou": "creolă (Louisiana)", "loz": "lozi", "lrc": "luri de nord", "lt": "lituaniană", "lu": "luba-katanga", "lua": "luba-lulua", "lui": "luiseno", "lun": "lunda", "lus": "mizo", "luy": "luyia", "lv": "letonă", "mad": "madureză", "maf": "mafa", "mag": "magahi", "mai": "maithili", "mak": "makasar", "man": "mandingo", "mas": "masai", "mde": "maba", "mdf": "moksha", "mdr": "mandar", "men": "mende", "mer": "meru", "mfe": "morisyen", "mg": "malgașă", "mga": "irlandeză medie", "mgh": "makhuwa-meetto", "mgo": "meta’", "mh": "marshalleză", "mi": "maori", "mic": "micmac", "min": "minangkabau", "mk": "macedoneană", "ml": "malayalam", "mn": "mongolă", "mnc": "manciuriană", "mni": "manipuri", "moh": "mohawk", "mos": "mossi", "mr": "marathi", "ms": "malaeză", "mt": "malteză", "mua": "mundang", "mus": "creek", "mwl": "mirandeză", "mwr": "marwari", "my": "birmană", "mye": "myene", "myv": "erzya", "mzn": "mazanderani", "na": "nauru", "nan": "chineză min nan", "nap": "napolitană", "naq": "nama", "nb": "norvegiană bokmål", "nd": "ndebele de nord", "nds": "germana de jos", "nds-NL": "saxona de jos", "ne": "nepaleză", "new": "newari", "ng": "ndonga", "nia": "nias", "niu": "niueană", "nl": "neerlandeză", "nl-BE": "flamandă", "nmg": "kwasio", "nn": "norvegiană nynorsk", "nnh": "ngiemboon", "no": "norvegiană", "nog": "nogai", "non": "nordică veche", "nqo": "n’ko", "nr": "ndebele de sud", "nso": "sotho de nord", "nus": "nuer", "nv": "navajo", "nwc": "newari clasică", "ny": "nyanja", "nym": "nyamwezi", "nyn": "nyankole", "nyo": "nyoro", "nzi": "nzima", "oc": "occitană", "oj": "ojibwa", "om": "oromo", "or": "odia", "os": "osetă", "osa": "osage", "ota": "turcă otomană", "pa": "punjabi", "pag": "pangasinan", "pal": "pahlavi", "pam": "pampanga", "pap": "papiamento", "pau": "palauană", "pcm": "pidgin nigerian", "peo": "persană veche", "phn": "feniciană", "pi": "pali", "pl": "poloneză", "pon": "pohnpeiană", "prg": "prusacă", "pro": "provensală veche", "ps": "paștună", "pt": "portugheză", "pt-BR": "portugheză (Brazilia)", "pt-PT": "portugheză (Europa)", "qu": "quechua", "quc": "quiché", "raj": "rajasthani", "rap": "rapanui", "rar": "rarotongan", "rm": "romanșă", "rn": "kirundi", "ro": "română", "ro-MD": "română (Republica Moldova)", "rof": "rombo", "rom": "romani", "ru": "rusă", "rup": "aromână", "rw": "kinyarwanda", "rwk": "rwa", "sa": "sanscrită", "sad": "sandawe", "sah": "sakha", "sam": "aramaică samariteană", "saq": "samburu", "sas": "sasak", "sat": "santali", "sba": "ngambay", "sbp": "sangu", "sc": "sardiniană", "scn": "siciliană", "sco": "scots", "sd": "sindhi", "sdh": "kurdă de sud", "se": "sami de nord", "see": "seneca", "seh": "sena", "sel": "selkup", "ses": "koyraboro Senni", "sg": "sango", "sga": "irlandeză veche", "sh": "sârbo-croată", "shi": "tachelhit", "shn": "shan", "shu": "arabă ciadiană", "si": "singhaleză", "sid": "sidamo", "sk": "slovacă", "sl": "slovenă", "sm": "samoană", "sma": "sami de sud", "smj": "sami lule", "smn": "sami inari", "sms": "sami skolt", "sn": "shona", "snk": "soninke", "so": "somaleză", "sog": "sogdien", "sq": "albaneză", "sr": "sârbă", "srn": "sranan tongo", "srr": "serer", "ss": "swati", "ssy": "saho", "st": "sesotho", "su": "sundaneză", "suk": "sukuma", "sus": "susu", "sux": "sumeriană", "sv": "suedeză", "sw": "swahili", "sw-CD": "swahili (R.D. Congo)", "swb": "comoreză", "syc": "siriacă clasică", "syr": "siriacă", "ta": "tamilă", "te": "telugu", "tem": "timne", "teo": "teso", "ter": "tereno", "tet": "tetum", "tg": "tadjică", "th": "thailandeză", "ti": "tigrină", "tig": "tigre", "tk": "turkmenă", "tkl": "tokelau", "tl": "tagalog", "tlh": "klingoniană", "tli": "tlingit", "tmh": "tamashek", "tn": "setswana", "to": "tongană", "tog": "nyasa tonga", "tpi": "tok pisin", "tr": "turcă", "trv": "taroko", "ts": "tsonga", "tsi": "tsimshian", "tt": "tătară", "tum": "tumbuka", "tvl": "tuvalu", "tw": "twi", "twq": "tasawaq", "ty": "tahitiană", "tyv": "tuvană", "tzm": "tamazight din Altasul Central", "udm": "udmurt", "ug": "uigură", "uga": "ugaritică", "uk": "ucraineană", "umb": "umbundu", "ur": "urdu", "uz": "uzbecă", "ve": "venda", "vi": "vietnameză", "vo": "volapuk", "vot": "votică", "vun": "vunjo", "wa": "valonă", "wae": "walser", "wal": "wolaita", "war": "waray", "was": "washo", "wbp": "warlpiri", "wo": "wolof", "wuu": "chineză wu", "xal": "calmucă", "xh": "xhosa", "xog": "soga", "yap": "yapeză", "yav": "yangben", "ybb": "yemba", "yi": "idiș", "yo": "yoruba", "yue": "cantoneză", "za": "zhuang", "zap": "zapotecă", "zbl": "simboluri Bilss", "zen": "zenaga", "zgh": "tamazight standard marocană", "zh": "chineză", "zh-Hans": "chineză simplificată", "zh-Hant": "chineză tradițională", "zu": "zulu", "zun": "zuni", "zza": "zaza"}}, - "ru": {"rtl": false, "languageNames": {"aa": "афарский", "ab": "абхазский", "ace": "ачехский", "ach": "ачоли", "ada": "адангме", "ady": "адыгейский", "ae": "авестийский", "af": "африкаанс", "afh": "африхили", "agq": "агем", "ain": "айнский", "ak": "акан", "akk": "аккадский", "ale": "алеутский", "alt": "южноалтайский", "am": "амхарский", "an": "арагонский", "ang": "староанглийский", "anp": "ангика", "ar": "арабский", "ar-001": "литературный арабский", "arc": "арамейский", "arn": "мапуче", "arp": "арапахо", "ars": "недждийский арабский", "arw": "аравакский", "as": "ассамский", "asa": "асу", "ast": "астурийский", "av": "аварский", "awa": "авадхи", "ay": "аймара", "az": "азербайджанский", "ba": "башкирский", "bal": "белуджский", "ban": "балийский", "bas": "баса", "bax": "бамум", "bbj": "гомала", "be": "белорусский", "bej": "беджа", "bem": "бемба", "bez": "бена", "bfd": "бафут", "bg": "болгарский", "bgn": "западный белуджский", "bho": "бходжпури", "bi": "бислама", "bik": "бикольский", "bin": "бини", "bkm": "ком", "bla": "сиксика", "bm": "бамбара", "bn": "бенгальский", "bo": "тибетский", "br": "бретонский", "bra": "брауи", "brx": "бодо", "bs": "боснийский", "bss": "акоосе", "bua": "бурятский", "bug": "бугийский", "bum": "булу", "byn": "билин", "byv": "медумба", "ca": "каталанский", "cad": "каддо", "car": "кариб", "cay": "кайюга", "cch": "атсам", "ccp": "чакма", "ce": "чеченский", "ceb": "себуано", "cgg": "кига", "ch": "чаморро", "chb": "чибча", "chg": "чагатайский", "chk": "чукотский", "chm": "марийский", "chn": "чинук жаргон", "cho": "чоктавский", "chp": "чипевьян", "chr": "чероки", "chy": "шайенский", "ckb": "сорани", "co": "корсиканский", "cop": "коптский", "cr": "кри", "crh": "крымско-татарский", "crs": "сейшельский креольский", "cs": "чешский", "csb": "кашубский", "cu": "церковнославянский", "cv": "чувашский", "cy": "валлийский", "da": "датский", "dak": "дакота", "dar": "даргинский", "dav": "таита", "de": "немецкий", "de-AT": "австрийский немецкий", "de-CH": "литературный швейцарский немецкий", "del": "делаварский", "den": "слейви", "dgr": "догриб", "din": "динка", "dje": "джерма", "doi": "догри", "dsb": "нижнелужицкий", "dua": "дуала", "dum": "средненидерландский", "dv": "мальдивский", "dyo": "диола-фоньи", "dyu": "диула", "dz": "дзонг-кэ", "dzg": "даза", "ebu": "эмбу", "ee": "эве", "efi": "эфик", "egy": "древнеегипетский", "eka": "экаджук", "el": "греческий", "elx": "эламский", "en": "английский", "en-AU": "австралийский английский", "en-CA": "канадский английский", "en-GB": "британский английский", "en-US": "американский английский", "enm": "среднеанглийский", "eo": "эсперанто", "es": "испанский", "es-419": "латиноамериканский испанский", "es-ES": "европейский испанский", "es-MX": "мексиканский испанский", "et": "эстонский", "eu": "баскский", "ewo": "эвондо", "fa": "персидский", "fan": "фанг", "fat": "фанти", "ff": "фулах", "fi": "финский", "fil": "филиппинский", "fj": "фиджи", "fo": "фарерский", "fon": "фон", "fr": "французский", "fr-CA": "канадский французский", "fr-CH": "швейцарский французский", "frc": "каджунский французский", "frm": "среднефранцузский", "fro": "старофранцузский", "frr": "северный фризский", "frs": "восточный фризский", "fur": "фриульский", "fy": "западнофризский", "ga": "ирландский", "gaa": "га", "gag": "гагаузский", "gan": "гань", "gay": "гайо", "gba": "гбая", "gd": "гэльский", "gez": "геэз", "gil": "гилбертский", "gl": "галисийский", "gmh": "средневерхненемецкий", "gn": "гуарани", "goh": "древневерхненемецкий", "gon": "гонди", "gor": "горонтало", "got": "готский", "grb": "гребо", "grc": "древнегреческий", "gsw": "швейцарский немецкий", "gu": "гуджарати", "guz": "гусии", "gv": "мэнский", "gwi": "гвичин", "ha": "хауса", "hai": "хайда", "hak": "хакка", "haw": "гавайский", "he": "иврит", "hi": "хинди", "hil": "хилигайнон", "hit": "хеттский", "hmn": "хмонг", "ho": "хиримоту", "hr": "хорватский", "hsb": "верхнелужицкий", "hsn": "сян", "ht": "гаитянский", "hu": "венгерский", "hup": "хупа", "hy": "армянский", "hz": "гереро", "ia": "интерлингва", "iba": "ибанский", "ibb": "ибибио", "id": "индонезийский", "ie": "интерлингве", "ig": "игбо", "ii": "носу", "ik": "инупиак", "ilo": "илоко", "inh": "ингушский", "io": "идо", "is": "исландский", "it": "итальянский", "iu": "инуктитут", "ja": "японский", "jbo": "ложбан", "jgo": "нгомба", "jmc": "мачаме", "jpr": "еврейско-персидский", "jrb": "еврейско-арабский", "jv": "яванский", "ka": "грузинский", "kaa": "каракалпакский", "kab": "кабильский", "kac": "качинский", "kaj": "каджи", "kam": "камба", "kaw": "кави", "kbd": "кабардинский", "kbl": "канембу", "kcg": "тьяп", "kde": "маконде", "kea": "кабувердьяну", "kfo": "коро", "kg": "конго", "kha": "кхаси", "kho": "хотанский", "khq": "койра чиини", "ki": "кикуйю", "kj": "кунама", "kk": "казахский", "kkj": "како", "kl": "гренландский", "kln": "календжин", "km": "кхмерский", "kmb": "кимбунду", "kn": "каннада", "ko": "корейский", "koi": "коми-пермяцкий", "kok": "конкани", "kos": "косраенский", "kpe": "кпелле", "kr": "канури", "krc": "карачаево-балкарский", "krl": "карельский", "kru": "курух", "ks": "кашмири", "ksb": "шамбала", "ksf": "бафия", "ksh": "кёльнский", "ku": "курдский", "kum": "кумыкский", "kut": "кутенаи", "kv": "коми", "kw": "корнский", "ky": "киргизский", "la": "латинский", "lad": "ладино", "lag": "ланго", "lah": "лахнда", "lam": "ламба", "lb": "люксембургский", "lez": "лезгинский", "lg": "ганда", "li": "лимбургский", "lkt": "лакота", "ln": "лингала", "lo": "лаосский", "lol": "монго", "lou": "луизианский креольский", "loz": "лози", "lrc": "севернолурский", "lt": "литовский", "lu": "луба-катанга", "lua": "луба-лулуа", "lui": "луисеньо", "lun": "лунда", "luo": "луо", "lus": "мизо", "luy": "лухья", "lv": "латышский", "mad": "мадурский", "maf": "мафа", "mag": "магахи", "mai": "майтхили", "mak": "макассарский", "man": "мандинго", "mas": "масаи", "mde": "маба", "mdf": "мокшанский", "mdr": "мандарский", "men": "менде", "mer": "меру", "mfe": "маврикийский креольский", "mg": "малагасийский", "mga": "среднеирландский", "mgh": "макуа-меетто", "mgo": "мета", "mh": "маршалльский", "mi": "маори", "mic": "микмак", "min": "минангкабау", "mk": "македонский", "ml": "малаялам", "mn": "монгольский", "mnc": "маньчжурский", "mni": "манипурский", "moh": "мохаук", "mos": "моси", "mr": "маратхи", "ms": "малайский", "mt": "мальтийский", "mua": "мунданг", "mus": "крик", "mwl": "мирандский", "mwr": "марвари", "my": "бирманский", "mye": "миене", "myv": "эрзянский", "mzn": "мазендеранский", "na": "науру", "nan": "миньнань", "nap": "неаполитанский", "naq": "нама", "nb": "норвежский букмол", "nd": "северный ндебеле", "nds": "нижнегерманский", "nds-NL": "нижнесаксонский", "ne": "непальский", "new": "неварский", "ng": "ндонга", "nia": "ниас", "niu": "ниуэ", "nl": "нидерландский", "nl-BE": "фламандский", "nmg": "квасио", "nn": "нюнорск", "nnh": "нгиембунд", "no": "норвежский", "nog": "ногайский", "non": "старонорвежский", "nqo": "нко", "nr": "южный ндебеле", "nso": "северный сото", "nus": "нуэр", "nv": "навахо", "nwc": "классический невари", "ny": "ньянджа", "nym": "ньямвези", "nyn": "ньянколе", "nyo": "ньоро", "nzi": "нзима", "oc": "окситанский", "oj": "оджибва", "om": "оромо", "or": "ория", "os": "осетинский", "osa": "оседжи", "ota": "старотурецкий", "pa": "панджаби", "pag": "пангасинан", "pal": "пехлевийский", "pam": "пампанга", "pap": "папьяменто", "pau": "палау", "pcm": "нигерийско-креольский", "peo": "староперсидский", "phn": "финикийский", "pi": "пали", "pl": "польский", "pon": "понапе", "prg": "прусский", "pro": "старопровансальский", "ps": "пушту", "pt": "португальский", "pt-BR": "бразильский португальский", "pt-PT": "европейский португальский", "qu": "кечуа", "quc": "киче", "raj": "раджастхани", "rap": "рапануйский", "rar": "раротонга", "rm": "романшский", "rn": "рунди", "ro": "румынский", "ro-MD": "молдавский", "rof": "ромбо", "rom": "цыганский", "root": "праязык", "ru": "русский", "rup": "арумынский", "rw": "киньяруанда", "rwk": "руанда", "sa": "санскрит", "sad": "сандаве", "sah": "саха", "sam": "самаритянский арамейский", "saq": "самбуру", "sas": "сасакский", "sat": "сантали", "sba": "нгамбайский", "sbp": "сангу", "sc": "сардинский", "scn": "сицилийский", "sco": "шотландский", "sd": "синдхи", "sdh": "южнокурдский", "se": "северносаамский", "see": "сенека", "seh": "сена", "sel": "селькупский", "ses": "койраборо сенни", "sg": "санго", "sga": "староирландский", "sh": "сербскохорватский", "shi": "ташельхит", "shn": "шанский", "shu": "чадский арабский", "si": "сингальский", "sid": "сидама", "sk": "словацкий", "sl": "словенский", "sm": "самоанский", "sma": "южносаамский", "smj": "луле-саамский", "smn": "инари-саамский", "sms": "колтта-саамский", "sn": "шона", "snk": "сонинке", "so": "сомали", "sog": "согдийский", "sq": "албанский", "sr": "сербский", "srn": "сранан-тонго", "srr": "серер", "ss": "свази", "ssy": "сахо", "st": "южный сото", "su": "сунданский", "suk": "сукума", "sus": "сусу", "sux": "шумерский", "sv": "шведский", "sw": "суахили", "sw-CD": "конголезский суахили", "swb": "коморский", "syc": "классический сирийский", "syr": "сирийский", "ta": "тамильский", "te": "телугу", "tem": "темне", "teo": "тесо", "ter": "терено", "tet": "тетум", "tg": "таджикский", "th": "тайский", "ti": "тигринья", "tig": "тигре", "tiv": "тиви", "tk": "туркменский", "tkl": "токелайский", "tl": "тагалог", "tlh": "клингонский", "tli": "тлингит", "tmh": "тамашек", "tn": "тсвана", "to": "тонганский", "tog": "тонга", "tpi": "ток-писин", "tr": "турецкий", "tru": "туройо", "trv": "седекский", "ts": "тсонга", "tsi": "цимшиан", "tt": "татарский", "tum": "тумбука", "tvl": "тувалу", "tw": "тви", "twq": "тасавак", "ty": "таитянский", "tyv": "тувинский", "tzm": "среднеатласский тамазигхтский", "udm": "удмуртский", "ug": "уйгурский", "uga": "угаритский", "uk": "украинский", "umb": "умбунду", "ur": "урду", "uz": "узбекский", "vai": "ваи", "ve": "венда", "vi": "вьетнамский", "vo": "волапюк", "vot": "водский", "vun": "вунджо", "wa": "валлонский", "wae": "валлисский", "wal": "воламо", "war": "варай", "was": "вашо", "wbp": "вальбири", "wo": "волоф", "wuu": "ву", "xal": "калмыцкий", "xh": "коса", "xog": "сога", "yao": "яо", "yap": "яп", "yav": "янгбен", "ybb": "йемба", "yi": "идиш", "yo": "йоруба", "yue": "кантонский", "za": "чжуань", "zap": "сапотекский", "zbl": "блиссимволика", "zen": "зенагский", "zgh": "тамазигхтский", "zh": "китайский", "zh-Hans": "китайский, упрощенное письмо", "zh-Hant": "китайский, традиционное письмо", "zu": "зулу", "zun": "зуньи", "zza": "заза"}}, - "sc": {"rtl": false, "languageNames": {}}, - "si": {"rtl": false, "languageNames": {"aa": "අෆාර්", "ab": "ඇබ්කාසියානු", "ace": "අචයිනිස්", "ada": "අඩන්ග්මෙ", "ady": "අඩිඝෙ", "aeb": "ටියුනිසියනු අරාබි", "af": "අෆ්රිකාන්ස්", "agq": "ඇගම්", "ain": "අයිනු", "ak": "අකාන්", "ale": "ඇලුඑට්", "alt": "සතර්න් අල්ටය්", "am": "ඇම්හාරික්", "an": "ඇරගොනීස්", "anp": "අන්ගික", "ar": "අරාබි", "ar-001": "නූතන සම්මත අරාබි", "arn": "මපුචෙ", "arp": "ඇරපහො", "as": "ඇසෑම්", "asa": "අසු", "ast": "ඇස්ටියුරියන්", "av": "ඇවරික්", "awa": "අවදි", "ay": "අයිමරා", "az": "අසර්බයිජාන්", "ba": "බාෂ්කිර්", "ban": "බැලිනීස්", "bas": "බසා", "be": "බෙලරුසියානු", "bem": "බෙම්බා", "bez": "බෙනා", "bg": "බල්ගේරියානු", "bgn": "බටහිර බලොචි", "bho": "බොජ්පුරි", "bi": "බිස්ලමා", "bin": "බිනි", "bla": "සික්සිකා", "bm": "බම්බරා", "bn": "බෙංගාලි", "bo": "ටිබෙට්", "br": "බ්‍රේටොන්", "brx": "බොඩො", "bs": "බොස්නියානු", "bug": "බුගිනීස්", "byn": "බ්ලින්", "ca": "කැටලන්", "ce": "චෙච්නියානු", "ceb": "සෙබුඅනො", "cgg": "චිගා", "ch": "චමොරො", "chk": "චූකීස්", "chm": "මරි", "cho": "චොක්ටොව්", "chr": "චෙරොකී", "chy": "චෙයෙන්නෙ", "ckb": "සොරානි කුර්දිෂ්", "co": "කෝසිකානු", "crs": "සෙසෙල්ව ක්‍රොල් ෆ්‍රෙන්ච්", "cs": "චෙක්", "cu": "චර්ච් ස්ලැවික්", "cv": "චවේෂ්", "cy": "වෙල්ෂ්", "da": "ඩැනිශ්", "dak": "ඩකොටා", "dar": "ඩාර්ග්වා", "dav": "ටයිටා", "de": "ජර්මන්", "de-AT": "ඔස්ට්‍රියානු ජර්මන්", "de-CH": "ස්විස් උසස් ජර්මන්", "dgr": "ඩොග්‍රිබ්", "dje": "සර්මා", "dsb": "පහළ සෝබියානු", "dua": "ඩුආලා", "dv": "ඩිවෙහි", "dyo": "ජොල-ෆෝනියි", "dz": "ඩිසොන්කා", "dzg": "ඩසාගා", "ebu": "එම්බු", "ee": "ඉව්", "efi": "එෆික්", "eka": "එකජුක්", "el": "ග්‍රීක", "en": "ඉංග්‍රීසි", "en-AU": "ඕස්ට්‍රේලියානු ඉංග්‍රීසි", "en-CA": "කැනේඩියානු ඉංග්‍රීසි", "en-GB": "බ්‍රිතාන්‍ය ඉංග්‍රීසි", "en-US": "ඇමෙරිකානු ඉංග්‍රීසි", "eo": "එස්පැරන්ටෝ", "es": "ස්පාඤ්ඤ", "es-419": "ලතින් ඇමරිකානු ස්පාඤ්ඤ", "es-ES": "යුරෝපීය ස්පාඤ්ඤ", "es-MX": "මෙක්සිකානු ස්පාඤ්ඤ", "et": "එස්තෝනියානු", "eu": "බාස්ක්", "ewo": "එවොන්ඩො", "fa": "පර්සියානු", "ff": "ෆුලාහ්", "fi": "ෆින්ලන්ත", "fil": "පිලිපීන", "fj": "ෆීජි", "fo": "ෆාරෝස්", "fon": "ෆොන්", "fr": "ප්‍රංශ", "fr-CA": "කැනේඩියානු ප්‍රංශ", "fr-CH": "ස්විස් ප්‍රංශ", "fur": "ෆ්‍රියුලියන්", "fy": "බටහිර ෆ්‍රිසියානු", "ga": "අයර්ලන්ත", "gaa": "ගා", "gag": "ගගාස්", "gan": "ගැන් චයිනිස්", "gd": "ස්කොට්ටිශ් ගෙලික්", "gez": "ගීස්", "gil": "ගිල්බර්ටීස්", "gl": "ගැලීසියානු", "gn": "ගුවාරනි", "gor": "ගොරොන්ටාලො", "gsw": "ස්විස් ජර්මානු", "gu": "ගුජරාටි", "guz": "ගුසී", "gv": "මැන්ක්ස්", "gwi": "ග්විචින්", "ha": "හෝසා", "hak": "හකා චයිනිස්", "haw": "හවායි", "he": "හීබෲ", "hi": "හින්දි", "hil": "හිලිගෙනන්", "hmn": "මොන්ග්", "hr": "කෝඒෂියානු", "hsb": "ඉහළ සෝබියානු", "hsn": "සියැන් චීන", "ht": "හයිටි", "hu": "හන්ගේරියානු", "hup": "හුපා", "hy": "ආර්මේනියානු", "hz": "හෙරෙරො", "ia": "ඉන්ටලින්ගුආ", "iba": "ඉබන්", "ibb": "ඉබිබියො", "id": "ඉන්දුනීසියානු", "ig": "ඉග්බෝ", "ii": "සිචුආන් යී", "ilo": "ඉලොකො", "inh": "ඉන්ගුෂ්", "io": "ඉඩො", "is": "අයිස්ලන්ත", "it": "ඉතාලි", "iu": "ඉනුක්ටිටුට්", "ja": "ජපන්", "jbo": "ලොජ්බන්", "jgo": "නොම්බා", "jmc": "මැකාමී", "jv": "ජාවා", "ka": "ජෝර්ජියානු", "kab": "කාබිල්", "kac": "කචින්", "kaj": "ජ්ජු", "kam": "කැම්බා", "kbd": "කබාර්ඩියන්", "kcg": "ට්යප්", "kde": "මැකොන්ඩ්", "kea": "කබුවෙර්ඩියානු", "kfo": "කොරො", "kha": "ඛසි", "khq": "කොයිරා චිනි", "ki": "කිකුයු", "kj": "කුයන්යමා", "kk": "කසාඛ්", "kkj": "කකො", "kl": "කලාලිසට්", "kln": "කලෙන්ජන්", "km": "කමර්", "kmb": "කිම්බුන්ඩු", "kn": "කණ්ණඩ", "ko": "කොරියානු", "koi": "කොමි-පර්මියාක්", "kok": "කොන්කනි", "kpe": "ක්පෙලෙ", "kr": "කනුරි", "krc": "කරන්චි-බාකර්", "krl": "කැරෙලියන්", "kru": "කුරුඛ්", "ks": "කාෂ්මීර්", "ksb": "ශාම්බලා", "ksf": "බාෆියා", "ksh": "කොලොග්නියන්", "ku": "කුර්දි", "kum": "කුමික්", "kv": "කොමි", "kw": "කෝනීසියානු", "ky": "කිර්ගිස්", "la": "ලතින්", "lad": "ලඩිනො", "lag": "ලංගි", "lb": "ලක්සැම්බර්ග්", "lez": "ලෙස්ගියන්", "lg": "ගන්ඩා", "li": "ලිම්බර්ගිශ්", "lkt": "ලකොට", "ln": "ලින්ගලා", "lo": "ලාඕ", "loz": "ලොසි", "lrc": "උතුරු ලුරි", "lt": "ලිතුවේනියානු", "lu": "ලුබා-කටන්ගා", "lua": "ලුබ-ලුලුඅ", "lun": "ලුන්ඩ", "luo": "ලුඔ", "lus": "මිසො", "luy": "ලුයියා", "lv": "ලැට්වියානු", "mad": "මදුරීස්", "mag": "මඝහි", "mai": "මයිතිලි", "mak": "මකාසාර්", "mas": "මසායි", "mdf": "මොක්ශා", "men": "මෙන්ඩෙ", "mer": "මෙරු", "mfe": "මොරිස්යෙම්", "mg": "මලගාසි", "mgh": "මඛුවා-මීටෝ", "mgo": "මෙටා", "mh": "මාශලීස්", "mi": "මාවොරි", "mic": "මික්මැක්", "min": "මිනන්ග්කබාවු", "mk": "මැසිඩෝනියානු", "ml": "මලයාලම්", "mn": "මොංගෝලියානු", "mni": "මනිපුරි", "moh": "මොහොව්ක්", "mos": "මොස්සි", "mr": "මරාති", "ms": "මැලේ", "mt": "මොල්ටිස්", "mua": "මුන්ඩන්", "mus": "ක්‍රීක්", "mwl": "මිරන්ඩීස්", "my": "බුරුම", "myv": "එර්ස්යා", "mzn": "මැසන්ඩරනි", "na": "නෞරු", "nan": "මින් නන් චයිනිස්", "nap": "නියාපොලිටන්", "naq": "නාමා", "nb": "නෝර්වීජියානු බොක්මල්", "nd": "උතුරු එන්ඩිබෙලෙ", "nds": "පහළ ජර්මන්", "nds-NL": "පහළ සැක්සන්", "ne": "නේපාල", "new": "නෙවාරි", "ng": "න්ඩොන්ගා", "nia": "නියාස්", "niu": "නියුඑන්", "nl": "ලන්දේසි", "nl-BE": "ෆ්ලෙමිශ්", "nmg": "කුවාසිඔ", "nn": "නෝර්වීජියානු නයිනෝර්ස්ක්", "nnh": "න්ගියාම්බූන්", "nog": "නොගායි", "nqo": "එන්‘කෝ", "nr": "සෞත් ඩ්බේල්", "nso": "නොදර්න් සොතො", "nus": "නොයර්", "nv": "නවාජො", "ny": "න්යන්ජා", "nyn": "නයන්කෝලෙ", "oc": "ඔසිටාන්", "om": "ඔරොමෝ", "or": "ඔඩියා", "os": "ඔසිටෙක්", "pa": "පන්ජාබි", "pag": "පන්ගසීනන්", "pam": "පන්පන්ග", "pap": "පපියමෙන්ටො", "pau": "පලවුවන්", "pcm": "නෛජීරියන් පෙන්ගින්", "pl": "පෝලන්ත", "prg": "පෘශියන්", "ps": "පෂ්ටො", "pt": "පෘතුගීසි", "pt-BR": "බ්‍රසීල පෘතුගීසි", "pt-PT": "යුරෝපීය පෘතුගීසි", "qu": "ක්වීචුවා", "quc": "කියිචේ", "rap": "රපනුයි", "rar": "රරොටොන්ගන්", "rm": "රොමෑන්ශ්", "rn": "රුන්ඩි", "ro": "රොමේනියානු", "ro-MD": "මොල්ඩවිආනු", "rof": "රෝම්බෝ", "root": "රූට්", "ru": "රුසියානු", "rup": "ඇරොමානියානු", "rw": "කින්යර්වන්ඩා", "rwk": "ර්වා", "sa": "සංස්කෘත", "sad": "සන්ඩවෙ", "sah": "සඛා", "saq": "සම්බුරු", "sat": "සෑන්ටලි", "sba": "න්ගම්බෙ", "sbp": "සංගු", "sc": "සාර්ඩිනිඅන්", "scn": "සිසිලියන්", "sco": "ස්කොට්ස්", "sd": "සින්ධි", "sdh": "දකුණු කුර්දි", "se": "උතුරු සාමි", "seh": "සෙනා", "ses": "කෝයිරාබොරො සෙන්නි", "sg": "සන්ග්‍රෝ", "shi": "ටචේල්හිට්", "shn": "ශාන්", "si": "සිංහල", "sk": "ස්ලෝවැක්", "sl": "ස්ලෝවේනියානු", "sm": "සෑමොඅන්", "sma": "දකුණු සාමි", "smj": "ලුලේ සාමි", "smn": "ඉනාරි සාමි", "sms": "ස්කොල්ට් සාමි", "sn": "ශෝනා", "snk": "සොනින්කෙ", "so": "සෝමාලි", "sq": "ඇල්බේනියානු", "sr": "සර්බියානු", "srn": "ස්‍රන් ටොන්ගො", "ss": "ස්වති", "ssy": "සහො", "st": "සතර්න් සොතො", "su": "සන්ඩනීසියානු", "suk": "සුකුමා", "sv": "ස්වීඩන්", "sw": "ස්වාහිලි", "sw-CD": "කොංගෝ ස්වාහිලි", "swb": "කොමොරියන්", "syr": "ස්‍රයෑක්", "ta": "දෙමළ", "te": "තෙළිඟු", "tem": "ටිම්නෙ", "teo": "ටෙසෝ", "tet": "ටේටම්", "tg": "ටජික්", "th": "තායි", "ti": "ටිග්‍රින්යා", "tig": "ටීග්‍රෙ", "tk": "ටර්ක්මෙන්", "tlh": "ක්ලින්ගොන්", "tn": "ස්වනා", "to": "ටොංගා", "tpi": "ටොක් පිසින්", "tr": "තුර්කි", "trv": "ටරොකො", "ts": "සොන්ග", "tt": "ටාටර්", "tum": "ටුම්බුකා", "tvl": "ටුවාලු", "twq": "ටසවාක්", "ty": "ටහිටියන්", "tyv": "ටුවිනියන්", "tzm": "මධ්‍යම ඇට්ලස් ටමසිට්", "udm": "අඩ්මර්ට්", "ug": "උයිගර්", "uk": "යුක්රේනියානු", "umb": "උබුන්ඩු", "ur": "උර්දු", "uz": "උස්බෙක්", "vai": "වයි", "ve": "වෙන්ඩා", "vi": "වියට්නාම්", "vo": "වොලපූක්", "vun": "වුන්ජෝ", "wa": "වෑලූන්", "wae": "වොල්සර්", "wal": "වොලෙට්ට", "war": "වොරෙය්", "wbp": "වොපිරි", "wo": "වොලොෆ්", "wuu": "වූ චයිනිස්", "xal": "කල්මික්", "xh": "ශෝසා", "xog": "සොගා", "yav": "යන්ග්බෙන්", "ybb": "යෙම්බා", "yi": "යිඩිශ්", "yo": "යොරූබා", "yue": "කැන්ටොනීස්", "zgh": "සම්මත මොරොක්කෝ ටමසිග්ත්", "zh": "චීන", "zh-Hans": "සරල චීන", "zh-Hant": "සාම්ප්‍රදායික චීන", "zu": "සුලු", "zun": "සුනි", "zza": "සාසා"}}, - "sk": {"rtl": false, "languageNames": {"aa": "afarčina", "ab": "abcházčina", "ace": "acehčina", "ach": "ačoli", "ada": "adangme", "ady": "adygejčina", "ae": "avestčina", "af": "afrikánčina", "afh": "afrihili", "agq": "aghem", "ain": "ainčina", "ak": "akančina", "akk": "akkadčina", "ale": "aleutčina", "alt": "južná altajčina", "am": "amharčina", "an": "aragónčina", "ang": "stará angličtina", "anp": "angika", "ar": "arabčina", "ar-001": "arabčina (moderná štandardná)", "arc": "aramejčina", "arn": "mapudungun", "arp": "arapažština", "ars": "arabčina (nadždská)", "arw": "arawačtina", "as": "ásamčina", "asa": "asu", "ast": "astúrčina", "av": "avarčina", "awa": "awadhi", "ay": "aymarčina", "az": "azerbajdžančina", "ba": "baškirčina", "bal": "balúčtina", "ban": "balijčina", "bas": "basa", "bax": "bamun", "bbj": "ghomala", "be": "bieloruština", "bej": "bedža", "bem": "bemba", "bez": "bena", "bfd": "bafut", "bg": "bulharčina", "bgn": "západná balúčtina", "bho": "bhódžpurčina", "bi": "bislama", "bik": "bikolčina", "bin": "bini", "bkm": "kom", "bla": "siksika", "bm": "bambarčina", "bn": "bengálčina", "bo": "tibetčina", "br": "bretónčina", "bra": "bradžčina", "brx": "bodo", "bs": "bosniačtina", "bss": "akoose", "bua": "buriatčina", "bug": "bugiština", "bum": "bulu", "byn": "blin", "byv": "medumba", "ca": "katalánčina", "cad": "kaddo", "car": "karibčina", "cay": "kajugčina", "cch": "atsam", "ce": "čečenčina", "ceb": "cebuánčina", "cgg": "kiga", "ch": "čamorčina", "chb": "čibča", "chg": "čagatajčina", "chk": "chuuk", "chm": "marijčina", "chn": "činucký žargón", "cho": "čoktčina", "chp": "čipevajčina", "chr": "čerokí", "chy": "čejenčina", "ckb": "kurdčina (sorání)", "co": "korzičtina", "cop": "koptčina", "cr": "krí", "crh": "krymská tatárčina", "crs": "seychelská kreolčina", "cs": "čeština", "csb": "kašubčina", "cu": "cirkevná slovančina", "cv": "čuvaština", "cy": "waleština", "da": "dánčina", "dak": "dakotčina", "dar": "darginčina", "dav": "taita", "de": "nemčina", "de-AT": "nemčina (rakúska)", "de-CH": "nemčina (švajčiarska spisovná)", "del": "delawarčina", "den": "slavé", "dgr": "dogribčina", "din": "dinkčina", "dje": "zarma", "doi": "dógrí", "dsb": "dolnolužická srbčina", "dua": "duala", "dum": "stredná holandčina", "dv": "maldivčina", "dyo": "jola-fonyi", "dyu": "ďula", "dz": "dzongkha", "dzg": "dazaga", "ebu": "embu", "ee": "eweština", "efi": "efik", "egy": "staroegyptčina", "eka": "ekadžuk", "el": "gréčtina", "elx": "elamčina", "en": "angličtina", "en-AU": "angličtina (austrálska)", "en-CA": "angličtina (kanadská)", "en-GB": "angličtina (britská)", "en-US": "angličtina (americká)", "enm": "stredná angličtina", "eo": "esperanto", "es": "španielčina", "es-419": "španielčina (latinskoamerická)", "es-ES": "španielčina (európska)", "es-MX": "španielčina (mexická)", "et": "estónčina", "eu": "baskičtina", "ewo": "ewondo", "fa": "perzština", "fan": "fangčina", "fat": "fanti", "ff": "fulbčina", "fi": "fínčina", "fil": "filipínčina", "fj": "fidžijčina", "fo": "faerčina", "fon": "fončina", "fr": "francúzština", "fr-CA": "francúzština (kanadská)", "fr-CH": "francúzština (švajčiarska)", "frc": "francúzština (Cajun)", "frm": "stredná francúzština", "fro": "stará francúzština", "frr": "severná frízština", "frs": "východofrízština", "fur": "friulčina", "fy": "západná frízština", "ga": "írčina", "gaa": "ga", "gag": "gagauzština", "gay": "gayo", "gba": "gbaja", "gd": "škótska gaelčina", "gez": "etiópčina", "gil": "kiribatčina", "gl": "galícijčina", "gmh": "stredná horná nemčina", "gn": "guaraníjčina", "goh": "stará horná nemčina", "gon": "góndčina", "gor": "gorontalo", "got": "gótčina", "grb": "grebo", "grc": "starogréčtina", "gsw": "nemčina (švajčiarska)", "gu": "gudžarátčina", "guz": "gusii", "gv": "mančina", "gwi": "kučinčina", "ha": "hauština", "hai": "haida", "haw": "havajčina", "he": "hebrejčina", "hi": "hindčina", "hil": "hiligajnončina", "hit": "chetitčina", "hmn": "hmongčina", "ho": "hiri motu", "hr": "chorvátčina", "hsb": "hornolužická srbčina", "ht": "haitská kreolčina", "hu": "maďarčina", "hup": "hupčina", "hy": "arménčina", "hz": "herero", "ia": "interlingua", "iba": "ibančina", "ibb": "ibibio", "id": "indonézština", "ie": "interlingue", "ig": "igboština", "ii": "s’čchuanská iovčina", "ik": "inupik", "ilo": "ilokánčina", "inh": "inguština", "io": "ido", "is": "islandčina", "it": "taliančina", "iu": "inuktitut", "ja": "japončina", "jbo": "lojban", "jgo": "ngomba", "jmc": "mašame", "jpr": "židovská perzština", "jrb": "židovská arabčina", "jv": "jávčina", "ka": "gruzínčina", "kaa": "karakalpačtina", "kab": "kabylčina", "kac": "kačjinčina", "kaj": "jju", "kam": "kamba", "kaw": "kawi", "kbd": "kabardčina", "kbl": "kanembu", "kcg": "tyap", "kde": "makonde", "kea": "kapverdčina", "kfo": "koro", "kg": "kongčina", "kha": "khasijčina", "kho": "chotančina", "khq": "západná songhajčina", "ki": "kikujčina", "kj": "kuaňama", "kk": "kazaština", "kkj": "kako", "kl": "grónčina", "kln": "kalendžin", "km": "khmérčina", "kmb": "kimbundu", "kn": "kannadčina", "ko": "kórejčina", "koi": "komi-permiačtina", "kok": "konkánčina", "kos": "kusaie", "kpe": "kpelle", "kr": "kanurijčina", "krc": "karačajevsko-balkarčina", "krl": "karelčina", "kru": "kuruchčina", "ks": "kašmírčina", "ksb": "šambala", "ksf": "bafia", "ksh": "kolínčina", "ku": "kurdčina", "kum": "kumyčtina", "kut": "kutenajčina", "kv": "komijčina", "kw": "kornčina", "ky": "kirgizština", "la": "latinčina", "lad": "židovská španielčina", "lag": "langi", "lah": "lahandčina", "lam": "lamba", "lb": "luxemburčina", "lez": "lezginčina", "lg": "gandčina", "li": "limburčina", "lkt": "lakotčina", "ln": "lingalčina", "lo": "laoština", "lol": "mongo", "lou": "kreolčina (Louisiana)", "loz": "lozi", "lrc": "severné luri", "lt": "litovčina", "lu": "lubčina (katanžská)", "lua": "lubčina (luluánska)", "lui": "luiseňo", "lun": "lunda", "lus": "mizorámčina", "luy": "luhja", "lv": "lotyština", "mad": "madurčina", "maf": "mafa", "mag": "magadhčina", "mai": "maithilčina", "mak": "makasarčina", "man": "mandingo", "mas": "masajčina", "mde": "maba", "mdf": "mokšiančina", "mdr": "mandarčina", "men": "mendejčina", "mer": "meru", "mfe": "maurícijská kreolčina", "mg": "malgaština", "mga": "stredná írčina", "mgh": "makua-meetto", "mgo": "meta’", "mh": "marshallčina", "mi": "maorijčina", "mic": "mikmakčina", "min": "minangkabaučina", "mk": "macedónčina", "ml": "malajálamčina", "mn": "mongolčina", "mnc": "mandžuština", "mni": "manípurčina", "moh": "mohawkčina", "mos": "mossi", "mr": "maráthčina", "ms": "malajčina", "mt": "maltčina", "mua": "mundang", "mus": "kríkčina", "mwl": "mirandčina", "mwr": "marwari", "my": "barmčina", "mye": "myene", "myv": "erzjančina", "mzn": "mázandaránčina", "na": "nauruština", "nap": "neapolčina", "naq": "nama", "nb": "nórčina (bokmal)", "nd": "ndebelčina (severná)", "nds": "dolná nemčina", "nds-NL": "dolná saština", "ne": "nepálčina", "new": "nevárčina", "ng": "ndonga", "nia": "niasánčina", "niu": "niueština", "nl": "holandčina", "nl-BE": "flámčina", "nmg": "kwasio", "nn": "nórčina (nynorsk)", "nnh": "ngiemboon", "no": "nórčina", "nog": "nogajčina", "non": "stará nórčina", "nqo": "n’ko", "nr": "ndebelčina (južná)", "nso": "sothčina (severná)", "nus": "nuer", "nv": "navaho", "nwc": "klasická nevárčina", "ny": "ňandža", "nym": "ňamwezi", "nyn": "ňankole", "nyo": "ňoro", "nzi": "nzima", "oc": "okcitánčina", "oj": "odžibva", "om": "oromčina", "or": "uríjčina", "os": "osetčina", "osa": "osedžština", "ota": "osmanská turečtina", "pa": "pandžábčina", "pag": "pangasinančina", "pal": "pahlaví", "pam": "kapampangančina", "pap": "papiamento", "pau": "palaučina", "pcm": "nigerijský pidžin", "peo": "stará perzština", "phn": "feničtina", "pi": "pálí", "pl": "poľština", "pon": "pohnpeiština", "prg": "pruština", "pro": "stará okcitánčina", "ps": "paštčina", "pt": "portugalčina", "pt-BR": "portugalčina (brazílska)", "pt-PT": "portugalčina (európska)", "qu": "kečuánčina", "quc": "quiché", "raj": "radžastančina", "rap": "rapanujčina", "rar": "rarotongská maorijčina", "rm": "rétorománčina", "rn": "rundčina", "ro": "rumunčina", "ro-MD": "moldavčina", "rof": "rombo", "rom": "rómčina", "root": "koreň", "ru": "ruština", "rup": "arumunčina", "rw": "rwandčina", "rwk": "rwa", "sa": "sanskrit", "sad": "sandaweština", "sah": "jakutčina", "sam": "samaritánska aramejčina", "saq": "samburu", "sas": "sasačtina", "sat": "santalčina", "sba": "ngambay", "sbp": "sangu", "sc": "sardínčina", "scn": "sicílčina", "sco": "škótčina", "sd": "sindhčina", "sdh": "južná kurdčina", "se": "saamčina (severná)", "see": "senekčina", "seh": "sena", "sel": "selkupčina", "ses": "koyraboro senni", "sg": "sango", "sga": "stará írčina", "sh": "srbochorvátčina", "shi": "tachelhit", "shn": "šančina", "shu": "čadská arabčina", "si": "sinhalčina", "sid": "sidamo", "sk": "slovenčina", "sl": "slovinčina", "sm": "samojčina", "sma": "saamčina (južná)", "smj": "saamčina (lulská)", "smn": "saamčina (inarijská)", "sms": "saamčina (skoltská)", "sn": "šončina", "snk": "soninke", "so": "somálčina", "sog": "sogdijčina", "sq": "albánčina", "sr": "srbčina", "srn": "surinamčina", "srr": "sererčina", "ss": "svazijčina", "ssy": "saho", "st": "sothčina (južná)", "su": "sundčina", "suk": "sukuma", "sus": "susu", "sux": "sumerčina", "sv": "švédčina", "sw": "swahilčina", "sw-CD": "svahilčina (konžská)", "swb": "komorčina", "syc": "sýrčina (klasická)", "syr": "sýrčina", "ta": "tamilčina", "te": "telugčina", "tem": "temne", "teo": "teso", "ter": "terêna", "tet": "tetumčina", "tg": "tadžičtina", "th": "thajčina", "ti": "tigriňa", "tig": "tigrejčina", "tk": "turkménčina", "tkl": "tokelauština", "tl": "tagalčina", "tlh": "klingónčina", "tli": "tlingitčina", "tmh": "tuaregčina", "tn": "tswančina", "to": "tongčina", "tog": "ňasa tonga", "tpi": "novoguinejský pidžin", "tr": "turečtina", "trv": "taroko", "ts": "tsongčina", "tsi": "cimšjančina", "tt": "tatárčina", "tum": "tumbuka", "tvl": "tuvalčina", "tw": "twi", "twq": "tasawaq", "ty": "tahitčina", "tyv": "tuviančina", "tzm": "tuaregčina (stredomarocká)", "udm": "udmurtčina", "ug": "ujgurčina", "uga": "ugaritčina", "uk": "ukrajinčina", "umb": "umbundu", "ur": "urdčina", "uz": "uzbečtina", "ve": "vendčina", "vi": "vietnamčina", "vo": "volapük", "vot": "vodčina", "vun": "vunjo", "wa": "valónčina", "wae": "walserčina", "wal": "walamčina", "war": "waray", "was": "washo", "wbp": "warlpiri", "wo": "wolofčina", "xal": "kalmyčtina", "xh": "xhoština", "xog": "soga", "yao": "jao", "yap": "japčina", "yav": "jangben", "ybb": "yemba", "yi": "jidiš", "yo": "jorubčina", "yue": "kantončina", "za": "čuangčina", "zap": "zapotéčtina", "zbl": "systém Bliss", "zen": "zenaga", "zgh": "tuaregčina (štandardná marocká)", "zh": "čínština", "zh-Hans": "čínština (zjednodušená)", "zh-Hant": "čínština (tradičná)", "zu": "zuluština", "zun": "zuniština", "zza": "zaza"}}, - "sl": {"rtl": false, "languageNames": {"aa": "afarščina", "ab": "abhaščina", "ace": "ačejščina", "ach": "ačolijščina", "ada": "adangmejščina", "ady": "adigejščina", "ae": "avestijščina", "af": "afrikanščina", "afh": "afrihili", "agq": "aghemščina", "ain": "ainujščina", "ak": "akanščina", "akk": "akadščina", "ale": "aleutščina", "alt": "južna altajščina", "am": "amharščina", "an": "aragonščina", "ang": "stara angleščina", "anp": "angikaščina", "ar": "arabščina", "ar-001": "sodobna standardna arabščina", "arc": "aramejščina", "arn": "mapudungunščina", "arp": "arapaščina", "arw": "aravaščina", "as": "asamščina", "asa": "asujščina", "ast": "asturijščina", "av": "avarščina", "awa": "avadščina", "ay": "ajmarščina", "az": "azerbajdžanščina", "ba": "baškirščina", "bal": "beludžijščina", "ban": "balijščina", "bas": "basa", "be": "beloruščina", "bej": "bedža", "bem": "bemba", "bez": "benajščina", "bg": "bolgarščina", "bgn": "zahodnobalučijščina", "bho": "bodžpuri", "bi": "bislamščina", "bik": "bikolski jezik", "bin": "edo", "bla": "siksika", "bm": "bambarščina", "bn": "bengalščina", "bo": "tibetanščina", "br": "bretonščina", "bra": "bradžbakanščina", "brx": "bodojščina", "bs": "bosanščina", "bua": "burjatščina", "bug": "buginščina", "byn": "blinščina", "ca": "katalonščina", "cad": "kadoščina", "car": "karibski jezik", "ccp": "chakma", "ce": "čečenščina", "ceb": "sebuanščina", "cgg": "čigajščina", "ch": "čamorščina", "chb": "čibčevščina", "chg": "čagatajščina", "chk": "trukeščina", "chm": "marijščina", "chn": "činuški žargon", "cho": "čoktavščina", "chp": "čipevščina", "chr": "čerokeščina", "chy": "čejenščina", "ckb": "soranska kurdščina", "co": "korziščina", "cop": "koptščina", "cr": "krijščina", "crh": "krimska tatarščina", "crs": "sejšelska francoska kreolščina", "cs": "češčina", "csb": "kašubščina", "cu": "stara cerkvena slovanščina", "cv": "čuvaščina", "cy": "valižanščina", "da": "danščina", "dak": "dakotščina", "dar": "darginščina", "dav": "taitajščina", "de": "nemščina", "de-AT": "avstrijska nemščina", "de-CH": "visoka nemščina (Švica)", "del": "delavarščina", "den": "slavejščina", "dgr": "dogrib", "din": "dinka", "dje": "zarmajščina", "doi": "dogri", "dsb": "dolnja lužiška srbščina", "dua": "duala", "dum": "srednja nizozemščina", "dv": "diveščina", "dyo": "jola-fonjiščina", "dyu": "diula", "dz": "dzonka", "dzg": "dazaga", "ebu": "embujščina", "ee": "evenščina", "efi": "efiščina", "egy": "stara egipčanščina", "eka": "ekajuk", "el": "grščina", "elx": "elamščina", "en": "angleščina", "en-AU": "avstralska angleščina", "en-CA": "kanadska angleščina", "en-GB": "angleščina (VB)", "en-US": "angleščina (ZDA)", "enm": "srednja angleščina", "eo": "esperanto", "es": "španščina", "es-419": "španščina (Latinska Amerika)", "es-ES": "evropska španščina", "es-MX": "mehiška španščina", "et": "estonščina", "eu": "baskovščina", "ewo": "evondovščina", "fa": "perzijščina", "fan": "fangijščina", "fat": "fantijščina", "ff": "fulščina", "fi": "finščina", "fil": "filipinščina", "fj": "fidžijščina", "fo": "ferščina", "fon": "fonščina", "fr": "francoščina", "fr-CA": "kanadska francoščina", "fr-CH": "švicarska francoščina", "frc": "cajunska francoščina", "frm": "srednja francoščina", "fro": "stara francoščina", "frr": "severna frizijščina", "frs": "vzhodna frizijščina", "fur": "furlanščina", "fy": "zahodna frizijščina", "ga": "irščina", "gaa": "ga", "gag": "gagavščina", "gay": "gajščina", "gba": "gbajščina", "gd": "škotska gelščina", "gez": "etiopščina", "gil": "kiribatščina", "gl": "galicijščina", "gmh": "srednja visoka nemščina", "gn": "gvaranijščina", "goh": "stara visoka nemščina", "gon": "gondi", "gor": "gorontalščina", "got": "gotščina", "grb": "grebščina", "grc": "stara grščina", "gsw": "nemščina (Švica)", "gu": "gudžaratščina", "guz": "gusijščina", "gv": "manščina", "gwi": "gvičin", "ha": "havščina", "hai": "haidščina", "haw": "havajščina", "he": "hebrejščina", "hi": "hindujščina", "hil": "hiligajnonščina", "hit": "hetitščina", "hmn": "hmonščina", "ho": "hiri motu", "hr": "hrvaščina", "hsb": "gornja lužiška srbščina", "ht": "haitijska kreolščina", "hu": "madžarščina", "hup": "hupa", "hy": "armenščina", "hz": "herero", "ia": "interlingva", "iba": "ibanščina", "ibb": "ibibijščina", "id": "indonezijščina", "ie": "interlingve", "ig": "igboščina", "ii": "sečuanska jiščina", "ik": "inupiaščina", "ilo": "ilokanščina", "inh": "inguščina", "io": "ido", "is": "islandščina", "it": "italijanščina", "iu": "inuktitutščina", "ja": "japonščina", "jbo": "lojban", "jgo": "ngomba", "jmc": "mačamejščina", "jpr": "judovska perzijščina", "jrb": "judovska arabščina", "jv": "javanščina", "ka": "gruzijščina", "kaa": "karakalpaščina", "kab": "kabilščina", "kac": "kačinščina", "kaj": "jju", "kam": "kambaščina", "kaw": "kavi", "kbd": "kabardinščina", "kcg": "tjapska nigerijščina", "kde": "makondščina", "kea": "zelenortskootoška kreolščina", "kfo": "koro", "kg": "kongovščina", "kha": "kasi", "kho": "kotanščina", "khq": "koyra chiini", "ki": "kikujščina", "kj": "kvanjama", "kk": "kazaščina", "kkj": "kako", "kl": "grenlandščina", "kln": "kalenjinščina", "km": "kmerščina", "kmb": "kimbundu", "kn": "kanareščina", "ko": "korejščina", "koi": "komi-permjaščina", "kok": "konkanščina", "kos": "kosrajščina", "kpe": "kpelejščina", "kr": "kanurščina", "krc": "karačaj-balkarščina", "krl": "karelščina", "kru": "kuruk", "ks": "kašmirščina", "ksb": "šambala", "ksf": "bafia", "ksh": "kölnsko narečje", "ku": "kurdščina", "kum": "kumiščina", "kut": "kutenajščina", "kv": "komijščina", "kw": "kornijščina", "ky": "kirgiščina", "la": "latinščina", "lad": "ladinščina", "lag": "langijščina", "lah": "landa", "lam": "lamba", "lb": "luksemburščina", "lez": "lezginščina", "lg": "ganda", "li": "limburščina", "lkt": "lakotščina", "ln": "lingala", "lo": "laoščina", "lol": "mongo", "lou": "louisianska kreolščina", "loz": "lozi", "lrc": "severna lurijščina", "lt": "litovščina", "lu": "luba-katanga", "lua": "luba-lulua", "lui": "luisenščina", "lun": "lunda", "lus": "mizojščina", "luy": "luhijščina", "lv": "latvijščina", "mad": "madurščina", "mag": "magadščina", "mai": "maitili", "mak": "makasarščina", "man": "mandingo", "mas": "masajščina", "mdf": "mokšavščina", "mdr": "mandarščina", "men": "mende", "mer": "meru", "mfe": "morisjenščina", "mg": "malagaščina", "mga": "srednja irščina", "mgh": "makuva-meto", "mgo": "meta", "mh": "marshallovščina", "mi": "maorščina", "mic": "mikmaščina", "min": "minangkabau", "mk": "makedonščina", "ml": "malajalamščina", "mn": "mongolščina", "mnc": "mandžurščina", "mni": "manipurščina", "moh": "mohoščina", "mos": "mosijščina", "mr": "maratščina", "ms": "malajščina", "mt": "malteščina", "mua": "mundang", "mus": "creekovščina", "mwl": "mirandeščina", "mwr": "marvarščina", "my": "burmanščina", "myv": "erzjanščina", "mzn": "mazanderanščina", "na": "naurujščina", "nan": "min nan kitajščina", "nap": "napolitanščina", "naq": "khoekhoe", "nb": "knjižna norveščina", "nd": "severna ndebelščina", "nds": "nizka nemščina", "nds-NL": "nizka saščina", "ne": "nepalščina", "new": "nevarščina", "ng": "ndonga", "nia": "niaščina", "niu": "niuejščina", "nl": "nizozemščina", "nl-BE": "flamščina", "nmg": "kwasio", "nn": "novonorveščina", "nnh": "ngiemboonščina", "no": "norveščina", "nog": "nogajščina", "non": "stara nordijščina", "nqo": "n’ko", "nr": "južna ndebelščina", "nso": "severna sotščina", "nus": "nuerščina", "nv": "navajščina", "nwc": "klasična nevarščina", "ny": "njanščina", "nym": "njamveščina", "nyn": "njankole", "nyo": "njoro", "nzi": "nzima", "oc": "okcitanščina", "oj": "anašinabščina", "om": "oromo", "or": "odijščina", "os": "osetinščina", "osa": "osage", "ota": "otomanska turščina", "pa": "pandžabščina", "pag": "pangasinanščina", "pam": "pampanščina", "pap": "papiamentu", "pau": "palavanščina", "pcm": "nigerijski pidžin", "peo": "stara perzijščina", "phn": "feničanščina", "pi": "palijščina", "pl": "poljščina", "pon": "ponpejščina", "prg": "stara pruščina", "pro": "stara provansalščina", "ps": "paštunščina", "pt": "portugalščina", "pt-BR": "brazilska portugalščina", "pt-PT": "evropska portugalščina", "qu": "kečuanščina", "quc": "quiche", "raj": "radžastanščina", "rap": "rapanujščina", "rar": "rarotongščina", "rm": "retoromanščina", "rn": "rundščina", "ro": "romunščina", "ro-MD": "moldavščina", "rof": "rombo", "rom": "romščina", "root": "rootščina", "ru": "ruščina", "rup": "aromunščina", "rw": "ruandščina", "rwk": "rwa", "sa": "sanskrt", "sad": "sandavščina", "sah": "jakutščina", "sam": "samaritanska aramejščina", "saq": "samburščina", "sas": "sasaščina", "sat": "santalščina", "sba": "ngambajščina", "sbp": "sangujščina", "sc": "sardinščina", "scn": "sicilijanščina", "sco": "škotščina", "sd": "sindščina", "sdh": "južna kurdščina", "se": "severna samijščina", "seh": "sena", "sel": "selkupščina", "ses": "koyraboro senni", "sg": "sango", "sga": "stara irščina", "sh": "srbohrvaščina", "shi": "tahelitska berberščina", "shn": "šanščina", "si": "sinhalščina", "sid": "sidamščina", "sk": "slovaščina", "sl": "slovenščina", "sm": "samoanščina", "sma": "južna samijščina", "smj": "luleška samijščina", "smn": "inarska samijščina", "sms": "skoltska samijščina", "sn": "šonščina", "snk": "soninke", "so": "somalščina", "sq": "albanščina", "sr": "srbščina", "srn": "surinamska kreolščina", "srr": "sererščina", "ss": "svazijščina", "ssy": "saho", "st": "sesoto", "su": "sundanščina", "suk": "sukuma", "sus": "susujščina", "sux": "sumerščina", "sv": "švedščina", "sw": "svahili", "sw-CD": "kongoški svahili", "swb": "šikomor", "syc": "klasična sirščina", "syr": "sirščina", "ta": "tamilščina", "te": "telugijščina", "tem": "temnejščina", "teo": "teso", "tet": "tetumščina", "tg": "tadžiščina", "th": "tajščina", "ti": "tigrajščina", "tig": "tigrejščina", "tiv": "tivščina", "tk": "turkmenščina", "tkl": "tokelavščina", "tl": "tagalogščina", "tlh": "klingonščina", "tli": "tlingitščina", "tmh": "tamajaščina", "tn": "cvanščina", "to": "tongščina", "tog": "malavijska tongščina", "tpi": "tok pisin", "tr": "turščina", "trv": "taroko", "ts": "congščina", "tsi": "tsimščina", "tt": "tatarščina", "tum": "tumbukščina", "tvl": "tuvalujščina", "tw": "tvi", "twq": "tasawaq", "ty": "tahitščina", "tyv": "tuvinščina", "tzm": "tamašek (Srednji Atlas)", "udm": "udmurtščina", "ug": "ujgurščina", "uga": "ugaritski jezik", "uk": "ukrajinščina", "umb": "umbundščina", "ur": "urdujščina", "uz": "uzbeščina", "vai": "vajščina", "ve": "venda", "vi": "vietnamščina", "vo": "volapuk", "vot": "votjaščina", "vun": "vunjo", "wa": "valonščina", "wae": "walser", "wal": "valamščina", "war": "varajščina", "was": "vašajščina", "wbp": "varlpirščina", "wo": "volofščina", "xal": "kalmiščina", "xh": "koščina", "xog": "sogščina", "yao": "jaojščina", "yap": "japščina", "yav": "jangben", "ybb": "jembajščina", "yi": "jidiš", "yo": "jorubščina", "yue": "kantonščina", "zap": "zapoteščina", "zbl": "znakovni jezik Bliss", "zen": "zenaščina", "zgh": "standardni maroški tamazig", "zh": "kitajščina", "zh-Hans": "poenostavljena kitajščina", "zh-Hant": "tradicionalna kitajščina", "zu": "zulujščina", "zun": "zunijščina", "zza": "zazajščina"}}, - "so": {"rtl": false, "languageNames": {"af": "Afrikaanka", "agq": "Ageem", "ak": "Akan", "am": "Axmaari", "ar": "Carabi", "ar-001": "Carabiga rasmiga ah", "as": "Asaamiis", "asa": "Asu", "ast": "Astuuriyaan", "az": "Asarbayjan", "bas": "Basaa", "be": "Beleruusiyaan", "bem": "Bemba", "bez": "Bena", "bg": "Bulgeeriyaan", "bm": "Bambaara", "bn": "Bangladesh", "bo": "Tibeetaan", "br": "Biriton", "brx": "Bodo", "bs": "Bosniyaan", "ca": "Katalaan", "ccp": "Jakma", "ce": "Jejen", "ceb": "Sebuano", "cgg": "Jiga", "chr": "Jerookee", "ckb": "Bartamaha Kurdish", "co": "Korsikan", "cs": "Jeeg", "cu": "Kaniisadda Islaafik", "cy": "Welsh", "da": "Dhaanish", "dav": "Taiita", "de": "Jarmal", "de-AT": "Jarmal (Awsteriya)", "de-CH": "Jarmal (Iswiiserlaand)", "dje": "Sarma", "dsb": "Soorbiyaanka Hoose", "dua": "Duaala", "dyo": "Joola-Foonyi", "dz": "D’zongqa", "ebu": "Embuu", "ee": "Eewe", "el": "Giriik", "en": "Ingiriisi", "en-AU": "Ingiriis Austaraaliyaan", "en-CA": "Ingiriis Kanadiyaan", "en-GB": "Ingiriis Biritish", "en-US": "Ingiriis Maraykan", "eo": "Isberaanto", "es": "Isbaanish", "es-419": "Isbaanishka Laatiin Ameerika", "es-ES": "Isbaanish (Isbayn)", "es-MX": "Isbaanish (Meksiko)", "et": "Istooniyaan", "eu": "Basquu", "ewo": "Eewondho", "fa": "Faarisi", "ff": "Fuulah", "fi": "Finishka", "fil": "Tagalog", "fo": "Farowsi", "fr": "Faransiis", "fr-CA": "Faransiiska Kanada", "fr-CH": "Faransiis (Iswiiserlaand)", "fur": "Firiyuuliyaan", "fy": "Firiisiyan Galbeed", "ga": "Ayrish", "gd": "Iskot Giilik", "gl": "Galiisiyaan", "gsw": "Jarmal Iswiis", "gu": "Gujaraati", "guz": "Guusii", "gv": "Mankis", "ha": "Hawsa", "haw": "Hawaay", "he": "Cibraani", "hi": "Hindi", "hmn": "Hamong", "hr": "Koro’eeshiyaan", "hsb": "Sorobiyaanka Sare", "ht": "Heeytiyaan Karawle", "hu": "Hangariyaan", "hy": "Armeeniyaan", "ia": "Interlinguwa", "id": "Indunusiyaan", "ig": "Igbo", "ii": "Sijuwan Yi", "is": "Ayslandays", "it": "Talyaani", "ja": "Jabaaniis", "jgo": "Ingoomba", "jmc": "Chaga", "jv": "Jafaaniis", "ka": "Joorijiyaan", "kab": "Kabayle", "kam": "Kaamba", "kde": "Kimakonde", "kea": "Kabuferdiyanu", "khq": "Koyra Jiini", "ki": "Kikuuyu", "kk": "Kasaaq", "kkj": "Kaako", "kl": "Kalaallisuut", "kln": "Kalenjiin", "km": "Kamboodhian", "kn": "Kannadays", "ko": "Kuuriyaan", "kok": "Konkani", "ks": "Kaashmiir", "ksb": "Shambaala", "ksf": "Bafiya", "ksh": "Kologniyaan", "ku": "Kurdishka", "kw": "Kornish", "ky": "Kirgiis", "la": "Laatiin", "lag": "Laangi", "lb": "Luksaamboorgish", "lg": "Gandha", "lkt": "Laakoota", "ln": "Lingala", "lo": "Lao", "lrc": "Koonfurta Luuri", "lt": "Lituwaanays", "lu": "Luuba-kataanga", "luo": "Luwada", "luy": "Luhya", "lv": "Laatfiyaan", "mas": "Masaay", "mer": "Meeru", "mfe": "Moorisayn", "mg": "Malagaasi", "mgh": "Makhuwa", "mgo": "Meetaa", "mi": "Maaoori", "mk": "Masadooniyaan", "ml": "Malayalam", "mn": "Mangooli", "mr": "Maarati", "ms": "Malaay", "mt": "Maltiis", "mua": "Miyundhaang", "my": "Burmese", "mzn": "Masanderaani", "naq": "Nama", "nb": "Noorwijiyaan Bokma", "nd": "Indhebeele", "nds": "Jarmal Hooseeya", "nds-NL": "Jarmal Hooseeya (Nederlaands)", "ne": "Nebaali", "nl": "Holandays", "nl-BE": "Af faleemi", "nmg": "Kuwaasiyo", "nn": "Nowrwejiyan (naynoroski)", "nnh": "Ingiyembuun", "nus": "Nuweer", "ny": "Inyaanja", "nyn": "Inyankoole", "om": "Oromo", "or": "Oodhiya", "os": "Oseetic", "pa": "Bunjaabi", "pl": "Boolish", "prg": "Brashiyaanki Hore", "ps": "Bashtuu", "pt": "Boortaqiis", "pt-BR": "Boortaqiiska Baraasiil", "pt-PT": "Boortaqiis (Boortuqaal)", "qu": "Quwejuwa", "rm": "Romaanis", "rn": "Rundhi", "ro": "Romanka", "ro-MD": "Romanka (Moldofa)", "rof": "Rombo", "ru": "Ruush", "rw": "Ruwaandha", "rwk": "Raawa", "sa": "Sanskrit", "sah": "Saaqa", "saq": "Sambuuru", "sbp": "Sangu", "sd": "Siindhi", "se": "Koonfurta Saami", "seh": "Seena", "ses": "Koyraboro Seenni", "sg": "Sango", "shi": "Shilha", "si": "Sinhaleys", "sk": "Isloofaak", "sl": "Islofeeniyaan", "sm": "Samowan", "smn": "Inaari Saami", "sn": "Shoona", "so": "Soomaali", "sq": "Albeeniyaan", "sr": "Seerbiyaan", "st": "Sesooto", "su": "Suudaaniis", "sv": "Swiidhis", "sw": "Sawaaxili", "sw-CD": "Sawaaxili (Jamhuuriyadda Dimuquraadiga Kongo)", "ta": "Tamiil", "te": "Teluugu", "teo": "Teeso", "tg": "Taajik", "th": "Taaylandays", "ti": "Tigrinya", "tk": "Turkumaanish", "to": "Toongan", "tr": "Turkish", "tt": "Taatar", "twq": "Tasaawaq", "tzm": "Bartamaha Atlaas Tamasayt", "ug": "Uighur", "uk": "Yukreeniyaan", "ur": "Urduu", "uz": "Usbakis", "vai": "Faayi", "vi": "Fiitnaamays", "vo": "Folabuuk", "vun": "Fuunjo", "wae": "Walseer", "wo": "Woolof", "xh": "Hoosta", "xog": "Sooga", "yav": "Yaangbeen", "yi": "Yadhish", "yo": "Yoruuba", "yue": "Kantoneese", "zgh": "Morokaanka Tamasayt Rasmiga", "zh": "Shiinaha Mandarin", "zh-Hans": "Shiinaha Rasmiga ah", "zh-Hant": "Shiinahii Hore", "zu": "Zuulu"}}, - "sq": {"rtl": false, "languageNames": {"aa": "afarisht", "ab": "abkazisht", "ace": "akinezisht", "ada": "andangmeisht", "ady": "adigisht", "af": "afrikanisht", "agq": "agemisht", "ain": "ajnuisht", "ak": "akanisht", "ale": "aleutisht", "alt": "altaishte jugore", "am": "amarisht", "an": "aragonezisht", "anp": "angikisht", "ar": "arabisht", "ar-001": "arabishte standarde moderne", "arn": "mapuçisht", "arp": "arapahoisht", "as": "asamezisht", "asa": "asuisht", "ast": "asturisht", "av": "avarikisht", "awa": "auadhisht", "ay": "ajmarisht", "az": "azerbajxhanisht", "ba": "bashkirisht", "ban": "balinezisht", "bas": "basaisht", "be": "bjellorusisht", "bem": "bembaisht", "bez": "benaisht", "bg": "bullgarisht", "bgn": "balokishte perëndimore", "bho": "boxhpurisht", "bi": "bislamisht", "bin": "binisht", "bla": "siksikaisht", "bm": "bambarisht", "bn": "bengalisht", "bo": "tibetisht", "br": "bretonisht", "brx": "bodoisht", "bs": "boshnjakisht", "bug": "buginezisht", "byn": "blinisht", "ca": "katalonisht", "ccp": "çakmaisht", "ce": "çeçenisht", "ceb": "sebuanisht", "cgg": "çigisht", "ch": "kamoroisht", "chk": "çukezisht", "chm": "marisht", "cho": "çoktauisht", "chr": "çerokisht", "chy": "çejenisht", "ckb": "kurdishte qendrore", "co": "korsikisht", "crs": "frëngjishte kreole seselve", "cs": "çekisht", "cu": "sllavishte kishtare", "cv": "çuvashisht", "cy": "uellsisht", "da": "danisht", "dak": "dakotisht", "dar": "darguaisht", "dav": "tajtaisht", "de": "gjermanisht", "de-AT": "gjermanishte austriake", "de-CH": "gjermanishte zvicerane (dialekti i Alpeve)", "dgr": "dogribisht", "dje": "zarmaisht", "dsb": "sorbishte e poshtme", "dua": "dualaisht", "dv": "divehisht", "dyo": "xhulafonjisht", "dz": "xhongaisht", "dzg": "dazagauisht", "ebu": "embuisht", "ee": "eveisht", "efi": "efikisht", "eka": "ekajukisht", "el": "greqisht", "en": "anglisht", "en-AU": "anglishte australiane", "en-CA": "anglishte kanadeze", "en-GB": "anglishte britanike", "en-US": "anglishte amerikane", "eo": "esperanto", "es": "spanjisht", "es-419": "spanjishte amerikano-latine", "es-ES": "spanjishte evropiane", "es-MX": "spanjishte meksikane", "et": "estonisht", "eu": "baskisht", "ewo": "euondoisht", "fa": "persisht", "ff": "fulaisht", "fi": "finlandisht", "fil": "filipinisht", "fj": "fixhianisht", "fo": "faroisht", "fon": "fonisht", "fr": "frëngjisht", "fr-CA": "frëngjishte kanadeze", "fr-CH": "frëngjishte zvicerane", "fur": "friulianisht", "fy": "frizianishte perëndimore", "ga": "irlandisht", "gaa": "gaisht", "gag": "gagauzisht", "gd": "galishte skoceze", "gez": "gizisht", "gil": "gilbertazisht", "gl": "galicisht", "gn": "guaranisht", "gor": "gorontaloisht", "gsw": "gjermanishte zvicerane", "gu": "guxharatisht", "guz": "gusisht", "gv": "manksisht", "gwi": "guiçinisht", "ha": "hausisht", "haw": "havaisht", "he": "hebraisht", "hi": "indisht", "hil": "hiligajnonisht", "hmn": "hmongisht", "hr": "kroatisht", "hsb": "sorbishte e sipërme", "ht": "haitisht", "hu": "hungarisht", "hup": "hupaisht", "hy": "armenisht", "hz": "hereroisht", "ia": "interlingua", "iba": "ibanisht", "ibb": "ibibioisht", "id": "indonezisht", "ie": "gjuha oksidentale", "ig": "igboisht", "ii": "sishuanisht", "ilo": "ilokoisht", "inh": "ingushisht", "io": "idoisht", "is": "islandisht", "it": "italisht", "iu": "inuktitutisht", "ja": "japonisht", "jbo": "lojbanisht", "jgo": "ngombisht", "jmc": "maçamisht", "jv": "javanisht", "ka": "gjeorgjisht", "kab": "kabilisht", "kac": "kaçinisht", "kaj": "kajeisht", "kam": "kambaisht", "kbd": "kabardianisht", "kcg": "tjapisht", "kde": "makondisht", "kea": "kreolishte e Kepit të Gjelbër", "kfo": "koroisht", "kha": "kasisht", "khq": "kojraçinisht", "ki": "kikujuisht", "kj": "kuanjamaisht", "kk": "kazakisht", "kkj": "kakoisht", "kl": "kalalisutisht", "kln": "kalenxhinisht", "km": "kmerisht", "kmb": "kimbunduisht", "kn": "kanadisht", "ko": "koreanisht", "koi": "komi-parmjakisht", "kok": "konkanisht", "kpe": "kpeleisht", "kr": "kanurisht", "krc": "karaçaj-balkarisht", "krl": "karelianisht", "kru": "kurukisht", "ks": "kashmirisht", "ksb": "shambalisht", "ksf": "bafianisht", "ksh": "këlnisht", "ku": "kurdisht", "kum": "kumikisht", "kv": "komisht", "kw": "kornisht", "ky": "kirgizisht", "la": "latinisht", "lad": "ladinoisht", "lag": "langisht", "lb": "luksemburgisht", "lez": "lezgianisht", "lg": "gandaisht", "li": "limburgisht", "lkt": "lakotisht", "ln": "lingalisht", "lo": "laosisht", "loz": "lozisht", "lrc": "lurishte veriore", "lt": "lituanisht", "lu": "luba-katangaisht", "lua": "luba-luluaisht", "lun": "lundaisht", "luo": "luoisht", "lus": "mizoisht", "luy": "lujaisht", "lv": "letonisht", "mad": "madurezisht", "mag": "magaisht", "mai": "maitilisht", "mak": "makasarisht", "mas": "masaisht", "mdf": "mokshaisht", "men": "mendisht", "mer": "meruisht", "mfe": "morisjenisht", "mg": "madagaskarisht", "mgh": "makua-mitoisht", "mgo": "metaisht", "mh": "marshallisht", "mi": "maorisht", "mic": "mikmakisht", "min": "minangkabauisht", "mk": "maqedonisht", "ml": "malajalamisht", "mn": "mongolisht", "mni": "manipurisht", "moh": "mohokisht", "mos": "mosisht", "mr": "maratisht", "ms": "malajisht", "mt": "maltisht", "mua": "mundangisht", "mus": "krikisht", "mwl": "mirandisht", "my": "birmanisht", "myv": "erzjaisht", "mzn": "mazanderanisht", "na": "nauruisht", "nap": "napoletanisht", "naq": "namaisht", "nb": "norvegjishte letrare", "nd": "ndebelishte veriore", "nds": "gjermanishte e vendeve të ulëta", "nds-NL": "gjermanishte saksone e vendeve të ulëta", "ne": "nepalisht", "new": "neuarisht", "ng": "ndongaisht", "nia": "niasisht", "niu": "niueanisht", "nl": "holandisht", "nl-BE": "flamandisht", "nmg": "kuasisht", "nn": "norvegjishte nynorsk", "nnh": "ngiembunisht", "no": "norvegjisht", "nog": "nogajisht", "nqo": "nkoisht", "nr": "ndebelishte jugore", "nso": "sotoishte veriore", "nus": "nuerisht", "nv": "navahoisht", "ny": "nianjisht", "nyn": "niankolisht", "oc": "oksitanisht", "om": "oromoisht", "or": "odisht", "os": "osetisht", "pa": "punxhabisht", "pag": "pangasinanisht", "pam": "pampangaisht", "pap": "papiamentisht", "pau": "paluanisht", "pcm": "pixhinishte nigeriane", "pl": "polonisht", "prg": "prusisht", "ps": "pashtoisht", "pt": "portugalisht", "pt-BR": "portugalishte braziliane", "pt-PT": "portugalishte evropiane", "qu": "keçuaisht", "quc": "kiçeisht", "rap": "rapanuisht", "rar": "rarontonganisht", "rm": "retoromanisht", "rn": "rundisht", "ro": "rumanisht", "ro-MD": "moldavisht", "rof": "romboisht", "root": "rutisht", "ru": "rusisht", "rup": "vllahisht", "rw": "kiniaruandisht", "rwk": "ruaisht", "sa": "sanskritisht", "sad": "sandauisht", "sah": "sakaisht", "saq": "samburisht", "sat": "santalisht", "sba": "ngambajisht", "sbp": "sanguisht", "sc": "sardenjisht", "scn": "siçilianisht", "sco": "skotisht", "sd": "sindisht", "sdh": "kurdishte jugore", "se": "samishte veriore", "seh": "senaisht", "ses": "senishte kojrabore", "sg": "sangoisht", "sh": "serbo-kroatisht", "shi": "taçelitisht", "shn": "shanisht", "si": "sinhalisht", "sk": "sllovakisht", "sl": "sllovenisht", "sm": "samoanisht", "sma": "samishte jugore", "smj": "samishte lule", "smn": "samishte inari", "sms": "samishte skolti", "sn": "shonisht", "snk": "soninkisht", "so": "somalisht", "sq": "shqip", "sr": "serbisht", "srn": "srananisht (sranantongoisht)", "ss": "suatisht", "ssy": "sahoisht", "st": "sotoishte jugore", "su": "sundanisht", "suk": "sukumaisht", "sv": "suedisht", "sw": "suahilisht", "sw-CD": "suahilishte kongoleze", "swb": "kamorianisht", "syr": "siriakisht", "ta": "tamilisht", "te": "teluguisht", "tem": "timneisht", "teo": "tesoisht", "tet": "tetumisht", "tg": "taxhikisht", "th": "tajlandisht", "ti": "tigrinjaisht", "tig": "tigreisht", "tk": "turkmenisht", "tlh": "klingonisht", "tn": "cuanaisht", "to": "tonganisht", "tpi": "pisinishte toku", "tr": "turqisht", "trv": "torokoisht", "ts": "congaisht", "tt": "tatarisht", "tum": "tumbukaisht", "tvl": "tuvaluisht", "tw": "tuisht", "twq": "tasavakisht", "ty": "tahitisht", "tyv": "tuvinianisht", "tzm": "tamazajtisht e Atlasit Qendror", "udm": "udmurtisht", "ug": "ujgurisht", "uk": "ukrainisht", "umb": "umbunduisht", "ur": "urduisht", "uz": "uzbekisht", "vai": "vaisht", "ve": "vendaisht", "vi": "vietnamisht", "vo": "volapykisht", "vun": "vunxhoisht", "wa": "ualunisht", "wae": "ualserisht", "wal": "ulajtaisht", "war": "uarajisht", "wbp": "uarlpirisht", "wo": "uolofisht", "xal": "kalmikisht", "xh": "xhosaisht", "xog": "sogisht", "yav": "jangbenisht", "ybb": "jembaisht", "yi": "jidisht", "yo": "jorubaisht", "yue": "kantonezisht", "zgh": "tamaziatishte standarde marokene", "zh": "kinezisht", "zh-Hans": "kinezishte e thjeshtuar", "zh-Hant": "kinezishte tradicionale", "zu": "zuluisht", "zun": "zunisht", "zza": "zazaisht"}}, - "sr": {"rtl": false, "languageNames": {"aa": "афарски", "ab": "абхаски", "ace": "ацешки", "ach": "аколи", "ada": "адангме", "ady": "адигејски", "ae": "авестански", "af": "африканс", "afh": "африхили", "agq": "агем", "ain": "аину", "ak": "акански", "akk": "акадијски", "ale": "алеутски", "alt": "јужноалтајски", "am": "амхарски", "an": "арагонски", "ang": "староенглески", "anp": "ангика", "ar": "арапски", "ar-001": "савремени стандардни арапски", "arc": "арамејски", "arn": "мапуче", "arp": "арапахо", "arw": "аравачки", "as": "асамски", "asa": "асу", "ast": "астуријски", "av": "аварски", "awa": "авади", "ay": "ајмара", "az": "азербејџански", "ba": "башкирски", "bal": "белучки", "ban": "балијски", "bas": "баса", "be": "белоруски", "bej": "беџа", "bem": "бемба", "bez": "бена", "bg": "бугарски", "bgn": "западни белучки", "bho": "боџпури", "bi": "бислама", "bik": "бикол", "bin": "бини", "bla": "сисика", "bm": "бамбара", "bn": "бенгалски", "bo": "тибетански", "br": "бретонски", "bra": "брај", "brx": "бодо", "bs": "босански", "bua": "бурјатски", "bug": "бугијски", "byn": "блински", "ca": "каталонски", "cad": "кадо", "car": "карипски", "cch": "атсам", "ce": "чеченски", "ceb": "себуански", "cgg": "чига", "ch": "чаморо", "chb": "чипча", "chg": "чагатај", "chk": "чучки", "chm": "мари", "chn": "чинучки", "cho": "чоктавски", "chp": "чипевјански", "chr": "чероки", "chy": "чејенски", "ckb": "централни курдски", "co": "корзикански", "cop": "коптски", "cr": "кри", "crh": "кримскотатарски", "crs": "сејшелски креолски француски", "cs": "чешки", "csb": "кашупски", "cu": "црквенословенски", "cv": "чувашки", "cy": "велшки", "da": "дански", "dak": "дакота", "dar": "даргински", "dav": "таита", "de": "немачки", "de-AT": "немачки (Аустрија)", "de-CH": "швајцарски високи немачки", "del": "делаверски", "den": "слејви", "dgr": "догрипски", "din": "динка", "dje": "зарма", "doi": "догри", "dsb": "доњи лужичкосрпски", "dua": "дуала", "dum": "средњехоландски", "dv": "малдивски", "dyo": "џола фоњи", "dyu": "ђула", "dz": "џонга", "dzg": "дазага", "ebu": "ембу", "ee": "еве", "efi": "ефички", "egy": "староегипатски", "eka": "екаџук", "el": "грчки", "elx": "еламитски", "en": "енглески", "en-AU": "енглески (Аустралија)", "en-CA": "енглески (Канада)", "en-GB": "енглески (Велика Британија)", "en-US": "енглески (Сједињене Америчке Државе)", "enm": "средњеенглески", "eo": "есперанто", "es": "шпански", "es-419": "шпански (Латинска Америка)", "es-ES": "шпански (Европа)", "es-MX": "шпански (Мексико)", "et": "естонски", "eu": "баскијски", "ewo": "евондо", "fa": "персијски", "fan": "фанг", "fat": "фанти", "ff": "фула", "fi": "фински", "fil": "филипински", "fj": "фиџијски", "fo": "фарски", "fon": "фон", "fr": "француски", "fr-CA": "француски (Канада)", "fr-CH": "француски (Швајцарска)", "frc": "кајунски француски", "frm": "средњефранцуски", "fro": "старофранцуски", "frr": "севернофризијски", "frs": "источнофризијски", "fur": "фриулски", "fy": "западни фризијски", "ga": "ирски", "gaa": "га", "gag": "гагауз", "gay": "гајо", "gba": "гбаја", "gd": "шкотски гелски", "gez": "геез", "gil": "гилбертски", "gl": "галицијски", "gmh": "средњи високонемачки", "gn": "гварани", "goh": "старонемачки", "gon": "гонди", "gor": "горонтало", "got": "готски", "grb": "гребо", "grc": "старогрчки", "gsw": "немачки (Швајцарска)", "gu": "гуџарати", "guz": "гуси", "gv": "манкс", "gwi": "гвичински", "ha": "хауса", "hai": "хаида", "haw": "хавајски", "he": "хебрејски", "hi": "хинди", "hil": "хилигајнонски", "hit": "хетитски", "hmn": "хмоншки", "ho": "хири моту", "hr": "хрватски", "hsb": "горњи лужичкосрпски", "ht": "хаићански", "hu": "мађарски", "hup": "хупа", "hy": "јерменски", "hz": "хереро", "ia": "интерлингва", "iba": "ибански", "ibb": "ибибио", "id": "индонежански", "ie": "интерлингве", "ig": "игбо", "ii": "сечуански ји", "ik": "инупик", "ilo": "илоко", "inh": "ингушки", "io": "идо", "is": "исландски", "it": "италијански", "iu": "инуктитутски", "ja": "јапански", "jbo": "ложбан", "jgo": "нгомба", "jmc": "мачаме", "jpr": "јудео-персијски", "jrb": "јудео-арапски", "jv": "јавански", "ka": "грузијски", "kaa": "кара-калпашки", "kab": "кабиле", "kac": "качински", "kaj": "џу", "kam": "камба", "kaw": "кави", "kbd": "кабардијски", "kcg": "тјап", "kde": "маконде", "kea": "зеленортски", "kfo": "коро", "kg": "конго", "kha": "каси", "kho": "котанешки", "khq": "којра чиини", "ki": "кикују", "kj": "квањама", "kk": "казашки", "kkj": "како", "kl": "гренландски", "kln": "каленџински", "km": "кмерски", "kmb": "кимбунду", "kn": "канада", "ko": "корејски", "koi": "коми-пермски", "kok": "конкани", "kos": "косренски", "kpe": "кпеле", "kr": "канури", "krc": "карачајско-балкарски", "kri": "крио", "krl": "карелски", "kru": "курук", "ks": "кашмирски", "ksb": "шамбала", "ksf": "бафија", "ksh": "келнски", "ku": "курдски", "kum": "кумички", "kut": "кутенај", "kv": "коми", "kw": "корнволски", "ky": "киргиски", "la": "латински", "lad": "ладино", "lag": "ланги", "lah": "ланда", "lam": "ламба", "lb": "луксембуршки", "lez": "лезгински", "lg": "ганда", "li": "лимбуршки", "lkt": "лакота", "ln": "лингала", "lo": "лаоски", "lol": "монго", "lou": "луизијански креолски", "loz": "лози", "lrc": "северни лури", "lt": "литвански", "lu": "луба-катанга", "lua": "луба-лулуа", "lui": "луисењо", "lun": "лунда", "luo": "луо", "lus": "мизо", "luy": "лујиа", "lv": "летонски", "mad": "мадурски", "mag": "магахи", "mai": "маитили", "mak": "макасарски", "man": "мандинго", "mas": "масајски", "mdf": "мокша", "mdr": "мандар", "men": "менде", "mer": "меру", "mfe": "морисјен", "mg": "малгашки", "mga": "средњеирски", "mgh": "макува-мито", "mgo": "мета", "mh": "маршалски", "mi": "маорски", "mic": "микмак", "min": "минангкабау", "mk": "македонски", "ml": "малајалам", "mn": "монголски", "mnc": "манџурски", "mni": "манипурски", "moh": "мохочки", "mos": "моси", "mr": "марати", "ms": "малајски", "mt": "малтешки", "mua": "мунданг", "mus": "кришки", "mwl": "мирандски", "mwr": "марвари", "my": "бурмански", "myv": "ерзја", "mzn": "мазандерански", "na": "науруски", "nap": "напуљски", "naq": "нама", "nb": "норвешки букмол", "nd": "северни ндебеле", "nds": "нисконемачки", "nds-NL": "нискосаксонски", "ne": "непалски", "new": "невари", "ng": "ндонга", "nia": "ниас", "niu": "ниуејски", "nl": "холандски", "nl-BE": "фламански", "nmg": "квасио", "nn": "норвешки нинорск", "nnh": "нгиембун", "no": "норвешки", "nog": "ногајски", "non": "старонордијски", "nqo": "нко", "nr": "јужни ндебеле", "nso": "северни сото", "nus": "нуер", "nv": "навахо", "nwc": "класични неварски", "ny": "њанџа", "nym": "њамвези", "nyn": "њанколе", "nyo": "њоро", "nzi": "нзима", "oc": "окситански", "oj": "оџибве", "om": "оромо", "or": "одија", "os": "осетински", "osa": "осаге", "ota": "османски турски", "pa": "пенџапски", "pag": "пангасинански", "pal": "пахлави", "pam": "пампанга", "pap": "папијаменто", "pau": "палауски", "pcm": "нигеријски пиџин", "peo": "староперсијски", "phn": "феничански", "pi": "пали", "pl": "пољски", "pon": "понпејски", "prg": "пруски", "pro": "староокситански", "ps": "паштунски", "pt": "португалски", "pt-BR": "португалски (Бразил)", "pt-PT": "португалски (Португал)", "qu": "кечуа", "quc": "киче", "raj": "раџастански", "rap": "рапануи", "rar": "раротонгански", "rm": "романш", "rn": "кирунди", "ro": "румунски", "ro-MD": "молдавски", "rof": "ромбо", "rom": "ромски", "root": "рут", "ru": "руски", "rup": "цинцарски", "rw": "кињаруанда", "rwk": "руа", "sa": "санскрит", "sad": "сандаве", "sah": "саха", "sam": "самаријански арамејски", "saq": "самбуру", "sas": "сасак", "sat": "сантали", "sba": "нгамбај", "sbp": "сангу", "sc": "сардински", "scn": "сицилијански", "sco": "шкотски", "sd": "синди", "sdh": "јужнокурдски", "se": "северни сами", "seh": "сена", "sel": "селкупски", "ses": "којраборо сени", "sg": "санго", "sga": "староирски", "sh": "српскохрватски", "shi": "ташелхит", "shn": "шански", "si": "синхалешки", "sid": "сидамо", "sk": "словачки", "sl": "словеначки", "sm": "самоански", "sma": "јужни сами", "smj": "луле сами", "smn": "инари сами", "sms": "сколт сами", "sn": "шона", "snk": "сонинке", "so": "сомалски", "sog": "согдијски", "sq": "албански", "sr": "српски", "srn": "сранан тонго", "srr": "серерски", "ss": "свази", "ssy": "сахо", "st": "сесото", "su": "сундански", "suk": "сукума", "sus": "сусу", "sux": "сумерски", "sv": "шведски", "sw": "свахили", "sw-CD": "кисвахили", "swb": "коморски", "syc": "сиријачки", "syr": "сиријски", "ta": "тамилски", "te": "телугу", "tem": "тимне", "teo": "тесо", "ter": "терено", "tet": "тетум", "tg": "таџички", "th": "тајски", "ti": "тигриња", "tig": "тигре", "tiv": "тив", "tk": "туркменски", "tkl": "токелау", "tl": "тагалог", "tlh": "клингонски", "tli": "тлингит", "tmh": "тамашек", "tn": "цвана", "to": "тонгански", "tog": "њаса тонга", "tpi": "ток писин", "tr": "турски", "trv": "тароко", "ts": "цонга", "tsi": "цимшиан", "tt": "татарски", "tum": "тумбука", "tvl": "тувалу", "tw": "тви", "twq": "тасавак", "ty": "тахићански", "tyv": "тувински", "tzm": "централноатласки тамазигт", "udm": "удмуртски", "ug": "ујгурски", "uga": "угаритски", "uk": "украјински", "umb": "умбунду", "ur": "урду", "uz": "узбечки", "vai": "ваи", "ve": "венда", "vi": "вијетнамски", "vo": "волапик", "vot": "водски", "vun": "вунџо", "wa": "валонски", "wae": "валсерски", "wal": "волајта", "war": "варајски", "was": "вашо", "wbp": "варлпири", "wo": "волоф", "xal": "калмички", "xh": "коса", "xog": "сога", "yao": "јао", "yap": "јапски", "yav": "јангбен", "ybb": "јемба", "yi": "јидиш", "yo": "јоруба", "yue": "кантонски", "za": "џуаншки", "zap": "запотечки", "zbl": "блисимболи", "zen": "зенага", "zgh": "стандардни марокански тамазигт", "zh": "кинески", "zh-Hans": "поједностављени кинески", "zh-Hant": "традиционални кинески", "zu": "зулу", "zun": "зуни", "zza": "заза"}}, - "sv": {"rtl": false, "languageNames": {"aa": "afar", "ab": "abchaziska", "ace": "acehnesiska", "ach": "acholi", "ada": "adangme", "ady": "adygeiska", "ae": "avestiska", "aeb": "tunisisk arabiska", "af": "afrikaans", "afh": "afrihili", "agq": "aghem", "ain": "ainu", "ak": "akan", "akk": "akkadiska", "akz": "Alabama-muskogee", "ale": "aleutiska", "aln": "gegiska", "alt": "sydaltaiska", "am": "amhariska", "an": "aragonesiska", "ang": "fornengelska", "anp": "angika", "ar": "arabiska", "ar-001": "modern standardarabiska", "arc": "arameiska", "arn": "mapudungun", "aro": "araoniska", "arp": "arapaho", "arq": "algerisk arabiska", "ars": "najdiarabiska", "arw": "arawakiska", "ary": "marockansk arabiska", "arz": "egyptisk arabiska", "as": "assamesiska", "asa": "asu", "ase": "amerikanskt teckenspråk", "ast": "asturiska", "av": "avariska", "avk": "kotava", "awa": "awadhi", "ay": "aymara", "az": "azerbajdzjanska", "ba": "basjkiriska", "bal": "baluchiska", "ban": "balinesiska", "bar": "bayerska", "bas": "basa", "bax": "bamunska", "bbc": "batak-toba", "bbj": "ghomala", "be": "vitryska", "bej": "beja", "bem": "bemba", "bew": "betawiska", "bez": "bena", "bfd": "bafut", "bfq": "bagada", "bg": "bulgariska", "bgn": "västbaluchiska", "bho": "bhojpuri", "bi": "bislama", "bik": "bikol", "bin": "bini", "bjn": "banjariska", "bkm": "bamekon", "bla": "siksika", "bm": "bambara", "bn": "bengali", "bo": "tibetanska", "bpy": "bishnupriya", "bqi": "bakhtiari", "br": "bretonska", "bra": "braj", "brh": "brahuiska", "brx": "bodo", "bs": "bosniska", "bss": "bakossi", "bua": "burjätiska", "bug": "buginesiska", "bum": "boulou", "byn": "blin", "byv": "bagangte", "ca": "katalanska", "cad": "caddo", "car": "karibiska", "cay": "cayuga", "cch": "atsam", "ccp": "chakma", "ce": "tjetjenska", "ceb": "cebuano", "cgg": "chiga", "ch": "chamorro", "chb": "chibcha", "chg": "chagatai", "chk": "chuukesiska", "chm": "mariska", "chn": "chinook", "cho": "choctaw", "chp": "chipewyan", "chr": "cherokesiska", "chy": "cheyenne", "ckb": "soranisk kurdiska", "co": "korsikanska", "cop": "koptiska", "cps": "kapisnon", "cr": "cree", "crh": "krimtatariska", "crs": "seychellisk kreol", "cs": "tjeckiska", "csb": "kasjubiska", "cu": "kyrkslaviska", "cv": "tjuvasjiska", "cy": "walesiska", "da": "danska", "dak": "dakota", "dar": "darginska", "dav": "taita", "de": "tyska", "de-AT": "österrikisk tyska", "de-CH": "schweizisk högtyska", "del": "delaware", "den": "slavej", "dgr": "dogrib", "din": "dinka", "dje": "zarma", "doi": "dogri", "dsb": "lågsorbiska", "dtp": "centraldusun", "dua": "duala", "dum": "medelnederländska", "dv": "divehi", "dyo": "jola-fonyi", "dyu": "dyula", "dz": "dzongkha", "dzg": "dazaga", "ebu": "embu", "ee": "ewe", "efi": "efik", "egl": "emiliska", "egy": "fornegyptiska", "eka": "ekajuk", "el": "grekiska", "elx": "elamitiska", "en": "engelska", "en-AU": "australisk engelska", "en-CA": "kanadensisk engelska", "en-GB": "brittisk engelska", "en-US": "amerikansk engelska", "enm": "medelengelska", "eo": "esperanto", "es": "spanska", "es-419": "latinamerikansk spanska", "es-ES": "europeisk spanska", "es-MX": "mexikansk spanska", "esu": "centralalaskisk jupiska", "et": "estniska", "eu": "baskiska", "ewo": "ewondo", "ext": "extremaduriska", "fa": "persiska", "fan": "fang", "fat": "fanti", "ff": "fulani", "fi": "finska", "fil": "filippinska", "fit": "meänkieli", "fj": "fijianska", "fo": "färöiska", "fon": "fonspråket", "fr": "franska", "fr-CA": "kanadensisk franska", "fr-CH": "schweizisk franska", "frc": "cajun-franska", "frm": "medelfranska", "fro": "fornfranska", "frp": "frankoprovensalska", "frr": "nordfrisiska", "frs": "östfrisiska", "fur": "friulianska", "fy": "västfrisiska", "ga": "iriska", "gaa": "gã", "gag": "gagauziska", "gay": "gayo", "gba": "gbaya", "gbz": "zoroastrisk dari", "gd": "skotsk gäliska", "gez": "etiopiska", "gil": "gilbertiska", "gl": "galiciska", "glk": "gilaki", "gmh": "medelhögtyska", "gn": "guaraní", "goh": "fornhögtyska", "gom": "Goa-konkani", "gon": "gondi", "gor": "gorontalo", "got": "gotiska", "grb": "grebo", "grc": "forngrekiska", "gsw": "schweizertyska", "gu": "gujarati", "guc": "wayuu", "gur": "farefare", "guz": "gusii", "gv": "manx", "gwi": "gwichin", "ha": "hausa", "hai": "haida", "hak": "hakka", "haw": "hawaiiska", "he": "hebreiska", "hi": "hindi", "hif": "Fiji-hindi", "hil": "hiligaynon", "hit": "hettitiska", "hmn": "hmongspråk", "ho": "hirimotu", "hr": "kroatiska", "hsb": "högsorbiska", "hsn": "xiang", "ht": "haitiska", "hu": "ungerska", "hup": "hupa", "hy": "armeniska", "hz": "herero", "ia": "interlingua", "iba": "ibanska", "ibb": "ibibio", "id": "indonesiska", "ie": "interlingue", "ig": "igbo", "ii": "szezuan i", "ik": "inupiak", "ilo": "iloko", "inh": "ingusjiska", "io": "ido", "is": "isländska", "it": "italienska", "iu": "inuktitut", "izh": "ingriska", "ja": "japanska", "jam": "jamaikansk engelsk kreol", "jbo": "lojban", "jgo": "ngomba", "jmc": "kimashami", "jpr": "judisk persiska", "jrb": "judisk arabiska", "jut": "jylländska", "jv": "javanesiska", "ka": "georgiska", "kaa": "karakalpakiska", "kab": "kabyliska", "kac": "kachin", "kaj": "jju", "kam": "kamba", "kaw": "kawi", "kbd": "kabardinska", "kbl": "kanembu", "kcg": "tyap", "kde": "makonde", "kea": "kapverdiska", "ken": "kenjang", "kfo": "koro", "kg": "kikongo", "kgp": "kaingang", "kha": "khasi", "kho": "khotanesiska", "khq": "Timbuktu-songhoy", "khw": "khowar", "ki": "kikuyu", "kiu": "kirmanjki", "kj": "kuanyama", "kk": "kazakiska", "kkj": "mkako", "kl": "grönländska", "kln": "kalenjin", "km": "kambodjanska", "kmb": "kimbundu", "kn": "kannada", "ko": "koreanska", "koi": "komi-permjakiska", "kok": "konkani", "kos": "kosreanska", "kpe": "kpelle", "kr": "kanuri", "krc": "karachay-balkar", "kri": "krio", "krj": "kinaray-a", "krl": "karelska", "kru": "kurukh", "ks": "kashmiriska", "ksb": "kisambaa", "ksf": "bafia", "ksh": "kölniska", "ku": "kurdiska", "kum": "kumykiska", "kut": "kutenaj", "kv": "kome", "kw": "korniska", "ky": "kirgisiska", "la": "latin", "lad": "ladino", "lag": "langi", "lah": "lahnda", "lam": "lamba", "lb": "luxemburgiska", "lez": "lezghien", "lfn": "lingua franca nova", "lg": "luganda", "li": "limburgiska", "lij": "liguriska", "liv": "livoniska", "lkt": "lakota", "lmo": "lombardiska", "ln": "lingala", "lo": "laotiska", "lol": "mongo", "lou": "louisiana-kreol", "loz": "lozi", "lrc": "nordluri", "lt": "litauiska", "ltg": "lettgalliska", "lu": "luba-katanga", "lua": "luba-lulua", "lui": "luiseño", "lun": "lunda", "lus": "lushai", "luy": "luhya", "lv": "lettiska", "lzh": "litterär kineiska", "lzz": "laziska", "mad": "maduresiska", "maf": "mafa", "mag": "magahi", "mai": "maithili", "mak": "makasar", "man": "mande", "mas": "massajiska", "mde": "maba", "mdf": "moksja", "mdr": "mandar", "men": "mende", "mer": "meru", "mfe": "mauritansk kreol", "mg": "malagassiska", "mga": "medeliriska", "mgh": "makhuwa-meetto", "mgo": "meta’", "mh": "marshalliska", "mi": "maori", "mic": "mi’kmaq", "min": "minangkabau", "mk": "makedonska", "ml": "malayalam", "mn": "mongoliska", "mnc": "manchuriska", "mni": "manipuri", "moh": "mohawk", "mos": "mossi", "mr": "marathi", "mrj": "västmariska", "ms": "malajiska", "mt": "maltesiska", "mua": "mundang", "mus": "muskogee", "mwl": "mirandesiska", "mwr": "marwari", "mwv": "mentawai", "my": "burmesiska", "mye": "myene", "myv": "erjya", "mzn": "mazanderani", "na": "nauruanska", "nan": "min nan", "nap": "napolitanska", "naq": "nama", "nb": "norskt bokmål", "nd": "nordndebele", "nds": "lågtyska", "nds-NL": "lågsaxiska", "ne": "nepalesiska", "new": "newariska", "ng": "ndonga", "nia": "nias", "niu": "niueanska", "njo": "ao-naga", "nl": "nederländska", "nl-BE": "flamländska", "nmg": "kwasio", "nn": "nynorska", "nnh": "bamileké-ngiemboon", "no": "norska", "nog": "nogai", "non": "fornnordiska", "nov": "novial", "nqo": "n-kå", "nr": "sydndebele", "nso": "nordsotho", "nus": "nuer", "nv": "navaho", "nwc": "klassisk newariska", "ny": "nyanja", "nym": "nyamwezi", "nyn": "nyankole", "nyo": "nyoro", "nzi": "nzima", "oc": "occitanska", "oj": "odjibwa", "om": "oromo", "or": "oriya", "os": "ossetiska", "osa": "osage", "ota": "ottomanska", "pa": "punjabi", "pag": "pangasinan", "pal": "medelpersiska", "pam": "pampanga", "pap": "papiamento", "pau": "palau", "pcd": "pikardiska", "pcm": "Nigeria-pidgin", "pdc": "Pennsylvaniatyska", "pdt": "mennonitisk lågtyska", "peo": "fornpersiska", "pfl": "Pfalz-tyska", "phn": "feniciska", "pi": "pali", "pl": "polska", "pms": "piemontesiska", "pnt": "pontiska", "pon": "pohnpeiska", "prg": "fornpreussiska", "pro": "fornprovensalska", "ps": "afghanska", "pt": "portugisiska", "pt-BR": "brasiliansk portugisiska", "pt-PT": "europeisk portugisiska", "qu": "quechua", "quc": "quiché", "qug": "Chimborazo-höglandskichwa", "raj": "rajasthani", "rap": "rapanui", "rar": "rarotonganska", "rgn": "romagnol", "rif": "riffianska", "rm": "rätoromanska", "rn": "rundi", "ro": "rumänska", "ro-MD": "moldaviska", "rof": "rombo", "rom": "romani", "root": "rot", "rtm": "rotumänska", "ru": "ryska", "rue": "rusyn", "rug": "rovianska", "rup": "arumänska", "rw": "kinjarwanda", "rwk": "rwa", "sa": "sanskrit", "sad": "sandawe", "sah": "jakutiska", "sam": "samaritanska", "saq": "samburu", "sas": "sasak", "sat": "santali", "saz": "saurashtra", "sba": "ngambay", "sbp": "sangu", "sc": "sardinska", "scn": "sicilianska", "sco": "skotska", "sd": "sindhi", "sdc": "sassaresisk sardiska", "sdh": "sydkurdiska", "se": "nordsamiska", "see": "seneca", "seh": "sena", "sei": "seri", "sel": "selkup", "ses": "Gao-songhay", "sg": "sango", "sga": "forniriska", "sgs": "samogitiska", "sh": "serbokroatiska", "shi": "tachelhit", "shn": "shan", "shu": "Tchad-arabiska", "si": "singalesiska", "sid": "sidamo", "sk": "slovakiska", "sl": "slovenska", "sli": "lågsilesiska", "sly": "selayar", "sm": "samoanska", "sma": "sydsamiska", "smj": "lulesamiska", "smn": "enaresamiska", "sms": "skoltsamiska", "sn": "shona", "snk": "soninke", "so": "somaliska", "sog": "sogdiska", "sq": "albanska", "sr": "serbiska", "srn": "sranan tongo", "srr": "serer", "ss": "swati", "ssy": "saho", "st": "sydsotho", "stq": "saterfrisiska", "su": "sundanesiska", "suk": "sukuma", "sus": "susu", "sux": "sumeriska", "sv": "svenska", "sw": "swahili", "sw-CD": "Kongo-swahili", "swb": "shimaoré", "syc": "klassisk syriska", "syr": "syriska", "szl": "silesiska", "ta": "tamil", "tcy": "tulu", "te": "telugu", "tem": "temne", "teo": "teso", "ter": "tereno", "tet": "tetum", "tg": "tadzjikiska", "th": "thailändska", "ti": "tigrinja", "tig": "tigré", "tiv": "tivi", "tk": "turkmeniska", "tkl": "tokelauiska", "tkr": "tsakhur", "tl": "tagalog", "tlh": "klingonska", "tli": "tlingit", "tly": "talysh", "tmh": "tamashek", "tn": "tswana", "to": "tonganska", "tog": "nyasatonganska", "tpi": "tok pisin", "tr": "turkiska", "tru": "turoyo", "trv": "taroko", "ts": "tsonga", "tsd": "tsakodiska", "tsi": "tsimshian", "tt": "tatariska", "ttt": "muslimsk tatariska", "tum": "tumbuka", "tvl": "tuvaluanska", "tw": "twi", "twq": "tasawaq", "ty": "tahitiska", "tyv": "tuviniska", "tzm": "centralmarockansk tamazight", "udm": "udmurtiska", "ug": "uiguriska", "uga": "ugaritiska", "uk": "ukrainska", "umb": "umbundu", "ur": "urdu", "uz": "uzbekiska", "vai": "vaj", "ve": "venda", "vec": "venetianska", "vep": "veps", "vi": "vietnamesiska", "vls": "västflamländska", "vmf": "Main-frankiska", "vo": "volapük", "vot": "votiska", "vro": "võru", "vun": "vunjo", "wa": "vallonska", "wae": "walsertyska", "wal": "walamo", "war": "waray", "was": "washo", "wbp": "warlpiri", "wo": "wolof", "wuu": "wu", "xal": "kalmuckiska", "xh": "xhosa", "xmf": "mingrelianska", "xog": "lusoga", "yao": "kiyao", "yap": "japetiska", "yav": "yangben", "ybb": "bamileké-jemba", "yi": "jiddisch", "yo": "yoruba", "yrl": "nheengatu", "yue": "kantonesiska", "za": "zhuang", "zap": "zapotek", "zbl": "blissymboler", "zea": "zeeländska", "zen": "zenaga", "zgh": "marockansk standard-tamazight", "zh": "kinesiska", "zh-Hans": "förenklad kinesiska", "zh-Hant": "traditionell kinesiska", "zu": "zulu", "zun": "zuni", "zza": "zazaiska"}}, - "ta": {"rtl": false, "languageNames": {"aa": "அஃபார்", "ab": "அப்காஜியான்", "ace": "ஆச்சினீஸ்", "ach": "அகோலி", "ada": "அதாங்மே", "ady": "அதகே", "ae": "அவெஸ்தான்", "aeb": "துனிசிய அரபு", "af": "ஆஃப்ரிகான்ஸ்", "afh": "அஃப்ரிஹிலி", "agq": "அகெம்", "ain": "ஐனு", "ak": "அகான்", "akk": "அக்கேதியன்", "ale": "அலூட்", "alt": "தெற்கு அல்தை", "am": "அம்ஹாரிக்", "an": "ஆர்கோனீஸ்", "ang": "பழைய ஆங்கிலம்", "anp": "அங்கிகா", "ar": "அரபிக்", "ar-001": "நவீன நிலையான அரபிக்", "arc": "அராமைக்", "arn": "மபுச்சே", "arp": "அரபஹோ", "arw": "அராவாக்", "as": "அஸ்ஸாமீஸ்", "asa": "அசு", "ast": "அஸ்துரியன்", "av": "அவேரிக்", "awa": "அவதி", "ay": "அய்மரா", "az": "அஸர்பைஜானி", "ba": "பஷ்கிர்", "bal": "பலூச்சி", "ban": "பலினீஸ்", "bas": "பாஸா", "be": "பெலாருஷியன்", "bej": "பேஜா", "bem": "பெம்பா", "bez": "பெனா", "bfq": "படகா", "bg": "பல்கேரியன்", "bgn": "மேற்கு பலோச்சி", "bho": "போஜ்பூரி", "bi": "பிஸ்லாமா", "bik": "பிகோல்", "bin": "பினி", "bla": "சிக்சிகா", "bm": "பம்பாரா", "bn": "வங்காளம்", "bo": "திபெத்தியன்", "bpy": "பிஷ்ணுப்பிரியா", "br": "பிரெட்டன்", "bra": "ப்ராஜ்", "brx": "போடோ", "bs": "போஸ்னியன்", "bua": "புரியாத்", "bug": "புகினீஸ்", "byn": "ப்லின்", "ca": "கேட்டலான்", "cad": "கேடோ", "car": "கரீப்", "cch": "ஆட்சம்", "ce": "செச்சென்", "ceb": "செபுவானோ", "cgg": "சிகா", "ch": "சாமோரோ", "chb": "சிப்சா", "chg": "ஷகதை", "chk": "சூகிசே", "chm": "மாரி", "chn": "சினூக் ஜார்கான்", "cho": "சோக்தௌ", "chp": "சிபெவ்யான்", "chr": "செரோகீ", "chy": "செயேனி", "ckb": "மத்திய குர்திஷ்", "co": "கார்சிகன்", "cop": "காப்டிக்", "cr": "க்ரீ", "crh": "கிரிமியன் துர்க்கி", "crs": "செசெல்வா க்ரெயோல் பிரெஞ்சு", "cs": "செக்", "csb": "கஷுபியன்", "cu": "சர்ச் ஸ்லாவிக்", "cv": "சுவாஷ்", "cy": "வேல்ஷ்", "da": "டேனிஷ்", "dak": "டகோடா", "dar": "தார்குவா", "dav": "டைடா", "de": "ஜெர்மன்", "de-AT": "ஆஸ்திரிய ஜெர்மன்", "de-CH": "ஸ்விஸ் ஹை ஜெர்மன்", "del": "டெலாவர்", "den": "ஸ்லாவ்", "dgr": "டோக்ரிப்", "din": "டின்கா", "dje": "ஸார்மா", "doi": "டோக்ரி", "dsb": "லோயர் சோர்பியன்", "dua": "டுவாலா", "dum": "மிடில் டச்சு", "dv": "திவேஹி", "dyo": "ஜோலா-ஃபோன்யி", "dyu": "ட்யூலா", "dz": "பூடானி", "dzg": "டசாகா", "ebu": "எம்பு", "ee": "ஈவ்", "efi": "எஃபிக்", "egy": "பண்டைய எகிப்தியன்", "eka": "ஈகாஜுக்", "el": "கிரேக்கம்", "elx": "எலமைட்", "en": "ஆங்கிலம்", "en-AU": "ஆஸ்திரேலிய ஆங்கிலம்", "en-CA": "கனடிய ஆங்கிலம்", "en-GB": "பிரிட்டிஷ் ஆங்கிலம்", "en-US": "அமெரிக்க ஆங்கிலம்", "enm": "மிடில் ஆங்கிலம்", "eo": "எஸ்பரேன்டோ", "es": "ஸ்பானிஷ்", "es-419": "லத்தின் அமெரிக்க ஸ்பானிஷ்", "es-ES": "ஐரோப்பிய ஸ்பானிஷ்", "es-MX": "மெக்ஸிகன் ஸ்பானிஷ்", "et": "எஸ்டோனியன்", "eu": "பாஸ்க்", "ewo": "எவோன்டோ", "fa": "பெர்ஷியன்", "fan": "ஃபேங்க்", "fat": "ஃபான்டி", "ff": "ஃபுலா", "fi": "ஃபின்னிஷ்", "fil": "ஃபிலிபினோ", "fj": "ஃபிஜியன்", "fo": "ஃபரோயிஸ்", "fon": "ஃபான்", "fr": "பிரெஞ்சு", "fr-CA": "கனடிய பிரெஞ்சு", "fr-CH": "ஸ்விஸ் பிரஞ்சு", "frc": "கஜுன் பிரெஞ்சு", "frm": "மிடில் பிரெஞ்சு", "fro": "பழைய பிரெஞ்சு", "frr": "வடக்கு ஃப்ரிஸியான்", "frs": "கிழக்கு ஃப்ரிஸியான்", "fur": "ஃப்ரியூலியன்", "fy": "மேற்கு ஃப்ரிஷியன்", "ga": "ஐரிஷ்", "gaa": "கா", "gag": "காகௌஸ்", "gan": "கன் சீனம்", "gay": "கயோ", "gba": "பயா", "gd": "ஸ்காட்ஸ் கேலிக்", "gez": "கீஜ்", "gil": "கில்பெர்டீஸ்", "gl": "காலிஸியன்", "gmh": "மிடில் ஹை ஜெர்மன்", "gn": "க்வாரனி", "goh": "பழைய ஹை ஜெர்மன்", "gon": "கோன்டி", "gor": "கோரோன்டலோ", "got": "கோதிக்", "grb": "க்ரேபோ", "grc": "பண்டைய கிரேக்கம்", "gsw": "ஸ்விஸ் ஜெர்மன்", "gu": "குஜராத்தி", "guz": "குஸி", "gv": "மேங்க்ஸ்", "gwi": "குவிசின்", "ha": "ஹௌஸா", "hai": "ஹைடா", "hak": "ஹக்கா சீனம்", "haw": "ஹவாயியன்", "he": "ஹீப்ரூ", "hi": "இந்தி", "hif": "ஃபிஜி இந்தி", "hil": "ஹிலிகாய்னான்", "hit": "ஹிட்டைட்", "hmn": "மாங்க்", "ho": "ஹிரி மோட்டு", "hr": "குரோஷியன்", "hsb": "அப்பர் சோர்பியான்", "hsn": "சியாங்க் சீனம்", "ht": "ஹைத்தியன் க்ரியோலி", "hu": "ஹங்கேரியன்", "hup": "ஹுபா", "hy": "ஆர்மேனியன்", "hz": "ஹெரேரோ", "ia": "இன்டர்லிங்வா", "iba": "இபான்", "ibb": "இபிபியோ", "id": "இந்தோனேஷியன்", "ie": "இன்டர்லிங்", "ig": "இக்போ", "ii": "சிசுவான் ஈ", "ik": "இனுபியாக்", "ilo": "இலோகோ", "inh": "இங்குஷ்", "io": "இடோ", "is": "ஐஸ்லேண்டிக்", "it": "இத்தாலியன்", "iu": "இனுகிடூட்", "ja": "ஜப்பானியம்", "jbo": "லோஜ்பன்", "jgo": "நகொம்பா", "jmc": "மாசெம்", "jpr": "ஜூதேயோ-பெர்ஷியன்", "jrb": "ஜூதேயோ-அராபிக்", "jv": "ஜாவனீஸ்", "ka": "ஜார்ஜியன்", "kaa": "காரா-கல்பாக்", "kab": "கபாய்ல்", "kac": "காசின்", "kaj": "ஜ்ஜூ", "kam": "கம்பா", "kaw": "காவி", "kbd": "கபார்டியன்", "kcg": "தையாப்", "kde": "மகொண்டே", "kea": "கபுவெர்தியானு", "kfo": "கோரோ", "kg": "காங்கோ", "kha": "காஸி", "kho": "கோதானீஸ்", "khq": "கொய்ரா சீனீ", "ki": "கிகுயூ", "kj": "குவான்யாமா", "kk": "கசாக்", "kkj": "ககோ", "kl": "கலாலிசூட்", "kln": "கலின்ஜின்", "km": "கெமெர்", "kmb": "கிம்புன்து", "kn": "கன்னடம்", "ko": "கொரியன்", "koi": "கொமி-பெர்ம்யாக்", "kok": "கொங்கணி", "kos": "கோஸ்ரைன்", "kpe": "க்பெல்லே", "kr": "கனுரி", "krc": "கராசே-பல்கார்", "krl": "கரேலியன்", "kru": "குருக்", "ks": "காஷ்மிரி", "ksb": "ஷம்பாலா", "ksf": "பாஃபியா", "ksh": "கொலோக்னியன்", "ku": "குர்திஷ்", "kum": "கும்இக்", "kut": "குடேனை", "kv": "கொமி", "kw": "கார்னிஷ்", "ky": "கிர்கிஸ்", "la": "லத்தின்", "lad": "லடினோ", "lag": "லங்கி", "lah": "லஹன்டா", "lam": "லம்பா", "lb": "லக்ஸம்போர்கிஷ்", "lez": "லெஜ்ஜியன்", "lg": "கான்டா", "li": "லிம்பர்கிஷ்", "lkt": "லகோடா", "ln": "லிங்காலா", "lo": "லாவோ", "lol": "மோங்கோ", "lou": "லூசியானா க்ரயோல்", "loz": "லோசி", "lrc": "வடக்கு லுரி", "lt": "லிதுவேனியன்", "lu": "லுபா-கடாங்கா", "lua": "லுபா-லுலுலா", "lui": "லுய்சேனோ", "lun": "லூன்டா", "luo": "லுயோ", "lus": "மிஸோ", "luy": "லுயியா", "lv": "லாட்வியன்", "mad": "மதுரீஸ்", "mag": "மகாஹி", "mai": "மைதிலி", "mak": "மகாசார்", "man": "மான்டிங்கோ", "mas": "மாசாய்", "mdf": "மோக்க்ஷா", "mdr": "மான்டார்", "men": "மென்டீ", "mer": "மெரு", "mfe": "மொரிசியன்", "mg": "மலகாஸி", "mga": "மிடில் ஐரிஷ்", "mgh": "மகுவா-மீட்டோ", "mgo": "மேடா", "mh": "மார்ஷெலீஸ்", "mi": "மௌரி", "mic": "மிக்மாக்", "min": "மின்னாங்கபௌ", "mk": "மாஸிடோனியன்", "ml": "மலையாளம்", "mn": "மங்கோலியன்", "mnc": "மன்சூ", "mni": "மணிப்புரி", "moh": "மொஹாக்", "mos": "மோஸ்ஸி", "mr": "மராத்தி", "ms": "மலாய்", "mt": "மால்டிஸ்", "mua": "முன்டாங்", "mus": "க்ரீக்", "mwl": "மிரான்டீஸ்", "mwr": "மார்வாரி", "my": "பர்மீஸ்", "myv": "ஏர்ஜியா", "mzn": "மசந்தேரனி", "na": "நவ்ரூ", "nan": "மின் நான் சீனம்", "nap": "நியோபோலிடன்", "naq": "நாமா", "nb": "நார்வேஜியன் பொக்மால்", "nd": "வடக்கு தெபெலே", "nds": "லோ ஜெர்மன்", "nds-NL": "லோ சாக்ஸன்", "ne": "நேபாளி", "new": "நெவாரி", "ng": "தோங்கா", "nia": "நியாஸ்", "niu": "நியூவான்", "nl": "டச்சு", "nl-BE": "ஃப்லெமிஷ்", "nmg": "க்வாசியோ", "nn": "நார்வேஜியன் நியூநார்ஸ்க்", "nnh": "நெகெய்ம்பூன்", "no": "நார்வேஜியன்", "nog": "நோகை", "non": "பழைய நோர்ஸ்", "nqo": "என்‘கோ", "nr": "தெற்கு தெபெலே", "nso": "வடக்கு சோதோ", "nus": "நியூர்", "nv": "நவாஜோ", "nwc": "பாரம்பரிய நேவாரி", "ny": "நயன்ஜா", "nym": "நியாம்வேஜி", "nyn": "நியான்கோலே", "nyo": "நியோரோ", "nzi": "நிஜ்மா", "oc": "ஒக்கிடன்", "oj": "ஒஜிப்வா", "om": "ஒரோமோ", "or": "ஒடியா", "os": "ஒசெட்டிக்", "osa": "ஓசேஜ்", "ota": "ஓட்டோமான் துருக்கிஷ்", "pa": "பஞ்சாபி", "pag": "பன்காசினன்", "pal": "பாஹ்லவி", "pam": "பம்பாங்கா", "pap": "பபியாமென்டோ", "pau": "பலௌவன்", "pcm": "நைஜீரியன் பிட்கின்", "pdc": "பென்சில்வேனிய ஜெர்மன்", "peo": "பழைய பெர்ஷியன்", "phn": "ஃபொனிஷியன்", "pi": "பாலி", "pl": "போலிஷ்", "pon": "ஃபோன்பெயென்", "prg": "பிரஷ்யன்", "pro": "பழைய ப்ரோவென்சால்", "ps": "பஷ்தோ", "pt": "போர்ச்சுக்கீஸ்", "pt-BR": "பிரேசிலிய போர்ச்சுகீஸ்", "pt-PT": "ஐரோப்பிய போர்ச்சுகீஸ்", "qu": "க்வெச்சுவா", "quc": "கீசீ", "raj": "ராஜஸ்தானி", "rap": "ரபனுய்", "rar": "ரரோடோங்கன்", "rm": "ரோமான்ஷ்", "rn": "ருண்டி", "ro": "ரோமேனியன்", "ro-MD": "மோல்டாவியன்", "rof": "ரோம்போ", "rom": "ரோமானி", "root": "ரூட்", "ru": "ரஷியன்", "rup": "அரோமானியன்", "rw": "கின்யாருவான்டா", "rwk": "ருவா", "sa": "சமஸ்கிருதம்", "sad": "சான்டாவே", "sah": "சக்கா", "sam": "சமாரிடன் அராமைக்", "saq": "சம்புரு", "sas": "சாசாக்", "sat": "சான்டாலி", "saz": "சௌராஷ்டிரம்", "sba": "நெகாம்பே", "sbp": "சங்கு", "sc": "சார்தீனியன்", "scn": "சிசிலியன்", "sco": "ஸ்காட்ஸ்", "sd": "சிந்தி", "sdh": "தெற்கு குர்திஷ்", "se": "வடக்கு சமி", "seh": "செனா", "sel": "செல்குப்", "ses": "கொய்ராபோரோ சென்னி", "sg": "சாங்கோ", "sga": "பழைய ஐரிஷ்", "sh": "செர்போ-குரோஷியன்", "shi": "தசேஹித்", "shn": "ஷான்", "si": "சிங்களம்", "sid": "சிடாமோ", "sk": "ஸ்லோவாக்", "sl": "ஸ்லோவேனியன்", "sm": "சமோவான்", "sma": "தெற்கு சமி", "smj": "லுலே சமி", "smn": "இனாரி சமி", "sms": "ஸ்கோல்ட் சமி", "sn": "ஷோனா", "snk": "சோனின்கே", "so": "சோமாலி", "sog": "சோக்தியன்", "sq": "அல்பேனியன்", "sr": "செர்பியன்", "srn": "ஸ்ரானன் டோங்கோ", "srr": "செரெர்", "ss": "ஸ்வாடீ", "ssy": "சஹோ", "st": "தெற்கு ஸோதோ", "su": "சுண்டானீஸ்", "suk": "சுகுமா", "sus": "சுசு", "sux": "சுமேரியன்", "sv": "ஸ்வீடிஷ்", "sw": "ஸ்வாஹிலி", "sw-CD": "காங்கோ ஸ்வாஹிலி", "swb": "கொமோரியன்", "syc": "பாரம்பரிய சிரியாக்", "syr": "சிரியாக்", "ta": "தமிழ்", "te": "தெலுங்கு", "tem": "டிம்னே", "teo": "டெசோ", "ter": "டெரெனோ", "tet": "டெடும்", "tg": "தஜிக்", "th": "தாய்", "ti": "டிக்ரின்யா", "tig": "டைக்ரே", "tiv": "டிவ்", "tk": "துருக்மென்", "tkl": "டோகேலௌ", "tl": "டாகாலோக்", "tlh": "க்ளிங்கோன்", "tli": "லிங்கிட்", "tmh": "தமஷேக்", "tn": "ஸ்வானா", "to": "டோங்கான்", "tog": "நயாசா டோங்கா", "tpi": "டோக் பிஸின்", "tr": "துருக்கிஷ்", "trv": "தரோகோ", "ts": "ஸோங்கா", "tsi": "ட்ஸிம்ஷியன்", "tt": "டாடர்", "tum": "தும்புகா", "tvl": "டுவாலு", "tw": "ட்வி", "twq": "டசவாக்", "ty": "தஹிதியன்", "tyv": "டுவினியன்", "tzm": "மத்திய அட்லஸ் டமசைட்", "udm": "உட்முர்ட்", "ug": "உய்குர்", "uga": "உகாரிடிக்", "uk": "உக்ரைனியன்", "umb": "அம்பொண்டு", "ur": "உருது", "uz": "உஸ்பெக்", "vai": "வை", "ve": "வென்டா", "vi": "வியட்நாமீஸ்", "vo": "ஒலாபூக்", "vot": "வோட்க்", "vun": "வுன்ஜோ", "wa": "ஒவாலூன்", "wae": "வால்சேர்", "wal": "வோலாய்ட்டா", "war": "வாரே", "was": "வாஷோ", "wbp": "வல்பிரி", "wo": "ஓலோஃப்", "wuu": "வூ சீனம்", "xal": "கல்மிக்", "xh": "ஹோசா", "xog": "சோகா", "yao": "யாவ்", "yap": "யாபேசே", "yav": "யாங்பென்", "ybb": "யெம்பா", "yi": "யெட்டிஷ்", "yo": "யோருபா", "yue": "காண்டோனீஸ்", "za": "ஜுவாங்", "zap": "ஜாபோடெக்", "zbl": "ப்லிஸ்ஸிம்பால்ஸ்", "zen": "ஜெனகா", "zgh": "ஸ்டாண்டர்ட் மொராக்கன் தமாசைட்", "zh": "சீனம்", "zh-Hans": "எளிதாக்கப்பட்ட சீனம்", "zh-Hant": "பாரம்பரிய சீனம்", "zu": "ஜுலு", "zun": "ஜூனி", "zza": "ஜாஜா"}}, - "te": {"rtl": false, "languageNames": {"aa": "అఫార్", "ab": "అబ్ఖాజియన్", "ace": "ఆఖినీస్", "ach": "అకోలి", "ada": "అడాంగ్మే", "ady": "అడిగాబ్జే", "ae": "అవేస్టాన్", "aeb": "టునీషియా అరబిక్", "af": "ఆఫ్రికాన్స్", "afh": "అఫ్రిహిలి", "agq": "అగేమ్", "ain": "ఐను", "ak": "అకాన్", "akk": "అక్కాడియాన్", "ale": "అలియుట్", "alt": "దక్షిణ ఆల్టై", "am": "అమ్హారిక్", "an": "అరగోనిస్", "ang": "ప్రాచీన ఆంగ్లం", "anp": "ఆంగిక", "ar": "అరబిక్", "ar-001": "ఆధునిక ప్రామాణిక అరబిక్", "arc": "అరామైక్", "arn": "మపుచే", "arp": "అరాపాహో", "arw": "అరావాక్", "arz": "ఈజిప్షియన్ అరబిక్", "as": "అస్సామీస్", "asa": "అసు", "ast": "ఆస్టూరియన్", "av": "అవారిక్", "awa": "అవధి", "ay": "ఐమారా", "az": "అజర్బైజాని", "ba": "బాష్కిర్", "bal": "బాలుచి", "ban": "బాలినీస్", "bas": "బసా", "be": "బెలారుషియన్", "bej": "బేజా", "bem": "బెంబా", "bez": "బెనా", "bg": "బల్గేరియన్", "bgn": "పశ్చిమ బలూచీ", "bho": "భోజ్‌పురి", "bi": "బిస్లామా", "bik": "బికోల్", "bin": "బిని", "bla": "సిక్సికా", "bm": "బంబారా", "bn": "బంగ్లా", "bo": "టిబెటన్", "bpy": "బిష్ణుప్రియ", "br": "బ్రెటన్", "bra": "బ్రాజ్", "brx": "బోడో", "bs": "బోస్నియన్", "bua": "బురియట్", "bug": "బుగినీస్", "byn": "బ్లిన్", "ca": "కాటలాన్", "cad": "కేడ్డో", "car": "కేరిబ్", "cch": "అట్సామ్", "ce": "చెచెన్", "ceb": "సెబువానో", "cgg": "ఛిగా", "ch": "చమర్రో", "chb": "చిబ్చా", "chg": "చాగటై", "chk": "చూకీస్", "chm": "మారి", "chn": "చినూక్ జార్గన్", "cho": "చక్టా", "chp": "చిపెవ్యాన్", "chr": "చెరోకీ", "chy": "చేయేన్", "ckb": "సెంట్రల్ కర్డిష్", "co": "కోర్సికన్", "cop": "కోప్టిక్", "cr": "క్రి", "crh": "క్రిమియన్ టర్కిష్", "crs": "సెసేల్వా క్రియోల్ ఫ్రెంచ్", "cs": "చెక్", "csb": "కషుబియన్", "cu": "చర్చ్ స్లావిక్", "cv": "చువాష్", "cy": "వెల్ష్", "da": "డానిష్", "dak": "డకోటా", "dar": "డార్గ్వా", "dav": "టైటా", "de": "జర్మన్", "de-AT": "ఆస్ట్రియన్ జర్మన్", "de-CH": "స్విస్ హై జర్మన్", "del": "డెలావేర్", "den": "స్లేవ్", "dgr": "డోగ్రిబ్", "din": "డింకా", "dje": "జార్మా", "doi": "డోగ్రి", "dsb": "లోయర్ సోర్బియన్", "dua": "డ్యూలా", "dum": "మధ్యమ డచ్", "dv": "దివేహి", "dyo": "జోలా-ఫోనయి", "dyu": "డ్యులా", "dz": "జోంఖా", "dzg": "డాజాగా", "ebu": "ఇంబు", "ee": "యూ", "efi": "ఎఫిక్", "egy": "ప్రాచీన ఈజిప్షియన్", "eka": "ఏకాజక్", "el": "గ్రీక్", "elx": "ఎలామైట్", "en": "ఆంగ్లం", "en-AU": "ఆస్ట్రేలియన్ ఇంగ్లీష్", "en-CA": "కెనడియన్ ఇంగ్లీష్", "en-GB": "బ్రిటిష్ ఇంగ్లీష్", "en-US": "అమెరికన్ ఇంగ్లీష్", "enm": "మధ్యమ ఆంగ్లం", "eo": "ఎస్పెరాంటో", "es": "స్పానిష్", "es-419": "లాటిన్ అమెరికన్ స్పానిష్", "es-ES": "యూరోపియన్ స్పానిష్", "es-MX": "మెక్సికన్ స్పానిష్", "et": "ఎస్టోనియన్", "eu": "బాస్క్యూ", "ewo": "ఎవోండొ", "fa": "పర్షియన్", "fan": "ఫాంగ్", "fat": "ఫాంటి", "ff": "ఫ్యుల", "fi": "ఫిన్నిష్", "fil": "ఫిలిపినో", "fj": "ఫిజియన్", "fo": "ఫారోస్", "fon": "ఫాన్", "fr": "ఫ్రెంచ్", "fr-CA": "కెనడియెన్ ఫ్రెంచ్", "fr-CH": "స్విస్ ఫ్రెంచ్", "frc": "కాజున్ ఫ్రెంచ్", "frm": "మధ్యమ ప్రెంచ్", "fro": "ప్రాచీన ఫ్రెంచ్", "frr": "ఉత్తర ఫ్రిసియన్", "frs": "తూర్పు ఫ్రిసియన్", "fur": "ఫ్రియులియన్", "fy": "పశ్చిమ ఫ్రిసియన్", "ga": "ఐరిష్", "gaa": "గా", "gag": "గాగౌజ్", "gan": "గాన్ చైనీస్", "gay": "గాయో", "gba": "గ్బాయా", "gd": "స్కాటిష్ గేలిక్", "gez": "జీజ్", "gil": "గిల్బర్టీస్", "gl": "గాలిషియన్", "gmh": "మధ్యమ హై జర్మన్", "gn": "గ్వారనీ", "goh": "ప్రాచీన హై జర్మన్", "gon": "గోండి", "gor": "గోరోంటలా", "got": "గోథిక్", "grb": "గ్రేబో", "grc": "ప్రాచీన గ్రీక్", "gsw": "స్విస్ జర్మన్", "gu": "గుజరాతి", "guz": "గుస్సీ", "gv": "మాంక్స్", "gwi": "గ్విచిన్", "ha": "హౌసా", "hai": "హైడా", "hak": "హక్కా చైనీస్", "haw": "హవాయియన్", "he": "హిబ్రూ", "hi": "హిందీ", "hil": "హిలిగెనాన్", "hit": "హిట్టిటే", "hmn": "మోంగ్", "ho": "హిరి మోటు", "hr": "క్రొయేషియన్", "hsb": "అప్పర్ సోర్బియన్", "hsn": "జియాంగ్ చైనీస్", "ht": "హైటియన్ క్రియోల్", "hu": "హంగేరియన్", "hup": "హుపా", "hy": "ఆర్మేనియన్", "hz": "హెరెరో", "ia": "ఇంటర్లింగ్వా", "iba": "ఐబాన్", "ibb": "ఇబిబియో", "id": "ఇండోనేషియన్", "ie": "ఇంటర్లింగ్", "ig": "ఇగ్బో", "ii": "శిషువన్ ఈ", "ik": "ఇనుపైయాక్", "ilo": "ఐలోకో", "inh": "ఇంగుష్", "io": "ఈడో", "is": "ఐస్లాండిక్", "it": "ఇటాలియన్", "iu": "ఇనుక్టిటుట్", "ja": "జపనీస్", "jbo": "లోజ్బాన్", "jgo": "గోంబా", "jmc": "మకొమ్", "jpr": "జ్యుడియో-పర్షియన్", "jrb": "జ్యుడియో-అరబిక్", "jv": "జావనీస్", "ka": "జార్జియన్", "kaa": "కారా-కల్పాక్", "kab": "కాబిల్", "kac": "కాచిన్", "kaj": "జ్యూ", "kam": "కంబా", "kaw": "కావి", "kbd": "కబార్డియన్", "kcg": "ట్యాప్", "kde": "మకొండే", "kea": "కాబువేర్దియను", "kfo": "కోరో", "kg": "కోంగో", "kha": "ఖాసి", "kho": "ఖోటనీస్", "khq": "కొయరా చీన్నీ", "ki": "కికుయు", "kj": "క్వాన్యామ", "kk": "కజఖ్", "kkj": "కాకో", "kl": "కలాల్లిసూట్", "kln": "కలెంజిన్", "km": "ఖ్మేర్", "kmb": "కిమ్బుండు", "kn": "కన్నడ", "ko": "కొరియన్", "koi": "కోమి-పర్మాక్", "kok": "కొంకణి", "kos": "కోస్రేయన్", "kpe": "పెల్లే", "kr": "కానురి", "krc": "కరచే-బల్కార్", "krl": "కరేలియన్", "kru": "కూరుఖ్", "ks": "కాశ్మీరి", "ksb": "శంబాలా", "ksf": "బాఫియ", "ksh": "కొలోనియన్", "ku": "కుర్దిష్", "kum": "కుమ్యిక్", "kut": "కుటేనై", "kv": "కోమి", "kw": "కోర్నిష్", "ky": "కిర్గిజ్", "la": "లాటిన్", "lad": "లాడినో", "lag": "లాంగీ", "lah": "లాహండా", "lam": "లాంబా", "lb": "లక్సెంబర్గిష్", "lez": "లేజ్ఘియన్", "lg": "గాండా", "li": "లిమ్బర్గిష్", "lkt": "లకొటా", "ln": "లింగాల", "lo": "లావో", "lol": "మొంగో", "lou": "లూసియానా క్రియోల్", "loz": "లోజి", "lrc": "ఉత్తర లూరీ", "lt": "లిథువేనియన్", "lu": "లూబ-కటాంగ", "lua": "లుబా-లులువ", "lui": "లుయిసెనో", "lun": "లుండా", "luo": "లువో", "lus": "మిజో", "luy": "లుయియ", "lv": "లాట్వియన్", "mad": "మాదురీస్", "mag": "మగాహి", "mai": "మైథిలి", "mak": "మకాసార్", "man": "మండింగో", "mas": "మాసై", "mdf": "మోక్ష", "mdr": "మండార్", "men": "మెండే", "mer": "మెరు", "mfe": "మొరిస్యేన్", "mg": "మలగాసి", "mga": "మధ్యమ ఐరిష్", "mgh": "మక్వా-మిట్టో", "mgo": "మెటా", "mh": "మార్షలీస్", "mi": "మావొరీ", "mic": "మికమాక్", "min": "మినాంగ్‌కాబో", "mk": "మాసిడోనియన్", "ml": "మలయాళం", "mn": "మంగోలియన్", "mnc": "మంచు", "mni": "మణిపురి", "moh": "మోహాక్", "mos": "మోస్సి", "mr": "మరాఠీ", "ms": "మలయ్", "mt": "మాల్టీస్", "mua": "మండాంగ్", "mus": "క్రీక్", "mwl": "మిరాండిస్", "mwr": "మార్వాడి", "my": "బర్మీస్", "myv": "ఎర్జియా", "mzn": "మాసన్‌దెరాని", "na": "నౌరు", "nan": "మిన్ నాన్ చైనీస్", "nap": "నియాపోలిటన్", "naq": "నమ", "nb": "నార్వేజియన్ బొక్మాల్", "nd": "ఉత్తర దెబెలె", "nds": "లో జర్మన్", "nds-NL": "లో సాక్సన్", "ne": "నేపాలి", "new": "నెవారి", "ng": "డోంగా", "nia": "నియాస్", "niu": "నియాన్", "nl": "డచ్", "nl-BE": "ఫ్లెమిష్", "nmg": "క్వాసియె", "nn": "నార్వేజియాన్ న్యోర్స్క్", "nnh": "గింబూన్", "no": "నార్వేజియన్", "nog": "నోగై", "non": "ప్రాచిన నోర్స్", "nqo": "న్కో", "nr": "దక్షిణ దెబెలె", "nso": "ఉత్తర సోతో", "nus": "న్యుర్", "nv": "నవాజొ", "nwc": "సాంప్రదాయ న్యూయారీ", "ny": "న్యాన్జా", "nym": "న్యంవేజి", "nyn": "న్యాన్కోలె", "nyo": "నేయోరో", "nzi": "జీమా", "oc": "ఆక్సిటన్", "oj": "చేవా", "om": "ఒరోమో", "or": "ఒడియా", "os": "ఒసేటిక్", "osa": "ఒసాజ్", "ota": "ఒట్టోమన్ టర్కిష్", "pa": "పంజాబీ", "pag": "పంగాసినాన్", "pal": "పహ్లావి", "pam": "పంపన్గా", "pap": "పపియమేంటో", "pau": "పలావెన్", "pcm": "నైజీరియా పిడ్గిన్", "peo": "ప్రాచీన పర్షియన్", "phn": "ఫోనికన్", "pi": "పాలీ", "pl": "పోలిష్", "pon": "పోహ్న్పెయన్", "prg": "ప్రష్యన్", "pro": "ప్రాచీన ప్రోవెంసాల్", "ps": "పాష్టో", "pt": "పోర్చుగీస్", "pt-BR": "బ్రెజీలియన్ పోర్చుగీస్", "pt-PT": "యూరోపియన్ పోర్చుగీస్", "qu": "కెచువా", "quc": "కిచే", "raj": "రాజస్తానీ", "rap": "రాపన్యుయి", "rar": "రారోటొంగాన్", "rm": "రోమన్ష్", "rn": "రుండి", "ro": "రోమేనియన్", "ro-MD": "మొల్డావియన్", "rof": "రోంబో", "rom": "రోమానీ", "root": "రూట్", "ru": "రష్యన్", "rup": "ఆరోమేనియన్", "rw": "కిన్యర్వాండా", "rwk": "ర్వా", "sa": "సంస్కృతం", "sad": "సండావి", "sah": "సాఖా", "sam": "సమారిటన్ అరామైక్", "saq": "సంబురు", "sas": "ససక్", "sat": "సంతాలి", "sba": "గాంబే", "sbp": "సాంగు", "sc": "సార్డీనియన్", "scn": "సిసిలియన్", "sco": "స్కాట్స్", "sd": "సింధీ", "sdh": "దక్షిణ కుర్డిష్", "se": "ఉత్తర సామి", "seh": "సెనా", "sel": "సేల్కప్", "ses": "కోయోరాబోరో సెన్నీ", "sg": "సాంగో", "sga": "ప్రాచీన ఐరిష్", "sh": "సేర్బో-క్రొయేషియన్", "shi": "టాచెల్‌హిట్", "shn": "షాన్", "si": "సింహళం", "sid": "సిడామో", "sk": "స్లోవక్", "sl": "స్లోవేనియన్", "sm": "సమోవన్", "sma": "దక్షిణ సామి", "smj": "లులే సామి", "smn": "ఇనారి సామి", "sms": "స్కోల్ట్ సామి", "sn": "షోన", "snk": "సోనింకి", "so": "సోమాలి", "sog": "సోగ్డియన్", "sq": "అల్బేనియన్", "sr": "సెర్బియన్", "srn": "స్రానన్ టోంగో", "srr": "సెరేర్", "ss": "స్వాతి", "ssy": "సాహో", "st": "దక్షిణ సోతో", "su": "సండానీస్", "suk": "సుకుమా", "sus": "సుసు", "sux": "సుమేరియాన్", "sv": "స్వీడిష్", "sw": "స్వాహిలి", "sw-CD": "కాంగో స్వాహిలి", "swb": "కొమొరియన్", "syc": "సాంప్రదాయ సిరియాక్", "syr": "సిరియాక్", "ta": "తమిళము", "tcy": "తుళు", "te": "తెలుగు", "tem": "టిమ్నే", "teo": "టెసో", "ter": "టెరెనో", "tet": "టేటం", "tg": "తజిక్", "th": "థాయ్", "ti": "టిగ్రిన్యా", "tig": "టీగ్రె", "tiv": "టివ్", "tk": "తుర్క్‌మెన్", "tkl": "టోకెలావ్", "tl": "టగలాగ్", "tlh": "క్లింగాన్", "tli": "ట్లింగిట్", "tmh": "టామషేక్", "tn": "స్వానా", "to": "టాంగాన్", "tog": "న్యాసా టోన్గా", "tpi": "టోక్ పిసిన్", "tr": "టర్కిష్", "trv": "తరోకో", "ts": "సోంగా", "tsi": "శింషీయన్", "tt": "టాటర్", "tum": "టుంబుకా", "tvl": "టువాలు", "tw": "ట్వి", "twq": "టసావాఖ్", "ty": "తహితియన్", "tyv": "టువినియన్", "tzm": "సెంట్రల్ అట్లాస్ టామాజైట్", "udm": "ఉడ్ముర్ట్", "ug": "ఉయ్‌ఘర్", "uga": "ఉగారిటిక్", "uk": "ఉక్రెయినియన్", "umb": "ఉమ్బుండు", "ur": "ఉర్దూ", "uz": "ఉజ్బెక్", "vai": "వాయి", "ve": "వెండా", "vi": "వియత్నామీస్", "vo": "వోలాపుక్", "vot": "వోటిక్", "vun": "వుంజొ", "wa": "వాలూన్", "wae": "వాల్సర్", "wal": "వాలేట్టా", "war": "వారే", "was": "వాషో", "wbp": "వార్లపిరి", "wo": "ఉలూఫ్", "wuu": "వు చైనీస్", "xal": "కల్మిక్", "xh": "షోసా", "xog": "సొగా", "yao": "యాయే", "yap": "యాపిస్", "yav": "యాంగ్‌బెన్", "ybb": "యెంబా", "yi": "ఇడ్డిష్", "yo": "యోరుబా", "yue": "కాంటనీస్", "za": "జువాన్", "zap": "జపోటెక్", "zbl": "బ్లిసింబల్స్", "zen": "జెనాగా", "zgh": "ప్రామాణిక మొరొకన్ టామజైట్", "zh": "చైనీస్", "zh-Hans": "సరళీకృత చైనీస్", "zh-Hant": "సాంప్రదాయక చైనీస్", "zu": "జూలూ", "zun": "జుని", "zza": "జాజా"}}, - "th": {"rtl": false, "languageNames": {"aa": "อะฟาร์", "ab": "อับฮาเซีย", "ace": "อาเจะห์", "ach": "อาโคลิ", "ada": "อาแดงมี", "ady": "อะดืยเก", "ae": "อเวสตะ", "aeb": "อาหรับตูนิเซีย", "af": "แอฟริกานส์", "afh": "แอฟริฮีลี", "agq": "อักเฮม", "ain": "ไอนุ", "ak": "อาคาน", "akk": "อักกาด", "akz": "แอละแบมา", "ale": "อาลิวต์", "aln": "เกกแอลเบเนีย", "alt": "อัลไตใต้", "am": "อัมฮารา", "an": "อารากอน", "ang": "อังกฤษโบราณ", "anp": "อังคิกา", "ar": "อาหรับ", "ar-001": "อาหรับมาตรฐานสมัยใหม่", "arc": "อราเมอิก", "arn": "มาปูเช", "aro": "อาเรานา", "arp": "อาราปาโฮ", "arq": "อาหรับแอลจีเรีย", "ars": "อาหรับนัจญ์ดี", "arw": "อาราวัก", "ary": "อาหรับโมร็อกโก", "arz": "อาหรับพื้นเมืองอียิปต์", "as": "อัสสัม", "asa": "อาซู", "ase": "ภาษามืออเมริกัน", "ast": "อัสตูเรียส", "av": "อาวาร์", "avk": "โคตาวา", "awa": "อวธี", "ay": "ไอย์มารา", "az": "อาเซอร์ไบจาน", "ba": "บัชคีร์", "bal": "บาลูชิ", "ban": "บาหลี", "bar": "บาวาเรีย", "bas": "บาสา", "bax": "บามัน", "bbc": "บาตักโทบา", "bbj": "โคมาลา", "be": "เบลารุส", "bej": "เบจา", "bem": "เบมบา", "bew": "เบตาวี", "bez": "เบนา", "bfd": "บาฟัต", "bfq": "พทคะ", "bg": "บัลแกเรีย", "bgn": "บาลูจิตะวันตก", "bho": "โภชปุรี", "bi": "บิสลามา", "bik": "บิกอล", "bin": "บินี", "bjn": "บันจาร์", "bkm": "กม", "bla": "สิกสิกา", "bm": "บัมบารา", "bn": "บังกลา", "bo": "ทิเบต", "bpy": "พิศนุปริยะ", "bqi": "บักติยารี", "br": "เบรตัน", "bra": "พัรช", "brh": "บราฮุย", "brx": "โพโฑ", "bs": "บอสเนีย", "bss": "อาโคซี", "bua": "บูเรียต", "bug": "บูกิส", "bum": "บูลู", "byn": "บลิน", "byv": "เมดุมบา", "ca": "คาตาลัน", "cad": "คัดโด", "car": "คาริบ", "cay": "คายูกา", "cch": "แอตแซม", "ce": "เชเชน", "ceb": "เซบู", "cgg": "คีกา", "ch": "ชามอร์โร", "chb": "ชิบชา", "chg": "ชะกะไต", "chk": "ชูก", "chm": "มารี", "chn": "ชินุกจาร์กอน", "cho": "ช็อกทอว์", "chp": "ชิพิวยัน", "chr": "เชอโรกี", "chy": "เชเยนเน", "ckb": "เคิร์ดตอนกลาง", "co": "คอร์ซิกา", "cop": "คอปติก", "cps": "กาปิซนอน", "cr": "ครี", "crh": "ตุรกีไครเมีย", "crs": "ครีโอลเซเซลส์ฝรั่งเศส", "cs": "เช็ก", "csb": "คาซูเบียน", "cu": "เชอร์ชสลาวิก", "cv": "ชูวัช", "cy": "เวลส์", "da": "เดนมาร์ก", "dak": "ดาโกทา", "dar": "ดาร์กิน", "dav": "ไททา", "de": "เยอรมัน", "de-AT": "เยอรมัน - ออสเตรีย", "de-CH": "เยอรมันสูง (สวิส)", "del": "เดลาแวร์", "den": "สเลวี", "dgr": "โดกริบ", "din": "ดิงกา", "dje": "ซาร์มา", "doi": "โฑครี", "dsb": "ซอร์เบียตอนล่าง", "dtp": "ดูซุนกลาง", "dua": "ดัวลา", "dum": "ดัตช์กลาง", "dv": "ธิเวหิ", "dyo": "โจลา-ฟอนยี", "dyu": "ดิวลา", "dz": "ซองคา", "dzg": "ดาซากา", "ebu": "เอ็มบู", "ee": "เอเว", "efi": "อีฟิก", "egl": "เอมีเลีย", "egy": "อียิปต์โบราณ", "eka": "อีกาจุก", "el": "กรีก", "elx": "อีลาไมต์", "en": "อังกฤษ", "en-AU": "อังกฤษ - ออสเตรเลีย", "en-CA": "อังกฤษ - แคนาดา", "en-GB": "อังกฤษ - สหราชอาณาจักร", "en-US": "อังกฤษ - อเมริกัน", "enm": "อังกฤษกลาง", "eo": "เอสเปรันโต", "es": "สเปน", "es-419": "สเปน - ละตินอเมริกา", "es-ES": "สเปน - ยุโรป", "es-MX": "สเปน - เม็กซิโก", "esu": "ยูพิกกลาง", "et": "เอสโตเนีย", "eu": "บาสก์", "ewo": "อีวันโด", "ext": "เอกซ์เตรมาดูรา", "fa": "เปอร์เซีย", "fan": "ฟอง", "fat": "ฟันติ", "ff": "ฟูลาห์", "fi": "ฟินแลนด์", "fil": "ฟิลิปปินส์", "fit": "ฟินแลนด์ทอร์เนดาเล็น", "fj": "ฟิจิ", "fo": "แฟโร", "fon": "ฟอน", "fr": "ฝรั่งเศส", "fr-CA": "ฝรั่งเศส - แคนาดา", "fr-CH": "ฝรั่งเศส (สวิส)", "frc": "ฝรั่งเศสกาฌ็อง", "frm": "ฝรั่งเศสกลาง", "fro": "ฝรั่งเศสโบราณ", "frp": "อาร์พิตา", "frr": "ฟริเซียนเหนือ", "frs": "ฟริเซียนตะวันออก", "fur": "ฟรูลี", "fy": "ฟริเซียนตะวันตก", "ga": "ไอริช", "gaa": "กา", "gag": "กากาอุซ", "gan": "จีนกั้น", "gay": "กาโย", "gba": "กบายา", "gbz": "ดารีโซโรอัสเตอร์", "gd": "เกลิกสกอต", "gez": "กีซ", "gil": "กิลเบอร์ต", "gl": "กาลิเซีย", "glk": "กิลากี", "gmh": "เยอรมันสูงกลาง", "gn": "กัวรานี", "goh": "เยอรมันสูงโบราณ", "gom": "กอนกานีของกัว", "gon": "กอนดิ", "gor": "กอรอนทาโล", "got": "โกธิก", "grb": "เกรโบ", "grc": "กรีกโบราณ", "gsw": "เยอรมันสวิส", "gu": "คุชราต", "guc": "วายู", "gur": "ฟราฟรา", "guz": "กุซซี", "gv": "มานซ์", "gwi": "กวิชอิน", "ha": "เฮาซา", "hai": "ไฮดา", "hak": "จีนแคะ", "haw": "ฮาวาย", "he": "ฮิบรู", "hi": "ฮินดี", "hif": "ฮินดีฟิจิ", "hil": "ฮีลีกัยนน", "hit": "ฮิตไตต์", "hmn": "ม้ง", "ho": "ฮีรีโมตู", "hr": "โครเอเชีย", "hsb": "ซอร์เบียตอนบน", "hsn": "จีนเซียง", "ht": "เฮติครีโอล", "hu": "ฮังการี", "hup": "ฮูปา", "hy": "อาร์เมเนีย", "hz": "เฮเรโร", "ia": "อินเตอร์ลิงกัว", "iba": "อิบาน", "ibb": "อิบิบิโอ", "id": "อินโดนีเซีย", "ie": "อินเตอร์ลิงกิว", "ig": "อิกโบ", "ii": "เสฉวนยิ", "ik": "อีนูเปียก", "ilo": "อีโลโก", "inh": "อินกุช", "io": "อีโด", "is": "ไอซ์แลนด์", "it": "อิตาลี", "iu": "อินุกติตุต", "izh": "อินเกรียน", "ja": "ญี่ปุ่น", "jam": "อังกฤษคลีโอลจาเมกา", "jbo": "โลชบัน", "jgo": "อึนกอมบา", "jmc": "มาชาเม", "jpr": "ยิว-เปอร์เซีย", "jrb": "ยิว-อาหรับ", "jut": "จัท", "jv": "ชวา", "ka": "จอร์เจีย", "kaa": "การา-กาลพาก", "kab": "กาไบล", "kac": "กะฉิ่น", "kaj": "คจู", "kam": "คัมบา", "kaw": "กวี", "kbd": "คาร์บาเดีย", "kbl": "คาเนมบู", "kcg": "ทีแยป", "kde": "มาคอนเด", "kea": "คาบูเวอร์เดียนู", "ken": "เกินยาง", "kfo": "โคโร", "kg": "คองโก", "kgp": "เคนก่าง", "kha": "กาสี", "kho": "โคตัน", "khq": "โคย์ราชีนี", "khw": "โควาร์", "ki": "กีกูยู", "kiu": "เคอร์มานิกิ", "kj": "กวนยามา", "kk": "คาซัค", "kkj": "คาโก", "kl": "กรีนแลนด์", "kln": "คาเลนจิน", "km": "เขมร", "kmb": "คิมบุนดู", "kn": "กันนาดา", "ko": "เกาหลี", "koi": "โคมิ-เปียร์เมียค", "kok": "กอนกานี", "kos": "คูสไร", "kpe": "กาแปล", "kr": "คานูรี", "krc": "คาราไช-บัลคาร์", "kri": "คริโอ", "krj": "กินารายอา", "krl": "แกรเลียน", "kru": "กุรุข", "ks": "แคชเมียร์", "ksb": "ชัมบาลา", "ksf": "บาเฟีย", "ksh": "โคโลญ", "ku": "เคิร์ด", "kum": "คูมืยค์", "kut": "คูเทไน", "kv": "โกมิ", "kw": "คอร์นิช", "ky": "คีร์กีซ", "la": "ละติน", "lad": "ลาดิโน", "lag": "แลนจี", "lah": "ลาฮ์นดา", "lam": "แลมบา", "lb": "ลักเซมเบิร์ก", "lez": "เลซเกียน", "lfn": "ลิงกัวฟรังกาโนวา", "lg": "ยูกันดา", "li": "ลิมเบิร์ก", "lij": "ลิกูเรีย", "liv": "ลิโวเนีย", "lkt": "ลาโกตา", "lmo": "ลอมบาร์ด", "ln": "ลิงกาลา", "lo": "ลาว", "lol": "มองโก", "lou": "ภาษาครีโอลุยเซียนา", "loz": "โลซิ", "lrc": "ลูรีเหนือ", "lt": "ลิทัวเนีย", "ltg": "ลัตเกล", "lu": "ลูบา-กาตองกา", "lua": "ลูบา-ลูลัว", "lui": "ลุยเซโน", "lun": "ลันดา", "luo": "ลัว", "lus": "มิโซ", "luy": "ลูเยีย", "lv": "ลัตเวีย", "lzh": "จีนคลาสสิก", "lzz": "แลซ", "mad": "มาดูรา", "maf": "มาฟา", "mag": "มคหี", "mai": "ไมถิลี", "mak": "มากาซาร์", "man": "มันดิงกา", "mas": "มาไซ", "mde": "มาบา", "mdf": "มอคชา", "mdr": "มานดาร์", "men": "เมนเด", "mer": "เมรู", "mfe": "มอริสเยน", "mg": "มาลากาซี", "mga": "ไอริชกลาง", "mgh": "มากัววา-มีทโท", "mgo": "เมตา", "mh": "มาร์แชลลิส", "mi": "เมารี", "mic": "มิกแมก", "min": "มีนังกาเบา", "mk": "มาซิโดเนีย", "ml": "มาลายาลัม", "mn": "มองโกเลีย", "mnc": "แมนจู", "mni": "มณีปุระ", "moh": "โมฮอว์ก", "mos": "โมซี", "mr": "มราฐี", "mrj": "มารีตะวันตก", "ms": "มาเลย์", "mt": "มอลตา", "mua": "มันดัง", "mus": "ครีก", "mwl": "มีรันดา", "mwr": "มารวาฑี", "mwv": "เม็นตาไว", "my": "พม่า", "mye": "มยีน", "myv": "เอียร์ซยา", "mzn": "มาซันดารานี", "na": "นาอูรู", "nan": "จีนมินหนาน", "nap": "นาโปลี", "naq": "นามา", "nb": "นอร์เวย์บุคมอล", "nd": "เอ็นเดเบเลเหนือ", "nds": "เยอรมันต่ำ", "nds-NL": "แซกซอนใต้", "ne": "เนปาล", "new": "เนวาร์", "ng": "ดองกา", "nia": "นีอัส", "niu": "นีวเว", "njo": "อ๋าวนากา", "nl": "ดัตช์", "nl-BE": "เฟลมิช", "nmg": "กวาซิโอ", "nn": "นอร์เวย์นีนอสก์", "nnh": "จีมบูน", "no": "นอร์เวย์", "nog": "โนไก", "non": "นอร์สโบราณ", "nov": "โนเวียล", "nqo": "เอ็นโก", "nr": "เอ็นเดเบเลใต้", "nso": "โซโทเหนือ", "nus": "เนือร์", "nv": "นาวาโฮ", "nwc": "เนวาร์ดั้งเดิม", "ny": "เนียนจา", "nym": "เนียมเวซี", "nyn": "เนียนโกเล", "nyo": "นิโอโร", "nzi": "นซิมา", "oc": "อ็อกซิตัน", "oj": "โอจิบวา", "om": "โอโรโม", "or": "โอดิยา", "os": "ออสเซเตีย", "osa": "โอซากี", "ota": "ตุรกีออตโตมัน", "pa": "ปัญจาบ", "pag": "ปางาซีนัน", "pal": "ปะห์ลาวี", "pam": "ปัมปางา", "pap": "ปาเปียเมนโต", "pau": "ปาเลา", "pcd": "ปิการ์", "pcm": "พิดจิน", "pdc": "เยอรมันเพนซิลเวเนีย", "pdt": "เพลาท์ดิช", "peo": "เปอร์เซียโบราณ", "pfl": "เยอรมันพาลาทิเนต", "phn": "ฟินิเชีย", "pi": "บาลี", "pl": "โปแลนด์", "pms": "พีดมอนต์", "pnt": "พอนติก", "pon": "พอห์นเพ", "prg": "ปรัสเซีย", "pro": "โปรวองซาลโบราณ", "ps": "พัชโต", "pt": "โปรตุเกส", "pt-BR": "โปรตุเกส - บราซิล", "pt-PT": "โปรตุเกส - ยุโรป", "qu": "เคชวา", "quc": "กีเช", "qug": "ควิชัวไฮแลนด์ชิมโบราโซ", "raj": "ราชสถาน", "rap": "ราปานู", "rar": "ราโรทองกา", "rgn": "โรมัณโญ", "rif": "ริฟฟิอัน", "rm": "โรแมนซ์", "rn": "บุรุนดี", "ro": "โรมาเนีย", "ro-MD": "มอลโดวา", "rof": "รอมโบ", "rom": "โรมานี", "root": "รูท", "rtm": "โรทูมัน", "ru": "รัสเซีย", "rue": "รูซิน", "rug": "โรเวียนา", "rup": "อาโรมาเนียน", "rw": "รวันดา", "rwk": "รวา", "sa": "สันสกฤต", "sad": "ซันดาเว", "sah": "ซาคา", "sam": "อราเมอิกซามาเรีย", "saq": "แซมบูรู", "sas": "ซาซัก", "sat": "สันตาลี", "saz": "เสาราษฏร์", "sba": "กัมเบ", "sbp": "แซงกู", "sc": "ซาร์เดญา", "scn": "ซิซิลี", "sco": "สกอตส์", "sd": "สินธิ", "sdc": "ซาร์ดิเนียซาสซารี", "sdh": "เคอร์ดิชใต้", "se": "ซามิเหนือ", "see": "เซนิกา", "seh": "เซนา", "sei": "เซรี", "sel": "เซลคุป", "ses": "โคย์ราโบโรเซนนี", "sg": "ซันโก", "sga": "ไอริชโบราณ", "sgs": "ซาโมจิเตียน", "sh": "เซอร์โบ-โครเอเชีย", "shi": "ทาเชลีห์ท", "shn": "ไทใหญ่", "shu": "อาหรับ-ชาด", "si": "สิงหล", "sid": "ซิดาโม", "sk": "สโลวัก", "sl": "สโลวีเนีย", "sli": "ไซลีเซียตอนล่าง", "sly": "เซลายาร์", "sm": "ซามัว", "sma": "ซามิใต้", "smj": "ซามิลูเล", "smn": "ซามิอีนารี", "sms": "ซามิสคอลต์", "sn": "โชนา", "snk": "โซนีนเก", "so": "โซมาลี", "sog": "ซอกดีน", "sq": "แอลเบเนีย", "sr": "เซอร์เบีย", "srn": "ซูรินาเม", "srr": "เซแรร์", "ss": "สวาติ", "ssy": "ซาโฮ", "st": "โซโทใต้", "stq": "ฟรีเซียนซัทเธอร์แลนด์", "su": "ซุนดา", "suk": "ซูคูมา", "sus": "ซูซู", "sux": "ซูเมอ", "sv": "สวีเดน", "sw": "สวาฮีลี", "sw-CD": "สวาฮีลี - คองโก", "swb": "โคเมอเรียน", "syc": "ซีเรียแบบดั้งเดิม", "syr": "ซีเรีย", "szl": "ไซลีเซีย", "ta": "ทมิฬ", "tcy": "ตูลู", "te": "เตลูกู", "tem": "ทิมเน", "teo": "เตโซ", "ter": "เทเรโน", "tet": "เตตุม", "tg": "ทาจิก", "th": "ไทย", "ti": "ติกริญญา", "tig": "ตีเกร", "tiv": "ทิฟ", "tk": "เติร์กเมน", "tkl": "โตเกเลา", "tkr": "แซคเซอร์", "tl": "ตากาล็อก", "tlh": "คลิงงอน", "tli": "ทลิงกิต", "tly": "ทาลิช", "tmh": "ทามาเชก", "tn": "บอตสวานา", "to": "ตองกา", "tog": "ไนอะซาตองกา", "tpi": "ท็อกพิซิน", "tr": "ตุรกี", "tru": "ตูโรโย", "trv": "ทาโรโก", "ts": "ซิตซองกา", "tsd": "ซาโคเนีย", "tsi": "ซิมชีแอน", "tt": "ตาตาร์", "ttt": "ตัตมุสลิม", "tum": "ทุมบูกา", "tvl": "ตูวาลู", "tw": "ทวิ", "twq": "ตัสซาวัค", "ty": "ตาฮิตี", "tyv": "ตูวา", "tzm": "ทามาไซต์แอตลาสกลาง", "udm": "อุดมูร์ต", "ug": "อุยกูร์", "uga": "ยูการิต", "uk": "ยูเครน", "umb": "อุมบุนดู", "ur": "อูรดู", "uz": "อุซเบก", "vai": "ไว", "ve": "เวนดา", "vec": "เวเนโต้", "vep": "เวปส์", "vi": "เวียดนาม", "vls": "เฟลมิชตะวันตก", "vmf": "เมน-ฟรานโกเนีย", "vo": "โวลาพึค", "vot": "โวทิก", "vro": "โวโร", "vun": "วุนจู", "wa": "วาโลนี", "wae": "วัลเซอร์", "wal": "วาลาโม", "war": "วาเรย์", "was": "วาโช", "wbp": "วอล์เพอร์รี", "wo": "โวลอฟ", "wuu": "จีนอู๋", "xal": "คัลมืยค์", "xh": "คะห์โอซา", "xmf": "เมเกรเลีย", "xog": "โซกา", "yao": "เย้า", "yap": "ยัป", "yav": "แยงเบน", "ybb": "เยมบา", "yi": "ยิดดิช", "yo": "โยรูบา", "yrl": "เหงงกาตุ", "yue": "กวางตุ้ง", "za": "จ้วง", "zap": "ซาโปเตก", "zbl": "บลิสซิมโบลส์", "zea": "เซแลนด์", "zen": "เซนากา", "zgh": "ทามาไซต์โมร็อกโกมาตรฐาน", "zh": "จีน", "zh-Hans": "จีนประยุกต์", "zh-Hant": "จีนดั้งเดิม", "zu": "ซูลู", "zun": "ซูนิ", "zza": "ซาซา"}}, - "tl": {"rtl": false, "languageNames": {}}, - "tr": {"rtl": false, "languageNames": {"aa": "Afar", "ab": "Abhazca", "ace": "Açece", "ach": "Acoli", "ada": "Adangme", "ady": "Adigece", "ae": "Avestçe", "aeb": "Tunus Arapçası", "af": "Afrikaanca", "afh": "Afrihili", "agq": "Aghem", "ain": "Ayni Dili", "ak": "Akan", "akk": "Akad Dili", "akz": "Alabamaca", "ale": "Aleut dili", "aln": "Gheg Arnavutçası", "alt": "Güney Altayca", "am": "Amharca", "an": "Aragonca", "ang": "Eski İngilizce", "anp": "Angika", "ar": "Arapça", "ar-001": "Modern Standart Arapça", "arc": "Aramice", "arn": "Mapuçe dili", "aro": "Araona", "arp": "Arapaho Dili", "arq": "Cezayir Arapçası", "ars": "Necd Arapçası", "arw": "Arawak Dili", "ary": "Fas Arapçası", "arz": "Mısır Arapçası", "as": "Assamca", "asa": "Asu", "ase": "Amerikan İşaret Dili", "ast": "Asturyasça", "av": "Avar Dili", "avk": "Kotava", "awa": "Awadhi", "ay": "Aymara", "az": "Azerice", "az-Arab": "Güney Azerice", "ba": "Başkırtça", "bal": "Beluçça", "ban": "Bali dili", "bar": "Bavyera dili", "bas": "Basa Dili", "bax": "Bamun", "bbc": "Batak Toba", "bbj": "Ghomala", "be": "Belarusça", "bej": "Beja dili", "bem": "Bemba", "bew": "Betawi", "bez": "Bena", "bfd": "Bafut", "bfq": "Badaga", "bg": "Bulgarca", "bgn": "Batı Balochi", "bho": "Arayanice", "bi": "Bislama", "bik": "Bikol", "bin": "Bini", "bjn": "Banjar Dili", "bkm": "Kom", "bla": "Karaayak dili", "bm": "Bambara", "bn": "Bengalce", "bo": "Tibetçe", "bpy": "Bishnupriya", "bqi": "Bahtiyari", "br": "Bretonca", "bra": "Braj", "brh": "Brohice", "brx": "Bodo", "bs": "Boşnakça", "bss": "Akoose", "bua": "Buryatça", "bug": "Bugis", "bum": "Bulu", "byn": "Blin", "byv": "Medumba", "ca": "Katalanca", "cad": "Kado dili", "car": "Carib", "cay": "Kayuga dili", "cch": "Atsam", "ccp": "Chakma", "ce": "Çeçence", "ceb": "Sebuano dili", "cgg": "Kigaca", "ch": "Çamorro dili", "chb": "Çibça dili", "chg": "Çağatayca", "chk": "Chuukese", "chm": "Mari dili", "chn": "Çinuk dili", "cho": "Çoktav dili", "chp": "Çipevya dili", "chr": "Çerokice", "chy": "Şayence", "ckb": "Orta Kürtçe", "co": "Korsikaca", "cop": "Kıptice", "cps": "Capiznon", "cr": "Krice", "crh": "Kırım Türkçesi", "crs": "Seselwa Kreole Fransızcası", "cs": "Çekçe", "csb": "Kashubian", "cu": "Kilise Slavcası", "cv": "Çuvaşça", "cy": "Galce", "da": "Danca", "dak": "Dakotaca", "dar": "Dargince", "dav": "Taita", "de": "Almanca", "de-AT": "Avusturya Almancası", "de-CH": "İsviçre Yüksek Almancası", "del": "Delaware", "den": "Slavey dili", "dgr": "Dogrib", "din": "Dinka dili", "dje": "Zarma", "doi": "Dogri", "dsb": "Aşağı Sorbça", "dtp": "Orta Kadazan", "dua": "Duala", "dum": "Ortaçağ Felemenkçesi", "dv": "Divehi dili", "dyo": "Jola-Fonyi", "dyu": "Dyula", "dz": "Dzongkha", "dzg": "Dazaga", "ebu": "Embu", "ee": "Ewe", "efi": "Efik", "egl": "Emilia Dili", "egy": "Eski Mısır Dili", "eka": "Ekajuk", "el": "Yunanca", "elx": "Elam", "en": "İngilizce", "en-AU": "Avustralya İngilizcesi", "en-CA": "Kanada İngilizcesi", "en-GB": "İngiliz İngilizcesi", "en-US": "Amerikan İngilizcesi", "enm": "Ortaçağ İngilizcesi", "eo": "Esperanto", "es": "İspanyolca", "es-419": "Latin Amerika İspanyolcası", "es-ES": "Avrupa İspanyolcası", "es-MX": "Meksika İspanyolcası", "esu": "Merkezi Yupikçe", "et": "Estonca", "eu": "Baskça", "ewo": "Ewondo", "ext": "Ekstremadura Dili", "fa": "Farsça", "fan": "Fang", "fat": "Fanti", "ff": "Fula dili", "fi": "Fince", "fil": "Filipince", "fit": "Tornedalin Fincesi", "fj": "Fiji dili", "fo": "Faroe dili", "fon": "Fon", "fr": "Fransızca", "fr-CA": "Kanada Fransızcası", "fr-CH": "İsviçre Fransızcası", "frc": "Cajun Fransızcası", "frm": "Ortaçağ Fransızcası", "fro": "Eski Fransızca", "frp": "Arpitanca", "frr": "Kuzey Frizce", "frs": "Doğu Frizcesi", "fur": "Friuli dili", "fy": "Batı Frizcesi", "ga": "İrlandaca", "gaa": "Ga dili", "gag": "Gagavuzca", "gan": "Gan Çincesi", "gay": "Gayo dili", "gba": "Gbaya", "gbz": "Zerdüşt Daricesi", "gd": "İskoç Gaelcesi", "gez": "Geez", "gil": "Kiribatice", "gl": "Galiçyaca", "glk": "Gilanice", "gmh": "Ortaçağ Yüksek Almancası", "gn": "Guarani dili", "goh": "Eski Yüksek Almanca", "gom": "Goa Konkanicesi", "gon": "Gondi dili", "gor": "Gorontalo dili", "got": "Gotça", "grb": "Grebo dili", "grc": "Antik Yunanca", "gsw": "İsviçre Almancası", "gu": "Güceratça", "guc": "Wayuu dili", "gur": "Frafra", "guz": "Gusii", "gv": "Man dili", "gwi": "Guçince", "ha": "Hausa dili", "hai": "Haydaca", "hak": "Hakka Çincesi", "haw": "Hawaii dili", "he": "İbranice", "hi": "Hintçe", "hif": "Fiji Hintçesi", "hil": "Hiligaynon dili", "hit": "Hititçe", "hmn": "Hmong", "ho": "Hiri Motu", "hr": "Hırvatça", "hsb": "Yukarı Sorbça", "hsn": "Xiang Çincesi", "ht": "Haiti Kreyolu", "hu": "Macarca", "hup": "Hupaca", "hy": "Ermenice", "hz": "Herero dili", "ia": "Interlingua", "iba": "Iban", "ibb": "İbibio dili", "id": "Endonezce", "ie": "Interlingue", "ig": "İbo dili", "ii": "Sichuan Yi", "ik": "İnyupikçe", "ilo": "Iloko", "inh": "İnguşça", "io": "Ido", "is": "İzlandaca", "it": "İtalyanca", "iu": "İnuktitut dili", "izh": "İngriya Dili", "ja": "Japonca", "jam": "Jamaika Patois Dili", "jbo": "Lojban", "jgo": "Ngomba", "jmc": "Machame", "jpr": "Yahudi Farsçası", "jrb": "Yahudi Arapçası", "jut": "Yutland Dili", "jv": "Cava Dili", "ka": "Gürcüce", "kaa": "Karakalpakça", "kab": "Kabiliyece", "kac": "Kaçin dili", "kaj": "Jju", "kam": "Kamba", "kaw": "Kawi", "kbd": "Kabardeyce", "kbl": "Kanembu", "kcg": "Tyap", "kde": "Makonde", "kea": "Kabuverdianu", "ken": "Kenyang", "kfo": "Koro", "kg": "Kongo dili", "kgp": "Kaingang", "kha": "Khasi dili", "kho": "Hotanca", "khq": "Koyra Chiini", "khw": "Çitral Dili", "ki": "Kikuyu", "kiu": "Kırmançça", "kj": "Kuanyama", "kk": "Kazakça", "kkj": "Kako", "kl": "Grönland dili", "kln": "Kalenjin", "km": "Khmer dili", "kmb": "Kimbundu", "kn": "Kannada dili", "ko": "Korece", "koi": "Komi-Permyak", "kok": "Konkani dili", "kos": "Kosraean", "kpe": "Kpelle dili", "kr": "Kanuri dili", "krc": "Karaçay-Balkarca", "kri": "Krio", "krj": "Kinaray-a", "krl": "Karelyaca", "kru": "Kurukh dili", "ks": "Keşmir dili", "ksb": "Shambala", "ksf": "Bafia", "ksh": "Köln lehçesi", "ku": "Kürtçe", "kum": "Kumukça", "kut": "Kutenai dili", "kv": "Komi", "kw": "Kernevekçe", "ky": "Kırgızca", "la": "Latince", "lad": "Ladino", "lag": "Langi", "lah": "Lahnda", "lam": "Lamba dili", "lb": "Lüksemburgca", "lez": "Lezgice", "lfn": "Lingua Franca Nova", "lg": "Ganda", "li": "Limburgca", "lij": "Ligurca", "liv": "Livonca", "lkt": "Lakotaca", "lmo": "Lombardça", "ln": "Lingala", "lo": "Lao dili", "lol": "Mongo", "lou": "Louisiana Kreolcesi", "loz": "Lozi", "lrc": "Kuzey Luri", "lt": "Litvanca", "ltg": "Latgalian", "lu": "Luba-Katanga", "lua": "Luba-Lulua", "lui": "Luiseno", "lun": "Lunda", "luo": "Luo", "lus": "Lushai", "luy": "Luyia", "lv": "Letonca", "lzh": "Edebi Çince", "lzz": "Lazca", "mad": "Madura Dili", "maf": "Mafa", "mag": "Magahi", "mai": "Maithili", "mak": "Makasar", "man": "Mandingo", "mas": "Masai", "mde": "Maba", "mdf": "Mokşa dili", "mdr": "Mandar", "men": "Mende dili", "mer": "Meru", "mfe": "Morisyen", "mg": "Malgaşça", "mga": "Ortaçağ İrlandacası", "mgh": "Makhuwa-Meetto", "mgo": "Meta’", "mh": "Marshall Adaları dili", "mi": "Maori dili", "mic": "Micmac", "min": "Minangkabau", "mk": "Makedonca", "ml": "Malayalam dili", "mn": "Moğolca", "mnc": "Mançurya dili", "mni": "Manipuri dili", "moh": "Mohavk dili", "mos": "Mossi", "mr": "Marathi dili", "mrj": "Ova Çirmişçesi", "ms": "Malayca", "mt": "Maltaca", "mua": "Mundang", "mus": "Krikçe", "mwl": "Miranda dili", "mwr": "Marvari", "mwv": "Mentawai", "my": "Birman dili", "mye": "Myene", "myv": "Erzya", "mzn": "Mazenderanca", "na": "Nauru dili", "nan": "Min Nan Çincesi", "nap": "Napolice", "naq": "Nama", "nb": "Norveççe Bokmål", "nd": "Kuzey Ndebele", "nds": "Aşağı Almanca", "nds-NL": "Aşağı Saksonca", "ne": "Nepalce", "new": "Nevari", "ng": "Ndonga", "nia": "Nias", "niu": "Niue dili", "njo": "Ao Naga", "nl": "Felemenkçe", "nl-BE": "Flamanca", "nmg": "Kwasio", "nn": "Norveççe Nynorsk", "nnh": "Ngiemboon", "no": "Norveççe", "nog": "Nogayca", "non": "Eski Nors dili", "nov": "Novial", "nqo": "N’Ko", "nr": "Güney Ndebele", "nso": "Kuzey Sotho dili", "nus": "Nuer", "nv": "Navaho dili", "nwc": "Klasik Nevari", "ny": "Nyanja", "nym": "Nyamvezi", "nyn": "Nyankole", "nyo": "Nyoro", "nzi": "Nzima dili", "oc": "Oksitan dili", "oj": "Ojibva dili", "om": "Oromo dili", "or": "Oriya Dili", "os": "Osetçe", "osa": "Osage", "ota": "Osmanlı Türkçesi", "pa": "Pencapça", "pag": "Pangasinan dili", "pal": "Pehlevi Dili", "pam": "Pampanga", "pap": "Papiamento", "pau": "Palau dili", "pcd": "Picard Dili", "pcm": "Nijerya Pidgin dili", "pdc": "Pensilvanya Almancası", "pdt": "Plautdietsch", "peo": "Eski Farsça", "pfl": "Palatin Almancası", "phn": "Fenike dili", "pi": "Pali", "pl": "Lehçe", "pms": "Piyemontece", "pnt": "Kuzeybatı Kafkasya", "pon": "Pohnpeian", "prg": "Prusyaca", "pro": "Eski Provensal", "ps": "Peştuca", "pt": "Portekizce", "pt-BR": "Brezilya Portekizcesi", "pt-PT": "Avrupa Portekizcesi", "qu": "Keçuva dili", "quc": "Kiçece", "qug": "Chimborazo Highland Quichua", "raj": "Rajasthani", "rap": "Rapanui dili", "rar": "Rarotongan", "rgn": "Romanyolca", "rif": "Rif Berbericesi", "rm": "Romanşça", "rn": "Kirundi", "ro": "Rumence", "ro-MD": "Moldovaca", "rof": "Rombo", "rom": "Romanca", "root": "Köken", "rtm": "Rotuman", "ru": "Rusça", "rue": "Rusince", "rug": "Roviana", "rup": "Ulahça", "rw": "Kinyarwanda", "rwk": "Rwa", "sa": "Sanskrit", "sad": "Sandave", "sah": "Yakutça", "sam": "Samarit Aramcası", "saq": "Samburu", "sas": "Sasak", "sat": "Santali", "saz": "Saurashtra", "sba": "Ngambay", "sbp": "Sangu", "sc": "Sardunya dili", "scn": "Sicilyaca", "sco": "İskoçça", "sd": "Sindhi dili", "sdc": "Sassari Sarduca", "sdh": "Güney Kürtçesi", "se": "Kuzey Laponcası", "see": "Seneca dili", "seh": "Sena", "sei": "Seri", "sel": "Selkup dili", "ses": "Koyraboro Senni", "sg": "Sango", "sga": "Eski İrlandaca", "sgs": "Samogitçe", "sh": "Sırp-Hırvat Dili", "shi": "Taşelhit", "shn": "Shan dili", "shu": "Çad Arapçası", "si": "Sinhali dili", "sid": "Sidamo dili", "sk": "Slovakça", "sl": "Slovence", "sli": "Aşağı Silezyaca", "sly": "Selayar", "sm": "Samoa dili", "sma": "Güney Laponcası", "smj": "Lule Laponcası", "smn": "İnari Laponcası", "sms": "Skolt Laponcası", "sn": "Shona", "snk": "Soninke", "so": "Somalice", "sog": "Sogdiana Dili", "sq": "Arnavutça", "sr": "Sırpça", "srn": "Sranan Tongo", "srr": "Serer dili", "ss": "Sisvati", "ssy": "Saho", "st": "Güney Sotho dili", "stq": "Saterland Frizcesi", "su": "Sunda Dili", "suk": "Sukuma dili", "sus": "Susu", "sux": "Sümerce", "sv": "İsveççe", "sw": "Svahili dili", "sw-CD": "Kongo Svahili", "swb": "Komorca", "syc": "Klasik Süryanice", "syr": "Süryanice", "szl": "Silezyaca", "ta": "Tamilce", "tcy": "Tuluca", "te": "Telugu dili", "tem": "Timne", "teo": "Teso", "ter": "Tereno", "tet": "Tetum", "tg": "Tacikçe", "th": "Tayca", "ti": "Tigrinya dili", "tig": "Tigre", "tiv": "Tiv", "tk": "Türkmence", "tkl": "Tokelau dili", "tkr": "Sahurca", "tl": "Tagalogca", "tlh": "Klingonca", "tli": "Tlingit", "tly": "Talışça", "tmh": "Tamaşek", "tn": "Setsvana", "to": "Tonga dili", "tog": "Nyasa Tonga", "tpi": "Tok Pisin", "tr": "Türkçe", "tru": "Turoyo", "trv": "Taroko", "ts": "Tsonga", "tsd": "Tsakonca", "tsi": "Tsimshian", "tt": "Tatarca", "ttt": "Tatça", "tum": "Tumbuka", "tvl": "Tuvalyanca", "tw": "Tvi", "twq": "Tasawaq", "ty": "Tahiti dili", "tyv": "Tuvaca", "tzm": "Orta Atlas Tamazigti", "udm": "Udmurtça", "ug": "Uygurca", "uga": "Ugarit dili", "uk": "Ukraynaca", "umb": "Umbundu", "ur": "Urduca", "uz": "Özbekçe", "vai": "Vai", "ve": "Venda dili", "vec": "Venedikçe", "vep": "Veps dili", "vi": "Vietnamca", "vls": "Batı Flamanca", "vmf": "Main Frankonya Dili", "vo": "Volapük", "vot": "Votça", "vro": "Võro", "vun": "Vunjo", "wa": "Valonca", "wae": "Walser", "wal": "Valamo", "war": "Varay", "was": "Vaşo", "wbp": "Warlpiri", "wo": "Volofça", "wuu": "Wu Çincesi", "xal": "Kalmıkça", "xh": "Zosa dili", "xmf": "Megrelce", "xog": "Soga", "yao": "Yao", "yap": "Yapça", "yav": "Yangben", "ybb": "Yemba", "yi": "Yidiş", "yo": "Yorubaca", "yrl": "Nheengatu", "yue": "Kantonca", "za": "Zhuangca", "zap": "Zapotek dili", "zbl": "Blis Sembolleri", "zea": "Zelandaca", "zen": "Zenaga dili", "zgh": "Standart Fas Tamazigti", "zh": "Çince", "zh-Hans": "Basitleştirilmiş Çince", "zh-Hant": "Geleneksel Çince", "zu": "Zuluca", "zun": "Zunice", "zza": "Zazaca"}}, - "uk": {"rtl": false, "languageNames": {"aa": "афарська", "ab": "абхазька", "ace": "ачехська", "ach": "ачолі", "ada": "адангме", "ady": "адигейська", "ae": "авестійська", "af": "африкаанс", "afh": "африхілі", "agq": "агем", "ain": "айнська", "ak": "акан", "akk": "аккадська", "akz": "алабама", "ale": "алеутська", "alt": "південноалтайська", "am": "амхарська", "an": "арагонська", "ang": "давньоанглійська", "anp": "ангіка", "ar": "арабська", "ar-001": "сучасна стандартна арабська", "arc": "арамейська", "arn": "арауканська", "aro": "араона", "arp": "арапахо", "arq": "алжирська арабська", "ars": "надждійська арабська", "arw": "аравакська", "as": "асамська", "asa": "асу", "ase": "американська мова рухів", "ast": "астурська", "av": "аварська", "awa": "авадхі", "ay": "аймара", "az": "азербайджанська", "az-Arab": "південноазербайджанська", "ba": "башкирська", "bal": "балучі", "ban": "балійська", "bar": "баеріш", "bas": "баса", "bax": "бамум", "bbc": "батак тоба", "bbj": "гомала", "be": "білоруська", "bej": "беджа", "bem": "бемба", "bew": "бетаві", "bez": "бена", "bfd": "бафут", "bfq": "бадага", "bg": "болгарська", "bgn": "східнобелуджійська", "bho": "бходжпурі", "bi": "біслама", "bik": "бікольська", "bin": "біні", "bjn": "банджарська", "bkm": "ком", "bla": "сіксіка", "bm": "бамбара", "bn": "банґла", "bo": "тибетська", "bqi": "бахтіарі", "br": "бретонська", "bra": "брадж", "brx": "бодо", "bs": "боснійська", "bss": "акус", "bua": "бурятська", "bug": "бугійська", "bum": "булу", "byn": "блін", "byv": "медумба", "ca": "каталонська", "cad": "каддо", "car": "карібська", "cay": "кайюга", "cch": "атсам", "ccp": "чакма", "ce": "чеченська", "ceb": "себуанська", "cgg": "кіга", "ch": "чаморро", "chb": "чібча", "chg": "чагатайська", "chk": "чуукська", "chm": "марійська", "chn": "чинук жаргон", "cho": "чокто", "chp": "чіпевʼян", "chr": "черокі", "chy": "чейєнн", "ckb": "центральнокурдська", "co": "корсиканська", "cop": "коптська", "cr": "крі", "crh": "кримськотатарська", "crs": "сейшельська креольська", "cs": "чеська", "csb": "кашубська", "cu": "церковнословʼянська", "cv": "чуваська", "cy": "валлійська", "da": "данська", "dak": "дакота", "dar": "даргінська", "dav": "таіта", "de": "німецька", "de-AT": "австрійська німецька", "de-CH": "верхньонімецька (Швейцарія)", "del": "делаварська", "den": "слейв", "dgr": "догрибська", "din": "дінка", "dje": "джерма", "doi": "догрі", "dsb": "нижньолужицька", "dua": "дуала", "dum": "середньонідерландська", "dv": "дівехі", "dyo": "дьола-фоні", "dyu": "діула", "dz": "дзонг-ке", "dzg": "дазага", "ebu": "ембу", "ee": "еве", "efi": "ефік", "egy": "давньоєгипетська", "eka": "екаджук", "el": "грецька", "elx": "еламська", "en": "англійська", "en-AU": "австралійська англійська", "en-CA": "канадська англійська", "en-GB": "британська англійська", "en-US": "англійська (США)", "enm": "середньоанглійська", "eo": "есперанто", "es": "іспанська", "es-419": "латиноамериканська іспанська", "es-ES": "іспанська (Європа)", "es-MX": "мексиканська іспанська", "et": "естонська", "eu": "баскська", "ewo": "евондо", "fa": "перська", "fan": "фанг", "fat": "фанті", "ff": "фула", "fi": "фінська", "fil": "філіппінська", "fj": "фіджі", "fo": "фарерська", "fon": "фон", "fr": "французька", "fr-CA": "канадська французька", "fr-CH": "швейцарська французька", "frc": "кажунська французька", "frm": "середньофранцузька", "fro": "давньофранцузька", "frp": "арпітанська", "frr": "фризька північна", "frs": "фризька східна", "fur": "фріульська", "fy": "західнофризька", "ga": "ірландська", "gaa": "га", "gag": "гагаузька", "gan": "ґань", "gay": "гайо", "gba": "гбайя", "gd": "гаельська", "gez": "гєез", "gil": "гільбертська", "gl": "галісійська", "gmh": "середньоверхньонімецька", "gn": "гуарані", "goh": "давньоверхньонімецька", "gon": "гонді", "gor": "горонтало", "got": "готська", "grb": "гребо", "grc": "давньогрецька", "gsw": "німецька (Швейцарія)", "gu": "гуджараті", "guz": "гусії", "gv": "менкська", "gwi": "кучін", "ha": "хауса", "hai": "хайда", "hak": "хаккаська", "haw": "гавайська", "he": "іврит", "hi": "гінді", "hil": "хілігайнон", "hit": "хітіті", "hmn": "хмонг", "ho": "хірі-моту", "hr": "хорватська", "hsb": "верхньолужицька", "hsn": "сянська китайська", "ht": "гаїтянська", "hu": "угорська", "hup": "хупа", "hy": "вірменська", "hz": "гереро", "ia": "інтерлінгва", "iba": "ібанська", "ibb": "ібібіо", "id": "індонезійська", "ie": "інтерлінгве", "ig": "ігбо", "ii": "сичуань", "ik": "інупіак", "ilo": "ілоканська", "inh": "інгуська", "io": "ідо", "is": "ісландська", "it": "італійська", "iu": "інуктітут", "ja": "японська", "jbo": "ложбан", "jgo": "нгомба", "jmc": "мачаме", "jpr": "юдео-перська", "jrb": "юдео-арабська", "jv": "яванська", "ka": "грузинська", "kaa": "каракалпацька", "kab": "кабільська", "kac": "качін", "kaj": "йю", "kam": "камба", "kaw": "каві", "kbd": "кабардинська", "kbl": "канембу", "kcg": "тіап", "kde": "маконде", "kea": "кабувердіану", "kfo": "коро", "kg": "конґолезька", "kha": "кхасі", "kho": "хотаносакська", "khq": "койра чіїні", "ki": "кікуйю", "kj": "кунама", "kk": "казахська", "kkj": "како", "kl": "калааллісут", "kln": "календжин", "km": "кхмерська", "kmb": "кімбунду", "kn": "каннада", "ko": "корейська", "koi": "комі-перм’яцька", "kok": "конкані", "kos": "косрае", "kpe": "кпеллє", "kr": "канурі", "krc": "карачаєво-балкарська", "krl": "карельська", "kru": "курукх", "ks": "кашмірська", "ksb": "шамбала", "ksf": "бафіа", "ksh": "колоніан", "ku": "курдська", "kum": "кумицька", "kut": "кутенаї", "kv": "комі", "kw": "корнійська", "ky": "киргизька", "la": "латинська", "lad": "ладіно", "lag": "лангі", "lah": "ланда", "lam": "ламба", "lb": "люксембурзька", "lez": "лезгінська", "lg": "ганда", "li": "лімбургійська", "lkt": "лакота", "ln": "лінгала", "lo": "лаоська", "lol": "монго", "lou": "луїзіанська креольська", "loz": "лозі", "lrc": "північнолурська", "lt": "литовська", "lu": "луба-катанга", "lua": "луба-лулуа", "lui": "луїсеньо", "lun": "лунда", "luo": "луо", "lus": "мізо", "luy": "луйя", "lv": "латвійська", "mad": "мадурська", "maf": "мафа", "mag": "магадхі", "mai": "майтхілі", "mak": "макасарська", "man": "мандінго", "mas": "масаї", "mde": "маба", "mdf": "мокша", "mdr": "мандарська", "men": "менде", "mer": "меру", "mfe": "маврикійська креольська", "mg": "малагасійська", "mga": "середньоірландська", "mgh": "макува-меето", "mgo": "мета", "mh": "маршалльська", "mi": "маорі", "mic": "мікмак", "min": "мінангкабау", "mk": "македонська", "ml": "малаялам", "mn": "монгольська", "mnc": "манчжурська", "mni": "маніпурі", "moh": "магавк", "mos": "моссі", "mr": "маратхі", "ms": "малайська", "mt": "мальтійська", "mua": "мунданг", "mus": "крік", "mwl": "мірандська", "mwr": "марварі", "my": "бірманська", "mye": "миін", "myv": "ерзя", "mzn": "мазандеранська", "na": "науру", "nan": "південноміньська", "nap": "неаполітанська", "naq": "нама", "nb": "норвезька (букмол)", "nd": "північна ндебеле", "nds": "нижньонімецька", "nds-NL": "нижньосаксонська", "ne": "непальська", "new": "неварі", "ng": "ндонга", "nia": "ніаська", "niu": "ніуе", "njo": "ао нага", "nl": "нідерландська", "nl-BE": "фламандська", "nmg": "квазіо", "nn": "норвезька (нюношк)", "nnh": "нгємбун", "no": "норвезька", "nog": "ногайська", "non": "давньонорвезька", "nqo": "нко", "nr": "ндебелє південна", "nso": "північна сото", "nus": "нуер", "nv": "навахо", "nwc": "неварі класична", "ny": "ньянджа", "nym": "ньямвезі", "nyn": "ньянколе", "nyo": "ньоро", "nzi": "нзіма", "oc": "окситанська", "oj": "оджібва", "om": "оромо", "or": "одія", "os": "осетинська", "osa": "осейдж", "ota": "османська", "pa": "панджабі", "pag": "пангасінанська", "pal": "пехлеві", "pam": "пампанга", "pap": "папʼяменто", "pau": "палауанська", "pcm": "нігерійсько-креольська", "peo": "давньоперська", "phn": "фінікійсько-пунічна", "pi": "палі", "pl": "польська", "pon": "понапе", "prg": "пруська", "pro": "давньопровансальська", "ps": "пушту", "pt": "портуґальська", "pt-BR": "португальська (Бразилія)", "pt-PT": "європейська портуґальська", "qu": "кечуа", "quc": "кіче", "raj": "раджастхані", "rap": "рапануї", "rar": "раротонга", "rm": "ретороманська", "rn": "рунді", "ro": "румунська", "ro-MD": "молдавська", "rof": "ромбо", "rom": "циганська", "root": "коренева", "ru": "російська", "rup": "арумунська", "rw": "кіньяруанда", "rwk": "рва", "sa": "санскрит", "sad": "сандаве", "sah": "якутська", "sam": "самаритянська арамейська", "saq": "самбуру", "sas": "сасакська", "sat": "сантальська", "sba": "нгамбай", "sbp": "сангу", "sc": "сардинська", "scn": "сицилійська", "sco": "шотландська", "sd": "сіндхі", "sdh": "південнокурдська", "se": "північносаамська", "see": "сенека", "seh": "сена", "sel": "селькупська", "ses": "койраборо сені", "sg": "санго", "sga": "давньоірландська", "sh": "сербсько-хорватська", "shi": "тачеліт", "shn": "шанська", "shu": "чадійська арабська", "si": "сингальська", "sid": "сідамо", "sk": "словацька", "sl": "словенська", "sm": "самоанська", "sma": "південносаамська", "smj": "саамська луле", "smn": "саамська інарі", "sms": "скольт-саамська", "sn": "шона", "snk": "сонінке", "so": "сомалі", "sog": "согдійська", "sq": "албанська", "sr": "сербська", "srn": "сранан тонго", "srr": "серер", "ss": "сісваті", "ssy": "сахо", "st": "сото південна", "su": "сунданська", "suk": "сукума", "sus": "сусу", "sux": "шумерська", "sv": "шведська", "sw": "суахілі", "sw-CD": "суахілі (Конго)", "swb": "коморська", "syc": "сирійська класична", "syr": "сирійська", "ta": "тамільська", "te": "телугу", "tem": "темне", "teo": "тесо", "ter": "терено", "tet": "тетум", "tg": "таджицька", "th": "тайська", "ti": "тигринья", "tig": "тигре", "tiv": "тів", "tk": "туркменська", "tkl": "токелау", "tl": "тагальська", "tlh": "клінгонська", "tli": "тлінгіт", "tmh": "тамашек", "tn": "тсвана", "to": "тонґанська", "tog": "ньяса тонга", "tpi": "ток-пісін", "tr": "турецька", "trv": "тароко", "ts": "тсонга", "tsi": "цимшиан", "tt": "татарська", "tum": "тумбука", "tvl": "тувалу", "tw": "тві", "twq": "тасавак", "ty": "таїтянська", "tyv": "тувинська", "tzm": "центральноатласька тамазігт", "udm": "удмуртська", "ug": "уйгурська", "uga": "угаритська", "uk": "українська", "umb": "умбунду", "ur": "урду", "uz": "узбецька", "vai": "ваї", "ve": "венда", "vi": "вʼєтнамська", "vo": "волапʼюк", "vot": "водська", "vun": "вуньо", "wa": "валлонська", "wae": "валзерська", "wal": "волайтта", "war": "варай", "was": "вашо", "wbp": "валпірі", "wo": "волоф", "wuu": "уська китайська", "xal": "калмицька", "xh": "кхоса", "xog": "сога", "yao": "яо", "yap": "яп", "yav": "янгбен", "ybb": "ємба", "yi": "їдиш", "yo": "йоруба", "yue": "кантонська", "za": "чжуан", "zap": "сапотекська", "zbl": "блісса мова", "zen": "зенага", "zgh": "стандартна марокканська берберська", "zh": "китайська", "zh-Hans": "китайська (спрощене письмо)", "zh-Hant": "китайська (традиційне письмо)", "zu": "зулуська", "zun": "зуньї", "zza": "зазакі"}}, - "ur": {"rtl": true, "languageNames": {"aa": "افار", "ab": "ابقازیان", "ace": "اچائینیز", "ach": "اکولی", "ada": "ادانگمے", "ady": "ادیگھے", "af": "افریقی", "agq": "اغم", "ain": "اینو", "ak": "اکان", "ale": "الیوت", "alt": "جنوبی الٹائی", "am": "امہاری", "an": "اراگونیز", "anp": "انگیکا", "ar": "عربی", "ar-001": "ماڈرن اسٹینڈرڈ عربی", "arn": "ماپوچے", "arp": "اراپاہو", "as": "آسامی", "asa": "آسو", "ast": "اسٹوریائی", "av": "اواری", "awa": "اوادھی", "ay": "ایمارا", "az": "آذربائیجانی", "az-Arab": "آزربائیجانی (عربی)", "ba": "باشکیر", "ban": "بالینیز", "bas": "باسا", "be": "بیلاروسی", "bem": "بیمبا", "bez": "بینا", "bg": "بلغاری", "bgn": "مغربی بلوچی", "bho": "بھوجپوری", "bi": "بسلاما", "bin": "بینی", "bla": "سکسیکا", "bm": "بمبارا", "bn": "بنگالی", "bo": "تبتی", "br": "بریٹن", "brx": "بوڈو", "bs": "بوسنیائی", "bug": "بگینیز", "byn": "بلین", "ca": "کیٹالان", "ccp": "چکمہ", "ce": "چیچن", "ceb": "سیبوآنو", "cgg": "چیگا", "ch": "چیمارو", "chk": "چوکیز", "chm": "ماری", "cho": "چاکٹاؤ", "chr": "چیروکی", "chy": "چینّے", "ckb": "سینٹرل کردش", "co": "کوراسیکن", "crs": "سیسلوا کریولے فرانسیسی", "cs": "چیک", "cu": "چرچ سلاوک", "cv": "چوواش", "cy": "ویلش", "da": "ڈینش", "dak": "ڈاکوٹا", "dar": "درگوا", "dav": "تائتا", "de": "جرمن", "de-AT": "آسٹریائی جرمن", "de-CH": "سوئس ہائی جرمن", "dgr": "دوگریب", "dje": "زرما", "dsb": "ذیلی سربیائی", "dua": "دوالا", "dv": "ڈیویہی", "dyo": "جولا فونيا", "dz": "ژونگکھا", "dzg": "دزاگا", "ebu": "امبو", "ee": "ایو", "efi": "ایفِک", "eka": "ایکاجوی", "el": "یونانی", "en": "انگریزی", "en-AU": "آسٹریلیائی انگریزی", "en-CA": "کینیڈین انگریزی", "en-GB": "برطانوی انگریزی", "en-US": "امریکی انگریزی", "eo": "ایسپرانٹو", "es": "ہسپانوی", "es-419": "لاطینی امریکی ہسپانوی", "es-ES": "یورپی ہسپانوی", "es-MX": "میکسیکن ہسپانوی", "et": "اسٹونین", "eu": "باسکی", "ewo": "ایوانڈو", "fa": "فارسی", "ff": "فولہ", "fi": "فینیش", "fil": "فلیپینو", "fj": "فجی", "fo": "فیروئیز", "fon": "فون", "fr": "فرانسیسی", "fr-CA": "کینیڈین فرانسیسی", "fr-CH": "سوئس فرینچ", "frc": "کاجن فرانسیسی", "fur": "فریولیائی", "fy": "مغربی فریسیئن", "ga": "آئیرِش", "gaa": "گا", "gag": "غاغاوز", "gd": "سکاٹش گیلک", "gez": "گیز", "gil": "گلبرتیز", "gl": "گالیشیائی", "gn": "گُارانی", "gor": "گورانٹالو", "gsw": "سوئس جرمن", "gu": "گجراتی", "guz": "گسی", "gv": "مینکس", "gwi": "گوئچ ان", "ha": "ہؤسا", "haw": "ہوائی", "he": "عبرانی", "hi": "ہندی", "hil": "ہالیگینون", "hmn": "ہمانگ", "hr": "کراتی", "hsb": "اپر سربیائی", "ht": "ہیتی", "hu": "ہنگیرین", "hup": "ہیوپا", "hy": "آرمینیائی", "hz": "ہریرو", "ia": "بین لسانیات", "iba": "ایبان", "ibb": "ابی بیو", "id": "انڈونیثیائی", "ig": "اِگبو", "ii": "سچوان ای", "ilo": "ایلوکو", "inh": "انگوش", "io": "ایڈو", "is": "آئس لینڈک", "it": "اطالوی", "iu": "اینُکٹیٹٹ", "ja": "جاپانی", "jbo": "لوجبان", "jgo": "نگومبا", "jmc": "ماشیم", "jv": "جاوی", "ka": "جارجیائی", "kab": "قبائلی", "kac": "کاچن", "kaj": "جے جو", "kam": "کامبا", "kbd": "کبارڈین", "kcg": "تیاپ", "kde": "ماکونده", "kea": "کابويرديانو", "kfo": "کورو", "kg": "کانگو", "kha": "کھاسی", "khq": "کويرا شيني", "ki": "کیکویو", "kj": "کونیاما", "kk": "قزاخ", "kkj": "کاکو", "kl": "کالاليست", "kln": "کالينجين", "km": "خمیر", "kmb": "کیمبونڈو", "kn": "کنّاڈا", "ko": "کوریائی", "koi": "کومی پرمیاک", "kok": "کونکنی", "kpe": "کیپیلّے", "kr": "کنوری", "krc": "کراچے بالکر", "krl": "کیرلین", "kru": "کوروکھ", "ks": "کشمیری", "ksb": "شامبالا", "ksf": "بافيا", "ksh": "کولوگنیائی", "ku": "کردش", "kum": "کومیک", "kv": "کومی", "kw": "کورنش", "ky": "کرغیزی", "la": "لاطینی", "lad": "لیڈینو", "lag": "لانگی", "lb": "لکسمبرگیش", "lez": "لیزگیان", "lg": "گینڈا", "li": "لیمبرگش", "lkt": "لاکوٹا", "ln": "لِنگَلا", "lo": "لاؤ", "lou": "لوزیانا کریول", "loz": "لوزی", "lrc": "شمالی لری", "lt": "لیتھوینین", "lu": "لبا-کاتانجا", "lua": "لیوبا لولوآ", "lun": "لونڈا", "luo": "لو", "lus": "میزو", "luy": "لویا", "lv": "لیٹوین", "mad": "مدورسی", "mag": "مگاہی", "mai": "میتھیلی", "mak": "مکاسر", "mas": "مسائی", "mdf": "موکشا", "men": "میندے", "mer": "میرو", "mfe": "موریسیین", "mg": "ملاگاسی", "mgh": "ماخاوا-ميتو", "mgo": "میٹا", "mh": "مارشلیز", "mi": "ماؤری", "mic": "مکمیک", "min": "منانگکباؤ", "mk": "مقدونیائی", "ml": "مالایالم", "mn": "منگولین", "mni": "منی پوری", "moh": "موہاک", "mos": "موسی", "mr": "مراٹهی", "ms": "مالے", "mt": "مالٹی", "mua": "منڈانگ", "mus": "کریک", "mwl": "میرانڈیز", "my": "برمی", "myv": "ارزیا", "mzn": "مزندرانی", "na": "ناؤرو", "nap": "نیاپولیٹن", "naq": "ناما", "nb": "نارویجین بوکمل", "nd": "شمالی دبیل", "nds": "ادنی جرمن", "nds-NL": "ادنی سیکسن", "ne": "نیپالی", "new": "نیواری", "ng": "نڈونگا", "nia": "نیاس", "niu": "نیویائی", "nl": "ڈچ", "nl-BE": "فلیمِش", "nmg": "کوايسو", "nn": "نارویجین نینورسک", "nnh": "نگیمبون", "no": "نارویجین", "nog": "نوگائی", "nqo": "اینکو", "nr": "جنوبی نڈیبیلی", "nso": "شمالی سوتھو", "nus": "نویر", "nv": "نواجو", "ny": "نیانجا", "nyn": "نینکول", "oc": "آکسیٹان", "om": "اورومو", "or": "اڑیہ", "os": "اوسیٹک", "pa": "پنجابی", "pag": "پنگاسنان", "pam": "پامپنگا", "pap": "پاپیامینٹو", "pau": "پالاون", "pcm": "نائجیریائی پڈگن", "pl": "پولش", "prg": "پارسی", "ps": "پشتو", "pt": "پُرتگالی", "pt-BR": "برازیلی پرتگالی", "pt-PT": "یورپی پرتگالی", "qu": "کویچوآ", "quc": "کيشی", "rap": "رپانوی", "rar": "راروتونگان", "rm": "رومانش", "rn": "رونڈی", "ro": "رومینین", "ro-MD": "مالدووا", "rof": "رومبو", "root": "روٹ", "ru": "روسی", "rup": "ارومانی", "rw": "کینیاروانڈا", "rwk": "روا", "sa": "سنسکرت", "sad": "سنڈاوے", "sah": "ساکھا", "saq": "سامبورو", "sat": "سنتالی", "sba": "نگامبے", "sbp": "سانگو", "sc": "سردینین", "scn": "سیسیلین", "sco": "سکاٹ", "sd": "سندھی", "sdh": "جنوبی کرد", "se": "شمالی سامی", "seh": "سینا", "ses": "کويرابورو سينی", "sg": "ساںغو", "sh": "سربو-کروئیشین", "shi": "تشلحيت", "shn": "شان", "si": "سنہالا", "sk": "سلوواک", "sl": "سلووینیائی", "sm": "ساموآن", "sma": "جنوبی سامی", "smj": "لول سامی", "smn": "اناری سامی", "sms": "سکولٹ سامی", "sn": "شونا", "snk": "سوننکے", "so": "صومالی", "sq": "البانی", "sr": "سربین", "srn": "سرانن ٹونگو", "ss": "سواتی", "ssy": "ساہو", "st": "جنوبی سوتھو", "su": "سنڈانیز", "suk": "سکوما", "sv": "سویڈش", "sw": "سواحلی", "sw-CD": "کانگو سواحلی", "swb": "کوموریائی", "syr": "سریانی", "ta": "تمل", "te": "تیلگو", "tem": "ٹمنے", "teo": "تیسو", "tet": "ٹیٹم", "tg": "تاجک", "th": "تھائی", "ti": "ٹگرینیا", "tig": "ٹگرے", "tk": "ترکمان", "tl": "ٹیگا لوگ", "tlh": "کلنگن", "tn": "سوانا", "to": "ٹونگن", "tpi": "ٹوک پِسِن", "tr": "ترکی", "trv": "ٹوروکو", "ts": "زونگا", "tt": "تاتار", "tum": "ٹمبوکا", "tvl": "تووالو", "tw": "توی", "twq": "تاساواق", "ty": "تاہیتی", "tyv": "تووینین", "tzm": "سینٹرل ایٹلس ٹمازائٹ", "udm": "ادمورت", "ug": "یوئگہر", "uk": "یوکرینیائی", "umb": "اومبوندو", "ur": "اردو", "uz": "ازبیک", "vai": "وائی", "ve": "وینڈا", "vi": "ویتنامی", "vo": "وولاپوک", "vun": "ونجو", "wa": "والون", "wae": "والسر", "wal": "وولایتا", "war": "وارے", "wbp": "وارلپیری", "wo": "وولوف", "xal": "کالمیک", "xh": "ژوسا", "xog": "سوگا", "yav": "یانگبین", "ybb": "یمبا", "yi": "یدش", "yo": "یوروبا", "yue": "کینٹونیز", "zgh": "اسٹینڈرڈ مراقشی تمازیقی", "zh": "چینی", "zh-Hans": "چینی (آسان کردہ)", "zh-Hant": "روایتی چینی", "zu": "زولو", "zun": "زونی", "zza": "زازا"}}, - "vi": {"rtl": false, "languageNames": {"aa": "Tiếng Afar", "ab": "Tiếng Abkhazia", "ace": "Tiếng Achinese", "ach": "Tiếng Acoli", "ada": "Tiếng Adangme", "ady": "Tiếng Adyghe", "ae": "Tiếng Avestan", "af": "Tiếng Afrikaans", "afh": "Tiếng Afrihili", "agq": "Tiếng Aghem", "ain": "Tiếng Ainu", "ak": "Tiếng Akan", "akk": "Tiếng Akkadia", "akz": "Tiếng Alabama", "ale": "Tiếng Aleut", "aln": "Tiếng Gheg Albani", "alt": "Tiếng Altai Miền Nam", "am": "Tiếng Amharic", "an": "Tiếng Aragon", "ang": "Tiếng Anh cổ", "anp": "Tiếng Angika", "ar": "Tiếng Ả Rập", "ar-001": "Tiếng Ả Rập Hiện đại", "arc": "Tiếng Aramaic", "arn": "Tiếng Mapuche", "aro": "Tiếng Araona", "arp": "Tiếng Arapaho", "arq": "Tiếng Ả Rập Algeria", "ars": "Tiếng Ả Rập Najdi", "arw": "Tiếng Arawak", "arz": "Tiếng Ả Rập Ai Cập", "as": "Tiếng Assam", "asa": "Tiếng Asu", "ase": "Ngôn ngữ Ký hiệu Mỹ", "ast": "Tiếng Asturias", "av": "Tiếng Avaric", "awa": "Tiếng Awadhi", "ay": "Tiếng Aymara", "az": "Tiếng Azerbaijan", "ba": "Tiếng Bashkir", "bal": "Tiếng Baluchi", "ban": "Tiếng Bali", "bar": "Tiếng Bavaria", "bas": "Tiếng Basaa", "bax": "Tiếng Bamun", "bbc": "Tiếng Batak Toba", "bbj": "Tiếng Ghomala", "be": "Tiếng Belarus", "bej": "Tiếng Beja", "bem": "Tiếng Bemba", "bew": "Tiếng Betawi", "bez": "Tiếng Bena", "bfd": "Tiếng Bafut", "bfq": "Tiếng Badaga", "bg": "Tiếng Bulgaria", "bgn": "Tiếng Tây Balochi", "bho": "Tiếng Bhojpuri", "bi": "Tiếng Bislama", "bik": "Tiếng Bikol", "bin": "Tiếng Bini", "bjn": "Tiếng Banjar", "bkm": "Tiếng Kom", "bla": "Tiếng Siksika", "bm": "Tiếng Bambara", "bn": "Tiếng Bangla", "bo": "Tiếng Tây Tạng", "bpy": "Tiếng Bishnupriya", "bqi": "Tiếng Bakhtiari", "br": "Tiếng Breton", "bra": "Tiếng Braj", "brh": "Tiếng Brahui", "brx": "Tiếng Bodo", "bs": "Tiếng Bosnia", "bss": "Tiếng Akoose", "bua": "Tiếng Buriat", "bug": "Tiếng Bugin", "bum": "Tiếng Bulu", "byn": "Tiếng Blin", "byv": "Tiếng Medumba", "ca": "Tiếng Catalan", "cad": "Tiếng Caddo", "car": "Tiếng Carib", "cay": "Tiếng Cayuga", "cch": "Tiếng Atsam", "ccp": "Tiếng Chakma", "ce": "Tiếng Chechen", "ceb": "Tiếng Cebuano", "cgg": "Tiếng Chiga", "ch": "Tiếng Chamorro", "chb": "Tiếng Chibcha", "chg": "Tiếng Chagatai", "chk": "Tiếng Chuuk", "chm": "Tiếng Mari", "chn": "Biệt ngữ Chinook", "cho": "Tiếng Choctaw", "chp": "Tiếng Chipewyan", "chr": "Tiếng Cherokee", "chy": "Tiếng Cheyenne", "ckb": "Tiếng Kurd Miền Trung", "co": "Tiếng Corsica", "cop": "Tiếng Coptic", "cps": "Tiếng Capiznon", "cr": "Tiếng Cree", "crh": "Tiếng Thổ Nhĩ Kỳ Crimean", "crs": "Tiếng Pháp Seselwa Creole", "cs": "Tiếng Séc", "csb": "Tiếng Kashubia", "cu": "Tiếng Slavơ Nhà thờ", "cv": "Tiếng Chuvash", "cy": "Tiếng Wales", "da": "Tiếng Đan Mạch", "dak": "Tiếng Dakota", "dar": "Tiếng Dargwa", "dav": "Tiếng Taita", "de": "Tiếng Đức", "de-AT": "Tiếng Đức (Áo)", "de-CH": "Tiếng Thượng Giéc-man (Thụy Sĩ)", "del": "Tiếng Delaware", "den": "Tiếng Slave", "dgr": "Tiếng Dogrib", "din": "Tiếng Dinka", "dje": "Tiếng Zarma", "doi": "Tiếng Dogri", "dsb": "Tiếng Hạ Sorbia", "dtp": "Tiếng Dusun Miền Trung", "dua": "Tiếng Duala", "dum": "Tiếng Hà Lan Trung cổ", "dv": "Tiếng Divehi", "dyo": "Tiếng Jola-Fonyi", "dyu": "Tiếng Dyula", "dz": "Tiếng Dzongkha", "dzg": "Tiếng Dazaga", "ebu": "Tiếng Embu", "ee": "Tiếng Ewe", "efi": "Tiếng Efik", "egl": "Tiếng Emilia", "egy": "Tiếng Ai Cập cổ", "eka": "Tiếng Ekajuk", "el": "Tiếng Hy Lạp", "elx": "Tiếng Elamite", "en": "Tiếng Anh", "en-AU": "Tiếng Anh (Australia)", "en-CA": "Tiếng Anh (Canada)", "en-GB": "Tiếng Anh (Anh)", "en-US": "Tiếng Anh (Mỹ)", "enm": "Tiếng Anh Trung cổ", "eo": "Tiếng Quốc Tế Ngữ", "es": "Tiếng Tây Ban Nha", "es-419": "Tiếng Tây Ban Nha (Mỹ La tinh)", "es-ES": "Tiếng Tây Ban Nha (Châu Âu)", "es-MX": "Tiếng Tây Ban Nha (Mexico)", "esu": "Tiếng Yupik Miền Trung", "et": "Tiếng Estonia", "eu": "Tiếng Basque", "ewo": "Tiếng Ewondo", "ext": "Tiếng Extremadura", "fa": "Tiếng Ba Tư", "fan": "Tiếng Fang", "fat": "Tiếng Fanti", "ff": "Tiếng Fulah", "fi": "Tiếng Phần Lan", "fil": "Tiếng Philippines", "fj": "Tiếng Fiji", "fo": "Tiếng Faroe", "fon": "Tiếng Fon", "fr": "Tiếng Pháp", "fr-CA": "Tiếng Pháp (Canada)", "fr-CH": "Tiếng Pháp (Thụy Sĩ)", "frc": "Tiếng Pháp Cajun", "frm": "Tiếng Pháp Trung cổ", "fro": "Tiếng Pháp cổ", "frp": "Tiếng Arpitan", "frr": "Tiếng Frisia Miền Bắc", "frs": "Tiếng Frisian Miền Đông", "fur": "Tiếng Friulian", "fy": "Tiếng Frisia", "ga": "Tiếng Ireland", "gaa": "Tiếng Ga", "gag": "Tiếng Gagauz", "gan": "Tiếng Cám", "gay": "Tiếng Gayo", "gba": "Tiếng Gbaya", "gd": "Tiếng Gael Scotland", "gez": "Tiếng Geez", "gil": "Tiếng Gilbert", "gl": "Tiếng Galician", "glk": "Tiếng Gilaki", "gmh": "Tiếng Thượng Giéc-man Trung cổ", "gn": "Tiếng Guarani", "goh": "Tiếng Thượng Giéc-man cổ", "gom": "Tiếng Goan Konkani", "gon": "Tiếng Gondi", "gor": "Tiếng Gorontalo", "got": "Tiếng Gô-tích", "grb": "Tiếng Grebo", "grc": "Tiếng Hy Lạp cổ", "gsw": "Tiếng Đức (Thụy Sĩ)", "gu": "Tiếng Gujarati", "gur": "Tiếng Frafra", "guz": "Tiếng Gusii", "gv": "Tiếng Manx", "gwi": "Tiếng Gwichʼin", "ha": "Tiếng Hausa", "hai": "Tiếng Haida", "hak": "Tiếng Khách Gia", "haw": "Tiếng Hawaii", "he": "Tiếng Do Thái", "hi": "Tiếng Hindi", "hif": "Tiếng Fiji Hindi", "hil": "Tiếng Hiligaynon", "hit": "Tiếng Hittite", "hmn": "Tiếng Hmông", "ho": "Tiếng Hiri Motu", "hr": "Tiếng Croatia", "hsb": "Tiếng Thượng Sorbia", "hsn": "Tiếng Tương", "ht": "Tiếng Haiti", "hu": "Tiếng Hungary", "hup": "Tiếng Hupa", "hy": "Tiếng Armenia", "hz": "Tiếng Herero", "ia": "Tiếng Khoa Học Quốc Tế", "iba": "Tiếng Iban", "ibb": "Tiếng Ibibio", "id": "Tiếng Indonesia", "ie": "Tiếng Interlingue", "ig": "Tiếng Igbo", "ii": "Tiếng Di Tứ Xuyên", "ik": "Tiếng Inupiaq", "ilo": "Tiếng Iloko", "inh": "Tiếng Ingush", "io": "Tiếng Ido", "is": "Tiếng Iceland", "it": "Tiếng Italy", "iu": "Tiếng Inuktitut", "izh": "Tiếng Ingria", "ja": "Tiếng Nhật", "jam": "Tiếng Anh Jamaica Creole", "jbo": "Tiếng Lojban", "jgo": "Tiếng Ngomba", "jmc": "Tiếng Machame", "jpr": "Tiếng Judeo-Ba Tư", "jrb": "Tiếng Judeo-Ả Rập", "jut": "Tiếng Jutish", "jv": "Tiếng Java", "ka": "Tiếng Georgia", "kaa": "Tiếng Kara-Kalpak", "kab": "Tiếng Kabyle", "kac": "Tiếng Kachin", "kaj": "Tiếng Jju", "kam": "Tiếng Kamba", "kaw": "Tiếng Kawi", "kbd": "Tiếng Kabardian", "kbl": "Tiếng Kanembu", "kcg": "Tiếng Tyap", "kde": "Tiếng Makonde", "kea": "Tiếng Kabuverdianu", "kfo": "Tiếng Koro", "kg": "Tiếng Kongo", "kha": "Tiếng Khasi", "kho": "Tiếng Khotan", "khq": "Tiếng Koyra Chiini", "ki": "Tiếng Kikuyu", "kj": "Tiếng Kuanyama", "kk": "Tiếng Kazakh", "kkj": "Tiếng Kako", "kl": "Tiếng Kalaallisut", "kln": "Tiếng Kalenjin", "km": "Tiếng Khmer", "kmb": "Tiếng Kimbundu", "kn": "Tiếng Kannada", "ko": "Tiếng Hàn", "koi": "Tiếng Komi-Permyak", "kok": "Tiếng Konkani", "kos": "Tiếng Kosrae", "kpe": "Tiếng Kpelle", "kr": "Tiếng Kanuri", "krc": "Tiếng Karachay-Balkar", "krl": "Tiếng Karelian", "kru": "Tiếng Kurukh", "ks": "Tiếng Kashmir", "ksb": "Tiếng Shambala", "ksf": "Tiếng Bafia", "ksh": "Tiếng Cologne", "ku": "Tiếng Kurd", "kum": "Tiếng Kumyk", "kut": "Tiếng Kutenai", "kv": "Tiếng Komi", "kw": "Tiếng Cornwall", "ky": "Tiếng Kyrgyz", "la": "Tiếng La-tinh", "lad": "Tiếng Ladino", "lag": "Tiếng Langi", "lah": "Tiếng Lahnda", "lam": "Tiếng Lamba", "lb": "Tiếng Luxembourg", "lez": "Tiếng Lezghian", "lg": "Tiếng Ganda", "li": "Tiếng Limburg", "lkt": "Tiếng Lakota", "ln": "Tiếng Lingala", "lo": "Tiếng Lào", "lol": "Tiếng Mongo", "lou": "Tiếng Creole Louisiana", "loz": "Tiếng Lozi", "lrc": "Tiếng Bắc Luri", "lt": "Tiếng Litva", "lu": "Tiếng Luba-Katanga", "lua": "Tiếng Luba-Lulua", "lui": "Tiếng Luiseno", "lun": "Tiếng Lunda", "luo": "Tiếng Luo", "lus": "Tiếng Lushai", "luy": "Tiếng Luyia", "lv": "Tiếng Latvia", "mad": "Tiếng Madura", "maf": "Tiếng Mafa", "mag": "Tiếng Magahi", "mai": "Tiếng Maithili", "mak": "Tiếng Makasar", "man": "Tiếng Mandingo", "mas": "Tiếng Masai", "mde": "Tiếng Maba", "mdf": "Tiếng Moksha", "mdr": "Tiếng Mandar", "men": "Tiếng Mende", "mer": "Tiếng Meru", "mfe": "Tiếng Morisyen", "mg": "Tiếng Malagasy", "mga": "Tiếng Ai-len Trung cổ", "mgh": "Tiếng Makhuwa-Meetto", "mgo": "Tiếng Meta’", "mh": "Tiếng Marshall", "mi": "Tiếng Maori", "mic": "Tiếng Micmac", "min": "Tiếng Minangkabau", "mk": "Tiếng Macedonia", "ml": "Tiếng Malayalam", "mn": "Tiếng Mông Cổ", "mnc": "Tiếng Mãn Châu", "mni": "Tiếng Manipuri", "moh": "Tiếng Mohawk", "mos": "Tiếng Mossi", "mr": "Tiếng Marathi", "ms": "Tiếng Mã Lai", "mt": "Tiếng Malta", "mua": "Tiếng Mundang", "mus": "Tiếng Creek", "mwl": "Tiếng Miranda", "mwr": "Tiếng Marwari", "my": "Tiếng Miến Điện", "mye": "Tiếng Myene", "myv": "Tiếng Erzya", "mzn": "Tiếng Mazanderani", "na": "Tiếng Nauru", "nan": "Tiếng Mân Nam", "nap": "Tiếng Napoli", "naq": "Tiếng Nama", "nb": "Tiếng Na Uy (Bokmål)", "nd": "Tiếng Ndebele Miền Bắc", "nds": "Tiếng Hạ Giéc-man", "nds-NL": "Tiếng Hạ Saxon", "ne": "Tiếng Nepal", "new": "Tiếng Newari", "ng": "Tiếng Ndonga", "nia": "Tiếng Nias", "niu": "Tiếng Niuean", "njo": "Tiếng Ao Naga", "nl": "Tiếng Hà Lan", "nl-BE": "Tiếng Flemish", "nmg": "Tiếng Kwasio", "nn": "Tiếng Na Uy (Nynorsk)", "nnh": "Tiếng Ngiemboon", "no": "Tiếng Na Uy", "nog": "Tiếng Nogai", "non": "Tiếng Na Uy cổ", "nqo": "Tiếng N’Ko", "nr": "Tiếng Ndebele Miền Nam", "nso": "Tiếng Sotho Miền Bắc", "nus": "Tiếng Nuer", "nv": "Tiếng Navajo", "nwc": "Tiếng Newari cổ", "ny": "Tiếng Nyanja", "nym": "Tiếng Nyamwezi", "nyn": "Tiếng Nyankole", "nyo": "Tiếng Nyoro", "nzi": "Tiếng Nzima", "oc": "Tiếng Occitan", "oj": "Tiếng Ojibwa", "om": "Tiếng Oromo", "or": "Tiếng Odia", "os": "Tiếng Ossetic", "osa": "Tiếng Osage", "ota": "Tiếng Thổ Nhĩ Kỳ Ottoman", "pa": "Tiếng Punjab", "pag": "Tiếng Pangasinan", "pal": "Tiếng Pahlavi", "pam": "Tiếng Pampanga", "pap": "Tiếng Papiamento", "pau": "Tiếng Palauan", "pcm": "Tiếng Nigeria Pidgin", "peo": "Tiếng Ba Tư cổ", "phn": "Tiếng Phoenicia", "pi": "Tiếng Pali", "pl": "Tiếng Ba Lan", "pon": "Tiếng Pohnpeian", "prg": "Tiếng Prussia", "pro": "Tiếng Provençal cổ", "ps": "Tiếng Pashto", "pt": "Tiếng Bồ Đào Nha", "pt-BR": "Tiếng Bồ Đào Nha (Brazil)", "pt-PT": "Tiếng Bồ Đào Nha (Châu Âu)", "qu": "Tiếng Quechua", "quc": "Tiếng Kʼicheʼ", "qug": "Tiếng Quechua ở Cao nguyên Chimborazo", "raj": "Tiếng Rajasthani", "rap": "Tiếng Rapanui", "rar": "Tiếng Rarotongan", "rm": "Tiếng Romansh", "rn": "Tiếng Rundi", "ro": "Tiếng Romania", "ro-MD": "Tiếng Moldova", "rof": "Tiếng Rombo", "rom": "Tiếng Romany", "root": "Tiếng Root", "ru": "Tiếng Nga", "rup": "Tiếng Aromania", "rw": "Tiếng Kinyarwanda", "rwk": "Tiếng Rwa", "sa": "Tiếng Phạn", "sad": "Tiếng Sandawe", "sah": "Tiếng Sakha", "sam": "Tiếng Samaritan Aramaic", "saq": "Tiếng Samburu", "sas": "Tiếng Sasak", "sat": "Tiếng Santali", "sba": "Tiếng Ngambay", "sbp": "Tiếng Sangu", "sc": "Tiếng Sardinia", "scn": "Tiếng Sicilia", "sco": "Tiếng Scots", "sd": "Tiếng Sindhi", "sdh": "Tiếng Kurd Miền Nam", "se": "Tiếng Sami Miền Bắc", "see": "Tiếng Seneca", "seh": "Tiếng Sena", "sel": "Tiếng Selkup", "ses": "Tiếng Koyraboro Senni", "sg": "Tiếng Sango", "sga": "Tiếng Ai-len cổ", "sh": "Tiếng Serbo-Croatia", "shi": "Tiếng Tachelhit", "shn": "Tiếng Shan", "shu": "Tiếng Ả-Rập Chad", "si": "Tiếng Sinhala", "sid": "Tiếng Sidamo", "sk": "Tiếng Slovak", "sl": "Tiếng Slovenia", "sm": "Tiếng Samoa", "sma": "Tiếng Sami Miền Nam", "smj": "Tiếng Lule Sami", "smn": "Tiếng Inari Sami", "sms": "Tiếng Skolt Sami", "sn": "Tiếng Shona", "snk": "Tiếng Soninke", "so": "Tiếng Somali", "sog": "Tiếng Sogdien", "sq": "Tiếng Albania", "sr": "Tiếng Serbia", "srn": "Tiếng Sranan Tongo", "srr": "Tiếng Serer", "ss": "Tiếng Swati", "ssy": "Tiếng Saho", "st": "Tiếng Sotho Miền Nam", "su": "Tiếng Sunda", "suk": "Tiếng Sukuma", "sus": "Tiếng Susu", "sux": "Tiếng Sumeria", "sv": "Tiếng Thụy Điển", "sw": "Tiếng Swahili", "sw-CD": "Tiếng Swahili Congo", "swb": "Tiếng Cômo", "syc": "Tiếng Syriac cổ", "syr": "Tiếng Syriac", "ta": "Tiếng Tamil", "te": "Tiếng Telugu", "tem": "Tiếng Timne", "teo": "Tiếng Teso", "ter": "Tiếng Tereno", "tet": "Tiếng Tetum", "tg": "Tiếng Tajik", "th": "Tiếng Thái", "ti": "Tiếng Tigrinya", "tig": "Tiếng Tigre", "tiv": "Tiếng Tiv", "tk": "Tiếng Turkmen", "tkl": "Tiếng Tokelau", "tl": "Tiếng Tagalog", "tlh": "Tiếng Klingon", "tli": "Tiếng Tlingit", "tmh": "Tiếng Tamashek", "tn": "Tiếng Tswana", "to": "Tiếng Tonga", "tog": "Tiếng Nyasa Tonga", "tpi": "Tiếng Tok Pisin", "tr": "Tiếng Thổ Nhĩ Kỳ", "trv": "Tiếng Taroko", "ts": "Tiếng Tsonga", "tsi": "Tiếng Tsimshian", "tt": "Tiếng Tatar", "tum": "Tiếng Tumbuka", "tvl": "Tiếng Tuvalu", "tw": "Tiếng Twi", "twq": "Tiếng Tasawaq", "ty": "Tiếng Tahiti", "tyv": "Tiếng Tuvinian", "tzm": "Tiếng Tamazight Miền Trung Ma-rốc", "udm": "Tiếng Udmurt", "ug": "Tiếng Uyghur", "uga": "Tiếng Ugaritic", "uk": "Tiếng Ucraina", "umb": "Tiếng Umbundu", "ur": "Tiếng Urdu", "uz": "Tiếng Uzbek", "vai": "Tiếng Vai", "ve": "Tiếng Venda", "vi": "Tiếng Việt", "vo": "Tiếng Volapük", "vot": "Tiếng Votic", "vun": "Tiếng Vunjo", "wa": "Tiếng Walloon", "wae": "Tiếng Walser", "wal": "Tiếng Walamo", "war": "Tiếng Waray", "was": "Tiếng Washo", "wbp": "Tiếng Warlpiri", "wo": "Tiếng Wolof", "wuu": "Tiếng Ngô", "xal": "Tiếng Kalmyk", "xh": "Tiếng Xhosa", "xog": "Tiếng Soga", "yao": "Tiếng Yao", "yap": "Tiếng Yap", "yav": "Tiếng Yangben", "ybb": "Tiếng Yemba", "yi": "Tiếng Yiddish", "yo": "Tiếng Yoruba", "yue": "Tiếng Quảng Đông", "za": "Tiếng Choang", "zap": "Tiếng Zapotec", "zbl": "Ký hiệu Blissymbols", "zen": "Tiếng Zenaga", "zgh": "Tiếng Tamazight Chuẩn của Ma-rốc", "zh": "Tiếng Trung", "zh-Hans": "Tiếng Trung (Giản thể)", "zh-Hant": "Tiếng Trung (Phồn thể)", "zu": "Tiếng Zulu", "zun": "Tiếng Zuni", "zza": "Tiếng Zaza"}}, - "yue": {"rtl": false, "languageNames": {"aa": "阿法文", "ab": "阿布哈茲文", "ace": "亞齊文", "ach": "阿僑利文", "ada": "阿當莫文", "ady": "阿迪各文", "ae": "阿緯斯陀文", "aeb": "突尼斯阿拉伯文", "af": "南非荷蘭文", "afh": "阿弗里希利文", "agq": "亞罕文", "ain": "阿伊努文", "ak": "阿坎文", "akk": "阿卡德文", "akz": "阿拉巴馬文", "ale": "阿留申文", "aln": "蓋格阿爾巴尼亞文", "alt": "南阿爾泰文", "am": "阿姆哈拉文", "an": "阿拉貢文", "ang": "古英文", "anp": "昂加文", "ar": "阿拉伯文", "ar-001": "現代標準阿拉伯文", "arc": "阿拉米文", "arn": "馬普切文", "aro": "阿拉奧納文", "arp": "阿拉帕霍文", "arq": "阿爾及利亞阿拉伯文", "arw": "阿拉瓦克文", "ary": "摩洛哥阿拉伯文", "arz": "埃及阿拉伯文", "as": "阿薩姆文", "asa": "阿蘇文", "ase": "美國手語", "ast": "阿斯圖里亞文", "av": "阿瓦爾文", "avk": "科塔瓦文", "awa": "阿瓦文", "ay": "艾馬拉文", "az": "亞塞拜然文", "ba": "巴什客爾文", "bal": "俾路支文", "ban": "峇里文", "bar": "巴伐利亞文", "bas": "巴薩文", "bax": "巴姆穆文", "bbc": "巴塔克托巴文", "bbj": "戈馬拉文", "be": "白俄羅斯文", "bej": "貝扎文", "bem": "別姆巴文", "bew": "貝塔維文", "bez": "貝納文", "bfd": "富特文", "bfq": "巴達加文", "bg": "保加利亞文", "bgn": "西俾路支文", "bho": "博傑普爾文", "bi": "比斯拉馬文", "bik": "比科爾文", "bin": "比尼文", "bjn": "班亞爾文", "bkm": "康姆文", "bla": "錫克錫卡文", "bm": "班巴拉文", "bn": "孟加拉文", "bo": "藏文", "bpy": "比什奴普萊利亞文", "bqi": "巴赫蒂亞里文", "br": "布列塔尼文", "bra": "布拉杰文", "brh": "布拉維文", "brx": "博多文", "bs": "波士尼亞文", "bss": "阿庫色文", "bua": "布里阿特文", "bug": "布吉斯文", "bum": "布魯文", "byn": "比林文", "byv": "梅敦巴文", "ca": "加泰羅尼亞文", "cad": "卡多文", "car": "加勒比文", "cay": "卡尤加文", "cch": "阿燦文", "ccp": "查克馬文", "ce": "車臣文", "ceb": "宿霧文", "cgg": "奇加文", "ch": "查莫洛文", "chb": "奇布查文", "chg": "查加文", "chk": "處奇斯文", "chm": "馬里文", "chn": "契奴克文", "cho": "喬克托文", "chp": "奇佩瓦揚文", "chr": "柴羅基文", "chy": "沙伊安文", "ckb": "索拉尼庫爾德文", "co": "科西嘉文", "cop": "科普特文", "cps": "卡皮茲文", "cr": "克裡文", "crh": "克里米亞半島的土耳其文;克里米亞半島的塔塔爾文", "crs": "法語克里奧爾混合語", "cs": "捷克文", "csb": "卡舒布文", "cu": "宗教斯拉夫文", "cv": "楚瓦什文", "cy": "威爾斯文", "da": "丹麥文", "dak": "達科他文", "dar": "達爾格瓦文", "dav": "台塔文", "de": "德文", "de-AT": "德文 (奧地利)", "de-CH": "高地德文(瑞士)", "del": "德拉瓦文", "den": "斯拉夫", "dgr": "多格里布文", "din": "丁卡文", "dje": "扎爾馬文", "doi": "多格來文", "dsb": "下索布文", "dtp": "中部杜順文", "dua": "杜亞拉文", "dum": "中古荷蘭文", "dv": "迪維西文", "dyo": "朱拉文", "dyu": "迪尤拉文", "dz": "宗卡文", "dzg": "達薩文", "ebu": "恩布文", "ee": "埃維文", "efi": "埃菲克文", "egl": "埃米利安文", "egy": "古埃及文", "eka": "艾卡朱克文", "el": "希臘文", "elx": "埃蘭文", "en": "英文", "en-AU": "英文 (澳洲)", "en-CA": "英文 (加拿大)", "en-GB": "英文 (英國)", "en-US": "英文 (美國)", "enm": "中古英文", "eo": "世界文", "es": "西班牙文", "es-419": "西班牙文 (拉丁美洲)", "es-ES": "西班牙文 (西班牙)", "es-MX": "西班牙文 (墨西哥)", "esu": "中尤皮克文", "et": "愛沙尼亞文", "eu": "巴斯克文", "ewo": "依汪都文", "ext": "埃斯特雷馬杜拉文", "fa": "波斯文", "fan": "芳族文", "fat": "芳蒂文", "ff": "富拉文", "fi": "芬蘭文", "fil": "菲律賓文", "fit": "托爾訥芬蘭文", "fj": "斐濟文", "fo": "法羅文", "fon": "豐文", "fr": "法文", "fr-CA": "法文 (加拿大)", "fr-CH": "法文 (瑞士)", "frc": "卡真法文", "frm": "中古法文", "fro": "古法文", "frp": "法蘭克-普羅旺斯文", "frr": "北弗里西亞文", "frs": "東弗里西亞文", "fur": "弗留利文", "fy": "西弗里西亞文", "ga": "愛爾蘭文", "gaa": "加族文", "gag": "加告茲文", "gan": "贛語", "gay": "加約文", "gba": "葛巴亞文", "gbz": "索羅亞斯德教達里文", "gd": "蘇格蘭蓋爾文", "gez": "吉茲文", "gil": "吉爾伯特群島文", "gl": "加利西亞文", "glk": "吉拉基文", "gmh": "中古高地德文", "gn": "瓜拉尼文", "goh": "古高地日耳曼文", "gom": "孔卡尼文", "gon": "岡德文", "gor": "科隆達羅文", "got": "哥德文", "grb": "格列博文", "grc": "古希臘文", "gsw": "德文(瑞士)", "gu": "古吉拉特文", "guc": "瓦尤文", "gur": "弗拉弗拉文", "guz": "古西文", "gv": "曼島文", "gwi": "圭契文", "ha": "豪撒文", "hai": "海達文", "hak": "客家話", "haw": "夏威夷文", "he": "希伯來文", "hi": "北印度文", "hif": "斐濟印地文", "hil": "希利蓋農文", "hit": "赫梯文", "hmn": "孟文", "ho": "西里莫圖土文", "hr": "克羅埃西亞文", "hsb": "上索布文", "hsn": "湘語", "ht": "海地文", "hu": "匈牙利文", "hup": "胡帕文", "hy": "亞美尼亞文", "hz": "赫雷羅文", "ia": "國際文", "iba": "伊班文", "ibb": "伊比比奧文", "id": "印尼文", "ie": "國際文(E)", "ig": "伊布文", "ii": "四川彝文", "ik": "依奴皮維克文", "ilo": "伊洛闊文", "inh": "印古什文", "io": "伊多文", "is": "冰島文", "it": "義大利文", "iu": "因紐特文", "izh": "英格裏亞文", "ja": "日文", "jam": "牙買加克裏奧爾英文", "jbo": "邏輯文", "jgo": "恩格姆巴文", "jmc": "馬恰美文", "jpr": "猶太教-波斯文", "jrb": "猶太阿拉伯文", "jut": "日德蘭文", "jv": "爪哇文", "ka": "喬治亞文", "kaa": "卡拉卡爾帕克文", "kab": "卡比爾文", "kac": "卡琴文", "kaj": "卡捷文", "kam": "卡姆巴文", "kaw": "卡威文", "kbd": "卡巴爾達文", "kbl": "卡念布文", "kcg": "卡塔布文", "kde": "馬孔德文", "kea": "卡布威爾第文", "ken": "肯揚文", "kfo": "科羅文", "kg": "剛果文", "kgp": "坎剛文", "kha": "卡西文", "kho": "和闐文", "khq": "西桑海文", "khw": "科瓦文", "ki": "吉庫尤文", "kiu": "北紮紮其文", "kj": "廣亞馬文", "kk": "哈薩克文", "kkj": "卡庫文", "kl": "格陵蘭文", "kln": "卡倫金文", "km": "高棉文", "kmb": "金邦杜文", "kn": "坎那達文", "ko": "韓文", "koi": "科米-彼爾米亞克文", "kok": "貢根文", "kos": "科斯雷恩文", "kpe": "克佩列文", "kr": "卡努裡文", "krc": "卡拉柴-包爾卡爾文", "kri": "塞拉利昂克裏奧爾文", "krj": "基那來阿文", "krl": "卡累利阿文", "kru": "庫魯科文", "ks": "喀什米爾文", "ksb": "尚巴拉文", "ksf": "巴菲亞文", "ksh": "科隆文", "ku": "庫爾德文", "kum": "庫密克文", "kut": "庫特奈文", "kv": "科米文", "kw": "康瓦耳文", "ky": "吉爾吉斯文", "la": "拉丁文", "lad": "拉迪諾文", "lag": "朗吉文", "lah": "拉亨達文", "lam": "蘭巴文", "lb": "盧森堡文", "lez": "列茲干文", "lfn": "新共同語言", "lg": "干達文", "li": "林堡文", "lij": "利古里亞文", "liv": "利伏尼亞文", "lkt": "拉科塔文", "lmo": "倫巴底文", "ln": "林加拉文", "lo": "寮文", "lol": "芒戈文", "loz": "洛齊文", "lrc": "北盧爾文", "lt": "立陶宛文", "ltg": "拉特加萊文", "lu": "魯巴加丹加文", "lua": "魯巴魯魯亞文", "lui": "路易塞諾文", "lun": "盧恩達文", "luo": "盧奧文", "lus": "盧晒文", "luy": "盧雅文", "lv": "拉脫維亞文", "lzh": "文言文", "lzz": "拉茲文", "mad": "馬都拉文", "maf": "馬法文", "mag": "馬加伊文", "mai": "邁蒂利文", "mak": "望加錫文", "man": "曼丁哥文", "mas": "馬賽文", "mde": "馬巴文", "mdf": "莫克沙文", "mdr": "曼達文", "men": "門德文", "mer": "梅魯文", "mfe": "克里奧文(模里西斯)", "mg": "馬拉加什文", "mga": "中古愛爾蘭文", "mgh": "馬夸文", "mgo": "美塔文", "mh": "馬紹爾文", "mi": "毛利文", "mic": "米克馬克文", "min": "米南卡堡文", "mk": "馬其頓文", "ml": "馬來亞拉姆文", "mn": "蒙古文", "mnc": "滿族文", "mni": "曼尼普裡文", "moh": "莫霍克文", "mos": "莫西文", "mr": "馬拉地文", "mrj": "西馬裏文", "ms": "馬來文", "mt": "馬爾他文", "mua": "蒙當文", "mus": "克里克文", "mwl": "米蘭德斯文", "mwr": "馬爾尼裡文", "mwv": "明打威文", "my": "緬甸文", "mye": "姆耶內文", "myv": "厄爾茲亞文", "mzn": "馬贊德蘭文", "na": "諾魯文", "nan": "閩南語", "nap": "拿波里文", "naq": "納馬文", "nb": "巴克摩挪威文", "nd": "北地畢列文", "nds": "低地德文", "nds-NL": "低地薩克遜文", "ne": "尼泊爾文", "new": "尼瓦爾文", "ng": "恩東加文", "nia": "尼亞斯文", "niu": "紐埃文", "njo": "阿沃那加文", "nl": "荷蘭文", "nl-BE": "佛蘭芒文", "nmg": "夸西奧文", "nn": "耐諾斯克挪威文", "nnh": "恩甘澎文", "no": "挪威文", "nog": "諾蓋文", "non": "古諾爾斯文", "nov": "諾維亞文", "nqo": "曼德文字 (N’Ko)", "nr": "南地畢列文", "nso": "北索托文", "nus": "努埃爾文", "nv": "納瓦霍文", "nwc": "古尼瓦爾文", "ny": "尼揚賈文", "nym": "尼揚韋齊文", "nyn": "尼揚科萊文", "nyo": "尼奧囉文", "nzi": "尼茲馬文", "oc": "奧克西坦文", "oj": "奧杰布瓦文", "om": "奧羅莫文", "or": "歐利亞文", "os": "奧塞提文", "osa": "歐塞奇文", "ota": "鄂圖曼土耳其文", "pa": "旁遮普文", "pag": "潘加辛文", "pal": "巴列維文", "pam": "潘帕嘉文", "pap": "帕皮阿門托文", "pau": "帛琉文", "pcd": "庇卡底文", "pcm": "尼日利亞皮欽語", "pdc": "賓夕法尼亞德文", "pdt": "門諾低地德文", "peo": "古波斯文", "pfl": "普法爾茨德文", "phn": "腓尼基文", "pi": "巴利文", "pl": "波蘭文", "pms": "皮埃蒙特文", "pnt": "旁狄希臘文", "pon": "波那貝文", "prg": "普魯士文", "pro": "古普羅旺斯文", "ps": "普什圖文", "pt": "葡萄牙文", "pt-BR": "葡萄牙文 (巴西)", "pt-PT": "葡萄牙文 (葡萄牙)", "qu": "蓋楚瓦文", "quc": "基切文", "qug": "欽博拉索海蘭蓋丘亞文", "raj": "拉賈斯坦諸文", "rap": "復活島文", "rar": "拉羅通加文", "rgn": "羅馬格諾里文", "rif": "里菲亞諾文", "rm": "羅曼斯文", "rn": "隆迪文", "ro": "羅馬尼亞文", "ro-MD": "摩爾多瓦文", "rof": "蘭博文", "rom": "吉普賽文", "root": "根語言", "rtm": "羅圖馬島文", "ru": "俄文", "rue": "盧森尼亞文", "rug": "羅維阿納文", "rup": "羅馬尼亞語系", "rw": "盧安達文", "rwk": "羅瓦文", "sa": "梵文", "sad": "桑達韋文", "sah": "雅庫特文", "sam": "薩瑪利亞阿拉姆文", "saq": "薩布魯文", "sas": "撒撒克文", "sat": "散塔利文", "saz": "索拉什特拉文", "sba": "甘拜文", "sbp": "桑古文", "sc": "撒丁文", "scn": "西西里文", "sco": "蘇格蘭文", "sd": "信德文", "sdc": "薩丁尼亞-薩薩里文", "sdh": "南庫爾德文", "se": "北方薩米文", "see": "塞訥卡文", "seh": "賽納文", "sei": "瑟里文", "sel": "瑟爾卡普文", "ses": "東桑海文", "sg": "桑戈文", "sga": "古愛爾蘭文", "sgs": "薩莫吉希亞文", "sh": "塞爾維亞克羅埃西亞文", "shi": "希爾哈文", "shn": "撣文", "shu": "阿拉伯文(查德)", "si": "僧伽羅文", "sid": "希達摩文", "sk": "斯洛伐克文", "sl": "斯洛維尼亞文", "sli": "下西利西亞文", "sly": "塞拉亞文", "sm": "薩摩亞文", "sma": "南薩米文", "smj": "魯勒薩米文", "smn": "伊納裡薩米文", "sms": "斯科特薩米文", "sn": "塞內加爾文", "snk": "索尼基文", "so": "索馬利文", "sog": "索格底亞納文", "sq": "阿爾巴尼亞文", "sr": "塞爾維亞文", "srn": "蘇拉南東墎文", "srr": "塞雷爾文", "ss": "斯瓦特文", "ssy": "薩霍文", "st": "塞索托文", "stq": "沙特菲士蘭文", "su": "巽他文", "suk": "蘇庫馬文", "sus": "蘇蘇文", "sux": "蘇美文", "sv": "瑞典文", "sw": "史瓦希里文", "sw-CD": "史瓦希里文(剛果)", "swb": "葛摩文", "syc": "古敘利亞文", "syr": "敘利亞文", "szl": "西利西亞文", "ta": "坦米爾文", "tcy": "圖盧文", "te": "泰盧固文", "tem": "提姆文", "teo": "特索文", "ter": "泰雷諾文", "tet": "泰頓文", "tg": "塔吉克文", "th": "泰文", "ti": "提格利尼亞文", "tig": "蒂格雷文", "tiv": "提夫文", "tk": "土庫曼文", "tkl": "托克勞文", "tkr": "查庫爾文", "tl": "塔加路族文", "tlh": "克林貢文", "tli": "特林基特文", "tly": "塔里什文", "tmh": "塔馬奇克文", "tn": "突尼西亞文", "to": "東加文", "tog": "東加文(尼亞薩)", "tpi": "托比辛文", "tr": "土耳其文", "tru": "圖羅尤文", "trv": "太魯閣文", "ts": "特松加文", "tsd": "特薩克尼恩文", "tsi": "欽西安文", "tt": "韃靼文", "ttt": "穆斯林塔特文", "tum": "圖姆布卡文", "tvl": "吐瓦魯文", "tw": "特威文", "twq": "北桑海文", "ty": "大溪地文", "tyv": "土凡文", "tzm": "塔馬齊格特文", "udm": "沃蒂艾克文", "ug": "維吾爾文", "uga": "烏加列文", "uk": "烏克蘭文", "umb": "姆本杜文", "ur": "烏都文", "uz": "烏茲別克文", "vai": "瓦伊文", "ve": "溫達文", "vec": "威尼斯文", "vep": "維普森文", "vi": "越南文", "vls": "西佛蘭德文", "vmf": "美茵-法蘭克尼亞文", "vo": "沃拉普克文", "vot": "沃提克文", "vro": "佛羅文", "vun": "溫舊文", "wa": "瓦隆文", "wae": "瓦瑟文", "wal": "瓦拉莫文", "war": "瓦瑞文", "was": "瓦紹文", "wbp": "沃皮瑞文", "wo": "沃洛夫文", "wuu": "吳語", "xal": "卡爾梅克文", "xh": "科薩文", "xmf": "明格列爾文", "xog": "索加文", "yao": "瑤文", "yap": "雅浦文", "yav": "洋卞文", "ybb": "耶姆巴文", "yi": "意第緒文", "yo": "約魯巴文", "yrl": "奈恩加圖文", "yue": "粵語", "za": "壯文", "zap": "薩波特克文", "zbl": "布列斯符號", "zea": "西蘭文", "zen": "澤納加文", "zgh": "標準摩洛哥塔馬塞特文", "zh": "中文", "zh-Hans": "簡體中文", "zh-Hant": "繁體中文", "zu": "祖魯文", "zun": "祖尼文", "zza": "扎扎文"}}, - "zh": {"rtl": false, "languageNames": {"aa": "阿法尔语", "ab": "阿布哈西亚语", "ace": "亚齐语", "ach": "阿乔利语", "ada": "阿当梅语", "ady": "阿迪格语", "ae": "阿维斯塔语", "af": "南非荷兰语", "afh": "阿弗里希利语", "agq": "亚罕语", "ain": "阿伊努语", "ak": "阿肯语", "akk": "阿卡德语", "ale": "阿留申语", "alt": "南阿尔泰语", "am": "阿姆哈拉语", "an": "阿拉贡语", "ang": "古英语", "anp": "昂加语", "ar": "阿拉伯语", "ar-001": "现代标准阿拉伯语", "arc": "阿拉米语", "arn": "马普切语", "arp": "阿拉帕霍语", "ars": "纳吉迪阿拉伯语", "arw": "阿拉瓦克语", "as": "阿萨姆语", "asa": "帕雷语", "ast": "阿斯图里亚斯语", "av": "阿瓦尔语", "awa": "阿瓦德语", "ay": "艾马拉语", "az": "阿塞拜疆语", "az-Arab": "南阿塞拜疆语", "ba": "巴什基尔语", "bal": "俾路支语", "ban": "巴厘语", "bas": "巴萨语", "bax": "巴姆穆语", "bbj": "戈马拉语", "be": "白俄罗斯语", "bej": "贝沙语", "bem": "本巴语", "bez": "贝纳语", "bfd": "巴非特语", "bg": "保加利亚语", "bgn": "西俾路支语", "bho": "博杰普尔语", "bi": "比斯拉马语", "bik": "比科尔语", "bin": "比尼语", "bkm": "科姆语", "bla": "西克西卡语", "bm": "班巴拉语", "bn": "孟加拉语", "bo": "藏语", "br": "布列塔尼语", "bra": "布拉杰语", "brx": "博多语", "bs": "波斯尼亚语", "bss": "阿库色语", "bua": "布里亚特语", "bug": "布吉语", "bum": "布鲁语", "byn": "比林语", "byv": "梅敦巴语", "ca": "加泰罗尼亚语", "cad": "卡多语", "car": "加勒比语", "cay": "卡尤加语", "cch": "阿灿语", "ccp": "查克玛语", "ce": "车臣语", "ceb": "宿务语", "cgg": "奇加语", "ch": "查莫罗语", "chb": "奇布查语", "chg": "察合台语", "chk": "楚克语", "chm": "马里语", "chn": "奇努克混合语", "cho": "乔克托语", "chp": "奇佩维安语", "chr": "切罗基语", "chy": "夏延语", "ckb": "中库尔德语", "co": "科西嘉语", "cop": "科普特语", "cr": "克里族语", "crh": "克里米亚土耳其语", "crs": "塞舌尔克里奥尔语", "cs": "捷克语", "csb": "卡舒比语", "cu": "教会斯拉夫语", "cv": "楚瓦什语", "cy": "威尔士语", "da": "丹麦语", "dak": "达科他语", "dar": "达尔格瓦语", "dav": "台塔语", "de": "德语", "de-AT": "奥地利德语", "de-CH": "瑞士高地德语", "del": "特拉华语", "den": "史拉维语", "dgr": "多格里布语", "din": "丁卡语", "dje": "哲尔马语", "doi": "多格拉语", "dsb": "下索布语", "dua": "都阿拉语", "dum": "中古荷兰语", "dv": "迪维希语", "dyo": "朱拉语", "dyu": "迪尤拉语", "dz": "宗卡语", "dzg": "达扎葛语", "ebu": "恩布语", "ee": "埃维语", "efi": "埃菲克语", "egy": "古埃及语", "eka": "艾卡朱克语", "el": "希腊语", "elx": "埃兰语", "en": "英语", "en-AU": "澳大利亚英语", "en-CA": "加拿大英语", "en-GB": "英国英语", "en-US": "美国英语", "enm": "中古英语", "eo": "世界语", "es": "西班牙语", "es-419": "拉丁美洲西班牙语", "es-ES": "欧洲西班牙语", "es-MX": "墨西哥西班牙语", "et": "爱沙尼亚语", "eu": "巴斯克语", "ewo": "旺杜语", "fa": "波斯语", "fan": "芳格语", "fat": "芳蒂语", "ff": "富拉语", "fi": "芬兰语", "fil": "菲律宾语", "fj": "斐济语", "fo": "法罗语", "fon": "丰语", "fr": "法语", "fr-CA": "加拿大法语", "fr-CH": "瑞士法语", "frc": "卡真法语", "frm": "中古法语", "fro": "古法语", "frr": "北弗里西亚语", "frs": "东弗里西亚语", "fur": "弗留利语", "fy": "西弗里西亚语", "ga": "爱尔兰语", "gaa": "加族语", "gag": "加告兹语", "gan": "赣语", "gay": "迦约语", "gba": "格巴亚语", "gd": "苏格兰盖尔语", "gez": "吉兹语", "gil": "吉尔伯特语", "gl": "加利西亚语", "gmh": "中古高地德语", "gn": "瓜拉尼语", "goh": "古高地德语", "gon": "冈德语", "gor": "哥伦打洛语", "got": "哥特语", "grb": "格列博语", "grc": "古希腊语", "gsw": "瑞士德语", "gu": "古吉拉特语", "guz": "古西语", "gv": "马恩语", "gwi": "哥威迅语", "ha": "豪萨语", "hai": "海达语", "hak": "客家语", "haw": "夏威夷语", "he": "希伯来语", "hi": "印地语", "hil": "希利盖农语", "hit": "赫梯语", "hmn": "苗语", "ho": "希里莫图语", "hr": "克罗地亚语", "hsb": "上索布语", "hsn": "湘语", "ht": "海地克里奥尔语", "hu": "匈牙利语", "hup": "胡帕语", "hy": "亚美尼亚语", "hz": "赫雷罗语", "ia": "国际语", "iba": "伊班语", "ibb": "伊比比奥语", "id": "印度尼西亚语", "ie": "国际文字(E)", "ig": "伊博语", "ii": "四川彝语", "ik": "伊努皮克语", "ilo": "伊洛卡诺语", "inh": "印古什语", "io": "伊多语", "is": "冰岛语", "it": "意大利语", "iu": "因纽特语", "ja": "日语", "jbo": "逻辑语", "jgo": "恩艮巴语", "jmc": "马切姆语", "jpr": "犹太波斯语", "jrb": "犹太阿拉伯语", "jv": "爪哇语", "ka": "格鲁吉亚语", "kaa": "卡拉卡尔帕克语", "kab": "卡拜尔语", "kac": "克钦语", "kaj": "卡捷语", "kam": "卡姆巴语", "kaw": "卡威语", "kbd": "卡巴尔德语", "kbl": "加涅姆布语", "kcg": "卡塔布语", "kde": "马孔德语", "kea": "卡布佛得鲁语", "kfo": "克罗语", "kg": "刚果语", "kha": "卡西语", "kho": "和田语", "khq": "西桑海语", "ki": "吉库尤语", "kj": "宽亚玛语", "kk": "哈萨克语", "kkj": "卡库语", "kl": "格陵兰语", "kln": "卡伦金语", "km": "高棉语", "kmb": "金邦杜语", "kn": "卡纳达语", "ko": "韩语", "koi": "科米-彼尔米亚克语", "kok": "孔卡尼语", "kos": "科斯拉伊语", "kpe": "克佩列语", "kr": "卡努里语", "krc": "卡拉恰伊巴尔卡尔语", "krl": "卡累利阿语", "kru": "库鲁克语", "ks": "克什米尔语", "ksb": "香巴拉语", "ksf": "巴菲亚语", "ksh": "科隆语", "ku": "库尔德语", "kum": "库梅克语", "kut": "库特奈语", "kv": "科米语", "kw": "康沃尔语", "ky": "柯尔克孜语", "la": "拉丁语", "lad": "拉迪诺语", "lag": "朗吉语", "lah": "印度-雅利安语", "lam": "兰巴语", "lb": "卢森堡语", "lez": "列兹金语", "lg": "卢干达语", "li": "林堡语", "lkt": "拉科塔语", "ln": "林加拉语", "lo": "老挝语", "lol": "蒙戈语", "lou": "路易斯安那克里奥尔语", "loz": "洛齐语", "lrc": "北卢尔语", "lt": "立陶宛语", "lu": "鲁巴加丹加语", "lua": "卢巴-卢拉语", "lui": "卢伊塞诺语", "lun": "隆达语", "luo": "卢奥语", "lus": "米佐语", "luy": "卢雅语", "lv": "拉脱维亚语", "mad": "马都拉语", "maf": "马法语", "mag": "摩揭陀语", "mai": "迈蒂利语", "mak": "望加锡语", "man": "曼丁哥语", "mas": "马赛语", "mde": "马坝语", "mdf": "莫克沙语", "mdr": "曼达尔语", "men": "门德语", "mer": "梅鲁语", "mfe": "毛里求斯克里奥尔语", "mg": "马拉加斯语", "mga": "中古爱尔兰语", "mgh": "马库阿语", "mgo": "梅塔语", "mh": "马绍尔语", "mi": "毛利语", "mic": "密克马克语", "min": "米南佳保语", "mk": "马其顿语", "ml": "马拉雅拉姆语", "mn": "蒙古语", "mnc": "满语", "mni": "曼尼普尔语", "moh": "摩霍克语", "mos": "莫西语", "mr": "马拉地语", "ms": "马来语", "mt": "马耳他语", "mua": "蒙当语", "mus": "克里克语", "mwl": "米兰德斯语", "mwr": "马尔瓦里语", "my": "缅甸语", "mye": "姆耶内语", "myv": "厄尔兹亚语", "mzn": "马赞德兰语", "na": "瑙鲁语", "nan": "闽南语", "nap": "那不勒斯语", "naq": "纳马语", "nb": "书面挪威语", "nd": "北恩德贝勒语", "nds": "低地德语", "nds-NL": "低萨克森语", "ne": "尼泊尔语", "new": "尼瓦尔语", "ng": "恩东加语", "nia": "尼亚斯语", "niu": "纽埃语", "nl": "荷兰语", "nl-BE": "弗拉芒语", "nmg": "夸西奥语", "nn": "挪威尼诺斯克语", "nnh": "恩甘澎语", "no": "挪威语", "nog": "诺盖语", "non": "古诺尔斯语", "nqo": "西非书面文字", "nr": "南恩德贝勒语", "nso": "北索托语", "nus": "努埃尔语", "nv": "纳瓦霍语", "nwc": "古典尼瓦尔语", "ny": "齐切瓦语", "nym": "尼扬韦齐语", "nyn": "尼昂科勒语", "nyo": "尼奥罗语", "nzi": "恩济马语", "oc": "奥克语", "oj": "奥吉布瓦语", "om": "奥罗莫语", "or": "奥里亚语", "os": "奥塞梯语", "osa": "奥塞治语", "ota": "奥斯曼土耳其语", "pa": "旁遮普语", "pag": "邦阿西南语", "pal": "巴拉维语", "pam": "邦板牙语", "pap": "帕皮阿门托语", "pau": "帕劳语", "pcm": "尼日利亚皮钦语", "peo": "古波斯语", "phn": "腓尼基语", "pi": "巴利语", "pl": "波兰语", "pon": "波纳佩语", "prg": "普鲁士语", "pro": "古普罗文斯语", "ps": "普什图语", "pt": "葡萄牙语", "pt-BR": "巴西葡萄牙语", "pt-PT": "欧洲葡萄牙语", "qu": "克丘亚语", "quc": "基切语", "raj": "拉贾斯坦语", "rap": "拉帕努伊语", "rar": "拉罗汤加语", "rm": "罗曼什语", "rn": "隆迪语", "ro": "罗马尼亚语", "ro-MD": "摩尔多瓦语", "rof": "兰博语", "rom": "吉普赛语", "root": "根语言", "ru": "俄语", "rup": "阿罗马尼亚语", "rw": "卢旺达语", "rwk": "罗瓦语", "sa": "梵语", "sad": "桑达韦语", "sah": "萨哈语", "sam": "萨马利亚阿拉姆语", "saq": "桑布鲁语", "sas": "萨萨克文", "sat": "桑塔利语", "sba": "甘拜语", "sbp": "桑古语", "sc": "萨丁语", "scn": "西西里语", "sco": "苏格兰语", "sd": "信德语", "sdh": "南库尔德语", "se": "北方萨米语", "see": "塞内卡语", "seh": "塞纳语", "sel": "塞尔库普语", "ses": "东桑海语", "sg": "桑戈语", "sga": "古爱尔兰语", "sh": "塞尔维亚-克罗地亚语", "shi": "希尔哈语", "shn": "掸语", "shu": "乍得阿拉伯语", "si": "僧伽罗语", "sid": "悉达摩语", "sk": "斯洛伐克语", "sl": "斯洛文尼亚语", "sm": "萨摩亚语", "sma": "南萨米语", "smj": "吕勒萨米语", "smn": "伊纳里萨米语", "sms": "斯科特萨米语", "sn": "绍纳语", "snk": "索宁克语", "so": "索马里语", "sog": "粟特语", "sq": "阿尔巴尼亚语", "sr": "塞尔维亚语", "srn": "苏里南汤加语", "srr": "塞雷尔语", "ss": "斯瓦蒂语", "ssy": "萨霍语", "st": "南索托语", "su": "巽他语", "suk": "苏库马语", "sus": "苏苏语", "sux": "苏美尔语", "sv": "瑞典语", "sw": "斯瓦希里语", "sw-CD": "刚果斯瓦希里语", "swb": "科摩罗语", "syc": "古典叙利亚语", "syr": "叙利亚语", "ta": "泰米尔语", "te": "泰卢固语", "tem": "泰姆奈语", "teo": "特索语", "ter": "特伦诺语", "tet": "德顿语", "tg": "塔吉克语", "th": "泰语", "ti": "提格利尼亚语", "tig": "提格雷语", "tiv": "蒂夫语", "tk": "土库曼语", "tkl": "托克劳语", "tl": "他加禄语", "tlh": "克林贡语", "tli": "特林吉特语", "tmh": "塔马奇克语", "tn": "茨瓦纳语", "to": "汤加语", "tog": "尼亚萨汤加语", "tpi": "托克皮辛语", "tr": "土耳其语", "trv": "赛德克语", "ts": "聪加语", "tsi": "钦西安语", "tt": "鞑靼语", "tum": "通布卡语", "tvl": "图瓦卢语", "tw": "契维语", "twq": "北桑海语", "ty": "塔希提语", "tyv": "图瓦语", "tzm": "塔马齐格特语", "udm": "乌德穆尔特语", "ug": "维吾尔语", "uga": "乌加里特语", "uk": "乌克兰语", "umb": "翁本杜语", "ur": "乌尔都语", "uz": "乌兹别克语", "vai": "瓦伊语", "ve": "文达语", "vep": "维普森语", "vi": "越南语", "vo": "沃拉普克语", "vot": "沃提克语", "vun": "温旧语", "wa": "瓦隆语", "wae": "瓦尔瑟语", "wal": "瓦拉莫语", "war": "瓦瑞语", "was": "瓦绍语", "wbp": "瓦尔皮瑞语", "wo": "沃洛夫语", "wuu": "吴语", "xal": "卡尔梅克语", "xh": "科萨语", "xog": "索加语", "yao": "瑶族语", "yap": "雅浦语", "yav": "洋卞语", "ybb": "耶姆巴语", "yi": "意第绪语", "yo": "约鲁巴语", "yue": "粤语", "za": "壮语", "zap": "萨波蒂克语", "zbl": "布里斯符号", "zen": "泽纳加语", "zgh": "标准摩洛哥塔马塞特语", "zh": "中文", "zh-Hans": "简体中文", "zh-Hant": "繁体中文", "zu": "祖鲁语", "zun": "祖尼语", "zza": "扎扎语"}}, - "zh-CN": {"rtl": false, "languageNames": {"aa": "阿法尔语", "ab": "阿布哈西亚语", "ace": "亚齐语", "ach": "阿乔利语", "ada": "阿当梅语", "ady": "阿迪格语", "ae": "阿维斯塔语", "af": "南非荷兰语", "afh": "阿弗里希利语", "agq": "亚罕语", "ain": "阿伊努语", "ak": "阿肯语", "akk": "阿卡德语", "ale": "阿留申语", "alt": "南阿尔泰语", "am": "阿姆哈拉语", "an": "阿拉贡语", "ang": "古英语", "anp": "昂加语", "ar": "阿拉伯语", "ar-001": "现代标准阿拉伯语", "arc": "阿拉米语", "arn": "马普切语", "arp": "阿拉帕霍语", "ars": "纳吉迪阿拉伯语", "arw": "阿拉瓦克语", "as": "阿萨姆语", "asa": "帕雷语", "ast": "阿斯图里亚斯语", "av": "阿瓦尔语", "awa": "阿瓦德语", "ay": "艾马拉语", "az": "阿塞拜疆语", "az-Arab": "南阿塞拜疆语", "ba": "巴什基尔语", "bal": "俾路支语", "ban": "巴厘语", "bas": "巴萨语", "bax": "巴姆穆语", "bbj": "戈马拉语", "be": "白俄罗斯语", "bej": "贝沙语", "bem": "本巴语", "bez": "贝纳语", "bfd": "巴非特语", "bg": "保加利亚语", "bgn": "西俾路支语", "bho": "博杰普尔语", "bi": "比斯拉马语", "bik": "比科尔语", "bin": "比尼语", "bkm": "科姆语", "bla": "西克西卡语", "bm": "班巴拉语", "bn": "孟加拉语", "bo": "藏语", "br": "布列塔尼语", "bra": "布拉杰语", "brx": "博多语", "bs": "波斯尼亚语", "bss": "阿库色语", "bua": "布里亚特语", "bug": "布吉语", "bum": "布鲁语", "byn": "比林语", "byv": "梅敦巴语", "ca": "加泰罗尼亚语", "cad": "卡多语", "car": "加勒比语", "cay": "卡尤加语", "cch": "阿灿语", "ccp": "查克玛语", "ce": "车臣语", "ceb": "宿务语", "cgg": "奇加语", "ch": "查莫罗语", "chb": "奇布查语", "chg": "察合台语", "chk": "楚克语", "chm": "马里语", "chn": "奇努克混合语", "cho": "乔克托语", "chp": "奇佩维安语", "chr": "切罗基语", "chy": "夏延语", "ckb": "中库尔德语", "co": "科西嘉语", "cop": "科普特语", "cr": "克里族语", "crh": "克里米亚土耳其语", "crs": "塞舌尔克里奥尔语", "cs": "捷克语", "csb": "卡舒比语", "cu": "教会斯拉夫语", "cv": "楚瓦什语", "cy": "威尔士语", "da": "丹麦语", "dak": "达科他语", "dar": "达尔格瓦语", "dav": "台塔语", "de": "德语", "de-AT": "奥地利德语", "de-CH": "瑞士高地德语", "del": "特拉华语", "den": "史拉维语", "dgr": "多格里布语", "din": "丁卡语", "dje": "哲尔马语", "doi": "多格拉语", "dsb": "下索布语", "dua": "都阿拉语", "dum": "中古荷兰语", "dv": "迪维希语", "dyo": "朱拉语", "dyu": "迪尤拉语", "dz": "宗卡语", "dzg": "达扎葛语", "ebu": "恩布语", "ee": "埃维语", "efi": "埃菲克语", "egy": "古埃及语", "eka": "艾卡朱克语", "el": "希腊语", "elx": "埃兰语", "en": "英语", "en-AU": "澳大利亚英语", "en-CA": "加拿大英语", "en-GB": "英国英语", "en-US": "美国英语", "enm": "中古英语", "eo": "世界语", "es": "西班牙语", "es-419": "拉丁美洲西班牙语", "es-ES": "欧洲西班牙语", "es-MX": "墨西哥西班牙语", "et": "爱沙尼亚语", "eu": "巴斯克语", "ewo": "旺杜语", "fa": "波斯语", "fan": "芳格语", "fat": "芳蒂语", "ff": "富拉语", "fi": "芬兰语", "fil": "菲律宾语", "fj": "斐济语", "fo": "法罗语", "fon": "丰语", "fr": "法语", "fr-CA": "加拿大法语", "fr-CH": "瑞士法语", "frc": "卡真法语", "frm": "中古法语", "fro": "古法语", "frr": "北弗里西亚语", "frs": "东弗里西亚语", "fur": "弗留利语", "fy": "西弗里西亚语", "ga": "爱尔兰语", "gaa": "加族语", "gag": "加告兹语", "gan": "赣语", "gay": "迦约语", "gba": "格巴亚语", "gd": "苏格兰盖尔语", "gez": "吉兹语", "gil": "吉尔伯特语", "gl": "加利西亚语", "gmh": "中古高地德语", "gn": "瓜拉尼语", "goh": "古高地德语", "gon": "冈德语", "gor": "哥伦打洛语", "got": "哥特语", "grb": "格列博语", "grc": "古希腊语", "gsw": "瑞士德语", "gu": "古吉拉特语", "guz": "古西语", "gv": "马恩语", "gwi": "哥威迅语", "ha": "豪萨语", "hai": "海达语", "hak": "客家语", "haw": "夏威夷语", "he": "希伯来语", "hi": "印地语", "hil": "希利盖农语", "hit": "赫梯语", "hmn": "苗语", "ho": "希里莫图语", "hr": "克罗地亚语", "hsb": "上索布语", "hsn": "湘语", "ht": "海地克里奥尔语", "hu": "匈牙利语", "hup": "胡帕语", "hy": "亚美尼亚语", "hz": "赫雷罗语", "ia": "国际语", "iba": "伊班语", "ibb": "伊比比奥语", "id": "印度尼西亚语", "ie": "国际文字(E)", "ig": "伊博语", "ii": "四川彝语", "ik": "伊努皮克语", "ilo": "伊洛卡诺语", "inh": "印古什语", "io": "伊多语", "is": "冰岛语", "it": "意大利语", "iu": "因纽特语", "ja": "日语", "jbo": "逻辑语", "jgo": "恩艮巴语", "jmc": "马切姆语", "jpr": "犹太波斯语", "jrb": "犹太阿拉伯语", "jv": "爪哇语", "ka": "格鲁吉亚语", "kaa": "卡拉卡尔帕克语", "kab": "卡拜尔语", "kac": "克钦语", "kaj": "卡捷语", "kam": "卡姆巴语", "kaw": "卡威语", "kbd": "卡巴尔德语", "kbl": "加涅姆布语", "kcg": "卡塔布语", "kde": "马孔德语", "kea": "卡布佛得鲁语", "kfo": "克罗语", "kg": "刚果语", "kha": "卡西语", "kho": "和田语", "khq": "西桑海语", "ki": "吉库尤语", "kj": "宽亚玛语", "kk": "哈萨克语", "kkj": "卡库语", "kl": "格陵兰语", "kln": "卡伦金语", "km": "高棉语", "kmb": "金邦杜语", "kn": "卡纳达语", "ko": "韩语", "koi": "科米-彼尔米亚克语", "kok": "孔卡尼语", "kos": "科斯拉伊语", "kpe": "克佩列语", "kr": "卡努里语", "krc": "卡拉恰伊巴尔卡尔语", "krl": "卡累利阿语", "kru": "库鲁克语", "ks": "克什米尔语", "ksb": "香巴拉语", "ksf": "巴菲亚语", "ksh": "科隆语", "ku": "库尔德语", "kum": "库梅克语", "kut": "库特奈语", "kv": "科米语", "kw": "康沃尔语", "ky": "柯尔克孜语", "la": "拉丁语", "lad": "拉迪诺语", "lag": "朗吉语", "lah": "印度-雅利安语", "lam": "兰巴语", "lb": "卢森堡语", "lez": "列兹金语", "lg": "卢干达语", "li": "林堡语", "lkt": "拉科塔语", "ln": "林加拉语", "lo": "老挝语", "lol": "蒙戈语", "lou": "路易斯安那克里奥尔语", "loz": "洛齐语", "lrc": "北卢尔语", "lt": "立陶宛语", "lu": "鲁巴加丹加语", "lua": "卢巴-卢拉语", "lui": "卢伊塞诺语", "lun": "隆达语", "luo": "卢奥语", "lus": "米佐语", "luy": "卢雅语", "lv": "拉脱维亚语", "mad": "马都拉语", "maf": "马法语", "mag": "摩揭陀语", "mai": "迈蒂利语", "mak": "望加锡语", "man": "曼丁哥语", "mas": "马赛语", "mde": "马坝语", "mdf": "莫克沙语", "mdr": "曼达尔语", "men": "门德语", "mer": "梅鲁语", "mfe": "毛里求斯克里奥尔语", "mg": "马拉加斯语", "mga": "中古爱尔兰语", "mgh": "马库阿语", "mgo": "梅塔语", "mh": "马绍尔语", "mi": "毛利语", "mic": "密克马克语", "min": "米南佳保语", "mk": "马其顿语", "ml": "马拉雅拉姆语", "mn": "蒙古语", "mnc": "满语", "mni": "曼尼普尔语", "moh": "摩霍克语", "mos": "莫西语", "mr": "马拉地语", "ms": "马来语", "mt": "马耳他语", "mua": "蒙当语", "mus": "克里克语", "mwl": "米兰德斯语", "mwr": "马尔瓦里语", "my": "缅甸语", "mye": "姆耶内语", "myv": "厄尔兹亚语", "mzn": "马赞德兰语", "na": "瑙鲁语", "nan": "闽南语", "nap": "那不勒斯语", "naq": "纳马语", "nb": "书面挪威语", "nd": "北恩德贝勒语", "nds": "低地德语", "nds-NL": "低萨克森语", "ne": "尼泊尔语", "new": "尼瓦尔语", "ng": "恩东加语", "nia": "尼亚斯语", "niu": "纽埃语", "nl": "荷兰语", "nl-BE": "弗拉芒语", "nmg": "夸西奥语", "nn": "挪威尼诺斯克语", "nnh": "恩甘澎语", "no": "挪威语", "nog": "诺盖语", "non": "古诺尔斯语", "nqo": "西非书面文字", "nr": "南恩德贝勒语", "nso": "北索托语", "nus": "努埃尔语", "nv": "纳瓦霍语", "nwc": "古典尼瓦尔语", "ny": "齐切瓦语", "nym": "尼扬韦齐语", "nyn": "尼昂科勒语", "nyo": "尼奥罗语", "nzi": "恩济马语", "oc": "奥克语", "oj": "奥吉布瓦语", "om": "奥罗莫语", "or": "奥里亚语", "os": "奥塞梯语", "osa": "奥塞治语", "ota": "奥斯曼土耳其语", "pa": "旁遮普语", "pag": "邦阿西南语", "pal": "巴拉维语", "pam": "邦板牙语", "pap": "帕皮阿门托语", "pau": "帕劳语", "pcm": "尼日利亚皮钦语", "peo": "古波斯语", "phn": "腓尼基语", "pi": "巴利语", "pl": "波兰语", "pon": "波纳佩语", "prg": "普鲁士语", "pro": "古普罗文斯语", "ps": "普什图语", "pt": "葡萄牙语", "pt-BR": "巴西葡萄牙语", "pt-PT": "欧洲葡萄牙语", "qu": "克丘亚语", "quc": "基切语", "raj": "拉贾斯坦语", "rap": "拉帕努伊语", "rar": "拉罗汤加语", "rm": "罗曼什语", "rn": "隆迪语", "ro": "罗马尼亚语", "ro-MD": "摩尔多瓦语", "rof": "兰博语", "rom": "吉普赛语", "root": "根语言", "ru": "俄语", "rup": "阿罗马尼亚语", "rw": "卢旺达语", "rwk": "罗瓦语", "sa": "梵语", "sad": "桑达韦语", "sah": "萨哈语", "sam": "萨马利亚阿拉姆语", "saq": "桑布鲁语", "sas": "萨萨克文", "sat": "桑塔利语", "sba": "甘拜语", "sbp": "桑古语", "sc": "萨丁语", "scn": "西西里语", "sco": "苏格兰语", "sd": "信德语", "sdh": "南库尔德语", "se": "北方萨米语", "see": "塞内卡语", "seh": "塞纳语", "sel": "塞尔库普语", "ses": "东桑海语", "sg": "桑戈语", "sga": "古爱尔兰语", "sh": "塞尔维亚-克罗地亚语", "shi": "希尔哈语", "shn": "掸语", "shu": "乍得阿拉伯语", "si": "僧伽罗语", "sid": "悉达摩语", "sk": "斯洛伐克语", "sl": "斯洛文尼亚语", "sm": "萨摩亚语", "sma": "南萨米语", "smj": "吕勒萨米语", "smn": "伊纳里萨米语", "sms": "斯科特萨米语", "sn": "绍纳语", "snk": "索宁克语", "so": "索马里语", "sog": "粟特语", "sq": "阿尔巴尼亚语", "sr": "塞尔维亚语", "srn": "苏里南汤加语", "srr": "塞雷尔语", "ss": "斯瓦蒂语", "ssy": "萨霍语", "st": "南索托语", "su": "巽他语", "suk": "苏库马语", "sus": "苏苏语", "sux": "苏美尔语", "sv": "瑞典语", "sw": "斯瓦希里语", "sw-CD": "刚果斯瓦希里语", "swb": "科摩罗语", "syc": "古典叙利亚语", "syr": "叙利亚语", "ta": "泰米尔语", "te": "泰卢固语", "tem": "泰姆奈语", "teo": "特索语", "ter": "特伦诺语", "tet": "德顿语", "tg": "塔吉克语", "th": "泰语", "ti": "提格利尼亚语", "tig": "提格雷语", "tiv": "蒂夫语", "tk": "土库曼语", "tkl": "托克劳语", "tl": "他加禄语", "tlh": "克林贡语", "tli": "特林吉特语", "tmh": "塔马奇克语", "tn": "茨瓦纳语", "to": "汤加语", "tog": "尼亚萨汤加语", "tpi": "托克皮辛语", "tr": "土耳其语", "trv": "赛德克语", "ts": "聪加语", "tsi": "钦西安语", "tt": "鞑靼语", "tum": "通布卡语", "tvl": "图瓦卢语", "tw": "契维语", "twq": "北桑海语", "ty": "塔希提语", "tyv": "图瓦语", "tzm": "塔马齐格特语", "udm": "乌德穆尔特语", "ug": "维吾尔语", "uga": "乌加里特语", "uk": "乌克兰语", "umb": "翁本杜语", "ur": "乌尔都语", "uz": "乌兹别克语", "vai": "瓦伊语", "ve": "文达语", "vep": "维普森语", "vi": "越南语", "vo": "沃拉普克语", "vot": "沃提克语", "vun": "温旧语", "wa": "瓦隆语", "wae": "瓦尔瑟语", "wal": "瓦拉莫语", "war": "瓦瑞语", "was": "瓦绍语", "wbp": "瓦尔皮瑞语", "wo": "沃洛夫语", "wuu": "吴语", "xal": "卡尔梅克语", "xh": "科萨语", "xog": "索加语", "yao": "瑶族语", "yap": "雅浦语", "yav": "洋卞语", "ybb": "耶姆巴语", "yi": "意第绪语", "yo": "约鲁巴语", "yue": "粤语", "za": "壮语", "zap": "萨波蒂克语", "zbl": "布里斯符号", "zen": "泽纳加语", "zgh": "标准摩洛哥塔马塞特语", "zh": "中文", "zh-Hans": "简体中文", "zh-Hant": "繁体中文", "zu": "祖鲁语", "zun": "祖尼语", "zza": "扎扎语"}}, - "zh-HK": {"rtl": false, "languageNames": {"aa": "阿法爾文", "ab": "阿布哈茲文", "ace": "亞齊文", "ach": "阿僑利文", "ada": "阿當莫文", "ady": "阿迪各文", "ae": "阿維斯塔文", "aeb": "突尼斯阿拉伯文", "af": "南非荷蘭文", "afh": "阿弗里希利文", "agq": "亞罕文", "ain": "阿伊努文", "ak": "阿坎文", "akk": "阿卡德文", "akz": "阿拉巴馬文", "ale": "阿留申文", "aln": "蓋格阿爾巴尼亞文", "alt": "南阿爾泰文", "am": "阿姆哈拉文", "an": "阿拉貢文", "ang": "古英文", "anp": "昂加文", "ar": "阿拉伯文", "ar-001": "現代標準阿拉伯文", "arc": "阿拉米文", "arn": "馬普切文", "aro": "阿拉奧納文", "arp": "阿拉帕霍文", "arq": "阿爾及利亞阿拉伯文", "ars": "納吉迪阿拉伯文", "arw": "阿拉瓦克文", "ary": "摩洛哥阿拉伯文", "arz": "埃及阿拉伯文", "as": "阿薩姆文", "asa": "阿蘇文", "ase": "美國手語", "ast": "阿斯圖里亞文", "av": "阿瓦爾文", "avk": "科塔瓦文", "awa": "阿瓦文", "ay": "艾馬拉文", "az": "阿塞拜疆文", "az-Arab": "南阿塞拜疆文", "ba": "巴什基爾文", "bal": "俾路支文", "ban": "峇里文", "bar": "巴伐利亞文", "bas": "巴薩文", "bax": "巴姆穆文", "bbc": "巴塔克托巴文", "bbj": "戈馬拉文", "be": "白俄羅斯文", "bej": "貝扎文", "bem": "別姆巴文", "bew": "貝塔維文", "bez": "貝納文", "bfd": "富特文", "bfq": "巴達加文", "bg": "保加利亞文", "bgn": "西俾路支文", "bho": "博傑普爾文", "bi": "比斯拉馬文", "bik": "比科爾文", "bin": "比尼文", "bjn": "班亞爾文", "bkm": "康姆文", "bla": "錫克錫卡文", "bm": "班巴拉文", "bn": "孟加拉文", "bo": "藏文", "bpy": "比什奴普萊利亞文", "bqi": "巴赫蒂亞里文", "br": "布里多尼文", "bra": "布拉杰文", "brh": "布拉維文", "brx": "博多文", "bs": "波斯尼亞文", "bss": "阿庫色文", "bua": "布里阿特文", "bug": "布吉斯文", "bum": "布魯文", "byn": "比林文", "byv": "梅敦巴文", "ca": "加泰隆尼亞文", "cad": "卡多文", "car": "加勒比文", "cay": "卡尤加文", "cch": "阿燦文", "ccp": "查克馬文", "ce": "車臣文", "ceb": "宿霧文", "cgg": "奇加文", "ch": "查莫洛文", "chb": "奇布查文", "chg": "查加文", "chk": "處奇斯文", "chm": "馬里文", "chn": "契奴克文", "cho": "喬克托文", "chp": "奇佩瓦揚文", "chr": "柴羅基文", "chy": "沙伊安文", "ckb": "中庫德文", "co": "科西嘉文", "cop": "科普特文", "cps": "卡皮茲文", "cr": "克里文", "crh": "克里米亞韃靼文", "crs": "塞舌爾克里奧爾法文", "cs": "捷克文", "csb": "卡舒布文", "cu": "宗教斯拉夫文", "cv": "楚瓦什文", "cy": "威爾斯文", "da": "丹麥文", "dak": "達科他文", "dar": "達爾格瓦文", "dav": "台塔文", "de": "德文", "de-AT": "奧地利德文", "de-CH": "瑞士德語", "del": "德拉瓦文", "den": "斯拉夫文", "dgr": "多格里布文", "din": "丁卡文", "dje": "扎爾馬文", "doi": "多格來文", "dsb": "下索布文", "dtp": "中部杜順文", "dua": "杜亞拉文", "dum": "中古荷蘭文", "dv": "迪維西文", "dyo": "朱拉文", "dyu": "迪尤拉文", "dz": "宗卡文", "dzg": "達薩文", "ebu": "恩布文", "ee": "埃維文", "efi": "埃菲克文", "egl": "埃米利安文", "egy": "古埃及文", "eka": "艾卡朱克文", "el": "希臘文", "elx": "埃蘭文", "en": "英文", "en-AU": "澳洲英文", "en-CA": "加拿大英文", "en-GB": "英國英文", "en-US": "美國英文", "enm": "中古英文", "eo": "世界語", "es": "西班牙文", "es-419": "拉丁美洲西班牙文", "es-ES": "歐洲西班牙文", "es-MX": "墨西哥西班牙文", "esu": "中尤皮克文", "et": "愛沙尼亞文", "eu": "巴斯克文", "ewo": "依汪都文", "ext": "埃斯特雷馬杜拉文", "fa": "波斯文", "fan": "芳族文", "fat": "芳蒂文", "ff": "富拉文", "fi": "芬蘭文", "fil": "菲律賓文", "fit": "托爾訥芬蘭文", "fj": "斐濟文", "fo": "法羅文", "fon": "豐文", "fr": "法文", "fr-CA": "加拿大法文", "fr-CH": "瑞士法文", "frc": "卡真法文", "frm": "中古法文", "fro": "古法文", "frp": "法蘭克-普羅旺斯文", "frr": "北弗里西亞文", "frs": "東弗里西亞文", "fur": "弗留利文", "fy": "西弗里西亞文", "ga": "愛爾蘭文", "gaa": "加族文", "gag": "加告茲文", "gan": "贛語", "gay": "加約文", "gba": "葛巴亞文", "gbz": "索羅亞斯德教達里文", "gd": "蘇格蘭蓋爾文", "gez": "吉茲文", "gil": "吉爾伯特文", "gl": "加里西亞文", "glk": "吉拉基文", "gmh": "中古高地德文", "gn": "瓜拉尼文", "goh": "古高地德文", "gom": "孔卡尼文", "gon": "岡德文", "gor": "科隆達羅文", "got": "哥德文", "grb": "格列博文", "grc": "古希臘文", "gsw": "瑞士德文", "gu": "古吉拉特文", "guc": "瓦尤文", "gur": "弗拉弗拉文", "guz": "古西文", "gv": "曼島文", "gwi": "圭契文", "ha": "豪撒文", "hai": "海達文", "hak": "客家話", "haw": "夏威夷文", "he": "希伯來文", "hi": "印度文", "hif": "斐濟印地文", "hil": "希利蓋農文", "hit": "赫梯文", "hmn": "苗語", "ho": "西里莫圖土文", "hr": "克羅地亞文", "hsb": "上索布文", "hsn": "湘語", "ht": "海地文", "hu": "匈牙利文", "hup": "胡帕文", "hy": "亞美尼亞文", "hz": "赫雷羅文", "ia": "國際文", "iba": "伊班文", "ibb": "伊比比奧文", "id": "印尼文", "ie": "國際文(E)", "ig": "伊布文", "ii": "四川彝文", "ik": "依奴皮維克文", "ilo": "伊洛闊文", "inh": "印古什文", "io": "伊多文", "is": "冰島文", "it": "意大利文", "iu": "因紐特文", "izh": "英格里亞文", "ja": "日文", "jam": "牙買加克里奧爾英文", "jbo": "邏輯文", "jgo": "恩格姆巴文", "jmc": "馬恰美文", "jpr": "猶太波斯文", "jrb": "猶太阿拉伯文", "jut": "日德蘭文", "jv": "爪哇文", "ka": "格魯吉亞文", "kaa": "卡拉卡爾帕克文", "kab": "卡比爾文", "kac": "卡琴文", "kaj": "卡捷文", "kam": "卡姆巴文", "kaw": "卡威文", "kbd": "卡巴爾達文", "kbl": "卡念布文", "kcg": "卡塔布文", "kde": "馬孔德文", "kea": "卡布威爾第文", "ken": "肯揚文", "kfo": "科羅文", "kg": "剛果文", "kgp": "坎剛文", "kha": "卡西文", "kho": "和闐文", "khq": "西桑海文", "khw": "科瓦文", "ki": "吉庫尤文", "kiu": "扎扎其文", "kj": "廣亞馬文", "kk": "哈薩克文", "kkj": "卡庫文", "kl": "格陵蘭文", "kln": "卡倫金文", "km": "高棉文", "kmb": "金邦杜文", "kn": "坎納達文", "ko": "韓文", "koi": "科米-彼爾米亞克文", "kok": "貢根文", "kos": "科斯雷恩文", "kpe": "克佩列文", "kr": "卡努里文", "krc": "卡拉柴-包爾卡爾文", "kri": "克裡奧爾文", "krj": "基那來阿文", "krl": "卡累利阿文", "kru": "庫魯科文", "ks": "喀什米爾文", "ksb": "尚巴拉文", "ksf": "巴菲亞文", "ksh": "科隆文", "ku": "庫德文", "kum": "庫密克文", "kut": "庫特奈文", "kv": "科米文", "kw": "康瓦耳文", "ky": "吉爾吉斯文", "la": "拉丁文", "lad": "拉迪諾文", "lag": "朗吉文", "lah": "拉亨達文", "lam": "蘭巴文", "lb": "盧森堡文", "lez": "列茲干文", "lfn": "新共同語言", "lg": "干達文", "li": "林堡文", "lij": "利古里亞文", "liv": "利伏尼亞文", "lkt": "拉科塔文", "lmo": "倫巴底文", "ln": "林加拉文", "lo": "老撾文", "lol": "芒戈文", "lou": "路易斯安那克里奧爾文", "loz": "洛齊文", "lrc": "北盧爾文", "lt": "立陶宛文", "ltg": "拉特加萊文", "lu": "魯巴加丹加文", "lua": "魯巴魯魯亞文", "lui": "路易塞諾文", "lun": "盧恩達文", "luo": "盧歐文", "lus": "米佐文", "luy": "盧雅文", "lv": "拉脫維亞文", "lzh": "文言文", "lzz": "拉茲文", "mad": "馬都拉文", "maf": "馬法文", "mag": "馬加伊文", "mai": "邁蒂利文", "mak": "望加錫文", "man": "曼丁哥文", "mas": "馬賽文", "mde": "馬巴文", "mdf": "莫克沙文", "mdr": "曼達文", "men": "門德文", "mer": "梅魯文", "mfe": "毛里裘斯克里奧爾文", "mg": "馬拉加斯文", "mga": "中古愛爾蘭文", "mgh": "馬夸文", "mgo": "美塔文", "mh": "馬紹爾文", "mi": "毛利文", "mic": "米克馬克文", "min": "米南卡堡文", "mk": "馬其頓文", "ml": "馬拉雅拉姆文", "mn": "蒙古文", "mnc": "滿族文", "mni": "曼尼普爾文", "moh": "莫霍克文", "mos": "莫西文", "mr": "馬拉地文", "mrj": "西馬里文", "ms": "馬來文", "mt": "馬耳他文", "mua": "蒙當文", "mus": "克里克文", "mwl": "米蘭德斯文", "mwr": "馬瓦里文", "mwv": "明打威文", "my": "緬甸文", "mye": "姆耶內文", "myv": "厄爾茲亞文", "mzn": "馬贊德蘭文", "na": "諾魯文", "nan": "閩南語", "nap": "拿波里文", "naq": "納馬文", "nb": "巴克摩挪威文", "nd": "北地畢列文", "nds": "低地德文", "nds-NL": "低地薩克遜文", "ne": "尼泊爾文", "new": "尼瓦爾文", "ng": "恩東加文", "nia": "尼亞斯文", "niu": "紐埃文", "njo": "阿沃那加文", "nl": "荷蘭文", "nl-BE": "比利時荷蘭文", "nmg": "夸西奧文", "nn": "耐諾斯克挪威文", "nnh": "恩甘澎文", "no": "挪威文", "nog": "諾蓋文", "non": "古諾爾斯文", "nov": "諾維亞文", "nqo": "西非書面語言(N’ko)", "nr": "南地畢列文", "nso": "北索托文", "nus": "努埃爾文", "nv": "納瓦霍文", "nwc": "古尼瓦爾文", "ny": "尼揚賈文", "nym": "尼揚韋齊文", "nyn": "尼揚科萊文", "nyo": "尼奧囉文", "nzi": "尼茲馬文", "oc": "奧克西坦文", "oj": "奧杰布瓦文", "om": "奧羅莫文", "or": "奧里雅文", "os": "奧塞提文", "osa": "歐塞奇文", "ota": "鄂圖曼土耳其文", "pa": "旁遮普文", "pag": "潘加辛文", "pal": "巴列維文", "pam": "潘帕嘉文", "pap": "帕皮阿門托文", "pau": "帛琉文", "pcd": "庇卡底文", "pcm": "尼日利亞皮欽文", "pdc": "賓夕法尼亞德文", "pdt": "門諾低地德文", "peo": "古波斯文", "pfl": "普法爾茨德文", "phn": "腓尼基文", "pi": "巴利文", "pl": "波蘭文", "pms": "皮埃蒙特文", "pnt": "旁狄希臘文", "pon": "波那貝文", "prg": "普魯士文", "pro": "古普羅旺斯文", "ps": "普什圖文", "pt": "葡萄牙文", "pt-BR": "巴西葡萄牙文", "pt-PT": "歐洲葡萄牙文", "qu": "蓋楚瓦文", "quc": "基切文", "qug": "欽博拉索海蘭蓋丘亞文", "raj": "拉賈斯坦諸文", "rap": "復活島文", "rar": "拉羅通加文", "rgn": "羅馬格諾里文", "rif": "里菲亞諾文", "rm": "羅曼斯文", "rn": "隆迪文", "ro": "羅馬尼亞文", "ro-MD": "摩爾多瓦羅馬尼亞文", "rof": "蘭博文", "rom": "吉普賽文", "root": "根語言", "rtm": "羅圖馬島文", "ru": "俄文", "rue": "盧森尼亞文", "rug": "羅維阿納文", "rup": "阿羅馬尼亞語", "rw": "盧旺達文", "rwk": "羅瓦文", "sa": "梵文", "sad": "桑達韋文", "sah": "雅庫特文", "sam": "薩瑪利亞阿拉姆文", "saq": "薩布魯文", "sas": "撒撒克文", "sat": "桑塔利文", "saz": "索拉什特拉文", "sba": "甘拜文", "sbp": "桑古文", "sc": "撒丁文", "scn": "西西里文", "sco": "蘇格蘭文", "sd": "信德文", "sdc": "薩丁尼亞-薩薩里文", "sdh": "南庫德文", "se": "北薩米文", "see": "塞訥卡文", "seh": "賽納文", "sei": "瑟里文", "sel": "塞爾庫普文", "ses": "東桑海文", "sg": "桑戈文", "sga": "古愛爾蘭文", "sgs": "薩莫吉希亞文", "sh": "塞爾維亞克羅埃西亞文", "shi": "希爾哈文", "shn": "撣文", "shu": "阿拉伯文(查德)", "si": "僧伽羅文", "sid": "希達摩文", "sk": "斯洛伐克文", "sl": "斯洛文尼亞文", "sli": "下西利西亞文", "sly": "塞拉亞文", "sm": "薩摩亞文", "sma": "南薩米文", "smj": "魯勒薩米文", "smn": "伊納里薩米文", "sms": "斯科特薩米文", "sn": "修納文", "snk": "索尼基文", "so": "索馬里文", "sog": "索格底亞納文", "sq": "阿爾巴尼亞文", "sr": "塞爾維亞文", "srn": "蘇拉南東墎文", "srr": "塞雷爾文", "ss": "斯瓦特文", "ssy": "薩霍文", "st": "塞索托文", "stq": "沙特菲士蘭文", "su": "巽他文", "suk": "蘇庫馬文", "sus": "蘇蘇文", "sux": "蘇美文", "sv": "瑞典文", "sw": "史瓦希里文", "sw-CD": "剛果史瓦希里文", "swb": "葛摩文", "syc": "古敘利亞文", "syr": "敍利亞文", "szl": "西利西亞文", "ta": "泰米爾文", "tcy": "圖盧文", "te": "泰盧固文", "tem": "提姆文", "teo": "特索文", "ter": "泰雷諾文", "tet": "泰頓文", "tg": "塔吉克文", "th": "泰文", "ti": "提格利尼亞文", "tig": "蒂格雷文", "tiv": "提夫文", "tk": "土庫曼文", "tkl": "托克勞文", "tkr": "查庫爾文", "tl": "塔加路族文", "tlh": "克林貢文", "tli": "特林基特文", "tly": "塔里什文", "tmh": "塔馬奇克文", "tn": "突尼西亞文", "to": "湯加文", "tog": "東加文(尼亞薩)", "tpi": "托比辛文", "tr": "土耳其文", "tru": "圖羅尤文", "trv": "太魯閣文", "ts": "特松加文", "tsd": "特薩克尼恩文", "tsi": "欽西安文", "tt": "韃靼文", "ttt": "穆斯林塔特文", "tum": "圖姆布卡文", "tvl": "吐瓦魯文", "tw": "特威文", "twq": "北桑海文", "ty": "大溪地文", "tyv": "圖瓦文", "tzm": "中阿特拉斯塔馬塞特文", "udm": "烏德穆爾特文", "ug": "維吾爾文", "uga": "烏加列文", "uk": "烏克蘭文", "umb": "姆本杜文", "ur": "烏爾都文", "uz": "烏茲別克文", "vai": "瓦伊文", "ve": "溫達文", "vec": "威尼斯文", "vep": "維普森文", "vi": "越南文", "vls": "西佛蘭德文", "vmf": "美茵-法蘭克尼亞文", "vo": "沃拉普克文", "vot": "沃提克文", "vro": "佛羅文", "vun": "溫舊文", "wa": "瓦隆文", "wae": "瓦爾瑟文", "wal": "瓦拉莫文", "war": "瓦瑞文", "was": "瓦紹文", "wbp": "瓦爾皮里文", "wo": "沃洛夫文", "wuu": "吳語", "xal": "卡爾梅克文", "xh": "科薩文", "xmf": "明格列爾文", "xog": "索加文", "yao": "瑤文", "yap": "雅浦文", "yav": "洋卞文", "ybb": "耶姆巴文", "yi": "意第緒文", "yo": "約魯巴文", "yrl": "奈恩加圖文", "yue": "廣東話", "za": "壯文", "zap": "薩波特克文", "zbl": "布列斯符號", "zea": "西蘭文", "zen": "澤納加文", "zgh": "摩洛哥標準塔馬齊格特文", "zh": "中文", "zh-Hans": "簡體中文", "zh-Hant": "繁體中文", "zu": "祖魯文", "zun": "祖尼文", "zza": "扎扎文"}}, - "zh-TW": {"rtl": false, "languageNames": {"aa": "阿法尔语", "ab": "阿布哈西亚语", "ace": "亚齐语", "ach": "阿乔利语", "ada": "阿当梅语", "ady": "阿迪格语", "ae": "阿维斯塔语", "af": "南非荷兰语", "afh": "阿弗里希利语", "agq": "亚罕语", "ain": "阿伊努语", "ak": "阿肯语", "akk": "阿卡德语", "ale": "阿留申语", "alt": "南阿尔泰语", "am": "阿姆哈拉语", "an": "阿拉贡语", "ang": "古英语", "anp": "昂加语", "ar": "阿拉伯语", "ar-001": "现代标准阿拉伯语", "arc": "阿拉米语", "arn": "马普切语", "arp": "阿拉帕霍语", "ars": "纳吉迪阿拉伯语", "arw": "阿拉瓦克语", "as": "阿萨姆语", "asa": "帕雷语", "ast": "阿斯图里亚斯语", "av": "阿瓦尔语", "awa": "阿瓦德语", "ay": "艾马拉语", "az": "阿塞拜疆语", "az-Arab": "南阿塞拜疆语", "ba": "巴什基尔语", "bal": "俾路支语", "ban": "巴厘语", "bas": "巴萨语", "bax": "巴姆穆语", "bbj": "戈马拉语", "be": "白俄罗斯语", "bej": "贝沙语", "bem": "本巴语", "bez": "贝纳语", "bfd": "巴非特语", "bg": "保加利亚语", "bgn": "西俾路支语", "bho": "博杰普尔语", "bi": "比斯拉马语", "bik": "比科尔语", "bin": "比尼语", "bkm": "科姆语", "bla": "西克西卡语", "bm": "班巴拉语", "bn": "孟加拉语", "bo": "藏语", "br": "布列塔尼语", "bra": "布拉杰语", "brx": "博多语", "bs": "波斯尼亚语", "bss": "阿库色语", "bua": "布里亚特语", "bug": "布吉语", "bum": "布鲁语", "byn": "比林语", "byv": "梅敦巴语", "ca": "加泰罗尼亚语", "cad": "卡多语", "car": "加勒比语", "cay": "卡尤加语", "cch": "阿灿语", "ccp": "查克玛语", "ce": "车臣语", "ceb": "宿务语", "cgg": "奇加语", "ch": "查莫罗语", "chb": "奇布查语", "chg": "察合台语", "chk": "楚克语", "chm": "马里语", "chn": "奇努克混合语", "cho": "乔克托语", "chp": "奇佩维安语", "chr": "切罗基语", "chy": "夏延语", "ckb": "中库尔德语", "co": "科西嘉语", "cop": "科普特语", "cr": "克里族语", "crh": "克里米亚土耳其语", "crs": "塞舌尔克里奥尔语", "cs": "捷克语", "csb": "卡舒比语", "cu": "教会斯拉夫语", "cv": "楚瓦什语", "cy": "威尔士语", "da": "丹麦语", "dak": "达科他语", "dar": "达尔格瓦语", "dav": "台塔语", "de": "德语", "de-AT": "奥地利德语", "de-CH": "瑞士高地德语", "del": "特拉华语", "den": "史拉维语", "dgr": "多格里布语", "din": "丁卡语", "dje": "哲尔马语", "doi": "多格拉语", "dsb": "下索布语", "dua": "都阿拉语", "dum": "中古荷兰语", "dv": "迪维希语", "dyo": "朱拉语", "dyu": "迪尤拉语", "dz": "宗卡语", "dzg": "达扎葛语", "ebu": "恩布语", "ee": "埃维语", "efi": "埃菲克语", "egy": "古埃及语", "eka": "艾卡朱克语", "el": "希腊语", "elx": "埃兰语", "en": "英语", "en-AU": "澳大利亚英语", "en-CA": "加拿大英语", "en-GB": "英国英语", "en-US": "美国英语", "enm": "中古英语", "eo": "世界语", "es": "西班牙语", "es-419": "拉丁美洲西班牙语", "es-ES": "欧洲西班牙语", "es-MX": "墨西哥西班牙语", "et": "爱沙尼亚语", "eu": "巴斯克语", "ewo": "旺杜语", "fa": "波斯语", "fan": "芳格语", "fat": "芳蒂语", "ff": "富拉语", "fi": "芬兰语", "fil": "菲律宾语", "fj": "斐济语", "fo": "法罗语", "fon": "丰语", "fr": "法语", "fr-CA": "加拿大法语", "fr-CH": "瑞士法语", "frc": "卡真法语", "frm": "中古法语", "fro": "古法语", "frr": "北弗里西亚语", "frs": "东弗里西亚语", "fur": "弗留利语", "fy": "西弗里西亚语", "ga": "爱尔兰语", "gaa": "加族语", "gag": "加告兹语", "gan": "赣语", "gay": "迦约语", "gba": "格巴亚语", "gd": "苏格兰盖尔语", "gez": "吉兹语", "gil": "吉尔伯特语", "gl": "加利西亚语", "gmh": "中古高地德语", "gn": "瓜拉尼语", "goh": "古高地德语", "gon": "冈德语", "gor": "哥伦打洛语", "got": "哥特语", "grb": "格列博语", "grc": "古希腊语", "gsw": "瑞士德语", "gu": "古吉拉特语", "guz": "古西语", "gv": "马恩语", "gwi": "哥威迅语", "ha": "豪萨语", "hai": "海达语", "hak": "客家语", "haw": "夏威夷语", "he": "希伯来语", "hi": "印地语", "hil": "希利盖农语", "hit": "赫梯语", "hmn": "苗语", "ho": "希里莫图语", "hr": "克罗地亚语", "hsb": "上索布语", "hsn": "湘语", "ht": "海地克里奥尔语", "hu": "匈牙利语", "hup": "胡帕语", "hy": "亚美尼亚语", "hz": "赫雷罗语", "ia": "国际语", "iba": "伊班语", "ibb": "伊比比奥语", "id": "印度尼西亚语", "ie": "国际文字(E)", "ig": "伊博语", "ii": "四川彝语", "ik": "伊努皮克语", "ilo": "伊洛卡诺语", "inh": "印古什语", "io": "伊多语", "is": "冰岛语", "it": "意大利语", "iu": "因纽特语", "ja": "日语", "jbo": "逻辑语", "jgo": "恩艮巴语", "jmc": "马切姆语", "jpr": "犹太波斯语", "jrb": "犹太阿拉伯语", "jv": "爪哇语", "ka": "格鲁吉亚语", "kaa": "卡拉卡尔帕克语", "kab": "卡拜尔语", "kac": "克钦语", "kaj": "卡捷语", "kam": "卡姆巴语", "kaw": "卡威语", "kbd": "卡巴尔德语", "kbl": "加涅姆布语", "kcg": "卡塔布语", "kde": "马孔德语", "kea": "卡布佛得鲁语", "kfo": "克罗语", "kg": "刚果语", "kha": "卡西语", "kho": "和田语", "khq": "西桑海语", "ki": "吉库尤语", "kj": "宽亚玛语", "kk": "哈萨克语", "kkj": "卡库语", "kl": "格陵兰语", "kln": "卡伦金语", "km": "高棉语", "kmb": "金邦杜语", "kn": "卡纳达语", "ko": "韩语", "koi": "科米-彼尔米亚克语", "kok": "孔卡尼语", "kos": "科斯拉伊语", "kpe": "克佩列语", "kr": "卡努里语", "krc": "卡拉恰伊巴尔卡尔语", "krl": "卡累利阿语", "kru": "库鲁克语", "ks": "克什米尔语", "ksb": "香巴拉语", "ksf": "巴菲亚语", "ksh": "科隆语", "ku": "库尔德语", "kum": "库梅克语", "kut": "库特奈语", "kv": "科米语", "kw": "康沃尔语", "ky": "柯尔克孜语", "la": "拉丁语", "lad": "拉迪诺语", "lag": "朗吉语", "lah": "印度-雅利安语", "lam": "兰巴语", "lb": "卢森堡语", "lez": "列兹金语", "lg": "卢干达语", "li": "林堡语", "lkt": "拉科塔语", "ln": "林加拉语", "lo": "老挝语", "lol": "蒙戈语", "lou": "路易斯安那克里奥尔语", "loz": "洛齐语", "lrc": "北卢尔语", "lt": "立陶宛语", "lu": "鲁巴加丹加语", "lua": "卢巴-卢拉语", "lui": "卢伊塞诺语", "lun": "隆达语", "luo": "卢奥语", "lus": "米佐语", "luy": "卢雅语", "lv": "拉脱维亚语", "mad": "马都拉语", "maf": "马法语", "mag": "摩揭陀语", "mai": "迈蒂利语", "mak": "望加锡语", "man": "曼丁哥语", "mas": "马赛语", "mde": "马坝语", "mdf": "莫克沙语", "mdr": "曼达尔语", "men": "门德语", "mer": "梅鲁语", "mfe": "毛里求斯克里奥尔语", "mg": "马拉加斯语", "mga": "中古爱尔兰语", "mgh": "马库阿语", "mgo": "梅塔语", "mh": "马绍尔语", "mi": "毛利语", "mic": "密克马克语", "min": "米南佳保语", "mk": "马其顿语", "ml": "马拉雅拉姆语", "mn": "蒙古语", "mnc": "满语", "mni": "曼尼普尔语", "moh": "摩霍克语", "mos": "莫西语", "mr": "马拉地语", "ms": "马来语", "mt": "马耳他语", "mua": "蒙当语", "mus": "克里克语", "mwl": "米兰德斯语", "mwr": "马尔瓦里语", "my": "缅甸语", "mye": "姆耶内语", "myv": "厄尔兹亚语", "mzn": "马赞德兰语", "na": "瑙鲁语", "nan": "闽南语", "nap": "那不勒斯语", "naq": "纳马语", "nb": "书面挪威语", "nd": "北恩德贝勒语", "nds": "低地德语", "nds-NL": "低萨克森语", "ne": "尼泊尔语", "new": "尼瓦尔语", "ng": "恩东加语", "nia": "尼亚斯语", "niu": "纽埃语", "nl": "荷兰语", "nl-BE": "弗拉芒语", "nmg": "夸西奥语", "nn": "挪威尼诺斯克语", "nnh": "恩甘澎语", "no": "挪威语", "nog": "诺盖语", "non": "古诺尔斯语", "nqo": "西非书面文字", "nr": "南恩德贝勒语", "nso": "北索托语", "nus": "努埃尔语", "nv": "纳瓦霍语", "nwc": "古典尼瓦尔语", "ny": "齐切瓦语", "nym": "尼扬韦齐语", "nyn": "尼昂科勒语", "nyo": "尼奥罗语", "nzi": "恩济马语", "oc": "奥克语", "oj": "奥吉布瓦语", "om": "奥罗莫语", "or": "奥里亚语", "os": "奥塞梯语", "osa": "奥塞治语", "ota": "奥斯曼土耳其语", "pa": "旁遮普语", "pag": "邦阿西南语", "pal": "巴拉维语", "pam": "邦板牙语", "pap": "帕皮阿门托语", "pau": "帕劳语", "pcm": "尼日利亚皮钦语", "peo": "古波斯语", "phn": "腓尼基语", "pi": "巴利语", "pl": "波兰语", "pon": "波纳佩语", "prg": "普鲁士语", "pro": "古普罗文斯语", "ps": "普什图语", "pt": "葡萄牙语", "pt-BR": "巴西葡萄牙语", "pt-PT": "欧洲葡萄牙语", "qu": "克丘亚语", "quc": "基切语", "raj": "拉贾斯坦语", "rap": "拉帕努伊语", "rar": "拉罗汤加语", "rm": "罗曼什语", "rn": "隆迪语", "ro": "罗马尼亚语", "ro-MD": "摩尔多瓦语", "rof": "兰博语", "rom": "吉普赛语", "root": "根语言", "ru": "俄语", "rup": "阿罗马尼亚语", "rw": "卢旺达语", "rwk": "罗瓦语", "sa": "梵语", "sad": "桑达韦语", "sah": "萨哈语", "sam": "萨马利亚阿拉姆语", "saq": "桑布鲁语", "sas": "萨萨克文", "sat": "桑塔利语", "sba": "甘拜语", "sbp": "桑古语", "sc": "萨丁语", "scn": "西西里语", "sco": "苏格兰语", "sd": "信德语", "sdh": "南库尔德语", "se": "北方萨米语", "see": "塞内卡语", "seh": "塞纳语", "sel": "塞尔库普语", "ses": "东桑海语", "sg": "桑戈语", "sga": "古爱尔兰语", "sh": "塞尔维亚-克罗地亚语", "shi": "希尔哈语", "shn": "掸语", "shu": "乍得阿拉伯语", "si": "僧伽罗语", "sid": "悉达摩语", "sk": "斯洛伐克语", "sl": "斯洛文尼亚语", "sm": "萨摩亚语", "sma": "南萨米语", "smj": "吕勒萨米语", "smn": "伊纳里萨米语", "sms": "斯科特萨米语", "sn": "绍纳语", "snk": "索宁克语", "so": "索马里语", "sog": "粟特语", "sq": "阿尔巴尼亚语", "sr": "塞尔维亚语", "srn": "苏里南汤加语", "srr": "塞雷尔语", "ss": "斯瓦蒂语", "ssy": "萨霍语", "st": "南索托语", "su": "巽他语", "suk": "苏库马语", "sus": "苏苏语", "sux": "苏美尔语", "sv": "瑞典语", "sw": "斯瓦希里语", "sw-CD": "刚果斯瓦希里语", "swb": "科摩罗语", "syc": "古典叙利亚语", "syr": "叙利亚语", "ta": "泰米尔语", "te": "泰卢固语", "tem": "泰姆奈语", "teo": "特索语", "ter": "特伦诺语", "tet": "德顿语", "tg": "塔吉克语", "th": "泰语", "ti": "提格利尼亚语", "tig": "提格雷语", "tiv": "蒂夫语", "tk": "土库曼语", "tkl": "托克劳语", "tl": "他加禄语", "tlh": "克林贡语", "tli": "特林吉特语", "tmh": "塔马奇克语", "tn": "茨瓦纳语", "to": "汤加语", "tog": "尼亚萨汤加语", "tpi": "托克皮辛语", "tr": "土耳其语", "trv": "赛德克语", "ts": "聪加语", "tsi": "钦西安语", "tt": "鞑靼语", "tum": "通布卡语", "tvl": "图瓦卢语", "tw": "契维语", "twq": "北桑海语", "ty": "塔希提语", "tyv": "图瓦语", "tzm": "塔马齐格特语", "udm": "乌德穆尔特语", "ug": "维吾尔语", "uga": "乌加里特语", "uk": "乌克兰语", "umb": "翁本杜语", "ur": "乌尔都语", "uz": "乌兹别克语", "vai": "瓦伊语", "ve": "文达语", "vep": "维普森语", "vi": "越南语", "vo": "沃拉普克语", "vot": "沃提克语", "vun": "温旧语", "wa": "瓦隆语", "wae": "瓦尔瑟语", "wal": "瓦拉莫语", "war": "瓦瑞语", "was": "瓦绍语", "wbp": "瓦尔皮瑞语", "wo": "沃洛夫语", "wuu": "吴语", "xal": "卡尔梅克语", "xh": "科萨语", "xog": "索加语", "yao": "瑶族语", "yap": "雅浦语", "yav": "洋卞语", "ybb": "耶姆巴语", "yi": "意第绪语", "yo": "约鲁巴语", "yue": "粤语", "za": "壮语", "zap": "萨波蒂克语", "zbl": "布里斯符号", "zen": "泽纳加语", "zgh": "标准摩洛哥塔马塞特语", "zh": "中文", "zh-Hans": "简体中文", "zh-Hant": "繁体中文", "zu": "祖鲁语", "zun": "祖尼语", "zza": "扎扎语"}} + "af": {"rtl": false, "languageNames": {"aa": "Afar", "ab": "Abkasies", "ace": "Atsjenees", "ach": "Akoli", "ada": "Adangme", "ady": "Adyghe", "af": "Afrikaans", "agq": "Aghem", "ain": "Ainu", "ak": "Akan", "ale": "Aleut", "alt": "Suid-Altai", "am": "Amharies", "an": "Aragonees", "anp": "Angika", "ar": "Arabies", "ar-001": "Moderne Standaardarabies", "arc": "Aramees", "arn": "Mapuche", "arp": "Arapaho", "as": "Assamees", "asa": "Asu", "ast": "Asturies", "av": "Avaries", "awa": "Awadhi", "ay": "Aymara", "az": "Azerbeidjans", "ba": "Baskir", "ban": "Balinees", "bas": "Basaa", "be": "Belarussies", "bem": "Bemba", "bez": "Bena", "bg": "Bulgaars", "bgn": "Wes-Balochi", "bho": "Bhojpuri", "bi": "Bislama", "bin": "Bini", "bla": "Siksika", "bm": "Bambara", "bn": "Bengaals", "bo": "Tibettaans", "br": "Bretons", "brx": "Bodo", "bs": "Bosnies", "bug": "Buginees", "byn": "Blin", "ca": "Katalaans", "ce": "Tsjetsjeens", "ceb": "Cebuano", "cgg": "Kiga", "ch": "Chamorro", "chk": "Chuukees", "chm": "Mari", "cho": "Choctaw", "chr": "Cherokees", "chy": "Cheyennees", "ckb": "Sorani", "co": "Korsikaans", "cop": "Kopties", "crs": "Seselwa Franskreools", "cs": "Tsjeggies", "cu": "Kerkslawies", "cv": "Chuvash", "cy": "Wallies", "da": "Deens", "dak": "Dakotaans", "dar": "Dakota", "dav": "Taita", "de": "Duits", "de-AT": "Duits (Oostenryk)", "de-CH": "Switserse hoog-Duits", "dgr": "Dogrib", "dje": "Zarma", "dsb": "Benedesorbies", "dua": "Duala", "dv": "Divehi", "dyo": "Jola-Fonyi", "dz": "Dzongkha", "dzg": "Dazaga", "ebu": "Embu", "ee": "Ewe", "efi": "Efik", "egy": "Antieke Egipties", "eka": "Ekajuk", "el": "Grieks", "en": "Engels", "en-AU": "Engels (Australië)", "en-CA": "Engels (Kanada)", "en-GB": "Engels (VK)", "en-US": "Engels (VSA)", "eo": "Esperanto", "es": "Spaans", "es-419": "Spaans (Latyns-Amerika)", "es-ES": "Spaans (Spanje)", "es-MX": "Spaans (Meksiko)", "et": "Estnies", "eu": "Baskies", "ewo": "Ewondo", "fa": "Persies", "ff": "Fulah", "fi": "Fins", "fil": "Filippyns", "fj": "Fidjiaans", "fo": "Faroëes", "fon": "Fon", "fr": "Frans", "fr-CA": "Frans (Kanada)", "fr-CH": "Frans (Switserland)", "fur": "Friuliaans", "fy": "Fries", "ga": "Iers", "gaa": "Gaa", "gag": "Gagauz", "gan": "Gan-Sjinees", "gd": "Skotse Gallies", "gez": "Geez", "gil": "Gilbertees", "gl": "Galisies", "gn": "Guarani", "gor": "Gorontalo", "got": "Goties", "grc": "Antieke Grieks", "gsw": "Switserse Duits", "gu": "Goedjarati", "guz": "Gusii", "gv": "Manx", "gwi": "Gwichʼin", "ha": "Hausa", "hak": "Hakka-Sjinees", "haw": "Hawais", "he": "Hebreeus", "hi": "Hindi", "hil": "Hiligaynon", "hit": "Hetities", "hmn": "Hmong", "hr": "Kroaties", "hsb": "Oppersorbies", "hsn": "Xiang-Sjinees", "ht": "Haïtiaans", "hu": "Hongaars", "hup": "Hupa", "hy": "Armeens", "hz": "Herero", "ia": "Interlingua", "iba": "Ibanees", "ibb": "Ibibio", "id": "Indonesies", "ie": "Interlingue", "ig": "Igbo", "ii": "Sichuan Yi", "ilo": "Iloko", "inh": "Ingush", "io": "Ido", "is": "Yslands", "it": "Italiaans", "iu": "Inuïties", "ja": "Japannees", "jbo": "Lojban", "jgo": "Ngomba", "jmc": "Machame", "jv": "Javaans", "ka": "Georgies", "kab": "Kabyle", "kac": "Kachin", "kaj": "Jju", "kam": "Kamba", "kbd": "Kabardiaans", "kcg": "Tyap", "kde": "Makonde", "kea": "Kabuverdianu", "kfo": "Koro", "kg": "Kongolees", "kha": "Khasi", "khq": "Koyra Chiini", "ki": "Kikuyu", "kj": "Kuanyama", "kk": "Kazaks", "kkj": "Kako", "kl": "Kalaallisut", "kln": "Kalenjin", "km": "Khmer", "kmb": "Kimbundu", "kn": "Kannada", "ko": "Koreaans", "koi": "Komi-Permyaks", "kok": "Konkani", "kpe": "Kpellees", "kr": "Kanuri", "krc": "Karachay-Balkar", "krl": "Karelies", "kru": "Kurukh", "ks": "Kasjmirs", "ksb": "Shambala", "ksf": "Bafia", "ksh": "Keuls", "ku": "Koerdies", "kum": "Kumyk", "kv": "Komi", "kw": "Kornies", "ky": "Kirgisies", "la": "Latyn", "lad": "Ladino", "lag": "Langi", "lb": "Luxemburgs", "lez": "Lezghies", "lg": "Ganda", "li": "Limburgs", "lkt": "Lakota", "ln": "Lingaals", "lo": "Lao", "loz": "Lozi", "lrc": "Noord-Luri", "lt": "Litaus", "lu": "Luba-Katanga", "lua": "Luba-Lulua", "lun": "Lunda", "luo": "Luo", "lus": "Mizo", "luy": "Luyia", "lv": "Letties", "mad": "Madurees", "mag": "Magahi", "mai": "Maithili", "mak": "Makasar", "mas": "Masai", "mdf": "Moksha", "men": "Mende", "mer": "Meru", "mfe": "Morisjen", "mg": "Malgassies", "mgh": "Makhuwa-Meetto", "mgo": "Meta’", "mh": "Marshallees", "mi": "Maori", "mic": "Micmac", "min": "Minangkabaus", "mk": "Masedonies", "ml": "Malabaars", "mn": "Mongools", "mni": "Manipuri", "moh": "Mohawk", "mos": "Mossi", "mr": "Marathi", "ms": "Maleis", "mt": "Maltees", "mua": "Mundang", "mus": "Kreek", "mwl": "Mirandees", "my": "Birmaans", "myv": "Erzya", "mzn": "Masanderani", "na": "Nauru", "nan": "Min Nan-Sjinees", "nap": "Neapolitaans", "naq": "Nama", "nb": "Boeknoors", "nd": "Noord-Ndebele", "nds": "Lae Duits", "nds-NL": "Nedersaksies", "ne": "Nepalees", "new": "Newari", "ng": "Ndonga", "nia": "Nias", "niu": "Niueaans", "nl": "Nederlands", "nl-BE": "Vlaams", "nmg": "Kwasio", "nn": "Nuwe Noors", "nnh": "Ngiemboon", "no": "Noors", "nog": "Nogai", "nqo": "N’Ko", "nr": "Suid-Ndebele", "nso": "Noord-Sotho", "nus": "Nuer", "nv": "Navajo", "ny": "Nyanja", "nyn": "Nyankole", "oc": "Oksitaans", "om": "Oromo", "or": "Oriya", "os": "Osseties", "pa": "Pandjabi", "pag": "Pangasinan", "pam": "Pampanga", "pap": "Papiamento", "pau": "Palauaans", "pcm": "Nigeriese Pidgin", "phn": "Fenisies", "pl": "Pools", "prg": "Pruisies", "ps": "Pasjto", "pt": "Portugees", "pt-BR": "Portugees (Brasilië)", "pt-PT": "Portugees (Portugal)", "qu": "Quechua", "quc": "K’iche’", "rap": "Rapanui", "rar": "Rarotongaans", "rm": "Reto-Romaans", "rn": "Rundi", "ro": "Roemeens", "ro-MD": "Roemeens (Moldowa)", "rof": "Rombo", "root": "Root", "ru": "Russies", "rup": "Aromanies", "rw": "Rwandees", "rwk": "Rwa", "sa": "Sanskrit", "sad": "Sandawees", "sah": "Sakhaans", "saq": "Samburu", "sat": "Santalies", "sba": "Ngambay", "sbp": "Sangu", "sc": "Sardinies", "scn": "Sisiliaans", "sco": "Skots", "sd": "Sindhi", "sdh": "Suid-Koerdies", "se": "Noord-Sami", "seh": "Sena", "ses": "Koyraboro Senni", "sg": "Sango", "sh": "Serwo-Kroaties", "shi": "Tachelhit", "shn": "Shan", "si": "Sinhala", "sk": "Slowaaks", "sl": "Sloweens", "sm": "Samoaans", "sma": "Suid-Sami", "smj": "Lule Sami", "smn": "Inari Sami", "sms": "Skolt Sami", "sn": "Shona", "snk": "Soninke", "so": "Somalies", "sq": "Albanees", "sr": "Serwies", "srn": "Sranan Tongo", "ss": "Swazi", "ssy": "Saho", "st": "Suid-Sotho", "su": "Sundanees", "suk": "Sukuma", "sv": "Sweeds", "sw": "Swahili", "sw-CD": "Swahili (Demokratiese Republiek van die Kongo)", "swb": "Comoraans", "syr": "Siries", "ta": "Tamil", "te": "Teloegoe", "tem": "Timne", "teo": "Teso", "tet": "Tetoem", "tg": "Tadjiks", "th": "Thai", "ti": "Tigrinya", "tig": "Tigre", "tk": "Turkmeens", "tlh": "Klingon", "tn": "Tswana", "to": "Tongaans", "tpi": "Tok Pisin", "tr": "Turks", "trv": "Taroko", "ts": "Tsonga", "tt": "Tataars", "tum": "Toemboeka", "tvl": "Tuvalu", "tw": "Twi", "twq": "Tasawaq", "ty": "Tahities", "tyv": "Tuvinees", "tzm": "Sentraal-Atlas-Tamazight", "udm": "Udmurt", "ug": "Uighur", "uk": "Oekraïens", "umb": "Umbundu", "ur": "Oerdoe", "uz": "Oezbeeks", "vai": "Vai", "ve": "Venda", "vi": "Viëtnamees", "vo": "Volapük", "vun": "Vunjo", "wa": "Walloon", "wae": "Walser", "wal": "Wolaytta", "war": "Waray", "wbp": "Warlpiri", "wo": "Wolof", "wuu": "Wu-Sjinees", "xal": "Kalmyk", "xh": "Xhosa", "xog": "Soga", "yav": "Yangben", "ybb": "Yemba", "yi": "Jiddisj", "yo": "Yoruba", "yue": "Kantonees", "zgh": "Standaard Marokkaanse Tamazight", "zh": "Sjinees", "zh-Hans": "Chinees (Vereenvoudig)", "zh-Hant": "Chinees (Tradisioneel)", "zu": "Zoeloe", "zun": "Zuni", "zza": "Zaza"}, "scriptNames": {"Cyrl": "Sirillies", "Latn": "Latyn", "Arab": "Arabies", "Guru": "Gurmukhi", "Hans": "Vereenvoudig", "Hant": "Tradisioneel"}}, + "ar": {"rtl": true, "languageNames": {"aa": "الأفارية", "ab": "الأبخازية", "ace": "الأتشينيزية", "ach": "الأكولية", "ada": "الأدانجمية", "ady": "الأديغة", "ae": "الأفستية", "af": "الأفريقانية", "afh": "الأفريهيلية", "agq": "الأغم", "ain": "الآينوية", "ak": "الأكانية", "akk": "الأكادية", "ale": "الأليوتية", "alt": "الألطائية الجنوبية", "am": "الأمهرية", "an": "الأراغونية", "ang": "الإنجليزية القديمة", "anp": "الأنجيكا", "ar": "العربية", "ar-001": "العربية الرسمية الحديثة", "arc": "الآرامية", "arn": "المابودونغونية", "arp": "الأراباهو", "ars": "اللهجة النجدية", "arw": "الأراواكية", "as": "الأسامية", "asa": "الآسو", "ast": "الأسترية", "av": "الأوارية", "awa": "الأوادية", "ay": "الأيمارا", "az": "الأذربيجانية", "ba": "الباشكيرية", "bal": "البلوشية", "ban": "البالينية", "bas": "الباسا", "bax": "بامن", "bbj": "لغة الغومالا", "be": "البيلاروسية", "bej": "البيجا", "bem": "البيمبا", "bez": "بينا", "bfd": "لغة البافوت", "bg": "البلغارية", "bgn": "البلوشية الغربية", "bho": "البهوجبورية", "bi": "البيسلامية", "bik": "البيكولية", "bin": "البينية", "bkm": "لغة الكوم", "bla": "السيكسيكية", "bm": "البامبارا", "bn": "البنغالية", "bo": "التبتية", "br": "البريتونية", "bra": "البراجية", "brx": "البودو", "bs": "البوسنية", "bss": "أكوس", "bua": "البرياتية", "bug": "البجينيزية", "bum": "لغة البولو", "byn": "البلينية", "byv": "لغة الميدومبا", "ca": "الكتالانية", "cad": "الكادو", "car": "الكاريبية", "cay": "الكايوجية", "cch": "الأتسام", "ce": "الشيشانية", "ceb": "السيبيوانية", "cgg": "تشيغا", "ch": "التشامورو", "chb": "التشيبشا", "chg": "التشاجاتاي", "chk": "التشكيزية", "chm": "الماري", "chn": "الشينوك جارجون", "cho": "الشوكتو", "chp": "الشيباوايان", "chr": "الشيروكي", "chy": "الشايان", "ckb": "السورانية الكردية", "co": "الكورسيكية", "cop": "القبطية", "cr": "الكرى", "crh": "لغة تتار القرم", "crs": "الفرنسية الكريولية السيشيلية", "cs": "التشيكية", "csb": "الكاشبايان", "cu": "سلافية كنسية", "cv": "التشوفاشي", "cy": "الويلزية", "da": "الدانمركية", "dak": "الداكوتا", "dar": "الدارجوا", "dav": "تيتا", "de": "الألمانية", "de-AT": "الألمانية النمساوية", "de-CH": "الألمانية العليا السويسرية", "del": "الديلوير", "den": "السلافية", "dgr": "الدوجريب", "din": "الدنكا", "dje": "الزارمية", "doi": "الدوجرية", "dsb": "صوربيا السفلى", "dua": "الديولا", "dum": "الهولندية الوسطى", "dv": "المالديفية", "dyo": "جولا فونيا", "dyu": "الدايلا", "dz": "الزونخاية", "dzg": "القرعانية", "ebu": "إمبو", "ee": "الإيوي", "efi": "الإفيك", "egy": "المصرية القديمة", "eka": "الإكاجك", "el": "اليونانية", "elx": "الإمايت", "en": "الإنجليزية", "en-AU": "الإنجليزية الأسترالية", "en-CA": "الإنجليزية الكندية", "en-GB": "الإنجليزية البريطانية", "en-US": "الإنجليزية الأمريكية", "enm": "الإنجليزية الوسطى", "eo": "الإسبرانتو", "es": "الإسبانية", "es-419": "الإسبانية أمريكا اللاتينية", "es-ES": "الإسبانية الأوروبية", "es-MX": "الإسبانية المكسيكية", "et": "الإستونية", "eu": "الباسكية", "ewo": "الإيوندو", "fa": "الفارسية", "fan": "الفانج", "fat": "الفانتي", "ff": "الفولانية", "fi": "الفنلندية", "fil": "الفلبينية", "fj": "الفيجية", "fo": "الفاروية", "fon": "الفون", "fr": "الفرنسية", "fr-CA": "الفرنسية الكندية", "fr-CH": "الفرنسية السويسرية", "frc": "الفرنسية الكاجونية", "frm": "الفرنسية الوسطى", "fro": "الفرنسية القديمة", "frr": "الفريزينية الشمالية", "frs": "الفريزينية الشرقية", "fur": "الفريلايان", "fy": "الفريزيان", "ga": "الأيرلندية", "gaa": "الجا", "gag": "الغاغوز", "gan": "الغان الصينية", "gay": "الجايو", "gba": "الجبيا", "gd": "الغيلية الأسكتلندية", "gez": "الجعزية", "gil": "لغة أهل جبل طارق", "gl": "الجاليكية", "gmh": "الألمانية العليا الوسطى", "gn": "الغوارانية", "goh": "الألمانية العليا القديمة", "gon": "الجندي", "gor": "الجورونتالو", "got": "القوطية", "grb": "الجريبو", "grc": "اليونانية القديمة", "gsw": "الألمانية السويسرية", "gu": "الغوجاراتية", "guz": "الغيزية", "gv": "المنكية", "gwi": "غوتشن", "ha": "الهوسا", "hai": "الهيدا", "hak": "الهاكا الصينية", "haw": "لغة هاواي", "he": "العبرية", "hi": "الهندية", "hil": "الهيليجينون", "hit": "الحثية", "hmn": "الهمونجية", "ho": "الهيري موتو", "hr": "الكرواتية", "hsb": "الصوربية العليا", "hsn": "شيانغ الصينية", "ht": "الكريولية الهايتية", "hu": "الهنغارية", "hup": "الهبا", "hy": "الأرمنية", "hz": "الهيريرو", "ia": "اللّغة الوسيطة", "iba": "الإيبان", "ibb": "الإيبيبيو", "id": "الإندونيسية", "ie": "الإنترلينج", "ig": "الإيجبو", "ii": "السيتشيون يي", "ik": "الإينبياك", "ilo": "الإيلوكو", "inh": "الإنجوشية", "io": "الإيدو", "is": "الأيسلندية", "it": "الإيطالية", "iu": "الإينكتيتت", "ja": "اليابانية", "jbo": "اللوجبان", "jgo": "نغومبا", "jmc": "الماتشامية", "jpr": "الفارسية اليهودية", "jrb": "العربية اليهودية", "jv": "الجاوية", "ka": "الجورجية", "kaa": "الكارا-كالباك", "kab": "القبيلية", "kac": "الكاتشين", "kaj": "الجو", "kam": "الكامبا", "kaw": "الكوي", "kbd": "الكاباردايان", "kbl": "كانمبو", "kcg": "التايابية", "kde": "ماكونده", "kea": "كابوفيرديانو", "kfo": "الكورو", "kg": "الكونغو", "kha": "الكازية", "kho": "الخوتانيز", "khq": "كويرا تشيني", "ki": "الكيكيو", "kj": "الكيونياما", "kk": "الكازاخستانية", "kkj": "لغة الكاكو", "kl": "الكالاليست", "kln": "كالينجين", "km": "الخميرية", "kmb": "الكيمبندو", "kn": "الكانادا", "ko": "الكورية", "koi": "كومي-بيرماياك", "kok": "الكونكانية", "kos": "الكوسراين", "kpe": "الكبيل", "kr": "الكانوري", "krc": "الكاراتشاي-بالكار", "krl": "الكاريلية", "kru": "الكوروخ", "ks": "الكشميرية", "ksb": "شامبالا", "ksf": "لغة البافيا", "ksh": "لغة الكولونيان", "ku": "الكردية", "kum": "القموقية", "kut": "الكتيناي", "kv": "الكومي", "kw": "الكورنية", "ky": "القيرغيزية", "la": "اللاتينية", "lad": "اللادينو", "lag": "لانجي", "lah": "اللاهندا", "lam": "اللامبا", "lb": "اللكسمبورغية", "lez": "الليزجية", "lg": "الغاندا", "li": "الليمبورغية", "lkt": "لاكوتا", "ln": "اللينجالا", "lo": "اللاوية", "lol": "منغولى", "lou": "الكريولية اللويزيانية", "loz": "اللوزي", "lrc": "اللرية الشمالية", "lt": "الليتوانية", "lu": "اللوبا كاتانغا", "lua": "اللبا-لؤلؤ", "lui": "اللوسينو", "lun": "اللوندا", "luo": "اللو", "lus": "الميزو", "luy": "لغة اللويا", "lv": "اللاتفية", "mad": "المادريز", "mag": "الماجا", "mai": "المايثيلي", "mak": "الماكاسار", "man": "الماندينغ", "mas": "الماساي", "mde": "مابا", "mdf": "الموكشا", "mdr": "الماندار", "men": "الميند", "mer": "الميرو", "mfe": "المورسيانية", "mg": "الملغاشي", "mga": "الأيرلندية الوسطى", "mgh": "ماخاوا-ميتو", "mgo": "ميتا", "mh": "المارشالية", "mi": "الماورية", "mic": "الميكماكيونية", "min": "المينانجكاباو", "mk": "المقدونية", "ml": "المالايالامية", "mn": "المنغولية", "mnc": "المانشو", "mni": "المانيبورية", "moh": "الموهوك", "mos": "الموسي", "mr": "الماراثية", "ms": "الماليزية", "mt": "المالطية", "mua": "مندنج", "mus": "الكريك", "mwl": "الميرانديز", "mwr": "الماروارية", "my": "البورمية", "myv": "الأرزية", "mzn": "المازندرانية", "na": "النورو", "nan": "مين-نان الصينية", "nap": "النابولية", "naq": "لغة الناما", "nb": "النرويجية بوكمال", "nd": "النديبيل الشمالية", "nds": "الألمانية السفلى", "nds-NL": "السكسونية السفلى", "ne": "النيبالية", "new": "النوارية", "ng": "الندونجا", "nia": "النياس", "niu": "النيوي", "nl": "الهولندية", "nl-BE": "الفلمنكية", "nmg": "كواسيو", "nn": "النرويجية نينورسك", "nnh": "لغة النجيمبون", "no": "النرويجية", "nog": "النوجاي", "non": "النورس القديم", "nqo": "أنكو", "nr": "النديبيل الجنوبي", "nso": "السوتو الشمالية", "nus": "النوير", "nv": "النافاجو", "nwc": "النوارية التقليدية", "ny": "النيانجا", "nym": "النيامويزي", "nyn": "النيانكول", "nyo": "النيورو", "nzi": "النزيما", "oc": "الأوكسيتانية", "oj": "الأوجيبوا", "om": "الأورومية", "or": "الأورية", "os": "الأوسيتيك", "osa": "الأوساج", "ota": "التركية العثمانية", "pa": "البنجابية", "pag": "البانجاسينان", "pal": "البهلوية", "pam": "البامبانجا", "pap": "البابيامينتو", "pau": "البالوان", "pcm": "البدجنية النيجيرية", "peo": "الفارسية القديمة", "phn": "الفينيقية", "pi": "البالية", "pl": "البولندية", "pon": "البوهنبيايان", "prg": "البروسياوية", "pro": "البروفانسية القديمة", "ps": "البشتو", "pt": "البرتغالية", "pt-BR": "البرتغالية البرازيلية", "pt-PT": "البرتغالية الأوروبية", "qu": "الكويتشوا", "quc": "الكيشية", "raj": "الراجاسثانية", "rap": "الراباني", "rar": "الراروتونجاني", "rm": "الرومانشية", "rn": "الرندي", "ro": "الرومانية", "ro-MD": "المولدوفية", "rof": "الرومبو", "rom": "الغجرية", "root": "الجذر", "ru": "الروسية", "rup": "الأرومانيان", "rw": "الكينيارواندا", "rwk": "الروا", "sa": "السنسكريتية", "sad": "السانداوي", "sah": "الساخيّة", "sam": "الآرامية السامرية", "saq": "سامبورو", "sas": "الساساك", "sat": "السانتالية", "sba": "نامبي", "sbp": "سانغو", "sc": "السردينية", "scn": "الصقلية", "sco": "الأسكتلندية", "sd": "السندية", "sdh": "الكردية الجنوبية", "se": "سامي الشمالية", "see": "السنيكا", "seh": "سينا", "sel": "السيلكب", "ses": "كويرابورو سيني", "sg": "السانجو", "sga": "الأيرلندية القديمة", "sh": "صربية-كرواتية", "shi": "تشلحيت", "shn": "الشان", "shu": "العربية التشادية", "si": "السنهالية", "sid": "السيدامو", "sk": "السلوفاكية", "sl": "السلوفانية", "sm": "الساموائية", "sma": "السامي الجنوبي", "smj": "اللول سامي", "smn": "الإيناري سامي", "sms": "السكولت سامي", "sn": "الشونا", "snk": "السونينك", "so": "الصومالية", "sog": "السوجدين", "sq": "الألبانية", "sr": "الصربية", "srn": "السرانان تونجو", "srr": "السرر", "ss": "السواتي", "ssy": "لغة الساهو", "st": "السوتو الجنوبية", "su": "السوندانية", "suk": "السوكوما", "sus": "السوسو", "sux": "السومارية", "sv": "السويدية", "sw": "السواحلية", "sw-CD": "الكونغو السواحلية", "swb": "القمرية", "syc": "سريانية تقليدية", "syr": "السريانية", "ta": "التاميلية", "te": "التيلوغوية", "tem": "التيمن", "teo": "تيسو", "ter": "التيرينو", "tet": "التيتم", "tg": "الطاجيكية", "th": "التايلاندية", "ti": "التغرينية", "tig": "التيغرية", "tiv": "التيف", "tk": "التركمانية", "tkl": "التوكيلاو", "tl": "التاغالوغية", "tlh": "الكلينجون", "tli": "التلينغيتية", "tmh": "التاماشيك", "tn": "التسوانية", "to": "التونغية", "tog": "تونجا - نياسا", "tpi": "التوك بيسين", "tr": "التركية", "trv": "لغة التاروكو", "ts": "السونجا", "tsi": "التسيمشيان", "tt": "التترية", "tum": "التامبوكا", "tvl": "التوفالو", "tw": "التوي", "twq": "تاساواق", "ty": "التاهيتية", "tyv": "التوفية", "tzm": "الأمازيغية وسط الأطلس", "udm": "الأدمرت", "ug": "الأويغورية", "uga": "اليجاريتيك", "uk": "الأوكرانية", "umb": "الأمبندو", "ur": "الأوردية", "uz": "الأوزبكية", "vai": "الفاي", "ve": "الفيندا", "vi": "الفيتنامية", "vo": "لغة الفولابوك", "vot": "الفوتيك", "vun": "الفونجو", "wa": "الولونية", "wae": "الوالسر", "wal": "الولاياتا", "war": "الواراي", "was": "الواشو", "wbp": "وارلبيري", "wo": "الولوفية", "wuu": "الوو الصينية", "xal": "الكالميك", "xh": "الخوسا", "xog": "السوغا", "yao": "الياو", "yap": "اليابيز", "yav": "يانجبن", "ybb": "يمبا", "yi": "اليديشية", "yo": "اليوروبا", "yue": "الكَنْتُونية", "za": "الزهيونج", "zap": "الزابوتيك", "zbl": "رموز المعايير الأساسية", "zen": "الزيناجا", "zgh": "التمازيغية المغربية القياسية", "zh": "الصينية", "zh-Hans": "الصينية المبسطة", "zh-Hant": "الصينية التقليدية", "zu": "الزولو", "zun": "الزونية", "zza": "زازا"}, "scriptNames": {"Cyrl": "السيريلية", "Latn": "اللاتينية", "Arab": "العربية", "Guru": "الجرمخي", "Tfng": "التيفيناغ", "Vaii": "الفاي", "Hans": "المبسطة", "Hant": "التقليدية"}}, + "ar-AA": {"rtl": true, "languageNames": {"aa": "الأفارية", "ab": "الأبخازية", "ace": "الأتشينيزية", "ach": "الأكولية", "ada": "الأدانجمية", "ady": "الأديغة", "ae": "الأفستية", "af": "الأفريقانية", "afh": "الأفريهيلية", "agq": "الأغم", "ain": "الآينوية", "ak": "الأكانية", "akk": "الأكادية", "ale": "الأليوتية", "alt": "الألطائية الجنوبية", "am": "الأمهرية", "an": "الأراغونية", "ang": "الإنجليزية القديمة", "anp": "الأنجيكا", "ar": "العربية", "ar-001": "العربية الرسمية الحديثة", "arc": "الآرامية", "arn": "المابودونغونية", "arp": "الأراباهو", "ars": "اللهجة النجدية", "arw": "الأراواكية", "as": "الأسامية", "asa": "الآسو", "ast": "الأسترية", "av": "الأوارية", "awa": "الأوادية", "ay": "الأيمارا", "az": "الأذربيجانية", "ba": "الباشكيرية", "bal": "البلوشية", "ban": "البالينية", "bas": "الباسا", "bax": "بامن", "bbj": "لغة الغومالا", "be": "البيلاروسية", "bej": "البيجا", "bem": "البيمبا", "bez": "بينا", "bfd": "لغة البافوت", "bg": "البلغارية", "bgn": "البلوشية الغربية", "bho": "البهوجبورية", "bi": "البيسلامية", "bik": "البيكولية", "bin": "البينية", "bkm": "لغة الكوم", "bla": "السيكسيكية", "bm": "البامبارا", "bn": "البنغالية", "bo": "التبتية", "br": "البريتونية", "bra": "البراجية", "brx": "البودو", "bs": "البوسنية", "bss": "أكوس", "bua": "البرياتية", "bug": "البجينيزية", "bum": "لغة البولو", "byn": "البلينية", "byv": "لغة الميدومبا", "ca": "الكتالانية", "cad": "الكادو", "car": "الكاريبية", "cay": "الكايوجية", "cch": "الأتسام", "ce": "الشيشانية", "ceb": "السيبيوانية", "cgg": "تشيغا", "ch": "التشامورو", "chb": "التشيبشا", "chg": "التشاجاتاي", "chk": "التشكيزية", "chm": "الماري", "chn": "الشينوك جارجون", "cho": "الشوكتو", "chp": "الشيباوايان", "chr": "الشيروكي", "chy": "الشايان", "ckb": "السورانية الكردية", "co": "الكورسيكية", "cop": "القبطية", "cr": "الكرى", "crh": "لغة تتار القرم", "crs": "الفرنسية الكريولية السيشيلية", "cs": "التشيكية", "csb": "الكاشبايان", "cu": "سلافية كنسية", "cv": "التشوفاشي", "cy": "الويلزية", "da": "الدانمركية", "dak": "الداكوتا", "dar": "الدارجوا", "dav": "تيتا", "de": "الألمانية", "de-AT": "الألمانية النمساوية", "de-CH": "الألمانية العليا السويسرية", "del": "الديلوير", "den": "السلافية", "dgr": "الدوجريب", "din": "الدنكا", "dje": "الزارمية", "doi": "الدوجرية", "dsb": "صوربيا السفلى", "dua": "الديولا", "dum": "الهولندية الوسطى", "dv": "المالديفية", "dyo": "جولا فونيا", "dyu": "الدايلا", "dz": "الزونخاية", "dzg": "القرعانية", "ebu": "إمبو", "ee": "الإيوي", "efi": "الإفيك", "egy": "المصرية القديمة", "eka": "الإكاجك", "el": "اليونانية", "elx": "الإمايت", "en": "الإنجليزية", "en-AU": "الإنجليزية الأسترالية", "en-CA": "الإنجليزية الكندية", "en-GB": "الإنجليزية البريطانية", "en-US": "الإنجليزية الأمريكية", "enm": "الإنجليزية الوسطى", "eo": "الإسبرانتو", "es": "الإسبانية", "es-419": "الإسبانية أمريكا اللاتينية", "es-ES": "الإسبانية الأوروبية", "es-MX": "الإسبانية المكسيكية", "et": "الإستونية", "eu": "الباسكية", "ewo": "الإيوندو", "fa": "الفارسية", "fan": "الفانج", "fat": "الفانتي", "ff": "الفولانية", "fi": "الفنلندية", "fil": "الفلبينية", "fj": "الفيجية", "fo": "الفاروية", "fon": "الفون", "fr": "الفرنسية", "fr-CA": "الفرنسية الكندية", "fr-CH": "الفرنسية السويسرية", "frc": "الفرنسية الكاجونية", "frm": "الفرنسية الوسطى", "fro": "الفرنسية القديمة", "frr": "الفريزينية الشمالية", "frs": "الفريزينية الشرقية", "fur": "الفريلايان", "fy": "الفريزيان", "ga": "الأيرلندية", "gaa": "الجا", "gag": "الغاغوز", "gan": "الغان الصينية", "gay": "الجايو", "gba": "الجبيا", "gd": "الغيلية الأسكتلندية", "gez": "الجعزية", "gil": "لغة أهل جبل طارق", "gl": "الجاليكية", "gmh": "الألمانية العليا الوسطى", "gn": "الغوارانية", "goh": "الألمانية العليا القديمة", "gon": "الجندي", "gor": "الجورونتالو", "got": "القوطية", "grb": "الجريبو", "grc": "اليونانية القديمة", "gsw": "الألمانية السويسرية", "gu": "الغوجاراتية", "guz": "الغيزية", "gv": "المنكية", "gwi": "غوتشن", "ha": "الهوسا", "hai": "الهيدا", "hak": "الهاكا الصينية", "haw": "لغة هاواي", "he": "العبرية", "hi": "الهندية", "hil": "الهيليجينون", "hit": "الحثية", "hmn": "الهمونجية", "ho": "الهيري موتو", "hr": "الكرواتية", "hsb": "الصوربية العليا", "hsn": "شيانغ الصينية", "ht": "الكريولية الهايتية", "hu": "الهنغارية", "hup": "الهبا", "hy": "الأرمنية", "hz": "الهيريرو", "ia": "اللّغة الوسيطة", "iba": "الإيبان", "ibb": "الإيبيبيو", "id": "الإندونيسية", "ie": "الإنترلينج", "ig": "الإيجبو", "ii": "السيتشيون يي", "ik": "الإينبياك", "ilo": "الإيلوكو", "inh": "الإنجوشية", "io": "الإيدو", "is": "الأيسلندية", "it": "الإيطالية", "iu": "الإينكتيتت", "ja": "اليابانية", "jbo": "اللوجبان", "jgo": "نغومبا", "jmc": "الماتشامية", "jpr": "الفارسية اليهودية", "jrb": "العربية اليهودية", "jv": "الجاوية", "ka": "الجورجية", "kaa": "الكارا-كالباك", "kab": "القبيلية", "kac": "الكاتشين", "kaj": "الجو", "kam": "الكامبا", "kaw": "الكوي", "kbd": "الكاباردايان", "kbl": "كانمبو", "kcg": "التايابية", "kde": "ماكونده", "kea": "كابوفيرديانو", "kfo": "الكورو", "kg": "الكونغو", "kha": "الكازية", "kho": "الخوتانيز", "khq": "كويرا تشيني", "ki": "الكيكيو", "kj": "الكيونياما", "kk": "الكازاخستانية", "kkj": "لغة الكاكو", "kl": "الكالاليست", "kln": "كالينجين", "km": "الخميرية", "kmb": "الكيمبندو", "kn": "الكانادا", "ko": "الكورية", "koi": "كومي-بيرماياك", "kok": "الكونكانية", "kos": "الكوسراين", "kpe": "الكبيل", "kr": "الكانوري", "krc": "الكاراتشاي-بالكار", "krl": "الكاريلية", "kru": "الكوروخ", "ks": "الكشميرية", "ksb": "شامبالا", "ksf": "لغة البافيا", "ksh": "لغة الكولونيان", "ku": "الكردية", "kum": "القموقية", "kut": "الكتيناي", "kv": "الكومي", "kw": "الكورنية", "ky": "القيرغيزية", "la": "اللاتينية", "lad": "اللادينو", "lag": "لانجي", "lah": "اللاهندا", "lam": "اللامبا", "lb": "اللكسمبورغية", "lez": "الليزجية", "lg": "الغاندا", "li": "الليمبورغية", "lkt": "لاكوتا", "ln": "اللينجالا", "lo": "اللاوية", "lol": "منغولى", "lou": "الكريولية اللويزيانية", "loz": "اللوزي", "lrc": "اللرية الشمالية", "lt": "الليتوانية", "lu": "اللوبا كاتانغا", "lua": "اللبا-لؤلؤ", "lui": "اللوسينو", "lun": "اللوندا", "luo": "اللو", "lus": "الميزو", "luy": "لغة اللويا", "lv": "اللاتفية", "mad": "المادريز", "mag": "الماجا", "mai": "المايثيلي", "mak": "الماكاسار", "man": "الماندينغ", "mas": "الماساي", "mde": "مابا", "mdf": "الموكشا", "mdr": "الماندار", "men": "الميند", "mer": "الميرو", "mfe": "المورسيانية", "mg": "الملغاشي", "mga": "الأيرلندية الوسطى", "mgh": "ماخاوا-ميتو", "mgo": "ميتا", "mh": "المارشالية", "mi": "الماورية", "mic": "الميكماكيونية", "min": "المينانجكاباو", "mk": "المقدونية", "ml": "المالايالامية", "mn": "المنغولية", "mnc": "المانشو", "mni": "المانيبورية", "moh": "الموهوك", "mos": "الموسي", "mr": "الماراثية", "ms": "الماليزية", "mt": "المالطية", "mua": "مندنج", "mus": "الكريك", "mwl": "الميرانديز", "mwr": "الماروارية", "my": "البورمية", "myv": "الأرزية", "mzn": "المازندرانية", "na": "النورو", "nan": "مين-نان الصينية", "nap": "النابولية", "naq": "لغة الناما", "nb": "النرويجية بوكمال", "nd": "النديبيل الشمالية", "nds": "الألمانية السفلى", "nds-NL": "السكسونية السفلى", "ne": "النيبالية", "new": "النوارية", "ng": "الندونجا", "nia": "النياس", "niu": "النيوي", "nl": "الهولندية", "nl-BE": "الفلمنكية", "nmg": "كواسيو", "nn": "النرويجية نينورسك", "nnh": "لغة النجيمبون", "no": "النرويجية", "nog": "النوجاي", "non": "النورس القديم", "nqo": "أنكو", "nr": "النديبيل الجنوبي", "nso": "السوتو الشمالية", "nus": "النوير", "nv": "النافاجو", "nwc": "النوارية التقليدية", "ny": "النيانجا", "nym": "النيامويزي", "nyn": "النيانكول", "nyo": "النيورو", "nzi": "النزيما", "oc": "الأوكسيتانية", "oj": "الأوجيبوا", "om": "الأورومية", "or": "الأورية", "os": "الأوسيتيك", "osa": "الأوساج", "ota": "التركية العثمانية", "pa": "البنجابية", "pag": "البانجاسينان", "pal": "البهلوية", "pam": "البامبانجا", "pap": "البابيامينتو", "pau": "البالوان", "pcm": "البدجنية النيجيرية", "peo": "الفارسية القديمة", "phn": "الفينيقية", "pi": "البالية", "pl": "البولندية", "pon": "البوهنبيايان", "prg": "البروسياوية", "pro": "البروفانسية القديمة", "ps": "البشتو", "pt": "البرتغالية", "pt-BR": "البرتغالية البرازيلية", "pt-PT": "البرتغالية الأوروبية", "qu": "الكويتشوا", "quc": "الكيشية", "raj": "الراجاسثانية", "rap": "الراباني", "rar": "الراروتونجاني", "rm": "الرومانشية", "rn": "الرندي", "ro": "الرومانية", "ro-MD": "المولدوفية", "rof": "الرومبو", "rom": "الغجرية", "root": "الجذر", "ru": "الروسية", "rup": "الأرومانيان", "rw": "الكينيارواندا", "rwk": "الروا", "sa": "السنسكريتية", "sad": "السانداوي", "sah": "الساخيّة", "sam": "الآرامية السامرية", "saq": "سامبورو", "sas": "الساساك", "sat": "السانتالية", "sba": "نامبي", "sbp": "سانغو", "sc": "السردينية", "scn": "الصقلية", "sco": "الأسكتلندية", "sd": "السندية", "sdh": "الكردية الجنوبية", "se": "سامي الشمالية", "see": "السنيكا", "seh": "سينا", "sel": "السيلكب", "ses": "كويرابورو سيني", "sg": "السانجو", "sga": "الأيرلندية القديمة", "sh": "صربية-كرواتية", "shi": "تشلحيت", "shn": "الشان", "shu": "العربية التشادية", "si": "السنهالية", "sid": "السيدامو", "sk": "السلوفاكية", "sl": "السلوفانية", "sm": "الساموائية", "sma": "السامي الجنوبي", "smj": "اللول سامي", "smn": "الإيناري سامي", "sms": "السكولت سامي", "sn": "الشونا", "snk": "السونينك", "so": "الصومالية", "sog": "السوجدين", "sq": "الألبانية", "sr": "الصربية", "srn": "السرانان تونجو", "srr": "السرر", "ss": "السواتي", "ssy": "لغة الساهو", "st": "السوتو الجنوبية", "su": "السوندانية", "suk": "السوكوما", "sus": "السوسو", "sux": "السومارية", "sv": "السويدية", "sw": "السواحلية", "sw-CD": "الكونغو السواحلية", "swb": "القمرية", "syc": "سريانية تقليدية", "syr": "السريانية", "ta": "التاميلية", "te": "التيلوغوية", "tem": "التيمن", "teo": "تيسو", "ter": "التيرينو", "tet": "التيتم", "tg": "الطاجيكية", "th": "التايلاندية", "ti": "التغرينية", "tig": "التيغرية", "tiv": "التيف", "tk": "التركمانية", "tkl": "التوكيلاو", "tl": "التاغالوغية", "tlh": "الكلينجون", "tli": "التلينغيتية", "tmh": "التاماشيك", "tn": "التسوانية", "to": "التونغية", "tog": "تونجا - نياسا", "tpi": "التوك بيسين", "tr": "التركية", "trv": "لغة التاروكو", "ts": "السونجا", "tsi": "التسيمشيان", "tt": "التترية", "tum": "التامبوكا", "tvl": "التوفالو", "tw": "التوي", "twq": "تاساواق", "ty": "التاهيتية", "tyv": "التوفية", "tzm": "الأمازيغية وسط الأطلس", "udm": "الأدمرت", "ug": "الأويغورية", "uga": "اليجاريتيك", "uk": "الأوكرانية", "umb": "الأمبندو", "ur": "الأوردية", "uz": "الأوزبكية", "vai": "الفاي", "ve": "الفيندا", "vi": "الفيتنامية", "vo": "لغة الفولابوك", "vot": "الفوتيك", "vun": "الفونجو", "wa": "الولونية", "wae": "الوالسر", "wal": "الولاياتا", "war": "الواراي", "was": "الواشو", "wbp": "وارلبيري", "wo": "الولوفية", "wuu": "الوو الصينية", "xal": "الكالميك", "xh": "الخوسا", "xog": "السوغا", "yao": "الياو", "yap": "اليابيز", "yav": "يانجبن", "ybb": "يمبا", "yi": "اليديشية", "yo": "اليوروبا", "yue": "الكَنْتُونية", "za": "الزهيونج", "zap": "الزابوتيك", "zbl": "رموز المعايير الأساسية", "zen": "الزيناجا", "zgh": "التمازيغية المغربية القياسية", "zh": "الصينية", "zh-Hans": "الصينية المبسطة", "zh-Hant": "الصينية التقليدية", "zu": "الزولو", "zun": "الزونية", "zza": "زازا"}, "scriptNames": {"Cyrl": "السيريلية", "Latn": "اللاتينية", "Arab": "العربية", "Guru": "الجرمخي", "Tfng": "التيفيناغ", "Vaii": "الفاي", "Hans": "المبسطة", "Hant": "التقليدية"}}, + "ast": {"rtl": false, "languageNames": {"aa": "afar", "ab": "abkhazianu", "ace": "achinés", "ach": "acoli", "ada": "adangme", "ady": "adyghe", "ae": "avestanín", "aeb": "árabe de Túnez", "af": "afrikaans", "afh": "afrihili", "agq": "aghem", "ain": "ainu", "ak": "akan", "akk": "acadianu", "akz": "alabama", "ale": "aleut", "aln": "gheg d’Albania", "alt": "altai del sur", "am": "amháricu", "an": "aragonés", "ang": "inglés antiguu", "anp": "angika", "ar": "árabe", "ar-001": "árabe estándar modernu", "arc": "araméu", "arn": "mapuche", "aro": "araona", "arp": "arapaho", "arq": "árabe d’Arxelia", "arw": "arawak", "ary": "árabe de Marruecos", "arz": "árabe d’Exiptu", "as": "asamés", "asa": "asu", "ase": "llingua de signos americana", "ast": "asturianu", "av": "aváricu", "avk": "kotava", "awa": "awadhi", "ay": "aymara", "az": "azerbaixanu", "ba": "bashkir", "bal": "baluchi", "ban": "balinés", "bar": "bávaru", "bas": "basaa", "bax": "bamun", "bbc": "batak toba", "bbj": "ghomala", "be": "bielorrusu", "bej": "beja", "bem": "bemba", "bew": "betawi", "bez": "bena", "bfd": "bafut", "bfq": "badaga", "bg": "búlgaru", "bgn": "balochi occidental", "bho": "bhojpuri", "bi": "bislama", "bik": "bikol", "bin": "bini", "bjn": "banjar", "bkm": "kom", "bla": "siksika", "bm": "bambara", "bn": "bengalín", "bo": "tibetanu", "bpy": "bishnupriya", "bqi": "bakhtiari", "br": "bretón", "bra": "braj", "brh": "brahui", "brx": "bodo", "bs": "bosniu", "bss": "akoose", "bua": "buriat", "bug": "buginés", "bum": "bulu", "byn": "blin", "byv": "medumba", "ca": "catalán", "cad": "caddo", "car": "caribe", "cay": "cayuga", "cch": "atsam", "ce": "chechenu", "ceb": "cebuanu", "cgg": "chiga", "ch": "chamorro", "chb": "chibcha", "chg": "chagatai", "chk": "chuukés", "chm": "mari", "chn": "xíriga chinook", "cho": "choctaw", "chp": "chipewyanu", "chr": "cheroqui", "chy": "cheyenne", "ckb": "kurdu central", "co": "corsu", "cop": "cópticu", "cps": "capiznon", "cr": "cree", "crh": "turcu de Crimea", "crs": "francés criollu seselwa", "cs": "checu", "csb": "kashubianu", "cu": "eslávicu eclesiásticu", "cv": "chuvash", "cy": "galés", "da": "danés", "dak": "dakota", "dar": "dargwa", "dav": "taita", "de": "alemán", "de-AT": "alemán d’Austria", "de-CH": "altualemán de Suiza", "del": "delaware", "den": "slave", "dgr": "dogrib", "din": "dinka", "dje": "zarma", "doi": "dogri", "dsb": "baxu sorbiu", "dtp": "dusun central", "dua": "duala", "dum": "neerlandés mediu", "dv": "divehi", "dyo": "jola-fonyi", "dyu": "dyula", "dz": "dzongkha", "dzg": "dazaga", "ebu": "embú", "ee": "ewe", "efi": "efik", "egl": "emilianu", "egy": "exipciu antiguu", "eka": "ekajuk", "el": "griegu", "elx": "elamita", "en": "inglés", "en-AU": "inglés d’Australia", "en-CA": "inglés de Canadá", "en-GB": "inglés de Gran Bretaña", "en-US": "inglés d’Estaos Xuníos", "enm": "inglés mediu", "eo": "esperanto", "es": "español", "es-419": "español d’América Llatina", "es-ES": "español européu", "es-MX": "español de Méxicu", "esu": "yupik central", "et": "estoniu", "eu": "vascu", "ewo": "ewondo", "ext": "estremeñu", "fa": "persa", "fan": "fang", "fat": "fanti", "ff": "fulah", "fi": "finlandés", "fil": "filipín", "fit": "finlandés de Tornedalen", "fj": "fixanu", "fo": "feroés", "fr": "francés", "fr-CA": "francés de Canadá", "fr-CH": "francés de Suiza", "frc": "francés cajun", "frm": "francés mediu", "fro": "francés antiguu", "frp": "arpitanu", "frr": "frisón del norte", "frs": "frisón oriental", "fur": "friulianu", "fy": "frisón occidental", "ga": "irlandés", "gaa": "ga", "gag": "gagauz", "gan": "chinu gan", "gay": "gayo", "gba": "gbaya", "gbz": "dari zoroastrianu", "gd": "gaélicu escocés", "gez": "geez", "gil": "gilbertés", "gl": "gallegu", "glk": "gilaki", "gmh": "altualemán mediu", "gn": "guaraní", "goh": "altualemán antiguu", "gom": "goan konkani", "gon": "gondi", "gor": "gorontalo", "got": "góticu", "grb": "grebo", "grc": "griegu antiguu", "gsw": "alemán de Suiza", "gu": "guyaratí", "guc": "wayuu", "gur": "frafra", "guz": "gusii", "gv": "manés", "gwi": "gwichʼin", "ha": "ḥausa", "hai": "haida", "hak": "chinu hakka", "haw": "hawaianu", "he": "hebréu", "hi": "hindi", "hif": "hindi de Fiji", "hil": "hiligaynon", "hit": "hitita", "hmn": "hmong", "ho": "hiri motu", "hr": "croata", "hsb": "altu sorbiu", "hsn": "chinu xiang", "ht": "haitianu", "hu": "húngaru", "hup": "hupa", "hy": "armeniu", "hz": "herero", "ia": "interlingua", "iba": "iban", "ibb": "ibibio", "id": "indonesiu", "ie": "interlingue", "ig": "igbo", "ii": "yi de Sichuán", "ik": "inupiaq", "ilo": "iloko", "inh": "ingush", "io": "ido", "is": "islandés", "it": "italianu", "iu": "inuktitut", "izh": "ingrianu", "ja": "xaponés", "jam": "inglés criollu xamaicanu", "jbo": "lojban", "jgo": "ngomba", "jmc": "machame", "jpr": "xudeo-persa", "jrb": "xudeo-árabe", "jut": "jutlandés", "jv": "xavanés", "ka": "xeorxanu", "kaa": "kara-kalpak", "kab": "kabileñu", "kac": "kachin", "kaj": "jju", "kam": "kamba", "kaw": "kawi", "kbd": "kabardianu", "kbl": "kanembu", "kcg": "tyap", "kde": "makonde", "kea": "cabuverdianu", "ken": "kenyang", "kfo": "koro", "kg": "kongo", "kgp": "kaingang", "kha": "khasi", "kho": "khotanés", "khq": "koyra chiini", "khw": "khowar", "ki": "kikuyu", "kiu": "kirmanjki", "kj": "kuanyama", "kk": "kazaquistanín", "kkj": "kako", "kl": "kalaallisut", "kln": "kalenjin", "km": "ḥemer", "kmb": "kimbundu", "kn": "canarés", "ko": "coreanu", "koi": "komi-permyak", "kok": "konkani", "kos": "kosraeanu", "kpe": "kpelle", "kr": "kanuri", "krc": "karachay-balkar", "kri": "krio", "krj": "kinaray-a", "krl": "karelianu", "kru": "kurukh", "ks": "cachemirés", "ksb": "shambala", "ksf": "bafia", "ksh": "colonianu", "ku": "curdu", "kum": "kumyk", "kut": "kutenai", "kv": "komi", "kw": "córnicu", "ky": "kirguistanín", "la": "llatín", "lad": "ladino", "lag": "langi", "lah": "lahnda", "lam": "lamba", "lb": "luxemburgués", "lez": "lezghianu", "lfn": "lingua franca nova", "lg": "ganda", "li": "limburgués", "lij": "ligurianu", "liv": "livonianu", "lkt": "lakota", "lmo": "lombardu", "ln": "lingala", "lo": "laosianu", "lol": "mongo", "loz": "lozi", "lrc": "luri del norte", "lt": "lituanu", "ltg": "latgalianu", "lu": "luba-katanga", "lua": "luba-lulua", "lui": "luiseno", "lun": "lunda", "lus": "mizo", "luy": "luyia", "lv": "letón", "lzh": "chinu lliterariu", "lzz": "laz", "mad": "madurés", "maf": "mafa", "mag": "magahi", "mai": "maithili", "mak": "makasar", "man": "mandingo", "mas": "masái", "mde": "maba", "mdf": "moksha", "mdr": "mandar", "men": "mende", "mer": "meru", "mfe": "morisyen", "mg": "malgaxe", "mga": "írlandés mediu", "mgh": "makhuwa-meetto", "mgo": "meta’", "mh": "marshallés", "mi": "maorí", "mic": "micmac", "min": "minangkabau", "mk": "macedoniu", "ml": "malayalam", "mn": "mongol", "mnc": "manchú", "mni": "manipuri", "moh": "mohawk", "mos": "mossi", "mr": "marathi", "mrj": "mari occidental", "ms": "malayu", "mt": "maltés", "mua": "mundang", "mus": "creek", "mwl": "mirandés", "mwr": "marwari", "mwv": "mentawai", "my": "birmanu", "mye": "myene", "myv": "erzya", "mzn": "mazanderani", "na": "nauru", "nan": "chinu min nan", "nap": "napolitanu", "naq": "nama", "nb": "noruegu Bokmål", "nd": "ndebele del norte", "nds": "baxu alemán", "nds-NL": "baxu saxón", "ne": "nepalés", "new": "newari", "ng": "ndonga", "nia": "nias", "niu": "niueanu", "njo": "ao naga", "nl": "neerlandés", "nl-BE": "flamencu", "nmg": "kwasio", "nn": "noruegu Nynorsk", "nnh": "ngiemboon", "no": "noruegu", "nog": "nogai", "non": "noruegu antiguu", "nov": "novial", "nqo": "n’ko", "nr": "ndebele del sur", "nso": "sotho del norte", "nus": "nuer", "nv": "navajo", "nwc": "newari clásicu", "ny": "nyanja", "nym": "nyamwezi", "nyn": "nyankole", "nyo": "nyoro", "nzi": "nzima", "oc": "occitanu", "oj": "ojibwa", "om": "oromo", "or": "oriya", "os": "oséticu", "osa": "osage", "ota": "turcu otomanu", "pa": "punyabí", "pag": "pangasinan", "pal": "pahlavi", "pam": "pampanga", "pap": "papiamento", "pau": "palauanu", "pcd": "pícaru", "pcm": "nixerianu simplificáu", "pdc": "alemán de Pennsylvania", "pdt": "plautdietsch", "peo": "persa antiguu", "pfl": "alemán palatinu", "phn": "feniciu", "pi": "pali", "pl": "polacu", "pms": "piamontés", "pnt": "pónticu", "pon": "pohnpeianu", "prg": "prusianu", "pro": "provenzal antiguu", "ps": "pashtu", "pt": "portugués", "pt-BR": "portugués del Brasil", "pt-PT": "portugués européu", "qu": "quechua", "quc": "kʼicheʼ", "qug": "quichua del altiplanu de Chimborazo", "raj": "rajasthanín", "rap": "rapanui", "rar": "rarotonganu", "rgn": "romañol", "rif": "rifianu", "rm": "romanche", "rn": "rundi", "ro": "rumanu", "ro-MD": "moldavu", "rof": "rombo", "rom": "romaní", "rtm": "rotumanu", "ru": "rusu", "rue": "rusyn", "rug": "roviana", "rup": "aromanianu", "rw": "kinyarwanda", "rwk": "rwa", "sa": "sánscritu", "sad": "sandavés", "sah": "sakha", "sam": "araméu samaritanu", "saq": "samburu", "sas": "sasak", "sat": "santali", "saz": "saurashtra", "sba": "ngambay", "sbp": "sangu", "sc": "sardu", "scn": "sicilianu", "sco": "scots", "sd": "sindhi", "sdc": "sardu sassarés", "sdh": "kurdu del sur", "se": "sami del norte", "see": "séneca", "seh": "sena", "sei": "seri", "sel": "selkup", "ses": "koyraboro senni", "sg": "sango", "sga": "irlandés antiguu", "sgs": "samogitianu", "sh": "serbo-croata", "shi": "tachelhit", "shn": "shan", "shu": "árabe chadianu", "si": "cingalés", "sid": "sidamo", "sk": "eslovacu", "sl": "eslovenu", "sli": "baxu silesianu", "sly": "selayarés", "sm": "samoanu", "sma": "sami del sur", "smj": "lule sami", "smn": "inari sami", "sms": "skolt sami", "sn": "shona", "snk": "soninke", "so": "somalín", "sog": "sogdianu", "sq": "albanu", "sr": "serbiu", "srn": "sranan tongo", "srr": "serer", "ss": "swati", "ssy": "saho", "st": "sotho del sur", "stq": "frisón de Saterland", "su": "sondanés", "suk": "sukuma", "sus": "susu", "sux": "sumeriu", "sv": "suecu", "sw": "suaḥili", "sw-CD": "suaḥili del Congu", "swb": "comorianu", "syc": "siriacu clásicu", "syr": "siriacu", "szl": "silesianu", "ta": "tamil", "tcy": "tulu", "te": "telugu", "tem": "timne", "teo": "teso", "ter": "terena", "tet": "tetum", "tg": "taxiquistanín", "th": "tailandés", "ti": "tigrinya", "tig": "tigre", "tk": "turcomanu", "tkl": "tokelau", "tkr": "tsakhur", "tl": "tagalog", "tlh": "klingon", "tli": "tlingit", "tly": "talixín", "tmh": "tamashek", "tn": "tswana", "to": "tonganu", "tog": "tonga nyasa", "tpi": "tok pisin", "tr": "turcu", "tru": "turoyo", "trv": "taroko", "ts": "tsonga", "tsd": "tsakoniu", "tsi": "tsimshian", "tt": "tártaru", "ttt": "tati musulmán", "tum": "tumbuka", "tvl": "tuvalu", "tw": "twi", "twq": "tasawaq", "ty": "tahitianu", "tyv": "tuvinianu", "tzm": "tamazight del Atles central", "udm": "udmurt", "ug": "uigur", "uga": "ugaríticu", "uk": "ucraín", "umb": "umbundu", "ur": "urdu", "uz": "uzbequistanín", "ve": "venda", "vec": "venecianu", "vep": "vepsiu", "vi": "vietnamín", "vls": "flamencu occidental", "vmf": "franconianu del Main", "vo": "volapük", "vot": "vóticu", "vro": "voro", "vun": "vunjo", "wa": "valón", "wae": "walser", "wal": "wolaytta", "war": "waray", "was": "washo", "wbp": "warlpiri", "wo": "wolof", "wuu": "chinu wu", "xal": "calmuco", "xh": "xhosa", "xmf": "mingrelianu", "xog": "soga", "yap": "yapés", "yav": "yangben", "ybb": "yemba", "yi": "yiddish", "yo": "yoruba", "yrl": "nheengatu", "yue": "cantonés", "za": "zhuang", "zap": "zapoteca", "zbl": "simbólicu Bliss", "zea": "zeelandés", "zen": "zenaga", "zgh": "tamazight estándar de Marruecos", "zh": "chinu", "zh-Hans": "chinu simplificáu", "zh-Hant": "chinu tradicional", "zu": "zulú", "zun": "zuni", "zza": "zaza"}, "scriptNames": {"Cyrl": "cirílicu", "Latn": "llatín", "Arab": "árabe", "Guru": "gurmukhi", "Tfng": "tifinagh", "Vaii": "vai", "Hans": "simplificáu", "Hant": "tradicional"}}, + "be": {"rtl": false, "languageNames": {"aa": "афарская", "ab": "абхазская", "ace": "ачэх", "ada": "адангмэ", "ady": "адыгейская", "af": "афрыкаанс", "agq": "агем", "ain": "айнская", "ak": "акан", "akk": "акадская", "ale": "алеуцкая", "alt": "паўднёваалтайская", "am": "амхарская", "an": "арагонская", "ang": "стараанглійская", "anp": "ангіка", "ar": "арабская", "ar-001": "арабская (Свет)", "arc": "арамейская", "arn": "мапудунгун", "arp": "арапаха", "as": "асамская", "asa": "асу", "ast": "астурыйская", "av": "аварская", "awa": "авадхі", "ay": "аймара", "az": "азербайджанская", "ba": "башкірская", "ban": "балійская", "bas": "басаа", "be": "беларуская", "bem": "бемба", "bez": "бена", "bg": "балгарская", "bgn": "заходняя белуджская", "bho": "бхаджпуры", "bi": "біслама", "bin": "эда", "bla": "блэкфут", "bm": "бамбара", "bn": "бенгальская", "bo": "тыбецкая", "br": "брэтонская", "brx": "бода", "bs": "баснійская", "bua": "бурацкая", "bug": "бугіс", "byn": "білен", "ca": "каталанская", "ce": "чачэнская", "ceb": "себуана", "cgg": "чыга", "ch": "чамора", "chb": "чыбча", "chk": "чуук", "chm": "мары", "cho": "чокта", "chr": "чэрокі", "chy": "шэйен", "ckb": "цэнтральнакурдская", "co": "карсіканская", "cop": "копцкая", "crs": "сэсэльва", "cs": "чэшская", "cu": "царкоўнаславянская", "cv": "чувашская", "cy": "валійская", "da": "дацкая", "dak": "дакота", "dar": "даргінская", "dav": "таіта", "de": "нямецкая", "de-AT": "нямецкая (Аўстрыя)", "de-CH": "нямецкая (Швейцарыя)", "dgr": "догрыб", "dje": "зарма", "dsb": "ніжнялужыцкая", "dua": "дуала", "dv": "мальдыўская", "dyo": "джола-фоньі", "dz": "дзонг-кэ", "dzg": "дазага", "ebu": "эмбу", "ee": "эве", "efi": "эфік", "egy": "старажытнаегіпецкая", "eka": "экаджук", "el": "грэчаская", "en": "англійская", "en-AU": "англійская (Аўстралія)", "en-CA": "англійская (Канада)", "en-GB": "англійская (Вялікабрытанія)", "en-US": "англійская (Злучаныя Штаты Амерыкі)", "eo": "эсперанта", "es": "іспанская", "es-419": "іспанская (Лацінская Амерыка)", "es-ES": "іспанская (Іспанія)", "es-MX": "іспанская (Мексіка)", "et": "эстонская", "eu": "баскская", "ewo": "эвонда", "fa": "фарсі", "ff": "фула", "fi": "фінская", "fil": "філіпінская", "fj": "фіджыйская", "fo": "фарэрская", "fon": "фон", "fr": "французская", "fr-CA": "французская (Канада)", "fr-CH": "французская (Швейцарыя)", "fro": "старафранцузская", "fur": "фрыульская", "fy": "заходняя фрызская", "ga": "ірландская", "gaa": "га", "gag": "гагаузская", "gd": "шатландская гэльская", "gez": "геэз", "gil": "кірыбаці", "gl": "галісійская", "gn": "гуарані", "gor": "гарантала", "grc": "старажытнагрэчаская", "gsw": "швейцарская нямецкая", "gu": "гуджараці", "guz": "гусіі", "gv": "мэнская", "gwi": "гуіч’ін", "ha": "хауса", "haw": "гавайская", "he": "іўрыт", "hi": "хіндзі", "hil": "хілігайнон", "hmn": "хмонг", "hr": "харвацкая", "hsb": "верхнялужыцкая", "ht": "гаіцянская крэольская", "hu": "венгерская", "hup": "хупа", "hy": "армянская", "hz": "герэра", "ia": "інтэрлінгва", "iba": "ібан", "ibb": "ібібія", "id": "інданезійская", "ie": "інтэрлінгвэ", "ig": "ігба", "ii": "сычуаньская йі", "ilo": "ілакана", "inh": "інгушская", "io": "іда", "is": "ісландская", "it": "італьянская", "iu": "інуктытут", "ja": "японская", "jbo": "ложбан", "jgo": "нгомба", "jmc": "мачамбэ", "jv": "яванская", "ka": "грузінская", "kab": "кабільская", "kac": "качынская", "kaj": "дджу", "kam": "камба", "kbd": "кабардзінская", "kcg": "т’яп", "kde": "макондэ", "kea": "кабувердыяну", "kfo": "кора", "kha": "кхасі", "khq": "койра чыіні", "ki": "кікуйю", "kj": "куаньяма", "kk": "казахская", "kkj": "како", "kl": "грэнландская", "kln": "календжын", "km": "кхмерская", "kmb": "кімбунду", "kn": "канада", "ko": "карэйская", "koi": "комі-пярмяцкая", "kok": "канкані", "kpe": "кпеле", "kr": "кануры", "krc": "карачай-балкарская", "krl": "карэльская", "kru": "курух", "ks": "кашмірская", "ksb": "шамбала", "ksf": "бафія", "ksh": "кёльнская", "ku": "курдская", "kum": "кумыцкая", "kv": "комі", "kw": "корнская", "ky": "кіргізская", "la": "лацінская", "lad": "ладына", "lag": "лангі", "lb": "люксембургская", "lez": "лезгінская", "lg": "ганда", "li": "лімбургская", "lkt": "лакота", "ln": "лінгала", "lo": "лаоская", "lol": "монга", "loz": "лозі", "lrc": "паўночная луры", "lt": "літоўская", "lu": "луба-катанга", "lua": "луба-касаі", "lun": "лунда", "luo": "луо", "lus": "мізо", "luy": "луйя", "lv": "латышская", "mad": "мадурская", "mag": "магахі", "mai": "майтхілі", "mak": "макасар", "man": "мандынг", "mas": "маасай", "mdf": "макшанская", "men": "мендэ", "mer": "меру", "mfe": "марысьен", "mg": "малагасійская", "mgh": "макуўа-меета", "mgo": "мета", "mh": "маршальская", "mi": "маары", "mic": "мікмак", "min": "мінангкабау", "mk": "македонская", "ml": "малаялам", "mn": "мангольская", "mni": "мейтэй", "moh": "мохак", "mos": "мосі", "mr": "маратхі", "ms": "малайская", "mt": "мальтыйская", "mua": "мунданг", "mus": "мускогі", "mwl": "мірандыйская", "my": "бірманская", "myv": "эрзянская", "mzn": "мазандэранская", "na": "науру", "nap": "неапалітанская", "naq": "нама", "nb": "нарвежская (букмол)", "nd": "паўночная ндэбеле", "nds": "ніжненямецкая", "nds-NL": "ніжнесаксонская", "ne": "непальская", "new": "неўары", "ng": "ндонга", "nia": "ніас", "niu": "ніўэ", "nl": "нідэрландская", "nl-BE": "нідэрландская (Бельгія)", "nmg": "нгумба", "nn": "нарвежская (нюношк)", "nnh": "нг’ембон", "no": "нарвежская", "nog": "нагайская", "non": "старанарвежская", "nqo": "нко", "nr": "паўднёвая ндэбеле", "nso": "паўночная сота", "nus": "нуэр", "nv": "наваха", "ny": "ньянджа", "nyn": "ньянколе", "oc": "аксітанская", "oj": "аджыбва", "om": "арома", "or": "орыя", "os": "асецінская", "pa": "панджабі", "pag": "пангасінан", "pam": "пампанга", "pap": "пап’яменту", "pau": "палау", "pcm": "нігерыйскі піджын", "peo": "стараперсідская", "phn": "фінікійская", "pl": "польская", "prg": "пруская", "pro": "стараправансальская", "ps": "пушту", "pt": "партугальская", "pt-BR": "бразільская партугальская", "pt-PT": "еўрапейская партугальская", "qu": "кечуа", "quc": "кічэ", "raj": "раджастханская", "rap": "рапануі", "rar": "раратонг", "rm": "рэтараманская", "rn": "рундзі", "ro": "румынская", "ro-MD": "малдаўская", "rof": "ромба", "root": "корань", "ru": "руская", "rup": "арумунская", "rw": "руанда", "rwk": "руа", "sa": "санскрыт", "sad": "сандаўэ", "sah": "якуцкая", "saq": "самбуру", "sat": "санталі", "sba": "нгамбай", "sbp": "сангу", "sc": "сардзінская", "scn": "сіцылійская", "sco": "шатландская", "sd": "сіндхі", "sdh": "паўднёвакурдская", "se": "паўночнасаамская", "seh": "сена", "ses": "кайрабора сэні", "sg": "санга", "sga": "стараірландская", "sh": "сербскахарвацкая", "shi": "ташэльхіт", "shn": "шан", "si": "сінгальская", "sk": "славацкая", "sl": "славенская", "sm": "самоа", "sma": "паўднёвасаамская", "smj": "луле-саамская", "smn": "інары-саамская", "sms": "колта-саамская", "sn": "шона", "snk": "санінке", "so": "самалі", "sq": "албанская", "sr": "сербская", "srn": "сранан-тонга", "ss": "суаці", "ssy": "саха", "st": "сесута", "su": "сунда", "suk": "сукума", "sux": "шумерская", "sv": "шведская", "sw": "суахілі", "sw-CD": "кангалезская суахілі", "swb": "каморская", "syr": "сірыйская", "ta": "тамільская", "te": "тэлугу", "tem": "тэмнэ", "teo": "тэсо", "tet": "тэтум", "tg": "таджыкская", "th": "тайская", "ti": "тыгрынья", "tig": "тыгрэ", "tk": "туркменская", "tlh": "клінган", "tn": "тсвана", "to": "танганская", "tpi": "ток-пісін", "tr": "турэцкая", "trv": "тарока", "ts": "тсонга", "tt": "татарская", "tum": "тумбука", "tvl": "тувалу", "twq": "тасаўак", "ty": "таіці", "tyv": "тувінская", "tzm": "цэнтральнаатлаская тамазіхт", "udm": "удмурцкая", "ug": "уйгурская", "uk": "украінская", "umb": "умбунду", "ur": "урду", "uz": "узбекская", "vai": "ваі", "ve": "венда", "vi": "в’етнамская", "vo": "валапюк", "vun": "вунджо", "wa": "валонская", "wae": "вальшская", "wal": "волайта", "war": "варай", "wbp": "варлпіры", "wo": "валоф", "xal": "калмыцкая", "xh": "коса", "xog": "сога", "yav": "янгбэн", "ybb": "йемба", "yi": "ідыш", "yo": "ёруба", "yue": "кантонскі дыялект кітайскай", "zap": "сапатэк", "zgh": "стандартная мараканская тамазіхт", "zh": "кітайская", "zh-Hans": "кітайская (спрошчаныя іерогліфы)", "zh-Hant": "кітайская (традыцыйныя іерогліфы)", "zu": "зулу", "zun": "зуні", "zza": "зазакі"}, "scriptNames": {"Cyrl": "кірыліца", "Latn": "лацініца", "Arab": "арабскае", "Guru": "гурмукхі", "Hans": "спрошчанае кітайскае", "Hant": "традыцыйнае кітайскае"}}, + "bg": {"rtl": false, "languageNames": {"aa": "афарски", "ab": "абхазки", "ace": "ачешки", "ach": "аколи", "ada": "адангме", "ady": "адигейски", "ae": "авестски", "af": "африканс", "afh": "африхили", "agq": "агем", "ain": "айну", "ak": "акан", "akk": "акадски", "ale": "алеутски", "alt": "южноалтайски", "am": "амхарски", "an": "арагонски", "ang": "староанглийски", "anp": "ангика", "ar": "арабски", "ar-001": "съвременен стандартен арабски", "arc": "арамейски", "arn": "мапуче", "arp": "арапахо", "arw": "аравак", "as": "асамски", "asa": "асу", "ast": "астурски", "av": "аварски", "awa": "авади", "ay": "аймара", "az": "азербайджански", "ba": "башкирски", "bal": "балучи", "ban": "балийски", "bas": "баса", "be": "беларуски", "bej": "бея", "bem": "бемба", "bez": "бена", "bg": "български", "bgn": "западен балочи", "bho": "боджпури", "bi": "бислама", "bik": "биколски", "bin": "бини", "bla": "сиксика", "bm": "бамбара", "bn": "бенгалски", "bo": "тибетски", "br": "бретонски", "bra": "брадж", "brx": "бодо", "bs": "босненски", "bua": "бурятски", "bug": "бугински", "byn": "биленски", "ca": "каталонски", "cad": "каддо", "car": "карибски", "cch": "атсам", "ce": "чеченски", "ceb": "себуански", "cgg": "чига", "ch": "чаморо", "chb": "чибча", "chg": "чагатай", "chk": "чуук", "chm": "марийски", "chn": "жаргон чинуук", "cho": "чокто", "chp": "чиипувски", "chr": "черокски", "chy": "шайенски", "ckb": "кюрдски (централен)", "co": "корсикански", "cop": "коптски", "cr": "крии", "crh": "кримскотатарски", "crs": "сеселва, креолски френски", "cs": "чешки", "csb": "кашубски", "cu": "църковнославянски", "cv": "чувашки", "cy": "уелски", "da": "датски", "dak": "дакотски", "dar": "даргински", "dav": "таита", "de": "немски", "de-AT": "немски (Австрия)", "de-CH": "немски (Швейцария)", "del": "делауер", "den": "слейви", "dgr": "догриб", "din": "динка", "dje": "зарма", "doi": "догри", "dsb": "долнолужишки", "dua": "дуала", "dum": "средновековен холандски", "dv": "дивехи", "dyo": "диола-фони", "dyu": "диула", "dz": "дзонгкха", "dzg": "дазага", "ebu": "ембу", "ee": "еве", "efi": "ефик", "egy": "древноегипетски", "eka": "екажук", "el": "гръцки", "elx": "еламитски", "en": "английски", "en-AU": "английски (Австралия)", "en-CA": "английски (Канада)", "en-GB": "английски (Обединеното кралство)", "en-US": "английски (САЩ)", "enm": "средновековен английски", "eo": "есперанто", "es": "испански", "es-419": "испански (Латинска Америка)", "es-ES": "испански (Испания)", "es-MX": "испански (Мексико)", "et": "естонски", "eu": "баски", "ewo": "евондо", "fa": "персийски", "fan": "фанг", "fat": "фанти", "ff": "фула", "fi": "фински", "fil": "филипински", "fj": "фиджийски", "fo": "фарьорски", "fon": "фон", "fr": "френски", "fr-CA": "френски (Канада)", "fr-CH": "френски (Швейцария)", "frm": "средновековен френски", "fro": "старофренски", "frr": "северен фризски", "frs": "източнофризийски", "fur": "фриулиански", "fy": "западнофризийски", "ga": "ирландски", "gaa": "га", "gag": "гагаузки", "gay": "гайо", "gba": "гбая", "gd": "шотландски галски", "gez": "гииз", "gil": "гилбертски", "gl": "галисийски", "gmh": "средновисоконемски", "gn": "гуарани", "goh": "старовисоконемски", "gon": "гонди", "gor": "горонтало", "got": "готически", "grb": "гребо", "grc": "древногръцки", "gsw": "швейцарски немски", "gu": "гуджарати", "guz": "гусии", "gv": "манкски", "gwi": "гвичин", "ha": "хауса", "hai": "хайда", "haw": "хавайски", "he": "иврит", "hi": "хинди", "hil": "хилигайнон", "hit": "хитски", "hmn": "хмонг", "ho": "хири моту", "hr": "хърватски", "hsb": "горнолужишки", "ht": "хаитянски креолски", "hu": "унгарски", "hup": "хупа", "hy": "арменски", "hz": "хереро", "ia": "интерлингва", "iba": "ибан", "ibb": "ибибио", "id": "индонезийски", "ie": "оксидентал", "ig": "игбо", "ii": "съчуански и", "ik": "инупиак", "ilo": "илоко", "inh": "ингушетски", "io": "идо", "is": "исландски", "it": "италиански", "iu": "инуктитут", "ja": "японски", "jbo": "ложбан", "jgo": "нгомба", "jmc": "мачаме", "jpr": "юдео-персийски", "jrb": "юдео-арабски", "jv": "явански", "ka": "грузински", "kaa": "каракалпашки", "kab": "кабилски", "kac": "качински", "kaj": "жжу", "kam": "камба", "kaw": "кави", "kbd": "кабардиан", "kcg": "туап", "kde": "маконде", "kea": "кабовердиански", "kfo": "коро", "kg": "конгоански", "kha": "кхаси", "kho": "котски", "khq": "койра чиини", "ki": "кикую", "kj": "кваняма", "kk": "казахски", "kkj": "како", "kl": "гренландски", "kln": "календжин", "km": "кхмерски", "kmb": "кимбунду", "kn": "каннада", "ko": "корейски", "koi": "коми-пермякски", "kok": "конкани", "kos": "косраен", "kpe": "кпеле", "kr": "канури", "krc": "карачай-балкарски", "krl": "карелски", "kru": "курук", "ks": "кашмирски", "ksb": "шамбала", "ksf": "бафия", "ksh": "кьолнски", "ku": "кюрдски", "kum": "кумикски", "kut": "кутенай", "kv": "коми", "kw": "корнуолски", "ky": "киргизки", "la": "латински", "lad": "ладино", "lag": "ланги", "lah": "лахнда", "lam": "ламба", "lb": "люксембургски", "lez": "лезгински", "lg": "ганда", "li": "лимбургски", "lkt": "лакота", "ln": "лингала", "lo": "лаоски", "lol": "монго", "loz": "лози", "lrc": "северен лури", "lt": "литовски", "lu": "луба-катанга", "lua": "луба-лулуа", "lui": "луисеньо", "lun": "лунда", "luo": "луо", "lus": "мизо", "luy": "лухя", "lv": "латвийски", "mad": "мадурски", "mag": "магахи", "mai": "майтхили", "mak": "макасар", "man": "мандинго", "mas": "масайски", "mdf": "мокша", "mdr": "мандар", "men": "менде", "mer": "меру", "mfe": "морисиен", "mg": "малгашки", "mga": "средновековен ирландски", "mgh": "макуа мето", "mgo": "мета", "mh": "маршалезе", "mi": "маорски", "mic": "микмак", "min": "минангкабау", "mk": "македонски", "ml": "малаялам", "mn": "монголски", "mnc": "манджурски", "mni": "манипурски", "moh": "мохоук", "mos": "моси", "mr": "марати", "ms": "малайски", "mt": "малтийски", "mua": "мунданг", "mus": "мускогски", "mwl": "мирандийски", "mwr": "марвари", "my": "бирмански", "myv": "ерзиа", "mzn": "мазандари", "na": "науру", "nap": "неаполитански", "naq": "нама", "nb": "норвежки (букмол)", "nd": "северен ндебеле", "nds": "долнонемски", "nds-NL": "долносаксонски", "ne": "непалски", "new": "неварски", "ng": "ндонга", "nia": "ниас", "niu": "ниуеан", "nl": "нидерландски", "nl-BE": "фламандски", "nmg": "квасио", "nn": "норвежки (нюношк)", "nnh": "нгиембун", "no": "норвежки", "nog": "ногаи", "non": "старонорвежки", "nqo": "нко", "nr": "южен ндебеле", "nso": "северен сото", "nus": "нуер", "nv": "навахо", "nwc": "класически невари", "ny": "нянджа", "nym": "ниамвези", "nyn": "нянколе", "nyo": "нуоро", "nzi": "нзима", "oc": "окситански", "oj": "оджибва", "om": "оромо", "or": "ория", "os": "осетски", "osa": "осейджи", "ota": "отомански турски", "pa": "пенджабски", "pag": "пангасинан", "pal": "пахлави", "pam": "пампанга", "pap": "папиаменто", "pau": "палауан", "pcm": "нигерийски пиджин", "peo": "староперсийски", "phn": "финикийски", "pi": "пали", "pl": "полски", "pon": "понапеан", "prg": "пруски", "pro": "старопровансалски", "ps": "пущу", "pt": "португалски", "pt-BR": "португалски (Бразилия)", "pt-PT": "португалски (Португалия)", "qu": "кечуа", "quc": "киче", "raj": "раджастански", "rap": "рапа нуи", "rar": "раротонга", "rm": "реторомански", "rn": "рунди", "ro": "румънски", "ro-MD": "молдовски", "rof": "ромбо", "rom": "ромски", "root": "роот", "ru": "руски", "rup": "арумънски", "rw": "киняруанда", "rwk": "рва", "sa": "санскрит", "sad": "сандаве", "sah": "якутски", "sam": "самаритански арамейски", "saq": "самбуру", "sas": "сасак", "sat": "сантали", "sba": "нгамбай", "sbp": "сангу", "sc": "сардински", "scn": "сицилиански", "sco": "шотландски", "sd": "синдхи", "sdh": "южнокюрдски", "se": "северносаамски", "seh": "сена", "sel": "селкуп", "ses": "койраборо сени", "sg": "санго", "sga": "староирландски", "sh": "сърбохърватски", "shi": "ташелхит", "shn": "шан", "si": "синхалски", "sid": "сидамо", "sk": "словашки", "sl": "словенски", "sm": "самоански", "sma": "южносаамски", "smj": "луле-саамски", "smn": "инари-саамски", "sms": "сколт-саамски", "sn": "шона", "snk": "сонинке", "so": "сомалийски", "sog": "согдийски", "sq": "албански", "sr": "сръбски", "srn": "сранан тонго", "srr": "серер", "ss": "свати", "ssy": "сахо", "st": "сесото", "su": "сундански", "suk": "сукума", "sus": "сусу", "sux": "шумерски", "sv": "шведски", "sw": "суахили", "sw-CD": "конгоански суахили", "swb": "коморски", "syc": "класически сирийски", "syr": "сирийски", "ta": "тамилски", "te": "телугу", "tem": "темне", "teo": "тесо", "ter": "терено", "tet": "тетум", "tg": "таджикски", "th": "тайски", "ti": "тигриня", "tig": "тигре", "tiv": "тив", "tk": "туркменски", "tkl": "токелайски", "tl": "тагалог", "tlh": "клингонски", "tli": "тлингит", "tmh": "тамашек", "tn": "тсвана", "to": "тонгански", "tog": "нианса тонга", "tpi": "ток писин", "tr": "турски", "trv": "тароко", "ts": "цонга", "tsi": "цимшиански", "tt": "татарски", "tum": "тумбука", "tvl": "тувалуански", "tw": "туи", "twq": "тасавак", "ty": "таитянски", "tyv": "тувински", "tzm": "централноатласки тамазигт", "udm": "удмуртски", "ug": "уйгурски", "uga": "угаритски", "uk": "украински", "umb": "умбунду", "ur": "урду", "uz": "узбекски", "vai": "ваи", "ve": "венда", "vi": "виетнамски", "vo": "волапюк", "vot": "вотик", "vun": "вунджо", "wa": "валонски", "wae": "валзерски немски", "wal": "валамо", "war": "варай", "was": "уашо", "wbp": "валпири", "wo": "волоф", "xal": "калмик", "xh": "ксоса", "xog": "сога", "yao": "яо", "yap": "япезе", "yav": "янгбен", "ybb": "йемба", "yi": "идиш", "yo": "йоруба", "yue": "кантонски", "za": "зуанг", "zap": "запотек", "zbl": "блис символи", "zen": "зенага", "zgh": "стандартен марокански тамазигт", "zh": "китайски", "zh-Hans": "китайски (опростен)", "zh-Hant": "китайски (традиционен)", "zu": "зулуски", "zun": "зуни", "zza": "заза"}, "scriptNames": {"Cyrl": "кирилица", "Latn": "латиница", "Arab": "арабска", "Guru": "гурмукхи", "Vaii": "Вайска", "Hans": "опростена", "Hant": "традиционен"}}, + "bn": {"rtl": false, "languageNames": {"aa": "আফার", "ab": "আবখাজিয়ান", "ace": "অ্যাচাইনিজ", "ach": "আকোলি", "ada": "অদাগ্মে", "ady": "আদেগে", "ae": "আবেস্তীয়", "af": "আফ্রিকান", "afh": "আফ্রিহিলি", "agq": "এঘেম", "ain": "আইনু", "ak": "আকান", "akk": "আক্কাদিয়ান", "ale": "আলেউত", "alt": "দক্ষিন আলতাই", "am": "আমহারিক", "an": "আর্গোনিজ", "ang": "প্রাচীন ইংরেজী", "anp": "আঙ্গিকা", "ar": "আরবী", "ar-001": "আধুনিক আদর্শ আরবী", "arc": "আরামাইক", "arn": "মাপুচি", "arp": "আরাপাহো", "arw": "আরাওয়াক", "as": "অসমীয়া", "asa": "আসু", "ast": "আস্তুরিয়", "av": "আভেরিক", "awa": "আওয়াধি", "ay": "আয়মারা", "az": "আজারবাইজানী", "ba": "বাশকির", "bal": "বেলুচী", "ban": "বালিনীয়", "bas": "বাসা", "be": "বেলারুশিয়", "bej": "বেজা", "bem": "বেম্বা", "bez": "বেনা", "bg": "বুলগেরিয়", "bgn": "পশ্চিম বালোচি", "bho": "ভোজপুরি", "bi": "বিসলামা", "bik": "বিকোল", "bin": "বিনি", "bla": "সিকসিকা", "bm": "বামবারা", "bn": "বাংলা", "bo": "তিব্বতি", "br": "ব্রেটন", "bra": "ব্রাজ", "brx": "বোড়ো", "bs": "বসনীয়ান", "bua": "বুরিয়াত", "bug": "বুগিনি", "byn": "ব্লিন", "ca": "কাতালান", "cad": "ক্যাডো", "car": "ক্যারিব", "cch": "আত্সাম", "ce": "চেচেন", "ceb": "চেবুয়ানো", "cgg": "চিগা", "ch": "চামোরো", "chb": "চিবচা", "chg": "চাগাতাই", "chk": "চুকি", "chm": "মারি", "chn": "চিনুক জার্গন", "cho": "চকটোও", "chp": "চিপেওয়ান", "chr": "চেরোকী", "chy": "শাইয়েন", "ckb": "মধ্য কুর্দিশ", "co": "কর্সিকান", "cop": "কপটিক", "cr": "ক্রি", "crh": "ক্রিমিয়ান তুর্কি", "crs": "সেসেলওয়া ক্রেওল ফ্রেঞ্চ", "cs": "চেক", "csb": "কাশুবিয়ান", "cu": "চার্চ স্লাভিক", "cv": "চুবাস", "cy": "ওয়েলশ", "da": "ডেনিশ", "dak": "ডাকোটা", "dar": "দার্গওয়া", "dav": "তাইতা", "de": "জার্মান", "de-AT": "অস্ট্রিয়ান জার্মান", "de-CH": "সুইস হাই জার্মান", "del": "ডেলাওয়ের", "den": "স্ল্যাভ", "dgr": "দোগ্রীব", "din": "ডিংকা", "dje": "জার্মা", "doi": "ডোগরি", "dsb": "নিম্নতর সোর্বিয়ান", "dua": "দুয়ালা", "dum": "মধ্য ডাচ", "dv": "দিবেহি", "dyo": "জোলা-ফনী", "dyu": "ডিউলা", "dz": "জোঙ্গা", "dzg": "দাজাগা", "ebu": "এম্বু", "ee": "ইউয়ি", "efi": "এফিক", "egy": "প্রাচীন মিশরীয়", "eka": "ইকাজুক", "el": "গ্রিক", "elx": "এলামাইট", "en": "ইংরেজি", "en-AU": "অস্ট্রেলীয় ইংরেজি", "en-CA": "কানাডীয় ইংরেজি", "en-GB": "ব্রিটিশ ইংরেজি", "en-US": "আমেরিকার ইংরেজি", "enm": "মধ্য ইংরেজি", "eo": "এস্পেরান্তো", "es": "স্প্যানিশ", "es-419": "ল্যাটিন আমেরিকান স্প্যানিশ", "es-ES": "ইউরোপীয় স্প্যানিশ", "es-MX": "ম্যাক্সিকান স্প্যানিশ", "et": "এস্তোনীয়", "eu": "বাস্ক", "ewo": "ইওন্ডো", "fa": "ফার্সি", "fan": "ফ্যাঙ্গ", "fat": "ফান্তি", "ff": "ফুলাহ্", "fi": "ফিনিশ", "fil": "ফিলিপিনো", "fj": "ফিজিআন", "fo": "ফারোস", "fon": "ফন", "fr": "ফরাসি", "fr-CA": "কানাডীয় ফরাসি", "fr-CH": "সুইস ফরাসি", "frc": "কাজুন ফরাসি", "frm": "মধ্য ফরাসি", "fro": "প্রাচীন ফরাসি", "frr": "উত্তরাঞ্চলীয় ফ্রিসিয়ান", "frs": "পূর্ব ফ্রিসিয়", "fur": "ফ্রিউলিয়ান", "fy": "পশ্চিম ফ্রিসিয়ান", "ga": "আইরিশ", "gaa": "গা", "gag": "গাগাউজ", "gay": "গায়ো", "gba": "বায়া", "gd": "স্কটস-গ্যেলিক", "gez": "গীজ", "gil": "গিলবার্টিজ", "gl": "গ্যালিশিয়", "gmh": "মধ্য-উচ্চ জার্মানি", "gn": "গুয়ারানি", "goh": "প্রাচীন উচ্চ জার্মানি", "gon": "গোন্ডি", "gor": "গোরোন্তালো", "got": "গথিক", "grb": "গ্রেবো", "grc": "প্রাচীন গ্রীক", "gsw": "সুইস জার্মান", "gu": "গুজরাটি", "guz": "গুসী", "gv": "ম্যাঙ্কস", "gwi": "গওইচ্’ইন", "ha": "হাউসা", "hai": "হাইডা", "haw": "হাওয়াইয়ান", "he": "হিব্রু", "hi": "হিন্দি", "hil": "হিলিগ্যায়নোন", "hit": "হিট্টিট", "hmn": "হ্‌মোঙ", "ho": "হিরি মোতু", "hr": "ক্রোয়েশীয়", "hsb": "উচ্চ সোর্বিয়ান", "hsn": "Xiang চীনা", "ht": "হাইতিয়ান ক্রেওল", "hu": "হাঙ্গেরীয়", "hup": "হুপা", "hy": "আর্মেনিয়", "hz": "হেরেরো", "ia": "ইন্টারলিঙ্গুয়া", "iba": "ইবান", "ibb": "ইবিবিও", "id": "ইন্দোনেশীয়", "ie": "ইন্টারলিঙ্গ", "ig": "ইগ্‌বো", "ii": "সিচুয়ান য়ি", "ik": "ইনুপিয়াক", "ilo": "ইলোকো", "inh": "ইঙ্গুশ", "io": "ইডো", "is": "আইসল্যান্ডীয়", "it": "ইতালিয়", "iu": "ইনুক্টিটুট", "ja": "জাপানি", "jbo": "লোজবান", "jgo": "গোম্বা", "jmc": "মাকামে", "jpr": "জুদেও ফার্সি", "jrb": "জুদেও আরবি", "jv": "জাভানিজ", "ka": "জর্জিয়ান", "kaa": "কারা-কাল্পাক", "kab": "কাবাইলে", "kac": "কাচিন", "kaj": "অজ্জু", "kam": "কাম্বা", "kaw": "কাউই", "kbd": "কাবার্ডিয়ান", "kcg": "টাইয়াপ", "kde": "মাকোন্দে", "kea": "কাবুভারদিয়ানু", "kfo": "কোরো", "kg": "কঙ্গো", "kha": "খাশি", "kho": "খোটানিজ", "khq": "কোয়রা চীনি", "ki": "কিকুয়ু", "kj": "কোয়ানিয়ামা", "kk": "কাজাখ", "kkj": "কাকো", "kl": "ক্যালাল্লিসুট", "kln": "কালেনজিন", "km": "খমের", "kmb": "কিম্বুন্দু", "kn": "কন্নড়", "ko": "কোরিয়ান", "koi": "কমি-পারমিআক", "kok": "কোঙ্কানি", "kos": "কোস্রাইন", "kpe": "ক্‌পেল্লে", "kr": "কানুরি", "krc": "কারচে-বাল্কার", "krl": "কারেলিয়ান", "kru": "কুরুখ", "ks": "কাশ্মীরি", "ksb": "শাম্বালা", "ksf": "বাফিয়া", "ksh": "কলোনিয়ান", "ku": "কুর্দিশ", "kum": "কুমিক", "kut": "কুটেনাই", "kv": "কোমি", "kw": "কর্ণিশ", "ky": "কির্গিজ", "la": "লাতিন", "lad": "লাডিনো", "lag": "লাঙ্গি", "lah": "লান্ডা", "lam": "লাম্বা", "lb": "লুক্সেমবার্গীয়", "lez": "লেজঘিয়ান", "lg": "গান্ডা", "li": "লিম্বুর্গিশ", "lkt": "লাকোটা", "ln": "লিঙ্গালা", "lo": "লাও", "lol": "মোঙ্গো", "lou": "লুইসিয়ানা ক্রেওল", "loz": "লোজি", "lrc": "উত্তর লুরি", "lt": "লিথুয়েনীয়", "lu": "লুবা-কাটাঙ্গা", "lua": "লুবা-লুলুয়া", "lui": "লুইসেনো", "lun": "লুন্ডা", "luo": "লুয়ো", "lus": "মিজো", "luy": "লুইয়া", "lv": "লাত্‌ভীয়", "mad": "মাদুরেসে", "mag": "মাগাহি", "mai": "মৈথিলি", "mak": "ম্যাকাসার", "man": "ম্যান্ডিঙ্গো", "mas": "মাসাই", "mdf": "মোকশা", "mdr": "ম্যাণ্ডার", "men": "মেন্ডে", "mer": "মেরু", "mfe": "মরিসিয়ান", "mg": "মালাগাসি", "mga": "মধ্য আইরিশ", "mgh": "মাখুয়া-মেত্তো", "mgo": "মেটা", "mh": "মার্শালিজ", "mi": "মাওরি", "mic": "মিকম্যাক", "min": "মিনাংকাবাউ", "mk": "ম্যাসিডোনীয়", "ml": "মালায়ালাম", "mn": "মঙ্গোলিয়", "mnc": "মাঞ্চু", "mni": "মণিপুরী", "moh": "মোহাওক", "mos": "মসি", "mr": "মারাঠি", "ms": "মালয়", "mt": "মল্টিয়", "mua": "মুদাঙ্গ", "mus": "ক্রিক", "mwl": "মিরান্ডিজ", "mwr": "মারোয়ারি", "my": "বর্মি", "myv": "এরজিয়া", "mzn": "মাজানদেরানি", "na": "নাউরু", "nap": "নেয়াপোলিটান", "naq": "নামা", "nb": "নরওয়েজিয়ান বোকমাল", "nd": "উত্তর এন্দেবিলি", "nds": "নিম্ন জার্মানি", "nds-NL": "লো স্যাক্সন", "ne": "নেপালী", "new": "নেওয়ারি", "ng": "এন্দোঙ্গা", "nia": "নিয়াস", "niu": "নিউয়ান", "nl": "ওলন্দাজ", "nl-BE": "ফ্লেমিশ", "nmg": "কোয়াসিও", "nn": "নরওয়েজীয়ান নিনর্স্ক", "nnh": "নিঙ্গেম্বুন", "no": "নরওয়েজীয়", "nog": "নোগাই", "non": "প্রাচীন নর্স", "nqo": "এন’কো", "nr": "দক্ষিণ এনডেবেলে", "nso": "উত্তরাঞ্চলীয় সোথো", "nus": "নুয়ার", "nv": "নাভাজো", "nwc": "প্রাচীন নেওয়ারী", "ny": "নায়াঞ্জা", "nym": "ন্যায়ামওয়েজি", "nyn": "ন্যায়াঙ্কোলে", "nyo": "ন্যোরো", "nzi": "এনজিমা", "oc": "অক্সিটান", "oj": "ওজিবওয়া", "om": "অরোমো", "or": "ওড়িয়া", "os": "ওসেটিক", "osa": "ওসেজ", "ota": "অটোমান তুর্কি", "pa": "পাঞ্জাবী", "pag": "পাঙ্গাসিনান", "pal": "পাহ্লাভি", "pam": "পাম্পাঙ্গা", "pap": "পাপিয়ামেন্টো", "pau": "পালায়ুয়ান", "pcm": "নাইজেরিয় পিজিন", "peo": "প্রাচীন ফার্সি", "phn": "ফোনিশীয়ান", "pi": "পালি", "pl": "পোলিশ", "pon": "পোহ্নপেইয়ান", "prg": "প্রুশিয়ান", "pro": "প্রাচীন প্রোভেনসাল", "ps": "পুশতু", "pt": "পর্তুগীজ", "pt-BR": "ব্রাজিলের পর্তুগীজ", "pt-PT": "ইউরোপের পর্তুগীজ", "qu": "কেচুয়া", "quc": "কি‘চে", "raj": "রাজস্থানী", "rap": "রাপানুই", "rar": "রারোটোংগান", "rm": "রোমান্স", "rn": "রুন্দি", "ro": "রোমানীয়", "ro-MD": "মলদাভিয়", "rof": "রম্বো", "rom": "রোমানি", "root": "মূল", "ru": "রুশ", "rup": "আরমেনিয়ান", "rw": "কিনয়ারোয়ান্ডা", "rwk": "রাওয়া", "sa": "সংস্কৃত", "sad": "স্যান্ডাওয়ে", "sah": "শাখা", "sam": "সামারিটান আরামিক", "saq": "সামবুরু", "sas": "সাসাক", "sat": "সাঁওতালি", "sba": "ন্যাগাম্বে", "sbp": "সাঙ্গু", "sc": "সার্ডিনিয়ান", "scn": "সিসিলিয়ান", "sco": "স্কটস", "sd": "সিন্ধি", "sdh": "দক্ষিণ কুর্দিশ", "se": "উত্তরাঞ্চলীয় সামি", "seh": "সেনা", "sel": "সেল্কুপ", "ses": "কোয়রাবেনো সেন্নী", "sg": "সাঙ্গো", "sga": "প্রাচীন আইরিশ", "sh": "সার্বো-ক্রোয়েশিয়", "shi": "তাচেলহিত", "shn": "শান", "si": "সিংহলী", "sid": "সিডামো", "sk": "স্লোভাক", "sl": "স্লোভেনীয়", "sm": "সামোয়ান", "sma": "দক্ষিণাঞ্চলীয় সামি", "smj": "লুলে সামি", "smn": "ইনারি সামি", "sms": "স্কোল্ট সামি", "sn": "শোনা", "snk": "সোনিঙ্কে", "so": "সোমালি", "sog": "সোগডিয়ান", "sq": "আলবেনীয়", "sr": "সার্বীয়", "srn": "স্রানান টোঙ্গো", "srr": "সেরের", "ss": "সোয়াতি", "ssy": "সাহো", "st": "দক্ষিন সোথো", "su": "সুদানী", "suk": "সুকুমা", "sus": "সুসু", "sux": "সুমেরীয়", "sv": "সুইডিশ", "sw": "সোয়াহিলি", "sw-CD": "কঙ্গো সোয়াহিলি", "swb": "কমোরিয়ান", "syc": "প্রাচীন সিরিও", "syr": "সিরিয়াক", "ta": "তামিল", "te": "তেলুগু", "tem": "টাইম্নে", "teo": "তেসো", "ter": "তেরেনো", "tet": "তেতুম", "tg": "তাজিক", "th": "থাই", "ti": "তিগরিনিয়া", "tig": "টাইগ্রে", "tiv": "টিভ", "tk": "তুর্কমেনী", "tkl": "টোকেলাউ", "tl": "তাগালগ", "tlh": "ক্লিঙ্গন", "tli": "ত্লিঙ্গিট", "tmh": "তামাশেক", "tn": "সোয়ানা", "to": "টোঙ্গান", "tog": "নায়াসা টোঙ্গা", "tpi": "টোক পিসিন", "tr": "তুর্কী", "trv": "তারোকো", "ts": "সঙ্গা", "tsi": "সিমশিয়ান", "tt": "তাতার", "tum": "তুম্বুকা", "tvl": "টুভালু", "tw": "টোয়াই", "twq": "তাসাওয়াক", "ty": "তাহিতিয়ান", "tyv": "টুভিনিয়ান", "tzm": "সেন্ট্রাল আটলাস তামাজিগাত", "udm": "উডমুর্ট", "ug": "উইঘুর", "uga": "উগারিটিক", "uk": "ইউক্রেনীয়", "umb": "উম্বুন্দু", "ur": "উর্দু", "uz": "উজবেকীয়", "vai": "ভাই", "ve": "ভেন্ডা", "vi": "ভিয়েতনামী", "vo": "ভোলাপুক", "vot": "ভোটিক", "vun": "ভুঞ্জো", "wa": "ওয়ালুন", "wae": "ওয়ালসের", "wal": "ওয়ালামো", "war": "ওয়ারে", "was": "ওয়াশো", "wbp": "ওয়ার্লপিরি", "wo": "উওলোফ", "wuu": "Wu চীনা", "xal": "কাল্মইক", "xh": "জোসা", "xog": "সোগা", "yao": "ইয়াও", "yap": "ইয়াপেসে", "yav": "ইয়াঙ্গবেন", "ybb": "ইয়েম্বা", "yi": "ইয়েদ্দিশ", "yo": "ইওরুবা", "yue": "ক্যানটোনীজ", "za": "ঝু্য়াঙ", "zap": "জাপোটেক", "zbl": "চিত্র ভাষা", "zen": "জেনাগা", "zgh": "আদর্শ মরক্কোন তামাজিগাত", "zh": "চীনা", "zh-Hans": "সরলীকৃত চীনা", "zh-Hant": "ঐতিহ্যবাহি চীনা", "zu": "জুলু", "zun": "জুনি", "zza": "জাজা"}, "scriptNames": {"Cyrl": "সিরিলিক", "Latn": "ল্যাটিন", "Arab": "আরবি", "Guru": "গুরুমুখি", "Tfng": "তিফিনাগ", "Vaii": "ভাই", "Hans": "সরলীকৃত", "Hant": "ঐতিহ্যবাহী"}}, + "bs": {"rtl": false, "languageNames": {"aa": "afarski", "ab": "abhaski", "ace": "ačinski", "ach": "akoli", "ada": "adangmejski", "ady": "adigejski", "ae": "avestanski", "af": "afrikans", "afh": "afrihili", "agq": "aghem", "ain": "ainu", "ak": "akan", "akk": "akadijski", "ale": "aleutski", "alt": "južni altai", "am": "amharski", "an": "aragonski", "ang": "staroengleski", "anp": "angika", "ar": "arapski", "ar-001": "moderni standardni arapski", "arc": "aramejski", "arn": "mapuški", "arp": "arapaho", "arw": "aravak", "as": "asamski", "asa": "asu", "ast": "asturijski", "av": "avarski", "awa": "avadhi", "ay": "ajmara", "az": "azerbejdžanski", "ba": "baškirski", "bal": "baluči", "ban": "balinezijski", "bas": "basa", "bax": "bamunski", "bbj": "gomala", "be": "bjeloruski", "bej": "beja", "bem": "bemba", "bez": "bena", "bfd": "bafut", "bg": "bugarski", "bgn": "zapadni belučki", "bho": "bojpuri", "bi": "bislama", "bik": "bikol", "bin": "bini", "bkm": "kom", "bla": "siksika", "bm": "bambara", "bn": "bengalski", "bo": "tibetanski", "br": "bretonski", "bra": "braj", "brx": "bodo", "bs": "bosanski", "bss": "akoski", "bua": "buriat", "bug": "bugiški", "bum": "bulu", "byn": "blin", "byv": "medumba", "ca": "katalonski", "cad": "kado", "car": "karipski", "cay": "kajuga", "cch": "atsam", "ce": "čečenski", "ceb": "cebuano", "cgg": "čiga", "ch": "čamoro", "chb": "čibča", "chg": "čagatai", "chk": "čukeski", "chm": "mari", "chn": "činukski žargon", "cho": "čoktav", "chp": "čipvijanski", "chr": "čiroki", "chy": "čejenski", "ckb": "centralnokurdski", "co": "korzikanski", "cop": "koptski", "cr": "kri", "crh": "krimski turski", "crs": "seselva kreolski francuski", "cs": "češki", "csb": "kašubijanski", "cu": "staroslavenski", "cv": "čuvaški", "cy": "velški", "da": "danski", "dak": "dakota", "dar": "dargva", "dav": "taita", "de": "njemački", "de-AT": "njemački (Austrija)", "de-CH": "gornjonjemački (Švicarska)", "del": "delaver", "den": "slave", "dgr": "dogrib", "din": "dinka", "dje": "zarma", "doi": "dogri", "dsb": "donjolužičkosrpski", "dua": "duala", "dum": "srednjovjekovni holandski", "dv": "divehi", "dyo": "jola-foni", "dyu": "diula", "dz": "džonga", "dzg": "dazaga", "ebu": "embu", "ee": "eve", "efi": "efik", "egy": "staroegipatski", "eka": "ekajuk", "el": "grčki", "elx": "elamitski", "en": "engleski", "en-AU": "engleski (Australija)", "en-CA": "engleski (Kanada)", "en-GB": "engleski (Velika Britanija)", "en-US": "engleski (Sjedinjene Američke Države)", "enm": "srednjovjekovni engleski", "eo": "esperanto", "es": "španski", "es-419": "španski (Latinska Amerika)", "es-ES": "španski (Španija)", "es-MX": "španski (Meksiko)", "et": "estonski", "eu": "baskijski", "ewo": "evondo", "fa": "perzijski", "fan": "fang", "fat": "fanti", "ff": "fulah", "fi": "finski", "fil": "filipino", "fj": "fidžijski", "fo": "farski", "fr": "francuski", "fr-CA": "francuski (Kanada)", "fr-CH": "francuski (Švicarska)", "frm": "srednjovjekovni francuski", "fro": "starofrancuski", "frr": "sjeverni frizijski", "frs": "istočnofrizijski", "fur": "friulijski", "fy": "zapadni frizijski", "ga": "irski", "gaa": "ga", "gag": "gagauški", "gay": "gajo", "gba": "gbaja", "gd": "škotski galski", "gez": "staroetiopski", "gil": "gilbertski", "gl": "galicijski", "gmh": "srednjovjekovni gornjonjemački", "gn": "gvarani", "goh": "staronjemački", "gon": "gondi", "gor": "gorontalo", "got": "gotski", "grb": "grebo", "grc": "starogrčki", "gsw": "njemački (Švicarska)", "gu": "gudžarati", "guz": "gusi", "gv": "manks", "gwi": "gvičin", "ha": "hausa", "hai": "haida", "haw": "havajski", "he": "hebrejski", "hi": "hindi", "hil": "hiligajnon", "hit": "hitite", "hmn": "hmong", "ho": "hiri motu", "hr": "hrvatski", "hsb": "gornjolužičkosrpski", "ht": "haićanski kreolski", "hu": "mađarski", "hup": "hupa", "hy": "armenski", "hz": "herero", "ia": "interlingva", "iba": "iban", "ibb": "ibibio", "id": "indonezijski", "ie": "interlingve", "ig": "igbo", "ii": "sičuan ji", "ik": "inupiak", "ilo": "iloko", "inh": "ingušetski", "io": "ido", "is": "islandski", "it": "italijanski", "iu": "inuktitut", "ja": "japanski", "jbo": "lojban", "jgo": "ngomba", "jmc": "makame", "jpr": "judeo-perzijski", "jrb": "judeo-arapski", "jv": "javanski", "ka": "gruzijski", "kaa": "kara-kalpak", "kab": "kabile", "kac": "kačin", "kaj": "kaju", "kam": "kamba", "kaw": "kavi", "kbd": "kabardijski", "kbl": "kanembu", "kcg": "tjap", "kde": "makonde", "kea": "zelenortski", "kfo": "koro", "kg": "kongo", "kha": "kasi", "kho": "kotanizijski", "khq": "kojra čini", "ki": "kikuju", "kj": "kuanjama", "kk": "kazaški", "kkj": "kako", "kl": "kalalisutski", "kln": "kalenjin", "km": "kmerski", "kmb": "kimbundu", "kn": "kanada", "ko": "korejski", "koi": "komi-permski", "kok": "konkani", "kos": "kosrejski", "kpe": "kpele", "kr": "kanuri", "krc": "karačaj-balkar", "kri": "krio", "krl": "karelijski", "kru": "kuruški", "ks": "kašmirski", "ksb": "šambala", "ksf": "bafia", "ksh": "kelnski", "ku": "kurdski", "kum": "kumik", "kut": "kutenai", "kv": "komi", "kw": "kornski", "ky": "kirgiški", "la": "latinski", "lad": "ladino", "lag": "langi", "lah": "landa", "lam": "lamba", "lb": "luksemburški", "lez": "lezgijski", "lg": "ganda", "li": "limburški", "lkt": "lakota", "ln": "lingala", "lo": "laoski", "lol": "mongo", "loz": "lozi", "lrc": "sjeverni luri", "lt": "litvanski", "lu": "luba-katanga", "lua": "luba-lulua", "lui": "luiseno", "lun": "lunda", "lus": "mizo", "luy": "luhija", "lv": "latvijski", "mad": "madureški", "maf": "mafa", "mag": "magahi", "mai": "maitili", "mak": "makasar", "man": "mandingo", "mas": "masai", "mde": "maba", "mdf": "mokša", "mdr": "mandar", "men": "mende", "mer": "meru", "mfe": "mauricijski kreolski", "mg": "malgaški", "mga": "srednjovjekovni irski", "mgh": "makuva-meto", "mgo": "meta", "mh": "maršalski", "mi": "maorski", "mic": "mikmak", "min": "minangkabau", "mk": "makedonski", "ml": "malajalam", "mn": "mongolski", "mnc": "manču", "mni": "manipuri", "moh": "mohavk", "mos": "mosi", "mr": "marati", "ms": "malajski", "mt": "malteški", "mua": "mundang", "mus": "kriški", "mwl": "mirandeški", "mwr": "marvari", "my": "burmanski", "mye": "mjene", "myv": "erzija", "mzn": "mazanderanski", "na": "nauru", "nap": "napolitanski", "naq": "nama", "nb": "norveški (Bokmal)", "nd": "sjeverni ndebele", "nds": "donjonjemački", "nds-NL": "donjosaksonski", "ne": "nepalski", "new": "nevari", "ng": "ndonga", "nia": "nias", "niu": "niue", "nl": "holandski", "nl-BE": "flamanski", "nmg": "kvasio", "nn": "norveški (Nynorsk)", "nnh": "ngiembon", "no": "norveški", "nog": "nogai", "non": "staronordijski", "nqo": "nko", "nr": "južni ndebele", "nso": "sjeverni soto", "nus": "nuer", "nv": "navaho", "nwc": "klasični nevari", "ny": "njanja", "nym": "njamvezi", "nyn": "njankole", "nyo": "njoro", "nzi": "nzima", "oc": "oksitanski", "oj": "ojibva", "om": "oromo", "or": "orijski", "os": "osetski", "osa": "osage", "ota": "osmanski turski", "pa": "pandžapski", "pag": "pangasinski", "pal": "pahlavi", "pam": "pampanga", "pap": "papiamento", "pau": "palauanski", "pcm": "nigerijski pidžin", "peo": "staroperzijski", "phn": "feničanski", "pi": "pali", "pl": "poljski", "pon": "ponpejski", "prg": "pruski", "pro": "staroprovansalski", "ps": "paštu", "pt": "portugalski", "pt-BR": "portugalski (Brazil)", "pt-PT": "portugalski (Portugal)", "qu": "kečua", "quc": "kiče", "raj": "rajastani", "rap": "rapanui", "rar": "rarotongan", "rm": "retoromanski", "rn": "rundi", "ro": "rumunski", "ro-MD": "moldavski", "rof": "rombo", "rom": "romani", "root": "korijenski", "ru": "ruski", "rup": "arumunski", "rw": "kinjaruanda", "rwk": "rua", "sa": "sanskrit", "sad": "sandave", "sah": "jakutski", "sam": "samaritanski aramejski", "saq": "samburu", "sas": "sasak", "sat": "santali", "sba": "ngambaj", "sbp": "sangu", "sc": "sardinijski", "scn": "sicilijanski", "sco": "škotski", "sd": "sindi", "sdh": "južni kurdski", "se": "sjeverni sami", "see": "seneka", "seh": "sena", "sel": "selkup", "ses": "kojraboro seni", "sg": "sango", "sga": "staroirski", "sh": "srpskohrvatski", "shi": "tahelhit", "shn": "šan", "shu": "čadski arapski", "si": "sinhaleški", "sid": "sidamo", "sk": "slovački", "sl": "slovenski", "sm": "samoanski", "sma": "južni sami", "smj": "lule sami", "smn": "inari sami", "sms": "skolt sami", "sn": "šona", "snk": "soninke", "so": "somalski", "sog": "sogdien", "sq": "albanski", "sr": "srpski", "srn": "srananski tongo", "srr": "serer", "ss": "svati", "ssy": "saho", "st": "južni soto", "su": "sundanski", "suk": "sukuma", "sus": "susu", "sux": "sumerski", "sv": "švedski", "sw": "svahili", "sw-CD": "svahili (Demokratska Republika Kongo)", "swb": "komorski", "syc": "klasični sirijski", "syr": "sirijski", "ta": "tamilski", "te": "telugu", "tem": "timne", "teo": "teso", "ter": "tereno", "tet": "tetum", "tg": "tadžički", "th": "tajlandski", "ti": "tigrinja", "tig": "tigre", "tk": "turkmenski", "tkl": "tokelau", "tl": "tagalog", "tlh": "klingonski", "tli": "tlingit", "tmh": "tamašek", "tn": "tsvana", "to": "tonganski", "tog": "njasa tonga", "tpi": "tok pisin", "tr": "turski", "trv": "taroko", "ts": "tsonga", "tsi": "tsimšian", "tt": "tatarski", "tum": "tumbuka", "tvl": "tuvalu", "tw": "tvi", "twq": "tasavak", "ty": "tahićanski", "tyv": "tuvinijski", "tzm": "centralnoatlaski tamazigt", "udm": "udmurt", "ug": "ujgurski", "uga": "ugaritski", "uk": "ukrajinski", "umb": "umbundu", "ur": "urdu", "uz": "uzbečki", "ve": "venda", "vi": "vijetnamski", "vo": "volapuk", "vot": "votski", "vun": "vunjo", "wa": "valun", "wae": "valser", "wal": "valamo", "war": "varej", "was": "vašo", "wbp": "varlpiri", "wo": "volof", "xal": "kalmik", "xh": "hosa", "xog": "soga", "yao": "jao", "yap": "japeški", "yav": "jangben", "ybb": "jemba", "yi": "jidiš", "yo": "jorubanski", "yue": "kantonski", "za": "zuang", "zap": "zapotečki", "zbl": "blis simboli", "zen": "zenaga", "zgh": "standardni marokanski tamazigt", "zh": "kineski", "zh-Hans": "kineski (pojednostavljeni)", "zh-Hant": "kineski (tradicionalni)", "zu": "zulu", "zun": "zuni", "zza": "zaza"}, "scriptNames": {"Cyrl": "ćirilica", "Latn": "latinica", "Arab": "arapsko pismo", "Guru": "pismo gurmuki", "Tfng": "tifinag pismo", "Vaii": "vai pismo", "Hans": "pojednostavljeno", "Hant": "tradicionalno"}}, + "ca": {"rtl": false, "languageNames": {"aa": "àfar", "ab": "abkhaz", "ace": "atjeh", "ach": "acoli", "ada": "adangme", "ady": "adigué", "ae": "avèstic", "af": "afrikaans", "afh": "afrihili", "agq": "aghem", "ain": "ainu", "ak": "àkan", "akk": "accadi", "akz": "alabama", "ale": "aleuta", "aln": "albanès geg", "alt": "altaic meridional", "am": "amhàric", "an": "aragonès", "ang": "anglès antic", "anp": "angika", "ar": "àrab", "ar-001": "àrab estàndard modern", "arc": "arameu", "arn": "mapudungu", "aro": "araona", "arp": "arapaho", "ars": "àrab najdi", "arw": "arauac", "arz": "àrab egipci", "as": "assamès", "asa": "pare", "ase": "llengua de signes americana", "ast": "asturià", "av": "àvar", "awa": "awadhi", "ay": "aimara", "az": "azerbaidjanès", "ba": "baixkir", "bal": "balutxi", "ban": "balinès", "bar": "bavarès", "bas": "basa", "bax": "bamum", "bbj": "ghomala", "be": "belarús", "bej": "beja", "bem": "bemba", "bez": "bena", "bfd": "bafut", "bfq": "badaga", "bg": "búlgar", "bgn": "balutxi occidental", "bho": "bhojpuri", "bi": "bislama", "bik": "bicol", "bin": "edo", "bkm": "kom", "bla": "blackfoot", "bm": "bambara", "bn": "bengalí", "bo": "tibetà", "br": "bretó", "bra": "braj", "brh": "brahui", "brx": "bodo", "bs": "bosnià", "bss": "akoose", "bua": "buriat", "bug": "bugui", "bum": "bulu", "byn": "bilin", "byv": "medumba", "ca": "català", "cad": "caddo", "car": "carib", "cay": "cayuga", "cch": "atsam", "ccp": "chakma", "ce": "txetxè", "ceb": "cebuà", "cgg": "chiga", "ch": "chamorro", "chb": "txibtxa", "chg": "txagatai", "chk": "chuuk", "chm": "mari", "chn": "pidgin chinook", "cho": "choctaw", "chp": "chipewyan", "chr": "cherokee", "chy": "xeiene", "ckb": "kurd central", "co": "cors", "cop": "copte", "cr": "cree", "crh": "tàtar de Crimea", "crs": "francès crioll de les Seychelles", "cs": "txec", "csb": "caixubi", "cu": "eslau eclesiàstic", "cv": "txuvaix", "cy": "gal·lès", "da": "danès", "dak": "dakota", "dar": "darguà", "dav": "taita", "de": "alemany", "de-AT": "alemany austríac", "de-CH": "alemany estàndard suís", "del": "delaware", "den": "slavi", "dgr": "dogrib", "din": "dinka", "dje": "zarma", "doi": "dogri", "dsb": "baix sòrab", "dua": "douala", "dum": "neerlandès mitjà", "dv": "divehi", "dyo": "diola", "dyu": "jula", "dz": "dzongka", "dzg": "dazaga", "ebu": "embu", "ee": "ewe", "efi": "efik", "egl": "emilià", "egy": "egipci antic", "eka": "ekajuk", "el": "grec", "elx": "elamita", "en": "anglès", "en-AU": "anglès australià", "en-CA": "anglès canadenc", "en-GB": "anglès britànic", "en-US": "anglès americà", "enm": "anglès mitjà", "eo": "esperanto", "es": "espanyol", "es-419": "espanyol hispanoamericà", "es-ES": "espanyol europeu", "es-MX": "espanyol de Mèxic", "et": "estonià", "eu": "basc", "ewo": "ewondo", "ext": "extremeny", "fa": "persa", "fan": "fang", "fat": "fanti", "ff": "ful", "fi": "finès", "fil": "filipí", "fj": "fijià", "fo": "feroès", "fr": "francès", "fr-CA": "francès canadenc", "fr-CH": "francès suís", "frc": "francès cajun", "frm": "francès mitjà", "fro": "francès antic", "frr": "frisó septentrional", "frs": "frisó oriental", "fur": "friülà", "fy": "frisó occidental", "ga": "irlandès", "gaa": "ga", "gag": "gagaús", "gan": "xinès gan", "gay": "gayo", "gba": "gbaya", "gd": "gaèlic escocès", "gez": "gueez", "gil": "gilbertès", "gl": "gallec", "glk": "gilaki", "gmh": "alt alemany mitjà", "gn": "guaraní", "goh": "alt alemany antic", "gom": "concani de Goa", "gon": "gondi", "gor": "gorontalo", "got": "gòtic", "grb": "grebo", "grc": "grec antic", "gsw": "alemany suís", "gu": "gujarati", "guc": "wayú", "guz": "gusí", "gv": "manx", "gwi": "gwich’in", "ha": "haussa", "hai": "haida", "hak": "xinès hakka", "haw": "hawaià", "he": "hebreu", "hi": "hindi", "hif": "hindi de Fiji", "hil": "híligaynon", "hit": "hitita", "hmn": "hmong", "ho": "hiri motu", "hr": "croat", "hsb": "alt sòrab", "hsn": "xinès xiang", "ht": "crioll d’Haití", "hu": "hongarès", "hup": "hupa", "hy": "armeni", "hz": "herero", "ia": "interlingua", "iba": "iban", "ibb": "ibibio", "id": "indonesi", "ie": "interlingue", "ig": "igbo", "ii": "yi sichuan", "ik": "inupiak", "ilo": "ilocano", "inh": "ingúix", "io": "ido", "is": "islandès", "it": "italià", "iu": "inuktitut", "ja": "japonès", "jam": "crioll anglès de Jamaica", "jbo": "lojban", "jgo": "ngomba", "jmc": "machame", "jpr": "judeopersa", "jrb": "judeoàrab", "jv": "javanès", "ka": "georgià", "kaa": "karakalpak", "kab": "cabilenc", "kac": "katxin", "kaj": "jju", "kam": "kamba", "kaw": "kawi", "kbd": "kabardí", "kbl": "kanembu", "kcg": "tyap", "kde": "makonde", "kea": "crioll capverdià", "ken": "kenyang", "kfo": "koro", "kg": "kongo", "kgp": "kaingà", "kha": "khasi", "kho": "khotanès", "khq": "koyra chiini", "ki": "kikuiu", "kj": "kuanyama", "kk": "kazakh", "kkj": "kako", "kl": "grenlandès", "kln": "kalenjin", "km": "khmer", "kmb": "kimbundu", "kn": "kannada", "ko": "coreà", "koi": "komi-permiac", "kok": "concani", "kos": "kosraeà", "kpe": "kpelle", "kr": "kanuri", "krc": "karatxai-balkar", "kri": "krio", "krl": "carelià", "kru": "kurukh", "ks": "caixmiri", "ksb": "shambala", "ksf": "bafia", "ksh": "kölsch", "ku": "kurd", "kum": "kúmik", "kut": "kutenai", "kv": "komi", "kw": "còrnic", "ky": "kirguís", "la": "llatí", "lad": "judeocastellà", "lag": "langi", "lah": "panjabi occidental", "lam": "lamba", "lb": "luxemburguès", "lez": "lesguià", "lg": "ganda", "li": "limburguès", "lij": "lígur", "lkt": "lakota", "lmo": "llombard", "ln": "lingala", "lo": "laosià", "lol": "mongo", "lou": "crioll francès de Louisiana", "loz": "lozi", "lrc": "luri septentrional", "lt": "lituà", "lu": "luba katanga", "lua": "luba-lulua", "lui": "luisenyo", "lun": "lunda", "lus": "mizo", "luy": "luyia", "lv": "letó", "lzh": "xinès clàssic", "lzz": "laz", "mad": "madurès", "maf": "mafa", "mag": "magahi", "mai": "maithili", "mak": "makassar", "man": "mandinga", "mas": "massai", "mde": "maba", "mdf": "mordovià moksa", "mdr": "mandar", "men": "mende", "mer": "meru", "mfe": "mauricià", "mg": "malgaix", "mga": "gaèlic irlandès mitjà", "mgh": "makhuwa-metto", "mgo": "meta’", "mh": "marshallès", "mi": "maori", "mic": "micmac", "min": "minangkabau", "mk": "macedoni", "ml": "malaiàlam", "mn": "mongol", "mnc": "manxú", "mni": "manipurí", "moh": "mohawk", "mos": "moore", "mr": "marathi", "mrj": "mari occidental", "ms": "malai", "mt": "maltès", "mua": "mundang", "mus": "creek", "mwl": "mirandès", "mwr": "marwari", "my": "birmà", "mye": "myene", "myv": "mordovià erza", "mzn": "mazanderani", "na": "nauruà", "nan": "xinès min del sud", "nap": "napolità", "naq": "nama", "nb": "noruec bokmål", "nd": "ndebele septentrional", "nds": "baix alemany", "nds-NL": "baix saxó", "ne": "nepalès", "new": "newari", "ng": "ndonga", "nia": "nias", "niu": "niueà", "nl": "neerlandès", "nl-BE": "flamenc", "nmg": "bissio", "nn": "noruec nynorsk", "nnh": "ngiemboon", "no": "noruec", "nog": "nogai", "non": "nòrdic antic", "nov": "novial", "nqo": "n’Ko", "nr": "ndebele meridional", "nso": "sotho septentrional", "nus": "nuer", "nv": "navaho", "nwc": "newari clàssic", "ny": "nyanja", "nym": "nyamwesi", "nyn": "nyankole", "nyo": "nyoro", "nzi": "nzema", "oc": "occità", "oj": "ojibwa", "om": "oromo", "or": "oriya", "os": "osseta", "osa": "osage", "ota": "turc otomà", "pa": "panjabi", "pag": "pangasinan", "pal": "pahlavi", "pam": "pampanga", "pap": "papiament", "pau": "palauà", "pcd": "picard", "pcm": "pidgin de Nigèria", "pdc": "alemany pennsilvanià", "peo": "persa antic", "pfl": "alemany palatí", "phn": "fenici", "pi": "pali", "pl": "polonès", "pms": "piemontès", "pnt": "pòntic", "pon": "ponapeà", "prg": "prussià", "pro": "provençal antic", "ps": "paixtu", "pt": "portuguès", "pt-BR": "portuguès del Brasil", "pt-PT": "portuguès de Portugal", "qu": "quítxua", "quc": "k’iche’", "raj": "rajasthani", "rap": "rapanui", "rar": "rarotongà", "rgn": "romanyès", "rm": "retoromànic", "rn": "rundi", "ro": "romanès", "ro-MD": "moldau", "rof": "rombo", "rom": "romaní", "root": "arrel", "ru": "rus", "rup": "aromanès", "rw": "ruandès", "rwk": "rwo", "sa": "sànscrit", "sad": "sandawe", "sah": "iacut", "sam": "arameu samarità", "saq": "samburu", "sas": "sasak", "sat": "santali", "sba": "ngambay", "sbp": "sangu", "sc": "sard", "scn": "sicilià", "sco": "escocès", "sd": "sindi", "sdc": "sasserès", "sdh": "kurd meridional", "se": "sami septentrional", "see": "seneca", "seh": "sena", "sel": "selkup", "ses": "songhai oriental", "sg": "sango", "sga": "irlandès antic", "sh": "serbocroat", "shi": "taixelhit", "shn": "xan", "shu": "àrab txadià", "si": "singalès", "sid": "sidamo", "sk": "eslovac", "sl": "eslovè", "sm": "samoà", "sma": "sami meridional", "smj": "sami lule", "smn": "sami d’Inari", "sms": "sami skolt", "sn": "shona", "snk": "soninke", "so": "somali", "sog": "sogdià", "sq": "albanès", "sr": "serbi", "srn": "sranan", "srr": "serer", "ss": "swazi", "ssy": "saho", "st": "sotho meridional", "su": "sondanès", "suk": "sukuma", "sus": "susú", "sux": "sumeri", "sv": "suec", "sw": "suahili", "sw-CD": "suahili del Congo", "swb": "comorià", "syc": "siríac clàssic", "syr": "siríac", "szl": "silesià", "ta": "tàmil", "te": "telugu", "tem": "temne", "teo": "teso", "ter": "terena", "tet": "tètum", "tg": "tadjik", "th": "tai", "ti": "tigrinya", "tig": "tigre", "tk": "turcman", "tkl": "tokelauès", "tkr": "tsakhur", "tl": "tagal", "tlh": "klingonià", "tli": "tlingit", "tly": "talix", "tmh": "amazic", "tn": "setswana", "to": "tongalès", "tog": "tonga", "tpi": "tok pisin", "tr": "turc", "trv": "taroko", "ts": "tsonga", "tsi": "tsimshià", "tt": "tàtar", "ttt": "tat meridional", "tum": "tumbuka", "tvl": "tuvaluà", "tw": "twi", "twq": "tasawaq", "ty": "tahitià", "tyv": "tuvinià", "tzm": "amazic del Marroc central", "udm": "udmurt", "ug": "uigur", "uga": "ugarític", "uk": "ucraïnès", "umb": "umbundu", "ur": "urdú", "uz": "uzbek", "ve": "venda", "vec": "vènet", "vep": "vepse", "vi": "vietnamita", "vls": "flamenc occidental", "vo": "volapük", "vot": "vòtic", "vun": "vunjo", "wa": "való", "wae": "walser", "wal": "wolaita", "war": "waray", "was": "washo", "wbp": "warlpiri", "wo": "wòlof", "wuu": "xinès wu", "xal": "calmuc", "xh": "xosa", "xmf": "mingrelià", "xog": "soga", "yap": "yapeà", "yav": "yangben", "ybb": "yemba", "yi": "ídix", "yo": "ioruba", "yue": "cantonès", "za": "zhuang", "zap": "zapoteca", "zbl": "símbols Bliss", "zea": "zelandès", "zen": "zenaga", "zgh": "amazic estàndard marroquí", "zh": "xinès", "zh-Hans": "xinès simplificat", "zh-Hant": "xinès tradicional", "zu": "zulu", "zun": "zuni", "zza": "zaza"}, "scriptNames": {"Cyrl": "ciríl·lic", "Latn": "llatí", "Arab": "àrab", "Guru": "gurmukhi", "Tfng": "tifinagh", "Vaii": "vai", "Hans": "simplificat", "Hant": "tradicional"}}, + "ckb": {"rtl": true, "languageNames": {"aa": "ئەفار", "ab": "ئەبخازی", "ace": "ئاچەیی", "ada": "دانگمێ", "ady": "ئادیگی", "af": "ئەفریکانس", "agq": "ئاگێم", "ain": "ئاینوو", "ak": "ئاکان", "ale": "ئالیوت", "alt": "ئاڵتایی باشوور", "am": "ئەمھەری", "an": "ئاراگۆنی", "anp": "ئەنگیکا", "ar": "عەرەبی", "ar-001": "عەرەبیی ستاندارد", "arn": "ماپووچە", "arp": "ئاراپاهۆ", "as": "ئاسامی", "asa": "ئاسوو", "ast": "ئاستۆری", "av": "ئەڤاری", "awa": "ئاوادهی", "ay": "ئایمارا", "az": "ئازەربایجانی", "az-Arab": "ئازەربایجانی باشووری", "ba": "باشکیەر", "ban": "بالی", "bas": "باسا", "be": "بیلاڕووسی", "bem": "بێمبا", "bez": "بێنا", "bg": "بۆلگاری", "bho": "بوجپووری", "bi": "بیسلاما", "bin": "بینی", "bla": "سیکسیکا", "bm": "بامبارا", "bn": "بەنگلادێشی", "bo": "تەبەتی", "br": "برێتونی", "brx": "بۆدۆ", "bs": "بۆسنی", "bug": "بووگی", "byn": "بلین", "ca": "كاتالۆنی", "ce": "چیچانی", "ceb": "سێبوانۆ", "cgg": "کیگا", "ch": "چامۆرۆ", "chk": "چووکی", "chm": "ماری", "cho": "چۆکتاو", "chr": "چێرۆکی", "chy": "شایان", "ckb": "کوردیی ناوەندی", "co": "کۆرسیکی", "crs": "فەرەنسیی سیشێلی", "cs": "چێکی", "cu": "سلاویی کلیسەیی", "cv": "چووڤاشی", "cy": "وێلزی", "da": "دانماركی", "dak": "داکۆتایی", "dar": "دارگینی", "dav": "تایتا", "de": "ئەڵمانی", "de-AT": "ئەڵمانی (نەمسا)", "de-CH": "ئەڵمانی (سویسڕا)", "dgr": "دۆگریب", "dje": "زارما", "dsb": "سربیی خوارین", "dua": "دووالا", "dv": "دیڤێهی", "dyo": "جۆلافۆنی", "dz": "دزوونگخا", "dzg": "دازا", "ebu": "ئێمبوو", "ee": "ئێوێیی", "efi": "ئێفیک", "eka": "ئێکاجووک", "el": "یۆنانی", "en": "ئینگلیزی", "en-AU": "ئینگلیزیی ئۆسترالیایی", "en-CA": "ئینگلیزیی کەنەدایی", "en-GB": "ئینگلیزیی بریتانیایی", "en-US": "ئینگلیزیی ئەمەریکایی", "eo": "ئێسپیرانتۆ", "es": "ئیسپانی", "es-419": "ئیسپانی (ئەمەریکای لاتین)", "es-ES": "ئیسپانی (ئیسپانیا)", "es-MX": "ئیسپانی (مەکسیک)", "et": "ئیستۆنی", "eu": "باسکی", "ewo": "ئێوۆندۆ", "fa": "فارسی", "ff": "فوولایی", "fi": "فینلەندی", "fil": "فیلیپینی", "fj": "فیجی", "fo": "فەرۆیی", "fon": "فۆنی", "fr": "فەرەنسی", "fr-CA": "فەرەنسی (کەنەدا)", "fr-CH": "فەرەنسی (سویسڕا)", "fur": "فریئوولی", "fy": "فریسیی ڕۆژاوا", "ga": "ئیرلەندی", "gaa": "گایی", "gd": "گه‌لیكی سكۆتله‌ندی", "gez": "گیزی", "gil": "گیلبێرتی", "gl": "گالیسی", "gn": "گووارانی", "gor": "گۆرۆنتالی", "gsw": "ئەڵمانیی سویسڕا", "gu": "گوجاراتی", "guz": "گووسی", "gv": "مانکی", "gwi": "گویچین", "ha": "هائووسا", "haw": "هاوایی", "he": "عیبری", "hi": "هیندی", "hil": "هیلیگاینۆن", "hmn": "همۆنگ", "hr": "كرواتی", "hsb": "سربیی سەروو", "ht": "کریولی هائیتی", "hu": "هەنگاری (مەجاری)", "hup": "هووپا", "hy": "ئەرمەنی", "hz": "هێرێرۆ", "ia": "ئینترلینگووا", "iba": "ئیبان", "ibb": "ئیبیبۆ", "id": "ئیندۆنیزی", "ig": "ئیگبۆ", "ii": "سیچوان یی", "ilo": "ئیلۆکۆ", "inh": "ئینگووش", "io": "ئیدۆ", "is": "ئیسلەندی", "it": "ئیتالی", "iu": "ئینوکتیتوت", "ja": "ژاپۆنی", "jbo": "لۆژبان", "jgo": "نگۆمبا", "jmc": "ماچامێ", "jv": "جاڤایی", "ka": "گۆرجستانی", "kab": "کبائیلی", "kac": "کاچین", "kaj": "کیجوو", "kam": "کامبا", "kbd": "کاباردی", "kcg": "تیاپ", "kde": "ماکۆندە", "kea": "کابووڤێردیانۆ", "kfo": "کۆرۆ", "kha": "کهاسی", "khq": "کۆیرا چینی", "ki": "کیکوویوو", "kj": "کوانیاما", "kk": "کازاخی", "kkj": "کاکۆ", "kl": "کالالیسووت", "kln": "کالێنجین", "km": "خمێر", "kmb": "کیمبووندوو", "kn": "کاننادا", "ko": "كۆری", "kok": "کۆنکانی", "kpe": "کپێلێ", "kr": "کانووری", "krc": "کاراچای بالکار", "krl": "کارێلی", "kru": "کوورووخ", "ks": "کەشمیری", "ksb": "شامابالا", "ksf": "بافیا", "ksh": "کۆلۆنی", "ku": "کوردی", "kum": "کوومیک", "kv": "کۆمی", "kw": "کۆڕنی", "ky": "كرگیزی", "la": "لاتینی", "lad": "لادینۆ", "lag": "لانگی", "lb": "لوکسەمبورگی", "lez": "لەزگی", "lg": "گاندا", "li": "لیمبورگی", "lkt": "لاکۆتا", "ln": "لينگالا", "lo": "لائۆیی", "loz": "لۆزی", "lrc": "لوڕیی باکوور", "lt": "لیتوانی", "lu": "لووبا کاتانگا", "lua": "لووبا لوولووا", "lun": "لووندا", "luo": "لووئۆ", "lus": "میزۆ", "luy": "لوویا", "lv": "لێتۆنی", "mad": "مادووری", "mag": "ماگاهی", "mai": "مائیتیلی", "mak": "ماکاسار", "mas": "ماسایی", "mdf": "مۆکشا", "men": "مێندێ", "mer": "مێروو", "mfe": "مۆریسی", "mg": "مالاگاسی", "mgh": "ماخوامیتۆ", "mgo": "مێتە", "mh": "مارشاڵی", "mi": "مائۆری", "mic": "میکماک", "min": "مینانکاباو", "mk": "ماكێدۆنی", "ml": "مالایالام", "mn": "مەنگۆلی", "mni": "مانیپووری", "moh": "مۆهاوک", "mos": "مۆسی", "mr": "ماراتی", "ms": "مالیزی", "mt": "ماڵتی", "mua": "موندانگ", "mus": "کریک", "mwl": "میراندی", "my": "میانماری", "myv": "ئێرزیا", "mzn": "مازەندەرانی", "na": "نائوروو", "nap": "ناپۆلی", "naq": "ناما", "nb": "نەرویژیی بۆکمال", "nd": "ئندێبێلێی باکوور", "nds-NL": "nds (ھۆڵەندا)", "ne": "نیپالی", "new": "نێواری", "ng": "ندۆنگا", "nia": "نیاس", "niu": "نیئوویی", "nl": "هۆڵەندی", "nl-BE": "فلێمی", "nmg": "کواسیۆ", "nn": "نەرویژیی نینۆرسک", "nnh": "نگیمبوون", "no": "نۆروێژی", "nog": "نۆگای", "nqo": "نکۆ", "nr": "ئندێبێلێی باشوور", "nso": "سۆتۆی باکوور", "nus": "نوێر", "nv": "ناڤاجۆ", "ny": "نیانجا", "nyn": "نیانکۆلێ", "oc": "ئۆکسیتانی", "om": "ئۆرۆمۆ", "or": "ئۆدیا", "os": "ئۆسێتی", "pa": "پەنجابی", "pag": "پانگاسینان", "pam": "پامپانگا", "pap": "پاپیامێنتۆ", "pau": "پالائوویی", "pcm": "پیجینی نیجریا", "pl": "پۆڵەندی", "prg": "پڕووسی", "ps": "پەشتوو", "pt": "پورتوگالی", "pt-BR": "پورتوگالی (برازیل)", "pt-PT": "پورتوگالی (پورتوگال)", "qu": "کێچوا", "quc": "کیچەیی", "rap": "ڕاپانوویی", "rar": "ڕاڕۆتۆنگان", "rm": "ڕۆمانش", "rn": "ڕووندی", "ro": "ڕۆمانی", "ro-MD": "مۆڵداڤی", "rof": "ڕۆمبۆ", "root": "ڕووت", "ru": "ڕووسی", "rup": "ئارمۆمانی", "rw": "کینیارواندا", "rwk": "ڕوا", "sa": "سانسکريت", "sad": "سانداوێ", "sah": "ساخا", "saq": "سامبووروو", "sat": "سانتالی", "sba": "نگامبای", "sbp": "سانگوو", "sc": "ساردینی", "scn": "سیسیلی", "sco": "سکۆتس", "sd": "سيندی", "sdh": "کوردیی باشووری", "se": "سامیی باکوور", "seh": "سێنا", "ses": "کۆیرابۆرۆ سێنی", "sg": "سانگۆ", "shi": "شیلها", "shn": "شان", "si": "سینهالی", "sk": "سلۆڤاكی", "sl": "سلۆڤێنی", "sm": "سامۆیی", "sma": "سامیی باشوور", "smj": "لوولێ سامی", "smn": "ئیناری سامی", "sms": "سامیی سکۆڵت", "sn": "شۆنا", "snk": "سۆنینکێ", "so": "سۆمالی", "sq": "ئەڵبانی", "sr": "سربی", "srn": "سرانان تۆنگۆ", "ss": "سواتی", "ssy": "ساهۆ", "st": "سۆتۆی باشوور", "su": "سوندانی", "suk": "سووکووما", "sv": "سویدی", "sw": "سواهیلی", "sw-CD": "سواهیلیی کۆنگۆ", "swb": "کۆمۆری", "syr": "سریانی", "ta": "تامیلی", "te": "تێلووگوو", "tem": "تیمنێ", "teo": "تێسوو", "tet": "تێتووم", "tg": "تاجیکی", "th": "تایلەندی", "ti": "تیگرینیا", "tig": "تیگرێ", "tk": "تورکمانی", "tlh": "كلینگۆن", "tn": "تسوانا", "to": "تۆنگان", "tpi": "تۆکپیسین", "tr": "تورکی", "trv": "تارۆکۆ", "ts": "تسۆنگا", "tt": "تاتاری", "tum": "تومبووکا", "tvl": "تووڤالوو", "twq": "تاساواک", "ty": "تاهیتی", "tyv": "تووڤینی", "tzm": "ئەمازیغی ناوەڕاست", "udm": "ئوودموورت", "ug": "ئۆیخۆری", "uk": "ئۆكراینی", "umb": "ئومبووندوو", "ur": "ئۆردوو", "uz": "ئوزبەکی", "vai": "ڤایی", "ve": "ڤێندا", "vi": "ڤیەتنامی", "vo": "ڤۆلاپووک", "vun": "ڤوونجوو", "wa": "والوون", "wae": "والسێر", "wal": "وۆلایتا", "war": "وارای", "wo": "وۆلۆف", "xal": "کالمیک", "xh": "سسوسا", "xog": "سۆگا", "yav": "یانگبێن", "ybb": "یێمبا", "yi": "ییدیش", "yo": "یۆرووبا", "yue": "کانتۆنی", "zgh": "ئەمازیغیی مەغریب", "zh": "چینی", "zh-Hans": "چینی (چینیی ئاسانکراو)", "zh-Hant": "چینی (چینیی دێرین)", "zu": "زوولوو", "zun": "زوونی", "zza": "زازا"}, "scriptNames": {"Cyrl": "سریلیک", "Latn": "لاتینی", "Arab": "عەرەبی", "Guru": "گورموکھی", "Hans": "ئاسانکراو", "Hant": "دێرین"}}, + "cs": {"rtl": false, "languageNames": {"aa": "afarština", "ab": "abcházština", "ace": "acehština", "ach": "akolština", "ada": "adangme", "ady": "adygejština", "ae": "avestánština", "aeb": "arabština (tuniská)", "af": "afrikánština", "afh": "afrihili", "agq": "aghem", "ain": "ainština", "ak": "akanština", "akk": "akkadština", "akz": "alabamština", "ale": "aleutština", "aln": "albánština (Gheg)", "alt": "altajština (jižní)", "am": "amharština", "an": "aragonština", "ang": "staroangličtina", "anp": "angika", "ar": "arabština", "ar-001": "arabština (moderní standardní)", "arc": "aramejština", "arn": "mapudungun", "aro": "araonština", "arp": "arapažština", "arq": "arabština (alžírská)", "ars": "arabština (Nadžd)", "arw": "arawacké jazyky", "ary": "arabština (marocká)", "arz": "arabština (egyptská)", "as": "ásámština", "asa": "asu", "ase": "znaková řeč (americká)", "ast": "asturština", "av": "avarština", "avk": "kotava", "awa": "awadhština", "ay": "ajmarština", "az": "ázerbájdžánština", "ba": "baškirština", "bal": "balúčština", "ban": "balijština", "bar": "bavorština", "bas": "basa", "bax": "bamun", "bbc": "batak toba", "bbj": "ghomala", "be": "běloruština", "bej": "bedža", "bem": "bembština", "bew": "batavština", "bez": "bena", "bfd": "bafut", "bfq": "badagština", "bg": "bulharština", "bgn": "balúčština (západní)", "bho": "bhódžpurština", "bi": "bislamština", "bik": "bikolština", "bin": "bini", "bjn": "bandžarština", "bkm": "kom", "bla": "siksika", "bm": "bambarština", "bn": "bengálština", "bo": "tibetština", "bpy": "bišnuprijskomanipurština", "bqi": "bachtijárština", "br": "bretonština", "bra": "bradžština", "brh": "brahujština", "brx": "bodoština", "bs": "bosenština", "bss": "akoose", "bua": "burjatština", "bug": "bugiština", "bum": "bulu", "byn": "blinština", "byv": "medumba", "ca": "katalánština", "cad": "caddo", "car": "karibština", "cay": "kajugština", "cch": "atsam", "ccp": "čakma", "ce": "čečenština", "ceb": "cebuánština", "cgg": "kiga", "ch": "čamoro", "chb": "čibča", "chg": "čagatajština", "chk": "čukština", "chm": "marijština", "chn": "činuk pidžin", "cho": "čoktština", "chp": "čipevajština", "chr": "čerokézština", "chy": "čejenština", "ckb": "kurdština (sorání)", "co": "korsičtina", "cop": "koptština", "cps": "kapiznonština", "cr": "kríjština", "crh": "turečtina (krymská)", "crs": "kreolština (seychelská)", "cs": "čeština", "csb": "kašubština", "cu": "staroslověnština", "cv": "čuvaština", "cy": "velština", "da": "dánština", "dak": "dakotština", "dar": "dargština", "dav": "taita", "de": "němčina", "de-AT": "němčina (Rakousko)", "de-CH": "němčina standardní (Švýcarsko)", "del": "delawarština", "den": "slejvština (athabaský jazyk)", "dgr": "dogrib", "din": "dinkština", "dje": "zarmština", "doi": "dogarština", "dsb": "dolnolužická srbština", "dtp": "kadazandusunština", "dua": "dualština", "dum": "holandština (středověká)", "dv": "maledivština", "dyo": "jola-fonyi", "dyu": "djula", "dz": "dzongkä", "dzg": "dazaga", "ebu": "embu", "ee": "eweština", "efi": "efikština", "egl": "emilijština", "egy": "egyptština stará", "eka": "ekajuk", "el": "řečtina", "elx": "elamitština", "en": "angličtina", "en-AU": "angličtina (Austrálie)", "en-CA": "angličtina (Kanada)", "en-GB": "angličtina (Velká Británie)", "en-US": "angličtina (USA)", "enm": "angličtina (středověká)", "eo": "esperanto", "es": "španělština", "es-419": "španělština (Latinská Amerika)", "es-ES": "španělština (Evropa)", "es-MX": "španělština (Mexiko)", "esu": "jupikština (středoaljašská)", "et": "estonština", "eu": "baskičtina", "ewo": "ewondo", "ext": "extremadurština", "fa": "perština", "fan": "fang", "fat": "fantština", "ff": "fulbština", "fi": "finština", "fil": "filipínština", "fit": "finština (tornedalská)", "fj": "fidžijština", "fo": "faerština", "fon": "fonština", "fr": "francouzština", "fr-CA": "francouzština (Kanada)", "fr-CH": "francouzština (Švýcarsko)", "frc": "francouzština (cajunská)", "frm": "francouzština (středověká)", "fro": "francouzština (stará)", "frp": "franko-provensálština", "frr": "fríština (severní)", "frs": "fríština (východní)", "fur": "furlanština", "fy": "fríština (západní)", "ga": "irština", "gaa": "gaština", "gag": "gagauzština", "gan": "čínština (dialekty Gan)", "gay": "gayo", "gba": "gbaja", "gbz": "daríjština (zoroastrijská)", "gd": "skotská gaelština", "gez": "geez", "gil": "kiribatština", "gl": "galicijština", "glk": "gilačtina", "gmh": "hornoněmčina (středověká)", "gn": "guaranština", "goh": "hornoněmčina (stará)", "gom": "konkánština (Goa)", "gon": "góndština", "gor": "gorontalo", "got": "gótština", "grb": "grebo", "grc": "starořečtina", "gsw": "němčina (Švýcarsko)", "gu": "gudžarátština", "guc": "wayúuština", "gur": "frafra", "guz": "gusii", "gv": "manština", "gwi": "gwichʼin", "ha": "hauština", "hai": "haidština", "hak": "čínština (dialekty Hakka)", "haw": "havajština", "he": "hebrejština", "hi": "hindština", "hif": "hindština (Fidži)", "hil": "hiligajnonština", "hit": "chetitština", "hmn": "hmongština", "ho": "hiri motu", "hr": "chorvatština", "hsb": "hornolužická srbština", "hsn": "čínština (dialekty Xiang)", "ht": "haitština", "hu": "maďarština", "hup": "hupa", "hy": "arménština", "hz": "hererština", "ia": "interlingua", "iba": "ibanština", "ibb": "ibibio", "id": "indonéština", "ie": "interlingue", "ig": "igboština", "ii": "iština (sečuánská)", "ik": "inupiakština", "ilo": "ilokánština", "inh": "inguština", "io": "ido", "is": "islandština", "it": "italština", "iu": "inuktitutština", "izh": "ingrijština", "ja": "japonština", "jam": "jamajská kreolština", "jbo": "lojban", "jgo": "ngomba", "jmc": "mašame", "jpr": "judeoperština", "jrb": "judeoarabština", "jut": "jutština", "jv": "javánština", "ka": "gruzínština", "kaa": "karakalpačtina", "kab": "kabylština", "kac": "kačijština", "kaj": "jju", "kam": "kambština", "kaw": "kawi", "kbd": "kabardinština", "kbl": "kanembu", "kcg": "tyap", "kde": "makonde", "kea": "kapverdština", "ken": "kenyang", "kfo": "koro", "kg": "konžština", "kgp": "kaingang", "kha": "khásí", "kho": "chotánština", "khq": "koyra chiini", "khw": "chovarština", "ki": "kikujština", "kiu": "zazakština", "kj": "kuaňamština", "kk": "kazaština", "kkj": "kako", "kl": "grónština", "kln": "kalendžin", "km": "khmérština", "kmb": "kimbundština", "kn": "kannadština", "ko": "korejština", "koi": "komi-permjačtina", "kok": "konkánština", "kos": "kosrajština", "kpe": "kpelle", "kr": "kanuri", "krc": "karačajevo-balkarština", "kri": "krio", "krj": "kinaraj-a", "krl": "karelština", "kru": "kuruchština", "ks": "kašmírština", "ksb": "šambala", "ksf": "bafia", "ksh": "kolínština", "ku": "kurdština", "kum": "kumyčtina", "kut": "kutenajština", "kv": "komijština", "kw": "kornština", "ky": "kyrgyzština", "la": "latina", "lad": "ladinština", "lag": "langi", "lah": "lahndština", "lam": "lambština", "lb": "lucemburština", "lez": "lezginština", "lfn": "lingua franca nova", "lg": "gandština", "li": "limburština", "lij": "ligurština", "liv": "livonština", "lkt": "lakotština", "lmo": "lombardština", "ln": "lingalština", "lo": "laoština", "lol": "mongština", "lou": "kreolština (Louisiana)", "loz": "lozština", "lrc": "lúrština (severní)", "lt": "litevština", "ltg": "latgalština", "lu": "lubu-katanžština", "lua": "luba-luluaština", "lui": "luiseňo", "lun": "lundština", "luo": "luoština", "lus": "mizoština", "luy": "luhja", "lv": "lotyština", "lzh": "čínština (klasická)", "lzz": "lazština", "mad": "madurština", "maf": "mafa", "mag": "magahijština", "mai": "maithiliština", "mak": "makasarština", "man": "mandingština", "mas": "masajština", "mde": "maba", "mdf": "mokšanština", "mdr": "mandar", "men": "mende", "mer": "meru", "mfe": "mauricijská kreolština", "mg": "malgaština", "mga": "irština (středověká)", "mgh": "makhuwa-meetto", "mgo": "meta’", "mh": "maršálština", "mi": "maorština", "mic": "micmac", "min": "minangkabau", "mk": "makedonština", "ml": "malajálamština", "mn": "mongolština", "mnc": "mandžuština", "mni": "manipurština", "moh": "mohawkština", "mos": "mosi", "mr": "maráthština", "mrj": "marijština (západní)", "ms": "malajština", "mt": "maltština", "mua": "mundang", "mus": "kríkština", "mwl": "mirandština", "mwr": "márvárština", "mwv": "mentavajština", "my": "barmština", "mye": "myene", "myv": "erzjanština", "mzn": "mázandaránština", "na": "naurština", "nan": "čínština (dialekty Minnan)", "nap": "neapolština", "naq": "namaština", "nb": "norština (bokmål)", "nd": "ndebele (Zimbabwe)", "nds": "dolnoněmčina", "nds-NL": "dolnosaština", "ne": "nepálština", "new": "névárština", "ng": "ndondština", "nia": "nias", "niu": "niueština", "njo": "ao (jazyky Nágálandu)", "nl": "nizozemština", "nl-BE": "vlámština", "nmg": "kwasio", "nn": "norština (nynorsk)", "nnh": "ngiemboon", "no": "norština", "nog": "nogajština", "non": "norština historická", "nov": "novial", "nqo": "n’ko", "nr": "ndebele (Jižní Afrika)", "nso": "sotština (severní)", "nus": "nuerština", "nv": "navažština", "nwc": "newarština (klasická)", "ny": "ňandžština", "nym": "ňamwežština", "nyn": "ňankolština", "nyo": "ňorština", "nzi": "nzima", "oc": "okcitánština", "oj": "odžibvejština", "om": "oromština", "or": "urijština", "os": "osetština", "osa": "osage", "ota": "turečtina (osmanská)", "pa": "paňdžábština", "pag": "pangasinanština", "pal": "pahlavština", "pam": "papangau", "pap": "papiamento", "pau": "palauština", "pcd": "picardština", "pcm": "nigerijský pidžin", "pdc": "němčina (pensylvánská)", "pdt": "němčina (plautdietsch)", "peo": "staroperština", "pfl": "falčtina", "phn": "féničtina", "pi": "pálí", "pl": "polština", "pms": "piemonština", "pnt": "pontština", "pon": "pohnpeiština", "prg": "pruština", "pro": "provensálština", "ps": "paštština", "pt": "portugalština", "pt-BR": "portugalština (Brazílie)", "pt-PT": "portugalština (Evropa)", "qu": "kečuánština", "quc": "kičé", "qug": "kečuánština (chimborazo)", "raj": "rádžastánština", "rap": "rapanujština", "rar": "rarotongánština", "rgn": "romaňolština", "rif": "rífština", "rm": "rétorománština", "rn": "kirundština", "ro": "rumunština", "ro-MD": "moldavština", "rof": "rombo", "rom": "romština", "root": "kořen", "rtm": "rotumanština", "ru": "ruština", "rue": "rusínština", "rug": "rovianština", "rup": "arumunština", "rw": "kiňarwandština", "rwk": "rwa", "sa": "sanskrt", "sad": "sandawština", "sah": "jakutština", "sam": "samarština", "saq": "samburu", "sas": "sasakština", "sat": "santálština", "saz": "saurášterština", "sba": "ngambay", "sbp": "sangoština", "sc": "sardština", "scn": "sicilština", "sco": "skotština", "sd": "sindhština", "sdc": "sassarština", "sdh": "kurdština (jižní)", "se": "sámština (severní)", "see": "seneca", "seh": "sena", "sei": "seriština", "sel": "selkupština", "ses": "koyraboro senni", "sg": "sangština", "sga": "irština (stará)", "sgs": "žemaitština", "sh": "srbochorvatština", "shi": "tašelhit", "shn": "šanština", "shu": "arabština (čadská)", "si": "sinhálština", "sid": "sidamo", "sk": "slovenština", "sl": "slovinština", "sli": "němčina (slezská)", "sly": "selajarština", "sm": "samojština", "sma": "sámština (jižní)", "smj": "sámština (lulejská)", "smn": "sámština (inarijská)", "sms": "sámština (skoltská)", "sn": "šonština", "snk": "sonikština", "so": "somálština", "sog": "sogdština", "sq": "albánština", "sr": "srbština", "srn": "sranan tongo", "srr": "sererština", "ss": "siswatština", "ssy": "saho", "st": "sotština (jižní)", "stq": "fríština (saterlandská)", "su": "sundština", "suk": "sukuma", "sus": "susu", "sux": "sumerština", "sv": "švédština", "sw": "svahilština", "sw-CD": "svahilština (Kongo)", "swb": "komorština", "syc": "syrština (klasická)", "syr": "syrština", "szl": "slezština", "ta": "tamilština", "tcy": "tuluština", "te": "telugština", "tem": "temne", "teo": "teso", "ter": "tereno", "tet": "tetumština", "tg": "tádžičtina", "th": "thajština", "ti": "tigrinijština", "tig": "tigrejština", "tiv": "tivština", "tk": "turkmenština", "tkl": "tokelauština", "tkr": "cachurština", "tl": "tagalog", "tlh": "klingonština", "tli": "tlingit", "tly": "talyština", "tmh": "tamašek", "tn": "setswanština", "to": "tongánština", "tog": "tonžština (nyasa)", "tpi": "tok pisin", "tr": "turečtina", "tru": "turojština", "trv": "taroko", "ts": "tsonga", "tsd": "tsakonština", "tsi": "tsimšijské jazyky", "tt": "tatarština", "ttt": "tatština", "tum": "tumbukština", "tvl": "tuvalština", "tw": "twi", "twq": "tasawaq", "ty": "tahitština", "tyv": "tuvinština", "tzm": "tamazight (střední Maroko)", "udm": "udmurtština", "ug": "ujgurština", "uga": "ugaritština", "uk": "ukrajinština", "umb": "umbundu", "ur": "urdština", "uz": "uzbečtina", "ve": "venda", "vec": "benátština", "vep": "vepština", "vi": "vietnamština", "vls": "vlámština (západní)", "vmf": "němčina (mohansko-franské dialekty)", "vo": "volapük", "vot": "votština", "vro": "võruština", "vun": "vunjo", "wa": "valonština", "wae": "němčina (walser)", "wal": "wolajtština", "war": "warajština", "was": "waština", "wbp": "warlpiri", "wo": "wolofština", "wuu": "čínština (dialekty Wu)", "xal": "kalmyčtina", "xh": "xhoština", "xmf": "mingrelština", "xog": "sogština", "yao": "jaoština", "yap": "japština", "yav": "jangbenština", "ybb": "yemba", "yi": "jidiš", "yo": "jorubština", "yrl": "nheengatu", "yue": "kantonština", "za": "čuangština", "zap": "zapotéčtina", "zbl": "bliss systém", "zea": "zélandština", "zen": "zenaga", "zgh": "tamazight (standardní marocký)", "zh": "čínština", "zh-Hans": "čínština (zjednodušená)", "zh-Hant": "čínština (tradiční)", "zu": "zuluština", "zun": "zunijština", "zza": "zaza"}, "scriptNames": {"Cyrl": "cyrilice", "Latn": "latinka", "Arab": "arabské", "Guru": "gurmukhi", "Tfng": "berberské", "Vaii": "vai", "Hans": "zjednodušené", "Hant": "tradiční"}}, + "cy": {"rtl": false, "languageNames": {"aa": "Affareg", "ab": "Abchaseg", "ace": "Acehneg", "ach": "Acoli", "ada": "Adangmeg", "ady": "Circaseg Gorllewinol", "ae": "Afestaneg", "aeb": "Arabeg Tunisia", "af": "Affricâneg", "afh": "Affrihili", "agq": "Aghemeg", "ain": "Ainŵeg", "ak": "Acaneg", "akk": "Acadeg", "akz": "Alabamäeg", "ale": "Alewteg", "aln": "Ghegeg Albania", "alt": "Altäeg Deheuol", "am": "Amhareg", "an": "Aragoneg", "ang": "Hen Saesneg", "anp": "Angika", "ar": "Arabeg", "ar-001": "Arabeg Modern Safonol", "arc": "Aramaeg", "arn": "Arawcaneg", "aro": "Araonaeg", "arp": "Arapaho", "arq": "Arabeg Algeria", "arw": "Arawaceg", "ary": "Arabeg Moroco", "arz": "Arabeg yr Aifft", "as": "Asameg", "asa": "Asw", "ase": "Iaith Arwyddion America", "ast": "Astwrianeg", "av": "Afareg", "awa": "Awadhi", "ay": "Aymareg", "az": "Aserbaijaneg", "az-Arab": "Aserbaijaneg Deheuol", "ba": "Bashcorteg", "bal": "Balwtsi", "ban": "Balïeg", "bas": "Basâeg", "bax": "Bamwmeg", "be": "Belarwseg", "bej": "Bejäeg", "bem": "Bembeg", "bez": "Bena", "bfd": "Baffwteg", "bfq": "Badaga", "bg": "Bwlgareg", "bgn": "Balochi Gorllewinol", "bho": "Bhojpuri", "bi": "Bislama", "bin": "Bini", "bkm": "Comeg", "bla": "Siksika", "bm": "Bambareg", "bn": "Bengaleg", "bo": "Tibeteg", "br": "Llydaweg", "brh": "Brahui", "brx": "Bodo", "bs": "Bosnieg", "bss": "Acwseg", "bua": "Bwriateg", "bug": "Bwginaeg", "bum": "Bwlw", "byn": "Blin", "ca": "Catalaneg", "cad": "Cado", "car": "Caribeg", "cch": "Atsameg", "ccp": "Tsiacma", "ce": "Tsietsieneg", "ceb": "Cebuano", "cgg": "Tsiga", "ch": "Tsiamorro", "chk": "Chuukaeg", "chm": "Marieg", "cho": "Siocto", "chr": "Tsierocî", "chy": "Cheyenne", "ckb": "Cwrdeg Sorani", "co": "Corseg", "cop": "Copteg", "cr": "Cri", "crh": "Tyrceg y Crimea", "crs": "Ffrangeg Seselwa Creole", "cs": "Tsieceg", "cu": "Hen Slafoneg", "cv": "Tshwfasheg", "cy": "Cymraeg", "da": "Daneg", "dak": "Dacotaeg", "dar": "Dargwa", "dav": "Taita", "de": "Almaeneg", "de-AT": "Almaeneg Awstria", "de-CH": "Almaeneg Safonol y Swistir", "dgr": "Dogrib", "din": "Dinca", "dje": "Sarmaeg", "doi": "Dogri", "dsb": "Sorbeg Isaf", "dua": "Diwaleg", "dum": "Iseldireg Canol", "dv": "Difehi", "dyo": "Jola-Fonyi", "dz": "Dzongkha", "dzg": "Dazaga", "ebu": "Embw", "ee": "Ewe", "efi": "Efik", "egy": "Hen Eiffteg", "eka": "Ekajuk", "el": "Groeg", "elx": "Elameg", "en": "Saesneg", "en-AU": "Saesneg Awstralia", "en-CA": "Saesneg Canada", "en-GB": "Saesneg Prydain", "en-US": "Saesneg America", "enm": "Saesneg Canol", "eo": "Esperanto", "es": "Sbaeneg", "es-419": "Sbaeneg America Ladin", "es-ES": "Sbaeneg Ewrop", "es-MX": "Sbaeneg Mecsico", "et": "Estoneg", "eu": "Basgeg", "ewo": "Ewondo", "ext": "Extremadureg", "fa": "Perseg", "fat": "Ffanti", "ff": "Ffwla", "fi": "Ffinneg", "fil": "Ffilipineg", "fit": "Ffinneg Tornedal", "fj": "Ffijïeg", "fo": "Ffaröeg", "fon": "Fon", "fr": "Ffrangeg", "fr-CA": "Ffrangeg Canada", "fr-CH": "Ffrangeg y Swistir", "frc": "Ffrangeg Cajwn", "frm": "Ffrangeg Canol", "fro": "Hen Ffrangeg", "frp": "Arpitaneg", "frr": "Ffriseg Gogleddol", "frs": "Ffriseg y Dwyrain", "fur": "Ffriwleg", "fy": "Ffriseg y Gorllewin", "ga": "Gwyddeleg", "gaa": "Ga", "gag": "Gagauz", "gay": "Gaio", "gba": "Gbaia", "gbz": "Dareg y Zoroastriaid", "gd": "Gaeleg yr Alban", "gez": "Geez", "gil": "Gilberteg", "gl": "Galisieg", "gmh": "Almaeneg Uchel Canol", "gn": "Guaraní", "goh": "Hen Almaeneg Uchel", "gor": "Gorontalo", "got": "Gotheg", "grc": "Hen Roeg", "gsw": "Almaeneg y Swistir", "gu": "Gwjarati", "guz": "Gusii", "gv": "Manaweg", "gwi": "Gwichʼin", "ha": "Hawsa", "hai": "Haida", "haw": "Hawäieg", "he": "Hebraeg", "hi": "Hindi", "hil": "Hiligaynon", "hit": "Hetheg", "hmn": "Hmongeg", "hr": "Croateg", "hsb": "Sorbeg Uchaf", "ht": "Creol Haiti", "hu": "Hwngareg", "hup": "Hupa", "hy": "Armeneg", "hz": "Herero", "ia": "Interlingua", "iba": "Ibaneg", "ibb": "Ibibio", "id": "Indoneseg", "ie": "Interlingue", "ig": "Igbo", "ii": "Nwosw", "ik": "Inwpiaceg", "ilo": "Ilocaneg", "inh": "Ingwsieg", "io": "Ido", "is": "Islandeg", "it": "Eidaleg", "iu": "Inwctitwt", "ja": "Japaneeg", "jbo": "Lojban", "jgo": "Ngomba", "jmc": "Matsiame", "jpr": "Iddew-Bersieg", "jrb": "Iddew-Arabeg", "jv": "Jafanaeg", "ka": "Georgeg", "kaa": "Cara-Calpaceg", "kab": "Cabileg", "kac": "Kachin", "kaj": "Jju", "kam": "Camba", "kbd": "Cabardieg", "kcg": "Tyapeg", "kde": "Macondeg", "kea": "Caboferdianeg", "kfo": "Koro", "kg": "Congo", "kha": "Càseg", "khq": "Koyra Chiini", "khw": "Chowareg", "ki": "Kikuyu", "kj": "Kuanyama", "kk": "Casacheg", "kkj": "Kako", "kl": "Kalaallisut", "kln": "Kalenjin", "km": "Chmereg", "kmb": "Kimbundu", "kn": "Kannada", "ko": "Coreeg", "koi": "Komi-Permyak", "kok": "Concani", "kpe": "Kpelle", "kr": "Canwri", "krc": "Karachay-Balkar", "krl": "Careleg", "kru": "Kurukh", "ks": "Cashmireg", "ksb": "Shambala", "ksf": "Baffia", "ksh": "Cwleneg", "ku": "Cwrdeg", "kum": "Cwmiceg", "kv": "Comi", "kw": "Cernyweg", "ky": "Cirgiseg", "la": "Lladin", "lad": "Iddew-Sbaeneg", "lag": "Langi", "lah": "Lahnda", "lam": "Lamba", "lb": "Lwcsembwrgeg", "lez": "Lezgheg", "lg": "Ganda", "li": "Limbwrgeg", "lkt": "Lakota", "lmo": "Lombardeg", "ln": "Lingala", "lo": "Laoeg", "lol": "Mongo", "loz": "Lozi", "lrc": "Luri Gogleddol", "lt": "Lithwaneg", "ltg": "Latgaleg", "lu": "Luba-Katanga", "lua": "Luba-Lulua", "lun": "Lwnda", "luo": "Lŵo", "lus": "Lwshaieg", "luy": "Lwyia", "lv": "Latfieg", "mad": "Madwreg", "mag": "Magahi", "mai": "Maithili", "mak": "Macasareg", "man": "Mandingo", "mas": "Masai", "mdf": "Mocsia", "mdr": "Mandareg", "men": "Mendeg", "mer": "Mêrw", "mfe": "Morisyen", "mg": "Malagaseg", "mga": "Gwyddeleg Canol", "mgh": "Makhuwa-Meetto", "mgo": "Meta", "mh": "Marsialeg", "mi": "Maori", "mic": "Micmaceg", "min": "Minangkabau", "mk": "Macedoneg", "ml": "Malayalam", "mn": "Mongoleg", "mnc": "Manshw", "mni": "Manipwri", "moh": "Mohoceg", "mos": "Mosi", "mr": "Marathi", "mrj": "Mari Gorllewinol", "ms": "Maleieg", "mt": "Malteg", "mua": "Mundang", "mus": "Creek", "mwl": "Mirandeg", "mwr": "Marwari", "my": "Byrmaneg", "myv": "Erzya", "mzn": "Masanderani", "na": "Nawrŵeg", "nap": "Naplieg", "naq": "Nama", "nb": "Norwyeg Bokmål", "nd": "Ndebele Gogleddol", "nds": "Almaeneg Isel", "nds-NL": "Sacsoneg Isel", "ne": "Nepaleg", "new": "Newaeg", "ng": "Ndonga", "nia": "Nias", "niu": "Niuean", "njo": "Ao Naga", "nl": "Iseldireg", "nl-BE": "Fflemeg", "nmg": "Kwasio", "nn": "Norwyeg Nynorsk", "nnh": "Ngiemboon", "no": "Norwyeg", "nog": "Nogai", "non": "Hen Norseg", "nqo": "N’Ko", "nr": "Ndebele Deheuol", "nso": "Sotho Gogleddol", "nus": "Nŵereg", "nv": "Nafaho", "nwc": "Hen Newari", "ny": "Nianja", "nym": "Niamwezi", "nyn": "Niancole", "nyo": "Nioro", "nzi": "Nzimeg", "oc": "Ocsitaneg", "oj": "Ojibwa", "om": "Oromo", "or": "Odia", "os": "Oseteg", "osa": "Osageg", "ota": "Tyrceg Otoman", "pa": "Pwnjabeg", "pag": "Pangasineg", "pal": "Pahlafi", "pam": "Pampanga", "pap": "Papiamento", "pau": "Palawan", "pcd": "Picardeg", "pcm": "Pidgin Nigeria", "pdc": "Almaeneg Pensylfania", "peo": "Hen Bersieg", "pfl": "Almaeneg Palatin", "phn": "Phoeniceg", "pi": "Pali", "pl": "Pwyleg", "pms": "Piedmonteg", "pnt": "Ponteg", "pon": "Pohnpeianeg", "prg": "Prwseg", "pro": "Hen Brofensaleg", "ps": "Pashto", "pt": "Portiwgeeg", "pt-BR": "Portiwgeeg Brasil", "pt-PT": "Portiwgeeg Ewrop", "qu": "Quechua", "quc": "K’iche’", "raj": "Rajasthaneg", "rap": "Rapanŵi", "rar": "Raratongeg", "rm": "Románsh", "rn": "Rwndi", "ro": "Rwmaneg", "ro-MD": "Moldofeg", "rof": "Rombo", "rom": "Romani", "root": "Y Gwraidd", "rtm": "Rotumaneg", "ru": "Rwseg", "rup": "Aromaneg", "rw": "Ciniarŵandeg", "rwk": "Rwa", "sa": "Sansgrit", "sad": "Sandäweg", "sah": "Sakha", "sam": "Aramaeg Samaria", "saq": "Sambŵrw", "sas": "Sasaceg", "sat": "Santali", "sba": "Ngambeieg", "sbp": "Sangw", "sc": "Sardeg", "scn": "Sisileg", "sco": "Sgoteg", "sd": "Sindhi", "sdc": "Sasareseg Sardinia", "sdh": "Cwrdeg Deheuol", "se": "Sami Gogleddol", "see": "Seneca", "seh": "Sena", "sei": "Seri", "sel": "Selcypeg", "ses": "Koyraboro Senni", "sg": "Sango", "sga": "Hen Wyddeleg", "sgs": "Samogiteg", "sh": "Serbo-Croateg", "shi": "Tachelhit", "shn": "Shan", "shu": "Arabeg Chad", "si": "Sinhaleg", "sid": "Sidamo", "sk": "Slofaceg", "sl": "Slofeneg", "sli": "Is-silesieg", "sm": "Samöeg", "sma": "Sami Deheuol", "smj": "Sami Lwle", "smn": "Sami Inari", "sms": "Sami Scolt", "sn": "Shona", "snk": "Soninceg", "so": "Somaleg", "sog": "Sogdeg", "sq": "Albaneg", "sr": "Serbeg", "srn": "Sranan Tongo", "srr": "Serereg", "ss": "Swati", "ssy": "Saho", "st": "Sesotheg Deheuol", "stq": "Ffriseg Saterland", "su": "Swndaneg", "suk": "Swcwma", "sus": "Swsŵeg", "sux": "Swmereg", "sv": "Swedeg", "sw": "Swahili", "sw-CD": "Swahili’r Congo", "swb": "Comoreg", "syc": "Hen Syrieg", "syr": "Syrieg", "szl": "Silesieg", "ta": "Tamileg", "tcy": "Tulu", "te": "Telugu", "tem": "Timneg", "teo": "Teso", "ter": "Terena", "tet": "Tetumeg", "tg": "Tajiceg", "th": "Thai", "ti": "Tigrinya", "tig": "Tigreg", "tiv": "Tifeg", "tk": "Twrcmeneg", "tkl": "Tocelaweg", "tkr": "Tsakhureg", "tl": "Tagalog", "tlh": "Klingon", "tli": "Llingit", "tly": "Talysheg", "tmh": "Tamasheceg", "tn": "Tswana", "to": "Tongeg", "tpi": "Tok Pisin", "tr": "Tyrceg", "trv": "Taroko", "ts": "Tsongaeg", "tsd": "Tsaconeg", "tt": "Tatareg", "tum": "Twmbwca", "tvl": "Twfalweg", "tw": "Twi", "twq": "Tasawaq", "ty": "Tahitïeg", "tyv": "Twfwnieg", "tzm": "Tamaseit Canolbarth Moroco", "udm": "Fotiaceg", "ug": "Uighur", "uga": "Wgariteg", "uk": "Wcreineg", "umb": "Umbundu", "ur": "Wrdw", "uz": "Wsbeceg", "vai": "Faieg", "ve": "Fendeg", "vec": "Feniseg", "vep": "Feps", "vi": "Fietnameg", "vls": "Fflemeg Gorllewinol", "vo": "Folapük", "vot": "Foteg", "vun": "Funjo", "wa": "Walwneg", "wae": "Walsereg", "wal": "Walamo", "war": "Winarayeg", "was": "Washo", "wbp": "Warlpiri", "wo": "Woloff", "xal": "Calmyceg", "xh": "Xhosa", "xog": "Soga", "yav": "Iangben", "ybb": "Iembaeg", "yi": "Iddew-Almaeneg", "yo": "Iorwba", "yue": "Cantoneeg", "zap": "Zapoteceg", "zbl": "Blisssymbols", "zea": "Zêlandeg", "zgh": "Tamaseit Safonol", "zh": "Tsieineeg", "zh-Hans": "Tsieineeg Symledig", "zh-Hant": "Tsieineeg Traddodiadol", "zu": "Swlw", "zun": "Swni", "zza": "Sasäeg"}, "scriptNames": {"Cyrl": "Cyrilig", "Latn": "Lladin", "Arab": "Arabaidd", "Guru": "Gwrmwci", "Hans": "Symledig", "Hant": "Traddodiadol"}}, + "da": {"rtl": false, "languageNames": {"aa": "afar", "ab": "abkhasisk", "ace": "achinesisk", "ach": "acoli", "ada": "adangme", "ady": "adyghe", "ae": "avestan", "af": "afrikaans", "afh": "afrihili", "agq": "aghem", "ain": "ainu", "ak": "akan", "akk": "akkadisk", "ale": "aleutisk", "alt": "sydaltaisk", "am": "amharisk", "an": "aragonesisk", "ang": "oldengelsk", "anp": "angika", "ar": "arabisk", "ar-001": "moderne standardarabisk", "arc": "aramæisk", "arn": "mapudungun", "arp": "arapaho", "ars": "Najd-arabisk", "arw": "arawak", "as": "assamesisk", "asa": "asu", "ast": "asturisk", "av": "avarisk", "awa": "awadhi", "ay": "aymara", "az": "aserbajdsjansk", "ba": "bashkir", "bal": "baluchi", "ban": "balinesisk", "bas": "basaa", "bax": "bamun", "bbj": "ghomala", "be": "hviderussisk", "bej": "beja", "bem": "bemba", "bez": "bena", "bfd": "bafut", "bg": "bulgarsk", "bgn": "vestbaluchi", "bho": "bhojpuri", "bi": "bislama", "bik": "bikol", "bin": "bini", "bkm": "kom", "bla": "siksika", "bm": "bambara", "bn": "bengali", "bo": "tibetansk", "br": "bretonsk", "bra": "braj", "brx": "bodo", "bs": "bosnisk", "bss": "bakossi", "bua": "buriatisk", "bug": "buginesisk", "bum": "bulu", "byn": "blin", "byv": "medumba", "ca": "catalansk", "cad": "caddo", "car": "caribisk", "cay": "cayuga", "cch": "atsam", "ce": "tjetjensk", "ceb": "cebuano", "cgg": "chiga", "ch": "chamorro", "chb": "chibcha", "chg": "chagatai", "chk": "chuukese", "chm": "mari", "chn": "chinook", "cho": "choctaw", "chp": "chipewyan", "chr": "cherokee", "chy": "cheyenne", "ckb": "sorani", "co": "korsikansk", "cop": "koptisk", "cr": "cree", "crh": "krim-tyrkisk", "crs": "seselwa (kreol-fransk)", "cs": "tjekkisk", "csb": "kasjubisk", "cu": "kirkeslavisk", "cv": "chuvash", "cy": "walisisk", "da": "dansk", "dak": "dakota", "dar": "dargwa", "dav": "taita", "de": "tysk", "de-AT": "østrigsk tysk", "de-CH": "schweizerhøjtysk", "del": "delaware", "den": "athapaskisk", "dgr": "dogrib", "din": "dinka", "dje": "zarma", "doi": "dogri", "dsb": "nedersorbisk", "dua": "duala", "dum": "middelhollandsk", "dv": "divehi", "dyo": "jola-fonyi", "dyu": "dyula", "dz": "dzongkha", "dzg": "dazaga", "ebu": "kiembu", "ee": "ewe", "efi": "efik", "egy": "oldegyptisk", "eka": "ekajuk", "el": "græsk", "elx": "elamitisk", "en": "engelsk", "en-AU": "australsk engelsk", "en-CA": "canadisk engelsk", "en-GB": "britisk engelsk", "en-US": "amerikansk engelsk", "enm": "middelengelsk", "eo": "esperanto", "es": "spansk", "es-419": "latinamerikansk spansk", "es-ES": "europæisk spansk", "es-MX": "mexicansk spansk", "et": "estisk", "eu": "baskisk", "ewo": "ewondo", "fa": "persisk", "fan": "fang", "fat": "fanti", "ff": "fulah", "fi": "finsk", "fil": "filippinsk", "fj": "fijiansk", "fo": "færøsk", "fr": "fransk", "fr-CA": "canadisk fransk", "fr-CH": "schweizisk fransk", "frc": "cajunfransk", "frm": "middelfransk", "fro": "oldfransk", "frr": "nordfrisisk", "frs": "østfrisisk", "fur": "friulian", "fy": "vestfrisisk", "ga": "irsk", "gaa": "ga", "gag": "gagauzisk", "gan": "gan-kinesisk", "gay": "gayo", "gba": "gbaya", "gd": "skotsk gælisk", "gez": "geez", "gil": "gilbertesisk", "gl": "galicisk", "gmh": "middelhøjtysk", "gn": "guarani", "goh": "oldhøjtysk", "gon": "gondi", "gor": "gorontalo", "got": "gotisk", "grb": "grebo", "grc": "oldgræsk", "gsw": "schweizertysk", "gu": "gujarati", "guz": "gusii", "gv": "manx", "gwi": "gwichin", "ha": "hausa", "hai": "haida", "hak": "hakka-kinesisk", "haw": "hawaiiansk", "he": "hebraisk", "hi": "hindi", "hil": "hiligaynon", "hit": "hittitisk", "hmn": "hmong", "ho": "hirimotu", "hr": "kroatisk", "hsb": "øvresorbisk", "hsn": "xiang-kinesisk", "ht": "haitisk", "hu": "ungarsk", "hup": "hupa", "hy": "armensk", "hz": "herero", "ia": "interlingua", "iba": "iban", "ibb": "ibibio", "id": "indonesisk", "ie": "interlingue", "ig": "igbo", "ii": "sichuan yi", "ik": "inupiaq", "ilo": "iloko", "inh": "ingush", "io": "ido", "is": "islandsk", "it": "italiensk", "iu": "inuktitut", "ja": "japansk", "jbo": "lojban", "jgo": "ngomba", "jmc": "machame", "jpr": "jødisk-persisk", "jrb": "jødisk-arabisk", "jv": "javanesisk", "ka": "georgisk", "kaa": "karakalpakisk", "kab": "kabylisk", "kac": "kachin", "kaj": "jju", "kam": "kamba", "kaw": "kawi", "kbd": "kabardian", "kbl": "kanembu", "kcg": "tyap", "kde": "makonde", "kea": "kapverdisk", "kfo": "koro", "kg": "kongo", "kha": "khasi", "kho": "khotanesisk", "khq": "koyra-chiini", "ki": "kikuyu", "kj": "kuanyama", "kk": "kasakhisk", "kkj": "kako", "kl": "grønlandsk", "kln": "kalenjin", "km": "khmer", "kmb": "kimbundu", "kn": "kannada", "ko": "koreansk", "koi": "komi-permjakisk", "kok": "konkani", "kos": "kosraean", "kpe": "kpelle", "kr": "kanuri", "krc": "karatjai-balkar", "krl": "karelsk", "kru": "kurukh", "ks": "kashmiri", "ksb": "shambala", "ksf": "bafia", "ksh": "kölsch", "ku": "kurdisk", "kum": "kymyk", "kut": "kutenaj", "kv": "komi", "kw": "cornisk", "ky": "kirgisisk", "la": "latin", "lad": "ladino", "lag": "langi", "lah": "lahnda", "lam": "lamba", "lb": "luxembourgsk", "lez": "lezghian", "lg": "ganda", "li": "limburgsk", "lkt": "lakota", "ln": "lingala", "lo": "lao", "lol": "mongo", "lou": "Louisiana-kreolsk", "loz": "lozi", "lrc": "nordluri", "lt": "litauisk", "lu": "luba-Katanga", "lua": "luba-Lulua", "lui": "luiseno", "lun": "lunda", "lus": "lushai", "luy": "luyana", "lv": "lettisk", "mad": "madurese", "maf": "mafa", "mag": "magahi", "mai": "maithili", "mak": "makasar", "man": "mandingo", "mas": "masai", "mde": "maba", "mdf": "moksha", "mdr": "mandar", "men": "mende", "mer": "meru", "mfe": "morisyen", "mg": "malagassisk", "mga": "middelirsk", "mgh": "makhuwa-meetto", "mgo": "meta", "mh": "marshallese", "mi": "maori", "mic": "micmac", "min": "minangkabau", "mk": "makedonsk", "ml": "malayalam", "mn": "mongolsk", "mnc": "manchu", "mni": "manipuri", "moh": "mohawk", "mos": "mossi", "mr": "marathisk", "ms": "malajisk", "mt": "maltesisk", "mua": "mundang", "mus": "creek", "mwl": "mirandesisk", "mwr": "marwari", "my": "burmesisk", "mye": "myene", "myv": "erzya", "mzn": "mazenisk", "na": "nauru", "nan": "min-kinesisk", "nap": "napolitansk", "naq": "nama", "nb": "norsk bokmål", "nd": "nordndebele", "nds": "nedertysk", "nds-NL": "nedertysk (Holland)", "ne": "nepalesisk", "new": "newari", "ng": "ndonga", "nia": "nias", "niu": "niueansk", "nl": "hollandsk", "nl-BE": "flamsk", "nmg": "kwasio", "nn": "nynorsk", "nnh": "ngiemboon", "no": "norsk", "nog": "nogai", "non": "oldislandsk", "nqo": "n-ko", "nr": "sydndebele", "nso": "nordsotho", "nus": "nuer", "nv": "navajo", "nwc": "klassisk newarisk", "ny": "nyanja", "nym": "nyamwezi", "nyn": "nyankole", "nyo": "nyoro-sprog", "nzi": "nzima", "oc": "occitansk", "oj": "ojibwa", "om": "oromo", "or": "oriya", "os": "ossetisk", "osa": "osage", "ota": "osmannisk tyrkisk", "pa": "punjabisk", "pag": "pangasinan", "pal": "pahlavi", "pam": "pampanga", "pap": "papiamento", "pau": "palauansk", "pcm": "nigeriansk pidgin", "peo": "oldpersisk", "phn": "fønikisk", "pi": "pali", "pl": "polsk", "pon": "ponape", "prg": "preussisk", "pro": "oldprovencalsk", "ps": "pashto", "pt": "portugisisk", "pt-BR": "brasiliansk portugisisk", "pt-PT": "europæisk portugisisk", "qu": "quechua", "quc": "quiché", "raj": "rajasthani", "rap": "rapanui", "rar": "rarotonga", "rm": "rætoromansk", "rn": "rundi", "ro": "rumænsk", "ro-MD": "moldovisk", "rof": "rombo", "rom": "romani", "root": "rod", "ru": "russisk", "rup": "arumænsk", "rw": "kinyarwanda", "rwk": "rwa", "sa": "sanskrit", "sad": "sandawe", "sah": "yakut", "sam": "samaritansk aramæisk", "saq": "samburu", "sas": "sasak", "sat": "santali", "sba": "ngambay", "sbp": "sangu", "sc": "sardinsk", "scn": "siciliansk", "sco": "skotsk", "sd": "sindhi", "sdh": "sydkurdisk", "se": "nordsamisk", "see": "seneca", "seh": "sena", "sel": "selkupisk", "ses": "koyraboro senni", "sg": "sango", "sga": "oldirsk", "sh": "serbokroatisk", "shi": "tachelhit", "shn": "shan", "shu": "tchadisk arabisk", "si": "singalesisk", "sid": "sidamo", "sk": "slovakisk", "sl": "slovensk", "sm": "samoansk", "sma": "sydsamisk", "smj": "lulesamisk", "smn": "enaresamisk", "sms": "skoltesamisk", "sn": "shona", "snk": "soninke", "so": "somali", "sog": "sogdiansk", "sq": "albansk", "sr": "serbisk", "srn": "sranan tongo", "srr": "serer", "ss": "swati", "ssy": "saho", "st": "sydsotho", "su": "sundanesisk", "suk": "sukuma", "sus": "susu", "sux": "sumerisk", "sv": "svensk", "sw": "swahili", "sw-CD": "congolesisk swahili", "swb": "shimaore", "syc": "klassisk syrisk", "syr": "syrisk", "ta": "tamil", "te": "telugu", "tem": "temne", "teo": "teso", "ter": "tereno", "tet": "tetum", "tg": "tadsjikisk", "th": "thai", "ti": "tigrinya", "tig": "tigre", "tiv": "tivi", "tk": "turkmensk", "tkl": "tokelau", "tl": "tagalog", "tlh": "klingon", "tli": "tlingit", "tmh": "tamashek", "tn": "tswana", "to": "tongansk", "tog": "nyasa tongansk", "tpi": "tok pisin", "tr": "tyrkisk", "trv": "taroko", "ts": "tsonga", "tsi": "tsimshisk", "tt": "tatarisk", "tum": "tumbuka", "tvl": "tuvaluansk", "tw": "twi", "twq": "tasawaq", "ty": "tahitiansk", "tyv": "tuvinian", "tzm": "centralmarokkansk tamazight", "udm": "udmurt", "ug": "uygurisk", "uga": "ugaristisk", "uk": "ukrainsk", "umb": "umbundu", "ur": "urdu", "uz": "usbekisk", "ve": "venda", "vi": "vietnamesisk", "vo": "volapyk", "vot": "votisk", "vun": "vunjo", "wa": "vallonsk", "wae": "walsertysk", "wal": "walamo", "war": "waray", "was": "washo", "wbp": "walbiri", "wo": "wolof", "wuu": "wu-kinesisk", "xal": "kalmyk", "xh": "isiXhosa", "xog": "soga", "yap": "yapese", "yav": "yangben", "ybb": "yemba", "yi": "jiddisch", "yo": "yoruba", "yue": "kantonesisk", "za": "zhuang", "zap": "zapotec", "zbl": "blissymboler", "zen": "zenaga", "zgh": "tamazight", "zh": "kinesisk", "zh-Hans": "forenklet kinesisk", "zh-Hant": "traditionelt kinesisk", "zu": "zulu", "zun": "zuni", "zza": "zaza"}, "scriptNames": {"Cyrl": "kyrillisk", "Latn": "latinsk", "Arab": "arabisk", "Guru": "gurmukhi", "Tfng": "tifinagh", "Vaii": "vai", "Hans": "forenklet", "Hant": "traditionelt"}}, + "de": {"rtl": false, "languageNames": {"aa": "Afar", "ab": "Abchasisch", "ace": "Aceh", "ach": "Acholi", "ada": "Adangme", "ady": "Adygeisch", "ae": "Avestisch", "aeb": "Tunesisches Arabisch", "af": "Afrikaans", "afh": "Afrihili", "agq": "Aghem", "ain": "Ainu", "ak": "Akan", "akk": "Akkadisch", "akz": "Alabama", "ale": "Aleutisch", "aln": "Gegisch", "alt": "Süd-Altaisch", "am": "Amharisch", "an": "Aragonesisch", "ang": "Altenglisch", "anp": "Angika", "ar": "Arabisch", "ar-001": "Modernes Hocharabisch", "arc": "Aramäisch", "arn": "Mapudungun", "aro": "Araona", "arp": "Arapaho", "arq": "Algerisches Arabisch", "ars": "Arabisch (Nadschd)", "arw": "Arawak", "ary": "Marokkanisches Arabisch", "arz": "Ägyptisches Arabisch", "as": "Assamesisch", "asa": "Asu", "ase": "Amerikanische Gebärdensprache", "ast": "Asturianisch", "av": "Awarisch", "avk": "Kotava", "awa": "Awadhi", "ay": "Aymara", "az": "Aserbaidschanisch", "ba": "Baschkirisch", "bal": "Belutschisch", "ban": "Balinesisch", "bar": "Bairisch", "bas": "Basaa", "bax": "Bamun", "bbc": "Batak Toba", "bbj": "Ghomala", "be": "Weißrussisch", "bej": "Bedauye", "bem": "Bemba", "bew": "Betawi", "bez": "Bena", "bfd": "Bafut", "bfq": "Badaga", "bg": "Bulgarisch", "bgn": "Westliches Belutschi", "bho": "Bhodschpuri", "bi": "Bislama", "bik": "Bikol", "bin": "Bini", "bjn": "Banjaresisch", "bkm": "Kom", "bla": "Blackfoot", "bm": "Bambara", "bn": "Bengalisch", "bo": "Tibetisch", "bpy": "Bishnupriya", "bqi": "Bachtiarisch", "br": "Bretonisch", "bra": "Braj-Bhakha", "brh": "Brahui", "brx": "Bodo", "bs": "Bosnisch", "bss": "Akoose", "bua": "Burjatisch", "bug": "Buginesisch", "bum": "Bulu", "byn": "Blin", "byv": "Medumba", "ca": "Katalanisch", "cad": "Caddo", "car": "Karibisch", "cay": "Cayuga", "cch": "Atsam", "ce": "Tschetschenisch", "ceb": "Cebuano", "cgg": "Rukiga", "ch": "Chamorro", "chb": "Chibcha", "chg": "Tschagataisch", "chk": "Chuukesisch", "chm": "Mari", "chn": "Chinook", "cho": "Choctaw", "chp": "Chipewyan", "chr": "Cherokee", "chy": "Cheyenne", "ckb": "Zentralkurdisch", "co": "Korsisch", "cop": "Koptisch", "cps": "Capiznon", "cr": "Cree", "crh": "Krimtatarisch", "crs": "Seychellenkreol", "cs": "Tschechisch", "csb": "Kaschubisch", "cu": "Kirchenslawisch", "cv": "Tschuwaschisch", "cy": "Walisisch", "da": "Dänisch", "dak": "Dakota", "dar": "Darginisch", "dav": "Taita", "de": "Deutsch", "de-AT": "Österreichisches Deutsch", "de-CH": "Schweizer Hochdeutsch", "del": "Delaware", "den": "Slave", "dgr": "Dogrib", "din": "Dinka", "dje": "Zarma", "doi": "Dogri", "dsb": "Niedersorbisch", "dtp": "Zentral-Dusun", "dua": "Duala", "dum": "Mittelniederländisch", "dv": "Dhivehi", "dyo": "Diola", "dyu": "Dyula", "dz": "Dzongkha", "dzg": "Dazaga", "ebu": "Embu", "ee": "Ewe", "efi": "Efik", "egl": "Emilianisch", "egy": "Ägyptisch", "eka": "Ekajuk", "el": "Griechisch", "elx": "Elamisch", "en": "Englisch", "en-AU": "Englisch (Australien)", "en-CA": "Englisch (Kanada)", "en-GB": "Englisch (Vereinigtes Königreich)", "en-US": "Englisch (Vereinigte Staaten)", "enm": "Mittelenglisch", "eo": "Esperanto", "es": "Spanisch", "es-419": "Spanisch (Lateinamerika)", "es-ES": "Spanisch (Spanien)", "es-MX": "Spanisch (Mexiko)", "esu": "Zentral-Alaska-Yupik", "et": "Estnisch", "eu": "Baskisch", "ewo": "Ewondo", "ext": "Extremadurisch", "fa": "Persisch", "fan": "Pangwe", "fat": "Fanti", "ff": "Ful", "fi": "Finnisch", "fil": "Filipino", "fit": "Meänkieli", "fj": "Fidschi", "fo": "Färöisch", "fon": "Fon", "fr": "Französisch", "fr-CA": "Französisch (Kanada)", "fr-CH": "Französisch (Schweiz)", "frc": "Cajun", "frm": "Mittelfranzösisch", "fro": "Altfranzösisch", "frp": "Frankoprovenzalisch", "frr": "Nordfriesisch", "frs": "Ostfriesisch", "fur": "Friaulisch", "fy": "Westfriesisch", "ga": "Irisch", "gaa": "Ga", "gag": "Gagausisch", "gan": "Gan", "gay": "Gayo", "gba": "Gbaya", "gbz": "Gabri", "gd": "Schottisches Gälisch", "gez": "Geez", "gil": "Kiribatisch", "gl": "Galicisch", "glk": "Gilaki", "gmh": "Mittelhochdeutsch", "gn": "Guaraní", "goh": "Althochdeutsch", "gom": "Goa-Konkani", "gon": "Gondi", "gor": "Mongondou", "got": "Gotisch", "grb": "Grebo", "grc": "Altgriechisch", "gsw": "Schweizerdeutsch", "gu": "Gujarati", "guc": "Wayúu", "gur": "Farefare", "guz": "Gusii", "gv": "Manx", "gwi": "Kutchin", "ha": "Haussa", "hai": "Haida", "hak": "Hakka", "haw": "Hawaiisch", "he": "Hebräisch", "hi": "Hindi", "hif": "Fidschi-Hindi", "hil": "Hiligaynon", "hit": "Hethitisch", "hmn": "Miao", "ho": "Hiri-Motu", "hr": "Kroatisch", "hsb": "Obersorbisch", "hsn": "Xiang", "ht": "Haiti-Kreolisch", "hu": "Ungarisch", "hup": "Hupa", "hy": "Armenisch", "hz": "Herero", "ia": "Interlingua", "iba": "Iban", "ibb": "Ibibio", "id": "Indonesisch", "ie": "Interlingue", "ig": "Igbo", "ii": "Yi", "ik": "Inupiak", "ilo": "Ilokano", "inh": "Inguschisch", "io": "Ido", "is": "Isländisch", "it": "Italienisch", "iu": "Inuktitut", "izh": "Ischorisch", "ja": "Japanisch", "jam": "Jamaikanisch-Kreolisch", "jbo": "Lojban", "jgo": "Ngomba", "jmc": "Machame", "jpr": "Jüdisch-Persisch", "jrb": "Jüdisch-Arabisch", "jut": "Jütisch", "jv": "Javanisch", "ka": "Georgisch", "kaa": "Karakalpakisch", "kab": "Kabylisch", "kac": "Kachin", "kaj": "Jju", "kam": "Kamba", "kaw": "Kawi", "kbd": "Kabardinisch", "kbl": "Kanembu", "kcg": "Tyap", "kde": "Makonde", "kea": "Kabuverdianu", "ken": "Kenyang", "kfo": "Koro", "kg": "Kongolesisch", "kgp": "Kaingang", "kha": "Khasi", "kho": "Sakisch", "khq": "Koyra Chiini", "khw": "Khowar", "ki": "Kikuyu", "kiu": "Kirmanjki", "kj": "Kwanyama", "kk": "Kasachisch", "kkj": "Kako", "kl": "Grönländisch", "kln": "Kalenjin", "km": "Khmer", "kmb": "Kimbundu", "kn": "Kannada", "ko": "Koreanisch", "koi": "Komi-Permjakisch", "kok": "Konkani", "kos": "Kosraeanisch", "kpe": "Kpelle", "kr": "Kanuri", "krc": "Karatschaiisch-Balkarisch", "kri": "Krio", "krj": "Kinaray-a", "krl": "Karelisch", "kru": "Oraon", "ks": "Kaschmiri", "ksb": "Shambala", "ksf": "Bafia", "ksh": "Kölsch", "ku": "Kurdisch", "kum": "Kumükisch", "kut": "Kutenai", "kv": "Komi", "kw": "Kornisch", "ky": "Kirgisisch", "la": "Latein", "lad": "Ladino", "lag": "Langi", "lah": "Lahnda", "lam": "Lamba", "lb": "Luxemburgisch", "lez": "Lesgisch", "lfn": "Lingua Franca Nova", "lg": "Ganda", "li": "Limburgisch", "lij": "Ligurisch", "liv": "Livisch", "lkt": "Lakota", "lmo": "Lombardisch", "ln": "Lingala", "lo": "Laotisch", "lol": "Mongo", "lou": "Kreol (Louisiana)", "loz": "Lozi", "lrc": "Nördliches Luri", "lt": "Litauisch", "ltg": "Lettgallisch", "lu": "Luba-Katanga", "lua": "Luba-Lulua", "lui": "Luiseno", "lun": "Lunda", "luo": "Luo", "lus": "Lushai", "luy": "Luhya", "lv": "Lettisch", "lzh": "Klassisches Chinesisch", "lzz": "Lasisch", "mad": "Maduresisch", "maf": "Mafa", "mag": "Khotta", "mai": "Maithili", "mak": "Makassarisch", "man": "Malinke", "mas": "Massai", "mde": "Maba", "mdf": "Mokschanisch", "mdr": "Mandaresisch", "men": "Mende", "mer": "Meru", "mfe": "Morisyen", "mg": "Madagassisch", "mga": "Mittelirisch", "mgh": "Makhuwa-Meetto", "mgo": "Meta’", "mh": "Marschallesisch", "mi": "Maori", "mic": "Micmac", "min": "Minangkabau", "mk": "Mazedonisch", "ml": "Malayalam", "mn": "Mongolisch", "mnc": "Mandschurisch", "mni": "Meithei", "moh": "Mohawk", "mos": "Mossi", "mr": "Marathi", "mrj": "Bergmari", "ms": "Malaiisch", "mt": "Maltesisch", "mua": "Mundang", "mus": "Muskogee", "mwl": "Mirandesisch", "mwr": "Marwari", "mwv": "Mentawai", "my": "Birmanisch", "mye": "Myene", "myv": "Ersja-Mordwinisch", "mzn": "Masanderanisch", "na": "Nauruisch", "nan": "Min Nan", "nap": "Neapolitanisch", "naq": "Nama", "nb": "Norwegisch Bokmål", "nd": "Nord-Ndebele", "nds": "Niederdeutsch", "nds-NL": "Niedersächsisch", "ne": "Nepalesisch", "new": "Newari", "ng": "Ndonga", "nia": "Nias", "niu": "Niue", "njo": "Ao-Naga", "nl": "Niederländisch", "nl-BE": "Flämisch", "nmg": "Kwasio", "nn": "Norwegisch Nynorsk", "nnh": "Ngiemboon", "no": "Norwegisch", "nog": "Nogai", "non": "Altnordisch", "nov": "Novial", "nqo": "N’Ko", "nr": "Süd-Ndebele", "nso": "Nord-Sotho", "nus": "Nuer", "nv": "Navajo", "nwc": "Alt-Newari", "ny": "Nyanja", "nym": "Nyamwezi", "nyn": "Nyankole", "nyo": "Nyoro", "nzi": "Nzima", "oc": "Okzitanisch", "oj": "Ojibwa", "om": "Oromo", "or": "Oriya", "os": "Ossetisch", "osa": "Osage", "ota": "Osmanisch", "pa": "Punjabi", "pag": "Pangasinan", "pal": "Mittelpersisch", "pam": "Pampanggan", "pap": "Papiamento", "pau": "Palau", "pcd": "Picardisch", "pcm": "Nigerianisches Pidgin", "pdc": "Pennsylvaniadeutsch", "pdt": "Plautdietsch", "peo": "Altpersisch", "pfl": "Pfälzisch", "phn": "Phönizisch", "pi": "Pali", "pl": "Polnisch", "pms": "Piemontesisch", "pnt": "Pontisch", "pon": "Ponapeanisch", "prg": "Altpreußisch", "pro": "Altprovenzalisch", "ps": "Paschtu", "pt": "Portugiesisch", "pt-BR": "Portugiesisch (Brasilien)", "pt-PT": "Portugiesisch (Portugal)", "qu": "Quechua", "quc": "K’iche’", "qug": "Chimborazo Hochland-Quechua", "raj": "Rajasthani", "rap": "Rapanui", "rar": "Rarotonganisch", "rgn": "Romagnol", "rif": "Tarifit", "rm": "Rätoromanisch", "rn": "Rundi", "ro": "Rumänisch", "ro-MD": "Moldauisch", "rof": "Rombo", "rom": "Romani", "root": "Root", "rtm": "Rotumanisch", "ru": "Russisch", "rue": "Russinisch", "rug": "Roviana", "rup": "Aromunisch", "rw": "Kinyarwanda", "rwk": "Rwa", "sa": "Sanskrit", "sad": "Sandawe", "sah": "Jakutisch", "sam": "Samaritanisch", "saq": "Samburu", "sas": "Sasak", "sat": "Santali", "saz": "Saurashtra", "sba": "Ngambay", "sbp": "Sangu", "sc": "Sardisch", "scn": "Sizilianisch", "sco": "Schottisch", "sd": "Sindhi", "sdc": "Sassarisch", "sdh": "Südkurdisch", "se": "Nordsamisch", "see": "Seneca", "seh": "Sena", "sei": "Seri", "sel": "Selkupisch", "ses": "Koyra Senni", "sg": "Sango", "sga": "Altirisch", "sgs": "Samogitisch", "sh": "Serbo-Kroatisch", "shi": "Taschelhit", "shn": "Schan", "shu": "Tschadisch-Arabisch", "si": "Singhalesisch", "sid": "Sidamo", "sk": "Slowakisch", "sl": "Slowenisch", "sli": "Schlesisch (Niederschlesisch)", "sly": "Selayar", "sm": "Samoanisch", "sma": "Südsamisch", "smj": "Lule-Samisch", "smn": "Inari-Samisch", "sms": "Skolt-Samisch", "sn": "Shona", "snk": "Soninke", "so": "Somali", "sog": "Sogdisch", "sq": "Albanisch", "sr": "Serbisch", "srn": "Srananisch", "srr": "Serer", "ss": "Swazi", "ssy": "Saho", "st": "Süd-Sotho", "stq": "Saterfriesisch", "su": "Sundanesisch", "suk": "Sukuma", "sus": "Susu", "sux": "Sumerisch", "sv": "Schwedisch", "sw": "Suaheli", "sw-CD": "Kongo-Swahili", "swb": "Komorisch", "syc": "Altsyrisch", "syr": "Syrisch", "szl": "Schlesisch (Wasserpolnisch)", "ta": "Tamil", "tcy": "Tulu", "te": "Telugu", "tem": "Temne", "teo": "Teso", "ter": "Tereno", "tet": "Tetum", "tg": "Tadschikisch", "th": "Thailändisch", "ti": "Tigrinya", "tig": "Tigre", "tiv": "Tiv", "tk": "Turkmenisch", "tkl": "Tokelauanisch", "tkr": "Tsachurisch", "tl": "Tagalog", "tlh": "Klingonisch", "tli": "Tlingit", "tly": "Talisch", "tmh": "Tamaseq", "tn": "Tswana", "to": "Tongaisch", "tog": "Nyasa Tonga", "tpi": "Neumelanesisch", "tr": "Türkisch", "tru": "Turoyo", "trv": "Taroko", "ts": "Tsonga", "tsd": "Tsakonisch", "tsi": "Tsimshian", "tt": "Tatarisch", "ttt": "Tatisch", "tum": "Tumbuka", "tvl": "Tuvaluisch", "tw": "Twi", "twq": "Tasawaq", "ty": "Tahitisch", "tyv": "Tuwinisch", "tzm": "Zentralatlas-Tamazight", "udm": "Udmurtisch", "ug": "Uigurisch", "uga": "Ugaritisch", "uk": "Ukrainisch", "umb": "Umbundu", "ur": "Urdu", "uz": "Usbekisch", "vai": "Vai", "ve": "Venda", "vec": "Venetisch", "vep": "Wepsisch", "vi": "Vietnamesisch", "vls": "Westflämisch", "vmf": "Mainfränkisch", "vo": "Volapük", "vot": "Wotisch", "vro": "Võro", "vun": "Vunjo", "wa": "Wallonisch", "wae": "Walliserdeutsch", "wal": "Walamo", "war": "Waray", "was": "Washo", "wbp": "Warlpiri", "wo": "Wolof", "wuu": "Wu", "xal": "Kalmückisch", "xh": "Xhosa", "xmf": "Mingrelisch", "xog": "Soga", "yao": "Yao", "yap": "Yapesisch", "yav": "Yangben", "ybb": "Yemba", "yi": "Jiddisch", "yo": "Yoruba", "yrl": "Nheengatu", "yue": "Kantonesisch", "za": "Zhuang", "zap": "Zapotekisch", "zbl": "Bliss-Symbole", "zea": "Seeländisch", "zen": "Zenaga", "zgh": "Tamazight", "zh": "Chinesisch", "zh-Hans": "Chinesisch (vereinfacht)", "zh-Hant": "Chinesisch (traditionell)", "zu": "Zulu", "zun": "Zuni", "zza": "Zaza"}, "scriptNames": {"Cyrl": "Kyrillisch", "Latn": "Lateinisch", "Arab": "Arabisch", "Guru": "Gurmukhi", "Tfng": "Tifinagh", "Vaii": "Vai", "Hans": "Vereinfacht", "Hant": "Traditionell"}}, + "dv": {"rtl": true, "languageNames": {}, "scriptNames": {}}, + "el": {"rtl": false, "languageNames": {"aa": "Αφάρ", "ab": "Αμπχαζικά", "ace": "Ατσινιζικά", "ach": "Ακολί", "ada": "Αντάνγκμε", "ady": "Αντιγκέα", "ae": "Αβεστάν", "af": "Αφρικάανς", "afh": "Αφριχίλι", "agq": "Αγκέμ", "ain": "Αϊνού", "ak": "Ακάν", "akk": "Ακάντιαν", "ale": "Αλεούτ", "alt": "Νότια Αλτάι", "am": "Αμχαρικά", "an": "Αραγονικά", "ang": "Παλαιά Αγγλικά", "anp": "Ανγκικά", "ar": "Αραβικά", "ar-001": "Σύγχρονα Τυπικά Αραβικά", "arc": "Αραμαϊκά", "arn": "Αραουκανικά", "arp": "Αραπάχο", "ars": "Αραβικά Νάτζντι", "arw": "Αραγουάκ", "as": "Ασαμικά", "asa": "Άσου", "ast": "Αστουριανά", "av": "Αβαρικά", "awa": "Αγουαντί", "ay": "Αϊμάρα", "az": "Αζερμπαϊτζανικά", "ba": "Μπασκίρ", "bal": "Μπαλούτσι", "ban": "Μπαλινίζ", "bas": "Μπάσα", "bax": "Μπαμούν", "bbj": "Γκομάλα", "be": "Λευκορωσικά", "bej": "Μπέζα", "bem": "Μπέμπα", "bez": "Μπένα", "bfd": "Μπαφούτ", "bg": "Βουλγαρικά", "bgn": "Δυτικά Μπαλοχικά", "bho": "Μπότζπουρι", "bi": "Μπισλάμα", "bik": "Μπικόλ", "bin": "Μπίνι", "bkm": "Κομ", "bla": "Σικσίκα", "bm": "Μπαμπάρα", "bn": "Βεγγαλικά", "bo": "Θιβετιανά", "br": "Βρετονικά", "bra": "Μπρατζ", "brx": "Μπόντο", "bs": "Βοσνιακά", "bss": "Ακόσι", "bua": "Μπουριάτ", "bug": "Μπουγκίζ", "bum": "Μπουλού", "byn": "Μπλιν", "byv": "Μεντούμπα", "ca": "Καταλανικά", "cad": "Κάντο", "car": "Καρίμπ", "cay": "Καγιούγκα", "cch": "Ατσάμ", "ccp": "Τσάκμα", "ce": "Τσετσενικά", "ceb": "Σεμπουάνο", "cgg": "Τσίγκα", "ch": "Τσαμόρο", "chb": "Τσίμπτσα", "chg": "Τσαγκατάι", "chk": "Τσουκίζι", "chm": "Μάρι", "chn": "Ιδιωματικά Σινούκ", "cho": "Τσόκτο", "chp": "Τσίπιουαν", "chr": "Τσερόκι", "chy": "Τσεγιέν", "ckb": "Κουρδικά Σοράνι", "co": "Κορσικανικά", "cop": "Κοπτικά", "cr": "Κρι", "crh": "Τουρκικά Κριμαίας", "crs": "Κρεολικά Γαλλικά Σεϋχελλών", "cs": "Τσεχικά", "csb": "Κασούμπιαν", "cu": "Εκκλησιαστικά Σλαβικά", "cv": "Τσουβασικά", "cy": "Ουαλικά", "da": "Δανικά", "dak": "Ντακότα", "dar": "Ντάργκουα", "dav": "Τάιτα", "de": "Γερμανικά", "de-AT": "Γερμανικά Αυστρίας", "de-CH": "Υψηλά Γερμανικά Ελβετίας", "del": "Ντέλαγουερ", "den": "Σλαβικά", "dgr": "Ντόγκριμπ", "din": "Ντίνκα", "dje": "Ζάρμα", "doi": "Ντόγκρι", "dsb": "Κάτω Σορβικά", "dua": "Ντουάλα", "dum": "Μέσα Ολλανδικά", "dv": "Ντιβέχι", "dyo": "Τζόλα-Φόνι", "dyu": "Ντογιούλα", "dz": "Ντζόνγκχα", "dzg": "Νταζάγκα", "ebu": "Έμπου", "ee": "Έουε", "efi": "Εφίκ", "egy": "Αρχαία Αιγυπτιακά", "eka": "Εκατζούκ", "el": "Ελληνικά", "elx": "Ελαμάιτ", "en": "Αγγλικά", "en-AU": "Αγγλικά Αυστραλίας", "en-CA": "Αγγλικά Καναδά", "en-GB": "Αγγλικά Βρετανίας", "en-US": "Αγγλικά Αμερικής", "enm": "Μέσα Αγγλικά", "eo": "Εσπεράντο", "es": "Ισπανικά", "es-419": "Ισπανικά Λατινικής Αμερικής", "es-ES": "Ισπανικά Ευρώπης", "es-MX": "Ισπανικά Μεξικού", "et": "Εσθονικά", "eu": "Βασκικά", "ewo": "Εγουόντο", "fa": "Περσικά", "fan": "Φανγκ", "fat": "Φάντι", "ff": "Φουλά", "fi": "Φινλανδικά", "fil": "Φιλιππινικά", "fj": "Φίτζι", "fo": "Φεροϊκά", "fon": "Φον", "fr": "Γαλλικά", "fr-CA": "Γαλλικά Καναδά", "fr-CH": "Γαλλικά Ελβετίας", "frc": "Γαλλικά (Λουιζιάνα)", "frm": "Μέσα Γαλλικά", "fro": "Παλαιά Γαλλικά", "frr": "Βόρεια Φριζιανά", "frs": "Ανατολικά Φριζιανά", "fur": "Φριουλανικά", "fy": "Δυτικά Φριζικά", "ga": "Ιρλανδικά", "gaa": "Γκα", "gag": "Γκαγκάουζ", "gay": "Γκάγιο", "gba": "Γκμπάγια", "gd": "Σκωτικά Κελτικά", "gez": "Γκιζ", "gil": "Γκιλμπερτίζ", "gl": "Γαλικιανά", "gmh": "Μέσα Άνω Γερμανικά", "gn": "Γκουαρανί", "goh": "Παλαιά Άνω Γερμανικά", "gon": "Γκόντι", "gor": "Γκοροντάλο", "got": "Γοτθικά", "grb": "Γκρίμπο", "grc": "Αρχαία Ελληνικά", "gsw": "Γερμανικά Ελβετίας", "gu": "Γκουγιαράτι", "guz": "Γκούσι", "gv": "Μανξ", "gwi": "Γκουίτσιν", "ha": "Χάουσα", "hai": "Χάιντα", "haw": "Χαβαϊκά", "he": "Εβραϊκά", "hi": "Χίντι", "hil": "Χιλιγκαϊνόν", "hit": "Χιτίτε", "hmn": "Χμονγκ", "ho": "Χίρι Μότου", "hr": "Κροατικά", "hsb": "Άνω Σορβικά", "ht": "Αϊτιανά", "hu": "Ουγγρικά", "hup": "Χούπα", "hy": "Αρμενικά", "hz": "Χερέρο", "ia": "Ιντερλίνγκουα", "iba": "Ιμπάν", "ibb": "Ιμπίμπιο", "id": "Ινδονησιακά", "ie": "Ιντερλίνγκουε", "ig": "Ίγκμπο", "ii": "Σίτσουαν Γι", "ik": "Ινουπιάκ", "ilo": "Ιλόκο", "inh": "Ινγκούς", "io": "Ίντο", "is": "Ισλανδικά", "it": "Ιταλικά", "iu": "Ινούκτιτουτ", "ja": "Ιαπωνικά", "jbo": "Λόζμπαν", "jgo": "Νγκόμπα", "jmc": "Ματσάμε", "jpr": "Ιουδαϊκά-Περσικά", "jrb": "Ιουδαϊκά-Αραβικά", "jv": "Ιαβανικά", "ka": "Γεωργιανά", "kaa": "Κάρα-Καλπάκ", "kab": "Καμπίλε", "kac": "Κατσίν", "kaj": "Τζου", "kam": "Κάμπα", "kaw": "Κάουι", "kbd": "Καμπαρντιανά", "kbl": "Κανέμπου", "kcg": "Τιάπ", "kde": "Μακόντε", "kea": "Γλώσσα του Πράσινου Ακρωτηρίου", "kfo": "Κόρο", "kg": "Κονγκό", "kha": "Κάσι", "kho": "Κοτανικά", "khq": "Κόιρα Τσίνι", "ki": "Κικούγιου", "kj": "Κουανιάμα", "kk": "Καζακικά", "kkj": "Κάκο", "kl": "Καλαάλισουτ", "kln": "Καλεντζίν", "km": "Χμερ", "kmb": "Κιμπούντου", "kn": "Κανάντα", "ko": "Κορεατικά", "koi": "Κόμι-Περμιάκ", "kok": "Κονκανικά", "kos": "Κοσραενικά", "kpe": "Κπέλε", "kr": "Κανούρι", "krc": "Καρατσάι-Μπαλκάρ", "krl": "Καρελικά", "kru": "Κουρούχ", "ks": "Κασμιρικά", "ksb": "Σαμπάλα", "ksf": "Μπάφια", "ksh": "Κολωνικά", "ku": "Κουρδικά", "kum": "Κουμγιούκ", "kut": "Κουτενάι", "kv": "Κόμι", "kw": "Κορνουαλικά", "ky": "Κιργιζικά", "la": "Λατινικά", "lad": "Λαδίνο", "lag": "Λάνγκι", "lah": "Λάχδα", "lam": "Λάμπα", "lb": "Λουξεμβουργιανά", "lez": "Λεζγκικά", "lg": "Γκάντα", "li": "Λιμβουργιανά", "lkt": "Λακότα", "ln": "Λινγκάλα", "lo": "Λαοτινά", "lol": "Μόνγκο", "lou": "Κρεολικά (Λουιζιάνα)", "loz": "Λόζι", "lrc": "Βόρεια Λούρι", "lt": "Λιθουανικά", "lu": "Λούμπα-Κατάνγκα", "lua": "Λούμπα-Λουλούα", "lui": "Λουισένο", "lun": "Λούντα", "luo": "Λούο", "lus": "Μίζο", "luy": "Λούχια", "lv": "Λετονικά", "mad": "Μαντουρίζ", "maf": "Μάφα", "mag": "Μαγκάχι", "mai": "Μαϊτχίλι", "mak": "Μακασάρ", "man": "Μαντίνγκο", "mas": "Μασάι", "mde": "Μάμπα", "mdf": "Μόκσα", "mdr": "Μανδάρ", "men": "Μέντε", "mer": "Μέρου", "mfe": "Μορισιέν", "mg": "Μαλγασικά", "mga": "Μέσα Ιρλανδικά", "mgh": "Μακούβα-Μέτο", "mgo": "Μέτα", "mh": "Μαρσαλέζικα", "mi": "Μαορί", "mic": "Μικμάκ", "min": "Μινανγκαμπάου", "mk": "Μακεδονικά", "ml": "Μαλαγιαλαμικά", "mn": "Μογγολικά", "mnc": "Μαντσού", "mni": "Μανιπούρι", "moh": "Μοχόκ", "mos": "Μόσι", "mr": "Μαραθικά", "ms": "Μαλαισιανά", "mt": "Μαλτεζικά", "mua": "Μουντάνγκ", "mus": "Κρικ", "mwl": "Μιραντεζικά", "mwr": "Μαργουάρι", "my": "Βιρμανικά", "mye": "Μιένε", "myv": "Έρζια", "mzn": "Μαζαντεράνι", "na": "Ναούρου", "nap": "Ναπολιτανικά", "naq": "Νάμα", "nb": "Νορβηγικά Μποκμάλ", "nd": "Βόρεια Ντεμπέλε", "nds": "Κάτω Γερμανικά", "nds-NL": "Κάτω Γερμανικά Ολλανδίας", "ne": "Νεπαλικά", "new": "Νεγουάρι", "ng": "Ντόνγκα", "nia": "Νίας", "niu": "Νιούε", "nl": "Ολλανδικά", "nl-BE": "Φλαμανδικά", "nmg": "Κβάσιο", "nn": "Νορβηγικά Νινόρσκ", "nnh": "Νγκιεμπούν", "no": "Νορβηγικά", "nog": "Νογκάι", "non": "Παλαιά Νορβηγικά", "nqo": "Ν’Κο", "nr": "Νότια Ντεμπέλε", "nso": "Βόρεια Σόθο", "nus": "Νούερ", "nv": "Νάβαχο", "nwc": "Κλασικά Νεουάρι", "ny": "Νιάντζα", "nym": "Νιαμγουέζι", "nyn": "Νιανκόλε", "nyo": "Νιόρο", "nzi": "Νζίμα", "oc": "Οξιτανικά", "oj": "Οζιβίγουα", "om": "Ορόμο", "or": "Όντια", "os": "Οσετικά", "osa": "Οσάζ", "ota": "Οθωμανικά Τουρκικά", "pa": "Παντζαπικά", "pag": "Πανγκασινάν", "pal": "Παχλάβι", "pam": "Παμπάνγκα", "pap": "Παπιαμέντο", "pau": "Παλάουαν", "pcm": "Πίτζιν Νιγηρίας", "peo": "Αρχαία Περσικά", "phn": "Φοινικικά", "pi": "Πάλι", "pl": "Πολωνικά", "pon": "Πομπηικά", "prg": "Πρωσικά", "pro": "Παλαιά Προβανσάλ", "ps": "Πάστο", "pt": "Πορτογαλικά", "pt-BR": "Πορτογαλικά Βραζιλίας", "pt-PT": "Πορτογαλικά Ευρώπης", "qu": "Κέτσουα", "quc": "Κιτσέ", "raj": "Ραζασθάνι", "rap": "Ραπανούι", "rar": "Ραροτονγκάν", "rm": "Ρομανικά", "rn": "Ρούντι", "ro": "Ρουμανικά", "ro-MD": "Μολδαβικά", "rof": "Ρόμπο", "rom": "Ρομανί", "root": "Ρίζα", "ru": "Ρωσικά", "rup": "Αρομανικά", "rw": "Κινιαρουάντα", "rwk": "Ρουά", "sa": "Σανσκριτικά", "sad": "Σαντάγουε", "sah": "Σαχά", "sam": "Σαμαρίτικα Αραμαϊκά", "saq": "Σαμπούρου", "sas": "Σασάκ", "sat": "Σαντάλι", "sba": "Νγκαμπέι", "sbp": "Σάνγκου", "sc": "Σαρδηνιακά", "scn": "Σικελικά", "sco": "Σκωτικά", "sd": "Σίντι", "sdh": "Νότια Κουρδικά", "se": "Βόρεια Σάμι", "see": "Σένεκα", "seh": "Σένα", "sel": "Σελκούπ", "ses": "Κοϊραμπόρο Σένι", "sg": "Σάνγκο", "sga": "Παλαιά Ιρλανδικά", "sh": "Σερβοκροατικά", "shi": "Τασελχίτ", "shn": "Σαν", "shu": "Αραβικά του Τσαντ", "si": "Σινχαλεζικά", "sid": "Σιντάμο", "sk": "Σλοβακικά", "sl": "Σλοβενικά", "sm": "Σαμοανά", "sma": "Νότια Σάμι", "smj": "Λούλε Σάμι", "smn": "Ινάρι Σάμι", "sms": "Σκολτ Σάμι", "sn": "Σόνα", "snk": "Σονίνκε", "so": "Σομαλικά", "sog": "Σογκντιέν", "sq": "Αλβανικά", "sr": "Σερβικά", "srn": "Σρανάν Τόνγκο", "srr": "Σερέρ", "ss": "Σουάτι", "ssy": "Σάχο", "st": "Νότια Σόθο", "su": "Σουνδανικά", "suk": "Σουκούμα", "sus": "Σούσου", "sux": "Σουμερικά", "sv": "Σουηδικά", "sw": "Σουαχίλι", "sw-CD": "Κονγκό Σουαχίλι", "swb": "Κομοριανά", "syc": "Κλασικά Συριακά", "syr": "Συριακά", "ta": "Ταμιλικά", "te": "Τελούγκου", "tem": "Τίμνε", "teo": "Τέσο", "ter": "Τερένο", "tet": "Τέτουμ", "tg": "Τατζικικά", "th": "Ταϊλανδικά", "ti": "Τιγκρινικά", "tig": "Τίγκρε", "tiv": "Τιβ", "tk": "Τουρκμενικά", "tkl": "Τοκελάου", "tl": "Τάγκαλογκ", "tlh": "Κλίνγκον", "tli": "Τλίνγκιτ", "tmh": "Ταμασέκ", "tn": "Τσουάνα", "to": "Τονγκανικά", "tog": "Νιάσα Τόνγκα", "tpi": "Τοκ Πισίν", "tr": "Τουρκικά", "trv": "Ταρόκο", "ts": "Τσόνγκα", "tsi": "Τσίμσιαν", "tt": "Ταταρικά", "tum": "Τουμπούκα", "tvl": "Τουβαλού", "tw": "Τούι", "twq": "Τασαβάκ", "ty": "Ταϊτιανά", "tyv": "Τουβινικά", "tzm": "Ταμαζίτ Κεντρικού Μαρόκο", "udm": "Ουντμούρτ", "ug": "Ουιγκουρικά", "uga": "Ουγκαριτικά", "uk": "Ουκρανικά", "umb": "Ουμπούντου", "ur": "Ουρντού", "uz": "Ουζμπεκικά", "vai": "Βάι", "ve": "Βέντα", "vi": "Βιετναμικά", "vo": "Βολαπιούκ", "vot": "Βότικ", "vun": "Βούντζο", "wa": "Βαλλωνικά", "wae": "Βάλσερ", "wal": "Γουολάιτα", "war": "Γουάραϊ", "was": "Γουασό", "wbp": "Γουαρλπίρι", "wo": "Γουόλοφ", "wuu": "Κινεζικά Γου", "xal": "Καλμίκ", "xh": "Κόσα", "xog": "Σόγκα", "yao": "Γιάο", "yap": "Γιαπίζ", "yav": "Γιανγκμπέν", "ybb": "Γιέμπα", "yi": "Γίντις", "yo": "Γιορούμπα", "yue": "Καντονέζικα", "za": "Ζουάνγκ", "zap": "Ζάποτεκ", "zbl": "Σύμβολα Bliss", "zen": "Ζενάγκα", "zgh": "Τυπικά Ταμαζίτ Μαρόκου", "zh": "Κινεζικά", "zh-Hans": "Απλοποιημένα Κινεζικά", "zh-Hant": "Παραδοσιακά Κινεζικά", "zu": "Ζουλού", "zun": "Ζούνι", "zza": "Ζάζα"}, "scriptNames": {"Cyrl": "Κυριλλικό", "Latn": "Λατινικό", "Arab": "Αραβικό", "Guru": "Γκουρμουκχί", "Tfng": "Τιφινάγκ", "Vaii": "Βάι", "Hans": "Απλοποιημένο", "Hant": "Παραδοσιακό"}}, + "en": {"rtl": false, "languageNames": {"aa": "Afar", "ab": "Abkhazian", "ace": "Achinese", "ach": "Acoli", "ada": "Adangme", "ady": "Adyghe", "ae": "Avestan", "aeb": "Tunisian Arabic", "af": "Afrikaans", "afh": "Afrihili", "agq": "Aghem", "ain": "Ainu", "ak": "Akan", "akk": "Akkadian", "akz": "Alabama", "ale": "Aleut", "aln": "Gheg Albanian", "alt": "Southern Altai", "am": "Amharic", "an": "Aragonese", "ang": "Old English", "anp": "Angika", "ar": "Arabic", "ar-001": "Modern Standard Arabic", "arc": "Aramaic", "arn": "Mapuche", "aro": "Araona", "arp": "Arapaho", "arq": "Algerian Arabic", "ars": "Najdi Arabic", "arw": "Arawak", "ary": "Moroccan Arabic", "arz": "Egyptian Arabic", "as": "Assamese", "asa": "Asu", "ase": "American Sign Language", "ast": "Asturian", "av": "Avaric", "avk": "Kotava", "awa": "Awadhi", "ay": "Aymara", "az": "Azerbaijani", "ba": "Bashkir", "bal": "Baluchi", "ban": "Balinese", "bar": "Bavarian", "bas": "Basaa", "bax": "Bamun", "bbc": "Batak Toba", "bbj": "Ghomala", "be": "Belarusian", "bej": "Beja", "bem": "Bemba", "bew": "Betawi", "bez": "Bena", "bfd": "Bafut", "bfq": "Badaga", "bg": "Bulgarian", "bgn": "Western Balochi", "bho": "Bhojpuri", "bi": "Bislama", "bik": "Bikol", "bin": "Bini", "bjn": "Banjar", "bkm": "Kom", "bla": "Siksika", "bm": "Bambara", "bn": "Bangla", "bo": "Tibetan", "bpy": "Bishnupriya", "bqi": "Bakhtiari", "br": "Breton", "bra": "Braj", "brh": "Brahui", "brx": "Bodo", "bs": "Bosnian", "bss": "Akoose", "bua": "Buriat", "bug": "Buginese", "bum": "Bulu", "byn": "Blin", "byv": "Medumba", "ca": "Catalan", "cad": "Caddo", "car": "Carib", "cay": "Cayuga", "cch": "Atsam", "ccp": "Chakma", "ce": "Chechen", "ceb": "Cebuano", "cgg": "Chiga", "ch": "Chamorro", "chb": "Chibcha", "chg": "Chagatai", "chk": "Chuukese", "chm": "Mari", "chn": "Chinook Jargon", "cho": "Choctaw", "chp": "Chipewyan", "chr": "Cherokee", "chy": "Cheyenne", "ckb": "Central Kurdish", "co": "Corsican", "cop": "Coptic", "cps": "Capiznon", "cr": "Cree", "crh": "Crimean Turkish", "crs": "Seselwa Creole French", "cs": "Czech", "csb": "Kashubian", "cu": "Church Slavic", "cv": "Chuvash", "cy": "Welsh", "da": "Danish", "dak": "Dakota", "dar": "Dargwa", "dav": "Taita", "de": "German", "de-AT": "Austrian German", "de-CH": "Swiss High German", "del": "Delaware", "den": "Slave", "dgr": "Dogrib", "din": "Dinka", "dje": "Zarma", "doi": "Dogri", "dsb": "Lower Sorbian", "dtp": "Central Dusun", "dua": "Duala", "dum": "Middle Dutch", "dv": "Divehi", "dyo": "Jola-Fonyi", "dyu": "Dyula", "dz": "Dzongkha", "dzg": "Dazaga", "ebu": "Embu", "ee": "Ewe", "efi": "Efik", "egl": "Emilian", "egy": "Ancient Egyptian", "eka": "Ekajuk", "el": "Greek", "elx": "Elamite", "en": "English", "en-AU": "Australian English", "en-CA": "Canadian English", "en-GB": "British English", "en-US": "American English", "enm": "Middle English", "eo": "Esperanto", "es": "Spanish", "es-419": "Latin American Spanish", "es-ES": "European Spanish", "es-MX": "Mexican Spanish", "esu": "Central Yupik", "et": "Estonian", "eu": "Basque", "ewo": "Ewondo", "ext": "Extremaduran", "fa": "Persian", "fa-AF": "Dari", "fan": "Fang", "fat": "Fanti", "ff": "Fulah", "fi": "Finnish", "fil": "Filipino", "fit": "Tornedalen Finnish", "fj": "Fijian", "fo": "Faroese", "fon": "Fon", "fr": "French", "fr-CA": "Canadian French", "fr-CH": "Swiss French", "frc": "Cajun French", "frm": "Middle French", "fro": "Old French", "frp": "Arpitan", "frr": "Northern Frisian", "frs": "Eastern Frisian", "fur": "Friulian", "fy": "Western Frisian", "ga": "Irish", "gaa": "Ga", "gag": "Gagauz", "gan": "Gan Chinese", "gay": "Gayo", "gba": "Gbaya", "gbz": "Zoroastrian Dari", "gd": "Scottish Gaelic", "gez": "Geez", "gil": "Gilbertese", "gl": "Galician", "glk": "Gilaki", "gmh": "Middle High German", "gn": "Guarani", "goh": "Old High German", "gom": "Goan Konkani", "gon": "Gondi", "gor": "Gorontalo", "got": "Gothic", "grb": "Grebo", "grc": "Ancient Greek", "gsw": "Swiss German", "gu": "Gujarati", "guc": "Wayuu", "gur": "Frafra", "guz": "Gusii", "gv": "Manx", "gwi": "Gwichʼin", "ha": "Hausa", "hai": "Haida", "hak": "Hakka Chinese", "haw": "Hawaiian", "he": "Hebrew", "hi": "Hindi", "hif": "Fiji Hindi", "hil": "Hiligaynon", "hit": "Hittite", "hmn": "Hmong", "ho": "Hiri Motu", "hr": "Croatian", "hsb": "Upper Sorbian", "hsn": "Xiang Chinese", "ht": "Haitian Creole", "hu": "Hungarian", "hup": "Hupa", "hy": "Armenian", "hz": "Herero", "ia": "Interlingua", "iba": "Iban", "ibb": "Ibibio", "id": "Indonesian", "ie": "Interlingue", "ig": "Igbo", "ii": "Sichuan Yi", "ik": "Inupiaq", "ilo": "Iloko", "inh": "Ingush", "io": "Ido", "is": "Icelandic", "it": "Italian", "iu": "Inuktitut", "izh": "Ingrian", "ja": "Japanese", "jam": "Jamaican Creole English", "jbo": "Lojban", "jgo": "Ngomba", "jmc": "Machame", "jpr": "Judeo-Persian", "jrb": "Judeo-Arabic", "jut": "Jutish", "jv": "Javanese", "ka": "Georgian", "kaa": "Kara-Kalpak", "kab": "Kabyle", "kac": "Kachin", "kaj": "Jju", "kam": "Kamba", "kaw": "Kawi", "kbd": "Kabardian", "kbl": "Kanembu", "kcg": "Tyap", "kde": "Makonde", "kea": "Kabuverdianu", "ken": "Kenyang", "kfo": "Koro", "kg": "Kongo", "kgp": "Kaingang", "kha": "Khasi", "kho": "Khotanese", "khq": "Koyra Chiini", "khw": "Khowar", "ki": "Kikuyu", "kiu": "Kirmanjki", "kj": "Kuanyama", "kk": "Kazakh", "kkj": "Kako", "kl": "Kalaallisut", "kln": "Kalenjin", "km": "Khmer", "kmb": "Kimbundu", "kn": "Kannada", "ko": "Korean", "koi": "Komi-Permyak", "kok": "Konkani", "kos": "Kosraean", "kpe": "Kpelle", "kr": "Kanuri", "krc": "Karachay-Balkar", "kri": "Krio", "krj": "Kinaray-a", "krl": "Karelian", "kru": "Kurukh", "ks": "Kashmiri", "ksb": "Shambala", "ksf": "Bafia", "ksh": "Colognian", "ku": "Kurdish", "kum": "Kumyk", "kut": "Kutenai", "kv": "Komi", "kw": "Cornish", "ky": "Kyrgyz", "la": "Latin", "lad": "Ladino", "lag": "Langi", "lah": "Lahnda", "lam": "Lamba", "lb": "Luxembourgish", "lez": "Lezghian", "lfn": "Lingua Franca Nova", "lg": "Ganda", "li": "Limburgish", "lij": "Ligurian", "liv": "Livonian", "lkt": "Lakota", "lmo": "Lombard", "ln": "Lingala", "lo": "Lao", "lol": "Mongo", "lou": "Louisiana Creole", "loz": "Lozi", "lrc": "Northern Luri", "lt": "Lithuanian", "ltg": "Latgalian", "lu": "Luba-Katanga", "lua": "Luba-Lulua", "lui": "Luiseno", "lun": "Lunda", "luo": "Luo", "lus": "Mizo", "luy": "Luyia", "lv": "Latvian", "lzh": "Literary Chinese", "lzz": "Laz", "mad": "Madurese", "maf": "Mafa", "mag": "Magahi", "mai": "Maithili", "mak": "Makasar", "man": "Mandingo", "mas": "Masai", "mde": "Maba", "mdf": "Moksha", "mdr": "Mandar", "men": "Mende", "mer": "Meru", "mfe": "Morisyen", "mg": "Malagasy", "mga": "Middle Irish", "mgh": "Makhuwa-Meetto", "mgo": "Metaʼ", "mh": "Marshallese", "mi": "Maori", "mic": "Mi'kmaq", "min": "Minangkabau", "mk": "Macedonian", "ml": "Malayalam", "mn": "Mongolian", "mnc": "Manchu", "mni": "Manipuri", "moh": "Mohawk", "mos": "Mossi", "mr": "Marathi", "mrj": "Western Mari", "ms": "Malay", "mt": "Maltese", "mua": "Mundang", "mus": "Creek", "mwl": "Mirandese", "mwr": "Marwari", "mwv": "Mentawai", "my": "Burmese", "mye": "Myene", "myv": "Erzya", "mzn": "Mazanderani", "na": "Nauru", "nan": "Min Nan Chinese", "nap": "Neapolitan", "naq": "Nama", "nb": "Norwegian Bokmål", "nd": "North Ndebele", "nds": "Low German", "nds-NL": "Low Saxon", "ne": "Nepali", "new": "Newari", "ng": "Ndonga", "nia": "Nias", "niu": "Niuean", "njo": "Ao Naga", "nl": "Dutch", "nl-BE": "Flemish", "nmg": "Kwasio", "nn": "Norwegian Nynorsk", "nnh": "Ngiemboon", "no": "Norwegian", "nog": "Nogai", "non": "Old Norse", "nov": "Novial", "nqo": "N’Ko", "nr": "South Ndebele", "nso": "Northern Sotho", "nus": "Nuer", "nv": "Navajo", "nwc": "Classical Newari", "ny": "Nyanja", "nym": "Nyamwezi", "nyn": "Nyankole", "nyo": "Nyoro", "nzi": "Nzima", "oc": "Occitan", "oj": "Ojibwa", "om": "Oromo", "or": "Odia", "os": "Ossetic", "osa": "Osage", "ota": "Ottoman Turkish", "pa": "Punjabi", "pag": "Pangasinan", "pal": "Pahlavi", "pam": "Pampanga", "pap": "Papiamento", "pau": "Palauan", "pcd": "Picard", "pcm": "Nigerian Pidgin", "pdc": "Pennsylvania German", "pdt": "Plautdietsch", "peo": "Old Persian", "pfl": "Palatine German", "phn": "Phoenician", "pi": "Pali", "pl": "Polish", "pms": "Piedmontese", "pnt": "Pontic", "pon": "Pohnpeian", "prg": "Prussian", "pro": "Old Provençal", "ps": "Pashto", "pt": "Portuguese", "pt-BR": "Brazilian Portuguese", "pt-PT": "European Portuguese", "qu": "Quechua", "quc": "Kʼicheʼ", "qug": "Chimborazo Highland Quichua", "raj": "Rajasthani", "rap": "Rapanui", "rar": "Rarotongan", "rgn": "Romagnol", "rif": "Riffian", "rm": "Romansh", "rn": "Rundi", "ro": "Romanian", "ro-MD": "Moldavian", "rof": "Rombo", "rom": "Romany", "root": "Root", "rtm": "Rotuman", "ru": "Russian", "rue": "Rusyn", "rug": "Roviana", "rup": "Aromanian", "rw": "Kinyarwanda", "rwk": "Rwa", "sa": "Sanskrit", "sad": "Sandawe", "sah": "Sakha", "sam": "Samaritan Aramaic", "saq": "Samburu", "sas": "Sasak", "sat": "Santali", "saz": "Saurashtra", "sba": "Ngambay", "sbp": "Sangu", "sc": "Sardinian", "scn": "Sicilian", "sco": "Scots", "sd": "Sindhi", "sdc": "Sassarese Sardinian", "sdh": "Southern Kurdish", "se": "Northern Sami", "see": "Seneca", "seh": "Sena", "sei": "Seri", "sel": "Selkup", "ses": "Koyraboro Senni", "sg": "Sango", "sga": "Old Irish", "sgs": "Samogitian", "sh": "Serbo-Croatian", "shi": "Tachelhit", "shn": "Shan", "shu": "Chadian Arabic", "si": "Sinhala", "sid": "Sidamo", "sk": "Slovak", "sl": "Slovenian", "sli": "Lower Silesian", "sly": "Selayar", "sm": "Samoan", "sma": "Southern Sami", "smj": "Lule Sami", "smn": "Inari Sami", "sms": "Skolt Sami", "sn": "Shona", "snk": "Soninke", "so": "Somali", "sog": "Sogdien", "sq": "Albanian", "sr": "Serbian", "sr-ME": "Montenegrin", "srn": "Sranan Tongo", "srr": "Serer", "ss": "Swati", "ssy": "Saho", "st": "Southern Sotho", "stq": "Saterland Frisian", "su": "Sundanese", "suk": "Sukuma", "sus": "Susu", "sux": "Sumerian", "sv": "Swedish", "sw": "Swahili", "sw-CD": "Congo Swahili", "swb": "Comorian", "syc": "Classical Syriac", "syr": "Syriac", "szl": "Silesian", "ta": "Tamil", "tcy": "Tulu", "te": "Telugu", "tem": "Timne", "teo": "Teso", "ter": "Tereno", "tet": "Tetum", "tg": "Tajik", "th": "Thai", "ti": "Tigrinya", "tig": "Tigre", "tiv": "Tiv", "tk": "Turkmen", "tkl": "Tokelau", "tkr": "Tsakhur", "tl": "Tagalog", "tlh": "Klingon", "tli": "Tlingit", "tly": "Talysh", "tmh": "Tamashek", "tn": "Tswana", "to": "Tongan", "tog": "Nyasa Tonga", "tpi": "Tok Pisin", "tr": "Turkish", "tru": "Turoyo", "trv": "Taroko", "ts": "Tsonga", "tsd": "Tsakonian", "tsi": "Tsimshian", "tt": "Tatar", "ttt": "Muslim Tat", "tum": "Tumbuka", "tvl": "Tuvalu", "tw": "Twi", "twq": "Tasawaq", "ty": "Tahitian", "tyv": "Tuvinian", "tzm": "Central Atlas Tamazight", "udm": "Udmurt", "ug": "Uyghur", "uga": "Ugaritic", "uk": "Ukrainian", "umb": "Umbundu", "ur": "Urdu", "uz": "Uzbek", "vai": "Vai", "ve": "Venda", "vec": "Venetian", "vep": "Veps", "vi": "Vietnamese", "vls": "West Flemish", "vmf": "Main-Franconian", "vo": "Volapük", "vot": "Votic", "vro": "Võro", "vun": "Vunjo", "wa": "Walloon", "wae": "Walser", "wal": "Wolaytta", "war": "Waray", "was": "Washo", "wbp": "Warlpiri", "wo": "Wolof", "wuu": "Wu Chinese", "xal": "Kalmyk", "xh": "Xhosa", "xmf": "Mingrelian", "xog": "Soga", "yao": "Yao", "yap": "Yapese", "yav": "Yangben", "ybb": "Yemba", "yi": "Yiddish", "yo": "Yoruba", "yrl": "Nheengatu", "yue": "Cantonese", "za": "Zhuang", "zap": "Zapotec", "zbl": "Blissymbols", "zea": "Zeelandic", "zen": "Zenaga", "zgh": "Standard Moroccan Tamazight", "zh": "Mandarin Chinese", "zh-Hans": "Simplified Chinese", "zh-Hant": "Traditional Chinese", "zu": "Zulu", "zun": "Zuni", "zza": "Zaza"}, "scriptNames": {"Cyrl": "Cyrillic", "Latn": "Latin", "Arab": "Arabic", "Guru": "Gurmukhi", "Tfng": "Tifinagh", "Vaii": "Vai", "Hans": "Simplified", "Hant": "Traditional"}}, + "en-AU": {"rtl": false, "languageNames": {"aa": "Afar", "ab": "Abkhazian", "ace": "Achinese", "ach": "Acoli", "ada": "Adangme", "ady": "Adyghe", "ae": "Avestan", "aeb": "Tunisian Arabic", "af": "Afrikaans", "afh": "Afrihili", "agq": "Aghem", "ain": "Ainu", "ak": "Akan", "akk": "Akkadian", "akz": "Alabama", "ale": "Aleut", "aln": "Gheg Albanian", "alt": "Southern Altai", "am": "Amharic", "an": "Aragonese", "ang": "Old English", "anp": "Angika", "ar": "Arabic", "ar-001": "Modern Standard Arabic", "arc": "Aramaic", "arn": "Mapuche", "aro": "Araona", "arp": "Arapaho", "arq": "Algerian Arabic", "ars": "Najdi Arabic", "arw": "Arawak", "ary": "Moroccan Arabic", "arz": "Egyptian Arabic", "as": "Assamese", "asa": "Asu", "ase": "American Sign Language", "ast": "Asturian", "av": "Avaric", "avk": "Kotava", "awa": "Awadhi", "ay": "Aymara", "az": "Azerbaijani", "ba": "Bashkir", "bal": "Baluchi", "ban": "Balinese", "bar": "Bavarian", "bas": "Basaa", "bax": "Bamun", "bbc": "Batak Toba", "bbj": "Ghomala", "be": "Belarusian", "bej": "Beja", "bem": "Bemba", "bew": "Betawi", "bez": "Bena", "bfd": "Bafut", "bfq": "Badaga", "bg": "Bulgarian", "bgn": "Western Balochi", "bho": "Bhojpuri", "bi": "Bislama", "bik": "Bikol", "bin": "Bini", "bjn": "Banjar", "bkm": "Kom", "bla": "Siksika", "bm": "Bambara", "bn": "Bengali", "bo": "Tibetan", "bpy": "Bishnupriya", "bqi": "Bakhtiari", "br": "Breton", "bra": "Braj", "brh": "Brahui", "brx": "Bodo", "bs": "Bosnian", "bss": "Akoose", "bua": "Buriat", "bug": "Buginese", "bum": "Bulu", "byn": "Blin", "byv": "Medumba", "ca": "Catalan", "cad": "Caddo", "car": "Carib", "cay": "Cayuga", "cch": "Atsam", "ccp": "Chakma", "ce": "Chechen", "ceb": "Cebuano", "cgg": "Chiga", "ch": "Chamorro", "chb": "Chibcha", "chg": "Chagatai", "chk": "Chuukese", "chm": "Mari", "chn": "Chinook Jargon", "cho": "Choctaw", "chp": "Chipewyan", "chr": "Cherokee", "chy": "Cheyenne", "ckb": "Central Kurdish", "co": "Corsican", "cop": "Coptic", "cps": "Capiznon", "cr": "Cree", "crh": "Crimean Turkish", "crs": "Seselwa Creole French", "cs": "Czech", "csb": "Kashubian", "cu": "Church Slavic", "cv": "Chuvash", "cy": "Welsh", "da": "Danish", "dak": "Dakota", "dar": "Dargwa", "dav": "Taita", "de": "German", "de-AT": "Austrian German", "de-CH": "Swiss High German", "del": "Delaware", "den": "Slave", "dgr": "Dogrib", "din": "Dinka", "dje": "Zarma", "doi": "Dogri", "dsb": "Lower Sorbian", "dtp": "Central Dusun", "dua": "Duala", "dum": "Middle Dutch", "dv": "Divehi", "dyo": "Jola-Fonyi", "dyu": "Dyula", "dz": "Dzongkha", "dzg": "Dazaga", "ebu": "Embu", "ee": "Ewe", "efi": "Efik", "egl": "Emilian", "egy": "Ancient Egyptian", "eka": "Ekajuk", "el": "Greek", "elx": "Elamite", "en": "English", "en-AU": "Australian English", "en-CA": "Canadian English", "en-GB": "British English", "en-US": "United States English", "enm": "Middle English", "eo": "Esperanto", "es": "Spanish", "es-419": "Latin American Spanish", "es-ES": "European Spanish", "es-MX": "Mexican Spanish", "esu": "Central Yupik", "et": "Estonian", "eu": "Basque", "ewo": "Ewondo", "ext": "Extremaduran", "fa": "Persian", "fa-AF": "Dari", "fan": "Fang", "fat": "Fanti", "ff": "Fulah", "fi": "Finnish", "fil": "Filipino", "fit": "Tornedalen Finnish", "fj": "Fijian", "fo": "Faroese", "fon": "Fon", "fr": "French", "fr-CA": "Canadian French", "fr-CH": "Swiss French", "frm": "Middle French", "fro": "Old French", "frp": "Arpitan", "frr": "Northern Frisian", "frs": "Eastern Frisian", "fur": "Friulian", "fy": "Western Frisian", "ga": "Irish", "gaa": "Ga", "gag": "Gagauz", "gan": "Gan Chinese", "gay": "Gayo", "gba": "Gbaya", "gbz": "Zoroastrian Dari", "gd": "Scottish Gaelic", "gez": "Geez", "gil": "Gilbertese", "gl": "Galician", "glk": "Gilaki", "gmh": "Middle High German", "gn": "Guarani", "goh": "Old High German", "gom": "Goan Konkani", "gon": "Gondi", "gor": "Gorontalo", "got": "Gothic", "grb": "Grebo", "grc": "Ancient Greek", "gsw": "Swiss German", "gu": "Gujarati", "guc": "Wayuu", "gur": "Frafra", "guz": "Gusii", "gv": "Manx", "gwi": "Gwichʼin", "ha": "Hausa", "hai": "Haida", "hak": "Hakka Chinese", "haw": "Hawaiian", "he": "Hebrew", "hi": "Hindi", "hif": "Fiji Hindi", "hil": "Hiligaynon", "hit": "Hittite", "hmn": "Hmong", "ho": "Hiri Motu", "hr": "Croatian", "hsb": "Upper Sorbian", "hsn": "Xiang Chinese", "ht": "Haitian Creole", "hu": "Hungarian", "hup": "Hupa", "hy": "Armenian", "hz": "Herero", "ia": "Interlingua", "iba": "Iban", "ibb": "Ibibio", "id": "Indonesian", "ie": "Interlingue", "ig": "Igbo", "ii": "Sichuan Yi", "ik": "Inupiaq", "ilo": "Iloko", "inh": "Ingush", "io": "Ido", "is": "Icelandic", "it": "Italian", "iu": "Inuktitut", "izh": "Ingrian", "ja": "Japanese", "jam": "Jamaican Creole English", "jbo": "Lojban", "jgo": "Ngomba", "jmc": "Machame", "jpr": "Judeo-Persian", "jrb": "Judeo-Arabic", "jut": "Jutish", "jv": "Javanese", "ka": "Georgian", "kaa": "Kara-Kalpak", "kab": "Kabyle", "kac": "Kachin", "kaj": "Jju", "kam": "Kamba", "kaw": "Kawi", "kbd": "Kabardian", "kbl": "Kanembu", "kcg": "Tyap", "kde": "Makonde", "kea": "Kabuverdianu", "ken": "Kenyang", "kfo": "Koro", "kg": "Kongo", "kgp": "Kaingang", "kha": "Khasi", "kho": "Khotanese", "khq": "Koyra Chiini", "khw": "Khowar", "ki": "Kikuyu", "kiu": "Kirmanjki", "kj": "Kuanyama", "kk": "Kazakh", "kkj": "Kako", "kl": "Kalaallisut", "kln": "Kalenjin", "km": "Khmer", "kmb": "Kimbundu", "kn": "Kannada", "ko": "Korean", "koi": "Komi-Permyak", "kok": "Konkani", "kos": "Kosraean", "kpe": "Kpelle", "kr": "Kanuri", "krc": "Karachay-Balkar", "kri": "Krio", "krj": "Kinaray-a", "krl": "Karelian", "kru": "Kurukh", "ks": "Kashmiri", "ksb": "Shambala", "ksf": "Bafia", "ksh": "Colognian", "ku": "Kurdish", "kum": "Kumyk", "kut": "Kutenai", "kv": "Komi", "kw": "Cornish", "ky": "Kyrgyz", "la": "Latin", "lad": "Ladino", "lag": "Langi", "lah": "Lahnda", "lam": "Lamba", "lb": "Luxembourgish", "lez": "Lezghian", "lfn": "Lingua Franca Nova", "lg": "Ganda", "li": "Limburgish", "lij": "Ligurian", "liv": "Livonian", "lkt": "Lakota", "lmo": "Lombard", "ln": "Lingala", "lo": "Lao", "lol": "Mongo", "loz": "Lozi", "lrc": "Northern Luri", "lt": "Lithuanian", "ltg": "Latgalian", "lu": "Luba-Katanga", "lua": "Luba-Lulua", "lui": "Luiseno", "lun": "Lunda", "luo": "Luo", "lus": "Mizo", "luy": "Luyia", "lv": "Latvian", "lzh": "Literary Chinese", "lzz": "Laz", "mad": "Madurese", "maf": "Mafa", "mag": "Magahi", "mai": "Maithili", "mak": "Makasar", "man": "Mandingo", "mas": "Masai", "mde": "Maba", "mdf": "Moksha", "mdr": "Mandar", "men": "Mende", "mer": "Meru", "mfe": "Morisyen", "mg": "Malagasy", "mga": "Middle Irish", "mgh": "Makhuwa-Meetto", "mgo": "Metaʼ", "mh": "Marshallese", "mi": "Maori", "mic": "Mi'kmaq", "min": "Minangkabau", "mk": "Macedonian", "ml": "Malayalam", "mn": "Mongolian", "mnc": "Manchu", "mni": "Manipuri", "moh": "Mohawk", "mos": "Mossi", "mr": "Marathi", "mrj": "Western Mari", "ms": "Malay", "mt": "Maltese", "mua": "Mundang", "mus": "Creek", "mwl": "Mirandese", "mwr": "Marwari", "mwv": "Mentawai", "my": "Burmese", "mye": "Myene", "myv": "Erzya", "mzn": "Mazanderani", "na": "Nauru", "nan": "Min Nan Chinese", "nap": "Neapolitan", "naq": "Nama", "nb": "Norwegian Bokmål", "nd": "North Ndebele", "nds": "Low German", "nds-NL": "Low Saxon", "ne": "Nepali", "new": "Newari", "ng": "Ndonga", "nia": "Nias", "niu": "Niuean", "njo": "Ao Naga", "nl": "Dutch", "nl-BE": "Flemish", "nmg": "Kwasio", "nn": "Norwegian Nynorsk", "nnh": "Ngiemboon", "no": "Norwegian", "nog": "Nogai", "non": "Old Norse", "nov": "Novial", "nqo": "N’Ko", "nr": "South Ndebele", "nso": "Northern Sotho", "nus": "Nuer", "nv": "Navajo", "nwc": "Classical Newari", "ny": "Nyanja", "nym": "Nyamwezi", "nyn": "Nyankole", "nyo": "Nyoro", "nzi": "Nzima", "oc": "Occitan", "oj": "Ojibwa", "om": "Oromo", "or": "Odia", "os": "Ossetic", "osa": "Osage", "ota": "Ottoman Turkish", "pa": "Punjabi", "pag": "Pangasinan", "pal": "Pahlavi", "pam": "Pampanga", "pap": "Papiamento", "pau": "Palauan", "pcd": "Picard", "pcm": "Nigerian Pidgin", "pdc": "Pennsylvania German", "pdt": "Plautdietsch", "peo": "Old Persian", "pfl": "Palatine German", "phn": "Phoenician", "pi": "Pali", "pl": "Polish", "pms": "Piedmontese", "pnt": "Pontic", "pon": "Pohnpeian", "prg": "Prussian", "pro": "Old Provençal", "ps": "Pashto", "pt": "Portuguese", "pt-BR": "Brazilian Portuguese", "pt-PT": "European Portuguese", "qu": "Quechua", "quc": "Kʼicheʼ", "qug": "Chimborazo Highland Quichua", "raj": "Rajasthani", "rap": "Rapanui", "rar": "Rarotongan", "rgn": "Romagnol", "rif": "Riffian", "rm": "Romansh", "rn": "Rundi", "ro": "Romanian", "ro-MD": "Moldovan", "rof": "Rombo", "rom": "Romany", "root": "Root", "rtm": "Rotuman", "ru": "Russian", "rue": "Rusyn", "rug": "Roviana", "rup": "Aromanian", "rw": "Kinyarwanda", "rwk": "Rwa", "sa": "Sanskrit", "sad": "Sandawe", "sah": "Sakha", "sam": "Samaritan Aramaic", "saq": "Samburu", "sas": "Sasak", "sat": "Santali", "saz": "Saurashtra", "sba": "Ngambay", "sbp": "Sangu", "sc": "Sardinian", "scn": "Sicilian", "sco": "Scots", "sd": "Sindhi", "sdc": "Sassarese Sardinian", "sdh": "Southern Kurdish", "se": "Northern Sami", "see": "Seneca", "seh": "Sena", "sei": "Seri", "sel": "Selkup", "ses": "Koyraboro Senni", "sg": "Sango", "sga": "Old Irish", "sgs": "Samogitian", "sh": "Serbo-Croatian", "shi": "Tachelhit", "shn": "Shan", "shu": "Chadian Arabic", "si": "Sinhala", "sid": "Sidamo", "sk": "Slovak", "sl": "Slovenian", "sli": "Lower Silesian", "sly": "Selayar", "sm": "Samoan", "sma": "Southern Sami", "smj": "Lule Sami", "smn": "Inari Sami", "sms": "Skolt Sami", "sn": "Shona", "snk": "Soninke", "so": "Somali", "sog": "Sogdien", "sq": "Albanian", "sr": "Serbian", "sr-ME": "Montenegrin", "srn": "Sranan Tongo", "srr": "Serer", "ss": "Swati", "ssy": "Saho", "st": "Southern Sotho", "stq": "Saterland Frisian", "su": "Sundanese", "suk": "Sukuma", "sus": "Susu", "sux": "Sumerian", "sv": "Swedish", "sw": "Swahili", "sw-CD": "Congo Swahili", "swb": "Comorian", "syc": "Classical Syriac", "syr": "Syriac", "szl": "Silesian", "ta": "Tamil", "tcy": "Tulu", "te": "Telugu", "tem": "Timne", "teo": "Teso", "ter": "Tereno", "tet": "Tetum", "tg": "Tajik", "th": "Thai", "ti": "Tigrinya", "tig": "Tigre", "tiv": "Tiv", "tk": "Turkmen", "tkl": "Tokelau", "tkr": "Tsakhur", "tl": "Tagalog", "tlh": "Klingon", "tli": "Tlingit", "tly": "Talysh", "tmh": "Tamashek", "tn": "Tswana", "to": "Tongan", "tog": "Nyasa Tonga", "tpi": "Tok Pisin", "tr": "Turkish", "tru": "Turoyo", "trv": "Taroko", "ts": "Tsonga", "tsd": "Tsakonian", "tsi": "Tsimshian", "tt": "Tatar", "ttt": "Muslim Tat", "tum": "Tumbuka", "tvl": "Tuvalu", "tw": "Twi", "twq": "Tasawaq", "ty": "Tahitian", "tyv": "Tuvinian", "tzm": "Central Atlas Tamazight", "udm": "Udmurt", "ug": "Uyghur", "uga": "Ugaritic", "uk": "Ukrainian", "umb": "Umbundu", "ur": "Urdu", "uz": "Uzbek", "vai": "Vai", "ve": "Venda", "vec": "Venetian", "vep": "Veps", "vi": "Vietnamese", "vls": "West Flemish", "vmf": "Main-Franconian", "vo": "Volapük", "vot": "Votic", "vro": "Võro", "vun": "Vunjo", "wa": "Walloon", "wae": "Walser", "wal": "Wolaytta", "war": "Waray", "was": "Washo", "wbp": "Warlpiri", "wo": "Wolof", "wuu": "Wu Chinese", "xal": "Kalmyk", "xh": "Xhosa", "xmf": "Mingrelian", "xog": "Soga", "yao": "Yao", "yap": "Yapese", "yav": "Yangben", "ybb": "Yemba", "yi": "Yiddish", "yo": "Yoruba", "yrl": "Nheengatu", "yue": "Cantonese", "za": "Zhuang", "zap": "Zapotec", "zbl": "Blissymbols", "zea": "Zeelandic", "zen": "Zenaga", "zgh": "Standard Moroccan Tamazight", "zh": "Mandarin Chinese", "zh-Hans": "Simplified Chinese", "zh-Hant": "Traditional Chinese", "zu": "Zulu", "zun": "Zuni", "zza": "Zaza"}, "scriptNames": {"Cyrl": "Cyrillic", "Latn": "Latin", "Arab": "Arabic", "Guru": "Gurmukhi", "Tfng": "Tifinagh", "Vaii": "Vai", "Hans": "Simplified", "Hant": "Traditional"}}, + "en-GB": {"rtl": false, "languageNames": {"aa": "Afar", "ab": "Abkhazian", "ace": "Achinese", "ach": "Acoli", "ada": "Adangme", "ady": "Adyghe", "ae": "Avestan", "aeb": "Tunisian Arabic", "af": "Afrikaans", "afh": "Afrihili", "agq": "Aghem", "ain": "Ainu", "ak": "Akan", "akk": "Akkadian", "akz": "Alabama", "ale": "Aleut", "aln": "Gheg Albanian", "alt": "Southern Altai", "am": "Amharic", "an": "Aragonese", "ang": "Old English", "anp": "Angika", "ar": "Arabic", "ar-001": "Modern Standard Arabic", "arc": "Aramaic", "arn": "Mapuche", "aro": "Araona", "arp": "Arapaho", "arq": "Algerian Arabic", "ars": "Najdi Arabic", "arw": "Arawak", "ary": "Moroccan Arabic", "arz": "Egyptian Arabic", "as": "Assamese", "asa": "Asu", "ase": "American Sign Language", "ast": "Asturian", "av": "Avaric", "avk": "Kotava", "awa": "Awadhi", "ay": "Aymara", "az": "Azerbaijani", "ba": "Bashkir", "bal": "Baluchi", "ban": "Balinese", "bar": "Bavarian", "bas": "Basaa", "bax": "Bamun", "bbc": "Batak Toba", "bbj": "Ghomala", "be": "Belarusian", "bej": "Beja", "bem": "Bemba", "bew": "Betawi", "bez": "Bena", "bfd": "Bafut", "bfq": "Badaga", "bg": "Bulgarian", "bgn": "Western Balochi", "bho": "Bhojpuri", "bi": "Bislama", "bik": "Bikol", "bin": "Bini", "bjn": "Banjar", "bkm": "Kom", "bla": "Siksika", "bm": "Bambara", "bn": "Bangla", "bo": "Tibetan", "bpy": "Bishnupriya", "bqi": "Bakhtiari", "br": "Breton", "bra": "Braj", "brh": "Brahui", "brx": "Bodo", "bs": "Bosnian", "bss": "Akoose", "bua": "Buriat", "bug": "Buginese", "bum": "Bulu", "byn": "Blin", "byv": "Medumba", "ca": "Catalan", "cad": "Caddo", "car": "Carib", "cay": "Cayuga", "cch": "Atsam", "ccp": "Chakma", "ce": "Chechen", "ceb": "Cebuano", "cgg": "Chiga", "ch": "Chamorro", "chb": "Chibcha", "chg": "Chagatai", "chk": "Chuukese", "chm": "Mari", "chn": "Chinook Jargon", "cho": "Choctaw", "chp": "Chipewyan", "chr": "Cherokee", "chy": "Cheyenne", "ckb": "Central Kurdish", "co": "Corsican", "cop": "Coptic", "cps": "Capiznon", "cr": "Cree", "crh": "Crimean Turkish", "crs": "Seselwa Creole French", "cs": "Czech", "csb": "Kashubian", "cu": "Church Slavic", "cv": "Chuvash", "cy": "Welsh", "da": "Danish", "dak": "Dakota", "dar": "Dargwa", "dav": "Taita", "de": "German", "de-AT": "Austrian German", "de-CH": "Swiss High German", "del": "Delaware", "den": "Slave", "dgr": "Dogrib", "din": "Dinka", "dje": "Zarma", "doi": "Dogri", "dsb": "Lower Sorbian", "dtp": "Central Dusun", "dua": "Duala", "dum": "Middle Dutch", "dv": "Divehi", "dyo": "Jola-Fonyi", "dyu": "Dyula", "dz": "Dzongkha", "dzg": "Dazaga", "ebu": "Embu", "ee": "Ewe", "efi": "Efik", "egl": "Emilian", "egy": "Ancient Egyptian", "eka": "Ekajuk", "el": "Greek", "elx": "Elamite", "en": "English", "en-AU": "Australian English", "en-CA": "Canadian English", "en-GB": "British English", "en-US": "American English", "enm": "Middle English", "eo": "Esperanto", "es": "Spanish", "es-419": "Latin American Spanish", "es-ES": "European Spanish", "es-MX": "Mexican Spanish", "esu": "Central Yupik", "et": "Estonian", "eu": "Basque", "ewo": "Ewondo", "ext": "Extremaduran", "fa": "Persian", "fa-AF": "Dari", "fan": "Fang", "fat": "Fanti", "ff": "Fulah", "fi": "Finnish", "fil": "Filipino", "fit": "Tornedalen Finnish", "fj": "Fijian", "fo": "Faroese", "fon": "Fon", "fr": "French", "fr-CA": "Canadian French", "fr-CH": "Swiss French", "frc": "Cajun French", "frm": "Middle French", "fro": "Old French", "frp": "Arpitan", "frr": "Northern Frisian", "frs": "Eastern Frisian", "fur": "Friulian", "fy": "Western Frisian", "ga": "Irish", "gaa": "Ga", "gag": "Gagauz", "gan": "Gan Chinese", "gay": "Gayo", "gba": "Gbaya", "gbz": "Zoroastrian Dari", "gd": "Scottish Gaelic", "gez": "Geez", "gil": "Gilbertese", "gl": "Galician", "glk": "Gilaki", "gmh": "Middle High German", "gn": "Guarani", "goh": "Old High German", "gom": "Goan Konkani", "gon": "Gondi", "gor": "Gorontalo", "got": "Gothic", "grb": "Grebo", "grc": "Ancient Greek", "gsw": "Swiss German", "gu": "Gujarati", "guc": "Wayuu", "gur": "Frafra", "guz": "Gusii", "gv": "Manx", "gwi": "Gwichʼin", "ha": "Hausa", "hai": "Haida", "hak": "Hakka Chinese", "haw": "Hawaiian", "he": "Hebrew", "hi": "Hindi", "hif": "Fiji Hindi", "hil": "Hiligaynon", "hit": "Hittite", "hmn": "Hmong", "ho": "Hiri Motu", "hr": "Croatian", "hsb": "Upper Sorbian", "hsn": "Xiang Chinese", "ht": "Haitian Creole", "hu": "Hungarian", "hup": "Hupa", "hy": "Armenian", "hz": "Herero", "ia": "Interlingua", "iba": "Iban", "ibb": "Ibibio", "id": "Indonesian", "ie": "Interlingue", "ig": "Igbo", "ii": "Sichuan Yi", "ik": "Inupiaq", "ilo": "Iloko", "inh": "Ingush", "io": "Ido", "is": "Icelandic", "it": "Italian", "iu": "Inuktitut", "izh": "Ingrian", "ja": "Japanese", "jam": "Jamaican Creole English", "jbo": "Lojban", "jgo": "Ngomba", "jmc": "Machame", "jpr": "Judeo-Persian", "jrb": "Judeo-Arabic", "jut": "Jutish", "jv": "Javanese", "ka": "Georgian", "kaa": "Kara-Kalpak", "kab": "Kabyle", "kac": "Kachin", "kaj": "Jju", "kam": "Kamba", "kaw": "Kawi", "kbd": "Kabardian", "kbl": "Kanembu", "kcg": "Tyap", "kde": "Makonde", "kea": "Kabuverdianu", "ken": "Kenyang", "kfo": "Koro", "kg": "Kongo", "kgp": "Kaingang", "kha": "Khasi", "kho": "Khotanese", "khq": "Koyra Chiini", "khw": "Khowar", "ki": "Kikuyu", "kiu": "Kirmanjki", "kj": "Kuanyama", "kk": "Kazakh", "kkj": "Kako", "kl": "Kalaallisut", "kln": "Kalenjin", "km": "Khmer", "kmb": "Kimbundu", "kn": "Kannada", "ko": "Korean", "koi": "Komi-Permyak", "kok": "Konkani", "kos": "Kosraean", "kpe": "Kpelle", "kr": "Kanuri", "krc": "Karachay-Balkar", "kri": "Krio", "krj": "Kinaray-a", "krl": "Karelian", "kru": "Kurukh", "ks": "Kashmiri", "ksb": "Shambala", "ksf": "Bafia", "ksh": "Colognian", "ku": "Kurdish", "kum": "Kumyk", "kut": "Kutenai", "kv": "Komi", "kw": "Cornish", "ky": "Kyrgyz", "la": "Latin", "lad": "Ladino", "lag": "Langi", "lah": "Lahnda", "lam": "Lamba", "lb": "Luxembourgish", "lez": "Lezghian", "lfn": "Lingua Franca Nova", "lg": "Ganda", "li": "Limburgish", "lij": "Ligurian", "liv": "Livonian", "lkt": "Lakota", "lmo": "Lombard", "ln": "Lingala", "lo": "Lao", "lol": "Mongo", "lou": "Louisiana Creole", "loz": "Lozi", "lrc": "Northern Luri", "lt": "Lithuanian", "ltg": "Latgalian", "lu": "Luba-Katanga", "lua": "Luba-Lulua", "lui": "Luiseno", "lun": "Lunda", "luo": "Luo", "lus": "Mizo", "luy": "Luyia", "lv": "Latvian", "lzh": "Literary Chinese", "lzz": "Laz", "mad": "Madurese", "maf": "Mafa", "mag": "Magahi", "mai": "Maithili", "mak": "Makasar", "man": "Mandingo", "mas": "Masai", "mde": "Maba", "mdf": "Moksha", "mdr": "Mandar", "men": "Mende", "mer": "Meru", "mfe": "Morisyen", "mg": "Malagasy", "mga": "Middle Irish", "mgh": "Makhuwa-Meetto", "mgo": "Metaʼ", "mh": "Marshallese", "mi": "Maori", "mic": "Mi'kmaq", "min": "Minangkabau", "mk": "Macedonian", "ml": "Malayalam", "mn": "Mongolian", "mnc": "Manchu", "mni": "Manipuri", "moh": "Mohawk", "mos": "Mossi", "mr": "Marathi", "mrj": "Western Mari", "ms": "Malay", "mt": "Maltese", "mua": "Mundang", "mus": "Creek", "mwl": "Mirandese", "mwr": "Marwari", "mwv": "Mentawai", "my": "Burmese", "mye": "Myene", "myv": "Erzya", "mzn": "Mazanderani", "na": "Nauru", "nan": "Min Nan Chinese", "nap": "Neapolitan", "naq": "Nama", "nb": "Norwegian Bokmål", "nd": "North Ndebele", "nds": "Low German", "nds-NL": "West Low German", "ne": "Nepali", "new": "Newari", "ng": "Ndonga", "nia": "Nias", "niu": "Niuean", "njo": "Ao Naga", "nl": "Dutch", "nl-BE": "Flemish", "nmg": "Kwasio", "nn": "Norwegian Nynorsk", "nnh": "Ngiemboon", "no": "Norwegian", "nog": "Nogai", "non": "Old Norse", "nov": "Novial", "nqo": "N’Ko", "nr": "South Ndebele", "nso": "Northern Sotho", "nus": "Nuer", "nv": "Navajo", "nwc": "Classical Newari", "ny": "Nyanja", "nym": "Nyamwezi", "nyn": "Nyankole", "nyo": "Nyoro", "nzi": "Nzima", "oc": "Occitan", "oj": "Ojibwa", "om": "Oromo", "or": "Odia", "os": "Ossetic", "osa": "Osage", "ota": "Ottoman Turkish", "pa": "Punjabi", "pag": "Pangasinan", "pal": "Pahlavi", "pam": "Pampanga", "pap": "Papiamento", "pau": "Palauan", "pcd": "Picard", "pcm": "Nigerian Pidgin", "pdc": "Pennsylvania German", "pdt": "Plautdietsch", "peo": "Old Persian", "pfl": "Palatine German", "phn": "Phoenician", "pi": "Pali", "pl": "Polish", "pms": "Piedmontese", "pnt": "Pontic", "pon": "Pohnpeian", "prg": "Prussian", "pro": "Old Provençal", "ps": "Pashto", "pt": "Portuguese", "pt-BR": "Brazilian Portuguese", "pt-PT": "European Portuguese", "qu": "Quechua", "quc": "Kʼicheʼ", "qug": "Chimborazo Highland Quichua", "raj": "Rajasthani", "rap": "Rapanui", "rar": "Rarotongan", "rgn": "Romagnol", "rif": "Riffian", "rm": "Romansh", "rn": "Rundi", "ro": "Romanian", "ro-MD": "Moldavian", "rof": "Rombo", "rom": "Romany", "root": "Root", "rtm": "Rotuman", "ru": "Russian", "rue": "Rusyn", "rug": "Roviana", "rup": "Aromanian", "rw": "Kinyarwanda", "rwk": "Rwa", "sa": "Sanskrit", "sad": "Sandawe", "sah": "Sakha", "sam": "Samaritan Aramaic", "saq": "Samburu", "sas": "Sasak", "sat": "Santali", "saz": "Saurashtra", "sba": "Ngambay", "sbp": "Sangu", "sc": "Sardinian", "scn": "Sicilian", "sco": "Scots", "sd": "Sindhi", "sdc": "Sassarese Sardinian", "sdh": "Southern Kurdish", "se": "Northern Sami", "see": "Seneca", "seh": "Sena", "sei": "Seri", "sel": "Selkup", "ses": "Koyraboro Senni", "sg": "Sango", "sga": "Old Irish", "sgs": "Samogitian", "sh": "Serbo-Croatian", "shi": "Tachelhit", "shn": "Shan", "shu": "Chadian Arabic", "si": "Sinhala", "sid": "Sidamo", "sk": "Slovak", "sl": "Slovenian", "sli": "Lower Silesian", "sly": "Selayar", "sm": "Samoan", "sma": "Southern Sami", "smj": "Lule Sami", "smn": "Inari Sami", "sms": "Skolt Sami", "sn": "Shona", "snk": "Soninke", "so": "Somali", "sog": "Sogdien", "sq": "Albanian", "sr": "Serbian", "sr-ME": "Montenegrin", "srn": "Sranan Tongo", "srr": "Serer", "ss": "Swati", "ssy": "Saho", "st": "Southern Sotho", "stq": "Saterland Frisian", "su": "Sundanese", "suk": "Sukuma", "sus": "Susu", "sux": "Sumerian", "sv": "Swedish", "sw": "Swahili", "sw-CD": "Congo Swahili", "swb": "Comorian", "syc": "Classical Syriac", "syr": "Syriac", "szl": "Silesian", "ta": "Tamil", "tcy": "Tulu", "te": "Telugu", "tem": "Timne", "teo": "Teso", "ter": "Tereno", "tet": "Tetum", "tg": "Tajik", "th": "Thai", "ti": "Tigrinya", "tig": "Tigre", "tiv": "Tiv", "tk": "Turkmen", "tkl": "Tokelau", "tkr": "Tsakhur", "tl": "Tagalog", "tlh": "Klingon", "tli": "Tlingit", "tly": "Talysh", "tmh": "Tamashek", "tn": "Tswana", "to": "Tongan", "tog": "Nyasa Tonga", "tpi": "Tok Pisin", "tr": "Turkish", "tru": "Turoyo", "trv": "Taroko", "ts": "Tsonga", "tsd": "Tsakonian", "tsi": "Tsimshian", "tt": "Tatar", "ttt": "Muslim Tat", "tum": "Tumbuka", "tvl": "Tuvalu", "tw": "Twi", "twq": "Tasawaq", "ty": "Tahitian", "tyv": "Tuvinian", "tzm": "Central Atlas Tamazight", "udm": "Udmurt", "ug": "Uyghur", "uga": "Ugaritic", "uk": "Ukrainian", "umb": "Umbundu", "ur": "Urdu", "uz": "Uzbek", "vai": "Vai", "ve": "Venda", "vec": "Venetian", "vep": "Veps", "vi": "Vietnamese", "vls": "West Flemish", "vmf": "Main-Franconian", "vo": "Volapük", "vot": "Votic", "vro": "Võro", "vun": "Vunjo", "wa": "Walloon", "wae": "Walser", "wal": "Wolaytta", "war": "Waray", "was": "Washo", "wbp": "Warlpiri", "wo": "Wolof", "wuu": "Wu Chinese", "xal": "Kalmyk", "xh": "Xhosa", "xmf": "Mingrelian", "xog": "Soga", "yao": "Yao", "yap": "Yapese", "yav": "Yangben", "ybb": "Yemba", "yi": "Yiddish", "yo": "Yoruba", "yrl": "Nheengatu", "yue": "Cantonese", "za": "Zhuang", "zap": "Zapotec", "zbl": "Blissymbols", "zea": "Zeelandic", "zen": "Zenaga", "zgh": "Standard Moroccan Tamazight", "zh": "Mandarin Chinese", "zh-Hans": "Simplified Chinese", "zh-Hant": "Traditional Chinese", "zu": "Zulu", "zun": "Zuni", "zza": "Zaza"}, "scriptNames": {"Cyrl": "Cyrillic", "Latn": "Latin", "Arab": "Arabic", "Guru": "Gurmukhi", "Tfng": "Tifinagh", "Vaii": "Vai", "Hans": "Simplified", "Hant": "Traditional"}}, + "eo": {"rtl": false, "languageNames": {"aa": "afara", "ab": "abĥaza", "af": "afrikansa", "am": "amhara", "ar": "araba", "ar-001": "araba (Mondo)", "as": "asama", "ay": "ajmara", "az": "azerbajĝana", "ba": "baŝkira", "be": "belorusa", "bg": "bulgara", "bi": "bislamo", "bn": "bengala", "bo": "tibeta", "br": "bretona", "bs": "bosnia", "ca": "kataluna", "co": "korsika", "cs": "ĉeĥa", "cy": "kimra", "da": "dana", "de": "germana", "de-AT": "germana (Aŭstrujo)", "de-CH": "germana (Svisujo)", "dv": "mahla", "dz": "dzonko", "efi": "ibibioefika", "el": "greka", "en": "angla", "en-AU": "angla (Aŭstralio)", "en-CA": "angla (Kanado)", "en-GB": "angla (Unuiĝinta Reĝlando)", "en-US": "angla (Usono)", "eo": "esperanto", "es": "hispana", "es-419": "hispana (419)", "es-ES": "hispana (Hispanujo)", "es-MX": "hispana (Meksiko)", "et": "estona", "eu": "eŭska", "fa": "persa", "fi": "finna", "fil": "filipina", "fj": "fiĝia", "fo": "feroa", "fr": "franca", "fr-CA": "franca (Kanado)", "fr-CH": "franca (Svisujo)", "fy": "frisa", "ga": "irlanda", "gd": "gaela", "gl": "galega", "gn": "gvarania", "gu": "guĝarata", "ha": "haŭsa", "haw": "havaja", "he": "hebrea", "hi": "hinda", "hr": "kroata", "ht": "haitia kreola", "hu": "hungara", "hy": "armena", "ia": "interlingvao", "id": "indonezia", "ie": "okcidentalo", "ik": "eskima", "is": "islanda", "it": "itala", "iu": "inuita", "ja": "japana", "jv": "java", "ka": "kartvela", "kk": "kazaĥa", "kl": "gronlanda", "km": "kmera", "kn": "kanara", "ko": "korea", "ks": "kaŝmira", "ku": "kurda", "ky": "kirgiza", "la": "latino", "lb": "luksemburga", "ln": "lingala", "lo": "laŭa", "lt": "litova", "lv": "latva", "mg": "malagasa", "mi": "maoria", "mk": "makedona", "ml": "malajalama", "mn": "mongola", "mr": "marata", "ms": "malaja", "mt": "malta", "my": "birma", "na": "naura", "nb": "dannorvega", "nds-NL": "nds (Nederlando)", "ne": "nepala", "nl": "nederlanda", "nl-BE": "nederlanda (Belgujo)", "nn": "novnorvega", "no": "norvega", "oc": "okcitana", "om": "oroma", "or": "orijo", "pa": "panĝaba", "pl": "pola", "ps": "paŝtoa", "pt": "portugala", "pt-BR": "brazilportugala", "pt-PT": "eŭropportugala", "qu": "keĉua", "rm": "romanĉa", "rn": "burunda", "ro": "rumana", "ro-MD": "rumana (Moldavujo)", "ru": "rusa", "rw": "ruanda", "sa": "sanskrito", "sd": "sinda", "sg": "sangoa", "sh": "serbo-Kroata", "si": "sinhala", "sk": "slovaka", "sl": "slovena", "sm": "samoa", "sn": "ŝona", "so": "somala", "sq": "albana", "sr": "serba", "ss": "svazia", "st": "sota", "su": "sunda", "sv": "sveda", "sw": "svahila", "sw-CD": "svahila (CD)", "ta": "tamila", "te": "telugua", "tg": "taĝika", "th": "taja", "ti": "tigraja", "tk": "turkmena", "tl": "tagaloga", "tlh": "klingona", "tn": "cvana", "to": "tongaa", "tr": "turka", "ts": "conga", "tt": "tatara", "ug": "ujgura", "uk": "ukraina", "ur": "urduo", "uz": "uzbeka", "vi": "vjetnama", "vo": "volapuko", "wo": "volofa", "xh": "ksosa", "yi": "jida", "yo": "joruba", "za": "ĝuanga", "zh": "ĉina", "zh-Hans": "ĉina simpligita", "zh-Hant": "ĉina tradicia", "zu": "zulua"}, "scriptNames": {}}, + "es": {"rtl": false, "languageNames": {"aa": "afar", "ab": "abjasio", "ace": "acehnés", "ach": "acoli", "ada": "adangme", "ady": "adigué", "ae": "avéstico", "af": "afrikáans", "afh": "afrihili", "agq": "aghem", "ain": "ainu", "ak": "akan", "akk": "acadio", "ale": "aleutiano", "alt": "altái meridional", "am": "amárico", "an": "aragonés", "ang": "inglés antiguo", "anp": "angika", "ar": "árabe", "ar-001": "árabe estándar moderno", "arc": "arameo", "arn": "mapuche", "arp": "arapaho", "ars": "árabe najdí", "arw": "arahuaco", "as": "asamés", "asa": "asu", "ast": "asturiano", "av": "avar", "awa": "avadhi", "ay": "aimara", "az": "azerbaiyano", "ba": "baskir", "bal": "baluchi", "ban": "balinés", "bas": "basaa", "bax": "bamún", "bbj": "ghomala", "be": "bielorruso", "bej": "beja", "bem": "bemba", "bez": "bena", "bfd": "bafut", "bg": "búlgaro", "bgn": "baluchi occidental", "bho": "bhoyapurí", "bi": "bislama", "bik": "bicol", "bin": "bini", "bkm": "kom", "bla": "siksika", "bm": "bambara", "bn": "bengalí", "bo": "tibetano", "br": "bretón", "bra": "braj", "brx": "bodo", "bs": "bosnio", "bss": "akoose", "bua": "buriato", "bug": "buginés", "bum": "bulu", "byn": "blin", "byv": "medumba", "ca": "catalán", "cad": "caddo", "car": "caribe", "cay": "cayuga", "cch": "atsam", "ce": "checheno", "ceb": "cebuano", "cgg": "chiga", "ch": "chamorro", "chb": "chibcha", "chg": "chagatái", "chk": "trukés", "chm": "marí", "chn": "jerga chinuk", "cho": "choctaw", "chp": "chipewyan", "chr": "cheroqui", "chy": "cheyene", "ckb": "kurdo sorani", "co": "corso", "cop": "copto", "cr": "cree", "crh": "tártaro de Crimea", "crs": "criollo seychelense", "cs": "checo", "csb": "casubio", "cu": "eslavo eclesiástico", "cv": "chuvasio", "cy": "galés", "da": "danés", "dak": "dakota", "dar": "dargva", "dav": "taita", "de": "alemán", "de-AT": "alemán austríaco", "de-CH": "alto alemán suizo", "del": "delaware", "den": "slave", "dgr": "dogrib", "din": "dinka", "dje": "zarma", "doi": "dogri", "dsb": "bajo sorbio", "dua": "duala", "dum": "neerlandés medio", "dv": "divehi", "dyo": "jola-fonyi", "dyu": "diula", "dz": "dzongkha", "dzg": "dazaga", "ebu": "embu", "ee": "ewé", "efi": "efik", "egy": "egipcio antiguo", "eka": "ekajuk", "el": "griego", "elx": "elamita", "en": "inglés", "en-AU": "inglés australiano", "en-CA": "inglés canadiense", "en-GB": "inglés británico", "en-US": "inglés estadounidense", "enm": "inglés medio", "eo": "esperanto", "es": "español", "es-419": "español latinoamericano", "es-ES": "español de España", "es-MX": "español de México", "et": "estonio", "eu": "euskera", "ewo": "ewondo", "fa": "persa", "fan": "fang", "fat": "fanti", "ff": "fula", "fi": "finés", "fil": "filipino", "fj": "fiyiano", "fo": "feroés", "fr": "francés", "fr-CA": "francés canadiense", "fr-CH": "francés suizo", "frc": "francés cajún", "frm": "francés medio", "fro": "francés antiguo", "frr": "frisón septentrional", "frs": "frisón oriental", "fur": "friulano", "fy": "frisón occidental", "ga": "irlandés", "gaa": "ga", "gag": "gagauzo", "gan": "chino gan", "gay": "gayo", "gba": "gbaya", "gd": "gaélico escocés", "gez": "geez", "gil": "gilbertés", "gl": "gallego", "gmh": "alto alemán medio", "gn": "guaraní", "goh": "alto alemán antiguo", "gon": "gondi", "gor": "gorontalo", "got": "gótico", "grb": "grebo", "grc": "griego antiguo", "gsw": "alemán suizo", "gu": "guyaratí", "guz": "gusii", "gv": "manés", "gwi": "kutchin", "ha": "hausa", "hai": "haida", "hak": "chino hakka", "haw": "hawaiano", "he": "hebreo", "hi": "hindi", "hil": "hiligaynon", "hit": "hitita", "hmn": "hmong", "ho": "hiri motu", "hr": "croata", "hsb": "alto sorbio", "hsn": "chino xiang", "ht": "criollo haitiano", "hu": "húngaro", "hup": "hupa", "hy": "armenio", "hz": "herero", "ia": "interlingua", "iba": "iban", "ibb": "ibibio", "id": "indonesio", "ie": "interlingue", "ig": "igbo", "ii": "yi de Sichuán", "ik": "inupiaq", "ilo": "ilocano", "inh": "ingush", "io": "ido", "is": "islandés", "it": "italiano", "iu": "inuktitut", "ja": "japonés", "jbo": "lojban", "jgo": "ngomba", "jmc": "machame", "jpr": "judeo-persa", "jrb": "judeo-árabe", "jv": "javanés", "ka": "georgiano", "kaa": "karakalpako", "kab": "cabila", "kac": "kachin", "kaj": "jju", "kam": "kamba", "kaw": "kawi", "kbd": "kabardiano", "kbl": "kanembu", "kcg": "tyap", "kde": "makonde", "kea": "criollo caboverdiano", "kfo": "koro", "kg": "kongo", "kha": "khasi", "kho": "kotanés", "khq": "koyra chiini", "ki": "kikuyu", "kj": "kuanyama", "kk": "kazajo", "kkj": "kako", "kl": "groenlandés", "kln": "kalenjin", "km": "jemer", "kmb": "kimbundu", "kn": "canarés", "ko": "coreano", "koi": "komi permio", "kok": "konkaní", "kos": "kosraeano", "kpe": "kpelle", "kr": "kanuri", "krc": "karachay-balkar", "krl": "carelio", "kru": "kurukh", "ks": "cachemiro", "ksb": "shambala", "ksf": "bafia", "ksh": "kölsch", "ku": "kurdo", "kum": "kumyk", "kut": "kutenai", "kv": "komi", "kw": "córnico", "ky": "kirguís", "la": "latín", "lad": "ladino", "lag": "langi", "lah": "lahnda", "lam": "lamba", "lb": "luxemburgués", "lez": "lezgiano", "lg": "ganda", "li": "limburgués", "lkt": "lakota", "ln": "lingala", "lo": "lao", "lol": "mongo", "lou": "criollo de Luisiana", "loz": "lozi", "lrc": "lorí septentrional", "lt": "lituano", "lu": "luba-katanga", "lua": "luba-lulua", "lui": "luiseño", "lun": "lunda", "lus": "mizo", "luy": "luyia", "lv": "letón", "mad": "madurés", "maf": "mafa", "mag": "magahi", "mai": "maithili", "mak": "macasar", "man": "mandingo", "mas": "masái", "mde": "maba", "mdf": "moksha", "mdr": "mandar", "men": "mende", "mer": "meru", "mfe": "criollo mauriciano", "mg": "malgache", "mga": "irlandés medio", "mgh": "makhuwa-meetto", "mgo": "meta’", "mh": "marshalés", "mi": "maorí", "mic": "micmac", "min": "minangkabau", "mk": "macedonio", "ml": "malayalam", "mn": "mongol", "mnc": "manchú", "mni": "manipuri", "moh": "mohawk", "mos": "mossi", "mr": "maratí", "ms": "malayo", "mt": "maltés", "mua": "mundang", "mus": "creek", "mwl": "mirandés", "mwr": "marwari", "my": "birmano", "mye": "myene", "myv": "erzya", "mzn": "mazandaraní", "na": "nauruano", "nan": "chino min nan", "nap": "napolitano", "naq": "nama", "nb": "noruego bokmal", "nd": "ndebele septentrional", "nds": "bajo alemán", "nds-NL": "bajo sajón", "ne": "nepalí", "new": "newari", "ng": "ndonga", "nia": "nias", "niu": "niueano", "nl": "neerlandés", "nl-BE": "flamenco", "nmg": "kwasio", "nn": "noruego nynorsk", "nnh": "ngiemboon", "no": "noruego", "nog": "nogai", "non": "nórdico antiguo", "nqo": "n’ko", "nr": "ndebele meridional", "nso": "sotho septentrional", "nus": "nuer", "nv": "navajo", "nwc": "newari clásico", "ny": "nyanja", "nym": "nyamwezi", "nyn": "nyankole", "nyo": "nyoro", "nzi": "nzima", "oc": "occitano", "oj": "ojibwa", "om": "oromo", "or": "oriya", "os": "osético", "osa": "osage", "ota": "turco otomano", "pa": "panyabí", "pag": "pangasinán", "pal": "pahlavi", "pam": "pampanga", "pap": "papiamento", "pau": "palauano", "pcm": "pidgin de Nigeria", "peo": "persa antiguo", "phn": "fenicio", "pi": "pali", "pl": "polaco", "pon": "pohnpeiano", "prg": "prusiano", "pro": "provenzal antiguo", "ps": "pastún", "pt": "portugués", "pt-BR": "portugués de Brasil", "pt-PT": "portugués de Portugal", "qu": "quechua", "quc": "quiché", "raj": "rajasthani", "rap": "rapanui", "rar": "rarotongano", "rm": "romanche", "rn": "kirundi", "ro": "rumano", "ro-MD": "moldavo", "rof": "rombo", "rom": "romaní", "root": "raíz", "ru": "ruso", "rup": "arrumano", "rw": "kinyarwanda", "rwk": "rwa", "sa": "sánscrito", "sad": "sandawe", "sah": "sakha", "sam": "arameo samaritano", "saq": "samburu", "sas": "sasak", "sat": "santali", "sba": "ngambay", "sbp": "sangu", "sc": "sardo", "scn": "siciliano", "sco": "escocés", "sd": "sindhi", "sdh": "kurdo meridional", "se": "sami septentrional", "see": "seneca", "seh": "sena", "sel": "selkup", "ses": "koyraboro senni", "sg": "sango", "sga": "irlandés antiguo", "sh": "serbocroata", "shi": "tashelhit", "shn": "shan", "shu": "árabe chadiano", "si": "cingalés", "sid": "sidamo", "sk": "eslovaco", "sl": "esloveno", "sm": "samoano", "sma": "sami meridional", "smj": "sami lule", "smn": "sami inari", "sms": "sami skolt", "sn": "shona", "snk": "soninké", "so": "somalí", "sog": "sogdiano", "sq": "albanés", "sr": "serbio", "srn": "sranan tongo", "srr": "serer", "ss": "suazi", "ssy": "saho", "st": "sotho meridional", "su": "sundanés", "suk": "sukuma", "sus": "susu", "sux": "sumerio", "sv": "sueco", "sw": "suajili", "sw-CD": "suajili del Congo", "swb": "comorense", "syc": "siríaco clásico", "syr": "siriaco", "ta": "tamil", "te": "telugu", "tem": "temne", "teo": "teso", "ter": "tereno", "tet": "tetún", "tg": "tayiko", "th": "tailandés", "ti": "tigriña", "tig": "tigré", "tk": "turcomano", "tkl": "tokelauano", "tl": "tagalo", "tlh": "klingon", "tli": "tlingit", "tmh": "tamashek", "tn": "setsuana", "to": "tongano", "tog": "tonga del Nyasa", "tpi": "tok pisin", "tr": "turco", "trv": "taroko", "ts": "tsonga", "tsi": "tsimshiano", "tt": "tártaro", "tum": "tumbuka", "tvl": "tuvaluano", "tw": "twi", "twq": "tasawaq", "ty": "tahitiano", "tyv": "tuviniano", "tzm": "tamazight del Atlas Central", "udm": "udmurt", "ug": "uigur", "uga": "ugarítico", "uk": "ucraniano", "umb": "umbundu", "ur": "urdu", "uz": "uzbeko", "ve": "venda", "vi": "vietnamita", "vo": "volapük", "vot": "vótico", "vun": "vunjo", "wa": "valón", "wae": "walser", "wal": "wolayta", "war": "waray", "was": "washo", "wbp": "warlpiri", "wo": "wólof", "wuu": "chino wu", "xal": "kalmyk", "xh": "xhosa", "xog": "soga", "yap": "yapés", "yav": "yangben", "ybb": "yemba", "yi": "yidis", "yo": "yoruba", "yue": "cantonés", "za": "zhuang", "zap": "zapoteco", "zbl": "símbolos Bliss", "zen": "zenaga", "zgh": "tamazight estándar marroquí", "zh": "chino", "zh-Hans": "chino simplificado", "zh-Hant": "chino tradicional", "zu": "zulú", "zun": "zuñi", "zza": "zazaki"}, "scriptNames": {"Cyrl": "cirílico", "Latn": "latino", "Arab": "árabe", "Guru": "gurmuji", "Tfng": "tifinagh", "Vaii": "vai", "Hans": "simplificado", "Hant": "tradicional"}}, + "et": {"rtl": false, "languageNames": {"aa": "afari", "ab": "abhaasi", "ace": "atšehi", "ach": "atšoli", "ada": "adangme", "ady": "adõgee", "ae": "avesta", "aeb": "Tuneesia araabia", "af": "afrikaani", "afh": "afrihili", "agq": "aghemi", "ain": "ainu", "ak": "akani", "akk": "akadi", "akz": "alabama", "ale": "aleuudi", "aln": "geegi", "alt": "altai", "am": "amhara", "an": "aragoni", "ang": "vanainglise", "anp": "angika", "ar": "araabia", "ar-001": "araabia (tänapäevane)", "arc": "aramea", "arn": "mapudunguni", "aro": "araona", "arp": "arapaho", "arq": "Alžeeria araabia", "arw": "aravaki", "ary": "Maroko araabia", "arz": "Egiptuse araabia", "as": "assami", "asa": "asu", "ase": "Ameerika viipekeel", "ast": "astuuria", "av": "avaari", "awa": "avadhi", "ay": "aimara", "az": "aserbaidžaani", "ba": "baškiiri", "bal": "belutši", "ban": "bali", "bar": "baieri", "bas": "basaa", "bax": "bamuni", "bbc": "bataki", "bbj": "ghomala", "be": "valgevene", "bej": "bedža", "bem": "bemba", "bew": "betavi", "bez": "bena", "bfd": "bafuti", "bfq": "badaga", "bg": "bulgaaria", "bgn": "läänebelutši", "bho": "bhodžpuri", "bi": "bislama", "bik": "bikoli", "bin": "edo", "bjn": "bandžari", "bkm": "komi (Aafrika)", "bla": "mustjalaindiaani", "bm": "bambara", "bn": "bengali", "bo": "tiibeti", "bpy": "bišnuprija", "bqi": "bahtiari", "br": "bretooni", "bra": "bradži", "brh": "brahui", "brx": "bodo", "bs": "bosnia", "bss": "akoose", "bua": "burjaadi", "bug": "bugi", "bum": "bulu", "byn": "bilini", "byv": "medumba", "ca": "katalaani", "cad": "kado", "car": "kariibi", "cay": "kajuka", "cch": "aitšami", "ccp": "Chakma", "ce": "tšetšeeni", "ceb": "sebu", "cgg": "tšiga", "ch": "tšamorro", "chb": "tšibtša", "chg": "tšagatai", "chk": "tšuugi", "chm": "mari", "chn": "tšinuki žargoon", "cho": "tšokto", "chp": "tšipevai", "chr": "tšerokii", "chy": "šaieeni", "ckb": "sorani", "co": "korsika", "cop": "kopti", "cps": "kapisnoni", "cr": "krii", "crh": "krimmitatari", "crs": "seišelli", "cs": "tšehhi", "csb": "kašuubi", "cu": "kirikuslaavi", "cv": "tšuvaši", "cy": "kõmri", "da": "taani", "dak": "siuu", "dar": "dargi", "dav": "davida", "de": "saksa", "de-AT": "Austria saksa", "de-CH": "Šveitsi ülemsaksa", "del": "delavari", "den": "sleivi", "dgr": "dogribi", "din": "dinka", "dje": "zarma", "doi": "dogri", "dsb": "alamsorbi", "dtp": "keskdusuni", "dua": "duala", "dum": "keskhollandi", "dv": "maldiivi", "dyo": "fonji", "dyu": "djula", "dz": "dzongkha", "dzg": "daza", "ebu": "embu", "ee": "eve", "efi": "efiki", "egl": "emiilia", "egy": "egiptuse", "eka": "ekadžuki", "el": "kreeka", "elx": "eelami", "en": "inglise", "en-AU": "Austraalia inglise", "en-CA": "Kanada inglise", "en-GB": "Briti inglise", "en-US": "Ameerika inglise", "enm": "keskinglise", "eo": "esperanto", "es": "hispaania", "es-419": "Ladina-Ameerika hispaania", "es-ES": "Euroopa hispaania", "es-MX": "Mehhiko hispaania", "esu": "keskjupiki", "et": "eesti", "eu": "baski", "ewo": "evondo", "ext": "estremenju", "fa": "pärsia", "fan": "fangi", "fat": "fanti", "ff": "fula", "fi": "soome", "fil": "filipiini", "fit": "meä", "fj": "fidži", "fo": "fääri", "fon": "foni", "fr": "prantsuse", "fr-CA": "Kanada prantsuse", "fr-CH": "Šveitsi prantsuse", "frc": "cajun’i", "frm": "keskprantsuse", "fro": "vanaprantsuse", "frp": "frankoprovansi", "frr": "põhjafriisi", "frs": "idafriisi", "fur": "friuuli", "fy": "läänefriisi", "ga": "iiri", "gag": "gagauusi", "gan": "kani", "gay": "gajo", "gba": "gbaja", "gd": "gaeli", "gez": "etioopia", "gil": "kiribati", "gl": "galeegi", "glk": "gilaki", "gmh": "keskülemsaksa", "gn": "guaranii", "goh": "vanaülemsaksa", "gon": "gondi", "gor": "gorontalo", "got": "gooti", "grb": "grebo", "grc": "vanakreeka", "gsw": "šveitsisaksa", "gu": "gudžarati", "guc": "vajuu", "gur": "farefare", "guz": "gusii", "gv": "mänksi", "gwi": "gvitšini", "ha": "hausa", "hai": "haida", "hak": "hakka", "haw": "havai", "he": "heebrea", "hi": "hindi", "hif": "Fidži hindi", "hil": "hiligainoni", "hit": "heti", "hmn": "hmongi", "ho": "hirimotu", "hr": "horvaadi", "hsb": "ülemsorbi", "hsn": "sjangi", "ht": "haiti", "hu": "ungari", "hup": "hupa", "hy": "armeenia", "hz": "herero", "ia": "interlingua", "iba": "ibani", "ibb": "ibibio", "id": "indoneesia", "ie": "interlingue", "ig": "ibo", "ii": "Sichuani jii", "ik": "injupiaki", "ilo": "iloko", "inh": "inguši", "io": "ido", "is": "islandi", "it": "itaalia", "iu": "inuktituti", "izh": "isuri", "ja": "jaapani", "jam": "Jamaica kreoolkeel", "jbo": "ložban", "jgo": "ngomba", "jmc": "matšame", "jpr": "juudipärsia", "jrb": "juudiaraabia", "jut": "jüüti", "jv": "jaava", "ka": "gruusia", "kaa": "karakalpaki", "kab": "kabiili", "kac": "katšini", "kaj": "jju", "kam": "kamba", "kaw": "kaavi", "kbd": "kabardi-tšerkessi", "kbl": "kanembu", "kcg": "tjapi", "kde": "makonde", "kea": "kabuverdianu", "kfo": "koro", "kg": "kongo", "kgp": "kaingangi", "kha": "khasi", "kho": "saka", "khq": "koyra chiini", "khw": "khovari", "ki": "kikuju", "kiu": "kõrmandžki", "kj": "kvanjama", "kk": "kasahhi", "kkj": "kako", "kl": "grööni", "kln": "kalendžini", "km": "khmeeri", "kmb": "mbundu", "kn": "kannada", "ko": "korea", "koi": "permikomi", "kok": "konkani", "kos": "kosrae", "kpe": "kpelle", "kr": "kanuri", "krc": "karatšai-balkaari", "kri": "krio", "krj": "kinaraia", "krl": "karjala", "kru": "kuruhhi", "ks": "kašmiiri", "ksb": "šambala", "ksf": "bafia", "ksh": "kölni", "ku": "kurdi", "kum": "kumõki", "kut": "kutenai", "kv": "komi", "kw": "korni", "ky": "kirgiisi", "la": "ladina", "lad": "ladiino", "lag": "langi", "lah": "lahnda", "lam": "lamba", "lb": "letseburgi", "lez": "lesgi", "lg": "ganda", "li": "limburgi", "lij": "liguuri", "liv": "liivi", "lkt": "lakota", "lmo": "lombardi", "ln": "lingala", "lo": "lao", "lol": "mongo", "lou": "Louisiana kreoolkeel", "loz": "lozi", "lrc": "põhjaluri", "lt": "leedu", "ltg": "latgali", "lu": "luba", "lua": "lulua", "lui": "luisenjo", "lun": "lunda", "lus": "lušei", "luy": "luhja", "lv": "läti", "lzh": "klassikaline hiina", "lzz": "lazi", "mad": "madura", "maf": "mafa", "mag": "magahi", "mai": "maithili", "mak": "makassari", "man": "malinke", "mas": "masai", "mde": "maba", "mdf": "mokša", "mdr": "mandari", "men": "mende", "mer": "meru", "mfe": "Mauritiuse kreoolkeel", "mg": "malagassi", "mga": "keskiiri", "mgh": "makhuwa-meetto", "mgo": "meta", "mh": "maršalli", "mi": "maoori", "mic": "mikmaki", "min": "minangkabau", "mk": "makedoonia", "ml": "malajalami", "mn": "mongoli", "mnc": "mandžu", "mni": "manipuri", "moh": "mohoogi", "mos": "more", "mr": "marathi", "mrj": "mäemari", "ms": "malai", "mt": "malta", "mua": "mundangi", "mus": "maskogi", "mwl": "miranda", "mwr": "marvari", "mwv": "mentavei", "my": "birma", "mye": "mjene", "myv": "ersa", "mzn": "mazandaraani", "na": "nauru", "nan": "lõunamini", "nap": "napoli", "naq": "nama", "nb": "norra bokmål", "nd": "põhjandebele", "nds": "alamsaksa", "nds-NL": "Hollandi alamsaksa", "ne": "nepali", "new": "nevari", "ng": "ndonga", "nia": "niasi", "niu": "niue", "njo": "ao", "nl": "hollandi", "nl-BE": "flaami", "nmg": "kwasio", "nn": "uusnorra", "nnh": "ngiembooni", "no": "norra", "nog": "nogai", "non": "vanapõhjala", "nov": "noviaal", "nqo": "nkoo", "nr": "lõunandebele", "nso": "põhjasotho", "nus": "nueri", "nv": "navaho", "nwc": "vananevari", "ny": "njandža", "nym": "njamvesi", "nyn": "nkole", "nyo": "njoro", "nzi": "nzima", "oc": "oksitaani", "oj": "odžibvei", "om": "oromo", "or": "oria", "os": "osseedi", "osa": "oseidži", "ota": "osmanitürgi", "pa": "pandžabi", "pag": "pangasinani", "pal": "pahlavi", "pam": "pampanga", "pap": "papiamento", "pau": "belau", "pcd": "pikardi", "pcm": "Nigeeria pidžinkeel", "pdc": "Pennsylvania saksa", "pdt": "mennoniidisaksa", "peo": "vanapärsia", "pfl": "Pfalzi", "phn": "foiniikia", "pi": "paali", "pl": "poola", "pms": "piemonte", "pnt": "pontose", "pon": "poonpei", "prg": "preisi", "pro": "vanaprovansi", "ps": "puštu", "pt": "portugali", "pt-BR": "Brasiilia portugali", "pt-PT": "Euroopa portugali", "qu": "ketšua", "quc": "kitše", "raj": "radžastani", "rap": "rapanui", "rar": "rarotonga", "rgn": "romanja", "rif": "riifi", "rm": "romanši", "rn": "rundi", "ro": "rumeenia", "ro-MD": "moldova", "rof": "rombo", "rom": "mustlaskeel", "rtm": "rotuma", "ru": "vene", "rue": "russiini", "rug": "roviana", "rup": "aromuuni", "rw": "ruanda", "rwk": "rvaa", "sa": "sanskriti", "sad": "sandave", "sah": "jakuudi", "sam": "Samaaria aramea", "saq": "samburu", "sas": "sasaki", "sat": "santali", "saz": "sauraštra", "sba": "ngambai", "sbp": "sangu", "sc": "sardi", "scn": "sitsiilia", "sco": "šoti", "sd": "sindhi", "sdh": "lõunakurdi", "se": "põhjasaami", "see": "seneka", "seh": "sena", "sei": "seri", "sel": "sölkupi", "ses": "koyraboro senni", "sg": "sango", "sga": "vanaiiri", "sgs": "žemaidi", "sh": "serbia-horvaadi", "shi": "šilha", "shn": "šani", "shu": "Tšaadi araabia", "si": "singali", "sid": "sidamo", "sk": "slovaki", "sl": "sloveeni", "sli": "alamsileesia", "sly": "selajari", "sm": "samoa", "sma": "lõunasaami", "smj": "Lule saami", "smn": "Inari saami", "sms": "koltasaami", "sn": "šona", "snk": "soninke", "so": "somaali", "sog": "sogdi", "sq": "albaania", "sr": "serbia", "srn": "sranani", "srr": "sereri", "ss": "svaasi", "ssy": "saho", "st": "lõunasotho", "stq": "saterfriisi", "su": "sunda", "suk": "sukuma", "sus": "susu", "sux": "sumeri", "sv": "rootsi", "sw": "suahiili", "sw-CD": "Kongo suahiili", "swb": "komoori", "syc": "vanasüüria", "syr": "süüria", "szl": "sileesia", "ta": "tamili", "tcy": "tulu", "te": "telugu", "tem": "temne", "teo": "teso", "ter": "tereno", "tet": "tetumi", "tg": "tadžiki", "th": "tai", "ti": "tigrinja", "tig": "tigree", "tiv": "tivi", "tk": "türkmeeni", "tkl": "tokelau", "tkr": "tsahhi", "tl": "tagalogi", "tlh": "klingoni", "tli": "tlingiti", "tly": "talõši", "tmh": "tamašeki", "tn": "tsvana", "to": "tonga", "tog": "tšitonga", "tpi": "uusmelaneesia", "tr": "türgi", "tru": "turojo", "trv": "taroko", "ts": "tsonga", "tsd": "tsakoonia", "tsi": "tšimši", "tt": "tatari", "ttt": "lõunataadi", "tum": "tumbuka", "tvl": "tuvalu", "tw": "tvii", "twq": "taswaqi", "ty": "tahiti", "tyv": "tõva", "tzm": "tamasikti", "udm": "udmurdi", "ug": "uiguuri", "uga": "ugariti", "uk": "ukraina", "umb": "umbundu", "ur": "urdu", "uz": "usbeki", "ve": "venda", "vec": "veneti", "vep": "vepsa", "vi": "vietnami", "vls": "lääneflaami", "vmf": "Maini frangi", "vo": "volapüki", "vot": "vadja", "vro": "võru", "vun": "vundžo", "wa": "vallooni", "wae": "walseri", "wal": "volaita", "war": "varai", "was": "vašo", "wbp": "varlpiri", "wo": "volofi", "wuu": "uu", "xal": "kalmõki", "xh": "koosa", "xmf": "megreli", "xog": "soga", "yao": "jao", "yap": "japi", "yav": "yangbeni", "ybb": "jemba", "yi": "jidiši", "yo": "joruba", "yrl": "njengatu", "yue": "kantoni", "za": "tšuangi", "zap": "sapoteegi", "zbl": "Blissi sümbolid", "zea": "zeelandi", "zen": "zenaga", "zgh": "tamasikti (Maroko)", "zh": "hiina", "zh-Hans": "lihtsustatud hiina", "zh-Hant": "traditsiooniline hiina", "zu": "suulu", "zun": "sunji", "zza": "zaza"}, "scriptNames": {"Cyrl": "kirillitsa", "Latn": "ladina", "Arab": "araabia", "Guru": "gurmukhi", "Tfng": "tifinagi", "Vaii": "vai", "Hans": "lihtsustatud", "Hant": "traditsiooniline"}}, + "eu": {"rtl": false, "languageNames": {"aa": "afarera", "ab": "abkhaziera", "ace": "acehnera", "ach": "acholiera", "ada": "adangmera", "ady": "adigera", "af": "afrikaans", "agq": "aghemera", "ain": "ainuera", "ak": "akanera", "ale": "aleutera", "alt": "hegoaldeko altaiera", "am": "amharera", "an": "aragoiera", "anp": "angikera", "ar": "arabiera", "ar-001": "arabiera moderno estandarra", "arn": "maputxe", "arp": "arapaho", "as": "assamera", "asa": "asua", "ast": "asturiera", "av": "avarera", "awa": "awadhiera", "ay": "aimara", "az": "azerbaijanera", "ba": "baxkirera", "ban": "baliera", "bas": "basaa", "be": "bielorrusiera", "bem": "bembera", "bez": "benera", "bg": "bulgariera", "bho": "bhojpurera", "bi": "bislama", "bin": "edoera", "bla": "siksikera", "bm": "bambarera", "bn": "bengalera", "bo": "tibetera", "br": "bretoiera", "brx": "bodoera", "bs": "bosniera", "bug": "buginera", "byn": "bilena", "ca": "katalan", "ce": "txetxenera", "ceb": "cebuera", "cgg": "chigera", "ch": "chamorrera", "chk": "chuukera", "chm": "mariera", "cho": "choctaw", "chr": "txerokiera", "chy": "cheyennera", "ckb": "sorania", "co": "korsikera", "crs": "Seychelleetako kreolera", "cs": "txekiera", "cu": "elizako eslaviera", "cv": "txuvaxera", "cy": "gales", "da": "daniera", "dak": "dakotera", "dar": "dargvera", "dav": "taitera", "de": "aleman", "de-AT": "Austriako aleman", "de-CH": "Suitzako aleman garai", "dgr": "dogribera", "dje": "zarma", "dsb": "behe-sorabiera", "dua": "dualera", "dv": "divehiera", "dyo": "fonyi jolera", "dz": "dzongkha", "dzg": "dazaga", "ebu": "embua", "ee": "eweera", "efi": "efikera", "eka": "akajuka", "el": "greziera", "en": "ingeles", "en-AU": "Australiako ingeles", "en-CA": "Kanadako ingeles", "en-GB": "Britania Handiko ingeles", "en-US": "AEBko ingeles", "eo": "esperanto", "es": "espainiera", "es-419": "Latinoamerikako espainiera", "es-ES": "espainiera (Europa)", "es-MX": "Mexikoko espainiera", "et": "estoniera", "eu": "euskara", "ewo": "ewondera", "fa": "persiera", "ff": "fula", "fi": "finlandiera", "fil": "filipinera", "fj": "fijiera", "fo": "faroera", "fon": "fona", "fr": "frantses", "fr-CA": "Kanadako frantses", "fr-CH": "Suitzako frantses", "fur": "friuliera", "fy": "frisiera", "ga": "gaeliko", "gaa": "ga", "gag": "gagauzera", "gd": "Eskoziako gaeliko", "gez": "ge’ez", "gil": "gilbertera", "gl": "galiziera", "gn": "guaraniera", "gor": "gorontaloa", "gsw": "Suitzako aleman", "gu": "gujaratera", "guz": "gusiiera", "gv": "manxera", "gwi": "gwichʼin", "ha": "hausa", "haw": "hawaiiera", "he": "hebreera", "hi": "hindi", "hil": "hiligainon", "hmn": "hmong", "hr": "kroaziera", "hsb": "goi-sorabiera", "ht": "Haitiko kreolera", "hu": "hungariera", "hup": "hupera", "hy": "armeniera", "hz": "hereroera", "ia": "interlingua", "iba": "ibanera", "ibb": "ibibioera", "id": "indonesiera", "ie": "interlingue", "ig": "igboera", "ii": "Sichuango yiera", "ilo": "ilokanera", "inh": "ingushera", "io": "ido", "is": "islandiera", "it": "italiera", "iu": "inuktitut", "ja": "japoniera", "jbo": "lojbanera", "jgo": "ngomba", "jmc": "machamera", "jv": "javera", "ka": "georgiera", "kab": "kabilera", "kac": "jingpoera", "kaj": "kaiji", "kam": "kambera", "kbd": "kabardiera", "kcg": "kataba", "kde": "makondera", "kea": "Cabo Verdeko kreolera", "kfo": "koroa", "kg": "kikongoa", "kha": "kashia", "khq": "koyra chiiniera", "ki": "kikuyuera", "kj": "kuanyama", "kk": "kazakhera", "kkj": "kakoa", "kl": "groenlandiera", "kln": "kalenjinera", "km": "khemerera", "kmb": "kimbundua", "kn": "kannada", "ko": "koreera", "koi": "komi-permyakera", "kok": "konkanera", "kpe": "kpellea", "kr": "kanuriera", "krc": "karachayera-balkarera", "krl": "kareliera", "kru": "kurukhera", "ks": "kaxmirera", "ksb": "shambalera", "ksf": "bafiera", "ksh": "koloniera", "ku": "kurduera", "kum": "kumykera", "kv": "komiera", "kw": "kornubiera", "ky": "kirgizera", "la": "latin", "lad": "ladino", "lag": "langiera", "lb": "luxenburgera", "lez": "lezgiera", "lg": "gandera", "li": "limburgera", "lkt": "lakotera", "ln": "lingala", "lo": "laosera", "loz": "loziera", "lrc": "iparraldeko lurera", "lt": "lituaniera", "lu": "luba-katangera", "lua": "txilubera", "lun": "lundera", "luo": "luoera", "lus": "mizoa", "luy": "luhyera", "lv": "letoniera", "mad": "madurera", "mag": "magahiera", "mai": "maithilera", "mak": "makasarera", "mas": "masaiera", "mdf": "mokxera", "men": "mendeera", "mer": "meruera", "mfe": "Mauritaniako kreolera", "mg": "malgaxe", "mgh": "makhuwa-meettoera", "mgo": "metera", "mh": "marshallera", "mi": "maoriera", "mic": "mikmakera", "min": "minangkabauera", "mk": "mazedoniera", "ml": "malabarera", "mn": "mongoliera", "mni": "manipurera", "moh": "mohawkera", "mos": "moreera", "mr": "marathera", "ms": "malaysiera", "mt": "maltera", "mua": "mudangera", "mus": "creera", "mwl": "mirandera", "my": "birmaniera", "myv": "erziera", "mzn": "mazandarandera", "na": "nauruera", "nap": "napoliera", "naq": "namera", "nb": "bokmål (norvegiera)", "nd": "iparraldeko ndebeleera", "nds-NL": "behe-saxoiera", "ne": "nepalera", "new": "newarera", "ng": "ndongera", "nia": "niasera", "niu": "niueera", "nl": "nederlandera", "nl-BE": "flandriera", "nmg": "kwasiera", "nn": "nynorsk (norvegiera)", "nnh": "ngiemboonera", "no": "norvegiera", "nog": "nogaiera", "nqo": "n’koera", "nr": "hegoaldeko ndebelera", "nso": "pediera", "nus": "nuerera", "nv": "navajoera", "ny": "chewera", "nyn": "ankolera", "oc": "okzitaniera", "om": "oromoera", "or": "oriya", "os": "osetiera", "pa": "punjabera", "pag": "pangasinanera", "pam": "pampangera", "pap": "papiamento", "pau": "palauera", "pcm": "Nigeriako pidgina", "pl": "poloniera", "prg": "prusiera", "ps": "paxtuera", "pt": "portuges", "pt-BR": "Brasilgo portuges", "pt-PT": "Europako portuges", "qu": "kitxua", "quc": "quicheera", "rap": "rapa nui", "rar": "rarotongera", "rm": "erretorromaniera", "rn": "rundiera", "ro": "errumaniera", "ro-MD": "moldaviera", "rof": "romboera", "root": "erroa", "ru": "errusiera", "rup": "aromaniera", "rw": "kinyaruanda", "rwk": "rwaera", "sa": "sanskrito", "sad": "sandaweera", "sah": "sakhera", "saq": "samburuera", "sat": "santalera", "sba": "ngambayera", "sbp": "sanguera", "sc": "sardiniera", "scn": "siziliera", "sco": "eskoziera", "sd": "sindhi", "se": "iparraldeko samiera", "seh": "senera", "ses": "koyraboro sennia", "sg": "sango", "sh": "serbokroaziera", "shi": "tachelhita", "shn": "shanera", "si": "sinhala", "sk": "eslovakiera", "sl": "esloveniera", "sm": "samoera", "sma": "hegoaldeko samiera", "smj": "Luleko samiera", "smn": "Inariko samiera", "sms": "skolten samiera", "sn": "shonera", "snk": "soninkera", "so": "somaliera", "sq": "albaniera", "sr": "serbiera", "srn": "srananera", "ss": "swatiera", "ssy": "sahoa", "st": "hegoaldeko sothoera", "su": "sundanera", "suk": "sukumera", "sv": "suediera", "sw": "swahilia", "sw-CD": "Kongoko swahilia", "swb": "komoreera", "syr": "siriera", "ta": "tamilera", "te": "telugu", "tem": "temnea", "teo": "tesoera", "tet": "tetum", "tg": "tajikera", "th": "thailandiera", "ti": "tigrinyera", "tig": "tigrea", "tk": "turkmenera", "tl": "tagalog", "tlh": "klingonera", "tn": "tswanera", "to": "tongera", "tpi": "tok pisin", "tr": "turkiera", "trv": "tarokoa", "ts": "tsongera", "tt": "tatarera", "tum": "tumbukera", "tvl": "tuvaluera", "tw": "twia", "twq": "tasawaq", "ty": "tahitiera", "tyv": "tuvera", "tzm": "Erdialdeko Atlaseko amazigera", "udm": "udmurtera", "ug": "uigurrera", "uk": "ukrainera", "umb": "umbundu", "ur": "urdu", "uz": "uzbekera", "vai": "vaiera", "ve": "vendera", "vi": "vietnamera", "vo": "volapük", "vun": "vunjo", "wa": "waloiera", "wae": "walserera", "wal": "welayta", "war": "samerera", "wo": "wolofera", "xal": "kalmykera", "xh": "xhosera", "xog": "sogera", "yav": "jangbenera", "ybb": "yemba", "yi": "yiddish", "yo": "jorubera", "yue": "kantonera", "zgh": "amazigera estandarra", "zh": "txinera", "zh-Hans": "txinera soildua", "zh-Hant": "txinera tradizionala", "zu": "zuluera", "zun": "zuñia", "zza": "zazera"}, "scriptNames": {"Cyrl": "zirilikoa", "Latn": "latinoa", "Arab": "arabiarra", "Guru": "gurmukhia", "Hans": "sinplifikatua", "Hant": "tradizionala"}}, + "fa": {"rtl": true, "languageNames": {"aa": "آفاری", "ab": "آبخازی", "ace": "آچئی", "ach": "آچولیایی", "ada": "آدانگمه‌ای", "ady": "آدیجیایی", "ae": "اوستایی", "aeb": "عربی تونسی", "af": "آفریکانس", "afh": "آفریهیلی", "agq": "آگیم", "ain": "آینویی", "ak": "آکان", "akk": "اکدی", "akz": "آلابامایی", "ale": "آلئوتی", "alt": "آلتایی جنوبی", "am": "امهری", "an": "آراگونی", "ang": "انگلیسی باستان", "anp": "آنگیکا", "ar": "عربی", "ar-001": "عربی رسمی", "arc": "آرامی", "arn": "ماپوچه‌ای", "arp": "آراپاهویی", "arq": "عربی الجزایری", "arw": "آراواکی", "ary": "عربی مراکشی", "arz": "عربی مصری", "as": "آسامی", "asa": "آسو", "ast": "آستوری", "av": "آواری", "awa": "اودهی", "ay": "آیمارایی", "az": "ترکی آذربایجانی", "az-Arab": "ترکی آذری جنوبی", "ba": "باشقیری", "bal": "بلوچی", "ban": "بالیایی", "bar": "باواریایی", "bas": "باسایی", "bax": "بمونی", "be": "بلاروسی", "bej": "بجایی", "bem": "بمبایی", "bez": "بنایی", "bg": "بلغاری", "bgn": "بلوچی غربی", "bho": "بوجپوری", "bi": "بیسلاما", "bik": "بیکولی", "bin": "بینی", "bla": "سیکسیکا", "bm": "بامبارایی", "bn": "بنگالی", "bo": "تبتی", "bqi": "لری بختیاری", "br": "برتون", "bra": "براج", "brh": "براهویی", "brx": "بودویی", "bs": "بوسنیایی", "bua": "بوریاتی", "bug": "بوگیایی", "byn": "بلین", "ca": "کاتالان", "cad": "کادویی", "car": "کاریبی", "ccp": "چاکما", "ce": "چچنی", "ceb": "سبویی", "cgg": "چیگا", "ch": "چامورویی", "chb": "چیبچا", "chg": "جغتایی", "chk": "چوکی", "chm": "ماریایی", "cho": "چوکتویی", "chp": "چیپه‌ویه‌ای", "chr": "چروکیایی", "chy": "شایانی", "ckb": "کردی مرکزی", "co": "کورسی", "cop": "قبطی", "cr": "کریایی", "crh": "ترکی کریمه", "crs": "سیشل آمیختهٔ فرانسوی", "cs": "چکی", "csb": "کاشوبی", "cu": "اسلاوی کلیسایی", "cv": "چوواشی", "cy": "ولزی", "da": "دانمارکی", "dak": "داکوتایی", "dar": "دارقینی", "dav": "تایتا", "de": "آلمانی", "de-AT": "آلمانی اتریش", "de-CH": "آلمانی معیار سوئیس", "del": "دلاواری", "dgr": "دوگریب", "din": "دینکایی", "dje": "زرما", "doi": "دوگری", "dsb": "صُربی سفلی", "dua": "دوآلایی", "dum": "هلندی میانه", "dv": "دیوهی", "dyo": "دیولا فونی", "dyu": "دایولایی", "dz": "دزونگخا", "dzg": "دازاگایی", "ebu": "امبو", "ee": "اوه‌ای", "efi": "افیکی", "egy": "مصری کهن", "eka": "اکاجوک", "el": "یونانی", "elx": "عیلامی", "en": "انگلیسی", "en-AU": "انگلیسی استرالیا", "en-CA": "انگلیسی کانادا", "en-GB": "انگلیسی بریتانیا", "en-US": "انگلیسی امریکا", "enm": "انگلیسی میانه", "eo": "اسپرانتو", "es": "اسپانیایی", "es-419": "اسپانیایی امریکای لاتین", "es-ES": "اسپانیایی اروپا", "es-MX": "اسپانیایی مکزیک", "et": "استونیایی", "eu": "باسکی", "ewo": "اواندو", "fa": "فارسی", "fa-AF": "دری", "fan": "فانگی", "fat": "فانتیایی", "ff": "فولانی", "fi": "فنلاندی", "fil": "فیلیپینی", "fj": "فیجیایی", "fo": "فارویی", "fon": "فونی", "fr": "فرانسوی", "fr-CA": "فرانسوی کانادا", "fr-CH": "فرانسوی سوئیس", "frc": "فرانسوی کادین", "frm": "فرانسوی میانه", "fro": "فرانسوی باستان", "frr": "فریزی شمالی", "frs": "فریزی شرقی", "fur": "فریولیایی", "fy": "فریزی غربی", "ga": "ایرلندی", "gaa": "گایی", "gag": "گاگائوزیایی", "gay": "گایویی", "gba": "گبایایی", "gbz": "دری زرتشتی", "gd": "گیلی اسکاتلندی", "gez": "گی‌ئزی", "gil": "گیلبرتی", "gl": "گالیسیایی", "glk": "گیلکی", "gmh": "آلمانی معیار میانه", "gn": "گوارانی", "goh": "آلمانی علیای باستان", "gon": "گوندی", "gor": "گورونتالو", "got": "گوتی", "grb": "گریبویی", "grc": "یونانی کهن", "gsw": "آلمانی سوئیسی", "gu": "گجراتی", "guz": "گوسی", "gv": "مانی", "gwi": "گویچ این", "ha": "هوسیایی", "hai": "هایدایی", "haw": "هاوائیایی", "he": "عبری", "hi": "هندی", "hif": "هندی فیجیایی", "hil": "هیلی‌گاینونی", "hit": "هیتی", "hmn": "همونگ", "ho": "موتویی هیری", "hr": "کروات", "hsb": "صُربی علیا", "ht": "هائیتیایی", "hu": "مجاری", "hup": "هوپا", "hy": "ارمنی", "hz": "هریرویی", "ia": "میان‌زبان", "iba": "ایبانی", "ibb": "ایبیبیو", "id": "اندونزیایی", "ie": "اکسیدنتال", "ig": "ایگبویی", "ii": "یی سیچوان", "ik": "اینوپیک", "ilo": "ایلوکویی", "inh": "اینگوشی", "io": "ایدو", "is": "ایسلندی", "it": "ایتالیایی", "iu": "اینوکتیتوت", "ja": "ژاپنی", "jbo": "لوجبان", "jgo": "نگومبا", "jmc": "ماچامه‌ای", "jpr": "فارسی یهودی", "jrb": "عربی یهودی", "jv": "جاوه‌ای", "ka": "گرجی", "kaa": "قره‌قالپاقی", "kab": "قبایلی", "kac": "کاچینی", "kaj": "جو", "kam": "کامبایی", "kaw": "کاویایی", "kbd": "کاباردینی", "kcg": "تیاپی", "kde": "ماکونده", "kea": "کابووردیانو", "kfo": "کورو", "kg": "کنگویی", "kha": "خاسیایی", "kho": "ختنی", "khq": "کوجراچینی", "khw": "کهوار", "ki": "کیکویویی", "kiu": "کرمانجی", "kj": "کوانیاما", "kk": "قزاقی", "kkj": "کاکایی", "kl": "گرینلندی", "kln": "کالنجین", "km": "خمری", "kmb": "کیمبوندویی", "kn": "کانارا", "ko": "کره‌ای", "koi": "کومی پرمیاک", "kok": "کنکانی", "kpe": "کپله‌ای", "kr": "کانوریایی", "krc": "قره‌چایی‐بالکاری", "krl": "کاریلیانی", "kru": "کوروخی", "ks": "کشمیری", "ksb": "شامبالا", "ksf": "بافیایی", "ksh": "ریپواری", "ku": "کردی", "kum": "کومیکی", "kut": "کوتنی", "kv": "کومیایی", "kw": "کرنوالی", "ky": "قرقیزی", "la": "لاتین", "lad": "لادینو", "lag": "لانگی", "lah": "لاهندا", "lam": "لامبا", "lb": "لوگزامبورگی", "lez": "لزگی", "lg": "گاندایی", "li": "لیمبورگی", "lkt": "لاکوتا", "ln": "لینگالا", "lo": "لائوسی", "lol": "مونگویی", "lou": "زبان آمیختهٔ مادری لوئیزیانا", "loz": "لوزیایی", "lrc": "لری شمالی", "lt": "لیتوانیایی", "lu": "لوبایی‐کاتانگا", "lua": "لوبایی‐لولوا", "lui": "لویسنو", "lun": "لوندایی", "luo": "لوئویی", "lus": "لوشه‌ای", "luy": "لویا", "lv": "لتونیایی", "lzh": "چینی ادبی", "mad": "مادورایی", "mag": "ماگاهیایی", "mai": "مایدیلی", "mak": "ماکاسار", "man": "ماندینگویی", "mas": "ماسایی", "mdf": "مکشایی", "mdr": "ماندار", "men": "منده‌ای", "mer": "مرویی", "mfe": "موریسین", "mg": "مالاگاسیایی", "mga": "ایرلندی میانه", "mgh": "ماکوا متو", "mgo": "متایی", "mh": "مارشالی", "mi": "مائوریایی", "mic": "میکماکی", "min": "مینانگ‌کابویی", "mk": "مقدونی", "ml": "مالایالامی", "mn": "مغولی", "mnc": "مانچویی", "mni": "میته‌ای", "moh": "موهاکی", "mos": "ماسیایی", "mr": "مراتی", "ms": "مالایی", "mt": "مالتی", "mua": "ماندانگی", "mus": "کریکی", "mwl": "میراندی", "mwr": "مارواری", "my": "برمه‌ای", "myv": "ارزیایی", "mzn": "مازندرانی", "na": "نائورویی", "nap": "ناپلی", "naq": "نامایی", "nb": "نروژی بوک‌مُل", "nd": "انده‌بله‌ای شمالی", "nds": "آلمانی سفلی", "nds-NL": "ساکسونی سفلی", "ne": "نپالی", "new": "نواریایی", "ng": "اندونگایی", "nia": "نیاسی", "niu": "نیویی", "nl": "هلندی", "nl-BE": "فلمنگی", "nmg": "کوازیو", "nn": "نروژی نی‌نُشک", "nnh": "انگیمبونی", "no": "نروژی", "nog": "نغایی", "non": "نرس باستان", "nqo": "نکو", "nr": "انده‌بله‌ای جنوبی", "nso": "سوتویی شمالی", "nus": "نویر", "nv": "ناواهویی", "nwc": "نواریایی کلاسیک", "ny": "نیانجایی", "nym": "نیام‌وزیایی", "nyn": "نیانکوله‌ای", "nyo": "نیورویی", "nzi": "نزیمایی", "oc": "اکسیتان", "oj": "اوجیبوایی", "om": "اورومویی", "or": "اوریه‌ای", "os": "آسی", "osa": "اوسیجی", "ota": "ترکی عثمانی", "pa": "پنجابی", "pag": "پانگاسینانی", "pal": "پهلوی", "pam": "پامپانگایی", "pap": "پاپیامنتو", "pau": "پالائویی", "pcm": "نیم‌زبان نیجریه‌ای", "pdc": "آلمانی پنسیلوانیایی", "peo": "فارسی باستان", "phn": "فنیقی", "pi": "پالی", "pl": "لهستانی", "pon": "پانپیی", "prg": "پروسی", "pro": "پرووانسی باستان", "ps": "پشتو", "pt": "پرتغالی", "pt-BR": "پرتغالی برزیل", "pt-PT": "پرتغالی اروپا", "qu": "کچوایی", "quc": "کیچه‌", "raj": "راجستانی", "rap": "راپانویی", "rar": "راروتونگایی", "rm": "رومانش", "rn": "روندیایی", "ro": "رومانیایی", "ro-MD": "مولداویایی", "rof": "رومبویی", "rom": "رومانویی", "root": "ریشه", "ru": "روسی", "rup": "آرومانی", "rw": "کینیارواندایی", "rwk": "روایی", "sa": "سانسکریت", "sad": "سانداوه‌ای", "sah": "یاقوتی", "sam": "آرامی سامری", "saq": "سامبورو", "sas": "ساساکی", "sat": "سانتالی", "sba": "انگامبایی", "sbp": "سانگویی", "sc": "ساردینیایی", "scn": "سیسیلی", "sco": "اسکاتلندی", "sd": "سندی", "sdh": "کردی جنوبی", "se": "سامی شمالی", "seh": "سنا", "sel": "سلکوپی", "ses": "کویرابورا سنی", "sg": "سانگو", "sga": "ایرلندی باستان", "sh": "صرب و کرواتی", "shi": "تاچل‌هیت", "shn": "شانی", "shu": "عربی چادی", "si": "سینهالی", "sid": "سیدامویی", "sk": "اسلواکی", "sl": "اسلوونیایی", "sli": "سیلزیایی سفلی", "sm": "ساموآیی", "sma": "سامی جنوبی", "smj": "لوله سامی", "smn": "ایناری سامی", "sms": "اسکولت سامی", "sn": "شونایی", "snk": "سونینکه‌ای", "so": "سومالیایی", "sog": "سغدی", "sq": "آلبانیایی", "sr": "صربی", "srn": "تاکی‌تاکی", "srr": "سریری", "ss": "سوازیایی", "ssy": "ساهو", "st": "سوتویی جنوبی", "su": "سوندایی", "suk": "سوکومایی", "sus": "سوسویی", "sux": "سومری", "sv": "سوئدی", "sw": "سواحیلی", "sw-CD": "سواحیلی کنگو", "swb": "کوموری", "syc": "سریانی کلاسیک", "syr": "سریانی", "szl": "سیلزیایی", "ta": "تامیلی", "te": "تلوگویی", "tem": "تمنه‌ای", "teo": "تسویی", "ter": "ترنو", "tet": "تتومی", "tg": "تاجیکی", "th": "تایلندی", "ti": "تیگرینیایی", "tig": "تیگره‌ای", "tiv": "تیوی", "tk": "ترکمنی", "tl": "تاگالوگی", "tlh": "کلینگون", "tli": "تلین‌گیتی", "tmh": "تاماشقی", "tn": "تسوانایی", "to": "تونگایی", "tog": "تونگایی نیاسا", "tpi": "توک‌پیسینی", "tr": "ترکی استانبولی", "trv": "تاروکویی", "ts": "تسونگایی", "tsi": "تسیم‌شیانی", "tt": "تاتاری", "tum": "تومبوکایی", "tvl": "تووالویی", "tw": "توی‌یایی", "twq": "تسواکی", "ty": "تاهیتیایی", "tyv": "تووایی", "tzm": "آمازیغی اطلس مرکزی", "udm": "اودمورتی", "ug": "اویغوری", "uga": "اوگاریتی", "uk": "اوکراینی", "umb": "امبوندویی", "ur": "اردو", "uz": "ازبکی", "vai": "ویایی", "ve": "وندایی", "vi": "ویتنامی", "vo": "ولاپوک", "vot": "وتی", "vun": "ونجو", "wa": "والونی", "wae": "والسر", "wal": "والامو", "war": "وارایی", "was": "واشویی", "wbp": "وارلپیری", "wo": "ولوفی", "xal": "قلموقی", "xh": "خوسایی", "xog": "سوگایی", "yao": "یائویی", "yap": "یاپی", "yav": "یانگبنی", "ybb": "یمبایی", "yi": "یدی", "yo": "یوروبایی", "yue": "کانتونی", "za": "چوانگی", "zap": "زاپوتکی", "zen": "زناگا", "zgh": "آمازیغی معیار مراکش", "zh": "چینی", "zh-Hans": "چینی ساده‌شده", "zh-Hant": "چینی سنتی", "zu": "زولویی", "zun": "زونیایی", "zza": "زازایی"}, "scriptNames": {"Cyrl": "سیریلی", "Latn": "لاتینی", "Arab": "عربی", "Guru": "گورومخی", "Tfng": "تیفیناغی", "Vaii": "ویایی", "Hans": "ساده‌شده", "Hant": "سنتی"}}, + "fi": {"rtl": false, "languageNames": {"aa": "afar", "ab": "abhaasi", "ace": "atšeh", "ach": "atšoli", "ada": "adangme", "ady": "adyge", "ae": "avesta", "aeb": "tunisianarabia", "af": "afrikaans", "afh": "afrihili", "agq": "aghem", "ain": "ainu", "ak": "akan", "akk": "akkadi", "akz": "alabama", "ale": "aleutti", "aln": "gegi", "alt": "altai", "am": "amhara", "an": "aragonia", "ang": "muinaisenglanti", "anp": "angika", "ar": "arabia", "ar-001": "yleisarabia", "arc": "valtakunnanaramea", "arn": "mapudungun", "aro": "araona", "arp": "arapaho", "arq": "algerianarabia", "ars": "arabia – najd", "arw": "arawak", "ary": "marokonarabia", "arz": "egyptinarabia", "as": "assami", "asa": "asu", "ase": "amerikkalainen viittomakieli", "ast": "asturia", "av": "avaari", "avk": "kotava", "awa": "awadhi", "ay": "aimara", "az": "azeri", "ba": "baškiiri", "bal": "belutši", "ban": "bali", "bar": "baijeri", "bas": "basaa", "bax": "bamum", "bbc": "batak-toba", "bbj": "ghomala", "be": "valkovenäjä", "bej": "bedža", "bem": "bemba", "bew": "betawi", "bez": "bena", "bfd": "fut", "bfq": "badaga", "bg": "bulgaria", "bgn": "länsibelutši", "bho": "bhodžpuri", "bi": "bislama", "bik": "bikol", "bin": "bini", "bjn": "banjar", "bkm": "kom", "bla": "siksika", "bm": "bambara", "bn": "bengali", "bo": "tiibet", "bpy": "bišnupria", "bqi": "bahtiari", "br": "bretoni", "bra": "bradž", "brh": "brahui", "brx": "bodo", "bs": "bosnia", "bss": "koose", "bua": "burjaatti", "bug": "bugi", "bum": "bulu", "byn": "bilin", "byv": "medumba", "ca": "katalaani", "cad": "caddo", "car": "karibi", "cay": "cayuga", "cch": "atsam", "ccp": "chakma", "ce": "tšetšeeni", "ceb": "cebuano", "cgg": "kiga", "ch": "tšamorro", "chb": "tšibtša", "chg": "tšagatai", "chk": "chuuk", "chm": "mari", "chn": "chinook-jargon", "cho": "choctaw", "chp": "chipewyan", "chr": "cherokee", "chy": "cheyenne", "ckb": "sorani", "co": "korsika", "cop": "kopti", "cps": "capiznon", "cr": "cree", "crh": "krimintataari", "crs": "seychellienkreoli", "cs": "tšekki", "csb": "kašubi", "cu": "kirkkoslaavi", "cv": "tšuvassi", "cy": "kymri", "da": "tanska", "dak": "dakota", "dar": "dargi", "dav": "taita", "de": "saksa", "de-AT": "itävallansaksa", "de-CH": "sveitsinyläsaksa", "del": "delaware", "den": "slevi", "dgr": "dogrib", "din": "dinka", "dje": "djerma", "doi": "dogri", "dsb": "alasorbi", "dtp": "dusun", "dua": "duala", "dum": "keskihollanti", "dv": "divehi", "dyo": "jola-fonyi", "dyu": "djula", "dz": "dzongkha", "dzg": "dazaga", "ebu": "embu", "ee": "ewe", "efi": "efik", "egl": "emilia", "egy": "muinaisegypti", "eka": "ekajuk", "el": "kreikka", "elx": "elami", "en": "englanti", "en-AU": "australianenglanti", "en-CA": "kanadanenglanti", "en-GB": "britannianenglanti", "en-US": "amerikanenglanti", "enm": "keskienglanti", "eo": "esperanto", "es": "espanja", "es-419": "amerikanespanja", "es-ES": "euroopanespanja", "es-MX": "meksikonespanja", "esu": "alaskanjupik", "et": "viro", "eu": "baski", "ewo": "ewondo", "ext": "extremadura", "fa": "persia", "fan": "fang", "fat": "fanti", "ff": "fulani", "fi": "suomi", "fil": "filipino", "fit": "meänkieli", "fj": "fidži", "fo": "fääri", "fr": "ranska", "fr-CA": "kanadanranska", "fr-CH": "sveitsinranska", "frc": "cajunranska", "frm": "keskiranska", "fro": "muinaisranska", "frp": "arpitaani", "frr": "pohjoisfriisi", "frs": "itäfriisi", "fur": "friuli", "fy": "länsifriisi", "ga": "iiri", "gaa": "ga", "gag": "gagauzi", "gan": "gan-kiina", "gay": "gajo", "gba": "gbaja", "gbz": "zoroastrialaisdari", "gd": "gaeli", "gez": "ge’ez", "gil": "kiribati", "gl": "galicia", "glk": "gilaki", "gmh": "keskiyläsaksa", "gn": "guarani", "goh": "muinaisyläsaksa", "gom": "goankonkani", "gon": "gondi", "gor": "gorontalo", "got": "gootti", "grb": "grebo", "grc": "muinaiskreikka", "gsw": "sveitsinsaksa", "gu": "gudžarati", "guc": "wayuu", "gur": "frafra", "guz": "gusii", "gv": "manksi", "gwi": "gwitšin", "ha": "hausa", "hai": "haida", "hak": "hakka-kiina", "haw": "havaiji", "he": "heprea", "hi": "hindi", "hif": "fidžinhindi", "hil": "hiligaino", "hit": "heetti", "hmn": "hmong", "ho": "hiri-motu", "hr": "kroatia", "hsb": "yläsorbi", "hsn": "xiang-kiina", "ht": "haiti", "hu": "unkari", "hup": "hupa", "hy": "armenia", "hz": "herero", "ia": "interlingua", "iba": "iban", "ibb": "ibibio", "id": "indonesia", "ie": "interlingue", "ig": "igbo", "ii": "sichuanin-yi", "ik": "inupiaq", "ilo": "iloko", "inh": "inguuši", "io": "ido", "is": "islanti", "it": "italia", "iu": "inuktitut", "izh": "inkeroinen", "ja": "japani", "jam": "jamaikankreolienglanti", "jbo": "lojban", "jgo": "ngomba", "jmc": "machame", "jpr": "juutalaispersia", "jrb": "juutalaisarabia", "jut": "juutti", "jv": "jaava", "ka": "georgia", "kaa": "karakalpakki", "kab": "kabyyli", "kac": "katšin", "kaj": "jju", "kam": "kamba", "kaw": "kavi", "kbd": "kabardi", "kbl": "kanembu", "kcg": "tyap", "kde": "makonde", "kea": "kapverdenkreoli", "ken": "kenyang", "kfo": "norsunluurannikonkoro", "kg": "kongo", "kgp": "kaingang", "kha": "khasi", "kho": "khotani", "khq": "koyra chiini", "khw": "khowar", "ki": "kikuju", "kiu": "kirmanjki", "kj": "kuanjama", "kk": "kazakki", "kkj": "kako", "kl": "kalaallisut", "kln": "kalenjin", "km": "khmer", "kmb": "kimbundu", "kn": "kannada", "ko": "korea", "koi": "komipermjakki", "kok": "konkani", "kos": "kosrae", "kpe": "kpelle", "kr": "kanuri", "krc": "karatšai-balkaari", "kri": "krio", "krj": "kinaray-a", "krl": "karjala", "kru": "kurukh", "ks": "kašmiri", "ksb": "shambala", "ksf": "bafia", "ksh": "kölsch", "ku": "kurdi", "kum": "kumykki", "kut": "kutenai", "kv": "komi", "kw": "korni", "ky": "kirgiisi", "la": "latina", "lad": "ladino", "lag": "lango", "lah": "lahnda", "lam": "lamba", "lb": "luxemburg", "lez": "lezgi", "lfn": "lingua franca nova", "lg": "ganda", "li": "limburg", "lij": "liguuri", "liv": "liivi", "lkt": "lakota", "lmo": "lombardi", "ln": "lingala", "lo": "lao", "lol": "mongo", "lou": "louisianankreoli", "loz": "lozi", "lrc": "pohjoisluri", "lt": "liettua", "ltg": "latgalli", "lu": "katanganluba", "lua": "luluanluba", "lui": "luiseño", "lun": "lunda", "lus": "lusai", "luy": "luhya", "lv": "latvia", "lzh": "klassinen kiina", "lzz": "lazi", "mad": "madura", "maf": "mafa", "mag": "magahi", "mai": "maithili", "mak": "makassar", "man": "mandingo", "mas": "maasai", "mde": "maba", "mdf": "mokša", "mdr": "mandar", "men": "mende", "mer": "meru", "mfe": "morisyen", "mg": "malagassi", "mga": "keski-iiri", "mgh": "makua-meetto", "mgo": "meta’", "mh": "marshall", "mi": "maori", "mic": "micmac", "min": "minangkabau", "mk": "makedonia", "ml": "malajalam", "mn": "mongoli", "mnc": "mantšu", "mni": "manipuri", "moh": "mohawk", "mos": "mossi", "mr": "marathi", "mrj": "vuorimari", "ms": "malaiji", "mt": "malta", "mua": "mundang", "mus": "creek", "mwl": "mirandeesi", "mwr": "marwari", "mwv": "mentawai", "my": "burma", "mye": "myene", "myv": "ersä", "mzn": "mazandarani", "na": "nauru", "nan": "min nan -kiina", "nap": "napoli", "naq": "nama", "nb": "norjan bokmål", "nd": "pohjois-ndebele", "nds": "alasaksa", "nds-NL": "alankomaidenalasaksa", "ne": "nepali", "new": "newari", "ng": "ndonga", "nia": "nias", "niu": "niue", "njo": "ao naga", "nl": "hollanti", "nl-BE": "flaami", "nmg": "kwasio", "nn": "norjan nynorsk", "nnh": "ngiemboon", "no": "norja", "nog": "nogai", "non": "muinaisnorja", "nov": "novial", "nqo": "n’ko", "nr": "etelä-ndebele", "nso": "pohjoissotho", "nus": "nuer", "nv": "navajo", "nwc": "klassinen newari", "ny": "njandža", "nym": "nyamwezi", "nyn": "nyankole", "nyo": "nyoro", "nzi": "nzima", "oc": "oksitaani", "oj": "odžibwa", "om": "oromo", "or": "orija", "os": "osseetti", "osa": "osage", "ota": "osmani", "pa": "pandžabi", "pag": "pangasinan", "pal": "pahlavi", "pam": "pampanga", "pap": "papiamentu", "pau": "palau", "pcd": "picardi", "pcm": "nigerianpidgin", "pdc": "pennsylvaniansaksa", "pdt": "plautdietsch", "peo": "muinaispersia", "pfl": "pfaltsi", "phn": "foinikia", "pi": "paali", "pl": "puola", "pms": "piemonte", "pnt": "pontoksenkreikka", "pon": "pohnpei", "prg": "muinaispreussi", "pro": "muinaisprovensaali", "ps": "paštu", "pt": "portugali", "pt-BR": "brasilianportugali", "pt-PT": "euroopanportugali", "qu": "ketšua", "quc": "kʼicheʼ", "qug": "chimborazonylänköketšua", "raj": "radžastani", "rap": "rapanui", "rar": "rarotonga", "rgn": "romagnoli", "rif": "tarifit", "rm": "retoromaani", "rn": "rundi", "ro": "romania", "ro-MD": "moldova", "rof": "rombo", "rom": "romani", "root": "juuri", "rtm": "rotuma", "ru": "venäjä", "rue": "ruteeni", "rug": "roviana", "rup": "aromania", "rw": "ruanda", "rwk": "rwa", "sa": "sanskrit", "sad": "sandawe", "sah": "jakuutti", "sam": "samarianaramea", "saq": "samburu", "sas": "sasak", "sat": "santali", "saz": "sauraštri", "sba": "ngambay", "sbp": "sangu", "sc": "sardi", "scn": "sisilia", "sco": "skotti", "sd": "sindhi", "sdc": "sassarinsardi", "sdh": "eteläkurdi", "se": "pohjoissaame", "see": "seneca", "seh": "sena", "sei": "seri", "sel": "selkuppi", "ses": "koyraboro senni", "sg": "sango", "sga": "muinaisiiri", "sgs": "samogiitti", "sh": "serbokroaatti", "shi": "tašelhit", "shn": "shan", "shu": "tšadinarabia", "si": "sinhala", "sid": "sidamo", "sk": "slovakki", "sl": "sloveeni", "sli": "sleesiansaksa", "sly": "selayar", "sm": "samoa", "sma": "eteläsaame", "smj": "luulajansaame", "smn": "inarinsaame", "sms": "koltansaame", "sn": "šona", "snk": "soninke", "so": "somali", "sog": "sogdi", "sq": "albania", "sr": "serbia", "srn": "sranan", "srr": "serer", "ss": "swazi", "ssy": "saho", "st": "eteläsotho", "stq": "saterlandinfriisi", "su": "sunda", "suk": "sukuma", "sus": "susu", "sux": "sumeri", "sv": "ruotsi", "sw": "swahili", "sw-CD": "kingwana", "swb": "komori", "syc": "muinaissyyria", "syr": "syyria", "szl": "sleesia", "ta": "tamili", "tcy": "tulu", "te": "telugu", "tem": "temne", "teo": "teso", "ter": "tereno", "tet": "tetum", "tg": "tadžikki", "th": "thai", "ti": "tigrinja", "tig": "tigre", "tk": "turkmeeni", "tkl": "tokelau", "tkr": "tsahuri", "tl": "tagalog", "tlh": "klingon", "tli": "tlingit", "tly": "tališi", "tmh": "tamašek", "tn": "tswana", "to": "tonga", "tog": "malawintonga", "tpi": "tok-pisin", "tr": "turkki", "tru": "turojo", "trv": "taroko", "ts": "tsonga", "tsd": "tsakonia", "tsi": "tsimši", "tt": "tataari", "ttt": "tati", "tum": "tumbuka", "tvl": "tuvalu", "tw": "twi", "twq": "tasawaq", "ty": "tahiti", "tyv": "tuva", "tzm": "keskiatlaksentamazight", "udm": "udmurtti", "ug": "uiguuri", "uga": "ugarit", "uk": "ukraina", "umb": "mbundu", "ur": "urdu", "uz": "uzbekki", "ve": "venda", "vec": "venetsia", "vep": "vepsä", "vi": "vietnam", "vls": "länsiflaami", "vmf": "maininfrankki", "vo": "volapük", "vot": "vatja", "vro": "võro", "vun": "vunjo", "wa": "valloni", "wae": "walser", "wal": "wolaitta", "war": "waray", "was": "washo", "wbp": "warlpiri", "wo": "wolof", "wuu": "wu-kiina", "xal": "kalmukki", "xh": "xhosa", "xmf": "mingreli", "xog": "soga", "yao": "jao", "yap": "japi", "yav": "yangben", "ybb": "yemba", "yi": "jiddiš", "yo": "joruba", "yrl": "ñeengatú", "yue": "kantoninkiina", "za": "zhuang", "zap": "zapoteekki", "zbl": "blisskieli", "zea": "seelanti", "zen": "zenaga", "zgh": "vakioitu tamazight", "zh": "kiina", "zh-Hans": "yksinkertaistettu kiina", "zh-Hant": "perinteinen kiina", "zu": "zulu", "zun": "zuni", "zza": "zaza"}, "scriptNames": {"Cyrl": "kyrillinen", "Latn": "latinalainen", "Arab": "arabialainen", "Guru": "gurmukhi", "Tfng": "tifinagh", "Vaii": "vailainen", "Hans": "yksinkertaistettu", "Hant": "perinteinen"}}, + "fr": {"rtl": false, "languageNames": {"aa": "afar", "ab": "abkhaze", "ace": "aceh", "ach": "acoli", "ada": "adangme", "ady": "adyguéen", "ae": "avestique", "aeb": "arabe tunisien", "af": "afrikaans", "afh": "afrihili", "agq": "aghem", "ain": "aïnou", "ak": "akan", "akk": "akkadien", "akz": "alabama", "ale": "aléoute", "aln": "guègue", "alt": "altaï du Sud", "am": "amharique", "an": "aragonais", "ang": "ancien anglais", "anp": "angika", "ar": "arabe", "ar-001": "arabe standard moderne", "arc": "araméen", "arn": "mapuche", "aro": "araona", "arp": "arapaho", "arq": "arabe algérien", "ars": "arabe najdi", "arw": "arawak", "ary": "arabe marocain", "arz": "arabe égyptien", "as": "assamais", "asa": "asu", "ase": "langue des signes américaine", "ast": "asturien", "av": "avar", "avk": "kotava", "awa": "awadhi", "ay": "aymara", "az": "azéri", "ba": "bachkir", "bal": "baloutchi", "ban": "balinais", "bar": "bavarois", "bas": "bassa", "bax": "bamoun", "bbc": "batak toba", "bbj": "ghomalaʼ", "be": "biélorusse", "bej": "bedja", "bem": "bemba", "bew": "betawi", "bez": "béna", "bfd": "bafut", "bfq": "badaga", "bg": "bulgare", "bgn": "baloutchi occidental", "bho": "bhodjpouri", "bi": "bichelamar", "bik": "bikol", "bin": "bini", "bjn": "banjar", "bkm": "kom", "bla": "siksika", "bm": "bambara", "bn": "bengali", "bo": "tibétain", "bpy": "bishnupriya", "bqi": "bakhtiari", "br": "breton", "bra": "braj", "brh": "brahoui", "brx": "bodo", "bs": "bosniaque", "bss": "akoose", "bua": "bouriate", "bug": "bugi", "bum": "boulou", "byn": "blin", "byv": "médumba", "ca": "catalan", "cad": "caddo", "car": "caribe", "cay": "cayuga", "cch": "atsam", "ccp": "changma kodha", "ce": "tchétchène", "ceb": "cebuano", "cgg": "kiga", "ch": "chamorro", "chb": "chibcha", "chg": "tchaghataï", "chk": "chuuk", "chm": "mari", "chn": "jargon chinook", "cho": "choctaw", "chp": "chipewyan", "chr": "cherokee", "chy": "cheyenne", "ckb": "sorani", "co": "corse", "cop": "copte", "cps": "capiznon", "cr": "cree", "crh": "turc de Crimée", "crs": "créole seychellois", "cs": "tchèque", "csb": "kachoube", "cu": "slavon d’église", "cv": "tchouvache", "cy": "gallois", "da": "danois", "dak": "dakota", "dar": "dargwa", "dav": "taita", "de": "allemand", "de-AT": "allemand autrichien", "de-CH": "allemand suisse", "del": "delaware", "den": "esclave", "dgr": "dogrib", "din": "dinka", "dje": "zarma", "doi": "dogri", "dsb": "bas-sorabe", "dtp": "dusun central", "dua": "douala", "dum": "moyen néerlandais", "dv": "maldivien", "dyo": "diola-fogny", "dyu": "dioula", "dz": "dzongkha", "dzg": "dazaga", "ebu": "embou", "ee": "éwé", "efi": "éfik", "egl": "émilien", "egy": "égyptien ancien", "eka": "ékadjouk", "el": "grec", "elx": "élamite", "en": "anglais", "en-AU": "anglais australien", "en-CA": "anglais canadien", "en-GB": "anglais britannique", "en-US": "anglais américain", "enm": "moyen anglais", "eo": "espéranto", "es": "espagnol", "es-419": "espagnol d’Amérique latine", "es-ES": "espagnol d’Espagne", "es-MX": "espagnol du Mexique", "esu": "youpik central", "et": "estonien", "eu": "basque", "ewo": "éwondo", "ext": "estrémègne", "fa": "persan", "fan": "fang", "fat": "fanti", "ff": "peul", "fi": "finnois", "fil": "filipino", "fit": "finnois tornédalien", "fj": "fidjien", "fo": "féroïen", "fr": "français", "fr-CA": "français canadien", "fr-CH": "français suisse", "frc": "français cadien", "frm": "moyen français", "fro": "ancien français", "frp": "francoprovençal", "frr": "frison du Nord", "frs": "frison oriental", "fur": "frioulan", "fy": "frison occidental", "ga": "irlandais", "gaa": "ga", "gag": "gagaouze", "gay": "gayo", "gba": "gbaya", "gbz": "dari zoroastrien", "gd": "gaélique écossais", "gez": "guèze", "gil": "gilbertin", "gl": "galicien", "glk": "gilaki", "gmh": "moyen haut-allemand", "gn": "guarani", "goh": "ancien haut allemand", "gom": "konkani de Goa", "gon": "gondi", "gor": "gorontalo", "got": "gotique", "grb": "grebo", "grc": "grec ancien", "gsw": "suisse allemand", "gu": "goudjerati", "guc": "wayuu", "gur": "gurenne", "guz": "gusii", "gv": "mannois", "gwi": "gwichʼin", "ha": "haoussa", "hai": "haida", "hak": "hakka", "haw": "hawaïen", "he": "hébreu", "hi": "hindi", "hif": "hindi fidjien", "hil": "hiligaynon", "hit": "hittite", "hmn": "hmong", "ho": "hiri motu", "hr": "croate", "hsb": "haut-sorabe", "hsn": "xiang", "ht": "créole haïtien", "hu": "hongrois", "hup": "hupa", "hy": "arménien", "hz": "héréro", "ia": "interlingua", "iba": "iban", "ibb": "ibibio", "id": "indonésien", "ie": "interlingue", "ig": "igbo", "ii": "yi du Sichuan", "ik": "inupiaq", "ilo": "ilocano", "inh": "ingouche", "io": "ido", "is": "islandais", "it": "italien", "iu": "inuktitut", "izh": "ingrien", "ja": "japonais", "jam": "créole jamaïcain", "jbo": "lojban", "jgo": "ngomba", "jmc": "matchamé", "jpr": "judéo-persan", "jrb": "judéo-arabe", "jut": "jute", "jv": "javanais", "ka": "géorgien", "kaa": "karakalpak", "kab": "kabyle", "kac": "kachin", "kaj": "jju", "kam": "kamba", "kaw": "kawi", "kbd": "kabarde", "kbl": "kanembou", "kcg": "tyap", "kde": "makondé", "kea": "capverdien", "ken": "kényang", "kfo": "koro", "kg": "kikongo", "kgp": "caingangue", "kha": "khasi", "kho": "khotanais", "khq": "koyra chiini", "khw": "khowar", "ki": "kikuyu", "kiu": "kirmanjki", "kj": "kuanyama", "kk": "kazakh", "kkj": "kako", "kl": "groenlandais", "kln": "kalendjin", "km": "khmer", "kmb": "kimboundou", "kn": "kannada", "ko": "coréen", "koi": "komi-permiak", "kok": "konkani", "kos": "kosraéen", "kpe": "kpellé", "kr": "kanouri", "krc": "karatchaï balkar", "kri": "krio", "krj": "kinaray-a", "krl": "carélien", "kru": "kouroukh", "ks": "cachemiri", "ksb": "shambala", "ksf": "bafia", "ksh": "francique ripuaire", "ku": "kurde", "kum": "koumyk", "kut": "kutenai", "kv": "komi", "kw": "cornique", "ky": "kirghize", "la": "latin", "lad": "ladino", "lag": "langi", "lah": "lahnda", "lam": "lamba", "lb": "luxembourgeois", "lez": "lezghien", "lfn": "lingua franca nova", "lg": "ganda", "li": "limbourgeois", "lij": "ligure", "liv": "livonien", "lkt": "lakota", "lmo": "lombard", "ln": "lingala", "lo": "lao", "lol": "mongo", "lou": "créole louisianais", "loz": "lozi", "lrc": "lori du Nord", "lt": "lituanien", "ltg": "latgalien", "lu": "luba-katanga (kiluba)", "lua": "luba-kasaï (ciluba)", "lui": "luiseño", "lun": "lunda", "lus": "lushaï", "luy": "luyia", "lv": "letton", "lzh": "chinois littéraire", "lzz": "laze", "mad": "madurais", "maf": "mafa", "mag": "magahi", "mai": "maïthili", "mak": "makassar", "man": "mandingue", "mas": "maasaï", "mde": "maba", "mdf": "mokcha", "mdr": "mandar", "men": "mendé", "mer": "meru", "mfe": "créole mauricien", "mg": "malgache", "mga": "moyen irlandais", "mgh": "makua", "mgo": "metaʼ", "mh": "marshallais", "mi": "maori", "mic": "micmac", "min": "minangkabau", "mk": "macédonien", "ml": "malayalam", "mn": "mongol", "mnc": "mandchou", "mni": "manipuri", "moh": "mohawk", "mos": "moré", "mr": "marathi", "mrj": "mari occidental", "ms": "malais", "mt": "maltais", "mua": "moundang", "mus": "creek", "mwl": "mirandais", "mwr": "marwarî", "mwv": "mentawaï", "my": "birman", "mye": "myènè", "myv": "erzya", "mzn": "mazandérani", "na": "nauruan", "nan": "minnan", "nap": "napolitain", "naq": "nama", "nb": "norvégien bokmål", "nd": "ndébélé du Nord", "nds": "bas-allemand", "nds-NL": "bas-saxon néerlandais", "ne": "népalais", "new": "newari", "ng": "ndonga", "nia": "niha", "niu": "niuéen", "njo": "Ao", "nl": "néerlandais", "nl-BE": "flamand", "nmg": "ngoumba", "nn": "norvégien nynorsk", "nnh": "ngiemboon", "no": "norvégien", "nog": "nogaï", "non": "vieux norrois", "nov": "novial", "nqo": "n’ko", "nr": "ndébélé du Sud", "nso": "sotho du Nord", "nus": "nuer", "nv": "navajo", "nwc": "newarî classique", "ny": "chewa", "nym": "nyamwezi", "nyn": "nyankolé", "nyo": "nyoro", "nzi": "nzema", "oc": "occitan", "oj": "ojibwa", "om": "oromo", "or": "odia", "os": "ossète", "osa": "osage", "ota": "turc ottoman", "pa": "pendjabi", "pag": "pangasinan", "pal": "pahlavi", "pam": "pampangan", "pap": "papiamento", "pau": "palau", "pcd": "picard", "pcm": "pidgin nigérian", "pdc": "pennsilfaanisch", "pdt": "bas-prussien", "peo": "persan ancien", "pfl": "allemand palatin", "phn": "phénicien", "pi": "pali", "pl": "polonais", "pms": "piémontais", "pnt": "pontique", "pon": "pohnpei", "prg": "prussien", "pro": "provençal ancien", "ps": "pachto", "pt": "portugais", "pt-BR": "portugais brésilien", "pt-PT": "portugais européen", "qu": "quechua", "quc": "quiché", "qug": "quichua du Haut-Chimborazo", "raj": "rajasthani", "rap": "rapanui", "rar": "rarotongien", "rgn": "romagnol", "rif": "rifain", "rm": "romanche", "rn": "roundi", "ro": "roumain", "ro-MD": "moldave", "rof": "rombo", "rom": "romani", "root": "racine", "rtm": "rotuman", "ru": "russe", "rue": "ruthène", "rug": "roviana", "rup": "aroumain", "rw": "kinyarwanda", "rwk": "rwa", "sa": "sanskrit", "sad": "sandawe", "sah": "iakoute", "sam": "araméen samaritain", "saq": "samburu", "sas": "sasak", "sat": "santali", "saz": "saurashtra", "sba": "ngambay", "sbp": "isangu", "sc": "sarde", "scn": "sicilien", "sco": "écossais", "sd": "sindhi", "sdc": "sarde sassarais", "sdh": "kurde du Sud", "se": "same du Nord", "see": "seneca", "seh": "cisena", "sei": "séri", "sel": "selkoupe", "ses": "koyraboro senni", "sg": "sango", "sga": "ancien irlandais", "sgs": "samogitien", "sh": "serbo-croate", "shi": "chleuh", "shn": "shan", "shu": "arabe tchadien", "si": "cingalais", "sid": "sidamo", "sk": "slovaque", "sl": "slovène", "sli": "bas-silésien", "sly": "sélayar", "sm": "samoan", "sma": "same du Sud", "smj": "same de Lule", "smn": "same d’Inari", "sms": "same skolt", "sn": "shona", "snk": "soninké", "so": "somali", "sog": "sogdien", "sq": "albanais", "sr": "serbe", "srn": "sranan tongo", "srr": "sérère", "ss": "swati", "ssy": "saho", "st": "sotho du Sud", "stq": "saterlandais", "su": "soundanais", "suk": "soukouma", "sus": "soussou", "sux": "sumérien", "sv": "suédois", "sw": "swahili", "sw-CD": "swahili du Congo", "swb": "comorien", "syc": "syriaque classique", "syr": "syriaque", "szl": "silésien", "ta": "tamoul", "tcy": "toulou", "te": "télougou", "tem": "timné", "teo": "teso", "ter": "tereno", "tet": "tétoum", "tg": "tadjik", "th": "thaï", "ti": "tigrigna", "tig": "tigré", "tk": "turkmène", "tkl": "tokelau", "tkr": "tsakhour", "tl": "tagalog", "tlh": "klingon", "tli": "tlingit", "tly": "talysh", "tmh": "tamacheq", "tn": "tswana", "to": "tongien", "tog": "tonga nyasa", "tpi": "tok pisin", "tr": "turc", "tru": "touroyo", "trv": "taroko", "ts": "tsonga", "tsd": "tsakonien", "tsi": "tsimshian", "tt": "tatar", "ttt": "tati caucasien", "tum": "tumbuka", "tvl": "tuvalu", "tw": "twi", "twq": "tasawaq", "ty": "tahitien", "tyv": "touvain", "tzm": "amazighe de l’Atlas central", "udm": "oudmourte", "ug": "ouïghour", "uga": "ougaritique", "uk": "ukrainien", "umb": "umbundu", "ur": "ourdou", "uz": "ouzbek", "vai": "vaï", "ve": "venda", "vec": "vénitien", "vep": "vepse", "vi": "vietnamien", "vls": "flamand occidental", "vmf": "franconien du Main", "vo": "volapük", "vot": "vote", "vro": "võro", "vun": "vunjo", "wa": "wallon", "wae": "walser", "wal": "walamo", "war": "waray", "was": "washo", "wbp": "warlpiri", "wo": "wolof", "wuu": "wu", "xal": "kalmouk", "xh": "xhosa", "xmf": "mingrélien", "xog": "soga", "yap": "yapois", "yav": "yangben", "ybb": "yemba", "yi": "yiddish", "yo": "yoruba", "yrl": "nheengatou", "yue": "cantonais", "za": "zhuang", "zap": "zapotèque", "zbl": "symboles Bliss", "zea": "zélandais", "zen": "zenaga", "zgh": "amazighe standard marocain", "zh": "chinois", "zh-Hans": "chinois simplifié", "zh-Hant": "chinois traditionnel", "zu": "zoulou", "zun": "zuñi", "zza": "zazaki"}, "scriptNames": {"Cyrl": "cyrillique", "Latn": "latin", "Arab": "arabe", "Guru": "gourmoukhî", "Tfng": "tifinagh", "Vaii": "vaï", "Hans": "simplifié", "Hant": "traditionnel"}}, + "gan": {"rtl": false, "languageNames": {}, "scriptNames": {}}, + "gl": {"rtl": false, "languageNames": {"aa": "afar", "ab": "abkhazo", "ace": "achinés", "ach": "acholí", "ada": "adangme", "ady": "adigueo", "af": "afrikaans", "agq": "aghem", "ain": "ainu", "ak": "akan", "ale": "aleutiano", "alt": "altai meridional", "am": "amhárico", "an": "aragonés", "anp": "angika", "ar": "árabe", "ar-001": "árabe estándar moderno", "arc": "arameo", "arn": "mapuche", "arp": "arapaho", "as": "assamés", "asa": "asu", "ast": "asturiano", "av": "avar", "awa": "awadhi", "ay": "aimará", "az": "acerbaixano", "ba": "baxkir", "ban": "balinés", "bas": "basaa", "be": "bielorruso", "bem": "bemba", "bez": "bena", "bg": "búlgaro", "bgn": "baluchi occidental", "bho": "bhojpuri", "bi": "bislama", "bin": "bini", "bla": "siksiká", "bm": "bambara", "bn": "bengalí", "bo": "tibetano", "br": "bretón", "brx": "bodo", "bs": "bosníaco", "bug": "buginés", "byn": "blin", "ca": "catalán", "ce": "checheno", "ceb": "cebuano", "cgg": "kiga", "ch": "chamorro", "chk": "chuuk", "chm": "mari", "cho": "choctaw", "chr": "cherokee", "chy": "cheyenne", "ckb": "kurdo soraní", "co": "corso", "crs": "seselwa (crioulo das Seychelles)", "cs": "checo", "cu": "eslavo eclesiástico", "cv": "chuvaxo", "cy": "galés", "da": "dinamarqués", "dak": "dakota", "dar": "dargwa", "dav": "taita", "de": "alemán", "de-AT": "alemán austríaco", "de-CH": "alto alemán suízo", "dgr": "dogrib", "dje": "zarma", "dsb": "baixo sorbio", "dua": "duala", "dv": "divehi", "dyo": "jola-fonyi", "dz": "dzongkha", "dzg": "dazaga", "ebu": "embu", "ee": "ewe", "efi": "efik", "egy": "exipcio antigo", "eka": "ekajuk", "el": "grego", "en": "inglés", "en-AU": "inglés australiano", "en-CA": "inglés canadense", "en-GB": "inglés británico", "en-US": "inglés estadounidense", "eo": "esperanto", "es": "español", "es-419": "español de América", "es-ES": "español de España", "es-MX": "español de México", "et": "estoniano", "eu": "éuscaro", "ewo": "ewondo", "fa": "persa", "ff": "fula", "fi": "finés", "fil": "filipino", "fj": "fixiano", "fo": "feroés", "fr": "francés", "fr-CA": "francés canadense", "fr-CH": "francés suízo", "fur": "friulano", "fy": "frisón occidental", "ga": "irlandés", "gaa": "ga", "gag": "gagauz", "gd": "gaélico escocés", "gez": "ge’ez", "gil": "kiribatiano", "gl": "galego", "gn": "guaraní", "gor": "gorontalo", "grc": "grego antigo", "gsw": "alemán suízo", "gu": "guxarati", "guz": "gusii", "gv": "manx", "gwi": "gwichʼin", "ha": "hausa", "haw": "hawaiano", "he": "hebreo", "hi": "hindi", "hil": "hiligaynon", "hmn": "hmong", "hr": "croata", "hsb": "alto sorbio", "ht": "crioulo haitiano", "hu": "húngaro", "hup": "hupa", "hy": "armenio", "hz": "herero", "ia": "interlingua", "iba": "iban", "ibb": "ibibio", "id": "indonesio", "ig": "igbo", "ii": "yi sichuanés", "ilo": "ilocano", "inh": "inguxo", "io": "ido", "is": "islandés", "it": "italiano", "iu": "inuktitut", "ja": "xaponés", "jbo": "lojban", "jgo": "ngomba", "jmc": "machame", "jv": "xavanés", "ka": "xeorxiano", "kab": "cabila", "kac": "kachin", "kaj": "jju", "kam": "kamba", "kbd": "cabardiano", "kcg": "tyap", "kde": "makonde", "kea": "caboverdiano", "kfo": "koro", "kg": "kongo", "kha": "khasi", "khq": "koyra chiini", "ki": "kikuyu", "kj": "kuanyama", "kk": "casaco", "kkj": "kako", "kl": "groenlandés", "kln": "kalenjin", "km": "khmer", "kmb": "kimbundu", "kn": "kannará", "ko": "coreano", "koi": "komi permio", "kok": "konkani", "kpe": "kpelle", "kr": "kanuri", "krc": "carachaio-bálcara", "krl": "carelio", "kru": "kurukh", "ks": "caxemirés", "ksb": "shambala", "ksf": "bafia", "ksh": "kölsch", "ku": "kurdo", "kum": "kumyk", "kv": "komi", "kw": "córnico", "ky": "kirguiz", "la": "latín", "lad": "ladino", "lag": "langi", "lb": "luxemburgués", "lez": "lezguio", "lg": "ganda", "li": "limburgués", "lkt": "lakota", "ln": "lingala", "lo": "laosiano", "loz": "lozi", "lrc": "luri setentrional", "lt": "lituano", "lu": "luba-katanga", "lua": "luba-lulua", "lun": "lunda", "lus": "mizo", "luy": "luyia", "lv": "letón", "mad": "madurés", "mag": "magahi", "mai": "maithili", "mak": "makasar", "mas": "masai", "mdf": "moksha", "men": "mende", "mer": "meru", "mfe": "crioulo mauriciano", "mg": "malgaxe", "mgh": "makhuwa-meetto", "mgo": "meta’", "mh": "marshalés", "mi": "maorí", "mic": "micmac", "min": "minangkabau", "mk": "macedonio", "ml": "malabar", "mn": "mongol", "mni": "manipuri", "moh": "mohawk", "mos": "mossi", "mr": "marathi", "ms": "malaio", "mt": "maltés", "mua": "mundang", "mus": "creek", "mwl": "mirandés", "my": "birmano", "myv": "erzya", "mzn": "mazandaraní", "na": "nauruano", "nap": "napolitano", "naq": "nama", "nb": "noruegués bokmål", "nd": "ndebele setentrional", "nds": "baixo alemán", "nds-NL": "baixo saxón", "ne": "nepalí", "new": "newari", "ng": "ndonga", "nia": "nias", "niu": "niueano", "nl": "neerlandés", "nl-BE": "flamengo", "nmg": "kwasio", "nn": "noruegués nynorsk", "nnh": "ngiemboon", "no": "noruegués", "nog": "nogai", "nqo": "n’ko", "nr": "ndebele meridional", "nso": "sesotho do norte", "nus": "nuer", "nv": "navajo", "ny": "nyanja", "nyn": "nyankole", "oc": "occitano", "om": "oromo", "or": "odiá", "os": "ossetio", "pa": "panxabí", "pag": "pangasinan", "pam": "pampanga", "pap": "papiamento", "pau": "palauano", "pcm": "pidgin nixeriano", "pl": "polaco", "prg": "prusiano", "ps": "paxto", "pt": "portugués", "pt-BR": "portugués do Brasil", "pt-PT": "portugués de Portugal", "qu": "quechua", "quc": "quiché", "rap": "rapanui", "rar": "rarotongano", "rm": "romanche", "rn": "rundi", "ro": "romanés", "ro-MD": "moldavo", "rof": "rombo", "root": "raíz", "ru": "ruso", "rup": "aromanés", "rw": "kiñaruanda", "rwk": "rwa", "sa": "sánscrito", "sad": "sandawe", "sah": "iacuto", "saq": "samburu", "sat": "santali", "sba": "ngambay", "sbp": "sangu", "sc": "sardo", "scn": "siciliano", "sco": "escocés", "sd": "sindhi", "sdh": "kurdo meridional", "se": "saami setentrional", "seh": "sena", "ses": "koyraboro senni", "sg": "sango", "sh": "serbocroata", "shi": "tachelhit", "shn": "shan", "si": "cingalés", "sk": "eslovaco", "sl": "esloveno", "sm": "samoano", "sma": "saami meridional", "smj": "saami de Lule", "smn": "saami de Inari", "sms": "saami skolt", "sn": "shona", "snk": "soninke", "so": "somalí", "sq": "albanés", "sr": "serbio", "srn": "sranan tongo", "ss": "suazi", "ssy": "saho", "st": "sesotho", "su": "sundanés", "suk": "sukuma", "sv": "sueco", "sw": "suahili", "sw-CD": "suahili congolés", "swb": "comoriano", "syr": "siríaco", "ta": "támil", "te": "telugu", "tem": "temne", "teo": "teso", "tet": "tetun", "tg": "taxico", "th": "tailandés", "ti": "tigriña", "tig": "tigré", "tk": "turcomán", "tl": "tagalo", "tlh": "klingon", "tn": "tswana", "to": "tongano", "tpi": "tok pisin", "tr": "turco", "trv": "taroko", "ts": "tsonga", "tt": "tártaro", "tum": "tumbuka", "tvl": "tuvalés", "tw": "twi", "twq": "tasawaq", "ty": "tahitiano", "tyv": "tuvaniano", "tzm": "tamazight de Marrocos central", "udm": "udmurto", "ug": "uigur", "uk": "ucraíno", "umb": "umbundu", "ur": "urdú", "uz": "uzbeco", "ve": "venda", "vi": "vietnamita", "vo": "volapuk", "vun": "vunjo", "wa": "valón", "wae": "walser", "wal": "wolaytta", "war": "waray-waray", "wbp": "walrpiri", "wo": "wólof", "xal": "calmuco", "xh": "xhosa", "xog": "soga", "yav": "yangben", "ybb": "yemba", "yi": "yiddish", "yo": "ioruba", "yue": "cantonés", "zgh": "tamazight marroquí estándar", "zh": "chinés", "zh-Hans": "chinés simplificado", "zh-Hant": "chinés tradicional", "zu": "zulú", "zun": "zuni", "zza": "zazaki"}, "scriptNames": {"Cyrl": "cirílico", "Latn": "latino", "Arab": "árabe", "Guru": "gurmukhi", "Hans": "simplificado", "Hant": "tradicional"}}, + "gu": {"rtl": false, "languageNames": {"aa": "અફાર", "ab": "અબખાજિયન", "ace": "અચીની", "ach": "એકોલી", "ada": "અદાંગ્મી", "ady": "અદિઘે", "ae": "અવેસ્તન", "af": "આફ્રિકન્સ", "afh": "અફ્રિહિલી", "agq": "અઘેમ", "ain": "ઐનુ", "ak": "અકાન", "akk": "અક્કાદીયાન", "ale": "અલેઉત", "alt": "દક્ષિણ અલ્તાઇ", "am": "એમ્હારિક", "an": "અર્ગોનીઝ", "ang": "જુની અંગ્રેજી", "anp": "અંગીકા", "ar": "અરબી", "ar-001": "મોડર્ન સ્ટાન્ડર્ડ અરબી", "arc": "એરમૈક", "arn": "મેપુચે", "arp": "અરાપાહો", "arq": "આલ્જેરિયન અરબી", "arw": "અરાવક", "ary": "મોરોક્કન અરબી", "arz": "ઈજિપ્શિયન અરબી", "as": "આસામી", "asa": "અસુ", "ast": "અસ્તુરિયન", "av": "અવેરિક", "awa": "અવધી", "ay": "આયમારા", "az": "અઝરબૈજાની", "ba": "બશ્કીર", "bal": "બલૂચી", "ban": "બાલિનીસ", "bas": "બસા", "bax": "બામન", "be": "બેલારુશિયન", "bej": "બેજા", "bem": "બેમ્બા", "bez": "બેના", "bg": "બલ્ગેરિયન", "bgn": "પશ્ચિમી બાલોચી", "bho": "ભોજપુરી", "bi": "બિસ્લામા", "bik": "બિકોલ", "bin": "બિની", "bla": "સિક્સિકા", "bm": "બામ્બારા", "bn": "બાંગ્લા", "bo": "તિબેટીયન", "bpy": "બિષ્નુપ્રિયા", "br": "બ્રેટોન", "bra": "વ્રજ", "brh": "બ્રાહુઈ", "brx": "બોડો", "bs": "બોસ્નિયન", "bua": "બુરિયાત", "bug": "બુગિનીસ", "byn": "બ્લિન", "ca": "કતલાન", "cad": "કડ્ડો", "car": "કરિબ", "cch": "અત્સમ", "ce": "ચેચન", "ceb": "સિબુઆનો", "cgg": "ચિગા", "ch": "કેમોરો", "chb": "ચિબ્ચા", "chg": "છગાતાઇ", "chk": "ચૂકીસ", "chm": "મારી", "chn": "ચિનૂક જાર્ગન", "cho": "ચોક્તૌ", "chp": "શિપેવ્યાન", "chr": "શેરોકી", "chy": "શેયેન્ન", "ckb": "સેન્ટ્રલ કુર્દિશ", "co": "કોર્સિકન", "cop": "કોપ્ટિક", "cr": "ક્રી", "crh": "ક્રિમિયન તુર્કી", "crs": "સેસેલ્વા ક્રેઓલે ફ્રેન્ચ", "cs": "ચેક", "csb": "કાશુબિયન", "cu": "ચર્ચ સ્લાવિક", "cv": "ચૂવાશ", "cy": "વેલ્શ", "da": "ડેનિશ", "dak": "દાકોતા", "dar": "દાર્ગવા", "dav": "તૈતા", "de": "જર્મન", "de-AT": "ઓસ્ટ્રિઅન જર્મન", "de-CH": "સ્વિસ હાય જર્મન", "del": "દેલવેર", "den": "સ્લેવ", "dgr": "ડોગ્રિબ", "din": "દિન્કા", "dje": "ઝર્મા", "doi": "ડોગ્રી", "dsb": "લોઅર સોર્બિયન", "dua": "દુઆલા", "dum": "મધ્ય ડચ", "dv": "દિવેહી", "dyo": "જોલા-ફોન્યી", "dyu": "ડ્યુલા", "dz": "ડ્ઝોંગ્ખા", "dzg": "દાઝાગા", "ebu": "ઍમ્બુ", "ee": "ઈવ", "efi": "એફિક", "egy": "પ્રાચીન ઇજીપ્શિયન", "eka": "એકાજુક", "el": "ગ્રીક", "elx": "એલામાઇટ", "en": "અંગ્રેજી", "en-AU": "ઓસ્ટ્રેલિયન અંગ્રેજી", "en-CA": "કેનેડિયન અંગ્રેજી", "en-GB": "બ્રિટિશ અંગ્રેજી", "en-US": "અમેરિકન અંગ્રેજી", "enm": "મિડિલ અંગ્રેજી", "eo": "એસ્પેરાન્ટો", "es": "સ્પેનિશ", "es-419": "લેટિન અમેરિકન સ્પેનિશ", "es-ES": "યુરોપિયન સ્પેનિશ", "es-MX": "મેક્સિકન સ્પેનિશ", "et": "એસ્ટોનિયન", "eu": "બાસ્ક", "ewo": "ઇવોન્ડો", "fa": "ફારસી", "fan": "ફેંગ", "fat": "ફન્ટી", "ff": "ફુલાહ", "fi": "ફિનિશ", "fil": "ફિલિપિનો", "fj": "ફીજીયન", "fo": "ફોરિસ્ત", "fon": "ફોન", "fr": "ફ્રેન્ચ", "fr-CA": "કેનેડિયન ફ્રેંચ", "fr-CH": "સ્વિસ ફ્રેંચ", "frc": "કાજૂન ફ્રેન્ચ", "frm": "મિડિલ ફ્રેંચ", "fro": "જૂની ફ્રેંચ", "frr": "ઉત્તરીય ફ્રિશિયન", "frs": "પૂર્વ ફ્રિશિયન", "fur": "ફ્રિયુલિયાન", "fy": "પશ્ચિમી ફ્રિસિયન", "ga": "આઇરિશ", "gaa": "ગા", "gag": "ગાગાઝ", "gay": "ગાયો", "gba": "બાયા", "gbz": "ઝોરોસ્ટ્રિઅન દારી", "gd": "સ્કોટીસ ગેલિક", "gez": "ગીઝ", "gil": "જિલ્બરટીઝ", "gl": "ગેલિશિયન", "gmh": "મધ્ય હાઇ જર્મન", "gn": "ગુઆરાની", "goh": "જૂની હાઇ જર્મન", "gom": "ગોઅન કોંકણી", "gon": "ગોંડી", "gor": "ગોરોન્તાલો", "got": "ગોથિક", "grb": "ગ્રેબો", "grc": "પ્રાચીન ગ્રીક", "gsw": "સ્વિસ જર્મન", "gu": "ગુજરાતી", "guz": "ગુસી", "gv": "માંક્સ", "gwi": "ગ્વિચ’ઇન", "ha": "હૌસા", "hai": "હૈડા", "haw": "હવાઇયન", "he": "હીબ્રુ", "hi": "હિન્દી", "hif": "ફીજી હિંદી", "hil": "હિલિગેનોન", "hit": "હિટ્ટિતે", "hmn": "હમોંગ", "ho": "હિરી મોટૂ", "hr": "ક્રોએશિયન", "hsb": "અપર સોર્બિયન", "ht": "હૈતિઅન ક્રેઓલે", "hu": "હંગેરિયન", "hup": "હૂપા", "hy": "આર્મેનિયન", "hz": "હેરેરો", "ia": "ઇંટરલિંગુઆ", "iba": "ઇબાન", "ibb": "ઇબિબિઓ", "id": "ઇન્ડોનેશિયન", "ie": "ઇંટરલિંગ", "ig": "ઇગ્બો", "ii": "સિચુઆન યી", "ik": "ઇનુપિયાક", "ilo": "ઇલોકો", "inh": "ઇંગુશ", "io": "ઈડો", "is": "આઇસલેન્ડિક", "it": "ઇટાલિયન", "iu": "ઇનુકિટૂટ", "ja": "જાપાનીઝ", "jbo": "લોજ્બાન", "jgo": "નગોમ્બા", "jmc": "મકામે", "jpr": "જુદેઓ-પર્શિયન", "jrb": "જુદેઓ-અરબી", "jv": "જાવાનીસ", "ka": "જ્યોર્જિયન", "kaa": "કારા-કલ્પક", "kab": "કબાઇલ", "kac": "કાચિન", "kaj": "જ્જુ", "kam": "કમ્બા", "kaw": "કાવી", "kbd": "કબાર્ડિયન", "kcg": "ત્યાપ", "kde": "મકોન્ડે", "kea": "કાબુવર્ડિઆનુ", "kfo": "કોરો", "kg": "કોંગો", "kha": "ખાસી", "kho": "ખોતાનીસ", "khq": "કોયરા ચિનિ", "ki": "કિકુયૂ", "kj": "ક્વાન્યામા", "kk": "કઝાખ", "kkj": "કાકો", "kl": "કલાલ્લિસુત", "kln": "કલેજિન", "km": "ખ્મેર", "kmb": "કિમ્બન્દુ", "kn": "કન્નડ", "ko": "કોરિયન", "koi": "કોમી-પર્મ્યાક", "kok": "કોંકણી", "kos": "કોસરિયન", "kpe": "ક્પેલ્લે", "kr": "કનુરી", "krc": "કરાચય-બલ્કાર", "krl": "કરેલિયન", "kru": "કુરૂખ", "ks": "કાશ્મીરી", "ksb": "શમ્બાલા", "ksf": "બફિયા", "ksh": "કોલોગ્નિયન", "ku": "કુર્દિશ", "kum": "કુમીક", "kut": "કુતેનાઇ", "kv": "કોમી", "kw": "કોર્નિશ", "ky": "કિર્ગીઝ", "la": "લેટિન", "lad": "લાદીનો", "lag": "લંગી", "lah": "લાહન્ડા", "lam": "લામ્બા", "lb": "લક્ઝેમબર્ગિશ", "lez": "લેઝધીયન", "lfn": "લિંગ્વા ફેન્કા નોવા", "lg": "ગાંડા", "li": "લિંબૂર્ગિશ", "lkt": "લાકોટા", "ln": "લિંગાલા", "lo": "લાઓ", "lol": "મોંગો", "lou": "લ્યુઇસિયાના ક્રેઓલ", "loz": "લોઝી", "lrc": "ઉત્તરી લુરી", "lt": "લિથુઆનિયન", "lu": "લૂબા-કટાંગા", "lua": "લૂબા-લુલુઆ", "lui": "લુઇસેનો", "lun": "લુન્ડા", "luo": "લ્યુઓ", "lus": "મિઝો", "luy": "લુઈયા", "lv": "લાતવિયન", "mad": "માદુરીસ", "mag": "મગહી", "mai": "મૈથિલી", "mak": "મકાસર", "man": "મન્ડિન્ગો", "mas": "મસાઇ", "mdf": "મોક્ષ", "mdr": "મંદાર", "men": "મેન્ડે", "mer": "મેરુ", "mfe": "મોરીસ્યેન", "mg": "મલાગસી", "mga": "મધ્ય આઈરિશ", "mgh": "માખુવા-મીટ્ટુ", "mgo": "મેતા", "mh": "માર્શલીઝ", "mi": "માઓરી", "mic": "મિકમેક", "min": "મિનાંગ્કાબાઉ", "mk": "મેસેડોનિયન", "ml": "મલયાલમ", "mn": "મોંગોલિયન", "mnc": "માન્ચુ", "mni": "મણિપુરી", "moh": "મોહૌક", "mos": "મોસ્સી", "mr": "મરાઠી", "mrj": "પશ્ચિમી મારી", "ms": "મલય", "mt": "માલ્ટિઝ", "mua": "મુનડાન્ગ", "mus": "ક્રિક", "mwl": "મિરાંડી", "mwr": "મારવાડી", "my": "બર્મીઝ", "myv": "એર્ઝયા", "mzn": "મઝાન્દેરાની", "na": "નાઉરૂ", "nap": "નેપોલિટાન", "naq": "નમા", "nb": "નોર્વેજિયન બોકમાલ", "nd": "ઉત્તર દેબેલ", "nds": "લો જર્મન", "nds-NL": "લો સેક્સોન", "ne": "નેપાળી", "new": "નેવારી", "ng": "ડોન્ગા", "nia": "નિયાસ", "niu": "નિયુઆન", "nl": "ડચ", "nl-BE": "ફ્લેમિશ", "nmg": "ક્વાસિઓ", "nn": "નોર્વેજિયન નાયનૉર્સ્ક", "nnh": "નીએમબુન", "no": "નૉર્વેજીયન", "nog": "નોગાઇ", "non": "જૂની નોર્સ", "nqo": "એન’કો", "nr": "દક્ષિણ દેબેલ", "nso": "ઉત્તરી સોથો", "nus": "નુએર", "nv": "નાવાજો", "nwc": "પરંપરાગત નેવારી", "ny": "ન્યાન્જા", "nym": "ન્યામવેઝી", "nyn": "ન્યાનકોલ", "nyo": "ન્યોરો", "nzi": "ન્ઝિમા", "oc": "ઓક્સિટન", "oj": "ઓજિબ્વા", "om": "ઓરોમો", "or": "ઉડિયા", "os": "ઓસ્સેટિક", "osa": "ઓસેજ", "ota": "ઓટોમાન તુર્કિશ", "pa": "પંજાબી", "pag": "પંગાસીનાન", "pal": "પહલવી", "pam": "પમ્પાન્ગા", "pap": "પાપિયામેન્ટો", "pau": "પલાઉઆન", "pcm": "નાઇજેરિયન પીજીન", "peo": "જૂની ફારસી", "phn": "ફોનિશિયન", "pi": "પાલી", "pl": "પોલીશ", "pon": "પોહપિએન", "prg": "પ્રુસ્સીયન", "pro": "જુની પ્રોવેન્સલ", "ps": "પશ્તો", "pt": "પોર્ટુગીઝ", "pt-BR": "બ્રાઝિલીયન પોર્ટુગીઝ", "pt-PT": "યુરોપિયન પોર્ટુગીઝ", "qu": "ક્વેચુઆ", "quc": "કિચે", "raj": "રાજસ્થાની", "rap": "રાપાનુઇ", "rar": "રારોટોંગન", "rm": "રોમાન્શ", "rn": "રૂન્દી", "ro": "રોમાનિયન", "ro-MD": "મોલડાવિયન", "rof": "રોમ્બો", "rom": "રોમાની", "root": "રૂટ", "ru": "રશિયન", "rup": "અરોમેનિયન", "rw": "કિન્યારવાન્ડા", "rwk": "રવા", "sa": "સંસ્કૃત", "sad": "સોંડવે", "sah": "સખા", "sam": "સામરિટાન અરેમિક", "saq": "સમ્બુરુ", "sas": "સાસાક", "sat": "સંતાલી", "sba": "ન્ગામ્બેય", "sbp": "સાંગુ", "sc": "સાર્દિનિયન", "scn": "સિસિલિયાન", "sco": "સ્કોટ્સ", "sd": "સિંધી", "sdh": "સર્ઘન કુર્દીશ", "se": "ઉત્તરી સામી", "seh": "સેના", "sel": "સેલ્કપ", "ses": "કોયરાબોરો સેન્ની", "sg": "સાંગો", "sga": "જૂની આયરિશ", "sh": "સર્બો-ક્રોએશિયન", "shi": "તેશીલહિટ", "shn": "શેન", "si": "સિંહાલી", "sid": "સિદામો", "sk": "સ્લોવૅક", "sl": "સ્લોવેનિયન", "sm": "સામોન", "sma": "દક્ષિણી સામી", "smj": "લુલે સામી", "smn": "ઇનારી સામી", "sms": "સ્કોલ્ટ સામી", "sn": "શોના", "snk": "સોનિન્કે", "so": "સોમાલી", "sog": "સોગ્ડિએન", "sq": "અલ્બેનિયન", "sr": "સર્બિયન", "srn": "સ્રાનન ટોન્ગો", "srr": "સેરેર", "ss": "સ્વાતી", "ssy": "સાહો", "st": "દક્ષિણ સોથો", "su": "સંડેનીઝ", "suk": "સુકુમા", "sus": "સુસુ", "sux": "સુમેરિયન", "sv": "સ્વીડિશ", "sw": "સ્વાહિલી", "sw-CD": "કોંગો સ્વાહિલી", "swb": "કોમોરિયન", "syc": "પરંપરાગત સિરિએક", "syr": "સિરિએક", "ta": "તમિલ", "tcy": "તુલુ", "te": "તેલુગુ", "tem": "ટિમ્ને", "teo": "તેસો", "ter": "તેરેનો", "tet": "તેતુમ", "tg": "તાજીક", "th": "થાઈ", "ti": "ટાઇગ્રિનિયા", "tig": "ટાઇગ્રે", "tiv": "તિવ", "tk": "તુર્કમેન", "tkl": "તોકેલાઉ", "tl": "ટાગાલોગ", "tlh": "ક્લિન્ગોન", "tli": "ક્લીન્ગકિટ", "tmh": "તામાશેખ", "tn": "ત્સ્વાના", "to": "ટોંગાન", "tog": "ન્યાસા ટોન્ગા", "tpi": "ટોક પિસિન", "tr": "ટર્કિશ", "trv": "ટારોકો", "ts": "સોંગા", "tsi": "સિમ્શિયન", "tt": "તતાર", "ttt": "મુસ્લિમ તાટ", "tum": "તુમ્બુકા", "tvl": "તુવાલુ", "tw": "ટ્વાઇ", "twq": "તસાવાક", "ty": "તાહિતિયન", "tyv": "ટુવીનિયન", "tzm": "સેન્ટ્રલ એટલાસ તામાઝિટ", "udm": "ઉદમુર્ત", "ug": "ઉઇગુર", "uga": "યુગેરિટિક", "uk": "યુક્રેનિયન", "umb": "ઉમ્બુન્ડૂ", "ur": "ઉર્દૂ", "uz": "ઉઝ્બેક", "vai": "વાઇ", "ve": "વેન્દા", "vi": "વિયેતનામીસ", "vo": "વોલાપુક", "vot": "વોટિક", "vun": "વુન્જો", "wa": "વાલૂન", "wae": "વેલ્સેર", "wal": "વોલાયટ્ટા", "war": "વારેય", "was": "વાશો", "wbp": "વાર્લ્પીરી", "wo": "વોલોફ", "xal": "કાલ્મિક", "xh": "ખોસા", "xog": "સોગા", "yao": "યાઓ", "yap": "યાપીસ", "yav": "યાન્ગબેન", "ybb": "યેમ્બા", "yi": "યિદ્દિશ", "yo": "યોરૂબા", "yue": "કેંટોનીઝ", "za": "ઝુઆગ", "zap": "ઝેપોટેક", "zbl": "બ્લિસિમ્બોલ્સ", "zen": "ઝેનાગા", "zgh": "માનક મોરોક્કન તામાઝિટ", "zh": "ચાઇનીઝ", "zh-Hans": "સરળીકૃત ચાઇનીઝ", "zh-Hant": "પારંપરિક ચાઇનીઝ", "zu": "ઝુલુ", "zun": "ઝૂની", "zza": "ઝાઝા"}, "scriptNames": {"Cyrl": "સિરિલિક", "Latn": "લેટિન", "Arab": "અરબી", "Guru": "ગુરૂમુખી", "Tfng": "તિફિનાઘ", "Vaii": "વાઇ", "Hans": "સરળીકૃત", "Hant": "પરંપરાગત"}}, + "he": {"rtl": true, "languageNames": {"aa": "אפארית", "ab": "אבחזית", "ace": "אכינזית", "ach": "אקצ׳ולי", "ada": "אדנמה", "ady": "אדיגית", "ae": "אבסטן", "af": "אפריקאנס", "afh": "אפריהילי", "agq": "אע׳ם", "ain": "אינו", "ak": "אקאן", "akk": "אכדית", "ale": "אלאוט", "alt": "אלטאי דרומית", "am": "אמהרית", "an": "אראגונית", "ang": "אנגלית עתיקה", "anp": "אנג׳יקה", "ar": "ערבית", "ar-001": "ערבית ספרותית", "arc": "ארמית", "arn": "אראוקנית", "arp": "אראפהו", "ars": "ערבית - נג׳ד", "arw": "ארוואק", "as": "אסאמית", "asa": "אסו", "ast": "אסטורית", "av": "אווארית", "awa": "אוואדית", "ay": "איימארית", "az": "אזרית", "ba": "בשקירית", "bal": "באלוצ׳י", "ban": "באלינזית", "bar": "בווארית", "bas": "בסאא", "bax": "במום", "bbj": "גומאלה", "be": "בלארוסית", "bej": "בז׳ה", "bem": "במבה", "bez": "בנה", "bfd": "באפוט", "bg": "בולגרית", "bgn": "באלוצ׳י מערבית", "bho": "בוג׳פורי", "bi": "ביסלמה", "bik": "ביקול", "bin": "ביני", "bkm": "קום", "bla": "סיקסיקה", "bm": "במבארה", "bn": "בנגלית", "bo": "טיבטית", "br": "ברטונית", "bra": "בראג׳", "brx": "בודו", "bs": "בוסנית", "bss": "אקוסה", "bua": "בוריאט", "bug": "בוגינזית", "bum": "בולו", "byn": "בלין", "byv": "מדומבה", "ca": "קטלאנית", "cad": "קאדו", "car": "קאריב", "cay": "קאיוגה", "cch": "אטסם", "ccp": "צ׳אקמה", "ce": "צ׳צ׳נית", "ceb": "סבואנו", "cgg": "צ׳יגה", "ch": "צ׳מורו", "chb": "צ׳יבצ׳ה", "chg": "צ׳אגאטאי", "chk": "צ׳וקסה", "chm": "מארי", "chn": "ניב צ׳ינוק", "cho": "צ׳וקטאו", "chp": "צ׳יפוויאן", "chr": "צ׳רוקי", "chy": "שאיין", "ckb": "כורדית סוראנית", "co": "קורסיקנית", "cop": "קופטית", "cr": "קרי", "crh": "טטרית של קרים", "crs": "קריאולית (סיישל)", "cs": "צ׳כית", "csb": "קשובית", "cu": "סלאבית כנסייתית עתיקה", "cv": "צ׳ובאש", "cy": "וולשית", "da": "דנית", "dak": "דקוטה", "dar": "דרגווה", "dav": "טאיטה", "de": "גרמנית", "de-AT": "גרמנית (אוסטריה)", "de-CH": "גרמנית (שוויץ)", "del": "דלאוור", "den": "סלאבית", "dgr": "דוגריב", "din": "דינקה", "dje": "זארמה", "doi": "דוגרי", "dsb": "סורבית תחתית", "dua": "דואלה", "dum": "הולנדית תיכונה", "dv": "דיבהי", "dyo": "ג׳ולה פונית", "dyu": "דיולה", "dz": "דזונקה", "dzg": "דזאנגה", "ebu": "אמבו", "ee": "אווה", "efi": "אפיק", "egy": "מצרית עתיקה", "eka": "אקיוק", "el": "יוונית", "elx": "עילמית", "en": "אנגלית", "en-AU": "אנגלית (אוסטרליה)", "en-CA": "אנגלית (קנדה)", "en-GB": "אנגלית (בריטניה)", "en-US": "אנגלית (ארצות הברית)", "enm": "אנגלית תיכונה", "eo": "אספרנטו", "es": "ספרדית", "es-419": "ספרדית (אמריקה הלטינית)", "es-ES": "ספרדית (ספרד)", "es-MX": "ספרדית (מקסיקו)", "et": "אסטונית", "eu": "בסקית", "ewo": "אוונדו", "fa": "פרסית", "fan": "פנג", "fat": "פאנטי", "ff": "פולה", "fi": "פינית", "fil": "פיליפינית", "fj": "פיג׳ית", "fo": "פארואזית", "fon": "פון", "fr": "צרפתית", "fr-CA": "צרפתית (קנדה)", "fr-CH": "צרפתית (שוויץ)", "frc": "צרפתית קייג׳ונית", "frm": "צרפתית תיכונה", "fro": "צרפתית עתיקה", "frr": "פריזית צפונית", "frs": "פריזית מזרחית", "fur": "פריולית", "fy": "פריזית מערבית", "ga": "אירית", "gaa": "גא", "gag": "גגאוזית", "gan": "סינית גאן", "gay": "גאיו", "gba": "גבאיה", "gd": "גאלית סקוטית", "gez": "געז", "gil": "קיריבטית", "gl": "גליציאנית", "gmh": "גרמנית בינונית-גבוהה", "gn": "גוארני", "goh": "גרמנית עתיקה גבוהה", "gon": "גונדי", "gor": "גורונטאלו", "got": "גותית", "grb": "גרבו", "grc": "יוונית עתיקה", "gsw": "גרמנית שוויצרית", "gu": "גוג׳ארטי", "guz": "גוסי", "gv": "מאנית", "gwi": "גוויצ׳ן", "ha": "האוסה", "hai": "האידה", "hak": "סינית האקה", "haw": "הוואית", "he": "עברית", "hi": "הינדי", "hil": "היליגאינון", "hit": "חתית", "hmn": "המונג", "ho": "הירי מוטו", "hr": "קרואטית", "hsb": "סורבית גבוהה", "hsn": "סינית שיאנג", "ht": "קריאולית (האיטי)", "hu": "הונגרית", "hup": "הופה", "hy": "ארמנית", "hz": "הררו", "ia": "‏אינטרלינגואה", "iba": "איבאן", "ibb": "איביביו", "id": "אינדונזית", "ie": "אינטרלינגה", "ig": "איגבו", "ii": "סצ׳ואן יי", "ik": "אינופיאק", "ilo": "אילוקו", "inh": "אינגושית", "io": "אידו", "is": "איסלנדית", "it": "איטלקית", "iu": "אינוקטיטוט", "ja": "יפנית", "jbo": "לוז׳באן", "jgo": "נגומבה", "jmc": "מאקאמה", "jpr": "פרסית יהודית", "jrb": "ערבית יהודית", "jv": "יאוואית", "ka": "גאורגית", "kaa": "קארא-קלפאק", "kab": "קבילה", "kac": "קצ׳ין", "kaj": "ג׳ו", "kam": "קמבה", "kaw": "קאווי", "kbd": "קברדית", "kbl": "קנמבו", "kcg": "טיאפ", "kde": "מקונדה", "kea": "קאבוורדיאנו", "kfo": "קורו", "kg": "קונגו", "kha": "קהאסי", "kho": "קוטאנזית", "khq": "קוירה צ׳יני", "ki": "קיקויו", "kj": "קואניאמה", "kk": "קזחית", "kkj": "קאקו", "kl": "גרינלנדית", "kln": "קלנג׳ין", "km": "חמרית", "kmb": "קימבונדו", "kn": "קנאדה", "ko": "קוריאנית", "koi": "קומי-פרמיאקית", "kok": "קונקאני", "kos": "קוסראיאן", "kpe": "קפלה", "kr": "קאנורי", "krc": "קראצ׳י-בלקר", "krl": "קארלית", "kru": "קורוק", "ks": "קשמירית", "ksb": "שמבאלה", "ksf": "באפיה", "ksh": "קולוניאן", "ku": "כורדית", "kum": "קומיקית", "kut": "קוטנאי", "kv": "קומי", "kw": "קורנית", "ky": "קירגיזית", "la": "לטינית", "lad": "לדינו", "lag": "לאנגי", "lah": "לנדה", "lam": "למבה", "lb": "לוקסמבורגית", "lez": "לזגית", "lg": "גאנדה", "li": "לימבורגית", "lkt": "לקוטה", "ln": "לינגלה", "lo": "לאו", "lol": "מונגו", "lou": "קריאולית לואיזיאנית", "loz": "לוזית", "lrc": "לורית צפונית", "lt": "ליטאית", "lu": "לובה-קטנגה", "lua": "לובה-לולואה", "lui": "לויסנו", "lun": "לונדה", "luo": "לואו", "lus": "מיזו", "luy": "לויה", "lv": "לטבית", "mad": "מדורזית", "maf": "מאפאה", "mag": "מאגאהית", "mai": "מאיטילית", "mak": "מקסאר", "man": "מנדינגו", "mas": "מסאית", "mde": "מאבא", "mdf": "מוקשה", "mdr": "מנדאר", "men": "מנדה", "mer": "מרו", "mfe": "קריאולית מאוריציאנית", "mg": "מלגשית", "mga": "אירית תיכונה", "mgh": "מאקוואה מטו", "mgo": "מטא", "mh": "מרשלית", "mi": "מאורית", "mic": "מיקמק", "min": "מיננגקבאו", "mk": "מקדונית", "ml": "מליאלאם", "mn": "מונגולית", "mnc": "מנצ׳ו", "mni": "מניפורית", "moh": "מוהוק", "mos": "מוסי", "mr": "מראטהי", "ms": "מלאית", "mt": "מלטית", "mua": "מונדאנג", "mus": "קריק", "mwl": "מירנדזית", "mwr": "מרווארי", "my": "בורמזית", "mye": "מאיין", "myv": "ארזיה", "mzn": "מאזאנדראני", "na": "נאורית", "nan": "סינית מין נאן", "nap": "נפוליטנית", "naq": "נאמה", "nb": "נורווגית ספרותית", "nd": "נדבלה צפונית", "nds": "גרמנית תחתית", "nds-NL": "סקסונית תחתית", "ne": "נפאלית", "new": "נווארי", "ng": "נדונגה", "nia": "ניאס", "niu": "ניואן", "nl": "הולנדית", "nl-BE": "פלמית", "nmg": "קוואסיו", "nn": "נורווגית חדשה", "nnh": "נגיאמבון", "no": "נורווגית", "nog": "נוגאי", "non": "‏נורדית עתיקה", "nqo": "נ׳קו", "nr": "נדבלה דרומית", "nso": "סותו צפונית", "nus": "נואר", "nv": "נאוואחו", "nwc": "נווארית קלאסית", "ny": "ניאנג׳ה", "nym": "ניאמווזי", "nyn": "ניאנקולה", "nyo": "ניורו", "nzi": "נזימה", "oc": "אוקסיטנית", "oj": "אוג׳יבווה", "om": "אורומו", "or": "אורייה", "os": "אוסטית", "osa": "אוסג׳", "ota": "טורקית עות׳מנית", "pa": "פנג׳אבי", "pag": "פנגסינאן", "pal": "פלאבי", "pam": "פמפאניה", "pap": "פפיאמנטו", "pau": "פלוואן", "pcm": "ניגרית פידג׳ית", "peo": "פרסית עתיקה", "phn": "פיניקית", "pi": "פאלי", "pl": "פולנית", "pon": "פונפיאן", "prg": "פרוסית", "pro": "פרובנסאל עתיקה", "ps": "פאשטו", "pt": "פורטוגזית", "pt-BR": "פורטוגזית (ברזיל)", "pt-PT": "פורטוגזית (פורטוגל)", "qu": "קצ׳ואה", "quc": "קיצ׳ה", "raj": "ראג׳סטאני", "rap": "רפאנוי", "rar": "ררוטונגאן", "rm": "רומאנש", "rn": "קירונדי", "ro": "רומנית", "ro-MD": "מולדבית", "rof": "רומבו", "rom": "רומאני", "root": "רוט", "ru": "רוסית", "rup": "ארומנית", "rw": "קנירואנדית", "rwk": "ראווה", "sa": "סנסקריט", "sad": "סנדאווה", "sah": "סאחה", "sam": "ארמית שומרונית", "saq": "סמבורו", "sas": "סאסק", "sat": "סאנטאלי", "sba": "נגמבאי", "sbp": "סאנגו", "sc": "סרדינית", "scn": "סיציליאנית", "sco": "סקוטית", "sd": "סינדהית", "sdh": "כורדית דרומית", "se": "סמי צפונית", "see": "סנקה", "seh": "סנה", "sel": "סלקופ", "ses": "קויראבורו סני", "sg": "סנגו", "sga": "אירית עתיקה", "sh": "סרבו-קרואטית", "shi": "שילה", "shn": "שאן", "shu": "ערבית צ׳אדית", "si": "סינהלה", "sid": "סידאמו", "sk": "סלובקית", "sl": "סלובנית", "sm": "סמואית", "sma": "סאמי דרומית", "smj": "לולה סאמי", "smn": "אינארי סאמי", "sms": "סקולט סאמי", "sn": "שונה", "snk": "סונינקה", "so": "סומלית", "sog": "סוגדיאן", "sq": "אלבנית", "sr": "סרבית", "srn": "סרנאן טונגו", "srr": "סרר", "ss": "סאווזי", "ssy": "סאהו", "st": "סותו דרומית", "su": "סונדנזית", "suk": "סוקומה", "sus": "סוסו", "sux": "שומרית", "sv": "שוודית", "sw": "סווהילי", "sw-CD": "סווהילי קונגו", "swb": "קומורית", "syc": "סירית קלאסית", "syr": "סורית", "ta": "טמילית", "te": "טלוגו", "tem": "טימנה", "teo": "טסו", "ter": "טרנו", "tet": "טטום", "tg": "טג׳יקית", "th": "תאית", "ti": "תיגרינית", "tig": "טיגרית", "tiv": "טיב", "tk": "טורקמנית", "tkl": "טוקלאו", "tl": "טאגאלוג", "tlh": "קלינגון", "tli": "טלינגיט", "tmh": "טמאשק", "tn": "סוואנה", "to": "טונגאית", "tog": "ניאסה טונגה", "tpi": "טוק פיסין", "tr": "טורקית", "trv": "טרוקו", "ts": "טסונגה", "tsi": "טסימשיאן", "tt": "טטרית", "tum": "טומבוקה", "tvl": "טובאלו", "tw": "טווי", "twq": "טסוואק", "ty": "טהיטית", "tyv": "טובינית", "tzm": "תמאזיגת של מרכז מרוקו", "udm": "אודמורט", "ug": "אויגור", "uga": "אוגריתית", "uk": "אוקראינית", "umb": "אומבונדו", "ur": "אורדו", "uz": "אוזבקית", "vai": "וואי", "ve": "וונדה", "vi": "ויאטנמית", "vo": "‏וולאפיק", "vot": "ווטיק", "vun": "וונג׳ו", "wa": "ולונית", "wae": "וואלסר", "wal": "ווליאטה", "war": "ווראי", "was": "וואשו", "wbp": "וורלפירי", "wo": "וולוף", "wuu": "סינית וו", "xal": "קלמיקית", "xh": "קוסה", "xog": "סוגה", "yao": "יאו", "yap": "יאפזית", "yav": "יאנגבן", "ybb": "ימבה", "yi": "יידיש", "yo": "יורובה", "yue": "קנטונזית", "za": "זואנג", "zap": "זאפוטק", "zbl": "בליסימבולס", "zen": "זנאגה", "zgh": "תמזיע׳ת מרוקאית תקנית", "zh": "סינית", "zh-Hans": "סינית פשוטה", "zh-Hant": "סינית מסורתית", "zu": "זולו", "zun": "זוני", "zza": "זאזא"}, "scriptNames": {"Cyrl": "קירילי", "Latn": "לטיני", "Arab": "ערבי", "Guru": "גורמוקי", "Hans": "פשוט", "Hant": "מסורתי"}}, + "hi": {"rtl": false, "languageNames": {"aa": "अफ़ार", "ab": "अब्ख़ाज़ियन", "ace": "अचाइनीस", "ach": "अकोली", "ada": "अदान्गमे", "ady": "अदिघे", "ae": "अवस्ताई", "af": "अफ़्रीकी", "afh": "अफ्रिहिली", "agq": "अग्हेम", "ain": "ऐनू", "ak": "अकन", "akk": "अक्कादी", "ale": "अलेउत", "alt": "दक्षिणी अल्ताई", "am": "अम्हेरी", "an": "अर्गोनी", "ang": "पुरानी अंग्रेज़ी", "anp": "अंगिका", "ar": "अरबी", "ar-001": "आधुनिक मानक अरबी", "arc": "ऐरेमेक", "arn": "मापूचे", "arp": "अरापाहो", "ars": "नज्दी अरबी", "arw": "अरावक", "as": "असमिया", "asa": "असु", "ast": "अस्तुरियन", "av": "अवेरिक", "awa": "अवधी", "ay": "आयमारा", "az": "अज़रबैजानी", "ba": "बशख़िर", "bal": "बलूची", "ban": "बालिनीस", "bas": "बसा", "be": "बेलारूसी", "bej": "बेजा", "bem": "बेम्बा", "bez": "बेना", "bg": "बुल्गारियाई", "bgn": "पश्चिमी बलोची", "bho": "भोजपुरी", "bi": "बिस्लामा", "bik": "बिकोल", "bin": "बिनी", "bla": "सिक्सिका", "bm": "बाम्बारा", "bn": "बंगाली", "bo": "तिब्बती", "br": "ब्रेटन", "bra": "ब्रज", "brx": "बोडो", "bs": "बोस्नियाई", "bua": "बुरियात", "bug": "बगिनीस", "byn": "ब्लिन", "ca": "कातालान", "cad": "कैड्डो", "car": "कैरिब", "cch": "अत्सम", "ce": "चेचन", "ceb": "सिबुआनो", "cgg": "शिगा", "ch": "कमोरो", "chb": "चिब्चा", "chg": "छगाताई", "chk": "चूकीस", "chm": "मारी", "chn": "चिनूक जारगॉन", "cho": "चोक्तौ", "chp": "शिपेव्यान", "chr": "चेरोकी", "chy": "शेयेन्न", "ckb": "सोरानी कुर्दिश", "co": "कोर्सीकन", "cop": "कॉप्टिक", "cr": "क्री", "crh": "क्रीमीन तुर्की", "crs": "सेसेल्वा क्रिओल फ्रेंच", "cs": "चेक", "csb": "काशुबियन", "cu": "चर्च साल्विक", "cv": "चूवाश", "cy": "वेल्श", "da": "डेनिश", "dak": "दाकोता", "dar": "दार्गवा", "dav": "तैता", "de": "जर्मन", "de-AT": "ऑस्ट्रियाई जर्मन", "de-CH": "स्विस उच्च जर्मन", "del": "डिलैवेयर", "den": "स्लेव", "dgr": "डोग्रिब", "din": "दिन्का", "dje": "झार्मा", "doi": "डोग्री", "dsb": "निचला सॉर्बियन", "dua": "दुआला", "dum": "मध्यकालीन पुर्तगाली", "dv": "दिवेही", "dyo": "जोला-फोंई", "dyu": "ड्युला", "dz": "ज़ोन्गखा", "dzg": "दज़ागा", "ebu": "एम्बु", "ee": "ईवे", "efi": "एफिक", "egy": "प्राचीन मिस्री", "eka": "एकाजुक", "el": "यूनानी", "elx": "एलामाइट", "en": "अंग्रेज़ी", "en-AU": "ऑस्ट्रेलियाई अंग्रेज़ी", "en-CA": "कनाडाई अंग्रेज़ी", "en-GB": "ब्रिटिश अंग्रेज़ी", "en-US": "अमेरिकी अंग्रेज़ी", "enm": "मध्यकालीन अंग्रेज़ी", "eo": "एस्पेरेंतो", "es": "स्पेनी", "es-419": "लैटिन अमेरिकी स्पेनिश", "es-ES": "यूरोपीय स्पेनिश", "es-MX": "मैक्सिकन स्पेनिश", "et": "एस्टोनियाई", "eu": "बास्क", "ewo": "इवोन्डो", "fa": "फ़ारसी", "fan": "फैन्ग", "fat": "फन्टी", "ff": "फुलाह", "fi": "फ़िनिश", "fil": "फ़िलिपीनो", "fj": "फिजियन", "fo": "फ़ैरोइज़", "fon": "फॉन", "fr": "फ़्रेंच", "fr-CA": "कनाडाई फ़्रेंच", "fr-CH": "स्विस फ़्रेंच", "frc": "केजन फ़्रेंच", "frm": "मध्यकालीन फ़्रांसीसी", "fro": "पुरातन फ़्रांसीसी", "frr": "उत्तरी फ़्रीसियाई", "frs": "पूर्वी फ़्रीसियाई", "fur": "फ्रीयुलीयान", "fy": "पश्चिमी फ़्रिसियाई", "ga": "आयरिश", "gaa": "गा", "gag": "गागौज़", "gay": "गायो", "gba": "ग्बाया", "gd": "स्कॉटिश गाएलिक", "gez": "गीज़", "gil": "गिल्बरतीस", "gl": "गैलिशियन", "gmh": "मध्यकालीन हाइ जर्मन", "gn": "गुआरानी", "goh": "पुरातन हाइ जर्मन", "gon": "गाँडी", "gor": "गोरोन्तालो", "got": "गॉथिक", "grb": "ग्रेबो", "grc": "प्राचीन यूनानी", "gsw": "स्विस जर्मन", "gu": "गुजराती", "guz": "गुसी", "gv": "मैंक्स", "gwi": "ग्विचइन", "ha": "हौसा", "hai": "हैडा", "haw": "हवाई", "he": "हिब्रू", "hi": "हिन्दी", "hil": "हिलिगेनन", "hit": "हिताइत", "hmn": "ह्मॉंग", "ho": "हिरी मोटू", "hr": "क्रोएशियाई", "hsb": "ऊपरी सॉर्बियन", "ht": "हैतियाई", "hu": "हंगेरियाई", "hup": "हूपा", "hy": "आर्मेनियाई", "hz": "हरैरो", "ia": "इंटरलिंगुआ", "iba": "इबान", "ibb": "इबिबियो", "id": "इंडोनेशियाई", "ie": "ईन्टरलिंगुइ", "ig": "ईग्बो", "ii": "सिचुआन यी", "ik": "इनुपियाक्", "ilo": "इलोको", "inh": "इंगुश", "io": "इडौ", "is": "आइसलैंडिक", "it": "इतालवी", "iu": "इनूकीटूत्", "ja": "जापानी", "jbo": "लोज्बान", "jgo": "नगोंबा", "jmc": "मैकहैमे", "jpr": "जुदेओ-पर्शियन", "jrb": "जुदेओ-अरेबिक", "jv": "जावानीज़", "ka": "जॉर्जियाई", "kaa": "कारा-कल्पक", "kab": "कबाइल", "kac": "काचिन", "kaj": "ज्जु", "kam": "कम्बा", "kaw": "कावी", "kbd": "कबार्डियन", "kcg": "त्याप", "kde": "मैकोंड", "kea": "काबुवेर्दियानु", "kfo": "कोरो", "kg": "कोंगो", "kha": "खासी", "kho": "खोतानीस", "khq": "कोयरा चीनी", "ki": "किकुयू", "kj": "क्वान्यामा", "kk": "कज़ाख़", "kkj": "काको", "kl": "कलालीसुत", "kln": "कलेंजिन", "km": "खमेर", "kmb": "किम्बन्दु", "kn": "कन्नड़", "ko": "कोरियाई", "koi": "कोमी-पर्मयाक", "kok": "कोंकणी", "kos": "कोसरैन", "kpe": "क्पेल", "kr": "कनुरी", "krc": "कराचय-बल्कार", "krl": "करेलियन", "kru": "कुरूख", "ks": "कश्मीरी", "ksb": "शम्बाला", "ksf": "बफिआ", "ksh": "कोलोनियाई", "ku": "कुर्दिश", "kum": "कुमीक", "kut": "क्यूतनाई", "kv": "कोमी", "kw": "कोर्निश", "ky": "किर्गीज़", "la": "लैटिन", "lad": "लादीनो", "lag": "लांगि", "lah": "लाह्न्डा", "lam": "लाम्बा", "lb": "लग्ज़मबर्गी", "lez": "लेज़्घीयन", "lg": "गांडा", "li": "लिंबर्गिश", "lkt": "लैकोटा", "ln": "लिंगाला", "lo": "लाओ", "lol": "मोंगो", "lou": "लुईज़ियाना क्रियोल", "loz": "लोज़ी", "lrc": "उत्तरी लूरी", "lt": "लिथुआनियाई", "lu": "ल्यूबा-कटांगा", "lua": "ल्यूबा-लुलुआ", "lui": "लुइसेनो", "lun": "लुन्डा", "luo": "ल्युओ", "lus": "मिज़ो", "luy": "ल्युईआ", "lv": "लातवियाई", "mad": "मादुरीस", "mag": "मगही", "mai": "मैथिली", "mak": "मकासर", "man": "मन्डिन्गो", "mas": "मसाई", "mdf": "मोक्ष", "mdr": "मंदार", "men": "मेन्डे", "mer": "मेरु", "mfe": "मोरीस्येन", "mg": "मालागासी", "mga": "मध्यकालीन आइरिश", "mgh": "मैखुवा-मीट्टो", "mgo": "मेटा", "mh": "मार्शलीज़", "mi": "माओरी", "mic": "मिकमैक", "min": "मिनांग्काबाउ", "mk": "मकदूनियाई", "ml": "मलयालम", "mn": "मंगोलियाई", "mnc": "मन्चु", "mni": "मणिपुरी", "moh": "मोहौक", "mos": "मोस्सी", "mr": "मराठी", "ms": "मलय", "mt": "माल्टीज़", "mua": "मुंडैंग", "mus": "क्रीक", "mwl": "मिरांडी", "mwr": "मारवाड़ी", "my": "बर्मीज़", "myv": "एर्ज़या", "mzn": "माज़न्देरानी", "na": "नाउरू", "nap": "नीपोलिटन", "naq": "नामा", "nb": "नॉर्वेजियाई बोकमाल", "nd": "उत्तरी देबेल", "nds": "निचला जर्मन", "nds-NL": "निचली सैक्सन", "ne": "नेपाली", "new": "नेवाड़ी", "ng": "डोन्गा", "nia": "नियास", "niu": "नियुआन", "nl": "डच", "nl-BE": "फ़्लेमिश", "nmg": "क्वासिओ", "nn": "नॉर्वेजियाई नॉयनॉर्स्क", "nnh": "गैम्बू", "no": "नॉर्वेजियाई", "nog": "नोगाई", "non": "पुराना नॉर्स", "nqo": "एन्को", "nr": "दक्षिण देबेल", "nso": "उत्तरी सोथो", "nus": "नुएर", "nv": "नावाजो", "nwc": "पारम्परिक नेवारी", "ny": "न्यानजा", "nym": "न्यामवेज़ी", "nyn": "न्यानकोल", "nyo": "न्योरो", "nzi": "न्ज़ीमा", "oc": "ओसीटान", "oj": "ओजिब्वा", "om": "ओरोमो", "or": "उड़िया", "os": "ओस्सेटिक", "osa": "ओसेज", "ota": "ओटोमान तुर्किश", "pa": "पंजाबी", "pag": "पंगासीनान", "pal": "पाह्लावी", "pam": "पाम्पान्गा", "pap": "पापियामेन्टो", "pau": "पलोउआन", "pcm": "नाइजीरियाई पिडगिन", "peo": "पुरानी फारसी", "phn": "फोएनिशियन", "pi": "पाली", "pl": "पोलिश", "pon": "पोह्नपिएन", "prg": "प्रुशियाई", "pro": "पुरानी प्रोवेन्सल", "ps": "पश्तो", "pt": "पुर्तगाली", "pt-BR": "ब्राज़ीली पुर्तगाली", "pt-PT": "यूरोपीय पुर्तगाली", "qu": "क्वेचुआ", "quc": "किश", "raj": "राजस्थानी", "rap": "रापानुई", "rar": "रारोतोंगन", "rm": "रोमान्श", "rn": "रुन्दी", "ro": "रोमानियाई", "ro-MD": "मोलडावियन", "rof": "रोम्बो", "rom": "रोमानी", "root": "रूट", "ru": "रूसी", "rup": "अरोमानियन", "rw": "किन्यारवांडा", "rwk": "रवा", "sa": "संस्कृत", "sad": "सन्डावे", "sah": "याकूत", "sam": "सामैरिटन अरैमिक", "saq": "सैम्बुरु", "sas": "सासाक", "sat": "संथाली", "sba": "न्गाम्बे", "sbp": "सैंगु", "sc": "सार्दिनियन", "scn": "सिसिलियन", "sco": "स्कॉट्स", "sd": "सिंधी", "sdh": "दक्षिणी कार्डिश", "se": "नॉर्दन सामी", "seh": "सेना", "sel": "सेल्कप", "ses": "कोयराबोरो सेन्नी", "sg": "सांगो", "sga": "पुरानी आइरिश", "sh": "सेर्बो-क्रोएशियाई", "shi": "तैचेल्हित", "shn": "शैन", "si": "सिंहली", "sid": "सिदामो", "sk": "स्लोवाक", "sl": "स्लोवेनियाई", "sm": "सामोन", "sma": "दक्षिणी सामी", "smj": "ल्युल सामी", "smn": "इनारी सामी", "sms": "स्कोल्ट सामी", "sn": "शोणा", "snk": "सोनिन्के", "so": "सोमाली", "sog": "सोग्डिएन", "sq": "अल्बानियाई", "sr": "सर्बियाई", "srn": "स्रानान टॉन्गो", "srr": "सेरेर", "ss": "स्वाती", "ssy": "साहो", "st": "दक्षिणी सेसेथो", "su": "सुंडानी", "suk": "सुकुमा", "sus": "सुसु", "sux": "सुमेरियन", "sv": "स्वीडिश", "sw": "स्वाहिली", "sw-CD": "कांगो स्वाहिली", "swb": "कोमोरियन", "syc": "क्लासिकल सिरिएक", "syr": "सिरिएक", "ta": "तमिल", "te": "तेलुगू", "tem": "टिम्ने", "teo": "टेसो", "ter": "तेरेनो", "tet": "तेतुम", "tg": "ताजिक", "th": "थाई", "ti": "तिग्रीन्या", "tig": "टाइग्रे", "tiv": "तिव", "tk": "तुर्कमेन", "tkl": "तोकेलाऊ", "tl": "टैगलॉग", "tlh": "क्लिंगन", "tli": "त्लिंगित", "tmh": "तामाशेक", "tn": "सेत्स्वाना", "to": "टोंगन", "tog": "न्यासा टोन्गा", "tpi": "टोक पिसिन", "tr": "तुर्की", "trv": "तारोको", "ts": "सोंगा", "tsi": "त्सिमीशियन", "tt": "तातार", "tum": "तम्बूका", "tvl": "तुवालु", "tw": "ट्वी", "twq": "टासवाक", "ty": "ताहितियन", "tyv": "तुवीनियन", "tzm": "मध्य एटलस तमाज़ित", "udm": "उदमुर्त", "ug": "उइगर", "uga": "युगैरिटिक", "uk": "यूक्रेनियाई", "umb": "उम्बुन्डु", "ur": "उर्दू", "uz": "उज़्बेक", "vai": "वाई", "ve": "वेन्दा", "vi": "वियतनामी", "vo": "वोलापुक", "vot": "वॉटिक", "vun": "वुंजो", "wa": "वाल्लून", "wae": "वाल्सर", "wal": "वलामो", "war": "वारै", "was": "वाशो", "wbp": "वॉल्पेरी", "wo": "वोलोफ़", "wuu": "वू चीनी", "xal": "काल्मिक", "xh": "ख़ोसा", "xog": "सोगा", "yao": "याओ", "yap": "यापीस", "yav": "यांगबेन", "ybb": "येंबा", "yi": "यहूदी", "yo": "योरूबा", "yue": "कैंटोनीज़", "za": "ज़ुआंग", "zap": "ज़ेपोटेक", "zbl": "ब्लिसिम्बॉल्स", "zen": "ज़ेनान्गा", "zgh": "मानक मोरक्कन तामाज़ाइट", "zh": "चीनी", "zh-Hans": "सरलीकृत चीनी", "zh-Hant": "पारंपरिक चीनी", "zu": "ज़ुलू", "zun": "ज़ूनी", "zza": "ज़ाज़ा"}, "scriptNames": {"Cyrl": "सिरिलिक", "Latn": "लैटिन", "Arab": "अरबी", "Guru": "गुरमुखी", "Tfng": "तिफिनाघ", "Vaii": "वाई", "Hans": "सरलीकृत", "Hant": "पारंपरिक"}}, + "hr": {"rtl": false, "languageNames": {"aa": "afarski", "ab": "abhaski", "ace": "ačinski", "ach": "ačoli", "ada": "adangme", "ady": "adigejski", "ae": "avestički", "af": "afrikaans", "afh": "afrihili", "agq": "aghem", "ain": "ainuski", "ak": "akanski", "akk": "akadski", "ale": "aleutski", "alt": "južni altai", "am": "amharski", "an": "aragonski", "ang": "staroengleski", "anp": "angika", "ar": "arapski", "ar-001": "moderni standardni arapski", "arc": "aramejski", "arn": "mapuche", "arp": "arapaho", "ars": "najdi arapski", "arw": "aravački", "as": "asamski", "asa": "asu", "ast": "asturijski", "av": "avarski", "awa": "awadhi", "ay": "ajmarski", "az": "azerbajdžanski", "az-Arab": "južnoazerbajdžanski", "ba": "baškirski", "bal": "belučki", "ban": "balijski", "bas": "basa", "bax": "bamunski", "bbj": "ghomala", "be": "bjeloruski", "bej": "beja", "bem": "bemba", "bez": "bena", "bfd": "bafut", "bg": "bugarski", "bgn": "zapadnobaludžijski", "bho": "bhojpuri", "bi": "bislama", "bik": "bikolski", "bin": "bini", "bkm": "kom", "bla": "siksika", "bm": "bambara", "bn": "bangla", "bo": "tibetski", "br": "bretonski", "bra": "braj", "brx": "bodo", "bs": "bosanski", "bss": "akoose", "bua": "burjatski", "bug": "buginski", "bum": "bulu", "byn": "blin", "byv": "medumba", "ca": "katalonski", "cad": "caddo", "car": "karipski", "cay": "cayuga", "cch": "atsam", "ccp": "chakma", "ce": "čečenski", "ceb": "cebuano", "cgg": "chiga", "ch": "chamorro", "chb": "čibča", "chg": "čagatajski", "chk": "chuukese", "chm": "marijski", "chn": "chinook žargon", "cho": "choctaw", "chp": "chipewyan", "chr": "čerokijski", "chy": "čejenski", "ckb": "soranski kurdski", "co": "korzički", "cop": "koptski", "cr": "cree", "crh": "krimski turski", "crs": "sejšelski kreolski", "cs": "češki", "csb": "kašupski", "cu": "crkvenoslavenski", "cv": "čuvaški", "cy": "velški", "da": "danski", "dak": "dakota jezik", "dar": "dargwa", "dav": "taita", "de": "njemački", "de-AT": "austrijski njemački", "de-CH": "gornjonjemački (švicarski)", "del": "delavarski", "den": "slave", "dgr": "dogrib", "din": "dinka", "dje": "zarma", "doi": "dogri", "dsb": "donjolužički", "dua": "duala", "dum": "srednjonizozemski", "dv": "divehi", "dyo": "jola-fonyi", "dyu": "dyula", "dz": "dzongkha", "dzg": "dazaga", "ebu": "embu", "ee": "ewe", "efi": "efik", "egy": "staroegipatski", "eka": "ekajuk", "el": "grčki", "elx": "elamitski", "en": "engleski", "en-AU": "australski engleski", "en-CA": "kanadski engleski", "en-GB": "britanski engleski", "en-US": "američki engleski", "enm": "srednjoengleski", "eo": "esperanto", "es": "španjolski", "es-419": "latinoamerički španjolski", "es-ES": "europski španjolski", "es-MX": "meksički španjolski", "et": "estonski", "eu": "baskijski", "ewo": "ewondo", "fa": "perzijski", "fan": "fang", "fat": "fanti", "ff": "fula", "fi": "finski", "fil": "filipinski", "fj": "fidžijski", "fo": "ferojski", "fr": "francuski", "fr-CA": "kanadski francuski", "fr-CH": "švicarski francuski", "frc": "kajunski francuski", "frm": "srednjofrancuski", "fro": "starofrancuski", "frr": "sjevernofrizijski", "frs": "istočnofrizijski", "fur": "furlanski", "fy": "zapadnofrizijski", "ga": "irski", "gaa": "ga", "gag": "gagauski", "gan": "gan kineski", "gay": "gayo", "gba": "gbaya", "gd": "škotski gaelski", "gez": "geez", "gil": "gilbertski", "gl": "galicijski", "gmh": "srednjogornjonjemački", "gn": "gvaranski", "goh": "starovisokonjemački", "gon": "gondi", "gor": "gorontalo", "got": "gotski", "grb": "grebo", "grc": "starogrčki", "gsw": "švicarski njemački", "gu": "gudžaratski", "guz": "gusii", "gv": "manski", "gwi": "gwich’in", "ha": "hausa", "hai": "haidi", "hak": "hakka kineski", "haw": "havajski", "he": "hebrejski", "hi": "hindski", "hil": "hiligaynonski", "hit": "hetitski", "hmn": "hmong", "ho": "hiri motu", "hr": "hrvatski", "hsb": "gornjolužički", "hsn": "xiang kineski", "ht": "haićanski kreolski", "hu": "mađarski", "hup": "hupa", "hy": "armenski", "hz": "herero", "ia": "interlingua", "iba": "iban", "ibb": "ibibio", "id": "indonezijski", "ie": "interligua", "ig": "igbo", "ii": "sichuan ji", "ik": "inupiaq", "ilo": "iloko", "inh": "ingušetski", "io": "ido", "is": "islandski", "it": "talijanski", "iu": "inuktitut", "ja": "japanski", "jbo": "lojban", "jgo": "ngomba", "jmc": "machame", "jpr": "judejsko-perzijski", "jrb": "judejsko-arapski", "jv": "javanski", "ka": "gruzijski", "kaa": "kara-kalpak", "kab": "kabilski", "kac": "kačinski", "kaj": "kaje", "kam": "kamba", "kaw": "kawi", "kbd": "kabardinski", "kbl": "kanembu", "kcg": "tyap", "kde": "makonde", "kea": "zelenortski", "kfo": "koro", "kg": "kongo", "kha": "khasi", "kho": "khotanese", "khq": "koyra chiini", "ki": "kikuyu", "kj": "kuanyama", "kk": "kazaški", "kkj": "kako", "kl": "kalaallisut", "kln": "kalenjin", "km": "kmerski", "kmb": "kimbundu", "kn": "karnatački", "ko": "korejski", "koi": "komi-permski", "kok": "konkani", "kos": "naurski", "kpe": "kpelle", "kr": "kanuri", "krc": "karachay-balkar", "krl": "karelijski", "kru": "kuruški", "ks": "kašmirski", "ksb": "shambala", "ksf": "bafia", "ksh": "kelnski", "ku": "kurdski", "kum": "kumyk", "kut": "kutenai", "kv": "komi", "kw": "kornski", "ky": "kirgiski", "la": "latinski", "lad": "ladino", "lag": "langi", "lah": "lahnda", "lam": "lamba", "lb": "luksemburški", "lez": "lezgiški", "lg": "ganda", "li": "limburški", "lkt": "lakota", "ln": "lingala", "lo": "laoski", "lol": "mongo", "lou": "lujzijanski kreolski", "loz": "lozi", "lrc": "sjevernolurski", "lt": "litavski", "lu": "luba-katanga", "lua": "luba-lulua", "lui": "luiseno", "lun": "lunda", "lus": "lushai", "luy": "luyia", "lv": "latvijski", "mad": "madurski", "maf": "mafa", "mag": "magahi", "mai": "maithili", "mak": "makasar", "man": "mandingo", "mas": "masajski", "mde": "maba", "mdf": "moksha", "mdr": "mandar", "men": "mende", "mer": "meru", "mfe": "mauricijski kreolski", "mg": "malgaški", "mga": "srednjoirski", "mgh": "makhuwa-meetto", "mgo": "meta’", "mh": "maršalski", "mi": "maorski", "mic": "micmac", "min": "minangkabau", "mk": "makedonski", "ml": "malajalamski", "mn": "mongolski", "mnc": "mandžurski", "mni": "manipurski", "moh": "mohok", "mos": "mossi", "mr": "marathski", "ms": "malajski", "mt": "malteški", "mua": "mundang", "mus": "creek", "mwl": "mirandski", "mwr": "marwari", "my": "burmanski", "mye": "myene", "myv": "mordvinski", "mzn": "mazanderanski", "na": "nauru", "nan": "min nan kineski", "nap": "napolitanski", "naq": "nama", "nb": "norveški bokmål", "nd": "sjeverni ndebele", "nds": "donjonjemački", "nds-NL": "donjosaksonski", "ne": "nepalski", "new": "newari", "ng": "ndonga", "nia": "nias", "niu": "niujski", "nl": "nizozemski", "nl-BE": "flamanski", "nmg": "kwasio", "nn": "norveški nynorsk", "nnh": "ngiemboon", "no": "norveški", "nog": "nogajski", "non": "staronorveški", "nqo": "n’ko", "nr": "južni ndebele", "nso": "sjeverni sotski", "nus": "nuerski", "nv": "navajo", "nwc": "klasični newari", "ny": "njandža", "nym": "nyamwezi", "nyn": "nyankole", "nyo": "nyoro", "nzi": "nzima", "oc": "okcitanski", "oj": "ojibwa", "om": "oromski", "or": "orijski", "os": "osetski", "osa": "osage", "ota": "turski - otomanski", "pa": "pandžapski", "pag": "pangasinan", "pal": "pahlavi", "pam": "pampanga", "pap": "papiamento", "pau": "palauanski", "pcm": "nigerijski pidžin", "peo": "staroperzijski", "phn": "fenički", "pi": "pali", "pl": "poljski", "pon": "pohnpeian", "prg": "pruski", "pro": "staroprovansalski", "ps": "paštunski", "pt": "portugalski", "pt-BR": "brazilski portugalski", "pt-PT": "europski portugalski", "qu": "kečuanski", "quc": "kiče", "raj": "rajasthani", "rap": "rapa nui", "rar": "rarotonški", "rm": "retoromanski", "rn": "rundi", "ro": "rumunjski", "ro-MD": "moldavski", "rof": "rombo", "rom": "romski", "root": "korijenski", "ru": "ruski", "rup": "aromunski", "rw": "kinyarwanda", "rwk": "rwa", "sa": "sanskrtski", "sad": "sandawe", "sah": "jakutski", "sam": "samarijanski aramejski", "saq": "samburu", "sas": "sasak", "sat": "santalski", "sba": "ngambay", "sbp": "sangu", "sc": "sardski", "scn": "sicilijski", "sco": "škotski", "sd": "sindski", "sdh": "južnokurdski", "se": "sjeverni sami", "see": "seneca", "seh": "sena", "sel": "selkupski", "ses": "koyraboro senni", "sg": "sango", "sga": "staroirski", "sh": "srpsko-hrvatski", "shi": "tachelhit", "shn": "shan", "shu": "čadski arapski", "si": "sinhaleški", "sid": "sidamo", "sk": "slovački", "sl": "slovenski", "sm": "samoanski", "sma": "južni sami", "smj": "lule sami", "smn": "inari sami", "sms": "skolt sami", "sn": "shona", "snk": "soninke", "so": "somalski", "sog": "sogdien", "sq": "albanski", "sr": "srpski", "srn": "sranan tongo", "srr": "serer", "ss": "svati", "ssy": "saho", "st": "sesotski", "su": "sundanski", "suk": "sukuma", "sus": "susu", "sux": "sumerski", "sv": "švedski", "sw": "svahili", "sw-CD": "kongoanski svahili", "swb": "komorski", "syc": "klasični sirski", "syr": "sirijski", "ta": "tamilski", "te": "teluški", "tem": "temne", "teo": "teso", "ter": "tereno", "tet": "tetum", "tg": "tadžički", "th": "tajlandski", "ti": "tigrinja", "tig": "tigriški", "tk": "turkmenski", "tkl": "tokelaunski", "tl": "tagalog", "tlh": "klingonski", "tli": "tlingit", "tmh": "tamašečki", "tn": "cvana", "to": "tonganski", "tog": "nyasa tonga", "tpi": "tok pisin", "tr": "turski", "trv": "taroko", "ts": "tsonga", "tsi": "tsimshian", "tt": "tatarski", "tum": "tumbuka", "tvl": "tuvaluanski", "tw": "twi", "twq": "tasawaq", "ty": "tahićanski", "tyv": "tuvinski", "tzm": "tamašek (Srednji Atlas)", "udm": "udmurtski", "ug": "ujgurski", "uga": "ugaritski", "uk": "ukrajinski", "umb": "umbundu", "ur": "urdski", "uz": "uzbečki", "ve": "venda", "vi": "vijetnamski", "vo": "volapük", "vot": "votski", "vun": "vunjo", "wa": "valonski", "wae": "walserski", "wal": "walamo", "war": "waray", "was": "washo", "wbp": "warlpiri", "wo": "volof", "wuu": "wu kineski", "xal": "kalmyk", "xh": "xhosa", "xog": "soga", "yap": "japski", "yav": "yangben", "ybb": "yemba", "yi": "jidiš", "yo": "jorupski", "yue": "kantonski", "za": "zhuang", "zap": "zapotečki", "zbl": "Blissovi simboli", "zen": "zenaga", "zgh": "standardni marokanski tamašek", "zh": "kineski", "zh-Hans": "kineski (pojednostavljeni)", "zh-Hant": "kineski (tradicionalni)", "zu": "zulu", "zun": "zuni", "zza": "zazaki"}, "scriptNames": {"Cyrl": "ćirilica", "Latn": "latinica", "Arab": "arapsko pismo", "Guru": "gurmukhi pismo", "Tfng": "tifinar", "Vaii": "vai pismo", "Hans": "pojednostavljeno pismo", "Hant": "tradicionalno pismo"}}, + "hu": {"rtl": false, "languageNames": {"aa": "afar", "ab": "abház", "ace": "achinéz", "ach": "akoli", "ada": "adangme", "ady": "adyghe", "ae": "avesztán", "af": "afrikaans", "afh": "afrihili", "agq": "agem", "ain": "ainu", "ak": "akan", "akk": "akkád", "ale": "aleut", "alt": "dél-altaji", "am": "amhara", "an": "aragonéz", "ang": "óangol", "anp": "angika", "ar": "arab", "ar-001": "modern szabányos arab", "arc": "arámi", "arn": "mapucse", "arp": "arapaho", "ars": "nedzsdi arab", "arw": "aravak", "as": "asszámi", "asa": "asu", "ast": "asztúr", "av": "avar", "awa": "awádi", "ay": "ajmara", "az": "azerbajdzsáni", "ba": "baskír", "bal": "balucsi", "ban": "balinéz", "bas": "basza", "bax": "bamun", "bbj": "gomala", "be": "belarusz", "bej": "bedzsa", "bem": "bemba", "bez": "bena", "bfd": "bafut", "bg": "bolgár", "bgn": "nyugati beludzs", "bho": "bodzspuri", "bi": "bislama", "bik": "bikol", "bin": "bini", "bkm": "kom", "bla": "siksika", "bm": "bambara", "bn": "bangla", "bo": "tibeti", "br": "breton", "bra": "braj", "brx": "bodo", "bs": "bosnyák", "bss": "koszi", "bua": "burját", "bug": "buginéz", "bum": "bulu", "byn": "blin", "byv": "medumba", "ca": "katalán", "cad": "caddo", "car": "karib", "cay": "kajuga", "cch": "atszam", "ccp": "csakma", "ce": "csecsen", "ceb": "szebuano", "cgg": "kiga", "ch": "csamoró", "chb": "csibcsa", "chg": "csagatáj", "chk": "csukéz", "chm": "mari", "chn": "csinuk zsargon", "cho": "csoktó", "chp": "csipevé", "chr": "cseroki", "chy": "csejen", "ckb": "közép-ázsiai kurd", "co": "korzikai", "cop": "kopt", "cr": "krí", "crh": "krími tatár", "crs": "szeszelva kreol francia", "cs": "cseh", "csb": "kasub", "cu": "egyházi szláv", "cv": "csuvas", "cy": "walesi", "da": "dán", "dak": "dakota", "dar": "dargva", "dav": "taita", "de": "német", "de-AT": "osztrák német", "de-CH": "svájci felnémet", "del": "delavár", "den": "szlevi", "dgr": "dogrib", "din": "dinka", "dje": "zarma", "doi": "dogri", "dsb": "alsó-szorb", "dua": "duala", "dum": "közép holland", "dv": "divehi", "dyo": "jola-fonyi", "dyu": "diula", "dz": "dzsonga", "dzg": "dazaga", "ebu": "embu", "ee": "eve", "efi": "efik", "egy": "óegyiptomi", "eka": "ekadzsuk", "el": "görög", "elx": "elamit", "en": "angol", "en-AU": "ausztrál angol", "en-CA": "kanadai angol", "en-GB": "brit angol", "en-US": "amerikai angol", "enm": "közép angol", "eo": "eszperantó", "es": "spanyol", "es-419": "latin-amerikai spanyol", "es-ES": "európai spanyol", "es-MX": "spanyol (mexikói)", "et": "észt", "eu": "baszk", "ewo": "evondo", "fa": "perzsa", "fan": "fang", "fat": "fanti", "ff": "fulani", "fi": "finn", "fil": "filippínó", "fj": "fidzsi", "fo": "feröeri", "fr": "francia", "fr-CA": "kanadai francia", "fr-CH": "svájci francia", "frc": "cajun francia", "frm": "közép francia", "fro": "ófrancia", "frr": "északi fríz", "frs": "keleti fríz", "fur": "friuli", "fy": "nyugati fríz", "ga": "ír", "gaa": "ga", "gag": "gagauz", "gan": "gan kínai", "gay": "gajo", "gba": "gbaja", "gd": "skóciai kelta", "gez": "geez", "gil": "ikiribati", "gl": "gallego", "gmh": "közép felső német", "gn": "guarani", "goh": "ófelső német", "gon": "gondi", "gor": "gorontalo", "got": "gót", "grb": "grebó", "grc": "ógörög", "gsw": "svájci német", "gu": "gudzsaráti", "guz": "guszii", "gv": "man-szigeti", "gwi": "gvicsin", "ha": "hausza", "hai": "haida", "hak": "hakka kínai", "haw": "hawaii", "he": "héber", "hi": "hindi", "hil": "ilokano", "hit": "hittite", "hmn": "hmong", "ho": "hiri motu", "hr": "horvát", "hsb": "felső-szorb", "hsn": "xiang kínai", "ht": "haiti kreol", "hu": "magyar", "hup": "hupa", "hy": "örmény", "hz": "herero", "ia": "interlingva", "iba": "iban", "ibb": "ibibio", "id": "indonéz", "ie": "interlingue", "ig": "igbó", "ii": "szecsuán ji", "ik": "inupiak", "ilo": "ilokó", "inh": "ingus", "io": "idó", "is": "izlandi", "it": "olasz", "iu": "inuktitut", "ja": "japán", "jbo": "lojban", "jgo": "ngomba", "jmc": "machame", "jpr": "zsidó-perzsa", "jrb": "zsidó-arab", "jv": "jávai", "ka": "grúz", "kaa": "kara-kalpak", "kab": "kabije", "kac": "kacsin", "kaj": "jju", "kam": "kamba", "kaw": "kawi", "kbd": "kabardi", "kbl": "kanembu", "kcg": "tyap", "kde": "makonde", "kea": "kabuverdianu", "kfo": "koro", "kg": "kongo", "kha": "kaszi", "kho": "kotanéz", "khq": "kojra-csíni", "ki": "kikuju", "kj": "kuanyama", "kk": "kazah", "kkj": "kakó", "kl": "grönlandi", "kln": "kalendzsin", "km": "khmer", "kmb": "kimbundu", "kn": "kannada", "ko": "koreai", "koi": "komi-permják", "kok": "konkani", "kos": "kosrei", "kpe": "kpelle", "kr": "kanuri", "krc": "karacsáj-balkár", "krl": "karelai", "kru": "kuruh", "ks": "kasmíri", "ksb": "sambala", "ksf": "bafia", "ksh": "kölsch", "ku": "kurd", "kum": "kumük", "kut": "kutenai", "kv": "komi", "kw": "korni", "ky": "kirgiz", "la": "latin", "lad": "ladino", "lag": "langi", "lah": "lahnda", "lam": "lamba", "lb": "luxemburgi", "lez": "lezg", "lg": "ganda", "li": "limburgi", "lkt": "lakota", "ln": "lingala", "lo": "lao", "lol": "mongó", "lou": "louisianai kreol", "loz": "lozi", "lrc": "északi luri", "lt": "litván", "lu": "luba-katanga", "lua": "luba-lulua", "lui": "luiseno", "lun": "lunda", "lus": "lushai", "luy": "lujia", "lv": "lett", "mad": "madurai", "maf": "mafa", "mag": "magahi", "mai": "maithili", "mak": "makaszar", "man": "mandingó", "mas": "masai", "mde": "maba", "mdf": "moksán", "mdr": "mandar", "men": "mende", "mer": "meru", "mfe": "mauritiusi kreol", "mg": "malgas", "mga": "közép ír", "mgh": "makua-metó", "mgo": "meta’", "mh": "marshalli", "mi": "maori", "mic": "mikmak", "min": "minangkabau", "mk": "macedón", "ml": "malajálam", "mn": "mongol", "mnc": "mandzsu", "mni": "manipuri", "moh": "mohawk", "mos": "moszi", "mr": "maráthi", "ms": "maláj", "mt": "máltai", "mua": "mundang", "mus": "krík", "mwl": "mirandéz", "mwr": "márvári", "my": "burmai", "mye": "myene", "myv": "erzjány", "mzn": "mázanderáni", "na": "naurui", "nan": "min nan kínai", "nap": "nápolyi", "naq": "nama", "nb": "norvég (bokmål)", "nd": "északi ndebele", "nds": "alsónémet", "nds-NL": "alsószász", "ne": "nepáli", "new": "nevari", "ng": "ndonga", "nia": "nias", "niu": "niuei", "nl": "holland", "nl-BE": "flamand", "nmg": "ngumba", "nn": "norvég (nynorsk)", "nnh": "ngiemboon", "no": "norvég", "nog": "nogaj", "non": "óskandináv", "nqo": "n’kó", "nr": "déli ndebele", "nso": "északi szeszotó", "nus": "nuer", "nv": "navahó", "nwc": "klasszikus newari", "ny": "nyandzsa", "nym": "nyamvézi", "nyn": "nyankole", "nyo": "nyoró", "nzi": "nzima", "oc": "okszitán", "oj": "ojibva", "om": "oromo", "or": "odia", "os": "oszét", "osa": "osage", "ota": "ottomán török", "pa": "pandzsábi", "pag": "pangaszinan", "pal": "pahlavi", "pam": "pampangan", "pap": "papiamento", "pau": "palaui", "pcm": "nigériai pidgin", "peo": "óperzsa", "phn": "főniciai", "pi": "pali", "pl": "lengyel", "pon": "pohnpei", "prg": "porosz", "pro": "óprovánszi", "ps": "pastu", "pt": "portugál", "pt-BR": "brazíliai portugál", "pt-PT": "európai portugál", "qu": "kecsua", "quc": "kicse", "raj": "radzsasztáni", "rap": "rapanui", "rar": "rarotongai", "rm": "rétoromán", "rn": "kirundi", "ro": "román", "ro-MD": "moldvai", "rof": "rombo", "rom": "roma", "root": "ősi", "ru": "orosz", "rup": "aromán", "rw": "kinyarvanda", "rwk": "rwo", "sa": "szanszkrit", "sad": "szandave", "sah": "szaha", "sam": "szamaritánus arámi", "saq": "szamburu", "sas": "sasak", "sat": "szantáli", "sba": "ngambay", "sbp": "szangu", "sc": "szardíniai", "scn": "szicíliai", "sco": "skót", "sd": "szindhi", "sdh": "dél-kurd", "se": "északi számi", "see": "szeneka", "seh": "szena", "sel": "szölkup", "ses": "kojra-szenni", "sg": "szangó", "sga": "óír", "sh": "szerbhorvát", "shi": "tachelhit", "shn": "san", "shu": "csádi arab", "si": "szingaléz", "sid": "szidamó", "sk": "szlovák", "sl": "szlovén", "sm": "szamoai", "sma": "déli számi", "smj": "lulei számi", "smn": "inari számi", "sms": "kolta számi", "sn": "sona", "snk": "szoninke", "so": "szomáli", "sog": "sogdien", "sq": "albán", "sr": "szerb", "srn": "szranai tongó", "srr": "szerer", "ss": "sziszuati", "ssy": "szahó", "st": "déli szeszotó", "su": "szundanéz", "suk": "szukuma", "sus": "szuszu", "sux": "sumér", "sv": "svéd", "sw": "szuahéli", "sw-CD": "kongói szuahéli", "swb": "comorei", "syc": "klasszikus szír", "syr": "szír", "ta": "tamil", "te": "telugu", "tem": "temne", "teo": "teszó", "ter": "terenó", "tet": "tetum", "tg": "tadzsik", "th": "thai", "ti": "tigrinya", "tig": "tigré", "tk": "türkmén", "tkl": "tokelaui", "tl": "tagalog", "tlh": "klingon", "tli": "tlingit", "tmh": "tamasek", "tn": "szecsuáni", "to": "tongai", "tog": "nyugati nyasza", "tpi": "tok pisin", "tr": "török", "trv": "tarokó", "ts": "conga", "tsi": "csimsiáni", "tt": "tatár", "tum": "tumbuka", "tvl": "tuvalu", "tw": "twi", "twq": "szavák", "ty": "tahiti", "tyv": "tuvai", "tzm": "közép-atlaszi tamazigt", "udm": "udmurt", "ug": "ujgur", "uga": "ugariti", "uk": "ukrán", "umb": "umbundu", "ur": "urdu", "uz": "üzbég", "ve": "venda", "vi": "vietnami", "vo": "volapük", "vot": "votják", "vun": "vunjo", "wa": "vallon", "wae": "walser", "wal": "valamo", "war": "varaó", "was": "vasó", "wbp": "warlpiri", "wo": "volof", "wuu": "wu kínai", "xal": "kalmük", "xh": "xhosza", "xog": "szoga", "yao": "jaó", "yap": "japi", "yav": "jangben", "ybb": "jemba", "yi": "jiddis", "yo": "joruba", "yue": "kantoni", "za": "zsuang", "zap": "zapoték", "zbl": "Bliss jelképrendszer", "zen": "zenaga", "zgh": "marokkói tamazight", "zh": "kínai", "zh-Hans": "egyszerűsített kínai", "zh-Hant": "hagyományos kínai", "zu": "zulu", "zun": "zuni", "zza": "zaza"}, "scriptNames": {"Cyrl": "Cirill", "Latn": "Latin", "Guru": "Gurmuki", "Tfng": "Berber", "Vaii": "Vai", "Hans": "Egyszerűsített", "Hant": "Hagyományos"}}, + "hy": {"rtl": false, "languageNames": {"aa": "աֆարերեն", "ab": "աբխազերեն", "ace": "աչեհերեն", "ach": "աչոլի", "ada": "ադանգմերեն", "ady": "ադիղերեն", "aeb": "թունիսական արաբերեն", "af": "աֆրիկաանս", "agq": "աղեմ", "ain": "այներեն", "ak": "աքան", "akk": "աքքադերեն", "ale": "ալեութերեն", "alt": "հարավային ալթայերեն", "am": "ամհարերեն", "an": "արագոներեն", "ang": "հին անգլերեն", "anp": "անգիկա", "ar": "արաբերեն", "ar-001": "արդի ընդհանուր արաբերեն", "arc": "արամեերեն", "arn": "մապուչի", "arp": "արապահո", "arq": "ալժիրական արաբերեն", "arz": "եգիպտական արաբերեն", "as": "ասամերեն", "asa": "ասու", "ase": "ամերիկյան ժեստերի լեզու", "ast": "աստուրերեն", "av": "ավարերեն", "awa": "ավադհի", "ay": "այմարա", "az": "ադրբեջաներեն", "ba": "բաշկիրերեն", "ban": "բալիերեն", "bas": "բասաա", "be": "բելառուսերեն", "bem": "բեմբա", "bez": "բենա", "bg": "բուլղարերեն", "bgn": "արևմտաբելուջիերեն", "bho": "բհոպուրի", "bi": "բիսլամա", "bin": "բինի", "bla": "սիկսիկա", "bm": "բամբարա", "bn": "բենգալերեն", "bo": "տիբեթերեն", "br": "բրետոներեն", "brx": "բոդո", "bs": "բոսնիերեն", "bss": "աքուզ", "bug": "բուգիերեն", "byn": "բիլին", "ca": "կատալաներեն", "ce": "չեչեներեն", "ceb": "սեբուերեն", "cgg": "չիգա", "ch": "չամոռո", "chk": "տրուկերեն", "chm": "մարի", "cho": "չոկտո", "chr": "չերոկի", "chy": "շայեն", "ckb": "սորանի քրդերեն", "co": "կորսիկերեն", "cop": "ղպտերեն", "crh": "ղրիմյան թուրքերեն", "crs": "սեյշելյան խառնակերտ ֆրանսերեն", "cs": "չեխերեն", "cu": "եկեղեցական սլավոներեն", "cv": "չուվաշերեն", "cy": "ուելսերեն", "da": "դանիերեն", "dak": "դակոտա", "dar": "դարգիներեն", "dav": "թաիթա", "de": "գերմաներեն", "de-AT": "ավստրիական գերմաներեն", "de-CH": "շվեյցարական վերին գերմաներեն", "dgr": "դոգրիբ", "dje": "զարմա", "dsb": "ստորին սորբերեն", "dua": "դուալա", "dv": "մալդիվերեն", "dyo": "ջոլա-ֆոնյի", "dz": "ջոնգքհա", "dzg": "դազագա", "ebu": "էմբու", "ee": "էվե", "efi": "էֆիկ", "egy": "հին եգիպտերեն", "eka": "էկաջուկ", "el": "հունարեն", "en": "անգլերեն", "en-AU": "ավստրալիական անգլերեն", "en-CA": "կանադական անգլերեն", "en-GB": "բրիտանական անգլերեն", "en-US": "ամերիկյան անգլերեն", "eo": "էսպերանտո", "es": "իսպաներեն", "es-419": "լատինամերիկյան իսպաներեն", "es-ES": "եվրոպական իսպաներեն", "es-MX": "մեքսիկական իսպաներեն", "et": "էստոներեն", "eu": "բասկերեն", "ewo": "էվոնդո", "fa": "պարսկերեն", "ff": "ֆուլահ", "fi": "ֆիններեն", "fil": "ֆիլիպիներեն", "fit": "տորնադելեն ֆիններեն", "fj": "ֆիջիերեն", "fo": "ֆարյորերեն", "fon": "ֆոն", "fr": "ֆրանսերեն", "fr-CA": "կանադական ֆրանսերեն", "fr-CH": "շվեյցարական ֆրանսերեն", "fro": "հին ֆրանսերեն", "frs": "արևելաֆրիզերեն", "fur": "ֆրիուլիերեն", "fy": "արևմտաֆրիզերեն", "ga": "իռլանդերեն", "gaa": "գայերեն", "gag": "գագաուզերեն", "gbz": "զրադաշտական դարի", "gd": "շոտլանդական գաելերեն", "gez": "գեեզ", "gil": "կիրիբատի", "gl": "գալիսերեն", "gn": "գուարանի", "goh": "հին վերին գերմաներեն", "gor": "գորոնտալո", "got": "գոթերեն", "grc": "հին հունարեն", "gsw": "շվեյցարական գերմաներեն", "gu": "գուջարաթի", "guc": "վայուու", "guz": "գուսի", "gv": "մեներեն", "gwi": "գվիչին", "ha": "հաուսա", "haw": "հավայիերեն", "he": "եբրայերեն", "hi": "հինդի", "hil": "հիլիգայնոն", "hmn": "հմոնգ", "hr": "խորվաթերեն", "hsb": "վերին սորբերեն", "hsn": "սյան չինարեն", "ht": "խառնակերտ հայիթերեն", "hu": "հունգարերեն", "hup": "հուպա", "hy": "հայերեն", "hz": "հերերո", "ia": "ինտերլինգուա", "iba": "իբաներեն", "ibb": "իբիբիո", "id": "ինդոնեզերեն", "ie": "ինտերլինգուե", "ig": "իգբո", "ii": "սիչուան", "ilo": "իլոկերեն", "inh": "ինգուշերեն", "io": "իդո", "is": "իսլանդերեն", "it": "իտալերեն", "iu": "ինուկտիտուտ", "ja": "ճապոներեն", "jbo": "լոժբան", "jgo": "նգոմբա", "jmc": "մաշամե", "jv": "ճավայերեն", "ka": "վրացերեն", "kab": "կաբիլերեն", "kac": "կաչիներեն", "kaj": "ջյու", "kam": "կամբա", "kbd": "կաբարդերեն", "kcg": "տիապ", "kde": "մակոնդե", "kea": "կաբուվերդերեն", "kfo": "կորո", "kha": "քասիերեն", "khq": "կոյրա չինի", "ki": "կիկույու", "kj": "կուանյամա", "kk": "ղազախերեն", "kkj": "կակո", "kl": "կալաալիսուտ", "kln": "կալենջին", "km": "քմերերեն", "kmb": "կիմբունդու", "kn": "կաննադա", "ko": "կորեերեն", "koi": "պերմյակ կոմիերեն", "kok": "կոնկանի", "kpe": "կպելլեերեն", "kr": "կանուրի", "krc": "կարաչայ-բալկարերեն", "krl": "կարելերեն", "kru": "կուրուխ", "ks": "քաշմիրերեն", "ksb": "շամբալա", "ksf": "բաֆիա", "ksh": "քյոլներեն", "ku": "քրդերեն", "kum": "կումիկերեն", "kv": "կոմիերեն", "kw": "կոռներեն", "ky": "ղրղզերեն", "la": "լատիներեն", "lad": "լադինո", "lag": "լանգի", "lb": "լյուքսեմբուրգերեն", "lez": "լեզգիերեն", "lg": "գանդա", "li": "լիմբուրգերեն", "lkt": "լակոտա", "ln": "լինգալա", "lo": "լաոսերեն", "loz": "լոզի", "lrc": "հյուսիսային լուրիերեն", "lt": "լիտվերեն", "lu": "լուբա-կատանգա", "lua": "լուբա-լուլուա", "lun": "լունդա", "luo": "լուո", "lus": "միզո", "luy": "լույա", "lv": "լատվիերեն", "mad": "մադուրերեն", "mag": "մագահի", "mai": "մայթիլի", "mak": "մակասարերեն", "mas": "մասաի", "mdf": "մոկշայերեն", "men": "մենդե", "mer": "մերու", "mfe": "մորիսյեն", "mg": "մալգաշերեն", "mgh": "մաքուա-մետտո", "mgo": "մետա", "mh": "մարշալերեն", "mi": "մաորի", "mic": "միկմակ", "min": "մինանգկաբաու", "mk": "մակեդոներեն", "ml": "մալայալամ", "mn": "մոնղոլերեն", "mni": "մանիպուրի", "moh": "մոհավք", "mos": "մոսսի", "mr": "մարաթի", "mrj": "արևմտամարիերեն", "ms": "մալայերեն", "mt": "մալթայերեն", "mua": "մունդանգ", "mus": "կրիկ", "mwl": "միրանդերեն", "my": "բիրմայերեն", "myv": "էրզյա", "mzn": "մազանդարաներեն", "na": "նաուրու", "nap": "նեապոլերեն", "naq": "նամա", "nb": "գրքային նորվեգերեն", "nd": "հյուսիսային նդեբելե", "nds-NL": "ստորին սաքսոներեն", "ne": "նեպալերեն", "new": "նեվարերեն", "ng": "նդոնգա", "nia": "նիասերեն", "niu": "նիուերեն", "nl": "հոլանդերեն", "nl-BE": "ֆլամանդերեն", "nmg": "կվասիո", "nn": "նոր նորվեգերեն", "nnh": "նգիեմբուն", "no": "նորվեգերեն", "nog": "նոգայերեն", "non": "հին նորվեգերեն", "nqo": "նկո", "nr": "հարավային նդեբելե", "nso": "հյուսիսային սոթո", "nus": "նուեր", "nv": "նավախո", "ny": "նյանջա", "nyn": "նյանկոլե", "oc": "օքսիտաներեն", "oj": "օջիբվա", "om": "օրոմո", "or": "օրիյա", "os": "օսերեն", "osa": "օսեյջ", "ota": "օսմաներեն", "pa": "փենջաբերեն", "pag": "պանգասինաներեն", "pal": "պահլավերեն", "pam": "պամպանգաերեն", "pap": "պապյամենտո", "pau": "պալաուերեն", "pcd": "պիկարդերեն", "pcm": "նիգերյան կրեոլերեն", "pdc": "փենսիլվանական գերմաներեն", "pdt": "պլատագերմաներեն", "peo": "հին պարսկերեն", "pfl": "պալատինյան գերմաներեն", "phn": "փյունիկերեն", "pi": "պալի", "pl": "լեհերեն", "pms": "պիեմոնտերեն", "pnt": "պոնտերեն", "pon": "պոնպեերեն", "prg": "պրուսերեն", "pro": "հին պրովանսերեն", "ps": "փուշթու", "pt": "պորտուգալերեն", "pt-BR": "բրազիլական պորտուգալերեն", "pt-PT": "եվրոպական պորտուգալերեն", "qu": "կեչուա", "quc": "քիչե", "raj": "ռաջաստաներեն", "rap": "ռապանուի", "rar": "ռարոտոնգաներեն", "rgn": "ռոմանիոլերեն", "rif": "ռիֆերեն", "rm": "ռոմանշերեն", "rn": "ռունդի", "ro": "ռումիներեն", "ro-MD": "մոլդովերեն", "rof": "ռոմբո", "rom": "ռոմաներեն", "root": "ռուտերեն", "rtm": "ռոտուման", "ru": "ռուսերեն", "rue": "ռուսիներեն", "rug": "ռովիանա", "rup": "արոմաներեն", "rw": "կինյառուանդա", "rwk": "ռվա", "sa": "սանսկրիտ", "sad": "սանդավե", "sah": "յակուտերեն", "saq": "սամբուրու", "sat": "սանտալի", "sba": "նգամբայ", "sbp": "սանգու", "sc": "սարդիներեն", "scn": "սիցիլիերեն", "sco": "շոտլանդերեն", "sd": "սինդհի", "sdh": "հարավային քրդերեն", "se": "հյուսիսային սաամի", "seh": "սենա", "ses": "կոյրաբորո սեննի", "sg": "սանգո", "sga": "հին իռլանդերեն", "sh": "սերբա-խորվաթերեն", "shi": "տաշելհիթ", "shn": "շաներեն", "si": "սինհալերեն", "sk": "սլովակերեն", "sl": "սլովեներեն", "sm": "սամոաերեն", "sma": "հարավային սաամի", "smj": "լուլե սաամի", "smn": "ինարի սաամի", "sms": "սկոլտ սաամի", "sn": "շոնա", "snk": "սոնինկե", "so": "սոմալիերեն", "sq": "ալբաներեն", "sr": "սերբերեն", "srn": "սրանան տոնգո", "ss": "սվազերեն", "ssy": "սահոերեն", "st": "հարավային սոթո", "su": "սունդաներեն", "suk": "սուկումա", "sv": "շվեդերեն", "sw": "սուահիլի", "sw-CD": "կոնգոյի սուահիլի", "swb": "կոմորերեն", "syr": "ասորերեն", "ta": "թամիլերեն", "tcy": "տուլու", "te": "թելուգու", "tem": "տեմնե", "teo": "տեսո", "ter": "տերենո", "tet": "տետում", "tg": "տաջիկերեն", "th": "թայերեն", "ti": "տիգրինյա", "tig": "տիգրե", "tiv": "տիվերեն", "tk": "թուրքմեներեն", "tkl": "տոկելաու", "tkr": "ցախուր", "tl": "տագալերեն", "tlh": "կլինգոն", "tli": "տլինգիտ", "tly": "թալիշերեն", "tmh": "տամաշեկ", "tn": "ցվանա", "to": "տոնգերեն", "tpi": "տոկ փիսին", "tr": "թուրքերեն", "tru": "տուրոյո", "trv": "տարոկո", "ts": "ցոնգա", "tsd": "ցակոներեն", "tsi": "ցիմշյան", "tt": "թաթարերեն", "tum": "տումբուկա", "tvl": "թուվալուերեն", "tw": "տուի", "twq": "տասավաք", "ty": "թաիտերեն", "tyv": "տուվերեն", "tzm": "կենտրոնատլասյան թամազիղտ", "udm": "ուդմուրտերեն", "ug": "ույղուրերեն", "uga": "ուգարիտերեն", "uk": "ուկրաիներեն", "umb": "ումբունդու", "ur": "ուրդու", "uz": "ուզբեկերեն", "vai": "վաի", "ve": "վենդա", "vec": "վենետերեն", "vep": "վեպսերեն", "vi": "վիետնամերեն", "vls": "արևմտաֆլամանդերեն", "vo": "վոլապյուկ", "vot": "վոդերեն", "vro": "վորո", "vun": "վունջո", "wa": "վալոներեն", "wae": "վալսերեն", "wal": "վոլայտա", "war": "վարայերեն", "was": "վաշո", "wbp": "վարլպիրի", "wo": "վոլոֆ", "wuu": "վու չինարեն", "xal": "կալմիկերեն", "xh": "քոսա", "xog": "սոգա", "yao": "յաո", "yap": "յափերեն", "yav": "յանգբեն", "ybb": "եմբա", "yi": "իդիշ", "yo": "յորուբա", "yue": "կանտոներեն", "za": "ժուանգ", "zap": "սապոտեկերեն", "zea": "զեյլանդերեն", "zen": "զենագա", "zgh": "ընդհանուր մարոկյան թամազիղտ", "zh": "չինարեն", "zh-Hans": "պարզեցված չինարեն", "zh-Hant": "ավանդական չինարեն", "zu": "զուլուերեն", "zun": "զունիերեն", "zza": "զազաերեն"}, "scriptNames": {"Cyrl": "կյուրեղագիր", "Latn": "լատինական", "Arab": "արաբական", "Guru": "գուրմուխի", "Hans": "պարզեցված չինական", "Hant": "ավանդական չինական"}}, + "ia": {"rtl": false, "languageNames": {"aa": "afar", "ab": "abkhazo", "ace": "acehnese", "ada": "adangme", "ady": "adygeano", "af": "afrikaans", "agq": "aghem", "ain": "ainu", "ak": "akan", "ale": "aleuto", "alt": "altai del sud", "am": "amharico", "an": "aragonese", "anp": "angika", "ar": "arabe", "ar-001": "arabe standard moderne", "arn": "mapuche", "arp": "arapaho", "as": "assamese", "asa": "asu", "ast": "asturiano", "av": "avaro", "awa": "awadhi", "ay": "aymara", "az": "azerbaidzhano", "ba": "bashkir", "ban": "balinese", "bas": "basaa", "be": "bielorusso", "bem": "bemba", "bez": "bena", "bg": "bulgaro", "bho": "bhojpuri", "bi": "bislama", "bin": "bini", "bla": "siksika", "bm": "bambara", "bn": "bengalese", "bo": "tibetano", "br": "breton", "brx": "bodo", "bs": "bosniaco", "bug": "buginese", "byn": "blin", "ca": "catalano", "ce": "checheno", "ceb": "cebuano", "cgg": "chiga", "ch": "chamorro", "chk": "chuukese", "chm": "mari", "cho": "choctaw", "chr": "cherokee", "chy": "cheyenne", "ckb": "kurdo central", "co": "corso", "crs": "creolo seychellese", "cs": "checo", "cu": "slavo ecclesiastic", "cv": "chuvash", "cy": "gallese", "da": "danese", "dak": "dakota", "dar": "dargwa", "dav": "taita", "de": "germano", "de-AT": "germano austriac", "de-CH": "alte germano suisse", "dgr": "dogrib", "dje": "zarma", "dsb": "basse sorabo", "dua": "duala", "dv": "divehi", "dyo": "jola-fonyi", "dz": "dzongkha", "dzg": "dazaga", "ebu": "embu", "ee": "ewe", "efi": "efik", "eka": "ekajuk", "el": "greco", "en": "anglese", "en-AU": "anglese australian", "en-CA": "anglese canadian", "en-GB": "anglese britannic", "en-US": "anglese american", "eo": "esperanto", "es": "espaniol", "es-419": "espaniol latinoamerican", "es-ES": "espaniol europee", "es-MX": "espaniol mexican", "et": "estoniano", "eu": "basco", "ewo": "ewondo", "fa": "persa", "ff": "fula", "fi": "finnese", "fil": "filipino", "fj": "fijiano", "fo": "feroese", "fr": "francese", "fr-CA": "francese canadian", "fr-CH": "francese suisse", "fur": "friulano", "fy": "frison occidental", "ga": "irlandese", "gaa": "ga", "gd": "gaelico scotese", "gez": "ge’ez", "gil": "gilbertese", "gl": "galleco", "gn": "guarani", "gor": "gorontalo", "gsw": "germano suisse", "gu": "gujarati", "guz": "gusii", "gv": "mannese", "gwi": "gwich’in", "ha": "hausa", "haw": "hawaiano", "he": "hebreo", "hi": "hindi", "hil": "hiligaynon", "hmn": "hmong", "hr": "croato", "hsb": "alte sorabo", "ht": "creolo haitian", "hu": "hungaro", "hup": "hupa", "hy": "armeniano", "hz": "herero", "ia": "interlingua", "iba": "iban", "ibb": "ibibio", "id": "indonesiano", "ig": "igbo", "ii": "yi de Sichuan", "ilo": "ilocano", "inh": "ingush", "io": "ido", "is": "islandese", "it": "italiano", "iu": "inuktitut", "ja": "japonese", "jbo": "lojban", "jgo": "ngomba", "jmc": "machame", "jv": "javanese", "ka": "georgiano", "kab": "kabylo", "kac": "kachin", "kaj": "jju", "kam": "kamba", "kbd": "cabardiano", "kcg": "tyap", "kde": "makonde", "kea": "capoverdiano", "kfo": "koro", "kha": "khasi", "khq": "koyra chiini", "ki": "kikuyu", "kj": "kuanyama", "kk": "kazakh", "kkj": "kako", "kl": "groenlandese", "kln": "kalenjin", "km": "khmer", "kmb": "kimbundu", "kn": "kannada", "ko": "coreano", "kok": "konkani", "kpe": "kpelle", "kr": "kanuri", "krc": "karachay-balkaro", "krl": "careliano", "kru": "kurukh", "ks": "kashmiri", "ksb": "shambala", "ksf": "bafia", "ksh": "coloniese", "ku": "kurdo", "kum": "kumyko", "kv": "komi", "kw": "cornico", "ky": "kirghizo", "la": "latino", "lad": "ladino", "lag": "langi", "lb": "luxemburgese", "lez": "lezghiano", "lg": "luganda", "li": "limburgese", "lkt": "lakota", "ln": "lingala", "lo": "laotiano", "loz": "lozi", "lrc": "luri del nord", "lt": "lithuano", "lu": "luba-katanga", "lua": "luba-lulua", "lun": "lunda", "lus": "mizo", "luy": "luyia", "lv": "letton", "mad": "madurese", "mag": "magahi", "mai": "maithili", "mak": "macassarese", "mas": "masai", "mdf": "moksha", "men": "mende", "mer": "meri", "mfe": "creolo mauritian", "mg": "malgache", "mgh": "makhuwa-meetto", "mgo": "metaʼ", "mh": "marshallese", "mi": "maori", "mic": "micmac", "min": "minangkabau", "mk": "macedone", "ml": "malayalam", "mn": "mongol", "mni": "manipuri", "moh": "mohawk", "mos": "mossi", "mr": "marathi", "ms": "malay", "mt": "maltese", "mua": "mundang", "mus": "creek", "mwl": "mirandese", "my": "birmano", "myv": "erzya", "mzn": "mazanderani", "na": "nauru", "nap": "napolitano", "naq": "nama", "nb": "norvegiano bokmål", "nd": "ndebele del nord", "nds-NL": "nds (Nederlandia)", "ne": "nepalese", "new": "newari", "ng": "ndonga", "nia": "nias", "niu": "nieuano", "nl": "nederlandese", "nl-BE": "flamingo", "nmg": "kwasio", "nn": "norvegiano nynorsk", "nnh": "ngiemboon", "nog": "nogai", "nqo": "n’ko", "nr": "ndebele del sud", "nso": "sotho del nord", "nus": "nuer", "nv": "navajo", "ny": "nyanja", "nyn": "nyankole", "oc": "occitano", "om": "oromo", "or": "oriya", "os": "osseto", "pa": "punjabi", "pag": "pangasinan", "pam": "pampanga", "pap": "papiamento", "pau": "palauano", "pcm": "pidgin nigerian", "pl": "polonese", "prg": "prussiano", "ps": "pashto", "pt": "portugese", "pt-BR": "portugese de Brasil", "pt-PT": "portugese de Portugal", "qu": "quechua", "quc": "kʼicheʼ", "rap": "rapanui", "rar": "rarotongano", "rm": "romanche", "rn": "rundi", "ro": "romaniano", "ro-MD": "moldavo", "rof": "rombo", "root": "radice", "ru": "russo", "rup": "aromaniano", "rw": "kinyarwanda", "rwk": "rwa", "sa": "sanscrito", "sad": "sandawe", "sah": "yakuto", "saq": "samburu", "sat": "santali", "sba": "ngambay", "sbp": "sangu", "sc": "sardo", "scn": "siciliano", "sco": "scotese", "sd": "sindhi", "se": "sami del nord", "seh": "sena", "ses": "koyraboro senni", "sg": "sango", "shi": "tachelhit", "shn": "shan", "si": "cingalese", "sk": "slovaco", "sl": "sloveno", "sm": "samoano", "sma": "sami del sud", "smj": "sami de Lule", "smn": "sami de Inari", "sms": "sami skolt", "sn": "shona", "snk": "soninke", "so": "somali", "sq": "albanese", "sr": "serbo", "srn": "sranan tongo", "ss": "swati", "ssy": "saho", "st": "sotho del sud", "su": "sundanese", "suk": "sukuma", "sv": "svedese", "sw": "swahili", "sw-CD": "swahili del Congo", "swb": "comoriano", "syr": "syriaco", "ta": "tamil", "te": "telugu", "tem": "temne", "teo": "teso", "tet": "tetum", "tg": "tajiko", "th": "thai", "ti": "tigrinya", "tig": "tigre", "tk": "turkmeno", "tlh": "klingon", "tn": "tswana", "to": "tongano", "tpi": "tok pisin", "tr": "turco", "trv": "taroko", "ts": "tsonga", "tt": "tataro", "tum": "tumbuka", "tvl": "tuvaluano", "twq": "tasawaq", "ty": "tahitiano", "tyv": "tuvano", "tzm": "tamazight del Atlas Central", "udm": "udmurto", "ug": "uighur", "uk": "ukrainiano", "umb": "umbundu", "ur": "urdu", "uz": "uzbeko", "ve": "venda", "vi": "vietnamese", "vo": "volapük", "vun": "vunjo", "wa": "wallon", "wae": "walser", "wal": "wolaytta", "war": "waray", "wo": "wolof", "xal": "calmuco", "xh": "xhosa", "xog": "soga", "yav": "yangben", "ybb": "yemba", "yi": "yiddish", "yo": "yoruba", "yue": "cantonese", "zgh": "tamazight marocchin standard", "zh": "chinese", "zh-Hans": "chinese simplificate", "zh-Hant": "chinese traditional", "zu": "zulu", "zun": "zuni", "zza": "zaza"}, "scriptNames": {"Cyrl": "cyrillic", "Latn": "latin", "Arab": "arabe", "Guru": "gurmukhi", "Hans": "simplificate", "Hant": "traditional"}}, + "id": {"rtl": false, "languageNames": {"aa": "Afar", "ab": "Abkhaz", "ace": "Aceh", "ach": "Acoli", "ada": "Adangme", "ady": "Adygei", "ae": "Avesta", "aeb": "Arab Tunisia", "af": "Afrikaans", "afh": "Afrihili", "agq": "Aghem", "ain": "Ainu", "ak": "Akan", "akk": "Akkadia", "akz": "Alabama", "ale": "Aleut", "alt": "Altai Selatan", "am": "Amharik", "an": "Aragon", "ang": "Inggris Kuno", "anp": "Angika", "ar": "Arab", "ar-001": "Arab Standar Modern", "arc": "Aram", "arn": "Mapuche", "arp": "Arapaho", "arq": "Arab Aljazair", "ars": "Arab Najdi", "arw": "Arawak", "ary": "Arab Maroko", "arz": "Arab Mesir", "as": "Assam", "asa": "Asu", "ase": "Bahasa Isyarat Amerika", "ast": "Asturia", "av": "Avar", "awa": "Awadhi", "ay": "Aymara", "az": "Azerbaijani", "ba": "Bashkir", "bal": "Baluchi", "ban": "Bali", "bar": "Bavaria", "bas": "Basa", "bax": "Bamun", "bbc": "Batak Toba", "bbj": "Ghomala", "be": "Belarusia", "bej": "Beja", "bem": "Bemba", "bew": "Betawi", "bez": "Bena", "bfd": "Bafut", "bg": "Bulgaria", "bgn": "Balochi Barat", "bho": "Bhojpuri", "bi": "Bislama", "bik": "Bikol", "bin": "Bini", "bjn": "Banjar", "bkm": "Kom", "bla": "Siksika", "bm": "Bambara", "bn": "Bengali", "bo": "Tibet", "br": "Breton", "bra": "Braj", "brx": "Bodo", "bs": "Bosnia", "bss": "Akoose", "bua": "Buriat", "bug": "Bugis", "bum": "Bulu", "byn": "Blin", "byv": "Medumba", "ca": "Katalan", "cad": "Kado", "car": "Karib", "cay": "Cayuga", "cch": "Atsam", "ccp": "Chakma", "ce": "Chechen", "ceb": "Cebuano", "cgg": "Kiga", "ch": "Chamorro", "chb": "Chibcha", "chg": "Chagatai", "chk": "Chuuke", "chm": "Mari", "chn": "Jargon Chinook", "cho": "Koktaw", "chp": "Chipewyan", "chr": "Cherokee", "chy": "Cheyenne", "ckb": "Kurdi Sorani", "co": "Korsika", "cop": "Koptik", "cr": "Kree", "crh": "Tatar Krimea", "crs": "Seselwa Kreol Prancis", "cs": "Cheska", "csb": "Kashubia", "cu": "Bahasa Gereja Slavonia", "cv": "Chuvash", "cy": "Welsh", "da": "Dansk", "dak": "Dakota", "dar": "Dargwa", "dav": "Taita", "de": "Jerman", "de-AT": "Jerman (Austria)", "de-CH": "Jerman Tinggi (Swiss)", "del": "Delaware", "den": "Slave", "dgr": "Dogrib", "din": "Dinka", "dje": "Zarma", "doi": "Dogri", "dsb": "Sorbia Hilir", "dua": "Duala", "dum": "Belanda Abad Pertengahan", "dv": "Divehi", "dyo": "Jola-Fonyi", "dyu": "Dyula", "dz": "Dzongkha", "dzg": "Dazaga", "ebu": "Embu", "ee": "Ewe", "efi": "Efik", "egy": "Mesir Kuno", "eka": "Ekajuk", "el": "Yunani", "elx": "Elam", "en": "Inggris", "en-AU": "Inggris (Australia)", "en-CA": "Inggris (Kanada)", "en-GB": "Inggris (Inggris)", "en-US": "Inggris (Amerika Serikat)", "enm": "Inggris Abad Pertengahan", "eo": "Esperanto", "es": "Spanyol", "es-419": "Spanyol (Amerika Latin)", "es-ES": "Spanyol (Eropa)", "es-MX": "Spanyol (Meksiko)", "et": "Esti", "eu": "Basque", "ewo": "Ewondo", "fa": "Persia", "fan": "Fang", "fat": "Fanti", "ff": "Fula", "fi": "Suomi", "fil": "Filipino", "fj": "Fiji", "fo": "Faroe", "fon": "Fon", "fr": "Prancis", "fr-CA": "Perancis (Kanada)", "fr-CH": "Perancis (Swiss)", "frc": "Prancis Cajun", "frm": "Prancis Abad Pertengahan", "fro": "Prancis Kuno", "frp": "Arpitan", "frr": "Frisia Utara", "frs": "Frisia Timur", "fur": "Friuli", "fy": "Frisia Barat", "ga": "Irlandia", "gaa": "Ga", "gag": "Gagauz", "gay": "Gayo", "gba": "Gbaya", "gd": "Gaelik Skotlandia", "gez": "Geez", "gil": "Gilbert", "gl": "Galisia", "glk": "Gilaki", "gmh": "Jerman Abad Pertengahan", "gn": "Guarani", "goh": "Jerman Kuno", "gon": "Gondi", "gor": "Gorontalo", "got": "Gotik", "grb": "Grebo", "grc": "Yunani Kuno", "gsw": "Jerman (Swiss)", "gu": "Gujarat", "guz": "Gusii", "gv": "Manx", "gwi": "Gwich’in", "ha": "Hausa", "hai": "Haida", "haw": "Hawaii", "he": "Ibrani", "hi": "Hindi", "hif": "Hindi Fiji", "hil": "Hiligaynon", "hit": "Hitit", "hmn": "Hmong", "ho": "Hiri Motu", "hr": "Kroasia", "hsb": "Sorbia Hulu", "ht": "Kreol Haiti", "hu": "Hungaria", "hup": "Hupa", "hy": "Armenia", "hz": "Herero", "ia": "Interlingua", "iba": "Iban", "ibb": "Ibibio", "id": "Indonesia", "ie": "Interlingue", "ig": "Igbo", "ii": "Sichuan Yi", "ik": "Inupiak", "ilo": "Iloko", "inh": "Ingushetia", "io": "Ido", "is": "Islandia", "it": "Italia", "iu": "Inuktitut", "ja": "Jepang", "jbo": "Lojban", "jgo": "Ngomba", "jmc": "Machame", "jpr": "Ibrani-Persia", "jrb": "Ibrani-Arab", "jv": "Jawa", "ka": "Georgia", "kaa": "Kara-Kalpak", "kab": "Kabyle", "kac": "Kachin", "kaj": "Jju", "kam": "Kamba", "kaw": "Kawi", "kbd": "Kabardi", "kbl": "Kanembu", "kcg": "Tyap", "kde": "Makonde", "kea": "Kabuverdianu", "ken": "Kenyang", "kfo": "Koro", "kg": "Kongo", "kha": "Khasi", "kho": "Khotan", "khq": "Koyra Chiini", "ki": "Kikuyu", "kj": "Kuanyama", "kk": "Kazakh", "kkj": "Kako", "kl": "Kalaallisut", "kln": "Kalenjin", "km": "Khmer", "kmb": "Kimbundu", "kn": "Kannada", "ko": "Korea", "koi": "Komi-Permyak", "kok": "Konkani", "kos": "Kosre", "kpe": "Kpelle", "kr": "Kanuri", "krc": "Karachai Balkar", "kri": "Krio", "krl": "Karelia", "kru": "Kuruk", "ks": "Kashmir", "ksb": "Shambala", "ksf": "Bafia", "ksh": "Dialek Kolsch", "ku": "Kurdi", "kum": "Kumyk", "kut": "Kutenai", "kv": "Komi", "kw": "Kornish", "ky": "Kirgiz", "la": "Latin", "lad": "Ladino", "lag": "Langi", "lah": "Lahnda", "lam": "Lamba", "lb": "Luksemburg", "lez": "Lezghia", "lg": "Ganda", "li": "Limburgia", "lij": "Liguria", "lkt": "Lakota", "ln": "Lingala", "lo": "Lao", "lol": "Mongo", "lou": "Kreol Louisiana", "loz": "Lozi", "lrc": "Luri Utara", "lt": "Lituavi", "lu": "Luba-Katanga", "lua": "Luba-Lulua", "lui": "Luiseno", "lun": "Lunda", "luo": "Luo", "lus": "Mizo", "luy": "Luyia", "lv": "Latvi", "lzz": "Laz", "mad": "Madura", "maf": "Mafa", "mag": "Magahi", "mai": "Maithili", "mak": "Makasar", "man": "Mandingo", "mas": "Masai", "mde": "Maba", "mdf": "Moksha", "mdr": "Mandar", "men": "Mende", "mer": "Meru", "mfe": "Morisien", "mg": "Malagasi", "mga": "Irlandia Abad Pertengahan", "mgh": "Makhuwa-Meetto", "mgo": "Meta’", "mh": "Marshall", "mi": "Maori", "mic": "Mikmak", "min": "Minangkabau", "mk": "Makedonia", "ml": "Malayalam", "mn": "Mongolia", "mnc": "Manchuria", "mni": "Manipuri", "moh": "Mohawk", "mos": "Mossi", "mr": "Marathi", "ms": "Melayu", "mt": "Malta", "mua": "Mundang", "mus": "Bahasa Muskogee", "mwl": "Miranda", "mwr": "Marwari", "mwv": "Mentawai", "my": "Burma", "mye": "Myene", "myv": "Eryza", "mzn": "Mazanderani", "na": "Nauru", "nap": "Neapolitan", "naq": "Nama", "nb": "Bokmål Norwegia", "nd": "Ndebele Utara", "nds": "Jerman Rendah", "nds-NL": "Jerman Rendah (Belanda)", "ne": "Nepali", "new": "Newari", "ng": "Ndonga", "nia": "Nias", "niu": "Niuea", "nl": "Belanda", "nl-BE": "Belanda (Belgia)", "nmg": "Kwasio", "nn": "Nynorsk Norwegia", "nnh": "Ngiemboon", "no": "Norwegia", "nog": "Nogai", "non": "Norse Kuno", "nqo": "N’Ko", "nr": "Ndebele Selatan", "nso": "Sotho Utara", "nus": "Nuer", "nv": "Navajo", "nwc": "Newari Klasik", "ny": "Nyanja", "nym": "Nyamwezi", "nyn": "Nyankole", "nyo": "Nyoro", "nzi": "Nzima", "oc": "Ositania", "oj": "Ojibwa", "om": "Oromo", "or": "Oriya", "os": "Ossetia", "osa": "Osage", "ota": "Turki Osmani", "pa": "Punjabi", "pag": "Pangasina", "pal": "Pahlevi", "pam": "Pampanga", "pap": "Papiamento", "pau": "Palau", "pcm": "Pidgin Nigeria", "pdc": "Jerman Pennsylvania", "peo": "Persia Kuno", "phn": "Funisia", "pi": "Pali", "pl": "Polski", "pon": "Pohnpeia", "prg": "Prusia", "pro": "Provencal Lama", "ps": "Pashto", "pt": "Portugis", "pt-BR": "Portugis (Brasil)", "pt-PT": "Portugis (Eropa)", "qu": "Quechua", "quc": "Kʼicheʼ", "raj": "Rajasthani", "rap": "Rapanui", "rar": "Rarotonga", "rm": "Reto-Roman", "rn": "Rundi", "ro": "Rumania", "ro-MD": "Moldavia", "rof": "Rombo", "rom": "Romani", "root": "Root", "rtm": "Rotuma", "ru": "Rusia", "rup": "Aromania", "rw": "Kinyarwanda", "rwk": "Rwa", "sa": "Sanskerta", "sad": "Sandawe", "sah": "Sakha", "sam": "Aram Samaria", "saq": "Samburu", "sas": "Sasak", "sat": "Santali", "sba": "Ngambai", "sbp": "Sangu", "sc": "Sardinia", "scn": "Sisilia", "sco": "Skotlandia", "sd": "Sindhi", "sdh": "Kurdi Selatan", "se": "Sami Utara", "see": "Seneca", "seh": "Sena", "sei": "Seri", "sel": "Selkup", "ses": "Koyraboro Senni", "sg": "Sango", "sga": "Irlandia Kuno", "sh": "Serbo-Kroasia", "shi": "Tachelhit", "shn": "Shan", "shu": "Arab Suwa", "si": "Sinhala", "sid": "Sidamo", "sk": "Slovak", "sl": "Sloven", "sli": "Silesia Rendah", "sly": "Selayar", "sm": "Samoa", "sma": "Sami Selatan", "smj": "Lule Sami", "smn": "Inari Sami", "sms": "Skolt Sami", "sn": "Shona", "snk": "Soninke", "so": "Somalia", "sog": "Sogdien", "sq": "Albania", "sr": "Serbia", "srn": "Sranan Tongo", "srr": "Serer", "ss": "Swati", "ssy": "Saho", "st": "Sotho Selatan", "su": "Sunda", "suk": "Sukuma", "sus": "Susu", "sux": "Sumeria", "sv": "Swedia", "sw": "Swahili", "sw-CD": "Swahili (Kongo)", "swb": "Komoria", "syc": "Suriah Klasik", "syr": "Suriah", "szl": "Silesia", "ta": "Tamil", "tcy": "Tulu", "te": "Telugu", "tem": "Timne", "teo": "Teso", "ter": "Tereno", "tet": "Tetun", "tg": "Tajik", "th": "Thai", "ti": "Tigrinya", "tig": "Tigre", "tiv": "Tiv", "tk": "Turkmen", "tkl": "Tokelau", "tl": "Tagalog", "tlh": "Klingon", "tli": "Tlingit", "tmh": "Tamashek", "tn": "Tswana", "to": "Tonga", "tog": "Nyasa Tonga", "tpi": "Tok Pisin", "tr": "Turki", "tru": "Turoyo", "trv": "Taroko", "ts": "Tsonga", "tsi": "Tsimshia", "tt": "Tatar", "ttt": "Tat Muslim", "tum": "Tumbuka", "tvl": "Tuvalu", "tw": "Twi", "twq": "Tasawaq", "ty": "Tahiti", "tyv": "Tuvinia", "tzm": "Tamazight Maroko Tengah", "udm": "Udmurt", "ug": "Uyghur", "uga": "Ugarit", "uk": "Ukraina", "umb": "Umbundu", "ur": "Urdu", "uz": "Uzbek", "vai": "Vai", "ve": "Venda", "vec": "Venesia", "vi": "Vietnam", "vo": "Volapuk", "vot": "Votia", "vun": "Vunjo", "wa": "Walloon", "wae": "Walser", "wal": "Walamo", "war": "Warai", "was": "Washo", "wbp": "Warlpiri", "wo": "Wolof", "xal": "Kalmuk", "xh": "Xhosa", "xog": "Soga", "yao": "Yao", "yap": "Yapois", "yav": "Yangben", "ybb": "Yemba", "yi": "Yiddish", "yo": "Yoruba", "yue": "Kanton", "za": "Zhuang", "zap": "Zapotek", "zbl": "Blissymbol", "zen": "Zenaga", "zgh": "Tamazight Maroko Standar", "zh": "Tionghoa", "zh-Hans": "Tionghoa (Aksara Sederhana)", "zh-Hant": "Tionghoa (Aksara Tradisional)", "zu": "Zulu", "zun": "Zuni", "zza": "Zaza"}, "scriptNames": {"Cyrl": "Sirilik", "Latn": "Latin", "Guru": "Gurmukhi", "Tfng": "Tifinagh", "Vaii": "Vai", "Hans": "Sederhana", "Hant": "Tradisional"}}, + "is": {"rtl": false, "languageNames": {"aa": "afár", "ab": "abkasíska", "ace": "akkíska", "ach": "acoli", "ada": "adangme", "ady": "adýge", "ae": "avestíska", "af": "afríkanska", "afh": "afríhílí", "agq": "aghem", "ain": "aínu (Japan)", "ak": "akan", "akk": "akkadíska", "ale": "aleúska", "alt": "suðuraltaíska", "am": "amharíska", "an": "aragonska", "ang": "fornenska", "anp": "angíka", "ar": "arabíska", "ar-001": "stöðluð nútímaarabíska", "arc": "arameíska", "arn": "mapuche", "arp": "arapahó", "arw": "aravakska", "as": "assamska", "asa": "asu", "ast": "astúríska", "av": "avaríska", "awa": "avadí", "ay": "aímara", "az": "aserska", "ba": "baskír", "bal": "balúkí", "ban": "balíska", "bas": "basa", "bax": "bamun", "be": "hvítrússneska", "bej": "beja", "bem": "bemba", "bez": "bena", "bg": "búlgarska", "bgn": "vesturbalotsí", "bho": "bojpúrí", "bi": "bíslama", "bik": "bíkol", "bin": "bíní", "bla": "siksika", "bm": "bambara", "bn": "bengalska", "bo": "tíbeska", "br": "bretónska", "bra": "braí", "brx": "bódó", "bs": "bosníska", "bss": "bakossi", "bua": "búríat", "bug": "búgíska", "byn": "blín", "ca": "katalónska", "cad": "kaddó", "car": "karíbamál", "cay": "kajúga", "cch": "atsam", "ce": "tsjetsjenska", "ceb": "kebúanó", "cgg": "kíga", "ch": "kamorró", "chb": "síbsja", "chg": "sjagataí", "chk": "sjúkíska", "chm": "marí", "chn": "sínúk", "cho": "sjoktá", "chp": "sípevíska", "chr": "Cherokee-mál", "chy": "sjeyen", "ckb": "sorani-kúrdíska", "co": "korsíska", "cop": "koptíska", "cr": "krí", "crh": "krímtyrkneska", "crs": "seychelles-kreólska", "cs": "tékkneska", "csb": "kasúbíska", "cu": "kirkjuslavneska", "cv": "sjúvas", "cy": "velska", "da": "danska", "dak": "dakóta", "dar": "dargva", "dav": "taíta", "de": "þýska", "de-AT": "austurrísk þýska", "de-CH": "svissnesk háþýska", "del": "delaver", "den": "slavneska", "dgr": "dogríb", "din": "dinka", "dje": "zarma", "doi": "dogrí", "dsb": "lágsorbneska", "dua": "dúala", "dum": "miðhollenska", "dv": "dívehí", "dyo": "jola-fonyi", "dyu": "djúla", "dz": "dsongka", "dzg": "dazaga", "ebu": "embu", "ee": "ewe", "efi": "efík", "egy": "fornegypska", "eka": "ekajúk", "el": "gríska", "elx": "elamít", "en": "enska", "en-AU": "áströlsk enska", "en-CA": "kanadísk enska", "en-GB": "bresk enska", "en-US": "bandarísk enska", "enm": "miðenska", "eo": "esperantó", "es": "spænska", "es-419": "rómönsk-amerísk spænska", "es-ES": "evrópsk spænska", "es-MX": "mexíkósk spænska", "et": "eistneska", "eu": "baskneska", "ewo": "evondó", "fa": "persneska", "fan": "fang", "fat": "fantí", "ff": "fúla", "fi": "finnska", "fil": "filippseyska", "fj": "fídjeyska", "fo": "færeyska", "fon": "fón", "fr": "franska", "fr-CA": "kanadísk franska", "fr-CH": "svissnesk franska", "frc": "cajun-franska", "frm": "miðfranska", "fro": "fornfranska", "frr": "norðurfrísneska", "frs": "austurfrísneska", "fur": "fríúlska", "fy": "vesturfrísneska", "ga": "írska", "gaa": "ga", "gag": "gagás", "gay": "gajó", "gba": "gbaja", "gd": "skosk gelíska", "gez": "gís", "gil": "gilberska", "gl": "galíanska", "gmh": "miðháþýska", "gn": "gvaraní", "goh": "fornháþýska", "gon": "gondí", "gor": "gorontaló", "got": "gotneska", "grb": "gerbó", "grc": "forngríska", "gsw": "svissnesk þýska", "gu": "gújaratí", "guz": "gusii", "gv": "manska", "gwi": "gvísín", "ha": "hása", "hai": "haída", "haw": "havaíska", "he": "hebreska", "hi": "hindí", "hil": "híligaínon", "hit": "hettitíska", "hmn": "hmong", "ho": "hírímótú", "hr": "króatíska", "hsb": "hásorbneska", "ht": "haítíska", "hu": "ungverska", "hup": "húpa", "hy": "armenska", "hz": "hereró", "ia": "alþjóðatunga", "iba": "íban", "ibb": "ibibio", "id": "indónesíska", "ie": "interlingve", "ig": "ígbó", "ii": "sísúanjí", "ik": "ínúpíak", "ilo": "ílokó", "inh": "ingús", "io": "ídó", "is": "íslenska", "it": "ítalska", "iu": "inúktitút", "ja": "japanska", "jbo": "lojban", "jgo": "ngomba", "jmc": "masjáme", "jpr": "gyðingapersneska", "jrb": "gyðingaarabíska", "jv": "javanska", "ka": "georgíska", "kaa": "karakalpak", "kab": "kabíle", "kac": "kasín", "kaj": "jju", "kam": "kamba", "kaw": "kaví", "kbd": "kabardíska", "kcg": "tyap", "kde": "makonde", "kea": "grænhöfðeyska", "kfo": "koro", "kg": "kongóska", "kha": "kasí", "kho": "kotaska", "khq": "koyra chiini", "ki": "kíkújú", "kj": "kúanjama", "kk": "kasakska", "kkj": "kako", "kl": "grænlenska", "kln": "kalenjin", "km": "kmer", "kmb": "kimbúndú", "kn": "kannada", "ko": "kóreska", "koi": "kómí-permyak", "kok": "konkaní", "kos": "kosraska", "kpe": "kpelle", "kr": "kanúrí", "krc": "karasaíbalkar", "krl": "karélska", "kru": "kúrúk", "ks": "kasmírska", "ksb": "sjambala", "ksf": "bafía", "ksh": "kölníska", "ku": "kúrdíska", "kum": "kúmík", "kut": "kútenaí", "kv": "komíska", "kw": "kornbreska", "ky": "kirgiska", "la": "latína", "lad": "ladínska", "lag": "langí", "lah": "landa", "lam": "lamba", "lb": "lúxemborgíska", "lez": "lesgíska", "lg": "ganda", "li": "limbúrgíska", "lkt": "lakóta", "ln": "lingala", "lo": "laó", "lol": "mongó", "lou": "kreólska (Louisiana)", "loz": "lozi", "lrc": "norðurlúrí", "lt": "litháíska", "lu": "lúbakatanga", "lua": "luba-lulua", "lui": "lúisenó", "lun": "lúnda", "luo": "lúó", "lus": "lúsaí", "luy": "luyia", "lv": "lettneska", "mad": "madúrska", "mag": "magahí", "mai": "maítílí", "mak": "makasar", "man": "mandingó", "mas": "masaí", "mdf": "moksa", "mdr": "mandar", "men": "mende", "mer": "merú", "mfe": "máritíska", "mg": "malagasíska", "mga": "miðírska", "mgh": "makhuwa-meetto", "mgo": "meta’", "mh": "marshallska", "mi": "maorí", "mic": "mikmak", "min": "mínangkabá", "mk": "makedónska", "ml": "malajalam", "mn": "mongólska", "mnc": "mansjú", "mni": "manípúrí", "moh": "móhíska", "mos": "mossí", "mr": "maratí", "ms": "malaíska", "mt": "maltneska", "mua": "mundang", "mus": "krík", "mwl": "mirandesíska", "mwr": "marvarí", "my": "burmneska", "myv": "ersja", "mzn": "masanderaní", "na": "nárúska", "nap": "napólíska", "naq": "nama", "nb": "norskt bókmál", "nd": "norður-ndebele", "nds": "lágþýska; lágsaxneska", "nds-NL": "lágsaxneska", "ne": "nepalska", "new": "nevarí", "ng": "ndonga", "nia": "nías", "niu": "níveska", "nl": "hollenska", "nl-BE": "flæmska", "nmg": "kwasio", "nn": "nýnorska", "nnh": "ngiemboon", "no": "norska", "nog": "nógaí", "non": "norræna", "nqo": "n’ko", "nr": "suðurndebele", "nso": "norðursótó", "nus": "núer", "nv": "navahó", "nwc": "klassísk nevaríska", "ny": "njanja; sísjeva; sjeva", "nym": "njamvesí", "nyn": "nyankole", "nyo": "njóró", "nzi": "nsíma", "oc": "oksítaníska", "oj": "ojibva", "om": "oromo", "or": "óría", "os": "ossetíska", "osa": "ósage", "ota": "tyrkneska, ottóman", "pa": "púnjabí", "pag": "pangasínmál", "pal": "palaví", "pam": "pampanga", "pap": "papíamentó", "pau": "paláska", "pcm": "nígerískt pidgin", "peo": "fornpersneska", "phn": "fönikíska", "pi": "palí", "pl": "pólska", "pon": "ponpeiska", "prg": "prússneska", "pro": "fornpróvensalska", "ps": "pastú", "pt": "portúgalska", "pt-BR": "brasílísk portúgalska", "pt-PT": "evrópsk portúgalska", "qu": "kvesjúa", "quc": "kiche", "raj": "rajastaní", "rap": "rapanúí", "rar": "rarótongska", "rm": "rómanska", "rn": "rúndí", "ro": "rúmenska", "ro-MD": "moldóvska", "rof": "rombó", "rom": "romaní", "root": "rót", "ru": "rússneska", "rup": "arúmenska", "rw": "kínjarvanda", "rwk": "rúa", "sa": "sanskrít", "sad": "sandave", "sah": "jakút", "sam": "samversk arameíska", "saq": "sambúrú", "sas": "sasak", "sat": "santalí", "sba": "ngambay", "sbp": "sangú", "sc": "sardínska", "scn": "sikileyska", "sco": "skoska", "sd": "sindí", "sdh": "suðurkúrdíska", "se": "norðursamíska", "seh": "sena", "sel": "selkúp", "ses": "koíraboró-senní", "sg": "sangó", "sga": "fornírska", "sh": "serbókróatíska", "shi": "tachelhit", "shn": "sjan", "si": "singalíska", "sid": "sídamó", "sk": "slóvakíska", "sl": "slóvenska", "sm": "samóska", "sma": "suðursamíska", "smj": "lúlesamíska", "smn": "enaresamíska", "sms": "skoltesamíska", "sn": "shona", "snk": "sóninke", "so": "sómalska", "sog": "sogdíen", "sq": "albanska", "sr": "serbneska", "srn": "sranan tongo", "srr": "serer", "ss": "svatí", "ssy": "saho", "st": "suðursótó", "su": "súndanska", "suk": "súkúma", "sus": "súsú", "sux": "súmerska", "sv": "sænska", "sw": "svahílí", "sw-CD": "kongósvahílí", "swb": "shimaoríska", "syc": "klassísk sýrlenska", "syr": "sýrlenska", "ta": "tamílska", "te": "telúgú", "tem": "tímne", "teo": "tesó", "ter": "terenó", "tet": "tetúm", "tg": "tadsjikska", "th": "taílenska", "ti": "tígrinja", "tig": "tígre", "tiv": "tív", "tk": "túrkmenska", "tkl": "tókeláska", "tl": "tagalog", "tlh": "klingonska", "tli": "tlingit", "tmh": "tamasjek", "tn": "tsúana", "to": "tongverska", "tog": "tongverska (nyasa)", "tpi": "tokpisin", "tr": "tyrkneska", "trv": "tarókó", "ts": "tsonga", "tsi": "tsimsíska", "tt": "tatarska", "tum": "túmbúka", "tvl": "túvalúska", "tw": "tví", "twq": "tasawaq", "ty": "tahítíska", "tyv": "túvínska", "tzm": "tamazight", "udm": "údmúrt", "ug": "úígúr", "uga": "úgarítíska", "uk": "úkraínska", "umb": "úmbúndú", "ur": "úrdú", "uz": "úsbekska", "vai": "vaí", "ve": "venda", "vi": "víetnamska", "vo": "volapyk", "vot": "votíska", "vun": "vunjó", "wa": "vallónska", "wae": "valser", "wal": "volayatta", "war": "varaí", "was": "vasjó", "wbp": "varlpiri", "wo": "volof", "xal": "kalmúkska", "xh": "sósa", "xog": "sóga", "yao": "jaó", "yap": "japíska", "yav": "yangben", "ybb": "yemba", "yi": "jiddíska", "yo": "jórúba", "yue": "kantónska", "za": "súang", "zap": "sapótek", "zbl": "blisstákn", "zen": "senaga", "zgh": "staðlað marokkóskt tamazight", "zh": "kínverska", "zh-Hans": "kínverska (einfölduð)", "zh-Hant": "kínverska (hefðbundin)", "zu": "súlú", "zun": "súní", "zza": "zázáíska"}, "scriptNames": {"Cyrl": "kyrillískt", "Latn": "latneskt", "Arab": "arabískt", "Guru": "gurmukhi", "Hans": "einfaldað", "Hant": "hefðbundið"}}, + "it": {"rtl": false, "languageNames": {"aa": "afar", "ab": "abcaso", "ace": "accinese", "ach": "acioli", "ada": "adangme", "ady": "adyghe", "ae": "avestan", "aeb": "arabo tunisino", "af": "afrikaans", "afh": "afrihili", "agq": "aghem", "ain": "ainu", "ak": "akan", "akk": "accado", "akz": "alabama", "ale": "aleuto", "aln": "albanese ghego", "alt": "altai meridionale", "am": "amarico", "an": "aragonese", "ang": "inglese antico", "anp": "angika", "ar": "arabo", "ar-001": "arabo moderno standard", "arc": "aramaico", "arn": "mapudungun", "aro": "araona", "arp": "arapaho", "arq": "arabo algerino", "ars": "arabo najd", "arw": "aruaco", "ary": "arabo marocchino", "arz": "arabo egiziano", "as": "assamese", "asa": "asu", "ase": "lingua dei segni americana", "ast": "asturiano", "av": "avaro", "avk": "kotava", "awa": "awadhi", "ay": "aymara", "az": "azerbaigiano", "ba": "baschiro", "bal": "beluci", "ban": "balinese", "bar": "bavarese", "bas": "basa", "bax": "bamun", "bbc": "batak toba", "bbj": "ghomala", "be": "bielorusso", "bej": "begia", "bem": "wemba", "bew": "betawi", "bez": "bena", "bfd": "bafut", "bfq": "badaga", "bg": "bulgaro", "bgn": "beluci occidentale", "bho": "bhojpuri", "bi": "bislama", "bik": "bicol", "bin": "bini", "bjn": "banjar", "bkm": "kom", "bla": "siksika", "bm": "bambara", "bn": "bengalese", "bo": "tibetano", "bpy": "bishnupriya", "bqi": "bakhtiari", "br": "bretone", "bra": "braj", "brh": "brahui", "brx": "bodo", "bs": "bosniaco", "bss": "akoose", "bua": "buriat", "bug": "bugi", "bum": "bulu", "byn": "blin", "byv": "medumba", "ca": "catalano", "cad": "caddo", "car": "caribico", "cay": "cayuga", "cch": "atsam", "ccp": "chakma", "ce": "ceceno", "ceb": "cebuano", "cgg": "chiga", "ch": "chamorro", "chb": "chibcha", "chg": "ciagataico", "chk": "chuukese", "chm": "mari", "chn": "gergo chinook", "cho": "choctaw", "chp": "chipewyan", "chr": "cherokee", "chy": "cheyenne", "ckb": "curdo sorani", "co": "corso", "cop": "copto", "cps": "capiznon", "cr": "cree", "crh": "turco crimeo", "crs": "creolo delle Seychelles", "cs": "ceco", "csb": "kashubian", "cu": "slavo della Chiesa", "cv": "ciuvascio", "cy": "gallese", "da": "danese", "dak": "dakota", "dar": "dargwa", "dav": "taita", "de": "tedesco", "de-AT": "tedesco austriaco", "de-CH": "alto tedesco svizzero", "del": "delaware", "den": "slave", "dgr": "dogrib", "din": "dinca", "dje": "zarma", "doi": "dogri", "dsb": "basso sorabo", "dtp": "dusun centrale", "dua": "duala", "dum": "olandese medio", "dv": "divehi", "dyo": "jola-fony", "dyu": "diula", "dz": "dzongkha", "dzg": "dazaga", "ebu": "embu", "ee": "ewe", "efi": "efik", "egl": "emiliano", "egy": "egiziano antico", "eka": "ekajuka", "el": "greco", "elx": "elamitico", "en": "inglese", "en-AU": "inglese australiano", "en-CA": "inglese canadese", "en-GB": "inglese britannico", "en-US": "inglese americano", "enm": "inglese medio", "eo": "esperanto", "es": "spagnolo", "es-419": "spagnolo latinoamericano", "es-ES": "spagnolo europeo", "es-MX": "spagnolo messicano", "esu": "yupik centrale", "et": "estone", "eu": "basco", "ewo": "ewondo", "ext": "estremegno", "fa": "persiano", "fan": "fang", "fat": "fanti", "ff": "fulah", "fi": "finlandese", "fil": "filippino", "fit": "finlandese del Tornedalen", "fj": "figiano", "fo": "faroese", "fr": "francese", "fr-CA": "francese canadese", "fr-CH": "francese svizzero", "frc": "francese cajun", "frm": "francese medio", "fro": "francese antico", "frp": "francoprovenzale", "frr": "frisone settentrionale", "frs": "frisone orientale", "fur": "friulano", "fy": "frisone occidentale", "ga": "irlandese", "gaa": "ga", "gag": "gagauzo", "gay": "gayo", "gba": "gbaya", "gbz": "dari zoroastriano", "gd": "gaelico scozzese", "gez": "geez", "gil": "gilbertese", "gl": "galiziano", "glk": "gilaki", "gmh": "tedesco medio alto", "gn": "guaraní", "goh": "tedesco antico alto", "gom": "konkani goano", "gon": "gondi", "gor": "gorontalo", "got": "gotico", "grb": "grebo", "grc": "greco antico", "gsw": "tedesco svizzero", "gu": "gujarati", "guc": "wayuu", "guz": "gusii", "gv": "mannese", "gwi": "gwichʼin", "ha": "hausa", "hai": "haida", "hak": "hakka", "haw": "hawaiano", "he": "ebraico", "hi": "hindi", "hif": "hindi figiano", "hil": "ilongo", "hit": "hittite", "hmn": "hmong", "ho": "hiri motu", "hr": "croato", "hsb": "alto sorabo", "hsn": "xiang", "ht": "haitiano", "hu": "ungherese", "hup": "hupa", "hy": "armeno", "hz": "herero", "ia": "interlingua", "iba": "iban", "ibb": "ibibio", "id": "indonesiano", "ie": "interlingue", "ig": "igbo", "ii": "sichuan yi", "ik": "inupiak", "ilo": "ilocano", "inh": "ingush", "io": "ido", "is": "islandese", "it": "italiano", "iu": "inuktitut", "izh": "ingrico", "ja": "giapponese", "jam": "creolo giamaicano", "jbo": "lojban", "jgo": "ngamambo", "jmc": "machame", "jpr": "giudeo persiano", "jrb": "giudeo arabo", "jut": "jutlandico", "jv": "giavanese", "ka": "georgiano", "kaa": "kara-kalpak", "kab": "cabilo", "kac": "kachin", "kaj": "kai", "kam": "kamba", "kaw": "kawi", "kbd": "cabardino", "kbl": "kanembu", "kcg": "tyap", "kde": "makonde", "kea": "capoverdiano", "kfo": "koro", "kg": "kongo", "kgp": "kaingang", "kha": "khasi", "kho": "khotanese", "khq": "koyra chiini", "khw": "khowar", "ki": "kikuyu", "kiu": "kirmanjki", "kj": "kuanyama", "kk": "kazako", "kkj": "kako", "kl": "groenlandese", "kln": "kalenjin", "km": "khmer", "kmb": "kimbundu", "kn": "kannada", "ko": "coreano", "koi": "permiaco", "kok": "konkani", "kos": "kosraean", "kpe": "kpelle", "kr": "kanuri", "krc": "karachay-Balkar", "krl": "careliano", "kru": "kurukh", "ks": "kashmiri", "ksb": "shambala", "ksf": "bafia", "ksh": "coloniese", "ku": "curdo", "kum": "kumyk", "kut": "kutenai", "kv": "komi", "kw": "cornico", "ky": "kirghiso", "la": "latino", "lad": "giudeo-spagnolo", "lag": "langi", "lah": "lahnda", "lam": "lamba", "lb": "lussemburghese", "lez": "lesgo", "lfn": "Lingua Franca Nova", "lg": "ganda", "li": "limburghese", "lij": "ligure", "liv": "livone", "lkt": "lakota", "lmo": "lombardo", "ln": "lingala", "lo": "lao", "lol": "lolo bantu", "lou": "creolo della Louisiana", "loz": "lozi", "lrc": "luri settentrionale", "lt": "lituano", "ltg": "letgallo", "lu": "luba-katanga", "lua": "luba-lulua", "lui": "luiseno", "lun": "lunda", "lus": "lushai", "luy": "luyia", "lv": "lettone", "lzh": "cinese classico", "lzz": "laz", "mad": "madurese", "maf": "mafa", "mag": "magahi", "mai": "maithili", "mak": "makasar", "man": "mandingo", "mas": "masai", "mde": "maba", "mdf": "moksha", "mdr": "mandar", "men": "mende", "mer": "meru", "mfe": "creolo mauriziano", "mg": "malgascio", "mga": "irlandese medio", "mgh": "makhuwa-meetto", "mgo": "meta’", "mh": "marshallese", "mi": "maori", "mic": "micmac", "min": "menangkabau", "mk": "macedone", "ml": "malayalam", "mn": "mongolo", "mnc": "manchu", "mni": "manipuri", "moh": "mohawk", "mos": "mossi", "mr": "marathi", "mrj": "mari occidentale", "ms": "malese", "mt": "maltese", "mua": "mundang", "mus": "creek", "mwl": "mirandese", "mwr": "marwari", "mwv": "mentawai", "my": "birmano", "mye": "myene", "myv": "erzya", "mzn": "mazandarani", "na": "nauru", "nan": "min nan", "nap": "napoletano", "naq": "nama", "nb": "norvegese bokmål", "nd": "ndebele del nord", "nds": "basso tedesco", "nds-NL": "basso tedesco olandese", "ne": "nepalese", "new": "newari", "ng": "ndonga", "nia": "nias", "niu": "niue", "njo": "ao", "nl": "olandese", "nl-BE": "fiammingo", "nmg": "kwasio", "nn": "norvegese nynorsk", "nnh": "ngiemboon", "no": "norvegese", "nog": "nogai", "non": "norse antico", "nov": "novial", "nqo": "n’ko", "nr": "ndebele del sud", "nso": "sotho del nord", "nus": "nuer", "nv": "navajo", "nwc": "newari classico", "ny": "nyanja", "nym": "nyamwezi", "nyn": "nyankole", "nyo": "nyoro", "nzi": "nzima", "oc": "occitano", "oj": "ojibwa", "om": "oromo", "or": "odia", "os": "ossetico", "osa": "osage", "ota": "turco ottomano", "pa": "punjabi", "pag": "pangasinan", "pal": "pahlavi", "pam": "pampanga", "pap": "papiamento", "pau": "palau", "pcd": "piccardo", "pcm": "pidgin nigeriano", "pdc": "tedesco della Pennsylvania", "peo": "persiano antico", "pfl": "tedesco palatino", "phn": "fenicio", "pi": "pali", "pl": "polacco", "pms": "piemontese", "pnt": "pontico", "pon": "ponape", "prg": "prussiano", "pro": "provenzale antico", "ps": "pashto", "pt": "portoghese", "pt-BR": "portoghese brasiliano", "pt-PT": "portoghese europeo", "qu": "quechua", "quc": "k’iche’", "qug": "quechua dell’altopiano del Chimborazo", "raj": "rajasthani", "rap": "rapanui", "rar": "rarotonga", "rgn": "romagnolo", "rif": "tarifit", "rm": "romancio", "rn": "rundi", "ro": "rumeno", "ro-MD": "moldavo", "rof": "rombo", "rom": "romani", "rtm": "rotumano", "ru": "russo", "rue": "ruteno", "rug": "roviana", "rup": "arumeno", "rw": "kinyarwanda", "rwk": "rwa", "sa": "sanscrito", "sad": "sandawe", "sah": "yakut", "sam": "aramaico samaritano", "saq": "samburu", "sas": "sasak", "sat": "santali", "saz": "saurashtra", "sba": "ngambay", "sbp": "sangu", "sc": "sardo", "scn": "siciliano", "sco": "scozzese", "sd": "sindhi", "sdc": "sassarese", "sdh": "curdo meridionale", "se": "sami del nord", "see": "seneca", "seh": "sena", "sei": "seri", "sel": "selkup", "ses": "koyraboro senni", "sg": "sango", "sga": "irlandese antico", "sgs": "samogitico", "sh": "serbo-croato", "shi": "tashelhit", "shn": "shan", "shu": "arabo ciadiano", "si": "singalese", "sid": "sidamo", "sk": "slovacco", "sl": "sloveno", "sli": "tedesco slesiano", "sly": "selayar", "sm": "samoano", "sma": "sami del sud", "smj": "sami di Lule", "smn": "sami di Inari", "sms": "sami skolt", "sn": "shona", "snk": "soninke", "so": "somalo", "sog": "sogdiano", "sq": "albanese", "sr": "serbo", "srn": "sranan tongo", "srr": "serer", "ss": "swati", "ssy": "saho", "st": "sotho del sud", "stq": "saterfriesisch", "su": "sundanese", "suk": "sukuma", "sus": "susu", "sux": "sumero", "sv": "svedese", "sw": "swahili", "sw-CD": "swahili del Congo", "swb": "comoriano", "syc": "siriaco classico", "syr": "siriaco", "szl": "slesiano", "ta": "tamil", "tcy": "tulu", "te": "telugu", "tem": "temne", "teo": "teso", "ter": "tereno", "tet": "tetum", "tg": "tagico", "th": "thai", "ti": "tigrino", "tig": "tigre", "tk": "turcomanno", "tkl": "tokelau", "tkr": "tsakhur", "tl": "tagalog", "tlh": "klingon", "tli": "tlingit", "tly": "taliscio", "tmh": "tamashek", "tn": "tswana", "to": "tongano", "tog": "nyasa del Tonga", "tpi": "tok pisin", "tr": "turco", "tru": "turoyo", "trv": "taroko", "ts": "tsonga", "tsd": "zaconico", "tsi": "tsimshian", "tt": "tataro", "ttt": "tat islamico", "tum": "tumbuka", "tvl": "tuvalu", "tw": "ci", "twq": "tasawaq", "ty": "taitiano", "tyv": "tuvinian", "tzm": "tamazight", "udm": "udmurt", "ug": "uiguro", "uga": "ugaritico", "uk": "ucraino", "umb": "mbundu", "ur": "urdu", "uz": "uzbeco", "ve": "venda", "vec": "veneto", "vep": "vepso", "vi": "vietnamita", "vls": "fiammingo occidentale", "vo": "volapük", "vot": "voto", "vro": "võro", "vun": "vunjo", "wa": "vallone", "wae": "walser", "wal": "walamo", "war": "waray", "was": "washo", "wbp": "warlpiri", "wo": "wolof", "wuu": "wu", "xal": "kalmyk", "xh": "xhosa", "xmf": "mengrelio", "xog": "soga", "yao": "yao (bantu)", "yap": "yapese", "yav": "yangben", "ybb": "yemba", "yi": "yiddish", "yo": "yoruba", "yrl": "nheengatu", "yue": "cantonese", "za": "zhuang", "zap": "zapotec", "zbl": "blissymbol", "zea": "zelandese", "zen": "zenaga", "zgh": "tamazight del Marocco standard", "zh": "cinese", "zh-Hans": "cinese semplificato", "zh-Hant": "cinese tradizionale", "zu": "zulu", "zun": "zuni", "zza": "zaza"}, "scriptNames": {"Cyrl": "cirillico", "Latn": "latino", "Arab": "arabo", "Guru": "gurmukhi", "Tfng": "tifinagh", "Vaii": "vaii", "Hans": "semplificato", "Hant": "tradizionale"}}, + "ja": {"rtl": false, "languageNames": {"aa": "アファル語", "ab": "アブハズ語", "ace": "アチェ語", "ach": "アチョリ語", "ada": "アダングメ語", "ady": "アディゲ語", "ae": "アヴェスタ語", "aeb": "チュニジア・アラビア語", "af": "アフリカーンス語", "afh": "アフリヒリ語", "agq": "アゲム語", "ain": "アイヌ語", "ak": "アカン語", "akk": "アッカド語", "akz": "アラバマ語", "ale": "アレウト語", "aln": "ゲグ・アルバニア語", "alt": "南アルタイ語", "am": "アムハラ語", "an": "アラゴン語", "ang": "古英語", "anp": "アンギカ語", "ar": "アラビア語", "ar-001": "現代標準アラビア語", "arc": "アラム語", "arn": "マプチェ語", "aro": "アラオナ語", "arp": "アラパホー語", "arq": "アルジェリア・アラビア語", "ars": "ナジュド地方・アラビア語", "arw": "アラワク語", "ary": "モロッコ・アラビア語", "arz": "エジプト・アラビア語", "as": "アッサム語", "asa": "アス語", "ase": "アメリカ手話", "ast": "アストゥリアス語", "av": "アヴァル語", "avk": "コタヴァ", "awa": "アワディー語", "ay": "アイマラ語", "az": "アゼルバイジャン語", "ba": "バシキール語", "bal": "バルーチー語", "ban": "バリ語", "bar": "バイエルン・オーストリア語", "bas": "バサ語", "bax": "バムン語", "bbc": "トバ・バタク語", "bbj": "ゴーマラ語", "be": "ベラルーシ語", "bej": "ベジャ語", "bem": "ベンバ語", "bew": "ベタウィ語", "bez": "ベナ語", "bfd": "バフット語", "bfq": "バダガ語", "bg": "ブルガリア語", "bgn": "西バローチー語", "bho": "ボージュプリー語", "bi": "ビスラマ語", "bik": "ビコル語", "bin": "ビニ語", "bjn": "バンジャル語", "bkm": "コム語", "bla": "シクシカ語", "bm": "バンバラ語", "bn": "ベンガル語", "bo": "チベット語", "bpy": "ビシュヌプリヤ・マニプリ語", "bqi": "バフティヤーリー語", "br": "ブルトン語", "bra": "ブラジ語", "brh": "ブラフイ語", "brx": "ボド語", "bs": "ボスニア語", "bss": "アコース語", "bua": "ブリヤート語", "bug": "ブギ語", "bum": "ブル語", "byn": "ビリン語", "byv": "メドゥンバ語", "ca": "カタロニア語", "cad": "カドー語", "car": "カリブ語", "cay": "カユーガ語", "cch": "チャワイ語", "ccp": "チャクマ語", "ce": "チェチェン語", "ceb": "セブアノ語", "cgg": "チガ語", "ch": "チャモロ語", "chb": "チブチャ語", "chg": "チャガタイ語", "chk": "チューク語", "chm": "マリ語", "chn": "チヌーク混成語", "cho": "チョクトー語", "chp": "チペワイアン語", "chr": "チェロキー語", "chy": "シャイアン語", "ckb": "中央クルド語", "co": "コルシカ語", "cop": "コプト語", "cps": "カピス語", "cr": "クリー語", "crh": "クリミア・タタール語", "crs": "セーシェル・クレオール語", "cs": "チェコ語", "csb": "カシューブ語", "cu": "教会スラブ語", "cv": "チュヴァシ語", "cy": "ウェールズ語", "da": "デンマーク語", "dak": "ダコタ語", "dar": "ダルグワ語", "dav": "タイタ語", "de": "ドイツ語", "de-AT": "ドイツ語 (オーストリア)", "de-CH": "標準ドイツ語 (スイス)", "del": "デラウェア語", "den": "スレイビー語", "dgr": "ドグリブ語", "din": "ディンカ語", "dje": "ザルマ語", "doi": "ドーグリー語", "dsb": "低地ソルブ語", "dtp": "中央ドゥスン語", "dua": "ドゥアラ語", "dum": "中世オランダ語", "dv": "ディベヒ語", "dyo": "ジョラ=フォニィ語", "dyu": "ジュラ語", "dz": "ゾンカ語", "dzg": "ダザガ語", "ebu": "エンブ語", "ee": "エウェ語", "efi": "エフィク語", "egl": "エミリア語", "egy": "古代エジプト語", "eka": "エカジュク語", "el": "ギリシャ語", "elx": "エラム語", "en": "英語", "en-AU": "オーストラリア英語", "en-CA": "カナダ英語", "en-GB": "イギリス英語", "en-US": "アメリカ英語", "enm": "中英語", "eo": "エスペラント語", "es": "スペイン語", "es-419": "スペイン語 (ラテンアメリカ)", "es-ES": "スペイン語 (イベリア半島)", "es-MX": "スペイン語 (メキシコ)", "esu": "中央アラスカ・ユピック語", "et": "エストニア語", "eu": "バスク語", "ewo": "エウォンド語", "ext": "エストレマドゥーラ語", "fa": "ペルシア語", "fan": "ファング語", "fat": "ファンティー語", "ff": "フラ語", "fi": "フィンランド語", "fil": "フィリピノ語", "fit": "トルネダール・フィンランド語", "fj": "フィジー語", "fo": "フェロー語", "fon": "フォン語", "fr": "フランス語", "fr-CA": "フランス語 (カナダ)", "fr-CH": "フランス語 (スイス)", "frc": "ケイジャン・フランス語", "frm": "中期フランス語", "fro": "古フランス語", "frp": "アルピタン語", "frr": "北フリジア語", "frs": "東フリジア語", "fur": "フリウリ語", "fy": "西フリジア語", "ga": "アイルランド語", "gaa": "ガ語", "gag": "ガガウズ語", "gan": "贛語", "gay": "ガヨ語", "gba": "バヤ語", "gbz": "ダリー語(ゾロアスター教)", "gd": "スコットランド・ゲール語", "gez": "ゲエズ語", "gil": "キリバス語", "gl": "ガリシア語", "glk": "ギラキ語", "gmh": "中高ドイツ語", "gn": "グアラニー語", "goh": "古高ドイツ語", "gom": "ゴア・コンカニ語", "gon": "ゴーンディー語", "gor": "ゴロンタロ語", "got": "ゴート語", "grb": "グレボ語", "grc": "古代ギリシャ語", "gsw": "スイスドイツ語", "gu": "グジャラート語", "guc": "ワユ語", "gur": "フラフラ語", "guz": "グシイ語", "gv": "マン島語", "gwi": "グウィッチン語", "ha": "ハウサ語", "hai": "ハイダ語", "hak": "客家語", "haw": "ハワイ語", "he": "ヘブライ語", "hi": "ヒンディー語", "hif": "フィジー・ヒンディー語", "hil": "ヒリガイノン語", "hit": "ヒッタイト語", "hmn": "フモン語", "ho": "ヒリモツ語", "hr": "クロアチア語", "hsb": "高地ソルブ語", "hsn": "湘語", "ht": "ハイチ・クレオール語", "hu": "ハンガリー語", "hup": "フパ語", "hy": "アルメニア語", "hz": "ヘレロ語", "ia": "インターリングア", "iba": "イバン語", "ibb": "イビビオ語", "id": "インドネシア語", "ie": "インターリング", "ig": "イボ語", "ii": "四川イ語", "ik": "イヌピアック語", "ilo": "イロカノ語", "inh": "イングーシ語", "io": "イド語", "is": "アイスランド語", "it": "イタリア語", "iu": "イヌクティトット語", "izh": "イングリア語", "ja": "日本語", "jam": "ジャマイカ・クレオール語", "jbo": "ロジバン語", "jgo": "ンゴンバ語", "jmc": "マチャメ語", "jpr": "ユダヤ・ペルシア語", "jrb": "ユダヤ・アラビア語", "jut": "ユトランド語", "jv": "ジャワ語", "ka": "ジョージア語", "kaa": "カラカルパク語", "kab": "カビル語", "kac": "カチン語", "kaj": "カジェ語", "kam": "カンバ語", "kaw": "カウィ語", "kbd": "カバルド語", "kbl": "カネンブ語", "kcg": "カタブ語", "kde": "マコンデ語", "kea": "カーボベルデ・クレオール語", "ken": "ニャン語", "kfo": "コロ語", "kg": "コンゴ語", "kgp": "カインガング語", "kha": "カシ語", "kho": "コータン語", "khq": "コイラ・チーニ語", "khw": "コワール語", "ki": "キクユ語", "kiu": "キルマンジュキ語", "kj": "クワニャマ語", "kk": "カザフ語", "kkj": "カコ語", "kl": "グリーンランド語", "kln": "カレンジン語", "km": "クメール語", "kmb": "キンブンド語", "kn": "カンナダ語", "ko": "韓国語", "koi": "コミ・ペルミャク語", "kok": "コンカニ語", "kos": "コスラエ語", "kpe": "クペレ語", "kr": "カヌリ語", "krc": "カラチャイ・バルカル語", "kri": "クリオ語", "krj": "キナライア語", "krl": "カレリア語", "kru": "クルク語", "ks": "カシミール語", "ksb": "サンバー語", "ksf": "バフィア語", "ksh": "ケルン語", "ku": "クルド語", "kum": "クムク語", "kut": "クテナイ語", "kv": "コミ語", "kw": "コーンウォール語", "ky": "キルギス語", "la": "ラテン語", "lad": "ラディノ語", "lag": "ランギ語", "lah": "ラフンダー語", "lam": "ランバ語", "lb": "ルクセンブルク語", "lez": "レズギ語", "lfn": "リングア・フランカ・ノバ", "lg": "ガンダ語", "li": "リンブルフ語", "lij": "リグリア語", "liv": "リヴォニア語", "lkt": "ラコタ語", "lmo": "ロンバルド語", "ln": "リンガラ語", "lo": "ラオ語", "lol": "モンゴ語", "lou": "ルイジアナ・クレオール語", "loz": "ロジ語", "lrc": "北ロル語", "lt": "リトアニア語", "ltg": "ラトガリア語", "lu": "ルバ・カタンガ語", "lua": "ルバ・ルルア語", "lui": "ルイセーニョ語", "lun": "ルンダ語", "luo": "ルオ語", "lus": "ミゾ語", "luy": "ルヒヤ語", "lv": "ラトビア語", "lzh": "漢文", "lzz": "ラズ語", "mad": "マドゥラ語", "maf": "マファ語", "mag": "マガヒー語", "mai": "マイティリー語", "mak": "マカッサル語", "man": "マンディンゴ語", "mas": "マサイ語", "mde": "マバ語", "mdf": "モクシャ語", "mdr": "マンダル語", "men": "メンデ語", "mer": "メル語", "mfe": "モーリシャス・クレオール語", "mg": "マダガスカル語", "mga": "中期アイルランド語", "mgh": "マクア・ミート語", "mgo": "メタ語", "mh": "マーシャル語", "mi": "マオリ語", "mic": "ミクマク語", "min": "ミナンカバウ語", "mk": "マケドニア語", "ml": "マラヤーラム語", "mn": "モンゴル語", "mnc": "満州語", "mni": "マニプリ語", "moh": "モーホーク語", "mos": "モシ語", "mr": "マラーティー語", "mrj": "山地マリ語", "ms": "マレー語", "mt": "マルタ語", "mua": "ムンダン語", "mus": "クリーク語", "mwl": "ミランダ語", "mwr": "マールワーリー語", "mwv": "メンタワイ語", "my": "ミャンマー語", "mye": "ミエネ語", "myv": "エルジャ語", "mzn": "マーザンダラーン語", "na": "ナウル語", "nan": "閩南語", "nap": "ナポリ語", "naq": "ナマ語", "nb": "ノルウェー語(ブークモール)", "nd": "北ンデベレ語", "nds": "低地ドイツ語", "nds-NL": "低地ドイツ語 (オランダ)", "ne": "ネパール語", "new": "ネワール語", "ng": "ンドンガ語", "nia": "ニアス語", "niu": "ニウーエイ語", "njo": "アオ・ナガ語", "nl": "オランダ語", "nl-BE": "フレミッシュ語", "nmg": "クワシオ語", "nn": "ノルウェー語(ニーノシュク)", "nnh": "ンジエムブーン語", "no": "ノルウェー語", "nog": "ノガイ語", "non": "古ノルド語", "nov": "ノヴィアル", "nqo": "ンコ語", "nr": "南ンデベレ語", "nso": "北部ソト語", "nus": "ヌエル語", "nv": "ナバホ語", "nwc": "古典ネワール語", "ny": "ニャンジャ語", "nym": "ニャムウェジ語", "nyn": "ニャンコレ語", "nyo": "ニョロ語", "nzi": "ンゼマ語", "oc": "オック語", "oj": "オジブウェー語", "om": "オロモ語", "or": "オディア語", "os": "オセット語", "osa": "オセージ語", "ota": "オスマントルコ語", "pa": "パンジャブ語", "pag": "パンガシナン語", "pal": "パフラヴィー語", "pam": "パンパンガ語", "pap": "パピアメント語", "pau": "パラオ語", "pcd": "ピカルディ語", "pcm": "ナイジェリア・ピジン語", "pdc": "ペンシルベニア・ドイツ語", "pdt": "メノナイト低地ドイツ語", "peo": "古代ペルシア語", "pfl": "プファルツ語", "phn": "フェニキア語", "pi": "パーリ語", "pl": "ポーランド語", "pms": "ピエモンテ語", "pnt": "ポントス・ギリシャ語", "pon": "ポンペイ語", "prg": "プロシア語", "pro": "古期プロバンス語", "ps": "パシュトゥー語", "pt": "ポルトガル語", "pt-BR": "ポルトガル語 (ブラジル)", "pt-PT": "ポルトガル語 (イベリア半島)", "qu": "ケチュア語", "quc": "キチェ語", "qug": "チンボラソ高地ケチュア語", "raj": "ラージャスターン語", "rap": "ラパヌイ語", "rar": "ラロトンガ語", "rgn": "ロマーニャ語", "rif": "リーフ語", "rm": "ロマンシュ語", "rn": "ルンディ語", "ro": "ルーマニア語", "ro-MD": "モルダビア語", "rof": "ロンボ語", "rom": "ロマーニー語", "root": "ルート", "rtm": "ロツマ語", "ru": "ロシア語", "rue": "ルシン語", "rug": "ロヴィアナ語", "rup": "アルーマニア語", "rw": "キニアルワンダ語", "rwk": "ルワ語", "sa": "サンスクリット語", "sad": "サンダウェ語", "sah": "サハ語", "sam": "サマリア・アラム語", "saq": "サンブル語", "sas": "ササク語", "sat": "サンターリー語", "saz": "サウラーシュトラ語", "sba": "ンガムバイ語", "sbp": "サング語", "sc": "サルデーニャ語", "scn": "シチリア語", "sco": "スコットランド語", "sd": "シンド語", "sdc": "サッサリ・サルデーニャ語", "sdh": "南部クルド語", "se": "北サーミ語", "see": "セネカ語", "seh": "セナ語", "sei": "セリ語", "sel": "セリクプ語", "ses": "コイラボロ・センニ語", "sg": "サンゴ語", "sga": "古アイルランド語", "sgs": "サモギティア語", "sh": "セルボ・クロアチア語", "shi": "タシルハイト語", "shn": "シャン語", "shu": "チャド・アラビア語", "si": "シンハラ語", "sid": "シダモ語", "sk": "スロバキア語", "sl": "スロベニア語", "sli": "低シレジア語", "sly": "スラヤール語", "sm": "サモア語", "sma": "南サーミ語", "smj": "ルレ・サーミ語", "smn": "イナリ・サーミ語", "sms": "スコルト・サーミ語", "sn": "ショナ語", "snk": "ソニンケ語", "so": "ソマリ語", "sog": "ソグド語", "sq": "アルバニア語", "sr": "セルビア語", "srn": "スリナム語", "srr": "セレル語", "ss": "スワジ語", "ssy": "サホ語", "st": "南部ソト語", "stq": "ザーターフリジア語", "su": "スンダ語", "suk": "スクマ語", "sus": "スス語", "sux": "シュメール語", "sv": "スウェーデン語", "sw": "スワヒリ語", "sw-CD": "コンゴ・スワヒリ語", "swb": "コモロ語", "syc": "古典シリア語", "syr": "シリア語", "szl": "シレジア語", "ta": "タミル語", "tcy": "トゥル語", "te": "テルグ語", "tem": "テムネ語", "teo": "テソ語", "ter": "テレーノ語", "tet": "テトゥン語", "tg": "タジク語", "th": "タイ語", "ti": "ティグリニア語", "tig": "ティグレ語", "tiv": "ティブ語", "tk": "トルクメン語", "tkl": "トケラウ語", "tkr": "ツァフル語", "tl": "タガログ語", "tlh": "クリンゴン語", "tli": "トリンギット語", "tly": "タリシュ語", "tmh": "タマシェク語", "tn": "ツワナ語", "to": "トンガ語", "tog": "トンガ語(ニアサ)", "tpi": "トク・ピシン語", "tr": "トルコ語", "tru": "トゥロヨ語", "trv": "タロコ語", "ts": "ツォンガ語", "tsd": "ツァコン語", "tsi": "チムシュ語", "tt": "タタール語", "ttt": "ムスリム・タタール語", "tum": "トゥンブカ語", "tvl": "ツバル語", "tw": "トウィ語", "twq": "タサワク語", "ty": "タヒチ語", "tyv": "トゥヴァ語", "tzm": "中央アトラス・タマジクト語", "udm": "ウドムルト語", "ug": "ウイグル語", "uga": "ウガリト語", "uk": "ウクライナ語", "umb": "ムブンドゥ語", "ur": "ウルドゥー語", "uz": "ウズベク語", "vai": "ヴァイ語", "ve": "ベンダ語", "vec": "ヴェネト語", "vep": "ヴェプス語", "vi": "ベトナム語", "vls": "西フラマン語", "vmf": "マインフランク語", "vo": "ヴォラピュク語", "vot": "ヴォート語", "vro": "ヴォロ語", "vun": "ヴンジョ語", "wa": "ワロン語", "wae": "ヴァリス語", "wal": "ウォライタ語", "war": "ワライ語", "was": "ワショ語", "wbp": "ワルピリ語", "wo": "ウォロフ語", "wuu": "呉語", "xal": "カルムイク語", "xh": "コサ語", "xmf": "メグレル語", "xog": "ソガ語", "yao": "ヤオ語", "yap": "ヤップ語", "yav": "ヤンベン語", "ybb": "イエンバ語", "yi": "イディッシュ語", "yo": "ヨルバ語", "yrl": "ニェエンガトゥ語", "yue": "広東語", "za": "チワン語", "zap": "サポテカ語", "zbl": "ブリスシンボル", "zea": "ゼーラント語", "zen": "ゼナガ語", "zgh": "標準モロッコ タマジクト語", "zh": "中国語", "zh-Hans": "簡体中国語", "zh-Hant": "繁体中国語", "zu": "ズールー語", "zun": "ズニ語", "zza": "ザザ語"}, "scriptNames": {"Cyrl": "キリル文字", "Latn": "ラテン文字", "Arab": "アラビア文字", "Guru": "グルムキー文字", "Tfng": "ティフナグ文字", "Vaii": "ヴァイ文字", "Hans": "簡体字", "Hant": "繁体字"}}, + "jv": {"rtl": false, "languageNames": {"agq": "Aghem", "ak": "Akan", "am": "Amharik", "ar": "Arab", "ar-001": "Arab Standar Anyar", "as": "Assam", "asa": "Asu", "ast": "Asturia", "az": "Azerbaijan", "bas": "Basaa", "bem": "Bemba", "bez": "Bena", "bg": "Bulgaria", "bm": "Bambara", "bn": "Bengali", "bo": "Tibet", "br": "Breton", "brx": "Bodo", "ca": "Katala", "ce": "Chechen", "ceb": "Cebuano", "cgg": "Chiga", "chr": "Cherokee", "ckb": "Kurdi Tengah", "co": "Korsika", "cs": "Ceska", "cu": "Slavia Gerejani", "cy": "Welsh", "da": "Dansk", "dav": "Taita", "de": "Jérman", "de-AT": "Jérman (Ostenrik)", "de-CH": "Jérman (Switserlan)", "dje": "Zarma", "dsb": "Sorbia Non Standar", "dua": "Duala", "dyo": "Jola-Fonyi", "dz": "Dzongkha", "ebu": "Embu", "ee": "Ewe", "el": "Yunani", "en": "Inggris", "en-AU": "Inggris (Ostrali)", "en-CA": "Inggris (Kanada)", "en-GB": "Inggris (Karajan Manunggal)", "en-US": "Inggris (Amérika Sarékat)", "eo": "Esperanto", "es": "Spanyol", "es-419": "Spanyol (Amerika Latin)", "es-ES": "Spanyol (Eropah)", "es-MX": "Spanyol (Meksiko)", "et": "Estonia", "eu": "Basque", "ewo": "Ewondo", "fa": "Persia", "ff": "Fulah", "fi": "Suomi", "fil": "Tagalog", "fo": "Faroe", "fr": "Prancis", "fr-CA": "Prancis (Kanada)", "fr-CH": "Prancis (Switserlan)", "fur": "Friulian", "fy": "Frisia Sisih Kulon", "ga": "Irlandia", "gd": "Gaulia", "gl": "Galisia", "gsw": "Jerman Swiss", "gu": "Gujarat", "guz": "Gusii", "gv": "Manx", "ha": "Hausa", "haw": "Hawaii", "he": "Ibrani", "hi": "India", "hmn": "Hmong", "hr": "Kroasia", "hsb": "Sorbia Standar", "ht": "Kreol Haiti", "hu": "Hungaria", "hy": "Armenia", "ia": "Interlingua", "id": "Indonesia", "ig": "Iqbo", "ii": "Sichuan Yi", "is": "Islandia", "it": "Italia", "ja": "Jepang", "jgo": "Ngomba", "jmc": "Machame", "jv": "Jawa", "ka": "Georgia", "kab": "Kabyle", "kam": "Kamba", "kde": "Makonde", "kea": "Kabuverdianu", "khq": "Koyra Chiini", "ki": "Kikuyu", "kk": "Kazakh", "kkj": "Kako", "kl": "Kalaallisut", "kln": "Kalenjin", "km": "Khmer", "kn": "Kannada", "ko": "Korea", "kok": "Konkani", "ks": "Kashmiri", "ksb": "Shambala", "ksf": "Bafia", "ksh": "Colonia", "ku": "Kurdis", "kw": "Kernowek", "ky": "Kirgis", "la": "Latin", "lag": "Langi", "lb": "Luksemburg", "lg": "Ganda", "lkt": "Lakota", "ln": "Lingala", "lo": "Laos", "lrc": "Luri Sisih Lor", "lt": "Lithuania", "lu": "Luba-Katanga", "luo": "Luo", "luy": "Luyia", "lv": "Latvia", "mas": "Masai", "mer": "Meru", "mfe": "Morisyen", "mg": "Malagasi", "mgh": "Makhuwa-Meeto", "mgo": "Meta’", "mi": "Maori", "mk": "Makedonia", "ml": "Malayalam", "mn": "Mongolia", "mr": "Marathi", "ms": "Melayu", "mt": "Malta", "mua": "Mundang", "my": "Myanmar", "mzn": "Mazanderani", "naq": "Nama", "nb": "Bokmål Norwegia", "nd": "Ndebele Lor", "nds": "Jerman Non Standar", "nds-NL": "Jerman Non Standar (Walanda)", "ne": "Nepal", "nl": "Walanda", "nl-BE": "Flemis", "nmg": "Kwasio", "nn": "Nynorsk Norwegia", "nnh": "Ngiemboon", "nus": "Nuer", "ny": "Nyanja", "nyn": "Nyankole", "om": "Oromo", "or": "Odia", "os": "Ossetia", "pa": "Punjab", "pl": "Polandia", "prg": "Prusia", "ps": "Pashto", "pt": "Portugis", "pt-BR": "Portugis (Brasil)", "pt-PT": "Portugis (Portugal)", "qu": "Quechua", "rm": "Roman", "rn": "Rundi", "ro": "Rumania", "ro-MD": "Rumania (Moldova)", "rof": "Rombo", "ru": "Rusia", "rw": "Kinyarwanda", "rwk": "Rwa", "sa": "Sanskerta", "sah": "Sakha", "saq": "Samburu", "sbp": "Sangu", "sd": "Sindhi", "se": "Sami Sisih Lor", "seh": "Sena", "ses": "Koyraboro Senni", "sg": "Sango", "shi": "Tachelhit", "si": "Sinhala", "sk": "Slowakia", "sl": "Slovenia", "sm": "Samoa", "smn": "Inari Sami", "sn": "Shona", "so": "Somalia", "sq": "Albania", "sr": "Serbia", "st": "Sotho Sisih Kidul", "su": "Sunda", "sv": "Swedia", "sw": "Swahili", "sw-CD": "Swahili (Kongo - Kinshasa)", "ta": "Tamil", "te": "Telugu", "teo": "Teso", "tg": "Tajik", "th": "Thailand", "ti": "Tigrinya", "tk": "Turkmen", "to": "Tonga", "tr": "Turki", "tt": "Tatar", "twq": "Tasawaq", "tzm": "Tamazight Atlas Tengah", "ug": "Uighur", "uk": "Ukraina", "ur": "Urdu", "uz": "Uzbek", "vai": "Vai", "vi": "Vietnam", "vo": "Volapuk", "vun": "Vunjo", "wae": "Walser", "wo": "Wolof", "xh": "Xhosa", "xog": "Soga", "yav": "Yangben", "yi": "Yiddish", "yo": "Yoruba", "yue": "Kanton", "zgh": "Tamazight Moroko Standar", "zh": "Tyonghwa", "zh-Hans": "Tyonghwa (Prasaja)", "zh-Hant": "Tyonghwa (Tradisional)", "zu": "Zulu"}, "scriptNames": {"Cyrl": "Sirilik", "Latn": "Latin", "Guru": "Gurmukhi", "Hans": "Prasaja", "Hant": "Tradhisional"}}, + "km": {"rtl": false, "languageNames": {"aa": "អាហ្វារ", "ab": "អាប់ខាហ៊្សាន", "ace": "អាកហ៊ីនឺស", "ada": "អាដេងមី", "ady": "អាឌីហ្គី", "ae": "អាវេស្ថាន", "af": "អាហ្វ្រិកាន", "agq": "អាហ្គីម", "ain": "អាយនូ", "ak": "អាកាន", "ale": "អាលូត", "alt": "អាល់តៃខាងត្បូង", "am": "អាំហារិក", "an": "អារ៉ាហ្គោន", "anp": "អាហ្គីកា", "ar": "អារ៉ាប់", "ar-001": "អារ៉ាប់ (ស្តង់ដារ)", "arn": "ម៉ាពូឈី", "arp": "អារ៉ាប៉ាហូ", "as": "អាសាមីស", "asa": "អាស៊ូ", "ast": "អាស្ទូរី", "av": "អាវ៉ារីក", "awa": "អាវ៉ាឌី", "ay": "អីម៉ារ៉ា", "az": "អាស៊ែបៃហ្សង់", "ba": "បាស្គៀ", "ban": "បាលី", "bas": "បាសា", "be": "បេឡារុស", "bem": "បេមបា", "bez": "បេណា", "bg": "ប៊ុលហ្គារី", "bgn": "បាឡូជីខាងលិច", "bho": "បូចពូរី", "bi": "ប៊ីស្លាម៉ា", "bin": "ប៊ីនី", "bla": "ស៊ីកស៊ីកា", "bm": "បាម្បារា", "bn": "បង់ក្លាដែស", "bo": "ទីបេ", "br": "ប្រីស្តុន", "brx": "បូដូ", "bs": "បូស្នី", "bug": "ប៊ុកហ្គី", "byn": "ប្ល៊ីន", "ca": "កាតាឡាន", "ce": "ឈីឆេន", "ceb": "ស៊ីប៊ូអាណូ", "cgg": "ឈីហ្គា", "ch": "ឈីម៉ូរ៉ូ", "chk": "ឈូគី", "chm": "ម៉ារី", "cho": "ឆុកតាវ", "chr": "ឆេរូគី", "chy": "ឈីយីនី", "ckb": "ឃើដភាគកណ្តាល", "co": "កូស៊ីខាន", "crs": "សេសេលវ៉ាគ្រីអូល (បារាំង)", "cs": "ឆែក", "cu": "ឈឺជស្លាវិក", "cv": "ឈូវ៉ាស", "cy": "វេល", "da": "ដាណឺម៉ាក", "dak": "ដាកូតា", "dar": "ដាចវ៉ា", "dav": "តៃតា", "de": "អាល្លឺម៉ង់", "de-AT": "អាល្លឺម៉ង់ (អូទ្រីស)", "de-CH": "អាល្លឺម៉ង់ (ស្វីស)", "dgr": "ដូគ្រីប", "dje": "ហ្សាម៉ា", "dsb": "សូប៊ីក្រោម", "dua": "ឌួលឡា", "dv": "ទេវីហ៊ី", "dyo": "ចូឡាហ៊្វុនយី", "dz": "ដុងខា", "dzg": "ដាហ្សាហ្គា", "ebu": "អេមប៊ូ", "ee": "អ៊ីវ", "efi": "អ៊ីហ្វិក", "eka": "អ៊ីកាជុក", "el": "ក្រិក", "en": "អង់គ្លេស", "en-AU": "អង់គ្លេស (អូស្ត្រាលី)", "en-CA": "អង់គ្លេស (កាណាដា)", "en-GB": "អង់គ្លេស (ចក្រភព​អង់គ្លេស)", "en-US": "អង់គ្លេស (សហរដ្ឋអាមេរិក)", "eo": "អេស្ពេរ៉ាន់តូ", "es": "អេស្ប៉ាញ", "es-419": "អេស្ប៉ាញ (អាមេរិក​ឡាទីន)", "es-ES": "អេស្ប៉ាញ (អ៊ឺរ៉ុប)", "es-MX": "អេស្ប៉ាញ (ម៉ិកស៊ិក)", "et": "អេស្តូនី", "eu": "បាសខ៍", "ewo": "អ៊ីវ៉ុនដូ", "fa": "ភឺសៀន", "ff": "ហ្វ៊ូឡា", "fi": "ហ្វាំងឡង់", "fil": "ហ្វីលីពីន", "fj": "ហ៊្វីជី", "fo": "ហ្វារូស", "fon": "ហ្វ៊ុន", "fr": "បារាំង", "fr-CA": "បារាំង (កាណាដា)", "fr-CH": "បារាំង (ស្វីស)", "fur": "ហ៊្វ្រូលាន", "fy": "ហ្វ្រីស៊ានខាងលិច", "ga": "អៀរឡង់", "gaa": "ហ្គា", "gag": "កាគូស", "gd": "ស្កុតហ្កែលិគ", "gez": "ជីស", "gil": "ហ្គីលបឺទ", "gl": "ហ្គាលីស្យាន", "gn": "ហ្គូរ៉ានី", "gor": "ហ្គូរុនតាឡូ", "gsw": "អាល្លឺម៉ង (ស្វីស)", "gu": "ហ្កុយ៉ារាទី", "guz": "ហ្គូស៊ី", "gv": "មេន", "gwi": "ហ្គីចឈីន", "ha": "ហូសា", "haw": "ហាវៃ", "he": "ហេប្រឺ", "hi": "ហិណ្ឌី", "hil": "ហ៊ីលីហ្គេណុន", "hmn": "ម៉ុង", "hr": "ក្រូអាត", "hsb": "សូប៊ីលើ", "ht": "ហៃទី", "hu": "ហុងគ្រី", "hup": "ហ៊ូប៉ា", "hy": "អាមេនី", "hz": "ហឺរីរ៉ូ", "ia": "អីនធើលីង", "iba": "អ៊ីបាន", "ibb": "អាយប៊ីប៊ីអូ", "id": "ឥណ្ឌូណេស៊ី", "ig": "អ៊ីកបូ", "ii": "ស៊ីឈាន់យី", "ilo": "អ៊ីឡូកូ", "inh": "អ៊ិនហ្គូស", "io": "អ៊ីដូ", "is": "អ៊ីស្លង់", "it": "អ៊ីតាលី", "iu": "អ៊ីនុកទីទុត", "ja": "ជប៉ុន", "jbo": "លុចបាន", "jgo": "ងុំបា", "jmc": "ម៉ាឆាំ", "jv": "ជ្វា", "ka": "ហ្សក​ហ្ស៊ី", "kab": "កាប៊ីឡេ", "kac": "កាឈីន", "kaj": "ជូ", "kam": "កាំបា", "kbd": "កាបាឌៀ", "kcg": "យ៉ាប់", "kde": "ម៉ាកូនដេ", "kea": "កាប៊ូវឺឌៀនូ", "kfo": "គូរូ", "kha": "កាស៊ី", "khq": "គុយរ៉ាឈីនី", "ki": "គីគូយូ", "kj": "គូនយ៉ាម៉ា", "kk": "កាហ្សាក់", "kkj": "កាកូ", "kl": "កាឡាលលីស៊ុត", "kln": "កាលែនជីន", "km": "ខ្មែរ", "kmb": "គីមប៊ុនឌូ", "kn": "ខាណាដា", "ko": "កូរ៉េ", "koi": "គូមីភឹមយ៉ាគ", "kok": "គុនកានី", "kpe": "គ្លីប", "kr": "កានូរី", "krc": "ការ៉ាឆាយបាល់កា", "krl": "ការីលា", "kru": "គូរូក", "ks": "កាស្មៀរ", "ksb": "សាមបាឡា", "ksf": "បាហ្វៀ", "ksh": "កូឡូញ", "ku": "ឃឺដ", "kum": "គូមីគ", "kv": "កូមី", "kw": "កូនីស", "ky": "​កៀហ្ស៊ីស", "la": "ឡាតំាង", "lad": "ឡាឌីណូ", "lag": "ឡានហ្គី", "lb": "លុចសំបួ", "lez": "ឡេសហ្គី", "lg": "ហ្គាន់ដា", "li": "លីមប៊ូស", "lkt": "ឡាកូតា", "ln": "លីនកាឡា", "lo": "ឡាវ", "loz": "ឡូហ្ស៊ី", "lrc": "លូរីខាងជើង", "lt": "លីទុយអានី", "lu": "លូបាកាតានហ្គា", "lua": "លូបាលូឡា", "lun": "លុនដា", "luo": "លូអូ", "lus": "មីហ្សូ", "luy": "លូយ៉ា", "lv": "ឡាតវី", "mad": "ម៉ាឌូរីស", "mag": "ម៉ាហ្គាហ៊ី", "mai": "ម៉ៃធីលី", "mak": "ម៉ាកាសា", "mas": "ម៉ាសៃ", "mdf": "មុខសា", "men": "មេនឌី", "mer": "មេរូ", "mfe": "ម៉ូរីស៊ីន", "mg": "ម៉ាឡាហ្គាស៊ី", "mgh": "ម៉ាកគូវ៉ាមីតូ", "mgo": "មេតា", "mh": "ម៉ាស់សល", "mi": "ម៉ោរី", "mic": "មិកមេក", "min": "មីណាងកាប៊ូ", "mk": "ម៉ាសេដូនី", "ml": "ម៉ាឡាយ៉ាឡាម", "mn": "ម៉ុងហ្គោលី", "mni": "ម៉ានីពូរី", "moh": "ម៊ូហាគ", "mos": "មូស៊ី", "mr": "ម៉ារ៉ាធី", "ms": "ម៉ាឡេ", "mt": "ម៉ាល់តា", "mua": "មុនដាង", "mus": "គ្រីក", "mwl": "មីរ៉ានដេស", "my": "ភូមា", "myv": "អឺហ្ស៊ីយ៉ា", "mzn": "ម៉ាហ្សានដឺរេនី", "na": "ណូរូ", "nap": "នាប៉ូលីតាន", "naq": "ណាម៉ា", "nb": "ន័រវែស បុកម៉ាល់", "nd": "នេបេលេខាងជើង", "nds": "អាល្លឺម៉ង់ក្រោម", "nds-NL": "ហ្សាក់ស្យុងក្រោម", "ne": "នេប៉ាល់", "new": "នេវ៉ាវី", "ng": "នុនហ្គា", "nia": "នីអាស", "niu": "នូអៀន", "nl": "ហូឡង់", "nl-BE": "ផ្លាមីស", "nmg": "ក្វាស្យូ", "nn": "ន័រវែស នីនូស", "nnh": "ងៀមប៊ូន", "no": "ន័រវែស", "nog": "ណូហ្គៃ", "nqo": "នគោ", "nr": "នេប៊េលខាងត្បូង", "nso": "សូថូខាងជើង", "nus": "នូអ័រ", "nv": "ណាវ៉ាចូ", "ny": "ណានចា", "nyn": "ណានកូលេ", "oc": "អូសីតាន់", "om": "អូរ៉ូម៉ូ", "or": "អូឌៀ", "os": "អូស៊ីទិក", "pa": "បឹនជាពិ", "pag": "ភេនហ្គាស៊ីណាន", "pam": "ផាមភេនហ្គា", "pap": "ប៉ាប៉ៃមេនតូ", "pau": "ប៉ាលូអាន", "pcm": "ភាសាទំនាក់ទំនងនីហ្សេរីយ៉ា", "pl": "ប៉ូឡូញ", "prg": "ព្រូស៊ាន", "ps": "បាស្តូ", "pt": "ព័រទុយហ្គាល់", "pt-BR": "ព័រទុយហ្គាល់ (ប្រេស៊ីល)", "pt-PT": "ព័រទុយហ្គាល់ (អឺរ៉ុប)", "qu": "ហ្គិកឈួ", "quc": "គីចឈី", "rap": "រ៉ាប៉ានូ", "rar": "រ៉ារ៉ូតុងហ្គាន", "rm": "រ៉ូម៉ង់", "rn": "រុណ្ឌី", "ro": "រូម៉ានី", "ro-MD": "ម៉ុលដាវី", "rof": "រុមបូ", "root": "រូត", "ru": "រុស្ស៊ី", "rup": "អារ៉ូម៉ានី", "rw": "គិនយ៉ាវ៉ាន់ដា", "rwk": "រ៉្វា", "sa": "សំស្ក្រឹត", "sad": "សានដាវី", "sah": "សាខា", "saq": "សាមបូរូ", "sat": "សាន់តាលី", "sba": "ងាំបេយ", "sbp": "សានហ្គូ", "sc": "សាឌីនា", "scn": "ស៊ីស៊ីលាន", "sco": "ស្កុត", "sd": "ស៊ីនឌី", "sdh": "ឃើដភាគខាងត្បូង", "se": "សាមីខាងជើង", "seh": "ស៊ីណា", "ses": "គុយរ៉ាបូរ៉ុស៊ីនី", "sg": "សានហ្គោ", "sh": "សឺបូក្រូអាត", "shi": "តាឈីលហ៊ីត", "shn": "សាន", "si": "ស្រីលង្កា", "sk": "ស្លូវ៉ាគី", "sl": "ស្លូវ៉ានី", "sm": "សាម័រ", "sma": "សាមីខាងត្បូង", "smj": "លូលីសាមី", "smn": "អ៊ីណារីសាម៉ី", "sms": "ស្កុលសាមី", "sn": "សូណា", "snk": "សូនីនគេ", "so": "សូម៉ាលី", "sq": "អាល់បានី", "sr": "ស៊ែប", "srn": "ស្រាណានតុងហ្គោ", "ss": "ស្វាទី", "ssy": "សាហូ", "st": "សូថូខាងត្បូង", "su": "ស៊ូដង់", "suk": "ស៊ូគូម៉ា", "sv": "ស៊ុយអែត", "sw": "ស្វាហ៊ីលី", "sw-CD": "កុងហ្គោស្វាហ៊ីលី", "swb": "កូម៉ូរី", "syr": "ស៊ីរី", "ta": "តាមីល", "te": "តេលុគុ", "tem": "ធីមនី", "teo": "តេសូ", "tet": "ទីទុំ", "tg": "តាហ្ស៊ីគ", "th": "ថៃ", "ti": "ទីហ្គ្រីញ៉ា", "tig": "ធីហ្គ្រា", "tk": "តួកម៉េន", "tlh": "ឃ្លីនហ្គុន", "tn": "ស្វាណា", "to": "តុងហ្គា", "tpi": "ថុកពីស៊ីន", "tr": "ទួរគី", "trv": "តារ៉ូកូ", "ts": "សុងហ្គា", "tt": "តាតា", "tum": "ទុមប៊ូកា", "tvl": "ទូវ៉ាលូ", "tw": "ទ្វី", "twq": "តាសាវ៉ាក់", "ty": "តាហ៊ីទី", "tyv": "ទូវីនៀ", "tzm": "តាម៉ាសាយអាត្លាសកណ្តាល", "udm": "អាត់មូដ", "ug": "អ៊ុយហ្គឺរ", "uk": "អ៊ុយក្រែន", "umb": "អាម់ប៊ុនឌូ", "ur": "អ៊ូរឌូ", "uz": "អ៊ូសបេគ", "vai": "វៃ", "ve": "វេនដា", "vi": "វៀតណាម", "vo": "វូឡាពូក", "vun": "វុនចូ", "wa": "វ៉ាលូន", "wae": "វេលសឺ", "wal": "វ៉ូឡាយតា", "war": "វ៉ារេយ", "wbp": "វ៉ារីប៉ារី", "wo": "វូឡុហ្វ", "xal": "កាលមីគ", "xh": "ឃសា", "xog": "សូហ្គា", "yav": "យ៉ាងបេន", "ybb": "យេមបា", "yi": "យ៉ីឌីស", "yo": "យរូបា", "yue": "កន្តាំង", "za": "ហ្សួង", "zgh": "តាម៉ាហ្សៃម៉ារ៉ុកស្តង់ដា", "zh": "ចិន", "zh-Hans": "ចិន​អក្សរ​កាត់", "zh-Hant": "ចិន​អក្សរ​ពេញ", "zu": "ហ្សូលូ", "zun": "ហ្សូនី", "zza": "ហ្សាហ្សា"}, "scriptNames": {"Cyrl": "ស៊ីរីលីក", "Latn": "ឡាតាំង", "Arab": "អារ៉ាប់", "Guru": "កុមុយឃី", "Hans": "អក្សរ​ចិន​កាត់", "Hant": "អក្សរ​ចិន​ពេញ"}}, + "kn": {"rtl": false, "languageNames": {"aa": "ಅಫಾರ್", "ab": "ಅಬ್ಖಾಜಿಯನ್", "ace": "ಅಛಿನೀಸ್", "ach": "ಅಕೋಲಿ", "ada": "ಅಡಂಗ್ಮೆ", "ady": "ಅಡೈಘೆ", "ae": "ಅವೆಸ್ಟನ್", "af": "ಆಫ್ರಿಕಾನ್ಸ್", "afh": "ಆಫ್ರಿಹಿಲಿ", "agq": "ಅಘೆಮ್", "ain": "ಐನು", "ak": "ಅಕಾನ್", "akk": "ಅಕ್ಕಾಡಿಯನ್", "ale": "ಅಲೆಯುಟ್", "alt": "ದಕ್ಷಿಣ ಅಲ್ಟಾಯ್", "am": "ಅಂಹರಿಕ್", "an": "ಅರಗೊನೀಸ್", "ang": "ಪ್ರಾಚೀನ ಇಂಗ್ಲೀಷ್", "anp": "ಆಂಗಿಕಾ", "ar": "ಅರೇಬಿಕ್", "ar-001": "ಆಧುನಿಕ ಪ್ರಮಾಣಿತ ಅರೇಬಿಕ್", "arc": "ಅರಾಮಿಕ್", "arn": "ಮಪುಚೆ", "arp": "ಅರಪಾಹೋ", "arw": "ಅರಾವಾಕ್", "as": "ಅಸ್ಸಾಮೀಸ್", "asa": "ಅಸು", "ast": "ಆಸ್ಟುರಿಯನ್", "av": "ಅವರಿಕ್", "awa": "ಅವಧಿ", "ay": "ಅಯ್ಮಾರಾ", "az": "ಅಜೆರ್ಬೈಜಾನಿ", "ba": "ಬಶ್ಕಿರ್", "bal": "ಬಲೂಚಿ", "ban": "ಬಲಿನೀಸ್", "bas": "ಬಸಾ", "be": "ಬೆಲರೂಸಿಯನ್", "bej": "ಬೇಜಾ", "bem": "ಬೆಂಬಾ", "bez": "ಬೆನ", "bg": "ಬಲ್ಗೇರಿಯನ್", "bgn": "ಪಶ್ಚಿಮ ಬಲೊಚಿ", "bho": "ಭೋಜಪುರಿ", "bi": "ಬಿಸ್ಲಾಮಾ", "bik": "ಬಿಕೊಲ್", "bin": "ಬಿನಿ", "bla": "ಸಿಕ್ಸಿಕಾ", "bm": "ಬಂಬಾರಾ", "bn": "ಬಾಂಗ್ಲಾ", "bo": "ಟಿಬೇಟಿಯನ್", "br": "ಬ್ರೆಟನ್", "bra": "ಬ್ರಜ್", "brx": "ಬೋಡೊ", "bs": "ಬೋಸ್ನಿಯನ್", "bua": "ಬುರಿಯಟ್", "bug": "ಬುಗಿನೀಸ್", "byn": "ಬ್ಲಿನ್", "ca": "ಕೆಟಲಾನ್", "cad": "ಕ್ಯಾಡ್ಡೋ", "car": "ಕಾರಿಬ್", "cch": "ಅಟ್ಸಮ್", "ce": "ಚೆಚನ್", "ceb": "ಸೆಬುವಾನೊ", "cgg": "ಚಿಗಾ", "ch": "ಕಮೊರೊ", "chb": "ಚಿಬ್ಚಾ", "chg": "ಚಗಟಾಯ್", "chk": "ಚೂಕಿಸೆ", "chm": "ಮಾರಿ", "chn": "ಚಿನೂಕ್ ಜಾರ್ಗೋನ್", "cho": "ಚೋಕ್ಟಾವ್", "chp": "ಚಿಪೆವ್ಯಾನ್", "chr": "ಚೆರೋಕಿ", "chy": "ಚೀಯೆನ್ನೇ", "ckb": "ಮಧ್ಯ ಕುರ್ದಿಶ್", "co": "ಕೋರ್ಸಿಕನ್", "cop": "ಕೊಪ್ಟಿಕ್", "cr": "ಕ್ರೀ", "crh": "ಕ್ರಿಮೀಯನ್ ಟರ್ಕಿಷ್", "crs": "ಸೆಸೆಲ್ವಾ ಕ್ರಯೋಲ್ ಫ್ರೆಂಚ್", "cs": "ಜೆಕ್", "csb": "ಕಶುಬಿಯನ್", "cu": "ಚರ್ಚ್ ಸ್ಲಾವಿಕ್", "cv": "ಚುವಾಶ್", "cy": "ವೆಲ್ಶ್", "da": "ಡ್ಯಾನಿಶ್", "dak": "ಡಕೋಟಾ", "dar": "ದರ್ಗ್ವಾ", "dav": "ಟೈಟ", "de": "ಜರ್ಮನ್", "de-AT": "ಆಸ್ಟ್ರಿಯನ್ ಜರ್ಮನ್", "de-CH": "ಸ್ವಿಸ್ ಹೈ ಜರ್ಮನ್", "del": "ಡೆಲಾವೇರ್", "den": "ಸ್ಲೇವ್", "dgr": "ಡೋಗ್ರಿಬ್", "din": "ಡಿಂಕಾ", "dje": "ಜರ್ಮಾ", "doi": "ಡೋಗ್ರಿ", "dsb": "ಲೋವರ್ ಸೋರ್ಬಿಯನ್", "dua": "ಡುವಾಲಾ", "dum": "ಮಧ್ಯ ಡಚ್", "dv": "ದಿವೆಹಿ", "dyo": "ಜೊಲ-ಫೊನ್ಯಿ", "dyu": "ಡ್ಯೂಲಾ", "dz": "ಜೋಂಗ್‌ಖಾ", "dzg": "ಡಜಾಗ", "ebu": "ಎಂಬು", "ee": "ಈವ್", "efi": "ಎಫಿಕ್", "egy": "ಪ್ರಾಚೀನ ಈಜಿಪ್ಟಿಯನ್", "eka": "ಎಕಾಜುಕ್", "el": "ಗ್ರೀಕ್", "elx": "ಎಲಾಮೈಟ್", "en": "ಇಂಗ್ಲಿಷ್", "en-AU": "ಆಸ್ಟ್ರೇಲಿಯನ್ ಇಂಗ್ಲಿಷ್", "en-CA": "ಕೆನೆಡಿಯನ್ ಇಂಗ್ಲಿಷ್", "en-GB": "ಬ್ರಿಟಿಷ್ ಇಂಗ್ಲಿಷ್", "en-US": "ಅಮೆರಿಕನ್ ಇಂಗ್ಲಿಷ್", "enm": "ಮಧ್ಯ ಇಂಗ್ಲೀಷ್", "eo": "ಎಸ್ಪೆರಾಂಟೊ", "es": "ಸ್ಪ್ಯಾನಿಷ್", "es-419": "ಲ್ಯಾಟಿನ್ ಅಮೇರಿಕನ್ ಸ್ಪ್ಯಾನಿಷ್", "es-ES": "ಯುರೋಪಿಯನ್ ಸ್ಪ್ಯಾನಿಷ್", "es-MX": "ಮೆಕ್ಸಿಕನ್ ಸ್ಪ್ಯಾನಿಷ್", "et": "ಎಸ್ಟೊನಿಯನ್", "eu": "ಬಾಸ್ಕ್", "ewo": "ಇವಾಂಡೋ", "fa": "ಪರ್ಶಿಯನ್", "fan": "ಫಾಂಗ್", "fat": "ಫಾಂಟಿ", "ff": "ಫುಲಾ", "fi": "ಫಿನ್ನಿಶ್", "fil": "ಫಿಲಿಪಿನೊ", "fj": "ಫಿಜಿಯನ್", "fo": "ಫರೋಸಿ", "fon": "ಫೋನ್", "fr": "ಫ್ರೆಂಚ್", "fr-CA": "ಕೆನೆಡಿಯನ್ ಫ್ರೆಂಚ್", "fr-CH": "ಸ್ವಿಸ್ ಫ್ರೆಂಚ್", "frc": "ಕಾಜುನ್ ಫ್ರೆಂಚ್", "frm": "ಮಧ್ಯ ಫ್ರೆಂಚ್", "fro": "ಪ್ರಾಚೀನ ಫ್ರೆಂಚ್", "frr": "ಉತ್ತರ ಫ್ರಿಸಿಯನ್", "frs": "ಪೂರ್ವ ಫ್ರಿಸಿಯನ್", "fur": "ಫ್ರಿಯುಲಿಯನ್", "fy": "ಪಶ್ಚಿಮ ಫ್ರಿಸಿಯನ್", "ga": "ಐರಿಷ್", "gaa": "ಗ", "gag": "ಗಗೌಜ್", "gan": "ಗಾನ್ ಚೀನೀಸ್", "gay": "ಗಾಯೋ", "gba": "ಗ್ಬಾಯಾ", "gd": "ಸ್ಕಾಟಿಶ್ ಗೆಲಿಕ್", "gez": "ಗೀಝ್", "gil": "ಗಿಲ್ಬರ್ಟೀಸ್", "gl": "ಗ್ಯಾಲಿಶಿಯನ್", "gmh": "ಮಧ್ಯ ಹೈ ಜರ್ಮನ್", "gn": "ಗೌರಾನಿ", "goh": "ಪ್ರಾಚೀನ ಹೈ ಜರ್ಮನ್", "gon": "ಗೊಂಡಿ", "gor": "ಗೊರೊಂಟಾಲೋ", "got": "ಗೋಥಿಕ್", "grb": "ಗ್ರೇಬೋ", "grc": "ಪ್ರಾಚೀನ ಗ್ರೀಕ್", "gsw": "ಸ್ವಿಸ್ ಜರ್ಮನ್", "gu": "ಗುಜರಾತಿ", "guz": "ಗುಸಿ", "gv": "ಮ್ಯಾಂಕ್ಸ್", "gwi": "ಗ್ವಿಚ್‌ಇನ್", "ha": "ಹೌಸಾ", "hai": "ಹೈಡಾ", "hak": "ಹಕ್", "haw": "ಹವಾಯಿಯನ್", "he": "ಹೀಬ್ರೂ", "hi": "ಹಿಂದಿ", "hil": "ಹಿಲಿಗೇನನ್", "hit": "ಹಿಟ್ಟಿಟೆ", "hmn": "ಮೋಂಗ್", "ho": "ಹಿರಿ ಮೊಟು", "hr": "ಕ್ರೊಯೇಶಿಯನ್", "hsb": "ಅಪ್ಪರ್ ಸರ್ಬಿಯನ್", "hsn": "ಶಯಾಂಗ್ ಚೀನೀಸೇ", "ht": "ಹೈಟಿಯನ್ ಕ್ರಿಯೋಲಿ", "hu": "ಹಂಗೇರಿಯನ್", "hup": "ಹೂಪಾ", "hy": "ಅರ್ಮೇನಿಯನ್", "hz": "ಹೆರೆರೊ", "ia": "ಇಂಟರ್‌ಲಿಂಗ್ವಾ", "iba": "ಇಬಾನ್", "ibb": "ಇಬಿಬಿಯೋ", "id": "ಇಂಡೋನೇಶಿಯನ್", "ie": "ಇಂಟರ್ಲಿಂಗ್", "ig": "ಇಗ್ಬೊ", "ii": "ಸಿಚುಅನ್ ಯಿ", "ik": "ಇನುಪಿಯಾಕ್", "ilo": "ಇಲ್ಲಿಕೋ", "inh": "ಇಂಗುಷ್", "io": "ಇಡೊ", "is": "ಐಸ್‌ಲ್ಯಾಂಡಿಕ್", "it": "ಇಟಾಲಿಯನ್", "iu": "ಇನುಕ್ಟಿಟುಟ್", "ja": "ಜಾಪನೀಸ್", "jbo": "ಲೊಜ್ಬಾನ್", "jgo": "ನೊಂಬಾ", "jmc": "ಮ್ಯಕಮೆ", "jpr": "ಜೂಡಿಯೋ-ಪರ್ಶಿಯನ್", "jrb": "ಜೂಡಿಯೋ-ಅರೇಬಿಕ್", "jv": "ಜಾವಾನೀಸ್", "ka": "ಜಾರ್ಜಿಯನ್", "kaa": "ಕಾರಾ-ಕಲ್ಪಾಕ್", "kab": "ಕಬೈಲ್", "kac": "ಕಚಿನ್", "kaj": "ಜ್ಜು", "kam": "ಕಂಬಾ", "kaw": "ಕಾವಿ", "kbd": "ಕಬರ್ಡಿಯನ್", "kcg": "ಟ್ಯಾಪ್", "kde": "ಮ್ಯಾಕೊಂಡ್", "kea": "ಕಬುವೆರ್ಡಿಯನು", "kfo": "ಕೋರೋ", "kg": "ಕಾಂಗೋ", "kha": "ಖಾಸಿ", "kho": "ಖೋಟಾನೀಸ್", "khq": "ಕೊಯ್ರ ಚೀನಿ", "ki": "ಕಿಕುಯು", "kj": "ಕ್ವಾನ್‌ಯಾಮಾ", "kk": "ಕಝಕ್", "kkj": "ಕಾಕೊ", "kl": "ಕಲಾಲ್ಲಿಸುಟ್", "kln": "ಕಲೆಂಜಿನ್", "km": "ಖಮೇರ್", "kmb": "ಕಿಂಬುಂಡು", "kn": "ಕನ್ನಡ", "ko": "ಕೊರಿಯನ್", "koi": "ಕೋಮಿ-ಪರ್ಮ್ಯಕ್", "kok": "ಕೊಂಕಣಿ", "kos": "ಕೊಸರಿಯನ್", "kpe": "ಕಪೆಲ್ಲೆ", "kr": "ಕನುರಿ", "krc": "ಕರಚಯ್-ಬಲ್ಕಾರ್", "krl": "ಕರೇಲಿಯನ್", "kru": "ಕುರುಖ್", "ks": "ಕಾಶ್ಮೀರಿ", "ksb": "ಶಂಬಲ", "ksf": "ಬಫಿಯ", "ksh": "ಕಲೊಗ್ನಿಯನ್", "ku": "ಕುರ್ದಿಷ್", "kum": "ಕುಮೈಕ್", "kut": "ಕುಟೇನಾಯ್", "kv": "ಕೋಮಿ", "kw": "ಕಾರ್ನಿಷ್", "ky": "ಕಿರ್ಗಿಜ್", "la": "ಲ್ಯಾಟಿನ್", "lad": "ಲ್ಯಾಡಿನೋ", "lag": "ಲಾಂಗಿ", "lah": "ಲಹಂಡಾ", "lam": "ಲಂಬಾ", "lb": "ಲಕ್ಸಂಬರ್ಗಿಷ್", "lez": "ಲೆಜ್ಘಿಯನ್", "lg": "ಗಾಂಡಾ", "li": "ಲಿಂಬರ್ಗಿಶ್", "lkt": "ಲಕೊಟ", "ln": "ಲಿಂಗಾಲ", "lo": "ಲಾವೋ", "lol": "ಮೊಂಗೋ", "lou": "ಲೂಯಿಸಿಯಾನ ಕ್ರಿಯೋಲ್", "loz": "ಲೋಝಿ", "lrc": "ಉತ್ತರ ಲೂರಿ", "lt": "ಲಿಥುವೇನಿಯನ್", "lu": "ಲೂಬಾ-ಕಟಾಂಗಾ", "lua": "ಲುಬ-ಲುಲಾ", "lui": "ಲೂಯಿಸೆನೋ", "lun": "ಲುಂಡಾ", "luo": "ಲುವೋ", "lus": "ಮಿಝೋ", "luy": "ಲುಯಿಯ", "lv": "ಲಾಟ್ವಿಯನ್", "mad": "ಮದುರೀಸ್", "mag": "ಮಗಾಹಿ", "mai": "ಮೈಥಿಲಿ", "mak": "ಮಕಾಸರ್", "man": "ಮಂಡಿಂಗೊ", "mas": "ಮಸಾಯ್", "mdf": "ಮೋಕ್ಷ", "mdr": "ಮಂದಾರ್", "men": "ಮೆಂಡೆ", "mer": "ಮೆರು", "mfe": "ಮೊರಿಸನ್", "mg": "ಮಲಗಾಸಿ", "mga": "ಮಧ್ಯ ಐರಿಷ್", "mgh": "ಮ್ಯಖುವಾ- ಮೀಟ್ಟೊ", "mgo": "ಮೆಟಾ", "mh": "ಮಾರ್ಶಲ್ಲೀಸ್", "mi": "ಮಾವೋರಿ", "mic": "ಮಿಕ್‌ಮ್ಯಾಕ್", "min": "ಮಿನಂಗ್‌ಕಬಾವು", "mk": "ಮೆಸಿಡೋನಿಯನ್", "ml": "ಮಲಯಾಳಂ", "mn": "ಮಂಗೋಲಿಯನ್", "mnc": "ಮಂಚು", "mni": "ಮಣಿಪುರಿ", "moh": "ಮೊಹಾವ್ಕ್", "mos": "ಮೊಸ್ಸಿ", "mr": "ಮರಾಠಿ", "ms": "ಮಲಯ್", "mt": "ಮಾಲ್ಟೀಸ್", "mua": "ಮುಂಡಂಗ್", "mus": "ಕ್ರೀಕ್", "mwl": "ಮಿರಾಂಡೀಸ್", "mwr": "ಮಾರ್ವಾಡಿ", "my": "ಬರ್ಮೀಸ್", "myv": "ಎರ್ಝ್ಯಾ", "mzn": "ಮಜಂದೆರಾನಿ", "na": "ನೌರು", "nan": "ನಾನ್", "nap": "ನಿಯಾಪೊಲಿಟನ್", "naq": "ನಮ", "nb": "ನಾರ್ವೆಜಿಯನ್ ಬೊಕ್ಮಲ್", "nd": "ಉತ್ತರ ದೆಬೆಲೆ", "nds": "ಲೋ ಜರ್ಮನ್", "nds-NL": "ಲೋ ಸ್ಯಾಕ್ಸನ್", "ne": "ನೇಪಾಳಿ", "new": "ನೇವಾರೀ", "ng": "ಡೋಂಗಾ", "nia": "ನಿಯಾಸ್", "niu": "ನಿಯುವನ್", "nl": "ಡಚ್", "nl-BE": "ಫ್ಲೆಮಿಷ್", "nmg": "ಖ್ವಾಸಿಯೊ", "nn": "ನಾರ್ವೇಜಿಯನ್ ನೈನಾರ್ಸ್ಕ್", "nnh": "ನಿಂಬೂನ್", "no": "ನಾರ್ವೇಜಿಯನ್", "nog": "ನೊಗಾಯ್", "non": "ಪ್ರಾಚೀನ ನೋರ್ಸ್", "nqo": "ಎನ್‌ಕೋ", "nr": "ದಕ್ಷಿಣ ದೆಬೆಲೆ", "nso": "ಉತ್ತರ ಸೋಥೋ", "nus": "ನೂಯರ್", "nv": "ನವಾಜೊ", "nwc": "ಶಾಸ್ತ್ರೀಯ ನೇವಾರಿ", "ny": "ನ್ಯಾಂಜಾ", "nym": "ನ್ಯಾಮ್‌ವೆಂಜಿ", "nyn": "ನ್ಯಾನ್‌ಕೋಲೆ", "nyo": "ನ್ಯೋರೋ", "nzi": "ಜೀಮಾ", "oc": "ಒಸಿಟನ್", "oj": "ಒಜಿಬ್ವಾ", "om": "ಒರೊಮೊ", "or": "ಒಡಿಯ", "os": "ಒಸ್ಸೆಟಿಕ್", "osa": "ಓಸಾಜ್", "ota": "ಒಟ್ಟೋಮನ್ ತುರ್ಕಿಷ್", "pa": "ಪಂಜಾಬಿ", "pag": "ಪಂಗಾಸಿನನ್", "pal": "ಪಹ್ಲವಿ", "pam": "ಪಂಪಾಂಗಾ", "pap": "ಪಪಿಯಾಮೆಂಟೊ", "pau": "ಪಲುಆನ್", "pcm": "ನೈಜೀರಿಯನ್ ಪಿಡ್ಗಿನ್", "peo": "ಪ್ರಾಚೀನ ಪರ್ಶಿಯನ್", "phn": "ಫೀನಿಷಿಯನ್", "pi": "ಪಾಲಿ", "pl": "ಪೊಲಿಶ್", "pon": "ಪೋನ್‌‌ಪಿಯನ್", "prg": "ಪ್ರಶಿಯನ್", "pro": "ಪ್ರಾಚೀನ ಪ್ರೊವೆನ್ಶಿಯಲ್", "ps": "ಪಾಷ್ಟೋ", "pt": "ಪೋರ್ಚುಗೀಸ್", "pt-BR": "ಬ್ರೆಜಿಲಿಯನ್ ಪೋರ್ಚುಗೀಸ್", "pt-PT": "ಯೂರೋಪಿಯನ್ ಪೋರ್ಚುಗೀಸ್", "qu": "ಕ್ವೆಚುವಾ", "quc": "ಕಿಷೆ", "raj": "ರಾಜಸ್ಥಾನಿ", "rap": "ರಾಪಾನುಯಿ", "rar": "ರಾರೋಟೊಂಗನ್", "rm": "ರೊಮಾನ್ಶ್", "rn": "ರುಂಡಿ", "ro": "ರೊಮೇನಿಯನ್", "ro-MD": "ಮಾಲ್ಡೇವಿಯನ್", "rof": "ರೊಂಬೊ", "rom": "ರೋಮಾನಿ", "root": "ರೂಟ್", "ru": "ರಷ್ಯನ್", "rup": "ಅರೋಮಾನಿಯನ್", "rw": "ಕಿನ್ಯಾರ್‌ವಾಂಡಾ", "rwk": "ರುವ", "sa": "ಸಂಸ್ಕೃತ", "sad": "ಸಂಡಾವೇ", "sah": "ಸಖಾ", "sam": "ಸಮರಿಟನ್ ಅರಾಮಿಕ್", "saq": "ಸಂಬುರು", "sas": "ಸಸಾಕ್", "sat": "ಸಂತಾಲಿ", "sba": "ನಂಬೇ", "sbp": "ಸಂಗು", "sc": "ಸರ್ಡೀನಿಯನ್", "scn": "ಸಿಸಿಲಿಯನ್", "sco": "ಸ್ಕೋಟ್ಸ್", "sd": "ಸಿಂಧಿ", "sdh": "ದಕ್ಷಿಣ ಕುರ್ದಿಶ್", "se": "ಉತ್ತರ ಸಾಮಿ", "seh": "ಸೆನ", "sel": "ಸೆಲ್ಕಪ್", "ses": "ಕೊಯ್ರಬೊರೊ ಸೆನ್ನಿ", "sg": "ಸಾಂಗೋ", "sga": "ಪ್ರಾಚೀನ ಐರಿಷ್", "sh": "ಸರ್ಬೋ-ಕ್ರೊಯೇಶಿಯನ್", "shi": "ಟಷೆಲ್‍ಹಿಟ್", "shn": "ಶಾನ್", "si": "ಸಿಂಹಳ", "sid": "ಸಿಡಾಮೋ", "sk": "ಸ್ಲೋವಾಕ್", "sl": "ಸ್ಲೋವೇನಿಯನ್", "sm": "ಸಮೋವನ್", "sma": "ದಕ್ಷಿಣ ಸಾಮಿ", "smj": "ಲೂಲ್ ಸಾಮಿ", "smn": "ಇನಾರಿ ಸಮೀ", "sms": "ಸ್ಕೋಟ್ ಸಾಮಿ", "sn": "ಶೋನಾ", "snk": "ಸೋನಿಂಕೆ", "so": "ಸೊಮಾಲಿ", "sog": "ಸೋಗ್ಡಿಯನ್", "sq": "ಅಲ್ಬೇನಿಯನ್", "sr": "ಸೆರ್ಬಿಯನ್", "srn": "ಸ್ರಾನನ್ ಟೋಂಗೋ", "srr": "ಸೇರೇರ್", "ss": "ಸ್ವಾತಿ", "ssy": "ಸಹೊ", "st": "ದಕ್ಷಿಣ ಸೋಥೋ", "su": "ಸುಂಡಾನೀಸ್", "suk": "ಸುಕುಮಾ", "sus": "ಸುಸು", "sux": "ಸುಮೇರಿಯನ್", "sv": "ಸ್ವೀಡಿಷ್", "sw": "ಸ್ವಹಿಲಿ", "sw-CD": "ಕಾಂಗೊ ಸ್ವಹಿಲಿ", "swb": "ಕೊಮೊರಿಯನ್", "syc": "ಶಾಸ್ತ್ರೀಯ ಸಿರಿಯಕ್", "syr": "ಸಿರಿಯಾಕ್", "ta": "ತಮಿಳು", "te": "ತೆಲುಗು", "tem": "ಟಿಮ್ನೆ", "teo": "ಟೆಸೊ", "ter": "ಟೆರೆನೋ", "tet": "ಟೇಟಮ್", "tg": "ತಾಜಿಕ್", "th": "ಥಾಯ್", "ti": "ಟಿಗ್ರಿನ್ಯಾ", "tig": "ಟೈಗ್ರೆ", "tiv": "ಟಿವ್", "tk": "ಟರ್ಕ್‌ಮೆನ್", "tkl": "ಟೊಕೆಲಾವ್", "tl": "ಟ್ಯಾಗಲೋಗ್", "tlh": "ಕ್ಲಿಂಗನ್", "tli": "ಟ್ಲಿಂಗಿಟ್", "tmh": "ಟಮಾಷೆಕ್", "tn": "ಸ್ವಾನಾ", "to": "ಟೋಂಗನ್", "tog": "ನ್ಯಾಸಾ ಟೋಂಗಾ", "tpi": "ಟೋಕ್ ಪಿಸಿನ್", "tr": "ಟರ್ಕಿಶ್", "trv": "ಟರೊಕೊ", "ts": "ಸೋಂಗಾ", "tsi": "ಸಿಂಶಿಯನ್", "tt": "ಟಾಟರ್", "tum": "ತುಂಬುಕಾ", "tvl": "ಟುವಾಲು", "tw": "ಟ್ವಿ", "twq": "ಟಸವಕ್", "ty": "ಟಹೀಟಿಯನ್", "tyv": "ಟುವಿನಿಯನ್", "tzm": "ಮಧ್ಯ ಅಟ್ಲಾಸ್ ಟಮಜೈಟ್", "udm": "ಉಡ್‌ಮುರ್ಟ್", "ug": "ಉಯಿಘರ್", "uga": "ಉಗಾರಿಟಿಕ್", "uk": "ಉಕ್ರೇನಿಯನ್", "umb": "ಉಂಬುಂಡು", "ur": "ಉರ್ದು", "uz": "ಉಜ್ಬೇಕ್", "vai": "ವಾಯಿ", "ve": "ವೆಂಡಾ", "vi": "ವಿಯೆಟ್ನಾಮೀಸ್", "vo": "ವೋಲಾಪುಕ್", "vot": "ವೋಟಿಕ್", "vun": "ವುಂಜೊ", "wa": "ವಾಲೂನ್", "wae": "ವಾಲ್ಸರ್", "wal": "ವಲಾಯ್ತಾ", "war": "ವರಾಯ್", "was": "ವಾಷೋ", "wbp": "ವಾರ್ಲ್‌ಪಿರಿ", "wo": "ವೋಲೋಫ್", "wuu": "ವು", "xal": "ಕಲ್ಮೈಕ್", "xh": "ಕ್ಸೋಸ", "xog": "ಸೊಗ", "yao": "ಯಾವೊ", "yap": "ಯಪೀಸೆ", "yav": "ಯಾಂಗ್ಬೆನ್", "ybb": "ಯೆಂಬಾ", "yi": "ಯಿಡ್ಡಿಶ್", "yo": "ಯೊರುಬಾ", "yue": "ಕ್ಯಾಂಟನೀಸ್", "za": "ಝೂವಾಂಗ್", "zap": "ಝೋಪೊಟೆಕ್", "zbl": "ಬ್ಲಿಸ್ಸಿಂಬಲ್ಸ್", "zen": "ಝೆನಾಗಾ", "zgh": "ಸ್ಟ್ಯಾಂಡರ್ಡ್ ಮೊರೊಕ್ಕನ್ ಟಮಜೈಟ್", "zh": "ಚೈನೀಸ್", "zh-Hans": "ಸರಳೀಕೃತ ಚೈನೀಸ್", "zh-Hant": "ಸಾಂಪ್ರದಾಯಿಕ ಚೈನೀಸ್", "zu": "ಜುಲು", "zun": "ಝೂನಿ", "zza": "ಜಾಝಾ"}, "scriptNames": {"Cyrl": "ಸಿರಿಲಿಕ್", "Latn": "ಲ್ಯಾಟಿನ್", "Arab": "ಅರೇಬಿಕ್", "Guru": "ಗುರ್ಮುಖಿ", "Tfng": "ಟಿಫಿನಾಘ್", "Vaii": "ವಾಯ್", "Hans": "ಸರಳೀಕೃತ", "Hant": "ಸಾಂಪ್ರದಾಯಿಕ"}}, + "ko": {"rtl": false, "languageNames": {"aa": "아파르어", "ab": "압카즈어", "ace": "아체어", "ach": "아콜리어", "ada": "아당메어", "ady": "아디게어", "ae": "아베스타어", "aeb": "튀니지 아랍어", "af": "아프리칸스어", "afh": "아프리힐리어", "agq": "아그햄어", "ain": "아이누어", "ak": "아칸어", "akk": "아카드어", "ale": "알류트어", "alt": "남부 알타이어", "am": "암하라어", "an": "아라곤어", "ang": "고대 영어", "anp": "앙가어", "ar": "아랍어", "ar-001": "현대 표준 아랍어", "arc": "아람어", "arn": "마푸둥군어", "arp": "아라파호어", "arq": "알제리 아랍어", "ars": "아랍어(나즈디)", "arw": "아라와크어", "ary": "모로코 아랍어", "arz": "이집트 아랍어", "as": "아삼어", "asa": "아수어", "ast": "아스투리아어", "av": "아바릭어", "awa": "아와히어", "ay": "아이마라어", "az": "아제르바이잔어", "ba": "바슈키르어", "bal": "발루치어", "ban": "발리어", "bas": "바사어", "bax": "바문어", "bbj": "고말라어", "be": "벨라루스어", "bej": "베자어", "bem": "벰바어", "bez": "베나어", "bfd": "바푸트어", "bg": "불가리아어", "bgn": "서부 발로치어", "bho": "호즈푸리어", "bi": "비슬라마어", "bik": "비콜어", "bin": "비니어", "bkm": "콤어", "bla": "식시카어", "bm": "밤바라어", "bn": "벵골어", "bo": "티베트어", "br": "브르타뉴어", "bra": "브라지어", "brh": "브라후이어", "brx": "보도어", "bs": "보스니아어", "bss": "아쿠즈어", "bua": "부리아타", "bug": "부기어", "bum": "불루어", "byn": "브린어", "byv": "메둠바어", "ca": "카탈로니아어", "cad": "카도어", "car": "카리브어", "cay": "카유가어", "cch": "앗삼어", "ccp": "차크마어", "ce": "체첸어", "ceb": "세부아노어", "cgg": "치가어", "ch": "차모로어", "chb": "치브차어", "chg": "차가타이어", "chk": "추크어", "chm": "마리어", "chn": "치누크 자곤", "cho": "촉토어", "chp": "치페우얀", "chr": "체로키어", "chy": "샤이엔어", "ckb": "소라니 쿠르드어", "co": "코르시카어", "cop": "콥트어", "cr": "크리어", "crh": "크리민 터키어; 크리민 타타르어", "crs": "세이셸 크리올 프랑스어", "cs": "체코어", "csb": "카슈비아어", "cu": "교회 슬라브어", "cv": "추바시어", "cy": "웨일스어", "da": "덴마크어", "dak": "다코타어", "dar": "다르그와어", "dav": "타이타어", "de": "독일어", "de-AT": "독일어(오스트리아)", "de-CH": "고지 독일어(스위스)", "del": "델라웨어어", "den": "슬라브어", "dgr": "도그리브어", "din": "딩카어", "dje": "자르마어", "doi": "도그리어", "dsb": "저지 소르비아어", "dua": "두알라어", "dum": "중세 네덜란드어", "dv": "디베히어", "dyo": "졸라 포니어", "dyu": "드율라어", "dz": "종카어", "dzg": "다장가어", "ebu": "엠부어", "ee": "에웨어", "efi": "이픽어", "egy": "고대 이집트어", "eka": "이카죽어", "el": "그리스어", "elx": "엘람어", "en": "영어", "en-AU": "영어(호주)", "en-CA": "영어(캐나다)", "en-GB": "영어(영국)", "en-US": "영어(미국)", "enm": "중세 영어", "eo": "에스페란토어", "es": "스페인어", "es-419": "스페인어(라틴 아메리카)", "es-ES": "스페인어(유럽)", "es-MX": "스페인어(멕시코)", "et": "에스토니아어", "eu": "바스크어", "ewo": "이원도어", "fa": "페르시아어", "fan": "팡그어", "fat": "판티어", "ff": "풀라어", "fi": "핀란드어", "fil": "필리핀어", "fj": "피지어", "fo": "페로어", "fon": "폰어", "fr": "프랑스어", "fr-CA": "프랑스어(캐나다)", "fr-CH": "프랑스어(스위스)", "frc": "케이준 프랑스어", "frm": "중세 프랑스어", "fro": "고대 프랑스어", "frr": "북부 프리지아어", "frs": "동부 프리슬란드어", "fur": "프리울리어", "fy": "서부 프리지아어", "ga": "아일랜드어", "gaa": "가어", "gag": "가가우스어", "gan": "간어", "gay": "가요어", "gba": "그바야어", "gbz": "조로아스터 다리어", "gd": "스코틀랜드 게일어", "gez": "게이즈어", "gil": "키리바시어", "gl": "갈리시아어", "glk": "길라키어", "gmh": "중세 고지 독일어", "gn": "과라니어", "goh": "고대 고지 독일어", "gom": "고아 콘칸어", "gon": "곤디어", "gor": "고론탈로어", "got": "고트어", "grb": "게르보어", "grc": "고대 그리스어", "gsw": "독일어(스위스)", "gu": "구자라트어", "guz": "구시어", "gv": "맹크스어", "gwi": "그위친어", "ha": "하우사어", "hai": "하이다어", "hak": "하카어", "haw": "하와이어", "he": "히브리어", "hi": "힌디어", "hif": "피지 힌디어", "hil": "헤리가뇬어", "hit": "하타이트어", "hmn": "히몸어", "ho": "히리 모투어", "hr": "크로아티아어", "hsb": "고지 소르비아어", "hsn": "샹어", "ht": "아이티어", "hu": "헝가리어", "hup": "후파어", "hy": "아르메니아어", "hz": "헤레로어", "ia": "인터링구아", "iba": "이반어", "ibb": "이비비오어", "id": "인도네시아어", "ie": "인테르링구에", "ig": "이그보어", "ii": "쓰촨 이어", "ik": "이누피아크어", "ilo": "이로코어", "inh": "인귀시어", "io": "이도어", "is": "아이슬란드어", "it": "이탈리아어", "iu": "이눅티투트어", "ja": "일본어", "jbo": "로반어", "jgo": "응곰바어", "jmc": "마차메어", "jpr": "유대-페르시아어", "jrb": "유대-아라비아어", "jv": "자바어", "ka": "조지아어", "kaa": "카라칼파크어", "kab": "커바일어", "kac": "카친어", "kaj": "까꼬토끄어", "kam": "캄바어", "kaw": "카위어", "kbd": "카바르디어", "kbl": "카넴부어", "kcg": "티얍어", "kde": "마콘데어", "kea": "크리올어", "kfo": "코로어", "kg": "콩고어", "kha": "카시어", "kho": "호탄어", "khq": "코이라 친니어", "khw": "코와르어", "ki": "키쿠유어", "kj": "쿠안야마어", "kk": "카자흐어", "kkj": "카코어", "kl": "그린란드어", "kln": "칼렌진어", "km": "크메르어", "kmb": "킴분두어", "kn": "칸나다어", "ko": "한국어", "koi": "코미페르먀크어", "kok": "코카니어", "kos": "코스라이엔어", "kpe": "크펠레어", "kr": "칸누리어", "krc": "카라챠이-발카르어", "krl": "카렐리야어", "kru": "쿠르크어", "ks": "카슈미르어", "ksb": "샴발라어", "ksf": "바피아어", "ksh": "콜로그니안어", "ku": "쿠르드어", "kum": "쿠믹어", "kut": "쿠테네어", "kv": "코미어", "kw": "콘월어", "ky": "키르기스어", "la": "라틴어", "lad": "라디노어", "lag": "랑기어", "lah": "라한다어", "lam": "람바어", "lb": "룩셈부르크어", "lez": "레즈기안어", "lfn": "링구아 프랑카 노바", "lg": "간다어", "li": "림버거어", "lkt": "라코타어", "ln": "링갈라어", "lo": "라오어", "lol": "몽고어", "lou": "루이지애나 크리올어", "loz": "로지어", "lrc": "북부 루리어", "lt": "리투아니아어", "lu": "루바-카탄가어", "lua": "루바-룰루아어", "lui": "루이세노어", "lun": "룬다어", "luo": "루오어", "lus": "루샤이어", "luy": "루야어", "lv": "라트비아어", "mad": "마두라어", "maf": "마파어", "mag": "마가히어", "mai": "마이틸리어", "mak": "마카사어", "man": "만딩고어", "mas": "마사이어", "mde": "마바어", "mdf": "모크샤어", "mdr": "만다르어", "men": "멘데어", "mer": "메루어", "mfe": "모리스얀어", "mg": "말라가시어", "mga": "중세 아일랜드어", "mgh": "마크후와-메토어", "mgo": "메타어", "mh": "마셜어", "mi": "마오리어", "mic": "미크맥어", "min": "미낭카바우어", "mk": "마케도니아어", "ml": "말라얄람어", "mn": "몽골어", "mnc": "만주어", "mni": "마니푸리어", "moh": "모호크어", "mos": "모시어", "mr": "마라티어", "mrj": "서부 마리어", "ms": "말레이어", "mt": "몰타어", "mua": "문당어", "mus": "크리크어", "mwl": "미란데어", "mwr": "마르와리어", "my": "버마어", "mye": "미예네어", "myv": "엘즈야어", "mzn": "마잔데라니어", "na": "나우루어", "nan": "민난어", "nap": "나폴리어", "naq": "나마어", "nb": "노르웨이어(보크말)", "nd": "북부 은데벨레어", "nds": "저지 독일어", "nds-NL": "저지 색슨어", "ne": "네팔어", "new": "네와르어", "ng": "느동가어", "nia": "니아스어", "niu": "니웨언어", "nl": "네덜란드어", "nl-BE": "플라망어", "nmg": "크와시오어", "nn": "노르웨이어(니노르스크)", "nnh": "느기엠본어", "no": "노르웨이어", "nog": "노가이어", "non": "고대 노르웨이어", "nqo": "응코어", "nr": "남부 은데벨레어", "nso": "북부 소토어", "nus": "누에르어", "nv": "나바호어", "nwc": "고전 네와르어", "ny": "냔자어", "nym": "니암웨지어", "nyn": "니안콜어", "nyo": "뉴로어", "nzi": "느지마어", "oc": "오크어", "oj": "오지브와어", "om": "오로모어", "or": "오리야어", "os": "오세트어", "osa": "오세이지어", "ota": "오스만 터키어", "pa": "펀잡어", "pag": "판가시난어", "pal": "팔레비어", "pam": "팜팡가어", "pap": "파피아먼토어", "pau": "팔라우어", "pcm": "나이지리아 피진어", "peo": "고대 페르시아어", "phn": "페니키아어", "pi": "팔리어", "pl": "폴란드어", "pnt": "폰틱어", "pon": "폼페이어", "prg": "프러시아어", "pro": "고대 프로방스어", "ps": "파슈토어", "pt": "포르투갈어", "pt-BR": "포르투갈어(브라질)", "pt-PT": "포르투갈어(유럽)", "qu": "케추아어", "quc": "키체어", "raj": "라자스탄어", "rap": "라파뉴이", "rar": "라로통가어", "rm": "로만시어", "rn": "룬디어", "ro": "루마니아어", "ro-MD": "몰도바어", "rof": "롬보어", "rom": "집시어", "root": "어근", "ru": "러시아어", "rue": "루신어", "rup": "아로마니아어", "rw": "르완다어", "rwk": "르와어", "sa": "산스크리트어", "sad": "산다웨어", "sah": "야쿠트어", "sam": "사마리아 아랍어", "saq": "삼부루어", "sas": "사사크어", "sat": "산탈리어", "sba": "느감바이어", "sbp": "상구어", "sc": "사르디니아어", "scn": "시칠리아어", "sco": "스코틀랜드어", "sd": "신디어", "sdh": "남부 쿠르드어", "se": "북부 사미어", "see": "세네카어", "seh": "세나어", "sel": "셀쿠프어", "ses": "코이야보로 세니어", "sg": "산고어", "sga": "고대 아일랜드어", "sh": "세르비아-크로아티아어", "shi": "타셸히트어", "shn": "샨어", "shu": "차디언 아라비아어", "si": "스리랑카어", "sid": "시다모어", "sk": "슬로바키아어", "sl": "슬로베니아어", "sm": "사모아어", "sma": "남부 사미어", "smj": "룰레 사미어", "smn": "이나리 사미어", "sms": "스콜트 사미어", "sn": "쇼나어", "snk": "소닌케어", "so": "소말리아어", "sog": "소그디엔어", "sq": "알바니아어", "sr": "세르비아어", "srn": "스라난 통가어", "srr": "세레르어", "ss": "시스와티어", "ssy": "사호어", "st": "남부 소토어", "su": "순다어", "suk": "수쿠마어", "sus": "수수어", "sux": "수메르어", "sv": "스웨덴어", "sw": "스와힐리어", "sw-CD": "콩고 스와힐리어", "swb": "코모로어", "syc": "고전 시리아어", "syr": "시리아어", "ta": "타밀어", "te": "텔루구어", "tem": "팀니어", "teo": "테조어", "ter": "테레노어", "tet": "테툼어", "tg": "타지크어", "th": "태국어", "ti": "티그리냐어", "tig": "티그레어", "tiv": "티브어", "tk": "투르크멘어", "tkl": "토켈라우제도어", "tkr": "차후르어", "tl": "타갈로그어", "tlh": "클링온어", "tli": "틀링깃족어", "tly": "탈리쉬어", "tmh": "타마섹어", "tn": "츠와나어", "to": "통가어", "tog": "니아사 통가어", "tpi": "토크 피신어", "tr": "터키어", "trv": "타로코어", "ts": "총가어", "tsi": "트심시안어", "tt": "타타르어", "tum": "툼부카어", "tvl": "투발루어", "tw": "트위어", "twq": "타사와크어", "ty": "타히티어", "tyv": "투비니안어", "tzm": "중앙 모로코 타마지트어", "udm": "우드말트어", "ug": "위구르어", "uga": "유가리틱어", "uk": "우크라이나어", "umb": "움분두어", "ur": "우르두어", "uz": "우즈베크어", "vai": "바이어", "ve": "벤다어", "vi": "베트남어", "vo": "볼라퓌크어", "vot": "보틱어", "vun": "분조어", "wa": "왈론어", "wae": "월저어", "wal": "월라이타어", "war": "와라이어", "was": "와쇼어", "wbp": "왈피리어", "wo": "월로프어", "wuu": "우어", "xal": "칼미크어", "xh": "코사어", "xog": "소가어", "yao": "야오족어", "yap": "얍페세어", "yav": "양본어", "ybb": "옘바어", "yi": "이디시어", "yo": "요루바어", "yue": "광둥어", "za": "주앙어", "zap": "사포테크어", "zbl": "블리스 심볼", "zen": "제나가어", "zgh": "표준 모로코 타마지트어", "zh": "중국어", "zh-Hans": "중국어(간체)", "zh-Hant": "중국어(번체)", "zu": "줄루어", "zun": "주니어", "zza": "자자어"}, "scriptNames": {"Cyrl": "키릴 문자", "Latn": "로마자", "Arab": "아랍 문자", "Guru": "구르무키 문자", "Tfng": "티피나그 문자", "Vaii": "바이 문자", "Hans": "간체", "Hant": "번체"}}, + "ku": {"rtl": false, "languageNames": {"aa": "afarî", "ab": "abxazî", "ace": "açehî", "ady": "adîgeyî", "af": "afrîkansî", "ain": "aynuyî", "ale": "alêwîtî", "am": "amharî", "an": "aragonî", "ar": "erebî", "ar-001": "erebiya standard", "as": "asamî", "ast": "astûrî", "av": "avarî", "ay": "aymarayî", "az": "azerî", "ba": "başkîrî", "ban": "balînî", "be": "belarusî", "bem": "bembayî", "bg": "bulgarî", "bho": "bojpûrî", "bi": "bîslamayî", "bla": "blakfotî", "bm": "bambarayî", "bn": "bengalî", "bo": "tîbetî", "br": "bretonî", "bs": "bosnî", "bug": "bugî", "ca": "katalanî", "ce": "çeçenî", "ceb": "sebwanoyî", "ch": "çamoroyî", "chk": "çûkî", "chm": "marî", "chr": "çerokî", "chy": "çeyenî", "ckb": "soranî", "co": "korsîkayî", "cs": "çekî", "cv": "çuvaşî", "cy": "weylsî", "da": "danmarkî", "de": "elmanî", "de-AT": "elmanî (Awistirya)", "de-CH": "elmanî (Swîsre)", "dsb": "sorbiya jêrîn", "dua": "diwalayî", "dv": "divehî", "dz": "conxayî", "ee": "eweyî", "el": "yewnanî", "en": "îngilîzî", "en-AU": "îngilîzî (Awistralya)", "en-CA": "îngilîzî (Kanada)", "en-GB": "îngilîzî (Keyaniya Yekbûyî)", "en-US": "îngilîzî (Dewletên Yekbûyî yên Amerîkayê)", "eo": "esperantoyî", "es": "spanî", "es-419": "spanî (Amerîkaya Latînî)", "es-ES": "spanî (Spanya)", "es-MX": "spanî (Meksîk)", "et": "estonî", "eu": "baskî", "fa": "farisî", "ff": "fulahî", "fi": "fînî", "fil": "fîlîpînoyî", "fj": "fîjî", "fo": "ferî", "fr": "frensî", "fr-CA": "frensî (Kanada)", "fr-CH": "frensî (Swîsre)", "fur": "friyolî", "fy": "frîsî", "ga": "îrî", "gd": "gaelîka skotî", "gil": "kîrîbatî", "gl": "galîsî", "gn": "guwaranî", "gor": "gorontaloyî", "gsw": "elmanîşî", "gu": "gujaratî", "gv": "manksî", "ha": "hawsayî", "haw": "hawayî", "he": "îbranî", "hi": "hindî", "hil": "hîlîgaynonî", "hr": "xirwatî", "hsb": "sorbiya jorîn", "ht": "haîtî", "hu": "mecarî", "hy": "ermenî", "hz": "hereroyî", "ia": "interlingua", "id": "indonezî", "ig": "îgboyî", "ilo": "îlokanoyî", "inh": "îngûşî", "io": "îdoyî", "is": "îzlendî", "it": "îtalî", "iu": "înuîtî", "ja": "japonî", "jbo": "lojbanî", "jv": "javayî", "ka": "gurcî", "kab": "kabîlî", "kea": "kapverdî", "kk": "qazaxî", "kl": "kalalîsûtî", "km": "ximêrî", "kn": "kannadayî", "ko": "koreyî", "kok": "konkanî", "ks": "keşmîrî", "ksh": "rîpwarî", "ku": "kurdî", "kv": "komî", "kw": "kornî", "ky": "kirgizî", "lad": "ladînoyî", "lb": "luksembûrgî", "lez": "lezgînî", "lg": "lugandayî", "li": "lîmbûrgî", "lkt": "lakotayî", "ln": "lingalayî", "lo": "lawsî", "lrc": "luriya bakur", "lt": "lîtwanî", "lv": "latviyayî", "mad": "madurayî", "mas": "masayî", "mdf": "mokşayî", "mg": "malagasî", "mh": "marşalî", "mi": "maorî", "mic": "mîkmakî", "min": "mînangkabawî", "mk": "makedonî", "ml": "malayalamî", "mn": "mongolî", "moh": "mohawkî", "mr": "maratî", "ms": "malezî", "mt": "maltayî", "my": "burmayî", "myv": "erzayî", "mzn": "mazenderanî", "na": "nawrûyî", "nap": "napolîtanî", "nb": "norwecî (bokmål)", "nds-NL": "nds (Holenda)", "ne": "nepalî", "niu": "nîwî", "nl": "holendî", "nl-BE": "flamî", "nn": "norwecî (nynorsk)", "nso": "sotoyiya bakur", "nv": "navajoyî", "oc": "oksîtanî", "om": "oromoyî", "or": "oriyayî", "os": "osetî", "pa": "puncabî", "pam": "kapampanganî", "pap": "papyamentoyî", "pau": "palawî", "pl": "polonî", "prg": "prûsyayî", "ps": "peştûyî", "pt": "portugalî", "pt-BR": "portugalî (Brazîl)", "pt-PT": "portugalî (Portûgal)", "qu": "keçwayî", "rap": "rapanuyî", "rar": "rarotongî", "rm": "romancî", "ro": "romanî", "ro-MD": "romanî (Moldova)", "ru": "rusî", "rup": "aromanî", "rw": "kînyariwandayî", "sa": "sanskrîtî", "sc": "sardînî", "scn": "sicîlî", "sco": "skotî", "sd": "sindhî", "se": "samiya bakur", "si": "kîngalî", "sk": "slovakî", "sl": "slovenî", "sm": "samoayî", "smn": "samiya înarî", "sn": "şonayî", "so": "somalî", "sq": "elbanî", "sr": "sirbî", "srn": "sirananî", "ss": "swazî", "st": "sotoyiya başûr", "su": "sundanî", "sv": "swêdî", "sw": "swahîlî", "sw-CD": "swahîlî (Kongo - Kînşasa)", "swb": "komorî", "syr": "siryanî", "ta": "tamîlî", "te": "telûgûyî", "tet": "tetûmî", "tg": "tacikî", "th": "tayî", "ti": "tigrînî", "tk": "tirkmenî", "tlh": "klîngonî", "tn": "tswanayî", "to": "tongî", "tpi": "tokpisinî", "tr": "tirkî", "trv": "tarokoyî", "ts": "tsongayî", "tt": "teterî", "tum": "tumbukayî", "tvl": "tuvalûyî", "ty": "tahîtî", "tzm": "temazîxtî", "udm": "udmurtî", "ug": "oygurî", "uk": "ukraynî", "ur": "urdûyî", "uz": "ozbekî", "vi": "viyetnamî", "vo": "volapûkî", "wa": "walonî", "war": "warayî", "wo": "wolofî", "xh": "xosayî", "yi": "yidîşî", "yo": "yorubayî", "yue": "kantonî", "zh-Hans": "zh (Hans)", "zh-Hant": "zh (Hant)", "zu": "zuluyî", "zza": "zazakî"}, "scriptNames": {"Cyrl": "kirîlî", "Latn": "latînî", "Arab": "erebî"}}, + "lij": {"rtl": false, "languageNames": {}, "scriptNames": {}}, + "lt": {"rtl": false, "languageNames": {"aa": "afarų", "ab": "abchazų", "ace": "ačinezų", "ach": "akolių", "ada": "adangmų", "ady": "adygėjų", "ae": "avestų", "aeb": "Tuniso arabų", "af": "afrikanų", "afh": "afrihili", "agq": "aghemų", "ain": "ainų", "ak": "akanų", "akk": "akadianų", "akz": "alabamiečių", "ale": "aleutų", "aln": "albanų kalbos gegų tarmė", "alt": "pietų Altajaus", "am": "amharų", "an": "aragonesų", "ang": "senoji anglų", "anp": "angikų", "ar": "arabų", "ar-001": "šiuolaikinė standartinė arabų", "arc": "aramaikų", "arn": "mapudungunų", "aro": "araonų", "arp": "arapahų", "arq": "Alžyro arabų", "arw": "aravakų", "ary": "Maroko arabų", "arz": "Egipto arabų", "as": "asamų", "asa": "asu", "ase": "Amerikos ženklų kalba", "ast": "asturianų", "av": "avarikų", "avk": "kotava", "awa": "avadhi", "ay": "aimarų", "az": "azerbaidžaniečių", "ba": "baškirų", "bal": "baluči", "ban": "baliečių", "bar": "bavarų", "bas": "basų", "bax": "bamunų", "bbc": "batak toba", "bbj": "ghomalų", "be": "baltarusių", "bej": "bėjų", "bem": "bembų", "bew": "betavi", "bez": "benų", "bfd": "bafutų", "bfq": "badaga", "bg": "bulgarų", "bgn": "vakarų beludžių", "bho": "baučpuri", "bi": "bislama", "bik": "bikolų", "bin": "bini", "bjn": "bandžarų", "bkm": "komų", "bla": "siksikų", "bm": "bambarų", "bn": "bengalų", "bo": "tibetiečių", "bpy": "bišnuprijos", "bqi": "bakhtiari", "br": "bretonų", "bra": "brajų", "brh": "brahujų", "brx": "bodo", "bs": "bosnių", "bss": "akūsų", "bua": "buriatų", "bug": "buginezų", "bum": "bulu", "byn": "blin", "byv": "medumbų", "ca": "katalonų", "cad": "kado", "car": "karibų", "cay": "kaijūgų", "cch": "atsamų", "ccp": "Čakma", "ce": "čečėnų", "ceb": "sebuanų", "cgg": "čigų", "ch": "čamorų", "chb": "čibčų", "chg": "čagatų", "chk": "čukesų", "chm": "marių", "chn": "činuk žargonas", "cho": "čoktau", "chp": "čipvėjų", "chr": "čerokių", "chy": "čajenų", "ckb": "soranių kurdų", "co": "korsikiečių", "cop": "koptų", "cps": "capiznon", "cr": "kry", "crh": "Krymo turkų", "crs": "Seišelių kreolų ir prancūzų", "cs": "čekų", "csb": "kašubų", "cu": "bažnytinė slavų", "cv": "čiuvašų", "cy": "valų", "da": "danų", "dak": "dakotų", "dar": "dargva", "dav": "taitų", "de": "vokiečių", "de-AT": "Austrijos vokiečių", "de-CH": "Šveicarijos aukštutinė vokiečių", "del": "delavero", "den": "slave", "dgr": "dogribų", "din": "dinkų", "dje": "zarmų", "doi": "dogri", "dsb": "žemutinių sorbų", "dtp": "centrinio Dusuno", "dua": "dualų", "dum": "Vidurio Vokietijos", "dv": "divehų", "dyo": "džiola-foni", "dyu": "dyulų", "dz": "botijų", "dzg": "dazagų", "ebu": "embu", "ee": "evių", "efi": "efik", "egl": "italų kalbos Emilijos tarmė", "egy": "senovės egiptiečių", "eka": "ekajuk", "el": "graikų", "elx": "elamitų", "en": "anglų", "en-AU": "Australijos anglų", "en-CA": "Kanados anglų", "en-GB": "Didžiosios Britanijos anglų", "en-US": "Jungtinių Valstijų anglų", "enm": "Vidurio Anglijos", "eo": "esperanto", "es": "ispanų", "es-419": "Lotynų Amerikos ispanų", "es-ES": "Europos ispanų", "es-MX": "Meksikos ispanų", "esu": "centrinės Aliaskos jupikų", "et": "estų", "eu": "baskų", "ewo": "evondo", "ext": "ispanų kalbos Ekstremadūros tarmė", "fa": "persų", "fan": "fangų", "fat": "fanti", "ff": "fulahų", "fi": "suomių", "fil": "filipiniečių", "fit": "suomių kalbos Tornedalio tarmė", "fj": "fidžių", "fo": "farerų", "fr": "prancūzų", "fr-CA": "Kanados prancūzų", "fr-CH": "Šveicarijos prancūzų", "frc": "kadžunų prancūzų", "frm": "Vidurio Prancūzijos", "fro": "senoji prancūzų", "frp": "arpitano", "frr": "šiaurinių fryzų", "frs": "rytų fryzų", "fur": "friulių", "fy": "vakarų fryzų", "ga": "airių", "gaa": "ga", "gag": "gagaūzų", "gan": "kinų kalbos dziangsi tarmė", "gay": "gajo", "gba": "gbaja", "gbz": "zoroastrų dari", "gd": "škotų (gėlų)", "gez": "gyz", "gil": "kiribati", "gl": "galisų", "glk": "gilaki", "gmh": "Vidurio Aukštosios Vokietijos", "gn": "gvaranių", "goh": "senoji Aukštosios Vokietijos", "gom": "Goa konkanių", "gon": "gondi", "gor": "gorontalo", "got": "gotų", "grb": "grebo", "grc": "senovės graikų", "gsw": "Šveicarijos vokiečių", "gu": "gudžaratų", "guc": "vajų", "gur": "frafra", "guz": "gusi", "gv": "meniečių", "gwi": "gvičino", "ha": "hausų", "hai": "haido", "hak": "kinų kalbos hakų tarmė", "haw": "havajiečių", "he": "hebrajų", "hi": "hindi", "hif": "Fidžio hindi", "hil": "hiligainonų", "hit": "hititų", "hmn": "hmong", "ho": "hiri motu", "hr": "kroatų", "hsb": "aukštutinių sorbų", "hsn": "kinų kalbos hunano tarmė", "ht": "Haičio", "hu": "vengrų", "hup": "hupa", "hy": "armėnų", "hz": "hererų", "ia": "tarpinė", "iba": "iban", "ibb": "ibibijų", "id": "indoneziečių", "ie": "interkalba", "ig": "igbų", "ii": "sičuan ji", "ik": "inupiakų", "ilo": "ilokų", "inh": "ingušų", "io": "ido", "is": "islandų", "it": "italų", "iu": "inukitut", "izh": "ingrų", "ja": "japonų", "jam": "Jamaikos kreolų anglų", "jbo": "loiban", "jgo": "ngombų", "jmc": "mačamų", "jpr": "judėjų persų", "jrb": "judėjų arabų", "jut": "danų kalbos jutų tarmė", "jv": "javiečių", "ka": "gruzinų", "kaa": "karakalpakų", "kab": "kebailų", "kac": "kačinų", "kaj": "ju", "kam": "kembų", "kaw": "kavių", "kbd": "kabardinų", "kbl": "kanembų", "kcg": "tyap", "kde": "makondų", "kea": "Žaliojo Kyšulio kreolų", "ken": "kenyang", "kfo": "koro", "kg": "Kongo", "kgp": "kaingang", "kha": "kasi", "kho": "kotanezų", "khq": "kojra čini", "khw": "khovarų", "ki": "kikujų", "kiu": "kirmanjki", "kj": "kuaniama", "kk": "kazachų", "kkj": "kako", "kl": "kalalisut", "kln": "kalenjinų", "km": "khmerų", "kmb": "kimbundu", "kn": "kanadų", "ko": "korėjiečių", "koi": "komių-permių", "kok": "konkanių", "kos": "kosreanų", "kpe": "kpelių", "kr": "kanurių", "krc": "karačiajų balkarijos", "kri": "krio", "krj": "kinaray-a", "krl": "karelų", "kru": "kuruk", "ks": "kašmyrų", "ksb": "šambalų", "ksf": "bafų", "ksh": "kolognų", "ku": "kurdų", "kum": "kumikų", "kut": "kutenai", "kv": "komi", "kw": "kornų", "ky": "kirgizų", "la": "lotynų", "lad": "ladino", "lag": "langi", "lah": "landa", "lam": "lamba", "lb": "liuksemburgiečių", "lez": "lezginų", "lfn": "naujoji frankų kalba", "lg": "ganda", "li": "limburgiečių", "lij": "ligūrų", "liv": "lyvių", "lkt": "lakotų", "lmo": "lombardų", "ln": "ngalų", "lo": "laosiečių", "lol": "mongų", "lou": "Luizianos kreolų", "loz": "lozių", "lrc": "šiaurės luri", "lt": "lietuvių", "ltg": "latgalių", "lu": "luba katanga", "lua": "luba lulua", "lui": "luiseno", "lun": "Lundos", "lus": "mizo", "luy": "luja", "lv": "latvių", "lzh": "klasikinė kinų", "lzz": "laz", "mad": "madurezų", "maf": "mafų", "mag": "magahi", "mai": "maithili", "mak": "Makasaro", "man": "mandingų", "mas": "masajų", "mde": "mabų", "mdf": "mokša", "mdr": "mandarų", "men": "mende", "mer": "merų", "mfe": "morisijų", "mg": "malagasų", "mga": "Vidurio Airijos", "mgh": "makua-maeto", "mgo": "meta", "mh": "Maršalo Salų", "mi": "maorių", "mic": "mikmakų", "min": "minangkabau", "mk": "makedonų", "ml": "malajalių", "mn": "mongolų", "mnc": "manču", "mni": "manipurių", "moh": "mohok", "mos": "mosi", "mr": "maratų", "mrj": "vakarų mari", "ms": "malajiečių", "mt": "maltiečių", "mua": "mundangų", "mus": "krykų", "mwl": "mirandezų", "mwr": "marvari", "mwv": "mentavai", "my": "birmiečių", "mye": "mjenų", "myv": "erzyjų", "mzn": "mazenderanių", "na": "naurų", "nan": "kinų kalbos pietų minų tarmė", "nap": "neapoliečių", "naq": "nama", "nb": "norvegų bukmolas", "nd": "šiaurės ndebelų", "nds": "Žemutinės Vokietijos", "nds-NL": "Žemutinės Saksonijos (Nyderlandai)", "ne": "nepaliečių", "new": "nevari", "ng": "ndongų", "nia": "nias", "niu": "niujiečių", "njo": "ao naga", "nl": "olandų", "nl-BE": "flamandų", "nmg": "kvasių", "nn": "naujoji norvegų", "nnh": "ngiembūnų", "no": "norvegų", "nog": "nogų", "non": "senoji norsų", "nov": "novial", "nqo": "enko", "nr": "pietų ndebele", "nso": "šiaurės Soto", "nus": "nuerų", "nv": "navajų", "nwc": "klasikinė nevari", "ny": "nianjų", "nym": "niamvezi", "nyn": "niankolų", "nyo": "niorų", "nzi": "nzima", "oc": "očitarų", "oj": "ojibva", "om": "oromų", "or": "odijų", "os": "osetinų", "osa": "osage", "ota": "osmanų turkų", "pa": "pendžabų", "pag": "pangasinanų", "pal": "vidurinė persų kalba", "pam": "pampangų", "pap": "papiamento", "pau": "palauliečių", "pcd": "pikardų", "pcm": "Nigerijos pidžinų", "pdc": "Pensilvanijos vokiečių", "pdt": "vokiečių kalbos žemaičių tarmė", "peo": "senoji persų", "pfl": "vokiečių kalbos Pfalco tarmė", "phn": "finikiečių", "pi": "pali", "pl": "lenkų", "pms": "italų kalbos Pjemonto tarmė", "pnt": "Ponto", "pon": "Ponapės", "prg": "prūsų", "pro": "senovės provansalų", "ps": "puštūnų", "pt": "portugalų", "pt-BR": "Brazilijos portugalų", "pt-PT": "Europos portugalų", "qu": "kečujų", "quc": "kičių", "qug": "Čimboraso aukštumų kečujų", "raj": "Radžastano", "rap": "rapanui", "rar": "rarotonganų", "rgn": "italų kalbos Romanijos tarmė", "rif": "rifų", "rm": "retoromanų", "rn": "rundi", "ro": "rumunų", "ro-MD": "moldavų", "rof": "rombo", "rom": "romų", "root": "rūt", "rtm": "rotumanų", "ru": "rusų", "rue": "rusinų", "rug": "Rovianos", "rup": "aromanių", "rw": "kinjaruandų", "rwk": "rua", "sa": "sanskritas", "sad": "sandavių", "sah": "jakutų", "sam": "samarėjų aramių", "saq": "sambūrų", "sas": "sasak", "sat": "santalių", "saz": "sauraštrų", "sba": "ngambajų", "sbp": "sangų", "sc": "sardiniečių", "scn": "siciliečių", "sco": "škotų", "sd": "sindų", "sdc": "sasaresų sardinų", "sdh": "pietų kurdų", "se": "šiaurės samių", "see": "senecų", "seh": "senų", "sei": "seri", "sel": "selkup", "ses": "kojraboro seni", "sg": "sango", "sga": "senoji airių", "sgs": "žemaičių", "sh": "serbų-kroatų", "shi": "tachelhitų", "shn": "šan", "shu": "chadian arabų", "si": "sinhalų", "sid": "sidamų", "sk": "slovakų", "sl": "slovėnų", "sli": "sileziečių žemaičių", "sly": "selajarų", "sm": "Samoa", "sma": "pietų samių", "smj": "Liuleo samių", "smn": "Inario samių", "sms": "Skolto samių", "sn": "šonų", "snk": "soninke", "so": "somaliečių", "sog": "sogdien", "sq": "albanų", "sr": "serbų", "srn": "sranan tongo", "srr": "sererų", "ss": "svatų", "ssy": "saho", "st": "pietų Soto", "stq": "Saterlendo fryzų", "su": "sundų", "suk": "sukuma", "sus": "susu", "sux": "šumerų", "sv": "švedų", "sw": "suahilių", "sw-CD": "Kongo suahilių", "swb": "Komorų", "syc": "klasikinė sirų", "syr": "sirų", "szl": "sileziečių", "ta": "tamilų", "tcy": "tulų", "te": "telugų", "tem": "timne", "teo": "teso", "ter": "Tereno", "tet": "tetum", "tg": "tadžikų", "th": "tajų", "ti": "tigrajų", "tig": "tigre", "tk": "turkmėnų", "tkl": "Tokelau", "tkr": "tsakurų", "tl": "tagalogų", "tlh": "klingonų", "tli": "tlingitų", "tly": "talyšų", "tmh": "tamašek", "tn": "tsvanų", "to": "tonganų", "tog": "niasa tongų", "tpi": "Papua pidžinų", "tr": "turkų", "tru": "turoyo", "trv": "Taroko", "ts": "tsongų", "tsd": "tsakonų", "tsi": "tsimšian", "tt": "totorių", "ttt": "musulmonų tatų", "tum": "tumbukų", "tvl": "Tuvalu", "tw": "tvi", "twq": "tasavakų", "ty": "taitiečių", "tyv": "tuvių", "tzm": "Centrinio Maroko tamazitų", "udm": "udmurtų", "ug": "uigūrų", "uga": "ugaritų", "uk": "ukrainiečių", "umb": "umbundu", "ur": "urdų", "uz": "uzbekų", "ve": "vendų", "vec": "venetų", "vep": "vepsų", "vi": "vietnamiečių", "vls": "vakarų flamandų", "vmf": "pagrindinė frankonų", "vo": "volapiuko", "vot": "Votik", "vro": "veru", "vun": "vunjo", "wa": "valonų", "wae": "valserų", "wal": "valamo", "war": "varai", "was": "Vašo", "wbp": "valrpiri", "wo": "volofų", "wuu": "kinų kalbos vu tarmė", "xal": "kalmukų", "xh": "kosų", "xmf": "megrelų", "xog": "sogų", "yao": "jao", "yap": "japezų", "yav": "jangbenų", "ybb": "jembų", "yi": "jidiš", "yo": "jorubų", "yrl": "njengatu", "yue": "kinų kalbos Kantono tarmė", "za": "chuang", "zap": "zapotekų", "zbl": "BLISS simbolių", "zea": "zelandų", "zen": "zenaga", "zgh": "standartinė Maroko tamazigtų", "zh": "kinų", "zh-Hans": "supaprastintoji kinų", "zh-Hant": "tradicinė kinų", "zu": "zulų", "zun": "Zuni", "zza": "zaza"}, "scriptNames": {"Cyrl": "kirilica", "Latn": "lotynų", "Arab": "arabų", "Guru": "gurmuki", "Tfng": "tifinag", "Vaii": "vai", "Hans": "supaprastinti", "Hant": "tradiciniai"}}, + "lv": {"rtl": false, "languageNames": {"aa": "afāru", "ab": "abhāzu", "ace": "ačinu", "ach": "ačolu", "ada": "adangmu", "ady": "adigu", "ae": "avesta", "af": "afrikandu", "afh": "afrihili", "agq": "aghemu", "ain": "ainu", "ak": "akanu", "akk": "akadiešu", "ale": "aleutu", "alt": "dienvidaltajiešu", "am": "amharu", "an": "aragoniešu", "ang": "senangļu", "anp": "angika", "ar": "arābu", "ar-001": "mūsdienu standarta arābu", "arc": "aramiešu", "arn": "araukāņu", "arp": "arapahu", "arw": "aravaku", "as": "asamiešu", "asa": "asu", "ast": "astūriešu", "av": "avāru", "awa": "avadhu", "ay": "aimaru", "az": "azerbaidžāņu", "az-Arab": "dienvidazerbaidžāņu", "ba": "baškīru", "bal": "beludžu", "ban": "baliešu", "bas": "basu", "bax": "bamumu", "bbj": "gomalu", "be": "baltkrievu", "bej": "bedžu", "bem": "bembu", "bez": "bena", "bfd": "bafutu", "bg": "bulgāru", "bgn": "rietumbeludžu", "bho": "bhodžpūru", "bi": "bišlamā", "bik": "bikolu", "bin": "binu", "bkm": "komu", "bla": "siksiku", "bm": "bambaru", "bn": "bengāļu", "bo": "tibetiešu", "br": "bretoņu", "bra": "bradžiešu", "brx": "bodo", "bs": "bosniešu", "bss": "nkosi", "bua": "burjatu", "bug": "bugu", "bum": "bulu", "byn": "bilinu", "byv": "medumbu", "ca": "katalāņu", "cad": "kadu", "car": "karību", "cay": "kajuga", "cch": "atsamu", "ccp": "čakmu", "ce": "čečenu", "ceb": "sebuāņu", "cgg": "kiga", "ch": "čamorru", "chb": "čibču", "chg": "džagatajs", "chk": "čūku", "chm": "mariešu", "chn": "činuku žargons", "cho": "čoktavu", "chp": "čipevaianu", "chr": "čiroku", "chy": "šejenu", "ckb": "centrālkurdu", "co": "korsikāņu", "cop": "koptu", "cr": "krī", "crh": "Krimas tatāru", "crs": "franciskā kreoliskā valoda (Seišelu salas)", "cs": "čehu", "csb": "kašubu", "cu": "baznīcslāvu", "cv": "čuvašu", "cy": "velsiešu", "da": "dāņu", "dak": "dakotu", "dar": "dargu", "dav": "taitu", "de": "vācu", "de-AT": "vācu (Austrija)", "de-CH": "augšvācu (Šveice)", "del": "delavēru", "den": "sleivu", "dgr": "dogribu", "din": "dinku", "dje": "zarmu", "doi": "dogru", "dsb": "lejassorbu", "dua": "dualu", "dum": "vidusholandiešu", "dv": "maldīviešu", "dyo": "diola-fonjī", "dyu": "diūlu", "dz": "dzongke", "dzg": "dazu", "ebu": "kjembu", "ee": "evu", "efi": "efiku", "egy": "ēģiptiešu", "eka": "ekadžuku", "el": "grieķu", "elx": "elamiešu", "en": "angļu", "en-AU": "angļu (Austrālija)", "en-CA": "angļu (Kanāda)", "en-GB": "angļu (Lielbritānija)", "en-US": "angļu (Amerikas Savienotās Valstis)", "enm": "vidusangļu", "eo": "esperanto", "es": "spāņu", "es-419": "spāņu (Latīņamerika)", "es-ES": "spāņu (Spānija)", "es-MX": "spāņu (Meksika)", "et": "igauņu", "eu": "basku", "ewo": "evondu", "fa": "persiešu", "fan": "fangu", "fat": "fantu", "ff": "fulu", "fi": "somu", "fil": "filipīniešu", "fj": "fidžiešu", "fo": "fēru", "fon": "fonu", "fr": "franču", "fr-CA": "franču (Kanāda)", "fr-CH": "franču (Šveice)", "frc": "kadžūnu franču", "frm": "vidusfranču", "fro": "senfranču", "frr": "ziemeļfrīzu", "frs": "austrumfrīzu", "fur": "friūlu", "fy": "rietumfrīzu", "ga": "īru", "gaa": "ga", "gag": "gagauzu", "gay": "gajo", "gba": "gbaju", "gd": "skotu gēlu", "gez": "gēzu", "gil": "kiribatiešu", "gl": "galisiešu", "gmh": "vidusaugšvācu", "gn": "gvaranu", "goh": "senaugšvācu", "gon": "gondu valodas", "gor": "gorontalu", "got": "gotu", "grb": "grebo", "grc": "sengrieķu", "gsw": "Šveices vācu", "gu": "gudžaratu", "guz": "gusii", "gv": "meniešu", "gwi": "kučinu", "ha": "hausu", "hai": "haidu", "haw": "havajiešu", "he": "ivrits", "hi": "hindi", "hil": "hiligainonu", "hit": "hetu", "hmn": "hmongu", "ho": "hirimotu", "hr": "horvātu", "hsb": "augšsorbu", "ht": "haitiešu", "hu": "ungāru", "hup": "hupu", "hy": "armēņu", "hz": "hereru", "ia": "interlingva", "iba": "ibanu", "ibb": "ibibio", "id": "indonēziešu", "ie": "interlingve", "ig": "igbo", "ii": "Sičuaņas ji", "ik": "inupiaku", "ilo": "iloku", "inh": "ingušu", "io": "ido", "is": "islandiešu", "it": "itāļu", "iu": "inuītu", "ja": "japāņu", "jbo": "ložbans", "jmc": "mačamu", "jpr": "jūdpersiešu", "jrb": "jūdarābu", "jv": "javiešu", "ka": "gruzīnu", "kaa": "karakalpaku", "kab": "kabilu", "kac": "kačinu", "kaj": "kadži", "kam": "kambu", "kaw": "kāvi", "kbd": "kabardiešu", "kbl": "kaņembu", "kcg": "katabu", "kde": "makonde", "kea": "kaboverdiešu", "kfo": "koru", "kg": "kongu", "kha": "khasu", "kho": "hotaniešu", "khq": "koiračiinī", "ki": "kikuju", "kj": "kvaņamu", "kk": "kazahu", "kkj": "kako", "kl": "grenlandiešu", "kln": "kalendžīnu", "km": "khmeru", "kmb": "kimbundu", "kn": "kannadu", "ko": "korejiešu", "koi": "komiešu-permiešu", "kok": "konkanu", "kos": "kosrājiešu", "kpe": "kpellu", "kr": "kanuru", "krc": "karačaju un balkāru", "krl": "karēļu", "kru": "kuruhu", "ks": "kašmiriešu", "ksb": "šambalu", "ksf": "bafiju", "ksh": "Ķelnes vācu", "ku": "kurdu", "kum": "kumiku", "kut": "kutenaju", "kv": "komiešu", "kw": "korniešu", "ky": "kirgīzu", "la": "latīņu", "lad": "ladino", "lag": "langi", "lah": "landu", "lam": "lambu", "lb": "luksemburgiešu", "lez": "lezgīnu", "lg": "gandu", "li": "limburgiešu", "lkt": "lakotu", "ln": "lingala", "lo": "laosiešu", "lol": "mongu", "lou": "Luiziānas kreolu", "loz": "lozu", "lrc": "ziemeļluru", "lt": "lietuviešu", "lu": "lubakatanga", "lua": "lubalulva", "lui": "luisenu", "lun": "lundu", "lus": "lušeju", "luy": "luhju", "lv": "latviešu", "mad": "maduriešu", "maf": "mafu", "mag": "magahiešu", "mai": "maithili", "mak": "makasaru", "man": "mandingu", "mas": "masaju", "mde": "mabu", "mdf": "mokšu", "mdr": "mandaru", "men": "mendu", "mer": "meru", "mfe": "Maurīcijas kreolu", "mg": "malagasu", "mga": "vidusīru", "mgh": "makua", "mh": "māršaliešu", "mi": "maoru", "mic": "mikmaku", "min": "minangkabavu", "mk": "maķedoniešu", "ml": "malajalu", "mn": "mongoļu", "mnc": "mandžūru", "mni": "manipūru", "moh": "mohauku", "mos": "mosu", "mr": "marathu", "ms": "malajiešu", "mt": "maltiešu", "mua": "mundangu", "mus": "krīku", "mwl": "mirandiešu", "mwr": "marvaru", "my": "birmiešu", "mye": "mjenu", "myv": "erzju", "mzn": "mazanderāņu", "na": "nauruiešu", "nap": "neapoliešu", "naq": "nama", "nb": "norvēģu bukmols", "nd": "ziemeļndebelu", "nds": "lejasvācu", "nds-NL": "lejassakšu", "ne": "nepāliešu", "new": "nevaru", "ng": "ndongu", "nia": "njasu", "niu": "niuāņu", "nl": "holandiešu", "nl-BE": "flāmu", "nmg": "kvasio", "nn": "jaunnorvēģu", "nnh": "ngjembūnu", "no": "norvēģu", "nog": "nogaju", "non": "sennorvēģu", "nqo": "nko", "nr": "dienvidndebelu", "nso": "ziemeļsotu", "nus": "nueru", "nv": "navahu", "nwc": "klasiskā nevaru", "ny": "čičeva", "nym": "ņamvezu", "nyn": "ņankolu", "nyo": "ņoru", "nzi": "nzemu", "oc": "oksitāņu", "oj": "odžibvu", "om": "oromu", "or": "oriju", "os": "osetīnu", "osa": "važāžu", "ota": "turku osmaņu", "pa": "pandžabu", "pag": "pangasinanu", "pal": "pehlevi", "pam": "pampanganu", "pap": "papjamento", "pau": "palaviešu", "pcm": "Nigērijas pidžinvaloda", "peo": "senpersu", "phn": "feniķiešu", "pi": "pāli", "pl": "poļu", "pon": "ponapiešu", "prg": "prūšu", "pro": "senprovansiešu", "ps": "puštu", "pt": "portugāļu", "pt-BR": "portugāļu (Brazīlija)", "pt-PT": "portugāļu (Portugāle)", "qu": "kečvu", "quc": "kiče", "raj": "radžastāņu", "rap": "rapanuju", "rar": "rarotongiešu", "rm": "retoromāņu", "rn": "rundu", "ro": "rumāņu", "ro-MD": "moldāvu", "rof": "rombo", "rom": "čigānu", "root": "sakne", "ru": "krievu", "rup": "aromūnu", "rw": "kiņaruanda", "rwk": "ruanda", "sa": "sanskrits", "sad": "sandavu", "sah": "jakutu", "sam": "Samārijas aramiešu", "saq": "samburu", "sas": "sasaku", "sat": "santalu", "sba": "ngambeju", "sbp": "sangu", "sc": "sardīniešu", "scn": "sicīliešu", "sco": "skotu", "sd": "sindhu", "sdh": "dienvidkurdu", "se": "ziemeļsāmu", "see": "seneku", "seh": "senu", "sel": "selkupu", "ses": "koiraboro senni", "sg": "sango", "sga": "senīru", "sh": "serbu–horvātu", "shi": "šilhu", "shn": "šanu", "shu": "Čadas arābu", "si": "singāļu", "sid": "sidamu", "sk": "slovāku", "sl": "slovēņu", "sm": "samoāņu", "sma": "dienvidsāmu", "smj": "Luleo sāmu", "smn": "Inari sāmu", "sms": "skoltsāmu", "sn": "šonu", "snk": "soninku", "so": "somāļu", "sog": "sogdiešu", "sq": "albāņu", "sr": "serbu", "srn": "sranantogo", "srr": "serēru", "ss": "svatu", "ssy": "saho", "st": "dienvidsotu", "su": "zundu", "suk": "sukumu", "sus": "susu", "sux": "šumeru", "sv": "zviedru", "sw": "svahili", "sw-CD": "svahili (Kongo)", "swb": "komoru", "syc": "klasiskā sīriešu", "syr": "sīriešu", "ta": "tamilu", "te": "telugu", "tem": "temnu", "teo": "teso", "ter": "tereno", "tet": "tetumu", "tg": "tadžiku", "th": "taju", "ti": "tigrinja", "tig": "tigru", "tiv": "tivu", "tk": "turkmēņu", "tkl": "tokelaviešu", "tl": "tagalu", "tlh": "klingoņu", "tli": "tlinkitu", "tmh": "tuaregu", "tn": "cvanu", "to": "tongiešu", "tog": "Njasas tongu", "tpi": "tokpisins", "tr": "turku", "trv": "taroko", "ts": "congu", "tsi": "cimšiāņu", "tt": "tatāru", "tum": "tumbuku", "tvl": "tuvaliešu", "tw": "tvī", "twq": "tasavaku", "ty": "taitiešu", "tyv": "tuviešu", "tzm": "Centrālmarokas tamazīts", "udm": "udmurtu", "ug": "uiguru", "uga": "ugaritiešu", "uk": "ukraiņu", "umb": "umbundu", "ur": "urdu", "uz": "uzbeku", "vai": "vaju", "ve": "vendu", "vi": "vjetnamiešu", "vo": "volapiks", "vot": "votu", "vun": "vundžo", "wa": "valoņu", "wae": "Vallisas vācu", "wal": "valamu", "war": "varaju", "was": "vašo", "wbp": "varlpirī", "wo": "volofu", "xal": "kalmiku", "xh": "khosu", "xog": "sogu", "yao": "jao", "yap": "japiešu", "yav": "janbaņu", "ybb": "jembu", "yi": "jidišs", "yo": "jorubu", "yue": "kantoniešu", "za": "džuanu", "zap": "sapoteku", "zbl": "blissimbolika", "zen": "zenagu", "zgh": "standarta tamazigtu (Maroka)", "zh": "ķīniešu", "zh-Hans": "ķīniešu vienkāršotā", "zh-Hant": "ķīniešu tradicionālā", "zu": "zulu", "zun": "zunju", "zza": "zazaki"}, "scriptNames": {"Cyrl": "kirilica", "Latn": "latīņu", "Arab": "arābu", "Guru": "pandžabu", "Hans": "vienkāršotā", "Hant": "tradicionālā"}}, + "mg": {"rtl": false, "languageNames": {"ak": "Akan", "am": "Amharika", "ar": "Arabo", "ar-001": "Arabo (001)", "be": "Bielorosy", "bg": "Biolgara", "bn": "Bengali", "cs": "Tseky", "de": "Alemanina", "de-AT": "Alemanina (Aotrisy)", "de-CH": "Alemanina (Soisa)", "el": "Grika", "en": "Anglisy", "en-AU": "Anglisy (Aostralia)", "en-CA": "Anglisy (Kanada)", "en-GB": "Anglisy (Angletera)", "en-US": "Anglisy (Etazonia)", "es": "Espaniola", "es-419": "Espaniola (419)", "es-ES": "Espaniola (Espaina)", "es-MX": "Espaniola (Meksika)", "fa": "Persa", "fr": "Frantsay", "fr-CA": "Frantsay (Kanada)", "fr-CH": "Frantsay (Soisa)", "ha": "haoussa", "hi": "hindi", "hu": "hongroà", "id": "Indonezianina", "ig": "igbo", "it": "Italianina", "ja": "Japoney", "jv": "Javaney", "km": "khmer", "ko": "Koreanina", "mg": "Malagasy", "ms": "Malay", "my": "Birmana", "nds-NL": "nds (Holanda)", "ne": "Nepale", "nl": "Holandey", "nl-BE": "Holandey (Belzika)", "pa": "Penjabi", "pl": "Poloney", "pt": "Portiogey", "pt-BR": "Portiogey (Brezila)", "pt-PT": "Portiogey (Pôrtiogala)", "ro": "Romanianina", "ro-MD": "Romanianina (Môldavia)", "ru": "Rosianina", "rw": "Roande", "so": "Somalianina", "sv": "Soisa", "sw-CD": "sw (Repoblikan’i Kongo)", "ta": "Tamoila", "th": "Taioaney", "tr": "Tiorka", "uk": "Okrainianina", "ur": "Ordò", "vi": "Vietnamianina", "yo": "Yôrobà", "zh": "Sinoa, Mandarin", "zh-Hans": "Sinoa, Mandarin (Hans)", "zh-Hant": "Sinoa, Mandarin (Hant)", "zu": "Zolò"}, "scriptNames": {}}, + "mk": {"rtl": false, "languageNames": {"aa": "афарски", "ab": "апхаски", "ace": "ачешки", "ach": "аколи", "ada": "адангме", "ady": "адигејски", "ae": "авестански", "aeb": "туниски арапски", "af": "африканс", "afh": "африхили", "agq": "агемски", "ain": "ајну", "ak": "акански", "akk": "акадски", "akz": "алабамски", "ale": "алеутски", "aln": "гешки албански", "alt": "јужноалтајски", "am": "амхарски", "an": "арагонски", "ang": "староанглиски", "anp": "ангика", "ar": "арапски", "ar-001": "литературен арапски", "arc": "арамејски", "arn": "мапучки", "aro": "араона", "arp": "арапахо", "arq": "алжирски арапски", "arw": "аравачки", "ary": "марокански арапски", "arz": "египетски арапски", "as": "асамски", "asa": "асу", "ase": "американски знаковен јазик", "ast": "астурски", "av": "аварски", "avk": "котава", "awa": "авади", "ay": "ајмарски", "az": "азербејџански", "ba": "башкирски", "bal": "белуџиски", "ban": "балиски", "bar": "баварски", "bas": "баса", "bax": "бамунски", "bbc": "тоба", "bbj": "гомала", "be": "белоруски", "bej": "беџа", "bem": "бемба", "bew": "бетавски", "bez": "бена", "bfd": "бафут", "bfq": "бадага", "bg": "бугарски", "bgn": "западен балочи", "bho": "боџпури", "bi": "бислама", "bik": "биколски", "bin": "бини", "bjn": "банџарски", "bkm": "ком", "bla": "сиксика", "bm": "бамбара", "bn": "бенгалски", "bo": "тибетски", "bpy": "бишнуприја", "bqi": "бахтијарски", "br": "бретонски", "bra": "брај", "brh": "брахујски", "brx": "бодо", "bs": "босански", "bss": "акосе", "bua": "бурјатски", "bug": "бугиски", "bum": "булу", "byn": "биленски", "byv": "медумба", "ca": "каталонски", "cad": "кадо", "car": "карипски", "cay": "кајуга", "cch": "ацам", "ccp": "чакмански", "ce": "чеченски", "ceb": "себуански", "cgg": "чига", "ch": "чаморски", "chb": "чибча", "chg": "чагатајски", "chk": "чучки", "chm": "мариски", "chn": "чинучки жаргон", "cho": "чоктавски", "chp": "чипевјански", "chr": "черокиски", "chy": "чејенски", "ckb": "централнокурдски", "co": "корзикански", "cop": "коптски", "cps": "капизнон", "cr": "кри", "crh": "кримскотурски", "crs": "француски (Сеселва креоли)", "cs": "чешки", "csb": "кашупски", "cu": "црковнословенски", "cv": "чувашки", "cy": "велшки", "da": "дански", "dak": "дакота", "dar": "даргва", "dav": "таита", "de": "германски", "de-AT": "австриски германски", "de-CH": "швајцарски високо-германски", "del": "делавер", "den": "слејви", "dgr": "догрипски", "din": "динка", "dje": "зарма", "doi": "догри", "dsb": "долнолужички", "dtp": "дусунски", "dua": "дуала", "dum": "среднохоландски", "dv": "дивехи", "dyo": "јола-фоњи", "dyu": "џула", "dz": "ѕонгка", "dzg": "дазага", "ebu": "ембу", "ee": "еве", "efi": "ефик", "egl": "емилијански", "egy": "староегипетски", "eka": "екаџук", "el": "грчки", "elx": "еламски", "en": "англиски", "en-AU": "австралиски англиски", "en-CA": "канадски англиски", "en-GB": "британски англиски", "en-US": "американски англиски", "enm": "средноанглиски", "eo": "есперанто", "es": "шпански", "es-419": "латиноамерикански шпански", "es-ES": "шпански (во Европа)", "es-MX": "мексикански шпански", "esu": "централнојупички", "et": "естонски", "eu": "баскиски", "ewo": "евондо", "ext": "екстремадурски", "fa": "персиски", "fan": "фанг", "fat": "фанти", "ff": "фула", "fi": "фински", "fil": "филипински", "fit": "турнедаленски фински", "fj": "фиџиски", "fo": "фарски", "fon": "фон", "fr": "француски", "fr-CA": "канадски француски", "fr-CH": "швајцарски француски", "frc": "каџунски француски", "frm": "среднофранцуски", "fro": "старофранцуски", "frp": "франкопровансалски", "frr": "севернофризиски", "frs": "источнофризиски", "fur": "фурлански", "fy": "западнофризиски", "ga": "ирски", "gaa": "га", "gag": "гагауски", "gan": "ган", "gay": "гајо", "gba": "гбаја", "gbz": "зороастриски дари", "gd": "шкотски гелски", "gez": "гиз", "gil": "гилбертански", "gl": "галициски", "glk": "гилански", "gmh": "средногорногермански", "gn": "гварански", "goh": "старогорногермански", "gom": "гоански конкани", "gon": "гонди", "gor": "горонтало", "got": "готски", "grb": "гребо", "grc": "старогрчки", "gsw": "швајцарски германски", "gu": "гуџарати", "guc": "гвахиро", "gur": "фарефаре", "guz": "гуси", "gv": "манкс", "gwi": "гвичински", "ha": "хауса", "hai": "хајда", "hak": "хака", "haw": "хавајски", "he": "хебрејски", "hi": "хинди", "hif": "фиџиски хинди", "hil": "хилигајнонски", "hit": "хетитски", "hmn": "хмонг", "ho": "хири моту", "hr": "хрватски", "hsb": "горнолужички", "hsn": "сјанг", "ht": "хаитски", "hu": "унгарски", "hup": "хупа", "hy": "ерменски", "hz": "хереро", "ia": "интерлингва", "iba": "ибан", "ibb": "ибибио", "id": "индонезиски", "ie": "окцидентал", "ig": "игбо", "ii": "сичуан ји", "ik": "инупијачки", "ilo": "илокански", "inh": "ингушки", "io": "идо", "is": "исландски", "it": "италијански", "iu": "инуктитут", "izh": "ижорски", "ja": "јапонски", "jam": "јамајски креолски", "jbo": "ложбан", "jgo": "нгомба", "jmc": "мачаме", "jpr": "еврејскоперсиски", "jrb": "еврејскоарапски", "jut": "јитски", "jv": "јавански", "ka": "грузиски", "kaa": "каракалпачки", "kab": "кабилски", "kac": "качински", "kaj": "каџе", "kam": "камба", "kaw": "кави", "kbd": "кабардински", "kbl": "канембу", "kcg": "тјап", "kde": "маконде", "kea": "кабувердиану", "ken": "кењанг", "kfo": "коро", "kg": "конго", "kgp": "каинганшки", "kha": "каси", "kho": "хотански", "khq": "којра чиини", "khw": "коварски", "ki": "кикују", "kiu": "зазаки", "kj": "квањама", "kk": "казашки", "kkj": "како", "kl": "калалисут", "kln": "каленџин", "km": "кмерски", "kmb": "кимбунду", "kn": "каннада", "ko": "корејски", "koi": "коми-пермјачки", "kok": "конкани", "kos": "козрејски", "kpe": "кпеле", "kr": "канури", "krc": "карачаевско-балкарски", "kri": "крио", "krj": "кинарајски", "krl": "карелски", "kru": "курух", "ks": "кашмирски", "ksb": "шамбала", "ksf": "бафија", "ksh": "колоњски", "ku": "курдски", "kum": "кумички", "kut": "кутенајски", "kv": "коми", "kw": "корнски", "ky": "киргиски", "la": "латински", "lad": "ладино", "lag": "ланги", "lah": "ланда", "lam": "ламба", "lb": "луксембуршки", "lez": "лезгински", "lfn": "лингва франка нова", "lg": "ганда", "li": "лимбуршки", "lij": "лигурски", "liv": "ливонски", "lkt": "лакотски", "lmo": "ломбардиски", "ln": "лингала", "lo": "лаошки", "lol": "монго", "lou": "луизијански креолски", "loz": "лози", "lrc": "севернолуриски", "lt": "литвански", "ltg": "латгалски", "lu": "луба-катанга", "lua": "луба-лулуа", "lui": "лујсењски", "lun": "лунда", "luo": "луо", "lus": "мизо", "luy": "луја", "lv": "латвиски", "lzh": "книжевен кинески", "lzz": "ласки", "mad": "мадурски", "maf": "мафа", "mag": "магахи", "mai": "маитили", "mak": "макасарски", "man": "мандинго", "mas": "масајски", "mde": "маба", "mdf": "мокшански", "mdr": "мандарски", "men": "менде", "mer": "меру", "mfe": "морисјен", "mg": "малгашки", "mga": "средноирски", "mgh": "макува-мито", "mgo": "мета", "mh": "маршалски", "mi": "маорски", "mic": "микмак", "min": "минангкабау", "mk": "македонски", "ml": "малајамски", "mn": "монголски", "mnc": "манџурски", "mni": "манипурски", "moh": "мохавски", "mos": "моси", "mr": "марати", "mrj": "западномариски", "ms": "малајски", "mt": "малтешки", "mua": "мунданг", "mus": "крик", "mwl": "мирандски", "mwr": "марвари", "my": "бурмански", "mye": "мјене", "myv": "ерзјански", "mzn": "мазендерански", "na": "науруански", "nan": "јужномински", "nap": "неаполски", "naq": "нама", "nb": "норвешки букмол", "nd": "северен ндебеле", "nds": "долногермански", "nds-NL": "долносаксонски", "ne": "непалски", "new": "неварски", "ng": "ндонга", "nia": "нијас", "niu": "ниујески", "njo": "ао нага", "nl": "холандски", "nl-BE": "фламански", "nmg": "квазио", "nn": "норвешки нинорск", "nnh": "нгиембун", "no": "норвешки", "nog": "ногајски", "non": "старонордиски", "nov": "новијал", "nqo": "нко", "nr": "јужен ндебеле", "nso": "северносотски", "nus": "нуер", "nv": "навахо", "nwc": "класичен неварски", "ny": "њанџа", "nym": "њамвези", "nyn": "њанколе", "nyo": "њоро", "nzi": "нзима", "oc": "окситански", "oj": "оџибва", "om": "оромо", "or": "одија", "os": "осетски", "osa": "осашки", "ota": "отомански турски", "pa": "пенџапски", "pag": "пангасинански", "pal": "средноперсиски", "pam": "пампанга", "pap": "папијаменто", "pau": "палауански", "pcd": "пикардски", "pcm": "нигериски пиџин", "pdc": "пенсилваниски германски", "pdt": "менонитски долногермански", "peo": "староперсиски", "pfl": "фалечкогермански", "phn": "феникиски", "pi": "пали", "pl": "полски", "pms": "пиемонтски", "pnt": "понтски", "pon": "понпејски", "prg": "пруски", "pro": "старопровансалски", "ps": "паштунски", "pt": "португалски", "pt-BR": "бразилски португалски", "pt-PT": "португалски (во Европа)", "qu": "кечуански", "quc": "киче", "qug": "кичвански", "raj": "раџастански", "rap": "рапанујски", "rar": "раротонгански", "rgn": "ромањолски", "rif": "рифски", "rm": "реторомански", "rn": "рунди", "ro": "романски", "ro-MD": "молдавски", "rof": "ромбо", "rom": "ромски", "root": "корен", "rtm": "ротумански", "ru": "руски", "rue": "русински", "rug": "ровијански", "rup": "влашки", "rw": "руандски", "rwk": "руа", "sa": "санскрит", "sad": "сандаве", "sah": "јакутски", "sam": "самарјански арамејски", "saq": "самбуру", "sas": "сасачки", "sat": "сантали", "saz": "саураштра", "sba": "нгембеј", "sbp": "сангу", "sc": "сардински", "scn": "сицилијански", "sco": "шкотски германски", "sd": "синди", "sdc": "сасарски сардински", "sdh": "јужнокурдски", "se": "северен сами", "see": "сенека", "seh": "сена", "sei": "сери", "sel": "селкупски", "ses": "којраборо сени", "sg": "санго", "sga": "староирски", "sgs": "самогитски", "sh": "српскохрватски", "shi": "тачелхит", "shn": "шан", "shu": "чадски арапски", "si": "синхалски", "sid": "сидамо", "sk": "словачки", "sl": "словенечки", "sli": "долношлезиски", "sly": "селајарски", "sm": "самоански", "sma": "јужен сами", "smj": "луле сами", "smn": "инари сами", "sms": "сколт сами", "sn": "шона", "snk": "сонинке", "so": "сомалиски", "sog": "зогдијански", "sq": "албански", "sr": "српски", "srn": "срански тонго", "srr": "серер", "ss": "свати", "ssy": "сахо", "st": "сесото", "stq": "затерландски фризиски", "su": "сундски", "suk": "сукума", "sus": "сусу", "sux": "сумерски", "sv": "шведски", "sw": "свахили", "sw-CD": "конгоански свахили", "swb": "коморијански", "syc": "класичен сириски", "syr": "сириски", "szl": "шлезиски", "ta": "тамилски", "tcy": "тулу", "te": "телугу", "tem": "тимне", "teo": "тесо", "ter": "терено", "tet": "тетум", "tg": "таџикистански", "th": "тајландски", "ti": "тигриња", "tig": "тигре", "tiv": "тив", "tk": "туркменски", "tkl": "токелауански", "tkr": "цахурски", "tl": "тагалог", "tlh": "клингонски", "tli": "тлингит", "tly": "талишки", "tmh": "тамашек", "tn": "цвана", "to": "тонгајски", "tog": "њаса тонга", "tpi": "ток писин", "tr": "турски", "tru": "туројо", "trv": "тароко", "ts": "цонга", "tsd": "цаконски", "tsi": "цимшијански", "tt": "татарски", "ttt": "татски", "tum": "тумбука", "tvl": "тувалуански", "tw": "тви", "twq": "тазавак", "ty": "тахитски", "tyv": "тувански", "tzm": "централноатлански тамазитски", "udm": "удмуртски", "ug": "ујгурски", "uga": "угаритски", "uk": "украински", "umb": "умбунду", "ur": "урду", "uz": "узбечки", "vai": "вај", "ve": "венда", "vec": "венетски", "vep": "вепшки", "vi": "виетнамски", "vls": "западнофламански", "vmf": "мајнскофранконски", "vo": "волапик", "vot": "вотски", "vro": "виру", "vun": "вунџо", "wa": "валонски", "wae": "валсер", "wal": "воламо", "war": "варајски", "was": "вашо", "wbp": "варлпири", "wo": "волофски", "wuu": "ву", "xal": "калмички", "xh": "коса", "xmf": "мегрелски", "xog": "сога", "yao": "јао", "yap": "јапски", "yav": "јенгбен", "ybb": "јемба", "yi": "јидиш", "yo": "јорупски", "yrl": "њенгату", "yue": "кантонски", "za": "џуаншки", "zap": "запотечки", "zbl": "блиссимболи", "zea": "зеландски", "zen": "зенага", "zgh": "стандарден марокански тамазитски", "zh": "кинески", "zh-Hans": "поедноставен кинески", "zh-Hant": "традиционален кинески", "zu": "зулу", "zun": "зуни", "zza": "заза"}, "scriptNames": {"Cyrl": "кирилско писмо", "Latn": "латинично писмо", "Arab": "арапско писмо", "Guru": "гурмуки", "Tfng": "тифинаг", "Vaii": "вај", "Hans": "поедноставено", "Hant": "традиционално"}}, + "ml": {"rtl": false, "languageNames": {"aa": "അഫാർ", "ab": "അബ്‌ഖാസിയൻ", "ace": "അചിനീസ്", "ach": "അകോലി", "ada": "അഡാങ്‌മി", "ady": "അഡൈഗേ", "ae": "അവസ്റ്റാൻ", "af": "ആഫ്രിക്കാൻസ്", "afh": "ആഫ്രിഹിലി", "agq": "ആഘേം", "ain": "ഐനു", "ak": "അകാൻ‌", "akk": "അക്കാഡിയൻ", "ale": "അലൂട്ട്", "alt": "തെക്കൻ അൾത്തായി", "am": "അംഹാരിക്", "an": "അരഗോണീസ്", "ang": "പഴയ ഇംഗ്ലീഷ്", "anp": "ആൻഗിക", "ar": "അറബിക്", "ar-001": "ആധുനിക സ്റ്റാൻഡേർഡ് അറബിക്", "arc": "അരമായ", "arn": "മാപുചി", "arp": "അറാപഹോ", "arw": "അറാവക്", "as": "ആസ്സാമീസ്", "asa": "ആസു", "ast": "ഓസ്‌ട്രിയൻ", "av": "അവാരിക്", "awa": "അവാധി", "ay": "അയ്മാറ", "az": "അസർബൈജാനി", "ba": "ബഷ്ഖിർ", "bal": "ബലൂചി", "ban": "ബാലിനീസ്", "bas": "ബസ", "bax": "ബാമുൻ", "bbj": "ഘോമാല", "be": "ബെലാറുഷ്യൻ", "bej": "ബേജ", "bem": "ബേംബ", "bez": "ബെനാ", "bfd": "ബാഫട്ട്", "bg": "ബൾഗേറിയൻ", "bgn": "പശ്ചിമ ബലൂചി", "bho": "ഭോജ്‌പുരി", "bi": "ബിസ്‌ലാമ", "bik": "ബികോൽ", "bin": "ബിനി", "bkm": "കോം", "bla": "സിക്സിക", "bm": "ബംബാറ", "bn": "ബംഗാളി", "bo": "ടിബറ്റൻ", "br": "ബ്രെട്ടൺ", "bra": "ബ്രജ്", "brx": "ബോഡോ", "bs": "ബോസ്നിയൻ", "bss": "അക്കൂസ്", "bua": "ബുറിയത്ത്", "bug": "ബുഗിനീസ്", "bum": "ബുളു", "byn": "ബ്ലിൻ", "byv": "മെഡുംബ", "ca": "കറ്റാലാൻ", "cad": "കാഡോ", "car": "കാരിബ്", "cay": "കയൂഗ", "cch": "അറ്റ്സാം", "ce": "ചെചൻ", "ceb": "സെബുവാനോ", "cgg": "ചിഗ", "ch": "ചമോറോ", "chb": "ചിബ്ച", "chg": "ഷാഗതായ്", "chk": "ചൂകീസ്", "chm": "മാരി", "chn": "ചിനൂഗ് ജാർഗൺ", "cho": "ചോക്റ്റാവ്", "chp": "ചിപേവ്യൻ", "chr": "ഷെരോക്കി", "chy": "ഷായാൻ", "ckb": "സെൻട്രൽ കുർദിഷ്", "co": "കോർസിക്കൻ", "cop": "കോപ്റ്റിക്", "cr": "ക്രീ", "crh": "ക്രിമിയൻ ടർക്കിഷ്", "crs": "സെഷൽവ ക്രിയോൾ ഫ്രഞ്ച്", "cs": "ചെക്ക്", "csb": "കാഷുബിയാൻ", "cu": "ചർച്ച് സ്ലാവിക്", "cv": "ചുവാഷ്", "cy": "വെൽഷ്", "da": "ഡാനിഷ്", "dak": "ഡകോട്ട", "dar": "ഡർഗ്വാ", "dav": "തൈത", "de": "ജർമ്മൻ", "de-AT": "ഓസ്‌ട്രിയൻ ജർമൻ", "de-CH": "സ്വിസ് ഹൈ ജർമൻ", "del": "ദെലവേർ", "den": "സ്ലേവ്", "dgr": "ഡോഗ്രിബ്", "din": "ദിൻക", "dje": "സാർമ്മ", "doi": "ഡോഗ്രി", "dsb": "ലോവർ സോർബിയൻ", "dua": "ദ്വാല", "dum": "മദ്ധ്യ ഡച്ച്", "dv": "ദിവെഹി", "dyo": "യോല-ഫോന്യി", "dyu": "ദ്വൈല", "dz": "സോങ്ക", "dzg": "ഡാസാഗ", "ebu": "എംബു", "ee": "യൂവ്", "efi": "എഫിക്", "egy": "പ്രാചീന ഈജിപ്ഷ്യൻ", "eka": "എകാജുക്", "el": "ഗ്രീക്ക്", "elx": "എലാമൈറ്റ്", "en": "ഇംഗ്ലീഷ്", "en-AU": "ഓസ്‌ട്രേലിയൻ ഇംഗ്ലീഷ്", "en-CA": "കനേഡിയൻ ഇംഗ്ലീഷ്", "en-GB": "ബ്രിട്ടീഷ് ഇംഗ്ലീഷ്", "en-US": "അമേരിക്കൻ ഇംഗ്ലീഷ്", "enm": "മദ്ധ്യ ഇംഗ്ലീഷ്", "eo": "എസ്‌പരാന്റോ", "es": "സ്‌പാനിഷ്", "es-419": "ലാറ്റിൻ അമേരിക്കൻ സ്‌പാനിഷ്", "es-ES": "യൂറോപ്യൻ സ്‌പാനിഷ്", "es-MX": "മെക്സിക്കൻ സ്പാനിഷ്", "et": "എസ്റ്റോണിയൻ", "eu": "ബാസ്‌ക്", "ewo": "എവോൻഡോ", "fa": "പേർഷ്യൻ", "fan": "ഫങ്", "fat": "ഫാന്റി", "ff": "ഫുല", "fi": "ഫിന്നിഷ്", "fil": "ഫിലിപ്പിനോ", "fj": "ഫിജിയൻ", "fo": "ഫാറോസ്", "fon": "ഫോൻ", "fr": "ഫ്രഞ്ച്", "fr-CA": "കനേഡിയൻ ഫ്രഞ്ച്", "fr-CH": "സ്വിസ് ഫ്രഞ്ച്", "frc": "കേജൺ ഫ്രഞ്ച്", "frm": "മദ്ധ്യ ഫ്രഞ്ച്", "fro": "പഴയ ഫ്രഞ്ച്", "frr": "നോർത്തേൻ ഫ്രിഷ്യൻ", "frs": "ഈസ്റ്റേൺ ഫ്രിഷ്യൻ", "fur": "ഫ്രിയുലിയാൻ", "fy": "പശ്ചിമ ഫ്രിഷിയൻ", "ga": "ഐറിഷ്", "gaa": "ഗാ", "gag": "ഗാഗൂസ്", "gan": "ഗാൻ ചൈനീസ്", "gay": "ഗയൊ", "gba": "ഗബ്യ", "gd": "സ്കോട്ടിഷ് ഗൈലിക്", "gez": "ഗീസ്", "gil": "ഗിൽബർട്ടീസ്", "gl": "ഗലീഷ്യൻ", "gmh": "മദ്ധ്യ ഉച്ച ജർമൻ", "gn": "ഗ്വരനീ", "goh": "ഓൾഡ് ഹൈ ജർമൻ", "gon": "ഗോണ്ഡി", "gor": "ഗൊറോന്റാലോ", "got": "ഗോഥിക്ക്", "grb": "ഗ്രബൊ", "grc": "പുരാതന ഗ്രീക്ക്", "gsw": "സ്വിസ് ജർമ്മൻ", "gu": "ഗുജറാത്തി", "guz": "ഗുസീ", "gv": "മാൻസ്", "gwi": "ഗ്വിച്ചിൻ", "ha": "ഹൗസ", "hai": "ഹൈഡ", "hak": "ഹാക്ക ചൈനീസ്", "haw": "ഹവായിയൻ", "he": "ഹീബ്രു", "hi": "ഹിന്ദി", "hil": "ഹിലിഗയ്നോൺ", "hit": "ഹിറ്റൈറ്റ്", "hmn": "മോങ്", "ho": "ഹിരി മോതു", "hr": "ക്രൊയേഷ്യൻ", "hsb": "അപ്പർ സോർബിയൻ", "hsn": "ഷ്യാങ് ചൈനീസ്", "ht": "ഹെയ്‌തിയൻ ക്രിയോൾ", "hu": "ഹംഗേറിയൻ", "hup": "ഹൂപ", "hy": "അർമേനിയൻ", "hz": "ഹെരേരൊ", "ia": "ഇന്റർലിംഗ്വ", "iba": "ഇബാൻ", "ibb": "ഇബീബിയോ", "id": "ഇന്തോനേഷ്യൻ", "ie": "ഇന്റർലിംഗ്വേ", "ig": "ഇഗ്ബോ", "ii": "ഷുവാൻയി", "ik": "ഇനുപിയാക്", "ilo": "ഇലോകോ", "inh": "ഇംഗ്വിഷ്", "io": "ഇഡോ", "is": "ഐസ്‌ലാൻഡിക്", "it": "ഇറ്റാലിയൻ", "iu": "ഇനുക്റ്റിറ്റട്ട്", "ja": "ജാപ്പനീസ്", "jbo": "ലോജ്ബാൻ", "jgo": "ഗോമ്പ", "jmc": "മചേം", "jpr": "ജൂഡിയോ-പേർഷ്യൻ", "jrb": "ജൂഡിയോ-അറബിക്", "jv": "ജാവാനീസ്", "ka": "ജോർജിയൻ", "kaa": "കര-കാൽപ്പക്", "kab": "കബൈൽ", "kac": "കാചിൻ", "kaj": "ജ്ജു", "kam": "കംബ", "kaw": "കാവി", "kbd": "കബർഡിയാൻ", "kbl": "കനെംബു", "kcg": "ട്യാപ്", "kde": "മക്കോണ്ടെ", "kea": "കബുവെർദിയാനു", "kfo": "കോറോ", "kg": "കോംഗോ", "kha": "ഘാസി", "kho": "ഘോറ്റാനേസേ", "khq": "കൊയ്റ ചീനി", "ki": "കികൂയു", "kj": "ക്വാന്യമ", "kk": "കസാഖ്", "kkj": "കാകോ", "kl": "കലാല്ലിസട്ട്", "kln": "കലെഞ്ഞിൻ", "km": "ഖമെർ", "kmb": "കിംബുണ്ടു", "kn": "കന്നഡ", "ko": "കൊറിയൻ", "koi": "കോമി-പെർമ്യാക്ക്", "kok": "കൊങ്കണി", "kos": "കൊസറേയൻ", "kpe": "കപെല്ലേ", "kr": "കനൂറി", "krc": "കരചൈ-ബാൽകർ", "krl": "കരീലിയൻ", "kru": "കുരുഖ്", "ks": "കാശ്‌മീരി", "ksb": "ഷംഭാള", "ksf": "ബാഫിയ", "ksh": "കൊളോണിയൻ", "ku": "കുർദ്ദിഷ്", "kum": "കുമൈക്", "kut": "കുതേനൈ", "kv": "കോമി", "kw": "കോർണിഷ്", "ky": "കിർഗിസ്", "la": "ലാറ്റിൻ", "lad": "ലാഡിനോ", "lag": "ലാംഗി", "lah": "ലഹ്‌ൻഡ", "lam": "ലംബ", "lb": "ലക്‌സംബർഗിഷ്", "lez": "ലഹ്ഗിയാൻ", "lg": "ഗാണ്ട", "li": "ലിംബർഗിഷ്", "lkt": "ലഗോത്ത", "ln": "ലിംഗാല", "lo": "ലാവോ", "lol": "മോങ്കോ", "lou": "ലൂസിയാന ക്രിയോൾ", "loz": "ലൊസി", "lrc": "വടക്കൻ ലൂറി", "lt": "ലിത്വാനിയൻ", "lu": "ലുബ-കറ്റംഗ", "lua": "ലൂബ-ലുലുവ", "lui": "ലൂയിസെനോ", "lun": "ലുൻഡ", "luo": "ലുവോ", "lus": "മിസോ", "luy": "ലുയിയ", "lv": "ലാറ്റ്വിയൻ", "mad": "മദുരേസേ", "maf": "മാഫ", "mag": "മഗാഹി", "mai": "മൈഥിലി", "mak": "മകാസർ", "man": "മണ്ഡിൻഗോ", "mas": "മസായ്", "mde": "മാബ", "mdf": "മോക്ഷ", "mdr": "മണ്ഡാർ", "men": "മെൻഡെ", "mer": "മേരു", "mfe": "മൊറിസിൻ", "mg": "മലഗാസി", "mga": "മദ്ധ്യ ഐറിഷ്", "mgh": "മാഖുവാ-മീത്തോ", "mgo": "മേത്താ", "mh": "മാർഷല്ലീസ്", "mi": "മവോറി", "mic": "മിക്മാക്", "min": "മിനാങ്കബൗ", "mk": "മാസിഡോണിയൻ", "ml": "മലയാളം", "mn": "മംഗോളിയൻ", "mnc": "മാൻ‌ചു", "mni": "മണിപ്പൂരി", "moh": "മോഹാക്", "mos": "മൊസ്സി", "mr": "മറാത്തി", "ms": "മലെയ്", "mt": "മാൾട്ടീസ്", "mua": "മുന്ദാംഗ്", "mus": "ക്രീക്ക്", "mwl": "മിരാൻറസേ", "mwr": "മർവാരി", "my": "ബർമീസ്", "mye": "മയീൻ", "myv": "ഏഴ്സ്യ", "mzn": "മസന്ററാനി", "na": "നൗറു", "nan": "മിൻ നാൻ ചൈനീസ്", "nap": "നെപ്പോളിറ്റാൻ", "naq": "നാമ", "nb": "നോർവീജിയൻ ബുക്‌മൽ", "nd": "നോർത്ത് ഡെബിൾ", "nds": "ലോ ജർമൻ", "nds-NL": "ലോ സാക്സൺ", "ne": "നേപ്പാളി", "new": "നേവാരി", "ng": "ഡോങ്ക", "nia": "നിയാസ്", "niu": "ന്യുവാൻ", "nl": "ഡച്ച്", "nl-BE": "ഫ്ലമിഷ്", "nmg": "ക്വാസിയോ", "nn": "നോർവീജിയൻ നൈനോർക്‌സ്", "nnh": "ഗീംബൂൺ", "no": "നോർവീജിയൻ", "nog": "നോഗൈ", "non": "പഴയ നോഴ്‌സ്", "nqo": "ഇൻകോ", "nr": "ദക്ഷിണ നെഡിബിൾ", "nso": "നോർത്തേൻ സോതോ", "nus": "നുവേർ", "nv": "നവാജോ", "nwc": "ക്ലാസിക്കൽ നേവാരി", "ny": "ന്യൻജ", "nym": "ന്യാംവേസി", "nyn": "ന്യാൻകോൾ", "nyo": "ന്യോറോ", "nzi": "സിമ", "oc": "ഓക്‌സിറ്റൻ", "oj": "ഓജിബ്വാ", "om": "ഒറോമോ", "or": "ഒഡിയ", "os": "ഒസ്സെറ്റിക്", "osa": "ഒസേജ്", "ota": "ഓട്ടോമൻ തുർക്കിഷ്", "pa": "പഞ്ചാബി", "pag": "പങ്കാസിനൻ", "pal": "പാഹ്ലവി", "pam": "പാംപൻഗ", "pap": "പാപിയാമെന്റൊ", "pau": "പലാവുൻ", "pcm": "നൈജീരിയൻ പിഡ്‌ഗിൻ", "peo": "പഴയ പേർഷ്യൻ", "phn": "ഫീനിഷ്യൻ", "pi": "പാലി", "pl": "പോളിഷ്", "pon": "പൊൻപിയൻ", "prg": "പ്രഷ്യൻ", "pro": "പഴയ പ്രൊവൻഷ്ൽ", "ps": "പഷ്‌തോ", "pt": "പോർച്ചുഗീസ്", "pt-BR": "ബ്രസീലിയൻ പോർച്ചുഗീസ്", "pt-PT": "യൂറോപ്യൻ പോർച്ചുഗീസ്", "qu": "ക്വെച്ചുവ", "quc": "ക്വിച്ചെ", "raj": "രാജസ്ഥാനി", "rap": "രാപനൂയി", "rar": "രാരോടോങ്കൻ", "rm": "റൊമാഞ്ച്", "rn": "റുണ്ടി", "ro": "റൊമാനിയൻ", "ro-MD": "മോൾഡാവിയൻ", "rof": "റോംബോ", "rom": "റൊമാനി", "root": "മൂലഭാഷ", "ru": "റഷ്യൻ", "rup": "ആരോമാനിയൻ", "rw": "കിന്യാർവാണ്ട", "rwk": "റുവാ", "sa": "സംസ്‌കൃതം", "sad": "സാൻഡവേ", "sah": "സാഖ", "sam": "സമരിയാക്കാരുടെ അരമായ", "saq": "സംബുരു", "sas": "സസാക്", "sat": "സന്താലി", "sba": "ഗംബായ്", "sbp": "സംഗു", "sc": "സർഡിനിയാൻ", "scn": "സിസിലിയൻ", "sco": "സ്കോട്സ്", "sd": "സിന്ധി", "sdh": "തെക്കൻ കുർദ്ദിഷ്", "se": "വടക്കൻ സമി", "see": "സെനേക", "seh": "സേന", "sel": "സെൽകപ്", "ses": "കൊയ്റാബൊറോ സെന്നി", "sg": "സാംഗോ", "sga": "പഴയ ഐറിഷ്", "sh": "സെർബോ-ക്രൊയേഷ്യൻ", "shi": "താച്ചലിറ്റ്", "shn": "ഷാൻ", "shu": "ചാഡിയൻ അറബി", "si": "സിംഹള", "sid": "സിഡാമോ", "sk": "സ്ലോവാക്", "sl": "സ്ലോവേനിയൻ", "sm": "സമോവൻ", "sma": "തെക്കൻ സമി", "smj": "ലൂലീ സമി", "smn": "ഇനാരി സമി", "sms": "സ്കോൾട്ട് സമി", "sn": "ഷോണ", "snk": "സോണിൻകെ", "so": "സോമാലി", "sog": "സോജിഡിയൻ", "sq": "അൽബേനിയൻ", "sr": "സെർബിയൻ", "srn": "ശ്രാനൻ ഡോങ്കോ", "srr": "സെറർ", "ss": "സ്വാറ്റി", "ssy": "സാഹോ", "st": "തെക്കൻ സോതോ", "su": "സുണ്ടാനീസ്", "suk": "സുകുമ", "sus": "സുസു", "sux": "സുമേരിയൻ", "sv": "സ്വീഡിഷ്", "sw": "സ്വാഹിലി", "sw-CD": "കോംഗോ സ്വാഹിലി", "swb": "കൊമോറിയൻ", "syc": "പുരാതന സുറിയാനിഭാഷ", "syr": "സുറിയാനി", "ta": "തമിഴ്", "te": "തെലുങ്ക്", "tem": "ടിംനേ", "teo": "ടെസോ", "ter": "ടെറേനോ", "tet": "ടെറ്റും", "tg": "താജിക്", "th": "തായ്", "ti": "ടൈഗ്രിന്യ", "tig": "ടൈഗ്രി", "tiv": "ടിവ്", "tk": "തുർക്‌മെൻ", "tkl": "ടൊക്കേലൗ", "tl": "തഗാലോഗ്", "tlh": "ക്ലിംഗോൺ", "tli": "ലിംഗ്വിറ്റ്", "tmh": "ടമഷേക്", "tn": "സ്വാന", "to": "ടോംഗൻ", "tog": "ന്യാസാ ഡോങ്ക", "tpi": "ടോക് പിസിൻ", "tr": "ടർക്കിഷ്", "trv": "തരോക്കോ", "ts": "സോംഗ", "tsi": "സിംഷ്യൻ", "tt": "ടാട്ടർ", "tum": "ടുംബുക", "tvl": "ടുവാലു", "tw": "ട്വി", "twq": "ടസവാക്ക്", "ty": "താഹിതിയൻ", "tyv": "തുവിനിയൻ", "tzm": "മധ്യ അറ്റ്‌ലസ് ടമാസൈറ്റ്", "udm": "ഉഡ്മുർട്ട്", "ug": "ഉയ്ഘുർ", "uga": "ഉഗറിട്ടിക്", "uk": "ഉക്രേനിയൻ", "umb": "ഉംബുന്ദു", "ur": "ഉറുദു", "uz": "ഉസ്‌ബെക്ക്", "vai": "വൈ", "ve": "വെന്ദ", "vi": "വിയറ്റ്നാമീസ്", "vo": "വോളാപുക്", "vot": "വോട്ടിക്", "vun": "വുൻജോ", "wa": "വല്ലൂൺ", "wae": "വാൾസർ", "wal": "വൊലൈറ്റ", "war": "വാരേയ്", "was": "വാഷൊ", "wbp": "വൂൾപിരി", "wo": "വൊളോഫ്", "wuu": "വു ചൈനീസ്", "xal": "കൽമൈക്", "xh": "ഖോസ", "xog": "സോഗോ", "yao": "യാവോ", "yap": "യെപ്പീസ്", "yav": "യാംഗ്ബെൻ", "ybb": "യംബ", "yi": "യിദ്ദിഷ്", "yo": "യൊറൂബാ", "yue": "കാന്റണീസ്", "za": "സ്വാംഗ്", "zap": "സാപ്പോടെക്", "zbl": "ബ്ലിസ്സിംബൽസ്", "zen": "സെനഗ", "zgh": "സ്റ്റാൻഡേർഡ് മൊറോക്കൻ റ്റാമസിയറ്റ്", "zh": "ചൈനീസ്", "zh-Hans": "ലളിതമാക്കിയ ചൈനീസ്", "zh-Hant": "പരമ്പരാഗത ചൈനീസ്", "zu": "സുലു", "zun": "സുനി", "zza": "സാസാ"}, "scriptNames": {"Cyrl": "സിറിലിക്", "Latn": "ലാറ്റിൻ", "Arab": "അറബിക്", "Guru": "ഗുരുമുഖി", "Tfng": "തിഫിനാഗ്", "Vaii": "വൈ", "Hans": "ലളിതവൽക്കരിച്ചത്", "Hant": "പരമ്പരാഗതം"}}, + "mn": {"rtl": false, "languageNames": {"aa": "афар", "ab": "абхаз", "ace": "ачин", "ada": "адангмэ", "ady": "адигэ", "af": "африкаанс", "agq": "агем", "ain": "айну", "ak": "акан", "ale": "алют", "alt": "өмнөд алтай", "am": "амхар", "an": "арагон", "anp": "ангик", "ar": "араб", "ar-001": "стандарт араб", "arn": "мапүчи", "arp": "арапаго", "as": "ассам", "asa": "асу", "ast": "астури", "av": "авар", "awa": "авадхи", "ay": "аймара", "az": "азербайжан", "ba": "башкир", "ban": "бали", "bas": "басаа", "be": "беларусь", "bem": "бемба", "bez": "бена", "bg": "болгар", "bho": "божпури", "bi": "бислам", "bin": "бини", "bla": "сиксика", "bm": "бамбара", "bn": "бенгал", "bo": "төвд", "br": "бретон", "brx": "бодо", "bs": "босни", "bug": "буги", "byn": "блин", "ca": "каталан", "ce": "чечень", "ceb": "себуано", "cgg": "чига", "ch": "чаморро", "chk": "чуук", "chm": "мари хэл", "cho": "чоктау", "chr": "чероки", "chy": "чэенн", "ckb": "төв курд", "co": "корсик", "crs": "сеселва креол франц", "cs": "чех", "cu": "сүмийн славян", "cv": "чуваш", "cy": "уэльс", "da": "дани", "dak": "дакота", "dar": "даргва", "dav": "тайта", "de": "герман", "de-AT": "австри-герман", "de-CH": "швейцарь-герман", "dgr": "догриб", "dje": "зарма", "dsb": "доод сорби", "dua": "дуала", "dv": "дивехи", "dyo": "жола-фони", "dz": "зонха", "dzg": "дазага", "ebu": "эмбу", "ee": "эвэ", "efi": "эфик", "eka": "экажук", "el": "грек", "en": "англи", "en-AU": "австрали-англи", "en-CA": "канад-англи", "en-GB": "британи-англи", "en-US": "америк-англи", "eo": "эсперанто", "es": "испани", "es-419": "испани хэл (Латин Америк)", "es-ES": "испани хэл (Европ)", "es-MX": "испани хэл (Мексик)", "et": "эстони", "eu": "баск", "ewo": "эвондо", "fa": "перс", "ff": "фула", "fi": "фин", "fil": "филипино", "fj": "фижи", "fo": "фарер", "fon": "фон", "fr": "франц", "fr-CA": "канад-франц", "fr-CH": "швейцари-франц", "fur": "фриулан", "fy": "баруун фриз", "ga": "ирланд", "gaa": "га", "gag": "гагуз", "gd": "шотландын гел", "gez": "гийз", "gil": "гилберт", "gl": "галего", "gn": "гуарани", "gor": "горонтало", "gsw": "швейцари-герман", "gu": "гужарати", "guz": "гузы", "gv": "манкс", "gwi": "гвичин", "ha": "хауса", "haw": "хавай", "he": "еврей", "hi": "хинди", "hil": "хилигайнон", "hmn": "хмонг", "hr": "хорват", "hsb": "дээд сорби", "ht": "Гаитийн креол", "hu": "мажар", "hup": "хупа", "hy": "армен", "hz": "хереро", "ia": "интерлингво", "iba": "ибан", "ibb": "ибибио", "id": "индонези", "ie": "нэгдмэл хэл", "ig": "игбо", "ii": "сычуань и", "ilo": "илоко", "inh": "ингуш", "io": "идо", "is": "исланд", "it": "итали", "iu": "инуктитут", "ja": "япон", "jbo": "ложбан", "jgo": "нгомба", "jmc": "мачамэ", "jv": "ява", "ka": "гүрж", "kab": "кабиле", "kac": "качин", "kaj": "жжу", "kam": "камба", "kbd": "кабардин", "kcg": "тяп", "kde": "маконде", "kea": "кабүвердиану", "kfo": "коро", "kha": "каси", "khq": "койра чини", "ki": "кикуюү", "kj": "куаньяма", "kk": "казах", "kkj": "како", "kl": "калалисут", "kln": "каленжин", "km": "кхмер", "kmb": "кимбунду", "kn": "каннада", "ko": "солонгос", "koi": "коми-пермяк", "kok": "конкани", "kpe": "кпелле", "kr": "канури", "krc": "карачай-балкар", "krl": "карель", "kru": "курук", "ks": "кашмир", "ksb": "шамбал", "ksf": "бафиа", "ksh": "кёльш", "ku": "курд", "kum": "кумук", "kv": "коми", "kw": "корн", "ky": "киргиз", "la": "латин", "lad": "ладин", "lag": "ланги", "lb": "люксембург", "lez": "лезги", "lg": "ганда", "li": "лимбург", "lkt": "лакота", "ln": "лингала", "lo": "лаос", "loz": "лози", "lrc": "хойд лури", "lt": "литва", "lu": "луба-катанга", "lua": "луба-лулуа", "lun": "лунда", "luo": "луо", "lus": "мизо", "luy": "луяа", "lv": "латви", "mad": "мадури хэл", "mag": "магахи", "mai": "май", "mak": "макасар", "mas": "масай", "mdf": "мокша", "men": "менде", "mer": "меру", "mfe": "морисен", "mg": "малагаси", "mgh": "макува-мито", "mgo": "мета", "mh": "маршалл", "mi": "маори", "mic": "микмак", "min": "минангкабау", "mk": "македон", "ml": "малаялам", "mn": "монгол", "mni": "манипури", "moh": "мохаук", "mos": "мосси", "mr": "марати", "ms": "малай", "mt": "малта", "mua": "мунданг", "mus": "крик", "mwl": "меранди", "my": "бирм", "myv": "эрзя", "mzn": "мазандерани", "na": "науру", "nap": "неаполитан", "naq": "нама", "nb": "норвегийн букмол", "nd": "хойд ндебеле", "nds-NL": "бага саксон", "ne": "балба", "new": "невари", "ng": "ндонга", "nia": "ниас хэл", "niu": "ниуэ", "nl": "нидерланд", "nl-BE": "фламанд", "nmg": "квазио", "nn": "норвегийн нинорск", "nnh": "нгиембүүн", "no": "норвеги", "nog": "ногаи", "nqo": "нко", "nr": "өмнөд ндебеле", "nso": "хойд сото", "nus": "нуер", "nv": "навахо", "ny": "нянжа", "nyn": "нянколе", "oc": "окситан", "om": "оромо", "or": "ория", "os": "оссетин", "pa": "панжаби", "pag": "пангасин", "pam": "пампанга", "pap": "папьяменто", "pau": "палау", "pcm": "нигерийн пиджин", "pl": "польш", "prg": "прусс", "ps": "пушту", "pt": "португал", "pt-BR": "португал хэл (Бразил)", "pt-PT": "португал хэл (Европ)", "qu": "кечуа", "quc": "киче", "rap": "рапануи", "rar": "раротонг", "rm": "романш", "rn": "рунди", "ro": "румын", "ro-MD": "молдав", "rof": "ромбо", "root": "рут", "ru": "орос", "rup": "ароманы", "rw": "киньяруанда", "rwk": "рва", "sa": "санскрит", "sad": "сандавэ", "sah": "саха", "saq": "самбүрү", "sat": "сантали", "sba": "нгамбай", "sbp": "сангү", "sc": "сардин", "scn": "сицил", "sco": "шотланд", "sd": "синдхи", "se": "хойд сами", "seh": "сена", "ses": "кёраборо сени", "sg": "санго", "sh": "хорватын серб", "shi": "тачелхит", "shn": "шань", "si": "синхала", "sk": "словак", "sl": "словени", "sm": "самоа", "sma": "өмнөд сами", "smj": "люле сами", "smn": "инари сами", "sms": "сколт сами", "sn": "шона", "snk": "сонинке", "so": "сомали", "sq": "албани", "sr": "серб", "srn": "сранан тонго", "ss": "свати", "ssy": "сахо", "st": "сесото", "su": "сундан", "suk": "сукума", "sv": "швед", "sw": "свахили", "sw-CD": "конгогийн свахили", "swb": "комори", "syr": "сири", "ta": "тамил", "te": "тэлүгү", "tem": "тимн", "teo": "тэсо", "tet": "тетум", "tg": "тажик", "th": "тай", "ti": "тигринья", "tig": "тигр", "tk": "туркмен", "tlh": "клингон", "tn": "цвана", "to": "тонга", "tpi": "ток писин", "tr": "турк", "trv": "тароко", "ts": "цонга", "tt": "татар", "tum": "тумбула", "tvl": "тувалу", "tw": "тви", "twq": "тасавак", "ty": "таити", "tyv": "тува", "tzm": "Төв Атласын тамазайт", "udm": "удмурт", "ug": "уйгур", "uk": "украин", "umb": "умбунду", "ur": "урду", "uz": "узбек", "vai": "вай", "ve": "венда", "vi": "вьетнам", "vo": "волапюк", "vun": "вунжо", "wa": "уоллун", "wae": "уолсэр", "wal": "уоллайтта", "war": "варай", "wo": "волоф", "xal": "халимаг", "xh": "хоса", "xog": "сога", "yav": "янгбен", "ybb": "емба", "yi": "иддиш", "yo": "ёруба", "yue": "кантон", "zgh": "Мороккогийн стандарт тамазайт", "zh": "хятад", "zh-Hans": "хялбаршуулсан хятад", "zh-Hant": "уламжлалт хятад", "zu": "зулу", "zun": "зуни", "zza": "заза"}, "scriptNames": {"Cyrl": "кирилл", "Latn": "латин", "Arab": "араб", "Guru": "гүрмүх", "Hans": "хялбаршуулсан", "Hant": "уламжлалт"}}, + "ms": {"rtl": false, "languageNames": {"aa": "Afar", "ab": "Abkhazia", "ace": "Aceh", "ach": "Akoli", "ada": "Adangme", "ady": "Adyghe", "ae": "Avestan", "aeb": "Arab Tunisia", "af": "Afrikaans", "agq": "Aghem", "ain": "Ainu", "ak": "Akan", "ale": "Aleut", "alt": "Altai Selatan", "am": "Amharic", "an": "Aragon", "anp": "Angika", "ar": "Arab", "ar-001": "Arab Standard Moden", "arn": "Mapuche", "arp": "Arapaho", "arq": "Arab Algeria", "ars": "Arab Najdi", "ary": "Arab Maghribi", "arz": "Arab Mesir", "as": "Assam", "asa": "Asu", "ast": "Asturia", "av": "Avaric", "awa": "Awadhi", "ay": "Aymara", "az": "Azerbaijan", "ba": "Bashkir", "bal": "Baluchi", "ban": "Bali", "bas": "Basaa", "bax": "Bamun", "bbj": "Ghomala", "be": "Belarus", "bej": "Beja", "bem": "Bemba", "bez": "Bena", "bfd": "Bafut", "bg": "Bulgaria", "bgn": "Balochi Barat", "bho": "Bhojpuri", "bi": "Bislama", "bin": "Bini", "bkm": "Kom", "bla": "Siksika", "bm": "Bambara", "bn": "Benggala", "bo": "Tibet", "bpy": "Bishnupriya", "br": "Breton", "brh": "Brahui", "brx": "Bodo", "bs": "Bosnia", "bss": "Akoose", "bua": "Buriat", "bug": "Bugis", "bum": "Bulu", "byn": "Blin", "byv": "Medumba", "ca": "Catalonia", "cay": "Cayuga", "ccp": "Chakma", "ce": "Chechen", "ceb": "Cebuano", "cgg": "Chiga", "ch": "Chamorro", "chk": "Chukese", "chm": "Mari", "cho": "Choctaw", "chr": "Cherokee", "chy": "Cheyenne", "ckb": "Kurdi Sorani", "co": "Corsica", "cop": "Coptic", "crh": "Turki Krimea", "crs": "Perancis Seselwa Creole", "cs": "Czech", "cu": "Slavik Gereja", "cv": "Chuvash", "cy": "Wales", "da": "Denmark", "dak": "Dakota", "dar": "Dargwa", "dav": "Taita", "de": "Jerman", "de-AT": "Jerman Austria", "de-CH": "Jerman Halus Switzerland", "dgr": "Dogrib", "dje": "Zarma", "doi": "Dogri", "dsb": "Sorbian Rendah", "dua": "Duala", "dv": "Divehi", "dyo": "Jola-Fonyi", "dz": "Dzongkha", "dzg": "Dazaga", "ebu": "Embu", "ee": "Ewe", "efi": "Efik", "eka": "Ekajuk", "el": "Greek", "en": "Inggeris", "en-AU": "Inggeris Australia", "en-CA": "Inggeris Kanada", "en-GB": "Inggeris British", "en-US": "Inggeris AS", "eo": "Esperanto", "es": "Sepanyol", "es-419": "Sepanyol Amerika Latin", "es-ES": "Sepanyol Eropah", "es-MX": "Sepanyol Mexico", "et": "Estonia", "eu": "Basque", "ewo": "Ewondo", "fa": "Parsi", "ff": "Fulah", "fi": "Finland", "fil": "Filipina", "fj": "Fiji", "fo": "Faroe", "fon": "Fon", "fr": "Perancis", "fr-CA": "Perancis Kanada", "fr-CH": "Perancis Switzerland", "frc": "Perancis Cajun", "fur": "Friulian", "fy": "Frisian Barat", "ga": "Ireland", "gaa": "Ga", "gag": "Gagauz", "gan": "Cina Gan", "gba": "Gbaya", "gbz": "Zoroastrian Dari", "gd": "Scots Gaelic", "gez": "Geez", "gil": "Kiribati", "gl": "Galicia", "glk": "Gilaki", "gn": "Guarani", "gor": "Gorontalo", "grc": "Greek Purba", "gsw": "Jerman Switzerland", "gu": "Gujerat", "guz": "Gusii", "gv": "Manx", "gwi": "Gwichʼin", "ha": "Hausa", "hak": "Cina Hakka", "haw": "Hawaii", "he": "Ibrani", "hi": "Hindi", "hil": "Hiligaynon", "hmn": "Hmong", "hr": "Croatia", "hsb": "Sorbian Atas", "hsn": "Cina Xiang", "ht": "Haiti", "hu": "Hungary", "hup": "Hupa", "hy": "Armenia", "hz": "Herero", "ia": "Interlingua", "iba": "Iban", "ibb": "Ibibio", "id": "Indonesia", "ie": "Interlingue", "ig": "Igbo", "ii": "Sichuan Yi", "ilo": "Iloko", "inh": "Ingush", "io": "Ido", "is": "Iceland", "it": "Itali", "iu": "Inuktitut", "ja": "Jepun", "jbo": "Lojban", "jgo": "Ngomba", "jmc": "Machame", "jv": "Jawa", "ka": "Georgia", "kab": "Kabyle", "kac": "Kachin", "kaj": "Jju", "kam": "Kamba", "kbd": "Kabardia", "kbl": "Kanembu", "kcg": "Tyap", "kde": "Makonde", "kea": "Kabuverdianu", "kfo": "Koro", "kg": "Kongo", "kha": "Khasi", "khq": "Koyra Chiini", "khw": "Khowar", "ki": "Kikuya", "kj": "Kuanyama", "kk": "Kazakhstan", "kkj": "Kako", "kl": "Kalaallisut", "kln": "Kalenjin", "km": "Khmer", "kmb": "Kimbundu", "kn": "Kannada", "ko": "Korea", "koi": "Komi-Permyak", "kok": "Konkani", "kpe": "Kpelle", "kr": "Kanuri", "krc": "Karachay-Balkar", "krl": "Karelian", "kru": "Kurukh", "ks": "Kashmir", "ksb": "Shambala", "ksf": "Bafia", "ksh": "Colognian", "ku": "Kurdish", "kum": "Kumyk", "kv": "Komi", "kw": "Cornish", "ky": "Kirghiz", "la": "Latin", "lad": "Ladino", "lag": "Langi", "lah": "Lahnda", "lb": "Luxembourg", "lez": "Lezghian", "lg": "Ganda", "li": "Limburgish", "lkt": "Lakota", "ln": "Lingala", "lo": "Laos", "lou": "Kreol Louisiana", "loz": "Lozi", "lrc": "Luri Utara", "lt": "Lithuania", "lu": "Luba-Katanga", "lua": "Luba-Lulua", "lun": "Lunda", "luo": "Luo", "lus": "Mizo", "luy": "Luyia", "lv": "Latvia", "mad": "Madura", "maf": "Mafa", "mag": "Magahi", "mai": "Maithili", "mak": "Makasar", "mas": "Masai", "mde": "Maba", "mdf": "Moksha", "men": "Mende", "mer": "Meru", "mfe": "Morisyen", "mg": "Malagasy", "mgh": "Makhuwa-Meetto", "mgo": "Meta’", "mh": "Marshall", "mi": "Maori", "mic": "Micmac", "min": "Minangkabau", "mk": "Macedonia", "ml": "Malayalam", "mn": "Mongolia", "mni": "Manipuri", "moh": "Mohawk", "mos": "Mossi", "mr": "Marathi", "ms": "Melayu", "mt": "Malta", "mua": "Mundang", "mus": "Creek", "mwl": "Mirandese", "my": "Burma", "mye": "Myene", "myv": "Erzya", "mzn": "Mazanderani", "na": "Nauru", "nan": "Cina Min Nan", "nap": "Neapolitan", "naq": "Nama", "nb": "Bokmål Norway", "nd": "Ndebele Utara", "nds": "Jerman Rendah", "nds-NL": "Saxon Rendah", "ne": "Nepal", "new": "Newari", "ng": "Ndonga", "nia": "Nias", "niu": "Niu", "nl": "Belanda", "nl-BE": "Flemish", "nmg": "Kwasio", "nn": "Nynorsk Norway", "nnh": "Ngiemboon", "no": "Norway", "nog": "Nogai", "nqo": "N’ko", "nr": "Ndebele Selatan", "nso": "Sotho Utara", "nus": "Nuer", "nv": "Navajo", "ny": "Nyanja", "nyn": "Nyankole", "oc": "Occitania", "om": "Oromo", "or": "Odia", "os": "Ossete", "pa": "Punjabi", "pag": "Pangasinan", "pam": "Pampanga", "pap": "Papiamento", "pau": "Palauan", "pcm": "Nigerian Pidgin", "pl": "Poland", "prg": "Prusia", "ps": "Pashto", "pt": "Portugis", "pt-BR": "Portugis Brazil", "pt-PT": "Portugis Eropah", "qu": "Quechua", "quc": "Kʼicheʼ", "rap": "Rapanui", "rar": "Rarotonga", "rm": "Romansh", "rn": "Rundi", "ro": "Romania", "ro-MD": "Moldavia", "rof": "Rombo", "root": "Root", "ru": "Rusia", "rup": "Aromanian", "rw": "Kinyarwanda", "rwk": "Rwa", "sa": "Sanskrit", "sad": "Sandawe", "sah": "Sakha", "saq": "Samburu", "sat": "Santali", "sba": "Ngambay", "sbp": "Sangu", "sc": "Sardinia", "scn": "Sicili", "sco": "Scots", "sd": "Sindhi", "sdh": "Kurdish Selatan", "se": "Sami Utara", "see": "Seneca", "seh": "Sena", "ses": "Koyraboro Senni", "sg": "Sango", "sh": "SerboCroatia", "shi": "Tachelhit", "shn": "Shan", "shu": "Arab Chadian", "si": "Sinhala", "sk": "Slovak", "sl": "Slovenia", "sm": "Samoa", "sma": "Sami Selatan", "smj": "Lule Sami", "smn": "Inari Sami", "sms": "Skolt Sami", "sn": "Shona", "snk": "Soninke", "so": "Somali", "sq": "Albania", "sr": "Serbia", "srn": "Sranan Tongo", "ss": "Swati", "ssy": "Saho", "st": "Sotho Selatan", "su": "Sunda", "suk": "Sukuma", "sv": "Sweden", "sw": "Swahili", "sw-CD": "Congo Swahili", "swb": "Comoria", "syr": "Syriac", "ta": "Tamil", "te": "Telugu", "tem": "Timne", "teo": "Teso", "tet": "Tetum", "tg": "Tajik", "th": "Thai", "ti": "Tigrinya", "tig": "Tigre", "tk": "Turkmen", "tlh": "Klingon", "tly": "Talysh", "tn": "Tswana", "to": "Tonga", "tpi": "Tok Pisin", "tr": "Turki", "trv": "Taroko", "ts": "Tsonga", "tt": "Tatar", "tum": "Tumbuka", "tvl": "Tuvalu", "tw": "Twi", "twq": "Tasawaq", "ty": "Tahiti", "tyv": "Tuvinian", "tzm": "Tamazight Atlas Tengah", "udm": "Udmurt", "ug": "Uyghur", "uk": "Ukraine", "umb": "Umbundu", "ur": "Urdu", "uz": "Uzbekistan", "vai": "Vai", "ve": "Venda", "vi": "Vietnam", "vo": "Volapük", "vun": "Vunjo", "wa": "Walloon", "wae": "Walser", "wal": "Wolaytta", "war": "Waray", "wbp": "Warlpiri", "wo": "Wolof", "wuu": "Cina Wu", "xal": "Kalmyk", "xh": "Xhosa", "xog": "Soga", "yav": "Yangben", "ybb": "Yemba", "yi": "Yiddish", "yo": "Yoruba", "yue": "Kantonis", "zgh": "Tamazight Maghribi Standard", "zh": "Cina", "zh-Hans": "Cina Ringkas", "zh-Hant": "Cina Tradisional", "zu": "Zulu", "zun": "Zuni", "zza": "Zaza"}, "scriptNames": {"Cyrl": "Cyril", "Latn": "Latin", "Guru": "Gurmukhi", "Hans": "Ringkas", "Hant": "Tradisional"}}, + "ne": {"rtl": false, "languageNames": {"aa": "अफार", "ab": "अब्खाजियाली", "ace": "अचाइनिज", "ach": "अकोली", "ada": "अदाङमे", "ady": "अदिघे", "ae": "अवेस्तान", "af": "अफ्रिकान्स", "afh": "अफ्रिहिली", "agq": "आघेम", "ain": "अइनु", "ak": "आकान", "akk": "अक्कादियाली", "akz": "अलाबामा", "ale": "अलेउट", "aln": "घेग अल्बानियाली", "alt": "दक्षिणी आल्टाइ", "am": "अम्हारिक", "an": "अरागोनी", "ang": "पुरातन अङ्ग्रेजी", "anp": "अङ्गिका", "ar": "अरबी", "ar-001": "आधुनिक मानक अरबी", "arc": "अरामाइक", "arn": "मापुचे", "aro": "अराओना", "arp": "अरापाहो", "arq": "अल्जेरियाली अरबी", "arw": "अरावाक", "ary": "मोरोक्कोली अरबी", "arz": "इजिप्ट अरबी", "as": "आसामी", "asa": "आसु", "ase": "अमेरिकी साङ्केतिक भाषा", "ast": "अस्टुरियाली", "av": "अवारिक", "avk": "कोटावा", "awa": "अवधी", "ay": "ऐमारा", "az": "अजरबैजानी", "ba": "बास्किर", "bal": "बालुची", "ban": "बाली", "bar": "बाभारियाली", "bas": "बासा", "bax": "बामुन", "bbc": "बाताक तोबा", "bbj": "घोमाला", "be": "बेलारुसी", "bej": "बेजा", "bem": "बेम्बा", "bew": "बेटावी", "bez": "बेना", "bfd": "बाफुट", "bfq": "बडागा", "bg": "बुल्गेरियाली", "bgn": "पश्चिम बालोची", "bho": "भोजपुरी", "bi": "बिस्लाम", "bik": "बिकोल", "bin": "बिनी", "bjn": "बन्जार", "bkm": "कोम", "bla": "सिक्सिका", "bm": "बाम्बारा", "bn": "बंगाली", "bo": "तिब्बती", "bpy": "विष्णुप्रिया", "bqi": "बाख्तिआरी", "br": "ब्रेटन", "bra": "ब्रज", "brh": "ब्राहुइ", "brx": "बोडो", "bs": "बोस्नियाली", "bss": "अकुज", "bua": "बुरिआत", "bug": "बुगिनियाली", "bum": "बुलु", "byn": "ब्लिन", "byv": "मेडुम्बा", "ca": "क्याटालन", "cad": "काड्डो", "car": "क्यारिब", "cay": "कायुगा", "cch": "अट्साम", "ce": "चेचेन", "ceb": "सेबुआनो", "cgg": "चिगा", "ch": "चामोर्रो", "chb": "चिब्चा", "chg": "चागाटाई", "chk": "चुकेसे", "chm": "मारी", "chn": "चिनुक जार्गन", "cho": "चोक्टाव", "chp": "चिपेव्यान", "chr": "चेरोकी", "chy": "चेयेन्ने", "ckb": "मध्यवर्ती कुर्दिस", "co": "कोर्सिकन", "cop": "कोप्टिक", "cps": "कापिज्नोन", "cr": "क्री", "crh": "क्रिमियाली तुर्क", "crs": "सेसेल्वा क्रिओल फ्रान्सेली", "cs": "चेक", "csb": "कासुवियन", "cu": "चर्च स्लाभिक", "cv": "चुभास", "cy": "वेल्श", "da": "डेनिस", "dak": "डाकोटा", "dar": "दार्ग्वा", "dav": "ताइता", "de": "जर्मन", "de-AT": "अस्ट्रिएन जर्मन", "de-CH": "स्वीस हाई जर्मन", "del": "देलावर", "dgr": "दोग्रिब", "din": "दिन्का", "dje": "जर्मा", "doi": "डोगरी", "dsb": "तल्लो सोर्बियन", "dtp": "केन्द्रीय दुसुन", "dua": "दुवाला", "dum": "मध्य डच", "dv": "दिबेही", "dyo": "जोला-फोनिल", "dyu": "द्युला", "dz": "जोङ्खा", "dzg": "दाजागा", "ebu": "एम्बु", "ee": "इवी", "efi": "एफिक", "egl": "एमिलियाली", "egy": "पुरातन इजिप्टी", "eka": "एकाजुक", "el": "ग्रीक", "elx": "एलामाइट", "en": "अङ्ग्रेजी", "en-AU": "अस्ट्रेलियाली अङ्ग्रेजी", "en-CA": "क्यानाडेली अङ्ग्रेजी", "en-GB": "बेलायती अङ्ग्रेजी", "en-US": "अमेरिकी अङ्ग्रेजी", "enm": "मध्य अङ्ग्रेजी", "eo": "एस्पेरान्तो", "es": "स्पेनी", "es-419": "ल्याटिन अमेरिकी स्पेनी", "es-ES": "युरोपेली स्पेनी", "es-MX": "मेक्सिकन स्पेनी", "esu": "केन्द्रीय युपिक", "et": "इस्टोनियन", "eu": "बास्क", "ewo": "इवोन्डो", "ext": "एक्सट्रेमादुराली", "fa": "फारसी", "fan": "फाङ", "fat": "फान्टी", "ff": "फुलाह", "fi": "फिनिस", "fil": "फिलिपिनी", "fj": "फिजियन", "fo": "फारोज", "fon": "फोन", "fr": "फ्रान्सेली", "fr-CA": "क्यानेडाली फ्रान्सेली", "fr-CH": "स्विस फ्रेन्च", "frc": "काहुन फ्रान्सेली", "frm": "मध्य फ्रान्सेली", "fro": "पुरातन फ्रान्सेली", "frp": "अर्पितान", "frr": "उत्तरी फ्रिजी", "frs": "पूर्वी फ्रिसियाली", "fur": "फ्रिउलियाली", "fy": "पश्चिमी फ्रिसियन", "ga": "आइरिस", "gaa": "गा", "gag": "गगाउज", "gan": "गान चिनियाँ", "gay": "गायो", "gba": "ग्बाया", "gd": "स्कटिस गाएलिक", "gez": "गिज", "gil": "गिल्बर्टी", "gl": "गलिसियाली", "glk": "गिलाकी", "gmh": "मध्य उच्च जर्मन", "gn": "गुवारानी", "goh": "पुरातन उच्च जर्मन", "gom": "गोवा कोन्कानी", "gon": "गोन्डी", "gor": "गोरोन्टालो", "got": "गोथिक", "grb": "ग्रेबो", "grc": "पुरातन ग्रिक", "gsw": "स्वीस जर्मन", "gu": "गुजराती", "gur": "फ्राफ्रा", "guz": "गुसी", "gv": "मान्क्स", "gwi": "गुइचिन", "ha": "हाउसा", "hai": "हाइदा", "hak": "हक्का चिनियाँ", "haw": "हवाइयन", "he": "हिब्रु", "hi": "हिन्दी", "hif": "फिजी हिन्दी", "hil": "हिलिगायनोन", "hit": "हिट्टिटे", "hmn": "हमोङ", "ho": "हिरी मोटु", "hr": "क्रोयसियाली", "hsb": "माथिल्लो सोर्बियन", "hsn": "जियाङ चिनियाँ", "ht": "हैटियाली क्रियोल", "hu": "हङ्गेरियाली", "hup": "हुपा", "hy": "आर्मेनियाली", "hz": "हेरेरो", "ia": "इन्टर्लिङ्गुआ", "iba": "इबान", "ibb": "इबिबियो", "id": "इन्डोनेसियाली", "ie": "इन्टरलिङ्ग्वे", "ig": "इग्बो", "ii": "सिचुआन यि", "ik": "इनुपिआक्", "ilo": "इयोको", "inh": "इन्गस", "io": "इडो", "is": "आइसल्यान्डियाली", "it": "इटालेली", "iu": "इनुक्टिटुट", "izh": "इन्ग्रियाली", "ja": "जापानी", "jam": "जमैकाली क्रेओले अङ्ग्रेजी", "jbo": "लोज्बान", "jgo": "न्गोम्बा", "jmc": "माचामे", "jpr": "जुडियो-फारसी", "jrb": "जुडियो-अरबी", "jut": "जुटिस", "jv": "जाभानी", "ka": "जर्जियाली", "kaa": "कारा-काल्पाक", "kab": "काबिल", "kac": "काचिन", "kaj": "ज्जु", "kam": "काम्बा", "kaw": "कावी", "kbd": "काबार्दियाली", "kbl": "कानेम्बु", "kcg": "टुआप", "kde": "माकोन्डे", "kea": "काबुभेर्डियानु", "ken": "केनयाङ", "kfo": "कोरो", "kg": "कोङ्गो", "kgp": "काइनगाङ", "kha": "खासी", "kho": "खोटानी", "khq": "कोयरा चिनी", "khw": "खोवार", "ki": "किकुयु", "kiu": "किर्मान्जकी", "kj": "कुआन्यामा", "kk": "काजाख", "kkj": "काको", "kl": "कालालिसुट", "kln": "कालेन्जिन", "km": "खमेर", "kmb": "किम्बुन्डु", "kn": "कन्नाडा", "ko": "कोरियाली", "koi": "कोमी-पर्म्याक", "kok": "कोन्कानी", "kos": "कोस्राली", "kpe": "क्पेल्ले", "kr": "कानुरी", "krc": "काराचाय-बाल्कर", "kri": "क्रिओ", "krj": "किनाराय-ए", "krl": "करेलियन", "kru": "कुरुख", "ks": "कास्मिरी", "ksb": "शाम्बाला", "ksf": "बाफिया", "ksh": "कोलोग्नियाली", "ku": "कुर्दी", "kum": "कुमिक", "kut": "कुतेनाइ", "kv": "कोमी", "kw": "कोर्निस", "ky": "किर्गिज", "la": "ल्याटिन", "lad": "लाडिनो", "lag": "लाङ्गी", "lah": "लाहन्डा", "lam": "लाम्बा", "lb": "लक्जेम्बर्गी", "lez": "लाज्घियाली", "lfn": "लिङ्गुवा फ्राङ्का नोभा", "lg": "गान्डा", "li": "लिम्बुर्गी", "lij": "लिगुरियाली", "liv": "लिभोनियाली", "lkt": "लाकोता", "lmo": "लोम्बार्ड", "ln": "लिङ्गाला", "lo": "लाओ", "lol": "मोङ्गो", "loz": "लोजी", "lrc": "उत्तरी लुरी", "lt": "लिथुआनियाली", "ltg": "लाट्गाली", "lu": "लुबा-काताङ्गा", "lua": "लुबा-लुलुआ", "lui": "लुइसेनो", "lun": "लुन्डा", "luo": "लुओ", "lus": "मिजो", "luy": "लुइया", "lv": "लात्भियाली", "lzh": "साहित्यिक चिनियाँ", "lzz": "लाज", "mad": "मादुरेसे", "maf": "माफा", "mag": "मगधी", "mai": "मैथिली", "mak": "माकासार", "man": "मान्दिङो", "mas": "मसाई", "mde": "माबा", "mdf": "मोक्ष", "mdr": "मन्दर", "men": "मेन्डे", "mer": "मेरू", "mfe": "मोरिसेन", "mg": "मलागासी", "mga": "मध्य आयरिस", "mgh": "माखुवा-मिट्टो", "mgo": "मेटा", "mh": "मार्साली", "mi": "माओरी", "mic": "मिकमाक", "min": "मिनाङकाबाउ", "mk": "म्यासेडोनियन", "ml": "मलयालम", "mn": "मङ्गोलियाली", "mnc": "मान्चु", "mni": "मनिपुरी", "moh": "मोहक", "mos": "मोस्सी", "mr": "मराठी", "ms": "मलाय", "mt": "माल्टिज", "mua": "मुन्डाङ", "mus": "क्रिक", "mwl": "मिरान्डी", "mwr": "माडवारी", "mwv": "मेन्टावाई", "my": "बर्मेली", "mye": "म्येने", "myv": "इर्ज्या", "mzn": "मजानडेरानी", "na": "नाउरू", "nan": "मिन नान चिनियाँ", "nap": "नेपोलिटान", "naq": "नामा", "nb": "नर्वेली बोकमाल", "nd": "उत्तरी न्डेबेले", "nds": "तल्लो जर्मन", "nds-NL": "तल्लो साक्सन", "ne": "नेपाली", "new": "नेवारी", "ng": "न्दोन्गा", "nia": "नियास", "niu": "निउएन", "njo": "अओ नागा", "nl": "डच", "nl-BE": "फ्लेमिस", "nmg": "क्वासियो", "nn": "नर्वेली नाइनोर्स्क", "nnh": "न्गिएम्बुन", "no": "नर्वेली", "nog": "नोगाइ", "non": "पुरानो नोर्से", "nov": "नोभियल", "nqo": "नको", "nr": "दक्षिण न्देबेले", "nso": "उत्तरी सोथो", "nus": "नुएर", "nv": "नाभाजो", "nwc": "परम्परागत नेवारी", "ny": "न्यान्जा", "nym": "न्यामवेजी", "nyn": "न्यान्कोल", "nyo": "न्योरो", "nzi": "नजिमा", "oc": "अक्सिटन", "oj": "ओजिब्वा", "om": "ओरोमो", "or": "उडिया", "os": "अोस्सेटिक", "osa": "ओसागे", "ota": "अटोमन तुर्की", "pa": "पंजाबी", "pag": "पाङ्गासिनान", "pal": "पाहलावी", "pam": "पामपाङ्गा", "pap": "पापियामेन्तो", "pau": "पालाउवाली", "pcd": "पिकार्ड", "pcm": "नाइजेरियाली पिड्जिन", "pdc": "पेन्सिलभानियाली जर्मन", "peo": "पुरातन फारसी", "pfl": "पालाटिन जर्मन", "phn": "फोनिसियाली", "pi": "पाली", "pl": "पोलिस", "pms": "पिएडमोन्तेसे", "pnt": "पोन्टिक", "prg": "प्रसियाली", "pro": "पुरातन प्रोभेन्काल", "ps": "पास्तो", "pt": "पोर्तुगी", "pt-BR": "ब्राजिली पोर्तुगी", "pt-PT": "युरोपेली पोर्तुगी", "qu": "क्वेचुवा", "quc": "किचे", "qug": "चिम्बोराजो उच्चस्थान किचुआ", "raj": "राजस्थानी", "rap": "रापानुई", "rar": "रारोटोङ्गान", "rm": "रोमानिस", "rn": "रुन्डी", "ro": "रोमानियाली", "ro-MD": "मोल्डाभियाली", "rof": "रोम्बो", "root": "रुट", "ru": "रसियाली", "rup": "अरोमानीयाली", "rw": "किन्यारवान्डा", "rwk": "र्‌वा", "sa": "संस्कृत", "sad": "सान्डेअ", "sah": "साखा", "saq": "साम्बुरू", "sat": "सान्ताली", "sba": "न्गामबाय", "sbp": "साङ्गु", "sc": "सार्डिनियाली", "scn": "सिसिलियाली", "sco": "स्कट्स", "sd": "सिन्धी", "sdh": "दक्षिणी कुर्दिश", "se": "उत्तरी सामी", "seh": "सेना", "ses": "कोयराबोरो सेन्नी", "sg": "साङ्गो", "sga": "पुरातन आयरीस", "shi": "टाचेल्हिट", "shn": "शान", "shu": "चाड अरबी", "si": "सिन्हाली", "sk": "स्लोभाकियाली", "sl": "स्लोभेनियाली", "sli": "तल्लो सिलेसियाली", "sm": "सामोआ", "sma": "दक्षिणी सामी", "smj": "लुले सामी", "smn": "इनारी सामी", "sms": "स्कोइट सामी", "sn": "शोना", "snk": "सोनिन्के", "so": "सोमाली", "sq": "अल्बानियाली", "sr": "सर्बियाली", "srn": "स्रानान टोङ्गो", "ss": "स्वाती", "ssy": "साहो", "st": "दक्षिणी सोथो", "su": "सुडानी", "suk": "सुकुमा", "sus": "सुसू", "sux": "सुमेरियाली", "sv": "स्विडिस", "sw": "स्वाहिली", "sw-CD": "कङ्गो स्वाहिली", "swb": "कोमोरी", "syc": "परम्परागत सिरियाक", "syr": "सिरियाक", "ta": "तामिल", "te": "तेलुगु", "tem": "टिम्ने", "teo": "टेसो", "tet": "टेटुम", "tg": "ताजिक", "th": "थाई", "ti": "टिग्रिन्या", "tig": "टिग्रे", "tk": "टर्कमेन", "tlh": "क्लिङ्गन", "tn": "ट्स्वाना", "to": "टोङ्गन", "tog": "न्यास टोङ्गा", "tpi": "टोक पिसिन", "tr": "टर्किश", "trv": "टारोको", "ts": "ट्सोङ्गा", "tt": "तातार", "ttt": "मुस्लिम टाट", "tum": "टुम्बुका", "tvl": "टुभालु", "twq": "तासावाक", "ty": "टाहिटियन", "tyv": "टुभिनियाली", "tzm": "केन्द्रीय एट्लास टामाजिघट", "udm": "उड्मुर्ट", "ug": "उइघुर", "uk": "युक्रेनी", "umb": "उम्बुन्डी", "ur": "उर्दु", "uz": "उज्बेकी", "vai": "भाइ", "ve": "भेन्डा", "vi": "भियतनामी", "vmf": "मुख्य-फ्राङ्कोनियाली", "vo": "भोलापिक", "vun": "भुन्जो", "wa": "वाल्लुन", "wae": "वाल्सर", "wal": "वोलेट्टा", "war": "वारे", "wbp": "वार्ल्पिरी", "wo": "वुलुफ", "xal": "काल्मिक", "xh": "खोसा", "xmf": "मिनग्रेलियाली", "xog": "सोगा", "yav": "याङ्बेन", "ybb": "येम्बा", "yi": "यिद्दिस", "yo": "योरूवा", "yrl": "न्हिनगातु", "yue": "क्यान्टोनिज", "zbl": "ब्लिससिम्बोल्स", "zgh": "मानक मोरोक्कोन तामाजिघट", "zh": "चिनियाँ", "zh-Hans": "सरलिकृत चिनियाँ", "zh-Hant": "परम्परागत चिनियाँ", "zu": "जुलु", "zun": "जुनी", "zza": "जाजा"}, "scriptNames": {"Cyrl": "सिरिलिक", "Latn": "ल्याटिन", "Arab": "अरबी", "Guru": "गुरूमुखी", "Tfng": "टिफिनाघ", "Vaii": "भाइ", "Hans": "सरलिकृत चिनियाँ", "Hant": "परम्परागत चिनियाँ"}}, + "nl": {"rtl": false, "languageNames": {"aa": "Afar", "ab": "Abchazisch", "ace": "Atjehs", "ach": "Akoli", "ada": "Adangme", "ady": "Adygees", "ae": "Avestisch", "aeb": "Tunesisch Arabisch", "af": "Afrikaans", "afh": "Afrihili", "agq": "Aghem", "ain": "Aino", "ak": "Akan", "akk": "Akkadisch", "akz": "Alabama", "ale": "Aleoetisch", "aln": "Gegisch", "alt": "Zuid-Altaïsch", "am": "Amhaars", "an": "Aragonees", "ang": "Oudengels", "anp": "Angika", "ar": "Arabisch", "ar-001": "Arabisch (wereld)", "arc": "Aramees", "arn": "Mapudungun", "aro": "Araona", "arp": "Arapaho", "arq": "Algerijns Arabisch", "ars": "Nadjdi-Arabisch", "arw": "Arawak", "ary": "Marokkaans Arabisch", "arz": "Egyptisch Arabisch", "as": "Assamees", "asa": "Asu", "ase": "Amerikaanse Gebarentaal", "ast": "Asturisch", "av": "Avarisch", "avk": "Kotava", "awa": "Awadhi", "ay": "Aymara", "az": "Azerbeidzjaans", "ba": "Basjkiers", "bal": "Beloetsji", "ban": "Balinees", "bar": "Beiers", "bas": "Basa", "bax": "Bamoun", "bbc": "Batak Toba", "bbj": "Ghomala’", "be": "Wit-Russisch", "bej": "Beja", "bem": "Bemba", "bew": "Betawi", "bez": "Bena", "bfd": "Bafut", "bfq": "Badaga", "bg": "Bulgaars", "bgn": "Westers Beloetsji", "bho": "Bhojpuri", "bi": "Bislama", "bik": "Bikol", "bin": "Bini", "bjn": "Banjar", "bkm": "Kom", "bla": "Siksika", "bm": "Bambara", "bn": "Bengaals", "bo": "Tibetaans", "bpy": "Bishnupriya", "bqi": "Bakhtiari", "br": "Bretons", "bra": "Braj", "brh": "Brahui", "brx": "Bodo", "bs": "Bosnisch", "bss": "Akoose", "bua": "Boerjatisch", "bug": "Buginees", "bum": "Bulu", "byn": "Blin", "byv": "Medumba", "ca": "Catalaans", "cad": "Caddo", "car": "Caribisch", "cay": "Cayuga", "cch": "Atsam", "ccp": "Chakma", "ce": "Tsjetsjeens", "ceb": "Cebuano", "cgg": "Chiga", "ch": "Chamorro", "chb": "Chibcha", "chg": "Chagatai", "chk": "Chuukees", "chm": "Mari", "chn": "Chinook Jargon", "cho": "Choctaw", "chp": "Chipewyan", "chr": "Cherokee", "chy": "Cheyenne", "ckb": "Soranî", "co": "Corsicaans", "cop": "Koptisch", "cps": "Capiznon", "cr": "Cree", "crh": "Krim-Tataars", "crs": "Seychellencreools", "cs": "Tsjechisch", "csb": "Kasjoebisch", "cu": "Kerkslavisch", "cv": "Tsjoevasjisch", "cy": "Welsh", "da": "Deens", "dak": "Dakota", "dar": "Dargwa", "dav": "Taita", "de": "Duits", "de-AT": "Duits (Oostenrijk)", "de-CH": "Duits (Zwitserland)", "del": "Delaware", "den": "Slavey", "dgr": "Dogrib", "din": "Dinka", "dje": "Zarma", "doi": "Dogri", "dsb": "Nedersorbisch", "dtp": "Dusun", "dua": "Duala", "dum": "Middelnederlands", "dv": "Divehi", "dyo": "Jola-Fonyi", "dyu": "Dyula", "dz": "Dzongkha", "dzg": "Dazaga", "ebu": "Embu", "ee": "Ewe", "efi": "Efik", "egl": "Emiliano", "egy": "Oudegyptisch", "eka": "Ekajuk", "el": "Grieks", "elx": "Elamitisch", "en": "Engels", "en-AU": "Engels (Australië)", "en-CA": "Engels (Canada)", "en-GB": "Engels (Verenigd Koninkrijk)", "en-US": "Engels (Verenigde Staten)", "enm": "Middelengels", "eo": "Esperanto", "es": "Spaans", "es-419": "Spaans (Latijns-Amerika)", "es-ES": "Spaans (Spanje)", "es-MX": "Spaans (Mexico)", "esu": "Yupik", "et": "Estisch", "eu": "Baskisch", "ewo": "Ewondo", "ext": "Extremeens", "fa": "Perzisch", "fan": "Fang", "fat": "Fanti", "ff": "Fulah", "fi": "Fins", "fil": "Filipijns", "fit": "Tornedal-Fins", "fj": "Fijisch", "fo": "Faeröers", "fon": "Fon", "fr": "Frans", "fr-CA": "Frans (Canada)", "fr-CH": "Frans (Zwitserland)", "frc": "Cajun-Frans", "frm": "Middelfrans", "fro": "Oudfrans", "frp": "Arpitaans", "frr": "Noord-Fries", "frs": "Oost-Fries", "fur": "Friulisch", "fy": "Fries", "ga": "Iers", "gaa": "Ga", "gag": "Gagaoezisch", "gan": "Ganyu", "gay": "Gayo", "gba": "Gbaya", "gbz": "Zoroastrisch Dari", "gd": "Schots-Gaelisch", "gez": "Ge’ez", "gil": "Gilbertees", "gl": "Galicisch", "glk": "Gilaki", "gmh": "Middelhoogduits", "gn": "Guaraní", "goh": "Oudhoogduits", "gom": "Goa Konkani", "gon": "Gondi", "gor": "Gorontalo", "got": "Gothisch", "grb": "Grebo", "grc": "Oudgrieks", "gsw": "Zwitserduits", "gu": "Gujarati", "guc": "Wayuu", "gur": "Gurune", "guz": "Gusii", "gv": "Manx", "gwi": "Gwichʼin", "ha": "Hausa", "hai": "Haida", "hak": "Hakka", "haw": "Hawaïaans", "he": "Hebreeuws", "hi": "Hindi", "hif": "Fijisch Hindi", "hil": "Hiligaynon", "hit": "Hettitisch", "hmn": "Hmong", "ho": "Hiri Motu", "hr": "Kroatisch", "hsb": "Oppersorbisch", "hsn": "Xiangyu", "ht": "Haïtiaans Creools", "hu": "Hongaars", "hup": "Hupa", "hy": "Armeens", "hz": "Herero", "ia": "Interlingua", "iba": "Iban", "ibb": "Ibibio", "id": "Indonesisch", "ie": "Interlingue", "ig": "Igbo", "ii": "Yi", "ik": "Inupiaq", "ilo": "Iloko", "inh": "Ingoesjetisch", "io": "Ido", "is": "IJslands", "it": "Italiaans", "iu": "Inuktitut", "izh": "Ingrisch", "ja": "Japans", "jam": "Jamaicaans Creools", "jbo": "Lojban", "jgo": "Ngomba", "jmc": "Machame", "jpr": "Judeo-Perzisch", "jrb": "Judeo-Arabisch", "jut": "Jutlands", "jv": "Javaans", "ka": "Georgisch", "kaa": "Karakalpaks", "kab": "Kabylisch", "kac": "Kachin", "kaj": "Jju", "kam": "Kamba", "kaw": "Kawi", "kbd": "Kabardisch", "kbl": "Kanembu", "kcg": "Tyap", "kde": "Makonde", "kea": "Kaapverdisch Creools", "ken": "Kenyang", "kfo": "Koro", "kg": "Kongo", "kgp": "Kaingang", "kha": "Khasi", "kho": "Khotanees", "khq": "Koyra Chiini", "khw": "Khowar", "ki": "Gikuyu", "kiu": "Kirmanckî", "kj": "Kuanyama", "kk": "Kazachs", "kkj": "Kako", "kl": "Groenlands", "kln": "Kalenjin", "km": "Khmer", "kmb": "Kimbundu", "kn": "Kannada", "ko": "Koreaans", "koi": "Komi-Permjaaks", "kok": "Konkani", "kos": "Kosraeaans", "kpe": "Kpelle", "kr": "Kanuri", "krc": "Karatsjaj-Balkarisch", "kri": "Krio", "krj": "Kinaray-a", "krl": "Karelisch", "kru": "Kurukh", "ks": "Kasjmiri", "ksb": "Shambala", "ksf": "Bafia", "ksh": "Kölsch", "ku": "Koerdisch", "kum": "Koemuks", "kut": "Kutenai", "kv": "Komi", "kw": "Cornish", "ky": "Kirgizisch", "la": "Latijn", "lad": "Ladino", "lag": "Langi", "lah": "Lahnda", "lam": "Lamba", "lb": "Luxemburgs", "lez": "Lezgisch", "lfn": "Lingua Franca Nova", "lg": "Luganda", "li": "Limburgs", "lij": "Ligurisch", "liv": "Lijfs", "lkt": "Lakota", "lmo": "Lombardisch", "ln": "Lingala", "lo": "Laotiaans", "lol": "Mongo", "lou": "Louisiana-Creools", "loz": "Lozi", "lrc": "Noordelijk Luri", "lt": "Litouws", "ltg": "Letgaals", "lu": "Luba-Katanga", "lua": "Luba-Lulua", "lui": "Luiseno", "lun": "Lunda", "luo": "Luo", "lus": "Mizo", "luy": "Luyia", "lv": "Lets", "lzh": "Klassiek Chinees", "lzz": "Lazisch", "mad": "Madoerees", "maf": "Mafa", "mag": "Magahi", "mai": "Maithili", "mak": "Makassaars", "man": "Mandingo", "mas": "Maa", "mde": "Maba", "mdf": "Moksja", "mdr": "Mandar", "men": "Mende", "mer": "Meru", "mfe": "Morisyen", "mg": "Malagassisch", "mga": "Middeliers", "mgh": "Makhuwa-Meetto", "mgo": "Meta’", "mh": "Marshallees", "mi": "Maori", "mic": "Mi’kmaq", "min": "Minangkabau", "mk": "Macedonisch", "ml": "Malayalam", "mn": "Mongools", "mnc": "Mantsjoe", "mni": "Meitei", "moh": "Mohawk", "mos": "Mossi", "mr": "Marathi", "mrj": "West-Mari", "ms": "Maleis", "mt": "Maltees", "mua": "Mundang", "mus": "Creek", "mwl": "Mirandees", "mwr": "Marwari", "mwv": "Mentawai", "my": "Birmaans", "mye": "Myene", "myv": "Erzja", "mzn": "Mazanderani", "na": "Nauruaans", "nan": "Minnanyu", "nap": "Napolitaans", "naq": "Nama", "nb": "Noors - Bokmål", "nd": "Noord-Ndebele", "nds": "Nedersaksisch", "nds-NL": "Nederduits", "ne": "Nepalees", "new": "Newari", "ng": "Ndonga", "nia": "Nias", "niu": "Niueaans", "njo": "Ao Naga", "nl": "Nederlands", "nl-BE": "Nederlands (België)", "nmg": "Ngumba", "nn": "Noors - Nynorsk", "nnh": "Ngiemboon", "no": "Noors", "nog": "Nogai", "non": "Oudnoors", "nov": "Novial", "nqo": "N’Ko", "nr": "Zuid-Ndbele", "nso": "Noord-Sotho", "nus": "Nuer", "nv": "Navajo", "nwc": "Klassiek Nepalbhasa", "ny": "Nyanja", "nym": "Nyamwezi", "nyn": "Nyankole", "nyo": "Nyoro", "nzi": "Nzima", "oc": "Occitaans", "oj": "Ojibwa", "om": "Afaan Oromo", "or": "Odia", "os": "Ossetisch", "osa": "Osage", "ota": "Ottomaans-Turks", "pa": "Punjabi", "pag": "Pangasinan", "pal": "Pahlavi", "pam": "Pampanga", "pap": "Papiaments", "pau": "Palaus", "pcd": "Picardisch", "pcm": "Nigeriaans Pidgin", "pdc": "Pennsylvania-Duits", "pdt": "Plautdietsch", "peo": "Oudperzisch", "pfl": "Paltsisch", "phn": "Foenicisch", "pi": "Pali", "pl": "Pools", "pms": "Piëmontees", "pnt": "Pontisch", "pon": "Pohnpeiaans", "prg": "Oudpruisisch", "pro": "Oudprovençaals", "ps": "Pasjtoe", "pt": "Portugees", "pt-BR": "Portugees (Brazilië)", "pt-PT": "Portugees (Portugal)", "qu": "Quechua", "quc": "K’iche’", "qug": "Kichwa", "raj": "Rajasthani", "rap": "Rapanui", "rar": "Rarotongan", "rgn": "Romagnol", "rif": "Riffijns", "rm": "Reto-Romaans", "rn": "Kirundi", "ro": "Roemeens", "ro-MD": "Roemeens (Moldavië)", "rof": "Rombo", "rom": "Romani", "root": "Root", "rtm": "Rotumaans", "ru": "Russisch", "rue": "Roetheens", "rug": "Roviana", "rup": "Aroemeens", "rw": "Kinyarwanda", "rwk": "Rwa", "sa": "Sanskriet", "sad": "Sandawe", "sah": "Jakoets", "sam": "Samaritaans-Aramees", "saq": "Samburu", "sas": "Sasak", "sat": "Santali", "saz": "Saurashtra", "sba": "Ngambay", "sbp": "Sangu", "sc": "Sardijns", "scn": "Siciliaans", "sco": "Schots", "sd": "Sindhi", "sdc": "Sassarees", "sdh": "Pahlavani", "se": "Noord-Samisch", "see": "Seneca", "seh": "Sena", "sei": "Seri", "sel": "Selkoeps", "ses": "Koyraboro Senni", "sg": "Sango", "sga": "Oudiers", "sgs": "Samogitisch", "sh": "Servo-Kroatisch", "shi": "Tashelhiyt", "shn": "Shan", "shu": "Tsjadisch Arabisch", "si": "Singalees", "sid": "Sidamo", "sk": "Slowaaks", "sl": "Sloveens", "sli": "Silezisch Duits", "sly": "Selayar", "sm": "Samoaans", "sma": "Zuid-Samisch", "smj": "Lule-Samisch", "smn": "Inari-Samisch", "sms": "Skolt-Samisch", "sn": "Shona", "snk": "Soninke", "so": "Somalisch", "sog": "Sogdisch", "sq": "Albanees", "sr": "Servisch", "srn": "Sranantongo", "srr": "Serer", "ss": "Swazi", "ssy": "Saho", "st": "Zuid-Sotho", "stq": "Saterfries", "su": "Soendanees", "suk": "Sukuma", "sus": "Soesoe", "sux": "Soemerisch", "sv": "Zweeds", "sw": "Swahili", "sw-CD": "Swahili (Congo-Kinshasa)", "swb": "Shimaore", "syc": "Klassiek Syrisch", "syr": "Syrisch", "szl": "Silezisch", "ta": "Tamil", "tcy": "Tulu", "te": "Telugu", "tem": "Timne", "teo": "Teso", "ter": "Tereno", "tet": "Tetun", "tg": "Tadzjieks", "th": "Thai", "ti": "Tigrinya", "tig": "Tigre", "tiv": "Tiv", "tk": "Turkmeens", "tkl": "Tokelaus", "tkr": "Tsakhur", "tl": "Tagalog", "tlh": "Klingon", "tli": "Tlingit", "tly": "Talysh", "tmh": "Tamashek", "tn": "Tswana", "to": "Tongaans", "tog": "Nyasa Tonga", "tpi": "Tok Pisin", "tr": "Turks", "tru": "Turoyo", "trv": "Taroko", "ts": "Tsonga", "tsd": "Tsakonisch", "tsi": "Tsimshian", "tt": "Tataars", "ttt": "Moslim Tat", "tum": "Toemboeka", "tvl": "Tuvaluaans", "tw": "Twi", "twq": "Tasawaq", "ty": "Tahitiaans", "tyv": "Toevaans", "tzm": "Tamazight (Centraal-Marokko)", "udm": "Oedmoerts", "ug": "Oeigoers", "uga": "Oegaritisch", "uk": "Oekraïens", "umb": "Umbundu", "ur": "Urdu", "uz": "Oezbeeks", "vai": "Vai", "ve": "Venda", "vec": "Venetiaans", "vep": "Wepsisch", "vi": "Vietnamees", "vls": "West-Vlaams", "vmf": "Opperfrankisch", "vo": "Volapük", "vot": "Votisch", "vro": "Võro", "vun": "Vunjo", "wa": "Waals", "wae": "Walser", "wal": "Wolaytta", "war": "Waray", "was": "Washo", "wbp": "Warlpiri", "wo": "Wolof", "wuu": "Wuyu", "xal": "Kalmuks", "xh": "Xhosa", "xmf": "Mingreels", "xog": "Soga", "yao": "Yao", "yap": "Yapees", "yav": "Yangben", "ybb": "Yemba", "yi": "Jiddisch", "yo": "Yoruba", "yrl": "Nheengatu", "yue": "Kantonees", "za": "Zhuang", "zap": "Zapotec", "zbl": "Blissymbolen", "zea": "Zeeuws", "zen": "Zenaga", "zgh": "Standaard Marokkaanse Tamazight", "zh": "Chinees", "zh-Hans": "Chinees (vereenvoudigd)", "zh-Hant": "Chinees (traditioneel)", "zu": "Zoeloe", "zun": "Zuni", "zza": "Zaza"}, "scriptNames": {"Cyrl": "Cyrillisch", "Latn": "Latijns", "Arab": "Arabisch", "Guru": "Gurmukhi", "Tfng": "Tifinagh", "Vaii": "Vai", "Hans": "vereenvoudigd", "Hant": "traditioneel"}}, + "nn": {"rtl": false, "languageNames": {"aa": "afar", "ab": "abkhasisk", "ace": "achinesisk", "ach": "acoli", "ada": "adangme", "ady": "adygeisk", "ae": "avestisk", "af": "afrikaans", "afh": "afrihili", "agq": "aghem", "ain": "ainu", "ak": "akan", "akk": "akkadisk", "ale": "aleutisk", "alt": "sør-altaj", "am": "amharisk", "an": "aragonsk", "ang": "gammalengelsk", "anp": "angika", "ar": "arabisk", "ar-001": "moderne standardarabisk", "arc": "arameisk", "arn": "mapudungun", "arp": "arapaho", "arw": "arawak", "as": "assamesisk", "asa": "asu (Tanzania)", "ast": "asturisk", "av": "avarisk", "awa": "avadhi", "ay": "aymara", "az": "aserbajdsjansk", "ba": "basjkirsk", "bal": "baluchi", "ban": "balinesisk", "bas": "basa", "bax": "bamun", "be": "kviterussisk", "bej": "beja", "bem": "bemba", "bez": "bena (Tanzania)", "bg": "bulgarsk", "bho": "bhojpuri", "bi": "bislama", "bik": "bikol", "bin": "bini", "bla": "siksika", "bm": "bambara", "bn": "bengali", "bo": "tibetansk", "br": "bretonsk", "bra": "braj", "brx": "bodo", "bs": "bosnisk", "bss": "bakossi", "bua": "burjatisk", "bug": "buginesisk", "byn": "blin", "ca": "katalansk", "cad": "caddo", "car": "carib", "cch": "atsam", "ce": "tsjetsjensk", "ceb": "cebuano", "cgg": "kiga", "ch": "chamorro", "chb": "chibcha", "chg": "tsjagataisk", "chk": "chuukesisk", "chm": "mari", "chn": "chinook", "cho": "choctaw", "chp": "chipewiansk", "chr": "cherokee", "chy": "cheyenne", "ckb": "sorani", "co": "korsikansk", "cop": "koptisk", "cr": "cree", "crh": "krimtatarisk", "crs": "seselwa (fransk-kreolsk)", "cs": "tsjekkisk", "csb": "kasjubisk", "cu": "kyrkjeslavisk", "cv": "tsjuvansk", "cy": "walisisk", "da": "dansk", "dak": "dakota", "dar": "dargwa", "dav": "taita", "de": "tysk", "de-AT": "tysk (Austerrike)", "de-CH": "tysk (Sveits)", "del": "delaware", "den": "slavej", "dgr": "dogrib", "din": "dinka", "dje": "zarma", "doi": "dogri", "dsb": "lågsorbisk", "dua": "duala", "dum": "mellomnederlandsk", "dv": "divehi", "dyo": "jola-fonyi", "dyu": "dyula", "dz": "dzongkha", "dzg": "dazaga", "ebu": "embu", "ee": "ewe", "efi": "efik", "egy": "gammalegyptisk", "eka": "ekajuk", "el": "gresk", "elx": "elamite", "en": "engelsk", "en-AU": "engelsk (Australia)", "en-CA": "engelsk (Canada)", "en-GB": "britisk engelsk", "en-US": "engelsk (USA)", "enm": "mellomengelsk", "eo": "esperanto", "es": "spansk", "es-419": "spansk (Latin-Amerika)", "es-ES": "spansk (Spania)", "es-MX": "spansk (Mexico)", "et": "estisk", "eu": "baskisk", "ewo": "ewondo", "fa": "persisk", "fan": "fang", "fat": "fanti", "ff": "fulfulde", "fi": "finsk", "fil": "filippinsk", "fj": "fijiansk", "fo": "færøysk", "fr": "fransk", "fr-CA": "fransk (Canada)", "fr-CH": "fransk (Sveits)", "frm": "mellomfransk", "fro": "gammalfransk", "frr": "nordfrisisk", "frs": "austfrisisk", "fur": "friulisk", "fy": "vestfrisisk", "ga": "irsk", "gaa": "ga", "gay": "gayo", "gba": "gbaya", "gd": "skotsk-gælisk", "gez": "geez", "gil": "gilbertese", "gl": "galicisk", "gmh": "mellomhøgtysk", "gn": "guarani", "goh": "gammalhøgtysk", "gon": "gondi", "gor": "gorontalo", "got": "gotisk", "grb": "grebo", "grc": "gammalgresk", "gsw": "sveitsertysk", "gu": "gujarati", "guz": "gusii", "gv": "manx", "gwi": "gwichin", "ha": "hausa", "hai": "haida", "haw": "hawaiisk", "he": "hebraisk", "hi": "hindi", "hil": "hiligaynon", "hit": "hettittisk", "hmn": "hmong", "ho": "hiri motu", "hr": "kroatisk", "hsb": "høgsorbisk", "ht": "haitisk", "hu": "ungarsk", "hup": "hupa", "hy": "armensk", "hz": "herero", "ia": "interlingua", "iba": "iban", "ibb": "ibibio", "id": "indonesisk", "ie": "interlingue", "ig": "ibo", "ii": "sichuan-yi", "ik": "inupiak", "ilo": "iloko", "inh": "ingusjisk", "io": "ido", "is": "islandsk", "it": "italiensk", "iu": "inuktitut", "ja": "japansk", "jbo": "lojban", "jgo": "ngomba", "jmc": "machame", "jpr": "jødepersisk", "jrb": "jødearabisk", "jv": "javanesisk", "ka": "georgisk", "kaa": "karakalpakisk", "kab": "kabyle", "kac": "kachin", "kaj": "jju", "kam": "kamba", "kaw": "kawi", "kbd": "kabardisk", "kcg": "tyap", "kde": "makonde", "kea": "kabuverdianu", "kfo": "koro", "kg": "kikongo", "kha": "khasi", "kho": "khotanesisk", "khq": "koyra chiini", "ki": "kikuyu", "kj": "kuanyama", "kk": "kasakhisk", "kkj": "kako", "kl": "grønlandsk (kalaallisut)", "kln": "kalenjin", "km": "khmer", "kmb": "kimbundu", "kn": "kannada", "ko": "koreansk", "kok": "konkani", "kos": "kosraeansk", "kpe": "kpelle", "kr": "kanuri", "krc": "karachay-balkar", "krl": "karelsk", "kru": "kurukh", "ks": "kasjmiri", "ksb": "shambala", "ksf": "bafia", "ksh": "kølnsk", "ku": "kurdisk", "kum": "kumyk", "kut": "kutenai", "kv": "komi", "kw": "kornisk", "ky": "kirgisisk", "la": "latin", "lad": "ladino", "lag": "langi", "lah": "lahnda", "lam": "lamba", "lb": "luxemburgsk", "lez": "lezghian", "lg": "ganda", "li": "limburgisk", "lkt": "lakota", "ln": "lingala", "lo": "laotisk", "lol": "mongo", "loz": "lozi", "lrc": "nord-lurisk", "lt": "litauisk", "lu": "luba-katanga", "lua": "luba-lulua", "lui": "luiseno", "lun": "lunda", "lus": "lushai", "luy": "olulujia", "lv": "latvisk", "mad": "maduresisk", "mag": "magahi", "mai": "maithili", "mak": "makasar", "man": "mandingo", "mas": "masai", "mdf": "moksha", "mdr": "mandar", "men": "mende", "mer": "meru", "mfe": "morisyen", "mg": "madagassisk", "mga": "mellomirsk", "mgh": "Makhuwa-Meetto", "mgo": "meta’", "mh": "marshallesisk", "mi": "maori", "mic": "micmac", "min": "minangkabau", "mk": "makedonsk", "ml": "malayalam", "mn": "mongolsk", "mnc": "mandsju", "mni": "manipuri", "moh": "mohawk", "mos": "mossi", "mr": "marathi", "ms": "malayisk", "mt": "maltesisk", "mua": "mundang", "mus": "creek", "mwl": "mirandesisk", "mwr": "marwari", "my": "burmesisk", "myv": "erzia", "mzn": "mazanderani", "na": "nauru", "nap": "napolitansk", "naq": "nama", "nb": "bokmål", "nd": "nord-ndebele", "nds": "lågtysk", "nds-NL": "lågsaksisk", "ne": "nepalsk", "new": "newari", "ng": "ndonga", "nia": "nias", "niu": "niuisk", "nl": "nederlandsk", "nl-BE": "flamsk", "nmg": "kwasio", "nn": "nynorsk", "nnh": "ngiemboon", "no": "norsk", "nog": "nogai", "non": "gammalnorsk", "nqo": "n’ko", "nr": "sør-ndebele", "nso": "nordsotho", "nus": "nuer", "nv": "navajo", "nwc": "klassisk newarisk", "ny": "nyanja", "nym": "nyamwezi", "nyn": "nyankole", "nyo": "nyoro", "nzi": "nzima", "oc": "oksitansk", "oj": "ojibwa", "om": "oromo", "or": "odia", "os": "ossetisk", "osa": "osage", "ota": "ottomansk tyrkisk", "pa": "panjabi", "pag": "pangasinan", "pal": "pahlavi", "pam": "pampanga", "pap": "papiamento", "pau": "palauisk", "pcm": "nigeriansk pidgin", "peo": "gammalpersisk", "phn": "fønikisk", "pi": "pali", "pl": "polsk", "pon": "ponapisk", "prg": "prøyssisk", "pro": "gammalprovençalsk", "ps": "pashto", "pt": "portugisisk", "pt-BR": "portugisisk (Brasil)", "pt-PT": "portugisisk (Portugal)", "qu": "quechua", "quc": "k’iche", "raj": "rajasthani", "rap": "rapanui", "rar": "rarotongansk", "rm": "retoromansk", "rn": "rundi", "ro": "rumensk", "ro-MD": "moldavisk", "rof": "rombo", "rom": "romani", "root": "rot", "ru": "russisk", "rup": "arumensk", "rw": "kinjarwanda", "rwk": "rwa", "sa": "sanskrit", "sad": "sandawe", "sah": "sakha", "sam": "samaritansk arameisk", "saq": "samburu", "sas": "sasak", "sat": "santali", "sba": "ngambay", "sbp": "sangu", "sc": "sardinsk", "scn": "siciliansk", "sco": "skotsk", "sd": "sindhi", "se": "nordsamisk", "seh": "sena", "sel": "selkupisk", "ses": "Koyraboro Senni", "sg": "sango", "sga": "gammalirsk", "sh": "serbokroatisk", "shi": "tachelhit", "shn": "shan", "si": "singalesisk", "sid": "sidamo", "sk": "slovakisk", "sl": "slovensk", "sm": "samoansk", "sma": "sørsamisk", "smj": "lulesamisk", "smn": "enaresamisk", "sms": "skoltesamisk", "sn": "shona", "snk": "soninke", "so": "somali", "sog": "sogdisk", "sq": "albansk", "sr": "serbisk", "srn": "sranan tongo", "srr": "serer", "ss": "swati", "ssy": "saho", "st": "sørsotho", "su": "sundanesisk", "suk": "sukuma", "sus": "susu", "sux": "sumerisk", "sv": "svensk", "sw": "swahili", "sw-CD": "swahili (Kongo-Kinshasa)", "swb": "shimaore", "syc": "klassisk syrisk", "syr": "syrisk", "ta": "tamil", "te": "telugu", "tem": "temne", "teo": "teso", "ter": "tereno", "tet": "tetum", "tg": "tadsjikisk", "th": "thai", "ti": "tigrinja", "tig": "tigré", "tiv": "tivi", "tk": "turkmensk", "tkl": "tokelau", "tl": "tagalog", "tlh": "klingon", "tli": "tlingit", "tmh": "tamasjek", "tn": "tswana", "to": "tongansk", "tog": "tonga (Nyasa)", "tpi": "tok pisin", "tr": "tyrkisk", "trv": "taroko", "ts": "tsonga", "tsi": "tsimshian", "tt": "tatarisk", "tum": "tumbuka", "tvl": "tuvalu", "tw": "twi", "twq": "tasawaq", "ty": "tahitisk", "tyv": "tuvinisk", "tzm": "sentral-tamazight", "udm": "udmurt", "ug": "uigurisk", "uga": "ugaritisk", "uk": "ukrainsk", "umb": "umbundu", "ur": "urdu", "uz": "usbekisk", "ve": "venda", "vi": "vietnamesisk", "vo": "volapyk", "vot": "votisk", "vun": "vunjo", "wa": "vallonsk", "wae": "walsertysk", "wal": "wolaytta", "war": "waray", "was": "washo", "wo": "wolof", "xal": "kalmykisk", "xh": "xhosa", "xog": "soga", "yap": "yapesisk", "yav": "yangben", "ybb": "yemba", "yi": "jiddisk", "yo": "joruba", "yue": "kantonesisk", "za": "zhuang", "zap": "zapotec", "zbl": "blissymbol", "zen": "zenaga", "zgh": "standard marokkansk tamazight", "zh": "kinesisk", "zh-Hans": "forenkla kinesisk", "zh-Hant": "tradisjonell kinesisk", "zu": "zulu", "zun": "zuni", "zza": "zaza"}, "scriptNames": {"Cyrl": "kyrillisk", "Latn": "latinsk", "Arab": "arabisk", "Guru": "gurmukhi", "Tfng": "tifinagh", "Vaii": "vai", "Hans": "forenkla", "Hant": "tradisjonell"}}, + "no": {"rtl": false, "languageNames": {}, "scriptNames": {}}, + "nv": {"rtl": false, "languageNames": {}, "scriptNames": {}}, + "pap": {"rtl": false, "languageNames": {}, "scriptNames": {}}, + "pl": {"rtl": false, "languageNames": {"aa": "afar", "ab": "abchaski", "ace": "aceh", "ach": "aczoli", "ada": "adangme", "ady": "adygejski", "ae": "awestyjski", "aeb": "tunezyjski arabski", "af": "afrikaans", "afh": "afrihili", "agq": "aghem", "ain": "ajnu", "ak": "akan", "akk": "akadyjski", "akz": "alabama", "ale": "aleucki", "aln": "albański gegijski", "alt": "południowoałtajski", "am": "amharski", "an": "aragoński", "ang": "staroangielski", "anp": "angika", "ar": "arabski", "ar-001": "współczesny arabski", "arc": "aramejski", "arn": "mapudungun", "aro": "araona", "arp": "arapaho", "arq": "algierski arabski", "ars": "arabski nadżdyjski", "arw": "arawak", "ary": "marokański arabski", "arz": "egipski arabski", "as": "asamski", "asa": "asu", "ase": "amerykański język migowy", "ast": "asturyjski", "av": "awarski", "avk": "kotava", "awa": "awadhi", "ay": "ajmara", "az": "azerbejdżański", "ba": "baszkirski", "bal": "beludżi", "ban": "balijski", "bar": "bawarski", "bas": "basaa", "bax": "bamum", "bbc": "batak toba", "bbj": "ghomala", "be": "białoruski", "bej": "bedża", "bem": "bemba", "bew": "betawi", "bez": "bena", "bfd": "bafut", "bfq": "badaga", "bg": "bułgarski", "bgn": "beludżi północny", "bho": "bhodżpuri", "bi": "bislama", "bik": "bikol", "bin": "bini", "bjn": "banjar", "bkm": "kom", "bla": "siksika", "bm": "bambara", "bn": "bengalski", "bo": "tybetański", "bpy": "bisznuprija-manipuri", "bqi": "bachtiarski", "br": "bretoński", "bra": "bradź", "brh": "brahui", "brx": "bodo", "bs": "bośniacki", "bss": "akoose", "bua": "buriacki", "bug": "bugijski", "bum": "bulu", "byn": "blin", "byv": "medumba", "ca": "kataloński", "cad": "kaddo", "car": "karaibski", "cay": "kajuga", "cch": "atsam", "ccp": "czakma", "ce": "czeczeński", "ceb": "cebuano", "cgg": "chiga", "ch": "czamorro", "chb": "czibcza", "chg": "czagatajski", "chk": "chuuk", "chm": "maryjski", "chn": "żargon czinucki", "cho": "czoktawski", "chp": "czipewiański", "chr": "czirokeski", "chy": "czejeński", "ckb": "sorani", "co": "korsykański", "cop": "koptyjski", "cps": "capiznon", "cr": "kri", "crh": "krymskotatarski", "crs": "kreolski seszelski", "cs": "czeski", "csb": "kaszubski", "cu": "cerkiewnosłowiański", "cv": "czuwaski", "cy": "walijski", "da": "duński", "dak": "dakota", "dar": "dargwijski", "dav": "taita", "de": "niemiecki", "de-AT": "austriacki niemiecki", "de-CH": "szwajcarski wysokoniemiecki", "del": "delaware", "den": "slave", "dgr": "dogrib", "din": "dinka", "dje": "dżerma", "doi": "dogri", "dsb": "dolnołużycki", "dtp": "dusun centralny", "dua": "duala", "dum": "średniowieczny niderlandzki", "dv": "malediwski", "dyo": "diola", "dyu": "diula", "dz": "dzongkha", "dzg": "dazaga", "ebu": "embu", "ee": "ewe", "efi": "efik", "egl": "emilijski", "egy": "staroegipski", "eka": "ekajuk", "el": "grecki", "elx": "elamicki", "en": "angielski", "en-AU": "australijski angielski", "en-CA": "kanadyjski angielski", "en-GB": "brytyjski angielski", "en-US": "amerykański angielski", "enm": "średnioangielski", "eo": "esperanto", "es": "hiszpański", "es-419": "amerykański hiszpański", "es-ES": "europejski hiszpański", "es-MX": "meksykański hiszpański", "esu": "yupik środkowosyberyjski", "et": "estoński", "eu": "baskijski", "ewo": "ewondo", "ext": "estremadurski", "fa": "perski", "fan": "fang", "fat": "fanti", "ff": "fulani", "fi": "fiński", "fil": "filipino", "fit": "meänkieli", "fj": "fidżijski", "fo": "farerski", "fr": "francuski", "fr-CA": "kanadyjski francuski", "fr-CH": "szwajcarski francuski", "frc": "cajuński", "frm": "średniofrancuski", "fro": "starofrancuski", "frp": "franko-prowansalski", "frr": "północnofryzyjski", "frs": "wschodniofryzyjski", "fur": "friulski", "fy": "zachodniofryzyjski", "ga": "irlandzki", "gaa": "ga", "gag": "gagauski", "gay": "gayo", "gba": "gbaya", "gbz": "zaratusztriański dari", "gd": "szkocki gaelicki", "gez": "gyyz", "gil": "gilbertański", "gl": "galicyjski", "glk": "giliański", "gmh": "średnio-wysoko-niemiecki", "gn": "guarani", "goh": "staro-wysoko-niemiecki", "gom": "konkani (Goa)", "gon": "gondi", "gor": "gorontalo", "got": "gocki", "grb": "grebo", "grc": "starogrecki", "gsw": "szwajcarski niemiecki", "gu": "gudżarati", "guc": "wayúu", "gur": "frafra", "guz": "gusii", "gv": "manx", "gwi": "gwichʼin", "ha": "hausa", "hai": "haida", "hak": "hakka", "haw": "hawajski", "he": "hebrajski", "hi": "hindi", "hif": "hindi fidżyjskie", "hil": "hiligaynon", "hit": "hetycki", "hmn": "hmong", "ho": "hiri motu", "hr": "chorwacki", "hsb": "górnołużycki", "hsn": "xiang", "ht": "kreolski haitański", "hu": "węgierski", "hup": "hupa", "hy": "ormiański", "hz": "herero", "ia": "interlingua", "iba": "iban", "ibb": "ibibio", "id": "indonezyjski", "ie": "interlingue", "ig": "igbo", "ii": "syczuański", "ik": "inupiak", "ilo": "ilokano", "inh": "inguski", "io": "ido", "is": "islandzki", "it": "włoski", "iu": "inuktitut", "izh": "ingryjski", "ja": "japoński", "jam": "jamajski", "jbo": "lojban", "jgo": "ngombe", "jmc": "machame", "jpr": "judeo-perski", "jrb": "judeoarabski", "jut": "jutlandzki", "jv": "jawajski", "ka": "gruziński", "kaa": "karakałpacki", "kab": "kabylski", "kac": "kaczin", "kaj": "jju", "kam": "kamba", "kaw": "kawi", "kbd": "kabardyjski", "kbl": "kanembu", "kcg": "tyap", "kde": "makonde", "kea": "kreolski Wysp Zielonego Przylądka", "ken": "kenyang", "kfo": "koro", "kg": "kongo", "kgp": "kaingang", "kha": "khasi", "kho": "chotański", "khq": "koyra chiini", "khw": "khowar", "ki": "kikuju", "kiu": "kirmandżki", "kj": "kwanyama", "kk": "kazachski", "kkj": "kako", "kl": "grenlandzki", "kln": "kalenjin", "km": "khmerski", "kmb": "kimbundu", "kn": "kannada", "ko": "koreański", "koi": "komi-permiacki", "kok": "konkani", "kos": "kosrae", "kpe": "kpelle", "kr": "kanuri", "krc": "karaczajsko-bałkarski", "kri": "krio", "krj": "kinaraya", "krl": "karelski", "kru": "kurukh", "ks": "kaszmirski", "ksb": "sambala", "ksf": "bafia", "ksh": "gwara kolońska", "ku": "kurdyjski", "kum": "kumycki", "kut": "kutenai", "kv": "komi", "kw": "kornijski", "ky": "kirgiski", "la": "łaciński", "lad": "ladyński", "lag": "langi", "lah": "lahnda", "lam": "lamba", "lb": "luksemburski", "lez": "lezgijski", "lfn": "Lingua Franca Nova", "lg": "ganda", "li": "limburski", "lij": "liguryjski", "liv": "liwski", "lkt": "lakota", "lmo": "lombardzki", "ln": "lingala", "lo": "laotański", "lol": "mongo", "lou": "kreolski luizjański", "loz": "lozi", "lrc": "luryjski północny", "lt": "litewski", "ltg": "łatgalski", "lu": "luba-katanga", "lua": "luba-lulua", "lui": "luiseno", "lun": "lunda", "lus": "mizo", "luy": "luhya", "lv": "łotewski", "lzh": "chiński klasyczny", "lzz": "lazyjski", "mad": "madurski", "maf": "mafa", "mag": "magahi", "mai": "maithili", "mak": "makasar", "man": "mandingo", "mas": "masajski", "mde": "maba", "mdf": "moksza", "mdr": "mandar", "men": "mende", "mer": "meru", "mfe": "kreolski Mauritiusa", "mg": "malgaski", "mga": "średnioirlandzki", "mgh": "makua", "mgo": "meta", "mh": "marszalski", "mi": "maoryjski", "mic": "mikmak", "min": "minangkabu", "mk": "macedoński", "ml": "malajalam", "mn": "mongolski", "mnc": "manchu", "mni": "manipuri", "moh": "mohawk", "mos": "mossi", "mr": "marathi", "mrj": "zachodniomaryjski", "ms": "malajski", "mt": "maltański", "mua": "mundang", "mus": "krik", "mwl": "mirandyjski", "mwr": "marwari", "mwv": "mentawai", "my": "birmański", "mye": "myene", "myv": "erzja", "mzn": "mazanderański", "na": "nauruański", "nan": "minnański", "nap": "neapolitański", "naq": "nama", "nb": "norweski (bokmål)", "nd": "ndebele północny", "nds": "dolnoniemiecki", "nds-NL": "dolnosaksoński", "ne": "nepalski", "new": "newarski", "ng": "ndonga", "nia": "nias", "niu": "niue", "njo": "ao", "nl": "niderlandzki", "nl-BE": "flamandzki", "nmg": "ngumba", "nn": "norweski (nynorsk)", "nnh": "ngiemboon", "no": "norweski", "nog": "nogajski", "non": "staronordyjski", "nov": "novial", "nqo": "n’ko", "nr": "ndebele południowy", "nso": "sotho północny", "nus": "nuer", "nv": "nawaho", "nwc": "newarski klasyczny", "ny": "njandża", "nym": "niamwezi", "nyn": "nyankole", "nyo": "nyoro", "nzi": "nzema", "oc": "oksytański", "oj": "odżibwa", "om": "oromo", "or": "orija", "os": "osetyjski", "osa": "osage", "ota": "osmańsko-turecki", "pa": "pendżabski", "pag": "pangasinan", "pal": "pahlavi", "pam": "pampango", "pap": "papiamento", "pau": "palau", "pcd": "pikardyjski", "pcm": "pidżyn nigeryjski", "pdc": "pensylwański", "pdt": "plautdietsch", "peo": "staroperski", "pfl": "palatynacki", "phn": "fenicki", "pi": "palijski", "pl": "polski", "pms": "piemoncki", "pnt": "pontyjski", "pon": "ponpejski", "prg": "pruski", "pro": "staroprowansalski", "ps": "paszto", "pt": "portugalski", "pt-BR": "brazylijski portugalski", "pt-PT": "europejski portugalski", "qu": "keczua", "quc": "kicze", "qug": "keczua górski (Chimborazo)", "raj": "radźasthani", "rap": "rapanui", "rar": "rarotonga", "rgn": "romagnol", "rif": "tarifit", "rm": "retoromański", "rn": "rundi", "ro": "rumuński", "ro-MD": "mołdawski", "rof": "rombo", "rom": "cygański", "root": "język rdzenny", "rtm": "rotumański", "ru": "rosyjski", "rue": "rusiński", "rug": "roviana", "rup": "arumuński", "rw": "kinya-ruanda", "rwk": "rwa", "sa": "sanskryt", "sad": "sandawe", "sah": "jakucki", "sam": "samarytański aramejski", "saq": "samburu", "sas": "sasak", "sat": "santali", "saz": "saurasztryjski", "sba": "ngambay", "sbp": "sangu", "sc": "sardyński", "scn": "sycylijski", "sco": "scots", "sd": "sindhi", "sdc": "sassarski", "sdh": "południowokurdyjski", "se": "północnolapoński", "see": "seneka", "seh": "sena", "sei": "seri", "sel": "selkupski", "ses": "koyraboro senni", "sg": "sango", "sga": "staroirlandzki", "sgs": "żmudzki", "sh": "serbsko-chorwacki", "shi": "tashelhiyt", "shn": "szan", "shu": "arabski (Czad)", "si": "syngaleski", "sid": "sidamo", "sk": "słowacki", "sl": "słoweński", "sli": "dolnośląski", "sly": "selayar", "sm": "samoański", "sma": "południowolapoński", "smj": "lule", "smn": "inari", "sms": "skolt", "sn": "shona", "snk": "soninke", "so": "somalijski", "sog": "sogdyjski", "sq": "albański", "sr": "serbski", "srn": "sranan tongo", "srr": "serer", "ss": "suazi", "ssy": "saho", "st": "sotho południowy", "stq": "fryzyjski saterlandzki", "su": "sundajski", "suk": "sukuma", "sus": "susu", "sux": "sumeryjski", "sv": "szwedzki", "sw": "suahili", "sw-CD": "kongijski suahili", "swb": "komoryjski", "syc": "syriacki", "syr": "syryjski", "szl": "śląski", "ta": "tamilski", "tcy": "tulu", "te": "telugu", "tem": "temne", "teo": "ateso", "ter": "tereno", "tet": "tetum", "tg": "tadżycki", "th": "tajski", "ti": "tigrinia", "tig": "tigre", "tiv": "tiw", "tk": "turkmeński", "tkl": "tokelau", "tkr": "cachurski", "tl": "tagalski", "tlh": "klingoński", "tli": "tlingit", "tly": "tałyski", "tmh": "tamaszek", "tn": "setswana", "to": "tonga", "tog": "tonga (Niasa)", "tpi": "tok pisin", "tr": "turecki", "tru": "turoyo", "trv": "taroko", "ts": "tsonga", "tsd": "cakoński", "tsi": "tsimshian", "tt": "tatarski", "ttt": "tacki", "tum": "tumbuka", "tvl": "tuvalu", "tw": "twi", "twq": "tasawaq", "ty": "tahitański", "tyv": "tuwiński", "tzm": "tamazight (Atlas Środkowy)", "udm": "udmurcki", "ug": "ujgurski", "uga": "ugarycki", "uk": "ukraiński", "umb": "umbundu", "ur": "urdu", "uz": "uzbecki", "vai": "wai", "ve": "venda", "vec": "wenecki", "vep": "wepski", "vi": "wietnamski", "vls": "zachodnioflamandzki", "vmf": "meński frankoński", "vo": "wolapik", "vot": "wotiacki", "vro": "võro", "vun": "vunjo", "wa": "waloński", "wae": "walser", "wal": "wolayta", "war": "waraj", "was": "washo", "wbp": "warlpiri", "wo": "wolof", "wuu": "wu", "xal": "kałmucki", "xh": "khosa", "xmf": "megrelski", "xog": "soga", "yap": "japski", "yav": "yangben", "ybb": "yemba", "yi": "jidysz", "yo": "joruba", "yrl": "nheengatu", "yue": "kantoński", "za": "czuang", "zap": "zapotecki", "zbl": "bliss", "zea": "zelandzki", "zen": "zenaga", "zgh": "standardowy marokański tamazight", "zh": "chiński", "zh-Hans": "chiński uproszczony", "zh-Hant": "chiński tradycyjny", "zu": "zulu", "zun": "zuni", "zza": "zazaki"}, "scriptNames": {"Cyrl": "cyrylica", "Latn": "łacińskie", "Arab": "arabskie", "Guru": "gurmukhi", "Tfng": "tifinagh (berberski)", "Vaii": "vai", "Hans": "uproszczone", "Hant": "tradycyjne"}}, + "pt": {"rtl": false, "languageNames": {"aa": "afar", "ab": "abcázio", "ace": "achém", "ach": "acoli", "ada": "adangme", "ady": "adigue", "ae": "avéstico", "af": "africanês", "afh": "afrihili", "agq": "aghem", "ain": "ainu", "ak": "akan", "akk": "acadiano", "ale": "aleúte", "alt": "altai do sul", "am": "amárico", "an": "aragonês", "ang": "inglês antigo", "anp": "angika", "ar": "árabe", "ar-001": "árabe moderno padrão", "arc": "aramaico", "arn": "mapuche", "arp": "arapaho", "ars": "árabe do Négede", "arw": "arauaqui", "as": "assamês", "asa": "asu", "ast": "asturiano", "av": "avaric", "awa": "awadhi", "ay": "aimará", "az": "azerbaijano", "az-Arab": "azeri sul", "ba": "bashkir", "bal": "balúchi", "ban": "balinês", "bas": "basa", "bax": "bamun", "bbj": "ghomala", "be": "bielorrusso", "bej": "beja", "bem": "bemba", "bez": "bena", "bfd": "bafut", "bg": "búlgaro", "bgn": "balúchi ocidental", "bho": "bhojpuri", "bi": "bislamá", "bik": "bikol", "bin": "bini", "bkm": "kom", "bla": "siksika", "bm": "bambara", "bn": "bengalês", "bo": "tibetano", "br": "bretão", "bra": "braj", "brx": "bodo", "bs": "bósnio", "bss": "akoose", "bua": "buriat", "bug": "buginês", "bum": "bulu", "byn": "blin", "byv": "medumba", "ca": "catalão", "cad": "caddo", "car": "caribe", "cay": "cayuga", "cch": "atsam", "ccp": "Chakma", "ce": "checheno", "ceb": "cebuano", "cgg": "chiga", "ch": "chamorro", "chb": "chibcha", "chg": "chagatai", "chk": "chuquês", "chm": "mari", "chn": "jargão chinook", "cho": "choctaw", "chp": "chipewyan", "chr": "cherokee", "chy": "cheyenne", "ckb": "sorani curdo", "co": "córsico", "cop": "copta", "cr": "cree", "crh": "turco da Crimeia", "crs": "francês crioulo seselwa", "cs": "checo", "csb": "kashubian", "cu": "eslavo eclesiástico", "cv": "chuvash", "cy": "galês", "da": "dinamarquês", "dak": "dacota", "dar": "dargwa", "dav": "taita", "de": "alemão", "de-AT": "alemão austríaco", "de-CH": "alto alemão suíço", "del": "delaware", "den": "slave", "dgr": "dogrib", "din": "dinka", "dje": "zarma", "doi": "dogri", "dsb": "baixo sorábio", "dua": "duala", "dum": "holandês médio", "dv": "divehi", "dyo": "jola-fonyi", "dyu": "diúla", "dz": "dzonga", "dzg": "dazaga", "ebu": "embu", "ee": "ewe", "efi": "efik", "egy": "egípcio clássico", "eka": "ekajuk", "el": "grego", "elx": "elamite", "en": "inglês", "en-AU": "inglês australiano", "en-CA": "inglês canadiano", "en-GB": "inglês britânico", "en-US": "inglês americano", "enm": "inglês médio", "eo": "esperanto", "es": "espanhol", "es-419": "espanhol latino-americano", "es-ES": "espanhol europeu", "es-MX": "espanhol mexicano", "et": "estónio", "eu": "basco", "ewo": "ewondo", "fa": "persa", "fan": "fangue", "fat": "fanti", "ff": "fula", "fi": "finlandês", "fil": "filipino", "fj": "fijiano", "fo": "feroês", "fr": "francês", "fr-CA": "francês canadiano", "fr-CH": "francês suíço", "frc": "francês cajun", "frm": "francês médio", "fro": "francês antigo", "frr": "frísio setentrional", "frs": "frísio oriental", "fur": "friulano", "fy": "frísico ocidental", "ga": "irlandês", "gaa": "ga", "gag": "gagauz", "gay": "gayo", "gba": "gbaia", "gd": "gaélico escocês", "gez": "geʼez", "gil": "gilbertês", "gl": "galego", "gmh": "alto alemão médio", "gn": "guarani", "goh": "alemão alto antigo", "gon": "gondi", "gor": "gorontalo", "got": "gótico", "grb": "grebo", "grc": "grego clássico", "gsw": "alemão suíço", "gu": "guzerate", "guz": "gusii", "gv": "manx", "gwi": "gwichʼin", "ha": "haúça", "hai": "haida", "hak": "hacá", "haw": "havaiano", "he": "hebraico", "hi": "hindi", "hil": "hiligaynon", "hit": "hitita", "hmn": "hmong", "ho": "hiri motu", "hr": "croata", "hsb": "alto sorábio", "hsn": "xiang", "ht": "haitiano", "hu": "húngaro", "hup": "hupa", "hy": "arménio", "hz": "herero", "ia": "interlíngua", "iba": "iban", "ibb": "ibibio", "id": "indonésio", "ie": "interlingue", "ig": "igbo", "ii": "sichuan yi", "ik": "inupiaque", "ilo": "ilocano", "inh": "inguche", "io": "ido", "is": "islandês", "it": "italiano", "iu": "inuktitut", "ja": "japonês", "jbo": "lojban", "jgo": "nguemba", "jmc": "machame", "jpr": "judaico-persa", "jrb": "judaico-arábico", "jv": "javanês", "ka": "georgiano", "kaa": "kara-kalpak", "kab": "kabyle", "kac": "kachin", "kaj": "jju", "kam": "kamba", "kaw": "kawi", "kbd": "cabardiano", "kbl": "kanembu", "kcg": "tyap", "kde": "maconde", "kea": "crioulo cabo-verdiano", "kfo": "koro", "kg": "congolês", "kha": "khasi", "kho": "khotanês", "khq": "koyra chiini", "ki": "quicuio", "kj": "cuanhama", "kk": "cazaque", "kkj": "kako", "kl": "gronelandês", "kln": "kalenjin", "km": "khmer", "kmb": "quimbundo", "kn": "canarim", "ko": "coreano", "koi": "komi-permyak", "kok": "concani", "kos": "kosraean", "kpe": "kpelle", "kr": "canúri", "krc": "carachaio-bálcaro", "krl": "carélio", "kru": "kurukh", "ks": "caxemira", "ksb": "shambala", "ksf": "bafia", "ksh": "kölsch", "ku": "curdo", "kum": "kumyk", "kut": "kutenai", "kv": "komi", "kw": "córnico", "ky": "quirguiz", "la": "latim", "lad": "ladino", "lag": "langi", "lah": "lahnda", "lam": "lamba", "lb": "luxemburguês", "lez": "lezghiano", "lg": "ganda", "li": "limburguês", "lkt": "lacota", "ln": "lingala", "lo": "laosiano", "lol": "mongo", "lou": "crioulo de Louisiana", "loz": "lozi", "lrc": "luri do norte", "lt": "lituano", "lu": "luba-catanga", "lua": "luba-lulua", "lui": "luiseno", "lun": "lunda", "lus": "lushai", "luy": "luyia", "lv": "letão", "mad": "madurês", "maf": "mafa", "mag": "magahi", "mai": "maithili", "mak": "makassarês", "man": "mandinga", "mas": "massai", "mde": "maba", "mdf": "mocsa", "mdr": "mandar", "men": "mende", "mer": "meru", "mfe": "morisyen", "mg": "malgaxe", "mga": "irlandês médio", "mgh": "macua", "mgo": "meta’", "mh": "marshalês", "mi": "maori", "mic": "miquemaque", "min": "minangkabau", "mk": "macedónio", "ml": "malaiala", "mn": "mongol", "mnc": "manchu", "mni": "manipuri", "moh": "mohawk", "mos": "mossi", "mr": "marata", "ms": "malaio", "mt": "maltês", "mua": "mundang", "mus": "creek", "mwl": "mirandês", "mwr": "marwari", "my": "birmanês", "mye": "myene", "myv": "erzya", "mzn": "mazandarani", "na": "nauruano", "nan": "min nan", "nap": "napolitano", "naq": "nama", "nb": "norueguês bokmål", "nd": "ndebele do norte", "nds": "baixo-alemão", "nds-NL": "baixo-saxão", "ne": "nepalês", "new": "newari", "ng": "dongo", "nia": "nias", "niu": "niueano", "nl": "neerlandês", "nl-BE": "flamengo", "nmg": "kwasio", "nn": "norueguês nynorsk", "nnh": "ngiemboon", "no": "norueguês", "nog": "nogai", "non": "nórdico antigo", "nqo": "n’ko", "nr": "ndebele do sul", "nso": "soto setentrional", "nus": "nuer", "nv": "navajo", "nwc": "newari clássico", "ny": "nianja", "nym": "nyamwezi", "nyn": "nyankole", "nyo": "nyoro", "nzi": "nzima", "oc": "occitano", "oj": "ojibwa", "om": "oromo", "or": "oriya", "os": "ossético", "osa": "osage", "ota": "turco otomano", "pa": "panjabi", "pag": "língua pangasinesa", "pal": "pálavi", "pam": "pampango", "pap": "papiamento", "pau": "palauano", "pcm": "pidgin nigeriano", "peo": "persa antigo", "phn": "fenício", "pi": "páli", "pl": "polaco", "pon": "língua pohnpeica", "prg": "prussiano", "pro": "provençal antigo", "ps": "pastó", "pt": "português", "pt-BR": "português do Brasil", "pt-PT": "português europeu", "qu": "quíchua", "quc": "quiché", "raj": "rajastanês", "rap": "rapanui", "rar": "rarotongano", "rm": "romanche", "rn": "rundi", "ro": "romeno", "ro-MD": "moldávio", "rof": "rombo", "rom": "romani", "ru": "russo", "rup": "aromeno", "rw": "quiniaruanda", "rwk": "rwa", "sa": "sânscrito", "sad": "sandawe", "sah": "sakha", "sam": "aramaico samaritano", "saq": "samburu", "sas": "sasak", "sat": "santali", "sba": "ngambay", "sbp": "sangu", "sc": "sardo", "scn": "siciliano", "sco": "scots", "sd": "sindi", "sdh": "curdo meridional", "se": "sami do norte", "see": "seneca", "seh": "sena", "sel": "selkup", "ses": "koyraboro senni", "sg": "sango", "sga": "irlandês antigo", "sh": "servo-croata", "shi": "tachelhit", "shn": "shan", "shu": "árabe do Chade", "si": "cingalês", "sid": "sidamo", "sk": "eslovaco", "sl": "esloveno", "sm": "samoano", "sma": "sami do sul", "smj": "sami de Lule", "smn": "inari sami", "sms": "sami de Skolt", "sn": "shona", "snk": "soninquê", "so": "somali", "sog": "sogdiano", "sq": "albanês", "sr": "sérvio", "srn": "surinamês", "srr": "serere", "ss": "suázi", "ssy": "saho", "st": "soto do sul", "su": "sundanês", "suk": "sukuma", "sus": "susu", "sux": "sumério", "sv": "sueco", "sw": "suaíli", "sw-CD": "suaíli do Congo", "swb": "comoriano", "syc": "siríaco clássico", "syr": "siríaco", "ta": "tâmil", "te": "telugu", "tem": "temne", "teo": "teso", "ter": "tereno", "tet": "tétum", "tg": "tajique", "th": "tailandês", "ti": "tigrínia", "tig": "tigré", "tk": "turcomano", "tkl": "toquelauano", "tl": "tagalo", "tlh": "klingon", "tli": "tlinguite", "tmh": "tamaxeque", "tn": "tswana", "to": "tonga", "tog": "tonganês de Nyasa", "tpi": "tok pisin", "tr": "turco", "trv": "taroko", "ts": "tsonga", "tsi": "tsimshiano", "tt": "tatar", "tum": "tumbuka", "tvl": "tuvaluano", "tw": "twi", "twq": "tasawaq", "ty": "taitiano", "tyv": "tuviniano", "tzm": "tamazight do Atlas Central", "udm": "udmurte", "ug": "uigur", "uga": "ugarítico", "uk": "ucraniano", "umb": "umbundu", "ur": "urdu", "uz": "usbeque", "ve": "venda", "vi": "vietnamita", "vo": "volapuque", "vot": "vótico", "vun": "vunjo", "wa": "valão", "wae": "walser", "wal": "wolaytta", "war": "waray", "was": "washo", "wbp": "warlpiri", "wo": "uólofe", "wuu": "wu", "xal": "kalmyk", "xh": "xosa", "xog": "soga", "yap": "yapese", "yav": "yangben", "ybb": "yemba", "yi": "iídiche", "yo": "ioruba", "yue": "cantonês", "za": "zhuang", "zap": "zapoteco", "zbl": "símbolos blis", "zen": "zenaga", "zgh": "tamazight marroquino padrão", "zh": "chinês", "zh-Hans": "chinês simplificado", "zh-Hant": "chinês tradicional", "zu": "zulu", "zun": "zuni", "zza": "zaza"}, "scriptNames": {"Cyrl": "cirílico", "Latn": "latim", "Arab": "árabe", "Guru": "gurmuqui", "Tfng": "tifinagh", "Vaii": "vai", "Hans": "simplificado", "Hant": "tradicional"}}, + "pt-BR": {"rtl": false, "languageNames": {"aa": "afar", "ab": "abcázio", "ace": "achém", "ach": "acoli", "ada": "adangme", "ady": "adigue", "ae": "avéstico", "af": "africâner", "afh": "afrihili", "agq": "aghem", "ain": "ainu", "ak": "akan", "akk": "acadiano", "ale": "aleúte", "alt": "altai meridional", "am": "amárico", "an": "aragonês", "ang": "inglês arcaico", "anp": "angika", "ar": "árabe", "ar-001": "árabe moderno", "arc": "aramaico", "arn": "mapudungun", "arp": "arapaho", "ars": "árabe négede", "arw": "arauaqui", "as": "assamês", "asa": "asu", "ast": "asturiano", "av": "avárico", "awa": "awadhi", "ay": "aimará", "az": "azerbaijano", "az-Arab": "azeri sul", "ba": "bashkir", "bal": "balúchi", "ban": "balinês", "bas": "basa", "bax": "bamum", "bbj": "ghomala’", "be": "bielorrusso", "bej": "beja", "bem": "bemba", "bez": "bena", "bfd": "bafut", "bg": "búlgaro", "bgn": "balúchi ocidental", "bho": "bhojpuri", "bi": "bislamá", "bik": "bikol", "bin": "bini", "bkm": "kom", "bla": "siksika", "bm": "bambara", "bn": "bengali", "bo": "tibetano", "br": "bretão", "bra": "braj", "brx": "bodo", "bs": "bósnio", "bss": "akoose", "bua": "buriato", "bug": "buginês", "bum": "bulu", "byn": "blin", "byv": "medumba", "ca": "catalão", "cad": "caddo", "car": "caribe", "cay": "cayuga", "cch": "atsam", "ccp": "Chakma", "ce": "checheno", "ceb": "cebuano", "cgg": "chiga", "ch": "chamorro", "chb": "chibcha", "chg": "chagatai", "chk": "chuukese", "chm": "mari", "chn": "jargão Chinook", "cho": "choctaw", "chp": "chipewyan", "chr": "cheroqui", "chy": "cheiene", "ckb": "curdo central", "co": "corso", "cop": "copta", "cr": "cree", "crh": "turco da Crimeia", "crs": "crioulo francês seichelense", "cs": "tcheco", "csb": "kashubian", "cu": "eslavo eclesiástico", "cv": "tchuvache", "cy": "galês", "da": "dinamarquês", "dak": "dacota", "dar": "dargwa", "dav": "taita", "de": "alemão", "de-AT": "alemão (Áustria)", "de-CH": "alto alemão (Suíça)", "del": "delaware", "den": "slave", "dgr": "dogrib", "din": "dinka", "dje": "zarma", "doi": "dogri", "dsb": "baixo sorábio", "dua": "duala", "dum": "holandês médio", "dv": "divehi", "dyo": "jola-fonyi", "dyu": "diúla", "dz": "dzonga", "dzg": "dazaga", "ebu": "embu", "ee": "eve", "efi": "efique", "egy": "egípcio arcaico", "eka": "ekajuk", "el": "grego", "elx": "elamite", "en": "inglês", "en-AU": "inglês (Austrália)", "en-CA": "inglês (Canadá)", "en-GB": "inglês (Reino Unido)", "en-US": "inglês (Estados Unidos)", "enm": "inglês médio", "eo": "esperanto", "es": "espanhol", "es-419": "espanhol (América Latina)", "es-ES": "espanhol (Espanha)", "es-MX": "espanhol (México)", "et": "estoniano", "eu": "basco", "ewo": "ewondo", "fa": "persa", "fan": "fangue", "fat": "fanti", "ff": "fula", "fi": "finlandês", "fil": "filipino", "fj": "fijiano", "fo": "feroês", "fon": "fom", "fr": "francês", "fr-CA": "francês (Canadá)", "fr-CH": "francês (Suíça)", "frc": "francês cajun", "frm": "francês médio", "fro": "francês arcaico", "frr": "frísio setentrional", "frs": "frisão oriental", "fur": "friulano", "fy": "frísio ocidental", "ga": "irlandês", "gaa": "ga", "gag": "gagauz", "gay": "gayo", "gba": "gbaia", "gd": "gaélico escocês", "gez": "geez", "gil": "gilbertês", "gl": "galego", "gmh": "alto alemão médio", "gn": "guarani", "goh": "alemão arcaico alto", "gon": "gondi", "gor": "gorontalo", "got": "gótico", "grb": "grebo", "grc": "grego arcaico", "gsw": "alemão (Suíça)", "gu": "guzerate", "guz": "gusii", "gv": "manx", "gwi": "gwichʼin", "ha": "hauçá", "hai": "haida", "hak": "hacá", "haw": "havaiano", "he": "hebraico", "hi": "híndi", "hil": "hiligaynon", "hit": "hitita", "hmn": "hmong", "ho": "hiri motu", "hr": "croata", "hsb": "alto sorábio", "hsn": "xiang", "ht": "haitiano", "hu": "húngaro", "hup": "hupa", "hy": "armênio", "hz": "herero", "ia": "interlíngua", "iba": "iban", "ibb": "ibibio", "id": "indonésio", "ie": "interlingue", "ig": "igbo", "ii": "sichuan yi", "ik": "inupiaque", "ilo": "ilocano", "inh": "inguche", "io": "ido", "is": "islandês", "it": "italiano", "iu": "inuktitut", "ja": "japonês", "jbo": "lojban", "jgo": "nguemba", "jmc": "machame", "jpr": "judaico-persa", "jrb": "judaico-arábico", "jv": "javanês", "ka": "georgiano", "kaa": "kara-kalpak", "kab": "kabyle", "kac": "kachin", "kaj": "jju", "kam": "kamba", "kaw": "kawi", "kbd": "kabardiano", "kbl": "kanembu", "kcg": "tyap", "kde": "maconde", "kea": "crioulo cabo-verdiano", "kfo": "koro", "kg": "congolês", "kha": "khasi", "kho": "khotanês", "khq": "koyra chiini", "ki": "quicuio", "kj": "cuanhama", "kk": "cazaque", "kkj": "kako", "kl": "groenlandês", "kln": "kalenjin", "km": "khmer", "kmb": "quimbundo", "kn": "canarim", "ko": "coreano", "koi": "komi-permyak", "kok": "concani", "kos": "kosraean", "kpe": "kpelle", "kr": "canúri", "krc": "karachay-balkar", "krl": "carélio", "kru": "kurukh", "ks": "caxemira", "ksb": "shambala", "ksf": "bafia", "ksh": "kölsch", "ku": "curdo", "kum": "kumyk", "kut": "kutenai", "kv": "komi", "kw": "córnico", "ky": "quirguiz", "la": "latim", "lad": "ladino", "lag": "langi", "lah": "lahnda", "lam": "lamba", "lb": "luxemburguês", "lez": "lezgui", "lg": "luganda", "li": "limburguês", "lkt": "lacota", "ln": "lingala", "lo": "laosiano", "lol": "mongo", "lou": "crioulo da Louisiana", "loz": "lozi", "lrc": "luri setentrional", "lt": "lituano", "lu": "luba-catanga", "lua": "luba-lulua", "lui": "luiseno", "lun": "lunda", "lus": "lushai", "luy": "luyia", "lv": "letão", "mad": "madurês", "maf": "mafa", "mag": "magahi", "mai": "maithili", "mak": "makasar", "man": "mandinga", "mas": "massai", "mde": "maba", "mdf": "mocsa", "mdr": "mandar", "men": "mende", "mer": "meru", "mfe": "morisyen", "mg": "malgaxe", "mga": "irlandês médio", "mgh": "macua", "mgo": "meta’", "mh": "marshalês", "mi": "maori", "mic": "miquemaque", "min": "minangkabau", "mk": "macedônio", "ml": "malaiala", "mn": "mongol", "mnc": "manchu", "mni": "manipuri", "moh": "moicano", "mos": "mossi", "mr": "marati", "ms": "malaio", "mt": "maltês", "mua": "mundang", "mus": "creek", "mwl": "mirandês", "mwr": "marwari", "my": "birmanês", "mye": "myene", "myv": "erzya", "mzn": "mazandarani", "na": "nauruano", "nan": "min nan", "nap": "napolitano", "naq": "nama", "nb": "bokmål norueguês", "nd": "ndebele do norte", "nds": "baixo alemão", "nds-NL": "baixo saxão", "ne": "nepalês", "new": "newari", "ng": "dongo", "nia": "nias", "niu": "niueano", "nl": "holandês", "nl-BE": "flamengo", "nmg": "kwasio", "nn": "nynorsk norueguês", "nnh": "ngiemboon", "no": "norueguês", "nog": "nogai", "non": "nórdico arcaico", "nqo": "n’ko", "nr": "ndebele do sul", "nso": "soto setentrional", "nus": "nuer", "nv": "navajo", "nwc": "newari clássico", "ny": "nianja", "nym": "nyamwezi", "nyn": "nyankole", "nyo": "nyoro", "nzi": "nzima", "oc": "occitânico", "oj": "ojibwa", "om": "oromo", "or": "oriá", "os": "osseto", "osa": "osage", "ota": "turco otomano", "pa": "panjabi", "pag": "pangasinã", "pal": "pálavi", "pam": "pampanga", "pap": "papiamento", "pau": "palauano", "pcm": "pidgin nigeriano", "peo": "persa arcaico", "phn": "fenício", "pi": "páli", "pl": "polonês", "pon": "pohnpeiano", "prg": "prussiano", "pro": "provençal arcaico", "ps": "pashto", "pt": "português", "pt-BR": "português (Brasil)", "pt-PT": "português (Portugal)", "qu": "quíchua", "quc": "quiché", "raj": "rajastani", "rap": "rapanui", "rar": "rarotongano", "rm": "romanche", "rn": "rundi", "ro": "romeno", "ro-MD": "moldávio", "rof": "rombo", "rom": "romani", "root": "raiz", "ru": "russo", "rup": "aromeno", "rw": "quiniaruanda", "rwk": "rwa", "sa": "sânscrito", "sad": "sandawe", "sah": "sakha", "sam": "aramaico samaritano", "saq": "samburu", "sas": "sasak", "sat": "santali", "sba": "ngambay", "sbp": "sangu", "sc": "sardo", "scn": "siciliano", "sco": "scots", "sd": "sindi", "sdh": "curdo meridional", "se": "sami setentrional", "see": "seneca", "seh": "sena", "sel": "selkup", "ses": "koyraboro senni", "sg": "sango", "sga": "irlandês arcaico", "sh": "servo-croata", "shi": "tachelhit", "shn": "shan", "shu": "árabe chadiano", "si": "cingalês", "sid": "sidamo", "sk": "eslovaco", "sl": "esloveno", "sm": "samoano", "sma": "sami meridional", "smj": "sami de Lule", "smn": "sami de Inari", "sms": "sami de Skolt", "sn": "xona", "snk": "soninquê", "so": "somali", "sog": "sogdiano", "sq": "albanês", "sr": "sérvio", "srn": "surinamês", "srr": "serere", "ss": "suázi", "ssy": "saho", "st": "soto do sul", "su": "sundanês", "suk": "sukuma", "sus": "susu", "sux": "sumério", "sv": "sueco", "sw": "suaíli", "sw-CD": "suaíli do Congo", "swb": "comoriano", "syc": "siríaco clássico", "syr": "siríaco", "ta": "tâmil", "te": "télugo", "tem": "timne", "teo": "teso", "ter": "tereno", "tet": "tétum", "tg": "tadjique", "th": "tailandês", "ti": "tigrínia", "tig": "tigré", "tk": "turcomeno", "tkl": "toquelauano", "tl": "tagalo", "tlh": "klingon", "tli": "tlinguite", "tmh": "tamaxeque", "tn": "tswana", "to": "tonganês", "tog": "tonganês de Nyasa", "tpi": "tok pisin", "tr": "turco", "trv": "taroko", "ts": "tsonga", "tsi": "tsimshiano", "tt": "tártaro", "tum": "tumbuka", "tvl": "tuvaluano", "tw": "twi", "twq": "tasawaq", "ty": "taitiano", "tyv": "tuviniano", "tzm": "tamazirte do Atlas Central", "udm": "udmurte", "ug": "uigur", "uga": "ugarítico", "uk": "ucraniano", "umb": "umbundu", "ur": "urdu", "uz": "uzbeque", "ve": "venda", "vi": "vietnamita", "vo": "volapuque", "vot": "vótico", "vun": "vunjo", "wa": "valão", "wae": "walser", "wal": "wolaytta", "war": "waray", "was": "washo", "wbp": "warlpiri", "wo": "uolofe", "wuu": "wu", "xal": "kalmyk", "xh": "xhosa", "xog": "lusoga", "yap": "yapese", "yav": "yangben", "ybb": "yemba", "yi": "iídiche", "yo": "iorubá", "yue": "cantonês", "za": "zhuang", "zap": "zapoteco", "zbl": "símbolos blis", "zen": "zenaga", "zgh": "tamazirte marroqino padrão", "zh": "chinês", "zh-Hans": "chinês simplificado", "zh-Hant": "chinês tradicional", "zu": "zulu", "zun": "zunhi", "zza": "zazaki"}, "scriptNames": {"Cyrl": "cirílico", "Latn": "latim", "Arab": "árabe", "Guru": "gurmuqui", "Tfng": "tifinagh", "Vaii": "vai", "Hans": "simplificado", "Hant": "tradicional"}}, + "rm": {"rtl": false, "languageNames": {"aa": "afar", "ab": "abchasian", "ace": "aceh", "ach": "acoli", "ada": "andangme", "ady": "adygai", "ae": "avestic", "af": "afrikaans", "afh": "afrihili", "ain": "ainu", "ak": "akan", "akk": "accadic", "ale": "aleutic", "alt": "altaic dal sid", "am": "amaric", "an": "aragonais", "ang": "englais vegl", "anp": "angika", "ar": "arab", "ar-001": "arab (mund)", "arc": "arameic", "arn": "araucanic", "arp": "arapaho", "arw": "arawak", "as": "assami", "ast": "asturian", "av": "avaric", "awa": "awadhi", "ay": "aymara", "az": "aserbeidschanic", "ba": "baschkir", "bal": "belutschi", "ban": "balinais", "bas": "basaa", "be": "bieloruss", "bej": "bedscha", "bem": "bemba", "bg": "bulgar", "bho": "bhojpuri", "bi": "bislama", "bik": "bikol", "bin": "bini", "bla": "siksika", "bm": "bambara", "bn": "bengal", "bo": "tibetan", "br": "breton", "bra": "braj", "bs": "bosniac", "bua": "buriat", "bug": "bugi", "byn": "blin", "ca": "catalan", "cad": "caddo", "car": "caribic", "cch": "atsam", "ce": "tschetschen", "ceb": "cebuano", "ch": "chamorro", "chb": "chibcha", "chg": "tschagataic", "chk": "chuukais", "chm": "mari", "chn": "patuà chinook", "cho": "choctaw", "chp": "chipewyan", "chr": "cherokee", "chy": "cheyenne", "co": "cors", "cop": "coptic", "cr": "cree", "crh": "tirc crimean", "cs": "tschec", "csb": "kaschubic", "cu": "slav da baselgia", "cv": "tschuvasch", "cy": "kimric", "da": "danais", "dak": "dakota", "dar": "dargwa", "de": "tudestg", "de-AT": "tudestg austriac", "de-CH": "tudestg (Svizra)", "del": "delaware", "den": "slavey", "dgr": "dogrib", "din": "dinka", "doi": "dogri", "dsb": "bass sorb", "dua": "duala", "dum": "ollandais mesaun", "dv": "maledivic", "dyu": "diula", "dz": "dzongkha", "ee": "ewe", "efi": "efik", "egy": "egipzian vegl", "eka": "ekajuk", "el": "grec", "elx": "elamitic", "en": "englais", "en-AU": "englais australian", "en-CA": "englais canadais", "en-GB": "englais britannic", "en-US": "englais american", "enm": "englais mesaun", "eo": "esperanto", "es": "spagnol", "es-419": "spagnol latinamerican", "es-ES": "spagnol iberic", "es-MX": "spagnol (Mexico)", "et": "eston", "eu": "basc", "ewo": "ewondo", "fa": "persian", "fan": "fang", "fat": "fanti", "ff": "fulah", "fi": "finlandais", "fil": "filippino", "fj": "fidschian", "fo": "ferrais", "fr": "franzos", "fr-CA": "franzos canadais", "fr-CH": "franzos svizzer", "frm": "franzos mesaun", "fro": "franzos vegl", "frr": "fris dal nord", "frs": "fris da l’ost", "fur": "friulan", "fy": "fris", "ga": "irlandais", "gaa": "ga", "gay": "gayo", "gba": "gbaya", "gd": "gaelic scot", "gez": "geez", "gil": "gilbertais", "gl": "galician", "gmh": "tudestg mesaun", "gn": "guarani", "goh": "vegl tudestg da scrittira", "gon": "gondi", "gor": "gorontalo", "got": "gotic", "grb": "grebo", "grc": "grec vegl", "gsw": "tudestg svizzer", "gu": "gujarati", "gv": "manx", "gwi": "gwichʼin", "ha": "haussa", "hai": "haida", "haw": "hawaian", "he": "ebraic", "hi": "hindi", "hil": "hiligaynon", "hit": "ettitic", "hmn": "hmong", "ho": "hiri motu", "hr": "croat", "hsb": "aut sorb", "ht": "haitian", "hu": "ungarais", "hup": "hupa", "hy": "armen", "hz": "herero", "ia": "interlingua", "iba": "iban", "id": "indonais", "ie": "interlingue", "ig": "igbo", "ii": "sichuan yi", "ik": "inupiak", "ilo": "ilocano", "inh": "ingush", "io": "ido", "is": "islandais", "it": "talian", "iu": "inuktitut", "ja": "giapunais", "jbo": "lojban", "jpr": "giudaic-persian", "jrb": "giudaic-arab", "jv": "javanais", "ka": "georgian", "kaa": "karakalpak", "kab": "kabyle", "kac": "kachin", "kaj": "jju", "kam": "kamba", "kaw": "kawi", "kbd": "kabardic", "kcg": "tyap", "kfo": "koro", "kg": "kongo", "kha": "khasi", "kho": "khotanais", "ki": "kikuyu", "kj": "kuanyama", "kk": "casac", "kl": "grönlandais", "km": "cambodschan", "kmb": "kimbundu", "kn": "kannada", "ko": "corean", "kok": "konkani", "kos": "kosraean", "kpe": "kpelle", "kr": "kanuri", "krc": "karachay-balkar", "krl": "carelian", "kru": "kurukh", "ks": "kashmiri", "ku": "curd", "kum": "kumuk", "kut": "kutenai", "kv": "komi", "kw": "cornic", "ky": "kirghis", "la": "latin", "lad": "ladino", "lah": "lahnda", "lam": "lamba", "lb": "luxemburgais", "lez": "lezghian", "lg": "ganda", "li": "limburgais", "ln": "lingala", "lo": "laot", "lol": "lomongo", "loz": "lozi", "lt": "lituan", "lu": "luba-katanga", "lua": "luba-lulua", "lui": "luiseno", "lun": "lunda", "lus": "lushai", "lv": "letton", "mad": "madurais", "mag": "magahi", "mai": "maithili", "mak": "makassar", "man": "mandingo", "mas": "masai", "mdf": "moksha", "mdr": "mandar", "men": "mende", "mg": "malagassi", "mga": "irlandais mesaun", "mh": "marschallais", "mi": "maori", "mic": "micmac", "min": "minangkabau", "mk": "macedon", "ml": "malayalam", "mn": "mongolic", "mnc": "manchu", "mni": "manipuri", "moh": "mohawk", "mos": "mossi", "mr": "marathi", "ms": "malaic", "mt": "maltais", "mus": "creek", "mwl": "mirandais", "mwr": "marwari", "my": "birman", "myv": "erzya", "na": "nauru", "nap": "neapolitan", "nb": "norvegais bokmål", "nd": "ndebele dal nord", "nds": "bass tudestg", "nds-NL": "bass tudestg (Pajais Bass)", "ne": "nepalais", "new": "newari", "ng": "ndonga", "nia": "nias", "niu": "niue", "nl": "ollandais", "nl-BE": "flam", "nn": "norvegiais nynorsk", "no": "norvegiais", "nog": "nogai", "non": "nordic vegl", "nqo": "n’ko", "nr": "ndebele dal sid", "nso": "sotho dal nord", "nv": "navajo", "nwc": "newari classic", "ny": "nyanja", "nym": "nyamwezi", "nyn": "nyankole", "nyo": "nyoro", "nzi": "nzima", "oc": "occitan", "oj": "ojibwa", "om": "oromo", "or": "oriya", "os": "ossetic", "osa": "osage", "ota": "tirc ottoman", "pa": "punjabi", "pag": "pangasinan", "pal": "pahlavi", "pam": "pampanga", "pap": "papiamento", "pau": "palau", "peo": "persian vegl", "phn": "fenizian", "pi": "pali", "pl": "polac", "pon": "ponapean", "pro": "provenzal vegl", "ps": "paschto", "pt": "portugais", "pt-BR": "portugais brasilian", "pt-PT": "portugais iberian", "qu": "quechua", "raj": "rajasthani", "rap": "rapanui", "rar": "rarotonga", "rm": "rumantsch", "rn": "rundi", "ro": "rumen", "ro-MD": "moldav", "rom": "romani", "ru": "russ", "rup": "aromunic", "rw": "kinyarwanda", "sa": "sanscrit", "sad": "sandawe", "sah": "jakut", "sam": "arameic samaritan", "sas": "sasak", "sat": "santali", "sc": "sard", "scn": "sicilian", "sco": "scot", "sd": "sindhi", "se": "sami dal nord", "sel": "selkup", "sg": "sango", "sga": "irlandais vegl", "sh": "serbo-croat", "shn": "shan", "si": "singalais", "sid": "sidamo", "sk": "slovac", "sl": "sloven", "sm": "samoan", "sma": "sami dal sid", "smj": "sami lule", "smn": "sami inari", "sms": "sami skolt", "sn": "shona", "snk": "soninke", "so": "somali", "sog": "sogdian", "sq": "albanais", "sr": "serb", "srn": "sranan tongo", "srr": "serer", "ss": "swazi", "st": "sotho dal sid", "su": "sundanais", "suk": "sukuma", "sus": "susu", "sux": "sumeric", "sv": "svedais", "sw": "suahili", "sw-CD": "suahili (Republica Democratica dal Congo)", "syc": "siric classic", "syr": "siric", "ta": "tamil", "te": "telugu", "tem": "temne", "ter": "tereno", "tet": "tetum", "tg": "tadjik", "th": "tailandais", "ti": "tigrinya", "tig": "tigre", "tk": "turkmen", "tkl": "tokelau", "tl": "tagalog", "tlh": "klingonic", "tli": "tlingit", "tmh": "tamasheq", "tn": "tswana", "to": "tonga", "tog": "lingua tsonga", "tpi": "tok pisin", "tr": "tirc", "ts": "tsonga", "tsi": "tsimshian", "tt": "tatar", "tum": "tumbuka", "tvl": "tuvalu", "tw": "twi", "ty": "tahitian", "tyv": "tuvinian", "udm": "udmurt", "ug": "uiguric", "uga": "ugaritic", "uk": "ucranais", "umb": "mbundu", "ur": "urdu", "uz": "usbec", "ve": "venda", "vi": "vietnamais", "vo": "volapuk", "vot": "votic", "wa": "vallon", "wal": "walamo", "war": "waray", "was": "washo", "wo": "wolof", "xal": "kalmuk", "xh": "xhosa", "yap": "yapais", "yi": "jiddic", "yo": "yoruba", "za": "zhuang", "zap": "zapotec", "zbl": "simbols da Bliss", "zen": "zenaga", "zh": "chinais", "zh-Hans": "chinais simplifitgà", "zh-Hant": "chinais tradiziunal", "zu": "zulu", "zun": "zuni", "zza": "zaza"}, "scriptNames": {"Cyrl": "cirillic", "Latn": "latin", "Arab": "arab", "Guru": "gurmukhi", "Tfng": "tifinagh", "Vaii": "vaii", "Hans": "scrittira chinaisa simplifitgada", "Hant": "scrittira chinaisa tradiziunala"}}, + "ro": {"rtl": false, "languageNames": {"aa": "afar", "ab": "abhază", "ace": "aceh", "ach": "acoli", "ada": "adangme", "ady": "adyghe", "ae": "avestană", "af": "afrikaans", "afh": "afrihili", "agq": "aghem", "ain": "ainu", "ak": "akan", "akk": "akkadiană", "ale": "aleută", "alt": "altaică meridională", "am": "amharică", "an": "aragoneză", "ang": "engleză veche", "anp": "angika", "ar": "arabă", "ar-001": "arabă standard modernă", "arc": "aramaică", "arn": "mapuche", "arp": "arapaho", "ars": "arabă najdi", "arw": "arawak", "as": "asameză", "asa": "asu", "ast": "asturiană", "av": "avară", "awa": "awadhi", "ay": "aymara", "az": "azeră", "ba": "bașkiră", "bal": "baluchi", "ban": "balineză", "bas": "basaa", "bax": "bamun", "bbj": "ghomala", "be": "belarusă", "bej": "beja", "bem": "bemba", "bez": "bena", "bfd": "bafut", "bg": "bulgară", "bgn": "baluchi occidentală", "bho": "bhojpuri", "bi": "bislama", "bik": "bikol", "bin": "bini", "bkm": "kom", "bla": "siksika", "bm": "bambara", "bn": "bengaleză", "bo": "tibetană", "br": "bretonă", "bra": "braj", "brx": "bodo", "bs": "bosniacă", "bss": "akoose", "bua": "buriat", "bug": "bugineză", "bum": "bulu", "byn": "blin", "byv": "medumba", "ca": "catalană", "cad": "caddo", "car": "carib", "cay": "cayuga", "cch": "atsam", "ccp": "chakma", "ce": "cecenă", "ceb": "cebuană", "cgg": "chiga", "ch": "chamorro", "chb": "chibcha", "chg": "chagatai", "chk": "chuukese", "chm": "mari", "chn": "jargon chinook", "cho": "choctaw", "chp": "chipewyan", "chr": "cherokee", "chy": "cheyenne", "ckb": "kurdă centrală", "co": "corsicană", "cop": "coptă", "cr": "cree", "crh": "turcă crimeeană", "crs": "creolă franceză seselwa", "cs": "cehă", "csb": "cașubiană", "cu": "slavonă", "cv": "ciuvașă", "cy": "galeză", "da": "daneză", "dak": "dakota", "dar": "dargwa", "dav": "taita", "de": "germană", "de-AT": "germană (Austria)", "de-CH": "germană standard (Elveția)", "del": "delaware", "den": "slave", "dgr": "dogrib", "din": "dinka", "dje": "zarma", "doi": "dogri", "dsb": "sorabă de jos", "dua": "duala", "dum": "neerlandeză medie", "dv": "divehi", "dyo": "jola-fonyi", "dyu": "dyula", "dz": "dzongkha", "dzg": "dazaga", "ebu": "embu", "ee": "ewe", "efi": "efik", "egy": "egipteană veche", "eka": "ekajuk", "el": "greacă", "elx": "elamită", "en": "engleză", "en-AU": "engleză (Australia)", "en-CA": "engleză (Canada)", "en-GB": "engleză (Regatul Unit)", "en-US": "engleză (Statele Unite ale Americii)", "enm": "engleză medie", "eo": "esperanto", "es": "spaniolă", "es-419": "spaniolă (America Latină)", "es-ES": "spaniolă (Europa)", "es-MX": "spaniolă (Mexic)", "et": "estonă", "eu": "bască", "ewo": "ewondo", "fa": "persană", "fan": "fang", "fat": "fanti", "ff": "fulah", "fi": "finlandeză", "fil": "filipineză", "fj": "fijiană", "fo": "faroeză", "fr": "franceză", "fr-CA": "franceză (Canada)", "fr-CH": "franceză (Elveția)", "frc": "franceză cajun", "frm": "franceză medie", "fro": "franceză veche", "frr": "frizonă nordică", "frs": "frizonă orientală", "fur": "friulană", "fy": "frizonă occidentală", "ga": "irlandeză", "gaa": "ga", "gag": "găgăuză", "gan": "chineză gan", "gay": "gayo", "gba": "gbaya", "gd": "gaelică scoțiană", "gez": "geez", "gil": "gilbertină", "gl": "galiciană", "gmh": "germană înaltă medie", "gn": "guarani", "goh": "germană înaltă veche", "gon": "gondi", "gor": "gorontalo", "got": "gotică", "grb": "grebo", "grc": "greacă veche", "gsw": "germană (Elveția)", "gu": "gujarati", "guz": "gusii", "gv": "manx", "gwi": "gwichʼin", "ha": "hausa", "hai": "haida", "hak": "chineză hakka", "haw": "hawaiiană", "he": "ebraică", "hi": "hindi", "hil": "hiligaynon", "hit": "hitită", "hmn": "hmong", "ho": "hiri motu", "hr": "croată", "hsb": "sorabă de sus", "hsn": "chineză xiang", "ht": "haitiană", "hu": "maghiară", "hup": "hupa", "hy": "armeană", "hz": "herero", "ia": "interlingua", "iba": "iban", "ibb": "ibibio", "id": "indoneziană", "ie": "interlingue", "ig": "igbo", "ii": "yi din Sichuan", "ik": "inupiak", "ilo": "iloko", "inh": "ingușă", "io": "ido", "is": "islandeză", "it": "italiană", "iu": "inuktitut", "ja": "japoneză", "jbo": "lojban", "jgo": "ngomba", "jmc": "machame", "jpr": "iudeo-persană", "jrb": "iudeo-arabă", "jv": "javaneză", "ka": "georgiană", "kaa": "karakalpak", "kab": "kabyle", "kac": "kachin", "kaj": "jju", "kam": "kamba", "kaw": "kawi", "kbd": "kabardian", "kbl": "kanembu", "kcg": "tyap", "kde": "makonde", "kea": "kabuverdianu", "kfo": "koro", "kg": "congoleză", "kha": "khasi", "kho": "khotaneză", "khq": "koyra chiini", "ki": "kikuyu", "kj": "kuanyama", "kk": "kazahă", "kkj": "kako", "kl": "kalaallisut", "kln": "kalenjin", "km": "khmeră", "kmb": "kimbundu", "kn": "kannada", "ko": "coreeană", "koi": "komi-permiak", "kok": "konkani", "kos": "kosrae", "kpe": "kpelle", "kr": "kanuri", "krc": "karaceai-balkar", "krl": "kareliană", "kru": "kurukh", "ks": "cașmiră", "ksb": "shambala", "ksf": "bafia", "ksh": "kölsch", "ku": "kurdă", "kum": "kumyk", "kut": "kutenai", "kv": "komi", "kw": "cornică", "ky": "kârgâză", "la": "latină", "lad": "ladino", "lag": "langi", "lah": "lahnda", "lam": "lamba", "lb": "luxemburgheză", "lez": "lezghian", "lg": "ganda", "li": "limburgheză", "lkt": "lakota", "ln": "lingala", "lo": "laoțiană", "lol": "mongo", "lou": "creolă (Louisiana)", "loz": "lozi", "lrc": "luri de nord", "lt": "lituaniană", "lu": "luba-katanga", "lua": "luba-lulua", "lui": "luiseno", "lun": "lunda", "lus": "mizo", "luy": "luyia", "lv": "letonă", "mad": "madureză", "maf": "mafa", "mag": "magahi", "mai": "maithili", "mak": "makasar", "man": "mandingo", "mas": "masai", "mde": "maba", "mdf": "moksha", "mdr": "mandar", "men": "mende", "mer": "meru", "mfe": "morisyen", "mg": "malgașă", "mga": "irlandeză medie", "mgh": "makhuwa-meetto", "mgo": "meta’", "mh": "marshalleză", "mi": "maori", "mic": "micmac", "min": "minangkabau", "mk": "macedoneană", "ml": "malayalam", "mn": "mongolă", "mnc": "manciuriană", "mni": "manipuri", "moh": "mohawk", "mos": "mossi", "mr": "marathi", "ms": "malaeză", "mt": "malteză", "mua": "mundang", "mus": "creek", "mwl": "mirandeză", "mwr": "marwari", "my": "birmană", "mye": "myene", "myv": "erzya", "mzn": "mazanderani", "na": "nauru", "nan": "chineză min nan", "nap": "napolitană", "naq": "nama", "nb": "norvegiană bokmål", "nd": "ndebele de nord", "nds": "germana de jos", "nds-NL": "saxona de jos", "ne": "nepaleză", "new": "newari", "ng": "ndonga", "nia": "nias", "niu": "niueană", "nl": "neerlandeză", "nl-BE": "flamandă", "nmg": "kwasio", "nn": "norvegiană nynorsk", "nnh": "ngiemboon", "no": "norvegiană", "nog": "nogai", "non": "nordică veche", "nqo": "n’ko", "nr": "ndebele de sud", "nso": "sotho de nord", "nus": "nuer", "nv": "navajo", "nwc": "newari clasică", "ny": "nyanja", "nym": "nyamwezi", "nyn": "nyankole", "nyo": "nyoro", "nzi": "nzima", "oc": "occitană", "oj": "ojibwa", "om": "oromo", "or": "odia", "os": "osetă", "osa": "osage", "ota": "turcă otomană", "pa": "punjabi", "pag": "pangasinan", "pal": "pahlavi", "pam": "pampanga", "pap": "papiamento", "pau": "palauană", "pcm": "pidgin nigerian", "peo": "persană veche", "phn": "feniciană", "pi": "pali", "pl": "poloneză", "pon": "pohnpeiană", "prg": "prusacă", "pro": "provensală veche", "ps": "paștună", "pt": "portugheză", "pt-BR": "portugheză (Brazilia)", "pt-PT": "portugheză (Europa)", "qu": "quechua", "quc": "quiché", "raj": "rajasthani", "rap": "rapanui", "rar": "rarotongan", "rm": "romanșă", "rn": "kirundi", "ro": "română", "ro-MD": "română (Republica Moldova)", "rof": "rombo", "rom": "romani", "ru": "rusă", "rup": "aromână", "rw": "kinyarwanda", "rwk": "rwa", "sa": "sanscrită", "sad": "sandawe", "sah": "sakha", "sam": "aramaică samariteană", "saq": "samburu", "sas": "sasak", "sat": "santali", "sba": "ngambay", "sbp": "sangu", "sc": "sardiniană", "scn": "siciliană", "sco": "scots", "sd": "sindhi", "sdh": "kurdă de sud", "se": "sami de nord", "see": "seneca", "seh": "sena", "sel": "selkup", "ses": "koyraboro Senni", "sg": "sango", "sga": "irlandeză veche", "sh": "sârbo-croată", "shi": "tachelhit", "shn": "shan", "shu": "arabă ciadiană", "si": "singhaleză", "sid": "sidamo", "sk": "slovacă", "sl": "slovenă", "sm": "samoană", "sma": "sami de sud", "smj": "sami lule", "smn": "sami inari", "sms": "sami skolt", "sn": "shona", "snk": "soninke", "so": "somaleză", "sog": "sogdien", "sq": "albaneză", "sr": "sârbă", "srn": "sranan tongo", "srr": "serer", "ss": "swati", "ssy": "saho", "st": "sesotho", "su": "sundaneză", "suk": "sukuma", "sus": "susu", "sux": "sumeriană", "sv": "suedeză", "sw": "swahili", "sw-CD": "swahili (R.D. Congo)", "swb": "comoreză", "syc": "siriacă clasică", "syr": "siriacă", "ta": "tamilă", "te": "telugu", "tem": "timne", "teo": "teso", "ter": "tereno", "tet": "tetum", "tg": "tadjică", "th": "thailandeză", "ti": "tigrină", "tig": "tigre", "tk": "turkmenă", "tkl": "tokelau", "tl": "tagalog", "tlh": "klingoniană", "tli": "tlingit", "tmh": "tamashek", "tn": "setswana", "to": "tongană", "tog": "nyasa tonga", "tpi": "tok pisin", "tr": "turcă", "trv": "taroko", "ts": "tsonga", "tsi": "tsimshian", "tt": "tătară", "tum": "tumbuka", "tvl": "tuvalu", "tw": "twi", "twq": "tasawaq", "ty": "tahitiană", "tyv": "tuvană", "tzm": "tamazight din Altasul Central", "udm": "udmurt", "ug": "uigură", "uga": "ugaritică", "uk": "ucraineană", "umb": "umbundu", "ur": "urdu", "uz": "uzbecă", "ve": "venda", "vi": "vietnameză", "vo": "volapuk", "vot": "votică", "vun": "vunjo", "wa": "valonă", "wae": "walser", "wal": "wolaita", "war": "waray", "was": "washo", "wbp": "warlpiri", "wo": "wolof", "wuu": "chineză wu", "xal": "calmucă", "xh": "xhosa", "xog": "soga", "yap": "yapeză", "yav": "yangben", "ybb": "yemba", "yi": "idiș", "yo": "yoruba", "yue": "cantoneză", "za": "zhuang", "zap": "zapotecă", "zbl": "simboluri Bilss", "zen": "zenaga", "zgh": "tamazight standard marocană", "zh": "chineză", "zh-Hans": "chineză simplificată", "zh-Hant": "chineză tradițională", "zu": "zulu", "zun": "zuni", "zza": "zaza"}, "scriptNames": {"Cyrl": "chirilică", "Latn": "latină", "Arab": "arabă", "Guru": "gurmukhi", "Tfng": "berberă", "Hans": "simplificată", "Hant": "tradițională"}}, + "ru": {"rtl": false, "languageNames": {"aa": "афарский", "ab": "абхазский", "ace": "ачехский", "ach": "ачоли", "ada": "адангме", "ady": "адыгейский", "ae": "авестийский", "af": "африкаанс", "afh": "африхили", "agq": "агем", "ain": "айнский", "ak": "акан", "akk": "аккадский", "ale": "алеутский", "alt": "южноалтайский", "am": "амхарский", "an": "арагонский", "ang": "староанглийский", "anp": "ангика", "ar": "арабский", "ar-001": "литературный арабский", "arc": "арамейский", "arn": "мапуче", "arp": "арапахо", "ars": "недждийский арабский", "arw": "аравакский", "as": "ассамский", "asa": "асу", "ast": "астурийский", "av": "аварский", "awa": "авадхи", "ay": "аймара", "az": "азербайджанский", "ba": "башкирский", "bal": "белуджский", "ban": "балийский", "bas": "баса", "bax": "бамум", "bbj": "гомала", "be": "белорусский", "bej": "беджа", "bem": "бемба", "bez": "бена", "bfd": "бафут", "bg": "болгарский", "bgn": "западный белуджский", "bho": "бходжпури", "bi": "бислама", "bik": "бикольский", "bin": "бини", "bkm": "ком", "bla": "сиксика", "bm": "бамбара", "bn": "бенгальский", "bo": "тибетский", "br": "бретонский", "bra": "брауи", "brx": "бодо", "bs": "боснийский", "bss": "акоосе", "bua": "бурятский", "bug": "бугийский", "bum": "булу", "byn": "билин", "byv": "медумба", "ca": "каталанский", "cad": "каддо", "car": "кариб", "cay": "кайюга", "cch": "атсам", "ccp": "чакма", "ce": "чеченский", "ceb": "себуано", "cgg": "кига", "ch": "чаморро", "chb": "чибча", "chg": "чагатайский", "chk": "чукотский", "chm": "марийский", "chn": "чинук жаргон", "cho": "чоктавский", "chp": "чипевьян", "chr": "чероки", "chy": "шайенский", "ckb": "сорани", "co": "корсиканский", "cop": "коптский", "cr": "кри", "crh": "крымско-татарский", "crs": "сейшельский креольский", "cs": "чешский", "csb": "кашубский", "cu": "церковнославянский", "cv": "чувашский", "cy": "валлийский", "da": "датский", "dak": "дакота", "dar": "даргинский", "dav": "таита", "de": "немецкий", "de-AT": "австрийский немецкий", "de-CH": "литературный швейцарский немецкий", "del": "делаварский", "den": "слейви", "dgr": "догриб", "din": "динка", "dje": "джерма", "doi": "догри", "dsb": "нижнелужицкий", "dua": "дуала", "dum": "средненидерландский", "dv": "мальдивский", "dyo": "диола-фоньи", "dyu": "диула", "dz": "дзонг-кэ", "dzg": "даза", "ebu": "эмбу", "ee": "эве", "efi": "эфик", "egy": "древнеегипетский", "eka": "экаджук", "el": "греческий", "elx": "эламский", "en": "английский", "en-AU": "австралийский английский", "en-CA": "канадский английский", "en-GB": "британский английский", "en-US": "американский английский", "enm": "среднеанглийский", "eo": "эсперанто", "es": "испанский", "es-419": "латиноамериканский испанский", "es-ES": "европейский испанский", "es-MX": "мексиканский испанский", "et": "эстонский", "eu": "баскский", "ewo": "эвондо", "fa": "персидский", "fan": "фанг", "fat": "фанти", "ff": "фулах", "fi": "финский", "fil": "филиппинский", "fj": "фиджи", "fo": "фарерский", "fon": "фон", "fr": "французский", "fr-CA": "канадский французский", "fr-CH": "швейцарский французский", "frc": "каджунский французский", "frm": "среднефранцузский", "fro": "старофранцузский", "frr": "северный фризский", "frs": "восточный фризский", "fur": "фриульский", "fy": "западнофризский", "ga": "ирландский", "gaa": "га", "gag": "гагаузский", "gan": "гань", "gay": "гайо", "gba": "гбая", "gd": "гэльский", "gez": "геэз", "gil": "гилбертский", "gl": "галисийский", "gmh": "средневерхненемецкий", "gn": "гуарани", "goh": "древневерхненемецкий", "gon": "гонди", "gor": "горонтало", "got": "готский", "grb": "гребо", "grc": "древнегреческий", "gsw": "швейцарский немецкий", "gu": "гуджарати", "guz": "гусии", "gv": "мэнский", "gwi": "гвичин", "ha": "хауса", "hai": "хайда", "hak": "хакка", "haw": "гавайский", "he": "иврит", "hi": "хинди", "hil": "хилигайнон", "hit": "хеттский", "hmn": "хмонг", "ho": "хиримоту", "hr": "хорватский", "hsb": "верхнелужицкий", "hsn": "сян", "ht": "гаитянский", "hu": "венгерский", "hup": "хупа", "hy": "армянский", "hz": "гереро", "ia": "интерлингва", "iba": "ибанский", "ibb": "ибибио", "id": "индонезийский", "ie": "интерлингве", "ig": "игбо", "ii": "носу", "ik": "инупиак", "ilo": "илоко", "inh": "ингушский", "io": "идо", "is": "исландский", "it": "итальянский", "iu": "инуктитут", "ja": "японский", "jbo": "ложбан", "jgo": "нгомба", "jmc": "мачаме", "jpr": "еврейско-персидский", "jrb": "еврейско-арабский", "jv": "яванский", "ka": "грузинский", "kaa": "каракалпакский", "kab": "кабильский", "kac": "качинский", "kaj": "каджи", "kam": "камба", "kaw": "кави", "kbd": "кабардинский", "kbl": "канембу", "kcg": "тьяп", "kde": "маконде", "kea": "кабувердьяну", "kfo": "коро", "kg": "конго", "kha": "кхаси", "kho": "хотанский", "khq": "койра чиини", "ki": "кикуйю", "kj": "кунама", "kk": "казахский", "kkj": "како", "kl": "гренландский", "kln": "календжин", "km": "кхмерский", "kmb": "кимбунду", "kn": "каннада", "ko": "корейский", "koi": "коми-пермяцкий", "kok": "конкани", "kos": "косраенский", "kpe": "кпелле", "kr": "канури", "krc": "карачаево-балкарский", "krl": "карельский", "kru": "курух", "ks": "кашмири", "ksb": "шамбала", "ksf": "бафия", "ksh": "кёльнский", "ku": "курдский", "kum": "кумыкский", "kut": "кутенаи", "kv": "коми", "kw": "корнский", "ky": "киргизский", "la": "латинский", "lad": "ладино", "lag": "ланго", "lah": "лахнда", "lam": "ламба", "lb": "люксембургский", "lez": "лезгинский", "lg": "ганда", "li": "лимбургский", "lkt": "лакота", "ln": "лингала", "lo": "лаосский", "lol": "монго", "lou": "луизианский креольский", "loz": "лози", "lrc": "севернолурский", "lt": "литовский", "lu": "луба-катанга", "lua": "луба-лулуа", "lui": "луисеньо", "lun": "лунда", "luo": "луо", "lus": "мизо", "luy": "лухья", "lv": "латышский", "mad": "мадурский", "maf": "мафа", "mag": "магахи", "mai": "майтхили", "mak": "макассарский", "man": "мандинго", "mas": "масаи", "mde": "маба", "mdf": "мокшанский", "mdr": "мандарский", "men": "менде", "mer": "меру", "mfe": "маврикийский креольский", "mg": "малагасийский", "mga": "среднеирландский", "mgh": "макуа-меетто", "mgo": "мета", "mh": "маршалльский", "mi": "маори", "mic": "микмак", "min": "минангкабау", "mk": "македонский", "ml": "малаялам", "mn": "монгольский", "mnc": "маньчжурский", "mni": "манипурский", "moh": "мохаук", "mos": "моси", "mr": "маратхи", "ms": "малайский", "mt": "мальтийский", "mua": "мунданг", "mus": "крик", "mwl": "мирандский", "mwr": "марвари", "my": "бирманский", "mye": "миене", "myv": "эрзянский", "mzn": "мазендеранский", "na": "науру", "nan": "миньнань", "nap": "неаполитанский", "naq": "нама", "nb": "норвежский букмол", "nd": "северный ндебеле", "nds": "нижнегерманский", "nds-NL": "нижнесаксонский", "ne": "непальский", "new": "неварский", "ng": "ндонга", "nia": "ниас", "niu": "ниуэ", "nl": "нидерландский", "nl-BE": "фламандский", "nmg": "квасио", "nn": "нюнорск", "nnh": "нгиембунд", "no": "норвежский", "nog": "ногайский", "non": "старонорвежский", "nqo": "нко", "nr": "южный ндебеле", "nso": "северный сото", "nus": "нуэр", "nv": "навахо", "nwc": "классический невари", "ny": "ньянджа", "nym": "ньямвези", "nyn": "ньянколе", "nyo": "ньоро", "nzi": "нзима", "oc": "окситанский", "oj": "оджибва", "om": "оромо", "or": "ория", "os": "осетинский", "osa": "оседжи", "ota": "старотурецкий", "pa": "панджаби", "pag": "пангасинан", "pal": "пехлевийский", "pam": "пампанга", "pap": "папьяменто", "pau": "палау", "pcm": "нигерийско-креольский", "peo": "староперсидский", "phn": "финикийский", "pi": "пали", "pl": "польский", "pon": "понапе", "prg": "прусский", "pro": "старопровансальский", "ps": "пушту", "pt": "португальский", "pt-BR": "бразильский португальский", "pt-PT": "европейский португальский", "qu": "кечуа", "quc": "киче", "raj": "раджастхани", "rap": "рапануйский", "rar": "раротонга", "rm": "романшский", "rn": "рунди", "ro": "румынский", "ro-MD": "молдавский", "rof": "ромбо", "rom": "цыганский", "root": "праязык", "ru": "русский", "rup": "арумынский", "rw": "киньяруанда", "rwk": "руанда", "sa": "санскрит", "sad": "сандаве", "sah": "саха", "sam": "самаритянский арамейский", "saq": "самбуру", "sas": "сасакский", "sat": "сантали", "sba": "нгамбайский", "sbp": "сангу", "sc": "сардинский", "scn": "сицилийский", "sco": "шотландский", "sd": "синдхи", "sdh": "южнокурдский", "se": "северносаамский", "see": "сенека", "seh": "сена", "sel": "селькупский", "ses": "койраборо сенни", "sg": "санго", "sga": "староирландский", "sh": "сербскохорватский", "shi": "ташельхит", "shn": "шанский", "shu": "чадский арабский", "si": "сингальский", "sid": "сидама", "sk": "словацкий", "sl": "словенский", "sm": "самоанский", "sma": "южносаамский", "smj": "луле-саамский", "smn": "инари-саамский", "sms": "колтта-саамский", "sn": "шона", "snk": "сонинке", "so": "сомали", "sog": "согдийский", "sq": "албанский", "sr": "сербский", "srn": "сранан-тонго", "srr": "серер", "ss": "свази", "ssy": "сахо", "st": "южный сото", "su": "сунданский", "suk": "сукума", "sus": "сусу", "sux": "шумерский", "sv": "шведский", "sw": "суахили", "sw-CD": "конголезский суахили", "swb": "коморский", "syc": "классический сирийский", "syr": "сирийский", "ta": "тамильский", "te": "телугу", "tem": "темне", "teo": "тесо", "ter": "терено", "tet": "тетум", "tg": "таджикский", "th": "тайский", "ti": "тигринья", "tig": "тигре", "tiv": "тиви", "tk": "туркменский", "tkl": "токелайский", "tl": "тагалог", "tlh": "клингонский", "tli": "тлингит", "tmh": "тамашек", "tn": "тсвана", "to": "тонганский", "tog": "тонга", "tpi": "ток-писин", "tr": "турецкий", "tru": "туройо", "trv": "седекский", "ts": "тсонга", "tsi": "цимшиан", "tt": "татарский", "tum": "тумбука", "tvl": "тувалу", "tw": "тви", "twq": "тасавак", "ty": "таитянский", "tyv": "тувинский", "tzm": "среднеатласский тамазигхтский", "udm": "удмуртский", "ug": "уйгурский", "uga": "угаритский", "uk": "украинский", "umb": "умбунду", "ur": "урду", "uz": "узбекский", "vai": "ваи", "ve": "венда", "vi": "вьетнамский", "vo": "волапюк", "vot": "водский", "vun": "вунджо", "wa": "валлонский", "wae": "валлисский", "wal": "воламо", "war": "варай", "was": "вашо", "wbp": "вальбири", "wo": "волоф", "wuu": "ву", "xal": "калмыцкий", "xh": "коса", "xog": "сога", "yao": "яо", "yap": "яп", "yav": "янгбен", "ybb": "йемба", "yi": "идиш", "yo": "йоруба", "yue": "кантонский", "za": "чжуань", "zap": "сапотекский", "zbl": "блиссимволика", "zen": "зенагский", "zgh": "тамазигхтский", "zh": "китайский", "zh-Hans": "китайский, упрощенное письмо", "zh-Hant": "китайский, традиционное письмо", "zu": "зулу", "zun": "зуньи", "zza": "заза"}, "scriptNames": {"Cyrl": "кириллица", "Latn": "латиница", "Arab": "арабица", "Guru": "гурмукхи", "Tfng": "древнеливийская", "Vaii": "вайская", "Hans": "упрощенная китайская", "Hant": "традиционная китайская"}}, + "sc": {"rtl": false, "languageNames": {}, "scriptNames": {}}, + "si": {"rtl": false, "languageNames": {"aa": "අෆාර්", "ab": "ඇබ්කාසියානු", "ace": "අචයිනිස්", "ada": "අඩන්ග්මෙ", "ady": "අඩිඝෙ", "aeb": "ටියුනිසියනු අරාබි", "af": "අෆ්රිකාන්ස්", "agq": "ඇගම්", "ain": "අයිනු", "ak": "අකාන්", "ale": "ඇලුඑට්", "alt": "සතර්න් අල්ටය්", "am": "ඇම්හාරික්", "an": "ඇරගොනීස්", "anp": "අන්ගික", "ar": "අරාබි", "ar-001": "නූතන සම්මත අරාබි", "arn": "මපුචෙ", "arp": "ඇරපහො", "as": "ඇසෑම්", "asa": "අසු", "ast": "ඇස්ටියුරියන්", "av": "ඇවරික්", "awa": "අවදි", "ay": "අයිමරා", "az": "අසර්බයිජාන්", "ba": "බාෂ්කිර්", "ban": "බැලිනීස්", "bas": "බසා", "be": "බෙලරුසියානු", "bem": "බෙම්බා", "bez": "බෙනා", "bg": "බල්ගේරියානු", "bgn": "බටහිර බලොචි", "bho": "බොජ්පුරි", "bi": "බිස්ලමා", "bin": "බිනි", "bla": "සික්සිකා", "bm": "බම්බරා", "bn": "බෙංගාලි", "bo": "ටිබෙට්", "br": "බ්‍රේටොන්", "brx": "බොඩො", "bs": "බොස්නියානු", "bug": "බුගිනීස්", "byn": "බ්ලින්", "ca": "කැටලන්", "ce": "චෙච්නියානු", "ceb": "සෙබුඅනො", "cgg": "චිගා", "ch": "චමොරො", "chk": "චූකීස්", "chm": "මරි", "cho": "චොක්ටොව්", "chr": "චෙරොකී", "chy": "චෙයෙන්නෙ", "ckb": "සොරානි කුර්දිෂ්", "co": "කෝසිකානු", "crs": "සෙසෙල්ව ක්‍රොල් ෆ්‍රෙන්ච්", "cs": "චෙක්", "cu": "චර්ච් ස්ලැවික්", "cv": "චවේෂ්", "cy": "වෙල්ෂ්", "da": "ඩැනිශ්", "dak": "ඩකොටා", "dar": "ඩාර්ග්වා", "dav": "ටයිටා", "de": "ජර්මන්", "de-AT": "ඔස්ට්‍රියානු ජර්මන්", "de-CH": "ස්විස් උසස් ජර්මන්", "dgr": "ඩොග්‍රිබ්", "dje": "සර්මා", "dsb": "පහළ සෝබියානු", "dua": "ඩුආලා", "dv": "ඩිවෙහි", "dyo": "ජොල-ෆෝනියි", "dz": "ඩිසොන්කා", "dzg": "ඩසාගා", "ebu": "එම්බු", "ee": "ඉව්", "efi": "එෆික්", "eka": "එකජුක්", "el": "ග්‍රීක", "en": "ඉංග්‍රීසි", "en-AU": "ඕස්ට්‍රේලියානු ඉංග්‍රීසි", "en-CA": "කැනේඩියානු ඉංග්‍රීසි", "en-GB": "බ්‍රිතාන්‍ය ඉංග්‍රීසි", "en-US": "ඇමෙරිකානු ඉංග්‍රීසි", "eo": "එස්පැරන්ටෝ", "es": "ස්පාඤ්ඤ", "es-419": "ලතින් ඇමරිකානු ස්පාඤ්ඤ", "es-ES": "යුරෝපීය ස්පාඤ්ඤ", "es-MX": "මෙක්සිකානු ස්පාඤ්ඤ", "et": "එස්තෝනියානු", "eu": "බාස්ක්", "ewo": "එවොන්ඩො", "fa": "පර්සියානු", "ff": "ෆුලාහ්", "fi": "ෆින්ලන්ත", "fil": "පිලිපීන", "fj": "ෆීජි", "fo": "ෆාරෝස්", "fon": "ෆොන්", "fr": "ප්‍රංශ", "fr-CA": "කැනේඩියානු ප්‍රංශ", "fr-CH": "ස්විස් ප්‍රංශ", "fur": "ෆ්‍රියුලියන්", "fy": "බටහිර ෆ්‍රිසියානු", "ga": "අයර්ලන්ත", "gaa": "ගා", "gag": "ගගාස්", "gan": "ගැන් චයිනිස්", "gd": "ස්කොට්ටිශ් ගෙලික්", "gez": "ගීස්", "gil": "ගිල්බර්ටීස්", "gl": "ගැලීසියානු", "gn": "ගුවාරනි", "gor": "ගොරොන්ටාලො", "gsw": "ස්විස් ජර්මානු", "gu": "ගුජරාටි", "guz": "ගුසී", "gv": "මැන්ක්ස්", "gwi": "ග්විචින්", "ha": "හෝසා", "hak": "හකා චයිනිස්", "haw": "හවායි", "he": "හීබෲ", "hi": "හින්දි", "hil": "හිලිගෙනන්", "hmn": "මොන්ග්", "hr": "කෝඒෂියානු", "hsb": "ඉහළ සෝබියානු", "hsn": "සියැන් චීන", "ht": "හයිටි", "hu": "හන්ගේරියානු", "hup": "හුපා", "hy": "ආර්මේනියානු", "hz": "හෙරෙරො", "ia": "ඉන්ටලින්ගුආ", "iba": "ඉබන්", "ibb": "ඉබිබියො", "id": "ඉන්දුනීසියානු", "ig": "ඉග්බෝ", "ii": "සිචුආන් යී", "ilo": "ඉලොකො", "inh": "ඉන්ගුෂ්", "io": "ඉඩො", "is": "අයිස්ලන්ත", "it": "ඉතාලි", "iu": "ඉනුක්ටිටුට්", "ja": "ජපන්", "jbo": "ලොජ්බන්", "jgo": "නොම්බා", "jmc": "මැකාමී", "jv": "ජාවා", "ka": "ජෝර්ජියානු", "kab": "කාබිල්", "kac": "කචින්", "kaj": "ජ්ජු", "kam": "කැම්බා", "kbd": "කබාර්ඩියන්", "kcg": "ට්යප්", "kde": "මැකොන්ඩ්", "kea": "කබුවෙර්ඩියානු", "kfo": "කොරො", "kha": "ඛසි", "khq": "කොයිරා චිනි", "ki": "කිකුයු", "kj": "කුයන්යමා", "kk": "කසාඛ්", "kkj": "කකො", "kl": "කලාලිසට්", "kln": "කලෙන්ජන්", "km": "කමර්", "kmb": "කිම්බුන්ඩු", "kn": "කණ්ණඩ", "ko": "කොරියානු", "koi": "කොමි-පර්මියාක්", "kok": "කොන්කනි", "kpe": "ක්පෙලෙ", "kr": "කනුරි", "krc": "කරන්චි-බාකර්", "krl": "කැරෙලියන්", "kru": "කුරුඛ්", "ks": "කාෂ්මීර්", "ksb": "ශාම්බලා", "ksf": "බාෆියා", "ksh": "කොලොග්නියන්", "ku": "කුර්දි", "kum": "කුමික්", "kv": "කොමි", "kw": "කෝනීසියානු", "ky": "කිර්ගිස්", "la": "ලතින්", "lad": "ලඩිනො", "lag": "ලංගි", "lb": "ලක්සැම්බර්ග්", "lez": "ලෙස්ගියන්", "lg": "ගන්ඩා", "li": "ලිම්බර්ගිශ්", "lkt": "ලකොට", "ln": "ලින්ගලා", "lo": "ලාඕ", "loz": "ලොසි", "lrc": "උතුරු ලුරි", "lt": "ලිතුවේනියානු", "lu": "ලුබා-කටන්ගා", "lua": "ලුබ-ලුලුඅ", "lun": "ලුන්ඩ", "luo": "ලුඔ", "lus": "මිසො", "luy": "ලුයියා", "lv": "ලැට්වියානු", "mad": "මදුරීස්", "mag": "මඝහි", "mai": "මයිතිලි", "mak": "මකාසාර්", "mas": "මසායි", "mdf": "මොක්ශා", "men": "මෙන්ඩෙ", "mer": "මෙරු", "mfe": "මොරිස්යෙම්", "mg": "මලගාසි", "mgh": "මඛුවා-මීටෝ", "mgo": "මෙටා", "mh": "මාශලීස්", "mi": "මාවොරි", "mic": "මික්මැක්", "min": "මිනන්ග්කබාවු", "mk": "මැසිඩෝනියානු", "ml": "මලයාලම්", "mn": "මොංගෝලියානු", "mni": "මනිපුරි", "moh": "මොහොව්ක්", "mos": "මොස්සි", "mr": "මරාති", "ms": "මැලේ", "mt": "මොල්ටිස්", "mua": "මුන්ඩන්", "mus": "ක්‍රීක්", "mwl": "මිරන්ඩීස්", "my": "බුරුම", "myv": "එර්ස්යා", "mzn": "මැසන්ඩරනි", "na": "නෞරු", "nan": "මින් නන් චයිනිස්", "nap": "නියාපොලිටන්", "naq": "නාමා", "nb": "නෝර්වීජියානු බොක්මල්", "nd": "උතුරු එන්ඩිබෙලෙ", "nds": "පහළ ජර්මන්", "nds-NL": "පහළ සැක්සන්", "ne": "නේපාල", "new": "නෙවාරි", "ng": "න්ඩොන්ගා", "nia": "නියාස්", "niu": "නියුඑන්", "nl": "ලන්දේසි", "nl-BE": "ෆ්ලෙමිශ්", "nmg": "කුවාසිඔ", "nn": "නෝර්වීජියානු නයිනෝර්ස්ක්", "nnh": "න්ගියාම්බූන්", "nog": "නොගායි", "nqo": "එන්‘කෝ", "nr": "සෞත් ඩ්බේල්", "nso": "නොදර්න් සොතො", "nus": "නොයර්", "nv": "නවාජො", "ny": "න්යන්ජා", "nyn": "නයන්කෝලෙ", "oc": "ඔසිටාන්", "om": "ඔරොමෝ", "or": "ඔඩියා", "os": "ඔසිටෙක්", "pa": "පන්ජාබි", "pag": "පන්ගසීනන්", "pam": "පන්පන්ග", "pap": "පපියමෙන්ටො", "pau": "පලවුවන්", "pcm": "නෛජීරියන් පෙන්ගින්", "pl": "පෝලන්ත", "prg": "පෘශියන්", "ps": "පෂ්ටො", "pt": "පෘතුගීසි", "pt-BR": "බ්‍රසීල පෘතුගීසි", "pt-PT": "යුරෝපීය පෘතුගීසි", "qu": "ක්වීචුවා", "quc": "කියිචේ", "rap": "රපනුයි", "rar": "රරොටොන්ගන්", "rm": "රොමෑන්ශ්", "rn": "රුන්ඩි", "ro": "රොමේනියානු", "ro-MD": "මොල්ඩවිආනු", "rof": "රෝම්බෝ", "root": "රූට්", "ru": "රුසියානු", "rup": "ඇරොමානියානු", "rw": "කින්යර්වන්ඩා", "rwk": "ර්වා", "sa": "සංස්කෘත", "sad": "සන්ඩවෙ", "sah": "සඛා", "saq": "සම්බුරු", "sat": "සෑන්ටලි", "sba": "න්ගම්බෙ", "sbp": "සංගු", "sc": "සාර්ඩිනිඅන්", "scn": "සිසිලියන්", "sco": "ස්කොට්ස්", "sd": "සින්ධි", "sdh": "දකුණු කුර්දි", "se": "උතුරු සාමි", "seh": "සෙනා", "ses": "කෝයිරාබොරො සෙන්නි", "sg": "සන්ග්‍රෝ", "shi": "ටචේල්හිට්", "shn": "ශාන්", "si": "සිංහල", "sk": "ස්ලෝවැක්", "sl": "ස්ලෝවේනියානු", "sm": "සෑමොඅන්", "sma": "දකුණු සාමි", "smj": "ලුලේ සාමි", "smn": "ඉනාරි සාමි", "sms": "ස්කොල්ට් සාමි", "sn": "ශෝනා", "snk": "සොනින්කෙ", "so": "සෝමාලි", "sq": "ඇල්බේනියානු", "sr": "සර්බියානු", "srn": "ස්‍රන් ටොන්ගො", "ss": "ස්වති", "ssy": "සහො", "st": "සතර්න් සොතො", "su": "සන්ඩනීසියානු", "suk": "සුකුමා", "sv": "ස්වීඩන්", "sw": "ස්වාහිලි", "sw-CD": "කොංගෝ ස්වාහිලි", "swb": "කොමොරියන්", "syr": "ස්‍රයෑක්", "ta": "දෙමළ", "te": "තෙළිඟු", "tem": "ටිම්නෙ", "teo": "ටෙසෝ", "tet": "ටේටම්", "tg": "ටජික්", "th": "තායි", "ti": "ටිග්‍රින්යා", "tig": "ටීග්‍රෙ", "tk": "ටර්ක්මෙන්", "tlh": "ක්ලින්ගොන්", "tn": "ස්වනා", "to": "ටොංගා", "tpi": "ටොක් පිසින්", "tr": "තුර්කි", "trv": "ටරොකො", "ts": "සොන්ග", "tt": "ටාටර්", "tum": "ටුම්බුකා", "tvl": "ටුවාලු", "twq": "ටසවාක්", "ty": "ටහිටියන්", "tyv": "ටුවිනියන්", "tzm": "මධ්‍යම ඇට්ලස් ටමසිට්", "udm": "අඩ්මර්ට්", "ug": "උයිගර්", "uk": "යුක්රේනියානු", "umb": "උබුන්ඩු", "ur": "උර්දු", "uz": "උස්බෙක්", "vai": "වයි", "ve": "වෙන්ඩා", "vi": "වියට්නාම්", "vo": "වොලපූක්", "vun": "වුන්ජෝ", "wa": "වෑලූන්", "wae": "වොල්සර්", "wal": "වොලෙට්ට", "war": "වොරෙය්", "wbp": "වොපිරි", "wo": "වොලොෆ්", "wuu": "වූ චයිනිස්", "xal": "කල්මික්", "xh": "ශෝසා", "xog": "සොගා", "yav": "යන්ග්බෙන්", "ybb": "යෙම්බා", "yi": "යිඩිශ්", "yo": "යොරූබා", "yue": "කැන්ටොනීස්", "zgh": "සම්මත මොරොක්කෝ ටමසිග්ත්", "zh": "චීන", "zh-Hans": "සරල චීන", "zh-Hant": "සාම්ප්‍රදායික චීන", "zu": "සුලු", "zun": "සුනි", "zza": "සාසා"}, "scriptNames": {"Cyrl": "සිරිලික්", "Latn": "ලතින්", "Arab": "අරාබි", "Guru": "ගුර්මුඛි", "Hans": "සුළුකළ", "Hant": "සාම්ප්‍රදායික"}}, + "sk": {"rtl": false, "languageNames": {"aa": "afarčina", "ab": "abcházčina", "ace": "acehčina", "ach": "ačoli", "ada": "adangme", "ady": "adygejčina", "ae": "avestčina", "af": "afrikánčina", "afh": "afrihili", "agq": "aghem", "ain": "ainčina", "ak": "akančina", "akk": "akkadčina", "ale": "aleutčina", "alt": "južná altajčina", "am": "amharčina", "an": "aragónčina", "ang": "stará angličtina", "anp": "angika", "ar": "arabčina", "ar-001": "arabčina (moderná štandardná)", "arc": "aramejčina", "arn": "mapudungun", "arp": "arapažština", "ars": "arabčina (nadždská)", "arw": "arawačtina", "as": "ásamčina", "asa": "asu", "ast": "astúrčina", "av": "avarčina", "awa": "awadhi", "ay": "aymarčina", "az": "azerbajdžančina", "ba": "baškirčina", "bal": "balúčtina", "ban": "balijčina", "bas": "basa", "bax": "bamun", "bbj": "ghomala", "be": "bieloruština", "bej": "bedža", "bem": "bemba", "bez": "bena", "bfd": "bafut", "bg": "bulharčina", "bgn": "západná balúčtina", "bho": "bhódžpurčina", "bi": "bislama", "bik": "bikolčina", "bin": "bini", "bkm": "kom", "bla": "siksika", "bm": "bambarčina", "bn": "bengálčina", "bo": "tibetčina", "br": "bretónčina", "bra": "bradžčina", "brx": "bodo", "bs": "bosniačtina", "bss": "akoose", "bua": "buriatčina", "bug": "bugiština", "bum": "bulu", "byn": "blin", "byv": "medumba", "ca": "katalánčina", "cad": "kaddo", "car": "karibčina", "cay": "kajugčina", "cch": "atsam", "ce": "čečenčina", "ceb": "cebuánčina", "cgg": "kiga", "ch": "čamorčina", "chb": "čibča", "chg": "čagatajčina", "chk": "chuuk", "chm": "marijčina", "chn": "činucký žargón", "cho": "čoktčina", "chp": "čipevajčina", "chr": "čerokí", "chy": "čejenčina", "ckb": "kurdčina (sorání)", "co": "korzičtina", "cop": "koptčina", "cr": "krí", "crh": "krymská tatárčina", "crs": "seychelská kreolčina", "cs": "čeština", "csb": "kašubčina", "cu": "cirkevná slovančina", "cv": "čuvaština", "cy": "waleština", "da": "dánčina", "dak": "dakotčina", "dar": "darginčina", "dav": "taita", "de": "nemčina", "de-AT": "nemčina (rakúska)", "de-CH": "nemčina (švajčiarska spisovná)", "del": "delawarčina", "den": "slavé", "dgr": "dogribčina", "din": "dinkčina", "dje": "zarma", "doi": "dógrí", "dsb": "dolnolužická srbčina", "dua": "duala", "dum": "stredná holandčina", "dv": "maldivčina", "dyo": "jola-fonyi", "dyu": "ďula", "dz": "dzongkha", "dzg": "dazaga", "ebu": "embu", "ee": "eweština", "efi": "efik", "egy": "staroegyptčina", "eka": "ekadžuk", "el": "gréčtina", "elx": "elamčina", "en": "angličtina", "en-AU": "angličtina (austrálska)", "en-CA": "angličtina (kanadská)", "en-GB": "angličtina (britská)", "en-US": "angličtina (americká)", "enm": "stredná angličtina", "eo": "esperanto", "es": "španielčina", "es-419": "španielčina (latinskoamerická)", "es-ES": "španielčina (európska)", "es-MX": "španielčina (mexická)", "et": "estónčina", "eu": "baskičtina", "ewo": "ewondo", "fa": "perzština", "fan": "fangčina", "fat": "fanti", "ff": "fulbčina", "fi": "fínčina", "fil": "filipínčina", "fj": "fidžijčina", "fo": "faerčina", "fon": "fončina", "fr": "francúzština", "fr-CA": "francúzština (kanadská)", "fr-CH": "francúzština (švajčiarska)", "frc": "francúzština (Cajun)", "frm": "stredná francúzština", "fro": "stará francúzština", "frr": "severná frízština", "frs": "východofrízština", "fur": "friulčina", "fy": "západná frízština", "ga": "írčina", "gaa": "ga", "gag": "gagauzština", "gay": "gayo", "gba": "gbaja", "gd": "škótska gaelčina", "gez": "etiópčina", "gil": "kiribatčina", "gl": "galícijčina", "gmh": "stredná horná nemčina", "gn": "guaraníjčina", "goh": "stará horná nemčina", "gon": "góndčina", "gor": "gorontalo", "got": "gótčina", "grb": "grebo", "grc": "starogréčtina", "gsw": "nemčina (švajčiarska)", "gu": "gudžarátčina", "guz": "gusii", "gv": "mančina", "gwi": "kučinčina", "ha": "hauština", "hai": "haida", "haw": "havajčina", "he": "hebrejčina", "hi": "hindčina", "hil": "hiligajnončina", "hit": "chetitčina", "hmn": "hmongčina", "ho": "hiri motu", "hr": "chorvátčina", "hsb": "hornolužická srbčina", "ht": "haitská kreolčina", "hu": "maďarčina", "hup": "hupčina", "hy": "arménčina", "hz": "herero", "ia": "interlingua", "iba": "ibančina", "ibb": "ibibio", "id": "indonézština", "ie": "interlingue", "ig": "igboština", "ii": "s’čchuanská iovčina", "ik": "inupik", "ilo": "ilokánčina", "inh": "inguština", "io": "ido", "is": "islandčina", "it": "taliančina", "iu": "inuktitut", "ja": "japončina", "jbo": "lojban", "jgo": "ngomba", "jmc": "mašame", "jpr": "židovská perzština", "jrb": "židovská arabčina", "jv": "jávčina", "ka": "gruzínčina", "kaa": "karakalpačtina", "kab": "kabylčina", "kac": "kačjinčina", "kaj": "jju", "kam": "kamba", "kaw": "kawi", "kbd": "kabardčina", "kbl": "kanembu", "kcg": "tyap", "kde": "makonde", "kea": "kapverdčina", "kfo": "koro", "kg": "kongčina", "kha": "khasijčina", "kho": "chotančina", "khq": "západná songhajčina", "ki": "kikujčina", "kj": "kuaňama", "kk": "kazaština", "kkj": "kako", "kl": "grónčina", "kln": "kalendžin", "km": "khmérčina", "kmb": "kimbundu", "kn": "kannadčina", "ko": "kórejčina", "koi": "komi-permiačtina", "kok": "konkánčina", "kos": "kusaie", "kpe": "kpelle", "kr": "kanurijčina", "krc": "karačajevsko-balkarčina", "krl": "karelčina", "kru": "kuruchčina", "ks": "kašmírčina", "ksb": "šambala", "ksf": "bafia", "ksh": "kolínčina", "ku": "kurdčina", "kum": "kumyčtina", "kut": "kutenajčina", "kv": "komijčina", "kw": "kornčina", "ky": "kirgizština", "la": "latinčina", "lad": "židovská španielčina", "lag": "langi", "lah": "lahandčina", "lam": "lamba", "lb": "luxemburčina", "lez": "lezginčina", "lg": "gandčina", "li": "limburčina", "lkt": "lakotčina", "ln": "lingalčina", "lo": "laoština", "lol": "mongo", "lou": "kreolčina (Louisiana)", "loz": "lozi", "lrc": "severné luri", "lt": "litovčina", "lu": "lubčina (katanžská)", "lua": "lubčina (luluánska)", "lui": "luiseňo", "lun": "lunda", "lus": "mizorámčina", "luy": "luhja", "lv": "lotyština", "mad": "madurčina", "maf": "mafa", "mag": "magadhčina", "mai": "maithilčina", "mak": "makasarčina", "man": "mandingo", "mas": "masajčina", "mde": "maba", "mdf": "mokšiančina", "mdr": "mandarčina", "men": "mendejčina", "mer": "meru", "mfe": "maurícijská kreolčina", "mg": "malgaština", "mga": "stredná írčina", "mgh": "makua-meetto", "mgo": "meta’", "mh": "marshallčina", "mi": "maorijčina", "mic": "mikmakčina", "min": "minangkabaučina", "mk": "macedónčina", "ml": "malajálamčina", "mn": "mongolčina", "mnc": "mandžuština", "mni": "manípurčina", "moh": "mohawkčina", "mos": "mossi", "mr": "maráthčina", "ms": "malajčina", "mt": "maltčina", "mua": "mundang", "mus": "kríkčina", "mwl": "mirandčina", "mwr": "marwari", "my": "barmčina", "mye": "myene", "myv": "erzjančina", "mzn": "mázandaránčina", "na": "nauruština", "nap": "neapolčina", "naq": "nama", "nb": "nórčina (bokmal)", "nd": "ndebelčina (severná)", "nds": "dolná nemčina", "nds-NL": "dolná saština", "ne": "nepálčina", "new": "nevárčina", "ng": "ndonga", "nia": "niasánčina", "niu": "niueština", "nl": "holandčina", "nl-BE": "flámčina", "nmg": "kwasio", "nn": "nórčina (nynorsk)", "nnh": "ngiemboon", "no": "nórčina", "nog": "nogajčina", "non": "stará nórčina", "nqo": "n’ko", "nr": "ndebelčina (južná)", "nso": "sothčina (severná)", "nus": "nuer", "nv": "navaho", "nwc": "klasická nevárčina", "ny": "ňandža", "nym": "ňamwezi", "nyn": "ňankole", "nyo": "ňoro", "nzi": "nzima", "oc": "okcitánčina", "oj": "odžibva", "om": "oromčina", "or": "uríjčina", "os": "osetčina", "osa": "osedžština", "ota": "osmanská turečtina", "pa": "pandžábčina", "pag": "pangasinančina", "pal": "pahlaví", "pam": "kapampangančina", "pap": "papiamento", "pau": "palaučina", "pcm": "nigerijský pidžin", "peo": "stará perzština", "phn": "feničtina", "pi": "pálí", "pl": "poľština", "pon": "pohnpeiština", "prg": "pruština", "pro": "stará okcitánčina", "ps": "paštčina", "pt": "portugalčina", "pt-BR": "portugalčina (brazílska)", "pt-PT": "portugalčina (európska)", "qu": "kečuánčina", "quc": "quiché", "raj": "radžastančina", "rap": "rapanujčina", "rar": "rarotongská maorijčina", "rm": "rétorománčina", "rn": "rundčina", "ro": "rumunčina", "ro-MD": "moldavčina", "rof": "rombo", "rom": "rómčina", "root": "koreň", "ru": "ruština", "rup": "arumunčina", "rw": "rwandčina", "rwk": "rwa", "sa": "sanskrit", "sad": "sandaweština", "sah": "jakutčina", "sam": "samaritánska aramejčina", "saq": "samburu", "sas": "sasačtina", "sat": "santalčina", "sba": "ngambay", "sbp": "sangu", "sc": "sardínčina", "scn": "sicílčina", "sco": "škótčina", "sd": "sindhčina", "sdh": "južná kurdčina", "se": "saamčina (severná)", "see": "senekčina", "seh": "sena", "sel": "selkupčina", "ses": "koyraboro senni", "sg": "sango", "sga": "stará írčina", "sh": "srbochorvátčina", "shi": "tachelhit", "shn": "šančina", "shu": "čadská arabčina", "si": "sinhalčina", "sid": "sidamo", "sk": "slovenčina", "sl": "slovinčina", "sm": "samojčina", "sma": "saamčina (južná)", "smj": "saamčina (lulská)", "smn": "saamčina (inarijská)", "sms": "saamčina (skoltská)", "sn": "šončina", "snk": "soninke", "so": "somálčina", "sog": "sogdijčina", "sq": "albánčina", "sr": "srbčina", "srn": "surinamčina", "srr": "sererčina", "ss": "svazijčina", "ssy": "saho", "st": "sothčina (južná)", "su": "sundčina", "suk": "sukuma", "sus": "susu", "sux": "sumerčina", "sv": "švédčina", "sw": "swahilčina", "sw-CD": "svahilčina (konžská)", "swb": "komorčina", "syc": "sýrčina (klasická)", "syr": "sýrčina", "ta": "tamilčina", "te": "telugčina", "tem": "temne", "teo": "teso", "ter": "terêna", "tet": "tetumčina", "tg": "tadžičtina", "th": "thajčina", "ti": "tigriňa", "tig": "tigrejčina", "tk": "turkménčina", "tkl": "tokelauština", "tl": "tagalčina", "tlh": "klingónčina", "tli": "tlingitčina", "tmh": "tuaregčina", "tn": "tswančina", "to": "tongčina", "tog": "ňasa tonga", "tpi": "novoguinejský pidžin", "tr": "turečtina", "trv": "taroko", "ts": "tsongčina", "tsi": "cimšjančina", "tt": "tatárčina", "tum": "tumbuka", "tvl": "tuvalčina", "tw": "twi", "twq": "tasawaq", "ty": "tahitčina", "tyv": "tuviančina", "tzm": "tuaregčina (stredomarocká)", "udm": "udmurtčina", "ug": "ujgurčina", "uga": "ugaritčina", "uk": "ukrajinčina", "umb": "umbundu", "ur": "urdčina", "uz": "uzbečtina", "ve": "vendčina", "vi": "vietnamčina", "vo": "volapük", "vot": "vodčina", "vun": "vunjo", "wa": "valónčina", "wae": "walserčina", "wal": "walamčina", "war": "waray", "was": "washo", "wbp": "warlpiri", "wo": "wolofčina", "xal": "kalmyčtina", "xh": "xhoština", "xog": "soga", "yao": "jao", "yap": "japčina", "yav": "jangben", "ybb": "yemba", "yi": "jidiš", "yo": "jorubčina", "yue": "kantončina", "za": "čuangčina", "zap": "zapotéčtina", "zbl": "systém Bliss", "zen": "zenaga", "zgh": "tuaregčina (štandardná marocká)", "zh": "čínština", "zh-Hans": "čínština (zjednodušená)", "zh-Hant": "čínština (tradičná)", "zu": "zuluština", "zun": "zuniština", "zza": "zaza"}, "scriptNames": {"Cyrl": "cyrilika", "Latn": "latinka", "Arab": "arabské", "Guru": "gurmukhi", "Hans": "zjednodušené", "Hant": "tradičné"}}, + "sl": {"rtl": false, "languageNames": {"aa": "afarščina", "ab": "abhaščina", "ace": "ačejščina", "ach": "ačolijščina", "ada": "adangmejščina", "ady": "adigejščina", "ae": "avestijščina", "af": "afrikanščina", "afh": "afrihili", "agq": "aghemščina", "ain": "ainujščina", "ak": "akanščina", "akk": "akadščina", "ale": "aleutščina", "alt": "južna altajščina", "am": "amharščina", "an": "aragonščina", "ang": "stara angleščina", "anp": "angikaščina", "ar": "arabščina", "ar-001": "sodobna standardna arabščina", "arc": "aramejščina", "arn": "mapudungunščina", "arp": "arapaščina", "arw": "aravaščina", "as": "asamščina", "asa": "asujščina", "ast": "asturijščina", "av": "avarščina", "awa": "avadščina", "ay": "ajmarščina", "az": "azerbajdžanščina", "ba": "baškirščina", "bal": "beludžijščina", "ban": "balijščina", "bas": "basa", "be": "beloruščina", "bej": "bedža", "bem": "bemba", "bez": "benajščina", "bg": "bolgarščina", "bgn": "zahodnobalučijščina", "bho": "bodžpuri", "bi": "bislamščina", "bik": "bikolski jezik", "bin": "edo", "bla": "siksika", "bm": "bambarščina", "bn": "bengalščina", "bo": "tibetanščina", "br": "bretonščina", "bra": "bradžbakanščina", "brx": "bodojščina", "bs": "bosanščina", "bua": "burjatščina", "bug": "buginščina", "byn": "blinščina", "ca": "katalonščina", "cad": "kadoščina", "car": "karibski jezik", "ccp": "chakma", "ce": "čečenščina", "ceb": "sebuanščina", "cgg": "čigajščina", "ch": "čamorščina", "chb": "čibčevščina", "chg": "čagatajščina", "chk": "trukeščina", "chm": "marijščina", "chn": "činuški žargon", "cho": "čoktavščina", "chp": "čipevščina", "chr": "čerokeščina", "chy": "čejenščina", "ckb": "soranska kurdščina", "co": "korziščina", "cop": "koptščina", "cr": "krijščina", "crh": "krimska tatarščina", "crs": "sejšelska francoska kreolščina", "cs": "češčina", "csb": "kašubščina", "cu": "stara cerkvena slovanščina", "cv": "čuvaščina", "cy": "valižanščina", "da": "danščina", "dak": "dakotščina", "dar": "darginščina", "dav": "taitajščina", "de": "nemščina", "de-AT": "avstrijska nemščina", "de-CH": "visoka nemščina (Švica)", "del": "delavarščina", "den": "slavejščina", "dgr": "dogrib", "din": "dinka", "dje": "zarmajščina", "doi": "dogri", "dsb": "dolnja lužiška srbščina", "dua": "duala", "dum": "srednja nizozemščina", "dv": "diveščina", "dyo": "jola-fonjiščina", "dyu": "diula", "dz": "dzonka", "dzg": "dazaga", "ebu": "embujščina", "ee": "evenščina", "efi": "efiščina", "egy": "stara egipčanščina", "eka": "ekajuk", "el": "grščina", "elx": "elamščina", "en": "angleščina", "en-AU": "avstralska angleščina", "en-CA": "kanadska angleščina", "en-GB": "angleščina (VB)", "en-US": "angleščina (ZDA)", "enm": "srednja angleščina", "eo": "esperanto", "es": "španščina", "es-419": "španščina (Latinska Amerika)", "es-ES": "evropska španščina", "es-MX": "mehiška španščina", "et": "estonščina", "eu": "baskovščina", "ewo": "evondovščina", "fa": "perzijščina", "fan": "fangijščina", "fat": "fantijščina", "ff": "fulščina", "fi": "finščina", "fil": "filipinščina", "fj": "fidžijščina", "fo": "ferščina", "fon": "fonščina", "fr": "francoščina", "fr-CA": "kanadska francoščina", "fr-CH": "švicarska francoščina", "frc": "cajunska francoščina", "frm": "srednja francoščina", "fro": "stara francoščina", "frr": "severna frizijščina", "frs": "vzhodna frizijščina", "fur": "furlanščina", "fy": "zahodna frizijščina", "ga": "irščina", "gaa": "ga", "gag": "gagavščina", "gay": "gajščina", "gba": "gbajščina", "gd": "škotska gelščina", "gez": "etiopščina", "gil": "kiribatščina", "gl": "galicijščina", "gmh": "srednja visoka nemščina", "gn": "gvaranijščina", "goh": "stara visoka nemščina", "gon": "gondi", "gor": "gorontalščina", "got": "gotščina", "grb": "grebščina", "grc": "stara grščina", "gsw": "nemščina (Švica)", "gu": "gudžaratščina", "guz": "gusijščina", "gv": "manščina", "gwi": "gvičin", "ha": "havščina", "hai": "haidščina", "haw": "havajščina", "he": "hebrejščina", "hi": "hindujščina", "hil": "hiligajnonščina", "hit": "hetitščina", "hmn": "hmonščina", "ho": "hiri motu", "hr": "hrvaščina", "hsb": "gornja lužiška srbščina", "ht": "haitijska kreolščina", "hu": "madžarščina", "hup": "hupa", "hy": "armenščina", "hz": "herero", "ia": "interlingva", "iba": "ibanščina", "ibb": "ibibijščina", "id": "indonezijščina", "ie": "interlingve", "ig": "igboščina", "ii": "sečuanska jiščina", "ik": "inupiaščina", "ilo": "ilokanščina", "inh": "inguščina", "io": "ido", "is": "islandščina", "it": "italijanščina", "iu": "inuktitutščina", "ja": "japonščina", "jbo": "lojban", "jgo": "ngomba", "jmc": "mačamejščina", "jpr": "judovska perzijščina", "jrb": "judovska arabščina", "jv": "javanščina", "ka": "gruzijščina", "kaa": "karakalpaščina", "kab": "kabilščina", "kac": "kačinščina", "kaj": "jju", "kam": "kambaščina", "kaw": "kavi", "kbd": "kabardinščina", "kcg": "tjapska nigerijščina", "kde": "makondščina", "kea": "zelenortskootoška kreolščina", "kfo": "koro", "kg": "kongovščina", "kha": "kasi", "kho": "kotanščina", "khq": "koyra chiini", "ki": "kikujščina", "kj": "kvanjama", "kk": "kazaščina", "kkj": "kako", "kl": "grenlandščina", "kln": "kalenjinščina", "km": "kmerščina", "kmb": "kimbundu", "kn": "kanareščina", "ko": "korejščina", "koi": "komi-permjaščina", "kok": "konkanščina", "kos": "kosrajščina", "kpe": "kpelejščina", "kr": "kanurščina", "krc": "karačaj-balkarščina", "krl": "karelščina", "kru": "kuruk", "ks": "kašmirščina", "ksb": "šambala", "ksf": "bafia", "ksh": "kölnsko narečje", "ku": "kurdščina", "kum": "kumiščina", "kut": "kutenajščina", "kv": "komijščina", "kw": "kornijščina", "ky": "kirgiščina", "la": "latinščina", "lad": "ladinščina", "lag": "langijščina", "lah": "landa", "lam": "lamba", "lb": "luksemburščina", "lez": "lezginščina", "lg": "ganda", "li": "limburščina", "lkt": "lakotščina", "ln": "lingala", "lo": "laoščina", "lol": "mongo", "lou": "louisianska kreolščina", "loz": "lozi", "lrc": "severna lurijščina", "lt": "litovščina", "lu": "luba-katanga", "lua": "luba-lulua", "lui": "luisenščina", "lun": "lunda", "lus": "mizojščina", "luy": "luhijščina", "lv": "latvijščina", "mad": "madurščina", "mag": "magadščina", "mai": "maitili", "mak": "makasarščina", "man": "mandingo", "mas": "masajščina", "mdf": "mokšavščina", "mdr": "mandarščina", "men": "mende", "mer": "meru", "mfe": "morisjenščina", "mg": "malagaščina", "mga": "srednja irščina", "mgh": "makuva-meto", "mgo": "meta", "mh": "marshallovščina", "mi": "maorščina", "mic": "mikmaščina", "min": "minangkabau", "mk": "makedonščina", "ml": "malajalamščina", "mn": "mongolščina", "mnc": "mandžurščina", "mni": "manipurščina", "moh": "mohoščina", "mos": "mosijščina", "mr": "maratščina", "ms": "malajščina", "mt": "malteščina", "mua": "mundang", "mus": "creekovščina", "mwl": "mirandeščina", "mwr": "marvarščina", "my": "burmanščina", "myv": "erzjanščina", "mzn": "mazanderanščina", "na": "naurujščina", "nan": "min nan kitajščina", "nap": "napolitanščina", "naq": "khoekhoe", "nb": "knjižna norveščina", "nd": "severna ndebelščina", "nds": "nizka nemščina", "nds-NL": "nizka saščina", "ne": "nepalščina", "new": "nevarščina", "ng": "ndonga", "nia": "niaščina", "niu": "niuejščina", "nl": "nizozemščina", "nl-BE": "flamščina", "nmg": "kwasio", "nn": "novonorveščina", "nnh": "ngiemboonščina", "no": "norveščina", "nog": "nogajščina", "non": "stara nordijščina", "nqo": "n’ko", "nr": "južna ndebelščina", "nso": "severna sotščina", "nus": "nuerščina", "nv": "navajščina", "nwc": "klasična nevarščina", "ny": "njanščina", "nym": "njamveščina", "nyn": "njankole", "nyo": "njoro", "nzi": "nzima", "oc": "okcitanščina", "oj": "anašinabščina", "om": "oromo", "or": "odijščina", "os": "osetinščina", "osa": "osage", "ota": "otomanska turščina", "pa": "pandžabščina", "pag": "pangasinanščina", "pam": "pampanščina", "pap": "papiamentu", "pau": "palavanščina", "pcm": "nigerijski pidžin", "peo": "stara perzijščina", "phn": "feničanščina", "pi": "palijščina", "pl": "poljščina", "pon": "ponpejščina", "prg": "stara pruščina", "pro": "stara provansalščina", "ps": "paštunščina", "pt": "portugalščina", "pt-BR": "brazilska portugalščina", "pt-PT": "evropska portugalščina", "qu": "kečuanščina", "quc": "quiche", "raj": "radžastanščina", "rap": "rapanujščina", "rar": "rarotongščina", "rm": "retoromanščina", "rn": "rundščina", "ro": "romunščina", "ro-MD": "moldavščina", "rof": "rombo", "rom": "romščina", "root": "rootščina", "ru": "ruščina", "rup": "aromunščina", "rw": "ruandščina", "rwk": "rwa", "sa": "sanskrt", "sad": "sandavščina", "sah": "jakutščina", "sam": "samaritanska aramejščina", "saq": "samburščina", "sas": "sasaščina", "sat": "santalščina", "sba": "ngambajščina", "sbp": "sangujščina", "sc": "sardinščina", "scn": "sicilijanščina", "sco": "škotščina", "sd": "sindščina", "sdh": "južna kurdščina", "se": "severna samijščina", "seh": "sena", "sel": "selkupščina", "ses": "koyraboro senni", "sg": "sango", "sga": "stara irščina", "sh": "srbohrvaščina", "shi": "tahelitska berberščina", "shn": "šanščina", "si": "sinhalščina", "sid": "sidamščina", "sk": "slovaščina", "sl": "slovenščina", "sm": "samoanščina", "sma": "južna samijščina", "smj": "luleška samijščina", "smn": "inarska samijščina", "sms": "skoltska samijščina", "sn": "šonščina", "snk": "soninke", "so": "somalščina", "sq": "albanščina", "sr": "srbščina", "srn": "surinamska kreolščina", "srr": "sererščina", "ss": "svazijščina", "ssy": "saho", "st": "sesoto", "su": "sundanščina", "suk": "sukuma", "sus": "susujščina", "sux": "sumerščina", "sv": "švedščina", "sw": "svahili", "sw-CD": "kongoški svahili", "swb": "šikomor", "syc": "klasična sirščina", "syr": "sirščina", "ta": "tamilščina", "te": "telugijščina", "tem": "temnejščina", "teo": "teso", "tet": "tetumščina", "tg": "tadžiščina", "th": "tajščina", "ti": "tigrajščina", "tig": "tigrejščina", "tiv": "tivščina", "tk": "turkmenščina", "tkl": "tokelavščina", "tl": "tagalogščina", "tlh": "klingonščina", "tli": "tlingitščina", "tmh": "tamajaščina", "tn": "cvanščina", "to": "tongščina", "tog": "malavijska tongščina", "tpi": "tok pisin", "tr": "turščina", "trv": "taroko", "ts": "congščina", "tsi": "tsimščina", "tt": "tatarščina", "tum": "tumbukščina", "tvl": "tuvalujščina", "tw": "tvi", "twq": "tasawaq", "ty": "tahitščina", "tyv": "tuvinščina", "tzm": "tamašek (Srednji Atlas)", "udm": "udmurtščina", "ug": "ujgurščina", "uga": "ugaritski jezik", "uk": "ukrajinščina", "umb": "umbundščina", "ur": "urdujščina", "uz": "uzbeščina", "vai": "vajščina", "ve": "venda", "vi": "vietnamščina", "vo": "volapuk", "vot": "votjaščina", "vun": "vunjo", "wa": "valonščina", "wae": "walser", "wal": "valamščina", "war": "varajščina", "was": "vašajščina", "wbp": "varlpirščina", "wo": "volofščina", "xal": "kalmiščina", "xh": "koščina", "xog": "sogščina", "yao": "jaojščina", "yap": "japščina", "yav": "jangben", "ybb": "jembajščina", "yi": "jidiš", "yo": "jorubščina", "yue": "kantonščina", "zap": "zapoteščina", "zbl": "znakovni jezik Bliss", "zen": "zenaščina", "zgh": "standardni maroški tamazig", "zh": "kitajščina", "zh-Hans": "poenostavljena kitajščina", "zh-Hant": "tradicionalna kitajščina", "zu": "zulujščina", "zun": "zunijščina", "zza": "zazajščina"}, "scriptNames": {"Cyrl": "cirilica", "Latn": "latinica", "Arab": "arabski", "Guru": "gurmuki", "Tfng": "tifinajski", "Vaii": "zlogovna pisava vai", "Hans": "poenostavljena pisava han", "Hant": "tradicionalna pisava han"}}, + "so": {"rtl": false, "languageNames": {"af": "Afrikaanka", "agq": "Ageem", "ak": "Akan", "am": "Axmaari", "ar": "Carabi", "ar-001": "Carabiga rasmiga ah", "as": "Asaamiis", "asa": "Asu", "ast": "Astuuriyaan", "az": "Asarbayjan", "bas": "Basaa", "be": "Beleruusiyaan", "bem": "Bemba", "bez": "Bena", "bg": "Bulgeeriyaan", "bm": "Bambaara", "bn": "Bangladesh", "bo": "Tibeetaan", "br": "Biriton", "brx": "Bodo", "bs": "Bosniyaan", "ca": "Katalaan", "ccp": "Jakma", "ce": "Jejen", "ceb": "Sebuano", "cgg": "Jiga", "chr": "Jerookee", "ckb": "Bartamaha Kurdish", "co": "Korsikan", "cs": "Jeeg", "cu": "Kaniisadda Islaafik", "cy": "Welsh", "da": "Dhaanish", "dav": "Taiita", "de": "Jarmal", "de-AT": "Jarmal (Awsteriya)", "de-CH": "Jarmal (Iswiiserlaand)", "dje": "Sarma", "dsb": "Soorbiyaanka Hoose", "dua": "Duaala", "dyo": "Joola-Foonyi", "dz": "D’zongqa", "ebu": "Embuu", "ee": "Eewe", "el": "Giriik", "en": "Ingiriisi", "en-AU": "Ingiriis Austaraaliyaan", "en-CA": "Ingiriis Kanadiyaan", "en-GB": "Ingiriis Biritish", "en-US": "Ingiriis Maraykan", "eo": "Isberaanto", "es": "Isbaanish", "es-419": "Isbaanishka Laatiin Ameerika", "es-ES": "Isbaanish (Isbayn)", "es-MX": "Isbaanish (Meksiko)", "et": "Istooniyaan", "eu": "Basquu", "ewo": "Eewondho", "fa": "Faarisi", "ff": "Fuulah", "fi": "Finishka", "fil": "Tagalog", "fo": "Farowsi", "fr": "Faransiis", "fr-CA": "Faransiiska Kanada", "fr-CH": "Faransiis (Iswiiserlaand)", "fur": "Firiyuuliyaan", "fy": "Firiisiyan Galbeed", "ga": "Ayrish", "gd": "Iskot Giilik", "gl": "Galiisiyaan", "gsw": "Jarmal Iswiis", "gu": "Gujaraati", "guz": "Guusii", "gv": "Mankis", "ha": "Hawsa", "haw": "Hawaay", "he": "Cibraani", "hi": "Hindi", "hmn": "Hamong", "hr": "Koro’eeshiyaan", "hsb": "Sorobiyaanka Sare", "ht": "Heeytiyaan Karawle", "hu": "Hangariyaan", "hy": "Armeeniyaan", "ia": "Interlinguwa", "id": "Indunusiyaan", "ig": "Igbo", "ii": "Sijuwan Yi", "is": "Ayslandays", "it": "Talyaani", "ja": "Jabaaniis", "jgo": "Ingoomba", "jmc": "Chaga", "jv": "Jafaaniis", "ka": "Joorijiyaan", "kab": "Kabayle", "kam": "Kaamba", "kde": "Kimakonde", "kea": "Kabuferdiyanu", "khq": "Koyra Jiini", "ki": "Kikuuyu", "kk": "Kasaaq", "kkj": "Kaako", "kl": "Kalaallisuut", "kln": "Kalenjiin", "km": "Kamboodhian", "kn": "Kannadays", "ko": "Kuuriyaan", "kok": "Konkani", "ks": "Kaashmiir", "ksb": "Shambaala", "ksf": "Bafiya", "ksh": "Kologniyaan", "ku": "Kurdishka", "kw": "Kornish", "ky": "Kirgiis", "la": "Laatiin", "lag": "Laangi", "lb": "Luksaamboorgish", "lg": "Gandha", "lkt": "Laakoota", "ln": "Lingala", "lo": "Lao", "lrc": "Koonfurta Luuri", "lt": "Lituwaanays", "lu": "Luuba-kataanga", "luo": "Luwada", "luy": "Luhya", "lv": "Laatfiyaan", "mas": "Masaay", "mer": "Meeru", "mfe": "Moorisayn", "mg": "Malagaasi", "mgh": "Makhuwa", "mgo": "Meetaa", "mi": "Maaoori", "mk": "Masadooniyaan", "ml": "Malayalam", "mn": "Mangooli", "mr": "Maarati", "ms": "Malaay", "mt": "Maltiis", "mua": "Miyundhaang", "my": "Burmese", "mzn": "Masanderaani", "naq": "Nama", "nb": "Noorwijiyaan Bokma", "nd": "Indhebeele", "nds": "Jarmal Hooseeya", "nds-NL": "Jarmal Hooseeya (Nederlaands)", "ne": "Nebaali", "nl": "Holandays", "nl-BE": "Af faleemi", "nmg": "Kuwaasiyo", "nn": "Nowrwejiyan (naynoroski)", "nnh": "Ingiyembuun", "nus": "Nuweer", "ny": "Inyaanja", "nyn": "Inyankoole", "om": "Oromo", "or": "Oodhiya", "os": "Oseetic", "pa": "Bunjaabi", "pl": "Boolish", "prg": "Brashiyaanki Hore", "ps": "Bashtuu", "pt": "Boortaqiis", "pt-BR": "Boortaqiiska Baraasiil", "pt-PT": "Boortaqiis (Boortuqaal)", "qu": "Quwejuwa", "rm": "Romaanis", "rn": "Rundhi", "ro": "Romanka", "ro-MD": "Romanka (Moldofa)", "rof": "Rombo", "ru": "Ruush", "rw": "Ruwaandha", "rwk": "Raawa", "sa": "Sanskrit", "sah": "Saaqa", "saq": "Sambuuru", "sbp": "Sangu", "sd": "Siindhi", "se": "Koonfurta Saami", "seh": "Seena", "ses": "Koyraboro Seenni", "sg": "Sango", "shi": "Shilha", "si": "Sinhaleys", "sk": "Isloofaak", "sl": "Islofeeniyaan", "sm": "Samowan", "smn": "Inaari Saami", "sn": "Shoona", "so": "Soomaali", "sq": "Albeeniyaan", "sr": "Seerbiyaan", "st": "Sesooto", "su": "Suudaaniis", "sv": "Swiidhis", "sw": "Sawaaxili", "sw-CD": "Sawaaxili (Jamhuuriyadda Dimuquraadiga Kongo)", "ta": "Tamiil", "te": "Teluugu", "teo": "Teeso", "tg": "Taajik", "th": "Taaylandays", "ti": "Tigrinya", "tk": "Turkumaanish", "to": "Toongan", "tr": "Turkish", "tt": "Taatar", "twq": "Tasaawaq", "tzm": "Bartamaha Atlaas Tamasayt", "ug": "Uighur", "uk": "Yukreeniyaan", "ur": "Urduu", "uz": "Usbakis", "vai": "Faayi", "vi": "Fiitnaamays", "vo": "Folabuuk", "vun": "Fuunjo", "wae": "Walseer", "wo": "Woolof", "xh": "Hoosta", "xog": "Sooga", "yav": "Yaangbeen", "yi": "Yadhish", "yo": "Yoruuba", "yue": "Kantoneese", "zgh": "Morokaanka Tamasayt Rasmiga", "zh": "Shiinaha Mandarin", "zh-Hans": "Shiinaha Rasmiga ah", "zh-Hant": "Shiinahii Hore", "zu": "Zuulu"}, "scriptNames": {"Cyrl": "Siriylik", "Latn": "Laatiin", "Arab": "Carabi", "Hans": "La fududeeyay", "Hant": "Hore"}}, + "sq": {"rtl": false, "languageNames": {"aa": "afarisht", "ab": "abkazisht", "ace": "akinezisht", "ada": "andangmeisht", "ady": "adigisht", "af": "afrikanisht", "agq": "agemisht", "ain": "ajnuisht", "ak": "akanisht", "ale": "aleutisht", "alt": "altaishte jugore", "am": "amarisht", "an": "aragonezisht", "anp": "angikisht", "ar": "arabisht", "ar-001": "arabishte standarde moderne", "arn": "mapuçisht", "arp": "arapahoisht", "as": "asamezisht", "asa": "asuisht", "ast": "asturisht", "av": "avarikisht", "awa": "auadhisht", "ay": "ajmarisht", "az": "azerbajxhanisht", "ba": "bashkirisht", "ban": "balinezisht", "bas": "basaisht", "be": "bjellorusisht", "bem": "bembaisht", "bez": "benaisht", "bg": "bullgarisht", "bgn": "balokishte perëndimore", "bho": "boxhpurisht", "bi": "bislamisht", "bin": "binisht", "bla": "siksikaisht", "bm": "bambarisht", "bn": "bengalisht", "bo": "tibetisht", "br": "bretonisht", "brx": "bodoisht", "bs": "boshnjakisht", "bug": "buginezisht", "byn": "blinisht", "ca": "katalonisht", "ccp": "çakmaisht", "ce": "çeçenisht", "ceb": "sebuanisht", "cgg": "çigisht", "ch": "kamoroisht", "chk": "çukezisht", "chm": "marisht", "cho": "çoktauisht", "chr": "çerokisht", "chy": "çejenisht", "ckb": "kurdishte qendrore", "co": "korsikisht", "crs": "frëngjishte kreole seselve", "cs": "çekisht", "cu": "sllavishte kishtare", "cv": "çuvashisht", "cy": "uellsisht", "da": "danisht", "dak": "dakotisht", "dar": "darguaisht", "dav": "tajtaisht", "de": "gjermanisht", "de-AT": "gjermanishte austriake", "de-CH": "gjermanishte zvicerane (dialekti i Alpeve)", "dgr": "dogribisht", "dje": "zarmaisht", "dsb": "sorbishte e poshtme", "dua": "dualaisht", "dv": "divehisht", "dyo": "xhulafonjisht", "dz": "xhongaisht", "dzg": "dazagauisht", "ebu": "embuisht", "ee": "eveisht", "efi": "efikisht", "eka": "ekajukisht", "el": "greqisht", "en": "anglisht", "en-AU": "anglishte australiane", "en-CA": "anglishte kanadeze", "en-GB": "anglishte britanike", "en-US": "anglishte amerikane", "eo": "esperanto", "es": "spanjisht", "es-419": "spanjishte amerikano-latine", "es-ES": "spanjishte evropiane", "es-MX": "spanjishte meksikane", "et": "estonisht", "eu": "baskisht", "ewo": "euondoisht", "fa": "persisht", "ff": "fulaisht", "fi": "finlandisht", "fil": "filipinisht", "fj": "fixhianisht", "fo": "faroisht", "fon": "fonisht", "fr": "frëngjisht", "fr-CA": "frëngjishte kanadeze", "fr-CH": "frëngjishte zvicerane", "fur": "friulianisht", "fy": "frizianishte perëndimore", "ga": "irlandisht", "gaa": "gaisht", "gag": "gagauzisht", "gd": "galishte skoceze", "gez": "gizisht", "gil": "gilbertazisht", "gl": "galicisht", "gn": "guaranisht", "gor": "gorontaloisht", "gsw": "gjermanishte zvicerane", "gu": "guxharatisht", "guz": "gusisht", "gv": "manksisht", "gwi": "guiçinisht", "ha": "hausisht", "haw": "havaisht", "he": "hebraisht", "hi": "indisht", "hil": "hiligajnonisht", "hmn": "hmongisht", "hr": "kroatisht", "hsb": "sorbishte e sipërme", "ht": "haitisht", "hu": "hungarisht", "hup": "hupaisht", "hy": "armenisht", "hz": "hereroisht", "ia": "interlingua", "iba": "ibanisht", "ibb": "ibibioisht", "id": "indonezisht", "ie": "gjuha oksidentale", "ig": "igboisht", "ii": "sishuanisht", "ilo": "ilokoisht", "inh": "ingushisht", "io": "idoisht", "is": "islandisht", "it": "italisht", "iu": "inuktitutisht", "ja": "japonisht", "jbo": "lojbanisht", "jgo": "ngombisht", "jmc": "maçamisht", "jv": "javanisht", "ka": "gjeorgjisht", "kab": "kabilisht", "kac": "kaçinisht", "kaj": "kajeisht", "kam": "kambaisht", "kbd": "kabardianisht", "kcg": "tjapisht", "kde": "makondisht", "kea": "kreolishte e Kepit të Gjelbër", "kfo": "koroisht", "kha": "kasisht", "khq": "kojraçinisht", "ki": "kikujuisht", "kj": "kuanjamaisht", "kk": "kazakisht", "kkj": "kakoisht", "kl": "kalalisutisht", "kln": "kalenxhinisht", "km": "kmerisht", "kmb": "kimbunduisht", "kn": "kanadisht", "ko": "koreanisht", "koi": "komi-parmjakisht", "kok": "konkanisht", "kpe": "kpeleisht", "kr": "kanurisht", "krc": "karaçaj-balkarisht", "krl": "karelianisht", "kru": "kurukisht", "ks": "kashmirisht", "ksb": "shambalisht", "ksf": "bafianisht", "ksh": "këlnisht", "ku": "kurdisht", "kum": "kumikisht", "kv": "komisht", "kw": "kornisht", "ky": "kirgizisht", "la": "latinisht", "lad": "ladinoisht", "lag": "langisht", "lb": "luksemburgisht", "lez": "lezgianisht", "lg": "gandaisht", "li": "limburgisht", "lkt": "lakotisht", "ln": "lingalisht", "lo": "laosisht", "loz": "lozisht", "lrc": "lurishte veriore", "lt": "lituanisht", "lu": "luba-katangaisht", "lua": "luba-luluaisht", "lun": "lundaisht", "luo": "luoisht", "lus": "mizoisht", "luy": "lujaisht", "lv": "letonisht", "mad": "madurezisht", "mag": "magaisht", "mai": "maitilisht", "mak": "makasarisht", "mas": "masaisht", "mdf": "mokshaisht", "men": "mendisht", "mer": "meruisht", "mfe": "morisjenisht", "mg": "madagaskarisht", "mgh": "makua-mitoisht", "mgo": "metaisht", "mh": "marshallisht", "mi": "maorisht", "mic": "mikmakisht", "min": "minangkabauisht", "mk": "maqedonisht", "ml": "malajalamisht", "mn": "mongolisht", "mni": "manipurisht", "moh": "mohokisht", "mos": "mosisht", "mr": "maratisht", "ms": "malajisht", "mt": "maltisht", "mua": "mundangisht", "mus": "krikisht", "mwl": "mirandisht", "my": "birmanisht", "myv": "erzjaisht", "mzn": "mazanderanisht", "na": "nauruisht", "nap": "napoletanisht", "naq": "namaisht", "nb": "norvegjishte letrare", "nd": "ndebelishte veriore", "nds": "gjermanishte e vendeve të ulëta", "nds-NL": "gjermanishte saksone e vendeve të ulëta", "ne": "nepalisht", "new": "neuarisht", "ng": "ndongaisht", "nia": "niasisht", "niu": "niueanisht", "nl": "holandisht", "nl-BE": "flamandisht", "nmg": "kuasisht", "nn": "norvegjishte nynorsk", "nnh": "ngiembunisht", "no": "norvegjisht", "nog": "nogajisht", "nqo": "nkoisht", "nr": "ndebelishte jugore", "nso": "sotoishte veriore", "nus": "nuerisht", "nv": "navahoisht", "ny": "nianjisht", "nyn": "niankolisht", "oc": "oksitanisht", "om": "oromoisht", "or": "odisht", "os": "osetisht", "pa": "punxhabisht", "pag": "pangasinanisht", "pam": "pampangaisht", "pap": "papiamentisht", "pau": "paluanisht", "pcm": "pixhinishte nigeriane", "pl": "polonisht", "prg": "prusisht", "ps": "pashtoisht", "pt": "portugalisht", "pt-BR": "portugalishte braziliane", "pt-PT": "portugalishte evropiane", "qu": "keçuaisht", "quc": "kiçeisht", "rap": "rapanuisht", "rar": "rarontonganisht", "rm": "retoromanisht", "rn": "rundisht", "ro": "rumanisht", "ro-MD": "moldavisht", "rof": "romboisht", "root": "rutisht", "ru": "rusisht", "rup": "vllahisht", "rw": "kiniaruandisht", "rwk": "ruaisht", "sa": "sanskritisht", "sad": "sandauisht", "sah": "sakaisht", "saq": "samburisht", "sat": "santalisht", "sba": "ngambajisht", "sbp": "sanguisht", "sc": "sardenjisht", "scn": "siçilianisht", "sco": "skotisht", "sd": "sindisht", "sdh": "kurdishte jugore", "se": "samishte veriore", "seh": "senaisht", "ses": "senishte kojrabore", "sg": "sangoisht", "sh": "serbo-kroatisht", "shi": "taçelitisht", "shn": "shanisht", "si": "sinhalisht", "sk": "sllovakisht", "sl": "sllovenisht", "sm": "samoanisht", "sma": "samishte jugore", "smj": "samishte lule", "smn": "samishte inari", "sms": "samishte skolti", "sn": "shonisht", "snk": "soninkisht", "so": "somalisht", "sq": "shqip", "sr": "serbisht", "srn": "srananisht (sranantongoisht)", "ss": "suatisht", "ssy": "sahoisht", "st": "sotoishte jugore", "su": "sundanisht", "suk": "sukumaisht", "sv": "suedisht", "sw": "suahilisht", "sw-CD": "suahilishte kongoleze", "swb": "kamorianisht", "syr": "siriakisht", "ta": "tamilisht", "te": "teluguisht", "tem": "timneisht", "teo": "tesoisht", "tet": "tetumisht", "tg": "taxhikisht", "th": "tajlandisht", "ti": "tigrinjaisht", "tig": "tigreisht", "tk": "turkmenisht", "tlh": "klingonisht", "tn": "cuanaisht", "to": "tonganisht", "tpi": "pisinishte toku", "tr": "turqisht", "trv": "torokoisht", "ts": "congaisht", "tt": "tatarisht", "tum": "tumbukaisht", "tvl": "tuvaluisht", "tw": "tuisht", "twq": "tasavakisht", "ty": "tahitisht", "tyv": "tuvinianisht", "tzm": "tamazajtisht e Atlasit Qendror", "udm": "udmurtisht", "ug": "ujgurisht", "uk": "ukrainisht", "umb": "umbunduisht", "ur": "urduisht", "uz": "uzbekisht", "vai": "vaisht", "ve": "vendaisht", "vi": "vietnamisht", "vo": "volapykisht", "vun": "vunxhoisht", "wa": "ualunisht", "wae": "ualserisht", "wal": "ulajtaisht", "war": "uarajisht", "wbp": "uarlpirisht", "wo": "uolofisht", "xal": "kalmikisht", "xh": "xhosaisht", "xog": "sogisht", "yav": "jangbenisht", "ybb": "jembaisht", "yi": "jidisht", "yo": "jorubaisht", "yue": "kantonezisht", "zgh": "tamaziatishte standarde marokene", "zh": "kinezisht", "zh-Hans": "kinezishte e thjeshtuar", "zh-Hant": "kinezishte tradicionale", "zu": "zuluisht", "zun": "zunisht", "zza": "zazaisht"}, "scriptNames": {"Cyrl": "cirilik", "Latn": "latin", "Arab": "arabik", "Guru": "gurmuk", "Hans": "i thjeshtuar", "Hant": "tradicional"}}, + "sr": {"rtl": false, "languageNames": {"aa": "афарски", "ab": "абхаски", "ace": "ацешки", "ach": "аколи", "ada": "адангме", "ady": "адигејски", "ae": "авестански", "af": "африканс", "afh": "африхили", "agq": "агем", "ain": "аину", "ak": "акански", "akk": "акадијски", "ale": "алеутски", "alt": "јужноалтајски", "am": "амхарски", "an": "арагонски", "ang": "староенглески", "anp": "ангика", "ar": "арапски", "ar-001": "савремени стандардни арапски", "arc": "арамејски", "arn": "мапуче", "arp": "арапахо", "arw": "аравачки", "as": "асамски", "asa": "асу", "ast": "астуријски", "av": "аварски", "awa": "авади", "ay": "ајмара", "az": "азербејџански", "ba": "башкирски", "bal": "белучки", "ban": "балијски", "bas": "баса", "be": "белоруски", "bej": "беџа", "bem": "бемба", "bez": "бена", "bg": "бугарски", "bgn": "западни белучки", "bho": "боџпури", "bi": "бислама", "bik": "бикол", "bin": "бини", "bla": "сисика", "bm": "бамбара", "bn": "бенгалски", "bo": "тибетански", "br": "бретонски", "bra": "брај", "brx": "бодо", "bs": "босански", "bua": "бурјатски", "bug": "бугијски", "byn": "блински", "ca": "каталонски", "cad": "кадо", "car": "карипски", "cch": "атсам", "ce": "чеченски", "ceb": "себуански", "cgg": "чига", "ch": "чаморо", "chb": "чипча", "chg": "чагатај", "chk": "чучки", "chm": "мари", "chn": "чинучки", "cho": "чоктавски", "chp": "чипевјански", "chr": "чероки", "chy": "чејенски", "ckb": "централни курдски", "co": "корзикански", "cop": "коптски", "cr": "кри", "crh": "кримскотатарски", "crs": "сејшелски креолски француски", "cs": "чешки", "csb": "кашупски", "cu": "црквенословенски", "cv": "чувашки", "cy": "велшки", "da": "дански", "dak": "дакота", "dar": "даргински", "dav": "таита", "de": "немачки", "de-AT": "немачки (Аустрија)", "de-CH": "швајцарски високи немачки", "del": "делаверски", "den": "слејви", "dgr": "догрипски", "din": "динка", "dje": "зарма", "doi": "догри", "dsb": "доњи лужичкосрпски", "dua": "дуала", "dum": "средњехоландски", "dv": "малдивски", "dyo": "џола фоњи", "dyu": "ђула", "dz": "џонга", "dzg": "дазага", "ebu": "ембу", "ee": "еве", "efi": "ефички", "egy": "староегипатски", "eka": "екаџук", "el": "грчки", "elx": "еламитски", "en": "енглески", "en-AU": "енглески (Аустралија)", "en-CA": "енглески (Канада)", "en-GB": "енглески (Велика Британија)", "en-US": "енглески (Сједињене Америчке Државе)", "enm": "средњеенглески", "eo": "есперанто", "es": "шпански", "es-419": "шпански (Латинска Америка)", "es-ES": "шпански (Европа)", "es-MX": "шпански (Мексико)", "et": "естонски", "eu": "баскијски", "ewo": "евондо", "fa": "персијски", "fan": "фанг", "fat": "фанти", "ff": "фула", "fi": "фински", "fil": "филипински", "fj": "фиџијски", "fo": "фарски", "fon": "фон", "fr": "француски", "fr-CA": "француски (Канада)", "fr-CH": "француски (Швајцарска)", "frc": "кајунски француски", "frm": "средњефранцуски", "fro": "старофранцуски", "frr": "севернофризијски", "frs": "источнофризијски", "fur": "фриулски", "fy": "западни фризијски", "ga": "ирски", "gaa": "га", "gag": "гагауз", "gay": "гајо", "gba": "гбаја", "gd": "шкотски гелски", "gez": "геез", "gil": "гилбертски", "gl": "галицијски", "gmh": "средњи високонемачки", "gn": "гварани", "goh": "старонемачки", "gon": "гонди", "gor": "горонтало", "got": "готски", "grb": "гребо", "grc": "старогрчки", "gsw": "немачки (Швајцарска)", "gu": "гуџарати", "guz": "гуси", "gv": "манкс", "gwi": "гвичински", "ha": "хауса", "hai": "хаида", "haw": "хавајски", "he": "хебрејски", "hi": "хинди", "hil": "хилигајнонски", "hit": "хетитски", "hmn": "хмоншки", "ho": "хири моту", "hr": "хрватски", "hsb": "горњи лужичкосрпски", "ht": "хаићански", "hu": "мађарски", "hup": "хупа", "hy": "јерменски", "hz": "хереро", "ia": "интерлингва", "iba": "ибански", "ibb": "ибибио", "id": "индонежански", "ie": "интерлингве", "ig": "игбо", "ii": "сечуански ји", "ik": "инупик", "ilo": "илоко", "inh": "ингушки", "io": "идо", "is": "исландски", "it": "италијански", "iu": "инуктитутски", "ja": "јапански", "jbo": "ложбан", "jgo": "нгомба", "jmc": "мачаме", "jpr": "јудео-персијски", "jrb": "јудео-арапски", "jv": "јавански", "ka": "грузијски", "kaa": "кара-калпашки", "kab": "кабиле", "kac": "качински", "kaj": "џу", "kam": "камба", "kaw": "кави", "kbd": "кабардијски", "kcg": "тјап", "kde": "маконде", "kea": "зеленортски", "kfo": "коро", "kg": "конго", "kha": "каси", "kho": "котанешки", "khq": "којра чиини", "ki": "кикују", "kj": "квањама", "kk": "казашки", "kkj": "како", "kl": "гренландски", "kln": "каленџински", "km": "кмерски", "kmb": "кимбунду", "kn": "канада", "ko": "корејски", "koi": "коми-пермски", "kok": "конкани", "kos": "косренски", "kpe": "кпеле", "kr": "канури", "krc": "карачајско-балкарски", "kri": "крио", "krl": "карелски", "kru": "курук", "ks": "кашмирски", "ksb": "шамбала", "ksf": "бафија", "ksh": "келнски", "ku": "курдски", "kum": "кумички", "kut": "кутенај", "kv": "коми", "kw": "корнволски", "ky": "киргиски", "la": "латински", "lad": "ладино", "lag": "ланги", "lah": "ланда", "lam": "ламба", "lb": "луксембуршки", "lez": "лезгински", "lg": "ганда", "li": "лимбуршки", "lkt": "лакота", "ln": "лингала", "lo": "лаоски", "lol": "монго", "lou": "луизијански креолски", "loz": "лози", "lrc": "северни лури", "lt": "литвански", "lu": "луба-катанга", "lua": "луба-лулуа", "lui": "луисењо", "lun": "лунда", "luo": "луо", "lus": "мизо", "luy": "лујиа", "lv": "летонски", "mad": "мадурски", "mag": "магахи", "mai": "маитили", "mak": "макасарски", "man": "мандинго", "mas": "масајски", "mdf": "мокша", "mdr": "мандар", "men": "менде", "mer": "меру", "mfe": "морисјен", "mg": "малгашки", "mga": "средњеирски", "mgh": "макува-мито", "mgo": "мета", "mh": "маршалски", "mi": "маорски", "mic": "микмак", "min": "минангкабау", "mk": "македонски", "ml": "малајалам", "mn": "монголски", "mnc": "манџурски", "mni": "манипурски", "moh": "мохочки", "mos": "моси", "mr": "марати", "ms": "малајски", "mt": "малтешки", "mua": "мунданг", "mus": "кришки", "mwl": "мирандски", "mwr": "марвари", "my": "бурмански", "myv": "ерзја", "mzn": "мазандерански", "na": "науруски", "nap": "напуљски", "naq": "нама", "nb": "норвешки букмол", "nd": "северни ндебеле", "nds": "нисконемачки", "nds-NL": "нискосаксонски", "ne": "непалски", "new": "невари", "ng": "ндонга", "nia": "ниас", "niu": "ниуејски", "nl": "холандски", "nl-BE": "фламански", "nmg": "квасио", "nn": "норвешки нинорск", "nnh": "нгиембун", "no": "норвешки", "nog": "ногајски", "non": "старонордијски", "nqo": "нко", "nr": "јужни ндебеле", "nso": "северни сото", "nus": "нуер", "nv": "навахо", "nwc": "класични неварски", "ny": "њанџа", "nym": "њамвези", "nyn": "њанколе", "nyo": "њоро", "nzi": "нзима", "oc": "окситански", "oj": "оџибве", "om": "оромо", "or": "одија", "os": "осетински", "osa": "осаге", "ota": "османски турски", "pa": "пенџапски", "pag": "пангасинански", "pal": "пахлави", "pam": "пампанга", "pap": "папијаменто", "pau": "палауски", "pcm": "нигеријски пиџин", "peo": "староперсијски", "phn": "феничански", "pi": "пали", "pl": "пољски", "pon": "понпејски", "prg": "пруски", "pro": "староокситански", "ps": "паштунски", "pt": "португалски", "pt-BR": "португалски (Бразил)", "pt-PT": "португалски (Португал)", "qu": "кечуа", "quc": "киче", "raj": "раџастански", "rap": "рапануи", "rar": "раротонгански", "rm": "романш", "rn": "кирунди", "ro": "румунски", "ro-MD": "молдавски", "rof": "ромбо", "rom": "ромски", "root": "рут", "ru": "руски", "rup": "цинцарски", "rw": "кињаруанда", "rwk": "руа", "sa": "санскрит", "sad": "сандаве", "sah": "саха", "sam": "самаријански арамејски", "saq": "самбуру", "sas": "сасак", "sat": "сантали", "sba": "нгамбај", "sbp": "сангу", "sc": "сардински", "scn": "сицилијански", "sco": "шкотски", "sd": "синди", "sdh": "јужнокурдски", "se": "северни сами", "seh": "сена", "sel": "селкупски", "ses": "којраборо сени", "sg": "санго", "sga": "староирски", "sh": "српскохрватски", "shi": "ташелхит", "shn": "шански", "si": "синхалешки", "sid": "сидамо", "sk": "словачки", "sl": "словеначки", "sm": "самоански", "sma": "јужни сами", "smj": "луле сами", "smn": "инари сами", "sms": "сколт сами", "sn": "шона", "snk": "сонинке", "so": "сомалски", "sog": "согдијски", "sq": "албански", "sr": "српски", "srn": "сранан тонго", "srr": "серерски", "ss": "свази", "ssy": "сахо", "st": "сесото", "su": "сундански", "suk": "сукума", "sus": "сусу", "sux": "сумерски", "sv": "шведски", "sw": "свахили", "sw-CD": "кисвахили", "swb": "коморски", "syc": "сиријачки", "syr": "сиријски", "ta": "тамилски", "te": "телугу", "tem": "тимне", "teo": "тесо", "ter": "терено", "tet": "тетум", "tg": "таџички", "th": "тајски", "ti": "тигриња", "tig": "тигре", "tiv": "тив", "tk": "туркменски", "tkl": "токелау", "tl": "тагалог", "tlh": "клингонски", "tli": "тлингит", "tmh": "тамашек", "tn": "цвана", "to": "тонгански", "tog": "њаса тонга", "tpi": "ток писин", "tr": "турски", "trv": "тароко", "ts": "цонга", "tsi": "цимшиан", "tt": "татарски", "tum": "тумбука", "tvl": "тувалу", "tw": "тви", "twq": "тасавак", "ty": "тахићански", "tyv": "тувински", "tzm": "централноатласки тамазигт", "udm": "удмуртски", "ug": "ујгурски", "uga": "угаритски", "uk": "украјински", "umb": "умбунду", "ur": "урду", "uz": "узбечки", "vai": "ваи", "ve": "венда", "vi": "вијетнамски", "vo": "волапик", "vot": "водски", "vun": "вунџо", "wa": "валонски", "wae": "валсерски", "wal": "волајта", "war": "варајски", "was": "вашо", "wbp": "варлпири", "wo": "волоф", "xal": "калмички", "xh": "коса", "xog": "сога", "yao": "јао", "yap": "јапски", "yav": "јангбен", "ybb": "јемба", "yi": "јидиш", "yo": "јоруба", "yue": "кантонски", "za": "џуаншки", "zap": "запотечки", "zbl": "блисимболи", "zen": "зенага", "zgh": "стандардни марокански тамазигт", "zh": "кинески", "zh-Hans": "поједностављени кинески", "zh-Hant": "традиционални кинески", "zu": "зулу", "zun": "зуни", "zza": "заза"}, "scriptNames": {"Cyrl": "ћирилица", "Latn": "латиница", "Arab": "арапско писмо", "Guru": "гурмуки писмо", "Tfng": "тифинаг писмо", "Vaii": "ваи писмо", "Hans": "поједностављено кинеско писмо", "Hant": "традиционално кинеско писмо"}}, + "sv": {"rtl": false, "languageNames": {"aa": "afar", "ab": "abchaziska", "ace": "acehnesiska", "ach": "acholi", "ada": "adangme", "ady": "adygeiska", "ae": "avestiska", "aeb": "tunisisk arabiska", "af": "afrikaans", "afh": "afrihili", "agq": "aghem", "ain": "ainu", "ak": "akan", "akk": "akkadiska", "akz": "Alabama-muskogee", "ale": "aleutiska", "aln": "gegiska", "alt": "sydaltaiska", "am": "amhariska", "an": "aragonesiska", "ang": "fornengelska", "anp": "angika", "ar": "arabiska", "ar-001": "modern standardarabiska", "arc": "arameiska", "arn": "mapudungun", "aro": "araoniska", "arp": "arapaho", "arq": "algerisk arabiska", "ars": "najdiarabiska", "arw": "arawakiska", "ary": "marockansk arabiska", "arz": "egyptisk arabiska", "as": "assamesiska", "asa": "asu", "ase": "amerikanskt teckenspråk", "ast": "asturiska", "av": "avariska", "avk": "kotava", "awa": "awadhi", "ay": "aymara", "az": "azerbajdzjanska", "ba": "basjkiriska", "bal": "baluchiska", "ban": "balinesiska", "bar": "bayerska", "bas": "basa", "bax": "bamunska", "bbc": "batak-toba", "bbj": "ghomala", "be": "vitryska", "bej": "beja", "bem": "bemba", "bew": "betawiska", "bez": "bena", "bfd": "bafut", "bfq": "bagada", "bg": "bulgariska", "bgn": "västbaluchiska", "bho": "bhojpuri", "bi": "bislama", "bik": "bikol", "bin": "bini", "bjn": "banjariska", "bkm": "bamekon", "bla": "siksika", "bm": "bambara", "bn": "bengali", "bo": "tibetanska", "bpy": "bishnupriya", "bqi": "bakhtiari", "br": "bretonska", "bra": "braj", "brh": "brahuiska", "brx": "bodo", "bs": "bosniska", "bss": "bakossi", "bua": "burjätiska", "bug": "buginesiska", "bum": "boulou", "byn": "blin", "byv": "bagangte", "ca": "katalanska", "cad": "caddo", "car": "karibiska", "cay": "cayuga", "cch": "atsam", "ccp": "chakma", "ce": "tjetjenska", "ceb": "cebuano", "cgg": "chiga", "ch": "chamorro", "chb": "chibcha", "chg": "chagatai", "chk": "chuukesiska", "chm": "mariska", "chn": "chinook", "cho": "choctaw", "chp": "chipewyan", "chr": "cherokesiska", "chy": "cheyenne", "ckb": "soranisk kurdiska", "co": "korsikanska", "cop": "koptiska", "cps": "kapisnon", "cr": "cree", "crh": "krimtatariska", "crs": "seychellisk kreol", "cs": "tjeckiska", "csb": "kasjubiska", "cu": "kyrkslaviska", "cv": "tjuvasjiska", "cy": "walesiska", "da": "danska", "dak": "dakota", "dar": "darginska", "dav": "taita", "de": "tyska", "de-AT": "österrikisk tyska", "de-CH": "schweizisk högtyska", "del": "delaware", "den": "slavej", "dgr": "dogrib", "din": "dinka", "dje": "zarma", "doi": "dogri", "dsb": "lågsorbiska", "dtp": "centraldusun", "dua": "duala", "dum": "medelnederländska", "dv": "divehi", "dyo": "jola-fonyi", "dyu": "dyula", "dz": "dzongkha", "dzg": "dazaga", "ebu": "embu", "ee": "ewe", "efi": "efik", "egl": "emiliska", "egy": "fornegyptiska", "eka": "ekajuk", "el": "grekiska", "elx": "elamitiska", "en": "engelska", "en-AU": "australisk engelska", "en-CA": "kanadensisk engelska", "en-GB": "brittisk engelska", "en-US": "amerikansk engelska", "enm": "medelengelska", "eo": "esperanto", "es": "spanska", "es-419": "latinamerikansk spanska", "es-ES": "europeisk spanska", "es-MX": "mexikansk spanska", "esu": "centralalaskisk jupiska", "et": "estniska", "eu": "baskiska", "ewo": "ewondo", "ext": "extremaduriska", "fa": "persiska", "fan": "fang", "fat": "fanti", "ff": "fulani", "fi": "finska", "fil": "filippinska", "fit": "meänkieli", "fj": "fijianska", "fo": "färöiska", "fon": "fonspråket", "fr": "franska", "fr-CA": "kanadensisk franska", "fr-CH": "schweizisk franska", "frc": "cajun-franska", "frm": "medelfranska", "fro": "fornfranska", "frp": "frankoprovensalska", "frr": "nordfrisiska", "frs": "östfrisiska", "fur": "friulianska", "fy": "västfrisiska", "ga": "iriska", "gaa": "gã", "gag": "gagauziska", "gay": "gayo", "gba": "gbaya", "gbz": "zoroastrisk dari", "gd": "skotsk gäliska", "gez": "etiopiska", "gil": "gilbertiska", "gl": "galiciska", "glk": "gilaki", "gmh": "medelhögtyska", "gn": "guaraní", "goh": "fornhögtyska", "gom": "Goa-konkani", "gon": "gondi", "gor": "gorontalo", "got": "gotiska", "grb": "grebo", "grc": "forngrekiska", "gsw": "schweizertyska", "gu": "gujarati", "guc": "wayuu", "gur": "farefare", "guz": "gusii", "gv": "manx", "gwi": "gwichin", "ha": "hausa", "hai": "haida", "hak": "hakka", "haw": "hawaiiska", "he": "hebreiska", "hi": "hindi", "hif": "Fiji-hindi", "hil": "hiligaynon", "hit": "hettitiska", "hmn": "hmongspråk", "ho": "hirimotu", "hr": "kroatiska", "hsb": "högsorbiska", "hsn": "xiang", "ht": "haitiska", "hu": "ungerska", "hup": "hupa", "hy": "armeniska", "hz": "herero", "ia": "interlingua", "iba": "ibanska", "ibb": "ibibio", "id": "indonesiska", "ie": "interlingue", "ig": "igbo", "ii": "szezuan i", "ik": "inupiak", "ilo": "iloko", "inh": "ingusjiska", "io": "ido", "is": "isländska", "it": "italienska", "iu": "inuktitut", "izh": "ingriska", "ja": "japanska", "jam": "jamaikansk engelsk kreol", "jbo": "lojban", "jgo": "ngomba", "jmc": "kimashami", "jpr": "judisk persiska", "jrb": "judisk arabiska", "jut": "jylländska", "jv": "javanesiska", "ka": "georgiska", "kaa": "karakalpakiska", "kab": "kabyliska", "kac": "kachin", "kaj": "jju", "kam": "kamba", "kaw": "kawi", "kbd": "kabardinska", "kbl": "kanembu", "kcg": "tyap", "kde": "makonde", "kea": "kapverdiska", "ken": "kenjang", "kfo": "koro", "kg": "kikongo", "kgp": "kaingang", "kha": "khasi", "kho": "khotanesiska", "khq": "Timbuktu-songhoy", "khw": "khowar", "ki": "kikuyu", "kiu": "kirmanjki", "kj": "kuanyama", "kk": "kazakiska", "kkj": "mkako", "kl": "grönländska", "kln": "kalenjin", "km": "kambodjanska", "kmb": "kimbundu", "kn": "kannada", "ko": "koreanska", "koi": "komi-permjakiska", "kok": "konkani", "kos": "kosreanska", "kpe": "kpelle", "kr": "kanuri", "krc": "karachay-balkar", "kri": "krio", "krj": "kinaray-a", "krl": "karelska", "kru": "kurukh", "ks": "kashmiriska", "ksb": "kisambaa", "ksf": "bafia", "ksh": "kölniska", "ku": "kurdiska", "kum": "kumykiska", "kut": "kutenaj", "kv": "kome", "kw": "korniska", "ky": "kirgisiska", "la": "latin", "lad": "ladino", "lag": "langi", "lah": "lahnda", "lam": "lamba", "lb": "luxemburgiska", "lez": "lezghien", "lfn": "lingua franca nova", "lg": "luganda", "li": "limburgiska", "lij": "liguriska", "liv": "livoniska", "lkt": "lakota", "lmo": "lombardiska", "ln": "lingala", "lo": "laotiska", "lol": "mongo", "lou": "louisiana-kreol", "loz": "lozi", "lrc": "nordluri", "lt": "litauiska", "ltg": "lettgalliska", "lu": "luba-katanga", "lua": "luba-lulua", "lui": "luiseño", "lun": "lunda", "lus": "lushai", "luy": "luhya", "lv": "lettiska", "lzh": "litterär kineiska", "lzz": "laziska", "mad": "maduresiska", "maf": "mafa", "mag": "magahi", "mai": "maithili", "mak": "makasar", "man": "mande", "mas": "massajiska", "mde": "maba", "mdf": "moksja", "mdr": "mandar", "men": "mende", "mer": "meru", "mfe": "mauritansk kreol", "mg": "malagassiska", "mga": "medeliriska", "mgh": "makhuwa-meetto", "mgo": "meta’", "mh": "marshalliska", "mi": "maori", "mic": "mi’kmaq", "min": "minangkabau", "mk": "makedonska", "ml": "malayalam", "mn": "mongoliska", "mnc": "manchuriska", "mni": "manipuri", "moh": "mohawk", "mos": "mossi", "mr": "marathi", "mrj": "västmariska", "ms": "malajiska", "mt": "maltesiska", "mua": "mundang", "mus": "muskogee", "mwl": "mirandesiska", "mwr": "marwari", "mwv": "mentawai", "my": "burmesiska", "mye": "myene", "myv": "erjya", "mzn": "mazanderani", "na": "nauruanska", "nan": "min nan", "nap": "napolitanska", "naq": "nama", "nb": "norskt bokmål", "nd": "nordndebele", "nds": "lågtyska", "nds-NL": "lågsaxiska", "ne": "nepalesiska", "new": "newariska", "ng": "ndonga", "nia": "nias", "niu": "niueanska", "njo": "ao-naga", "nl": "nederländska", "nl-BE": "flamländska", "nmg": "kwasio", "nn": "nynorska", "nnh": "bamileké-ngiemboon", "no": "norska", "nog": "nogai", "non": "fornnordiska", "nov": "novial", "nqo": "n-kå", "nr": "sydndebele", "nso": "nordsotho", "nus": "nuer", "nv": "navaho", "nwc": "klassisk newariska", "ny": "nyanja", "nym": "nyamwezi", "nyn": "nyankole", "nyo": "nyoro", "nzi": "nzima", "oc": "occitanska", "oj": "odjibwa", "om": "oromo", "or": "oriya", "os": "ossetiska", "osa": "osage", "ota": "ottomanska", "pa": "punjabi", "pag": "pangasinan", "pal": "medelpersiska", "pam": "pampanga", "pap": "papiamento", "pau": "palau", "pcd": "pikardiska", "pcm": "Nigeria-pidgin", "pdc": "Pennsylvaniatyska", "pdt": "mennonitisk lågtyska", "peo": "fornpersiska", "pfl": "Pfalz-tyska", "phn": "feniciska", "pi": "pali", "pl": "polska", "pms": "piemontesiska", "pnt": "pontiska", "pon": "pohnpeiska", "prg": "fornpreussiska", "pro": "fornprovensalska", "ps": "afghanska", "pt": "portugisiska", "pt-BR": "brasiliansk portugisiska", "pt-PT": "europeisk portugisiska", "qu": "quechua", "quc": "quiché", "qug": "Chimborazo-höglandskichwa", "raj": "rajasthani", "rap": "rapanui", "rar": "rarotonganska", "rgn": "romagnol", "rif": "riffianska", "rm": "rätoromanska", "rn": "rundi", "ro": "rumänska", "ro-MD": "moldaviska", "rof": "rombo", "rom": "romani", "root": "rot", "rtm": "rotumänska", "ru": "ryska", "rue": "rusyn", "rug": "rovianska", "rup": "arumänska", "rw": "kinjarwanda", "rwk": "rwa", "sa": "sanskrit", "sad": "sandawe", "sah": "jakutiska", "sam": "samaritanska", "saq": "samburu", "sas": "sasak", "sat": "santali", "saz": "saurashtra", "sba": "ngambay", "sbp": "sangu", "sc": "sardinska", "scn": "sicilianska", "sco": "skotska", "sd": "sindhi", "sdc": "sassaresisk sardiska", "sdh": "sydkurdiska", "se": "nordsamiska", "see": "seneca", "seh": "sena", "sei": "seri", "sel": "selkup", "ses": "Gao-songhay", "sg": "sango", "sga": "forniriska", "sgs": "samogitiska", "sh": "serbokroatiska", "shi": "tachelhit", "shn": "shan", "shu": "Tchad-arabiska", "si": "singalesiska", "sid": "sidamo", "sk": "slovakiska", "sl": "slovenska", "sli": "lågsilesiska", "sly": "selayar", "sm": "samoanska", "sma": "sydsamiska", "smj": "lulesamiska", "smn": "enaresamiska", "sms": "skoltsamiska", "sn": "shona", "snk": "soninke", "so": "somaliska", "sog": "sogdiska", "sq": "albanska", "sr": "serbiska", "srn": "sranan tongo", "srr": "serer", "ss": "swati", "ssy": "saho", "st": "sydsotho", "stq": "saterfrisiska", "su": "sundanesiska", "suk": "sukuma", "sus": "susu", "sux": "sumeriska", "sv": "svenska", "sw": "swahili", "sw-CD": "Kongo-swahili", "swb": "shimaoré", "syc": "klassisk syriska", "syr": "syriska", "szl": "silesiska", "ta": "tamil", "tcy": "tulu", "te": "telugu", "tem": "temne", "teo": "teso", "ter": "tereno", "tet": "tetum", "tg": "tadzjikiska", "th": "thailändska", "ti": "tigrinja", "tig": "tigré", "tiv": "tivi", "tk": "turkmeniska", "tkl": "tokelauiska", "tkr": "tsakhur", "tl": "tagalog", "tlh": "klingonska", "tli": "tlingit", "tly": "talysh", "tmh": "tamashek", "tn": "tswana", "to": "tonganska", "tog": "nyasatonganska", "tpi": "tok pisin", "tr": "turkiska", "tru": "turoyo", "trv": "taroko", "ts": "tsonga", "tsd": "tsakodiska", "tsi": "tsimshian", "tt": "tatariska", "ttt": "muslimsk tatariska", "tum": "tumbuka", "tvl": "tuvaluanska", "tw": "twi", "twq": "tasawaq", "ty": "tahitiska", "tyv": "tuviniska", "tzm": "centralmarockansk tamazight", "udm": "udmurtiska", "ug": "uiguriska", "uga": "ugaritiska", "uk": "ukrainska", "umb": "umbundu", "ur": "urdu", "uz": "uzbekiska", "vai": "vaj", "ve": "venda", "vec": "venetianska", "vep": "veps", "vi": "vietnamesiska", "vls": "västflamländska", "vmf": "Main-frankiska", "vo": "volapük", "vot": "votiska", "vro": "võru", "vun": "vunjo", "wa": "vallonska", "wae": "walsertyska", "wal": "walamo", "war": "waray", "was": "washo", "wbp": "warlpiri", "wo": "wolof", "wuu": "wu", "xal": "kalmuckiska", "xh": "xhosa", "xmf": "mingrelianska", "xog": "lusoga", "yao": "kiyao", "yap": "japetiska", "yav": "yangben", "ybb": "bamileké-jemba", "yi": "jiddisch", "yo": "yoruba", "yrl": "nheengatu", "yue": "kantonesiska", "za": "zhuang", "zap": "zapotek", "zbl": "blissymboler", "zea": "zeeländska", "zen": "zenaga", "zgh": "marockansk standard-tamazight", "zh": "kinesiska", "zh-Hans": "förenklad kinesiska", "zh-Hant": "traditionell kinesiska", "zu": "zulu", "zun": "zuni", "zza": "zazaiska"}, "scriptNames": {"Cyrl": "kyrilliska", "Latn": "latinska", "Arab": "arabiska", "Guru": "gurmukhiska", "Tfng": "tifinaghiska", "Vaii": "vaj", "Hans": "förenklade", "Hant": "traditionella"}}, + "ta": {"rtl": false, "languageNames": {"aa": "அஃபார்", "ab": "அப்காஜியான்", "ace": "ஆச்சினீஸ்", "ach": "அகோலி", "ada": "அதாங்மே", "ady": "அதகே", "ae": "அவெஸ்தான்", "aeb": "துனிசிய அரபு", "af": "ஆஃப்ரிகான்ஸ்", "afh": "அஃப்ரிஹிலி", "agq": "அகெம்", "ain": "ஐனு", "ak": "அகான்", "akk": "அக்கேதியன்", "ale": "அலூட்", "alt": "தெற்கு அல்தை", "am": "அம்ஹாரிக்", "an": "ஆர்கோனீஸ்", "ang": "பழைய ஆங்கிலம்", "anp": "அங்கிகா", "ar": "அரபிக்", "ar-001": "நவீன நிலையான அரபிக்", "arc": "அராமைக்", "arn": "மபுச்சே", "arp": "அரபஹோ", "arw": "அராவாக்", "as": "அஸ்ஸாமீஸ்", "asa": "அசு", "ast": "அஸ்துரியன்", "av": "அவேரிக்", "awa": "அவதி", "ay": "அய்மரா", "az": "அஸர்பைஜானி", "ba": "பஷ்கிர்", "bal": "பலூச்சி", "ban": "பலினீஸ்", "bas": "பாஸா", "be": "பெலாருஷியன்", "bej": "பேஜா", "bem": "பெம்பா", "bez": "பெனா", "bfq": "படகா", "bg": "பல்கேரியன்", "bgn": "மேற்கு பலோச்சி", "bho": "போஜ்பூரி", "bi": "பிஸ்லாமா", "bik": "பிகோல்", "bin": "பினி", "bla": "சிக்சிகா", "bm": "பம்பாரா", "bn": "வங்காளம்", "bo": "திபெத்தியன்", "bpy": "பிஷ்ணுப்பிரியா", "br": "பிரெட்டன்", "bra": "ப்ராஜ்", "brx": "போடோ", "bs": "போஸ்னியன்", "bua": "புரியாத்", "bug": "புகினீஸ்", "byn": "ப்லின்", "ca": "கேட்டலான்", "cad": "கேடோ", "car": "கரீப்", "cch": "ஆட்சம்", "ce": "செச்சென்", "ceb": "செபுவானோ", "cgg": "சிகா", "ch": "சாமோரோ", "chb": "சிப்சா", "chg": "ஷகதை", "chk": "சூகிசே", "chm": "மாரி", "chn": "சினூக் ஜார்கான்", "cho": "சோக்தௌ", "chp": "சிபெவ்யான்", "chr": "செரோகீ", "chy": "செயேனி", "ckb": "மத்திய குர்திஷ்", "co": "கார்சிகன்", "cop": "காப்டிக்", "cr": "க்ரீ", "crh": "கிரிமியன் துர்க்கி", "crs": "செசெல்வா க்ரெயோல் பிரெஞ்சு", "cs": "செக்", "csb": "கஷுபியன்", "cu": "சர்ச் ஸ்லாவிக்", "cv": "சுவாஷ்", "cy": "வேல்ஷ்", "da": "டேனிஷ்", "dak": "டகோடா", "dar": "தார்குவா", "dav": "டைடா", "de": "ஜெர்மன்", "de-AT": "ஆஸ்திரிய ஜெர்மன்", "de-CH": "ஸ்விஸ் ஹை ஜெர்மன்", "del": "டெலாவர்", "den": "ஸ்லாவ்", "dgr": "டோக்ரிப்", "din": "டின்கா", "dje": "ஸார்மா", "doi": "டோக்ரி", "dsb": "லோயர் சோர்பியன்", "dua": "டுவாலா", "dum": "மிடில் டச்சு", "dv": "திவேஹி", "dyo": "ஜோலா-ஃபோன்யி", "dyu": "ட்யூலா", "dz": "பூடானி", "dzg": "டசாகா", "ebu": "எம்பு", "ee": "ஈவ்", "efi": "எஃபிக்", "egy": "பண்டைய எகிப்தியன்", "eka": "ஈகாஜுக்", "el": "கிரேக்கம்", "elx": "எலமைட்", "en": "ஆங்கிலம்", "en-AU": "ஆஸ்திரேலிய ஆங்கிலம்", "en-CA": "கனடிய ஆங்கிலம்", "en-GB": "பிரிட்டிஷ் ஆங்கிலம்", "en-US": "அமெரிக்க ஆங்கிலம்", "enm": "மிடில் ஆங்கிலம்", "eo": "எஸ்பரேன்டோ", "es": "ஸ்பானிஷ்", "es-419": "லத்தின் அமெரிக்க ஸ்பானிஷ்", "es-ES": "ஐரோப்பிய ஸ்பானிஷ்", "es-MX": "மெக்ஸிகன் ஸ்பானிஷ்", "et": "எஸ்டோனியன்", "eu": "பாஸ்க்", "ewo": "எவோன்டோ", "fa": "பெர்ஷியன்", "fan": "ஃபேங்க்", "fat": "ஃபான்டி", "ff": "ஃபுலா", "fi": "ஃபின்னிஷ்", "fil": "ஃபிலிபினோ", "fj": "ஃபிஜியன்", "fo": "ஃபரோயிஸ்", "fon": "ஃபான்", "fr": "பிரெஞ்சு", "fr-CA": "கனடிய பிரெஞ்சு", "fr-CH": "ஸ்விஸ் பிரஞ்சு", "frc": "கஜுன் பிரெஞ்சு", "frm": "மிடில் பிரெஞ்சு", "fro": "பழைய பிரெஞ்சு", "frr": "வடக்கு ஃப்ரிஸியான்", "frs": "கிழக்கு ஃப்ரிஸியான்", "fur": "ஃப்ரியூலியன்", "fy": "மேற்கு ஃப்ரிஷியன்", "ga": "ஐரிஷ்", "gaa": "கா", "gag": "காகௌஸ்", "gan": "கன் சீனம்", "gay": "கயோ", "gba": "பயா", "gd": "ஸ்காட்ஸ் கேலிக்", "gez": "கீஜ்", "gil": "கில்பெர்டீஸ்", "gl": "காலிஸியன்", "gmh": "மிடில் ஹை ஜெர்மன்", "gn": "க்வாரனி", "goh": "பழைய ஹை ஜெர்மன்", "gon": "கோன்டி", "gor": "கோரோன்டலோ", "got": "கோதிக்", "grb": "க்ரேபோ", "grc": "பண்டைய கிரேக்கம்", "gsw": "ஸ்விஸ் ஜெர்மன்", "gu": "குஜராத்தி", "guz": "குஸி", "gv": "மேங்க்ஸ்", "gwi": "குவிசின்", "ha": "ஹௌஸா", "hai": "ஹைடா", "hak": "ஹக்கா சீனம்", "haw": "ஹவாயியன்", "he": "ஹீப்ரூ", "hi": "இந்தி", "hif": "ஃபிஜி இந்தி", "hil": "ஹிலிகாய்னான்", "hit": "ஹிட்டைட்", "hmn": "மாங்க்", "ho": "ஹிரி மோட்டு", "hr": "குரோஷியன்", "hsb": "அப்பர் சோர்பியான்", "hsn": "சியாங்க் சீனம்", "ht": "ஹைத்தியன் க்ரியோலி", "hu": "ஹங்கேரியன்", "hup": "ஹுபா", "hy": "ஆர்மேனியன்", "hz": "ஹெரேரோ", "ia": "இன்டர்லிங்வா", "iba": "இபான்", "ibb": "இபிபியோ", "id": "இந்தோனேஷியன்", "ie": "இன்டர்லிங்", "ig": "இக்போ", "ii": "சிசுவான் ஈ", "ik": "இனுபியாக்", "ilo": "இலோகோ", "inh": "இங்குஷ்", "io": "இடோ", "is": "ஐஸ்லேண்டிக்", "it": "இத்தாலியன்", "iu": "இனுகிடூட்", "ja": "ஜப்பானியம்", "jbo": "லோஜ்பன்", "jgo": "நகொம்பா", "jmc": "மாசெம்", "jpr": "ஜூதேயோ-பெர்ஷியன்", "jrb": "ஜூதேயோ-அராபிக்", "jv": "ஜாவனீஸ்", "ka": "ஜார்ஜியன்", "kaa": "காரா-கல்பாக்", "kab": "கபாய்ல்", "kac": "காசின்", "kaj": "ஜ்ஜூ", "kam": "கம்பா", "kaw": "காவி", "kbd": "கபார்டியன்", "kcg": "தையாப்", "kde": "மகொண்டே", "kea": "கபுவெர்தியானு", "kfo": "கோரோ", "kg": "காங்கோ", "kha": "காஸி", "kho": "கோதானீஸ்", "khq": "கொய்ரா சீனீ", "ki": "கிகுயூ", "kj": "குவான்யாமா", "kk": "கசாக்", "kkj": "ககோ", "kl": "கலாலிசூட்", "kln": "கலின்ஜின்", "km": "கெமெர்", "kmb": "கிம்புன்து", "kn": "கன்னடம்", "ko": "கொரியன்", "koi": "கொமி-பெர்ம்யாக்", "kok": "கொங்கணி", "kos": "கோஸ்ரைன்", "kpe": "க்பெல்லே", "kr": "கனுரி", "krc": "கராசே-பல்கார்", "krl": "கரேலியன்", "kru": "குருக்", "ks": "காஷ்மிரி", "ksb": "ஷம்பாலா", "ksf": "பாஃபியா", "ksh": "கொலோக்னியன்", "ku": "குர்திஷ்", "kum": "கும்இக்", "kut": "குடேனை", "kv": "கொமி", "kw": "கார்னிஷ்", "ky": "கிர்கிஸ்", "la": "லத்தின்", "lad": "லடினோ", "lag": "லங்கி", "lah": "லஹன்டா", "lam": "லம்பா", "lb": "லக்ஸம்போர்கிஷ்", "lez": "லெஜ்ஜியன்", "lg": "கான்டா", "li": "லிம்பர்கிஷ்", "lkt": "லகோடா", "ln": "லிங்காலா", "lo": "லாவோ", "lol": "மோங்கோ", "lou": "லூசியானா க்ரயோல்", "loz": "லோசி", "lrc": "வடக்கு லுரி", "lt": "லிதுவேனியன்", "lu": "லுபா-கடாங்கா", "lua": "லுபா-லுலுலா", "lui": "லுய்சேனோ", "lun": "லூன்டா", "luo": "லுயோ", "lus": "மிஸோ", "luy": "லுயியா", "lv": "லாட்வியன்", "mad": "மதுரீஸ்", "mag": "மகாஹி", "mai": "மைதிலி", "mak": "மகாசார்", "man": "மான்டிங்கோ", "mas": "மாசாய்", "mdf": "மோக்க்ஷா", "mdr": "மான்டார்", "men": "மென்டீ", "mer": "மெரு", "mfe": "மொரிசியன்", "mg": "மலகாஸி", "mga": "மிடில் ஐரிஷ்", "mgh": "மகுவா-மீட்டோ", "mgo": "மேடா", "mh": "மார்ஷெலீஸ்", "mi": "மௌரி", "mic": "மிக்மாக்", "min": "மின்னாங்கபௌ", "mk": "மாஸிடோனியன்", "ml": "மலையாளம்", "mn": "மங்கோலியன்", "mnc": "மன்சூ", "mni": "மணிப்புரி", "moh": "மொஹாக்", "mos": "மோஸ்ஸி", "mr": "மராத்தி", "ms": "மலாய்", "mt": "மால்டிஸ்", "mua": "முன்டாங்", "mus": "க்ரீக்", "mwl": "மிரான்டீஸ்", "mwr": "மார்வாரி", "my": "பர்மீஸ்", "myv": "ஏர்ஜியா", "mzn": "மசந்தேரனி", "na": "நவ்ரூ", "nan": "மின் நான் சீனம்", "nap": "நியோபோலிடன்", "naq": "நாமா", "nb": "நார்வேஜியன் பொக்மால்", "nd": "வடக்கு தெபெலே", "nds": "லோ ஜெர்மன்", "nds-NL": "லோ சாக்ஸன்", "ne": "நேபாளி", "new": "நெவாரி", "ng": "தோங்கா", "nia": "நியாஸ்", "niu": "நியூவான்", "nl": "டச்சு", "nl-BE": "ஃப்லெமிஷ்", "nmg": "க்வாசியோ", "nn": "நார்வேஜியன் நியூநார்ஸ்க்", "nnh": "நெகெய்ம்பூன்", "no": "நார்வேஜியன்", "nog": "நோகை", "non": "பழைய நோர்ஸ்", "nqo": "என்‘கோ", "nr": "தெற்கு தெபெலே", "nso": "வடக்கு சோதோ", "nus": "நியூர்", "nv": "நவாஜோ", "nwc": "பாரம்பரிய நேவாரி", "ny": "நயன்ஜா", "nym": "நியாம்வேஜி", "nyn": "நியான்கோலே", "nyo": "நியோரோ", "nzi": "நிஜ்மா", "oc": "ஒக்கிடன்", "oj": "ஒஜிப்வா", "om": "ஒரோமோ", "or": "ஒடியா", "os": "ஒசெட்டிக்", "osa": "ஓசேஜ்", "ota": "ஓட்டோமான் துருக்கிஷ்", "pa": "பஞ்சாபி", "pag": "பன்காசினன்", "pal": "பாஹ்லவி", "pam": "பம்பாங்கா", "pap": "பபியாமென்டோ", "pau": "பலௌவன்", "pcm": "நைஜீரியன் பிட்கின்", "pdc": "பென்சில்வேனிய ஜெர்மன்", "peo": "பழைய பெர்ஷியன்", "phn": "ஃபொனிஷியன்", "pi": "பாலி", "pl": "போலிஷ்", "pon": "ஃபோன்பெயென்", "prg": "பிரஷ்யன்", "pro": "பழைய ப்ரோவென்சால்", "ps": "பஷ்தோ", "pt": "போர்ச்சுக்கீஸ்", "pt-BR": "பிரேசிலிய போர்ச்சுகீஸ்", "pt-PT": "ஐரோப்பிய போர்ச்சுகீஸ்", "qu": "க்வெச்சுவா", "quc": "கீசீ", "raj": "ராஜஸ்தானி", "rap": "ரபனுய்", "rar": "ரரோடோங்கன்", "rm": "ரோமான்ஷ்", "rn": "ருண்டி", "ro": "ரோமேனியன்", "ro-MD": "மோல்டாவியன்", "rof": "ரோம்போ", "rom": "ரோமானி", "root": "ரூட்", "ru": "ரஷியன்", "rup": "அரோமானியன்", "rw": "கின்யாருவான்டா", "rwk": "ருவா", "sa": "சமஸ்கிருதம்", "sad": "சான்டாவே", "sah": "சக்கா", "sam": "சமாரிடன் அராமைக்", "saq": "சம்புரு", "sas": "சாசாக்", "sat": "சான்டாலி", "saz": "சௌராஷ்டிரம்", "sba": "நெகாம்பே", "sbp": "சங்கு", "sc": "சார்தீனியன்", "scn": "சிசிலியன்", "sco": "ஸ்காட்ஸ்", "sd": "சிந்தி", "sdh": "தெற்கு குர்திஷ்", "se": "வடக்கு சமி", "seh": "செனா", "sel": "செல்குப்", "ses": "கொய்ராபோரோ சென்னி", "sg": "சாங்கோ", "sga": "பழைய ஐரிஷ்", "sh": "செர்போ-குரோஷியன்", "shi": "தசேஹித்", "shn": "ஷான்", "si": "சிங்களம்", "sid": "சிடாமோ", "sk": "ஸ்லோவாக்", "sl": "ஸ்லோவேனியன்", "sm": "சமோவான்", "sma": "தெற்கு சமி", "smj": "லுலே சமி", "smn": "இனாரி சமி", "sms": "ஸ்கோல்ட் சமி", "sn": "ஷோனா", "snk": "சோனின்கே", "so": "சோமாலி", "sog": "சோக்தியன்", "sq": "அல்பேனியன்", "sr": "செர்பியன்", "srn": "ஸ்ரானன் டோங்கோ", "srr": "செரெர்", "ss": "ஸ்வாடீ", "ssy": "சஹோ", "st": "தெற்கு ஸோதோ", "su": "சுண்டானீஸ்", "suk": "சுகுமா", "sus": "சுசு", "sux": "சுமேரியன்", "sv": "ஸ்வீடிஷ்", "sw": "ஸ்வாஹிலி", "sw-CD": "காங்கோ ஸ்வாஹிலி", "swb": "கொமோரியன்", "syc": "பாரம்பரிய சிரியாக்", "syr": "சிரியாக்", "ta": "தமிழ்", "te": "தெலுங்கு", "tem": "டிம்னே", "teo": "டெசோ", "ter": "டெரெனோ", "tet": "டெடும்", "tg": "தஜிக்", "th": "தாய்", "ti": "டிக்ரின்யா", "tig": "டைக்ரே", "tiv": "டிவ்", "tk": "துருக்மென்", "tkl": "டோகேலௌ", "tl": "டாகாலோக்", "tlh": "க்ளிங்கோன்", "tli": "லிங்கிட்", "tmh": "தமஷேக்", "tn": "ஸ்வானா", "to": "டோங்கான்", "tog": "நயாசா டோங்கா", "tpi": "டோக் பிஸின்", "tr": "துருக்கிஷ்", "trv": "தரோகோ", "ts": "ஸோங்கா", "tsi": "ட்ஸிம்ஷியன்", "tt": "டாடர்", "tum": "தும்புகா", "tvl": "டுவாலு", "tw": "ட்வி", "twq": "டசவாக்", "ty": "தஹிதியன்", "tyv": "டுவினியன்", "tzm": "மத்திய அட்லஸ் டமசைட்", "udm": "உட்முர்ட்", "ug": "உய்குர்", "uga": "உகாரிடிக்", "uk": "உக்ரைனியன்", "umb": "அம்பொண்டு", "ur": "உருது", "uz": "உஸ்பெக்", "vai": "வை", "ve": "வென்டா", "vi": "வியட்நாமீஸ்", "vo": "ஒலாபூக்", "vot": "வோட்க்", "vun": "வுன்ஜோ", "wa": "ஒவாலூன்", "wae": "வால்சேர்", "wal": "வோலாய்ட்டா", "war": "வாரே", "was": "வாஷோ", "wbp": "வல்பிரி", "wo": "ஓலோஃப்", "wuu": "வூ சீனம்", "xal": "கல்மிக்", "xh": "ஹோசா", "xog": "சோகா", "yao": "யாவ்", "yap": "யாபேசே", "yav": "யாங்பென்", "ybb": "யெம்பா", "yi": "யெட்டிஷ்", "yo": "யோருபா", "yue": "காண்டோனீஸ்", "za": "ஜுவாங்", "zap": "ஜாபோடெக்", "zbl": "ப்லிஸ்ஸிம்பால்ஸ்", "zen": "ஜெனகா", "zgh": "ஸ்டாண்டர்ட் மொராக்கன் தமாசைட்", "zh": "சீனம்", "zh-Hans": "எளிதாக்கப்பட்ட சீனம்", "zh-Hant": "பாரம்பரிய சீனம்", "zu": "ஜுலு", "zun": "ஜூனி", "zza": "ஜாஜா"}, "scriptNames": {"Cyrl": "சிரிலிக்", "Latn": "லத்தின்", "Arab": "அரபிக்", "Guru": "குர்முகி", "Tfng": "டிஃபினாக்", "Vaii": "வை", "Hans": "எளிதாக்கப்பட்டது", "Hant": "பாரம்பரியம்"}}, + "te": {"rtl": false, "languageNames": {"aa": "అఫార్", "ab": "అబ్ఖాజియన్", "ace": "ఆఖినీస్", "ach": "అకోలి", "ada": "అడాంగ్మే", "ady": "అడిగాబ్జే", "ae": "అవేస్టాన్", "aeb": "టునీషియా అరబిక్", "af": "ఆఫ్రికాన్స్", "afh": "అఫ్రిహిలి", "agq": "అగేమ్", "ain": "ఐను", "ak": "అకాన్", "akk": "అక్కాడియాన్", "ale": "అలియుట్", "alt": "దక్షిణ ఆల్టై", "am": "అమ్హారిక్", "an": "అరగోనిస్", "ang": "ప్రాచీన ఆంగ్లం", "anp": "ఆంగిక", "ar": "అరబిక్", "ar-001": "ఆధునిక ప్రామాణిక అరబిక్", "arc": "అరామైక్", "arn": "మపుచే", "arp": "అరాపాహో", "arw": "అరావాక్", "arz": "ఈజిప్షియన్ అరబిక్", "as": "అస్సామీస్", "asa": "అసు", "ast": "ఆస్టూరియన్", "av": "అవారిక్", "awa": "అవధి", "ay": "ఐమారా", "az": "అజర్బైజాని", "ba": "బాష్కిర్", "bal": "బాలుచి", "ban": "బాలినీస్", "bas": "బసా", "be": "బెలారుషియన్", "bej": "బేజా", "bem": "బెంబా", "bez": "బెనా", "bg": "బల్గేరియన్", "bgn": "పశ్చిమ బలూచీ", "bho": "భోజ్‌పురి", "bi": "బిస్లామా", "bik": "బికోల్", "bin": "బిని", "bla": "సిక్సికా", "bm": "బంబారా", "bn": "బంగ్లా", "bo": "టిబెటన్", "bpy": "బిష్ణుప్రియ", "br": "బ్రెటన్", "bra": "బ్రాజ్", "brx": "బోడో", "bs": "బోస్నియన్", "bua": "బురియట్", "bug": "బుగినీస్", "byn": "బ్లిన్", "ca": "కాటలాన్", "cad": "కేడ్డో", "car": "కేరిబ్", "cch": "అట్సామ్", "ce": "చెచెన్", "ceb": "సెబువానో", "cgg": "ఛిగా", "ch": "చమర్రో", "chb": "చిబ్చా", "chg": "చాగటై", "chk": "చూకీస్", "chm": "మారి", "chn": "చినూక్ జార్గన్", "cho": "చక్టా", "chp": "చిపెవ్యాన్", "chr": "చెరోకీ", "chy": "చేయేన్", "ckb": "సెంట్రల్ కర్డిష్", "co": "కోర్సికన్", "cop": "కోప్టిక్", "cr": "క్రి", "crh": "క్రిమియన్ టర్కిష్", "crs": "సెసేల్వా క్రియోల్ ఫ్రెంచ్", "cs": "చెక్", "csb": "కషుబియన్", "cu": "చర్చ్ స్లావిక్", "cv": "చువాష్", "cy": "వెల్ష్", "da": "డానిష్", "dak": "డకోటా", "dar": "డార్గ్వా", "dav": "టైటా", "de": "జర్మన్", "de-AT": "ఆస్ట్రియన్ జర్మన్", "de-CH": "స్విస్ హై జర్మన్", "del": "డెలావేర్", "den": "స్లేవ్", "dgr": "డోగ్రిబ్", "din": "డింకా", "dje": "జార్మా", "doi": "డోగ్రి", "dsb": "లోయర్ సోర్బియన్", "dua": "డ్యూలా", "dum": "మధ్యమ డచ్", "dv": "దివేహి", "dyo": "జోలా-ఫోనయి", "dyu": "డ్యులా", "dz": "జోంఖా", "dzg": "డాజాగా", "ebu": "ఇంబు", "ee": "యూ", "efi": "ఎఫిక్", "egy": "ప్రాచీన ఈజిప్షియన్", "eka": "ఏకాజక్", "el": "గ్రీక్", "elx": "ఎలామైట్", "en": "ఆంగ్లం", "en-AU": "ఆస్ట్రేలియన్ ఇంగ్లీష్", "en-CA": "కెనడియన్ ఇంగ్లీష్", "en-GB": "బ్రిటిష్ ఇంగ్లీష్", "en-US": "అమెరికన్ ఇంగ్లీష్", "enm": "మధ్యమ ఆంగ్లం", "eo": "ఎస్పెరాంటో", "es": "స్పానిష్", "es-419": "లాటిన్ అమెరికన్ స్పానిష్", "es-ES": "యూరోపియన్ స్పానిష్", "es-MX": "మెక్సికన్ స్పానిష్", "et": "ఎస్టోనియన్", "eu": "బాస్క్యూ", "ewo": "ఎవోండొ", "fa": "పర్షియన్", "fan": "ఫాంగ్", "fat": "ఫాంటి", "ff": "ఫ్యుల", "fi": "ఫిన్నిష్", "fil": "ఫిలిపినో", "fj": "ఫిజియన్", "fo": "ఫారోస్", "fon": "ఫాన్", "fr": "ఫ్రెంచ్", "fr-CA": "కెనడియెన్ ఫ్రెంచ్", "fr-CH": "స్విస్ ఫ్రెంచ్", "frc": "కాజున్ ఫ్రెంచ్", "frm": "మధ్యమ ప్రెంచ్", "fro": "ప్రాచీన ఫ్రెంచ్", "frr": "ఉత్తర ఫ్రిసియన్", "frs": "తూర్పు ఫ్రిసియన్", "fur": "ఫ్రియులియన్", "fy": "పశ్చిమ ఫ్రిసియన్", "ga": "ఐరిష్", "gaa": "గా", "gag": "గాగౌజ్", "gan": "గాన్ చైనీస్", "gay": "గాయో", "gba": "గ్బాయా", "gd": "స్కాటిష్ గేలిక్", "gez": "జీజ్", "gil": "గిల్బర్టీస్", "gl": "గాలిషియన్", "gmh": "మధ్యమ హై జర్మన్", "gn": "గ్వారనీ", "goh": "ప్రాచీన హై జర్మన్", "gon": "గోండి", "gor": "గోరోంటలా", "got": "గోథిక్", "grb": "గ్రేబో", "grc": "ప్రాచీన గ్రీక్", "gsw": "స్విస్ జర్మన్", "gu": "గుజరాతి", "guz": "గుస్సీ", "gv": "మాంక్స్", "gwi": "గ్విచిన్", "ha": "హౌసా", "hai": "హైడా", "hak": "హక్కా చైనీస్", "haw": "హవాయియన్", "he": "హిబ్రూ", "hi": "హిందీ", "hil": "హిలిగెనాన్", "hit": "హిట్టిటే", "hmn": "మోంగ్", "ho": "హిరి మోటు", "hr": "క్రొయేషియన్", "hsb": "అప్పర్ సోర్బియన్", "hsn": "జియాంగ్ చైనీస్", "ht": "హైటియన్ క్రియోల్", "hu": "హంగేరియన్", "hup": "హుపా", "hy": "ఆర్మేనియన్", "hz": "హెరెరో", "ia": "ఇంటర్లింగ్వా", "iba": "ఐబాన్", "ibb": "ఇబిబియో", "id": "ఇండోనేషియన్", "ie": "ఇంటర్లింగ్", "ig": "ఇగ్బో", "ii": "శిషువన్ ఈ", "ik": "ఇనుపైయాక్", "ilo": "ఐలోకో", "inh": "ఇంగుష్", "io": "ఈడో", "is": "ఐస్లాండిక్", "it": "ఇటాలియన్", "iu": "ఇనుక్టిటుట్", "ja": "జపనీస్", "jbo": "లోజ్బాన్", "jgo": "గోంబా", "jmc": "మకొమ్", "jpr": "జ్యుడియో-పర్షియన్", "jrb": "జ్యుడియో-అరబిక్", "jv": "జావనీస్", "ka": "జార్జియన్", "kaa": "కారా-కల్పాక్", "kab": "కాబిల్", "kac": "కాచిన్", "kaj": "జ్యూ", "kam": "కంబా", "kaw": "కావి", "kbd": "కబార్డియన్", "kcg": "ట్యాప్", "kde": "మకొండే", "kea": "కాబువేర్దియను", "kfo": "కోరో", "kg": "కోంగో", "kha": "ఖాసి", "kho": "ఖోటనీస్", "khq": "కొయరా చీన్నీ", "ki": "కికుయు", "kj": "క్వాన్యామ", "kk": "కజఖ్", "kkj": "కాకో", "kl": "కలాల్లిసూట్", "kln": "కలెంజిన్", "km": "ఖ్మేర్", "kmb": "కిమ్బుండు", "kn": "కన్నడ", "ko": "కొరియన్", "koi": "కోమి-పర్మాక్", "kok": "కొంకణి", "kos": "కోస్రేయన్", "kpe": "పెల్లే", "kr": "కానురి", "krc": "కరచే-బల్కార్", "krl": "కరేలియన్", "kru": "కూరుఖ్", "ks": "కాశ్మీరి", "ksb": "శంబాలా", "ksf": "బాఫియ", "ksh": "కొలోనియన్", "ku": "కుర్దిష్", "kum": "కుమ్యిక్", "kut": "కుటేనై", "kv": "కోమి", "kw": "కోర్నిష్", "ky": "కిర్గిజ్", "la": "లాటిన్", "lad": "లాడినో", "lag": "లాంగీ", "lah": "లాహండా", "lam": "లాంబా", "lb": "లక్సెంబర్గిష్", "lez": "లేజ్ఘియన్", "lg": "గాండా", "li": "లిమ్బర్గిష్", "lkt": "లకొటా", "ln": "లింగాల", "lo": "లావో", "lol": "మొంగో", "lou": "లూసియానా క్రియోల్", "loz": "లోజి", "lrc": "ఉత్తర లూరీ", "lt": "లిథువేనియన్", "lu": "లూబ-కటాంగ", "lua": "లుబా-లులువ", "lui": "లుయిసెనో", "lun": "లుండా", "luo": "లువో", "lus": "మిజో", "luy": "లుయియ", "lv": "లాట్వియన్", "mad": "మాదురీస్", "mag": "మగాహి", "mai": "మైథిలి", "mak": "మకాసార్", "man": "మండింగో", "mas": "మాసై", "mdf": "మోక్ష", "mdr": "మండార్", "men": "మెండే", "mer": "మెరు", "mfe": "మొరిస్యేన్", "mg": "మలగాసి", "mga": "మధ్యమ ఐరిష్", "mgh": "మక్వా-మిట్టో", "mgo": "మెటా", "mh": "మార్షలీస్", "mi": "మావొరీ", "mic": "మికమాక్", "min": "మినాంగ్‌కాబో", "mk": "మాసిడోనియన్", "ml": "మలయాళం", "mn": "మంగోలియన్", "mnc": "మంచు", "mni": "మణిపురి", "moh": "మోహాక్", "mos": "మోస్సి", "mr": "మరాఠీ", "ms": "మలయ్", "mt": "మాల్టీస్", "mua": "మండాంగ్", "mus": "క్రీక్", "mwl": "మిరాండిస్", "mwr": "మార్వాడి", "my": "బర్మీస్", "myv": "ఎర్జియా", "mzn": "మాసన్‌దెరాని", "na": "నౌరు", "nan": "మిన్ నాన్ చైనీస్", "nap": "నియాపోలిటన్", "naq": "నమ", "nb": "నార్వేజియన్ బొక్మాల్", "nd": "ఉత్తర దెబెలె", "nds": "లో జర్మన్", "nds-NL": "లో సాక్సన్", "ne": "నేపాలి", "new": "నెవారి", "ng": "డోంగా", "nia": "నియాస్", "niu": "నియాన్", "nl": "డచ్", "nl-BE": "ఫ్లెమిష్", "nmg": "క్వాసియె", "nn": "నార్వేజియాన్ న్యోర్స్క్", "nnh": "గింబూన్", "no": "నార్వేజియన్", "nog": "నోగై", "non": "ప్రాచిన నోర్స్", "nqo": "న్కో", "nr": "దక్షిణ దెబెలె", "nso": "ఉత్తర సోతో", "nus": "న్యుర్", "nv": "నవాజొ", "nwc": "సాంప్రదాయ న్యూయారీ", "ny": "న్యాన్జా", "nym": "న్యంవేజి", "nyn": "న్యాన్కోలె", "nyo": "నేయోరో", "nzi": "జీమా", "oc": "ఆక్సిటన్", "oj": "చేవా", "om": "ఒరోమో", "or": "ఒడియా", "os": "ఒసేటిక్", "osa": "ఒసాజ్", "ota": "ఒట్టోమన్ టర్కిష్", "pa": "పంజాబీ", "pag": "పంగాసినాన్", "pal": "పహ్లావి", "pam": "పంపన్గా", "pap": "పపియమేంటో", "pau": "పలావెన్", "pcm": "నైజీరియా పిడ్గిన్", "peo": "ప్రాచీన పర్షియన్", "phn": "ఫోనికన్", "pi": "పాలీ", "pl": "పోలిష్", "pon": "పోహ్న్పెయన్", "prg": "ప్రష్యన్", "pro": "ప్రాచీన ప్రోవెంసాల్", "ps": "పాష్టో", "pt": "పోర్చుగీస్", "pt-BR": "బ్రెజీలియన్ పోర్చుగీస్", "pt-PT": "యూరోపియన్ పోర్చుగీస్", "qu": "కెచువా", "quc": "కిచే", "raj": "రాజస్తానీ", "rap": "రాపన్యుయి", "rar": "రారోటొంగాన్", "rm": "రోమన్ష్", "rn": "రుండి", "ro": "రోమేనియన్", "ro-MD": "మొల్డావియన్", "rof": "రోంబో", "rom": "రోమానీ", "root": "రూట్", "ru": "రష్యన్", "rup": "ఆరోమేనియన్", "rw": "కిన్యర్వాండా", "rwk": "ర్వా", "sa": "సంస్కృతం", "sad": "సండావి", "sah": "సాఖా", "sam": "సమారిటన్ అరామైక్", "saq": "సంబురు", "sas": "ససక్", "sat": "సంతాలి", "sba": "గాంబే", "sbp": "సాంగు", "sc": "సార్డీనియన్", "scn": "సిసిలియన్", "sco": "స్కాట్స్", "sd": "సింధీ", "sdh": "దక్షిణ కుర్డిష్", "se": "ఉత్తర సామి", "seh": "సెనా", "sel": "సేల్కప్", "ses": "కోయోరాబోరో సెన్నీ", "sg": "సాంగో", "sga": "ప్రాచీన ఐరిష్", "sh": "సేర్బో-క్రొయేషియన్", "shi": "టాచెల్‌హిట్", "shn": "షాన్", "si": "సింహళం", "sid": "సిడామో", "sk": "స్లోవక్", "sl": "స్లోవేనియన్", "sm": "సమోవన్", "sma": "దక్షిణ సామి", "smj": "లులే సామి", "smn": "ఇనారి సామి", "sms": "స్కోల్ట్ సామి", "sn": "షోన", "snk": "సోనింకి", "so": "సోమాలి", "sog": "సోగ్డియన్", "sq": "అల్బేనియన్", "sr": "సెర్బియన్", "srn": "స్రానన్ టోంగో", "srr": "సెరేర్", "ss": "స్వాతి", "ssy": "సాహో", "st": "దక్షిణ సోతో", "su": "సండానీస్", "suk": "సుకుమా", "sus": "సుసు", "sux": "సుమేరియాన్", "sv": "స్వీడిష్", "sw": "స్వాహిలి", "sw-CD": "కాంగో స్వాహిలి", "swb": "కొమొరియన్", "syc": "సాంప్రదాయ సిరియాక్", "syr": "సిరియాక్", "ta": "తమిళము", "tcy": "తుళు", "te": "తెలుగు", "tem": "టిమ్నే", "teo": "టెసో", "ter": "టెరెనో", "tet": "టేటం", "tg": "తజిక్", "th": "థాయ్", "ti": "టిగ్రిన్యా", "tig": "టీగ్రె", "tiv": "టివ్", "tk": "తుర్క్‌మెన్", "tkl": "టోకెలావ్", "tl": "టగలాగ్", "tlh": "క్లింగాన్", "tli": "ట్లింగిట్", "tmh": "టామషేక్", "tn": "స్వానా", "to": "టాంగాన్", "tog": "న్యాసా టోన్గా", "tpi": "టోక్ పిసిన్", "tr": "టర్కిష్", "trv": "తరోకో", "ts": "సోంగా", "tsi": "శింషీయన్", "tt": "టాటర్", "tum": "టుంబుకా", "tvl": "టువాలు", "tw": "ట్వి", "twq": "టసావాఖ్", "ty": "తహితియన్", "tyv": "టువినియన్", "tzm": "సెంట్రల్ అట్లాస్ టామాజైట్", "udm": "ఉడ్ముర్ట్", "ug": "ఉయ్‌ఘర్", "uga": "ఉగారిటిక్", "uk": "ఉక్రెయినియన్", "umb": "ఉమ్బుండు", "ur": "ఉర్దూ", "uz": "ఉజ్బెక్", "vai": "వాయి", "ve": "వెండా", "vi": "వియత్నామీస్", "vo": "వోలాపుక్", "vot": "వోటిక్", "vun": "వుంజొ", "wa": "వాలూన్", "wae": "వాల్సర్", "wal": "వాలేట్టా", "war": "వారే", "was": "వాషో", "wbp": "వార్లపిరి", "wo": "ఉలూఫ్", "wuu": "వు చైనీస్", "xal": "కల్మిక్", "xh": "షోసా", "xog": "సొగా", "yao": "యాయే", "yap": "యాపిస్", "yav": "యాంగ్‌బెన్", "ybb": "యెంబా", "yi": "ఇడ్డిష్", "yo": "యోరుబా", "yue": "కాంటనీస్", "za": "జువాన్", "zap": "జపోటెక్", "zbl": "బ్లిసింబల్స్", "zen": "జెనాగా", "zgh": "ప్రామాణిక మొరొకన్ టామజైట్", "zh": "చైనీస్", "zh-Hans": "సరళీకృత చైనీస్", "zh-Hant": "సాంప్రదాయక చైనీస్", "zu": "జూలూ", "zun": "జుని", "zza": "జాజా"}, "scriptNames": {"Cyrl": "సిరిలిక్", "Latn": "లాటిన్", "Arab": "అరబిక్", "Guru": "గుర్ముఖి", "Tfng": "టిఫీనాఘ్", "Vaii": "వాయి", "Hans": "సరళీకృతం", "Hant": "సాంప్రదాయక"}}, + "th": {"rtl": false, "languageNames": {"aa": "อะฟาร์", "ab": "อับฮาเซีย", "ace": "อาเจะห์", "ach": "อาโคลิ", "ada": "อาแดงมี", "ady": "อะดืยเก", "ae": "อเวสตะ", "aeb": "อาหรับตูนิเซีย", "af": "แอฟริกานส์", "afh": "แอฟริฮีลี", "agq": "อักเฮม", "ain": "ไอนุ", "ak": "อาคาน", "akk": "อักกาด", "akz": "แอละแบมา", "ale": "อาลิวต์", "aln": "เกกแอลเบเนีย", "alt": "อัลไตใต้", "am": "อัมฮารา", "an": "อารากอน", "ang": "อังกฤษโบราณ", "anp": "อังคิกา", "ar": "อาหรับ", "ar-001": "อาหรับมาตรฐานสมัยใหม่", "arc": "อราเมอิก", "arn": "มาปูเช", "aro": "อาเรานา", "arp": "อาราปาโฮ", "arq": "อาหรับแอลจีเรีย", "ars": "อาหรับนัจญ์ดี", "arw": "อาราวัก", "ary": "อาหรับโมร็อกโก", "arz": "อาหรับพื้นเมืองอียิปต์", "as": "อัสสัม", "asa": "อาซู", "ase": "ภาษามืออเมริกัน", "ast": "อัสตูเรียส", "av": "อาวาร์", "avk": "โคตาวา", "awa": "อวธี", "ay": "ไอย์มารา", "az": "อาเซอร์ไบจาน", "ba": "บัชคีร์", "bal": "บาลูชิ", "ban": "บาหลี", "bar": "บาวาเรีย", "bas": "บาสา", "bax": "บามัน", "bbc": "บาตักโทบา", "bbj": "โคมาลา", "be": "เบลารุส", "bej": "เบจา", "bem": "เบมบา", "bew": "เบตาวี", "bez": "เบนา", "bfd": "บาฟัต", "bfq": "พทคะ", "bg": "บัลแกเรีย", "bgn": "บาลูจิตะวันตก", "bho": "โภชปุรี", "bi": "บิสลามา", "bik": "บิกอล", "bin": "บินี", "bjn": "บันจาร์", "bkm": "กม", "bla": "สิกสิกา", "bm": "บัมบารา", "bn": "บังกลา", "bo": "ทิเบต", "bpy": "พิศนุปริยะ", "bqi": "บักติยารี", "br": "เบรตัน", "bra": "พัรช", "brh": "บราฮุย", "brx": "โพโฑ", "bs": "บอสเนีย", "bss": "อาโคซี", "bua": "บูเรียต", "bug": "บูกิส", "bum": "บูลู", "byn": "บลิน", "byv": "เมดุมบา", "ca": "คาตาลัน", "cad": "คัดโด", "car": "คาริบ", "cay": "คายูกา", "cch": "แอตแซม", "ce": "เชเชน", "ceb": "เซบู", "cgg": "คีกา", "ch": "ชามอร์โร", "chb": "ชิบชา", "chg": "ชะกะไต", "chk": "ชูก", "chm": "มารี", "chn": "ชินุกจาร์กอน", "cho": "ช็อกทอว์", "chp": "ชิพิวยัน", "chr": "เชอโรกี", "chy": "เชเยนเน", "ckb": "เคิร์ดตอนกลาง", "co": "คอร์ซิกา", "cop": "คอปติก", "cps": "กาปิซนอน", "cr": "ครี", "crh": "ตุรกีไครเมีย", "crs": "ครีโอลเซเซลส์ฝรั่งเศส", "cs": "เช็ก", "csb": "คาซูเบียน", "cu": "เชอร์ชสลาวิก", "cv": "ชูวัช", "cy": "เวลส์", "da": "เดนมาร์ก", "dak": "ดาโกทา", "dar": "ดาร์กิน", "dav": "ไททา", "de": "เยอรมัน", "de-AT": "เยอรมัน - ออสเตรีย", "de-CH": "เยอรมันสูง (สวิส)", "del": "เดลาแวร์", "den": "สเลวี", "dgr": "โดกริบ", "din": "ดิงกา", "dje": "ซาร์มา", "doi": "โฑครี", "dsb": "ซอร์เบียตอนล่าง", "dtp": "ดูซุนกลาง", "dua": "ดัวลา", "dum": "ดัตช์กลาง", "dv": "ธิเวหิ", "dyo": "โจลา-ฟอนยี", "dyu": "ดิวลา", "dz": "ซองคา", "dzg": "ดาซากา", "ebu": "เอ็มบู", "ee": "เอเว", "efi": "อีฟิก", "egl": "เอมีเลีย", "egy": "อียิปต์โบราณ", "eka": "อีกาจุก", "el": "กรีก", "elx": "อีลาไมต์", "en": "อังกฤษ", "en-AU": "อังกฤษ - ออสเตรเลีย", "en-CA": "อังกฤษ - แคนาดา", "en-GB": "อังกฤษ - สหราชอาณาจักร", "en-US": "อังกฤษ - อเมริกัน", "enm": "อังกฤษกลาง", "eo": "เอสเปรันโต", "es": "สเปน", "es-419": "สเปน - ละตินอเมริกา", "es-ES": "สเปน - ยุโรป", "es-MX": "สเปน - เม็กซิโก", "esu": "ยูพิกกลาง", "et": "เอสโตเนีย", "eu": "บาสก์", "ewo": "อีวันโด", "ext": "เอกซ์เตรมาดูรา", "fa": "เปอร์เซีย", "fan": "ฟอง", "fat": "ฟันติ", "ff": "ฟูลาห์", "fi": "ฟินแลนด์", "fil": "ฟิลิปปินส์", "fit": "ฟินแลนด์ทอร์เนดาเล็น", "fj": "ฟิจิ", "fo": "แฟโร", "fon": "ฟอน", "fr": "ฝรั่งเศส", "fr-CA": "ฝรั่งเศส - แคนาดา", "fr-CH": "ฝรั่งเศส (สวิส)", "frc": "ฝรั่งเศสกาฌ็อง", "frm": "ฝรั่งเศสกลาง", "fro": "ฝรั่งเศสโบราณ", "frp": "อาร์พิตา", "frr": "ฟริเซียนเหนือ", "frs": "ฟริเซียนตะวันออก", "fur": "ฟรูลี", "fy": "ฟริเซียนตะวันตก", "ga": "ไอริช", "gaa": "กา", "gag": "กากาอุซ", "gan": "จีนกั้น", "gay": "กาโย", "gba": "กบายา", "gbz": "ดารีโซโรอัสเตอร์", "gd": "เกลิกสกอต", "gez": "กีซ", "gil": "กิลเบอร์ต", "gl": "กาลิเซีย", "glk": "กิลากี", "gmh": "เยอรมันสูงกลาง", "gn": "กัวรานี", "goh": "เยอรมันสูงโบราณ", "gom": "กอนกานีของกัว", "gon": "กอนดิ", "gor": "กอรอนทาโล", "got": "โกธิก", "grb": "เกรโบ", "grc": "กรีกโบราณ", "gsw": "เยอรมันสวิส", "gu": "คุชราต", "guc": "วายู", "gur": "ฟราฟรา", "guz": "กุซซี", "gv": "มานซ์", "gwi": "กวิชอิน", "ha": "เฮาซา", "hai": "ไฮดา", "hak": "จีนแคะ", "haw": "ฮาวาย", "he": "ฮิบรู", "hi": "ฮินดี", "hif": "ฮินดีฟิจิ", "hil": "ฮีลีกัยนน", "hit": "ฮิตไตต์", "hmn": "ม้ง", "ho": "ฮีรีโมตู", "hr": "โครเอเชีย", "hsb": "ซอร์เบียตอนบน", "hsn": "จีนเซียง", "ht": "เฮติครีโอล", "hu": "ฮังการี", "hup": "ฮูปา", "hy": "อาร์เมเนีย", "hz": "เฮเรโร", "ia": "อินเตอร์ลิงกัว", "iba": "อิบาน", "ibb": "อิบิบิโอ", "id": "อินโดนีเซีย", "ie": "อินเตอร์ลิงกิว", "ig": "อิกโบ", "ii": "เสฉวนยิ", "ik": "อีนูเปียก", "ilo": "อีโลโก", "inh": "อินกุช", "io": "อีโด", "is": "ไอซ์แลนด์", "it": "อิตาลี", "iu": "อินุกติตุต", "izh": "อินเกรียน", "ja": "ญี่ปุ่น", "jam": "อังกฤษคลีโอลจาเมกา", "jbo": "โลชบัน", "jgo": "อึนกอมบา", "jmc": "มาชาเม", "jpr": "ยิว-เปอร์เซีย", "jrb": "ยิว-อาหรับ", "jut": "จัท", "jv": "ชวา", "ka": "จอร์เจีย", "kaa": "การา-กาลพาก", "kab": "กาไบล", "kac": "กะฉิ่น", "kaj": "คจู", "kam": "คัมบา", "kaw": "กวี", "kbd": "คาร์บาเดีย", "kbl": "คาเนมบู", "kcg": "ทีแยป", "kde": "มาคอนเด", "kea": "คาบูเวอร์เดียนู", "ken": "เกินยาง", "kfo": "โคโร", "kg": "คองโก", "kgp": "เคนก่าง", "kha": "กาสี", "kho": "โคตัน", "khq": "โคย์ราชีนี", "khw": "โควาร์", "ki": "กีกูยู", "kiu": "เคอร์มานิกิ", "kj": "กวนยามา", "kk": "คาซัค", "kkj": "คาโก", "kl": "กรีนแลนด์", "kln": "คาเลนจิน", "km": "เขมร", "kmb": "คิมบุนดู", "kn": "กันนาดา", "ko": "เกาหลี", "koi": "โคมิ-เปียร์เมียค", "kok": "กอนกานี", "kos": "คูสไร", "kpe": "กาแปล", "kr": "คานูรี", "krc": "คาราไช-บัลคาร์", "kri": "คริโอ", "krj": "กินารายอา", "krl": "แกรเลียน", "kru": "กุรุข", "ks": "แคชเมียร์", "ksb": "ชัมบาลา", "ksf": "บาเฟีย", "ksh": "โคโลญ", "ku": "เคิร์ด", "kum": "คูมืยค์", "kut": "คูเทไน", "kv": "โกมิ", "kw": "คอร์นิช", "ky": "คีร์กีซ", "la": "ละติน", "lad": "ลาดิโน", "lag": "แลนจี", "lah": "ลาฮ์นดา", "lam": "แลมบา", "lb": "ลักเซมเบิร์ก", "lez": "เลซเกียน", "lfn": "ลิงกัวฟรังกาโนวา", "lg": "ยูกันดา", "li": "ลิมเบิร์ก", "lij": "ลิกูเรีย", "liv": "ลิโวเนีย", "lkt": "ลาโกตา", "lmo": "ลอมบาร์ด", "ln": "ลิงกาลา", "lo": "ลาว", "lol": "มองโก", "lou": "ภาษาครีโอลุยเซียนา", "loz": "โลซิ", "lrc": "ลูรีเหนือ", "lt": "ลิทัวเนีย", "ltg": "ลัตเกล", "lu": "ลูบา-กาตองกา", "lua": "ลูบา-ลูลัว", "lui": "ลุยเซโน", "lun": "ลันดา", "luo": "ลัว", "lus": "มิโซ", "luy": "ลูเยีย", "lv": "ลัตเวีย", "lzh": "จีนคลาสสิก", "lzz": "แลซ", "mad": "มาดูรา", "maf": "มาฟา", "mag": "มคหี", "mai": "ไมถิลี", "mak": "มากาซาร์", "man": "มันดิงกา", "mas": "มาไซ", "mde": "มาบา", "mdf": "มอคชา", "mdr": "มานดาร์", "men": "เมนเด", "mer": "เมรู", "mfe": "มอริสเยน", "mg": "มาลากาซี", "mga": "ไอริชกลาง", "mgh": "มากัววา-มีทโท", "mgo": "เมตา", "mh": "มาร์แชลลิส", "mi": "เมารี", "mic": "มิกแมก", "min": "มีนังกาเบา", "mk": "มาซิโดเนีย", "ml": "มาลายาลัม", "mn": "มองโกเลีย", "mnc": "แมนจู", "mni": "มณีปุระ", "moh": "โมฮอว์ก", "mos": "โมซี", "mr": "มราฐี", "mrj": "มารีตะวันตก", "ms": "มาเลย์", "mt": "มอลตา", "mua": "มันดัง", "mus": "ครีก", "mwl": "มีรันดา", "mwr": "มารวาฑี", "mwv": "เม็นตาไว", "my": "พม่า", "mye": "มยีน", "myv": "เอียร์ซยา", "mzn": "มาซันดารานี", "na": "นาอูรู", "nan": "จีนมินหนาน", "nap": "นาโปลี", "naq": "นามา", "nb": "นอร์เวย์บุคมอล", "nd": "เอ็นเดเบเลเหนือ", "nds": "เยอรมันต่ำ", "nds-NL": "แซกซอนใต้", "ne": "เนปาล", "new": "เนวาร์", "ng": "ดองกา", "nia": "นีอัส", "niu": "นีวเว", "njo": "อ๋าวนากา", "nl": "ดัตช์", "nl-BE": "เฟลมิช", "nmg": "กวาซิโอ", "nn": "นอร์เวย์นีนอสก์", "nnh": "จีมบูน", "no": "นอร์เวย์", "nog": "โนไก", "non": "นอร์สโบราณ", "nov": "โนเวียล", "nqo": "เอ็นโก", "nr": "เอ็นเดเบเลใต้", "nso": "โซโทเหนือ", "nus": "เนือร์", "nv": "นาวาโฮ", "nwc": "เนวาร์ดั้งเดิม", "ny": "เนียนจา", "nym": "เนียมเวซี", "nyn": "เนียนโกเล", "nyo": "นิโอโร", "nzi": "นซิมา", "oc": "อ็อกซิตัน", "oj": "โอจิบวา", "om": "โอโรโม", "or": "โอดิยา", "os": "ออสเซเตีย", "osa": "โอซากี", "ota": "ตุรกีออตโตมัน", "pa": "ปัญจาบ", "pag": "ปางาซีนัน", "pal": "ปะห์ลาวี", "pam": "ปัมปางา", "pap": "ปาเปียเมนโต", "pau": "ปาเลา", "pcd": "ปิการ์", "pcm": "พิดจิน", "pdc": "เยอรมันเพนซิลเวเนีย", "pdt": "เพลาท์ดิช", "peo": "เปอร์เซียโบราณ", "pfl": "เยอรมันพาลาทิเนต", "phn": "ฟินิเชีย", "pi": "บาลี", "pl": "โปแลนด์", "pms": "พีดมอนต์", "pnt": "พอนติก", "pon": "พอห์นเพ", "prg": "ปรัสเซีย", "pro": "โปรวองซาลโบราณ", "ps": "พัชโต", "pt": "โปรตุเกส", "pt-BR": "โปรตุเกส - บราซิล", "pt-PT": "โปรตุเกส - ยุโรป", "qu": "เคชวา", "quc": "กีเช", "qug": "ควิชัวไฮแลนด์ชิมโบราโซ", "raj": "ราชสถาน", "rap": "ราปานู", "rar": "ราโรทองกา", "rgn": "โรมัณโญ", "rif": "ริฟฟิอัน", "rm": "โรแมนซ์", "rn": "บุรุนดี", "ro": "โรมาเนีย", "ro-MD": "มอลโดวา", "rof": "รอมโบ", "rom": "โรมานี", "root": "รูท", "rtm": "โรทูมัน", "ru": "รัสเซีย", "rue": "รูซิน", "rug": "โรเวียนา", "rup": "อาโรมาเนียน", "rw": "รวันดา", "rwk": "รวา", "sa": "สันสกฤต", "sad": "ซันดาเว", "sah": "ซาคา", "sam": "อราเมอิกซามาเรีย", "saq": "แซมบูรู", "sas": "ซาซัก", "sat": "สันตาลี", "saz": "เสาราษฏร์", "sba": "กัมเบ", "sbp": "แซงกู", "sc": "ซาร์เดญา", "scn": "ซิซิลี", "sco": "สกอตส์", "sd": "สินธิ", "sdc": "ซาร์ดิเนียซาสซารี", "sdh": "เคอร์ดิชใต้", "se": "ซามิเหนือ", "see": "เซนิกา", "seh": "เซนา", "sei": "เซรี", "sel": "เซลคุป", "ses": "โคย์ราโบโรเซนนี", "sg": "ซันโก", "sga": "ไอริชโบราณ", "sgs": "ซาโมจิเตียน", "sh": "เซอร์โบ-โครเอเชีย", "shi": "ทาเชลีห์ท", "shn": "ไทใหญ่", "shu": "อาหรับ-ชาด", "si": "สิงหล", "sid": "ซิดาโม", "sk": "สโลวัก", "sl": "สโลวีเนีย", "sli": "ไซลีเซียตอนล่าง", "sly": "เซลายาร์", "sm": "ซามัว", "sma": "ซามิใต้", "smj": "ซามิลูเล", "smn": "ซามิอีนารี", "sms": "ซามิสคอลต์", "sn": "โชนา", "snk": "โซนีนเก", "so": "โซมาลี", "sog": "ซอกดีน", "sq": "แอลเบเนีย", "sr": "เซอร์เบีย", "srn": "ซูรินาเม", "srr": "เซแรร์", "ss": "สวาติ", "ssy": "ซาโฮ", "st": "โซโทใต้", "stq": "ฟรีเซียนซัทเธอร์แลนด์", "su": "ซุนดา", "suk": "ซูคูมา", "sus": "ซูซู", "sux": "ซูเมอ", "sv": "สวีเดน", "sw": "สวาฮีลี", "sw-CD": "สวาฮีลี - คองโก", "swb": "โคเมอเรียน", "syc": "ซีเรียแบบดั้งเดิม", "syr": "ซีเรีย", "szl": "ไซลีเซีย", "ta": "ทมิฬ", "tcy": "ตูลู", "te": "เตลูกู", "tem": "ทิมเน", "teo": "เตโซ", "ter": "เทเรโน", "tet": "เตตุม", "tg": "ทาจิก", "th": "ไทย", "ti": "ติกริญญา", "tig": "ตีเกร", "tiv": "ทิฟ", "tk": "เติร์กเมน", "tkl": "โตเกเลา", "tkr": "แซคเซอร์", "tl": "ตากาล็อก", "tlh": "คลิงงอน", "tli": "ทลิงกิต", "tly": "ทาลิช", "tmh": "ทามาเชก", "tn": "บอตสวานา", "to": "ตองกา", "tog": "ไนอะซาตองกา", "tpi": "ท็อกพิซิน", "tr": "ตุรกี", "tru": "ตูโรโย", "trv": "ทาโรโก", "ts": "ซิตซองกา", "tsd": "ซาโคเนีย", "tsi": "ซิมชีแอน", "tt": "ตาตาร์", "ttt": "ตัตมุสลิม", "tum": "ทุมบูกา", "tvl": "ตูวาลู", "tw": "ทวิ", "twq": "ตัสซาวัค", "ty": "ตาฮิตี", "tyv": "ตูวา", "tzm": "ทามาไซต์แอตลาสกลาง", "udm": "อุดมูร์ต", "ug": "อุยกูร์", "uga": "ยูการิต", "uk": "ยูเครน", "umb": "อุมบุนดู", "ur": "อูรดู", "uz": "อุซเบก", "vai": "ไว", "ve": "เวนดา", "vec": "เวเนโต้", "vep": "เวปส์", "vi": "เวียดนาม", "vls": "เฟลมิชตะวันตก", "vmf": "เมน-ฟรานโกเนีย", "vo": "โวลาพึค", "vot": "โวทิก", "vro": "โวโร", "vun": "วุนจู", "wa": "วาโลนี", "wae": "วัลเซอร์", "wal": "วาลาโม", "war": "วาเรย์", "was": "วาโช", "wbp": "วอล์เพอร์รี", "wo": "โวลอฟ", "wuu": "จีนอู๋", "xal": "คัลมืยค์", "xh": "คะห์โอซา", "xmf": "เมเกรเลีย", "xog": "โซกา", "yao": "เย้า", "yap": "ยัป", "yav": "แยงเบน", "ybb": "เยมบา", "yi": "ยิดดิช", "yo": "โยรูบา", "yrl": "เหงงกาตุ", "yue": "กวางตุ้ง", "za": "จ้วง", "zap": "ซาโปเตก", "zbl": "บลิสซิมโบลส์", "zea": "เซแลนด์", "zen": "เซนากา", "zgh": "ทามาไซต์โมร็อกโกมาตรฐาน", "zh": "จีน", "zh-Hans": "จีนประยุกต์", "zh-Hant": "จีนดั้งเดิม", "zu": "ซูลู", "zun": "ซูนิ", "zza": "ซาซา"}, "scriptNames": {"Cyrl": "ซีริลลิก", "Latn": "ละติน", "Arab": "อาหรับ", "Guru": "กูร์มูคี", "Tfng": "ทิฟินาก", "Vaii": "ไว", "Hans": "ตัวย่อ", "Hant": "ตัวเต็ม"}}, + "tl": {"rtl": false, "languageNames": {}, "scriptNames": {}}, + "tr": {"rtl": false, "languageNames": {"aa": "Afar", "ab": "Abhazca", "ace": "Açece", "ach": "Acoli", "ada": "Adangme", "ady": "Adigece", "ae": "Avestçe", "aeb": "Tunus Arapçası", "af": "Afrikaanca", "afh": "Afrihili", "agq": "Aghem", "ain": "Ayni Dili", "ak": "Akan", "akk": "Akad Dili", "akz": "Alabamaca", "ale": "Aleut dili", "aln": "Gheg Arnavutçası", "alt": "Güney Altayca", "am": "Amharca", "an": "Aragonca", "ang": "Eski İngilizce", "anp": "Angika", "ar": "Arapça", "ar-001": "Modern Standart Arapça", "arc": "Aramice", "arn": "Mapuçe dili", "aro": "Araona", "arp": "Arapaho Dili", "arq": "Cezayir Arapçası", "ars": "Necd Arapçası", "arw": "Arawak Dili", "ary": "Fas Arapçası", "arz": "Mısır Arapçası", "as": "Assamca", "asa": "Asu", "ase": "Amerikan İşaret Dili", "ast": "Asturyasça", "av": "Avar Dili", "avk": "Kotava", "awa": "Awadhi", "ay": "Aymara", "az": "Azerice", "az-Arab": "Güney Azerice", "ba": "Başkırtça", "bal": "Beluçça", "ban": "Bali dili", "bar": "Bavyera dili", "bas": "Basa Dili", "bax": "Bamun", "bbc": "Batak Toba", "bbj": "Ghomala", "be": "Belarusça", "bej": "Beja dili", "bem": "Bemba", "bew": "Betawi", "bez": "Bena", "bfd": "Bafut", "bfq": "Badaga", "bg": "Bulgarca", "bgn": "Batı Balochi", "bho": "Arayanice", "bi": "Bislama", "bik": "Bikol", "bin": "Bini", "bjn": "Banjar Dili", "bkm": "Kom", "bla": "Karaayak dili", "bm": "Bambara", "bn": "Bengalce", "bo": "Tibetçe", "bpy": "Bishnupriya", "bqi": "Bahtiyari", "br": "Bretonca", "bra": "Braj", "brh": "Brohice", "brx": "Bodo", "bs": "Boşnakça", "bss": "Akoose", "bua": "Buryatça", "bug": "Bugis", "bum": "Bulu", "byn": "Blin", "byv": "Medumba", "ca": "Katalanca", "cad": "Kado dili", "car": "Carib", "cay": "Kayuga dili", "cch": "Atsam", "ccp": "Chakma", "ce": "Çeçence", "ceb": "Sebuano dili", "cgg": "Kigaca", "ch": "Çamorro dili", "chb": "Çibça dili", "chg": "Çağatayca", "chk": "Chuukese", "chm": "Mari dili", "chn": "Çinuk dili", "cho": "Çoktav dili", "chp": "Çipevya dili", "chr": "Çerokice", "chy": "Şayence", "ckb": "Orta Kürtçe", "co": "Korsikaca", "cop": "Kıptice", "cps": "Capiznon", "cr": "Krice", "crh": "Kırım Türkçesi", "crs": "Seselwa Kreole Fransızcası", "cs": "Çekçe", "csb": "Kashubian", "cu": "Kilise Slavcası", "cv": "Çuvaşça", "cy": "Galce", "da": "Danca", "dak": "Dakotaca", "dar": "Dargince", "dav": "Taita", "de": "Almanca", "de-AT": "Avusturya Almancası", "de-CH": "İsviçre Yüksek Almancası", "del": "Delaware", "den": "Slavey dili", "dgr": "Dogrib", "din": "Dinka dili", "dje": "Zarma", "doi": "Dogri", "dsb": "Aşağı Sorbça", "dtp": "Orta Kadazan", "dua": "Duala", "dum": "Ortaçağ Felemenkçesi", "dv": "Divehi dili", "dyo": "Jola-Fonyi", "dyu": "Dyula", "dz": "Dzongkha", "dzg": "Dazaga", "ebu": "Embu", "ee": "Ewe", "efi": "Efik", "egl": "Emilia Dili", "egy": "Eski Mısır Dili", "eka": "Ekajuk", "el": "Yunanca", "elx": "Elam", "en": "İngilizce", "en-AU": "Avustralya İngilizcesi", "en-CA": "Kanada İngilizcesi", "en-GB": "İngiliz İngilizcesi", "en-US": "Amerikan İngilizcesi", "enm": "Ortaçağ İngilizcesi", "eo": "Esperanto", "es": "İspanyolca", "es-419": "Latin Amerika İspanyolcası", "es-ES": "Avrupa İspanyolcası", "es-MX": "Meksika İspanyolcası", "esu": "Merkezi Yupikçe", "et": "Estonca", "eu": "Baskça", "ewo": "Ewondo", "ext": "Ekstremadura Dili", "fa": "Farsça", "fan": "Fang", "fat": "Fanti", "ff": "Fula dili", "fi": "Fince", "fil": "Filipince", "fit": "Tornedalin Fincesi", "fj": "Fiji dili", "fo": "Faroe dili", "fon": "Fon", "fr": "Fransızca", "fr-CA": "Kanada Fransızcası", "fr-CH": "İsviçre Fransızcası", "frc": "Cajun Fransızcası", "frm": "Ortaçağ Fransızcası", "fro": "Eski Fransızca", "frp": "Arpitanca", "frr": "Kuzey Frizce", "frs": "Doğu Frizcesi", "fur": "Friuli dili", "fy": "Batı Frizcesi", "ga": "İrlandaca", "gaa": "Ga dili", "gag": "Gagavuzca", "gan": "Gan Çincesi", "gay": "Gayo dili", "gba": "Gbaya", "gbz": "Zerdüşt Daricesi", "gd": "İskoç Gaelcesi", "gez": "Geez", "gil": "Kiribatice", "gl": "Galiçyaca", "glk": "Gilanice", "gmh": "Ortaçağ Yüksek Almancası", "gn": "Guarani dili", "goh": "Eski Yüksek Almanca", "gom": "Goa Konkanicesi", "gon": "Gondi dili", "gor": "Gorontalo dili", "got": "Gotça", "grb": "Grebo dili", "grc": "Antik Yunanca", "gsw": "İsviçre Almancası", "gu": "Güceratça", "guc": "Wayuu dili", "gur": "Frafra", "guz": "Gusii", "gv": "Man dili", "gwi": "Guçince", "ha": "Hausa dili", "hai": "Haydaca", "hak": "Hakka Çincesi", "haw": "Hawaii dili", "he": "İbranice", "hi": "Hintçe", "hif": "Fiji Hintçesi", "hil": "Hiligaynon dili", "hit": "Hititçe", "hmn": "Hmong", "ho": "Hiri Motu", "hr": "Hırvatça", "hsb": "Yukarı Sorbça", "hsn": "Xiang Çincesi", "ht": "Haiti Kreyolu", "hu": "Macarca", "hup": "Hupaca", "hy": "Ermenice", "hz": "Herero dili", "ia": "Interlingua", "iba": "Iban", "ibb": "İbibio dili", "id": "Endonezce", "ie": "Interlingue", "ig": "İbo dili", "ii": "Sichuan Yi", "ik": "İnyupikçe", "ilo": "Iloko", "inh": "İnguşça", "io": "Ido", "is": "İzlandaca", "it": "İtalyanca", "iu": "İnuktitut dili", "izh": "İngriya Dili", "ja": "Japonca", "jam": "Jamaika Patois Dili", "jbo": "Lojban", "jgo": "Ngomba", "jmc": "Machame", "jpr": "Yahudi Farsçası", "jrb": "Yahudi Arapçası", "jut": "Yutland Dili", "jv": "Cava Dili", "ka": "Gürcüce", "kaa": "Karakalpakça", "kab": "Kabiliyece", "kac": "Kaçin dili", "kaj": "Jju", "kam": "Kamba", "kaw": "Kawi", "kbd": "Kabardeyce", "kbl": "Kanembu", "kcg": "Tyap", "kde": "Makonde", "kea": "Kabuverdianu", "ken": "Kenyang", "kfo": "Koro", "kg": "Kongo dili", "kgp": "Kaingang", "kha": "Khasi dili", "kho": "Hotanca", "khq": "Koyra Chiini", "khw": "Çitral Dili", "ki": "Kikuyu", "kiu": "Kırmançça", "kj": "Kuanyama", "kk": "Kazakça", "kkj": "Kako", "kl": "Grönland dili", "kln": "Kalenjin", "km": "Khmer dili", "kmb": "Kimbundu", "kn": "Kannada dili", "ko": "Korece", "koi": "Komi-Permyak", "kok": "Konkani dili", "kos": "Kosraean", "kpe": "Kpelle dili", "kr": "Kanuri dili", "krc": "Karaçay-Balkarca", "kri": "Krio", "krj": "Kinaray-a", "krl": "Karelyaca", "kru": "Kurukh dili", "ks": "Keşmir dili", "ksb": "Shambala", "ksf": "Bafia", "ksh": "Köln lehçesi", "ku": "Kürtçe", "kum": "Kumukça", "kut": "Kutenai dili", "kv": "Komi", "kw": "Kernevekçe", "ky": "Kırgızca", "la": "Latince", "lad": "Ladino", "lag": "Langi", "lah": "Lahnda", "lam": "Lamba dili", "lb": "Lüksemburgca", "lez": "Lezgice", "lfn": "Lingua Franca Nova", "lg": "Ganda", "li": "Limburgca", "lij": "Ligurca", "liv": "Livonca", "lkt": "Lakotaca", "lmo": "Lombardça", "ln": "Lingala", "lo": "Lao dili", "lol": "Mongo", "lou": "Louisiana Kreolcesi", "loz": "Lozi", "lrc": "Kuzey Luri", "lt": "Litvanca", "ltg": "Latgalian", "lu": "Luba-Katanga", "lua": "Luba-Lulua", "lui": "Luiseno", "lun": "Lunda", "luo": "Luo", "lus": "Lushai", "luy": "Luyia", "lv": "Letonca", "lzh": "Edebi Çince", "lzz": "Lazca", "mad": "Madura Dili", "maf": "Mafa", "mag": "Magahi", "mai": "Maithili", "mak": "Makasar", "man": "Mandingo", "mas": "Masai", "mde": "Maba", "mdf": "Mokşa dili", "mdr": "Mandar", "men": "Mende dili", "mer": "Meru", "mfe": "Morisyen", "mg": "Malgaşça", "mga": "Ortaçağ İrlandacası", "mgh": "Makhuwa-Meetto", "mgo": "Meta’", "mh": "Marshall Adaları dili", "mi": "Maori dili", "mic": "Micmac", "min": "Minangkabau", "mk": "Makedonca", "ml": "Malayalam dili", "mn": "Moğolca", "mnc": "Mançurya dili", "mni": "Manipuri dili", "moh": "Mohavk dili", "mos": "Mossi", "mr": "Marathi dili", "mrj": "Ova Çirmişçesi", "ms": "Malayca", "mt": "Maltaca", "mua": "Mundang", "mus": "Krikçe", "mwl": "Miranda dili", "mwr": "Marvari", "mwv": "Mentawai", "my": "Birman dili", "mye": "Myene", "myv": "Erzya", "mzn": "Mazenderanca", "na": "Nauru dili", "nan": "Min Nan Çincesi", "nap": "Napolice", "naq": "Nama", "nb": "Norveççe Bokmål", "nd": "Kuzey Ndebele", "nds": "Aşağı Almanca", "nds-NL": "Aşağı Saksonca", "ne": "Nepalce", "new": "Nevari", "ng": "Ndonga", "nia": "Nias", "niu": "Niue dili", "njo": "Ao Naga", "nl": "Felemenkçe", "nl-BE": "Flamanca", "nmg": "Kwasio", "nn": "Norveççe Nynorsk", "nnh": "Ngiemboon", "no": "Norveççe", "nog": "Nogayca", "non": "Eski Nors dili", "nov": "Novial", "nqo": "N’Ko", "nr": "Güney Ndebele", "nso": "Kuzey Sotho dili", "nus": "Nuer", "nv": "Navaho dili", "nwc": "Klasik Nevari", "ny": "Nyanja", "nym": "Nyamvezi", "nyn": "Nyankole", "nyo": "Nyoro", "nzi": "Nzima dili", "oc": "Oksitan dili", "oj": "Ojibva dili", "om": "Oromo dili", "or": "Oriya Dili", "os": "Osetçe", "osa": "Osage", "ota": "Osmanlı Türkçesi", "pa": "Pencapça", "pag": "Pangasinan dili", "pal": "Pehlevi Dili", "pam": "Pampanga", "pap": "Papiamento", "pau": "Palau dili", "pcd": "Picard Dili", "pcm": "Nijerya Pidgin dili", "pdc": "Pensilvanya Almancası", "pdt": "Plautdietsch", "peo": "Eski Farsça", "pfl": "Palatin Almancası", "phn": "Fenike dili", "pi": "Pali", "pl": "Lehçe", "pms": "Piyemontece", "pnt": "Kuzeybatı Kafkasya", "pon": "Pohnpeian", "prg": "Prusyaca", "pro": "Eski Provensal", "ps": "Peştuca", "pt": "Portekizce", "pt-BR": "Brezilya Portekizcesi", "pt-PT": "Avrupa Portekizcesi", "qu": "Keçuva dili", "quc": "Kiçece", "qug": "Chimborazo Highland Quichua", "raj": "Rajasthani", "rap": "Rapanui dili", "rar": "Rarotongan", "rgn": "Romanyolca", "rif": "Rif Berbericesi", "rm": "Romanşça", "rn": "Kirundi", "ro": "Rumence", "ro-MD": "Moldovaca", "rof": "Rombo", "rom": "Romanca", "root": "Köken", "rtm": "Rotuman", "ru": "Rusça", "rue": "Rusince", "rug": "Roviana", "rup": "Ulahça", "rw": "Kinyarwanda", "rwk": "Rwa", "sa": "Sanskrit", "sad": "Sandave", "sah": "Yakutça", "sam": "Samarit Aramcası", "saq": "Samburu", "sas": "Sasak", "sat": "Santali", "saz": "Saurashtra", "sba": "Ngambay", "sbp": "Sangu", "sc": "Sardunya dili", "scn": "Sicilyaca", "sco": "İskoçça", "sd": "Sindhi dili", "sdc": "Sassari Sarduca", "sdh": "Güney Kürtçesi", "se": "Kuzey Laponcası", "see": "Seneca dili", "seh": "Sena", "sei": "Seri", "sel": "Selkup dili", "ses": "Koyraboro Senni", "sg": "Sango", "sga": "Eski İrlandaca", "sgs": "Samogitçe", "sh": "Sırp-Hırvat Dili", "shi": "Taşelhit", "shn": "Shan dili", "shu": "Çad Arapçası", "si": "Sinhali dili", "sid": "Sidamo dili", "sk": "Slovakça", "sl": "Slovence", "sli": "Aşağı Silezyaca", "sly": "Selayar", "sm": "Samoa dili", "sma": "Güney Laponcası", "smj": "Lule Laponcası", "smn": "İnari Laponcası", "sms": "Skolt Laponcası", "sn": "Shona", "snk": "Soninke", "so": "Somalice", "sog": "Sogdiana Dili", "sq": "Arnavutça", "sr": "Sırpça", "srn": "Sranan Tongo", "srr": "Serer dili", "ss": "Sisvati", "ssy": "Saho", "st": "Güney Sotho dili", "stq": "Saterland Frizcesi", "su": "Sunda Dili", "suk": "Sukuma dili", "sus": "Susu", "sux": "Sümerce", "sv": "İsveççe", "sw": "Svahili dili", "sw-CD": "Kongo Svahili", "swb": "Komorca", "syc": "Klasik Süryanice", "syr": "Süryanice", "szl": "Silezyaca", "ta": "Tamilce", "tcy": "Tuluca", "te": "Telugu dili", "tem": "Timne", "teo": "Teso", "ter": "Tereno", "tet": "Tetum", "tg": "Tacikçe", "th": "Tayca", "ti": "Tigrinya dili", "tig": "Tigre", "tiv": "Tiv", "tk": "Türkmence", "tkl": "Tokelau dili", "tkr": "Sahurca", "tl": "Tagalogca", "tlh": "Klingonca", "tli": "Tlingit", "tly": "Talışça", "tmh": "Tamaşek", "tn": "Setsvana", "to": "Tonga dili", "tog": "Nyasa Tonga", "tpi": "Tok Pisin", "tr": "Türkçe", "tru": "Turoyo", "trv": "Taroko", "ts": "Tsonga", "tsd": "Tsakonca", "tsi": "Tsimshian", "tt": "Tatarca", "ttt": "Tatça", "tum": "Tumbuka", "tvl": "Tuvalyanca", "tw": "Tvi", "twq": "Tasawaq", "ty": "Tahiti dili", "tyv": "Tuvaca", "tzm": "Orta Atlas Tamazigti", "udm": "Udmurtça", "ug": "Uygurca", "uga": "Ugarit dili", "uk": "Ukraynaca", "umb": "Umbundu", "ur": "Urduca", "uz": "Özbekçe", "vai": "Vai", "ve": "Venda dili", "vec": "Venedikçe", "vep": "Veps dili", "vi": "Vietnamca", "vls": "Batı Flamanca", "vmf": "Main Frankonya Dili", "vo": "Volapük", "vot": "Votça", "vro": "Võro", "vun": "Vunjo", "wa": "Valonca", "wae": "Walser", "wal": "Valamo", "war": "Varay", "was": "Vaşo", "wbp": "Warlpiri", "wo": "Volofça", "wuu": "Wu Çincesi", "xal": "Kalmıkça", "xh": "Zosa dili", "xmf": "Megrelce", "xog": "Soga", "yao": "Yao", "yap": "Yapça", "yav": "Yangben", "ybb": "Yemba", "yi": "Yidiş", "yo": "Yorubaca", "yrl": "Nheengatu", "yue": "Kantonca", "za": "Zhuangca", "zap": "Zapotek dili", "zbl": "Blis Sembolleri", "zea": "Zelandaca", "zen": "Zenaga dili", "zgh": "Standart Fas Tamazigti", "zh": "Çince", "zh-Hans": "Basitleştirilmiş Çince", "zh-Hant": "Geleneksel Çince", "zu": "Zuluca", "zun": "Zunice", "zza": "Zazaca"}, "scriptNames": {"Cyrl": "Kiril", "Latn": "Latin", "Arab": "Arap", "Guru": "Gurmukhi", "Tfng": "Tifinagh", "Vaii": "Vai", "Hans": "Basitleştirilmiş", "Hant": "Geleneksel"}}, + "uk": {"rtl": false, "languageNames": {"aa": "афарська", "ab": "абхазька", "ace": "ачехська", "ach": "ачолі", "ada": "адангме", "ady": "адигейська", "ae": "авестійська", "af": "африкаанс", "afh": "африхілі", "agq": "агем", "ain": "айнська", "ak": "акан", "akk": "аккадська", "akz": "алабама", "ale": "алеутська", "alt": "південноалтайська", "am": "амхарська", "an": "арагонська", "ang": "давньоанглійська", "anp": "ангіка", "ar": "арабська", "ar-001": "сучасна стандартна арабська", "arc": "арамейська", "arn": "арауканська", "aro": "араона", "arp": "арапахо", "arq": "алжирська арабська", "ars": "надждійська арабська", "arw": "аравакська", "as": "асамська", "asa": "асу", "ase": "американська мова рухів", "ast": "астурська", "av": "аварська", "awa": "авадхі", "ay": "аймара", "az": "азербайджанська", "az-Arab": "південноазербайджанська", "ba": "башкирська", "bal": "балучі", "ban": "балійська", "bar": "баеріш", "bas": "баса", "bax": "бамум", "bbc": "батак тоба", "bbj": "гомала", "be": "білоруська", "bej": "беджа", "bem": "бемба", "bew": "бетаві", "bez": "бена", "bfd": "бафут", "bfq": "бадага", "bg": "болгарська", "bgn": "східнобелуджійська", "bho": "бходжпурі", "bi": "біслама", "bik": "бікольська", "bin": "біні", "bjn": "банджарська", "bkm": "ком", "bla": "сіксіка", "bm": "бамбара", "bn": "банґла", "bo": "тибетська", "bqi": "бахтіарі", "br": "бретонська", "bra": "брадж", "brx": "бодо", "bs": "боснійська", "bss": "акус", "bua": "бурятська", "bug": "бугійська", "bum": "булу", "byn": "блін", "byv": "медумба", "ca": "каталонська", "cad": "каддо", "car": "карібська", "cay": "кайюга", "cch": "атсам", "ccp": "чакма", "ce": "чеченська", "ceb": "себуанська", "cgg": "кіга", "ch": "чаморро", "chb": "чібча", "chg": "чагатайська", "chk": "чуукська", "chm": "марійська", "chn": "чинук жаргон", "cho": "чокто", "chp": "чіпевʼян", "chr": "черокі", "chy": "чейєнн", "ckb": "центральнокурдська", "co": "корсиканська", "cop": "коптська", "cr": "крі", "crh": "кримськотатарська", "crs": "сейшельська креольська", "cs": "чеська", "csb": "кашубська", "cu": "церковнословʼянська", "cv": "чуваська", "cy": "валлійська", "da": "данська", "dak": "дакота", "dar": "даргінська", "dav": "таіта", "de": "німецька", "de-AT": "австрійська німецька", "de-CH": "верхньонімецька (Швейцарія)", "del": "делаварська", "den": "слейв", "dgr": "догрибська", "din": "дінка", "dje": "джерма", "doi": "догрі", "dsb": "нижньолужицька", "dua": "дуала", "dum": "середньонідерландська", "dv": "дівехі", "dyo": "дьола-фоні", "dyu": "діула", "dz": "дзонг-ке", "dzg": "дазага", "ebu": "ембу", "ee": "еве", "efi": "ефік", "egy": "давньоєгипетська", "eka": "екаджук", "el": "грецька", "elx": "еламська", "en": "англійська", "en-AU": "австралійська англійська", "en-CA": "канадська англійська", "en-GB": "британська англійська", "en-US": "англійська (США)", "enm": "середньоанглійська", "eo": "есперанто", "es": "іспанська", "es-419": "латиноамериканська іспанська", "es-ES": "іспанська (Європа)", "es-MX": "мексиканська іспанська", "et": "естонська", "eu": "баскська", "ewo": "евондо", "fa": "перська", "fan": "фанг", "fat": "фанті", "ff": "фула", "fi": "фінська", "fil": "філіппінська", "fj": "фіджі", "fo": "фарерська", "fon": "фон", "fr": "французька", "fr-CA": "канадська французька", "fr-CH": "швейцарська французька", "frc": "кажунська французька", "frm": "середньофранцузька", "fro": "давньофранцузька", "frp": "арпітанська", "frr": "фризька північна", "frs": "фризька східна", "fur": "фріульська", "fy": "західнофризька", "ga": "ірландська", "gaa": "га", "gag": "гагаузька", "gan": "ґань", "gay": "гайо", "gba": "гбайя", "gd": "гаельська", "gez": "гєез", "gil": "гільбертська", "gl": "галісійська", "gmh": "середньоверхньонімецька", "gn": "гуарані", "goh": "давньоверхньонімецька", "gon": "гонді", "gor": "горонтало", "got": "готська", "grb": "гребо", "grc": "давньогрецька", "gsw": "німецька (Швейцарія)", "gu": "гуджараті", "guz": "гусії", "gv": "менкська", "gwi": "кучін", "ha": "хауса", "hai": "хайда", "hak": "хаккаська", "haw": "гавайська", "he": "іврит", "hi": "гінді", "hil": "хілігайнон", "hit": "хітіті", "hmn": "хмонг", "ho": "хірі-моту", "hr": "хорватська", "hsb": "верхньолужицька", "hsn": "сянська китайська", "ht": "гаїтянська", "hu": "угорська", "hup": "хупа", "hy": "вірменська", "hz": "гереро", "ia": "інтерлінгва", "iba": "ібанська", "ibb": "ібібіо", "id": "індонезійська", "ie": "інтерлінгве", "ig": "ігбо", "ii": "сичуань", "ik": "інупіак", "ilo": "ілоканська", "inh": "інгуська", "io": "ідо", "is": "ісландська", "it": "італійська", "iu": "інуктітут", "ja": "японська", "jbo": "ложбан", "jgo": "нгомба", "jmc": "мачаме", "jpr": "юдео-перська", "jrb": "юдео-арабська", "jv": "яванська", "ka": "грузинська", "kaa": "каракалпацька", "kab": "кабільська", "kac": "качін", "kaj": "йю", "kam": "камба", "kaw": "каві", "kbd": "кабардинська", "kbl": "канембу", "kcg": "тіап", "kde": "маконде", "kea": "кабувердіану", "kfo": "коро", "kg": "конґолезька", "kha": "кхасі", "kho": "хотаносакська", "khq": "койра чіїні", "ki": "кікуйю", "kj": "кунама", "kk": "казахська", "kkj": "како", "kl": "калааллісут", "kln": "календжин", "km": "кхмерська", "kmb": "кімбунду", "kn": "каннада", "ko": "корейська", "koi": "комі-перм’яцька", "kok": "конкані", "kos": "косрае", "kpe": "кпеллє", "kr": "канурі", "krc": "карачаєво-балкарська", "krl": "карельська", "kru": "курукх", "ks": "кашмірська", "ksb": "шамбала", "ksf": "бафіа", "ksh": "колоніан", "ku": "курдська", "kum": "кумицька", "kut": "кутенаї", "kv": "комі", "kw": "корнійська", "ky": "киргизька", "la": "латинська", "lad": "ладіно", "lag": "лангі", "lah": "ланда", "lam": "ламба", "lb": "люксембурзька", "lez": "лезгінська", "lg": "ганда", "li": "лімбургійська", "lkt": "лакота", "ln": "лінгала", "lo": "лаоська", "lol": "монго", "lou": "луїзіанська креольська", "loz": "лозі", "lrc": "північнолурська", "lt": "литовська", "lu": "луба-катанга", "lua": "луба-лулуа", "lui": "луїсеньо", "lun": "лунда", "luo": "луо", "lus": "мізо", "luy": "луйя", "lv": "латвійська", "mad": "мадурська", "maf": "мафа", "mag": "магадхі", "mai": "майтхілі", "mak": "макасарська", "man": "мандінго", "mas": "масаї", "mde": "маба", "mdf": "мокша", "mdr": "мандарська", "men": "менде", "mer": "меру", "mfe": "маврикійська креольська", "mg": "малагасійська", "mga": "середньоірландська", "mgh": "макува-меето", "mgo": "мета", "mh": "маршалльська", "mi": "маорі", "mic": "мікмак", "min": "мінангкабау", "mk": "македонська", "ml": "малаялам", "mn": "монгольська", "mnc": "манчжурська", "mni": "маніпурі", "moh": "магавк", "mos": "моссі", "mr": "маратхі", "ms": "малайська", "mt": "мальтійська", "mua": "мунданг", "mus": "крік", "mwl": "мірандська", "mwr": "марварі", "my": "бірманська", "mye": "миін", "myv": "ерзя", "mzn": "мазандеранська", "na": "науру", "nan": "південноміньська", "nap": "неаполітанська", "naq": "нама", "nb": "норвезька (букмол)", "nd": "північна ндебеле", "nds": "нижньонімецька", "nds-NL": "нижньосаксонська", "ne": "непальська", "new": "неварі", "ng": "ндонга", "nia": "ніаська", "niu": "ніуе", "njo": "ао нага", "nl": "нідерландська", "nl-BE": "фламандська", "nmg": "квазіо", "nn": "норвезька (нюношк)", "nnh": "нгємбун", "no": "норвезька", "nog": "ногайська", "non": "давньонорвезька", "nqo": "нко", "nr": "ндебелє південна", "nso": "північна сото", "nus": "нуер", "nv": "навахо", "nwc": "неварі класична", "ny": "ньянджа", "nym": "ньямвезі", "nyn": "ньянколе", "nyo": "ньоро", "nzi": "нзіма", "oc": "окситанська", "oj": "оджібва", "om": "оромо", "or": "одія", "os": "осетинська", "osa": "осейдж", "ota": "османська", "pa": "панджабі", "pag": "пангасінанська", "pal": "пехлеві", "pam": "пампанга", "pap": "папʼяменто", "pau": "палауанська", "pcm": "нігерійсько-креольська", "peo": "давньоперська", "phn": "фінікійсько-пунічна", "pi": "палі", "pl": "польська", "pon": "понапе", "prg": "пруська", "pro": "давньопровансальська", "ps": "пушту", "pt": "портуґальська", "pt-BR": "португальська (Бразилія)", "pt-PT": "європейська портуґальська", "qu": "кечуа", "quc": "кіче", "raj": "раджастхані", "rap": "рапануї", "rar": "раротонга", "rm": "ретороманська", "rn": "рунді", "ro": "румунська", "ro-MD": "молдавська", "rof": "ромбо", "rom": "циганська", "root": "коренева", "ru": "російська", "rup": "арумунська", "rw": "кіньяруанда", "rwk": "рва", "sa": "санскрит", "sad": "сандаве", "sah": "якутська", "sam": "самаритянська арамейська", "saq": "самбуру", "sas": "сасакська", "sat": "сантальська", "sba": "нгамбай", "sbp": "сангу", "sc": "сардинська", "scn": "сицилійська", "sco": "шотландська", "sd": "сіндхі", "sdh": "південнокурдська", "se": "північносаамська", "see": "сенека", "seh": "сена", "sel": "селькупська", "ses": "койраборо сені", "sg": "санго", "sga": "давньоірландська", "sh": "сербсько-хорватська", "shi": "тачеліт", "shn": "шанська", "shu": "чадійська арабська", "si": "сингальська", "sid": "сідамо", "sk": "словацька", "sl": "словенська", "sm": "самоанська", "sma": "південносаамська", "smj": "саамська луле", "smn": "саамська інарі", "sms": "скольт-саамська", "sn": "шона", "snk": "сонінке", "so": "сомалі", "sog": "согдійська", "sq": "албанська", "sr": "сербська", "srn": "сранан тонго", "srr": "серер", "ss": "сісваті", "ssy": "сахо", "st": "сото південна", "su": "сунданська", "suk": "сукума", "sus": "сусу", "sux": "шумерська", "sv": "шведська", "sw": "суахілі", "sw-CD": "суахілі (Конго)", "swb": "коморська", "syc": "сирійська класична", "syr": "сирійська", "ta": "тамільська", "te": "телугу", "tem": "темне", "teo": "тесо", "ter": "терено", "tet": "тетум", "tg": "таджицька", "th": "тайська", "ti": "тигринья", "tig": "тигре", "tiv": "тів", "tk": "туркменська", "tkl": "токелау", "tl": "тагальська", "tlh": "клінгонська", "tli": "тлінгіт", "tmh": "тамашек", "tn": "тсвана", "to": "тонґанська", "tog": "ньяса тонга", "tpi": "ток-пісін", "tr": "турецька", "trv": "тароко", "ts": "тсонга", "tsi": "цимшиан", "tt": "татарська", "tum": "тумбука", "tvl": "тувалу", "tw": "тві", "twq": "тасавак", "ty": "таїтянська", "tyv": "тувинська", "tzm": "центральноатласька тамазігт", "udm": "удмуртська", "ug": "уйгурська", "uga": "угаритська", "uk": "українська", "umb": "умбунду", "ur": "урду", "uz": "узбецька", "vai": "ваї", "ve": "венда", "vi": "вʼєтнамська", "vo": "волапʼюк", "vot": "водська", "vun": "вуньо", "wa": "валлонська", "wae": "валзерська", "wal": "волайтта", "war": "варай", "was": "вашо", "wbp": "валпірі", "wo": "волоф", "wuu": "уська китайська", "xal": "калмицька", "xh": "кхоса", "xog": "сога", "yao": "яо", "yap": "яп", "yav": "янгбен", "ybb": "ємба", "yi": "їдиш", "yo": "йоруба", "yue": "кантонська", "za": "чжуан", "zap": "сапотекська", "zbl": "блісса мова", "zen": "зенага", "zgh": "стандартна марокканська берберська", "zh": "китайська", "zh-Hans": "китайська (спрощене письмо)", "zh-Hant": "китайська (традиційне письмо)", "zu": "зулуська", "zun": "зуньї", "zza": "зазакі"}, "scriptNames": {"Cyrl": "кирилиця", "Latn": "латиниця", "Arab": "арабиця", "Guru": "гурмухі", "Tfng": "тифінаг", "Vaii": "ваї", "Hans": "спрощена", "Hant": "традиційна"}}, + "ur": {"rtl": true, "languageNames": {"aa": "افار", "ab": "ابقازیان", "ace": "اچائینیز", "ach": "اکولی", "ada": "ادانگمے", "ady": "ادیگھے", "af": "افریقی", "agq": "اغم", "ain": "اینو", "ak": "اکان", "ale": "الیوت", "alt": "جنوبی الٹائی", "am": "امہاری", "an": "اراگونیز", "anp": "انگیکا", "ar": "عربی", "ar-001": "ماڈرن اسٹینڈرڈ عربی", "arn": "ماپوچے", "arp": "اراپاہو", "as": "آسامی", "asa": "آسو", "ast": "اسٹوریائی", "av": "اواری", "awa": "اوادھی", "ay": "ایمارا", "az": "آذربائیجانی", "az-Arab": "آزربائیجانی (عربی)", "ba": "باشکیر", "ban": "بالینیز", "bas": "باسا", "be": "بیلاروسی", "bem": "بیمبا", "bez": "بینا", "bg": "بلغاری", "bgn": "مغربی بلوچی", "bho": "بھوجپوری", "bi": "بسلاما", "bin": "بینی", "bla": "سکسیکا", "bm": "بمبارا", "bn": "بنگالی", "bo": "تبتی", "br": "بریٹن", "brx": "بوڈو", "bs": "بوسنیائی", "bug": "بگینیز", "byn": "بلین", "ca": "کیٹالان", "ccp": "چکمہ", "ce": "چیچن", "ceb": "سیبوآنو", "cgg": "چیگا", "ch": "چیمارو", "chk": "چوکیز", "chm": "ماری", "cho": "چاکٹاؤ", "chr": "چیروکی", "chy": "چینّے", "ckb": "سینٹرل کردش", "co": "کوراسیکن", "crs": "سیسلوا کریولے فرانسیسی", "cs": "چیک", "cu": "چرچ سلاوک", "cv": "چوواش", "cy": "ویلش", "da": "ڈینش", "dak": "ڈاکوٹا", "dar": "درگوا", "dav": "تائتا", "de": "جرمن", "de-AT": "آسٹریائی جرمن", "de-CH": "سوئس ہائی جرمن", "dgr": "دوگریب", "dje": "زرما", "dsb": "ذیلی سربیائی", "dua": "دوالا", "dv": "ڈیویہی", "dyo": "جولا فونيا", "dz": "ژونگکھا", "dzg": "دزاگا", "ebu": "امبو", "ee": "ایو", "efi": "ایفِک", "eka": "ایکاجوی", "el": "یونانی", "en": "انگریزی", "en-AU": "آسٹریلیائی انگریزی", "en-CA": "کینیڈین انگریزی", "en-GB": "برطانوی انگریزی", "en-US": "امریکی انگریزی", "eo": "ایسپرانٹو", "es": "ہسپانوی", "es-419": "لاطینی امریکی ہسپانوی", "es-ES": "یورپی ہسپانوی", "es-MX": "میکسیکن ہسپانوی", "et": "اسٹونین", "eu": "باسکی", "ewo": "ایوانڈو", "fa": "فارسی", "ff": "فولہ", "fi": "فینیش", "fil": "فلیپینو", "fj": "فجی", "fo": "فیروئیز", "fon": "فون", "fr": "فرانسیسی", "fr-CA": "کینیڈین فرانسیسی", "fr-CH": "سوئس فرینچ", "frc": "کاجن فرانسیسی", "fur": "فریولیائی", "fy": "مغربی فریسیئن", "ga": "آئیرِش", "gaa": "گا", "gag": "غاغاوز", "gd": "سکاٹش گیلک", "gez": "گیز", "gil": "گلبرتیز", "gl": "گالیشیائی", "gn": "گُارانی", "gor": "گورانٹالو", "gsw": "سوئس جرمن", "gu": "گجراتی", "guz": "گسی", "gv": "مینکس", "gwi": "گوئچ ان", "ha": "ہؤسا", "haw": "ہوائی", "he": "عبرانی", "hi": "ہندی", "hil": "ہالیگینون", "hmn": "ہمانگ", "hr": "کراتی", "hsb": "اپر سربیائی", "ht": "ہیتی", "hu": "ہنگیرین", "hup": "ہیوپا", "hy": "آرمینیائی", "hz": "ہریرو", "ia": "بین لسانیات", "iba": "ایبان", "ibb": "ابی بیو", "id": "انڈونیثیائی", "ig": "اِگبو", "ii": "سچوان ای", "ilo": "ایلوکو", "inh": "انگوش", "io": "ایڈو", "is": "آئس لینڈک", "it": "اطالوی", "iu": "اینُکٹیٹٹ", "ja": "جاپانی", "jbo": "لوجبان", "jgo": "نگومبا", "jmc": "ماشیم", "jv": "جاوی", "ka": "جارجیائی", "kab": "قبائلی", "kac": "کاچن", "kaj": "جے جو", "kam": "کامبا", "kbd": "کبارڈین", "kcg": "تیاپ", "kde": "ماکونده", "kea": "کابويرديانو", "kfo": "کورو", "kg": "کانگو", "kha": "کھاسی", "khq": "کويرا شيني", "ki": "کیکویو", "kj": "کونیاما", "kk": "قزاخ", "kkj": "کاکو", "kl": "کالاليست", "kln": "کالينجين", "km": "خمیر", "kmb": "کیمبونڈو", "kn": "کنّاڈا", "ko": "کوریائی", "koi": "کومی پرمیاک", "kok": "کونکنی", "kpe": "کیپیلّے", "kr": "کنوری", "krc": "کراچے بالکر", "krl": "کیرلین", "kru": "کوروکھ", "ks": "کشمیری", "ksb": "شامبالا", "ksf": "بافيا", "ksh": "کولوگنیائی", "ku": "کردش", "kum": "کومیک", "kv": "کومی", "kw": "کورنش", "ky": "کرغیزی", "la": "لاطینی", "lad": "لیڈینو", "lag": "لانگی", "lb": "لکسمبرگیش", "lez": "لیزگیان", "lg": "گینڈا", "li": "لیمبرگش", "lkt": "لاکوٹا", "ln": "لِنگَلا", "lo": "لاؤ", "lou": "لوزیانا کریول", "loz": "لوزی", "lrc": "شمالی لری", "lt": "لیتھوینین", "lu": "لبا-کاتانجا", "lua": "لیوبا لولوآ", "lun": "لونڈا", "luo": "لو", "lus": "میزو", "luy": "لویا", "lv": "لیٹوین", "mad": "مدورسی", "mag": "مگاہی", "mai": "میتھیلی", "mak": "مکاسر", "mas": "مسائی", "mdf": "موکشا", "men": "میندے", "mer": "میرو", "mfe": "موریسیین", "mg": "ملاگاسی", "mgh": "ماخاوا-ميتو", "mgo": "میٹا", "mh": "مارشلیز", "mi": "ماؤری", "mic": "مکمیک", "min": "منانگکباؤ", "mk": "مقدونیائی", "ml": "مالایالم", "mn": "منگولین", "mni": "منی پوری", "moh": "موہاک", "mos": "موسی", "mr": "مراٹهی", "ms": "مالے", "mt": "مالٹی", "mua": "منڈانگ", "mus": "کریک", "mwl": "میرانڈیز", "my": "برمی", "myv": "ارزیا", "mzn": "مزندرانی", "na": "ناؤرو", "nap": "نیاپولیٹن", "naq": "ناما", "nb": "نارویجین بوکمل", "nd": "شمالی دبیل", "nds": "ادنی جرمن", "nds-NL": "ادنی سیکسن", "ne": "نیپالی", "new": "نیواری", "ng": "نڈونگا", "nia": "نیاس", "niu": "نیویائی", "nl": "ڈچ", "nl-BE": "فلیمِش", "nmg": "کوايسو", "nn": "نارویجین نینورسک", "nnh": "نگیمبون", "no": "نارویجین", "nog": "نوگائی", "nqo": "اینکو", "nr": "جنوبی نڈیبیلی", "nso": "شمالی سوتھو", "nus": "نویر", "nv": "نواجو", "ny": "نیانجا", "nyn": "نینکول", "oc": "آکسیٹان", "om": "اورومو", "or": "اڑیہ", "os": "اوسیٹک", "pa": "پنجابی", "pag": "پنگاسنان", "pam": "پامپنگا", "pap": "پاپیامینٹو", "pau": "پالاون", "pcm": "نائجیریائی پڈگن", "pl": "پولش", "prg": "پارسی", "ps": "پشتو", "pt": "پُرتگالی", "pt-BR": "برازیلی پرتگالی", "pt-PT": "یورپی پرتگالی", "qu": "کویچوآ", "quc": "کيشی", "rap": "رپانوی", "rar": "راروتونگان", "rm": "رومانش", "rn": "رونڈی", "ro": "رومینین", "ro-MD": "مالدووا", "rof": "رومبو", "root": "روٹ", "ru": "روسی", "rup": "ارومانی", "rw": "کینیاروانڈا", "rwk": "روا", "sa": "سنسکرت", "sad": "سنڈاوے", "sah": "ساکھا", "saq": "سامبورو", "sat": "سنتالی", "sba": "نگامبے", "sbp": "سانگو", "sc": "سردینین", "scn": "سیسیلین", "sco": "سکاٹ", "sd": "سندھی", "sdh": "جنوبی کرد", "se": "شمالی سامی", "seh": "سینا", "ses": "کويرابورو سينی", "sg": "ساںغو", "sh": "سربو-کروئیشین", "shi": "تشلحيت", "shn": "شان", "si": "سنہالا", "sk": "سلوواک", "sl": "سلووینیائی", "sm": "ساموآن", "sma": "جنوبی سامی", "smj": "لول سامی", "smn": "اناری سامی", "sms": "سکولٹ سامی", "sn": "شونا", "snk": "سوننکے", "so": "صومالی", "sq": "البانی", "sr": "سربین", "srn": "سرانن ٹونگو", "ss": "سواتی", "ssy": "ساہو", "st": "جنوبی سوتھو", "su": "سنڈانیز", "suk": "سکوما", "sv": "سویڈش", "sw": "سواحلی", "sw-CD": "کانگو سواحلی", "swb": "کوموریائی", "syr": "سریانی", "ta": "تمل", "te": "تیلگو", "tem": "ٹمنے", "teo": "تیسو", "tet": "ٹیٹم", "tg": "تاجک", "th": "تھائی", "ti": "ٹگرینیا", "tig": "ٹگرے", "tk": "ترکمان", "tl": "ٹیگا لوگ", "tlh": "کلنگن", "tn": "سوانا", "to": "ٹونگن", "tpi": "ٹوک پِسِن", "tr": "ترکی", "trv": "ٹوروکو", "ts": "زونگا", "tt": "تاتار", "tum": "ٹمبوکا", "tvl": "تووالو", "tw": "توی", "twq": "تاساواق", "ty": "تاہیتی", "tyv": "تووینین", "tzm": "سینٹرل ایٹلس ٹمازائٹ", "udm": "ادمورت", "ug": "یوئگہر", "uk": "یوکرینیائی", "umb": "اومبوندو", "ur": "اردو", "uz": "ازبیک", "vai": "وائی", "ve": "وینڈا", "vi": "ویتنامی", "vo": "وولاپوک", "vun": "ونجو", "wa": "والون", "wae": "والسر", "wal": "وولایتا", "war": "وارے", "wbp": "وارلپیری", "wo": "وولوف", "xal": "کالمیک", "xh": "ژوسا", "xog": "سوگا", "yav": "یانگبین", "ybb": "یمبا", "yi": "یدش", "yo": "یوروبا", "yue": "کینٹونیز", "zgh": "اسٹینڈرڈ مراقشی تمازیقی", "zh": "چینی", "zh-Hans": "چینی (آسان کردہ)", "zh-Hant": "روایتی چینی", "zu": "زولو", "zun": "زونی", "zza": "زازا"}, "scriptNames": {"Cyrl": "سیریلک", "Latn": "لاطینی", "Arab": "عربی", "Guru": "گرمکھی", "Hans": "آسان", "Hant": "روایتی"}}, + "vi": {"rtl": false, "languageNames": {"aa": "Tiếng Afar", "ab": "Tiếng Abkhazia", "ace": "Tiếng Achinese", "ach": "Tiếng Acoli", "ada": "Tiếng Adangme", "ady": "Tiếng Adyghe", "ae": "Tiếng Avestan", "af": "Tiếng Afrikaans", "afh": "Tiếng Afrihili", "agq": "Tiếng Aghem", "ain": "Tiếng Ainu", "ak": "Tiếng Akan", "akk": "Tiếng Akkadia", "akz": "Tiếng Alabama", "ale": "Tiếng Aleut", "aln": "Tiếng Gheg Albani", "alt": "Tiếng Altai Miền Nam", "am": "Tiếng Amharic", "an": "Tiếng Aragon", "ang": "Tiếng Anh cổ", "anp": "Tiếng Angika", "ar": "Tiếng Ả Rập", "ar-001": "Tiếng Ả Rập Hiện đại", "arc": "Tiếng Aramaic", "arn": "Tiếng Mapuche", "aro": "Tiếng Araona", "arp": "Tiếng Arapaho", "arq": "Tiếng Ả Rập Algeria", "ars": "Tiếng Ả Rập Najdi", "arw": "Tiếng Arawak", "arz": "Tiếng Ả Rập Ai Cập", "as": "Tiếng Assam", "asa": "Tiếng Asu", "ase": "Ngôn ngữ Ký hiệu Mỹ", "ast": "Tiếng Asturias", "av": "Tiếng Avaric", "awa": "Tiếng Awadhi", "ay": "Tiếng Aymara", "az": "Tiếng Azerbaijan", "ba": "Tiếng Bashkir", "bal": "Tiếng Baluchi", "ban": "Tiếng Bali", "bar": "Tiếng Bavaria", "bas": "Tiếng Basaa", "bax": "Tiếng Bamun", "bbc": "Tiếng Batak Toba", "bbj": "Tiếng Ghomala", "be": "Tiếng Belarus", "bej": "Tiếng Beja", "bem": "Tiếng Bemba", "bew": "Tiếng Betawi", "bez": "Tiếng Bena", "bfd": "Tiếng Bafut", "bfq": "Tiếng Badaga", "bg": "Tiếng Bulgaria", "bgn": "Tiếng Tây Balochi", "bho": "Tiếng Bhojpuri", "bi": "Tiếng Bislama", "bik": "Tiếng Bikol", "bin": "Tiếng Bini", "bjn": "Tiếng Banjar", "bkm": "Tiếng Kom", "bla": "Tiếng Siksika", "bm": "Tiếng Bambara", "bn": "Tiếng Bangla", "bo": "Tiếng Tây Tạng", "bpy": "Tiếng Bishnupriya", "bqi": "Tiếng Bakhtiari", "br": "Tiếng Breton", "bra": "Tiếng Braj", "brh": "Tiếng Brahui", "brx": "Tiếng Bodo", "bs": "Tiếng Bosnia", "bss": "Tiếng Akoose", "bua": "Tiếng Buriat", "bug": "Tiếng Bugin", "bum": "Tiếng Bulu", "byn": "Tiếng Blin", "byv": "Tiếng Medumba", "ca": "Tiếng Catalan", "cad": "Tiếng Caddo", "car": "Tiếng Carib", "cay": "Tiếng Cayuga", "cch": "Tiếng Atsam", "ccp": "Tiếng Chakma", "ce": "Tiếng Chechen", "ceb": "Tiếng Cebuano", "cgg": "Tiếng Chiga", "ch": "Tiếng Chamorro", "chb": "Tiếng Chibcha", "chg": "Tiếng Chagatai", "chk": "Tiếng Chuuk", "chm": "Tiếng Mari", "chn": "Biệt ngữ Chinook", "cho": "Tiếng Choctaw", "chp": "Tiếng Chipewyan", "chr": "Tiếng Cherokee", "chy": "Tiếng Cheyenne", "ckb": "Tiếng Kurd Miền Trung", "co": "Tiếng Corsica", "cop": "Tiếng Coptic", "cps": "Tiếng Capiznon", "cr": "Tiếng Cree", "crh": "Tiếng Thổ Nhĩ Kỳ Crimean", "crs": "Tiếng Pháp Seselwa Creole", "cs": "Tiếng Séc", "csb": "Tiếng Kashubia", "cu": "Tiếng Slavơ Nhà thờ", "cv": "Tiếng Chuvash", "cy": "Tiếng Wales", "da": "Tiếng Đan Mạch", "dak": "Tiếng Dakota", "dar": "Tiếng Dargwa", "dav": "Tiếng Taita", "de": "Tiếng Đức", "de-AT": "Tiếng Đức (Áo)", "de-CH": "Tiếng Thượng Giéc-man (Thụy Sĩ)", "del": "Tiếng Delaware", "den": "Tiếng Slave", "dgr": "Tiếng Dogrib", "din": "Tiếng Dinka", "dje": "Tiếng Zarma", "doi": "Tiếng Dogri", "dsb": "Tiếng Hạ Sorbia", "dtp": "Tiếng Dusun Miền Trung", "dua": "Tiếng Duala", "dum": "Tiếng Hà Lan Trung cổ", "dv": "Tiếng Divehi", "dyo": "Tiếng Jola-Fonyi", "dyu": "Tiếng Dyula", "dz": "Tiếng Dzongkha", "dzg": "Tiếng Dazaga", "ebu": "Tiếng Embu", "ee": "Tiếng Ewe", "efi": "Tiếng Efik", "egl": "Tiếng Emilia", "egy": "Tiếng Ai Cập cổ", "eka": "Tiếng Ekajuk", "el": "Tiếng Hy Lạp", "elx": "Tiếng Elamite", "en": "Tiếng Anh", "en-AU": "Tiếng Anh (Australia)", "en-CA": "Tiếng Anh (Canada)", "en-GB": "Tiếng Anh (Anh)", "en-US": "Tiếng Anh (Mỹ)", "enm": "Tiếng Anh Trung cổ", "eo": "Tiếng Quốc Tế Ngữ", "es": "Tiếng Tây Ban Nha", "es-419": "Tiếng Tây Ban Nha (Mỹ La tinh)", "es-ES": "Tiếng Tây Ban Nha (Châu Âu)", "es-MX": "Tiếng Tây Ban Nha (Mexico)", "esu": "Tiếng Yupik Miền Trung", "et": "Tiếng Estonia", "eu": "Tiếng Basque", "ewo": "Tiếng Ewondo", "ext": "Tiếng Extremadura", "fa": "Tiếng Ba Tư", "fan": "Tiếng Fang", "fat": "Tiếng Fanti", "ff": "Tiếng Fulah", "fi": "Tiếng Phần Lan", "fil": "Tiếng Philippines", "fj": "Tiếng Fiji", "fo": "Tiếng Faroe", "fon": "Tiếng Fon", "fr": "Tiếng Pháp", "fr-CA": "Tiếng Pháp (Canada)", "fr-CH": "Tiếng Pháp (Thụy Sĩ)", "frc": "Tiếng Pháp Cajun", "frm": "Tiếng Pháp Trung cổ", "fro": "Tiếng Pháp cổ", "frp": "Tiếng Arpitan", "frr": "Tiếng Frisia Miền Bắc", "frs": "Tiếng Frisian Miền Đông", "fur": "Tiếng Friulian", "fy": "Tiếng Frisia", "ga": "Tiếng Ireland", "gaa": "Tiếng Ga", "gag": "Tiếng Gagauz", "gan": "Tiếng Cám", "gay": "Tiếng Gayo", "gba": "Tiếng Gbaya", "gd": "Tiếng Gael Scotland", "gez": "Tiếng Geez", "gil": "Tiếng Gilbert", "gl": "Tiếng Galician", "glk": "Tiếng Gilaki", "gmh": "Tiếng Thượng Giéc-man Trung cổ", "gn": "Tiếng Guarani", "goh": "Tiếng Thượng Giéc-man cổ", "gom": "Tiếng Goan Konkani", "gon": "Tiếng Gondi", "gor": "Tiếng Gorontalo", "got": "Tiếng Gô-tích", "grb": "Tiếng Grebo", "grc": "Tiếng Hy Lạp cổ", "gsw": "Tiếng Đức (Thụy Sĩ)", "gu": "Tiếng Gujarati", "gur": "Tiếng Frafra", "guz": "Tiếng Gusii", "gv": "Tiếng Manx", "gwi": "Tiếng Gwichʼin", "ha": "Tiếng Hausa", "hai": "Tiếng Haida", "hak": "Tiếng Khách Gia", "haw": "Tiếng Hawaii", "he": "Tiếng Do Thái", "hi": "Tiếng Hindi", "hif": "Tiếng Fiji Hindi", "hil": "Tiếng Hiligaynon", "hit": "Tiếng Hittite", "hmn": "Tiếng Hmông", "ho": "Tiếng Hiri Motu", "hr": "Tiếng Croatia", "hsb": "Tiếng Thượng Sorbia", "hsn": "Tiếng Tương", "ht": "Tiếng Haiti", "hu": "Tiếng Hungary", "hup": "Tiếng Hupa", "hy": "Tiếng Armenia", "hz": "Tiếng Herero", "ia": "Tiếng Khoa Học Quốc Tế", "iba": "Tiếng Iban", "ibb": "Tiếng Ibibio", "id": "Tiếng Indonesia", "ie": "Tiếng Interlingue", "ig": "Tiếng Igbo", "ii": "Tiếng Di Tứ Xuyên", "ik": "Tiếng Inupiaq", "ilo": "Tiếng Iloko", "inh": "Tiếng Ingush", "io": "Tiếng Ido", "is": "Tiếng Iceland", "it": "Tiếng Italy", "iu": "Tiếng Inuktitut", "izh": "Tiếng Ingria", "ja": "Tiếng Nhật", "jam": "Tiếng Anh Jamaica Creole", "jbo": "Tiếng Lojban", "jgo": "Tiếng Ngomba", "jmc": "Tiếng Machame", "jpr": "Tiếng Judeo-Ba Tư", "jrb": "Tiếng Judeo-Ả Rập", "jut": "Tiếng Jutish", "jv": "Tiếng Java", "ka": "Tiếng Georgia", "kaa": "Tiếng Kara-Kalpak", "kab": "Tiếng Kabyle", "kac": "Tiếng Kachin", "kaj": "Tiếng Jju", "kam": "Tiếng Kamba", "kaw": "Tiếng Kawi", "kbd": "Tiếng Kabardian", "kbl": "Tiếng Kanembu", "kcg": "Tiếng Tyap", "kde": "Tiếng Makonde", "kea": "Tiếng Kabuverdianu", "kfo": "Tiếng Koro", "kg": "Tiếng Kongo", "kha": "Tiếng Khasi", "kho": "Tiếng Khotan", "khq": "Tiếng Koyra Chiini", "ki": "Tiếng Kikuyu", "kj": "Tiếng Kuanyama", "kk": "Tiếng Kazakh", "kkj": "Tiếng Kako", "kl": "Tiếng Kalaallisut", "kln": "Tiếng Kalenjin", "km": "Tiếng Khmer", "kmb": "Tiếng Kimbundu", "kn": "Tiếng Kannada", "ko": "Tiếng Hàn", "koi": "Tiếng Komi-Permyak", "kok": "Tiếng Konkani", "kos": "Tiếng Kosrae", "kpe": "Tiếng Kpelle", "kr": "Tiếng Kanuri", "krc": "Tiếng Karachay-Balkar", "krl": "Tiếng Karelian", "kru": "Tiếng Kurukh", "ks": "Tiếng Kashmir", "ksb": "Tiếng Shambala", "ksf": "Tiếng Bafia", "ksh": "Tiếng Cologne", "ku": "Tiếng Kurd", "kum": "Tiếng Kumyk", "kut": "Tiếng Kutenai", "kv": "Tiếng Komi", "kw": "Tiếng Cornwall", "ky": "Tiếng Kyrgyz", "la": "Tiếng La-tinh", "lad": "Tiếng Ladino", "lag": "Tiếng Langi", "lah": "Tiếng Lahnda", "lam": "Tiếng Lamba", "lb": "Tiếng Luxembourg", "lez": "Tiếng Lezghian", "lg": "Tiếng Ganda", "li": "Tiếng Limburg", "lkt": "Tiếng Lakota", "ln": "Tiếng Lingala", "lo": "Tiếng Lào", "lol": "Tiếng Mongo", "lou": "Tiếng Creole Louisiana", "loz": "Tiếng Lozi", "lrc": "Tiếng Bắc Luri", "lt": "Tiếng Litva", "lu": "Tiếng Luba-Katanga", "lua": "Tiếng Luba-Lulua", "lui": "Tiếng Luiseno", "lun": "Tiếng Lunda", "luo": "Tiếng Luo", "lus": "Tiếng Lushai", "luy": "Tiếng Luyia", "lv": "Tiếng Latvia", "mad": "Tiếng Madura", "maf": "Tiếng Mafa", "mag": "Tiếng Magahi", "mai": "Tiếng Maithili", "mak": "Tiếng Makasar", "man": "Tiếng Mandingo", "mas": "Tiếng Masai", "mde": "Tiếng Maba", "mdf": "Tiếng Moksha", "mdr": "Tiếng Mandar", "men": "Tiếng Mende", "mer": "Tiếng Meru", "mfe": "Tiếng Morisyen", "mg": "Tiếng Malagasy", "mga": "Tiếng Ai-len Trung cổ", "mgh": "Tiếng Makhuwa-Meetto", "mgo": "Tiếng Meta’", "mh": "Tiếng Marshall", "mi": "Tiếng Maori", "mic": "Tiếng Micmac", "min": "Tiếng Minangkabau", "mk": "Tiếng Macedonia", "ml": "Tiếng Malayalam", "mn": "Tiếng Mông Cổ", "mnc": "Tiếng Mãn Châu", "mni": "Tiếng Manipuri", "moh": "Tiếng Mohawk", "mos": "Tiếng Mossi", "mr": "Tiếng Marathi", "ms": "Tiếng Mã Lai", "mt": "Tiếng Malta", "mua": "Tiếng Mundang", "mus": "Tiếng Creek", "mwl": "Tiếng Miranda", "mwr": "Tiếng Marwari", "my": "Tiếng Miến Điện", "mye": "Tiếng Myene", "myv": "Tiếng Erzya", "mzn": "Tiếng Mazanderani", "na": "Tiếng Nauru", "nan": "Tiếng Mân Nam", "nap": "Tiếng Napoli", "naq": "Tiếng Nama", "nb": "Tiếng Na Uy (Bokmål)", "nd": "Tiếng Ndebele Miền Bắc", "nds": "Tiếng Hạ Giéc-man", "nds-NL": "Tiếng Hạ Saxon", "ne": "Tiếng Nepal", "new": "Tiếng Newari", "ng": "Tiếng Ndonga", "nia": "Tiếng Nias", "niu": "Tiếng Niuean", "njo": "Tiếng Ao Naga", "nl": "Tiếng Hà Lan", "nl-BE": "Tiếng Flemish", "nmg": "Tiếng Kwasio", "nn": "Tiếng Na Uy (Nynorsk)", "nnh": "Tiếng Ngiemboon", "no": "Tiếng Na Uy", "nog": "Tiếng Nogai", "non": "Tiếng Na Uy cổ", "nqo": "Tiếng N’Ko", "nr": "Tiếng Ndebele Miền Nam", "nso": "Tiếng Sotho Miền Bắc", "nus": "Tiếng Nuer", "nv": "Tiếng Navajo", "nwc": "Tiếng Newari cổ", "ny": "Tiếng Nyanja", "nym": "Tiếng Nyamwezi", "nyn": "Tiếng Nyankole", "nyo": "Tiếng Nyoro", "nzi": "Tiếng Nzima", "oc": "Tiếng Occitan", "oj": "Tiếng Ojibwa", "om": "Tiếng Oromo", "or": "Tiếng Odia", "os": "Tiếng Ossetic", "osa": "Tiếng Osage", "ota": "Tiếng Thổ Nhĩ Kỳ Ottoman", "pa": "Tiếng Punjab", "pag": "Tiếng Pangasinan", "pal": "Tiếng Pahlavi", "pam": "Tiếng Pampanga", "pap": "Tiếng Papiamento", "pau": "Tiếng Palauan", "pcm": "Tiếng Nigeria Pidgin", "peo": "Tiếng Ba Tư cổ", "phn": "Tiếng Phoenicia", "pi": "Tiếng Pali", "pl": "Tiếng Ba Lan", "pon": "Tiếng Pohnpeian", "prg": "Tiếng Prussia", "pro": "Tiếng Provençal cổ", "ps": "Tiếng Pashto", "pt": "Tiếng Bồ Đào Nha", "pt-BR": "Tiếng Bồ Đào Nha (Brazil)", "pt-PT": "Tiếng Bồ Đào Nha (Châu Âu)", "qu": "Tiếng Quechua", "quc": "Tiếng Kʼicheʼ", "qug": "Tiếng Quechua ở Cao nguyên Chimborazo", "raj": "Tiếng Rajasthani", "rap": "Tiếng Rapanui", "rar": "Tiếng Rarotongan", "rm": "Tiếng Romansh", "rn": "Tiếng Rundi", "ro": "Tiếng Romania", "ro-MD": "Tiếng Moldova", "rof": "Tiếng Rombo", "rom": "Tiếng Romany", "root": "Tiếng Root", "ru": "Tiếng Nga", "rup": "Tiếng Aromania", "rw": "Tiếng Kinyarwanda", "rwk": "Tiếng Rwa", "sa": "Tiếng Phạn", "sad": "Tiếng Sandawe", "sah": "Tiếng Sakha", "sam": "Tiếng Samaritan Aramaic", "saq": "Tiếng Samburu", "sas": "Tiếng Sasak", "sat": "Tiếng Santali", "sba": "Tiếng Ngambay", "sbp": "Tiếng Sangu", "sc": "Tiếng Sardinia", "scn": "Tiếng Sicilia", "sco": "Tiếng Scots", "sd": "Tiếng Sindhi", "sdh": "Tiếng Kurd Miền Nam", "se": "Tiếng Sami Miền Bắc", "see": "Tiếng Seneca", "seh": "Tiếng Sena", "sel": "Tiếng Selkup", "ses": "Tiếng Koyraboro Senni", "sg": "Tiếng Sango", "sga": "Tiếng Ai-len cổ", "sh": "Tiếng Serbo-Croatia", "shi": "Tiếng Tachelhit", "shn": "Tiếng Shan", "shu": "Tiếng Ả-Rập Chad", "si": "Tiếng Sinhala", "sid": "Tiếng Sidamo", "sk": "Tiếng Slovak", "sl": "Tiếng Slovenia", "sm": "Tiếng Samoa", "sma": "Tiếng Sami Miền Nam", "smj": "Tiếng Lule Sami", "smn": "Tiếng Inari Sami", "sms": "Tiếng Skolt Sami", "sn": "Tiếng Shona", "snk": "Tiếng Soninke", "so": "Tiếng Somali", "sog": "Tiếng Sogdien", "sq": "Tiếng Albania", "sr": "Tiếng Serbia", "srn": "Tiếng Sranan Tongo", "srr": "Tiếng Serer", "ss": "Tiếng Swati", "ssy": "Tiếng Saho", "st": "Tiếng Sotho Miền Nam", "su": "Tiếng Sunda", "suk": "Tiếng Sukuma", "sus": "Tiếng Susu", "sux": "Tiếng Sumeria", "sv": "Tiếng Thụy Điển", "sw": "Tiếng Swahili", "sw-CD": "Tiếng Swahili Congo", "swb": "Tiếng Cômo", "syc": "Tiếng Syriac cổ", "syr": "Tiếng Syriac", "ta": "Tiếng Tamil", "te": "Tiếng Telugu", "tem": "Tiếng Timne", "teo": "Tiếng Teso", "ter": "Tiếng Tereno", "tet": "Tiếng Tetum", "tg": "Tiếng Tajik", "th": "Tiếng Thái", "ti": "Tiếng Tigrinya", "tig": "Tiếng Tigre", "tiv": "Tiếng Tiv", "tk": "Tiếng Turkmen", "tkl": "Tiếng Tokelau", "tl": "Tiếng Tagalog", "tlh": "Tiếng Klingon", "tli": "Tiếng Tlingit", "tmh": "Tiếng Tamashek", "tn": "Tiếng Tswana", "to": "Tiếng Tonga", "tog": "Tiếng Nyasa Tonga", "tpi": "Tiếng Tok Pisin", "tr": "Tiếng Thổ Nhĩ Kỳ", "trv": "Tiếng Taroko", "ts": "Tiếng Tsonga", "tsi": "Tiếng Tsimshian", "tt": "Tiếng Tatar", "tum": "Tiếng Tumbuka", "tvl": "Tiếng Tuvalu", "tw": "Tiếng Twi", "twq": "Tiếng Tasawaq", "ty": "Tiếng Tahiti", "tyv": "Tiếng Tuvinian", "tzm": "Tiếng Tamazight Miền Trung Ma-rốc", "udm": "Tiếng Udmurt", "ug": "Tiếng Uyghur", "uga": "Tiếng Ugaritic", "uk": "Tiếng Ucraina", "umb": "Tiếng Umbundu", "ur": "Tiếng Urdu", "uz": "Tiếng Uzbek", "vai": "Tiếng Vai", "ve": "Tiếng Venda", "vi": "Tiếng Việt", "vo": "Tiếng Volapük", "vot": "Tiếng Votic", "vun": "Tiếng Vunjo", "wa": "Tiếng Walloon", "wae": "Tiếng Walser", "wal": "Tiếng Walamo", "war": "Tiếng Waray", "was": "Tiếng Washo", "wbp": "Tiếng Warlpiri", "wo": "Tiếng Wolof", "wuu": "Tiếng Ngô", "xal": "Tiếng Kalmyk", "xh": "Tiếng Xhosa", "xog": "Tiếng Soga", "yao": "Tiếng Yao", "yap": "Tiếng Yap", "yav": "Tiếng Yangben", "ybb": "Tiếng Yemba", "yi": "Tiếng Yiddish", "yo": "Tiếng Yoruba", "yue": "Tiếng Quảng Đông", "za": "Tiếng Choang", "zap": "Tiếng Zapotec", "zbl": "Ký hiệu Blissymbols", "zen": "Tiếng Zenaga", "zgh": "Tiếng Tamazight Chuẩn của Ma-rốc", "zh": "Tiếng Trung", "zh-Hans": "Tiếng Trung (Giản thể)", "zh-Hant": "Tiếng Trung (Phồn thể)", "zu": "Tiếng Zulu", "zun": "Tiếng Zuni", "zza": "Tiếng Zaza"}, "scriptNames": {"Cyrl": "Chữ Kirin", "Latn": "Chữ La tinh", "Arab": "Chữ Ả Rập", "Guru": "Chữ Gurmukhi", "Tfng": "Chữ Tifinagh", "Vaii": "Chữ Vai", "Hans": "Giản thể", "Hant": "Phồn thể"}}, + "yue": {"rtl": false, "languageNames": {"aa": "阿法文", "ab": "阿布哈茲文", "ace": "亞齊文", "ach": "阿僑利文", "ada": "阿當莫文", "ady": "阿迪各文", "ae": "阿緯斯陀文", "aeb": "突尼斯阿拉伯文", "af": "南非荷蘭文", "afh": "阿弗里希利文", "agq": "亞罕文", "ain": "阿伊努文", "ak": "阿坎文", "akk": "阿卡德文", "akz": "阿拉巴馬文", "ale": "阿留申文", "aln": "蓋格阿爾巴尼亞文", "alt": "南阿爾泰文", "am": "阿姆哈拉文", "an": "阿拉貢文", "ang": "古英文", "anp": "昂加文", "ar": "阿拉伯文", "ar-001": "現代標準阿拉伯文", "arc": "阿拉米文", "arn": "馬普切文", "aro": "阿拉奧納文", "arp": "阿拉帕霍文", "arq": "阿爾及利亞阿拉伯文", "arw": "阿拉瓦克文", "ary": "摩洛哥阿拉伯文", "arz": "埃及阿拉伯文", "as": "阿薩姆文", "asa": "阿蘇文", "ase": "美國手語", "ast": "阿斯圖里亞文", "av": "阿瓦爾文", "avk": "科塔瓦文", "awa": "阿瓦文", "ay": "艾馬拉文", "az": "亞塞拜然文", "ba": "巴什客爾文", "bal": "俾路支文", "ban": "峇里文", "bar": "巴伐利亞文", "bas": "巴薩文", "bax": "巴姆穆文", "bbc": "巴塔克托巴文", "bbj": "戈馬拉文", "be": "白俄羅斯文", "bej": "貝扎文", "bem": "別姆巴文", "bew": "貝塔維文", "bez": "貝納文", "bfd": "富特文", "bfq": "巴達加文", "bg": "保加利亞文", "bgn": "西俾路支文", "bho": "博傑普爾文", "bi": "比斯拉馬文", "bik": "比科爾文", "bin": "比尼文", "bjn": "班亞爾文", "bkm": "康姆文", "bla": "錫克錫卡文", "bm": "班巴拉文", "bn": "孟加拉文", "bo": "藏文", "bpy": "比什奴普萊利亞文", "bqi": "巴赫蒂亞里文", "br": "布列塔尼文", "bra": "布拉杰文", "brh": "布拉維文", "brx": "博多文", "bs": "波士尼亞文", "bss": "阿庫色文", "bua": "布里阿特文", "bug": "布吉斯文", "bum": "布魯文", "byn": "比林文", "byv": "梅敦巴文", "ca": "加泰羅尼亞文", "cad": "卡多文", "car": "加勒比文", "cay": "卡尤加文", "cch": "阿燦文", "ccp": "查克馬文", "ce": "車臣文", "ceb": "宿霧文", "cgg": "奇加文", "ch": "查莫洛文", "chb": "奇布查文", "chg": "查加文", "chk": "處奇斯文", "chm": "馬里文", "chn": "契奴克文", "cho": "喬克托文", "chp": "奇佩瓦揚文", "chr": "柴羅基文", "chy": "沙伊安文", "ckb": "索拉尼庫爾德文", "co": "科西嘉文", "cop": "科普特文", "cps": "卡皮茲文", "cr": "克裡文", "crh": "克里米亞半島的土耳其文;克里米亞半島的塔塔爾文", "crs": "法語克里奧爾混合語", "cs": "捷克文", "csb": "卡舒布文", "cu": "宗教斯拉夫文", "cv": "楚瓦什文", "cy": "威爾斯文", "da": "丹麥文", "dak": "達科他文", "dar": "達爾格瓦文", "dav": "台塔文", "de": "德文", "de-AT": "德文 (奧地利)", "de-CH": "高地德文(瑞士)", "del": "德拉瓦文", "den": "斯拉夫", "dgr": "多格里布文", "din": "丁卡文", "dje": "扎爾馬文", "doi": "多格來文", "dsb": "下索布文", "dtp": "中部杜順文", "dua": "杜亞拉文", "dum": "中古荷蘭文", "dv": "迪維西文", "dyo": "朱拉文", "dyu": "迪尤拉文", "dz": "宗卡文", "dzg": "達薩文", "ebu": "恩布文", "ee": "埃維文", "efi": "埃菲克文", "egl": "埃米利安文", "egy": "古埃及文", "eka": "艾卡朱克文", "el": "希臘文", "elx": "埃蘭文", "en": "英文", "en-AU": "英文 (澳洲)", "en-CA": "英文 (加拿大)", "en-GB": "英文 (英國)", "en-US": "英文 (美國)", "enm": "中古英文", "eo": "世界文", "es": "西班牙文", "es-419": "西班牙文 (拉丁美洲)", "es-ES": "西班牙文 (西班牙)", "es-MX": "西班牙文 (墨西哥)", "esu": "中尤皮克文", "et": "愛沙尼亞文", "eu": "巴斯克文", "ewo": "依汪都文", "ext": "埃斯特雷馬杜拉文", "fa": "波斯文", "fan": "芳族文", "fat": "芳蒂文", "ff": "富拉文", "fi": "芬蘭文", "fil": "菲律賓文", "fit": "托爾訥芬蘭文", "fj": "斐濟文", "fo": "法羅文", "fon": "豐文", "fr": "法文", "fr-CA": "法文 (加拿大)", "fr-CH": "法文 (瑞士)", "frc": "卡真法文", "frm": "中古法文", "fro": "古法文", "frp": "法蘭克-普羅旺斯文", "frr": "北弗里西亞文", "frs": "東弗里西亞文", "fur": "弗留利文", "fy": "西弗里西亞文", "ga": "愛爾蘭文", "gaa": "加族文", "gag": "加告茲文", "gan": "贛語", "gay": "加約文", "gba": "葛巴亞文", "gbz": "索羅亞斯德教達里文", "gd": "蘇格蘭蓋爾文", "gez": "吉茲文", "gil": "吉爾伯特群島文", "gl": "加利西亞文", "glk": "吉拉基文", "gmh": "中古高地德文", "gn": "瓜拉尼文", "goh": "古高地日耳曼文", "gom": "孔卡尼文", "gon": "岡德文", "gor": "科隆達羅文", "got": "哥德文", "grb": "格列博文", "grc": "古希臘文", "gsw": "德文(瑞士)", "gu": "古吉拉特文", "guc": "瓦尤文", "gur": "弗拉弗拉文", "guz": "古西文", "gv": "曼島文", "gwi": "圭契文", "ha": "豪撒文", "hai": "海達文", "hak": "客家話", "haw": "夏威夷文", "he": "希伯來文", "hi": "北印度文", "hif": "斐濟印地文", "hil": "希利蓋農文", "hit": "赫梯文", "hmn": "孟文", "ho": "西里莫圖土文", "hr": "克羅埃西亞文", "hsb": "上索布文", "hsn": "湘語", "ht": "海地文", "hu": "匈牙利文", "hup": "胡帕文", "hy": "亞美尼亞文", "hz": "赫雷羅文", "ia": "國際文", "iba": "伊班文", "ibb": "伊比比奧文", "id": "印尼文", "ie": "國際文(E)", "ig": "伊布文", "ii": "四川彝文", "ik": "依奴皮維克文", "ilo": "伊洛闊文", "inh": "印古什文", "io": "伊多文", "is": "冰島文", "it": "義大利文", "iu": "因紐特文", "izh": "英格裏亞文", "ja": "日文", "jam": "牙買加克裏奧爾英文", "jbo": "邏輯文", "jgo": "恩格姆巴文", "jmc": "馬恰美文", "jpr": "猶太教-波斯文", "jrb": "猶太阿拉伯文", "jut": "日德蘭文", "jv": "爪哇文", "ka": "喬治亞文", "kaa": "卡拉卡爾帕克文", "kab": "卡比爾文", "kac": "卡琴文", "kaj": "卡捷文", "kam": "卡姆巴文", "kaw": "卡威文", "kbd": "卡巴爾達文", "kbl": "卡念布文", "kcg": "卡塔布文", "kde": "馬孔德文", "kea": "卡布威爾第文", "ken": "肯揚文", "kfo": "科羅文", "kg": "剛果文", "kgp": "坎剛文", "kha": "卡西文", "kho": "和闐文", "khq": "西桑海文", "khw": "科瓦文", "ki": "吉庫尤文", "kiu": "北紮紮其文", "kj": "廣亞馬文", "kk": "哈薩克文", "kkj": "卡庫文", "kl": "格陵蘭文", "kln": "卡倫金文", "km": "高棉文", "kmb": "金邦杜文", "kn": "坎那達文", "ko": "韓文", "koi": "科米-彼爾米亞克文", "kok": "貢根文", "kos": "科斯雷恩文", "kpe": "克佩列文", "kr": "卡努裡文", "krc": "卡拉柴-包爾卡爾文", "kri": "塞拉利昂克裏奧爾文", "krj": "基那來阿文", "krl": "卡累利阿文", "kru": "庫魯科文", "ks": "喀什米爾文", "ksb": "尚巴拉文", "ksf": "巴菲亞文", "ksh": "科隆文", "ku": "庫爾德文", "kum": "庫密克文", "kut": "庫特奈文", "kv": "科米文", "kw": "康瓦耳文", "ky": "吉爾吉斯文", "la": "拉丁文", "lad": "拉迪諾文", "lag": "朗吉文", "lah": "拉亨達文", "lam": "蘭巴文", "lb": "盧森堡文", "lez": "列茲干文", "lfn": "新共同語言", "lg": "干達文", "li": "林堡文", "lij": "利古里亞文", "liv": "利伏尼亞文", "lkt": "拉科塔文", "lmo": "倫巴底文", "ln": "林加拉文", "lo": "寮文", "lol": "芒戈文", "loz": "洛齊文", "lrc": "北盧爾文", "lt": "立陶宛文", "ltg": "拉特加萊文", "lu": "魯巴加丹加文", "lua": "魯巴魯魯亞文", "lui": "路易塞諾文", "lun": "盧恩達文", "luo": "盧奧文", "lus": "盧晒文", "luy": "盧雅文", "lv": "拉脫維亞文", "lzh": "文言文", "lzz": "拉茲文", "mad": "馬都拉文", "maf": "馬法文", "mag": "馬加伊文", "mai": "邁蒂利文", "mak": "望加錫文", "man": "曼丁哥文", "mas": "馬賽文", "mde": "馬巴文", "mdf": "莫克沙文", "mdr": "曼達文", "men": "門德文", "mer": "梅魯文", "mfe": "克里奧文(模里西斯)", "mg": "馬拉加什文", "mga": "中古愛爾蘭文", "mgh": "馬夸文", "mgo": "美塔文", "mh": "馬紹爾文", "mi": "毛利文", "mic": "米克馬克文", "min": "米南卡堡文", "mk": "馬其頓文", "ml": "馬來亞拉姆文", "mn": "蒙古文", "mnc": "滿族文", "mni": "曼尼普裡文", "moh": "莫霍克文", "mos": "莫西文", "mr": "馬拉地文", "mrj": "西馬裏文", "ms": "馬來文", "mt": "馬爾他文", "mua": "蒙當文", "mus": "克里克文", "mwl": "米蘭德斯文", "mwr": "馬爾尼裡文", "mwv": "明打威文", "my": "緬甸文", "mye": "姆耶內文", "myv": "厄爾茲亞文", "mzn": "馬贊德蘭文", "na": "諾魯文", "nan": "閩南語", "nap": "拿波里文", "naq": "納馬文", "nb": "巴克摩挪威文", "nd": "北地畢列文", "nds": "低地德文", "nds-NL": "低地薩克遜文", "ne": "尼泊爾文", "new": "尼瓦爾文", "ng": "恩東加文", "nia": "尼亞斯文", "niu": "紐埃文", "njo": "阿沃那加文", "nl": "荷蘭文", "nl-BE": "佛蘭芒文", "nmg": "夸西奧文", "nn": "耐諾斯克挪威文", "nnh": "恩甘澎文", "no": "挪威文", "nog": "諾蓋文", "non": "古諾爾斯文", "nov": "諾維亞文", "nqo": "曼德文字 (N’Ko)", "nr": "南地畢列文", "nso": "北索托文", "nus": "努埃爾文", "nv": "納瓦霍文", "nwc": "古尼瓦爾文", "ny": "尼揚賈文", "nym": "尼揚韋齊文", "nyn": "尼揚科萊文", "nyo": "尼奧囉文", "nzi": "尼茲馬文", "oc": "奧克西坦文", "oj": "奧杰布瓦文", "om": "奧羅莫文", "or": "歐利亞文", "os": "奧塞提文", "osa": "歐塞奇文", "ota": "鄂圖曼土耳其文", "pa": "旁遮普文", "pag": "潘加辛文", "pal": "巴列維文", "pam": "潘帕嘉文", "pap": "帕皮阿門托文", "pau": "帛琉文", "pcd": "庇卡底文", "pcm": "尼日利亞皮欽語", "pdc": "賓夕法尼亞德文", "pdt": "門諾低地德文", "peo": "古波斯文", "pfl": "普法爾茨德文", "phn": "腓尼基文", "pi": "巴利文", "pl": "波蘭文", "pms": "皮埃蒙特文", "pnt": "旁狄希臘文", "pon": "波那貝文", "prg": "普魯士文", "pro": "古普羅旺斯文", "ps": "普什圖文", "pt": "葡萄牙文", "pt-BR": "葡萄牙文 (巴西)", "pt-PT": "葡萄牙文 (葡萄牙)", "qu": "蓋楚瓦文", "quc": "基切文", "qug": "欽博拉索海蘭蓋丘亞文", "raj": "拉賈斯坦諸文", "rap": "復活島文", "rar": "拉羅通加文", "rgn": "羅馬格諾里文", "rif": "里菲亞諾文", "rm": "羅曼斯文", "rn": "隆迪文", "ro": "羅馬尼亞文", "ro-MD": "摩爾多瓦文", "rof": "蘭博文", "rom": "吉普賽文", "root": "根語言", "rtm": "羅圖馬島文", "ru": "俄文", "rue": "盧森尼亞文", "rug": "羅維阿納文", "rup": "羅馬尼亞語系", "rw": "盧安達文", "rwk": "羅瓦文", "sa": "梵文", "sad": "桑達韋文", "sah": "雅庫特文", "sam": "薩瑪利亞阿拉姆文", "saq": "薩布魯文", "sas": "撒撒克文", "sat": "散塔利文", "saz": "索拉什特拉文", "sba": "甘拜文", "sbp": "桑古文", "sc": "撒丁文", "scn": "西西里文", "sco": "蘇格蘭文", "sd": "信德文", "sdc": "薩丁尼亞-薩薩里文", "sdh": "南庫爾德文", "se": "北方薩米文", "see": "塞訥卡文", "seh": "賽納文", "sei": "瑟里文", "sel": "瑟爾卡普文", "ses": "東桑海文", "sg": "桑戈文", "sga": "古愛爾蘭文", "sgs": "薩莫吉希亞文", "sh": "塞爾維亞克羅埃西亞文", "shi": "希爾哈文", "shn": "撣文", "shu": "阿拉伯文(查德)", "si": "僧伽羅文", "sid": "希達摩文", "sk": "斯洛伐克文", "sl": "斯洛維尼亞文", "sli": "下西利西亞文", "sly": "塞拉亞文", "sm": "薩摩亞文", "sma": "南薩米文", "smj": "魯勒薩米文", "smn": "伊納裡薩米文", "sms": "斯科特薩米文", "sn": "塞內加爾文", "snk": "索尼基文", "so": "索馬利文", "sog": "索格底亞納文", "sq": "阿爾巴尼亞文", "sr": "塞爾維亞文", "srn": "蘇拉南東墎文", "srr": "塞雷爾文", "ss": "斯瓦特文", "ssy": "薩霍文", "st": "塞索托文", "stq": "沙特菲士蘭文", "su": "巽他文", "suk": "蘇庫馬文", "sus": "蘇蘇文", "sux": "蘇美文", "sv": "瑞典文", "sw": "史瓦希里文", "sw-CD": "史瓦希里文(剛果)", "swb": "葛摩文", "syc": "古敘利亞文", "syr": "敘利亞文", "szl": "西利西亞文", "ta": "坦米爾文", "tcy": "圖盧文", "te": "泰盧固文", "tem": "提姆文", "teo": "特索文", "ter": "泰雷諾文", "tet": "泰頓文", "tg": "塔吉克文", "th": "泰文", "ti": "提格利尼亞文", "tig": "蒂格雷文", "tiv": "提夫文", "tk": "土庫曼文", "tkl": "托克勞文", "tkr": "查庫爾文", "tl": "塔加路族文", "tlh": "克林貢文", "tli": "特林基特文", "tly": "塔里什文", "tmh": "塔馬奇克文", "tn": "突尼西亞文", "to": "東加文", "tog": "東加文(尼亞薩)", "tpi": "托比辛文", "tr": "土耳其文", "tru": "圖羅尤文", "trv": "太魯閣文", "ts": "特松加文", "tsd": "特薩克尼恩文", "tsi": "欽西安文", "tt": "韃靼文", "ttt": "穆斯林塔特文", "tum": "圖姆布卡文", "tvl": "吐瓦魯文", "tw": "特威文", "twq": "北桑海文", "ty": "大溪地文", "tyv": "土凡文", "tzm": "塔馬齊格特文", "udm": "沃蒂艾克文", "ug": "維吾爾文", "uga": "烏加列文", "uk": "烏克蘭文", "umb": "姆本杜文", "ur": "烏都文", "uz": "烏茲別克文", "vai": "瓦伊文", "ve": "溫達文", "vec": "威尼斯文", "vep": "維普森文", "vi": "越南文", "vls": "西佛蘭德文", "vmf": "美茵-法蘭克尼亞文", "vo": "沃拉普克文", "vot": "沃提克文", "vro": "佛羅文", "vun": "溫舊文", "wa": "瓦隆文", "wae": "瓦瑟文", "wal": "瓦拉莫文", "war": "瓦瑞文", "was": "瓦紹文", "wbp": "沃皮瑞文", "wo": "沃洛夫文", "wuu": "吳語", "xal": "卡爾梅克文", "xh": "科薩文", "xmf": "明格列爾文", "xog": "索加文", "yao": "瑤文", "yap": "雅浦文", "yav": "洋卞文", "ybb": "耶姆巴文", "yi": "意第緒文", "yo": "約魯巴文", "yrl": "奈恩加圖文", "yue": "粵語", "za": "壯文", "zap": "薩波特克文", "zbl": "布列斯符號", "zea": "西蘭文", "zen": "澤納加文", "zgh": "標準摩洛哥塔馬塞特文", "zh": "中文", "zh-Hans": "簡體中文", "zh-Hant": "繁體中文", "zu": "祖魯文", "zun": "祖尼文", "zza": "扎扎文"}, "scriptNames": {"Cyrl": "斯拉夫文", "Latn": "拉丁文", "Arab": "阿拉伯文", "Guru": "古魯穆奇文", "Tfng": "提非納文", "Vaii": "瓦依文", "Hans": "簡體", "Hant": "繁體"}}, + "zh": {"rtl": false, "languageNames": {"aa": "阿法尔语", "ab": "阿布哈西亚语", "ace": "亚齐语", "ach": "阿乔利语", "ada": "阿当梅语", "ady": "阿迪格语", "ae": "阿维斯塔语", "af": "南非荷兰语", "afh": "阿弗里希利语", "agq": "亚罕语", "ain": "阿伊努语", "ak": "阿肯语", "akk": "阿卡德语", "ale": "阿留申语", "alt": "南阿尔泰语", "am": "阿姆哈拉语", "an": "阿拉贡语", "ang": "古英语", "anp": "昂加语", "ar": "阿拉伯语", "ar-001": "现代标准阿拉伯语", "arc": "阿拉米语", "arn": "马普切语", "arp": "阿拉帕霍语", "ars": "纳吉迪阿拉伯语", "arw": "阿拉瓦克语", "as": "阿萨姆语", "asa": "帕雷语", "ast": "阿斯图里亚斯语", "av": "阿瓦尔语", "awa": "阿瓦德语", "ay": "艾马拉语", "az": "阿塞拜疆语", "az-Arab": "南阿塞拜疆语", "ba": "巴什基尔语", "bal": "俾路支语", "ban": "巴厘语", "bas": "巴萨语", "bax": "巴姆穆语", "bbj": "戈马拉语", "be": "白俄罗斯语", "bej": "贝沙语", "bem": "本巴语", "bez": "贝纳语", "bfd": "巴非特语", "bg": "保加利亚语", "bgn": "西俾路支语", "bho": "博杰普尔语", "bi": "比斯拉马语", "bik": "比科尔语", "bin": "比尼语", "bkm": "科姆语", "bla": "西克西卡语", "bm": "班巴拉语", "bn": "孟加拉语", "bo": "藏语", "br": "布列塔尼语", "bra": "布拉杰语", "brx": "博多语", "bs": "波斯尼亚语", "bss": "阿库色语", "bua": "布里亚特语", "bug": "布吉语", "bum": "布鲁语", "byn": "比林语", "byv": "梅敦巴语", "ca": "加泰罗尼亚语", "cad": "卡多语", "car": "加勒比语", "cay": "卡尤加语", "cch": "阿灿语", "ccp": "查克玛语", "ce": "车臣语", "ceb": "宿务语", "cgg": "奇加语", "ch": "查莫罗语", "chb": "奇布查语", "chg": "察合台语", "chk": "楚克语", "chm": "马里语", "chn": "奇努克混合语", "cho": "乔克托语", "chp": "奇佩维安语", "chr": "切罗基语", "chy": "夏延语", "ckb": "中库尔德语", "co": "科西嘉语", "cop": "科普特语", "cr": "克里族语", "crh": "克里米亚土耳其语", "crs": "塞舌尔克里奥尔语", "cs": "捷克语", "csb": "卡舒比语", "cu": "教会斯拉夫语", "cv": "楚瓦什语", "cy": "威尔士语", "da": "丹麦语", "dak": "达科他语", "dar": "达尔格瓦语", "dav": "台塔语", "de": "德语", "de-AT": "奥地利德语", "de-CH": "瑞士高地德语", "del": "特拉华语", "den": "史拉维语", "dgr": "多格里布语", "din": "丁卡语", "dje": "哲尔马语", "doi": "多格拉语", "dsb": "下索布语", "dua": "都阿拉语", "dum": "中古荷兰语", "dv": "迪维希语", "dyo": "朱拉语", "dyu": "迪尤拉语", "dz": "宗卡语", "dzg": "达扎葛语", "ebu": "恩布语", "ee": "埃维语", "efi": "埃菲克语", "egy": "古埃及语", "eka": "艾卡朱克语", "el": "希腊语", "elx": "埃兰语", "en": "英语", "en-AU": "澳大利亚英语", "en-CA": "加拿大英语", "en-GB": "英国英语", "en-US": "美国英语", "enm": "中古英语", "eo": "世界语", "es": "西班牙语", "es-419": "拉丁美洲西班牙语", "es-ES": "欧洲西班牙语", "es-MX": "墨西哥西班牙语", "et": "爱沙尼亚语", "eu": "巴斯克语", "ewo": "旺杜语", "fa": "波斯语", "fan": "芳格语", "fat": "芳蒂语", "ff": "富拉语", "fi": "芬兰语", "fil": "菲律宾语", "fj": "斐济语", "fo": "法罗语", "fon": "丰语", "fr": "法语", "fr-CA": "加拿大法语", "fr-CH": "瑞士法语", "frc": "卡真法语", "frm": "中古法语", "fro": "古法语", "frr": "北弗里西亚语", "frs": "东弗里西亚语", "fur": "弗留利语", "fy": "西弗里西亚语", "ga": "爱尔兰语", "gaa": "加族语", "gag": "加告兹语", "gan": "赣语", "gay": "迦约语", "gba": "格巴亚语", "gd": "苏格兰盖尔语", "gez": "吉兹语", "gil": "吉尔伯特语", "gl": "加利西亚语", "gmh": "中古高地德语", "gn": "瓜拉尼语", "goh": "古高地德语", "gon": "冈德语", "gor": "哥伦打洛语", "got": "哥特语", "grb": "格列博语", "grc": "古希腊语", "gsw": "瑞士德语", "gu": "古吉拉特语", "guz": "古西语", "gv": "马恩语", "gwi": "哥威迅语", "ha": "豪萨语", "hai": "海达语", "hak": "客家语", "haw": "夏威夷语", "he": "希伯来语", "hi": "印地语", "hil": "希利盖农语", "hit": "赫梯语", "hmn": "苗语", "ho": "希里莫图语", "hr": "克罗地亚语", "hsb": "上索布语", "hsn": "湘语", "ht": "海地克里奥尔语", "hu": "匈牙利语", "hup": "胡帕语", "hy": "亚美尼亚语", "hz": "赫雷罗语", "ia": "国际语", "iba": "伊班语", "ibb": "伊比比奥语", "id": "印度尼西亚语", "ie": "国际文字(E)", "ig": "伊博语", "ii": "四川彝语", "ik": "伊努皮克语", "ilo": "伊洛卡诺语", "inh": "印古什语", "io": "伊多语", "is": "冰岛语", "it": "意大利语", "iu": "因纽特语", "ja": "日语", "jbo": "逻辑语", "jgo": "恩艮巴语", "jmc": "马切姆语", "jpr": "犹太波斯语", "jrb": "犹太阿拉伯语", "jv": "爪哇语", "ka": "格鲁吉亚语", "kaa": "卡拉卡尔帕克语", "kab": "卡拜尔语", "kac": "克钦语", "kaj": "卡捷语", "kam": "卡姆巴语", "kaw": "卡威语", "kbd": "卡巴尔德语", "kbl": "加涅姆布语", "kcg": "卡塔布语", "kde": "马孔德语", "kea": "卡布佛得鲁语", "kfo": "克罗语", "kg": "刚果语", "kha": "卡西语", "kho": "和田语", "khq": "西桑海语", "ki": "吉库尤语", "kj": "宽亚玛语", "kk": "哈萨克语", "kkj": "卡库语", "kl": "格陵兰语", "kln": "卡伦金语", "km": "高棉语", "kmb": "金邦杜语", "kn": "卡纳达语", "ko": "韩语", "koi": "科米-彼尔米亚克语", "kok": "孔卡尼语", "kos": "科斯拉伊语", "kpe": "克佩列语", "kr": "卡努里语", "krc": "卡拉恰伊巴尔卡尔语", "krl": "卡累利阿语", "kru": "库鲁克语", "ks": "克什米尔语", "ksb": "香巴拉语", "ksf": "巴菲亚语", "ksh": "科隆语", "ku": "库尔德语", "kum": "库梅克语", "kut": "库特奈语", "kv": "科米语", "kw": "康沃尔语", "ky": "柯尔克孜语", "la": "拉丁语", "lad": "拉迪诺语", "lag": "朗吉语", "lah": "印度-雅利安语", "lam": "兰巴语", "lb": "卢森堡语", "lez": "列兹金语", "lg": "卢干达语", "li": "林堡语", "lkt": "拉科塔语", "ln": "林加拉语", "lo": "老挝语", "lol": "蒙戈语", "lou": "路易斯安那克里奥尔语", "loz": "洛齐语", "lrc": "北卢尔语", "lt": "立陶宛语", "lu": "鲁巴加丹加语", "lua": "卢巴-卢拉语", "lui": "卢伊塞诺语", "lun": "隆达语", "luo": "卢奥语", "lus": "米佐语", "luy": "卢雅语", "lv": "拉脱维亚语", "mad": "马都拉语", "maf": "马法语", "mag": "摩揭陀语", "mai": "迈蒂利语", "mak": "望加锡语", "man": "曼丁哥语", "mas": "马赛语", "mde": "马坝语", "mdf": "莫克沙语", "mdr": "曼达尔语", "men": "门德语", "mer": "梅鲁语", "mfe": "毛里求斯克里奥尔语", "mg": "马拉加斯语", "mga": "中古爱尔兰语", "mgh": "马库阿语", "mgo": "梅塔语", "mh": "马绍尔语", "mi": "毛利语", "mic": "密克马克语", "min": "米南佳保语", "mk": "马其顿语", "ml": "马拉雅拉姆语", "mn": "蒙古语", "mnc": "满语", "mni": "曼尼普尔语", "moh": "摩霍克语", "mos": "莫西语", "mr": "马拉地语", "ms": "马来语", "mt": "马耳他语", "mua": "蒙当语", "mus": "克里克语", "mwl": "米兰德斯语", "mwr": "马尔瓦里语", "my": "缅甸语", "mye": "姆耶内语", "myv": "厄尔兹亚语", "mzn": "马赞德兰语", "na": "瑙鲁语", "nan": "闽南语", "nap": "那不勒斯语", "naq": "纳马语", "nb": "书面挪威语", "nd": "北恩德贝勒语", "nds": "低地德语", "nds-NL": "低萨克森语", "ne": "尼泊尔语", "new": "尼瓦尔语", "ng": "恩东加语", "nia": "尼亚斯语", "niu": "纽埃语", "nl": "荷兰语", "nl-BE": "弗拉芒语", "nmg": "夸西奥语", "nn": "挪威尼诺斯克语", "nnh": "恩甘澎语", "no": "挪威语", "nog": "诺盖语", "non": "古诺尔斯语", "nqo": "西非书面文字", "nr": "南恩德贝勒语", "nso": "北索托语", "nus": "努埃尔语", "nv": "纳瓦霍语", "nwc": "古典尼瓦尔语", "ny": "齐切瓦语", "nym": "尼扬韦齐语", "nyn": "尼昂科勒语", "nyo": "尼奥罗语", "nzi": "恩济马语", "oc": "奥克语", "oj": "奥吉布瓦语", "om": "奥罗莫语", "or": "奥里亚语", "os": "奥塞梯语", "osa": "奥塞治语", "ota": "奥斯曼土耳其语", "pa": "旁遮普语", "pag": "邦阿西南语", "pal": "巴拉维语", "pam": "邦板牙语", "pap": "帕皮阿门托语", "pau": "帕劳语", "pcm": "尼日利亚皮钦语", "peo": "古波斯语", "phn": "腓尼基语", "pi": "巴利语", "pl": "波兰语", "pon": "波纳佩语", "prg": "普鲁士语", "pro": "古普罗文斯语", "ps": "普什图语", "pt": "葡萄牙语", "pt-BR": "巴西葡萄牙语", "pt-PT": "欧洲葡萄牙语", "qu": "克丘亚语", "quc": "基切语", "raj": "拉贾斯坦语", "rap": "拉帕努伊语", "rar": "拉罗汤加语", "rm": "罗曼什语", "rn": "隆迪语", "ro": "罗马尼亚语", "ro-MD": "摩尔多瓦语", "rof": "兰博语", "rom": "吉普赛语", "root": "根语言", "ru": "俄语", "rup": "阿罗马尼亚语", "rw": "卢旺达语", "rwk": "罗瓦语", "sa": "梵语", "sad": "桑达韦语", "sah": "萨哈语", "sam": "萨马利亚阿拉姆语", "saq": "桑布鲁语", "sas": "萨萨克文", "sat": "桑塔利语", "sba": "甘拜语", "sbp": "桑古语", "sc": "萨丁语", "scn": "西西里语", "sco": "苏格兰语", "sd": "信德语", "sdh": "南库尔德语", "se": "北方萨米语", "see": "塞内卡语", "seh": "塞纳语", "sel": "塞尔库普语", "ses": "东桑海语", "sg": "桑戈语", "sga": "古爱尔兰语", "sh": "塞尔维亚-克罗地亚语", "shi": "希尔哈语", "shn": "掸语", "shu": "乍得阿拉伯语", "si": "僧伽罗语", "sid": "悉达摩语", "sk": "斯洛伐克语", "sl": "斯洛文尼亚语", "sm": "萨摩亚语", "sma": "南萨米语", "smj": "吕勒萨米语", "smn": "伊纳里萨米语", "sms": "斯科特萨米语", "sn": "绍纳语", "snk": "索宁克语", "so": "索马里语", "sog": "粟特语", "sq": "阿尔巴尼亚语", "sr": "塞尔维亚语", "srn": "苏里南汤加语", "srr": "塞雷尔语", "ss": "斯瓦蒂语", "ssy": "萨霍语", "st": "南索托语", "su": "巽他语", "suk": "苏库马语", "sus": "苏苏语", "sux": "苏美尔语", "sv": "瑞典语", "sw": "斯瓦希里语", "sw-CD": "刚果斯瓦希里语", "swb": "科摩罗语", "syc": "古典叙利亚语", "syr": "叙利亚语", "ta": "泰米尔语", "te": "泰卢固语", "tem": "泰姆奈语", "teo": "特索语", "ter": "特伦诺语", "tet": "德顿语", "tg": "塔吉克语", "th": "泰语", "ti": "提格利尼亚语", "tig": "提格雷语", "tiv": "蒂夫语", "tk": "土库曼语", "tkl": "托克劳语", "tl": "他加禄语", "tlh": "克林贡语", "tli": "特林吉特语", "tmh": "塔马奇克语", "tn": "茨瓦纳语", "to": "汤加语", "tog": "尼亚萨汤加语", "tpi": "托克皮辛语", "tr": "土耳其语", "trv": "赛德克语", "ts": "聪加语", "tsi": "钦西安语", "tt": "鞑靼语", "tum": "通布卡语", "tvl": "图瓦卢语", "tw": "契维语", "twq": "北桑海语", "ty": "塔希提语", "tyv": "图瓦语", "tzm": "塔马齐格特语", "udm": "乌德穆尔特语", "ug": "维吾尔语", "uga": "乌加里特语", "uk": "乌克兰语", "umb": "翁本杜语", "ur": "乌尔都语", "uz": "乌兹别克语", "vai": "瓦伊语", "ve": "文达语", "vep": "维普森语", "vi": "越南语", "vo": "沃拉普克语", "vot": "沃提克语", "vun": "温旧语", "wa": "瓦隆语", "wae": "瓦尔瑟语", "wal": "瓦拉莫语", "war": "瓦瑞语", "was": "瓦绍语", "wbp": "瓦尔皮瑞语", "wo": "沃洛夫语", "wuu": "吴语", "xal": "卡尔梅克语", "xh": "科萨语", "xog": "索加语", "yao": "瑶族语", "yap": "雅浦语", "yav": "洋卞语", "ybb": "耶姆巴语", "yi": "意第绪语", "yo": "约鲁巴语", "yue": "粤语", "za": "壮语", "zap": "萨波蒂克语", "zbl": "布里斯符号", "zen": "泽纳加语", "zgh": "标准摩洛哥塔马塞特语", "zh": "中文", "zh-Hans": "简体中文", "zh-Hant": "繁体中文", "zu": "祖鲁语", "zun": "祖尼语", "zza": "扎扎语"}, "scriptNames": {"Cyrl": "西里尔文", "Latn": "拉丁文", "Arab": "阿拉伯文", "Guru": "果鲁穆奇文", "Tfng": "提非纳文", "Vaii": "瓦依文", "Hans": "简体", "Hant": "繁体"}}, + "zh-CN": {"rtl": false, "languageNames": {"aa": "阿法尔语", "ab": "阿布哈西亚语", "ace": "亚齐语", "ach": "阿乔利语", "ada": "阿当梅语", "ady": "阿迪格语", "ae": "阿维斯塔语", "af": "南非荷兰语", "afh": "阿弗里希利语", "agq": "亚罕语", "ain": "阿伊努语", "ak": "阿肯语", "akk": "阿卡德语", "ale": "阿留申语", "alt": "南阿尔泰语", "am": "阿姆哈拉语", "an": "阿拉贡语", "ang": "古英语", "anp": "昂加语", "ar": "阿拉伯语", "ar-001": "现代标准阿拉伯语", "arc": "阿拉米语", "arn": "马普切语", "arp": "阿拉帕霍语", "ars": "纳吉迪阿拉伯语", "arw": "阿拉瓦克语", "as": "阿萨姆语", "asa": "帕雷语", "ast": "阿斯图里亚斯语", "av": "阿瓦尔语", "awa": "阿瓦德语", "ay": "艾马拉语", "az": "阿塞拜疆语", "az-Arab": "南阿塞拜疆语", "ba": "巴什基尔语", "bal": "俾路支语", "ban": "巴厘语", "bas": "巴萨语", "bax": "巴姆穆语", "bbj": "戈马拉语", "be": "白俄罗斯语", "bej": "贝沙语", "bem": "本巴语", "bez": "贝纳语", "bfd": "巴非特语", "bg": "保加利亚语", "bgn": "西俾路支语", "bho": "博杰普尔语", "bi": "比斯拉马语", "bik": "比科尔语", "bin": "比尼语", "bkm": "科姆语", "bla": "西克西卡语", "bm": "班巴拉语", "bn": "孟加拉语", "bo": "藏语", "br": "布列塔尼语", "bra": "布拉杰语", "brx": "博多语", "bs": "波斯尼亚语", "bss": "阿库色语", "bua": "布里亚特语", "bug": "布吉语", "bum": "布鲁语", "byn": "比林语", "byv": "梅敦巴语", "ca": "加泰罗尼亚语", "cad": "卡多语", "car": "加勒比语", "cay": "卡尤加语", "cch": "阿灿语", "ccp": "查克玛语", "ce": "车臣语", "ceb": "宿务语", "cgg": "奇加语", "ch": "查莫罗语", "chb": "奇布查语", "chg": "察合台语", "chk": "楚克语", "chm": "马里语", "chn": "奇努克混合语", "cho": "乔克托语", "chp": "奇佩维安语", "chr": "切罗基语", "chy": "夏延语", "ckb": "中库尔德语", "co": "科西嘉语", "cop": "科普特语", "cr": "克里族语", "crh": "克里米亚土耳其语", "crs": "塞舌尔克里奥尔语", "cs": "捷克语", "csb": "卡舒比语", "cu": "教会斯拉夫语", "cv": "楚瓦什语", "cy": "威尔士语", "da": "丹麦语", "dak": "达科他语", "dar": "达尔格瓦语", "dav": "台塔语", "de": "德语", "de-AT": "奥地利德语", "de-CH": "瑞士高地德语", "del": "特拉华语", "den": "史拉维语", "dgr": "多格里布语", "din": "丁卡语", "dje": "哲尔马语", "doi": "多格拉语", "dsb": "下索布语", "dua": "都阿拉语", "dum": "中古荷兰语", "dv": "迪维希语", "dyo": "朱拉语", "dyu": "迪尤拉语", "dz": "宗卡语", "dzg": "达扎葛语", "ebu": "恩布语", "ee": "埃维语", "efi": "埃菲克语", "egy": "古埃及语", "eka": "艾卡朱克语", "el": "希腊语", "elx": "埃兰语", "en": "英语", "en-AU": "澳大利亚英语", "en-CA": "加拿大英语", "en-GB": "英国英语", "en-US": "美国英语", "enm": "中古英语", "eo": "世界语", "es": "西班牙语", "es-419": "拉丁美洲西班牙语", "es-ES": "欧洲西班牙语", "es-MX": "墨西哥西班牙语", "et": "爱沙尼亚语", "eu": "巴斯克语", "ewo": "旺杜语", "fa": "波斯语", "fan": "芳格语", "fat": "芳蒂语", "ff": "富拉语", "fi": "芬兰语", "fil": "菲律宾语", "fj": "斐济语", "fo": "法罗语", "fon": "丰语", "fr": "法语", "fr-CA": "加拿大法语", "fr-CH": "瑞士法语", "frc": "卡真法语", "frm": "中古法语", "fro": "古法语", "frr": "北弗里西亚语", "frs": "东弗里西亚语", "fur": "弗留利语", "fy": "西弗里西亚语", "ga": "爱尔兰语", "gaa": "加族语", "gag": "加告兹语", "gan": "赣语", "gay": "迦约语", "gba": "格巴亚语", "gd": "苏格兰盖尔语", "gez": "吉兹语", "gil": "吉尔伯特语", "gl": "加利西亚语", "gmh": "中古高地德语", "gn": "瓜拉尼语", "goh": "古高地德语", "gon": "冈德语", "gor": "哥伦打洛语", "got": "哥特语", "grb": "格列博语", "grc": "古希腊语", "gsw": "瑞士德语", "gu": "古吉拉特语", "guz": "古西语", "gv": "马恩语", "gwi": "哥威迅语", "ha": "豪萨语", "hai": "海达语", "hak": "客家语", "haw": "夏威夷语", "he": "希伯来语", "hi": "印地语", "hil": "希利盖农语", "hit": "赫梯语", "hmn": "苗语", "ho": "希里莫图语", "hr": "克罗地亚语", "hsb": "上索布语", "hsn": "湘语", "ht": "海地克里奥尔语", "hu": "匈牙利语", "hup": "胡帕语", "hy": "亚美尼亚语", "hz": "赫雷罗语", "ia": "国际语", "iba": "伊班语", "ibb": "伊比比奥语", "id": "印度尼西亚语", "ie": "国际文字(E)", "ig": "伊博语", "ii": "四川彝语", "ik": "伊努皮克语", "ilo": "伊洛卡诺语", "inh": "印古什语", "io": "伊多语", "is": "冰岛语", "it": "意大利语", "iu": "因纽特语", "ja": "日语", "jbo": "逻辑语", "jgo": "恩艮巴语", "jmc": "马切姆语", "jpr": "犹太波斯语", "jrb": "犹太阿拉伯语", "jv": "爪哇语", "ka": "格鲁吉亚语", "kaa": "卡拉卡尔帕克语", "kab": "卡拜尔语", "kac": "克钦语", "kaj": "卡捷语", "kam": "卡姆巴语", "kaw": "卡威语", "kbd": "卡巴尔德语", "kbl": "加涅姆布语", "kcg": "卡塔布语", "kde": "马孔德语", "kea": "卡布佛得鲁语", "kfo": "克罗语", "kg": "刚果语", "kha": "卡西语", "kho": "和田语", "khq": "西桑海语", "ki": "吉库尤语", "kj": "宽亚玛语", "kk": "哈萨克语", "kkj": "卡库语", "kl": "格陵兰语", "kln": "卡伦金语", "km": "高棉语", "kmb": "金邦杜语", "kn": "卡纳达语", "ko": "韩语", "koi": "科米-彼尔米亚克语", "kok": "孔卡尼语", "kos": "科斯拉伊语", "kpe": "克佩列语", "kr": "卡努里语", "krc": "卡拉恰伊巴尔卡尔语", "krl": "卡累利阿语", "kru": "库鲁克语", "ks": "克什米尔语", "ksb": "香巴拉语", "ksf": "巴菲亚语", "ksh": "科隆语", "ku": "库尔德语", "kum": "库梅克语", "kut": "库特奈语", "kv": "科米语", "kw": "康沃尔语", "ky": "柯尔克孜语", "la": "拉丁语", "lad": "拉迪诺语", "lag": "朗吉语", "lah": "印度-雅利安语", "lam": "兰巴语", "lb": "卢森堡语", "lez": "列兹金语", "lg": "卢干达语", "li": "林堡语", "lkt": "拉科塔语", "ln": "林加拉语", "lo": "老挝语", "lol": "蒙戈语", "lou": "路易斯安那克里奥尔语", "loz": "洛齐语", "lrc": "北卢尔语", "lt": "立陶宛语", "lu": "鲁巴加丹加语", "lua": "卢巴-卢拉语", "lui": "卢伊塞诺语", "lun": "隆达语", "luo": "卢奥语", "lus": "米佐语", "luy": "卢雅语", "lv": "拉脱维亚语", "mad": "马都拉语", "maf": "马法语", "mag": "摩揭陀语", "mai": "迈蒂利语", "mak": "望加锡语", "man": "曼丁哥语", "mas": "马赛语", "mde": "马坝语", "mdf": "莫克沙语", "mdr": "曼达尔语", "men": "门德语", "mer": "梅鲁语", "mfe": "毛里求斯克里奥尔语", "mg": "马拉加斯语", "mga": "中古爱尔兰语", "mgh": "马库阿语", "mgo": "梅塔语", "mh": "马绍尔语", "mi": "毛利语", "mic": "密克马克语", "min": "米南佳保语", "mk": "马其顿语", "ml": "马拉雅拉姆语", "mn": "蒙古语", "mnc": "满语", "mni": "曼尼普尔语", "moh": "摩霍克语", "mos": "莫西语", "mr": "马拉地语", "ms": "马来语", "mt": "马耳他语", "mua": "蒙当语", "mus": "克里克语", "mwl": "米兰德斯语", "mwr": "马尔瓦里语", "my": "缅甸语", "mye": "姆耶内语", "myv": "厄尔兹亚语", "mzn": "马赞德兰语", "na": "瑙鲁语", "nan": "闽南语", "nap": "那不勒斯语", "naq": "纳马语", "nb": "书面挪威语", "nd": "北恩德贝勒语", "nds": "低地德语", "nds-NL": "低萨克森语", "ne": "尼泊尔语", "new": "尼瓦尔语", "ng": "恩东加语", "nia": "尼亚斯语", "niu": "纽埃语", "nl": "荷兰语", "nl-BE": "弗拉芒语", "nmg": "夸西奥语", "nn": "挪威尼诺斯克语", "nnh": "恩甘澎语", "no": "挪威语", "nog": "诺盖语", "non": "古诺尔斯语", "nqo": "西非书面文字", "nr": "南恩德贝勒语", "nso": "北索托语", "nus": "努埃尔语", "nv": "纳瓦霍语", "nwc": "古典尼瓦尔语", "ny": "齐切瓦语", "nym": "尼扬韦齐语", "nyn": "尼昂科勒语", "nyo": "尼奥罗语", "nzi": "恩济马语", "oc": "奥克语", "oj": "奥吉布瓦语", "om": "奥罗莫语", "or": "奥里亚语", "os": "奥塞梯语", "osa": "奥塞治语", "ota": "奥斯曼土耳其语", "pa": "旁遮普语", "pag": "邦阿西南语", "pal": "巴拉维语", "pam": "邦板牙语", "pap": "帕皮阿门托语", "pau": "帕劳语", "pcm": "尼日利亚皮钦语", "peo": "古波斯语", "phn": "腓尼基语", "pi": "巴利语", "pl": "波兰语", "pon": "波纳佩语", "prg": "普鲁士语", "pro": "古普罗文斯语", "ps": "普什图语", "pt": "葡萄牙语", "pt-BR": "巴西葡萄牙语", "pt-PT": "欧洲葡萄牙语", "qu": "克丘亚语", "quc": "基切语", "raj": "拉贾斯坦语", "rap": "拉帕努伊语", "rar": "拉罗汤加语", "rm": "罗曼什语", "rn": "隆迪语", "ro": "罗马尼亚语", "ro-MD": "摩尔多瓦语", "rof": "兰博语", "rom": "吉普赛语", "root": "根语言", "ru": "俄语", "rup": "阿罗马尼亚语", "rw": "卢旺达语", "rwk": "罗瓦语", "sa": "梵语", "sad": "桑达韦语", "sah": "萨哈语", "sam": "萨马利亚阿拉姆语", "saq": "桑布鲁语", "sas": "萨萨克文", "sat": "桑塔利语", "sba": "甘拜语", "sbp": "桑古语", "sc": "萨丁语", "scn": "西西里语", "sco": "苏格兰语", "sd": "信德语", "sdh": "南库尔德语", "se": "北方萨米语", "see": "塞内卡语", "seh": "塞纳语", "sel": "塞尔库普语", "ses": "东桑海语", "sg": "桑戈语", "sga": "古爱尔兰语", "sh": "塞尔维亚-克罗地亚语", "shi": "希尔哈语", "shn": "掸语", "shu": "乍得阿拉伯语", "si": "僧伽罗语", "sid": "悉达摩语", "sk": "斯洛伐克语", "sl": "斯洛文尼亚语", "sm": "萨摩亚语", "sma": "南萨米语", "smj": "吕勒萨米语", "smn": "伊纳里萨米语", "sms": "斯科特萨米语", "sn": "绍纳语", "snk": "索宁克语", "so": "索马里语", "sog": "粟特语", "sq": "阿尔巴尼亚语", "sr": "塞尔维亚语", "srn": "苏里南汤加语", "srr": "塞雷尔语", "ss": "斯瓦蒂语", "ssy": "萨霍语", "st": "南索托语", "su": "巽他语", "suk": "苏库马语", "sus": "苏苏语", "sux": "苏美尔语", "sv": "瑞典语", "sw": "斯瓦希里语", "sw-CD": "刚果斯瓦希里语", "swb": "科摩罗语", "syc": "古典叙利亚语", "syr": "叙利亚语", "ta": "泰米尔语", "te": "泰卢固语", "tem": "泰姆奈语", "teo": "特索语", "ter": "特伦诺语", "tet": "德顿语", "tg": "塔吉克语", "th": "泰语", "ti": "提格利尼亚语", "tig": "提格雷语", "tiv": "蒂夫语", "tk": "土库曼语", "tkl": "托克劳语", "tl": "他加禄语", "tlh": "克林贡语", "tli": "特林吉特语", "tmh": "塔马奇克语", "tn": "茨瓦纳语", "to": "汤加语", "tog": "尼亚萨汤加语", "tpi": "托克皮辛语", "tr": "土耳其语", "trv": "赛德克语", "ts": "聪加语", "tsi": "钦西安语", "tt": "鞑靼语", "tum": "通布卡语", "tvl": "图瓦卢语", "tw": "契维语", "twq": "北桑海语", "ty": "塔希提语", "tyv": "图瓦语", "tzm": "塔马齐格特语", "udm": "乌德穆尔特语", "ug": "维吾尔语", "uga": "乌加里特语", "uk": "乌克兰语", "umb": "翁本杜语", "ur": "乌尔都语", "uz": "乌兹别克语", "vai": "瓦伊语", "ve": "文达语", "vep": "维普森语", "vi": "越南语", "vo": "沃拉普克语", "vot": "沃提克语", "vun": "温旧语", "wa": "瓦隆语", "wae": "瓦尔瑟语", "wal": "瓦拉莫语", "war": "瓦瑞语", "was": "瓦绍语", "wbp": "瓦尔皮瑞语", "wo": "沃洛夫语", "wuu": "吴语", "xal": "卡尔梅克语", "xh": "科萨语", "xog": "索加语", "yao": "瑶族语", "yap": "雅浦语", "yav": "洋卞语", "ybb": "耶姆巴语", "yi": "意第绪语", "yo": "约鲁巴语", "yue": "粤语", "za": "壮语", "zap": "萨波蒂克语", "zbl": "布里斯符号", "zen": "泽纳加语", "zgh": "标准摩洛哥塔马塞特语", "zh": "中文", "zh-Hans": "简体中文", "zh-Hant": "繁体中文", "zu": "祖鲁语", "zun": "祖尼语", "zza": "扎扎语"}, "scriptNames": {"Cyrl": "西里尔文", "Latn": "拉丁文", "Arab": "阿拉伯文", "Guru": "果鲁穆奇文", "Tfng": "提非纳文", "Vaii": "瓦依文", "Hans": "简体", "Hant": "繁体"}}, + "zh-HK": {"rtl": false, "languageNames": {"aa": "阿法爾文", "ab": "阿布哈茲文", "ace": "亞齊文", "ach": "阿僑利文", "ada": "阿當莫文", "ady": "阿迪各文", "ae": "阿維斯塔文", "aeb": "突尼斯阿拉伯文", "af": "南非荷蘭文", "afh": "阿弗里希利文", "agq": "亞罕文", "ain": "阿伊努文", "ak": "阿坎文", "akk": "阿卡德文", "akz": "阿拉巴馬文", "ale": "阿留申文", "aln": "蓋格阿爾巴尼亞文", "alt": "南阿爾泰文", "am": "阿姆哈拉文", "an": "阿拉貢文", "ang": "古英文", "anp": "昂加文", "ar": "阿拉伯文", "ar-001": "現代標準阿拉伯文", "arc": "阿拉米文", "arn": "馬普切文", "aro": "阿拉奧納文", "arp": "阿拉帕霍文", "arq": "阿爾及利亞阿拉伯文", "ars": "納吉迪阿拉伯文", "arw": "阿拉瓦克文", "ary": "摩洛哥阿拉伯文", "arz": "埃及阿拉伯文", "as": "阿薩姆文", "asa": "阿蘇文", "ase": "美國手語", "ast": "阿斯圖里亞文", "av": "阿瓦爾文", "avk": "科塔瓦文", "awa": "阿瓦文", "ay": "艾馬拉文", "az": "阿塞拜疆文", "az-Arab": "南阿塞拜疆文", "ba": "巴什基爾文", "bal": "俾路支文", "ban": "峇里文", "bar": "巴伐利亞文", "bas": "巴薩文", "bax": "巴姆穆文", "bbc": "巴塔克托巴文", "bbj": "戈馬拉文", "be": "白俄羅斯文", "bej": "貝扎文", "bem": "別姆巴文", "bew": "貝塔維文", "bez": "貝納文", "bfd": "富特文", "bfq": "巴達加文", "bg": "保加利亞文", "bgn": "西俾路支文", "bho": "博傑普爾文", "bi": "比斯拉馬文", "bik": "比科爾文", "bin": "比尼文", "bjn": "班亞爾文", "bkm": "康姆文", "bla": "錫克錫卡文", "bm": "班巴拉文", "bn": "孟加拉文", "bo": "藏文", "bpy": "比什奴普萊利亞文", "bqi": "巴赫蒂亞里文", "br": "布里多尼文", "bra": "布拉杰文", "brh": "布拉維文", "brx": "博多文", "bs": "波斯尼亞文", "bss": "阿庫色文", "bua": "布里阿特文", "bug": "布吉斯文", "bum": "布魯文", "byn": "比林文", "byv": "梅敦巴文", "ca": "加泰隆尼亞文", "cad": "卡多文", "car": "加勒比文", "cay": "卡尤加文", "cch": "阿燦文", "ccp": "查克馬文", "ce": "車臣文", "ceb": "宿霧文", "cgg": "奇加文", "ch": "查莫洛文", "chb": "奇布查文", "chg": "查加文", "chk": "處奇斯文", "chm": "馬里文", "chn": "契奴克文", "cho": "喬克托文", "chp": "奇佩瓦揚文", "chr": "柴羅基文", "chy": "沙伊安文", "ckb": "中庫德文", "co": "科西嘉文", "cop": "科普特文", "cps": "卡皮茲文", "cr": "克里文", "crh": "克里米亞韃靼文", "crs": "塞舌爾克里奧爾法文", "cs": "捷克文", "csb": "卡舒布文", "cu": "宗教斯拉夫文", "cv": "楚瓦什文", "cy": "威爾斯文", "da": "丹麥文", "dak": "達科他文", "dar": "達爾格瓦文", "dav": "台塔文", "de": "德文", "de-AT": "奧地利德文", "de-CH": "瑞士德語", "del": "德拉瓦文", "den": "斯拉夫文", "dgr": "多格里布文", "din": "丁卡文", "dje": "扎爾馬文", "doi": "多格來文", "dsb": "下索布文", "dtp": "中部杜順文", "dua": "杜亞拉文", "dum": "中古荷蘭文", "dv": "迪維西文", "dyo": "朱拉文", "dyu": "迪尤拉文", "dz": "宗卡文", "dzg": "達薩文", "ebu": "恩布文", "ee": "埃維文", "efi": "埃菲克文", "egl": "埃米利安文", "egy": "古埃及文", "eka": "艾卡朱克文", "el": "希臘文", "elx": "埃蘭文", "en": "英文", "en-AU": "澳洲英文", "en-CA": "加拿大英文", "en-GB": "英國英文", "en-US": "美國英文", "enm": "中古英文", "eo": "世界語", "es": "西班牙文", "es-419": "拉丁美洲西班牙文", "es-ES": "歐洲西班牙文", "es-MX": "墨西哥西班牙文", "esu": "中尤皮克文", "et": "愛沙尼亞文", "eu": "巴斯克文", "ewo": "依汪都文", "ext": "埃斯特雷馬杜拉文", "fa": "波斯文", "fan": "芳族文", "fat": "芳蒂文", "ff": "富拉文", "fi": "芬蘭文", "fil": "菲律賓文", "fit": "托爾訥芬蘭文", "fj": "斐濟文", "fo": "法羅文", "fon": "豐文", "fr": "法文", "fr-CA": "加拿大法文", "fr-CH": "瑞士法文", "frc": "卡真法文", "frm": "中古法文", "fro": "古法文", "frp": "法蘭克-普羅旺斯文", "frr": "北弗里西亞文", "frs": "東弗里西亞文", "fur": "弗留利文", "fy": "西弗里西亞文", "ga": "愛爾蘭文", "gaa": "加族文", "gag": "加告茲文", "gan": "贛語", "gay": "加約文", "gba": "葛巴亞文", "gbz": "索羅亞斯德教達里文", "gd": "蘇格蘭蓋爾文", "gez": "吉茲文", "gil": "吉爾伯特文", "gl": "加里西亞文", "glk": "吉拉基文", "gmh": "中古高地德文", "gn": "瓜拉尼文", "goh": "古高地德文", "gom": "孔卡尼文", "gon": "岡德文", "gor": "科隆達羅文", "got": "哥德文", "grb": "格列博文", "grc": "古希臘文", "gsw": "瑞士德文", "gu": "古吉拉特文", "guc": "瓦尤文", "gur": "弗拉弗拉文", "guz": "古西文", "gv": "曼島文", "gwi": "圭契文", "ha": "豪撒文", "hai": "海達文", "hak": "客家話", "haw": "夏威夷文", "he": "希伯來文", "hi": "印度文", "hif": "斐濟印地文", "hil": "希利蓋農文", "hit": "赫梯文", "hmn": "苗語", "ho": "西里莫圖土文", "hr": "克羅地亞文", "hsb": "上索布文", "hsn": "湘語", "ht": "海地文", "hu": "匈牙利文", "hup": "胡帕文", "hy": "亞美尼亞文", "hz": "赫雷羅文", "ia": "國際文", "iba": "伊班文", "ibb": "伊比比奧文", "id": "印尼文", "ie": "國際文(E)", "ig": "伊布文", "ii": "四川彝文", "ik": "依奴皮維克文", "ilo": "伊洛闊文", "inh": "印古什文", "io": "伊多文", "is": "冰島文", "it": "意大利文", "iu": "因紐特文", "izh": "英格里亞文", "ja": "日文", "jam": "牙買加克里奧爾英文", "jbo": "邏輯文", "jgo": "恩格姆巴文", "jmc": "馬恰美文", "jpr": "猶太波斯文", "jrb": "猶太阿拉伯文", "jut": "日德蘭文", "jv": "爪哇文", "ka": "格魯吉亞文", "kaa": "卡拉卡爾帕克文", "kab": "卡比爾文", "kac": "卡琴文", "kaj": "卡捷文", "kam": "卡姆巴文", "kaw": "卡威文", "kbd": "卡巴爾達文", "kbl": "卡念布文", "kcg": "卡塔布文", "kde": "馬孔德文", "kea": "卡布威爾第文", "ken": "肯揚文", "kfo": "科羅文", "kg": "剛果文", "kgp": "坎剛文", "kha": "卡西文", "kho": "和闐文", "khq": "西桑海文", "khw": "科瓦文", "ki": "吉庫尤文", "kiu": "扎扎其文", "kj": "廣亞馬文", "kk": "哈薩克文", "kkj": "卡庫文", "kl": "格陵蘭文", "kln": "卡倫金文", "km": "高棉文", "kmb": "金邦杜文", "kn": "坎納達文", "ko": "韓文", "koi": "科米-彼爾米亞克文", "kok": "貢根文", "kos": "科斯雷恩文", "kpe": "克佩列文", "kr": "卡努里文", "krc": "卡拉柴-包爾卡爾文", "kri": "克裡奧爾文", "krj": "基那來阿文", "krl": "卡累利阿文", "kru": "庫魯科文", "ks": "喀什米爾文", "ksb": "尚巴拉文", "ksf": "巴菲亞文", "ksh": "科隆文", "ku": "庫德文", "kum": "庫密克文", "kut": "庫特奈文", "kv": "科米文", "kw": "康瓦耳文", "ky": "吉爾吉斯文", "la": "拉丁文", "lad": "拉迪諾文", "lag": "朗吉文", "lah": "拉亨達文", "lam": "蘭巴文", "lb": "盧森堡文", "lez": "列茲干文", "lfn": "新共同語言", "lg": "干達文", "li": "林堡文", "lij": "利古里亞文", "liv": "利伏尼亞文", "lkt": "拉科塔文", "lmo": "倫巴底文", "ln": "林加拉文", "lo": "老撾文", "lol": "芒戈文", "lou": "路易斯安那克里奧爾文", "loz": "洛齊文", "lrc": "北盧爾文", "lt": "立陶宛文", "ltg": "拉特加萊文", "lu": "魯巴加丹加文", "lua": "魯巴魯魯亞文", "lui": "路易塞諾文", "lun": "盧恩達文", "luo": "盧歐文", "lus": "米佐文", "luy": "盧雅文", "lv": "拉脫維亞文", "lzh": "文言文", "lzz": "拉茲文", "mad": "馬都拉文", "maf": "馬法文", "mag": "馬加伊文", "mai": "邁蒂利文", "mak": "望加錫文", "man": "曼丁哥文", "mas": "馬賽文", "mde": "馬巴文", "mdf": "莫克沙文", "mdr": "曼達文", "men": "門德文", "mer": "梅魯文", "mfe": "毛里裘斯克里奧爾文", "mg": "馬拉加斯文", "mga": "中古愛爾蘭文", "mgh": "馬夸文", "mgo": "美塔文", "mh": "馬紹爾文", "mi": "毛利文", "mic": "米克馬克文", "min": "米南卡堡文", "mk": "馬其頓文", "ml": "馬拉雅拉姆文", "mn": "蒙古文", "mnc": "滿族文", "mni": "曼尼普爾文", "moh": "莫霍克文", "mos": "莫西文", "mr": "馬拉地文", "mrj": "西馬里文", "ms": "馬來文", "mt": "馬耳他文", "mua": "蒙當文", "mus": "克里克文", "mwl": "米蘭德斯文", "mwr": "馬瓦里文", "mwv": "明打威文", "my": "緬甸文", "mye": "姆耶內文", "myv": "厄爾茲亞文", "mzn": "馬贊德蘭文", "na": "諾魯文", "nan": "閩南語", "nap": "拿波里文", "naq": "納馬文", "nb": "巴克摩挪威文", "nd": "北地畢列文", "nds": "低地德文", "nds-NL": "低地薩克遜文", "ne": "尼泊爾文", "new": "尼瓦爾文", "ng": "恩東加文", "nia": "尼亞斯文", "niu": "紐埃文", "njo": "阿沃那加文", "nl": "荷蘭文", "nl-BE": "比利時荷蘭文", "nmg": "夸西奧文", "nn": "耐諾斯克挪威文", "nnh": "恩甘澎文", "no": "挪威文", "nog": "諾蓋文", "non": "古諾爾斯文", "nov": "諾維亞文", "nqo": "西非書面語言(N’ko)", "nr": "南地畢列文", "nso": "北索托文", "nus": "努埃爾文", "nv": "納瓦霍文", "nwc": "古尼瓦爾文", "ny": "尼揚賈文", "nym": "尼揚韋齊文", "nyn": "尼揚科萊文", "nyo": "尼奧囉文", "nzi": "尼茲馬文", "oc": "奧克西坦文", "oj": "奧杰布瓦文", "om": "奧羅莫文", "or": "奧里雅文", "os": "奧塞提文", "osa": "歐塞奇文", "ota": "鄂圖曼土耳其文", "pa": "旁遮普文", "pag": "潘加辛文", "pal": "巴列維文", "pam": "潘帕嘉文", "pap": "帕皮阿門托文", "pau": "帛琉文", "pcd": "庇卡底文", "pcm": "尼日利亞皮欽文", "pdc": "賓夕法尼亞德文", "pdt": "門諾低地德文", "peo": "古波斯文", "pfl": "普法爾茨德文", "phn": "腓尼基文", "pi": "巴利文", "pl": "波蘭文", "pms": "皮埃蒙特文", "pnt": "旁狄希臘文", "pon": "波那貝文", "prg": "普魯士文", "pro": "古普羅旺斯文", "ps": "普什圖文", "pt": "葡萄牙文", "pt-BR": "巴西葡萄牙文", "pt-PT": "歐洲葡萄牙文", "qu": "蓋楚瓦文", "quc": "基切文", "qug": "欽博拉索海蘭蓋丘亞文", "raj": "拉賈斯坦諸文", "rap": "復活島文", "rar": "拉羅通加文", "rgn": "羅馬格諾里文", "rif": "里菲亞諾文", "rm": "羅曼斯文", "rn": "隆迪文", "ro": "羅馬尼亞文", "ro-MD": "摩爾多瓦羅馬尼亞文", "rof": "蘭博文", "rom": "吉普賽文", "root": "根語言", "rtm": "羅圖馬島文", "ru": "俄文", "rue": "盧森尼亞文", "rug": "羅維阿納文", "rup": "阿羅馬尼亞語", "rw": "盧旺達文", "rwk": "羅瓦文", "sa": "梵文", "sad": "桑達韋文", "sah": "雅庫特文", "sam": "薩瑪利亞阿拉姆文", "saq": "薩布魯文", "sas": "撒撒克文", "sat": "桑塔利文", "saz": "索拉什特拉文", "sba": "甘拜文", "sbp": "桑古文", "sc": "撒丁文", "scn": "西西里文", "sco": "蘇格蘭文", "sd": "信德文", "sdc": "薩丁尼亞-薩薩里文", "sdh": "南庫德文", "se": "北薩米文", "see": "塞訥卡文", "seh": "賽納文", "sei": "瑟里文", "sel": "塞爾庫普文", "ses": "東桑海文", "sg": "桑戈文", "sga": "古愛爾蘭文", "sgs": "薩莫吉希亞文", "sh": "塞爾維亞克羅埃西亞文", "shi": "希爾哈文", "shn": "撣文", "shu": "阿拉伯文(查德)", "si": "僧伽羅文", "sid": "希達摩文", "sk": "斯洛伐克文", "sl": "斯洛文尼亞文", "sli": "下西利西亞文", "sly": "塞拉亞文", "sm": "薩摩亞文", "sma": "南薩米文", "smj": "魯勒薩米文", "smn": "伊納里薩米文", "sms": "斯科特薩米文", "sn": "修納文", "snk": "索尼基文", "so": "索馬里文", "sog": "索格底亞納文", "sq": "阿爾巴尼亞文", "sr": "塞爾維亞文", "srn": "蘇拉南東墎文", "srr": "塞雷爾文", "ss": "斯瓦特文", "ssy": "薩霍文", "st": "塞索托文", "stq": "沙特菲士蘭文", "su": "巽他文", "suk": "蘇庫馬文", "sus": "蘇蘇文", "sux": "蘇美文", "sv": "瑞典文", "sw": "史瓦希里文", "sw-CD": "剛果史瓦希里文", "swb": "葛摩文", "syc": "古敘利亞文", "syr": "敍利亞文", "szl": "西利西亞文", "ta": "泰米爾文", "tcy": "圖盧文", "te": "泰盧固文", "tem": "提姆文", "teo": "特索文", "ter": "泰雷諾文", "tet": "泰頓文", "tg": "塔吉克文", "th": "泰文", "ti": "提格利尼亞文", "tig": "蒂格雷文", "tiv": "提夫文", "tk": "土庫曼文", "tkl": "托克勞文", "tkr": "查庫爾文", "tl": "塔加路族文", "tlh": "克林貢文", "tli": "特林基特文", "tly": "塔里什文", "tmh": "塔馬奇克文", "tn": "突尼西亞文", "to": "湯加文", "tog": "東加文(尼亞薩)", "tpi": "托比辛文", "tr": "土耳其文", "tru": "圖羅尤文", "trv": "太魯閣文", "ts": "特松加文", "tsd": "特薩克尼恩文", "tsi": "欽西安文", "tt": "韃靼文", "ttt": "穆斯林塔特文", "tum": "圖姆布卡文", "tvl": "吐瓦魯文", "tw": "特威文", "twq": "北桑海文", "ty": "大溪地文", "tyv": "圖瓦文", "tzm": "中阿特拉斯塔馬塞特文", "udm": "烏德穆爾特文", "ug": "維吾爾文", "uga": "烏加列文", "uk": "烏克蘭文", "umb": "姆本杜文", "ur": "烏爾都文", "uz": "烏茲別克文", "vai": "瓦伊文", "ve": "溫達文", "vec": "威尼斯文", "vep": "維普森文", "vi": "越南文", "vls": "西佛蘭德文", "vmf": "美茵-法蘭克尼亞文", "vo": "沃拉普克文", "vot": "沃提克文", "vro": "佛羅文", "vun": "溫舊文", "wa": "瓦隆文", "wae": "瓦爾瑟文", "wal": "瓦拉莫文", "war": "瓦瑞文", "was": "瓦紹文", "wbp": "瓦爾皮里文", "wo": "沃洛夫文", "wuu": "吳語", "xal": "卡爾梅克文", "xh": "科薩文", "xmf": "明格列爾文", "xog": "索加文", "yao": "瑤文", "yap": "雅浦文", "yav": "洋卞文", "ybb": "耶姆巴文", "yi": "意第緒文", "yo": "約魯巴文", "yrl": "奈恩加圖文", "yue": "廣東話", "za": "壯文", "zap": "薩波特克文", "zbl": "布列斯符號", "zea": "西蘭文", "zen": "澤納加文", "zgh": "摩洛哥標準塔馬齊格特文", "zh": "中文", "zh-Hans": "簡體中文", "zh-Hant": "繁體中文", "zu": "祖魯文", "zun": "祖尼文", "zza": "扎扎文"}, "scriptNames": {"Cyrl": "西里爾文", "Latn": "拉丁字母", "Arab": "阿拉伯文", "Guru": "古木基文", "Tfng": "提非納文", "Vaii": "瓦依文", "Hans": "簡體字", "Hant": "繁體字"}}, + "zh-TW": {"rtl": false, "languageNames": {"aa": "阿法尔语", "ab": "阿布哈西亚语", "ace": "亚齐语", "ach": "阿乔利语", "ada": "阿当梅语", "ady": "阿迪格语", "ae": "阿维斯塔语", "af": "南非荷兰语", "afh": "阿弗里希利语", "agq": "亚罕语", "ain": "阿伊努语", "ak": "阿肯语", "akk": "阿卡德语", "ale": "阿留申语", "alt": "南阿尔泰语", "am": "阿姆哈拉语", "an": "阿拉贡语", "ang": "古英语", "anp": "昂加语", "ar": "阿拉伯语", "ar-001": "现代标准阿拉伯语", "arc": "阿拉米语", "arn": "马普切语", "arp": "阿拉帕霍语", "ars": "纳吉迪阿拉伯语", "arw": "阿拉瓦克语", "as": "阿萨姆语", "asa": "帕雷语", "ast": "阿斯图里亚斯语", "av": "阿瓦尔语", "awa": "阿瓦德语", "ay": "艾马拉语", "az": "阿塞拜疆语", "az-Arab": "南阿塞拜疆语", "ba": "巴什基尔语", "bal": "俾路支语", "ban": "巴厘语", "bas": "巴萨语", "bax": "巴姆穆语", "bbj": "戈马拉语", "be": "白俄罗斯语", "bej": "贝沙语", "bem": "本巴语", "bez": "贝纳语", "bfd": "巴非特语", "bg": "保加利亚语", "bgn": "西俾路支语", "bho": "博杰普尔语", "bi": "比斯拉马语", "bik": "比科尔语", "bin": "比尼语", "bkm": "科姆语", "bla": "西克西卡语", "bm": "班巴拉语", "bn": "孟加拉语", "bo": "藏语", "br": "布列塔尼语", "bra": "布拉杰语", "brx": "博多语", "bs": "波斯尼亚语", "bss": "阿库色语", "bua": "布里亚特语", "bug": "布吉语", "bum": "布鲁语", "byn": "比林语", "byv": "梅敦巴语", "ca": "加泰罗尼亚语", "cad": "卡多语", "car": "加勒比语", "cay": "卡尤加语", "cch": "阿灿语", "ccp": "查克玛语", "ce": "车臣语", "ceb": "宿务语", "cgg": "奇加语", "ch": "查莫罗语", "chb": "奇布查语", "chg": "察合台语", "chk": "楚克语", "chm": "马里语", "chn": "奇努克混合语", "cho": "乔克托语", "chp": "奇佩维安语", "chr": "切罗基语", "chy": "夏延语", "ckb": "中库尔德语", "co": "科西嘉语", "cop": "科普特语", "cr": "克里族语", "crh": "克里米亚土耳其语", "crs": "塞舌尔克里奥尔语", "cs": "捷克语", "csb": "卡舒比语", "cu": "教会斯拉夫语", "cv": "楚瓦什语", "cy": "威尔士语", "da": "丹麦语", "dak": "达科他语", "dar": "达尔格瓦语", "dav": "台塔语", "de": "德语", "de-AT": "奥地利德语", "de-CH": "瑞士高地德语", "del": "特拉华语", "den": "史拉维语", "dgr": "多格里布语", "din": "丁卡语", "dje": "哲尔马语", "doi": "多格拉语", "dsb": "下索布语", "dua": "都阿拉语", "dum": "中古荷兰语", "dv": "迪维希语", "dyo": "朱拉语", "dyu": "迪尤拉语", "dz": "宗卡语", "dzg": "达扎葛语", "ebu": "恩布语", "ee": "埃维语", "efi": "埃菲克语", "egy": "古埃及语", "eka": "艾卡朱克语", "el": "希腊语", "elx": "埃兰语", "en": "英语", "en-AU": "澳大利亚英语", "en-CA": "加拿大英语", "en-GB": "英国英语", "en-US": "美国英语", "enm": "中古英语", "eo": "世界语", "es": "西班牙语", "es-419": "拉丁美洲西班牙语", "es-ES": "欧洲西班牙语", "es-MX": "墨西哥西班牙语", "et": "爱沙尼亚语", "eu": "巴斯克语", "ewo": "旺杜语", "fa": "波斯语", "fan": "芳格语", "fat": "芳蒂语", "ff": "富拉语", "fi": "芬兰语", "fil": "菲律宾语", "fj": "斐济语", "fo": "法罗语", "fon": "丰语", "fr": "法语", "fr-CA": "加拿大法语", "fr-CH": "瑞士法语", "frc": "卡真法语", "frm": "中古法语", "fro": "古法语", "frr": "北弗里西亚语", "frs": "东弗里西亚语", "fur": "弗留利语", "fy": "西弗里西亚语", "ga": "爱尔兰语", "gaa": "加族语", "gag": "加告兹语", "gan": "赣语", "gay": "迦约语", "gba": "格巴亚语", "gd": "苏格兰盖尔语", "gez": "吉兹语", "gil": "吉尔伯特语", "gl": "加利西亚语", "gmh": "中古高地德语", "gn": "瓜拉尼语", "goh": "古高地德语", "gon": "冈德语", "gor": "哥伦打洛语", "got": "哥特语", "grb": "格列博语", "grc": "古希腊语", "gsw": "瑞士德语", "gu": "古吉拉特语", "guz": "古西语", "gv": "马恩语", "gwi": "哥威迅语", "ha": "豪萨语", "hai": "海达语", "hak": "客家语", "haw": "夏威夷语", "he": "希伯来语", "hi": "印地语", "hil": "希利盖农语", "hit": "赫梯语", "hmn": "苗语", "ho": "希里莫图语", "hr": "克罗地亚语", "hsb": "上索布语", "hsn": "湘语", "ht": "海地克里奥尔语", "hu": "匈牙利语", "hup": "胡帕语", "hy": "亚美尼亚语", "hz": "赫雷罗语", "ia": "国际语", "iba": "伊班语", "ibb": "伊比比奥语", "id": "印度尼西亚语", "ie": "国际文字(E)", "ig": "伊博语", "ii": "四川彝语", "ik": "伊努皮克语", "ilo": "伊洛卡诺语", "inh": "印古什语", "io": "伊多语", "is": "冰岛语", "it": "意大利语", "iu": "因纽特语", "ja": "日语", "jbo": "逻辑语", "jgo": "恩艮巴语", "jmc": "马切姆语", "jpr": "犹太波斯语", "jrb": "犹太阿拉伯语", "jv": "爪哇语", "ka": "格鲁吉亚语", "kaa": "卡拉卡尔帕克语", "kab": "卡拜尔语", "kac": "克钦语", "kaj": "卡捷语", "kam": "卡姆巴语", "kaw": "卡威语", "kbd": "卡巴尔德语", "kbl": "加涅姆布语", "kcg": "卡塔布语", "kde": "马孔德语", "kea": "卡布佛得鲁语", "kfo": "克罗语", "kg": "刚果语", "kha": "卡西语", "kho": "和田语", "khq": "西桑海语", "ki": "吉库尤语", "kj": "宽亚玛语", "kk": "哈萨克语", "kkj": "卡库语", "kl": "格陵兰语", "kln": "卡伦金语", "km": "高棉语", "kmb": "金邦杜语", "kn": "卡纳达语", "ko": "韩语", "koi": "科米-彼尔米亚克语", "kok": "孔卡尼语", "kos": "科斯拉伊语", "kpe": "克佩列语", "kr": "卡努里语", "krc": "卡拉恰伊巴尔卡尔语", "krl": "卡累利阿语", "kru": "库鲁克语", "ks": "克什米尔语", "ksb": "香巴拉语", "ksf": "巴菲亚语", "ksh": "科隆语", "ku": "库尔德语", "kum": "库梅克语", "kut": "库特奈语", "kv": "科米语", "kw": "康沃尔语", "ky": "柯尔克孜语", "la": "拉丁语", "lad": "拉迪诺语", "lag": "朗吉语", "lah": "印度-雅利安语", "lam": "兰巴语", "lb": "卢森堡语", "lez": "列兹金语", "lg": "卢干达语", "li": "林堡语", "lkt": "拉科塔语", "ln": "林加拉语", "lo": "老挝语", "lol": "蒙戈语", "lou": "路易斯安那克里奥尔语", "loz": "洛齐语", "lrc": "北卢尔语", "lt": "立陶宛语", "lu": "鲁巴加丹加语", "lua": "卢巴-卢拉语", "lui": "卢伊塞诺语", "lun": "隆达语", "luo": "卢奥语", "lus": "米佐语", "luy": "卢雅语", "lv": "拉脱维亚语", "mad": "马都拉语", "maf": "马法语", "mag": "摩揭陀语", "mai": "迈蒂利语", "mak": "望加锡语", "man": "曼丁哥语", "mas": "马赛语", "mde": "马坝语", "mdf": "莫克沙语", "mdr": "曼达尔语", "men": "门德语", "mer": "梅鲁语", "mfe": "毛里求斯克里奥尔语", "mg": "马拉加斯语", "mga": "中古爱尔兰语", "mgh": "马库阿语", "mgo": "梅塔语", "mh": "马绍尔语", "mi": "毛利语", "mic": "密克马克语", "min": "米南佳保语", "mk": "马其顿语", "ml": "马拉雅拉姆语", "mn": "蒙古语", "mnc": "满语", "mni": "曼尼普尔语", "moh": "摩霍克语", "mos": "莫西语", "mr": "马拉地语", "ms": "马来语", "mt": "马耳他语", "mua": "蒙当语", "mus": "克里克语", "mwl": "米兰德斯语", "mwr": "马尔瓦里语", "my": "缅甸语", "mye": "姆耶内语", "myv": "厄尔兹亚语", "mzn": "马赞德兰语", "na": "瑙鲁语", "nan": "闽南语", "nap": "那不勒斯语", "naq": "纳马语", "nb": "书面挪威语", "nd": "北恩德贝勒语", "nds": "低地德语", "nds-NL": "低萨克森语", "ne": "尼泊尔语", "new": "尼瓦尔语", "ng": "恩东加语", "nia": "尼亚斯语", "niu": "纽埃语", "nl": "荷兰语", "nl-BE": "弗拉芒语", "nmg": "夸西奥语", "nn": "挪威尼诺斯克语", "nnh": "恩甘澎语", "no": "挪威语", "nog": "诺盖语", "non": "古诺尔斯语", "nqo": "西非书面文字", "nr": "南恩德贝勒语", "nso": "北索托语", "nus": "努埃尔语", "nv": "纳瓦霍语", "nwc": "古典尼瓦尔语", "ny": "齐切瓦语", "nym": "尼扬韦齐语", "nyn": "尼昂科勒语", "nyo": "尼奥罗语", "nzi": "恩济马语", "oc": "奥克语", "oj": "奥吉布瓦语", "om": "奥罗莫语", "or": "奥里亚语", "os": "奥塞梯语", "osa": "奥塞治语", "ota": "奥斯曼土耳其语", "pa": "旁遮普语", "pag": "邦阿西南语", "pal": "巴拉维语", "pam": "邦板牙语", "pap": "帕皮阿门托语", "pau": "帕劳语", "pcm": "尼日利亚皮钦语", "peo": "古波斯语", "phn": "腓尼基语", "pi": "巴利语", "pl": "波兰语", "pon": "波纳佩语", "prg": "普鲁士语", "pro": "古普罗文斯语", "ps": "普什图语", "pt": "葡萄牙语", "pt-BR": "巴西葡萄牙语", "pt-PT": "欧洲葡萄牙语", "qu": "克丘亚语", "quc": "基切语", "raj": "拉贾斯坦语", "rap": "拉帕努伊语", "rar": "拉罗汤加语", "rm": "罗曼什语", "rn": "隆迪语", "ro": "罗马尼亚语", "ro-MD": "摩尔多瓦语", "rof": "兰博语", "rom": "吉普赛语", "root": "根语言", "ru": "俄语", "rup": "阿罗马尼亚语", "rw": "卢旺达语", "rwk": "罗瓦语", "sa": "梵语", "sad": "桑达韦语", "sah": "萨哈语", "sam": "萨马利亚阿拉姆语", "saq": "桑布鲁语", "sas": "萨萨克文", "sat": "桑塔利语", "sba": "甘拜语", "sbp": "桑古语", "sc": "萨丁语", "scn": "西西里语", "sco": "苏格兰语", "sd": "信德语", "sdh": "南库尔德语", "se": "北方萨米语", "see": "塞内卡语", "seh": "塞纳语", "sel": "塞尔库普语", "ses": "东桑海语", "sg": "桑戈语", "sga": "古爱尔兰语", "sh": "塞尔维亚-克罗地亚语", "shi": "希尔哈语", "shn": "掸语", "shu": "乍得阿拉伯语", "si": "僧伽罗语", "sid": "悉达摩语", "sk": "斯洛伐克语", "sl": "斯洛文尼亚语", "sm": "萨摩亚语", "sma": "南萨米语", "smj": "吕勒萨米语", "smn": "伊纳里萨米语", "sms": "斯科特萨米语", "sn": "绍纳语", "snk": "索宁克语", "so": "索马里语", "sog": "粟特语", "sq": "阿尔巴尼亚语", "sr": "塞尔维亚语", "srn": "苏里南汤加语", "srr": "塞雷尔语", "ss": "斯瓦蒂语", "ssy": "萨霍语", "st": "南索托语", "su": "巽他语", "suk": "苏库马语", "sus": "苏苏语", "sux": "苏美尔语", "sv": "瑞典语", "sw": "斯瓦希里语", "sw-CD": "刚果斯瓦希里语", "swb": "科摩罗语", "syc": "古典叙利亚语", "syr": "叙利亚语", "ta": "泰米尔语", "te": "泰卢固语", "tem": "泰姆奈语", "teo": "特索语", "ter": "特伦诺语", "tet": "德顿语", "tg": "塔吉克语", "th": "泰语", "ti": "提格利尼亚语", "tig": "提格雷语", "tiv": "蒂夫语", "tk": "土库曼语", "tkl": "托克劳语", "tl": "他加禄语", "tlh": "克林贡语", "tli": "特林吉特语", "tmh": "塔马奇克语", "tn": "茨瓦纳语", "to": "汤加语", "tog": "尼亚萨汤加语", "tpi": "托克皮辛语", "tr": "土耳其语", "trv": "赛德克语", "ts": "聪加语", "tsi": "钦西安语", "tt": "鞑靼语", "tum": "通布卡语", "tvl": "图瓦卢语", "tw": "契维语", "twq": "北桑海语", "ty": "塔希提语", "tyv": "图瓦语", "tzm": "塔马齐格特语", "udm": "乌德穆尔特语", "ug": "维吾尔语", "uga": "乌加里特语", "uk": "乌克兰语", "umb": "翁本杜语", "ur": "乌尔都语", "uz": "乌兹别克语", "vai": "瓦伊语", "ve": "文达语", "vep": "维普森语", "vi": "越南语", "vo": "沃拉普克语", "vot": "沃提克语", "vun": "温旧语", "wa": "瓦隆语", "wae": "瓦尔瑟语", "wal": "瓦拉莫语", "war": "瓦瑞语", "was": "瓦绍语", "wbp": "瓦尔皮瑞语", "wo": "沃洛夫语", "wuu": "吴语", "xal": "卡尔梅克语", "xh": "科萨语", "xog": "索加语", "yao": "瑶族语", "yap": "雅浦语", "yav": "洋卞语", "ybb": "耶姆巴语", "yi": "意第绪语", "yo": "约鲁巴语", "yue": "粤语", "za": "壮语", "zap": "萨波蒂克语", "zbl": "布里斯符号", "zen": "泽纳加语", "zgh": "标准摩洛哥塔马塞特语", "zh": "中文", "zh-Hans": "简体中文", "zh-Hant": "繁体中文", "zu": "祖鲁语", "zun": "祖尼语", "zza": "扎扎语"}, "scriptNames": {"Cyrl": "西里尔文", "Latn": "拉丁文", "Arab": "阿拉伯文", "Guru": "果鲁穆奇文", "Tfng": "提非纳文", "Vaii": "瓦依文", "Hans": "简体", "Hant": "繁体"}} } } \ No newline at end of file diff --git a/data/update_locales.js b/data/update_locales.js index e4bd725a42..7ec78a7a4c 100644 --- a/data/update_locales.js +++ b/data/update_locales.js @@ -29,6 +29,8 @@ const sourceCommunity = YAML.load(fs.readFileSync('./node_modules/osm-community- const cldrMainDir = './node_modules/cldr-localenames-full/main/'; +var referencedScripts = []; + const languageInfo = { dataLanguages: getLangNamesInNativeLang() }; @@ -50,7 +52,7 @@ asyncMap(resources, getResource, function(err, results) { // write files and fetch language info for each locale var dataLocales = { - en: { rtl: false, languageNames: foreignLanguageNamesInLanguageOf('en') } + en: { rtl: false, languageNames: languageNamesInLanguageOf('en'), scriptNames: scriptNamesInLanguageOf('en') } }; asyncMap(Object.keys(allStrings), function(code, done) { @@ -69,8 +71,11 @@ asyncMap(resources, getResource, function(err, results) { } else if (code === 'ku') { rtl = false; } - var langTranslations = foreignLanguageNamesInLanguageOf(code); - dataLocales[code] = { rtl: rtl, languageNames: langTranslations || {} }; + dataLocales[code] = { + rtl: rtl, + languageNames: languageNamesInLanguageOf(code) || {}, + scriptNames: scriptNamesInLanguageOf(code) || {} + }; done(); }); } @@ -230,6 +235,8 @@ function getLangNamesInNativeLang() { var script = identity.script; if (script) { + referencedScripts.push(script); + info.base = identity.language; info.script = script; } @@ -250,7 +257,7 @@ function getLangNamesInNativeLang() { var rematchCodes = { 'ar-AA': 'ar', 'zh-CN': 'zh', 'zh-HK': 'zh-Hant-HK', 'zh-TW': 'zh', 'pt-BR': 'pt', 'pt': 'pt-PT' }; -function foreignLanguageNamesInLanguageOf(code) { +function languageNamesInLanguageOf(code) { if (rematchCodes[code]) code = rematchCodes[code]; @@ -284,3 +291,22 @@ function foreignLanguageNamesInLanguageOf(code) { return translatedLangsByCode; } + +function scriptNamesInLanguageOf(code) { + if (rematchCodes[code]) code = rematchCodes[code]; + + var languageFilePath = cldrMainDir + code + '/scripts.json'; + if (!fs.existsSync(languageFilePath)) { + return null; + } + var allTranslatedScriptsByCode = JSON.parse(fs.readFileSync(languageFilePath, 'utf8')).main[code].localeDisplayNames.scripts; + + var translatedScripts = {}; + referencedScripts.forEach(function(script) { + if (!allTranslatedScriptsByCode[script] || script === allTranslatedScriptsByCode[script]) return; + + translatedScripts[script] = allTranslatedScriptsByCode[script]; + }); + + return translatedScripts; +} diff --git a/modules/util/detect.js b/modules/util/detect.js index a9f009cc1e..da90d607dc 100644 --- a/modules/util/detect.js +++ b/modules/util/detect.js @@ -1,4 +1,4 @@ -import { currentLocale, setTextDirection, setLanguageNames } from './locale'; +import { currentLocale, setTextDirection, setLanguageNames, setScriptNames } from './locale'; import { dataLocales } from '../../data/index'; import { utilStringQs } from './util'; @@ -105,6 +105,7 @@ export function utilDetect(force) { } setTextDirection(detected.textDirection); setLanguageNames((lang && lang.languageNames) || {}); + setScriptNames((lang && lang.scriptNames) || {}); // detect host var loc = window.top.location; diff --git a/modules/util/locale.js b/modules/util/locale.js index 30e31f325e..f764f0972e 100644 --- a/modules/util/locale.js +++ b/modules/util/locale.js @@ -5,6 +5,7 @@ var translations = Object.create(null); export var currentLocale = 'en'; export var textDirection = 'ltr'; export var languageNames = {}; +export var scriptNames = {}; export function setLocale(val) { if (translations[val] !== undefined) { @@ -81,21 +82,41 @@ export function setLanguageNames(obj) { languageNames = obj; } +export function setScriptNames(obj) { + scriptNames = obj; +} + export function languageName(code, options) { 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; - if (dataLanguages[code]) { // language info - if (dataLanguages[code].nativeName) { // name in native language - return t('translate.language_and_code', { language: dataLanguages[code].nativeName, code: code }); - } else if (dataLanguages[code].base && dataLanguages[code].script) { - var base = dataLanguages[code].base; - if (languageNames[base]) { // base name in locale langauge - return t('translate.language_and_code', { language: languageNames[base], code: code }); - } else if (dataLanguages[code] && dataLanguages[code].nativeName) { + 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) { + + // e.g. српски (sr-Cyrl) return t('translate.language_and_code', { language: dataLanguages[base].nativeName, code: code }); } } From 8e13f3faf6865e55dd2c3f3958b7d65b743748f4 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Fri, 2 Aug 2019 13:06:09 -0400 Subject: [PATCH 256/774] Add peer dependency of cldr-localenames-full --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index fc70f3db59..70e727b328 100644 --- a/package.json +++ b/package.json @@ -61,6 +61,7 @@ "@fortawesome/free-solid-svg-icons": "^5.9.0", "@mapbox/maki": "^6.0.0", "chai": "^4.1.0", + "cldr-core": "35.1.0", "cldr-localenames-full": "35.1.0", "colors": "^1.1.2", "concat-files": "^0.1.1", From a8dcaa28b845bf615689006d0ff99684605ac72b Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Fri, 2 Aug 2019 13:20:21 -0400 Subject: [PATCH 257/774] Improve mechanism for creating uiToolSimpleButton --- modules/ui/tools/center_zoom.js | 18 ++++++------ modules/ui/tools/simple_button.js | 12 ++------ modules/ui/top_toolbar.js | 46 ++++++++++++++++++++++--------- 3 files changed, 45 insertions(+), 31 deletions(-) diff --git a/modules/ui/tools/center_zoom.js b/modules/ui/tools/center_zoom.js index bc00bbf855..e0194bf1a2 100644 --- a/modules/ui/tools/center_zoom.js +++ b/modules/ui/tools/center_zoom.js @@ -4,12 +4,14 @@ import { t } from '../../util/locale'; export function uiToolCenterZoom(context) { - var tool = uiToolSimpleButton( - 'center_zoom', - t('toolbar.center_zoom.title'), - 'iD-icon-frame-pin', function() { + var tool = uiToolSimpleButton({ + id: 'center_zoom', + label: t('toolbar.center_zoom.title'), + iconName: 'iD-icon-frame-pin', + onClick: function() { context.mode().zoomToSelected(); - }, function() { + }, + tooltipText: function() { var mode = context.mode(); if (mode.id === 'select') { return t('inspector.zoom_to.tooltip_feature'); @@ -21,9 +23,9 @@ export function uiToolCenterZoom(context) { return t('inspector.zoom_to.tooltip_issue'); } }, - t('inspector.zoom_to.key'), - 'wide' - ); + tooltipKey: t('inspector.zoom_to.key'), + barButtonClass: 'wide' + }); return tool; } diff --git a/modules/ui/tools/simple_button.js b/modules/ui/tools/simple_button.js index 8cd88b36ba..41bfb41e78 100644 --- a/modules/ui/tools/simple_button.js +++ b/modules/ui/tools/simple_button.js @@ -3,17 +3,9 @@ import { uiTooltipHtml } from '../tooltipHtml'; import { tooltip } from '../../util/tooltip'; import { utilFunctor } from '../../util/util'; -export function uiToolSimpleButton(id, label, iconName, onClick, tooltipText, tooltipKey, barButtonClass) { +export function uiToolSimpleButton(protoTool) { - var tool = { - id: id, - label: label, - iconName: iconName, - onClick: onClick, - tooltipText: tooltipText, - tooltipKey: tooltipKey, - barButtonClass: barButtonClass - }; + var tool = protoTool || {}; tool.render = function(selection) { diff --git a/modules/ui/top_toolbar.js b/modules/ui/top_toolbar.js index 8945fd9853..1902ee1b09 100644 --- a/modules/ui/top_toolbar.js +++ b/modules/ui/top_toolbar.js @@ -24,20 +24,40 @@ export function uiTopToolbar(context) { structure = uiToolStructure(context), repeatAdd = uiToolRepeatAdd(context), centerZoom = uiToolCenterZoom(context), - deselect = uiToolSimpleButton('deselect', t('toolbar.deselect.title'), 'iD-icon-close', function() { - context.enter(modeBrowse(context)); - }, null, 'Esc'), - cancelDrawing = uiToolSimpleButton('cancel', t('confirm.cancel'), 'iD-icon-close', function() { - context.enter(modeBrowse(context)); - }, null, 'Esc', 'wide'), - finishDrawing = uiToolSimpleButton('finish', t('toolbar.finish'), 'iD-icon-apply', function() { - var mode = context.mode(); - if (mode.finish) { - mode.finish(); - } else { + deselect = uiToolSimpleButton({ + id: 'deselect', + label: t('toolbar.deselect.title'), + iconName: 'iD-icon-close', + onClick: function() { context.enter(modeBrowse(context)); - } - }, null, 'Esc', 'wide'); + }, + tooltipKey: 'Esc' + }), + cancelDrawing = uiToolSimpleButton({ + id: 'cancel', + label: t('confirm.cancel'), + iconName: 'iD-icon-close', + onClick: function() { + context.enter(modeBrowse(context)); + }, + tooltipKey: 'Esc', + barButtonClass: 'wide' + }), + finishDrawing = uiToolSimpleButton({ + id: 'finish', + label: t('toolbar.finish'), + iconName: 'iD-icon-apply', + onClick: function() { + var mode = context.mode(); + if (mode.finish) { + mode.finish(); + } else { + context.enter(modeBrowse(context)); + } + }, + tooltipKey: 'Esc', + barButtonClass: 'wide' + }); var supportedOperationIDs = ['circularize', 'continue', 'delete', 'disconnect', 'downgrade', 'extract', 'merge', 'orthogonalize', 'reverse', 'split', 'straighten']; From 6d0ccc31a46f037f78f1107ab92908c6ce6a191f Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 11 Jun 2019 13:40:54 -0400 Subject: [PATCH 258/774] Use lighter styling for sidewalks than generic footways (close #6522) --- css/30_highways.css | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/css/30_highways.css b/css/30_highways.css index b29485a92f..16022ccce9 100644 --- a/css/30_highways.css +++ b/css/30_highways.css @@ -489,6 +489,13 @@ path.line.stroke.tag-highway_bus_stop, .preset-icon-container path.casing.tag-highway-footway { stroke: #988; } +.preset-icon .icon.tag-highway-footway.tag-footway-sidewalk { + color: #d4b4b4; +} +path.stroke.tag-highway-footway.tag-footway-sidewalk, +.preset-icon-container path.casing.tag-highway-footway.tag-footway-sidewalk { + stroke: #d4b4b4; +} .preset-icon-container path.stroke.tag-highway-footway:not(.tag-crossing-marked):not(.tag-crossing-unmarked):not(.tag-man_made-pier):not(.tag-public_transport-platform) { stroke: #fff; } From 31bf5a063a8057c9615855f3922acd6874720fda Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Sat, 3 Aug 2019 11:39:09 -0400 Subject: [PATCH 259/774] Deprecate access=public -> access=yes (close #6716) --- data/deprecated.json | 4 ++++ data/taginfo.json | 1 + 2 files changed, 5 insertions(+) diff --git a/data/deprecated.json b/data/deprecated.json index bf75568d08..284ca8bb2c 100644 --- a/data/deprecated.json +++ b/data/deprecated.json @@ -8,6 +8,10 @@ "old": {"aeroway": "aerobridge"}, "replace": {"aeroway": "jet_bridge"} }, + { + "old": {"access": "public"}, + "replace": {"access": "yes"} + }, { "old": {"amenity": "advertising"}, "replace": {"advertising": "*"} diff --git a/data/taginfo.json b/data/taginfo.json index 6006a886d1..b5bb9153b8 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -1792,6 +1792,7 @@ {"key": "windings:configuration", "value": "leblanc", "description": "🄵 Windings Configuration"}, {"key": "aerialway", "value": "canopy", "description": "🄳 ➜ aerialway=zip_line"}, {"key": "aeroway", "value": "aerobridge", "description": "🄳 ➜ aeroway=jet_bridge"}, + {"key": "access", "value": "public", "description": "🄳 ➜ access=yes"}, {"key": "amenity", "value": "advertising", "description": "🄳 ➜ advertising=*"}, {"key": "amenity", "value": "artwork", "description": "🄳 ➜ tourism=artwork"}, {"key": "amenity", "value": "bail_bonds", "description": "🄳 ➜ office=bail_bond_agent"}, From d44d70847d558c2304a78f8f2cf807cfdf5737c8 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Sat, 3 Aug 2019 12:24:56 -0400 Subject: [PATCH 260/774] Flexbox the background and map data layer lists --- css/80_app.css | 16 +++++++--------- modules/ui/background.js | 29 ++++++++++++++--------------- modules/ui/map_data.js | 32 ++++++++++++++++---------------- 3 files changed, 37 insertions(+), 40 deletions(-) diff --git a/css/80_app.css b/css/80_app.css index b074cefc52..6631db5931 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -3078,6 +3078,7 @@ div.full-screen > button:hover { background-color: #fff; color: #7092ff; position: relative; + display: flex; } .layer-list:empty { @@ -3108,9 +3109,8 @@ div.full-screen > button:hover { } .layer-list li.best > div.best { - display: inline-block; padding: 5px; - float: right; + flex: 0 0 auto; } [dir='rtl'] .list-item-data-browse svg { @@ -3124,9 +3124,9 @@ div.full-screen > button:hover { } .layer-list label { - display: block; padding: 5px 10px; cursor: pointer; + flex: 1 1 auto; } [dir='ltr'] .layer-list .indented label { @@ -3145,7 +3145,6 @@ div.full-screen > button:hover { .map-data-pane .layer-list button, .background-pane .layer-list button { - float: right; height: 100%; border-left: 1px solid #ccc; border-radius: 0; @@ -3154,7 +3153,6 @@ div.full-screen > button:hover { } [dir='rtl'] .map-data-pane .layer-list button, [dir='rtl'] .background-pane .layer-list button { - float: left; border-left: none; border-right: 1px solid #ccc; } @@ -3164,12 +3162,12 @@ div.full-screen > button:hover { opacity: 0.5; } -.map-data-pane .layer-list button:first-of-type, -.background-pane .layer-list button:first-of-type { +.map-data-pane .layer-list button:last-of-type, +.background-pane .layer-list button:last-of-type { border-radius: 0 3px 3px 0; } -[dir='rtl'] .map-data-pane .layer-list button:first-of-type, -[dir='rtl'] .background-pane .layer-list button:first-of-type { +[dir='rtl'] .map-data-pane .layer-list button:last-of-type, +[dir='rtl'] .background-pane .layer-list button:last-of-type { border-radius: 3px 0 0 3px; } diff --git a/modules/ui/background.js b/modules/ui/background.js index b7317e5fb1..5c801db175 100644 --- a/modules/ui/background.js +++ b/modules/ui/background.js @@ -135,6 +135,19 @@ export function uiBackground(context) { .classed('layer-custom', function(d) { return d.id === 'custom'; }) .classed('best', function(d) { return d.best(); }); + var label = enter + .append('label'); + + label + .append('input') + .attr('type', type) + .attr('name', 'layers') + .on('change', change); + + label + .append('span') + .text(function(d) { return d.name(); }); + enter.filter(function(d) { return d.id === 'custom'; }) .append('button') .attr('class', 'layer-browse') @@ -155,23 +168,9 @@ export function uiBackground(context) { .append('span') .html('★'); - var label = enter - .append('label'); - - label - .append('input') - .attr('type', type) - .attr('name', 'layers') - .on('change', change); - - label - .append('span') - .text(function(d) { return d.name(); }); - layerList.selectAll('li') - .sort(sortSources) - .style('display', layerList.selectAll('li').data().length > 0 ? 'block' : 'none'); + .sort(sortSources); layerList .call(updateLayerSelections); diff --git a/modules/ui/map_data.js b/modules/ui/map_data.js index 1d8aad3d1f..7c82ff1d47 100644 --- a/modules/ui/map_data.js +++ b/modules/ui/map_data.js @@ -505,6 +505,22 @@ export function uiMapData(context) { .append('li') .attr('class', 'list-item-data'); + var labelEnter = liEnter + .append('label') + .call(tooltip() + .title(t('map_data.layers.custom.tooltip')) + .placement('top') + ); + + labelEnter + .append('input') + .attr('type', 'checkbox') + .on('change', function() { toggleLayer('data'); }); + + labelEnter + .append('span') + .text(t('map_data.layers.custom.title')); + liEnter .append('button') .call(tooltip() @@ -527,22 +543,6 @@ export function uiMapData(context) { }) .call(svgIcon('#iD-icon-search')); - var labelEnter = liEnter - .append('label') - .call(tooltip() - .title(t('map_data.layers.custom.tooltip')) - .placement('top') - ); - - labelEnter - .append('input') - .attr('type', 'checkbox') - .on('change', function() { toggleLayer('data'); }); - - labelEnter - .append('span') - .text(t('map_data.layers.custom.title')); - // Update ul = ul .merge(ulEnter); From b6e69cd6fa71d51362afca9a22b3008f6b4ed1ee Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Mon, 5 Aug 2019 16:26:38 -0400 Subject: [PATCH 261/774] Update @mapbox/sexagesimal to the latest version (closes #6723) --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 70e727b328..13549a4afd 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,7 @@ "translations": "node data/update_locales" }, "dependencies": { - "@mapbox/sexagesimal": "1.1.0", + "@mapbox/sexagesimal": "1.2.0", "@mapbox/togeojson": "0.16.0", "@mapbox/vector-tile": "^1.3.1", "@turf/bbox-clip": "^6.0.0", From 23bb30790b977cd6a781853e3a65f32430d0b080 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Mon, 5 Aug 2019 16:29:40 -0400 Subject: [PATCH 262/774] Update lodash-es to the latest version (closes #6659) --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 13549a4afd..6b34b80a67 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,7 @@ "diacritics": "1.3.0", "fast-deep-equal": "~2.0.1", "fast-json-stable-stringify": "2.0.0", - "lodash-es": "4.17.14", + "lodash-es": "~4.17.15", "marked": "0.7.0", "martinez-polygon-clipping": "0.5.0", "node-diff3": "1.0.0", From b9723de53af1841f49be4c51a1990b18eb770207 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Mon, 5 Aug 2019 16:32:49 -0400 Subject: [PATCH 263/774] Update pannellum to the latest version (closes #6646) --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 6b34b80a67..fcd91c7a8f 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,7 @@ "martinez-polygon-clipping": "0.5.0", "node-diff3": "1.0.0", "osm-auth": "1.0.2", - "pannellum": "2.4.1", + "pannellum": "2.5.1", "q": "1.5.1", "rbush": "2.0.2", "which-polygon": "2.2.0", From 2ac9ffee67492d569f5c9599172232bbb87f2955 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Mon, 5 Aug 2019 17:50:55 -0400 Subject: [PATCH 264/774] Revert pannellum to 2.4.1 and add to greenkeeper ignore Seems they don't publish the built files anymore? --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index fcd91c7a8f..1e9c88501b 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,7 @@ "martinez-polygon-clipping": "0.5.0", "node-diff3": "1.0.0", "osm-auth": "1.0.2", - "pannellum": "2.5.1", + "pannellum": "2.4.1", "q": "1.5.1", "rbush": "2.0.2", "which-polygon": "2.2.0", @@ -102,7 +102,7 @@ }, "greenkeeper": { "label": "chore-greenkeeper", - "ignore": [] + "ignore": ["pannellum"] }, "engines": { "node": ">=6.0.0", From b05bdaa7fee4b822d8e9a8c3e3b73e302bf4f1da Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Mon, 5 Aug 2019 17:58:27 -0400 Subject: [PATCH 265/774] Update rollup to the latest version (closes #6651) --- package.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 1e9c88501b..fc27b3ca2d 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "osm-community-index": "0.11.0", "phantomjs-prebuilt": "~2.1.11", "request": "^2.88.0", - "rollup": "~1.16.2", + "rollup": "~1.17.0", "rollup-plugin-commonjs": "^10.0.0", "rollup-plugin-includepaths": "~0.2.3", "rollup-plugin-json": "^4.0.0", @@ -102,7 +102,9 @@ }, "greenkeeper": { "label": "chore-greenkeeper", - "ignore": ["pannellum"] + "ignore": [ + "pannellum" + ] }, "engines": { "node": ">=6.0.0", From d30a9b68df4637280479fa5cab147ba19407de59 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Mon, 5 Aug 2019 18:01:31 -0400 Subject: [PATCH 266/774] Drop support for node 6 --- .travis.yml | 2 +- README.md | 2 +- build_src.js | 13 ++++++------- package.json | 4 ++-- 4 files changed, 10 insertions(+), 11 deletions(-) diff --git a/.travis.yml b/.travis.yml index c94aba48e9..6ae228ceb8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,8 +1,8 @@ language: node_js node_js: - - "6" - "8" - "10" + - "12" sudo: required before_script: - npm run all diff --git a/README.md b/README.md index 3c6b7f2503..6cfdfa5f99 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,7 @@ Come on in, the water's lovely. More help? Ping `bhousel` or `quincylvania` on: ## Prerequisites -* [Node.js](https://nodejs.org/) version 6 or newer +* [Node.js](https://nodejs.org/) version 8 or newer * [`git`](https://www.atlassian.com/git/tutorials/install-git/) for your platform * Note for Windows users: * Edit `$HOME\.gitconfig`:
diff --git a/build_src.js b/build_src.js index 3a673c8814..96860af0e2 100644 --- a/build_src.js +++ b/build_src.js @@ -6,7 +6,7 @@ const json = require('rollup-plugin-json'); const nodeResolve = require('rollup-plugin-node-resolve'); const rollup = require('rollup'); const shell = require('shelljs'); -// const visualizer = require('rollup-plugin-visualizer'); +const visualizer = require('rollup-plugin-visualizer'); module.exports = function buildSrc() { @@ -42,12 +42,11 @@ module.exports = function buildSrc() { browser: false }), commonjs(), - json({ indent: '' }) - // uncomment when we require node 8+ - // visualizer({ - // filename: 'docs/statistics.html', - // sourcemap: true - // }) + json({ indent: '' }), + visualizer({ + filename: 'docs/statistics.html', + sourcemap: true + }) ] }) .then(function (bundle) { diff --git a/package.json b/package.json index fc27b3ca2d..b6acc1bc51 100644 --- a/package.json +++ b/package.json @@ -107,7 +107,7 @@ ] }, "engines": { - "node": ">=6.0.0", - "npm": ">=3.0.0" + "node": ">=8.0.0", + "npm": ">=5.0.0" } } From 4ded17d5ca1706a9331efe9634271a13def791f8 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Mon, 5 Aug 2019 18:24:58 -0400 Subject: [PATCH 267/774] Add sinon to the greenkeeper ignore list Not the first time we've had an issue with them breaking something. --- package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index b6acc1bc51..8f5eb3d501 100644 --- a/package.json +++ b/package.json @@ -103,7 +103,8 @@ "greenkeeper": { "label": "chore-greenkeeper", "ignore": [ - "pannellum" + "pannellum", + "sinon" ] }, "engines": { From 31aa1468ce4b2c03a969cb100572379abcf4bd91 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Mon, 5 Aug 2019 22:33:12 -0400 Subject: [PATCH 268/774] Update rollup-plugin-visualizer (closes #6663) --- docs/statistics.html | 4317 ++++++++++++++++++++++++++++++++++++++++++ package.json | 6 +- 2 files changed, 4320 insertions(+), 3 deletions(-) create mode 100644 docs/statistics.html diff --git a/docs/statistics.html b/docs/statistics.html new file mode 100644 index 0000000000..3fe0597306 --- /dev/null +++ b/docs/statistics.html @@ -0,0 +1,4317 @@ + + + + + + + RollUp Visualizer + + + +

RollUp Visualizer

+
+ + + + diff --git a/package.json b/package.json index 8f5eb3d501..18990be2f2 100644 --- a/package.json +++ b/package.json @@ -87,9 +87,9 @@ "rollup": "~1.17.0", "rollup-plugin-commonjs": "^10.0.0", "rollup-plugin-includepaths": "~0.2.3", - "rollup-plugin-json": "^4.0.0", - "rollup-plugin-node-resolve": "^5.1.0", - "rollup-plugin-visualizer": "^2.4.3", + "rollup-plugin-json": "~4.0.0", + "rollup-plugin-node-resolve": "~5.1.0", + "rollup-plugin-visualizer": "~2.5.4", "shelljs": "^0.8.0", "shx": "^0.3.0", "sinon": "7.3.2", From 044d236f0b2e7c911c65fe7d971da4ea4195955e Mon Sep 17 00:00:00 2001 From: ENT8R Date: Tue, 6 Aug 2019 12:36:09 +0200 Subject: [PATCH 269/774] Add vending=bottle_return preset --- .../vending_machine/bottle_return.json | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 data/presets/presets/amenity/vending_machine/bottle_return.json diff --git a/data/presets/presets/amenity/vending_machine/bottle_return.json b/data/presets/presets/amenity/vending_machine/bottle_return.json new file mode 100644 index 0000000000..ac04d29e93 --- /dev/null +++ b/data/presets/presets/amenity/vending_machine/bottle_return.json @@ -0,0 +1,22 @@ +{ + "icon": "temaki-vending_machine", + "fields": [ + "vending", + "operator" + ], + "geometry": [ + "point" + ], + "terms": [ + "bottle return" + ], + "tags": { + "amenity": "vending_machine", + "vending": "bottle_return" + }, + "reference": { + "key": "vending", + "value": "bottle_return" + }, + "name": "Bottle Return Machine" +} From bd04c22ded1a2a402136ea24550d170b9529cab6 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 6 Aug 2019 15:55:30 -0500 Subject: [PATCH 270/774] Add Fee Amount and Toll Amount fields for the `charge` key (close #6722) --- data/presets.yaml | 10 ++ data/presets/fields.json | 2 + data/presets/fields/charge_fee.json | 10 ++ data/presets/fields/charge_toll.json | 10 ++ data/presets/presets.json | 110 +++++++++--------- data/presets/presets/_attraction.json | 1 + data/presets/presets/aeroway/helipad.json | 1 + data/presets/presets/amenity/arts_centre.json | 1 + .../presets/amenity/bicycle_parking.json | 3 +- .../amenity/bicycle_repair_station.json | 1 + data/presets/presets/amenity/boat_rental.json | 3 +- .../presets/amenity/charging_station.json | 3 +- .../presets/amenity/compressed_air.json | 1 + .../presets/amenity/dressing_room.json | 1 + .../presets/amenity/drinking_water.json | 1 + data/presets/presets/amenity/parking.json | 1 + data/presets/presets/amenity/planetarium.json | 1 + data/presets/presets/amenity/public_bath.json | 3 +- .../presets/amenity/recycling_centre.json | 1 + .../amenity/sanitary_dump_station.json | 1 + data/presets/presets/amenity/school.json | 1 + data/presets/presets/amenity/shower.json | 1 + data/presets/presets/amenity/telephone.json | 1 + data/presets/presets/amenity/toilets.json | 1 + .../amenity/vending_machine/newspapers.json | 1 + data/presets/presets/amenity/veterinary.json | 1 + .../amenity/waste_transfer_station.json | 3 +- data/presets/presets/amenity/water_point.json | 1 + .../presets/amenity/watering_place.json | 1 + data/presets/presets/attraction/train.json | 3 +- data/presets/presets/highway/motorway.json | 1 + .../presets/highway/motorway_link.json | 1 + data/presets/presets/highway/primary.json | 1 + .../presets/presets/highway/primary_link.json | 1 + data/presets/presets/highway/trailhead.json | 3 +- data/presets/presets/highway/trunk.json | 1 + .../presets/presets/leisure/beach_resort.json | 3 +- .../presets/leisure/disc_golf_course.json | 1 + data/presets/presets/leisure/escape_game.json | 1 + .../presets/leisure/fitness_centre.json | 1 + data/presets/presets/leisure/garden.json | 3 +- data/presets/presets/leisure/hackerspace.json | 1 + data/presets/presets/leisure/marina.json | 1 + .../presets/leisure/miniature_golf.json | 3 +- data/presets/presets/leisure/pitch.json | 1 + data/presets/presets/leisure/sauna.json | 3 +- data/presets/presets/leisure/slipway.json | 1 + .../presets/leisure/sports_centre.json | 3 +- .../presets/leisure/swimming_area.json | 1 + .../presets/natural/cave_entrance.json | 3 +- data/presets/presets/route/ferry.json | 1 + data/presets/presets/tourism/alpine_hut.json | 3 +- data/presets/presets/tourism/aquarium.json | 1 + data/presets/presets/tourism/camp_site.json | 1 + .../presets/presets/tourism/caravan_site.json | 1 + data/presets/presets/tourism/museum.json | 1 + data/presets/presets/tourism/picnic_site.json | 1 + .../presets/tourism/wilderness_hut.json | 1 + data/presets/presets/tourism/zoo.json | 3 +- .../waterway/sanitary_dump_station.json | 1 + data/taginfo.json | 1 + dist/locales/en.json | 8 ++ 62 files changed, 166 insertions(+), 70 deletions(-) create mode 100644 data/presets/fields/charge_fee.json create mode 100644 data/presets/fields/charge_toll.json diff --git a/data/presets.yaml b/data/presets.yaml index 940b6aca66..b8b043da46 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -354,6 +354,16 @@ en: castle_type: # castle_type=* label: Type + charge_fee: + # charge=* + label: Fee Amount + # charge_fee field placeholder + placeholder: '€1, $5, ¥10…' + charge_toll: + # charge=* + label: Toll Amount + # charge_toll field placeholder + placeholder: '€1, $5, ¥10…' check_date: # check_date=* label: Last Checked Date diff --git a/data/presets/fields.json b/data/presets/fields.json index 69b3affca1..bd3c4720fe 100644 --- a/data/presets/fields.json +++ b/data/presets/fields.json @@ -59,6 +59,8 @@ "capacity": {"key": "capacity", "type": "number", "minValue": 0, "label": "Capacity", "placeholder": "50, 100, 200..."}, "cash_in": {"key": "cash_in", "type": "check", "label": "Cash In"}, "castle_type": {"key": "castle_type", "type": "combo", "label": "Type"}, + "charge_fee": {"key": "charge", "type": "text", "label": "Fee Amount", "placeholder": "€1, $5, ¥10…", "prerequisiteTag": {"key": "fee", "valueNot": "no"}}, + "charge_toll": {"key": "charge", "type": "text", "label": "Toll Amount", "placeholder": "€1, $5, ¥10…", "prerequisiteTag": {"key": "toll", "valueNot": "no"}}, "check_date": {"key": "check_date", "type": "text", "label": "Last Checked Date"}, "clothes": {"key": "clothes", "type": "semiCombo", "label": "Clothes"}, "club": {"key": "club", "type": "typeCombo", "label": "Type"}, diff --git a/data/presets/fields/charge_fee.json b/data/presets/fields/charge_fee.json new file mode 100644 index 0000000000..ca63eb11b1 --- /dev/null +++ b/data/presets/fields/charge_fee.json @@ -0,0 +1,10 @@ +{ + "key": "charge", + "type": "text", + "label": "Fee Amount", + "placeholder": "€1, $5, ¥10…", + "prerequisiteTag": { + "key": "fee", + "valueNot": "no" + } +} diff --git a/data/presets/fields/charge_toll.json b/data/presets/fields/charge_toll.json new file mode 100644 index 0000000000..265d818302 --- /dev/null +++ b/data/presets/fields/charge_toll.json @@ -0,0 +1,10 @@ +{ + "key": "charge", + "type": "text", + "label": "Toll Amount", + "placeholder": "€1, $5, ¥10…", + "prerequisiteTag": { + "key": "toll", + "valueNot": "no" + } +} diff --git a/data/presets/presets.json b/data/presets/presets.json index 44393b8fe8..e4ab32dd8b 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -3,7 +3,7 @@ "aerialway": {"fields": ["name", "aerialway"], "moreFields": ["layer"], "geometry": ["point", "vertex", "line"], "tags": {"aerialway": "*"}, "searchable": false, "name": "Aerialway"}, "aeroway": {"icon": "maki-airport", "fields": ["aeroway"], "geometry": ["point", "vertex", "line", "area"], "tags": {"aeroway": "*"}, "searchable": false, "name": "Aeroway"}, "amenity": {"fields": ["amenity"], "geometry": ["point", "vertex", "line", "area"], "tags": {"amenity": "*"}, "searchable": false, "name": "Amenity"}, - "attraction": {"icon": "maki-star", "fields": ["name", "attraction", "operator", "opening_hours"], "moreFields": ["opening_hours", "fee", "payment_multi", "address", "website", "phone", "email", "fax"], "geometry": ["point", "vertex", "line", "area"], "tags": {"attraction": "*"}, "searchable": false, "name": "Attraction"}, + "attraction": {"icon": "maki-star", "fields": ["name", "attraction", "operator", "opening_hours"], "moreFields": ["charge_fee", "opening_hours", "fee", "payment_multi", "address", "website", "phone", "email", "fax"], "geometry": ["point", "vertex", "line", "area"], "tags": {"attraction": "*"}, "searchable": false, "name": "Attraction"}, "boundary": {"fields": ["boundary"], "geometry": ["line"], "tags": {"boundary": "*"}, "searchable": false, "name": "Boundary"}, "building_point": {"icon": "maki-home", "fields": ["{building}"], "moreFields": ["{building}"], "geometry": ["point"], "tags": {"building": "*"}, "matchScore": 0.6, "searchable": false, "terms": [], "name": "Building"}, "embankment": {"geometry": ["line"], "tags": {"embankment": "yes"}, "name": "Embankment", "matchScore": 0.2, "searchable": false}, @@ -44,7 +44,7 @@ "aeroway/apron": {"icon": "maki-airport", "geometry": ["area"], "terms": ["ramp"], "fields": ["ref", "surface"], "tags": {"aeroway": "apron"}, "name": "Apron"}, "aeroway/gate": {"icon": "maki-airport", "geometry": ["point"], "fields": ["ref_aeroway_gate"], "tags": {"aeroway": "gate"}, "name": "Airport Gate"}, "aeroway/hangar": {"icon": "fas-warehouse", "geometry": ["area"], "fields": ["name", "building_area"], "tags": {"aeroway": "hangar"}, "addTags": {"building": "hangar", "aeroway": "hangar"}, "name": "Hangar"}, - "aeroway/helipad": {"icon": "maki-heliport", "geometry": ["point", "area"], "fields": ["name", "ref", "operator", "surface", "lit"], "moreFields": ["access_simple", "address", "fee", "opening_hours"], "terms": ["helicopter", "helipad", "heliport"], "tags": {"aeroway": "helipad"}, "name": "Helipad"}, + "aeroway/helipad": {"icon": "maki-heliport", "geometry": ["point", "area"], "fields": ["name", "ref", "operator", "surface", "lit"], "moreFields": ["access_simple", "address", "charge_fee", "fee", "opening_hours"], "terms": ["helicopter", "helipad", "heliport"], "tags": {"aeroway": "helipad"}, "name": "Helipad"}, "aeroway/holding_position": {"icon": "maki-airport", "geometry": ["vertex"], "fields": ["ref"], "tags": {"aeroway": "holding_position"}, "name": "Aircraft Holding Position"}, "aeroway/jet_bridge": {"icon": "temaki-pedestrian", "geometry": ["line"], "fields": ["ref_aeroway_gate", "width", "access_simple", "wheelchair"], "moreFields": ["manufacturer"], "terms": ["aerobridge", "air jetty", "airbridge", "finger", "gangway", "jet way", "jetway", "passenger boarding bridge", "PBB", "portal", "skybridge", "terminal gate connector"], "tags": {"aeroway": "jet_bridge"}, "addTags": {"aeroway": "jet_bridge", "highway": "corridor"}, "matchScore": 1.05, "name": "Jet Bridge"}, "aeroway/parking_position": {"icon": "maki-airport", "geometry": ["vertex", "point", "line"], "fields": ["ref"], "tags": {"aeroway": "parking_position"}, "name": "Aircraft Parking Position"}, @@ -65,21 +65,21 @@ "amenity/animal_boarding": {"icon": "maki-veterinary", "fields": ["name", "operator", "address", "building_area", "opening_hours", "animal_boarding"], "moreFields": ["payment_multi", "website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "terms": ["boarding", "cat", "cattery", "dog", "horse", "kennel", "kitten", "pet", "pet boarding", "pet care", "pet hotel", "puppy", "reptile"], "tags": {"amenity": "animal_boarding"}, "name": "Animal Boarding Facility"}, "amenity/animal_breeding": {"icon": "maki-veterinary", "fields": ["name", "operator", "address", "building_area", "opening_hours", "animal_breeding"], "moreFields": ["website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "terms": ["breeding", "bull", "cat", "cow", "dog", "horse", "husbandry", "kitten", "livestock", "pet breeding", "puppy", "reptile"], "tags": {"amenity": "animal_breeding"}, "name": "Animal Breeding Facility"}, "amenity/animal_shelter": {"icon": "maki-veterinary", "fields": ["name", "operator", "address", "building_area", "opening_hours", "animal_shelter"], "moreFields": ["website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "terms": ["adoption", "aspca", "cat", "dog", "horse", "kitten", "pet care", "pet rescue", "puppy", "raptor", "reptile", "rescue", "spca", "pound"], "tags": {"amenity": "animal_shelter"}, "name": "Animal Shelter"}, - "amenity/arts_centre": {"icon": "maki-theatre", "fields": ["name", "address", "building_area", "opening_hours", "website"], "moreFields": ["email", "fax", "fee", "internet_access", "internet_access/fee", "internet_access/ssid", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": [], "tags": {"amenity": "arts_centre"}, "name": "Arts Center"}, + "amenity/arts_centre": {"icon": "maki-theatre", "fields": ["name", "address", "building_area", "opening_hours", "website"], "moreFields": ["charge_fee", "email", "fax", "fee", "internet_access", "internet_access/fee", "internet_access/ssid", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": [], "tags": {"amenity": "arts_centre"}, "name": "Arts Center"}, "amenity/atm": {"icon": "maki-bank", "fields": ["operator", "network", "cash_in", "currency_multi", "drive_through"], "moreFields": ["brand", "covered", "height", "indoor", "lit", "manufacturer", "name", "opening_hours", "wheelchair"], "geometry": ["point", "vertex"], "terms": ["money", "cash", "machine"], "tags": {"amenity": "atm"}, "name": "ATM"}, "amenity/bank": {"icon": "maki-bank", "fields": ["name", "operator", "address", "building_area", "atm", "drive_through"], "moreFields": ["air_conditioning", "currency_multi", "email", "fax", "internet_access", "internet_access/fee", "internet_access/ssid", "opening_hours", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["credit union", "check", "deposit", "fund", "investment", "repository", "reserve", "safe", "savings", "stock", "treasury", "trust", "vault"], "tags": {"amenity": "bank"}, "name": "Bank"}, "amenity/bar": {"icon": "maki-bar", "fields": ["name", "address", "building_area", "outdoor_seating", "brewery"], "moreFields": ["air_conditioning", "email", "fax", "internet_access", "internet_access/fee", "internet_access/ssid", "microbrewery", "opening_hours", "payment_multi", "phone", "smoking", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["dive", "beer", "bier", "booze"], "tags": {"amenity": "bar"}, "name": "Bar"}, "amenity/bar/lgbtq": {"icon": "maki-bar", "geometry": ["point", "area"], "terms": ["gay bar", "lesbian bar", "lgbtq bar", "lgbt bar", "lgb bar"], "tags": {"amenity": "bar", "lgbtq": "primary"}, "name": "LGBTQ+ Bar"}, "amenity/bbq": {"icon": "maki-bbq", "fields": ["covered", "fuel", "access_simple"], "moreFields": ["lit"], "geometry": ["point"], "terms": ["bbq", "grill"], "tags": {"amenity": "bbq"}, "name": "Barbecue/Grill"}, "amenity/bench": {"icon": "temaki-bench", "fields": ["backrest", "material", "seats", "colour"], "moreFields": ["access_simple", "height", "inscription", "lit", "manufacturer", "operator"], "geometry": ["point", "vertex", "line"], "terms": ["seat", "chair"], "tags": {"amenity": "bench"}, "name": "Bench"}, - "amenity/bicycle_parking": {"icon": "maki-bicycle", "fields": ["bicycle_parking", "capacity", "operator", "operator/type", "covered", "access_simple", "fee", "payment_multi_fee"], "moreFields": ["colour", "indoor", "lit"], "geometry": ["point", "vertex", "area"], "terms": ["bike"], "tags": {"amenity": "bicycle_parking"}, "name": "Bicycle Parking"}, + "amenity/bicycle_parking": {"icon": "maki-bicycle", "fields": ["bicycle_parking", "capacity", "operator", "operator/type", "covered", "access_simple", "fee", "payment_multi_fee", "charge_fee"], "moreFields": ["colour", "indoor", "lit"], "geometry": ["point", "vertex", "area"], "terms": ["bike"], "tags": {"amenity": "bicycle_parking"}, "name": "Bicycle Parking"}, "amenity/bicycle_parking/building": {"icon": "maki-bicycle", "fields": ["{amenity/bicycle_parking}", "opening_hours", "building_area"], "geometry": ["point", "vertex", "area"], "tags": {"amenity": "bicycle_parking", "bicycle_parking": "building"}, "reference": {"key": "bicycle_parking"}, "terms": ["Multi-Storey Bicycle Park", "Multi-Storey Bike Park", "Bike Parking Station"], "name": "Bicycle Parking Garage"}, "amenity/bicycle_parking/lockers": {"icon": "maki-bicycle", "geometry": ["point", "vertex", "area"], "tags": {"amenity": "bicycle_parking", "bicycle_parking": "lockers"}, "reference": {"key": "bicycle_parking"}, "terms": ["Bike Lockers"], "name": "Bicycle Lockers"}, "amenity/bicycle_parking/shed": {"icon": "maki-bicycle", "fields": ["{amenity/bicycle_parking}", "building_area"], "geometry": ["point", "vertex", "area"], "tags": {"amenity": "bicycle_parking", "bicycle_parking": "shed"}, "reference": {"key": "bicycle_parking"}, "terms": ["Bike Shed"], "name": "Bicycle Shed"}, "amenity/bicycle_rental": {"icon": "maki-bicycle", "fields": ["capacity", "network", "operator", "operator/type", "fee", "payment_multi_fee"], "moreFields": ["address", "email", "covered", "fax", "opening_hours", "phone", "website", "wheelchair"], "geometry": ["point", "vertex", "area"], "terms": ["bike", "bicycle", "bikeshare", "bike share", "bicycle share", "hub", "dock"], "tags": {"amenity": "bicycle_rental"}, "name": "Bicycle Rental"}, - "amenity/bicycle_repair_station": {"icon": "maki-bicycle", "fields": ["operator", "brand", "opening_hours", "fee", "payment_multi_fee", "service/bicycle"], "moreFields": ["colour", "covered", "indoor", "manufacturer"], "geometry": ["point", "vertex"], "terms": ["bike", "repair", "chain", "pump", "tools", "stand", "multitool"], "tags": {"amenity": "bicycle_repair_station"}, "name": "Bicycle Repair Tool Stand"}, + "amenity/bicycle_repair_station": {"icon": "maki-bicycle", "fields": ["operator", "brand", "opening_hours", "fee", "payment_multi_fee", "charge_fee", "service/bicycle"], "moreFields": ["colour", "covered", "indoor", "manufacturer"], "geometry": ["point", "vertex"], "terms": ["bike", "repair", "chain", "pump", "tools", "stand", "multitool"], "tags": {"amenity": "bicycle_repair_station"}, "name": "Bicycle Repair Tool Stand"}, "amenity/biergarten": {"icon": "fas-beer", "fields": ["name", "address", "building", "outdoor_seating", "brewery"], "moreFields": ["{amenity/bar}"], "geometry": ["point", "area"], "tags": {"amenity": "biergarten"}, "terms": ["beer", "bier", "booze"], "name": "Biergarten"}, - "amenity/boat_rental": {"icon": "temaki-boating", "fields": ["name", "operator", "operator/type", "fee", "payment_multi_fee"], "moreFields": ["address", "website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "boat_rental"}, "name": "Boat Rental"}, + "amenity/boat_rental": {"icon": "temaki-boating", "fields": ["name", "operator", "operator/type", "fee", "payment_multi_fee", "charge_fee"], "moreFields": ["address", "website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "boat_rental"}, "name": "Boat Rental"}, "amenity/bureau_de_change": {"icon": "maki-bank", "fields": ["name", "operator", "payment_multi", "currency_multi", "address", "building_area"], "moreFields": ["opening_hours", "website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "terms": ["bureau de change", "money changer"], "tags": {"amenity": "bureau_de_change"}, "name": "Currency Exchange"}, "amenity/cafe": {"icon": "maki-cafe", "fields": ["name", "cuisine", "address", "building_area", "outdoor_seating", "internet_access", "internet_access/fee"], "moreFields": ["air_conditioning", "bar", "capacity", "delivery", "diet_multi", "email", "fax", "internet_access/ssid", "opening_hours", "payment_multi", "phone", "reservation", "smoking", "takeaway", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["bistro", "coffee", "tea"], "tags": {"amenity": "cafe"}, "name": "Cafe"}, "amenity/car_pooling": {"icon": "maki-car", "fields": ["name", "operator", "operator/type", "capacity", "address", "opening_hours", "lit"], "moreFields": ["website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "car_pooling"}, "name": "Car Pooling"}, @@ -87,7 +87,7 @@ "amenity/car_sharing": {"icon": "maki-car", "fields": ["name", "operator", "operator/type", "capacity", "address", "payment_multi", "supervised"], "moreFields": ["lit", "website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "car_sharing"}, "name": "Car Sharing"}, "amenity/car_wash": {"icon": "temaki-car_wash", "fields": ["name", "operator", "address", "building_area", "opening_hours", "payment_multi", "self_service"], "moreFields": ["website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "car_wash"}, "name": "Car Wash"}, "amenity/casino": {"icon": "maki-casino", "fields": ["name", "operator", "address", "building_area", "opening_hours", "smoking"], "moreFields": ["air_conditioning", "email", "fax", "internet_access", "internet_access/fee", "internet_access/ssid", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["gambling", "roulette", "craps", "poker", "blackjack"], "tags": {"amenity": "casino"}, "name": "Casino"}, - "amenity/charging_station": {"icon": "fas-charging-station", "fields": ["name", "operator", "capacity", "access_simple", "fee", "payment_multi_fee"], "moreFields": ["brand", "covered", "manufacturer"], "geometry": ["point"], "tags": {"amenity": "charging_station"}, "terms": ["EV", "Electric Vehicle", "Supercharger"], "name": "Charging Station"}, + "amenity/charging_station": {"icon": "fas-charging-station", "fields": ["name", "operator", "capacity", "access_simple", "fee", "payment_multi_fee", "charge_fee"], "moreFields": ["brand", "covered", "manufacturer"], "geometry": ["point"], "tags": {"amenity": "charging_station"}, "terms": ["EV", "Electric Vehicle", "Supercharger"], "name": "Charging Station"}, "amenity/childcare": {"icon": "fas-child", "fields": ["name", "operator", "operator/type", "address", "building_area", "opening_hours"], "moreFields": ["payment_multi", "website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "terms": ["daycare", "orphanage", "playgroup"], "tags": {"amenity": "childcare"}, "name": "Nursery/Childcare"}, "amenity/cinema": {"icon": "maki-cinema", "fields": ["name", "address", "screen", "building_area", "opening_hours", "payment_multi"], "moreFields": ["air_conditioning", "email", "fax", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["drive-in", "film", "flick", "movie", "theater", "picture", "show", "screen"], "tags": {"amenity": "cinema"}, "name": "Cinema"}, "amenity/clinic": {"icon": "maki-doctor", "fields": ["name", "operator", "operator/type", "healthcare/speciality", "address", "building_area", "opening_hours"], "moreFields": ["air_conditioning", "payment_multi", "website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "terms": ["medical", "urgentcare"], "tags": {"amenity": "clinic"}, "addTags": {"amenity": "clinic", "healthcare": "clinic"}, "reference": {"key": "amenity", "value": "clinic"}, "name": "Clinic"}, @@ -98,7 +98,7 @@ "amenity/college": {"icon": "maki-college", "fields": ["name", "operator", "operator/type", "address", "website", "internet_access", "internet_access/fee"], "moreFields": ["religion", "denomination", "internet_access/ssid", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "terms": ["university", "undergraduate school"], "tags": {"amenity": "college"}, "name": "College Grounds"}, "amenity/community_centre": {"icon": "maki-town-hall", "fields": ["name", "operator", "address", "building_area"], "moreFields": ["air_conditioning", "email", "fax", "phone", "polling_station", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["event", "hall"], "tags": {"amenity": "community_centre"}, "name": "Community Center"}, "amenity/community_centre/lgbtq": {"icon": "maki-town-hall", "geometry": ["point", "area"], "terms": ["lgbtq event", "lgbtq hall", "lgbt event", "lgbt hall", "lgb event", "lgb hall"], "tags": {"amenity": "community_centre", "lgbtq": "primary"}, "name": "LGBTQ+ Community Center"}, - "amenity/compressed_air": {"icon": "maki-car", "fields": ["operator", "access_simple", "fee", "payment_multi_fee", "covered", "lit"], "moreFields": ["brand", "manufacturer"], "geometry": ["point", "area"], "tags": {"amenity": "compressed_air"}, "name": "Compressed Air"}, + "amenity/compressed_air": {"icon": "maki-car", "fields": ["operator", "access_simple", "fee", "payment_multi_fee", "charge_fee", "covered", "lit"], "moreFields": ["brand", "manufacturer"], "geometry": ["point", "area"], "tags": {"amenity": "compressed_air"}, "name": "Compressed Air"}, "amenity/conference_centre": {"icon": "fas-user-tie", "fields": ["name", "operator", "building_area", "address", "website", "internet_access"], "moreFields": ["air_conditioning", "email", "fax", "internet_access/fee", "internet_access/ssid", "phone", "smoking", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "conference_centre"}, "terms": ["auditorium", "conference", "exhibition", "exposition", "lecture"], "name": "Convention Center"}, "amenity/courthouse": {"icon": "fas-gavel", "fields": ["name", "operator", "address", "building_area"], "moreFields": ["email", "fax", "phone", "polling_station", "smoking", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "courthouse"}, "name": "Courthouse"}, "amenity/crematorium": {"icon": "maki-cemetery", "fields": ["name", "website", "phone", "opening_hours", "wheelchair"], "moreFields": ["address", "website", "phone", "email", "fax", "wheelchair"], "geometry": ["area", "point"], "tags": {"amenity": "crematorium"}, "terms": ["cemetery", "funeral"], "name": "Crematorium"}, @@ -106,8 +106,8 @@ "amenity/dive_centre": {"icon": "temaki-scuba_diving", "fields": ["name", "operator", "address", "building_area", "opening_hours", "scuba_diving"], "moreFields": ["payment_multi", "website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "terms": ["diving", "scuba"], "tags": {"amenity": "dive_centre"}, "name": "Dive Center"}, "amenity/doctors": {"icon": "maki-doctor", "fields": ["name", "operator", "healthcare/speciality", "address", "building_area", "opening_hours"], "moreFields": ["payment_multi", "website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "terms": ["medic*", "physician"], "tags": {"amenity": "doctors"}, "addTags": {"amenity": "doctors", "healthcare": "doctor"}, "reference": {"key": "amenity", "value": "doctors"}, "name": "Doctor"}, "amenity/dojo": {"icon": "maki-pitch", "fields": ["name", "sport", "address", "building_area", "opening_hours"], "moreFields": ["payment_multi", "website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "terms": ["martial arts", "dojang"], "tags": {"amenity": "dojo"}, "name": "Dojo / Martial Arts Academy"}, - "amenity/dressing_room": {"icon": "maki-clothing-store", "fields": ["operator", "access_simple", "gender", "wheelchair", "building_area"], "moreFields": ["fee", "opening_hours", "payment_multi_fee", "ref"], "geometry": ["point", "area"], "terms": ["changeroom", "dressing room", "fitting room", "locker room"], "tags": {"amenity": "dressing_room"}, "name": "Changing Room"}, - "amenity/drinking_water": {"icon": "maki-drinking-water", "fields": ["operator", "access_simple", "fee", "payment_multi_fee", "wheelchair"], "moreFields": ["covered", "indoor", "lit"], "geometry": ["point"], "tags": {"amenity": "drinking_water"}, "terms": ["potable water source", "water fountain", "drinking fountain", "bubbler", "water tap"], "name": "Drinking Water"}, + "amenity/dressing_room": {"icon": "maki-clothing-store", "fields": ["operator", "access_simple", "gender", "wheelchair", "building_area"], "moreFields": ["charge_fee", "fee", "opening_hours", "payment_multi_fee", "ref"], "geometry": ["point", "area"], "terms": ["changeroom", "dressing room", "fitting room", "locker room"], "tags": {"amenity": "dressing_room"}, "name": "Changing Room"}, + "amenity/drinking_water": {"icon": "maki-drinking-water", "fields": ["operator", "access_simple", "fee", "payment_multi_fee", "charge_fee", "wheelchair"], "moreFields": ["covered", "indoor", "lit"], "geometry": ["point"], "tags": {"amenity": "drinking_water"}, "terms": ["potable water source", "water fountain", "drinking fountain", "bubbler", "water tap"], "name": "Drinking Water"}, "amenity/driving_school": {"icon": "maki-car", "fields": ["name", "operator", "operator/type", "address", "building_area", "opening_hours"], "moreFields": ["payment_multi", "website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "driving_school"}, "name": "Driving School"}, "amenity/events_venue": {"icon": "fas-users", "fields": ["name", "operator", "building_area", "address", "website", "internet_access"], "moreFields": ["air_conditioning", "email", "fax", "internet_access/fee", "internet_access/ssid", "phone", "smoking", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "events_venue"}, "terms": ["banquet hall", "baptism", "Bar Mitzvah", "Bat Mitzvah", "birthdays", "celebrations", "conferences", "confirmation", "meetings", "parties", "party", "quinceañera", "reunions", "weddings"], "name": "Events Venue"}, "amenity/fast_food": {"icon": "maki-fast-food", "fields": ["name", "cuisine", "operator", "address", "building_area", "drive_through"], "moreFields": ["air_conditioning", "opening_hours", "diet_multi", "takeaway", "delivery", "smoking", "capacity", "outdoor_seating", "internet_access", "internet_access/fee", "internet_access/ssid", "payment_multi", "website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "fast_food"}, "terms": ["restaurant", "takeaway"], "name": "Fast Food"}, @@ -144,7 +144,7 @@ "amenity/nightclub/lgbtq": {"icon": "maki-bar", "geometry": ["point", "area"], "tags": {"amenity": "nightclub", "lgbtq": "primary"}, "terms": ["gay nightclub", "lesbian nightclub", "lgbtq nightclub", "lgbt nightclub", "lgb nightclub"], "name": "LGBTQ+ Nightclub"}, "amenity/parking_entrance": {"icon": "maki-entrance-alt1", "fields": ["access_simple", "ref"], "geometry": ["vertex"], "tags": {"amenity": "parking_entrance"}, "name": "Parking Garage Entrance/Exit"}, "amenity/parking_space": {"fields": ["capacity"], "geometry": ["point", "vertex", "area"], "terms": [], "tags": {"amenity": "parking_space"}, "matchScore": 0.95, "name": "Parking Space"}, - "amenity/parking": {"icon": "maki-car", "fields": ["operator", "operator/type", "parking", "capacity", "access_simple", "fee", "payment_multi_fee", "surface"], "moreFields": ["address", "covered", "email", "fax", "maxstay", "name", "opening_hours", "park_ride", "phone", "ref", "supervised", "website", "wheelchair"], "geometry": ["point", "vertex", "area"], "tags": {"amenity": "parking"}, "terms": ["automobile parking", "car lot", "car parking", "rv parking", "truck parking", "vehicle parking"], "name": "Parking Lot"}, + "amenity/parking": {"icon": "maki-car", "fields": ["operator", "operator/type", "parking", "capacity", "access_simple", "fee", "payment_multi_fee", "charge_fee", "surface"], "moreFields": ["address", "covered", "email", "fax", "maxstay", "name", "opening_hours", "park_ride", "phone", "ref", "supervised", "website", "wheelchair"], "geometry": ["point", "vertex", "area"], "tags": {"amenity": "parking"}, "terms": ["automobile parking", "car lot", "car parking", "rv parking", "truck parking", "vehicle parking"], "name": "Parking Lot"}, "amenity/parking/multi-storey": {"icon": "maki-car", "fields": ["name", "{amenity/parking}", "building"], "moreFields": ["{amenity/parking}", "levels", "height"], "geometry": ["area"], "tags": {"amenity": "parking", "parking": "multi-storey"}, "addTags": {"building": "parking", "amenity": "parking", "parking": "multi-storey"}, "reference": {"key": "parking", "value": "multi-storey"}, "terms": ["car", "indoor parking", "multistorey car park", "parkade", "parking building", "parking deck", "parking garage", "parking ramp", "parking structure"], "matchScore": 1.05, "name": "Multilevel Parking Garage"}, "amenity/parking/park_ride": {"icon": "maki-car", "geometry": ["point", "vertex", "area"], "tags": {"amenity": "parking", "park_ride": "yes"}, "reference": {"key": "park_ride", "value": "yes"}, "terms": ["commuter parking lot", "incentive parking lot", "metro parking lot", "park and pool lot", "park and ride lot", "P+R", "public transport parking lot", "public transit parking lot", "train parking lot"], "name": "Park & Ride Lot"}, "amenity/parking/underground": {"icon": "maki-car", "fields": ["{amenity/parking}", "layer"], "geometry": ["point", "vertex", "area"], "tags": {"amenity": "parking", "parking": "underground"}, "addTags": {"amenity": "parking", "parking": "underground", "layer": "-1"}, "reference": {"key": "parking", "value": "underground"}, "terms": ["automobile parking", "car lot", "car parking", "rv parking", "subsurface parking", "truck parking", "vehicle parking"], "matchScore": 1.05, "name": "Underground Parking"}, @@ -164,7 +164,7 @@ "amenity/place_of_worship/shinto": {"icon": "temaki-shinto", "fields": ["name", "religion", "denomination", "{amenity/place_of_worship}"], "geometry": ["point", "area"], "terms": ["kami", "torii"], "tags": {"amenity": "place_of_worship", "religion": "shinto"}, "reference": {"key": "amenity", "value": "place_of_worship"}, "name": "Shinto Shrine"}, "amenity/place_of_worship/sikh": {"icon": "temaki-sikhism", "fields": ["name", "religion", "denomination", "{amenity/place_of_worship}"], "geometry": ["point", "area"], "terms": ["gurudwara", "temple"], "tags": {"amenity": "place_of_worship", "religion": "sikh"}, "reference": {"key": "amenity", "value": "place_of_worship"}, "name": "Sikh Temple"}, "amenity/place_of_worship/taoist": {"icon": "temaki-taoism", "fields": ["name", "religion", "denomination", "{amenity/place_of_worship}"], "geometry": ["point", "area"], "terms": ["daoist", "monastery", "temple"], "tags": {"amenity": "place_of_worship", "religion": "taoist"}, "reference": {"key": "amenity", "value": "place_of_worship"}, "name": "Taoist Temple"}, - "amenity/planetarium": {"icon": "maki-globe", "fields": ["name", "operator", "address", "building_area", "opening_hours"], "moreFields": ["air_conditioning", "fee", "payment_multi_fee", "website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "terms": ["museum", "astronomy", "observatory"], "tags": {"amenity": "planetarium"}, "name": "Planetarium"}, + "amenity/planetarium": {"icon": "maki-globe", "fields": ["name", "operator", "address", "building_area", "opening_hours"], "moreFields": ["air_conditioning", "charge_fee", "fee", "payment_multi_fee", "website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "terms": ["museum", "astronomy", "observatory"], "tags": {"amenity": "planetarium"}, "name": "Planetarium"}, "amenity/police": {"icon": "maki-police", "fields": ["name", "operator", "address", "building_area", "opening_hours"], "moreFields": ["email", "fax", "phone", "polling_station", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["badge", "constable", "constabulary", "cop", "detective", "fed", "law", "enforcement", "officer", "patrol"], "tags": {"amenity": "police"}, "name": "Police"}, "amenity/polling_station": {"icon": "fas-vote-yea", "fields": ["name", "ref", "operator", "address", "opening_hours", "building_area"], "moreFields": ["air_conditioning", "email", "fax", "internet_access", "internet_access/fee", "internet_access/ssid", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["ballot box", "ballot drop", "democracy", "elections", "polling place", "vote", "voting booth", "voting machine"], "tags": {"amenity": "polling_station"}, "addTags": {"amenity": "polling_station", "polling_station": "yes"}, "name": "Permanent Polling Place"}, "amenity/post_box": {"icon": "temaki-post_box", "fields": ["operator", "collection_times", "drive_through", "ref"], "moreFields": ["access_simple", "brand", "covered", "height", "indoor", "manufacturer", "wheelchair"], "geometry": ["point", "vertex"], "tags": {"amenity": "post_box"}, "terms": ["letter drop", "mail box", "package drop", "post box", "postal box"], "name": "Mailbox"}, @@ -174,10 +174,10 @@ "amenity/pub": {"icon": "maki-beer", "fields": ["name", "address", "building_area", "opening_hours", "smoking", "brewery"], "moreFields": ["air_conditioning", "diet_multi", "email", "fax", "internet_access", "internet_access/fee", "internet_access/ssid", "microbrewery", "outdoor_seating", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "pub"}, "terms": ["alcohol", "drink", "dive", "beer", "bier", "booze"], "name": "Pub"}, "amenity/pub/lgbtq": {"icon": "maki-beer", "geometry": ["point", "area"], "tags": {"amenity": "pub", "lgbtq": "primary"}, "terms": ["gay pub", "lesbian pub", "lgbtq pub", "lgbt pub", "lgb pub"], "name": "LGBTQ+ Pub"}, "amenity/pub/microbrewery": {"icon": "maki-beer", "geometry": ["point", "area"], "tags": {"amenity": "pub", "microbrewery": "yes"}, "reference": {"key": "microbrewery"}, "terms": ["alcohol", "drink", "dive", "beer", "bier", "booze", "craft brewery", "microbrewery", "small batch brewery"], "name": "Brewpub"}, - "amenity/public_bath": {"icon": "maki-water", "fields": ["name", "bath/type", "bath/open_air", "bath/sand_bath", "address", "building_area", "fee"], "moreFields": ["email", "fax", "internet_access", "internet_access/fee", "internet_access/ssid", "opening_hours", "payment_multi_fee", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "public_bath"}, "terms": ["onsen", "foot bath", "hot springs"], "name": "Public Bath"}, + "amenity/public_bath": {"icon": "maki-water", "fields": ["name", "bath/type", "bath/open_air", "bath/sand_bath", "address", "building_area", "fee", "charge_fee"], "moreFields": ["email", "fax", "internet_access", "internet_access/fee", "internet_access/ssid", "opening_hours", "payment_multi_fee", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "public_bath"}, "terms": ["onsen", "foot bath", "hot springs"], "name": "Public Bath"}, "amenity/public_bookcase": {"icon": "maki-library", "fields": ["name", "public_bookcase/type", "operator", "opening_hours", "capacity", "website", "lit"], "moreFields": ["wheelchair", "location", "address", "access_simple", "brand", "email", "phone"], "geometry": ["point", "area"], "terms": ["library", "bookcrossing"], "tags": {"amenity": "public_bookcase"}, "name": "Public Bookcase"}, "amenity/ranger_station": {"icon": "maki-ranger-station", "fields": ["name", "operator", "address", "building_area", "opening_hours"], "moreFields": ["email", "fax", "internet_access", "internet_access/fee", "internet_access/ssid", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["visitor center", "visitor centre", "permit center", "permit centre", "backcountry office", "warden office", "warden center"], "tags": {"amenity": "ranger_station"}, "name": "Ranger Station"}, - "amenity/recycling_centre": {"icon": "maki-recycling", "fields": ["name", "operator", "operator/type", "address", "building", "opening_hours", "recycling_accepts"], "moreFields": ["fee", "payment_multi_fee", "website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "terms": ["bottle", "can", "dump", "glass", "garbage", "rubbish", "scrap", "trash"], "tags": {"amenity": "recycling", "recycling_type": "centre"}, "reference": {"key": "recycling_type", "value": "*"}, "name": "Recycling Center"}, + "amenity/recycling_centre": {"icon": "maki-recycling", "fields": ["name", "operator", "operator/type", "address", "building", "opening_hours", "recycling_accepts"], "moreFields": ["charge_fee", "fee", "payment_multi_fee", "website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "terms": ["bottle", "can", "dump", "glass", "garbage", "rubbish", "scrap", "trash"], "tags": {"amenity": "recycling", "recycling_type": "centre"}, "reference": {"key": "recycling_type", "value": "*"}, "name": "Recycling Center"}, "amenity/recycling_container": {"icon": "maki-recycling", "fields": ["operator", "recycling_accepts", "collection_times", "material", "colour"], "moreFields": ["covered", "indoor", "manufacturer"], "geometry": ["point", "area"], "terms": ["bin", "can", "bottle", "glass", "garbage", "rubbish", "scrap", "trash"], "tags": {"amenity": "recycling", "recycling_type": "container"}, "reference": {"key": "amenity", "value": "recycling"}, "name": "Recycling Container"}, "amenity/restaurant": {"icon": "maki-restaurant", "fields": ["name", "cuisine", "address", "building_area", "opening_hours", "phone"], "moreFields": ["air_conditioning", "bar", "brewery", "capacity", "delivery", "diet_multi", "email", "fax", "internet_access", "internet_access/fee", "internet_access/ssid", "microbrewery", "outdoor_seating", "reservation", "smoking", "stars", "takeaway", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["bar", "breakfast", "cafe", "café", "canteen", "coffee", "dine", "dining", "dinner", "drive-in", "eat", "grill", "lunch", "table"], "tags": {"amenity": "restaurant"}, "name": "Restaurant"}, "amenity/restaurant/american": {"icon": "maki-restaurant", "geometry": ["point", "area"], "terms": ["bar", "breakfast", "cafe", "café", "canteen", "coffee", "dine", "dining", "dinner", "drive-in", "eat", "grill", "lunch", "table"], "tags": {"amenity": "restaurant", "cuisine": "american"}, "reference": {"key": "cuisine", "value": "american"}, "name": "American Restaurant"}, @@ -198,14 +198,14 @@ "amenity/restaurant/thai": {"icon": "maki-restaurant-noodle", "geometry": ["point", "area"], "terms": ["bar", "breakfast", "cafe", "café", "canteen", "dine", "dining", "dinner", "drive-in", "eat", "grill", "lunch", "table"], "tags": {"amenity": "restaurant", "cuisine": "thai"}, "reference": {"key": "cuisine", "value": "thai"}, "name": "Thai Restaurant"}, "amenity/restaurant/turkish": {"icon": "maki-restaurant", "geometry": ["point", "area"], "terms": ["bar", "breakfast", "cafe", "café", "canteen", "dine", "dining", "dinner", "drive-in", "eat", "grill", "lunch", "table"], "tags": {"amenity": "restaurant", "cuisine": "turkish"}, "reference": {"key": "cuisine", "value": "turkish"}, "name": "Turkish Restaurant"}, "amenity/restaurant/vietnamese": {"icon": "maki-restaurant-noodle", "geometry": ["point", "area"], "terms": ["bar", "breakfast", "cafe", "café", "canteen", "dine", "dining", "dinner", "drive-in", "eat", "grill", "lunch", "table"], "tags": {"amenity": "restaurant", "cuisine": "vietnamese"}, "reference": {"key": "cuisine", "value": "vietnamese"}, "name": "Vietnamese Restaurant"}, - "amenity/sanitary_dump_station": {"icon": "temaki-storage_tank", "fields": ["operator", "access_simple", "fee", "payment_multi_fee", "water_point"], "moreFields": ["opening_hours"], "geometry": ["point", "vertex", "area"], "terms": ["Motor Home", "Camper", "Sanitary", "Dump Station", "Elsan", "CDP", "CTDP", "Chemical Toilet"], "tags": {"amenity": "sanitary_dump_station"}, "name": "RV Toilet Disposal"}, - "amenity/school": {"icon": "maki-school", "fields": ["name", "operator", "operator/type", "address", "religion", "denomination", "website"], "moreFields": ["email", "fax", "fee", "internet_access", "internet_access/ssid", "phone", "polling_station", "wheelchair"], "geometry": ["point", "area"], "terms": ["academy", "elementary school", "middle school", "high school"], "tags": {"amenity": "school"}, "name": "School Grounds"}, + "amenity/sanitary_dump_station": {"icon": "temaki-storage_tank", "fields": ["operator", "access_simple", "fee", "payment_multi_fee", "charge_fee", "water_point"], "moreFields": ["opening_hours"], "geometry": ["point", "vertex", "area"], "terms": ["Motor Home", "Camper", "Sanitary", "Dump Station", "Elsan", "CDP", "CTDP", "Chemical Toilet"], "tags": {"amenity": "sanitary_dump_station"}, "name": "RV Toilet Disposal"}, + "amenity/school": {"icon": "maki-school", "fields": ["name", "operator", "operator/type", "address", "religion", "denomination", "website"], "moreFields": ["charge_fee", "email", "fax", "fee", "internet_access", "internet_access/ssid", "phone", "polling_station", "wheelchair"], "geometry": ["point", "area"], "terms": ["academy", "elementary school", "middle school", "high school"], "tags": {"amenity": "school"}, "name": "School Grounds"}, "amenity/shelter": {"icon": "maki-shelter", "fields": ["name", "shelter_type", "building_area", "bench", "bin"], "moreFields": ["lit", "wheelchair"], "geometry": ["point", "vertex", "area"], "terms": ["lean-to", "gazebo", "picnic"], "tags": {"amenity": "shelter"}, "name": "Shelter"}, "amenity/shelter/gazebo": {"icon": "maki-shelter", "fields": ["name", "building_area", "bench", "lit"], "geometry": ["point", "area"], "tags": {"amenity": "shelter", "shelter_type": "gazebo"}, "name": "Gazebo"}, "amenity/shelter/lean_to": {"icon": "maki-shelter", "fields": ["name", "operator", "building_area"], "geometry": ["point", "area"], "tags": {"amenity": "shelter", "shelter_type": "lean_to"}, "name": "Lean-To"}, "amenity/shelter/picnic_shelter": {"icon": "maki-shelter", "fields": ["name", "shelter_type", "building_area", "lit", "bin"], "geometry": ["point", "area"], "tags": {"amenity": "shelter", "shelter_type": "picnic_shelter"}, "reference": {"key": "shelter_type", "value": "picnic_shelter"}, "terms": ["pavilion"], "name": "Picnic Shelter"}, "amenity/shelter/public_transport": {"icon": "maki-shelter", "fields": ["name", "shelter_type", "building_area", "bench", "lit"], "geometry": ["point", "area"], "terms": ["bus stop", "metro stop", "public transit shelter", "public transport shelter", "tram stop shelter", "waiting"], "tags": {"amenity": "shelter", "shelter_type": "public_transport"}, "reference": {"key": "shelter_type", "value": "public_transport"}, "name": "Transit Shelter"}, - "amenity/shower": {"icon": "fas-shower", "fields": ["opening_hours", "access_simple", "fee", "payment_multi_fee", "supervised", "building_area", "wheelchair"], "moreFields": ["address", "operator", "gender"], "geometry": ["point", "vertex", "area"], "terms": ["rain closet"], "tags": {"amenity": "shower"}, "name": "Shower"}, + "amenity/shower": {"icon": "fas-shower", "fields": ["opening_hours", "access_simple", "fee", "payment_multi_fee", "charge_fee", "supervised", "building_area", "wheelchair"], "moreFields": ["address", "operator", "gender"], "geometry": ["point", "vertex", "area"], "terms": ["rain closet"], "tags": {"amenity": "shower"}, "name": "Shower"}, "amenity/smoking_area": {"icon": "fas-smoking", "fields": ["name", "shelter", "bin", "bench", "opening_hours"], "moreFields": ["lit", "wheelchair", "covered"], "geometry": ["point", "vertex", "area"], "terms": [], "tags": {"amenity": "smoking_area"}, "name": "Smoking Area"}, "amenity/social_centre": {"icon": "fas-handshake", "fields": ["name", "brand", "operator", "operator/type", "address", "building_area"], "moreFields": ["air_conditioning", "email", "fax", "internet_access", "internet_access/fee", "internet_access/ssid", "phone", "polling_station", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["event", "fraternal", "fraternity", "hall", "organization", "professional", "society", "sorority", "union", "vetern"], "tags": {"amenity": "social_centre"}, "name": "Social Center"}, "amenity/social_facility": {"icon": "temaki-social_facility", "fields": ["name", "operator", "operator/type", "address", "building_area", "social_facility", "social_facility_for"], "moreFields": ["email", "fax", "internet_access", "internet_access/fee", "internet_access/ssid", "opening_hours", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": [], "tags": {"amenity": "social_facility"}, "name": "Social Facility"}, @@ -216,10 +216,10 @@ "amenity/social_facility/nursing_home": {"icon": "maki-wheelchair", "fields": ["{amenity/social_facility}", "wheelchair"], "geometry": ["point", "area"], "terms": ["elderly", "living", "nursing", "old", "senior", "assisted living"], "tags": {"amenity": "social_facility", "social_facility": "nursing_home", "social_facility:for": "senior"}, "reference": {"key": "social_facility", "value": "nursing_home"}, "name": "Nursing Home"}, "amenity/studio": {"icon": "fas-microphone", "fields": ["name", "studio", "address", "building_area"], "moreFields": ["internet_access", "internet_access/fee", "internet_access/ssid", "website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "terms": ["recording", "radio", "television"], "tags": {"amenity": "studio"}, "name": "Studio"}, "amenity/taxi": {"icon": "fas-taxi", "fields": ["name", "operator", "capacity", "address"], "moreFields": ["access_simple", "brand", "opening_hours", "wheelchair"], "geometry": ["point", "vertex", "area"], "terms": ["cab"], "tags": {"amenity": "taxi"}, "name": "Taxi Stand"}, - "amenity/telephone": {"icon": "maki-telephone", "fields": ["operator", "phone", "fee", "payment_multi_fee", "booth"], "moreFields": ["covered", "indoor", "lit", "wheelchair"], "geometry": ["point", "vertex"], "tags": {"amenity": "telephone"}, "terms": ["phone"], "name": "Telephone"}, + "amenity/telephone": {"icon": "maki-telephone", "fields": ["operator", "phone", "fee", "payment_multi_fee", "charge_fee", "booth"], "moreFields": ["covered", "indoor", "lit", "wheelchair"], "geometry": ["point", "vertex"], "tags": {"amenity": "telephone"}, "terms": ["phone"], "name": "Telephone"}, "amenity/theatre": {"icon": "maki-theatre", "fields": ["name", "operator", "address", "building_area"], "moreFields": ["air_conditioning", "internet_access", "internet_access/fee", "internet_access/ssid", "payment_multi", "website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "terms": ["theatre", "performance", "play", "musical"], "tags": {"amenity": "theatre"}, "name": "Theater"}, "amenity/theatre/type/amphi": {"icon": "maki-theatre", "fields": ["name", "operator", "address", "lit"], "geometry": ["point", "area"], "terms": ["open air", "outdoor", "greek", "ampi"], "tags": {"amenity": "theatre", "theatre:type": "amphi"}, "name": "Amphitheatre"}, - "amenity/toilets": {"icon": "maki-toilet", "fields": ["toilets/disposal", "access_simple", "gender", "diaper", "wheelchair", "building_area"], "moreFields": ["fee", "opening_hours", "operator", "payment_multi_fee", "toilets/handwashing", "toilets/position"], "geometry": ["point", "vertex", "area"], "terms": ["bathroom", "restroom", "outhouse", "privy", "head", "lavatory", "latrine", "water closet", "WC", "W.C."], "tags": {"amenity": "toilets"}, "name": "Toilets"}, + "amenity/toilets": {"icon": "maki-toilet", "fields": ["toilets/disposal", "access_simple", "gender", "diaper", "wheelchair", "building_area"], "moreFields": ["charge_fee", "fee", "opening_hours", "operator", "payment_multi_fee", "toilets/handwashing", "toilets/position"], "geometry": ["point", "vertex", "area"], "terms": ["bathroom", "restroom", "outhouse", "privy", "head", "lavatory", "latrine", "water closet", "WC", "W.C."], "tags": {"amenity": "toilets"}, "name": "Toilets"}, "amenity/toilets/disposal/flush": {"icon": "fas-toilet", "fields": ["toilets/disposal", "{amenity/toilets}"], "moreFields": ["{amenity/toilets}"], "geometry": ["point", "vertex", "area"], "terms": ["bathroom", "head", "lavatory", "privy", "restroom", "water closet", "WC", "W.C."], "tags": {"amenity": "toilets", "toilets:disposal": "flush"}, "reference": {"key": "toilets:disposal", "value": "flush"}, "name": "Flush Toilets"}, "amenity/toilets/disposal/pitlatrine": {"icon": "tnp-2009541", "fields": ["toilets/disposal", "{amenity/toilets}", "toilets/handwashing"], "moreFields": ["{amenity/toilets}"], "geometry": ["point", "vertex", "area"], "terms": ["head", "lavatory", "long drop", "outhouse", "pit toilet", "privy"], "tags": {"amenity": "toilets", "toilets:disposal": "pitlatrine"}, "reference": {"key": "toilets:disposal", "value": "pitlatrine"}, "name": "Pit Latrine"}, "amenity/townhall": {"icon": "maki-town-hall", "fields": ["name", "operator", "address", "building_area"], "moreFields": ["email", "fax", "phone", "polling_station", "smoking", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["village", "city", "government", "courthouse", "municipal"], "tags": {"amenity": "townhall"}, "name": "Town Hall"}, @@ -238,20 +238,20 @@ "amenity/vending_machine/food": {"icon": "temaki-vending_machine", "geometry": ["point"], "terms": ["food"], "tags": {"amenity": "vending_machine", "vending": "food"}, "reference": {"key": "vending", "value": "food"}, "name": "Food Vending Machine"}, "amenity/vending_machine/fuel": {"icon": "maki-fuel", "geometry": ["point"], "terms": ["petrol", "fuel", "gasoline", "propane", "diesel", "lng", "cng", "biodiesel"], "tags": {"amenity": "vending_machine", "vending": "fuel"}, "reference": {"key": "vending", "value": "fuel"}, "name": "Gas Pump", "matchScore": 0.5}, "amenity/vending_machine/ice_cream": {"icon": "temaki-vending_machine", "geometry": ["point"], "terms": ["chocolate", "ice cream", "frozen", "popsicle", "vanilla"], "tags": {"amenity": "vending_machine", "vending": "ice_cream"}, "reference": {"key": "vending", "value": "ice_cream"}, "name": "Ice Cream Vending Machine"}, - "amenity/vending_machine/newspapers": {"icon": "far-newspaper", "fields": ["vending", "operator", "fee", "payment_multi_fee", "currency_multi"], "geometry": ["point"], "terms": ["newspaper"], "tags": {"amenity": "vending_machine", "vending": "newspapers"}, "reference": {"key": "vending", "value": "newspapers"}, "name": "Newspaper Vending Machine"}, + "amenity/vending_machine/newspapers": {"icon": "far-newspaper", "fields": ["vending", "operator", "fee", "payment_multi_fee", "charge_fee", "currency_multi"], "geometry": ["point"], "terms": ["newspaper"], "tags": {"amenity": "vending_machine", "vending": "newspapers"}, "reference": {"key": "vending", "value": "newspapers"}, "name": "Newspaper Vending Machine"}, "amenity/vending_machine/parcel_pickup_dropoff": {"icon": "temaki-vending_machine", "fields": ["vending", "operator", "payment_multi", "currency_multi"], "geometry": ["point"], "terms": ["mail", "parcel", "pickup"], "tags": {"amenity": "vending_machine", "vending": "parcel_pickup;parcel_mail_in"}, "reference": {"key": "vending", "value": "parcel_pickup;parcel_mail_in"}, "name": "Parcel Pickup/Dropoff Locker"}, "amenity/vending_machine/parcel_pickup": {"icon": "temaki-vending_machine", "fields": ["vending", "operator"], "geometry": ["point"], "terms": ["amazon", "locker", "mail", "parcel", "pickup"], "tags": {"amenity": "vending_machine", "vending": "parcel_pickup"}, "reference": {"key": "vending", "value": "parcel_pickup"}, "name": "Parcel Pickup Locker"}, "amenity/vending_machine/parking_tickets": {"icon": "temaki-vending_machine", "geometry": ["point"], "terms": ["parking", "ticket"], "tags": {"amenity": "vending_machine", "vending": "parking_tickets"}, "reference": {"key": "vending", "value": "parking_tickets"}, "matchScore": 0.94, "name": "Parking Ticket Vending Machine"}, "amenity/vending_machine/public_transport_tickets": {"icon": "temaki-vending_machine", "geometry": ["point"], "terms": ["bus", "train", "ferry", "rail", "ticket", "transportation"], "tags": {"amenity": "vending_machine", "vending": "public_transport_tickets"}, "reference": {"key": "vending", "value": "public_transport_tickets"}, "name": "Transit Ticket Vending Machine"}, "amenity/vending_machine/stamps": {"icon": "temaki-vending_machine", "geometry": ["point"], "terms": ["mail", "postage", "stamp"], "tags": {"amenity": "vending_machine", "vending": "stamps"}, "reference": {"key": "vending", "value": "stamps"}, "name": "Postage Vending Machine"}, "amenity/vending_machine/sweets": {"icon": "temaki-vending_machine", "geometry": ["point"], "terms": ["candy", "gum", "chip", "pretzel", "cookie", "cracker"], "tags": {"amenity": "vending_machine", "vending": "sweets"}, "reference": {"key": "vending", "value": "sweets"}, "name": "Snack Vending Machine"}, - "amenity/veterinary": {"icon": "temaki-veterinary_care", "fields": ["name", "operator", "address", "building_area", "opening_hours"], "moreFields": ["fee", "payment_multi_fee", "website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "terms": ["pet clinic", "veterinarian", "animal hospital", "pet doctor"], "tags": {"amenity": "veterinary"}, "name": "Veterinary"}, + "amenity/veterinary": {"icon": "temaki-veterinary_care", "fields": ["name", "operator", "address", "building_area", "opening_hours"], "moreFields": ["charge_fee", "fee", "payment_multi_fee", "website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "terms": ["pet clinic", "veterinarian", "animal hospital", "pet doctor"], "tags": {"amenity": "veterinary"}, "name": "Veterinary"}, "amenity/waste_basket": {"icon": "maki-waste-basket", "fields": ["operator", "collection_times", "material", "colour"], "moreFields": ["covered", "indoor", "manufacturer"], "geometry": ["point", "vertex"], "tags": {"amenity": "waste_basket"}, "terms": ["bin", "garbage", "rubbish", "litter", "trash"], "name": "Waste Basket"}, "amenity/waste_disposal": {"icon": "fas-dumpster", "fields": ["operator", "collection_times", "access_simple"], "moreFields": ["brand", "colour", "height", "manufacturer", "material"], "geometry": ["point", "vertex", "area"], "tags": {"amenity": "waste_disposal"}, "terms": ["garbage", "rubbish", "litter", "trash"], "name": "Garbage Dumpster"}, - "amenity/waste_transfer_station": {"icon": "maki-waste-basket", "fields": ["name", "operator", "operator/type", "address", "opening_hours", "fee", "payment_multi_fee"], "moreFields": ["email", "fax", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["dump", "garbage", "recycling", "rubbish", "scrap", "trash"], "tags": {"amenity": "waste_transfer_station"}, "name": "Waste Transfer Station"}, + "amenity/waste_transfer_station": {"icon": "maki-waste-basket", "fields": ["name", "operator", "operator/type", "address", "opening_hours", "fee", "payment_multi_fee", "charge_fee"], "moreFields": ["email", "fax", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["dump", "garbage", "recycling", "rubbish", "scrap", "trash"], "tags": {"amenity": "waste_transfer_station"}, "name": "Waste Transfer Station"}, "amenity/waste/dog_excrement": {"icon": "maki-waste-basket", "fields": ["collection_times"], "geometry": ["point", "vertex", "area"], "tags": {"amenity": "waste_basket", "waste": "dog_excrement"}, "reference": {"key": "waste", "value": "dog_excrement"}, "terms": ["bin", "garbage", "rubbish", "litter", "trash", "poo", "dog"], "name": "Dog Excrement Bin"}, - "amenity/water_point": {"icon": "maki-drinking-water", "fields": ["operator", "fee", "payment_multi_fee", "opening_hours"], "geometry": ["area", "vertex", "point"], "tags": {"amenity": "water_point"}, "name": "RV Drinking Water"}, - "amenity/watering_place": {"icon": "maki-drinking-water", "fields": ["operator", "fee", "payment_multi_fee", "opening_hours"], "geometry": ["area", "vertex", "point"], "tags": {"amenity": "watering_place"}, "name": "Animal Watering Place"}, + "amenity/water_point": {"icon": "maki-drinking-water", "fields": ["operator", "fee", "payment_multi_fee", "charge_fee", "opening_hours"], "geometry": ["area", "vertex", "point"], "tags": {"amenity": "water_point"}, "name": "RV Drinking Water"}, + "amenity/watering_place": {"icon": "maki-drinking-water", "fields": ["operator", "fee", "payment_multi_fee", "charge_fee", "opening_hours"], "geometry": ["area", "vertex", "point"], "tags": {"amenity": "watering_place"}, "name": "Animal Watering Place"}, "area": {"fields": ["name"], "geometry": ["area"], "tags": {"area": "yes"}, "terms": ["polygon"], "name": "Area", "matchScore": 0.1}, "area/highway": {"fields": ["name", "area/highway", "surface"], "geometry": ["area"], "terms": ["area:highway", "edge of pavement", "highway area", "highway shape", "pavement", "road shape", "street area"], "tags": {"area:highway": "*"}, "name": "Road Surface"}, "attraction/amusement_ride": {"icon": "maki-amusement-park", "geometry": ["point", "area"], "terms": ["theme park", "carnival ride"], "tags": {"attraction": "amusement_ride"}, "name": "Amusement Ride"}, @@ -267,7 +267,7 @@ "attraction/river_rafting": {"icon": "maki-ferry", "geometry": ["point", "line"], "terms": ["theme park", "aquatic park", "water park", "rafting simulator", "river rafting ride", "river rapids ride"], "tags": {"attraction": "river_rafting"}, "name": "River Rafting"}, "attraction/roller_coaster": {"icon": "maki-amusement-park", "geometry": ["point", "area"], "terms": ["theme park", "amusement ride"], "tags": {"attraction": "roller_coaster"}, "name": "Roller Coaster"}, "attraction/summer_toboggan": {"icon": "temaki-sledding", "geometry": ["line"], "terms": ["alpine slide", "mountain coaster"], "tags": {"attraction": "summer_toboggan"}, "name": "Summer Toboggan"}, - "attraction/train": {"icon": "maki-rail", "fields": ["{attraction}", "fee"], "geometry": ["point", "line"], "terms": ["theme park", "rackless train", "road train", "Tschu-Tschu train", "dotto train", "park train"], "tags": {"attraction": "train"}, "name": "Tourist Train"}, + "attraction/train": {"icon": "maki-rail", "fields": ["{attraction}", "fee", "charge_fee"], "geometry": ["point", "line"], "terms": ["theme park", "rackless train", "road train", "Tschu-Tschu train", "dotto train", "park train"], "tags": {"attraction": "train"}, "name": "Tourist Train"}, "attraction/water_slide": {"icon": "fas-swimmer", "fields": ["{attraction}", "height"], "geometry": ["line", "area"], "terms": ["theme park", "aquatic park", "water park", "flumes", "water chutes", "hydroslides"], "tags": {"attraction": "water_slide"}, "name": "Water Slide"}, "barrier": {"icon": "maki-roadblock", "geometry": ["point", "vertex", "line", "area"], "tags": {"barrier": "*"}, "fields": ["barrier"], "name": "Barrier", "matchScore": 0.4}, "barrier/entrance": {"icon": "maki-entrance-alt1", "geometry": ["vertex"], "tags": {"barrier": "entrance"}, "name": "Entrance", "searchable": false}, @@ -492,14 +492,14 @@ "highway/milestone": {"icon": "temaki-milestone", "geometry": ["point", "vertex"], "fields": ["distance", "direction_vertex"], "tags": {"highway": "milestone"}, "terms": ["mile marker", "mile post", "mile stone", "mileage marker", "milemarker", "milepost"], "name": "Highway Milestone"}, "highway/mini_roundabout": {"icon": "maki-circle-stroked", "geometry": ["vertex"], "terms": ["traffic circle"], "tags": {"highway": "mini_roundabout"}, "fields": ["direction_clock"], "name": "Mini-Roundabout"}, "highway/motorway_junction": {"icon": "temaki-junction", "fields": ["ref_highway_junction", "name"], "geometry": ["vertex"], "tags": {"highway": "motorway_junction"}, "terms": ["exit"], "name": "Motorway Junction / Exit"}, - "highway/motorway_link": {"icon": "iD-highway-motorway-link", "fields": ["destination_oneway", "destination/ref_oneway", "junction/ref_oneway", "oneway", "maxspeed", "lanes", "surface", "structure", "access"], "moreFields": ["covered", "destination/symbol_oneway", "incline", "junction_line", "lit", "maxheight", "maxspeed/advisory", "maxweight_bridge", "name", "ref_road_number", "smoothness", "toll"], "geometry": ["line"], "tags": {"highway": "motorway_link"}, "addTags": {"highway": "motorway_link", "oneway": "yes"}, "terms": ["exit", "ramp", "road", "street", "on ramp", "off ramp"], "name": "Motorway Link"}, - "highway/motorway": {"icon": "iD-highway-motorway", "fields": ["name", "ref_road_number", "oneway_yes", "maxspeed", "lanes", "surface", "structure", "access"], "moreFields": ["covered", "incline", "junction_line", "lit", "maxheight", "maxweight_bridge", "minspeed", "smoothness", "toll"], "geometry": ["line"], "tags": {"highway": "motorway"}, "terms": ["autobahn", "expressway", "freeway", "highway", "interstate", "parkway", "road", "street", "thruway", "turnpike"], "name": "Motorway"}, + "highway/motorway_link": {"icon": "iD-highway-motorway-link", "fields": ["destination_oneway", "destination/ref_oneway", "junction/ref_oneway", "oneway", "maxspeed", "lanes", "surface", "structure", "access"], "moreFields": ["charge_toll", "covered", "destination/symbol_oneway", "incline", "junction_line", "lit", "maxheight", "maxspeed/advisory", "maxweight_bridge", "name", "ref_road_number", "smoothness", "toll"], "geometry": ["line"], "tags": {"highway": "motorway_link"}, "addTags": {"highway": "motorway_link", "oneway": "yes"}, "terms": ["exit", "ramp", "road", "street", "on ramp", "off ramp"], "name": "Motorway Link"}, + "highway/motorway": {"icon": "iD-highway-motorway", "fields": ["name", "ref_road_number", "oneway_yes", "maxspeed", "lanes", "surface", "structure", "access"], "moreFields": ["charge_toll", "covered", "incline", "junction_line", "lit", "maxheight", "maxweight_bridge", "minspeed", "smoothness", "toll"], "geometry": ["line"], "tags": {"highway": "motorway"}, "terms": ["autobahn", "expressway", "freeway", "highway", "interstate", "parkway", "road", "street", "thruway", "turnpike"], "name": "Motorway"}, "highway/passing_place": {"icon": "maki-circle-stroked", "geometry": ["vertex"], "tags": {"highway": "passing_place"}, "terms": ["turnout, pullout"], "name": "Passing Place"}, "highway/path": {"icon": "iD-other-line", "fields": ["name", "surface", "width", "structure", "access", "incline"], "moreFields": ["wheelchair", "lit", "smoothness", "trail_visibility", "sac_scale", "maxweight_bridge", "mtb/scale", "mtb/scale/uphill", "mtb/scale/imba", "horse_scale", "covered", "ref", "dog"], "geometry": ["line"], "terms": ["hike", "hiking", "trackway", "trail", "walk"], "tags": {"highway": "path"}, "name": "Path"}, "highway/pedestrian_area": {"icon": "temaki-pedestrian", "fields": ["name", "surface", "lit", "width", "structure", "access"], "geometry": ["area"], "tags": {"highway": "pedestrian", "area": "yes"}, "terms": ["center", "centre", "plaza", "quad", "square", "walkway"], "name": "Pedestrian Area"}, "highway/pedestrian_line": {"icon": "temaki-pedestrian", "fields": ["name", "surface", "lit", "width", "oneway", "structure", "access"], "moreFields": ["covered", "incline", "maxweight_bridge", "smoothness"], "geometry": ["line"], "tags": {"highway": "pedestrian"}, "terms": ["center", "centre", "plaza", "quad", "square", "walkway"], "name": "Pedestrian Street"}, - "highway/primary_link": {"icon": "iD-highway-primary-link", "fields": ["destination_oneway", "destination/ref_oneway", "oneway", "maxspeed", "lanes", "surface", "structure", "access"], "moreFields": ["covered", "cycleway", "destination/symbol_oneway", "flood_prone", "incline", "junction/ref_oneway", "junction_line", "lit", "maxheight", "maxspeed/advisory", "maxweight_bridge", "name", "oneway/bicycle", "ref_road_number", "smoothness", "toll", "trolley_wire"], "geometry": ["line"], "tags": {"highway": "primary_link"}, "terms": ["on ramp", "off ramp", "ramp", "road", "street"], "name": "Primary Link"}, - "highway/primary": {"icon": "iD-highway-primary", "fields": ["name", "oneway", "maxspeed", "lanes", "surface", "structure", "ref_road_number", "access"], "moreFields": ["covered", "cycleway", "flood_prone", "incline", "junction_line", "lit", "maxheight", "maxspeed/advisory", "maxweight_bridge", "oneway/bicycle", "smoothness", "toll", "trolley_wire"], "geometry": ["line"], "tags": {"highway": "primary"}, "terms": ["road", "street"], "name": "Primary Road"}, + "highway/primary_link": {"icon": "iD-highway-primary-link", "fields": ["destination_oneway", "destination/ref_oneway", "oneway", "maxspeed", "lanes", "surface", "structure", "access"], "moreFields": ["charge_toll", "covered", "cycleway", "destination/symbol_oneway", "flood_prone", "incline", "junction/ref_oneway", "junction_line", "lit", "maxheight", "maxspeed/advisory", "maxweight_bridge", "name", "oneway/bicycle", "ref_road_number", "smoothness", "toll", "trolley_wire"], "geometry": ["line"], "tags": {"highway": "primary_link"}, "terms": ["on ramp", "off ramp", "ramp", "road", "street"], "name": "Primary Link"}, + "highway/primary": {"icon": "iD-highway-primary", "fields": ["name", "oneway", "maxspeed", "lanes", "surface", "structure", "ref_road_number", "access"], "moreFields": ["charge_toll", "covered", "cycleway", "flood_prone", "incline", "junction_line", "lit", "maxheight", "maxspeed/advisory", "maxweight_bridge", "oneway/bicycle", "smoothness", "toll", "trolley_wire"], "geometry": ["line"], "tags": {"highway": "primary"}, "terms": ["road", "street"], "name": "Primary Road"}, "highway/raceway": {"icon": "fas-flag-checkered", "fields": ["name", "oneway", "surface", "sport_racing_motor", "lit", "width", "lanes", "structure"], "geometry": ["point", "line", "area"], "tags": {"highway": "raceway"}, "addTags": {"highway": "raceway", "sport": "motor"}, "terms": ["auto*", "formula one", "kart", "motocross", "nascar", "race*", "track"], "name": "Racetrack (Motorsport)"}, "highway/residential": {"icon": "iD-highway-residential", "fields": ["name", "oneway", "maxspeed", "lanes", "surface", "structure", "access"], "moreFields": ["covered", "cycleway", "flood_prone", "incline", "junction_line", "lit", "oneway/bicycle", "maxheight", "maxspeed/advisory", "maxweight_bridge", "smoothness", "trolley_wire"], "geometry": ["line"], "tags": {"highway": "residential"}, "terms": ["road", "street"], "name": "Residential Road"}, "highway/rest_area": {"icon": "maki-car", "fields": ["name", "operator", "opening_hours"], "moreFields": ["address", "website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "vertex", "area"], "tags": {"highway": "rest_area"}, "terms": ["rest stop"], "name": "Rest Area"}, @@ -523,9 +523,9 @@ "highway/track": {"icon": "fas-truck-monster", "fields": ["name", "tracktype", "surface", "width", "structure", "access", "incline", "smoothness"], "moreFields": ["covered", "flood_prone", "horse_scale", "maxweight_bridge", "mtb/scale", "mtb/scale/uphill", "mtb/scale/imba"], "geometry": ["line"], "tags": {"highway": "track"}, "terms": ["woods road", "forest road", "logging road", "fire road", "farm road", "agricultural road", "ranch road", "carriage road", "primitive", "unmaintained", "rut", "offroad", "4wd", "4x4", "four wheel drive", "atv", "quad", "jeep", "double track", "two track"], "name": "Unmaintained Track Road"}, "highway/traffic_mirror": {"icon": "maki-circle-stroked", "geometry": ["point", "vertex"], "fields": ["direction"], "tags": {"highway": "traffic_mirror"}, "terms": ["blind spot", "convex", "corner", "curved", "roadside", "round", "safety", "sphere", "visibility"], "name": "Traffic Mirror"}, "highway/traffic_signals": {"icon": "temaki-traffic_signals", "geometry": ["vertex"], "tags": {"highway": "traffic_signals"}, "fields": ["traffic_signals", "traffic_signals/direction"], "terms": ["light", "stoplight", "traffic light"], "name": "Traffic Signals"}, - "highway/trailhead": {"icon": "fas-hiking", "fields": ["name", "operator", "elevation", "address", "access_simple", "fee", "payment_multi_fee"], "moreFields": ["opening_hours"], "geometry": ["vertex"], "tags": {"highway": "trailhead"}, "terms": ["hiking", "mile zero", "mountain biking", "mountaineering", "trail endpoint", "trail start", "staging area", "trekking"], "name": "Trailhead"}, + "highway/trailhead": {"icon": "fas-hiking", "fields": ["name", "operator", "elevation", "address", "access_simple", "fee", "payment_multi_fee", "charge_fee"], "moreFields": ["opening_hours"], "geometry": ["vertex"], "tags": {"highway": "trailhead"}, "terms": ["hiking", "mile zero", "mountain biking", "mountaineering", "trail endpoint", "trail start", "staging area", "trekking"], "name": "Trailhead"}, "highway/trunk_link": {"icon": "iD-highway-trunk-link", "fields": ["{highway/motorway_link}"], "moreFields": ["{highway/motorway_link}"], "geometry": ["line"], "tags": {"highway": "trunk_link"}, "terms": ["on ramp", "off ramp", "ramp", "road", "street"], "name": "Trunk Link"}, - "highway/trunk": {"icon": "iD-highway-trunk", "fields": ["name", "ref_road_number", "oneway", "maxspeed", "lanes", "surface", "structure", "access"], "moreFields": ["covered", "incline", "junction_line", "lit", "maxheight", "minspeed", "maxweight_bridge", "smoothness", "toll"], "geometry": ["line"], "tags": {"highway": "trunk"}, "terms": ["road", "street"], "name": "Trunk Road"}, + "highway/trunk": {"icon": "iD-highway-trunk", "fields": ["name", "ref_road_number", "oneway", "maxspeed", "lanes", "surface", "structure", "access"], "moreFields": ["charge_toll", "covered", "incline", "junction_line", "lit", "maxheight", "minspeed", "maxweight_bridge", "smoothness", "toll"], "geometry": ["line"], "tags": {"highway": "trunk"}, "terms": ["road", "street"], "name": "Trunk Road"}, "highway/turning_circle": {"icon": "maki-circle-stroked", "geometry": ["vertex"], "tags": {"highway": "turning_circle"}, "terms": ["cul-de-sac"], "name": "Turning Circle"}, "highway/turning_loop": {"icon": "maki-circle", "geometry": ["vertex"], "tags": {"highway": "turning_loop"}, "terms": ["cul-de-sac"], "name": "Turning Loop (Island)"}, "highway/unclassified": {"icon": "iD-highway-unclassified", "fields": ["{highway/residential}"], "moreFields": ["{highway/residential}"], "geometry": ["line"], "tags": {"highway": "unclassified"}, "terms": ["road", "street"], "name": "Minor/Unclassified Road"}, @@ -604,19 +604,19 @@ "leisure/adult_gaming_centre": {"icon": "temaki-casino", "fields": ["{amenity/casino}"], "moreFields": ["{amenity/casino}"], "geometry": ["point", "area"], "terms": ["gambling", "slot machine"], "tags": {"leisure": "adult_gaming_centre"}, "name": "Adult Gaming Center"}, "leisure/amusement_arcade": {"icon": "maki-gaming", "fields": ["name", "operator", "address", "building_area"], "moreFields": ["air_conditioning", "opening_hours", "payment_multi", "smoking", "website", "phone", "email", "fax"], "geometry": ["point", "area"], "terms": ["pay-to-play games", "video games", "driving simulators", "pinball machines"], "tags": {"leisure": "amusement_arcade"}, "name": "Amusement Arcade"}, "leisure/bandstand": {"icon": "maki-music", "fields": ["name", "building_area", "operator"], "moreFields": ["website"], "geometry": ["point", "area"], "tags": {"leisure": "bandstand"}, "name": "Bandstand"}, - "leisure/beach_resort": {"icon": "maki-beach", "fields": ["name", "address", "opening_hours", "fee", "payment_multi_fee"], "moreFields": ["smoking", "website", "phone", "email", "fax"], "geometry": ["point", "area"], "tags": {"leisure": "beach_resort"}, "name": "Beach Resort"}, + "leisure/beach_resort": {"icon": "maki-beach", "fields": ["name", "address", "opening_hours", "fee", "payment_multi_fee", "charge_fee"], "moreFields": ["smoking", "website", "phone", "email", "fax"], "geometry": ["point", "area"], "tags": {"leisure": "beach_resort"}, "name": "Beach Resort"}, "leisure/bird_hide": {"icon": "temaki-binoculars", "fields": ["name", "building_area", "address", "opening_hours"], "moreFields": ["website"], "geometry": ["point", "area"], "tags": {"leisure": "bird_hide"}, "terms": ["machan", "ornithology"], "name": "Bird Hide"}, "leisure/bleachers": {"geometry": ["point", "area"], "tags": {"leisure": "bleachers"}, "terms": ["crowd", "bench", "sports", "stand", "stands", "seat", "seating"], "name": "Bleachers"}, "leisure/bowling_alley": {"icon": "temaki-bowling", "fields": ["name", "operator", "address", "building_area"], "moreFields": ["air_conditioning", "opening_hours", "payment_multi", "smoking", "website", "phone", "email", "fax"], "geometry": ["point", "area"], "terms": ["bowling center"], "tags": {"leisure": "bowling_alley"}, "name": "Bowling Alley"}, "leisure/common": {"icon": "temaki-pedestrian", "fields": ["name"], "moreFields": ["website"], "geometry": ["point", "area"], "terms": ["open space"], "tags": {"leisure": "common"}, "name": "Common"}, "leisure/dance": {"icon": "maki-music", "fields": ["name", "operator", "address", "building_area", "dance/style"], "moreFields": ["opening_hours", "payment_multi", "website", "phone", "email", "fax"], "geometry": ["point", "area"], "terms": ["ballroom", "jive", "swing", "tango", "waltz"], "tags": {"leisure": "dance"}, "name": "Dance Hall"}, "leisure/dancing_school": {"icon": "maki-music", "fields": ["name", "operator", "address", "building_area", "dance/style"], "moreFields": ["opening_hours", "payment_multi", "website", "phone", "email", "fax"], "geometry": ["point", "area"], "terms": ["jive", "swing", "tango", "waltz", "dance teaching"], "tags": {"leisure": "dance", "dance:teaching": "yes"}, "reference": {"key": "leisure", "value": "dance"}, "name": "Dance School"}, - "leisure/disc_golf_course": {"icon": "temaki-disc_golf_basket", "fields": ["name", "operator", "access_simple", "fee", "payment_multi_fee", "opening_hours"], "moreFields": ["address", "dog", "email", "fax", "lit", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"leisure": "disc_golf_course"}, "addTags": {"leisure": "disc_golf_course", "sport": "disc_golf"}, "terms": ["disk golf", "frisbee golf", "flying disc golf", "frolf", "ultimate"], "name": "Disc Golf Course"}, + "leisure/disc_golf_course": {"icon": "temaki-disc_golf_basket", "fields": ["name", "operator", "access_simple", "fee", "payment_multi_fee", "charge_fee", "opening_hours"], "moreFields": ["address", "dog", "email", "fax", "lit", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"leisure": "disc_golf_course"}, "addTags": {"leisure": "disc_golf_course", "sport": "disc_golf"}, "terms": ["disk golf", "frisbee golf", "flying disc golf", "frolf", "ultimate"], "name": "Disc Golf Course"}, "leisure/dog_park": {"icon": "maki-dog-park", "fields": ["name"], "moreFields": ["website", "phone", "email", "fax"], "geometry": ["point", "area"], "terms": [], "tags": {"leisure": "dog_park"}, "name": "Dog Park"}, - "leisure/escape_game": {"icon": "fas-puzzle-piece", "fields": ["name", "address", "building_area", "opening_hours", "website", "fee", "payment_multi_fee", "internet_access", "internet_access/fee", "internet_access/ssid"], "moreFields": ["air_conditioning", "email", "fax", "phone", "smoking", "wheelchair"], "geometry": ["point", "area"], "terms": ["escape game", "escape the room", "puzzle room", "quest room"], "tags": {"leisure": "escape_game"}, "name": "Escape Room"}, + "leisure/escape_game": {"icon": "fas-puzzle-piece", "fields": ["name", "address", "building_area", "opening_hours", "website", "fee", "payment_multi_fee", "charge_fee", "internet_access", "internet_access/fee", "internet_access/ssid"], "moreFields": ["air_conditioning", "email", "fax", "phone", "smoking", "wheelchair"], "geometry": ["point", "area"], "terms": ["escape game", "escape the room", "puzzle room", "quest room"], "tags": {"leisure": "escape_game"}, "name": "Escape Room"}, "leisure/firepit": {"icon": "maki-fire-station", "fields": ["access_simple"], "geometry": ["point", "area"], "tags": {"leisure": "firepit"}, "terms": ["fireplace", "campfire"], "name": "Firepit"}, "leisure/fishing": {"icon": "fas-fish", "fields": ["name", "access_simple", "fishing"], "geometry": ["vertex", "point", "area"], "tags": {"leisure": "fishing"}, "terms": ["angler"], "name": "Fishing Spot"}, - "leisure/fitness_centre": {"icon": "fas-dumbbell", "fields": ["name", "sport", "address", "building_area"], "moreFields": ["opening_hours", "fee", "payment_multi", "website", "phone", "email", "fax"], "geometry": ["point", "area"], "tags": {"leisure": "fitness_centre"}, "terms": ["health", "gym", "leisure", "studio"], "name": "Gym / Fitness Center"}, + "leisure/fitness_centre": {"icon": "fas-dumbbell", "fields": ["name", "sport", "address", "building_area"], "moreFields": ["charge_fee", "opening_hours", "fee", "payment_multi", "website", "phone", "email", "fax"], "geometry": ["point", "area"], "tags": {"leisure": "fitness_centre"}, "terms": ["health", "gym", "leisure", "studio"], "name": "Gym / Fitness Center"}, "leisure/fitness_centre/yoga": {"icon": "maki-pitch", "geometry": ["point", "area"], "terms": ["studio", "asanas", "modern yoga", "meditation"], "tags": {"leisure": "fitness_centre", "sport": "yoga"}, "reference": {"key": "sport", "value": "yoga"}, "name": "Yoga Studio"}, "leisure/fitness_station": {"icon": "maki-pitch", "fields": ["fitness_station", "ref"], "moreFields": ["opening_hours"], "geometry": ["point", "area"], "tags": {"leisure": "fitness_station"}, "addTags": {"leisure": "fitness_station", "sport": "fitness"}, "reference": {"key": "leisure", "value": "fitness_station"}, "terms": ["exercise", "fitness", "gym", "trim trail"], "name": "Outdoor Fitness Station"}, "leisure/fitness_station/balance_beam": {"icon": "maki-pitch", "geometry": ["point", "area"], "tags": {"leisure": "fitness_station", "fitness_station": "balance_beam"}, "addTags": {"leisure": "fitness_station", "fitness_station": "balance_beam", "sport": "fitness"}, "reference": {"key": "leisure", "value": "fitness_station"}, "terms": ["balance", "exercise", "fitness", "gym", "trim trail"], "name": "Exercise Balance Beam"}, @@ -630,19 +630,19 @@ "leisure/fitness_station/sign": {"icon": "maki-pitch", "geometry": ["point", "area"], "tags": {"leisure": "fitness_station", "fitness_station": "sign"}, "addTags": {"leisure": "fitness_station", "fitness_station": "sign", "sport": "fitness"}, "reference": {"key": "leisure", "value": "fitness_station"}, "terms": ["exercise", "fitness", "gym", "trim trail"], "name": "Exercise Instruction Sign"}, "leisure/fitness_station/sit-up": {"icon": "maki-pitch", "geometry": ["point", "area"], "tags": {"leisure": "fitness_station", "fitness_station": "sit-up"}, "addTags": {"leisure": "fitness_station", "fitness_station": "sit-up", "sport": "fitness"}, "reference": {"key": "leisure", "value": "fitness_station"}, "terms": ["crunch", "exercise", "fitness", "gym", "situp", "sit up", "trim trail"], "name": "Sit-Up Station"}, "leisure/fitness_station/stairs": {"icon": "maki-pitch", "geometry": ["point", "area"], "tags": {"leisure": "fitness_station", "fitness_station": "stairs"}, "addTags": {"leisure": "fitness_station", "fitness_station": "stairs", "sport": "fitness"}, "reference": {"key": "leisure", "value": "fitness_station"}, "terms": ["exercise", "fitness", "gym", "steps", "trim trail"], "name": "Exercise Stairs"}, - "leisure/garden": {"icon": "maki-garden", "fields": ["name", "operator", "access_simple", "fee", "payment_multi_fee"], "moreFields": ["website", "phone", "email", "fax"], "geometry": ["point", "vertex", "area"], "tags": {"leisure": "garden"}, "name": "Garden"}, + "leisure/garden": {"icon": "maki-garden", "fields": ["name", "operator", "access_simple", "fee", "payment_multi_fee", "charge_fee"], "moreFields": ["website", "phone", "email", "fax"], "geometry": ["point", "vertex", "area"], "tags": {"leisure": "garden"}, "name": "Garden"}, "leisure/golf_course": {"icon": "maki-golf", "fields": ["name", "operator", "address", "opening_hours"], "moreFields": ["payment_multi", "website", "phone", "email", "fax"], "geometry": ["point", "area"], "terms": ["links"], "tags": {"leisure": "golf_course"}, "name": "Golf Course"}, - "leisure/hackerspace": {"icon": "fas-code", "fields": ["name", "address", "building_area", "opening_hours", "website", "fee", "payment_multi_fee", "internet_access", "internet_access/fee", "internet_access/ssid"], "moreFields": ["air_conditioning", "email", "fax", "phone", "smoking", "wheelchair"], "geometry": ["point", "area"], "terms": ["makerspace", "hackspace", "hacklab"], "tags": {"leisure": "hackerspace"}, "name": "Hackerspace"}, + "leisure/hackerspace": {"icon": "fas-code", "fields": ["name", "address", "building_area", "opening_hours", "website", "fee", "payment_multi_fee", "charge_fee", "internet_access", "internet_access/fee", "internet_access/ssid"], "moreFields": ["air_conditioning", "email", "fax", "phone", "smoking", "wheelchair"], "geometry": ["point", "area"], "terms": ["makerspace", "hackspace", "hacklab"], "tags": {"leisure": "hackerspace"}, "name": "Hackerspace"}, "leisure/horse_riding": {"icon": "maki-horse-riding", "fields": ["name", "access_simple", "operator", "address", "building"], "moreFields": ["opening_hours", "payment_multi", "website", "phone", "email", "fax"], "geometry": ["point", "area"], "terms": ["equestrian", "stable"], "tags": {"leisure": "horse_riding"}, "name": "Horseback Riding Facility"}, "leisure/ice_rink": {"icon": "fas-skating", "fields": ["name", "seasonal", "sport_ice", "operator", "address", "building"], "moreFields": ["opening_hours", "payment_multi", "website", "phone", "email", "fax"], "geometry": ["point", "area"], "terms": ["hockey", "skating", "curling"], "tags": {"leisure": "ice_rink"}, "name": "Ice Rink"}, - "leisure/marina": {"icon": "tnp-2009223", "fields": ["name", "operator", "capacity", "fee", "payment_multi_fee", "sanitary_dump_station", "power_supply"], "moreFields": ["address", "internet_access", "internet_access/fee", "internet_access/ssid", "seamark/type", "website", "phone", "email", "fax"], "geometry": ["point", "vertex", "area"], "terms": ["boat"], "tags": {"leisure": "marina"}, "name": "Marina"}, - "leisure/miniature_golf": {"icon": "maki-golf", "fields": ["name", "operator", "address", "opening_hours", "fee", "payment_multi_fee"], "moreFields": ["website", "phone", "email", "fax"], "geometry": ["point", "area"], "terms": ["crazy golf", "mini golf", "putt-putt"], "tags": {"leisure": "miniature_golf"}, "name": "Miniature Golf"}, + "leisure/marina": {"icon": "tnp-2009223", "fields": ["name", "operator", "capacity", "fee", "payment_multi_fee", "charge_fee", "sanitary_dump_station", "power_supply"], "moreFields": ["address", "internet_access", "internet_access/fee", "internet_access/ssid", "seamark/type", "website", "phone", "email", "fax"], "geometry": ["point", "vertex", "area"], "terms": ["boat"], "tags": {"leisure": "marina"}, "name": "Marina"}, + "leisure/miniature_golf": {"icon": "maki-golf", "fields": ["name", "operator", "address", "opening_hours", "fee", "payment_multi_fee", "charge_fee"], "moreFields": ["website", "phone", "email", "fax"], "geometry": ["point", "area"], "terms": ["crazy golf", "mini golf", "putt-putt"], "tags": {"leisure": "miniature_golf"}, "name": "Miniature Golf"}, "leisure/nature_reserve": {"icon": "maki-park", "geometry": ["point", "area"], "fields": ["name", "operator", "address", "opening_hours"], "moreFields": ["dog", "website", "phone", "email", "fax"], "tags": {"leisure": "nature_reserve"}, "terms": ["protected", "wildlife"], "name": "Nature Reserve"}, "leisure/outdoor_seating": {"icon": "maki-picnic-site", "geometry": ["point", "area"], "fields": ["name", "operator"], "terms": ["al fresco", "beer garden", "dining", "cafe", "restaurant", "pub", "bar", "patio"], "tags": {"leisure": "outdoor_seating"}, "name": "Outdoor Seating Area"}, "leisure/park": {"icon": "maki-park", "fields": ["name", "operator", "address", "opening_hours"], "moreFields": ["dog", "smoking", "website", "phone", "email", "fax"], "geometry": ["point", "area"], "terms": ["esplanade", "estate", "forest", "garden", "grass", "green", "grounds", "lawn", "lot", "meadow", "parkland", "place", "playground", "plaza", "pleasure garden", "recreation area", "square", "tract", "village green", "woodland"], "tags": {"leisure": "park"}, "name": "Park"}, "leisure/picnic_table": {"icon": "maki-picnic-site", "fields": ["material", "lit", "bench"], "geometry": ["point"], "tags": {"leisure": "picnic_table"}, "terms": ["bench"], "name": "Picnic Table"}, "leisure/picnic_table/chess": {"icon": "fas-chess-pawn", "geometry": ["point"], "tags": {"leisure": "picnic_table", "sport": "chess"}, "reference": {"key": "sport", "value": "chess"}, "terms": ["bench", "chess board", "checkerboard", "checkers", "chequerboard", "game table"], "name": "Chess Table"}, - "leisure/pitch": {"icon": "maki-pitch", "fields": ["name", "sport", "access_simple", "surface", "lit"], "moreFields": ["covered", "fee", "indoor", "payment_multi_fee"], "geometry": ["point", "area"], "tags": {"leisure": "pitch"}, "terms": ["field"], "name": "Sport Pitch"}, + "leisure/pitch": {"icon": "maki-pitch", "fields": ["name", "sport", "access_simple", "surface", "lit"], "moreFields": ["charge_fee", "covered", "fee", "indoor", "payment_multi_fee"], "geometry": ["point", "area"], "tags": {"leisure": "pitch"}, "terms": ["field"], "name": "Sport Pitch"}, "leisure/pitch/american_football": {"icon": "maki-american-football", "geometry": ["point", "area"], "tags": {"leisure": "pitch", "sport": "american_football"}, "reference": {"key": "sport", "value": "american_football"}, "terms": ["football", "gridiron"], "name": "American Football Field"}, "leisure/pitch/australian_football": {"icon": "maki-american-football", "geometry": ["point", "area"], "tags": {"leisure": "pitch", "sport": "australian_football"}, "reference": {"key": "sport", "value": "australian_football"}, "terms": ["Aussie", "AFL", "football"], "name": "Australian Football Field"}, "leisure/pitch/badminton": {"icon": "maki-tennis", "fields": ["{leisure/pitch}", "access_simple"], "geometry": ["point", "area"], "tags": {"leisure": "pitch", "sport": "badminton"}, "reference": {"key": "sport", "value": "badminton"}, "terms": [], "name": "Badminton Court"}, @@ -667,14 +667,14 @@ "leisure/pitch/volleyball": {"icon": "maki-volleyball", "geometry": ["point", "area"], "tags": {"leisure": "pitch", "sport": "volleyball"}, "reference": {"key": "sport", "value": "volleyball"}, "terms": [], "name": "Volleyball Court"}, "leisure/playground": {"icon": "maki-playground", "fields": ["name", "operator", "surface", "playground/max_age", "playground/min_age", "access_simple"], "geometry": ["point", "area"], "terms": ["jungle gym", "play area"], "tags": {"leisure": "playground"}, "name": "Playground"}, "leisure/resort": {"icon": "maki-lodging", "fields": ["name", "operator", "resort", "address", "opening_hours"], "moreFields": ["access_simple", "email", "fax", "internet_access", "internet_access/fee", "internet_access/ssid", "payment_multi", "phone", "website"], "geometry": ["point", "area"], "tags": {"leisure": "resort"}, "terms": ["recreation center", "sanatorium", "ski and snowboard resort", "vacation resort", "winter sports resort"], "name": "Resort"}, - "leisure/sauna": {"icon": "fas-thermometer-three-quarters", "fields": ["name", "operator", "address", "opening_hours", "access_simple", "fee", "payment_multi_fee"], "moreFields": ["website", "phone", "email", "fax"], "geometry": ["point", "area"], "tags": {"leisure": "sauna"}, "name": "Sauna"}, + "leisure/sauna": {"icon": "fas-thermometer-three-quarters", "fields": ["name", "operator", "address", "opening_hours", "access_simple", "fee", "payment_multi_fee", "charge_fee"], "moreFields": ["website", "phone", "email", "fax"], "geometry": ["point", "area"], "tags": {"leisure": "sauna"}, "name": "Sauna"}, "leisure/slipway_point": {"icon": "maki-slipway", "fields": ["{leisure/slipway}"], "moreFields": ["{leisure/slipway}"], "geometry": ["point", "vertex"], "terms": ["boat launch", "boat ramp", "boat landing"], "tags": {"leisure": "slipway"}, "name": "Slipway"}, - "leisure/slipway": {"icon": "maki-slipway", "fields": ["name", "surface", "access_simple", "fee", "payment_multi_fee", "lanes"], "moreFields": ["lit", "opening_hours", "seamark/type", "width"], "geometry": ["line"], "terms": ["boat launch", "boat ramp", "boat landing"], "tags": {"leisure": "slipway"}, "addTags": {"leisure": "slipway", "highway": "service", "service": "slipway"}, "matchScore": 1.1, "name": "Slipway"}, - "leisure/sports_centre": {"icon": "maki-pitch", "fields": ["name", "sport", "building", "address", "fee", "payment_multi_fee"], "moreFields": ["opening_hours", "website", "phone", "email", "fax"], "geometry": ["point", "area"], "tags": {"leisure": "sports_centre"}, "terms": [], "name": "Sports Center / Complex"}, + "leisure/slipway": {"icon": "maki-slipway", "fields": ["name", "surface", "access_simple", "fee", "payment_multi_fee", "charge_fee", "lanes"], "moreFields": ["lit", "opening_hours", "seamark/type", "width"], "geometry": ["line"], "terms": ["boat launch", "boat ramp", "boat landing"], "tags": {"leisure": "slipway"}, "addTags": {"leisure": "slipway", "highway": "service", "service": "slipway"}, "matchScore": 1.1, "name": "Slipway"}, + "leisure/sports_centre": {"icon": "maki-pitch", "fields": ["name", "sport", "building", "address", "fee", "payment_multi_fee", "charge_fee"], "moreFields": ["opening_hours", "website", "phone", "email", "fax"], "geometry": ["point", "area"], "tags": {"leisure": "sports_centre"}, "terms": [], "name": "Sports Center / Complex"}, "leisure/sports_centre/climbing": {"icon": "temaki-abseiling", "geometry": ["point", "area"], "terms": ["abseiling", "artificial climbing wall", "belaying", "bouldering", "rock climbing facility", "indoor rock wall", "rappeling", "rock gym", "ropes"], "tags": {"leisure": "sports_centre", "sport": "climbing"}, "reference": {"key": "sport", "value": "climbing"}, "name": "Climbing Gym"}, "leisure/sports_centre/swimming": {"icon": "fas-swimmer", "geometry": ["point", "area"], "terms": ["dive", "water"], "tags": {"leisure": "sports_centre", "sport": "swimming"}, "reference": {"key": "sport", "value": "swimming"}, "name": "Swimming Pool Facility"}, "leisure/stadium": {"icon": "maki-pitch", "fields": ["name", "sport", "address"], "moreFields": ["website", "phone", "email", "fax"], "geometry": ["point", "area"], "tags": {"leisure": "stadium"}, "name": "Stadium"}, - "leisure/swimming_area": {"icon": "fas-swimmer", "fields": ["name", "access_simple", "supervised", "fee", "payment_multi_fee", "lit"], "moreFields": ["opening_hours", "operator"], "geometry": ["area"], "terms": ["dive", "water", "aquatics"], "tags": {"leisure": "swimming_area"}, "name": "Natural Swimming Area"}, + "leisure/swimming_area": {"icon": "fas-swimmer", "fields": ["name", "access_simple", "supervised", "fee", "payment_multi_fee", "charge_fee", "lit"], "moreFields": ["opening_hours", "operator"], "geometry": ["area"], "terms": ["dive", "water", "aquatics"], "tags": {"leisure": "swimming_area"}, "name": "Natural Swimming Area"}, "leisure/swimming_pool": {"icon": "fas-swimming-pool", "fields": ["name", "access_simple", "lit", "location_pool", "length", "swimming_pool"], "moreFields": ["address", "opening_hours", "operator"], "geometry": ["point", "area"], "terms": ["dive", "water", "aquatics"], "tags": {"leisure": "swimming_pool"}, "name": "Swimming Pool"}, "leisure/track": {"icon": "iD-other-line", "fields": ["surface", "sport_racing_nonmotor", "lit", "width", "lanes"], "moreFields": ["access", "covered", "indoor"], "geometry": ["point", "line", "area"], "tags": {"leisure": "track"}, "terms": ["cycle", "dog", "greyhound", "horse", "race*", "track"], "name": "Racetrack (Non-Motorsport)"}, "leisure/track/cycling_point": {"icon": "maki-bicycle", "fields": ["{leisure/track/cycling}"], "geometry": ["point"], "tags": {"leisure": "track", "sport": "cycling"}, "terms": ["bicycle track", "bicycling track", "cycle racetrack", "velodrome"], "name": "Cycling Track"}, @@ -753,7 +753,7 @@ "natural/bay": {"icon": "temaki-beach", "geometry": ["point", "line", "area"], "fields": ["name"], "tags": {"natural": "bay"}, "terms": [], "name": "Bay"}, "natural/beach": {"icon": "temaki-beach", "fields": ["surface"], "geometry": ["point", "area"], "tags": {"natural": "beach"}, "terms": ["shore"], "name": "Beach"}, "natural/cape": {"icon": "temaki-beach", "fields": ["name", "elevation", "description"], "geometry": ["point"], "tags": {"natural": "cape"}, "terms": ["bay", "coastline", "erosion", "headland", "promontory"], "name": "Cape"}, - "natural/cave_entrance": {"icon": "maki-triangle", "geometry": ["point", "area"], "fields": ["name", "elevation", "access_simple", "direction", "fee", "payment_multi_fee"], "tags": {"natural": "cave_entrance"}, "terms": ["cavern", "hollow", "grotto", "shelter", "cavity"], "name": "Cave Entrance"}, + "natural/cave_entrance": {"icon": "maki-triangle", "geometry": ["point", "area"], "fields": ["name", "elevation", "access_simple", "direction", "fee", "payment_multi_fee", "charge_fee"], "tags": {"natural": "cave_entrance"}, "terms": ["cavern", "hollow", "grotto", "shelter", "cavity"], "name": "Cave Entrance"}, "natural/cliff": {"icon": "maki-triangle", "fields": ["name", "height"], "geometry": ["point", "vertex", "line", "area"], "tags": {"natural": "cliff"}, "terms": ["crag", "escarpment", "rock face", "scarp"], "name": "Cliff"}, "natural/coastline": {"geometry": ["line"], "tags": {"natural": "coastline"}, "terms": ["shore"], "name": "Coastline"}, "natural/fell": {"geometry": ["area"], "tags": {"natural": "fell"}, "terms": [], "name": "Fell"}, @@ -959,7 +959,7 @@ "railway/train_wash": {"icon": "maki-rail", "geometry": ["point", "vertex", "area"], "fields": ["operator", "building_area"], "tags": {"railway": "wash"}, "terms": ["wash", "clean"], "name": "Train Wash"}, "railway/tram": {"icon": "temaki-tram", "fields": ["{railway/rail}"], "moreFields": ["covered", "frequency_electrified", "maxspeed", "voltage_electrified"], "geometry": ["line"], "tags": {"railway": "tram"}, "terms": ["light rail", "streetcar", "tram", "trolley"], "name": "Tram"}, "relation": {"icon": "iD-relation", "fields": ["name", "relation"], "geometry": ["relation"], "tags": {}, "name": "Relation"}, - "route/ferry": {"icon": "maki-ferry", "geometry": ["line"], "fields": ["name", "operator", "duration", "access", "toll", "to", "from"], "moreFields": ["dog", "interval", "maxheight", "maxweight", "network", "opening_hours", "ref_route", "wheelchair"], "tags": {"route": "ferry"}, "terms": ["boat", "merchant vessel", "ship", "water bus", "water shuttle", "water taxi"], "name": "Ferry Route"}, + "route/ferry": {"icon": "maki-ferry", "geometry": ["line"], "fields": ["name", "operator", "duration", "access", "toll", "to", "from"], "moreFields": ["charge_toll", "dog", "interval", "maxheight", "maxweight", "network", "opening_hours", "ref_route", "wheelchair"], "tags": {"route": "ferry"}, "terms": ["boat", "merchant vessel", "ship", "water bus", "water shuttle", "water taxi"], "name": "Ferry Route"}, "seamark/beacon_isolated_danger": {"fields": ["ref", "operator", "seamark/beacon_isolated_danger/shape", "seamark/type"], "geometry": ["point", "vertex"], "terms": ["beacon isolated danger", "isolated danger beacon", "iala"], "tags": {"seamark:type": "beacon_isolated_danger"}, "name": "Danger Beacon"}, "seamark/beacon_lateral": {"fields": ["ref", "operator", "seamark/beacon_lateral/colour", "seamark/beacon_lateral/category", "seamark/beacon_lateral/shape", "seamark/beacon_lateral/system", "seamark/type"], "geometry": ["point", "vertex"], "terms": ["lateral beacon", "beacon lateral", "cevni", "channel marker", "iala", "lateral mark"], "tags": {"seamark:type": "beacon_lateral"}, "name": "Channel Beacon"}, "seamark/buoy_lateral": {"fields": ["ref", "operator", "seamark/buoy_lateral/colour", "seamark/buoy_lateral/category", "seamark/buoy_lateral/shape", "seamark/buoy_lateral/system", "seamark/type"], "geometry": ["point", "vertex"], "terms": ["lateral buoy", "buoy lateral", "cevni", "channel marker", "iala", "lateral mark"], "tags": {"seamark:type": "buoy_lateral"}, "name": "Channel Buoy"}, @@ -1122,9 +1122,9 @@ "shop/wine": {"icon": "maki-alcohol-shop", "geometry": ["point", "area"], "tags": {"shop": "wine"}, "name": "Wine Shop"}, "tactile_paving": {"icon": "temaki-blind", "fields": ["colour", "description"], "geometry": ["vertex", "point", "line", "area"], "tags": {"tactile_paving": "*"}, "matchScore": 0.25, "terms": ["blind path", "detectable warning surfaces", "tactile ground surface indicators", "tactile walking surface indicators", "truncated domes", "visually impaired path"], "name": "Tactile Paving"}, "telecom/data_center": {"icon": "fas-server", "fields": ["name", "ref", "operator", "building_area"], "moreFields": ["address", "phone", "website"], "geometry": ["point", "area"], "tags": {"telecom": "data_center"}, "terms": ["computer systems storage", "information technology", "server farm", "the cloud", "telecommunications"], "name": "Data Center"}, - "tourism/alpine_hut": {"icon": "maki-lodging", "fields": ["name", "operator", "address", "building_area", "internet_access", "internet_access/fee", "fee", "payment_multi_fee"], "moreFields": ["email", "fax", "internet_access/ssid", "phone", "reservation", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["climbing hut"], "tags": {"tourism": "alpine_hut"}, "name": "Alpine Hut"}, + "tourism/alpine_hut": {"icon": "maki-lodging", "fields": ["name", "operator", "address", "building_area", "internet_access", "internet_access/fee", "fee", "payment_multi_fee", "charge_fee"], "moreFields": ["email", "fax", "internet_access/ssid", "phone", "reservation", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["climbing hut"], "tags": {"tourism": "alpine_hut"}, "name": "Alpine Hut"}, "tourism/apartment": {"icon": "maki-lodging", "fields": ["name", "operator", "address", "building_area", "rooms", "internet_access", "internet_access/fee"], "moreFields": ["building/levels_building", "height_building", "email", "fax", "internet_access/ssid", "payment_multi", "phone", "reservation", "smoking", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"tourism": "apartment"}, "name": "Guest Apartment / Condo"}, - "tourism/aquarium": {"icon": "maki-aquarium", "fields": ["name", "operator", "address", "building_area", "opening_hours"], "moreFields": ["fee", "internet_access", "internet_access/fee", "internet_access/ssid", "payment_multi_fee", "smoking", "website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "terms": ["fish", "sea", "water"], "tags": {"tourism": "aquarium"}, "name": "Aquarium"}, + "tourism/aquarium": {"icon": "maki-aquarium", "fields": ["name", "operator", "address", "building_area", "opening_hours"], "moreFields": ["charge_fee", "fee", "internet_access", "internet_access/fee", "internet_access/ssid", "payment_multi_fee", "smoking", "website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "terms": ["fish", "sea", "water"], "tags": {"tourism": "aquarium"}, "name": "Aquarium"}, "tourism/artwork": {"icon": "maki-art-gallery", "fields": ["name", "artwork_type", "artist"], "moreFields": ["material", "website"], "geometry": ["point", "vertex", "line", "area"], "tags": {"tourism": "artwork"}, "terms": ["mural", "sculpture", "statue"], "name": "Artwork"}, "tourism/artwork/bust": {"icon": "fas-user-alt", "fields": ["name", "artist", "material"], "geometry": ["point", "vertex"], "tags": {"tourism": "artwork", "artwork_type": "bust"}, "reference": {"key": "artwork_type"}, "terms": ["figure"], "name": "Bust"}, "tourism/artwork/graffiti": {"icon": "maki-art-gallery", "fields": ["name", "artist"], "geometry": ["point", "vertex", "line", "area"], "tags": {"tourism": "artwork", "artwork_type": "graffiti"}, "reference": {"key": "artwork_type"}, "terms": ["Street Artwork", "Guerilla Artwork", "Graffiti Artwork"], "name": "Graffiti"}, @@ -1134,8 +1134,8 @@ "tourism/artwork/statue": {"icon": "fas-female", "fields": ["name", "artist", "material"], "geometry": ["point", "vertex", "line", "area"], "tags": {"tourism": "artwork", "artwork_type": "statue"}, "reference": {"key": "artwork_type", "value": "statue"}, "terms": ["sculpture", "figure", "carving"], "name": "Statue"}, "tourism/attraction": {"icon": "maki-star", "fields": ["name", "operator", "address"], "geometry": ["point", "vertex", "line", "area"], "tags": {"tourism": "attraction"}, "matchScore": 0.75, "name": "Tourist Attraction"}, "tourism/camp_pitch": {"icon": "maki-campsite", "fields": ["name", "ref"], "geometry": ["point", "area"], "terms": ["tent", "rv"], "tags": {"tourism": "camp_pitch"}, "name": "Camp Pitch"}, - "tourism/camp_site": {"icon": "maki-campsite", "fields": ["name", "operator", "address", "access_simple", "capacity", "fee", "payment_multi_fee", "internet_access", "internet_access/fee"], "moreFields": ["email", "fax", "internet_access/ssid", "phone", "power_supply", "reservation", "sanitary_dump_station", "website", "wheelchair"], "geometry": ["point", "vertex", "area"], "terms": ["tent", "rv"], "tags": {"tourism": "camp_site"}, "name": "Campground"}, - "tourism/caravan_site": {"icon": "temaki-rv_park", "fields": ["name", "address", "capacity", "sanitary_dump_station", "power_supply", "internet_access", "internet_access/fee"], "moreFields": ["operator", "fee", "payment_multi_fee", "internet_access/ssid", "smoking", "website", "phone", "email", "fax", "wheelchair", "reservation"], "geometry": ["point", "vertex", "area"], "terms": ["Motor Home", "Camper"], "tags": {"tourism": "caravan_site"}, "name": "RV Park"}, + "tourism/camp_site": {"icon": "maki-campsite", "fields": ["name", "operator", "address", "access_simple", "capacity", "fee", "payment_multi_fee", "charge_fee", "internet_access", "internet_access/fee"], "moreFields": ["email", "fax", "internet_access/ssid", "phone", "power_supply", "reservation", "sanitary_dump_station", "website", "wheelchair"], "geometry": ["point", "vertex", "area"], "terms": ["tent", "rv"], "tags": {"tourism": "camp_site"}, "name": "Campground"}, + "tourism/caravan_site": {"icon": "temaki-rv_park", "fields": ["name", "address", "capacity", "sanitary_dump_station", "power_supply", "internet_access", "internet_access/fee"], "moreFields": ["charge_fee", "operator", "fee", "payment_multi_fee", "internet_access/ssid", "smoking", "website", "phone", "email", "fax", "wheelchair", "reservation"], "geometry": ["point", "vertex", "area"], "terms": ["Motor Home", "Camper"], "tags": {"tourism": "caravan_site"}, "name": "RV Park"}, "tourism/chalet": {"icon": "maki-lodging", "fields": ["name", "operator", "address", "building_area", "internet_access", "internet_access/fee"], "moreFields": ["air_conditioning", "building/levels_building", "height_building", "smoking", "payment_multi", "internet_access/ssid", "website", "phone", "email", "fax", "wheelchair", "reservation"], "geometry": ["point", "area"], "terms": ["holiday", "holiday cottage", "holiday home", "vacation", "vacation home"], "tags": {"tourism": "chalet"}, "name": "Holiday Cottage"}, "tourism/gallery": {"icon": "maki-art-gallery", "fields": ["name", "operator", "address", "building_area", "opening_hours"], "moreFields": ["internet_access", "internet_access/fee", "internet_access/ssid", "payment_multi", "website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "terms": ["art*", "exhibit*", "paint*", "photo*", "sculpt*"], "tags": {"tourism": "gallery"}, "name": "Art Gallery"}, "tourism/guest_house": {"icon": "maki-lodging", "fields": ["name", "operator", "guest_house", "address", "building_area", "rooms", "internet_access", "internet_access/fee"], "moreFields": ["air_conditioning", "building/levels_building", "height_building", "smoking", "payment_multi", "internet_access/ssid", "website", "phone", "email", "fax", "wheelchair", "reservation"], "geometry": ["point", "area"], "tags": {"tourism": "guest_house"}, "terms": ["B&B", "Bed and Breakfast"], "name": "Guest House"}, @@ -1149,13 +1149,13 @@ "tourism/information/route_marker": {"icon": "maki-information", "fields": ["ref", "operator", "colour", "material", "elevation"], "geometry": ["point", "vertex"], "terms": ["cairn", "painted blaze", "route flag", "route marker", "stone pile", "trail blaze", "trail post", "way marker"], "tags": {"tourism": "information", "information": "route_marker"}, "reference": {"key": "information", "value": "route_marker"}, "name": "Trail Marker"}, "tourism/information/terminal": {"icon": "maki-information", "fields": ["operator"], "geometry": ["point", "vertex"], "tags": {"tourism": "information", "information": "terminal"}, "reference": {"key": "information", "value": "terminal"}, "name": "Information Terminal"}, "tourism/motel": {"icon": "maki-lodging", "fields": ["name", "brand", "address", "building_area", "rooms", "internet_access", "internet_access/fee"], "moreFields": ["air_conditioning", "building/levels_building", "height_building", "email", "fax", "internet_access/ssid", "operator", "payment_multi", "phone", "reservation", "smoking", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"tourism": "motel"}, "name": "Motel"}, - "tourism/museum": {"icon": "temaki-museum", "fields": ["name", "operator", "operator/type", "address", "building_area", "opening_hours"], "moreFields": ["air_conditioning", "building/levels_building", "height_building", "fee", "internet_access", "internet_access/fee", "internet_access/ssid", "payment_multi", "website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "terms": ["art*", "exhibit*", "gallery", "foundation", "hall", "institution", "paint*", "photo*", "sculpt*"], "tags": {"tourism": "museum"}, "name": "Museum"}, - "tourism/picnic_site": {"icon": "maki-picnic-site", "fields": ["name", "operator", "address", "access_simple", "capacity"], "moreFields": ["internet_access", "internet_access/fee", "internet_access/ssid", "smoking", "fee", "payment_multi_fee", "phone", "reservation", "website", "wheelchair"], "geometry": ["point", "vertex", "area"], "terms": ["camp"], "tags": {"tourism": "picnic_site"}, "name": "Picnic Site"}, + "tourism/museum": {"icon": "temaki-museum", "fields": ["name", "operator", "operator/type", "address", "building_area", "opening_hours"], "moreFields": ["air_conditioning", "building/levels_building", "charge_fee", "height_building", "fee", "internet_access", "internet_access/fee", "internet_access/ssid", "payment_multi", "website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "terms": ["art*", "exhibit*", "gallery", "foundation", "hall", "institution", "paint*", "photo*", "sculpt*"], "tags": {"tourism": "museum"}, "name": "Museum"}, + "tourism/picnic_site": {"icon": "maki-picnic-site", "fields": ["name", "operator", "address", "access_simple", "capacity"], "moreFields": ["charge_fee", "internet_access", "internet_access/fee", "internet_access/ssid", "smoking", "fee", "payment_multi_fee", "phone", "reservation", "website", "wheelchair"], "geometry": ["point", "vertex", "area"], "terms": ["camp"], "tags": {"tourism": "picnic_site"}, "name": "Picnic Site"}, "tourism/theme_park": {"icon": "maki-amusement-park", "fields": ["name", "operator", "address", "opening_hours"], "moreFields": ["internet_access", "internet_access/fee", "internet_access/ssid", "payment_multi", "website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "tags": {"tourism": "theme_park"}, "name": "Theme Park"}, "tourism/trail_riding_station": {"icon": "maki-horse-riding", "fields": ["name", "horse_stables", "horse_riding", "horse_dressage"], "moreFields": ["internet_access", "internet_access/fee", "internet_access/ssid", "address", "opening_hours", "website", "phone", "email", "fax"], "geometry": ["point", "area"], "tags": {"tourism": "trail_riding_station"}, "name": "Trail Riding Station", "matchScore": 2}, "tourism/viewpoint": {"icon": "temaki-binoculars", "geometry": ["point", "vertex"], "fields": ["direction"], "tags": {"tourism": "viewpoint"}, "name": "Viewpoint"}, - "tourism/wilderness_hut": {"icon": "maki-lodging", "fields": ["name", "operator", "address", "building_area", "fee", "payment_multi_fee", "fireplace"], "moreFields": ["internet_access", "internet_access/fee", "internet_access/ssid", "reservation", "wheelchair"], "geometry": ["point", "area"], "terms": ["wilderness hut", "backcountry hut", "bothy"], "tags": {"tourism": "wilderness_hut"}, "name": "Wilderness Hut"}, - "tourism/zoo": {"icon": "temaki-zoo", "fields": ["name", "operator", "address", "opening_hours", "fee"], "moreFields": ["internet_access", "internet_access/fee", "internet_access/ssid", "payment_multi", "website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "terms": ["animal"], "tags": {"tourism": "zoo"}, "name": "Zoo"}, + "tourism/wilderness_hut": {"icon": "maki-lodging", "fields": ["name", "operator", "address", "building_area", "fee", "payment_multi_fee", "charge_fee", "fireplace"], "moreFields": ["internet_access", "internet_access/fee", "internet_access/ssid", "reservation", "wheelchair"], "geometry": ["point", "area"], "terms": ["wilderness hut", "backcountry hut", "bothy"], "tags": {"tourism": "wilderness_hut"}, "name": "Wilderness Hut"}, + "tourism/zoo": {"icon": "temaki-zoo", "fields": ["name", "operator", "address", "opening_hours", "fee", "charge_fee"], "moreFields": ["internet_access", "internet_access/fee", "internet_access/ssid", "payment_multi", "website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "terms": ["animal"], "tags": {"tourism": "zoo"}, "name": "Zoo"}, "tourism/zoo/petting": {"icon": "fas-horse", "geometry": ["point", "area"], "tags": {"tourism": "zoo", "zoo": "petting_zoo"}, "reference": {"key": "zoo", "value": "petting_zoo"}, "terms": ["Children's Zoo", "Children's Farm", "Petting Farm", "farm animals"], "name": "Petting Zoo"}, "tourism/zoo/safari": {"icon": "temaki-zoo", "geometry": ["point", "area"], "tags": {"tourism": "zoo", "zoo": "safari_park"}, "reference": {"key": "zoo", "value": "safari_park"}, "terms": ["Drive-Through Zoo", "Drive-In Zoo"], "name": "Safari Park"}, "tourism/zoo/wildlife": {"icon": "fas-frog", "geometry": ["point", "area"], "tags": {"tourism": "zoo", "zoo": "wildlife_park"}, "reference": {"key": "zoo", "value": "wildlife_park"}, "terms": ["indigenous animals"], "name": "Wildlife Park"}, @@ -1221,7 +1221,7 @@ "waterway/lock_gate": {"icon": "maki-dam", "geometry": ["vertex", "line"], "fields": ["name", "ref", "height", "material"], "tags": {"waterway": "lock_gate"}, "addTags": {"waterway": "lock_gate", "seamark:type": "gate"}, "terms": ["canal"], "name": "Lock Gate"}, "waterway/milestone": {"icon": "temaki-milestone", "fields": ["distance", "direction_vertex"], "moreFields": ["seamark/type"], "geometry": ["point", "vertex"], "tags": {"waterway": "milestone"}, "terms": ["milestone", "marker"], "name": "Waterway Milestone"}, "waterway/river": {"icon": "iD-waterway-river", "fields": ["name", "structure_waterway", "width", "intermittent", "tidal"], "moreFields": ["covered", "fishing", "salt"], "geometry": ["line"], "terms": ["beck", "branch", "brook", "course", "creek", "estuary", "rill", "rivulet", "run", "runnel", "stream", "tributary", "watercourse"], "tags": {"waterway": "river"}, "name": "River"}, - "waterway/sanitary_dump_station": {"icon": "temaki-storage_tank", "fields": ["name", "operator", "access_simple", "fee", "payment_multi_fee", "water_point"], "moreFields": ["opening_hours", "seamark/type"], "geometry": ["point", "vertex", "area"], "terms": ["Boat", "Watercraft", "Sanitary", "Dump Station", "Pumpout", "Pump out", "Elsan", "CDP", "CTDP", "Chemical Toilet"], "tags": {"waterway": "sanitary_dump_station"}, "name": "Marine Toilet Disposal"}, + "waterway/sanitary_dump_station": {"icon": "temaki-storage_tank", "fields": ["name", "operator", "access_simple", "fee", "payment_multi_fee", "charge_fee", "water_point"], "moreFields": ["opening_hours", "seamark/type"], "geometry": ["point", "vertex", "area"], "terms": ["Boat", "Watercraft", "Sanitary", "Dump Station", "Pumpout", "Pump out", "Elsan", "CDP", "CTDP", "Chemical Toilet"], "tags": {"waterway": "sanitary_dump_station"}, "name": "Marine Toilet Disposal"}, "waterway/stream_intermittent": {"icon": "iD-waterway-stream", "fields": ["{waterway/stream}"], "moreFields": ["{waterway/stream}"], "geometry": ["line"], "terms": ["arroyo", "beck", "branch", "brook", "burn", "course", "creek", "drift", "flood", "flow", "gully", "run", "runnel", "rush", "spate", "spritz", "tributary", "wadi", "wash", "watercourse"], "tags": {"waterway": "stream", "intermittent": "yes"}, "reference": {"key": "waterway", "value": "stream"}, "name": "Intermittent Stream"}, "waterway/stream": {"icon": "iD-waterway-stream", "fields": ["name", "structure_waterway", "width", "intermittent"], "moreFields": ["covered", "fishing", "salt", "tidal"], "geometry": ["line"], "terms": ["beck", "branch", "brook", "burn", "course", "creek", "current", "drift", "flood", "flow", "freshet", "race", "rill", "rindle", "rivulet", "run", "runnel", "rush", "spate", "spritz", "surge", "tide", "torrent", "tributary", "watercourse"], "tags": {"waterway": "stream"}, "name": "Stream"}, "waterway/water_point": {"icon": "maki-drinking-water", "geometry": ["area", "vertex", "point"], "tags": {"waterway": "water_point"}, "name": "Marine Drinking Water"}, diff --git a/data/presets/presets/_attraction.json b/data/presets/presets/_attraction.json index 02ba29d905..b481b2646b 100644 --- a/data/presets/presets/_attraction.json +++ b/data/presets/presets/_attraction.json @@ -7,6 +7,7 @@ "opening_hours" ], "moreFields": [ + "charge_fee", "opening_hours", "fee", "payment_multi", diff --git a/data/presets/presets/aeroway/helipad.json b/data/presets/presets/aeroway/helipad.json index 9a1d44abe5..6fb584514e 100644 --- a/data/presets/presets/aeroway/helipad.json +++ b/data/presets/presets/aeroway/helipad.json @@ -14,6 +14,7 @@ "moreFields": [ "access_simple", "address", + "charge_fee", "fee", "opening_hours" ], diff --git a/data/presets/presets/amenity/arts_centre.json b/data/presets/presets/amenity/arts_centre.json index 6bf0dc05c8..5b8a022fb1 100644 --- a/data/presets/presets/amenity/arts_centre.json +++ b/data/presets/presets/amenity/arts_centre.json @@ -8,6 +8,7 @@ "website" ], "moreFields": [ + "charge_fee", "email", "fax", "fee", diff --git a/data/presets/presets/amenity/bicycle_parking.json b/data/presets/presets/amenity/bicycle_parking.json index 0327021abd..abffacc51c 100644 --- a/data/presets/presets/amenity/bicycle_parking.json +++ b/data/presets/presets/amenity/bicycle_parking.json @@ -8,7 +8,8 @@ "covered", "access_simple", "fee", - "payment_multi_fee" + "payment_multi_fee", + "charge_fee" ], "moreFields": [ "colour", diff --git a/data/presets/presets/amenity/bicycle_repair_station.json b/data/presets/presets/amenity/bicycle_repair_station.json index d6f22aa185..1120e8d01c 100644 --- a/data/presets/presets/amenity/bicycle_repair_station.json +++ b/data/presets/presets/amenity/bicycle_repair_station.json @@ -6,6 +6,7 @@ "opening_hours", "fee", "payment_multi_fee", + "charge_fee", "service/bicycle" ], "moreFields": [ diff --git a/data/presets/presets/amenity/boat_rental.json b/data/presets/presets/amenity/boat_rental.json index 7831ba27ba..3218ddf313 100644 --- a/data/presets/presets/amenity/boat_rental.json +++ b/data/presets/presets/amenity/boat_rental.json @@ -5,7 +5,8 @@ "operator", "operator/type", "fee", - "payment_multi_fee" + "payment_multi_fee", + "charge_fee" ], "moreFields": [ "address", diff --git a/data/presets/presets/amenity/charging_station.json b/data/presets/presets/amenity/charging_station.json index aacdef52f5..3e51a15805 100644 --- a/data/presets/presets/amenity/charging_station.json +++ b/data/presets/presets/amenity/charging_station.json @@ -6,7 +6,8 @@ "capacity", "access_simple", "fee", - "payment_multi_fee" + "payment_multi_fee", + "charge_fee" ], "moreFields": [ "brand", diff --git a/data/presets/presets/amenity/compressed_air.json b/data/presets/presets/amenity/compressed_air.json index 591db3565e..a1d626d7e1 100644 --- a/data/presets/presets/amenity/compressed_air.json +++ b/data/presets/presets/amenity/compressed_air.json @@ -5,6 +5,7 @@ "access_simple", "fee", "payment_multi_fee", + "charge_fee", "covered", "lit" ], diff --git a/data/presets/presets/amenity/dressing_room.json b/data/presets/presets/amenity/dressing_room.json index 29ec9a2dd3..dfb824be13 100644 --- a/data/presets/presets/amenity/dressing_room.json +++ b/data/presets/presets/amenity/dressing_room.json @@ -8,6 +8,7 @@ "building_area" ], "moreFields": [ + "charge_fee", "fee", "opening_hours", "payment_multi_fee", diff --git a/data/presets/presets/amenity/drinking_water.json b/data/presets/presets/amenity/drinking_water.json index ba3aed259c..031c32ca54 100644 --- a/data/presets/presets/amenity/drinking_water.json +++ b/data/presets/presets/amenity/drinking_water.json @@ -5,6 +5,7 @@ "access_simple", "fee", "payment_multi_fee", + "charge_fee", "wheelchair" ], "moreFields": [ diff --git a/data/presets/presets/amenity/parking.json b/data/presets/presets/amenity/parking.json index e5f60a982e..97a56b66ce 100644 --- a/data/presets/presets/amenity/parking.json +++ b/data/presets/presets/amenity/parking.json @@ -8,6 +8,7 @@ "access_simple", "fee", "payment_multi_fee", + "charge_fee", "surface" ], "moreFields": [ diff --git a/data/presets/presets/amenity/planetarium.json b/data/presets/presets/amenity/planetarium.json index c41ecae752..e305cf1e78 100644 --- a/data/presets/presets/amenity/planetarium.json +++ b/data/presets/presets/amenity/planetarium.json @@ -9,6 +9,7 @@ ], "moreFields": [ "air_conditioning", + "charge_fee", "fee", "payment_multi_fee", "website", diff --git a/data/presets/presets/amenity/public_bath.json b/data/presets/presets/amenity/public_bath.json index 974881f8c7..0fa486d143 100644 --- a/data/presets/presets/amenity/public_bath.json +++ b/data/presets/presets/amenity/public_bath.json @@ -7,7 +7,8 @@ "bath/sand_bath", "address", "building_area", - "fee" + "fee", + "charge_fee" ], "moreFields": [ "email", diff --git a/data/presets/presets/amenity/recycling_centre.json b/data/presets/presets/amenity/recycling_centre.json index fa48096438..40ffe93c59 100644 --- a/data/presets/presets/amenity/recycling_centre.json +++ b/data/presets/presets/amenity/recycling_centre.json @@ -10,6 +10,7 @@ "recycling_accepts" ], "moreFields": [ + "charge_fee", "fee", "payment_multi_fee", "website", diff --git a/data/presets/presets/amenity/sanitary_dump_station.json b/data/presets/presets/amenity/sanitary_dump_station.json index 65618e0d18..9ef3265b68 100644 --- a/data/presets/presets/amenity/sanitary_dump_station.json +++ b/data/presets/presets/amenity/sanitary_dump_station.json @@ -5,6 +5,7 @@ "access_simple", "fee", "payment_multi_fee", + "charge_fee", "water_point" ], "moreFields": [ diff --git a/data/presets/presets/amenity/school.json b/data/presets/presets/amenity/school.json index 3d071d24f8..3916ecc44e 100644 --- a/data/presets/presets/amenity/school.json +++ b/data/presets/presets/amenity/school.json @@ -10,6 +10,7 @@ "website" ], "moreFields": [ + "charge_fee", "email", "fax", "fee", diff --git a/data/presets/presets/amenity/shower.json b/data/presets/presets/amenity/shower.json index ca7ac26dfe..47cc92e3c2 100644 --- a/data/presets/presets/amenity/shower.json +++ b/data/presets/presets/amenity/shower.json @@ -5,6 +5,7 @@ "access_simple", "fee", "payment_multi_fee", + "charge_fee", "supervised", "building_area", "wheelchair" diff --git a/data/presets/presets/amenity/telephone.json b/data/presets/presets/amenity/telephone.json index 3801f73bc4..7bc3fb0056 100644 --- a/data/presets/presets/amenity/telephone.json +++ b/data/presets/presets/amenity/telephone.json @@ -5,6 +5,7 @@ "phone", "fee", "payment_multi_fee", + "charge_fee", "booth" ], "moreFields": [ diff --git a/data/presets/presets/amenity/toilets.json b/data/presets/presets/amenity/toilets.json index e89d4423e4..21ebb9986d 100644 --- a/data/presets/presets/amenity/toilets.json +++ b/data/presets/presets/amenity/toilets.json @@ -9,6 +9,7 @@ "building_area" ], "moreFields": [ + "charge_fee", "fee", "opening_hours", "operator", diff --git a/data/presets/presets/amenity/vending_machine/newspapers.json b/data/presets/presets/amenity/vending_machine/newspapers.json index ab64542ab4..bba0dd4c6c 100644 --- a/data/presets/presets/amenity/vending_machine/newspapers.json +++ b/data/presets/presets/amenity/vending_machine/newspapers.json @@ -5,6 +5,7 @@ "operator", "fee", "payment_multi_fee", + "charge_fee", "currency_multi" ], "geometry": [ diff --git a/data/presets/presets/amenity/veterinary.json b/data/presets/presets/amenity/veterinary.json index 656dbab8c6..b01188adbc 100644 --- a/data/presets/presets/amenity/veterinary.json +++ b/data/presets/presets/amenity/veterinary.json @@ -8,6 +8,7 @@ "opening_hours" ], "moreFields": [ + "charge_fee", "fee", "payment_multi_fee", "website", diff --git a/data/presets/presets/amenity/waste_transfer_station.json b/data/presets/presets/amenity/waste_transfer_station.json index e57390a6a7..792d53cf0d 100644 --- a/data/presets/presets/amenity/waste_transfer_station.json +++ b/data/presets/presets/amenity/waste_transfer_station.json @@ -7,7 +7,8 @@ "address", "opening_hours", "fee", - "payment_multi_fee" + "payment_multi_fee", + "charge_fee" ], "moreFields": [ "email", diff --git a/data/presets/presets/amenity/water_point.json b/data/presets/presets/amenity/water_point.json index 2a52fbd392..9e1efbd289 100644 --- a/data/presets/presets/amenity/water_point.json +++ b/data/presets/presets/amenity/water_point.json @@ -4,6 +4,7 @@ "operator", "fee", "payment_multi_fee", + "charge_fee", "opening_hours" ], "geometry": [ diff --git a/data/presets/presets/amenity/watering_place.json b/data/presets/presets/amenity/watering_place.json index 59fdda51b4..0f0b829837 100644 --- a/data/presets/presets/amenity/watering_place.json +++ b/data/presets/presets/amenity/watering_place.json @@ -4,6 +4,7 @@ "operator", "fee", "payment_multi_fee", + "charge_fee", "opening_hours" ], "geometry": [ diff --git a/data/presets/presets/attraction/train.json b/data/presets/presets/attraction/train.json index a3f150f2c2..ebe8139a34 100644 --- a/data/presets/presets/attraction/train.json +++ b/data/presets/presets/attraction/train.json @@ -2,7 +2,8 @@ "icon": "maki-rail", "fields": [ "{attraction}", - "fee" + "fee", + "charge_fee" ], "geometry": [ "point", diff --git a/data/presets/presets/highway/motorway.json b/data/presets/presets/highway/motorway.json index 936a9fd524..f0a460b064 100644 --- a/data/presets/presets/highway/motorway.json +++ b/data/presets/presets/highway/motorway.json @@ -11,6 +11,7 @@ "access" ], "moreFields": [ + "charge_toll", "covered", "incline", "junction_line", diff --git a/data/presets/presets/highway/motorway_link.json b/data/presets/presets/highway/motorway_link.json index 37cd7d6d5a..8060b87c24 100644 --- a/data/presets/presets/highway/motorway_link.json +++ b/data/presets/presets/highway/motorway_link.json @@ -12,6 +12,7 @@ "access" ], "moreFields": [ + "charge_toll", "covered", "destination/symbol_oneway", "incline", diff --git a/data/presets/presets/highway/primary.json b/data/presets/presets/highway/primary.json index e8ae08c023..3fe8562e3a 100644 --- a/data/presets/presets/highway/primary.json +++ b/data/presets/presets/highway/primary.json @@ -11,6 +11,7 @@ "access" ], "moreFields": [ + "charge_toll", "covered", "cycleway", "flood_prone", diff --git a/data/presets/presets/highway/primary_link.json b/data/presets/presets/highway/primary_link.json index c3accd1922..c6405e97bf 100644 --- a/data/presets/presets/highway/primary_link.json +++ b/data/presets/presets/highway/primary_link.json @@ -11,6 +11,7 @@ "access" ], "moreFields": [ + "charge_toll", "covered", "cycleway", "destination/symbol_oneway", diff --git a/data/presets/presets/highway/trailhead.json b/data/presets/presets/highway/trailhead.json index 45f1be1857..281d46bc3c 100644 --- a/data/presets/presets/highway/trailhead.json +++ b/data/presets/presets/highway/trailhead.json @@ -7,7 +7,8 @@ "address", "access_simple", "fee", - "payment_multi_fee" + "payment_multi_fee", + "charge_fee" ], "moreFields": [ "opening_hours" diff --git a/data/presets/presets/highway/trunk.json b/data/presets/presets/highway/trunk.json index 7839eb52a1..560f81eb85 100644 --- a/data/presets/presets/highway/trunk.json +++ b/data/presets/presets/highway/trunk.json @@ -11,6 +11,7 @@ "access" ], "moreFields": [ + "charge_toll", "covered", "incline", "junction_line", diff --git a/data/presets/presets/leisure/beach_resort.json b/data/presets/presets/leisure/beach_resort.json index 497a179868..087a4709c5 100644 --- a/data/presets/presets/leisure/beach_resort.json +++ b/data/presets/presets/leisure/beach_resort.json @@ -5,7 +5,8 @@ "address", "opening_hours", "fee", - "payment_multi_fee" + "payment_multi_fee", + "charge_fee" ], "moreFields": [ "smoking", diff --git a/data/presets/presets/leisure/disc_golf_course.json b/data/presets/presets/leisure/disc_golf_course.json index 56b00e4ae5..bdc37380d7 100644 --- a/data/presets/presets/leisure/disc_golf_course.json +++ b/data/presets/presets/leisure/disc_golf_course.json @@ -6,6 +6,7 @@ "access_simple", "fee", "payment_multi_fee", + "charge_fee", "opening_hours" ], "moreFields": [ diff --git a/data/presets/presets/leisure/escape_game.json b/data/presets/presets/leisure/escape_game.json index 65e9d9a690..569a0e5ced 100644 --- a/data/presets/presets/leisure/escape_game.json +++ b/data/presets/presets/leisure/escape_game.json @@ -8,6 +8,7 @@ "website", "fee", "payment_multi_fee", + "charge_fee", "internet_access", "internet_access/fee", "internet_access/ssid" diff --git a/data/presets/presets/leisure/fitness_centre.json b/data/presets/presets/leisure/fitness_centre.json index dbec907beb..7bd3602e65 100644 --- a/data/presets/presets/leisure/fitness_centre.json +++ b/data/presets/presets/leisure/fitness_centre.json @@ -7,6 +7,7 @@ "building_area" ], "moreFields": [ + "charge_fee", "opening_hours", "fee", "payment_multi", diff --git a/data/presets/presets/leisure/garden.json b/data/presets/presets/leisure/garden.json index 6121ec44cb..d7c9993791 100644 --- a/data/presets/presets/leisure/garden.json +++ b/data/presets/presets/leisure/garden.json @@ -5,7 +5,8 @@ "operator", "access_simple", "fee", - "payment_multi_fee" + "payment_multi_fee", + "charge_fee" ], "moreFields": [ "website", diff --git a/data/presets/presets/leisure/hackerspace.json b/data/presets/presets/leisure/hackerspace.json index 0d7304dc35..9fae23ff93 100644 --- a/data/presets/presets/leisure/hackerspace.json +++ b/data/presets/presets/leisure/hackerspace.json @@ -8,6 +8,7 @@ "website", "fee", "payment_multi_fee", + "charge_fee", "internet_access", "internet_access/fee", "internet_access/ssid" diff --git a/data/presets/presets/leisure/marina.json b/data/presets/presets/leisure/marina.json index cac53f95e1..771fee7367 100644 --- a/data/presets/presets/leisure/marina.json +++ b/data/presets/presets/leisure/marina.json @@ -6,6 +6,7 @@ "capacity", "fee", "payment_multi_fee", + "charge_fee", "sanitary_dump_station", "power_supply" ], diff --git a/data/presets/presets/leisure/miniature_golf.json b/data/presets/presets/leisure/miniature_golf.json index da9fefa35c..23c06a97d1 100644 --- a/data/presets/presets/leisure/miniature_golf.json +++ b/data/presets/presets/leisure/miniature_golf.json @@ -6,7 +6,8 @@ "address", "opening_hours", "fee", - "payment_multi_fee" + "payment_multi_fee", + "charge_fee" ], "moreFields": [ "website", diff --git a/data/presets/presets/leisure/pitch.json b/data/presets/presets/leisure/pitch.json index ed94047cb8..6bb839718d 100644 --- a/data/presets/presets/leisure/pitch.json +++ b/data/presets/presets/leisure/pitch.json @@ -8,6 +8,7 @@ "lit" ], "moreFields": [ + "charge_fee", "covered", "fee", "indoor", diff --git a/data/presets/presets/leisure/sauna.json b/data/presets/presets/leisure/sauna.json index 9239187f87..52843ab180 100644 --- a/data/presets/presets/leisure/sauna.json +++ b/data/presets/presets/leisure/sauna.json @@ -7,7 +7,8 @@ "opening_hours", "access_simple", "fee", - "payment_multi_fee" + "payment_multi_fee", + "charge_fee" ], "moreFields": [ "website", diff --git a/data/presets/presets/leisure/slipway.json b/data/presets/presets/leisure/slipway.json index c27cfe18a1..fe7e5360a8 100644 --- a/data/presets/presets/leisure/slipway.json +++ b/data/presets/presets/leisure/slipway.json @@ -6,6 +6,7 @@ "access_simple", "fee", "payment_multi_fee", + "charge_fee", "lanes" ], "moreFields": [ diff --git a/data/presets/presets/leisure/sports_centre.json b/data/presets/presets/leisure/sports_centre.json index 7a38bcb3e6..08eff4a4fd 100644 --- a/data/presets/presets/leisure/sports_centre.json +++ b/data/presets/presets/leisure/sports_centre.json @@ -6,7 +6,8 @@ "building", "address", "fee", - "payment_multi_fee" + "payment_multi_fee", + "charge_fee" ], "moreFields": [ "opening_hours", diff --git a/data/presets/presets/leisure/swimming_area.json b/data/presets/presets/leisure/swimming_area.json index 82b3d8b08e..1d8e988a9a 100644 --- a/data/presets/presets/leisure/swimming_area.json +++ b/data/presets/presets/leisure/swimming_area.json @@ -6,6 +6,7 @@ "supervised", "fee", "payment_multi_fee", + "charge_fee", "lit" ], "moreFields": [ diff --git a/data/presets/presets/natural/cave_entrance.json b/data/presets/presets/natural/cave_entrance.json index 5345eff99f..fd75acbb79 100644 --- a/data/presets/presets/natural/cave_entrance.json +++ b/data/presets/presets/natural/cave_entrance.json @@ -10,7 +10,8 @@ "access_simple", "direction", "fee", - "payment_multi_fee" + "payment_multi_fee", + "charge_fee" ], "tags": { "natural": "cave_entrance" diff --git a/data/presets/presets/route/ferry.json b/data/presets/presets/route/ferry.json index ed1af726fd..b5f1b3b0ce 100644 --- a/data/presets/presets/route/ferry.json +++ b/data/presets/presets/route/ferry.json @@ -13,6 +13,7 @@ "from" ], "moreFields": [ + "charge_toll", "dog", "interval", "maxheight", diff --git a/data/presets/presets/tourism/alpine_hut.json b/data/presets/presets/tourism/alpine_hut.json index 82874888aa..6d82811606 100644 --- a/data/presets/presets/tourism/alpine_hut.json +++ b/data/presets/presets/tourism/alpine_hut.json @@ -8,7 +8,8 @@ "internet_access", "internet_access/fee", "fee", - "payment_multi_fee" + "payment_multi_fee", + "charge_fee" ], "moreFields" : [ "email", diff --git a/data/presets/presets/tourism/aquarium.json b/data/presets/presets/tourism/aquarium.json index 3925dcf15c..097908c2cf 100644 --- a/data/presets/presets/tourism/aquarium.json +++ b/data/presets/presets/tourism/aquarium.json @@ -8,6 +8,7 @@ "opening_hours" ], "moreFields": [ + "charge_fee", "fee", "internet_access", "internet_access/fee", diff --git a/data/presets/presets/tourism/camp_site.json b/data/presets/presets/tourism/camp_site.json index 595c46409c..e0448cb9b3 100644 --- a/data/presets/presets/tourism/camp_site.json +++ b/data/presets/presets/tourism/camp_site.json @@ -8,6 +8,7 @@ "capacity", "fee", "payment_multi_fee", + "charge_fee", "internet_access", "internet_access/fee" ], diff --git a/data/presets/presets/tourism/caravan_site.json b/data/presets/presets/tourism/caravan_site.json index d0006de8b9..3ba9996207 100644 --- a/data/presets/presets/tourism/caravan_site.json +++ b/data/presets/presets/tourism/caravan_site.json @@ -10,6 +10,7 @@ "internet_access/fee" ], "moreFields" : [ + "charge_fee", "operator", "fee", "payment_multi_fee", diff --git a/data/presets/presets/tourism/museum.json b/data/presets/presets/tourism/museum.json index df5691b19c..5b60a5b812 100644 --- a/data/presets/presets/tourism/museum.json +++ b/data/presets/presets/tourism/museum.json @@ -11,6 +11,7 @@ "moreFields": [ "air_conditioning", "building/levels_building", + "charge_fee", "height_building", "fee", "internet_access", diff --git a/data/presets/presets/tourism/picnic_site.json b/data/presets/presets/tourism/picnic_site.json index 63a5eb8742..236f8af2f3 100644 --- a/data/presets/presets/tourism/picnic_site.json +++ b/data/presets/presets/tourism/picnic_site.json @@ -8,6 +8,7 @@ "capacity" ], "moreFields": [ + "charge_fee", "internet_access", "internet_access/fee", "internet_access/ssid", diff --git a/data/presets/presets/tourism/wilderness_hut.json b/data/presets/presets/tourism/wilderness_hut.json index 8425d3d447..edd05df677 100644 --- a/data/presets/presets/tourism/wilderness_hut.json +++ b/data/presets/presets/tourism/wilderness_hut.json @@ -7,6 +7,7 @@ "building_area", "fee", "payment_multi_fee", + "charge_fee", "fireplace" ], "moreFields": [ diff --git a/data/presets/presets/tourism/zoo.json b/data/presets/presets/tourism/zoo.json index 069749200e..9cda5f2ef3 100644 --- a/data/presets/presets/tourism/zoo.json +++ b/data/presets/presets/tourism/zoo.json @@ -5,7 +5,8 @@ "operator", "address", "opening_hours", - "fee" + "fee", + "charge_fee" ], "moreFields": [ "internet_access", diff --git a/data/presets/presets/waterway/sanitary_dump_station.json b/data/presets/presets/waterway/sanitary_dump_station.json index ee2936d04f..2ae6764d44 100644 --- a/data/presets/presets/waterway/sanitary_dump_station.json +++ b/data/presets/presets/waterway/sanitary_dump_station.json @@ -6,6 +6,7 @@ "access_simple", "fee", "payment_multi_fee", + "charge_fee", "water_point" ], "moreFields": [ diff --git a/data/taginfo.json b/data/taginfo.json index b5bb9153b8..7896241e6d 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -1277,6 +1277,7 @@ {"key": "capacity", "description": "🄵 Capacity"}, {"key": "cash_in", "description": "🄵 Cash In"}, {"key": "castle_type", "description": "🄵 Type"}, + {"key": "charge", "description": "🄵 Fee Amount, 🄵 Toll Amount"}, {"key": "check_date", "description": "🄵 Last Checked Date"}, {"key": "clothes", "description": "🄵 Clothes"}, {"key": "collection_times", "description": "🄵 Collection Times"}, diff --git a/dist/locales/en.json b/dist/locales/en.json index b232dd6336..08e52b81ef 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -2709,6 +2709,14 @@ "castle_type": { "label": "Type" }, + "charge_fee": { + "label": "Fee Amount", + "placeholder": "€1, $5, ¥10…" + }, + "charge_toll": { + "label": "Toll Amount", + "placeholder": "€1, $5, ¥10…" + }, "check_date": { "label": "Last Checked Date" }, From bcf70701b86b0259046ab8a58635c98ced615429 Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" <23040076+greenkeeper[bot]@users.noreply.github.com> Date: Wed, 7 Aug 2019 11:53:35 +0000 Subject: [PATCH 271/774] chore(package): update rollup to version 1.19.4 Closes #6724 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 18990be2f2..a1c0eea06b 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "osm-community-index": "0.11.0", "phantomjs-prebuilt": "~2.1.11", "request": "^2.88.0", - "rollup": "~1.17.0", + "rollup": "~1.19.4", "rollup-plugin-commonjs": "^10.0.0", "rollup-plugin-includepaths": "~0.2.3", "rollup-plugin-json": "~4.0.0", From b065de05509f3c434946b0bec9d87fac0a35778c Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 7 Aug 2019 09:48:19 -0500 Subject: [PATCH 272/774] Generalize the `address` field type Add `amenity=letter_box` preset with `post:*` field (close #6718) --- data/presets.yaml | 8 ++++ data/presets/fields.json | 3 +- data/presets/fields/address.json | 2 +- data/presets/fields/post.json | 29 +++++++++++++ data/presets/presets.json | 1 + data/presets/presets/amenity/letter_box.json | 45 ++++++++++++++++++++ data/taginfo.json | 21 +++++++++ dist/locales/en.json | 7 +++ modules/ui/fields/address.js | 14 +++--- 9 files changed, 122 insertions(+), 8 deletions(-) create mode 100644 data/presets/fields/post.json create mode 100644 data/presets/presets/amenity/letter_box.json diff --git a/data/presets.yaml b/data/presets.yaml index b8b043da46..a910749ec9 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -1525,6 +1525,9 @@ en: population: # population=* label: Population + post: + # 'post:block_number=*, post:city=*, post:block_number=*, post:conscriptionnumber=*, post:county=*, post:country=*, post:county=*, post:district=*, post:floor=*, post:hamlet=*, post:housename=*, post:housenumber=*, post:neighbourhood=*, post:place=*, post:postcode=*, post:province=*, post:quarter=*, post:state=*, post:street=*, post:subdistrict=*, post:suburb=*, post:unit=*' + label: Delivery Address power: # power=* label: Type @@ -2828,6 +2831,11 @@ en: name: Language School # 'terms: esl' terms: '' + amenity/letter_box: + # amenity=letter_box + name: Letter Box + # 'terms: curbside delivery box,home delivery box,direct-to-door delivery box,letter hole,letter plate,letter slot,letterbox,letterhole,letterplate,letterslot,mail box,mail hole,mail slot,mailbox,mailhole,mailslot,through-door delivery box' + terms: '' amenity/library: # amenity=library name: Library diff --git a/data/presets/fields.json b/data/presets/fields.json index bd3c4720fe..b06d4c9e71 100644 --- a/data/presets/fields.json +++ b/data/presets/fields.json @@ -3,7 +3,7 @@ "access_simple": {"key": "access", "type": "combo", "label": "Allowed Access", "options": ["yes", "permissive", "private", "customers", "permit", "no"]}, "access": {"keys": ["access", "foot", "motor_vehicle", "bicycle", "horse"], "reference": {"key": "access"}, "type": "access", "label": "Allowed Access", "placeholder": "Not Specified", "strings": {"types": {"access": "All", "foot": "Foot", "motor_vehicle": "Motor Vehicles", "bicycle": "Bicycles", "horse": "Horses"}, "options": {"yes": {"title": "Allowed", "description": "Access allowed by law; a right of way"}, "no": {"title": "Prohibited", "description": "Access not allowed to the general public"}, "permissive": {"title": "Permissive", "description": "Access allowed until such time as the owner revokes the permission"}, "private": {"title": "Private", "description": "Access allowed only with permission of the owner on an individual basis"}, "designated": {"title": "Designated", "description": "Access allowed according to signs or specific local laws"}, "destination": {"title": "Destination", "description": "Access allowed only to reach a destination"}, "dismount": {"title": "Dismount", "description": "Access allowed but rider must dismount"}, "permit": {"title": "Permit", "description": "Access allowed only with a valid permit or license"}}}}, "addr/interpolation": {"key": "addr:interpolation", "type": "combo", "label": "Type", "strings": {"options": {"all": "All", "even": "Even", "odd": "Odd", "alphabetic": "Alphabetic"}}}, - "address": {"type": "address", "keys": ["addr:block_number", "addr:city", "addr:block_number", "addr:conscriptionnumber", "addr:county", "addr:country", "addr:county", "addr:district", "addr:floor", "addr:hamlet", "addr:housename", "addr:housenumber", "addr:neighbourhood", "addr:place", "addr:postcode", "addr:province", "addr:quarter", "addr:state", "addr:street", "addr:subdistrict", "addr:suburb", "addr:unit"], "reference": {"key": "addr"}, "icon": "address", "label": "Address", "strings": {"placeholders": {"block_number": "Block Number", "block_number!jp": "Block No.", "city": "City", "city!jp": "City/Town/Village/Tokyo Special Ward", "city!vn": "City/Town", "conscriptionnumber": "123", "country": "Country", "county": "County", "county!jp": "District", "district": "District", "district!vn": "Arrondissement/Town/District", "floor": "Floor", "hamlet": "Hamlet", "housename": "Housename", "housenumber": "123", "housenumber!jp": "Building No./Lot No.", "neighbourhood": "Neighbourhood", "neighbourhood!jp": "Chōme/Aza/Koaza", "place": "Place", "postcode": "Postcode", "province": "Province", "province!jp": "Prefecture", "quarter": "Quarter", "quarter!jp": "Ōaza/Machi", "state": "State", "street": "Street", "subdistrict": "Subdistrict", "subdistrict!vn": "Ward/Commune/Townlet", "suburb": "Suburb", "suburb!jp": "Ward", "unit": "Unit"}}}, + "address": {"type": "address", "key": "addr", "keys": ["addr:block_number", "addr:city", "addr:block_number", "addr:conscriptionnumber", "addr:county", "addr:country", "addr:county", "addr:district", "addr:floor", "addr:hamlet", "addr:housename", "addr:housenumber", "addr:neighbourhood", "addr:place", "addr:postcode", "addr:province", "addr:quarter", "addr:state", "addr:street", "addr:subdistrict", "addr:suburb", "addr:unit"], "icon": "address", "label": "Address", "strings": {"placeholders": {"block_number": "Block Number", "block_number!jp": "Block No.", "city": "City", "city!jp": "City/Town/Village/Tokyo Special Ward", "city!vn": "City/Town", "conscriptionnumber": "123", "country": "Country", "county": "County", "county!jp": "District", "district": "District", "district!vn": "Arrondissement/Town/District", "floor": "Floor", "hamlet": "Hamlet", "housename": "Housename", "housenumber": "123", "housenumber!jp": "Building No./Lot No.", "neighbourhood": "Neighbourhood", "neighbourhood!jp": "Chōme/Aza/Koaza", "place": "Place", "postcode": "Postcode", "province": "Province", "province!jp": "Prefecture", "quarter": "Quarter", "quarter!jp": "Ōaza/Machi", "state": "State", "street": "Street", "subdistrict": "Subdistrict", "subdistrict!vn": "Ward/Commune/Townlet", "suburb": "Suburb", "suburb!jp": "Ward", "unit": "Unit"}}}, "admin_level": {"key": "admin_level", "type": "number", "minValue": 1, "label": "Admin Level"}, "aerialway": {"key": "aerialway", "type": "typeCombo", "label": "Type"}, "aerialway/access": {"key": "aerialway:access", "type": "combo", "label": "Access", "strings": {"options": {"entry": "Entry", "exit": "Exit", "both": "Both"}}}, @@ -272,6 +272,7 @@ "playground/min_age": {"key": "min_age", "type": "number", "minValue": 0, "label": "Minimum Age"}, "polling_station": {"key": "polling_station", "type": "check", "label": "Polling Place"}, "population": {"key": "population", "type": "text", "label": "Population"}, + "post": {"type": "address", "key": "post", "keys": ["post:block_number", "post:city", "post:block_number", "post:conscriptionnumber", "post:county", "post:country", "post:county", "post:district", "post:floor", "post:hamlet", "post:housename", "post:housenumber", "post:neighbourhood", "post:place", "post:postcode", "post:province", "post:quarter", "post:state", "post:street", "post:subdistrict", "post:suburb", "post:unit"], "label": "Delivery Address"}, "power_supply": {"key": "power_supply", "type": "check", "label": "Power Supply"}, "power": {"key": "power", "type": "typeCombo", "label": "Type"}, "preschool": {"key": "preschool", "type": "check", "label": "Preschool"}, diff --git a/data/presets/fields/address.json b/data/presets/fields/address.json index 0aeceb166d..e5f384e126 100644 --- a/data/presets/fields/address.json +++ b/data/presets/fields/address.json @@ -1,5 +1,6 @@ { "type": "address", + "key": "addr", "keys": [ "addr:block_number", "addr:city", @@ -24,7 +25,6 @@ "addr:suburb", "addr:unit" ], - "reference": {"key": "addr"}, "icon": "address", "label": "Address", "strings": { diff --git a/data/presets/fields/post.json b/data/presets/fields/post.json new file mode 100644 index 0000000000..fb22ab382d --- /dev/null +++ b/data/presets/fields/post.json @@ -0,0 +1,29 @@ +{ + "type": "address", + "key": "post", + "keys": [ + "post:block_number", + "post:city", + "post:block_number", + "post:conscriptionnumber", + "post:county", + "post:country", + "post:county", + "post:district", + "post:floor", + "post:hamlet", + "post:housename", + "post:housenumber", + "post:neighbourhood", + "post:place", + "post:postcode", + "post:province", + "post:quarter", + "post:state", + "post:street", + "post:subdistrict", + "post:suburb", + "post:unit" + ], + "label": "Delivery Address" +} diff --git a/data/presets/presets.json b/data/presets/presets.json index e4ab32dd8b..9ae777a773 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -133,6 +133,7 @@ "amenity/karaoke": {"icon": "maki-karaoke", "fields": ["name", "operator", "address", "building_area", "opening_hours", "website"], "moreFields": ["air_conditioning", "email", "fax", "payment_multi", "phone", "smoking", "wheelchair"], "geometry": ["point", "area"], "terms": ["karaoke club", "karaoke room", "karaoke television", "KTV"], "tags": {"amenity": "karaoke_box"}, "name": "Karaoke Box"}, "amenity/kindergarten": {"icon": "maki-school", "fields": ["name", "operator", "address", "phone", "preschool"], "moreFields": ["email", "fax", "opening_hours", "payment_multi", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["kindergarden", "pre-school"], "tags": {"amenity": "kindergarten"}, "name": "Preschool/Kindergarten Grounds"}, "amenity/language_school": {"icon": "maki-school", "fields": ["name", "operator", "operator/type", "address", "building_area", "opening_hours", "language_multi"], "moreFields": ["email", "fax", "internet_access", "internet_access/fee", "internet_access/ssid", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["esl"], "tags": {"amenity": "language_school"}, "name": "Language School"}, + "amenity/letter_box": {"icon": "temaki-letter_box", "fields": ["post", "access_simple", "collection_times", "height"], "moreFields": ["covered", "indoor", "lit", "manufacturer", "material", "operator", "wheelchair"], "geometry": ["point", "vertex"], "tags": {"amenity": "letter_box"}, "terms": ["curbside delivery box", "home delivery box", "direct-to-door delivery box", "letter hole", "letter plate", "letter slot", "letterbox", "letterhole", "letterplate", "letterslot", "mail box", "mail hole", "mail slot", "mailbox", "mailhole", "mailslot", "through-door delivery box"], "name": "Letter Box"}, "amenity/library": {"icon": "maki-library", "fields": ["name", "operator", "operator/type", "building_area", "address", "ref/isil", "internet_access", "internet_access/fee", "internet_access/ssid"], "moreFields": ["access_simple", "air_conditioning", "email", "fax", "opening_hours", "payment_multi", "phone", "polling_station", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["book"], "tags": {"amenity": "library"}, "name": "Library"}, "amenity/love_hotel": {"icon": "maki-heart", "fields": ["name", "operator", "address", "building_area", "rooms", "internet_access", "internet_access/fee"], "moreFields": ["smoking", "payment_multi", "internet_access/ssid", "website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "love_hotel"}, "name": "Love Hotel"}, "amenity/marketplace": {"icon": "maki-shop", "fields": ["name", "operator", "address", "building", "opening_hours"], "moreFields": ["website", "phone", "email", "fax", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "marketplace"}, "name": "Marketplace"}, diff --git a/data/presets/presets/amenity/letter_box.json b/data/presets/presets/amenity/letter_box.json new file mode 100644 index 0000000000..08901eab30 --- /dev/null +++ b/data/presets/presets/amenity/letter_box.json @@ -0,0 +1,45 @@ +{ + "icon": "temaki-letter_box", + "fields": [ + "post", + "access_simple", + "collection_times", + "height" + ], + "moreFields": [ + "covered", + "indoor", + "lit", + "manufacturer", + "material", + "operator", + "wheelchair" + ], + "geometry": [ + "point", + "vertex" + ], + "tags": { + "amenity": "letter_box" + }, + "terms": [ + "curbside delivery box", + "home delivery box", + "direct-to-door delivery box", + "letter hole", + "letter plate", + "letter slot", + "letterbox", + "letterhole", + "letterplate", + "letterslot", + "mail box", + "mail hole", + "mail slot", + "mailbox", + "mailhole", + "mailslot", + "through-door delivery box" + ], + "name": "Letter Box" +} diff --git a/data/taginfo.json b/data/taginfo.json index 7896241e6d..651a0aa4cf 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -135,6 +135,7 @@ {"key": "amenity", "value": "karaoke_box", "description": "🄿 Karaoke Box", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/karaoke-15.svg"}, {"key": "amenity", "value": "kindergarten", "description": "🄿 Preschool/Kindergarten Grounds", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/school-15.svg"}, {"key": "amenity", "value": "language_school", "description": "🄿 Language School", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/school-15.svg"}, + {"key": "amenity", "value": "letter_box", "description": "🄿 Letter Box", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/letter_box.svg"}, {"key": "amenity", "value": "library", "description": "🄿 Library", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/library-15.svg"}, {"key": "amenity", "value": "love_hotel", "description": "🄿 Love Hotel", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/heart-15.svg"}, {"key": "amenity", "value": "marketplace", "description": "🄿 Marketplace", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, @@ -1566,6 +1567,26 @@ {"key": "max_age", "description": "🄵 Maximum Age"}, {"key": "min_age", "description": "🄵 Minimum Age"}, {"key": "population", "description": "🄵 Population"}, + {"key": "post:block_number", "description": "🄵 Delivery Address"}, + {"key": "post:city", "description": "🄵 Delivery Address"}, + {"key": "post:conscriptionnumber", "description": "🄵 Delivery Address"}, + {"key": "post:county", "description": "🄵 Delivery Address"}, + {"key": "post:country", "description": "🄵 Delivery Address"}, + {"key": "post:district", "description": "🄵 Delivery Address"}, + {"key": "post:floor", "description": "🄵 Delivery Address"}, + {"key": "post:hamlet", "description": "🄵 Delivery Address"}, + {"key": "post:housename", "description": "🄵 Delivery Address"}, + {"key": "post:housenumber", "description": "🄵 Delivery Address"}, + {"key": "post:neighbourhood", "description": "🄵 Delivery Address"}, + {"key": "post:place", "description": "🄵 Delivery Address"}, + {"key": "post:postcode", "description": "🄵 Delivery Address"}, + {"key": "post:province", "description": "🄵 Delivery Address"}, + {"key": "post:quarter", "description": "🄵 Delivery Address"}, + {"key": "post:state", "description": "🄵 Delivery Address"}, + {"key": "post:street", "description": "🄵 Delivery Address"}, + {"key": "post:subdistrict", "description": "🄵 Delivery Address"}, + {"key": "post:suburb", "description": "🄵 Delivery Address"}, + {"key": "post:unit", "description": "🄵 Delivery Address"}, {"key": "power_supply", "description": "🄵 Power Supply"}, {"key": "preschool", "description": "🄵 Preschool"}, {"key": "produce", "description": "🄵 Produce"}, diff --git a/dist/locales/en.json b/dist/locales/en.json index 08e52b81ef..450b921551 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -3692,6 +3692,9 @@ "population": { "label": "Population" }, + "post": { + "label": "Delivery Address" + }, "power_supply": { "label": "Power Supply" }, @@ -4903,6 +4906,10 @@ "name": "Language School", "terms": "esl" }, + "amenity/letter_box": { + "name": "Letter Box", + "terms": "curbside delivery box,home delivery box,direct-to-door delivery box,letter hole,letter plate,letter slot,letterbox,letterhole,letterplate,letterslot,mail box,mail hole,mail slot,mailbox,mailhole,mailslot,through-door delivery box" + }, "amenity/library": { "name": "Library", "terms": "book" diff --git a/modules/ui/fields/address.js b/modules/ui/fields/address.js index 41c1db07fe..139ae96a0b 100644 --- a/modules/ui/fields/address.js +++ b/modules/ui/fields/address.js @@ -14,6 +14,8 @@ export function uiFieldAddress(field, context) { var wrap = d3_select(null); var _isInitialized = false; var _entity; + // needed for placeholder strings + var addrField = context.presets().field('address'); function getNearStreets() { var extent = _entity.extent(context.graph()); @@ -159,8 +161,8 @@ export function uiFieldAddress(field, context) { .property('type', 'text') .attr('placeholder', function (d) { var localkey = d.id + '!' + countryCode; - var tkey = field.strings.placeholders[localkey] ? localkey : d.id; - return field.t('placeholders.' + tkey); + var tkey = addrField.strings.placeholders[localkey] ? localkey : d.id; + return addrField.t('placeholders.' + tkey); }) .attr('class', function (d) { return 'addr-' + d.id; }) .call(utilNoAuto) @@ -220,8 +222,8 @@ export function uiFieldAddress(field, context) { var tags = {}; wrap.selectAll('input') - .each(function (field) { - tags['addr:' + field.id] = this.value || undefined; + .each(function (subfield) { + tags[field.key + ':' + subfield.id] = this.value || undefined; }); dispatch.call('change', this, tags, onInput); @@ -230,8 +232,8 @@ export function uiFieldAddress(field, context) { function updateTags(tags) { - utilGetSetValue(wrap.selectAll('input'), function (field) { - return tags['addr:' + field.id] || ''; + utilGetSetValue(wrap.selectAll('input'), function (subfield) { + return tags[field.key + ':' + subfield.id] || ''; }); } From 3be80cc893626dbfae36a1425a521fab5f7e36db Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 7 Aug 2019 16:07:25 -0500 Subject: [PATCH 273/774] Move most tool availability logic to the tools themselves Combine cancelDrawing and finishDrawing into one tool --- modules/ui/tools/add_favorite.js | 4 + modules/ui/tools/add_recent.js | 8 +- modules/ui/tools/center_zoom.js | 6 + modules/ui/tools/notes.js | 4 + modules/ui/tools/operation.js | 16 +- modules/ui/tools/repeat_add.js | 6 + modules/ui/tools/save.js | 13 ++ modules/ui/tools/segmented.js | 10 +- modules/ui/tools/simple_button.js | 22 ++- modules/ui/tools/stop_draw.js | 64 ++++++++ modules/ui/tools/structure.js | 6 + modules/ui/tools/undo_redo.js | 4 + modules/ui/tools/way_segments.js | 5 + modules/ui/top_toolbar.js | 237 ++++++++++++------------------ 14 files changed, 247 insertions(+), 158 deletions(-) create mode 100644 modules/ui/tools/stop_draw.js diff --git a/modules/ui/tools/add_favorite.js b/modules/ui/tools/add_favorite.js index 986d8466cb..f2b7ee3113 100644 --- a/modules/ui/tools/add_favorite.js +++ b/modules/ui/tools/add_favorite.js @@ -252,6 +252,10 @@ export function uiToolAddFavorite(context) { .classed('disabled', function(d) { return !enabled(d); }); } + tool.available = function() { + return context.presets().getFavorites().length > 0; + }; + tool.install = function() { context .on('enter.editor.favorite', function(entered) { diff --git a/modules/ui/tools/add_recent.js b/modules/ui/tools/add_recent.js index 14c19e6939..93ceb7509e 100644 --- a/modules/ui/tools/add_recent.js +++ b/modules/ui/tools/add_recent.js @@ -76,10 +76,6 @@ export function uiToolAddRecent(context) { return items; } - tool.shouldShow = function() { - return recentsToDraw().length > 0; - }; - var selection = d3_select(null); tool.render = function(sel) { selection = sel; @@ -292,6 +288,10 @@ export function uiToolAddRecent(context) { .classed('disabled', function(d) { return !enabled(d); }); } + tool.available = function() { + return recentsToDraw().length > 0; + }; + tool.install = function() { context .on('enter.editor.recent', function(entered) { diff --git a/modules/ui/tools/center_zoom.js b/modules/ui/tools/center_zoom.js index e0194bf1a2..63a671a43d 100644 --- a/modules/ui/tools/center_zoom.js +++ b/modules/ui/tools/center_zoom.js @@ -27,5 +27,11 @@ export function uiToolCenterZoom(context) { barButtonClass: 'wide' }); + tool.available = function() { + var modeID = context.mode().id; + return (modeID === 'select' && !context.mode().newFeature()) || modeID === 'select-note' || + modeID === 'select-data' || modeID === 'select-error'; + }; + return tool; } diff --git a/modules/ui/tools/notes.js b/modules/ui/tools/notes.js index 8cbca54620..614cab16de 100644 --- a/modules/ui/tools/notes.js +++ b/modules/ui/tools/notes.js @@ -102,6 +102,10 @@ export function uiToolNotes(context) { .merge(buttonsEnter) .classed('disabled', function(d) { return !enabled(d); }); } + + tool.available = function() { + return notesEnabled(); + }; tool.install = function() { diff --git a/modules/ui/tools/operation.js b/modules/ui/tools/operation.js index ab9cc9d9b6..03aefa7000 100644 --- a/modules/ui/tools/operation.js +++ b/modules/ui/tools/operation.js @@ -6,7 +6,7 @@ import { svgIcon } from '../../svg/icon'; import { uiTooltipHtml } from '../tooltipHtml'; import { tooltip } from '../../util/tooltip'; -export function uiToolOperation() { +export function uiToolOperation(context, operationClass) { var operation; @@ -46,16 +46,26 @@ export function uiToolOperation() { button.classed('disabled', operation.disabled()); }; - tool.setOperation = function(op) { + function setOperation(op) { operation = op; tool.id = operation.id; tool.label = operation.title; + } + + tool.available = function() { + var mode = context.mode(); + if (mode.id !== 'select') return false; + var op = operationClass(mode.selectedIDs(), context); + if (op.available()) { + setOperation(op); + return true; + } + return false; }; tool.uninstall = function() { button = null; - operation = null; }; return tool; diff --git a/modules/ui/tools/repeat_add.js b/modules/ui/tools/repeat_add.js index 6cca888270..96881b36c1 100644 --- a/modules/ui/tools/repeat_add.js +++ b/modules/ui/tools/repeat_add.js @@ -50,6 +50,12 @@ export function uiToolRepeatAdd(context) { button.classed('active', mode.repeatAddedFeature()); } + tool.available = function() { + var mode = context.mode(); + if (mode.id === 'add-point' || mode.id === 'add-line' || mode.id === 'add-area') return true; + return (mode.id === 'draw-line' || mode.id === 'draw-area') && !mode.isContinuing; + }; + tool.install = function() { context.keybinding() .on(key, toggleRepeat, true); diff --git a/modules/ui/tools/save.js b/modules/ui/tools/save.js index 58bb5cfcd4..3d00e315cf 100644 --- a/modules/ui/tools/save.js +++ b/modules/ui/tools/save.js @@ -105,6 +105,19 @@ export function uiToolSave(context) { updateCount(); }; + var disallowedModes = new Set([ + 'save', + 'add-point', + 'add-line', + 'add-area', + 'draw-line', + 'draw-area' + ]); + + tool.available = function() { + return !disallowedModes.has(context.mode().id); + }; + tool.install = function() { context.keybinding() .on(key, save, true); diff --git a/modules/ui/tools/segmented.js b/modules/ui/tools/segmented.js index 0c7c43edcc..6574a11f5a 100644 --- a/modules/ui/tools/segmented.js +++ b/modules/ui/tools/segmented.js @@ -29,11 +29,6 @@ export function uiToolSegemented(context) { // override in subclass }; - tool.shouldShow = function() { - if (tool.loadItems) tool.loadItems(); - return tool.items.length > 1; - }; - var container = d3_select(null); tool.render = function(selection) { @@ -95,6 +90,11 @@ export function uiToolSegemented(context) { setActiveItem(tool.items[index]); } + tool.available = function() { + if (tool.loadItems) tool.loadItems(); + return tool.items.length > 1; + }; + tool.install = function() { if (tool.key) { context.keybinding() diff --git a/modules/ui/tools/simple_button.js b/modules/ui/tools/simple_button.js index 41bfb41e78..a1faf68e10 100644 --- a/modules/ui/tools/simple_button.js +++ b/modules/ui/tools/simple_button.js @@ -7,23 +7,31 @@ export function uiToolSimpleButton(protoTool) { var tool = protoTool || {}; + var tooltipBehavior = tooltip() + .placement('bottom') + .html(true); + tool.render = function(selection) { - var tooltipBehavior = tooltip() - .placement('bottom') - .html(true) - .title(uiTooltipHtml(utilFunctor(tool.tooltipText)(), utilFunctor(tool.tooltipKey)())); + tooltipBehavior.title(uiTooltipHtml(utilFunctor(tool.tooltipText)(), utilFunctor(tool.tooltipKey)())); - selection + var button = selection .selectAll('.bar-button') - .data([0]) + .data([0]); + + var buttonEnter = button .enter() .append('button') .attr('class', 'bar-button ' + (utilFunctor(tool.barButtonClass)() || '')) .attr('tabindex', -1) .call(tooltipBehavior) .on('click', tool.onClick) - .call(svgIcon('#' + utilFunctor(tool.iconName)())); + .call(svgIcon('#')); + + button = buttonEnter.merge(button); + + button.selectAll('.icon use') + .attr('href', '#' + utilFunctor(tool.iconName)()); }; return tool; diff --git a/modules/ui/tools/stop_draw.js b/modules/ui/tools/stop_draw.js new file mode 100644 index 0000000000..81c066267f --- /dev/null +++ b/modules/ui/tools/stop_draw.js @@ -0,0 +1,64 @@ + +import { uiToolSimpleButton } from './simple_button'; +import { t } from '../../util/locale'; +import { modeBrowse } from '../../modes/browse'; + +export function uiToolStopDraw(context) { + + var cancelOrFinish = 'cancel'; + + var tool = uiToolSimpleButton({ + id: 'stop_draw', + label: function() { + if (cancelOrFinish === 'finish') { + return t('toolbar.finish'); + } + return t('confirm.cancel'); + }, + iconName: function() { + if (cancelOrFinish === 'finish') { + return 'iD-icon-apply'; + } + return 'iD-icon-close'; + }, + onClick: function() { + var mode = context.mode(); + if (cancelOrFinish === 'finish' && mode.finish) { + mode.finish(); + } else { + context.enter(modeBrowse(context)); + } + }, + tooltipKey: 'Esc', + barButtonClass: 'wide' + }); + + tool.available = function() { + var newCancelOrFinish = drawCancelOrFinish(); + if (newCancelOrFinish) { + cancelOrFinish = newCancelOrFinish; + } + return newCancelOrFinish; + }; + + + function drawCancelOrFinish() { + var mode = context.mode(); + if (mode.id === 'draw-line' || mode.id === 'draw-area') { + var way = context.hasEntity(mode.wayID); + var wayIsDegenerate = way && new Set(way.nodes).size - 1 < (way.isArea() ? 3 : 2); + if (wayIsDegenerate) { + return 'cancel'; + } + return 'finish'; + } else if (mode.id === 'add-point' || mode.id === 'add-line' || mode.id === 'add-area') { + if (mode.addedEntityIDs().length === 0) { + return 'cancel'; + } + return 'finish'; + } + return null; + } + + return tool; +} diff --git a/modules/ui/tools/structure.js b/modules/ui/tools/structure.js index 78d185bf90..cea038229d 100644 --- a/modules/ui/tools/structure.js +++ b/modules/ui/tools/structure.js @@ -164,5 +164,11 @@ export function uiToolStructure(context) { return structureNone; }; + var parentAvailable = tool.available; + tool.available = function() { + var modeID = context.mode().id; + return parentAvailable() && (modeID === 'add-line' || modeID === 'draw-line'); + }; + return tool; } diff --git a/modules/ui/tools/undo_redo.js b/modules/ui/tools/undo_redo.js index faea9e63b6..a0c2ca936b 100644 --- a/modules/ui/tools/undo_redo.js +++ b/modules/ui/tools/undo_redo.js @@ -89,6 +89,10 @@ export function uiToolUndoRedo(context) { }); } + tool.available = function() { + return context.mode().id !== 'save'; + }; + tool.install = function() { context.keybinding() .on(commands[0].cmd, function() { d3_event.preventDefault(); commands[0].action(); }) diff --git a/modules/ui/tools/way_segments.js b/modules/ui/tools/way_segments.js index 71bce57562..2a92cd2214 100644 --- a/modules/ui/tools/way_segments.js +++ b/modules/ui/tools/way_segments.js @@ -31,5 +31,10 @@ export function uiToolWaySegments(context) { return tool.items.filter(function(d) { return d.id === id; })[0]; }; + tool.available = function() { + var mode = context.mode(); + return mode.id.indexOf('line') !== -1 || mode.id.indexOf('area') !== -1; + }; + return tool; } diff --git a/modules/ui/top_toolbar.js b/modules/ui/top_toolbar.js index 1902ee1b09..77ddf54e87 100644 --- a/modules/ui/top_toolbar.js +++ b/modules/ui/top_toolbar.js @@ -3,17 +3,34 @@ import { select as d3_select } from 'd3-selection'; import { t } from '../util/locale'; +import { utilFunctor } from '../util/util'; import { modeBrowse } from '../modes/browse'; import _debounce from 'lodash-es/debounce'; +import { operationCircularize, operationContinue, operationDelete, operationDisconnect, + operationDowngrade, operationExtract, operationMerge, operationOrthogonalize, + operationReverse, operationSplit, operationStraighten } from '../operations'; import { uiToolAddFavorite, uiToolAddRecent, uiToolNotes, uiToolOperation, uiToolSave, uiToolAddFeature, uiToolUndoRedo } from './tools'; import { uiToolSimpleButton } from './tools/simple_button'; import { uiToolWaySegments } from './tools/way_segments'; import { uiToolRepeatAdd } from './tools/repeat_add'; import { uiToolStructure } from './tools/structure'; import { uiToolCenterZoom } from './tools/center_zoom'; +import { uiToolStopDraw } from './tools/stop_draw'; export function uiTopToolbar(context) { + var circularize = uiToolOperation(context, operationCircularize), + continueTool = uiToolOperation(context, operationContinue), + deleteTool = uiToolOperation(context, operationDelete), + disconnect = uiToolOperation(context, operationDisconnect), + downgrade = uiToolOperation(context, operationDowngrade), + extract = uiToolOperation(context, operationExtract), + merge = uiToolOperation(context, operationMerge), + orthogonalize = uiToolOperation(context, operationOrthogonalize), + reverse = uiToolOperation(context, operationReverse), + split = uiToolOperation(context, operationSplit), + straighten = uiToolOperation(context, operationStraighten); + var addFeature = uiToolAddFeature(context), addFavorite = uiToolAddFavorite(context), addRecent = uiToolAddRecent(context), @@ -24,6 +41,7 @@ export function uiTopToolbar(context) { structure = uiToolStructure(context), repeatAdd = uiToolRepeatAdd(context), centerZoom = uiToolCenterZoom(context), + stopDraw = uiToolStopDraw(context), deselect = uiToolSimpleButton({ id: 'deselect', label: t('toolbar.deselect.title'), @@ -33,7 +51,7 @@ export function uiTopToolbar(context) { }, tooltipKey: 'Esc' }), - cancelDrawing = uiToolSimpleButton({ + cancelSave = uiToolSimpleButton({ id: 'cancel', label: t('confirm.cancel'), iconName: 'iD-icon-close', @@ -41,158 +59,97 @@ export function uiTopToolbar(context) { context.enter(modeBrowse(context)); }, tooltipKey: 'Esc', - barButtonClass: 'wide' - }), - finishDrawing = uiToolSimpleButton({ - id: 'finish', - label: t('toolbar.finish'), - iconName: 'iD-icon-apply', - onClick: function() { - var mode = context.mode(); - if (mode.finish) { - mode.finish(); - } else { - context.enter(modeBrowse(context)); - } - }, - tooltipKey: 'Esc', - barButtonClass: 'wide' + available: function() { + return context.mode().id === 'save'; + } }); - var supportedOperationIDs = ['circularize', 'continue', 'delete', 'disconnect', 'downgrade', 'extract', 'merge', 'orthogonalize', 'reverse', 'split', 'straighten']; - - var operationToolsByID = {}; + function allowedTools() { - function notesEnabled() { - var noteLayer = context.layers().layer('notes'); - return noteLayer && noteLayer.enabled(); - } - - function operationTool(operation) { - if (!operationToolsByID[operation.id]) { - // cache the tools - operationToolsByID[operation.id] = uiToolOperation(context); - } - var tool = operationToolsByID[operation.id]; - tool.setOperation(operation); - return tool; - } + var mode = context.mode(); + if (!mode) return []; - function toolsToShow() { + var tools; - var tools = []; + if (mode.id === 'save') { - var mode = context.mode(); - if (!mode) return tools; + tools = [ + cancelSave, + 'spacer' + ]; - if (mode.id === 'save') { - tools.push(cancelDrawing); - tools.push('spacer'); } else if (mode.id === 'select' && !mode.newFeature() && - mode.selectedIDs().every(function(id) { return context.graph().hasEntity(id); })) { - - tools.push(deselect); - tools.push('spacer'); - tools.push(centerZoom); - tools.push('spacer'); - - var operationTools = []; - var operations = mode.operations().filter(function(operation) { - return supportedOperationIDs.indexOf(operation.id) !== -1; - }); - var deleteTool; - for (var i in operations) { - var operation = operations[i]; - var tool = operationTool(operation); - if (operation.id !== 'delete' && operation.id !== 'downgrade') { - operationTools.push(tool); - } else { - deleteTool = tool; - } - } - tools = tools.concat(operationTools); - if (deleteTool) { - // keep the delete button apart from the others - if (operationTools.length > 0) { - tools.push('spacer'); - } - tools.push(deleteTool); - } - tools.push('spacer'); - - tools = tools.concat([undoRedo, save]); + mode.selectedIDs().every(function(id) { + return context.graph().hasEntity(id); + })) { + + tools = [ + deselect, + 'spacer', + centerZoom, + 'spacer', + circularize, + continueTool, + disconnect, + extract, + merge, + orthogonalize, + reverse, + split, + straighten, + 'spacer', + downgrade, + deleteTool, + 'spacer', + undoRedo, + save + ]; } else if (mode.id === 'add-point' || mode.id === 'add-line' || mode.id === 'add-area' || mode.id === 'draw-line' || mode.id === 'draw-area') { - tools.push('spacer'); - - if (mode.id.indexOf('line') !== -1 && structure.shouldShow()) { - tools.push(structure); - tools.push('spacer'); - } - - if (mode.id.indexOf('line') !== -1 || mode.id.indexOf('area') !== -1) { - tools.push(waySegments); - tools.push('spacer'); - } - - if (mode.id.indexOf('draw') !== -1) { - - if (!mode.isContinuing) { - tools.push(repeatAdd); - } - tools.push(undoRedo); - - var way = context.hasEntity(mode.wayID); - var wayIsDegenerate = way && new Set(way.nodes).size - 1 < (way.isArea() ? 3 : 2); - if (!wayIsDegenerate) { - tools.push(finishDrawing); - } else { - tools.push(cancelDrawing); - } - } else { - - tools.push(repeatAdd); - - tools.push(undoRedo); - - if (mode.addedEntityIDs().length > 0) { - tools.push(finishDrawing); - } else { - tools.push(cancelDrawing); - } - } + tools = [ + 'spacer', + structure, + 'spacer', + waySegments, + 'spacer', + repeatAdd, + undoRedo, + stopDraw + ]; } else { - tools.push('spacer'); - - if (mode.id === 'select-note' || mode.id === 'select-data' || mode.id === 'select-error') { - tools.push(centerZoom); - tools.push('spacer'); - } - - tools.push(addFeature); - - if (context.presets().getFavorites().length > 0) { - tools.push(addFavorite); - } - - if (addRecent.shouldShow()) { - tools.push(addRecent); - } + tools = [ + 'spacer', + centerZoom, + 'spacer', + addFeature, + addFavorite, + addRecent, + 'spacer', + notes, + 'spacer', + undoRedo, + save + ]; + } - tools.push('spacer'); + tools = tools.filter(function(tool) { + return !tool.available || tool.available(); + }); - if (notesEnabled()) { - tools = tools.concat([notes, 'spacer']); + var deduplicatedTools = []; + // remove adjacent duplicates (i.e. spacers) + tools.forEach(function(tool) { + if (!deduplicatedTools.length || deduplicatedTools[deduplicatedTools.length - 1] !== tool) { + deduplicatedTools.push(tool); } - tools = tools.concat([undoRedo, save]); - } + }); - return tools; + return deduplicatedTools; } function topToolbar(bar) { @@ -217,7 +174,7 @@ export function uiTopToolbar(context) { function update() { - var tools = toolsToShow(); + var tools = allowedTools(); var toolbarItems = bar.selectAll('.toolbar-item') .data(tools, function(d) { @@ -258,15 +215,17 @@ export function uiTopToolbar(context) { actionableItems .append('div') - .attr('class', 'item-label') - .text(function(d) { - return d.label; - }); + .attr('class', 'item-label'); - toolbarItems.merge(itemsEnter) + toolbarItems = toolbarItems.merge(itemsEnter) .each(function(d){ if (d.render) d3_select(this).select('.item-content').call(d.render, bar); }); + + toolbarItems.selectAll('.item-label') + .text(function(d) { + return utilFunctor(d.label)(); + }); } } From d5c9312f0a724d8e769f671995337f5ea1e69cef Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 7 Aug 2019 16:37:17 -0500 Subject: [PATCH 274/774] Enable undoing zoom to center (close #6611) --- data/core.yaml | 2 + dist/locales/en.json | 4 +- modules/ui/tools/center_zoom.js | 59 ++++++++++++++++++++----- svg/iD-sprite/icons/icon-frame-back.svg | 5 +++ 4 files changed, 57 insertions(+), 13 deletions(-) create mode 100644 svg/iD-sprite/icons/icon-frame-back.svg diff --git a/data/core.yaml b/data/core.yaml index dd37bd1a0d..a66604746c 100644 --- a/data/core.yaml +++ b/data/core.yaml @@ -11,6 +11,8 @@ en: toolbar: center_zoom: title: Center + return_tooltip: Undo centering on this. + return: Return deselect: title: Deselect undo_redo: Undo / Redo diff --git a/dist/locales/en.json b/dist/locales/en.json index a304760ea9..06336d9390 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -12,8 +12,10 @@ }, "toolbar": { "center_zoom": { - "title": "Center" + "title": "Center", + "return_tooltip": "Undo centering on this." }, + "return": "Return", "deselect": { "title": "Deselect" }, diff --git a/modules/ui/tools/center_zoom.js b/modules/ui/tools/center_zoom.js index 63a671a43d..5ca965db68 100644 --- a/modules/ui/tools/center_zoom.js +++ b/modules/ui/tools/center_zoom.js @@ -4,23 +4,47 @@ import { t } from '../../util/locale'; export function uiToolCenterZoom(context) { + var originTransform; + var tool = uiToolSimpleButton({ id: 'center_zoom', - label: t('toolbar.center_zoom.title'), - iconName: 'iD-icon-frame-pin', + label: function() { + if (!originTransform) { + return t('toolbar.center_zoom.title'); + } else { + return t('toolbar.return'); + } + }, + iconName: function() { + if (!originTransform) { + return 'iD-icon-frame-pin'; + } else { + return 'iD-icon-frame-back'; + } + }, onClick: function() { - context.mode().zoomToSelected(); + if (!originTransform) { + context.mode().zoomToSelected(); + originTransform = context.projection.transform(); + } else { + context.map().transformEase(originTransform); + originTransform = null; + } }, tooltipText: function() { - var mode = context.mode(); - if (mode.id === 'select') { - return t('inspector.zoom_to.tooltip_feature'); - } else if (mode.id === 'select-note') { - return t('inspector.zoom_to.tooltip_note'); - } else if (mode.id === 'select-data') { - return t('inspector.zoom_to.tooltip_data'); - } else if (mode.id === 'select-error') { - return t('inspector.zoom_to.tooltip_issue'); + if (!originTransform) { + var mode = context.mode(); + if (mode.id === 'select') { + return t('inspector.zoom_to.tooltip_feature'); + } else if (mode.id === 'select-note') { + return t('inspector.zoom_to.tooltip_note'); + } else if (mode.id === 'select-data') { + return t('inspector.zoom_to.tooltip_data'); + } else if (mode.id === 'select-error') { + return t('inspector.zoom_to.tooltip_issue'); + } + } else { + return t('toolbar.center_zoom.return_tooltip'); } }, tooltipKey: t('inspector.zoom_to.key'), @@ -33,5 +57,16 @@ export function uiToolCenterZoom(context) { modeID === 'select-data' || modeID === 'select-error'; }; + tool.install = function() { + context.on('enter.uiToolCenterZoom', function() { + originTransform = null; + }); + }; + + tool.uninstall = function() { + context.on('enter.uiToolCenterZoom', null); + originTransform = null; + }; + return tool; } diff --git a/svg/iD-sprite/icons/icon-frame-back.svg b/svg/iD-sprite/icons/icon-frame-back.svg new file mode 100644 index 0000000000..bb48e9f98b --- /dev/null +++ b/svg/iD-sprite/icons/icon-frame-back.svg @@ -0,0 +1,5 @@ + + + + + From 06c3ace58df83918851d16fecb9dbc0afb316f27 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Thu, 8 Aug 2019 08:54:27 -0500 Subject: [PATCH 275/774] Change `charge` field placeholders to use currency codes instead of symbols (close #6729) --- data/presets.yaml | 4 ++-- data/presets/fields.json | 4 ++-- data/presets/fields/charge_fee.json | 2 +- data/presets/fields/charge_toll.json | 2 +- dist/locales/en.json | 4 ++-- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/data/presets.yaml b/data/presets.yaml index a910749ec9..74d47e2c1c 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -358,12 +358,12 @@ en: # charge=* label: Fee Amount # charge_fee field placeholder - placeholder: '€1, $5, ¥10…' + placeholder: '1 EUR, 5 USD, 10 JPY…' charge_toll: # charge=* label: Toll Amount # charge_toll field placeholder - placeholder: '€1, $5, ¥10…' + placeholder: '1 EUR, 5 USD, 10 JPY…' check_date: # check_date=* label: Last Checked Date diff --git a/data/presets/fields.json b/data/presets/fields.json index b06d4c9e71..fec6bba3bf 100644 --- a/data/presets/fields.json +++ b/data/presets/fields.json @@ -59,8 +59,8 @@ "capacity": {"key": "capacity", "type": "number", "minValue": 0, "label": "Capacity", "placeholder": "50, 100, 200..."}, "cash_in": {"key": "cash_in", "type": "check", "label": "Cash In"}, "castle_type": {"key": "castle_type", "type": "combo", "label": "Type"}, - "charge_fee": {"key": "charge", "type": "text", "label": "Fee Amount", "placeholder": "€1, $5, ¥10…", "prerequisiteTag": {"key": "fee", "valueNot": "no"}}, - "charge_toll": {"key": "charge", "type": "text", "label": "Toll Amount", "placeholder": "€1, $5, ¥10…", "prerequisiteTag": {"key": "toll", "valueNot": "no"}}, + "charge_fee": {"key": "charge", "type": "text", "label": "Fee Amount", "placeholder": "1 EUR, 5 USD, 10 JPY…", "prerequisiteTag": {"key": "fee", "valueNot": "no"}}, + "charge_toll": {"key": "charge", "type": "text", "label": "Toll Amount", "placeholder": "1 EUR, 5 USD, 10 JPY…", "prerequisiteTag": {"key": "toll", "valueNot": "no"}}, "check_date": {"key": "check_date", "type": "text", "label": "Last Checked Date"}, "clothes": {"key": "clothes", "type": "semiCombo", "label": "Clothes"}, "club": {"key": "club", "type": "typeCombo", "label": "Type"}, diff --git a/data/presets/fields/charge_fee.json b/data/presets/fields/charge_fee.json index ca63eb11b1..e432b53330 100644 --- a/data/presets/fields/charge_fee.json +++ b/data/presets/fields/charge_fee.json @@ -2,7 +2,7 @@ "key": "charge", "type": "text", "label": "Fee Amount", - "placeholder": "€1, $5, ¥10…", + "placeholder": "1 EUR, 5 USD, 10 JPY…", "prerequisiteTag": { "key": "fee", "valueNot": "no" diff --git a/data/presets/fields/charge_toll.json b/data/presets/fields/charge_toll.json index 265d818302..5f3eef9299 100644 --- a/data/presets/fields/charge_toll.json +++ b/data/presets/fields/charge_toll.json @@ -2,7 +2,7 @@ "key": "charge", "type": "text", "label": "Toll Amount", - "placeholder": "€1, $5, ¥10…", + "placeholder": "1 EUR, 5 USD, 10 JPY…", "prerequisiteTag": { "key": "toll", "valueNot": "no" diff --git a/dist/locales/en.json b/dist/locales/en.json index 450b921551..40475c4baa 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -2711,11 +2711,11 @@ }, "charge_fee": { "label": "Fee Amount", - "placeholder": "€1, $5, ¥10…" + "placeholder": "1 EUR, 5 USD, 10 JPY…" }, "charge_toll": { "label": "Toll Amount", - "placeholder": "€1, $5, ¥10…" + "placeholder": "1 EUR, 5 USD, 10 JPY…" }, "check_date": { "label": "Last Checked Date" From 4bae2a8aa77498975fa6db793ce215a20bc82029 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Thu, 8 Aug 2019 09:14:04 -0500 Subject: [PATCH 276/774] Reduce the maximum number of recent presets shown in the toolbar from 10 to 5 (re: #6044) --- modules/ui/tools/add_recent.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ui/tools/add_recent.js b/modules/ui/tools/add_recent.js index 93ceb7509e..38bcad42f5 100644 --- a/modules/ui/tools/add_recent.js +++ b/modules/ui/tools/add_recent.js @@ -45,7 +45,7 @@ export function uiToolAddRecent(context) { function recentsToDraw() { var maxShown = 10; - var maxRecents = 10; + var maxRecents = 5; var favorites = context.presets().getFavorites().slice(0, maxShown); From 47ab51630e00b85cd14f489524d68483364b2891 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Thu, 8 Aug 2019 09:58:22 -0500 Subject: [PATCH 277/774] Refactor uiToolAddRecent and uiToolAddFavorite to reduce duplicate code --- modules/ui/tools/add_favorite.js | 287 ++-------------------------- modules/ui/tools/add_recent.js | 293 +---------------------------- modules/ui/tools/quick_presets.js | 300 ++++++++++++++++++++++++++++++ 3 files changed, 324 insertions(+), 556 deletions(-) create mode 100644 modules/ui/tools/quick_presets.js diff --git a/modules/ui/tools/add_favorite.js b/modules/ui/tools/add_favorite.js index f2b7ee3113..bff087a789 100644 --- a/modules/ui/tools/add_favorite.js +++ b/modules/ui/tools/add_favorite.js @@ -1,90 +1,16 @@ -import _debounce from 'lodash-es/debounce'; - -import { drag as d3_drag } from 'd3-drag'; -import { event as d3_event, select as d3_select } from 'd3-selection'; - -import { modeAddArea, modeAddLine, modeAddPoint, modeBrowse } from '../../modes'; -import { t, textDirection } from '../../util/locale'; -import { tooltip } from '../../util/tooltip'; -import { uiPresetIcon } from '../preset_icon'; -import { uiTooltipHtml } from '../tooltipHtml'; - +import { t } from '../../util/locale'; +import { uiToolQuickPresets } from './quick_presets'; export function uiToolAddFavorite(context) { - var tool = { - id: 'add_favorite', - itemClass: 'modes', - label: t('toolbar.favorites') - }; - - function enabled() { - return context.editable(); - } - - function toggleMode(d) { - if (!enabled(d)) return; + var tool = uiToolQuickPresets(context); + tool.id = 'add_favorite'; + tool.label = t('toolbar.favorites'); - if (context.mode().id.includes('draw') && context.mode().finish) { - // gracefully complete the feature currently being drawn - var didFinish = context.mode().finish(); - if (!didFinish) return; - } - - if (context.mode().id.includes('add') && d.button === context.mode().button) { - context.enter(modeBrowse(context)); - } else { - if (d.preset) { - context.presets().setMostRecent(d.preset, d.geometry); - } - context.enter(d); - } - } - - var selection = d3_select(null); - - tool.render = function(sel) { - selection = sel; - update(); - }; - - function update() { - - for (var i = 0; i <= 9; i++) { - context.keybinding().off(i.toString()); - } - - var items = context.presets().getFavorites(); - - var modes = items.map(function(d, index) { - var presetName = d.preset.name().split(' – ')[0]; - var markerClass = 'add-preset add-' + d.geometry + ' add-preset-' + presetName.replace(/\s+/g, '_') - + '-' + d.geometry + ' add-' + d.source; // replace spaces with underscores to avoid css interpretation - if (d.preset.isFallback()) { - markerClass += ' add-generic-preset'; - } - - var supportedGeometry = d.preset.geometry.filter(function(geometry) { - return ['vertex', 'point', 'line', 'area'].indexOf(geometry) !== -1; - }); - var vertexIndex = supportedGeometry.indexOf('vertex'); - if (vertexIndex !== -1 && supportedGeometry.indexOf('point') !== -1) { - // both point and vertex allowed, just combine them - supportedGeometry.splice(vertexIndex, 1); - } - var tooltipTitleID = 'modes.add_preset.title'; - if (supportedGeometry.length !== 1) { - if (d.preset.setTags({}, d.geometry).building) { - tooltipTitleID = 'modes.add_preset.building.title'; - } else { - tooltipTitleID = 'modes.add_preset.' + context.presets().fallback(d.geometry).id + '.title'; - } - } - var protoMode = Object.assign({}, d); // shallow copy - protoMode.button = markerClass; - protoMode.title = presetName; - protoMode.description = t(tooltipTitleID, { feature: '' + presetName + '' }); + tool.itemsToDraw = function() { + var items = context.presets().getFavorites().slice(0, 10); + items.forEach(function(item, index) { var keyCode; // use number row order: 1 2 3 4 5 6 7 8 9 0 // use the same for RTL even though the layout is backward: #6107 @@ -94,202 +20,17 @@ export function uiToolAddFavorite(context) { keyCode = index + 1; } if (keyCode !== undefined) { - protoMode.key = keyCode.toString(); - } - - var mode; - switch (d.geometry) { - case 'point': - case 'vertex': - mode = modeAddPoint(context, protoMode); - break; - case 'line': - mode = modeAddLine(context, protoMode); - break; - case 'area': - mode = modeAddArea(context, protoMode); + item.key = keyCode.toString(); } - - if (mode.key) { - context.keybinding().off(mode.key); - context.keybinding().on(mode.key, function() { - toggleMode(mode); - }); - } - - return mode; }); - var buttons = selection.selectAll('button.add-button') - .data(modes, function(d, index) { return d.button + index; }); - - // exit - buttons.exit() - .remove(); - - // enter - var buttonsEnter = buttons.enter() - .append('button') - .attr('tabindex', -1) - .attr('class', function(d) { - return d.button + ' add-button bar-button'; - }) - .on('click.mode-buttons', function(d) { - - // When drawing, ignore accidental clicks on mode buttons - #4042 - if (/^draw/.test(context.mode().id)) return; - - toggleMode(d); - }) - .call(tooltip() - .placement('bottom') - .html(true) - .title(function(d) { return uiTooltipHtml(d.description, d.key); }) - ); - - buttonsEnter - .each(function(d) { - d3_select(this) - .call(uiPresetIcon(context) - .geometry((d.geometry === 'point' && !d.preset.matchGeometry(d.geometry)) ? 'vertex' : d.geometry) - .preset(d.preset) - .sizeClass('small') - .pointMarker(true) - ); - }); - - var dragOrigin, dragMoved, targetIndex; - - buttonsEnter.call(d3_drag() - .on('start', function() { - dragOrigin = { - x: d3_event.x, - y: d3_event.y - }; - targetIndex = null; - dragMoved = false; - }) - .on('drag', function(d, index) { - dragMoved = true; - var x = d3_event.x - dragOrigin.x, - y = d3_event.y - dragOrigin.y; - - if (!d3_select(this).classed('dragging') && - // don't display drag until dragging beyond a distance threshold - Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2)) <= 5) return; - - d3_select(this) - .classed('dragging', true) - .classed('removing', y > 50); - - targetIndex = null; - - selection.selectAll('button.add-preset') - .style('transform', function(d2, index2) { - var node = d3_select(this).node(); - if (index === index2) { - return 'translate(' + x + 'px, ' + y + 'px)'; - } else if (y > 50) { - if (index2 > index) { - return 'translateX(' + (textDirection === 'rtl' ? '' : '-') + '100%)'; - } - } else if (d.source === d2.source) { - if (index2 > index && ( - (d3_event.x > node.offsetLeft && textDirection === 'ltr') || - (d3_event.x < node.offsetLeft + node.offsetWidth && textDirection === 'rtl') - )) { - if (targetIndex === null || index2 > targetIndex) { - targetIndex = index2; - } - return 'translateX(' + (textDirection === 'rtl' ? '' : '-') + '100%)'; - } else if (index2 < index && ( - (d3_event.x < node.offsetLeft + node.offsetWidth && textDirection === 'ltr') || - (d3_event.x > node.offsetLeft && textDirection === 'rtl') - )) { - if (targetIndex === null || index2 < targetIndex) { - targetIndex = index2; - } - return 'translateX(' + (textDirection === 'rtl' ? '-' : '') + '100%)'; - } - } - return null; - }); - }) - .on('end', function(d, index) { - - if (dragMoved && !d3_select(this).classed('dragging')) { - toggleMode(d); - return; - } - - d3_select(this) - .classed('dragging', false) - .classed('removing', false); - - selection.selectAll('button.add-preset') - .style('transform', null); - - var y = d3_event.y - dragOrigin.y; - if (y > 50) { - // dragged out of the top bar, remove - if (d.isFavorite()) { - context.presets().removeFavorite(d.preset, d.geometry); - // also remove this as a recent so it doesn't still appear - context.presets().removeRecent(d.preset, d.geometry); - } - } else if (targetIndex !== null) { - // dragged to a new position, reorder - if (d.isFavorite()) { - context.presets().moveFavorite(index, targetIndex); - } - } - }) - ); - - // update - buttons = buttons - .merge(buttonsEnter) - .classed('disabled', function(d) { return !enabled(d); }); - } - - tool.available = function() { - return context.presets().getFavorites().length > 0; - }; - - tool.install = function() { - context - .on('enter.editor.favorite', function(entered) { - selection.selectAll('button.add-button') - .classed('active', function(mode) { return entered.button === mode.button; }); - }); - - var debouncedUpdate = _debounce(update, 500, { leading: true, trailing: true }); - - context.map() - .on('move.favorite', debouncedUpdate) - .on('drawn.favorite', debouncedUpdate); - - context - .on('enter.favorite', update) - .presets() - .on('favoritePreset.favorite', update) - .on('recentsChange.favorite', update); + return items; }; - tool.uninstall = function() { - - context - .on('enter.editor.favorite', null) - .on('exit.editor.favorite', null) - .on('enter.favorite', null); - - context.presets() - .on('favoritePreset.favorite', null) - .on('recentsChange.favorite', null); - - context.map() - .on('move.favorite', null) - .on('drawn.favorite', null); + tool.willUpdate = function() { + for (var i = 0; i <= 9; i++) { + context.keybinding().off(i.toString()); + } }; return tool; diff --git a/modules/ui/tools/add_recent.js b/modules/ui/tools/add_recent.js index 38bcad42f5..4743e1d81f 100644 --- a/modules/ui/tools/add_recent.js +++ b/modules/ui/tools/add_recent.js @@ -1,53 +1,18 @@ -import _debounce from 'lodash-es/debounce'; - -import { drag as d3_drag } from 'd3-drag'; -import { event as d3_event, select as d3_select } from 'd3-selection'; - -import { modeAddArea, modeAddLine, modeAddPoint, modeBrowse } from '../../modes'; -import { t, textDirection } from '../../util/locale'; -import { tooltip } from '../../util/tooltip'; -import { uiPresetIcon } from '../preset_icon'; -import { uiTooltipHtml } from '../tooltipHtml'; - +import { t } from '../../util/locale'; +import { uiToolQuickPresets } from './quick_presets'; export function uiToolAddRecent(context) { - var tool = { - id: 'add_recent', - itemClass: 'modes', - label: t('toolbar.recent') - }; - - function enabled() { - return context.editable(); - } + var tool = uiToolQuickPresets(context); + tool.id = 'add_recent'; + tool.label = t('toolbar.recent'); - function toggleMode(d) { - if (!enabled(d)) return; - - if (context.mode().id.includes('draw') && context.mode().finish) { - // gracefully complete the feature currently being drawn - var didFinish = context.mode().finish(); - if (!didFinish) return; - } - - if (context.mode().id.includes('add') && d.button === context.mode().button) { - context.enter(modeBrowse(context)); - } else { - if (d.preset && - // don't set a recent as most recent to avoid reordering buttons - !d.isRecent()) { - context.presets().setMostRecent(d.preset, d.geometry); - } - context.enter(d); - } - } - - function recentsToDraw() { + tool.itemsToDraw = function() { var maxShown = 10; var maxRecents = 5; var favorites = context.presets().getFavorites().slice(0, maxShown); + var favoritesCount = favorites.length; function isAFavorite(recent) { return favorites.some(function(favorite) { @@ -55,7 +20,6 @@ export function uiToolAddRecent(context) { }); } - var favoritesCount = favorites.length; maxRecents = Math.min(maxRecents, maxShown - favoritesCount); var items = []; if (maxRecents > 0) { @@ -73,49 +37,7 @@ export function uiToolAddRecent(context) { } } - return items; - } - - var selection = d3_select(null); - tool.render = function(sel) { - selection = sel; - update(); - }; - - function update() { - - var items = recentsToDraw(); - var favoritesCount = context.presets().getFavorites().length; - - var modes = items.map(function(d, index) { - var presetName = d.preset.name().split(' – ')[0]; - var markerClass = 'add-preset add-' + d.geometry + ' add-preset-' + presetName.replace(/\s+/g, '_') - + '-' + d.geometry + ' add-' + d.source; // replace spaces with underscores to avoid css interpretation - if (d.preset.isFallback()) { - markerClass += ' add-generic-preset'; - } - - var supportedGeometry = d.preset.geometry.filter(function(geometry) { - return ['vertex', 'point', 'line', 'area'].indexOf(geometry) !== -1; - }); - var vertexIndex = supportedGeometry.indexOf('vertex'); - if (vertexIndex !== -1 && supportedGeometry.indexOf('point') !== -1) { - // both point and vertex allowed, just combine them - supportedGeometry.splice(vertexIndex, 1); - } - var tooltipTitleID = 'modes.add_preset.title'; - if (supportedGeometry.length !== 1) { - if (d.preset.setTags({}, d.geometry).building) { - tooltipTitleID = 'modes.add_preset.building.title'; - } else { - tooltipTitleID = 'modes.add_preset.' + context.presets().fallback(d.geometry).id + '.title'; - } - } - var protoMode = Object.assign({}, d); // shallow copy - protoMode.button = markerClass; - protoMode.title = presetName; - protoMode.description = t(tooltipTitleID, { feature: '' + presetName + '' }); - + items.forEach(function(item, index) { var totalIndex = favoritesCount + index; var keyCode; // use number row order: 1 2 3 4 5 6 7 8 9 0 @@ -126,206 +48,11 @@ export function uiToolAddRecent(context) { keyCode = totalIndex + 1; } if (keyCode !== undefined) { - protoMode.key = keyCode.toString(); - } - - var mode; - switch (d.geometry) { - case 'point': - case 'vertex': - mode = modeAddPoint(context, protoMode); - break; - case 'line': - mode = modeAddLine(context, protoMode); - break; - case 'area': - mode = modeAddArea(context, protoMode); - } - - if (mode.key) { - context.keybinding().off(mode.key); - context.keybinding().on(mode.key, function() { - toggleMode(mode); - }); + item.key = keyCode.toString(); } - - return mode; }); - var buttons = selection.selectAll('button.add-button') - .data(modes, function(d, index) { return d.button + index; }); - - // exit - buttons.exit() - .remove(); - - // enter - var buttonsEnter = buttons.enter() - .append('button') - .attr('tabindex', -1) - .attr('class', function(d) { - return d.button + ' add-button bar-button'; - }) - .on('click.mode-buttons', function(d) { - - // When drawing, ignore accidental clicks on mode buttons - #4042 - if (/^draw/.test(context.mode().id)) return; - - toggleMode(d); - }) - .call(tooltip() - .placement('bottom') - .html(true) - .title(function(d) { return uiTooltipHtml(d.description, d.key); }) - ); - - buttonsEnter - .each(function(d) { - d3_select(this) - .call(uiPresetIcon(context) - .geometry((d.geometry === 'point' && !d.preset.matchGeometry(d.geometry)) ? 'vertex' : d.geometry) - .preset(d.preset) - .sizeClass('small') - .pointMarker(true) - ); - }); - - var dragOrigin, dragMoved, targetIndex, targetData; - - buttonsEnter.call(d3_drag() - .on('start', function() { - dragOrigin = { - x: d3_event.x, - y: d3_event.y - }; - targetIndex = null; - targetData = null; - dragMoved = false; - }) - .on('drag', function(d, index) { - dragMoved = true; - var x = d3_event.x - dragOrigin.x, - y = d3_event.y - dragOrigin.y; - - if (!d3_select(this).classed('dragging') && - // don't display drag until dragging beyond a distance threshold - Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2)) <= 5) return; - - d3_select(this) - .classed('dragging', true) - .classed('removing', y > 50); - - targetIndex = null; - targetData = null; - - selection.selectAll('button.add-preset') - .style('transform', function(d2, index2) { - var node = d3_select(this).node(); - if (index === index2) { - return 'translate(' + x + 'px, ' + y + 'px)'; - } else if (y > 50) { - if (index2 > index) { - return 'translateX(' + (textDirection === 'rtl' ? '' : '-') + '100%)'; - } - } else if (d.source === d2.source) { - if (index2 > index && ( - (d3_event.x > node.offsetLeft && textDirection === 'ltr') || - (d3_event.x < node.offsetLeft + node.offsetWidth && textDirection === 'rtl') - )) { - if (targetIndex === null || index2 > targetIndex) { - targetIndex = index2; - targetData = d2; - } - return 'translateX(' + (textDirection === 'rtl' ? '' : '-') + '100%)'; - } else if (index2 < index && ( - (d3_event.x < node.offsetLeft + node.offsetWidth && textDirection === 'ltr') || - (d3_event.x > node.offsetLeft && textDirection === 'rtl') - )) { - if (targetIndex === null || index2 < targetIndex) { - targetIndex = index2; - targetData = d2; - } - return 'translateX(' + (textDirection === 'rtl' ? '-' : '') + '100%)'; - } - } - return null; - }); - }) - .on('end', function(d) { - - if (dragMoved && !d3_select(this).classed('dragging')) { - toggleMode(d); - return; - } - - d3_select(this) - .classed('dragging', false) - .classed('removing', false); - - selection.selectAll('button.add-preset') - .style('transform', null); - - var y = d3_event.y - dragOrigin.y; - if (y > 50) { - // dragged out of the top bar, remove - if (d.isRecent()) { - context.presets().removeRecent(d.preset, d.geometry); - } - } else if (targetIndex !== null) { - // dragged to a new position, reorder - if (d.isRecent()) { - var item = context.presets().recentMatching(d.preset, d.geometry); - var beforeItem = context.presets().recentMatching(targetData.preset, targetData.geometry); - context.presets().moveRecent(item, beforeItem); - } - } - }) - ); - - // update - buttons = buttons - .merge(buttonsEnter) - .classed('disabled', function(d) { return !enabled(d); }); - } - - tool.available = function() { - return recentsToDraw().length > 0; - }; - - tool.install = function() { - context - .on('enter.editor.recent', function(entered) { - selection.selectAll('button.add-button') - .classed('active', function(mode) { return entered.button === mode.button; }); - }); - - var debouncedUpdate = _debounce(update, 500, { leading: true, trailing: true }); - - context.map() - .on('move.recent', debouncedUpdate) - .on('drawn.recent', debouncedUpdate); - - context - .on('enter.recent', update) - .presets() - .on('favoritePreset.recent', update) - .on('recentsChange.recent', update); - }; - - tool.uninstall = function() { - - context - .on('enter.editor.recent', null) - .on('exit.editor.recent', null) - .on('enter.recent', null); - - context.presets() - .on('favoritePreset.recent', null) - .on('recentsChange.recent', null); - - context.map() - .on('move.recent', null) - .on('drawn.recent', null); + return items; }; return tool; diff --git a/modules/ui/tools/quick_presets.js b/modules/ui/tools/quick_presets.js new file mode 100644 index 0000000000..cde29d456b --- /dev/null +++ b/modules/ui/tools/quick_presets.js @@ -0,0 +1,300 @@ +import _debounce from 'lodash-es/debounce'; + +import { drag as d3_drag } from 'd3-drag'; +import { event as d3_event, select as d3_select } from 'd3-selection'; + +import { modeAddArea, modeAddLine, modeAddPoint, modeBrowse } from '../../modes'; +import { t, textDirection } from '../../util/locale'; +import { tooltip } from '../../util/tooltip'; +import { uiPresetIcon } from '../preset_icon'; +import { uiTooltipHtml } from '../tooltipHtml'; + + +export function uiToolQuickPresets(context) { + + var selection = d3_select(null); + + var tool = { + itemClass: 'modes' + }; + + tool.itemsToDraw = function() { + // override in subclass + return []; + }; + + function enabled() { + return context.editable(); + } + + function toggleMode(d) { + if (!enabled(d)) return; + + if (context.mode().id.includes('draw') && context.mode().finish) { + // gracefully complete the feature currently being drawn + var didFinish = context.mode().finish(); + if (!didFinish) return; + } + + if (context.mode().id.includes('add') && d.button === context.mode().button) { + context.enter(modeBrowse(context)); + } else { + if (d.preset && + // don't set a recent as most recent to avoid reordering buttons + !d.isRecent()) { + context.presets().setMostRecent(d.preset, d.geometry); + } + context.enter(d); + } + } + + tool.render = function(sel) { + selection = sel; + update(); + }; + + tool.willUpdate = function() {}; + + function update() { + + tool.willUpdate(); + + var items = tool.itemsToDraw(); + + var modes = items.map(function(d) { + var presetName = d.preset.name().split(' – ')[0]; + var markerClass = 'add-preset add-' + d.geometry + ' add-preset-' + presetName.replace(/\s+/g, '_') + + '-' + d.geometry + ' add-' + d.source; // replace spaces with underscores to avoid css interpretation + if (d.preset.isFallback()) { + markerClass += ' add-generic-preset'; + } + + var supportedGeometry = d.preset.geometry.filter(function(geometry) { + return ['vertex', 'point', 'line', 'area'].indexOf(geometry) !== -1; + }); + var vertexIndex = supportedGeometry.indexOf('vertex'); + if (vertexIndex !== -1 && supportedGeometry.indexOf('point') !== -1) { + // both point and vertex allowed, just combine them + supportedGeometry.splice(vertexIndex, 1); + } + var tooltipTitleID = 'modes.add_preset.title'; + if (supportedGeometry.length !== 1) { + if (d.preset.setTags({}, d.geometry).building) { + tooltipTitleID = 'modes.add_preset.building.title'; + } else { + tooltipTitleID = 'modes.add_preset.' + context.presets().fallback(d.geometry).id + '.title'; + } + } + var protoMode = Object.assign({}, d); // shallow copy + protoMode.button = markerClass; + protoMode.title = presetName; + protoMode.description = t(tooltipTitleID, { feature: '' + presetName + '' }); + protoMode.key = d.key; + + var mode; + switch (d.geometry) { + case 'point': + case 'vertex': + mode = modeAddPoint(context, protoMode); + break; + case 'line': + mode = modeAddLine(context, protoMode); + break; + case 'area': + mode = modeAddArea(context, protoMode); + } + + if (mode.key) { + context.keybinding().off(mode.key); + context.keybinding().on(mode.key, function() { + toggleMode(mode); + }); + } + + return mode; + }); + + var buttons = selection.selectAll('button.add-button') + .data(modes, function(d, index) { return d.button + index; }); + + // exit + buttons.exit() + .remove(); + + // enter + var buttonsEnter = buttons.enter() + .append('button') + .attr('tabindex', -1) + .attr('class', function(d) { + return d.button + ' add-button bar-button'; + }) + .on('click.mode-buttons', function(d) { + + // When drawing, ignore accidental clicks on mode buttons - #4042 + if (/^draw/.test(context.mode().id)) return; + + toggleMode(d); + }) + .call(tooltip() + .placement('bottom') + .html(true) + .title(function(d) { return uiTooltipHtml(d.description, d.key); }) + ); + + buttonsEnter + .each(function(d) { + d3_select(this) + .call(uiPresetIcon(context) + .geometry((d.geometry === 'point' && !d.preset.matchGeometry(d.geometry)) ? 'vertex' : d.geometry) + .preset(d.preset) + .sizeClass('small') + .pointMarker(true) + ); + }); + + var dragOrigin, dragMoved, targetIndex, targetData; + + buttonsEnter.call(d3_drag() + .on('start', function() { + dragOrigin = { + x: d3_event.x, + y: d3_event.y + }; + targetIndex = null; + targetData = null; + dragMoved = false; + }) + .on('drag', function(d, index) { + dragMoved = true; + var x = d3_event.x - dragOrigin.x, + y = d3_event.y - dragOrigin.y; + + if (!d3_select(this).classed('dragging') && + // don't display drag until dragging beyond a distance threshold + Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2)) <= 5) return; + + d3_select(this) + .classed('dragging', true) + .classed('removing', y > 50); + + targetIndex = null; + targetData = null; + + selection.selectAll('button.add-preset') + .style('transform', function(d2, index2) { + var node = d3_select(this).node(); + if (index === index2) { + return 'translate(' + x + 'px, ' + y + 'px)'; + } else if (y > 50) { + if (index2 > index) { + return 'translateX(' + (textDirection === 'rtl' ? '' : '-') + '100%)'; + } + } else if (d.source === d2.source) { + if (index2 > index && ( + (d3_event.x > node.offsetLeft && textDirection === 'ltr') || + (d3_event.x < node.offsetLeft + node.offsetWidth && textDirection === 'rtl') + )) { + if (targetIndex === null || index2 > targetIndex) { + targetIndex = index2; + targetData = d2; + } + return 'translateX(' + (textDirection === 'rtl' ? '' : '-') + '100%)'; + } else if (index2 < index && ( + (d3_event.x < node.offsetLeft + node.offsetWidth && textDirection === 'ltr') || + (d3_event.x > node.offsetLeft && textDirection === 'rtl') + )) { + if (targetIndex === null || index2 < targetIndex) { + targetIndex = index2; + targetData = d2; + } + return 'translateX(' + (textDirection === 'rtl' ? '-' : '') + '100%)'; + } + } + return null; + }); + }) + .on('end', function(d, index) { + + if (dragMoved && !d3_select(this).classed('dragging')) { + toggleMode(d); + return; + } + + d3_select(this) + .classed('dragging', false) + .classed('removing', false); + + selection.selectAll('button.add-preset') + .style('transform', null); + + var y = d3_event.y - dragOrigin.y; + if (y > 50) { + // dragged out of the top bar, remove + if (d.isFavorite()) { + context.presets().removeFavorite(d.preset, d.geometry); + // also remove this as a recent so it doesn't still appear + context.presets().removeRecent(d.preset, d.geometry); + } else if (d.isRecent()) { + context.presets().removeRecent(d.preset, d.geometry); + } + } else if (targetIndex !== null) { + // dragged to a new position, reorder + if (d.isFavorite()) { + context.presets().moveFavorite(index, targetIndex); + } else if (d.isRecent()) { + var item = context.presets().recentMatching(d.preset, d.geometry); + var beforeItem = context.presets().recentMatching(targetData.preset, targetData.geometry); + context.presets().moveRecent(item, beforeItem); + } + } + }) + ); + + // update + buttons = buttons + .merge(buttonsEnter) + .classed('disabled', function(d) { return !enabled(d); }); + } + + tool.available = function() { + return tool.itemsToDraw().length > 0; + }; + + tool.install = function() { + context + .on('enter.editor.' + tool.id, function(entered) { + selection.selectAll('button.add-button') + .classed('active', function(mode) { return entered.button === mode.button; }); + }); + + var debouncedUpdate = _debounce(update, 500, { leading: true, trailing: true }); + + context.map() + .on('move.' + tool.id, debouncedUpdate) + .on('drawn.' + tool.id, debouncedUpdate); + + context + .on('enter.' + tool.id, update) + .presets() + .on('favoritePreset.' + tool.id, update) + .on('recentsChange.' + tool.id, update); + }; + + tool.uninstall = function() { + + context + .on('enter.editor.' + tool.id, null) + .on('exit.editor.' + tool.id, null) + .on('enter.' + tool.id, null); + + context.presets() + .on('favoritePreset.' + tool.id, null) + .on('recentsChange.' + tool.id, null); + + context.map() + .on('move.' + tool.id, null) + .on('drawn.' + tool.id, null); + }; + + return tool; +} From d747f5043a3de70acdbcee2e6d13324d86ac776c Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Thu, 8 Aug 2019 09:59:55 -0500 Subject: [PATCH 278/774] Add derived documentation change --- docs/statistics.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/statistics.html b/docs/statistics.html index 3fe0597306..019eda968e 100644 --- a/docs/statistics.html +++ b/docs/statistics.html @@ -125,7 +125,7 @@

RollUp Visualizer

- + + + - - @@ -163,6 +162,7 @@ + +
+ + diff --git a/package.json b/package.json index 0bc5463d67..4457497b4d 100644 --- a/package.json +++ b/package.json @@ -88,12 +88,12 @@ "osm-community-index": "1.0.0", "phantomjs-prebuilt": "~2.1.11", "request": "^2.88.0", - "rollup": "~1.26.2", + "rollup": "~1.27.2", "rollup-plugin-commonjs": "^10.1.0", "rollup-plugin-includepaths": "~0.2.3", "rollup-plugin-json": "~4.0.0", "rollup-plugin-node-resolve": "~5.2.0", - "rollup-plugin-visualizer": "~2.7.2", + "rollup-plugin-visualizer": "~3.1.1", "shelljs": "^0.8.0", "shx": "^0.3.0", "sinon": "7.5.0", From 010c6949b9d887963eea0c5c1b02c7807fde326f Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Mon, 18 Nov 2019 15:17:52 -0500 Subject: [PATCH 715/774] Prefer aerialway=station to aerialway=yes for stations (close #6994) --- data/deprecated.json | 4 ++++ data/presets.yaml | 5 +---- data/presets/presets.json | 3 +-- data/presets/presets/aerialway/_station.json | 21 ------------------- .../public_transport/station_aerialway.json | 5 ++++- data/taginfo.json | 4 ++-- dist/locales/en.json | 3 --- 7 files changed, 12 insertions(+), 33 deletions(-) delete mode 100644 data/presets/presets/aerialway/_station.json diff --git a/data/deprecated.json b/data/deprecated.json index a771594004..4751b06f98 100644 --- a/data/deprecated.json +++ b/data/deprecated.json @@ -777,6 +777,10 @@ "old": {"power_rating": "*"}, "replace": {"generator:output": "$1"} }, + { + "old": {"public_transport": "station", "aerialway": "yes"}, + "replace": {"public_transport": "station", "aerialway": "station"} + }, { "old": {"railway": "station"}, "replace": {"railway": "station", "public_transport": "station"} diff --git a/data/presets.yaml b/data/presets.yaml index 8f2c70bd56..009a2fa560 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -2687,9 +2687,6 @@ en: name: Rope Tow Lift # 'terms: handle tow,bugel lift' terms: '' - aerialway/station: - # aerialway=station - name: Aerialway Station aerialway/t-bar: # aerialway=t-bar name: T-bar Lift @@ -6907,7 +6904,7 @@ en: # 'terms: public transit,public transportation,station,terminal,transit,transportation' terms: '' public_transport/station_aerialway: - # 'public_transport=station, aerialway=yes' + # aerialway=station name: Aerialway Station # 'terms: aerialway,cable car,public transit,public transportation,station,terminal,transit,transportation' terms: '' diff --git a/data/presets/presets.json b/data/presets/presets.json index f55b3103a1..9e7c05991f 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -29,7 +29,6 @@ "advertising/column": {"icon": "temaki-storage_tank", "fields": ["lit"], "geometry": ["point", "area"], "tags": {"advertising": "column"}, "name": "Advertising Column"}, "advertising/poster_box": {"fields": ["lit", "height"], "geometry": ["point"], "tags": {"advertising": "poster_box"}, "name": "Poster Box"}, "advertising/totem": {"fields": ["operator", "lit", "visibility", "direction", "height"], "geometry": ["point"], "tags": {"advertising": "totem"}, "name": "Advertising Totem"}, - "aerialway/station": {"icon": "maki-aerialway", "geometry": ["point", "vertex", "area"], "fields": ["aerialway/access", "aerialway/summer/access", "elevation", "building_area"], "tags": {"aerialway": "station"}, "matchScore": 0.95, "name": "Aerialway Station", "searchable": false, "replacement": "public_transport/station_aerialway"}, "aerialway/cable_car": {"icon": "fas-tram", "geometry": ["line"], "terms": ["tramway", "ropeway"], "fields": ["name", "aerialway/occupancy", "aerialway/capacity", "aerialway/duration", "aerialway/heating"], "tags": {"aerialway": "cable_car"}, "name": "Cable Car"}, "aerialway/chair_lift": {"icon": "temaki-chairlift", "geometry": ["line"], "fields": ["name", "oneway_yes", "aerialway/occupancy", "aerialway/capacity", "aerialway/duration", "aerialway/bubble", "aerialway/heating"], "tags": {"aerialway": "chair_lift"}, "name": "Chair Lift"}, "aerialway/drag_lift": {"geometry": ["line"], "fields": ["name", "aerialway/capacity", "aerialway/duration"], "tags": {"aerialway": "drag_lift"}, "name": "Drag Lift"}, @@ -945,7 +944,7 @@ "public_transport/platform/tram": {"icon": "temaki-pedestrian", "fields": ["{public_transport/platform}"], "moreFields": ["{public_transport/platform}"], "geometry": ["line", "area"], "tags": {"public_transport": "platform", "tram": "yes"}, "addTags": {"public_transport": "platform", "tram": "yes", "railway": "platform"}, "reference": {"key": "public_transport", "value": "platform"}, "terms": ["electric", "light rail", "platform", "public transit", "public transportation", "rail", "streetcar", "track", "tram", "trolley", "transit", "transportation"], "name": "Tram Platform"}, "public_transport/platform/trolleybus_point": {"icon": "temaki-trolleybus", "fields": ["{public_transport/platform_point}"], "moreFields": ["{public_transport/platform_point}"], "geometry": ["point", "vertex"], "tags": {"public_transport": "platform", "trolleybus": "yes"}, "addTags": {"public_transport": "platform", "trolleybus": "yes", "highway": "bus_stop"}, "reference": {"key": "public_transport", "value": "platform"}, "terms": ["bus", "electric", "platform", "public transit", "public transportation", "streetcar", "trackless", "tram", "trolley", "transit", "transportation"], "name": "Trolleybus Stop"}, "public_transport/platform/trolleybus": {"icon": "temaki-pedestrian", "fields": ["{public_transport/platform}"], "moreFields": ["{public_transport/platform}"], "geometry": ["line", "area"], "tags": {"public_transport": "platform", "trolleybus": "yes"}, "reference": {"key": "public_transport", "value": "platform"}, "terms": ["bus", "electric", "platform", "public transit", "public transportation", "streetcar", "trackless", "tram", "trolley", "transit", "transportation"], "name": "Trolleybus Platform"}, - "public_transport/station_aerialway": {"icon": "maki-aerialway", "fields": ["{public_transport/station}", "aerialway/access", "aerialway/summer/access"], "moreFields": ["{public_transport/station}"], "geometry": ["point", "vertex", "area"], "tags": {"public_transport": "station", "aerialway": "yes"}, "reference": {"key": "aerialway", "value": "station"}, "terms": ["aerialway", "cable car", "public transit", "public transportation", "station", "terminal", "transit", "transportation"], "name": "Aerialway Station"}, + "public_transport/station_aerialway": {"icon": "maki-aerialway", "fields": ["{public_transport/station}", "aerialway/access", "aerialway/summer/access"], "moreFields": ["{public_transport/station}"], "geometry": ["point", "vertex", "area"], "tags": {"aerialway": "station"}, "addTags": {"public_transport": "station", "aerialway": "station"}, "reference": {"key": "aerialway", "value": "station"}, "terms": ["aerialway", "cable car", "public transit", "public transportation", "station", "terminal", "transit", "transportation"], "name": "Aerialway Station"}, "public_transport/station_bus": {"icon": "maki-bus", "fields": ["{public_transport/station}"], "moreFields": ["{public_transport/station}"], "geometry": ["point", "area"], "tags": {"public_transport": "station", "bus": "yes"}, "addTags": {"public_transport": "station", "bus": "yes", "amenity": "bus_station"}, "reference": {"key": "amenity", "value": "bus_station"}, "terms": ["bus", "public transit", "public transportation", "station", "terminal", "transit", "transportation"], "name": "Bus Station / Terminal"}, "public_transport/station_ferry": {"icon": "maki-ferry", "fields": ["{public_transport/station}"], "moreFields": ["{public_transport/station}"], "geometry": ["vertex", "point", "area"], "tags": {"public_transport": "station", "ferry": "yes"}, "addTags": {"public_transport": "station", "ferry": "yes", "amenity": "ferry_terminal"}, "reference": {"key": "amenity", "value": "ferry_terminal"}, "terms": ["boat", "dock", "ferry", "pier", "public transit", "public transportation", "station", "terminal", "transit", "transportation"], "name": "Ferry Station / Terminal"}, "public_transport/station_light_rail": {"icon": "temaki-light_rail", "fields": ["{public_transport/station}"], "moreFields": ["{public_transport/station}"], "geometry": ["point", "area"], "tags": {"public_transport": "station", "light_rail": "yes"}, "addTags": {"public_transport": "station", "light_rail": "yes", "railway": "station", "station": "light_rail"}, "reference": {"key": "station", "value": "light_rail"}, "terms": ["electric", "light rail", "public transit", "public transportation", "rail", "station", "terminal", "track", "tram", "trolley", "transit", "transportation"], "name": "Light Rail Station"}, diff --git a/data/presets/presets/aerialway/_station.json b/data/presets/presets/aerialway/_station.json deleted file mode 100644 index 326cf3d3e3..0000000000 --- a/data/presets/presets/aerialway/_station.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "icon": "maki-aerialway", - "geometry": [ - "point", - "vertex", - "area" - ], - "fields": [ - "aerialway/access", - "aerialway/summer/access", - "elevation", - "building_area" - ], - "tags": { - "aerialway": "station" - }, - "matchScore": 0.95, - "name": "Aerialway Station", - "searchable": false, - "replacement": "public_transport/station_aerialway" -} diff --git a/data/presets/presets/public_transport/station_aerialway.json b/data/presets/presets/public_transport/station_aerialway.json index 3457b67f1e..d404c8060c 100644 --- a/data/presets/presets/public_transport/station_aerialway.json +++ b/data/presets/presets/public_transport/station_aerialway.json @@ -14,8 +14,11 @@ "area" ], "tags": { + "aerialway": "station" + }, + "addTags": { "public_transport": "station", - "aerialway": "yes" + "aerialway": "station" }, "reference": { "key": "aerialway", diff --git a/data/taginfo.json b/data/taginfo.json index cad1e70cd0..714dca0c8b 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -32,7 +32,6 @@ {"key": "advertising", "value": "column", "description": "🄿 Advertising Column", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/storage_tank.svg"}, {"key": "advertising", "value": "poster_box", "description": "🄿 Poster Box", "object_types": ["node"]}, {"key": "advertising", "value": "totem", "description": "🄿 Advertising Totem", "object_types": ["node"]}, - {"key": "aerialway", "value": "station", "description": "🄿 Aerialway Station (unsearchable)", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/aerialway-15.svg"}, {"key": "aerialway", "value": "cable_car", "description": "🄿 Cable Car", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD@master/svg/fontawesome/fas-tram.svg"}, {"key": "aerialway", "value": "chair_lift", "description": "🄿 Chair Lift", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/chairlift.svg"}, {"key": "aerialway", "value": "drag_lift", "description": "🄿 Drag Lift", "object_types": ["way"]}, @@ -900,7 +899,7 @@ {"key": "power", "value": "tower", "description": "🄿 High-Voltage Tower", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/power_tower.svg"}, {"key": "power", "value": "transformer", "description": "🄿 Transformer", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/power_transformer.svg"}, {"key": "public_transport", "value": "platform", "description": "🄿 Transit Stop / Platform, 🄿 Transit Platform", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/rail-15.svg"}, - {"key": "aerialway", "value": "yes", "description": "🄿 Aerialway Stop / Platform (unsearchable), 🄿 Aerialway Platform, 🄿 Aerialway Station, 🄿 Aerialway Stopping Location", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/aerialway-15.svg"}, + {"key": "aerialway", "value": "yes", "description": "🄿 Aerialway Stop / Platform (unsearchable), 🄿 Aerialway Platform, 🄿 Aerialway Stopping Location", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/aerialway-15.svg"}, {"key": "ferry", "value": "yes", "description": "🄿 Ferry Stop / Platform (unsearchable), 🄿 Ferry Platform, 🄿 Ferry Station / Terminal, 🄿 Ferry Stopping Location", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/ferry-15.svg"}, {"key": "light_rail", "value": "yes", "description": "🄿 Light Rail Stop / Platform (unsearchable), 🄿 Light Rail Platform, 🄿 Light Rail Station, 🄿 Light Rail Stopping Location", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/light_rail.svg"}, {"key": "monorail", "value": "yes", "description": "🄿 Monorail Stop / Platform (unsearchable), 🄿 Monorail Platform, 🄿 Monorail Station, 🄿 Monorail Stopping Location", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/monorail.svg"}, @@ -909,6 +908,7 @@ {"key": "bus", "value": "yes", "description": "🄿 Bus Stop, 🄿 Bus Platform, 🄿 Bus Station / Terminal, 🄿 Bus Stopping Location", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/bus-15.svg"}, {"key": "tram", "value": "yes", "description": "🄿 Tram Stop / Platform, 🄿 Tram Platform, 🄿 Tram Station, 🄿 Tram Stopping Location", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/tram.svg"}, {"key": "trolleybus", "value": "yes", "description": "🄿 Trolleybus Stop, 🄿 Trolleybus Platform, 🄿 Trolleybus Station / Terminal, 🄿 Trolleybus Stopping Location", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/trolleybus.svg"}, + {"key": "aerialway", "value": "station", "description": "🄿 Aerialway Station", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/aerialway-15.svg"}, {"key": "railway", "value": "halt", "description": "🄿 Train Station (Halt / Request), 🄿 Train Station (Halt / Request) (unsearchable)", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/rail-15.svg"}, {"key": "public_transport", "value": "station", "description": "🄿 Transit Station", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/rail-15.svg"}, {"key": "public_transport", "value": "stop_area", "description": "🄿 Transit Stop Area", "object_types": ["relation"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD@master/svg/iD-sprite/presets/relation.svg"}, diff --git a/dist/locales/en.json b/dist/locales/en.json index 99e19d01e2..ded9e94c55 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -4758,9 +4758,6 @@ "name": "Advertising Totem", "terms": "" }, - "aerialway/station": { - "name": "Aerialway Station" - }, "aerialway/cable_car": { "name": "Cable Car", "terms": "tramway,ropeway" From b2611a941c6a5844d46d3feff16b6e314685910b Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Mon, 18 Nov 2019 15:43:46 -0500 Subject: [PATCH 716/774] Don't treat various source tags as descriptive tags --- modules/osm/tags.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/osm/tags.js b/modules/osm/tags.js index e2ba7fd3b4..596574a4ef 100644 --- a/modules/osm/tags.js +++ b/modules/osm/tags.js @@ -2,7 +2,9 @@ export function osmIsInterestingTag(key) { return key !== 'attribution' && key !== 'created_by' && key !== 'source' && + key !== 'source_ref' && key !== 'odbl' && + key.indexOf('source:') !== 0 && key.indexOf('tiger:') !== 0; } From 1f5cce9bdda387e5b5d9d2327f731e61962a677f Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Mon, 18 Nov 2019 15:49:32 -0500 Subject: [PATCH 717/774] Don't treat `source_ref` subtags as descriptive tags --- modules/osm/tags.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/osm/tags.js b/modules/osm/tags.js index 596574a4ef..28adb57c0a 100644 --- a/modules/osm/tags.js +++ b/modules/osm/tags.js @@ -2,9 +2,9 @@ export function osmIsInterestingTag(key) { return key !== 'attribution' && key !== 'created_by' && key !== 'source' && - key !== 'source_ref' && key !== 'odbl' && key.indexOf('source:') !== 0 && + key.indexOf('source_ref') !== 0 && // purposely exclude colon key.indexOf('tiger:') !== 0; } From 4e14d3e235692616b1cadb77cc0a7d51af15241f Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Mon, 18 Nov 2019 21:29:19 -0500 Subject: [PATCH 718/774] Switch icon for shop=chocolate (closes #7051) --- data/presets/presets.json | 20 ++++++++++---------- data/presets/presets/shop/chocolate.json | 2 +- data/taginfo.json | 2 +- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/data/presets/presets.json b/data/presets/presets.json index 9e7c05991f..62bacfc987 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -1037,7 +1037,7 @@ "shop/charity": {"icon": "maki-shop", "fields": ["{shop}", "second_hand"], "geometry": ["point", "area"], "terms": ["thrift", "op shop", "nonprofit"], "tags": {"shop": "charity"}, "name": "Charity Store"}, "shop/cheese": {"icon": "fas-cheese", "geometry": ["point", "area"], "tags": {"shop": "cheese"}, "name": "Cheese Store"}, "shop/chemist": {"icon": "fas-shopping-basket", "geometry": ["point", "area"], "tags": {"shop": "chemist"}, "terms": ["apothecary", "beauty", "drug store", "drugstore", "gift", "hair", "med*", "pharmacy", "prescription", "tooth"], "name": "Drugstore"}, - "shop/chocolate": {"icon": "temaki-chocolate", "geometry": ["point", "area"], "tags": {"shop": "chocolate"}, "terms": ["cocoa"], "name": "Chocolate Store"}, + "shop/chocolate": {"icon": "maki-confectionery", "geometry": ["point", "area"], "tags": {"shop": "chocolate"}, "terms": ["cocoa"], "name": "Chocolate Store"}, "shop/clothes": {"icon": "maki-clothing-store", "fields": ["name", "clothes", "{shop}"], "geometry": ["point", "area"], "tags": {"shop": "clothes"}, "terms": ["blouses", "boutique", "bras", "clothes", "dresses", "fashion", "pants", "shirts", "shorts", "skirts", "slacks", "socks", "suits", "underwear"], "name": "Clothing Store"}, "shop/clothes/underwear": {"icon": "maki-clothing-store", "geometry": ["point", "area"], "tags": {"shop": "clothes", "clothes": "underwear"}, "reference": {"key": "clothes", "value": "underwear"}, "terms": ["boutique", "bras", "brassieres", "briefs", "boxers", "fashion", "lingerie", "panties", "slips", "socks", "stockings", "underclothes", "undergarments", "underpants", "undies"], "name": "Underwear Store"}, "shop/coffee": {"icon": "temaki-coffee", "geometry": ["point", "area"], "tags": {"shop": "coffee"}, "name": "Coffee Store"}, @@ -3775,15 +3775,15 @@ "shop/chemist/dm": {"name": "dm", "icon": "fas-shopping-basket", "imageURL": "https://graph.facebook.com/dm.Deutschland/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q266572", "shop": "chemist"}, "addTags": {"brand": "dm", "brand:wikidata": "Q266572", "brand:wikipedia": "en:Dm-drogerie markt", "name": "dm", "shop": "chemist"}, "countryCodes": ["at", "ba", "bg", "cz", "de", "hr", "hu", "it", "mk", "ro", "rs", "si", "sk"], "terms": ["dm drogerie markt"], "matchScore": 2, "suggestion": true}, "shop/chemist/屈臣氏": {"name": "屈臣氏", "icon": "fas-shopping-basket", "imageURL": "https://graph.facebook.com/WatsonsPH/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7974785", "shop": "chemist"}, "addTags": {"brand": "屈臣氏", "brand:wikidata": "Q7974785", "brand:wikipedia": "zh:屈臣氏", "name": "屈臣氏", "shop": "chemist"}, "countryCodes": ["cn", "hk", "tw"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/chemist/康是美": {"name": "康是美", "icon": "fas-shopping-basket", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11063876", "shop": "chemist"}, "addTags": {"brand": "康是美", "brand:wikidata": "Q11063876", "brand:wikipedia": "zh:康是美藥妝店", "name": "康是美", "shop": "chemist"}, "countryCodes": ["tw"], "terms": [], "matchScore": 2, "suggestion": true}, - "shop/chocolate/Cacau Show": {"name": "Cacau Show", "icon": "temaki-chocolate", "imageURL": "https://graph.facebook.com/CacauShow/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q9671713", "shop": "chocolate"}, "addTags": {"brand": "Cacau Show", "brand:wikidata": "Q9671713", "brand:wikipedia": "en:Cacau Show", "name": "Cacau Show", "shop": "chocolate"}, "countryCodes": ["br"], "terms": [], "matchScore": 2, "suggestion": true}, - "shop/chocolate/Chocolates Brasil Cacau": {"name": "Chocolates Brasil Cacau", "icon": "temaki-chocolate", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q9750569", "shop": "chocolate"}, "addTags": {"brand": "Chocolates Brasil Cacau", "brand:wikidata": "Q9750569", "brand:wikipedia": "pt:Chocolates Brasil Cacau", "name": "Chocolates Brasil Cacau", "shop": "chocolate", "short_name": "Brasil Cacau"}, "countryCodes": ["br"], "terms": [], "matchScore": 2, "suggestion": true}, - "shop/chocolate/Gertrude Hawk Chocolates": {"name": "Gertrude Hawk Chocolates", "icon": "temaki-chocolate", "imageURL": "https://graph.facebook.com/gertrudehawkchocolates/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5553326", "shop": "chocolate"}, "addTags": {"brand": "Gertrude Hawk Chocolates", "brand:wikidata": "Q5553326", "brand:wikipedia": "en:Gertrude Hawk Chocolates", "name": "Gertrude Hawk Chocolates", "shop": "chocolate", "short_name": "Gertrude Hawk"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, - "shop/chocolate/Godiva Chocolatier": {"name": "Godiva Chocolatier", "icon": "temaki-chocolate", "imageURL": "https://graph.facebook.com/Godiva/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q931084", "shop": "chocolate"}, "addTags": {"brand": "Godiva Chocolatier", "brand:wikidata": "Q931084", "brand:wikipedia": "en:Godiva Chocolatier", "name": "Godiva Chocolatier", "shop": "chocolate", "short_name": "Godiva"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, - "shop/chocolate/Jeff de Bruges": {"name": "Jeff de Bruges", "icon": "temaki-chocolate", "imageURL": "https://graph.facebook.com/JeffdeBrugesofficiel/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3176626", "shop": "chocolate"}, "addTags": {"brand": "Jeff de Bruges", "brand:wikidata": "Q3176626", "brand:wikipedia": "fr:Jeff de Bruges", "name": "Jeff de Bruges", "shop": "chocolate"}, "countryCodes": ["ca", "cz", "fr", "gb"], "terms": [], "matchScore": 2, "suggestion": true}, - "shop/chocolate/Laura Secord": {"name": "Laura Secord", "icon": "temaki-chocolate", "imageURL": "https://graph.facebook.com/laurasecord.ca/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6499418", "shop": "chocolate"}, "addTags": {"brand": "Laura Secord", "brand:wikidata": "Q6499418", "brand:wikipedia": "en:Laura Secord Chocolates", "name": "Laura Secord", "shop": "chocolate"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, - "shop/chocolate/Leonidas": {"name": "Leonidas", "icon": "temaki-chocolate", "imageURL": "https://graph.facebook.com/Leonidas.Official/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q80335", "shop": "chocolate"}, "addTags": {"brand": "Leonidas", "brand:wikidata": "Q80335", "brand:wikipedia": "en:Leonidas (chocolate maker)", "name": "Leonidas", "shop": "chocolate"}, "countryCodes": ["be", "cz", "fr", "gb", "gr", "nl"], "terms": [], "matchScore": 2, "suggestion": true}, - "shop/chocolate/Lindt": {"name": "Lindt", "icon": "temaki-chocolate", "imageURL": "https://graph.facebook.com/lindtchocolateusa/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q152822", "shop": "chocolate"}, "addTags": {"brand": "Lindt", "brand:wikidata": "Q152822", "brand:wikipedia": "en:Lindt & Sprüngli", "name": "Lindt", "shop": "chocolate"}, "terms": [], "matchScore": 2, "suggestion": true}, - "shop/chocolate/Purdys Chocolatier": {"name": "Purdys Chocolatier", "icon": "temaki-chocolate", "imageURL": "https://graph.facebook.com/PurdysChocolatier/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7261007", "shop": "chocolate"}, "addTags": {"brand": "Purdys Chocolatier", "brand:wikidata": "Q7261007", "brand:wikipedia": "en:Purdy's Chocolates", "name": "Purdys Chocolatier", "shop": "chocolate"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/chocolate/Cacau Show": {"name": "Cacau Show", "icon": "maki-confectionery", "imageURL": "https://graph.facebook.com/CacauShow/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q9671713", "shop": "chocolate"}, "addTags": {"brand": "Cacau Show", "brand:wikidata": "Q9671713", "brand:wikipedia": "en:Cacau Show", "name": "Cacau Show", "shop": "chocolate"}, "countryCodes": ["br"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/chocolate/Chocolates Brasil Cacau": {"name": "Chocolates Brasil Cacau", "icon": "maki-confectionery", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q9750569", "shop": "chocolate"}, "addTags": {"brand": "Chocolates Brasil Cacau", "brand:wikidata": "Q9750569", "brand:wikipedia": "pt:Chocolates Brasil Cacau", "name": "Chocolates Brasil Cacau", "shop": "chocolate", "short_name": "Brasil Cacau"}, "countryCodes": ["br"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/chocolate/Gertrude Hawk Chocolates": {"name": "Gertrude Hawk Chocolates", "icon": "maki-confectionery", "imageURL": "https://graph.facebook.com/gertrudehawkchocolates/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5553326", "shop": "chocolate"}, "addTags": {"brand": "Gertrude Hawk Chocolates", "brand:wikidata": "Q5553326", "brand:wikipedia": "en:Gertrude Hawk Chocolates", "name": "Gertrude Hawk Chocolates", "shop": "chocolate", "short_name": "Gertrude Hawk"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/chocolate/Godiva Chocolatier": {"name": "Godiva Chocolatier", "icon": "maki-confectionery", "imageURL": "https://graph.facebook.com/Godiva/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q931084", "shop": "chocolate"}, "addTags": {"brand": "Godiva Chocolatier", "brand:wikidata": "Q931084", "brand:wikipedia": "en:Godiva Chocolatier", "name": "Godiva Chocolatier", "shop": "chocolate", "short_name": "Godiva"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/chocolate/Jeff de Bruges": {"name": "Jeff de Bruges", "icon": "maki-confectionery", "imageURL": "https://graph.facebook.com/JeffdeBrugesofficiel/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3176626", "shop": "chocolate"}, "addTags": {"brand": "Jeff de Bruges", "brand:wikidata": "Q3176626", "brand:wikipedia": "fr:Jeff de Bruges", "name": "Jeff de Bruges", "shop": "chocolate"}, "countryCodes": ["ca", "cz", "fr", "gb"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/chocolate/Laura Secord": {"name": "Laura Secord", "icon": "maki-confectionery", "imageURL": "https://graph.facebook.com/laurasecord.ca/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q6499418", "shop": "chocolate"}, "addTags": {"brand": "Laura Secord", "brand:wikidata": "Q6499418", "brand:wikipedia": "en:Laura Secord Chocolates", "name": "Laura Secord", "shop": "chocolate"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/chocolate/Leonidas": {"name": "Leonidas", "icon": "maki-confectionery", "imageURL": "https://graph.facebook.com/Leonidas.Official/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q80335", "shop": "chocolate"}, "addTags": {"brand": "Leonidas", "brand:wikidata": "Q80335", "brand:wikipedia": "en:Leonidas (chocolate maker)", "name": "Leonidas", "shop": "chocolate"}, "countryCodes": ["be", "cz", "fr", "gb", "gr", "nl"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/chocolate/Lindt": {"name": "Lindt", "icon": "maki-confectionery", "imageURL": "https://graph.facebook.com/lindtchocolateusa/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q152822", "shop": "chocolate"}, "addTags": {"brand": "Lindt", "brand:wikidata": "Q152822", "brand:wikipedia": "en:Lindt & Sprüngli", "name": "Lindt", "shop": "chocolate"}, "terms": [], "matchScore": 2, "suggestion": true}, + "shop/chocolate/Purdys Chocolatier": {"name": "Purdys Chocolatier", "icon": "maki-confectionery", "imageURL": "https://graph.facebook.com/PurdysChocolatier/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7261007", "shop": "chocolate"}, "addTags": {"brand": "Purdys Chocolatier", "brand:wikidata": "Q7261007", "brand:wikipedia": "en:Purdy's Chocolates", "name": "Purdys Chocolatier", "shop": "chocolate"}, "countryCodes": ["ca"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/AOKI": {"name": "AOKI", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/aokistyle/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11189480", "shop": "clothes"}, "addTags": {"brand": "AOKI", "brand:wikidata": "Q11189480", "brand:wikipedia": "ja:AOKIホールディングス", "clothes": "men", "name": "AOKI", "name:ja": "アオキ", "shop": "clothes"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/Abercrombie & Fitch": {"name": "Abercrombie & Fitch", "icon": "maki-clothing-store", "imageURL": "https://graph.facebook.com/abercrombieofficial/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q319344", "shop": "clothes"}, "addTags": {"brand": "Abercrombie & Fitch", "brand:wikidata": "Q319344", "brand:wikipedia": "en:Abercrombie & Fitch", "clothes": "men;women", "name": "Abercrombie & Fitch", "shop": "clothes"}, "countryCodes": ["de", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/clothes/Abercrombie Kids": {"name": "Abercrombie Kids", "icon": "maki-clothing-store", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q429856", "shop": "clothes"}, "addTags": {"brand": "Abercrombie Kids", "brand:wikidata": "Q429856", "brand:wikipedia": "en:Abercrombie Kids", "clothes": "children", "name": "Abercrombie Kids", "shop": "clothes"}, "countryCodes": ["ca", "de", "it", "uk", "us"], "terms": [], "matchScore": 2, "suggestion": true}, diff --git a/data/presets/presets/shop/chocolate.json b/data/presets/presets/shop/chocolate.json index 6009e60d54..df2b9b4386 100644 --- a/data/presets/presets/shop/chocolate.json +++ b/data/presets/presets/shop/chocolate.json @@ -1,5 +1,5 @@ { - "icon": "temaki-chocolate", + "icon": "maki-confectionery", "geometry": [ "point", "area" diff --git a/data/taginfo.json b/data/taginfo.json index 714dca0c8b..fe64bf3916 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -982,7 +982,7 @@ {"key": "shop", "value": "charity", "description": "🄿 Charity Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, {"key": "shop", "value": "cheese", "description": "🄿 Cheese Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD@master/svg/fontawesome/fas-cheese.svg"}, {"key": "shop", "value": "chemist", "description": "🄿 Drugstore", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD@master/svg/fontawesome/fas-shopping-basket.svg"}, - {"key": "shop", "value": "chocolate", "description": "🄿 Chocolate Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/chocolate.svg"}, + {"key": "shop", "value": "chocolate", "description": "🄿 Chocolate Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/confectionery-15.svg"}, {"key": "shop", "value": "clothes", "description": "🄿 Clothing Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/clothing-store-15.svg"}, {"key": "clothes", "value": "underwear", "description": "🄿 Underwear Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/clothing-store-15.svg"}, {"key": "shop", "value": "coffee", "description": "🄿 Coffee Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/coffee.svg"}, From 0a3c54dc366a21d240f99085304d0aa7d2ab93ca Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 19 Nov 2019 08:50:40 -0500 Subject: [PATCH 719/774] Add "packstation" as a search term for parcel lockers (close #7052) --- data/presets.yaml | 4 ++-- data/presets/presets.json | 4 ++-- .../presets/amenity/vending_machine/parcel_pickup.json | 1 + .../amenity/vending_machine/parcel_pickup_dropoff.json | 1 + dist/locales/en.json | 4 ++-- 5 files changed, 8 insertions(+), 6 deletions(-) diff --git a/data/presets.yaml b/data/presets.yaml index 009a2fa560..55e8b89b82 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -3729,12 +3729,12 @@ en: amenity/vending_machine/parcel_pickup: # 'amenity=vending_machine, vending=parcel_pickup' name: Parcel Pickup Locker - # 'terms: amazon,locker,mail,parcel,pickup' + # 'terms: amazon,locker,mail,packstation,parcel,pickup' terms: '' amenity/vending_machine/parcel_pickup_dropoff: # 'amenity=vending_machine, vending=parcel_pickup;parcel_mail_in' name: Parcel Pickup/Dropoff Locker - # 'terms: mail,parcel,pickup' + # 'terms: mail,packstation,parcel,pickup' terms: '' amenity/vending_machine/parking_tickets: # 'amenity=vending_machine, vending=parking_tickets' diff --git a/data/presets/presets.json b/data/presets/presets.json index 62bacfc987..aea9cd87d4 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -257,8 +257,8 @@ "amenity/vending_machine/ice_cream": {"icon": "temaki-vending_ice_cream", "geometry": ["point", "vertex"], "terms": ["chocolate", "ice cream", "frozen", "popsicle", "vanilla"], "tags": {"amenity": "vending_machine", "vending": "ice_cream"}, "reference": {"key": "vending", "value": "ice_cream"}, "name": "Ice Cream Vending Machine"}, "amenity/vending_machine/ice_cubes": {"icon": "temaki-vending_ice", "geometry": ["point", "vertex"], "terms": ["cubes", "ice"], "tags": {"amenity": "vending_machine", "vending": "ice_cubes"}, "reference": {"key": "vending", "value": "ice_cubes"}, "name": "Ice Vending Machine"}, "amenity/vending_machine/newspapers": {"icon": "temaki-vending_newspaper", "fields": ["vending", "operator", "fee", "payment_multi_fee", "charge_fee", "currency_multi"], "geometry": ["point", "vertex"], "terms": ["newspaper"], "tags": {"amenity": "vending_machine", "vending": "newspapers"}, "reference": {"key": "vending", "value": "newspapers"}, "name": "Newspaper Vending Machine"}, - "amenity/vending_machine/parcel_pickup_dropoff": {"icon": "temaki-vending_lockers", "fields": ["vending", "operator", "payment_multi", "currency_multi"], "geometry": ["point", "vertex"], "terms": ["mail", "parcel", "pickup"], "tags": {"amenity": "vending_machine", "vending": "parcel_pickup;parcel_mail_in"}, "reference": {"key": "vending", "value": "parcel_pickup;parcel_mail_in"}, "name": "Parcel Pickup/Dropoff Locker"}, - "amenity/vending_machine/parcel_pickup": {"icon": "temaki-vending_lockers", "fields": ["vending", "operator"], "geometry": ["point", "vertex"], "terms": ["amazon", "locker", "mail", "parcel", "pickup"], "tags": {"amenity": "vending_machine", "vending": "parcel_pickup"}, "reference": {"key": "vending", "value": "parcel_pickup"}, "name": "Parcel Pickup Locker"}, + "amenity/vending_machine/parcel_pickup_dropoff": {"icon": "temaki-vending_lockers", "fields": ["vending", "operator", "payment_multi", "currency_multi"], "geometry": ["point", "vertex"], "terms": ["mail", "packstation", "parcel", "pickup"], "tags": {"amenity": "vending_machine", "vending": "parcel_pickup;parcel_mail_in"}, "reference": {"key": "vending", "value": "parcel_pickup;parcel_mail_in"}, "name": "Parcel Pickup/Dropoff Locker"}, + "amenity/vending_machine/parcel_pickup": {"icon": "temaki-vending_lockers", "fields": ["vending", "operator"], "geometry": ["point", "vertex"], "terms": ["amazon", "locker", "mail", "packstation", "parcel", "pickup"], "tags": {"amenity": "vending_machine", "vending": "parcel_pickup"}, "reference": {"key": "vending", "value": "parcel_pickup"}, "name": "Parcel Pickup Locker"}, "amenity/vending_machine/parking_tickets": {"icon": "temaki-vending_tickets", "geometry": ["point", "vertex"], "terms": ["parking", "ticket"], "tags": {"amenity": "vending_machine", "vending": "parking_tickets"}, "reference": {"key": "vending", "value": "parking_tickets"}, "matchScore": 0.94, "name": "Parking Ticket Vending Machine"}, "amenity/vending_machine/public_transport_tickets": {"icon": "temaki-vending_tickets", "geometry": ["point", "vertex"], "terms": ["bus", "train", "ferry", "rail", "ticket", "transportation"], "tags": {"amenity": "vending_machine", "vending": "public_transport_tickets"}, "reference": {"key": "vending", "value": "public_transport_tickets"}, "name": "Transit Ticket Vending Machine"}, "amenity/vending_machine/stamps": {"icon": "temaki-vending_stamps", "geometry": ["point", "vertex"], "terms": ["mail", "postage", "stamp"], "tags": {"amenity": "vending_machine", "vending": "stamps"}, "reference": {"key": "vending", "value": "stamps"}, "name": "Postage Vending Machine"}, diff --git a/data/presets/presets/amenity/vending_machine/parcel_pickup.json b/data/presets/presets/amenity/vending_machine/parcel_pickup.json index 7abdb5926f..4f960282ab 100644 --- a/data/presets/presets/amenity/vending_machine/parcel_pickup.json +++ b/data/presets/presets/amenity/vending_machine/parcel_pickup.json @@ -12,6 +12,7 @@ "amazon", "locker", "mail", + "packstation", "parcel", "pickup" ], diff --git a/data/presets/presets/amenity/vending_machine/parcel_pickup_dropoff.json b/data/presets/presets/amenity/vending_machine/parcel_pickup_dropoff.json index e001bbb5d4..98a82ffdb6 100644 --- a/data/presets/presets/amenity/vending_machine/parcel_pickup_dropoff.json +++ b/data/presets/presets/amenity/vending_machine/parcel_pickup_dropoff.json @@ -12,6 +12,7 @@ ], "terms": [ "mail", + "packstation", "parcel", "pickup" ], diff --git a/dist/locales/en.json b/dist/locales/en.json index ded9e94c55..d356db4299 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -5662,11 +5662,11 @@ }, "amenity/vending_machine/parcel_pickup_dropoff": { "name": "Parcel Pickup/Dropoff Locker", - "terms": "mail,parcel,pickup" + "terms": "mail,packstation,parcel,pickup" }, "amenity/vending_machine/parcel_pickup": { "name": "Parcel Pickup Locker", - "terms": "amazon,locker,mail,parcel,pickup" + "terms": "amazon,locker,mail,packstation,parcel,pickup" }, "amenity/vending_machine/parking_tickets": { "name": "Parking Ticket Vending Machine", From f7d8c51bd3b61b2964422973acf9c077f4d7164a Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 19 Nov 2019 12:48:51 -0500 Subject: [PATCH 720/774] Convert single-member multipolygons to simple areas when merging ways (close #5085) --- modules/actions/join.js | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/modules/actions/join.js b/modules/actions/join.js index 2cd24b7930..2a9ddf27c6 100644 --- a/modules/actions/join.js +++ b/modules/actions/join.js @@ -1,3 +1,4 @@ +import { actionDeleteRelation } from './delete_relation'; import { actionDeleteWay } from './delete_way'; import { osmIsInterestingTag } from '../osm/tags'; import { osmJoinWays } from '../osm/multipolygon'; @@ -70,6 +71,42 @@ export function actionJoin(ids) { graph = actionDeleteWay(way.id)(graph); }); + // Finds if the join created a single-member multipolygon, + // and if so turns it into a basic area instead + function checkForSimpleMultipolygon() { + if (!survivor.isClosed()) return; + + var multipolygons = graph.parentMultipolygons(survivor).filter(function(multipolygon) { + // find multipolygons where the survivor is the only member + return multipolygon.members.length === 1; + }); + + // skip if this is the single member of multiple multipolygons + if (multipolygons.length !== 1) return; + + var multipolygon = multipolygons[0]; + + for (var key in survivor.tags) { + if (multipolygon.tags[key] && + // don't collapse if tags cannot be cleanly merged + multipolygon.tags[key] !== survivor.tags[key]) return; + } + + survivor = survivor.mergeTags(multipolygon.tags); + graph = graph.replace(survivor); + graph = actionDeleteRelation(multipolygon.id, true /* allow untagged members */)(graph); + + var tags = Object.assign({}, survivor.tags); + if (survivor.geometry(graph) !== 'area') { + // ensure the feature persists as an area + tags.area = 'yes'; + } + delete tags.type; // remove type=multipolygon + survivor = survivor.update({ tags: tags }); + graph = graph.replace(survivor); + } + checkForSimpleMultipolygon(); + return graph; }; From d84c7f5ee2ca3cd32290a13429d3f6e84994f692 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 19 Nov 2019 12:56:21 -0500 Subject: [PATCH 721/774] Deprecate `agrarian=agrcultural_machinry` (close #7053) --- data/deprecated.json | 4 ++++ data/taginfo.json | 1 + 2 files changed, 5 insertions(+) diff --git a/data/deprecated.json b/data/deprecated.json index 4751b06f98..18107d928b 100644 --- a/data/deprecated.json +++ b/data/deprecated.json @@ -12,6 +12,10 @@ "old": {"access": "public"}, "replace": {"access": "yes"} }, + { + "old": {"agrarian": "agrcultural_machinry"}, + "replace": {"agrarian": "agricultural_machinery"} + }, { "old": {"amenity": "advertising"}, "replace": {"advertising": "*"} diff --git a/data/taginfo.json b/data/taginfo.json index fe64bf3916..885552d8ba 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -1883,6 +1883,7 @@ {"key": "aerialway", "value": "canopy", "description": "🄳 ➜ aerialway=zip_line"}, {"key": "aeroway", "value": "aerobridge", "description": "🄳 ➜ aeroway=jet_bridge + highway=corridor"}, {"key": "access", "value": "public", "description": "🄳 ➜ access=yes"}, + {"key": "agrarian", "value": "agrcultural_machinry", "description": "🄳 ➜ agrarian=agricultural_machinery"}, {"key": "amenity", "value": "advertising", "description": "🄳 ➜ advertising=*"}, {"key": "amenity", "value": "artwork", "description": "🄳 ➜ tourism=artwork"}, {"key": "amenity", "value": "bail_bonds", "description": "🄳 ➜ office=bail_bond_agent"}, From 4dbc81ea178b617b29d7cf2a7b1fb6ca416082f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Katarzyna=20Kr=C3=B3l?= Date: Tue, 19 Nov 2019 22:39:35 +0100 Subject: [PATCH 722/774] create bridge or tunnel when crossed ways --- data/core.yaml | 6 +- modules/validations/crossing_ways.js | 111 +++++++++++++++++++++++++-- 2 files changed, 108 insertions(+), 9 deletions(-) diff --git a/data/core.yaml b/data/core.yaml index 1708466095..1b0b78e41e 100644 --- a/data/core.yaml +++ b/data/core.yaml @@ -1652,8 +1652,9 @@ en: upgrade_tags: title: Upgrade the tags annotation: Upgraded old tags. - use_bridge_or_tunnel: - title: Use a bridge or tunnel + use_bridge: + title: Use a bridge + annotation: Created bridge use_different_layers: title: Use different layers use_different_layers_or_levels: @@ -1662,6 +1663,7 @@ en: title: Use different levels use_tunnel: title: Use a tunnel + annotation: Created tunnel intro: done: done ok: OK diff --git a/modules/validations/crossing_ways.js b/modules/validations/crossing_ways.js index 8523039a62..96c3dc028c 100644 --- a/modules/validations/crossing_ways.js +++ b/modules/validations/crossing_ways.js @@ -1,7 +1,8 @@ import { actionAddMidpoint } from '../actions/add_midpoint'; import { actionChangeTags } from '../actions/change_tags'; import { actionMergeNodes } from '../actions/merge_nodes'; -import { geoExtent, geoLineIntersection, geoSphericalClosestNode } from '../geo'; +import { actionSplit } from '../actions/split'; +import { geoExtent, geoLineIntersection, geoSphericalClosestNode, geoVecAngle, geoMetersToLat, geoVecLengthSquare } from '../geo'; import { osmNode } from '../osm/node'; import { osmFlowingWaterwayTagValues, osmPathHighwayTagValues, osmRailwayTrackTagValues, osmRoutableHighwayTagValues } from '../osm/tags'; import { t } from '../util/locale'; @@ -396,19 +397,21 @@ export function validationCrossingWays(context) { fixes.push(makeConnectWaysFix(connectionTags)); } + if ((allowsBridge(featureType1) && featureType1 !== 'waterway') || + (allowsBridge(featureType2) && featureType2 !== 'waterway')) { + fixes.push(makeBridgeOrTunnelFix('use_bridge', 'maki-bridge', 'bridge')); + } var useFixIcon = 'iD-icon-layers'; var useFixID; + if (allowsTunnel(featureType1) || allowsTunnel(featureType2)) { + fixes.push(makeBridgeOrTunnelFix('use_tunnel', 'tnp-2009642', 'tunnel')); + } + if (isCrossingIndoors) { useFixID = 'use_different_levels'; } else if (isCrossingTunnels || isCrossingBridges) { useFixID = 'use_different_layers'; // don't recommend bridges for waterways even though they're okay - } else if ((allowsBridge(featureType1) && featureType1 !== 'waterway') || - (allowsBridge(featureType2) && featureType2 !== 'waterway')) { - useFixID = 'use_bridge_or_tunnel'; - useFixIcon = 'maki-bridge'; - } else if (allowsTunnel(featureType1) || allowsTunnel(featureType2)) { - useFixID = 'use_tunnel'; } else { useFixID = 'use_different_layers'; } @@ -443,6 +446,100 @@ export function validationCrossingWays(context) { } } + function makeBridgeOrTunnelFix(titleiD, Icon, bridgeOrTunnel){ + var fixTitleID = titleiD; + var fixIcon = Icon; + return new validationIssueFix({ + icon: fixIcon, + title: t('issues.fix.' + fixTitleID + '.title'), + onClick: function(context) { + var mode = context.mode(); + if (!mode || mode.id !== 'select') return; + + var selectedIDs = mode.selectedIDs(); + if (selectedIDs.length !== 1) return; + + var loc = this.issue.loc; + var wayId = selectedIDs[0]; + var way = context.hasEntity(wayId); + + if (!way) return; + + var secondWayId = this.issue.entityIds[0]; + if (this.issue.entityIds[0] === wayId){ + secondWayId = this.issue.entityIds[1]; + } + var secondWay = context.hasEntity(secondWayId); + var edges = this.issue.data.edges; + + context.perform( + function actionBridgeCrossingWays(graph) { + var newNode_1 = osmNode(); + var newNode_2 = osmNode(); + edges.forEach(function(edge) { + var edgeNodes = [graph.entity(edge[0]), graph.entity(edge[1])]; + + //edge to split and make bridge/tunnel + if (way.nodes.includes(edgeNodes[0].id) && way.nodes.includes(edgeNodes[1].id)){ + var halfLenBridgeOrTunnel = (geoMetersToLat(secondWay.tags.width) || 0.00004); + var angle = geoVecAngle(edgeNodes[0].loc, edgeNodes[1].loc); + + var locNewNode_1 = [loc[0] + Math.cos(angle) * halfLenBridgeOrTunnel, + loc[1] + Math.sin(angle) * halfLenBridgeOrTunnel]; + var locNewNode_2 = [loc[0] + Math.cos(angle + Math.PI) * halfLenBridgeOrTunnel, + loc[1] + Math.sin(angle + Math.PI)* halfLenBridgeOrTunnel]; + + //split only if edge is long + if (geoVecLengthSquare(loc, edgeNodes[1].loc) > geoVecLengthSquare(loc, locNewNode_1)){ + graph = actionAddMidpoint({loc: locNewNode_1, edge: edge}, newNode_1)(graph); + graph = actionSplit(newNode_1.id)(graph); + } + else { + newNode_1 = edgeNodes[1]; + } + if (geoVecLengthSquare(loc, edgeNodes[0].loc) > geoVecLengthSquare(loc, locNewNode_2)){ + graph = actionAddMidpoint({loc: locNewNode_2, edge: [edgeNodes[0].id, newNode_1.id]}, newNode_2)(graph); + graph = actionSplit(newNode_2.id)(graph); + } + else { + newNode_2 = edgeNodes[0]; + } + + var waysNode_1 = graph.parentWays(graph.hasEntity(newNode_1.id)); + var waysNode_2 = graph.parentWays(graph.hasEntity(newNode_2.id)); + var commonWay; + + //find way which contains both new nodes + for (var i_1 in waysNode_1){ + for (var i_2 in waysNode_2){ + if (waysNode_1[i_1] === waysNode_2[i_2]){ + commonWay = waysNode_1[i_1]; + } + } + } + + var tags = Object.assign({}, commonWay.tags); //tags copy + if (bridgeOrTunnel === 'bridge'){ + tags.bridge = 'yes'; + } + else { + tags.tunnel = 'yes'; + } + graph = actionChangeTags(commonWay.id, tags)(graph); + selectedIDs = [commonWay.id]; + mode.reselect(); + } + }); + return graph; + }, + t('issues.fix.' + fixTitleID + '.annotation') + ); + } + }); + } + + + function makeConnectWaysFix(connectionTags) { var fixTitleID = 'connect_features'; From fe98b36106c19cc2063c3296cf4972b650a8d5e4 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 20 Nov 2019 10:11:35 -0500 Subject: [PATCH 723/774] Remove deprecation for amenity=social_club (re: #6252) --- data/deprecated.json | 4 ---- data/taginfo.json | 1 - 2 files changed, 5 deletions(-) diff --git a/data/deprecated.json b/data/deprecated.json index 18107d928b..00b4b8f6b8 100644 --- a/data/deprecated.json +++ b/data/deprecated.json @@ -132,10 +132,6 @@ "old": {"amenity": "sloped_curb"}, "replace": {"kerb": "lowered"} }, - { - "old": {"amenity": "social_club"}, - "replace": {"club": "*"} - }, { "old": {"amenity": "swimming_pool"}, "replace": {"leisure": "swimming_pool"} diff --git a/data/taginfo.json b/data/taginfo.json index 885552d8ba..448aa0ee05 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -1910,7 +1910,6 @@ {"key": "amenity", "value": "sauna", "description": "🄳 ➜ leisure=sauna"}, {"key": "amenity", "value": "shop", "description": "🄳 ➜ shop=*"}, {"key": "amenity", "value": "sloped_curb", "description": "🄳 ➜ kerb=lowered"}, - {"key": "amenity", "value": "social_club", "description": "🄳 ➜ club=*"}, {"key": "amenity", "value": "ticket_booth", "description": "🄳 ➜ shop=ticket"}, {"key": "amenity", "value": "toilet", "description": "🄳 ➜ amenity=toilets"}, {"key": "amenity", "value": "weigh_bridge", "description": "🄳 ➜ amenity=weighbridge"}, From 8741aa8f9aaedd4222abb5ced8ffb136f5a77a10 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 20 Nov 2019 10:30:04 -0500 Subject: [PATCH 724/774] Add Drinks field to the Drink Vending Machine preset --- data/presets.yaml | 3 +++ data/presets/fields.json | 1 + data/presets/fields/drink_multi.json | 5 +++++ data/presets/presets.json | 6 +++--- data/presets/presets/amenity/vending_machine/drinks.json | 5 +++++ .../presets/amenity/vending_machine/excrement_bags.json | 3 --- .../presets/presets/amenity/vending_machine/newspapers.json | 1 + data/taginfo.json | 1 + dist/locales/en.json | 3 +++ 9 files changed, 22 insertions(+), 6 deletions(-) create mode 100644 data/presets/fields/drink_multi.json diff --git a/data/presets.yaml b/data/presets.yaml index 55e8b89b82..1af118705c 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -711,6 +711,9 @@ en: door_type: # door=* label: Type + drink_multi: + # 'drink:=*' + label: Drinks drive_through: # drive_through=* label: Drive-Through diff --git a/data/presets/fields.json b/data/presets/fields.json index aec99e085a..ad5f3407d0 100644 --- a/data/presets/fields.json +++ b/data/presets/fields.json @@ -119,6 +119,7 @@ "dog": {"key": "dog", "type": "combo", "label": "Dogs", "strings": {"options": {"yes": "Allowed", "leashed": "Leashed Only", "no": "Not Allowed"}}, "terms": ["animals", "pets"]}, "door_type": {"key": "door", "type": "typeCombo", "label": "Type"}, "door": {"key": "door", "type": "combo", "label": "Door"}, + "drink_multi": {"key": "drink:", "type": "multiCombo", "label": "Drinks"}, "drive_through": {"key": "drive_through", "type": "check", "label": "Drive-Through"}, "duration": {"key": "duration", "type": "text", "label": "Duration", "placeholder": "00:00"}, "electrified": {"key": "electrified", "type": "combo", "label": "Electrification", "placeholder": "Contact Line, Electrified Rail...", "strings": {"options": {"contact_line": "Contact Line", "rail": "Electrified Rail", "yes": "Yes (unspecified)", "no": "No"}}}, diff --git a/data/presets/fields/drink_multi.json b/data/presets/fields/drink_multi.json new file mode 100644 index 0000000000..3cc819ad68 --- /dev/null +++ b/data/presets/fields/drink_multi.json @@ -0,0 +1,5 @@ +{ + "key": "drink:", + "type": "multiCombo", + "label": "Drinks" +} diff --git a/data/presets/presets.json b/data/presets/presets.json index aea9cd87d4..07ffc70431 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -246,17 +246,17 @@ "amenity/vending_machine/cigarettes": {"icon": "temaki-vending_cigarettes", "moreFields": ["{amenity/vending_machine}", "min_age"], "geometry": ["point", "vertex"], "terms": ["cigarette"], "tags": {"amenity": "vending_machine", "vending": "cigarettes"}, "reference": {"key": "vending", "value": "cigarettes"}, "name": "Cigarette Vending Machine"}, "amenity/vending_machine/coffee": {"icon": "temaki-vending_hot_drink", "geometry": ["point", "vertex"], "terms": ["coffee"], "tags": {"amenity": "vending_machine", "vending": "coffee"}, "reference": {"key": "vending", "value": "coffee"}, "name": "Coffee Vending Machine"}, "amenity/vending_machine/condoms": {"icon": "temaki-vending_love", "geometry": ["point", "vertex"], "terms": ["condom"], "tags": {"amenity": "vending_machine", "vending": "condoms"}, "reference": {"key": "vending", "value": "condoms"}, "name": "Condom Vending Machine"}, - "amenity/vending_machine/drinks": {"icon": "temaki-vending_cold_drink", "geometry": ["point", "vertex"], "terms": ["drink", "soda", "beverage", "juice", "pop"], "tags": {"amenity": "vending_machine", "vending": "drinks"}, "reference": {"key": "vending", "value": "drinks"}, "name": "Drink Vending Machine"}, + "amenity/vending_machine/drinks": {"icon": "temaki-vending_cold_drink", "fields": ["vending", "drink_multi", "{amenity/vending_machine}"], "geometry": ["point", "vertex"], "terms": ["drink", "soda", "beverage", "juice", "pop"], "tags": {"amenity": "vending_machine", "vending": "drinks"}, "reference": {"key": "vending", "value": "drinks"}, "name": "Drink Vending Machine"}, "amenity/vending_machine/eggs": {"icon": "temaki-vending_eggs", "geometry": ["point", "vertex"], "terms": ["egg"], "tags": {"amenity": "vending_machine", "vending": "eggs"}, "reference": {"key": "vending", "value": "eggs"}, "name": "Egg Vending Machine"}, "amenity/vending_machine/electronics": {"icon": "temaki-vending_machine", "geometry": ["point", "vertex"], "terms": ["cable", "charger", "earbud", "headphone", "phone", "tablet"], "tags": {"amenity": "vending_machine", "vending": "electronics"}, "reference": {"key": "vending", "value": "electronics"}, "name": "Electronics Vending Machine"}, "amenity/vending_machine/elongated_coin": {"icon": "temaki-vending_flat_coin", "geometry": ["point", "vertex"], "terms": ["coin", "crush", "elongated", "flatten", "penny", "souvenir"], "tags": {"amenity": "vending_machine", "vending": "elongated_coin"}, "reference": {"key": "vending", "value": "elongated_coin"}, "name": "Flat Coin Vending Machine"}, - "amenity/vending_machine/excrement_bags": {"icon": "temaki-vending_pet_waste", "fields": ["{amenity/vending_machine}"], "geometry": ["point", "vertex"], "terms": ["excrement bags", "poop", "waste", "dog", "animal"], "tags": {"amenity": "vending_machine", "vending": "excrement_bags"}, "reference": {"key": "vending", "value": "excrement_bags"}, "name": "Excrement Bag Dispenser"}, + "amenity/vending_machine/excrement_bags": {"icon": "temaki-vending_pet_waste", "geometry": ["point", "vertex"], "terms": ["excrement bags", "poop", "waste", "dog", "animal"], "tags": {"amenity": "vending_machine", "vending": "excrement_bags"}, "reference": {"key": "vending", "value": "excrement_bags"}, "name": "Excrement Bag Dispenser"}, "amenity/vending_machine/feminine_hygiene": {"icon": "temaki-vending_venus", "geometry": ["point", "vertex"], "terms": ["condom", "tampon", "pad", "woman", "women", "menstrual hygiene products", "personal care"], "tags": {"amenity": "vending_machine", "vending": "feminine_hygiene"}, "reference": {"key": "vending", "value": "feminine_hygiene"}, "name": "Feminine Hygiene Vending Machine"}, "amenity/vending_machine/food": {"icon": "temaki-vending_machine", "geometry": ["point", "vertex"], "terms": ["food"], "tags": {"amenity": "vending_machine", "vending": "food"}, "reference": {"key": "vending", "value": "food"}, "name": "Food Vending Machine"}, "amenity/vending_machine/fuel": {"icon": "maki-fuel", "geometry": ["point", "vertex"], "terms": ["petrol", "fuel", "gasoline", "propane", "diesel", "lng", "cng", "biodiesel"], "tags": {"amenity": "vending_machine", "vending": "fuel"}, "reference": {"key": "vending", "value": "fuel"}, "name": "Gas Pump", "matchScore": 0.5}, "amenity/vending_machine/ice_cream": {"icon": "temaki-vending_ice_cream", "geometry": ["point", "vertex"], "terms": ["chocolate", "ice cream", "frozen", "popsicle", "vanilla"], "tags": {"amenity": "vending_machine", "vending": "ice_cream"}, "reference": {"key": "vending", "value": "ice_cream"}, "name": "Ice Cream Vending Machine"}, "amenity/vending_machine/ice_cubes": {"icon": "temaki-vending_ice", "geometry": ["point", "vertex"], "terms": ["cubes", "ice"], "tags": {"amenity": "vending_machine", "vending": "ice_cubes"}, "reference": {"key": "vending", "value": "ice_cubes"}, "name": "Ice Vending Machine"}, - "amenity/vending_machine/newspapers": {"icon": "temaki-vending_newspaper", "fields": ["vending", "operator", "fee", "payment_multi_fee", "charge_fee", "currency_multi"], "geometry": ["point", "vertex"], "terms": ["newspaper"], "tags": {"amenity": "vending_machine", "vending": "newspapers"}, "reference": {"key": "vending", "value": "newspapers"}, "name": "Newspaper Vending Machine"}, + "amenity/vending_machine/newspapers": {"icon": "temaki-vending_newspaper", "fields": ["vending", "ref", "operator", "fee", "payment_multi_fee", "charge_fee", "currency_multi"], "geometry": ["point", "vertex"], "terms": ["newspaper"], "tags": {"amenity": "vending_machine", "vending": "newspapers"}, "reference": {"key": "vending", "value": "newspapers"}, "name": "Newspaper Vending Machine"}, "amenity/vending_machine/parcel_pickup_dropoff": {"icon": "temaki-vending_lockers", "fields": ["vending", "operator", "payment_multi", "currency_multi"], "geometry": ["point", "vertex"], "terms": ["mail", "packstation", "parcel", "pickup"], "tags": {"amenity": "vending_machine", "vending": "parcel_pickup;parcel_mail_in"}, "reference": {"key": "vending", "value": "parcel_pickup;parcel_mail_in"}, "name": "Parcel Pickup/Dropoff Locker"}, "amenity/vending_machine/parcel_pickup": {"icon": "temaki-vending_lockers", "fields": ["vending", "operator"], "geometry": ["point", "vertex"], "terms": ["amazon", "locker", "mail", "packstation", "parcel", "pickup"], "tags": {"amenity": "vending_machine", "vending": "parcel_pickup"}, "reference": {"key": "vending", "value": "parcel_pickup"}, "name": "Parcel Pickup Locker"}, "amenity/vending_machine/parking_tickets": {"icon": "temaki-vending_tickets", "geometry": ["point", "vertex"], "terms": ["parking", "ticket"], "tags": {"amenity": "vending_machine", "vending": "parking_tickets"}, "reference": {"key": "vending", "value": "parking_tickets"}, "matchScore": 0.94, "name": "Parking Ticket Vending Machine"}, diff --git a/data/presets/presets/amenity/vending_machine/drinks.json b/data/presets/presets/amenity/vending_machine/drinks.json index 0db58d7611..1eee9a8441 100644 --- a/data/presets/presets/amenity/vending_machine/drinks.json +++ b/data/presets/presets/amenity/vending_machine/drinks.json @@ -1,5 +1,10 @@ { "icon": "temaki-vending_cold_drink", + "fields": [ + "vending", + "drink_multi", + "{amenity/vending_machine}" + ], "geometry": [ "point", "vertex" diff --git a/data/presets/presets/amenity/vending_machine/excrement_bags.json b/data/presets/presets/amenity/vending_machine/excrement_bags.json index 2bf09832e4..cf3cfca1b8 100644 --- a/data/presets/presets/amenity/vending_machine/excrement_bags.json +++ b/data/presets/presets/amenity/vending_machine/excrement_bags.json @@ -1,8 +1,5 @@ { "icon": "temaki-vending_pet_waste", - "fields": [ - "{amenity/vending_machine}" - ], "geometry": [ "point", "vertex" diff --git a/data/presets/presets/amenity/vending_machine/newspapers.json b/data/presets/presets/amenity/vending_machine/newspapers.json index 575d40e60e..19cc0788e3 100644 --- a/data/presets/presets/amenity/vending_machine/newspapers.json +++ b/data/presets/presets/amenity/vending_machine/newspapers.json @@ -2,6 +2,7 @@ "icon": "temaki-vending_newspaper", "fields": [ "vending", + "ref", "operator", "fee", "payment_multi_fee", diff --git a/data/taginfo.json b/data/taginfo.json index 448aa0ee05..99f22d006a 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -1424,6 +1424,7 @@ {"key": "dog", "value": "leashed", "description": "🄵 Dogs"}, {"key": "dog", "value": "no", "description": "🄵 Dogs"}, {"key": "door", "description": "🄵 Type, 🄵 Door"}, + {"key": "drink:", "description": "🄵 Drinks"}, {"key": "drive_through", "description": "🄵 Drive-Through"}, {"key": "duration", "description": "🄵 Duration"}, {"key": "electrified", "value": "contact_line", "description": "🄵 Electrification"}, diff --git a/dist/locales/en.json b/dist/locales/en.json index d356db4299..3cec76e650 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -3080,6 +3080,9 @@ "door": { "label": "Door" }, + "drink_multi": { + "label": "Drinks" + }, "drive_through": { "label": "Drive-Through", "terms": "" From 5ed22cce217676f6a454c2f654898e5d12bb50cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Katarzyna=20Kr=C3=B3l?= Date: Tue, 19 Nov 2019 22:39:35 +0100 Subject: [PATCH 725/774] create bridge or tunnel when crossed ways --- data/core.yaml | 6 +- modules/validations/crossing_ways.js | 111 +++++++++++++++++++++++++-- 2 files changed, 108 insertions(+), 9 deletions(-) diff --git a/data/core.yaml b/data/core.yaml index e3990ff4ac..a8175a00ba 100644 --- a/data/core.yaml +++ b/data/core.yaml @@ -1601,8 +1601,9 @@ en: upgrade_tags: title: Upgrade the tags annotation: Upgraded old tags. - use_bridge_or_tunnel: - title: Use a bridge or tunnel + use_bridge: + title: Use a bridge + annotation: Created bridge use_different_layers: title: Use different layers use_different_layers_or_levels: @@ -1611,6 +1612,7 @@ en: title: Use different levels use_tunnel: title: Use a tunnel + annotation: Created tunnel intro: done: done ok: OK diff --git a/modules/validations/crossing_ways.js b/modules/validations/crossing_ways.js index 8523039a62..96c3dc028c 100644 --- a/modules/validations/crossing_ways.js +++ b/modules/validations/crossing_ways.js @@ -1,7 +1,8 @@ import { actionAddMidpoint } from '../actions/add_midpoint'; import { actionChangeTags } from '../actions/change_tags'; import { actionMergeNodes } from '../actions/merge_nodes'; -import { geoExtent, geoLineIntersection, geoSphericalClosestNode } from '../geo'; +import { actionSplit } from '../actions/split'; +import { geoExtent, geoLineIntersection, geoSphericalClosestNode, geoVecAngle, geoMetersToLat, geoVecLengthSquare } from '../geo'; import { osmNode } from '../osm/node'; import { osmFlowingWaterwayTagValues, osmPathHighwayTagValues, osmRailwayTrackTagValues, osmRoutableHighwayTagValues } from '../osm/tags'; import { t } from '../util/locale'; @@ -396,19 +397,21 @@ export function validationCrossingWays(context) { fixes.push(makeConnectWaysFix(connectionTags)); } + if ((allowsBridge(featureType1) && featureType1 !== 'waterway') || + (allowsBridge(featureType2) && featureType2 !== 'waterway')) { + fixes.push(makeBridgeOrTunnelFix('use_bridge', 'maki-bridge', 'bridge')); + } var useFixIcon = 'iD-icon-layers'; var useFixID; + if (allowsTunnel(featureType1) || allowsTunnel(featureType2)) { + fixes.push(makeBridgeOrTunnelFix('use_tunnel', 'tnp-2009642', 'tunnel')); + } + if (isCrossingIndoors) { useFixID = 'use_different_levels'; } else if (isCrossingTunnels || isCrossingBridges) { useFixID = 'use_different_layers'; // don't recommend bridges for waterways even though they're okay - } else if ((allowsBridge(featureType1) && featureType1 !== 'waterway') || - (allowsBridge(featureType2) && featureType2 !== 'waterway')) { - useFixID = 'use_bridge_or_tunnel'; - useFixIcon = 'maki-bridge'; - } else if (allowsTunnel(featureType1) || allowsTunnel(featureType2)) { - useFixID = 'use_tunnel'; } else { useFixID = 'use_different_layers'; } @@ -443,6 +446,100 @@ export function validationCrossingWays(context) { } } + function makeBridgeOrTunnelFix(titleiD, Icon, bridgeOrTunnel){ + var fixTitleID = titleiD; + var fixIcon = Icon; + return new validationIssueFix({ + icon: fixIcon, + title: t('issues.fix.' + fixTitleID + '.title'), + onClick: function(context) { + var mode = context.mode(); + if (!mode || mode.id !== 'select') return; + + var selectedIDs = mode.selectedIDs(); + if (selectedIDs.length !== 1) return; + + var loc = this.issue.loc; + var wayId = selectedIDs[0]; + var way = context.hasEntity(wayId); + + if (!way) return; + + var secondWayId = this.issue.entityIds[0]; + if (this.issue.entityIds[0] === wayId){ + secondWayId = this.issue.entityIds[1]; + } + var secondWay = context.hasEntity(secondWayId); + var edges = this.issue.data.edges; + + context.perform( + function actionBridgeCrossingWays(graph) { + var newNode_1 = osmNode(); + var newNode_2 = osmNode(); + edges.forEach(function(edge) { + var edgeNodes = [graph.entity(edge[0]), graph.entity(edge[1])]; + + //edge to split and make bridge/tunnel + if (way.nodes.includes(edgeNodes[0].id) && way.nodes.includes(edgeNodes[1].id)){ + var halfLenBridgeOrTunnel = (geoMetersToLat(secondWay.tags.width) || 0.00004); + var angle = geoVecAngle(edgeNodes[0].loc, edgeNodes[1].loc); + + var locNewNode_1 = [loc[0] + Math.cos(angle) * halfLenBridgeOrTunnel, + loc[1] + Math.sin(angle) * halfLenBridgeOrTunnel]; + var locNewNode_2 = [loc[0] + Math.cos(angle + Math.PI) * halfLenBridgeOrTunnel, + loc[1] + Math.sin(angle + Math.PI)* halfLenBridgeOrTunnel]; + + //split only if edge is long + if (geoVecLengthSquare(loc, edgeNodes[1].loc) > geoVecLengthSquare(loc, locNewNode_1)){ + graph = actionAddMidpoint({loc: locNewNode_1, edge: edge}, newNode_1)(graph); + graph = actionSplit(newNode_1.id)(graph); + } + else { + newNode_1 = edgeNodes[1]; + } + if (geoVecLengthSquare(loc, edgeNodes[0].loc) > geoVecLengthSquare(loc, locNewNode_2)){ + graph = actionAddMidpoint({loc: locNewNode_2, edge: [edgeNodes[0].id, newNode_1.id]}, newNode_2)(graph); + graph = actionSplit(newNode_2.id)(graph); + } + else { + newNode_2 = edgeNodes[0]; + } + + var waysNode_1 = graph.parentWays(graph.hasEntity(newNode_1.id)); + var waysNode_2 = graph.parentWays(graph.hasEntity(newNode_2.id)); + var commonWay; + + //find way which contains both new nodes + for (var i_1 in waysNode_1){ + for (var i_2 in waysNode_2){ + if (waysNode_1[i_1] === waysNode_2[i_2]){ + commonWay = waysNode_1[i_1]; + } + } + } + + var tags = Object.assign({}, commonWay.tags); //tags copy + if (bridgeOrTunnel === 'bridge'){ + tags.bridge = 'yes'; + } + else { + tags.tunnel = 'yes'; + } + graph = actionChangeTags(commonWay.id, tags)(graph); + selectedIDs = [commonWay.id]; + mode.reselect(); + } + }); + return graph; + }, + t('issues.fix.' + fixTitleID + '.annotation') + ); + } + }); + } + + + function makeConnectWaysFix(connectionTags) { var fixTitleID = 'connect_features'; From 5640d7867a3b0b4e82d29a95b80d49356e0bee8f Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 20 Nov 2019 13:09:27 -0500 Subject: [PATCH 726/774] Simplify some "add bridge or tunnel" fix code (re: #7055) Add endpoint to actionSplit to get the created ways after running the action Change "Use bridge" or "tunnel" fix labels to "Add a bridge" or "tunnel" Add layer tags on structure feature when adding a bridge or tunnel via a fix Select all components of the split way when adding a bridge or tunnel via a fix Don't recommend adding a bridge to a waterway Don't show "change layers" fixes along with "add structure" fixes Don't split or change the tags of coincident ways when adding a bridge or tunnel --- data/core.yaml | 12 +- dist/locales/en.json | 14 +- modules/actions/split.js | 10 +- modules/validations/crossing_ways.js | 224 ++++++++++++++------------- 4 files changed, 140 insertions(+), 120 deletions(-) diff --git a/data/core.yaml b/data/core.yaml index a8175a00ba..e48d5e1f86 100644 --- a/data/core.yaml +++ b/data/core.yaml @@ -1523,6 +1523,12 @@ en: message: '{feature} should be part of a line or area based on its tags' reference: "Some features shouldn't be standalone points." fix: + add_a_bridge: + title: Add a bridge + annotation: Added a bridge. + add_a_tunnel: + title: Add a tunnel + annotation: Added a tunnel. address_the_concern: title: Address the concern connect_almost_junction: @@ -1601,18 +1607,12 @@ en: upgrade_tags: title: Upgrade the tags annotation: Upgraded old tags. - use_bridge: - title: Use a bridge - annotation: Created bridge use_different_layers: title: Use different layers use_different_layers_or_levels: title: Use different layers or levels use_different_levels: title: Use different levels - use_tunnel: - title: Use a tunnel - annotation: Created tunnel intro: done: done ok: OK diff --git a/dist/locales/en.json b/dist/locales/en.json index 3cec76e650..ad83ecc120 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -1896,6 +1896,14 @@ "reference": "Some features shouldn't be standalone points." }, "fix": { + "add_a_bridge": { + "title": "Add a bridge", + "annotation": "Added a bridge." + }, + "add_a_tunnel": { + "title": "Add a tunnel", + "annotation": "Added a tunnel." + }, "address_the_concern": { "title": "Address the concern" }, @@ -2010,9 +2018,6 @@ "title": "Upgrade the tags", "annotation": "Upgraded old tags." }, - "use_bridge_or_tunnel": { - "title": "Use a bridge or tunnel" - }, "use_different_layers": { "title": "Use different layers" }, @@ -2021,9 +2026,6 @@ }, "use_different_levels": { "title": "Use different levels" - }, - "use_tunnel": { - "title": "Use a tunnel" } } }, diff --git a/modules/actions/split.js b/modules/actions/split.js index ac1c1f86f4..ac662f07ac 100644 --- a/modules/actions/split.js +++ b/modules/actions/split.js @@ -23,6 +23,9 @@ import { utilArrayIntersection, utilWrap } from '../util'; export function actionSplit(nodeId, newWayIds) { var _wayIDs; + // The IDs of the ways actually created by running this action + var createdWayIDs = []; + // If the way is closed, we need to search for a partner node // to split the way at. // @@ -201,18 +204,23 @@ export function actionSplit(nodeId, newWayIds) { graph = graph.replace(wayB.update({ tags: {} })); } + createdWayIDs.push(wayB.id); + return graph; } - var action = function(graph) { var candidates = action.ways(graph); + createdWayIDs = []; for (var i = 0; i < candidates.length; i++) { graph = split(graph, candidates[i], newWayIds && newWayIds[i]); } return graph; }; + action.getCreatedWayIDs = function() { + return createdWayIDs; + }; action.ways = function(graph) { var node = graph.entity(nodeId); diff --git a/modules/validations/crossing_ways.js b/modules/validations/crossing_ways.js index 96c3dc028c..e74341a7db 100644 --- a/modules/validations/crossing_ways.js +++ b/modules/validations/crossing_ways.js @@ -2,6 +2,7 @@ import { actionAddMidpoint } from '../actions/add_midpoint'; import { actionChangeTags } from '../actions/change_tags'; import { actionMergeNodes } from '../actions/merge_nodes'; import { actionSplit } from '../actions/split'; +import { modeSelect } from '../modes/select'; import { geoExtent, geoLineIntersection, geoSphericalClosestNode, geoVecAngle, geoMetersToLat, geoVecLengthSquare } from '../geo'; import { osmNode } from '../osm/node'; import { osmFlowingWaterwayTagValues, osmPathHighwayTagValues, osmRailwayTrackTagValues, osmRoutableHighwayTagValues } from '../osm/tags'; @@ -255,9 +256,18 @@ export function validationCrossingWays(context) { var point = geoLineIntersection(segment1, segment2); if (point) { edgeCrossInfos.push({ - ways: [way1, way2], - featureTypes: [way1FeatureType, way2FeatureType], - edges: [[n1.id, n2.id], [nA.id, nB.id]], + wayInfos: [ + { + way: way1, + featureType: way1FeatureType, + edge: [n1.id, n2.id] + }, + { + way: way2, + featureType: way2FeatureType, + edge: [nA.id, nB.id] + } + ], crossPoint: point }); if (oneOnly) { @@ -318,11 +328,11 @@ export function validationCrossingWays(context) { function createIssue(crossing, graph) { // use the entities with the tags that define the feature type - var entities = crossing.ways.sort(function(entity1, entity2) { - var type1 = getFeatureTypeForCrossingCheck(entity1, graph); - var type2 = getFeatureTypeForCrossingCheck(entity2, graph); + crossing.wayInfos.sort(function(way1Info, way2Info) { + var type1 = way1Info.featureType; + var type2 = way2Info.featureType; if (type1 === type2) { - return utilDisplayLabel(entity1, context) > utilDisplayLabel(entity2, context); + return utilDisplayLabel(way1Info.way, context) > utilDisplayLabel(way2Info.way, context); } else if (type1 === 'waterway') { return true; } else if (type2 === 'waterway') { @@ -330,14 +340,16 @@ export function validationCrossingWays(context) { } return type1 < type2; }); - entities = entities.map(function(way) { - return getFeatureWithFeatureTypeTagsForWay(way, graph); + var entities = crossing.wayInfos.map(function(wayInfo) { + return getFeatureWithFeatureTypeTagsForWay(wayInfo.way, graph); }); + var edges = [crossing.wayInfos[0].edge, crossing.wayInfos[1].edge]; + var featureTypes = [crossing.wayInfos[0].featureType, crossing.wayInfos[1].featureType]; var connectionTags = tagsForConnectionNodeIfAllowed(entities[0], entities[1]); - var featureType1 = crossing.featureTypes[0]; - var featureType2 = crossing.featureTypes[1]; + var featureType1 = crossing.wayInfos[0].featureType; + var featureType2 = crossing.wayInfos[1].featureType; var isCrossingIndoors = taggedAsIndoor(entities[0].tags) && taggedAsIndoor(entities[1].tags); var isCrossingTunnels = allowsTunnel(featureType1) && hasTag(entities[0].tags, 'tunnel') && @@ -345,7 +357,7 @@ export function validationCrossingWays(context) { var isCrossingBridges = allowsBridge(featureType1) && hasTag(entities[0].tags, 'bridge') && allowsBridge(featureType2) && hasTag(entities[1].tags, 'bridge'); - var subtype = crossing.featureTypes.sort().join('-'); + var subtype = [featureType1, featureType2].sort().join('-'); var crossingTypeID = subtype; @@ -377,13 +389,14 @@ export function validationCrossingWays(context) { return entity.id; }), data: { - edges: crossing.edges, + edges: edges, + featureTypes: featureTypes, connectionTags: connectionTags }, // differentiate based on the loc since two ways can cross multiple times hash: crossing.crossPoint.toString() + // if the edges change then so does the fix - crossing.edges.slice().sort(function(edge1, edge2) { + edges.slice().sort(function(edge1, edge2) { // order to assure hash is deterministic return edge1[0] < edge2[0] ? -1 : 1; }).toString() + @@ -391,42 +404,42 @@ export function validationCrossingWays(context) { JSON.stringify(connectionTags), loc: crossing.crossPoint, dynamicFixes: function() { + var mode = context.mode(); + if (!mode || mode.id !== 'select' || mode.selectedIDs().length !== 1) return []; + + var selectedIndex = this.entityIds[0] === mode.selectedIDs()[0] ? 0 : 1; + var selectedFeatureType = this.data.featureTypes[selectedIndex]; + var fixes = []; if (connectionTags) { - fixes.push(makeConnectWaysFix(connectionTags)); - } - - if ((allowsBridge(featureType1) && featureType1 !== 'waterway') || - (allowsBridge(featureType2) && featureType2 !== 'waterway')) { - fixes.push(makeBridgeOrTunnelFix('use_bridge', 'maki-bridge', 'bridge')); - } - var useFixIcon = 'iD-icon-layers'; - var useFixID; - if (allowsTunnel(featureType1) || allowsTunnel(featureType2)) { - fixes.push(makeBridgeOrTunnelFix('use_tunnel', 'tnp-2009642', 'tunnel')); + fixes.push(makeConnectWaysFix(this.data.connectionTags)); } if (isCrossingIndoors) { - useFixID = 'use_different_levels'; - } else if (isCrossingTunnels || isCrossingBridges) { - useFixID = 'use_different_layers'; - // don't recommend bridges for waterways even though they're okay - } else { - useFixID = 'use_different_layers'; - } - if (useFixID === 'use_different_layers' || + fixes.push(new validationIssueFix({ + icon: 'iD-icon-layers', + title: t('issues.fix.use_different_levels.title') + })); + } else if (isCrossingTunnels || + isCrossingBridges || featureType1 === 'building' || - featureType2 === 'building') { + featureType2 === 'building') { + fixes.push(makeChangeLayerFix('higher')); fixes.push(makeChangeLayerFix('lower')); + } else { + // don't recommend adding bridges to waterways since they're uncommmon + if (allowsBridge(selectedFeatureType) && selectedFeatureType !== 'waterway') { + fixes.push(makeAddBridgeOrTunnelFix('add_a_bridge', 'maki-bridge', 'bridge')); + } + + if (allowsTunnel(selectedFeatureType)) { + fixes.push(makeAddBridgeOrTunnelFix('add_a_tunnel', 'tnp-2009642', 'tunnel')); + } } - if (useFixID !== 'use_different_layers') { - fixes.push(new validationIssueFix({ - icon: useFixIcon, - title: t('issues.fix.' + useFixID + '.title') - })); - } + + // repositioning the features is always an option fixes.push(new validationIssueFix({ icon: 'iD-operation-move', title: t('issues.fix.reposition_features.title') @@ -446,11 +459,9 @@ export function validationCrossingWays(context) { } } - function makeBridgeOrTunnelFix(titleiD, Icon, bridgeOrTunnel){ - var fixTitleID = titleiD; - var fixIcon = Icon; + function makeAddBridgeOrTunnelFix(fixTitleID, iconName, bridgeOrTunnel){ return new validationIssueFix({ - icon: fixIcon, + icon: iconName, title: t('issues.fix.' + fixTitleID + '.title'), onClick: function(context) { var mode = context.mode(); @@ -464,76 +475,75 @@ export function validationCrossingWays(context) { var way = context.hasEntity(wayId); if (!way) return; - + + var resultWayIDs = [wayId]; + var secondWayId = this.issue.entityIds[0]; - if (this.issue.entityIds[0] === wayId){ + var edge = this.issue.data.edges[1]; + if (this.issue.entityIds[0] === wayId) { secondWayId = this.issue.entityIds[1]; + edge = this.issue.data.edges[0]; } var secondWay = context.hasEntity(secondWayId); - var edges = this.issue.data.edges; - context.perform( - function actionBridgeCrossingWays(graph) { - var newNode_1 = osmNode(); - var newNode_2 = osmNode(); - edges.forEach(function(edge) { - var edgeNodes = [graph.entity(edge[0]), graph.entity(edge[1])]; + var action = function actionAddStructure(graph) { + var newNode_1 = osmNode(); + var newNode_2 = osmNode(); - //edge to split and make bridge/tunnel - if (way.nodes.includes(edgeNodes[0].id) && way.nodes.includes(edgeNodes[1].id)){ - var halfLenBridgeOrTunnel = (geoMetersToLat(secondWay.tags.width) || 0.00004); - var angle = geoVecAngle(edgeNodes[0].loc, edgeNodes[1].loc); - - var locNewNode_1 = [loc[0] + Math.cos(angle) * halfLenBridgeOrTunnel, - loc[1] + Math.sin(angle) * halfLenBridgeOrTunnel]; - var locNewNode_2 = [loc[0] + Math.cos(angle + Math.PI) * halfLenBridgeOrTunnel, - loc[1] + Math.sin(angle + Math.PI)* halfLenBridgeOrTunnel]; - - //split only if edge is long - if (geoVecLengthSquare(loc, edgeNodes[1].loc) > geoVecLengthSquare(loc, locNewNode_1)){ - graph = actionAddMidpoint({loc: locNewNode_1, edge: edge}, newNode_1)(graph); - graph = actionSplit(newNode_1.id)(graph); - } - else { - newNode_1 = edgeNodes[1]; - } - if (geoVecLengthSquare(loc, edgeNodes[0].loc) > geoVecLengthSquare(loc, locNewNode_2)){ - graph = actionAddMidpoint({loc: locNewNode_2, edge: [edgeNodes[0].id, newNode_1.id]}, newNode_2)(graph); - graph = actionSplit(newNode_2.id)(graph); - } - else { - newNode_2 = edgeNodes[0]; - } - - var waysNode_1 = graph.parentWays(graph.hasEntity(newNode_1.id)); - var waysNode_2 = graph.parentWays(graph.hasEntity(newNode_2.id)); - var commonWay; - - //find way which contains both new nodes - for (var i_1 in waysNode_1){ - for (var i_2 in waysNode_2){ - if (waysNode_1[i_1] === waysNode_2[i_2]){ - commonWay = waysNode_1[i_1]; - } - } - } + var edgeNodes = [graph.entity(edge[0]), graph.entity(edge[1])]; - var tags = Object.assign({}, commonWay.tags); //tags copy - if (bridgeOrTunnel === 'bridge'){ - tags.bridge = 'yes'; - } - else { - tags.tunnel = 'yes'; - } - graph = actionChangeTags(commonWay.id, tags)(graph); - selectedIDs = [commonWay.id]; - mode.reselect(); - } - }); - return graph; - }, - t('issues.fix.' + fixTitleID + '.annotation') - ); + var halfLenBridgeOrTunnel = (geoMetersToLat(secondWay.tags.width) || 0.00004); + var angle = geoVecAngle(edgeNodes[0].loc, edgeNodes[1].loc); + + var locNewNode_1 = [loc[0] + Math.cos(angle) * halfLenBridgeOrTunnel, + loc[1] + Math.sin(angle) * halfLenBridgeOrTunnel]; + var locNewNode_2 = [loc[0] + Math.cos(angle + Math.PI) * halfLenBridgeOrTunnel, + loc[1] + Math.sin(angle + Math.PI)* halfLenBridgeOrTunnel]; + + // split only if edge is long + if (geoVecLengthSquare(loc, edgeNodes[1].loc) > geoVecLengthSquare(loc, locNewNode_1)){ + graph = actionAddMidpoint({loc: locNewNode_1, edge: edge}, newNode_1)(graph); + var splitAction1 = actionSplit(newNode_1.id).limitWays(resultWayIDs); + graph = splitAction1(graph); + if (splitAction1.getCreatedWayIDs().length) { + resultWayIDs.push(splitAction1.getCreatedWayIDs()[0]); + } + } else { + newNode_1 = edgeNodes[1]; + } + if (geoVecLengthSquare(loc, edgeNodes[0].loc) > geoVecLengthSquare(loc, locNewNode_2)){ + graph = actionAddMidpoint({loc: locNewNode_2, edge: [edgeNodes[0].id, newNode_1.id]}, newNode_2)(graph); + var splitAction2 = actionSplit(newNode_2.id).limitWays(resultWayIDs); + graph = splitAction2(graph); + if (splitAction2.getCreatedWayIDs().length) { + resultWayIDs.push(splitAction2.getCreatedWayIDs()[0]); + } + } else { + newNode_2 = edgeNodes[0]; + } + + var commonWay = resultWayIDs.map(function(id) { + return graph.entity(id); + }).find(function(way) { + return way.nodes.indexOf(newNode_1.id) !== -1 && + way.nodes.indexOf(newNode_2.id) !== -1; + }); + + var tags = Object.assign({}, commonWay.tags); // copy tags + if (bridgeOrTunnel === 'bridge'){ + tags.bridge = 'yes'; + tags.layer = '1'; + } + else { + tags.tunnel = 'yes'; + tags.layer = '-1'; + } + graph = actionChangeTags(commonWay.id, tags)(graph); + return graph; + }; + + context.perform(action, t('issues.fix.' + fixTitleID + '.annotation')); + context.enter(modeSelect(context, resultWayIDs)); } }); } From e791b7514c64479c2f015f62083a993741e7c050 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 20 Nov 2019 15:44:14 -0500 Subject: [PATCH 727/774] Use existing vertices for "add a bridge/tunnel" endpoints if the edge is too short to add a new vertex (re: #7055) Avoid creating very short edges from splitting too close to another node when adding a bridge or tunnel via fix Fix possible "entity not found" error --- modules/validations/crossing_ways.js | 84 +++++++++++++++---------- modules/validations/disconnected_way.js | 4 +- 2 files changed, 52 insertions(+), 36 deletions(-) diff --git a/modules/validations/crossing_ways.js b/modules/validations/crossing_ways.js index e74341a7db..5db0fb4347 100644 --- a/modules/validations/crossing_ways.js +++ b/modules/validations/crossing_ways.js @@ -3,7 +3,7 @@ import { actionChangeTags } from '../actions/change_tags'; import { actionMergeNodes } from '../actions/merge_nodes'; import { actionSplit } from '../actions/split'; import { modeSelect } from '../modes/select'; -import { geoExtent, geoLineIntersection, geoSphericalClosestNode, geoVecAngle, geoMetersToLat, geoVecLengthSquare } from '../geo'; +import { geoExtent, geoLineIntersection, geoSphericalClosestNode, geoVecAngle, geoMetersToLon, geoVecLength } from '../geo'; import { osmNode } from '../osm/node'; import { osmFlowingWaterwayTagValues, osmPathHighwayTagValues, osmRailwayTrackTagValues, osmRoutableHighwayTagValues } from '../osm/tags'; import { t } from '../util/locale'; @@ -487,58 +487,74 @@ export function validationCrossingWays(context) { var secondWay = context.hasEntity(secondWayId); var action = function actionAddStructure(graph) { - var newNode_1 = osmNode(); - var newNode_2 = osmNode(); var edgeNodes = [graph.entity(edge[0]), graph.entity(edge[1])]; - var halfLenBridgeOrTunnel = (geoMetersToLat(secondWay.tags.width) || 0.00004); + // use the width of the crossing feature as the structure length, if available + var widthMeters = secondWay.tags.width && parseFloat(secondWay.tags.width); + if (widthMeters) widthMeters = Math.min(widthMeters, 50); + + // the proposed length of the structure, in decimal degrees + var structLength = (widthMeters && geoMetersToLon(widthMeters, loc[1])) || 0.00008; + var halfStructLength = structLength / 2; + var angle = geoVecAngle(edgeNodes[0].loc, edgeNodes[1].loc); - var locNewNode_1 = [loc[0] + Math.cos(angle) * halfLenBridgeOrTunnel, - loc[1] + Math.sin(angle) * halfLenBridgeOrTunnel]; - var locNewNode_2 = [loc[0] + Math.cos(angle + Math.PI) * halfLenBridgeOrTunnel, - loc[1] + Math.sin(angle + Math.PI)* halfLenBridgeOrTunnel]; - - // split only if edge is long - if (geoVecLengthSquare(loc, edgeNodes[1].loc) > geoVecLengthSquare(loc, locNewNode_1)){ - graph = actionAddMidpoint({loc: locNewNode_1, edge: edge}, newNode_1)(graph); - var splitAction1 = actionSplit(newNode_1.id).limitWays(resultWayIDs); - graph = splitAction1(graph); - if (splitAction1.getCreatedWayIDs().length) { - resultWayIDs.push(splitAction1.getCreatedWayIDs()[0]); + var locNewNode1 = [loc[0] + Math.cos(angle) * halfStructLength, + loc[1] + Math.sin(angle) * halfStructLength]; + var locNewNode2 = [loc[0] + Math.cos(angle + Math.PI) * halfStructLength, + loc[1] + Math.sin(angle + Math.PI)* halfStructLength]; + + // decide where to bound the structure along the way, splitting as necessary + function determineEndpoint(edge, endNode, proposedNodeLoc) { + var newNode; + + // avoid creating very short edges from splitting too close to another node + var minEdgeLength = 0.000005; + + // split only if edge is long + if (geoVecLength(loc, endNode.loc) - geoVecLength(loc, proposedNodeLoc) > minEdgeLength) { + // if the edge is long, insert a new node + newNode = osmNode(); + graph = actionAddMidpoint({loc: proposedNodeLoc, edge: edge}, newNode)(graph); + + } else { + // otherwise use the edge endpoint + newNode = endNode; } - } else { - newNode_1 = edgeNodes[1]; - } - if (geoVecLengthSquare(loc, edgeNodes[0].loc) > geoVecLengthSquare(loc, locNewNode_2)){ - graph = actionAddMidpoint({loc: locNewNode_2, edge: [edgeNodes[0].id, newNode_1.id]}, newNode_2)(graph); - var splitAction2 = actionSplit(newNode_2.id).limitWays(resultWayIDs); - graph = splitAction2(graph); - if (splitAction2.getCreatedWayIDs().length) { - resultWayIDs.push(splitAction2.getCreatedWayIDs()[0]); + + var splitAction = actionSplit(newNode.id) + .limitWays(resultWayIDs); // only split selected or created ways + + // do the split + graph = splitAction(graph); + if (splitAction.getCreatedWayIDs().length) { + resultWayIDs.push(splitAction.getCreatedWayIDs()[0]); } - } else { - newNode_2 = edgeNodes[0]; + + return newNode; } - var commonWay = resultWayIDs.map(function(id) { + var structEndNode1 = determineEndpoint(edge, edgeNodes[1], locNewNode1); + var structEndNode2 = determineEndpoint([edgeNodes[0].id, structEndNode1.id], edgeNodes[0], locNewNode2); + + var structureWay = resultWayIDs.map(function(id) { return graph.entity(id); }).find(function(way) { - return way.nodes.indexOf(newNode_1.id) !== -1 && - way.nodes.indexOf(newNode_2.id) !== -1; + return way.nodes.indexOf(structEndNode1.id) !== -1 && + way.nodes.indexOf(structEndNode2.id) !== -1; }); - var tags = Object.assign({}, commonWay.tags); // copy tags + var tags = Object.assign({}, structureWay.tags); // copy tags if (bridgeOrTunnel === 'bridge'){ tags.bridge = 'yes'; tags.layer = '1'; - } - else { + } else { tags.tunnel = 'yes'; tags.layer = '-1'; } - graph = actionChangeTags(commonWay.id, tags)(graph); + // apply the structure tags to the way + graph = actionChangeTags(structureWay.id, tags)(graph); return graph; }; diff --git a/modules/validations/disconnected_way.js b/modules/validations/disconnected_way.js index 06df02926a..4df3f07c62 100644 --- a/modules/validations/disconnected_way.js +++ b/modules/validations/disconnected_way.js @@ -174,8 +174,8 @@ export function validationDisconnectedWay() { } function makeContinueDrawingFixIfAllowed(vertexID, whichEnd) { - var vertex = graph.entity(vertexID); - if (vertex.tags.noexit === 'yes') return null; + var vertex = graph.hasEntity(vertexID); + if (!vertex || vertex.tags.noexit === 'yes') return null; var useLeftContinue = (whichEnd === 'start' && textDirection === 'ltr') || (whichEnd === 'end' && textDirection === 'rtl'); From ff6eb889571c5248bccde9f76ac4124985fabcfa Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 20 Nov 2019 16:04:10 -0500 Subject: [PATCH 728/774] Update add a bridge/tunnel fix icons --- modules/validations/crossing_ways.js | 4 ++-- svg/iD-sprite/tools/structure-bridge.svg | 4 ++++ svg/iD-sprite/tools/structure-tunnel.svg | 4 ++++ 3 files changed, 10 insertions(+), 2 deletions(-) create mode 100644 svg/iD-sprite/tools/structure-bridge.svg create mode 100644 svg/iD-sprite/tools/structure-tunnel.svg diff --git a/modules/validations/crossing_ways.js b/modules/validations/crossing_ways.js index 5db0fb4347..99b78448b7 100644 --- a/modules/validations/crossing_ways.js +++ b/modules/validations/crossing_ways.js @@ -431,11 +431,11 @@ export function validationCrossingWays(context) { } else { // don't recommend adding bridges to waterways since they're uncommmon if (allowsBridge(selectedFeatureType) && selectedFeatureType !== 'waterway') { - fixes.push(makeAddBridgeOrTunnelFix('add_a_bridge', 'maki-bridge', 'bridge')); + fixes.push(makeAddBridgeOrTunnelFix('add_a_bridge', 'iD-structure-bridge', 'bridge')); } if (allowsTunnel(selectedFeatureType)) { - fixes.push(makeAddBridgeOrTunnelFix('add_a_tunnel', 'tnp-2009642', 'tunnel')); + fixes.push(makeAddBridgeOrTunnelFix('add_a_tunnel', 'iD-structure-tunnel', 'tunnel')); } } diff --git a/svg/iD-sprite/tools/structure-bridge.svg b/svg/iD-sprite/tools/structure-bridge.svg new file mode 100644 index 0000000000..2511a22960 --- /dev/null +++ b/svg/iD-sprite/tools/structure-bridge.svg @@ -0,0 +1,4 @@ + + + + diff --git a/svg/iD-sprite/tools/structure-tunnel.svg b/svg/iD-sprite/tools/structure-tunnel.svg new file mode 100644 index 0000000000..8ec7dbbf0c --- /dev/null +++ b/svg/iD-sprite/tools/structure-tunnel.svg @@ -0,0 +1,4 @@ + + + + From a596db636f3c0deeb711c45d3478131bb34364b5 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 20 Nov 2019 16:27:34 -0500 Subject: [PATCH 729/774] Add Width field to moreField of more highway presets --- data/presets/presets.json | 18 +++++++++--------- data/presets/presets/highway/bus_guideway.json | 3 ++- .../presets/presets/highway/living_street.json | 3 ++- data/presets/presets/highway/motorway.json | 3 ++- .../presets/presets/highway/motorway_link.json | 3 ++- data/presets/presets/highway/primary.json | 3 ++- data/presets/presets/highway/primary_link.json | 3 ++- data/presets/presets/highway/residential.json | 3 ++- data/presets/presets/highway/service.json | 3 ++- data/presets/presets/highway/trunk.json | 3 ++- 10 files changed, 27 insertions(+), 18 deletions(-) diff --git a/data/presets/presets.json b/data/presets/presets.json index 07ffc70431..19fa5e28cb 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -483,7 +483,7 @@ "highway/bus_stop": {"icon": "maki-bus", "fields": ["name", "network", "operator", "bench", "shelter"], "geometry": ["point", "vertex"], "tags": {"highway": "bus_stop"}, "matchScore": 0.95, "name": "Bus Stop", "searchable": false, "replacement": "public_transport/platform/bus_point"}, "highway/crossing": {"fields": ["crossing"], "geometry": ["vertex"], "tags": {"highway": "crossing"}, "searchable": false, "matchScore": 0.95, "name": "Crossing"}, "highway/bridleway": {"fields": ["name", "surface", "width", "structure", "access", "incline", "horse_scale"], "moreFields": ["covered", "dog", "lit", "maxweight_bridge", "smoothness", "stroller", "wheelchair"], "icon": "maki-horse-riding", "geometry": ["line"], "tags": {"highway": "bridleway"}, "terms": ["bridleway", "equestrian", "horse", "trail"], "name": "Bridle Path"}, - "highway/bus_guideway": {"icon": "maki-bus", "fields": ["name", "operator", "oneway", "structure", "covered"], "moreFields": ["trolley_wire"], "geometry": ["line"], "tags": {"highway": "bus_guideway"}, "addTags": {"highway": "bus_guideway", "access": "no", "bus": "designated"}, "terms": [], "name": "Bus Guideway"}, + "highway/bus_guideway": {"icon": "maki-bus", "fields": ["name", "operator", "oneway", "structure", "covered"], "moreFields": ["trolley_wire", "width"], "geometry": ["line"], "tags": {"highway": "bus_guideway"}, "addTags": {"highway": "bus_guideway", "access": "no", "bus": "designated"}, "terms": [], "name": "Bus Guideway"}, "highway/construction": {"icon": "maki-barrier", "fields": ["name", "opening_date", "check_date", "note", "oneway", "structure", "access"], "geometry": ["line"], "tags": {"highway": "construction", "access": "no"}, "terms": ["closed", "closure", "construction"], "name": "Road Closed"}, "highway/corridor": {"icon": "temaki-pedestrian", "fields": ["name", "width", "level", "access_simple", "wheelchair"], "moreFields": ["covered", "indoor", "maxheight", "stroller"], "geometry": ["line"], "tags": {"highway": "corridor"}, "addTags": {"highway": "corridor", "indoor": "yes"}, "terms": ["gallery", "hall", "hallway", "indoor", "passage", "passageway"], "name": "Indoor Corridor"}, "highway/crossing/zebra-raised": {"icon": "temaki-pedestrian", "fields": ["crossing", "tactile_paving", "crossing/island"], "geometry": ["vertex"], "tags": {"highway": "crossing", "crossing": "zebra", "traffic_calming": "table"}, "reference": {"key": "traffic_calming", "value": "table"}, "name": "Marked Crosswalk (Raised)", "searchable": false}, @@ -510,28 +510,28 @@ "highway/footway/unmarked-raised": {"icon": "temaki-pedestrian", "fields": ["crossing", "access", "surface", "tactile_paving", "crossing/island"], "geometry": ["line"], "tags": {"footway": "crossing", "crossing": "unmarked", "traffic_calming": "table"}, "addTags": {"highway": "footway", "footway": "crossing", "crossing": "unmarked", "traffic_calming": "table"}, "reference": {"key": "traffic_calming", "value": "table"}, "terms": ["flat top", "hump", "speed", "slow"], "name": "Unmarked Crossing (Raised)"}, "highway/footway/unmarked": {"icon": "temaki-pedestrian", "fields": ["crossing", "access", "surface", "tactile_paving", "crossing/island"], "geometry": ["line"], "tags": {"footway": "crossing", "crossing": "unmarked"}, "addTags": {"highway": "footway", "footway": "crossing", "crossing": "unmarked"}, "reference": {"key": "footway", "value": "crossing"}, "terms": ["unmarked foot path crossing", "unmarked crosswalk", "unmarked pedestrian crossing"], "name": "Unmarked Crossing"}, "highway/give_way": {"icon": "temaki-yield", "fields": ["direction_vertex"], "geometry": ["vertex"], "tags": {"highway": "give_way"}, "terms": ["give way", "yield", "sign"], "name": "Yield Sign"}, - "highway/living_street": {"icon": "iD-highway-living-street", "fields": ["name", "oneway", "maxspeed", "lanes", "surface", "structure", "access"], "moreFields": ["covered", "cycleway", "flood_prone", "junction_line", "lit", "maxheight", "maxweight_bridge", "oneway/bicycle", "smoothness", "trolley_wire"], "geometry": ["line"], "tags": {"highway": "living_street"}, "name": "Living Street"}, + "highway/living_street": {"icon": "iD-highway-living-street", "fields": ["name", "oneway", "maxspeed", "lanes", "surface", "structure", "access"], "moreFields": ["covered", "cycleway", "flood_prone", "junction_line", "lit", "maxheight", "maxweight_bridge", "oneway/bicycle", "smoothness", "trolley_wire", "width"], "geometry": ["line"], "tags": {"highway": "living_street"}, "name": "Living Street"}, "highway/milestone": {"icon": "temaki-milestone", "geometry": ["point", "vertex"], "fields": ["distance", "direction_vertex"], "tags": {"highway": "milestone"}, "terms": ["mile marker", "mile post", "mile stone", "mileage marker", "milemarker", "milepost"], "name": "Highway Milestone"}, "highway/mini_roundabout": {"icon": "maki-circle-stroked", "geometry": ["vertex"], "terms": ["traffic circle"], "tags": {"highway": "mini_roundabout"}, "fields": ["direction_clock"], "name": "Mini-Roundabout"}, "highway/motorway_junction": {"icon": "temaki-junction", "fields": ["ref_highway_junction", "name"], "geometry": ["vertex"], "tags": {"highway": "motorway_junction"}, "terms": ["exit"], "name": "Motorway Junction / Exit"}, - "highway/motorway_link": {"icon": "iD-highway-motorway-link", "fields": ["destination_oneway", "destination/ref_oneway", "junction/ref_oneway", "oneway", "maxspeed", "lanes", "surface", "structure", "access"], "moreFields": ["charge_toll", "covered", "destination/symbol_oneway", "incline", "junction_line", "lit", "maxheight", "maxspeed/advisory", "maxweight_bridge", "name", "ref_road_number", "smoothness", "toll"], "geometry": ["line"], "tags": {"highway": "motorway_link"}, "terms": ["exit", "ramp", "road", "street", "on ramp", "off ramp"], "name": "Motorway Link"}, - "highway/motorway": {"icon": "iD-highway-motorway", "fields": ["name", "ref_road_number", "oneway_yes", "maxspeed", "lanes", "surface", "structure", "access"], "moreFields": ["charge_toll", "covered", "incline", "junction_line", "lit", "maxheight", "maxweight_bridge", "minspeed", "not/name", "smoothness", "toll"], "geometry": ["line"], "tags": {"highway": "motorway"}, "terms": ["autobahn", "expressway", "freeway", "highway", "interstate", "parkway", "road", "street", "thruway", "turnpike"], "name": "Motorway"}, + "highway/motorway_link": {"icon": "iD-highway-motorway-link", "fields": ["destination_oneway", "destination/ref_oneway", "junction/ref_oneway", "oneway", "maxspeed", "lanes", "surface", "structure", "access"], "moreFields": ["charge_toll", "covered", "destination/symbol_oneway", "incline", "junction_line", "lit", "maxheight", "maxspeed/advisory", "maxweight_bridge", "name", "ref_road_number", "smoothness", "toll", "width"], "geometry": ["line"], "tags": {"highway": "motorway_link"}, "terms": ["exit", "ramp", "road", "street", "on ramp", "off ramp"], "name": "Motorway Link"}, + "highway/motorway": {"icon": "iD-highway-motorway", "fields": ["name", "ref_road_number", "oneway_yes", "maxspeed", "lanes", "surface", "structure", "access"], "moreFields": ["charge_toll", "covered", "incline", "junction_line", "lit", "maxheight", "maxweight_bridge", "minspeed", "not/name", "smoothness", "toll", "width"], "geometry": ["line"], "tags": {"highway": "motorway"}, "terms": ["autobahn", "expressway", "freeway", "highway", "interstate", "parkway", "road", "street", "thruway", "turnpike"], "name": "Motorway"}, "highway/passing_place": {"icon": "maki-circle-stroked", "geometry": ["vertex"], "tags": {"highway": "passing_place"}, "terms": ["turnout, pullout"], "name": "Passing Place"}, "highway/path": {"icon": "iD-other-line", "fields": ["name", "surface", "width", "structure", "access", "incline"], "moreFields": ["covered", "dog", "horse_scale", "informal", "lit", "maxweight_bridge", "mtb/scale", "mtb/scale/imba", "mtb/scale/uphill", "not/name", "ref", "sac_scale", "smoothness", "stroller", "trail_visibility", "wheelchair"], "geometry": ["line"], "terms": ["hike", "hiking", "trackway", "trail", "walk"], "tags": {"highway": "path"}, "name": "Path"}, "highway/path/informal": {"icon": "iD-other-line", "fields": ["surface", "width", "access", "trail_visibility", "smoothness", "incline"], "moreFields": ["covered", "dog", "horse_scale", "informal", "lit", "maxweight_bridge", "mtb/scale", "mtb/scale/imba", "mtb/scale/uphill", "sac_scale", "stroller", "structure", "wheelchair"], "geometry": ["line"], "terms": ["bootleg trail", "cow path", "desire line", "desire path", "desireline", "desirepath", "elephant path", "game trail", "goat track", "herd path", "pig trail", "shortcut", "social trail", "use trail"], "tags": {"highway": "path", "informal": "yes"}, "reference": {"key": "informal"}, "name": "Informal Path"}, "highway/pedestrian_area": {"icon": "temaki-pedestrian", "fields": ["name", "surface", "lit", "width", "structure", "access"], "geometry": ["area"], "tags": {"highway": "pedestrian", "area": "yes"}, "terms": ["center", "centre", "plaza", "quad", "square", "walkway"], "name": "Pedestrian Area"}, "highway/pedestrian_line": {"icon": "temaki-pedestrian", "fields": ["name", "surface", "lit", "width", "oneway", "structure", "access"], "moreFields": ["covered", "incline", "maxweight_bridge", "smoothness"], "geometry": ["line"], "tags": {"highway": "pedestrian"}, "terms": ["center", "centre", "plaza", "quad", "square", "walkway"], "name": "Pedestrian Street"}, - "highway/primary_link": {"icon": "iD-highway-primary-link", "fields": ["destination_oneway", "destination/ref_oneway", "oneway", "maxspeed", "lanes", "surface", "structure", "access"], "moreFields": ["charge_toll", "covered", "cycleway", "destination/symbol_oneway", "flood_prone", "incline", "junction_line", "junction/ref_oneway", "lit", "maxheight", "maxspeed/advisory", "maxweight_bridge", "name", "oneway/bicycle", "ref_road_number", "smoothness", "toll", "trolley_wire"], "geometry": ["line"], "tags": {"highway": "primary_link"}, "terms": ["on ramp", "off ramp", "ramp", "road", "street"], "name": "Primary Link"}, - "highway/primary": {"icon": "iD-highway-primary", "fields": ["name", "oneway", "maxspeed", "lanes", "surface", "structure", "ref_road_number", "access"], "moreFields": ["charge_toll", "covered", "cycleway", "flood_prone", "incline", "junction_line", "lit", "maxheight", "maxspeed/advisory", "maxweight_bridge", "not/name", "oneway/bicycle", "smoothness", "toll", "trolley_wire"], "geometry": ["line"], "tags": {"highway": "primary"}, "terms": ["road", "street"], "name": "Primary Road"}, + "highway/primary_link": {"icon": "iD-highway-primary-link", "fields": ["destination_oneway", "destination/ref_oneway", "oneway", "maxspeed", "lanes", "surface", "structure", "access"], "moreFields": ["charge_toll", "covered", "cycleway", "destination/symbol_oneway", "flood_prone", "incline", "junction_line", "junction/ref_oneway", "lit", "maxheight", "maxspeed/advisory", "maxweight_bridge", "name", "oneway/bicycle", "ref_road_number", "smoothness", "toll", "trolley_wire", "width"], "geometry": ["line"], "tags": {"highway": "primary_link"}, "terms": ["on ramp", "off ramp", "ramp", "road", "street"], "name": "Primary Link"}, + "highway/primary": {"icon": "iD-highway-primary", "fields": ["name", "oneway", "maxspeed", "lanes", "surface", "structure", "ref_road_number", "access"], "moreFields": ["charge_toll", "covered", "cycleway", "flood_prone", "incline", "junction_line", "lit", "maxheight", "maxspeed/advisory", "maxweight_bridge", "not/name", "oneway/bicycle", "smoothness", "toll", "trolley_wire", "width"], "geometry": ["line"], "tags": {"highway": "primary"}, "terms": ["road", "street"], "name": "Primary Road"}, "highway/raceway": {"icon": "fas-flag-checkered", "fields": ["name", "oneway", "surface", "sport_racing_motor", "lit", "width", "lanes", "structure"], "geometry": ["line", "area"], "tags": {"highway": "raceway"}, "addTags": {"highway": "raceway", "sport": "motor"}, "terms": ["auto*", "formula one", "kart", "motocross", "nascar", "race*", "track"], "name": "Motorsport Racetrack"}, "highway/raceway/karting": {"icon": "fas-flag-checkered", "geometry": ["line", "area"], "tags": {"highway": "raceway", "sport": "karting"}, "terms": ["carting", "go carts", "go karts", "go-karts", "gokarts", "kart racing", "karting track", "motorsports", "shifter karts", "superkarts"], "name": "Karting Racetrack"}, "highway/raceway/motocross": {"icon": "fas-motorcycle", "geometry": ["line", "area"], "tags": {"highway": "raceway", "sport": "motocross"}, "terms": ["off-road racing", "offroad moto racing", "motocross circuit", "motorcycle track", "motorsports"], "name": "Motocross Racetrack"}, - "highway/residential": {"icon": "iD-highway-residential", "fields": ["name", "oneway", "maxspeed", "lanes", "surface", "structure", "access"], "moreFields": ["covered", "cycleway", "flood_prone", "incline", "junction_line", "lit", "maxheight", "maxspeed/advisory", "maxweight_bridge", "not/name", "oneway/bicycle", "smoothness", "trolley_wire"], "geometry": ["line"], "tags": {"highway": "residential"}, "terms": ["road", "street"], "name": "Residential Road"}, + "highway/residential": {"icon": "iD-highway-residential", "fields": ["name", "oneway", "maxspeed", "lanes", "surface", "structure", "access"], "moreFields": ["covered", "cycleway", "flood_prone", "incline", "junction_line", "lit", "maxheight", "maxspeed/advisory", "maxweight_bridge", "not/name", "oneway/bicycle", "smoothness", "trolley_wire", "width"], "geometry": ["line"], "tags": {"highway": "residential"}, "terms": ["road", "street"], "name": "Residential Road"}, "highway/rest_area": {"icon": "maki-car", "fields": ["name", "operator", "opening_hours"], "moreFields": ["address", "email", "fax", "phone", "website", "wheelchair"], "geometry": ["point", "vertex", "area"], "tags": {"highway": "rest_area"}, "terms": ["rest stop"], "name": "Rest Area"}, "highway/road": {"icon": "iD-other-line", "fields": ["highway", "{highway/residential}"], "moreFields": ["{highway/residential}"], "geometry": ["line"], "tags": {"highway": "road"}, "terms": ["road", "street"], "name": "Unknown Road"}, "highway/secondary_link": {"icon": "iD-highway-secondary-link", "fields": ["{highway/primary_link}"], "moreFields": ["{highway/primary_link}"], "geometry": ["line"], "tags": {"highway": "secondary_link"}, "terms": ["on ramp", "off ramp", "ramp", "road", "street"], "name": "Secondary Link"}, "highway/secondary": {"icon": "iD-highway-secondary", "fields": ["{highway/primary}"], "moreFields": ["{highway/primary}"], "geometry": ["line"], "tags": {"highway": "secondary"}, "terms": ["road", "street"], "name": "Secondary Road"}, - "highway/service": {"icon": "iD-highway-service", "fields": ["name", "service", "oneway", "maxspeed", "surface", "covered", "structure", "access"], "moreFields": ["flood_prone", "incline", "lanes", "lit", "maxheight", "maxspeed/advisory", "maxweight_bridge", "oneway/bicycle", "trolley_wire"], "geometry": ["line"], "tags": {"highway": "service"}, "terms": ["road", "street"], "matchScore": 0.9, "name": "Service Road"}, + "highway/service": {"icon": "iD-highway-service", "fields": ["name", "service", "oneway", "maxspeed", "surface", "covered", "structure", "access"], "moreFields": ["flood_prone", "incline", "lanes", "lit", "maxheight", "maxspeed/advisory", "maxweight_bridge", "oneway/bicycle", "trolley_wire", "width"], "geometry": ["line"], "tags": {"highway": "service"}, "terms": ["road", "street"], "matchScore": 0.9, "name": "Service Road"}, "highway/service/alley": {"icon": "iD-highway-service", "geometry": ["line"], "tags": {"highway": "service", "service": "alley"}, "reference": {"key": "service", "value": "alley"}, "name": "Alley"}, "highway/service/drive-through": {"icon": "iD-highway-service", "geometry": ["line"], "tags": {"highway": "service", "service": "drive-through"}, "reference": {"key": "service", "value": "drive-through"}, "name": "Drive-Through"}, "highway/service/driveway": {"icon": "iD-highway-service", "geometry": ["line"], "tags": {"highway": "service", "service": "driveway"}, "reference": {"key": "service", "value": "driveway"}, "name": "Driveway"}, @@ -550,7 +550,7 @@ "highway/traffic_signals": {"icon": "temaki-traffic_signals", "geometry": ["vertex"], "tags": {"highway": "traffic_signals"}, "fields": ["traffic_signals", "traffic_signals/direction"], "terms": ["light", "stoplight", "traffic light"], "name": "Traffic Signals"}, "highway/trailhead": {"icon": "fas-hiking", "fields": ["name", "operator", "elevation", "address", "access_simple", "fee", "payment_multi_fee", "charge_fee"], "moreFields": ["opening_hours"], "geometry": ["vertex"], "tags": {"highway": "trailhead"}, "terms": ["hiking", "mile zero", "mountain biking", "mountaineering", "trail endpoint", "trail start", "staging area", "trekking"], "name": "Trailhead"}, "highway/trunk_link": {"icon": "iD-highway-trunk-link", "fields": ["{highway/motorway_link}"], "moreFields": ["{highway/motorway_link}"], "geometry": ["line"], "tags": {"highway": "trunk_link"}, "terms": ["on ramp", "off ramp", "ramp", "road", "street"], "name": "Trunk Link"}, - "highway/trunk": {"icon": "iD-highway-trunk", "fields": ["name", "ref_road_number", "oneway", "maxspeed", "lanes", "surface", "structure", "access"], "moreFields": ["charge_toll", "covered", "incline", "junction_line", "lit", "maxheight", "maxweight_bridge", "minspeed", "not/name", "smoothness", "toll"], "geometry": ["line"], "tags": {"highway": "trunk"}, "terms": ["road", "street"], "name": "Trunk Road"}, + "highway/trunk": {"icon": "iD-highway-trunk", "fields": ["name", "ref_road_number", "oneway", "maxspeed", "lanes", "surface", "structure", "access"], "moreFields": ["charge_toll", "covered", "incline", "junction_line", "lit", "maxheight", "maxweight_bridge", "minspeed", "not/name", "smoothness", "toll", "width"], "geometry": ["line"], "tags": {"highway": "trunk"}, "terms": ["road", "street"], "name": "Trunk Road"}, "highway/turning_circle": {"icon": "maki-circle-stroked", "geometry": ["vertex"], "tags": {"highway": "turning_circle"}, "terms": ["cul-de-sac"], "name": "Turning Circle"}, "highway/turning_loop": {"icon": "maki-circle", "geometry": ["vertex"], "tags": {"highway": "turning_loop"}, "terms": ["cul-de-sac"], "name": "Turning Loop (Island)"}, "highway/unclassified": {"icon": "iD-highway-unclassified", "fields": ["{highway/residential}"], "moreFields": ["{highway/residential}"], "geometry": ["line"], "tags": {"highway": "unclassified"}, "terms": ["road", "street"], "name": "Minor/Unclassified Road"}, diff --git a/data/presets/presets/highway/bus_guideway.json b/data/presets/presets/highway/bus_guideway.json index f7fee85568..2a80274f2e 100644 --- a/data/presets/presets/highway/bus_guideway.json +++ b/data/presets/presets/highway/bus_guideway.json @@ -8,7 +8,8 @@ "covered" ], "moreFields": [ - "trolley_wire" + "trolley_wire", + "width" ], "geometry": [ "line" diff --git a/data/presets/presets/highway/living_street.json b/data/presets/presets/highway/living_street.json index 3861f68f02..7fd99b27de 100644 --- a/data/presets/presets/highway/living_street.json +++ b/data/presets/presets/highway/living_street.json @@ -19,7 +19,8 @@ "maxweight_bridge", "oneway/bicycle", "smoothness", - "trolley_wire" + "trolley_wire", + "width" ], "geometry": [ "line" diff --git a/data/presets/presets/highway/motorway.json b/data/presets/presets/highway/motorway.json index d1f513c565..10b3f61dec 100644 --- a/data/presets/presets/highway/motorway.json +++ b/data/presets/presets/highway/motorway.json @@ -21,7 +21,8 @@ "minspeed", "not/name", "smoothness", - "toll" + "toll", + "width" ], "geometry": [ "line" diff --git a/data/presets/presets/highway/motorway_link.json b/data/presets/presets/highway/motorway_link.json index 6a8450a246..073b92e35c 100644 --- a/data/presets/presets/highway/motorway_link.json +++ b/data/presets/presets/highway/motorway_link.json @@ -24,7 +24,8 @@ "name", "ref_road_number", "smoothness", - "toll" + "toll", + "width" ], "geometry": [ "line" diff --git a/data/presets/presets/highway/primary.json b/data/presets/presets/highway/primary.json index 0bdb48ffa7..371bae8786 100644 --- a/data/presets/presets/highway/primary.json +++ b/data/presets/presets/highway/primary.json @@ -25,7 +25,8 @@ "oneway/bicycle", "smoothness", "toll", - "trolley_wire" + "trolley_wire", + "width" ], "geometry": [ "line" diff --git a/data/presets/presets/highway/primary_link.json b/data/presets/presets/highway/primary_link.json index cb6b160757..b1ea14b76c 100644 --- a/data/presets/presets/highway/primary_link.json +++ b/data/presets/presets/highway/primary_link.json @@ -28,7 +28,8 @@ "ref_road_number", "smoothness", "toll", - "trolley_wire" + "trolley_wire", + "width" ], "geometry": [ "line" diff --git a/data/presets/presets/highway/residential.json b/data/presets/presets/highway/residential.json index 2fdc3c5c0b..ee1dead910 100644 --- a/data/presets/presets/highway/residential.json +++ b/data/presets/presets/highway/residential.json @@ -22,7 +22,8 @@ "not/name", "oneway/bicycle", "smoothness", - "trolley_wire" + "trolley_wire", + "width" ], "geometry": [ "line" diff --git a/data/presets/presets/highway/service.json b/data/presets/presets/highway/service.json index c4d151b951..6cdd87cfaa 100644 --- a/data/presets/presets/highway/service.json +++ b/data/presets/presets/highway/service.json @@ -19,7 +19,8 @@ "maxspeed/advisory", "maxweight_bridge", "oneway/bicycle", - "trolley_wire" + "trolley_wire", + "width" ], "geometry": [ "line" diff --git a/data/presets/presets/highway/trunk.json b/data/presets/presets/highway/trunk.json index 3b7d314c72..8de6043723 100644 --- a/data/presets/presets/highway/trunk.json +++ b/data/presets/presets/highway/trunk.json @@ -21,7 +21,8 @@ "minspeed", "not/name", "smoothness", - "toll" + "toll", + "width" ], "geometry": [ "line" From 7cd57789fe4a06a2ee2f718f4da853b4268ab5db Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 20 Nov 2019 16:58:42 -0500 Subject: [PATCH 730/774] Improve "add a bridge/tunnel" fix variable names somewhat (re: #7055) Add a minimum structure length as derived from the crossing feature's width --- modules/validations/crossing_ways.js | 38 ++++++++++++++-------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/modules/validations/crossing_ways.js b/modules/validations/crossing_ways.js index 99b78448b7..8596eb1d6a 100644 --- a/modules/validations/crossing_ways.js +++ b/modules/validations/crossing_ways.js @@ -470,40 +470,40 @@ export function validationCrossingWays(context) { var selectedIDs = mode.selectedIDs(); if (selectedIDs.length !== 1) return; - var loc = this.issue.loc; - var wayId = selectedIDs[0]; - var way = context.hasEntity(wayId); - - if (!way) return; + var selectedWayID = selectedIDs[0]; + if (!context.hasEntity(selectedWayID)) return; - var resultWayIDs = [wayId]; + var resultWayIDs = [selectedWayID]; - var secondWayId = this.issue.entityIds[0]; + var crossingWayID = this.issue.entityIds[0]; var edge = this.issue.data.edges[1]; - if (this.issue.entityIds[0] === wayId) { - secondWayId = this.issue.entityIds[1]; + if (this.issue.entityIds[0] === selectedWayID) { + crossingWayID = this.issue.entityIds[1]; edge = this.issue.data.edges[0]; } - var secondWay = context.hasEntity(secondWayId); + + var crossingLoc = this.issue.loc; var action = function actionAddStructure(graph) { var edgeNodes = [graph.entity(edge[0]), graph.entity(edge[1])]; + var crossingWay = graph.hasEntity(crossingWayID); // use the width of the crossing feature as the structure length, if available - var widthMeters = secondWay.tags.width && parseFloat(secondWay.tags.width); - if (widthMeters) widthMeters = Math.min(widthMeters, 50); + var widthMeters = crossingWay && crossingWay.tags.width && parseFloat(crossingWay.tags.width); + // clamp the width to a reasonable range + if (widthMeters) widthMeters = Math.min(Math.max(widthMeters, 0.5), 50); // the proposed length of the structure, in decimal degrees - var structLength = (widthMeters && geoMetersToLon(widthMeters, loc[1])) || 0.00008; + var structLength = (widthMeters && geoMetersToLon(widthMeters, crossingLoc[1])) || 0.00008; var halfStructLength = structLength / 2; var angle = geoVecAngle(edgeNodes[0].loc, edgeNodes[1].loc); - var locNewNode1 = [loc[0] + Math.cos(angle) * halfStructLength, - loc[1] + Math.sin(angle) * halfStructLength]; - var locNewNode2 = [loc[0] + Math.cos(angle + Math.PI) * halfStructLength, - loc[1] + Math.sin(angle + Math.PI)* halfStructLength]; + var locNewNode1 = [crossingLoc[0] + Math.cos(angle) * halfStructLength, + crossingLoc[1] + Math.sin(angle) * halfStructLength]; + var locNewNode2 = [crossingLoc[0] + Math.cos(angle + Math.PI) * halfStructLength, + crossingLoc[1] + Math.sin(angle + Math.PI)* halfStructLength]; // decide where to bound the structure along the way, splitting as necessary function determineEndpoint(edge, endNode, proposedNodeLoc) { @@ -513,10 +513,10 @@ export function validationCrossingWays(context) { var minEdgeLength = 0.000005; // split only if edge is long - if (geoVecLength(loc, endNode.loc) - geoVecLength(loc, proposedNodeLoc) > minEdgeLength) { + if (geoVecLength(crossingLoc, endNode.loc) - geoVecLength(crossingLoc, proposedNodeLoc) > minEdgeLength) { // if the edge is long, insert a new node newNode = osmNode(); - graph = actionAddMidpoint({loc: proposedNodeLoc, edge: edge}, newNode)(graph); + graph = actionAddMidpoint({ loc: proposedNodeLoc, edge: edge }, newNode)(graph); } else { // otherwise use the edge endpoint From 2712caefb707774a4e31c43b4462fac82501d41e Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Thu, 21 Nov 2019 10:03:30 -0500 Subject: [PATCH 731/774] Add preset for cycleway=asl (close #7014) --- data/presets.yaml | 5 +++++ data/presets/presets.json | 1 + data/presets/presets/cycleway/asl.json | 24 ++++++++++++++++++++++++ data/taginfo.json | 1 + dist/locales/en.json | 4 ++++ 5 files changed, 35 insertions(+) create mode 100644 data/presets/presets/cycleway/asl.json diff --git a/data/presets.yaml b/data/presets.yaml index 1af118705c..09fa0eed17 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -4505,6 +4505,11 @@ en: # craft=winery name: Winery terms: '' + cycleway/asl: + # cycleway=asl + name: Advanced Stop Line + # 'terms: advanced stop box,asl,bicycle box,bike box,bikebox,cycle box,cycle stop marking' + terms: '' embankment: # embankment=yes name: Embankment diff --git a/data/presets/presets.json b/data/presets/presets.json index 19fa5e28cb..9b7e0bec3e 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -432,6 +432,7 @@ "craft/watchmaker": {"icon": "maki-watch", "geometry": ["point", "area"], "tags": {"craft": "watchmaker"}, "name": "Watchmaker"}, "craft/window_construction": {"icon": "temaki-window", "geometry": ["point", "area"], "terms": ["glass"], "tags": {"craft": "window_construction"}, "name": "Window Construction"}, "craft/winery": {"icon": "maki-alcohol-shop", "moreFields": ["{craft}", "min_age"], "geometry": ["point", "area"], "tags": {"craft": "winery"}, "name": "Winery"}, + "cycleway/asl": {"icon": "maki-bicycle", "fields": ["ref", "direction_vertex", "width"], "geometry": ["vertex"], "tags": {"cycleway": "asl"}, "terms": ["advanced stop box", "asl", "bicycle box", "bike box", "bikebox", "cycle box", "cycle stop marking"], "name": "Advanced Stop Line"}, "emergency/designated": {"fields": ["emergency_combo"], "geometry": ["line"], "tags": {"emergency": "designated"}, "name": "Emergency Access Designated", "searchable": false, "matchScore": 0.01}, "emergency/destination": {"fields": ["emergency_combo"], "geometry": ["line"], "tags": {"emergency": "destination"}, "name": "Emergency Access Destination", "searchable": false, "matchScore": 0.01}, "emergency/no": {"fields": ["emergency_combo"], "geometry": ["line"], "tags": {"emergency": "no"}, "name": "Emergency Access No", "searchable": false, "matchScore": 0.01}, diff --git a/data/presets/presets/cycleway/asl.json b/data/presets/presets/cycleway/asl.json new file mode 100644 index 0000000000..d9d9e9ba67 --- /dev/null +++ b/data/presets/presets/cycleway/asl.json @@ -0,0 +1,24 @@ +{ + "icon": "maki-bicycle", + "fields": [ + "ref", + "direction_vertex", + "width" + ], + "geometry": [ + "vertex" + ], + "tags": { + "cycleway": "asl" + }, + "terms": [ + "advanced stop box", + "asl", + "bicycle box", + "bike box", + "bikebox", + "cycle box", + "cycle stop marking" + ], + "name": "Advanced Stop Line" +} diff --git a/data/taginfo.json b/data/taginfo.json index 99f22d006a..a95a18f2f1 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -427,6 +427,7 @@ {"key": "craft", "value": "watchmaker", "description": "🄿 Watchmaker", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/watch-15.svg"}, {"key": "craft", "value": "window_construction", "description": "🄿 Window Construction", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/window.svg"}, {"key": "craft", "value": "winery", "description": "🄿 Winery", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/alcohol-shop-15.svg"}, + {"key": "cycleway", "value": "asl", "description": "🄿 Advanced Stop Line", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/bicycle-15.svg"}, {"key": "emergency", "value": "designated", "description": "🄿 Emergency Access Designated (unsearchable)", "object_types": ["way"]}, {"key": "emergency", "value": "destination", "description": "🄿 Emergency Access Destination (unsearchable)", "object_types": ["way"]}, {"key": "emergency", "value": "no", "description": "🄿 Emergency Access No (unsearchable)", "object_types": ["way"]}, diff --git a/dist/locales/en.json b/dist/locales/en.json index ad83ecc120..b9c6ec59f9 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -6359,6 +6359,10 @@ "name": "Winery", "terms": "" }, + "cycleway/asl": { + "name": "Advanced Stop Line", + "terms": "advanced stop box,asl,bicycle box,bike box,bikebox,cycle box,cycle stop marking" + }, "emergency/designated": { "name": "Emergency Access Designated" }, From f02c0cc4a7588b595372d5658b7b0e52cc47d4a2 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Thu, 21 Nov 2019 10:20:54 -0500 Subject: [PATCH 732/774] Don't include `area` tag on the point when extracting a point from an area (close #7057) --- modules/actions/extract.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/actions/extract.js b/modules/actions/extract.js index e9f8409bcd..6c00a3882c 100644 --- a/modules/actions/extract.js +++ b/modules/actions/extract.js @@ -40,7 +40,7 @@ export function actionExtract(entityID, projection) { function extractFromArea(entity, graph) { var keysToCopyAndRetain = ['source', 'wheelchair']; - var keysToRetain = ['type']; + var keysToRetain = ['area', 'type']; var buildingKeysToRetain = ['architect', 'building', 'height', 'layer']; var centroid = d3_geoPath(projection).centroid(entity.asGeoJSON(graph, true)); From 4297b0d95b61116dee5f1f7ef00f58ce5daf768b Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Thu, 21 Nov 2019 11:20:56 -0500 Subject: [PATCH 733/774] Add unit test for single-member multipolygon collapse behavior in actionJoin (re: f7d8c51bd3b61b2964422973acf9c077f4d7164a) --- test/spec/actions/join.js | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/test/spec/actions/join.js b/test/spec/actions/join.js index 9f789e4557..15b66de63a 100644 --- a/test/spec/actions/join.js +++ b/test/spec/actions/join.js @@ -541,4 +541,42 @@ describe('iD.actionJoin', function () { ]); }); + it('collapses resultant single-member multipolygon into basic area', function () { + // Situation: + // b --> c + // |#####| + // |# m #| + // |#####| + // a <== d + // + // Expected result: + // a --> b + // |#####| + // |#####| + // |#####| + // d <-- c + var graph = iD.coreGraph([ + iD.osmNode({id: 'a', loc: [0,0]}), + iD.osmNode({id: 'b', loc: [0,2]}), + iD.osmNode({id: 'c', loc: [2,2]}), + iD.osmNode({id: 'd', loc: [2,0]}), + iD.osmWay({id: '-', nodes: ['a', 'b', 'c', 'd']}), + iD.osmWay({id: '=', nodes: ['d', 'a']}), + iD.osmRelation({id: 'm', tags: { + type: 'multipolygon', + building: 'yes' + }, members: [ + {id: '-', role: 'outer', type: 'way'}, + {id: '=', role: 'outer', type: 'way'} + ]}) + ]); + + graph = iD.actionJoin(['-', '='])(graph); + + expect(graph.entity('-').nodes).to.eql(['a', 'b', 'c', 'd', 'a']); + expect(graph.entity('-').tags.building).to.eql('yes'); + expect(graph.hasEntity('=')).to.be.undefined; + expect(graph.hasEntity('m')).to.be.undefined; + }); + }); From 588fa36a3a149a713d32aeedb54387bb27c451a2 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Thu, 21 Nov 2019 11:53:40 -0500 Subject: [PATCH 734/774] Restore fixes for generic name warnings --- modules/validations/suspicious_name.js | 34 ++++++++++++++------------ 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/modules/validations/suspicious_name.js b/modules/validations/suspicious_name.js index 28b0617822..9f8936a9c1 100644 --- a/modules/validations/suspicious_name.js +++ b/modules/validations/suspicious_name.js @@ -66,22 +66,24 @@ export function validationSuspiciousName() { reference: showReference, entityIds: [entityId], hash: nameKey + '=' + genericName, - fixes: [ - new validationIssueFix({ - icon: 'iD-operation-delete', - title: t('issues.fix.remove_the_name.title'), - onClick: function(context) { - var entityId = this.issue.entityIds[0]; - var entity = context.entity(entityId); - var tags = Object.assign({}, entity.tags); // shallow copy - delete tags[nameKey]; - context.perform( - actionChangeTags(entityId, tags), - t('issues.fix.remove_generic_name.annotation') - ); - } - }) - ] + dynamicFixes: function() { + return [ + new validationIssueFix({ + icon: 'iD-operation-delete', + title: t('issues.fix.remove_the_name.title'), + onClick: function(context) { + var entityId = this.issue.entityIds[0]; + var entity = context.entity(entityId); + var tags = Object.assign({}, entity.tags); // shallow copy + delete tags[nameKey]; + context.perform( + actionChangeTags(entityId, tags), + t('issues.fix.remove_generic_name.annotation') + ); + } + }) + ]; + } }); function showReference(selection) { From 95a14ea722be42361c93bb0502e299e34f48acc1 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Thu, 21 Nov 2019 12:54:59 -0500 Subject: [PATCH 735/774] Add unit test for single-member multipolygon collapse behavior exception for conflicting tags in actionJoin (re: f7d8c51bd3b61b2964422973acf9c077f4d7164a) --- test/spec/actions/join.js | 55 ++++++++++++++++++++++++++++++++++----- 1 file changed, 49 insertions(+), 6 deletions(-) diff --git a/test/spec/actions/join.js b/test/spec/actions/join.js index 15b66de63a..4225fb0855 100644 --- a/test/spec/actions/join.js +++ b/test/spec/actions/join.js @@ -562,21 +562,64 @@ describe('iD.actionJoin', function () { iD.osmNode({id: 'd', loc: [2,0]}), iD.osmWay({id: '-', nodes: ['a', 'b', 'c', 'd']}), iD.osmWay({id: '=', nodes: ['d', 'a']}), - iD.osmRelation({id: 'm', tags: { - type: 'multipolygon', - building: 'yes' - }, members: [ + iD.osmRelation({id: 'm', members: [ {id: '-', role: 'outer', type: 'way'}, {id: '=', role: 'outer', type: 'way'} - ]}) + ], tags: { + type: 'multipolygon', + man_made: 'pier' + }}) ]); graph = iD.actionJoin(['-', '='])(graph); expect(graph.entity('-').nodes).to.eql(['a', 'b', 'c', 'd', 'a']); - expect(graph.entity('-').tags.building).to.eql('yes'); + expect(graph.entity('-').tags).to.eql({ man_made: 'pier', area: 'yes' }); expect(graph.hasEntity('=')).to.be.undefined; expect(graph.hasEntity('m')).to.be.undefined; }); + it('does not collapse resultant single-member multipolygon into basic area when tags conflict', function () { + // Situation: + // b --> c + // |#####| + // |# m #| + // |#####| + // a <== d + // + // Expected result: + // a --> b + // |#####| + // |# m #| + // |#####| + // d <-- c + var graph = iD.coreGraph([ + iD.osmNode({id: 'a', loc: [0,0]}), + iD.osmNode({id: 'b', loc: [0,2]}), + iD.osmNode({id: 'c', loc: [2,2]}), + iD.osmNode({id: 'd', loc: [2,0]}), + iD.osmWay({id: '-', nodes: ['a', 'b', 'c', 'd'], tags: { surface: 'paved' }}), + iD.osmWay({id: '=', nodes: ['d', 'a']}), + iD.osmRelation({id: 'm', members: [ + {id: '-', role: 'outer', type: 'way'}, + {id: '=', role: 'outer', type: 'way'} + ], tags: { + type: 'multipolygon', + man_made: 'pier', + surface: 'wood' + }}) + ]); + + graph = iD.actionJoin(['-', '='])(graph); + + expect(graph.entity('-').nodes).to.eql(['a', 'b', 'c', 'd', 'a']); + expect(graph.entity('-').tags).to.eql({ surface: 'paved' }); + expect(graph.hasEntity('=')).to.be.undefined; + expect(graph.hasEntity('m').tags).to.eql({ + type: 'multipolygon', + man_made: 'pier', + surface: 'wood' + }); + }); + }); From bc502e373603aa61b67106738ef936322452d2ec Mon Sep 17 00:00:00 2001 From: ToastHawaii Date: Thu, 21 Nov 2019 22:47:34 +0100 Subject: [PATCH 736/774] Add support for big open air chess board. --- data/presets.yaml | 5 +++++ data/presets/presets.json | 1 + data/presets/presets/leisure/pitch/chess.json | 19 +++++++++++++++++++ dist/locales/de.json | 4 ++++ dist/locales/en.json | 4 ++++ 5 files changed, 33 insertions(+) create mode 100644 data/presets/presets/leisure/pitch/chess.json diff --git a/data/presets.yaml b/data/presets.yaml index de0b5989c3..db3ee4c583 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -5704,6 +5704,11 @@ en: # 'leisure=pitch, sport=bowls' name: Bowling Green terms: '' + leisure/pitch/chess: + # 'leisure=picnic_table, sport=chess' + name: Big open air chess board + # 'terms: chess board' + terms: '' leisure/pitch/cricket: # 'leisure=pitch, sport=cricket' name: Cricket Field diff --git a/data/presets/presets.json b/data/presets/presets.json index 5c593940e1..0d0efd2e74 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -677,6 +677,7 @@ "leisure/pitch/beachvolleyball": {"icon": "maki-volleyball", "geometry": ["area", "point"], "tags": {"leisure": "pitch", "sport": "beachvolleyball"}, "addTags": {"leisure": "pitch", "sport": "beachvolleyball", "surface": "sand"}, "reference": {"key": "sport", "value": "beachvolleyball"}, "terms": ["volleyball"], "name": "Beach Volleyball Court"}, "leisure/pitch/boules": {"icon": "maki-pitch", "fields": ["name", "boules", "{leisure/pitch}"], "geometry": ["area", "point"], "tags": {"leisure": "pitch", "sport": "boules"}, "reference": {"key": "sport", "value": "boules"}, "terms": ["bocce", "lyonnaise", "pétanque"], "name": "Boules/Bocce Court"}, "leisure/pitch/bowls": {"icon": "maki-pitch", "geometry": ["area", "point"], "tags": {"leisure": "pitch", "sport": "bowls"}, "reference": {"key": "sport", "value": "bowls"}, "terms": [], "name": "Bowling Green"}, + "leisure/pitch/chess": {"icon": "fas-chess-pawn", "geometry": ["area","point"], "tags": {"leisure": "pitch", "sport": "chess"}, "reference": {"key": "sport", "value": "chess"}, "terms": ["chess board"], "name": "Big open air chess board"}, "leisure/pitch/cricket": {"icon": "maki-cricket", "geometry": ["area", "point"], "tags": {"leisure": "pitch", "sport": "cricket"}, "reference": {"key": "sport", "value": "cricket"}, "terms": [], "name": "Cricket Field"}, "leisure/pitch/equestrian": {"icon": "maki-horse-riding", "fields": ["{leisure/pitch}", "building"], "geometry": ["area", "point"], "tags": {"leisure": "pitch", "sport": "equestrian"}, "reference": {"key": "sport", "value": "equestrian"}, "terms": ["dressage", "equestrian", "horse", "horseback", "riding"], "name": "Riding Arena"}, "leisure/pitch/field_hockey": {"icon": "maki-pitch", "geometry": ["area", "point"], "tags": {"leisure": "pitch", "sport": "field_hockey"}, "reference": {"key": "sport", "value": "field_hockey"}, "terms": ["landhockey"], "name": "Field Hockey Pitch"}, diff --git a/data/presets/presets/leisure/pitch/chess.json b/data/presets/presets/leisure/pitch/chess.json new file mode 100644 index 0000000000..69af8c90f2 --- /dev/null +++ b/data/presets/presets/leisure/pitch/chess.json @@ -0,0 +1,19 @@ +{ + "icon": "fas-chess-pawn", + "geometry": [ + "area", + "point" + ], + "tags": { + "leisure": "pitch", + "sport": "chess" + }, + "reference": { + "key": "sport", + "value": "chess" + }, + "terms": [ + "chess board" + ], + "name": "Big open air chess board" +} \ No newline at end of file diff --git a/dist/locales/de.json b/dist/locales/de.json index 931b7f6aea..17e6a2f0e1 100644 --- a/dist/locales/de.json +++ b/dist/locales/de.json @@ -7251,6 +7251,10 @@ "name": "Bowlingrasen", "terms": "Bowling-Rasenfläche, Bowlingrasen" }, + "leisure/pitch/chess": { + "name": "Grosses Freiluft-Schachspiel", + "terms": "Grosses Freiluft-Schachspiel" + }, "leisure/pitch/cricket": { "name": "Cricket-Spielfeld", "terms": "Cricketfeld" diff --git a/dist/locales/en.json b/dist/locales/en.json index bf7c51acf0..200af5be1a 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -7460,6 +7460,10 @@ "name": "Bowling Green", "terms": "" }, + "leisure/pitch/chess": { + "name": "Big open air chess board", + "terms": "chess board" + }, "leisure/pitch/cricket": { "name": "Cricket Field", "terms": "" From a498ae5334213c99d9ca908525baf9b9fb799599 Mon Sep 17 00:00:00 2001 From: ToastHawaii Date: Thu, 21 Nov 2019 22:47:34 +0100 Subject: [PATCH 737/774] Cherry pick giant chess board --- data/presets.yaml | 5 +++++ data/presets/presets.json | 1 + data/presets/presets/leisure/pitch/chess.json | 19 +++++++++++++++++++ data/taginfo.json | 2 +- dist/locales/de.json | 4 ++++ dist/locales/en.json | 4 ++++ 6 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 data/presets/presets/leisure/pitch/chess.json diff --git a/data/presets.yaml b/data/presets.yaml index 09fa0eed17..826e2e8183 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -5658,6 +5658,11 @@ en: # 'leisure=pitch, sport=bowls' name: Bowling Green terms: '' + leisure/pitch/chess: + # 'leisure=pitch, sport=chess' + name: Big open air chess board + # 'terms: chess board' + terms: '' leisure/pitch/cricket: # 'leisure=pitch, sport=cricket' name: Cricket Field diff --git a/data/presets/presets.json b/data/presets/presets.json index 9b7e0bec3e..75061d9760 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -677,6 +677,7 @@ "leisure/pitch/beachvolleyball": {"icon": "maki-volleyball", "geometry": ["point", "area"], "tags": {"leisure": "pitch", "sport": "beachvolleyball"}, "addTags": {"leisure": "pitch", "sport": "beachvolleyball", "surface": "sand"}, "reference": {"key": "sport", "value": "beachvolleyball"}, "terms": ["volleyball"], "name": "Beach Volleyball Court"}, "leisure/pitch/boules": {"icon": "maki-pitch", "fields": ["name", "boules", "{leisure/pitch}"], "geometry": ["point", "area"], "tags": {"leisure": "pitch", "sport": "boules"}, "reference": {"key": "sport", "value": "boules"}, "terms": ["bocce", "lyonnaise", "pétanque"], "name": "Boules/Bocce Court"}, "leisure/pitch/bowls": {"icon": "maki-pitch", "geometry": ["point", "area"], "tags": {"leisure": "pitch", "sport": "bowls"}, "reference": {"key": "sport", "value": "bowls"}, "terms": [], "name": "Bowling Green"}, + "leisure/pitch/chess": {"icon": "fas-chess-pawn", "geometry": ["area", "point"], "tags": {"leisure": "pitch", "sport": "chess"}, "reference": {"key": "sport", "value": "chess"}, "terms": ["chess board"], "name": "Big open air chess board"}, "leisure/pitch/cricket": {"icon": "maki-cricket", "geometry": ["point", "area"], "tags": {"leisure": "pitch", "sport": "cricket"}, "reference": {"key": "sport", "value": "cricket"}, "terms": [], "name": "Cricket Field"}, "leisure/pitch/equestrian": {"icon": "maki-horse-riding", "fields": ["{leisure/pitch}", "building"], "geometry": ["point", "area"], "tags": {"leisure": "pitch", "sport": "equestrian"}, "reference": {"key": "sport", "value": "equestrian"}, "terms": ["dressage", "equestrian", "horse", "horseback", "riding"], "name": "Riding Arena"}, "leisure/pitch/field_hockey": {"icon": "maki-pitch", "geometry": ["point", "area"], "tags": {"leisure": "pitch", "sport": "field_hockey"}, "reference": {"key": "sport", "value": "field_hockey"}, "terms": ["landhockey"], "name": "Field Hockey Pitch"}, diff --git a/data/presets/presets/leisure/pitch/chess.json b/data/presets/presets/leisure/pitch/chess.json new file mode 100644 index 0000000000..69af8c90f2 --- /dev/null +++ b/data/presets/presets/leisure/pitch/chess.json @@ -0,0 +1,19 @@ +{ + "icon": "fas-chess-pawn", + "geometry": [ + "area", + "point" + ], + "tags": { + "leisure": "pitch", + "sport": "chess" + }, + "reference": { + "key": "sport", + "value": "chess" + }, + "terms": [ + "chess board" + ], + "name": "Big open air chess board" +} \ No newline at end of file diff --git a/data/taginfo.json b/data/taginfo.json index a95a18f2f1..c8c6407022 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -649,7 +649,7 @@ {"key": "leisure", "value": "outdoor_seating", "description": "🄿 Outdoor Seating Area", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/picnic-site-15.svg"}, {"key": "leisure", "value": "park", "description": "🄿 Park", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/park-15.svg"}, {"key": "leisure", "value": "picnic_table", "description": "🄿 Picnic Table", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/picnic-site-15.svg"}, - {"key": "sport", "value": "chess", "description": "🄿 Chess Table", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD@master/svg/fontawesome/fas-chess-pawn.svg"}, + {"key": "sport", "value": "chess", "description": "🄿 Chess Table, 🄿 Big open air chess board", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD@master/svg/fontawesome/fas-chess-pawn.svg"}, {"key": "leisure", "value": "pitch", "description": "🄿 Sport Pitch", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/pitch-15.svg"}, {"key": "sport", "value": "american_football", "description": "🄿 American Football Field", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/american-football-15.svg"}, {"key": "sport", "value": "australian_football", "description": "🄿 Australian Football Field", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/american-football-15.svg"}, diff --git a/dist/locales/de.json b/dist/locales/de.json index 931b7f6aea..17e6a2f0e1 100644 --- a/dist/locales/de.json +++ b/dist/locales/de.json @@ -7251,6 +7251,10 @@ "name": "Bowlingrasen", "terms": "Bowling-Rasenfläche, Bowlingrasen" }, + "leisure/pitch/chess": { + "name": "Grosses Freiluft-Schachspiel", + "terms": "Grosses Freiluft-Schachspiel" + }, "leisure/pitch/cricket": { "name": "Cricket-Spielfeld", "terms": "Cricketfeld" diff --git a/dist/locales/en.json b/dist/locales/en.json index b9c6ec59f9..807d4dc832 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -7320,6 +7320,10 @@ "name": "Bowling Green", "terms": "" }, + "leisure/pitch/chess": { + "name": "Big open air chess board", + "terms": "chess board" + }, "leisure/pitch/cricket": { "name": "Cricket Field", "terms": "" From 0ce99bc8fd1df0fa4732756a7c5f3b77733f0fe2 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Fri, 22 Nov 2019 10:35:15 -0500 Subject: [PATCH 738/774] Update name, terms, and icon for giant chess board preset (re: #7059) --- data/presets.yaml | 6 +++--- data/presets/presets.json | 2 +- data/presets/presets/leisure/pitch/chess.json | 14 ++++++++++---- data/taginfo.json | 2 +- dist/locales/en.json | 4 ++-- svg/fontawesome/fas-chess-bishop.svg | 1 + 6 files changed, 18 insertions(+), 11 deletions(-) create mode 100644 svg/fontawesome/fas-chess-bishop.svg diff --git a/data/presets.yaml b/data/presets.yaml index 826e2e8183..3e1c52912b 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -5660,9 +5660,9 @@ en: terms: '' leisure/pitch/chess: # 'leisure=pitch, sport=chess' - name: Big open air chess board - # 'terms: chess board' - terms: '' + name: Giant Chess Board + # 'terms: chessboard,checkerboard,checkers,chequerboard,garden chess,large chess,oversize chess' + terms: '' leisure/pitch/cricket: # 'leisure=pitch, sport=cricket' name: Cricket Field diff --git a/data/presets/presets.json b/data/presets/presets.json index 75061d9760..5ddc8eeb35 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -677,7 +677,7 @@ "leisure/pitch/beachvolleyball": {"icon": "maki-volleyball", "geometry": ["point", "area"], "tags": {"leisure": "pitch", "sport": "beachvolleyball"}, "addTags": {"leisure": "pitch", "sport": "beachvolleyball", "surface": "sand"}, "reference": {"key": "sport", "value": "beachvolleyball"}, "terms": ["volleyball"], "name": "Beach Volleyball Court"}, "leisure/pitch/boules": {"icon": "maki-pitch", "fields": ["name", "boules", "{leisure/pitch}"], "geometry": ["point", "area"], "tags": {"leisure": "pitch", "sport": "boules"}, "reference": {"key": "sport", "value": "boules"}, "terms": ["bocce", "lyonnaise", "pétanque"], "name": "Boules/Bocce Court"}, "leisure/pitch/bowls": {"icon": "maki-pitch", "geometry": ["point", "area"], "tags": {"leisure": "pitch", "sport": "bowls"}, "reference": {"key": "sport", "value": "bowls"}, "terms": [], "name": "Bowling Green"}, - "leisure/pitch/chess": {"icon": "fas-chess-pawn", "geometry": ["area", "point"], "tags": {"leisure": "pitch", "sport": "chess"}, "reference": {"key": "sport", "value": "chess"}, "terms": ["chess board"], "name": "Big open air chess board"}, + "leisure/pitch/chess": {"icon": "fas-chess-bishop", "geometry": ["area", "point"], "tags": {"leisure": "pitch", "sport": "chess"}, "reference": {"key": "sport", "value": "chess"}, "terms": ["chessboard", "checkerboard", "checkers", "chequerboard", "garden chess", "large chess", "oversize chess"], "name": "Giant Chess Board"}, "leisure/pitch/cricket": {"icon": "maki-cricket", "geometry": ["point", "area"], "tags": {"leisure": "pitch", "sport": "cricket"}, "reference": {"key": "sport", "value": "cricket"}, "terms": [], "name": "Cricket Field"}, "leisure/pitch/equestrian": {"icon": "maki-horse-riding", "fields": ["{leisure/pitch}", "building"], "geometry": ["point", "area"], "tags": {"leisure": "pitch", "sport": "equestrian"}, "reference": {"key": "sport", "value": "equestrian"}, "terms": ["dressage", "equestrian", "horse", "horseback", "riding"], "name": "Riding Arena"}, "leisure/pitch/field_hockey": {"icon": "maki-pitch", "geometry": ["point", "area"], "tags": {"leisure": "pitch", "sport": "field_hockey"}, "reference": {"key": "sport", "value": "field_hockey"}, "terms": ["landhockey"], "name": "Field Hockey Pitch"}, diff --git a/data/presets/presets/leisure/pitch/chess.json b/data/presets/presets/leisure/pitch/chess.json index 69af8c90f2..b8456b73d2 100644 --- a/data/presets/presets/leisure/pitch/chess.json +++ b/data/presets/presets/leisure/pitch/chess.json @@ -1,5 +1,5 @@ { - "icon": "fas-chess-pawn", + "icon": "fas-chess-bishop", "geometry": [ "area", "point" @@ -13,7 +13,13 @@ "value": "chess" }, "terms": [ - "chess board" + "chessboard", + "checkerboard", + "checkers", + "chequerboard", + "garden chess", + "large chess", + "oversize chess" ], - "name": "Big open air chess board" -} \ No newline at end of file + "name": "Giant Chess Board" +} diff --git a/data/taginfo.json b/data/taginfo.json index c8c6407022..4bed502d4a 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -649,7 +649,7 @@ {"key": "leisure", "value": "outdoor_seating", "description": "🄿 Outdoor Seating Area", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/picnic-site-15.svg"}, {"key": "leisure", "value": "park", "description": "🄿 Park", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/park-15.svg"}, {"key": "leisure", "value": "picnic_table", "description": "🄿 Picnic Table", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/picnic-site-15.svg"}, - {"key": "sport", "value": "chess", "description": "🄿 Chess Table, 🄿 Big open air chess board", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD@master/svg/fontawesome/fas-chess-pawn.svg"}, + {"key": "sport", "value": "chess", "description": "🄿 Chess Table, 🄿 Giant Chess Board", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD@master/svg/fontawesome/fas-chess-pawn.svg"}, {"key": "leisure", "value": "pitch", "description": "🄿 Sport Pitch", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/pitch-15.svg"}, {"key": "sport", "value": "american_football", "description": "🄿 American Football Field", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/american-football-15.svg"}, {"key": "sport", "value": "australian_football", "description": "🄿 Australian Football Field", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/american-football-15.svg"}, diff --git a/dist/locales/en.json b/dist/locales/en.json index 807d4dc832..5ecd34e132 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -7321,8 +7321,8 @@ "terms": "" }, "leisure/pitch/chess": { - "name": "Big open air chess board", - "terms": "chess board" + "name": "Giant Chess Board", + "terms": "chessboard,checkerboard,checkers,chequerboard,garden chess,large chess,oversize chess" }, "leisure/pitch/cricket": { "name": "Cricket Field", diff --git a/svg/fontawesome/fas-chess-bishop.svg b/svg/fontawesome/fas-chess-bishop.svg new file mode 100644 index 0000000000..d06e0ed052 --- /dev/null +++ b/svg/fontawesome/fas-chess-bishop.svg @@ -0,0 +1 @@ + \ No newline at end of file From b5a5dfc34a2befef0cc2f09fce12d833c4bba901 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Fri, 22 Nov 2019 12:14:20 -0500 Subject: [PATCH 739/774] Don't list non-global imagery sources at low zooms (close #7062) Always show the currently selected background in the list (close #7061) --- modules/renderer/background.js | 16 ++++++++++++++-- modules/ui/background.js | 2 +- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/modules/renderer/background.js b/modules/renderer/background.js index 0bbaf5a25c..ce7416e7b3 100644 --- a/modules/renderer/background.js +++ b/modules/renderer/background.js @@ -212,15 +212,27 @@ export function rendererBackground(context) { }; - background.sources = function(extent) { + background.sources = function(extent, zoom, alwaysIncludeSelected) { if (!data.imagery || !data.imagery.query) return []; // called before init()? var matchIDs = {}; var matchImagery = data.imagery.query.bbox(extent.rectangle(), true) || []; matchImagery.forEach(function(d) { matchIDs[d.id] = true; }); + var currentSource = baseLayer.source(); + return _backgroundSources.filter(function(source) { - return matchIDs[source.id] || !source.polygon; // no polygon = worldwide + // optionally always include the selected source + if (alwaysIncludeSelected && currentSource === source) return true; + + // always show sources with worldwide coverage + if (!source.polygon) return true; + + // optionally don't include non-worldwide sources at low zooms + if (zoom && zoom < 6) return false; + + // don't include sources outside the extent + return matchIDs[source.id]; }); }; diff --git a/modules/ui/background.js b/modules/ui/background.js index e8ada19566..6a15fb0ffb 100644 --- a/modules/ui/background.js +++ b/modules/ui/background.js @@ -121,7 +121,7 @@ export function uiBackground(context) { function drawListItems(layerList, type, change, filter) { var sources = context.background() - .sources(context.map().extent()) + .sources(context.map().extent(), context.map().zoom(), true) .filter(filter); var layerLinks = layerList.selectAll('li') From 4b9b0860bf6337de119fd1d784a0009925226354 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Fri, 22 Nov 2019 13:09:46 -0500 Subject: [PATCH 740/774] Fix incomplete rendering of unclosed multipolygon rings (close #2945) --- modules/osm/relation.js | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/modules/osm/relation.js b/modules/osm/relation.js index a01ee23426..f7f48013a3 100644 --- a/modules/osm/relation.js +++ b/modules/osm/relation.js @@ -307,12 +307,16 @@ Object.assign(osmRelation.prototype, { outers = osmJoinWays(outers, resolver); inners = osmJoinWays(inners, resolver); - outers = outers.map(function(outer) { - return outer.nodes.map(function(node) { return node.loc; }); - }); - inners = inners.map(function(inner) { - return inner.nodes.map(function(node) { return node.loc; }); - }); + var wayToLineString = function(way) { + if (way.nodes[0] !== way.nodes[way.nodes.length - 1]) { + // treat all parts as closed even if they aren't + way.nodes.push(way.nodes[0]); + } + return way.nodes.map(function(node) { return node.loc; }); + }; + + outers = outers.map(wayToLineString); + inners = inners.map(wayToLineString); var result = outers.map(function(o) { // Heuristic for detecting counterclockwise winding order. Assumes From d0c5add378634713ec158934df3a53be1aeb4b67 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Fri, 22 Nov 2019 14:43:16 -0500 Subject: [PATCH 741/774] Update some variable names to not be misleading --- modules/osm/relation.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/modules/osm/relation.js b/modules/osm/relation.js index f7f48013a3..2af55cabef 100644 --- a/modules/osm/relation.js +++ b/modules/osm/relation.js @@ -307,16 +307,16 @@ Object.assign(osmRelation.prototype, { outers = osmJoinWays(outers, resolver); inners = osmJoinWays(inners, resolver); - var wayToLineString = function(way) { - if (way.nodes[0] !== way.nodes[way.nodes.length - 1]) { + var sequenceToLineString = function(sequence) { + if (sequence.nodes[0] !== sequence.nodes[sequence.nodes.length - 1]) { // treat all parts as closed even if they aren't - way.nodes.push(way.nodes[0]); + sequence.nodes.push(sequence.nodes[0]); } - return way.nodes.map(function(node) { return node.loc; }); + return sequence.nodes.map(function(node) { return node.loc; }); }; - outers = outers.map(wayToLineString); - inners = inners.map(wayToLineString); + outers = outers.map(sequenceToLineString); + inners = inners.map(sequenceToLineString); var result = outers.map(function(o) { // Heuristic for detecting counterclockwise winding order. Assumes From 45ac186a683b3728664a8112e249343114e2ef98 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Fri, 22 Nov 2019 14:55:51 -0500 Subject: [PATCH 742/774] Flag unclosed multipolygon parts (close #2223) --- ARCHITECTURE.md | 1 + data/core.yaml | 3 ++ dist/locales/en.json | 4 ++ modules/validations/mismatched_geometry.js | 53 ++++++++++++++++++++++ 4 files changed, 61 insertions(+) diff --git a/ARCHITECTURE.md b/ARCHITECTURE.md index cefb8557e3..1cbe3bd9b8 100644 --- a/ARCHITECTURE.md +++ b/ARCHITECTURE.md @@ -459,6 +459,7 @@ A feature's tags indicate it should have a different geometry than it currently * `area_as_line`: an unclosed way has tags implying it should be a closed area (e.g. `area=yes` or `building=yes`) * `vertex_as_point`: a detached node has tags implying it should be part of a way (e.g. `highway=stop`) * `point_as_vertex`: a vertex node has tags implying it should be detached from ways (e.g. `amenity=cafe`) +* `unclosed_multipolygon_part`: a relation is tagged as a multipolygon but not all of its member ways form closed rings ##### `missing_role` diff --git a/data/core.yaml b/data/core.yaml index e48d5e1f86..c7280aff98 100644 --- a/data/core.yaml +++ b/data/core.yaml @@ -1513,6 +1513,9 @@ en: end: message: "{feature} has no outlet" reference: "One-way roads must lead to other roads." + unclosed_multipolygon_part: + message: "{feature} has an unclosed part" + reference: "All inner and outer parts of multipolygons should have connected endpoints." unsquare_way: title: "Unsquare Corners (up to {val}°)" message: "{feature} has unsquare corners" diff --git a/dist/locales/en.json b/dist/locales/en.json index 5ecd34e132..cdd71b0e99 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -1883,6 +1883,10 @@ } } }, + "unclosed_multipolygon_part": { + "message": "{feature} has an unclosed part", + "reference": "All inner and outer parts of multipolygons should have connected endpoints." + }, "unsquare_way": { "title": "Unsquare Corners (up to {val}°)", "message": "{feature} has unsquare corners", diff --git a/modules/validations/mismatched_geometry.js b/modules/validations/mismatched_geometry.js index a3ea1ce0a3..869f1002f7 100644 --- a/modules/validations/mismatched_geometry.js +++ b/modules/validations/mismatched_geometry.js @@ -3,6 +3,7 @@ import { actionChangeTags } from '../actions/change_tags'; import { actionMergeNodes } from '../actions/merge_nodes'; import { actionExtract } from '../actions/extract'; import { modeSelect } from '../modes/select'; +import { osmJoinWays } from '../osm/multipolygon'; import { osmNodeGeometriesForTags } from '../osm/tags'; import { geoHasSelfIntersections, geoSphericalDistance } from '../geo'; import { t } from '../util/locale'; @@ -224,11 +225,63 @@ export function validationMismatchedGeometry(context) { return null; } + function unclosedMultipolygonPartIssues(entity, graph) { + + if (entity.type !== 'relation' || !entity.isMultipolygon() || entity.isDegenerate()) return null; + + var sequences = osmJoinWays(entity.members, graph); + + var issues = []; + + for (var i in sequences) { + var sequence = sequences[i]; + + if (!sequence.nodes) continue; + + var firstNode = sequence.nodes[0]; + var lastNode = sequence.nodes[sequence.nodes.length - 1]; + + // part is closed if the first and last nodes are the same + if (firstNode === lastNode) continue; + + var issue = new validationIssue({ + type: type, + subtype: 'unclosed_multipolygon_part', + severity: 'warning', + message: function(context) { + var entity = context.hasEntity(this.entityIds[0]); + return entity ? t('issues.unclosed_multipolygon_part.message', { + feature: utilDisplayLabel(entity, context) + }) : ''; + }, + reference: showReference, + loc: sequence.nodes[0].loc, + entityIds: [entity.id], + hash: sequence.map(function(way) { + return way.id; + }).join() + }); + issues.push(issue); + } + + return issues; + + function showReference(selection) { + selection.selectAll('.issue-reference') + .data([0]) + .enter() + .append('div') + .attr('class', 'issue-reference') + .text(t('issues.unclosed_multipolygon_part.reference')); + } + } + var validation = function checkMismatchedGeometry(entity, graph) { var issues = [ vertexTaggedAsPointIssue(entity, graph), lineTaggedAsAreaIssue(entity) ]; + issues = issues.concat(unclosedMultipolygonPartIssues(entity, graph)); return issues.filter(Boolean); }; From 59f0c04e135dba0fcc8e16f864df8105ad2ba017 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Fri, 22 Nov 2019 15:00:43 -0500 Subject: [PATCH 743/774] Don't flag unclosed parts of multipolygons with undownloaded members (re: #2223) --- modules/validations/mismatched_geometry.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/modules/validations/mismatched_geometry.js b/modules/validations/mismatched_geometry.js index 869f1002f7..83b2b44509 100644 --- a/modules/validations/mismatched_geometry.js +++ b/modules/validations/mismatched_geometry.js @@ -227,7 +227,11 @@ export function validationMismatchedGeometry(context) { function unclosedMultipolygonPartIssues(entity, graph) { - if (entity.type !== 'relation' || !entity.isMultipolygon() || entity.isDegenerate()) return null; + if (entity.type !== 'relation' || + !entity.isMultipolygon() || + entity.isDegenerate() || + // cannot determine issues for incompletely-downloaded relations + !entity.isComplete(graph)) return null; var sequences = osmJoinWays(entity.members, graph); From 7945f5d6fff7a525a4cdb7be3a91a3292c3c567e Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Fri, 22 Nov 2019 15:32:27 -0500 Subject: [PATCH 744/774] Don't flag missing tags for nodes on unloaded tiles --- modules/validations/missing_tag.js | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/modules/validations/missing_tag.js b/modules/validations/missing_tag.js index e9d848a630..10e7348425 100644 --- a/modules/validations/missing_tag.js +++ b/modules/validations/missing_tag.js @@ -6,7 +6,7 @@ import { utilDisplayLabel } from '../util'; import { validationIssue, validationIssueFix } from '../core/validation'; -export function validationMissingTag() { +export function validationMissingTag(context) { var type = 'missing_tag'; function hasDescriptiveTags(entity, graph) { @@ -43,8 +43,12 @@ export function validationMissingTag() { var validation = function checkMissingTag(entity, graph) { - // ignore vertex features and relation members - if (entity.geometry(graph) === 'vertex' || entity.hasParentRelations(graph)) { + // we can't know if the node is a vertex if the tile is undownloaded + if ((entity.type === 'node' && !context.connection().isDataLoaded(entity.loc)) || + // allow untagged nodes that are part of ways + entity.geometry(graph) === 'vertex' || + // allow untagged entities that are part of relations + entity.hasParentRelations(graph)) { return []; } @@ -123,7 +127,6 @@ export function validationMissingTag() { } })]; - function showReference(selection) { selection.selectAll('.issue-reference') .data([0]) From 22266c66b1ed5a2953b18a8442d29619866736d0 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Fri, 22 Nov 2019 15:47:34 -0500 Subject: [PATCH 745/774] Suggest noexit fix for almost junctions even if the endpoint has uninteresting tags --- modules/validations/almost_junction.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/modules/validations/almost_junction.js b/modules/validations/almost_junction.js index 210504243d..cbf3aa168a 100644 --- a/modules/validations/almost_junction.js +++ b/modules/validations/almost_junction.js @@ -105,15 +105,17 @@ export function validationAlmostJunction(context) { })]; var node = context.hasEntity(this.entityIds[1]); - if (node && Object.keys(node.tags).length === 0) { - // node has no tags, suggest noexit fix + if (node && !node.hasInterestingTags()) { + // node has no descriptive tags, suggest noexit fix fixes.push(new validationIssueFix({ icon: 'maki-barrier', title: t('issues.fix.tag_as_disconnected.title'), onClick: function(context) { var nodeID = this.issue.entityIds[1]; + var tags = Object.assign({}, context.entity(nodeID).tags); + tags.noexit = 'yes'; context.perform( - actionChangeTags(nodeID, { noexit: 'yes' }), + actionChangeTags(nodeID, tags), t('issues.fix.tag_as_disconnected.annotation') ); } From 62865db7404ca42f40af24521e814ecd205e41e0 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Fri, 22 Nov 2019 15:50:40 -0500 Subject: [PATCH 746/774] Fix issue where crossing ways layer fix would set layer tag as a number instead of a string (re: #6911) --- modules/validations/crossing_ways.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/validations/crossing_ways.js b/modules/validations/crossing_ways.js index 8596eb1d6a..f38ec98230 100644 --- a/modules/validations/crossing_ways.js +++ b/modules/validations/crossing_ways.js @@ -650,7 +650,7 @@ export function validationCrossingWays(context) { layer = -1; } } - tags.layer = layer; + tags.layer = layer.toString(); context.perform( actionChangeTags(entity.id, tags), t('operations.change_tags.annotation') From b62162b191bd9f6072fd1a8c2aba66609452f292 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Fri, 22 Nov 2019 16:08:41 -0500 Subject: [PATCH 747/774] Add check to ensure osm service is available before calling isDataLoaded --- modules/validations/missing_tag.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/validations/missing_tag.js b/modules/validations/missing_tag.js index 10e7348425..d9e9246324 100644 --- a/modules/validations/missing_tag.js +++ b/modules/validations/missing_tag.js @@ -43,8 +43,10 @@ export function validationMissingTag(context) { var validation = function checkMissingTag(entity, graph) { + var osm = context.connection(); + // we can't know if the node is a vertex if the tile is undownloaded - if ((entity.type === 'node' && !context.connection().isDataLoaded(entity.loc)) || + if ((entity.type === 'node' && osm && !osm.isDataLoaded(entity.loc)) || // allow untagged nodes that are part of ways entity.geometry(graph) === 'vertex' || // allow untagged entities that are part of relations From 81b561fffc778e7dd88143e4a28c9f66565eefb5 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Fri, 22 Nov 2019 17:01:51 -0500 Subject: [PATCH 748/774] Don't close unclosed multipolygon parts with fewer than three nodes when generating geojson Update multipolygon geojson code tests --- modules/osm/relation.js | 5 +++-- test/spec/osm/relation.js | 12 ++++++------ 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/modules/osm/relation.js b/modules/osm/relation.js index 2af55cabef..2c33b7b0ca 100644 --- a/modules/osm/relation.js +++ b/modules/osm/relation.js @@ -308,8 +308,9 @@ Object.assign(osmRelation.prototype, { inners = osmJoinWays(inners, resolver); var sequenceToLineString = function(sequence) { - if (sequence.nodes[0] !== sequence.nodes[sequence.nodes.length - 1]) { - // treat all parts as closed even if they aren't + if (sequence.nodes.length > 2 && + sequence.nodes[0] !== sequence.nodes[sequence.nodes.length - 1]) { + // close unclosed parts to ensure correct area rendering - #2945 sequence.nodes.push(sequence.nodes[0]); } return sequence.nodes.map(function(node) { return node.loc; }); diff --git a/test/spec/osm/relation.js b/test/spec/osm/relation.js index e0810eef65..42d40a02ca 100644 --- a/test/spec/osm/relation.js +++ b/test/spec/osm/relation.js @@ -647,7 +647,7 @@ describe('iD.osmRelation', function () { var r = iD.osmRelation({members: [{id: w.id, type: 'way'}]}); var g = iD.coreGraph([a, b, c, w, r]); - expect(r.multipolygon(g)).to.eql([[[a.loc, b.loc, c.loc]]]); + expect(r.multipolygon(g)).to.eql([[[a.loc, b.loc, c.loc, a.loc]]]); }); specify('invalid geometry: unclosed ring consisting of multiple ways', function () { @@ -659,7 +659,7 @@ describe('iD.osmRelation', function () { var r = iD.osmRelation({members: [{id: w1.id, type: 'way'}, {id: w2.id, type: 'way'}]}); var g = iD.coreGraph([a, b, c, w1, w2, r]); - expect(r.multipolygon(g)).to.eql([[[a.loc, b.loc, c.loc]]]); + expect(r.multipolygon(g)).to.eql([[[a.loc, b.loc, c.loc, a.loc]]]); }); specify('invalid geometry: unclosed ring consisting of multiple ways, alternate order', function () { @@ -672,7 +672,7 @@ describe('iD.osmRelation', function () { var r = iD.osmRelation({members: [{id: w1.id, type: 'way'}, {id: w2.id, type: 'way'}]}); var g = iD.coreGraph([a, b, c, d, w1, w2, r]); - expect(r.multipolygon(g)).to.eql([[[d.loc, c.loc, b.loc, a.loc]]]); + expect(r.multipolygon(g)).to.eql([[[d.loc, c.loc, b.loc, a.loc, d.loc]]]); }); specify('invalid geometry: unclosed ring consisting of multiple ways, one needing reversal', function () { @@ -685,7 +685,7 @@ describe('iD.osmRelation', function () { var r = iD.osmRelation({members: [{id: w1.id, type: 'way'}, {id: w2.id, type: 'way'}]}); var g = iD.coreGraph([a, b, c, d, w1, w2, r]); - expect(r.multipolygon(g)).to.eql([[[d.loc, c.loc, b.loc, a.loc]]]); + expect(r.multipolygon(g)).to.eql([[[a.loc, d.loc, c.loc, b.loc, a.loc]]]); }); specify('invalid geometry: unclosed ring consisting of multiple ways, one needing reversal, alternate order', function () { @@ -698,7 +698,7 @@ describe('iD.osmRelation', function () { var r = iD.osmRelation({members: [{id: w1.id, type: 'way'}, {id: w2.id, type: 'way'}]}); var g = iD.coreGraph([a, b, c, d, w1, w2, r]); - expect(r.multipolygon(g)).to.eql([[[d.loc, c.loc, b.loc, a.loc]]]); + expect(r.multipolygon(g)).to.eql([[[d.loc, c.loc, b.loc, a.loc, d.loc]]]); }); specify('single polygon with single single-way inner', function () { @@ -805,7 +805,7 @@ describe('iD.osmRelation', function () { var r = iD.osmRelation({members: [{id: w2.id, type: 'way'}, {id: w1.id, type: 'way'}]}); var g = iD.coreGraph([a, b, c, w1, r]); - expect(r.multipolygon(g)).to.eql([[[a.loc, b.loc, c.loc]]]); + expect(r.multipolygon(g)).to.eql([[[a.loc, c.loc, b.loc, a.loc]]]); }); }); From 6f09c3f4ccc5d4c71b69b5ebffc64938545db256 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Fri, 22 Nov 2019 17:51:39 -0500 Subject: [PATCH 749/774] Flag unknown roads that are also members of relations --- modules/validations/missing_tag.js | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/modules/validations/missing_tag.js b/modules/validations/missing_tag.js index d9e9246324..b0e530c711 100644 --- a/modules/validations/missing_tag.js +++ b/modules/validations/missing_tag.js @@ -43,26 +43,29 @@ export function validationMissingTag(context) { var validation = function checkMissingTag(entity, graph) { + var subtype; + var osm = context.connection(); + var isUnloadedNode = entity.type === 'node' && osm && !osm.isDataLoaded(entity.loc); // we can't know if the node is a vertex if the tile is undownloaded - if ((entity.type === 'node' && osm && !osm.isDataLoaded(entity.loc)) || + if (!isUnloadedNode && // allow untagged nodes that are part of ways - entity.geometry(graph) === 'vertex' || + entity.geometry(graph) !== 'vertex' && // allow untagged entities that are part of relations - entity.hasParentRelations(graph)) { - return []; + !entity.hasParentRelations(graph)) { + + if (Object.keys(entity.tags).length === 0) { + subtype = 'any'; + } else if (!hasDescriptiveTags(entity, graph)) { + subtype = 'descriptive'; + } else if (isUntypedRelation(entity)) { + subtype = 'relation_type'; + } } - var subtype; - - if (Object.keys(entity.tags).length === 0) { - subtype = 'any'; - } else if (!hasDescriptiveTags(entity, graph)) { - subtype = 'descriptive'; - } else if (isUntypedRelation(entity)) { - subtype = 'relation_type'; - } else if (isUnknownRoad(entity)) { + // flag an unknown road even if it's a member of a relation + if (!subtype && isUnknownRoad(entity)) { subtype = 'highway_classification'; } From 9f8e88a2ff3dc490a27265b35925ed9716367564 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Mon, 25 Nov 2019 10:49:16 -0500 Subject: [PATCH 750/774] Don't cache point-as-vertex extraction fix --- modules/validations/mismatched_geometry.js | 40 ++++++++++++---------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/modules/validations/mismatched_geometry.js b/modules/validations/mismatched_geometry.js index 83b2b44509..f66d919b73 100644 --- a/modules/validations/mismatched_geometry.js +++ b/modules/validations/mismatched_geometry.js @@ -174,22 +174,6 @@ export function validationMismatchedGeometry(context) { } else if (geometry === 'vertex' && !allowedGeometries.vertex && allowedGeometries.point) { - var extractOnClick = null; - if (!context.hasHiddenConnections(entity.id) && - !actionExtract(entity.id, context.projection).disabled(context.graph())) { - - extractOnClick = function(context) { - var entityId = this.issue.entityIds[0]; - var action = actionExtract(entityId, context.projection); - context.perform( - action, - t('operations.extract.annotation.single') - ); - // re-enter mode to trigger updates - context.enter(modeSelect(context, [action.getExtractedNodeID()])); - }; - } - return new validationIssue({ type: type, subtype: 'point_as_vertex', @@ -209,7 +193,26 @@ export function validationMismatchedGeometry(context) { .text(t('issues.point_as_vertex.reference')); }, entityIds: [entity.id], - dynamicFixes: function() { + dynamicFixes: function(context) { + + var entityId = this.entityIds[0]; + + var extractOnClick = null; + if (!context.hasHiddenConnections(entityId) && + !actionExtract(entityId, context.projection).disabled(context.graph())) { + + extractOnClick = function(context) { + var entityId = this.issue.entityIds[0]; + var action = actionExtract(entityId, context.projection); + context.perform( + action, + t('operations.extract.annotation.single') + ); + // re-enter mode to trigger updates + context.enter(modeSelect(context, [action.getExtractedNodeID()])); + }; + } + return [ new validationIssueFix({ icon: 'iD-operation-extract', @@ -217,8 +220,7 @@ export function validationMismatchedGeometry(context) { onClick: extractOnClick }) ]; - }, - hash: typeof extractOnClick, // avoid stale extraction fix + } }); } From be6e69c2e236b280ff35d5fe792b1012dfc07a2e Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Mon, 25 Nov 2019 11:14:59 -0500 Subject: [PATCH 751/774] Always flag tags as incomplete rather than outdated when the changes are purely additive --- ARCHITECTURE.md | 4 ++-- modules/validations/outdated_tags.js | 16 +++++++--------- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/ARCHITECTURE.md b/ARCHITECTURE.md index 1cbe3bd9b8..9fa538c83c 100644 --- a/ARCHITECTURE.md +++ b/ARCHITECTURE.md @@ -478,8 +478,8 @@ A feature does not have enough tags to define what it is. A feature has nonstandard tags. -* `deprecated_tags`: the feature has tags listed in `deprecated.json` or matches a preset with a `replacement` property -* `incomplete_tags`: the feature does not have all tags from the `addTags` property of its matching preset +* `deprecated_tags`: the feature has tags that should be replaced or removed, as specified in `deprecated.json` or the `replacement` property of a preset +* `incomplete_tags`: the feature has tags that indicate it should also have some other tags * `noncanonical_brand`: the feature indicates it should match a name-suggestion-index entry but does not have all of the given tags * `old_multipolygon`: the feature is a multipolygon relation with its defining tags set on its outer member way diff --git a/modules/validations/outdated_tags.js b/modules/validations/outdated_tags.js index 79c6ed91b6..837697f676 100644 --- a/modules/validations/outdated_tags.js +++ b/modules/validations/outdated_tags.js @@ -32,7 +32,6 @@ export function validationOutdatedTags(context) { function oldTagIssues(entity, graph) { var oldTags = Object.assign({}, entity.tags); // shallow copy var preset = context.presets().match(entity, graph); - var explicitPresetUpgrade = preset.replacement; var subtype = 'deprecated_tags'; // upgrade preset.. @@ -58,9 +57,6 @@ export function validationOutdatedTags(context) { Object.keys(preset.addTags).forEach(function(k) { if (!newTags[k]) { newTags[k] = preset.addTags[k]; - if (!explicitPresetUpgrade) { - subtype = 'incomplete_tags'; - } } }); } @@ -121,15 +117,19 @@ export function validationOutdatedTags(context) { } } - // determine diff var tagDiff = utilTagDiff(oldTags, newTags); if (!tagDiff.length) return []; + var isOnlyAddingTags = tagDiff.every(function(d) { + return d.type === '+'; + }); + var prefix = ''; if (subtype === 'noncanonical_brand') { prefix = 'noncanonical_brand.'; - } else if (subtype === 'incomplete_tags') { + } else if (subtype === 'deprecated_tags' && isOnlyAddingTags) { + subtype = 'incomplete_tags'; prefix = 'incomplete.'; } @@ -181,9 +181,7 @@ export function validationOutdatedTags(context) { var messageID = 'issues.outdated_tags.' + prefix + 'message'; - if (subtype === 'noncanonical_brand' && tagDiff.every(function(d) { - return d.type === '+'; - })) { + if (subtype === 'noncanonical_brand' && isOnlyAddingTags) { messageID += '_incomplete'; } From 5d5e29a772db78959cc463f92a2f7e77cf3595c0 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Mon, 25 Nov 2019 13:44:46 -0500 Subject: [PATCH 752/774] Add `man_made=water_tap` preset (close #7066) Add fields for `fountain`, `pump`, and `drinking_water` tags to relevant presets Add fields and terms to various water source presets Deprecate `man_made=village_pump` --- data/deprecated.json | 4 ++++ data/presets.yaml | 21 ++++++++++++++++ data/presets/fields.json | 3 +++ data/presets/fields/drinking_water.json | 9 +++++++ data/presets/fields/fountain.json | 5 ++++ data/presets/fields/pump.json | 5 ++++ data/presets/presets.json | 11 +++++---- data/presets/presets/amenity/fountain.json | 6 +++++ data/presets/presets/amenity/water_point.json | 14 +++++++++++ data/presets/presets/man_made/water_tap.json | 24 +++++++++++++++++++ data/presets/presets/man_made/water_well.json | 12 +++++++++- data/presets/presets/natural/spring.json | 8 ++++++- .../presets/presets/waterway/water_point.json | 13 ++++++++++ data/taginfo.json | 5 ++++ dist/locales/en.json | 24 +++++++++++++++---- 15 files changed, 152 insertions(+), 12 deletions(-) create mode 100644 data/presets/fields/drinking_water.json create mode 100644 data/presets/fields/fountain.json create mode 100644 data/presets/fields/pump.json create mode 100644 data/presets/presets/man_made/water_tap.json diff --git a/data/deprecated.json b/data/deprecated.json index 00b4b8f6b8..3cca90ad14 100644 --- a/data/deprecated.json +++ b/data/deprecated.json @@ -635,6 +635,10 @@ "old": {"man_made": "oil_tank"}, "replace": {"man_made": "storage_tank", "content": "oil"} }, + { + "old": {"man_made": "village_pump"}, + "replace": {"man_made": "water_well"} + }, { "old": {"man_made": "wastewater_tank"}, "replace": {"man_made": "storage_tank", "content": "wastewater"} diff --git a/data/presets.yaml b/data/presets.yaml index 3e1c52912b..a91cecc01b 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -714,6 +714,11 @@ en: drink_multi: # 'drink:=*' label: Drinks + drinking_water: + # drinking_water=* + label: Drinkable + # 'terms: drinkworthy,potable' + terms: '[translate with synonyms or related terms for ''Drinkable'', separated by commas]' drive_through: # drive_through=* label: Drive-Through @@ -838,6 +843,9 @@ en: label: Type # ford field placeholder placeholder: Default + fountain: + # fountain=* + label: Type frequency: # frequency=* label: Operating Frequency @@ -1721,6 +1729,9 @@ en: public_bookcase/type: # 'public_bookcase:type=*' label: Type + pump: + # pump=* + label: Pump railway: # railway=* label: Type @@ -3076,6 +3087,7 @@ en: amenity/fountain: # amenity=fountain name: Fountain + # 'terms: basin,water' terms: '' amenity/fuel: # amenity=fuel @@ -3787,6 +3799,7 @@ en: amenity/water_point: # amenity=water_point name: RV Drinking Water + # 'terms: water faucet,water point,water tap,water source,water spigot' terms: '' amenity/watering_place: # amenity=watering_place @@ -6105,6 +6118,11 @@ en: name: Wastewater Plant # 'terms: sewage*,water treatment plant,reclamation plant' terms: '' + man_made/water_tap: + # man_made=water_tap + name: Water Tap + # 'terms: drinking water,water faucet,water point,water source,water spigot' + terms: '' man_made/water_tower: # man_made=water_tower name: Water Tower @@ -6112,6 +6130,7 @@ en: man_made/water_well: # man_made=water_well name: Water Well + # 'terms: aquifer,drinking water,water point,water source' terms: '' man_made/water_works: # man_made=water_works @@ -6265,6 +6284,7 @@ en: natural/spring: # natural=spring name: Spring + # 'terms: aquifer,hydro,seep,water source' terms: '' natural/stone: # natural=stone @@ -8388,6 +8408,7 @@ en: waterway/water_point: # waterway=water_point name: Marine Drinking Water + # 'terms: water faucet,water point,water tap,water source,water spigot' terms: '' waterway/waterfall: # waterway=waterfall diff --git a/data/presets/fields.json b/data/presets/fields.json index ad5f3407d0..7b2289e24a 100644 --- a/data/presets/fields.json +++ b/data/presets/fields.json @@ -120,6 +120,7 @@ "door_type": {"key": "door", "type": "typeCombo", "label": "Type"}, "door": {"key": "door", "type": "combo", "label": "Door"}, "drink_multi": {"key": "drink:", "type": "multiCombo", "label": "Drinks"}, + "drinking_water": {"key": "drinking_water", "type": "check", "label": "Drinkable", "terms": ["drinkworthy", "potable"]}, "drive_through": {"key": "drive_through", "type": "check", "label": "Drive-Through"}, "duration": {"key": "duration", "type": "text", "label": "Duration", "placeholder": "00:00"}, "electrified": {"key": "electrified", "type": "combo", "label": "Electrification", "placeholder": "Contact Line, Electrified Rail...", "strings": {"options": {"contact_line": "Contact Line", "rail": "Electrified Rail", "yes": "Yes (unspecified)", "no": "No"}}}, @@ -147,6 +148,7 @@ "floating": {"key": "floating", "type": "check", "label": "Floating"}, "flood_prone": {"key": "flood_prone", "type": "check", "label": "Flood Prone"}, "ford": {"key": "ford", "type": "typeCombo", "label": "Type", "placeholder": "Default"}, + "fountain": {"key": "fountain", "type": "combo", "label": "Type"}, "frequency_electrified": {"key": "frequency", "type": "combo", "label": "Operating Frequency", "prerequisiteTag": {"key": "electrified", "valueNot": "no"}}, "frequency": {"key": "frequency", "type": "combo", "label": "Operating Frequency"}, "from": {"key": "from", "type": "text", "label": "From"}, @@ -292,6 +294,7 @@ "produce": {"key": "produce", "type": "semiCombo", "label": "Produce"}, "product": {"key": "product", "type": "semiCombo", "label": "Products"}, "public_bookcase/type": {"key": "public_bookcase:type", "type": "combo", "label": "Type"}, + "pump": {"key": "pump", "type": "combo", "label": "Pump"}, "railway": {"key": "railway", "type": "typeCombo", "label": "Type"}, "railway/position": {"key": "railway:position", "type": "text", "placeholder": "Distance to one decimal (123.4)", "label": "Milestone Position"}, "railway/signal/direction": {"key": "railway:signal:direction", "type": "combo", "label": "Direction Affected", "strings": {"options": {"forward": "Forward", "backward": "Backward", "both": "Both / All"}}}, diff --git a/data/presets/fields/drinking_water.json b/data/presets/fields/drinking_water.json new file mode 100644 index 0000000000..2039409735 --- /dev/null +++ b/data/presets/fields/drinking_water.json @@ -0,0 +1,9 @@ +{ + "key": "drinking_water", + "type": "check", + "label": "Drinkable", + "terms": [ + "drinkworthy", + "potable" + ] +} diff --git a/data/presets/fields/fountain.json b/data/presets/fields/fountain.json new file mode 100644 index 0000000000..de00d7cebb --- /dev/null +++ b/data/presets/fields/fountain.json @@ -0,0 +1,5 @@ +{ + "key": "fountain", + "type": "combo", + "label": "Type" +} diff --git a/data/presets/fields/pump.json b/data/presets/fields/pump.json new file mode 100644 index 0000000000..a5c71ce7fc --- /dev/null +++ b/data/presets/fields/pump.json @@ -0,0 +1,5 @@ +{ + "key": "pump", + "type": "combo", + "label": "Pump" +} diff --git a/data/presets/presets.json b/data/presets/presets.json index 5ddc8eeb35..2c7e9ca6f2 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -126,7 +126,7 @@ "amenity/fast_food/sandwich": {"icon": "temaki-sandwich", "geometry": ["point", "area"], "terms": ["breakfast", "cafe", "café", "dine", "dining", "dinner", "drive-in", "eat", "grill", "lunch", "table"], "tags": {"amenity": "fast_food", "cuisine": "sandwich"}, "reference": {"key": "cuisine", "value": "sandwich"}, "name": "Sandwich Fast Food"}, "amenity/fire_station": {"icon": "maki-fire-station", "fields": ["name", "operator", "address", "building_area"], "moreFields": ["email", "fax", "phone", "polling_station", "smoking", "website", "wheelchair"], "geometry": ["point", "area"], "terms": [], "tags": {"amenity": "fire_station"}, "name": "Fire Station"}, "amenity/food_court": {"icon": "maki-restaurant", "fields": ["name", "operator", "address", "building_area", "opening_hours"], "moreFields": ["capacity", "diet_multi", "email", "fax", "internet_access", "internet_access/fee", "internet_access/ssid", "level", "outdoor_seating", "phone", "smoking", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["fast food", "restaurant", "food"], "tags": {"amenity": "food_court"}, "name": "Food Court"}, - "amenity/fountain": {"icon": "temaki-fountain", "fields": ["name", "operator", "height", "lit"], "moreFields": ["covered", "indoor", "level", "manufacturer"], "geometry": ["point", "area"], "tags": {"amenity": "fountain"}, "name": "Fountain"}, + "amenity/fountain": {"icon": "temaki-fountain", "fields": ["name", "operator", "fountain", "drinking_water", "height", "lit"], "moreFields": ["covered", "indoor", "level", "manufacturer"], "geometry": ["point", "area"], "tags": {"amenity": "fountain"}, "terms": ["basin", "water"], "name": "Fountain"}, "amenity/fuel": {"icon": "maki-fuel", "fields": ["name", "brand", "operator", "address", "fuel_multi", "self_service"], "moreFields": ["building", "email", "fax", "opening_hours", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["petrol", "fuel", "gasoline", "propane", "diesel", "lng", "cng", "biodiesel"], "tags": {"amenity": "fuel"}, "name": "Gas Station"}, "amenity/grave_yard": {"icon": "maki-cemetery", "fields": ["religion", "address"], "moreFields": ["email", "fax", "phone", "website"], "geometry": ["point", "area"], "tags": {"amenity": "grave_yard"}, "name": "Graveyard"}, "amenity/grit_bin": {"icon": "fas-box", "fields": ["operator", "access_simple", "material", "collection_times"], "moreFields": ["colour", "height", "lit"], "geometry": ["point", "vertex"], "tags": {"amenity": "grit_bin"}, "terms": ["salt", "sand"], "name": "Grit Bin"}, @@ -268,7 +268,7 @@ "amenity/waste_disposal": {"icon": "fas-dumpster", "fields": ["operator", "waste", "collection_times", "access_simple"], "moreFields": ["brand", "colour", "height", "manufacturer", "material"], "geometry": ["point", "vertex", "area"], "tags": {"amenity": "waste_disposal"}, "terms": ["garbage", "rubbish", "litter", "trash"], "name": "Garbage Dumpster"}, "amenity/waste_transfer_station": {"icon": "maki-waste-basket", "fields": ["name", "operator", "operator/type", "waste", "address", "opening_hours", "fee", "payment_multi_fee", "charge_fee"], "moreFields": ["email", "fax", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["dump", "garbage", "recycling", "rubbish", "scrap", "trash"], "tags": {"amenity": "waste_transfer_station"}, "name": "Waste Transfer Station"}, "amenity/waste/dog_excrement": {"icon": "maki-waste-basket", "fields": ["collection_times"], "geometry": ["point", "vertex", "area"], "tags": {"amenity": "waste_basket", "waste": "dog_excrement"}, "reference": {"key": "waste", "value": "dog_excrement"}, "terms": ["bin", "garbage", "rubbish", "litter", "trash", "poo", "dog"], "name": "Dog Excrement Bin"}, - "amenity/water_point": {"icon": "maki-drinking-water", "fields": ["operator", "fee", "payment_multi_fee", "charge_fee", "opening_hours"], "geometry": ["area", "vertex", "point"], "tags": {"amenity": "water_point"}, "name": "RV Drinking Water"}, + "amenity/water_point": {"icon": "maki-drinking-water", "fields": ["operator", "access_simple", "fee", "payment_multi_fee", "charge_fee", "opening_hours"], "moreFields": ["covered", "drinking_water", "lit", "ref"], "geometry": ["area", "vertex", "point"], "tags": {"amenity": "water_point"}, "terms": ["water faucet", "water point", "water tap", "water source", "water spigot"], "name": "RV Drinking Water"}, "amenity/watering_place": {"icon": "maki-drinking-water", "fields": ["operator", "fee", "payment_multi_fee", "charge_fee", "opening_hours"], "geometry": ["area", "vertex", "point"], "tags": {"amenity": "watering_place"}, "name": "Animal Watering Place"}, "amenity/weighbridge": {"icon": "fas-weight", "fields": ["ref", "operator", "access_simple", "maxweight"], "moreFields": ["address", "colour", "lit", "manufacturer", "material", "wheelchair"], "geometry": ["point", "vertex"], "terms": ["weigh station", "weighbridge"], "tags": {"amenity": "weighbridge"}, "name": "Truck Scale"}, "area": {"fields": ["name"], "geometry": ["area"], "tags": {"area": "yes"}, "terms": ["polygon"], "name": "Area", "matchScore": 0.1}, @@ -771,8 +771,9 @@ "man_made/tunnel": {"icon": "tnp-2009642", "fields": ["name", "tunnel", "layer", "width", "length", "height"], "geometry": ["area"], "tags": {"man_made": "tunnel"}, "addTags": {"man_made": "tunnel", "layer": "-1"}, "removeTags": {"man_made": "tunnel", "layer": "*"}, "reference": {"key": "man_made", "value": "tunnel"}, "terms": ["bore", "dig", "shaft", "underground passage", "underpass"], "name": "Tunnel Area"}, "man_made/utility_pole": {"icon": "temaki-utility_pole", "fields": ["ref", "operator", "utility_semi", "height", "material"], "moreFields": ["colour", "manufacturer"], "geometry": ["point", "vertex"], "tags": {"man_made": "utility_pole"}, "name": "Utility Pole"}, "man_made/wastewater_plant": {"icon": "temaki-waste", "fields": ["name", "operator", "address"], "moreFields": ["email", "fax", "phone", "website"], "geometry": ["point", "area"], "terms": ["sewage*", "water treatment plant", "reclamation plant"], "tags": {"man_made": "wastewater_plant"}, "name": "Wastewater Plant"}, + "man_made/water_tap": {"icon": "maki-drinking-water", "fields": ["ref", "operator", "drinking_water", "access_simple"], "geometry": ["point", "vertex"], "tags": {"man_made": "water_tap"}, "terms": ["drinking water", "water faucet", "water point", "water source", "water spigot"], "name": "Water Tap"}, "man_made/water_tower": {"icon": "maki-water", "fields": ["operator", "height"], "geometry": ["point", "area"], "tags": {"man_made": "water_tower"}, "name": "Water Tower"}, - "man_made/water_well": {"icon": "maki-water", "fields": ["operator"], "geometry": ["point", "area"], "tags": {"man_made": "water_well"}, "name": "Water Well"}, + "man_made/water_well": {"icon": "maki-water", "fields": ["ref", "operator", "drinking_water", "pump", "access_simple"], "geometry": ["point", "area"], "tags": {"man_made": "water_well"}, "terms": ["aquifer", "drinking water", "water point", "water source"], "name": "Water Well"}, "man_made/water_works": {"icon": "maki-water", "fields": ["name", "operator", "address"], "geometry": ["point", "area"], "tags": {"man_made": "water_works"}, "name": "Water Works"}, "man_made/watermill": {"icon": "maki-watermill", "fields": ["building_area"], "geometry": ["point", "area"], "terms": ["water", "wheel", "mill"], "tags": {"man_made": "watermill"}, "name": "Watermill"}, "man_made/windmill": {"icon": "maki-windmill", "fields": ["building_area"], "geometry": ["point", "area"], "terms": ["wind", "wheel", "mill"], "tags": {"man_made": "windmill"}, "name": "Windmill"}, @@ -803,7 +804,7 @@ "natural/scree": {"geometry": ["area"], "tags": {"natural": "scree"}, "terms": ["loose rocks"], "name": "Scree"}, "natural/scrub": {"geometry": ["area"], "tags": {"natural": "scrub"}, "terms": ["bush", "shrubs"], "name": "Scrub"}, "natural/shingle": {"geometry": ["area"], "tags": {"natural": "shingle"}, "terms": ["beach", "gravel", "pebbles", "riverbed", "rounded rock fragments"], "name": "Shingle"}, - "natural/spring": {"icon": "maki-water", "fields": ["name", "intermittent"], "geometry": ["point", "vertex"], "tags": {"natural": "spring"}, "terms": [], "name": "Spring"}, + "natural/spring": {"icon": "maki-water", "fields": ["name", "drinking_water", "intermittent"], "geometry": ["point", "vertex"], "tags": {"natural": "spring"}, "terms": ["aquifer", "hydro", "seep", "water source"], "name": "Spring"}, "natural/stone": {"icon": "temaki-boulder1", "fields": ["name"], "geometry": ["point", "area"], "tags": {"natural": "stone"}, "terms": ["boulder", "stone", "rock"], "name": "Unattached Stone / Boulder"}, "natural/tree_row": {"icon": "maki-park", "fields": ["leaf_type", "leaf_cycle", "denotation"], "geometry": ["line"], "tags": {"natural": "tree_row"}, "terms": [], "name": "Tree Row"}, "natural/tree": {"icon": "maki-park", "fields": ["leaf_type_singular", "leaf_cycle_singular", "denotation", "diameter"], "moreFields": ["species/wikidata"], "geometry": ["point", "vertex"], "tags": {"natural": "tree"}, "terms": [], "name": "Tree"}, @@ -1264,7 +1265,7 @@ "waterway/sanitary_dump_station": {"icon": "temaki-storage_tank", "fields": ["name", "operator", "access_simple", "fee", "payment_multi_fee", "charge_fee", "water_point"], "moreFields": ["opening_hours", "seamark/type"], "geometry": ["point", "vertex", "area"], "terms": ["Boat", "Watercraft", "Sanitary", "Dump Station", "Pumpout", "Pump out", "Elsan", "CDP", "CTDP", "Chemical Toilet"], "tags": {"waterway": "sanitary_dump_station"}, "name": "Marine Toilet Disposal"}, "waterway/stream_intermittent": {"icon": "iD-waterway-stream", "fields": ["{waterway/stream}"], "moreFields": ["{waterway/stream}"], "geometry": ["line"], "terms": ["arroyo", "beck", "branch", "brook", "burn", "course", "creek", "drift", "flood", "flow", "gully", "run", "runnel", "rush", "spate", "spritz", "tributary", "wadi", "wash", "watercourse"], "tags": {"waterway": "stream", "intermittent": "yes"}, "reference": {"key": "waterway", "value": "stream"}, "name": "Intermittent Stream"}, "waterway/stream": {"icon": "iD-waterway-stream", "fields": ["name", "structure_waterway", "width", "intermittent"], "moreFields": ["covered", "fishing", "salt", "tidal"], "geometry": ["line"], "terms": ["beck", "branch", "brook", "burn", "course", "creek", "current", "drift", "flood", "flow", "freshet", "race", "rill", "rindle", "rivulet", "run", "runnel", "rush", "spate", "spritz", "surge", "tide", "torrent", "tributary", "watercourse"], "tags": {"waterway": "stream"}, "name": "Stream"}, - "waterway/water_point": {"icon": "maki-drinking-water", "geometry": ["area", "vertex", "point"], "tags": {"waterway": "water_point"}, "name": "Marine Drinking Water"}, + "waterway/water_point": {"icon": "maki-drinking-water", "fields": ["{amenity/water_point}"], "moreFields": ["{amenity/water_point}"], "geometry": ["area", "vertex", "point"], "tags": {"waterway": "water_point"}, "terms": ["water faucet", "water point", "water tap", "water source", "water spigot"], "name": "Marine Drinking Water"}, "waterway/waterfall": {"icon": "maki-waterfall", "fields": ["name", "height", "width", "intermittent"], "geometry": ["vertex"], "terms": ["fall"], "tags": {"waterway": "waterfall"}, "name": "Waterfall"}, "waterway/weir": {"icon": "maki-dam", "fields": ["name", "operator", "height", "material"], "moreFields": ["seamark/type"], "geometry": ["vertex", "line"], "terms": ["low-head dam", "low-rise dam", "wier"], "tags": {"waterway": "weir"}, "name": "Weir"}, "amenity/animal_boarding/PetsHotel": {"name": "PetsHotel", "icon": "maki-veterinary", "imageURL": "https://graph.facebook.com/PetSmart/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q67141961", "amenity": "animal_boarding"}, "addTags": {"amenity": "animal_boarding", "animal_boarding": "dog;cat", "brand": "PetsHotel", "brand:wikidata": "Q67141961", "name": "PetsHotel"}, "countryCodes": ["ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, diff --git a/data/presets/presets/amenity/fountain.json b/data/presets/presets/amenity/fountain.json index bb3116457f..2bd46138cf 100644 --- a/data/presets/presets/amenity/fountain.json +++ b/data/presets/presets/amenity/fountain.json @@ -3,6 +3,8 @@ "fields": [ "name", "operator", + "fountain", + "drinking_water", "height", "lit" ], @@ -19,5 +21,9 @@ "tags": { "amenity": "fountain" }, + "terms": [ + "basin", + "water" + ], "name": "Fountain" } diff --git a/data/presets/presets/amenity/water_point.json b/data/presets/presets/amenity/water_point.json index 9e1efbd289..b3fd536f3d 100644 --- a/data/presets/presets/amenity/water_point.json +++ b/data/presets/presets/amenity/water_point.json @@ -2,11 +2,18 @@ "icon": "maki-drinking-water", "fields": [ "operator", + "access_simple", "fee", "payment_multi_fee", "charge_fee", "opening_hours" ], + "moreFields": [ + "covered", + "drinking_water", + "lit", + "ref" + ], "geometry": [ "area", "vertex", @@ -15,5 +22,12 @@ "tags": { "amenity": "water_point" }, + "terms": [ + "water faucet", + "water point", + "water tap", + "water source", + "water spigot" + ], "name": "RV Drinking Water" } diff --git a/data/presets/presets/man_made/water_tap.json b/data/presets/presets/man_made/water_tap.json new file mode 100644 index 0000000000..9c4a7606e2 --- /dev/null +++ b/data/presets/presets/man_made/water_tap.json @@ -0,0 +1,24 @@ +{ + "icon": "maki-drinking-water", + "fields": [ + "ref", + "operator", + "drinking_water", + "access_simple" + ], + "geometry": [ + "point", + "vertex" + ], + "tags": { + "man_made": "water_tap" + }, + "terms": [ + "drinking water", + "water faucet", + "water point", + "water source", + "water spigot" + ], + "name": "Water Tap" +} diff --git a/data/presets/presets/man_made/water_well.json b/data/presets/presets/man_made/water_well.json index a653713e01..2761c73d00 100644 --- a/data/presets/presets/man_made/water_well.json +++ b/data/presets/presets/man_made/water_well.json @@ -1,7 +1,11 @@ { "icon": "maki-water", "fields": [ - "operator" + "ref", + "operator", + "drinking_water", + "pump", + "access_simple" ], "geometry": [ "point", @@ -10,5 +14,11 @@ "tags": { "man_made": "water_well" }, + "terms": [ + "aquifer", + "drinking water", + "water point", + "water source" + ], "name": "Water Well" } diff --git a/data/presets/presets/natural/spring.json b/data/presets/presets/natural/spring.json index 49f0f6fb40..22d9478a3f 100644 --- a/data/presets/presets/natural/spring.json +++ b/data/presets/presets/natural/spring.json @@ -2,6 +2,7 @@ "icon": "maki-water", "fields": [ "name", + "drinking_water", "intermittent" ], "geometry": [ @@ -11,6 +12,11 @@ "tags": { "natural": "spring" }, - "terms": [], + "terms": [ + "aquifer", + "hydro", + "seep", + "water source" + ], "name": "Spring" } diff --git a/data/presets/presets/waterway/water_point.json b/data/presets/presets/waterway/water_point.json index a7bad2434a..7829fb525a 100644 --- a/data/presets/presets/waterway/water_point.json +++ b/data/presets/presets/waterway/water_point.json @@ -1,5 +1,11 @@ { "icon": "maki-drinking-water", + "fields": [ + "{amenity/water_point}" + ], + "moreFields": [ + "{amenity/water_point}" + ], "geometry": [ "area", "vertex", @@ -8,5 +14,12 @@ "tags": { "waterway": "water_point" }, + "terms": [ + "water faucet", + "water point", + "water tap", + "water source", + "water spigot" + ], "name": "Marine Drinking Water" } diff --git a/data/taginfo.json b/data/taginfo.json index 4bed502d4a..1ef7b9047f 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -746,6 +746,7 @@ {"key": "man_made", "value": "tunnel", "description": "🄿 Tunnel Area", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD@master/svg/the-noun-project/2009642.svg"}, {"key": "man_made", "value": "utility_pole", "description": "🄿 Utility Pole", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/utility_pole.svg"}, {"key": "man_made", "value": "wastewater_plant", "description": "🄿 Wastewater Plant", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/waste.svg"}, + {"key": "man_made", "value": "water_tap", "description": "🄿 Water Tap", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/drinking-water-15.svg"}, {"key": "man_made", "value": "water_tower", "description": "🄿 Water Tower", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/water-15.svg"}, {"key": "man_made", "value": "water_well", "description": "🄿 Water Well", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/water-15.svg"}, {"key": "man_made", "value": "water_works", "description": "🄿 Water Works", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/water-15.svg"}, @@ -1426,6 +1427,7 @@ {"key": "dog", "value": "no", "description": "🄵 Dogs"}, {"key": "door", "description": "🄵 Type, 🄵 Door"}, {"key": "drink:", "description": "🄵 Drinks"}, + {"key": "drinking_water", "description": "🄵 Drinkable"}, {"key": "drive_through", "description": "🄵 Drive-Through"}, {"key": "duration", "description": "🄵 Duration"}, {"key": "electrified", "value": "contact_line", "description": "🄵 Electrification"}, @@ -1455,6 +1457,7 @@ {"key": "flag:type", "description": "🄵 Flag Type"}, {"key": "floating", "description": "🄵 Floating"}, {"key": "flood_prone", "description": "🄵 Flood Prone"}, + {"key": "fountain", "description": "🄵 Type"}, {"key": "frequency", "description": "🄵 Operating Frequency"}, {"key": "from", "description": "🄵 From"}, {"key": "fuel:", "description": "🄵 Fuel Types"}, @@ -1651,6 +1654,7 @@ {"key": "produce", "description": "🄵 Produce"}, {"key": "product", "description": "🄵 Products"}, {"key": "public_bookcase:type", "description": "🄵 Type"}, + {"key": "pump", "description": "🄵 Pump"}, {"key": "railway:position", "description": "🄵 Milestone Position"}, {"key": "railway:signal:direction", "value": "forward", "description": "🄵 Direction Affected"}, {"key": "railway:signal:direction", "value": "backward", "description": "🄵 Direction Affected"}, @@ -2019,6 +2023,7 @@ {"key": "man_made", "value": "MDF", "description": "🄳 ➜ telecom=exchange"}, {"key": "man_made", "value": "fuel_storage_tank", "description": "🄳 ➜ man_made=storage_tank + content=fuel"}, {"key": "man_made", "value": "oil_tank", "description": "🄳 ➜ man_made=storage_tank + content=oil"}, + {"key": "man_made", "value": "village_pump", "description": "🄳 ➜ man_made=water_well"}, {"key": "man_made", "value": "wastewater_tank", "description": "🄳 ➜ man_made=storage_tank + content=wastewater"}, {"key": "man_made", "value": "water_tank", "description": "🄳 ➜ man_made=storage_tank + content=water"}, {"key": "man_made", "value": "weigh_bridge", "description": "🄳 ➜ amenity=weighbridge"}, diff --git a/dist/locales/en.json b/dist/locales/en.json index cdd71b0e99..5272485859 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -3089,6 +3089,10 @@ "drink_multi": { "label": "Drinks" }, + "drinking_water": { + "label": "Drinkable", + "terms": "drinkworthy,potable" + }, "drive_through": { "label": "Drive-Through", "terms": "" @@ -3199,6 +3203,9 @@ "label": "Type", "placeholder": "Default" }, + "fountain": { + "label": "Type" + }, "frequency_electrified": { "label": "Operating Frequency", "terms": "" @@ -3926,6 +3933,9 @@ "public_bookcase/type": { "label": "Type" }, + "pump": { + "label": "Pump" + }, "railway": { "label": "Type" }, @@ -5147,7 +5157,7 @@ }, "amenity/fountain": { "name": "Fountain", - "terms": "" + "terms": "basin,water" }, "amenity/fuel": { "name": "Gas Station", @@ -5715,7 +5725,7 @@ }, "amenity/water_point": { "name": "RV Drinking Water", - "terms": "" + "terms": "water faucet,water point,water tap,water source,water spigot" }, "amenity/watering_place": { "name": "Animal Watering Place", @@ -7700,13 +7710,17 @@ "name": "Wastewater Plant", "terms": "sewage*,water treatment plant,reclamation plant" }, + "man_made/water_tap": { + "name": "Water Tap", + "terms": "drinking water,water faucet,water point,water source,water spigot" + }, "man_made/water_tower": { "name": "Water Tower", "terms": "" }, "man_made/water_well": { "name": "Water Well", - "terms": "" + "terms": "aquifer,drinking water,water point,water source" }, "man_made/water_works": { "name": "Water Works", @@ -7830,7 +7844,7 @@ }, "natural/spring": { "name": "Spring", - "terms": "" + "terms": "aquifer,hydro,seep,water source" }, "natural/stone": { "name": "Unattached Stone / Boulder", @@ -9651,7 +9665,7 @@ }, "waterway/water_point": { "name": "Marine Drinking Water", - "terms": "" + "terms": "water faucet,water point,water tap,water source,water spigot" }, "waterway/waterfall": { "name": "Waterfall", From 5c52cfa59b535e876ffbe7e1837307d7595d32c9 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Mon, 25 Nov 2019 13:50:18 -0500 Subject: [PATCH 753/774] Update names for `attraction=pirate_ship` and `attraction=river_rafting` presets to indicate they're rides --- data/presets.yaml | 8 ++++---- data/presets/presets.json | 4 ++-- data/presets/presets/attraction/pirate_ship.json | 2 +- data/presets/presets/attraction/river_rafting.json | 2 +- data/taginfo.json | 4 ++-- dist/locales/en.json | 4 ++-- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/data/presets.yaml b/data/presets.yaml index a91cecc01b..9d38500b41 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -3879,14 +3879,14 @@ en: terms: '' attraction/pirate_ship: # attraction=pirate_ship - name: Pirate Ship + name: Pirate Ship Ride # 'terms: theme park,carnival ride,amusement ride' - terms: '' + terms: '' attraction/river_rafting: # attraction=river_rafting - name: River Rafting + name: River Rapids Ride # 'terms: theme park,aquatic park,water park,rafting simulator,river rafting ride,river rapids ride' - terms: '' + terms: '' attraction/roller_coaster: # attraction=roller_coaster name: Roller Coaster diff --git a/data/presets/presets.json b/data/presets/presets.json index 2c7e9ca6f2..83d003862e 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -284,8 +284,8 @@ "attraction/kiddie_ride": {"icon": "temaki-amusement_park", "fields": ["{attraction}", "fee", "payment_multi_fee", "charge_fee"], "moreFields": ["{attraction}", "max_age", "min_age"], "geometry": ["point"], "tags": {"attraction": "kiddie_ride"}, "name": "Kiddie Ride"}, "attraction/log_flume": {"icon": "maki-ferry", "fields": ["{attraction}", "height"], "moreFields": ["{attraction}", "max_age", "min_age"], "geometry": ["point", "area"], "terms": ["theme park", "amusement ride", "flume"], "tags": {"attraction": "log_flume"}, "name": "Log Flume"}, "attraction/maze": {"icon": "maki-amusement-park", "moreFields": ["{attraction}", "max_age", "min_age"], "geometry": ["point", "area"], "terms": ["theme park", "amusement ride", "labyrinth"], "tags": {"attraction": "maze"}, "name": "Maze"}, - "attraction/pirate_ship": {"icon": "maki-danger", "moreFields": ["{attraction}", "max_age", "min_age"], "geometry": ["point"], "terms": ["theme park", "carnival ride", "amusement ride"], "tags": {"attraction": "pirate_ship"}, "name": "Pirate Ship"}, - "attraction/river_rafting": {"icon": "maki-ferry", "moreFields": ["{attraction}", "max_age", "min_age"], "geometry": ["point", "line"], "terms": ["theme park", "aquatic park", "water park", "rafting simulator", "river rafting ride", "river rapids ride"], "tags": {"attraction": "river_rafting"}, "name": "River Rafting"}, + "attraction/pirate_ship": {"icon": "maki-danger", "moreFields": ["{attraction}", "max_age", "min_age"], "geometry": ["point"], "terms": ["theme park", "carnival ride", "amusement ride"], "tags": {"attraction": "pirate_ship"}, "name": "Pirate Ship Ride"}, + "attraction/river_rafting": {"icon": "maki-ferry", "moreFields": ["{attraction}", "max_age", "min_age"], "geometry": ["point", "line"], "terms": ["theme park", "aquatic park", "water park", "rafting simulator", "river rafting ride", "river rapids ride"], "tags": {"attraction": "river_rafting"}, "name": "River Rapids Ride"}, "attraction/roller_coaster": {"icon": "temaki-roller_coaster", "moreFields": ["{attraction}", "max_age", "min_age"], "geometry": ["point", "area"], "terms": ["theme park", "amusement ride"], "tags": {"attraction": "roller_coaster"}, "name": "Roller Coaster"}, "attraction/summer_toboggan": {"icon": "temaki-sledding", "moreFields": ["{attraction}", "max_age", "min_age"], "geometry": ["line"], "terms": ["alpine slide", "mountain coaster"], "tags": {"attraction": "summer_toboggan"}, "name": "Summer Toboggan"}, "attraction/swing_carousel": {"icon": "temaki-tower", "fields": ["{attraction}", "height"], "moreFields": ["{attraction}", "max_age", "min_age"], "geometry": ["point", "area"], "terms": ["theme park", "amusement ride", "carousel", "tower", "carousel tower"], "tags": {"attraction": "swing_carousel"}, "name": "Swing Carousel"}, diff --git a/data/presets/presets/attraction/pirate_ship.json b/data/presets/presets/attraction/pirate_ship.json index 2c02be3a51..916ced4de2 100644 --- a/data/presets/presets/attraction/pirate_ship.json +++ b/data/presets/presets/attraction/pirate_ship.json @@ -16,5 +16,5 @@ "tags": { "attraction": "pirate_ship" }, - "name": "Pirate Ship" + "name": "Pirate Ship Ride" } diff --git a/data/presets/presets/attraction/river_rafting.json b/data/presets/presets/attraction/river_rafting.json index cc5086d724..ba9c4b8247 100644 --- a/data/presets/presets/attraction/river_rafting.json +++ b/data/presets/presets/attraction/river_rafting.json @@ -20,5 +20,5 @@ "tags": { "attraction": "river_rafting" }, - "name": "River Rafting" + "name": "River Rapids Ride" } diff --git a/data/taginfo.json b/data/taginfo.json index 1ef7b9047f..4629766a76 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -281,8 +281,8 @@ {"key": "attraction", "value": "kiddie_ride", "description": "🄿 Kiddie Ride", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/amusement_park.svg"}, {"key": "attraction", "value": "log_flume", "description": "🄿 Log Flume", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/ferry-15.svg"}, {"key": "attraction", "value": "maze", "description": "🄿 Maze", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/amusement-park-15.svg"}, - {"key": "attraction", "value": "pirate_ship", "description": "🄿 Pirate Ship", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/danger-15.svg"}, - {"key": "attraction", "value": "river_rafting", "description": "🄿 River Rafting", "object_types": ["node", "way"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/ferry-15.svg"}, + {"key": "attraction", "value": "pirate_ship", "description": "🄿 Pirate Ship Ride", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/danger-15.svg"}, + {"key": "attraction", "value": "river_rafting", "description": "🄿 River Rapids Ride", "object_types": ["node", "way"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/ferry-15.svg"}, {"key": "attraction", "value": "roller_coaster", "description": "🄿 Roller Coaster", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/roller_coaster.svg"}, {"key": "attraction", "value": "summer_toboggan", "description": "🄿 Summer Toboggan", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/sledding.svg"}, {"key": "attraction", "value": "swing_carousel", "description": "🄿 Swing Carousel", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/tower.svg"}, diff --git a/dist/locales/en.json b/dist/locales/en.json index 5272485859..b86c80ea04 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -5788,11 +5788,11 @@ "terms": "theme park,amusement ride,labyrinth" }, "attraction/pirate_ship": { - "name": "Pirate Ship", + "name": "Pirate Ship Ride", "terms": "theme park,carnival ride,amusement ride" }, "attraction/river_rafting": { - "name": "River Rafting", + "name": "River Rapids Ride", "terms": "theme park,aquatic park,water park,rafting simulator,river rafting ride,river rapids ride" }, "attraction/roller_coaster": { From 618937b376d58a172c736662f2ceec88c0c2a857 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Mon, 25 Nov 2019 16:49:56 -0500 Subject: [PATCH 754/774] Deprecate barrier=railing, as per the OSM wiki --- data/deprecated.json | 4 ++++ data/taginfo.json | 1 + 2 files changed, 5 insertions(+) diff --git a/data/deprecated.json b/data/deprecated.json index 3cca90ad14..a7ecbd27b5 100644 --- a/data/deprecated.json +++ b/data/deprecated.json @@ -184,6 +184,10 @@ "old": {"barrier": "embankment"}, "replace": {"man_made": "embankment"} }, + { + "old": {"barrier": "railing"}, + "replace": {"barrier": "fence", "fence_type": "railing"} + }, { "old": {"barrier": "wall", "type": "noise_barrier"}, "replace": {"barrier": "wall", "wall": "noise_barrier"} diff --git a/data/taginfo.json b/data/taginfo.json index 4629766a76..795cc20438 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -1927,6 +1927,7 @@ {"key": "attraction", "value": "ferris_wheel", "description": "🄳 ➜ attraction=big_wheel"}, {"key": "barrier", "value": "curb", "description": "🄳 ➜ barrier=kerb"}, {"key": "barrier", "value": "embankment", "description": "🄳 ➜ man_made=embankment"}, + {"key": "barrier", "value": "railing", "description": "🄳 ➜ barrier=fence + fence_type=railing"}, {"key": "barrier", "value": "wire_fence", "description": "🄳 ➜ barrier=fence + fence_type=wire"}, {"key": "barrier", "value": "wood_fence", "description": "🄳 ➜ barrier=fence + fence_type=wood"}, {"key": "building", "value": "family_house", "description": "🄳 ➜ building=house"}, From 25a4174c77c5434e386614f9160bb52b0fc66a98 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Mon, 25 Nov 2019 16:52:24 -0500 Subject: [PATCH 755/774] Update icon for barrier=block preset --- data/presets/presets.json | 2 +- data/presets/presets/barrier/block.json | 2 +- data/taginfo.json | 2 +- svg/fontawesome/fas-cube.svg | 1 + 4 files changed, 4 insertions(+), 3 deletions(-) create mode 100644 svg/fontawesome/fas-cube.svg diff --git a/data/presets/presets.json b/data/presets/presets.json index 83d003862e..7da5c1420e 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -293,7 +293,7 @@ "attraction/water_slide": {"icon": "fas-swimmer", "fields": ["{attraction}", "height"], "moreFields": ["{attraction}", "max_age", "min_age"], "geometry": ["line", "area"], "terms": ["theme park", "aquatic park", "water park", "flumes", "water chutes", "hydroslides"], "tags": {"attraction": "water_slide"}, "name": "Water Slide"}, "barrier": {"icon": "maki-roadblock", "geometry": ["point", "vertex", "line", "area"], "tags": {"barrier": "*"}, "fields": ["barrier"], "moreFields": ["level"], "name": "Barrier", "matchScore": 0.4}, "barrier/entrance": {"icon": "maki-entrance-alt1", "geometry": ["vertex"], "tags": {"barrier": "entrance"}, "name": "Entrance", "searchable": false}, - "barrier/block": {"icon": "maki-roadblock", "fields": ["access", "material"], "geometry": ["point", "vertex"], "tags": {"barrier": "block"}, "name": "Block"}, + "barrier/block": {"icon": "fas-cube", "fields": ["access", "material"], "geometry": ["point", "vertex"], "tags": {"barrier": "block"}, "name": "Block"}, "barrier/bollard_line": {"icon": "temaki-silo", "fields": ["access", "bollard", "height", "material", "colour"], "geometry": ["line"], "tags": {"barrier": "bollard"}, "name": "Bollard Row"}, "barrier/bollard": {"icon": "temaki-silo", "fields": ["access", "bollard", "height", "width", "material", "colour"], "geometry": ["point", "vertex"], "tags": {"barrier": "bollard"}, "name": "Bollard"}, "barrier/border_control": {"icon": "maki-roadblock", "fields": ["access", "building_area"], "moreFields": ["address", "email", "fax", "phone", "website"], "geometry": ["vertex", "area"], "tags": {"barrier": "border_control"}, "name": "Border Control"}, diff --git a/data/presets/presets/barrier/block.json b/data/presets/presets/barrier/block.json index 873df89539..76f2d87a70 100644 --- a/data/presets/presets/barrier/block.json +++ b/data/presets/presets/barrier/block.json @@ -1,5 +1,5 @@ { - "icon": "maki-roadblock", + "icon": "fas-cube", "fields": [ "access", "material" diff --git a/data/taginfo.json b/data/taginfo.json index 795cc20438..da2f76aa92 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -290,7 +290,7 @@ {"key": "attraction", "value": "water_slide", "description": "🄿 Water Slide", "object_types": ["way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD@master/svg/fontawesome/fas-swimmer.svg"}, {"key": "barrier", "description": "🄿 Barrier, 🄵 Type", "object_types": ["node", "way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/roadblock-15.svg"}, {"key": "barrier", "value": "entrance", "description": "🄿 Entrance (unsearchable)", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/entrance-alt1-15.svg"}, - {"key": "barrier", "value": "block", "description": "🄿 Block", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/roadblock-15.svg"}, + {"key": "barrier", "value": "block", "description": "🄿 Block", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD@master/svg/fontawesome/fas-cube.svg"}, {"key": "barrier", "value": "bollard", "description": "🄿 Bollard Row, 🄿 Bollard", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/silo.svg"}, {"key": "barrier", "value": "border_control", "description": "🄿 Border Control", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/roadblock-15.svg"}, {"key": "barrier", "value": "cattle_grid", "description": "🄿 Cattle Grid", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/barrier-15.svg"}, diff --git a/svg/fontawesome/fas-cube.svg b/svg/fontawesome/fas-cube.svg new file mode 100644 index 0000000000..cb35008385 --- /dev/null +++ b/svg/fontawesome/fas-cube.svg @@ -0,0 +1 @@ + \ No newline at end of file From e76ffc50f66d4491e24f4e36645f6669c6546428 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Mon, 25 Nov 2019 17:33:27 -0500 Subject: [PATCH 756/774] Add terms to Cattle Grid preset --- data/presets.yaml | 1 + data/presets/presets.json | 2 +- data/presets/presets/barrier/cattle_grid.json | 10 ++++++++++ dist/locales/en.json | 2 +- 4 files changed, 13 insertions(+), 2 deletions(-) diff --git a/data/presets.yaml b/data/presets.yaml index 9d38500b41..881db5989c 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -3935,6 +3935,7 @@ en: barrier/cattle_grid: # barrier=cattle_grid name: Cattle Grid + # 'terms: cattle guard,cattle stop,livestock grid,stock gate,stock grid,stock stop,Texas gate,vehicle pass' terms: '' barrier/chain: # barrier=chain diff --git a/data/presets/presets.json b/data/presets/presets.json index 7da5c1420e..f371aea010 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -297,7 +297,7 @@ "barrier/bollard_line": {"icon": "temaki-silo", "fields": ["access", "bollard", "height", "material", "colour"], "geometry": ["line"], "tags": {"barrier": "bollard"}, "name": "Bollard Row"}, "barrier/bollard": {"icon": "temaki-silo", "fields": ["access", "bollard", "height", "width", "material", "colour"], "geometry": ["point", "vertex"], "tags": {"barrier": "bollard"}, "name": "Bollard"}, "barrier/border_control": {"icon": "maki-roadblock", "fields": ["access", "building_area"], "moreFields": ["address", "email", "fax", "phone", "website"], "geometry": ["vertex", "area"], "tags": {"barrier": "border_control"}, "name": "Border Control"}, - "barrier/cattle_grid": {"icon": "maki-barrier", "geometry": ["vertex"], "tags": {"barrier": "cattle_grid"}, "name": "Cattle Grid"}, + "barrier/cattle_grid": {"icon": "maki-barrier", "geometry": ["vertex"], "tags": {"barrier": "cattle_grid"}, "terms": ["cattle guard", "cattle stop", "livestock grid", "stock gate", "stock grid", "stock stop", "Texas gate", "vehicle pass"], "name": "Cattle Grid"}, "barrier/chain": {"icon": "maki-barrier", "fields": ["access"], "geometry": ["vertex", "line"], "tags": {"barrier": "chain"}, "name": "Chain"}, "barrier/city_wall": {"icon": "temaki-wall", "fields": ["height", "material"], "geometry": ["line", "area"], "tags": {"barrier": "city_wall"}, "name": "City Wall"}, "barrier/cycle_barrier": {"icon": "maki-roadblock", "fields": ["access"], "geometry": ["vertex"], "tags": {"barrier": "cycle_barrier"}, "name": "Cycle Barrier"}, diff --git a/data/presets/presets/barrier/cattle_grid.json b/data/presets/presets/barrier/cattle_grid.json index d8fd8230de..7dfbfc0fa4 100644 --- a/data/presets/presets/barrier/cattle_grid.json +++ b/data/presets/presets/barrier/cattle_grid.json @@ -6,5 +6,15 @@ "tags": { "barrier": "cattle_grid" }, + "terms": [ + "cattle guard", + "cattle stop", + "livestock grid", + "stock gate", + "stock grid", + "stock stop", + "Texas gate", + "vehicle pass" + ], "name": "Cattle Grid" } diff --git a/dist/locales/en.json b/dist/locales/en.json index b86c80ea04..e73ecfb96a 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -5840,7 +5840,7 @@ }, "barrier/cattle_grid": { "name": "Cattle Grid", - "terms": "" + "terms": "cattle guard,cattle stop,livestock grid,stock gate,stock grid,stock stop,Texas gate,vehicle pass" }, "barrier/chain": { "name": "Chain", From e5275f5c7fb2c3c50792f0753318fae58e98d874 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 26 Nov 2019 17:27:22 -0500 Subject: [PATCH 757/774] Update temaki to v2.2.0 (close #7069) Update cattle grid icon (close #6489) Update gate icons (close #6814) Update icons for bike lockers, lean-to, picnic shelter, public transport shelter, animal boarding, animal shelter, bicycle rental, boat rental, chain, turnstile, barn, firepit, water tower, and storage rental --- data/presets/presets.json | 54 +++++++++---------- .../presets/amenity/animal_boarding.json | 2 +- .../presets/amenity/animal_shelter.json | 2 +- .../amenity/bicycle_parking/lockers.json | 2 +- .../presets/amenity/bicycle_rental.json | 2 +- data/presets/presets/amenity/boat_rental.json | 2 +- .../presets/amenity/shelter/lean_to.json | 2 +- .../amenity/shelter/picnic_shelter.json | 2 +- .../amenity/shelter/public_transport.json | 2 +- data/presets/presets/barrier/cattle_grid.json | 2 +- data/presets/presets/barrier/chain.json | 2 +- data/presets/presets/barrier/gate.json | 2 +- .../presets/presets/barrier/kissing_gate.json | 2 +- data/presets/presets/barrier/turnstile.json | 2 +- data/presets/presets/building/barn.json | 2 +- data/presets/presets/leisure/firepit.json | 2 +- .../presets/presets/man_made/water_tower.json | 2 +- data/presets/presets/shop/storage_rental.json | 2 +- data/taginfo.json | 34 ++++++------ package.json | 2 +- 20 files changed, 62 insertions(+), 62 deletions(-) diff --git a/data/presets/presets.json b/data/presets/presets.json index f371aea010..d6511a09da 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -65,9 +65,9 @@ "amenity/register_office": {"icon": "maki-town-hall", "fields": ["name", "address", "building_area", "opening_hours", "operator"], "geometry": ["point", "area"], "tags": {"amenity": "register_office"}, "reference": {"key": "government", "value": "register_office"}, "name": "Register Office", "searchable": false}, "amenity/scrapyard": {"icon": "maki-car", "fields": ["name", "operator", "address", "opening_hours"], "geometry": ["point", "area"], "tags": {"amenity": "scrapyard"}, "reference": {"key": "industrial", "value": "scrap_yard"}, "name": "Scrap Yard", "searchable": false}, "amenity/swimming_pool": {"icon": "fas-swimmer", "geometry": ["point", "vertex", "area"], "tags": {"amenity": "swimming_pool"}, "reference": {"key": "leisure", "value": "swimming_pool"}, "name": "Swimming Pool", "searchable": false}, - "amenity/animal_boarding": {"icon": "maki-veterinary", "fields": ["name", "operator", "address", "building_area", "opening_hours", "animal_boarding"], "moreFields": ["email", "fax", "level", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["boarding", "cat", "cattery", "dog", "horse", "kennel", "kitten", "pet", "pet boarding", "pet care", "pet hotel", "puppy", "reptile"], "tags": {"amenity": "animal_boarding"}, "name": "Animal Boarding Facility"}, + "amenity/animal_boarding": {"icon": "temaki-dog_shelter", "fields": ["name", "operator", "address", "building_area", "opening_hours", "animal_boarding"], "moreFields": ["email", "fax", "level", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["boarding", "cat", "cattery", "dog", "horse", "kennel", "kitten", "pet", "pet boarding", "pet care", "pet hotel", "puppy", "reptile"], "tags": {"amenity": "animal_boarding"}, "name": "Animal Boarding Facility"}, "amenity/animal_breeding": {"icon": "maki-veterinary", "fields": ["name", "operator", "address", "building_area", "opening_hours", "animal_breeding"], "moreFields": ["email", "fax", "level", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["breeding", "bull", "cat", "cow", "dog", "horse", "husbandry", "kitten", "livestock", "pet breeding", "puppy", "reptile"], "tags": {"amenity": "animal_breeding"}, "name": "Animal Breeding Facility"}, - "amenity/animal_shelter": {"icon": "maki-veterinary", "fields": ["name", "operator", "address", "building_area", "opening_hours", "animal_shelter"], "moreFields": ["email", "fax", "level", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["adoption", "aspca", "cat", "dog", "horse", "kitten", "pet care", "pet rescue", "puppy", "raptor", "reptile", "rescue", "spca", "pound"], "tags": {"amenity": "animal_shelter"}, "name": "Animal Shelter"}, + "amenity/animal_shelter": {"icon": "temaki-dog_shelter", "fields": ["name", "operator", "address", "building_area", "opening_hours", "animal_shelter"], "moreFields": ["email", "fax", "level", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["adoption", "aspca", "cat", "dog", "horse", "kitten", "pet care", "pet rescue", "puppy", "raptor", "reptile", "rescue", "spca", "pound"], "tags": {"amenity": "animal_shelter"}, "name": "Animal Shelter"}, "amenity/arts_centre": {"icon": "maki-theatre", "fields": ["name", "address", "building_area", "opening_hours", "website"], "moreFields": ["charge_fee", "email", "fax", "fee", "internet_access", "internet_access/fee", "internet_access/ssid", "level", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": [], "tags": {"amenity": "arts_centre"}, "name": "Arts Center"}, "amenity/atm": {"icon": "maki-bank", "fields": ["operator", "network", "cash_in", "currency_multi", "drive_through"], "moreFields": ["brand", "covered", "height", "indoor", "level", "lit", "manufacturer", "name", "opening_hours", "wheelchair"], "geometry": ["point", "vertex"], "terms": ["money", "cash", "machine"], "tags": {"amenity": "atm"}, "name": "ATM"}, "amenity/bank": {"icon": "maki-bank", "fields": ["name", "operator", "address", "building_area", "atm", "drive_through"], "moreFields": ["air_conditioning", "currency_multi", "email", "fax", "internet_access", "internet_access/fee", "internet_access/ssid", "level", "opening_hours", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["credit union", "check", "deposit", "fund", "investment", "repository", "reserve", "safe", "savings", "stock", "treasury", "trust", "vault"], "tags": {"amenity": "bank"}, "name": "Bank"}, @@ -77,12 +77,12 @@ "amenity/bench": {"icon": "temaki-bench", "fields": ["backrest", "material", "seats", "colour"], "moreFields": ["access_simple", "height", "inscription", "level", "lit", "manufacturer", "operator"], "geometry": ["point", "vertex", "line"], "terms": ["seat", "chair"], "tags": {"amenity": "bench"}, "name": "Bench"}, "amenity/bicycle_parking": {"icon": "maki-bicycle", "fields": ["bicycle_parking", "capacity", "operator", "operator/type", "covered", "access_simple", "fee", "payment_multi_fee", "charge_fee"], "moreFields": ["colour", "indoor", "level", "lit"], "geometry": ["point", "vertex", "area"], "terms": ["bike", "cycle parking", "cycling"], "tags": {"amenity": "bicycle_parking"}, "name": "Bicycle Parking"}, "amenity/bicycle_parking/building": {"icon": "maki-bicycle", "fields": ["{amenity/bicycle_parking}", "opening_hours", "building_area"], "geometry": ["point", "vertex", "area"], "tags": {"amenity": "bicycle_parking", "bicycle_parking": "building"}, "reference": {"key": "bicycle_parking"}, "terms": ["Bike Parking Station", "cycle parking", "cycling", "Multi-Storey Bicycle Park", "Multi-Storey Bike Park"], "name": "Bicycle Parking Garage"}, - "amenity/bicycle_parking/lockers": {"icon": "maki-bicycle", "geometry": ["point", "vertex", "area"], "tags": {"amenity": "bicycle_parking", "bicycle_parking": "lockers"}, "reference": {"key": "bicycle_parking"}, "terms": ["cycle locker", "cycling", "Bike Lockers"], "name": "Bicycle Lockers"}, + "amenity/bicycle_parking/lockers": {"icon": "temaki-bicycle_box", "geometry": ["point", "vertex", "area"], "tags": {"amenity": "bicycle_parking", "bicycle_parking": "lockers"}, "reference": {"key": "bicycle_parking"}, "terms": ["cycle locker", "cycling", "Bike Lockers"], "name": "Bicycle Lockers"}, "amenity/bicycle_parking/shed": {"icon": "maki-bicycle", "fields": ["{amenity/bicycle_parking}", "building_area"], "geometry": ["point", "vertex", "area"], "tags": {"amenity": "bicycle_parking", "bicycle_parking": "shed"}, "reference": {"key": "bicycle_parking"}, "terms": ["cycle shed", "cycling", "Bike Shed"], "name": "Bicycle Shed"}, - "amenity/bicycle_rental": {"icon": "maki-bicycle", "fields": ["capacity", "network", "operator", "operator/type", "fee", "payment_multi_fee"], "moreFields": ["address", "covered", "email", "fax", "level", "opening_hours", "phone", "website", "wheelchair"], "geometry": ["point", "vertex", "area"], "terms": ["bike", "bicycle", "bikeshare", "bike share", "bicycle share", "cycle dock", "cycle hub", "cycleshare", "cycling"], "tags": {"amenity": "bicycle_rental"}, "name": "Bicycle Rental"}, + "amenity/bicycle_rental": {"icon": "temaki-bicycle_rental", "fields": ["capacity", "network", "operator", "operator/type", "fee", "payment_multi_fee"], "moreFields": ["address", "covered", "email", "fax", "level", "opening_hours", "phone", "website", "wheelchair"], "geometry": ["point", "vertex", "area"], "terms": ["bike", "bicycle", "bikeshare", "bike share", "bicycle share", "cycle dock", "cycle hub", "cycleshare", "cycling"], "tags": {"amenity": "bicycle_rental"}, "name": "Bicycle Rental"}, "amenity/bicycle_repair_station": {"icon": "maki-bicycle", "fields": ["operator", "brand", "opening_hours", "fee", "payment_multi_fee", "charge_fee", "service/bicycle"], "moreFields": ["colour", "covered", "indoor", "level", "manufacturer"], "geometry": ["point", "vertex"], "terms": ["bike chain", "bike multitool", "bike repair", "bike tools", "cycle pump", "cycle repair", "cycling"], "tags": {"amenity": "bicycle_repair_station"}, "name": "Bicycle Repair Tool Stand"}, "amenity/biergarten": {"icon": "fas-beer", "fields": ["name", "address", "building", "outdoor_seating", "brewery"], "moreFields": ["{amenity/bar}"], "geometry": ["point", "area"], "tags": {"amenity": "biergarten"}, "terms": ["beer", "bier", "booze"], "name": "Biergarten"}, - "amenity/boat_rental": {"icon": "temaki-boating", "fields": ["name", "operator", "operator/type", "fee", "payment_multi_fee", "charge_fee"], "moreFields": ["address", "email", "fax", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "boat_rental"}, "name": "Boat Rental"}, + "amenity/boat_rental": {"icon": "temaki-boat_rental", "fields": ["name", "operator", "operator/type", "fee", "payment_multi_fee", "charge_fee"], "moreFields": ["address", "email", "fax", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "boat_rental"}, "name": "Boat Rental"}, "amenity/bureau_de_change": {"icon": "temaki-money_hand", "fields": ["name", "operator", "payment_multi", "currency_multi", "address", "building_area"], "moreFields": ["email", "fax", "level", "opening_hours", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["bureau de change", "money changer"], "tags": {"amenity": "bureau_de_change"}, "name": "Currency Exchange"}, "amenity/cafe": {"icon": "maki-cafe", "fields": ["name", "cuisine", "address", "building_area", "outdoor_seating", "internet_access", "internet_access/fee"], "moreFields": ["air_conditioning", "bar", "capacity", "delivery", "diet_multi", "email", "fax", "internet_access/ssid", "level", "min_age", "not/name", "opening_hours", "payment_multi", "phone", "reservation", "smoking", "takeaway", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["bistro", "coffee", "tea"], "tags": {"amenity": "cafe"}, "name": "Cafe"}, "amenity/car_pooling": {"icon": "maki-car", "fields": ["name", "operator", "operator/type", "capacity", "address", "opening_hours", "lit"], "moreFields": ["email", "fax", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "car_pooling"}, "name": "Car Pooling"}, @@ -211,9 +211,9 @@ "amenity/school": {"icon": "temaki-school", "fields": ["name", "operator", "operator/type", "address", "religion", "denomination", "website"], "moreFields": ["charge_fee", "email", "fax", "fee", "internet_access", "internet_access/ssid", "level", "phone", "polling_station", "wheelchair"], "geometry": ["point", "area"], "terms": ["academy", "elementary school", "middle school", "high school"], "tags": {"amenity": "school"}, "name": "School Grounds"}, "amenity/shelter": {"icon": "maki-shelter", "fields": ["name", "shelter_type", "building_area", "bench", "bin"], "moreFields": ["lit", "lockable", "wheelchair"], "geometry": ["point", "vertex", "area"], "terms": ["lean-to", "gazebo", "picnic"], "tags": {"amenity": "shelter"}, "name": "Shelter"}, "amenity/shelter/gazebo": {"icon": "maki-shelter", "fields": ["name", "building_area", "bench", "lit"], "geometry": ["point", "area"], "tags": {"amenity": "shelter", "shelter_type": "gazebo"}, "name": "Gazebo"}, - "amenity/shelter/lean_to": {"icon": "maki-shelter", "fields": ["name", "operator", "building_area"], "geometry": ["point", "area"], "tags": {"amenity": "shelter", "shelter_type": "lean_to"}, "name": "Lean-To"}, - "amenity/shelter/picnic_shelter": {"icon": "maki-shelter", "fields": ["name", "shelter_type", "building_area", "lit", "bin"], "geometry": ["point", "area"], "tags": {"amenity": "shelter", "shelter_type": "picnic_shelter"}, "reference": {"key": "shelter_type", "value": "picnic_shelter"}, "terms": ["pavilion"], "name": "Picnic Shelter"}, - "amenity/shelter/public_transport": {"icon": "maki-shelter", "fields": ["name", "shelter_type", "building_area", "bench", "lit"], "geometry": ["point", "area"], "terms": ["bus stop", "metro stop", "public transit shelter", "public transport shelter", "tram stop shelter", "waiting"], "tags": {"amenity": "shelter", "shelter_type": "public_transport"}, "reference": {"key": "shelter_type", "value": "public_transport"}, "name": "Transit Shelter"}, + "amenity/shelter/lean_to": {"icon": "temaki-sleep_shelter", "fields": ["name", "operator", "building_area"], "geometry": ["point", "area"], "tags": {"amenity": "shelter", "shelter_type": "lean_to"}, "name": "Lean-To"}, + "amenity/shelter/picnic_shelter": {"icon": "temaki-picnic_shelter", "fields": ["name", "shelter_type", "building_area", "lit", "bin"], "geometry": ["point", "area"], "tags": {"amenity": "shelter", "shelter_type": "picnic_shelter"}, "reference": {"key": "shelter_type", "value": "picnic_shelter"}, "terms": ["pavilion"], "name": "Picnic Shelter"}, + "amenity/shelter/public_transport": {"icon": "temaki-transit_shelter", "fields": ["name", "shelter_type", "building_area", "bench", "lit"], "geometry": ["point", "area"], "terms": ["bus stop", "metro stop", "public transit shelter", "public transport shelter", "tram stop shelter", "waiting"], "tags": {"amenity": "shelter", "shelter_type": "public_transport"}, "reference": {"key": "shelter_type", "value": "public_transport"}, "name": "Transit Shelter"}, "amenity/shower": {"icon": "temaki-shower", "fields": ["opening_hours", "access_simple", "fee", "payment_multi_fee", "charge_fee", "supervised", "building_area", "wheelchair"], "moreFields": ["address", "gender", "level", "operator"], "geometry": ["point", "vertex", "area"], "terms": ["rain closet"], "tags": {"amenity": "shower"}, "name": "Shower"}, "amenity/smoking_area": {"icon": "fas-smoking", "fields": ["name", "shelter", "bin", "bench", "opening_hours"], "moreFields": ["covered", "level", "lit", "wheelchair"], "geometry": ["point", "vertex", "area"], "terms": [], "tags": {"amenity": "smoking_area"}, "name": "Smoking Area"}, "amenity/social_centre": {"icon": "fas-handshake", "fields": ["name", "brand", "operator", "operator/type", "address", "building_area"], "moreFields": ["air_conditioning", "email", "fax", "internet_access", "internet_access/fee", "internet_access/ssid", "level", "phone", "polling_station", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["event", "fraternal", "fraternity", "hall", "organization", "professional", "society", "sorority", "union", "vetern"], "tags": {"amenity": "social_centre"}, "name": "Social Center"}, @@ -297,14 +297,14 @@ "barrier/bollard_line": {"icon": "temaki-silo", "fields": ["access", "bollard", "height", "material", "colour"], "geometry": ["line"], "tags": {"barrier": "bollard"}, "name": "Bollard Row"}, "barrier/bollard": {"icon": "temaki-silo", "fields": ["access", "bollard", "height", "width", "material", "colour"], "geometry": ["point", "vertex"], "tags": {"barrier": "bollard"}, "name": "Bollard"}, "barrier/border_control": {"icon": "maki-roadblock", "fields": ["access", "building_area"], "moreFields": ["address", "email", "fax", "phone", "website"], "geometry": ["vertex", "area"], "tags": {"barrier": "border_control"}, "name": "Border Control"}, - "barrier/cattle_grid": {"icon": "maki-barrier", "geometry": ["vertex"], "tags": {"barrier": "cattle_grid"}, "terms": ["cattle guard", "cattle stop", "livestock grid", "stock gate", "stock grid", "stock stop", "Texas gate", "vehicle pass"], "name": "Cattle Grid"}, - "barrier/chain": {"icon": "maki-barrier", "fields": ["access"], "geometry": ["vertex", "line"], "tags": {"barrier": "chain"}, "name": "Chain"}, + "barrier/cattle_grid": {"icon": "temaki-cattle_grid", "geometry": ["vertex"], "tags": {"barrier": "cattle_grid"}, "terms": ["cattle guard", "cattle stop", "livestock grid", "stock gate", "stock grid", "stock stop", "Texas gate", "vehicle pass"], "name": "Cattle Grid"}, + "barrier/chain": {"icon": "temaki-rope_fence", "fields": ["access"], "geometry": ["vertex", "line"], "tags": {"barrier": "chain"}, "name": "Chain"}, "barrier/city_wall": {"icon": "temaki-wall", "fields": ["height", "material"], "geometry": ["line", "area"], "tags": {"barrier": "city_wall"}, "name": "City Wall"}, "barrier/cycle_barrier": {"icon": "maki-roadblock", "fields": ["access"], "geometry": ["vertex"], "tags": {"barrier": "cycle_barrier"}, "name": "Cycle Barrier"}, "barrier/ditch": {"icon": "maki-roadblock", "geometry": ["line", "area"], "tags": {"barrier": "ditch"}, "name": "Trench", "matchScore": 0.25}, "barrier/fence": {"icon": "maki-fence", "fields": ["fence_type", "height", "material"], "geometry": ["line"], "tags": {"barrier": "fence"}, "name": "Fence", "matchScore": 0.25}, "barrier/fence/railing": {"icon": "temaki-railing", "geometry": ["line"], "tags": {"barrier": "fence", "fence_type": "railing"}, "terms": ["railing", "handrail", "guard rail"], "name": "Railing", "matchScore": 0.5}, - "barrier/gate": {"icon": "maki-barrier", "fields": ["access", "opening_hours"], "geometry": ["vertex", "line"], "tags": {"barrier": "gate"}, "name": "Gate"}, + "barrier/gate": {"icon": "temaki-gate", "fields": ["access", "opening_hours"], "geometry": ["vertex", "line"], "tags": {"barrier": "gate"}, "name": "Gate"}, "barrier/guard_rail": {"icon": "temaki-guard_rail", "fields": ["material"], "geometry": ["line"], "tags": {"barrier": "guard_rail"}, "name": "Guard Rail", "terms": ["guardrail", "traffic barrier", "crash barrier", "median barrier", "roadside barrier", "Armco barrier"], "matchScore": 0.75}, "barrier/hedge": {"fields": ["height"], "geometry": ["line", "area"], "tags": {"barrier": "hedge"}, "name": "Hedge", "matchScore": 0.25}, "barrier/height_restrictor": {"icon": "temaki-car_wash", "fields": ["maxheight"], "geometry": ["vertex"], "tags": {"barrier": "height_restrictor"}, "name": "Height Restrictor"}, @@ -313,13 +313,13 @@ "barrier/kerb/lowered": {"icon": "temaki-kerb-lowered", "fields": ["kerb", "{barrier/kerb}", "kerb/height"], "geometry": ["vertex", "line"], "tags": {"kerb": "lowered"}, "addTags": {"barrier": "kerb", "kerb": "lowered"}, "reference": {"key": "kerb", "value": "lowered"}, "terms": ["curb cut", "curb ramp", "kerb ramp", "dropped kerb", "pram ramp"], "matchScore": 0.55, "name": "Lowered Curb"}, "barrier/kerb/raised": {"icon": "temaki-kerb-raised", "fields": ["kerb", "{barrier/kerb}", "kerb/height"], "geometry": ["vertex", "line"], "tags": {"kerb": "raised"}, "addTags": {"barrier": "kerb", "kerb": "raised"}, "reference": {"key": "kerb", "value": "raised"}, "terms": [], "matchScore": 0.55, "name": "Raised Curb"}, "barrier/kerb/rolled": {"icon": "temaki-kerb-rolled", "fields": ["kerb", "{barrier/kerb}", "kerb/height"], "geometry": ["vertex", "line"], "tags": {"kerb": "rolled"}, "addTags": {"barrier": "kerb", "kerb": "rolled"}, "reference": {"key": "kerb", "value": "rolled"}, "terms": ["gutter"], "matchScore": 0.55, "name": "Rolled Curb"}, - "barrier/kissing_gate": {"icon": "maki-barrier", "fields": ["access"], "geometry": ["vertex"], "tags": {"barrier": "kissing_gate"}, "name": "Kissing Gate"}, + "barrier/kissing_gate": {"icon": "temaki-gate", "fields": ["access"], "geometry": ["vertex"], "tags": {"barrier": "kissing_gate"}, "name": "Kissing Gate"}, "barrier/lift_gate": {"icon": "temaki-lift_gate", "fields": ["access"], "geometry": ["vertex", "line"], "tags": {"barrier": "lift_gate"}, "name": "Lift Gate"}, "barrier/retaining_wall": {"icon": "temaki-wall", "fields": ["height", "material"], "geometry": ["line", "area"], "tags": {"barrier": "retaining_wall"}, "name": "Retaining Wall"}, "barrier/sally_port": {"icon": "fas-dungeon", "geometry": ["vertex"], "tags": {"barrier": "sally_port"}, "terms": ["Postern", "castle side gate"], "name": "Sally Port"}, "barrier/stile": {"icon": "maki-roadblock", "fields": ["access", "stile", "material"], "geometry": ["vertex"], "tags": {"barrier": "stile"}, "name": "Stile"}, "barrier/toll_booth": {"icon": "maki-roadblock", "fields": ["access", "building_area", "payment_multi", "currency_multi"], "moreFields": ["address", "email", "fax", "opening_hours", "phone", "website"], "geometry": ["vertex", "area"], "tags": {"barrier": "toll_booth"}, "name": "Toll Booth"}, - "barrier/turnstile": {"icon": "maki-roadblock", "fields": ["access"], "geometry": ["vertex"], "terms": ["baffle gate", "turnstyle"], "tags": {"barrier": "turnstile"}, "name": "Turnstile"}, + "barrier/turnstile": {"icon": "temaki-turnstile", "fields": ["access"], "geometry": ["vertex"], "terms": ["baffle gate", "turnstyle"], "tags": {"barrier": "turnstile"}, "name": "Turnstile"}, "barrier/wall": {"icon": "temaki-wall", "fields": ["wall", "height", "material"], "geometry": ["line", "area"], "tags": {"barrier": "wall"}, "name": "Wall", "matchScore": 0.25}, "barrier/wall/noise_barrier": {"icon": "temaki-wall", "geometry": ["line", "area"], "tags": {"barrier": "wall", "wall": "noise_barrier"}, "terms": ["acoustical barrier", "noise wall", "noisewall", "sound barrier", "sound berm", "sound wall", "soundberm", "soundwall"], "name": "Noise Barrier", "matchScore": 0.27}, "boundary/administrative": {"fields": ["name", "admin_level"], "geometry": ["line"], "tags": {"boundary": "administrative"}, "name": "Administrative Boundary", "matchScore": 0.5}, @@ -331,7 +331,7 @@ "building/entrance": {"icon": "maki-entrance-alt1", "fields": [], "moreFields": [], "geometry": ["vertex"], "tags": {"building": "entrance"}, "name": "Entrance/Exit", "searchable": false}, "building/train_station": {"icon": "maki-building", "geometry": ["point", "vertex", "area"], "tags": {"building": "train_station"}, "matchScore": 0.5, "name": "Train Station Building", "searchable": false}, "building/apartments": {"icon": "maki-building", "geometry": ["area"], "tags": {"building": "apartments"}, "matchScore": 0.5, "name": "Apartment Building"}, - "building/barn": {"icon": "maki-farm", "geometry": ["area"], "tags": {"building": "barn"}, "matchScore": 0.5, "name": "Barn"}, + "building/barn": {"icon": "temaki-barn", "geometry": ["area"], "tags": {"building": "barn"}, "matchScore": 0.5, "name": "Barn"}, "building/boathouse": {"icon": "maki-harbor", "geometry": ["area"], "tags": {"building": "boathouse"}, "matchScore": 0.5, "terms": [], "name": "Boathouse"}, "building/bungalow": {"icon": "maki-home", "geometry": ["area"], "tags": {"building": "bungalow"}, "terms": ["home", "detached"], "matchScore": 0.5, "name": "Bungalow"}, "building/cabin": {"icon": "maki-home", "geometry": ["area"], "tags": {"building": "cabin"}, "matchScore": 0.5, "name": "Cabin"}, @@ -640,7 +640,7 @@ "leisure/disc_golf_course": {"icon": "temaki-disc_golf_basket", "fields": ["name", "operator", "access_simple", "fee", "payment_multi_fee", "charge_fee", "opening_hours"], "moreFields": ["address", "dog", "email", "fax", "lit", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"leisure": "disc_golf_course"}, "addTags": {"leisure": "disc_golf_course", "sport": "disc_golf"}, "terms": ["disk golf", "frisbee golf", "flying disc golf", "frolf", "ultimate"], "name": "Disc Golf Course"}, "leisure/dog_park": {"icon": "maki-dog-park", "fields": ["name"], "moreFields": ["email", "fax", "phone", "website"], "geometry": ["point", "area"], "terms": [], "tags": {"leisure": "dog_park"}, "name": "Dog Park"}, "leisure/escape_game": {"icon": "fas-puzzle-piece", "fields": ["name", "address", "building_area", "opening_hours", "website", "fee", "payment_multi_fee", "charge_fee", "internet_access", "internet_access/fee", "internet_access/ssid"], "moreFields": ["air_conditioning", "email", "fax", "level", "phone", "smoking", "wheelchair"], "geometry": ["point", "area"], "terms": ["escape game", "escape the room", "puzzle room", "quest room"], "tags": {"leisure": "escape_game"}, "name": "Escape Room"}, - "leisure/firepit": {"icon": "maki-fire-station", "fields": ["access_simple"], "geometry": ["point", "area"], "tags": {"leisure": "firepit"}, "terms": ["fireplace", "campfire"], "name": "Firepit"}, + "leisure/firepit": {"icon": "temaki-campfire", "fields": ["access_simple"], "geometry": ["point", "area"], "tags": {"leisure": "firepit"}, "terms": ["fireplace", "campfire"], "name": "Firepit"}, "leisure/fishing": {"icon": "fas-fish", "fields": ["name", "access_simple", "fishing"], "geometry": ["vertex", "point", "area"], "tags": {"leisure": "fishing"}, "terms": ["angler"], "name": "Fishing Spot"}, "leisure/fitness_centre": {"icon": "fas-dumbbell", "fields": ["name", "sport", "address", "building_area"], "moreFields": ["charge_fee", "email", "fax", "fee", "opening_hours", "payment_multi", "phone", "website"], "geometry": ["point", "area"], "tags": {"leisure": "fitness_centre"}, "terms": ["health", "gym", "leisure", "studio"], "name": "Gym / Fitness Center"}, "leisure/fitness_centre/yoga": {"icon": "maki-pitch", "geometry": ["point", "area"], "terms": ["studio", "asanas", "modern yoga", "meditation"], "tags": {"leisure": "fitness_centre", "sport": "yoga"}, "reference": {"key": "sport", "value": "yoga"}, "name": "Yoga Studio"}, @@ -772,7 +772,7 @@ "man_made/utility_pole": {"icon": "temaki-utility_pole", "fields": ["ref", "operator", "utility_semi", "height", "material"], "moreFields": ["colour", "manufacturer"], "geometry": ["point", "vertex"], "tags": {"man_made": "utility_pole"}, "name": "Utility Pole"}, "man_made/wastewater_plant": {"icon": "temaki-waste", "fields": ["name", "operator", "address"], "moreFields": ["email", "fax", "phone", "website"], "geometry": ["point", "area"], "terms": ["sewage*", "water treatment plant", "reclamation plant"], "tags": {"man_made": "wastewater_plant"}, "name": "Wastewater Plant"}, "man_made/water_tap": {"icon": "maki-drinking-water", "fields": ["ref", "operator", "drinking_water", "access_simple"], "geometry": ["point", "vertex"], "tags": {"man_made": "water_tap"}, "terms": ["drinking water", "water faucet", "water point", "water source", "water spigot"], "name": "Water Tap"}, - "man_made/water_tower": {"icon": "maki-water", "fields": ["operator", "height"], "geometry": ["point", "area"], "tags": {"man_made": "water_tower"}, "name": "Water Tower"}, + "man_made/water_tower": {"icon": "temaki-water_tower", "fields": ["operator", "height"], "geometry": ["point", "area"], "tags": {"man_made": "water_tower"}, "name": "Water Tower"}, "man_made/water_well": {"icon": "maki-water", "fields": ["ref", "operator", "drinking_water", "pump", "access_simple"], "geometry": ["point", "area"], "tags": {"man_made": "water_well"}, "terms": ["aquifer", "drinking water", "water point", "water source"], "name": "Water Well"}, "man_made/water_works": {"icon": "maki-water", "fields": ["name", "operator", "address"], "geometry": ["point", "area"], "tags": {"man_made": "water_works"}, "name": "Water Works"}, "man_made/watermill": {"icon": "maki-watermill", "fields": ["building_area"], "geometry": ["point", "area"], "terms": ["water", "wheel", "mill"], "tags": {"man_made": "watermill"}, "name": "Watermill"}, @@ -1137,7 +1137,7 @@ "shop/spices": {"icon": "maki-shop", "geometry": ["point", "area"], "terms": ["chili", "cinnamon", "curry", "ginger", "herbs", "pepper", "saffron", "salt", "spice store", "spices", "turmeric", "wasabi"], "tags": {"shop": "spices"}, "name": "Spice Shop"}, "shop/sports": {"icon": "fas-futbol", "fields": ["name", "operator", "sport", "{shop}"], "geometry": ["point", "area"], "tags": {"shop": "sports"}, "terms": ["athletics"], "name": "Sporting Goods Store"}, "shop/stationery": {"icon": "fas-paperclip", "geometry": ["point", "area"], "terms": ["card", "paper"], "tags": {"shop": "stationery"}, "name": "Stationery Store"}, - "shop/storage_rental": {"icon": "fas-warehouse", "geometry": ["point", "area"], "tags": {"shop": "storage_rental"}, "terms": ["garages"], "name": "Storage Rental"}, + "shop/storage_rental": {"icon": "temaki-storage_rental", "geometry": ["point", "area"], "tags": {"shop": "storage_rental"}, "terms": ["garages"], "name": "Storage Rental"}, "shop/supermarket": {"icon": "maki-grocery", "moreFields": ["{shop}", "diet_multi"], "geometry": ["point", "area"], "terms": ["grocery", "store", "shop"], "tags": {"shop": "supermarket"}, "name": "Supermarket"}, "shop/swimming_pool": {"icon": "fas-swimmer", "geometry": ["point", "area"], "terms": ["hot tub equipment store", "hot tub maintenance store", "hot tub supply store", "pool shop", "pool store", "swimming pool equipment store", "swimming pool installation store", "swimming pool maintenance store", "swimming pool supply shop"], "tags": {"shop": "swimming_pool"}, "name": "Pool Supply Store"}, "shop/tailor": {"icon": "maki-clothing-store", "geometry": ["point", "area"], "terms": ["clothes", "suit"], "tags": {"shop": "tailor"}, "name": "Tailor"}, @@ -1268,7 +1268,7 @@ "waterway/water_point": {"icon": "maki-drinking-water", "fields": ["{amenity/water_point}"], "moreFields": ["{amenity/water_point}"], "geometry": ["area", "vertex", "point"], "tags": {"waterway": "water_point"}, "terms": ["water faucet", "water point", "water tap", "water source", "water spigot"], "name": "Marine Drinking Water"}, "waterway/waterfall": {"icon": "maki-waterfall", "fields": ["name", "height", "width", "intermittent"], "geometry": ["vertex"], "terms": ["fall"], "tags": {"waterway": "waterfall"}, "name": "Waterfall"}, "waterway/weir": {"icon": "maki-dam", "fields": ["name", "operator", "height", "material"], "moreFields": ["seamark/type"], "geometry": ["vertex", "line"], "terms": ["low-head dam", "low-rise dam", "wier"], "tags": {"waterway": "weir"}, "name": "Weir"}, - "amenity/animal_boarding/PetsHotel": {"name": "PetsHotel", "icon": "maki-veterinary", "imageURL": "https://graph.facebook.com/PetSmart/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q67141961", "amenity": "animal_boarding"}, "addTags": {"amenity": "animal_boarding", "animal_boarding": "dog;cat", "brand": "PetsHotel", "brand:wikidata": "Q67141961", "name": "PetsHotel"}, "countryCodes": ["ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/animal_boarding/PetsHotel": {"name": "PetsHotel", "icon": "temaki-dog_shelter", "imageURL": "https://graph.facebook.com/PetSmart/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q67141961", "amenity": "animal_boarding"}, "addTags": {"amenity": "animal_boarding", "animal_boarding": "dog;cat", "brand": "PetsHotel", "brand:wikidata": "Q67141961", "name": "PetsHotel"}, "countryCodes": ["ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/ABANCA": {"name": "ABANCA", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/SomosAbanca/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q9598744", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "ABANCA", "brand:wikidata": "Q9598744", "brand:wikipedia": "es:Abanca", "name": "ABANCA", "official_name": "ABANCA Corporación Bancaria"}, "countryCodes": ["es"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/ABN AMRO": {"name": "ABN AMRO", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/abnamro/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q287471", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "ABN AMRO", "brand:wikidata": "Q287471", "brand:wikipedia": "en:ABN AMRO", "name": "ABN AMRO", "official_name": "ABN AMRO Bank N.V."}, "countryCodes": ["nl"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/ABSA": {"name": "ABSA", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/AbsaSouthAfrica/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q331688", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "ABSA", "brand:wikidata": "Q331688", "brand:wikipedia": "en:ABSA Group Limited", "name": "ABSA"}, "countryCodes": ["za"], "terms": [], "matchScore": 2, "suggestion": true}, @@ -1967,12 +1967,12 @@ "amenity/bar/All Bar One": {"name": "All Bar One", "icon": "maki-bar", "imageURL": "https://pbs.twimg.com/profile_images/717013484467306497/vjG-lkGe_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4728624", "amenity": "bar"}, "addTags": {"amenity": "bar", "brand": "All Bar One", "brand:wikidata": "Q4728624", "brand:wikipedia": "en:All Bar One", "name": "All Bar One"}, "countryCodes": ["gb"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bar/Revolución de Cuba": {"name": "Revolución de Cuba", "icon": "maki-bar", "imageURL": "https://pbs.twimg.com/profile_images/1001476884482396160/3NEm7OnI_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q64024691", "amenity": "bar"}, "addTags": {"amenity": "bar", "brand": "Revolución de Cuba", "brand:wikidata": "Q64024691", "name": "Revolución de Cuba"}, "countryCodes": ["gb"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bar/Revolution": {"name": "Revolution", "icon": "maki-bar", "imageURL": "https://graph.facebook.com/revolutionbars/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q64024398", "amenity": "bar"}, "addTags": {"amenity": "bar", "brand": "Revolution", "brand:wikidata": "Q64024398", "name": "Revolution"}, "countryCodes": ["gb"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bicycle_rental/Call a Bike": {"name": "Call a Bike", "icon": "maki-bicycle", "imageURL": "https://graph.facebook.com/callabikesharing/picture?type=large", "geometry": ["point", "vertex", "area"], "tags": {"brand:wikidata": "Q1060525", "amenity": "bicycle_rental"}, "addTags": {"amenity": "bicycle_rental", "brand": "Call a Bike", "brand:wikidata": "Q1060525", "brand:wikipedia": "en:Call a Bike", "name": "Call a Bike"}, "countryCodes": ["de"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bicycle_rental/Grid": {"name": "Grid", "icon": "maki-bicycle", "imageURL": "https://graph.facebook.com/Gridbikes/picture?type=large", "geometry": ["point", "vertex", "area"], "tags": {"brand:wikidata": "Q62104168", "amenity": "bicycle_rental"}, "addTags": {"amenity": "bicycle_rental", "brand": "Grid", "brand:wikidata": "Q62104168", "name": "Grid"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bicycle_rental/MiBici": {"name": "MiBici", "icon": "maki-bicycle", "imageURL": "https://graph.facebook.com/MiBiciPublica/picture?type=large", "geometry": ["point", "vertex", "area"], "tags": {"brand:wikidata": "Q60966987", "amenity": "bicycle_rental"}, "addTags": {"amenity": "bicycle_rental", "brand": "MiBici", "brand:wikidata": "Q60966987", "brand:wikipedia": "es:MiBici", "name": "MiBici"}, "countryCodes": ["mx"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bicycle_rental/Swapfiets": {"name": "Swapfiets", "icon": "maki-bicycle", "imageURL": "https://graph.facebook.com/Swapfiets/picture?type=large", "geometry": ["point", "vertex", "area"], "tags": {"brand:wikidata": "Q62104374", "amenity": "bicycle_rental"}, "addTags": {"amenity": "bicycle_rental", "brand": "Swapfiets", "brand:wikidata": "Q62104374", "name": "Swapfiets"}, "countryCodes": ["be", "de", "dk", "nl"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bicycle_rental/metropolradruhr": {"name": "metropolradruhr", "icon": "maki-bicycle", "imageURL": "https://graph.facebook.com/nextbike/picture?type=large", "geometry": ["point", "vertex", "area"], "tags": {"brand:wikidata": "Q62104274", "amenity": "bicycle_rental"}, "addTags": {"amenity": "bicycle_rental", "brand": "metropolradruhr", "brand:wikidata": "Q62104274", "name": "metropolradruhr"}, "countryCodes": ["de"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/bicycle_rental/nextbike": {"name": "nextbike", "icon": "maki-bicycle", "imageURL": "https://graph.facebook.com/nextbike/picture?type=large", "geometry": ["point", "vertex", "area"], "tags": {"brand:wikidata": "Q2351279", "amenity": "bicycle_rental"}, "addTags": {"amenity": "bicycle_rental", "brand": "nextbike", "brand:wikidata": "Q2351279", "brand:wikipedia": "de:Nextbike", "name": "nextbike"}, "countryCodes": ["at", "de"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bicycle_rental/Call a Bike": {"name": "Call a Bike", "icon": "temaki-bicycle_rental", "imageURL": "https://graph.facebook.com/callabikesharing/picture?type=large", "geometry": ["point", "vertex", "area"], "tags": {"brand:wikidata": "Q1060525", "amenity": "bicycle_rental"}, "addTags": {"amenity": "bicycle_rental", "brand": "Call a Bike", "brand:wikidata": "Q1060525", "brand:wikipedia": "en:Call a Bike", "name": "Call a Bike"}, "countryCodes": ["de"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bicycle_rental/Grid": {"name": "Grid", "icon": "temaki-bicycle_rental", "imageURL": "https://graph.facebook.com/Gridbikes/picture?type=large", "geometry": ["point", "vertex", "area"], "tags": {"brand:wikidata": "Q62104168", "amenity": "bicycle_rental"}, "addTags": {"amenity": "bicycle_rental", "brand": "Grid", "brand:wikidata": "Q62104168", "name": "Grid"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bicycle_rental/MiBici": {"name": "MiBici", "icon": "temaki-bicycle_rental", "imageURL": "https://graph.facebook.com/MiBiciPublica/picture?type=large", "geometry": ["point", "vertex", "area"], "tags": {"brand:wikidata": "Q60966987", "amenity": "bicycle_rental"}, "addTags": {"amenity": "bicycle_rental", "brand": "MiBici", "brand:wikidata": "Q60966987", "brand:wikipedia": "es:MiBici", "name": "MiBici"}, "countryCodes": ["mx"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bicycle_rental/Swapfiets": {"name": "Swapfiets", "icon": "temaki-bicycle_rental", "imageURL": "https://graph.facebook.com/Swapfiets/picture?type=large", "geometry": ["point", "vertex", "area"], "tags": {"brand:wikidata": "Q62104374", "amenity": "bicycle_rental"}, "addTags": {"amenity": "bicycle_rental", "brand": "Swapfiets", "brand:wikidata": "Q62104374", "name": "Swapfiets"}, "countryCodes": ["be", "de", "dk", "nl"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bicycle_rental/metropolradruhr": {"name": "metropolradruhr", "icon": "temaki-bicycle_rental", "imageURL": "https://graph.facebook.com/nextbike/picture?type=large", "geometry": ["point", "vertex", "area"], "tags": {"brand:wikidata": "Q62104274", "amenity": "bicycle_rental"}, "addTags": {"amenity": "bicycle_rental", "brand": "metropolradruhr", "brand:wikidata": "Q62104274", "name": "metropolradruhr"}, "countryCodes": ["de"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/bicycle_rental/nextbike": {"name": "nextbike", "icon": "temaki-bicycle_rental", "imageURL": "https://graph.facebook.com/nextbike/picture?type=large", "geometry": ["point", "vertex", "area"], "tags": {"brand:wikidata": "Q2351279", "amenity": "bicycle_rental"}, "addTags": {"amenity": "bicycle_rental", "brand": "nextbike", "brand:wikidata": "Q2351279", "brand:wikipedia": "de:Nextbike", "name": "nextbike"}, "countryCodes": ["at", "de"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bureau_de_change/CADECA": {"name": "CADECA", "icon": "temaki-money_hand", "imageURL": "https://graph.facebook.com/CadecaCasasdeCambioOficial/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q62122716", "amenity": "bureau_de_change"}, "addTags": {"amenity": "bureau_de_change", "brand": "CADECA", "brand:wikidata": "Q62122716", "name": "CADECA"}, "countryCodes": ["cu"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bureau_de_change/Travelex": {"name": "Travelex", "icon": "temaki-money_hand", "imageURL": "https://graph.facebook.com/TravelexUK/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2337964", "amenity": "bureau_de_change"}, "addTags": {"amenity": "bureau_de_change", "brand": "Travelex", "brand:wikidata": "Q2337964", "brand:wikipedia": "en:Travelex", "name": "Travelex"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/cafe/85°C": {"name": "85°C", "icon": "maki-cafe", "imageURL": "https://graph.facebook.com/85CBakeryCafe/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4644852", "amenity": "cafe"}, "addTags": {"alt_name": "85C", "amenity": "cafe", "brand": "85°C", "brand:wikidata": "Q4644852", "brand:wikipedia": "en:85C Bakery Cafe", "cuisine": "coffee_shop;chinese", "name": "85°C", "takeaway": "yes"}, "countryCodes": ["au", "us"], "terms": ["85 cafe", "85 degrees", "85 degrees c", "85 degrees celsius", "85c bakery cafe", "85c daily cafe", "85oc"], "matchScore": 2, "suggestion": true}, @@ -5091,9 +5091,9 @@ "shop/stationery/Smiggle": {"name": "Smiggle", "icon": "fas-paperclip", "imageURL": "https://graph.facebook.com/smiggle/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7544536", "shop": "stationery"}, "addTags": {"brand": "Smiggle", "brand:wikidata": "Q7544536", "name": "Smiggle", "shop": "stationery"}, "countryCodes": ["at", "gb", "hk", "ie", "my", "nz", "sg"], "terms": [], "matchScore": 2, "suggestion": true}, "shop/stationery/Staples": {"name": "Staples", "icon": "fas-paperclip", "imageURL": "https://graph.facebook.com/staples/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q785943", "shop": "stationery"}, "addTags": {"brand": "Staples", "brand:wikidata": "Q785943", "brand:wikipedia": "en:Staples Inc.", "name": "Staples", "shop": "stationery"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/stationery/Комус": {"name": "Комус", "icon": "fas-paperclip", "imageURL": "https://graph.facebook.com/komusclub/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4230314", "shop": "stationery"}, "addTags": {"brand": "Комус", "brand:en": "Komus", "brand:wikidata": "Q4230314", "brand:wikipedia": "en:Komus (company)", "name": "Комус", "name:en": "Komus", "shop": "stationery"}, "countryCodes": ["ru"], "terms": [], "matchScore": 2, "suggestion": true}, - "shop/storage_rental/Extra Space Storage": {"name": "Extra Space Storage", "icon": "fas-warehouse", "imageURL": "https://graph.facebook.com/extraspace/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5422162", "shop": "storage_rental"}, "addTags": {"brand": "Extra Space Storage", "brand:wikidata": "Q5422162", "brand:wikipedia": "en:Extra Space Storage", "name": "Extra Space Storage", "shop": "storage_rental"}, "countryCodes": ["us"], "terms": ["extra space"], "matchScore": 2, "suggestion": true}, - "shop/storage_rental/Public Storage": {"name": "Public Storage", "icon": "fas-warehouse", "imageURL": "https://graph.facebook.com/PublicStorage/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1156045", "shop": "storage_rental"}, "addTags": {"brand": "Public Storage", "brand:wikidata": "Q1156045", "brand:wikipedia": "en:Public Storage", "name": "Public Storage", "shop": "storage_rental"}, "countryCodes": ["ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, - "shop/storage_rental/U-Haul": {"name": "U-Haul", "icon": "fas-warehouse", "imageURL": "https://graph.facebook.com/uhaul/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7862902", "shop": "storage_rental"}, "addTags": {"brand": "U-Haul", "brand:wikidata": "Q7862902", "brand:wikipedia": "en:U-Haul", "name": "U-Haul", "shop": "storage_rental"}, "countryCodes": ["ca", "us"], "terms": ["uhaul neighborhood dealer"], "matchScore": 2, "suggestion": true}, + "shop/storage_rental/Extra Space Storage": {"name": "Extra Space Storage", "icon": "temaki-storage_rental", "imageURL": "https://graph.facebook.com/extraspace/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5422162", "shop": "storage_rental"}, "addTags": {"brand": "Extra Space Storage", "brand:wikidata": "Q5422162", "brand:wikipedia": "en:Extra Space Storage", "name": "Extra Space Storage", "shop": "storage_rental"}, "countryCodes": ["us"], "terms": ["extra space"], "matchScore": 2, "suggestion": true}, + "shop/storage_rental/Public Storage": {"name": "Public Storage", "icon": "temaki-storage_rental", "imageURL": "https://graph.facebook.com/PublicStorage/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1156045", "shop": "storage_rental"}, "addTags": {"brand": "Public Storage", "brand:wikidata": "Q1156045", "brand:wikipedia": "en:Public Storage", "name": "Public Storage", "shop": "storage_rental"}, "countryCodes": ["ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, + "shop/storage_rental/U-Haul": {"name": "U-Haul", "icon": "temaki-storage_rental", "imageURL": "https://graph.facebook.com/uhaul/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q7862902", "shop": "storage_rental"}, "addTags": {"brand": "U-Haul", "brand:wikidata": "Q7862902", "brand:wikipedia": "en:U-Haul", "name": "U-Haul", "shop": "storage_rental"}, "countryCodes": ["ca", "us"], "terms": ["uhaul neighborhood dealer"], "matchScore": 2, "suggestion": true}, "shop/supermarket/8 à Huit": {"name": "8 à Huit", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/fashion8a8/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2818601", "shop": "supermarket"}, "addTags": {"brand": "8 à Huit", "brand:wikidata": "Q2818601", "brand:wikipedia": "fr:8 à Huit", "name": "8 à Huit", "shop": "supermarket"}, "terms": [], "matchScore": 2, "suggestion": true}, "shop/supermarket/99 Ranch Market": {"name": "99 Ranch Market", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/99RanchMarket/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q4646307", "shop": "supermarket"}, "addTags": {"brand": "99 Ranch Market", "brand:wikidata": "Q4646307", "brand:wikipedia": "en:99 Ranch Market", "cuisine": "asian", "name": "99 Ranch Market", "name:en": "99 Ranch Market", "name:zh-Hans": "大华超级市场", "name:zh-Hant": "大華超級市場", "shop": "supermarket"}, "countryCodes": ["us"], "terms": ["99 ranch", "ranch 99"], "matchScore": 2, "suggestion": true}, "shop/supermarket/A&O": {"name": "A&O", "icon": "maki-grocery", "imageURL": "https://graph.facebook.com/www.aeo.it/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q3600279", "shop": "supermarket"}, "addTags": {"brand": "A&O", "brand:wikidata": "Q3600279", "brand:wikipedia": "it:A&O", "name": "A&O", "shop": "supermarket"}, "countryCodes": ["it"], "terms": [], "matchScore": 2, "suggestion": true}, diff --git a/data/presets/presets/amenity/animal_boarding.json b/data/presets/presets/amenity/animal_boarding.json index 519afc83bd..2c3efd4232 100644 --- a/data/presets/presets/amenity/animal_boarding.json +++ b/data/presets/presets/amenity/animal_boarding.json @@ -1,5 +1,5 @@ { - "icon": "maki-veterinary", + "icon": "temaki-dog_shelter", "fields": [ "name", "operator", diff --git a/data/presets/presets/amenity/animal_shelter.json b/data/presets/presets/amenity/animal_shelter.json index f3ac8bcb4f..986de58b67 100644 --- a/data/presets/presets/amenity/animal_shelter.json +++ b/data/presets/presets/amenity/animal_shelter.json @@ -1,5 +1,5 @@ { - "icon": "maki-veterinary", + "icon": "temaki-dog_shelter", "fields": [ "name", "operator", diff --git a/data/presets/presets/amenity/bicycle_parking/lockers.json b/data/presets/presets/amenity/bicycle_parking/lockers.json index ba78e01879..4d5c751316 100644 --- a/data/presets/presets/amenity/bicycle_parking/lockers.json +++ b/data/presets/presets/amenity/bicycle_parking/lockers.json @@ -1,5 +1,5 @@ { - "icon": "maki-bicycle", + "icon": "temaki-bicycle_box", "geometry": [ "point", "vertex", diff --git a/data/presets/presets/amenity/bicycle_rental.json b/data/presets/presets/amenity/bicycle_rental.json index d76175bd8d..a6286a5c5d 100644 --- a/data/presets/presets/amenity/bicycle_rental.json +++ b/data/presets/presets/amenity/bicycle_rental.json @@ -1,5 +1,5 @@ { - "icon": "maki-bicycle", + "icon": "temaki-bicycle_rental", "fields": [ "capacity", "network", diff --git a/data/presets/presets/amenity/boat_rental.json b/data/presets/presets/amenity/boat_rental.json index b7c4be7242..8652643e6d 100644 --- a/data/presets/presets/amenity/boat_rental.json +++ b/data/presets/presets/amenity/boat_rental.json @@ -1,5 +1,5 @@ { - "icon": "temaki-boating", + "icon": "temaki-boat_rental", "fields": [ "name", "operator", diff --git a/data/presets/presets/amenity/shelter/lean_to.json b/data/presets/presets/amenity/shelter/lean_to.json index db6e3e75ab..9a0563010e 100644 --- a/data/presets/presets/amenity/shelter/lean_to.json +++ b/data/presets/presets/amenity/shelter/lean_to.json @@ -1,5 +1,5 @@ { - "icon": "maki-shelter", + "icon": "temaki-sleep_shelter", "fields": [ "name", "operator", diff --git a/data/presets/presets/amenity/shelter/picnic_shelter.json b/data/presets/presets/amenity/shelter/picnic_shelter.json index ff048a1a84..bd4211b6e7 100644 --- a/data/presets/presets/amenity/shelter/picnic_shelter.json +++ b/data/presets/presets/amenity/shelter/picnic_shelter.json @@ -1,5 +1,5 @@ { - "icon": "maki-shelter", + "icon": "temaki-picnic_shelter", "fields": [ "name", "shelter_type", diff --git a/data/presets/presets/amenity/shelter/public_transport.json b/data/presets/presets/amenity/shelter/public_transport.json index 0394719a12..3dc28cc2d8 100644 --- a/data/presets/presets/amenity/shelter/public_transport.json +++ b/data/presets/presets/amenity/shelter/public_transport.json @@ -1,5 +1,5 @@ { - "icon": "maki-shelter", + "icon": "temaki-transit_shelter", "fields": [ "name", "shelter_type", diff --git a/data/presets/presets/barrier/cattle_grid.json b/data/presets/presets/barrier/cattle_grid.json index 7dfbfc0fa4..f264630818 100644 --- a/data/presets/presets/barrier/cattle_grid.json +++ b/data/presets/presets/barrier/cattle_grid.json @@ -1,5 +1,5 @@ { - "icon": "maki-barrier", + "icon": "temaki-cattle_grid", "geometry": [ "vertex" ], diff --git a/data/presets/presets/barrier/chain.json b/data/presets/presets/barrier/chain.json index 6145addc62..7cf75e74b0 100644 --- a/data/presets/presets/barrier/chain.json +++ b/data/presets/presets/barrier/chain.json @@ -1,5 +1,5 @@ { - "icon": "maki-barrier", + "icon": "temaki-rope_fence", "fields": [ "access" ], diff --git a/data/presets/presets/barrier/gate.json b/data/presets/presets/barrier/gate.json index 8c2cceeb73..5bcad4b4b8 100644 --- a/data/presets/presets/barrier/gate.json +++ b/data/presets/presets/barrier/gate.json @@ -1,5 +1,5 @@ { - "icon": "maki-barrier", + "icon": "temaki-gate", "fields": [ "access", "opening_hours" diff --git a/data/presets/presets/barrier/kissing_gate.json b/data/presets/presets/barrier/kissing_gate.json index c6569cd70e..622cbc44dc 100644 --- a/data/presets/presets/barrier/kissing_gate.json +++ b/data/presets/presets/barrier/kissing_gate.json @@ -1,5 +1,5 @@ { - "icon": "maki-barrier", + "icon": "temaki-gate", "fields": [ "access" ], diff --git a/data/presets/presets/barrier/turnstile.json b/data/presets/presets/barrier/turnstile.json index df3a2ef7bb..8da4a0db0c 100644 --- a/data/presets/presets/barrier/turnstile.json +++ b/data/presets/presets/barrier/turnstile.json @@ -1,5 +1,5 @@ { - "icon": "maki-roadblock", + "icon": "temaki-turnstile", "fields": [ "access" ], diff --git a/data/presets/presets/building/barn.json b/data/presets/presets/building/barn.json index 93bed9e47c..780f32e91a 100644 --- a/data/presets/presets/building/barn.json +++ b/data/presets/presets/building/barn.json @@ -1,5 +1,5 @@ { - "icon": "maki-farm", + "icon": "temaki-barn", "geometry": [ "area" ], diff --git a/data/presets/presets/leisure/firepit.json b/data/presets/presets/leisure/firepit.json index cbe1652585..59f46b5cba 100644 --- a/data/presets/presets/leisure/firepit.json +++ b/data/presets/presets/leisure/firepit.json @@ -1,5 +1,5 @@ { - "icon": "maki-fire-station", + "icon": "temaki-campfire", "fields": [ "access_simple" ], diff --git a/data/presets/presets/man_made/water_tower.json b/data/presets/presets/man_made/water_tower.json index 225e3b2544..a16f17adc4 100644 --- a/data/presets/presets/man_made/water_tower.json +++ b/data/presets/presets/man_made/water_tower.json @@ -1,5 +1,5 @@ { - "icon": "maki-water", + "icon": "temaki-water_tower", "fields": [ "operator", "height" diff --git a/data/presets/presets/shop/storage_rental.json b/data/presets/presets/shop/storage_rental.json index 1c3148e0b6..c0aa71cd04 100644 --- a/data/presets/presets/shop/storage_rental.json +++ b/data/presets/presets/shop/storage_rental.json @@ -1,5 +1,5 @@ { - "icon": "fas-warehouse", + "icon": "temaki-storage_rental", "geometry": [ "point", "area" diff --git a/data/taginfo.json b/data/taginfo.json index da2f76aa92..d55527d0f4 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -68,9 +68,9 @@ {"key": "amenity", "value": "register_office", "description": "🄿 Register Office (unsearchable), 🄳 ➜ office=government + government=register_office", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/town-hall-15.svg"}, {"key": "amenity", "value": "scrapyard", "description": "🄿 Scrap Yard (unsearchable), 🄳 ➜ landuse=industrial + industrial=scrap_yard", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/car-15.svg"}, {"key": "amenity", "value": "swimming_pool", "description": "🄿 Swimming Pool (unsearchable), 🄳 ➜ leisure=swimming_pool", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD@master/svg/fontawesome/fas-swimmer.svg"}, - {"key": "amenity", "value": "animal_boarding", "description": "🄿 Animal Boarding Facility", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/veterinary-15.svg"}, + {"key": "amenity", "value": "animal_boarding", "description": "🄿 Animal Boarding Facility", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/dog_shelter.svg"}, {"key": "amenity", "value": "animal_breeding", "description": "🄿 Animal Breeding Facility", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/veterinary-15.svg"}, - {"key": "amenity", "value": "animal_shelter", "description": "🄿 Animal Shelter", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/veterinary-15.svg"}, + {"key": "amenity", "value": "animal_shelter", "description": "🄿 Animal Shelter", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/dog_shelter.svg"}, {"key": "amenity", "value": "arts_centre", "description": "🄿 Arts Center", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/theatre-15.svg"}, {"key": "amenity", "value": "atm", "description": "🄿 ATM", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/bank-15.svg"}, {"key": "amenity", "value": "bank", "description": "🄿 Bank", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/bank-15.svg"}, @@ -80,12 +80,12 @@ {"key": "amenity", "value": "bench", "description": "🄿 Bench", "object_types": ["node", "way"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/bench.svg"}, {"key": "amenity", "value": "bicycle_parking", "description": "🄿 Bicycle Parking", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/bicycle-15.svg"}, {"key": "bicycle_parking", "value": "building", "description": "🄿 Bicycle Parking Garage", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/bicycle-15.svg"}, - {"key": "bicycle_parking", "value": "lockers", "description": "🄿 Bicycle Lockers", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/bicycle-15.svg"}, + {"key": "bicycle_parking", "value": "lockers", "description": "🄿 Bicycle Lockers", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/bicycle_box.svg"}, {"key": "bicycle_parking", "value": "shed", "description": "🄿 Bicycle Shed", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/bicycle-15.svg"}, - {"key": "amenity", "value": "bicycle_rental", "description": "🄿 Bicycle Rental", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/bicycle-15.svg"}, + {"key": "amenity", "value": "bicycle_rental", "description": "🄿 Bicycle Rental", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/bicycle_rental.svg"}, {"key": "amenity", "value": "bicycle_repair_station", "description": "🄿 Bicycle Repair Tool Stand", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/bicycle-15.svg"}, {"key": "amenity", "value": "biergarten", "description": "🄿 Biergarten", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD@master/svg/fontawesome/fas-beer.svg"}, - {"key": "amenity", "value": "boat_rental", "description": "🄿 Boat Rental", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/boating.svg"}, + {"key": "amenity", "value": "boat_rental", "description": "🄿 Boat Rental", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/boat_rental.svg"}, {"key": "amenity", "value": "bureau_de_change", "description": "🄿 Currency Exchange", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/money_hand.svg"}, {"key": "amenity", "value": "cafe", "description": "🄿 Cafe", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/cafe-15.svg"}, {"key": "amenity", "value": "car_pooling", "description": "🄿 Car Pooling", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/car-15.svg"}, @@ -209,9 +209,9 @@ {"key": "amenity", "value": "school", "description": "🄿 School Grounds", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/school.svg"}, {"key": "amenity", "value": "shelter", "description": "🄿 Shelter", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shelter-15.svg"}, {"key": "shelter_type", "value": "gazebo", "description": "🄿 Gazebo", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shelter-15.svg"}, - {"key": "shelter_type", "value": "lean_to", "description": "🄿 Lean-To", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shelter-15.svg"}, - {"key": "shelter_type", "value": "picnic_shelter", "description": "🄿 Picnic Shelter", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shelter-15.svg"}, - {"key": "shelter_type", "value": "public_transport", "description": "🄿 Transit Shelter", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shelter-15.svg"}, + {"key": "shelter_type", "value": "lean_to", "description": "🄿 Lean-To", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/sleep_shelter.svg"}, + {"key": "shelter_type", "value": "picnic_shelter", "description": "🄿 Picnic Shelter", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/picnic_shelter.svg"}, + {"key": "shelter_type", "value": "public_transport", "description": "🄿 Transit Shelter", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/transit_shelter.svg"}, {"key": "amenity", "value": "shower", "description": "🄿 Shower", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/shower.svg"}, {"key": "amenity", "value": "smoking_area", "description": "🄿 Smoking Area", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD@master/svg/fontawesome/fas-smoking.svg"}, {"key": "amenity", "value": "social_centre", "description": "🄿 Social Center", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD@master/svg/fontawesome/fas-handshake.svg"}, @@ -293,14 +293,14 @@ {"key": "barrier", "value": "block", "description": "🄿 Block", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD@master/svg/fontawesome/fas-cube.svg"}, {"key": "barrier", "value": "bollard", "description": "🄿 Bollard Row, 🄿 Bollard", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/silo.svg"}, {"key": "barrier", "value": "border_control", "description": "🄿 Border Control", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/roadblock-15.svg"}, - {"key": "barrier", "value": "cattle_grid", "description": "🄿 Cattle Grid", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/barrier-15.svg"}, - {"key": "barrier", "value": "chain", "description": "🄿 Chain", "object_types": ["node", "way"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/barrier-15.svg"}, + {"key": "barrier", "value": "cattle_grid", "description": "🄿 Cattle Grid", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/cattle_grid.svg"}, + {"key": "barrier", "value": "chain", "description": "🄿 Chain", "object_types": ["node", "way"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/rope_fence.svg"}, {"key": "barrier", "value": "city_wall", "description": "🄿 City Wall", "object_types": ["way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/wall.svg"}, {"key": "barrier", "value": "cycle_barrier", "description": "🄿 Cycle Barrier", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/roadblock-15.svg"}, {"key": "barrier", "value": "ditch", "description": "🄿 Trench", "object_types": ["way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/roadblock-15.svg"}, {"key": "barrier", "value": "fence", "description": "🄿 Fence", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/fence-15.svg"}, {"key": "fence_type", "value": "railing", "description": "🄿 Railing", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/railing.svg"}, - {"key": "barrier", "value": "gate", "description": "🄿 Gate", "object_types": ["node", "way"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/barrier-15.svg"}, + {"key": "barrier", "value": "gate", "description": "🄿 Gate", "object_types": ["node", "way"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/gate.svg"}, {"key": "barrier", "value": "guard_rail", "description": "🄿 Guard Rail", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/guard_rail.svg"}, {"key": "barrier", "value": "hedge", "description": "🄿 Hedge", "object_types": ["way", "area"]}, {"key": "barrier", "value": "height_restrictor", "description": "🄿 Height Restrictor", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/car_wash.svg"}, @@ -309,13 +309,13 @@ {"key": "kerb", "value": "lowered", "description": "🄿 Lowered Curb", "object_types": ["node", "way"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/kerb-lowered.svg"}, {"key": "kerb", "value": "raised", "description": "🄿 Raised Curb", "object_types": ["node", "way"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/kerb-raised.svg"}, {"key": "kerb", "value": "rolled", "description": "🄿 Rolled Curb", "object_types": ["node", "way"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/kerb-rolled.svg"}, - {"key": "barrier", "value": "kissing_gate", "description": "🄿 Kissing Gate", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/barrier-15.svg"}, + {"key": "barrier", "value": "kissing_gate", "description": "🄿 Kissing Gate", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/gate.svg"}, {"key": "barrier", "value": "lift_gate", "description": "🄿 Lift Gate", "object_types": ["node", "way"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/lift_gate.svg"}, {"key": "barrier", "value": "retaining_wall", "description": "🄿 Retaining Wall", "object_types": ["way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/wall.svg"}, {"key": "barrier", "value": "sally_port", "description": "🄿 Sally Port", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD@master/svg/fontawesome/fas-dungeon.svg"}, {"key": "barrier", "value": "stile", "description": "🄿 Stile", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/roadblock-15.svg"}, {"key": "barrier", "value": "toll_booth", "description": "🄿 Toll Booth", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/roadblock-15.svg"}, - {"key": "barrier", "value": "turnstile", "description": "🄿 Turnstile", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/roadblock-15.svg"}, + {"key": "barrier", "value": "turnstile", "description": "🄿 Turnstile", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/turnstile.svg"}, {"key": "barrier", "value": "wall", "description": "🄿 Wall", "object_types": ["way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/wall.svg"}, {"key": "wall", "value": "noise_barrier", "description": "🄿 Noise Barrier", "object_types": ["way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/wall.svg"}, {"key": "boundary", "value": "administrative", "description": "🄿 Administrative Boundary", "object_types": ["way"]}, @@ -326,7 +326,7 @@ {"key": "building", "value": "entrance", "description": "🄿 Entrance/Exit (unsearchable), 🄳 ➜ entrance=*", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/entrance-alt1-15.svg"}, {"key": "building", "value": "train_station", "description": "🄿 Train Station Building (unsearchable)", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/building-15.svg"}, {"key": "building", "value": "apartments", "description": "🄿 Apartment Building", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/building-15.svg"}, - {"key": "building", "value": "barn", "description": "🄿 Barn", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/farm-15.svg"}, + {"key": "building", "value": "barn", "description": "🄿 Barn", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/barn.svg"}, {"key": "building", "value": "boathouse", "description": "🄿 Boathouse", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/harbor-15.svg"}, {"key": "building", "value": "bungalow", "description": "🄿 Bungalow", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/home-15.svg"}, {"key": "building", "value": "cabin", "description": "🄿 Cabin", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/home-15.svg"}, @@ -622,7 +622,7 @@ {"key": "leisure", "value": "disc_golf_course", "description": "🄿 Disc Golf Course", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/disc_golf_basket.svg"}, {"key": "leisure", "value": "dog_park", "description": "🄿 Dog Park", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/dog-park-15.svg"}, {"key": "leisure", "value": "escape_game", "description": "🄿 Escape Room", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD@master/svg/fontawesome/fas-puzzle-piece.svg"}, - {"key": "leisure", "value": "firepit", "description": "🄿 Firepit", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/fire-station-15.svg"}, + {"key": "leisure", "value": "firepit", "description": "🄿 Firepit", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/campfire.svg"}, {"key": "leisure", "value": "fishing", "description": "🄿 Fishing Spot", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD@master/svg/fontawesome/fas-fish.svg"}, {"key": "leisure", "value": "fitness_centre", "description": "🄿 Gym / Fitness Center", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD@master/svg/fontawesome/fas-dumbbell.svg"}, {"key": "sport", "value": "yoga", "description": "🄿 Yoga Studio", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/pitch-15.svg"}, @@ -747,7 +747,7 @@ {"key": "man_made", "value": "utility_pole", "description": "🄿 Utility Pole", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/utility_pole.svg"}, {"key": "man_made", "value": "wastewater_plant", "description": "🄿 Wastewater Plant", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/waste.svg"}, {"key": "man_made", "value": "water_tap", "description": "🄿 Water Tap", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/drinking-water-15.svg"}, - {"key": "man_made", "value": "water_tower", "description": "🄿 Water Tower", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/water-15.svg"}, + {"key": "man_made", "value": "water_tower", "description": "🄿 Water Tower", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/water_tower.svg"}, {"key": "man_made", "value": "water_well", "description": "🄿 Water Well", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/water-15.svg"}, {"key": "man_made", "value": "water_works", "description": "🄿 Water Works", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/water-15.svg"}, {"key": "man_made", "value": "watermill", "description": "🄿 Watermill", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/watermill-15.svg"}, @@ -1080,7 +1080,7 @@ {"key": "shop", "value": "spices", "description": "🄿 Spice Shop", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"}, {"key": "shop", "value": "sports", "description": "🄿 Sporting Goods Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD@master/svg/fontawesome/fas-futbol.svg"}, {"key": "shop", "value": "stationery", "description": "🄿 Stationery Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD@master/svg/fontawesome/fas-paperclip.svg"}, - {"key": "shop", "value": "storage_rental", "description": "🄿 Storage Rental", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD@master/svg/fontawesome/fas-warehouse.svg"}, + {"key": "shop", "value": "storage_rental", "description": "🄿 Storage Rental", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/storage_rental.svg"}, {"key": "shop", "value": "supermarket", "description": "🄿 Supermarket", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/grocery-15.svg"}, {"key": "shop", "value": "swimming_pool", "description": "🄿 Pool Supply Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD@master/svg/fontawesome/fas-swimmer.svg"}, {"key": "shop", "value": "tailor", "description": "🄿 Tailor", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/clothing-store-15.svg"}, diff --git a/package.json b/package.json index 4457497b4d..255dec09f3 100644 --- a/package.json +++ b/package.json @@ -101,7 +101,7 @@ "smash": "0.0", "static-server": "^2.2.1", "svg-sprite": "1.5.0", - "temaki": "~2.1.0", + "temaki": "~2.2.0", "uglify-js": "~3.6.6" }, "greenkeeper": { From 8d02a1aad8041a2b6c0035327097d4657f5fd670 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 26 Nov 2019 17:38:12 -0500 Subject: [PATCH 758/774] Don't use temaki-dog_shelter icon for shelters and boarding facilities since those are a different type of shelter than other shelter presets --- data/presets/presets.json | 6 +++--- data/presets/presets/amenity/animal_boarding.json | 2 +- data/presets/presets/amenity/animal_shelter.json | 2 +- data/taginfo.json | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/data/presets/presets.json b/data/presets/presets.json index d6511a09da..9a918ec5dd 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -65,9 +65,9 @@ "amenity/register_office": {"icon": "maki-town-hall", "fields": ["name", "address", "building_area", "opening_hours", "operator"], "geometry": ["point", "area"], "tags": {"amenity": "register_office"}, "reference": {"key": "government", "value": "register_office"}, "name": "Register Office", "searchable": false}, "amenity/scrapyard": {"icon": "maki-car", "fields": ["name", "operator", "address", "opening_hours"], "geometry": ["point", "area"], "tags": {"amenity": "scrapyard"}, "reference": {"key": "industrial", "value": "scrap_yard"}, "name": "Scrap Yard", "searchable": false}, "amenity/swimming_pool": {"icon": "fas-swimmer", "geometry": ["point", "vertex", "area"], "tags": {"amenity": "swimming_pool"}, "reference": {"key": "leisure", "value": "swimming_pool"}, "name": "Swimming Pool", "searchable": false}, - "amenity/animal_boarding": {"icon": "temaki-dog_shelter", "fields": ["name", "operator", "address", "building_area", "opening_hours", "animal_boarding"], "moreFields": ["email", "fax", "level", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["boarding", "cat", "cattery", "dog", "horse", "kennel", "kitten", "pet", "pet boarding", "pet care", "pet hotel", "puppy", "reptile"], "tags": {"amenity": "animal_boarding"}, "name": "Animal Boarding Facility"}, + "amenity/animal_boarding": {"icon": "maki-veterinary", "fields": ["name", "operator", "address", "building_area", "opening_hours", "animal_boarding"], "moreFields": ["email", "fax", "level", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["boarding", "cat", "cattery", "dog", "horse", "kennel", "kitten", "pet", "pet boarding", "pet care", "pet hotel", "puppy", "reptile"], "tags": {"amenity": "animal_boarding"}, "name": "Animal Boarding Facility"}, "amenity/animal_breeding": {"icon": "maki-veterinary", "fields": ["name", "operator", "address", "building_area", "opening_hours", "animal_breeding"], "moreFields": ["email", "fax", "level", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["breeding", "bull", "cat", "cow", "dog", "horse", "husbandry", "kitten", "livestock", "pet breeding", "puppy", "reptile"], "tags": {"amenity": "animal_breeding"}, "name": "Animal Breeding Facility"}, - "amenity/animal_shelter": {"icon": "temaki-dog_shelter", "fields": ["name", "operator", "address", "building_area", "opening_hours", "animal_shelter"], "moreFields": ["email", "fax", "level", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["adoption", "aspca", "cat", "dog", "horse", "kitten", "pet care", "pet rescue", "puppy", "raptor", "reptile", "rescue", "spca", "pound"], "tags": {"amenity": "animal_shelter"}, "name": "Animal Shelter"}, + "amenity/animal_shelter": {"icon": "maki-veterinary", "fields": ["name", "operator", "address", "building_area", "opening_hours", "animal_shelter"], "moreFields": ["email", "fax", "level", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["adoption", "aspca", "cat", "dog", "horse", "kitten", "pet care", "pet rescue", "puppy", "raptor", "reptile", "rescue", "spca", "pound"], "tags": {"amenity": "animal_shelter"}, "name": "Animal Shelter"}, "amenity/arts_centre": {"icon": "maki-theatre", "fields": ["name", "address", "building_area", "opening_hours", "website"], "moreFields": ["charge_fee", "email", "fax", "fee", "internet_access", "internet_access/fee", "internet_access/ssid", "level", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": [], "tags": {"amenity": "arts_centre"}, "name": "Arts Center"}, "amenity/atm": {"icon": "maki-bank", "fields": ["operator", "network", "cash_in", "currency_multi", "drive_through"], "moreFields": ["brand", "covered", "height", "indoor", "level", "lit", "manufacturer", "name", "opening_hours", "wheelchair"], "geometry": ["point", "vertex"], "terms": ["money", "cash", "machine"], "tags": {"amenity": "atm"}, "name": "ATM"}, "amenity/bank": {"icon": "maki-bank", "fields": ["name", "operator", "address", "building_area", "atm", "drive_through"], "moreFields": ["air_conditioning", "currency_multi", "email", "fax", "internet_access", "internet_access/fee", "internet_access/ssid", "level", "opening_hours", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["credit union", "check", "deposit", "fund", "investment", "repository", "reserve", "safe", "savings", "stock", "treasury", "trust", "vault"], "tags": {"amenity": "bank"}, "name": "Bank"}, @@ -1268,7 +1268,7 @@ "waterway/water_point": {"icon": "maki-drinking-water", "fields": ["{amenity/water_point}"], "moreFields": ["{amenity/water_point}"], "geometry": ["area", "vertex", "point"], "tags": {"waterway": "water_point"}, "terms": ["water faucet", "water point", "water tap", "water source", "water spigot"], "name": "Marine Drinking Water"}, "waterway/waterfall": {"icon": "maki-waterfall", "fields": ["name", "height", "width", "intermittent"], "geometry": ["vertex"], "terms": ["fall"], "tags": {"waterway": "waterfall"}, "name": "Waterfall"}, "waterway/weir": {"icon": "maki-dam", "fields": ["name", "operator", "height", "material"], "moreFields": ["seamark/type"], "geometry": ["vertex", "line"], "terms": ["low-head dam", "low-rise dam", "wier"], "tags": {"waterway": "weir"}, "name": "Weir"}, - "amenity/animal_boarding/PetsHotel": {"name": "PetsHotel", "icon": "temaki-dog_shelter", "imageURL": "https://graph.facebook.com/PetSmart/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q67141961", "amenity": "animal_boarding"}, "addTags": {"amenity": "animal_boarding", "animal_boarding": "dog;cat", "brand": "PetsHotel", "brand:wikidata": "Q67141961", "name": "PetsHotel"}, "countryCodes": ["ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/animal_boarding/PetsHotel": {"name": "PetsHotel", "icon": "maki-veterinary", "imageURL": "https://graph.facebook.com/PetSmart/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q67141961", "amenity": "animal_boarding"}, "addTags": {"amenity": "animal_boarding", "animal_boarding": "dog;cat", "brand": "PetsHotel", "brand:wikidata": "Q67141961", "name": "PetsHotel"}, "countryCodes": ["ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/ABANCA": {"name": "ABANCA", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/SomosAbanca/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q9598744", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "ABANCA", "brand:wikidata": "Q9598744", "brand:wikipedia": "es:Abanca", "name": "ABANCA", "official_name": "ABANCA Corporación Bancaria"}, "countryCodes": ["es"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/ABN AMRO": {"name": "ABN AMRO", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/abnamro/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q287471", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "ABN AMRO", "brand:wikidata": "Q287471", "brand:wikipedia": "en:ABN AMRO", "name": "ABN AMRO", "official_name": "ABN AMRO Bank N.V."}, "countryCodes": ["nl"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/ABSA": {"name": "ABSA", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/AbsaSouthAfrica/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q331688", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "ABSA", "brand:wikidata": "Q331688", "brand:wikipedia": "en:ABSA Group Limited", "name": "ABSA"}, "countryCodes": ["za"], "terms": [], "matchScore": 2, "suggestion": true}, diff --git a/data/presets/presets/amenity/animal_boarding.json b/data/presets/presets/amenity/animal_boarding.json index 2c3efd4232..519afc83bd 100644 --- a/data/presets/presets/amenity/animal_boarding.json +++ b/data/presets/presets/amenity/animal_boarding.json @@ -1,5 +1,5 @@ { - "icon": "temaki-dog_shelter", + "icon": "maki-veterinary", "fields": [ "name", "operator", diff --git a/data/presets/presets/amenity/animal_shelter.json b/data/presets/presets/amenity/animal_shelter.json index 986de58b67..f3ac8bcb4f 100644 --- a/data/presets/presets/amenity/animal_shelter.json +++ b/data/presets/presets/amenity/animal_shelter.json @@ -1,5 +1,5 @@ { - "icon": "temaki-dog_shelter", + "icon": "maki-veterinary", "fields": [ "name", "operator", diff --git a/data/taginfo.json b/data/taginfo.json index d55527d0f4..5a5e6e30ca 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -68,9 +68,9 @@ {"key": "amenity", "value": "register_office", "description": "🄿 Register Office (unsearchable), 🄳 ➜ office=government + government=register_office", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/town-hall-15.svg"}, {"key": "amenity", "value": "scrapyard", "description": "🄿 Scrap Yard (unsearchable), 🄳 ➜ landuse=industrial + industrial=scrap_yard", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/car-15.svg"}, {"key": "amenity", "value": "swimming_pool", "description": "🄿 Swimming Pool (unsearchable), 🄳 ➜ leisure=swimming_pool", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD@master/svg/fontawesome/fas-swimmer.svg"}, - {"key": "amenity", "value": "animal_boarding", "description": "🄿 Animal Boarding Facility", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/dog_shelter.svg"}, + {"key": "amenity", "value": "animal_boarding", "description": "🄿 Animal Boarding Facility", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/veterinary-15.svg"}, {"key": "amenity", "value": "animal_breeding", "description": "🄿 Animal Breeding Facility", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/veterinary-15.svg"}, - {"key": "amenity", "value": "animal_shelter", "description": "🄿 Animal Shelter", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/dog_shelter.svg"}, + {"key": "amenity", "value": "animal_shelter", "description": "🄿 Animal Shelter", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/veterinary-15.svg"}, {"key": "amenity", "value": "arts_centre", "description": "🄿 Arts Center", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/theatre-15.svg"}, {"key": "amenity", "value": "atm", "description": "🄿 ATM", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/bank-15.svg"}, {"key": "amenity", "value": "bank", "description": "🄿 Bank", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/bank-15.svg"}, From b9f41bb48cb152752c254ffd8c266b63b512f2f6 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Wed, 27 Nov 2019 10:53:24 -0500 Subject: [PATCH 759/774] Add workaround for missing `ArrayBuffer.isView` in PhantomJS (closes #7072) --- package.json | 4 ++-- test/spec/phantom.js | 3 +++ test/spec/spec_helpers.js | 5 +++++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 255dec09f3..f23749f0f7 100644 --- a/package.json +++ b/package.json @@ -28,9 +28,9 @@ "imagery": "node data/update_imagery", "lint": "eslint *.js test/spec modules", "start": "node --max-old-space-size=4096 server.js", - "phantom": "phantomjs --web-security=no node_modules/mocha-phantomjs-core/mocha-phantomjs-core.js test/phantom.html spec", "test": "npm-run-all -s lint build test:**", - "test:phantom": "phantomjs --web-security=no node_modules/mocha-phantomjs-core/mocha-phantomjs-core.js test/index.html spec", + "test:phantom": "phantomjs --web-security=no node_modules/mocha-phantomjs-core/mocha-phantomjs-core.js test/phantom.html spec", + "test:iD": "phantomjs --web-security=no node_modules/mocha-phantomjs-core/mocha-phantomjs-core.js test/index.html spec", "translations": "node data/update_locales" }, "dependencies": { diff --git a/test/spec/phantom.js b/test/spec/phantom.js index 6d0616e0d9..2fe8360a65 100644 --- a/test/spec/phantom.js +++ b/test/spec/phantom.js @@ -4,4 +4,7 @@ describe('test some capabilities of PhantomJS', function () { var result = Array.from(s); expect(result).to.eql([1]); }); + it('has ArrayBuffer.isView', function () { + expect(typeof ArrayBuffer.isView).to.eql('function'); + }); }); diff --git a/test/spec/spec_helpers.js b/test/spec/spec_helpers.js index f4c897f44e..b5beec3c59 100644 --- a/test/spec/spec_helpers.js +++ b/test/spec/spec_helpers.js @@ -52,6 +52,11 @@ Array.from = function(what) { } }; +// Workaround for `ArrayBuffer.isView` in PhantomJS +// https://github.com/openstreetmap/iD/issues/7072 +if (typeof ArrayBuffer.isView === 'undefined') { + ArrayBuffer.isView = function() { return false; }; +} // Add support for sinon-stubbing `fetch` API // (sinon fakeServer works only on `XMLHttpRequest`) From 0e7d888176ced1b0c3d088d54d5919abc10be44a Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 27 Nov 2019 23:16:36 -0500 Subject: [PATCH 760/774] Update temaki to v2.3.0 (close #7074) Update various preset icons for temaki 2.3.0 Add term to stable preset Increase matchScore of Boatbuilder preset --- data/presets.yaml | 1 + data/presets/presets.json | 98 +++++++++---------- data/presets/presets/aeroway/jet_bridge.json | 2 +- data/presets/presets/amenity/_scrapyard.json | 2 +- .../amenity/bicycle_parking/building.json | 2 +- .../amenity/bicycle_repair_station.json | 2 +- data/presets/presets/amenity/car_pooling.json | 2 +- data/presets/presets/amenity/car_sharing.json | 2 +- .../presets/amenity/parking/multi-storey.json | 2 +- .../presets/amenity/parking/park_ride.json | 2 +- .../presets/amenity/parking/underground.json | 2 +- .../presets/barrier/height_restrictor.json | 2 +- data/presets/presets/building/stable.json | 5 +- data/presets/presets/craft/basket_maker.json | 2 +- data/presets/presets/craft/boatbuilder.json | 4 +- data/presets/presets/craft/handicraft.json | 2 +- data/presets/presets/craft/pottery.json | 2 +- data/presets/presets/highway/corridor.json | 2 +- .../highway/crossing/_zebra-raised.json | 2 +- .../presets/highway/crossing/_zebra.json | 2 +- .../highway/crossing/marked-raised.json | 2 +- .../presets/highway/crossing/marked.json | 2 +- .../presets/highway/cycleway/_crossing.json | 2 +- .../highway/cycleway/bicycle_foot.json | 2 +- .../highway/cycleway/crossing/marked.json | 2 +- .../highway/footway/_zebra-raised.json | 2 +- .../presets/highway/footway/_zebra.json | 2 +- .../highway/footway/marked-raised.json | 2 +- .../presets/highway/footway/marked.json | 2 +- .../presets/historic/memorial/plaque.json | 2 +- .../landuse/industrial/scrap_yard.json | 2 +- data/presets/presets/man_made/pier.json | 2 +- .../presets/man_made/pier/floating.json | 2 +- .../public_transport/platform/aerialway.json | 2 +- .../public_transport/platform/bus.json | 2 +- .../public_transport/platform/ferry.json | 2 +- .../public_transport/platform/light_rail.json | 2 +- .../public_transport/platform/monorail.json | 2 +- .../public_transport/platform/subway.json | 2 +- .../public_transport/platform/train.json | 2 +- .../public_transport/platform/tram.json | 2 +- .../public_transport/platform/trolleybus.json | 2 +- .../presets/shop/motorcycle_repair.json | 2 +- .../presets/tourism/artwork/installation.json | 2 +- .../presets/tourism/artwork/sculpture.json | 2 +- data/taginfo.json | 56 +++++------ dist/locales/en.json | 2 +- package.json | 2 +- 48 files changed, 127 insertions(+), 123 deletions(-) diff --git a/data/presets.yaml b/data/presets.yaml index 881db5989c..4cb6ad6947 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -4243,6 +4243,7 @@ en: building/stable: # building=stable name: Stable + # 'terms: horse shelter' terms: '' building/stadium: # building=stadium diff --git a/data/presets/presets.json b/data/presets/presets.json index 9a918ec5dd..6433326685 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -48,7 +48,7 @@ "aeroway/hangar": {"icon": "fas-warehouse", "geometry": ["area"], "fields": ["name", "building_area"], "tags": {"aeroway": "hangar"}, "addTags": {"building": "hangar", "aeroway": "hangar"}, "name": "Hangar"}, "aeroway/helipad": {"icon": "maki-heliport", "geometry": ["point", "area"], "fields": ["name", "ref", "operator", "surface", "lit"], "moreFields": ["access_simple", "address", "charge_fee", "fee", "opening_hours"], "terms": ["helicopter", "helipad", "heliport"], "tags": {"aeroway": "helipad"}, "name": "Helipad"}, "aeroway/holding_position": {"icon": "maki-airport", "geometry": ["vertex"], "fields": ["ref"], "tags": {"aeroway": "holding_position"}, "name": "Aircraft Holding Position"}, - "aeroway/jet_bridge": {"icon": "temaki-pedestrian", "geometry": ["line"], "fields": ["ref_aeroway_gate", "width", "access_simple", "wheelchair"], "moreFields": ["manufacturer"], "terms": ["aerobridge", "air jetty", "airbridge", "finger", "gangway", "jet way", "jetway", "passenger boarding bridge", "PBB", "portal", "skybridge", "terminal gate connector"], "tags": {"aeroway": "jet_bridge"}, "addTags": {"aeroway": "jet_bridge", "highway": "corridor"}, "matchScore": 1.05, "name": "Jet Bridge"}, + "aeroway/jet_bridge": {"icon": "temaki-pedestrian_walled", "geometry": ["line"], "fields": ["ref_aeroway_gate", "width", "access_simple", "wheelchair"], "moreFields": ["manufacturer"], "terms": ["aerobridge", "air jetty", "airbridge", "finger", "gangway", "jet way", "jetway", "passenger boarding bridge", "PBB", "portal", "skybridge", "terminal gate connector"], "tags": {"aeroway": "jet_bridge"}, "addTags": {"aeroway": "jet_bridge", "highway": "corridor"}, "matchScore": 1.05, "name": "Jet Bridge"}, "aeroway/parking_position": {"icon": "maki-airport", "geometry": ["vertex", "point", "line"], "fields": ["ref"], "tags": {"aeroway": "parking_position"}, "name": "Aircraft Parking Position"}, "aeroway/runway": {"icon": "fas-plane-departure", "geometry": ["line", "area"], "terms": ["landing strip"], "fields": ["ref_runway", "surface", "length", "width"], "tags": {"aeroway": "runway"}, "name": "Runway"}, "aeroway/spaceport": {"icon": "fas-space-shuttle", "geometry": ["area", "point"], "fields": ["name", "operator", "access_simple", "website", "wikidata"], "moreFields": ["email", "fax", "internet_access", "internet_access/fee", "internet_access/ssid", "phone"], "terms": ["cosmodrome", "rocket launch center", "rocket launch complex", "rocket launch site", "rocket range", "space port"], "tags": {"aeroway": "spaceport"}, "name": "Spaceport"}, @@ -63,7 +63,7 @@ "amenity/nursing_home": {"icon": "maki-wheelchair", "fields": ["name", "operator", "address", "building_area", "social_facility", "social_facility_for", "opening_hours", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "nursing_home"}, "reference": {"key": "social_facility", "value": "nursing_home"}, "name": "Nursing Home", "searchable": false}, "amenity/recycling": {"icon": "maki-recycling", "fields": ["recycling_type", "recycling_accepts", "collection_times"], "geometry": ["point", "area"], "tags": {"amenity": "recycling"}, "name": "Recycling", "searchable": false}, "amenity/register_office": {"icon": "maki-town-hall", "fields": ["name", "address", "building_area", "opening_hours", "operator"], "geometry": ["point", "area"], "tags": {"amenity": "register_office"}, "reference": {"key": "government", "value": "register_office"}, "name": "Register Office", "searchable": false}, - "amenity/scrapyard": {"icon": "maki-car", "fields": ["name", "operator", "address", "opening_hours"], "geometry": ["point", "area"], "tags": {"amenity": "scrapyard"}, "reference": {"key": "industrial", "value": "scrap_yard"}, "name": "Scrap Yard", "searchable": false}, + "amenity/scrapyard": {"icon": "temaki-junk_car", "fields": ["name", "operator", "address", "opening_hours"], "geometry": ["point", "area"], "tags": {"amenity": "scrapyard"}, "reference": {"key": "industrial", "value": "scrap_yard"}, "name": "Scrap Yard", "searchable": false}, "amenity/swimming_pool": {"icon": "fas-swimmer", "geometry": ["point", "vertex", "area"], "tags": {"amenity": "swimming_pool"}, "reference": {"key": "leisure", "value": "swimming_pool"}, "name": "Swimming Pool", "searchable": false}, "amenity/animal_boarding": {"icon": "maki-veterinary", "fields": ["name", "operator", "address", "building_area", "opening_hours", "animal_boarding"], "moreFields": ["email", "fax", "level", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["boarding", "cat", "cattery", "dog", "horse", "kennel", "kitten", "pet", "pet boarding", "pet care", "pet hotel", "puppy", "reptile"], "tags": {"amenity": "animal_boarding"}, "name": "Animal Boarding Facility"}, "amenity/animal_breeding": {"icon": "maki-veterinary", "fields": ["name", "operator", "address", "building_area", "opening_hours", "animal_breeding"], "moreFields": ["email", "fax", "level", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["breeding", "bull", "cat", "cow", "dog", "horse", "husbandry", "kitten", "livestock", "pet breeding", "puppy", "reptile"], "tags": {"amenity": "animal_breeding"}, "name": "Animal Breeding Facility"}, @@ -76,18 +76,18 @@ "amenity/bbq": {"icon": "maki-bbq", "fields": ["covered", "fuel", "access_simple"], "moreFields": ["lit"], "geometry": ["point"], "terms": ["bbq", "grill"], "tags": {"amenity": "bbq"}, "name": "Barbecue/Grill"}, "amenity/bench": {"icon": "temaki-bench", "fields": ["backrest", "material", "seats", "colour"], "moreFields": ["access_simple", "height", "inscription", "level", "lit", "manufacturer", "operator"], "geometry": ["point", "vertex", "line"], "terms": ["seat", "chair"], "tags": {"amenity": "bench"}, "name": "Bench"}, "amenity/bicycle_parking": {"icon": "maki-bicycle", "fields": ["bicycle_parking", "capacity", "operator", "operator/type", "covered", "access_simple", "fee", "payment_multi_fee", "charge_fee"], "moreFields": ["colour", "indoor", "level", "lit"], "geometry": ["point", "vertex", "area"], "terms": ["bike", "cycle parking", "cycling"], "tags": {"amenity": "bicycle_parking"}, "name": "Bicycle Parking"}, - "amenity/bicycle_parking/building": {"icon": "maki-bicycle", "fields": ["{amenity/bicycle_parking}", "opening_hours", "building_area"], "geometry": ["point", "vertex", "area"], "tags": {"amenity": "bicycle_parking", "bicycle_parking": "building"}, "reference": {"key": "bicycle_parking"}, "terms": ["Bike Parking Station", "cycle parking", "cycling", "Multi-Storey Bicycle Park", "Multi-Storey Bike Park"], "name": "Bicycle Parking Garage"}, + "amenity/bicycle_parking/building": {"icon": "temaki-bicycle_structure", "fields": ["{amenity/bicycle_parking}", "opening_hours", "building_area"], "geometry": ["point", "vertex", "area"], "tags": {"amenity": "bicycle_parking", "bicycle_parking": "building"}, "reference": {"key": "bicycle_parking"}, "terms": ["Bike Parking Station", "cycle parking", "cycling", "Multi-Storey Bicycle Park", "Multi-Storey Bike Park"], "name": "Bicycle Parking Garage"}, "amenity/bicycle_parking/lockers": {"icon": "temaki-bicycle_box", "geometry": ["point", "vertex", "area"], "tags": {"amenity": "bicycle_parking", "bicycle_parking": "lockers"}, "reference": {"key": "bicycle_parking"}, "terms": ["cycle locker", "cycling", "Bike Lockers"], "name": "Bicycle Lockers"}, "amenity/bicycle_parking/shed": {"icon": "maki-bicycle", "fields": ["{amenity/bicycle_parking}", "building_area"], "geometry": ["point", "vertex", "area"], "tags": {"amenity": "bicycle_parking", "bicycle_parking": "shed"}, "reference": {"key": "bicycle_parking"}, "terms": ["cycle shed", "cycling", "Bike Shed"], "name": "Bicycle Shed"}, "amenity/bicycle_rental": {"icon": "temaki-bicycle_rental", "fields": ["capacity", "network", "operator", "operator/type", "fee", "payment_multi_fee"], "moreFields": ["address", "covered", "email", "fax", "level", "opening_hours", "phone", "website", "wheelchair"], "geometry": ["point", "vertex", "area"], "terms": ["bike", "bicycle", "bikeshare", "bike share", "bicycle share", "cycle dock", "cycle hub", "cycleshare", "cycling"], "tags": {"amenity": "bicycle_rental"}, "name": "Bicycle Rental"}, - "amenity/bicycle_repair_station": {"icon": "maki-bicycle", "fields": ["operator", "brand", "opening_hours", "fee", "payment_multi_fee", "charge_fee", "service/bicycle"], "moreFields": ["colour", "covered", "indoor", "level", "manufacturer"], "geometry": ["point", "vertex"], "terms": ["bike chain", "bike multitool", "bike repair", "bike tools", "cycle pump", "cycle repair", "cycling"], "tags": {"amenity": "bicycle_repair_station"}, "name": "Bicycle Repair Tool Stand"}, + "amenity/bicycle_repair_station": {"icon": "temaki-bicycle_repair", "fields": ["operator", "brand", "opening_hours", "fee", "payment_multi_fee", "charge_fee", "service/bicycle"], "moreFields": ["colour", "covered", "indoor", "level", "manufacturer"], "geometry": ["point", "vertex"], "terms": ["bike chain", "bike multitool", "bike repair", "bike tools", "cycle pump", "cycle repair", "cycling"], "tags": {"amenity": "bicycle_repair_station"}, "name": "Bicycle Repair Tool Stand"}, "amenity/biergarten": {"icon": "fas-beer", "fields": ["name", "address", "building", "outdoor_seating", "brewery"], "moreFields": ["{amenity/bar}"], "geometry": ["point", "area"], "tags": {"amenity": "biergarten"}, "terms": ["beer", "bier", "booze"], "name": "Biergarten"}, "amenity/boat_rental": {"icon": "temaki-boat_rental", "fields": ["name", "operator", "operator/type", "fee", "payment_multi_fee", "charge_fee"], "moreFields": ["address", "email", "fax", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "boat_rental"}, "name": "Boat Rental"}, "amenity/bureau_de_change": {"icon": "temaki-money_hand", "fields": ["name", "operator", "payment_multi", "currency_multi", "address", "building_area"], "moreFields": ["email", "fax", "level", "opening_hours", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["bureau de change", "money changer"], "tags": {"amenity": "bureau_de_change"}, "name": "Currency Exchange"}, "amenity/cafe": {"icon": "maki-cafe", "fields": ["name", "cuisine", "address", "building_area", "outdoor_seating", "internet_access", "internet_access/fee"], "moreFields": ["air_conditioning", "bar", "capacity", "delivery", "diet_multi", "email", "fax", "internet_access/ssid", "level", "min_age", "not/name", "opening_hours", "payment_multi", "phone", "reservation", "smoking", "takeaway", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["bistro", "coffee", "tea"], "tags": {"amenity": "cafe"}, "name": "Cafe"}, - "amenity/car_pooling": {"icon": "maki-car", "fields": ["name", "operator", "operator/type", "capacity", "address", "opening_hours", "lit"], "moreFields": ["email", "fax", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "car_pooling"}, "name": "Car Pooling"}, + "amenity/car_pooling": {"icon": "temaki-car_pool", "fields": ["name", "operator", "operator/type", "capacity", "address", "opening_hours", "lit"], "moreFields": ["email", "fax", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "car_pooling"}, "name": "Car Pooling"}, "amenity/car_rental": {"icon": "maki-car-rental", "fields": ["name", "operator", "address", "opening_hours", "payment_multi"], "moreFields": ["brand", "email", "fax", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "car_rental"}, "name": "Car Rental"}, - "amenity/car_sharing": {"icon": "maki-car", "fields": ["name", "operator", "operator/type", "capacity", "address", "payment_multi", "supervised"], "moreFields": ["email", "fax", "lit", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "car_sharing"}, "name": "Car Sharing"}, + "amenity/car_sharing": {"icon": "temaki-sign_and_car", "fields": ["name", "operator", "operator/type", "capacity", "address", "payment_multi", "supervised"], "moreFields": ["email", "fax", "lit", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "car_sharing"}, "name": "Car Sharing"}, "amenity/car_wash": {"icon": "temaki-car_wash", "fields": ["name", "operator", "address", "building_area", "opening_hours", "payment_multi", "self_service"], "moreFields": ["email", "fax", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "car_wash"}, "name": "Car Wash"}, "amenity/casino": {"icon": "maki-casino", "fields": ["name", "operator", "address", "building_area", "opening_hours", "smoking"], "moreFields": ["air_conditioning", "email", "fax", "internet_access", "internet_access/fee", "internet_access/ssid", "level", "min_age", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["gambling", "roulette", "craps", "poker", "blackjack"], "tags": {"amenity": "casino"}, "name": "Casino"}, "amenity/charging_station": {"icon": "fas-charging-station", "fields": ["name", "operator", "capacity", "access_simple", "fee", "payment_multi_fee", "charge_fee"], "moreFields": ["brand", "covered", "level", "manufacturer"], "geometry": ["point"], "tags": {"amenity": "charging_station"}, "terms": ["EV", "Electric Vehicle", "Supercharger"], "name": "Charging Station"}, @@ -151,9 +151,9 @@ "amenity/parking_entrance": {"icon": "maki-entrance-alt1", "fields": ["ref", "access_simple", "address", "level"], "geometry": ["vertex"], "tags": {"amenity": "parking_entrance"}, "name": "Parking Garage Entrance/Exit"}, "amenity/parking_space": {"fields": ["capacity"], "geometry": ["point", "vertex", "area"], "terms": [], "tags": {"amenity": "parking_space"}, "matchScore": 0.95, "name": "Parking Space"}, "amenity/parking": {"icon": "maki-car", "fields": ["operator", "operator/type", "parking", "capacity", "access_simple", "fee", "payment_multi_fee", "charge_fee", "surface"], "moreFields": ["address", "covered", "email", "fax", "maxstay", "name", "opening_hours", "park_ride", "phone", "ref", "supervised", "website", "wheelchair"], "geometry": ["point", "vertex", "area"], "tags": {"amenity": "parking"}, "terms": ["automobile parking", "car lot", "car parking", "rv parking", "truck parking", "vehicle parking"], "name": "Parking Lot"}, - "amenity/parking/multi-storey": {"icon": "maki-car", "fields": ["name", "{amenity/parking}", "building"], "moreFields": ["{amenity/parking}", "height", "levels"], "geometry": ["area"], "tags": {"amenity": "parking", "parking": "multi-storey"}, "addTags": {"building": "parking", "amenity": "parking", "parking": "multi-storey"}, "reference": {"key": "parking", "value": "multi-storey"}, "terms": ["car", "indoor parking", "multistorey car park", "parkade", "parking building", "parking deck", "parking garage", "parking ramp", "parking structure"], "matchScore": 1.05, "name": "Multilevel Parking Garage"}, - "amenity/parking/park_ride": {"icon": "maki-car", "geometry": ["point", "vertex", "area"], "tags": {"amenity": "parking", "park_ride": "yes"}, "reference": {"key": "park_ride", "value": "yes"}, "terms": ["commuter parking lot", "incentive parking lot", "metro parking lot", "park and pool lot", "park and ride lot", "P+R", "public transport parking lot", "public transit parking lot", "train parking lot"], "name": "Park & Ride Lot"}, - "amenity/parking/underground": {"icon": "maki-car", "fields": ["{amenity/parking}", "layer"], "geometry": ["point", "vertex", "area"], "tags": {"amenity": "parking", "parking": "underground"}, "addTags": {"amenity": "parking", "parking": "underground", "layer": "-1"}, "reference": {"key": "parking", "value": "underground"}, "terms": ["automobile parking", "car lot", "car parking", "rv parking", "subsurface parking", "truck parking", "vehicle parking"], "matchScore": 1.05, "name": "Underground Parking"}, + "amenity/parking/multi-storey": {"icon": "temaki-car_structure", "fields": ["name", "{amenity/parking}", "building"], "moreFields": ["{amenity/parking}", "height", "levels"], "geometry": ["area"], "tags": {"amenity": "parking", "parking": "multi-storey"}, "addTags": {"building": "parking", "amenity": "parking", "parking": "multi-storey"}, "reference": {"key": "parking", "value": "multi-storey"}, "terms": ["car", "indoor parking", "multistorey car park", "parkade", "parking building", "parking deck", "parking garage", "parking ramp", "parking structure"], "matchScore": 1.05, "name": "Multilevel Parking Garage"}, + "amenity/parking/park_ride": {"icon": "temaki-sign_and_car", "geometry": ["point", "vertex", "area"], "tags": {"amenity": "parking", "park_ride": "yes"}, "reference": {"key": "park_ride", "value": "yes"}, "terms": ["commuter parking lot", "incentive parking lot", "metro parking lot", "park and pool lot", "park and ride lot", "P+R", "public transport parking lot", "public transit parking lot", "train parking lot"], "name": "Park & Ride Lot"}, + "amenity/parking/underground": {"icon": "temaki-car_structure", "fields": ["{amenity/parking}", "layer"], "geometry": ["point", "vertex", "area"], "tags": {"amenity": "parking", "parking": "underground"}, "addTags": {"amenity": "parking", "parking": "underground", "layer": "-1"}, "reference": {"key": "parking", "value": "underground"}, "terms": ["automobile parking", "car lot", "car parking", "rv parking", "subsurface parking", "truck parking", "vehicle parking"], "matchScore": 1.05, "name": "Underground Parking"}, "amenity/payment_centre": {"icon": "temaki-money_hand", "fields": ["name", "brand", "address", "building_area", "opening_hours", "payment_multi"], "moreFields": ["currency_multi", "email", "fax", "level", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["check", "tax pay", "bill pay", "currency", "finance", "cash", "money"], "tags": {"amenity": "payment_centre"}, "name": "Payment Center"}, "amenity/payment_terminal": {"icon": "far-credit-card", "fields": ["name", "brand", "address", "opening_hours", "payment_multi"], "moreFields": ["covered", "currency_multi", "indoor", "level", "wheelchair"], "geometry": ["point"], "terms": ["interactive kiosk", "ekiosk", "atm", "bill pay", "tax pay", "phone pay", "finance", "cash", "money transfer", "card"], "tags": {"amenity": "payment_terminal"}, "name": "Payment Terminal"}, "amenity/pharmacy": {"icon": "maki-pharmacy", "fields": ["name", "operator", "address", "building_area", "drive_through", "dispensing"], "moreFields": ["email", "fax", "level", "opening_hours", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "pharmacy"}, "addTags": {"amenity": "pharmacy", "healthcare": "pharmacy"}, "reference": {"key": "amenity", "value": "pharmacy"}, "terms": ["apothecary", "drug store", "drugstore", "med*", "prescription"], "name": "Pharmacy Counter"}, @@ -307,7 +307,7 @@ "barrier/gate": {"icon": "temaki-gate", "fields": ["access", "opening_hours"], "geometry": ["vertex", "line"], "tags": {"barrier": "gate"}, "name": "Gate"}, "barrier/guard_rail": {"icon": "temaki-guard_rail", "fields": ["material"], "geometry": ["line"], "tags": {"barrier": "guard_rail"}, "name": "Guard Rail", "terms": ["guardrail", "traffic barrier", "crash barrier", "median barrier", "roadside barrier", "Armco barrier"], "matchScore": 0.75}, "barrier/hedge": {"fields": ["height"], "geometry": ["line", "area"], "tags": {"barrier": "hedge"}, "name": "Hedge", "matchScore": 0.25}, - "barrier/height_restrictor": {"icon": "temaki-car_wash", "fields": ["maxheight"], "geometry": ["vertex"], "tags": {"barrier": "height_restrictor"}, "name": "Height Restrictor"}, + "barrier/height_restrictor": {"icon": "temaki-height_restrictor", "fields": ["maxheight"], "geometry": ["vertex"], "tags": {"barrier": "height_restrictor"}, "name": "Height Restrictor"}, "barrier/kerb": {"icon": "temaki-kerb-raised", "fields": ["kerb", "tactile_paving", "wheelchair"], "moreFields": ["material"], "geometry": ["vertex", "line"], "tags": {"barrier": "kerb"}, "matchScore": 0.5, "name": "Curb"}, "barrier/kerb/flush": {"icon": "temaki-kerb-flush", "fields": ["kerb", "{barrier/kerb}"], "geometry": ["vertex", "line"], "tags": {"kerb": "flush"}, "addTags": {"barrier": "kerb", "kerb": "flush"}, "reference": {"key": "kerb", "value": "flush"}, "terms": ["even curb", "level curb", "tactile curb"], "matchScore": 0.55, "name": "Flush Curb"}, "barrier/kerb/lowered": {"icon": "temaki-kerb-lowered", "fields": ["kerb", "{barrier/kerb}", "kerb/height"], "geometry": ["vertex", "line"], "tags": {"kerb": "lowered"}, "addTags": {"barrier": "kerb", "kerb": "lowered"}, "reference": {"key": "kerb", "value": "lowered"}, "terms": ["curb cut", "curb ramp", "kerb ramp", "dropped kerb", "pram ramp"], "matchScore": 0.55, "name": "Lowered Curb"}, @@ -370,7 +370,7 @@ "building/semidetached_house": {"icon": "maki-home", "geometry": ["area"], "tags": {"building": "semidetached_house"}, "terms": ["home", "double", "duplex", "twin", "family", "residence", "dwelling"], "matchScore": 0.5, "name": "Semi-Detached House"}, "building/service": {"icon": "maki-building", "geometry": ["area"], "tags": {"building": "service"}, "matchScore": 0.5, "name": "Service Building"}, "building/shed": {"icon": "fas-warehouse", "fields": ["{building}", "lockable"], "geometry": ["area"], "tags": {"building": "shed"}, "matchScore": 0.5, "name": "Shed"}, - "building/stable": {"icon": "maki-horse-riding", "geometry": ["area"], "tags": {"building": "stable"}, "matchScore": 0.5, "name": "Stable"}, + "building/stable": {"icon": "temaki-horse_shelter", "geometry": ["area"], "tags": {"building": "stable"}, "terms": ["horse shelter"], "matchScore": 0.5, "name": "Stable"}, "building/stadium": {"icon": "maki-stadium", "fields": ["{building}", "smoking"], "geometry": ["area"], "tags": {"building": "stadium"}, "matchScore": 0.5, "name": "Stadium Building"}, "building/static_caravan": {"icon": "maki-home", "geometry": ["area"], "tags": {"building": "static_caravan"}, "matchScore": 0.5, "name": "Static Mobile Home"}, "building/temple": {"icon": "maki-place-of-worship", "geometry": ["area"], "tags": {"building": "temple"}, "matchScore": 0.5, "name": "Temple Building"}, @@ -384,10 +384,10 @@ "craft/locksmith": {"icon": "maki-marker-stroked", "geometry": ["point", "area"], "tags": {"craft": "locksmith"}, "reference": {"key": "shop", "value": "locksmith"}, "name": "Locksmith", "searchable": false}, "craft/tailor": {"icon": "maki-clothing-store", "geometry": ["point", "area"], "tags": {"craft": "tailor"}, "reference": {"key": "shop", "value": "tailor"}, "name": "Tailor", "searchable": false}, "craft/agricultural_engines": {"icon": "temaki-tools", "geometry": ["point", "area"], "tags": {"craft": "agricultural_engines"}, "name": "Argricultural Engines Mechanic"}, - "craft/basket_maker": {"icon": "maki-art-gallery", "geometry": ["point", "area"], "tags": {"craft": "basket_maker"}, "name": "Basket Maker"}, + "craft/basket_maker": {"icon": "temaki-vase", "geometry": ["point", "area"], "tags": {"craft": "basket_maker"}, "name": "Basket Maker"}, "craft/beekeeper": {"icon": "maki-farm", "geometry": ["point", "area"], "tags": {"craft": "beekeeper"}, "name": "Beekeeper"}, "craft/blacksmith": {"icon": "temaki-tools", "geometry": ["point", "area"], "tags": {"craft": "blacksmith"}, "name": "Blacksmith"}, - "craft/boatbuilder": {"icon": "temaki-tools", "geometry": ["point", "area"], "tags": {"craft": "boatbuilder"}, "matchScore": 0.4, "name": "Boat Builder"}, + "craft/boatbuilder": {"icon": "temaki-boat_repair", "geometry": ["point", "area"], "tags": {"craft": "boatbuilder"}, "matchScore": 0.6, "name": "Boat Builder"}, "craft/bookbinder": {"icon": "maki-library", "geometry": ["point", "area"], "terms": ["book repair"], "tags": {"craft": "bookbinder"}, "name": "Bookbinder"}, "craft/brewery": {"icon": "temaki-storage_fermenter", "fields": ["{craft}", "product"], "moreFields": ["{craft}", "min_age"], "geometry": ["point", "area"], "terms": ["alcohol", "beer", "beverage", "bier", "booze", "cider"], "tags": {"craft": "brewery"}, "name": "Brewery"}, "craft/carpenter": {"icon": "temaki-tools", "geometry": ["point", "area"], "terms": ["woodworker"], "tags": {"craft": "carpenter"}, "name": "Carpenter"}, @@ -403,7 +403,7 @@ "craft/floorer": {"icon": "temaki-tools", "geometry": ["point", "area"], "tags": {"craft": "floorer"}, "name": "Floorer"}, "craft/gardener": {"icon": "maki-garden-centre", "geometry": ["point", "area"], "terms": ["landscaper", "grounds keeper"], "tags": {"craft": "gardener"}, "name": "Gardener"}, "craft/glaziery": {"icon": "temaki-window", "geometry": ["point", "area"], "terms": ["glass", "stained-glass", "window"], "tags": {"craft": "glaziery"}, "name": "Glaziery"}, - "craft/handicraft": {"icon": "maki-art-gallery", "geometry": ["point", "area"], "tags": {"craft": "handicraft"}, "name": "Handicraft"}, + "craft/handicraft": {"icon": "temaki-vase", "geometry": ["point", "area"], "tags": {"craft": "handicraft"}, "name": "Handicraft"}, "craft/hvac": {"icon": "temaki-tools", "geometry": ["point", "area"], "terms": ["heat*", "vent*", "air conditioning"], "tags": {"craft": "hvac"}, "name": "HVAC"}, "craft/insulator": {"icon": "temaki-tools", "geometry": ["point", "area"], "tags": {"craft": "insulation"}, "name": "Insulator"}, "craft/joiner": {"icon": "temaki-tools", "geometry": ["point", "area"], "tags": {"craft": "joiner"}, "terms": ["furniture"], "name": "Joiner"}, @@ -415,7 +415,7 @@ "craft/photographic_laboratory": {"icon": "fas-film", "geometry": ["point", "area"], "terms": ["film"], "tags": {"craft": "photographic_laboratory"}, "name": "Photographic Laboratory"}, "craft/plasterer": {"icon": "temaki-tools", "geometry": ["point", "area"], "tags": {"craft": "plasterer"}, "name": "Plasterer"}, "craft/plumber": {"icon": "temaki-plumber", "geometry": ["point", "area"], "terms": ["pipe"], "tags": {"craft": "plumber"}, "name": "Plumber"}, - "craft/pottery": {"icon": "maki-art-gallery", "geometry": ["point", "area"], "terms": ["ceramic"], "tags": {"craft": "pottery"}, "name": "Pottery"}, + "craft/pottery": {"icon": "temaki-vase", "geometry": ["point", "area"], "terms": ["ceramic"], "tags": {"craft": "pottery"}, "name": "Pottery"}, "craft/rigger": {"icon": "temaki-tools", "geometry": ["point", "area"], "tags": {"craft": "rigger"}, "name": "Rigger"}, "craft/roofer": {"icon": "temaki-tools", "geometry": ["point", "area"], "tags": {"craft": "roofer"}, "name": "Roofer"}, "craft/saddler": {"icon": "temaki-tools", "geometry": ["point", "area"], "tags": {"craft": "saddler"}, "name": "Saddler"}, @@ -486,27 +486,27 @@ "highway/bridleway": {"fields": ["name", "surface", "width", "structure", "access", "incline", "horse_scale"], "moreFields": ["covered", "dog", "lit", "maxweight_bridge", "smoothness", "stroller", "wheelchair"], "icon": "maki-horse-riding", "geometry": ["line"], "tags": {"highway": "bridleway"}, "terms": ["bridleway", "equestrian", "horse", "trail"], "name": "Bridle Path"}, "highway/bus_guideway": {"icon": "maki-bus", "fields": ["name", "operator", "oneway", "structure", "covered"], "moreFields": ["trolley_wire", "width"], "geometry": ["line"], "tags": {"highway": "bus_guideway"}, "addTags": {"highway": "bus_guideway", "access": "no", "bus": "designated"}, "terms": [], "name": "Bus Guideway"}, "highway/construction": {"icon": "maki-barrier", "fields": ["name", "opening_date", "check_date", "note", "oneway", "structure", "access"], "geometry": ["line"], "tags": {"highway": "construction", "access": "no"}, "terms": ["closed", "closure", "construction"], "name": "Road Closed"}, - "highway/corridor": {"icon": "temaki-pedestrian", "fields": ["name", "width", "level", "access_simple", "wheelchair"], "moreFields": ["covered", "indoor", "maxheight", "stroller"], "geometry": ["line"], "tags": {"highway": "corridor"}, "addTags": {"highway": "corridor", "indoor": "yes"}, "terms": ["gallery", "hall", "hallway", "indoor", "passage", "passageway"], "name": "Indoor Corridor"}, - "highway/crossing/zebra-raised": {"icon": "temaki-pedestrian", "fields": ["crossing", "tactile_paving", "crossing/island"], "geometry": ["vertex"], "tags": {"highway": "crossing", "crossing": "zebra", "traffic_calming": "table"}, "reference": {"key": "traffic_calming", "value": "table"}, "name": "Marked Crosswalk (Raised)", "searchable": false}, - "highway/crossing/zebra": {"icon": "temaki-pedestrian", "fields": ["crossing", "tactile_paving", "crossing/island"], "geometry": ["vertex"], "tags": {"highway": "crossing", "crossing": "zebra"}, "reference": {"key": "highway", "value": "crossing"}, "name": "Marked Crosswalk", "searchable": false}, - "highway/crossing/marked-raised": {"icon": "temaki-pedestrian", "fields": ["crossing", "tactile_paving", "crossing/island"], "geometry": ["vertex"], "tags": {"highway": "crossing", "crossing": "marked", "traffic_calming": "table"}, "addTags": {"highway": "crossing", "crossing": "marked", "traffic_calming": "table"}, "reference": {"key": "traffic_calming", "value": "table"}, "terms": ["zebra crossing", "marked crossing", "crosswalk", "flat top", "hump", "speed", "slow"], "name": "Marked Crosswalk (Raised)"}, - "highway/crossing/marked": {"icon": "temaki-pedestrian", "fields": ["crossing", "tactile_paving", "crossing/island"], "geometry": ["vertex"], "tags": {"highway": "crossing", "crossing": "marked"}, "addTags": {"highway": "crossing", "crossing": "marked"}, "reference": {"key": "highway", "value": "crossing"}, "terms": ["zebra crossing", "marked crossing", "crosswalk"], "name": "Marked Crosswalk"}, + "highway/corridor": {"icon": "temaki-pedestrian_walled", "fields": ["name", "width", "level", "access_simple", "wheelchair"], "moreFields": ["covered", "indoor", "maxheight", "stroller"], "geometry": ["line"], "tags": {"highway": "corridor"}, "addTags": {"highway": "corridor", "indoor": "yes"}, "terms": ["gallery", "hall", "hallway", "indoor", "passage", "passageway"], "name": "Indoor Corridor"}, + "highway/crossing/zebra-raised": {"icon": "temaki-pedestrian_crosswalk", "fields": ["crossing", "tactile_paving", "crossing/island"], "geometry": ["vertex"], "tags": {"highway": "crossing", "crossing": "zebra", "traffic_calming": "table"}, "reference": {"key": "traffic_calming", "value": "table"}, "name": "Marked Crosswalk (Raised)", "searchable": false}, + "highway/crossing/zebra": {"icon": "temaki-pedestrian_crosswalk", "fields": ["crossing", "tactile_paving", "crossing/island"], "geometry": ["vertex"], "tags": {"highway": "crossing", "crossing": "zebra"}, "reference": {"key": "highway", "value": "crossing"}, "name": "Marked Crosswalk", "searchable": false}, + "highway/crossing/marked-raised": {"icon": "temaki-pedestrian_crosswalk", "fields": ["crossing", "tactile_paving", "crossing/island"], "geometry": ["vertex"], "tags": {"highway": "crossing", "crossing": "marked", "traffic_calming": "table"}, "addTags": {"highway": "crossing", "crossing": "marked", "traffic_calming": "table"}, "reference": {"key": "traffic_calming", "value": "table"}, "terms": ["zebra crossing", "marked crossing", "crosswalk", "flat top", "hump", "speed", "slow"], "name": "Marked Crosswalk (Raised)"}, + "highway/crossing/marked": {"icon": "temaki-pedestrian_crosswalk", "fields": ["crossing", "tactile_paving", "crossing/island"], "geometry": ["vertex"], "tags": {"highway": "crossing", "crossing": "marked"}, "addTags": {"highway": "crossing", "crossing": "marked"}, "reference": {"key": "highway", "value": "crossing"}, "terms": ["zebra crossing", "marked crossing", "crosswalk"], "name": "Marked Crosswalk"}, "highway/crossing/unmarked-raised": {"icon": "temaki-pedestrian", "fields": ["crossing", "tactile_paving", "crossing/island"], "geometry": ["vertex"], "tags": {"highway": "crossing", "crossing": "unmarked", "traffic_calming": "table"}, "reference": {"key": "traffic_calming", "value": "table"}, "terms": ["flat top", "hump", "speed", "slow"], "name": "Unmarked Crossing (Raised)"}, "highway/crossing/unmarked": {"icon": "temaki-pedestrian", "fields": ["crossing", "tactile_paving", "crossing/island"], "geometry": ["vertex"], "tags": {"highway": "crossing", "crossing": "unmarked"}, "addTags": {"highway": "crossing", "crossing": "unmarked"}, "reference": {"key": "crossing", "value": "unmarked"}, "terms": [], "name": "Unmarked Crossing"}, "highway/cycleway": {"icon": "fas-biking", "fields": ["name", "oneway", "surface", "width", "structure", "access", "incline"], "moreFields": ["covered", "dog", "lit", "maxspeed", "maxweight_bridge", "not/name", "smoothness", "stroller", "wheelchair"], "geometry": ["line"], "tags": {"highway": "cycleway"}, "terms": ["bicyle path", "bike path", "cycling path"], "matchScore": 0.9, "name": "Cycle Path"}, - "highway/cycleway/crossing": {"icon": "fas-biking", "fields": ["crossing", "access", "surface", "tactile_paving", "crossing/island"], "geometry": ["line"], "tags": {"cycleway": "crossing"}, "addTags": {"highway": "cycleway", "cycleway": "crossing"}, "reference": {"key": "cycleway", "value": "crossing"}, "searchable": false, "matchScore": 0.95, "name": "Cycle Crossing"}, - "highway/cycleway/bicycle_foot": {"notCountryCodes": ["fr", "lt", "pl"], "icon": "fas-biking", "geometry": ["line"], "tags": {"highway": "cycleway", "foot": "designated"}, "addTags": {"highway": "cycleway", "foot": "designated", "bicycle": "designated"}, "terms": ["bicycle and foot path", "bike and pedestrian path", "green way", "greenway", "mixed-use trail", "multi-use trail", "segregated trail", "rail trail"], "matchScore": 0.95, "name": "Cycle & Foot Path"}, - "highway/cycleway/crossing/marked": {"icon": "fas-biking", "fields": ["crossing", "access", "surface", "tactile_paving", "crossing/island"], "geometry": ["line"], "tags": {"cycleway": "crossing", "crossing": "marked"}, "addTags": {"highway": "cycleway", "cycleway": "crossing", "crossing": "marked"}, "reference": {"key": "cycleway", "value": "crossing"}, "terms": ["cycle crosswalk", "cycle path crossing", "cycleway crossing", "bicycle crossing", "bike crossing"], "name": "Marked Cycle Crossing"}, + "highway/cycleway/crossing": {"icon": "temaki-cyclist_crosswalk", "fields": ["crossing", "access", "surface", "tactile_paving", "crossing/island"], "geometry": ["line"], "tags": {"cycleway": "crossing"}, "addTags": {"highway": "cycleway", "cycleway": "crossing"}, "reference": {"key": "cycleway", "value": "crossing"}, "searchable": false, "matchScore": 0.95, "name": "Cycle Crossing"}, + "highway/cycleway/bicycle_foot": {"notCountryCodes": ["fr", "lt", "pl"], "icon": "temaki-pedestrian_and_cyclist", "geometry": ["line"], "tags": {"highway": "cycleway", "foot": "designated"}, "addTags": {"highway": "cycleway", "foot": "designated", "bicycle": "designated"}, "terms": ["bicycle and foot path", "bike and pedestrian path", "green way", "greenway", "mixed-use trail", "multi-use trail", "segregated trail", "rail trail"], "matchScore": 0.95, "name": "Cycle & Foot Path"}, + "highway/cycleway/crossing/marked": {"icon": "temaki-cyclist_crosswalk", "fields": ["crossing", "access", "surface", "tactile_paving", "crossing/island"], "geometry": ["line"], "tags": {"cycleway": "crossing", "crossing": "marked"}, "addTags": {"highway": "cycleway", "cycleway": "crossing", "crossing": "marked"}, "reference": {"key": "cycleway", "value": "crossing"}, "terms": ["cycle crosswalk", "cycle path crossing", "cycleway crossing", "bicycle crossing", "bike crossing"], "name": "Marked Cycle Crossing"}, "highway/cycleway/crossing/unmarked": {"icon": "fas-biking", "fields": ["crossing", "access", "surface", "tactile_paving", "crossing/island"], "geometry": ["line"], "tags": {"cycleway": "crossing", "crossing": "unmarked"}, "addTags": {"highway": "cycleway", "cycleway": "crossing", "crossing": "unmarked"}, "reference": {"key": "cycleway", "value": "crossing"}, "terms": ["cycle path crossing", "cycleway crossing", "bicycle crossing", "bike crossing"], "name": "Unmarked Cycle Crossing"}, "highway/elevator": {"icon": "temaki-elevator", "fields": ["ref", "level_semi", "access_simple", "wheelchair", "maxweight"], "moreFields": ["maxheight", "opening_hours"], "geometry": ["vertex"], "tags": {"highway": "elevator"}, "terms": ["lift"], "name": "Elevator"}, "highway/emergency_bay": {"icon": "maki-car", "geometry": ["vertex"], "tags": {"highway": "emergency_bay"}, "terms": ["Highway Emergency Bay"], "name": "Emergency Stopping Place"}, "highway/footway": {"icon": "temaki-pedestrian", "fields": ["name", "surface", "width", "structure", "access", "incline"], "moreFields": ["covered", "dog", "lit", "maxweight_bridge", "not/name", "smoothness", "stroller", "tactile_paving", "wheelchair"], "geometry": ["line"], "terms": ["hike", "hiking", "promenade", "trackway", "trail", "walk"], "tags": {"highway": "footway"}, "matchScore": 0.9, "name": "Foot Path"}, "highway/footway/crossing": {"fields": ["crossing", "access", "surface", "tactile_paving", "crossing/island"], "geometry": ["line"], "tags": {"footway": "crossing"}, "addTags": {"highway": "footway", "footway": "crossing"}, "reference": {"key": "footway", "value": "crossing"}, "matchScore": 0.95, "searchable": false, "name": "Pedestrian Crossing"}, - "highway/footway/zebra-raised": {"icon": "temaki-pedestrian", "fields": ["crossing", "access", "surface", "tactile_paving", "crossing/island"], "geometry": ["line"], "tags": {"highway": "footway", "footway": "crossing", "crossing": "zebra", "traffic_calming": "table"}, "reference": {"key": "traffic_calming", "value": "table"}, "name": "Marked Crosswalk (Raised)", "searchable": false}, - "highway/footway/zebra": {"icon": "temaki-pedestrian", "fields": ["crossing", "access", "surface", "tactile_paving", "crossing/island"], "geometry": ["line"], "tags": {"highway": "footway", "footway": "crossing", "crossing": "zebra"}, "reference": {"key": "footway", "value": "crossing"}, "name": "Marked Crosswalk", "searchable": false}, + "highway/footway/zebra-raised": {"icon": "temaki-pedestrian_crosswalk", "fields": ["crossing", "access", "surface", "tactile_paving", "crossing/island"], "geometry": ["line"], "tags": {"highway": "footway", "footway": "crossing", "crossing": "zebra", "traffic_calming": "table"}, "reference": {"key": "traffic_calming", "value": "table"}, "name": "Marked Crosswalk (Raised)", "searchable": false}, + "highway/footway/zebra": {"icon": "temaki-pedestrian_crosswalk", "fields": ["crossing", "access", "surface", "tactile_paving", "crossing/island"], "geometry": ["line"], "tags": {"highway": "footway", "footway": "crossing", "crossing": "zebra"}, "reference": {"key": "footway", "value": "crossing"}, "name": "Marked Crosswalk", "searchable": false}, "highway/footway/conveying": {"icon": "temaki-pedestrian", "fields": ["name", "conveying", "access_simple", "lit", "width", "wheelchair"], "geometry": ["line"], "terms": ["moving sidewalk", "autwalk", "skywalk", "travolator", "travelator", "travellator", "conveyor"], "tags": {"highway": "footway", "conveying": "*"}, "name": "Moving Walkway"}, - "highway/footway/marked-raised": {"icon": "temaki-pedestrian", "fields": ["crossing", "access", "surface", "tactile_paving", "crossing/island"], "geometry": ["line"], "tags": {"footway": "crossing", "crossing": "marked", "traffic_calming": "table"}, "addTags": {"highway": "footway", "footway": "crossing", "crossing": "marked", "traffic_calming": "table"}, "reference": {"key": "traffic_calming", "value": "table"}, "terms": ["zebra crossing", "marked crossing", "crosswalk", "flat top", "hump", "speed", "slow"], "name": "Marked Crosswalk (Raised)"}, - "highway/footway/marked": {"icon": "temaki-pedestrian", "fields": ["crossing", "access", "surface", "tactile_paving", "crossing/island"], "geometry": ["line"], "tags": {"footway": "crossing", "crossing": "marked"}, "addTags": {"highway": "footway", "footway": "crossing", "crossing": "marked"}, "reference": {"key": "footway", "value": "crossing"}, "terms": ["marked foot path crossing", "marked crossing", "marked pedestrian crosswalk", "zebra crossing"], "name": "Marked Crosswalk"}, + "highway/footway/marked-raised": {"icon": "temaki-pedestrian_crosswalk", "fields": ["crossing", "access", "surface", "tactile_paving", "crossing/island"], "geometry": ["line"], "tags": {"footway": "crossing", "crossing": "marked", "traffic_calming": "table"}, "addTags": {"highway": "footway", "footway": "crossing", "crossing": "marked", "traffic_calming": "table"}, "reference": {"key": "traffic_calming", "value": "table"}, "terms": ["zebra crossing", "marked crossing", "crosswalk", "flat top", "hump", "speed", "slow"], "name": "Marked Crosswalk (Raised)"}, + "highway/footway/marked": {"icon": "temaki-pedestrian_crosswalk", "fields": ["crossing", "access", "surface", "tactile_paving", "crossing/island"], "geometry": ["line"], "tags": {"footway": "crossing", "crossing": "marked"}, "addTags": {"highway": "footway", "footway": "crossing", "crossing": "marked"}, "reference": {"key": "footway", "value": "crossing"}, "terms": ["marked foot path crossing", "marked crossing", "marked pedestrian crosswalk", "zebra crossing"], "name": "Marked Crosswalk"}, "highway/footway/sidewalk": {"icon": "temaki-pedestrian", "geometry": ["line"], "tags": {"footway": "sidewalk"}, "addTags": {"highway": "footway", "footway": "sidewalk"}, "reference": {"key": "footway", "value": "sidewalk"}, "terms": ["pavement", "sidepath"], "name": "Sidewalk"}, "highway/footway/unmarked-raised": {"icon": "temaki-pedestrian", "fields": ["crossing", "access", "surface", "tactile_paving", "crossing/island"], "geometry": ["line"], "tags": {"footway": "crossing", "crossing": "unmarked", "traffic_calming": "table"}, "addTags": {"highway": "footway", "footway": "crossing", "crossing": "unmarked", "traffic_calming": "table"}, "reference": {"key": "traffic_calming", "value": "table"}, "terms": ["flat top", "hump", "speed", "slow"], "name": "Unmarked Crossing (Raised)"}, "highway/footway/unmarked": {"icon": "temaki-pedestrian", "fields": ["crossing", "access", "surface", "tactile_paving", "crossing/island"], "geometry": ["line"], "tags": {"footway": "crossing", "crossing": "unmarked"}, "addTags": {"highway": "footway", "footway": "crossing", "crossing": "unmarked"}, "reference": {"key": "footway", "value": "crossing"}, "terms": ["unmarked foot path crossing", "unmarked crosswalk", "unmarked pedestrian crossing"], "name": "Unmarked Crossing"}, @@ -566,7 +566,7 @@ "historic/fort": {"icon": "maki-castle", "fields": ["name", "building_area", "access_simple", "start_date"], "geometry": ["point", "area"], "tags": {"historic": "fort"}, "terms": ["military"], "name": "Historic Fort"}, "historic/manor": {"icon": "maki-castle", "fields": ["name", "building_area", "access_simple", "start_date"], "geometry": ["point", "area"], "tags": {"historic": "manor"}, "terms": ["Mansion", "gentry", "nobility", "estate"], "name": "Manor House"}, "historic/memorial": {"icon": "maki-monument", "fields": ["name", "memorial", "inscription", "material"], "moreFields": ["website"], "geometry": ["point", "vertex", "area"], "terms": ["dedicatory", "epitaph", "remember", "remembrance", "memory", "monument", "stolperstein"], "tags": {"historic": "memorial"}, "name": "Memorial"}, - "historic/memorial/plaque": {"icon": "maki-monument", "fields": ["{historic/memorial}", "direction"], "geometry": ["point", "vertex"], "terms": ["dedicatory", "epitaph", "historical marker", "remember", "remembrance", "memory"], "tags": {"historic": "memorial", "memorial": "plaque"}, "reference": {"key": "memorial", "value": "plaque"}, "name": "Commemorative Plaque"}, + "historic/memorial/plaque": {"icon": "temaki-plaque", "fields": ["{historic/memorial}", "direction"], "geometry": ["point", "vertex"], "terms": ["dedicatory", "epitaph", "historical marker", "remember", "remembrance", "memory"], "tags": {"historic": "memorial", "memorial": "plaque"}, "reference": {"key": "memorial", "value": "plaque"}, "name": "Commemorative Plaque"}, "historic/monument": {"icon": "maki-monument", "fields": ["name", "inscription", "access_simple"], "moreFields": ["material"], "geometry": ["point", "vertex", "area"], "tags": {"historic": "monument"}, "name": "Monument"}, "historic/ruins": {"icon": "temaki-ruins", "fields": ["name", "historic/civilization", "inscription", "access_simple"], "geometry": ["point", "vertex", "area"], "tags": {"historic": "ruins"}, "name": "Ruins"}, "historic/tomb": {"icon": "maki-cemetery", "fields": ["name", "tomb", "building_area", "inscription", "access_simple"], "geometry": ["point", "area"], "tags": {"historic": "tomb"}, "name": "Tomb"}, @@ -604,7 +604,7 @@ "landuse/greenhouse_horticulture": {"icon": "maki-garden", "fields": ["name", "operator"], "moreFields": ["address", "email", "fax", "phone", "website"], "geometry": ["area"], "terms": ["flower", "greenhouse", "horticulture", "grow", "vivero"], "tags": {"landuse": "greenhouse_horticulture"}, "matchScore": 0.9, "name": "Greenhouse Horticulture"}, "landuse/harbour": {"icon": "maki-harbor", "fields": ["name", "operator"], "moreFields": ["address", "email", "fax", "phone", "website"], "geometry": ["area"], "terms": ["boat"], "tags": {"landuse": "harbour"}, "name": "Harbor"}, "landuse/industrial": {"icon": "maki-industry", "fields": ["name", "industrial"], "moreFields": ["address", "email", "fax", "phone", "website"], "geometry": ["area"], "tags": {"landuse": "industrial"}, "terms": [], "matchScore": 0.9, "name": "Industrial Area"}, - "landuse/industrial/scrap_yard": {"icon": "maki-car", "fields": ["name", "operator", "address", "opening_hours"], "geometry": ["point", "area"], "tags": {"industrial": "scrap_yard"}, "addTags": {"landuse": "industrial", "industrial": "scrap_yard"}, "reference": {"key": "industrial", "value": "scrap_yard"}, "terms": ["car", "junk", "metal", "salvage", "scrap", "u-pull-it", "vehicle", "wreck", "yard"], "name": "Scrap Yard"}, + "landuse/industrial/scrap_yard": {"icon": "temaki-junk_car", "fields": ["name", "operator", "address", "opening_hours"], "geometry": ["point", "area"], "tags": {"industrial": "scrap_yard"}, "addTags": {"landuse": "industrial", "industrial": "scrap_yard"}, "reference": {"key": "industrial", "value": "scrap_yard"}, "terms": ["car", "junk", "metal", "salvage", "scrap", "u-pull-it", "vehicle", "wreck", "yard"], "name": "Scrap Yard"}, "landuse/industrial/slaughterhouse": {"icon": "maki-slaughterhouse", "fields": ["name", "operator", "address", "building_area", "opening_hours"], "geometry": ["point", "area"], "tags": {"industrial": "slaughterhouse"}, "addTags": {"landuse": "industrial", "industrial": "slaughterhouse"}, "reference": {"key": "industrial", "value": "slaughterhouse"}, "terms": ["abattoir", "beef", "butchery", "calf", "chicken", "cow", "killing house", "meat", "pig", "pork", "poultry", "shambles", "stockyard"], "name": "Slaughterhouse"}, "landuse/landfill": {"icon": "temaki-bulldozer", "geometry": ["area"], "fields": ["name"], "moreFields": ["address", "email", "fax", "phone", "website"], "tags": {"landuse": "landfill"}, "terms": ["dump"], "name": "Landfill"}, "landuse/meadow": {"icon": "maki-garden", "geometry": ["area"], "fields": ["name"], "tags": {"landuse": "meadow"}, "terms": ["grazing", "hay field", "pasture"], "name": "Meadow"}, @@ -748,8 +748,8 @@ "man_made/obelisk": {"icon": "maki-monument", "fields": ["name", "inscription", "height", "material", "colour"], "geometry": ["point", "vertex", "area"], "tags": {"man_made": "obelisk"}, "name": "Obelisk"}, "man_made/observatory": {"fields": ["name", "operator", "address", "access_simple", "building_area"], "moreFields": ["email", "fax", "phone", "website"], "geometry": ["point", "area"], "terms": ["astronomical", "meteorological"], "tags": {"man_made": "observatory"}, "name": "Observatory"}, "man_made/petroleum_well": {"icon": "temaki-oil_well", "geometry": ["point"], "terms": ["drilling rig", "oil derrick", "oil drill", "oil horse", "oil rig", "oil pump", "petroleum well", "pumpjack"], "tags": {"man_made": "petroleum_well"}, "name": "Oil Well"}, - "man_made/pier": {"icon": "temaki-pedestrian", "fields": ["name", "surface", "floating", "width", "access", "lit"], "moreFields": ["{highway/footway}", "access", "fishing", "incline"], "geometry": ["line", "area"], "terms": ["berth", "dock", "jetty", "landing", "promenade", "wharf"], "tags": {"man_made": "pier"}, "name": "Pier"}, - "man_made/pier/floating": {"icon": "temaki-pedestrian", "geometry": ["line", "area"], "terms": ["berth", "dock", "jetty", "landing", "promenade", "wharf"], "tags": {"man_made": "pier", "floating": "yes"}, "name": "Floating Pier"}, + "man_made/pier": {"icon": "temaki-pier_fixed", "fields": ["name", "surface", "floating", "width", "access", "lit"], "moreFields": ["{highway/footway}", "access", "fishing", "incline"], "geometry": ["line", "area"], "terms": ["berth", "dock", "jetty", "landing", "promenade", "wharf"], "tags": {"man_made": "pier"}, "name": "Pier"}, + "man_made/pier/floating": {"icon": "temaki-pier_floating", "geometry": ["line", "area"], "terms": ["berth", "dock", "jetty", "landing", "promenade", "wharf"], "tags": {"man_made": "pier", "floating": "yes"}, "name": "Floating Pier"}, "man_made/pipeline": {"icon": "iD-pipeline-line", "fields": ["operator", "location", "substance", "layer", "diameter"], "geometry": ["line"], "terms": ["oil", "natural gas", "water", "sewer", "sewage"], "tags": {"man_made": "pipeline"}, "name": "Pipeline"}, "man_made/pipeline/underground": {"icon": "iD-pipeline-line", "geometry": ["line"], "terms": ["oil", "natural gas", "water", "sewer", "sewage"], "tags": {"man_made": "pipeline", "location": "underground"}, "addTags": {"man_made": "pipeline", "location": "underground", "layer": "-1"}, "name": "Underground Pipeline"}, "man_made/pipeline/valve": {"icon": "temaki-wheel", "geometry": ["vertex"], "fields": ["ref", "operator", "valve", "location", "diameter"], "moreFields": ["colour", "manufacturer", "material"], "terms": ["oil", "natural gas", "water", "sewer", "sewage"], "tags": {"pipeline": "valve"}, "name": "Pipeline Valve"}, @@ -935,18 +935,18 @@ "public_transport/platform/monorail_point": {"icon": "temaki-monorail", "fields": ["{public_transport/platform_point}"], "moreFields": ["{public_transport/platform_point}"], "geometry": ["point"], "tags": {"public_transport": "platform", "monorail": "yes"}, "reference": {"key": "railway", "value": "platform"}, "searchable": false, "name": "Monorail Stop / Platform"}, "public_transport/platform/subway_point": {"icon": "temaki-subway", "fields": ["{public_transport/platform_point}"], "moreFields": ["{public_transport/platform_point}"], "geometry": ["point"], "tags": {"public_transport": "platform", "subway": "yes"}, "reference": {"key": "railway", "value": "platform"}, "searchable": false, "name": "Subway Stop / Platform"}, "public_transport/platform/train_point": {"icon": "maki-rail", "fields": ["{public_transport/platform_point}"], "moreFields": ["{public_transport/platform_point}"], "geometry": ["point"], "tags": {"public_transport": "platform", "train": "yes"}, "reference": {"key": "railway", "value": "platform"}, "searchable": false, "name": "Train Stop / Platform"}, - "public_transport/platform/aerialway": {"icon": "temaki-pedestrian", "fields": ["{public_transport/platform}"], "moreFields": ["{public_transport/platform}"], "geometry": ["line", "area"], "tags": {"public_transport": "platform", "aerialway": "yes"}, "reference": {"key": "public_transport", "value": "platform"}, "terms": ["aerialway", "cable car", "platform", "public transit", "public transportation", "transit", "transportation"], "name": "Aerialway Platform"}, + "public_transport/platform/aerialway": {"icon": "temaki-sign_and_pedestrian", "fields": ["{public_transport/platform}"], "moreFields": ["{public_transport/platform}"], "geometry": ["line", "area"], "tags": {"public_transport": "platform", "aerialway": "yes"}, "reference": {"key": "public_transport", "value": "platform"}, "terms": ["aerialway", "cable car", "platform", "public transit", "public transportation", "transit", "transportation"], "name": "Aerialway Platform"}, "public_transport/platform/bus_point": {"icon": "maki-bus", "fields": ["{public_transport/platform_point}"], "moreFields": ["{public_transport/platform_point}"], "geometry": ["point", "vertex"], "tags": {"public_transport": "platform", "bus": "yes"}, "addTags": {"public_transport": "platform", "bus": "yes", "highway": "bus_stop"}, "reference": {"key": "public_transport", "value": "platform"}, "terms": ["bus", "platform", "public transit", "public transportation", "transit", "transportation"], "name": "Bus Stop"}, - "public_transport/platform/bus": {"icon": "temaki-pedestrian", "fields": ["{public_transport/platform}"], "moreFields": ["{public_transport/platform}"], "geometry": ["line", "area"], "tags": {"public_transport": "platform", "bus": "yes"}, "reference": {"key": "public_transport", "value": "platform"}, "terms": ["bus", "platform", "public transit", "public transportation", "transit", "transportation"], "name": "Bus Platform"}, - "public_transport/platform/ferry": {"icon": "temaki-pedestrian", "fields": ["{public_transport/platform}"], "moreFields": ["{public_transport/platform}"], "geometry": ["line", "area"], "tags": {"public_transport": "platform", "ferry": "yes"}, "reference": {"key": "public_transport", "value": "platform"}, "terms": ["boat", "dock", "ferry", "pier", "platform", "public transit", "public transportation", "transit", "transportation"], "name": "Ferry Platform"}, - "public_transport/platform/light_rail": {"icon": "temaki-pedestrian", "fields": ["{public_transport/platform}"], "moreFields": ["{public_transport/platform}"], "geometry": ["line", "area"], "tags": {"public_transport": "platform", "light_rail": "yes"}, "addTags": {"public_transport": "platform", "light_rail": "yes", "railway": "platform"}, "reference": {"key": "railway", "value": "platform"}, "terms": ["electric", "light rail", "platform", "public transit", "public transportation", "rail", "track", "tram", "trolley", "transit", "transportation"], "name": "Light Rail Platform"}, - "public_transport/platform/monorail": {"icon": "temaki-pedestrian", "fields": ["{public_transport/platform}"], "moreFields": ["{public_transport/platform}"], "geometry": ["line", "area"], "tags": {"public_transport": "platform", "monorail": "yes"}, "addTags": {"public_transport": "platform", "monorail": "yes", "railway": "platform"}, "reference": {"key": "railway", "value": "platform"}, "terms": ["monorail", "platform", "public transit", "public transportation", "rail", "transit", "transportation"], "name": "Monorail Platform"}, - "public_transport/platform/subway": {"icon": "temaki-pedestrian", "fields": ["{public_transport/platform}"], "moreFields": ["{public_transport/platform}"], "geometry": ["line", "area"], "tags": {"public_transport": "platform", "subway": "yes"}, "addTags": {"public_transport": "platform", "subway": "yes", "railway": "platform"}, "reference": {"key": "railway", "value": "platform"}, "terms": ["metro", "platform", "public transit", "public transportation", "rail", "subway", "track", "transit", "transportation", "underground"], "name": "Subway Platform"}, - "public_transport/platform/train": {"icon": "temaki-pedestrian", "fields": ["{public_transport/platform}"], "moreFields": ["{public_transport/platform}"], "geometry": ["line", "area"], "tags": {"public_transport": "platform", "train": "yes"}, "addTags": {"public_transport": "platform", "train": "yes", "railway": "platform"}, "reference": {"key": "railway", "value": "platform"}, "terms": ["platform", "public transit", "public transportation", "rail", "track", "train", "transit", "transportation"], "name": "Train Platform"}, + "public_transport/platform/bus": {"icon": "temaki-sign_and_pedestrian", "fields": ["{public_transport/platform}"], "moreFields": ["{public_transport/platform}"], "geometry": ["line", "area"], "tags": {"public_transport": "platform", "bus": "yes"}, "reference": {"key": "public_transport", "value": "platform"}, "terms": ["bus", "platform", "public transit", "public transportation", "transit", "transportation"], "name": "Bus Platform"}, + "public_transport/platform/ferry": {"icon": "temaki-sign_and_pedestrian", "fields": ["{public_transport/platform}"], "moreFields": ["{public_transport/platform}"], "geometry": ["line", "area"], "tags": {"public_transport": "platform", "ferry": "yes"}, "reference": {"key": "public_transport", "value": "platform"}, "terms": ["boat", "dock", "ferry", "pier", "platform", "public transit", "public transportation", "transit", "transportation"], "name": "Ferry Platform"}, + "public_transport/platform/light_rail": {"icon": "temaki-sign_and_pedestrian", "fields": ["{public_transport/platform}"], "moreFields": ["{public_transport/platform}"], "geometry": ["line", "area"], "tags": {"public_transport": "platform", "light_rail": "yes"}, "addTags": {"public_transport": "platform", "light_rail": "yes", "railway": "platform"}, "reference": {"key": "railway", "value": "platform"}, "terms": ["electric", "light rail", "platform", "public transit", "public transportation", "rail", "track", "tram", "trolley", "transit", "transportation"], "name": "Light Rail Platform"}, + "public_transport/platform/monorail": {"icon": "temaki-sign_and_pedestrian", "fields": ["{public_transport/platform}"], "moreFields": ["{public_transport/platform}"], "geometry": ["line", "area"], "tags": {"public_transport": "platform", "monorail": "yes"}, "addTags": {"public_transport": "platform", "monorail": "yes", "railway": "platform"}, "reference": {"key": "railway", "value": "platform"}, "terms": ["monorail", "platform", "public transit", "public transportation", "rail", "transit", "transportation"], "name": "Monorail Platform"}, + "public_transport/platform/subway": {"icon": "temaki-sign_and_pedestrian", "fields": ["{public_transport/platform}"], "moreFields": ["{public_transport/platform}"], "geometry": ["line", "area"], "tags": {"public_transport": "platform", "subway": "yes"}, "addTags": {"public_transport": "platform", "subway": "yes", "railway": "platform"}, "reference": {"key": "railway", "value": "platform"}, "terms": ["metro", "platform", "public transit", "public transportation", "rail", "subway", "track", "transit", "transportation", "underground"], "name": "Subway Platform"}, + "public_transport/platform/train": {"icon": "temaki-sign_and_pedestrian", "fields": ["{public_transport/platform}"], "moreFields": ["{public_transport/platform}"], "geometry": ["line", "area"], "tags": {"public_transport": "platform", "train": "yes"}, "addTags": {"public_transport": "platform", "train": "yes", "railway": "platform"}, "reference": {"key": "railway", "value": "platform"}, "terms": ["platform", "public transit", "public transportation", "rail", "track", "train", "transit", "transportation"], "name": "Train Platform"}, "public_transport/platform/tram_point": {"icon": "temaki-tram", "fields": ["{public_transport/platform_point}"], "moreFields": ["{public_transport/platform_point}"], "geometry": ["point"], "tags": {"public_transport": "platform", "tram": "yes"}, "reference": {"key": "public_transport", "value": "platform"}, "terms": ["electric", "light rail", "platform", "public transit", "public transportation", "rail", "streetcar", "track", "tram", "trolley", "transit", "transportation"], "name": "Tram Stop / Platform"}, - "public_transport/platform/tram": {"icon": "temaki-pedestrian", "fields": ["{public_transport/platform}"], "moreFields": ["{public_transport/platform}"], "geometry": ["line", "area"], "tags": {"public_transport": "platform", "tram": "yes"}, "addTags": {"public_transport": "platform", "tram": "yes", "railway": "platform"}, "reference": {"key": "public_transport", "value": "platform"}, "terms": ["electric", "light rail", "platform", "public transit", "public transportation", "rail", "streetcar", "track", "tram", "trolley", "transit", "transportation"], "name": "Tram Platform"}, + "public_transport/platform/tram": {"icon": "temaki-sign_and_pedestrian", "fields": ["{public_transport/platform}"], "moreFields": ["{public_transport/platform}"], "geometry": ["line", "area"], "tags": {"public_transport": "platform", "tram": "yes"}, "addTags": {"public_transport": "platform", "tram": "yes", "railway": "platform"}, "reference": {"key": "public_transport", "value": "platform"}, "terms": ["electric", "light rail", "platform", "public transit", "public transportation", "rail", "streetcar", "track", "tram", "trolley", "transit", "transportation"], "name": "Tram Platform"}, "public_transport/platform/trolleybus_point": {"icon": "temaki-trolleybus", "fields": ["{public_transport/platform_point}"], "moreFields": ["{public_transport/platform_point}"], "geometry": ["point", "vertex"], "tags": {"public_transport": "platform", "trolleybus": "yes"}, "addTags": {"public_transport": "platform", "trolleybus": "yes", "highway": "bus_stop"}, "reference": {"key": "public_transport", "value": "platform"}, "terms": ["bus", "electric", "platform", "public transit", "public transportation", "streetcar", "trackless", "tram", "trolley", "transit", "transportation"], "name": "Trolleybus Stop"}, - "public_transport/platform/trolleybus": {"icon": "temaki-pedestrian", "fields": ["{public_transport/platform}"], "moreFields": ["{public_transport/platform}"], "geometry": ["line", "area"], "tags": {"public_transport": "platform", "trolleybus": "yes"}, "reference": {"key": "public_transport", "value": "platform"}, "terms": ["bus", "electric", "platform", "public transit", "public transportation", "streetcar", "trackless", "tram", "trolley", "transit", "transportation"], "name": "Trolleybus Platform"}, + "public_transport/platform/trolleybus": {"icon": "temaki-sign_and_pedestrian", "fields": ["{public_transport/platform}"], "moreFields": ["{public_transport/platform}"], "geometry": ["line", "area"], "tags": {"public_transport": "platform", "trolleybus": "yes"}, "reference": {"key": "public_transport", "value": "platform"}, "terms": ["bus", "electric", "platform", "public transit", "public transportation", "streetcar", "trackless", "tram", "trolley", "transit", "transportation"], "name": "Trolleybus Platform"}, "public_transport/station_aerialway": {"icon": "maki-aerialway", "fields": ["{public_transport/station}", "aerialway/access", "aerialway/summer/access"], "moreFields": ["{public_transport/station}"], "geometry": ["point", "vertex", "area"], "tags": {"aerialway": "station"}, "addTags": {"public_transport": "station", "aerialway": "station"}, "reference": {"key": "aerialway", "value": "station"}, "terms": ["aerialway", "cable car", "public transit", "public transportation", "station", "terminal", "transit", "transportation"], "name": "Aerialway Station"}, "public_transport/station_bus": {"icon": "maki-bus", "fields": ["{public_transport/station}"], "moreFields": ["{public_transport/station}"], "geometry": ["point", "area"], "tags": {"public_transport": "station", "bus": "yes"}, "addTags": {"public_transport": "station", "bus": "yes", "amenity": "bus_station"}, "reference": {"key": "amenity", "value": "bus_station"}, "terms": ["bus", "public transit", "public transportation", "station", "terminal", "transit", "transportation"], "name": "Bus Station / Terminal"}, "public_transport/station_ferry": {"icon": "maki-ferry", "fields": ["{public_transport/station}"], "moreFields": ["{public_transport/station}"], "geometry": ["vertex", "point", "area"], "tags": {"public_transport": "station", "ferry": "yes"}, "addTags": {"public_transport": "station", "ferry": "yes", "amenity": "ferry_terminal"}, "reference": {"key": "amenity", "value": "ferry_terminal"}, "terms": ["boat", "dock", "ferry", "pier", "public transit", "public transportation", "station", "terminal", "transit", "transportation"], "name": "Ferry Station / Terminal"}, @@ -1105,7 +1105,7 @@ "shop/military_surplus": {"icon": "temaki-military", "geometry": ["point", "area"], "terms": ["armor", "army-navy store", "army surplus", "navy surplus", "tactical gear", "war surplus shop", "weapons"], "tags": {"shop": "military_surplus"}, "name": "Military Surplus Store"}, "shop/mobile_phone": {"icon": "fas-mobile-alt", "geometry": ["point", "area"], "tags": {"shop": "mobile_phone"}, "name": "Mobile Phone Store"}, "shop/money_lender": {"icon": "temaki-money_hand", "fields": ["{shop}", "currency_multi"], "geometry": ["point", "area"], "tags": {"shop": "money_lender"}, "name": "Money Lender"}, - "shop/motorcycle_repair": {"icon": "fas-motorcycle", "fields": ["{shop}", "service/vehicle"], "geometry": ["point", "area"], "terms": ["auto", "bike", "garage", "motorcycle", "repair", "service"], "tags": {"shop": "motorcycle_repair"}, "name": "Motorcycle Repair Shop"}, + "shop/motorcycle_repair": {"icon": "temaki-motorcycle_repair", "fields": ["{shop}", "service/vehicle"], "geometry": ["point", "area"], "terms": ["auto", "bike", "garage", "motorcycle", "repair", "service"], "tags": {"shop": "motorcycle_repair"}, "name": "Motorcycle Repair Shop"}, "shop/motorcycle": {"icon": "fas-motorcycle", "fields": ["name", "brand", "{shop}"], "geometry": ["point", "area"], "terms": ["bike"], "tags": {"shop": "motorcycle"}, "name": "Motorcycle Dealership"}, "shop/music": {"icon": "fas-compact-disc", "geometry": ["point", "area"], "terms": ["tape casettes", "CDs", "compact discs", "vinyl records"], "tags": {"shop": "music"}, "name": "Music Store"}, "shop/musical_instrument": {"icon": "fas-guitar", "geometry": ["point", "area"], "terms": ["guitar"], "tags": {"shop": "musical_instrument"}, "name": "Musical Instrument Store"}, @@ -1169,9 +1169,9 @@ "tourism/artwork": {"icon": "maki-art-gallery", "fields": ["name", "artwork_type", "artist"], "moreFields": ["level", "material", "website"], "geometry": ["point", "vertex", "line", "area"], "tags": {"tourism": "artwork"}, "terms": ["mural", "sculpture", "statue"], "name": "Artwork"}, "tourism/artwork/bust": {"icon": "fas-user-alt", "fields": ["name", "artist", "material"], "geometry": ["point", "vertex"], "tags": {"tourism": "artwork", "artwork_type": "bust"}, "reference": {"key": "artwork_type"}, "terms": ["figure"], "name": "Bust"}, "tourism/artwork/graffiti": {"icon": "maki-art-gallery", "fields": ["name", "artist"], "geometry": ["point", "vertex", "line", "area"], "tags": {"tourism": "artwork", "artwork_type": "graffiti"}, "reference": {"key": "artwork_type"}, "terms": ["Street Artwork", "Guerilla Artwork", "Graffiti Artwork"], "name": "Graffiti"}, - "tourism/artwork/installation": {"icon": "maki-art-gallery", "fields": ["name", "artist"], "geometry": ["point", "vertex", "line", "area"], "tags": {"tourism": "artwork", "artwork_type": "installation"}, "reference": {"key": "artwork_type"}, "terms": ["interactive art", "intervention art", "modern art"], "name": "Art Installation"}, + "tourism/artwork/installation": {"icon": "temaki-sculpture", "fields": ["name", "artist"], "geometry": ["point", "vertex", "line", "area"], "tags": {"tourism": "artwork", "artwork_type": "installation"}, "reference": {"key": "artwork_type"}, "terms": ["interactive art", "intervention art", "modern art"], "name": "Art Installation"}, "tourism/artwork/mural": {"icon": "maki-art-gallery", "fields": ["name", "artist"], "geometry": ["point", "vertex", "line", "area"], "tags": {"tourism": "artwork", "artwork_type": "mural"}, "reference": {"key": "artwork_type", "value": "mural"}, "terms": ["fresco", "wall painting"], "name": "Mural"}, - "tourism/artwork/sculpture": {"icon": "maki-art-gallery", "fields": ["name", "artist", "material"], "geometry": ["point", "vertex", "line", "area"], "tags": {"tourism": "artwork", "artwork_type": "sculpture"}, "reference": {"key": "artwork_type", "value": "sculpture"}, "terms": ["statue", "figure", "carving"], "name": "Sculpture"}, + "tourism/artwork/sculpture": {"icon": "temaki-sculpture", "fields": ["name", "artist", "material"], "geometry": ["point", "vertex", "line", "area"], "tags": {"tourism": "artwork", "artwork_type": "sculpture"}, "reference": {"key": "artwork_type", "value": "sculpture"}, "terms": ["statue", "figure", "carving"], "name": "Sculpture"}, "tourism/artwork/statue": {"icon": "fas-female", "fields": ["name", "artist", "material"], "geometry": ["point", "vertex", "line", "area"], "tags": {"tourism": "artwork", "artwork_type": "statue"}, "reference": {"key": "artwork_type", "value": "statue"}, "terms": ["sculpture", "figure", "carving"], "name": "Statue"}, "tourism/attraction": {"icon": "maki-star", "fields": ["name", "operator", "address"], "geometry": ["point", "vertex", "line", "area"], "tags": {"tourism": "attraction"}, "matchScore": 0.75, "name": "Tourist Attraction"}, "tourism/camp_pitch": {"icon": "maki-campsite", "fields": ["name", "ref"], "geometry": ["point", "area"], "terms": ["tent", "rv"], "tags": {"tourism": "camp_pitch"}, "name": "Camp Pitch"}, @@ -2090,12 +2090,12 @@ "amenity/car_rental/トヨタレンタカー": {"name": "トヨタレンタカー", "icon": "maki-car-rental", "imageURL": "https://graph.facebook.com/rentacarjapan/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11321580", "amenity": "car_rental"}, "addTags": {"amenity": "car_rental", "brand": "トヨタレンタカー", "brand:en": "Toyota Rental Car", "brand:ja": "トヨタレンタカー", "brand:wikidata": "Q11321580", "brand:wikipedia": "ja:トヨタレンタリース", "name": "トヨタレンタカー", "name:en": "Toyota Rental Car", "name:ja": "トヨタレンタカー"}, "countryCodes": ["jp"], "terms": ["トヨタレンタリース"], "matchScore": 2, "suggestion": true}, "amenity/car_rental/ニッポンレンタカー": {"name": "ニッポンレンタカー", "icon": "maki-car-rental", "imageURL": "https://graph.facebook.com/115494788561573/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11086533", "amenity": "car_rental"}, "addTags": {"amenity": "car_rental", "brand": "ニッポンレンタカー", "brand:en": "Nippon Car Rental", "brand:ja": "ニッポンレンタカー", "brand:wikidata": "Q11086533", "brand:wikipedia": "ja:ニッポンレンタカー", "name": "ニッポンレンタカー", "name:en": "Nippon Car Rental", "name:ja": "ニッポンレンタカー"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/car_rental/日産レンタカー": {"name": "日産レンタカー", "icon": "maki-car-rental", "imageURL": "https://graph.facebook.com/231926140196841/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q11086838", "amenity": "car_rental"}, "addTags": {"amenity": "car_rental", "brand": "日産レンタカー", "brand:en": "Nissan Car Rental", "brand:ja": "日産レンタカー", "brand:wikidata": "Q11086838", "brand:wikipedia": "ja:日産レンタカー", "name": "日産レンタカー", "name:en": "Nissan Car Rental", "name:ja": "日産レンタカー"}, "countryCodes": ["jp"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/car_sharing/Bluely": {"name": "Bluely", "icon": "maki-car", "imageURL": "https://graph.facebook.com/bluely.eu/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q16039715", "amenity": "car_sharing"}, "addTags": {"amenity": "car_sharing", "brand": "Bluely", "brand:wikidata": "Q16039715", "brand:wikipedia": "fr:Bluely", "name": "Bluely"}, "countryCodes": ["fr"], "terms": ["station bluely"], "matchScore": 2, "suggestion": true}, - "amenity/car_sharing/Enterprise Car Club": {"name": "Enterprise Car Club", "icon": "maki-car", "imageURL": "https://graph.facebook.com/EnterpriseCarClub/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5123055", "amenity": "car_sharing"}, "addTags": {"amenity": "car_sharing", "brand": "Enterprise Car Club", "brand:wikidata": "Q5123055", "brand:wikipedia": "en:Enterprise Car Club", "name": "Enterprise Car Club"}, "countryCodes": ["gb"], "terms": ["city car club"], "matchScore": 2, "suggestion": true}, - "amenity/car_sharing/Greenwheels": {"name": "Greenwheels", "icon": "maki-car", "imageURL": "https://graph.facebook.com/Greenwheels.nl/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q316782", "amenity": "car_sharing"}, "addTags": {"amenity": "car_sharing", "brand": "Greenwheels", "brand:wikidata": "Q316782", "brand:wikipedia": "en:Greenwheels", "name": "Greenwheels"}, "countryCodes": ["de", "nl"], "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/car_sharing/Zipcar": {"name": "Zipcar", "icon": "maki-car", "imageURL": "https://graph.facebook.com/zipcar/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1069924", "amenity": "car_sharing"}, "addTags": {"amenity": "car_sharing", "brand": "Zipcar", "brand:wikidata": "Q1069924", "brand:wikipedia": "en:Zipcar", "name": "Zipcar"}, "terms": [], "matchScore": 2, "suggestion": true}, - "amenity/car_sharing/stadtmobil": {"name": "stadtmobil", "icon": "maki-car", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FStadtmobil%20logo.svg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2327629", "amenity": "car_sharing"}, "addTags": {"amenity": "car_sharing", "brand": "stadtmobil", "brand:wikidata": "Q2327629", "brand:wikipedia": "en:Stadtmobil", "name": "stadtmobil"}, "countryCodes": ["de"], "terms": ["stadtmobil carsharing-station"], "matchScore": 2, "suggestion": true}, - "amenity/car_sharing/teilAuto": {"name": "teilAuto", "icon": "maki-car", "imageURL": "https://graph.facebook.com/teilauto/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2400658", "amenity": "car_sharing"}, "addTags": {"amenity": "car_sharing", "brand": "teilAuto", "brand:wikidata": "Q2400658", "brand:wikipedia": "de:TeilAuto", "name": "teilAuto"}, "countryCodes": ["de"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/car_sharing/Bluely": {"name": "Bluely", "icon": "temaki-sign_and_car", "imageURL": "https://graph.facebook.com/bluely.eu/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q16039715", "amenity": "car_sharing"}, "addTags": {"amenity": "car_sharing", "brand": "Bluely", "brand:wikidata": "Q16039715", "brand:wikipedia": "fr:Bluely", "name": "Bluely"}, "countryCodes": ["fr"], "terms": ["station bluely"], "matchScore": 2, "suggestion": true}, + "amenity/car_sharing/Enterprise Car Club": {"name": "Enterprise Car Club", "icon": "temaki-sign_and_car", "imageURL": "https://graph.facebook.com/EnterpriseCarClub/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q5123055", "amenity": "car_sharing"}, "addTags": {"amenity": "car_sharing", "brand": "Enterprise Car Club", "brand:wikidata": "Q5123055", "brand:wikipedia": "en:Enterprise Car Club", "name": "Enterprise Car Club"}, "countryCodes": ["gb"], "terms": ["city car club"], "matchScore": 2, "suggestion": true}, + "amenity/car_sharing/Greenwheels": {"name": "Greenwheels", "icon": "temaki-sign_and_car", "imageURL": "https://graph.facebook.com/Greenwheels.nl/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q316782", "amenity": "car_sharing"}, "addTags": {"amenity": "car_sharing", "brand": "Greenwheels", "brand:wikidata": "Q316782", "brand:wikipedia": "en:Greenwheels", "name": "Greenwheels"}, "countryCodes": ["de", "nl"], "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/car_sharing/Zipcar": {"name": "Zipcar", "icon": "temaki-sign_and_car", "imageURL": "https://graph.facebook.com/zipcar/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q1069924", "amenity": "car_sharing"}, "addTags": {"amenity": "car_sharing", "brand": "Zipcar", "brand:wikidata": "Q1069924", "brand:wikipedia": "en:Zipcar", "name": "Zipcar"}, "terms": [], "matchScore": 2, "suggestion": true}, + "amenity/car_sharing/stadtmobil": {"name": "stadtmobil", "icon": "temaki-sign_and_car", "imageURL": "https://commons.wikimedia.org/w/index.php?title=Special%3ARedirect%2Ffile%2FStadtmobil%20logo.svg&width=100", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2327629", "amenity": "car_sharing"}, "addTags": {"amenity": "car_sharing", "brand": "stadtmobil", "brand:wikidata": "Q2327629", "brand:wikipedia": "en:Stadtmobil", "name": "stadtmobil"}, "countryCodes": ["de"], "terms": ["stadtmobil carsharing-station"], "matchScore": 2, "suggestion": true}, + "amenity/car_sharing/teilAuto": {"name": "teilAuto", "icon": "temaki-sign_and_car", "imageURL": "https://graph.facebook.com/teilauto/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q2400658", "amenity": "car_sharing"}, "addTags": {"amenity": "car_sharing", "brand": "teilAuto", "brand:wikidata": "Q2400658", "brand:wikipedia": "de:TeilAuto", "name": "teilAuto"}, "countryCodes": ["de"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/casino/Luckia": {"name": "Luckia", "icon": "maki-casino", "imageURL": "https://pbs.twimg.com/profile_images/1186190309409148929/ySzAHaqd_bigger.jpg", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q42304308", "amenity": "casino"}, "addTags": {"amenity": "casino", "brand": "Luckia", "brand:wikidata": "Q42304308", "name": "Luckia"}, "terms": [], "matchScore": 2, "suggestion": true}, "amenity/charging_station/Blink": {"name": "Blink", "icon": "fas-charging-station", "imageURL": "https://graph.facebook.com/blinkcharging/picture?type=large", "geometry": ["point"], "tags": {"brand:wikidata": "Q62065645", "amenity": "charging_station"}, "addTags": {"amenity": "charging_station", "brand": "Blink", "brand:wikidata": "Q62065645", "name": "Blink"}, "countryCodes": ["us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/charging_station/ChargePoint": {"name": "ChargePoint", "icon": "fas-charging-station", "imageURL": "https://graph.facebook.com/ChargePoint/picture?type=large", "geometry": ["point"], "tags": {"brand:wikidata": "Q5176149", "amenity": "charging_station"}, "addTags": {"amenity": "charging_station", "brand": "ChargePoint", "brand:wikidata": "Q5176149", "brand:wikipedia": "en:ChargePoint", "name": "ChargePoint"}, "terms": [], "matchScore": 2, "suggestion": true}, diff --git a/data/presets/presets/aeroway/jet_bridge.json b/data/presets/presets/aeroway/jet_bridge.json index 60788157ff..b145a3ce8d 100644 --- a/data/presets/presets/aeroway/jet_bridge.json +++ b/data/presets/presets/aeroway/jet_bridge.json @@ -1,5 +1,5 @@ { - "icon": "temaki-pedestrian", + "icon": "temaki-pedestrian_walled", "geometry": [ "line" ], diff --git a/data/presets/presets/amenity/_scrapyard.json b/data/presets/presets/amenity/_scrapyard.json index 42026c09d3..a3935bd920 100644 --- a/data/presets/presets/amenity/_scrapyard.json +++ b/data/presets/presets/amenity/_scrapyard.json @@ -1,5 +1,5 @@ { - "icon": "maki-car", + "icon": "temaki-junk_car", "fields": [ "name", "operator", diff --git a/data/presets/presets/amenity/bicycle_parking/building.json b/data/presets/presets/amenity/bicycle_parking/building.json index 3489b45a94..d62298fa57 100644 --- a/data/presets/presets/amenity/bicycle_parking/building.json +++ b/data/presets/presets/amenity/bicycle_parking/building.json @@ -1,5 +1,5 @@ { - "icon": "maki-bicycle", + "icon": "temaki-bicycle_structure", "fields": [ "{amenity/bicycle_parking}", "opening_hours", diff --git a/data/presets/presets/amenity/bicycle_repair_station.json b/data/presets/presets/amenity/bicycle_repair_station.json index ebd5fa92a9..981729280d 100644 --- a/data/presets/presets/amenity/bicycle_repair_station.json +++ b/data/presets/presets/amenity/bicycle_repair_station.json @@ -1,5 +1,5 @@ { - "icon": "maki-bicycle", + "icon": "temaki-bicycle_repair", "fields": [ "operator", "brand", diff --git a/data/presets/presets/amenity/car_pooling.json b/data/presets/presets/amenity/car_pooling.json index 2e7801b910..5e9d7431cb 100644 --- a/data/presets/presets/amenity/car_pooling.json +++ b/data/presets/presets/amenity/car_pooling.json @@ -1,5 +1,5 @@ { - "icon": "maki-car", + "icon": "temaki-car_pool", "fields": [ "name", "operator", diff --git a/data/presets/presets/amenity/car_sharing.json b/data/presets/presets/amenity/car_sharing.json index 3f8756e297..06333fbf9d 100644 --- a/data/presets/presets/amenity/car_sharing.json +++ b/data/presets/presets/amenity/car_sharing.json @@ -1,5 +1,5 @@ { - "icon": "maki-car", + "icon": "temaki-sign_and_car", "fields": [ "name", "operator", diff --git a/data/presets/presets/amenity/parking/multi-storey.json b/data/presets/presets/amenity/parking/multi-storey.json index 69d55fc366..df88378aa9 100644 --- a/data/presets/presets/amenity/parking/multi-storey.json +++ b/data/presets/presets/amenity/parking/multi-storey.json @@ -1,5 +1,5 @@ { - "icon": "maki-car", + "icon": "temaki-car_structure", "fields": [ "name", "{amenity/parking}", diff --git a/data/presets/presets/amenity/parking/park_ride.json b/data/presets/presets/amenity/parking/park_ride.json index bdc28aee81..1019f8ed30 100644 --- a/data/presets/presets/amenity/parking/park_ride.json +++ b/data/presets/presets/amenity/parking/park_ride.json @@ -1,5 +1,5 @@ { - "icon": "maki-car", + "icon": "temaki-sign_and_car", "geometry": [ "point", "vertex", diff --git a/data/presets/presets/amenity/parking/underground.json b/data/presets/presets/amenity/parking/underground.json index f1225da394..f0596cbca2 100644 --- a/data/presets/presets/amenity/parking/underground.json +++ b/data/presets/presets/amenity/parking/underground.json @@ -1,5 +1,5 @@ { - "icon": "maki-car", + "icon": "temaki-car_structure", "fields": [ "{amenity/parking}", "layer" diff --git a/data/presets/presets/barrier/height_restrictor.json b/data/presets/presets/barrier/height_restrictor.json index 3c255a8635..0a2d7e601b 100644 --- a/data/presets/presets/barrier/height_restrictor.json +++ b/data/presets/presets/barrier/height_restrictor.json @@ -1,5 +1,5 @@ { - "icon": "temaki-car_wash", + "icon": "temaki-height_restrictor", "fields": [ "maxheight" ], diff --git a/data/presets/presets/building/stable.json b/data/presets/presets/building/stable.json index 51df59a7b8..ce4a575c1c 100644 --- a/data/presets/presets/building/stable.json +++ b/data/presets/presets/building/stable.json @@ -1,11 +1,14 @@ { - "icon": "maki-horse-riding", + "icon": "temaki-horse_shelter", "geometry": [ "area" ], "tags": { "building": "stable" }, + "terms": [ + "horse shelter" + ], "matchScore": 0.5, "name": "Stable" } diff --git a/data/presets/presets/craft/basket_maker.json b/data/presets/presets/craft/basket_maker.json index 2c6e8113d8..2387e0a663 100644 --- a/data/presets/presets/craft/basket_maker.json +++ b/data/presets/presets/craft/basket_maker.json @@ -1,5 +1,5 @@ { - "icon": "maki-art-gallery", + "icon": "temaki-vase", "geometry": [ "point", "area" diff --git a/data/presets/presets/craft/boatbuilder.json b/data/presets/presets/craft/boatbuilder.json index d2adea6210..9d38c58728 100644 --- a/data/presets/presets/craft/boatbuilder.json +++ b/data/presets/presets/craft/boatbuilder.json @@ -1,5 +1,5 @@ { - "icon": "temaki-tools", + "icon": "temaki-boat_repair", "geometry": [ "point", "area" @@ -7,6 +7,6 @@ "tags": { "craft": "boatbuilder" }, - "matchScore": 0.4, + "matchScore": 0.6, "name": "Boat Builder" } diff --git a/data/presets/presets/craft/handicraft.json b/data/presets/presets/craft/handicraft.json index 1a9c191be7..f5958ba530 100644 --- a/data/presets/presets/craft/handicraft.json +++ b/data/presets/presets/craft/handicraft.json @@ -1,5 +1,5 @@ { - "icon": "maki-art-gallery", + "icon": "temaki-vase", "geometry": [ "point", "area" diff --git a/data/presets/presets/craft/pottery.json b/data/presets/presets/craft/pottery.json index b8a4919c56..e93ec6a5f6 100644 --- a/data/presets/presets/craft/pottery.json +++ b/data/presets/presets/craft/pottery.json @@ -1,5 +1,5 @@ { - "icon": "maki-art-gallery", + "icon": "temaki-vase", "geometry": [ "point", "area" diff --git a/data/presets/presets/highway/corridor.json b/data/presets/presets/highway/corridor.json index 1db83e5b09..682872d199 100644 --- a/data/presets/presets/highway/corridor.json +++ b/data/presets/presets/highway/corridor.json @@ -1,5 +1,5 @@ { - "icon": "temaki-pedestrian", + "icon": "temaki-pedestrian_walled", "fields": [ "name", "width", diff --git a/data/presets/presets/highway/crossing/_zebra-raised.json b/data/presets/presets/highway/crossing/_zebra-raised.json index b4f4adefdc..6f420ff75c 100644 --- a/data/presets/presets/highway/crossing/_zebra-raised.json +++ b/data/presets/presets/highway/crossing/_zebra-raised.json @@ -1,5 +1,5 @@ { - "icon": "temaki-pedestrian", + "icon": "temaki-pedestrian_crosswalk", "fields": [ "crossing", "tactile_paving", diff --git a/data/presets/presets/highway/crossing/_zebra.json b/data/presets/presets/highway/crossing/_zebra.json index 75a8fb7e42..87014d7eb2 100644 --- a/data/presets/presets/highway/crossing/_zebra.json +++ b/data/presets/presets/highway/crossing/_zebra.json @@ -1,5 +1,5 @@ { - "icon": "temaki-pedestrian", + "icon": "temaki-pedestrian_crosswalk", "fields": [ "crossing", "tactile_paving", diff --git a/data/presets/presets/highway/crossing/marked-raised.json b/data/presets/presets/highway/crossing/marked-raised.json index a2d00e3027..83fa6f4741 100644 --- a/data/presets/presets/highway/crossing/marked-raised.json +++ b/data/presets/presets/highway/crossing/marked-raised.json @@ -1,5 +1,5 @@ { - "icon": "temaki-pedestrian", + "icon": "temaki-pedestrian_crosswalk", "fields": [ "crossing", "tactile_paving", diff --git a/data/presets/presets/highway/crossing/marked.json b/data/presets/presets/highway/crossing/marked.json index f601fd8000..924ace9cb1 100644 --- a/data/presets/presets/highway/crossing/marked.json +++ b/data/presets/presets/highway/crossing/marked.json @@ -1,5 +1,5 @@ { - "icon": "temaki-pedestrian", + "icon": "temaki-pedestrian_crosswalk", "fields": [ "crossing", "tactile_paving", diff --git a/data/presets/presets/highway/cycleway/_crossing.json b/data/presets/presets/highway/cycleway/_crossing.json index a8ddd03b3f..3a8e678377 100644 --- a/data/presets/presets/highway/cycleway/_crossing.json +++ b/data/presets/presets/highway/cycleway/_crossing.json @@ -1,5 +1,5 @@ { - "icon": "fas-biking", + "icon": "temaki-cyclist_crosswalk", "fields": [ "crossing", "access", diff --git a/data/presets/presets/highway/cycleway/bicycle_foot.json b/data/presets/presets/highway/cycleway/bicycle_foot.json index 08afce2dcd..17ce882e72 100644 --- a/data/presets/presets/highway/cycleway/bicycle_foot.json +++ b/data/presets/presets/highway/cycleway/bicycle_foot.json @@ -2,7 +2,7 @@ "notCountryCodes": [ "fr", "lt", "pl" ], - "icon": "fas-biking", + "icon": "temaki-pedestrian_and_cyclist", "geometry": [ "line" ], diff --git a/data/presets/presets/highway/cycleway/crossing/marked.json b/data/presets/presets/highway/cycleway/crossing/marked.json index dd1b98317f..4444814ddf 100644 --- a/data/presets/presets/highway/cycleway/crossing/marked.json +++ b/data/presets/presets/highway/cycleway/crossing/marked.json @@ -1,5 +1,5 @@ { - "icon": "fas-biking", + "icon": "temaki-cyclist_crosswalk", "fields": [ "crossing", "access", diff --git a/data/presets/presets/highway/footway/_zebra-raised.json b/data/presets/presets/highway/footway/_zebra-raised.json index d981e4790a..2c34240e81 100644 --- a/data/presets/presets/highway/footway/_zebra-raised.json +++ b/data/presets/presets/highway/footway/_zebra-raised.json @@ -1,5 +1,5 @@ { - "icon": "temaki-pedestrian", + "icon": "temaki-pedestrian_crosswalk", "fields": [ "crossing", "access", diff --git a/data/presets/presets/highway/footway/_zebra.json b/data/presets/presets/highway/footway/_zebra.json index 2ff0ae0675..05ffdcc9cb 100644 --- a/data/presets/presets/highway/footway/_zebra.json +++ b/data/presets/presets/highway/footway/_zebra.json @@ -1,5 +1,5 @@ { - "icon": "temaki-pedestrian", + "icon": "temaki-pedestrian_crosswalk", "fields": [ "crossing", "access", diff --git a/data/presets/presets/highway/footway/marked-raised.json b/data/presets/presets/highway/footway/marked-raised.json index d21fb2fd9d..bf27ab08d3 100644 --- a/data/presets/presets/highway/footway/marked-raised.json +++ b/data/presets/presets/highway/footway/marked-raised.json @@ -1,5 +1,5 @@ { - "icon": "temaki-pedestrian", + "icon": "temaki-pedestrian_crosswalk", "fields": [ "crossing", "access", diff --git a/data/presets/presets/highway/footway/marked.json b/data/presets/presets/highway/footway/marked.json index e0f171c6d1..59cb0f86df 100644 --- a/data/presets/presets/highway/footway/marked.json +++ b/data/presets/presets/highway/footway/marked.json @@ -1,5 +1,5 @@ { - "icon": "temaki-pedestrian", + "icon": "temaki-pedestrian_crosswalk", "fields": [ "crossing", "access", diff --git a/data/presets/presets/historic/memorial/plaque.json b/data/presets/presets/historic/memorial/plaque.json index 49bb3f6de7..f04f956aca 100644 --- a/data/presets/presets/historic/memorial/plaque.json +++ b/data/presets/presets/historic/memorial/plaque.json @@ -1,5 +1,5 @@ { - "icon": "maki-monument", + "icon": "temaki-plaque", "fields": [ "{historic/memorial}", "direction" diff --git a/data/presets/presets/landuse/industrial/scrap_yard.json b/data/presets/presets/landuse/industrial/scrap_yard.json index 58aed4ef74..02c083d5ff 100644 --- a/data/presets/presets/landuse/industrial/scrap_yard.json +++ b/data/presets/presets/landuse/industrial/scrap_yard.json @@ -1,5 +1,5 @@ { - "icon": "maki-car", + "icon": "temaki-junk_car", "fields": [ "name", "operator", diff --git a/data/presets/presets/man_made/pier.json b/data/presets/presets/man_made/pier.json index 1adf4bb42e..369c2c9819 100644 --- a/data/presets/presets/man_made/pier.json +++ b/data/presets/presets/man_made/pier.json @@ -1,5 +1,5 @@ { - "icon": "temaki-pedestrian", + "icon": "temaki-pier_fixed", "fields": [ "name", "surface", diff --git a/data/presets/presets/man_made/pier/floating.json b/data/presets/presets/man_made/pier/floating.json index 4aa12a93ac..33d6f08755 100644 --- a/data/presets/presets/man_made/pier/floating.json +++ b/data/presets/presets/man_made/pier/floating.json @@ -1,5 +1,5 @@ { - "icon": "temaki-pedestrian", + "icon": "temaki-pier_floating", "geometry": [ "line", "area" diff --git a/data/presets/presets/public_transport/platform/aerialway.json b/data/presets/presets/public_transport/platform/aerialway.json index 998f909448..97fbc4443a 100644 --- a/data/presets/presets/public_transport/platform/aerialway.json +++ b/data/presets/presets/public_transport/platform/aerialway.json @@ -1,5 +1,5 @@ { - "icon": "temaki-pedestrian", + "icon": "temaki-sign_and_pedestrian", "fields": [ "{public_transport/platform}" ], diff --git a/data/presets/presets/public_transport/platform/bus.json b/data/presets/presets/public_transport/platform/bus.json index 289e030bdb..a8c47f42d7 100644 --- a/data/presets/presets/public_transport/platform/bus.json +++ b/data/presets/presets/public_transport/platform/bus.json @@ -1,5 +1,5 @@ { - "icon": "temaki-pedestrian", + "icon": "temaki-sign_and_pedestrian", "fields": [ "{public_transport/platform}" ], diff --git a/data/presets/presets/public_transport/platform/ferry.json b/data/presets/presets/public_transport/platform/ferry.json index 4c0966819d..a0fb817741 100644 --- a/data/presets/presets/public_transport/platform/ferry.json +++ b/data/presets/presets/public_transport/platform/ferry.json @@ -1,5 +1,5 @@ { - "icon": "temaki-pedestrian", + "icon": "temaki-sign_and_pedestrian", "fields": [ "{public_transport/platform}" ], diff --git a/data/presets/presets/public_transport/platform/light_rail.json b/data/presets/presets/public_transport/platform/light_rail.json index 70f5162984..c6e0453053 100644 --- a/data/presets/presets/public_transport/platform/light_rail.json +++ b/data/presets/presets/public_transport/platform/light_rail.json @@ -1,5 +1,5 @@ { - "icon": "temaki-pedestrian", + "icon": "temaki-sign_and_pedestrian", "fields": [ "{public_transport/platform}" ], diff --git a/data/presets/presets/public_transport/platform/monorail.json b/data/presets/presets/public_transport/platform/monorail.json index 6cc41dda84..6534097f09 100644 --- a/data/presets/presets/public_transport/platform/monorail.json +++ b/data/presets/presets/public_transport/platform/monorail.json @@ -1,5 +1,5 @@ { - "icon": "temaki-pedestrian", + "icon": "temaki-sign_and_pedestrian", "fields": [ "{public_transport/platform}" ], diff --git a/data/presets/presets/public_transport/platform/subway.json b/data/presets/presets/public_transport/platform/subway.json index 2c053e8543..184193961f 100644 --- a/data/presets/presets/public_transport/platform/subway.json +++ b/data/presets/presets/public_transport/platform/subway.json @@ -1,5 +1,5 @@ { - "icon": "temaki-pedestrian", + "icon": "temaki-sign_and_pedestrian", "fields": [ "{public_transport/platform}" ], diff --git a/data/presets/presets/public_transport/platform/train.json b/data/presets/presets/public_transport/platform/train.json index 0e210add44..d56ed62607 100644 --- a/data/presets/presets/public_transport/platform/train.json +++ b/data/presets/presets/public_transport/platform/train.json @@ -1,5 +1,5 @@ { - "icon": "temaki-pedestrian", + "icon": "temaki-sign_and_pedestrian", "fields": [ "{public_transport/platform}" ], diff --git a/data/presets/presets/public_transport/platform/tram.json b/data/presets/presets/public_transport/platform/tram.json index 9fb5d0a519..2663dd5af7 100644 --- a/data/presets/presets/public_transport/platform/tram.json +++ b/data/presets/presets/public_transport/platform/tram.json @@ -1,5 +1,5 @@ { - "icon": "temaki-pedestrian", + "icon": "temaki-sign_and_pedestrian", "fields": [ "{public_transport/platform}" ], diff --git a/data/presets/presets/public_transport/platform/trolleybus.json b/data/presets/presets/public_transport/platform/trolleybus.json index cdef6c351d..f566f79a1f 100644 --- a/data/presets/presets/public_transport/platform/trolleybus.json +++ b/data/presets/presets/public_transport/platform/trolleybus.json @@ -1,5 +1,5 @@ { - "icon": "temaki-pedestrian", + "icon": "temaki-sign_and_pedestrian", "fields": [ "{public_transport/platform}" ], diff --git a/data/presets/presets/shop/motorcycle_repair.json b/data/presets/presets/shop/motorcycle_repair.json index 3e1a181f2a..13bb316ad1 100644 --- a/data/presets/presets/shop/motorcycle_repair.json +++ b/data/presets/presets/shop/motorcycle_repair.json @@ -1,5 +1,5 @@ { - "icon": "fas-motorcycle", + "icon": "temaki-motorcycle_repair", "fields": [ "{shop}", "service/vehicle" diff --git a/data/presets/presets/tourism/artwork/installation.json b/data/presets/presets/tourism/artwork/installation.json index 2824a35382..46455b8f18 100644 --- a/data/presets/presets/tourism/artwork/installation.json +++ b/data/presets/presets/tourism/artwork/installation.json @@ -1,5 +1,5 @@ { - "icon": "maki-art-gallery", + "icon": "temaki-sculpture", "fields": [ "name", "artist" diff --git a/data/presets/presets/tourism/artwork/sculpture.json b/data/presets/presets/tourism/artwork/sculpture.json index 7bb0739581..84e679938f 100644 --- a/data/presets/presets/tourism/artwork/sculpture.json +++ b/data/presets/presets/tourism/artwork/sculpture.json @@ -1,5 +1,5 @@ { - "icon": "maki-art-gallery", + "icon": "temaki-sculpture", "fields": [ "name", "artist", diff --git a/data/taginfo.json b/data/taginfo.json index 5a5e6e30ca..9bd3b40ab8 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -51,7 +51,7 @@ {"key": "aeroway", "value": "hangar", "description": "🄿 Hangar", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD@master/svg/fontawesome/fas-warehouse.svg"}, {"key": "aeroway", "value": "helipad", "description": "🄿 Helipad", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/heliport-15.svg"}, {"key": "aeroway", "value": "holding_position", "description": "🄿 Aircraft Holding Position", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/airport-15.svg"}, - {"key": "aeroway", "value": "jet_bridge", "description": "🄿 Jet Bridge", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/pedestrian.svg"}, + {"key": "aeroway", "value": "jet_bridge", "description": "🄿 Jet Bridge", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/pedestrian_walled.svg"}, {"key": "aeroway", "value": "parking_position", "description": "🄿 Aircraft Parking Position", "object_types": ["node", "way"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/airport-15.svg"}, {"key": "aeroway", "value": "runway", "description": "🄿 Runway", "object_types": ["way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD@master/svg/fontawesome/fas-plane-departure.svg"}, {"key": "aeroway", "value": "spaceport", "description": "🄿 Spaceport", "object_types": ["area", "node"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD@master/svg/fontawesome/fas-space-shuttle.svg"}, @@ -66,7 +66,7 @@ {"key": "amenity", "value": "nursing_home", "description": "🄿 Nursing Home (unsearchable)", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/wheelchair-15.svg"}, {"key": "amenity", "value": "recycling", "description": "🄿 Recycling (unsearchable)", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/recycling-15.svg"}, {"key": "amenity", "value": "register_office", "description": "🄿 Register Office (unsearchable), 🄳 ➜ office=government + government=register_office", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/town-hall-15.svg"}, - {"key": "amenity", "value": "scrapyard", "description": "🄿 Scrap Yard (unsearchable), 🄳 ➜ landuse=industrial + industrial=scrap_yard", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/car-15.svg"}, + {"key": "amenity", "value": "scrapyard", "description": "🄿 Scrap Yard (unsearchable), 🄳 ➜ landuse=industrial + industrial=scrap_yard", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/junk_car.svg"}, {"key": "amenity", "value": "swimming_pool", "description": "🄿 Swimming Pool (unsearchable), 🄳 ➜ leisure=swimming_pool", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD@master/svg/fontawesome/fas-swimmer.svg"}, {"key": "amenity", "value": "animal_boarding", "description": "🄿 Animal Boarding Facility", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/veterinary-15.svg"}, {"key": "amenity", "value": "animal_breeding", "description": "🄿 Animal Breeding Facility", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/veterinary-15.svg"}, @@ -79,18 +79,18 @@ {"key": "amenity", "value": "bbq", "description": "🄿 Barbecue/Grill", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/bbq-15.svg"}, {"key": "amenity", "value": "bench", "description": "🄿 Bench", "object_types": ["node", "way"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/bench.svg"}, {"key": "amenity", "value": "bicycle_parking", "description": "🄿 Bicycle Parking", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/bicycle-15.svg"}, - {"key": "bicycle_parking", "value": "building", "description": "🄿 Bicycle Parking Garage", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/bicycle-15.svg"}, + {"key": "bicycle_parking", "value": "building", "description": "🄿 Bicycle Parking Garage", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/bicycle_structure.svg"}, {"key": "bicycle_parking", "value": "lockers", "description": "🄿 Bicycle Lockers", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/bicycle_box.svg"}, {"key": "bicycle_parking", "value": "shed", "description": "🄿 Bicycle Shed", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/bicycle-15.svg"}, {"key": "amenity", "value": "bicycle_rental", "description": "🄿 Bicycle Rental", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/bicycle_rental.svg"}, - {"key": "amenity", "value": "bicycle_repair_station", "description": "🄿 Bicycle Repair Tool Stand", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/bicycle-15.svg"}, + {"key": "amenity", "value": "bicycle_repair_station", "description": "🄿 Bicycle Repair Tool Stand", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/bicycle_repair.svg"}, {"key": "amenity", "value": "biergarten", "description": "🄿 Biergarten", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD@master/svg/fontawesome/fas-beer.svg"}, {"key": "amenity", "value": "boat_rental", "description": "🄿 Boat Rental", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/boat_rental.svg"}, {"key": "amenity", "value": "bureau_de_change", "description": "🄿 Currency Exchange", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/money_hand.svg"}, {"key": "amenity", "value": "cafe", "description": "🄿 Cafe", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/cafe-15.svg"}, - {"key": "amenity", "value": "car_pooling", "description": "🄿 Car Pooling", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/car-15.svg"}, + {"key": "amenity", "value": "car_pooling", "description": "🄿 Car Pooling", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/car_pool.svg"}, {"key": "amenity", "value": "car_rental", "description": "🄿 Car Rental", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/car-rental-15.svg"}, - {"key": "amenity", "value": "car_sharing", "description": "🄿 Car Sharing", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/car-15.svg"}, + {"key": "amenity", "value": "car_sharing", "description": "🄿 Car Sharing", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/sign_and_car.svg"}, {"key": "amenity", "value": "car_wash", "description": "🄿 Car Wash", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/car_wash.svg"}, {"key": "amenity", "value": "casino", "description": "🄿 Casino", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/casino-15.svg"}, {"key": "amenity", "value": "charging_station", "description": "🄿 Charging Station", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD@master/svg/fontawesome/fas-charging-station.svg"}, @@ -152,9 +152,9 @@ {"key": "amenity", "value": "parking_entrance", "description": "🄿 Parking Garage Entrance/Exit", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/entrance-alt1-15.svg"}, {"key": "amenity", "value": "parking_space", "description": "🄿 Parking Space", "object_types": ["node", "area"]}, {"key": "amenity", "value": "parking", "description": "🄿 Parking Lot", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/car-15.svg"}, - {"key": "parking", "value": "multi-storey", "description": "🄿 Multilevel Parking Garage, 🄵 Type", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/car-15.svg"}, - {"key": "park_ride", "value": "yes", "description": "🄿 Park & Ride Lot", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/car-15.svg"}, - {"key": "parking", "value": "underground", "description": "🄿 Underground Parking, 🄵 Type", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/car-15.svg"}, + {"key": "parking", "value": "multi-storey", "description": "🄿 Multilevel Parking Garage, 🄵 Type", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/car_structure.svg"}, + {"key": "park_ride", "value": "yes", "description": "🄿 Park & Ride Lot", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/sign_and_car.svg"}, + {"key": "parking", "value": "underground", "description": "🄿 Underground Parking, 🄵 Type", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/car_structure.svg"}, {"key": "amenity", "value": "payment_centre", "description": "🄿 Payment Center", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/money_hand.svg"}, {"key": "amenity", "value": "payment_terminal", "description": "🄿 Payment Terminal", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD@master/svg/fontawesome/far-credit-card.svg"}, {"key": "amenity", "value": "pharmacy", "description": "🄿 Pharmacy Counter", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/pharmacy-15.svg"}, @@ -303,7 +303,7 @@ {"key": "barrier", "value": "gate", "description": "🄿 Gate", "object_types": ["node", "way"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/gate.svg"}, {"key": "barrier", "value": "guard_rail", "description": "🄿 Guard Rail", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/guard_rail.svg"}, {"key": "barrier", "value": "hedge", "description": "🄿 Hedge", "object_types": ["way", "area"]}, - {"key": "barrier", "value": "height_restrictor", "description": "🄿 Height Restrictor", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/car_wash.svg"}, + {"key": "barrier", "value": "height_restrictor", "description": "🄿 Height Restrictor", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/height_restrictor.svg"}, {"key": "barrier", "value": "kerb", "description": "🄿 Curb", "object_types": ["node", "way"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/kerb-raised.svg"}, {"key": "kerb", "value": "flush", "description": "🄿 Flush Curb", "object_types": ["node", "way"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/kerb-flush.svg"}, {"key": "kerb", "value": "lowered", "description": "🄿 Lowered Curb", "object_types": ["node", "way"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/kerb-lowered.svg"}, @@ -365,7 +365,7 @@ {"key": "building", "value": "semidetached_house", "description": "🄿 Semi-Detached House", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/home-15.svg"}, {"key": "building", "value": "service", "description": "🄿 Service Building", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/building-15.svg"}, {"key": "building", "value": "shed", "description": "🄿 Shed", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD@master/svg/fontawesome/fas-warehouse.svg"}, - {"key": "building", "value": "stable", "description": "🄿 Stable", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/horse-riding-15.svg"}, + {"key": "building", "value": "stable", "description": "🄿 Stable", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/horse_shelter.svg"}, {"key": "building", "value": "stadium", "description": "🄿 Stadium Building", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/stadium-15.svg"}, {"key": "building", "value": "static_caravan", "description": "🄿 Static Mobile Home", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/home-15.svg"}, {"key": "building", "value": "temple", "description": "🄿 Temple Building", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/place-of-worship-15.svg"}, @@ -379,10 +379,10 @@ {"key": "craft", "value": "locksmith", "description": "🄿 Locksmith (unsearchable)", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/marker-stroked-15.svg"}, {"key": "craft", "value": "tailor", "description": "🄿 Tailor (unsearchable)", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/clothing-store-15.svg"}, {"key": "craft", "value": "agricultural_engines", "description": "🄿 Argricultural Engines Mechanic", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/tools.svg"}, - {"key": "craft", "value": "basket_maker", "description": "🄿 Basket Maker", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/art-gallery-15.svg"}, + {"key": "craft", "value": "basket_maker", "description": "🄿 Basket Maker", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/vase.svg"}, {"key": "craft", "value": "beekeeper", "description": "🄿 Beekeeper", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/farm-15.svg"}, {"key": "craft", "value": "blacksmith", "description": "🄿 Blacksmith", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/tools.svg"}, - {"key": "craft", "value": "boatbuilder", "description": "🄿 Boat Builder", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/tools.svg"}, + {"key": "craft", "value": "boatbuilder", "description": "🄿 Boat Builder", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/boat_repair.svg"}, {"key": "craft", "value": "bookbinder", "description": "🄿 Bookbinder", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/library-15.svg"}, {"key": "craft", "value": "brewery", "description": "🄿 Brewery", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/storage_fermenter.svg"}, {"key": "craft", "value": "carpenter", "description": "🄿 Carpenter", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/tools.svg"}, @@ -398,7 +398,7 @@ {"key": "craft", "value": "floorer", "description": "🄿 Floorer", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/tools.svg"}, {"key": "craft", "value": "gardener", "description": "🄿 Gardener", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/garden-centre-15.svg"}, {"key": "craft", "value": "glaziery", "description": "🄿 Glaziery", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/window.svg"}, - {"key": "craft", "value": "handicraft", "description": "🄿 Handicraft", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/art-gallery-15.svg"}, + {"key": "craft", "value": "handicraft", "description": "🄿 Handicraft", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/vase.svg"}, {"key": "craft", "value": "hvac", "description": "🄿 HVAC", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/tools.svg"}, {"key": "craft", "value": "insulation", "description": "🄿 Insulator", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/tools.svg"}, {"key": "craft", "value": "joiner", "description": "🄿 Joiner", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/tools.svg"}, @@ -410,7 +410,7 @@ {"key": "craft", "value": "photographic_laboratory", "description": "🄿 Photographic Laboratory", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD@master/svg/fontawesome/fas-film.svg"}, {"key": "craft", "value": "plasterer", "description": "🄿 Plasterer", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/tools.svg"}, {"key": "craft", "value": "plumber", "description": "🄿 Plumber", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/plumber.svg"}, - {"key": "craft", "value": "pottery", "description": "🄿 Pottery", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/art-gallery-15.svg"}, + {"key": "craft", "value": "pottery", "description": "🄿 Pottery", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/vase.svg"}, {"key": "craft", "value": "rigger", "description": "🄿 Rigger", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/tools.svg"}, {"key": "craft", "value": "roofer", "description": "🄿 Roofer", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/tools.svg"}, {"key": "craft", "value": "saddler", "description": "🄿 Saddler", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/tools.svg"}, @@ -481,14 +481,14 @@ {"key": "highway", "value": "bridleway", "description": "🄿 Bridle Path", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/horse-riding-15.svg"}, {"key": "highway", "value": "bus_guideway", "description": "🄿 Bus Guideway", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/bus-15.svg"}, {"key": "access", "value": "no", "description": "🄿 Road Closed, 🄵 Allowed Access", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/barrier-15.svg"}, - {"key": "highway", "value": "corridor", "description": "🄿 Indoor Corridor", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/pedestrian.svg"}, - {"key": "traffic_calming", "value": "table", "description": "🄿 Marked Crosswalk (Raised) (unsearchable), 🄿 Marked Crosswalk (Raised), 🄿 Unmarked Crossing (Raised), 🄿 Speed Table", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/pedestrian.svg"}, - {"key": "crossing", "value": "zebra", "description": "🄿 Marked Crosswalk (unsearchable)", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/pedestrian.svg"}, - {"key": "crossing", "value": "marked", "description": "🄿 Marked Crosswalk, 🄿 Marked Cycle Crossing", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/pedestrian.svg"}, + {"key": "highway", "value": "corridor", "description": "🄿 Indoor Corridor", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/pedestrian_walled.svg"}, + {"key": "traffic_calming", "value": "table", "description": "🄿 Marked Crosswalk (Raised) (unsearchable), 🄿 Marked Crosswalk (Raised), 🄿 Unmarked Crossing (Raised), 🄿 Speed Table", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/pedestrian_crosswalk.svg"}, + {"key": "crossing", "value": "zebra", "description": "🄿 Marked Crosswalk (unsearchable)", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/pedestrian_crosswalk.svg"}, + {"key": "crossing", "value": "marked", "description": "🄿 Marked Crosswalk, 🄿 Marked Cycle Crossing", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/pedestrian_crosswalk.svg"}, {"key": "crossing", "value": "unmarked", "description": "🄿 Unmarked Crossing, 🄿 Unmarked Cycle Crossing", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/pedestrian.svg"}, {"key": "highway", "value": "cycleway", "description": "🄿 Cycle Path", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD@master/svg/fontawesome/fas-biking.svg"}, - {"key": "cycleway", "value": "crossing", "description": "🄿 Cycle Crossing (unsearchable)", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD@master/svg/fontawesome/fas-biking.svg"}, - {"key": "foot", "value": "designated", "description": "🄿 Cycle & Foot Path, 🄵 Allowed Access", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD@master/svg/fontawesome/fas-biking.svg"}, + {"key": "cycleway", "value": "crossing", "description": "🄿 Cycle Crossing (unsearchable)", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/cyclist_crosswalk.svg"}, + {"key": "foot", "value": "designated", "description": "🄿 Cycle & Foot Path, 🄵 Allowed Access", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/pedestrian_and_cyclist.svg"}, {"key": "highway", "value": "elevator", "description": "🄿 Elevator", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/elevator.svg"}, {"key": "highway", "value": "emergency_bay", "description": "🄿 Emergency Stopping Place", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/car-15.svg"}, {"key": "highway", "value": "footway", "description": "🄿 Foot Path", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/pedestrian.svg"}, @@ -549,7 +549,7 @@ {"key": "historic", "value": "fort", "description": "🄿 Historic Fort", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/castle-15.svg"}, {"key": "historic", "value": "manor", "description": "🄿 Manor House", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/castle-15.svg"}, {"key": "historic", "value": "memorial", "description": "🄿 Memorial", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/monument-15.svg"}, - {"key": "memorial", "value": "plaque", "description": "🄿 Commemorative Plaque", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/monument-15.svg"}, + {"key": "memorial", "value": "plaque", "description": "🄿 Commemorative Plaque", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/plaque.svg"}, {"key": "historic", "value": "monument", "description": "🄿 Monument", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/monument-15.svg"}, {"key": "historic", "value": "ruins", "description": "🄿 Ruins", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/ruins.svg"}, {"key": "historic", "value": "tomb", "description": "🄿 Tomb", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/cemetery-15.svg"}, @@ -586,7 +586,7 @@ {"key": "landuse", "value": "greenhouse_horticulture", "description": "🄿 Greenhouse Horticulture", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/garden-15.svg"}, {"key": "landuse", "value": "harbour", "description": "🄿 Harbor", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/harbor-15.svg"}, {"key": "landuse", "value": "industrial", "description": "🄿 Industrial Area", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/industry-15.svg"}, - {"key": "industrial", "value": "scrap_yard", "description": "🄿 Scrap Yard", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/car-15.svg"}, + {"key": "industrial", "value": "scrap_yard", "description": "🄿 Scrap Yard", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/junk_car.svg"}, {"key": "industrial", "value": "slaughterhouse", "description": "🄿 Slaughterhouse", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/slaughterhouse-15.svg"}, {"key": "landuse", "value": "landfill", "description": "🄿 Landfill", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/bulldozer.svg"}, {"key": "landuse", "value": "meadow", "description": "🄿 Meadow", "object_types": ["area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/garden-15.svg"}, @@ -724,8 +724,8 @@ {"key": "man_made", "value": "obelisk", "description": "🄿 Obelisk", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/monument-15.svg"}, {"key": "man_made", "value": "observatory", "description": "🄿 Observatory", "object_types": ["node", "area"]}, {"key": "man_made", "value": "petroleum_well", "description": "🄿 Oil Well", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/oil_well.svg"}, - {"key": "man_made", "value": "pier", "description": "🄿 Pier", "object_types": ["way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/pedestrian.svg"}, - {"key": "floating", "value": "yes", "description": "🄿 Floating Pier", "object_types": ["way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/pedestrian.svg"}, + {"key": "man_made", "value": "pier", "description": "🄿 Pier", "object_types": ["way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/pier_fixed.svg"}, + {"key": "floating", "value": "yes", "description": "🄿 Floating Pier", "object_types": ["way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/pier_floating.svg"}, {"key": "man_made", "value": "pipeline", "description": "🄿 Pipeline", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD@master/svg/iD-sprite/presets/pipeline-line.svg"}, {"key": "location", "value": "underground", "description": "🄿 Underground Pipeline, 🄿 Underground Power Cable", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD@master/svg/iD-sprite/presets/pipeline-line.svg"}, {"key": "pipeline", "value": "valve", "description": "🄿 Pipeline Valve", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/wheel.svg"}, @@ -1048,7 +1048,7 @@ {"key": "shop", "value": "military_surplus", "description": "🄿 Military Surplus Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/military.svg"}, {"key": "shop", "value": "mobile_phone", "description": "🄿 Mobile Phone Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD@master/svg/fontawesome/fas-mobile-alt.svg"}, {"key": "shop", "value": "money_lender", "description": "🄿 Money Lender", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/money_hand.svg"}, - {"key": "shop", "value": "motorcycle_repair", "description": "🄿 Motorcycle Repair Shop", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD@master/svg/fontawesome/fas-motorcycle.svg"}, + {"key": "shop", "value": "motorcycle_repair", "description": "🄿 Motorcycle Repair Shop", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/motorcycle_repair.svg"}, {"key": "shop", "value": "motorcycle", "description": "🄿 Motorcycle Dealership", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD@master/svg/fontawesome/fas-motorcycle.svg"}, {"key": "shop", "value": "music", "description": "🄿 Music Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD@master/svg/fontawesome/fas-compact-disc.svg"}, {"key": "shop", "value": "musical_instrument", "description": "🄿 Musical Instrument Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD@master/svg/fontawesome/fas-guitar.svg"}, @@ -1112,9 +1112,9 @@ {"key": "tourism", "value": "artwork", "description": "🄿 Artwork", "object_types": ["node", "way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/art-gallery-15.svg"}, {"key": "artwork_type", "value": "bust", "description": "🄿 Bust", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD@master/svg/fontawesome/fas-user-alt.svg"}, {"key": "artwork_type", "value": "graffiti", "description": "🄿 Graffiti", "object_types": ["node", "way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/art-gallery-15.svg"}, - {"key": "artwork_type", "value": "installation", "description": "🄿 Art Installation", "object_types": ["node", "way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/art-gallery-15.svg"}, + {"key": "artwork_type", "value": "installation", "description": "🄿 Art Installation", "object_types": ["node", "way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/sculpture.svg"}, {"key": "artwork_type", "value": "mural", "description": "🄿 Mural", "object_types": ["node", "way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/art-gallery-15.svg"}, - {"key": "artwork_type", "value": "sculpture", "description": "🄿 Sculpture", "object_types": ["node", "way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/art-gallery-15.svg"}, + {"key": "artwork_type", "value": "sculpture", "description": "🄿 Sculpture", "object_types": ["node", "way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/sculpture.svg"}, {"key": "artwork_type", "value": "statue", "description": "🄿 Statue", "object_types": ["node", "way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD@master/svg/fontawesome/fas-female.svg"}, {"key": "tourism", "value": "attraction", "description": "🄿 Tourist Attraction", "object_types": ["node", "way", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/star-15.svg"}, {"key": "tourism", "value": "camp_pitch", "description": "🄿 Camp Pitch", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/campsite-15.svg"}, diff --git a/dist/locales/en.json b/dist/locales/en.json index e73ecfb96a..ed58948432 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -6129,7 +6129,7 @@ }, "building/stable": { "name": "Stable", - "terms": "" + "terms": "horse shelter" }, "building/stadium": { "name": "Stadium Building", diff --git a/package.json b/package.json index f23749f0f7..229c134440 100644 --- a/package.json +++ b/package.json @@ -101,7 +101,7 @@ "smash": "0.0", "static-server": "^2.2.1", "svg-sprite": "1.5.0", - "temaki": "~2.2.0", + "temaki": "~2.3.0", "uglify-js": "~3.6.6" }, "greenkeeper": { From 8c6bb8237384ec150249b0233fc21da1a32e60b5 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Mon, 2 Dec 2019 09:27:48 -0500 Subject: [PATCH 761/774] Add `brand` field to Post Office preset --- data/presets/presets.json | 2 +- data/presets/presets/amenity/post_office.json | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/data/presets/presets.json b/data/presets/presets.json index 6433326685..03f12e73d2 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -175,7 +175,7 @@ "amenity/polling_station": {"icon": "fas-vote-yea", "fields": ["name", "ref", "operator", "address", "opening_hours", "building_area"], "moreFields": ["air_conditioning", "email", "fax", "internet_access", "internet_access/fee", "internet_access/ssid", "level", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["ballot box", "ballot drop", "democracy", "elections", "polling place", "vote", "voting booth", "voting machine"], "tags": {"amenity": "polling_station"}, "addTags": {"amenity": "polling_station", "polling_station": "yes"}, "name": "Permanent Polling Place"}, "amenity/post_box": {"icon": "temaki-post_box", "fields": ["operator", "collection_times", "drive_through", "ref"], "moreFields": ["access_simple", "brand", "covered", "height", "indoor", "level", "manufacturer", "wheelchair"], "geometry": ["point", "vertex"], "tags": {"amenity": "post_box"}, "terms": ["drop box", "dropbox", "letter drop", "mail box", "mail collection box", "mail drop", "mail dropoff", "mailbox", "package drop", "pillar box", "pillarbox", "post box", "postal box", "postbox"], "name": "Mail Drop Box"}, "amenity/post_depot": {"icon": "fas-mail-bulk", "fields": ["name", "operator", "address", "building_area", "phone"], "moreFields": ["email", "fax", "opening_hours", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["mail processing and distribution center", "post depot"], "tags": {"amenity": "post_depot"}, "name": "Post Sorting Office"}, - "amenity/post_office": {"icon": "maki-post", "fields": ["name", "operator", "address", "building_area", "opening_hours"], "moreFields": ["email", "fax", "internet_access", "internet_access/fee", "internet_access/ssid", "level", "payment_multi", "phone", "polling_station", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["letter", "mail"], "tags": {"amenity": "post_office"}, "name": "Post Office"}, + "amenity/post_office": {"icon": "maki-post", "fields": ["name", "operator", "address", "building_area", "opening_hours"], "moreFields": ["brand", "email", "fax", "internet_access", "internet_access/fee", "internet_access/ssid", "level", "payment_multi", "phone", "polling_station", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["letter", "mail"], "tags": {"amenity": "post_office"}, "name": "Post Office"}, "amenity/prep_school": {"icon": "temaki-school", "fields": ["name", "operator", "address", "building_area", "opening_hours"], "moreFields": ["email", "fax", "level", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["academic", "ACT", "SAT", "homework", "math", "reading", "test prep", "tutoring", "writing"], "tags": {"amenity": "prep_school"}, "name": "Test Prep / Tutoring School"}, "amenity/prison": {"icon": "maki-prison", "fields": ["name", "operator", "operator/type", "address"], "moreFields": ["email", "fax", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["cell", "jail", "correction"], "tags": {"amenity": "prison"}, "name": "Prison Grounds"}, "amenity/pub": {"icon": "maki-beer", "fields": ["name", "address", "building_area", "opening_hours", "smoking", "brewery"], "moreFields": ["air_conditioning", "diet_multi", "email", "fax", "internet_access", "internet_access/fee", "internet_access/ssid", "level", "microbrewery", "min_age", "outdoor_seating", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "pub"}, "terms": ["alcohol", "drink", "dive", "beer", "bier", "booze"], "name": "Pub"}, diff --git a/data/presets/presets/amenity/post_office.json b/data/presets/presets/amenity/post_office.json index 26b5d3db7d..74a90e888e 100644 --- a/data/presets/presets/amenity/post_office.json +++ b/data/presets/presets/amenity/post_office.json @@ -8,6 +8,7 @@ "opening_hours" ], "moreFields": [ + "brand", "email", "fax", "internet_access", From 995bfc3f1bfcd8ab0b6250969c6e5c1e374f3b0c Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Mon, 2 Dec 2019 09:41:25 -0500 Subject: [PATCH 762/774] Add preset for amenity=research_institute (close #7078) Deprecate amenity=research_institution --- css/25_areas.css | 9 +++-- data/deprecated.json | 4 ++ data/presets.yaml | 5 +++ data/presets/presets.json | 1 + .../presets/amenity/research_institute.json | 38 +++++++++++++++++++ data/taginfo.json | 2 + dist/locales/en.json | 4 ++ 7 files changed, 60 insertions(+), 3 deletions(-) create mode 100644 data/presets/presets/amenity/research_institute.json diff --git a/css/25_areas.css b/css/25_areas.css index abc744c010..5d75931250 100644 --- a/css/25_areas.css +++ b/css/25_areas.css @@ -99,7 +99,8 @@ path.stroke.tag-amenity-childcare, path.stroke.tag-amenity-kindergarten, path.stroke.tag-amenity-school, path.stroke.tag-amenity-college, -path.stroke.tag-amenity-university { +path.stroke.tag-amenity-university, +path.stroke.tag-amenity-research_institute { stroke: rgba(255, 255, 148, 0.75); } path.fill.tag-leisure-pitch.tag-sport-beachvolleyball, @@ -113,7 +114,8 @@ path.fill.tag-amenity-childcare, path.fill.tag-amenity-kindergarten, path.fill.tag-amenity-school, path.fill.tag-amenity-college, -path.fill.tag-amenity-university { +path.fill.tag-amenity-university, +path.fill.tag-amenity-research_institute { stroke: rgba(255, 255, 148, 0.25); fill: rgba(255, 255, 148, 0.25); } @@ -128,7 +130,8 @@ path.fill.tag-amenity-university { .preset-icon-fill path.area.stroke.tag-amenity-kindergarten, .preset-icon-fill path.area.stroke.tag-amenity-school, .preset-icon-fill path.area.stroke.tag-amenity-college, -.preset-icon-fill path.area.stroke.tag-amenity-university { +.preset-icon-fill path.area.stroke.tag-amenity-university, +.preset-icon-fill path.area.stroke.tag-amenity-research_institute { stroke: rgb(232, 232, 0); } .pattern-color-beach, diff --git a/data/deprecated.json b/data/deprecated.json index a7ecbd27b5..7166f4bb55 100644 --- a/data/deprecated.json +++ b/data/deprecated.json @@ -116,6 +116,10 @@ "old": {"amenity": "register_office"}, "replace": {"office": "government", "government": "register_office"} }, + { + "old": {"amenity": "research_institution"}, + "replace": {"amenity": "research_institute"} + }, { "old": {"amenity": "sauna"}, "replace": {"leisure": "sauna"} diff --git a/data/presets.yaml b/data/presets.yaml index 4cb6ad6947..0cd49103d2 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -3397,6 +3397,11 @@ en: amenity/register_office: # amenity=register_office name: Register Office + amenity/research_institute: + # amenity=research_institute + name: Research Institute Grounds + # 'terms: applied research,experimentation,r&d,r & d,r and d,research and development,research institution,research laboratory,research labs' + terms: '' amenity/restaurant: # amenity=restaurant name: Restaurant diff --git a/data/presets/presets.json b/data/presets/presets.json index 03f12e73d2..8545776fed 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -188,6 +188,7 @@ "amenity/recycling_container": {"icon": "maki-recycling", "fields": ["operator", "recycling_accepts", "collection_times"], "moreFields": ["colour", "covered", "indoor", "level", "manufacturer", "material", "opening_hours"], "geometry": ["point", "area"], "terms": ["bin", "can", "bottle", "glass", "garbage", "rubbish", "scrap", "trash"], "tags": {"amenity": "recycling", "recycling_type": "container"}, "reference": {"key": "amenity", "value": "recycling"}, "name": "Recycling Container"}, "amenity/recycling/container/electrical_items": {"icon": "maki-recycling", "fields": ["{amenity/recycling_container}"], "moreFields": ["{amenity/recycling_container}"], "geometry": ["point", "area"], "terms": ["computers", "electronic waste", "electronics recycling", "ewaste bin", "phones", "tablets"], "tags": {"amenity": "recycling", "recycling_type": "container", "recycling:electrical_items": "yes"}, "reference": {"key": "recycling:electrical_items", "value": "yes"}, "name": "E-Waste Container"}, "amenity/recycling/container/green_waste": {"icon": "maki-recycling", "fields": ["{amenity/recycling_container}"], "moreFields": ["{amenity/recycling_container}"], "geometry": ["point", "area"], "terms": ["biodegradable", "biological", "compost", "decomposable", "garbage bin", "garden waste", "organic", "rubbish", "food scrap"], "tags": {"amenity": "recycling", "recycling_type": "container", "recycling:green_waste": "yes"}, "reference": {"key": "recycling:green_waste", "value": "yes"}, "name": "Green Waste Container"}, + "amenity/research_institute": {"icon": "fas-flask", "fields": ["name", "operator", "operator/type", "address", "website", "internet_access", "internet_access/fee"], "moreFields": ["email", "fax", "internet_access/ssid", "phone", "wheelchair"], "geometry": ["point", "area"], "terms": ["applied research", "experimentation", "r&d", "r & d", "r and d", "research and development", "research institution", "research laboratory", "research labs"], "tags": {"amenity": "research_institute"}, "name": "Research Institute Grounds"}, "amenity/restaurant": {"icon": "maki-restaurant", "fields": ["name", "cuisine", "address", "building_area", "opening_hours", "phone"], "moreFields": ["air_conditioning", "bar", "brewery", "capacity", "delivery", "diet_multi", "email", "fax", "internet_access", "internet_access/fee", "internet_access/ssid", "level", "microbrewery", "min_age", "not/name", "outdoor_seating", "reservation", "smoking", "stars", "takeaway", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["bar", "breakfast", "cafe", "café", "canteen", "coffee", "dine", "dining", "dinner", "drive-in", "eat", "grill", "lunch", "table"], "tags": {"amenity": "restaurant"}, "name": "Restaurant"}, "amenity/restaurant/american": {"icon": "maki-restaurant", "geometry": ["point", "area"], "terms": ["bar", "breakfast", "cafe", "café", "canteen", "coffee", "dine", "dining", "dinner", "drive-in", "eat", "grill", "lunch", "table"], "tags": {"amenity": "restaurant", "cuisine": "american"}, "reference": {"key": "cuisine", "value": "american"}, "name": "American Restaurant"}, "amenity/restaurant/asian": {"icon": "maki-restaurant-noodle", "geometry": ["point", "area"], "terms": ["bar", "breakfast", "cafe", "café", "canteen", "dine", "dining", "dinner", "drive-in", "eat", "grill", "lunch", "table"], "tags": {"amenity": "restaurant", "cuisine": "asian"}, "reference": {"key": "cuisine", "value": "asian"}, "name": "Asian Restaurant"}, diff --git a/data/presets/presets/amenity/research_institute.json b/data/presets/presets/amenity/research_institute.json new file mode 100644 index 0000000000..768f7c8a49 --- /dev/null +++ b/data/presets/presets/amenity/research_institute.json @@ -0,0 +1,38 @@ +{ + "icon": "fas-flask", + "fields": [ + "name", + "operator", + "operator/type", + "address", + "website", + "internet_access", + "internet_access/fee" + ], + "moreFields": [ + "email", + "fax", + "internet_access/ssid", + "phone", + "wheelchair" + ], + "geometry": [ + "point", + "area" + ], + "terms": [ + "applied research", + "experimentation", + "r&d", + "r & d", + "r and d", + "research and development", + "research institution", + "research laboratory", + "research labs" + ], + "tags": { + "amenity": "research_institute" + }, + "name": "Research Institute Grounds" +} diff --git a/data/taginfo.json b/data/taginfo.json index 9bd3b40ab8..fd5fce0dd1 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -188,6 +188,7 @@ {"key": "recycling_type", "value": "container", "description": "🄿 Recycling Container, 🄵 Type", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/recycling-15.svg"}, {"key": "recycling:electrical_items", "value": "yes", "description": "🄿 E-Waste Container", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/recycling-15.svg"}, {"key": "recycling:green_waste", "value": "yes", "description": "🄿 Green Waste Container", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/recycling-15.svg"}, + {"key": "amenity", "value": "research_institute", "description": "🄿 Research Institute Grounds", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD@master/svg/fontawesome/fas-flask.svg"}, {"key": "amenity", "value": "restaurant", "description": "🄿 Restaurant", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/restaurant-15.svg"}, {"key": "cuisine", "value": "american", "description": "🄿 American Restaurant", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/restaurant-15.svg"}, {"key": "cuisine", "value": "asian", "description": "🄿 Asian Restaurant", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/restaurant-noodle-15.svg"}, @@ -1913,6 +1914,7 @@ {"key": "amenity", "value": "preschool", "description": "🄳 ➜ amenity=kindergarten + preschool=yes"}, {"key": "amenity", "value": "public_building", "description": "🄳 ➜ building=public"}, {"key": "amenity", "value": "real_estate", "description": "🄳 ➜ office=estate_agent"}, + {"key": "amenity", "value": "research_institution", "description": "🄳 ➜ amenity=research_institute"}, {"key": "amenity", "value": "sauna", "description": "🄳 ➜ leisure=sauna"}, {"key": "amenity", "value": "shop", "description": "🄳 ➜ shop=*"}, {"key": "amenity", "value": "sloped_curb", "description": "🄳 ➜ kerb=lowered"}, diff --git a/dist/locales/en.json b/dist/locales/en.json index ed58948432..e8c44f24b8 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -5403,6 +5403,10 @@ "name": "Green Waste Container", "terms": "biodegradable,biological,compost,decomposable,garbage bin,garden waste,organic,rubbish,food scrap" }, + "amenity/research_institute": { + "name": "Research Institute Grounds", + "terms": "applied research,experimentation,r&d,r & d,r and d,research and development,research institution,research laboratory,research labs" + }, "amenity/restaurant": { "name": "Restaurant", "terms": "bar,breakfast,cafe,café,canteen,coffee,dine,dining,dinner,drive-in,eat,grill,lunch,table" From 1217b040c90b52621bcf0f38b7133b53cc27e636 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Mon, 2 Dec 2019 10:43:33 -0500 Subject: [PATCH 763/774] Upgrade temaki to scoped package `@ideditor/temaki` --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 229c134440..7e7f4cbe4a 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "dist:svg:maki": "svg-sprite --symbol --symbol-dest . --shape-id-generator \"maki-%s\" --symbol-sprite dist/img/maki-sprite.svg node_modules/@mapbox/maki/icons/*.svg", "dist:svg:mapillary:signs": "svg-sprite --symbol --symbol-dest . --symbol-sprite dist/img/mapillary-sprite.svg node_modules/mapillary_sprite_source/package_signs/*.svg", "dist:svg:mapillary:objects": "svg-sprite --symbol --symbol-dest . --symbol-sprite dist/img/mapillary-object-sprite.svg node_modules/mapillary_sprite_source/package_objects/*.svg", - "dist:svg:temaki": "svg-sprite --symbol --symbol-dest . --shape-id-generator \"temaki-%s\" --symbol-sprite dist/img/temaki-sprite.svg node_modules/temaki/icons/*.svg", + "dist:svg:temaki": "svg-sprite --symbol --symbol-dest . --shape-id-generator \"temaki-%s\" --symbol-sprite dist/img/temaki-sprite.svg node_modules/@ideditor/temaki/icons/*.svg", "imagery": "node data/update_imagery", "lint": "eslint *.js test/spec modules", "start": "node --max-old-space-size=4096 server.js", @@ -61,6 +61,7 @@ "@fortawesome/free-brands-svg-icons": "^5.11.2", "@fortawesome/free-regular-svg-icons": "^5.11.2", "@fortawesome/free-solid-svg-icons": "^5.11.2", + "@ideditor/temaki": "~3.0.0", "@mapbox/maki": "^6.0.0", "@rollup/plugin-buble": "^0.20.0", "chai": "^4.1.0", @@ -101,7 +102,6 @@ "smash": "0.0", "static-server": "^2.2.1", "svg-sprite": "1.5.0", - "temaki": "~2.3.0", "uglify-js": "~3.6.6" }, "greenkeeper": { From 80a4cec8ddc1abca36e1aa258ab058a2e2dc9363 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Mon, 2 Dec 2019 12:38:55 -0500 Subject: [PATCH 764/774] Manually force background tile images to display at their expected size (close #7070) --- modules/renderer/tile_layer.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/renderer/tile_layer.js b/modules/renderer/tile_layer.js index 560b6e61fe..71ef6a3d0b 100644 --- a/modules/renderer/tile_layer.js +++ b/modules/renderer/tile_layer.js @@ -198,6 +198,8 @@ export function rendererTileLayer(context) { image.enter() .append('img') .attr('class', 'tile') + .style('width', _tileSize + 'px') + .style('height', _tileSize + 'px') .attr('src', function(d) { return d[3]; }) .on('error', error) .on('load', load) From 16ff2b13730e59c9e69bc6718291aa0d33fb433f Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Mon, 2 Dec 2019 13:51:04 -0500 Subject: [PATCH 765/774] Upgrade country-coder to scoped package `@ideditor/country-coder` --- modules/ui/fields/address.js | 2 +- modules/ui/fields/combo.js | 2 +- modules/ui/fields/input.js | 2 +- modules/ui/fields/localized.js | 2 +- modules/ui/fields/maxspeed.js | 2 +- modules/ui/preset_list.js | 2 +- modules/validations/outdated_tags.js | 2 +- package.json | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/modules/ui/fields/address.js b/modules/ui/fields/address.js index 6ff433975f..8dcbf4244c 100644 --- a/modules/ui/fields/address.js +++ b/modules/ui/fields/address.js @@ -1,6 +1,6 @@ import { dispatch as d3_dispatch } from 'd3-dispatch'; import { select as d3_select } from 'd3-selection'; -import * as countryCoder from 'country-coder'; +import * as countryCoder from '@ideditor/country-coder'; import { dataAddressFormats } from '../../../data'; import { geoExtent, geoChooseEdge, geoSphericalDistance } from '../../geo'; diff --git a/modules/ui/fields/combo.js b/modules/ui/fields/combo.js index 56d394b512..b5f5e4a5c2 100644 --- a/modules/ui/fields/combo.js +++ b/modules/ui/fields/combo.js @@ -1,6 +1,6 @@ import { dispatch as d3_dispatch } from 'd3-dispatch'; import { event as d3_event, select as d3_select } from 'd3-selection'; -import * as countryCoder from 'country-coder'; +import * as countryCoder from '@ideditor/country-coder'; import { osmEntity } from '../../osm/entity'; import { t } from '../../util/locale'; diff --git a/modules/ui/fields/input.js b/modules/ui/fields/input.js index 594c7607f4..8a245880a1 100644 --- a/modules/ui/fields/input.js +++ b/modules/ui/fields/input.js @@ -1,6 +1,6 @@ import { dispatch as d3_dispatch } from 'd3-dispatch'; import { select as d3_select, event as d3_event } from 'd3-selection'; -import * as countryCoder from 'country-coder'; +import * as countryCoder from '@ideditor/country-coder'; import { t, textDirection } from '../../util/locale'; import { dataPhoneFormats } from '../../../data'; diff --git a/modules/ui/fields/localized.js b/modules/ui/fields/localized.js index 3f362a26c5..115632cce3 100644 --- a/modules/ui/fields/localized.js +++ b/modules/ui/fields/localized.js @@ -1,6 +1,6 @@ import { dispatch as d3_dispatch } from 'd3-dispatch'; import { select as d3_select, event as d3_event } from 'd3-selection'; -import * as countryCoder from 'country-coder'; +import * as countryCoder from '@ideditor/country-coder'; import { currentLocale, t, languageName } from '../../util/locale'; import { dataLanguages } from '../../../data'; diff --git a/modules/ui/fields/maxspeed.js b/modules/ui/fields/maxspeed.js index baf9060fab..c6bcb7dbf5 100644 --- a/modules/ui/fields/maxspeed.js +++ b/modules/ui/fields/maxspeed.js @@ -1,6 +1,6 @@ import { dispatch as d3_dispatch } from 'd3-dispatch'; import { select as d3_select } from 'd3-selection'; -import * as countryCoder from 'country-coder'; +import * as countryCoder from '@ideditor/country-coder'; import { uiCombobox } from '../combobox'; import { utilGetSetValue, utilNoAuto, utilRebind } from '../../util'; diff --git a/modules/ui/preset_list.js b/modules/ui/preset_list.js index 2ecad30ff6..6e01501b66 100644 --- a/modules/ui/preset_list.js +++ b/modules/ui/preset_list.js @@ -1,5 +1,5 @@ import { dispatch as d3_dispatch } from 'd3-dispatch'; -import * as countryCoder from 'country-coder'; +import * as countryCoder from '@ideditor/country-coder'; import { event as d3_event, diff --git a/modules/validations/outdated_tags.js b/modules/validations/outdated_tags.js index 837697f676..cc2663afa7 100644 --- a/modules/validations/outdated_tags.js +++ b/modules/validations/outdated_tags.js @@ -1,6 +1,6 @@ import { t } from '../util/locale'; import { matcher, brands } from 'name-suggestion-index'; -import * as countryCoder from 'country-coder'; +import * as countryCoder from '@ideditor/country-coder'; import { actionChangePreset } from '../actions/change_preset'; import { actionChangeTags } from '../actions/change_tags'; diff --git a/package.json b/package.json index 7e7f4cbe4a..443b82265b 100644 --- a/package.json +++ b/package.json @@ -34,6 +34,7 @@ "translations": "node data/update_locales" }, "dependencies": { + "@ideditor/country-coder": "^3.0.1", "@mapbox/sexagesimal": "1.2.0", "@mapbox/togeojson": "0.16.0", "@mapbox/vector-tile": "^1.3.1", @@ -41,7 +42,6 @@ "abortcontroller-polyfill": "^1.4.0", "alif-toolkit": "^1.2.6", "browser-polyfills": "~1.5.0", - "country-coder": "^2.0.0", "diacritics": "1.3.0", "fast-deep-equal": "~2.0.1", "fast-json-stable-stringify": "2.0.0", From 5befa24f92c11643ab4ae3d29869cc7a461d4049 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Guillou?= Date: Tue, 3 Dec 2019 17:11:15 +1000 Subject: [PATCH 766/774] add tactile paving to steps Adding this field in the main ones, just like for street crossings, as it is very important for accessibility and safety. --- data/presets/presets/highway/steps.json | 1 + 1 file changed, 1 insertion(+) diff --git a/data/presets/presets/highway/steps.json b/data/presets/presets/highway/steps.json index 33f09e5874..d7e03d9950 100644 --- a/data/presets/presets/highway/steps.json +++ b/data/presets/presets/highway/steps.json @@ -5,6 +5,7 @@ "access_simple", "handrail", "step_count", + "tactile_paving", "surface", "width" ], From 49c6e44fc58db58d7c0e07449d23e0ce74eb9d69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Guillou?= Date: Tue, 3 Dec 2019 17:11:15 +1000 Subject: [PATCH 767/774] add tactile paving to steps Adding this field in the main ones, just like for street crossings, as it is very important for accessibility and safety. --- data/presets/presets/highway/steps.json | 1 + 1 file changed, 1 insertion(+) diff --git a/data/presets/presets/highway/steps.json b/data/presets/presets/highway/steps.json index 33f09e5874..d7e03d9950 100644 --- a/data/presets/presets/highway/steps.json +++ b/data/presets/presets/highway/steps.json @@ -5,6 +5,7 @@ "access_simple", "handrail", "step_count", + "tactile_paving", "surface", "width" ], From d715ce130f2e6f4c49de66decdd3a3ad849797d5 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 3 Dec 2019 09:48:19 -0500 Subject: [PATCH 768/774] Add derived data --- data/presets/presets.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/presets/presets.json b/data/presets/presets.json index 8545776fed..2d537c1e36 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -541,7 +541,7 @@ "highway/service/parking_aisle": {"icon": "iD-highway-service", "geometry": ["line"], "tags": {"highway": "service", "service": "parking_aisle"}, "reference": {"key": "service", "value": "parking_aisle"}, "name": "Parking Aisle"}, "highway/services": {"icon": "maki-car", "fields": ["{highway/rest_area}"], "moreFields": ["{highway/rest_area}"], "geometry": ["point", "vertex", "area"], "tags": {"highway": "services"}, "terms": ["services", "travel plaza", "service station"], "name": "Service Area"}, "highway/speed_camera": {"icon": "temaki-security_camera", "geometry": ["point", "vertex"], "fields": ["direction", "ref", "maxspeed"], "tags": {"highway": "speed_camera"}, "terms": [], "name": "Speed Camera"}, - "highway/steps": {"icon": "iD-highway-steps", "fields": ["incline_steps", "access_simple", "handrail", "step_count", "surface", "width"], "moreFields": ["covered", "dog", "indoor", "level_semi", "lit", "name", "ref", "stroller", "wheelchair"], "geometry": ["line"], "tags": {"highway": "steps"}, "terms": ["stairs", "staircase", "stairway"], "name": "Steps"}, + "highway/steps": {"icon": "iD-highway-steps", "fields": ["incline_steps", "access_simple", "handrail", "step_count", "tactile_paving", "surface", "width"], "moreFields": ["covered", "dog", "indoor", "level_semi", "lit", "name", "ref", "stroller", "wheelchair"], "geometry": ["line"], "tags": {"highway": "steps"}, "terms": ["stairs", "staircase", "stairway"], "name": "Steps"}, "highway/steps/conveying": {"icon": "maki-entrance", "fields": ["incline_steps", "conveying", "access_simple", "indoor", "level_semi", "width"], "moreFields": ["{highway/steps}", "handrail", "step_count", "surface"], "geometry": ["line"], "terms": ["moving staircase", "moving stairway", "people mover"], "tags": {"highway": "steps", "conveying": "*"}, "name": "Escalator"}, "highway/stop": {"icon": "temaki-stop", "fields": ["stop", "direction_vertex"], "geometry": ["vertex"], "tags": {"highway": "stop"}, "terms": ["stop", "halt", "sign"], "name": "Stop Sign"}, "highway/street_lamp": {"icon": "temaki-bulb3", "geometry": ["point", "vertex"], "tags": {"highway": "street_lamp"}, "fields": ["lamp_type", "direction", "ref"], "terms": ["streetlight", "street light", "lamp", "light", "gaslight"], "name": "Street Lamp"}, From 707c2750411597027062bc39d1e90e89839215a6 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 3 Dec 2019 10:04:59 -0500 Subject: [PATCH 769/774] Update fast-deep-equal to 3.1.1 (close #7076) Update uglify-js to 3.7.1 (close #7065) Update mapillary-js to 2.20.0 (close #7060) --- package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 443b82265b..9fbf9af27b 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,7 @@ "alif-toolkit": "^1.2.6", "browser-polyfills": "~1.5.0", "diacritics": "1.3.0", - "fast-deep-equal": "~2.0.1", + "fast-deep-equal": "~3.1.1", "fast-json-stable-stringify": "2.0.0", "lodash-es": "~4.17.15", "marked": "0.7.0", @@ -78,7 +78,7 @@ "js-yaml": "^3.13.1", "json-stringify-pretty-compact": "^1.1.0", "jsonschema": "^1.1.0", - "mapillary-js": "~2.19.0", + "mapillary-js": "~2.20.0", "mapillary_sprite_source": "^1.8.0", "minimist": "^1.2.0", "mocha": "^6.2.2", @@ -102,7 +102,7 @@ "smash": "0.0", "static-server": "^2.2.1", "svg-sprite": "1.5.0", - "uglify-js": "~3.6.6" + "uglify-js": "~3.7.1" }, "greenkeeper": { "label": "chore-greenkeeper", From e48c4698659b533dce147823d235497f70b76452 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 3 Dec 2019 13:20:50 -0500 Subject: [PATCH 770/774] Update temaki to 3.1.0 (close #7084) Add Access Aisle preset and rendering (close #7083) --- css/30_highways.css | 20 +++++++- data/presets.yaml | 8 ++++ data/presets/fields.json | 1 + data/presets/fields/access_aisle.json | 5 ++ data/presets/presets.json | 1 + .../presets/highway/footway/access_aisle.json | 46 +++++++++++++++++++ data/taginfo.json | 2 + dist/locales/en.json | 7 +++ package.json | 2 +- 9 files changed, 89 insertions(+), 3 deletions(-) create mode 100644 data/presets/fields/access_aisle.json create mode 100644 data/presets/presets/highway/footway/access_aisle.json diff --git a/css/30_highways.css b/css/30_highways.css index 16022ccce9..8d2c19a6dc 100644 --- a/css/30_highways.css +++ b/css/30_highways.css @@ -440,6 +440,7 @@ path.line.stroke.tag-highway-bridleway { /* style for features that should have highway=footway but don't yet */ path.line.stroke.tag-crossing, +path.line.stroke.tag-footway-access_aisle, path.line.stroke.tag-public_transport-platform, path.line.stroke.tag-highway-platform, path.line.stroke.tag-railway-platform, @@ -451,7 +452,8 @@ path.line.casing.tag-highway-path, path.line.casing.tag-highway-path.tag-unpaved, path.line.casing.tag-highway-footway.tag-public_transport-platform, path.line.casing.tag-highway-footway.tag-man_made-pier, -path.line.casing.tag-highway.tag-crossing { +path.line.casing.tag-highway.tag-crossing, +path.line.casing.tag-highway.tag-footway-access_aisle { stroke: #dca; stroke-linecap: round; stroke-dasharray: none; @@ -496,7 +498,7 @@ path.stroke.tag-highway-footway.tag-footway-sidewalk, .preset-icon-container path.casing.tag-highway-footway.tag-footway-sidewalk { stroke: #d4b4b4; } -.preset-icon-container path.stroke.tag-highway-footway:not(.tag-crossing-marked):not(.tag-crossing-unmarked):not(.tag-man_made-pier):not(.tag-public_transport-platform) { +.preset-icon-container path.stroke.tag-highway-footway:not(.tag-crossing-marked):not(.tag-crossing-unmarked):not(.tag-footway-access_aisle):not(.tag-man_made-pier):not(.tag-public_transport-platform) { stroke: #fff; } @@ -599,6 +601,20 @@ path.line.stroke.tag-highway-cycleway.tag-crossing-marked { color: #446077; } +path.line.stroke.tag-highway.tag-footway-access_aisle { + stroke-dasharray: 4, 2; +} +.low-zoom path.line.stroke.tag-highway.tag-footway-access_aisle, +.preset-icon-container path.stroke.tag-highway.tag-footway-access_aisle { + stroke-dasharray: 2.5, 1.5; +} +path.line.stroke.tag-highway.tag-footway-access_aisle { + stroke: #4c4444; +} +.preset-icon .icon.tag-highway.tag-footway-access_aisle { + color: #4c4444; +} + /* highway midpoints */ g.midpoint.tag-highway-corridor .fill, diff --git a/data/presets.yaml b/data/presets.yaml index 0cd49103d2..4a0fc1799b 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -85,6 +85,9 @@ en: foot: Foot horse: Horses motor_vehicle: Motor Vehicles + access_aisle: + # access_aisle=* + label: Type access_simple: # access=* label: Allowed Access @@ -4843,6 +4846,11 @@ en: name: Foot Path # 'terms: hike,hiking,promenade,trackway,trail,walk' terms: '' + highway/footway/access_aisle: + # 'highway=footway, footway=access_aisle' + name: Access Aisle + # 'terms: accessible van loading zone,disabled parking access zone,handicap parking access zone,parking lot aisle,striped zone,tow zone,tow-away zone,towaway zone,wheelchair aisle' + terms: '' highway/footway/conveying: # 'highway=footway, conveying=*' name: Moving Walkway diff --git a/data/presets/fields.json b/data/presets/fields.json index 7b2289e24a..6778e73a19 100644 --- a/data/presets/fields.json +++ b/data/presets/fields.json @@ -1,5 +1,6 @@ { "fields": { + "access_aisle": {"key": "access_aisle", "type": "combo", "label": "Type"}, "access_simple": {"key": "access", "type": "combo", "label": "Allowed Access", "options": ["yes", "permissive", "private", "customers", "permit", "no"], "terms": ["permitted", "private", "public"]}, "access": {"keys": ["access", "foot", "motor_vehicle", "bicycle", "horse"], "reference": {"key": "access"}, "type": "access", "label": "Allowed Access", "placeholder": "Not Specified", "strings": {"types": {"access": "All", "foot": "Foot", "motor_vehicle": "Motor Vehicles", "bicycle": "Bicycles", "horse": "Horses"}, "options": {"yes": {"title": "Allowed", "description": "Access allowed by law; a right of way"}, "no": {"title": "Prohibited", "description": "Access not allowed to the general public"}, "permissive": {"title": "Permissive", "description": "Access allowed until such time as the owner revokes the permission"}, "private": {"title": "Private", "description": "Access allowed only with permission of the owner on an individual basis"}, "designated": {"title": "Designated", "description": "Access allowed according to signs or specific local laws"}, "destination": {"title": "Destination", "description": "Access allowed only to reach a destination"}, "dismount": {"title": "Dismount", "description": "Access allowed but rider must dismount"}, "permit": {"title": "Permit", "description": "Access allowed only with a valid permit or license"}}}}, "addr/interpolation": {"key": "addr:interpolation", "type": "combo", "label": "Type", "strings": {"options": {"all": "All", "even": "Even", "odd": "Odd", "alphabetic": "Alphabetic"}}}, diff --git a/data/presets/fields/access_aisle.json b/data/presets/fields/access_aisle.json new file mode 100644 index 0000000000..896ae87ca9 --- /dev/null +++ b/data/presets/fields/access_aisle.json @@ -0,0 +1,5 @@ +{ + "key": "access_aisle", + "type": "combo", + "label": "Type" +} diff --git a/data/presets/presets.json b/data/presets/presets.json index 2d537c1e36..617076607e 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -505,6 +505,7 @@ "highway/footway/crossing": {"fields": ["crossing", "access", "surface", "tactile_paving", "crossing/island"], "geometry": ["line"], "tags": {"footway": "crossing"}, "addTags": {"highway": "footway", "footway": "crossing"}, "reference": {"key": "footway", "value": "crossing"}, "matchScore": 0.95, "searchable": false, "name": "Pedestrian Crossing"}, "highway/footway/zebra-raised": {"icon": "temaki-pedestrian_crosswalk", "fields": ["crossing", "access", "surface", "tactile_paving", "crossing/island"], "geometry": ["line"], "tags": {"highway": "footway", "footway": "crossing", "crossing": "zebra", "traffic_calming": "table"}, "reference": {"key": "traffic_calming", "value": "table"}, "name": "Marked Crosswalk (Raised)", "searchable": false}, "highway/footway/zebra": {"icon": "temaki-pedestrian_crosswalk", "fields": ["crossing", "access", "surface", "tactile_paving", "crossing/island"], "geometry": ["line"], "tags": {"highway": "footway", "footway": "crossing", "crossing": "zebra"}, "reference": {"key": "footway", "value": "crossing"}, "name": "Marked Crosswalk", "searchable": false}, + "highway/footway/access_aisle": {"icon": "temaki-striped_way", "fields": ["access_aisle", "width", "surface", "tactile_paving", "access", "wheelchair"], "moreFields": ["covered", "dog", "incline", "lit", "maxweight_bridge", "name", "ref", "smoothness", "stroller", "structure"], "geometry": ["line"], "terms": ["accessible van loading zone", "disabled parking access zone", "handicap parking access zone", "parking lot aisle", "striped zone", "tow zone", "tow-away zone", "towaway zone", "wheelchair aisle"], "tags": {"highway": "footway", "footway": "access_aisle"}, "reference": {"key": "footway", "value": "access_aisle"}, "name": "Access Aisle"}, "highway/footway/conveying": {"icon": "temaki-pedestrian", "fields": ["name", "conveying", "access_simple", "lit", "width", "wheelchair"], "geometry": ["line"], "terms": ["moving sidewalk", "autwalk", "skywalk", "travolator", "travelator", "travellator", "conveyor"], "tags": {"highway": "footway", "conveying": "*"}, "name": "Moving Walkway"}, "highway/footway/marked-raised": {"icon": "temaki-pedestrian_crosswalk", "fields": ["crossing", "access", "surface", "tactile_paving", "crossing/island"], "geometry": ["line"], "tags": {"footway": "crossing", "crossing": "marked", "traffic_calming": "table"}, "addTags": {"highway": "footway", "footway": "crossing", "crossing": "marked", "traffic_calming": "table"}, "reference": {"key": "traffic_calming", "value": "table"}, "terms": ["zebra crossing", "marked crossing", "crosswalk", "flat top", "hump", "speed", "slow"], "name": "Marked Crosswalk (Raised)"}, "highway/footway/marked": {"icon": "temaki-pedestrian_crosswalk", "fields": ["crossing", "access", "surface", "tactile_paving", "crossing/island"], "geometry": ["line"], "tags": {"footway": "crossing", "crossing": "marked"}, "addTags": {"highway": "footway", "footway": "crossing", "crossing": "marked"}, "reference": {"key": "footway", "value": "crossing"}, "terms": ["marked foot path crossing", "marked crossing", "marked pedestrian crosswalk", "zebra crossing"], "name": "Marked Crosswalk"}, diff --git a/data/presets/presets/highway/footway/access_aisle.json b/data/presets/presets/highway/footway/access_aisle.json new file mode 100644 index 0000000000..4eabe25fe8 --- /dev/null +++ b/data/presets/presets/highway/footway/access_aisle.json @@ -0,0 +1,46 @@ +{ + "icon": "temaki-striped_way", + "fields": [ + "access_aisle", + "width", + "surface", + "tactile_paving", + "access", + "wheelchair" + ], + "moreFields": [ + "covered", + "dog", + "incline", + "lit", + "maxweight_bridge", + "name", + "ref", + "smoothness", + "stroller", + "structure" + ], + "geometry": [ + "line" + ], + "terms": [ + "accessible van loading zone", + "disabled parking access zone", + "handicap parking access zone", + "parking lot aisle", + "striped zone", + "tow zone", + "tow-away zone", + "towaway zone", + "wheelchair aisle" + ], + "tags": { + "highway": "footway", + "footway": "access_aisle" + }, + "reference": { + "key": "footway", + "value": "access_aisle" + }, + "name": "Access Aisle" +} diff --git a/data/taginfo.json b/data/taginfo.json index fd5fce0dd1..d3d202a303 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -494,6 +494,7 @@ {"key": "highway", "value": "emergency_bay", "description": "🄿 Emergency Stopping Place", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/car-15.svg"}, {"key": "highway", "value": "footway", "description": "🄿 Foot Path", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/pedestrian.svg"}, {"key": "footway", "value": "crossing", "description": "🄿 Pedestrian Crossing (unsearchable)", "object_types": ["way"]}, + {"key": "footway", "value": "access_aisle", "description": "🄿 Access Aisle", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/striped_way.svg"}, {"key": "conveying", "description": "🄿 Moving Walkway, 🄿 Escalator, 🄵 Escalator", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/pedestrian.svg"}, {"key": "footway", "value": "sidewalk", "description": "🄿 Sidewalk", "object_types": ["way"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/pedestrian.svg"}, {"key": "highway", "value": "give_way", "description": "🄿 Yield Sign", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/yield.svg"}, @@ -1206,6 +1207,7 @@ {"key": "waterway", "value": "water_point", "description": "🄿 Marine Drinking Water", "object_types": ["area", "node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/drinking-water-15.svg"}, {"key": "waterway", "value": "waterfall", "description": "🄿 Waterfall", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/waterfall-15.svg"}, {"key": "waterway", "value": "weir", "description": "🄿 Weir", "object_types": ["node", "way"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/dam-15.svg"}, + {"key": "access_aisle", "description": "🄵 Type"}, {"key": "access", "description": "🄵 Allowed Access"}, {"key": "access", "value": "yes", "description": "🄵 Allowed Access"}, {"key": "access", "value": "permissive", "description": "🄵 Allowed Access"}, diff --git a/dist/locales/en.json b/dist/locales/en.json index e8c44f24b8..ea5dc900d7 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -2487,6 +2487,9 @@ } }, "fields": { + "access_aisle": { + "label": "Type" + }, "access_simple": { "label": "Allowed Access", "terms": "permitted,private,public" @@ -6651,6 +6654,10 @@ "highway/footway/zebra": { "name": "Marked Crosswalk" }, + "highway/footway/access_aisle": { + "name": "Access Aisle", + "terms": "accessible van loading zone,disabled parking access zone,handicap parking access zone,parking lot aisle,striped zone,tow zone,tow-away zone,towaway zone,wheelchair aisle" + }, "highway/footway/conveying": { "name": "Moving Walkway", "terms": "moving sidewalk,autwalk,skywalk,travolator,travelator,travellator,conveyor" diff --git a/package.json b/package.json index 9fbf9af27b..d04a4d2810 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,7 @@ "@fortawesome/free-brands-svg-icons": "^5.11.2", "@fortawesome/free-regular-svg-icons": "^5.11.2", "@fortawesome/free-solid-svg-icons": "^5.11.2", - "@ideditor/temaki": "~3.0.0", + "@ideditor/temaki": "~3.1.0", "@mapbox/maki": "^6.0.0", "@rollup/plugin-buble": "^0.20.0", "chai": "^4.1.0", From aa0a4400ad2c8d7a1ee4621fde3746b0e33d20b6 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 3 Dec 2019 15:23:41 -0500 Subject: [PATCH 771/774] Don't remove moreFields UI when clearing a value (close #6580) --- modules/ui/field.js | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/modules/ui/field.js b/modules/ui/field.js index 18ede7f9be..ecd840df33 100644 --- a/modules/ui/field.js +++ b/modules/ui/field.js @@ -66,7 +66,7 @@ export function uiField(context, presetField, entity, options) { } - function isPresent() { + function tagsContainFieldKey() { return field.keys.some(function(key) { if (field.type === 'multiCombo') { for (var tagKey in _tags) { @@ -223,7 +223,7 @@ export function uiField(context, presetField, entity, options) { container .classed('locked', _locked) .classed('modified', isModified()) - .classed('present', isPresent()); + .classed('present', tagsContainFieldKey()); // show a tip and lock icon if the field is locked @@ -254,6 +254,15 @@ export function uiField(context, presetField, entity, options) { field.tags = function(val) { if (!arguments.length) return _tags; _tags = val; + + if (tagsContainFieldKey() && !_show) { + // always show a field if it has a value to display + _show = true; + if (!field.impl) { + createField(); + } + } + return field; }; @@ -279,14 +288,14 @@ export function uiField(context, presetField, entity, options) { // A shown field has a visible UI, a non-shown field is in the 'Add field' dropdown field.isShown = function() { - return _show || isPresent(); + return _show; }; // An allowed field can appear in the UI or in the 'Add field' dropdown. // A non-allowed field is hidden from the user altogether field.isAllowed = function() { - if (!entity || isPresent()) return true; // a field with a value should always display + if (!entity || tagsContainFieldKey()) return true; // a field with a value should always display var latest = context.hasEntity(entity.id); // check the most current copy of the entity if (!latest) return true; From 6e28e704cf49d568583b179899ea8e44b0916cb9 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 3 Dec 2019 15:53:06 -0500 Subject: [PATCH 772/774] Add Marker, Utility Marker, and Power Marker presets (close #6978) Deprecate power=marker --- data/deprecated.json | 4 +++ data/presets.yaml | 18 +++++++++++ data/presets/fields.json | 1 + data/presets/fields/marker.json | 5 +++ data/presets/presets.json | 3 ++ data/presets/presets/marker.json | 32 +++++++++++++++++++ data/presets/presets/marker/utility.json | 28 ++++++++++++++++ .../presets/presets/marker/utility/power.json | 28 ++++++++++++++++ data/taginfo.json | 5 ++- dist/locales/en.json | 15 +++++++++ 10 files changed, 138 insertions(+), 1 deletion(-) create mode 100644 data/presets/fields/marker.json create mode 100644 data/presets/presets/marker.json create mode 100644 data/presets/presets/marker/utility.json create mode 100644 data/presets/presets/marker/utility/power.json diff --git a/data/deprecated.json b/data/deprecated.json index 7166f4bb55..1a8aab0703 100644 --- a/data/deprecated.json +++ b/data/deprecated.json @@ -769,6 +769,10 @@ "old": {"power": "line", "location": "underground"}, "replace": {"power": "cable", "location": "underground"} }, + { + "old": {"power": "marker"}, + "replace": {"marker": "*", "utility": "power"} + }, { "old": {"power": "sub_station"}, "replace": {"power": "substation"} diff --git a/data/presets.yaml b/data/presets.yaml index 4a0fc1799b..733bea7e7e 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -1243,6 +1243,9 @@ en: map_type: # map_type=* label: Type + marker: + # marker=* + label: Type material: # material=* label: Material @@ -6166,6 +6169,21 @@ en: name: Factory # 'terms: assembly,build,brewery,car,plant,plastic,processing,manufacture,refinery' terms: '' + marker: + # marker=* + name: Marker + # 'terms: identifier,marking,plate,pole,post,sign' + terms: '' + marker/utility: + # 'marker=*, utility=*' + name: Utility Marker + # 'terms: gas line marker,identifier,marking,oil marker,pipline marker,plate,pole,post,sign' + terms: '' + marker/utility/power: + # 'marker=*, utility=power' + name: Power Marker + # 'terms: electric line,identifier,marking,plate,pole,post,power cable,power line,sign' + terms: '' military/bunker: # military=bunker name: Military Bunker diff --git a/data/presets/fields.json b/data/presets/fields.json index 6778e73a19..a2aa462935 100644 --- a/data/presets/fields.json +++ b/data/presets/fields.json @@ -230,6 +230,7 @@ "manufacturer": {"key": "manufacturer", "type": "combo", "snake_case": false, "caseSensitive": true, "label": "Manufacturer"}, "map_size": {"key": "map_size", "type": "typeCombo", "label": "Coverage"}, "map_type": {"key": "map_type", "type": "typeCombo", "label": "Type"}, + "marker": {"key": "marker", "type": "typeCombo", "label": "Type"}, "material": {"key": "material", "type": "combo", "label": "Material"}, "max_age": {"key": "max_age", "type": "number", "minValue": 0, "label": "Maximum Age", "terms": ["upper age limit"]}, "maxheight": {"key": "maxheight", "type": "combo", "label": "Max Height", "placeholder": "4, 4.5, 5, 14'0\", 14'6\", 15'0\"", "snake_case": false}, diff --git a/data/presets/fields/marker.json b/data/presets/fields/marker.json new file mode 100644 index 0000000000..e50e5955d4 --- /dev/null +++ b/data/presets/fields/marker.json @@ -0,0 +1,5 @@ +{ + "key": "marker", + "type": "typeCombo", + "label": "Type" +} diff --git a/data/presets/presets.json b/data/presets/presets.json index 617076607e..d987c7c191 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -780,6 +780,9 @@ "man_made/watermill": {"icon": "maki-watermill", "fields": ["building_area"], "geometry": ["point", "area"], "terms": ["water", "wheel", "mill"], "tags": {"man_made": "watermill"}, "name": "Watermill"}, "man_made/windmill": {"icon": "maki-windmill", "fields": ["building_area"], "geometry": ["point", "area"], "terms": ["wind", "wheel", "mill"], "tags": {"man_made": "windmill"}, "name": "Windmill"}, "man_made/works": {"icon": "maki-industry", "fields": ["name", "operator", "address", "building_area", "product"], "moreFields": ["email", "fax", "phone", "website"], "geometry": ["point", "area"], "terms": ["assembly", "build", "brewery", "car", "plant", "plastic", "processing", "manufacture", "refinery"], "tags": {"man_made": "works"}, "name": "Factory"}, + "marker": {"icon": "temaki-silo", "fields": ["ref", "operator", "marker", "utility_semi", "inscription", "colour"], "moreFields": ["height", "location", "manufacturer", "material"], "geometry": ["point"], "terms": ["identifier", "marking", "plate", "pole", "post", "sign"], "tags": {"marker": "*"}, "name": "Marker"}, + "marker/utility": {"icon": "temaki-silo", "fields": ["ref", "operator", "marker", "{marker}"], "geometry": ["point"], "terms": ["gas line marker", "identifier", "marking", "oil marker", "pipline marker", "plate", "pole", "post", "sign"], "tags": {"marker": "*", "utility": "*"}, "name": "Utility Marker"}, + "marker/utility/power": {"icon": "temaki-silo", "fields": ["ref", "operator", "marker", "{marker}"], "geometry": ["point"], "terms": ["electric line", "identifier", "marking", "plate", "pole", "post", "power cable", "power line", "sign"], "tags": {"marker": "*", "utility": "power"}, "name": "Power Marker"}, "military/bunker": {"icon": "temaki-military", "fields": ["name", "bunker_type", "building_area"], "geometry": ["point", "area"], "tags": {"military": "bunker"}, "addTags": {"building": "bunker", "military": "bunker"}, "terms": ["air force", "army", "base", "fight", "force", "guard", "marine", "navy", "troop", "war"], "name": "Military Bunker"}, "military/checkpoint": {"icon": "maki-barrier", "fields": ["name"], "geometry": ["point", "vertex", "area"], "tags": {"military": "checkpoint"}, "terms": ["air force", "army", "base", "force", "guard", "marine", "navy", "troop", "war"], "name": "Checkpoint"}, "military/nuclear_explosion_site": {"icon": "maki-danger", "fields": ["name"], "geometry": ["point", "vertex", "area"], "tags": {"military": "nuclear_explosion_site"}, "terms": ["atom", "blast", "bomb", "detonat*", "nuke", "site", "test"], "name": "Nuclear Explosion Site"}, diff --git a/data/presets/presets/marker.json b/data/presets/presets/marker.json new file mode 100644 index 0000000000..e6a12d9116 --- /dev/null +++ b/data/presets/presets/marker.json @@ -0,0 +1,32 @@ +{ + "icon": "temaki-silo", + "fields": [ + "ref", + "operator", + "marker", + "utility_semi", + "inscription", + "colour" + ], + "moreFields": [ + "height", + "location", + "manufacturer", + "material" + ], + "geometry": [ + "point" + ], + "terms": [ + "identifier", + "marking", + "plate", + "pole", + "post", + "sign" + ], + "tags": { + "marker": "*" + }, + "name": "Marker" +} diff --git a/data/presets/presets/marker/utility.json b/data/presets/presets/marker/utility.json new file mode 100644 index 0000000000..2b800a547a --- /dev/null +++ b/data/presets/presets/marker/utility.json @@ -0,0 +1,28 @@ +{ + "icon": "temaki-silo", + "fields": [ + "ref", + "operator", + "marker", + "{marker}" + ], + "geometry": [ + "point" + ], + "terms": [ + "gas line marker", + "identifier", + "marking", + "oil marker", + "pipline marker", + "plate", + "pole", + "post", + "sign" + ], + "tags": { + "marker": "*", + "utility": "*" + }, + "name": "Utility Marker" +} diff --git a/data/presets/presets/marker/utility/power.json b/data/presets/presets/marker/utility/power.json new file mode 100644 index 0000000000..2100ca8755 --- /dev/null +++ b/data/presets/presets/marker/utility/power.json @@ -0,0 +1,28 @@ +{ + "icon": "temaki-silo", + "fields": [ + "ref", + "operator", + "marker", + "{marker}" + ], + "geometry": [ + "point" + ], + "terms": [ + "electric line", + "identifier", + "marking", + "plate", + "pole", + "post", + "power cable", + "power line", + "sign" + ], + "tags": { + "marker": "*", + "utility": "power" + }, + "name": "Power Marker" +} diff --git a/data/taginfo.json b/data/taginfo.json index d3d202a303..f19194cd62 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -755,6 +755,9 @@ {"key": "man_made", "value": "watermill", "description": "🄿 Watermill", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/watermill-15.svg"}, {"key": "man_made", "value": "windmill", "description": "🄿 Windmill", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/windmill-15.svg"}, {"key": "man_made", "value": "works", "description": "🄿 Factory", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/industry-15.svg"}, + {"key": "marker", "description": "🄿 Marker, 🄵 Type", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/silo.svg"}, + {"key": "utility", "description": "🄿 Utility Marker, 🄵 Utilities", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/silo.svg"}, + {"key": "utility", "value": "power", "description": "🄿 Power Marker", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/silo.svg"}, {"key": "military", "value": "bunker", "description": "🄿 Military Bunker", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/bhousel/temaki/icons/military.svg"}, {"key": "military", "value": "checkpoint", "description": "🄿 Checkpoint", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/barrier-15.svg"}, {"key": "military", "value": "nuclear_explosion_site", "description": "🄿 Nuclear Explosion Site", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/danger-15.svg"}, @@ -1851,7 +1854,6 @@ {"key": "usage", "value": "military", "description": "🄵 Usage Type"}, {"key": "usage", "value": "test", "description": "🄵 Usage Type"}, {"key": "usage", "value": "tourism", "description": "🄵 Usage Type"}, - {"key": "utility", "description": "🄵 Utilities"}, {"key": "valve", "description": "🄵 Type"}, {"key": "vending", "description": "🄵 Types of Goods"}, {"key": "video", "description": "🄵 Video Calls"}, @@ -2058,6 +2060,7 @@ {"key": "pole", "value": "transition", "description": "🄳 ➜ location:transition=yes"}, {"key": "postcode", "description": "🄳 ➜ addr:postcode=*"}, {"key": "power", "value": "busbar", "description": "🄳 ➜ power=line + line=busbar"}, + {"key": "power", "value": "marker", "description": "🄳 ➜ marker=* + utility=power"}, {"key": "power", "value": "underground_cable", "description": "🄳 ➜ power=cable + location=underground"}, {"key": "power_source", "description": "🄳 ➜ generator:source=*"}, {"key": "power_rating", "description": "🄳 ➜ generator:output=*"}, diff --git a/dist/locales/en.json b/dist/locales/en.json index ea5dc900d7..189f998d11 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -3556,6 +3556,9 @@ "map_type": { "label": "Type" }, + "marker": { + "label": "Type" + }, "material": { "label": "Material", "terms": "" @@ -7749,6 +7752,18 @@ "name": "Factory", "terms": "assembly,build,brewery,car,plant,plastic,processing,manufacture,refinery" }, + "marker": { + "name": "Marker", + "terms": "identifier,marking,plate,pole,post,sign" + }, + "marker/utility": { + "name": "Utility Marker", + "terms": "gas line marker,identifier,marking,oil marker,pipline marker,plate,pole,post,sign" + }, + "marker/utility/power": { + "name": "Power Marker", + "terms": "electric line,identifier,marking,plate,pole,post,power cable,power line,sign" + }, "military/bunker": { "name": "Military Bunker", "terms": "air force,army,base,fight,force,guard,marine,navy,troop,war" From 1647b9addf1cfabeb1f5df99521825d759d3aa9a Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 3 Dec 2019 20:11:39 -0500 Subject: [PATCH 773/774] Add `countryCodes` and `notCountryCodes` properties for fields (close #7085) Add documentation note about `prerequisiteTag` property getting ignored if a value is present --- data/presets/README.md | 12 ++++++++++++ data/presets/schema/field.json | 18 ++++++++++++++++++ modules/ui/field.js | 25 ++++++++++++++++++++++--- 3 files changed, 52 insertions(+), 3 deletions(-) diff --git a/data/presets/README.md b/data/presets/README.md index a7751b8988..1b477ff115 100644 --- a/data/presets/README.md +++ b/data/presets/README.md @@ -410,6 +410,18 @@ For example, this is how we show the Internet Access Fee field only if the featu } ``` +If a feature has a value for this field's `key` or `keys`, it will display regardless of the `prerequisiteTag` property. + +##### `countryCodes` + +An array of two-letter, lowercase [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country codes. The field will only be available for features in the specified, whitelisted countries. + +By default, fields are available everywhere. + +##### `notCountryCodes` + +An array of two-letter, lowercase [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country codes. Similar to `countryCodes` except a blacklist instead of a whitelist. + ## Building diff --git a/data/presets/schema/field.json b/data/presets/schema/field.json index 82dc4e34ae..13baeea10d 100644 --- a/data/presets/schema/field.json +++ b/data/presets/schema/field.json @@ -183,6 +183,24 @@ "items": { "type": "string" } + }, + "countryCodes": { + "description": "Countries where to allow the field, as lowercase ISO 3166-1 alpha-2 codes (https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "pattern": "^[a-z]{2}$" + } + }, + "notCountryCodes": { + "description": "Countries where NOT to allow the field, as lowercase ISO 3166-1 alpha-2 codes (https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "pattern": "^[a-z]{2}$" + } } }, "additionalProperties": false diff --git a/modules/ui/field.js b/modules/ui/field.js index ecd840df33..11da3613e7 100644 --- a/modules/ui/field.js +++ b/modules/ui/field.js @@ -1,3 +1,4 @@ +import * as countryCoder from '@ideditor/country-coder'; import { dispatch as d3_dispatch } from 'd3-dispatch'; import { event as d3_event, select as d3_select } from 'd3-selection'; @@ -295,13 +296,30 @@ export function uiField(context, presetField, entity, options) { // An allowed field can appear in the UI or in the 'Add field' dropdown. // A non-allowed field is hidden from the user altogether field.isAllowed = function() { - if (!entity || tagsContainFieldKey()) return true; // a field with a value should always display - var latest = context.hasEntity(entity.id); // check the most current copy of the entity + var latest = entity && context.hasEntity(entity.id); // check the most current copy of the entity if (!latest) return true; + if (field.countryCodes || field.notCountryCodes) { + var center = latest.extent(context.graph()).center(); + var countryCode = countryCoder.iso1A2Code(center); + + if (!countryCode) return false; + + countryCode = countryCode.toLowerCase(); + + if (field.countryCodes && field.countryCodes.indexOf(countryCode) === -1) { + return false; + } + if (field.notCountryCodes && field.notCountryCodes.indexOf(countryCode) !== -1) { + return false; + } + } + var prerequisiteTag = field.prerequisiteTag; - if (prerequisiteTag) { + + if (!tagsContainFieldKey() && // ignore tagging prerequisites if a value is already present + prerequisiteTag) { if (prerequisiteTag.key) { var value = latest.tags[prerequisiteTag.key]; if (!value) return false; @@ -316,6 +334,7 @@ export function uiField(context, presetField, entity, options) { if (latest.tags[prerequisiteTag.keyNot]) return false; } } + return true; }; From 6c7d8b6150903e5e47074ae8be615c4ab4c3e2e4 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 3 Dec 2019 20:47:10 -0500 Subject: [PATCH 774/774] Add `identifier` field for tags linking features to external databases Add US-only field for `gnis:feature_id` (close #7086) Add tooltip to wikipedia field link button --- css/80_app.css | 12 +- data/core.yaml | 2 +- data/presets.yaml | 5 + data/presets/README.md | 13 + data/presets/fields.json | 1 + data/presets/fields/gnis/feature_id.json | 13 + data/presets/presets.json | 360 +++++++++--------- data/presets/presets/_natural.json | 3 + data/presets/presets/_place.json | 3 + data/presets/presets/aeroway/aerodrome.json | 3 + .../presets/amenity/animal_boarding.json | 1 + .../presets/amenity/animal_breeding.json | 1 + .../presets/amenity/animal_shelter.json | 1 + data/presets/presets/amenity/arts_centre.json | 1 + data/presets/presets/amenity/bank.json | 1 + data/presets/presets/amenity/bar.json | 1 + data/presets/presets/amenity/cafe.json | 1 + data/presets/presets/amenity/car_wash.json | 1 + data/presets/presets/amenity/casino.json | 1 + data/presets/presets/amenity/childcare.json | 1 + data/presets/presets/amenity/cinema.json | 1 + data/presets/presets/amenity/clinic.json | 1 + data/presets/presets/amenity/college.json | 1 + .../presets/amenity/community_centre.json | 1 + .../presets/amenity/conference_centre.json | 1 + data/presets/presets/amenity/courthouse.json | 1 + data/presets/presets/amenity/crematorium.json | 1 + data/presets/presets/amenity/dentist.json | 1 + data/presets/presets/amenity/dive_centre.json | 1 + data/presets/presets/amenity/doctors.json | 1 + data/presets/presets/amenity/dojo.json | 1 + .../presets/amenity/driving_school.json | 1 + .../presets/presets/amenity/events_venue.json | 1 + data/presets/presets/amenity/fast_food.json | 1 + .../presets/presets/amenity/fire_station.json | 1 + data/presets/presets/amenity/food_court.json | 1 + data/presets/presets/amenity/fuel.json | 1 + data/presets/presets/amenity/grave_yard.json | 1 + data/presets/presets/amenity/hospital.json | 1 + data/presets/presets/amenity/ice_cream.json | 1 + .../presets/amenity/internet_cafe.json | 1 + data/presets/presets/amenity/karaoke.json | 1 + .../presets/presets/amenity/kindergarten.json | 1 + .../presets/amenity/language_school.json | 1 + data/presets/presets/amenity/library.json | 1 + data/presets/presets/amenity/love_hotel.json | 1 + data/presets/presets/amenity/marketplace.json | 1 + data/presets/presets/amenity/monastery.json | 1 + .../presets/presets/amenity/music_school.json | 1 + data/presets/presets/amenity/nightclub.json | 1 + data/presets/presets/amenity/pharmacy.json | 1 + .../presets/amenity/place_of_worship.json | 1 + data/presets/presets/amenity/planetarium.json | 1 + data/presets/presets/amenity/police.json | 1 + .../presets/amenity/polling_station.json | 1 + data/presets/presets/amenity/post_box.json | 1 + data/presets/presets/amenity/post_depot.json | 1 + data/presets/presets/amenity/post_office.json | 1 + data/presets/presets/amenity/prep_school.json | 1 + data/presets/presets/amenity/prison.json | 1 + data/presets/presets/amenity/pub.json | 1 + data/presets/presets/amenity/public_bath.json | 1 + .../presets/amenity/ranger_station.json | 1 + .../presets/amenity/research_institute.json | 1 + data/presets/presets/amenity/restaurant.json | 1 + data/presets/presets/amenity/school.json | 1 + data/presets/presets/amenity/shelter.json | 1 + .../presets/amenity/social_centre.json | 1 + .../presets/amenity/social_facility.json | 1 + data/presets/presets/amenity/studio.json | 1 + data/presets/presets/amenity/theatre.json | 1 + data/presets/presets/amenity/townhall.json | 1 + .../presets/amenity/vehicle_inspection.json | 1 + data/presets/presets/amenity/veterinary.json | 1 + data/presets/presets/building.json | 1 + data/presets/presets/club.json | 1 + data/presets/presets/craft.json | 1 + .../presets/emergency/ambulance_station.json | 1 + data/presets/presets/ford.json | 3 + data/presets/presets/healthcare.json | 1 + data/presets/presets/highway/path.json | 1 + data/presets/presets/highway/trailhead.json | 1 + data/presets/presets/historic.json | 3 + .../presets/historic/boundary_stone.json | 1 + data/presets/presets/historic/memorial.json | 1 + data/presets/presets/historic/monument.json | 1 + .../presets/historic/wayside_cross.json | 1 + data/presets/presets/historic/wreck.json | 1 + .../presets/leisure/amusement_arcade.json | 1 + data/presets/presets/leisure/bandstand.json | 1 + .../presets/presets/leisure/beach_resort.json | 1 + .../presets/leisure/bowling_alley.json | 1 + data/presets/presets/leisure/common.json | 4 +- data/presets/presets/leisure/dance.json | 1 + .../presets/leisure/dancing_school.json | 1 + .../presets/leisure/disc_golf_course.json | 1 + data/presets/presets/leisure/dog_park.json | 1 + .../presets/leisure/fitness_centre.json | 1 + data/presets/presets/leisure/garden.json | 1 + data/presets/presets/leisure/golf_course.json | 1 + data/presets/presets/leisure/hackerspace.json | 1 + .../presets/presets/leisure/horse_riding.json | 1 + data/presets/presets/leisure/ice_rink.json | 1 + data/presets/presets/leisure/marina.json | 1 + .../presets/leisure/miniature_golf.json | 1 + .../presets/leisure/nature_reserve.json | 1 + data/presets/presets/leisure/park.json | 1 + data/presets/presets/leisure/pitch.json | 1 + data/presets/presets/leisure/playground.json | 1 + data/presets/presets/leisure/resort.json | 1 + data/presets/presets/leisure/sauna.json | 1 + .../presets/leisure/sports_centre.json | 1 + data/presets/presets/leisure/stadium.json | 1 + .../presets/leisure/swimming_pool.json | 1 + data/presets/presets/leisure/track.json | 1 + data/presets/presets/leisure/water_park.json | 1 + data/presets/presets/man_made/adit.json | 3 + data/presets/presets/man_made/bridge.json | 1 + .../presets/presets/man_made/bunker_silo.json | 3 + data/presets/presets/man_made/lighthouse.json | 1 + data/presets/presets/man_made/mast.json | 1 + data/presets/presets/man_made/mineshaft.json | 3 + .../presets/presets/man_made/observatory.json | 1 + .../presets/man_made/petroleum_well.json | 3 + data/presets/presets/man_made/pier.json | 1 + .../presets/man_made/pumping_station.json | 3 + data/presets/presets/man_made/silo.json | 3 + data/presets/presets/man_made/tower.json | 3 +- data/presets/presets/man_made/tunnel.json | 3 + .../presets/man_made/wastewater_plant.json | 1 + .../presets/presets/man_made/water_tower.json | 3 + data/presets/presets/man_made/water_well.json | 3 + .../presets/presets/man_made/water_works.json | 3 + data/presets/presets/man_made/watermill.json | 3 + data/presets/presets/man_made/windmill.json | 3 + data/presets/presets/man_made/works.json | 1 + data/presets/presets/military/bunker.json | 3 + .../military/nuclear_explosion_site.json | 3 + data/presets/presets/military/office.json | 1 + data/presets/presets/natural/water.json | 1 + data/presets/presets/office.json | 1 + data/presets/presets/place/_farm.json | 3 - data/presets/presets/place/city.json | 1 + data/presets/presets/place/city_block.json | 4 +- data/presets/presets/place/hamlet.json | 1 + data/presets/presets/place/island.json | 3 - data/presets/presets/place/islet.json | 3 - .../presets/place/isolated_dwelling.json | 3 - data/presets/presets/place/locality.json | 10 +- data/presets/presets/place/neighbourhood.json | 1 + data/presets/presets/place/plot.json | 3 - data/presets/presets/place/quarter.json | 1 + data/presets/presets/place/square.json | 10 +- data/presets/presets/place/suburb.json | 1 + data/presets/presets/place/town.json | 1 + data/presets/presets/place/village.json | 1 + data/presets/presets/power/plant.json | 3 + data/presets/presets/power/substation.json | 3 + .../public_transport/platform_point.json | 1 + .../presets/public_transport/station.json | 1 + data/presets/presets/shop.json | 1 + data/presets/presets/telecom/data_center.json | 1 + data/presets/presets/tourism/alpine_hut.json | 1 + data/presets/presets/tourism/aquarium.json | 1 + data/presets/presets/tourism/attraction.json | 3 + data/presets/presets/tourism/camp_site.json | 1 + .../presets/presets/tourism/caravan_site.json | 1 + data/presets/presets/tourism/chalet.json | 1 + data/presets/presets/tourism/gallery.json | 1 + data/presets/presets/tourism/guest_house.json | 1 + .../presets/tourism/information/office.json | 1 + data/presets/presets/tourism/motel.json | 1 + data/presets/presets/tourism/museum.json | 1 + data/presets/presets/tourism/picnic_site.json | 1 + data/presets/presets/tourism/theme_park.json | 1 + .../presets/tourism/trail_riding_station.json | 1 + .../presets/tourism/wilderness_hut.json | 1 + data/presets/presets/tourism/zoo.json | 1 + .../presets/type/boundary/administrative.json | 3 + data/presets/presets/waterway/boatyard.json | 1 + data/presets/presets/waterway/canal.json | 1 + data/presets/presets/waterway/canal/lock.json | 1 + data/presets/presets/waterway/dam.json | 1 + data/presets/presets/waterway/river.json | 1 + data/presets/presets/waterway/stream.json | 1 + data/presets/presets/waterway/waterfall.json | 3 + data/presets/presets/waterway/weir.json | 1 + data/presets/schema/field.json | 9 + data/taginfo.json | 1 + dist/locales/en.json | 6 +- modules/ui/fields/index.js | 2 + modules/ui/fields/input.js | 48 ++- modules/ui/fields/wikidata.js | 2 +- modules/ui/fields/wikipedia.js | 1 + 194 files changed, 519 insertions(+), 220 deletions(-) create mode 100644 data/presets/fields/gnis/feature_id.json diff --git a/css/80_app.css b/css/80_app.css index f639fc2e6b..d0a141ad4b 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -1813,16 +1813,20 @@ button.preset-favorite-button.active .icon { .form-field-input-url > input:only-of-type { border-radius: 0 0 4px 4px; } -.form-field-input-number > input:only-of-type { +.form-field-input-number > input:only-of-type, +.form-field-input-identifier > input:only-of-type { border-radius: 0 0 0 4px; } -[dir='rtl'] .form-field-input-number > input:only-of-type { +[dir='rtl'] .form-field-input-number > input:only-of-type, +[dir='rtl'] .form-field-input-identifier > input:only-of-type { border-radius: 0 0 4px 0; } -.form-field-input-number > button:last-of-type { +.form-field-input-number > button:last-of-type, +.form-field-input-identifier > button:last-of-type { border-radius: 0 0 4px 0; } -[dir='rtl'] .form-field-input-number > button:last-of-type { +[dir='rtl'] .form-field-input-number > button:last-of-type, +[dir='rtl'] .form-field-input-identifier > button:last-of-type { border-radius: 0 0 0 4px; } diff --git a/data/core.yaml b/data/core.yaml index c7280aff98..3cc4503e7c 100644 --- a/data/core.yaml +++ b/data/core.yaml @@ -6,7 +6,7 @@ en: undo: undo zoom_to: zoom to copy: copy - open_wikidata: open on wikidata.org + view_on: view on {domain} favorite: favorite toolbar: inspect: Inspect diff --git a/data/presets.yaml b/data/presets.yaml index 733bea7e7e..e801575b06 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -897,6 +897,11 @@ en: generator/type: # 'generator:type=*' label: Type + gnis/feature_id: + # 'gnis:feature_id=*' + label: GNIS Feature ID + # 'terms: Federal Geographic Names Information Service,United States Board on Geographic Names,USA' + terms: '[translate with synonyms or related terms for ''GNIS Feature ID'', separated by commas]' government: # government=* label: Type diff --git a/data/presets/README.md b/data/presets/README.md index 1b477ff115..b99e1d8505 100644 --- a/data/presets/README.md +++ b/data/presets/README.md @@ -260,6 +260,7 @@ A string specifying the UI and behavior of the field. Must be one of the followi * `tel` - Text field for entering phone numbers (localized for editing location) * `email` - Text field for entering email addresses * `url` - Text field for entering URLs +* `identifier` - Text field for foreign IDs (e.g. `gnis:feature_id`) * `textarea` - Multi-line text area (e.g. `description=*`) ###### Combo/Dropdown fields @@ -422,6 +423,18 @@ By default, fields are available everywhere. An array of two-letter, lowercase [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country codes. Similar to `countryCodes` except a blacklist instead of a whitelist. +##### `urlFormat` + +For `identifier` fields, the permalink URL of the external record. It must contain a `{value}` placeholder where the tag value will be inserted. For example: + +```js +"urlFormat": "https://geonames.usgs.gov/apex/f?p=gnispq:3:::NO::P3_FID:{value}" +``` + +##### `pattern` + +For `identifier` fields, the regular expression that valid values are expected to match to be linkable. + ## Building diff --git a/data/presets/fields.json b/data/presets/fields.json index a2aa462935..a96ebacf84 100644 --- a/data/presets/fields.json +++ b/data/presets/fields.json @@ -161,6 +161,7 @@ "generator/output/electricity": {"key": "generator:output:electricity", "type": "typeCombo", "label": "Power Output", "placeholder": "50 MW, 100 MW, 200 MW...", "snake_case": false}, "generator/source": {"key": "generator:source", "type": "combo", "label": "Source"}, "generator/type": {"key": "generator:type", "type": "combo", "label": "Type"}, + "gnis/feature_id": {"key": "gnis:feature_id", "type": "identifier", "label": "GNIS Feature ID", "urlFormat": "https://geonames.usgs.gov/apex/f?p=gnispq:3:::NO::P3_FID:{value}", "pattern": "^[0-9]{1,}$", "countryCodes": ["us"], "terms": ["Federal Geographic Names Information Service", "United States Board on Geographic Names", "USA"]}, "government": {"key": "government", "type": "typeCombo", "label": "Type"}, "grape_variety": {"key": "grape_variety", "type": "semiCombo", "label": "Grape Varieties"}, "guest_house": {"key": "guest_house", "type": "combo", "label": "Type"}, diff --git a/data/presets/fields/gnis/feature_id.json b/data/presets/fields/gnis/feature_id.json new file mode 100644 index 0000000000..fd8279a746 --- /dev/null +++ b/data/presets/fields/gnis/feature_id.json @@ -0,0 +1,13 @@ +{ + "key": "gnis:feature_id", + "type": "identifier", + "label": "GNIS Feature ID", + "urlFormat": "https://geonames.usgs.gov/apex/f?p=gnispq:3:::NO::P3_FID:{value}", + "pattern": "^[0-9]{1,}$", + "countryCodes": ["us"], + "terms": [ + "Federal Geographic Names Information Service", + "United States Board on Geographic Names", + "USA" + ] +} diff --git a/data/presets/presets.json b/data/presets/presets.json index d987c7c191..37db07a1b4 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -14,8 +14,8 @@ "landuse": {"fields": ["name", "landuse"], "geometry": ["area"], "tags": {"landuse": "*"}, "matchScore": 0.9, "searchable": false, "name": "Land Use"}, "leisure": {"icon": "maki-pitch", "fields": ["name", "leisure"], "geometry": ["point", "vertex", "line", "area"], "tags": {"leisure": "*"}, "searchable": false, "name": "Leisure"}, "man_made": {"icon": "temaki-storage_tank", "fields": ["name", "man_made"], "moreFields": ["material"], "geometry": ["point", "vertex", "line", "area"], "tags": {"man_made": "*"}, "matchScore": 0.95, "searchable": false, "name": "Man Made"}, - "natural": {"icon": "maki-natural", "fields": ["name", "natural"], "geometry": ["point", "vertex", "line", "area"], "tags": {"natural": "*"}, "searchable": false, "name": "Natural"}, - "place": {"fields": ["name", "place"], "geometry": ["point", "vertex", "area"], "tags": {"place": "*"}, "searchable": false, "name": "Place"}, + "natural": {"icon": "maki-natural", "fields": ["name", "natural"], "moreFields": ["gnis/feature_id"], "geometry": ["point", "vertex", "line", "area"], "tags": {"natural": "*"}, "searchable": false, "name": "Natural"}, + "place": {"fields": ["name", "place"], "moreFields": ["gnis/feature_id"], "geometry": ["point", "vertex", "area"], "tags": {"place": "*"}, "searchable": false, "name": "Place"}, "playground": {"icon": "maki-playground", "fields": ["playground", "playground/theme", "min_age", "max_age", "wheelchair", "blind", "height"], "moreFields": ["access_simple", "colour", "ref"], "geometry": ["point", "vertex", "line", "area"], "tags": {"playground": "*"}, "searchable": false, "name": "Playground Equipment"}, "power": {"geometry": ["point", "vertex", "line", "area"], "tags": {"power": "*"}, "fields": ["power"], "moreFields": ["material"], "searchable": false, "name": "Power"}, "railway": {"fields": ["railway"], "geometry": ["point", "vertex", "line", "area"], "tags": {"railway": "*"}, "searchable": false, "name": "Railway"}, @@ -42,7 +42,7 @@ "aerialway/rope_tow": {"geometry": ["line"], "terms": ["handle tow", "bugel lift"], "fields": ["name", "oneway_yes", "aerialway/capacity", "aerialway/duration"], "tags": {"aerialway": "rope_tow"}, "name": "Rope Tow Lift"}, "aerialway/t-bar": {"geometry": ["line"], "fields": ["name", "aerialway/capacity", "aerialway/duration"], "terms": ["tbar"], "tags": {"aerialway": "t-bar"}, "name": "T-bar Lift"}, "aerialway/zip_line": {"geometry": ["line"], "fields": ["name", "oneway_yes", "aerialway/duration", "maxweight", "access_simple"], "terms": ["aerial runway", "canopy", "flying fox", "foefie slide", "gravity propelled aerial ropeslide", "Tyrolean traverse", "zip wire", "zip-line", "zipline", "zipwire"], "tags": {"aerialway": "zip_line"}, "name": "Zip Line"}, - "aeroway/aerodrome": {"icon": "maki-airport", "geometry": ["point", "area"], "fields": ["name", "iata", "icao", "operator", "internet_access", "internet_access/fee", "internet_access/ssid"], "terms": ["aerodrome", "aeroway", "airplane", "airport", "jet", "plane"], "tags": {"aeroway": "aerodrome"}, "matchScore": 0.9, "name": "Airport"}, + "aeroway/aerodrome": {"icon": "maki-airport", "geometry": ["point", "area"], "fields": ["name", "iata", "icao", "operator", "internet_access", "internet_access/fee", "internet_access/ssid"], "moreFields": ["gnis/feature_id"], "terms": ["aerodrome", "aeroway", "airplane", "airport", "jet", "plane"], "tags": {"aeroway": "aerodrome"}, "matchScore": 0.9, "name": "Airport"}, "aeroway/apron": {"icon": "maki-airport", "geometry": ["area"], "terms": ["ramp"], "fields": ["ref", "surface"], "tags": {"aeroway": "apron"}, "name": "Apron"}, "aeroway/gate": {"icon": "maki-airport", "geometry": ["point"], "fields": ["ref_aeroway_gate"], "tags": {"aeroway": "gate"}, "name": "Airport Gate"}, "aeroway/hangar": {"icon": "fas-warehouse", "geometry": ["area"], "fields": ["name", "building_area"], "tags": {"aeroway": "hangar"}, "addTags": {"building": "hangar", "aeroway": "hangar"}, "name": "Hangar"}, @@ -65,13 +65,13 @@ "amenity/register_office": {"icon": "maki-town-hall", "fields": ["name", "address", "building_area", "opening_hours", "operator"], "geometry": ["point", "area"], "tags": {"amenity": "register_office"}, "reference": {"key": "government", "value": "register_office"}, "name": "Register Office", "searchable": false}, "amenity/scrapyard": {"icon": "temaki-junk_car", "fields": ["name", "operator", "address", "opening_hours"], "geometry": ["point", "area"], "tags": {"amenity": "scrapyard"}, "reference": {"key": "industrial", "value": "scrap_yard"}, "name": "Scrap Yard", "searchable": false}, "amenity/swimming_pool": {"icon": "fas-swimmer", "geometry": ["point", "vertex", "area"], "tags": {"amenity": "swimming_pool"}, "reference": {"key": "leisure", "value": "swimming_pool"}, "name": "Swimming Pool", "searchable": false}, - "amenity/animal_boarding": {"icon": "maki-veterinary", "fields": ["name", "operator", "address", "building_area", "opening_hours", "animal_boarding"], "moreFields": ["email", "fax", "level", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["boarding", "cat", "cattery", "dog", "horse", "kennel", "kitten", "pet", "pet boarding", "pet care", "pet hotel", "puppy", "reptile"], "tags": {"amenity": "animal_boarding"}, "name": "Animal Boarding Facility"}, - "amenity/animal_breeding": {"icon": "maki-veterinary", "fields": ["name", "operator", "address", "building_area", "opening_hours", "animal_breeding"], "moreFields": ["email", "fax", "level", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["breeding", "bull", "cat", "cow", "dog", "horse", "husbandry", "kitten", "livestock", "pet breeding", "puppy", "reptile"], "tags": {"amenity": "animal_breeding"}, "name": "Animal Breeding Facility"}, - "amenity/animal_shelter": {"icon": "maki-veterinary", "fields": ["name", "operator", "address", "building_area", "opening_hours", "animal_shelter"], "moreFields": ["email", "fax", "level", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["adoption", "aspca", "cat", "dog", "horse", "kitten", "pet care", "pet rescue", "puppy", "raptor", "reptile", "rescue", "spca", "pound"], "tags": {"amenity": "animal_shelter"}, "name": "Animal Shelter"}, - "amenity/arts_centre": {"icon": "maki-theatre", "fields": ["name", "address", "building_area", "opening_hours", "website"], "moreFields": ["charge_fee", "email", "fax", "fee", "internet_access", "internet_access/fee", "internet_access/ssid", "level", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": [], "tags": {"amenity": "arts_centre"}, "name": "Arts Center"}, + "amenity/animal_boarding": {"icon": "maki-veterinary", "fields": ["name", "operator", "address", "building_area", "opening_hours", "animal_boarding"], "moreFields": ["email", "fax", "gnis/feature_id", "level", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["boarding", "cat", "cattery", "dog", "horse", "kennel", "kitten", "pet", "pet boarding", "pet care", "pet hotel", "puppy", "reptile"], "tags": {"amenity": "animal_boarding"}, "name": "Animal Boarding Facility"}, + "amenity/animal_breeding": {"icon": "maki-veterinary", "fields": ["name", "operator", "address", "building_area", "opening_hours", "animal_breeding"], "moreFields": ["email", "fax", "gnis/feature_id", "level", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["breeding", "bull", "cat", "cow", "dog", "horse", "husbandry", "kitten", "livestock", "pet breeding", "puppy", "reptile"], "tags": {"amenity": "animal_breeding"}, "name": "Animal Breeding Facility"}, + "amenity/animal_shelter": {"icon": "maki-veterinary", "fields": ["name", "operator", "address", "building_area", "opening_hours", "animal_shelter"], "moreFields": ["email", "fax", "gnis/feature_id", "level", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["adoption", "aspca", "cat", "dog", "horse", "kitten", "pet care", "pet rescue", "puppy", "raptor", "reptile", "rescue", "spca", "pound"], "tags": {"amenity": "animal_shelter"}, "name": "Animal Shelter"}, + "amenity/arts_centre": {"icon": "maki-theatre", "fields": ["name", "address", "building_area", "opening_hours", "website"], "moreFields": ["charge_fee", "email", "fax", "fee", "gnis/feature_id", "internet_access", "internet_access/fee", "internet_access/ssid", "level", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": [], "tags": {"amenity": "arts_centre"}, "name": "Arts Center"}, "amenity/atm": {"icon": "maki-bank", "fields": ["operator", "network", "cash_in", "currency_multi", "drive_through"], "moreFields": ["brand", "covered", "height", "indoor", "level", "lit", "manufacturer", "name", "opening_hours", "wheelchair"], "geometry": ["point", "vertex"], "terms": ["money", "cash", "machine"], "tags": {"amenity": "atm"}, "name": "ATM"}, - "amenity/bank": {"icon": "maki-bank", "fields": ["name", "operator", "address", "building_area", "atm", "drive_through"], "moreFields": ["air_conditioning", "currency_multi", "email", "fax", "internet_access", "internet_access/fee", "internet_access/ssid", "level", "opening_hours", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["credit union", "check", "deposit", "fund", "investment", "repository", "reserve", "safe", "savings", "stock", "treasury", "trust", "vault"], "tags": {"amenity": "bank"}, "name": "Bank"}, - "amenity/bar": {"icon": "maki-bar", "fields": ["name", "address", "building_area", "outdoor_seating", "min_age", "brewery"], "moreFields": ["air_conditioning", "email", "fax", "internet_access", "internet_access/fee", "internet_access/ssid", "level", "microbrewery", "opening_hours", "payment_multi", "phone", "smoking", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["dive", "beer", "bier", "booze"], "tags": {"amenity": "bar"}, "name": "Bar"}, + "amenity/bank": {"icon": "maki-bank", "fields": ["name", "operator", "address", "building_area", "atm", "drive_through"], "moreFields": ["air_conditioning", "currency_multi", "email", "fax", "gnis/feature_id", "internet_access", "internet_access/fee", "internet_access/ssid", "level", "opening_hours", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["credit union", "check", "deposit", "fund", "investment", "repository", "reserve", "safe", "savings", "stock", "treasury", "trust", "vault"], "tags": {"amenity": "bank"}, "name": "Bank"}, + "amenity/bar": {"icon": "maki-bar", "fields": ["name", "address", "building_area", "outdoor_seating", "min_age", "brewery"], "moreFields": ["air_conditioning", "email", "fax", "gnis/feature_id", "internet_access", "internet_access/fee", "internet_access/ssid", "level", "microbrewery", "opening_hours", "payment_multi", "phone", "smoking", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["dive", "beer", "bier", "booze"], "tags": {"amenity": "bar"}, "name": "Bar"}, "amenity/bar/lgbtq": {"icon": "maki-bar", "geometry": ["point", "area"], "terms": ["gay bar", "lesbian bar", "lgbtq bar", "lgbt bar", "lgb bar"], "tags": {"amenity": "bar", "lgbtq": "primary"}, "name": "LGBTQ+ Bar"}, "amenity/bbq": {"icon": "maki-bbq", "fields": ["covered", "fuel", "access_simple"], "moreFields": ["lit"], "geometry": ["point"], "terms": ["bbq", "grill"], "tags": {"amenity": "bbq"}, "name": "Barbecue/Grill"}, "amenity/bench": {"icon": "temaki-bench", "fields": ["backrest", "material", "seats", "colour"], "moreFields": ["access_simple", "height", "inscription", "level", "lit", "manufacturer", "operator"], "geometry": ["point", "vertex", "line"], "terms": ["seat", "chair"], "tags": {"amenity": "bench"}, "name": "Bench"}, @@ -84,36 +84,36 @@ "amenity/biergarten": {"icon": "fas-beer", "fields": ["name", "address", "building", "outdoor_seating", "brewery"], "moreFields": ["{amenity/bar}"], "geometry": ["point", "area"], "tags": {"amenity": "biergarten"}, "terms": ["beer", "bier", "booze"], "name": "Biergarten"}, "amenity/boat_rental": {"icon": "temaki-boat_rental", "fields": ["name", "operator", "operator/type", "fee", "payment_multi_fee", "charge_fee"], "moreFields": ["address", "email", "fax", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "boat_rental"}, "name": "Boat Rental"}, "amenity/bureau_de_change": {"icon": "temaki-money_hand", "fields": ["name", "operator", "payment_multi", "currency_multi", "address", "building_area"], "moreFields": ["email", "fax", "level", "opening_hours", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["bureau de change", "money changer"], "tags": {"amenity": "bureau_de_change"}, "name": "Currency Exchange"}, - "amenity/cafe": {"icon": "maki-cafe", "fields": ["name", "cuisine", "address", "building_area", "outdoor_seating", "internet_access", "internet_access/fee"], "moreFields": ["air_conditioning", "bar", "capacity", "delivery", "diet_multi", "email", "fax", "internet_access/ssid", "level", "min_age", "not/name", "opening_hours", "payment_multi", "phone", "reservation", "smoking", "takeaway", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["bistro", "coffee", "tea"], "tags": {"amenity": "cafe"}, "name": "Cafe"}, + "amenity/cafe": {"icon": "maki-cafe", "fields": ["name", "cuisine", "address", "building_area", "outdoor_seating", "internet_access", "internet_access/fee"], "moreFields": ["air_conditioning", "bar", "capacity", "delivery", "diet_multi", "email", "fax", "gnis/feature_id", "internet_access/ssid", "level", "min_age", "not/name", "opening_hours", "payment_multi", "phone", "reservation", "smoking", "takeaway", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["bistro", "coffee", "tea"], "tags": {"amenity": "cafe"}, "name": "Cafe"}, "amenity/car_pooling": {"icon": "temaki-car_pool", "fields": ["name", "operator", "operator/type", "capacity", "address", "opening_hours", "lit"], "moreFields": ["email", "fax", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "car_pooling"}, "name": "Car Pooling"}, "amenity/car_rental": {"icon": "maki-car-rental", "fields": ["name", "operator", "address", "opening_hours", "payment_multi"], "moreFields": ["brand", "email", "fax", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "car_rental"}, "name": "Car Rental"}, "amenity/car_sharing": {"icon": "temaki-sign_and_car", "fields": ["name", "operator", "operator/type", "capacity", "address", "payment_multi", "supervised"], "moreFields": ["email", "fax", "lit", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "car_sharing"}, "name": "Car Sharing"}, - "amenity/car_wash": {"icon": "temaki-car_wash", "fields": ["name", "operator", "address", "building_area", "opening_hours", "payment_multi", "self_service"], "moreFields": ["email", "fax", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "car_wash"}, "name": "Car Wash"}, - "amenity/casino": {"icon": "maki-casino", "fields": ["name", "operator", "address", "building_area", "opening_hours", "smoking"], "moreFields": ["air_conditioning", "email", "fax", "internet_access", "internet_access/fee", "internet_access/ssid", "level", "min_age", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["gambling", "roulette", "craps", "poker", "blackjack"], "tags": {"amenity": "casino"}, "name": "Casino"}, + "amenity/car_wash": {"icon": "temaki-car_wash", "fields": ["name", "operator", "address", "building_area", "opening_hours", "payment_multi", "self_service"], "moreFields": ["email", "fax", "gnis/feature_id", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "car_wash"}, "name": "Car Wash"}, + "amenity/casino": {"icon": "maki-casino", "fields": ["name", "operator", "address", "building_area", "opening_hours", "smoking"], "moreFields": ["air_conditioning", "email", "fax", "gnis/feature_id", "internet_access", "internet_access/fee", "internet_access/ssid", "level", "min_age", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["gambling", "roulette", "craps", "poker", "blackjack"], "tags": {"amenity": "casino"}, "name": "Casino"}, "amenity/charging_station": {"icon": "fas-charging-station", "fields": ["name", "operator", "capacity", "access_simple", "fee", "payment_multi_fee", "charge_fee"], "moreFields": ["brand", "covered", "level", "manufacturer"], "geometry": ["point"], "tags": {"amenity": "charging_station"}, "terms": ["EV", "Electric Vehicle", "Supercharger"], "name": "Charging Station"}, - "amenity/childcare": {"icon": "fas-child", "fields": ["name", "operator", "operator/type", "address", "building_area", "opening_hours"], "moreFields": ["email", "fax", "level", "max_age", "min_age", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["daycare", "orphanage", "playgroup"], "tags": {"amenity": "childcare"}, "name": "Nursery/Childcare"}, - "amenity/cinema": {"icon": "maki-cinema", "fields": ["name", "address", "screen", "building_area", "opening_hours", "payment_multi"], "moreFields": ["air_conditioning", "email", "fax", "level", "min_age", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["drive-in", "film", "flick", "movie", "theater", "picture", "show", "screen"], "tags": {"amenity": "cinema"}, "name": "Cinema"}, - "amenity/clinic": {"icon": "maki-doctor", "fields": ["name", "operator", "operator/type", "healthcare/speciality", "address", "building_area", "opening_hours"], "moreFields": ["air_conditioning", "email", "fax", "level", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["medical", "urgentcare"], "tags": {"amenity": "clinic"}, "addTags": {"amenity": "clinic", "healthcare": "clinic"}, "reference": {"key": "amenity", "value": "clinic"}, "name": "Clinic"}, + "amenity/childcare": {"icon": "fas-child", "fields": ["name", "operator", "operator/type", "address", "building_area", "opening_hours"], "moreFields": ["email", "fax", "gnis/feature_id", "level", "max_age", "min_age", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["daycare", "orphanage", "playgroup"], "tags": {"amenity": "childcare"}, "name": "Nursery/Childcare"}, + "amenity/cinema": {"icon": "maki-cinema", "fields": ["name", "address", "screen", "building_area", "opening_hours", "payment_multi"], "moreFields": ["air_conditioning", "email", "fax", "gnis/feature_id", "level", "min_age", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["drive-in", "film", "flick", "movie", "theater", "picture", "show", "screen"], "tags": {"amenity": "cinema"}, "name": "Cinema"}, + "amenity/clinic": {"icon": "maki-doctor", "fields": ["name", "operator", "operator/type", "healthcare/speciality", "address", "building_area", "opening_hours"], "moreFields": ["air_conditioning", "email", "fax", "gnis/feature_id", "level", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["medical", "urgentcare"], "tags": {"amenity": "clinic"}, "addTags": {"amenity": "clinic", "healthcare": "clinic"}, "reference": {"key": "amenity", "value": "clinic"}, "name": "Clinic"}, "amenity/clinic/abortion": {"icon": "maki-hospital", "geometry": ["point", "area"], "terms": [], "tags": {"amenity": "clinic", "healthcare": "clinic", "healthcare:speciality": "abortion"}, "reference": {"key": "amenity", "value": "clinic"}, "name": "Abortion Clinic"}, "amenity/clinic/fertility": {"icon": "maki-hospital", "geometry": ["point", "area"], "terms": ["egg", "fertility", "reproductive", "sperm", "ovulation"], "tags": {"amenity": "clinic", "healthcare": "clinic", "healthcare:speciality": "fertility"}, "reference": {"key": "amenity", "value": "clinic"}, "name": "Fertility Clinic"}, "amenity/clock": {"icon": "temaki-clock", "fields": ["name", "support", "display", "visibility", "date", "faces"], "moreFields": ["covered", "height", "indoor", "level", "lit", "manufacturer"], "geometry": ["point", "vertex"], "terms": ["time"], "tags": {"amenity": "clock"}, "name": "Clock"}, "amenity/clock/sundial": {"icon": "temaki-clock", "fields": ["name", "support", "visibility", "inscription"], "moreFields": [], "geometry": ["point", "vertex"], "terms": ["gnomon", "shadow"], "tags": {"amenity": "clock", "display": "sundial"}, "reference": {"key": "display", "value": "sundial"}, "name": "Sundial"}, - "amenity/college": {"icon": "maki-college", "fields": ["name", "operator", "operator/type", "address", "website", "internet_access", "internet_access/fee"], "moreFields": ["denomination", "email", "fax", "internet_access/ssid", "phone", "religion", "wheelchair"], "geometry": ["point", "area"], "terms": ["university", "undergraduate school"], "tags": {"amenity": "college"}, "name": "College Grounds"}, - "amenity/community_centre": {"icon": "maki-town-hall", "fields": ["name", "operator", "address", "building_area"], "moreFields": ["air_conditioning", "email", "fax", "phone", "polling_station", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["event", "hall"], "tags": {"amenity": "community_centre"}, "name": "Community Center"}, + "amenity/college": {"icon": "maki-college", "fields": ["name", "operator", "operator/type", "address", "website", "internet_access", "internet_access/fee"], "moreFields": ["denomination", "email", "fax", "gnis/feature_id", "internet_access/ssid", "phone", "religion", "wheelchair"], "geometry": ["point", "area"], "terms": ["university", "undergraduate school"], "tags": {"amenity": "college"}, "name": "College Grounds"}, + "amenity/community_centre": {"icon": "maki-town-hall", "fields": ["name", "operator", "address", "building_area"], "moreFields": ["air_conditioning", "email", "fax", "gnis/feature_id", "phone", "polling_station", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["event", "hall"], "tags": {"amenity": "community_centre"}, "name": "Community Center"}, "amenity/community_centre/lgbtq": {"icon": "maki-town-hall", "geometry": ["point", "area"], "terms": ["lgbtq event", "lgbtq hall", "lgbt event", "lgbt hall", "lgb event", "lgb hall"], "tags": {"amenity": "community_centre", "lgbtq": "primary"}, "name": "LGBTQ+ Community Center"}, "amenity/compressed_air": {"icon": "fas-tachometer-alt", "fields": ["operator", "access_simple", "fee", "payment_multi_fee", "charge_fee", "covered", "lit"], "moreFields": ["brand", "manufacturer"], "geometry": ["point", "area"], "tags": {"amenity": "compressed_air"}, "name": "Compressed Air"}, - "amenity/conference_centre": {"icon": "fas-user-tie", "fields": ["name", "operator", "building_area", "address", "website", "internet_access"], "moreFields": ["air_conditioning", "email", "fax", "internet_access/fee", "internet_access/ssid", "phone", "smoking", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "conference_centre"}, "terms": ["auditorium", "conference", "exhibition", "exposition", "lecture"], "name": "Convention Center"}, - "amenity/courthouse": {"icon": "fas-gavel", "fields": ["name", "operator", "address", "building_area"], "moreFields": ["email", "fax", "level", "phone", "polling_station", "smoking", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "courthouse"}, "name": "Courthouse"}, - "amenity/crematorium": {"icon": "maki-cemetery", "fields": ["name", "website", "phone", "opening_hours", "wheelchair"], "moreFields": ["address", "email", "fax", "level", "phone", "website", "wheelchair"], "geometry": ["area", "point"], "tags": {"amenity": "crematorium"}, "terms": ["cemetery", "funeral"], "name": "Crematorium"}, - "amenity/dentist": {"icon": "maki-dentist", "fields": ["name", "operator", "healthcare/speciality", "address", "building_area", "opening_hours"], "moreFields": ["email", "fax", "level", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["tooth", "teeth"], "tags": {"amenity": "dentist"}, "addTags": {"amenity": "dentist", "healthcare": "dentist"}, "reference": {"key": "amenity", "value": "dentist"}, "name": "Dentist"}, - "amenity/dive_centre": {"icon": "temaki-scuba_diving", "fields": ["name", "operator", "address", "building_area", "opening_hours", "scuba_diving"], "moreFields": ["email", "fax", "level", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["diving", "scuba"], "tags": {"amenity": "dive_centre"}, "name": "Dive Center"}, - "amenity/doctors": {"icon": "maki-doctor", "fields": ["name", "operator", "healthcare/speciality", "address", "building_area", "opening_hours"], "moreFields": ["email", "fax", "level", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["medic*", "physician"], "tags": {"amenity": "doctors"}, "addTags": {"amenity": "doctors", "healthcare": "doctor"}, "reference": {"key": "amenity", "value": "doctors"}, "name": "Doctor"}, - "amenity/dojo": {"icon": "maki-pitch", "fields": ["name", "sport", "address", "building_area", "opening_hours"], "moreFields": ["email", "fax", "level", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["martial arts", "dojang"], "tags": {"amenity": "dojo"}, "name": "Dojo / Martial Arts Academy"}, + "amenity/conference_centre": {"icon": "fas-user-tie", "fields": ["name", "operator", "building_area", "address", "website", "internet_access"], "moreFields": ["air_conditioning", "email", "fax", "gnis/feature_id", "internet_access/fee", "internet_access/ssid", "phone", "smoking", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "conference_centre"}, "terms": ["auditorium", "conference", "exhibition", "exposition", "lecture"], "name": "Convention Center"}, + "amenity/courthouse": {"icon": "fas-gavel", "fields": ["name", "operator", "address", "building_area"], "moreFields": ["email", "fax", "gnis/feature_id", "level", "phone", "polling_station", "smoking", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "courthouse"}, "name": "Courthouse"}, + "amenity/crematorium": {"icon": "maki-cemetery", "fields": ["name", "website", "phone", "opening_hours", "wheelchair"], "moreFields": ["address", "email", "fax", "gnis/feature_id", "level", "phone", "website", "wheelchair"], "geometry": ["area", "point"], "tags": {"amenity": "crematorium"}, "terms": ["cemetery", "funeral"], "name": "Crematorium"}, + "amenity/dentist": {"icon": "maki-dentist", "fields": ["name", "operator", "healthcare/speciality", "address", "building_area", "opening_hours"], "moreFields": ["email", "fax", "gnis/feature_id", "level", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["tooth", "teeth"], "tags": {"amenity": "dentist"}, "addTags": {"amenity": "dentist", "healthcare": "dentist"}, "reference": {"key": "amenity", "value": "dentist"}, "name": "Dentist"}, + "amenity/dive_centre": {"icon": "temaki-scuba_diving", "fields": ["name", "operator", "address", "building_area", "opening_hours", "scuba_diving"], "moreFields": ["email", "fax", "gnis/feature_id", "level", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["diving", "scuba"], "tags": {"amenity": "dive_centre"}, "name": "Dive Center"}, + "amenity/doctors": {"icon": "maki-doctor", "fields": ["name", "operator", "healthcare/speciality", "address", "building_area", "opening_hours"], "moreFields": ["email", "fax", "gnis/feature_id", "level", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["medic*", "physician"], "tags": {"amenity": "doctors"}, "addTags": {"amenity": "doctors", "healthcare": "doctor"}, "reference": {"key": "amenity", "value": "doctors"}, "name": "Doctor"}, + "amenity/dojo": {"icon": "maki-pitch", "fields": ["name", "sport", "address", "building_area", "opening_hours"], "moreFields": ["email", "fax", "gnis/feature_id", "level", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["martial arts", "dojang"], "tags": {"amenity": "dojo"}, "name": "Dojo / Martial Arts Academy"}, "amenity/dressing_room": {"icon": "maki-clothing-store", "fields": ["operator", "access_simple", "gender", "wheelchair", "building_area"], "moreFields": ["charge_fee", "fee", "level", "opening_hours", "payment_multi_fee", "ref"], "geometry": ["point", "area"], "terms": ["changeroom", "dressing room", "fitting room", "locker room"], "tags": {"amenity": "dressing_room"}, "name": "Changing Room"}, "amenity/drinking_water": {"icon": "maki-drinking-water", "fields": ["operator", "access_simple", "fee", "payment_multi_fee", "charge_fee", "wheelchair"], "moreFields": ["covered", "indoor", "level", "lit"], "geometry": ["point"], "tags": {"amenity": "drinking_water"}, "terms": ["potable water source", "water fountain", "drinking fountain", "bubbler", "water tap"], "name": "Drinking Water"}, - "amenity/driving_school": {"icon": "maki-car", "fields": ["name", "operator", "operator/type", "address", "building_area", "opening_hours"], "moreFields": ["email", "fax", "level", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "driving_school"}, "name": "Driving School"}, - "amenity/events_venue": {"icon": "fas-users", "fields": ["name", "operator", "building_area", "address", "website", "internet_access", "internet_access/fee", "internet_access/ssid"], "moreFields": ["air_conditioning", "email", "fax", "level", "min_age", "phone", "smoking", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "events_venue"}, "terms": ["banquet hall", "baptism", "Bar Mitzvah", "Bat Mitzvah", "birthdays", "celebrations", "conferences", "confirmation", "meetings", "parties", "party", "quinceañera", "reunions", "weddings"], "name": "Events Venue"}, - "amenity/fast_food": {"icon": "maki-fast-food", "fields": ["name", "cuisine", "operator", "address", "building_area", "drive_through"], "moreFields": ["air_conditioning", "capacity", "delivery", "diet_multi", "email", "fax", "internet_access", "internet_access/fee", "internet_access/ssid", "level", "opening_hours", "outdoor_seating", "payment_multi", "phone", "smoking", "takeaway", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "fast_food"}, "terms": ["restaurant", "takeaway"], "name": "Fast Food"}, + "amenity/driving_school": {"icon": "maki-car", "fields": ["name", "operator", "operator/type", "address", "building_area", "opening_hours"], "moreFields": ["email", "fax", "gnis/feature_id", "level", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "driving_school"}, "name": "Driving School"}, + "amenity/events_venue": {"icon": "fas-users", "fields": ["name", "operator", "building_area", "address", "website", "internet_access", "internet_access/fee", "internet_access/ssid"], "moreFields": ["air_conditioning", "email", "fax", "gnis/feature_id", "level", "min_age", "phone", "smoking", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "events_venue"}, "terms": ["banquet hall", "baptism", "Bar Mitzvah", "Bat Mitzvah", "birthdays", "celebrations", "conferences", "confirmation", "meetings", "parties", "party", "quinceañera", "reunions", "weddings"], "name": "Events Venue"}, + "amenity/fast_food": {"icon": "maki-fast-food", "fields": ["name", "cuisine", "operator", "address", "building_area", "drive_through"], "moreFields": ["air_conditioning", "capacity", "delivery", "diet_multi", "email", "fax", "gnis/feature_id", "internet_access", "internet_access/fee", "internet_access/ssid", "level", "opening_hours", "outdoor_seating", "payment_multi", "phone", "smoking", "takeaway", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "fast_food"}, "terms": ["restaurant", "takeaway"], "name": "Fast Food"}, "amenity/fast_food/ice_cream": {"icon": "fas-ice-cream", "geometry": ["point", "area"], "tags": {"amenity": "fast_food", "cuisine": "ice_cream"}, "reference": {"key": "cuisine", "value": "ice_cream"}, "name": "Ice Cream Fast Food", "searchable": false}, "amenity/fast_food/burger": {"icon": "maki-fast-food", "geometry": ["point", "area"], "terms": ["breakfast", "dine", "dining", "dinner", "drive-in", "eat", "grill", "lunch", "table"], "tags": {"amenity": "fast_food", "cuisine": "burger"}, "reference": {"key": "cuisine", "value": "burger"}, "name": "Burger Fast Food"}, "amenity/fast_food/chicken": {"icon": "fas-drumstick-bite", "geometry": ["point", "area"], "terms": ["breakfast", "canteen", "dine", "dining", "dinner", "drive-in", "eat", "grill", "lunch", "table"], "tags": {"amenity": "fast_food", "cuisine": "chicken"}, "reference": {"key": "cuisine", "value": "chicken"}, "name": "Chicken Fast Food"}, @@ -124,29 +124,29 @@ "amenity/fast_food/mexican": {"icon": "fas-pepper-hot", "geometry": ["point", "area"], "terms": ["breakfast", "dine", "dining", "dinner", "drive-in", "eat", "grill", "lunch", "table", "tacos", "burritos", "enchiladas", "fajitas", "nachos", "tortillas", "salsa", "tamales", "quesadillas"], "tags": {"amenity": "fast_food", "cuisine": "mexican"}, "reference": {"key": "cuisine", "value": "mexican"}, "name": "Mexican Fast Food"}, "amenity/fast_food/pizza": {"icon": "maki-restaurant-pizza", "geometry": ["point", "area"], "terms": ["dine", "dining", "dinner", "drive-in", "eat", "lunch", "table", "deep dish", "thin crust", "slice"], "tags": {"amenity": "fast_food", "cuisine": "pizza"}, "reference": {"key": "cuisine", "value": "pizza"}, "name": "Pizza Fast Food"}, "amenity/fast_food/sandwich": {"icon": "temaki-sandwich", "geometry": ["point", "area"], "terms": ["breakfast", "cafe", "café", "dine", "dining", "dinner", "drive-in", "eat", "grill", "lunch", "table"], "tags": {"amenity": "fast_food", "cuisine": "sandwich"}, "reference": {"key": "cuisine", "value": "sandwich"}, "name": "Sandwich Fast Food"}, - "amenity/fire_station": {"icon": "maki-fire-station", "fields": ["name", "operator", "address", "building_area"], "moreFields": ["email", "fax", "phone", "polling_station", "smoking", "website", "wheelchair"], "geometry": ["point", "area"], "terms": [], "tags": {"amenity": "fire_station"}, "name": "Fire Station"}, - "amenity/food_court": {"icon": "maki-restaurant", "fields": ["name", "operator", "address", "building_area", "opening_hours"], "moreFields": ["capacity", "diet_multi", "email", "fax", "internet_access", "internet_access/fee", "internet_access/ssid", "level", "outdoor_seating", "phone", "smoking", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["fast food", "restaurant", "food"], "tags": {"amenity": "food_court"}, "name": "Food Court"}, + "amenity/fire_station": {"icon": "maki-fire-station", "fields": ["name", "operator", "address", "building_area"], "moreFields": ["email", "fax", "gnis/feature_id", "phone", "polling_station", "smoking", "website", "wheelchair"], "geometry": ["point", "area"], "terms": [], "tags": {"amenity": "fire_station"}, "name": "Fire Station"}, + "amenity/food_court": {"icon": "maki-restaurant", "fields": ["name", "operator", "address", "building_area", "opening_hours"], "moreFields": ["capacity", "diet_multi", "email", "fax", "gnis/feature_id", "internet_access", "internet_access/fee", "internet_access/ssid", "level", "outdoor_seating", "phone", "smoking", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["fast food", "restaurant", "food"], "tags": {"amenity": "food_court"}, "name": "Food Court"}, "amenity/fountain": {"icon": "temaki-fountain", "fields": ["name", "operator", "fountain", "drinking_water", "height", "lit"], "moreFields": ["covered", "indoor", "level", "manufacturer"], "geometry": ["point", "area"], "tags": {"amenity": "fountain"}, "terms": ["basin", "water"], "name": "Fountain"}, - "amenity/fuel": {"icon": "maki-fuel", "fields": ["name", "brand", "operator", "address", "fuel_multi", "self_service"], "moreFields": ["building", "email", "fax", "opening_hours", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["petrol", "fuel", "gasoline", "propane", "diesel", "lng", "cng", "biodiesel"], "tags": {"amenity": "fuel"}, "name": "Gas Station"}, - "amenity/grave_yard": {"icon": "maki-cemetery", "fields": ["religion", "address"], "moreFields": ["email", "fax", "phone", "website"], "geometry": ["point", "area"], "tags": {"amenity": "grave_yard"}, "name": "Graveyard"}, + "amenity/fuel": {"icon": "maki-fuel", "fields": ["name", "brand", "operator", "address", "fuel_multi", "self_service"], "moreFields": ["building", "email", "fax", "gnis/feature_id", "opening_hours", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["petrol", "fuel", "gasoline", "propane", "diesel", "lng", "cng", "biodiesel"], "tags": {"amenity": "fuel"}, "name": "Gas Station"}, + "amenity/grave_yard": {"icon": "maki-cemetery", "fields": ["religion", "address"], "moreFields": ["email", "fax", "gnis/feature_id", "phone", "website"], "geometry": ["point", "area"], "tags": {"amenity": "grave_yard"}, "name": "Graveyard"}, "amenity/grit_bin": {"icon": "fas-box", "fields": ["operator", "access_simple", "material", "collection_times"], "moreFields": ["colour", "height", "lit"], "geometry": ["point", "vertex"], "tags": {"amenity": "grit_bin"}, "terms": ["salt", "sand"], "name": "Grit Bin"}, - "amenity/hospital": {"icon": "maki-hospital", "fields": ["name", "operator", "operator/type", "healthcare/speciality", "address", "emergency"], "moreFields": ["email", "fax", "internet_access", "internet_access/fee", "internet_access/ssid", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["clinic", "doctor", "emergency room", "health", "infirmary", "institution", "sanatorium", "sanitarium", "sick", "surgery", "ward"], "tags": {"amenity": "hospital"}, "addTags": {"amenity": "hospital", "healthcare": "hospital"}, "reference": {"key": "amenity", "value": "hospital"}, "name": "Hospital Grounds"}, + "amenity/hospital": {"icon": "maki-hospital", "fields": ["name", "operator", "operator/type", "healthcare/speciality", "address", "emergency"], "moreFields": ["email", "fax", "gnis/feature_id", "internet_access", "internet_access/fee", "internet_access/ssid", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["clinic", "doctor", "emergency room", "health", "infirmary", "institution", "sanatorium", "sanitarium", "sick", "surgery", "ward"], "tags": {"amenity": "hospital"}, "addTags": {"amenity": "hospital", "healthcare": "hospital"}, "reference": {"key": "amenity", "value": "hospital"}, "name": "Hospital Grounds"}, "amenity/hunting_stand": {"icon": "temaki-binoculars", "fields": ["access_simple", "lockable"], "geometry": ["point", "vertex", "area"], "terms": ["game", "gun", "lookout", "rifle", "shoot*", "wild", "watch"], "tags": {"amenity": "hunting_stand"}, "name": "Hunting Stand"}, - "amenity/ice_cream": {"icon": "fas-ice-cream", "fields": ["name", "address", "building_area", "opening_hours", "outdoor_seating"], "moreFields": ["delivery", "diet_multi", "drive_through", "email", "fax", "internet_access", "internet_access/fee", "internet_access/ssid", "level", "payment_multi", "phone", "takeaway", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["gelato", "sorbet", "sherbet", "frozen", "yogurt"], "tags": {"amenity": "ice_cream"}, "name": "Ice Cream Shop"}, - "amenity/internet_cafe": {"icon": "temaki-antenna", "fields": ["name", "operator", "operator/type", "address", "building_area", "internet_access", "internet_access/fee", "internet_access/ssid"], "moreFields": ["air_conditioning", "email", "fax", "level", "min_age", "opening_hours", "outdoor_seating", "payment_multi", "phone", "smoking", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["cybercafe", "taxiphone", "teleboutique", "coffee", "cafe", "net", "lanhouse"], "tags": {"amenity": "internet_cafe"}, "name": "Internet Cafe"}, - "amenity/karaoke": {"icon": "maki-karaoke", "fields": ["name", "operator", "address", "building_area", "opening_hours", "website"], "moreFields": ["air_conditioning", "email", "fax", "level", "min_age", "payment_multi", "phone", "smoking", "wheelchair"], "geometry": ["point", "area"], "terms": ["karaoke club", "karaoke room", "karaoke television", "KTV"], "tags": {"amenity": "karaoke_box"}, "name": "Karaoke Box"}, - "amenity/kindergarten": {"icon": "temaki-school", "fields": ["name", "operator", "address", "phone", "preschool"], "moreFields": ["email", "fax", "level", "max_age", "min_age", "opening_hours", "payment_multi", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["kindergarden", "pre-school"], "tags": {"amenity": "kindergarten"}, "name": "Preschool/Kindergarten Grounds"}, - "amenity/language_school": {"icon": "temaki-school", "fields": ["name", "operator", "operator/type", "address", "building_area", "opening_hours", "language_multi"], "moreFields": ["email", "fax", "internet_access", "internet_access/fee", "internet_access/ssid", "level", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["esl"], "tags": {"amenity": "language_school"}, "name": "Language School"}, + "amenity/ice_cream": {"icon": "fas-ice-cream", "fields": ["name", "address", "building_area", "opening_hours", "outdoor_seating"], "moreFields": ["delivery", "diet_multi", "drive_through", "email", "fax", "gnis/feature_id", "internet_access", "internet_access/fee", "internet_access/ssid", "level", "payment_multi", "phone", "takeaway", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["gelato", "sorbet", "sherbet", "frozen", "yogurt"], "tags": {"amenity": "ice_cream"}, "name": "Ice Cream Shop"}, + "amenity/internet_cafe": {"icon": "temaki-antenna", "fields": ["name", "operator", "operator/type", "address", "building_area", "internet_access", "internet_access/fee", "internet_access/ssid"], "moreFields": ["air_conditioning", "email", "fax", "gnis/feature_id", "level", "min_age", "opening_hours", "outdoor_seating", "payment_multi", "phone", "smoking", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["cybercafe", "taxiphone", "teleboutique", "coffee", "cafe", "net", "lanhouse"], "tags": {"amenity": "internet_cafe"}, "name": "Internet Cafe"}, + "amenity/karaoke": {"icon": "maki-karaoke", "fields": ["name", "operator", "address", "building_area", "opening_hours", "website"], "moreFields": ["air_conditioning", "email", "fax", "gnis/feature_id", "level", "min_age", "payment_multi", "phone", "smoking", "wheelchair"], "geometry": ["point", "area"], "terms": ["karaoke club", "karaoke room", "karaoke television", "KTV"], "tags": {"amenity": "karaoke_box"}, "name": "Karaoke Box"}, + "amenity/kindergarten": {"icon": "temaki-school", "fields": ["name", "operator", "address", "phone", "preschool"], "moreFields": ["email", "fax", "gnis/feature_id", "level", "max_age", "min_age", "opening_hours", "payment_multi", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["kindergarden", "pre-school"], "tags": {"amenity": "kindergarten"}, "name": "Preschool/Kindergarten Grounds"}, + "amenity/language_school": {"icon": "temaki-school", "fields": ["name", "operator", "operator/type", "address", "building_area", "opening_hours", "language_multi"], "moreFields": ["email", "fax", "gnis/feature_id", "internet_access", "internet_access/fee", "internet_access/ssid", "level", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["esl"], "tags": {"amenity": "language_school"}, "name": "Language School"}, "amenity/letter_box": {"icon": "temaki-letter_box", "fields": ["post", "access_simple", "collection_times", "height"], "moreFields": ["covered", "indoor", "level", "lit", "lockable", "manufacturer", "material", "operator", "wheelchair"], "geometry": ["point", "vertex"], "tags": {"amenity": "letter_box"}, "terms": ["curbside delivery box", "home delivery box", "direct-to-door delivery box", "letter hole", "letter plate", "letter slot", "letterbox", "letterhole", "letterplate", "letterslot", "mail box", "mail hole", "mail slot", "mailbox", "mailhole", "mailslot", "through-door delivery box"], "name": "Letter Box"}, - "amenity/library": {"icon": "maki-library", "fields": ["name", "operator", "operator/type", "building_area", "address", "ref/isil", "internet_access", "internet_access/fee", "internet_access/ssid"], "moreFields": ["access_simple", "air_conditioning", "email", "fax", "level", "opening_hours", "payment_multi", "phone", "polling_station", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["book"], "tags": {"amenity": "library"}, "name": "Library"}, + "amenity/library": {"icon": "maki-library", "fields": ["name", "operator", "operator/type", "building_area", "address", "ref/isil", "internet_access", "internet_access/fee", "internet_access/ssid"], "moreFields": ["access_simple", "air_conditioning", "email", "fax", "gnis/feature_id", "level", "opening_hours", "payment_multi", "phone", "polling_station", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["book"], "tags": {"amenity": "library"}, "name": "Library"}, "amenity/loading_dock": {"icon": "fas-truck-loading", "fields": ["ref", "operator", "access_simple", "door", "width", "height"], "moreFields": ["address", "colour", "level", "lit", "wheelchair"], "geometry": ["vertex"], "terms": ["door", "loading bay", "shipping", "unloading", "warehouse"], "tags": {"amenity": "loading_dock"}, "name": "Loading Dock"}, - "amenity/love_hotel": {"icon": "maki-heart", "fields": ["name", "operator", "address", "building_area", "rooms", "internet_access", "internet_access/fee", "internet_access/ssid"], "moreFields": ["email", "fax", "min_age", "payment_multi", "phone", "smoking", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "love_hotel"}, "name": "Love Hotel"}, - "amenity/marketplace": {"icon": "maki-shop", "fields": ["name", "operator", "address", "building", "opening_hours"], "moreFields": ["email", "fax", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "marketplace"}, "name": "Marketplace"}, - "amenity/monastery": {"icon": "maki-place-of-worship", "fields": ["name", "religion", "denomination", "address", "building_area"], "moreFields": ["email", "fax", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["abbey", "basilica", "bethel", "cathedral", "chancel", "chantry", "chapel", "church", "fold", "house of God", "house of prayer", "house of worship", "minster", "mission", "monastery", "mosque", "oratory", "parish", "sacellum", "sanctuary", "shrine", "synagogue", "tabernacle", "temple"], "tags": {"amenity": "monastery"}, "name": "Monastery Grounds"}, + "amenity/love_hotel": {"icon": "maki-heart", "fields": ["name", "operator", "address", "building_area", "rooms", "internet_access", "internet_access/fee", "internet_access/ssid"], "moreFields": ["email", "fax", "gnis/feature_id", "min_age", "payment_multi", "phone", "smoking", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "love_hotel"}, "name": "Love Hotel"}, + "amenity/marketplace": {"icon": "maki-shop", "fields": ["name", "operator", "address", "building", "opening_hours"], "moreFields": ["email", "fax", "gnis/feature_id", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "marketplace"}, "name": "Marketplace"}, + "amenity/monastery": {"icon": "maki-place-of-worship", "fields": ["name", "religion", "denomination", "address", "building_area"], "moreFields": ["email", "fax", "gnis/feature_id", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["abbey", "basilica", "bethel", "cathedral", "chancel", "chantry", "chapel", "church", "fold", "house of God", "house of prayer", "house of worship", "minster", "mission", "monastery", "mosque", "oratory", "parish", "sacellum", "sanctuary", "shrine", "synagogue", "tabernacle", "temple"], "tags": {"amenity": "monastery"}, "name": "Monastery Grounds"}, "amenity/money_transfer": {"icon": "temaki-money_hand", "fields": ["name", "brand", "address", "building_area", "payment_multi", "currency_multi"], "moreFields": ["email", "fax", "level", "opening_hours", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["money order", "check", "bill", "currency", "finance", "wire transfer", "cable", "person to person", "cash to cash", "exchange"], "tags": {"amenity": "money_transfer"}, "name": "Money Transfer Station"}, "amenity/motorcycle_parking": {"icon": "fas-motorcycle", "fields": ["capacity", "operator", "covered", "access_simple"], "geometry": ["point", "vertex", "area"], "tags": {"amenity": "motorcycle_parking"}, "name": "Motorcycle Parking"}, - "amenity/music_school": {"icon": "fas-music", "fields": ["name", "operator", "address", "building_area", "opening_hours"], "moreFields": ["email", "fax", "level", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["school of music"], "tags": {"amenity": "music_school"}, "name": "Music School"}, - "amenity/nightclub": {"icon": "maki-bar", "fields": ["name", "operator", "address", "building_area", "opening_hours", "min_age", "smoking"], "moreFields": ["air_conditioning", "email", "fax", "level", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "nightclub"}, "terms": ["disco*", "night club", "dancing", "dance club"], "name": "Nightclub"}, + "amenity/music_school": {"icon": "fas-music", "fields": ["name", "operator", "address", "building_area", "opening_hours"], "moreFields": ["email", "fax", "gnis/feature_id", "level", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["school of music"], "tags": {"amenity": "music_school"}, "name": "Music School"}, + "amenity/nightclub": {"icon": "maki-bar", "fields": ["name", "operator", "address", "building_area", "opening_hours", "min_age", "smoking"], "moreFields": ["air_conditioning", "email", "fax", "gnis/feature_id", "level", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "nightclub"}, "terms": ["disco*", "night club", "dancing", "dance club"], "name": "Nightclub"}, "amenity/nightclub/lgbtq": {"icon": "maki-bar", "geometry": ["point", "area"], "tags": {"amenity": "nightclub", "lgbtq": "primary"}, "terms": ["gay nightclub", "lesbian nightclub", "lgbtq nightclub", "lgbt nightclub", "lgb nightclub"], "name": "LGBTQ+ Nightclub"}, "amenity/parking_entrance": {"icon": "maki-entrance-alt1", "fields": ["ref", "access_simple", "address", "level"], "geometry": ["vertex"], "tags": {"amenity": "parking_entrance"}, "name": "Parking Garage Entrance/Exit"}, "amenity/parking_space": {"fields": ["capacity"], "geometry": ["point", "vertex", "area"], "terms": [], "tags": {"amenity": "parking_space"}, "matchScore": 0.95, "name": "Parking Space"}, @@ -156,9 +156,9 @@ "amenity/parking/underground": {"icon": "temaki-car_structure", "fields": ["{amenity/parking}", "layer"], "geometry": ["point", "vertex", "area"], "tags": {"amenity": "parking", "parking": "underground"}, "addTags": {"amenity": "parking", "parking": "underground", "layer": "-1"}, "reference": {"key": "parking", "value": "underground"}, "terms": ["automobile parking", "car lot", "car parking", "rv parking", "subsurface parking", "truck parking", "vehicle parking"], "matchScore": 1.05, "name": "Underground Parking"}, "amenity/payment_centre": {"icon": "temaki-money_hand", "fields": ["name", "brand", "address", "building_area", "opening_hours", "payment_multi"], "moreFields": ["currency_multi", "email", "fax", "level", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["check", "tax pay", "bill pay", "currency", "finance", "cash", "money"], "tags": {"amenity": "payment_centre"}, "name": "Payment Center"}, "amenity/payment_terminal": {"icon": "far-credit-card", "fields": ["name", "brand", "address", "opening_hours", "payment_multi"], "moreFields": ["covered", "currency_multi", "indoor", "level", "wheelchair"], "geometry": ["point"], "terms": ["interactive kiosk", "ekiosk", "atm", "bill pay", "tax pay", "phone pay", "finance", "cash", "money transfer", "card"], "tags": {"amenity": "payment_terminal"}, "name": "Payment Terminal"}, - "amenity/pharmacy": {"icon": "maki-pharmacy", "fields": ["name", "operator", "address", "building_area", "drive_through", "dispensing"], "moreFields": ["email", "fax", "level", "opening_hours", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "pharmacy"}, "addTags": {"amenity": "pharmacy", "healthcare": "pharmacy"}, "reference": {"key": "amenity", "value": "pharmacy"}, "terms": ["apothecary", "drug store", "drugstore", "med*", "prescription"], "name": "Pharmacy Counter"}, + "amenity/pharmacy": {"icon": "maki-pharmacy", "fields": ["name", "operator", "address", "building_area", "drive_through", "dispensing"], "moreFields": ["email", "fax", "gnis/feature_id", "level", "opening_hours", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "pharmacy"}, "addTags": {"amenity": "pharmacy", "healthcare": "pharmacy"}, "reference": {"key": "amenity", "value": "pharmacy"}, "terms": ["apothecary", "drug store", "drugstore", "med*", "prescription"], "name": "Pharmacy Counter"}, "amenity/photo_booth": {"icon": "fas-person-booth", "fields": ["name", "operator", "payment_multi", "wheelchair"], "moreFields": ["brand", "indoor", "level"], "geometry": ["point", "area"], "terms": ["photobooth", "photo", "booth", "kiosk", "camera"], "tags": {"amenity": "photo_booth"}, "name": "Photo Booth"}, - "amenity/place_of_worship": {"icon": "maki-place-of-worship", "fields": ["name", "religion", "denomination", "address", "building_area", "service_times"], "moreFields": ["air_conditioning", "email", "fax", "internet_access", "internet_access/ssid", "level", "opening_hours", "phone", "polling_station", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["abbey", "basilica", "bethel", "cathedral", "chancel", "chantry", "chapel", "church", "fold", "house of God", "house of prayer", "house of worship", "minster", "mission", "mosque", "oratory", "parish", "sacellum", "sanctuary", "shrine", "synagogue", "tabernacle", "temple"], "tags": {"amenity": "place_of_worship"}, "name": "Place of Worship"}, + "amenity/place_of_worship": {"icon": "maki-place-of-worship", "fields": ["name", "religion", "denomination", "address", "building_area", "service_times"], "moreFields": ["air_conditioning", "email", "fax", "gnis/feature_id", "internet_access", "internet_access/ssid", "level", "opening_hours", "phone", "polling_station", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["abbey", "basilica", "bethel", "cathedral", "chancel", "chantry", "chapel", "church", "fold", "house of God", "house of prayer", "house of worship", "minster", "mission", "mosque", "oratory", "parish", "sacellum", "sanctuary", "shrine", "synagogue", "tabernacle", "temple"], "tags": {"amenity": "place_of_worship"}, "name": "Place of Worship"}, "amenity/place_of_worship/buddhist": {"icon": "maki-religious-buddhist", "fields": ["name", "religion", "denomination", "{amenity/place_of_worship}"], "geometry": ["point", "area"], "terms": ["stupa", "vihara", "monastery", "temple", "pagoda", "zendo", "dojo"], "tags": {"amenity": "place_of_worship", "religion": "buddhist"}, "reference": {"key": "amenity", "value": "place_of_worship"}, "name": "Buddhist Temple"}, "amenity/place_of_worship/christian": {"icon": "maki-religious-christian", "fields": ["name", "religion", "denomination", "{amenity/place_of_worship}"], "geometry": ["point", "area"], "terms": ["christian", "abbey", "basilica", "bethel", "cathedral", "chancel", "chantry", "chapel", "fold", "house of God", "house of prayer", "house of worship", "minster", "mission", "oratory", "parish", "sacellum", "sanctuary", "shrine", "tabernacle", "temple"], "tags": {"amenity": "place_of_worship", "religion": "christian"}, "reference": {"key": "amenity", "value": "place_of_worship"}, "name": "Christian Church"}, "amenity/place_of_worship/christian/jehovahs_witness": {"icon": "maki-place-of-worship", "geometry": ["point", "area"], "terms": ["christian", "church", "house of God", "house of prayer", "house of worship"], "tags": {"amenity": "place_of_worship", "religion": "christian", "denomination": "jehovahs_witness"}, "reference": {"key": "denomination", "value": "jehovahs_witness"}, "name": "Kingdom Hall of Jehovah's Witnesses"}, @@ -170,26 +170,26 @@ "amenity/place_of_worship/shinto": {"icon": "temaki-shinto", "fields": ["name", "religion", "denomination", "{amenity/place_of_worship}"], "geometry": ["point", "area"], "terms": ["kami", "torii"], "tags": {"amenity": "place_of_worship", "religion": "shinto"}, "reference": {"key": "amenity", "value": "place_of_worship"}, "name": "Shinto Shrine"}, "amenity/place_of_worship/sikh": {"icon": "temaki-sikhism", "fields": ["name", "religion", "denomination", "{amenity/place_of_worship}"], "geometry": ["point", "area"], "terms": ["gurudwara", "temple"], "tags": {"amenity": "place_of_worship", "religion": "sikh"}, "reference": {"key": "amenity", "value": "place_of_worship"}, "name": "Sikh Temple"}, "amenity/place_of_worship/taoist": {"icon": "temaki-taoism", "fields": ["name", "religion", "denomination", "{amenity/place_of_worship}"], "geometry": ["point", "area"], "terms": ["daoist", "monastery", "temple"], "tags": {"amenity": "place_of_worship", "religion": "taoist"}, "reference": {"key": "amenity", "value": "place_of_worship"}, "name": "Taoist Temple"}, - "amenity/planetarium": {"icon": "maki-globe", "fields": ["name", "operator", "address", "building_area", "opening_hours"], "moreFields": ["air_conditioning", "charge_fee", "email", "fax", "fee", "payment_multi_fee", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["museum", "astronomy", "observatory"], "tags": {"amenity": "planetarium"}, "name": "Planetarium"}, - "amenity/police": {"icon": "maki-police", "fields": ["name", "operator", "address", "building_area", "opening_hours"], "moreFields": ["email", "fax", "level", "phone", "polling_station", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["badge", "constable", "constabulary", "cop", "detective", "fed", "law", "enforcement", "officer", "patrol"], "tags": {"amenity": "police"}, "name": "Police"}, - "amenity/polling_station": {"icon": "fas-vote-yea", "fields": ["name", "ref", "operator", "address", "opening_hours", "building_area"], "moreFields": ["air_conditioning", "email", "fax", "internet_access", "internet_access/fee", "internet_access/ssid", "level", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["ballot box", "ballot drop", "democracy", "elections", "polling place", "vote", "voting booth", "voting machine"], "tags": {"amenity": "polling_station"}, "addTags": {"amenity": "polling_station", "polling_station": "yes"}, "name": "Permanent Polling Place"}, - "amenity/post_box": {"icon": "temaki-post_box", "fields": ["operator", "collection_times", "drive_through", "ref"], "moreFields": ["access_simple", "brand", "covered", "height", "indoor", "level", "manufacturer", "wheelchair"], "geometry": ["point", "vertex"], "tags": {"amenity": "post_box"}, "terms": ["drop box", "dropbox", "letter drop", "mail box", "mail collection box", "mail drop", "mail dropoff", "mailbox", "package drop", "pillar box", "pillarbox", "post box", "postal box", "postbox"], "name": "Mail Drop Box"}, - "amenity/post_depot": {"icon": "fas-mail-bulk", "fields": ["name", "operator", "address", "building_area", "phone"], "moreFields": ["email", "fax", "opening_hours", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["mail processing and distribution center", "post depot"], "tags": {"amenity": "post_depot"}, "name": "Post Sorting Office"}, - "amenity/post_office": {"icon": "maki-post", "fields": ["name", "operator", "address", "building_area", "opening_hours"], "moreFields": ["brand", "email", "fax", "internet_access", "internet_access/fee", "internet_access/ssid", "level", "payment_multi", "phone", "polling_station", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["letter", "mail"], "tags": {"amenity": "post_office"}, "name": "Post Office"}, - "amenity/prep_school": {"icon": "temaki-school", "fields": ["name", "operator", "address", "building_area", "opening_hours"], "moreFields": ["email", "fax", "level", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["academic", "ACT", "SAT", "homework", "math", "reading", "test prep", "tutoring", "writing"], "tags": {"amenity": "prep_school"}, "name": "Test Prep / Tutoring School"}, - "amenity/prison": {"icon": "maki-prison", "fields": ["name", "operator", "operator/type", "address"], "moreFields": ["email", "fax", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["cell", "jail", "correction"], "tags": {"amenity": "prison"}, "name": "Prison Grounds"}, - "amenity/pub": {"icon": "maki-beer", "fields": ["name", "address", "building_area", "opening_hours", "smoking", "brewery"], "moreFields": ["air_conditioning", "diet_multi", "email", "fax", "internet_access", "internet_access/fee", "internet_access/ssid", "level", "microbrewery", "min_age", "outdoor_seating", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "pub"}, "terms": ["alcohol", "drink", "dive", "beer", "bier", "booze"], "name": "Pub"}, + "amenity/planetarium": {"icon": "maki-globe", "fields": ["name", "operator", "address", "building_area", "opening_hours"], "moreFields": ["air_conditioning", "charge_fee", "email", "fax", "fee", "gnis/feature_id", "payment_multi_fee", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["museum", "astronomy", "observatory"], "tags": {"amenity": "planetarium"}, "name": "Planetarium"}, + "amenity/police": {"icon": "maki-police", "fields": ["name", "operator", "address", "building_area", "opening_hours"], "moreFields": ["email", "fax", "gnis/feature_id", "level", "phone", "polling_station", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["badge", "constable", "constabulary", "cop", "detective", "fed", "law", "enforcement", "officer", "patrol"], "tags": {"amenity": "police"}, "name": "Police"}, + "amenity/polling_station": {"icon": "fas-vote-yea", "fields": ["name", "ref", "operator", "address", "opening_hours", "building_area"], "moreFields": ["air_conditioning", "email", "fax", "gnis/feature_id", "internet_access", "internet_access/fee", "internet_access/ssid", "level", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["ballot box", "ballot drop", "democracy", "elections", "polling place", "vote", "voting booth", "voting machine"], "tags": {"amenity": "polling_station"}, "addTags": {"amenity": "polling_station", "polling_station": "yes"}, "name": "Permanent Polling Place"}, + "amenity/post_box": {"icon": "temaki-post_box", "fields": ["operator", "collection_times", "drive_through", "ref"], "moreFields": ["access_simple", "brand", "covered", "gnis/feature_id", "height", "indoor", "level", "manufacturer", "wheelchair"], "geometry": ["point", "vertex"], "tags": {"amenity": "post_box"}, "terms": ["drop box", "dropbox", "letter drop", "mail box", "mail collection box", "mail drop", "mail dropoff", "mailbox", "package drop", "pillar box", "pillarbox", "post box", "postal box", "postbox"], "name": "Mail Drop Box"}, + "amenity/post_depot": {"icon": "fas-mail-bulk", "fields": ["name", "operator", "address", "building_area", "phone"], "moreFields": ["email", "fax", "gnis/feature_id", "opening_hours", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["mail processing and distribution center", "post depot"], "tags": {"amenity": "post_depot"}, "name": "Post Sorting Office"}, + "amenity/post_office": {"icon": "maki-post", "fields": ["name", "operator", "address", "building_area", "opening_hours"], "moreFields": ["brand", "email", "fax", "gnis/feature_id", "internet_access", "internet_access/fee", "internet_access/ssid", "level", "payment_multi", "phone", "polling_station", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["letter", "mail"], "tags": {"amenity": "post_office"}, "name": "Post Office"}, + "amenity/prep_school": {"icon": "temaki-school", "fields": ["name", "operator", "address", "building_area", "opening_hours"], "moreFields": ["email", "fax", "gnis/feature_id", "level", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["academic", "ACT", "SAT", "homework", "math", "reading", "test prep", "tutoring", "writing"], "tags": {"amenity": "prep_school"}, "name": "Test Prep / Tutoring School"}, + "amenity/prison": {"icon": "maki-prison", "fields": ["name", "operator", "operator/type", "address"], "moreFields": ["email", "fax", "gnis/feature_id", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["cell", "jail", "correction"], "tags": {"amenity": "prison"}, "name": "Prison Grounds"}, + "amenity/pub": {"icon": "maki-beer", "fields": ["name", "address", "building_area", "opening_hours", "smoking", "brewery"], "moreFields": ["air_conditioning", "diet_multi", "email", "fax", "gnis/feature_id", "internet_access", "internet_access/fee", "internet_access/ssid", "level", "microbrewery", "min_age", "outdoor_seating", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "pub"}, "terms": ["alcohol", "drink", "dive", "beer", "bier", "booze"], "name": "Pub"}, "amenity/pub/lgbtq": {"icon": "maki-beer", "geometry": ["point", "area"], "tags": {"amenity": "pub", "lgbtq": "primary"}, "terms": ["gay pub", "lesbian pub", "lgbtq pub", "lgbt pub", "lgb pub"], "name": "LGBTQ+ Pub"}, "amenity/pub/microbrewery": {"icon": "maki-beer", "geometry": ["point", "area"], "tags": {"amenity": "pub", "microbrewery": "yes"}, "reference": {"key": "microbrewery"}, "terms": ["alcohol", "drink", "dive", "beer", "bier", "booze", "craft brewery", "microbrewery", "small batch brewery"], "name": "Brewpub"}, - "amenity/public_bath": {"icon": "maki-water", "fields": ["name", "bath/type", "bath/open_air", "bath/sand_bath", "address", "building_area", "fee", "charge_fee"], "moreFields": ["email", "fax", "internet_access", "internet_access/fee", "internet_access/ssid", "opening_hours", "payment_multi_fee", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "public_bath"}, "terms": ["onsen", "foot bath", "hot springs"], "name": "Public Bath"}, + "amenity/public_bath": {"icon": "maki-water", "fields": ["name", "bath/type", "bath/open_air", "bath/sand_bath", "address", "building_area", "fee", "charge_fee"], "moreFields": ["email", "fax", "gnis/feature_id", "internet_access", "internet_access/fee", "internet_access/ssid", "opening_hours", "payment_multi_fee", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"amenity": "public_bath"}, "terms": ["onsen", "foot bath", "hot springs"], "name": "Public Bath"}, "amenity/public_bookcase": {"icon": "maki-library", "fields": ["name", "public_bookcase/type", "operator", "opening_hours", "capacity", "website", "lit"], "moreFields": ["access_simple", "address", "brand", "email", "level", "location", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["library", "bookcrossing"], "tags": {"amenity": "public_bookcase"}, "name": "Public Bookcase"}, - "amenity/ranger_station": {"icon": "maki-ranger-station", "fields": ["name", "operator", "address", "building_area", "opening_hours"], "moreFields": ["email", "fax", "internet_access", "internet_access/fee", "internet_access/ssid", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["visitor center", "visitor centre", "permit center", "permit centre", "backcountry office", "warden office", "warden center"], "tags": {"amenity": "ranger_station"}, "name": "Ranger Station"}, + "amenity/ranger_station": {"icon": "maki-ranger-station", "fields": ["name", "operator", "address", "building_area", "opening_hours"], "moreFields": ["email", "fax", "gnis/feature_id", "internet_access", "internet_access/fee", "internet_access/ssid", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["visitor center", "visitor centre", "permit center", "permit centre", "backcountry office", "warden office", "warden center"], "tags": {"amenity": "ranger_station"}, "name": "Ranger Station"}, "amenity/recycling_centre": {"icon": "maki-recycling", "fields": ["name", "operator", "operator/type", "address", "building", "opening_hours", "recycling_accepts"], "moreFields": ["charge_fee", "email", "fax", "fee", "payment_multi_fee", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["bottle", "can", "dump", "glass", "garbage", "rubbish", "scrap", "trash"], "tags": {"amenity": "recycling", "recycling_type": "centre"}, "reference": {"key": "recycling_type", "value": "*"}, "name": "Recycling Center"}, "amenity/recycling_container": {"icon": "maki-recycling", "fields": ["operator", "recycling_accepts", "collection_times"], "moreFields": ["colour", "covered", "indoor", "level", "manufacturer", "material", "opening_hours"], "geometry": ["point", "area"], "terms": ["bin", "can", "bottle", "glass", "garbage", "rubbish", "scrap", "trash"], "tags": {"amenity": "recycling", "recycling_type": "container"}, "reference": {"key": "amenity", "value": "recycling"}, "name": "Recycling Container"}, "amenity/recycling/container/electrical_items": {"icon": "maki-recycling", "fields": ["{amenity/recycling_container}"], "moreFields": ["{amenity/recycling_container}"], "geometry": ["point", "area"], "terms": ["computers", "electronic waste", "electronics recycling", "ewaste bin", "phones", "tablets"], "tags": {"amenity": "recycling", "recycling_type": "container", "recycling:electrical_items": "yes"}, "reference": {"key": "recycling:electrical_items", "value": "yes"}, "name": "E-Waste Container"}, "amenity/recycling/container/green_waste": {"icon": "maki-recycling", "fields": ["{amenity/recycling_container}"], "moreFields": ["{amenity/recycling_container}"], "geometry": ["point", "area"], "terms": ["biodegradable", "biological", "compost", "decomposable", "garbage bin", "garden waste", "organic", "rubbish", "food scrap"], "tags": {"amenity": "recycling", "recycling_type": "container", "recycling:green_waste": "yes"}, "reference": {"key": "recycling:green_waste", "value": "yes"}, "name": "Green Waste Container"}, - "amenity/research_institute": {"icon": "fas-flask", "fields": ["name", "operator", "operator/type", "address", "website", "internet_access", "internet_access/fee"], "moreFields": ["email", "fax", "internet_access/ssid", "phone", "wheelchair"], "geometry": ["point", "area"], "terms": ["applied research", "experimentation", "r&d", "r & d", "r and d", "research and development", "research institution", "research laboratory", "research labs"], "tags": {"amenity": "research_institute"}, "name": "Research Institute Grounds"}, - "amenity/restaurant": {"icon": "maki-restaurant", "fields": ["name", "cuisine", "address", "building_area", "opening_hours", "phone"], "moreFields": ["air_conditioning", "bar", "brewery", "capacity", "delivery", "diet_multi", "email", "fax", "internet_access", "internet_access/fee", "internet_access/ssid", "level", "microbrewery", "min_age", "not/name", "outdoor_seating", "reservation", "smoking", "stars", "takeaway", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["bar", "breakfast", "cafe", "café", "canteen", "coffee", "dine", "dining", "dinner", "drive-in", "eat", "grill", "lunch", "table"], "tags": {"amenity": "restaurant"}, "name": "Restaurant"}, + "amenity/research_institute": {"icon": "fas-flask", "fields": ["name", "operator", "operator/type", "address", "website", "internet_access", "internet_access/fee"], "moreFields": ["email", "fax", "gnis/feature_id", "internet_access/ssid", "phone", "wheelchair"], "geometry": ["point", "area"], "terms": ["applied research", "experimentation", "r&d", "r & d", "r and d", "research and development", "research institution", "research laboratory", "research labs"], "tags": {"amenity": "research_institute"}, "name": "Research Institute Grounds"}, + "amenity/restaurant": {"icon": "maki-restaurant", "fields": ["name", "cuisine", "address", "building_area", "opening_hours", "phone"], "moreFields": ["air_conditioning", "bar", "brewery", "capacity", "delivery", "diet_multi", "email", "fax", "gnis/feature_id", "internet_access", "internet_access/fee", "internet_access/ssid", "level", "microbrewery", "min_age", "not/name", "outdoor_seating", "reservation", "smoking", "stars", "takeaway", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["bar", "breakfast", "cafe", "café", "canteen", "coffee", "dine", "dining", "dinner", "drive-in", "eat", "grill", "lunch", "table"], "tags": {"amenity": "restaurant"}, "name": "Restaurant"}, "amenity/restaurant/american": {"icon": "maki-restaurant", "geometry": ["point", "area"], "terms": ["bar", "breakfast", "cafe", "café", "canteen", "coffee", "dine", "dining", "dinner", "drive-in", "eat", "grill", "lunch", "table"], "tags": {"amenity": "restaurant", "cuisine": "american"}, "reference": {"key": "cuisine", "value": "american"}, "name": "American Restaurant"}, "amenity/restaurant/asian": {"icon": "maki-restaurant-noodle", "geometry": ["point", "area"], "terms": ["bar", "breakfast", "cafe", "café", "canteen", "dine", "dining", "dinner", "drive-in", "eat", "grill", "lunch", "table"], "tags": {"amenity": "restaurant", "cuisine": "asian"}, "reference": {"key": "cuisine", "value": "asian"}, "name": "Asian Restaurant"}, "amenity/restaurant/chinese": {"icon": "maki-restaurant-noodle", "geometry": ["point", "area"], "terms": ["bar", "breakfast", "cafe", "café", "canteen", "dine", "dining", "dinner", "drive-in", "eat", "grill", "lunch", "table"], "tags": {"amenity": "restaurant", "cuisine": "chinese"}, "reference": {"key": "cuisine", "value": "chinese"}, "name": "Chinese Restaurant"}, @@ -209,38 +209,38 @@ "amenity/restaurant/turkish": {"icon": "maki-restaurant", "geometry": ["point", "area"], "terms": ["bar", "breakfast", "cafe", "café", "canteen", "dine", "dining", "dinner", "drive-in", "eat", "grill", "lunch", "table"], "tags": {"amenity": "restaurant", "cuisine": "turkish"}, "reference": {"key": "cuisine", "value": "turkish"}, "name": "Turkish Restaurant"}, "amenity/restaurant/vietnamese": {"icon": "maki-restaurant-noodle", "geometry": ["point", "area"], "terms": ["bar", "breakfast", "cafe", "café", "canteen", "dine", "dining", "dinner", "drive-in", "eat", "grill", "lunch", "table"], "tags": {"amenity": "restaurant", "cuisine": "vietnamese"}, "reference": {"key": "cuisine", "value": "vietnamese"}, "name": "Vietnamese Restaurant"}, "amenity/sanitary_dump_station": {"icon": "temaki-storage_tank", "fields": ["operator", "access_simple", "fee", "payment_multi_fee", "charge_fee", "water_point"], "moreFields": ["opening_hours"], "geometry": ["point", "vertex", "area"], "terms": ["Motor Home", "Camper", "Sanitary", "Dump Station", "Elsan", "CDP", "CTDP", "Chemical Toilet"], "tags": {"amenity": "sanitary_dump_station"}, "name": "RV Toilet Disposal"}, - "amenity/school": {"icon": "temaki-school", "fields": ["name", "operator", "operator/type", "address", "religion", "denomination", "website"], "moreFields": ["charge_fee", "email", "fax", "fee", "internet_access", "internet_access/ssid", "level", "phone", "polling_station", "wheelchair"], "geometry": ["point", "area"], "terms": ["academy", "elementary school", "middle school", "high school"], "tags": {"amenity": "school"}, "name": "School Grounds"}, - "amenity/shelter": {"icon": "maki-shelter", "fields": ["name", "shelter_type", "building_area", "bench", "bin"], "moreFields": ["lit", "lockable", "wheelchair"], "geometry": ["point", "vertex", "area"], "terms": ["lean-to", "gazebo", "picnic"], "tags": {"amenity": "shelter"}, "name": "Shelter"}, + "amenity/school": {"icon": "temaki-school", "fields": ["name", "operator", "operator/type", "address", "religion", "denomination", "website"], "moreFields": ["charge_fee", "email", "fax", "fee", "gnis/feature_id", "internet_access", "internet_access/ssid", "level", "phone", "polling_station", "wheelchair"], "geometry": ["point", "area"], "terms": ["academy", "elementary school", "middle school", "high school"], "tags": {"amenity": "school"}, "name": "School Grounds"}, + "amenity/shelter": {"icon": "maki-shelter", "fields": ["name", "shelter_type", "building_area", "bench", "bin"], "moreFields": ["gnis/feature_id", "lit", "lockable", "wheelchair"], "geometry": ["point", "vertex", "area"], "terms": ["lean-to", "gazebo", "picnic"], "tags": {"amenity": "shelter"}, "name": "Shelter"}, "amenity/shelter/gazebo": {"icon": "maki-shelter", "fields": ["name", "building_area", "bench", "lit"], "geometry": ["point", "area"], "tags": {"amenity": "shelter", "shelter_type": "gazebo"}, "name": "Gazebo"}, "amenity/shelter/lean_to": {"icon": "temaki-sleep_shelter", "fields": ["name", "operator", "building_area"], "geometry": ["point", "area"], "tags": {"amenity": "shelter", "shelter_type": "lean_to"}, "name": "Lean-To"}, "amenity/shelter/picnic_shelter": {"icon": "temaki-picnic_shelter", "fields": ["name", "shelter_type", "building_area", "lit", "bin"], "geometry": ["point", "area"], "tags": {"amenity": "shelter", "shelter_type": "picnic_shelter"}, "reference": {"key": "shelter_type", "value": "picnic_shelter"}, "terms": ["pavilion"], "name": "Picnic Shelter"}, "amenity/shelter/public_transport": {"icon": "temaki-transit_shelter", "fields": ["name", "shelter_type", "building_area", "bench", "lit"], "geometry": ["point", "area"], "terms": ["bus stop", "metro stop", "public transit shelter", "public transport shelter", "tram stop shelter", "waiting"], "tags": {"amenity": "shelter", "shelter_type": "public_transport"}, "reference": {"key": "shelter_type", "value": "public_transport"}, "name": "Transit Shelter"}, "amenity/shower": {"icon": "temaki-shower", "fields": ["opening_hours", "access_simple", "fee", "payment_multi_fee", "charge_fee", "supervised", "building_area", "wheelchair"], "moreFields": ["address", "gender", "level", "operator"], "geometry": ["point", "vertex", "area"], "terms": ["rain closet"], "tags": {"amenity": "shower"}, "name": "Shower"}, "amenity/smoking_area": {"icon": "fas-smoking", "fields": ["name", "shelter", "bin", "bench", "opening_hours"], "moreFields": ["covered", "level", "lit", "wheelchair"], "geometry": ["point", "vertex", "area"], "terms": [], "tags": {"amenity": "smoking_area"}, "name": "Smoking Area"}, - "amenity/social_centre": {"icon": "fas-handshake", "fields": ["name", "brand", "operator", "operator/type", "address", "building_area"], "moreFields": ["air_conditioning", "email", "fax", "internet_access", "internet_access/fee", "internet_access/ssid", "level", "phone", "polling_station", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["event", "fraternal", "fraternity", "hall", "organization", "professional", "society", "sorority", "union", "vetern"], "tags": {"amenity": "social_centre"}, "name": "Social Center"}, - "amenity/social_facility": {"icon": "temaki-social_facility", "fields": ["name", "operator", "operator/type", "address", "building_area", "social_facility", "social_facility_for"], "moreFields": ["email", "fax", "internet_access", "internet_access/fee", "internet_access/ssid", "level", "opening_hours", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": [], "tags": {"amenity": "social_facility"}, "name": "Social Facility"}, + "amenity/social_centre": {"icon": "fas-handshake", "fields": ["name", "brand", "operator", "operator/type", "address", "building_area"], "moreFields": ["air_conditioning", "email", "fax", "gnis/feature_id", "internet_access", "internet_access/fee", "internet_access/ssid", "level", "phone", "polling_station", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["event", "fraternal", "fraternity", "hall", "organization", "professional", "society", "sorority", "union", "vetern"], "tags": {"amenity": "social_centre"}, "name": "Social Center"}, + "amenity/social_facility": {"icon": "temaki-social_facility", "fields": ["name", "operator", "operator/type", "address", "building_area", "social_facility", "social_facility_for"], "moreFields": ["email", "fax", "gnis/feature_id", "internet_access", "internet_access/fee", "internet_access/ssid", "level", "opening_hours", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": [], "tags": {"amenity": "social_facility"}, "name": "Social Facility"}, "amenity/social_facility/ambulatory_care": {"icon": "maki-wheelchair", "geometry": ["point", "area"], "tags": {"amenity": "social_facility", "social_facility": "ambulatory_care"}, "reference": {"key": "social_facility", "value": "ambulatory_care"}, "name": "Ambulatory Care"}, "amenity/social_facility/food_bank": {"icon": "temaki-social_facility", "geometry": ["point", "area"], "terms": [], "tags": {"amenity": "social_facility", "social_facility": "food_bank"}, "reference": {"key": "social_facility", "value": "food_bank"}, "name": "Food Bank"}, "amenity/social_facility/group_home": {"icon": "maki-wheelchair", "fields": ["{amenity/social_facility}", "wheelchair"], "geometry": ["point", "area"], "terms": ["old", "senior", "living", "care home", "assisted living"], "tags": {"amenity": "social_facility", "social_facility": "group_home", "social_facility:for": "senior"}, "reference": {"key": "social_facility", "value": "group_home"}, "name": "Elderly Group Home"}, "amenity/social_facility/homeless_shelter": {"icon": "temaki-social_facility", "geometry": ["point", "area"], "terms": ["houseless", "unhoused", "displaced"], "tags": {"amenity": "social_facility", "social_facility": "shelter", "social_facility:for": "homeless"}, "reference": {"key": "social_facility", "value": "shelter"}, "name": "Homeless Shelter"}, "amenity/social_facility/nursing_home": {"icon": "maki-wheelchair", "fields": ["{amenity/social_facility}", "wheelchair"], "geometry": ["point", "area"], "terms": ["elderly", "living", "nursing", "old", "senior", "assisted living"], "tags": {"amenity": "social_facility", "social_facility": "nursing_home", "social_facility:for": "senior"}, "reference": {"key": "social_facility", "value": "nursing_home"}, "name": "Nursing Home"}, - "amenity/studio": {"icon": "fas-microphone", "fields": ["name", "studio", "address", "building_area", "website"], "moreFields": ["email", "fax", "internet_access", "internet_access/fee", "internet_access/ssid", "level", "phone", "wheelchair"], "geometry": ["point", "area"], "terms": ["recording", "radio", "television"], "tags": {"amenity": "studio"}, "name": "Studio"}, + "amenity/studio": {"icon": "fas-microphone", "fields": ["name", "studio", "address", "building_area", "website"], "moreFields": ["email", "fax", "gnis/feature_id", "internet_access", "internet_access/fee", "internet_access/ssid", "level", "phone", "wheelchair"], "geometry": ["point", "area"], "terms": ["recording", "radio", "television"], "tags": {"amenity": "studio"}, "name": "Studio"}, "amenity/studio/audio": {"icon": "fas-microphone", "geometry": ["point", "area"], "terms": ["audio mixing", "audio production", "audio recording", "audio studio"], "tags": {"amenity": "studio", "studio": "audio"}, "reference": {"key": "studio", "value": "audio"}, "name": "Recording Studio"}, "amenity/studio/radio": {"icon": "fas-microphone", "geometry": ["point", "area"], "terms": ["am radio", "fm radio", "radio broadcast", "radio studio"], "tags": {"amenity": "studio", "studio": "radio"}, "reference": {"key": "studio", "value": "radio"}, "name": "Radio Station"}, "amenity/studio/television": {"icon": "fas-video", "geometry": ["point", "area"], "terms": ["television broadcast", "television studio", "tv broadcast", "tv station", "tv studio"], "tags": {"amenity": "studio", "studio": "television"}, "reference": {"key": "studio", "value": "television"}, "name": "Television Station"}, "amenity/studio/video": {"icon": "fas-video", "geometry": ["point", "area"], "terms": ["movie production", "movie studio", "video production", "video recording", "video studio"], "tags": {"amenity": "studio", "studio": "video"}, "reference": {"key": "studio", "value": "video"}, "name": "Film Studio"}, "amenity/taxi": {"icon": "fas-taxi", "fields": ["name", "operator", "capacity", "address"], "moreFields": ["access_simple", "brand", "opening_hours", "wheelchair"], "geometry": ["point", "vertex", "area"], "terms": ["cab"], "tags": {"amenity": "taxi"}, "name": "Taxi Stand"}, "amenity/telephone": {"icon": "maki-telephone", "fields": ["operator", "phone", "fee", "payment_multi_fee", "charge_fee", "booth"], "moreFields": ["covered", "indoor", "internet_access", "internet_access/fee", "internet_access/ssid", "level", "lit", "ref", "sms", "video_calls", "wheelchair"], "geometry": ["point", "vertex"], "tags": {"amenity": "telephone"}, "terms": ["phone"], "name": "Telephone"}, - "amenity/theatre": {"icon": "maki-theatre", "fields": ["name", "operator", "address", "building_area", "website"], "moreFields": ["air_conditioning", "email", "fax", "internet_access", "internet_access/fee", "internet_access/ssid", "level", "min_age", "payment_multi", "phone", "wheelchair"], "geometry": ["point", "area"], "terms": ["theatre", "performance", "play", "musical"], "tags": {"amenity": "theatre"}, "name": "Theater"}, + "amenity/theatre": {"icon": "maki-theatre", "fields": ["name", "operator", "address", "building_area", "website"], "moreFields": ["air_conditioning", "email", "fax", "gnis/feature_id", "internet_access", "internet_access/fee", "internet_access/ssid", "level", "min_age", "payment_multi", "phone", "wheelchair"], "geometry": ["point", "area"], "terms": ["theatre", "performance", "play", "musical"], "tags": {"amenity": "theatre"}, "name": "Theater"}, "amenity/theatre/type/amphi": {"icon": "maki-theatre", "fields": ["name", "operator", "address", "lit"], "geometry": ["point", "area"], "terms": ["open air", "outdoor", "greek", "ampi"], "tags": {"amenity": "theatre", "theatre:type": "amphi"}, "name": "Amphitheatre"}, "amenity/toilets": {"icon": "maki-toilet", "fields": ["toilets/disposal", "access_simple", "gender", "changing_table", "wheelchair", "building_area"], "moreFields": ["charge_fee", "fee", "level", "opening_hours", "operator", "payment_multi_fee", "toilets/handwashing", "toilets/position"], "geometry": ["point", "vertex", "area"], "terms": ["bathroom", "restroom", "outhouse", "privy", "head", "lavatory", "latrine", "water closet", "WC", "W.C."], "tags": {"amenity": "toilets"}, "name": "Toilets"}, "amenity/toilets/disposal/flush": {"icon": "fas-toilet", "fields": ["toilets/disposal", "{amenity/toilets}"], "moreFields": ["{amenity/toilets}"], "geometry": ["point", "vertex", "area"], "terms": ["bathroom", "head", "lavatory", "privy", "restroom", "water closet", "WC", "W.C."], "tags": {"amenity": "toilets", "toilets:disposal": "flush"}, "reference": {"key": "toilets:disposal", "value": "flush"}, "name": "Flush Toilets"}, "amenity/toilets/disposal/pitlatrine": {"icon": "tnp-2009541", "fields": ["toilets/disposal", "{amenity/toilets}", "toilets/handwashing"], "moreFields": ["{amenity/toilets}"], "geometry": ["point", "vertex", "area"], "terms": ["head", "lavatory", "long drop", "outhouse", "pit toilet", "privy"], "tags": {"amenity": "toilets", "toilets:disposal": "pitlatrine"}, "reference": {"key": "toilets:disposal", "value": "pitlatrine"}, "name": "Pit Latrine"}, - "amenity/townhall": {"icon": "maki-town-hall", "fields": ["name", "operator", "townhall/type", "address", "building_area"], "moreFields": ["email", "fax", "phone", "polling_station", "smoking", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["village", "city", "government", "courthouse", "municipal"], "tags": {"amenity": "townhall"}, "name": "Town Hall"}, + "amenity/townhall": {"icon": "maki-town-hall", "fields": ["name", "operator", "townhall/type", "address", "building_area"], "moreFields": ["email", "fax", "gnis/feature_id", "phone", "polling_station", "smoking", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["village", "city", "government", "courthouse", "municipal"], "tags": {"amenity": "townhall"}, "name": "Town Hall"}, "amenity/townhall/city": {"icon": "maki-town-hall", "geometry": ["point", "area"], "terms": ["council", "courthouse", "government", "mayor", "municipality"], "tags": {"amenity": "townhall", "townhall:type": "city"}, "name": "City Hall"}, "amenity/toy_library": {"icon": "fas-chess-knight", "fields": ["operator", "address", "building_area", "opening_hours"], "moreFields": ["level", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["game", "toy"], "tags": {"amenity": "toy_library"}, "name": "Toy Library"}, "amenity/university": {"icon": "maki-college", "fields": ["{amenity/college}"], "moreFields": ["{amenity/college}"], "geometry": ["point", "area"], "terms": ["college", "graduate school", "PhD program", "master's degree program"], "tags": {"amenity": "university"}, "name": "University Grounds"}, - "amenity/vehicle_inspection": {"icon": "maki-car", "fields": ["name", "operator", "address", "building_area", "opening_hours"], "moreFields": ["email", "fax", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["car inspection"], "tags": {"amenity": "vehicle_inspection"}, "name": "Vehicle Inspection"}, + "amenity/vehicle_inspection": {"icon": "maki-car", "fields": ["name", "operator", "address", "building_area", "opening_hours"], "moreFields": ["email", "fax", "gnis/feature_id", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["car inspection"], "tags": {"amenity": "vehicle_inspection"}, "name": "Vehicle Inspection"}, "amenity/vending_machine": {"icon": "temaki-vending_machine", "fields": ["vending", "ref", "operator", "payment_multi", "currency_multi"], "moreFields": ["blind", "brand", "covered", "height", "indoor", "level", "manufacturer"], "geometry": ["point", "vertex"], "terms": [], "tags": {"amenity": "vending_machine"}, "matchScore": 0.9, "name": "Vending Machine"}, "amenity/vending_machine/bottle_return": {"icon": "temaki-vending_machine", "fields": ["vending", "operator"], "geometry": ["point", "vertex"], "terms": ["bottle return"], "tags": {"amenity": "vending_machine", "vending": "bottle_return"}, "reference": {"key": "vending", "value": "bottle_return"}, "name": "Bottle Return Machine"}, "amenity/vending_machine/bread": {"icon": "temaki-vending_bread", "geometry": ["point", "vertex"], "terms": ["baguette", "bread"], "tags": {"amenity": "vending_machine", "vending": "bread"}, "reference": {"key": "vending", "value": "bread"}, "name": "Bread Vending Machine"}, @@ -264,7 +264,7 @@ "amenity/vending_machine/public_transport_tickets": {"icon": "temaki-vending_tickets", "geometry": ["point", "vertex"], "terms": ["bus", "train", "ferry", "rail", "ticket", "transportation"], "tags": {"amenity": "vending_machine", "vending": "public_transport_tickets"}, "reference": {"key": "vending", "value": "public_transport_tickets"}, "name": "Transit Ticket Vending Machine"}, "amenity/vending_machine/stamps": {"icon": "temaki-vending_stamps", "geometry": ["point", "vertex"], "terms": ["mail", "postage", "stamp"], "tags": {"amenity": "vending_machine", "vending": "stamps"}, "reference": {"key": "vending", "value": "stamps"}, "name": "Postage Vending Machine"}, "amenity/vending_machine/sweets": {"icon": "temaki-vending_machine", "geometry": ["point", "vertex"], "terms": ["candy", "gum", "chip", "pretzel", "cookie", "cracker"], "tags": {"amenity": "vending_machine", "vending": "sweets"}, "reference": {"key": "vending", "value": "sweets"}, "name": "Snack Vending Machine"}, - "amenity/veterinary": {"icon": "temaki-veterinary_care", "fields": ["name", "operator", "address", "building_area", "opening_hours"], "moreFields": ["charge_fee", "email", "fax", "fee", "level", "payment_multi_fee", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["pet clinic", "veterinarian", "animal hospital", "pet doctor"], "tags": {"amenity": "veterinary"}, "name": "Veterinary"}, + "amenity/veterinary": {"icon": "temaki-veterinary_care", "fields": ["name", "operator", "address", "building_area", "opening_hours"], "moreFields": ["charge_fee", "email", "fax", "fee", "gnis/feature_id", "level", "payment_multi_fee", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["pet clinic", "veterinarian", "animal hospital", "pet doctor"], "tags": {"amenity": "veterinary"}, "name": "Veterinary"}, "amenity/waste_basket": {"icon": "maki-waste-basket", "fields": ["operator", "waste", "collection_times", "material", "colour"], "moreFields": ["covered", "indoor", "manufacturer"], "geometry": ["point", "vertex"], "tags": {"amenity": "waste_basket"}, "terms": ["bin", "garbage", "rubbish", "litter", "trash"], "name": "Waste Basket"}, "amenity/waste_disposal": {"icon": "fas-dumpster", "fields": ["operator", "waste", "collection_times", "access_simple"], "moreFields": ["brand", "colour", "height", "manufacturer", "material"], "geometry": ["point", "vertex", "area"], "tags": {"amenity": "waste_disposal"}, "terms": ["garbage", "rubbish", "litter", "trash"], "name": "Garbage Dumpster"}, "amenity/waste_transfer_station": {"icon": "maki-waste-basket", "fields": ["name", "operator", "operator/type", "waste", "address", "opening_hours", "fee", "payment_multi_fee", "charge_fee"], "moreFields": ["email", "fax", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["dump", "garbage", "recycling", "rubbish", "scrap", "trash"], "tags": {"amenity": "waste_transfer_station"}, "name": "Waste Transfer Station"}, @@ -327,7 +327,7 @@ "bridge/support": {"icon": "fas-archway", "fields": ["bridge/support", "height", "layer", "material"], "moreFields": ["colour", "seamark/type"], "geometry": ["point", "vertex", "area"], "tags": {"bridge:support": "*"}, "name": "Bridge Support"}, "bridge/support/pier": {"icon": "fas-archway", "fields": ["bridge/support", "{bridge/support}"], "geometry": ["point", "vertex", "area"], "tags": {"bridge:support": "pier"}, "name": "Bridge Pier"}, "building_part": {"icon": "maki-building", "fields": ["levels", "height", "building/material", "roof/colour"], "moreFields": ["layer"], "geometry": ["area"], "tags": {"building:part": "*"}, "matchScore": 0.5, "terms": ["roof", "simple 3D buildings"], "name": "Building Part"}, - "building": {"icon": "maki-home", "fields": ["name", "building", "levels", "height", "address"], "moreFields": ["architect", "building/levels/underground", "building/material", "layer", "not/name", "operator", "roof/colour", "smoking", "wheelchair"], "geometry": ["area"], "tags": {"building": "*"}, "matchScore": 0.6, "terms": [], "name": "Building"}, + "building": {"icon": "maki-home", "fields": ["name", "building", "levels", "height", "address"], "moreFields": ["architect", "building/levels/underground", "building/material", "gnis/feature_id", "layer", "not/name", "operator", "roof/colour", "smoking", "wheelchair"], "geometry": ["area"], "tags": {"building": "*"}, "matchScore": 0.6, "terms": [], "name": "Building"}, "building/bunker": {"geometry": ["area"], "tags": {"building": "bunker"}, "matchScore": 0.5, "name": "Bunker", "searchable": false}, "building/entrance": {"icon": "maki-entrance-alt1", "fields": [], "moreFields": [], "geometry": ["vertex"], "tags": {"building": "entrance"}, "name": "Entrance/Exit", "searchable": false}, "building/train_station": {"icon": "maki-building", "geometry": ["point", "vertex", "area"], "tags": {"building": "train_station"}, "matchScore": 0.5, "name": "Train Station Building", "searchable": false}, @@ -379,9 +379,9 @@ "building/transportation": {"icon": "maki-building", "fields": ["{building}", "smoking"], "geometry": ["area"], "tags": {"building": "transportation"}, "matchScore": 0.5, "name": "Transportation Building"}, "building/university": {"icon": "maki-building", "moreFields": ["{building}", "polling_station"], "geometry": ["area"], "terms": ["college"], "tags": {"building": "university"}, "matchScore": 0.5, "name": "University Building"}, "building/warehouse": {"icon": "maki-warehouse", "geometry": ["area"], "tags": {"building": "warehouse"}, "matchScore": 0.5, "name": "Warehouse"}, - "club": {"icon": "fas-handshake", "fields": ["name", "club", "operator", "address", "building_area", "opening_hours"], "moreFields": ["access_simple", "building/levels_building", "email", "fax", "height_building", "internet_access", "internet_access/fee", "internet_access/ssid", "level", "max_age", "min_age", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"club": "*"}, "terms": ["social"], "name": "Club"}, + "club": {"icon": "fas-handshake", "fields": ["name", "club", "operator", "address", "building_area", "opening_hours"], "moreFields": ["access_simple", "building/levels_building", "email", "fax", "gnis/feature_id", "height_building", "internet_access", "internet_access/fee", "internet_access/ssid", "level", "max_age", "min_age", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"club": "*"}, "terms": ["social"], "name": "Club"}, "club/sport": {"icon": "maki-pitch", "fields": ["name", "sport", "{club}"], "geometry": ["point", "area"], "tags": {"club": "sport"}, "terms": ["athletics club", "sporting club", "sports association", "sports society"], "name": "Sports Club"}, - "craft": {"icon": "temaki-tools", "fields": ["name", "craft", "operator", "address", "building_area", "opening_hours"], "moreFields": ["air_conditioning", "building/levels_building", "email", "fax", "height_building", "internet_access", "internet_access/fee", "internet_access/ssid", "level", "phone", "product", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"craft": "*"}, "terms": [], "name": "Craft"}, + "craft": {"icon": "temaki-tools", "fields": ["name", "craft", "operator", "address", "building_area", "opening_hours"], "moreFields": ["air_conditioning", "building/levels_building", "email", "fax", "gnis/feature_id", "height_building", "internet_access", "internet_access/fee", "internet_access/ssid", "level", "phone", "product", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"craft": "*"}, "terms": [], "name": "Craft"}, "craft/locksmith": {"icon": "maki-marker-stroked", "geometry": ["point", "area"], "tags": {"craft": "locksmith"}, "reference": {"key": "shop", "value": "locksmith"}, "name": "Locksmith", "searchable": false}, "craft/tailor": {"icon": "maki-clothing-store", "geometry": ["point", "area"], "tags": {"craft": "tailor"}, "reference": {"key": "shop", "value": "tailor"}, "name": "Tailor", "searchable": false}, "craft/agricultural_engines": {"icon": "temaki-tools", "geometry": ["point", "area"], "tags": {"craft": "agricultural_engines"}, "name": "Argricultural Engines Mechanic"}, @@ -440,7 +440,7 @@ "emergency/official": {"fields": ["emergency_combo"], "geometry": ["line"], "tags": {"emergency": "official"}, "name": "Emergency Access Official", "searchable": false, "matchScore": 0.01}, "emergency/private": {"fields": ["emergency_combo"], "geometry": ["line"], "tags": {"emergency": "private"}, "name": "Emergency Access Private", "searchable": false, "matchScore": 0.01}, "emergency/yes": {"fields": ["emergency_combo"], "geometry": ["line"], "tags": {"emergency": "yes"}, "name": "Emergency Access Yes", "searchable": false, "matchScore": 0.01}, - "emergency/ambulance_station": {"icon": "fas-ambulance", "fields": ["name", "operator", "building_area", "address"], "moreFields": ["email", "fax", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["EMS", "EMT", "rescue"], "tags": {"emergency": "ambulance_station"}, "name": "Ambulance Station"}, + "emergency/ambulance_station": {"icon": "fas-ambulance", "fields": ["name", "operator", "building_area", "address"], "moreFields": ["email", "fax", "gnis/feature_id", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["EMS", "EMT", "rescue"], "tags": {"emergency": "ambulance_station"}, "name": "Ambulance Station"}, "emergency/defibrillator": {"icon": "maki-defibrillator", "fields": ["indoor", "ref", "operator"], "moreFields": ["level"], "geometry": ["point", "vertex"], "terms": ["AED"], "tags": {"emergency": "defibrillator"}, "name": "Defibrillator"}, "emergency/fire_alarm": {"icon": "fas-bell", "fields": ["indoor", "ref", "operator"], "moreFields": ["level"], "geometry": ["point", "vertex"], "tags": {"emergency": "fire_alarm_box"}, "name": "Fire Alarm Call Box"}, "emergency/fire_extinguisher": {"icon": "fas-fire-extinguisher", "fields": ["indoor", "ref", "operator"], "moreFields": ["level"], "geometry": ["point", "vertex"], "tags": {"emergency": "fire_extinguisher"}, "name": "Fire Extinguisher"}, @@ -453,7 +453,7 @@ "emergency/siren": {"icon": "fas-volume-up", "fields": ["siren/purpose", "siren/type", "ref", "operator"], "geometry": ["point", "vertex"], "terms": ["air raid", "loud", "noise", "storm", "tornado", "warning"], "tags": {"emergency": "siren"}, "name": "Siren"}, "emergency/water_tank": {"icon": "maki-water", "fields": ["name", "ref", "operator"], "geometry": ["point", "vertex"], "terms": ["water tank", "cistern", "reservoir"], "tags": {"emergency": "water_tank"}, "name": "Emergency Water Tank"}, "entrance": {"icon": "maki-entrance-alt1", "geometry": ["vertex"], "terms": ["entrance", "exit", "door"], "tags": {"entrance": "*"}, "fields": ["entrance", "door", "access_simple", "level", "address"], "matchScore": 0.8, "name": "Entrance/Exit"}, - "ford": {"icon": "temaki-pedestrian", "fields": ["name", "access", "seasonal"], "geometry": ["vertex"], "tags": {"ford": "yes"}, "name": "Ford"}, + "ford": {"icon": "temaki-pedestrian", "fields": ["name", "access", "seasonal"], "moreFields": ["gnis/feature_id"], "geometry": ["vertex"], "tags": {"ford": "yes"}, "name": "Ford"}, "golf/bunker": {"icon": "maki-golf", "fields": ["name"], "geometry": ["area"], "tags": {"golf": "bunker"}, "addTags": {"golf": "bunker", "natural": "sand"}, "terms": ["hazard", "bunker"], "name": "Sand Trap"}, "golf/cartpath": {"icon": "temaki-golf_cart", "fields": ["{golf/path}", "maxspeed"], "geometry": ["line"], "tags": {"golf": "cartpath"}, "addTags": {"golf": "cartpath", "golf_cart": "designated", "highway": "service"}, "name": "Golf Cartpath"}, "golf/driving_range": {"icon": "maki-golf", "fields": ["name", "capacity"], "geometry": ["area"], "tags": {"golf": "driving_range"}, "addTags": {"golf": "driving_range", "landuse": "grass"}, "name": "Driving Range"}, @@ -465,7 +465,7 @@ "golf/rough": {"icon": "maki-golf", "fields": ["name"], "geometry": ["area"], "tags": {"golf": "rough"}, "addTags": {"golf": "rough", "landuse": "grass"}, "name": "Rough"}, "golf/tee": {"icon": "maki-golf", "fields": ["name"], "geometry": ["area"], "tags": {"golf": "tee"}, "addTags": {"golf": "tee", "landuse": "grass"}, "terms": ["teeing ground"], "name": "Tee Box"}, "golf/water_hazard": {"icon": "maki-golf", "fields": ["name"], "geometry": ["area"], "tags": {"golf": "water_hazard"}, "addTags": {"golf": "water_hazard", "natural": "water"}, "name": "Water Hazard"}, - "healthcare": {"icon": "maki-hospital", "fields": ["name", "healthcare", "operator", "healthcare/speciality", "address", "building_area"], "moreFields": ["brand", "building/levels_building", "email", "fax", "height_building", "level", "opening_hours", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"healthcare": "*"}, "terms": ["clinic", "doctor", "disease", "health", "institution", "sick", "surgery", "wellness"], "name": "Healthcare Facility"}, + "healthcare": {"icon": "maki-hospital", "fields": ["name", "healthcare", "operator", "healthcare/speciality", "address", "building_area"], "moreFields": ["brand", "building/levels_building", "email", "fax", "gnis/feature_id", "height_building", "level", "opening_hours", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"healthcare": "*"}, "terms": ["clinic", "doctor", "disease", "health", "institution", "sick", "surgery", "wellness"], "name": "Healthcare Facility"}, "healthcare/alternative": {"icon": "maki-hospital", "geometry": ["point", "area"], "terms": ["acupuncture", "anthroposophical", "applied kinesiology", "aromatherapy", "ayurveda", "herbalism", "homeopathy", "hydrotherapy", "hypnosis", "naturopathy", "osteopathy", "reflexology", "reiki", "shiatsu", "traditional", "tuina", "unani"], "tags": {"healthcare": "alternative"}, "name": "Alternative Medicine"}, "healthcare/alternative/chiropractic": {"icon": "maki-hospital", "geometry": ["point", "area"], "terms": ["back", "pain", "spine"], "tags": {"healthcare": "alternative", "healthcare:speciality": "chiropractic"}, "name": "Chiropractor"}, "healthcare/audiologist": {"icon": "maki-hospital", "geometry": ["point", "area"], "terms": ["ear", "hearing", "sound"], "tags": {"healthcare": "audiologist"}, "name": "Audiologist"}, @@ -520,7 +520,7 @@ "highway/motorway_link": {"icon": "iD-highway-motorway-link", "fields": ["destination_oneway", "destination/ref_oneway", "junction/ref_oneway", "oneway", "maxspeed", "lanes", "surface", "structure", "access"], "moreFields": ["charge_toll", "covered", "destination/symbol_oneway", "incline", "junction_line", "lit", "maxheight", "maxspeed/advisory", "maxweight_bridge", "name", "ref_road_number", "smoothness", "toll", "width"], "geometry": ["line"], "tags": {"highway": "motorway_link"}, "terms": ["exit", "ramp", "road", "street", "on ramp", "off ramp"], "name": "Motorway Link"}, "highway/motorway": {"icon": "iD-highway-motorway", "fields": ["name", "ref_road_number", "oneway_yes", "maxspeed", "lanes", "surface", "structure", "access"], "moreFields": ["charge_toll", "covered", "incline", "junction_line", "lit", "maxheight", "maxweight_bridge", "minspeed", "not/name", "smoothness", "toll", "width"], "geometry": ["line"], "tags": {"highway": "motorway"}, "terms": ["autobahn", "expressway", "freeway", "highway", "interstate", "parkway", "road", "street", "thruway", "turnpike"], "name": "Motorway"}, "highway/passing_place": {"icon": "maki-circle-stroked", "geometry": ["vertex"], "tags": {"highway": "passing_place"}, "terms": ["turnout, pullout"], "name": "Passing Place"}, - "highway/path": {"icon": "iD-other-line", "fields": ["name", "surface", "width", "structure", "access", "incline"], "moreFields": ["covered", "dog", "horse_scale", "informal", "lit", "maxweight_bridge", "mtb/scale", "mtb/scale/imba", "mtb/scale/uphill", "not/name", "ref", "sac_scale", "smoothness", "stroller", "trail_visibility", "wheelchair"], "geometry": ["line"], "terms": ["hike", "hiking", "trackway", "trail", "walk"], "tags": {"highway": "path"}, "name": "Path"}, + "highway/path": {"icon": "iD-other-line", "fields": ["name", "surface", "width", "structure", "access", "incline"], "moreFields": ["covered", "dog", "gnis/feature_id", "horse_scale", "informal", "lit", "maxweight_bridge", "mtb/scale", "mtb/scale/imba", "mtb/scale/uphill", "not/name", "ref", "sac_scale", "smoothness", "stroller", "trail_visibility", "wheelchair"], "geometry": ["line"], "terms": ["hike", "hiking", "trackway", "trail", "walk"], "tags": {"highway": "path"}, "name": "Path"}, "highway/path/informal": {"icon": "iD-other-line", "fields": ["surface", "width", "access", "trail_visibility", "smoothness", "incline"], "moreFields": ["covered", "dog", "horse_scale", "informal", "lit", "maxweight_bridge", "mtb/scale", "mtb/scale/imba", "mtb/scale/uphill", "sac_scale", "stroller", "structure", "wheelchair"], "geometry": ["line"], "terms": ["bootleg trail", "cow path", "desire line", "desire path", "desireline", "desirepath", "elephant path", "game trail", "goat track", "herd path", "pig trail", "shortcut", "social trail", "use trail"], "tags": {"highway": "path", "informal": "yes"}, "reference": {"key": "informal"}, "name": "Informal Path"}, "highway/pedestrian_area": {"icon": "temaki-pedestrian", "fields": ["name", "surface", "lit", "width", "structure", "access"], "geometry": ["area"], "tags": {"highway": "pedestrian", "area": "yes"}, "terms": ["center", "centre", "plaza", "quad", "square", "walkway"], "name": "Pedestrian Area"}, "highway/pedestrian_line": {"icon": "temaki-pedestrian", "fields": ["name", "surface", "lit", "width", "oneway", "structure", "access"], "moreFields": ["covered", "incline", "maxweight_bridge", "smoothness"], "geometry": ["line"], "tags": {"highway": "pedestrian"}, "terms": ["center", "centre", "plaza", "quad", "square", "walkway"], "name": "Pedestrian Street"}, @@ -551,15 +551,15 @@ "highway/track": {"icon": "fas-truck-monster", "fields": ["name", "tracktype", "surface", "width", "structure", "access", "incline", "smoothness"], "moreFields": ["covered", "flood_prone", "horse_scale", "maxweight_bridge", "mtb/scale", "mtb/scale/imba", "mtb/scale/uphill", "stroller", "wheelchair"], "geometry": ["line"], "tags": {"highway": "track"}, "terms": ["woods road", "forest road", "logging road", "fire road", "farm road", "agricultural road", "ranch road", "carriage road", "primitive", "unmaintained", "rut", "offroad", "4wd", "4x4", "four wheel drive", "atv", "quad", "jeep", "double track", "two track"], "name": "Unmaintained Track Road"}, "highway/traffic_mirror": {"icon": "maki-circle-stroked", "geometry": ["point", "vertex"], "fields": ["direction"], "tags": {"highway": "traffic_mirror"}, "terms": ["blind spot", "convex", "corner", "curved", "roadside", "round", "safety", "sphere", "visibility"], "name": "Traffic Mirror"}, "highway/traffic_signals": {"icon": "temaki-traffic_signals", "geometry": ["vertex"], "tags": {"highway": "traffic_signals"}, "fields": ["traffic_signals", "traffic_signals/direction"], "terms": ["light", "stoplight", "traffic light"], "name": "Traffic Signals"}, - "highway/trailhead": {"icon": "fas-hiking", "fields": ["name", "operator", "elevation", "address", "access_simple", "fee", "payment_multi_fee", "charge_fee"], "moreFields": ["opening_hours"], "geometry": ["vertex"], "tags": {"highway": "trailhead"}, "terms": ["hiking", "mile zero", "mountain biking", "mountaineering", "trail endpoint", "trail start", "staging area", "trekking"], "name": "Trailhead"}, + "highway/trailhead": {"icon": "fas-hiking", "fields": ["name", "operator", "elevation", "address", "access_simple", "fee", "payment_multi_fee", "charge_fee"], "moreFields": ["gnis/feature_id", "opening_hours"], "geometry": ["vertex"], "tags": {"highway": "trailhead"}, "terms": ["hiking", "mile zero", "mountain biking", "mountaineering", "trail endpoint", "trail start", "staging area", "trekking"], "name": "Trailhead"}, "highway/trunk_link": {"icon": "iD-highway-trunk-link", "fields": ["{highway/motorway_link}"], "moreFields": ["{highway/motorway_link}"], "geometry": ["line"], "tags": {"highway": "trunk_link"}, "terms": ["on ramp", "off ramp", "ramp", "road", "street"], "name": "Trunk Link"}, "highway/trunk": {"icon": "iD-highway-trunk", "fields": ["name", "ref_road_number", "oneway", "maxspeed", "lanes", "surface", "structure", "access"], "moreFields": ["charge_toll", "covered", "incline", "junction_line", "lit", "maxheight", "maxweight_bridge", "minspeed", "not/name", "smoothness", "toll", "width"], "geometry": ["line"], "tags": {"highway": "trunk"}, "terms": ["road", "street"], "name": "Trunk Road"}, "highway/turning_circle": {"icon": "maki-circle-stroked", "geometry": ["vertex"], "tags": {"highway": "turning_circle"}, "terms": ["cul-de-sac"], "name": "Turning Circle"}, "highway/turning_loop": {"icon": "maki-circle", "geometry": ["vertex"], "tags": {"highway": "turning_loop"}, "terms": ["cul-de-sac"], "name": "Turning Loop (Island)"}, "highway/unclassified": {"icon": "iD-highway-unclassified", "fields": ["{highway/residential}"], "moreFields": ["{highway/residential}"], "geometry": ["line"], "tags": {"highway": "unclassified"}, "terms": ["road", "street"], "name": "Minor/Unclassified Road"}, - "historic": {"icon": "temaki-ruins", "fields": ["historic", "inscription"], "geometry": ["point", "vertex", "line", "area"], "tags": {"historic": "*"}, "name": "Historic Site"}, + "historic": {"icon": "temaki-ruins", "fields": ["historic", "inscription"], "moreFields": ["gnis/feature_id"], "geometry": ["point", "vertex", "line", "area"], "tags": {"historic": "*"}, "name": "Historic Site"}, "historic/archaeological_site": {"icon": "temaki-ruins", "fields": ["name", "site_type", "historic/civilization", "inscription", "access_simple"], "geometry": ["point", "vertex", "area"], "tags": {"historic": "archaeological_site"}, "name": "Archaeological Site"}, - "historic/boundary_stone": {"icon": "temaki-milestone", "fields": ["name", "inscription"], "moreFields": ["material"], "geometry": ["point", "vertex"], "tags": {"historic": "boundary_stone"}, "name": "Boundary Stone"}, + "historic/boundary_stone": {"icon": "temaki-milestone", "fields": ["name", "inscription"], "moreFields": ["{historic}", "material"], "geometry": ["point", "vertex"], "tags": {"historic": "boundary_stone"}, "name": "Boundary Stone"}, "historic/castle": {"icon": "maki-castle", "fields": ["name", "castle_type", "building_area", "historic/civilization", "access_simple", "start_date"], "geometry": ["point", "area"], "tags": {"historic": "castle"}, "name": "Castle"}, "historic/castle/fortress": {"icon": "maki-castle", "fields": ["name", "building_area", "access_simple", "start_date"], "geometry": ["point", "area"], "reference": {"key": "castle_type", "value": "fortress"}, "tags": {"historic": "castle", "castle_type": "fortress"}, "terms": ["citadel", "military"], "name": "Historic Fortress"}, "historic/castle/palace": {"icon": "fas-crown", "fields": ["name", "building_area", "access_simple", "start_date"], "geometry": ["point", "area"], "reference": {"key": "castle_type", "value": "palace"}, "tags": {"historic": "castle", "castle_type": "palace"}, "terms": ["Royal Residence", "royal", "king", "queen"], "name": "Palace"}, @@ -567,14 +567,14 @@ "historic/city_gate": {"icon": "maki-castle", "fields": ["name", "building_area", "historic/civilization", "start_date"], "geometry": ["point", "area"], "tags": {"historic": "city_gate"}, "terms": ["Town Gate"], "name": "City Gate"}, "historic/fort": {"icon": "maki-castle", "fields": ["name", "building_area", "access_simple", "start_date"], "geometry": ["point", "area"], "tags": {"historic": "fort"}, "terms": ["military"], "name": "Historic Fort"}, "historic/manor": {"icon": "maki-castle", "fields": ["name", "building_area", "access_simple", "start_date"], "geometry": ["point", "area"], "tags": {"historic": "manor"}, "terms": ["Mansion", "gentry", "nobility", "estate"], "name": "Manor House"}, - "historic/memorial": {"icon": "maki-monument", "fields": ["name", "memorial", "inscription", "material"], "moreFields": ["website"], "geometry": ["point", "vertex", "area"], "terms": ["dedicatory", "epitaph", "remember", "remembrance", "memory", "monument", "stolperstein"], "tags": {"historic": "memorial"}, "name": "Memorial"}, + "historic/memorial": {"icon": "maki-monument", "fields": ["name", "memorial", "inscription", "material"], "moreFields": ["{historic}", "website"], "geometry": ["point", "vertex", "area"], "terms": ["dedicatory", "epitaph", "remember", "remembrance", "memory", "monument", "stolperstein"], "tags": {"historic": "memorial"}, "name": "Memorial"}, "historic/memorial/plaque": {"icon": "temaki-plaque", "fields": ["{historic/memorial}", "direction"], "geometry": ["point", "vertex"], "terms": ["dedicatory", "epitaph", "historical marker", "remember", "remembrance", "memory"], "tags": {"historic": "memorial", "memorial": "plaque"}, "reference": {"key": "memorial", "value": "plaque"}, "name": "Commemorative Plaque"}, - "historic/monument": {"icon": "maki-monument", "fields": ["name", "inscription", "access_simple"], "moreFields": ["material"], "geometry": ["point", "vertex", "area"], "tags": {"historic": "monument"}, "name": "Monument"}, + "historic/monument": {"icon": "maki-monument", "fields": ["name", "inscription", "access_simple"], "moreFields": ["{historic}", "material"], "geometry": ["point", "vertex", "area"], "tags": {"historic": "monument"}, "name": "Monument"}, "historic/ruins": {"icon": "temaki-ruins", "fields": ["name", "historic/civilization", "inscription", "access_simple"], "geometry": ["point", "vertex", "area"], "tags": {"historic": "ruins"}, "name": "Ruins"}, "historic/tomb": {"icon": "maki-cemetery", "fields": ["name", "tomb", "building_area", "inscription", "access_simple"], "geometry": ["point", "area"], "tags": {"historic": "tomb"}, "name": "Tomb"}, - "historic/wayside_cross": {"icon": "maki-religious-christian", "fields": ["name", "inscription"], "moreFields": ["material"], "geometry": ["point", "vertex", "area"], "tags": {"historic": "wayside_cross"}, "name": "Wayside Cross"}, + "historic/wayside_cross": {"icon": "maki-religious-christian", "fields": ["name", "inscription"], "moreFields": ["{historic}", "material"], "geometry": ["point", "vertex", "area"], "tags": {"historic": "wayside_cross"}, "name": "Wayside Cross"}, "historic/wayside_shrine": {"icon": "maki-landmark", "fields": ["name", "religion", "denomination", "inscription", "access_simple"], "geometry": ["point", "vertex", "area"], "tags": {"historic": "wayside_shrine"}, "name": "Wayside Shrine"}, - "historic/wreck": {"icon": "temaki-ruins", "fields": ["name", "access_simple", "seamark/wreck/category", "historic/wreck/date_sunk", "historic/wreck/visible_at_low_tide", "historic/wreck/visible_at_high_tide"], "moreFields": ["seamark/type"], "geometry": ["point", "area"], "tags": {"historic": "wreck"}, "addTags": {"historic": "wreck", "seamark:type": "wreck"}, "terms": ["hull", "mast", "maritime", "remains", "ship", "boat"], "name": "Shipwreck"}, + "historic/wreck": {"icon": "temaki-ruins", "fields": ["name", "access_simple", "seamark/wreck/category", "historic/wreck/date_sunk", "historic/wreck/visible_at_low_tide", "historic/wreck/visible_at_high_tide"], "moreFields": ["{historic}", "seamark/type"], "geometry": ["point", "area"], "tags": {"historic": "wreck"}, "addTags": {"historic": "wreck", "seamark:type": "wreck"}, "terms": ["hull", "mast", "maritime", "remains", "ship", "boat"], "name": "Shipwreck"}, "indoor/corridor_line": {"fields": ["level", "name"], "geometry": ["line"], "tags": {"indoor": "corridor"}, "searchable": false, "matchScore": 1.1, "name": "Indoor Corridor", "replacement": "highway/corridor"}, "indoor/area": {"fields": ["level", "name", "ref_room_number", "height"], "geometry": ["area"], "tags": {"indoor": "area"}, "terms": ["indoor space"], "matchScore": 0.8, "name": "Indoor Area"}, "indoor/corridor": {"icon": "temaki-pedestrian", "fields": ["level", "name", "ref", "height"], "geometry": ["area"], "tags": {"indoor": "corridor"}, "terms": ["concourse", "foyer", "hallway", "passageway"], "matchScore": 0.8, "name": "Indoor Corridor"}, @@ -630,21 +630,21 @@ "landuse/vineyard": {"icon": "temaki-grapes", "fields": ["name", "operator", "grape_variety"], "moreFields": ["address", "email", "fax", "phone", "website"], "geometry": ["area"], "tags": {"landuse": "vineyard"}, "addTags": {"landuse": "vineyard", "crop": "grape"}, "removeTags": {"landuse": "vineyard", "crop": "grape", "grape_variety": "*"}, "terms": ["grape", "wine"], "name": "Vineyard"}, "landuse/winter_sports": {"icon": "fas-skiing", "geometry": ["area"], "fields": ["name", "operator"], "moreFields": ["access_simple", "address", "opening_hours"], "tags": {"landuse": "winter_sports"}, "terms": ["piste area", "ski area", "ski hill", "ski mountain", "ski resort", "snow board area", "snowboard area"], "name": "Winter Sports Area"}, "leisure/adult_gaming_centre": {"icon": "temaki-casino", "fields": ["{amenity/casino}"], "moreFields": ["{amenity/casino}"], "geometry": ["point", "area"], "terms": ["gambling", "slot machine"], "tags": {"leisure": "adult_gaming_centre"}, "name": "Adult Gaming Center"}, - "leisure/amusement_arcade": {"icon": "maki-gaming", "fields": ["name", "operator", "address", "building_area"], "moreFields": ["air_conditioning", "email", "fax", "level", "max_age", "min_age", "opening_hours", "payment_multi", "phone", "smoking", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["pay-to-play games", "video games", "driving simulators", "pinball machines"], "tags": {"leisure": "amusement_arcade"}, "name": "Amusement Arcade"}, - "leisure/bandstand": {"icon": "fas-music", "fields": ["name", "building_area", "operator"], "moreFields": ["website"], "geometry": ["point", "area"], "tags": {"leisure": "bandstand"}, "name": "Bandstand"}, - "leisure/beach_resort": {"icon": "fas-umbrella-beach", "fields": ["name", "address", "opening_hours", "fee", "payment_multi_fee", "charge_fee"], "moreFields": ["email", "fax", "phone", "smoking", "website"], "geometry": ["point", "area"], "tags": {"leisure": "beach_resort"}, "name": "Beach Resort"}, + "leisure/amusement_arcade": {"icon": "maki-gaming", "fields": ["name", "operator", "address", "building_area"], "moreFields": ["air_conditioning", "email", "fax", "gnis/feature_id", "level", "max_age", "min_age", "opening_hours", "payment_multi", "phone", "smoking", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["pay-to-play games", "video games", "driving simulators", "pinball machines"], "tags": {"leisure": "amusement_arcade"}, "name": "Amusement Arcade"}, + "leisure/bandstand": {"icon": "fas-music", "fields": ["name", "building_area", "operator"], "moreFields": ["gnis/feature_id", "website"], "geometry": ["point", "area"], "tags": {"leisure": "bandstand"}, "name": "Bandstand"}, + "leisure/beach_resort": {"icon": "fas-umbrella-beach", "fields": ["name", "address", "opening_hours", "fee", "payment_multi_fee", "charge_fee"], "moreFields": ["email", "fax", "gnis/feature_id", "phone", "smoking", "website"], "geometry": ["point", "area"], "tags": {"leisure": "beach_resort"}, "name": "Beach Resort"}, "leisure/bird_hide": {"icon": "temaki-binoculars", "fields": ["name", "building_area", "address", "opening_hours"], "moreFields": ["website"], "geometry": ["point", "area"], "tags": {"leisure": "bird_hide"}, "terms": ["machan", "ornithology"], "name": "Bird Hide"}, "leisure/bleachers": {"icon": "temaki-bleachers", "geometry": ["area"], "tags": {"leisure": "bleachers"}, "terms": ["crowd", "bench", "sports", "stand", "stands", "seat", "seating"], "name": "Bleachers"}, - "leisure/bowling_alley": {"icon": "temaki-bowling", "fields": ["name", "operator", "address", "building_area"], "moreFields": ["air_conditioning", "email", "fax", "level", "min_age", "opening_hours", "payment_multi", "phone", "smoking", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["bowling center"], "tags": {"leisure": "bowling_alley"}, "name": "Bowling Alley"}, - "leisure/common": {"icon": "temaki-pedestrian", "fields": ["name"], "moreFields": ["website"], "geometry": ["point", "area"], "terms": ["open space"], "tags": {"leisure": "common"}, "name": "Common"}, - "leisure/dance": {"icon": "fas-music", "fields": ["name", "operator", "address", "building_area", "dance/style"], "moreFields": ["email", "fax", "level", "opening_hours", "payment_multi", "phone", "website"], "geometry": ["point", "area"], "terms": ["ballroom", "jive", "swing", "tango", "waltz"], "tags": {"leisure": "dance"}, "name": "Dance Hall"}, - "leisure/dancing_school": {"icon": "fas-music", "fields": ["name", "operator", "address", "building_area", "dance/style"], "moreFields": ["email", "fax", "level", "opening_hours", "payment_multi", "phone", "website"], "geometry": ["point", "area"], "terms": ["jive", "swing", "tango", "waltz", "dance teaching"], "tags": {"leisure": "dance", "dance:teaching": "yes"}, "reference": {"key": "leisure", "value": "dance"}, "name": "Dance School"}, - "leisure/disc_golf_course": {"icon": "temaki-disc_golf_basket", "fields": ["name", "operator", "access_simple", "fee", "payment_multi_fee", "charge_fee", "opening_hours"], "moreFields": ["address", "dog", "email", "fax", "lit", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"leisure": "disc_golf_course"}, "addTags": {"leisure": "disc_golf_course", "sport": "disc_golf"}, "terms": ["disk golf", "frisbee golf", "flying disc golf", "frolf", "ultimate"], "name": "Disc Golf Course"}, - "leisure/dog_park": {"icon": "maki-dog-park", "fields": ["name"], "moreFields": ["email", "fax", "phone", "website"], "geometry": ["point", "area"], "terms": [], "tags": {"leisure": "dog_park"}, "name": "Dog Park"}, + "leisure/bowling_alley": {"icon": "temaki-bowling", "fields": ["name", "operator", "address", "building_area"], "moreFields": ["air_conditioning", "email", "fax", "gnis/feature_id", "level", "min_age", "opening_hours", "payment_multi", "phone", "smoking", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["bowling center"], "tags": {"leisure": "bowling_alley"}, "name": "Bowling Alley"}, + "leisure/common": {"icon": "temaki-pedestrian", "fields": ["name", "access_simple"], "moreFields": ["gnis/feature_id", "website"], "geometry": ["point", "area"], "terms": ["open space"], "tags": {"leisure": "common"}, "name": "Common"}, + "leisure/dance": {"icon": "fas-music", "fields": ["name", "operator", "address", "building_area", "dance/style"], "moreFields": ["email", "fax", "gnis/feature_id", "level", "opening_hours", "payment_multi", "phone", "website"], "geometry": ["point", "area"], "terms": ["ballroom", "jive", "swing", "tango", "waltz"], "tags": {"leisure": "dance"}, "name": "Dance Hall"}, + "leisure/dancing_school": {"icon": "fas-music", "fields": ["name", "operator", "address", "building_area", "dance/style"], "moreFields": ["email", "fax", "gnis/feature_id", "level", "opening_hours", "payment_multi", "phone", "website"], "geometry": ["point", "area"], "terms": ["jive", "swing", "tango", "waltz", "dance teaching"], "tags": {"leisure": "dance", "dance:teaching": "yes"}, "reference": {"key": "leisure", "value": "dance"}, "name": "Dance School"}, + "leisure/disc_golf_course": {"icon": "temaki-disc_golf_basket", "fields": ["name", "operator", "access_simple", "fee", "payment_multi_fee", "charge_fee", "opening_hours"], "moreFields": ["address", "dog", "email", "fax", "gnis/feature_id", "lit", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"leisure": "disc_golf_course"}, "addTags": {"leisure": "disc_golf_course", "sport": "disc_golf"}, "terms": ["disk golf", "frisbee golf", "flying disc golf", "frolf", "ultimate"], "name": "Disc Golf Course"}, + "leisure/dog_park": {"icon": "maki-dog-park", "fields": ["name"], "moreFields": ["email", "fax", "gnis/feature_id", "phone", "website"], "geometry": ["point", "area"], "terms": [], "tags": {"leisure": "dog_park"}, "name": "Dog Park"}, "leisure/escape_game": {"icon": "fas-puzzle-piece", "fields": ["name", "address", "building_area", "opening_hours", "website", "fee", "payment_multi_fee", "charge_fee", "internet_access", "internet_access/fee", "internet_access/ssid"], "moreFields": ["air_conditioning", "email", "fax", "level", "phone", "smoking", "wheelchair"], "geometry": ["point", "area"], "terms": ["escape game", "escape the room", "puzzle room", "quest room"], "tags": {"leisure": "escape_game"}, "name": "Escape Room"}, "leisure/firepit": {"icon": "temaki-campfire", "fields": ["access_simple"], "geometry": ["point", "area"], "tags": {"leisure": "firepit"}, "terms": ["fireplace", "campfire"], "name": "Firepit"}, "leisure/fishing": {"icon": "fas-fish", "fields": ["name", "access_simple", "fishing"], "geometry": ["vertex", "point", "area"], "tags": {"leisure": "fishing"}, "terms": ["angler"], "name": "Fishing Spot"}, - "leisure/fitness_centre": {"icon": "fas-dumbbell", "fields": ["name", "sport", "address", "building_area"], "moreFields": ["charge_fee", "email", "fax", "fee", "opening_hours", "payment_multi", "phone", "website"], "geometry": ["point", "area"], "tags": {"leisure": "fitness_centre"}, "terms": ["health", "gym", "leisure", "studio"], "name": "Gym / Fitness Center"}, + "leisure/fitness_centre": {"icon": "fas-dumbbell", "fields": ["name", "sport", "address", "building_area"], "moreFields": ["charge_fee", "email", "fax", "fee", "gnis/feature_id", "opening_hours", "payment_multi", "phone", "website"], "geometry": ["point", "area"], "tags": {"leisure": "fitness_centre"}, "terms": ["health", "gym", "leisure", "studio"], "name": "Gym / Fitness Center"}, "leisure/fitness_centre/yoga": {"icon": "maki-pitch", "geometry": ["point", "area"], "terms": ["studio", "asanas", "modern yoga", "meditation"], "tags": {"leisure": "fitness_centre", "sport": "yoga"}, "reference": {"key": "sport", "value": "yoga"}, "name": "Yoga Studio"}, "leisure/fitness_station": {"icon": "maki-pitch", "fields": ["fitness_station", "ref", "wheelchair", "blind"], "moreFields": ["access_simple", "opening_hours"], "geometry": ["point", "area"], "tags": {"leisure": "fitness_station"}, "addTags": {"leisure": "fitness_station", "sport": "fitness"}, "reference": {"key": "leisure", "value": "fitness_station"}, "terms": ["exercise", "fitness", "gym", "trim trail"], "name": "Outdoor Fitness Station"}, "leisure/fitness_station/balance_beam": {"icon": "maki-pitch", "geometry": ["point", "area"], "tags": {"leisure": "fitness_station", "fitness_station": "balance_beam"}, "addTags": {"leisure": "fitness_station", "fitness_station": "balance_beam", "sport": "fitness"}, "reference": {"key": "leisure", "value": "fitness_station"}, "terms": ["balance", "exercise", "fitness", "gym", "trim trail"], "name": "Exercise Balance Beam"}, @@ -658,19 +658,19 @@ "leisure/fitness_station/sign": {"icon": "maki-pitch", "geometry": ["point", "area"], "tags": {"leisure": "fitness_station", "fitness_station": "sign"}, "addTags": {"leisure": "fitness_station", "fitness_station": "sign", "sport": "fitness"}, "reference": {"key": "leisure", "value": "fitness_station"}, "terms": ["exercise", "fitness", "gym", "trim trail"], "name": "Exercise Instruction Sign"}, "leisure/fitness_station/sit-up": {"icon": "maki-pitch", "geometry": ["point", "area"], "tags": {"leisure": "fitness_station", "fitness_station": "sit-up"}, "addTags": {"leisure": "fitness_station", "fitness_station": "sit-up", "sport": "fitness"}, "reference": {"key": "leisure", "value": "fitness_station"}, "terms": ["crunch", "exercise", "fitness", "gym", "situp", "sit up", "trim trail"], "name": "Sit-Up Station"}, "leisure/fitness_station/stairs": {"icon": "maki-pitch", "geometry": ["point", "area"], "tags": {"leisure": "fitness_station", "fitness_station": "stairs"}, "addTags": {"leisure": "fitness_station", "fitness_station": "stairs", "sport": "fitness"}, "reference": {"key": "leisure", "value": "fitness_station"}, "terms": ["exercise", "fitness", "gym", "steps", "trim trail"], "name": "Exercise Stairs"}, - "leisure/garden": {"icon": "maki-garden", "fields": ["name", "operator", "access_simple", "fee", "payment_multi_fee", "charge_fee"], "moreFields": ["email", "fax", "phone", "website"], "geometry": ["point", "vertex", "area"], "tags": {"leisure": "garden"}, "name": "Garden"}, - "leisure/golf_course": {"icon": "maki-golf", "fields": ["name", "operator", "address", "opening_hours"], "moreFields": ["email", "fax", "payment_multi", "phone", "website"], "geometry": ["point", "area"], "terms": ["links"], "tags": {"leisure": "golf_course"}, "name": "Golf Course"}, - "leisure/hackerspace": {"icon": "fas-code", "fields": ["name", "address", "building_area", "opening_hours", "website", "fee", "payment_multi_fee", "charge_fee", "internet_access", "internet_access/fee", "internet_access/ssid"], "moreFields": ["air_conditioning", "email", "fax", "level", "phone", "smoking", "wheelchair"], "geometry": ["point", "area"], "terms": ["makerspace", "hackspace", "hacklab"], "tags": {"leisure": "hackerspace"}, "name": "Hackerspace"}, - "leisure/horse_riding": {"icon": "maki-horse-riding", "fields": ["name", "access_simple", "operator", "address", "building"], "moreFields": ["email", "fax", "opening_hours", "payment_multi", "phone", "website"], "geometry": ["point", "area"], "terms": ["equestrian", "stable"], "tags": {"leisure": "horse_riding"}, "name": "Horseback Riding Facility"}, - "leisure/ice_rink": {"icon": "fas-skating", "fields": ["name", "seasonal", "sport_ice", "operator", "address", "building"], "moreFields": ["email", "fax", "level", "opening_hours", "payment_multi", "phone", "website"], "geometry": ["point", "area"], "terms": ["hockey", "skating", "curling"], "tags": {"leisure": "ice_rink"}, "name": "Ice Rink"}, - "leisure/marina": {"icon": "tnp-2009223", "fields": ["name", "operator", "capacity", "fee", "payment_multi_fee", "charge_fee", "sanitary_dump_station", "power_supply"], "moreFields": ["address", "email", "fax", "internet_access", "internet_access/fee", "internet_access/ssid", "phone", "seamark/type", "website"], "geometry": ["point", "vertex", "area"], "terms": ["boat"], "tags": {"leisure": "marina"}, "name": "Marina"}, - "leisure/miniature_golf": {"icon": "maki-golf", "fields": ["name", "operator", "address", "opening_hours", "fee", "payment_multi_fee", "charge_fee"], "moreFields": ["email", "fax", "phone", "website"], "geometry": ["point", "area"], "terms": ["crazy golf", "mini golf", "putt-putt"], "tags": {"leisure": "miniature_golf"}, "name": "Miniature Golf"}, - "leisure/nature_reserve": {"icon": "maki-park", "geometry": ["point", "area"], "fields": ["name", "operator", "address", "opening_hours"], "moreFields": ["dog", "email", "fax", "phone", "website"], "tags": {"leisure": "nature_reserve"}, "terms": ["protected", "wildlife"], "name": "Nature Reserve"}, + "leisure/garden": {"icon": "maki-garden", "fields": ["name", "operator", "access_simple", "fee", "payment_multi_fee", "charge_fee"], "moreFields": ["email", "fax", "gnis/feature_id", "phone", "website"], "geometry": ["point", "vertex", "area"], "tags": {"leisure": "garden"}, "name": "Garden"}, + "leisure/golf_course": {"icon": "maki-golf", "fields": ["name", "operator", "address", "opening_hours"], "moreFields": ["email", "fax", "gnis/feature_id", "payment_multi", "phone", "website"], "geometry": ["point", "area"], "terms": ["links"], "tags": {"leisure": "golf_course"}, "name": "Golf Course"}, + "leisure/hackerspace": {"icon": "fas-code", "fields": ["name", "address", "building_area", "opening_hours", "website", "fee", "payment_multi_fee", "charge_fee", "internet_access", "internet_access/fee", "internet_access/ssid"], "moreFields": ["air_conditioning", "email", "fax", "gnis/feature_id", "level", "phone", "smoking", "wheelchair"], "geometry": ["point", "area"], "terms": ["makerspace", "hackspace", "hacklab"], "tags": {"leisure": "hackerspace"}, "name": "Hackerspace"}, + "leisure/horse_riding": {"icon": "maki-horse-riding", "fields": ["name", "access_simple", "operator", "address", "building"], "moreFields": ["email", "fax", "gnis/feature_id", "opening_hours", "payment_multi", "phone", "website"], "geometry": ["point", "area"], "terms": ["equestrian", "stable"], "tags": {"leisure": "horse_riding"}, "name": "Horseback Riding Facility"}, + "leisure/ice_rink": {"icon": "fas-skating", "fields": ["name", "seasonal", "sport_ice", "operator", "address", "building"], "moreFields": ["email", "fax", "gnis/feature_id", "level", "opening_hours", "payment_multi", "phone", "website"], "geometry": ["point", "area"], "terms": ["hockey", "skating", "curling"], "tags": {"leisure": "ice_rink"}, "name": "Ice Rink"}, + "leisure/marina": {"icon": "tnp-2009223", "fields": ["name", "operator", "capacity", "fee", "payment_multi_fee", "charge_fee", "sanitary_dump_station", "power_supply"], "moreFields": ["address", "email", "fax", "gnis/feature_id", "internet_access", "internet_access/fee", "internet_access/ssid", "phone", "seamark/type", "website"], "geometry": ["point", "vertex", "area"], "terms": ["boat"], "tags": {"leisure": "marina"}, "name": "Marina"}, + "leisure/miniature_golf": {"icon": "maki-golf", "fields": ["name", "operator", "address", "opening_hours", "fee", "payment_multi_fee", "charge_fee"], "moreFields": ["email", "fax", "gnis/feature_id", "phone", "website"], "geometry": ["point", "area"], "terms": ["crazy golf", "mini golf", "putt-putt"], "tags": {"leisure": "miniature_golf"}, "name": "Miniature Golf"}, + "leisure/nature_reserve": {"icon": "maki-park", "geometry": ["point", "area"], "fields": ["name", "operator", "address", "opening_hours"], "moreFields": ["dog", "email", "fax", "gnis/feature_id", "phone", "website"], "tags": {"leisure": "nature_reserve"}, "terms": ["protected", "wildlife"], "name": "Nature Reserve"}, "leisure/outdoor_seating": {"icon": "maki-picnic-site", "geometry": ["point", "area"], "fields": ["name", "operator"], "moreFields": ["level"], "terms": ["al fresco", "beer garden", "dining", "cafe", "restaurant", "pub", "bar", "patio"], "tags": {"leisure": "outdoor_seating"}, "name": "Outdoor Seating Area"}, - "leisure/park": {"icon": "maki-park", "fields": ["name", "operator", "address", "opening_hours"], "moreFields": ["dog", "email", "fax", "phone", "smoking", "website"], "geometry": ["point", "area"], "terms": ["esplanade", "estate", "forest", "garden", "grass", "green", "grounds", "lawn", "lot", "meadow", "parkland", "place", "playground", "plaza", "pleasure garden", "recreation area", "square", "tract", "village green", "woodland"], "tags": {"leisure": "park"}, "name": "Park"}, + "leisure/park": {"icon": "maki-park", "fields": ["name", "operator", "address", "opening_hours"], "moreFields": ["dog", "email", "fax", "gnis/feature_id", "phone", "smoking", "website"], "geometry": ["point", "area"], "terms": ["esplanade", "estate", "forest", "garden", "grass", "green", "grounds", "lawn", "lot", "meadow", "parkland", "place", "playground", "plaza", "pleasure garden", "recreation area", "square", "tract", "village green", "woodland"], "tags": {"leisure": "park"}, "name": "Park"}, "leisure/picnic_table": {"icon": "maki-picnic-site", "fields": ["material", "lit", "bench"], "moreFields": ["level"], "geometry": ["point"], "tags": {"leisure": "picnic_table"}, "terms": ["bench"], "name": "Picnic Table"}, "leisure/picnic_table/chess": {"icon": "fas-chess-pawn", "geometry": ["point"], "tags": {"leisure": "picnic_table", "sport": "chess"}, "reference": {"key": "sport", "value": "chess"}, "terms": ["bench", "chess board", "checkerboard", "checkers", "chequerboard", "game table"], "name": "Chess Table"}, - "leisure/pitch": {"icon": "maki-pitch", "fields": ["name", "sport", "access_simple", "surface", "lit"], "moreFields": ["charge_fee", "covered", "fee", "indoor", "payment_multi_fee"], "geometry": ["point", "area"], "tags": {"leisure": "pitch"}, "terms": ["field"], "name": "Sport Pitch"}, + "leisure/pitch": {"icon": "maki-pitch", "fields": ["name", "sport", "access_simple", "surface", "lit"], "moreFields": ["charge_fee", "covered", "fee", "gnis/feature_id", "indoor", "payment_multi_fee"], "geometry": ["point", "area"], "tags": {"leisure": "pitch"}, "terms": ["field"], "name": "Sport Pitch"}, "leisure/pitch/american_football": {"icon": "maki-american-football", "geometry": ["point", "area"], "tags": {"leisure": "pitch", "sport": "american_football"}, "reference": {"key": "sport", "value": "american_football"}, "terms": ["football", "gridiron"], "name": "American Football Field"}, "leisure/pitch/australian_football": {"icon": "maki-american-football", "geometry": ["point", "area"], "tags": {"leisure": "pitch", "sport": "australian_football"}, "reference": {"key": "sport", "value": "australian_football"}, "terms": ["Aussie", "AFL", "football"], "name": "Australian Football Field"}, "leisure/pitch/badminton": {"icon": "maki-tennis", "fields": ["{leisure/pitch}", "access_simple"], "geometry": ["point", "area"], "tags": {"leisure": "pitch", "sport": "badminton"}, "reference": {"key": "sport", "value": "badminton"}, "terms": [], "name": "Badminton Court"}, @@ -694,33 +694,33 @@ "leisure/pitch/table_tennis": {"icon": "maki-tennis", "fields": ["name", "lit", "access_simple"], "geometry": ["point", "area"], "tags": {"leisure": "pitch", "sport": "table_tennis"}, "reference": {"key": "sport", "value": "table_tennis"}, "terms": ["table tennis", "ping pong"], "name": "Ping Pong Table"}, "leisure/pitch/tennis": {"icon": "maki-tennis", "fields": ["{leisure/pitch}", "access_simple"], "geometry": ["point", "area"], "tags": {"leisure": "pitch", "sport": "tennis"}, "reference": {"key": "sport", "value": "tennis"}, "terms": [], "name": "Tennis Court"}, "leisure/pitch/volleyball": {"icon": "maki-volleyball", "geometry": ["point", "area"], "tags": {"leisure": "pitch", "sport": "volleyball"}, "reference": {"key": "sport", "value": "volleyball"}, "terms": [], "name": "Volleyball Court"}, - "leisure/playground": {"icon": "maki-playground", "fields": ["name", "operator", "playground/theme", "surface", "access_simple", "min_age", "max_age"], "moreFields": ["blind", "dog", "wheelchair"], "geometry": ["point", "area"], "terms": ["jungle gym", "play area"], "tags": {"leisure": "playground"}, "name": "Playground"}, - "leisure/resort": {"icon": "maki-lodging", "fields": ["name", "operator", "resort", "address", "opening_hours"], "moreFields": ["access_simple", "email", "fax", "internet_access", "internet_access/fee", "internet_access/ssid", "payment_multi", "phone", "website"], "geometry": ["point", "area"], "tags": {"leisure": "resort"}, "terms": ["recreation center", "sanatorium", "ski and snowboard resort", "vacation resort", "winter sports resort"], "name": "Resort"}, - "leisure/sauna": {"icon": "fas-thermometer-three-quarters", "fields": ["name", "operator", "address", "opening_hours", "access_simple", "fee", "payment_multi_fee", "charge_fee"], "moreFields": ["email", "fax", "level", "phone", "website"], "geometry": ["point", "area"], "tags": {"leisure": "sauna"}, "name": "Sauna"}, + "leisure/playground": {"icon": "maki-playground", "fields": ["name", "operator", "playground/theme", "surface", "access_simple", "min_age", "max_age"], "moreFields": ["blind", "dog", "gnis/feature_id", "wheelchair"], "geometry": ["point", "area"], "terms": ["jungle gym", "play area"], "tags": {"leisure": "playground"}, "name": "Playground"}, + "leisure/resort": {"icon": "maki-lodging", "fields": ["name", "operator", "resort", "address", "opening_hours"], "moreFields": ["access_simple", "email", "fax", "gnis/feature_id", "internet_access", "internet_access/fee", "internet_access/ssid", "payment_multi", "phone", "website"], "geometry": ["point", "area"], "tags": {"leisure": "resort"}, "terms": ["recreation center", "sanatorium", "ski and snowboard resort", "vacation resort", "winter sports resort"], "name": "Resort"}, + "leisure/sauna": {"icon": "fas-thermometer-three-quarters", "fields": ["name", "operator", "address", "opening_hours", "access_simple", "fee", "payment_multi_fee", "charge_fee"], "moreFields": ["email", "fax", "gnis/feature_id", "level", "phone", "website"], "geometry": ["point", "area"], "tags": {"leisure": "sauna"}, "name": "Sauna"}, "leisure/slipway_point": {"icon": "maki-slipway", "fields": ["{leisure/slipway}"], "moreFields": ["{leisure/slipway}"], "geometry": ["point", "vertex"], "terms": ["boat launch", "boat ramp", "boat landing"], "tags": {"leisure": "slipway"}, "name": "Slipway"}, "leisure/slipway": {"icon": "maki-slipway", "fields": ["name", "surface", "access_simple", "fee", "payment_multi_fee", "charge_fee", "lanes"], "moreFields": ["lit", "opening_hours", "seamark/type", "width"], "geometry": ["line"], "terms": ["boat launch", "boat ramp", "boat landing"], "tags": {"leisure": "slipway"}, "addTags": {"leisure": "slipway", "highway": "service", "service": "slipway"}, "matchScore": 1.1, "name": "Slipway"}, - "leisure/sports_centre": {"icon": "maki-pitch", "fields": ["name", "sport", "building", "address", "fee", "payment_multi_fee", "charge_fee"], "moreFields": ["email", "fax", "opening_hours", "phone", "website"], "geometry": ["point", "area"], "tags": {"leisure": "sports_centre"}, "terms": [], "name": "Sports Center / Complex"}, + "leisure/sports_centre": {"icon": "maki-pitch", "fields": ["name", "sport", "building", "address", "fee", "payment_multi_fee", "charge_fee"], "moreFields": ["email", "fax", "gnis/feature_id", "opening_hours", "phone", "website"], "geometry": ["point", "area"], "tags": {"leisure": "sports_centre"}, "terms": [], "name": "Sports Center / Complex"}, "leisure/sports_centre/climbing": {"icon": "temaki-abseiling", "geometry": ["point", "area"], "terms": ["abseiling", "artificial climbing wall", "belaying", "bouldering", "rock climbing facility", "indoor rock wall", "rappeling", "rock gym", "ropes"], "tags": {"leisure": "sports_centre", "sport": "climbing"}, "reference": {"key": "sport", "value": "climbing"}, "name": "Climbing Gym"}, "leisure/sports_centre/swimming": {"icon": "fas-swimmer", "geometry": ["point", "area"], "terms": ["dive", "water"], "tags": {"leisure": "sports_centre", "sport": "swimming"}, "reference": {"key": "sport", "value": "swimming"}, "name": "Swimming Pool Facility"}, - "leisure/stadium": {"icon": "maki-pitch", "fields": ["name", "sport", "address"], "moreFields": ["email", "fax", "phone", "website"], "geometry": ["point", "area"], "tags": {"leisure": "stadium"}, "name": "Stadium"}, + "leisure/stadium": {"icon": "maki-pitch", "fields": ["name", "sport", "address"], "moreFields": ["email", "fax", "gnis/feature_id", "phone", "website"], "geometry": ["point", "area"], "tags": {"leisure": "stadium"}, "name": "Stadium"}, "leisure/swimming_area": {"icon": "fas-swimmer", "fields": ["name", "access_simple", "supervised", "fee", "payment_multi_fee", "charge_fee", "lit"], "moreFields": ["opening_hours", "operator"], "geometry": ["area"], "terms": ["dive", "water", "aquatics"], "tags": {"leisure": "swimming_area"}, "name": "Natural Swimming Area"}, - "leisure/swimming_pool": {"icon": "fas-swimming-pool", "fields": ["name", "access_simple", "lit", "location_pool", "length", "swimming_pool"], "moreFields": ["address", "level", "opening_hours", "operator"], "geometry": ["point", "area"], "terms": ["dive", "water", "aquatics"], "tags": {"leisure": "swimming_pool"}, "name": "Swimming Pool"}, - "leisure/track": {"icon": "iD-other-line", "fields": ["surface", "sport_racing_nonmotor", "lit", "width", "lanes"], "moreFields": ["access", "covered", "indoor", "level"], "geometry": ["point", "line", "area"], "tags": {"leisure": "track"}, "terms": ["cycle", "dog", "greyhound", "horse", "race*", "track"], "name": "Racetrack (Non-Motorsport)"}, + "leisure/swimming_pool": {"icon": "fas-swimming-pool", "fields": ["name", "access_simple", "lit", "location_pool", "length", "swimming_pool"], "moreFields": ["address", "level", "gnis/feature_id", "opening_hours", "operator"], "geometry": ["point", "area"], "terms": ["dive", "water", "aquatics"], "tags": {"leisure": "swimming_pool"}, "name": "Swimming Pool"}, + "leisure/track": {"icon": "iD-other-line", "fields": ["surface", "sport_racing_nonmotor", "lit", "width", "lanes"], "moreFields": ["access", "covered", "gnis/feature_id", "indoor", "level"], "geometry": ["point", "line", "area"], "tags": {"leisure": "track"}, "terms": ["cycle", "dog", "greyhound", "horse", "race*", "track"], "name": "Racetrack (Non-Motorsport)"}, "leisure/track/cycling_point": {"icon": "fas-biking", "fields": ["{leisure/track/cycling}"], "geometry": ["point"], "tags": {"leisure": "track", "sport": "cycling"}, "terms": ["bicycle track", "bicycling track", "cycle racetrack", "velodrome"], "name": "Cycling Track"}, "leisure/track/cycling": {"icon": "fas-biking", "fields": ["name", "surface", "sport_racing_nonmotor", "lit", "width", "lanes"], "geometry": ["line", "area"], "tags": {"leisure": "track", "sport": "cycling"}, "terms": ["bicycle track", "bicycling track", "cycle racetrack", "velodrome"], "name": "Cycling Track"}, "leisure/track/horse_racing_point": {"icon": "maki-horse-riding", "fields": ["{leisure/track/horse_racing}"], "geometry": ["point"], "tags": {"leisure": "track", "sport": "horse_racing"}, "terms": ["equestrian race track", "horse race betting", "horseracing", "horsetrack", "horse racetrack"], "name": "Horse Racing Track"}, "leisure/track/horse_racing": {"icon": "maki-horse-riding", "fields": ["name", "surface", "sport_racing_nonmotor", "lit", "width", "lanes"], "geometry": ["line", "area"], "tags": {"leisure": "track", "sport": "horse_racing"}, "terms": ["equestrian race track", "horse race betting", "horseracing", "horsetrack", "horse racetrack"], "name": "Horse Racing Track"}, "leisure/track/running_point": {"icon": "maki-pitch", "fields": ["{leisure/track/running}"], "geometry": ["point"], "tags": {"leisure": "track", "sport": "running"}, "terms": ["athletics track", "decathlon", "foot race", "long distance running", "marathon", "middle distance running", "racetrack", "running", "sprint", "track", "walking"], "name": "Running Track"}, "leisure/track/running": {"icon": "maki-pitch", "fields": ["name", "surface", "sport_racing_nonmotor", "lit", "width", "lanes"], "geometry": ["line", "area"], "tags": {"leisure": "track", "sport": "running"}, "terms": ["athletics track", "decathlon", "foot race", "long distance running", "marathon", "middle distance running", "racetrack", "running", "sprint", "track", "walking"], "name": "Running Track"}, - "leisure/water_park": {"icon": "fas-swimmer", "fields": ["name", "operator", "address"], "moreFields": ["brand", "email", "fax", "payment_multi", "phone", "website"], "geometry": ["point", "area"], "terms": ["swim", "pool", "dive"], "tags": {"leisure": "water_park"}, "name": "Water Park"}, + "leisure/water_park": {"icon": "fas-swimmer", "fields": ["name", "operator", "address"], "moreFields": ["brand", "email", "fax", "gnis/feature_id", "payment_multi", "phone", "website"], "geometry": ["point", "area"], "terms": ["swim", "pool", "dive"], "tags": {"leisure": "water_park"}, "name": "Water Park"}, "line": {"fields": ["name"], "geometry": ["line"], "tags": {}, "terms": ["polyline"], "name": "Line", "matchScore": 0.1}, - "man_made/adit": {"icon": "maki-triangle", "geometry": ["point", "area"], "fields": ["name", "operator", "resource", "direction"], "terms": ["cave", "horizontal mine entrance", "tunnel", "underground"], "tags": {"man_made": "adit"}, "name": "Adit"}, + "man_made/adit": {"icon": "maki-triangle", "geometry": ["point", "area"], "fields": ["name", "operator", "resource", "direction"], "moreFields": ["gnis/feature_id"], "terms": ["cave", "horizontal mine entrance", "tunnel", "underground"], "tags": {"man_made": "adit"}, "name": "Adit"}, "man_made/antenna": {"icon": "temaki-antenna", "fields": ["communication_multi", "operator", "manufacturer", "height"], "geometry": ["point"], "terms": ["broadcast", "cell phone", "cell", "communication", "mobile phone", "radio", "television", "transmission", "tv"], "tags": {"man_made": "antenna"}, "name": "Antenna"}, "man_made/beacon": {"icon": "maki-communications-tower", "fields": ["name", "height"], "moreFields": ["seamark/type"], "geometry": ["point", "area"], "tags": {"man_made": "beacon"}, "name": "Beacon", "matchScore": 0.5}, "man_made/beehive": {"icon": "fas-archive", "geometry": ["point", "area"], "fields": ["ref", "operator", "seasonal", "height", "colour"], "moreFields": ["manufacturer"], "terms": ["apiary", "beekeeper", "farm", "honey", "pollination"], "tags": {"man_made": "beehive"}, "name": "Beehive"}, "man_made/breakwater": {"fields": ["material", "seamark/type"], "geometry": ["line", "area"], "tags": {"man_made": "breakwater"}, "name": "Breakwater"}, - "man_made/bridge": {"icon": "maki-bridge", "fields": ["name", "bridge", "layer", "maxweight"], "moreFields": ["manufacturer", "material", "seamark/type"], "geometry": ["area"], "tags": {"man_made": "bridge"}, "addTags": {"man_made": "bridge", "layer": "1"}, "removeTags": {"man_made": "bridge", "layer": "*"}, "reference": {"key": "man_made", "value": "bridge"}, "name": "Bridge Area", "matchScore": 0.85}, - "man_made/bunker_silo": {"icon": "temaki-silo", "fields": ["content"], "geometry": ["point", "area"], "terms": ["Silage", "Storage"], "tags": {"man_made": "bunker_silo"}, "name": "Bunker Silo"}, + "man_made/bridge": {"icon": "maki-bridge", "fields": ["name", "bridge", "layer", "maxweight"], "moreFields": ["gnis/feature_id", "manufacturer", "material", "seamark/type"], "geometry": ["area"], "tags": {"man_made": "bridge"}, "addTags": {"man_made": "bridge", "layer": "1"}, "removeTags": {"man_made": "bridge", "layer": "*"}, "reference": {"key": "man_made", "value": "bridge"}, "name": "Bridge Area", "matchScore": 0.85}, + "man_made/bunker_silo": {"icon": "temaki-silo", "fields": ["content"], "moreFields": ["gnis/feature_id"], "geometry": ["point", "area"], "terms": ["Silage", "Storage"], "tags": {"man_made": "bunker_silo"}, "name": "Bunker Silo"}, "man_made/cairn": {"icon": "temaki-cairn", "geometry": ["point", "area"], "terms": ["rock pile", "stone stack", "stone pile", "càrn"], "tags": {"man_made": "cairn"}, "name": "Cairn"}, "man_made/chimney": {"icon": "temaki-chimney", "fields": ["operator", "material", "height"], "geometry": ["point", "area"], "tags": {"man_made": "chimney"}, "name": "Chimney"}, "man_made/clearcut": {"icon": "maki-logging", "geometry": ["area"], "tags": {"man_made": "clearcut"}, "terms": ["cut", "forest", "lumber", "tree", "wood"], "name": "Clearcut Forest"}, @@ -732,7 +732,7 @@ "man_made/flagpole": {"icon": "maki-embassy", "fields": ["operator", "flag/type", "country", "lit", "height"], "moreFields": ["manufacturer", "material"], "geometry": ["point", "vertex"], "tags": {"man_made": "flagpole"}, "name": "Flagpole"}, "man_made/gasometer": {"icon": "temaki-storage_tank", "fields": ["content", "building_area"], "geometry": ["point", "area"], "terms": ["gas holder"], "tags": {"man_made": "gasometer"}, "name": "Gasometer"}, "man_made/groyne": {"fields": ["material", "seamark/type"], "geometry": ["line", "area"], "tags": {"man_made": "groyne"}, "name": "Groyne"}, - "man_made/lighthouse": {"icon": "maki-lighthouse", "fields": ["name", "operator", "building_area", "height"], "moreFields": ["address", "email", "fax", "phone", "seamark/type", "website"], "geometry": ["point", "area"], "tags": {"man_made": "lighthouse"}, "addTags": {"man_made": "lighthouse", "seamark:type": "light_major"}, "removeTags": {"man_made": "lighthouse", "seamark:type": "*"}, "name": "Lighthouse"}, + "man_made/lighthouse": {"icon": "maki-lighthouse", "fields": ["name", "operator", "building_area", "height"], "moreFields": ["address", "email", "fax", "gnis/feature_id", "phone", "seamark/type", "website"], "geometry": ["point", "area"], "tags": {"man_made": "lighthouse"}, "addTags": {"man_made": "lighthouse", "seamark:type": "light_major"}, "removeTags": {"man_made": "lighthouse", "seamark:type": "*"}, "name": "Lighthouse"}, "man_made/manhole": {"icon": "temaki-manhole", "fields": ["manhole", "operator", "label", "ref"], "geometry": ["point", "vertex"], "tags": {"manhole": "*"}, "addTags": {"man_made": "manhole", "manhole": "*"}, "terms": ["cover", "hole", "sewer", "sewage", "telecom"], "name": "Manhole"}, "man_made/manhole/drain": {"icon": "temaki-manhole", "fields": ["operator", "ref"], "geometry": ["point", "vertex"], "tags": {"manhole": "drain"}, "addTags": {"man_made": "manhole", "manhole": "drain"}, "terms": ["cover", "drain", "hole", "rain", "sewer", "sewage", "storm"], "name": "Storm Drain"}, "man_made/manhole/gas": {"icon": "temaki-gas_manhole", "fields": ["operator", "ref"], "geometry": ["point", "vertex"], "tags": {"manhole": "gas"}, "addTags": {"man_made": "manhole", "manhole": "gas"}, "terms": ["cover", "gas", "heat", "hole", "utility"], "name": "Gas Utility Manhole"}, @@ -740,23 +740,23 @@ "man_made/manhole/sewer": {"icon": "temaki-waste_manhole", "fields": ["operator", "ref"], "geometry": ["point", "vertex"], "tags": {"manhole": "sewer"}, "addTags": {"man_made": "manhole", "manhole": "sewer"}, "terms": ["cover", "drain", "hole", "sewer", "sewage", "utility"], "name": "Sewer Utility Manhole"}, "man_made/manhole/telecom": {"icon": "temaki-cable_manhole", "fields": ["operator", "ref"], "geometry": ["point", "vertex"], "tags": {"manhole": "telecom"}, "addTags": {"man_made": "manhole", "manhole": "telecom"}, "terms": ["bt", "cable", "cover", "phone", "hole", "telecom", "telephone", "utility"], "name": "Telecom Utility Manhole"}, "man_made/manhole/water": {"icon": "temaki-waste_manhole", "fields": ["operator", "ref"], "geometry": ["point", "vertex"], "tags": {"manhole": "water"}, "addTags": {"man_made": "manhole", "manhole": "water"}, "terms": ["cover", "drinking", "hole", "utility", "water"], "name": "Water Utility Manhole"}, - "man_made/mast": {"icon": "temaki-mast", "fields": ["tower/type", "tower/construction", "height"], "moreFields": ["communication_multi", "manufacturer", "material"], "geometry": ["point"], "terms": ["antenna", "broadcast tower", "cell phone tower", "cell tower", "communication mast", "communication tower", "guyed tower", "mobile phone tower", "radio mast", "radio tower", "television tower", "transmission mast", "transmission tower", "tv tower"], "tags": {"man_made": "mast"}, "name": "Mast"}, + "man_made/mast": {"icon": "temaki-mast", "fields": ["tower/type", "tower/construction", "height"], "moreFields": ["communication_multi", "gnis/feature_id", "manufacturer", "material"], "geometry": ["point"], "terms": ["antenna", "broadcast tower", "cell phone tower", "cell tower", "communication mast", "communication tower", "guyed tower", "mobile phone tower", "radio mast", "radio tower", "television tower", "transmission mast", "transmission tower", "tv tower"], "tags": {"man_made": "mast"}, "name": "Mast"}, "man_made/mast/communication": {"icon": "temaki-mast_communication", "fields": ["{man_made/mast}", "communication_multi"], "geometry": ["point"], "terms": ["antenna", "broadcast tower", "cell phone tower", "cell tower", "communication mast", "communication tower", "guyed tower", "mobile phone tower", "radio mast", "radio tower", "television tower", "transmission mast", "transmission tower", "tv tower"], "tags": {"man_made": "mast", "tower:type": "communication"}, "reference": {"key": "tower:type", "value": "communication"}, "name": "Communication Mast"}, "man_made/mast/communication/mobile_phone": {"icon": "temaki-mast_communication", "geometry": ["point"], "terms": ["antenna", "cell mast", "cell phone mast", "cell phone tower", "cell tower", "communication mast", "communication tower", "guyed tower", "mobile phone tower", "transmission mast", "transmission tower"], "tags": {"man_made": "mast", "tower:type": "communication", "communication:mobile_phone": "yes"}, "reference": {"key": "communication:mobile_phone", "value": "yes"}, "name": "Mobile Phone Mast"}, "man_made/mast/communication/radio": {"icon": "temaki-mast_communication", "geometry": ["point"], "terms": ["antenna", "broadcast tower", "communication mast", "communication tower", "guyed tower", "radio mast", "radio tower", "transmission mast", "transmission tower"], "tags": {"man_made": "mast", "tower:type": "communication", "communication:radio": "yes"}, "reference": {"key": "communication:radio", "value": "yes"}, "name": "Radio Broadcast Mast"}, "man_made/mast/communication/television": {"icon": "temaki-mast_communication", "geometry": ["point"], "terms": ["antenna", "broadcast tower", "communication mast", "communication tower", "guyed tower", "television mast", "television tower", "transmission mast", "transmission tower", "tv mast", "tv tower"], "tags": {"man_made": "mast", "tower:type": "communication", "communication:television": "yes"}, "reference": {"key": "communication:television", "value": "yes"}, "name": "Television Broadcast Mast"}, - "man_made/mineshaft": {"icon": "maki-triangle", "geometry": ["point", "area"], "fields": ["name", "operator", "resource"], "terms": ["cave", "mine shaft", "tunnel", "underground", "vertical mine entrance"], "tags": {"man_made": "mineshaft"}, "name": "Mineshaft"}, + "man_made/mineshaft": {"icon": "maki-triangle", "geometry": ["point", "area"], "fields": ["name", "operator", "resource"], "moreFields": ["gnis/feature_id"], "terms": ["cave", "mine shaft", "tunnel", "underground", "vertical mine entrance"], "tags": {"man_made": "mineshaft"}, "name": "Mineshaft"}, "man_made/monitoring_station": {"icon": "temaki-antenna", "geometry": ["point", "vertex", "area"], "fields": ["monitoring_multi", "operator", "manufacturer"], "terms": ["weather", "earthquake", "seismology", "air", "gps"], "tags": {"man_made": "monitoring_station"}, "name": "Monitoring Station"}, "man_made/obelisk": {"icon": "maki-monument", "fields": ["name", "inscription", "height", "material", "colour"], "geometry": ["point", "vertex", "area"], "tags": {"man_made": "obelisk"}, "name": "Obelisk"}, - "man_made/observatory": {"fields": ["name", "operator", "address", "access_simple", "building_area"], "moreFields": ["email", "fax", "phone", "website"], "geometry": ["point", "area"], "terms": ["astronomical", "meteorological"], "tags": {"man_made": "observatory"}, "name": "Observatory"}, - "man_made/petroleum_well": {"icon": "temaki-oil_well", "geometry": ["point"], "terms": ["drilling rig", "oil derrick", "oil drill", "oil horse", "oil rig", "oil pump", "petroleum well", "pumpjack"], "tags": {"man_made": "petroleum_well"}, "name": "Oil Well"}, - "man_made/pier": {"icon": "temaki-pier_fixed", "fields": ["name", "surface", "floating", "width", "access", "lit"], "moreFields": ["{highway/footway}", "access", "fishing", "incline"], "geometry": ["line", "area"], "terms": ["berth", "dock", "jetty", "landing", "promenade", "wharf"], "tags": {"man_made": "pier"}, "name": "Pier"}, + "man_made/observatory": {"fields": ["name", "operator", "address", "access_simple", "building_area"], "moreFields": ["email", "fax", "gnis/feature_id", "phone", "website"], "geometry": ["point", "area"], "terms": ["astronomical", "meteorological"], "tags": {"man_made": "observatory"}, "name": "Observatory"}, + "man_made/petroleum_well": {"icon": "temaki-oil_well", "moreFields": ["gnis/feature_id"], "geometry": ["point"], "terms": ["drilling rig", "oil derrick", "oil drill", "oil horse", "oil rig", "oil pump", "petroleum well", "pumpjack"], "tags": {"man_made": "petroleum_well"}, "name": "Oil Well"}, + "man_made/pier": {"icon": "temaki-pier_fixed", "fields": ["name", "surface", "floating", "width", "access", "lit"], "moreFields": ["{highway/footway}", "access", "fishing", "gnis/feature_id", "incline"], "geometry": ["line", "area"], "terms": ["berth", "dock", "jetty", "landing", "promenade", "wharf"], "tags": {"man_made": "pier"}, "name": "Pier"}, "man_made/pier/floating": {"icon": "temaki-pier_floating", "geometry": ["line", "area"], "terms": ["berth", "dock", "jetty", "landing", "promenade", "wharf"], "tags": {"man_made": "pier", "floating": "yes"}, "name": "Floating Pier"}, "man_made/pipeline": {"icon": "iD-pipeline-line", "fields": ["operator", "location", "substance", "layer", "diameter"], "geometry": ["line"], "terms": ["oil", "natural gas", "water", "sewer", "sewage"], "tags": {"man_made": "pipeline"}, "name": "Pipeline"}, "man_made/pipeline/underground": {"icon": "iD-pipeline-line", "geometry": ["line"], "terms": ["oil", "natural gas", "water", "sewer", "sewage"], "tags": {"man_made": "pipeline", "location": "underground"}, "addTags": {"man_made": "pipeline", "location": "underground", "layer": "-1"}, "name": "Underground Pipeline"}, "man_made/pipeline/valve": {"icon": "temaki-wheel", "geometry": ["vertex"], "fields": ["ref", "operator", "valve", "location", "diameter"], "moreFields": ["colour", "manufacturer", "material"], "terms": ["oil", "natural gas", "water", "sewer", "sewage"], "tags": {"pipeline": "valve"}, "name": "Pipeline Valve"}, - "man_made/pumping_station": {"icon": "maki-water", "geometry": ["point", "area"], "tags": {"man_made": "pumping_station"}, "name": "Pumping Station"}, - "man_made/silo": {"icon": "temaki-silo", "fields": ["crop", "building_area"], "geometry": ["point", "area"], "terms": ["grain", "corn", "wheat"], "tags": {"man_made": "silo"}, "name": "Silo"}, + "man_made/pumping_station": {"icon": "maki-water", "geometry": ["point", "area"], "moreFields": ["gnis/feature_id"], "tags": {"man_made": "pumping_station"}, "name": "Pumping Station"}, + "man_made/silo": {"icon": "temaki-silo", "fields": ["crop", "building_area"], "moreFields": ["gnis/feature_id"], "geometry": ["point", "area"], "terms": ["grain", "corn", "wheat"], "tags": {"man_made": "silo"}, "name": "Silo"}, "man_made/storage_tank": {"icon": "temaki-storage_tank", "fields": ["content", "operator", "material", "building_area", "height", "capacity"], "moreFields": ["layer", "location", "manufacturer"], "geometry": ["point", "area"], "terms": ["water", "oil", "gas", "petrol"], "tags": {"man_made": "storage_tank"}, "name": "Storage Tank"}, "man_made/storage_tank/water": {"icon": "temaki-storage_tank", "geometry": ["point", "area"], "terms": ["cistern", "water tower"], "tags": {"man_made": "storage_tank", "content": "water"}, "name": "Water Tank"}, "man_made/street_cabinet": {"icon": "fas-door-closed", "geometry": ["point", "area"], "fields": ["ref", "operator", "street_cabinet", "utility_semi", "height", "colour"], "terms": ["cable tv", "monitoring box", "technical box", "telecommunications", "traffic signal controls"], "tags": {"man_made": "street_cabinet"}, "name": "Street Cabinet"}, @@ -764,29 +764,29 @@ "man_made/surveillance/camera": {"icon": "temaki-security_camera", "geometry": ["point", "vertex"], "fields": ["surveillance", "surveillance/type", "camera/type", "camera/mount", "camera/direction", "surveillance/zone", "contact/webcam"], "moreFields": ["manufacturer"], "terms": ["anpr", "alpr", "camera", "car plate recognition", "cctv", "guard", "license plate recognition", "monitoring", "number plate recognition", "security", "video", "webcam"], "tags": {"man_made": "surveillance", "surveillance:type": "camera"}, "name": "Surveillance Camera"}, "man_made/survey_point": {"icon": "maki-monument", "fields": ["ref"], "geometry": ["point", "vertex"], "terms": ["trig point", "triangulation pillar", "trigonometrical station"], "tags": {"man_made": "survey_point"}, "name": "Survey Point"}, "man_made/torii": {"icon": "temaki-shinto", "fields": ["height", "material", "colour", "lit"], "moreFields": ["name", "operator", "ref"], "geometry": ["point", "vertex", "line"], "terms": ["Japanese gate", "Shinto shrine"], "tags": {"man_made": "torii"}, "name": "Torii"}, - "man_made/tower": {"icon": "temaki-tower", "fields": ["tower/type", "tower/construction", "height", "building_area"], "moreFields": ["architect"], "geometry": ["point", "area"], "tags": {"man_made": "tower"}, "name": "Tower"}, + "man_made/tower": {"icon": "temaki-tower", "fields": ["tower/type", "tower/construction", "height", "building_area"], "moreFields": ["architect", "gnis/feature_id"], "geometry": ["point", "area"], "tags": {"man_made": "tower"}, "name": "Tower"}, "man_made/tower/bell_tower": {"icon": "fas-bell", "moreFields": ["{man_made/tower}", "opening_hours"], "geometry": ["point", "area"], "terms": ["belfry", "bell gable", "campanile", "church tower", "klockstapel"], "tags": {"man_made": "tower", "tower:type": "bell_tower"}, "reference": {"key": "tower:type", "value": "bell_tower"}, "name": "Bell Tower"}, "man_made/tower/communication": {"icon": "temaki-tower_communication", "fields": ["{man_made/tower}", "communication_multi"], "geometry": ["point", "area"], "terms": ["antenna", "broadcast tower", "cell phone tower", "cell tower", "communication mast", "communication tower", "guyed tower", "mobile phone tower", "radio mast", "radio tower", "television tower", "transmission mast", "transmission tower", "tv tower"], "tags": {"man_made": "tower", "tower:type": "communication"}, "reference": {"key": "tower:type", "value": "communication"}, "name": "Communication Tower"}, "man_made/tower/defensive": {"icon": "maki-castle", "geometry": ["point", "area"], "tags": {"man_made": "tower", "tower:type": "defensive"}, "reference": {"key": "tower:type", "value": "defensive"}, "terms": ["Defensive Tower", "Castle Tower"], "name": "Fortified Tower"}, "man_made/tower/minaret": {"icon": "temaki-tower", "geometry": ["point", "area"], "terms": ["Islam", "mosque", "Muezzin", "Muslim"], "tags": {"man_made": "tower", "tower:type": "minaret"}, "reference": {"key": "tower:type", "value": "minaret"}, "name": "Minaret"}, "man_made/tower/observation": {"icon": "temaki-tower", "moreFields": ["{man_made/tower}", "opening_hours"], "geometry": ["point", "area"], "terms": ["lookout tower", "fire tower"], "tags": {"man_made": "tower", "tower:type": "observation"}, "reference": {"key": "tower:type", "value": "observation"}, "name": "Observation Tower"}, - "man_made/tunnel": {"icon": "tnp-2009642", "fields": ["name", "tunnel", "layer", "width", "length", "height"], "geometry": ["area"], "tags": {"man_made": "tunnel"}, "addTags": {"man_made": "tunnel", "layer": "-1"}, "removeTags": {"man_made": "tunnel", "layer": "*"}, "reference": {"key": "man_made", "value": "tunnel"}, "terms": ["bore", "dig", "shaft", "underground passage", "underpass"], "name": "Tunnel Area"}, + "man_made/tunnel": {"icon": "tnp-2009642", "fields": ["name", "tunnel", "layer", "width", "length", "height"], "moreFields": ["gnis/feature_id"], "geometry": ["area"], "tags": {"man_made": "tunnel"}, "addTags": {"man_made": "tunnel", "layer": "-1"}, "removeTags": {"man_made": "tunnel", "layer": "*"}, "reference": {"key": "man_made", "value": "tunnel"}, "terms": ["bore", "dig", "shaft", "underground passage", "underpass"], "name": "Tunnel Area"}, "man_made/utility_pole": {"icon": "temaki-utility_pole", "fields": ["ref", "operator", "utility_semi", "height", "material"], "moreFields": ["colour", "manufacturer"], "geometry": ["point", "vertex"], "tags": {"man_made": "utility_pole"}, "name": "Utility Pole"}, - "man_made/wastewater_plant": {"icon": "temaki-waste", "fields": ["name", "operator", "address"], "moreFields": ["email", "fax", "phone", "website"], "geometry": ["point", "area"], "terms": ["sewage*", "water treatment plant", "reclamation plant"], "tags": {"man_made": "wastewater_plant"}, "name": "Wastewater Plant"}, + "man_made/wastewater_plant": {"icon": "temaki-waste", "fields": ["name", "operator", "address"], "moreFields": ["email", "fax", "gnis/feature_id", "phone", "website"], "geometry": ["point", "area"], "terms": ["sewage*", "water treatment plant", "reclamation plant"], "tags": {"man_made": "wastewater_plant"}, "name": "Wastewater Plant"}, "man_made/water_tap": {"icon": "maki-drinking-water", "fields": ["ref", "operator", "drinking_water", "access_simple"], "geometry": ["point", "vertex"], "tags": {"man_made": "water_tap"}, "terms": ["drinking water", "water faucet", "water point", "water source", "water spigot"], "name": "Water Tap"}, - "man_made/water_tower": {"icon": "temaki-water_tower", "fields": ["operator", "height"], "geometry": ["point", "area"], "tags": {"man_made": "water_tower"}, "name": "Water Tower"}, - "man_made/water_well": {"icon": "maki-water", "fields": ["ref", "operator", "drinking_water", "pump", "access_simple"], "geometry": ["point", "area"], "tags": {"man_made": "water_well"}, "terms": ["aquifer", "drinking water", "water point", "water source"], "name": "Water Well"}, - "man_made/water_works": {"icon": "maki-water", "fields": ["name", "operator", "address"], "geometry": ["point", "area"], "tags": {"man_made": "water_works"}, "name": "Water Works"}, - "man_made/watermill": {"icon": "maki-watermill", "fields": ["building_area"], "geometry": ["point", "area"], "terms": ["water", "wheel", "mill"], "tags": {"man_made": "watermill"}, "name": "Watermill"}, - "man_made/windmill": {"icon": "maki-windmill", "fields": ["building_area"], "geometry": ["point", "area"], "terms": ["wind", "wheel", "mill"], "tags": {"man_made": "windmill"}, "name": "Windmill"}, - "man_made/works": {"icon": "maki-industry", "fields": ["name", "operator", "address", "building_area", "product"], "moreFields": ["email", "fax", "phone", "website"], "geometry": ["point", "area"], "terms": ["assembly", "build", "brewery", "car", "plant", "plastic", "processing", "manufacture", "refinery"], "tags": {"man_made": "works"}, "name": "Factory"}, + "man_made/water_tower": {"icon": "temaki-water_tower", "fields": ["operator", "height"], "moreFields": ["gnis/feature_id"], "geometry": ["point", "area"], "tags": {"man_made": "water_tower"}, "name": "Water Tower"}, + "man_made/water_well": {"icon": "maki-water", "fields": ["ref", "operator", "drinking_water", "pump", "access_simple"], "moreFields": ["gnis/feature_id"], "geometry": ["point", "area"], "tags": {"man_made": "water_well"}, "terms": ["aquifer", "drinking water", "water point", "water source"], "name": "Water Well"}, + "man_made/water_works": {"icon": "maki-water", "fields": ["name", "operator", "address"], "moreFields": ["gnis/feature_id"], "geometry": ["point", "area"], "tags": {"man_made": "water_works"}, "name": "Water Works"}, + "man_made/watermill": {"icon": "maki-watermill", "fields": ["building_area"], "moreFields": ["gnis/feature_id"], "geometry": ["point", "area"], "terms": ["water", "wheel", "mill"], "tags": {"man_made": "watermill"}, "name": "Watermill"}, + "man_made/windmill": {"icon": "maki-windmill", "fields": ["building_area"], "moreFields": ["gnis/feature_id"], "geometry": ["point", "area"], "terms": ["wind", "wheel", "mill"], "tags": {"man_made": "windmill"}, "name": "Windmill"}, + "man_made/works": {"icon": "maki-industry", "fields": ["name", "operator", "address", "building_area", "product"], "moreFields": ["email", "fax", "gnis/feature_id", "phone", "website"], "geometry": ["point", "area"], "terms": ["assembly", "build", "brewery", "car", "plant", "plastic", "processing", "manufacture", "refinery"], "tags": {"man_made": "works"}, "name": "Factory"}, "marker": {"icon": "temaki-silo", "fields": ["ref", "operator", "marker", "utility_semi", "inscription", "colour"], "moreFields": ["height", "location", "manufacturer", "material"], "geometry": ["point"], "terms": ["identifier", "marking", "plate", "pole", "post", "sign"], "tags": {"marker": "*"}, "name": "Marker"}, "marker/utility": {"icon": "temaki-silo", "fields": ["ref", "operator", "marker", "{marker}"], "geometry": ["point"], "terms": ["gas line marker", "identifier", "marking", "oil marker", "pipline marker", "plate", "pole", "post", "sign"], "tags": {"marker": "*", "utility": "*"}, "name": "Utility Marker"}, "marker/utility/power": {"icon": "temaki-silo", "fields": ["ref", "operator", "marker", "{marker}"], "geometry": ["point"], "terms": ["electric line", "identifier", "marking", "plate", "pole", "post", "power cable", "power line", "sign"], "tags": {"marker": "*", "utility": "power"}, "name": "Power Marker"}, - "military/bunker": {"icon": "temaki-military", "fields": ["name", "bunker_type", "building_area"], "geometry": ["point", "area"], "tags": {"military": "bunker"}, "addTags": {"building": "bunker", "military": "bunker"}, "terms": ["air force", "army", "base", "fight", "force", "guard", "marine", "navy", "troop", "war"], "name": "Military Bunker"}, + "military/bunker": {"icon": "temaki-military", "fields": ["name", "bunker_type", "building_area"], "moreFields": ["gnis/feature_id"], "geometry": ["point", "area"], "tags": {"military": "bunker"}, "addTags": {"building": "bunker", "military": "bunker"}, "terms": ["air force", "army", "base", "fight", "force", "guard", "marine", "navy", "troop", "war"], "name": "Military Bunker"}, "military/checkpoint": {"icon": "maki-barrier", "fields": ["name"], "geometry": ["point", "vertex", "area"], "tags": {"military": "checkpoint"}, "terms": ["air force", "army", "base", "force", "guard", "marine", "navy", "troop", "war"], "name": "Checkpoint"}, - "military/nuclear_explosion_site": {"icon": "maki-danger", "fields": ["name"], "geometry": ["point", "vertex", "area"], "tags": {"military": "nuclear_explosion_site"}, "terms": ["atom", "blast", "bomb", "detonat*", "nuke", "site", "test"], "name": "Nuclear Explosion Site"}, - "military/office": {"icon": "temaki-military", "fields": ["name", "building_area"], "moreFields": ["level"], "geometry": ["point", "area"], "tags": {"military": "office"}, "terms": ["air force", "army", "base", "enlist", "fight", "force", "guard", "marine", "navy", "recruit", "troop", "war"], "name": "Military Office"}, + "military/nuclear_explosion_site": {"icon": "maki-danger", "fields": ["name"], "moreFields": ["gnis/feature_id"], "geometry": ["point", "vertex", "area"], "tags": {"military": "nuclear_explosion_site"}, "terms": ["atom", "blast", "bomb", "detonat*", "nuke", "site", "test"], "name": "Nuclear Explosion Site"}, + "military/office": {"icon": "temaki-military", "fields": ["name", "building_area"], "moreFields": ["gnis/feature_id", "level"], "geometry": ["point", "area"], "tags": {"military": "office"}, "terms": ["air force", "army", "base", "enlist", "fight", "force", "guard", "marine", "navy", "recruit", "troop", "war"], "name": "Military Office"}, "military/trench": {"icon": "temaki-military", "fields": ["name", "trench"], "geometry": ["point", "line"], "tags": {"military": "trench"}, "terms": ["dugout", "firestep", "fox hole", "infantry trench", "war trench"], "name": "Military Trench"}, "natural/bare_rock": {"geometry": ["area"], "tags": {"natural": "bare_rock"}, "terms": ["rock"], "name": "Bare Rock"}, "natural/bay": {"icon": "temaki-beach", "geometry": ["point", "line", "area"], "fields": ["name"], "tags": {"natural": "bay"}, "terms": [], "name": "Bay"}, @@ -815,7 +815,7 @@ "natural/tree": {"icon": "maki-park", "fields": ["leaf_type_singular", "leaf_cycle_singular", "denotation", "diameter"], "moreFields": ["species/wikidata"], "geometry": ["point", "vertex"], "tags": {"natural": "tree"}, "terms": [], "name": "Tree"}, "natural/valley": {"icon": "maki-triangle-stroked", "fields": ["name", "elevation", "description"], "geometry": ["vertex", "point", "line"], "tags": {"natural": "valley"}, "terms": ["canyon", "dale", "dell", "dene", "depression", "glen", "gorge", "gully", "gulley", "gultch", "hollow", "ravine", "rift", "vale"], "name": "Valley"}, "natural/volcano": {"icon": "maki-volcano", "fields": ["name", "elevation", "volcano/status", "volcano/type"], "geometry": ["point", "vertex"], "tags": {"natural": "volcano"}, "terms": ["mountain", "crater"], "name": "Volcano"}, - "natural/water": {"icon": "maki-water", "fields": ["name", "water", "intermittent"], "moreFields": ["fishing", "salt", "tidal"], "geometry": ["area"], "tags": {"natural": "water"}, "name": "Water"}, + "natural/water": {"icon": "maki-water", "fields": ["name", "water", "intermittent"], "moreFields": ["fishing", "gnis/feature_id", "salt", "tidal"], "geometry": ["area"], "tags": {"natural": "water"}, "name": "Water"}, "natural/water/basin": {"icon": "maki-water", "fields": ["name", "basin", "intermittent_yes"], "geometry": ["area"], "tags": {"natural": "water", "water": "basin"}, "reference": {"key": "water", "value": "basin"}, "terms": ["detention", "drain", "overflow", "rain", "retention"], "name": "Basin"}, "natural/water/canal": {"icon": "iD-waterway-canal", "fields": ["{natural/water}", "salt"], "geometry": ["area"], "tags": {"natural": "water", "water": "canal"}, "reference": {"key": "water", "value": "canal"}, "name": "Canal Area"}, "natural/water/lake": {"icon": "maki-water", "fields": ["{natural/water}", "salt", "tidal"], "geometry": ["area"], "tags": {"natural": "water", "water": "lake"}, "reference": {"key": "water", "value": "lake"}, "terms": ["lakelet", "loch", "mere"], "name": "Lake"}, @@ -829,7 +829,7 @@ "natural/wood": {"icon": "maki-park-alt1", "fields": ["name", "leaf_type", "leaf_cycle"], "geometry": ["point", "area"], "tags": {"natural": "wood"}, "terms": ["tree"], "name": "Wood"}, "network/type/node_network": {"fields": ["name", "rwn_ref", "rcn_ref"], "geometry": ["vertex"], "tags": {"network:type": "node_network"}, "terms": ["node network", "rcn", "rwn"], "countryCodes": ["be", "de", "lu", "nl"], "matchScore": 0.2, "name": "Recreational Network Node"}, "noexit/yes": {"icon": "maki-barrier", "geometry": ["vertex"], "terms": ["no exit", "road end", "dead end"], "tags": {"noexit": "yes"}, "reference": {"key": "noexit", "value": "*"}, "name": "No Exit"}, - "office": {"icon": "maki-suitcase", "fields": ["name", "office", "address", "building_area", "opening_hours"], "moreFields": ["air_conditioning", "building/levels_building", "email", "fax", "height_building", "internet_access", "internet_access/fee", "internet_access/ssid", "level", "not/name", "operator", "phone", "smoking", "website", "wheelchair"], "geometry": ["point", "vertex", "area"], "tags": {"office": "*"}, "terms": [], "name": "Office"}, + "office": {"icon": "maki-suitcase", "fields": ["name", "office", "address", "building_area", "opening_hours"], "moreFields": ["air_conditioning", "building/levels_building", "email", "fax", "gnis/feature_id", "height_building", "internet_access", "internet_access/fee", "internet_access/ssid", "level", "not/name", "operator", "phone", "smoking", "website", "wheelchair"], "geometry": ["point", "vertex", "area"], "tags": {"office": "*"}, "terms": [], "name": "Office"}, "office/administrative": {"icon": "maki-suitcase", "geometry": ["point", "area"], "tags": {"office": "administrative"}, "searchable": false, "name": "Administrative Office"}, "office/physician": {"icon": "maki-suitcase", "geometry": ["point", "area"], "tags": {"office": "physician"}, "searchable": false, "name": "Physician"}, "office/travel_agent": {"icon": "maki-suitcase", "geometry": ["point", "area"], "tags": {"office": "travel_agent"}, "reference": {"key": "shop", "value": "travel_agency"}, "name": "Travel Agency", "searchable": false}, @@ -886,21 +886,21 @@ "piste/skitour": {"icon": "fas-skiing-nordic", "fields": ["name", "piste/type", "piste/difficulty_skitour", "piste/grooming", "oneway", "lit"], "geometry": ["line", "area"], "terms": ["ski", "skitour", "crosscountry", "ski touring", "piste"], "tags": {"piste:type": "skitour"}, "name": "Ski Touring Trail"}, "piste/sled": {"icon": "temaki-sledding", "fields": ["name", "piste/type", "piste/difficulty", "piste/grooming", "oneway", "lit"], "geometry": ["line", "area"], "terms": ["ski", "sled", "luge", "sleigh", "sledge", "piste"], "tags": {"piste:type": "sled"}, "name": "Sled Piste"}, "piste/sleigh": {"icon": "fas-sleigh", "fields": ["name", "piste/type", "piste/difficulty", "piste/grooming", "oneway", "lit"], "geometry": ["line", "area"], "terms": ["ski", "piste", "sled", "luge", "sleigh", "sledge", "ski-joring", "husky", "horse"], "tags": {"piste:type": "sleigh"}, "name": "Sleigh Piste"}, - "place/farm": {"icon": "maki-farm", "geometry": ["point", "area"], "fields": ["name"], "tags": {"place": "farm"}, "name": "Farm", "searchable": false}, - "place/city_block": {"icon": "maki-triangle-stroked", "fields": ["name"], "moreFields": ["website"], "geometry": ["point", "area"], "tags": {"place": "city_block"}, "name": "City Block"}, - "place/city": {"icon": "maki-city", "fields": ["name", "population"], "moreFields": ["website"], "geometry": ["point", "area"], "tags": {"place": "city"}, "name": "City"}, - "place/hamlet": {"icon": "maki-triangle-stroked", "fields": ["name", "population"], "moreFields": ["website"], "geometry": ["point", "area"], "tags": {"place": "hamlet"}, "name": "Hamlet"}, - "place/island": {"icon": "maki-mountain", "geometry": ["point", "area"], "fields": ["name"], "terms": ["archipelago", "atoll", "bar", "cay", "isle", "islet", "key", "reef"], "tags": {"place": "island"}, "name": "Island"}, - "place/islet": {"icon": "maki-mountain", "geometry": ["point", "area"], "fields": ["name"], "terms": ["archipelago", "atoll", "bar", "cay", "isle", "islet", "key", "reef"], "tags": {"place": "islet"}, "name": "Islet"}, - "place/isolated_dwelling": {"icon": "maki-home", "geometry": ["point", "area"], "fields": ["name"], "tags": {"place": "isolated_dwelling"}, "name": "Isolated Dwelling"}, - "place/locality": {"icon": "maki-triangle-stroked", "geometry": ["point", "area"], "moreFields": ["website"], "fields": ["name"], "tags": {"place": "locality"}, "name": "Locality"}, - "place/neighbourhood": {"icon": "maki-triangle-stroked", "fields": ["name", "population"], "moreFields": ["website"], "geometry": ["point", "area"], "tags": {"place": "neighbourhood"}, "terms": ["neighbourhood"], "name": "Neighborhood"}, - "place/plot": {"icon": "maki-triangle-stroked", "fields": ["name"], "geometry": ["point", "area"], "tags": {"place": "plot"}, "terms": ["tract", "land", "lot", "parcel"], "name": "Plot"}, - "place/quarter": {"icon": "maki-triangle-stroked", "fields": ["name", "population"], "moreFields": ["website"], "geometry": ["point", "area"], "tags": {"place": "quarter"}, "terms": ["boro", "borough", "quarter"], "name": "Sub-Borough / Quarter"}, - "place/square": {"icon": "temaki-pedestrian", "geometry": ["point", "area"], "fields": ["name"], "moreFields": ["website"], "tags": {"place": "square"}, "name": "Square"}, - "place/suburb": {"icon": "maki-triangle-stroked", "fields": ["name", "population"], "moreFields": ["website"], "geometry": ["point", "area"], "tags": {"place": "suburb"}, "terms": ["boro", "borough", "quarter"], "name": "Borough / Suburb"}, - "place/town": {"icon": "maki-town", "fields": ["name", "population"], "moreFields": ["website"], "geometry": ["point", "area"], "tags": {"place": "town"}, "name": "Town"}, - "place/village": {"icon": "maki-village", "fields": ["name", "population"], "moreFields": ["website"], "geometry": ["point", "area"], "tags": {"place": "village"}, "name": "Village"}, + "place/farm": {"icon": "maki-farm", "geometry": ["point", "area"], "tags": {"place": "farm"}, "name": "Farm", "searchable": false}, + "place/city_block": {"icon": "maki-triangle-stroked", "moreFields": ["{place}", "website"], "geometry": ["point", "area"], "tags": {"place": "city_block"}, "name": "City Block"}, + "place/city": {"icon": "maki-city", "fields": ["name", "population"], "moreFields": ["{place}", "website"], "geometry": ["point", "area"], "tags": {"place": "city"}, "name": "City"}, + "place/hamlet": {"icon": "maki-triangle-stroked", "fields": ["name", "population"], "moreFields": ["{place}", "website"], "geometry": ["point", "area"], "tags": {"place": "hamlet"}, "name": "Hamlet"}, + "place/island": {"icon": "maki-mountain", "geometry": ["point", "area"], "terms": ["archipelago", "atoll", "bar", "cay", "isle", "islet", "key", "reef"], "tags": {"place": "island"}, "name": "Island"}, + "place/islet": {"icon": "maki-mountain", "geometry": ["point", "area"], "terms": ["archipelago", "atoll", "bar", "cay", "isle", "islet", "key", "reef"], "tags": {"place": "islet"}, "name": "Islet"}, + "place/isolated_dwelling": {"icon": "maki-home", "geometry": ["point", "area"], "tags": {"place": "isolated_dwelling"}, "name": "Isolated Dwelling"}, + "place/locality": {"icon": "maki-triangle-stroked", "moreFields": ["{place}", "website"], "geometry": ["point", "area"], "tags": {"place": "locality"}, "name": "Locality"}, + "place/neighbourhood": {"icon": "maki-triangle-stroked", "fields": ["name", "population"], "moreFields": ["gnis/feature_id", "website"], "geometry": ["point", "area"], "tags": {"place": "neighbourhood"}, "terms": ["neighbourhood"], "name": "Neighborhood"}, + "place/plot": {"icon": "maki-triangle-stroked", "geometry": ["point", "area"], "tags": {"place": "plot"}, "terms": ["tract", "land", "lot", "parcel"], "name": "Plot"}, + "place/quarter": {"icon": "maki-triangle-stroked", "fields": ["name", "population"], "moreFields": ["{place}", "website"], "geometry": ["point", "area"], "tags": {"place": "quarter"}, "terms": ["boro", "borough", "quarter"], "name": "Sub-Borough / Quarter"}, + "place/square": {"icon": "temaki-pedestrian", "moreFields": ["{place}", "website"], "geometry": ["point", "area"], "tags": {"place": "square"}, "name": "Square"}, + "place/suburb": {"icon": "maki-triangle-stroked", "fields": ["name", "population"], "moreFields": ["{place}", "website"], "geometry": ["point", "area"], "tags": {"place": "suburb"}, "terms": ["boro", "borough", "quarter"], "name": "Borough / Suburb"}, + "place/town": {"icon": "maki-town", "fields": ["name", "population"], "moreFields": ["{place}", "website"], "geometry": ["point", "area"], "tags": {"place": "town"}, "name": "Town"}, + "place/village": {"icon": "maki-village", "fields": ["name", "population"], "moreFields": ["{place}", "website"], "geometry": ["point", "area"], "tags": {"place": "village"}, "name": "Village"}, "playground/balance_beam": {"icon": "maki-playground", "geometry": ["point", "line"], "tags": {"playground": "balancebeam"}, "name": "Play Balance Beam"}, "playground/basket_spinner": {"icon": "maki-playground", "geometry": ["point"], "terms": ["basket rotator"], "tags": {"playground": "basketrotator"}, "name": "Basket Spinner"}, "playground/basket_swing": {"icon": "maki-playground", "geometry": ["point"], "tags": {"playground": "basketswing"}, "name": "Basket Swing"}, @@ -926,13 +926,13 @@ "power/generator/source/wind": {"icon": "temaki-wind_turbine", "fields": ["operator", "generator/type", "generator/output/electricity", "height", "ref"], "moreFields": ["manufacturer"], "geometry": ["point", "vertex", "area"], "terms": ["generator", "turbine", "windmill", "wind"], "tags": {"power": "generator", "generator:source": "wind", "generator:method": "wind_turbine"}, "reference": {"key": "generator:source", "value": "wind"}, "name": "Wind Turbine"}, "power/line": {"icon": "temaki-power_tower", "fields": ["name", "operator", "voltage", "ref", "layer"], "geometry": ["line"], "terms": ["electric power transmission line", "high voltage line", "high tension line"], "tags": {"power": "line"}, "name": "Power Line"}, "power/minor_line": {"icon": "iD-power-line", "fields": ["name", "operator", "voltage", "ref", "layer"], "geometry": ["line"], "tags": {"power": "minor_line"}, "name": "Minor Power Line"}, - "power/plant": {"icon": "maki-industry", "fields": ["name", "operator", "address", "plant/output/electricity", "start_date"], "geometry": ["area"], "tags": {"power": "plant"}, "addTags": {"power": "plant", "landuse": "industrial"}, "terms": ["coal", "gas", "generat*", "hydro", "nuclear", "power", "station"], "name": "Power Station Grounds"}, + "power/plant": {"icon": "maki-industry", "fields": ["name", "operator", "address", "plant/output/electricity", "start_date"], "moreFields": ["gnis/feature_id"], "geometry": ["area"], "tags": {"power": "plant"}, "addTags": {"power": "plant", "landuse": "industrial"}, "terms": ["coal", "gas", "generat*", "hydro", "nuclear", "power", "station"], "name": "Power Station Grounds"}, "power/pole": {"icon": "temaki-utility_pole", "fields": ["ref", "operator", "height", "material", "line_attachment"], "moreFields": ["manufacturer"], "geometry": ["point", "vertex"], "tags": {"power": "pole"}, "name": "Power Pole"}, - "power/substation": {"icon": "temaki-power", "fields": ["substation", "operator", "building", "ref"], "geometry": ["point", "area"], "tags": {"power": "substation"}, "name": "Substation"}, + "power/substation": {"icon": "temaki-power", "fields": ["substation", "operator", "building", "ref"], "moreFields": ["gnis/feature_id"], "geometry": ["point", "area"], "tags": {"power": "substation"}, "name": "Substation"}, "power/switch": {"icon": "temaki-power_switch", "fields": ["switch", "operator", "location", "cables", "voltage", "ref"], "geometry": ["point", "vertex"], "tags": {"power": "switch"}, "name": "Power Switch"}, "power/tower": {"icon": "temaki-power_tower", "fields": ["ref", "operator", "design", "height", "material", "line_attachment"], "moreFields": ["manufacturer"], "geometry": ["point", "vertex"], "terms": ["power"], "tags": {"power": "tower"}, "matchScore": 1.05, "name": "High-Voltage Tower"}, "power/transformer": {"icon": "temaki-power_transformer", "fields": ["ref", "operator", "transformer", "location", "rating", "devices", "phases"], "moreFields": ["frequency", "manufacturer", "voltage/primary", "voltage/secondary", "voltage/tertiary", "windings", "windings/configuration"], "geometry": ["point", "vertex"], "tags": {"power": "transformer"}, "name": "Transformer"}, - "public_transport/platform_point": {"icon": "maki-rail", "fields": ["name", "network", "operator", "departures_board", "shelter"], "moreFields": ["bench", "bin", "level", "lit", "wheelchair"], "geometry": ["point"], "tags": {"public_transport": "platform"}, "terms": ["platform", "public transit", "public transportation", "transit", "transportation"], "name": "Transit Stop / Platform", "matchScore": 0.6}, + "public_transport/platform_point": {"icon": "maki-rail", "fields": ["name", "network", "operator", "departures_board", "shelter"], "moreFields": ["bench", "bin", "gnis/feature_id", "level", "lit", "wheelchair"], "geometry": ["point"], "tags": {"public_transport": "platform"}, "terms": ["platform", "public transit", "public transportation", "transit", "transportation"], "name": "Transit Stop / Platform", "matchScore": 0.6}, "public_transport/platform": {"icon": "temaki-pedestrian", "fields": ["ref_platform", "network", "operator", "departures_board", "surface"], "moreFields": ["access", "covered", "indoor", "layer", "level", "lit", "wheelchair"], "geometry": ["line", "area"], "tags": {"public_transport": "platform"}, "terms": ["platform", "public transit", "public transportation", "transit", "transportation"], "name": "Transit Platform", "matchScore": 0.6}, "public_transport/platform/aerialway_point": {"icon": "maki-aerialway", "fields": ["{public_transport/platform_point}"], "moreFields": ["{public_transport/platform_point}"], "geometry": ["point"], "tags": {"public_transport": "platform", "aerialway": "yes"}, "reference": {"key": "public_transport", "value": "platform"}, "searchable": false, "name": "Aerialway Stop / Platform"}, "public_transport/platform/ferry_point": {"icon": "maki-ferry", "fields": ["{public_transport/platform_point}"], "moreFields": ["{public_transport/platform_point}"], "geometry": ["point"], "tags": {"public_transport": "platform", "ferry": "yes"}, "reference": {"key": "public_transport", "value": "platform"}, "searchable": false, "name": "Ferry Stop / Platform"}, @@ -962,7 +962,7 @@ "public_transport/station_train": {"icon": "maki-rail", "fields": ["{public_transport/station}"], "moreFields": ["{public_transport/station}"], "geometry": ["vertex", "point", "area"], "tags": {"public_transport": "station", "train": "yes"}, "addTags": {"public_transport": "station", "train": "yes", "railway": "station"}, "reference": {"key": "railway", "value": "station"}, "terms": ["public transit", "public transportation", "rail", "station", "terminal", "track", "train", "transit", "transportation"], "name": "Train Station"}, "public_transport/station_tram": {"icon": "temaki-tram", "fields": ["{public_transport/station}"], "moreFields": ["{public_transport/station}"], "geometry": ["point", "area"], "tags": {"public_transport": "station", "tram": "yes"}, "reference": {"key": "public_transport", "value": "station"}, "terms": ["electric", "light rail", "public transit", "public transportation", "rail", "station", "streetcar", "terminal", "track", "tram", "trolley", "transit", "transportation"], "name": "Tram Station"}, "public_transport/station_trolleybus": {"icon": "temaki-trolleybus", "fields": ["{public_transport/station}"], "moreFields": ["{public_transport/station}"], "geometry": ["point", "area"], "tags": {"public_transport": "station", "trolleybus": "yes"}, "addTags": {"public_transport": "station", "trolleybus": "yes", "amenity": "bus_station"}, "reference": {"key": "amenity", "value": "bus_station"}, "terms": ["bus", "electric", "public transit", "public transportation", "station", "streetcar", "terminal", "trackless", "tram", "trolley", "transit", "transportation"], "name": "Trolleybus Station / Terminal"}, - "public_transport/station": {"icon": "maki-rail", "fields": ["name", "network", "operator", "address", "building_area", "internet_access"], "moreFields": ["air_conditioning", "email", "fax", "internet_access/fee", "internet_access/ssid", "level", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"public_transport": "station"}, "terms": ["public transit", "public transportation", "station", "terminal", "transit", "transportation"], "name": "Transit Station", "matchScore": 0.2}, + "public_transport/station": {"icon": "maki-rail", "fields": ["name", "network", "operator", "address", "building_area", "internet_access"], "moreFields": ["air_conditioning", "email", "fax", "gnis/feature_id", "internet_access/fee", "internet_access/ssid", "level", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"public_transport": "station"}, "terms": ["public transit", "public transportation", "station", "terminal", "transit", "transportation"], "name": "Transit Station", "matchScore": 0.2}, "public_transport/stop_area": {"icon": "iD-relation", "fields": ["name", "ref", "network", "operator"], "geometry": ["relation"], "tags": {"type": "public_transport", "public_transport": "stop_area"}, "reference": {"key": "public_transport", "value": "stop_area"}, "name": "Transit Stop Area"}, "public_transport/stop_position_aerialway": {"icon": "maki-aerialway", "fields": ["{public_transport/stop_position}"], "moreFields": ["{public_transport/stop_position}"], "geometry": ["vertex"], "tags": {"public_transport": "stop_position", "aerialway": "yes"}, "reference": {"key": "public_transport", "value": "stop_position"}, "terms": ["aerialway", "cable car", "public transit", "public transportation", "transit", "transportation"], "name": "Aerialway Stopping Location"}, "public_transport/stop_position_bus": {"icon": "maki-bus", "fields": ["{public_transport/stop_position}"], "moreFields": ["{public_transport/stop_position}"], "geometry": ["vertex"], "tags": {"public_transport": "stop_position", "bus": "yes"}, "reference": {"key": "public_transport", "value": "stop_position"}, "terms": ["bus", "public transit", "public transportation", "transit", "transportation"], "name": "Bus Stopping Location"}, @@ -1007,7 +1007,7 @@ "seamark/buoy_lateral/green": {"geometry": ["point", "vertex"], "terms": ["lateral buoy", "buoy lateral", "cevni", "channel marker", "iala", "lateral mark"], "tags": {"seamark:type": "buoy_lateral", "seamark:buoy_lateral:colour": "green"}, "name": "Green Buoy"}, "seamark/buoy_lateral/red": {"geometry": ["point", "vertex"], "terms": ["lateral buoy", "buoy lateral", "cevni", "channel marker", "iala", "lateral mark"], "tags": {"seamark:type": "buoy_lateral", "seamark:buoy_lateral:colour": "red"}, "name": "Red Buoy"}, "seamark/mooring": {"fields": ["ref", "operator", "seamark/mooring/category", "seamark/type"], "geometry": ["point"], "terms": ["dolphin", "pile", "bollard", "buoy", "post"], "tags": {"seamark:type": "mooring"}, "name": "Mooring"}, - "shop": {"icon": "maki-shop", "fields": ["name", "shop", "operator", "address", "building_area", "opening_hours", "payment_multi"], "moreFields": ["air_conditioning", "brand", "building/levels_building", "currency_multi", "email", "fax", "height_building", "internet_access", "internet_access/fee", "internet_access/ssid", "level", "not/name", "phone", "second_hand", "stroller", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"shop": "*"}, "terms": [], "name": "Shop"}, + "shop": {"icon": "maki-shop", "fields": ["name", "shop", "operator", "address", "building_area", "opening_hours", "payment_multi"], "moreFields": ["air_conditioning", "brand", "building/levels_building", "currency_multi", "email", "fax", "gnis/feature_id", "height_building", "internet_access", "internet_access/fee", "internet_access/ssid", "level", "not/name", "phone", "second_hand", "stroller", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"shop": "*"}, "terms": [], "name": "Shop"}, "shop/boutique": {"icon": "maki-shop", "fields": ["name", "clothes", "{shop}"], "geometry": ["point", "area"], "tags": {"shop": "boutique"}, "searchable": false, "name": "Boutique"}, "shop/fashion": {"icon": "maki-shop", "fields": ["name", "clothes", "{shop}"], "geometry": ["point", "area"], "tags": {"shop": "fashion"}, "searchable": false, "name": "Fashion Store"}, "shop/fishmonger": {"icon": "maki-shop", "geometry": ["point", "area"], "tags": {"shop": "fishmonger"}, "reference": {"key": "shop", "value": "seafood"}, "name": "Fishmonger", "searchable": false}, @@ -1167,10 +1167,10 @@ "shop/wholesale": {"icon": "maki-warehouse", "fields": ["{shop}", "wholesale"], "geometry": ["point", "area"], "terms": ["warehouse club", "cash and carry"], "tags": {"shop": "wholesale"}, "name": "Wholesale Store"}, "shop/window_blind": {"icon": "temaki-window", "geometry": ["point", "area"], "tags": {"shop": "window_blind"}, "name": "Window Blind Store"}, "shop/wine": {"icon": "maki-alcohol-shop", "moreFields": ["{shop}", "min_age"], "geometry": ["point", "area"], "tags": {"shop": "wine"}, "name": "Wine Shop"}, - "telecom/data_center": {"icon": "fas-server", "fields": ["name", "ref", "operator", "building_area"], "moreFields": ["address", "phone", "website"], "geometry": ["point", "area"], "tags": {"telecom": "data_center"}, "terms": ["computer systems storage", "information technology", "server farm", "the cloud", "telecommunications"], "name": "Data Center"}, - "tourism/alpine_hut": {"icon": "maki-lodging", "fields": ["name", "operator", "address", "building_area", "internet_access", "internet_access/fee", "fee", "payment_multi_fee", "charge_fee"], "moreFields": ["email", "fax", "internet_access/ssid", "phone", "reservation", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["climbing hut"], "tags": {"tourism": "alpine_hut"}, "name": "Alpine Hut"}, + "telecom/data_center": {"icon": "fas-server", "fields": ["name", "ref", "operator", "building_area"], "moreFields": ["address", "gnis/feature_id", "phone", "website"], "geometry": ["point", "area"], "tags": {"telecom": "data_center"}, "terms": ["computer systems storage", "information technology", "server farm", "the cloud", "telecommunications"], "name": "Data Center"}, + "tourism/alpine_hut": {"icon": "maki-lodging", "fields": ["name", "operator", "address", "building_area", "internet_access", "internet_access/fee", "fee", "payment_multi_fee", "charge_fee"], "moreFields": ["email", "fax", "gnis/feature_id", "internet_access/ssid", "phone", "reservation", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["climbing hut"], "tags": {"tourism": "alpine_hut"}, "name": "Alpine Hut"}, "tourism/apartment": {"icon": "maki-lodging", "fields": ["name", "operator", "address", "building_area", "rooms", "internet_access", "internet_access/fee"], "moreFields": ["building/levels_building", "email", "fax", "height_building", "internet_access/ssid", "level", "payment_multi", "phone", "reservation", "smoking", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"tourism": "apartment"}, "name": "Guest Apartment / Condo"}, - "tourism/aquarium": {"icon": "maki-aquarium", "fields": ["name", "operator", "address", "building_area", "opening_hours"], "moreFields": ["charge_fee", "email", "fax", "fee", "internet_access", "internet_access/fee", "internet_access/ssid", "payment_multi_fee", "phone", "smoking", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["fish", "sea", "water"], "tags": {"tourism": "aquarium"}, "name": "Aquarium"}, + "tourism/aquarium": {"icon": "maki-aquarium", "fields": ["name", "operator", "address", "building_area", "opening_hours"], "moreFields": ["charge_fee", "email", "fax", "fee", "gnis/feature_id", "internet_access", "internet_access/fee", "internet_access/ssid", "payment_multi_fee", "phone", "smoking", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["fish", "sea", "water"], "tags": {"tourism": "aquarium"}, "name": "Aquarium"}, "tourism/artwork": {"icon": "maki-art-gallery", "fields": ["name", "artwork_type", "artist"], "moreFields": ["level", "material", "website"], "geometry": ["point", "vertex", "line", "area"], "tags": {"tourism": "artwork"}, "terms": ["mural", "sculpture", "statue"], "name": "Artwork"}, "tourism/artwork/bust": {"icon": "fas-user-alt", "fields": ["name", "artist", "material"], "geometry": ["point", "vertex"], "tags": {"tourism": "artwork", "artwork_type": "bust"}, "reference": {"key": "artwork_type"}, "terms": ["figure"], "name": "Bust"}, "tourism/artwork/graffiti": {"icon": "maki-art-gallery", "fields": ["name", "artist"], "geometry": ["point", "vertex", "line", "area"], "tags": {"tourism": "artwork", "artwork_type": "graffiti"}, "reference": {"key": "artwork_type"}, "terms": ["Street Artwork", "Guerilla Artwork", "Graffiti Artwork"], "name": "Graffiti"}, @@ -1178,30 +1178,30 @@ "tourism/artwork/mural": {"icon": "maki-art-gallery", "fields": ["name", "artist"], "geometry": ["point", "vertex", "line", "area"], "tags": {"tourism": "artwork", "artwork_type": "mural"}, "reference": {"key": "artwork_type", "value": "mural"}, "terms": ["fresco", "wall painting"], "name": "Mural"}, "tourism/artwork/sculpture": {"icon": "temaki-sculpture", "fields": ["name", "artist", "material"], "geometry": ["point", "vertex", "line", "area"], "tags": {"tourism": "artwork", "artwork_type": "sculpture"}, "reference": {"key": "artwork_type", "value": "sculpture"}, "terms": ["statue", "figure", "carving"], "name": "Sculpture"}, "tourism/artwork/statue": {"icon": "fas-female", "fields": ["name", "artist", "material"], "geometry": ["point", "vertex", "line", "area"], "tags": {"tourism": "artwork", "artwork_type": "statue"}, "reference": {"key": "artwork_type", "value": "statue"}, "terms": ["sculpture", "figure", "carving"], "name": "Statue"}, - "tourism/attraction": {"icon": "maki-star", "fields": ["name", "operator", "address"], "geometry": ["point", "vertex", "line", "area"], "tags": {"tourism": "attraction"}, "matchScore": 0.75, "name": "Tourist Attraction"}, + "tourism/attraction": {"icon": "maki-star", "fields": ["name", "operator", "address"], "moreFields": ["gnis/feature_id"], "geometry": ["point", "vertex", "line", "area"], "tags": {"tourism": "attraction"}, "matchScore": 0.75, "name": "Tourist Attraction"}, "tourism/camp_pitch": {"icon": "maki-campsite", "fields": ["name", "ref"], "geometry": ["point", "area"], "terms": ["tent", "rv"], "tags": {"tourism": "camp_pitch"}, "name": "Camp Pitch"}, - "tourism/camp_site": {"icon": "maki-campsite", "fields": ["name", "operator", "address", "access_simple", "capacity", "fee", "payment_multi_fee", "charge_fee", "internet_access", "internet_access/fee"], "moreFields": ["email", "fax", "internet_access/ssid", "phone", "power_supply", "reservation", "sanitary_dump_station", "website", "wheelchair"], "geometry": ["point", "vertex", "area"], "terms": ["tent", "rv"], "tags": {"tourism": "camp_site"}, "name": "Campground"}, - "tourism/caravan_site": {"icon": "temaki-rv_park", "fields": ["name", "address", "capacity", "sanitary_dump_station", "power_supply", "internet_access", "internet_access/fee"], "moreFields": ["charge_fee", "email", "fax", "fee", "internet_access/ssid", "operator", "payment_multi_fee", "phone", "reservation", "smoking", "website", "wheelchair"], "geometry": ["point", "vertex", "area"], "terms": ["Motor Home", "Camper"], "tags": {"tourism": "caravan_site"}, "name": "RV Park"}, - "tourism/chalet": {"icon": "maki-lodging", "fields": ["name", "operator", "address", "building_area", "internet_access", "internet_access/fee"], "moreFields": ["air_conditioning", "building/levels_building", "email", "fax", "height_building", "internet_access/ssid", "payment_multi", "phone", "reservation", "smoking", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["holiday", "holiday cottage", "holiday home", "vacation", "vacation home"], "tags": {"tourism": "chalet"}, "name": "Holiday Cottage"}, - "tourism/gallery": {"icon": "maki-art-gallery", "fields": ["name", "operator", "address", "building_area", "opening_hours"], "moreFields": ["email", "fax", "internet_access", "internet_access/fee", "internet_access/ssid", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["art*", "exhibit*", "paint*", "photo*", "sculpt*"], "tags": {"tourism": "gallery"}, "name": "Art Gallery"}, - "tourism/guest_house": {"icon": "maki-lodging", "fields": ["name", "operator", "guest_house", "address", "building_area", "rooms", "internet_access", "internet_access/fee"], "moreFields": ["air_conditioning", "building/levels_building", "email", "fax", "height_building", "internet_access/ssid", "payment_multi", "phone", "reservation", "smoking", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"tourism": "guest_house"}, "terms": ["B&B", "Bed and Breakfast"], "name": "Guest House"}, + "tourism/camp_site": {"icon": "maki-campsite", "fields": ["name", "operator", "address", "access_simple", "capacity", "fee", "payment_multi_fee", "charge_fee", "internet_access", "internet_access/fee"], "moreFields": ["email", "fax", "gnis/feature_id", "internet_access/ssid", "phone", "power_supply", "reservation", "sanitary_dump_station", "website", "wheelchair"], "geometry": ["point", "vertex", "area"], "terms": ["tent", "rv"], "tags": {"tourism": "camp_site"}, "name": "Campground"}, + "tourism/caravan_site": {"icon": "temaki-rv_park", "fields": ["name", "address", "capacity", "sanitary_dump_station", "power_supply", "internet_access", "internet_access/fee"], "moreFields": ["charge_fee", "email", "fax", "fee", "gnis/feature_id", "internet_access/ssid", "operator", "payment_multi_fee", "phone", "reservation", "smoking", "website", "wheelchair"], "geometry": ["point", "vertex", "area"], "terms": ["Motor Home", "Camper"], "tags": {"tourism": "caravan_site"}, "name": "RV Park"}, + "tourism/chalet": {"icon": "maki-lodging", "fields": ["name", "operator", "address", "building_area", "internet_access", "internet_access/fee"], "moreFields": ["air_conditioning", "building/levels_building", "email", "fax", "gnis/feature_id", "height_building", "internet_access/ssid", "payment_multi", "phone", "reservation", "smoking", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["holiday", "holiday cottage", "holiday home", "vacation", "vacation home"], "tags": {"tourism": "chalet"}, "name": "Holiday Cottage"}, + "tourism/gallery": {"icon": "maki-art-gallery", "fields": ["name", "operator", "address", "building_area", "opening_hours"], "moreFields": ["email", "fax", "gnis/feature_id", "internet_access", "internet_access/fee", "internet_access/ssid", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["art*", "exhibit*", "paint*", "photo*", "sculpt*"], "tags": {"tourism": "gallery"}, "name": "Art Gallery"}, + "tourism/guest_house": {"icon": "maki-lodging", "fields": ["name", "operator", "guest_house", "address", "building_area", "rooms", "internet_access", "internet_access/fee"], "moreFields": ["air_conditioning", "building/levels_building", "email", "fax", "gnis/feature_id", "height_building", "internet_access/ssid", "payment_multi", "phone", "reservation", "smoking", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"tourism": "guest_house"}, "terms": ["B&B", "Bed and Breakfast"], "name": "Guest House"}, "tourism/hostel": {"icon": "maki-lodging", "fields": ["{tourism/guest_house}"], "moreFields": ["{tourism/guest_house}"], "geometry": ["point", "area"], "tags": {"tourism": "hostel"}, "name": "Hostel"}, "tourism/hotel": {"icon": "fas-concierge-bell", "fields": ["{tourism/motel}"], "moreFields": ["{tourism/motel}", "bar", "stars"], "geometry": ["point", "area"], "tags": {"tourism": "hotel"}, "name": "Hotel"}, "tourism/information": {"icon": "maki-information", "fields": ["information", "operator", "address", "building_area"], "moreFields": ["level"], "geometry": ["point", "vertex", "area"], "tags": {"tourism": "information"}, "name": "Information"}, "tourism/information/board": {"icon": "maki-information", "fields": ["name", "operator", "board_type", "direction"], "geometry": ["point", "vertex"], "tags": {"tourism": "information", "information": "board"}, "reference": {"key": "information", "value": "board"}, "name": "Information Board"}, "tourism/information/guidepost": {"icon": "fas-map-signs", "fields": ["name", "elevation", "operator", "ref"], "moreFields": ["material"], "geometry": ["point", "vertex"], "terms": ["signpost"], "tags": {"tourism": "information", "information": "guidepost"}, "reference": {"key": "information", "value": "guidepost"}, "name": "Guidepost"}, "tourism/information/map": {"icon": "fas-map", "fields": ["operator", "map_type", "map_size", "direction"], "geometry": ["point", "vertex"], "tags": {"tourism": "information", "information": "map"}, "reference": {"key": "information", "value": "map"}, "name": "Map"}, - "tourism/information/office": {"icon": "maki-information", "fields": ["name", "operator", "address", "building_area", "internet_access", "internet_access/fee"], "moreFields": ["building/levels_building", "email", "fax", "height_building", "internet_access/ssid", "phone", "website", "wheelchair"], "geometry": ["point", "vertex", "area"], "tags": {"tourism": "information", "information": "office"}, "reference": {"key": "information", "value": "office"}, "name": "Tourist Information Office"}, + "tourism/information/office": {"icon": "maki-information", "fields": ["name", "operator", "address", "building_area", "internet_access", "internet_access/fee"], "moreFields": ["building/levels_building", "email", "fax", "gnis/feature_id", "height_building", "internet_access/ssid", "phone", "website", "wheelchair"], "geometry": ["point", "vertex", "area"], "tags": {"tourism": "information", "information": "office"}, "reference": {"key": "information", "value": "office"}, "name": "Tourist Information Office"}, "tourism/information/route_marker": {"icon": "maki-information", "fields": ["ref", "operator", "colour", "material", "elevation"], "geometry": ["point", "vertex"], "terms": ["cairn", "painted blaze", "route flag", "route marker", "stone pile", "trail blaze", "trail post", "way marker"], "tags": {"tourism": "information", "information": "route_marker"}, "reference": {"key": "information", "value": "route_marker"}, "name": "Trail Marker"}, "tourism/information/terminal": {"icon": "maki-information", "fields": ["operator"], "geometry": ["point", "vertex"], "tags": {"tourism": "information", "information": "terminal"}, "reference": {"key": "information", "value": "terminal"}, "name": "Information Terminal"}, - "tourism/motel": {"icon": "maki-lodging", "fields": ["name", "brand", "address", "building_area", "rooms", "internet_access", "internet_access/fee"], "moreFields": ["air_conditioning", "building/levels_building", "email", "fax", "height_building", "internet_access/ssid", "operator", "payment_multi", "phone", "reservation", "smoking", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"tourism": "motel"}, "name": "Motel"}, - "tourism/museum": {"icon": "temaki-museum", "fields": ["name", "operator", "operator/type", "address", "building_area", "opening_hours"], "moreFields": ["air_conditioning", "building/levels_building", "charge_fee", "email", "fax", "fee", "height_building", "internet_access", "internet_access/fee", "internet_access/ssid", "level", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["art*", "exhibit*", "gallery", "foundation", "hall", "institution", "paint*", "photo*", "sculpt*"], "tags": {"tourism": "museum"}, "name": "Museum"}, - "tourism/picnic_site": {"icon": "maki-picnic-site", "fields": ["name", "operator", "address", "access_simple", "capacity"], "moreFields": ["charge_fee", "fee", "internet_access", "internet_access/fee", "internet_access/ssid", "level", "payment_multi_fee", "phone", "reservation", "smoking", "website", "wheelchair"], "geometry": ["point", "vertex", "area"], "terms": ["camp"], "tags": {"tourism": "picnic_site"}, "name": "Picnic Site"}, - "tourism/theme_park": {"icon": "maki-amusement-park", "fields": ["name", "operator", "address", "opening_hours"], "moreFields": ["email", "fax", "internet_access", "internet_access/fee", "internet_access/ssid", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"tourism": "theme_park"}, "name": "Theme Park"}, - "tourism/trail_riding_station": {"icon": "maki-horse-riding", "fields": ["name", "horse_stables", "horse_riding", "horse_dressage"], "moreFields": ["address", "email", "fax", "internet_access", "internet_access/fee", "internet_access/ssid", "opening_hours", "phone", "website"], "geometry": ["point", "area"], "tags": {"tourism": "trail_riding_station"}, "name": "Trail Riding Station", "matchScore": 2}, + "tourism/motel": {"icon": "maki-lodging", "fields": ["name", "brand", "address", "building_area", "rooms", "internet_access", "internet_access/fee"], "moreFields": ["air_conditioning", "building/levels_building", "email", "fax", "gnis/feature_id", "height_building", "internet_access/ssid", "operator", "payment_multi", "phone", "reservation", "smoking", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"tourism": "motel"}, "name": "Motel"}, + "tourism/museum": {"icon": "temaki-museum", "fields": ["name", "operator", "operator/type", "address", "building_area", "opening_hours"], "moreFields": ["air_conditioning", "building/levels_building", "charge_fee", "email", "fax", "fee", "gnis/feature_id", "height_building", "internet_access", "internet_access/fee", "internet_access/ssid", "level", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["art*", "exhibit*", "gallery", "foundation", "hall", "institution", "paint*", "photo*", "sculpt*"], "tags": {"tourism": "museum"}, "name": "Museum"}, + "tourism/picnic_site": {"icon": "maki-picnic-site", "fields": ["name", "operator", "address", "access_simple", "capacity"], "moreFields": ["charge_fee", "fee", "gnis/feature_id", "internet_access", "internet_access/fee", "internet_access/ssid", "level", "payment_multi_fee", "phone", "reservation", "smoking", "website", "wheelchair"], "geometry": ["point", "vertex", "area"], "terms": ["camp"], "tags": {"tourism": "picnic_site"}, "name": "Picnic Site"}, + "tourism/theme_park": {"icon": "maki-amusement-park", "fields": ["name", "operator", "address", "opening_hours"], "moreFields": ["email", "fax", "gnis/feature_id", "internet_access", "internet_access/fee", "internet_access/ssid", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"tourism": "theme_park"}, "name": "Theme Park"}, + "tourism/trail_riding_station": {"icon": "maki-horse-riding", "fields": ["name", "horse_stables", "horse_riding", "horse_dressage"], "moreFields": ["address", "email", "fax", "gnis/feature_id", "internet_access", "internet_access/fee", "internet_access/ssid", "opening_hours", "phone", "website"], "geometry": ["point", "area"], "tags": {"tourism": "trail_riding_station"}, "name": "Trail Riding Station", "matchScore": 2}, "tourism/viewpoint": {"icon": "temaki-binoculars", "geometry": ["point", "vertex"], "fields": ["direction"], "moreFields": ["level"], "tags": {"tourism": "viewpoint"}, "name": "Viewpoint"}, - "tourism/wilderness_hut": {"icon": "maki-lodging", "fields": ["name", "operator", "address", "building_area", "fee", "payment_multi_fee", "charge_fee", "fireplace"], "moreFields": ["internet_access", "internet_access/fee", "internet_access/ssid", "reservation", "wheelchair"], "geometry": ["point", "area"], "terms": ["wilderness hut", "backcountry hut", "bothy"], "tags": {"tourism": "wilderness_hut"}, "name": "Wilderness Hut"}, - "tourism/zoo": {"icon": "temaki-zoo", "fields": ["name", "operator", "address", "opening_hours", "fee", "charge_fee"], "moreFields": ["email", "fax", "internet_access", "internet_access/fee", "internet_access/ssid", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["animal"], "tags": {"tourism": "zoo"}, "name": "Zoo"}, + "tourism/wilderness_hut": {"icon": "maki-lodging", "fields": ["name", "operator", "address", "building_area", "fee", "payment_multi_fee", "charge_fee", "fireplace"], "moreFields": ["gnis/feature_id", "internet_access", "internet_access/fee", "internet_access/ssid", "reservation", "wheelchair"], "geometry": ["point", "area"], "terms": ["wilderness hut", "backcountry hut", "bothy"], "tags": {"tourism": "wilderness_hut"}, "name": "Wilderness Hut"}, + "tourism/zoo": {"icon": "temaki-zoo", "fields": ["name", "operator", "address", "opening_hours", "fee", "charge_fee"], "moreFields": ["email", "fax", "gnis/feature_id", "internet_access", "internet_access/fee", "internet_access/ssid", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["animal"], "tags": {"tourism": "zoo"}, "name": "Zoo"}, "tourism/zoo/petting": {"icon": "fas-horse", "geometry": ["point", "area"], "tags": {"tourism": "zoo", "zoo": "petting_zoo"}, "reference": {"key": "zoo", "value": "petting_zoo"}, "terms": ["Children's Zoo", "Children's Farm", "Petting Farm", "farm animals"], "name": "Petting Zoo"}, "tourism/zoo/safari": {"icon": "temaki-zoo", "geometry": ["point", "area"], "tags": {"tourism": "zoo", "zoo": "safari_park"}, "reference": {"key": "zoo", "value": "safari_park"}, "terms": ["Drive-Through Zoo", "Drive-In Zoo"], "name": "Safari Park"}, "tourism/zoo/wildlife": {"icon": "fas-frog", "geometry": ["point", "area"], "tags": {"tourism": "zoo", "zoo": "wildlife_park"}, "reference": {"key": "zoo", "value": "wildlife_park"}, "terms": ["indigenous animals"], "name": "Wildlife Park"}, @@ -1223,7 +1223,7 @@ "traffic_sign/maxspeed": {"icon": "maki-square-stroked", "fields": ["traffic_sign", "direction", "maxspeed"], "geometry": ["point"], "tags": {"traffic_sign": "maxspeed"}, "terms": ["max speed", "maximum speed", "road", "highway"], "name": "Speed Limit Sign"}, "type/multipolygon": {"icon": "iD-multipolygon", "geometry": ["area", "relation"], "tags": {"type": "multipolygon"}, "removeTags": {}, "name": "Multipolygon", "searchable": false, "matchScore": 0.1}, "type/boundary": {"icon": "iD-boundary", "fields": ["name", "boundary"], "geometry": ["relation"], "tags": {"type": "boundary"}, "name": "Boundary"}, - "type/boundary/administrative": {"icon": "iD-boundary", "fields": ["name", "admin_level"], "geometry": ["relation"], "tags": {"type": "boundary", "boundary": "administrative"}, "reference": {"key": "boundary", "value": "administrative"}, "name": "Administrative Boundary"}, + "type/boundary/administrative": {"icon": "iD-boundary", "fields": ["name", "admin_level"], "moreFields": ["gnis/feature_id"], "geometry": ["relation"], "tags": {"type": "boundary", "boundary": "administrative"}, "reference": {"key": "boundary", "value": "administrative"}, "name": "Administrative Boundary"}, "type/enforcement": {"icon": "iD-relation", "fields": ["name", "enforcement"], "geometry": ["relation"], "tags": {"type": "enforcement"}, "name": "Enforcement"}, "type/public_transport/stop_area_group": {"icon": "iD-relation", "fields": ["name", "ref", "network", "operator"], "geometry": ["relation"], "tags": {"type": "public_transport", "public_transport": "stop_area_group"}, "reference": {"key": "public_transport", "value": "stop_area_group"}, "name": "Transit Stop Area Group"}, "type/restriction": {"icon": "iD-restriction", "fields": ["restriction", "except"], "geometry": ["relation"], "tags": {"type": "restriction"}, "name": "Restriction"}, @@ -1256,23 +1256,23 @@ "type/site": {"icon": "iD-relation", "fields": ["name", "site"], "geometry": ["relation"], "tags": {"type": "site"}, "name": "Site"}, "type/waterway": {"icon": "iD-waterway-stream", "fields": ["name", "waterway", "ref"], "geometry": ["relation"], "tags": {"type": "waterway"}, "name": "Waterway"}, "waterway/riverbank": {"icon": "maki-water", "geometry": ["area"], "tags": {"waterway": "riverbank"}, "name": "Riverbank", "searchable": false}, - "waterway/boatyard": {"icon": "maki-harbor", "fields": ["name", "operator"], "moreFields": ["address", "email", "fax", "phone", "website", "wheelchair"], "geometry": ["area", "vertex", "point"], "tags": {"waterway": "boatyard"}, "name": "Boatyard"}, - "waterway/canal": {"icon": "iD-waterway-canal", "fields": ["name", "structure_waterway", "width", "intermittent", "lock"], "moreFields": ["fishing", "salt", "tidal"], "geometry": ["line"], "tags": {"waterway": "canal"}, "name": "Canal"}, - "waterway/canal/lock": {"icon": "iD-waterway-canal", "fields": ["name", "width", "lock"], "moreFields": ["intermittent", "salt", "tidal"], "geometry": ["line"], "tags": {"waterway": "canal", "lock": "yes"}, "name": "Canal Lock"}, - "waterway/dam": {"icon": "maki-dam", "geometry": ["point", "vertex", "line", "area"], "fields": ["name", "operator", "height", "material"], "moreFields": ["seamark/type", "website"], "tags": {"waterway": "dam"}, "name": "Dam"}, + "waterway/boatyard": {"icon": "maki-harbor", "fields": ["name", "operator"], "moreFields": ["address", "email", "fax", "gnis/feature_id", "phone", "website", "wheelchair"], "geometry": ["area", "vertex", "point"], "tags": {"waterway": "boatyard"}, "name": "Boatyard"}, + "waterway/canal": {"icon": "iD-waterway-canal", "fields": ["name", "structure_waterway", "width", "intermittent", "lock"], "moreFields": ["fishing", "gnis/feature_id", "salt", "tidal"], "geometry": ["line"], "tags": {"waterway": "canal"}, "name": "Canal"}, + "waterway/canal/lock": {"icon": "iD-waterway-canal", "fields": ["name", "width", "lock"], "moreFields": ["gnis/feature_id", "intermittent", "salt", "tidal"], "geometry": ["line"], "tags": {"waterway": "canal", "lock": "yes"}, "name": "Canal Lock"}, + "waterway/dam": {"icon": "maki-dam", "geometry": ["point", "vertex", "line", "area"], "fields": ["name", "operator", "gnis/feature_id", "height", "material"], "moreFields": ["seamark/type", "website"], "tags": {"waterway": "dam"}, "name": "Dam"}, "waterway/ditch": {"icon": "iD-waterway-ditch", "fields": ["{waterway/drain}"], "moreFields": ["{waterway/drain}"], "geometry": ["line"], "tags": {"waterway": "ditch"}, "name": "Ditch"}, "waterway/dock": {"icon": "maki-harbor", "fields": ["name", "dock", "operator"], "geometry": ["area", "vertex", "point"], "terms": ["boat", "ship", "vessel", "marine"], "tags": {"waterway": "dock"}, "name": "Wet Dock / Dry Dock"}, "waterway/drain": {"icon": "iD-waterway-ditch", "fields": ["structure_waterway", "intermittent"], "moreFields": ["covered"], "geometry": ["line"], "tags": {"waterway": "drain"}, "name": "Drain"}, "waterway/fuel": {"icon": "maki-fuel", "fields": ["name", "operator", "address", "opening_hours", "fuel_multi"], "moreFields": ["brand", "building", "email", "fax", "payment_multi", "phone", "seamark/type", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["petrol", "gas", "diesel", "boat"], "tags": {"waterway": "fuel"}, "name": "Marine Fuel Station"}, "waterway/lock_gate": {"icon": "maki-dam", "geometry": ["vertex", "line"], "fields": ["name", "ref", "height", "material"], "tags": {"waterway": "lock_gate"}, "addTags": {"waterway": "lock_gate", "seamark:type": "gate"}, "terms": ["canal"], "name": "Lock Gate"}, "waterway/milestone": {"icon": "temaki-milestone", "fields": ["distance", "direction_vertex"], "moreFields": ["seamark/type"], "geometry": ["point", "vertex"], "tags": {"waterway": "milestone"}, "terms": ["milestone", "marker"], "name": "Waterway Milestone"}, - "waterway/river": {"icon": "iD-waterway-river", "fields": ["name", "structure_waterway", "width", "intermittent", "tidal"], "moreFields": ["covered", "fishing", "salt"], "geometry": ["line"], "terms": ["beck", "branch", "brook", "course", "creek", "estuary", "rill", "rivulet", "run", "runnel", "stream", "tributary", "watercourse"], "tags": {"waterway": "river"}, "name": "River"}, + "waterway/river": {"icon": "iD-waterway-river", "fields": ["name", "structure_waterway", "width", "intermittent", "tidal"], "moreFields": ["covered", "fishing", "gnis/feature_id", "salt"], "geometry": ["line"], "terms": ["beck", "branch", "brook", "course", "creek", "estuary", "rill", "rivulet", "run", "runnel", "stream", "tributary", "watercourse"], "tags": {"waterway": "river"}, "name": "River"}, "waterway/sanitary_dump_station": {"icon": "temaki-storage_tank", "fields": ["name", "operator", "access_simple", "fee", "payment_multi_fee", "charge_fee", "water_point"], "moreFields": ["opening_hours", "seamark/type"], "geometry": ["point", "vertex", "area"], "terms": ["Boat", "Watercraft", "Sanitary", "Dump Station", "Pumpout", "Pump out", "Elsan", "CDP", "CTDP", "Chemical Toilet"], "tags": {"waterway": "sanitary_dump_station"}, "name": "Marine Toilet Disposal"}, "waterway/stream_intermittent": {"icon": "iD-waterway-stream", "fields": ["{waterway/stream}"], "moreFields": ["{waterway/stream}"], "geometry": ["line"], "terms": ["arroyo", "beck", "branch", "brook", "burn", "course", "creek", "drift", "flood", "flow", "gully", "run", "runnel", "rush", "spate", "spritz", "tributary", "wadi", "wash", "watercourse"], "tags": {"waterway": "stream", "intermittent": "yes"}, "reference": {"key": "waterway", "value": "stream"}, "name": "Intermittent Stream"}, - "waterway/stream": {"icon": "iD-waterway-stream", "fields": ["name", "structure_waterway", "width", "intermittent"], "moreFields": ["covered", "fishing", "salt", "tidal"], "geometry": ["line"], "terms": ["beck", "branch", "brook", "burn", "course", "creek", "current", "drift", "flood", "flow", "freshet", "race", "rill", "rindle", "rivulet", "run", "runnel", "rush", "spate", "spritz", "surge", "tide", "torrent", "tributary", "watercourse"], "tags": {"waterway": "stream"}, "name": "Stream"}, + "waterway/stream": {"icon": "iD-waterway-stream", "fields": ["name", "structure_waterway", "width", "intermittent"], "moreFields": ["covered", "fishing", "gnis/feature_id", "salt", "tidal"], "geometry": ["line"], "terms": ["beck", "branch", "brook", "burn", "course", "creek", "current", "drift", "flood", "flow", "freshet", "race", "rill", "rindle", "rivulet", "run", "runnel", "rush", "spate", "spritz", "surge", "tide", "torrent", "tributary", "watercourse"], "tags": {"waterway": "stream"}, "name": "Stream"}, "waterway/water_point": {"icon": "maki-drinking-water", "fields": ["{amenity/water_point}"], "moreFields": ["{amenity/water_point}"], "geometry": ["area", "vertex", "point"], "tags": {"waterway": "water_point"}, "terms": ["water faucet", "water point", "water tap", "water source", "water spigot"], "name": "Marine Drinking Water"}, - "waterway/waterfall": {"icon": "maki-waterfall", "fields": ["name", "height", "width", "intermittent"], "geometry": ["vertex"], "terms": ["fall"], "tags": {"waterway": "waterfall"}, "name": "Waterfall"}, - "waterway/weir": {"icon": "maki-dam", "fields": ["name", "operator", "height", "material"], "moreFields": ["seamark/type"], "geometry": ["vertex", "line"], "terms": ["low-head dam", "low-rise dam", "wier"], "tags": {"waterway": "weir"}, "name": "Weir"}, + "waterway/waterfall": {"icon": "maki-waterfall", "fields": ["name", "height", "width", "intermittent"], "moreFields": ["gnis/feature_id"], "geometry": ["vertex"], "terms": ["fall"], "tags": {"waterway": "waterfall"}, "name": "Waterfall"}, + "waterway/weir": {"icon": "maki-dam", "fields": ["name", "operator", "height", "material"], "moreFields": ["gnis/feature_id", "seamark/type"], "geometry": ["vertex", "line"], "terms": ["low-head dam", "low-rise dam", "wier"], "tags": {"waterway": "weir"}, "name": "Weir"}, "amenity/animal_boarding/PetsHotel": {"name": "PetsHotel", "icon": "maki-veterinary", "imageURL": "https://graph.facebook.com/PetSmart/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q67141961", "amenity": "animal_boarding"}, "addTags": {"amenity": "animal_boarding", "animal_boarding": "dog;cat", "brand": "PetsHotel", "brand:wikidata": "Q67141961", "name": "PetsHotel"}, "countryCodes": ["ca", "us"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/ABANCA": {"name": "ABANCA", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/SomosAbanca/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q9598744", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "ABANCA", "brand:wikidata": "Q9598744", "brand:wikipedia": "es:Abanca", "name": "ABANCA", "official_name": "ABANCA Corporación Bancaria"}, "countryCodes": ["es"], "terms": [], "matchScore": 2, "suggestion": true}, "amenity/bank/ABN AMRO": {"name": "ABN AMRO", "icon": "maki-bank", "imageURL": "https://graph.facebook.com/abnamro/picture?type=large", "geometry": ["point", "area"], "tags": {"brand:wikidata": "Q287471", "amenity": "bank"}, "addTags": {"amenity": "bank", "brand": "ABN AMRO", "brand:wikidata": "Q287471", "brand:wikipedia": "en:ABN AMRO", "name": "ABN AMRO", "official_name": "ABN AMRO Bank N.V."}, "countryCodes": ["nl"], "terms": [], "matchScore": 2, "suggestion": true}, diff --git a/data/presets/presets/_natural.json b/data/presets/presets/_natural.json index 13ad811136..0887d8d136 100644 --- a/data/presets/presets/_natural.json +++ b/data/presets/presets/_natural.json @@ -4,6 +4,9 @@ "name", "natural" ], + "moreFields": [ + "gnis/feature_id" + ], "geometry": [ "point", "vertex", diff --git a/data/presets/presets/_place.json b/data/presets/presets/_place.json index 77e7609c38..9acf03e9e3 100644 --- a/data/presets/presets/_place.json +++ b/data/presets/presets/_place.json @@ -3,6 +3,9 @@ "name", "place" ], + "moreFields": [ + "gnis/feature_id" + ], "geometry": [ "point", "vertex", diff --git a/data/presets/presets/aeroway/aerodrome.json b/data/presets/presets/aeroway/aerodrome.json index 4530677ddb..561f8fea25 100644 --- a/data/presets/presets/aeroway/aerodrome.json +++ b/data/presets/presets/aeroway/aerodrome.json @@ -13,6 +13,9 @@ "internet_access/fee", "internet_access/ssid" ], + "moreFields": [ + "gnis/feature_id" + ], "terms": [ "aerodrome", "aeroway", diff --git a/data/presets/presets/amenity/animal_boarding.json b/data/presets/presets/amenity/animal_boarding.json index 519afc83bd..91de046906 100644 --- a/data/presets/presets/amenity/animal_boarding.json +++ b/data/presets/presets/amenity/animal_boarding.json @@ -11,6 +11,7 @@ "moreFields": [ "email", "fax", + "gnis/feature_id", "level", "payment_multi", "phone", diff --git a/data/presets/presets/amenity/animal_breeding.json b/data/presets/presets/amenity/animal_breeding.json index d58ca4667b..c811a99821 100644 --- a/data/presets/presets/amenity/animal_breeding.json +++ b/data/presets/presets/amenity/animal_breeding.json @@ -11,6 +11,7 @@ "moreFields": [ "email", "fax", + "gnis/feature_id", "level", "phone", "website", diff --git a/data/presets/presets/amenity/animal_shelter.json b/data/presets/presets/amenity/animal_shelter.json index f3ac8bcb4f..4a5a67c07f 100644 --- a/data/presets/presets/amenity/animal_shelter.json +++ b/data/presets/presets/amenity/animal_shelter.json @@ -11,6 +11,7 @@ "moreFields": [ "email", "fax", + "gnis/feature_id", "level", "phone", "website", diff --git a/data/presets/presets/amenity/arts_centre.json b/data/presets/presets/amenity/arts_centre.json index 9a658be81e..6f006737ee 100644 --- a/data/presets/presets/amenity/arts_centre.json +++ b/data/presets/presets/amenity/arts_centre.json @@ -12,6 +12,7 @@ "email", "fax", "fee", + "gnis/feature_id", "internet_access", "internet_access/fee", "internet_access/ssid", diff --git a/data/presets/presets/amenity/bank.json b/data/presets/presets/amenity/bank.json index 26310e19b9..3f477e286a 100644 --- a/data/presets/presets/amenity/bank.json +++ b/data/presets/presets/amenity/bank.json @@ -13,6 +13,7 @@ "currency_multi", "email", "fax", + "gnis/feature_id", "internet_access", "internet_access/fee", "internet_access/ssid", diff --git a/data/presets/presets/amenity/bar.json b/data/presets/presets/amenity/bar.json index ad1696397d..6cdff88fdb 100644 --- a/data/presets/presets/amenity/bar.json +++ b/data/presets/presets/amenity/bar.json @@ -12,6 +12,7 @@ "air_conditioning", "email", "fax", + "gnis/feature_id", "internet_access", "internet_access/fee", "internet_access/ssid", diff --git a/data/presets/presets/amenity/cafe.json b/data/presets/presets/amenity/cafe.json index d5547b33b2..42288070b7 100644 --- a/data/presets/presets/amenity/cafe.json +++ b/data/presets/presets/amenity/cafe.json @@ -17,6 +17,7 @@ "diet_multi", "email", "fax", + "gnis/feature_id", "internet_access/ssid", "level", "min_age", diff --git a/data/presets/presets/amenity/car_wash.json b/data/presets/presets/amenity/car_wash.json index 7f8cfdb8d1..0e70d00569 100644 --- a/data/presets/presets/amenity/car_wash.json +++ b/data/presets/presets/amenity/car_wash.json @@ -12,6 +12,7 @@ "moreFields": [ "email", "fax", + "gnis/feature_id", "phone", "website", "wheelchair" diff --git a/data/presets/presets/amenity/casino.json b/data/presets/presets/amenity/casino.json index 96b0a756c2..2b24c2f176 100644 --- a/data/presets/presets/amenity/casino.json +++ b/data/presets/presets/amenity/casino.json @@ -12,6 +12,7 @@ "air_conditioning", "email", "fax", + "gnis/feature_id", "internet_access", "internet_access/fee", "internet_access/ssid", diff --git a/data/presets/presets/amenity/childcare.json b/data/presets/presets/amenity/childcare.json index 7444dd5772..6bddaae23c 100644 --- a/data/presets/presets/amenity/childcare.json +++ b/data/presets/presets/amenity/childcare.json @@ -11,6 +11,7 @@ "moreFields": [ "email", "fax", + "gnis/feature_id", "level", "max_age", "min_age", diff --git a/data/presets/presets/amenity/cinema.json b/data/presets/presets/amenity/cinema.json index 5c8b829240..2aa3f670d0 100644 --- a/data/presets/presets/amenity/cinema.json +++ b/data/presets/presets/amenity/cinema.json @@ -12,6 +12,7 @@ "air_conditioning", "email", "fax", + "gnis/feature_id", "level", "min_age", "phone", diff --git a/data/presets/presets/amenity/clinic.json b/data/presets/presets/amenity/clinic.json index 720fbc6445..a422fd4825 100644 --- a/data/presets/presets/amenity/clinic.json +++ b/data/presets/presets/amenity/clinic.json @@ -13,6 +13,7 @@ "air_conditioning", "email", "fax", + "gnis/feature_id", "level", "payment_multi", "phone", diff --git a/data/presets/presets/amenity/college.json b/data/presets/presets/amenity/college.json index 27c8c73388..426f693247 100644 --- a/data/presets/presets/amenity/college.json +++ b/data/presets/presets/amenity/college.json @@ -13,6 +13,7 @@ "denomination", "email", "fax", + "gnis/feature_id", "internet_access/ssid", "phone", "religion", diff --git a/data/presets/presets/amenity/community_centre.json b/data/presets/presets/amenity/community_centre.json index 73ad91e836..e0866da62e 100644 --- a/data/presets/presets/amenity/community_centre.json +++ b/data/presets/presets/amenity/community_centre.json @@ -10,6 +10,7 @@ "air_conditioning", "email", "fax", + "gnis/feature_id", "phone", "polling_station", "website", diff --git a/data/presets/presets/amenity/conference_centre.json b/data/presets/presets/amenity/conference_centre.json index d6921622dd..02ab75d15f 100644 --- a/data/presets/presets/amenity/conference_centre.json +++ b/data/presets/presets/amenity/conference_centre.json @@ -12,6 +12,7 @@ "air_conditioning", "email", "fax", + "gnis/feature_id", "internet_access/fee", "internet_access/ssid", "phone", diff --git a/data/presets/presets/amenity/courthouse.json b/data/presets/presets/amenity/courthouse.json index e003317e98..a991651217 100644 --- a/data/presets/presets/amenity/courthouse.json +++ b/data/presets/presets/amenity/courthouse.json @@ -9,6 +9,7 @@ "moreFields": [ "email", "fax", + "gnis/feature_id", "level", "phone", "polling_station", diff --git a/data/presets/presets/amenity/crematorium.json b/data/presets/presets/amenity/crematorium.json index b8bfd88acc..2be93badec 100644 --- a/data/presets/presets/amenity/crematorium.json +++ b/data/presets/presets/amenity/crematorium.json @@ -11,6 +11,7 @@ "address", "email", "fax", + "gnis/feature_id", "level", "phone", "website", diff --git a/data/presets/presets/amenity/dentist.json b/data/presets/presets/amenity/dentist.json index 79ae57d274..7da71d5d01 100644 --- a/data/presets/presets/amenity/dentist.json +++ b/data/presets/presets/amenity/dentist.json @@ -11,6 +11,7 @@ "moreFields": [ "email", "fax", + "gnis/feature_id", "level", "payment_multi", "phone", diff --git a/data/presets/presets/amenity/dive_centre.json b/data/presets/presets/amenity/dive_centre.json index 2c3c9f77cc..21bef29a72 100644 --- a/data/presets/presets/amenity/dive_centre.json +++ b/data/presets/presets/amenity/dive_centre.json @@ -11,6 +11,7 @@ "moreFields": [ "email", "fax", + "gnis/feature_id", "level", "payment_multi", "phone", diff --git a/data/presets/presets/amenity/doctors.json b/data/presets/presets/amenity/doctors.json index eb11b46a5f..a7c7f8692a 100644 --- a/data/presets/presets/amenity/doctors.json +++ b/data/presets/presets/amenity/doctors.json @@ -11,6 +11,7 @@ "moreFields": [ "email", "fax", + "gnis/feature_id", "level", "payment_multi", "phone", diff --git a/data/presets/presets/amenity/dojo.json b/data/presets/presets/amenity/dojo.json index d362dc527d..ee3a8f9f32 100644 --- a/data/presets/presets/amenity/dojo.json +++ b/data/presets/presets/amenity/dojo.json @@ -10,6 +10,7 @@ "moreFields": [ "email", "fax", + "gnis/feature_id", "level", "payment_multi", "phone", diff --git a/data/presets/presets/amenity/driving_school.json b/data/presets/presets/amenity/driving_school.json index 3f26d297f6..146a8ea66a 100644 --- a/data/presets/presets/amenity/driving_school.json +++ b/data/presets/presets/amenity/driving_school.json @@ -11,6 +11,7 @@ "moreFields": [ "email", "fax", + "gnis/feature_id", "level", "payment_multi", "phone", diff --git a/data/presets/presets/amenity/events_venue.json b/data/presets/presets/amenity/events_venue.json index cd8be4011d..c7702d33e6 100644 --- a/data/presets/presets/amenity/events_venue.json +++ b/data/presets/presets/amenity/events_venue.json @@ -14,6 +14,7 @@ "air_conditioning", "email", "fax", + "gnis/feature_id", "level", "min_age", "phone", diff --git a/data/presets/presets/amenity/fast_food.json b/data/presets/presets/amenity/fast_food.json index 3ff164cac1..2c7f38feb0 100644 --- a/data/presets/presets/amenity/fast_food.json +++ b/data/presets/presets/amenity/fast_food.json @@ -15,6 +15,7 @@ "diet_multi", "email", "fax", + "gnis/feature_id", "internet_access", "internet_access/fee", "internet_access/ssid", diff --git a/data/presets/presets/amenity/fire_station.json b/data/presets/presets/amenity/fire_station.json index 3713b8f25e..bf020ad86a 100644 --- a/data/presets/presets/amenity/fire_station.json +++ b/data/presets/presets/amenity/fire_station.json @@ -9,6 +9,7 @@ "moreFields": [ "email", "fax", + "gnis/feature_id", "phone", "polling_station", "smoking", diff --git a/data/presets/presets/amenity/food_court.json b/data/presets/presets/amenity/food_court.json index a8806d724d..494a4c7ac2 100644 --- a/data/presets/presets/amenity/food_court.json +++ b/data/presets/presets/amenity/food_court.json @@ -12,6 +12,7 @@ "diet_multi", "email", "fax", + "gnis/feature_id", "internet_access", "internet_access/fee", "internet_access/ssid", diff --git a/data/presets/presets/amenity/fuel.json b/data/presets/presets/amenity/fuel.json index e7451cda9b..419ecd2781 100644 --- a/data/presets/presets/amenity/fuel.json +++ b/data/presets/presets/amenity/fuel.json @@ -12,6 +12,7 @@ "building", "email", "fax", + "gnis/feature_id", "opening_hours", "payment_multi", "phone", diff --git a/data/presets/presets/amenity/grave_yard.json b/data/presets/presets/amenity/grave_yard.json index 77d483e6d4..4a1689dbd7 100644 --- a/data/presets/presets/amenity/grave_yard.json +++ b/data/presets/presets/amenity/grave_yard.json @@ -7,6 +7,7 @@ "moreFields": [ "email", "fax", + "gnis/feature_id", "phone", "website" ], diff --git a/data/presets/presets/amenity/hospital.json b/data/presets/presets/amenity/hospital.json index 665a070aa8..9f381aaa9e 100644 --- a/data/presets/presets/amenity/hospital.json +++ b/data/presets/presets/amenity/hospital.json @@ -11,6 +11,7 @@ "moreFields": [ "email", "fax", + "gnis/feature_id", "internet_access", "internet_access/fee", "internet_access/ssid", diff --git a/data/presets/presets/amenity/ice_cream.json b/data/presets/presets/amenity/ice_cream.json index 57603381f9..80274904dc 100644 --- a/data/presets/presets/amenity/ice_cream.json +++ b/data/presets/presets/amenity/ice_cream.json @@ -13,6 +13,7 @@ "drive_through", "email", "fax", + "gnis/feature_id", "internet_access", "internet_access/fee", "internet_access/ssid", diff --git a/data/presets/presets/amenity/internet_cafe.json b/data/presets/presets/amenity/internet_cafe.json index b1f6c39b61..4703360622 100644 --- a/data/presets/presets/amenity/internet_cafe.json +++ b/data/presets/presets/amenity/internet_cafe.json @@ -14,6 +14,7 @@ "air_conditioning", "email", "fax", + "gnis/feature_id", "level", "min_age", "opening_hours", diff --git a/data/presets/presets/amenity/karaoke.json b/data/presets/presets/amenity/karaoke.json index 7e3a9ebae7..63b60712c9 100644 --- a/data/presets/presets/amenity/karaoke.json +++ b/data/presets/presets/amenity/karaoke.json @@ -12,6 +12,7 @@ "air_conditioning", "email", "fax", + "gnis/feature_id", "level", "min_age", "payment_multi", diff --git a/data/presets/presets/amenity/kindergarten.json b/data/presets/presets/amenity/kindergarten.json index e40b9c9bcc..66149b04ac 100644 --- a/data/presets/presets/amenity/kindergarten.json +++ b/data/presets/presets/amenity/kindergarten.json @@ -10,6 +10,7 @@ "moreFields": [ "email", "fax", + "gnis/feature_id", "level", "max_age", "min_age", diff --git a/data/presets/presets/amenity/language_school.json b/data/presets/presets/amenity/language_school.json index 6b0ca953f5..b27d53163d 100644 --- a/data/presets/presets/amenity/language_school.json +++ b/data/presets/presets/amenity/language_school.json @@ -12,6 +12,7 @@ "moreFields": [ "email", "fax", + "gnis/feature_id", "internet_access", "internet_access/fee", "internet_access/ssid", diff --git a/data/presets/presets/amenity/library.json b/data/presets/presets/amenity/library.json index 7a19100365..278c685ffc 100644 --- a/data/presets/presets/amenity/library.json +++ b/data/presets/presets/amenity/library.json @@ -16,6 +16,7 @@ "air_conditioning", "email", "fax", + "gnis/feature_id", "level", "opening_hours", "payment_multi", diff --git a/data/presets/presets/amenity/love_hotel.json b/data/presets/presets/amenity/love_hotel.json index ae9aa2c2d9..583fbaffae 100644 --- a/data/presets/presets/amenity/love_hotel.json +++ b/data/presets/presets/amenity/love_hotel.json @@ -13,6 +13,7 @@ "moreFields": [ "email", "fax", + "gnis/feature_id", "min_age", "payment_multi", "phone", diff --git a/data/presets/presets/amenity/marketplace.json b/data/presets/presets/amenity/marketplace.json index cc33fc8108..f5b1dc8571 100644 --- a/data/presets/presets/amenity/marketplace.json +++ b/data/presets/presets/amenity/marketplace.json @@ -10,6 +10,7 @@ "moreFields": [ "email", "fax", + "gnis/feature_id", "phone", "website", "wheelchair" diff --git a/data/presets/presets/amenity/monastery.json b/data/presets/presets/amenity/monastery.json index 0a1611e634..fdaa349c7e 100644 --- a/data/presets/presets/amenity/monastery.json +++ b/data/presets/presets/amenity/monastery.json @@ -10,6 +10,7 @@ "moreFields": [ "email", "fax", + "gnis/feature_id", "phone", "website", "wheelchair" diff --git a/data/presets/presets/amenity/music_school.json b/data/presets/presets/amenity/music_school.json index 431a0d17bf..c2aaab7729 100644 --- a/data/presets/presets/amenity/music_school.json +++ b/data/presets/presets/amenity/music_school.json @@ -10,6 +10,7 @@ "moreFields": [ "email", "fax", + "gnis/feature_id", "level", "payment_multi", "phone", diff --git a/data/presets/presets/amenity/nightclub.json b/data/presets/presets/amenity/nightclub.json index 2a39c60bc2..1a7d1c71b9 100644 --- a/data/presets/presets/amenity/nightclub.json +++ b/data/presets/presets/amenity/nightclub.json @@ -13,6 +13,7 @@ "air_conditioning", "email", "fax", + "gnis/feature_id", "level", "payment_multi", "phone", diff --git a/data/presets/presets/amenity/pharmacy.json b/data/presets/presets/amenity/pharmacy.json index 8237fa8d3a..3e3b42b511 100644 --- a/data/presets/presets/amenity/pharmacy.json +++ b/data/presets/presets/amenity/pharmacy.json @@ -11,6 +11,7 @@ "moreFields": [ "email", "fax", + "gnis/feature_id", "level", "opening_hours", "payment_multi", diff --git a/data/presets/presets/amenity/place_of_worship.json b/data/presets/presets/amenity/place_of_worship.json index 8585ef114d..a949058bfd 100644 --- a/data/presets/presets/amenity/place_of_worship.json +++ b/data/presets/presets/amenity/place_of_worship.json @@ -12,6 +12,7 @@ "air_conditioning", "email", "fax", + "gnis/feature_id", "internet_access", "internet_access/ssid", "level", diff --git a/data/presets/presets/amenity/planetarium.json b/data/presets/presets/amenity/planetarium.json index bc95277764..4e1128e656 100644 --- a/data/presets/presets/amenity/planetarium.json +++ b/data/presets/presets/amenity/planetarium.json @@ -13,6 +13,7 @@ "email", "fax", "fee", + "gnis/feature_id", "payment_multi_fee", "phone", "website", diff --git a/data/presets/presets/amenity/police.json b/data/presets/presets/amenity/police.json index df9879b369..01f330ee20 100644 --- a/data/presets/presets/amenity/police.json +++ b/data/presets/presets/amenity/police.json @@ -10,6 +10,7 @@ "moreFields": [ "email", "fax", + "gnis/feature_id", "level", "phone", "polling_station", diff --git a/data/presets/presets/amenity/polling_station.json b/data/presets/presets/amenity/polling_station.json index 5b609d7b3f..4fed245f99 100644 --- a/data/presets/presets/amenity/polling_station.json +++ b/data/presets/presets/amenity/polling_station.json @@ -12,6 +12,7 @@ "air_conditioning", "email", "fax", + "gnis/feature_id", "internet_access", "internet_access/fee", "internet_access/ssid", diff --git a/data/presets/presets/amenity/post_box.json b/data/presets/presets/amenity/post_box.json index ddc03c6fce..91c72f5678 100644 --- a/data/presets/presets/amenity/post_box.json +++ b/data/presets/presets/amenity/post_box.json @@ -10,6 +10,7 @@ "access_simple", "brand", "covered", + "gnis/feature_id", "height", "indoor", "level", diff --git a/data/presets/presets/amenity/post_depot.json b/data/presets/presets/amenity/post_depot.json index 02140084dc..c4f92d6364 100644 --- a/data/presets/presets/amenity/post_depot.json +++ b/data/presets/presets/amenity/post_depot.json @@ -10,6 +10,7 @@ "moreFields": [ "email", "fax", + "gnis/feature_id", "opening_hours", "website", "wheelchair" diff --git a/data/presets/presets/amenity/post_office.json b/data/presets/presets/amenity/post_office.json index 74a90e888e..5c6ba0f10c 100644 --- a/data/presets/presets/amenity/post_office.json +++ b/data/presets/presets/amenity/post_office.json @@ -11,6 +11,7 @@ "brand", "email", "fax", + "gnis/feature_id", "internet_access", "internet_access/fee", "internet_access/ssid", diff --git a/data/presets/presets/amenity/prep_school.json b/data/presets/presets/amenity/prep_school.json index 40a4532f74..069ab03247 100644 --- a/data/presets/presets/amenity/prep_school.json +++ b/data/presets/presets/amenity/prep_school.json @@ -10,6 +10,7 @@ "moreFields": [ "email", "fax", + "gnis/feature_id", "level", "payment_multi", "phone", diff --git a/data/presets/presets/amenity/prison.json b/data/presets/presets/amenity/prison.json index 0753862ee9..3ef3a980c2 100644 --- a/data/presets/presets/amenity/prison.json +++ b/data/presets/presets/amenity/prison.json @@ -9,6 +9,7 @@ "moreFields": [ "email", "fax", + "gnis/feature_id", "phone", "website", "wheelchair" diff --git a/data/presets/presets/amenity/pub.json b/data/presets/presets/amenity/pub.json index ca943bd4e3..4e4f6e46e2 100644 --- a/data/presets/presets/amenity/pub.json +++ b/data/presets/presets/amenity/pub.json @@ -13,6 +13,7 @@ "diet_multi", "email", "fax", + "gnis/feature_id", "internet_access", "internet_access/fee", "internet_access/ssid", diff --git a/data/presets/presets/amenity/public_bath.json b/data/presets/presets/amenity/public_bath.json index 0fa486d143..3aa587aff8 100644 --- a/data/presets/presets/amenity/public_bath.json +++ b/data/presets/presets/amenity/public_bath.json @@ -13,6 +13,7 @@ "moreFields": [ "email", "fax", + "gnis/feature_id", "internet_access", "internet_access/fee", "internet_access/ssid", diff --git a/data/presets/presets/amenity/ranger_station.json b/data/presets/presets/amenity/ranger_station.json index 504646b1f3..dd39965ce9 100644 --- a/data/presets/presets/amenity/ranger_station.json +++ b/data/presets/presets/amenity/ranger_station.json @@ -10,6 +10,7 @@ "moreFields": [ "email", "fax", + "gnis/feature_id", "internet_access", "internet_access/fee", "internet_access/ssid", diff --git a/data/presets/presets/amenity/research_institute.json b/data/presets/presets/amenity/research_institute.json index 768f7c8a49..057058e604 100644 --- a/data/presets/presets/amenity/research_institute.json +++ b/data/presets/presets/amenity/research_institute.json @@ -12,6 +12,7 @@ "moreFields": [ "email", "fax", + "gnis/feature_id", "internet_access/ssid", "phone", "wheelchair" diff --git a/data/presets/presets/amenity/restaurant.json b/data/presets/presets/amenity/restaurant.json index 2f173d746d..343d13e0d8 100644 --- a/data/presets/presets/amenity/restaurant.json +++ b/data/presets/presets/amenity/restaurant.json @@ -17,6 +17,7 @@ "diet_multi", "email", "fax", + "gnis/feature_id", "internet_access", "internet_access/fee", "internet_access/ssid", diff --git a/data/presets/presets/amenity/school.json b/data/presets/presets/amenity/school.json index 2ea579c159..45ad105c3b 100644 --- a/data/presets/presets/amenity/school.json +++ b/data/presets/presets/amenity/school.json @@ -14,6 +14,7 @@ "email", "fax", "fee", + "gnis/feature_id", "internet_access", "internet_access/ssid", "level", diff --git a/data/presets/presets/amenity/shelter.json b/data/presets/presets/amenity/shelter.json index 16f276840c..9d8fb1eb52 100644 --- a/data/presets/presets/amenity/shelter.json +++ b/data/presets/presets/amenity/shelter.json @@ -8,6 +8,7 @@ "bin" ], "moreFields": [ + "gnis/feature_id", "lit", "lockable", "wheelchair" diff --git a/data/presets/presets/amenity/social_centre.json b/data/presets/presets/amenity/social_centre.json index aea97bd2a0..b8922533a4 100644 --- a/data/presets/presets/amenity/social_centre.json +++ b/data/presets/presets/amenity/social_centre.json @@ -12,6 +12,7 @@ "air_conditioning", "email", "fax", + "gnis/feature_id", "internet_access", "internet_access/fee", "internet_access/ssid", diff --git a/data/presets/presets/amenity/social_facility.json b/data/presets/presets/amenity/social_facility.json index c6ec59246f..e7f92d4354 100644 --- a/data/presets/presets/amenity/social_facility.json +++ b/data/presets/presets/amenity/social_facility.json @@ -12,6 +12,7 @@ "moreFields": [ "email", "fax", + "gnis/feature_id", "internet_access", "internet_access/fee", "internet_access/ssid", diff --git a/data/presets/presets/amenity/studio.json b/data/presets/presets/amenity/studio.json index d7e9691036..771a0f5e39 100644 --- a/data/presets/presets/amenity/studio.json +++ b/data/presets/presets/amenity/studio.json @@ -10,6 +10,7 @@ "moreFields": [ "email", "fax", + "gnis/feature_id", "internet_access", "internet_access/fee", "internet_access/ssid", diff --git a/data/presets/presets/amenity/theatre.json b/data/presets/presets/amenity/theatre.json index 4e9d0133c6..7fca849b8f 100644 --- a/data/presets/presets/amenity/theatre.json +++ b/data/presets/presets/amenity/theatre.json @@ -11,6 +11,7 @@ "air_conditioning", "email", "fax", + "gnis/feature_id", "internet_access", "internet_access/fee", "internet_access/ssid", diff --git a/data/presets/presets/amenity/townhall.json b/data/presets/presets/amenity/townhall.json index f42066d1f4..cd5b038ea2 100644 --- a/data/presets/presets/amenity/townhall.json +++ b/data/presets/presets/amenity/townhall.json @@ -10,6 +10,7 @@ "moreFields": [ "email", "fax", + "gnis/feature_id", "phone", "polling_station", "smoking", diff --git a/data/presets/presets/amenity/vehicle_inspection.json b/data/presets/presets/amenity/vehicle_inspection.json index a21e9f3eb9..882e010344 100644 --- a/data/presets/presets/amenity/vehicle_inspection.json +++ b/data/presets/presets/amenity/vehicle_inspection.json @@ -10,6 +10,7 @@ "moreFields": [ "email", "fax", + "gnis/feature_id", "payment_multi", "phone", "website", diff --git a/data/presets/presets/amenity/veterinary.json b/data/presets/presets/amenity/veterinary.json index 5343c89142..c8e0fdf58a 100644 --- a/data/presets/presets/amenity/veterinary.json +++ b/data/presets/presets/amenity/veterinary.json @@ -12,6 +12,7 @@ "email", "fax", "fee", + "gnis/feature_id", "level", "payment_multi_fee", "phone", diff --git a/data/presets/presets/building.json b/data/presets/presets/building.json index 6db75c7228..e41989ef4a 100644 --- a/data/presets/presets/building.json +++ b/data/presets/presets/building.json @@ -11,6 +11,7 @@ "architect", "building/levels/underground", "building/material", + "gnis/feature_id", "layer", "not/name", "operator", diff --git a/data/presets/presets/club.json b/data/presets/presets/club.json index 441c359d83..ff0515e801 100644 --- a/data/presets/presets/club.json +++ b/data/presets/presets/club.json @@ -13,6 +13,7 @@ "building/levels_building", "email", "fax", + "gnis/feature_id", "height_building", "internet_access", "internet_access/fee", diff --git a/data/presets/presets/craft.json b/data/presets/presets/craft.json index 02207450fc..a8671b525b 100644 --- a/data/presets/presets/craft.json +++ b/data/presets/presets/craft.json @@ -13,6 +13,7 @@ "building/levels_building", "email", "fax", + "gnis/feature_id", "height_building", "internet_access", "internet_access/fee", diff --git a/data/presets/presets/emergency/ambulance_station.json b/data/presets/presets/emergency/ambulance_station.json index 47108d6215..79aa1138e4 100644 --- a/data/presets/presets/emergency/ambulance_station.json +++ b/data/presets/presets/emergency/ambulance_station.json @@ -9,6 +9,7 @@ "moreFields": [ "email", "fax", + "gnis/feature_id", "phone", "website", "wheelchair" diff --git a/data/presets/presets/ford.json b/data/presets/presets/ford.json index 9f7ca8aa96..c76451baab 100644 --- a/data/presets/presets/ford.json +++ b/data/presets/presets/ford.json @@ -5,6 +5,9 @@ "access", "seasonal" ], + "moreFields": [ + "gnis/feature_id" + ], "geometry": [ "vertex" ], diff --git a/data/presets/presets/healthcare.json b/data/presets/presets/healthcare.json index abd775604e..5142b1b69a 100644 --- a/data/presets/presets/healthcare.json +++ b/data/presets/presets/healthcare.json @@ -13,6 +13,7 @@ "building/levels_building", "email", "fax", + "gnis/feature_id", "height_building", "level", "opening_hours", diff --git a/data/presets/presets/highway/path.json b/data/presets/presets/highway/path.json index 96d4a79245..341ca31ce8 100644 --- a/data/presets/presets/highway/path.json +++ b/data/presets/presets/highway/path.json @@ -11,6 +11,7 @@ "moreFields": [ "covered", "dog", + "gnis/feature_id", "horse_scale", "informal", "lit", diff --git a/data/presets/presets/highway/trailhead.json b/data/presets/presets/highway/trailhead.json index 281d46bc3c..5785ba491f 100644 --- a/data/presets/presets/highway/trailhead.json +++ b/data/presets/presets/highway/trailhead.json @@ -11,6 +11,7 @@ "charge_fee" ], "moreFields": [ + "gnis/feature_id", "opening_hours" ], "geometry": [ diff --git a/data/presets/presets/historic.json b/data/presets/presets/historic.json index 18f314c440..ef648faab4 100644 --- a/data/presets/presets/historic.json +++ b/data/presets/presets/historic.json @@ -4,6 +4,9 @@ "historic", "inscription" ], + "moreFields": [ + "gnis/feature_id" + ], "geometry": [ "point", "vertex", diff --git a/data/presets/presets/historic/boundary_stone.json b/data/presets/presets/historic/boundary_stone.json index b40d655a98..5dcbcd3a3e 100644 --- a/data/presets/presets/historic/boundary_stone.json +++ b/data/presets/presets/historic/boundary_stone.json @@ -5,6 +5,7 @@ "inscription" ], "moreFields": [ + "{historic}", "material" ], "geometry": [ diff --git a/data/presets/presets/historic/memorial.json b/data/presets/presets/historic/memorial.json index c8258e472d..eb7896893d 100644 --- a/data/presets/presets/historic/memorial.json +++ b/data/presets/presets/historic/memorial.json @@ -7,6 +7,7 @@ "material" ], "moreFields": [ + "{historic}", "website" ], "geometry": [ diff --git a/data/presets/presets/historic/monument.json b/data/presets/presets/historic/monument.json index 7527c26826..dae8f583ef 100644 --- a/data/presets/presets/historic/monument.json +++ b/data/presets/presets/historic/monument.json @@ -6,6 +6,7 @@ "access_simple" ], "moreFields": [ + "{historic}", "material" ], "geometry": [ diff --git a/data/presets/presets/historic/wayside_cross.json b/data/presets/presets/historic/wayside_cross.json index 8f17fd4e23..3b45f0ea59 100644 --- a/data/presets/presets/historic/wayside_cross.json +++ b/data/presets/presets/historic/wayside_cross.json @@ -5,6 +5,7 @@ "inscription" ], "moreFields": [ + "{historic}", "material" ], "geometry": [ diff --git a/data/presets/presets/historic/wreck.json b/data/presets/presets/historic/wreck.json index 722cdc10f4..0650a602a0 100644 --- a/data/presets/presets/historic/wreck.json +++ b/data/presets/presets/historic/wreck.json @@ -9,6 +9,7 @@ "historic/wreck/visible_at_high_tide" ], "moreFields": [ + "{historic}", "seamark/type" ], "geometry": [ diff --git a/data/presets/presets/leisure/amusement_arcade.json b/data/presets/presets/leisure/amusement_arcade.json index f4e77ec159..8ad6e5e5e4 100644 --- a/data/presets/presets/leisure/amusement_arcade.json +++ b/data/presets/presets/leisure/amusement_arcade.json @@ -10,6 +10,7 @@ "air_conditioning", "email", "fax", + "gnis/feature_id", "level", "max_age", "min_age", diff --git a/data/presets/presets/leisure/bandstand.json b/data/presets/presets/leisure/bandstand.json index be248dad33..566cc5954c 100644 --- a/data/presets/presets/leisure/bandstand.json +++ b/data/presets/presets/leisure/bandstand.json @@ -6,6 +6,7 @@ "operator" ], "moreFields": [ + "gnis/feature_id", "website" ], "geometry": [ diff --git a/data/presets/presets/leisure/beach_resort.json b/data/presets/presets/leisure/beach_resort.json index 2470a6cf2a..28b01622cb 100644 --- a/data/presets/presets/leisure/beach_resort.json +++ b/data/presets/presets/leisure/beach_resort.json @@ -11,6 +11,7 @@ "moreFields": [ "email", "fax", + "gnis/feature_id", "phone", "smoking", "website" diff --git a/data/presets/presets/leisure/bowling_alley.json b/data/presets/presets/leisure/bowling_alley.json index 301d25fb61..e7cab8e17d 100644 --- a/data/presets/presets/leisure/bowling_alley.json +++ b/data/presets/presets/leisure/bowling_alley.json @@ -10,6 +10,7 @@ "air_conditioning", "email", "fax", + "gnis/feature_id", "level", "min_age", "opening_hours", diff --git a/data/presets/presets/leisure/common.json b/data/presets/presets/leisure/common.json index 91de2a283d..4dc2e015a5 100644 --- a/data/presets/presets/leisure/common.json +++ b/data/presets/presets/leisure/common.json @@ -1,9 +1,11 @@ { "icon": "temaki-pedestrian", "fields": [ - "name" + "name", + "access_simple" ], "moreFields": [ + "gnis/feature_id", "website" ], "geometry": [ diff --git a/data/presets/presets/leisure/dance.json b/data/presets/presets/leisure/dance.json index 0045342eb3..de76adf42b 100644 --- a/data/presets/presets/leisure/dance.json +++ b/data/presets/presets/leisure/dance.json @@ -10,6 +10,7 @@ "moreFields": [ "email", "fax", + "gnis/feature_id", "level", "opening_hours", "payment_multi", diff --git a/data/presets/presets/leisure/dancing_school.json b/data/presets/presets/leisure/dancing_school.json index ea3317958e..1039f1dee4 100644 --- a/data/presets/presets/leisure/dancing_school.json +++ b/data/presets/presets/leisure/dancing_school.json @@ -10,6 +10,7 @@ "moreFields": [ "email", "fax", + "gnis/feature_id", "level", "opening_hours", "payment_multi", diff --git a/data/presets/presets/leisure/disc_golf_course.json b/data/presets/presets/leisure/disc_golf_course.json index bdc37380d7..5234da5133 100644 --- a/data/presets/presets/leisure/disc_golf_course.json +++ b/data/presets/presets/leisure/disc_golf_course.json @@ -14,6 +14,7 @@ "dog", "email", "fax", + "gnis/feature_id", "lit", "phone", "website", diff --git a/data/presets/presets/leisure/dog_park.json b/data/presets/presets/leisure/dog_park.json index f66be0581a..489fa0af86 100644 --- a/data/presets/presets/leisure/dog_park.json +++ b/data/presets/presets/leisure/dog_park.json @@ -6,6 +6,7 @@ "moreFields": [ "email", "fax", + "gnis/feature_id", "phone", "website" ], diff --git a/data/presets/presets/leisure/fitness_centre.json b/data/presets/presets/leisure/fitness_centre.json index c259735957..480659b0e2 100644 --- a/data/presets/presets/leisure/fitness_centre.json +++ b/data/presets/presets/leisure/fitness_centre.json @@ -11,6 +11,7 @@ "email", "fax", "fee", + "gnis/feature_id", "opening_hours", "payment_multi", "phone", diff --git a/data/presets/presets/leisure/garden.json b/data/presets/presets/leisure/garden.json index 23c1e275ed..8830ead17c 100644 --- a/data/presets/presets/leisure/garden.json +++ b/data/presets/presets/leisure/garden.json @@ -11,6 +11,7 @@ "moreFields": [ "email", "fax", + "gnis/feature_id", "phone", "website" ], diff --git a/data/presets/presets/leisure/golf_course.json b/data/presets/presets/leisure/golf_course.json index 798969a262..b92353f378 100644 --- a/data/presets/presets/leisure/golf_course.json +++ b/data/presets/presets/leisure/golf_course.json @@ -9,6 +9,7 @@ "moreFields": [ "email", "fax", + "gnis/feature_id", "payment_multi", "phone", "website" diff --git a/data/presets/presets/leisure/hackerspace.json b/data/presets/presets/leisure/hackerspace.json index 35028b9bc1..9501df643e 100644 --- a/data/presets/presets/leisure/hackerspace.json +++ b/data/presets/presets/leisure/hackerspace.json @@ -17,6 +17,7 @@ "air_conditioning", "email", "fax", + "gnis/feature_id", "level", "phone", "smoking", diff --git a/data/presets/presets/leisure/horse_riding.json b/data/presets/presets/leisure/horse_riding.json index ff07af7797..d29d940a41 100644 --- a/data/presets/presets/leisure/horse_riding.json +++ b/data/presets/presets/leisure/horse_riding.json @@ -10,6 +10,7 @@ "moreFields": [ "email", "fax", + "gnis/feature_id", "opening_hours", "payment_multi", "phone", diff --git a/data/presets/presets/leisure/ice_rink.json b/data/presets/presets/leisure/ice_rink.json index fb8247b32f..c458c06a4a 100644 --- a/data/presets/presets/leisure/ice_rink.json +++ b/data/presets/presets/leisure/ice_rink.json @@ -11,6 +11,7 @@ "moreFields": [ "email", "fax", + "gnis/feature_id", "level", "opening_hours", "payment_multi", diff --git a/data/presets/presets/leisure/marina.json b/data/presets/presets/leisure/marina.json index 0eb6635549..b4265b45ca 100644 --- a/data/presets/presets/leisure/marina.json +++ b/data/presets/presets/leisure/marina.json @@ -14,6 +14,7 @@ "address", "email", "fax", + "gnis/feature_id", "internet_access", "internet_access/fee", "internet_access/ssid", diff --git a/data/presets/presets/leisure/miniature_golf.json b/data/presets/presets/leisure/miniature_golf.json index 0a26fe8cab..c3cd3b405d 100644 --- a/data/presets/presets/leisure/miniature_golf.json +++ b/data/presets/presets/leisure/miniature_golf.json @@ -12,6 +12,7 @@ "moreFields": [ "email", "fax", + "gnis/feature_id", "phone", "website" ], diff --git a/data/presets/presets/leisure/nature_reserve.json b/data/presets/presets/leisure/nature_reserve.json index d3df0e7b97..205587e43d 100644 --- a/data/presets/presets/leisure/nature_reserve.json +++ b/data/presets/presets/leisure/nature_reserve.json @@ -14,6 +14,7 @@ "dog", "email", "fax", + "gnis/feature_id", "phone", "website" ], diff --git a/data/presets/presets/leisure/park.json b/data/presets/presets/leisure/park.json index 0bcc9f9f0b..ff1e43af31 100644 --- a/data/presets/presets/leisure/park.json +++ b/data/presets/presets/leisure/park.json @@ -10,6 +10,7 @@ "dog", "email", "fax", + "gnis/feature_id", "phone", "smoking", "website" diff --git a/data/presets/presets/leisure/pitch.json b/data/presets/presets/leisure/pitch.json index 6bb839718d..628d57c6d3 100644 --- a/data/presets/presets/leisure/pitch.json +++ b/data/presets/presets/leisure/pitch.json @@ -11,6 +11,7 @@ "charge_fee", "covered", "fee", + "gnis/feature_id", "indoor", "payment_multi_fee" ], diff --git a/data/presets/presets/leisure/playground.json b/data/presets/presets/leisure/playground.json index a4c666bb16..fee2d274ea 100644 --- a/data/presets/presets/leisure/playground.json +++ b/data/presets/presets/leisure/playground.json @@ -12,6 +12,7 @@ "moreFields": [ "blind", "dog", + "gnis/feature_id", "wheelchair" ], "geometry": [ diff --git a/data/presets/presets/leisure/resort.json b/data/presets/presets/leisure/resort.json index f02eaa9b97..ae19fc01ad 100644 --- a/data/presets/presets/leisure/resort.json +++ b/data/presets/presets/leisure/resort.json @@ -11,6 +11,7 @@ "access_simple", "email", "fax", + "gnis/feature_id", "internet_access", "internet_access/fee", "internet_access/ssid", diff --git a/data/presets/presets/leisure/sauna.json b/data/presets/presets/leisure/sauna.json index 7b012afaf8..a3bfbdae59 100644 --- a/data/presets/presets/leisure/sauna.json +++ b/data/presets/presets/leisure/sauna.json @@ -13,6 +13,7 @@ "moreFields": [ "email", "fax", + "gnis/feature_id", "level", "phone", "website" diff --git a/data/presets/presets/leisure/sports_centre.json b/data/presets/presets/leisure/sports_centre.json index 5ed928f151..ea217d83db 100644 --- a/data/presets/presets/leisure/sports_centre.json +++ b/data/presets/presets/leisure/sports_centre.json @@ -12,6 +12,7 @@ "moreFields": [ "email", "fax", + "gnis/feature_id", "opening_hours", "phone", "website" diff --git a/data/presets/presets/leisure/stadium.json b/data/presets/presets/leisure/stadium.json index d30bbc67c2..39e51fbe44 100644 --- a/data/presets/presets/leisure/stadium.json +++ b/data/presets/presets/leisure/stadium.json @@ -8,6 +8,7 @@ "moreFields": [ "email", "fax", + "gnis/feature_id", "phone", "website" ], diff --git a/data/presets/presets/leisure/swimming_pool.json b/data/presets/presets/leisure/swimming_pool.json index 237196a855..8bd3c687bf 100644 --- a/data/presets/presets/leisure/swimming_pool.json +++ b/data/presets/presets/leisure/swimming_pool.json @@ -11,6 +11,7 @@ "moreFields": [ "address", "level", + "gnis/feature_id", "opening_hours", "operator" ], diff --git a/data/presets/presets/leisure/track.json b/data/presets/presets/leisure/track.json index d4f8899d7f..c39c5a4760 100644 --- a/data/presets/presets/leisure/track.json +++ b/data/presets/presets/leisure/track.json @@ -10,6 +10,7 @@ "moreFields": [ "access", "covered", + "gnis/feature_id", "indoor", "level" ], diff --git a/data/presets/presets/leisure/water_park.json b/data/presets/presets/leisure/water_park.json index 3887295e8d..ac7e1f65ef 100644 --- a/data/presets/presets/leisure/water_park.json +++ b/data/presets/presets/leisure/water_park.json @@ -9,6 +9,7 @@ "brand", "email", "fax", + "gnis/feature_id", "payment_multi", "phone", "website" diff --git a/data/presets/presets/man_made/adit.json b/data/presets/presets/man_made/adit.json index 793685d04b..2084560d2d 100644 --- a/data/presets/presets/man_made/adit.json +++ b/data/presets/presets/man_made/adit.json @@ -10,6 +10,9 @@ "resource", "direction" ], + "moreFields": [ + "gnis/feature_id" + ], "terms": [ "cave", "horizontal mine entrance", diff --git a/data/presets/presets/man_made/bridge.json b/data/presets/presets/man_made/bridge.json index 8389332c23..8f25289b62 100644 --- a/data/presets/presets/man_made/bridge.json +++ b/data/presets/presets/man_made/bridge.json @@ -7,6 +7,7 @@ "maxweight" ], "moreFields": [ + "gnis/feature_id", "manufacturer", "material", "seamark/type" diff --git a/data/presets/presets/man_made/bunker_silo.json b/data/presets/presets/man_made/bunker_silo.json index a4bf115369..1dd403a96a 100644 --- a/data/presets/presets/man_made/bunker_silo.json +++ b/data/presets/presets/man_made/bunker_silo.json @@ -3,6 +3,9 @@ "fields": [ "content" ], + "moreFields": [ + "gnis/feature_id" + ], "geometry": [ "point", "area" diff --git a/data/presets/presets/man_made/lighthouse.json b/data/presets/presets/man_made/lighthouse.json index ab3c46d47e..25e28612e8 100644 --- a/data/presets/presets/man_made/lighthouse.json +++ b/data/presets/presets/man_made/lighthouse.json @@ -10,6 +10,7 @@ "address", "email", "fax", + "gnis/feature_id", "phone", "seamark/type", "website" diff --git a/data/presets/presets/man_made/mast.json b/data/presets/presets/man_made/mast.json index 804fd7c7b5..03fd9bbaeb 100644 --- a/data/presets/presets/man_made/mast.json +++ b/data/presets/presets/man_made/mast.json @@ -7,6 +7,7 @@ ], "moreFields": [ "communication_multi", + "gnis/feature_id", "manufacturer", "material" ], diff --git a/data/presets/presets/man_made/mineshaft.json b/data/presets/presets/man_made/mineshaft.json index 97af5fa55c..4f133fd4aa 100644 --- a/data/presets/presets/man_made/mineshaft.json +++ b/data/presets/presets/man_made/mineshaft.json @@ -9,6 +9,9 @@ "operator", "resource" ], + "moreFields": [ + "gnis/feature_id" + ], "terms": [ "cave", "mine shaft", diff --git a/data/presets/presets/man_made/observatory.json b/data/presets/presets/man_made/observatory.json index 8c4faa7949..a0ba83d4d0 100644 --- a/data/presets/presets/man_made/observatory.json +++ b/data/presets/presets/man_made/observatory.json @@ -9,6 +9,7 @@ "moreFields": [ "email", "fax", + "gnis/feature_id", "phone", "website" ], diff --git a/data/presets/presets/man_made/petroleum_well.json b/data/presets/presets/man_made/petroleum_well.json index a4fb342b90..4b094da65e 100644 --- a/data/presets/presets/man_made/petroleum_well.json +++ b/data/presets/presets/man_made/petroleum_well.json @@ -1,5 +1,8 @@ { "icon": "temaki-oil_well", + "moreFields": [ + "gnis/feature_id" + ], "geometry": [ "point" ], diff --git a/data/presets/presets/man_made/pier.json b/data/presets/presets/man_made/pier.json index 369c2c9819..1686f0f600 100644 --- a/data/presets/presets/man_made/pier.json +++ b/data/presets/presets/man_made/pier.json @@ -12,6 +12,7 @@ "{highway/footway}", "access", "fishing", + "gnis/feature_id", "incline" ], "geometry": [ diff --git a/data/presets/presets/man_made/pumping_station.json b/data/presets/presets/man_made/pumping_station.json index 14f2c9dda7..1fb9006434 100644 --- a/data/presets/presets/man_made/pumping_station.json +++ b/data/presets/presets/man_made/pumping_station.json @@ -4,6 +4,9 @@ "point", "area" ], + "moreFields": [ + "gnis/feature_id" + ], "tags": { "man_made": "pumping_station" }, diff --git a/data/presets/presets/man_made/silo.json b/data/presets/presets/man_made/silo.json index 77e6c899a0..8a319a994b 100644 --- a/data/presets/presets/man_made/silo.json +++ b/data/presets/presets/man_made/silo.json @@ -4,6 +4,9 @@ "crop", "building_area" ], + "moreFields": [ + "gnis/feature_id" + ], "geometry": [ "point", "area" diff --git a/data/presets/presets/man_made/tower.json b/data/presets/presets/man_made/tower.json index 8d2837c4dd..1b15b2ddbb 100644 --- a/data/presets/presets/man_made/tower.json +++ b/data/presets/presets/man_made/tower.json @@ -7,7 +7,8 @@ "building_area" ], "moreFields": [ - "architect" + "architect", + "gnis/feature_id" ], "geometry": [ "point", diff --git a/data/presets/presets/man_made/tunnel.json b/data/presets/presets/man_made/tunnel.json index d28b6c8298..c4e7cd1173 100644 --- a/data/presets/presets/man_made/tunnel.json +++ b/data/presets/presets/man_made/tunnel.json @@ -8,6 +8,9 @@ "length", "height" ], + "moreFields": [ + "gnis/feature_id" + ], "geometry": [ "area" ], diff --git a/data/presets/presets/man_made/wastewater_plant.json b/data/presets/presets/man_made/wastewater_plant.json index bbfbf06f1b..28df393c50 100644 --- a/data/presets/presets/man_made/wastewater_plant.json +++ b/data/presets/presets/man_made/wastewater_plant.json @@ -8,6 +8,7 @@ "moreFields": [ "email", "fax", + "gnis/feature_id", "phone", "website" ], diff --git a/data/presets/presets/man_made/water_tower.json b/data/presets/presets/man_made/water_tower.json index a16f17adc4..4557d4c3aa 100644 --- a/data/presets/presets/man_made/water_tower.json +++ b/data/presets/presets/man_made/water_tower.json @@ -4,6 +4,9 @@ "operator", "height" ], + "moreFields": [ + "gnis/feature_id" + ], "geometry": [ "point", "area" diff --git a/data/presets/presets/man_made/water_well.json b/data/presets/presets/man_made/water_well.json index 2761c73d00..7d713261e5 100644 --- a/data/presets/presets/man_made/water_well.json +++ b/data/presets/presets/man_made/water_well.json @@ -7,6 +7,9 @@ "pump", "access_simple" ], + "moreFields": [ + "gnis/feature_id" + ], "geometry": [ "point", "area" diff --git a/data/presets/presets/man_made/water_works.json b/data/presets/presets/man_made/water_works.json index 8c7f6b8dcd..e08e85be4c 100644 --- a/data/presets/presets/man_made/water_works.json +++ b/data/presets/presets/man_made/water_works.json @@ -5,6 +5,9 @@ "operator", "address" ], + "moreFields": [ + "gnis/feature_id" + ], "geometry": [ "point", "area" diff --git a/data/presets/presets/man_made/watermill.json b/data/presets/presets/man_made/watermill.json index 7451329188..8ae9246fa2 100644 --- a/data/presets/presets/man_made/watermill.json +++ b/data/presets/presets/man_made/watermill.json @@ -3,6 +3,9 @@ "fields": [ "building_area" ], + "moreFields": [ + "gnis/feature_id" + ], "geometry": [ "point", "area" diff --git a/data/presets/presets/man_made/windmill.json b/data/presets/presets/man_made/windmill.json index 7fc84f8310..fa5efca5df 100644 --- a/data/presets/presets/man_made/windmill.json +++ b/data/presets/presets/man_made/windmill.json @@ -3,6 +3,9 @@ "fields": [ "building_area" ], + "moreFields": [ + "gnis/feature_id" + ], "geometry": [ "point", "area" diff --git a/data/presets/presets/man_made/works.json b/data/presets/presets/man_made/works.json index ffc492fbfe..aaf98a6c10 100644 --- a/data/presets/presets/man_made/works.json +++ b/data/presets/presets/man_made/works.json @@ -10,6 +10,7 @@ "moreFields": [ "email", "fax", + "gnis/feature_id", "phone", "website" ], diff --git a/data/presets/presets/military/bunker.json b/data/presets/presets/military/bunker.json index df152d2815..3b62f4d5dc 100644 --- a/data/presets/presets/military/bunker.json +++ b/data/presets/presets/military/bunker.json @@ -5,6 +5,9 @@ "bunker_type", "building_area" ], + "moreFields": [ + "gnis/feature_id" + ], "geometry": [ "point", "area" diff --git a/data/presets/presets/military/nuclear_explosion_site.json b/data/presets/presets/military/nuclear_explosion_site.json index accb74cce7..38d357c745 100644 --- a/data/presets/presets/military/nuclear_explosion_site.json +++ b/data/presets/presets/military/nuclear_explosion_site.json @@ -3,6 +3,9 @@ "fields": [ "name" ], + "moreFields": [ + "gnis/feature_id" + ], "geometry": [ "point", "vertex", diff --git a/data/presets/presets/military/office.json b/data/presets/presets/military/office.json index 2fc50f9192..1221bc5411 100644 --- a/data/presets/presets/military/office.json +++ b/data/presets/presets/military/office.json @@ -5,6 +5,7 @@ "building_area" ], "moreFields": [ + "gnis/feature_id", "level" ], "geometry": [ diff --git a/data/presets/presets/natural/water.json b/data/presets/presets/natural/water.json index 2bfe630fc4..eaf72995a0 100644 --- a/data/presets/presets/natural/water.json +++ b/data/presets/presets/natural/water.json @@ -7,6 +7,7 @@ ], "moreFields": [ "fishing", + "gnis/feature_id", "salt", "tidal" ], diff --git a/data/presets/presets/office.json b/data/presets/presets/office.json index 01ec84eb1c..3d22480c96 100644 --- a/data/presets/presets/office.json +++ b/data/presets/presets/office.json @@ -12,6 +12,7 @@ "building/levels_building", "email", "fax", + "gnis/feature_id", "height_building", "internet_access", "internet_access/fee", diff --git a/data/presets/presets/place/_farm.json b/data/presets/presets/place/_farm.json index 23a81ad87d..8814d70597 100644 --- a/data/presets/presets/place/_farm.json +++ b/data/presets/presets/place/_farm.json @@ -4,9 +4,6 @@ "point", "area" ], - "fields": [ - "name" - ], "tags": { "place": "farm" }, diff --git a/data/presets/presets/place/city.json b/data/presets/presets/place/city.json index ce75a3b18e..af23848da3 100644 --- a/data/presets/presets/place/city.json +++ b/data/presets/presets/place/city.json @@ -5,6 +5,7 @@ "population" ], "moreFields": [ + "{place}", "website" ], "geometry": [ diff --git a/data/presets/presets/place/city_block.json b/data/presets/presets/place/city_block.json index 7a85f44efe..25c337b41b 100644 --- a/data/presets/presets/place/city_block.json +++ b/data/presets/presets/place/city_block.json @@ -1,9 +1,7 @@ { "icon": "maki-triangle-stroked", - "fields": [ - "name" - ], "moreFields": [ + "{place}", "website" ], "geometry": [ diff --git a/data/presets/presets/place/hamlet.json b/data/presets/presets/place/hamlet.json index 0a52e6c5b1..1b79db15b9 100644 --- a/data/presets/presets/place/hamlet.json +++ b/data/presets/presets/place/hamlet.json @@ -5,6 +5,7 @@ "population" ], "moreFields": [ + "{place}", "website" ], "geometry": [ diff --git a/data/presets/presets/place/island.json b/data/presets/presets/place/island.json index 86d0ed7de2..56a2627977 100644 --- a/data/presets/presets/place/island.json +++ b/data/presets/presets/place/island.json @@ -4,9 +4,6 @@ "point", "area" ], - "fields": [ - "name" - ], "terms": [ "archipelago", "atoll", diff --git a/data/presets/presets/place/islet.json b/data/presets/presets/place/islet.json index 5875bec665..e7abb18194 100644 --- a/data/presets/presets/place/islet.json +++ b/data/presets/presets/place/islet.json @@ -4,9 +4,6 @@ "point", "area" ], - "fields": [ - "name" - ], "terms": [ "archipelago", "atoll", diff --git a/data/presets/presets/place/isolated_dwelling.json b/data/presets/presets/place/isolated_dwelling.json index 61a2ea7267..d94f37259c 100644 --- a/data/presets/presets/place/isolated_dwelling.json +++ b/data/presets/presets/place/isolated_dwelling.json @@ -4,9 +4,6 @@ "point", "area" ], - "fields": [ - "name" - ], "tags": { "place": "isolated_dwelling" }, diff --git a/data/presets/presets/place/locality.json b/data/presets/presets/place/locality.json index e5a04ad3b7..65263eb101 100644 --- a/data/presets/presets/place/locality.json +++ b/data/presets/presets/place/locality.json @@ -1,14 +1,12 @@ { "icon": "maki-triangle-stroked", - "geometry": [ - "point", - "area" - ], "moreFields": [ + "{place}", "website" ], - "fields": [ - "name" + "geometry": [ + "point", + "area" ], "tags": { "place": "locality" diff --git a/data/presets/presets/place/neighbourhood.json b/data/presets/presets/place/neighbourhood.json index 216929caf7..d86b54ce59 100644 --- a/data/presets/presets/place/neighbourhood.json +++ b/data/presets/presets/place/neighbourhood.json @@ -5,6 +5,7 @@ "population" ], "moreFields": [ + "gnis/feature_id", "website" ], "geometry": [ diff --git a/data/presets/presets/place/plot.json b/data/presets/presets/place/plot.json index b1b7b0c266..32c4e271f5 100644 --- a/data/presets/presets/place/plot.json +++ b/data/presets/presets/place/plot.json @@ -1,8 +1,5 @@ { "icon": "maki-triangle-stroked", - "fields": [ - "name" - ], "geometry": [ "point", "area" diff --git a/data/presets/presets/place/quarter.json b/data/presets/presets/place/quarter.json index 5d197b3659..db795a08fc 100644 --- a/data/presets/presets/place/quarter.json +++ b/data/presets/presets/place/quarter.json @@ -5,6 +5,7 @@ "population" ], "moreFields": [ + "{place}", "website" ], "geometry": [ diff --git a/data/presets/presets/place/square.json b/data/presets/presets/place/square.json index ff5c0c3844..05c5c74ff7 100644 --- a/data/presets/presets/place/square.json +++ b/data/presets/presets/place/square.json @@ -1,15 +1,13 @@ { "icon": "temaki-pedestrian", + "moreFields": [ + "{place}", + "website" + ], "geometry": [ "point", "area" ], - "fields": [ - "name" - ], - "moreFields": [ - "website" - ], "tags": { "place": "square" }, diff --git a/data/presets/presets/place/suburb.json b/data/presets/presets/place/suburb.json index df1bdea49b..58dfd963a0 100644 --- a/data/presets/presets/place/suburb.json +++ b/data/presets/presets/place/suburb.json @@ -5,6 +5,7 @@ "population" ], "moreFields": [ + "{place}", "website" ], "geometry": [ diff --git a/data/presets/presets/place/town.json b/data/presets/presets/place/town.json index 641beb4ebc..af682821a2 100644 --- a/data/presets/presets/place/town.json +++ b/data/presets/presets/place/town.json @@ -5,6 +5,7 @@ "population" ], "moreFields": [ + "{place}", "website" ], "geometry": [ diff --git a/data/presets/presets/place/village.json b/data/presets/presets/place/village.json index 0a3b6ea2b1..d2a8f3eff8 100644 --- a/data/presets/presets/place/village.json +++ b/data/presets/presets/place/village.json @@ -5,6 +5,7 @@ "population" ], "moreFields": [ + "{place}", "website" ], "geometry": [ diff --git a/data/presets/presets/power/plant.json b/data/presets/presets/power/plant.json index de1496cb3a..2085852a26 100644 --- a/data/presets/presets/power/plant.json +++ b/data/presets/presets/power/plant.json @@ -7,6 +7,9 @@ "plant/output/electricity", "start_date" ], + "moreFields": [ + "gnis/feature_id" + ], "geometry": [ "area" ], diff --git a/data/presets/presets/power/substation.json b/data/presets/presets/power/substation.json index 320146e59c..b9a922dd86 100644 --- a/data/presets/presets/power/substation.json +++ b/data/presets/presets/power/substation.json @@ -6,6 +6,9 @@ "building", "ref" ], + "moreFields": [ + "gnis/feature_id" + ], "geometry": [ "point", "area" diff --git a/data/presets/presets/public_transport/platform_point.json b/data/presets/presets/public_transport/platform_point.json index 4c7f7b4beb..85c1f5d977 100644 --- a/data/presets/presets/public_transport/platform_point.json +++ b/data/presets/presets/public_transport/platform_point.json @@ -10,6 +10,7 @@ "moreFields": [ "bench", "bin", + "gnis/feature_id", "level", "lit", "wheelchair" diff --git a/data/presets/presets/public_transport/station.json b/data/presets/presets/public_transport/station.json index c3fc825929..07f3ac4093 100644 --- a/data/presets/presets/public_transport/station.json +++ b/data/presets/presets/public_transport/station.json @@ -12,6 +12,7 @@ "air_conditioning", "email", "fax", + "gnis/feature_id", "internet_access/fee", "internet_access/ssid", "level", diff --git a/data/presets/presets/shop.json b/data/presets/presets/shop.json index 1ae037b71e..19a37aaadd 100644 --- a/data/presets/presets/shop.json +++ b/data/presets/presets/shop.json @@ -16,6 +16,7 @@ "currency_multi", "email", "fax", + "gnis/feature_id", "height_building", "internet_access", "internet_access/fee", diff --git a/data/presets/presets/telecom/data_center.json b/data/presets/presets/telecom/data_center.json index bd85e2f53f..0b30c95924 100644 --- a/data/presets/presets/telecom/data_center.json +++ b/data/presets/presets/telecom/data_center.json @@ -8,6 +8,7 @@ ], "moreFields": [ "address", + "gnis/feature_id", "phone", "website" ], diff --git a/data/presets/presets/tourism/alpine_hut.json b/data/presets/presets/tourism/alpine_hut.json index 75fa63a661..68b19f63fc 100644 --- a/data/presets/presets/tourism/alpine_hut.json +++ b/data/presets/presets/tourism/alpine_hut.json @@ -14,6 +14,7 @@ "moreFields": [ "email", "fax", + "gnis/feature_id", "internet_access/ssid", "phone", "reservation", diff --git a/data/presets/presets/tourism/aquarium.json b/data/presets/presets/tourism/aquarium.json index edc8b1392f..ddd2f2ba92 100644 --- a/data/presets/presets/tourism/aquarium.json +++ b/data/presets/presets/tourism/aquarium.json @@ -12,6 +12,7 @@ "email", "fax", "fee", + "gnis/feature_id", "internet_access", "internet_access/fee", "internet_access/ssid", diff --git a/data/presets/presets/tourism/attraction.json b/data/presets/presets/tourism/attraction.json index fdaa04b284..26d402fc06 100644 --- a/data/presets/presets/tourism/attraction.json +++ b/data/presets/presets/tourism/attraction.json @@ -5,6 +5,9 @@ "operator", "address" ], + "moreFields": [ + "gnis/feature_id" + ], "geometry": [ "point", "vertex", diff --git a/data/presets/presets/tourism/camp_site.json b/data/presets/presets/tourism/camp_site.json index 2baeb13dd7..878fab9c10 100644 --- a/data/presets/presets/tourism/camp_site.json +++ b/data/presets/presets/tourism/camp_site.json @@ -15,6 +15,7 @@ "moreFields": [ "email", "fax", + "gnis/feature_id", "internet_access/ssid", "phone", "power_supply", diff --git a/data/presets/presets/tourism/caravan_site.json b/data/presets/presets/tourism/caravan_site.json index 50034d0a1f..8e560e06b1 100644 --- a/data/presets/presets/tourism/caravan_site.json +++ b/data/presets/presets/tourism/caravan_site.json @@ -14,6 +14,7 @@ "email", "fax", "fee", + "gnis/feature_id", "internet_access/ssid", "operator", "payment_multi_fee", diff --git a/data/presets/presets/tourism/chalet.json b/data/presets/presets/tourism/chalet.json index 096004bf1f..ffb051d8c0 100644 --- a/data/presets/presets/tourism/chalet.json +++ b/data/presets/presets/tourism/chalet.json @@ -13,6 +13,7 @@ "building/levels_building", "email", "fax", + "gnis/feature_id", "height_building", "internet_access/ssid", "payment_multi", diff --git a/data/presets/presets/tourism/gallery.json b/data/presets/presets/tourism/gallery.json index c63459547d..a137ec3e14 100644 --- a/data/presets/presets/tourism/gallery.json +++ b/data/presets/presets/tourism/gallery.json @@ -10,6 +10,7 @@ "moreFields": [ "email", "fax", + "gnis/feature_id", "internet_access", "internet_access/fee", "internet_access/ssid", diff --git a/data/presets/presets/tourism/guest_house.json b/data/presets/presets/tourism/guest_house.json index 6b092d3e42..ad72b4a042 100644 --- a/data/presets/presets/tourism/guest_house.json +++ b/data/presets/presets/tourism/guest_house.json @@ -15,6 +15,7 @@ "building/levels_building", "email", "fax", + "gnis/feature_id", "height_building", "internet_access/ssid", "payment_multi", diff --git a/data/presets/presets/tourism/information/office.json b/data/presets/presets/tourism/information/office.json index 876a3a15ba..f2f293d48a 100644 --- a/data/presets/presets/tourism/information/office.json +++ b/data/presets/presets/tourism/information/office.json @@ -12,6 +12,7 @@ "building/levels_building", "email", "fax", + "gnis/feature_id", "height_building", "internet_access/ssid", "phone", diff --git a/data/presets/presets/tourism/motel.json b/data/presets/presets/tourism/motel.json index 6d8b9a2ad2..19c80290e2 100644 --- a/data/presets/presets/tourism/motel.json +++ b/data/presets/presets/tourism/motel.json @@ -14,6 +14,7 @@ "building/levels_building", "email", "fax", + "gnis/feature_id", "height_building", "internet_access/ssid", "operator", diff --git a/data/presets/presets/tourism/museum.json b/data/presets/presets/tourism/museum.json index 676355b3c7..eaf8f7ed3f 100644 --- a/data/presets/presets/tourism/museum.json +++ b/data/presets/presets/tourism/museum.json @@ -15,6 +15,7 @@ "email", "fax", "fee", + "gnis/feature_id", "height_building", "internet_access", "internet_access/fee", diff --git a/data/presets/presets/tourism/picnic_site.json b/data/presets/presets/tourism/picnic_site.json index 12f3d38084..81a15d19a5 100644 --- a/data/presets/presets/tourism/picnic_site.json +++ b/data/presets/presets/tourism/picnic_site.json @@ -10,6 +10,7 @@ "moreFields": [ "charge_fee", "fee", + "gnis/feature_id", "internet_access", "internet_access/fee", "internet_access/ssid", diff --git a/data/presets/presets/tourism/theme_park.json b/data/presets/presets/tourism/theme_park.json index 199ecb2ce3..a1e98897fc 100644 --- a/data/presets/presets/tourism/theme_park.json +++ b/data/presets/presets/tourism/theme_park.json @@ -9,6 +9,7 @@ "moreFields": [ "email", "fax", + "gnis/feature_id", "internet_access", "internet_access/fee", "internet_access/ssid", diff --git a/data/presets/presets/tourism/trail_riding_station.json b/data/presets/presets/tourism/trail_riding_station.json index 74f1de99a1..01a53340f5 100644 --- a/data/presets/presets/tourism/trail_riding_station.json +++ b/data/presets/presets/tourism/trail_riding_station.json @@ -10,6 +10,7 @@ "address", "email", "fax", + "gnis/feature_id", "internet_access", "internet_access/fee", "internet_access/ssid", diff --git a/data/presets/presets/tourism/wilderness_hut.json b/data/presets/presets/tourism/wilderness_hut.json index edd05df677..5e72966254 100644 --- a/data/presets/presets/tourism/wilderness_hut.json +++ b/data/presets/presets/tourism/wilderness_hut.json @@ -11,6 +11,7 @@ "fireplace" ], "moreFields": [ + "gnis/feature_id", "internet_access", "internet_access/fee", "internet_access/ssid", diff --git a/data/presets/presets/tourism/zoo.json b/data/presets/presets/tourism/zoo.json index 08686b593c..9e8be16127 100644 --- a/data/presets/presets/tourism/zoo.json +++ b/data/presets/presets/tourism/zoo.json @@ -11,6 +11,7 @@ "moreFields": [ "email", "fax", + "gnis/feature_id", "internet_access", "internet_access/fee", "internet_access/ssid", diff --git a/data/presets/presets/type/boundary/administrative.json b/data/presets/presets/type/boundary/administrative.json index be09303600..679e184a7e 100644 --- a/data/presets/presets/type/boundary/administrative.json +++ b/data/presets/presets/type/boundary/administrative.json @@ -4,6 +4,9 @@ "name", "admin_level" ], + "moreFields": [ + "gnis/feature_id" + ], "geometry": [ "relation" ], diff --git a/data/presets/presets/waterway/boatyard.json b/data/presets/presets/waterway/boatyard.json index 70b6af8341..5bb6296063 100644 --- a/data/presets/presets/waterway/boatyard.json +++ b/data/presets/presets/waterway/boatyard.json @@ -8,6 +8,7 @@ "address", "email", "fax", + "gnis/feature_id", "phone", "website", "wheelchair" diff --git a/data/presets/presets/waterway/canal.json b/data/presets/presets/waterway/canal.json index ccd7478256..7b44aafe0d 100644 --- a/data/presets/presets/waterway/canal.json +++ b/data/presets/presets/waterway/canal.json @@ -9,6 +9,7 @@ ], "moreFields": [ "fishing", + "gnis/feature_id", "salt", "tidal" ], diff --git a/data/presets/presets/waterway/canal/lock.json b/data/presets/presets/waterway/canal/lock.json index 6d9aa0d685..3121b752f1 100644 --- a/data/presets/presets/waterway/canal/lock.json +++ b/data/presets/presets/waterway/canal/lock.json @@ -6,6 +6,7 @@ "lock" ], "moreFields": [ + "gnis/feature_id", "intermittent", "salt", "tidal" diff --git a/data/presets/presets/waterway/dam.json b/data/presets/presets/waterway/dam.json index 3c9501bd0f..f45073cf73 100644 --- a/data/presets/presets/waterway/dam.json +++ b/data/presets/presets/waterway/dam.json @@ -9,6 +9,7 @@ "fields": [ "name", "operator", + "gnis/feature_id", "height", "material" ], diff --git a/data/presets/presets/waterway/river.json b/data/presets/presets/waterway/river.json index 802d85ab16..3d5c560134 100644 --- a/data/presets/presets/waterway/river.json +++ b/data/presets/presets/waterway/river.json @@ -10,6 +10,7 @@ "moreFields": [ "covered", "fishing", + "gnis/feature_id", "salt" ], "geometry": [ diff --git a/data/presets/presets/waterway/stream.json b/data/presets/presets/waterway/stream.json index 840b966dd1..0750f11195 100644 --- a/data/presets/presets/waterway/stream.json +++ b/data/presets/presets/waterway/stream.json @@ -9,6 +9,7 @@ "moreFields": [ "covered", "fishing", + "gnis/feature_id", "salt", "tidal" ], diff --git a/data/presets/presets/waterway/waterfall.json b/data/presets/presets/waterway/waterfall.json index 1727069096..0a2467656f 100644 --- a/data/presets/presets/waterway/waterfall.json +++ b/data/presets/presets/waterway/waterfall.json @@ -6,6 +6,9 @@ "width", "intermittent" ], + "moreFields": [ + "gnis/feature_id" + ], "geometry": [ "vertex" ], diff --git a/data/presets/presets/waterway/weir.json b/data/presets/presets/waterway/weir.json index aaae8ff748..344dcda221 100644 --- a/data/presets/presets/waterway/weir.json +++ b/data/presets/presets/waterway/weir.json @@ -7,6 +7,7 @@ "material" ], "moreFields": [ + "gnis/feature_id", "seamark/type" ], "geometry": [ diff --git a/data/presets/schema/field.json b/data/presets/schema/field.json index 13baeea10d..2e410238e0 100644 --- a/data/presets/schema/field.json +++ b/data/presets/schema/field.json @@ -56,6 +56,7 @@ "defaultCheck", "email", "lanes", + "identifier", "localized", "maxspeed", "multiCombo", @@ -201,6 +202,14 @@ "type": "string", "pattern": "^[a-z]{2}$" } + }, + "urlFormat": { + "description": "Permalink URL for `identifier` fields. Must contain a {value} placeholder", + "type": "string" + }, + "pattern": { + "description": "Regular expression that a valid `identifier` value is expected to match", + "type": "string" } }, "additionalProperties": false diff --git a/data/taginfo.json b/data/taginfo.json index f19194cd62..81eaaedd2b 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -1476,6 +1476,7 @@ {"key": "generator:output:electricity", "description": "🄵 Power Output"}, {"key": "generator:source", "description": "🄵 Source"}, {"key": "generator:type", "description": "🄵 Type"}, + {"key": "gnis:feature_id", "description": "🄵 GNIS Feature ID"}, {"key": "government", "description": "🄵 Type"}, {"key": "grape_variety", "description": "🄵 Grape Varieties"}, {"key": "guest_house", "description": "🄵 Type"}, diff --git a/dist/locales/en.json b/dist/locales/en.json index 189f998d11..5cd8224396 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -7,7 +7,7 @@ "undo": "undo", "zoom_to": "zoom to", "copy": "copy", - "open_wikidata": "open on wikidata.org", + "view_on": "view on {domain}", "favorite": "favorite" }, "toolbar": { @@ -3252,6 +3252,10 @@ "generator/type": { "label": "Type" }, + "gnis/feature_id": { + "label": "GNIS Feature ID", + "terms": "Federal Geographic Names Information Service,United States Board on Geographic Names,USA" + }, "government": { "label": "Type" }, diff --git a/modules/ui/fields/index.js b/modules/ui/fields/index.js index 12f5a7350d..34efd9a10c 100644 --- a/modules/ui/fields/index.js +++ b/modules/ui/fields/index.js @@ -29,6 +29,7 @@ import { import { uiFieldEmail, + uiFieldIdentifier, uiFieldNumber, uiFieldTel, uiFieldText, @@ -59,6 +60,7 @@ export var uiFields = { cycleway: uiFieldCycleway, defaultCheck: uiFieldDefaultCheck, email: uiFieldEmail, + identifier: uiFieldIdentifier, lanes: uiFieldLanes, localized: uiFieldLocalized, maxspeed: uiFieldMaxspeed, diff --git a/modules/ui/fields/input.js b/modules/ui/fields/input.js index 8a245880a1..b77a33a7ef 100644 --- a/modules/ui/fields/input.js +++ b/modules/ui/fields/input.js @@ -5,10 +5,11 @@ 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'; export { uiFieldText as uiFieldUrl, + uiFieldText as uiFieldIdentifier, uiFieldText as uiFieldNumber, uiFieldText as uiFieldTel, uiFieldText as uiFieldEmail @@ -18,6 +19,7 @@ export { export function uiFieldText(field, context) { var dispatch = d3_dispatch('change'); var input = d3_select(null); + var outlinkButton = d3_select(null); var _entity; function i(selection) { @@ -91,7 +93,46 @@ export function uiFieldText(field, context) { input.node().value = vals.join(';'); change()(); }); + } else if (field.type === 'identifier' && field.urlFormat && field.pattern) { + + input.attr('type', 'text'); + + outlinkButton = wrap.selectAll('.foreign-id-permalink') + .data([0]); + + outlinkButton.enter() + .append('button') + .attr('tabindex', -1) + .call(svgIcon('#iD-icon-out-link')) + .attr('class', 'form-field-button foreign-id-permalink') + .attr('title', function() { + var domainResults = /^https?:\/\/(.{1,}?)\//.exec(field.urlFormat); + if (domainResults.length >= 2 && domainResults[1]) { + var domain = domainResults[1]; + return t('icons.view_on', { domain: domain }); + } + return ''; + }) + .on('click', function() { + d3_event.preventDefault(); + + var value = validIdentifierValueForLink(); + if (value) { + var url = field.urlFormat.replace(/{value}/, value); + window.open(url, '_blank'); + } + }) + .merge(outlinkButton); + } + } + + + function validIdentifierValueForLink() { + if (field.type === 'identifier' && field.pattern) { + var value = utilGetSetValue(input).trim().split(';')[0]; + return value && value.match(new RegExp(field.pattern)); } + return null; } @@ -138,6 +179,11 @@ export function uiFieldText(field, context) { i.tags = function(tags) { utilGetSetValue(input, tags[field.key] || ''); + + if (outlinkButton && !outlinkButton.empty()) { + var disabled = !validIdentifierValueForLink(); + outlinkButton.classed('disabled', disabled); + } }; diff --git a/modules/ui/fields/wikidata.js b/modules/ui/fields/wikidata.js index 1c75ba3dcc..6169b16c76 100644 --- a/modules/ui/fields/wikidata.js +++ b/modules/ui/fields/wikidata.js @@ -90,7 +90,7 @@ export function uiFieldWikidata(field, context) { searchRowEnter .append('button') .attr('class', 'form-field-button wiki-link') - .attr('title', t('icons.open_wikidata')) + .attr('title', t('icons.view_on', { domain: 'wikidata.org' })) .attr('tabindex', -1) .call(svgIcon('#iD-icon-out-link')) .on('click', function() { diff --git a/modules/ui/fields/wikipedia.js b/modules/ui/fields/wikipedia.js index 8b50c1b98a..86cbc353c5 100644 --- a/modules/ui/fields/wikipedia.js +++ b/modules/ui/fields/wikipedia.js @@ -122,6 +122,7 @@ export function uiFieldWikipedia(field, context) { .append('button') .attr('class', 'form-field-button wiki-link') .attr('tabindex', -1) + .attr('title', t('icons.view_on', { domain: 'wikipedia.org' })) .call(svgIcon('#iD-icon-out-link')) .merge(link);