From 7392363b5926577ef2f316cb8ea1a5d6a4554429 Mon Sep 17 00:00:00 2001 From: Dawid Kapciak Date: Wed, 3 Dec 2025 07:03:51 +0100 Subject: [PATCH] add Polish localization support and translations --- lib/l10n/app_localizations.dart | 5 + lib/l10n/app_localizations_pl.dart | 209 +++++++++++++++++++++++++++++ lib/l10n/app_pl.arb | 70 ++++++++++ 3 files changed, 284 insertions(+) create mode 100644 lib/l10n/app_localizations_pl.dart create mode 100644 lib/l10n/app_pl.arb diff --git a/lib/l10n/app_localizations.dart b/lib/l10n/app_localizations.dart index a1cf144..adbe507 100644 --- a/lib/l10n/app_localizations.dart +++ b/lib/l10n/app_localizations.dart @@ -12,6 +12,7 @@ import 'app_localizations_es.dart'; import 'app_localizations_fr.dart'; import 'app_localizations_it.dart'; import 'app_localizations_nl.dart'; +import 'app_localizations_pl.dart'; import 'app_localizations_ru.dart'; import 'app_localizations_zh.dart'; @@ -108,6 +109,7 @@ abstract class AppLocalizations { Locale('fr'), Locale('it'), Locale('nl'), + Locale('pl'), Locale('ru'), Locale('zh') ]; @@ -521,6 +523,7 @@ class _AppLocalizationsDelegate 'fr', 'it', 'nl', + 'pl', 'ru', 'zh' ].contains(locale.languageCode); @@ -546,6 +549,8 @@ AppLocalizations lookupAppLocalizations(Locale locale) { return AppLocalizationsIt(); case 'nl': return AppLocalizationsNl(); + case 'pl': + return AppLocalizationsPl(); case 'ru': return AppLocalizationsRu(); case 'zh': diff --git a/lib/l10n/app_localizations_pl.dart b/lib/l10n/app_localizations_pl.dart new file mode 100644 index 0000000..c0cd020 --- /dev/null +++ b/lib/l10n/app_localizations_pl.dart @@ -0,0 +1,209 @@ +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'app_localizations.dart'; + +// ignore_for_file: type=lint + +/// The translations for Polish (`pl`). +class AppLocalizationsEn extends AppLocalizations { + AppLocalizationsEn([String locale = 'pl']) : super(locale); + + @override + String get no => 'Nie'; + + @override + String get yes => 'Tak'; + + @override + String get mainNoCares => 'Hura! Nie masz żadnych roślin do pielęgnacji'; + + @override + String get mainNoPlants => 'Ogród jest pusty, zasadzimy coś?'; + + @override + String get buttonGarden => 'Ogród'; + + @override + String get buttonToday => 'Dzisiaj'; + + @override + String get tooltipCareAll => 'Zaopiekuj się wszystkimi roślinami'; + + @override + String get tooltipShowCalendar => 'Pokaż kalendarz'; + + @override + String get tooltipSettings => 'Ustawienia'; + + @override + String get tooltipNewPlant => 'Dodaj nową roślinę'; + + @override + String get selectDays => 'Wybierz dni'; + + @override + String get ok => 'OK'; + + @override + String get every => 'każde'; + + @override + String get days => 'dni'; + + @override + String get never => 'Nigdy'; + + @override + String get titleEditPlant => 'Edytuj'; + + @override + String get titleNewPlant => 'Nowy'; + + @override + String get tooltipCameraImage => 'Weź obraz z kamery'; + + @override + String get tooltipNextAvatar => 'Następny awatar'; + + @override + String get tooltipGalleryImage => 'Weź obraz z galerii'; + + @override + String get emptyError => 'Proszę wprowadzić jakiś tekst'; + + @override + String get conflictError => 'Kwiatek o takiej nazwie już istnieje'; + + @override + String get labelName => 'Nazwa'; + + @override + String get exampleName => 'Np.: Pilea'; + + @override + String get labelDescription => 'Opis'; + + @override + String get labelLocation => 'Lokalizacja'; + + @override + String get exampleLocation => 'Np.: Dziedziniec'; + + @override + String get labelDayPlanted => 'Dzień posadzenia'; + + @override + String get saveButton => 'Zapisz'; + + @override + String get careAll => 'Czy zaopiekowałeś się wszystkimi roślinami?'; + + @override + String get careAllBody => + 'Ta akcja oznaczy wszystkie rośliny jako pielęgnowane w dzisiejszym cyklu.'; + + @override + String get water => 'Podlej'; + + @override + String get spray => 'Spryskaj'; + + @override + String get rotate => 'Obróć'; + + @override + String get prune => 'Przytnij'; + + @override + String get fertilise => 'Nawóź'; + + @override + String get transplant => 'Przesadź'; + + @override + String get clean => 'Oczyść'; + + @override + String get now => 'Dzisiaj'; + + @override + String get daysLeft => 'dni pozostało'; + + @override + String get daysLate => 'Od'; + + @override + String get tooltipEdit => 'Edytuj tę roślinę'; + + @override + String get deleteButton => 'Usuń'; + + @override + String get noCaresError => 'Wybierz przynajmniej jedną pielęgnację'; + + @override + String get careButton => 'Pielęgnuj'; + + @override + String get selectHours => 'Wybierz godziny'; + + @override + String get notifyEvery => 'Powiadamiaj co'; + + @override + String get hours => 'godzin'; + + @override + String get testNotificationButton => 'Testuj powiadomienie'; + + @override + String get testNotificationTitle => 'Testowe powiadomienie Florae'; + + @override + String get testNotificationBody => 'To jest wiadomość testowa'; + + @override + String get aboutFloraeButton => 'O Florae'; + + @override + String get notificationInfo => + 'Czas powiadomienia zostanie zresetowany po wejściu do aplikacji.\n\nNależy pamiętać, że niektóre urządzenia wykonują bardzo agresywne optymalizacje baterii, które mogą powodować, że powiadomienia nie będą wyświetlane poprawnie.'; + + @override + String get careNotificationTitle => 'Rośliny wymagają pielęgnacji'; + + @override + String get careNotificationName => 'Przypomnienie o pielęgnacji'; + + @override + String get careNotificationDescription => 'Otrzymuj powiadomienia o pielęgnacji roślin'; + + @override + String get deletePlantTitle => 'Usuń roślinę'; + + @override + String get deletePlantBody => + 'Zamierzasz trwale usunąć swoją roślinę, tej akcji nie można cofnąć.'; + + @override + String get exportData => 'Eksportuj ogród'; + + @override + String get importData => 'Importuj ogród'; + + @override + String get unsuccessfullyRestore => 'Nie udało się przywrócić kopii zapasowej.'; + + @override + String get unsuccessfullyBackup => 'Nie udało się utworzyć pliku kopii zapasowej.'; + + @override + String get atDay => 'W ciągu dnia'; + + @override + String get atNoon => 'W południe'; + + @override + String get atNight => 'W nocy'; + +} diff --git a/lib/l10n/app_pl.arb b/lib/l10n/app_pl.arb new file mode 100644 index 0000000..17d55a0 --- /dev/null +++ b/lib/l10n/app_pl.arb @@ -0,0 +1,70 @@ +{ + "no": "Nie", + "yes": "Tak", + "mainNoCares": "Hura! Nie masz żadnych roślin do pielęgnacji", + "mainNoPlants": "Ogród jest pusty, zasadzimy coś?", + "buttonGarden": "Ogród", + "buttonToday": "Dzisiaj", + "tooltipCareAll": "Zaopiekuj się wszystkimi roślinami", + "tooltipShowCalendar": "Pokaż kalendarz", + "tooltipSettings": "Ustawienia", + "tooltipNewPlant": "Dodaj nową roślinę", + "selectDays": "Wybierz dni", + "ok": "OK", + "every": "każde", + "days": "dni", + "never": "Nigdy", + "titleEditPlant": "Edytuj", + "titleNewPlant": "Nowy", + "tooltipCameraImage": "Weź obraz z kamery", + "tooltipNextAvatar": "Następny awatar", + "tooltipGalleryImage": "Weź obraz z galerii", + "emptyError": "Proszę wprowadzić jakiś tekst", + "conflictError": "Kwiatek o takiej nazwie już istnieje", + "labelName": "Nazwa", + "exampleName": "Np.: Pilea", + "labelDescription": "Opis", + "labelLocation": "Lokalizacja", + "exampleLocation": "Np.: Dziedziniec", + "labelDayPlanted": "Dzień posadzenia", + "saveButton": "Zapisz", + "careAll": "Czy zaopiekowałeś się wszystkimi roślinami?", + "careAllBody": "Ta akcja oznaczy wszystkie rośliny jako pielęgnowane w dzisiejszym cyklu.", + "water": "Podlej", + "spray": "Spryskaj", + "rotate": "Obróć", + "prune": "Przytnij", + "fertilise": "Nawóź", + "transplant": "Przesadź", + "clean": "Oczyść", + "now": "Dzisiaj", + "daysLeft": "dni pozostało", + "daysLate": "Od", + "tooltipEdit": "Edytuj tę roślinę", + "deleteButton": "Usuń", + "noCaresError": "Wybierz przynajmniej jedną pielęgnację", + "careButton": "Pielęgnuj", + "selectHours": "Wybierz godziny", + "notifyEvery": "Powiadamiaj co", + "hours": "godzin", + "testNotificationButton": "Testuj powiadomienie", + "testNotificationTitle": "Testowe powiadomienie Florae", + "testNotificationBody": "To jest wiadomość testowa", + "aboutFloraeButton": "O Florae", + "notificationInfo": "Czas powiadomienia zostanie zresetowany po wejściu do aplikacji.\n\nNależy pamiętać, że niektóre urządzenia wykonują bardzo agresywne optymalizacje baterii, które mogą powodować, że powiadomienia nie będą wyświetlane poprawnie.", + "careNotificationTitle": "Rośliny wymagają pielęgnacji", + "careNotificationName": "Przypomnienie o pielęgnacji", + "careNotificationDescription": "Otrzymuj powiadomienia o pielęgnacji roślin", + "deletePlantTitle": "Usuń roślinę", + "deletePlantBody": "Zamierzasz trwale usunąć swoją roślinę, tej akcji nie można cofnąć.", + "exportData": "Eksportuj ogród", + "importData": "Importuj ogród", + "unsuccessfullyRestore": "Nie udało się przywrócić kopii zapasowej.", + "unsuccessfullyBackup": "Nie udało się utworzyć pliku kopii zapasowej.", + "atDay": "W ciągu dnia", + "atNoon": "W południe", + "atNight": "W nocy", + "@helloWorld": { + "description": "Konwencjonalne powitanie dla początkującego programisty" + } +}