String
xgettext 錯誤地對字元串進行排序
我正在嘗試從 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
,應該按字母順序排序)是如何工作的嗎?我是否錯過了在一行內按位置排序的標誌?
輸出文件中的註釋提供了線索。顯然
-F
是按行號排序, 然後在每行內按字母順序排序。只需將輸入更改為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 ""