2009-10-13 108 views
19

我們有兩個.po文件,每個文件來自一個軟件的不同分支。是否可以將兩個.po轉換文件組合在一起?

我們需要將它們組合成一個.po文件。

這兩個文件之間存在重複,理想的處理方式是對一個文件的字符串進行優化(一致)。

我們有一個SUSE系統,因此--output-file似乎沒有根據我從網絡搜索中找到的手冊頁忽略/合併Sun版本所具有的重複項的行爲。 (我們沒有Sun機器!)

+0

的[合併2個gettext文件]可能的複製(http://stackoverflow.com/questions/355994/merge-2-gettext-files) – DanMan 2015-10-08 13:06:02

回答

24

你在找什麼是msgcat util,它連接和合並指定的PO字典。

這是gettext utils的一部分,欲瞭解更多信息請查詢gettext manual page on msgcat

+2

非pdf鏈接:http://www.gnu.org/software/gettext/manual/gettext.html – rve 2013-01-17 08:30:05

+0

用法與普通'cat'一樣簡單,但全選輸出爲「模糊」(你需要選擇一個版本)。 – 2013-08-30 13:09:34

+0

注意:插入HTML鏈接到答案,所以@ rve的評論不再有意義。 ;) – lxg 2014-11-06 10:40:57

2

我用msgmerge

msgmerge [old_file.po] [new_file.po] > output.po 

它爲我,但請注意,它做了愚蠢的合併,它是,它丟棄在old_file(新文件覆蓋舊)的條目。

+3

'msgmerge'文件用於將新模板應用於現有翻譯。它會在設計中放棄第二個文件中的任何本地化!使用'msgcat'合併本地化數據。不幸的是,它只會做愚蠢的連鎖,而不是真正的3路合併,你會想要與版本控制。 – 2013-04-25 10:09:07

+0

如果你在這兩個文件中都有一些消息,這也是不好的。然後你會得到「some.po:16008:...這是第一個定義的位置」風格的消息,它不會連接文件。我如何使用ANY文件中的第一個可用翻譯? – nagylzs 2015-11-03 06:41:18

5

你可以使用poedit。 要合併您當前的po文件,您必須打開它並單擊:

  • 目錄>從POT文件更新。
  • 設置過濾器的所有文件,並選擇您second.po文件

poEdit的會告訴你新的&過時串

+0

如果你想要GUI,我建議使用'virtaal',如果這可用於你的操作系統。 – 2013-04-25 10:10:17

+0

我認爲poEdit對這類任務來說工作得很好!謝謝你的回答,它幫助了我! – markus 2013-11-18 19:56:39

+0

Poedit不會以這種方式傳輸實際翻譯,只是「msgid」。 – DanMan 2015-02-05 11:37:44

相關問題