add name:ru to all objects in Russia dump that have name:en

В России далеко не только на русском языке говорят и пишут. Поэтому названия могут быть и многоязычными, и на языке компактно проживающей народности. То же самое, и даже хуже (несколько гос. языков) может быть в других странах, поэтому следует делать однообразно.

http://ru.wikipedia.org/wiki/Список_государственных_языков_России

Думаю, что наличие хотя бы части объекта “за границей” и относится к случаю “заграничного” объекта, т.е. того, которому “положен” тег name:ru.

Правильно. Именно для таких (т.е. для местных языков или языков компактно проживающих народностей) и служат теги типа name:??. И, кстати, есть еще вариант loc_name. Притом, насколько я наблюдаю, практика использования склоняется именно к такому варианту. В противном случае получается, что тег name становится совершенно лишним.
Мне вот, правда, непонятен смысл int_name. Это синоним namr:en или локальное произношение, набранное латинницей?

Вроде неплохой пример, поясняющий разницу, есть в вики:

name=Channel Tunnel - Default name

int_name=Eurotunnel - Internationally known as

nat_name=That debt ridden hole in the ground - Nationally known As

reg_name=Gateway to France - Regionally known As

loc_name=The way to Carrefour - Locally known As

old_name=A long swim - Historically or previously known As

alt_name=Chunnel - when alternative name exists (which doesn’t fit in one of the tags name above)

Предложение писать в name название на официальном языке и оставлять пустым name:<оф. язык> будет работать только при выполнении следующих условий:
а) официальный язык один (иначе хрен знает что писать);
б) этому предложению последуют все без исключения (иначе логика определения языка написания name не будет работать).
name — тег низкоприоритетный. Его стоит использовать в качестве затычки, если названия на приоритетном языке не нашлось (или приоритетный язык не выбран).
И да, тупая программа — хорошая программа. Зачем решать задачу сложно, если можно решить просто? Зачем и кому нужны эти пляски с официальными языками, когда можно просто выбирать самый первый присутствующий в списке языков?

Интересно, а аффтор правок и губитель кучи границ не хочет поучаствовать в теме? Ну так, чисто для приличия?

Смысл правки в том, чтобы иметь возможность стопроцентно программно выбирать именно русские наименования при наличии множественных.

Косяк вышел из-за неоднозначного поведения tagtransform, он не обрабатывал . То, что name:ru затёрлось на некоторых объектах - мой косяк, буду пытаться исправить. То, что name:ru появилось на приграничных объектах, на которых его не было и оно неверно - это collateral damage, без него никак. Если выставить там верный name:ru, то дальнейшие автоматические правки его не тронут.

Не понял как именно поломались границы. Кроме добавления тэга name:ru никаких больше изменений не вносилось. Топология ways и relations не менялась.

А ты лог ирки почитай позавчерашний, там ссылочки были, во множестве. Если навыков писать боты хватает только на вики - может этим и ограничиться?

Или я что-то не понимаю, или у меня от третьих суток бессонницы уже крыша поехала. А зачем добавлять name:ru?
Алгоритм “иметь возможность стопроцентно программно выбирать именно русские наименования” тривиальнейший: если name:ru есть, берем его, если нету - берем просто name. Все.
И для любого объекта в РФ дублирующий name:ru просто не нужен. Поскольку name уже на русском.
Для заграницы и граничных объектов - name:ru.

Update:
Зато простору для махинаций… В name пишем Татарстан, в name:ru Татария.
По идее, надо контролировать, чтобы в name и name:ru лежало одно и то-же. Но это чревато для граничных и заграничных объектов… Не стоит овчинка выделки.

Например,
http://www.openstreetmap.org/browse/way/25314189/
сейчас уже вернул из истории, но по рендерингу видно, что линия была обрезана

Вижу. Это баг osmosis или tagtransform. Не получается его воспроизвести на маленьких файлах, где только затронутые объекты. Попробую воспроизвести на всём дампе России.

А может не надо его воспроизводить и достаточно починить испорченное?

Ну например рекомендуемый конфиг к mkgmap говорит, что в гармин попадает название в порядке приоритетности: name:ru, name:en, name. Очень полезно если делается карта сразу нескольких стран. Считается что пользователю родной язык русский, английский язык он знает, а остальные не знает. Если опустить из списка name:ru, то куча русских городов станут иметь английские названия. Если опустить из списка name:en, то карты неанглоязычных стран станут менее удобны.

А может не надо его воспроизводить и достаточно починить испорченное?

Не хочется в следующий раз давать тебе повод поязвить.

Чего-то я видимо не понимаю, но как это связано с выборкой русских наименований понять я не могу. Непонятно чем name:en такой особенный. Тогда уж name:* надо делать было.

Да и правка по дампу само по себе занятие очень стрёмное. Помимо драных релейшнов, есть вероятность принести в базу все косяки из дампа - а они там бывают, причем довольно незаметные.

Плюс дамп как оказалось не только России. Тоже смысла расставлять автоматом name:ru не вижу, для конвертирования в навигационные программы теги можно выставлять локально - у себя на компе

Согласен.

Может быть и в этом дело. Разбираюсь.

Ну вот и надо править конфиги mkgmap для приоритетности name:ru, name, name:en, а не генерировать стотыщпицот дублирующихся имен…
Либо, если через конфиги приоритеты не меняются - сделать препроцессор.

Да, проблема оказалась в дампе. Буду общаться с sim как избежать подобного в будущем.

ikz,

Ну вот и надо править конфиги mkgmap для приоритетности name:ru, name, name:en

Если так поправить конфиг, то будет совсем не то, что нужно.

Ну совсем обойтись может и не удастся, но свести его масштаб до единичных случаев вполне реально:

  1. Проверяем наличие в именах нерусских символов (все кроме пробела, кириллицы цифр и знаков пунктуации). Если есть, то объект не трогаем (можно заодно и произвести запись в отдельный лог).
  2. Проверяем попадание объекта на границу (и за границу), поступаем аналогично.
  3. Берем в качестве области не всю Россию, а только те ее части, в которых нет официальных языков, отличных от русского.