Добавить traduction для пользовательского интерфейса даты в угловой пользовательской сети

Есть ли способ перевести кнопку в угловой UI-DatePicker в этом примере плунжера. Я пытался добавить close-text="{{\'lblClose\' | translate}}" current-text="{{\'lblToday\' | translate}}" clear-text="{{\'lblClear\' | translate}}" как и другой Angular UI-DatePicker, но он не работает. любая помощь действительно ценится

2 ответа

Решение

Вы можете сделать это, просто обновив директиву следующим образом <div class="datepicker-wrapper" ><input uib-datepicker-popup is-open="isOpen" ng-model="' + attrs.rowField + '" ng-change="changeDate($event)" close-text="closeText" current-text="curentText" clear-text="clearText"on-open-focus="false" disabled/></div>Пожалуйста, смотрите этот плункер для результата

Посмотрев более подробно на то, как работает ui-grid-datepicker, я нашел грязное решение (я не думаю, что есть чистое решение)

Вы можете увидеть плункер здесь, где я изменил текст кнопки закрытия: http://plnkr.co/edit/za99R9wUOcM2s2EkHLsv?p=preview

Проблема в том, что параметр для изменения кнопки "Готово" должен быть применен к элементу, который имеет директиву "uib-datepicker-popup"

Поэтому, если вы хотите изменить метку кнопки "Готово", вам нужно изменить библиотеку ui-grid-settings (что не является хорошим решением, но я не вижу другого пути).

из этого:

    template: function(element, attrs) {
        var html = '<div class="datepicker-wrapper" ><input uib-datepicker-popup is-open="isOpen" ng-model="' + attrs.rowField + '" ng-change="changeDate($event)" on-open-focus="false" disabled/></div>';
        return html;
    },

Вы изменяете его на (обратите внимание, что я добавил атрибут close-text с параметром):

    template: function(element, attrs) {
        var html = '<div class="datepicker-wrapper" ><input uib-datepicker-popup is-open="isOpen" close-text="' + attrs.closeLabel + '"  ng-model="' + attrs.rowField + '" ng-change="changeDate($event)" on-open-focus="false" disabled/></div>';
        return html;
    },

А затем в вашем главном файле app.js, из этого:

editableCellTemplate: '<div><form name="inputForm"><div ui-grid-edit-datepicker row-field="MODEL_COL_FIELD" ng-class="\'colt\' + col.uid"></div></form></div>'

вы измените его на:

editableCellTemplate: '<div><form name="inputForm"><div ui-grid-edit-datepicker close-label="' + closeLabelTranslated  + '" row-field="MODEL_COL_FIELD" ng-class="\'colt\' + col.uid"></div></form></div>'

Осталось только установить переменную closeLabelTranslated на то, что вы хотите, например, с помощью модуля углового перевода (я не добавил это к плункеру):

 var closeLabelTranslated = $filter('translate')('DONE');

Как я уже говорил, это грязное решение, но кажется, что ui-grid-edit-datepicker не предоставляет вам эту опцию, поэтому вы должны добавить ее вручную

Другие вопросы по тегам