Перевод и отображение не рускоязычных названий.

Короткий ответ — да, можно. Это делает mapsme, это делает спутник, это делает википедия, это сделано в стиле veloroad.
Длинный ответ зависит от контекста. Отображать карту можно десятком разных способов, и ответ в каждом случае разный.

У меня поднят локалный osm сервер, у которого нет выхода в инет. Настроена связка mapnik+posgres+oms2pgsql+renderd. Сейчас залил карту всей планеты в базу данных, и на основе этих данный сейчас идет рендер тайлов.
Заказчик увидел что русские названия только в России (удивительно, правда ?)) ) и попросил узнать если ли возможность перевести.

заюзать снаружи рф name:ru и при отсутствии подсовывать переводчику/транслитератору.

в osm2mp таким заморачивались.

Можно чуть более подробнее? что значит

https://github.com/giggls/osml10n-python

внтури русскоязычных стран (РФ, несколько стран эксс-СССР) в name вполне понятно пишут русскоязычное название.
за пределами русскоязычной среды в name пишут названия на своем языке.
для того чтобы объекту присвоить русскоязычное имя используют тег name:ru=*
посомтри сколько у Лондона иностранных name :slight_smile:
вполне понтяно name:ru прописан не везде, в таком случае есть рекомендация брать name и транслитерировать смотри name:.

как я понял, мне нужно правильный view для базы сделать?

Судя по ошибке column data.name:ru does not exist, наверняка стилевой файл неправильно составлен. В нём указывается в частности, для каких тегов будут созданы свои колонки в sql-таблицах. Я бы ещё раз посмотрел на пункт “3. Сконфигурируем поддержку нужных языков в настройках утилиты osm2pgsql” статьи с хабра.

Сделал, таблица появилась сейчас затык на генерации необходимой xml:
Запускаю команду

./generate_xml.py ./osm.xml china_ru.xml --dbname gis--user gis --accept-none

Вывливает ошибку:

Error: saving xml requires Mapnik python bindings to be installed

Mapnik собирал по это статье https://www.hyperlearning.ai/en/knowledgebase/blog/centos-7-open-street-map-tile-server и он стоит
Если попробовать поставить mapnik через pip то вылваливает ошибку:

pip3.6 install mapnik2
WARNING: Running pip install with root privileges is generally not a good idea. Try `pip3.6 install --user` instead.
Collecting mapnik2
  Using cached https://files.pythonhosted.org/packages/37/8d/2dd0ceb156ab78071bc87402015e5aaf398b39e9f400221145bdb36391a5/mapnik2-2.2.0.zip
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-build-tbjmv12d/mapnik2/setup.py", line 10
        exec open('src/mapnik/utils.py').read() in mapnik_utils
                ^
    SyntaxError: invalid syntax
    
    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-tbjmv12d/mapnik2/

Подскажите что я не правильно делаю.
Да все стоит на centos7.

Вторая ошибка - из-за несовместимости версий Python 2 и 3:
https://stackoverflow.com/questions/15086040/behavior-of-exec-function-in-python-2-and-python-3

Я бы выяснил, на какую версию Python рассчитан скрипт ./generate_xml.py и дальше разбирался бы, почему не находятся байдинги mapnik имеено в этой питоновской среде.

Ошибка с синтаксисом исправилась после установки python версии 2.7
Но теперь ошибка такая

./generate_xml.py ./osm.xml china_ru.xml --dbname gis --user root --accept-none
Traceback (most recent call last):
  File "./generate_xml.py", line 204, in <module>
    serialize(template_xml,options)
  File "./generate_xml.py", line 80, in serialize
    mapnik.load_map(m,xml,True)
RuntimeError: failed to initialize projection with: '&srs900913;' in Map of './osm.xml'

Почитал про нее, на форумах рекомендовали пересобрать mapnik с подержкой libxml.
Попрбовал пересобрать, но сборка завершилась с ошибкой:

src/libxml2_loader.cpp:34:10: fatal error: '/libxml2/libxml/parser.h' file not found
#include </libxml2/libxml/parser.h>

libxml ставил:

rpm -qa | grep xml
libxml++-2.37.1-1.el7.x86_64
libxml2-devel-2.9.1-6.el7.4.x86_64
libxml++-devel-2.37.1-1.el7.x86_64
xml-common-0.6.3-39.el7.noarch
libxml2-2.9.1-6.el7.4.x86_64
libxml2-python-2.9.1-6.el7.4.x86_64

Исправь путь до parser.h.
/usr/include/libxml2/libxml/parser.h

Уже пробовал, он начивает ругаться на другие либы.

А нормального rpm с mapnik под центос нет совсем-совсем?

Ну и раз эта ошибка исправилась, то можно смотреть и исправлять что там с другими либами.

В том то и дело что неи готовой rpm. Приходится собирать.

Подключения хэдеров по абсолютному пути #include </libxml2/libxml/parser.h> не должно быть,
обычно используются относительные пути. Как предположение, файл, в котором появилась эта ошибка, был сгенерирован автоматически с параметром типа PREFIX, INCLUDE или подобном, установленном в “/”, тогда как должен был иметь значение “/usr/include” или вообще пустое.

Алексей что мне тогда делать?

Выяснить, как появился файл, в котором возникает ошибка компиляции file not found. Если он генерируется автоматически, то смотреть, какие параметры есть у скрипта/системы сборки для указания путей до библиотек. Если не автоматически, то в инструкции должно быть чётко написано, какими костылями можно заставить это работать. По моим представлениям, заставить скомпилиться строчку #include </libxml2/libxml/parser.h> можно только симлинком /libxml2 → /usr/include/libxml2, но это извращение.

По порядку, я по инструкции настроил mapnik и отренденрил карту. После этого прилетело задание русифицировать ту часть, которая написано не русифицирована. Нашел интрукцию https://habr.com/ru/post/259141/.
Там же и была ссылка на git https://github.com/openstreetmap/mapnik-stylesheets
При генерации xml ошибка и возникает.

Может кто то уже делал русскификацию и поделиться инструкцией?