如何用gettext实现i18n?google的太简单看不懂

sh/bash/dash/ksh/zsh等Shell脚本
回复
头像
lonelycorn
帖子: 438
注册时间: 2007-05-20 18:44
来自: 唐山,河北,中国
联系:

如何用gettext实现i18n?google的太简单看不懂

#1

帖子 lonelycorn » 2008-08-22 12:53

我google了一下就发现这样的一个东西
$ cat test.sh
#!/bin/bash
export TEXTDOMAINDIR=/usr/share/locale
export TEXTDOMAIN=test.sh
echo "$(gettext -s hello)"

编辑一个po文件:
$ cat test.sh.po
msgid "hello"
msgstr "你好!"

编译成mo文件:
$msgfmt -o test.sh.mo test.sh.po

复制到/usr/share/locale/zh_CN/LC_MESSAGES/
$cp test.sh.mo /usr/share/locale/zh_CN/LC_MESSAGES/

中文:
$ export LANG=zh_CN.UTF-8
$ ./test.sh
你好!

英文:
$ export LANG=en_US.UTF-8
$ ./test.sh
hello
我想具体问一下这个gettext,xgettext,都是什么东西以及怎么用?abs中的我没看懂。
我逗无了奈了……
HP的本跑ubuntu还得把我折腾死。
显卡、无线/有线网卡、声卡、键盘……

代码: 全选

while :
do
  work_hard
done
头像
bones7456
帖子: 8495
注册时间: 2006-04-12 20:05
来自: 杭州
联系:

#2

帖子 bones7456 » 2008-08-22 13:16

你可以把它理解成一个系统函数啊... 进去英语,出来locale的语言....
关注我的blog: ε==3
头像
lonelycorn
帖子: 438
注册时间: 2007-05-20 18:44
来自: 唐山,河北,中国
联系:

#3

帖子 lonelycorn » 2008-08-22 22:39

但是怎么用xgettext提取出字符串呢?编写的时候有什么规则没有?
我逗无了奈了……
HP的本跑ubuntu还得把我折腾死。
显卡、无线/有线网卡、声卡、键盘……

代码: 全选

while :
do
  work_hard
done
头像
yjcong
帖子: 2470
注册时间: 2006-02-28 3:11

#4

帖子 yjcong » 2008-08-22 23:20

bones7456 写了:你可以把它理解成一个系统函数啊... 进去英语,出来locale的语言....
那如果是西班牙语的local呢?
一梦三年,
松风依旧,
萝月何曾老.


灵幽听微, 谁观玉颜?
灼灼春华, 绿叶含丹.
回复