Google Calendar API本地化问题:无法获取对应地区语言节假日列表
解决Google Holiday Calendar API返回英文事件名称的问题
你遇到的问题是调用马来西亚地区的假日日历API,但返回的事件名称还是默认英文,这是因为Google Calendar API默认会用英文返回内容,除非你明确指定目标语言参数。下面是具体的解决方案:
方案1:在URL中添加hl参数
Google Calendar API支持通过hl参数指定返回内容的语言,你只需要在请求URL末尾加上对应的语言代码即可。比如要获取马来语的节假日名称,使用语言代码ms(马来西亚标准马来语):
修改后的请求URL示例:
url = 'https://www.googleapis.com/calendar/v3/calendars/malaysia__mu@holiday.calendar.google.com/events?key=mykey&timeMin=2018-03-18T00:00:00Z&timeMax=2018-12-01T00:00:00Z&maxResults=24&orderBy=startTime&singleEvents=true&hl=ms'
如果需要获取马来西亚中文本地化的名称,可以替换hl参数值为zh-MY。
方案2:通过请求头指定Accept-Language
如果你的请求是通过HTTP客户端(比如Python的requests、JavaScript的fetch)发送的,也可以在请求头中设置Accept-Language字段来指定语言,这种方式更适合需要动态切换语言的场景:
以Python requests为例:
import requests url = 'https://www.googleapis.com/calendar/v3/calendars/malaysia__mu@holiday.calendar.google.com/events' params = { 'key': 'mykey', 'timeMin': '2018-03-18T00:00:00Z', 'timeMax': '2018-12-01T00:00:00Z', 'maxResults': 24, 'orderBy': 'startTime', 'singleEvents': True } headers = { 'Accept-Language': 'ms' # 指定返回马来语内容 } response = requests.get(url, params=params, headers=headers)
效果验证
添加语言参数后,返回的事件名称会切换为对应语言。比如原来的"Easter Sunday"会变成马来语的"Hari Paskah","Isra and Mi'raj"会变成"Isra' dan Mi'raj"。如果某些事件没有对应语言的本地化名称,API会 fallback 到英文,但马来西亚的主流节假日基本都有完整的本地化名称。
内容的提问来源于stack exchange,提问作者Gaurav Sharma
相关产品推荐
相关产品推荐

