feat(localization): update thumbnail settings and add fit options translations

This commit is contained in:
PiR1
2026-05-09 18:42:15 +02:00
parent d1bc5e030f
commit 5fc427c74b
8 changed files with 43 additions and 50 deletions
+2 -2
View File
@@ -1,12 +1,12 @@
{ {
"name": "picpeak-frontend", "name": "picpeak-frontend",
"version": "3.42.2-beta.1", "version": "3.42.7-beta.0",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "picpeak-frontend", "name": "picpeak-frontend",
"version": "3.42.2-beta.1", "version": "3.42.7-beta.0",
"dependencies": { "dependencies": {
"@tanstack/react-query": "^5.0.0", "@tanstack/react-query": "^5.0.0",
"@tiptap/extension-character-count": "^2.26.1", "@tiptap/extension-character-count": "^2.26.1",
@@ -24,8 +24,8 @@ const defaultSettings: ThumbnailSettings = {
interface FetchedSettings { interface FetchedSettings {
settings: Record<string, { value: string; description: string }>; settings: Record<string, { value: string; description: string }>;
fitOptions: string[]; fitOptions: Array<'cover' | 'contain' | 'fill' | 'inside' | 'outside'>;
formatOptions: string[]; formatOptions: Array<'jpeg' | 'png' | 'webp'>;
} }
export const ThumbnailsTab: React.FC = () => { export const ThumbnailsTab: React.FC = () => {
+6 -8
View File
@@ -909,15 +909,8 @@
"deleteSelected": "Ausgewählte löschen", "deleteSelected": "Ausgewählte löschen",
"bulkDelete": { "bulkDelete": {
"warning": "Die ausgewählten Veranstaltungen, alle ihre Fotos, Archive und Audit-Logs werden endgültig gelöscht. Diese Aktion kann nicht rückgängig gemacht werden.", "warning": "Die ausgewählten Veranstaltungen, alle ihre Fotos, Archive und Audit-Logs werden endgültig gelöscht. Diese Aktion kann nicht rückgängig gemacht werden.",
"passwordLabel": "Zur Bestätigung Ihr Passwort erneut eingeben",
"passwordPlaceholder": "Ihr Admin-Passwort",
"passwordHelp": "Wir benötigen Ihr Passwort als Schutz vor versehentlichen Massenlöschungen.",
"incorrectPassword": "Falsches Passwort. Es wurden keine Veranstaltungen gelöscht.",
"confirmLabel": "Geben Sie {{literal}} ein, um zu bestätigen", "confirmLabel": "Geben Sie {{literal}} ein, um zu bestätigen",
"confirmHelp": "Eine getippte Bestätigung verhindert versehentliche Löschungen und ist nicht von Browser-Autofill oder Passkey-Verknüpfungen betroffen.", "confirmHelp": "Eine getippte Bestätigung verhindert versehentliche Löschungen und ist nicht von Browser-Autofill oder Passkey-Verknüpfungen betroffen.",
"submit": "{{count}} Veranstaltungen löschen",
"processing": "{{count}} Veranstaltungen werden gelöscht. Dies kann einige Minuten dauern — bitte schließen Sie dieses Fenster nicht.",
"successAll": "{{count}} Veranstaltungen endgültig gelöscht",
"successPartial": "{{success}} Veranstaltungen gelöscht, {{failed}} fehlgeschlagen", "successPartial": "{{success}} Veranstaltungen gelöscht, {{failed}} fehlgeschlagen",
"errorGeneric": "Veranstaltungen konnten nicht gelöscht werden", "errorGeneric": "Veranstaltungen konnten nicht gelöscht werden",
"successAll_one": "{{count}} Veranstaltung dauerhaft gelöscht", "successAll_one": "{{count}} Veranstaltung dauerhaft gelöscht",
@@ -1235,7 +1228,12 @@
"saveError": "Vorschaubild-Einstellungen konnten nicht gespeichert werden", "saveError": "Vorschaubild-Einstellungen konnten nicht gespeichert werden",
"loadError": "Vorschaubild-Einstellungen konnten nicht geladen werden", "loadError": "Vorschaubild-Einstellungen konnten nicht geladen werden",
"infoTitle": "Über Vorschaubilder", "infoTitle": "Über Vorschaubilder",
"infoText": "Vorschaubilder sind kleinere Vorschauversionen Ihrer Originalbilder. Das Erhöhen der Größe oder Qualität verbessert die Darstellung in der Galerieübersicht, benötigt aber mehr Speicherplatz und Bandbreite. Nach dem Ändern der Einstellungen verwenden Sie \"Alle Vorschaubilder neu generieren\", um bestehende Fotos zu aktualisieren." "infoText": "Vorschaubilder sind kleinere Vorschauversionen Ihrer Originalbilder. Das Erhöhen der Größe oder Qualität verbessert die Darstellung in der Galerieübersicht, benötigt aber mehr Speicherplatz und Bandbreite. Nach dem Ändern der Einstellungen verwenden Sie \"Alle Vorschaubilder neu generieren\", um bestehende Fotos zu aktualisieren.",
"fit_cover": "Füllen (zuschneiden)",
"fit_contain": "Einpassen (innerhalb)",
"fit_fill": "Strecken",
"fit_inside": "Innen (verkleinern)",
"fit_outside": "Außen (vergrößern)"
}, },
"categories": { "categories": {
"title": "Kategorien", "title": "Kategorien",
+6 -8
View File
@@ -535,15 +535,8 @@
"deleteSelected": "Delete Selected", "deleteSelected": "Delete Selected",
"bulkDelete": { "bulkDelete": {
"warning": "This will permanently delete the selected events, all their photos, archives, and audit logs. This action cannot be undone.", "warning": "This will permanently delete the selected events, all their photos, archives, and audit logs. This action cannot be undone.",
"passwordLabel": "Re-enter your password to confirm",
"passwordPlaceholder": "Your admin password",
"passwordHelp": "We require your password as a safeguard against accidental bulk deletions.",
"incorrectPassword": "Incorrect password. No events were deleted.",
"confirmLabel": "Type {{literal}} to confirm", "confirmLabel": "Type {{literal}} to confirm",
"confirmHelp": "A typed confirmation prevents accidental deletions and isn't affected by browser autofill or passkey shortcuts.", "confirmHelp": "A typed confirmation prevents accidental deletions and isn't affected by browser autofill or passkey shortcuts.",
"submit": "Delete {{count}} events",
"processing": "Deleting {{count}} events. This may take a few minutes — please don't close this window.",
"successAll": "Permanently deleted {{count}} events",
"successPartial": "Deleted {{success}} events, {{failed}} failed", "successPartial": "Deleted {{success}} events, {{failed}} failed",
"errorGeneric": "Failed to delete events", "errorGeneric": "Failed to delete events",
"successAll_one": "events.bulkDelete.successAll", "successAll_one": "events.bulkDelete.successAll",
@@ -941,7 +934,12 @@
"saveError": "Failed to save thumbnail settings", "saveError": "Failed to save thumbnail settings",
"loadError": "Failed to load thumbnail settings", "loadError": "Failed to load thumbnail settings",
"infoTitle": "About Thumbnails", "infoTitle": "About Thumbnails",
"infoText": "Thumbnails are smaller preview images generated from your originals. Increasing the size or quality improves how photos look in the gallery grid but uses more storage and bandwidth. After changing settings, use \"Regenerate All Thumbnails\" to update existing photos." "infoText": "Thumbnails are smaller preview images generated from your originals. Increasing the size or quality improves how photos look in the gallery grid but uses more storage and bandwidth. After changing settings, use \"Regenerate All Thumbnails\" to update existing photos.",
"fit_cover": "Cover (crop to fill)",
"fit_contain": "Contain (fit within)",
"fit_fill": "Fill (stretch)",
"fit_inside": "Inside (shrink to fit)",
"fit_outside": "Outside (expand to cover)"
}, },
"seo": { "seo": {
"title": "SEO & Robots", "title": "SEO & Robots",
+9 -6
View File
@@ -583,7 +583,6 @@
"successAll_one": "{{count}} événement supprimé définitivement", "successAll_one": "{{count}} événement supprimé définitivement",
"successAll_other": "{{count}} événements supprimés définitivement", "successAll_other": "{{count}} événements supprimés définitivement",
"successPartial": "{{success}} événements supprimés, {{failed}} échoués", "successPartial": "{{success}} événements supprimés, {{failed}} échoués",
"incorrectPassword": "Mot de passe incorrect. Aucun événement supprimé.",
"errorGeneric": "Échec de la suppression des événements", "errorGeneric": "Échec de la suppression des événements",
"title_many": "Supprimer définitivement {{count}} événements ?", "title_many": "Supprimer définitivement {{count}} événements ?",
"title_one": "Supprimer définitivement {{count}} événement ?", "title_one": "Supprimer définitivement {{count}} événement ?",
@@ -592,12 +591,11 @@
"processing_one": "Suppression de {{count}} événement. Cela peut prendre quelques minutes — ne fermez pas cette fenêtre.", "processing_one": "Suppression de {{count}} événement. Cela peut prendre quelques minutes — ne fermez pas cette fenêtre.",
"processing_other": "Suppression de {{count}} événements. Cela peut prendre quelques minutes — ne fermez pas cette fenêtre.", "processing_other": "Suppression de {{count}} événements. Cela peut prendre quelques minutes — ne fermez pas cette fenêtre.",
"warning": "Cette action supprimera définitivement les événements sélectionnés, toutes leurs photos, archives et journaux d'audit. Cette action est irréversible.", "warning": "Cette action supprimera définitivement les événements sélectionnés, toutes leurs photos, archives et journaux d'audit. Cette action est irréversible.",
"passwordLabel": "Ressaisissez votre mot de passe pour confirmer",
"passwordPlaceholder": "Votre mot de passe administrateur",
"passwordHelp": "Votre mot de passe est requis pour éviter les suppressions accidentelles en masse.",
"submit_many": "Supprimer {{count}} événements", "submit_many": "Supprimer {{count}} événements",
"submit_one": "Supprimer {{count}} événement", "submit_one": "Supprimer {{count}} événement",
"submit_other": "Supprimer {{count}} événements" "submit_other": "Supprimer {{count}} événements",
"confirmLabel": "Ecris {{literal}} pour confirmer",
"confirmHelp": "Une confirmation saisie au clavier évite les suppressions accidentelles et n'est pas affectée par la fonction de remplissage automatique du navigateur ni par les raccourcis clavier."
}, },
"draft": "Brouillon", "draft": "Brouillon",
"expired": "Expiré", "expired": "Expiré",
@@ -953,7 +951,12 @@
"saveError": "Échec de l'enregistrement", "saveError": "Échec de l'enregistrement",
"loadError": "Échec du chargement", "loadError": "Échec du chargement",
"infoTitle": "À propos des vignettes", "infoTitle": "À propos des vignettes",
"infoText": "Ce sont des aperçus réduits de vos originaux." "infoText": "Ce sont des aperçus réduits de vos originaux.",
"fit_fill": "",
"fit_cover": "",
"fit_contain": "",
"fit_inside": "",
"fit_outside": ""
}, },
"seo": { "seo": {
"title": "SEO et Robots", "title": "SEO et Robots",
+6 -8
View File
@@ -535,15 +535,8 @@
"deleteSelected": "Geselecteerde verwijderen", "deleteSelected": "Geselecteerde verwijderen",
"bulkDelete": { "bulkDelete": {
"warning": "De geselecteerde evenementen, al hun foto's, archieven en auditlogboeken worden permanent verwijderd. Deze actie kan niet ongedaan worden gemaakt.", "warning": "De geselecteerde evenementen, al hun foto's, archieven en auditlogboeken worden permanent verwijderd. Deze actie kan niet ongedaan worden gemaakt.",
"passwordLabel": "Voer ter bevestiging uw wachtwoord opnieuw in",
"passwordPlaceholder": "Uw beheerderswachtwoord",
"passwordHelp": "We vragen om uw wachtwoord als bescherming tegen onbedoelde bulkverwijderingen.",
"incorrectPassword": "Onjuist wachtwoord. Er zijn geen evenementen verwijderd.",
"confirmLabel": "Typ {{literal}} om te bevestigen", "confirmLabel": "Typ {{literal}} om te bevestigen",
"confirmHelp": "Een getypte bevestiging voorkomt onbedoelde verwijderingen en wordt niet beïnvloed door browser-autofill of passkey-snelkoppelingen.", "confirmHelp": "Een getypte bevestiging voorkomt onbedoelde verwijderingen en wordt niet beïnvloed door browser-autofill of passkey-snelkoppelingen.",
"submit": "{{count}} evenementen verwijderen",
"processing": "{{count}} evenementen worden verwijderd. Dit kan enkele minuten duren — sluit dit venster niet.",
"successAll": "{{count}} evenementen permanent verwijderd",
"successPartial": "{{success}} evenementen verwijderd, {{failed}} mislukt", "successPartial": "{{success}} evenementen verwijderd, {{failed}} mislukt",
"errorGeneric": "Kan evenementen niet verwijderen", "errorGeneric": "Kan evenementen niet verwijderen",
"successAll_one": "{{count}} evenement definitief verwijderd", "successAll_one": "{{count}} evenement definitief verwijderd",
@@ -941,7 +934,12 @@
"saveError": "Kan miniatuurinstellingen niet opslaan", "saveError": "Kan miniatuurinstellingen niet opslaan",
"loadError": "Kan miniatuurinstellingen niet laden", "loadError": "Kan miniatuurinstellingen niet laden",
"infoTitle": "Over miniaturen", "infoTitle": "Over miniaturen",
"infoText": "Miniaturen zijn kleinere voorbeeldafbeeldingen die worden gegenereerd van uw originelen. Het vergroten van de afmetingen of kwaliteit verbetert hoe foto's er uitzien in het galerijraster, maar gebruikt meer opslag en bandbreedte. Na het wijzigen van instellingen, gebruik \"Alle miniaturen opnieuw genereren\" om bestaande foto's bij te werken." "infoText": "Miniaturen zijn kleinere voorbeeldafbeeldingen die worden gegenereerd van uw originelen. Het vergroten van de afmetingen of kwaliteit verbetert hoe foto's er uitzien in het galerijraster, maar gebruikt meer opslag en bandbreedte. Na het wijzigen van instellingen, gebruik \"Alle miniaturen opnieuw genereren\" om bestaande foto's bij te werken.",
"fit_cover": "Cover (bijsnijden om te vullen)",
"fit_contain": "Contain (passend binnen)",
"fit_fill": "Vullen (uitrekken)",
"fit_inside": "Binnenkant (verkleinen om te passen)",
"fit_outside": "Buitenkant (vergroten om te bedekken)"
}, },
"seo": { "seo": {
"title": "SEO & Robots", "title": "SEO & Robots",
+6 -8
View File
@@ -543,15 +543,8 @@
"deleteSelected": "Excluir selecionados", "deleteSelected": "Excluir selecionados",
"bulkDelete": { "bulkDelete": {
"warning": "Os eventos selecionados, todas as suas fotos, arquivos e logs de auditoria serão excluídos permanentemente. Esta ação não pode ser desfeita.", "warning": "Os eventos selecionados, todas as suas fotos, arquivos e logs de auditoria serão excluídos permanentemente. Esta ação não pode ser desfeita.",
"passwordLabel": "Digite sua senha novamente para confirmar",
"passwordPlaceholder": "Sua senha de administrador",
"passwordHelp": "Solicitamos sua senha como proteção contra exclusões em massa acidentais.",
"incorrectPassword": "Senha incorreta. Nenhum evento foi excluído.",
"confirmLabel": "Digite {{literal}} para confirmar", "confirmLabel": "Digite {{literal}} para confirmar",
"confirmHelp": "Uma confirmação digitada evita exclusões acidentais e não é afetada pelo autopreenchimento do navegador ou atalhos de passkey.", "confirmHelp": "Uma confirmação digitada evita exclusões acidentais e não é afetada pelo autopreenchimento do navegador ou atalhos de passkey.",
"submit": "Excluir {{count}} eventos",
"processing": "Excluindo {{count}} eventos. Isso pode levar alguns minutos — não feche esta janela.",
"successAll": "{{count}} eventos excluídos permanentemente",
"successPartial": "{{success}} eventos excluídos, {{failed}} com falha", "successPartial": "{{success}} eventos excluídos, {{failed}} com falha",
"errorGeneric": "Falha ao excluir eventos", "errorGeneric": "Falha ao excluir eventos",
"successAll_many": "{{count}} eventos eliminados permanentemente", "successAll_many": "{{count}} eventos eliminados permanentemente",
@@ -958,7 +951,12 @@
"saveError": "Falha ao salvar configurações", "saveError": "Falha ao salvar configurações",
"loadError": "Falha ao carregar configurações", "loadError": "Falha ao carregar configurações",
"infoTitle": "Sobre Miniaturas", "infoTitle": "Sobre Miniaturas",
"infoText": "Miniaturas são versões menores das fotos. Aumentar o tamanho melhora a aparência, mas usa mais espaço e banda." "infoText": "Miniaturas são versões menores das fotos. Aumentar o tamanho melhora a aparência, mas usa mais espaço e banda.",
"fit_cover": "Cover (cortar para preencher)",
"fit_contain": "Contain (ajustar ao espaço)",
"fit_fill": "Fill (esticar)",
"fit_inside": "Inside (encolher para caber)",
"fit_outside": "Outside (expandir para cobrir)"
}, },
"seo": { "seo": {
"title": "SEO e Robots", "title": "SEO e Robots",
+6 -8
View File
@@ -551,15 +551,8 @@
"deleteSelected": "Удалить выбранные", "deleteSelected": "Удалить выбранные",
"bulkDelete": { "bulkDelete": {
"warning": "Выбранные события, все их фотографии, архивы и журналы аудита будут удалены безвозвратно. Это действие невозможно отменить.", "warning": "Выбранные события, все их фотографии, архивы и журналы аудита будут удалены безвозвратно. Это действие невозможно отменить.",
"passwordLabel": "Введите пароль для подтверждения",
"passwordPlaceholder": "Ваш пароль администратора",
"passwordHelp": "Мы запрашиваем пароль для защиты от случайного массового удаления.",
"incorrectPassword": "Неверный пароль. События не были удалены.",
"confirmLabel": "Введите {{literal}} для подтверждения", "confirmLabel": "Введите {{literal}} для подтверждения",
"confirmHelp": "Подтверждение вводом текста предотвращает случайные удаления и не зависит от автозаполнения браузера или сочетаний клавиш с passkey.", "confirmHelp": "Подтверждение вводом текста предотвращает случайные удаления и не зависит от автозаполнения браузера или сочетаний клавиш с passkey.",
"submit": "Удалить {{count}} событий",
"processing": "Удаление {{count}} событий. Это может занять несколько минут — пожалуйста, не закрывайте это окно.",
"successAll": "Безвозвратно удалено {{count}} событий",
"successPartial": "Удалено {{success}} событий, {{failed}} не удалось", "successPartial": "Удалено {{success}} событий, {{failed}} не удалось",
"errorGeneric": "Не удалось удалить события", "errorGeneric": "Не удалось удалить события",
"successAll_few": "{{count}} события удалены навсегда", "successAll_few": "{{count}} события удалены навсегда",
@@ -1016,7 +1009,12 @@
"saveError": "Не удалось сохранить настройки миниатюр", "saveError": "Не удалось сохранить настройки миниатюр",
"loadError": "Не удалось загрузить настройки миниатюр", "loadError": "Не удалось загрузить настройки миниатюр",
"infoTitle": "О миниатюрах", "infoTitle": "О миниатюрах",
"infoText": "Миниатюры — это уменьшенные версии ваших оригинальных изображений. Увеличение размера или качества улучшает отображение фотографий в сетке галереи, но требует больше места и трафика. После изменения настроек используйте «Перегенерировать все миниатюры» для обновления существующих фотографий." "infoText": "Миниатюры — это уменьшенные версии ваших оригинальных изображений. Увеличение размера или качества улучшает отображение фотографий в сетке галереи, но требует больше места и трафика. После изменения настроек используйте «Перегенерировать все миниатюры» для обновления существующих фотографий.",
"fit_cover": "Заполнение (обрезка)",
"fit_contain": "Вписывание (внутри)",
"fit_fill": "Растягивание",
"fit_inside": "Внутри (уменьшить)",
"fit_outside": "Снаружи (увеличить)"
}, },
"photoDimensions": { "photoDimensions": {
"title": "Размеры фотографий", "title": "Размеры фотографий",