diff options
Diffstat (limited to 'date-fns/src/locale/ja/_lib')
-rw-r--r-- | date-fns/src/locale/ja/_lib/formatDistance/index.js | 116 | ||||
-rw-r--r-- | date-fns/src/locale/ja/_lib/formatLong/index.js | 41 | ||||
-rw-r--r-- | date-fns/src/locale/ja/_lib/formatRelative/index.js | 12 | ||||
-rw-r--r-- | date-fns/src/locale/ja/_lib/localize/index.js | 180 | ||||
-rw-r--r-- | date-fns/src/locale/ja/_lib/match/index.js | 122 |
5 files changed, 471 insertions, 0 deletions
diff --git a/date-fns/src/locale/ja/_lib/formatDistance/index.js b/date-fns/src/locale/ja/_lib/formatDistance/index.js new file mode 100644 index 0000000..e3f05e1 --- /dev/null +++ b/date-fns/src/locale/ja/_lib/formatDistance/index.js @@ -0,0 +1,116 @@ +var formatDistanceLocale = { + lessThanXSeconds: { + one: '1秒未満', + other: '{{count}}秒未満', + oneWithSuffix: '約1秒', + otherWithSuffix: '約{{count}}秒' + }, + + xSeconds: { + one: '1秒', + other: '{{count}}秒' + }, + + halfAMinute: '30秒', + + lessThanXMinutes: { + one: '1分未満', + other: '{{count}}分未満', + oneWithSuffix: '約1分', + otherWithSuffix: '約{{count}}分' + }, + + xMinutes: { + one: '1分', + other: '{{count}}分' + }, + + aboutXHours: { + one: '約1時間', + other: '約{{count}}時間' + }, + + xHours: { + one: '1時間', + other: '{{count}}時間' + }, + + xDays: { + one: '1日', + other: '{{count}}日' + }, + + aboutXWeeks: { + one: '約1週間', + other: '約{{count}}週間' + }, + + xWeeks: { + one: '1週間', + other: '{{count}}週間' + }, + + aboutXMonths: { + one: '約1か月', + other: '約{{count}}か月' + }, + + xMonths: { + one: '1か月', + other: '{{count}}か月' + }, + + aboutXYears: { + one: '約1年', + other: '約{{count}}年' + }, + + xYears: { + one: '1年', + other: '{{count}}年' + }, + + overXYears: { + one: '1年以上', + other: '{{count}}年以上' + }, + + almostXYears: { + one: '1年近く', + other: '{{count}}年近く' + } +} + +export default function formatDistance(token, count, options) { + options = options || {} + + var result + if (typeof formatDistanceLocale[token] === 'string') { + result = formatDistanceLocale[token] + } else if (count === 1) { + if (options.addSuffix && formatDistanceLocale[token].oneWithSuffix) { + result = formatDistanceLocale[token].oneWithSuffix + } else { + result = formatDistanceLocale[token].one + } + } else { + if (options.addSuffix && formatDistanceLocale[token].otherWithSuffix) { + result = formatDistanceLocale[token].otherWithSuffix.replace( + '{{count}}', + count + ) + } else { + result = formatDistanceLocale[token].other.replace('{{count}}', count) + } + } + + if (options.addSuffix) { + if (options.comparison > 0) { + return result + '後' + } else { + return result + '前' + } + } + + return result +} diff --git a/date-fns/src/locale/ja/_lib/formatLong/index.js b/date-fns/src/locale/ja/_lib/formatLong/index.js new file mode 100644 index 0000000..c1331de --- /dev/null +++ b/date-fns/src/locale/ja/_lib/formatLong/index.js @@ -0,0 +1,41 @@ +import buildFormatLongFn from '../../../_lib/buildFormatLongFn/index' + +var dateFormats = { + full: 'y年M月d日EEEE', + long: 'y年M月d日', + medium: 'y/MM/dd', + short: 'y/MM/dd' +} + +var timeFormats = { + full: 'H時mm分ss秒 zzzz', + long: 'H:mm:ss z', + medium: 'H:mm:ss', + short: 'H:mm' +} + +var dateTimeFormats = { + full: '{{date}} {{time}}', + long: '{{date}} {{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/ja/_lib/formatRelative/index.js b/date-fns/src/locale/ja/_lib/formatRelative/index.js new file mode 100644 index 0000000..38c57b3 --- /dev/null +++ b/date-fns/src/locale/ja/_lib/formatRelative/index.js @@ -0,0 +1,12 @@ +var formatRelativeLocale = { + lastWeek: '先週のeeeeのp', + yesterday: '昨日のp', + today: '今日のp', + tomorrow: '明日のp', + nextWeek: '翌週のeeeeのp', + other: 'P' +} + +export default function formatRelative(token, _date, _baseDate, _options) { + return formatRelativeLocale[token] +} diff --git a/date-fns/src/locale/ja/_lib/localize/index.js b/date-fns/src/locale/ja/_lib/localize/index.js new file mode 100644 index 0000000..165e97c --- /dev/null +++ b/date-fns/src/locale/ja/_lib/localize/index.js @@ -0,0 +1,180 @@ +import buildLocalizeFn from '../../../_lib/buildLocalizeFn/index' + +var eraValues = { + narrow: ['BC', 'AC'], + abbreviated: ['紀元前', '西暦'], + wide: ['紀元前', '西暦'], +} + +var quarterValues = { + narrow: ['1', '2', '3', '4'], + abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'], + wide: ['第1四半期', '第2四半期', '第3四半期', '第4四半期'], +} + +var monthValues = { + narrow: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], + abbreviated: [ + '1月', + '2月', + '3月', + '4月', + '5月', + '6月', + '7月', + '8月', + '9月', + '10月', + '11月', + '12月', + ], + wide: [ + '1月', + '2月', + '3月', + '4月', + '5月', + '6月', + '7月', + '8月', + '9月', + '10月', + '11月', + '12月', + ], +} + +var dayValues = { + narrow: ['日', '月', '火', '水', '木', '金', '土'], + short: ['日', '月', '火', '水', '木', '金', '土'], + abbreviated: ['日', '月', '火', '水', '木', '金', '土'], + wide: ['日曜日', '月曜日', '火曜日', '水曜日', '木曜日', '金曜日', '土曜日'], +} + +var dayPeriodValues = { + narrow: { + am: '午前', + pm: '午後', + midnight: '深夜', + noon: '正午', + morning: '朝', + afternoon: '午後', + evening: '夜', + night: '深夜', + }, + abbreviated: { + am: '午前', + pm: '午後', + midnight: '深夜', + noon: '正午', + morning: '朝', + afternoon: '午後', + evening: '夜', + night: '深夜', + }, + wide: { + am: '午前', + pm: '午後', + midnight: '深夜', + noon: '正午', + morning: '朝', + afternoon: '午後', + evening: '夜', + night: '深夜', + }, +} +var formattingDayPeriodValues = { + narrow: { + am: '午前', + pm: '午後', + midnight: '深夜', + noon: '正午', + morning: '朝', + afternoon: '午後', + evening: '夜', + night: '深夜', + }, + abbreviated: { + am: '午前', + pm: '午後', + midnight: '深夜', + noon: '正午', + morning: '朝', + afternoon: '午後', + evening: '夜', + night: '深夜', + }, + wide: { + am: '午前', + pm: '午後', + midnight: '深夜', + noon: '正午', + morning: '朝', + afternoon: '午後', + evening: '夜', + night: '深夜', + }, +} + +function ordinalNumber(dirtyNumber, dirtyOptions) { + var number = Number(dirtyNumber) + + // If ordinal numbers depend on context, for example, + // if they are different for different grammatical genders, + // use `options.unit`: + // + // var options = dirtyOptions || {} + // var unit = String(options.unit) + // + // where `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear', + // 'day', 'hour', 'minute', 'second' + + var options = dirtyOptions || {} + var unit = String(options.unit) + + if (unit === 'date') { + return number + '日' + } + + if (unit === 'year') { + return number + '年' + } + + return 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/ja/_lib/match/index.js b/date-fns/src/locale/ja/_lib/match/index.js new file mode 100644 index 0000000..0f14680 --- /dev/null +++ b/date-fns/src/locale/ja/_lib/match/index.js @@ -0,0 +1,122 @@ +import buildMatchPatternFn from '../../../_lib/buildMatchPatternFn/index' +import buildMatchFn from '../../../_lib/buildMatchFn/index' + +var matchOrdinalNumberPattern = /^第?\d+(日)?(年)?/i +var parseOrdinalNumberPattern = /\d+/i + +var matchEraPatterns = { + narrow: /^(B\.?C\.?|A\.?D\.?)/i, + abbreviated: /^(紀元[前後]|西暦)/i, + wide: /^(紀元[前後]|西暦)/i, +} +var parseEraPatterns = { + narrow: [/^B/i, /^A/i], + any: [/^(紀元前)/i, /^(西暦|紀元後)/i], +} + +var matchQuarterPatterns = { + narrow: /^[1234]/i, + abbreviated: /^Q[1234]/i, + wide: /^第[1234一二三四1234]四半期/i, +} +var parseQuarterPatterns = { + any: [/(1|一|1)/i, /(2|二|2)/i, /(3|三|3)/i, /(4|四|4)/i], +} + +var matchMonthPatterns = { + narrow: /^([123456789]|1[012])/, + abbreviated: /^([123456789]|1[012])月/i, + wide: /^([123456789]|1[012])月/i, +} +var parseMonthPatterns = { + any: [ + /^1\D/, + /^2/, + /^3/, + /^4/, + /^5/, + /^6/, + /^7/, + /^8/, + /^9/, + /^10/, + /^11/, + /^12/, + ], +} + +var matchDayPatterns = { + narrow: /^[日月火水木金土]/, + short: /^[日月火水木金土]/, + abbreviated: /^[日月火水木金土]/, + wide: /^[日月火水木金土]曜日/, +} +var parseDayPatterns = { + any: [/^日/, /^月/, /^火/, /^水/, /^木/, /^金/, /^土/], +} + +var matchDayPeriodPatterns = { + any: /^(AM|PM|午前|午後|正午|深夜|真夜中|夜|朝)/i, +} +var parseDayPeriodPatterns = { + any: { + am: /^(A|午前)/i, + pm: /^(P|午後)/i, + midnight: /^深夜|真夜中/i, + noon: /^正午/i, + morning: /^朝/i, + afternoon: /^午後/i, + evening: /^夜/i, + night: /^深夜/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 |