Uso de lupdate
La herramienta de línea de comandos lupdate encuentra cadenas traducibles en archivos fuente C++, de cabecera C++, Java, Python, QML y de interfaz de usuario, y genera o actualiza archivos TS.
Al compilar con qmake, especifique los archivos que desea procesar en la línea de comandos o en un archivo .pro.
Al compilar con CMake, utilice los comandos de CMake para añadir objetivos que creen o actualicen archivos TS y los transformen en archivos QM. La herramienta lupdate se ejecuta con las opciones que pases a los comandos cuando construyas el objetivo.
Para obtener más información sobre la especificación de traducciones en archivos de proyecto, consulte Localización de aplicaciones.
Sintaxis de lupdate
lupdate [options] [project-file]... lupdate [options] [source-file|path|@lst-file]... -ts ts-files|@lst-file
Donde:
optionssignifica una o varias opciones de lupdate.project-filees el fichero de configuración del proyecto.source-filees un fichero que contiene cadenas traducibles.pathes la ruta a una carpeta que contiene archivos fuente de traducción.@lst-filelee nombres de archivos adicionales (uno por línea) o includepaths (uno por línea y prefijado con-I) de lst-file.ts-filesson los ficheros TS a generar o actualizar.
Para ver la ayuda más reciente, introduzca:
lupdate -help
lupdate opciones
| Opción | Acción |
|---|---|
-help | Mostrar información de ayuda actualizada y salir. |
-no-obsolete | Elimina todas las cadenas obsoletas y desaparecidas. |
-extensions <ext>[,<ext>]... | Procesar sólo los archivos con las extensiones dadas. Utilice comas para separar las extensiones en la lista. No utilice espacios en blanco. El valor por defecto es: java,jui,ui,c,c++,cc,cpp,cxx,ch,h,h++,hh,hpp,hxx,js,qs,qml,qrc. |
-pluralonly | Incluir sólo mensajes en plural. |
-silent | No explique lo que se está haciendo. |
-no-sort | No ordenar los contextos en los ficheros TS. |
-sort-messages | Ordenar alfabéticamente los mensajes de un contexto en los ficheros TS. |
-no-recursive | No escanear directorios recursivamente. |
-recursive | Explorar directorios recursivamente (por defecto). |
-warnings-are-errors | Tratar las advertencias como errores. |
-I <includepath> or -I<includepath> | Buscar ficheros de inclusión en esta ubicación adicional. Puede especificar varias rutas. |
-locations {absolute|relative|none} | Especifique o anule la forma de guardar las referencias al código fuente en los ficheros TS.
Si no se especifica la ubicación, |
-no-ui-lines | No registre números de línea en las referencias a ficheros UI. |
-disable-heuristic {sametext|similartext} | Desactivar la heurística de fusión por nombre. Puede especificarse varias veces. |
-project <filename> | Nombre de un archivo que contiene la descripción del proyecto en formato JSON. Puede utilizar lupdate-pro -dump-json <file> para generar el archivo a partir de un archivo .pro. |
-pro <filename> | Nombre de un archivo .pro. Útil para archivos con la sintaxis de archivo .pro pero algún otro sufijo de archivo. Los proyectos son recursados y fusionados. Esta opción está obsoleta. En su lugar, utilice la herramienta lupdate-pro. |
-pro-out <directory> | Directorio de salida virtual para procesar archivos .pro posteriores. |
-pro-debug | Rastrea el procesamiento de los archivos .pro. Especifique dos veces para mayor verbosidad. |
-source-language <language>[_<region>] | Especifique el idioma de las cadenas de origen de los nuevos archivos. Por defecto es POSIX si no se especifica. |
-target-language <language>[_<region>] | Especifique el idioma de las traducciones de los archivos nuevos. Si no se especifica el idioma, lupdate lo determina a partir del nombre del fichero. |
-tr-function-alias <function>{+=,=}<alias>[,<function>{+=,=}<alias>]... | Con +=, reconoce <alias> como una ortografía alternativa de <function>. Con =, reconoce <alias> como la única ortografía de <function>.Los valores disponibles de
|
-ts <ts-file>... | Especifica los archivos de salida. Esto anula TRANSLATIONS. |
-version | Muestra la versión de lupdate y sale. |
Ejemplos
Usando lupdate con CMake
Cuando construyas con CMake, usa comandos CMake para añadir traducciones en los objetivos al archivo CMakeLists.txt, y luego construye los objetivos.
Seleccione una de las siguientes opciones:
- Utilice qt_add_translations en un objetivo, como app. Esto llama qt_add_lupdate y qt_add_lrelease.
- Utilice
qt_add_lupdateen un destino.
Construir un objetivo (por ejemplo, app_lupdate) para actualizar los archivos .ts para él. Para actualizar los archivos .ts de todos los objetivos, cree el objetivo update_translations.
Uso de lupdate con qmake
Para generar un archivo de traducción para un único archivo QML:
lupdate main.qml -ts main_en.ts
Para hacer un archivo de traducción para otro idioma, por ejemplo francés, copie main_en.ts a main_fr.ts, y traduzca las cadenas en el archivo TS francés.
lupdate procesa los archivos QML que aparecen en el archivo .qrc:
RESOURCES += qml.qrc
Para que lupdate procese todos los archivos QML:
lupdate application.qrc -ts myapp_en.ts
Para procesar todos los archivos QML del directorio de trabajo actual (o de sus subcarpetas) sin utilizar un archivo .qrc:
lupdate . -extensions qml -ts myapp_en.ts
Para comprobar si hay cadenas traducibles en los archivos fuente QML y C++:
lupdate qml.qrc filevalidator.cpp -ts myapp_en.ts
Para generar archivos .ts que se utilizarán para inglés y francés sin especificar los idiomas en el archivo de proyecto:
lupdate qml.qrc filevalidator.cpp -ts myapp_en.ts myapp_fr.ts
Entregue los archivos TS al traductor, que utilizará Qt Linguist para leer los archivos e insertar las traducciones.
Ficheros en formato XLIFF
El formato de archivo TS es un formato XML sencillo legible por humanos que se puede utilizar con sistemas de control de versiones. Además, lupdate puede procesar archivos de formato XLIFF (Localization Interchange File Format) (.xlf).
Nota: Actualmente sólo se admiten las versiones 1.1 y 1.2 de XLIFF.
Puede abrir y editar archivos XLIFF en Qt Linguist.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.