Tôi đã cố gắng thay đổi ngôn ngữ bằng chức năng QLocale và setDefault nhưng có vẻ như nó không hoạt động. Dưới đây là ví dụ về việc thay đổi ngôn ngữ bằng cách sử dụng thư viện bản địa hóa C và QLocale. Đối với thư viện bản địa hóa C có vẻ như nó hoạt động, nhưng đối với QLocale có vẻ như lệnh gọi hàm setDefault bị bỏ qua.Thay đổi ngôn ngữ trong Qt
QLocale curLocale(QLocale("pl_PL"));
QLocale::setDefault(curLocale);
QDate date = QDate::currentDate();
QString dateString = date.toString();
// prints "Fri Nov 9 2012" but that was not expected
std::cout << dateString.toStdString() << std::endl;
// prints "en_US", but shouldn't it be "pl_PL"?
std::cout << QLocale::system().name().toStdString() << std::endl;
std::setlocale(LC_ALL, "pl_PL");
// prints "pl_PL"
std::cout << std::setlocale(LC_ALL, 0) << std::endl;
std::time_t currentTime;
std::time(¤tTime);
std::tm* timeinfo = std::localtime(¤tTime);
char charArray[40];
std::strftime(charArray, 40, "%a %b %d %Y", timeinfo);
// prints "pi lis 09 2012" and that's cool
std::cout << charArray << std::endl;
Làm cách nào để thay đổi ngôn ngữ đúng trong Qt để nó ảnh hưởng đến chương trình?