2016-11-02 1 views
-1

Ich habe eine Symfony Web-Anwendung in Symfony 2.8 geschrieben. Alle Übersetzungen funktionieren im Entwicklungsmodus korrekt, aber die Übersetzungen der zweiten Sprache werden im Produktionsmodus nicht geladen. Wenn ich debug in app.php aktiviere, werden Übersetzungen vollständig geladen.Symfony nicht laden Übersetzung

$kernel = new AppKernel('prod', false); 

TO

$kernel = new AppKernel('prod', true); 

Aber es ist nicht eine gute Wahl.

Mein config.yml ist:

parameters: 
    locale: fa 

framework: 
    #esi:    ~ 
    translator:  { fallbacks: ["%locale%" , en] } 
    secret:   "%secret%" 
    router: 
     resource: "%kernel.root_dir%/config/routing.yml" 
     strict_requirements: ~ 

ich die messages.fa.yml setzen und messages.en.yml Dateien in App-Verzeichnis.

+0

Hast du mit 'Cache versuchen: klar --env = prod'? –

+0

ja !! viele Male! Ich lösche auch den Cache-Ordner. – mgh

+0

Wo befindet sich Ihre Übersetzungsdatei und Service-Konfiguration? –

Antwort

0

Versuchen Sie meinen Anweisungen folgen:

1) Bewegen Sie trans.yml Dateien in src->nameBundle->Resources->translations

2) In src-> nameBunndle erstellen oder aktualisieren DependencyInjection Ordner

3) In DependencyInjection Ordner erstellen Configuration.php und NameExtension.php wo Name ist dein Name des Bündels.

4)-Code Configuration.php:

<?php 

namespace NameBundle\DependencyInjection; 

use Symfony\Component\Config\Definition\Builder\TreeBuilder; 
use Symfony\Component\Config\Definition\ConfigurationInterface; 

/** 
* This is the class that validates and merges configuration from your app/config files 
* 
* To learn more see {@link http://symfony.com/doc/current/cookbook/bundles/extension.html#cookbook-bundles-extension-config-class} 
*/ 
class Configuration implements ConfigurationInterface 
{ 
    /** 
    * {@inheritdoc} 
    */ 
    public function getConfigTreeBuilder() 
    { 
     $treeBuilder = new TreeBuilder(); 
     $rootNode = $treeBuilder->root('name'); // name you bundle 

     // Here you should define the parameters that are allowed to 
     // configure your bundle. See the documentation linked above for 
     // more information on that topic. 

     return $treeBuilder; 
    } 
} 

5)-Code NameExtension.php:

<?php 

namespace NameBundle\DependencyInjection; 

use Symfony\Component\DependencyInjection\ContainerBuilder; 
use Symfony\Component\Config\FileLocator; 
use Symfony\Component\HttpKernel\DependencyInjection\Extension; 
use Symfony\Component\DependencyInjection\Loader; 

/** 
* This is the class that loads and manages your bundle configuration 
* 
* To learn more see {@link http://symfony.com/doc/current/cookbook/bundles/extension.html} 
*/ 
class NameExtension extends Extension 
{ 
    /** 
    * {@inheritdoc} 
    */ 
    public function load(array $configs, ContainerBuilder $container) 
    { 
     $configuration = new Configuration(); 
     $config = $this->processConfiguration($configuration, $configs); 

     $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config')); 
     $loader->load('services.yml'); 
    } 
} 
+0

Alle meine Bündel haben DependencyInjection genau das gleiche wie Sie sagen. Und meine Übersetzungsdateien waren in jedem Paket separat und ich verschiebe sie in den App-Ordner, um das Problem zu lösen, aber es wurde nicht gelöst. Entschuldige mich für mein schlechtes Englisch. – mgh

+0

Wenn ich defaultLocale in en ändere, dann funktionieren nur englische Übersetzungen und wenn ich es in 'fa' ändere, funktionieren nur persische Übersetzungen. (NUR IN PRODUKTION) – mgh

Verwandte Themen