【问题标题】:Options for localizing web app用于本地化 Web 应用程序的选项
【发布时间】:2013-09-30 13:09:33
【问题描述】:

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

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

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

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

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

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

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

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

【问题讨论】:

标签: php localization translation


【解决方案1】:

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

eng.po

msgstr ""

msgstr ""

ch.po

msgstr ""

msgstr ""

详情请看这里http://php.net/manual/en/book.gettext.php

【讨论】:

    猜你喜欢
    • 2023-03-25
    • 1970-01-01
    • 2015-07-07
    • 2010-11-06
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-22
    相关资源
    最近更新 更多