【发布时间】:2021-03-16 12:16:56
【问题描述】:
我知道Play Framework (2.7) 允许Internationalization 在其中显示预先编写的文本,但是有没有办法可以动态翻译文本块?例如;假设一个用户写了一篇评论,而另一个用户想用他们自己的语言阅读该评论。在其他用户可以访问之前手动翻译用户评论是不切实际的。非常感谢
【问题讨论】:
标签: scala playframework internationalization translation
我知道Play Framework (2.7) 允许Internationalization 在其中显示预先编写的文本,但是有没有办法可以动态翻译文本块?例如;假设一个用户写了一篇评论,而另一个用户想用他们自己的语言阅读该评论。在其他用户可以访问之前手动翻译用户评论是不切实际的。非常感谢
【问题讨论】:
标签: scala playframework internationalization translation
Play 中的国际化功能与翻译没有任何共同之处,它只是围绕您的应用根据用户本地化偏好显示内容的能力提供基础设施。见https://www.playframework.com/documentation/2.8.x/ScalaI18N#Externalizing-messages:
您可以将 conf/messages.xxx 文件中的消息外部化。 默认的 conf/messages 文件匹配所有语言。此外,您可以指定 > 特定于语言的消息文件,例如 conf/messages.fr 或 conf/messages.en-US。
这意味着你可以拥有像这样的文本文件
conf/messages.en-US:
example.message.id=Example message in US English
conf/messages.fr-FR:
example.message.id=Example message in French
然后根据它的 id 检索特定的消息,具体取决于语言,例如:
val messagesApi: MessagesApi = //injected API
messagesApi("example.message.id")(lang)
因此,Play 框架将为您选择适当的文件并阅读特定语言的适当消息。
但文件内容是你的责任,Play 不会为你翻译任何内容。
【讨论】:
Play 没有任何开箱即用的东西,但您知道任何人开发的任何插件/模块。我找不到任何东西,但值得一问?