[dyad] Added language switcher - wrote 10 file(s), renamed 2 file(s), added next-intl package(s)

This commit is contained in:
[dyad]
2026-01-18 12:47:25 +01:00
parent 256c071bec
commit a64ce49523
10 changed files with 738 additions and 98 deletions

87
messages/en.json Normal file
View File

@@ -0,0 +1,87 @@
{
"HomePage": {
"title": "Image Web Exporter",
"description": "Upload a picture, then export it in a different resolution and format."
},
"LanguageSwitcher": {
"placeholder": "Language"
},
"ImageConverter": {
"uploadTitle": "Upload Images",
"uploadButton": "Click or drag and drop to upload",
"uploadHint": "PNG, JPG, WEBP supported",
"uploadedImagesTitle": "Uploaded Images",
"clearAll": "Clear All",
"downloadAll": "Download All ({count})",
"converting": "Converting...",
"baseNameLabel": "Base Name",
"finalNameLabel": "Final name: {filename}",
"downloadImageTooltip": "Download this image",
"removeImageTooltip": "Remove this image",
"imageSettingsTitle": "Image Settings",
"imageSettingsDescription": "Adjust resolution and scaling for all images.",
"aspectRatioLabel": "Aspect Ratio",
"aspectRatioTooltip": "Choose a preset aspect ratio or select 'Custom' to enter dimensions manually.",
"customAspectRatio": "Custom",
"squareAspectRatio": "1:1 (Square)",
"standardAspectRatio": "4:3 (Standard)",
"photoAspectRatio": "3:2 (Photography)",
"widescreenAspectRatio": "16:9 (Widescreen)",
"widthLabel": "Width (px)",
"widthTooltip": "Set the output width in pixels. Leave blank to use the original width.",
"heightLabel": "Height (px)",
"heightTooltip": "Set the output height in pixels. Leave blank to use the original height.",
"originalPlaceholder": "Original",
"swapDimensionsTooltip": "Swap the entered width and height values.",
"keepOrientationLabel": "Keep original orientation",
"keepOrientationTooltip": "Automatically swaps width and height to match the original image's orientation.",
"scalingLabel": "Scaling",
"scalingTooltip": "Determines how the image fits into the new dimensions.",
"scalingFill": "Fill (stretch to fit)",
"scalingCover": "Cover (crop to fit)",
"scalingContain": "Contain (letterbox)",
"positionLabel": "Position",
"positionTooltip": "Sets the anchor point for 'Cover' or 'Contain' scaling.",
"filenameSettingsTitle": "Filename Settings",
"filenameSettingsDescription": "Customize the output filenames.",
"useDefaultBaseNameLabel": "Use default base name",
"useDefaultBaseNameTooltip": "When enabled, all newly uploaded images will use the specified default base name.",
"defaultBaseNameLabel": "Default base name",
"applyToAll": "Apply to all",
"applyToAllTooltip": "Apply this base name to all currently uploaded images.",
"prefixLabel": "Prefix",
"prefixTooltip": "Add text to the beginning of every filename.",
"suffixLabel": "Suffix",
"suffixTooltip": "Add text to the end of every filename (before the number).",
"addSequentialNumberLabel": "Add sequential number",
"addSequentialNumberTooltip": "Append a numbered sequence to each filename.",
"startNumberLabel": "Start number",
"startNumberTooltip": "The first number to use in the sequence.",
"paddingDigitsLabel": "Padding digits",
"paddingDigitsTooltip": "Total number of digits for the counter, padded with leading zeros (e.g., 3 for 001).",
"qualitySettingsTitle": "Quality Settings",
"qualitySettingsDescription": "Choose format and compression level.",
"formatLabel": "Format",
"formatTooltip": "Choose the output file format for the images.",
"qualityLabel": "Quality",
"qualityTooltip": "Set compression quality for JPEG/WEBP. Higher is better quality but larger file size.",
"qualityDisabledHint": "Quality slider is disabled for PNG (lossless format).",
"applySettings": "Apply Settings",
"applySettingsTooltip": "Confirm and apply all the settings above. This does not download the images.",
"toasts": {
"noImages": "Please upload images first.",
"conversionStarting": "Starting conversion for {count} images...",
"conversionSuccess": "Successfully exported all {count} images!",
"conversionError": "An unknown error occurred during conversion.",
"singleConversionStarting": "Starting conversion for {filename}...",
"singleConversionSuccess": "Successfully exported {filename}!",
"settingsApplied": "Settings updated and will be used for all downloads.",
"noValidImages": "No valid image files found.",
"imagesAdded": "{count} image(s) added.",
"allCleared": "All images cleared.",
"noDefaultBaseName": "Please enter a default base name to apply.",
"uploadImagesFirst": "Upload some images first.",
"baseNameApplied": "Set base name to \\\"{baseName}\\\" for all {count} images."
}
}
}

87
messages/es.json Normal file
View File

@@ -0,0 +1,87 @@
{
"HomePage": {
"title": "Exportador de Imágenes Web",
"description": "Sube una imagen, luego expórtala en una resolución y formato diferente."
},
"LanguageSwitcher": {
"placeholder": "Idioma"
},
"ImageConverter": {
"uploadTitle": "Subir Imágenes",
"uploadButton": "Haz clic o arrastra y suelta para subir",
"uploadHint": "Soporta PNG, JPG, WEBP",
"uploadedImagesTitle": "Imágenes Subidas",
"clearAll": "Limpiar Todo",
"downloadAll": "Descargar Todo ({count})",
"converting": "Convirtiendo...",
"baseNameLabel": "Nombre Base",
"finalNameLabel": "Nombre final: {filename}",
"downloadImageTooltip": "Descargar esta imagen",
"removeImageTooltip": "Eliminar esta imagen",
"imageSettingsTitle": "Ajustes de Imagen",
"imageSettingsDescription": "Ajusta la resolución y el escalado para todas las imágenes.",
"aspectRatioLabel": "Relación de Aspecto",
"aspectRatioTooltip": "Elige una relación de aspecto preestablecida o selecciona 'Personalizado' para introducir las dimensiones manualmente.",
"customAspectRatio": "Personalizado",
"squareAspectRatio": "1:1 (Cuadrado)",
"standardAspectRatio": "4:3 (Estándar)",
"photoAspectRatio": "3:2 (Fotografía)",
"widescreenAspectRatio": "16:9 (Panorámico)",
"widthLabel": "Ancho (px)",
"widthTooltip": "Establece el ancho de salida en píxeles. Déjalo en blanco para usar el ancho original.",
"heightLabel": "Alto (px)",
"heightTooltip": "Establece la altura de salida en píxeles. Déjala en blanco para usar la altura original.",
"originalPlaceholder": "Original",
"swapDimensionsTooltip": "Intercambia los valores de ancho y alto introducidos.",
"keepOrientationLabel": "Mantener orientación original",
"keepOrientationTooltip": "Intercambia automáticamente el ancho y el alto para que coincida con la orientación de la imagen original.",
"scalingLabel": "Escalado",
"scalingTooltip": "Determina cómo se ajusta la imagen a las nuevas dimensiones.",
"scalingFill": "Rellenar (estirar para ajustar)",
"scalingCover": "Cubrir (recortar para ajustar)",
"scalingContain": "Contener (letterbox)",
"positionLabel": "Posición",
"positionTooltip": "Establece el punto de anclaje para el escalado 'Cubrir' o 'Contener'.",
"filenameSettingsTitle": "Ajustes de Nombre de Archivo",
"filenameSettingsDescription": "Personaliza los nombres de los archivos de salida.",
"useDefaultBaseNameLabel": "Usar nombre base por defecto",
"useDefaultBaseNameTooltip": "Cuando está activado, todas las imágenes recién subidas usarán el nombre base por defecto especificado.",
"defaultBaseNameLabel": "Nombre base por defecto",
"applyToAll": "Aplicar a todo",
"applyToAllTooltip": "Aplica este nombre base a todas las imágenes subidas actualmente.",
"prefixLabel": "Prefijo",
"prefixTooltip": "Añade texto al principio de cada nombre de archivo.",
"suffixLabel": "Sufijo",
"suffixTooltip": "Añade texto al final de cada nombre de archivo (antes del número).",
"addSequentialNumberLabel": "Añadir número secuencial",
"addSequentialNumberTooltip": "Añade una secuencia numerada a cada nombre de archivo.",
"startNumberLabel": "Número inicial",
"startNumberTooltip": "El primer número a usar en la secuencia.",
"paddingDigitsLabel": "Dígitos de relleno",
"paddingDigitsTooltip": "Número total de dígitos para el contador, rellenado con ceros a la izquierda (ej. 3 para 001).",
"qualitySettingsTitle": "Ajustes de Calidad",
"qualitySettingsDescription": "Elige el formato y el nivel de compresión.",
"formatLabel": "Formato",
"formatTooltip": "Elige el formato de archivo de salida para las imágenes.",
"qualityLabel": "Calidad",
"qualityTooltip": "Establece la calidad de compresión para JPEG/WEBP. Más alto es mejor calidad pero mayor tamaño de archivo.",
"qualityDisabledHint": "El control de calidad está desactivado para PNG (formato sin pérdidas).",
"applySettings": "Aplicar Ajustes",
"applySettingsTooltip": "Confirma y aplica todos los ajustes anteriores. Esto no descarga las imágenes.",
"toasts": {
"noImages": "Por favor, sube imágenes primero.",
"conversionStarting": "Iniciando conversión para {count} imágenes...",
"conversionSuccess": "¡Se exportaron con éxito todas las {count} imágenes!",
"conversionError": "Ocurrió un error desconocido durante la conversión.",
"singleConversionStarting": "Iniciando conversión para {filename}...",
"singleConversionSuccess": "¡Se exportó con éxito {filename}!",
"settingsApplied": "Ajustes actualizados y se usarán para todas las descargas.",
"noValidImages": "No se encontraron archivos de imagen válidos.",
"imagesAdded": "{count} imagen(es) añadida(s).",
"allCleared": "Todas las imágenes eliminadas.",
"noDefaultBaseName": "Por favor, introduce un nombre base por defecto para aplicar.",
"uploadImagesFirst": "Sube algunas imágenes primero.",
"baseNameApplied": "Se estableció el nombre base a \\\"{baseName}\\\" para todas las {count} imágenes."
}
}
}