我正在尝试使用Qt本身更改Qt中的.ts文件的language
属性。
以下是XML格式示例。
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE TS>
<TS language="es_ES" version="2.1">
...
</TS>
我尝试过不同的方法,但没有运气。 以下是我使用的方法。
FileIOError FileIO::changeLanguageOfTsFile( QString tsFileName, QString langCode )
{
QDomDocument tsFileXml;
QFile xmlFile(tsFileName);
if ( !xmlFile.open(QIODevice::ReadWrite) )
{
qDebug() << "File not found." << endl;
return FileNotFound;
}
if ( !tsFileXml.setContent(&xmlFile) )
{
qDebug() << "Invalid content in the XML file : Reading TS File. " << tsFileName << endl;
xmlFile.close();
return InvalidXmlFile;
}
QDomElement ts = tsFileXml.firstChildElement("TS");
if (ts.isNull())
{
qDebug() << "Invalid TS file" << endl;
return InvalidFile;
}
// In here, I try to change the attribute.
QDomAttr attr = ts.attributeNode("language");
attr.setValue(langCode);
ts.setAttributeNode(attr);
xmlFile.close();
return ReadSuccess;
}
代码运行完美,但XML文件没有更新。
我也尝试了以下内容。
ts.setAttribute("language", langCode);
但没有运气。我不知道为什么这不会更新XML文件。请帮帮我。
答案 0 :(得分:1)
我想,但我认为你的XML只存在于你的记忆中。您必须触发像tsFileXml.WriteToFile(filename)
这样的想法,将更改存储到文件系统上的文件中。