可以说我正在设计一个我们有英语,法语,西班牙语,德语和韩国的网站(我不是,但假装自己是)。

我不能依靠诸如Google翻译之类的服务,因为网站的性质不是娱乐而是商业。可以说,我可以访问可以将上下文转换为另一种语言的专业翻译人员,并给我该文本。

有哪些已知且简单的方法可以通过网站将内容提供多种语言?

有很多选项,例如使用数据库等单独的页面等等……但是我无法真正决定什么是最好的,概念如何扩展,需要考虑什么以及如何处理丢失的翻译?

有什么公认的做法吗?

有帮助吗?

解决方案

您询问的广泛主题称为“国际化和本地化”(或简称I18N和L10N)。要记住的重要事情是 不是 几乎要翻译消息。国际化网站还有许多其他事情。

您需要的更明显的是:

  • 一个针对所有语言字符的字符编码,而不仅仅是英语(这意味着数据库的所有内容都应使用UTF编码)
  • 某种代表用户的方式 语言环境 (即:Java的 语言环境 班级)
  • 在该用户语言环境中产生消息的常见模式(即:Spring's Messageource

您需要考虑的其他事情:

  • 根据语言环境正确排序字符串
  • 基于语言环境的格式日期
  • 始终在用户时区显示时间
  • 显示用户语言环境的距离测量值(即:英里与公里?)
  • 以希伯来语等语言为左右列出网站
  • 考虑一下您如何使您的信息相元。 String message = "Please fix the following error" + (errors.size() > 1 ? "s" : ""); 只是在国际化计划中不起作用。
  • 想想如何布置您的网页时,当文本长度可能会变化时。.永远不要以为角色或不再是一定宽度(汉字中的一个字符可能比较低的案例宽了8倍一世')

我能找到的最好的资源是 ICU库的用户指南. 。如果您使用Java,这是要使用的库。

希望这个答案是一个有用的开始!

其他提示

看看Google的建议 多区域和多语言网站. 。希望该信息派上用场。祝您好运。

完全同意@michael D和其他发布答案的开发人员。尽管这个问题已经被接受,但我认为一个小选择,例如:lang()伪类也可以有助于创建多语言网站。 :lang()伪类允许确定各种文档中的语言。

CSS代码:

    q:lang(fr) {     /* Quotations for French */ 
     quotes: "\00AB" "\00BB"; 
    }

    q:lang(en) {
     quotes: "\201C" "\201D";    /* Quotations for English */ 
    }


HTML代码:

 <html>
 <body>
 <pre>
     <p>Quote in French: <q lang="fr">То être ou ne pas être</q>.</p>
     <p>Quote in English: <q lang="en">То be or not to be</q>.</p>
 </pre>
 </body>
 </html>

输出将是这样的:

Quote in French language: << То être ou ne pas être >>.

Quote in English language: "То be or not to be".

请注意,我们正在谈论文档,而不是文本,因为它们执行复杂的格式。

我们在磁盘上有一组文件,这些文件包含给定的小部件/模块/erhit中的所有字符串,并且每个语言的单独文件,即:

foo.strings == generic (happens to be US english)
foo.fr.strings == french
foo.fr-CA.strings == canadian french 
foo.en-CA.strings == canadian english

根据客户的接受语言标题,我们确定他想要的语言。

当首先请求给定语言时,我们点击文件系统以构建该语言的大字符串映射,然后在内存中缓存。如果在FR-CA中未定义给定的字符串,我们将堆叠到FR,然后最终到达通用

页面是动态生成的,每个URL的生成版本都根据用户的语言标头(除其他方面)而缓存。

希望有帮助

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top