java - 如何翻译不同语言的城市名称

标签 java php translation icu

我有一个移动应用程序(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());
    }
 }

}

}

除了使用城市名称外,我如何做类似的事情?我知道CLDRICU但我真的不知道该怎么做(或者如果可能的话)。如果有一个很好的面向对象的库,它会比解析 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

(问题是:我猜城市名称的谷歌数据库是公开的,它在哪里?它是否很好地包装在一些用户友好的跨平台库中?)

谢谢你的帮助

最佳答案

我猜您正在寻找一个包含所有城市及其翻译的文件,而不是为每个城市获取一次?

如果是这样,www.geonames.org 有多种语言的不同类型(国家、行政区域、城市)的地理数据。除了他们的 API 调用,您还可以直接下载他们的文件并自行解析:

在以下 URL 中,您将找到 3 个以“alternativeNames”为前缀的 Zip 文件 http://download.geonames.org/export/dump/

它们包含 - 希望 - 必要的数据。

关于java - 如何翻译不同语言的城市名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29623377/

相关文章:

php - 我怎样才能加快这个查询?

php - JavaScript 等效于 PHP 的 in_array()

java - Java Spark 中 "for"循环中某种类型的计数器

java - 通知不显示

php - 在 PHP 中预测基于时间的数据集的 future 值

localization - 显示语言选择的最佳方式是什么?

python - 国际化django模板中的多个复数变量

.net - 改进翻译人员和开发人员的工作流程

java - Android:继承的 View 比例

java - 从rest api下载文件而不需要window.open