2016-08-03 12 views
1

Ich habe eine Hauptanwendung mit wenigen unabhängigen Komponenten, die jede Komponente ihre eigenen String-Dateien laden. Ich möchte, dass in der Haupt-App-Konfiguration ich die bevorzugte Sprache definieren und in jeder Komponente werde ich diese bevorzugte Sprache verwenden.

Setter:

$translateProvider.uses('en_EN'); 

Getter:

$translate.uses() === 'en_EN'? $translate.uses('de_DE') : $translate.uses('en_EN'); 

Ich weiß, dass ich in der Config übersetzen verwenden $ kippe

$translateProvider.useLoader('$translatePartialLoader', { 
      urlTemplate: './{part}/strings_{lang}.json' 
     }); 

     $translatePartialLoaderProvider.addPart('assets'); 

Wie kann ich prefferdlanguage erhalten mit translatePartialLoaderProvider? Wie kann ich wissen, welche Sprache in der Haupt-App eingestellt ist?

Antwort

1

Die Lösung: in der App Config, da Sie nicht, was die prefferd Sprache wissen können (dass die Daten in $ translate) können Sie diese Daten in App laufen bekommen können:

.config(['$translateProvider', '$translatePartialLoaderProvider', function ($translateProvider, $translatePartialLoaderProvider) { 
     'use strict'; 

     $translatePartialLoaderProvider.addPart('./niceComponents/nice-add-and-edit-inut-text/dist/asstes/src'); 

     //default lang that will change in run 
     $translateProvider.preferredLanguage('en_US'); 

    }]) 
    .run(['$translate' , function($translate){ 
     var lan = $translate.preferredLanguage(); 
     console.log('lan---- ' + lan); 
     $translate.use(lan); 
     $translate.refresh(); 
    }])