-
-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
13 changed files
with
269 additions
and
268 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
import buildTokensRegExp from '../buildTokensRegExp/index.js' | ||
|
||
export default function buildBuildLocale (localeBase) { | ||
return function (localeExtension) { | ||
localeExtension = localeExtension || {} | ||
|
||
var locale = { | ||
localize: localeExtension.localize || localeBase.localize, | ||
localizeDistanceInWords: localeExtension.localizeDistanceInWords || localeBase.localizeDistanceInWords, | ||
formatters: Object.assign({}, localeBase.formatters, localeExtension.formatters || {}), | ||
parsers: Object.assign({}, localeBase.parsers, localeExtension.parsers || {}), | ||
units: Object.assign({}, localeBase.units, localeExtension.units || {}), | ||
options: Object.assign({}, localeBase.options, localeExtension.options) | ||
} | ||
|
||
locale.formattingTokensRegExp = buildTokensRegExp(locale.formatters) | ||
locale.parsingTokensRegExp = buildTokensRegExp(locale.parsers) | ||
|
||
return locale | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,70 @@ | ||
import '../localize/index.js' | ||
|
||
export default function buildFormatters () { | ||
var formatters = { | ||
// Month: Jan, Feb, ..., Dec | ||
'MMM': function (date) { | ||
return localize['month', 'short', date.getUTCDay()] | ||
}, | ||
|
||
// Month: January, February, ..., December | ||
'MMMM': function (date) { | ||
return localize['month', 'long', date.getUTCDay()] | ||
}, | ||
|
||
// Day of week: Su, Mo, ..., Sa | ||
'dd': function (date) { | ||
return localize['weekday', 'narrow', date.getUTCDay()] | ||
}, | ||
|
||
// Day of week: Sun, Mon, ..., Sat | ||
'ddd': function (date) { | ||
return localize['weekday', 'short', date.getUTCDay()] | ||
}, | ||
|
||
// Day of week: Sunday, Monday, ..., Saturday | ||
'dddd': function (date) { | ||
return localize['weekday', 'long', date.getUTCDay()] | ||
}, | ||
|
||
// AM, PM | ||
'A': function (date) { | ||
return localize['timeOfDay', 'uppercase', date.getUTCHours()] | ||
}, | ||
|
||
// am, pm | ||
'a': function (date) { | ||
return localize['timeOfDay', 'lowercase', date.getUTCHours() | ||
}, | ||
|
||
// a.m., p.m. | ||
'aa': function (date) { | ||
return localize['timeOfDay', 'long', date.getUTCHours() | ||
} | ||
} | ||
|
||
// Generate ordinal version of formatters: M -> Mo, D -> Do, etc. | ||
var ordinalFormatters = ['M', 'D', 'DDD', 'd', 'Q', 'W'] | ||
ordinalFormatters.forEach(function (formatterToken) { | ||
formatters[formatterToken + 'o'] = function (date, formatters) { | ||
return ordinal(formatters[formatterToken](date)) | ||
} | ||
}) | ||
|
||
return formatters | ||
} | ||
|
||
function ordinal (number) { | ||
var rem100 = number % 100 | ||
if (rem100 > 20 || rem100 < 10) { | ||
switch (rem100 % 10) { | ||
case 1: | ||
return number + 'st' | ||
case 2: | ||
return number + 'nd' | ||
case 3: | ||
return number + 'rd' | ||
} | ||
} | ||
return number + 'th' | ||
} |
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,119 @@ | ||
import localize from '../localize/index.js' | ||
import buildMatchRegExpFromArray from '../../../_lib/buildMatchRegExpFromArray/index.js' | ||
import buildParseFnFromArray from '../../../_lib/buildParseFnFromArray/index.js' | ||
import parseDecimal from '../../../_lib/parseDecimal/index.js' | ||
|
||
export default function buildParseLocale () { | ||
var monthsShort = localize('months', 'short') | ||
var monthsLong = localize('months', 'long') | ||
var weekdaysNarrow = localize('weekdays', 'narrow') | ||
var weekdaysShort = localize('weekdays', 'short') | ||
var weekdaysLong = localize('weekdays', 'long') | ||
var timesOfDayUppercase = localize('timesOfDay', 'uppercase') | ||
var timesOfDayLowercase = localize('timesOfDay', 'lowercase') | ||
var timesOfDayLong = localize('timesOfDay', 'long') | ||
|
||
var patternOrdinal = /^(\d+)(th|st|nd|rd)/ | ||
|
||
return { | ||
// Month: Jan, Feb, ..., Dec | ||
'MMM': { | ||
unit: 'month', | ||
match: buildMatchRegExpFromArray(monthsShort), | ||
parse: buildParseFnFromArray(monthsShort) | ||
}, | ||
|
||
// Month: January, February, ..., December | ||
'MMMM': { | ||
unit: 'month', | ||
match: buildMatchRegExpFromArray(monthsLong), | ||
parse: buildParseFnFromArray(monthsLong) | ||
}, | ||
|
||
// Day of week: Su, Mo, ..., Sa | ||
'dd': { | ||
unit: 'day', | ||
match: buildMatchRegExpFromArray(weekdaysNarrow), | ||
parse: buildParseFnFromArray(weekdaysNarrow) | ||
}, | ||
|
||
// Day of week: Sun, Mon, ..., Sat | ||
'ddd': { | ||
unit: 'day', | ||
match: buildMatchRegExpFromArray(weekdaysShort), | ||
parse: buildParseFnFromArray(weekdaysShort) | ||
}, | ||
|
||
// Day of week: Sunday, Monday, ..., Saturday | ||
'dddd': { | ||
unit: 'day', | ||
match: buildMatchRegExpFromArray(weekdaysLong), | ||
parse: buildParseFnFromArray(weekdaysLong) | ||
}, | ||
|
||
// AM, PM | ||
'A': { | ||
unit: 'timeOfDay', | ||
match: buildMatchRegExpFromArray(timesOfDayUppercase), | ||
parse: buildParseFnFromArray(timesOfDayUppercase) | ||
}, | ||
|
||
// am, pm | ||
'a': { | ||
unit: 'timeOfDay', | ||
match: buildMatchRegExpFromArray(timesOfDayLowercase), | ||
parse: buildParseFnFromArray(timesOfDayLowercase) | ||
}, | ||
|
||
// a.m., p.m. | ||
'aa': { | ||
unit: 'timeOfDay', | ||
match: buildMatchRegExpFromArray(timesOfDayLong), | ||
parse: buildParseFnFromArray(timesOfDayLong) | ||
}, | ||
|
||
// Ordinal quarter | ||
'Qo': { | ||
unit: 'quarter', | ||
match: patternOrdinal, | ||
parse: parseDecimal | ||
}, | ||
|
||
// Ordinal month | ||
'Mo': { | ||
unit: 'month', | ||
match: patternOrdinal, | ||
parse: function (matchResult) { | ||
return parseDecimal(matchResult) - 1 | ||
} | ||
}, | ||
|
||
// Ordinal ISO week | ||
'Wo': { | ||
unit: 'isoWeek', | ||
match: patternOrdinal, | ||
parse: parseDecimal | ||
}, | ||
|
||
// Ordinal day of week | ||
'do': { | ||
unit: 'day', | ||
match: patternOrdinal, | ||
parse: parseDecimal | ||
}, | ||
|
||
// Ordinal day of month | ||
'Do': { | ||
unit: 'date', | ||
match: patternOrdinal, | ||
parse: parseDecimal | ||
}, | ||
|
||
// Ordinal day of year | ||
'DDDo': { | ||
unit: 'dayOfYear', | ||
match: patternOrdinal, | ||
parse: parseDecimal | ||
} | ||
} | ||
} |
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
export default function buildUnits () { | ||
return { | ||
// a.m., p.m. | ||
timeOfDay: { | ||
priority: 65, | ||
set: function (date, value) { | ||
var hours = date.getUTCHours() | ||
var isAM = value === 0 | ||
|
||
if (isAM) { | ||
if (hours === 12) { | ||
date.setUTCHours(0) | ||
} | ||
} else { | ||
if (hours !== 12) { | ||
date.setUTCHours(12 + hours) | ||
} | ||
} | ||
|
||
return date | ||
} | ||
} | ||
} | ||
} |
35 changes: 17 additions & 18 deletions
35
src/locale/en-US/localize/index.js → src/locale/en-US/_lib/localize/index.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,41 +1,40 @@ | ||
var locale = { | ||
weekday: { | ||
weekdays: { | ||
narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], | ||
short: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], | ||
long: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'] | ||
}, | ||
|
||
era: { | ||
eras: { | ||
narrow: ['B', 'A'], | ||
short: ['BC', 'AD'], | ||
long: ['Before Christ', 'Anno Domini'] | ||
}, | ||
|
||
month: { | ||
months: { | ||
narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], | ||
short: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], | ||
long: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] | ||
} | ||
|
||
timeOfDay: { | ||
timesOfDay: { | ||
uppercase: ['AM', 'PM'], | ||
lowercase: ['am', 'pm'], | ||
long: ['a.m.', 'p.m.'] | ||
} | ||
} | ||
|
||
const locale = { | ||
blank: 'Aucune date sélectionnée', | ||
headerFormat: 'dddd, D MMM', | ||
locale: require('date-fns/locale/fr'), // You need to pass in the date-fns locale for the language you want (unless it's EN) | ||
todayLabel: { | ||
long: "Aujourd'hui", | ||
short: 'Auj.', | ||
}, | ||
weekdays: ['Dim', 'Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam'], | ||
weekStartsOn: 1, // Start the week on Monday | ||
}; | ||
|
||
export default function localize (token, payload, options) { | ||
|
||
export default function localize (token, type, payload) { | ||
if (token === 'weekday') { | ||
return locale.weekdays[type][payload] | ||
} else if (token === 'era') { | ||
return locale.eras[type][payload] | ||
} else if (token === 'month') { | ||
return locale.months[type][payload] | ||
} else if (token === 'timeOfDay') { | ||
var index = (payload / 12) >= 1 ? 1 : 0 | ||
return locale.timesOfDay[type][index] | ||
} else { | ||
return locale[token][type] | ||
} | ||
} |
File renamed without changes.
File renamed without changes.
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.