2011-05-11 138 views
3

我一直在阅读一些关于人们如何进行国际化的文章。似乎普遍的共识是将这些字符串保存在单独的文件(通常是xml)中,并在必要时加载它。为什么要在单独的(xml)文件中存储国际化“单词”?

我想知道为什么不把这些字符串存储在数据库中呢?这种方式不是更好吗?

顺便说一句,我的应用程序的性质是一个网站的应用程序。

+1

使用xml文件(我的意思是当我们翻译时)更容易 – zerkms 2011-05-11 03:10:53

回答

4

最重要的是将您的字符串表格存储在编译单元之外,以便合并更新后的翻译不需要重建。这允许在稍后的时间将新的或更新的翻译纳入,而没有太多麻烦。

当然,这些字符串表可以存储在任何地方。如果你想把它们放在一个数据库中,请自己解决。只要您的应用程序能够联系到他们,并且您的翻译人员知道如何将他们送到正确的地方,那么这并没有什么不同。

1

如果您确实存储在数据库中,则每当您的“语言环境”切换时,都会引入额外的查询数据库开销。

这是资源捆绑的原因。您将它与源代码一起打包,但您不必更改代码以添加对语言的支持。

您也可以自己继承resourcebundle类并实现jdbc支持,以便特定于语言环境的字符串存储在数据库中。

http://java.sun.com/developer/technicalArticles/Intl/ResourceBundles/

+0

我的意思是这个问题并不是专门针对java – Pacerier 2011-05-11 03:26:17

+0

btw当我访问外部xml文件时也不会有开销? – Pacerier 2011-05-11 10:16:23

+0

启动时将翻译文件加载到程序存储器或memcache中。要么比使用dbms更好。 – 2011-05-11 14:42:17

3

严重的国际化始终是一个大的项目有很多零件和球员的。正如@zerkms所暗示的那样,翻译任务通常是世界各地个人和团队的离线活动。

因此,有一个翻译团队可以生成的干净的工作产品(翻译的XML文件)是有意义的。

文件翻译完成后,如何处理软件中的翻译将由您决定。由于您经常需要将变量替换为占位符,因此常常将它们保存在内存中。

相关问题