2015-07-20 108 views
1

我們使用稍後填充的佔位符生成翻譯文件,但在修改上述單詞的語言中存在單詞問題。是否可以修改Twig中佔位符前的單詞?

例如,我們已經寫它看起來像這樣的翻譯模板:

because of %name%, you..... 

這是問題,因爲在法語中,「的」翻譯不同,如果%名稱%以元音或沒有開始。

舉例來說,如果這個人是劉德華,應該是:

d' Andy 

而對於史蒂夫那就是:

de Steve 

什麼是處理這種情況下,最好的方法是什麼?

我可以看到類似的問題已被解決有關英文不定冠詞(a vs an)here,但我想知道是否有一個更聰明的方法來做到這一點,而不是針對我們遇到的每種情況的自定義過濾器(我們使用多種語言,並且我懷疑當我們擴展我們的語言時會出現其他類似的問題)。

(我也努力讓一個完全不同的翻譯這將是理想!)

+0

在您的樹枝模板中添加一個if控件,並檢查[名稱是否以元音開始](http://stackoverflow.com/questions/15600626/begins-with-in-twig-template) –

+0

您還將擁有刪除撇號和名稱之間的空格 – AntoineWDG

+0

此外,儘管您的解決方案在技術上有效,但我試圖避免的情況是,如果名稱以元音開頭&&法語做X,如果名稱以A和西班牙語開頭,做Y等等等等。 – edhgoose

回答

0

的答案,你在延長翻譯類本身尋求謊言。

This question顯示瞭如何使用添加此功能所需的類似方式來完成擴展翻譯程序。您可以簡單地使用翻譯後綴的想法將正確的翻譯添加到您的翻譯目錄中,然後在trans()函數中建立邏輯以查看語言環境和翻譯id(正在翻譯的字符串),以便添加正確的後綴併到達正確的翻譯。