RU:Multilingual names
| Около Вики | Директива (en) | Организации | Перевод | Очистка | Справка | |||||||||||||||
|
Бывают разные ситуации, когда нам нужно работать с многоязычными названиями, когда у объекта разные названия на разных языках. Это очень распространено для названий крупных городов мира. В некоторых регионах у мест и улиц есть названия на всех местных языках. Люди также хотят видеть карты на определённом языке (интернационализация карт). Names#Localization — это основная документация, описывающая, как использовать Key:name с кодом языка. Обычно люди соглашаются использовать name:code=*, где code — это код языка в нижнем регистре ISO 639-1 alpha2 (второй столбец), код в нижнем регистре ISO 639-2, если код ISO 639-1 не существует, или ISO 639-3, если не существует ни того, ни другого. Кроме того, в некоторых случаях к тегу необходимо добавить название шрифта в соответствии с ISO 15924 name:code-Script=*. Многие языки, в том числе широко распространённые разговорные и письменные, определены в существующих кодах ISO неточно или не закодированы, поэтому при необходимости тегирование может отклоняться от них. Повторение имени с указанием языкового тегаname=* содержит общепринятое название на местном языке по умолчанию. name:<lang_code> используется для обозначения названия на указанном языке в тех случаях, когда название зависит от языка. Например, name:ru=Москва обозначает название города на русском языке (код языка ru), а name:en=Moscow — на английском (код языка en). В случаях, когда для имени указано несколько языков, тег имени на локальном языке должен дублироваться с указанием субключа для конкретного языка. Например, Москва помечается как name=Москва с тем же значением, что и name:ru=Москва. Такая маркировка важна, поскольку она позволяет потребителям данных не определять локальный язык самостоятельно. Предположение о языке имени на основе местоположения не всегда верно: в России есть места, где name=* не на русском языке, а в США есть места, где правильно отображаемое name=* не на английском языке. С другой стороны, не добавляйте теги к несуществующим названиям. У ничем не примечательной деревни где-нибудь в Польше может быть только одно название (зафиксированное в name=*). На всех других языках эта деревня будет называться по-польски, потому что у неё нет другого названия. Не стоит добавлять теги name:<lang_code> ко всем другим языкам, в которых используется польское название, только потому, что оно используется на всех других языках!
Добавление тегов name=Kraków и name:pl=Kraków полезно, особенно при отображении локализованных имён с резервными языками. Если кто-то захочет
Или явно укажите теги name=* и name:<lang_code>. Mapbox Directions API, работающий на базе Valhalla, является примером потребителя данных, который полагается на эту эвристику. В некоторых регионах, где используется несколько официальных языков, в инструкциях по навигации будут указаны названия улиц и пунктов назначения на нескольких языках, что является избыточным и обычно нежелательным. Но если name=* сопровождается соответствующим тегом с указанием языка, то в инструкциях по навигации будет указан только наиболее подходящий язык. Когда имя написано только на одном языкеОбратите внимание на фразу «в случаях, когда имя помечено тегами на нескольких языках». Если имя помечено тегами только на одном языке и предполагается, что так будет и дальше, польза от этого будет гораздо меньше, и такое делается редко, а иногда и вовсе вызывает споры. Особенно в одноязычных регионах. Если имя в данный момент помечено тегом на одном языке, но известно, что на других языках теги отсутствуют, имеет смысл использовать теги name=* и для конкретного языка. ПроблемыКаким должно быть простое name=* (локальное имя, по крайней мере, если оно не оспаривается) и как указать язык, на котором написан тег name. как указывать транслитерацию. Существует стандартный список кодов транслитерации. Но избегайте транслитерации, за исключением особых случаев.
Эти схемы транслитерации имеют стандартизированные коды в данных Unicode CLDR, которые определяют собственные расширения субтегов локали для BCP 47. Стандарт BCP 47 также является нормативным и используется (вместо ISO 639, у которого есть проблемы со стабильностью) во всех веб-стандартах W3C (HTML, CSS, SVG, XML...) и во многих библиотеках интернационализации и языках программирования (в том числе в C, C++, Java, Javascript в их стандартных библиотеках или с помощью ICU).
Данные OSM не должны содержать эти импортированные «грязные» особенности: замените их кодами, соответствующими стандарту BCP 47 (или добавьте субтеги расширения «для частного использования», определенные в стандарте BCP 47, например «en-x-simple» вместо «en-simple», если вам действительно нужно отличать «en» от стандартного английского).
Используйте прописные буквы только для обозначения префиксов или суффиксов в региональных тегах (которые также не зависят от используемого языка): в этом случае предпочтительнее использовать коды ISO 3166. Например, традиционный китайский язык в Гонконге обозначается как name:zh-Hant-HK=*, а не как name:zh-hant-hk=*. (Использование строчных букв в основном прекратилось в 2018 году. [1][2])
ТуркменистанОсновная статья: Туркменистан#Общие_правила_наименования Смотри также: Изменения в географических названиях Туркменистана и Справочник по названиям улиц Ашхабада
Многие названия улиц и муниципалитетов были изменены с советских, прославляющих коммунистов, коммунистические идеалы, героев большевистской революции и деятелей русской культуры, на названия, прославляющие туркменских, персидских и арабских деятелей.
УзбекистанВ Узбекистане один официальный язык — узбекский. Кроме того, в Каракалпакской автономной республике признан каракалпакский язык. Исторически сложилось так, что из-за Советского Союза большинство мест в стране носили русские названия. В Узбекистане проживали или до сих пор проживают многочисленные меньшинства русского, татарского, киргизского, туркменского и даже немецкого происхождения.
Таким образом, в настоящее время в Узбекистане принято использовать узбекские имена (на латинице) в качестве имён по умолчанию, а русские имена добавляются в name:ru=*. В Каракалпакстане имя по умолчанию должно быть на каракалпакском языке.
Общие граничные объектыИногда границей служит общая черта, например река, которая по обе стороны границы называется по-разному. Один из примеров — река Рейн, разделяющая Германию и Францию. Всегда добавляйте name:code=* для каждого используемого языка, а для совместимости со старыми механизмами рендеринга также добавляйте name=* к обоим именам, разделяя их косой чертой и пробелами и сортируя в (относительно нейтральном) алфавитном порядке Unicode. Для реки Рейн это будет выглядеть так:
Создайте связь для всего объекта без name=*, только с тегами name:code=*
для каждой пары регионов создайте связь между частями объекта, разделяющими два региона, с помощью name=*, содержащих два локальных имени и без name:code=* тегов Наконец, если в качестве границы используется только часть объекта, присвойте name=* не являющимся границами частям имя, используемое во включающей области, как и в большинстве других объектов. КазахстанКлюч: имя: kk Чтоб были видны все языки в раскладке в Name надо писать латиницей, или на английском , на других языках названия не будет видно.
ТолкованиеВ общем случае, тег имени не заполняется, если тег(и) обозначения объекта и то, что предполагается поместить в name=*, полностью взаимозаменяемы. Например, shop=bakery и "Хлеб .
Аргументация отдельных пользователей, состоящая в том, что стиль Standard по умолчанию отображает какие-либо объекты "непонятно" или что без заполнения имени чем-либо объекты невозможно найти в навигаторе, является неприемлемой. Данное правило проекта служит вполне определённым практическим целям и не должно нарушаться по чьей-либо прихоти. Внесение таких псевдоназваний квалифицируется как обозначение под рендер.
Причины, почему транслитерация не должна помещаться в значение ключа иностранного имени: Транслитерация – однозначная операция, выполняемая по типовым правилам, потому данная операция может быть выполнена конвертером данных, если это потребуется. Способов транслитерации несколько для каждой пары языков (например, есть не менее десятка разных способов передачи слов русского языка латинскими буквами для англоязычного читателя), и для разных случаев разные способы могут быть подходящими – это должен решать тот, кто использует данные. Существует мнение, что заполнение этого тега транслитом как-то помогает иностранцам, но сценарий использования данных таким образом может быть различным, потому что в одном случае пользователю будет нужна фонетическая запись, в другом – какая-то ещё (притом для носителей разных языков – разная). Потому решать этот вопрос стоит позволить конечному пользователю данных, а не добавлять в базу вторичные избыточные данные. Нет никакого способа различить name:language_code, заполненный настоящим иностранным названием, и результатом транслитерации/транскрипции, потому тег получает неопределённое значение. Транслитерированные (автоматически или вручную) названия не соответствуют принципу верифицируемости и ground truth, так как не могут быть подтверждены независимо с использованием источника на местности. Аргумент о наличии на местности дополнительных табличек с написанием русскоязычных названий латиницей – несостоятелен, так как, во-первых, таблички периодически меняют, выполняя их по разным правилам, во-вторых, идентифицировать принадлежность транслитерированного названия к какому-либо конкретному языку часто невозможно, поскольку статусная часть обычно тоже транслитерирована. Допустимо заполнять этот тег официальным самоназванием компаний или организаций на иностранном языке, если есть возможность определить принадлежность этого названия к какому-либо языку. Такое самоназвание должно являться официальным (по крайней мере, для данного языка), потому вопрос о возможности его использования не возникает. Смотрите также
|
||||||||||||||||||||