gpt4 book ai didi

PHP gettext 和 vagrant 运行 ubuntu

转载 作者:行者123 更新时间:2023-12-04 18:51:33 24 4
gpt4 key购买 nike

我在运行 Ubuntu 的 Vagrant 设置上让 gettext 翻译我的一个翻译文件时遇到问题。我的语言环境文件位于这样的目录中......

locales\de_DE\LC_MESSAGES\default.po

我相信翻译文件没问题,因为我有一个本地版本的 xampp 指向完全相同的文件并且它工作正常。

我已经尝试了以下方法,几乎​​只是想弄清楚发生了什么,因为我花了很长时间研究它
  • 权限 - 我可以在网页上输出 default.mo 文件的内容
  • 在“/etc/locale.gen”中启用语言环境,运行“locale-gen”并重新启动 apache

  • 有什么我可能错过的吗?
    <?php

    define('LOCALES_DIR', "../locales");

    if (! file_exists(LOCALES_DIR)) {
    exit("Locales not found from here");
    }

    $content = file_get_contents(LOCALES_DIR . "/de_DE/LC_MESSAGES/default.mo");
    if (strlen($content) < 1) {
    exit("File could not be read");
    }

    $language = "de_DE.UTF-8";
    putenv('LANG=' . $language);
    setlocale(LC_ALL, $language);

    $domain = "default";
    bindtextdomain($domain, LOCALES_DIR);
    textdomain($domain);
    bind_textdomain_codeset($domain, 'UTF-8');

    echo _("Sign In");

    更新
  • 由于某种原因,它现在间歇性地半工作,在第三次刷新时它将显示正确的文本。
  • 我的PHP版本略有不同
  • Vagrant :5.4.42
  • 本地:5.4.7
  • 不确定它是否有帮助,但 vagrant 上的 php_sapi_name() 是“fpm-fcgi”,而在本地它是“apache2handler”,只是猜测不是 100% 确定差异,但可以解释为什么 Apache 重启对 vagrant 不够
  • 最佳答案

    所以事实证明,按照这里的建议对我有用https://stackoverflow.com/a/20602983/682754

    sudo service php5-fpm restart

    我猜它可能源于以下之一:
  • 我一直在切换语言环境值 de_DE.UTF-8 以不使用连字符并尝试小写,我注意到在 Ubuntu 上它是 de_DE.utf8
  • 我还更改了 .po 和 .mo 文件的名称
  • 关于PHP gettext 和 vagrant 运行 ubuntu,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32256812/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com