diff --git a/src/i18n/index.ts b/src/i18n/index.ts
index fa1c2e1..a8b84c9 100644
--- a/src/i18n/index.ts
+++ b/src/i18n/index.ts
@@ -6,3 +6,4 @@ export { default as ptBR } from './ptBR';
export { default as ru } from './ru';
export { default as zh } from './zh';
export { default as nl } from './nl';
+export { default as pl } from './pl';
diff --git a/src/i18n/pl.ts b/src/i18n/pl.ts
new file mode 100644
index 0000000..85c107b
--- /dev/null
+++ b/src/i18n/pl.ts
@@ -0,0 +1,41 @@
+export default {
+ csv: {
+ buttonMain: {
+ label: "Importuj",
+ tooltip: "Dopuszczalne formaty plików to '.csv' i '.tsv'",
+ emptyResource:
+ "'resource' nie został ustawiony, czy przekazałeś propa 'resource' do komponentu ImportButton?",
+ },
+ parsing: {
+ collidingIds: 'Znaleziono kolizje w polach "id"',
+ failedValidateRow: "CSV nie spełnił wymagań walidacyjnych",
+ invalidCsv: 'Nieprawidłowy plik "csv"',
+ },
+ dialogCommon: {
+ subtitle: 'Importowanie %{count} rekordów z %{fileName} do "%{resource}"',
+ conflictCount:
+ "Zasób %{resource} ma jeszcze %{conflictingCount} rekordów z konfliktami pól 'id'",
+ buttons: {
+ cancel: "Anuluj",
+ },
+ },
+ dialogImport: {
+ alertClose: "Zaimportowano %{fname}",
+ title: 'Importuję do "%{resource}"',
+ buttons: {
+ replaceAllConflicts: "Zastąp rekordy",
+ skipAllConflicts: "Pomiń rekordy",
+ letmeDecide: "Pozwól mi zadecydować dla każdego rekordu",
+ },
+ },
+ dialogDecide: {
+ title: 'Importowanie id %{id} do "%{resource}"',
+ buttons: {
+ replaceRow: "Zastąp rekord z id=%{id}",
+ addAsNewRow: "Dodaj nowy rekord (Nie zastępuj)",
+ skipDontReplace: "Pomiń ten rekord (Nie zastępuj)",
+ },
+ },
+ loading: "Ładowanie...",
+ },
+};