【问题标题】:Translation of a few strings in a web application.在 Web 应用程序中翻译一些字符串。
【发布时间】:2010-12-29 05:26:50
【问题描述】:

当用户想要在他的语言中看到这些字符串时,如何将 Web 应用程序中的一些字符串翻译成不同的语言?

【问题讨论】:

    标签: java javascript database webserver appserver


    【解决方案1】:

    你熟悉 i18n 吗?它是“internationalization”的缩写,是一个 20 个字母的单词:首先是“i”,然后是 18 个字母,然后是“n”:D

    有些人喜欢为此使用属性文件。你用它的 i18n 语言名称命名属性文件。因此,例如 en-us.propertiessw-se.properties 用于英语和瑞典语文本。在这些文件中,您将拥有要显示的某些文本的占位符名称,以及它们的实际值。记住占位符不能有空格!

    en-us.properties 将包含

    welcome_message = "welcome %user%\nplease check your weapons at the door :)"
    logout_button_text = "log out"
    good_bye_message = "godspeed to you %user%!"
    

    sw-se.properties 将包含

    welcome_message = "välkommen %user%\nvänligen lämna dina vapen vid dörren :)"
    logout_button_text = "logga ut"
    good_bye_message = "%user%, vi önskar dig en lycklig resa!"
    

    我已经制作了这个功能,其中 % 符号内的内容是在保留语言文本后要替换的占位符,以便可以将来自会话或数据库的数据放在消息中。

    注意语言文件如何包含完全相同的键,但具有不同的值。

    当你想显示文字时,

    • 您检查您使用的语言(可能来自 url),
    • 加载相应的属性文件,
    • 获取给定点所需的概念占位符的文本,
    • 替换此字符串中的所有数据占位符,
    • 并将最终结果推送给用户。

    【讨论】:

    • 这大部分由 Java 中的 ResourceBundle 类处理
    • 谢谢达沃戈特兰。我还有一个问题。当用户从应用程序更改其语言时,整个页面将重新加载或仅更改需要翻译的字段(例如:姓名、号码)。
    • 我想这取决于它是否是 ajax 驱动的应用程序。它还取决于语言是如何确定的。如果语言是由 url 决定的,那么重新加载整个页面可能是最好的。
    猜你喜欢
    • 2018-02-13
    • 2017-05-04
    • 2018-04-15
    • 2015-09-04
    • 1970-01-01
    • 1970-01-01
    • 2021-08-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多