"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _index = _interopRequireDefault(require("../../../_lib/buildLocalizeFn/index.js")); // Vietnamese locale reference: http://www.localeplanet.com/icu/vi-VN/index.html // Capitalization reference: http://hcmup.edu.vn/index.php?option=com_content&view=article&id=4106%3Avit-hoa-trong-vn-bn-hanh-chinh&catid=2345%3Atham-kho&Itemid=4103&lang=vi&site=134 var eraValues = { narrow: ['TCN', 'SCN'], abbreviated: ['trước CN', 'sau CN'], wide: ['trước Công Nguyên', 'sau Công Nguyên'] }; var quarterValues = { narrow: ['1', '2', '3', '4'], abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'], wide: ['Quý 1', 'Quý 2', 'Quý 3', 'Quý 4'] }; var formattingQuarterValues = { narrow: ['1', '2', '3', '4'], abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'], // I notice many news outlet use this "quý II/2018" wide: ['quý I', 'quý II', 'quý III', 'quý IV'] }; // Note: in English, the names of days of the week and months are capitalized. // If you are making a new locale based on this one, check if the same is true for the language you're working on. // Generally, formatted dates should look like they are in the middle of a sentence, // e.g. in Spanish language the weekdays and months should be in the lowercase. var monthValues = { narrow: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], abbreviated: ['Thg 1', 'Thg 2', 'Thg 3', 'Thg 4', 'Thg 5', 'Thg 6', 'Thg 7', 'Thg 8', 'Thg 9', 'Thg 10', 'Thg 11', 'Thg 12'], wide: ['Tháng Một', 'Tháng Hai', 'Tháng Ba', 'Tháng Tư', 'Tháng Năm', 'Tháng Sáu', 'Tháng Bảy', 'Tháng Tám', 'Tháng Chín', 'Tháng Mười', 'Tháng Mười Một', 'Tháng Mười Hai'] }; // In Vietnamese date formatting, month number less than 10 expected to have leading zero var formattingMonthValues = { narrow: ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'], abbreviated: ['thg 1', 'thg 2', 'thg 3', 'thg 4', 'thg 5', 'thg 6', 'thg 7', 'thg 8', 'thg 9', 'thg 10', 'thg 11', 'thg 12'], wide: ['tháng 01', 'tháng 02', 'tháng 03', 'tháng 04', 'tháng 05', 'tháng 06', 'tháng 07', 'tháng 08', 'tháng 09', 'tháng 10', 'tháng 11', 'tháng 12'] }; var dayValues = { narrow: ['CN', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7'], short: ['CN', 'Th 2', 'Th 3', 'Th 4', 'Th 5', 'Th 6', 'Th 7'], abbreviated: ['CN', 'Thứ 2', 'Thứ 3', 'Thứ 4', 'Thứ 5', 'Thứ 6', 'Thứ 7'], wide: ['Chủ Nhật', 'Thứ Hai', 'Thứ Ba', 'Thứ Tư', 'Thứ Năm', 'Thứ Sáu', 'Thứ Bảy'] }; // Vietnamese are used to AM/PM borrowing from English, hence `narrow` and // `abbreviated` are just like English but I'm leaving the `wide` // format being localized with abbreviations found in some systems (SÁng / CHiều); // however, personally, I don't think `Chiều` sounds appropriate for `PM` var dayPeriodValues = { // narrow date period is extremely rare in Vietnamese // I used abbreviated form for noon, morning and afternoon // which are regconizable by Vietnamese, others cannot be any shorter narrow: { am: 'am', pm: 'pm', midnight: 'nửa đêm', noon: 'tr', morning: 'sg', afternoon: 'ch', evening: 'tối', night: 'đêm' }, abbreviated: { am: 'AM', pm: 'PM', midnight: 'nửa đêm', noon: 'trưa', morning: 'sáng', afternoon: 'chiều', evening: 'tối', night: 'đêm' }, wide: { am: 'SA', pm: 'CH', midnight: 'nửa đêm', noon: 'trưa', morning: 'sáng', afternoon: 'chiều', evening: 'tối', night: 'đêm' } }; var formattingDayPeriodValues = { narrow: { am: 'am', pm: 'pm', midnight: 'nửa đêm', noon: 'tr', morning: 'sg', afternoon: 'ch', evening: 'tối', night: 'đêm' }, abbreviated: { am: 'AM', pm: 'PM', midnight: 'nửa đêm', noon: 'trưa', morning: 'sáng', afternoon: 'chiều', evening: 'tối', night: 'đêm' }, wide: { am: 'SA', pm: 'CH', midnight: 'nửa đêm', noon: 'giữa trưa', morning: 'vào buổi sáng', afternoon: 'vào buổi chiều', evening: 'vào buổi tối', night: 'vào ban đêm' } }; var ordinalNumber = function ordinalNumber(dirtyNumber, options) { var number = Number(dirtyNumber); var unit = options === null || options === void 0 ? void 0 : options.unit; if (unit === 'quarter') { // many news outlets use "quý I"... switch (number) { case 1: return 'I'; case 2: return 'II'; case 3: return 'III'; case 4: return 'IV'; } } else if (unit === 'day') { // day of week in Vietnamese has ordinal number meaning, // so we should use them, else it'll sound weird switch (number) { case 1: return 'thứ 2'; // meaning 2nd day but it's the first day of the week :D case 2: return 'thứ 3'; // meaning 3rd day case 3: return 'thứ 4'; // meaning 4th day and so on case 4: return 'thứ 5'; case 5: return 'thứ 6'; case 6: return 'thứ 7'; case 7: return 'chủ nhật'; // meaning Sunday, there's no 8th day :D } } else if (unit === 'week') { if (number === 1) { return 'thứ nhất'; } else { return 'thứ ' + number; } } else if (unit === 'dayOfYear') { if (number === 1) { return 'đầu tiên'; } else { return 'thứ ' + number; } } // there are no different forms of ordinal numbers in Vietnamese return String(number); }; var localize = { ordinalNumber: ordinalNumber, era: (0, _index.default)({ values: eraValues, defaultWidth: 'wide' }), quarter: (0, _index.default)({ values: quarterValues, defaultWidth: 'wide', formattingValues: formattingQuarterValues, defaultFormattingWidth: 'wide', argumentCallback: function argumentCallback(quarter) { return quarter - 1; } }), month: (0, _index.default)({ values: monthValues, defaultWidth: 'wide', formattingValues: formattingMonthValues, defaultFormattingWidth: 'wide' }), day: (0, _index.default)({ values: dayValues, defaultWidth: 'wide' }), dayPeriod: (0, _index.default)({ values: dayPeriodValues, defaultWidth: 'wide', formattingValues: formattingDayPeriodValues, defaultFormattingWidth: 'wide' }) }; var _default = localize; exports.default = _default; module.exports = exports.default;