如何在LexikTranslationBundle中导入数据库后加载翻译?

时间:2017-05-04 12:49:34

标签: php symfony symfony-3.2

我在我的项目中使用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加载翻译?

1 个答案:

答案 0 :(得分:0)

您不必删除.xliff个文件。

translator.loader服务将在构建容器时进行修饰,并将尝试加载使用数据库值:https://github.com/lexik/LexikTranslationBundle/blob/master/DependencyInjection/Compiler/TranslatorPass.php

因此,问题可能与清除缓存有关。如果您测试是否:

  1. 您可以通过编辑页面进行翻译

  2. 手动清除缓存,然后稍微使用缓存设置

  3. lexik_translation:
        auto_cache_clean: false
        auto_cache_clean_interval: 600
    

    请参阅configuration