Cómo cambiar el texto de los cuadros de diálogo estándar de Qt
¿Cómo cambiar texto a chino u otros idiomas?
La solución es la siguiente:
La solución para chino simplificado es abrir la traducción en el directorio de instalación de Qt y buscar qt_zh_CN.qm y qt_zh_CN.ts.
Podemos usar qt_zh_CN.qm directamente. Si efectivamente hay algunas traducciones incompletas, podemos abrir qt_zh_CN.ts y regenerar .qm después de la traducción. Si tiene una traducción incompleta, simplemente abra qt_zh_CN.ts y regenere el archivo .qm.
Es decir: cargar traducción/qt_zh_CN.qm en QTranslator.
Los métodos para otros lenguajes son similares.
Código fuente de referencia:
#include "mainwindow.h"
#include QApplicationgt
#include QTranslatorgt; ;
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
//Carga el archivo de traducción al chino del cuadro de diálogo estándar Qt
QTranslator tran;
bool ok = tran.load(" qt_zh_CN.qm", " C:\\qt\\4.8.5_VS2010\\\translations\\\"); // Nota, esta es una ruta absoluta, se recomienda copiar el .qm al directorio del proyecto y luego usar una ruta relativa.
a.installTranslator(amp;tran);
//Carga el archivo de traducción de la interfaz definida por el usuario
Usuario de QTranslator;
ok = user.load("user_zh.qm", ":/");
a.installTranslator(amp;user);
//Establece el tamaño del texto global, no es obligatorio , utilice según sea necesario
QFont font = a.font();
font.setPointSize(9);
a.setFont(font);
Ventana principal w;
w.show();
devolver a.exec();
}
Resultado final:
Si el software quiere cambiar dinámicamente entre diferentes idiomas, debe definir una función global para llamar.
#include "mainwindow.h"
#include lt;QApplicationgt;
#include lt;QTranslatorgt;
QTranslator g_tran; //Debe configurarse como una variable global; si es una variable local, la configuración fallará.
void setLanguage(int lan)//Función global, se puede llamar desde otros archivos
{
bool ok = false;
if (lan == 1)//Chino
{
ok = g_tran.load("qt_zh _CN.qm", ":/lan/"); use el archivo de recursos Qt, copie el archivo .qm a la ruta/lan del proyecto
}
else if (lan == 2)//English
{ p >
ok = g_tran.load("", ":/lan/");
}
QCoreApplication::installTranslator(amp;g_tran);
// O escribe qApp-gt; installTranslator(amp; g_tran);
}
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
setLanguage(1); // Llamar a la función global
MainWindow w;
w.show ();
devolver a.exec();
}