Size: a a a

2020 July 25

SA

Sergey Astakhov in OpenStreetMap RU
Макс
какой в яве есть простой путь для локализации приложений? по аналогии с tr() в C++?
tr() - это не C++, это метод библиотеки. Библиотек в Java навалом, есть штатный ResourceBundle, есть расширенные методы в библиотеках. Например в том же JOSM сделан свой tr (org.openstreetmap.josm.tools.I18n.tr)
источник

SA

Sergey Astakhov in OpenStreetMap RU
источник

PG

Pavel Gavrilov in OpenStreetMap RU
История с POI на карте Google забавная:
https://twitter.com/mayavolf/status/1286908281433264128
источник

PG

Pavel Gavrilov in OpenStreetMap RU
Новый ТРЦ на Технопарке на карте подписан как "Заброшенный дом"
источник

PG

Pavel Gavrilov in OpenStreetMap RU
Оказывается, это один из POI так подтянулся при генерализации.
источник

SA

Sergey Astakhov in OpenStreetMap RU
SS
Если вас послушать, то рендер берет цвет от балды. А можно клиент, где проговаривается «поверните налево после красного одноэтажного здания»?
Не от балды, а по своему разумению и предназначению карты. Например он может выделять разные типы домов разным цветом вместо использования оригинального цвета здания. Или использовать разные палитры для дневной или ночной схемы. Карта - это схема, использующая условные обозначения и цвет - одно из выразительных средств, он вовсе не обязан повторять реальные цвета.
А клиент - это гипотетический пример. Но вполне реализуемый при желании. Тот же Ситигид умеет проговаривать "через 300 метров поверните налево, на набережную" или "на автозаправку" или "под мост". Научить его использовать в качестве ориентиров дома - думаю не очень сложно.
источник

PG

Pavel Gavrilov in OpenStreetMap RU
Ну только тут есть проблема нечёткого тэгирования.
В той же Голландии значок вентилятора может означать 150-метровую башню, а может флюгер на крыше домика. Разницы в тэгах нет. Я предложил добавлять в первом случае тэг "башня", но был послан нахер - не положено. Ну, пусть сами варятся.
источник

SA

Sergey Astakhov in OpenStreetMap RU
SS
Не поверите, но рендер берет цвет из тегов. По крайней мере у меня. Можно проверить на osmgo.org, например.
Он "может" брать цвет из тегов. А может и не брать. Но даже если и берёт - не факт что результа будет в точности соответствовать тому что задано в тегах. На форуме было хорошее обсуждение этой темы: https://forum.openstreetmap.org/viewtopic.php?id=22623
источник

М

Макс in OpenStreetMap RU
У меня код меньше, чем эта реализация tr()
Я как-то наивно полагал, что есть что-то стандартное с минимальнейшим геммороем
источник

SA

Sergey Astakhov in OpenStreetMap RU
Макс
У меня код меньше, чем эта реализация tr()
Я как-то наивно полагал, что есть что-то стандартное с минимальнейшим геммороем
Стандартное - java.util.ResourceBundle, но там писанины получается чуть больше.
источник

SA

Sergey Astakhov in OpenStreetMap RU
Пример из javadoc:
ResourceBundle myResources = ResourceBundle.getBundle("MyResources", currentLocale);
button1 = new Button(myResources.getString("OkKey"));
источник

SA

Sergey Astakhov in OpenStreetMap RU
К этому прикладываются файлы MyResource_en.properties, MyResource_ru.properties и т.п. с текстом вида "OkKey=Ok" и готово.
источник

М

Макс in OpenStreetMap RU
в яве как обычно, очень многословные тексты кода получаются
источник

М

Макс in OpenStreetMap RU
спасибо, почитаем
источник

SA

Sergey Astakhov in OpenStreetMap RU
Ну за лаконичностью - это в другие языки. Только там может получиться writeonly, как во всяких perl-ах.
источник

S

SS in OpenStreetMap RU
Sergey Astakhov
Он "может" брать цвет из тегов. А может и не брать. Но даже если и берёт - не факт что результа будет в точности соответствовать тому что задано в тегах. На форуме было хорошее обсуждение этой темы: https://forum.openstreetmap.org/viewtopic.php?id=22623
Может брать, а может не брать. Теоретически можно научить и т.п. А можно просто сказать: «был неправ»
Если девелопер не берет тэги для 3d, это его проблемы. Может, они действительно ему не нужны. Но если тегов вообще нет, то неоткуда брать информацию вообще. Поэтому лучше — если они есть. И относятся эти теги именно к 3d визуалу, а не к теоретическим подсказкам, которые теоретически можно реализовать. А уж «через 300 м налево» есть в любом мало-мальски уважающем себя навигаторе.
источник

М

Макс in OpenStreetMap RU
Exception in thread "main" java.util.MissingResourceException: Can't find bundle for base name tr, locale ru_RU
источник

М

Макс in OpenStreetMap RU
теперь осталось разобраться, куда бандлы класть
источник

SA

Sergey Astakhov in OpenStreetMap RU
Макс
Exception in thread "main" java.util.MissingResourceException: Can't find bundle for base name tr, locale ru_RU
Файл tr_ru.properties надо сделать (+ tr.properties для умолчательного языка). И не забыть про native2ascii. А куда его класть - зависит от того, какие аргументы в ResourceBundle.getBundle были заданы.
источник

М

Макс in OpenStreetMap RU
заработало, спасибо
источник