diff --git a/loc/base.ts b/loc/base.ts index 45fb768..c2fd2d0 100644 --- a/loc/base.ts +++ b/loc/base.ts @@ -1,6 +1,7 @@ import { DeepPartial } from '../src/util/type_util'; import { en_GB } from './en_GB'; import { en_US } from './en_US'; +import { es_ES } from './es_ES'; import { fr_FR } from './fr_FR'; import { ru_RU } from './ru_RU'; import { zh_CN } from './zh_CN'; @@ -17,6 +18,7 @@ export type TLocaleDefinition = { export const locales = [ en_GB, en_US, + es_ES, ru_RU, zh_CN, fr_FR, diff --git a/loc/es_ES.ts b/loc/es_ES.ts new file mode 100644 index 0000000..0a92b87 --- /dev/null +++ b/loc/es_ES.ts @@ -0,0 +1,188 @@ +// Credits: +// kassiopy studios team :) + +export const es_ES = { + display_name: 'Español', + language_code: 'es-ES', + translations: { + something_went_wrong: 'Algo salió mal de forma inesperada', + description: 'Una herramienta para convertir modelos 3D a formatos de Minecraft como a .schematic, .litematic, .schem y .nbt.', + init: { + initialising: 'Inicializando...', + ready: 'Listo', + }, + settings: { + heading: 'AJUSTES', + components: { + language: 'Idioma', + overrideHeight: 'Límite de altura máxima', + }, + changing_language: 'Cambiando idioma...', + changed_language: 'Idioma cambiado', + }, + import: { + heading: '1. IMPORTAR', + button: 'Cargando malla', + importing_mesh: 'Importando Malla...', + imported_mesh: 'Importada malla', + rendering_mesh: 'Renderizando malla...', + rendered_mesh: 'Malla renderizada', + no_vertices_loaded: 'Ningún vértice fue cargado', + no_triangles_loaded: 'Ningún triángulo fue cargado', + could_not_scale_mesh: 'No se pudo escalar la malla correctamente - La malla es probablemente 2D, rótala de tal forma que tenga una altura distinta de cero', + invalid_encoding: 'Se detectó caracteres desconocidos, por favor codifica usando UTF-8', + invalid_face_data: 'Los datos de cara tienen un número inesperado de datos de vértices: {{count, number}}', + too_many_triangles: 'La malla importada tiene {{count, number}} triángulos, considere simplificarlo en un DDC como Blender', + vertex_triangle_count: '{{vertex_count, number}} vértices, {{triangle_count, number}} triángulos', + missing_normals: 'Algunos vértices no tienen definidas sus normales, esto puede causar que los voxels se alineen de forma incorrecta', + failed_to_parse_line: 'Failed attempt to parse "{{line}}", because "{{error}}"', + gltf_experimental: 'El importador GLTF es experimental y puede producir resultados inesperados', + unsupported_image_type: 'No se pudo leer \'{{file_name}}\', tipo de archivo no compatible\'{{file_type}}\'', + components: { + input: 'Modelo 3D (.obj, .glb)', + no_file_chosen: 'No se ha elegido ningún archivo', + rotation: 'Rotación', + }, + }, + materials: { + heading: '2. MATERIALES', + button: 'Actualizar materiales', + updating_materials: 'Actualizando materiales...', + updated_materials: 'Materiales actualizados', + components: { + 'no_materials_loaded': 'Ningún material ha sido cargado', + 'material_type': 'Tipo', + 'solid': 'Solido', + 'textured': 'Texturizado', + 'no_image_loaded': 'Ninguna imagen cargada', + 'choose': 'Elegir', + 'texture_filtering': 'Filtrado', + 'texture_wrap': 'Unificar', + 'transparency': 'Transparencia', + 'diffuse_map': 'Diffuse map', + 'alpha': 'Alpha', + 'alpha_map': 'Mapa alfa', + 'alpha_channel': 'Canal alpha', + 'linear': 'Lineal', + 'nearest': 'Más cercano', + 'clamp': 'Clamp', + 'repeat': 'Repetir', + 'none': 'Ninguno', + 'alpha_constant': 'Alfa constante', + 'diffuse_map_alpha_channel': 'Canal alfa de mapa difuso', + }, + }, + voxelise: { + heading: '3. VOXELIZAR', + button: 'Voxelizar materiales', + loading_voxel_mesh: 'Cargando malla voxel...', + loaded_voxel_mesh: 'Malla voxel cargada', + rendering_voxel_mesh: 'Renderizando la malla voxel...', + rendered_voxel_mesh: 'Malla voxel renderizada', + voxel_count: '{{count, number}} voxels', + voxel_mesh_dimensions: 'Las dimensiones son {{x, number}} x {{y, number}} x {{z, number}}', + components: { + constraint_axis: 'Eje de restricción', + size: 'Tamaño', + algorithm: 'Algoritmo', + ambient_occlusion: 'Oclusión ambiental', + multisampling: 'Muestreo múltiple', + voxel_overlap: 'Solapamiento de voxels', + colour: 'Color', + x_axis: 'X (ancho) (rojo)', + y_axis: 'Y (alto) (verde)', + z_axis: 'Z (profundo) (azul)', + ray_based: 'Basado en rayos', + bvh_ray: 'BVH Basado en rayos', + ncrb: 'NCRB', + average_recommended: 'Medio (recomendado)', + first: 'First', + on_recommended: 'on (recomendado)', + off_faster: 'off (rápido)', + }, + }, + assign: { + heading: '3. ASIGNAR', + button: 'Asignar bloques', + loading_block_mesh: 'Cargando la malla de bloques...', + loaded_block_mesh: 'Malla de bloques cargada', + rendering_block_mesh: 'Renderizando la malla de bloques...', + rendered_block_mesh: 'Malla de bloques renderizada', + deselected_blocks: 'Bloques sin seleccionar {{count, number}}', + selected_blocks: 'Bloques seleccionados {{count, number}}', + found_blocks: 'Bloques encontrados {{count, number}}', + block_not_namespaced: '"{{block_name}}" no tiene el namespace correctamente, quizás se refiere a "minecraft:{{block_name}}"?', + could_not_use_block: 'No se puede utilizar el bloque "{{block_name}}" ya que no es compatible', + reading_palette: 'Leyendo {{file_name}}...', + block_palette_missing_light_blocks: 'La paleta de bloques no contiene bloques de luz para colocar', + blocks_missing_textures: '{{count, number}} Los bloques de paleta que carecen de un atlas de texturas, no se utilizarán', + falling_blocks: '{{count, number}} Los bloques caerán por gravedad cuando se coloque esta estructura', + components: { + texture_atlas: 'Atlas de texturas', + block_palette: 'Paleta de bloques', + dithering: 'Difuminado', + dithering_magnitude: 'Magnitud de difuminado', + fallable_blocks: 'Bloques caíbles', + colour_accuracy: 'Precisión del color', + smart_averaging: 'Promedio inteligente', + smoothness: 'Suavizado', + calculate_lighting: 'Calcular iluminación', + light_threshold: 'Umbral de luz', + vanilla: 'Vanilla', + ordered: 'Ordered', + random: 'Aleatorio', + off: 'Off', + replace_falling: 'Reemplazar bloques caíbles con solidos', + replace_fallable: 'Reemplazar bloques caíbles con solidos', + do_nothing: 'No hacer nada', + search: 'Buscar...', + }, + }, + export: { + heading: '5. EXPORTAR', + button: 'Exportar estructura', + exporting_structure: 'Exportando estructura...', + exported_structure: 'Estructura exportada', + schematic_unsupported_blocks: '{{count, number}} bloques ({{unique, number}} unique) no son compatibles con el formato .schematic, en su lugar se utilizarán bloques de piedra. Pruebe a utilizar la paleta compatible con schematics, o exporte utilizando .litematica', + nbt_exporter_too_big: 'Los bloques de estructura sólo admiten estructuras de tamaño 48x48x48, los bloques fuera de este rango serán eliminados', + components: { + exporter: 'Exporter', + litematic: 'Litematic (.litematic)', + schematic: 'Schematic (.schematic)', + sponge_schematic: 'Sponge Schematic (.schem)', + structure_blocks: 'Structure blocks (.nbt)', + indexed_json: 'Indexed JSON (.json)', + uncompressed_json: 'Uncompressed JSON (.json)', + }, + }, + misc: { + red: 'Rojo', + green: 'Verde', + blue: 'Azul', + alpha: 'Alfa', + on: 'On', + off: 'Off', + advanced_settings: 'Ajustes avanzados' + }, + toolbar: { + view_mesh: 'Ver malla', + view_voxel_mesh: 'Ver malla de voxels', + view_block_mesh: 'Ver malla de bloques', + toggle_grid: 'Alternar rejilla', + toggle_axes: 'Alternar ejes', + toggle_night_vision: 'Alternar visión nocturna', + toggle_slice_viewer: 'Alternar vista de porción', + decrement_slice: 'Disminuir porción', + increment_slice: 'Incrementar porción', + zoom_in: 'Acercar', + zoom_out: 'Alejar', + reset_camera: 'Resetear cámara', + perspective_camera: 'Cámara perspectiva', + orthographic_camera: 'Cámara ortográfica', + open_github_repo: 'Abrir repo de GitHub', + open_github_issues: 'Abrir GitHub issues', + join_discord: 'Unirse al servidor de Discord', + kofi_donate: 'Donar via Ko-fi', + } + }, +};