这个包的作用是开发和生成Puppy 4.0用的中文翻译包。可以在这里下载。
如果要更新翻译文件,则直接修改
以下是这个Makefile的具体内容
开发方法
如果要对可翻译标记做修改,直接修改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其中,
gxmessage
与xmessage
用于替代系统原有的同名文件,它们可以支持中文显示。gettext.sh
与envsubst
用于提供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
的介绍 - 115384 次点击
还要好好学习啊&……