summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@digia.com>2013-03-06 14:44:59 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-03-12 22:07:49 +0100
commit4944ea0586ce2b4d39ae141e4e0fd74804ade93f (patch)
tree089a6c0c1aa1e0b66bafd1a2206a15013edc5070
parent17af244afa77991cb071d10f1ce9af09c46a5397 (diff)
downloadqttools-4944ea0586ce2b4d39ae141e4e0fd74804ade93f.tar.gz
purge CODECFORTR & -codecfortr support
qt-based code is expected to be utf8-encoded nowadays. the respective c++ interfaces have been purged in 5.0 already. Change-Id: I592b49f198aae05212afbf8d3aa2b01b1e9369dd Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
-rw-r--r--src/linguist/lconvert/main.cpp14
-rw-r--r--src/linguist/linguist/doc/snippets/doc_src_linguist-manual.pro5
-rw-r--r--src/linguist/linguist/doc/src/linguist-manual.qdoc32
-rw-r--r--src/linguist/linguist/main.cpp1
-rw-r--r--src/linguist/linguist/messagemodel.cpp3
-rw-r--r--src/linguist/linguist/messagemodel.h1
-rw-r--r--src/linguist/lupdate/cpp.cpp66
-rw-r--r--src/linguist/lupdate/java.cpp5
-rw-r--r--src/linguist/lupdate/main.cpp43
-rw-r--r--src/linguist/lupdate/merge.cpp3
-rw-r--r--src/linguist/lupdate/ui.cpp5
-rw-r--r--src/linguist/shared/po.cpp9
-rw-r--r--src/linguist/shared/qm.cpp115
-rw-r--r--src/linguist/shared/translator.cpp32
-rw-r--r--src/linguist/shared/translator.h7
-rw-r--r--src/linguist/shared/translatormessage.cpp20
-rw-r--r--src/linguist/shared/translatormessage.h7
-rw-r--r--src/linguist/shared/ts.cpp35
-rw-r--r--tests/auto/linguist/lconvert/data/codec-cp1252.ts28
-rw-r--r--tests/auto/linguist/lconvert/data/codec-utf8.ts1
-rw-r--r--tests/auto/linguist/lconvert/data/dual-encoding.ts11
-rw-r--r--tests/auto/linguist/lconvert/tst_lconvert.cpp1
-rw-r--r--tests/auto/linguist/lrelease/testdata/dupes.ts4
-rw-r--r--tests/auto/linguist/lrelease/testdata/mixedcodecs-ts20.ts18
-rw-r--r--tests/auto/linguist/lrelease/tst_lrelease.cpp21
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/codecforsrc/main.cpp2
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/codecforsrc/project.pro1
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/codecforsrc/project.ts.result1
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/codecfortr/main.cpp65
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/codecfortr/project.pro7
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/codecfortr/project.ts.result13
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/codecfortr1/main.cpp63
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/codecfortr1/project.pro7
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/codecfortr1/project.ts.result38
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/codecfortr2/main.cpp62
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/codecfortr2/project.pro8
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/codecfortr2/project.ts.result33
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/codecfortr3/expectedoutput.txt1
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/codecfortr3/main.cpp45
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/codecfortr3/project.pro5
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/codecfortr3/project.ts.before13
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/codecfortr3/project.ts.result12
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/codecfortr4/expectedoutput.txt0
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/codecfortr4/main.cpp45
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/codecfortr4/project.pro5
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/codecfortr4/project.ts.before13
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/codecfortr4/project.ts.result13
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/parse_special_chars/main.cpp4
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/parsecpp/project.ts.result2
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/parseui/project.ts.result2
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/recurse_full/project_sub.ts.result1
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/recurse_part/project_sub.ts.result1
-rw-r--r--tests/auto/linguist/lupdate/testdata/subdirs_full/subdir2/subsub2/subsub2.pro1
-rw-r--r--tests/auto/linguist/lupdate/testdata/subdirs_part/subdir2/subsub2/subsub2.pro1
54 files changed, 69 insertions, 882 deletions
diff --git a/src/linguist/lconvert/main.cpp b/src/linguist/lconvert/main.cpp
index af1576c97..edac6fe60 100644
--- a/src/linguist/lconvert/main.cpp
+++ b/src/linguist/lconvert/main.cpp
@@ -90,12 +90,6 @@ static int usage(const QStringList &args)
" -of <outformat>\n"
" --output-format <outformat>\n"
" Specify output format. See -if.\n\n"
- " --input-codec <codec>\n"
- " Specify encoding for QM and PO input files. Default is 'Latin1'\n"
- " for QM and 'UTF-8' for PO files. UTF-8 is always tried as well for\n"
- " QM, corresponding to the possible use of the trUtf8() function.\n\n"
- " --output-codec <codec>\n"
- " Specify encoding for PO output files. Default is 'UTF-8'.\n\n"
" --drop-tags <regexp>\n"
" Drop named extra tags when writing TS or XLIFF files.\n"
" May be specified repeatedly.\n\n"
@@ -195,14 +189,6 @@ int main(int argc, char *argv[])
if (++i >= args.size())
return usage(args);
inFormat = args[i];
- } else if (args[i] == QLatin1String("-input-codec")) {
- if (++i >= args.size())
- return usage(args);
- cd.m_codecForSource = args[i].toLatin1();
- } else if (args[i] == QLatin1String("-output-codec")) {
- if (++i >= args.size())
- return usage(args);
- cd.m_outputCodec = args[i].toLatin1();
} else if (args[i] == QLatin1String("-drop-tag")) {
if (++i >= args.size())
return usage(args);
diff --git a/src/linguist/linguist/doc/snippets/doc_src_linguist-manual.pro b/src/linguist/linguist/doc/snippets/doc_src_linguist-manual.pro
index 772bdf1b7..d89cb10b5 100644
--- a/src/linguist/linguist/doc/snippets/doc_src_linguist-manual.pro
+++ b/src/linguist/linguist/doc/snippets/doc_src_linguist-manual.pro
@@ -52,11 +52,6 @@ TRANSLATIONS = superapp_dk.ts \
#! [0]
-#! [1]
-CODECFORTR = ISO-8859-5
-#! [1]
-
-
#! [2]
CODECFORSRC = UTF-8
#! [2]
diff --git a/src/linguist/linguist/doc/src/linguist-manual.qdoc b/src/linguist/linguist/doc/src/linguist-manual.qdoc
index 852a006bd..d1af32be2 100644
--- a/src/linguist/linguist/doc/src/linguist-manual.qdoc
+++ b/src/linguist/linguist/doc/src/linguist-manual.qdoc
@@ -159,22 +159,9 @@
files:
\snippet doc_src_linguist-manual.pro 0
- \snippet doc_src_linguist-manual.pro 1
- QTextCodec::setCodecForTr() makes it possible to choose a 8-bit
- encoding for literal strings that appear within \c tr() calls.
- This is useful for applications whose source language is, for
- example, Chinese or Japanese. If no encoding is set, \c tr() uses
- Latin1.
-
- If you do use the QTextCodec::codecForTr() mechanism in your
- application, \QL needs you to set the \c CODECFORTR
- entry in the \c .pro file as well. For example:
-
- \snippet doc_src_linguist-manual.pro 1
-
- Also, if your compiler uses a different encoding for its runtime
- system as for its source code and you want to use non-ASCII
+ If your compiler uses a different encoding for its runtime
+ system than for its source code and you want to use non-ASCII
characters in string literals, you will need to set the \c
CODECFORSRC. For example:
@@ -1269,15 +1256,6 @@
\snippet arrowpad/arrowpad.pro 1
- If your sources contain genuine non-Latin1 strings,
- lupdate needs
- to be told about it in the \c .pro file by using, for example,
- the following line:
-
- \code
- CODECFORTR = UTF-8
- \endcode
-
For more information, see \l{Using lupdate} and \l{Using lrelease}.
\section2 Loading Translations
@@ -1297,12 +1275,6 @@
\snippet arrowpad/main.cpp 0
\snippet arrowpad/main.cpp 1
- For non-Latin1 strings in the sources you will also need for example:
-
- \code
- QTextCodec::setCodecForTr(QTextCodec::codecForName("utf8"));
- \endcode
-
In production applications a more flexible approach, for example,
loading translations according to locale, might be more appropriate. If
the TS files are all named according to a convention such as
diff --git a/src/linguist/linguist/main.cpp b/src/linguist/linguist/main.cpp
index f53399f79..1ca3b293c 100644
--- a/src/linguist/linguist/main.cpp
+++ b/src/linguist/linguist/main.cpp
@@ -46,7 +46,6 @@
#include <QtCore/QLibraryInfo>
#include <QtCore/QLocale>
#include <QtCore/QSettings>
-#include <QtCore/QTextCodec>
#include <QtCore/QTranslator>
#include <QtWidgets/QApplication>
diff --git a/src/linguist/linguist/messagemodel.cpp b/src/linguist/linguist/messagemodel.cpp
index 553e223e9..bf45ea8fc 100644
--- a/src/linguist/linguist/messagemodel.cpp
+++ b/src/linguist/linguist/messagemodel.cpp
@@ -43,7 +43,6 @@
#include <QtCore/QCoreApplication>
#include <QtCore/QDebug>
-#include <QtCore/QTextCodec>
#include <QtWidgets/QMessageBox>
#include <QtGui/QPainter>
@@ -243,7 +242,6 @@ bool DataModel::load(const QString &fileName, bool *langGuessed, QWidget *parent
}
m_srcFileName = fileName;
- m_codecName = tor.codecName();
m_relativeLocations = (tor.locationsType() == Translator::RelativeLocations);
m_extra = tor.extras();
m_contextList.clear();
@@ -336,7 +334,6 @@ bool DataModel::save(const QString &fileName, QWidget *parent)
tor.setLanguageCode(Translator::makeLanguageCode(m_language, m_country));
tor.setSourceLanguageCode(Translator::makeLanguageCode(m_sourceLanguage, m_sourceCountry));
- tor.setCodecName(m_codecName);
tor.setLocationsType(m_relativeLocations ? Translator::RelativeLocations
: Translator::AbsoluteLocations);
tor.setExtras(m_extra);
diff --git a/src/linguist/linguist/messagemodel.h b/src/linguist/linguist/messagemodel.h
index 9c2e75c90..76dd2db23 100644
--- a/src/linguist/linguist/messagemodel.h
+++ b/src/linguist/linguist/messagemodel.h
@@ -257,7 +257,6 @@ private:
QLocale::Language m_sourceLanguage;
QLocale::Country m_country;
QLocale::Country m_sourceCountry;
- QByteArray m_codecName;
bool m_relativeLocations;
Translator::ExtraData m_extra;
diff --git a/src/linguist/lupdate/cpp.cpp b/src/linguist/lupdate/cpp.cpp
index f3063a188..8288cbff5 100644
--- a/src/linguist/lupdate/cpp.cpp
+++ b/src/linguist/lupdate/cpp.cpp
@@ -246,15 +246,15 @@ private:
bool getMacroArgs();
bool match(uint t);
bool matchString(QString *s);
- bool matchEncoding(bool *utf8);
+ bool matchEncoding();
bool matchStringOrNull(QString *s);
bool matchExpression();
- QString transcode(const QString &str, bool utf8);
+ QString transcode(const QString &str);
void recordMessage(
int line, const QString &context, const QString &text, const QString &comment,
const QString &extracomment, const QString &msgid, const TranslatorMessage::ExtraData &extra,
- bool utf8, bool plural);
+ bool plural);
void processInclude(const QString &file, ConversionData &cd,
const QStringList &includeStack, QSet<QString> &inclusions);
@@ -308,8 +308,6 @@ private:
QString yyFileName;
int yyCh;
bool yyAtNewline;
- bool yyCodecIsUtf8;
- bool yyForceUtf8;
QString yyWord;
qlonglong yyInteger;
QStack<IfdefState> yyIfdefStack;
@@ -378,7 +376,6 @@ void CppParser::setInput(const QString &in)
yyInStr = in;
yyFileName = QString();
yySourceCodec = 0;
- yyForceUtf8 = true;
}
void CppParser::setInput(QTextStream &ts, const QString &fileName)
@@ -386,7 +383,6 @@ void CppParser::setInput(QTextStream &ts, const QString &fileName)
yyInStr = ts.readAll();
yyFileName = fileName;
yySourceCodec = ts.codec();
- yyForceUtf8 = false;
}
/*
@@ -1460,7 +1456,7 @@ STRING(UnicodeUTF8);
STRING(DefaultCodec);
STRING(CodecForTr);
-bool CppParser::matchEncoding(bool *utf8)
+bool CppParser::matchEncoding()
{
if (yyTok != Tok_Ident)
return false;
@@ -1469,16 +1465,11 @@ bool CppParser::matchEncoding(bool *utf8)
if (yyTok == Tok_ColonColon)
yyTok = getToken();
}
- if (yyWord == strUnicodeUTF8) {
- *utf8 = true;
- yyTok = getToken();
- return true;
- }
- if (yyWord == strDefaultCodec || yyWord == strCodecForTr) {
- *utf8 = false;
+ if (yyWord == strUnicodeUTF8 || yyWord == strDefaultCodec || yyWord == strCodecForTr) {
yyTok = getToken();
return true;
}
+ yyMsg() << qPrintable(LU::tr("Unsupported encoding Latin1\n"));
return false;
}
@@ -1530,12 +1521,12 @@ bool CppParser::matchExpression()
return true;
}
-QString CppParser::transcode(const QString &str, bool utf8)
+QString CppParser::transcode(const QString &str)
{
static const char tab[] = "abfnrtv";
static const char backTab[] = "\a\b\f\n\r\t\v";
// This function has to convert back to bytes, as C's \0* sequences work at that level.
- const QByteArray in = yyForceUtf8 ? str.toUtf8() : tor->codec()->fromUnicode(str);
+ const QByteArray in = str.toUtf8();
QByteArray out;
out.reserve(in.length());
@@ -1574,33 +1565,25 @@ QString CppParser::transcode(const QString &str, bool utf8)
out += c;
}
}
- return (utf8 || yyForceUtf8) ? QString::fromUtf8(out.constData(), out.length())
- : tor->codec()->toUnicode(out);
+ return QString::fromUtf8(out.constData(), out.length());
}
-void CppParser::recordMessage(
- int line, const QString &context, const QString &text, const QString &comment,
- const QString &extracomment, const QString &msgid, const TranslatorMessage::ExtraData &extra,
- bool utf8, bool plural)
+void CppParser::recordMessage(int line, const QString &context, const QString &text, const QString &comment,
+ const QString &extracomment, const QString &msgid, const TranslatorMessage::ExtraData &extra, bool plural)
{
TranslatorMessage msg(
- transcode(context, utf8), transcode(text, utf8), transcode(comment, utf8), QString(),
+ transcode(context), transcode(text), transcode(comment), QString(),
yyFileName, line, QStringList(),
TranslatorMessage::Unfinished, plural);
- msg.setExtraComment(transcode(extracomment.simplified(), utf8));
+ msg.setExtraComment(transcode(extracomment.simplified()));
msg.setId(msgid);
msg.setExtras(extra);
- if ((utf8 || yyForceUtf8) && !yyCodecIsUtf8 && msg.needs8Bit())
- msg.setUtf8(true);
tor->append(msg);
}
void CppParser::parse(const QString &initialContext, ConversionData &cd, const QStringList &includeStack,
QSet<QString> &inclusions)
{
- if (tor)
- yyCodecIsUtf8 = (tor->codecName() == "UTF-8");
-
namespaces << HashString();
functionContext = namespaces;
functionContextUnresolved = initialContext;
@@ -1624,7 +1607,6 @@ void CppParser::parseInternal(ConversionData &cd, const QStringList &includeStac
QString functionName;
#endif
int line;
- bool utf8;
bool yyTokColonSeen = false; // Start of c'tor's initializer list
yyWord.reserve(yyInStr.size()); // Rather insane. That's because we do no length checking.
@@ -1834,7 +1816,6 @@ void CppParser::parseInternal(ConversionData &cd, const QStringList &includeStac
goto case_default;
if (!sourcetext.isEmpty())
yyMsg() << qPrintable(LU::tr("//% cannot be used with tr() / QT_TR_NOOP(). Ignoring\n"));
- utf8 = (yyTok == Tok_trUtf8);
line = yyLineNo;
yyTok = getToken();
if (match(Tok_LeftParen) && matchString(&text) && !text.isEmpty()) {
@@ -1927,7 +1908,7 @@ void CppParser::parseInternal(ConversionData &cd, const QStringList &includeStac
}
gotctx:
- recordMessage(line, context, text, comment, extracomment, msgid, extra, utf8, plural);
+ recordMessage(line, context, text, comment, extracomment, msgid, extra, plural);
}
sourcetext.clear(); // Will have warned about that already
extracomment.clear();
@@ -1940,7 +1921,6 @@ void CppParser::parseInternal(ConversionData &cd, const QStringList &includeStac
goto case_default;
if (!sourcetext.isEmpty())
yyMsg() << qPrintable(LU::tr("//% cannot be used with translate() / QT_TRANSLATE_NOOP(). Ignoring\n"));
- utf8 = (yyTok == Tok_translateUtf8);
line = yyLineNo;
yyTok = getToken();
if (match(Tok_LeftParen)
@@ -1956,7 +1936,7 @@ void CppParser::parseInternal(ConversionData &cd, const QStringList &includeStac
if (!match(Tok_RightParen)) {
// look for encoding
if (match(Tok_Comma)) {
- if (matchEncoding(&utf8)) {
+ if (matchEncoding()) {
if (!match(Tok_RightParen)) {
// look for the plural quantifier,
// this can be a number, an identifier or
@@ -1983,7 +1963,7 @@ void CppParser::parseInternal(ConversionData &cd, const QStringList &includeStac
break;
}
}
- recordMessage(line, context, text, comment, extracomment, msgid, extra, utf8, plural);
+ recordMessage(line, context, text, comment, extracomment, msgid, extra, plural);
}
sourcetext.clear(); // Will have warned about that already
extracomment.clear();
@@ -1995,13 +1975,12 @@ void CppParser::parseInternal(ConversionData &cd, const QStringList &includeStac
goto case_default;
if (!msgid.isEmpty())
yyMsg() << qPrintable(LU::tr("//= cannot be used with qtTrId() / QT_TRID_NOOP(). Ignoring\n"));
- //utf8 = false; // Maybe use //%% or something like that
line = yyLineNo;
yyTok = getToken();
if (match(Tok_LeftParen) && matchString(&msgid) && !msgid.isEmpty()) {
bool plural = match(Tok_Comma);
recordMessage(line, QString(), sourcetext, QString(), extracomment,
- msgid, extra, false, plural);
+ msgid, extra, plural);
}
sourcetext.clear();
extracomment.clear();
@@ -2102,11 +2081,11 @@ void CppParser::parseInternal(ConversionData &cd, const QStringList &includeStac
context = comment.left(k);
comment.remove(0, k + 1);
TranslatorMessage msg(
- transcode(context, false), QString(),
- transcode(comment, false), QString(),
+ transcode(context), QString(),
+ transcode(comment), QString(),
yyFileName, yyLineNo, QStringList(),
TranslatorMessage::Finished, false);
- msg.setExtraComment(transcode(extracomment.simplified(), false));
+ msg.setExtraComment(transcode(extracomment.simplified()));
extracomment.clear();
tor->append(msg);
tor->setExtras(extra);
@@ -2239,7 +2218,7 @@ const ParseResults *CppParser::recordResults(bool isHeader)
void loadCPP(Translator &translator, const QStringList &filenames, ConversionData &cd)
{
QByteArray codecName = cd.m_codecForSource.isEmpty()
- ? translator.codecName() : cd.m_codecForSource;
+ ? "UTF-8" : cd.m_codecForSource;
QTextCodec *codec = QTextCodec::codecForName(codecName);
foreach (const QString &filename, filenames) {
@@ -2257,10 +2236,7 @@ void loadCPP(Translator &translator, const QStringList &filenames, ConversionDat
ts.setCodec(codec);
ts.setAutoDetectUnicode(true);
parser.setInput(ts, filename);
- if (cd.m_outputCodec.isEmpty() && ts.codec()->name() == "UTF-16")
- translator.setCodecName("System");
Translator *tor = new Translator;
- tor->setCodecName(translator.codecName());
parser.setTranslator(tor);
QSet<QString> inclusions;
parser.parse(cd.m_defaultContext, cd, QStringList(), inclusions);
diff --git a/src/linguist/lupdate/java.cpp b/src/linguist/lupdate/java.cpp
index 2d22f1a0e..079847f43 100644
--- a/src/linguist/lupdate/java.cpp
+++ b/src/linguist/lupdate/java.cpp
@@ -626,7 +626,7 @@ bool loadJava(Translator &translator, const QString &filename, ConversionData &c
if (!cd.m_codecForSource.isEmpty())
codecName = cd.m_codecForSource;
else
- codecName = translator.codecName(); // Just because it should be latin1 already
+ codecName = "UTF-8";
ts.setCodec(QTextCodec::codecForName(codecName));
ts.setAutoDetectUnicode(true);
yyInStr = ts.readAll();
@@ -636,9 +636,6 @@ bool loadJava(Translator &translator, const QString &filename, ConversionData &c
yyParenLineNo = 1;
parse(&translator);
-
- // Java uses UTF-16 internally and Jambi makes UTF-8 for tr() purposes of it.
- translator.setCodecName("UTF-8");
return true;
}
diff --git a/src/linguist/lupdate/main.cpp b/src/linguist/lupdate/main.cpp
index a60b8bdb6..ff7538de7 100644
--- a/src/linguist/lupdate/main.cpp
+++ b/src/linguist/lupdate/main.cpp
@@ -135,10 +135,7 @@ static void printUsage()
" Specify the language of the translations for new files.\n"
" Guessed from the file name if not specified.\n"
" -ts <ts-file>...\n"
- " Specify the output file(s). This will override the TRANSLATIONS\n"
- " and nullify the CODECFORTR from possibly specified project files.\n"
- " -codecfortr <codec>\n"
- " Specify the codec assumed for tr() calls. Effective only with -ts.\n"
+ " Specify the output file(s). This will override the TRANSLATIONS.\n"
" -version\n"
" Display the version of lupdate and exit.\n"
" @lst-file\n"
@@ -149,7 +146,7 @@ static void printUsage()
static void updateTsFiles(const Translator &fetchedTor, const QStringList &tsFileNames,
const QStringList &alienFiles,
- bool setCodec, const QString &sourceLanguage, const QString &targetLanguage,
+ const QString &sourceLanguage, const QString &targetLanguage,
UpdateOptions options, bool *fail)
{
QList<Translator> aliens;
@@ -180,11 +177,6 @@ static void updateTsFiles(const Translator &fetchedTor, const QStringList &tsFil
}
tor.resolveDuplicates();
cd.clearErrors();
- if (setCodec && fetchedTor.codec() != tor.codec())
- printErr(LU::tr("lupdate warning: Codec for tr() '%1' disagrees with"
- " existing file's codec '%2'. Expect trouble.\n")
- .arg(QString::fromLatin1(fetchedTor.codecName()),
- QString::fromLatin1(tor.codecName())));
if (!targetLanguage.isEmpty() && targetLanguage != tor.languageCode())
printErr(LU::tr("lupdate warning: Specified target language '%1' disagrees with"
" existing file's language '%2'. Ignoring.\n")
@@ -194,8 +186,6 @@ static void updateTsFiles(const Translator &fetchedTor, const QStringList &tsFil
" existing file's language '%2'. Ignoring.\n")
.arg(sourceLanguage, tor.sourceLanguageCode()));
} else {
- if (setCodec)
- tor.setCodec(fetchedTor.codec());
if (!targetLanguage.isEmpty())
tor.setLanguageCode(targetLanguage);
else
@@ -217,8 +207,6 @@ static void updateTsFiles(const Translator &fetchedTor, const QStringList &tsFil
if (tor.locationsType() == Translator::NoLocations) // Could be set from file
theseOptions |= NoLocations;
Translator out = merge(tor, fetchedTor, aliens, theseOptions, err);
- if (setCodec)
- out.setCodec(fetchedTor.codec());
if ((options & Verbose) && !err.isEmpty()) {
printOut(err);
@@ -483,18 +471,10 @@ static void processProjects(bool topLevel, bool nestComplain, const QStringList
continue;
}
Translator tor;
- bool setCodec = false;
- QStringList tmp = visitor.values(QLatin1String("CODEC"))
- + visitor.values(QLatin1String("DEFAULTCODEC"))
- + visitor.values(QLatin1String("CODECFORTR"));
- if (!tmp.isEmpty()) {
- tor.setCodecName(tmp.last().toLatin1());
- setCodec = true;
- }
processProject(false, proFile, option, parser, visitor, options, codecForSource,
targetLanguage, sourceLanguage, &tor, fail);
updateTsFiles(tor, tsFiles, QStringList(),
- setCodec, sourceLanguage, targetLanguage, options, fail);
+ sourceLanguage, targetLanguage, options, fail);
pro->deref();
continue;
}
@@ -543,7 +523,6 @@ int main(int argc, char **argv)
QStringList alienFiles;
QString targetLanguage;
QString sourceLanguage;
- QByteArray codecForTr;
UpdateOptions options =
Verbose | // verbose is on by default starting with Qt 4.2
@@ -645,14 +624,6 @@ int main(int argc, char **argv)
} else if (arg == QLatin1String("-version")) {
printOut(QObject::tr("lupdate version %1\n").arg(QLatin1String(QT_VERSION_STR)));
return 0;
- } else if (arg == QLatin1String("-codecfortr")) {
- ++i;
- if (i == argc) {
- printErr(LU::tr("The -codecfortr option should be followed by a codec name.\n"));
- return 1;
- }
- codecForTr = args[i].toLatin1();
- continue;
} else if (arg == QLatin1String("-ts")) {
metTsFlag = true;
continue;
@@ -821,8 +792,6 @@ int main(int argc, char **argv)
if (!targetLanguage.isEmpty() && tsFileNames.count() != 1)
printErr(LU::tr("lupdate warning: -target-language usually only"
" makes sense with exactly one TS file.\n"));
- if (!codecForTr.isEmpty() && tsFileNames.isEmpty())
- printErr(LU::tr("lupdate warning: -codecfortr has no effect without -ts.\n"));
bool fail = false;
if (proFiles.isEmpty()) {
@@ -836,9 +805,8 @@ int main(int argc, char **argv)
cd.m_projectRoots = projectRoots;
cd.m_includePath = includePath;
cd.m_allCSources = allCSources;
- fetchedTor.setCodecName(codecForTr);
processSources(fetchedTor, sourceFiles, cd);
- updateTsFiles(fetchedTor, tsFileNames, alienFiles, !codecForTr.isEmpty(),
+ updateTsFiles(fetchedTor, tsFileNames, alienFiles,
sourceLanguage, targetLanguage, options, &fail);
} else {
if (!sourceFiles.isEmpty() || !includePath.isEmpty()) {
@@ -859,10 +827,9 @@ int main(int argc, char **argv)
if (!tsFileNames.isEmpty()) {
Translator fetchedTor;
- fetchedTor.setCodecName(codecForTr);
processProjects(true, true, proFiles, outDirMap, &option, &parser, options, QByteArray(),
targetLanguage, sourceLanguage, &fetchedTor, &fail);
- updateTsFiles(fetchedTor, tsFileNames, alienFiles, !codecForTr.isEmpty(),
+ updateTsFiles(fetchedTor, tsFileNames, alienFiles,
sourceLanguage, targetLanguage, options, &fail);
} else {
processProjects(true, false, proFiles, outDirMap, &option, &parser, options, QByteArray(),
diff --git a/src/linguist/lupdate/merge.cpp b/src/linguist/lupdate/merge.cpp
index 9808399d6..3160f914b 100644
--- a/src/linguist/lupdate/merge.cpp
+++ b/src/linguist/lupdate/merge.cpp
@@ -48,7 +48,6 @@
#include <QtCore/QDebug>
#include <QtCore/QMap>
#include <QtCore/QStringList>
-#include <QtCore/QTextCodec>
#include <QtCore/QVector>
QT_BEGIN_NAMESPACE
@@ -338,7 +337,6 @@ Translator merge(
outTor.setLanguageCode(tor.languageCode());
outTor.setSourceLanguageCode(tor.sourceLanguageCode());
outTor.setLocationsType(tor.locationsType());
- outTor.setCodecName(tor.codecName());
/*
The types of all the messages from the vernacular translator
@@ -439,7 +437,6 @@ Translator merge(
copyAttribs:
m.setReferences(mv->allReferences());
m.setPlural(mv->isPlural());
- m.setUtf8(mv->isUtf8());
m.setExtraComment(mv->extraComment());
m.setId(mv->id());
}
diff --git a/src/linguist/lupdate/ui.cpp b/src/linguist/lupdate/ui.cpp
index 5584a551c..537f0a92b 100644
--- a/src/linguist/lupdate/ui.cpp
+++ b/src/linguist/lupdate/ui.cpp
@@ -65,7 +65,7 @@ class UiReader : public QXmlDefaultHandler
public:
UiReader(Translator &translator, ConversionData &cd)
: m_translator(translator), m_cd(cd), m_lineNumber(-1), m_isTrString(false),
- m_needUtf8(translator.codecName() != "UTF-8"), m_insideStringList(false)
+ m_insideStringList(false)
{}
bool startElement(const QString &namespaceURI, const QString &localName,
@@ -92,7 +92,6 @@ private:
QString m_accum;
int m_lineNumber;
bool m_isTrString;
- bool m_needUtf8;
bool m_insideStringList;
};
@@ -161,8 +160,6 @@ void UiReader::flush()
m_comment, QString(), m_cd.m_sourceFileName,
m_lineNumber, QStringList());
msg.setExtraComment(m_extracomment);
- if (m_needUtf8 && msg.needs8Bit())
- msg.setUtf8(true);
m_translator.extend(msg);
}
m_source.clear();
diff --git a/src/linguist/shared/po.cpp b/src/linguist/shared/po.cpp
index 5e4da8417..2f51e1c4e 100644
--- a/src/linguist/shared/po.cpp
+++ b/src/linguist/shared/po.cpp
@@ -404,8 +404,7 @@ static QByteArray QByteArrayList_join(const QList<QByteArray> &that, char sep)
bool loadPO(Translator &translator, QIODevice &dev, ConversionData &cd)
{
- QTextCodec *codec = QTextCodec::codecForName(
- cd.m_codecForSource.isEmpty() ? QByteArray("UTF-8") : cd.m_codecForSource);
+ QTextCodec *codec = QTextCodec::codecForName("UTF-8");
bool error = false;
// format of a .po file entry:
@@ -478,7 +477,6 @@ bool loadPO(Translator &translator, QIODevice &dev, ConversionData &cd)
} else if (hdrName == "MIME-Version") {
// just assume it is 1.0
} else if (hdrName == "Content-Type") {
- if (cd.m_codecForSource.isEmpty()) {
if (!hdrValue.startsWith("text/plain; charset=")) {
cd.appendError(QString::fromLatin1("Unexpected Content-Type header '%1'")
.arg(QString::fromLatin1(hdrValue)));
@@ -498,7 +496,6 @@ bool loadPO(Translator &translator, QIODevice &dev, ConversionData &cd)
codec = cdc;
}
}
- }
} else if (hdrName == "Content-Transfer-Encoding") {
if (hdrValue != "8bit") {
cd.appendError(QString::fromLatin1("Unexpected Content-Transfer-Encoding '%1'")
@@ -723,13 +720,13 @@ static QString escapeComment(const QString &in, bool escape)
return out;
}
-bool savePO(const Translator &translator, QIODevice &dev, ConversionData &cd)
+bool savePO(const Translator &translator, QIODevice &dev, ConversionData &)
{
QString str_format = QLatin1String("-format");
bool ok = true;
QTextStream out(&dev);
- out.setCodec(cd.m_outputCodec.isEmpty() ? QByteArray("UTF-8") : cd.m_outputCodec);
+ out.setCodec("UTF-8");
bool qtContexts = false;
foreach (const TranslatorMessage &msg, translator.messages())
diff --git a/src/linguist/shared/qm.cpp b/src/linguist/shared/qm.cpp
index 3697ff4f5..418c12ee3 100644
--- a/src/linguist/shared/qm.cpp
+++ b/src/linguist/shared/qm.cpp
@@ -165,12 +165,7 @@ public:
enum { Contexts = 0x2f, Hashes = 0x42, Messages = 0x69, NumerusRules = 0x88, Dependencies = 0x96 };
- Releaser() : m_codec(0) {}
-
- void setCodecName(const QByteArray &codecName)
- {
- m_codec = QTextCodec::codecForName(codecName);
- }
+ Releaser() {}
bool save(QIODevice *iod);
@@ -187,10 +182,7 @@ private:
// This should reproduce the byte array fetched from the source file, which
// on turn should be the same as passed to the actual tr(...) calls
- QByteArray originalBytes(const QString &str, bool isUtf8) const;
-
- void insertInternal(const TranslatorMessage &message, const QStringList &tlns,
- bool forceComment, bool isUtf8);
+ QByteArray originalBytes(const QString &str) const;
static Prefix commonPrefix(const ByteTranslatorMessage &m1, const ByteTranslatorMessage &m2);
@@ -207,21 +199,16 @@ private:
QByteArray m_numerusRules;
QStringList m_dependencies;
QByteArray m_dependencyArray;
-
- // Used to reproduce the original bytes
- QTextCodec *m_codec;
};
-QByteArray Releaser::originalBytes(const QString &str, bool isUtf8) const
+QByteArray Releaser::originalBytes(const QString &str) const
{
if (str.isEmpty()) {
// Do not use QByteArray() here as the result of the serialization
// will be different.
return QByteArray("");
}
- if (isUtf8)
- return str.toUtf8();
- return m_codec ? m_codec->fromUnicode(str) : str.toLatin1();
+ return str.toUtf8();
}
uint Releaser::msgHash(const ByteTranslatorMessage &msg)
@@ -429,12 +416,11 @@ void Releaser::squeeze(TranslatorSaveMode mode)
}
}
-void Releaser::insertInternal(const TranslatorMessage &message, const QStringList &tlns,
- bool forceComment, bool isUtf8)
+void Releaser::insert(const TranslatorMessage &message, const QStringList &tlns, bool forceComment)
{
- ByteTranslatorMessage bmsg(originalBytes(message.context(), isUtf8),
- originalBytes(message.sourceText(), isUtf8),
- originalBytes(message.comment(), isUtf8),
+ ByteTranslatorMessage bmsg(originalBytes(message.context()),
+ originalBytes(message.sourceText()),
+ originalBytes(message.comment()),
tlns);
if (!forceComment) {
ByteTranslatorMessage bmsg2(
@@ -447,16 +433,9 @@ void Releaser::insertInternal(const TranslatorMessage &message, const QStringLis
m_messages.insert(bmsg, 0);
}
-void Releaser::insert(const TranslatorMessage &message, const QStringList &tlns, bool forceComment)
-{
- insertInternal(message, tlns, forceComment, message.isUtf8());
- if (message.isUtf8() && message.isNonUtf8())
- insertInternal(message, tlns, forceComment, false);
-}
-
void Releaser::insertIdBased(const TranslatorMessage &message, const QStringList &tlns)
{
- ByteTranslatorMessage bmsg("", originalBytes(message.id(), false), "", tlns);
+ ByteTranslatorMessage bmsg("", originalBytes(message.id()), "", tlns);
m_messages.insert(bmsg, 0);
}
@@ -480,30 +459,12 @@ static quint32 read32(const uchar *data)
return (data[0] << 24) | (data[1] << 16) | (data[2] << 8) | (data[3]);
}
-static void fromBytes(const char *str, int len, QTextCodec *codec, QTextCodec *utf8Codec,
- QString *out, QString *utf8Out,
- bool *isSystem, bool *isUtf8, bool *needs8Bit)
+static void fromBytes(const char *str, int len, QString *out, bool *utf8Fail)
{
- for (int i = 0; i < len; ++i)
- if (str[i] & 0x80) {
- if (utf8Codec) {
- QTextCodec::ConverterState cvtState;
- *utf8Out = utf8Codec->toUnicode(str, len, &cvtState);
- *isUtf8 = !cvtState.invalidChars;
- }
- QTextCodec::ConverterState cvtState;
- *out = codec->toUnicode(str, len, &cvtState);
- *isSystem = !cvtState.invalidChars;
- *needs8Bit = true;
- return;
- }
- *out = QString::fromLatin1(str, len);
- *isSystem = true;
- if (utf8Codec) {
- *utf8Out = *out;
- *isUtf8 = true;
- }
- *needs8Bit = false;
+ static QTextCodec *utf8Codec = QTextCodec::codecForName("UTF-8");
+ QTextCodec::ConverterState cvtState;
+ *out = utf8Codec->toUnicode(str, len, &cvtState);
+ *utf8Fail = cvtState.invalidChars;
}
bool loadQM(Translator &translator, QIODevice &dev, ConversionData &cd)
@@ -565,12 +526,6 @@ bool loadQM(Translator &translator, QIODevice &dev, ConversionData &cd)
size_t numItems = offsetLength / (2 * sizeof(quint32));
//qDebug() << "NUMITEMS: " << numItems;
- QTextCodec *codec = QTextCodec::codecForName(
- cd.m_codecForSource.isEmpty() ? QByteArray("Latin1") : cd.m_codecForSource);
- QTextCodec *utf8Codec = 0;
- if (codec->name() != "UTF-8")
- utf8Codec = QTextCodec::codecForName("UTF-8");
-
QString strProN = QLatin1String("%n");
QLocale::Language l;
QLocale::Country c;
@@ -580,12 +535,8 @@ bool loadQM(Translator &translator, QIODevice &dev, ConversionData &cd)
if (getNumerusInfo(l, c, 0, &numerusForms, 0))
guessPlurals = (numerusForms.count() == 1);
- QString context, contextUtf8;
- bool contextIsSystem, contextIsUtf8, contextNeeds8Bit;
- QString sourcetext, sourcetextUtf8;
- bool sourcetextIsSystem, sourcetextIsUtf8, sourcetextNeeds8Bit;
- QString comment, commentUtf8;
- bool commentIsSystem, commentIsUtf8, commentNeeds8Bit;
+ QString context, sourcetext, comment;
+ bool utf8Fail = false;
QStringList translations;
for (const uchar *start = offsetArray; start != offsetArray + (numItems << 3); start += 8) {
@@ -626,9 +577,7 @@ bool loadQM(Translator &translator, QIODevice &dev, ConversionData &cd)
m += 4;
//qDebug() << "SOURCE LEN: " << len;
//qDebug() << "SOURCE: " << QByteArray((const char*)m, len);
- fromBytes((const char*)m, len, codec, utf8Codec,
- &sourcetext, &sourcetextUtf8,
- &sourcetextIsSystem, &sourcetextIsUtf8, &sourcetextNeeds8Bit);
+ fromBytes((const char*)m, len, &sourcetext, &utf8Fail);
m += len;
break;
}
@@ -637,9 +586,7 @@ bool loadQM(Translator &translator, QIODevice &dev, ConversionData &cd)
m += 4;
//qDebug() << "CONTEXT LEN: " << len;
//qDebug() << "CONTEXT: " << QByteArray((const char*)m, len);
- fromBytes((const char*)m, len, codec, utf8Codec,
- &context, &contextUtf8,
- &contextIsSystem, &contextIsUtf8, &contextNeeds8Bit);
+ fromBytes((const char*)m, len, &context, &utf8Fail);
m += len;
break;
}
@@ -648,9 +595,7 @@ bool loadQM(Translator &translator, QIODevice &dev, ConversionData &cd)
m += 4;
//qDebug() << "COMMENT LEN: " << len;
//qDebug() << "COMMENT: " << QByteArray((const char*)m, len);
- fromBytes((const char*)m, len, codec, utf8Codec,
- &comment, &commentUtf8,
- &commentIsSystem, &commentIsUtf8, &commentNeeds8Bit);
+ fromBytes((const char*)m, len, &comment, &utf8Fail);
m += len;
break;
}
@@ -673,28 +618,15 @@ bool loadQM(Translator &translator, QIODevice &dev, ConversionData &cd)
}
msg.setTranslations(translations);
translations.clear();
- if (contextNeeds8Bit || sourcetextNeeds8Bit || commentNeeds8Bit) {
- if (utf8Codec && contextIsUtf8 && sourcetextIsUtf8 && commentIsUtf8) {
- // The message is utf-8, but file is not.
- msg.setUtf8(true);
- msg.setContext(contextUtf8);
- msg.setSourceText(sourcetextUtf8);
- msg.setComment(commentUtf8);
- translator.append(msg);
- continue;
- }
- if (!(contextIsSystem && sourcetextIsSystem && commentIsSystem)) {
- cd.appendError(QLatin1String(
- "Cannot read file with specified input codec"));
- return false;
- }
- // The message is 8-bit in the file's encoding (utf-8 or not).
- }
msg.setContext(context);
msg.setSourceText(sourcetext);
msg.setComment(comment);
translator.append(msg);
}
+ if (utf8Fail) {
+ cd.appendError(QLatin1String("Cannot read file with UTF-8 codec"));
+ return false;
+ }
return ok;
}
@@ -719,7 +651,6 @@ bool saveQM(const Translator &translator, QIODevice &dev, ConversionData &cd)
QByteArray rules;
if (getNumerusInfo(l, c, &rules, 0, 0))
releaser.setNumerusRules(rules);
- releaser.setCodecName(translator.codecName());
int finished = 0;
int unfinished = 0;
diff --git a/src/linguist/shared/translator.cpp b/src/linguist/shared/translator.cpp
index 41be87dc0..a722ad774 100644
--- a/src/linguist/shared/translator.cpp
+++ b/src/linguist/shared/translator.cpp
@@ -60,7 +60,6 @@
#include <QtCore/QDir>
#include <QtCore/QFile>
#include <QtCore/QFileInfo>
-#include <QtCore/QTextCodec>
#include <QtCore/QTextStream>
#include <private/qtranslator_p.h>
@@ -78,7 +77,6 @@ QString QObject::tr(const char *sourceText, const char *, int n)
#endif
Translator::Translator() :
- m_codec(QTextCodec::codecForName("ISO-8859-1")),
m_locationsType(AbsoluteLocations),
m_indexOk(true)
{
@@ -164,10 +162,6 @@ void Translator::extend(const TranslatorMessage &msg)
cmt.append(msg.extraComment());
emsg.setExtraComment(cmt);
}
- if (msg.isUtf8() != emsg.isUtf8()) {
- emsg.setUtf8(true);
- emsg.setNonUtf8(true);
- }
}
}
@@ -593,14 +587,7 @@ Translator::Duplicates Translator::resolveDuplicates()
++i;
continue;
gotDupe:
- if (omsg->isUtf8() != msg.isUtf8() && !omsg->isNonUtf8()) {
- // Dual-encoded message
- omsg->setUtf8(true);
- omsg->setNonUtf8(true);
- } else {
- // Duplicate
- pDup->insert(oi);
- }
+ pDup->insert(oi);
if (!omsg->isTranslated() && msg.isTranslated())
omsg->setTranslations(msg.translations());
m_indexOk = false;
@@ -745,23 +732,6 @@ void Translator::setExtra(const QString &key, const QString &value)
m_extra[key] = value;
}
-void Translator::setCodecName(const QByteArray &name)
-{
- QTextCodec *codec = QTextCodec::codecForName(name);
- if (!codec) {
- if (!name.isEmpty())
- std::cerr << "No QTextCodec for " << name.constData() << " available. Using Latin1.\n";
- m_codec = QTextCodec::codecForName("ISO-8859-1");
- } else {
- m_codec = codec;
- }
-}
-
-QByteArray Translator::codecName() const
-{
- return m_codec->name();
-}
-
void Translator::dump() const
{
for (int i = 0; i != messageCount(); ++i)
diff --git a/src/linguist/shared/translator.h b/src/linguist/shared/translator.h
index 41fc9820a..712098219 100644
--- a/src/linguist/shared/translator.h
+++ b/src/linguist/shared/translator.h
@@ -98,7 +98,6 @@ public:
public:
QString m_defaultContext;
QByteArray m_codecForSource; // CPP, PO & QM specific
- QByteArray m_outputCodec; // CPP & PO specific
QString m_unTrPrefix; // QM specific
QString m_sourceFileName;
QString m_targetFileName;
@@ -160,11 +159,6 @@ public:
Duplicates resolveDuplicates();
void reportDuplicates(const Duplicates &dupes, const QString &fileName, bool verbose);
- void setCodecName(const QByteArray &name);
- void setCodec(QTextCodec *codec) { m_codec = codec; }
- QByteArray codecName() const;
- QTextCodec *codec() const { return m_codec; }
-
QString languageCode() const { return m_language; }
QString sourceLanguageCode() const { return m_sourceLanguage; }
@@ -231,7 +225,6 @@ private:
typedef QList<TranslatorMessage> TMM; // int stores the sequence position.
TMM m_messages;
- QTextCodec *m_codec;
LocationsType m_locationsType;
// A string beginning with a 2 or 3 letter language code (ISO 639-1
diff --git a/src/linguist/shared/translatormessage.cpp b/src/linguist/shared/translatormessage.cpp
index 206c535b1..050bc33ee 100644
--- a/src/linguist/shared/translatormessage.cpp
+++ b/src/linguist/shared/translatormessage.cpp
@@ -52,7 +52,7 @@
QT_BEGIN_NAMESPACE
TranslatorMessage::TranslatorMessage()
- : m_lineNumber(-1), m_type(Unfinished), m_utf8(false), m_nonUtf8(false), m_plural(false)
+ : m_lineNumber(-1), m_type(Unfinished), m_plural(false)
{
}
@@ -64,7 +64,7 @@ TranslatorMessage::TranslatorMessage(const QString &context,
: m_context(context), m_sourcetext(sourceText), m_comment(comment),
m_userData(userData),
m_translations(translations), m_fileName(fileName), m_lineNumber(lineNumber),
- m_type(type), m_utf8(false), m_nonUtf8(false), m_plural(plural)
+ m_type(type), m_plural(plural)
{
}
@@ -124,22 +124,6 @@ TranslatorMessage::References TranslatorMessage::allReferences() const
return refs;
}
-static bool needs8BitHelper(const QString &ba)
-{
- for (int i = ba.size(); --i >= 0; )
- if (ba.at(i).unicode() >= 0x80)
- return true;
- return false;
-}
-
-bool TranslatorMessage::needs8Bit() const
-{
- //dump();
- return needs8BitHelper(m_sourcetext)
- || needs8BitHelper(m_comment)
- || needs8BitHelper(m_context);
-}
-
bool TranslatorMessage::hasExtra(const QString &key) const
{
diff --git a/src/linguist/shared/translatormessage.h b/src/linguist/shared/translatormessage.h
index 01725addd..4680b0ec2 100644
--- a/src/linguist/shared/translatormessage.h
+++ b/src/linguist/shared/translatormessage.h
@@ -129,10 +129,6 @@ public:
Type type() const { return m_type; }
void setType(Type t) { m_type = t; }
- bool isUtf8() const { return m_utf8; } // codecForTr override
- void setUtf8(bool on) { m_utf8 = on; }
- bool isNonUtf8() const { return m_nonUtf8; } // codecForTr override
- void setNonUtf8(bool on) { m_nonUtf8 = on; }
bool isPlural() const { return m_plural; }
void setPlural(bool isplural) { m_plural = isplural; }
@@ -145,7 +141,6 @@ public:
void setExtras(const ExtraData &extras) { m_extra = extras; }
void unsetExtra(const QString &key);
- bool needs8Bit() const;
void dump() const;
private:
@@ -165,8 +160,6 @@ private:
References m_extraRefs;
Type m_type;
- bool m_utf8;
- bool m_nonUtf8;
bool m_plural;
};
diff --git a/src/linguist/shared/ts.cpp b/src/linguist/shared/ts.cpp
index 74ad45e9a..38e76f9b1 100644
--- a/src/linguist/shared/ts.cpp
+++ b/src/linguist/shared/ts.cpp
@@ -54,15 +54,6 @@
QT_BEGIN_NAMESPACE
-/*
- * The encodings are a total mess.
- * A Translator has a codecForTr(). Each message's text will be passed to tr()
- * in that encoding or as UTF-8 to trUtf8() if it is flagged as such.
- * For ts 2.0, the file content is always uniformly in UTF-8. The file stores
- * the codecForTr default and marks deviating messages accordingly.
- */
-
-
QDebug &operator<<(QDebug &d, const QXmlStreamAttribute &attr)
{
return d << "[" << attr.name().toString() << "," << attr.value().toString() << "]";
@@ -207,7 +198,6 @@ QString TSReader::readTransContents()
bool TSReader::read(Translator &translator)
{
- STRING(both);
STRING(byte);
STRING(catalog);
STRING(comment);
@@ -215,7 +205,6 @@ bool TSReader::read(Translator &translator)
STRING(defaultcodec);
STRING(dependencies);
STRING(dependency);
- STRING(encoding);
STRING(extracomment);
STRING(filename);
STRING(id);
@@ -233,12 +222,10 @@ bool TSReader::read(Translator &translator)
STRING(sourcelanguage);
STRING(translation);
STRING(translatorcomment);
- STRING(true);
STRING(TS);
STRING(type);
STRING(unfinished);
STRING(userdata);
- STRING(utf8);
STRING(value);
//STRING(version);
STRING(yes);
@@ -277,9 +264,8 @@ bool TSReader::read(Translator &translator)
// ignore these, just whitespace
} else if (elementStarts(strdefaultcodec)) {
// <defaultcodec>
- const QString &codec = readElementText();
- if (!codec.isEmpty())
- translator.setCodecName(codec.toLatin1());
+ readElementText();
+ m_cd.appendError(QString::fromLatin1("Warning: ignoring <defaultcodec> element"));
// </defaultcodec>
} else if (isStartElement()
&& name().toString().startsWith(strextrans)) {
@@ -338,10 +324,6 @@ bool TSReader::read(Translator &translator)
msg.setContext(context);
msg.setType(TranslatorMessage::Finished);
msg.setPlural(attributes().value(strnumerus) == stryes);
- const QStringRef &utf8Attr = attributes().value(strutf8);
- msg.setNonUtf8(utf8Attr == strboth);
- msg.setUtf8(msg.isNonUtf8() || utf8Attr == strtrue
- || attributes().value(strencoding) == strUtf8);
while (!atEnd()) {
readNext();
if (isEndElement()) {
@@ -544,7 +526,6 @@ bool saveTS(const Translator &translator, QIODevice &dev, ConversionData &cd)
bool result = true;
QTextStream t(&dev);
t.setCodec(QTextCodec::codecForName("UTF-8"));
- bool trIsUtf8 = (translator.codecName() == "UTF-8");
//qDebug() << translator.codecName();
// The xml prolog allows processors to easily detect the correct encoding
@@ -560,10 +541,6 @@ bool saveTS(const Translator &translator, QIODevice &dev, ConversionData &cd)
t << " sourcelanguage=\"" << languageCode << "\"";
t << ">\n";
- QByteArray codecName = translator.codecName();
- if (codecName != "ISO-8859-1")
- t << "<defaultcodec>" << codecName << "</defaultcodec>\n";
-
QStringList deps = translator.dependencies();
if (!deps.isEmpty()) {
t << "<dependencies>\n";
@@ -604,14 +581,6 @@ bool saveTS(const Translator &translator, QIODevice &dev, ConversionData &cd)
t << " <message";
if (!msg.id().isEmpty())
t << " id=\"" << msg.id() << "\"";
- if (!trIsUtf8) {
- if (msg.isUtf8()) {
- if (msg.isNonUtf8())
- t << " utf8=\"both\"";
- else
- t << " utf8=\"true\"";
- }
- }
if (msg.isPlural())
t << " numerus=\"yes\"";
t << ">\n";
diff --git a/tests/auto/linguist/lconvert/data/codec-cp1252.ts b/tests/auto/linguist/lconvert/data/codec-cp1252.ts
deleted file mode 100644
index 5ffa2f3d6..000000000
--- a/tests/auto/linguist/lconvert/data/codec-cp1252.ts
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0">
-<defaultcodec>windows-1252</defaultcodec>
-<context>
- <name>FooBar</name>
- <message>
- <location filename="main.cpp" line="10"/>
- <source>random ascii only</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="main.cpp" line="11"/>
- <source>this contains an umlaut ü &amp;uuml;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="main.cpp" line="12"/>
- <source>random ascii only in utf8</source>
- <translation type="unfinished"></translation>
- </message>
- <message utf8="true">
- <location filename="main.cpp" line="13"/>
- <source>umlaut ü &amp;uuml; in utf8</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-</TS>
diff --git a/tests/auto/linguist/lconvert/data/codec-utf8.ts b/tests/auto/linguist/lconvert/data/codec-utf8.ts
index 0ebdbfdd6..1a2b626fb 100644
--- a/tests/auto/linguist/lconvert/data/codec-utf8.ts
+++ b/tests/auto/linguist/lconvert/data/codec-utf8.ts
@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0">
-<defaultcodec>UTF-8</defaultcodec>
<context>
<name>FooBar</name>
<message>
diff --git a/tests/auto/linguist/lconvert/data/dual-encoding.ts b/tests/auto/linguist/lconvert/data/dual-encoding.ts
deleted file mode 100644
index 5023a04d9..000000000
--- a/tests/auto/linguist/lconvert/data/dual-encoding.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0">
-<context>
- <name></name>
- <message utf8="both">
- <source>Mühsam</source>
- <translation>tedious</translation>
- </message>
-</context>
-</TS>
diff --git a/tests/auto/linguist/lconvert/tst_lconvert.cpp b/tests/auto/linguist/lconvert/tst_lconvert.cpp
index 0f4dfcdad..b6608a8cf 100644
--- a/tests/auto/linguist/lconvert/tst_lconvert.cpp
+++ b/tests/auto/linguist/lconvert/tst_lconvert.cpp
@@ -316,7 +316,6 @@ void tst_lconvert::roundtrips_data()
QTest::newRow("po-ts-po (references)") << "test-refs.po" << poTsPo << noArgs;
- QTest::newRow("ts-qm-ts (dual-encoding)") << "dual-encoding.ts" << tsQmTs << noArgs;
QTest::newRow("ts-qm-ts (plurals-de)") << "plurals-de.ts" << tsQmTs << outDeArgs;
QTest::newRow("ts-qm-ts (plurals-cn)") << "plurals-cn.ts" << tsQmTs << outCnArgs;
QTest::newRow("ts-qm-ts (variants)") << "variants.ts" << tsQmTs << outDeArgs;
diff --git a/tests/auto/linguist/lrelease/testdata/dupes.ts b/tests/auto/linguist/lrelease/testdata/dupes.ts
index ec368c327..79bc4506b 100644
--- a/tests/auto/linguist/lrelease/testdata/dupes.ts
+++ b/tests/auto/linguist/lrelease/testdata/dupes.ts
@@ -3,10 +3,6 @@
<TS version="1.1">
<context>
<name>FindDialog</name>
- <message utf8="true">
- <source>Search reached start of the document</source>
- <translation type="unfinished"></translation>
- </message>
<message>
<location filename="finddialog.cpp" line="109"/>
<source>Search reached start of the document</source>
diff --git a/tests/auto/linguist/lrelease/testdata/mixedcodecs-ts20.ts b/tests/auto/linguist/lrelease/testdata/mixedcodecs-ts20.ts
deleted file mode 100644
index 8bb56d43f..000000000
--- a/tests/auto/linguist/lrelease/testdata/mixedcodecs-ts20.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0">
-<defaultcodec>windows-1252</defaultcodec>
-<context>
- <name>FooBar</name>
- <message>
- <location filename="main.cpp" line="11"/>
- <source>this contains an umlaut ü &amp;uuml;</source>
- <translation>random stuff with umlaut</translation>
- </message>
- <message utf8="true">
- <location filename="main.cpp" line="13"/>
- <source>umlaut ü &amp;uuml; in utf8</source>
- <translation>more random stuff with umlaut</translation>
- </message>
-</context>
-</TS>
diff --git a/tests/auto/linguist/lrelease/tst_lrelease.cpp b/tests/auto/linguist/lrelease/tst_lrelease.cpp
index c3593da68..f53eca36d 100644
--- a/tests/auto/linguist/lrelease/tst_lrelease.cpp
+++ b/tests/auto/linguist/lrelease/tst_lrelease.cpp
@@ -60,7 +60,6 @@ private:
private slots:
void translate();
- void mixedcodecs();
void compressed();
void idbased();
void markuntranslated();
@@ -156,9 +155,9 @@ void tst_lrelease::translate()
QCOMPARE(tr("There are %n cars", "More Plurals", 3) , QString("There are 3 cars"));
- QCOMPARE(QCoreApplication::translate("no_en", "Kj\370r K\345re, kj\346re"), QString::fromLatin1("Drive K\345re, dear"));
- QCOMPARE(QCoreApplication::translate("en_no", "Drive K\345re, dear"), QString::fromLatin1("Kj\370r K\345re, kj\346re"));
- QCOMPARE(QCoreApplication::translate("en_ch", "Chinese symbol:"), QString::fromLatin1("Chinese symbol:%1").arg(QChar(0x7c1f)));
+ QCOMPARE(QCoreApplication::translate("no_en", "Kj\xc3\xb8r K\xc3\xa5re, kj\xc3\xa6re"), QString::fromUtf8("Drive K\xc3\xa5re, dear"));
+ QCOMPARE(QCoreApplication::translate("en_no", "Drive K\xc3\xa5re, dear"), QString::fromUtf8("Kj\xc3\xb8r K\xc3\xa5re, kj\xc3\xa6re"));
+ QCOMPARE(QCoreApplication::translate("en_ch", "Chinese symbol:"), QString::fromUtf8("Chinese symbol:\xe7\xb0\x9f"));
// printf("halo\r\nhallo");
// QCOMPARE(tr("This\r\nwill fail"), QString("THIS\nWILL FAIL")); // \r\n = 0d 0a
@@ -171,20 +170,6 @@ void tst_lrelease::translate()
qApp->removeTranslator(&translator);
}
-void tst_lrelease::mixedcodecs()
-{
- QVERIFY(!QProcess::execute(binDir + "/lrelease " + dataDir + "mixedcodecs-ts20.ts"));
-
- QTranslator translator;
- QVERIFY(translator.load(dataDir + "mixedcodecs-ts20.qm"));
- qApp->installTranslator(&translator);
-
- QCOMPARE(QCoreApplication::translate("FooBar", "this contains an umlaut \xfc &uuml;"),
- QString::fromLatin1("random stuff with umlaut"));
- QCOMPARE(QCoreApplication::translate("FooBar", "umlaut \xc3\xbc &uuml; in utf8"),
- QString::fromLatin1("more random stuff with umlaut"));
-}
-
void tst_lrelease::compressed()
{
QVERIFY(!QProcess::execute(binDir + "/lrelease -compress " + dataDir + "compressed.ts"));
diff --git a/tests/auto/linguist/lupdate/testdata/good/codecforsrc/main.cpp b/tests/auto/linguist/lupdate/testdata/good/codecforsrc/main.cpp
index 16594c15e..91e3c5e71 100644
--- a/tests/auto/linguist/lupdate/testdata/good/codecforsrc/main.cpp
+++ b/tests/auto/linguist/lupdate/testdata/good/codecforsrc/main.cpp
@@ -47,7 +47,7 @@
int main(int argc, char **argv)
{
QApplication a(argc, argv);
- QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
+
QWidget w;
QLabel label1(QObject::tr("abc", "ascii"), &w);
diff --git a/tests/auto/linguist/lupdate/testdata/good/codecforsrc/project.pro b/tests/auto/linguist/lupdate/testdata/good/codecforsrc/project.pro
index f133c60d2..3779ef0e7 100644
--- a/tests/auto/linguist/lupdate/testdata/good/codecforsrc/project.pro
+++ b/tests/auto/linguist/lupdate/testdata/good/codecforsrc/project.pro
@@ -3,6 +3,5 @@ CONFIG+= console
TRANSLATIONS = project.ts
-CODECFORTR = utf-8
CODECFORSRC = utf-8
DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/linguist/lupdate/testdata/good/codecforsrc/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/codecforsrc/project.ts.result
index 711bf025a..b1a40ade8 100644
--- a/tests/auto/linguist/lupdate/testdata/good/codecforsrc/project.ts.result
+++ b/tests/auto/linguist/lupdate/testdata/good/codecforsrc/project.ts.result
@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0">
-<defaultcodec>UTF-8</defaultcodec>
<context>
<name>QObject</name>
<message>
diff --git a/tests/auto/linguist/lupdate/testdata/good/codecfortr/main.cpp b/tests/auto/linguist/lupdate/testdata/good/codecfortr/main.cpp
deleted file mode 100644
index 436039fa2..000000000
--- a/tests/auto/linguist/lupdate/testdata/good/codecfortr/main.cpp
+++ /dev/null
@@ -1,65 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QApplication>
-#include <QtGui>
-#include <QtCore>
-#include <QTextCodec>
-
-int main(int argc, char **argv)
-{
- QApplication a(argc, argv);
- QTranslator trans(0);
-
- trans.load("t1_en", ".");
-
- a.installTranslator(&trans);
- QWidget w;
-/*
- QLabel label1(QObject::tr("\33"), &w);
- QLabel label2(QObject::tr("\32"), &w);
- QLabel label3(QObject::tr("\176"), &w);
-*/
- QLabel label4(QObject::tr("\301"), &w);
-
- w.show();
- return a.exec();
-}
diff --git a/tests/auto/linguist/lupdate/testdata/good/codecfortr/project.pro b/tests/auto/linguist/lupdate/testdata/good/codecfortr/project.pro
deleted file mode 100644
index 884fc5273..000000000
--- a/tests/auto/linguist/lupdate/testdata/good/codecfortr/project.pro
+++ /dev/null
@@ -1,7 +0,0 @@
-SOURCES += main.cpp
-CONFIG+= console
-
-TRANSLATIONS = project.ts
-
-CODECFORTR = CP1251
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/linguist/lupdate/testdata/good/codecfortr/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/codecfortr/project.ts.result
deleted file mode 100644
index 6ee369a78..000000000
--- a/tests/auto/linguist/lupdate/testdata/good/codecfortr/project.ts.result
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0">
-<defaultcodec>windows-1251</defaultcodec>
-<context>
- <name>QObject</name>
- <message>
- <location filename="main.cpp" line="61"/>
- <source>Б</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-</TS>
diff --git a/tests/auto/linguist/lupdate/testdata/good/codecfortr1/main.cpp b/tests/auto/linguist/lupdate/testdata/good/codecfortr1/main.cpp
deleted file mode 100644
index deea8031f..000000000
--- a/tests/auto/linguist/lupdate/testdata/good/codecfortr1/main.cpp
+++ /dev/null
@@ -1,63 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtCore>
-
-class FooBar : QObject
-{
- Q_OBJECT
-
-public:
- void doFoo()
- {
- tr("random ascii only");
- tr("this contains an umlaut ü &uuml; literally");
- tr("this contains an umlaut \xfc &uuml; escaped");
- trUtf8("random ascii only in utf8");
- trUtf8("umlaut ü &uuml; in literal utf8");
- trUtf8("umlaut \303\274 &uuml; in escaped utf8");
- }
-};
-
-int main(int argc, char **argv)
-{
- return 0;
-}
diff --git a/tests/auto/linguist/lupdate/testdata/good/codecfortr1/project.pro b/tests/auto/linguist/lupdate/testdata/good/codecfortr1/project.pro
deleted file mode 100644
index 6d21e0d2f..000000000
--- a/tests/auto/linguist/lupdate/testdata/good/codecfortr1/project.pro
+++ /dev/null
@@ -1,7 +0,0 @@
-SOURCES += main.cpp
-CONFIG += console
-
-TRANSLATIONS = project.ts
-
-CODECFORTR = CP1252
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/linguist/lupdate/testdata/good/codecfortr1/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/codecfortr1/project.ts.result
deleted file mode 100644
index d548e2465..000000000
--- a/tests/auto/linguist/lupdate/testdata/good/codecfortr1/project.ts.result
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0">
-<defaultcodec>windows-1252</defaultcodec>
-<context>
- <name>FooBar</name>
- <message>
- <location filename="main.cpp" line="51"/>
- <source>random ascii only</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="main.cpp" line="52"/>
- <source>this contains an umlaut ü &amp;uuml; literally</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="main.cpp" line="53"/>
- <source>this contains an umlaut ü &amp;uuml; escaped</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="main.cpp" line="54"/>
- <source>random ascii only in utf8</source>
- <translation type="unfinished"></translation>
- </message>
- <message utf8="true">
- <location filename="main.cpp" line="55"/>
- <source>umlaut ü &amp;uuml; in literal utf8</source>
- <translation type="unfinished"></translation>
- </message>
- <message utf8="true">
- <location filename="main.cpp" line="56"/>
- <source>umlaut ü &amp;uuml; in escaped utf8</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-</TS>
diff --git a/tests/auto/linguist/lupdate/testdata/good/codecfortr2/main.cpp b/tests/auto/linguist/lupdate/testdata/good/codecfortr2/main.cpp
deleted file mode 100644
index a5fb61fee..000000000
--- a/tests/auto/linguist/lupdate/testdata/good/codecfortr2/main.cpp
+++ /dev/null
@@ -1,62 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtCore>
-
-class FooBar : QObject
-{
- Q_OBJECT
-
-public:
- void doFoo()
- {
- tr("random ascii only");
- tr("this contains an umlaut ü &uuml; literally");
- tr("this contains an umlaut \303\274 &uuml; escaped, really in utf-8");
- trUtf8("random ascii only in utf8");
- trUtf8("umlaut \303\274 &uuml; in escaped utf8");
- }
-};
-
-int main(int argc, char **argv)
-{
- return 0;
-}
diff --git a/tests/auto/linguist/lupdate/testdata/good/codecfortr2/project.pro b/tests/auto/linguist/lupdate/testdata/good/codecfortr2/project.pro
deleted file mode 100644
index 8918087e8..000000000
--- a/tests/auto/linguist/lupdate/testdata/good/codecfortr2/project.pro
+++ /dev/null
@@ -1,8 +0,0 @@
-SOURCES += main.cpp
-CONFIG += console
-
-TRANSLATIONS = project.ts
-
-CODECFORSRC = CP1252
-CODECFORTR = UTF-8
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/linguist/lupdate/testdata/good/codecfortr2/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/codecfortr2/project.ts.result
deleted file mode 100644
index 6728a256b..000000000
--- a/tests/auto/linguist/lupdate/testdata/good/codecfortr2/project.ts.result
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0">
-<defaultcodec>UTF-8</defaultcodec>
-<context>
- <name>FooBar</name>
- <message>
- <location filename="main.cpp" line="51"/>
- <source>random ascii only</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="main.cpp" line="52"/>
- <source>this contains an umlaut ü &amp;uuml; literally</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="main.cpp" line="53"/>
- <source>this contains an umlaut ü &amp;uuml; escaped, really in utf-8</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="main.cpp" line="54"/>
- <source>random ascii only in utf8</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="main.cpp" line="55"/>
- <source>umlaut ü &amp;uuml; in escaped utf8</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-</TS>
diff --git a/tests/auto/linguist/lupdate/testdata/good/codecfortr3/expectedoutput.txt b/tests/auto/linguist/lupdate/testdata/good/codecfortr3/expectedoutput.txt
deleted file mode 100644
index feecddace..000000000
--- a/tests/auto/linguist/lupdate/testdata/good/codecfortr3/expectedoutput.txt
+++ /dev/null
@@ -1 +0,0 @@
-lupdate warning: Codec for tr\(\) 'ISO-8859-1' disagrees with existing file's codec 'UTF-8'\. Expect trouble\.
diff --git a/tests/auto/linguist/lupdate/testdata/good/codecfortr3/main.cpp b/tests/auto/linguist/lupdate/testdata/good/codecfortr3/main.cpp
deleted file mode 100644
index 757ccc95b..000000000
--- a/tests/auto/linguist/lupdate/testdata/good/codecfortr3/main.cpp
+++ /dev/null
@@ -1,45 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-int main(int argc, char **argv)
-{
- QObject::tr("hi");
-}
diff --git a/tests/auto/linguist/lupdate/testdata/good/codecfortr3/project.pro b/tests/auto/linguist/lupdate/testdata/good/codecfortr3/project.pro
deleted file mode 100644
index 1a2f50e41..000000000
--- a/tests/auto/linguist/lupdate/testdata/good/codecfortr3/project.pro
+++ /dev/null
@@ -1,5 +0,0 @@
-SOURCES += main.cpp
-
-TRANSLATIONS = project.ts
-CODECFORTR = latin1
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/linguist/lupdate/testdata/good/codecfortr3/project.ts.before b/tests/auto/linguist/lupdate/testdata/good/codecfortr3/project.ts.before
deleted file mode 100644
index 07ad79b82..000000000
--- a/tests/auto/linguist/lupdate/testdata/good/codecfortr3/project.ts.before
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0">
-<defaultcodec>UTF-8</defaultcodec>
-<context>
- <name>QObject</name>
- <message>
- <location filename="main.cpp" line="44"/>
- <source>hi</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-</TS>
diff --git a/tests/auto/linguist/lupdate/testdata/good/codecfortr3/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/codecfortr3/project.ts.result
deleted file mode 100644
index b6899c162..000000000
--- a/tests/auto/linguist/lupdate/testdata/good/codecfortr3/project.ts.result
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0">
-<context>
- <name>QObject</name>
- <message>
- <location filename="main.cpp" line="44"/>
- <source>hi</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-</TS>
diff --git a/tests/auto/linguist/lupdate/testdata/good/codecfortr4/expectedoutput.txt b/tests/auto/linguist/lupdate/testdata/good/codecfortr4/expectedoutput.txt
deleted file mode 100644
index e69de29bb..000000000
--- a/tests/auto/linguist/lupdate/testdata/good/codecfortr4/expectedoutput.txt
+++ /dev/null
diff --git a/tests/auto/linguist/lupdate/testdata/good/codecfortr4/main.cpp b/tests/auto/linguist/lupdate/testdata/good/codecfortr4/main.cpp
deleted file mode 100644
index 757ccc95b..000000000
--- a/tests/auto/linguist/lupdate/testdata/good/codecfortr4/main.cpp
+++ /dev/null
@@ -1,45 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-int main(int argc, char **argv)
-{
- QObject::tr("hi");
-}
diff --git a/tests/auto/linguist/lupdate/testdata/good/codecfortr4/project.pro b/tests/auto/linguist/lupdate/testdata/good/codecfortr4/project.pro
deleted file mode 100644
index 2d08a07de..000000000
--- a/tests/auto/linguist/lupdate/testdata/good/codecfortr4/project.pro
+++ /dev/null
@@ -1,5 +0,0 @@
-SOURCES += main.cpp
-
-TRANSLATIONS = project.ts
-CODECFORTR = latin2
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/linguist/lupdate/testdata/good/codecfortr4/project.ts.before b/tests/auto/linguist/lupdate/testdata/good/codecfortr4/project.ts.before
deleted file mode 100644
index e18e34e0e..000000000
--- a/tests/auto/linguist/lupdate/testdata/good/codecfortr4/project.ts.before
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0">
-<defaultcodec>ISO-8859-2</defaultcodec>
-<context>
- <name>QObject</name>
- <message>
- <location filename="main.cpp" line="44"/>
- <source>hi</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-</TS>
diff --git a/tests/auto/linguist/lupdate/testdata/good/codecfortr4/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/codecfortr4/project.ts.result
deleted file mode 100644
index e18e34e0e..000000000
--- a/tests/auto/linguist/lupdate/testdata/good/codecfortr4/project.ts.result
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0">
-<defaultcodec>ISO-8859-2</defaultcodec>
-<context>
- <name>QObject</name>
- <message>
- <location filename="main.cpp" line="44"/>
- <source>hi</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-</TS>
diff --git a/tests/auto/linguist/lupdate/testdata/good/parse_special_chars/main.cpp b/tests/auto/linguist/lupdate/testdata/good/parse_special_chars/main.cpp
index 7d3f63839..9f47f3176 100644
--- a/tests/auto/linguist/lupdate/testdata/good/parse_special_chars/main.cpp
+++ b/tests/auto/linguist/lupdate/testdata/good/parse_special_chars/main.cpp
@@ -51,9 +51,9 @@ class Dialog2 : public QDialog
void Dialog2::func()
{
- tr("cat\351gorie");
+ tr("cat\xc3\xa9gorie");
- tr("F\374r \310lise")
+ tr("F\xc3\xbcr \xc3\x88lise")
}
diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/parsecpp/project.ts.result
index 7d87d17c6..c8cca3f04 100644
--- a/tests/auto/linguist/lupdate/testdata/good/parsecpp/project.ts.result
+++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp/project.ts.result
@@ -134,7 +134,7 @@ backslashed \ stuff.</source>
</context>
<context>
<name>KÃ¥ntekst</name>
- <message utf8="true">
+ <message>
<location filename="finddialog.cpp" line="180"/>
<source>encoding, using QApplication</source>
<translation type="unfinished"></translation>
diff --git a/tests/auto/linguist/lupdate/testdata/good/parseui/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/parseui/project.ts.result
index b27d23991..d53c6d8e4 100644
--- a/tests/auto/linguist/lupdate/testdata/good/parseui/project.ts.result
+++ b/tests/auto/linguist/lupdate/testdata/good/parseui/project.ts.result
@@ -8,7 +8,7 @@
<source>Qt Assistant - Finn text</source>
<translation type="unfinished"></translation>
</message>
- <message utf8="true">
+ <message>
<location filename="project.ui" line="58"/>
<source>Finn tekst - Der Bjørn möchte auch mal.</source>
<translation type="unfinished"></translation>
diff --git a/tests/auto/linguist/lupdate/testdata/good/recurse_full/project_sub.ts.result b/tests/auto/linguist/lupdate/testdata/good/recurse_full/project_sub.ts.result
index cddb9632f..ca9504eb5 100644
--- a/tests/auto/linguist/lupdate/testdata/good/recurse_full/project_sub.ts.result
+++ b/tests/auto/linguist/lupdate/testdata/good/recurse_full/project_sub.ts.result
@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0">
-<defaultcodec>ISO-8859-2</defaultcodec>
<context>
<name>subsub2</name>
<message>
diff --git a/tests/auto/linguist/lupdate/testdata/good/recurse_part/project_sub.ts.result b/tests/auto/linguist/lupdate/testdata/good/recurse_part/project_sub.ts.result
index cddb9632f..ca9504eb5 100644
--- a/tests/auto/linguist/lupdate/testdata/good/recurse_part/project_sub.ts.result
+++ b/tests/auto/linguist/lupdate/testdata/good/recurse_part/project_sub.ts.result
@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0">
-<defaultcodec>ISO-8859-2</defaultcodec>
<context>
<name>subsub2</name>
<message>
diff --git a/tests/auto/linguist/lupdate/testdata/subdirs_full/subdir2/subsub2/subsub2.pro b/tests/auto/linguist/lupdate/testdata/subdirs_full/subdir2/subsub2/subsub2.pro
index afbcd9cf7..26a954a26 100644
--- a/tests/auto/linguist/lupdate/testdata/subdirs_full/subdir2/subsub2/subsub2.pro
+++ b/tests/auto/linguist/lupdate/testdata/subdirs_full/subdir2/subsub2/subsub2.pro
@@ -1,5 +1,4 @@
SOURCES += main.cpp
TRANSLATIONS = ../../project_sub.ts
-CODECFORTR = ISO-8859-2
DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/linguist/lupdate/testdata/subdirs_part/subdir2/subsub2/subsub2.pro b/tests/auto/linguist/lupdate/testdata/subdirs_part/subdir2/subsub2/subsub2.pro
index afbcd9cf7..26a954a26 100644
--- a/tests/auto/linguist/lupdate/testdata/subdirs_part/subdir2/subsub2/subsub2.pro
+++ b/tests/auto/linguist/lupdate/testdata/subdirs_part/subdir2/subsub2/subsub2.pro
@@ -1,5 +1,4 @@
SOURCES += main.cpp
TRANSLATIONS = ../../project_sub.ts
-CODECFORTR = ISO-8859-2
DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0