使用angular-translate
时,是否可以选择使用其他GET参数调用queryParameter
模块(由Pascal Precht制作),而不仅仅使用urlLoader
?目前的实施如下:
$translateProvider.useLoader('$translateUrlLoader', {
url: 'endpoint/translations',
queryParameter: 'language'
});
然后在paritucar控制器中:
$translate.use('en');
我需要做的是用更多参数调用它,例如:
$translateProvider.useLoader('$translateUrlLoader', {
url: 'endpoint/translations',
config: {
queryParameter: 'language',
secondParam: 'screen',
thirdParam: 'client'
}
});
然后特别是控制器被调用为:
$translate.use('en','login','pepsi');
结果我需要调用我的API端点,如:
endpoint/translations?language=en&screen=login&client=pepsi
谢谢!
答案 0 :(得分:1)
通过使用名为angular-translate-loader-partial
模块的模块,我认为我们可以做到这一点(https://angular-translate.github.io/docs/#/guide/12_asynchronous-loading)
这是这样配置的:
$translateProvider.useLoader('$translatePartialLoader', {
urlTemplate: 'endpoint/translations/' + $rootScope.clientName + '/{part}/{lang}.json'
});
并在控制器中使用:
angular.module('pepsi').controller('sugerCtrl', function ($scope, $translatePartialLoader, $translate) {
$translatePartialLoader.addPart('suger');
$translate.refresh();
});
希望这有帮助。
答案 1 :(得分:0)
对我来说它有效:
var serviceBase = 'http://localhost';
$translatePartialLoaderProvider.addPart('core');
$translateProvider.useLoader('$translatePartialLoader', {
urlTemplate: serviceBase + '/api/translations?lang={lang}&module={part}'
});
$translateProvider.preferredLanguage("de");