es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo traducir un programa a un idioma con QtLinguist en C++?

Escribí código en QtCreator para traducir la interfaz gráfica de mi aplicación al inglés y al español. Esta aplicación fue escrita en francés. Se han generado los archivos de traducción .ts. Y traduje las cadenas al inglés en QtLinguist (pero no al español), y marqué los campos con una flecha verde para mostrar que estaba seguro de la traducción. Pero cuando generé los archivos .qm gracias a lrelease, el IDE escribió:

Actualizando ‘C:/Users/user/Documents/ZeroClassGenerator/zeroclassgenerator_en.qm’…

Se generaron 3 traducciones (3 completadas y 0 incompletas).
Actualizando ‘C:/Users/user/Documents/ZeroClassGenerator/zeroclassgenerator_es.qm’…

Se generaron 0 traducciones (0 completadas y 0 incompletas).
Se ignoraron 3 textos fuente no traducidos.
“C:\QtSdk2\6.2.1\mingw81_64\bin\lrelease.exe” terminado

Pero el texto a traducir no se ha traducido al inglés. Sin embargo, puse el archivo .qm en la misma carpeta que el ejecutable de mi software y escribí el siguiente código en el archivo principal:


#include "FenPrincipale.h" #include <qapplication> #include <qtranslator> int main(int argc, char *argv[]) { QApplication a(argc, argv); QTranslator translator; translator.load("zeroclassgenerator_en"); a.installTranslator(&translator); FenPrincipale fenetre; fenetre.show(); return a.exec(); }

Como ese código no funcionó, escribí este.

#include “FenPrincipale.h”

#include

#include

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QTranslator translator;

if (translator.load(“zeroclassgenerator_en”))
a.installTranslator(&translator);
FenPrincipale fenetre;
fenetre.show();
return a.exec();
}

No sé dónde me equivoqué.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que el problema está en la carga del archivo de traducción. En el primer fragmento de código, el traductor se carga simplemente sin ningún manejo de error, lo que puede ocasionar que el archivo no se encuentre o se cargue correctamente.

    En el segundo fragmento de código, se agrega una declaración “if” alrededor de la función de carga para verificar si fue exitosa. Si se encontró y cargó correctamente el archivo, entonces se instala el traductor.

    Sin embargo, no queda claro si el archivo de traducción ha sido realmente traducido al inglés o no. Podría valer la pena verificar el archivo de traducción para asegurarse de que las traducciones en inglés estén presentes y también verificar que el archivo de traducción se esté generando correctamente con lrelease.

    Además, el código solo carga el archivo de traducción en inglés. Si también se necesita el archivo de traducción en español, se debe crear y cargar un objeto QTranslator separado para ese archivo.

    En general, es difícil identificar exactamente dónde se encuentra el problema sin más información o sin ver todo el código base.

Comments are closed.