{"id":41125,"date":"2024-02-05T09:20:21","date_gmt":"2024-02-05T08:20:21","guid":{"rendered":"https:\/\/esx-scripts.com\/?p=41125"},"modified":"2026-08-09T14:39:02","modified_gmt":"2026-08-09T12:39:02","slug":"traduccion-de-scripts-fivem","status":"publish","type":"post","link":"https:\/\/rpcrate.com\/es\/fivem-scripts-translation\/","title":{"rendered":"C\u00f3mo traducir scripts FiveM de forma segura (manual + IA)"},"content":{"rendered":"<p><strong>Traduce los valores de configuraci\u00f3n regional existentes del recurso conservando las claves, los marcadores de posici\u00f3n, los c\u00f3digos de control y la sintaxis del archivo.<\/strong> La edici\u00f3n manual ofrece el m\u00e1ximo control; la IA puede acelerar un lote revisado. Ninguno de los m\u00e9todos hace que sea seguro traducir cada cadena entre comillas en el c\u00f3digo fuente.<\/p>\n<h2 id=\"find-the-supported-locale-system\">Encuentra el sistema de configuraci\u00f3n regional compatible<\/h2>\n<p>Lee la documentaci\u00f3n del recurso y <code data-no-translation=\"\" translate=\"no\">fxmanifest.lua<\/code>. Busca directorios de configuraci\u00f3n regional, diccionarios JSON\/Lua, archivos de traducci\u00f3n NUI y una configuraci\u00f3n de idioma. Usa el sistema que proporciona el creador. No a\u00f1adas <code data-no-translation=\"\" translate=\"no\">lua54<\/code> como una correcci\u00f3n de traducci\u00f3n; esa opci\u00f3n de manifiesto est\u00e1 obsoleta y no est\u00e1 relacionada con la localizaci\u00f3n.<\/p>\n<h2 id=\"back-up-and-inventory-visible-strings\">Haz una copia de seguridad e inventar\u00eda las cadenas visibles<\/h2>\n<ol>\n<li>Copia el recurso o crea una rama de control de versiones.<\/li>\n<li>Registra la versi\u00f3n exacta y el idioma configurado.<\/li>\n<li>Enumera las etiquetas visibles para el jugador, las notificaciones, el texto del men\u00fa y los mensajes de ayuda.<\/li>\n<li>Excluye claves, nombres de eventos, comandos, columnas de bases de datos, rutas de archivos e identificadores a menos que la documentaci\u00f3n los marque expl\u00edcitamente como traducibles.<\/li>\n<li>Crea un glosario para los t\u00e9rminos del framework, los trabajos, los objetos y la terminolog\u00eda del servidor.<\/li>\n<\/ol>\n<h2 id=\"manual-method-edit-values-only\">M\u00e9todo manual: edita solo los valores<\/h2>\n<p>En un editor con reconocimiento de sintaxis como Notepad++, cambia el valor legible por humanos en el lado derecho manteniendo la clave y la estructura intactas.<\/p>\n<pre data-no-translation=\"\" translate=\"no\"><code data-no-translation=\"\" translate=\"no\">{\n  \"garage_open\": \"Open garage\",\n  \"price_label\": \"Price: %s\"\n}<\/code><\/pre>\n<p>Para otro idioma, traduce <code data-no-translation=\"\" translate=\"no\">Open garage<\/code> y <code data-no-translation=\"\" translate=\"no\">Price<\/code>, pero conserva <code data-no-translation=\"\" translate=\"no\">garage_open<\/code>, <code data-no-translation=\"\" translate=\"no\">price_label<\/code> y <code data-no-translation=\"\" translate=\"no\">%s<\/code>. Mant\u00e9n las secuencias de escape, comillas, comas, llaves, c\u00f3digos de color como <code data-no-translation=\"\" translate=\"no\">~r~<\/code>, y tokens de formato como <code data-no-translation=\"\" translate=\"no\">%s<\/code>, <code data-no-translation=\"\" translate=\"no\">%d<\/code> o <code data-no-translation=\"\" translate=\"no\">{name}<\/code> intactos.<\/p>\n<h2 id=\"ai-method-send-a-constrained-values-only-batch\">M\u00e9todo con IA: env\u00eda un lote limitado que contenga solo los valores<\/h2>\n<p>Proporciona solo las entradas de configuraci\u00f3n regional necesarias para la traducci\u00f3n, no todo el recurso privado, la configuraci\u00f3n del servidor, la clave de licencia, el webhook, los datos de los jugadores ni la exportaci\u00f3n de la base de datos. Indica el idioma de origen y el de destino, el glosario y los tokens invariables. Exige el mismo formato estructurado y pide al modelo que deje sin cambios las claves y todos los marcadores de posici\u00f3n.<\/p>\n<p>La salida de la IA es un borrador. Los modelos pueden renombrar una clave, alterar la puntuaci\u00f3n, traducir un comando, eliminar un marcador de posici\u00f3n o devolver JSON\/Lua no v\u00e1lidos, aunque suenen muy convincentes. Revisa el diff entrada por entrada.<\/p>\n<h2 id=\"validate-before-starting-the-resource\">Valida antes de iniciar el recurso<\/h2>\n<ul>\n<li>Analiza el JSON con un analizador JSON y el Lua con el flujo de trabajo de lint\/pruebas admitido por el proyecto.<\/li>\n<li>Compara el conjunto completo de claves con la configuraci\u00f3n regional de origen.<\/li>\n<li>Verifica la paridad exacta de marcadores de posici\u00f3n y c\u00f3digos de control por entrada.<\/li>\n<li>Busca cambios accidentales en comandos, nombres de eventos y URL.<\/li>\n<li>Inspecciona el diff en busca de comentarios a\u00f1adidos o delimitadores de c\u00f3digo Markdown.<\/li>\n<\/ul>\n<h2 id=\"test-in-the-ui\">Prueba en la UI<\/h2>\n<p>Inicia la configuraci\u00f3n regional traducida en el entorno de pruebas y recorre cada flujo visible: men\u00fa, notificaci\u00f3n, error, confirmaci\u00f3n, validaci\u00f3n de entrada y texto de ayuda. Comprueba los cortes de texto, los saltos de l\u00ednea, los caracteres acentuados, los errores de plural\/contexto y el comportamiento de derecha a izquierda cuando corresponda. Revisa los registros del navegador\/NUI, de F8 y del servidor.<\/p>\n<h2 id=\"build-a-reusable-translation-memory\">Crea una memoria de traducci\u00f3n reutilizable<\/h2>\n<p>Almacena los pares de origen\/valor aprobados, las decisiones del glosario y las notas del revisor fuera del paquete del proveedor. Cuando el recurso se actualice, compara la nueva configuraci\u00f3n regional de origen con la versi\u00f3n anterior y traduce solo las claves a\u00f1adidas o modificadas. Nunca sobrescribas una nueva configuraci\u00f3n regional del proveedor a ciegas con un archivo completo antiguo.<\/p>\n<h2 id=\"rollback-safely\">Revierte de forma segura<\/h2>\n<p>Mant\u00e9n disponibles la configuraci\u00f3n regional y la configuraci\u00f3n originales. Si el an\u00e1lisis, la interfaz o el comportamiento en tiempo de ejecuci\u00f3n empeora, restaura los archivos que sabes que funcionan, reinicia el recurso y confirma que el idioma predeterminado funciona. Corrige la traducci\u00f3n en una versi\u00f3n nueva en lugar de editar producci\u00f3n sin comparar los cambios.<\/p>","protected":false},"excerpt":{"rendered":"<p>Traduce los valores de localizaci\u00f3n existentes del recurso conservando las claves, los marcadores de posici\u00f3n, los c\u00f3digos de control y la sintaxis del archivo. La edici\u00f3n manual ofrece el m\u00e1ximo control; la IA puede acelerar un lote revisado. Ning\u00fan m\u00e9todo hace que sea seguro traducir cada cadena entre comillas en el c\u00f3digo fuente.<\/p>","protected":false},"author":1,"featured_media":180133,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2877,1899],"tags":[3001],"class_list":["post-41125","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-free-fivem-job-scripts","category-tutorials","tag-fivem-script"],"_links":{"self":[{"href":"https:\/\/rpcrate.com\/es\/wp-json\/wp\/v2\/posts\/41125","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rpcrate.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rpcrate.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rpcrate.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rpcrate.com\/es\/wp-json\/wp\/v2\/comments?post=41125"}],"version-history":[{"count":3,"href":"https:\/\/rpcrate.com\/es\/wp-json\/wp\/v2\/posts\/41125\/revisions"}],"predecessor-version":[{"id":215701,"href":"https:\/\/rpcrate.com\/es\/wp-json\/wp\/v2\/posts\/41125\/revisions\/215701"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rpcrate.com\/es\/wp-json\/wp\/v2\/media\/180133"}],"wp:attachment":[{"href":"https:\/\/rpcrate.com\/es\/wp-json\/wp\/v2\/media?parent=41125"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rpcrate.com\/es\/wp-json\/wp\/v2\/categories?post=41125"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rpcrate.com\/es\/wp-json\/wp\/v2\/tags?post=41125"}],"curies":[{"name":"gracias","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}