2011-10-16 63 views
0

我的產品必須獨立於品牌/標誌,並且應發送本地化的消息。我現在不需要超過2個本地化版本(英語和葡萄牙語),但我可能需要更多版本,所以如果我的應用程序被某個版本使用,應該很容易添加翻譯。俄羅斯網站它應該能夠以俄語發送歡迎電子郵件,並且使用我的應用程序的網站/品牌的名稱,所以我認爲我想要做的事就像白標籤產品。我應該使用gettext來代替嗎?我應該用gettext代替它嗎?

-

message.body = 'Dear '+ad.name+'\nThank you for registering with '+self.current_logo+'! To edit your ad,click edit from the menu.'+ self.current_logo+'/vi/'+ad.key().id() +'\nWe invite you to visit our home page where you can find latest information on new business announcements from us. From there you also can upload videos, music and images. \n1) Contact Preferences - Please Select Your Contact Preferences\nInformation Contact\nIf you like, you can also add us on Facebook: apps.facebook.com/koolbusiness' 

- 結果,例如,當我們添加的域,然後有一個品牌/商標使用:

----------轉發的信息----------來自:日期:2011年10月16日,星期日下午7:29主題:Honda zoomer收件人: [email protected]

親愛的Niklas R感謝您註冊與www.koolbusiness.com!至 編輯您的廣告,請點擊菜單中的修改。www.koolbusiness.com/vi/4361186 我們邀請您訪問我們的主頁,您可以在這裏找到最新的 關於我們新業務公告的信息。從那裏你也可以上傳視頻,音樂和圖像。 1)聯繫人首選項 - 請 選擇您的聯繫偏好的信息聯繫。如果你喜歡,你 還可以添加我們在Facebook:apps.facebook.com/koolbusiness


你覺得呢?

以下是消息的建立方式。確切的內容並不重要,但重要的是它可以在很多語言中使用。你可以用gettext來做,但我認爲這種情況非常簡單,我可以在源代碼中完成,因爲英語和葡萄牙語將成爲應用程序的主要語言一段時間,然後我們可以添加西班牙語,法語,瑞典語,但是寫這些翻譯是一項非技術性的工作。

更新

由於gettext的似乎是我想知道的實施選擇。其中2件事情特別是是否包含HTML以及如何顯示「&」符號之類的特殊字符。我現在正在使用這個渲染正確的輸出,但代碼是正確的?

django.po

msgid "Accessories & Parts" 
msgstr "Partes & Acessórios" 

msgid "Entire Brasil" 
msgstr "«Todo Brasil»" 

msgid "You can post ads for free. You can search for classified advertisements from professionals as well as private individuals; such as: cars, property, employment, pieces of furniture, electronics and others." 
msgstr "<a href='/ai'>Anúncios</a> no site Montao.com.br são colocados manualmente pelo usuário aqui. <br/><a href='/li'>Todos</a> os anúncios são revistos pela equipe do Montao.com.br. O anúncio será visível durante dois messes. Grátis!" 

對於新的電子郵件翻譯,我可以使用gettext,但我必須讓兩個變量和翻譯權,可能會非常棘手,但無論如何,我想開始草圖這麼它可以被翻譯成多種語言:

msgid "Dear %s\nThank you for registering with %s! To edit your ad,click edit from the menu.%s/vi/%s \nWe invite you to visit our home page where you can find latest information on new business announcements from us. From there you also can upload videos, music and images. \n1) Contact Preferences - Please Select Your Contact Preferences\nInformation Contact\nIf you like, you can also add us on Facebook: apps.facebook.com/koolbusiness" 
msgstr "" 

但是我的經驗說,這是更好,使2個cron作業,每一個翻譯,比許多翻譯因爲請求可能會意外地得到錯誤的一個cron作業由於cookie的cookie cooruption或同樣。所以這個翻譯任務也是爲了完整性和一致性,即使第一次嘗試適用於英語,並且很容易被2種語言擴展,我認爲這是一件好事。

回答

1

如果你想要本地化(只要記住使用佔位符而不是象你在你的例子中那樣連接字符串),那麼gettext是最好的解決方案。

關於白色標籤,如果所有依賴於客戶的內容都是可本地化的,那麼gettext將會很好 - 你一箭雙鵰,再加上gettext是有點標準的,所以所有的本地化工具和專業人士都可以毫無問題地工作。不過,我想有些東西不是真正可本地化的(比如圖片),所以我建議你爲這些內容保留某種預定義的結構,這樣每個客戶都可以插入他的內容而不必觸摸代碼(例如徽標始終命名爲Logo.png,大小固定)。

通常的做法是保持.po文件中的msgid等於源語言中的文本,這對於簡短的簡短句子來說很好。如果你的句子長,特殊字符和HTML或其他標籤,我會建議使用一個ID,如「result_message」,然後手動填充一個主資源文件(例如英文)。這使得該文件的自我描述少一點,並需要更多的努力,但從長遠來看,這是最好的解決方案,如果你想保持理智(並保持資源文件儘可能小)。

爲了保持文件在主文件和翻譯文件之間的同步,這裏有一些工具,正如我在這裏寫的:Keeping i18n resources synced

相關問題