You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Android Studio应用中将Geocoder获取的英文城市名转为阿拉伯语显示

解决方案

方案1:直接指定Geocoder返回阿拉伯语结果(优先推荐)

不需要额外调用翻译接口,Android的Geocoder本身支持指定返回结果的语言区域,只需要把初始化Geocoder时传入的Locale修改为阿拉伯语即可,这是准确率最高、成本最低的实现方式。
修改后的getAddress方法代码:

public String getAddress(double LATITUDE, double LONGITUDE) {
    String city = "";
    try {
        // 把默认Locale替换为阿拉伯语Locale
        Geocoder geocoder = new Geocoder(this, new Locale("ar"));
        List<Address> addresses = geocoder.getFromLocation(LATITUDE, LONGITUDE, 1);
        if (addresses != null && addresses.size() > 0) {
            String address = addresses.get(0).getAddressLine(0); 
            city = addresses.get(0).getLocality();
            String state = addresses.get(0).getAdminArea();
            String country = addresses.get(0).getCountryName();
            String postalCode = addresses.get(0).getPostalCode();
            String knownName = addresses.get(0).getFeatureName(); 
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
    return city;
}

注意:如果需要适配系统语言切换,也可以判断系统当前语言如果是阿拉伯语就传入ar参数即可;如果部分设备返回结果仍为英文,说明设备内置的Geocoder服务不支持阿拉伯语返回,可再考虑使用翻译方案。


方案2:调用谷歌翻译API实现翻译(不优先推荐)

如果确实存在需要先拿到英文地址再翻译的场景,可以用谷歌翻译API实现,步骤如下:

  • 在谷歌云平台开通翻译API服务,获取专属API密钥
  • 封装网络请求,把要翻译的英文城市名、源语言en、目标语言ar、API密钥作为参数请求翻译接口
  • 解析接口返回的阿拉伯语结果后设置到TextView即可
    注意:该方案需要联网,且有免费配额限制,超额会产生费用,同时翻译结果可能存在地名翻译错误的问题,优先级低于方案1

内容的提问来源于stack exchange,提问作者John Sall

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.18 09:36:05