You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何更改DataPicker组件com.codename1.ui.Calendar的默认本地化语言

Codename One 配置DatePicker/Calendar组件本地化语言方法

日期选择器界面示例

com.codename1.ui.Calendar与绑定的DatePicker组件的界面文案(月份名、星期名、操作按钮文本)默认读取框架全局本地化配置,不需要自定义子类重写,可通过以下两种官方支持的方式修改:


方法1:全局配置(推荐,所有日期组件统一生效)

  • 准备对应语言的本地化配置文件,在项目资源目录下添加L10N-[语言代码]-[地区代码].properties文件,覆盖日历相关的本地化键值,以简体中文为例,L10N-zh-CN.properties内容参考:
    # 月份全称
    calendar.january=1月
    calendar.february=2月
    calendar.march=3月
    calendar.april=4月
    calendar.may=5月
    calendar.june=6月
    calendar.july=7月
    calendar.august=8月
    calendar.september=9月
    calendar.october=10月
    calendar.november=11月
    calendar.december=12月
    # 星期缩写
    calendar.sunday=日
    calendar.monday=一
    calendar.tuesday=二
    calendar.wednesday=三
    calendar.thursday=四
    calendar.friday=五
    calendar.saturday=六
    # 操作按钮文案
    calendar.set=确定
    calendar.cancel=取消
    calendar.today=今天
    
  • 在应用初始化入口(主类init()方法中)设置全局语言环境,配置会自动对后续创建的所有日期组件生效:
    // 切换为简体中文环境,根据目标语言替换对应语言、地区代码即可
    L10nManager.getInstance().setLocale("zh", "CN");
    

方法2:单组件自定义配置(不影响全局语言)

如果只需要调整单个日期选择器的文案,不需要修改全局配置,可直接调用组件公开API设置自定义文本:

DatePicker datePicker = new DatePicker();
Calendar calendar = datePicker.getCalendarView();
// 设置月份名称
calendar.setMonthNames(new String[]{"1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"});
// 设置星期名称
calendar.setDayOfWeekNames(new String[]{"日","一","二","三","四","五","六"});
// 设置操作按钮文本
calendar.setOkText("确定");
calendar.setCancelText("取消");
calendar.setTodayText("今天");

注意事项

  • *如果组件已经完成渲染,修改配置后需要调用datePicker.revalidate()触发界面重绘,修改才会即时生效。
  • 不要通过反射修改Calendar类的内部静态字段实现语言切换,框架版本迭代时内部实现可能调整,该方式兼容性极差,优先使用上述公开API。

内容的提问来源于stack exchange,提问作者Angel Picallo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.03 01:15:39