// 錯誤示範
action->setText(tr("開始")); // 源碼硬編碼中文
// main.cpp 設置編碼
QTextCodec *codec = QTextCodec::codecForName("GB2312");
QTextCodec::setCodecForLocale(codec);
QTextCodec::setCodecForCStrings(codec);
QTextCodec::setCodecForTr(codec);
Qt Linguist國際化工具鏈,卻未利用
// 正確做法
action->setText(tr("Start")); // 英文鍵值 + tr()標記
label->setText(tr("User Name:"));
lupdate 提取所有 tr() 字符串生成 .ts 翻譯源文件Qt Linguist 圖形界面編輯翻譯(支持多語言並行)lrelease 編譯生成二進制 .qm 翻譯包
QTranslator translator;
translator.load(":/i18n/myapp_zh_CN.qm"); // 從資源系統加載
qApp->installTranslator(&translator);
堅決抵制源碼中出現中文(含tr包裹中文)。遵循Qt設計哲學,用專業工具做專業的事,才是商業級Qt開發的正確姿態。