Guía actualizada a la nueva distribución de tablas de la Base de Datos actual del proyecto de TrinityCore, en la Wiki están desactualizadas.
La mayoría de datos se pueden extraer de WoWHead, aunque suele ser mejor extraerlos del servidor oficial o vídeos de Youtube por ejemplo, ya que WoWHead suele mezclar los datos del WoW esES y esMX (las diferencias están en algunas expresiones, traducciones de nombres propios y en el uso de distintos estudios de traducción, pero son escasas).
Parámetros de tabla quest_template_locale
ID = ID de misión (valor numérico).
Locale = Idioma al que pertenece la traducción (esES = español/España, esMX = español/Latinoamérica).
LogTitle = Nombre de la misión.
LogDescription = Descripción resumida de la misión.
QuestDescription = Descripción detallada de la misión.
AreaDescription = Texto que aparece en algunas misiones al pasar el puntero del ratón sobre el área del objetivo de la misión en el minimapa (ej. Investiga la tumba de X. Se suele poner en este campo el mismo texto que en LogDescription).
PortraitGiverText = Texto descriptivo del retrato del personaje que aparece en el cuadro con los datos de la misión (solo si en la misión aparece un retrato en 3D).
PortraitGiverName = Nombre del PNJ que aparece en el retrato en el cuadro con los datos de la misión (solo si en la misión aparece un retrato en 3D).
PortraitTurnInText = Texto descriptivo del retrato del personaje que aparece en el cuadro de mensaje para completar la misión (solo si en la misión aparece un retrato en 3D).
PortraitTurnInName = Nombre del PNJ que aparece en el retrato en el cuadro de mensaje para completar la misión (solo si en la misión aparece un retrato en 3D).
QuestCompletionLog = Mensaje que aparece en el registro de la misión al haberse completado los objetivos (ej. Habla con el Rey Anduin Wrynn en Ventormenta, en el Bosque de Elwynn. Si no se completa este campo aparecerá el texto por defecto Listo para entregar).
VerifiedBuild = Designación interna para la versión en el que incluye este contenido (texto o número), he observado que el equipo de TC suele poner los 5 últimos dígitos de la versión del WoW para los que han lanzado la BD (ejemplo ‘23420’ de WoW 7.1.5.23420).
Parámetros de tabla quest_objectives_locale
(se puede omitir modificar esta tabla ya que es algo más delicada de modificar)
ID = Valor numérico en BD del orden en el que se van introduciendo (Este valor debe ser puesto por alguien con acceso a la BD, un desarrollador SQL en este caso y debe coincidir el valor de la tabla quest_objectives con el texto original).
Locale = Misma descripción que arriba (esES o esMX).
StorageIndex = Desconozco su utilidad, aunque debe coincidir con el valor StorageIndex de la tabla quest_objectives para la misma ID.
QuestId = ID de misión (valor numérico).
Description = Texto de objetivo pendiente en el registro de misiones, si una misión tiene varios objetivos se deberá crear una nueva entrada con ID diferente, mismo Locale, misma QuestId y diferente Description.
VerifiedBuild = Misma descripción que arriba (23420).
Importante: Las siguientes tablas de traducciones que no existían en el momento de la creación de la BD original del servidor y se han añadido posteriormente, desconozco si el Core del servidor cuenta con soporte actualmente y es la razón por la que las misiones tienen los textos en español pero no aparece texto en la pantalla de completar misiones.
Parámetros de tabla quest_request_items_locale
ID = ID de misión (valor numérico).
Locale = Misma descripción que arriba (esES o esMX).
CompletionText = Texto que aparece cuando esta la misión en progreso y no has completado aun los objetivos (ej. ¿Dónde está el maestro?).
VerifiedBuild = Misma descripción que arriba (23420).
Parámetros de tabla quest_offer_reward_locale
ID = ID de misión (valor numérico).
Locale = Misma descripción que arriba (esES o esMX).
RewardText = Texto que aparece cuando se han completado los objetivos de la misión y está lista para entregarse (ej. ¿Dónde está el maestro?).
VerifiedBuild = Misma descripción que arriba (23420).
Herramientas para el texto:
$B = Cambio de linea. $N = Nombre del jugador (Ejemplo: Bievenido Paco) $R = Raza del jugador (Ejemplo: Bienvenido Pandaren) $C = Clase del jugador (Ejemplo: Bievenido Guerrero) $G = Diferencia entre hombre o mujer. Pon hombre primero y luego mujer (y un punto ":" en el medio)
Ejemplo:
- Misión Informar al Rey:
Representación gráfica de explicación:
- EN JUEGO:
- EN WOWHEAD
Plantilla:
SI TIENE OBJETIVOS:
SI TIENE OBJETIVOS U OBJETOS EN PROGRESO:
Para cualquier duda no dudéis en preguntar.
Actualización 6/2/2018 Correcciones y más ejemplos
Guía actualizada a la nueva distribución de tablas del proyecto de TrinityCore (en la Wiki están desactualizadas).
La mayoría de datos se pueden extraer de WoWHead, aunque suele ser mejor extraerlos del servidor oficial o videos de Youtube por ejemplo, ya que WoWHead a veces mezcla los datos del WoW esES y esMX (las diferencias están en algunas expresiones, traducciones de nombres propios y en el uso de distintos estudios de traducción, pero son escasas).
Parámetros de tabla quest_template_locale
ID = ID de misión (valor numérico).
Locale = Idioma al que pertenece la traducción (esES = español/España, esMX = español/Latinoamérica, también están deDE, frFR, itIT, koKR, ptBR, ruRU, zhCN, zhTW).
LogTitle = Nombre de la misión.
LogDescription = Descripción resumida de la misión.
QuestDescription = Descripción detallada de la misión.
AreaDescription = Texto que aparece en algunas misiones al pasar el puntero del ratón sobre el área del objetivo de la misión en el minimapa (ej. Investiga la tumba de X. Se suele poner en este campo el mismo texto que en LogDescription).
PortraitGiverText = Texto descriptivo del retrato del personaje que aparece en el cuadro con los datos de la misión (solo si en la misión aparece un retrato en 3D).
PortraitGiverName = Nombre del PNJ que aparece en el retrato en el cuadro con los datos de la misión (solo si en la misión aparece un retrato en 3D).
PortraitTurnInText = Texto descriptivo del retrato del personaje que aparece en el cuadro de mensaje para completar la misión (solo si en la misión aparece un retrato en 3D).
PortraitTurnInName = Nombre del PNJ que aparece en el retrato en el cuadro de mensaje para completar la misión (solo si en la misión aparece un retrato en 3D).
QuestCompletionLog = Mensaje que aparece en el registro de la misión al haberse completado los objetivos (ej. Habla con el Rey Anduin Wrynn en Ventormenta, en el Bosque de Elwynn. Si no se completa este campo aparecerá el texto por defecto Listo para entregar).
VerifiedBuild = Designación interna para la versión en el que incluye este contenido (texto o número), he observado que el equipo de TC suele poner los 5 últimos dígitos de la versión del WoW para los que han lanzado la BD (ejemplo ‘23420’ de WoW 7.1.5.23420).
Parámetros de tabla quest_objectives_locale
(se puede omitir modificar esta tabla ya que es algo más delicada de modificar)
ID = Valor numérico en BD del orden en el que se van introduciendo (Este valor debe ser puesto por alguien con acceso a la BD, un desarrollador SQL en este caso y debe coincidir el valor de la tabla quest_objectives con el texto original).
Locale = Misma descripción que arriba (esES o esMX).
StorageIndex = Desconozco su utilidad, aunque debe coincidir con el valor StorageIndex de la tabla quest_objectives para la misma ID.
QuestId = ID de misión (valor numérico).
Description = Texto de objetivo pendiente en el registro de misiones, si una misión tiene varios objetivos se deberá crear una nueva entrada con ID diferente, mismo Locale, misma QuestId y diferente Description.
VerifiedBuild = Misma descripción que arriba (23420).
Importante: Las siguientes tablas de traducciones que no existían en el momento de la creación de la BD original del servidor y se han añadido posteriormente, desconozco si el Core del servidor cuenta con soporte actualmente y es la razón por la que las misiones tienen los textos en español pero no aparece texto en la pantalla de completar misiones.
Parámetros de tabla quest_request_items_locale
ID = ID de misión (valor numérico).
Locale = Misma descripción que arriba (esES o esMX).
CompletionText = Texto que aparece cuando esta la misión en progreso y no has completado aun los objetivos (ej. ¿Dónde está el maestro?).
VerifiedBuild = Misma descripción que arriba (23420).
Parámetros de tabla quest_offer_reward_locale
ID = ID de misión (valor numérico).
Locale = Misma descripción que arriba (esES o esMX).
RewardText = Texto que aparece cuando se han completado los objetivos de la misión y está lista para entregarse (ej. ¿Dónde está el maestro?).
VerifiedBuild = Misma descripción que arriba (23420).
Herramientas para el texto:
$B = Cambio de línea.
$B$B = Espacio entre líneas.
$n = Nombre del jugador (Ejemplo: Raxhur)
$N = Nombre del jugador en mayus (Ejemplo: RAXHUR)
$R = Raza del jugador (Ejemplo: Pandaren)
$r = Raza del jugador en minúsculas (Ejemplo: pandaren)
$C = Clase del jugador (Ejemplo: Guerrero)
$c = Clase del jugador en minúsculas (Ejemplo: guerrero)
$Gmasculino:femenino; = Diferencia genero de un adjetivo o pronombre (Ejemplo: amigo mío - amiga mía, Campeón - Campeona).
$1oa = Nº de objetos u objetivos requeridos para una misión.
Ejemplo:
- Misión Informar al Rey:
insert into `quest_template_locale` (`ID`, `locale`, `LogTitle`, `LogDescription`, `QuestDescription`, `AreaDescription`, `PortraitGiverText`, `PortraitGiverName`, `PortraitTurnInText`, `PortraitTurnInName`, `QuestCompletionLog`, `VerifiedBuild`) values
('36941','esES','Informar al Rey','Habla con el rey Anduin Wrynn.','Hemos frenado temporalmente a la Horda de Hierro, pero esta guerra dista de haber terminado... Me quedaré aquí y seguiré con nuestros esfuerzos para contenerlos. $BHay que informar al rey Wrynn de lo que hoy hemos conseguido aquí, y de la amenaza a la que nos enfrentamos más adelante. $BSeguramente lo mejor será que seas tú $Gmismo:misma; quien se lo diga, $N.','','Líder militar de la Alianza.','Rey Anduin Wrynn','','','Habla con el Rey Anduin Wrynn. En Ventormenta, Bosque de Elwynn.','22420');
insert into `quest_offer_reward_locale` (`ID`, `locale`, `RewardText`, `VerifiedBuild`) values
('36941','esES','Esto es peor de lo que imaginaba. $B$BLa horda de hierro está demostrando ser una amenaza masiva para nuestra gente... No quiero más derramamiento de sangre, pero me temo que nos quedamos sin opciones. $B$BNecesitamos un plan antes de atacar.','23420');
Representación gráfica de explicación:
- EN JUEGO:
- EN WOWHEAD
Plantilla:
insert into `quest_template_locale` (`ID`, `locale`, `LogTitle`, `LogDescription`, `QuestDescription`, `AreaDescription`, `PortraitGiverText`, `PortraitGiverName`, `PortraitTurnInText`, `PortraitTurnInName`, `QuestCompletionLog`, `VerifiedBuild`) values
('ID misión','esES o esMX',NOMBRE misión','DESCRIPCIÓN breve','DESCRIPCIÓN larga','AREA descripción','RETRATO descripción INICIO','RETRATO nombre INICIO','RETRATO descripción FIN','RETRATO descripción INICIO','MENSAJE OBJETIVO COMPLETO','22420'
SI TIENE OBJETIVOS:
insert into quest_objectives_locale (`ID`, `locale`, `QuestId`, `StorageIndex`, `Description`, `VerifiedBuild`) values
'ID EN BD','esES o esMX','ID misión','MIRAR valor en BD','OBJETIVO1','22420'),
('ID+1 EN BD','esES o esMX','ID misión','MIRAR valor en BD','OBJETIVO2','22420');
SI TIENE OBJETIVOS U OBJETOS EN PROGRESO:
insert into `quest_request_items_locale(`ID`, `locale`, `` CompletionText`, `VerifiedBuild`) values
('ID misión','esES o esMX ','TEXTO EN PROGRESO','23420');
insert into `quest_offer_reward_locale` (`ID`, `locale`, `RewardText`, `VerifiedBuild`) values
('ID misión','esES o esMX ','TEXTO terminación','23420');
Cuando añades más de una traducción o contenido, se pasa de línea usando una coma , por cada línea de valores y en la última línea se usa ; :
insert into `quest_offer_reward_locale` (`ID`, `locale`, `RewardText`, `VerifiedBuild`) values
('1','esES','TEXTO','23420'),
('1','esMX','TEXTO','23420'),
('2','esES','TEXTO','23420'),
('3','esES','TEXTO','23420');
Ejemplo práctico de traducción 1 – Misión con traducciones ES y MX
En este caso vemos que al igual que en el servidor de FireStorm la misión con ID 26414 está sin traducción ni contenido en las partes de Progreso (CompletionTex) y Terminación(RewardText) por lo que las añadiremos en un parche de SQL usando la plantilla tanto para esES como para esMX.
Aplicamos el código con los datos obtenidos de WoWHead en este caso http://es.wowhead.com/quest=26414/el-desafio-del-leucoma
insert into `quest_request_items_locale` (`ID`, `locale`, `CompletionText`, `VerifiedBuild`) values
('26414','esES ','¿Era demasiado para ti?','23420'),
('26414','esMX ','¿Era demasiado para ti?','23420');
insert into `quest_offer_reward_locale` (`ID`, `locale`, `RewardText`, `VerifiedBuild`) values
('26414','esES ','¡Buen trabajo, $n! Veo que te estás convirtiendo en todo un pescador. ¡Voy a tener que sacarte a pescar en barco pronto y ver de lo que eres capaz!','23420'),
('26414','esMX ','¡Buen trabajo, $n! Veo que te estás convirtiendo en todo un pescador. ¡Voy a tener que sacarte a pescar en barco pronto y ver de lo que eres capaz!','23420');
Y este es el resultado final:
Ejemplo práctico de traducción 2 – Traducción de ítem_request y reward de varias misiones
Tras las líneas de la Legión
Paraíso perdido
Bajar a Azsuna
A la refriega
Almas demoníacas - Reactiva los resguardos
La Guadaña de Almas
Desde dentro
Maquinaciones viles - Salvar a Stellagosa
Revelaciones oscuras
insert into `quest_offer_reward_locale` (`ID`, `locale`, `RewardText`, `VerifiedBuild`) values
('39718','esES','Perfecto. ¿$GListo:Lista; para un viajecito a Azsuna?','25549'),
('41220','esES','Tal como sospechaba, los Illidari están conteniendo a la Legión Ardiente, pero a duras penas. $B$BDebemos acudir en su ayuda, $n.','25549'),
('38834','esES','Qué bien veros a ambos. Hemos expulsado a los demonios de estas ruinas, pero son más fuertes que nunca. $B$BVuestra ayuda se agradece. Si no acabamos ahora con esta invasión de la Legión, tomarán Azsuna y luego el resto de las Islas Abruptas.','25549'),
('37658','esES','Gracias, $n. Eso nos dará el respiro necesario para lanzar un contraataque.','25549'),
('37653','esES','Sí. Ya noto que sus almas son más débiles que su carne.','25549'),
('37660','esES','Yo no me tomaría a pecho lo que dijo Arev naal. Los demonios inquisidores son maestros de la desinformación. No sospecharás de traidores en las filas, ¿no?$ B$B<La Devoraalmas, pensativa, pone mala cara.>$B$BMe temo que tardaremos en obtener todas las respuestas sobre lord Illidan.','25549'),
('36920','esES','Un amigo, por lo visto. $B$BO sea, que Kayn no creía que pudiéramos arreglárnoslas. Quizás esta vez tenía razón.','25549'),
('37656','esES','Siempre he tenido mis dudas acerca de Cyana. No era trigo limpio. Parece que se ha venido abajo y se ha unido a la Legión.$B$BPero no dejaremos que ni ella ni la tal Cordana Cantovil se salgan con la suya.','25549'),
('37450','esES','Hermosas criaturas... Puras, en comunión con el mundo. No creí que pudiera odiar aún más a la Legión.$B$BGracias, $n.','25549'),
('37449','esES','Malas noticias, en efecto. No podemos permitirnos perder ni un solo cazador de demonios, pero Korvas y tú hicisteis bien en acabar con Gujasombría.$B$BY, lo que es más importante, habéis conseguido la poderosa amistad de Stellagosa. El resto del Vuelo Azul podría ser un poderoso aliado.','25549');
insert into `quest_request_items_locale` (`ID`, `locale`, `CompletionText`, `VerifiedBuild`) values
('37450','esES','Si hay un remanente del Vuelo Azul por aquí, deberíamos hacer todo lo posible para aliarnos con él.','23420');
Para cualquier duda estoy a vuestra disposición.
);