c++ - 防止自己忘记在 tr() 中包含字符串文字

标签 c++ qt internationalization

Qt 使用 tr() 函数进行国际化,但很容易忘记用它括起一个字符串,例如编写 label->setText("Name:"); 而不是 label->setText(tr("Name:"));

我记得在某处读到过,除非您以某种其他方式(如果我没记错的话,在 QLatin1String 中)明确地包含字符串,否则您可以使 QString 显示错误。我该怎么做?

最佳答案

您可以将QT_NO_CAST_FROM_ASCII 添加到*.pro 文件中的DEFINES。这将阻止从 char* 自动转换。类似地,有一个 QT_NO_CAST_TO_ASCII 可以防止 QStrings 被隐式转换为 char*

参见 http://qt-project.org/doc/qt-5/qstring.html#converting-between-8-bit-strings-and-unicode-strings了解更多详情

关于c++ - 防止自己忘记在 tr() 中包含字符串文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24799284/

相关文章:

c++ - 卡萨布兰卡:在 linux centos 上的汇编错误 gcc 4.8.1

c++ - QTimer::singleShot(0, object SLOT(obj_slot())) 是做什么的?

用于自定义属性的 Angular 4 i18n

c++ - 当焦点在 QTableView 上丢失时丢失背景颜色

c++ - 如何在 QListWidget 项目中使用不同的图标

java - 如何为 i18n 构建验证错误代码

java - 用户数据国际化

C++函数模板部分特化?

c++ - 在构造函数初始化列表中调用非静态函数,C++

c++ - 为什么我们不能声明一个 std::vector<Abstract Class>?