【问题标题】:Gettext not working获取文本不起作用
【发布时间】:2014-10-01 14:56:12
【问题描述】:

我试图让 gettext 在本地服务器中工作,但它只是不工作。它没有给我任何错误,它只是以西班牙语返回我的字符串,而不是将其翻译成英文。

这是 index.php

<html>
<?php
$locale = "en_US";
putenv("LC_ALL=$locale");
setlocale(LC_ALL, $locale);
bindtextdomain("messages", "./locale");
bind_textdomain_codeset("messages", 'UTF-8');
textdomain("messages");
?>
<?= _("Volver al Panel") ?>
</htlm>

这是 messages.po,位于 locale/en_US/LC_MESSAGES/

# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-10-01 11:31-0300\n"
"PO-Revision-Date: 2014-10-01 11:38-0300\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.5.4\n"

#: index.php:10
msgid "Volver al Panel"
msgstr "Back to Panel"

当然,我也可以毫无问题地使用“sudo msgfmt messages.po”创建messages.mo。

问题是它应该返回“返回面板”而不是“Volver al Panel”,我错了吗?

【问题讨论】:

    标签: php internationalization gettext


    【解决方案1】:

    我发现了问题所在并且可以解决它。

    我使用命令 locale -a 并意识到我没有安装名为 en_US 的语言环境,但我确实有一个 en_US.utf8 语言环境,所以我将它们都切换了并且它工作了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-03-04
      • 1970-01-01
      • 2018-10-05
      • 2016-12-17
      • 1970-01-01
      相关资源
      最近更新 更多