博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
记:解决angular报错'Missing locale data for the locale "zh-cn"
阅读量:6761 次
发布时间:2019-06-26

本文共 2825 字,大约阅读时间需要 9 分钟。

今天早上起来,我正在happy的敲代码,ng serve之后报了个大红叉!

代码逻辑如下

formatDate(date: Date, format: string): string {    let local = this.getLocale();    // local.local = 'zh-cn'    let re = this.datePipe.transform(date, format, null, local.locale);    return re;}复制代码

当我尝试把zh-cn换成en时,代码正常跑起来了,问题是你妈满屏的鸟文!! 于是乎,我开始翻看ng源码,发现了这个鸟东西!

// 缓存语言export const LOCALE_DATA: {[localeId: string]: any} = {};export function findLocaleData(locale: string): any {  const normalizedLocale = locale.toLowerCase().replace(/_/g, '-');  // 关键点在这里  let match = LOCALE_DATA[normalizedLocale];  if (match) {    return match;  }  const parentLocale = normalizedLocale.split('-')[0];  match = LOCALE_DATA[parentLocale];  if (match) {    return match;  }  // 这尼玛,不敢直视,直接内置,好吧,内置就内置吧,不管他了  if (parentLocale === 'en') {    return localeEn;  }  throw new Error(`Missing locale data for the locale "${locale}".`);}复制代码

接着翻看,找到设置本地语言函数

export function registerLocaleData(data: any, localeId?: string | any, extraData?: any): void {  if (typeof localeId !== 'string') {    extraData = localeId;    localeId = data[LocaleDataIndex.LocaleId];  }  localeId = localeId.toLowerCase().replace(/_/g, '-');  LOCALE_DATA[localeId] = data;  if (extraData) {    LOCALE_DATA[localeId][LocaleDataIndex.ExtraData] = extraData;  }}复制代码

汉化语言包

function plural(n: number): number {  return 5;}export const extra =  [  [    ['午夜', '早上', '上午', '中午', '下午', '晚上', '凌晨'],    ,    ['午夜', '清晨', '上午', '中午', '下午', '晚上', '凌晨']  ],  [['午夜', '早上', '上午', '中午', '下午', '晚上', '凌晨'], ,],  [    '00:00',    ['05:00', '08:00'],    ['08:00', '12:00'],    ['12:00', '13:00'],    ['13:00', '19:00'],    ['19:00', '24:00'],    ['00:00', '05:00']  ]];export const zhcn = [  'zh-Hans',  [['上午', '下午'], ,],  ,  [    ['日', '一', '二', '三', '四', '五', '六'],    ['周日', '周一', '周二', '周三', '周四', '周五', '周六'],    ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],    ['周日', '周一', '周二', '周三', '周四', '周五', '周六']  ],  ,  [    ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'],    [      '1月',      '2月',      '3月',      '4月',      '5月',      '6月',      '7月',      '8月',      '9月',      '10月',      '11月',      '12月'    ],    [      '一月',      '二月',      '三月',      '四月',      '五月',      '六月',      '七月',      '八月',      '九月',      '十月',      '十一月',      '十二月'    ]  ],  ,  [['公元前', '公元'], ,],  0,  [6, 0],  ['y/M/d', 'y年M月d日', , 'y年M月d日EEEE'],  ['ah:mm', 'ah:mm:ss', 'z ah:mm:ss', 'zzzz ah:mm:ss'],  ['{1} {0}', , ,],  ['.', ',', ';', '%', '+', '-', 'E', '×', '‰', '∞', 'NaN', ':'],  ['#,##0.###', '#,##0%', '¤#,##0.00', '#E0'],  '¥',  '人民币',  {    AUD: ['AU$', '$'],    CNY: ['¥', '¥'],    ILR: ['ILS'],    JPY: ['JP¥', '¥'],    KRW: ['₩', '₩'],    TWD: ['NT$'],    USD: ['US$', '$']  },  plural];复制代码

注册语言包,然后畅通无阻

import { zhcn, extra } from './zh-cn/index';registerLocaleData(zhcn, 'zh-cn', extra);复制代码

小结

keep learning!

转载地址:http://iabeo.baihongyu.com/

你可能感兴趣的文章
【英语称谓】软件行业外企称谓简称
查看>>
实现打印级别且带图片的Excel 方案
查看>>
[再寄小读者之数学篇](2015-06-24 Series)
查看>>
【Linux】linux常用基本命令
查看>>
4-python学习——数据操作
查看>>
Oracle函数
查看>>
Unity3D学习笔记第一课
查看>>
【redis使用全解析】常见运维操作
查看>>
hdu2377Bus Pass(构建更复杂的图+spfa)
查看>>
2015第29周三
查看>>
CCBValue
查看>>
C#一些知识点:委托和事件的区别
查看>>
linux修改挂载目录
查看>>
Cocos2d-js-v3.2 在 mac 上配置环境以及编译到 Andorid 的注意事项(转)
查看>>
android开源项目学习
查看>>
提升Mac os x 10.10+xcode6.1之后,Cocoapods发生故障的解决方案
查看>>
Developer Tool - 1. Text Tool and GNU/Linux Tool
查看>>
OAuth 2.0 安全案例回顾
查看>>
标准API使用小技巧
查看>>
jQuery Validate插入 reomte使用详细的说明
查看>>