2017-05-04 1 views
0

내 프로젝트의 번역 내용에 LexikTranslationBundle을 사용하고 있습니다. 나는 조심스럽게 번들에 대한 문서를 읽고하고 난 다음과 같은 내 프로젝트 설정을 가지고 :LexikTranslationBundle에서 가져온 데이터베이스에서 번역을로드하는 방법은 무엇입니까?

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

문서는 말한다 :

번들은 번역기 서비스를 무시하고 DatabaseLoader을 제공합니다. 데이터베이스 번역 내용이 마지막으로로드되므로 은 xliff, yml 및 php translations 파일의 내용을 대체합니다. 데이터베이스와 동일한 내용으로 파일을 번역해야하는 경우 데이터베이스에서 파일로 변환을 내보낼 수도 있습니다.

아마이 평균 나는 .xliff 파일에 따라 직접 짜증 DB에서 번역을로드 할 수 없습니다.

보조 노트로 .xliff에있는 모든 번역을 이미로드 했으므로 프로젝트에서 .xliff 개의 파일을 제거했습니다.

DB에서 직접 번역을 관리하고 파일을 제거하려고했지만 시도했지만 작동하지 않습니다.

내가 여기에 뭔가 못 찾았 니? DB에서 직접 번역을로드하려면 어떻게해야합니까?

답변

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 
을 편집 페이지

  • 수동 명확 캐시를 통해 번역을 확인하고 캐시 설정으로 플레이 할 수 있습니다

    1. : 여부를 ​​테스트하는 경우

      configuration

  • +0

    정확히 내 문제는, 나는 더 이상'.xliff' 파일에 의존하기를 원하지 않는다. DB에서 번역을 사용하고 싶은 경우에 대비하여 파일에 번역을 만들어서 DB로 가져와 캐시를 지워야하기 때문에 작업이 "어려워집니다". 내가 기대하고 바라는 것은 항상 파일을 통해 갈 필요없이 DB에서 직접 번역을로드하는 것입니다. 그런 식으로 나는'.xliff' 파일을 영원히 삭제할 수 있었고 계속해서 DB에 번역을 할 수있었습니다. 그래서 당신의 대답은 내 문제를 해결하지 못합니다. – ReynierPM

    관련 문제