gettext工具翻译不成功记录

gettext-0.10.40版本

嵌入式设备上操作

/usr/local #export LC_MESSAGES="zh_CN.GB2312"
/usr/local # export TEXTDOMAINDIR="/usr/local/share/locale/"

/usr/local # ./gettext -s -d dvr 'NAS'

返回NAS,按照msgid查询,无法返回对应的msgstr。

究其原因:在设置LC_MESSAGES="zh_CN.GB2312"或LC_MESSAGES="zh_CN"后

setlocale函数没有正确返回设置环境变量指示语言的值。

zh_CN.GB2312:对应"/usr/local/share/locale/zh_CN.GB2312/LC_MESSAGES/" mo搜索资源路径。

zh_CN:对应"/usr/local/share/locale/zh_CN/LC_MESSAGES/" mo的搜索路径。

修改内容:

gettext-0.10.40\intl\dcigettext.c

L:1170-1173, 1189行

修改表现效果如下:

 

gettext-0.19.8.1版本

utf-8 字符集支持修改内容如下:

Index: gettext-runtime/intl/localcharset.c
===================================================================
--- gettext-runtime/intl/localcharset.c	(版本 33857)
+++ gettext-runtime/intl/localcharset.c	(工作副本)
@@ -397,7 +397,7 @@
 
 #if !(defined WINDOWS_NATIVE || defined OS2)
 
-# if HAVE_LANGINFO_CODESET
+# if 0//HAVE_LANGINFO_CODESET				//bstar added
 
   /* Most systems support nl_langinfo (CODESET) nowadays.  */
   codeset = nl_langinfo (CODESET);
Index: gettext-runtime/intl/localename.c
===================================================================
--- gettext-runtime/intl/localename.c	(版本 33857)
+++ gettext-runtime/intl/localename.c	(工作副本)
@@ -2788,6 +2788,7 @@
 const char *
 gl_locale_name_posix (int category, const char *categoryname)
 {
+  return gl_locale_name_environ (category, categoryname);	//bstar added
   /* Use the POSIX methods of looking to 'LC_ALL', 'LC_xxx', and 'LANG'.
      On some systems this can be done by the 'setlocale' function itself.  */
 #if defined HAVE_SETLOCALE && defined HAVE_LC_MESSAGES && defined HAVE_LOCALE_NULL

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值