我从一个相对信任的来源获悉,gettext不需要系统区域设置才能工作。但我已经尝试了一些教程,除非我有locale-gen'd(在arch中)fi_FI.utf8,否则我无法显示任何翻译。
root@junior:~/programming/Projects/Cpp/web/test# LANG=fi_FI.utf8 bin/hello Hello world! This is package: web-cms root@junior:~/programming/Projects/Cpp/web/test# sed -i 's/#fi_FI.UTF-8/fi_FI.UTF-8/' /etc/locale.gen && locale-gen Generating locales... en_GB.UTF-8... done en_US.UTF-8... done fi_FI.UTF-8... done Generation complete. root@junior:~/programming/Projects/Cpp/web/test# LANG=fi_FI.utf8 bin/hello Terve maailma Tämä on paketti: web-cms
答案 0 :(得分:1)
你听到了吗?据我所知,您需要系统区域设置才能使用gettext。但是,您不需要为这些系统区域设置安装所有翻译,只是为了让您的“hello world”工作。
答案 1 :(得分:0)
setenv("LANGUAGE", languagecode);
如果语言代码为“fr”,并且在bindtextdomain指向的目录中有“fr / LC_MESSAGES / .mo”文件,则该文件应该可以正常工作。