如何在Web应用程序上进行本地化?

Tat*_*tat 8 localization web-applications

有几种方法可以这样做,我可以定义所有的文本元素,并从javascript加载本地化字符串json,并使用一些javascript替换文本这样做...另外,我检查有一些其他方法做也是如此.例如,有些人正在使用平台依赖方式来做到这一点.例如,J2EE有自己的实现方式.另外,我可以为每种语言创建单独的页面.

但有没有办法做本地化是灵活的或建议?谢谢.

Paw*_*yda 16

在我看来,你真正要求的是:如何正确实现Localizability?或者如何编程以便于本地化应用程序.

这实际上是与国际化有关的问题.为了使您的应用程序易于本地化,您需要记住以下几点:

  • 不要硬编码字符串(一个是显而易见的)
  • 不要硬编码样式信息(不要使用格式标签,如<b>,<i>,<strong>等;不要使用此:) <p style="font-weight: bold;color: green;">Success!</p>.这将阻止本地化人员修改它们(即从CJKV翻译中删除粗体文本)
  • 避免使用复合消息(如"函数[A,B,C]确实[a,b,c]").他们很难正确翻译.如果你没有很多变量,那么在资源中添加更少的字符串也不会有什么坏处.
  • 不要使用连接运算符连接复合消息,也不要将字符串放在彼此旁边(即不要执行此操作:String message = "Function " + function + " does " + whatItDoes;或者#{['something']}<a href="whatever">#{['some_link']}</a>#{['something_else']}:),而是使用格式(即MessageFormat.format("Hello, {0}. You have {1} new messages.", name, mailCount);).这将不允许译者重新排序句子,并且由于目标的语言语法规则可能需要它.
  • 如果你在一个句子中有多个这样的占位符,那么不要使用原始占位符(例如%s%i%u)(实际上最好使用编号占位符,如{0},{1}.同样,有时翻译需要重新排序句子......
  • 不要使用特定于英语的语言结构(即"Paweł的仪表板",其中Paweł是我在注册时提供的名称).无法将其正确翻译为多种语言

还有,有事情要做:

  • 提供样式表覆盖机制(以便本地化人员可以修改元素的样式)
  • 为呈现的HTML页面的每个元素分配唯一ID(这将允许它们以重写的样式定位精确控件)
  • 尽可能使用UTF-8编码(显然HTML页面,电子邮件,如果有的话,但可能是资源文件[即属性])

还有更多与本地化无关的事情,如语言检测工作流程,格式化和验证数字,货币,日期(包括设置正确的时区),您需要在正确的全球化应用程序中关注,但这实际上是不同的故事.