0
我正在使用Django==1.8.4
。將Grub字符串傳遞給作爲變量傳遞給ugettext的.po文件
在Django應用程序,我使用ugettext在明年的方式得到翻譯的消息:
id = 1
message = "Some message %(id)s" % {'id':id}
return JsonResponse({'message': ugettext(message)})
在Django官方文檔有注關於與ugettext翻譯變量。
(使用變量或計算的值,如 前面兩個例子中需要說明的是,Django的翻譯字符串檢測 實用,Django的管理makemessages,將無法找到這些 串。更多makemessages後
是否有任何其他方式grub的消息沒有重構的ugettext
所有呼叫自動.po文件(通過直銷t字符串變成ugettext而不是變量)?
謝謝,我知道這是可能的。問題是如何避免這種重構。 –
我不認爲這是。變量'message'每次都會有所不同,所以它需要爲.po文件中的每個版本生成消息。 你想如何讓你的.po文件消息看起來像? 順便說一句,你忘記了JsonResponse參數中的字典{}; 'JsonResponse({'message':ugettext(message)})'。 – Alvra
**規範的**方法是在源代碼中註釋所有已翻譯的源字符串,即'message = _(「某個消息%(id)s」)%{'id':id}',這樣第三方工具可以找到所有這些字符串,即用於靜態分析。 (Obv,'從xx import ugettext as _')請注意,對於每個面向用戶的字符串「_()',這個」重構「只有3個字符。另一種方法是構建自己的工具鏈...然後試着向其他開發人員解釋它,後者需要稍後支持您的代碼。 –