2012-05-10 17 views
0

據我所知,Zend_Translate使用字符串作爲翻譯文件的關鍵字。這意味着如果我更改了原始字符串(例如修復了一些錯字),則該字符串的所有翻譯都將丟失。Zend_Translate:不是字符串,但基於ID的翻譯 - 或者如何處理原始字符串中的變化

有沒有辦法自動更新這些翻譯?我的想法是在原始字符串發生變化時將這些翻譯標記爲「TODO」。

爲了達到這個目的,我想我必須使用基於ID的翻譯系統,而不是基於字符串的翻譯系統。每個字符串都有唯一的ID。

我知道基於字符串的翻譯系統的優點是相同的字符串不必翻譯兩次。這在我的應用程序中是一個非常罕見的用例,所以翻譯相同的字符串兩次將是絕對好的。

我想過自己實現這一點,但我不知道如何以良好的性能來實現這一點。

對此有何建議? Zend_Translate能處理原始字符串中的變化嗎?是否有其他翻譯系統可以處理這種用例?

回答

0

這不能自動處理。至少不容易。 (可以通過代碼分析,代碼生成等來完成)。我們使用「存根」進行翻譯 - $this->translate('please-register') // Please register.工作正常,但爲開發人員增加了更多工作 - 他們需要爲本地語言創建翻譯文件。 :)

+0

感謝您的回覆。然而,這在我們的用例中不起作用,因爲用戶定義了稍後將被翻譯的句子。我們可能會開發自己的系統,它依賴於一個數據庫表,其中主鍵是由連接的表ID組成的字符串(從用戶的項目ID到文本所在的表的整個層次結構)以及我們想要翻譯的文本。我希望告訴MySQL使用Hash作爲翻譯數據庫表提供足夠的速度。我熱烈歡迎任何其他方法。 –

+0

如果沒有具體的例子,真的很難幫到你:(我仍然可以理解你想要翻譯的內容。頁面UI?或用戶輸入? –