1

我正在开发一个国际网站(PHP,自定义轻量级 MVC 框架),该网站需要以用户的母语显示内容。内容主要是文本,但也可能是图像。

我们当前的解决方案是一个巨大的文件,每个要翻译的文本都有单独的函数,每个函数中都有一个 switch case。这已经变得难以维护并且也不是特别可扩展。

我们的首要任务是性能、可维护性(如果我们需要修复错误或进行更改,应该在尽可能少的地方发生)和可扩展性(允许翻译人员添加更多语言)。我们预计将使用至少 10-12 种语言。我们还需要考虑文本中的 HTML 内容,例如<p></p>和链接。目前,我们在返回的文本中有 HTML 内联(显然,这不是特别可维护的)。我们考虑过的一些选项:

用于翻译的数据库表,包含每种语言的列
+ 可扩展到大量内容
- 翻译人员不容易添加/更改内容
- 大量数据库事务,性能缓慢

一个平面文本文件 (CSV)
+ 转换为电子表格,便于翻译人员使用
- 将一个巨大的文件加载到内存中可能会影响性能(不确定这实际上会产生多大的影响)
- 可能难以维护

每种语言一个平面文本文件
+ 便于翻译人员使用
?更好的性能(也许)

持续集成系统,使用嵌入的本地化内容创建每个 (MVC) 视图的多个版本
+ 性能最佳
+ 可以与 CSV 或其他易于翻译人员使用的格式相结合
- 设置复杂
- 可能难以维护

我们一直在寻找有关如何在 Web 应用程序中提供翻译内容的指南,但没有找到任何有用的东西。这些选项中哪一个是最好的,还有哪些我们没有考虑过的其他实现?

4

1 回答 1

0

本地化可以使用php 和.po文件类型的gettext扩展名来实现。Po 文件类型与 FNU gettext 相关联。使用 POEdit 我们可以创建 .po 和 .mo 文件 .po 文件包含带有您的转换的文本消息,如下所示

英文版

msgstr ""

msgstr ""

ch.po

msgstr ""

msgstr ""

有关详细信息,请在此处阅读http://php.net/manual/en/book.gettext.php

于 2013-09-25T08:32:41.543 回答