Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I implement multi-tenant translations in Symfony2

Tags:

symfony

I am developing a multi-tenant capable Symfony2 solution and was wondering if there was a way to use different translations files for each tenant, as the default translations files at present contain e.g. references to the initial tenant's company name, etc.

I am using the Liip Theme Bundle (https://github.com/liip/LiipThemeBundle) to allow tenants to use our codebase, layering their own design on top, but cannot work out a simple and scalable way to allow them to use their own translations files.

There was talk on the theme bundle git repo about this, but I don't believe anything was ever implemented (https://github.com/liip/LiipThemeBundle/issues/12). Ideally I'd like to follow the directory structure they suggested in that thread, e.g.

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

as this would allow us to continue the practice of themes being self-contained git submodules that a tenant can maintain themselves.

like image 929
tanGee Avatar asked Oct 21 '22 12:10

tanGee


1 Answers

I ended up using the directory structure I outlined above, and had a console command which symlinked the translations override file in app/Resources/translations. This command ran during my deploy script, and I then created my own "trans" twig function which checked if an override file should be used.

Not the cleanest, but definitely works the way I wanted.

like image 188
tanGee Avatar answered Oct 25 '22 18:10

tanGee