symfony - 如何在 Symfony2 中实现 Multi-Tenancy 翻译

标签 symfony

我正在开发一个支持 Multi-Tenancy 的 Symfony2 解决方案,并且想知道是否有办法为每个租户使用不同的翻译文件,因为目前的默认翻译文件包含例如引用初始租户的公司名称等。

我正在使用 Liip Theme Bundle (https://github.com/liip/LiipThemeBundle) 来允许租户使用我们的代码库,将他们自己的设计分层放在上面,但无法找到一种简单且可扩展的方式来允许他们使用自己的翻译文件。

关于这个主题包 git repo 的讨论,但我不相信有任何实现(https://github.com/liip/LiipThemeBundle/issues/12)。理想情况下,我想遵循他们在该线程中建议的目录结构,例如

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

因为这将允许我们继续将主题作为租户可以自己维护的独立 git 子模块的做法。

最佳答案

我最终使用了上面概述的目录结构,并有一个控制台命令将翻译覆盖文件符号链接(symbolic link)到 app/Resources/translations.xml 中。该命令在我的部署脚本期间运行,然后我创建了自己的“trans”twig 函数,该函数检查是否应使用覆盖文件。

不是最干净的,但绝对按我想要的方式工作。

关于symfony - 如何在 Symfony2 中实现 Multi-Tenancy 翻译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15902772/

相关文章:

php - Symfony2 模板渲染过程中抛出异常 ("Parameter for route must match "[^/]+ +"to generate a corresponding URL.")

php - Symfony 4.2 无法连接到 Microsoft SQL Server

forms - Symfony2 : Difference between those metodology "Embedded Form" and "Data Transformer"

php - 带有添加行按钮的 symfony2 表单

php - 如何在 Symfony 2.4 中使用缓存 id 和缓存生命周期选项缓存学说 "findOneBy()"查询?

postgresql - 使用 IS DISTINCT FROM 的 Symfony 原则

php - 找不到 Symfony 3 方法 'guessExtension()' 和 'move()'

php - Symfony2 Date.TimeZone() 问题

php - vs 代码上的 spawn/usr/bin/php ENOENT 错误

php - Symfony 2 : SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry