2013-04-09 45 views
5
實現多租戶翻譯

我開發一個多租戶能力的Symfony2的解決方案,並想知道是否有使用不同的翻譯文件爲每個租戶的方式作爲默認的翻譯目前文件包含例如引用最初的租戶的公司名稱等。我怎樣才能在Symfony2中

我使用Liip主題捆綁包(https://github.com/liip/LiipThemeBundle)允許租戶使用我們的代碼庫,將自己的設計層疊在頂層,但無法找到一種簡單且可擴展的方式來允許他們使用自己的翻譯文件。

有關於這個主題包混帳回購協議的談話,但我不相信什麼是有史以來實現的(https://github.com/liip/LiipThemeBundle/issues/12)。理想情況下,我想遵循他們在該線程中建議的目錄結構,例如

root 
    - app 
    - Resources 
     - themes 
     - <theme name> 
      - public 
      - translations (this would be new) 
      - views 

因爲這將允許我們繼續主題是租戶可以自行維護的自包含git子模塊的實踐。

+0

這樣做,只要你想我不知道,但在你的情況下,不能使用[郵件域](http://symfony.com/doc/current/book/translation.html#using-message-而不是? – cheesemacfly 2013-04-09 14:28:56

+0

但是使用這種方法,每個租戶都必須向我們提供他們的文件,我們必須確保名稱明確的唯一性,並且我們必須將其添加到我們網站的應用/資源/翻譯目錄中。此外,該方法無法保留相同的模板文件,但使用基於租戶的其他翻譯文件 – tanGee 2013-04-09 14:33:41

回答

3

最後我用我上面列出的目錄結構,並且具有其符號鏈接翻譯重寫應用程序/資源/翻譯文件控制檯命令。這個命令在我的部署腳本中運行,然後我創建了我自己的「trans」分支函數,它檢查是否應該使用覆蓋文件。

不乾淨的,但肯定的作品,我想的方式。