假设我正在设计一个我们有英语,法语,西班牙语,德语和韩国的网站(我不是,但让我们假装自己是)。多语言网站的设计模式?
我不能依靠服务,如谷歌翻译,因为网站的性质不是娱乐而是商业。假设我可以访问专业翻译人员,他们可以将上下文中的某些内容翻译成另一种语言,并为我提供该文本。
什么是一些已知和简单的方法来提供多种语言与网站上的内容?
有很多选择,比如单独的页面,使用数据库等......但我不能确定什么是最好的,这个概念如何扩展,需要考虑什么以及如何处理缺少翻译?
这是否有任何行之有效的做法?
假设我正在设计一个我们有英语,法语,西班牙语,德语和韩国的网站(我不是,但让我们假装自己是)。多语言网站的设计模式?
我不能依靠服务,如谷歌翻译,因为网站的性质不是娱乐而是商业。假设我可以访问专业翻译人员,他们可以将上下文中的某些内容翻译成另一种语言,并为我提供该文本。
什么是一些已知和简单的方法来提供多种语言与网站上的内容?
有很多选择,比如单独的页面,使用数据库等......但我不能确定什么是最好的,这个概念如何扩展,需要考虑什么以及如何处理缺少翻译?
这是否有任何行之有效的做法?
您提到的广泛的主题叫做“国际化和本地化”(简称I18N和L10N)。重要的是要记住的是,它不是而是只是翻译消息。还有很多其他的事情将会使网站国际化。
,你将需要更明显的事情是:
其他的事情要考虑:
String message = "Please fix the following error" + (errors.size() > 1 ? "s" : "");
在国际化程序中不起作用。我找到的最好的资源是ICU library's User guide。如果您使用Java,则这是要使用的库。
希望这个答案是一个有益的开始!
我们在磁盘上有一组文件,其中包含给定小部件/模块/任何内容中的所有字符串,并且每种语言都有单独的文件,即:
foo.strings == generic (happens to be US english)
foo.fr.strings == french
foo.fr-CA.strings == canadian french
foo.en-CA.strings == canadian english
根据客户端的Accept-Language头,我们确定他想要哪种语言。
当第一次请求给定语言时,我们点击文件系统为该语言建立大型字符串映射,然后将其缓存在内存中。如果在fr-CA中没有定义给定的字符串,我们将堆栈跳转到fr,然后跳转到通用模式
动态生成页面,并根据用户的语言缓存每个URL的生成版本标题(除其他外)。
希望帮助
看看谷歌的Multi-regional and multilingual sites建议。希望信息派上用场。祝你好运。
完全同意@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".
请注意,我们正在谈论的文件,而不是一块文本,因为它们执行复杂的格式。
当然,你不能依靠谷歌翻译,它设法很好地屠杀日本人,我希望它对韩国人的待遇也会类似。 – 2010-10-06 19:46:51
也取决于您使用的编程语言 – Wil 2010-10-06 19:54:31