アプリで 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}); が呼び出されます。設計どおりに動作します。