diff --git a/src/Components/Attachment.tsx b/src/Components/Attachment.tsx index 65fe23bea..fb1299f67 100644 --- a/src/Components/Attachment.tsx +++ b/src/Components/Attachment.tsx @@ -85,6 +85,10 @@ function getDownloadMessage(subject: string) { switch (currentLanguage()) { case 'de': return `${subject} herunterladen` + case 'fr': + return `Télécharger ${subject}` + case 'pl': + return `Pobierz ${subject}` default: return `Download ${subject}` } diff --git a/src/Components/Loading.tsx b/src/Components/Loading.tsx index 1704e5818..9ad5441a3 100644 --- a/src/Components/Loading.tsx +++ b/src/Components/Loading.tsx @@ -31,6 +31,10 @@ function getMessage(): string { switch (currentLanguage()) { case 'de': return 'Daten werden geladen…' + case 'fr': + return 'Chargement des données…' + case 'pl': + return 'Ładowanie danych…' default: return 'Loading data…' } diff --git a/src/Objs/Product/ProductComponent.tsx b/src/Objs/Product/ProductComponent.tsx index 2a25e32c1..6c154d46c 100644 --- a/src/Objs/Product/ProductComponent.tsx +++ b/src/Objs/Product/ProductComponent.tsx @@ -295,4 +295,29 @@ const LOCALIZERS = { downloads: 'Downloads', suitableAccessories: 'Suitable accessories', }, + fr: { + cartAddedMessage: '__product__ a été ajouté au panier.', + cartAddLabel: 'Ajouter au panier', + cartRemovedMessage: '__product__ a été retiré du panier.', + cartRemoveLabel: 'Retirer du panier', + cartLoginLabel: 'Se connecter', + cartUnavailableMessage: + 'Veuillez vous connecter pour ajouter __product__ dans le panier.', + data: 'Données', + description: 'Description', + downloads: 'Téléchargements', + suitableAccessories: 'Accessoires appropriés', + }, + pl: { + cartAddedMessage: '__product__ został dodany do koszyka.', + cartAddLabel: 'Dodaj do koszyka', + cartRemovedMessage: '__product__ został usunięty z koszyka.', + cartRemoveLabel: 'Usuń z koszyka', + cartLoginLabel: 'Zaloguj się', + cartUnavailableMessage: 'Zaloguj się, aby dodać __product__ do koszyka.', + data: 'Dane', + description: 'Opis', + downloads: 'Pobrania', + suitableAccessories: 'Odpowiednie akcesoria', + }, } diff --git a/src/Objs/ProductCategory/ProductCategoryComponent.tsx b/src/Objs/ProductCategory/ProductCategoryComponent.tsx index 46990ffa1..058846ba6 100644 --- a/src/Objs/ProductCategory/ProductCategoryComponent.tsx +++ b/src/Objs/ProductCategory/ProductCategoryComponent.tsx @@ -67,4 +67,16 @@ const LOCALIZERS = { items1: '1 item', itemsMany: '__count__ items', }, + fr: { + headline: 'Catégorie de produit', + items0: 'Aucun article', + items1: '1 article', + itemsMany: '__count__ articles', + }, + pl: { + headline: 'Kategoria produktu', + items0: 'Brak produktów', + items1: '1 produkt', + itemsMany: '__count__ produktów', + }, } diff --git a/src/Widgets/CheckoutButtonWidget/CheckoutButtonWidgetComponent.tsx b/src/Widgets/CheckoutButtonWidget/CheckoutButtonWidgetComponent.tsx index 6d4288c71..d65a053da 100644 --- a/src/Widgets/CheckoutButtonWidget/CheckoutButtonWidgetComponent.tsx +++ b/src/Widgets/CheckoutButtonWidget/CheckoutButtonWidgetComponent.tsx @@ -70,6 +70,10 @@ function getErrorMessage(): string { switch (currentLanguage()) { case 'de': return 'Wir bedauern die Unannehmlichkeiten.' + case 'fr': + return 'Nous sommes désolés pour le dérangement.' + case 'pl': + return 'Przepraszamy za utrudnienia.' default: return 'We’re sorry for the inconvenience.' } diff --git a/src/Widgets/DataDeleteButtonWidget/DataDeleteButtonWidgetComponent.tsx b/src/Widgets/DataDeleteButtonWidget/DataDeleteButtonWidgetComponent.tsx index 70a3a08ed..df1a5631f 100644 --- a/src/Widgets/DataDeleteButtonWidget/DataDeleteButtonWidgetComponent.tsx +++ b/src/Widgets/DataDeleteButtonWidget/DataDeleteButtonWidgetComponent.tsx @@ -120,6 +120,10 @@ function getErrorMessage(): string { switch (currentLanguage()) { case 'de': return 'Aktion fehlgeschlagen. Wir bedauern die Unannehmlichkeiten.' + case 'fr': + return 'L’opération a échoué. Nous sommes désolés pour le désagrément.' + case 'pl': + return 'Operacja nie powiodła się. Przepraszamy za utrudnienia.' default: return 'Operation failed. We’re sorry for the inconvenience.' } diff --git a/src/Widgets/DataFormContainerWidget/DataFormContainerWidgetComponent.tsx b/src/Widgets/DataFormContainerWidget/DataFormContainerWidgetComponent.tsx index 210abc9f0..1e22758d6 100644 --- a/src/Widgets/DataFormContainerWidget/DataFormContainerWidgetComponent.tsx +++ b/src/Widgets/DataFormContainerWidget/DataFormContainerWidgetComponent.tsx @@ -149,6 +149,10 @@ function getErrorMessage(): string { switch (currentLanguage()) { case 'de': return 'Wir bedauern die Unannehmlichkeiten.' + case 'fr': + return 'Nous sommes désolés pour le désagrément.' + case 'pl': + return 'Przepraszamy za utrudnienia.' default: return 'We’re sorry for the inconvenience.' } diff --git a/src/Widgets/DataFormUploadWidget/DataFormUploadWidgetComponent.tsx b/src/Widgets/DataFormUploadWidget/DataFormUploadWidgetComponent.tsx index 92e65f7c0..292d8ed21 100644 --- a/src/Widgets/DataFormUploadWidget/DataFormUploadWidgetComponent.tsx +++ b/src/Widgets/DataFormUploadWidget/DataFormUploadWidgetComponent.tsx @@ -126,6 +126,10 @@ function getDropMessage(multiple: boolean) { switch (currentLanguage()) { case 'de': return 'Dateien auswählen oder hierher ziehen.' + case 'fr': + return 'Choisissez des fichiers ou faites-les glisser ici.' + case 'pl': + return 'Wybierz pliki lub przeciągnij je tutaj.' default: return 'Choose files or drag them here.' } @@ -134,6 +138,10 @@ function getDropMessage(multiple: boolean) { switch (currentLanguage()) { case 'de': return 'Datei auswählen oder hierher ziehen.' + case 'fr': + return 'Choisissez un fichier ou faites-le glisser ici.' + case 'pl': + return 'Wybierz plik lub przeciągnij go tutaj.' default: return 'Choose a file or drag it here.' } @@ -146,6 +154,16 @@ function getTooLargeMessage() { MAX_FILE_SIZE, { locale: 'de' }, )} hoch.` + case 'fr': + return `Un ou plusieurs fichiers sont trop volumineux. Veuillez télécharger des fichiers d'une taille maximale de ${prettyBytes( + MAX_FILE_SIZE, + { locale: 'fr' }, + )}.` + case 'pl': + return `Jeden lub kilka plików jest za duży. Proszę przesłać pliki o maksymalnym rozmiarze ${prettyBytes( + MAX_FILE_SIZE, + { locale: 'pl' }, + )}.` default: return `One or more files are too large. Please upload files up to ${prettyBytes( MAX_FILE_SIZE, diff --git a/src/Widgets/DataIconWidget/DataIconWidgetComponent.tsx b/src/Widgets/DataIconWidget/DataIconWidgetComponent.tsx index 79932398e..ead7c4673 100644 --- a/src/Widgets/DataIconWidget/DataIconWidgetComponent.tsx +++ b/src/Widgets/DataIconWidget/DataIconWidgetComponent.tsx @@ -75,6 +75,10 @@ function localizeNotAvailable(): string { switch (currentLanguage()) { case 'de': return 'k.A.' + case 'fr': + return 'N/A' + case 'pl': + return 'N/D' default: return 'N/A' } diff --git a/src/Widgets/DataLabelWidget/DataLabelWidgetComponent.tsx b/src/Widgets/DataLabelWidget/DataLabelWidgetComponent.tsx index 228c39088..240e88a52 100644 --- a/src/Widgets/DataLabelWidget/DataLabelWidgetComponent.tsx +++ b/src/Widgets/DataLabelWidget/DataLabelWidgetComponent.tsx @@ -153,6 +153,10 @@ function localizeNotAvailable(): string { switch (currentLanguage()) { case 'de': return 'k.A.' + case 'fr': + return 'N/D' + case 'pl': + return 'bd.' default: return 'N/A' } diff --git a/src/Widgets/TopNavigationWidget/SubComponents/CurrentUserDropdown.tsx b/src/Widgets/TopNavigationWidget/SubComponents/CurrentUserDropdown.tsx index 1912bc11b..4dd609b4a 100644 --- a/src/Widgets/TopNavigationWidget/SubComponents/CurrentUserDropdown.tsx +++ b/src/Widgets/TopNavigationWidget/SubComponents/CurrentUserDropdown.tsx @@ -139,6 +139,10 @@ function localizeLogOutLabel(): string { switch (currentLanguage()) { case 'de': return 'Abmelden' + case 'fr': + return 'Déconnexion' + case 'pl': + return 'Wyloguj się' default: return 'Log out' } diff --git a/src/Widgets/TopNavigationWidget/SubComponents/SearchBox.tsx b/src/Widgets/TopNavigationWidget/SubComponents/SearchBox.tsx index e368ce4c8..6febec3aa 100644 --- a/src/Widgets/TopNavigationWidget/SubComponents/SearchBox.tsx +++ b/src/Widgets/TopNavigationWidget/SubComponents/SearchBox.tsx @@ -48,6 +48,10 @@ function localizeSearchInputLabel(): string { switch (currentLanguage()) { case 'de': return 'Suche' + case 'fr': + return 'Recherche' + case 'pl': + return 'Szukaj' default: return 'Search' }