在角度ui-grid中向ui-datepicker添加traduction

时间:2017-03-03 14:21:02

标签: javascript angularjs angular-ui-bootstrap angular-ui-grid angular-ui-datepicker

有没有办法在这个plunker示例中翻译角度ui-datepicker中的按钮。 我尝试像其他Angular ui-datepicker一样添加close-text="{{\'lblClose\' | translate}}" current-text="{{\'lblToday\' | translate}}" clear-text="{{\'lblClear\' | translate}}",但它不起作用。 任何帮助都是非常准确的

2 个答案:

答案 0 :(得分:1)

你可以通过像这样<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>更新指令来做到这一点 请参阅此plunker了解结果

答案 1 :(得分:0)

在更深入地了解ui-grid-datepicker是如何工作之后,我发现了一个肮脏的解决方案(我不认为有一个干净的解决方案)

你可以在这里看到一个更改关闭按钮文本的plunker: http://plnkr.co/edit/za99R9wUOcM2s2EkHLsv?p=preview

问题是更改完成按钮的设置必须应用于具有指令的元素&#34; uib-datepicker-popup&#34;

因此,如果你想修改完成按钮的标签,你必须更改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设置为你想要的任何东西,例如使用angular-translate模块(我没有将它添加到plunker):

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

就像我说这是一个肮脏的解决方案,但似乎ui-grid-edit-datepicker没有为您提供此选项,因此您必须手动添加它