diff options
Diffstat (limited to 'date-fns/src/locale/ms/_lib')
-rw-r--r-- | date-fns/src/locale/ms/_lib/formatDistance/index.js | 101 | ||||
-rw-r--r-- | date-fns/src/locale/ms/_lib/formatLong/index.js | 41 | ||||
-rw-r--r-- | date-fns/src/locale/ms/_lib/formatRelative/index.js | 12 | ||||
-rw-r--r-- | date-fns/src/locale/ms/_lib/localize/index.js | 169 | ||||
-rw-r--r-- | date-fns/src/locale/ms/_lib/match/index.js | 137 |
5 files changed, 460 insertions, 0 deletions
diff --git a/date-fns/src/locale/ms/_lib/formatDistance/index.js b/date-fns/src/locale/ms/_lib/formatDistance/index.js new file mode 100644 index 0000000..f3e90e3 --- /dev/null +++ b/date-fns/src/locale/ms/_lib/formatDistance/index.js @@ -0,0 +1,101 @@ +var formatDistanceLocale = { + lessThanXSeconds: { + one: 'kurang dari 1 saat', + other: 'kurang dari {{count}} saat' + }, + + xSeconds: { + one: '1 saat', + other: '{{count}} saat' + }, + + halfAMinute: 'setengah minit', + + lessThanXMinutes: { + one: 'kurang dari 1 minit', + other: 'kurang dari {{count}} minit' + }, + + xMinutes: { + one: '1 minit', + other: '{{count}} minit' + }, + + aboutXHours: { + one: 'sekitar 1 jam', + other: 'sekitar {{count}} jam' + }, + + xHours: { + one: '1 jam', + other: '{{count}} jam' + }, + + xDays: { + one: '1 hari', + other: '{{count}} hari' + }, + + aboutXWeeks: { + one: 'sekitar 1 minggu', + other: 'sekitar {{count}} minggu' + }, + + xWeeks: { + one: '1 minggu', + other: '{{count}} minggu' + }, + + aboutXMonths: { + one: 'sekitar 1 bulan', + other: 'sekitar {{count}} bulan' + }, + + xMonths: { + one: '1 bulan', + other: '{{count}} bulan' + }, + + aboutXYears: { + one: 'sekitar 1 tahun', + other: 'sekitar {{count}} tahun' + }, + + xYears: { + one: '1 tahun', + other: '{{count}} tahun' + }, + + overXYears: { + one: 'lebih dari 1 tahun', + other: 'lebih dari {{count}} tahun' + }, + + almostXYears: { + one: 'hampir 1 tahun', + other: 'hampir {{count}} tahun' + } +} + +export default function formatDistance(token, count, options) { + options = options || {} + + var result + if (typeof formatDistanceLocale[token] === 'string') { + result = formatDistanceLocale[token] + } else if (count === 1) { + result = formatDistanceLocale[token].one + } else { + result = formatDistanceLocale[token].other.replace('{{count}}', count) + } + + if (options.addSuffix) { + if (options.comparison > 0) { + return 'dalam masa ' + result + } else { + return result + ' yang lalu' + } + } + + return result +} diff --git a/date-fns/src/locale/ms/_lib/formatLong/index.js b/date-fns/src/locale/ms/_lib/formatLong/index.js new file mode 100644 index 0000000..d8ea107 --- /dev/null +++ b/date-fns/src/locale/ms/_lib/formatLong/index.js @@ -0,0 +1,41 @@ +import buildFormatLongFn from '../../../_lib/buildFormatLongFn/index' + +var dateFormats = { + full: 'EEEE, d MMMM yyyy', + long: 'd MMMM yyyy', + medium: 'd MMM yyyy', + short: 'd/M/yyyy' +} + +var timeFormats = { + full: 'HH.mm.ss', + long: 'HH.mm.ss', + medium: 'HH.mm', + short: 'HH.mm' +} + +var dateTimeFormats = { + full: "{{date}} 'pukul' {{time}}", + long: "{{date}} 'pukul' {{time}}", + medium: '{{date}}, {{time}}', + short: '{{date}}, {{time}}' +} + +var formatLong = { + date: buildFormatLongFn({ + formats: dateFormats, + defaultWidth: 'full' + }), + + time: buildFormatLongFn({ + formats: timeFormats, + defaultWidth: 'full' + }), + + dateTime: buildFormatLongFn({ + formats: dateTimeFormats, + defaultWidth: 'full' + }) +} + +export default formatLong diff --git a/date-fns/src/locale/ms/_lib/formatRelative/index.js b/date-fns/src/locale/ms/_lib/formatRelative/index.js new file mode 100644 index 0000000..60b6541 --- /dev/null +++ b/date-fns/src/locale/ms/_lib/formatRelative/index.js @@ -0,0 +1,12 @@ +var formatRelativeLocale = { + lastWeek: "eeee 'lepas pada jam' p", + yesterday: "'Semalam pada jam' p", + today: "'Hari ini pada jam' p", + tomorrow: "'Esok pada jam' p", + nextWeek: "eeee 'pada jam' p", + other: 'P' +} + +export default function formatRelative(token, _date, _baseDate, _options) { + return formatRelativeLocale[token] +} diff --git a/date-fns/src/locale/ms/_lib/localize/index.js b/date-fns/src/locale/ms/_lib/localize/index.js new file mode 100644 index 0000000..038457a --- /dev/null +++ b/date-fns/src/locale/ms/_lib/localize/index.js @@ -0,0 +1,169 @@ +import buildLocalizeFn from '../../../_lib/buildLocalizeFn/index' + +// Most data for localization are taken from this page +// https://www.unicode.org/cldr/charts/32/summary/ms.html +var eraValues = { + narrow: ['SM', 'M'], + abbreviated: ['SM', 'M'], + wide: ['Sebelum Masihi', 'Masihi'] +} + +var quarterValues = { + narrow: ['1', '2', '3', '4'], + abbreviated: ['S1', 'S2', 'S3', 'S4'], + wide: ['Suku pertama', 'Suku kedua', 'Suku ketiga', 'Suku keempat'] +} + +// Note: in Malay, 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: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'O', 'S', 'O', 'N', 'D'], + abbreviated: [ + 'Jan', + 'Feb', + 'Mac', + 'Apr', + 'Mei', + 'Jun', + 'Jul', + 'Ogo', + 'Sep', + 'Okt', + 'Nov', + 'Dis' + ], + wide: [ + 'Januari', + 'Februari', + 'Mac', + 'April', + 'Mei', + 'Jun', + 'Julai', + 'Ogos', + 'September', + 'Oktober', + 'November', + 'Disember' + ] +} + +var dayValues = { + narrow: ['A', 'I', 'S', 'R', 'K', 'J', 'S'], + short: ['Ahd', 'Isn', 'Sel', 'Rab', 'Kha', 'Jum', 'Sab'], + abbreviated: ['Ahd', 'Isn', 'Sel', 'Rab', 'Kha', 'Jum', 'Sab'], + wide: ['Ahad', 'Isnin', 'Selasa', 'Rabu', 'Khamis', 'Jumaat', 'Sabtu'] +} + +var dayPeriodValues = { + narrow: { + am: 'am', + pm: 'pm', + midnight: 'tgh malam', + noon: 'tgh hari', + morning: 'pagi', + afternoon: 'tengah hari', + evening: 'petang', + night: 'malam' + }, + abbreviated: { + am: 'AM', + pm: 'PM', + midnight: 'tengah malam', + noon: 'tengah hari', + morning: 'pagi', + afternoon: 'tengah hari', + evening: 'petang', + night: 'malam' + }, + wide: { + am: 'a.m.', + pm: 'p.m.', + midnight: 'tengah malam', + noon: 'tengah hari', + morning: 'pagi', + afternoon: 'tengah hari', + evening: 'petang', + night: 'malam' + } +} +var formattingDayPeriodValues = { + narrow: { + am: 'am', + pm: 'pm', + midnight: 'tengah malam', + noon: 'tengah hari', + morning: 'pagi', + afternoon: 'tengah hari', + evening: 'petang', + night: 'malam' + }, + abbreviated: { + am: 'AM', + pm: 'PM', + midnight: 'tengah malam', + noon: 'tengah hari', + morning: 'pagi', + afternoon: 'tengah hari', + evening: 'petang', + night: 'malam' + }, + wide: { + am: 'a.m.', + pm: 'p.m.', + midnight: 'tengah malam', + noon: 'tengah hari', + morning: 'pagi', + afternoon: 'tengah hari', + evening: 'petang', + night: 'malam' + } +} + +function ordinalNumber(dirtyNumber, _dirtyOptions) { + var number = Number(dirtyNumber) + + // Can't use "pertama", "kedua" because can't be parsed + switch (number) { + default: + return 'ke-' + number + } +} + +var localize = { + ordinalNumber: ordinalNumber, + + era: buildLocalizeFn({ + values: eraValues, + defaultWidth: 'wide' + }), + + quarter: buildLocalizeFn({ + values: quarterValues, + defaultWidth: 'wide', + argumentCallback: function(quarter) { + return Number(quarter) - 1 + } + }), + + month: buildLocalizeFn({ + values: monthValues, + defaultWidth: 'wide' + }), + + day: buildLocalizeFn({ + values: dayValues, + defaultWidth: 'wide' + }), + + dayPeriod: buildLocalizeFn({ + values: dayPeriodValues, + defaultWidth: 'wide', + formattingValues: formattingDayPeriodValues, + defaultFormattingWidth: 'wide' + }) +} + +export default localize diff --git a/date-fns/src/locale/ms/_lib/match/index.js b/date-fns/src/locale/ms/_lib/match/index.js new file mode 100644 index 0000000..650e1de --- /dev/null +++ b/date-fns/src/locale/ms/_lib/match/index.js @@ -0,0 +1,137 @@ +import buildMatchFn from '../../../_lib/buildMatchFn/index' +import buildMatchPatternFn from '../../../_lib/buildMatchPatternFn/index' + +var matchOrdinalNumberPattern = /^ke-(\d+)?/i +var parseOrdinalNumberPattern = /petama|\d+/i + +var matchEraPatterns = { + narrow: /^(sm|m)/i, + abbreviated: /^(s\.?\s?m\.?|m\.?)/i, + wide: /^(sebelum masihi|masihi)/i +} +var parseEraPatterns = { + any: [/^s/i, /^(m)/i] +} + +var matchQuarterPatterns = { + narrow: /^[1234]/i, + abbreviated: /^S[1234]/i, + wide: /Suku (pertama|kedua|ketiga|keempat)/i +} +var parseQuarterPatterns = { + any: [/pertama|1/i, /kedua|2/i, /ketiga|3/i, /keempat|4/i] +} + +var matchMonthPatterns = { + narrow: /^[jfmasond]/i, + abbreviated: /^(jan|feb|mac|apr|mei|jun|jul|ogo|sep|okt|nov|dis)/i, + wide: /^(januari|februari|mac|april|mei|jun|julai|ogos|september|oktober|november|disember)/i +} +var parseMonthPatterns = { + narrow: [ + /^j/i, + /^f/i, + /^m/i, + /^a/i, + /^m/i, + /^j/i, + /^j/i, + /^o/i, + /^s/i, + /^o/i, + /^n/i, + /^d/i + ], + any: [ + /^ja/i, + /^f/i, + /^ma/i, + /^ap/i, + /^me/i, + /^jun/i, + /^jul/i, + /^og/i, + /^s/i, + /^ok/i, + /^n/i, + /^d/i + ] +} + +var matchDayPatterns = { + narrow: /^[aisrkj]/i, + short: /^(ahd|isn|sel|rab|kha|jum|sab)/i, + abbreviated: /^(ahd|isn|sel|rab|kha|jum|sab)/i, + wide: /^(ahad|isnin|selasa|rabu|khamis|jumaat|sabtu)/i +} +var parseDayPatterns = { + narrow: [/^a/i, /^i/i, /^s/i, /^r/i, /^k/i, /^j/i, /^s/i], + any: [/^a/i, /^i/i, /^se/i, /^r/i, /^k/i, /^j/i, /^sa/i] +} + +var matchDayPeriodPatterns = { + narrow: /^(am|pm|tengah malam|tengah hari|pagi|petang|malam)/i, + any: /^([ap]\.?\s?m\.?|tengah malam|tengah hari|pagi|petang|malam)/i +} +var parseDayPeriodPatterns = { + any: { + am: /^a/i, + pm: /^pm/i, + midnight: /^tengah m/i, + noon: /^tengah h/i, + morning: /pa/i, + afternoon: /tengah h/i, + evening: /pe/i, + night: /m/i + } +} + +var match = { + ordinalNumber: buildMatchPatternFn({ + matchPattern: matchOrdinalNumberPattern, + parsePattern: parseOrdinalNumberPattern, + valueCallback: function(value) { + return parseInt(value, 10) + } + }), + + era: buildMatchFn({ + matchPatterns: matchEraPatterns, + defaultMatchWidth: 'wide', + parsePatterns: parseEraPatterns, + defaultParseWidth: 'any' + }), + + quarter: buildMatchFn({ + matchPatterns: matchQuarterPatterns, + defaultMatchWidth: 'wide', + parsePatterns: parseQuarterPatterns, + defaultParseWidth: 'any', + valueCallback: function(index) { + return index + 1 + } + }), + + month: buildMatchFn({ + matchPatterns: matchMonthPatterns, + defaultMatchWidth: 'wide', + parsePatterns: parseMonthPatterns, + defaultParseWidth: 'any' + }), + + day: buildMatchFn({ + matchPatterns: matchDayPatterns, + defaultMatchWidth: 'wide', + parsePatterns: parseDayPatterns, + defaultParseWidth: 'any' + }), + + dayPeriod: buildMatchFn({ + matchPatterns: matchDayPeriodPatterns, + defaultMatchWidth: 'any', + parsePatterns: parseDayPeriodPatterns, + defaultParseWidth: 'any' + }) +} + +export default match |