项目本地化与Gnulib库的使用指南
1. 项目文件提交决策
在项目开发中,我们为gt项目添加了许多新文件。对于哪些文件应提交到源仓库,有一个基本的原则:从仓库检出项目的人应愿意承担维护者或开发者的角色,而非仅仅是用户。用户通常从分发存档进行构建,而维护者和开发者使用不同的工具集,所以从仓库检出源文件的人应愿意使用Autotools。
在Autotools引导过程(autoreconf -i)中,那些可以轻松从其他源再生或重新复制的文件不应提交,只提交项目的实际资产文件。例如,gettextize工具运行的autopoint程序,会为支持NLS的项目复制所需文件到项目目录结构中。在po目录中,只需提交修改过的文件,如POTFILES.in、Makevars、ChangeLog和.po文件。.pot文件可由po/Makefile从源代码再生,.mo文件在安装时从.po文件生成,ABOUT - NLS文件除非修改否则无需提交,m4目录中除了自己编写和添加的宏文件外其他文件也无需提交。而src/gettext.h文件需要提交,因为它是从系统gettext安装目录手动复制过来的。
gt项目目录结构如下:
$ tree --charset=ascii . |-- AUTHORS |-- ChangeLog |-- configure.ac |-- COPYING |-- INSTALL |-- Makefile.am |-- NEWS |-- po | |-- ChangeLog | |-- Makevars | `-- POTFILES.in |-- README `-- src |-- gettext.h `-- gt.c