【问题标题】:PHP: does gettext require LC_MESSAGES dirs?PHP:gettext 是否需要 LC_MESSAGES 目录?
【发布时间】:2011-05-10 16:49:33
【问题描述】:

为了翻译我在 gettext 模块中编译的 PHP 应用程序。这是根据文档制作的翻译目录树:

locale/
  cs_CZ/
    LC_MESSAGES/
       messages.po
       messages.mo
  de_DE/
    LC_MESSAGES/
       messages.po
       messages.mo
  fr_FR/
    LC_MESSAGES/
       messages.po
       messages.mo

问题:是否可以去掉 LC_MESSAGES 目录?如果我使用这种结构,PHP 是否能够找到翻译?

locale/
  cs_CZ/
     messages.po
     messages.mo
  de_DE/
     messages.po
     messages.mo
  fr_FR/
     messages.po
     messages.mo

我的 PHP 切换翻译:

<?php
    setlocale(LC_ALL, 'fr_FR.UTF-8');
    bindtextdomain("messages", "locale");
    bind_textdomain_codeset("messages", 'UTF-8');
    textdomain("messages");
?>

提前谢谢你。

【问题讨论】:

  • 抱歉,没办法。它固定在 gettext 库中。

标签: php internationalization gettext


【解决方案1】:

唯一可行的解​​决方法是在每个语言子目录中创建符号链接LC_MESSAGES -&gt; .。 (但这会使 PHP 应用程序安装变得复杂。FTP 很少能创建符号链接。)

【讨论】:

    【解决方案2】:

    恐怕LC_MESSAGES 是一个要求。

    如果我错了,请纠正我,但我认为这与 gettext 缓存有关。

    【讨论】:

      【解决方案3】:

      如果你真的想这样做,你可以使用这个作曲家包:gettext/gettext

      因此,您可以根据需要或什至类似的方式来组织文件夹:

      locales/
         cs_CZ.mo
         cs_CZ.po
         de_DE.mo
         de_DE.po
         fr_FR.mo
         fr_FR.po
      

      【讨论】:

        猜你喜欢
        • 2023-03-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多