From 4226a0144c869424d4b3d315fd186e1184638a83 Mon Sep 17 00:00:00 2001 From: gvangeest Date: Mon, 27 Feb 2023 14:55:19 +0100 Subject: [PATCH] fix(combobox): add translations --- .changeset/cuddly-windows-fail.md | 5 ++ .../components/combobox/src/LionCombobox.js | 75 ++++++++++++++++++- .../combobox/test/lion-combobox.test.js | 28 ++++++- .../ui/components/combobox/translations/bg.js | 3 + .../ui/components/combobox/translations/cs.js | 3 + .../ui/components/combobox/translations/de.js | 3 + .../ui/components/combobox/translations/en.js | 3 + .../ui/components/combobox/translations/es.js | 3 + .../ui/components/combobox/translations/fr.js | 3 + .../ui/components/combobox/translations/hu.js | 3 + .../ui/components/combobox/translations/it.js | 3 + .../ui/components/combobox/translations/nl.js | 3 + .../ui/components/combobox/translations/pl.js | 3 + .../ui/components/combobox/translations/ro.js | 3 + .../ui/components/combobox/translations/ru.js | 3 + .../ui/components/combobox/translations/sk.js | 3 + .../ui/components/combobox/translations/uk.js | 3 + .../ui/components/combobox/translations/zh.js | 3 + packages/ui/package.json | 1 + 19 files changed, 148 insertions(+), 6 deletions(-) create mode 100644 .changeset/cuddly-windows-fail.md create mode 100644 packages/ui/components/combobox/translations/bg.js create mode 100644 packages/ui/components/combobox/translations/cs.js create mode 100644 packages/ui/components/combobox/translations/de.js create mode 100644 packages/ui/components/combobox/translations/en.js create mode 100644 packages/ui/components/combobox/translations/es.js create mode 100644 packages/ui/components/combobox/translations/fr.js create mode 100644 packages/ui/components/combobox/translations/hu.js create mode 100644 packages/ui/components/combobox/translations/it.js create mode 100644 packages/ui/components/combobox/translations/nl.js create mode 100644 packages/ui/components/combobox/translations/pl.js create mode 100644 packages/ui/components/combobox/translations/ro.js create mode 100644 packages/ui/components/combobox/translations/ru.js create mode 100644 packages/ui/components/combobox/translations/sk.js create mode 100644 packages/ui/components/combobox/translations/uk.js create mode 100644 packages/ui/components/combobox/translations/zh.js diff --git a/.changeset/cuddly-windows-fail.md b/.changeset/cuddly-windows-fail.md new file mode 100644 index 000000000..0ec2b7c4d --- /dev/null +++ b/.changeset/cuddly-windows-fail.md @@ -0,0 +1,5 @@ +--- +'@lion/ui': patch +--- + +[combobox] add translations diff --git a/packages/ui/components/combobox/src/LionCombobox.js b/packages/ui/components/combobox/src/LionCombobox.js index a606f1329..c79b2045d 100644 --- a/packages/ui/components/combobox/src/LionCombobox.js +++ b/packages/ui/components/combobox/src/LionCombobox.js @@ -1,5 +1,6 @@ import { browserDetection } from '@lion/ui/core.js'; import { LionListbox } from '@lion/ui/listbox.js'; +import { LocalizeMixin } from '@lion/ui/localize-no-side-effects.js'; import { OverlayMixin, withDropdownConfig } from '@lion/ui/overlays.js'; import { css, html } from 'lit'; import { makeMatchingTextBold, unmakeMatchingTextBold } from './utils/makeMatchingTextBold.js'; @@ -24,7 +25,7 @@ const matchA11ySpanReverseFns = new WeakMap(); * LionCombobox: implements the wai-aria combobox design pattern and integrates it as a Lion * FormControl */ -export class LionCombobox extends OverlayMixin(LionListbox) { +export class LionCombobox extends LocalizeMixin(OverlayMixin(LionListbox)) { /** @type {any} */ static get properties() { return { @@ -75,6 +76,71 @@ export class LionCombobox extends OverlayMixin(LionListbox) { ]; } + static get localizeNamespaces() { + return [ + { + 'lion-combobox': /** @param {string} locale */ locale => { + switch (locale) { + case 'bg-BG': + case 'bg': + return import('@lion/ui/combobox-translations/bg.js'); + case 'cs-CZ': + case 'cs': + return import('@lion/ui/combobox-translations/cs.js'); + case 'de-AT': + case 'de-DE': + case 'de': + return import('@lion/ui/combobox-translations/de.js'); + case 'en-AU': + case 'en-GB': + case 'en-PH': + case 'en-US': + case 'en': + return import('@lion/ui/combobox-translations/en.js'); + case 'es-ES': + case 'es': + return import('@lion/ui/combobox-translations/es.js'); + case 'fr-FR': + case 'fr-BE': + case 'fr': + return import('@lion/ui/combobox-translations/fr.js'); + case 'hu-HU': + case 'hu': + return import('@lion/ui/combobox-translations/hu.js'); + case 'it-IT': + case 'it': + return import('@lion/ui/combobox-translations/it.js'); + case 'nl-BE': + case 'nl-NL': + case 'nl': + return import('@lion/ui/combobox-translations/nl.js'); + case 'pl-PL': + case 'pl': + return import('@lion/ui/combobox-translations/pl.js'); + case 'ro-RO': + case 'ro': + return import('@lion/ui/combobox-translations/ro.js'); + case 'ru-RU': + case 'ru': + return import('@lion/ui/combobox-translations/ru.js'); + case 'sk-SK': + case 'sk': + return import('@lion/ui/combobox-translations/sk.js'); + case 'uk-UA': + case 'uk': + return import('@lion/ui/combobox-translations/uk.js'); + case 'zh-CN': + case 'zh': + return import('@lion/ui/combobox-translations/zh.js'); + default: + return import('@lion/ui/combobox-translations/en.js'); + } + }, + }, + ...super.localizeNamespaces, + ]; + } + /** * @enhance FormControlMixin - add slot[name=selection-display] * @protected @@ -94,9 +160,12 @@ export class LionCombobox extends OverlayMixin(LionListbox) { */ // eslint-disable-next-line class-methods-use-this _overlayListboxTemplate() { - // TODO: Localize the aria-label return html` -