UNPKG

extpoint-yii2

Version:

JavaScript part for projects on ExtPoint Yii2 Boilerplate and yii2-core

43 lines (35 loc) 1.25 kB
import IntlMessageFormat from 'intl-messageformat'; import moment from 'moment'; import 'moment/locale/ru'; // Fix load locale data window.IntlMessageFormat = IntlMessageFormat; require('intl-messageformat/dist/locale-data/ru'); delete window.IntlMessageFormat; /** * @example * {__('{count} {count, plural, one{день} few{дня} many{дней}}', {count: 2})} */ export default class LocaleComponent { constructor() { this.language = null; this.backendTimeZone = null; this.translations = {}; } moment(date, format) { if (this.backendTimeZone && date && date.length === 19 && moment(date, 'YYYY-MM-DD HH:mm:ss').isValid()) { date = date + this.backendTimeZone; } return moment(date, format).locale(this.language); } t(message, params = {}) { return this.translate(message, params); } translate(message, params = {}) { // Translate message = this.translations[message] || message; // Format message (params, plural, etc..) const formatter = new IntlMessageFormat(message, this.language); message = formatter.format(params); return message; } }