2013-10-25 109 views
0

我們的主要語言是英語,所以我們使用tr("Some english text")所有的源代碼。 我們也計劃將它翻譯成幾種不同的語言 - 沒有問題。Qt語言學家校對字符串

我們的客戶希望從源代碼中獲取所有短語並對其進行校對。 當然,我們應該在校對之後回覆這些詞組。

我們怎樣才能以適當的方式來實現?也許Qt Linguist允許導出/導入嵌入的本地化文本?

我想客戶可以將英文翻譯成英文,然後我們可以使用該英文翻譯,但它很奇怪。

回答

0

最後,它看起來像我將不得不手動更新短語(嵌入到源代碼中)。事實上,它不應該花費太多時間。如果我有時間在Python上編寫腳本,我會更新這篇文章。

UPDATE

所以,我做了一切 「手工」 與Sublime Text 3一點幫助。

  1. 查找使用下面的正則表達式(.*)(tr\((\"(.+?)\")\))(.*)
  2. 在庫文件夾下所有的比賽複製搜索結果到新文檔
  3. 使用相同的正則表達式再次進行搜索和替換每個匹配\ 4 - 此捕獲組代表tr中的文本(「」)。

在校對完成後,客戶接到客戶的短語後,需要3-5分鐘才能找到與差異工具和代碼中更新短語的差異。

不是真正的程序員解決問題的方式,但爲我工作,工作得非常快!

0

我會用Qt的lupdate實用工具(可以在Qt的bin目錄中找到)將您的源文件中的所有字符串文字提取到xml(ts)文件中。該文件可以用Linguist工具打開。 請注意,該實用程序僅考慮使用宏包圍的字符串。這裏是luptdate描述:

lupdate是Qt的語言學工具鏈的一部分。它從Qt UI文件,C++,Java和JavaScript/QtScript源碼 中提取可翻譯的 消息。提取的消息存儲在文本翻譯源 文件(通常是Qt TS XML)中。新消息和修改後的消息可以合併到現有的TS文件中 。

UPDATE:

另一種方法是保持所有字符串字面定義在一個單獨的源文件和更新一次客戶已經糾正了所有字符串。我相信這種情況發生的並不是這麼頻繁,甚至只發生一次,所以在翻譯等方面不值得花費很多精力。

+0

謝謝,我知道它是如何工作的。這就是我們如何從英語翻譯成例如西班牙文,然後使用Spanish.qm翻譯包。但我需要一種方便的方式來修改原始的英文短語。所以,我可以將它們導出到.ts文件,客戶將在xml中更正它們。如何將這些短語導回到源代碼? – Dalamber

+0

@Dalamber,如您所說,您可以將英語應用到英文翻譯中,從而替換現有字符串與來自客戶的新字符串。 – vahancho

+0

我認爲你必須親手更新源代碼,或者可以通過一些腳本搜索和替換來半自動地完成源代碼更新。我不知道有任何現成的工具。 –