gpt4 book ai didi

Symfony2 数据库翻译加载器未执行

转载 作者:行者123 更新时间:2023-12-04 08:49:49 24 4
gpt4 key购买 nike

我必须实现自己的翻译加载器。我在以下方面使用了本教程: http://blog.elendev.com/development/php/symfony/use-a-database-as-translation-provider-in-symfony-2/实现我自己的翻译加载器。

我的代码没有收到任何错误,但我的加载器的加载功能永远不会被执行。

有没有办法告诉 symfony 应该执行哪个翻译?

config.yml

    translation.loader.db:
class: Mysk\TranslationBundle\Services\DBLoader
arguments: ["@doctrine.orm.entity_manager"]
tags:
- { name: translation.loader, alias: db}

DBLoader.php

class DBLoader implements LoaderInterface {

private $transaltionRepository;
private $languageRepository;

/**
* @param EntityManager $entityManager
*/
public function __construct(EntityManager $entityManager){
$this->transaltionRepository = $entityManager->getRepository("MyskTranslationBundle:LanguageTranslation");
$this->languageRepository = $entityManager->getRepository("MyskTranslationBundle:Language");
echo "yeah";
}

function load($resource, $locale, $domain = 'messages'){
die();
//Load on the db for the specified local
$language = $this->languageRepository->getLanguage($locale);
$translations = $this->transaltionRepository->getTranslations($language, $domain);
$catalogue = new MessageCatalogue($locale);

foreach($translations as $translation){
$catalogue->set($translation->getLanguageToken()->getToken(), $translation->getTranslation(), $domain);
}

return $catalogue;
}}

有什么想法吗?

干杯蒂莫

最佳答案

Aldo 已经回答了这个问题,但只是为了使其成为官方答案并帮助他人:

你需要创建一个“假”翻译文件来触发你的加载器

来自 Symfony Dependency Injection Tags: "translation.loader"

[...] If you're loading translations from a database, you'll still need a resource file, but it might either be blank or contain a little bit of information about loading those resources from the database. The file is key to trigger the load method on your custom loader.

所以你需要创建格式为 <domain>.<locale>.<loader-alias> 的文件。在您的翻译文件夹中 app/Resources/translations/ .

在您的情况下,一个文件是 app/Resources/translations/messages.en.db英语。

关于Symfony2 数据库翻译加载器未执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13350866/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com