Skip to content

Commit ad58626

Browse files
fix: add support for arguments in translations
1 parent d2b4b33 commit ad58626

File tree

7 files changed

+41
-33
lines changed

7 files changed

+41
-33
lines changed

src/Date/inputUtils.ts

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -55,22 +55,26 @@ export default function useDateInput({
5555
let errors =
5656
validStart && validEnd
5757
? [
58-
`${getTranslation(locale, 'mustBeBetween')} ${formatter.format(
59-
validStart
60-
)} - ${formatter.format(validEnd)}`,
58+
`${getTranslation(
59+
locale,
60+
'mustBeBetween',
61+
() => 'mustBeBetween'
62+
)(formatter.format(validStart), formatter.format(validEnd))}`,
6163
]
6264
: [
6365
validStart
64-
? `${getTranslation(
66+
? getTranslation(
6567
locale,
66-
'mustBeHigherThan'
67-
)} ${formatter.format(validStart)}`
68+
'mustBeHigherThan',
69+
() => 'mustBeHigherThan'
70+
)(formatter.format(validStart))
6871
: '',
6972
validEnd
70-
? `${getTranslation(
73+
? getTranslation(
7174
locale,
72-
'mustBeLowerThan'
73-
)} ${formatter.format(validEnd)}`
75+
'mustBeLowerThan',
76+
() => 'mustBeLowerThan'
77+
)(formatter.format(validEnd))
7478
: '',
7579
]
7680
setError(errors.filter((n) => n).join(' '))

src/translations/en.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,12 @@ const en: TranslationsType = {
55
selectSingle: 'Select date',
66
selectMultiple: 'Select dates',
77
selectRange: 'Select period',
8-
notAccordingToDateFormat: (inputFormat: string) =>
8+
notAccordingToDateFormat: (inputFormat) =>
99
`Date format must be ${inputFormat}`,
10-
mustBeHigherThan: 'Must be later then',
11-
mustBeLowerThan: 'Must be earlier then',
12-
mustBeBetween: 'Must be between',
10+
mustBeHigherThan: (date) => `Must be later then ${date}`,
11+
mustBeLowerThan: (date) => `Must be earlier then ${date}`,
12+
mustBeBetween: (startDate, endDate) =>
13+
`Must be between ${startDate} - ${endDate}`,
1314
dateIsDisabled: 'Day is not allowed',
1415
previous: 'Previous',
1516
next: 'Next',

src/translations/enGB.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,12 @@ const enGB: TranslationsType = {
55
selectSingle: 'Select date',
66
selectMultiple: 'Select dates',
77
selectRange: 'Select period',
8-
notAccordingToDateFormat: (inputFormat: string) =>
8+
notAccordingToDateFormat: (inputFormat) =>
99
`Date format must be ${inputFormat}`,
10-
mustBeHigherThan: 'Must be later then',
11-
mustBeLowerThan: 'Must be earlier then',
12-
mustBeBetween: 'Must be between',
10+
mustBeHigherThan: (date) => `Must be later then ${date}`,
11+
mustBeLowerThan: (date) => `Must be earlier then ${date}`,
12+
mustBeBetween: (startDate, endDate) =>
13+
`Must be between ${startDate} - ${endDate}`,
1314
dateIsDisabled: 'Day is not allowed',
1415
previous: 'Previous',
1516
next: 'Next',

src/translations/nl.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,12 @@ const nl: TranslationsType = {
55
selectSingle: 'Selecteer datum',
66
selectMultiple: 'Selecteer datums',
77
selectRange: 'Selecteer periode',
8-
notAccordingToDateFormat: (inputFormat: string) =>
8+
notAccordingToDateFormat: (inputFormat) =>
99
`Datumformaat moet ${inputFormat} zijn`,
10-
mustBeHigherThan: 'Moet later dan',
11-
mustBeLowerThan: 'Moet eerder dan',
12-
mustBeBetween: 'Moet tussen',
10+
mustBeHigherThan: (date) => `Moet later dan ${date}`,
11+
mustBeLowerThan: (date) => `Moet eerder dan ${date}`,
12+
mustBeBetween: (startDate, endDate) =>
13+
`Moet tussen ${startDate} - ${endDate}`,
1314
dateIsDisabled: 'Deze dag mag niet',
1415
previous: 'Vorige',
1516
next: 'Volgende',

src/translations/pl.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@ const pl: TranslationsType = {
55
selectSingle: 'Wybierz datę',
66
selectMultiple: 'Wybierz daty',
77
selectRange: 'Wybierz zakres',
8-
notAccordingToDateFormat: (inputFormat: string) =>
8+
notAccordingToDateFormat: (inputFormat) =>
99
`Data musi mieć format ${inputFormat}`,
10-
mustBeHigherThan: 'Nie wcześniej niż',
11-
mustBeLowerThan: 'Nie później niż',
12-
mustBeBetween: 'Pomiędzy',
10+
mustBeHigherThan: (date) => `Nie wcześniej niżn ${date}`,
11+
mustBeLowerThan: (date) => `Nie później niż ${date}`,
12+
mustBeBetween: (startDate, endDate) => `Pomiędzy ${startDate} - ${endDate}`,
1313
dateIsDisabled: 'Niedozwolona data',
1414

1515
previous: 'Poprzedni',

src/translations/pt.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,10 @@ const pt: TranslationsType = {
77
selectRange: 'Selecione o período',
88
notAccordingToDateFormat: (inputFormat: string) =>
99
`O formato da data deve ser ${inputFormat}`,
10-
mustBeHigherThan: 'Deve ser depois de',
11-
mustBeLowerThan: 'Deve ser antes de',
12-
mustBeBetween: 'Deve estar entre',
10+
mustBeHigherThan: (date) => `Deve ser depois de ${date}`,
11+
mustBeLowerThan: (date) => `Deve ser antes de ${date}`,
12+
mustBeBetween: (startDate, endDate) =>
13+
`Deve estar entre ${startDate} - ${endDate}`,
1314
dateIsDisabled: 'Data não é permitida',
1415
previous: 'Anterior',
1516
next: 'Próximo',

src/translations/utils.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ export type TranslationsType = {
44
selectRange: string
55
save: string
66
notAccordingToDateFormat: (inputFormat: string) => string
7-
mustBeHigherThan: string
8-
mustBeLowerThan: string
9-
mustBeBetween: string
7+
mustBeHigherThan: (date: string) => string
8+
mustBeLowerThan: (date: string) => string
9+
mustBeBetween: (startDate: string, endDate: string) => string
1010
dateIsDisabled: string
1111
previous: string
1212
next: string
@@ -17,9 +17,9 @@ export type TranslationsType = {
1717

1818
let translationsPerLocale: Record<string, TranslationsType> = {}
1919

20-
export function getTranslation(
20+
export function getTranslation<K extends keyof TranslationsType>(
2121
locale: string | undefined,
22-
key: keyof TranslationsType,
22+
key: K,
2323
fallback?: any
2424
) {
2525
const l = locale || 'en'

0 commit comments

Comments
 (0)