From 913f59f6f06dd7913632f21d938a5118d2aed455 Mon Sep 17 00:00:00 2001 From: dirtTW Date: Mon, 26 Aug 2024 18:32:01 +0700 Subject: [PATCH 1/3] Add Traditional Chinese (zh_TW.ts) Add Traditional Chinese localization --- loc/base.ts | 2 + loc/zh_TW.ts | 166 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 168 insertions(+) create mode 100644 loc/zh_TW.ts diff --git a/loc/base.ts b/loc/base.ts index 45fb768..f7ea979 100644 --- a/loc/base.ts +++ b/loc/base.ts @@ -4,6 +4,7 @@ import { en_US } from './en_US'; import { fr_FR } from './fr_FR'; import { ru_RU } from './ru_RU'; import { zh_CN } from './zh_CN'; +import { zh_TW } from './zh_TW'; import { ja_JP } from './ja_JP'; export type TTranslationMap = typeof en_GB.translations; @@ -19,6 +20,7 @@ export const locales = [ en_US, ru_RU, zh_CN, + zh_TW, fr_FR, ja_JP, ]; diff --git a/loc/zh_TW.ts b/loc/zh_TW.ts new file mode 100644 index 0000000..90aea77 --- /dev/null +++ b/loc/zh_TW.ts @@ -0,0 +1,166 @@ +// Credits: +// dirtTW + +import { TLocaleDefinition } from './base'; + +export const zh_TW: TLocaleDefinition = { + display_name: '繁體中文(臺灣)', + language_code: 'zh-TW', + translations: { + something_went_wrong: '發生了意料之外的錯誤', + description: '一款將 3D 模型轉換為 .schematic、.litematic、.schem 和 .nbt 等 Minecraft 方塊格式的工具', + init: { + initialising: '正在初始化...', + ready: '完成', + }, + settings: { + heading: '設定', + components: { + language: '語言', + }, + changing_language: '正在更換語言...', + changed_language: '已更換語言', + }, + import: { + heading: '1. 導入', + button: '載入網格模型', + importing_mesh: '正在導入網格模型...', + imported_mesh: '已導入網格模型', + rendering_mesh: '正在繪製網格模型...', + rendered_mesh: '已繪製網格模型', + no_vertices_loaded: '未載入任何頂點', + no_triangles_loaded: '未載入任何三角面', + could_not_scale_mesh: '無法正確縮放網格模型 - 此模型似乎為 2D 平面,請旋轉此模型,使其垂直高度不為零', + invalid_encoding: '發現無法識別的字元,請使用 UTF-8 編碼', + invalid_face_data: '網格面資料與頂點數量不匹配: {{count, number}}', + too_many_triangles: '導入的網格模型擁有 {{count, number}} 個三角面,請考慮使用 Blender 等建模軟體進行簡化', + vertex_triangle_count: '{{vertex_count, number}} 個頂點,{{triangle_count, number}} 個三角面', + missing_normals: '部分頂點未定義法線,可能導致體素錯誤對齊', + failed_to_parse_line: '嘗試解析「{{line}}」失敗,原因:「{{error}}」', + gltf_experimental: '導入 GLTF 目前為實驗性功能,可能產生預料外的結果', + components: { + input: '3D 模型(.obj, /.glb)', + rotation: '旋轉', + }, + }, + materials: { + heading: '2. 紋理', + button: '更新紋理', + updating_materials: '正在更新紋理...', + updated_materials: '已更新紋理', + components: { + 'no_materials_loaded': '未載入任何紋理', + 'material_type': '類型', + 'solid': '純色', + 'textured': '紋理', + 'no_image_loaded': '未載入影像', + 'choose': '選擇', + 'texture_filtering': '紋理過濾', + 'texture_wrap': '紋理環繞', + 'transparency': '透明度', + 'diffuse_map': '漫反射貼圖', + 'alpha': '不透明度', + 'alpha_map': '使用不透明度映射圖', + 'alpha_channel': '不透明度通道', + 'linear': '線性', + 'nearest': '最近', + 'clamp': '拉伸', + 'repeat': '重複', + 'none': '無', + 'alpha_constant': '使用不透明度常數', + 'diffuse_map_alpha_channel': '使用漫反射貼圖的不透明度通道', + }, + }, + voxelise: { + heading: '3. 體素化', + button: '體素化網格模型', + loading_voxel_mesh: '正在載入體素模型...', + loaded_voxel_mesh: '已載入體素模型', + rendering_voxel_mesh: '正在繪製體素模型...', + rendered_voxel_mesh: '已繪製體素模型', + voxel_count: '{{count, number}} 個體素', + voxel_mesh_dimensions: '大小為 {{x, number}} x {{y, number}} x {{z, number}} 體素', + components: { + constraint_axis: '約束軸向', + size: '尺寸', + algorithm: '演算法', + ambient_occlusion: '環境光遮蔽', + multisampling: '多重採樣', + voxel_overlap: '體素重疊', + colour: '顏色', + x_axis: 'X (寬度)(紅色軸)', + y_axis: 'Y (高度)(綠色軸)', + z_axis: 'Z (深度)(藍色軸)', + ray_based: '基於射線', + bvh_ray: '基於 BVH 射線', + ncrb: 'NCRB', + average_recommended: '均值(推薦)', + first: '首個', + on_recommended: '啟用(推薦)', + off_faster: '停用(速度更快)', + }, + }, + assign: { + heading: '3. 綁定', + button: '綁定方塊', + loading_block_mesh: '正在載入方塊模型...', + loaded_block_mesh: '已載入方塊模型', + rendering_block_mesh: '正在繪製方塊模型...', + rendered_block_mesh: '已繪製方塊模型', + deselected_blocks: '未選擇 {{count, number}} 種方塊', + selected_blocks: '已選擇 {{count, number}} 種方塊', + found_blocks: '已找到 {{count, number}} 種方塊', + block_not_namespaced: '「{{block_name}}」未正確使用命名空間,是不是指「minecraft:{{block_name}}」?', + could_not_use_block: '無法使用「{{block_name}}」,因為其不受支援', + reading_palette: '正在讀取 {{file_name}}...', + block_palette_missing_light_blocks: '方塊色板中不包含可供放置的發光方塊', + blocks_missing_textures: '{{count, number}} 種色板中的方塊遺失紋理,將不會被使用', + falling_blocks: '{{count, number}} 個方塊將在結構放置時因重力而下落', + components: { + texture_atlas: '紋理包', + block_palette: '方塊色板', + dithering: '混色抖動', + dithering_magnitude: '抖動程度', + fallable_blocks: '可掉落方塊', + colour_accuracy: '顏色精準度', + smart_averaging: '智慧平均', + smoothness: '平滑度', + calculate_lighting: '計算光照', + light_threshold: '光照閾值', + vanilla: '原版', + ordered: '有序', + random: '隨機', + off: '停用', + replace_falling: '使用固態方塊替換將要掉落的方塊', + replace_fallable: '使用固態方塊替換可以掉落的方塊', + do_nothing: '不替換', + search: '搜尋...', + }, + }, + export: { + heading: '5. 導出', + button: '導出建築結構', + exporting_structure: '正在導出結構...', + exported_structure: '已導出結構', + schematic_unsupported_blocks: '{{count, number}} 個方塊({{unique, number}} 種)不受 .schematic 檔案格式支援,將使用石頭方塊代替。嘗試使用支援 .schematic 格式的色板,或使用 .litematica 格式導出', + nbt_exporter_too_big: '結構方塊僅支援 48x48x48 大小的區域,此範圍外的方塊將會被移除', + components: { + exporter: '導出為', + litematic: 'Litematic (.litematic)', + schematic: 'Schematic (.schematic)', + sponge_schematic: 'Sponge Schematic (.schem)', + structure_blocks: '結構方塊 (.nbt)', + indexed_json: '有索引的 JSON (.json)', + uncompressed_json: '未壓縮的 JSON (.json)', + }, + }, + misc: { + red: '紅', + green: '綠', + blue: '藍', + alpha: '不透明度', + on: '啟用', + off: '停用', + }, + }, +}; \ No newline at end of file From 31626ece32366565dc2f7a3b051dac18d5a66d2e Mon Sep 17 00:00:00 2001 From: dirtTW Date: Mon, 26 Aug 2024 18:40:44 +0700 Subject: [PATCH 2/3] Update zh_TW.ts --- loc/zh_TW.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/loc/zh_TW.ts b/loc/zh_TW.ts index 90aea77..5ff0832 100644 --- a/loc/zh_TW.ts +++ b/loc/zh_TW.ts @@ -117,7 +117,7 @@ export const zh_TW: TLocaleDefinition = { blocks_missing_textures: '{{count, number}} 種色板中的方塊遺失紋理,將不會被使用', falling_blocks: '{{count, number}} 個方塊將在結構放置時因重力而下落', components: { - texture_atlas: '紋理包', + texture_atlas: '資源包', block_palette: '方塊色板', dithering: '混色抖動', dithering_magnitude: '抖動程度', From 6f4eaae69463c74c56e03b4bc1a0cc1385c28f0f Mon Sep 17 00:00:00 2001 From: TuteOne <79464561+TuteOneDev@users.noreply.github.com> Date: Fri, 13 Sep 2024 18:56:17 -0300 Subject: [PATCH 3/3] Spanish translation added --- loc/base.ts | 2 + loc/es_ES.ts | 188 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 190 insertions(+) create mode 100644 loc/es_ES.ts 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', + } + }, +};