summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2016-01-04 20:23:22 +0300
committerAndrei Karas <akaras@inbox.ru>2016-01-04 20:23:22 +0300
commit971e3ef054af935eb2a0b8b11c7fb53a86dd00c7 (patch)
tree8ef22d1ad6bba4d0368bc6b73bd7caecacbf491a
parentb37c6febad44ba62bb089eea35a1ae71104a9334 (diff)
downloadmplint-971e3ef054af935eb2a0b8b11c7fb53a86dd00c7.tar.gz
mplint-971e3ef054af935eb2a0b8b11c7fb53a86dd00c7.tar.bz2
mplint-971e3ef054af935eb2a0b8b11c7fb53a86dd00c7.tar.xz
mplint-971e3ef054af935eb2a0b8b11c7fb53a86dd00c7.zip
Add check in po files for start and end quotes.
-rw-r--r--src/rules/po.cpp12
-rw-r--r--tests/testreport.txt3
-rw-r--r--tests/testsrc/bad/uk.po4
-rw-r--r--tests/testsrc/good/ru.po4
4 files changed, 19 insertions, 4 deletions
diff --git a/src/rules/po.cpp b/src/rules/po.cpp
index b8390e4..ab40041 100644
--- a/src/rules/po.cpp
+++ b/src/rules/po.cpp
@@ -121,6 +121,18 @@ static void processMessage(RuleBase *const rule)
isError = true;
}
}
+ if (strStartWith(msgId, "\\\"") && strEndWith(msgId, "\\\"") &&
+ !strStartWith(msgStr, "\\\"") && !strEndWith(msgStr, "\\\""))
+ {
+ rule->print("Missing \" at start and at end of translated line.");
+ isError = true;
+ }
+ if (strStartWith(msgStr, "\\\"") && strEndWith(msgStr, "\\\"") &&
+ !strStartWith(msgId, "\\\"") && !strEndWith(msgId, "\\\""))
+ {
+ rule->print("Extra \" at start and at end of translated line.");
+ isError = true;
+ }
if (msgId.find("###") != std::string::npos &&
msgStr.find("###") == std::string::npos)
{
diff --git a/tests/testreport.txt b/tests/testreport.txt
index b555001..c8ac058 100644
--- a/tests/testreport.txt
+++ b/tests/testreport.txt
@@ -44,6 +44,9 @@
[testsrc/bad/packet.cpp:25]: V012: Wrong output packet creation. Must be 'createOutPacket(CMSG...'
[testsrc/bad/translation.cpp:27]: V014: Missing "// TRANSLATORS: " comment before this line.
[testsrc/bad/translation.cpp:32]: V014: Missing "// TRANSLATORS: " comment before this line.
+[testsrc/bad/uk.po:162]: V010: Extra " at start and at end of translated line.
+[testsrc/bad/uk.po:162]: V010: Wrong character at start of translation line.
+[testsrc/bad/uk.po:166]: V010: Missing " at start and at end of translated line.
[testsrc/bad/uk.po:2257]: V010: Wrong character at end of translation line.
[testsrc/bad/uk.po:2269]: V010: Wrong character at start of translation line.
[testsrc/bad/uk.po:2535]: V010: Wrong number of spaces at start of translation line.
diff --git a/tests/testsrc/bad/uk.po b/tests/testsrc/bad/uk.po
index 9f6c414..dad5330 100644
--- a/tests/testsrc/bad/uk.po
+++ b/tests/testsrc/bad/uk.po
@@ -158,10 +158,10 @@ msgstr ""
#: src/commandhandler.cpp:174
msgid "/list > Display all public channels"
-msgstr "/list > Показати усі публічні канали"
+msgstr "\"/list > Показати усі публічні канали\""
#: src/commandhandler.cpp:175
-msgid "/join > Join or create a channel"
+msgid "\"/join > Join or create a channel\""
msgstr "/join > Приєднатись чи створити канал"
#: src/commandhandler.cpp:177
diff --git a/tests/testsrc/good/ru.po b/tests/testsrc/good/ru.po
index 8e69ba5..4fa7516 100644
--- a/tests/testsrc/good/ru.po
+++ b/tests/testsrc/good/ru.po
@@ -7295,8 +7295,8 @@ msgstr "Пустой адрес был передан методу Network::conn
#. TRANSLATORS: error message
#: src/net/ea/network.cpp:202
-msgid "Unable to resolve host \""
-msgstr "Не удалось найти хост \""
+msgid "\"Unable to resolve host\""
+msgstr "\"Не удалось найти хост\""
#. TRANSLATORS: error message
#: src/net/ea/network.cpp:283