diff --git a/client/src/i18n/translations/br.ts b/client/src/i18n/translations/br.ts index 3bb65c9b..437096d2 100644 --- a/client/src/i18n/translations/br.ts +++ b/client/src/i18n/translations/br.ts @@ -8,6 +8,8 @@ const br: Record = { 'common.loading': 'Carregando...', 'common.import': 'Importar', 'common.error': 'Erro', + 'common.unknownError': 'Erro desconhecido', + 'common.tooManyAttempts': 'Muitas tentativas. Tente novamente mais tarde.', 'common.back': 'Voltar', 'common.all': 'Todos', 'common.close': 'Fechar', @@ -27,11 +29,17 @@ const br: Record = { 'common.password': 'Senha', 'common.saving': 'Salvando...', 'common.saved': 'Salvo', + 'common.expand': 'Expandir', + 'common.collapse': 'Recolher', 'trips.reminder': 'Lembrete', 'trips.reminderNone': 'Nenhum', 'trips.reminderDay': 'dia', 'trips.reminderDays': 'dias', 'trips.reminderCustom': 'Personalizado', + 'trips.memberRemoved': '{username} removido', + 'trips.memberRemoveError': 'Falha ao remover', + 'trips.memberAdded': '{username} adicionado', + 'trips.memberAddError': 'Falha ao adicionar', 'trips.reminderDaysBefore': 'dias antes da partida', 'trips.reminderDisabledHint': 'Os lembretes de viagem estão desativados. Ative-os em Admin > Configurações > Notificações.', 'common.update': 'Atualizar', @@ -411,6 +419,10 @@ const br: Record = { 'login.mfaHint': 'Abra o Google Authenticator, Authy ou outro app TOTP.', 'login.mfaBack': '← Voltar ao login', 'login.mfaVerify': 'Verificar', + 'login.invalidInviteLink': 'Link de convite inválido ou expirado', + 'login.oidcFailed': 'Falha no login OIDC', + 'login.usernameRequired': 'Nome de usuário é obrigatório', + 'login.passwordMinLength': 'A senha deve ter pelo menos 8 caracteres', // Register 'register.passwordMismatch': 'As senhas não coincidem', @@ -903,6 +915,7 @@ const br: Record = { 'inspector.files': 'Arquivos', 'inspector.filesCount': '{count} arquivos', 'inspector.removeFromDay': 'Remover do dia', + 'inspector.remove': 'Remover', 'inspector.addToDay': 'Adicionar ao dia', 'inspector.confirmedRes': 'Reserva confirmada', 'inspector.pendingRes': 'Reserva pendente', @@ -1053,9 +1066,13 @@ const br: Record = { 'budget.settlement': 'Acerto', 'budget.settlementInfo': 'Clique no avatar de um membro em um item do orçamento para marcá-lo em verde — significa que ele pagou. O acerto mostra quem deve quanto a quem.', 'budget.netBalances': 'Saldos líquidos', + 'budget.linkedToReservation': 'Vinculado a uma reserva — edite o nome lá', // Files 'files.title': 'Arquivos', + 'files.pageTitle': 'Arquivos e documentos', + 'files.subtitle': '{count} arquivos para {trip}', + 'files.downloadPdf': 'Baixar PDF', 'files.count': '{count} arquivos', 'files.countSingular': '1 arquivo', 'files.uploaded': '{count} enviado(s)', @@ -1124,6 +1141,9 @@ const br: Record = { 'packing.allPacked': 'Tudo na mala!', 'packing.addPlaceholder': 'Adicionar item...', 'packing.categoryPlaceholder': 'Categoria...', + 'packing.saveAsTemplate': 'Salvar como modelo', + 'packing.templateName': 'Nome do modelo', + 'packing.templateSaved': 'Lista de bagagem salva como modelo', 'packing.filterAll': 'Todos', 'packing.filterOpen': 'Abertos', 'packing.filterDone': 'Prontos', @@ -1134,7 +1154,6 @@ const br: Record = { 'packing.menuCheckAll': 'Marcar todos', 'packing.menuUncheckAll': 'Desmarcar todos', 'packing.menuDeleteCat': 'Excluir categoria', - 'packing.assignUser': 'Atribuir usuário', 'packing.noMembers': 'Nenhum membro na viagem', 'packing.addItem': 'Adicionar item', 'packing.addItemPlaceholder': 'Nome do item...', @@ -1302,6 +1321,13 @@ const br: Record = { 'backup.keep.forever': 'Manter para sempre', // Photos + 'photos.title': 'Fotos', + 'photos.subtitle': '{count} fotos para {trip}', + 'photos.dropHere': 'Arraste fotos aqui...', + 'photos.dropHereActive': 'Arraste fotos aqui', + 'photos.captionForAll': 'Legenda (para todos)', + 'photos.captionPlaceholder': 'Legenda opcional...', + 'photos.addCaption': 'Adicionar legenda...', 'photos.allDays': 'Todos os dias', 'photos.noPhotos': 'Nenhuma foto ainda', 'photos.uploadHint': 'Envie suas fotos de viagem', @@ -1309,6 +1335,12 @@ const br: Record = { 'photos.linkPlace': 'Vincular lugar', 'photos.noPlace': 'Sem lugar', 'photos.uploadN': 'Enviar {n} foto(s)', + 'photos.linkDay': 'Vincular dia', + 'photos.noDay': 'Nenhum dia', + 'photos.dayLabel': 'Dia {number}', + 'photos.photoSelected': 'Foto selecionada', + 'photos.photosSelected': 'Fotos selecionadas', + 'photos.fileTypeHint': 'JPG, PNG, WebP · máx. 10 MB · até 30 fotos', // Backup restore modal 'backup.restoreConfirmTitle': 'Restaurar backup?', @@ -1335,6 +1367,7 @@ const br: Record = { 'planner.routeCalculated': 'Rota calculada', 'planner.routeCalcFailed': 'Não foi possível calcular a rota', 'planner.routeError': 'Erro ao calcular a rota', + 'planner.icsExportFailed': 'Falha ao exportar ICS', 'planner.routeOptimized': 'Rota otimizada', 'planner.reservationUpdated': 'Reserva atualizada', 'planner.reservationAdded': 'Reserva adicionada', @@ -1771,6 +1804,21 @@ const br: Record = { 'common.justNow': 'agora mesmo', 'common.hoursAgo': 'há {count}h', 'common.daysAgo': 'há {count}d', + 'budget.linkedToReservation': 'Vinculado a uma reserva — edite o nome lá', + 'packing.saveAsTemplate': 'Salvar como modelo', + 'packing.templateName': 'Nome do modelo', + 'packing.templateSaved': 'Lista de bagagem salva como modelo', + 'memories.notConnectedMultipleHint': 'Conecte qualquer um destes provedores de fotos: {provider_names} em Configurações para poder adicionar fotos a esta viagem.', + 'memories.providerUrl': 'URL do servidor', + 'memories.providerApiKey': 'Chave da API', + 'memories.providerUsername': 'Nome de usuário', + 'memories.providerPassword': 'Senha', + 'memories.saveError': 'Não foi possível salvar as configurações de {provider_name}', + 'memories.saveRouteNotConfigured': 'A rota de salvamento não está configurada para este provedor', + 'memories.testRouteNotConfigured': 'A rota de teste não está configurada para este provedor', + 'memories.fillRequiredFields': 'Por favor preencha todos os campos obrigatórios', + 'memories.selectAlbumMultiple': 'Selecionar álbum', + 'memories.selectPhotosMultiple': 'Selecionar fotos', 'journey.title': 'Jornada', 'journey.subtitle': 'Registre suas viagens em tempo real', 'journey.new': 'Nova jornada', @@ -1938,6 +1986,10 @@ const br: Record = { 'journey.settings.saveFailed': 'Não foi possível salvar', 'journey.settings.coverUpdated': 'Capa atualizada', 'journey.settings.coverFailed': 'Falha no envio', + 'journey.settings.failedToDelete': 'Falha ao excluir', + 'journey.entries.deleteTitle': 'Excluir entrada', + 'journey.photosUploaded': '{count} fotos enviadas', + 'journey.photosAdded': '{count} fotos adicionadas', 'journey.public.notFound': 'Não encontrado', 'journey.public.notFoundMessage': 'Esta jornada não existe ou o link expirou.', 'journey.public.readOnly': 'Somente leitura · Jornada pública', diff --git a/client/src/i18n/translations/cs.ts b/client/src/i18n/translations/cs.ts index cf7fe0c8..87b35787 100644 --- a/client/src/i18n/translations/cs.ts +++ b/client/src/i18n/translations/cs.ts @@ -8,6 +8,8 @@ const cs: Record = { 'common.loading': 'Načítání...', 'common.import': 'Importovat', 'common.error': 'Chyba', + 'common.unknownError': 'Neznámá chyba', + 'common.tooManyAttempts': 'Příliš mnoho pokusů. Zkuste to prosím znovu.', 'common.back': 'Zpět', 'common.all': 'Vše', 'common.close': 'Zavřít', @@ -26,6 +28,12 @@ const cs: Record = { 'common.email': 'E-mail', 'common.password': 'Heslo', 'common.saving': 'Ukládání...', + 'trips.memberRemoved': '{username} odebrán', + 'trips.memberRemoveError': 'Odebrání se nezdařilo', + 'trips.memberAdded': '{username} přidán', + 'trips.memberAddError': 'Přidání se nezdařilo', + 'common.expand': 'Rozbalit', + 'common.collapse': 'Sbalit', 'common.saved': 'Uloženo', 'trips.reminder': 'Připomínka', 'trips.reminderNone': 'Žádná', @@ -411,6 +419,10 @@ const cs: Record = { 'login.mfaHint': 'Otevřete Google Authenticator, Authy nebo jinou TOTP aplikaci.', 'login.mfaBack': '← Zpět k přihlášení', 'login.mfaVerify': 'Ověřit', + 'login.invalidInviteLink': 'Neplatný nebo vypršelý odkaz s pozvánkou', + 'login.oidcFailed': 'Přihlášení přes OIDC se nezdařilo', + 'login.usernameRequired': 'Uživatelské jméno je povinné', + 'login.passwordMinLength': 'Heslo musí mít alespoň 8 znaků', // Registrace (Register) 'register.passwordMismatch': 'Hesla se neshodují', @@ -932,6 +944,7 @@ const cs: Record = { 'inspector.files': 'Soubory', 'inspector.filesCount': '{count} souborů', 'inspector.removeFromDay': 'Odebrat ze dne', + 'inspector.remove': 'Odstranit', 'inspector.addToDay': 'Přidat ke dni', 'inspector.confirmedRes': 'Potvrzená rezervace', 'inspector.pendingRes': 'Čekající rezervace', @@ -1082,9 +1095,13 @@ const cs: Record = { 'budget.settlement': 'Vyúčtování', 'budget.settlementInfo': 'Klikněte na avatar člena u rozpočtové položky pro zelené označení – to znamená, že zaplatil. Vyúčtování pak ukazuje, kdo komu a kolik dluží.', 'budget.netBalances': 'Čisté zůstatky', + 'budget.linkedToReservation': 'Propojeno s rezervací — upravte název tam', // Soubory (Files) 'files.title': 'Soubory', + 'files.pageTitle': 'Soubory a dokumenty', + 'files.subtitle': '{count} souborů pro {trip}', + 'files.downloadPdf': 'Stáhnout PDF', 'files.count': '{count} souborů', 'files.countSingular': '1 soubor', 'files.uploaded': '{count} nahráno', @@ -1163,7 +1180,6 @@ const cs: Record = { 'packing.menuCheckAll': 'Označit vše', 'packing.menuUncheckAll': 'Odznačit vše', 'packing.menuDeleteCat': 'Smazat kategorii', - 'packing.assignUser': 'Přiřadit uživatele', 'packing.noMembers': 'Žádní členové cesty', 'packing.addItem': 'Přidat položku', 'packing.addItemPlaceholder': 'Název položky...', @@ -1331,6 +1347,13 @@ const cs: Record = { 'backup.keep.forever': 'Uchovávat navždy', // Fotky + 'photos.title': 'Fotografie', + 'photos.subtitle': '{count} fotek pro {trip}', + 'photos.dropHere': 'Přetáhněte fotografie sem...', + 'photos.dropHereActive': 'Přetáhněte fotografie sem', + 'photos.captionForAll': 'Popisek (pro všechny)', + 'photos.captionPlaceholder': 'Volitelný popisek...', + 'photos.addCaption': 'Přidat popisek...', 'photos.allDays': 'Všechny dny', 'photos.noPhotos': 'Zatím žádné fotky', 'photos.uploadHint': 'Nahrajte své cestovní fotky', @@ -1338,6 +1361,12 @@ const cs: Record = { 'photos.linkPlace': 'Propojit s místem', 'photos.noPlace': 'Žádné místo', 'photos.uploadN': 'Nahrát {n} fotek', + 'photos.linkDay': 'Propojit den', + 'photos.noDay': 'Žádný den', + 'photos.dayLabel': 'Den {number}', + 'photos.photoSelected': 'Fotografie vybrána', + 'photos.photosSelected': 'Fotografie vybrány', + 'photos.fileTypeHint': 'JPG, PNG, WebP · max. 10 MB · až 30 fotografií', // Obnovení zálohy 'backup.restoreConfirmTitle': 'Obnovit zálohu?', @@ -1364,6 +1393,7 @@ const cs: Record = { 'planner.routeCalculated': 'Trasa vypočtena', 'planner.routeCalcFailed': 'Trasu se nepodařilo vypočítat', 'planner.routeError': 'Chyba při výpočtu trasy', + 'planner.icsExportFailed': 'Export ICS se nezdařil', 'planner.routeOptimized': 'Trasa optimalizována', 'planner.reservationUpdated': 'Rezervace aktualizována', 'planner.reservationAdded': 'Rezervace přidána', @@ -1776,6 +1806,21 @@ const cs: Record = { 'common.justNow': 'právě teď', 'common.hoursAgo': 'před {count} h', 'common.daysAgo': 'před {count} d', + 'budget.linkedToReservation': 'Propojeno s rezervací — upravte název tam', + 'packing.saveAsTemplate': 'Uložit jako šablonu', + 'packing.templateName': 'Název šablony', + 'packing.templateSaved': 'Balicí seznam uložen jako šablona', + 'memories.notConnectedMultipleHint': 'Připojte některého z těchto poskytovatelů fotek: {provider_names} v Nastavení, abyste mohli přidávat fotky k tomuto výletu.', + 'memories.providerUrl': 'URL serveru', + 'memories.providerApiKey': 'API klíč', + 'memories.providerUsername': 'Uživatelské jméno', + 'memories.providerPassword': 'Heslo', + 'memories.saveError': 'Nepodařilo se uložit nastavení {provider_name}', + 'memories.saveRouteNotConfigured': 'Trasa uložení není nakonfigurována pro tohoto poskytovatele', + 'memories.testRouteNotConfigured': 'Testovací trasa není nakonfigurována pro tohoto poskytovatele', + 'memories.fillRequiredFields': 'Prosím vyplňte všechna povinná pole', + 'memories.selectAlbumMultiple': 'Vybrat album', + 'memories.selectPhotosMultiple': 'Vybrat fotky', 'journey.title': 'Cestovní deník', 'journey.subtitle': 'Zaznamenávejte své cesty průběžně', 'journey.new': 'Nový cestovní deník', @@ -1943,6 +1988,10 @@ const cs: Record = { 'journey.settings.saveFailed': 'Uložení selhalo', 'journey.settings.coverUpdated': 'Obal aktualizován', 'journey.settings.coverFailed': 'Nahrávání selhalo', + 'journey.settings.failedToDelete': 'Smazání se nezdařilo', + 'journey.entries.deleteTitle': 'Smazat záznam', + 'journey.photosUploaded': '{count} fotografií nahráno', + 'journey.photosAdded': '{count} fotografií přidáno', 'journey.public.notFound': 'Nenalezeno', 'journey.public.notFoundMessage': 'Tento cestovní deník neexistuje nebo odkaz vypršel.', 'journey.public.readOnly': 'Pouze ke čtení · Veřejný cestovní deník', diff --git a/client/src/i18n/translations/es.ts b/client/src/i18n/translations/es.ts index ac258712..1b68816f 100644 --- a/client/src/i18n/translations/es.ts +++ b/client/src/i18n/translations/es.ts @@ -1811,6 +1811,18 @@ const es: Record = { 'common.justNow': 'justo ahora', 'common.hoursAgo': 'hace {count}h', 'common.daysAgo': 'hace {count}d', + 'budget.linkedToReservation': 'Vinculado a una reserva — edita el nombre allí', + 'packing.saveAsTemplate': 'Guardar como plantilla', + 'packing.templateName': 'Nombre de la plantilla', + 'packing.templateSaved': 'Lista de equipaje guardada como plantilla', + 'memories.notConnectedMultipleHint': 'Conecta cualquiera de estos proveedores de fotos: {provider_names} en Ajustes para poder añadir fotos a este viaje.', + 'memories.providerUrl': 'URL del servidor', + 'memories.providerApiKey': 'Clave API', + 'memories.providerUsername': 'Nombre de usuario', + 'memories.providerPassword': 'Contraseña', + 'memories.saveError': 'No se pudo guardar la configuración de {provider_name}', + 'memories.selectAlbumMultiple': 'Seleccionar álbum', + 'memories.selectPhotosMultiple': 'Seleccionar fotos', 'journey.title': 'Travesía', 'journey.subtitle': 'Registra tus viajes en tiempo real', 'journey.new': 'Nueva travesía', diff --git a/client/src/i18n/translations/fr.ts b/client/src/i18n/translations/fr.ts index 42dd3a60..d424831d 100644 --- a/client/src/i18n/translations/fr.ts +++ b/client/src/i18n/translations/fr.ts @@ -1805,6 +1805,18 @@ const fr: Record = { 'common.justNow': 'à l\'instant', 'common.hoursAgo': 'il y a {count}h', 'common.daysAgo': 'il y a {count}j', + 'budget.linkedToReservation': 'Lié à une réservation — modifiez le nom là-bas', + 'packing.saveAsTemplate': 'Enregistrer comme modèle', + 'packing.templateName': 'Nom du modèle', + 'packing.templateSaved': 'Liste de bagages enregistrée comme modèle', + 'memories.notConnectedMultipleHint': 'Connectez l\'un de ces fournisseurs de photos : {provider_names} dans les Paramètres pour pouvoir ajouter des photos à ce voyage.', + 'memories.providerUrl': 'URL du serveur', + 'memories.providerApiKey': 'Clé API', + 'memories.providerUsername': 'Nom d\'utilisateur', + 'memories.providerPassword': 'Mot de passe', + 'memories.saveError': 'Impossible d\'enregistrer les paramètres de {provider_name}', + 'memories.selectAlbumMultiple': 'Sélectionner un album', + 'memories.selectPhotosMultiple': 'Sélectionner des photos', 'journey.title': 'Journal de voyage', 'journey.subtitle': 'Suivez vos voyages en temps réel', 'journey.new': 'Nouveau journal', diff --git a/client/src/i18n/translations/hu.ts b/client/src/i18n/translations/hu.ts index 009b4897..759ef703 100644 --- a/client/src/i18n/translations/hu.ts +++ b/client/src/i18n/translations/hu.ts @@ -8,6 +8,8 @@ const hu: Record = { 'common.loading': 'Betöltés...', 'common.import': 'Importálás', 'common.error': 'Hiba', + 'common.unknownError': 'Ismeretlen hiba', + 'common.tooManyAttempts': 'Túl sok próbálkozás. Kérjük, próbálja újra később.', 'common.back': 'Vissza', 'common.all': 'Összes', 'common.close': 'Bezárás', @@ -26,6 +28,12 @@ const hu: Record = { 'common.email': 'E-mail', 'common.password': 'Jelszó', 'common.saving': 'Mentés...', + 'trips.memberRemoved': '{username} eltávolítva', + 'trips.memberRemoveError': 'Eltávolítás sikertelen', + 'trips.memberAdded': '{username} hozzáadva', + 'trips.memberAddError': 'Hozzáadás sikertelen', + 'common.expand': 'Kibontás', + 'common.collapse': 'Összecsukás', 'common.saved': 'Mentve', 'trips.reminder': 'Emlékeztető', 'trips.reminderNone': 'Nincs', @@ -411,6 +419,10 @@ const hu: Record = { 'login.mfaHint': 'Nyisd meg a Google Authenticator, Authy vagy más TOTP alkalmazást.', 'login.mfaBack': '← Vissza a bejelentkezéshez', 'login.mfaVerify': 'Ellenőrzés', + 'login.invalidInviteLink': 'Érvénytelen vagy lejárt meghívólink', + 'login.oidcFailed': 'OIDC bejelentkezés sikertelen', + 'login.usernameRequired': 'A felhasználónév kötelező', + 'login.passwordMinLength': 'A jelszónak legalább 8 karakter hosszúnak kell lennie', // Regisztráció 'register.passwordMismatch': 'A jelszavak nem egyeznek', @@ -931,6 +943,7 @@ const hu: Record = { 'inspector.files': 'Fájlok', 'inspector.filesCount': '{count} fájl', 'inspector.removeFromDay': 'Eltávolítás a napról', + 'inspector.remove': 'Eltávolítás', 'inspector.addToDay': 'Hozzáadás a naphoz', 'inspector.confirmedRes': 'Megerősített foglalás', 'inspector.pendingRes': 'Függőben lévő foglalás', @@ -1081,9 +1094,13 @@ const hu: Record = { 'budget.settlement': 'Elszámolás', 'budget.settlementInfo': 'Kattints egy tag avatárjára egy költségvetési tételen a zöld jelöléshez — ez azt jelenti, hogy fizetett. Az elszámolás ezután mutatja, ki kinek mennyivel tartozik.', 'budget.netBalances': 'Nettó egyenlegek', + 'budget.linkedToReservation': 'Foglaláshoz kapcsolva — ott módosítsa a nevet', // Fájlok 'files.title': 'Fájlok', + 'files.pageTitle': 'Fájlok és dokumentumok', + 'files.subtitle': '{count} fájl a következőhöz: {trip}', + 'files.downloadPdf': 'PDF letöltése', 'files.count': '{count} fájl', 'files.countSingular': '1 fájl', 'files.uploaded': '{count} feltöltve', @@ -1162,7 +1179,6 @@ const hu: Record = { 'packing.menuCheckAll': 'Összes kipipálása', 'packing.menuUncheckAll': 'Összes jelölés törlése', 'packing.menuDeleteCat': 'Kategória törlése', - 'packing.assignUser': 'Felhasználó hozzárendelése', 'packing.noMembers': 'Nincsenek utazási tagok', 'packing.addItem': 'Tétel hozzáadása', 'packing.addItemPlaceholder': 'Tétel neve...', @@ -1330,6 +1346,13 @@ const hu: Record = { 'backup.keep.forever': 'Örökre megőrzés', // Fotók + 'photos.title': 'Fotók', + 'photos.subtitle': '{count} fotó a következőhöz: {trip}', + 'photos.dropHere': 'Húzza ide a fényképeket...', + 'photos.dropHereActive': 'Húzza ide a fényképeket', + 'photos.captionForAll': 'Felirat (mindenkinek)', + 'photos.captionPlaceholder': 'Opcionális felirat...', + 'photos.addCaption': 'Felirat hozzáadása...', 'photos.allDays': 'Minden nap', 'photos.noPhotos': 'Még nincsenek fotók', 'photos.uploadHint': 'Töltsd fel az úti fotóidat', @@ -1337,6 +1360,12 @@ const hu: Record = { 'photos.linkPlace': 'Hely társítása', 'photos.noPlace': 'Nincs hely', 'photos.uploadN': '{n} fotó feltöltése', + 'photos.linkDay': 'Nap csatolása', + 'photos.noDay': 'Nincs nap', + 'photos.dayLabel': '{number}. nap', + 'photos.photoSelected': 'Fotó kiválasztva', + 'photos.photosSelected': 'Fotók kiválasztva', + 'photos.fileTypeHint': 'JPG, PNG, WebP · max. 10 MB · legfeljebb 30 fotó', // Mentés visszaállítása modal 'backup.restoreConfirmTitle': 'Mentés visszaállítása?', @@ -1363,6 +1392,7 @@ const hu: Record = { 'planner.routeCalculated': 'Útvonal kiszámítva', 'planner.routeCalcFailed': 'Nem sikerült kiszámítani az útvonalat', 'planner.routeError': 'Hiba az útvonalszámítás során', + 'planner.icsExportFailed': 'Az ICS-exportálás sikertelen', 'planner.routeOptimized': 'Útvonal optimalizálva', 'planner.reservationUpdated': 'Foglalás frissítve', 'planner.reservationAdded': 'Foglalás hozzáadva', @@ -1773,6 +1803,21 @@ const hu: Record = { 'common.justNow': 'az imént', 'common.hoursAgo': '{count} órája', 'common.daysAgo': '{count} napja', + 'budget.linkedToReservation': 'Foglaláshoz kapcsolva — a nevet ott módosítsd', + 'packing.saveAsTemplate': 'Mentés sablonként', + 'packing.templateName': 'Sablon neve', + 'packing.templateSaved': 'Csomaglista sablonként mentve', + 'memories.notConnectedMultipleHint': 'Csatlakoztasd valamelyik fotószolgáltatót: {provider_names} a Beállításokban, hogy fotókat adhass hozzá ehhez az úthoz.', + 'memories.providerUrl': 'Szerver URL', + 'memories.providerApiKey': 'API-kulcs', + 'memories.providerUsername': 'Felhasználónév', + 'memories.providerPassword': 'Jelszó', + 'memories.saveError': 'Nem sikerült menteni a(z) {provider_name} beállításait', + 'memories.saveRouteNotConfigured': 'A mentési útvonal nincs konfigurálva ehhez a szolgáltatóhoz', + 'memories.testRouteNotConfigured': 'A tesztútvonal nincs konfigurálva ehhez a szolgáltatóhoz', + 'memories.fillRequiredFields': 'Kérjük töltse ki az összes kötelező mezőt', + 'memories.selectAlbumMultiple': 'Album kiválasztása', + 'memories.selectPhotosMultiple': 'Fotók kiválasztása', 'journey.title': 'Útinaplók', 'journey.subtitle': 'Kövesse nyomon utazásait valós időben', 'journey.new': 'Új útinapló', @@ -1940,6 +1985,10 @@ const hu: Record = { 'journey.settings.saveFailed': 'Nem sikerült menteni', 'journey.settings.coverUpdated': 'Borítókép frissítve', 'journey.settings.coverFailed': 'A feltöltés sikertelen', + 'journey.settings.failedToDelete': 'Törlés sikertelen', + 'journey.entries.deleteTitle': 'Bejegyzés törlése', + 'journey.photosUploaded': '{count} fotó feltöltve', + 'journey.photosAdded': '{count} fotó hozzáadva', 'journey.public.notFound': 'Nem található', 'journey.public.notFoundMessage': 'Ez az útinapló nem létezik vagy a link lejárt.', 'journey.public.readOnly': 'Csak olvasható · Nyilvános útinapló', diff --git a/client/src/i18n/translations/it.ts b/client/src/i18n/translations/it.ts index 0b960049..dabaf43a 100644 --- a/client/src/i18n/translations/it.ts +++ b/client/src/i18n/translations/it.ts @@ -1806,6 +1806,18 @@ const it: Record = { 'common.justNow': 'proprio ora', 'common.hoursAgo': '{count}h fa', 'common.daysAgo': '{count}g fa', + 'budget.linkedToReservation': 'Collegato a una prenotazione — modifica il nome lì', + 'packing.saveAsTemplate': 'Salva come modello', + 'packing.templateName': 'Nome del modello', + 'packing.templateSaved': 'Lista bagagli salvata come modello', + 'memories.notConnectedMultipleHint': 'Collega uno di questi fornitori di foto: {provider_names} nelle Impostazioni per poter aggiungere foto a questo viaggio.', + 'memories.providerUrl': 'URL del server', + 'memories.providerApiKey': 'Chiave API', + 'memories.providerUsername': 'Nome utente', + 'memories.providerPassword': 'Password', + 'memories.saveError': 'Impossibile salvare le impostazioni di {provider_name}', + 'memories.selectAlbumMultiple': 'Seleziona album', + 'memories.selectPhotosMultiple': 'Seleziona foto', 'journey.title': 'Diario di viaggio', 'journey.subtitle': 'Segui i tuoi viaggi in tempo reale', 'journey.new': 'Nuovo diario', diff --git a/client/src/i18n/translations/nl.ts b/client/src/i18n/translations/nl.ts index ec25b662..3f077d72 100644 --- a/client/src/i18n/translations/nl.ts +++ b/client/src/i18n/translations/nl.ts @@ -1805,6 +1805,18 @@ const nl: Record = { 'common.justNow': 'zojuist', 'common.hoursAgo': '{count}u geleden', 'common.daysAgo': '{count}d geleden', + 'budget.linkedToReservation': 'Gekoppeld aan een reservering — bewerk de naam daar', + 'packing.saveAsTemplate': 'Opslaan als sjabloon', + 'packing.templateName': 'Sjabloonnaam', + 'packing.templateSaved': 'Paklijst opgeslagen als sjabloon', + 'memories.notConnectedMultipleHint': 'Verbind een van deze foto-aanbieders: {provider_names} in Instellingen om foto\'s aan deze reis toe te voegen.', + 'memories.providerUrl': 'Server-URL', + 'memories.providerApiKey': 'API-sleutel', + 'memories.providerUsername': 'Gebruikersnaam', + 'memories.providerPassword': 'Wachtwoord', + 'memories.saveError': 'Kon {provider_name}-instellingen niet opslaan', + 'memories.selectAlbumMultiple': 'Selecteer album', + 'memories.selectPhotosMultiple': 'Selecteer foto\'s', 'journey.title': 'Reisverslag', 'journey.subtitle': 'Leg je reizen vast terwijl je onderweg bent', 'journey.new': 'Nieuw reisverslag', diff --git a/client/src/i18n/translations/pl.ts b/client/src/i18n/translations/pl.ts index 38282631..8d96eb66 100644 --- a/client/src/i18n/translations/pl.ts +++ b/client/src/i18n/translations/pl.ts @@ -7,6 +7,8 @@ const pl: Record = { 'common.add': 'Dodaj', 'common.loading': 'Ładowanie...', 'common.error': 'Błąd', + 'common.unknownError': 'Nieznany błąd', + 'common.tooManyAttempts': 'Zbyt wiele prób. Spróbuj ponownie później.', 'common.back': 'Wstecz', 'common.all': 'Wszystko', 'common.close': 'Zamknij', @@ -25,6 +27,12 @@ const pl: Record = { 'common.email': 'E-mail', 'common.password': 'Hasło', 'common.saving': 'Zapisywanie...', + 'trips.memberRemoved': '{username} usunięty', + 'trips.memberRemoveError': 'Nie udało się usunąć', + 'trips.memberAdded': '{username} dodany', + 'trips.memberAddError': 'Nie udało się dodać', + 'common.expand': 'Rozwiń', + 'common.collapse': 'Zwiń', 'common.update': 'Aktualizuj', 'common.change': 'Zmień', 'common.uploading': 'Przesyłanie...', @@ -381,6 +389,10 @@ const pl: Record = { 'login.mfaHint': 'Otwórz Google Authenticator, Authy lub inną aplikację TOTP.', 'login.mfaBack': '← Powrót do logowania', 'login.mfaVerify': 'Weryfikuj', + 'login.invalidInviteLink': 'Nieprawidłowy lub wygasły link zaproszenia', + 'login.oidcFailed': 'Logowanie OIDC nie powiodło się', + 'login.usernameRequired': 'Nazwa użytkownika jest wymagana', + 'login.passwordMinLength': 'Hasło musi mieć co najmniej 8 znaków', // Register 'register.passwordMismatch': 'Hasła nie są identyczne', @@ -892,6 +904,7 @@ const pl: Record = { 'inspector.files': 'Pliki', 'inspector.filesCount': '{count} plików', 'inspector.removeFromDay': 'Usuń z dnia', + 'inspector.remove': 'Usuń', 'inspector.addToDay': 'Dodaj do dnia', 'inspector.confirmedRes': 'Potwierdzona rezerwacja', 'inspector.pendingRes': 'Oczekująca rezerwacja', @@ -1042,6 +1055,9 @@ const pl: Record = { // Files 'files.title': 'Pliki', + 'files.pageTitle': 'Pliki i dokumenty', + 'files.subtitle': '{count} plików dla {trip}', + 'files.downloadPdf': 'Pobierz PDF', 'files.count': '{count} plików', 'files.countSingular': '1 plik', 'files.uploaded': '{count} przesłanych', @@ -1120,7 +1136,9 @@ const pl: Record = { 'packing.menuCheckAll': 'Zaznacz wszystko', 'packing.menuUncheckAll': 'Odznacz wszystko', 'packing.menuDeleteCat': 'Usuń kategorię', - 'packing.assignUser': 'Przypisz użytkownika', + 'packing.saveAsTemplate': 'Zapisz jako szablon', + 'packing.templateName': 'Nazwa szablonu', + 'packing.templateSaved': 'Lista pakowania zapisana jako szablon', 'packing.noMembers': 'Brak członków podróży', 'packing.addItem': 'Dodaj przedmiot', 'packing.addItemPlaceholder': 'Nazwa przedmiotu...', @@ -1288,6 +1306,13 @@ const pl: Record = { 'backup.keep.forever': 'Przechowuj na zawsze', // Photos + 'photos.title': 'Zdjęcia', + 'photos.subtitle': '{count} zdjęć dla {trip}', + 'photos.dropHere': 'Przeciągnij zdjęcia tutaj...', + 'photos.dropHereActive': 'Przeciągnij zdjęcia tutaj', + 'photos.captionForAll': 'Podpis (dla wszystkich)', + 'photos.captionPlaceholder': 'Opcjonalny podpis...', + 'photos.addCaption': 'Dodaj podpis...', 'photos.allDays': 'Wszystkie dni', 'photos.noPhotos': 'Brak zdjęć', 'photos.uploadHint': 'Prześlij zdjęcia z podróży', @@ -1295,6 +1320,12 @@ const pl: Record = { 'photos.linkPlace': 'Połącz z miejscem', 'photos.noPlace': 'Brak miejsca', 'photos.uploadN': 'Prześlij {n} zdjęć', + 'photos.linkDay': 'Połącz dzień', + 'photos.noDay': 'Brak dnia', + 'photos.dayLabel': 'Dzień {number}', + 'photos.photoSelected': 'Zdjęcie wybrane', + 'photos.photosSelected': 'Zdjęcia wybrane', + 'photos.fileTypeHint': 'JPG, PNG, WebP · maks. 10 MB · do 30 zdjęć', // Backup restore modal 'backup.restoreConfirmTitle': 'Przywrócić kopię zapasową?', @@ -1321,6 +1352,7 @@ const pl: Record = { 'planner.routeCalculated': 'Trasa została obliczona', 'planner.routeCalcFailed': 'Nie udało się obliczyć trasy', 'planner.routeError': 'Błąd obliczania trasy', + 'planner.icsExportFailed': 'Eksport ICS nie powiódł się', 'planner.routeOptimized': 'Trasa została zoptymalizowana', 'planner.reservationUpdated': 'Rezerwacja została zaktualizowana', 'planner.reservationAdded': 'Rezerwacja została dodana', @@ -1582,6 +1614,7 @@ const pl: Record = { 'inspector.trackStats': 'Statystyki trasy', 'budget.exportCsv': 'Eksportuj CSV', 'budget.table.date': 'Data', + 'budget.linkedToReservation': 'Powiązane z rezerwacją — edytuj nazwę tam', 'memories.testFirst': 'Najpierw przetestuj połączenie', 'memories.linkAlbum': 'Połącz album', 'memories.selectAlbum': 'Wybierz album Immich', @@ -1765,6 +1798,21 @@ const pl: Record = { 'common.justNow': 'przed chwilą', 'common.hoursAgo': '{count} godz. temu', 'common.daysAgo': '{count} dn. temu', + 'budget.linkedToReservation': 'Powiązane z rezerwacją — edytuj nazwę tam', + 'packing.saveAsTemplate': 'Zapisz jako szablon', + 'packing.templateName': 'Nazwa szablonu', + 'packing.templateSaved': 'Lista pakowania zapisana jako szablon', + 'memories.notConnectedMultipleHint': 'Połącz jednego z tych dostawców zdjęć: {provider_names} w Ustawieniach, aby dodawać zdjęcia do tej podróży.', + 'memories.providerUrl': 'Adres URL serwera', + 'memories.providerApiKey': 'Klucz API', + 'memories.providerUsername': 'Nazwa użytkownika', + 'memories.providerPassword': 'Hasło', + 'memories.saveError': 'Nie udało się zapisać ustawień {provider_name}', + 'memories.saveRouteNotConfigured': 'Trasa zapisu nie jest skonfigurowana dla tego dostawcy', + 'memories.testRouteNotConfigured': 'Trasa testowa nie jest skonfigurowana dla tego dostawcy', + 'memories.fillRequiredFields': 'Proszę wypełnić wszystkie wymagane pola', + 'memories.selectAlbumMultiple': 'Wybierz album', + 'memories.selectPhotosMultiple': 'Wybierz zdjęcia', 'journey.title': 'Dziennik podróży', 'journey.subtitle': 'Dokumentuj swoje podróże na bieżąco', 'journey.new': 'Nowy dziennik podróży', @@ -1932,6 +1980,10 @@ const pl: Record = { 'journey.settings.saveFailed': 'Zapisywanie nie powiodło się', 'journey.settings.coverUpdated': 'Okładka zaktualizowana', 'journey.settings.coverFailed': 'Przesyłanie nie powiodło się', + 'journey.settings.failedToDelete': 'Nie udało się usunąć', + 'journey.entries.deleteTitle': 'Usuń wpis', + 'journey.photosUploaded': '{count} zdjęć przesłanych', + 'journey.photosAdded': '{count} zdjęć dodanych', 'journey.public.notFound': 'Nie znaleziono', 'journey.public.notFoundMessage': 'Ten dziennik podróży nie istnieje lub link wygasł.', 'journey.public.readOnly': 'Tylko do odczytu · Publiczny dziennik podróży',