0

我正在使用LexikTranslationBundle翻译我的项目中的内容。我一直在仔细阅读该捆绑包的文档,并将我的项目设置如下:

# LexikTranslationBundle Configuration
lexik_translation:
    fallback_locale: [en]     
    managed_locales: [en, es]
    storage:
        type: mongodb             
        object_manager: default

文档说:

捆绑包覆盖翻译服务并提供 DatabaseLoader。数据库翻译内容最后加载,因此它会覆盖 xliff、yml 和 php 翻译文件中的内容。您还可以将数据库中的翻译导出到文件中,以防您需要获取与数据库内容相同的翻译文件。

也许这意味着我依赖.xliff文件并且不能直接从数据库加载翻译,这很糟糕。

作为旁注,我已经将.xliff文件中的所有翻译加载到数据库中,所以我已经.xliff从项目中删除了这些文件。

我想直接从数据库管理翻译并摆脱文件,我已经尝试过,但它不起作用。

我在这里错过了什么吗?如何直接从数据库加载翻译?

4

1 回答 1

0

您不必删除您的.xliff文件。

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

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

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

  2. 手动清除缓存,稍微调整一下缓存设置

lexik_translation:
    auto_cache_clean: false
    auto_cache_clean_interval: 600

配置

于 2017-05-04T14:28:57.157 回答