0

我需要根据 android.location.Address 检查一些西班牙位置的名称,以了解我的应用程序的后端是否能够开箱即用地处理它们,或者是否需要进行一些工作。

在西班牙,有 4 种官方语言(西班牙语、加利西亚语、巴斯克语、加泰罗尼亚语),属于后三种地区的地点可能同时使用西班牙语和他们的地区语言命名,所以我需要确定如果我会得到什么我使用地址来获取位置名称。

有什么网站可以查到吗?

提前致谢。

编辑:这是 google geocoding API 返回的数组中的元素之一(我假设它是 android.location 类使用的元素)。

{
           "long_name" : "Rúa da Batundeira",
           "short_name" : "Rúa da Batundeira",
           "types" : [ "route" ]
        },
        {
           "long_name" : "Orense",
           "short_name" : "Orense",
           "types" : [ "locality", "political" ]
        },
        {
           "long_name" : "Ourense",
           "short_name" : "Ourense",
           "types" : [ "administrative_area_level_2", "political" ]
        },
        {
           "long_name" : "Galicia",
           "short_name" : "GA",
           "types" : [ "administrative_area_level_1", "political" ]
        },
        {
           "long_name" : "España",
           "short_name" : "ES",
           "types" : [ "country", "political" ]
        },
        {
           "long_name" : "32960",
           "short_name" : "32960",
           "types" : [ "postal_code" ]
        }
     ],

请注意,此处的“locality”是“Orense”(西班牙名称),“administrative_area_level_2”是“Ourense”(同一地点的加利西亚名称)。

有没有一种方法可以检查完整列表,而不是通过谷歌地理编码 API 处理每个地方?

4

2 回答 2

1

如果您有所有语言的名称,无论默认语言环境如何,都可以使用以下代码强制使用某种语言:

        String language = "es"; // or the language you want to set

        // creating locale
        Locale locale = new Locale(language); 
        Locale.setDefault(locale);
        Configuration config = new Configuration();
        config.locale = locale;

        // updating locale
        getResources().updateConfiguration(config, null);

        //then you get the string you want normally
        String string = getResources().getString(R.string.whatever);

考虑到之后该活动中的所有内容都将被请求为该语言,如果您想继续正常进行,则需要将其恢复为默认语言。

我希望这会有所帮助!

于 2013-01-30T10:25:19.537 回答
0

最后,我将它们全部输入并将它们包装在此类和资源文件中https://github.com/alberovalley/GeografiaSpain该类具有根据需要返回带有数据的字符串数组的方法。

于 2013-02-21T22:25:38.360 回答