PHP Gettext在Wamp(Windows10)环境下失效问题求助
PHP Gettext始终输出原字符串问题排查
我知道这个问题被问过很多次,但我查遍了相关资料、试过所有方法都没解决。现在我想用PHP Gettext把法语应用翻译成英语,已经用POEdit把Gettext字符串解析存入traduction.po文件并完成翻译,但每次输出的都是原字符串。
环境配置
- Windows 10 64位,系统区域设置为法语
- Wamp v3.3.1 64位
- Apache 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\en-US\LC_MESSAGES\traduction.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"
已完成的排查
- 通过
phpinfo()确认Gettext扩展已启用 - 验证locale设置时发现,使用
en_US调用setlocale()返回false - 系统已安装的locale列表:
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的日志信息。
内容的提问来源于stack exchange,提问作者PTQuyen
相关产品推荐
相关产品推荐

