JSON files have been added to pywikibot/i18n automatically (https://gerrit.wikimedia.org/r/#/c/164947/) after the translatewiki config change (https://gerrit.wikimedia.org/r/#/c/154796/4), which now has python and JSON files with the same messages. The JSON files are not used yet, as the code changes to enable JSON have exposed packaging problems that are the subject of RFC https://www.mediawiki.org/wiki/Requests_for_comment/pywikibot_2.0_packaging
The message files for the English message do not include the attribution; it is missing from the python message files and now also missing from the JSON messages files.
$ head -50 pywikibot.py # -*- coding: utf-8 -*- msg = { 'en': { 'pywikibot-enter-category-name': u'Please enter the category name:', 'pywikibot-enter-file-links-processing': u'Links to which file page should be processed?', 'pywikibot-enter-finished-browser': u'Press Enter when finished in browser.', 'pywikibot-enter-namespace-number': u'Please enter a namespace by its number:', 'pywikibot-enter-new-text': u'Please enter the new text:', 'pywikibot-enter-page-processing': u'Which page should be processed?', 'pywikibot-enter-xml-filename': u'Please enter the XML dump\'s filename:', }, # Author: Als-Holder # Author: TTMTT 'qqq': { 'pywikibot-enter-xml-filename': u'Message displayed to the bot owner to enter the XML dump\'s filename.', 'pywikibot-enter-page-processing': u'Question displayed to the bot owner which page should be processed.', 'pywikibot-enter-file-links-processing': u'Question displayed to the bot owner processing links to a given file page.', 'pywikibot-enter-namespace-number': u'Message displayed to the bot owner to enter a namespace by its number.', 'pywikibot-enter-new-text': u'Message displayed to the bot owner to enter the new text.', 'pywikibot-enter-category-name': u'Message displayed to the bot owner to enter the category name.', 'pywikibot-enter-finished-browser': u'Message displayed to the bot owner to press Enter button when browser edits are finished.', }, # Author: Als-Holder 'als': { 'pywikibot-enter-xml-filename': u'Bitte gib dr Datename vum XML-Dump yy:', 'pywikibot-enter-page-processing': u'Weli Syte soll bearbeitet wäre?', 'pywikibot-enter-file-links-processing': u'Vu wellere Dateisyte solle d Link bearbeitet wäre?', 'pywikibot-enter-namespace-number': u'Bitte gib d Nummere vum Namensruum yy:', 'pywikibot-enter-new-text': u'Bitte gib dr nei Text yy:', 'pywikibot-enter-category-name': u'Bitte gib dr Name vu dr Kategori yy:', 'pywikibot-enter-finished-browser': u'Druck noch eme Zuemache vum Browsewr uf «Enter».', }, ...
The metadata for als is correct
$ cat pywikibot/als.json { "@metadata": { "authors": [ "Als-Holder" ] }, "pywikibot-enter-xml-filename": "Bitte gib dr Datename vum XML-Dump yy:", "pywikibot-enter-page-processing": "Weli Syte soll bearbeitet wäre?", "pywikibot-enter-file-links-processing": "Vu wellere Dateisyte solle d Link bearbeitet wäre?", "pywikibot-enter-namespace-number": "Bitte gib d Nummere vum Namensruum yy:", "pywikibot-enter-new-text": "Bitte gib dr nei Text yy:", "pywikibot-enter-category-name": "Bitte gib dr Name vu dr Kategori yy:", "pywikibot-enter-finished-browser": "Druck noch eme Zuemache vum Browsewr uf «Enter»." }
However the metadata for 'qqq' is omitted
$ cat pywikibot/qqq.json { "@metadata": [], "pywikibot-enter-xml-filename": "Message displayed to the bot owner to enter the XML dump's filename.", "pywikibot-enter-page-processing": "Question displayed to the bot owner which page should be processed.", "pywikibot-enter-file-links-processing": "Question displayed to the bot owner processing links to a given file page.", "pywikibot-enter-namespace-number": "Message displayed to the bot owner to enter a namespace by its number.", "pywikibot-enter-new-text": "Message displayed to the bot owner to enter the new text.", "pywikibot-enter-category-name": "Message displayed to the bot owner to enter the category name.", "pywikibot-enter-finished-browser": "Message displayed to the bot owner to press Enter button when browser edits are finished." }
And the 'en' files do not include a metadata block, which means they fail the i18n JSON syntax tests (T85335).
$ cat pywikibot/en.json { "pywikibot-enter-xml-filename": "Please enter the XML dump's filename:", "pywikibot-enter-page-processing": "Which page should be processed?", "pywikibot-enter-file-links-processing": "Links to which file page should be processed?", "pywikibot-enter-namespace-number": "Please enter a namespace by its number:", "pywikibot-enter-new-text": "Please enter the new text:", "pywikibot-enter-category-name": "Please enter the category name:", "pywikibot-enter-finished-browser": "Press Enter when finished in browser." }