php gettext 不适用于 wamp 和 windows 10

问题描述 投票:0回答:0

我知道这个问题已经在这里被问了很多次了,但我真的看了所有的问题并尝试了所有的方法,但仍然没有运气。

我正在尝试使用 PHP gettext 将我的应用程序从法语翻译成英语。我正在解析 gettext 字符串并将它们存储在 traduction.po 中,以便稍后使用 POEdit 进行翻译。 问题是每次它都只是输出原始输入。

我的设置:

  • Windows 10 64-Bit 法语系统语言环境
  • Wamp v3.3.1 64 位
  • 阿帕奇 2.4.54.2
  • PHP 8.2.5

gettext设置代码:

define('LOCALE_DIR', realpath($_SERVER['DOCUMENT_ROOT']). '/locale');

 

$locale = "en-US";
$domain = 'traduction';
putenv("LC_ALL={$locale}");
setlocale(LC_ALL, $locale);
bindtextdomain($domain, LOCALE_DIR);
textdomain($domain);
bind_textdomain_codeset($domain, 'UTF-8');
 
echo _("Bonjour");

翻译路径: C:\wamp\www\myapp\locale n-US\LC_MESSAGES raduction.po

翻译.po

msgid ""
msgstr ""
"Project-Id-Version: Trad Project Anglais\n"
"POT-Creation-Date: 2023-04-14 14:54+0200\n"
"PO-Revision-Date: 2023-04-14 14:54+0200\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: en_US\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 3.2.2\n"
"X-Poedit-Basepath: ../../..\n"
"X-Poedit-KeywordsList: _\n"
"X-Poedit-SearchPath-0: .\n"

 

#: index.php:17
msgid "Bonjour"
msgstr "Hello"

I've verified that gettext is enabled with phpinfo()

我还验证了我得到了正确的本地人(因为如果语言环境是 en_US 而不是 en-US,setlocale() 返回 false)

这里是我的 Windows 中安装的本地列表:

PS C:\Users\me> Get-WinUserLanguageList

 


LanguageTag     : en-US
Autonym         : English (United States)
EnglishName     : English
LocalizedName   : Anglais (États-Unis)
ScriptName      : Latin
InputMethodTips : {0409:00020409}
Spellchecking   : True
Handwriting     : False

 

LanguageTag     : fr-FR
Autonym         : Français (France)
EnglishName     : French
LocalizedName   : Français (France)
ScriptName      : Latin
InputMethodTips : {040C:0000040C}
Spellchecking   : True
Handwriting     : False

我也不确定是否有一个,但由于我没有收到错误消息,如果有一种方法可以显示 gettext 的日志,那就太好了

php windows wamp gettext poedit
© www.soinside.com 2019 - 2024. All rights reserved.