mirror of
https://github.com/qbittorrent/qBittorrent.git
synced 2024-11-25 18:56:34 +03:00
Improve HttpConnection::translateDocument().
This commit is contained in:
parent
36ff9be42e
commit
1aa70bedb7
1 changed files with 11 additions and 9 deletions
|
@ -150,35 +150,37 @@ void HttpConnection::translateDocument(QString& data) {
|
|||
"confirmDeletionDlg", "TrackerList", "TorrentFilesModel",
|
||||
"options_imp", "Preferences", "TrackersAdditionDlg",
|
||||
"ScanFoldersModel", "PropTabBar", "TorrentModel",
|
||||
"downloadFromURL"};
|
||||
"downloadFromURL", "misc"};
|
||||
const size_t context_count = sizeof(contexts)/sizeof(contexts[0]);
|
||||
int i = 0;
|
||||
bool found;
|
||||
bool found = true;
|
||||
|
||||
do {
|
||||
found = false;
|
||||
const QString locale = Preferences().getLocale();
|
||||
bool isTranslationNeeded = !locale.startsWith("en") || locale.startsWith("en_AU") || locale.startsWith("en_GB");
|
||||
|
||||
while(i < data.size() && found) {
|
||||
i = regex.indexIn(data, i);
|
||||
if (i >= 0) {
|
||||
//qDebug("Found translatable string: %s", regex.cap(1).toUtf8().data());
|
||||
QByteArray word = regex.cap(1).toUtf8();
|
||||
|
||||
QString translation = word;
|
||||
bool isTranslationNeeded = !Preferences().getLocale().startsWith("en");
|
||||
if (isTranslationNeeded) {
|
||||
int context_index = 0;
|
||||
do {
|
||||
while(context_index < context_count && translation == word) {
|
||||
translation = qApp->translate(contexts[context_index].c_str(), word.constData(), 0, QCoreApplication::UnicodeUTF8, 1);
|
||||
++context_index;
|
||||
} while(translation == word && context_index < 15);
|
||||
}
|
||||
}
|
||||
// Remove keyboard shortcuts
|
||||
translation.replace(mnemonic, "");
|
||||
|
||||
data.replace(i, regex.matchedLength(), translation);
|
||||
i += translation.length();
|
||||
found = true;
|
||||
} else {
|
||||
found = false; // no more translatable strings
|
||||
}
|
||||
} while(found && i < data.size());
|
||||
}
|
||||
}
|
||||
|
||||
void HttpConnection::respond() {
|
||||
|
|
Loading…
Reference in a new issue