文档章节

moment.js 添加中文语言(汉化)

j
 jason_wu_2
发布于 2016/12/06 17:54
字数 792
阅读 257
收藏 0
点赞 0
评论 0

今天引入了moment.js处理时间格式,但是发现默认是英文的,比如我想显示“星期三”,但实际出来的是“Wednesday”。那怎样把语言改为中文呢?

moment.js提供了多种语言的支持,首先在github上找到中文字典部分:

moment.defineLocale('zh-cn', {  
        months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),  
        monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),  
        weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),  
        weekdaysShort : '周日_周一_周二_周三_周四_周五_周六'.split('_'),  
        weekdaysMin : '日_一_二_三_四_五_六'.split('_'),  
        longDateFormat : {  
            LT : 'Ah点mm分',  
            LTS : 'Ah点m分s秒',  
            L : 'YYYY-MM-DD',  
            LL : 'YYYY年MMMD日',  
            LLL : 'YYYY年MMMD日Ah点mm分',  
            LLLL : 'YYYY年MMMD日ddddAh点mm分',  
            l : 'YYYY-MM-DD',  
            ll : 'YYYY年MMMD日',  
            lll : 'YYYY年MMMD日Ah点mm分',  
            llll : 'YYYY年MMMD日ddddAh点mm分'  
        },  
        meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,  
        meridiemHour: function (hour, meridiem) {  
            if (hour === 12) {  
                hour = 0;  
            }  
            if (meridiem === '凌晨' || meridiem === '早上' ||  
                    meridiem === '上午') {  
                return hour;  
            } else if (meridiem === '下午' || meridiem === '晚上') {  
                return hour + 12;  
            } else {  
                // '中午'  
                return hour >= 11 ? hour : hour + 12;  
            }  
        },  
        meridiem : function (hour, minute, isLower) {  
            var hm = hour * 100 + minute;  
            if (hm < 600) {  
                return '凌晨';  
            } else if (hm < 900) {  
                return '早上';  
            } else if (hm < 1130) {  
                return '上午';  
            } else if (hm < 1230) {  
                return '中午';  
            } else if (hm < 1800) {  
                return '下午';  
            } else {  
                return '晚上';  
            }  
        },  
        calendar : {  
            sameDay : function () {  
                return this.minutes() === 0 ? '[今天]Ah[点整]' : '[今天]LT';  
            },  
            nextDay : function () {  
                return this.minutes() === 0 ? '[明天]Ah[点整]' : '[明天]LT';  
            },  
            lastDay : function () {  
                return this.minutes() === 0 ? '[昨天]Ah[点整]' : '[昨天]LT';  
            },  
            nextWeek : function () {  
                var startOfWeek, prefix;  
                startOfWeek = moment().startOf('week');  
                prefix = this.unix() - startOfWeek.unix() >= 7 * 24 * 3600 ? '[下]' : '[本]';  
                return this.minutes() === 0 ? prefix + 'dddAh点整' : prefix + 'dddAh点mm';  
            },  
            lastWeek : function () {  
                var startOfWeek, prefix;  
                startOfWeek = moment().startOf('week');  
                prefix = this.unix() < startOfWeek.unix()  ? '[上]' : '[本]';  
                return this.minutes() === 0 ? prefix + 'dddAh点整' : prefix + 'dddAh点mm';  
            },  
            sameElse : 'LL'  
        },  
        ordinalParse: /\d{1,2}(日|月|周)/,  
        ordinal : function (number, period) {  
            switch (period) {  
            case 'd':  
            case 'D':  
            case 'DDD':  
                return number + '日';  
            case 'M':  
                return number + '月';  
            case 'w':  
            case 'W':  
                return number + '周';  
            default:  
                return number;  
            }  
        },  
        relativeTime : {  
            future : '%s内',  
            past : '%s前',  
            s : '几秒',  
            m : '1 分钟',  
            mm : '%d 分钟',  
            h : '1 小时',  
            hh : '%d 小时',  
            d : '1 天',  
            dd : '%d 天',  
            M : '1 个月',  
            MM : '%d 个月',  
            y : '1 年',  
            yy : '%d 年'  
        },  
        week : {  
            // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效  
            dow : 1, // Monday is the first day of the week.  
            doy : 4  // The week that contains Jan 4th is the first week of the year.  
        }  
    });  

然后,把这段代码复制到moment.js中,位置在最后一句 “return _moment;” 的前面,如下:

//中文支持  
    moment.defineLocale('zh-cn', {  
        months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),  
        monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),  
        //...略  
      
      
    return _moment;  

或者

    /************************************
        Default Locale
    ************************************/


    // Set default locale, other locale will inherit from English.
    moment.locale('en', {
        ordinalParse: /\d{1,2}(th|st|nd|rd)/,
        ordinal : function (number) {
            var b = number % 10,
                output = (toInt(number % 100 / 10) === 1) ? 'th' :
                (b === 1) ? 'st' :
                (b === 2) ? 'nd' :
                (b === 3) ? 'rd' : 'th';
            return number + output;
        }
    });

    moment.defineLocale('zh-cn', {  
        ......

运行成功。

 

如果不起作用,还是显示英文日期,则moment.js中最后返回的变量可能叫做 _moment,多了个下划线,于是修改刚才那段代码的开头部分,把moment改为_moment,成功!

//中文支持  
    _moment.defineLocale('zh-cn', {  

 

本文转载自:http://blog.csdn.net/zhouyingge1104/article/details/50596420

共有 人打赏支持
j
粉丝 4
博文 133
码字总数 2988
作品 0
iTop 2.4.0 中文汉化版

iTop 2.3.3 在2016年12月22日发布,我在第一时间开始了汉化工作, (itop 2.4.0 汉化已完成,见百度网盘) 改进如下: 1、对官方汉化不全的基础上进行审核校验并深入汉化,除了安装向导,整体...

紫色葡萄
2016/12/30
0
0
DNN入门笔记三:使用DNN之前的配置工作

在使用DNN建立站点之前,需要对其进行一些配置,包括: 1)界面汉化 2)XHTML默认规范设置 3)安装自带模块 1)汉化 DNN支持多语言,如果在一个站点中,有多种可用的语言,则在页面左上角会出...

netwild
2010/11/30
0
0
Collabtive 0.76 中文修复版首发下载

Collabtive 0.76 中文修复版,修复4个问题: install.php里的SQL语句创建表不支持中文,数据库记录显示中文乱码; 项目文件管理的中文汉化、语言配置文件遗留问题; 不支持创建中文目录和上传...

庞罗均
2012/07/03
0
0
使用Chinese​Localization插件轻松汉化Sublime

使用ChineseLocalization插件轻松汉化Sublime经验分享: 之前安装Sublime的汉化包时,需要手动下载zip格式的汉化包,然后解压到Sublime的Package安装目录,比较麻烦。今天在Sublime的插件中心...

yaotingxi
2015/12/29
1K
0
JIRA中设置[描述]字段的默认值

公司使用JIRA已经一段时间了,期间也是各种需求,免不了很多自定义的功能或需求,在没有购买技术支持的情况下,有的或许可以自行尝试实现,有的也只能是无能为力。当然,这篇文章别的不说,单...

jerry1111111
2017/05/03
0
0
长大小申/MakerD3Printer

#MakerD3Printer 中文本土化的3D打印机控制系统 编不下去, 好吧!我坦白,就是reprtier 的固件,我中文化了! 最新版Repetier-Firmware 0.9.2.3. 支持Arduino due 32位的主板。 还在用8位a...

长大小申
2015/05/06
0
0
Magento中文定制版--MagentoC

Magento中文版项目介绍 Magento是近年来新兴的一款购物车系统。它灵活的系统架构赢得了全世界开发者的青睐。为了使 Magento能够更好的在国内推广和发展,决定制作Magento的中文发行版。目前中...

匿名
2010/05/10
9.7K
0
Adven/AndroidStudio2.0.x.CN

AndroidStudio-ChineseLanguagePackage AndroidStudio 简体中文汉化包 AndroidStudio简介: AndroidStudio是Google官方推出的基于 IntelliJ IDEA的Android开发IDE. Android Studio 2.0是为A......

Adven
2016/04/18
0
0
ClearOS 中文问题

这几天下ClearOS 来研究了下,路由功能还不错,其它没有多试,5.1有中文的语言选择,但安装了中文字体包和显示包,选择中文还是会出现乱码,网上相关的东西很少,有没有朋友研究过它的中文汉...

无为无助
2010/10/04
3.1K
0
WordPress 中文团队--wpcn

WordPress 中文团队(wpcn) 是由 Crazy Loong 发起以本土化推广 WordPress 为目标而组成的一个非盈利性组织。本团队旨在制作和维护 WordPress 主程序以及衍生程序(WordPress MU、bbPress和B...

匿名
2008/12/31
5K
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

对基于深度神经网络的Auto Encoder用于异常检测的一些思考

一、前言 现实中,大部分数据都是无标签的,人和动物多数情况下都是通过无监督学习获取概念,故而无监督学习拥有广阔的业务场景。举几个场景:网络流量是正常流量还是攻击流量、视频中的人的...

冷血狂魔
19分钟前
0
0
并发设计之A系统调用B系统

A-->B A在发送请求之前,用乐观锁,减少对B的重复调用,这样一定程度上是幂等性。 比如A系统支付功能,要调用B系统进行支付操作,但是前端对"支付"按钮不进行控制,即用户会不断多次点击支付...

汉斯-冯-拉特
39分钟前
0
0
HTTP协议通信原理

了解HTTP HTTP(HyperText Transfer Protocol)是一套计算机通过网络进行通信的规则。计算机专家设计出HTTP,使HTTP客户(如Web浏览器)能够从HTTP服务器(Web服务器)请求信息和服务。 HTTP使用...

寰宇01
今天
0
0
【Java动态性】之反射机制

一、Java反射机制简介

谢余峰
今天
1
0
Centos 6.X 部署环境搭建

1.Linux学习笔记CentOS 6.5(一)--CentOS 6.5安装过程

IT追寻者
今天
0
0
博客即同步至腾讯云+社区声明

我的博客即将搬运同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=8vy9bsmadbko...

xiaoge2016
今天
1
0
大数据教程(3.1):Linux系统搭建网络YUM源服务器

博主在前面的2.5章节讲述了linux系统本地YUM服务器的搭建和httpd轻量级静态网站服务器的安装,本节博主将为大家分享内网环境中搭建自己的网络YUM服务器的全过程。如果大家对本地YUM服务器还不...

em_aaron
今天
1
0
蚂蚁技术专家:一篇文章带你学习分布式事务

小蚂蚁说: 分布式事务是企业集成中的一个技术难点,也是每一个分布式系统架构中都会涉及到的一个东西,特别是在这几年越来越火的微服务架构中,几乎可以说是无法避免,本文就围绕分布式事务...

Java大蜗牛
今天
1
0
新的Steam应用将拓展服务项目

导读 未来几周,Steam将推出两个免费的应用程序Steam Link和Steam Video。这两个应用程序都旨在拓展Steam平台的业务和便利性。 即将开放的Steam Link应用程序最先提供了Android测试版,它将允...

问题终结者
今天
0
0
golang 第三方包的使用总结

golang 第三方包的安装的方法: 1. go get 安装 $ go get github.com/gin-gonic/gin 注意:执行go get 命令需要先安装git命令,并配置git全局变量。 2. 源码包安装 由于国内网络问题,很多时...

科陆李明
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部