我在我的项目中使用LexikTranslationBundle来翻译内容。我一直在仔细阅读该软件包的文档,并按照以下方式设置了我的项目:
# LexikTranslationBundle Configuration
lexik_translation:
fallback_locale: [en]
managed_locales: [en, es]
storage:
type: mongodb
object_manager: default
文档说:
捆绑包覆盖翻译服务并提供 DatabaseLoader。数据库翻译内容最后加载,因此它 覆盖xliff,yml和php翻译文件中的内容。您可以 如果需要,还可以将数据库中的翻译导出到文件中 获取与数据库具有相同内容的翻译文件。
也许这意味着我依赖于.xliff
文件而无法直接从DB中加载翻译。
作为旁注,我已将.xliff
个文件中的所有翻译加载到数据库中,因此我已从项目中删除了.xliff
个文件。
我想直接从DB管理翻译并删除文件,我已经尝试但它不起作用。
我在这里错过了什么吗?如何直接从DB加载翻译?
答案 0 :(得分:0)
您不必删除.xliff
个文件。
translator.loader
服务将在构建容器时进行修饰,并将尝试加载使用数据库值:https://github.com/lexik/LexikTranslationBundle/blob/master/DependencyInjection/Compiler/TranslatorPass.php
因此,问题可能与清除缓存有关。如果您测试是否:
您可以通过编辑页面进行翻译
手动清除缓存,然后稍微使用缓存设置
lexik_translation:
auto_cache_clean: false
auto_cache_clean_interval: 600