【问题标题】:How to handle dynamic site localizations?如何处理动态站点本地化?
【发布时间】:2010-05-25 03:58:50
【问题描述】:

我有一个目前全英文的网站。它是一个在线游戏,所以它有一堆不同的页面和静态文本,以及数据库中的大量内容。

我正在尝试在全球范围内进行更多扩展,并准备发布该网站的一些本地化版本。但是,我不确定进行此设置的最佳方法,以便它对我来说最容易管理,对用户来说也是最容易使用的。

我应该将翻译后的文本存储在数据库中,还是应该以完全不同的方式完成?如果重要的话,该网站是用 PHP 编写的并使用 MySQL。

【问题讨论】:

    标签: php mysql localization transactions translation


    【解决方案1】:

    根据我的经验,手动进行所有翻译可能是一场真正的噩梦! %-)

    我认为您必须将翻译重点放在仪表板命令站点上,例如导航菜单和所有其他用户配置文件设置,以及站点周围的按钮等等!

    通过像这样包含到您的页面文件中来做到这一点:

      include "./includes/languages/english.php";
    

    在一个名为 ex. 的文件中:english.php put like this ex

    define('LAN_USER_LOGIN' , 'User Logged In');
    define('LAN_USER_LOGOUT' , 'User Logged Out');
    .....
    

    等等 italian.php、spanish.php、french.php 等...并且在每个文件中都有相同的定义变量但已翻译!

    然后您可以让用户从国家列表中进行选择!顺便说一句,有很多方法!

    一种方法是使用会话

    // if the user haven't selected a language before!!
    if (empty($_SESSION['language'])) {
     $_SESSION['language'] = "EN";
    } else {
    $_SESSION['language'] = YOUR_LANG ;
    }
    

    对于所有其他内容,我建议使用类似的工具

    http://code.google.com/intl/it-IT/apis/ajaxlanguage/


    注意:我建议您不要使用自动识别系统,因为它可能会导致非常烦人的体验,特别是如果您从其他国家/地区观看该网站!或者只是你想从中选择,简单地让用户最终选择! ;-)

    使用自动识别进行自动完成注册! ;-)

    希望对您有所帮助!

    【讨论】:

      【解决方案2】:

      我建议使用集中式存储(这可能是一个 MySQL 数据库表,其中有一列“语言”用于存储翻译的语言)。这也可以是 XML 文件,每种语言一个文件。

      如果您正在寻找更多可能的文件格式,请查看 Zend Framework 的此文档页面:http://framework.zend.com/manual/en/zend.translate.adapter.html

      对于翻译,如果您没有使用已经包含翻译的框架,我会创建一个自定义函数或自定义类。

      另一种选择是使用标准的 PHP 函数。只需寻找“_()”函数。不过我没有使用过这些函数,只是发现了它们,不确定它们的工作情况。

      【讨论】:

        【解决方案3】:

        我建议将gettext 与集成(例如 Zend)并以 .po 文件格式存储的框架一起使用。 .po 格式具有使翻译工作公平的编辑器。它也非常便携(因此得名),可以随身携带到其他游戏中。

        【讨论】:

          【解决方案4】:

          我们使用 Zend 框架的混合方法。页面内容(所见即所得页面)存储在数据库中(每种语言一条记录,非本地化数据与本地化数据分开并存储在链接的不同表中),但字段标签和标准错误/反馈消息存储在 XML 或gettext 文件(每种语言一个文件)。

          【讨论】:

            【解决方案5】:

            我们使用混合方法:

            • CMS 页面翻译数据库
            • 用于单词/句子翻译的 XML(静态文本、标签、错误消息等)

            对于数据库,我们通常使用 2 个表格:1 个用于主要内容,其他形式的翻译,因此我们可以选择如果翻译不可用时做什么:以原始语言显示内容,或隐藏它。

            对于 XML,我们使用XLIFF 格式,可以很容易地被许多框架和软件支持

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2014-02-18
              • 2010-11-29
              • 1970-01-01
              • 2016-04-27
              • 1970-01-01
              • 1970-01-01
              • 2012-07-11
              • 1970-01-01
              相关资源
              最近更新 更多