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 <commodorefabia...@gmx.de>
Gerrit-Reviewer: John Vandenberg <jay...@gmail.com>
Gerrit-Reviewer: Ladsgroup <ladsgr...@gmail.com>
Gerrit-Reviewer: Merlijn van Deen <valhall...@arctus.nl>
Gerrit-Reviewer: Siebrand <siebr...@kitano.nl>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to