在这个plunker示例中,有没有办法翻译 angular 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>
请查看这个plunker的结果
在深入了解 ui-grid-datepicker 的工作原理后,我发现了一个肮脏的解决方案(我认为没有干净的解决方案)
你可以在这里看到一个 plunker 我更改了关闭按钮的文本: 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 设置为您想要的任何内容,例如使用 angular-translate 模块(我没有将其添加到 plunker):
var closeLabelTranslated = $filter('translate')('DONE');
就像我说的那样,这是一个肮脏的解决方案,但似乎 ui-grid-edit-datepicker 没有为您提供此选项,因此您必须手动添加它