po mo 翻译仅适用于 en-GB 和 en-US,不适用于其他语言

发布于 2024-11-24 19:03:31 字数 756 浏览 1 评论 0原文

我使用 poedit 创建了翻译文件并生成了 mo 文件并将它们保存在各自的文件夹中。但不知何故,我只能访问 en_GB 和 en_US 文件夹中的翻译。即使我将 DE 翻译放在这些文件夹中它也能工作。

为什么它无法与其他语言环境一起使用?是否有我需要进行的配置或者我遗漏了什么?

这是我正在使用的代码。

switch ($_GET['language']) {
    case 'de' : $locale = 'de_DE'; break;
    case 'us' : $locale = 'en_US'; break;
    case 'fr' : $locale = 'fr_FR'; break;
    case 'es' : $locale = 'es_ES'; break;
    case 'it' : $locale = 'it_IT'; break;
    default : $locale = 'en_GB'; break;
}
putenv("LC_ALL=$locale");   
    setlocale(LC_ALL, $locale . '.UTF-8');
    $domname = 'default';
    bindtextdomain($domname, 'locale');
    textdomain($domname);
    bind_textdomain_codeset($domname, 'UTF-8');


echo gettext ("test123");
echo gettext ("hello every one");

I have created the translation files using poedit and generated the mo files and kept them in their respective folders. But somehow I can only access the translations which are in en_GB and en_US folders. even I place DE translation in these folders it works.

Why It is unable to work with other locale? Is there any configration which I need to make or I am missing something?

this is the code which I am using.

switch ($_GET['language']) {
    case 'de' : $locale = 'de_DE'; break;
    case 'us' : $locale = 'en_US'; break;
    case 'fr' : $locale = 'fr_FR'; break;
    case 'es' : $locale = 'es_ES'; break;
    case 'it' : $locale = 'it_IT'; break;
    default : $locale = 'en_GB'; break;
}
putenv("LC_ALL=$locale");   
    setlocale(LC_ALL, $locale . '.UTF-8');
    $domname = 'default';
    bindtextdomain($domname, 'locale');
    textdomain($domname);
    bind_textdomain_codeset($domname, 'UTF-8');


echo gettext ("test123");
echo gettext ("hello every one");

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

不醒的梦 2024-12-01 19:03:31

您确定要使用的所有其他区域设置都是 UTF-8 吗?在您的示例中,您在 setlocale() 中添加“.UTF-8”。

Are you sure that all the other locales you want to use are in UTF-8 ? In your example you add '.UTF-8' in setlocale().

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文