【问题标题】:Creating a multi-Language website - Static or Dynamic?创建多语言网站 - 静态还是动态?
【发布时间】:2012-10-16 16:32:16
【问题描述】:

我正在创建一个网站,它必须是多语言的。必须进行翻译并加上前缀 (没有自动翻译 api)。我的问题是,什么更有效?:

  • 为每种语言创建一个文件集。
  • 创建一个文件集并通过 PHP 常量显示文本。
  • 我还想过做一个 MySql 查询来获取一个包含文档开头所有翻译的数组。

注意:*不会有很大的文本。

【问题讨论】:

    标签: php constants multilingual


    【解决方案1】:

    从长远来看,您最好的选择是为每种语言使用一个文件集。如果您使用行业标准格式,例如 GNU gettext,PHP 有built in support。此外,第三方翻译公司和翻译工具通常支持该格式,因此长期网站维护对开发人员的依赖较少。

    【讨论】:

    • 我要去研究一下。例如,您认为像 facebook 这样的系统是如何制作的?单个文件?
    • 我想你可以去这个问题去探索更多的细节stackoverflow.com/questions/18468018/…
    【解决方案2】:

    我正在为我正在开发的网站使用Zend Translate

    Zend Framework 中的大部分组件都可以作为独立组件使用。我正在使用完整的堆栈,但仅使用 Zend Translate 应该不是什么大问题。

    至于使用数据库获取翻译,我认为这取决于您处理的内容类型。例如,对于 Joomla!有一些组件以不同的语言存储同一篇文章的不同版本。

    我会推荐 Zend Translate,因为您有不同的选项来获取翻译:PHP 数组、INI 文件、gettext、xml。

    您可以事件扩展适配器类以创建数据库后端适配器。

    希望对你有帮助。

    【讨论】:

    • 这可能是一个选项,但我并不真正需要这种解决方案,因为我不处理大型翻译。大内容直接以各自的语言显示(不会翻译)
    • 正如我所说,使用 Zend Translate 作为独立组件应该没有问题,只需要告诉适配器你的文件在哪里。这些可以是纯文本 INI 文件,格式如下: TRANSLATION_MESSAGE_ID = "嘿,我要翻译了" 它实际上可以检测文件夹结构。否则,您可以使用简单的函数实现简单的 PHP 数组方法。
    • 完美。而且,使用 Zend Translate 之类的框架和使用自己的数组有什么区别?我的意思是,为了简单的目的,框架不是太复杂了吗?
    • 是的,您可以只包含所需的 PHP 语言文件并仅返回包含由消息 ID 索引的翻译的数组,并编写您的 translate($message) 函数以从数组中获取字符串,不应该更复杂。
    • 您可以使用此工具或其他工具在线翻译,但参考谷歌提供的工具如 google trasnlate、ajax google 等不保证内容的完整性。
    【解决方案3】:

    我想它会帮助你:http://www.youtube.com/watch?v=v7vCp_TFcdU
    它使用session 来存储选择的语言并为每种语言使用一个数组。

    【讨论】:

    • 问题具体问什么更有效。如果 youtube 视频回答了这个问题,你能在这里把它浓缩成文字吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-28
    • 2014-07-24
    • 1970-01-01
    • 1970-01-01
    • 2021-03-06
    • 2016-07-31
    相关资源
    最近更新 更多