jenkins-bot has submitted this change and it was merged.
Change subject: [FIX] i18n: twtranslate returns used code in list
......................................................................
[FIX] i18n: twtranslate returns used code in list
It fixes an issue with 5767d73d, that twntranslate didn't get the language code
which was actually used. With fallback=True twtranslate might use another
language than the language given in the first place. To inform twntranslate
about that, twntranslate uses a list which is modified by twtranslate.
But with 5767d73d it always added the same value again so that the list wasn't
chaned at all.
Change-Id: I7228b1ab19510769c876e8943e92dc666c6b2ded
---
M pywikibot/i18n.py
M tests/i18n_tests.py
2 files changed, 22 insertions(+), 2 deletions(-)
Approvals:
John Vandenberg: Looks good to me, approved
jenkins-bot: Verified
diff --git a/pywikibot/i18n.py b/pywikibot/i18n.py
index 67b227f..69549f8 100644
--- a/pywikibot/i18n.py
+++ b/pywikibot/i18n.py
@@ -499,7 +499,7 @@
'Read
https://mediawiki.org/wiki/PWB/i18n' % twtitle)
# send the language code back via the given list
if code_needed:
- code.append(lang)
+ code.append(alt)
if parameters:
return trans % parameters
else:
diff --git a/tests/i18n_tests.py b/tests/i18n_tests.py
index 0634181..897e2e2 100644
--- a/tests/i18n_tests.py
+++ b/tests/i18n_tests.py
@@ -13,7 +13,7 @@
import pywikibot
-from pywikibot import i18n, bot
+from pywikibot import i18n, bot, plural
from tests.aspects import unittest, TestCase, DefaultSiteTestCase, PwbTestCase
@@ -311,6 +311,26 @@
% {'action': u'Ändere'},
u'Bot: Ändere 1 Zeile von einer Seite.')
+ def test_fallback_lang(self):
+ """
+ Test that twntranslate uses the translation's language.
+
+ twntranslate calls _twtranslate which might return the translation for
+ a different language and then the plural rules from that language need
+ to be applied.
+ """
+ # co has fr as altlang but has no plural rules defined (otherwise this
+ # test might not catch problems) so it's using the plural variant for 0
+ # although French uses the plural variant for numbers > 1 (so not 0)
+ assert('co' not in plural.plural_rules)
+ assert(plural.plural_rules['fr']['plural'](0) is False)
+ self.assertEqual(
+ i18n.twntranslate('co', 'test-plural', {'num': 0,
'descr': 'seulement'}),
+ u'Robot: Changer seulement une page.')
+ self.assertEqual(
+ i18n.twntranslate('co', 'test-plural', {'num': 1,
'descr': 'seulement'}),
+ u'Robot: Changer seulement une page.')
+
class ScriptMessagesTestCase(TWNTestCaseBase):
--
To view, visit
https://gerrit.wikimedia.org/r/214428
To unsubscribe, visit
https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I7228b1ab19510769c876e8943e92dc666c6b2ded
Gerrit-PatchSet: 2
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Owner: XZise <CommodoreFabianus(a)gmx.de>
Gerrit-Reviewer: John Vandenberg <jayvdb(a)gmail.com>
Gerrit-Reviewer: Ladsgroup <ladsgroup(a)gmail.com>
Gerrit-Reviewer: Merlijn van Deen <valhallasw(a)arctus.nl>
Gerrit-Reviewer: Siebrand <siebrand(a)kitano.nl>
Gerrit-Reviewer: jenkins-bot <>