将国际化应用于包含 html 的 QString

Apply internationalization to a QString containing html

我需要创建一个包含 html 的 QString。我想将其国际化...添加 QObject::tr()

如何合并?在这一点上,我的字符串是这样的......我不认为我可以将 tr 应用于他整个字符串,否则我最终会得到颜色,文本,大小的奇怪词......

const QString errorContent = QObject::tr("<!DOCTYPE html>\n"
                           "<svg height=\"100\" width=\"80\">\n"
                           "<text font-size=\"20\" x=\"10\" y=\"30\" fill=\"black\">Unable</text>\n"
                           "<text font-size=\"20\" x=\"10\" y=\"60\" fill=\"black\">to load</text>\n"
                           "<text font-size=\"20\" x=\"20\" y=\"90\" fill=\"black\">SVG</text>\n"
                           "Sorry, your browser does not support inline SVG.\n"
                           "\n</svg>");

您应该能够简单地从多个 QStrings 构建字符串,其中 tr() 仅应用于相关部分:

const QString errorContent = QString("<!DOCTYPE html>\n"
                       "<svg height=\"100\" width=\"80\">\n"
                       "<text font-size=\"20\" x=\"10\" y=\"30\" fill=\"black\">Unable</text>\n"
                       "<text font-size=\"20\" x=\"10\" y=\"60\" fill=\"black\">to load</text>\n"
                       "<text font-size=\"20\" x=\"20\" y=\"90\" fill=\"black\">SVG</text>\n")
                       + QObject::tr("Sorry, your browser does not support inline SVG")
                       + QString(".\n\n</svg>");