fix(calendar): add translations for disabled dates (#2450)
This commit is contained in:
parent
dd598125ef
commit
81e2a1d2d1
18 changed files with 169 additions and 14 deletions
5
.changeset/nine-keys-matter.md
Normal file
5
.changeset/nine-keys-matter.md
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
---
|
||||||
|
'@lion/ui': patch
|
||||||
|
---
|
||||||
|
|
||||||
|
[calendar] add translations for an information message for screen reader users when a date is disabled
|
||||||
|
|
@ -658,25 +658,16 @@ export class LionCalendar extends LocalizeMixin(LitElement) {
|
||||||
day.ariaCurrent = day.today ? 'date' : undefined;
|
day.ariaCurrent = day.today ? 'date' : undefined;
|
||||||
day.disabledInfo = '';
|
day.disabledInfo = '';
|
||||||
|
|
||||||
|
if (day.disabled) {
|
||||||
|
day.disabledInfo = `${this.msgLit(`lion-calendar:defaultDisabledDate`)}`;
|
||||||
|
}
|
||||||
if (this.minDate && normalizeDateTime(day.date) < normalizeDateTime(this.minDate)) {
|
if (this.minDate && normalizeDateTime(day.date) < normalizeDateTime(this.minDate)) {
|
||||||
day.disabled = true;
|
day.disabled = true;
|
||||||
// TODO: turn this into a translated string
|
day.disabledInfo = `${this.msgLit(`lion-calendar:beforeDisabledDate`, { params: this.__getSelectableDateRange().earliestSelectableDate })}`;
|
||||||
day.disabledInfo = `This date is unavailable. Earliest date to select is ${
|
|
||||||
this.__getSelectableDateRange().earliestSelectableDate
|
|
||||||
}. Please select another date.`;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.maxDate && normalizeDateTime(day.date) > normalizeDateTime(this.maxDate)) {
|
if (this.maxDate && normalizeDateTime(day.date) > normalizeDateTime(this.maxDate)) {
|
||||||
day.disabled = true;
|
day.disabled = true;
|
||||||
// TODO: turn this into a translated string
|
day.disabledInfo = `${this.msgLit(`lion-calendar:afterDisabledDate`, { params: this.__getSelectableDateRange().latestSelectableDate })}`;
|
||||||
day.disabledInfo = `This date is unavailable. Latest date to select is ${
|
|
||||||
this.__getSelectableDateRange().latestSelectableDate
|
|
||||||
}. Please select another date.`;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (day.disabled) {
|
|
||||||
// TODO: turn this into a translated string
|
|
||||||
day.disabledInfo = `This date is unavailable. Please select another date`;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return this.dayPreprocessor(day);
|
return this.dayPreprocessor(day);
|
||||||
|
|
|
||||||
|
|
@ -896,6 +896,94 @@ describe('<lion-calendar>', () => {
|
||||||
'Next year, December 2001',
|
'Next year, December 2001',
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('disables a date with disableDates function provide a correct message', async () => {
|
||||||
|
/** @param {Date} d */
|
||||||
|
const disable15th = d => d.getDate() === 15;
|
||||||
|
const el = await fixture(html`
|
||||||
|
<lion-calendar
|
||||||
|
.selectedDate="${new Date('2000/12/01')}"
|
||||||
|
.disableDates=${disable15th}
|
||||||
|
></lion-calendar>
|
||||||
|
`);
|
||||||
|
const elObj = new CalendarObject(el);
|
||||||
|
expect(elObj.getDayObj(15).isDisabled).to.equal(true);
|
||||||
|
expect(elObj.getDayObj(15).el).dom.to.equal(`
|
||||||
|
<div
|
||||||
|
class="calendar__day-button"
|
||||||
|
aria-disabled="true"
|
||||||
|
role="button"
|
||||||
|
tabindex="-1"
|
||||||
|
aria-pressed="false"
|
||||||
|
past=""
|
||||||
|
current-month="">
|
||||||
|
<span class="calendar__day-button__text">
|
||||||
|
15
|
||||||
|
</span>
|
||||||
|
<span class="u-sr-only">
|
||||||
|
December 2000 Friday This date is unavailable. Please choose another date.
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
`);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('disables days before "minDate" property provide a correct message', async () => {
|
||||||
|
const el = await fixture(html`
|
||||||
|
<lion-calendar
|
||||||
|
.selectedDate="${new Date('2000/12/31')}"
|
||||||
|
.minDate="${new Date('2000/12/09')}"
|
||||||
|
>
|
||||||
|
</lion-calendar>
|
||||||
|
`);
|
||||||
|
const elObj = new CalendarObject(el);
|
||||||
|
expect(elObj.getDayObj(1).isDisabled).to.equal(true);
|
||||||
|
expect(elObj.getDayObj(1).el).dom.to.equal(`
|
||||||
|
<div
|
||||||
|
class="calendar__day-button"
|
||||||
|
aria-disabled="true"
|
||||||
|
role="button"
|
||||||
|
tabindex="-1"
|
||||||
|
aria-pressed="false"
|
||||||
|
past=""
|
||||||
|
current-month="">
|
||||||
|
<span class="calendar__day-button__text">
|
||||||
|
1
|
||||||
|
</span>
|
||||||
|
<span class="u-sr-only">
|
||||||
|
December 2000 Friday This date is unavailable. Earliest available date is 9 December 2000. Please choose another date.
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
`);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('disables days after "maxDate" property provide a correct message', async () => {
|
||||||
|
const el = await fixture(html`
|
||||||
|
<lion-calendar
|
||||||
|
.selectedDate="${new Date('2000/12/31')}"
|
||||||
|
.maxDate="${new Date('2000/12/09')}"
|
||||||
|
>
|
||||||
|
</lion-calendar>
|
||||||
|
`);
|
||||||
|
const elObj = new CalendarObject(el);
|
||||||
|
expect(elObj.getDayObj(30).isDisabled).to.equal(true);
|
||||||
|
expect(elObj.getDayObj(30).el).dom.to.equal(`
|
||||||
|
<div
|
||||||
|
class="calendar__day-button"
|
||||||
|
aria-disabled="true"
|
||||||
|
role="button"
|
||||||
|
tabindex="-1"
|
||||||
|
aria-pressed="false"
|
||||||
|
past=""
|
||||||
|
current-month="">
|
||||||
|
<span class="calendar__day-button__text">
|
||||||
|
30
|
||||||
|
</span>
|
||||||
|
<span class="u-sr-only">
|
||||||
|
December 2000 Saturday This date is unavailable. Latest available date is 9 December 2000. Please choose another date.
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
`);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -3,4 +3,9 @@ export default {
|
||||||
previousMonth: 'Предишен месец',
|
previousMonth: 'Предишен месец',
|
||||||
nextFullYear: 'Следващ година',
|
nextFullYear: 'Следващ година',
|
||||||
previousFullYear: 'Предишен година',
|
previousFullYear: 'Предишен година',
|
||||||
|
defaultDisabledDate: 'Тази дата не е налична. Моля, изберете друга дата.',
|
||||||
|
beforeDisabledDate:
|
||||||
|
'Тази дата не е налична. Най-ранната налична да е {params}. Моля, изберете друга дата.',
|
||||||
|
afterDisabledDate:
|
||||||
|
'Тази дата не е налична. Най-късната налична дата е {params}. Моля, изберете друга дата.',
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -3,4 +3,9 @@ export default {
|
||||||
previousMonth: 'Předchozí měsíc',
|
previousMonth: 'Předchozí měsíc',
|
||||||
nextFullYear: 'Příští rok',
|
nextFullYear: 'Příští rok',
|
||||||
previousFullYear: 'Předchozí rok',
|
previousFullYear: 'Předchozí rok',
|
||||||
|
defaultDisabledDate: 'Toto datum není k dispozici. Vyberte jiné datum.',
|
||||||
|
beforeDisabledDate:
|
||||||
|
'Toto datum není k dispozici. Nejbližší dostupné datum je {params}. Vyberte jiné datum.',
|
||||||
|
afterDisabledDate:
|
||||||
|
'Toto datum není k dispozici. Poslední dostupné datum je {params}. Vyberte jiné datum.',
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -3,4 +3,9 @@ export default {
|
||||||
previousMonth: 'Vorheriger Monat',
|
previousMonth: 'Vorheriger Monat',
|
||||||
nextFullYear: 'Nächstes Jahr',
|
nextFullYear: 'Nächstes Jahr',
|
||||||
previousFullYear: 'Vorheriges Jahr',
|
previousFullYear: 'Vorheriges Jahr',
|
||||||
|
defaultDisabledDate: 'Dieses Datum ist nicht verfügbar. Bitte wählen Sie ein anderes Datum aus.',
|
||||||
|
beforeDisabledDate:
|
||||||
|
'Dieses Datum ist nicht verfügbar. Das früheste verfügbare Datum ist {params}. Bitte wählen Sie ein anderes Datum aus.',
|
||||||
|
afterDisabledDate:
|
||||||
|
'Dieses Datum ist nicht verfügbar. Das späteste verfügbare Datum ist {params}. Bitte wählen Sie ein anderes Datum aus.',
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -3,4 +3,9 @@ export default {
|
||||||
previousMonth: 'Previous month',
|
previousMonth: 'Previous month',
|
||||||
nextFullYear: 'Next year',
|
nextFullYear: 'Next year',
|
||||||
previousFullYear: 'Previous year',
|
previousFullYear: 'Previous year',
|
||||||
|
defaultDisabledDate: 'This date is unavailable. Please choose another date.',
|
||||||
|
beforeDisabledDate:
|
||||||
|
'This date is unavailable. Earliest available date is {params}. Please choose another date.',
|
||||||
|
afterDisabledDate:
|
||||||
|
'This date is unavailable. Latest available date is {params}. Please choose another date.',
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -3,4 +3,9 @@ export default {
|
||||||
previousMonth: 'Mes anterior',
|
previousMonth: 'Mes anterior',
|
||||||
nextFullYear: 'Año siguiente',
|
nextFullYear: 'Año siguiente',
|
||||||
previousFullYear: 'Año anterior',
|
previousFullYear: 'Año anterior',
|
||||||
|
defaultDisabledDate: 'Esta fecha no está disponible. Elija otra.',
|
||||||
|
beforeDisabledDate:
|
||||||
|
'Esta fecha no está disponible. La fecha más próxima disponible es {params}. Elija otra.',
|
||||||
|
afterDisabledDate:
|
||||||
|
'Esta fecha no está disponible. La fecha más lejana disponible es {params}. Elija otra.',
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -3,4 +3,9 @@ export default {
|
||||||
previousMonth: 'Mois précédent',
|
previousMonth: 'Mois précédent',
|
||||||
nextFullYear: 'An prochain',
|
nextFullYear: 'An prochain',
|
||||||
previousFullYear: 'An précédent',
|
previousFullYear: 'An précédent',
|
||||||
|
defaultDisabledDate: "Cette date n'est pas disponible. Veuillez choisir une autre date.",
|
||||||
|
beforeDisabledDate:
|
||||||
|
"Cette date n'est pas disponible. La prochaine date disponible est la suivante : {params}. Veuillez choisir une autre date.",
|
||||||
|
afterDisabledDate:
|
||||||
|
"Cette date n'est pas disponible. La dernière date disponible est la suivante : {params}. Veuillez choisir une autre date.",
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -3,4 +3,9 @@ export default {
|
||||||
previousMonth: 'Előző hónap',
|
previousMonth: 'Előző hónap',
|
||||||
nextFullYear: 'Következő év',
|
nextFullYear: 'Következő év',
|
||||||
previousFullYear: 'Előző év',
|
previousFullYear: 'Előző év',
|
||||||
|
defaultDisabledDate: 'Ez a dátum nem választható. Válasszon másik dátumot.',
|
||||||
|
beforeDisabledDate:
|
||||||
|
'Ez a dátum nem választható. A legkorábbi elérhető dátum {params}. Válasszon másik dátumot.',
|
||||||
|
afterDisabledDate:
|
||||||
|
'Ez a dátum nem választható. A legkésőbbi elérhető dátum {params}. Válasszon másik dátumot.',
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -3,4 +3,9 @@ export default {
|
||||||
previousMonth: 'Mese precedente',
|
previousMonth: 'Mese precedente',
|
||||||
nextFullYear: 'Anno successivo',
|
nextFullYear: 'Anno successivo',
|
||||||
previousFullYear: 'Anno precedente',
|
previousFullYear: 'Anno precedente',
|
||||||
|
defaultDisabledDate: "Questa data non è disponibile. Scegline un'altra.",
|
||||||
|
beforeDisabledDate:
|
||||||
|
"Questa data non è disponibile. La prima data disponibile è {params}. Scegline un'altra.",
|
||||||
|
afterDisabledDate:
|
||||||
|
"Questa data non è disponibile. L'ultima data disponibile è {params}. Scegline un'altra.",
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -3,4 +3,9 @@ export default {
|
||||||
previousMonth: 'Vorige maand',
|
previousMonth: 'Vorige maand',
|
||||||
nextFullYear: 'Volgend jaar',
|
nextFullYear: 'Volgend jaar',
|
||||||
previousFullYear: 'Vorig jaar',
|
previousFullYear: 'Vorig jaar',
|
||||||
|
defaultDisabledDate: 'Deze datum is niet beschikbaar. Kies een andere datum.',
|
||||||
|
beforeDisabledDate:
|
||||||
|
'Deze datum is niet beschikbaar. Vroegste beschikbare datum is {params}. Kies een andere datum.',
|
||||||
|
afterDisabledDate:
|
||||||
|
'Deze datum is niet beschikbaar. Laatste beschikbare datum is {params}. Kies een andere datum.',
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -3,4 +3,9 @@ export default {
|
||||||
previousMonth: 'Poprzedni miesiąc',
|
previousMonth: 'Poprzedni miesiąc',
|
||||||
nextFullYear: 'Następny rok',
|
nextFullYear: 'Następny rok',
|
||||||
previousFullYear: 'Poprzedni rok',
|
previousFullYear: 'Poprzedni rok',
|
||||||
|
defaultDisabledDate: 'Ta data jest niedostępna. Wybierz inną datę.',
|
||||||
|
beforeDisabledDate:
|
||||||
|
'Ta data jest niedostępna. Najwcześniejsza dostępna data to {params}. Wybierz inną datę.',
|
||||||
|
afterDisabledDate:
|
||||||
|
'Ta data jest niedostępna. Najpóźniejsza dostępna data to {params}. Wybierz inną datę.',
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -3,4 +3,9 @@ export default {
|
||||||
previousMonth: 'Luna anterioară',
|
previousMonth: 'Luna anterioară',
|
||||||
nextFullYear: 'An viitoare',
|
nextFullYear: 'An viitoare',
|
||||||
previousFullYear: 'An anterioară',
|
previousFullYear: 'An anterioară',
|
||||||
|
defaultDisabledDate: 'Această dată nu este disponibilă. Vă rugăm să alegeți altă dată.',
|
||||||
|
beforeDisabledDate:
|
||||||
|
'Această dată nu este disponibilă. Cea mai apropiată dată disponibilă este {params}. Vă rugăm să alegeți altă dată.',
|
||||||
|
afterDisabledDate:
|
||||||
|
'Această dată nu este disponibilă. Ultima dată disponibilă este {params}. Vă rugăm să alegeți altă dată.',
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -3,4 +3,9 @@ export default {
|
||||||
previousMonth: 'Предыдущий месяц',
|
previousMonth: 'Предыдущий месяц',
|
||||||
nextFullYear: 'Следующий год',
|
nextFullYear: 'Следующий год',
|
||||||
previousFullYear: 'Предыдущий год',
|
previousFullYear: 'Предыдущий год',
|
||||||
|
defaultDisabledDate: 'Эта дата недоступна. Выберите другую дату.',
|
||||||
|
beforeDisabledDate:
|
||||||
|
'Эта дата недоступна. Самая ранняя доступная дата — {params}. Выберите другую дату.',
|
||||||
|
afterDisabledDate:
|
||||||
|
'Эта дата недоступна. Самая поздняя доступная дата — {params}. Выберите другую дату.',
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -3,4 +3,9 @@ export default {
|
||||||
previousMonth: 'Predchádzajúci mesiac',
|
previousMonth: 'Predchádzajúci mesiac',
|
||||||
nextFullYear: 'Nasledujúci rok',
|
nextFullYear: 'Nasledujúci rok',
|
||||||
previousFullYear: 'Predchádzajúci rok',
|
previousFullYear: 'Predchádzajúci rok',
|
||||||
|
defaultDisabledDate: 'Tento dátum nie je k dispozícii. Vyberte iný dátum.',
|
||||||
|
beforeDisabledDate:
|
||||||
|
'Tento dátum nie je k dispozícii. Najbližší možný dátum je {params}. Vyberte iný dátum.',
|
||||||
|
afterDisabledDate:
|
||||||
|
'Tento dátum nie je k dispozícii. Posledný možný dátum je {params}. Vyberte iný dátum.',
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -3,4 +3,7 @@ export default {
|
||||||
previousMonth: 'Попередній місяць',
|
previousMonth: 'Попередній місяць',
|
||||||
nextFullYear: 'Наступний року',
|
nextFullYear: 'Наступний року',
|
||||||
previousFullYear: 'Попередній року',
|
previousFullYear: 'Попередній року',
|
||||||
|
defaultDisabledDate: 'Ця дата недоступна. Виберіть іншу дату.',
|
||||||
|
beforeDisabledDate: 'Ця дата недоступна. Найближча доступна дата {params}. Виберіть іншу дату.',
|
||||||
|
afterDisabledDate: 'Ця дата недоступна. Остання доступна дата {params}. Виберіть іншу дату.',
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -3,4 +3,7 @@ export default {
|
||||||
previousMonth: '前一个月',
|
previousMonth: '前一个月',
|
||||||
nextFullYear: '明一年',
|
nextFullYear: '明一年',
|
||||||
previousFullYear: '前一年',
|
previousFullYear: '前一年',
|
||||||
|
defaultDisabledDate: '此日期不可选。请选择另一个日期。',
|
||||||
|
beforeDisabledDate: '此日期不可选。最早可选日期为 {params}。请选择另一个日期。',
|
||||||
|
afterDisabledDate: '此日期不可选。最晚可选日期为 {params}。请选择另一个日期。',
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue