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

如何让Google Place Autocomplete返回输入语言的响应结果?

Fix: Force Google Place Autocomplete to Return Results in the Selected Language (Arabic Example)

我之前也踩过这个坑!Google Places Autocomplete默认会跟着设备系统语言返回地点名称,哪怕你选的是阿拉伯语的建议项,系统语言是英语的话就自动转成Cairo,确实挺闹心的。不过好在通过API参数就能轻松解决这个问题,下面是具体的解决方法:

1. 明确指定language参数为目标语言

在初始化Autocomplete的时候,直接把language参数设置为阿拉伯语代码ar。这样不管你的系统语言是什么,API都会优先返回阿拉伯语的地点信息。

Android 示例代码:

// 初始化Autocomplete Intent时指定语言
val autocompleteIntentBuilder = Autocomplete.IntentBuilder(
    AutocompleteActivityMode.OVERLAY,
    listOf(Place.Field.NAME, Place.Field.ID)
).setLanguage("ar") // 强制返回阿拉伯语结果

startActivityForResult(
    autocompleteIntentBuilder.build(this),
    AUTOCOMPLETE_REQUEST_CODE
)

Web 示例代码:

// 初始化Autocomplete组件时设置语言
const autocomplete = new google.maps.places.Autocomplete(
    document.getElementById('location-input'),
    {
        language: 'ar',
        types: ['(cities)'] // 可选:限制结果类型
    }
);

2. 同步Place Details请求的语言设置

如果选完建议后,你还需要调用Place Details API获取更详细的信息,一定要记得给这个请求也加上相同的language参数,否则还是会被系统语言覆盖。

Android Place Details 请求示例:

val placeDetailsRequest = Places.GeoDataApi.getPlaceDetails(
    googleApiClient, selectedPlaceId
).setLanguage("ar") // 同样指定阿拉伯语

placeDetailsRequest.addOnSuccessListener { response ->
    val place = response.place
    // 这里拿到的place.name就是阿拉伯语的名称了
}

3. 进阶:根据输入语言动态切换参数

如果你的应用支持多语言输入,可以检测用户输入文本的语言,动态设置language参数。比如判断输入的是阿拉伯语字符,就自动切换到ar,其他语言对应调整,这样体验会更流畅。

这样设置之后,不管你的手机系统是英语还是其他语言,选择阿拉伯语的地点建议后,返回的结果都会和你选择的建议语言保持一致(比如显示القاهرة而不是Cairo),亲测有效!

内容的提问来源于stack exchange,提问作者Islam Ahmed

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:01:39