2

アプリで angular-translate を使用し、angular-translate-loader-partial を使用して必要に応じてリソース モジュールをロードしています。リソース サービスの初期ロードで $translatePartialLoader.addPart(resource) を使用しようとすると、ロードされる「パーツ」はページ上で変換されませんが、$translatePartialLoader.isPartAvailable(resource) を使用して使用可能であると表示されます。

以下のコードでは、'menus' リソースが適切に翻訳されます。「人」リソースは「ロード」されていますが、翻訳は行われません。

これが angular.config のコードのチャンクです -

$translatePartialLoaderProvider.addPart('menus');
$translateProvider.useLoader('$translatePartialLoader', {
    urlTemplate: '/resources/files/{part}/{lang}.json'
});
$translateProvider.preferredLanguage('en-US');

この呼び出しは、初期ロード時に私のリソース サービスによって行われています -

$translatePartialLoader.addPart('people');

angular.run で更新が行われています -

run(function ($rootScope, $translate) {
    $rootScope.$on('$translatePartialLoaderStructureChanged', function () {
        $translate.refresh();
    });
}).

サイトが読み込まれると、$translatePartialLoader.addPart({part}); が呼び出されます。設計どおりに動作します。

4

0 に答える 0