Skip to content

Commit

Permalink
Add de-AT locale (#2362)
Browse files Browse the repository at this point in the history
Added Austrian German (`de-AT`) locale.
  • Loading branch information
cstenglein committed Apr 14, 2021
1 parent 0824146 commit a7b49d8
Show file tree
Hide file tree
Showing 9 changed files with 634 additions and 23 deletions.
172 changes: 172 additions & 0 deletions src/locale/de-AT/_lib/localize/index.js
@@ -0,0 +1,172 @@
import buildLocalizeFn from '../../../_lib/buildLocalizeFn/index'

var eraValues = {
narrow: ['v.Chr.', 'n.Chr.'],
abbreviated: ['v.Chr.', 'n.Chr.'],
wide: ['vor Christus', 'nach Christus'],
}

var quarterValues = {
narrow: ['1', '2', '3', '4'],
abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],
wide: ['1. Quartal', '2. Quartal', '3. Quartal', '4. Quartal'],
}

// Note: in German, 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', 'A', 'S', 'O', 'N', 'D'],
abbreviated: [
'Jän',
'Feb',
'Mär',
'Apr',
'Mai',
'Jun',
'Jul',
'Aug',
'Sep',
'Okt',
'Nov',
'Dez',
],
wide: [
'Jänner',
'Februar',
'März',
'April',
'Mai',
'Juni',
'Juli',
'August',
'September',
'Oktober',
'November',
'Dezember',
],
}

var dayValues = {
narrow: ['S', 'M', 'D', 'M', 'D', 'F', 'S'],
short: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'],
abbreviated: ['So.', 'Mo.', 'Di.', 'Mi.', 'Do.', 'Fr.', 'Sa.'],
wide: [
'Sonntag',
'Montag',
'Dienstag',
'Mittwoch',
'Donnerstag',
'Freitag',
'Samstag',
],
}

// https://www.unicode.org/cldr/charts/32/summary/de.html#1881
var dayPeriodValues = {
narrow: {
am: 'vm.',
pm: 'nm.',
midnight: 'Mitternacht',
noon: 'Mittag',
morning: 'Morgen',
afternoon: 'Nachm.',
evening: 'Abend',
night: 'Nacht',
},
abbreviated: {
am: 'vorm.',
pm: 'nachm.',
midnight: 'Mitternacht',
noon: 'Mittag',
morning: 'Morgen',
afternoon: 'Nachmittag',
evening: 'Abend',
night: 'Nacht',
},
wide: {
am: 'vormittags',
pm: 'nachmittags',
midnight: 'Mitternacht',
noon: 'Mittag',
morning: 'Morgen',
afternoon: 'Nachmittag',
evening: 'Abend',
night: 'Nacht',
},
}
var formattingDayPeriodValues = {
narrow: {
am: 'vm.',
pm: 'nm.',
midnight: 'Mitternacht',
noon: 'Mittag',
morning: 'morgens',
afternoon: 'nachm.',
evening: 'abends',
night: 'nachts',
},
abbreviated: {
am: 'vorm.',
pm: 'nachm.',
midnight: 'Mitternacht',
noon: 'Mittag',
morning: 'morgens',
afternoon: 'nachmittags',
evening: 'abends',
night: 'nachts',
},
wide: {
am: 'vormittags',
pm: 'nachmittags',
midnight: 'Mitternacht',
noon: 'Mittag',
morning: 'morgens',
afternoon: 'nachmittags',
evening: 'abends',
night: 'nachts',
},
}

function ordinalNumber(dirtyNumber, _dirtyOptions) {
var number = Number(dirtyNumber)

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
4 changes: 4 additions & 0 deletions src/locale/de-AT/index.d.ts
@@ -0,0 +1,4 @@
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.

import { deAT } from 'date-fns/locale'
export default deAT
29 changes: 29 additions & 0 deletions src/locale/de-AT/index.js
@@ -0,0 +1,29 @@
import formatDistance from '../de/_lib/formatDistance/index'
import formatLong from '../de/_lib/formatLong/index'
import formatRelative from '../de/_lib/formatRelative/index'
import match from '../de/_lib/match/index'
// difference to 'de' locale
import localize from './_lib/localize/index'

/**
* @type {Locale}
* @category Locales
* @summary German locale (Austria).
* @language German
* @iso-639-2 deu
* @author Christoph Tobias Stenglein [@cstenglein]{@link https://github.com/cstenglein}
*/
var locale = {
code: 'de-AT',
formatDistance: formatDistance,
formatLong: formatLong,
formatRelative: formatRelative,
localize: localize,
match: match,
options: {
weekStartsOn: 1 /* Monday */,
firstWeekContainsDate: 4,
},
}

export default locale
35 changes: 35 additions & 0 deletions src/locale/de-AT/index.js.flow
@@ -0,0 +1,35 @@
// @flow
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.

export type Locale = {
code?: string,
formatDistance?: (...args: Array<any>) => any,
formatRelative?: (...args: Array<any>) => any,
localize?: {
ordinalNumber: (...args: Array<any>) => any,
era: (...args: Array<any>) => any,
quarter: (...args: Array<any>) => any,
month: (...args: Array<any>) => any,
day: (...args: Array<any>) => any,
dayPeriod: (...args: Array<any>) => any,
},
formatLong?: {
date: (...args: Array<any>) => any,
time: (...args: Array<any>) => any,
dateTime: (...args: Array<any>) => any,
},
match?: {
ordinalNumber: (...args: Array<any>) => any,
era: (...args: Array<any>) => any,
quarter: (...args: Array<any>) => any,
month: (...args: Array<any>) => any,
day: (...args: Array<any>) => any,
dayPeriod: (...args: Array<any>) => any,
},
options?: {
weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6,
firstWeekContainsDate?: 1 | 2 | 3 | 4 | 5 | 6 | 7,
},
}

declare module.exports: Locale

0 comments on commit a7b49d8

Please sign in to comment.