lupdate 没有从 QObject 对象中获取 tr() 字符串
lupdate is not getting tr() strings from QObject objects
我一直在尝试使用 QT Creator 制作一个简单的文本编辑器。此文本编辑器具有可翻译的 UI,支持 3 种语言:英语、西班牙语和葡萄牙语。
我的问题是,每次我 运行 lupdate,我的代码中标记为可翻译(即包含在 tr() 中)的字符串文字都会被解析并可以使用 QLinguist 进行编辑和翻译。但是,作为 QObjects 一部分的字符串(例如 QFileDialog 的 ButtonText 未被解析。我是否缺少一些程序以便 lupdate 解析这些字符串?
void PeterTextEditor::on_actionOpen_triggered()
{
QString fileName = QFileDialog::getOpenFileName(this, tr("Open Document"), QDir::currentPath(),
tr("Text documents (*.txt)"), 0, QFileDialog::DontUseNativeDialog);
if (fileName.isNull())
return;
if ( m_fileName.isNull() && !isWindowModified() )
{
loadFile(fileName);
return;
}
else
{
PeterTextEditor * openFile = new PeterTextEditor( fileName );
openFile->show();
openFile->setAttribute(Qt::WA_DeleteOnClose);
}
}
在上面的示例中 tr("Open Document")
将被解析,但是 QFileDialog 具有 QButton 和 QLabel 对象,其中包含用于按钮文本和标签 text.These 的字符串。我希望对这些进行解析,以便我可以使用 QLinguist 添加翻译。
所有已编译的翻译文件 (*.qm) 都应该在 /translations
目录中,您可以按 QFileDialog localization.
中所示加载它们
不幸的是,Qt 库并没有提供所有语言的所有翻译,而且,并非所有提供的翻译都是完整的。
对于我的版本(Qt 5.2.1),有库的西班牙语翻译(qt_es.qm
)但是有很多字符串还没有翻译,没有翻译葡萄牙语文件(qt_pt.qm
).
Qt 到其他语言的翻译是一个正在进行的项目,所以我建议您搜索网络 and/or 其他论坛,看看是否有人有更新的文件,您可以使用。
如果您找不到任何内容,并且您的西班牙语翻译缺少您需要的几个字符串,您可以将源提取文件 (*.ts
) 归档到 /Src/qttranslations/translations
目录中。不幸的是,您可能只会找到一个西班牙语版本。
如果您愿意开始葡萄牙语翻译,您可以通过 /Src/qtbase/qtbase.pro
文件中的 运行 lupdate
提取所有需要的字符串。
我一直在尝试使用 QT Creator 制作一个简单的文本编辑器。此文本编辑器具有可翻译的 UI,支持 3 种语言:英语、西班牙语和葡萄牙语。
我的问题是,每次我 运行 lupdate,我的代码中标记为可翻译(即包含在 tr() 中)的字符串文字都会被解析并可以使用 QLinguist 进行编辑和翻译。但是,作为 QObjects 一部分的字符串(例如 QFileDialog 的 ButtonText 未被解析。我是否缺少一些程序以便 lupdate 解析这些字符串?
void PeterTextEditor::on_actionOpen_triggered()
{
QString fileName = QFileDialog::getOpenFileName(this, tr("Open Document"), QDir::currentPath(),
tr("Text documents (*.txt)"), 0, QFileDialog::DontUseNativeDialog);
if (fileName.isNull())
return;
if ( m_fileName.isNull() && !isWindowModified() )
{
loadFile(fileName);
return;
}
else
{
PeterTextEditor * openFile = new PeterTextEditor( fileName );
openFile->show();
openFile->setAttribute(Qt::WA_DeleteOnClose);
}
}
在上面的示例中 tr("Open Document")
将被解析,但是 QFileDialog 具有 QButton 和 QLabel 对象,其中包含用于按钮文本和标签 text.These 的字符串。我希望对这些进行解析,以便我可以使用 QLinguist 添加翻译。
所有已编译的翻译文件 (*.qm) 都应该在 /translations
目录中,您可以按 QFileDialog localization.
不幸的是,Qt 库并没有提供所有语言的所有翻译,而且,并非所有提供的翻译都是完整的。
对于我的版本(Qt 5.2.1),有库的西班牙语翻译(qt_es.qm
)但是有很多字符串还没有翻译,没有翻译葡萄牙语文件(qt_pt.qm
).
Qt 到其他语言的翻译是一个正在进行的项目,所以我建议您搜索网络 and/or 其他论坛,看看是否有人有更新的文件,您可以使用。
如果您找不到任何内容,并且您的西班牙语翻译缺少您需要的几个字符串,您可以将源提取文件 (*.ts
) 归档到 /Src/qttranslations/translations
目录中。不幸的是,您可能只会找到一个西班牙语版本。
如果您愿意开始葡萄牙语翻译,您可以通过 /Src/qtbase/qtbase.pro
文件中的 运行 lupdate
提取所有需要的字符串。