PHP-GetText只翻译了一种语言? [英] PHP-GetText only one language translated?

查看:107
本文介绍了PHP-GetText只翻译了一种语言?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用gettext来实现我的php文件的国际化。这个文件的结构是这个

I'm using gettext for internationalization for my php files. this structure of the files is this

/file.php  
/locale
    /en_US
        /LC_MESSAGES
            messages.po
            messages.mo
    /mk_MK
        /LC_MESSAGES
            messages.po
            messages.mo





我在file.php中有以下代码。这不起作用



I have the following code in file.php. This DOESN'T work

if(isset($_SESSION['lang']))
{
    $domain = "messages";
    bindtextdomain($domain, "locale");
    bind_textdomain_codeset($domain, 'UTF-8');
    textdomain($domain);
}
else
{
    $_SESSION['lang'] = "en_US";
    putenv("LANG=" . $_SESSION['lang']);
    setlocale(LC_ALL, $_SESSION['lang']);

    $domain = "messages";
    bindtextdomain($domain, "locale");
    bind_textdomain_codeset($domain, 'UTF-8');
    textdomain($domain);
}





但如果我更改mk_MK中的$ _SESSION ['lang'],它确实在这里翻译的是2 message.po文件


mk文件夹中的
messages.po



BUT if I change the $_SESSION['lang'] in "mk_MK" it does translate here are the 2 messages.po files

messages.po in mk folder

"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.5.7\n"
"Language: Macedonian\n"
"X-Poedit-SourceCharset: UTF-8\n"

msgid "home"
msgstr "Дома"

msgid "about"
msgstr "За нас"

msgid "products"
msgstr "Производи"

msgid "projects"
msgstr "Проекти"

msgid "contact"
msgstr "Контакт"
msgid "title_home"
msgstr "СОЛЕМ"

msgid "title_about"
msgstr "СОЛЕМ - За нас"

msgid "title_products"
msgstr "СОЛЕМ - Производи"

msgid "title_projects"
msgstr "СОЛЕМ - Проекти"
msgid "title_contact"
msgstr "СОЛЕМ - Контакт"

msgid "SOLEM"
msgstr "СОЛЕМ"

msgid "address"
msgstr "Ул. Владимир Комаров 33/1-2 <br/> 1000 Скопје<br/> Р. Македонија"

msgid "telephone"
msgstr "Тел: 02/2467 551"

msgid "mail"
msgstr "e-mail: info@solem.org.mk"

msgid "facebook"
msgstr "Здружение СОЛЕМ"





和英文版相同





and the english version of the same

"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.5.7\n"
"Language: English\n"
"X-Poedit-SourceCharset: UTF-8\n"

msgid "home"
msgstr "Home"

msgid "about"
msgstr "About us"

msgid "products"
msgstr "Products"

msgid "projects"
msgstr "Projects"

msgid "contact"
msgstr "Contact"

msgid "title_home"
msgstr "SOLEM"

msgid "title_about"
msgstr "SOLEM - About us"

msgid "title_products"
msgstr "SOLEM - Products"

msgid "title_projects"
msgstr "SOLEM - Projects"

msgid "title_contact"
msgstr "SOLEM - Contact"

msgid "address"
msgstr ""
"Address: Ul. Vladimir Komarov 33/1-2 <br/> 1000 Skopje <br/> R. Macedonia"

msgid "mail"
msgstr "e-mail: info@solem.org.mk"

msgid "telephone"
msgstr "Tel: (+389) 2 2467 551"

msgid "facebook"
msgstr "Organisatoin SOLEM"

msgid "SOLEM"
msgstr "SOLEM"





我怀疑它与实际的文件夹位置有关,因为当我切换文件(mk文件夹中的英文文件)时它翻译好了(即使是会话版本,也是英文版) ntrol是mk_MK,但由于文件被切换,因此当然是偏离的。我尝试重新启动WAMP服务器中的服务,但它没有改变任何东西



I suspect it has something to do with the actual folder location because when i switched the files (English file in mk folder) it translated it OK (in English even though the session control is "mk_MK" but that is off course because the file is switched). i tried restarting the services in the WAMP server but it didnt change anything

推荐答案

_SESSION [' lang']))
{
_SESSION['lang'])) {


domain = messages;
bindtextdomain(
domain = "messages"; bindtextdomain(


domain, locale );
bind_textdomain_codeset(
domain, "locale"); bind_textdomain_codeset(


这篇关于PHP-GetText只翻译了一种语言?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆