如何在Bootstrap UI分页指令中翻译文本?
我已经为法语翻译覆盖了这样的常数:
angular.module('myapp', ['ui.bootstrap'])
.constant('paginationConfig', {
itemsPerPage: 10,
boundaryLinks: false,
directionLinks: true,
firstText: 'Premier',
previousText: 'Précédent',
nextText: 'Suivant',
lastText: 'Dernier',
rotate: true
})
但是重写常数似乎是一个坏主意......
这样做的正确方法是什么(如果有的话)?
答案 0 :(得分:10)
您可以在run
方法
var app=angular.module('myapp', ['ui.bootstrap']);
app.run(function(paginationConfig){
paginationConfig.firstText='MY FIRST';
paginationConfig.previousText='YOUR TEXT';
})
的 DEMO 强>
在ui.bootstrap
的新版本中,您应该使用
uibPaginationConfig
insted of
paginationConfig
答案 1 :(得分:6)
设置可以作为
@Test
中的属性提供,也可以通过uibPaginationConfig进行全局配置。
例如:
<uib-pagination>
答案 2 :(得分:3)
我正在使用ui.bootstrap.pagination和angular-translate模块(感谢@PascalPrecht这个伟大的库)。但是,阻止动态更新的一个问题是默认模板“template / pagination / pagination.html”中使用的One-time binding expression。所以我使用了pagination directive的'template-url'属性来使用修改后的分页模板而没有一次性绑定。
答案 3 :(得分:1)
您可以使用angular-translate的组件来实现此目的。 https://github.com/angular-translate/angular-translate
答案 4 :(得分:1)
只需使用
$translateChangeSuccess event on $rootScope.
var $translate = $filter('translate');
$rootScope.$on('$translateChangeSuccess' , function(){
paginationConfig.firstText = $translate('First');
paginationConfig.lastText = $translate('Last');
paginationConfig.previousText = $translate('Previous');
paginationConfig.nextText = $translate('Next');
});
答案 5 :(得分:1)
如果查看指令内部,可以看到指令参数:
scope: {
totalItems: '=',
firstText: '@',
previousText: '@',
nextText: '@',
lastText: '@',
ngDisabled:'='
}
所以你可以传递如下的指令参数:
<pagination ng-if="logs" max-size="10"
force-ellipses="true"
boundary-links="true"
first-text="{{translated-word}}"
last-text="{{translated-word}}"
next-text="{{translated-word}}"
previous-text="{{translated-word}}"
class="pagination-sm">
</pagination>