Skip to Content

中文化开发包

labrador 的头像
这个包的作用是开发和生成Puppy 4.0用的中文翻译包。可以在这里下载

开发方法

如果要对可翻译标记做修改,直接修改src/目录下的脚本就可以了。建议使用emacs和tools/translatable.el工具来做标记。比如我重新标记了src/usr/bin/foo脚本。之后只要运行
make po/foo.po
则make程序会自动将新修改的标记自动翻译,合并到原来的foo.po文件中,这个文件中原有的翻译并不会被破坏。

如果要更新翻译文件,则直接修改po/目录下的.po文件即可。

生成中文翻译包的方法

运行
make
然后就会生成一个.pet文件,可以在Puppy 4.0中安装。

开发包中文件的详细介绍

Makefile

文件位置:
./Makefile
里面定义了make的规则,其中依赖关系大致为
all -> po/foo.mo -> po/foo.po -> po/foo.pot -> src/usr/bin/foo
除了前面介绍的两种make用法,还有一个make clean,用于清除生成的文件。

以下是这个Makefile的具体内容
PKGNAME := han-0.0.3
PKGDIR := $(PKGNAME)/

SHFILES := $(shell find src -type f)
SHNAMES := $(notdir $(SHFILES))
POTFILES := $(patsubst %,po/%.pot,$(SHNAMES))
POFILES := $(patsubst %,po/%.po,$(SHNAMES))
MOFILES := $(patsubst %,po/%.mo,$(SHNAMES))


.PHONY: all clean

all: $(MOFILES)
	mkdir -p $(PKGDIR)
	cp pet.specs $(PKGDIR)$(PKGNAME).pet.specs
	tar c $(SHFILES) --mode 755 | tar xC $(PKGNAME) --strip 1
	mkdir -p $(PKGDIR)usr/share/locale/zh_CN/LC_MESSAGES/
	cp po/*.mo $(PKGDIR)usr/share/locale/zh_CN/LC_MESSAGES/
	cp -a addon/* $(PKGDIR)
	tar -czf $(PKGNAME).tar.gz $(PKGDIR)
	./tgz2pet $(PKGNAME).tar.gz

clean:
	find po -type f -name "*.pot.tmp" -o -name "*.mo" -delete
	rm -rf $(PKGDIR) $(PKGNAME).tar.gz $(PKGNAME).pet

.SECONDEXPANSION:

$(POTFILES): $$(filter %$$(patsubst po/%.pot,%,$$@), $(SHFILES))
	xgettext -L Shell -o $@.tmp $<
	./autotrans.py $@.tmp >$@
	rm $@.tmp

$(POFILES): $$(patsubst %.po,%.pot,$$@)
	test -f $@ || cp $< $@
	msgmerge -U -q $@ $<

$(MOFILES): $$(patsubst %.mo,%.po,$$@)
	msgfmt -f -o $@ $<

make所调用的工具

文件位置:
./tgz2pet
./autotrans.py
./pet.specs
tgz2pet是Puppy Linux官方制作的一个将tar.gz文件转为.pet格式的小工具。autotrans.py用于自动翻译po文件,具体介绍在这里,需要注意的是使用前最好先设置一下代理服务器。pet.specs是生成.pet文件所需的一个描述文件。

生成翻译包中所包含的工具

文件位置:
./addon/usr/X11R7/bin/gxmessage
./addon/usr/X11R7/bin/xmessage
./addon/usr/share/pixmaps/gxmessage.png
./addon/usr/bin/gettext.sh
./addon/usr/bin/localization
./addon/usr/bin/envsubst
其中,gxmessagexmessage用于替代系统原有的同名文件,它们可以支持中文显示。gettext.shenvsubst用于提供eval_gettext功能,这里对此有个大概的介绍。localization是每一个可翻译脚本都需要用到的“头文件”,用于设置必须的环境变量,以下是其内容:
export LANG="zh_CN.utf8"
export TEXTDOMAIN="`basename "$0"`"
export TEXTDOMAINDIR="/usr/share/locale/"

. /usr/bin/gettext.sh

可翻译的脚本文件

文件位置:
src/usr/*

pot文件

文件位置:
po/*.pot
可以理解为po文件的模板,不过现在里面放的都是机器自动翻译的结果。

po文件

文件位置:
po/*.po
这些都是广大网友辛苦翻译的结晶。

其他辅助工具

文件位置:
./tools/remove.sh
./tools/translatable.el
具体参见remove.sh的介绍translatable.el的介绍
#5785
ok
#6627
英文版的 puppy 如何将默认字体 设置成中文字体,比如 simsun.ttf
#10086
完全看不懂!
还要好好学习啊&……
#12893
学习,希望以后能贡献自己的一点力量。呵呵
#12894
学习,希望以后能贡献自己的一点力量。呵呵
#13068
Linux怎么用啊?
#13069
全英文的不会用啊