ng-devui
Version:
DevUI components based on Angular
77 lines • 12.1 kB
JavaScript
import { formatDate, getLocaleId } from '@angular/common';
import { I18nUtil } from './i18n.util';
export class I18nFormat {
// 默认locale使用英文,因为angular默认只支持英文,其他的需要显示注册
static { this.DEFAULT_LOCALE = 'en-us'; }
static { this.FULL_FORMAT_ZH = 'y-MM-dd HH:mm:ss zzzz'; }
static { this.FULL_FORMAT_EN = 'MMM dd, y HH:mm:ss zzzz'; }
static { this.FULL_FORMAT_RU = 'dd.MM.y HH:mm:ss zzzz'; }
static { this.LONG_FORMAT_ZH = 'y-MM-dd HH:mm:ss'; }
static { this.LONG_FORMAT_EN = 'MMM dd, y HH:mm:ss'; }
static { this.LONG_FORMAT_RU = 'dd.MM.y HH:mm:ss'; }
static { this.MEDIUM_FORMAT_ZH = 'y-MM-dd HH:mm'; }
static { this.MEDIUM_FORMAT_EN = 'MMM dd, y HH:mm'; }
static { this.MEDIUM_FORMAT_RU = 'dd.MM.y HH:mm'; }
static { this.SHORT_FORMAT_ZH = 'y-MM-dd'; }
static { this.SHORT_FORMAT_EN = 'MMM dd, y'; }
static { this.SHORT_FORMAT_RU = 'dd.MM.y'; }
static { this.ULTRA_SHORT_FORMAT_ZH = 'y-MM'; }
static { this.ULTRA_SHORT_FORMAT_EN = 'MMM, y'; }
static { this.ULTRA_SHORT_FORMAT_RU = 'MM.y'; }
static { this.localFormat = {
'zh-cn': {
full: I18nFormat.FULL_FORMAT_ZH,
long: I18nFormat.LONG_FORMAT_ZH,
medium: I18nFormat.MEDIUM_FORMAT_ZH,
short: I18nFormat.SHORT_FORMAT_ZH,
ultraShort: I18nFormat.ULTRA_SHORT_FORMAT_ZH,
},
'en-us': {
full: I18nFormat.FULL_FORMAT_EN,
long: I18nFormat.LONG_FORMAT_EN,
medium: I18nFormat.MEDIUM_FORMAT_EN,
short: I18nFormat.SHORT_FORMAT_EN,
ultraShort: I18nFormat.ULTRA_SHORT_FORMAT_EN,
},
'ru-ru': {
full: I18nFormat.FULL_FORMAT_RU,
long: I18nFormat.LONG_FORMAT_RU,
medium: I18nFormat.MEDIUM_FORMAT_RU,
short: I18nFormat.SHORT_FORMAT_RU,
ultraShort: I18nFormat.ULTRA_SHORT_FORMAT_RU,
},
}; }
// 通过get方法来做业务没有指定locale的时候fallback
static getLocaleAndLang(locale) {
const currentLanguage = I18nUtil.getCurrentLanguage();
let localeId;
try {
// 通过get方法来判断是否存在locale
getLocaleId(locale);
localeId = (locale || I18nFormat.DEFAULT_LOCALE).toLocaleLowerCase();
}
catch (error) {
localeId = I18nFormat.DEFAULT_LOCALE;
}
return { localeId, currentLanguage };
}
// 短格式:y-MM-dd
static formatDate(value, format, locale, timezone) {
const localeLang = I18nFormat.getLocaleAndLang(locale);
const formatStr = format ? format : I18nFormat.localFormat[localeLang.currentLanguage].short;
return formatDate(value, formatStr, localeLang.localeId, timezone);
}
// 完整格式:y-MM-dd hh:mm:ss zzzz
static formatDateTime(value, format, locale, timezone) {
const localeLang = I18nFormat.getLocaleAndLang(locale);
const formatStr = format ? format : I18nFormat.localFormat[localeLang.currentLanguage].full;
return formatDate(value, formatStr, localeLang.localeId, timezone);
}
// 完整格式不加GMT:y-MM-dd hh:mm:ss
static formatDateTimeWithoutGMT(value, format, locale, timezone) {
const localeLang = I18nFormat.getLocaleAndLang(locale);
const formatStr = format ? format : I18nFormat.localFormat[localeLang.currentLanguage].long;
return formatDate(value, formatStr, localeLang.localeId, timezone);
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5mb3JtYXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9kZXZ1aS9pMThuL2kxOG4uZm9ybWF0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV2QyxNQUFNLE9BQU8sVUFBVTtJQUNyQiwwQ0FBMEM7YUFDbEIsbUJBQWMsR0FBRyxPQUFPLENBQUM7YUFDekIsbUJBQWMsR0FBRyx1QkFBdUIsQ0FBQzthQUN6QyxtQkFBYyxHQUFHLHlCQUF5QixDQUFDO2FBQzNDLG1CQUFjLEdBQUcsdUJBQXVCLENBQUM7YUFDekMsbUJBQWMsR0FBRyxrQkFBa0IsQ0FBQzthQUNwQyxtQkFBYyxHQUFHLG9CQUFvQixDQUFDO2FBQ3RDLG1CQUFjLEdBQUcsa0JBQWtCLENBQUM7YUFDcEMscUJBQWdCLEdBQUcsZUFBZSxDQUFDO2FBQ25DLHFCQUFnQixHQUFHLGlCQUFpQixDQUFDO2FBQ3JDLHFCQUFnQixHQUFHLGVBQWUsQ0FBQzthQUNuQyxvQkFBZSxHQUFHLFNBQVMsQ0FBQzthQUM1QixvQkFBZSxHQUFHLFdBQVcsQ0FBQzthQUM5QixvQkFBZSxHQUFHLFNBQVMsQ0FBQzthQUM1QiwwQkFBcUIsR0FBRyxNQUFNLENBQUM7YUFDL0IsMEJBQXFCLEdBQUcsUUFBUSxDQUFDO2FBQ2pDLDBCQUFxQixHQUFHLE1BQU0sQ0FBQzthQUV2QyxnQkFBVyxHQUFHO1FBQzVCLE9BQU8sRUFBRTtZQUNQLElBQUksRUFBRSxVQUFVLENBQUMsY0FBYztZQUMvQixJQUFJLEVBQUUsVUFBVSxDQUFDLGNBQWM7WUFDL0IsTUFBTSxFQUFFLFVBQVUsQ0FBQyxnQkFBZ0I7WUFDbkMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxlQUFlO1lBQ2pDLFVBQVUsRUFBRSxVQUFVLENBQUMscUJBQXFCO1NBQzdD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Y2FsZUlkIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEkxOG5VdGlsIH0gZnJvbSAnLi9pMThuLnV0aWwnO1xuXG5leHBvcnQgY2xhc3MgSTE4bkZvcm1hdCB7XG4gIC8vIOm7mOiupGxvY2FsZeS9v+eUqOiLseaWh++8jOWboOS4umFuZ3VsYXLpu5jorqTlj6rmlK/mjIHoi7HmlofvvIzlhbbku5bnmoTpnIDopoHmmL7npLrms6jlhoxcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9MT0NBTEUgPSAnZW4tdXMnO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBGVUxMX0ZPUk1BVF9aSCA9ICd5LU1NLWRkIEhIOm1tOnNzIHp6enonO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBGVUxMX0ZPUk1BVF9FTiA9ICdNTU0gZGQsIHkgSEg6bW06c3Mgenp6eic7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IEZVTExfRk9STUFUX1JVID0gJ2RkLk1NLnkgSEg6bW06c3Mgenp6eic7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IExPTkdfRk9STUFUX1pIID0gJ3ktTU0tZGQgSEg6bW06c3MnO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBMT05HX0ZPUk1BVF9FTiA9ICdNTU0gZGQsIHkgSEg6bW06c3MnO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBMT05HX0ZPUk1BVF9SVSA9ICdkZC5NTS55IEhIOm1tOnNzJztcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgTUVESVVNX0ZPUk1BVF9aSCA9ICd5LU1NLWRkIEhIOm1tJztcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgTUVESVVNX0ZPUk1BVF9FTiA9ICdNTU0gZGQsIHkgSEg6bW0nO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBNRURJVU1fRk9STUFUX1JVID0gJ2RkLk1NLnkgSEg6bW0nO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBTSE9SVF9GT1JNQVRfWkggPSAneS1NTS1kZCc7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFNIT1JUX0ZPUk1BVF9FTiA9ICdNTU0gZGQsIHknO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBTSE9SVF9GT1JNQVRfUlUgPSAnZGQuTU0ueSc7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFVMVFJBX1NIT1JUX0ZPUk1BVF9aSCA9ICd5LU1NJztcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgVUxUUkFfU0hPUlRfRk9STUFUX0VOID0gJ01NTSwgeSc7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFVMVFJBX1NIT1JUX0ZPUk1BVF9SVSA9ICdNTS55JztcblxuICBzdGF0aWMgcmVhZG9ubHkgbG9jYWxGb3JtYXQgPSB7XG4gICAgJ3poLWNuJzoge1xuICAgICAgZnVsbDogSTE4bkZvcm1hdC5GVUxMX0ZPUk1BVF9aSCxcbiAgICAgIGxvbmc6IEkxOG5Gb3JtYXQuTE9OR19GT1JNQVRfWkgsXG4gICAgICBtZWRpdW06IEkxOG5Gb3JtYXQuTUVESVVNX0ZPUk1BVF9aSCxcbiAgICAgIHNob3J0OiBJMThuRm9ybWF0LlNIT1JUX0ZPUk1BVF9aSCxcbiAgICAgIHVsdHJhU2hvcnQ6IEkxOG5Gb3JtYXQuVUxUUkFfU0hPUlRfRk9STUFUX1pILFxuICAgIH0sXG4gICAgJ2VuLXVzJzoge1xuICAgICAgZnVsbDogSTE4bkZvcm1hdC5GVUxMX0ZPUk1BVF9FTixcbiAgICAgIGxvbmc6IEkxOG5Gb3JtYXQuTE9OR19GT1JNQVRfRU4sXG4gICAgICBtZWRpdW06IEkxOG5Gb3JtYXQuTUVESVVNX0ZPUk1BVF9FTixcbiAgICAgIHNob3J0OiBJMThuRm9ybWF0LlNIT1JUX0ZPUk1BVF9FTixcbiAgICAgIHVsdHJhU2hvcnQ6IEkxOG5Gb3JtYXQuVUxUUkFfU0hPUlRfRk9STUFUX0VOLFxuICAgIH0sXG4gICAgJ3J1LXJ1Jzoge1xuICAgICAgZnVsbDogSTE4bkZvcm1hdC5GVUxMX0ZPUk1BVF9SVSxcbiAgICAgIGxvbmc6IEkxOG5Gb3JtYXQuTE9OR19GT1JNQVRfUlUsXG4gICAgICBtZWRpdW06IEkxOG5Gb3JtYXQuTUVESVVNX0ZPUk1BVF9SVSxcbiAgICAgIHNob3J0OiBJMThuRm9ybWF0LlNIT1JUX0ZPUk1BVF9SVSxcbiAgICAgIHVsdHJhU2hvcnQ6IEkxOG5Gb3JtYXQuVUxUUkFfU0hPUlRfRk9STUFUX1JVLFxuICAgIH0sXG4gIH07XG5cbiAgLy8g6YCa6L+HZ2V05pa55rOV5p2l5YGa5Lia5Yqh5rKh5pyJ5oyH5a6abG9jYWxl55qE5pe25YCZZmFsbGJhY2tcbiAgc3RhdGljIGdldExvY2FsZUFuZExhbmcobG9jYWxlPzogc3RyaW5nKSB7XG4gICAgY29uc3QgY3VycmVudExhbmd1YWdlID0gSTE4blV0aWwuZ2V0Q3VycmVudExhbmd1YWdlKCk7XG4gICAgbGV0IGxvY2FsZUlkO1xuICAgIHRyeSB7XG4gICAgICAvLyDpgJrov4dnZXTmlrnms5XmnaXliKTmlq3mmK/lkKblrZjlnKhsb2NhbGVcbiAgICAgIGdldExvY2FsZUlkKGxvY2FsZSk7XG4gICAgICBsb2NhbGVJZCA9IChsb2NhbGUgfHwgSTE4bkZvcm1hdC5ERUZBVUxUX0xPQ0FMRSkudG9Mb2NhbGVMb3dlckNhc2UoKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgbG9jYWxlSWQgPSBJMThuRm9ybWF0LkRFRkFVTFRfTE9DQUxFO1xuICAgIH1cbiAgICByZXR1cm4geyBsb2NhbGVJZCwgY3VycmVudExhbmd1YWdlIH07XG4gIH1cblxuICAvLyDnn63moLzlvI/vvJp5LU1NLWRkXG4gIHN0YXRpYyBmb3JtYXREYXRlKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBEYXRlLCBmb3JtYXQ/OiBzdHJpbmcsIGxvY2FsZT86IHN0cmluZywgdGltZXpvbmU/OiBzdHJpbmcpIHtcbiAgICBjb25zdCBsb2NhbGVMYW5nID0gSTE4bkZvcm1hdC5nZXRMb2NhbGVBbmRMYW5nKGxvY2FsZSk7XG4gICAgY29uc3QgZm9ybWF0U3RyID0gZm9ybWF0ID8gZm9ybWF0IDogSTE4bkZvcm1hdC5sb2NhbEZvcm1hdFtsb2NhbGVMYW5nLmN1cnJlbnRMYW5ndWFnZV0uc2hvcnQ7XG4gICAgcmV0dXJuIGZvcm1hdERhdGUodmFsdWUsIGZvcm1hdFN0ciwgbG9jYWxlTGFuZy5sb2NhbGVJZCwgdGltZXpvbmUpO1xuICB9XG5cbiAgLy8g5a6M5pW05qC85byP77yaeS1NTS1kZCBoaDptbTpzcyB6enp6XG4gIHN0YXRpYyBmb3JtYXREYXRlVGltZSh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgRGF0ZSwgZm9ybWF0Pzogc3RyaW5nLCBsb2NhbGU/OiBzdHJpbmcsIHRpbWV6b25lPzogc3RyaW5nKSB7XG4gICAgY29uc3QgbG9jYWxlTGFuZyA9IEkxOG5Gb3JtYXQuZ2V0TG9jYWxlQW5kTGFuZyhsb2NhbGUpO1xuICAgIGNvbnN0IGZvcm1hdFN0ciA9IGZvcm1hdCA/IGZvcm1hdCA6IEkxOG5Gb3JtYXQubG9jYWxGb3JtYXRbbG9jYWxlTGFuZy5jdXJyZW50TGFuZ3VhZ2VdLmZ1bGw7XG4gICAgcmV0dXJuIGZvcm1hdERhdGUodmFsdWUsIGZvcm1hdFN0ciwgbG9jYWxlTGFuZy5sb2NhbGVJZCwgdGltZXpvbmUpO1xuICB9XG5cbiAgLy8g5a6M5pW05qC85byP5LiN5YqgR01U77yaeS1NTS1kZCBoaDptbTpzc1xuICBzdGF0aWMgZm9ybWF0RGF0ZVRpbWVXaXRob3V0R01UKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBEYXRlLCBmb3JtYXQ/OiBzdHJpbmcsIGxvY2FsZT86IHN0cmluZywgdGltZXpvbmU/OiBzdHJpbmcpIHtcbiAgICBjb25zdCBsb2NhbGVMYW5nID0gSTE4bkZvcm1hdC5nZXRMb2NhbGVBbmRMYW5nKGxvY2FsZSk7XG4gICAgY29uc3QgZm9ybWF0U3RyID0gZm9ybWF0ID8gZm9ybWF0IDogSTE4bkZvcm1hdC5sb2NhbEZvcm1hdFtsb2NhbGVMYW5nLmN1cnJlbnRMYW5ndWFnZV0ubG9uZztcbiAgICByZXR1cm4gZm9ybWF0RGF0ZSh2YWx1ZSwgZm9ybWF0U3RyLCBsb2NhbGVMYW5nLmxvY2FsZUlkLCB0aW1lem9uZSk7XG4gIH1cbn1cbiJdfQ==