[WebUI]Make the context obligatory for translatable strings. Also delete duplicate strings from extra translations.

This commit is contained in:
sledgehammer999
2017-05-01 01:45:02 +03:00
parent fc0c28d376
commit e177799ada
29 changed files with 393 additions and 438 deletions

View File

@@ -244,17 +244,8 @@ QString AbstractWebApplication::generateSid()
void AbstractWebApplication::translateDocument(QString& data)
{
const QRegExp regex("QBT_TR\\((([^\\)]|\\)(?!QBT_TR))+)\\)QBT_TR(\\[CONTEXT=([a-zA-Z_][a-zA-Z0-9_]*)\\])?");
const QRegExp regex("QBT_TR\\((([^\\)]|\\)(?!QBT_TR))+)\\)QBT_TR(\\[CONTEXT=([a-zA-Z_][a-zA-Z0-9_]*)\\])");
const QRegExp mnemonic("\\(?&([a-zA-Z]?\\))?");
const std::string contexts[] = {
"TransferListFiltersWidget", "TransferListWidget", "PropertiesWidget",
"HttpServer", "confirmDeletionDlg", "TrackerList", "TorrentFilesModel",
"options_imp", "Preferences", "TrackersAdditionDlg", "ScanFoldersModel",
"PropTabBar", "TorrentModel", "downloadFromURL", "MainWindow", "misc",
"StatusBar", "AboutDlg", "about", "PeerListWidget", "StatusFiltersWidget",
"CategoryFiltersList", "TransferListDelegate", "AddNewTorrentDialog"
};
const size_t context_count = sizeof(contexts) / sizeof(contexts[0]);
int i = 0;
bool found = true;
@@ -270,16 +261,7 @@ void AbstractWebApplication::translateDocument(QString& data)
QString translation = word;
if (isTranslationNeeded) {
QString context = regex.cap(4);
if (context.length() > 0) {
translation = qApp->translate(context.toUtf8().constData(), word.constData(), 0, 1);
}
else {
size_t context_index = 0;
while ((context_index < context_count) && (translation == word)) {
translation = qApp->translate(contexts[context_index].c_str(), word.constData(), 0, 1);
++context_index;
}
}
translation = qApp->translate(context.toUtf8().constData(), word.constData(), 0, 1);
}
// Remove keyboard shortcuts
translation.replace(mnemonic, "");