我想改进我的 gettext 翻译文件流程,所以我只有一个 .po 文件用于应用程序,以避免在将文件发送到翻译机构时重复翻译工作并减少加载合并。
挑战在于初始解析将始终创建两个单独的文件(一个使用 poedit 从 PHP 解析,一个使用 tsmarty2c.php 从 smarty 解析)。所以我查看了 msgcat 并想出了这个过程:
1. parse from PHP files (using poedit)
2. $php tsmarty2c.php templates > templates.c
3. $xgettext templates.c -d templates -p /path/locale/en_GB/LC_MESSAGES -j
4. $msgcat templates.po controllerClasses.po complete.po -o complete.po
这可以正常工作,但有一个例外,现在仍然保留了在 1/2 中删除的不推荐使用的字符串,因为我需要在合并过程中包含 complete.po(因为它具有该机构的最新翻译)。
关于如何创建类似过程的任何提示,但也确保从 complete.po 中删除旧字符串?