【问题标题】:Is there a way to translate dynamic text in Play Framework?有没有办法在 Play Framework 中翻译动态文本?
【发布时间】:2021-03-16 12:16:56
【问题描述】:

我知道Play Framework (2.7) 允许Internationalization 在其中显示预先编写的文本,但是有没有办法可以动态翻译文本块?例如;假设一个用户写了一篇评论,而另一个用户想用他们自己的语言阅读该评论。在其他用户可以访问之前手动翻译用户评论是不切实际的。非常感谢

【问题讨论】:

    标签: scala playframework internationalization translation


    【解决方案1】:

    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 没有任何开箱即用的东西,但您知道任何人开发的任何插件/模块。我找不到任何东西,但值得一问?
    • @jesusg_forceHarris 你的意思是翻译吗?好吧,在这里不要指望简单的答案 - 计算机翻译本身就是一门科学:您可以继续使用像谷歌翻译这样的 SAAS 或实施自己的翻译,基于摩西之类的东西:statmt.org/moses 无论如何,这不是一件容易回答的事情。顺便说一句,如果我的回答是有帮助的接受并高度赞赏。
    猜你喜欢
    • 2017-09-10
    • 2020-06-15
    • 2020-12-20
    • 1970-01-01
    • 2023-01-17
    • 2021-07-19
    • 1970-01-01
    • 1970-01-01
    • 2012-05-23
    相关资源
    最近更新 更多