2012-06-18 63 views
1

我想的gettext .po文件中使用的變量在某些方面,例如:我可以在.po文件中使用變量嗎?

msgid "ui_settings_connect_text" 
msgstr "Connect to another running instance of " APP_NAME 

有沒有人嘗試過做這樣的事情?

回答

3

在你.po文件:

msgid "Connect to another running instance of %s" 
msgstr "Connect to another running instance of %s" 

在您的應用程序:

printf(_("Connect to another running instance of %s"), app_name); 
+0

在我做我自己的預處理器生成包含變量'.po.in'文件'.po'文件末尾。我明白這是'正確'的答案。 – fredley

1

我做了一個預處理器要做到這一點爲好,因爲我不相信,應用程序代碼應被耦合到是否某些文本將包含應用程序名稱(使用Tom的示例)或任何其他翻譯的片段。

我已經把源代碼放在github上並提供了一個Windows .exe,但是如果你不使用Windows,它將需要Mono。

https://github.com/Treer/POpp

爲了解決由湯姆提出的問題,.po文件應該是這樣的:

msgid "APP_NAME" 
msgstr "Tom's app" 

msgid "ui_settings_connect_text" 
msgstr "Connect to another running instance of {id:APP_NAME}" 

應當在任何GUI PO編輯器可用。

預處理只是像這樣運行:

popp source.po destination.po 
相關問題