AngularJS: Einstellen von Sprachen in Angular-Translate von Controller oder Service

8

Ich bin daran interessiert, angular-translate zu verwenden.

Aufgrund einer Menge von Setup-Aufrufen, die anfangs beim Start passieren, kann ich die Sprache json während der Konfiguration nicht bereitstellen. Es ist auch nicht möglich, den Async-Loader zu verwenden. Ich muss in der Lage sein, die Sprachen von einem Controller oder Dienst zu einem späteren Zeitpunkt anzugeben.

$translateProvider.translations(.., ...) ist der zu verwendende Aufruf, aber $translateProvider ist in Controllern oder Diensten nicht verfügbar, aber anscheinend nur bei config.

$translate scheint nicht in der Lage zu sein, eine Sprache JSON zu laden.

Gibt es eine Problemumgehung?

    
Joel Basson 11.09.2014, 08:24
quelle

5 Antworten

3

Am Ende angekommen.

in der .config

%Vor%

der customLoader ...

%Vor%

und dann ein TranslationService, um die Daten zu teilen

%Vor%     
Joel Basson 11.09.2014, 13:36
quelle
17

Zuerst injiziere $translate in deinen Controller.

%Vor%

Dann können Sie die aktuelle Sprache mit $translate.use() erhalten und einstellen.

%Vor%

Wenn Sie nach der Konfiguration neue Übersetzungen hinzufügen müssen, können Sie Teillader verwenden.

%Vor%

Wenn das nicht dynamisch genug ist, können Sie die Übersetzung immer on-the-fly machen.

%Vor%

Dies würde so etwas ausspucken

    
Mikko Viitala 11.09.2014 08:32
quelle
1

Vielleicht überprüfen Sie dies:

Ссылка

Unter "Wechseln der Sprache zur Laufzeit"

%Vor%     
Konstantin Krass 11.09.2014 08:31
quelle
1

das funktioniert. StorageService verfügt über lokalen Speicher und nachdem 'NG_TRANSLATE_LANG_KEY' im lokalen Speicher festgelegt wurde. Sie können es wie folgt nennen.

%Vor%     
Taner 24.09.2014 14:06
quelle
0

Ich denke, der beste Weg, dynamisch zu laden, ist in der Auflösung Config Router-Block wie

%Vor%     
Whisher 20.12.2015 21:46
quelle

Tags und Links