PHP + Poedit + Gettext无法使用西班牙语

时间:2019-01-29 12:52:37

标签: php internationalization gettext poedit php-gettext

我正在一个使用Poedit进行翻译的多语言PHP网站上,我在使用特定语言(西班牙语)时遇到了问题。

我将开始说在服务器(发布网站之后)中,两种语言都可以正常工作,但是在我的DEV环境中,只会翻译英语。

仅供参考,在我的Ubunto系统上未安装西班牙语言环境,因此我通过以下方式安装了它们: sudo apt-get install language-pack-es 并通过以下方式生成了相关的东西:sudo locale -gen es

我的网站下有下一个文件夹结构:

languages => en_US => LC_MESSAGES => .po + .mo (compiled) files

languages => es_ES => LC_MESSAGES => .po + .mo (compiled) files

下一个是set_locale.php文件:

<?php
    // Include the Composer autoloader
    require_once 'vendor/autoload.php';
    // Update include path
    require_once 'Audero/SharedGettext/SharedGettext.php';

    $translationsPath = 'languages';
    $language = 'es_ES'; //en_ZM
    if (isset($_GET['lng'])) {
        $getLocale = $_GET['lng'];
        if($getLocale=="en") {
            $language="en_US";
        }
    }
    $domain = 'audero';

    putenv('LC_ALL=' . $language);
    setlocale(LC_ALL, $language);

    try {
        $sharedGettext = new Audero\SharedGettext\SharedGettext($translationsPath, $language, $domain);

        // Create the mirror copy of the translation and return the new domain
        $newDomain = $sharedGettext->updateTranslation();

        $sharedGettext->deleteOldTranslations();

        // Sets the path for the current domain
        bindtextdomain($newDomain, $translationsPath);

        // Specifies the character encoding
        bind_textdomain_codeset($newDomain, 'UTF-8');

        // Choose domain
        textdomain($newDomain);

        //die(print_r("", true ));
    } catch(\Exception $ex) {
        echo $ex->getMessage();
    }
?>

然后我通过以下方式翻译文本:

...
<title><?php echo _("home_title"); ?></title>
...

但是对于西班牙语,我得到了密钥(示例后为home_title),但没有翻译。

有帮助吗?

谢谢。

0 个答案:

没有答案