代码之家  ›  专栏  ›  技术社区  ›  Silver Light

PHP:gettext需要LC_消息dirs吗?

  •  5
  • Silver Light  · 技术社区  · 14 年前

    为了翻译我的PHP应用程序,我在gettext模块中使用了compiled。以下是根据文档生成的翻译目录树:

    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 U邮件目录?如果我使用这个结构,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");
    ?>
    

    提前谢谢你。

    3 回复  |  直到 14 年前
        1
  •  4
  •   mario    14 年前

    唯一可行的解决方法是创建符号链接 LC_MESSAGES -> . 在每个语言子目录中。(但这会使PHP应用程序的安装复杂化。FTP seldomly可以创建符号链接。)

        2
  •  3
  •   takeshin    14 年前

    我害怕 LC_MESSAGES 是一项要求。

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

        3
  •  0
  •   defro    7 年前

    如果您真的想这样做,可以使用此作曲家软件包: gettext/gettext

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

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