Pebble模板引擎是否支持手动指定国际化Locale?
Pebble模板手动指定Locale实现双语展示
Pebble确实支持在模板中手动指定Locale来渲染不同语言的内容,无需依赖全局Locale配置,具体可以通过两种方式实现:
方式一:直接在i18n函数中传递locale参数
你可以直接给i18n函数传入locale参数指定目标语言,写法和你预期的逻辑一致,调整语法即可:
<td> {{ i18n("welcome.words", locale="en_US") }}<br /> {{ i18n("welcome.words", locale="fr_FR") }} </td>
如果你的消息文件有包前缀(比如messages/mail),可以保留前缀参数再追加locale:
<td> {{ i18n("messages/mail", "welcome.words", locale="en_US") }}<br /> {{ i18n("messages/mail", "welcome.words", locale="fr_FR") }} </td>
方式二:临时切换上下文Locale
如果需要在一段模板中批量使用同一个Locale,可以用set标签修改当前上下文的locale值,后续i18n调用会自动沿用该配置:
<td> {% set locale = "en_US" %} {{ i18n("messages/mail", "welcome.words") }}<br /> {% set locale = "fr_FR" %} {{ i18n("messages/mail", "welcome.words") }} </td>
注意事项
- 确保类路径下存在对应Locale的资源文件,比如
messages/mail_en_US.properties、messages/mail_fr_FR.properties,且文件中包含welcome.words对应的键值对。 - 传递的Locale字符串支持
en_US或en-US两种格式,都能被Pebble正确解析。
内容的提问来源于stack exchange,提问作者EthanStudent
相关产品推荐
相关产品推荐

