我试图从C源生成翻译文件,翻译条目的顺序与它们在源代码中出现的顺序完全相同。我不希望它们按字母顺序排序,或者按随机顺序排列,因为某些字符串是按照必须保持的特定域顺序排序的。我有以下测试文件:
char * elements[] = {gettext("Hydrogen"), gettext("Helium"), gettext("Lithium")};我使用的是xgettext -F test.c,根据文档,它应该按位置进行排序:
-F,--sort-by-file按文件位置排序输出
但是,输出似乎按字母顺序排序:
#: test.c:1
msgid "Helium"
msgstr ""
#: test.c:1
msgid "Hydrogen"
msgstr ""
#: test.c:1
msgid "Lithium"
msgstr ""有人能解释一下-F (以及按字母顺序排序的-s )到底是如何工作的吗?我是不是错过了一个在单行内按位置排序的旗子?
发布于 2021-07-31 08:02:21
输出文件中的注释提供了一个线索。显然,-F是按行number__排序,然后在每一行中按字母顺序排序。
char * elements[] = {gettext("Hydrogen"),
gettext("Helium"),
gettext("Lithium")};产量
#: test2.c:1
msgid "Hydrogen"
msgstr ""
#: test2.c:2
msgid "Helium"
msgstr ""
#: test2.c:3
msgid "Lithium"
msgstr ""https://unix.stackexchange.com/questions/662718
复制相似问题