2010-06-20 16 views
0

我打算本地化我的Django應用程序,並開始閱讀Django站點上的本地化。這樣就把幾個問題在我的腦海:關於Django本地化的一些問題

  1. 看來,當你運行「django-admin.py makemessages」命令,它會掃描嵌入式字符串的文件,並生成一個包含翻譯信息的文件。這些翻譯被映射到文件中的字符串。例如,如果我在HTML中有一個字符串「請輸入收件人姓名」,Django會認爲它是郵件ID。如果我改變了字符串中的內容會發生什麼。假設我將缺少的撇號添加到單詞「收件人」。這會打破翻譯嗎?

  2. 與上述情況相比,在源代碼中使用完全成熟的句子(可能會改變)還是使用像「RECIPIENT_NAME」這樣的詞更好?映射到?

  3. 'django-admin.py makemessages'命令是否也掃描Python源代碼?

謝謝。

回答

2
  1. 它很可能會在某些情況下可以檢測到「相似」字符串,並且您的翻譯將被標記爲模糊。但它取決於字符串的類型,我不知道添加撇號會做什麼。閱讀GNU gettext docs瞭解更多關於這方面的信息。 但是,對於您的問題,一個簡單的解決方案將是:不要修復原來的拼寫錯誤,但要翻譯像英文到英文,其中翻譯的字符串是正確的:)。我個人不會推薦這種方法,但如果你害怕打破幾十個翻譯文件,可以考慮。

  2. 不,它不是,它拋棄了所有的上下文感。對於只需要幾個翻譯字符串的網站來說,它可能看起來更清晰,並且您知道確切的上下文。但是,只要翻譯文件中有100個字符串,那麼這樣的短名稱就什麼都不會說,你總是要查找確切的上下文。更糟糕的是,你可能會使用相同的「短名稱」,因爲這些名稱實際上需要進行不同的翻譯,最終會給你一些簡短的名字來處理這兩種情況。最後,如果您使用一種正常語言作爲默認語言,則不需要明確地翻譯此語言。

  3. 是的,它存在多種功能來標記python中的字符串進行翻譯,可以找到概述here