我正在使用 Django 在基于 Web 的应用程序上进行一些 i18n 操作,该应用程序使用 gettext 作为其 i18n 基础。翻译应该存储在数据库中似乎是一个显而易见的想法,而且并不难做到,但文件系统上的 po 文件仍在使用。为什么是这样?
我目前的怀疑是,开发一个数据库备份的好处完全被 gettext 作为一个完善的软件包的可靠性/熟悉性所抵消。继续将翻译存储在文件系统上还有其他重要原因吗?
表现是主要原因。Gettext http://www.gnu.org/software/gettext/不使用数据库,因为数据库总是比文件慢得多。字典的加载时间非常重要,因此几乎每个人都使用文件来加载。
另外,编译后的 gettext 文件(.mo
)针对在内存中加载进行了优化,因此它们比纯文本文件(例如未编译的文件)更合适.po
files).
您始终可以使用翻译平台,可能使用数据库后端,进行翻译并将结果导出到文本文件。例子:Pootle http://en.wikipedia.org/wiki/Pootle, Narro http://code.google.com/p/narro/, 罗塞塔发射台 https://launchpad.net/rosetta, Transifex(仅限托管) http://www.transifex.net/.
不要将应用程序语言文件与本地化数据库混淆。您的应用程序应该使用加载速度快的基于文件的字典,并且您的本地化系统可能必须使用数据库并在逻辑上能够将数据导出到文件。
顺便说一下,使用gettext
可能是您在本地化方面能够做出的最佳技术决策。我从未见过任何商业解决方案或内部开发的解决方案能够在功能、工具甚至支持方面与它竞争。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)