У меня есть мобильное приложение (как для iOS, так и для Android), и мне нужно перевести название города на язык пользователя. Я могу сделать перевод на мобильном устройстве или на моем сервере (работает php).
На данный момент мне удалось перевести названия стран, вот код Java, который переводит все возможные страны на все возможные языки:
import java.util.Locale;
public class ListCountry {
public static void main(String[] args) {
ListCountry obj = new ListCountry();
obj.getListOfCountries();
}
public void getListOfCountries() {
String[] locales = Locale.getISOCountries();
for (String countryCode : locales) {
Locale obj = new Locale("", countryCode);
String[] lingue = Locale.getISOLanguages();
for (String languageCode : lingue) {
System.out.println("Country Code = " + obj.getCountry()
+ ", Country Name = " + obj.getDisplayCountry(new Locale(languageCode)) + ", language = " + (new Locale(languageCode)).getDisplayLanguage());
}
}
}
}
Как я могу сделать то же самое, но с названиями городов? я знаю CLDR а также ICU но я действительно не могу понять, как это сделать (или, если это вообще возможно). Если есть хорошая объектно-ориентированная библиотека, это будет лучше, чем синтаксический анализ CLDR XML или другого источника.
Я предпочитаю делать это локально (на моем сервере или даже в мобильном приложении) вместо вызова Google API, например:
http://maps.googleapis.com/maps/api/geocode/json?address=turin&language=ES
http://maps.googleapis.com/maps/api/geocode/json?address=turin&language=IT
http://maps.googleapis.com/maps/api/geocode/json?address=turin&language=EN
(вопрос: я думаю, что Google БД городов называется общедоступной, где она находится? Она хорошо завернута в какую-то дружественную кроссплатформенную библиотеку?)
Спасибо за вашу помощь
Я полагаю, вы ищете файл, содержащий все города и их переводы, а не извлекаете их один раз для каждого города?
Если это так, www.geonames.org содержит геоданные разных типов (страны, административные зоны, города) на нескольких языках. Рядом с их вызовом API вы также можете напрямую загрузить их файлы и проанализировать их самостоятельно:
По следующему URL-адресу вы найдете 3 Zip-файла с префиксом «alternativeNames»http://download.geonames.org/export/dump/
Они содержат — надеюсь — необходимые данные.
Других решений пока нет …