2017-06-22 77 views
0

是否可以在antd DatePicker中翻译月份名称? 矩设置为我当前的语言环境da_DK,但不会更改名称,我查看了localization example,但没有包含月份名称。在DatePicker中本地化月份名称

可能吗?

这是相关代码:

moment.js:

import moment from 'moment'; 
moment.locale('da-DK'); 
console.log(moment().format('LLLL')); // This works. Moment displays localized date. 

antd:

import { LocaleProvider } from 'antd'; 
import defaults from 'antd/lib/locale-provider/en_US'; 

const da = _.merge(defaults, { 
    Table: { 
    emptyText: 'Ingen data tilgængelig.', 
    } 
    // month translations here? 
}); 

<LocaleProvider locale={da}> 
    <App.... /> 
</LocaleProvider> 
+0

antd使用momentjs作为月份名称,你设置了locale并使用''吗?你应该发布你的代码 – Kossel

+0

我已经添加了相关的代码。 –

+0

'antd'目前不包括丹麦语 - https://github.com/ant-design/ant-design/tree/master/components/date-picker/locale –

回答

0

您可以在丹麦的地区与以下添加到antd全局对象:

const { LocaleProvider, DatePicker, locales, version } = antd; 
moment.locale('da'); 

antd.locales.da = {"locale":"da","Pagination":{"items_per_page":"/ page","jump_to":"Goto","page":"","prev_page":"Previous Page","next_page":"Next Page","prev_5":"Previous 5 Pages","next_5":"Next 5 Pages","prev_3":"Previous 3 Pages","next_3":"Next 3 Pages"},"DatePicker":{"lang":{"placeholder":"Select date","rangePlaceholder":["Start date","End date"],"today":"Today (but in Danish)","now":"Now","backToToday":"Back to today","ok":"Ok","clear":"Clear","month":"Month","year":"Year","timeSelect":"Select time","dateSelect":"Select date","monthSelect":"Choose a month","yearSelect":"Choose a year","decadeSelect":"Choose a decade","yearFormat":"YYYY","dateFormat":"D/M/YYYY","dayFormat":"D","dateTimeFormat":"D/M/YYYY HH:mm:ss","monthBeforeYear":true,"previousMonth":"Previous month (PageUp)","nextMonth":"Next month (PageDown)","previousYear":"Last year (Control + left)","nextYear":"Next year (Control + right)","previousDecade":"Last decade","nextDecade":"Next decade","previousCentury":"Last century","nextCentury":"Next century"},"timePickerLocale":{"placeholder":"Select time"}},"TimePicker":{"placeholder":"Select time"},"Calendar":{"lang":{"placeholder":"Select date","rangePlaceholder":["Start date","End date"],"today":"Today","now":"Now","backToToday":"Back to today","ok":"Ok","clear":"Clear","month":"Month","year":"Year","timeSelect":"Select time","dateSelect":"Select date","monthSelect":"Choose a month","yearSelect":"Choose a year","decadeSelect":"Choose a decade","yearFormat":"YYYY","dateFormat":"D/M/YYYY","dayFormat":"D","dateTimeFormat":"D/M/YYYY HH:mm:ss","monthBeforeYear":true,"previousMonth":"Previous month (PageUp)","nextMonth":"Next month (PageDown)","previousYear":"Last year (Control + left)","nextYear":"Next year (Control + right)","previousDecade":"Last decade","nextDecade":"Next decade","previousCentury":"Last century","nextCentury":"Next century"},"timePickerLocale":{"placeholder":"Select time"}},"Table":{"filterTitle":"Filter menu","filterConfirm":"OK","filterReset":"Reset","emptyText":"No data","selectAll":"Select current page","selectInvert":"Invert current page"},"Modal":{"okText":"OK","cancelText":"Cancel","justOkText":"OK"},"Popconfirm":{"okText":"OK","cancelText":"Cancel"},"Transfer":{"notFoundContent":"Not Found","searchPlaceholder":"Search here","itemUnit":"item","itemsUnit":"items"},"Select":{"notFoundContent":"Not Found"},"Upload":{"uploading":"Uploading...","removeFile":"Remove file","uploadError":"Upload error","previewFile":"Preview file"}}; 

ReactDOM.render(
    <div> 
    <p className="version">antd version: {version}</p> 
    <LocaleProvider locale={locales.da}> 
     <DatePicker defaultValue={moment()} /> 
    </LocaleProvider> 
    </div> 
, mountNode); 

演示https://codepen.io/anon/pen/bRaGve?editors=0010

(遗憾的是,尽管观看了Borgen的每个季节,但我的丹麦语并不存在。我把上面的翻译留给你...)

+0

从我的角度来看,你没有做任何与I不同的事情。查看时刻文档,我认为这可能是问题:“从2.8.0开始,更改全局区域设置不会影响现有实例“ –

+1

它看起来不像你在'_.merge(defaults,{...'。我有'antd.locales.da = {”locale“:”da“,...' 。你是否尝试过演示链接?它显示了丹麦语中的月份 –

+0

Oooh,你是对的。将'locale:“da”'添加到我的const'da'中有所不同。所以antd必须在DatePicker中使用该常量实例化时刻对象。非常感谢 –