5

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
    })

しかし、定数をオーバーライドするのは悪い考えのようです...

これを行う正しい方法(もしあれば)は何ですか?

4

6 に答える 6

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

の代わりに

paginationConfig
于 2013-10-26T16:22:28.473 に答える
7

設定は、属性として提供するか、<uib-pagination>または uibPaginationConfig を介してグローバルに構成できます。

例えば:

angular.module('app',['ui.bootstrap']).config(['uibPaginationConfig',
                                           function(uibPaginationConfig){
uibPaginationConfig.previousText="‹";
uibPaginationConfig.nextText="›";
uibPaginationConfig.firstText="«";
uibPaginationConfig.lastText="»";}]);
于 2015-11-02T05:54:47.843 に答える
3

angular-translate モジュールと一緒に ui.bootstrap.pagination を使用しています (この素晴らしいライブラリについては@PascalPrechtに感謝します)。ただし、動的更新を妨げる 1 つの問題は、既定のテンプレート 'template/pagination/pagination.html' で使用されるワンタイム バインディング式です。そのため、ページネーション ディレクティブの「template-url」属性を使用して、1 回限りのバインドなしで変更されたページネーション テンプレートを使用しました。

于 2015-10-11T08:44:00.873 に答える
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');
});
于 2016-02-29T05:54:27.857 に答える
1

angular-translate のコンポーネントを使用してこれを実現できます。https://github.com/angular-translate/angular-translate

于 2013-11-03T10:49:57.300 に答える