linux 多国语言 请指点!

Earth_nie 2009-05-27 08:18:12
不同的linux版本,像debian,ubuntu,redhat, 它们在用gettext 和 msgfmt在实现多国语言的时候,有什么差别吗?

PS:我的程序在debian上可以用,但是在 ubuntu上和xandros上就用不了。

麻烦指点一下,谢谢!!
...全文
89 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
Earth_nie 2009-06-02
  • 打赏
  • 举报
回复
呵呵 完成了 不僅要設置上面那些,而且要根據不同的系統 進行不同的編碼來 生成 mo文件。不然系統是不識別的。
Earth_nie 2009-05-27
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 fetag 的回复:]
说实话,我没看懂你的解释...
[/Quote]
呵呵 按照相同的 步驟

在debian在做多國語言是可以實現,各國語言之間的轉換的。

但是在ubuntu和xandros上卻不能實現。

程序是C gtk寫的,在兩個上面都能運行,多國語言是用gettext和msgfmt來生成.po和.mo文件的,在不同的系統上會獨立生成一份。

現在的問題是: 在debian上可以實現語言的轉換。為什么在ubuntu和xandros上不可以?(是語言包沒有安裝?還是?)

這樣的解釋清楚嗎?
独孤过儿 2009-05-27
  • 打赏
  • 举报
回复
说实话,我没看懂你的解释...
Earth_nie 2009-05-27
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 fetag 的回复:]
引用楼主 Earth_nie 的帖子:
不同的linux版本,像debian,ubuntu,redhat, 它们在用gettext 和 msgfmt在实现多国语言的时候,有什么差别吗?

PS:我的程序在debian上可以用,但是在 ubuntu上和xandros上就用不了。

麻烦指点一下,谢谢!!

你的问题叙述的不清楚啊,追问两句:

在debian上可以用,在ubuntu上和xandros上不可用,你说的可用和不可用是指二进制的可执行程序,还是指源码?

如果是指可执行程序不…
[/Quote]
程序是可以用的,只是多國語言不能實現。(也就是沒有調用生成的mo文件或者是其他的原因)


沒有跨系統的轉移 , 當然是不同的系統生成不同的 po然后再在省城相應的 mo文件,在進行cp操作的。
Earth_nie 2009-05-27
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 puheavy123 的回复:]
[root@RHEL4_U5 ~]# echo $LANG
en_US.UTF-8
[/Quote]
呵呵 這個我知道 我也得到了 而且mo文件也cp進去了。。。
按照這個過程在debian上的額是可以實現的,就是為什么到xandros和ubuntu上實現不了。
独孤过儿 2009-05-27
  • 打赏
  • 举报
回复
[Quote=引用楼主 Earth_nie 的帖子:]
不同的linux版本,像debian,ubuntu,redhat, 它们在用gettext 和 msgfmt在实现多国语言的时候,有什么差别吗?

PS:我的程序在debian上可以用,但是在 ubuntu上和xandros上就用不了。

麻烦指点一下,谢谢!!
[/Quote]
你的问题叙述的不清楚啊,追问两句:

在debian上可以用,在ubuntu上和xandros上不可用,你说的可用和不可用是指二进制的可执行程序,还是指源码?

如果是指可执行程序不可用,报的错误是什么?能否贴上来看一下。

再多说一句:虽然linux内核一样,但是这种跨系统的binary移植,不可用其实是相当正常的,可用才值得意外惊

喜呢!
puheavy123 2009-05-27
  • 打赏
  • 举报
回复
[root@RHEL4_U5 ~]# echo $LANG
en_US.UTF-8
Earth_nie 2009-05-27
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 once_and_again 的回复:]


安装 相应的 mo文件吧.
[/Quote]
安裝相應的 mo? 是自己生成的? 還是相應語言帶的?
Earth_nie 2009-05-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 morris88 的回复:]
看看其语言设置是否跟你的程序一致,不行的就修改一下环境变量:

Perl code# locale
[/Quote]
用locale -a看的時候是有的。
而且我也在locale.gen中增加了我需要的(系統里面有的)

我獲取的系統默認的語言文件夾,然后自動cp進去。這方面沒有問題的吧?
once_and_again 2009-05-27
  • 打赏
  • 举报
回复


安装 相应的 mo文件吧.
morris88 2009-05-27
  • 打赏
  • 举报
回复
看看其语言设置是否跟你的程序一致,不行的就修改一下环境变量:
# locale
Earth_nie 2009-05-27
  • 打赏
  • 举报
回复
恩 呵呵 這個當然是首先要注意的。
像locale.gen
locale -a
/etc/default/locale
等我都看了。設置感覺沒什么問題。
lwluser 2009-05-27
  • 打赏
  • 举报
回复
假设我编译后的程序名称为: prog1

setlocale ( LC_ALL, "" );
bindtextdomain ( "prog1", "/usr/share/locale" );
textdomain ( "prog1" );
Earth_nie 2009-05-27
  • 打赏
  • 举报
回复
呵呵 這個是個問題,

但是我現在沒有到en 到 zh 的轉換,純英文之間的轉換。

也就是說只是用不同的詞來替換現在顯示上的英文單詞,都不行。

我想這樣應該有可比性了吧。

locale的配置除了 debian是en_US,而ubuntu是en_GB這兩個不同之外,其他的都是一樣的。 難道這也有問題?
独孤过儿 2009-05-27
  • 打赏
  • 举报
回复
个人觉得,是因为在ubuntu和xandros上的语言环境和debian上不同,比如,你在debian上可能有en和zh两种语言

环境,而在ubuntu和xandros上只有en,这样就可能会产生问题。

我个人建议,你把OS的基本语言环境都配置成相同的,然后再测试应用程序,毕竟没有一个可对比的基础环境,

上层的测试没有可比性。

23,121

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧