Estilo de redacción vietnamita para servidores de Minecraft
Objetivo: cada texto que el jugador vea debe leerse como si un administrador amigable estuviera conversando — no como un documento oficial, no como Google Translate, ni tampoco de manera grosera o vulgar. La terminología del juego debe coincidir con la traducción oficial de Minecraft al vietnamita para que los jugadores la reconozcan de inmediato.
Usa esta habilidad al editar o escribir nuevo contenido: messages.yml, vi.yml, lang/*.yml, messages_vi.properties, archivos de configuración de ítems (display-name, lore), GUI/menús, hologramas, scoreboards, tab, diálogos de NPCs, broadcast/announcements, tutoriales, titles/actionbars.
También úsala al escribir un nuevo plugin (Java/Kotlin, Paper/Spigot/Velocity...): todas las cadenas visibles para el jugador en el código y en el archivo de idioma predeterminado del plugin deben seguir esta guía desde el principio — ver sección 8.
1. Procedimiento
- Lee el archivo completo antes de editarlo. Determina:
- Sintaxis de color: legacy
&a/§a, hex&#RRGGBB, o MiniMessage<green>,<gradient:...>. Mantén la sintaxis que usa el archivo, no la mezcles. - Placeholders:
%player%,{0},{player},<player>,%vault_eco_balance%... — anota la lista. - Tratamiento y tono actual (normalmente "bạn" [tú]). Si el archivo ya tiene un tono consistente, síguelo.
- Si el proyecto tiene un archivo de terminología (p. ej.,
docs/thuat-ngu.md,glossary.md), léelo y respétalo — tiene prioridad sobre cualquier otra fuente.
- Sintaxis de color: legacy
- Busca la terminología para nombres de bloques/ítems/mobs/efectos/encantamientos/atributos que aparezcan en el archivo según la sección 2.
- Clasifica cada línea según la sección 4 (error, éxito, información, instrucción, diálogo de NPC, anuncio, nombre de ítem, lore, botón de GUI, title/actionbar).
- Reescribe según las secciones 3 y 4. Las líneas que ya estén bien, déjalas como están — no corrijas por corregir.
- Verificación técnica (sección 6), valida el archivo.
- Informe según la sección 7.
2. Fuentes de referencia — toma la TERMINOLOGÍA, no el ESTILO
Las traducciones existentes al vietnamita son excelentes para unificar términos, pero sus oraciones suelen ser traducciones literales del inglés ("El saldo válido no es suficiente", "El procesamiento de la solicitud de teletransporte ha sido cancelado"). Por lo tanto: toma las palabras, no las oraciones.
Orden de prioridad al elegir una palabra:
- Archivo de terminología del proyecto (si existe).
vi_vnvanilla de Minecraft — fuente estándar para nombres de bloques, ítems, mobs, efectos, encantamientos, atributos, modos de juego, dificultades. Los jugadores con el cliente en vietnamita verán exactamente estas palabras en el juego, por lo que el lore y los mensajes deben coincidir.- Consulta en:
https://raw.githubusercontent.com/InventivetalentDev/minecraft-assets/<versión>/assets/minecraft/lang/vi_vn.json(p. ej.,<versión>=1.21). El archivo es grande; busca por clave (item.minecraft.diamond_sword,effect.minecraft.speed,enchantment.minecraft.sharpness,attribute.name.generic.attack_damage,gameMode.creative...) en lugar de leerlo completo. - No adivines nombres vanilla de memoria si no estás seguro — consulta el archivo, o marca "necesita confirmación" en el informe.
- Consulta en:
messages_vi.propertiesde EssentialsX — consulta términos para conceptos comunes de plugins (teletransporte, apodos, punto de reaparición, correo...):https://raw.githubusercontent.com/EssentialsX/Essentials/2.x/Essentials/src/main/resources/messages_vi.properties.- Cómo hablan realmente los jugadores vietnamitas (sección 3).
Terminología ya cotejada
Términos vanilla vi_vn (1.21) — úsalos exactamente así en lore/atributos:
| Inglés | vi_vn |
|---|---|
| Armor | Giáp |
| Armor Toughness | Độ bền áo giáp |
| Attack Damage | Sức tấn công |
| Attack Speed | Tốc độ tấn công |
| Max Health | Sinh lực tối đa |
| Movement Speed | Tốc độ |
| Knockback Resistance | Kháng đẩy lùi |
| Luck | Vận may |
| Mining Efficiency | Hiệu quả đào |
| Anvil | Cái đe |
| Ancient Debris | Mảnh vỡ cổ đại |
| Nether, The End | mantener "Nether", "The End" |
Términos de EssentialsX vi (consulta de conceptos):
| Concepto | EssentialsX vi | Sugerencia para chat/GUI |
|---|---|---|
| teleport | Dịch chuyển | "dịch chuyển" o "tp" (chat rápido) |
| enchantment | Phù phép | Phù phép |
| inventory | Túi | Túi đồ |
| item | Vật phẩm | "Vật phẩm" en GUI/títulos, "đồ" en chat |
| nickname | Biệt danh | Biệt danh |
| spawn point / bed | Điểm hồi sinh | Điểm hồi sinh |
| gamemode | Chế độ chơi (Sinh tồn, Sáng tạo, Phiêu lưu) | mantener igual |
| ender chest | Rương ender | Rương ender |
| kit | Bộ dụng cụ | "kit" — coincide con el comando /kit, los jugadores están acostumbrados |
| experience | Kinh nghiệm | Kinh nghiệm / EXP |
| offline | Ngoại tuyến | "offline" |
| server | Máy chủ | "server" |
Regla general: nombres de cosas en el juego (bloques, ítems, mobs, efectos, encantamientos, atributos) → según vanilla vi_vn. Conceptos de servidor/plugin que los jugadores llaman en inglés (kit, warp, home, rank, spawn, server, online/offline, AFK, PvP, top) → mantener en inglés. Una vez elegido, usa una sola palabra en todo el servidor.
Toma las palabras pero corrige las oraciones — ejemplos de EssentialsX vi
| Traducción original | Reescribir como |
|---|---|
| Bạn không có quyền để dùng lệnh này. | Bạn chưa có quyền dùng lệnh này. |
| Số dư hợp lệ không đủ. | Bạn không đủ tiền. |
| Bạn không thể thanh toán cho người chơi ngoại tuyến. | {0} đang offline, không chuyển tiền được. |
| Bạn không thể nhập lệnh đó trong {0}. | Đợi {0} nữa mới dùng lại được. |
| Dịch chuyển sẽ bắt đầu trong {0}. Đừng di chuyển. | Đứng yên {0}, sắp dịch chuyển... |
| Việc xử lí yêu cầu dịch chuyển đã bị hủy. | Đã hủy dịch chuyển vì bạn di chuyển. |
| Người chơi {0} chưa bao giờ vào máy chủ. | {0} chưa vào server lần nào. |
| Công cụ này còn {0} lần sử dụng nữa. | Công cụ này còn dùng được {0} lần. |
| Bạn không thể dùng bộ dụng cụ này trong {0}. | {0} nữa mới nhận lại kit này được. |
| Túi của bạn đã đầy. | Túi đồ đầy rồi, dọn bớt nhé. |
| Essentials đã được tải lại {0}. | Đã reload Essentials {0}. |
Al reescribir archivos messages_vi.properties de plugins, conserva los escapes de .properties (\:, \!, '' con MessageFormat).
3. Principios de tono
Natural, conciso, claro sobre qué hay que hacer.
- Tratamiento predeterminado: el sistema llama al jugador "bạn" [tú], sin tratamiento propio (o "server" cuando sea necesario). No uses "Quý khách" [Estimado cliente] ni "Người chơi" [Jugador] para dirigirte directamente. No uses "mày/tao" a menos que sea un diálogo de NPC con una personalidad clara.
- Primero lo breve, luego lo completo. Elimina frases superfluas: "để có thể" [para poder], "thực hiện" [realizar], "tiến hành" [proceder], "việc..." [el hecho de...], "đã được ... thành công" [ha sido... exitosamente], "hiện tại" [actualmente], "một cách" [de una manera], "hợp lệ" [válido].
- Activo en lugar de pasivo: "đã bị hủy" [ha sido cancelado] → "đã hủy" [cancelado]; "đã được tải lại" [ha sido recargado] → "đã reload" [recargado].
- Di qué hacer, no solo el error. "Sai cú pháp" [Sintaxis incorrecta] → "Dùng: /pay <tên> <số tiền>" [Usa: /pay ]. Si hay una razón, menciónala.
- Prioriza palabras vietnamitas comunes / las que usan los jugadores sobre términos sino-vietnamitas pesados o traducciones automáticas: "sử dụng" [utilizar] → "dùng" [usar]; "hoàn tất" [completar] → "xong" [listo]; "không hợp lệ" [no válido] → "không đúng" [no correcto] / indica qué es correcto; "trực tuyến/ngoại tuyến" → "online/offline"; "máy chủ" [servidor] → "server". (Excepción: los nombres de cosas del juego siguen el vanilla
vi_vn— sección 2.) - Partículas modales (nhé, nha, đó, rồi, nè, thôi): úsalas para suavizar la oración, pero máximo una partícula por oración y no todas las oraciones necesitan una. Las advertencias graves / bans / kicks no deben llevar partículas.
- Signos de exclamación con moderación: máximo un
!, solo para buenas noticias o eventos. Nada de!!!. - Uso de mayúsculas en vietnamita: solo mayúscula al inicio de la oración y en nombres propios. Los nombres de ítems/eventos/títulos de GUI llevan mayúscula en cada palabra. Evita TODO MAYÚSCULAS excepto para etiquetas cortas como
[VIP],MỚI[NUEVO]. - No grosero: nada de insultos, sarcasmo hacia el jugador, lenguaje de internet ("ko", "dc", "j", "z"), ni abreviaturas confusas.
- Consistente: un mismo concepto, una misma palabra en todo el servidor (si elegiste "xu" [monedas], no mezcles con "coin"/"tiền" [dinero]).
- Singular/plural: el vietnamita no marca plural — las claves tipo
day/daysse traducen igual ("ngày").
Señales de "lenguaje robótico" que deben corregirse
| Robótico | Más natural |
|---|---|
| Vui lòng ... [Por favor...] | (eliminar, o convertir en una invitación: "... nhé") |
| ... đã được thực hiện thành công. [... se ha realizado con éxito.] | Đã ... / ... xong rồi. [... listo.] |
| Việc ... đã bị hủy. [La acción... ha sido cancelada.] | Đã hủy ... (kèm lý do) [Cancelado... (con razón)] |
| Đã xảy ra lỗi. Vui lòng thử lại sau. [Ha ocurrido un error. Por favor, inténtalo de nuevo más tarde.] | Có lỗi rồi, thử lại sau chút nhé. Vẫn lỗi thì báo admin. [Hubo un error, inténtalo de nuevo en un momento. Si sigue fallando, avisa al admin.] |
| Người chơi được chỉ định không tồn tại. [El jugador especificado no existe.] | Không tìm thấy người chơi %player%. [No se encontró al jugador %player%.] |
| Lỗi: Đầu vào không hợp lệ. / Số không hợp lệ. [Error: Entrada no válida. / Número no válido.] | Nhập số thôi, ví dụ: 10 [Solo ingresa un número, por ejemplo: 10] |
| Cần phải là một số khác không. [Debe ser un número distinto de cero.] | Số lượng phải lớn hơn 0. [La cantidad debe ser mayor que 0.] |
| Thanh Kiếm Của Lửa [La Espada del Fuego] | Kiếm Lửa / Hỏa Kiếm [Espada de Fuego] |
4. Según el tipo de texto
Error / denegación — breve, tranquilo, indica cómo solucionarlo. Color rojo/naranja.
Bạn phải chờ %time% giây trước khi có thể sử dụng lại.→Từ từ đã, %time%s nữa mới dùng lại được.
Éxito — confirmación concisa, incluye el resultado específico.
Giao dịch đã được hoàn tất thành công!→Đã chuyển %amount% xu cho %target%.
Información / estado — da la información directamente.
Người chơi %player% hiện tại không trực tuyến.→%player% đang offline.
Instrucciones / tutorial — paso a paso, verbos al inicio de cada línea, una idea por línea, incluye comandos específicos.
Để có thể mở khóa tính năng này, bạn cần phải đạt được cấp độ 10.→Lên cấp 10 để mở khóa.[Sube al nivel 10 para desbloquear.]- Varios pasos:
1. Gõ /is create để tạo đảo[1. Escribe /is create para crear una isla] /2. Chặt cây, làm bàn chế tạo[2. Tala árboles, fabrica una mesa de trabajo] /3. Gõ /is help nếu bí[3. Escribe /is help si te atascas]
Diálogo de NPC — con personalidad según el personaje, usa el tratamiento adecuado al rol ("ta – ngươi" [yo – tú, formal], "tôi – cậu" [yo – tú, informal], "chú – cháu" [tío – sobrino]), pero comprensible y ≤ 2 líneas de chat por frase. Cada personaje mantiene su tono de principio a fin.
Xin chào người chơi. Tôi có một nhiệm vụ dành cho bạn.→Ê, cậu kia! Rảnh không? Tôi đang cần người giúp một chuyện.
Anuncio / broadcast — con un gancho al inicio, indica claramente qué – cuándo – dónde – qué hacer. 1–3 líneas.
Sự kiện Boss Thế Giới sẽ bắt đầu sau 5 phút. Hãy chuẩn bị.→5 phút nữa Boss Thế Giới xuất hiện! Gõ /warp boss, rủ team đi cùng.
Nombre de ítem — 1–4 palabras, que evoque una imagen, sin usar "Của" [de]. Se permiten términos sino-vietnamitas para ítems raros/legendarios (Hỏa Long Kiếm [Espada del Dragón de Fuego], Băng Tâm Giáp [Armadura del Corazón de Hielo]), pero no combines sin sentido. Los ítems básicos/variantes vanilla deben seguir el nombre vanilla vi_vn. Mayúscula en cada palabra.
Lore — cada línea ≤ ~35 caracteres visibles. Orden sugerido:
- 1–2 líneas de sabor (gris, cursiva) — cortas, con alma.
- Línea en blanco.
- Atributos concisos, usando nombres de atributos vanilla:
+10% Sức tấn công[+10% Daño de Ataque],+2 Giáp[+2 Armadura],+15% Tốc độ[+15% Velocidad]. - Línea en blanco + cómo usarlo:
Chuột phải để dùng[Click derecho para usar]. - Rareza al final.
Botones de GUI / títulos de menú — 1–3 palabras: Mua [Comprar], Bán hết [Vender todo], Quay lại [Volver], Trang sau [Siguiente página], Xác nhận [Confirmar]. El lore del botón indica la consecuencia: Click để mua 1 cái [Click para comprar 1] / Shift-click: mua 64.
Title / subtitle / actionbar — muy cortos (title ≤ ~20 caracteres, subtitle/actionbar ≤ ~40).
Progreso de tarea — patrón "Quedan {n} ... por ...": Còn 5 khối cần phá [Quedan 5 bloques por romper], Còn 3 con cừu cần xén lông [Quedan 3 ovejas por esquilar].
5. No te excedas
- No conviertas cada oración en una broma o meme — el servidor aún necesita ser claro.
- No "adolescentices" el lenguaje ("bro", "ngon lành cành đào"...) a menos que el archivo ya use ese tono.
- No añadas emojis/caracteres especiales si el archivo no los usa; si los usas, verifica que el resource pack de fuentes pueda mostrarlos.
- No cambies el significado original, no omitas información (números, condiciones, comandos).
- No "vietnamices" nombres de comandos, parámetros de comandos o nombres reales de mundos/warps.
- Ten cuidado con las cadenas que el jugador debe escribir (p. ej., el prefijo
password:de BetonQuest): traducir a vietnamita con acentos obligaría al jugador a escribir los acentos — márcalo para que el usuario decida.
6. Verificación técnica (obligatoria)
- No cambies las claves, solo los valores. Mantén la estructura de listas (si el lore es una lista, que siga siendo una lista).
- Conserva el 100% de los placeholders y las etiquetas de color/formato, incluidos prefijos como
@[legacy],@[minimessage]. Está permitido cambiar la posición del placeholder en la oración, pero no cambiar su nombre ni eliminarlo. - Si cambias el orden de la oración, recoloca el color después del placeholder (p. ej.,
&e%player% &7đã vào server[&e%player% &7ha entrado al servidor]; MiniMessage:<secondary>{0}<primary> ...). - YAML: las cadenas que comiencen con
&,%,{,<,[,*,!,@o que contengan:/#deben ir entre comillas. Dentro de comillas simples,'se escribe como''. .properties(EssentialsX, LuckPerms...): conserva\:,\!, y''cuando la cadena use MessageFormat con{0}.- Conserva
\ny los saltos de línea igual que el original si el plugin lo requiere. - No toques las líneas de configuración como
configVersion. - El archivo debe guardarse en UTF-8 sin BOM, vietnamita con todos los acentos, Unicode normalizado (NFC).
- Valida el YAML después de editar:
python -c "import yaml,sys; yaml.safe_load(open(sys.argv[1],encoding='utf-8'))" <archivo>. - Compara el conjunto de claves y placeholders por clave entre la versión antigua y la nueva usando la regex
%[^%\s]+%|\{[^}]+\}|<[^>]+>|&[0-9a-fk-or]|&#[0-9a-fA-F]{6}|@\[[a-z]+\]. - Si encuentras errores en el original (p. ej., dos descripciones de comandos intercambiadas), corrígelos para que tengan sentido y menciónalo claramente en el informe.
7. Formato del informe
Đã sửa 23/80 dòng trong messages.yml (57 dòng giữ nguyên vì đã ổn). [Corregidas 23/80 líneas en messages.yml (57 líneas sin cambios porque estaban bien).]
| Key | Trước [Antes] | Sau [Después] |
|---|---|---|
| economy.not-enough | Bạn không đủ số dư để thực hiện giao dịch này. | Bạn không đủ tiền (cần %price%). |
Thuật ngữ đã tra vanilla vi_vn: <key> → "<từ>" [Terminología consultada en vanilla vi_vn: <clave> → "<término>"]
Cần bạn xác nhận: [Necesito tu confirmación:]
- `quest.npc-3`: không rõ NPC này là ai — đang giữ giọng trung tính. [no está claro quién es este NPC — manteniendo tono neutral.]
8. Al escribir un plugin nuevo
Si el texto en el plugin nuevo se escribe correctamente desde el principio, no será necesario corregirlo línea por línea más adelante. Aplica las secciones 2 a 6 para todas las cadenas visibles para el jugador, más las siguientes reglas.
Separa el texto del código
- No hardcodees cadenas visibles para el jugador dentro de
sendMessage,Component.text, titles, GUI, lore... Todas las cadenas deben pasar por un archivo de idioma (p. ej.,src/main/resources/lang/vi.yml) y una capa de búsqueda por clave (Messages.get("economy.not-enough", ...)). - El vietnamita es el idioma predeterminado del archivo de idioma incluido. Si se necesita multilingüismo, añade
en.ymlen paralelo, con el mismo conjunto de claves. - El archivo de idioma predeterminado se copia a la carpeta del plugin en la primera ejecución (
saveResource), y cuando el plugin se actualiza, se añaden las nuevas claves faltantes al archivo del administrador, sin sobrescribir el texto que ya haya modificado. - Mantén el prefijo (
[MyraMC]) como una clave separada, insertado a través del placeholder<prefix>— no repitas el prefijo en cada mensaje.
Nombres de claves y placeholders
- Claves agrupadas por funcionalidad, con el formato
grupo.situación:economy.pay.success,economy.pay.not-enough,teleport.cancelled-moved,gui.shop.title. - Placeholders con nombre, no uses posiciones:
<player>,<amount>(MiniMessage) o{player}— no uses{0},{1}. Las oraciones en vietnamita a menudo requieren invertir el orden respecto al inglés; los placeholders con nombre ayudan al traductor/editor a no equivocarse. - No construyas oraciones concatenando cadenas en el código (
"Bạn nhận " + amount + " " + item["Recibes " + cantidad + " " + ítem]). Siempre deja la oración completa en el archivo de idioma con placeholders, porque el orden de las palabras varía según el idioma. - Cada clave es una oración completa para una situación específica. No reutilices un fragmento de oración en diferentes contextos.```