# -*- coding: utf-8 -*-
#
# (C) Pywikipedia bot team, 2004-2010
#
# Distributed under the terms of the MIT license.
#
__version__='$Id: family.py 8222 2010-05-26 17:05:33Z xqt $'
import config
import re
import urllib
from datetime import timedelta,datetime
# Parent class for all wiki families
class Family:
def __init__(self):
self.name = None
# Updated from http://meta.wikimedia.org/wiki/Interwiki_sorting_order
self.alphabetic = [
'ace', 'af', 'ak', 'als', 'am', 'ang', 'ab', 'ar', 'an', 'arc',
'roa-rup', 'frp', 'as', 'ast', 'gn', 'av', 'ay', 'az', 'bm', 'bn',
'zh-min-nan', 'nan', 'map-bms', 'ba', 'be', 'be-x-old', 'bh', 'bcl',
'bi', 'bar', 'bo', 'bs', 'br', 'bg', 'bxr', 'ca', 'cv', 'ceb', 'cs',
'ch', 'cbk-zam', 'ny', 'sn', 'tum', 'cho', 'co', 'cy', 'da', 'dk',
'pdc', 'de', 'dv', 'nv', 'dsb', 'dz', 'mh', 'et', 'el', 'eml', 'en',
'myv', 'es', 'eo', 'ext', 'eu', 'ee', 'fa', 'hif', 'fo', 'fr', 'fy',
'ff', 'fur', 'ga', 'gv', 'gd', 'gl', 'gan', 'ki', 'glk', 'gu',
'got', 'hak', 'xal', 'ko', 'ha', 'haw', 'hy', 'hi', 'ho', 'hsb',
'hr', 'io', 'ig', 'ilo', 'bpy', 'id', 'ia', 'ie', 'iu', 'ik', 'os',
'xh', 'zu', 'is', 'it', 'he', 'jv', 'kl', 'kn', 'kr', 'pam', 'krc',
'ka', 'ks', 'csb', 'kk', 'kw', 'rw', 'ky', 'rn', 'sw', 'kv', 'kg',
'ht', 'ku', 'kj', 'lad', 'lbe', 'lo', 'la', 'lv', 'lb', 'lt', 'lij',
'li', 'ln', 'jbo', 'lg', 'lmo', 'hu', 'mk', 'mg', 'ml', 'mt', 'mi',
'mr', 'arz', 'mzn', 'ms', 'cdo', 'mwl', 'mdf', 'mo', 'mn', 'mus',
'my', 'nah', 'na', 'fj', 'nl', 'nds-nl', 'cr', 'ne', 'new', 'ja',
'nap', 'ce', 'pih', 'no', 'nb', 'nn', 'nrm', 'nov', 'ii', 'oc',
'mhr', 'or', 'om', 'ng', 'hz', 'uz', 'pa', 'pi', 'pag', 'pnb',
'pap', 'ps', 'km', 'pcd', 'pms', 'tpi', 'nds', 'pl', 'tokipona',
'tp', 'pnt', 'pt', 'aa', 'kaa', 'crh', 'ty', 'ksh', 'ro', 'rmy',
'rm', 'qu', 'ru', 'sah', 'se', 'sm', 'sa', 'sg', 'sc', 'sco', 'stq',
'st', 'tn', 'sq', 'scn', 'si', 'simple', 'sd', 'ss', 'sk', 'cu',
'sl', 'szl', 'so', 'ckb', 'srn', 'sr', 'sh', 'su', 'fi', 'sv', 'tl',
'ta', 'kab', 'roa-tara', 'tt', 'te', 'tet', 'th', 'ti', 'tg', 'to',
'chr', 'chy', 've', 'tr', 'tk', 'tw', 'udm', 'bug', 'uk', 'ur',
'ug', 'za', 'vec', 'vi', 'vo', 'fiu-vro', 'wa', 'zh-classical',
'vls', 'war', 'wo', 'wuu', 'ts', 'yi', 'yo', 'zh-yue', 'diq', 'zea',
'bat-smg', 'zh', 'zh-tw', 'zh-cn',
]
self.langs = {}
# The timedelta to GMT of the server.
# Exemple for a server running CET :
# timedelta(hours=+1)
self.servergmtoffset = timedelta()
# Translation used on all wikis for the different namespaces.
# (Please sort languages alphabetically)
# You only need to enter translations that differ from _default.
self.namespaces = {
-2: {
'_default': u'Media',
'ab': [u'', u''],
'ace': u'Alat',
'am': u'',
'ar': u'',
'arc': u'',
'arz': u'',
'as': u'',
'av': u'',
'az': [u'Media', u'Mediya'],
'ba': u'',
'bat-smg': [u'Medj', u'Medeje', u'Medija'],
'bcl': u'Medio',
'be': u'',
'be-x-old': u'',
'bg': u'',
'bm': u'Mdia',
'bn': [u'', u'Mdia'],
'bpy': u'',
'bs': [u'Mediji', u'Medija'],
'ce': u'',
'ceb': u'Medya',
'ckb': u'',
'crh': [u'Media', u''],
'cs': u'Mdia',
'cu': u'',
'cv': u'',
'dsb': u'Medija',
'el': [u'', u''],
'eo': u'Advidao',
'et': u'Meedia',
'fa': u'',
'ff': u'Mdia',
'fiu-vro': u'Meedi',
'fo': u'Miil',
'fr': u'Mdia',
'frp': u'Mdia',
'ga': u'Men',
'gan': u'Media',
'glk': u'',
'gu': u'- ()',
'gv': u'Meanyn',
'haw': u'Ppaho',
'he': u'',
'hi': u'',
'hr': u'Mediji',
'ht': u'Medya',
'hu': u'Mdia',
'hy': u'',
'ia': u'Multimedia',
'is': u'Miill',
'ja': u'',
'ka': u'',
'kaa': u'Media',
'kk': u'',
'km': u'',
'kn': u'',
'ko': u'',
'krc': u'',
'ksh': [u'Medie', u'Meedije'],
'ku': u'Medya',
'kv': u'',
'lad': u'Meddia',
'lbe': u'',
'ln': u'Mdia',
'lo': [u'', u''],
'lt': u'Medija',
'mdf': u'',
'mg': u'Rakitra',
'mhr': u'',
'mk': u'',
'ml': u'',
'mn': u'',
'mr': u'',
'mt': u'Medja',
'myv': u'',
'mzn': [u'', u''],
'nah': u'Mdiatl',
'new': u'',
'nn': u'Filpeikar',
'no': u'Medium',
'oc': u'Mdia',
'pa': u'',
'pcd': u'Mdia',
'pnt': u'',
'ps': u'',
'pt': u'Multimdia',
'qu': u'Midya',
'rm': u'Multimedia',
'rmy': u'Mediya',
'ru': u'',
'sa': u'',
'sah': u'',
'scn': u'Mdia',
'sd': u'',
'sg': u'Mdia',
'si': u'',
'sk': u'Mdi',
'sl': u'Datoteka',
'sr': u'',
'su': u'Mdia',
'sw': u'Faili',
'ta': u'',
'te': u'',
'tg': u'',
'th': u'',
'tl': u'Midya',
'tlh': u'Doch',
'tr': u'Medya',
'tt': u'',
'ty': u'Mdia',
'udm': u'',
'uk': u'',
'ur': u'',
'vi': u'Phng tin',
'vo': u'Nnamakand',
'wo': u'Xibaarukaay',
'wuu': u'',
'xal': u'',
'yi': u'',
'yo': u'Amhnmwrn',
'za': u'',
'zh': [u'Media', u'', u''],
},
-1: {
'_default': u'Special',
'ab': u'',
'ace': [u'Kusuih', u'Istimewa'],
'af': u'Spesiaal',
'als': u'Spezial',
'am': u'',
'an': u'Espezial',
'ang': u'Syndrig',
'ar': u'',
'arc': u'',
'arz': u'',
'as': [u'', u''],
'ast': u'Especial',
'av': u'',
'ay': u'Especial',
'az': u'Xsusi',
'ba': u'',
'bar': u'Spezial',
'bat-smg': u'Speclos',
'bcl': u'Espesyal',
'be': u'',
'be-x-old': u'',
'bg': u'',
'bm': u'Spcial',
'bn': u'',
'bpy': u'',
'br': u'Dibar',
'bs': u'Posebno',
'bug': u'Istimewa',
'ca': u'Especial',
'cbk-zam': u'Especial',
'ce': u'',
'ceb': u'Espesyal',
'ch': u'Espesiat',
'ckb': u'',
'crh': [u'Mahsus', u''],
'cs': u'Speciln',
'csb': u'Specjaln',
'cu': [u'', u''],
'cv': u'',
'cy': u'Arbennig',
'da': u'Speciel',
'de': u'Spezial',
'dsb': u'Specialne',
'dv': u'',
'el': u'',
'eml': u'Speciale',
'eo': u'Speciala',
'es': u'Especial',
'et': u'Eri',
'eu': [u'Berezi', u'Aparteko'],
'fa': u'',
'ff': u'Spcial',
'fi': u'Toiminnot',
'fiu-vro': u'Tallitusleheklg',
'fo': [u'Serstakt', u'Serstakur'],
'fr': u'Spcial',
'frp': u'Spcil',
'fur': u'Specil',
'fy': u'Wiki',
'ga': u'Speisialta',
'gan': u'Special',
'gl': u'Especial',
'glk': u'',
'gn': u"Mba'echch",
'gu': u'',
'gv': u'Er lheh',
'haw': u'Papa nui',
'he': u'',
'hi': u'',
'hr': u'Posebno',
'hsb': u'Specialnje',
'ht': u'Espesyal',
'hu': u'Specilis',
'hy': u'',
'id': u'Istimewa',
'io': u'Specala',
'is': u'Kerfissa',
'it': u'Speciale',
'ja': u'',
'jv': u'Astamiwa',
'ka': u'',
'kaa': u'Arnawl',
'kab': u'Uslig',
'kk': u'',
'kl': [u'Immikkut', u'Speciel'],
'km': u'',
'kn': u'',
'ko': u'',
'krc': u'',
'ksh': [u'Spezial', u'Shpezjal'],
'ku': u'Taybet',
'kv': u'',
'kw': [u'Arbennek', u'Arbednek'],
'la': u'Specialis',
'lad': u'Especial',
'lb': u'Spezial',
'lbe': u' ',
'li': u'Speciaal',
'lij': [u'Speiale', u'Speciale'],
'lmo': [u'Special', u'Speciale'],
'ln': u'Spcial',
'lo': u'',
'lt': u'Specialus',
'map-bms': u'Astamiwa',
'mdf': u'',
'mg': u'Manokana',
'mhr': [u' ', u''],
'mk': u'',
'ml': u'',
'mn': u'',
'mr': u'',
'ms': u'Khas',
'mt': [u'Spejali', u'Specjali'],
'myv': u' ',
'mzn': [u'', u''],
'nah': [u'Nncuahquzqui', u'Especial'],
'nap': [u'Specile', u'Speciale'],
'nds': u'Spezial',
'nds-nl': u'Speciaal',
'new': u'',
'nl': u'Speciaal',
'nn': u'Spesial',
'no': u'Spesial',
'oc': u'Especial',
'os': u'',
'pa': u'',
'pcd': u'Spcial',
'pdc': u'Spezial',
'pl': u'Specjalna',
'pnt': u'',
'ps': u'',
'pt': u'Especial',
'qu': u'Sapaq',
'rm': u'Spezial',
'rmy': u'Uzalutno',
'ru': u'',
'sa': u'',
'sah': u'',
'sc': u'Ispetziale',
'scn': u'Spiciali',
'sd': u'',
'sg': u'Spcial',
'si': u'',
'sk': u'pecilne',
'sl': u'Posebno',
'sq': u'Speciale',
'sr': u'',
'srn': [u'Spesyal', u'Speciaal'],
'stq': u'Spezial',
'su': u'Husus',
'sw': u'Maalum',
'szl': u'Specjalna',
'ta': u'',
'te': u'',
'tet': u'Espesil',
'tg': u'',
'th': u'',
'tk': u'rite',
'tl': u'Natatangi',
'tlh': u"le'",
'tr': u'zel',
'tt': [u'', u'Maxsus'],
'ty': u'Spcial',
'udm': u'',
'uk': u'',
'ur': u'',
'uz': u'Maxsus',
'vec': u'Speciale',
'vi': u'c bit',
'vls': u'Specioal',
'vo': u'Patikos',
'wa': u'Sipecis',
'wo': u'Jagleel',
'wuu': u'',
'xal': u'',
'yi': u'',
'yo': u'Ptk',
'za': u'',
'zea': u'Speciaol',
'zh': [u'Special', u''],
},
0: {
'_default': None,
},
1: {
'_default': u'Talk',
'ab': [u'', u''],
'ace': [u'Marit', u'Pembicaraan', u'Bicara'],
'af': u'Bespreking',
'als': u'Diskussion',
'am': u'',
'an': u'Descusin',
'ang': u'Gesprec',
'ar': u'',
'arc': u'',
'arz': u'',
'as': [u'', u''],
'ast': u'Alderique',
'av': u'',
'ay': u'Discusin',
'az': u'Mzakir',
'ba': u' ',
'bar': u'Diskussion',
'bat-smg': u'Aptarms',
'bcl': u'Olay',
'be': u'',
'be-x-old': u'',
'bg': u'',
'bm': u'Discussion',
'bn': u'',
'bpy': u'',
'br': u'Kaozeal',
'bs': u'Razgovor',
'bug': u'Pembicaraan',
'ca': u'Discussi',
'cbk-zam': u'Discusin',
'ce': u'',
'ceb': u'Hisgot',
'ch': u'Kombetsasion',
'ckb': u'',
'crh': [u'Muzakere', u''],
'cs': u'Diskuse',
'csb': u'Disksj',
'cu': u'',
'cv': u' ',
'cy': u'Sgwrs',
'da': u'Diskussion',
'de': u'Diskussion',
'dsb': u'Diskusija',
'dv': u'',
'el': u'',
'eml': u'Discussione',
'eo': u'Diskuto',
'es': u'Discusin',
'et': u'Arutelu',
'eu': u'Eztabaida',
'fa': u'',
'ff': u'Discussion',
'fi': u'Keskustelu',
'fiu-vro': u'Arotus',
'fo': u'Kjak',
'fr': u'Discussion',
'frp': u'Discussion',
'fur': u'Discussion',
'fy': u'Oerlis',
'ga': u'Pl',
'gan': u'Talk',
'gl': u'Conversa',
'glk': u'',
'gn': u'Myangeki',
'gu': u'',
'gv': u'Resooney',
'haw': u'Kkkk',
'he': u'',
'hi': u'',
'hr': u'Razgovor',
'hsb': u'Diskusija',
'ht': u'Diskite',
'hu': u'Vita',
'hy': u'',
'ia': u'Discussion',
'id': [u'Pembicaraan', u'Bicara'],
'io': u'Debato',
'is': u'Spjall',
'it': u'Discussione',
'ja': u'',
'jv': u'Dhiskusi',
'ka': u'',
'kaa': u"Sa'wbet",
'kab': u'Mmeslay',
'kk': u'',
'kl': [u'Oqallinneq', u'Diskussion'],
'km': u'',
'kn': u'',
'ko': u'',
'krc': u'',
'ksh': u'Klaaf',
'ku': u'Nqa',
'kv': u'',
'kw': [u'Keskows', u'Kescows', u'Cows'],
'la': u'Disputatio',
'lad': [u'Diskussin', u'Discusin'],
'lb': u'Diskussioun',
'lbe': u'',
'li': u'Euverlk',
'lij': [u'Discscion', u'Discussione'],
'lmo': [u'Ciciarada', u'Discussione'],
'ln': u'Discussion',
'lo': u'',
'lt': u'Aptarimas',
'lv': u'Diskusija',
'map-bms': u'Dhiskusi',
'mdf': u'',
'mg': [u'Dinika', u'Discuter'],
'mhr': [u'', u''],
'mk': u'',
'ml': u'',
'mn': u'',
'mr': u'',
'ms': u'Perbincangan',
'mt': u'Diskussjoni',
'mwl': u'Cumbersa',
'myv': u'',
'mzn': [u'', u''],
'nah': [u'Tixnmiquiliztli', u'Discusin'],
'nap': [u'Chicchiera', u'Discussione'],
'nds': u'Diskuschoon',
'nds-nl': u'Overleg',
'new': u'',
'nl': u'Overleg',
'nn': u'Diskusjon',
'no': u'Diskusjon',
'nv': u'Naaltsoos baa yshti',
'oc': u'Discutir',
'os': u'',
'pa': u'',
'pcd': u'Discussion',
'pdc': u'Diskussion',
'pl': u'Dyskusja',
'pms': u'Discussion',
'pnt': u'',
'ps': u' ',
'pt': u'Discusso',
'qu': u'Rimanakuy',
'rm': u'Discussiun',
'rmy': [u'Vakyarimata', u'Discuie'],
'ro': u'Discuie',
'ru': u'',
'sa': u'',
'sah': u'',
'sc': u'Cuntierra',
'scn': u'Discussioni',
'sd': u'',
'sg': u'Discussion',
'si': u'',
'sk': u'Diskusia',
'sl': u'Pogovor',
'sq': u'Diskutim',
'sr': u'',
'srn': [u'Taki', u'Overleg'],
'stq': u'Diskussion',
'su': u'Obrolan',
'sv': u'Diskussion',
'sw': u'Majadiliano',
'szl': u'Dyskusja',
'ta': u'',
'te': u'',
'tet': u'Diskusaun',
'tg': u'',
'th': u'',
'tk': u'ekime',
'tl': u'Usapan',
'tlh': u"ja'chuq",
'tr': u'Tartma',
'tt': [u'', u' ', u'Bxs'],
'ty': u'Discussion',
'udm': u'',
'uk': u'',
'ur': u' ',
'uz': u'Munozara',
'vec': u'Discussion',
'vi': u'Tho lun',
'vls': u'Discuusje',
'vo': u'Bespik',
'wa': u'Copene',
'wo': [u'Waxtaan', u'Discuter'],
'wuu': u'',
'xal': [u'', u''],
'yi': u'',
'yo': u'r',
'za': u'',
'zea': u'Overleg',
'zh': [u'Talk', u'', u'', u'', u''],
},
2: {
'_default': u'User',
'ab': [u'', u''],
'ace': [u'Ureung Nguy', u'Pengguna'],
'af': u'Gebruiker',
'als': u'Benutzer',
'am': u'',
'an': u'Usuario',
'ar': u'',
'arc': u'',
'arz': u'',
'as': [u'', u''],
'ast': u'Usuariu',
'av': u'',
'ay': u'Usuario',
'az': u'stifadi',
'ba': u'',
'bar': u'Benutzer',
'bat-smg': [u'Nauduotuos', u'Naudotojas'],
'bcl': u'Paragamit',
'be': u'',
'be-x-old': u'',
'bg': u'',
'bm': u'Utilisateur',
'bn': u'\u09cd',
'bpy': u'',
'br': u'Implijer',
'bs': u'Korisnik',
'bug': u'Pengguna',
'ca': u'Usuari',
'cbk-zam': u'Usuario',
'ce': u'',
'ceb': u'Gumagamit',
'ch': u'Muna\'sesetbi',
'ckb': u'',
'crh': [u'Qullanc', u''],
'cs': u'Uivatel',
'csb': u'Brkwnik',
'cu': u'',
'cv': u'',
'cy': u'Defnyddiwr',
'da': u'Bruger',
'de': u'Benutzer',
'dsb': u'Wuywa',
'dv': u'',
'el': u'',
'eml': u'Utente',
'eo': u'Vikipediisto',
'es': u'Usuario',
'et': u'Kasutaja',
'eu': u'Lankide',
'fa': u'',
'ff': u'Utilisateur',
'fi': u'Kyttj',
'fiu-vro': u'Pruukja',
'fo': u'Brkari',
'fr': u'Utilisateur',
'frp': u'Utilisator',
'fur': u'Utent',
'fy': u'Meidogger',
'ga': u'sideoir',
'gan': u'User',
'gl': u'Usuario',
'glk': u'',
'gn': u'Puruhra',
'gu': u'',
'gv': u'Ymmydeyr',
'haw': u'Mea hoohana',
'he': u'',
'hi': u'',
'hr': u'Suradnik',
'hsb': u'Wuiwar',
'ht': u'Itilizat',
'hu': u'Szerkeszt',
'hy': u'',
'ia': u'Usator',
'id': u'Pengguna',
'io': u'Uzanto',
'is': u'Notandi',
'it': u'Utente',
'ja': u'',
'jv': u'Panganggo',
'ka': u'',
'kaa': u'Paydalanwsh',
'kab': u'Amseqdac',
'kk': u'',
'kl': [u'Atuisoq', u'Bruger'],
'km': u'',
'kn': u'',
'ko': u'',
'krc': u'',
'ksh': [u'Metmaacher', u'Medmaacher'],
'ku': u'Bikarhner',
'kv': u'',
'kw': u'Devnydhyer',
'la': u'Usor',
'lad': [u'Empleador', u'Usuario'],
'lb': u'Benotzer',
'lbe': u' ',
'li': u'Gebroeker',
'lij': u'Utente',
'lmo': [u'Druvadur', u'Druvat', u'Utente'],
'ln': u'Utilisateur',
'lo': u'',
'lt': u'Naudotojas',
'lv': u'Lietotjs',
'map-bms': u'Panganggo',
'mdf': u'',
'mg': [u'Mpikambana', u'Utilisateur'],
'mhr': [u'', u''],
'mk': u'',
'ml': [u'', u'', u''],
'mn': u'',
'mr': u'',
'ms': u'Pengguna',
'mt': u'Utent',
'mwl': u'Outelizador',
'myv': u'',
'mzn': [u'', u''],
'nah': [u'Tlatequitiltillli', u'Usuario'],
'nap': u'Utente',
'nds': u'Bruker',
'nds-nl': u'Gebruker',
'new': u'',
'nl': u'Gebruiker',
'nn': u'Brukar',
'no': u'Bruker',
'nv': u'Choyooh',
'oc': u'Utilizaire',
'os': u'',
'pa': u'',
'pcd': u'Utilisateur',
'pdc': u'Benutzer',
'pl': u'Uytkownik',
'pms': u'Utent',
'pnt': u'',
'ps': [u'', u''],
'pt': u'Usurio',
'qu': u'Ruraq',
'rm': u'Utilisader',
'rmy': [u'Jeno', u'Utilizator'],
'ro': u'Utilizator',
'ru': u'',
'sa': u'',
'sah': u'',
'sc': u'Usuriu',
'scn': u'Utenti',
'sd': u'',
'sg': u'Utilisateur',
'sh': u'Korisnik',
'si': u'',
'sk': u'Redaktor',
'sl': u'Uporabnik',
'sq': u'Prdoruesi',
'sr': u'',
'srn': [u'Masyin', u'Gebruiker'],
'stq': u'Benutser',
'su': u'Pamak',
'sv': u'Anvndare',
'sw': u'Mtumiaji',
'szl': u'Uytkownik',
'ta': u'',
'te': [u'', u'', u''],
'tet': u'Uza-na\'in',
'tg': u'',
'th': u'' + u'\u0e49',
'tk': u'Ulanyjy',
'tl': u'Tagagamit',
'tlh': u"lo'wI'",
'tr': u'Kullanc',
'tt': [u'', u'z'],
'ty': u'Utilisateur',
'udm': u'',
'uk': u'',
'ur': u'',
'uz': u'Foydalanuvchi',
'vec': u'Utente',
'vi': u'Thnh vin',
'vls': u'Gebruker',
'vo': u'Geban',
'wa': u'Uzeu',
'wo': [u'Jfandikukat', u'Utilisateur'],
'wuu': u'',
'xal': [u'', u''],
'yi': u'',
'yo': u'One',
'za': u'',
'zea': u'Gebruker',
'zh': [u'User', u'', u''],
},
3: {
'_default': u'User talk',
'ab': u' ',
'ace': [u'Marit Ureung Nguy', u'Pembicaraan Pengguna',
u'Bicara Pengguna'],
'af': u'Gebruikerbespreking',
'als': u'Benutzer Diskussion',
'am': u' ',
'an': u'Descusin usuario',
'ar': u' ',
'arc': u' ',
'arz': u' ',
'as': [u' ', u' '],
'ast': u'Usuariu alderique',
'av': u' ',
'ay': u'Usuario Discusin',
'az': u'stifadi mzakirsi',
'ba': u' - ',
'bar': u'Benutzer Diskussion',
'bat-smg': u'Nauduotuoj aptarms',
'bcl': u'Olay kan paragamit',
'be': u' ',
'be-x-old': u' ',
'bg': u' ',
'bm': u'Discussion utilisateur',
'bn': u' ',
'bpy': u' ',
'br': u'Kaozeadenn Implijer',
'bs': u'Razgovor sa korisnikom',
'bug': u'Pembicaraan Pengguna',
'ca': u'Usuari Discussi',
'cbk-zam': u'Usuario Discusin',
'ce': u' ',
'ceb': u'Hisgot sa Gumagamit',
'ch': u'Kombetsasion ni muna\'sesetbi',
'ckb': u' ',
'crh': [u'Qullanc muzakeresi', u' '],
'cs': u'Diskuse s uivatelem',
'csb': u'Disksj brkwnika',
'cu': u' ',
'cv': u' ',
'cy': u'Sgwrs Defnyddiwr',
'da': u'Brugerdiskussion',
'de': u'Benutzer Diskussion',
'dsb': u'Diskusija wuywarja',
'el': u' ',
'eml': u'Discussioni utente',
'eo': u'Vikipediista diskuto',
'es': u'Usuario Discusin',
'et': u'Kasutaja arutelu',
'eu': u'Lankide eztabaida',
'fa': u' ',
'ff': u'Discussion utilisateur',
'fi': u'Keskustelu kyttjst',
'fiu-vro': u'Pruukja arotus',
'fo': [u'Brkarakjak', u'Brkari kjak'],
'fr': u'Discussion utilisateur',
'frp': u'Discussion utilisator',
'fur': u'Discussion utent',
'fy': u'Meidogger oerlis',
'ga': u'Pl sideora',
'gan': u'User talk',
'gl': [u'Conversa usuario', u'Conversa Usuario'],
'glk': u' ',
'gn': u'Puruhra myangeki',
'gu': u' ',
'gv': u'Resooney ymmydeyr',
'haw': u'Kkkk o mea hoohana',
'he': u' ',
'hi': u' ',
'hr': u'Razgovor sa suradnikom',
'hsb': u'Diskusija z wuiwarjom',
'ht': u'Diskisyon Itilizat',
'hu': u'Szerkesztvita',
'hy': u' ',
'ia': u'Discussion Usator',
'id': u'Pembicaraan Pengguna',
'io': u'Uzanto Debato',
'is': u'Notandaspjall',
'it': u'Discussioni utente',
'ja': u'',
'jv': u'Dhiskusi Panganggo',
'ka': [u' ', u' '],
'kaa': u"Paydalanwsh sa'wbeti",
'kab': u'Amyannan umsqedac',
'kk': u' ',
'kl': [u'Atuisup oqalliffia', u'Brugerdiskussion'],
'km': u'',
'kn': u' ',
'ko': u'',
'krc': u' ',
'ksh': [u'Metmaacher Klaaf', u'Medmaacher Klaaf'],
'ku': u'Bikarhner nqa',
'kv': u' ',
'kw': [u'Keskows Devnydhyer', u'Kescows Devnydhyer',
u'Cows Devnydhyer'],
'la': u'Disputatio Usoris',
'lad': [u'Message de Empleador', u'Usuario_Discusin'],
'lb': u'Benotzer Diskussioun',
'lbe': u' ',
'li': u'Euverlk gebroeker',
'lij': [u'Discscion tente', u'Discussioni utente'],
'lmo': [u'Ciciarada Druvadur', u'Ciciarada Druvat',
u'Discussioni utente'],
'ln': u'Discussion utilisateur',
'lo': u'',
'lt': u'Naudotojo aptarimas',
'lv': u'Lietotja diskusija',
'map-bms': u'Dhiskusi Panganggo',
'mdf': u' ',
'mg': [u'Dinika amin\'ny mpikambana', u'Discussion Utilisateur'],
'mhr': [u' ', u' '],
'mk': u' ',
'ml': [u' ', u' ',
u''],
'mn': u' ',
'mr': u' ',
'ms': u'Perbincangan Pengguna',
'mt': u'Diskussjoni utent',
'mwl': u'Cumbersa outelizador',
'myv': u' ',
'mzn': [u' ', u' '],
'nah': [u'Tlatequitiltillli tixnmiquiliztli',
u'Usuario Discusin'],
'nap': [u'Utente chicchiera', u'Discussioni utente'],
'nds': u'Bruker Diskuschoon',
'nds-nl': u'Overleg gebruker',
'new': u' ',
'nl': u'Overleg gebruiker',
'nn': u'Brukardiskusjon',
'no': u'Brukerdiskusjon',
'nv': u'Choyooh bich yshti',
'oc': u'Discussion Utilizaire',
'os': u' ',
'pa': u' ',
'pcd': u'Discussion utilisateur',
'pdc': u'Benutzer Diskussion',
'pl': u'Dyskusja uytkownika',
'pms': u'Ciaciarade',
'pnt': u' ',
'ps': [u' ', u' '],
'pt': u'Usurio Discusso',
'qu': u'Ruraq rimanakuy',
'rm': u'Utilisader discussiun',
'rmy': [u'Jeno vakyarimata', u'Discuie Utilizator'],
'ro': u'Discuie Utilizator',
'ru': u' ',
'sa': u'',
'sah': u' ',
'sc': u'Cuntierra usuriu',
'scn': u'Discussioni utenti',
'sd': u' ',
'sg': u'Discussion utilisateur',
'sh': u'Razgovor sa korisnikom',
'si': u' ',
'sk': u'Diskusia s redaktorom',
'sl': u'Uporabniki pogovor',
'sq': u'Prdoruesi diskutim',
'sr': u' ',
'srn': [u'Taki fu masyin', u'Overleg gebruiker'],
'stq': u'Benutser Diskussion',
'su': u'Obrolan pamak',
'sv': u'Anvndardiskussion',
'sw': u'Majadiliano ya mtumiaji',
'szl': u'Dyskusja uytkownika',
'ta': u' ',
'te': [u' ', u' '],
'tet': u'Diskusaun Uza-na\'in',
'tg': u' ',
'th': u'',
'tk': u'Ulanyjy ekime',
'tl': u'Usapang tagagamit',
'tlh': u"lo'wI' ja'chuq",
'tr': u'Kullanc mesaj',
'tt': [u' ', u'z bxse'],
'ty': u'Discussion utilisateur',
'udm': u' ',
'uk': u' ',
'ur': u' ',
'uz': u'Foydalanuvchi munozarasi',
'vec': u'Discussion utente',
'vi': u'Tho lun Thnh vin',
'vls': u'Discuusje gebruker',
'vo': u'Gebanibespik',
'wa': u'Uzeu copene',
'wo': [u'Waxtaani jfandikukat', u'Discussion Utilisateur'],
'wuu': u'',
'xal': [u' ', u' '],
'yi': u' ',
'yo': u'r one',
'za': u'',
'zea': u'Overleg gebruker',
'zh': [u'User talk', u'', u'', u'',
u''],
},
4: {
'_default': u'Project',
'arc': u'',
'bn': u'',
'mwl': u'Biquipdia',
'nah': u'Huiquipedia',
'tk': u'Wikipedia',
'tt': u'',
},
5: {
'_default': u'Project talk',
'ab': u'Wikipedia ',
'ace': [u'Marit Wikipedia', u'Pembicaraan Wikipedia'],
'arc': [u' ', u' talk'],
'bn': u' ',
'ckb': u' Wikipedia',
'cs': u'Diskuse k Wikipedii',
'ja': u'Wikipedia',
'kl': u'Wikipedia-p oqalliffia',
'krc': u' ',
'kw': [u'Kescows Wikipedia', u'Cows Wikipedia'],
'lad': u'Diskussin de Wikipedia',
'lmo': u'Wikipedia Ciciarada',
'mhr': u'Wikipedia ',
'mt': u'Diskussjoni Wikipedija',
'mwl': u'Biquipdia cumbersa',
'mzn': u'Wikipedia ',
'nah': u'Huiquipedia tixnmiquiliztli',
'nv': u'Wikiibdiiya baa yshti',
'rm': u'Wikipedia discussiun',
'ro': u'Discuie Wikipedia',
'sw': u'Majadiliano ya Wikipedia',
'tk': u'Wikipedia ekime',
'tt': u' ',
'xal': [u'Wikipedia ', u'Wikipedia '],
},
6: {
'_default': [u'File', u'Image'],
'ab': [u'', u''],
'ace': [u'Beureukaih', u'Berkas' u'Gambar'],
'af': [u'Ler', u'Beeld'],
'als': [u'Datei', u'Bild'],
'am': u'',
'an': u'Imachen',
'ang': u'Bili',
'ar': [u'', u''],
'arc': u'',
'arz': [u'', u''],
'as': [u'', u''],
'ast': [u'Archivu', u'Imaxe'],
'av': [u'', u''],
'ay': [u'Archivo', u'Imagen'],
'az': u'kil',
'ba': u'',
'bar': [u'Datei', u'Bild'],
'bat-smg': u'Abruozdielis',
'bcl': u'Ladawan',
'be': u'',
'be-x-old': [u'', u''],
'bg': [u'', u''],
'bm': u'Fichier',
'bn': u'',
'bpy': u'',
'br': u'Skeudenn',
'bs': [u'Datoteka', u'Slika'],
'bug': u'Berkas',
'ca': [u'Fitxer', u'Imatge'],
'cbk-zam': [u'Archivo', u'Imagen'],
'cbs': u'brzk',
'ce': u'',
'ceb': [u'Payl', u'Imahen'],
'ch': u'Litratu',
'ckb': u'',
'crh': [u'Fayl', u'Resim', u''],
'cs': u'Soubor',
'csb': u'brzk',
'cu': [u'', u''],
'cv': u'',
'cy': u'Delwedd',
'da': [u'Fil', u'Billede'],
'de': [u'Datei', u'Bild'],
'dsb': [u'Dataja', u'Wobraz'],
'dv': u'',
'el': [u'', u''],
'eml': [u'File', u'Immagine'],
'eo': u'Dosiero',
'es': [u'Archivo', u'Imagen'],
'et': u'Pilt',
'eu': [u'Fitxategi', u'Irudi'],
'fa': [u'', u''],
'ff': u'Fichier',
'fi': [u'Tiedosto', u'Kuva'],
'fiu-vro': u'Pilt',
'fo': u'Mynd',
'fr': u'Fichier',
'frp': u'Fichir',
'fur': u'Figure',
'fy': u'Ofbyld',
'ga': u'omh',
'gan': u'File',
'gl': [u'Ficheiro', u'Imaxe'],
'glk': [u'', u''],
'gn': u"Ta'nga",
'gu': u'',
'gv': u'Coadan',
'haw': [u'Waihona', u'Kii'],
'he': [u'', u''],
'hi': u'',
'hr': [u'Datoteka', u'Slika'],
'hsb': [u'Dataja', u'Wobraz'],
'ht': u'Imaj',
'hu': [u'Fjl', u'Kp'],
'hy': u'',
'ia': [u'File', u'Imagine'],
'id': [u'Berkas', u'Gambar'],
'io': u'Arkivo',
'is': u'Mynd',
'it': [u'File', u'Immagine'],
'ja': [u'', u''],
'jv': u'Gambar',
'ka': [u'', u''],
'kaa': u"Su'wret",
'kab': u'Tugna',
'kk': u'',
'kl': [u'Fiileq', u'Fil'],
'km': [u'', u''],
'kn': u'',
'ko': [u'', u''],
'krc': u'',
'ksh': [u'Datei', u'Beld', u'Belld'],
'ku': u'Wne',
'kv': [u'', u''],
'kw': u'Restren',
'la': [u'Fasciculus', u'Imago'],
'lad': [u'Dossia', u'Archivo'],
'lb': [u'Fichier', u'Bild'],
'lbe': u'',
'li': u'Plaetje',
'lij': [u'Immaggine', u'Immagine'],
'lmo': [u'Archivi', u'Immagine'],
'ln': u'Fichier',
'lo': u'',
'lt': u'Vaizdas',
'lv': u'Attls',
'map-bms': u'Gambar',
'mdf': u'',
'mg': u'Sary',
'mhr': u'',
'mk': [u'', u''],
'ml': [u'', u'', u''],
'mn': u'',
'mr': u'',
'ms': [u'Fail', u'Imej'],
'mt': u'Stampa',
'mwl': u'Fexeiro',
'myv': u'',
'mzn': [u'', u''],
'nah': [u'xiptli', u'Imagen'],
'nap': [u'Fira', u'Immagine'],
'nds': u'Bild',
'nds-nl': u'Ofbeelding',
'new': u'',
'nl': [u'Bestand', u'Afbeelding'],
'nn': u'Fil',
'no': [u'Fil', u'Bilde'],
'nv': u'Eelyaag',
'oc': u'Fichir',
'os': u'',
'pa': u'',
'pcd': u'Fichier',
'pdc': [u'Datei', u'Bild'],
'pl': [u'Plik', u'Grafika'],
'pms': u'Figura',
'pnt': u'',
'ps': u'',
'pt': [u'Ficheiro', u'Imagem'],
'qu': u'Rikcha',
'rm': u'Datoteca',
'rmy': [u'Chitro', u'Imagine'],
'ro': [u'Fiier', u'Fiier', u'Imagine'],
'ru': [u'', u''],
'sa': u'',
'sah': [u'', u''],
'sc': u'File',
'scn': [u'File', u'Mmggini'],
'sd': u'',
'sg': u'Fichier',
'sh': u'Datoteka',
'si': [u'', u''],
'sk': [u'Sbor', u'Obrzok'],
'sl': u'Slika',
'sq': [u'Skeda', u'Figura'],
'sr': u'',
'srn': [u'Gefre', u'Afbeelding'],
'stq': u'Bielde',
'su': u'Gambar',
'sv': [u'Fil', u'Bild'],
'sw': u'Picha',
'szl': [u'Plik', u'Grafika'],
'ta': u'',
'te': [u'', u'', u''],
'tet': u'Imajen',
'tg': u'',
'th': [u'', u''],
'tk': u'Fal',
'tl': u'Talaksan',
'tlh': u'nagh beQ',
'tr': [u'Dosya', u'Resim'],
'tt': [u'', u'', u'Rsem'],
'ty': u'Fichier',
'udm': u'',
'uk': [u'', u''],
'ur': u'',
'uz': u'Tasvir',
'vec': [u'File', u'Imagine'],
'vi': [u'Tp tin', u'Hnh'],
'vls': u'Ofbeeldienge',
'vo': [u'Ragiv', u'Magod'],
'wa': u'Imdje',
'wo': [u'Dencukaay'],
'wuu': u'',
'xal': [u'', u''],
'yi': [u'', u''],
'yo': u'Fl',
'za': u'',
'zea': [u'Plaetje', u'File', u'Image', u'', u'', u''],
},
7: {
'_default': [u'File talk', u'Image talk'],
'ab': [u' ', u' '],
'ace': [u'Marit Beureukaih', u'Pembicaraan Berkas',
u'Gambar Pembicaraan', u'Pembicaraan_Gambar'],
'af': [u'Lerbespreking', u'Beeldbespreking'],
'als': [u'Datei Diskussion', u'Bild Diskussion'],
'am': u' ',
'an': u'Descusin imachen',
'ang': u'Biligesprec',
'ar': [u' ', u' '],
'arc': u' ',
'arz': [u' ', u' '],
'as': [u' ', u' '],
'ast': [u'Archivu alderique', u'Imaxe alderique'],
'av': [u' ', u' '],
'ay': [u'Archivo Discusin', u'Imagen Discusin'],
'az': u'kil mzakirsi',
'ba': u' - ',
'bar': [u'Datei Diskussion', u'Bild Diskussion'],
'bat-smg': u'Abruozdiel aptarms',
'bcl': u'Olay sa ladawan',
'be': u' ',
'be-x-old': [u' ', u' '],
'bg': [u' ', u' '],
'bm': [u'Discussion fichier', u'Discussion Image'],
'bn': [u' ', u' '],
'bpy': u' ',
'br': u'Kaozeadenn Skeudenn',
'bs': [u'Razgovor o datoteci', u'Razgovor o slici'],
'bug': u'Pembicaraan Berkas',
'ca': [u'Fitxer Discussi', u'Imatge Discussi'],
'cbk-zam': [u'Archivo Discusin', u'Imagen Discusin'],
'ce': u' ',
'ceb': [u'Hisgot sa Payl', u'Hisgot sa Imahen'],
'ch': u'Kombetsasion ni litratu',
'ckb': u' ',
'crh': [u'Fayl muzakeresi', u'Resim muzakeresi',
u' '],
'cs': u'Diskuse k souboru',
'csb': u'Disksj brzkw',
'cu': [u' ', u' '],
'cv': u' ',
'cy': u'Sgwrs Delwedd',
'da': [u'Fildiskussion', u'Billeddiskussion'],
'de': [u'Datei Diskussion', u'Bild Diskussion'],
'dsb': [u'Diskusija w dataji', u'Diskusija w wobrazu'],
'dv': u' ',
'el': [u' ', u' '],
'eml': [u'Discussioni file', u'Discussioni immagine'],
'eo': u'Dosiera diskuto',
'es': [u'Archivo Discusin', u'Imagen Discusin'],
'et': u'Pildi arutelu',
'eu': [u'Fitxategi eztabaida', u'Irudi eztabaida'],
'fa': [u' ', u' '],
'ff': [u'Discussion fichier', u'Discussion Image'],
'fi': [u'Keskustelu tiedostosta', u'Keskustelu kuvasta'],
'fiu-vro': u'Pildi arotus',
'fo': [u'Myndakjak', u'Mynd kjak'],
'fr': [u'Discussion fichier', u'Discussion Image'],
'frp': u'Discussion fichir',
'fur': u'Discussion figure',
'fy': u'Ofbyld oerlis',
'ga': u'Pl omh',
'gan': u'File talk',
'gl': [u'Conversa ficheiro', u'Conversa imaxe',
u'Conversa Imaxe'],
'glk': [u' ', u' '],
'gn': u"Ta'nga myangeki",
'gu': u' ',
'gv': u'Resooney coadan',
'haw': u'Kkkk o waihona',
'he': [u' ', u' '],
'hi': u' ',
'hr': [u'Razgovor o datoteci', u'Razgovor o slici'],
'hsb': [u'Diskusija k dataji', u'Diskusija k wobrazej'],
'ht': u'Diskisyon Imaj',
'hu': [u'Fjlvita', u'Kpvita'],
'hy': u' ',
'ia': [u'Discussion File', u'Discussion Imagine'],
'id': [u'Pembicaraan Berkas', u'Pembicaraan Gambar'],
'io': u'Arkivo Debato',
'is': u'Myndaspjall',
'it': [u'Discussioni file', u'Discussioni immagine'],
'ja': [u'', u'', u''],
'jv': u'Dhiskusi Gambar',
'ka': [u' ', u' '],
'kaa': u"Su'wret sa'wbeti",
'kab': u'Amyannan n tugna',
'kk': u' ',
'kl': [u'Fiilip oqalliffia', u'Fildiskussion'],
'km': [u'', u''],
'kn': u' ',
'ko': [u'', u''],
'krc': u' ',
'ksh': [u'Dateie Klaaf', u'Belder Klaaf', u'Bellder Klaaf'],
'ku': u'Wne nqa',
'kv': [u' ', u' '],
'kw': [u'Keskows Restren', u'Kescows Restren', u'Cows Restren'],
'la': [u'Disputatio Fasciculi', u'Disputatio Imaginis'],
'lad': [u'Diskussin de Dossia', u'Archivo Discusin'],
'lb': [u'Fichier Diskussioun', u'Bild Diskussioun'],
'lbe': u' ',
'li': u'Euverlk plaetje',
'lij': [u'Discscion immaggine', u'Discussioni immagine'],
'lmo': [u'Ciciarada Archivi', u'Discussioni immagine'],
'ln': [u'Discussion fichier', u'Discussion Image'],
'lo': u'',
'lt': u'Vaizdo aptarimas',
'lv': u'Attla diskusija',
'map-bms': u'Dhiskusi Gambar',
'mdf': u' ',
'mg': [u'Dinika amin\'ny sary', u'Discussion Image'],
'mhr': [u' ', u' '],
'mk': [u' ', u' '],
'ml': [u' ', u'',
u'_'],
'mn': u' ',
'mr': u' ',
'ms': [u'Perbincangan Fail', u'Perbincangan Imej'],
'mt': u'Diskussjoni stampa',
'mwl': u'Cumbersa fexeiro',
'myv': u' ',
'mzn': [u' ', u' '],
'nah': [u'xiptli tixnmiquiliztli', u'Imagen Discusin'],
'nap': [u'Fira chicchiera', u'Discussioni immagine'],
'nds': u'Bild Diskuschoon',
'nds-nl': u'Overleg ofbeelding',
'new': u' ',
'nl': [u'Overleg bestand', u'Overleg afbeelding'],
'nn': u'Fildiskusjon',
'no': [u'Fildiskusjon', u'Bildediskusjon'],
'nv': u'Eelyaag baa yshti',
'oc': u'Discussion Fichir',
'os': u' ',
'pa': u' ',
'pcd': u'Discussion fichier',
'pdc': [u'Datei Diskussion', u'Bild Diskussion'],
'pl': [u'Dyskusja pliku', u'Dyskusja grafiki'],
'pms': u'Discussion dla figura',
'pnt': u' ',
'ps': u' ',
'pt': [u'Ficheiro Discusso', u'Imagem Discusso'],
'qu': u'Rikcha rimanakuy',
'rm': u'Datoteca discussiun',
'rmy': [u'Chitro vakyarimata', u'Discuie Imagine'],
'ro': [u'Discuie Fiier', u'Discuie Fiier',
u'Discutie Fisier', u'Discuie Fisier',
u'Discuie Imagine'],
'ru': [u' ', u' '],
'sa': u'',
'sah': [u' ', u' '],
'sc': u'Cuntierra file',
'scn': [u'Discussioni file', u'Discussioni mmggini'],
'sd': u' ',
'sg': u'Discussion fichier',
'sh': u'Razgovor o datoteci',
'si': [u' ', u' '],
'sk': [u'Diskusia k sboru', u'Diskusia k obrzku'],
'sl': u'Pogovor o sliki',
'sq': [u'Skeda diskutim', u'Figura diskutim'],
'sr': u' ',
'srn': [u'Taki fu gefre', u'Overleg afbeelding'],
'stq': u'Bielde Diskussion',
'su': u'Obrolan gambar',
'sv': [u'Fildiskussion', u'Bilddiskussion'],
'sw': u'Majadiliano ya faili',
'szl': [u'Dyskusja pliku', u'Dyskusja grafiki'],
'ta': [u' ', u' '],
'te': [u' ', u' ', u' '],
'tet': u'Diskusaun Imajen',
'tg': u' ',
'th': [u'', u''],
'tk': u'Fal ekime',
'tl': u'Usapang talaksan',
'tlh': u"nagh beQ ja'chuq",
'tr': [u'Dosya tartma', u'Resim tartma'],
'tt': [u' ', u' ', u'Rsem bxse'],
'ty': [u'Discussion fichier', u'Discussion Image'],
'udm': u' ',
'uk': [u' ', u' '],
'ur': u' ',
'uz': u'Tasvir munozarasi',
'vec': [u'Discussion file', u'Discussion imagine'],
'vi': [u'Tho lun Tp tin', u'Tho lun Hnh'],
'vls': u'Discuusje ofbeeldienge',
'vo': [u'Ragivibespik', u'Magodibespik'],
'wa': u'Imdje copene',
'wo': [u'Waxtaani dencukaay'],
'wuu': u'',
'xal': [u' ', u' '],
'yi': [u' ', u' '],
'yo': u'r fl',
'za': u'',
'zea': u'Overleg plaetje',
'zh': [u'File talk', u'Image talk', u'', u'',
u'', u'', u'', u'', u'',
u''],
},
8: {
'_default': u'MediaWiki',
'ab': u'',
'ace': u'AlatWiki',
'am': u'',
'ar': u'',
'arc': u'',
'arz': [u'', u''],
'az': u'MediyaViki',
'bcl': u'MediaWiki',
'bg': u'',
'bn': u'',
'bpy': u'',
'bs': [u'MediaWiki', u'MedijaViki'],
'ce': u'',
'crh': [u'MediaViki', u''],
'cy': u'MediaWici',
'dv': u'',
'fa': u'',
'fi': u'Jrjestelmviesti',
'fo': [u'MediaWiki', u'MidiaWiki'],
'glk': u'',
'gu': u'',
'he': u' ',
'hi': u'',
'ht': u'MedyaWiki',
'is': u'Melding',
'ka': u'',
'kk': u'',
'km': u'',
'kn': u'',
'ko': u'',
'ksh': [u'MediaWiki', u'MedijaWikki'],
'lo': u'',
'mdf': u'',
'mk': u'',
'ml': u'',
'mn': u'',
'mr': u'',
'mwl': u'Biqui',
'mzn': [u'', u' ', u''],
'nah': u'Huiquimedia',
'new': u'',
'pa': u'',
'ps': u'',
'rmy': u'MediyaViki',
'sa': u'',
'sd': u' ',
'si': [u'', u''],
'sr': u'',
'su': [u'MdiaWiki'],
'ta': u'',
'te': u'',
'tg': u'',
'th': u'',
'tr': u'MediaWiki',
'tt': u'',
'ur': u'',
'vo': u'Sitanuns',
'yi': u'',
},
9: {
'_default': u'MediaWiki talk',
'ab': u' MediaWiki',
'ace': [u'Marit AlatWiki', u'Pembicaraan MediaWiki',
u'MediaWiki Pembicaraan'],
'af': u'MediaWikibespreking',
'als': u'MediaWiki Diskussion',
'am': u' ',
'an': u'Descusin MediaWiki',
'ar': u' ',
'arc': u' ',
'arz': [u' ', u' '],
'as': u'MediaWiki ',
'ast': u'MediaWiki alderique',
'av': u' MediaWiki',
'ay': u'MediaWiki Discusin',
'az': u'MediyaViki mzakirsi',
'ba': u'MediaWiki - ',
'bar': u'MediaWiki Diskussion',
'bat-smg': u'MediaWiki aptarms',
'bcl': u'Olay sa MediaWiki',
'be': u' MediaWiki',
'be-x-old': u' MediaWiki',
'bg': u' ',
'bm': u'Discussion MediaWiki',
'bn': [u' ', u'MediaWiki '],
'bpy': u' ',
'br': u'Kaozeadenn MediaWiki',
'bs': [u'MediaWiki razgovor', u'Razgovor o MedijaVikiju'],
'bug': u'Pembicaraan MediaWiki',
'ca': u'MediaWiki Discussi',
'cbk-zam': u'MediaWiki Discusin',
'ce': u' ',
'ceb': u'Hisgot sa MediaWiki',
'ckb': u' ',
'crh': [u'MediaViki muzakeresi', u' '],
'cs': u'Diskuse k MediaWiki',
'csb': u'Disksj MediaWiki',
'cu': u'MediaWiki ',
'cv': u'MediaWiki ',
'cy': u'Sgwrs MediaWici',
'da': u'MediaWiki-diskussion',
'de': u'MediaWiki Diskussion',
'dsb': u'MediaWiki diskusija',
'dv': u' ',
'el': u' MediaWiki',
'eml': u'Discussioni MediaWiki',
'eo': u'MediaWiki diskuto',
'es': u'MediaWiki Discusin',
'et': u'MediaWiki arutelu',
'eu': u'MediaWiki eztabaida',
'fa': u' ',
'ff': u'Discussion MediaWiki',
'fi': u'Keskustelu jrjestelmviestist',
'fiu-vro': u'MediaWiki arotus',
'fo': [u'MediaWiki-kjak', u'MidiaWiki-kjak', u'MidiaWiki kjak'],
'fr': u'Discussion MediaWiki',
'frp': u'Discussion MediaWiki',
'fur': u'Discussion MediaWiki',
'fy': u'MediaWiki oerlis',
'ga': u'Pl MediaWiki',
'gan': u'MediaWiki talk',
'gl': u'Conversa MediaWiki',
'glk': u' ',
'gn': u'MediaWiki myangeki',
'gu': u' ',
'gv': 'Resooney MediaWiki',
'haw': u'Kkkk o MediaWiki',
'he': u' ',
'hi': u' ',
'hr': u'MediaWiki razgovor',
'hsb': u'MediaWiki diskusija',
'ht': u'Diskisyon MedyaWiki',
'hu': u'MediaWiki-vita',
'hy': u'MediaWiki ',
'ia': u'Discussion MediaWiki',
'id': u'Pembicaraan MediaWiki',
'io': u'MediaWiki Debato',
'is': u'Meldingarspjall',
'it': u'Discussioni MediaWiki',
'ja': u'MediaWiki',
'jv': u'Dhiskusi MediaWiki',
'ka': [u' ', u' '],
'kaa': u"MediaWiki sa'wbeti",
'kab': u'Amyannan n MediaWiki',
'kk': u' ',
'kl': [u'Mediawikip oqalliffia', u'MediaWiki-diskussion'],
'km': u'',
'kn': u' ',
'ko': u'',
'krc': u'MediaWiki- ',
'ksh': [u'MediaWiki Klaaf', u'MedijaWikki Klaaf'],
'ku': u'MediaWiki nqa',
'kv': u' MediaWiki',
'kw': [u'Keskows MediaWiki', u'Kescows MediaWiki',
u'Cows MediaWiki'],
'la': u'Disputatio MediaWiki',
'lad': [u'Diskussin de MediaWiki', u'MediaWiki Discusin'],
'lb': u'MediaWiki Diskussioun',
'lbe': u'MediaWiki ',
'li': u'Euverlk MediaWiki',
'lij': [u'Discscion MediaWiki', u'Discussioni MediaWiki'],
'lmo': [u'Ciciarada MediaWiki', u'Discussioni MediaWiki'],
'ln': u'Discussion MediaWiki',
'lo': u'',
'lt': u'MediaWiki aptarimas',
'lv': u'MediaWiki diskusija',
'map-bms': u'Dhiskusi MediaWiki',
'mdf': u' ',
'mg': [u'Dinika amin\'ny MediaWiki', u'Discussion MediaWiki'],
'mhr': u' MediaWiki',
'mk': u' ',
'ml': u' ',
'mn': u' ',
'mr': u' ',
'ms': u'Perbincangan MediaWiki',
'mt': u'Diskussjoni MediaWiki',
'mwl': u'Cumbersa Biqui',
'myv': u'MediaWiki- ',
'mzn': [u' ', u' ', u' '],
'nah': [u'Huiquimedia tixnmiquiliztli',
u'MediaWiki Discusin'],
'nap': [u'MediaWiki chicchiera', u'Discussioni MediaWiki'],
'nds': u'MediaWiki Diskuschoon',
'nds-nl': u'Overleg MediaWiki',
'new': u' ',
'nl': u'Overleg MediaWiki',
'nn': u'MediaWiki-diskusjon',
'no': u'MediaWiki-diskusjon',
'nv': u'MediaWiki baa yshti',
'oc': u'Discussion MediaWiki',
'os': u' MediaWiki',
'pa': u' ',
'pcd': u'Discussion MediaWiki',
'pdc': u'MediaWiki Diskussion',
'pl': u'Dyskusja MediaWiki',
'pms': u'Discussion dla MediaWiki',
'ps': u' ',
'pt': u'MediaWiki Discusso',
'qu': u'MediaWiki rimanakuy',
'rm': u'MediaWiki discussiun',
'rmy': [u'MediyaViki vakyarimata', u'Discuie MediaWiki'],
'ro': u'Discuie MediaWiki',
'ru': u' MediaWiki',
'sa': u'',
'sah': u' MediaWiki',
'sc': u'Cuntierra MediaWiki',
'scn': u'Discussioni MediaWiki',
'sd': u' ',
'sg': u'Discussion MediaWiki',
'si': [u' ', u' '],
'sk': u'Diskusia k MediaWiki',
'sl': u'Pogovor o MediaWiki',
'sq': u'MediaWiki diskutim',
'sr': u' ',
'srn': [u'Taki fu MediaWiki', u'Overleg MediaWiki'],
'stq': u'MediaWiki Diskussion',
'su': [u'Obrolan MdiaWiki', u'Obrolan MediaWiki'],
'sv': u'MediaWiki-diskussion',
'sw': u'Majadiliano ya MediaWiki',
'szl': u'Dyskusja MediaWiki',
'ta': u' ',
'te': u' ',
'tet': u'Diskusaun MediaWiki',
'tg': u' ',
'th': u'',
'tk': u'MediaWiki ekime',
'tl': u'Usapang MediaWiki',
'tlh': u"MediaWiki ja'chuq",
'tr': u'MediaWiki tartma',
'tt': [u' ', u' ',
u'MediaWiki bxse'],
'ty': u'Discussion MediaWiki',
'udm': u'MediaWiki ',
'uk': u' MediaWiki',
'ur': u' ',
'uz': u'MediaWiki munozarasi',
'vec': u'Discussion MediaWiki',
'vi': u'Tho lun MediaWiki',
'vls': u'Discuusje MediaWiki',
'vo': u'Bespik d sitanuns',
'wa': u'MediaWiki copene',
'wo': [u'Waxtaani MediaWiki', u'Discussion MediaWiki'],
'wuu': u'MediaWiki',
'xal': [u'MediaWiki ', u'MediaWiki '],
'yi': u' ',
'yo': u'r mediaWiki',
'za': u'MediaWiki',
'zea': u'Overleg MediaWiki',
'zh': [u'MediaWiki talk', u'MediaWiki', u'MediaWiki',
u'MediaWiki', u'MediaWiki'],
},
10: {
'_default': u'Template',
'ab': [u'', u''],
'ace': [u'Pola', u'Templat'],
'af': u'Sjabloon',
'als': u'Vorlage',
'am': [u'', u''],
'an': u'Plantilla',
'ang': u'Bysen',
'ar': u'',
'arc': u'',
'arz': u'',
'as': [u'', u''],
'ast': u'Planta',
'av': u'',
'ay': u'Plantilla',
'az': u'ablon',
'ba': u'',
'bar': u'Vorlage',
'bat-smg': u'abluons',
'bcl': u'Plantilya',
'be': u'',
'be-x-old': u'',
'bg': u'',
'bm': u'Modle',
'bn': u'',
'bpy': u'',
'br': u'Patrom',
'bs': u'ablon',
'bug': u'Templat',
'ca': u'Plantilla',
'cbk-zam': u'Plantilla',
'cbs': u'Szablna',
'ce': u'',
'ceb': u'Plantilya',
'ckb': u'',
'crh': [u'ablon', u''],
'cs': u'ablona',
'csb': u'Szablna',
'cu': u'',
'cv': u'',
'cy': u'Nodyn',
'da': u'Skabelon',
'de': u'Vorlage',
'dsb': u'Pedoga',
'dv': u'',
'el': u'',
'eo': u'ablono',
'es': u'Plantilla',
'et': u'Mall',
'eu': u'Txantiloi',
'fa': u'',
'ff': u'Modle',
'fi': u'Malline',
'fiu-vro': u'Nds',
'fo': u'Fyrimynd',
'fr': u'Modle',
'frp': u'Modlo',
'fur': u'Model',
'fy': u'Berjocht',
'ga': u'Teimplad',
'gan': u'Template',
'gl': u'Modelo',
'glk': u'',
'gn': u'Tembiechar',
'gu': u'',
'gv': u'Clowan',
'haw': u'Anakuhi',
'he': u'',
'hi': u'',
'hr': u'Predloak',
'hsb': u'Pedoha',
'ht': u'Modl',
'hu': u'Sablon',
'hy': u'',
'ia': u'Patrono',
'id': u'Templat',
'io': [u'Shablono', u'Modelo'],
'is': u'Sni',
'ja': u'',
'jv': u'Cithakan',
'ka': u'',
'kaa': u'Shablon',
'kab': u'Tala',
'kk': u'',
'kl': [u'Ilisserut', u'Skabelon'],
'km': u'',
'kn': u'',
'ko': u'',
'krc': u'',
'ksh': u'Schablon',
'ku': u'ablon',
'kv': u'',
'kw': u'Skantlyn',
'la': u'Formula',
'lad': [u'Xabbln', u'Plantilla'],
'lb': u'Schabloun',
'lbe': u'',
'li': u'Sjabloon',
'lmo': u'Mudel',
'ln': u'Modle',
'lo': u'',
'lt': u'ablonas',
'lv': u'Veidne',
'map-bms': u'Cithakan',
'mdf': u'',
'mg': [u'Endrika', u'Modle'],
'mhr': [u'', u''],
'mk': u'',
'ml': [u'', u''],
'mn': u'',
'mr': u'',
'ms': u'Templat',
'mt': u'Mudell',
'mwl': u'Modelo',
'myv': u'',
'mzn': [u'', u''],
'nah': [u'Nemachiytlli', u'Plantilla'],
'nap': u'Modello',
'nds': u'Vrlaag',
'nds-nl': u'Mal',
'nl': u'Sjabloon',
'nn': u'Mal',
'no': u'Mal',
'nv': u'Bee lnh',
'oc': u'Modl',
'os': u'',
'pa': u'',
'pcd': u'Modle',
'pdc': u'Vorlage',
'pl': u'Szablon',
'pms': u'Stamp',
'pnt': u'',
'ps': u'',
'pt': u'Predefinio',
'qu': u'Plantilla',
'rm': u'Model',
'rmy': [u'Sikavno', u'Format'],
'ro': u'Format',
'ru': u'',
'sa': u'',
'sah': u'',
'sd': u'',
'sg': u'Modle',
'sh': u'ablon',
'si': u'',
'sk': u'ablna',
'sl': u'Predloga',
'sq': u'Stampa',
'sr': [u'', u'ablon'],
'srn': [u'Ankra', u'Sjabloon'],
'stq': u'Foarloage',
'su': u'Citakan',
'sv': u'Mall',
'sw': u'Kigezo',
'szl': u'Szablon',
'ta': u'',
'te': u'',
'tg': u'',
'th': u'',
'tk': u'ablon',
'tl': u'Suleras',
'tlh': u"chen'ay'",
'tr': u'ablon',
'tt': [u'', u'rnk'],
'ty': u'Modle',
'udm': u'',
'uk': u'',
'ur': u'',
'uz': u'Andoza',
'vec': u'Modl',
'vi': [u'Bn mu', u'Tiu bn'],
'vls': u'Patron',
'vo': u'Samafomot',
'wa': u'Modele',
'wo': [u'Royuwaay', u'Modle'],
'wuu': u'',
'xal': [u'', u''],
'yi': u'',
'yo': u'dk',
'za': u'',
'zea': u'Sjabloon',
'zh': [u'Template', u''],
},
11: {
'_default': u'Template talk',
'ab': u' ',
'ace': [u'Marit Pola', u'Pembicaraan Templat',
u'Templat Pembicaraan'],
'af': u'Sjabloonbespreking',
'als': u'Vorlage Diskussion',
'am': [u' ', u' '],
'an': u'Descusin plantilla',
'ang': u'Bysengesprec',
'ar': u' ',
'arc': u' ',
'arz': u' ',
'as': [u' ', u' '],
'ast': u'Planta alderique',
'av': u' ',
'ay': u'Plantilla Discusin',
'az': u'ablon mzakirsi',
'ba': u' - ',
'bar': u'Vorlage Diskussion',
'bat-smg': u'abluona aptarms',
'bcl': u'Olay sa plantilya',
'be': u' ',
'be-x-old': u' ',
'bg': u' ',
'bm': u'Discussion modle',
'bn': u' ',
'bpy': u' ',
'br': u'Kaozeadenn Patrom',
'bs': u'Razgovor o ablonu',
'bug': u'Pembicaraan Templat',
'ca': u'Plantilla Discussi',
'cbk-zam': u'Plantilla Discusin',
'ce': u' ',
'ceb': u'Hisgot sa Plantilya',
'ckb': u' ',
'crh': [u'ablon muzakeresi', u' '],
'cs': u'Diskuse k ablon',
'csb': u'Disksj Szabln',
'cu': u' ',
'cv': u' ',
'cy': u'Sgwrs Nodyn',
'da': u'Skabelondiskussion',
'de': u'Vorlage Diskussion',
'dsb': u'Diskusija w pedoze',
'dv': u' ',
'el': u' ',
'eml': u'Discussioni template',
'eo': u'ablona diskuto',
'es': u'Plantilla Discusin',
'et': u'Malli arutelu',
'eu': u'Txantiloi eztabaida',
'fa': u' ',
'ff': u'Discussion modle',
'fi': u'Keskustelu mallineesta',
'fiu-vro': u'Ndse arotus',
'fo': [u'Fyrimyndakjak', u'Fyrimynd kjak'],
'fr': u'Discussion modle',
'frp': u'Discussion modlo',
'fur': u'Discussion model',
'fy': u'Berjocht oerlis',
'ga': u'Pl teimplid',
'gan': u'Template talk',
'gl': [u'Conversa modelo', u'Conversa Modelo'],
'glk': u' ',
'gn': u'Tembiechar myangeki',
'gu': u' ',
'gv': u'Resooney clowan',
'haw': u'Kkkk o anakuhi',
'he': u' ',
'hi': u' ',
'hr': u'Razgovor o predloku',
'hsb': u'Diskusija k pedoze',
'ht': u'Diskisyon Modl',
'hu': u'Sablonvita',
'hy': u' ',
'ia': u'Discussion Patrono',
'id': u'Pembicaraan Templat',
'io': [u'Shablono Debato', u'Modelo Debato'],
'is': u'Sniaspjall',
'it': u'Discussioni template',
'ja': u'',
'jv': u'Dhiskusi Cithakan',
'ka': [u' ', u' '],
'kaa': u"Shablon sa'wbeti",
'kab': u'Amyannan n tala',
'kk': u' ',
'kl': [u'Ilisserummi oqallinneq', u'Skabelondiskussion'],
'km': u'',
'kn': u' ',
'ko': u'',
'krc': u' ',
'ksh': u'Schablone Klaaf',
'ku': u'ablon nqa',
'kv': u' ',
'kw': [u'Keskows Skantlyn', u'Kescows Scantlyn',
u'Cows Scantlyn'],
'la': u'Disputatio Formulae',
'lad': [u'Diskussin de Xabbln', u'Plantilla_Discusin'],
'lb': u'Schabloun Diskussioun',
'lbe': u' ',
'li': u'Euverlk sjabloon',
'lij': [u'Discscion template', u'Discussioni template'],
'lmo': [u'Ciciarada Mudel', u'Discussioni template'],
'ln': u'Discussion modle',
'lo': u'',
'lt': u'ablono aptarimas',
'lv': u'Veidnes diskusija',
'map-bms': u'Dhiskusi Cithakan',
'mdf': u' ',
'mg': [u'Dinika amin\'ny endrika', u'Discussion Modle'],
'mhr': [u' ', u' '],
'mk': u' ',
'ml': [u' ', u''],
'mn': u' ',
'mr': u' ',
'ms': u'Perbincangan Templat',
'mt': u'Diskussjoni mudell',
'mwl': u'Cumbersa Modelo',
'myv': u' ',
'mzn': [u' ', u' '],
'nah': [u'Nemachiytlli tixnmiquiliztli',
u'Plantilla Discusin'],
'nap': [u'Modello chicchiera', u'Discussioni template'],
'nds': u'Vrlaag Diskuschoon',
'nds-nl': u'Overleg mal',
'nl': u'Overleg sjabloon',
'nn': u'Maldiskusjon',
'no': u'Maldiskusjon',
'nv': u'Bee lnh baa yshti',
'oc': u'Discussion Modl',
'os': u' ',
'pa': u' ',
'pcd': u'Discussion modle',
'pdc': u'Vorlage Diskussion',
'pl': u'Dyskusja szablonu',
'pms': u'Discussion dl stamp',
'pnt': u' ',
'ps': u' ',
'pt': u'Predefinio Discusso',
'qu': u'Plantilla rimanakuy',
'rm': u'Model discussiun',
'rmy': [u'Sikavno vakyarimata', u'Discuie Format'],
'ro': u'Discuie Format',
'ru': u' ',
'sa': u' ',
'sah': u' ',
'sc': u'Cuntierra template',
'scn': u'Discussioni template',
'sd': u' ',
'sg': u'Discussion modle',
'sh': u'Razgovor o ablonu',
'si': [u' ', u' '],
'sk': u'Diskusia k ablne',
'sl': u'Pogovor o predlogi',
'sq': u'Stampa diskutim',
'sr': u' ',
'srn': [u'Taki fu ankra', u'Overleg sjabloon'],
'stq': u'Foarloage Diskussion',
'su': u'Obrolan citakan',
'sv': u'Malldiskussion',
'sw': u'Majadiliano ya kigezo',
'szl': u'Dyskusja szablonu',
'ta': u' ',
'te': u' ',
'tet': u'Diskusaun Template',
'tg': u' ',
'th': u'',
'tk': u'ablon ekime',
'tl': u'Usapang suleras',
'tlh': u"chen'ay' ja'chuq",
'tr': u'ablon tartma',
'tt': [u' ', u' ', u'rnk bxse'],
'ty': u'Discussion modle',
'udm': u' ',
'uk': u' ',
'ur': u' ',
'uz': u'Andoza munozarasi',
'vec': u'Discussion modl',
'vi': [u'Tho lun Bn mu', u'Tho lun Tiu bn'],
'vls': u'Discuusje patron',
'vo': u'Samafomotibespik',
'wa': u'Modele copene',
'wo': [u'Waxtaani royuwaay', u'Discussion Modle'],
'wuu': u'',
'xal': [u' ', u' '],
'yi': u' ',
'yo': u'r dk',
'za': u'',
'zea': u'Overleg sjabloon',
'zh': [u'Template talk', u'', u'', u'',
u''],
},
12: {
'_default': u'Help',
'ab': [u'', u''],
'ace':[u'Beunantu', u'Bantuan'],
'af': u'Hulp',
'als': u'Hilfe',
'am': u'',
'an': u'Aduya',
'ar': u'',
'arc': u'',
'arz': u'',
'as': u'',
'ast': u'Aida',
'av': u'',
'ay': u'Ayuda',
'az': u'Kmk',
'ba': u'',
'bar': u'Hilfe',
'bat-smg': u'Pagelba',
'bcl': u'Tabang',
'be': u'',
'be-x-old': u'',
'bg': u'',
'bm': u'Aide',
'bn': u'',
'bpy': u'',
'br': u'Skoazell',
'bs': u'Pomo',
'bug': u'Bantuan',
'ca': u'Ajuda',
'cbk-zam': u'Ayuda',
'cbs': u'Pmc',
'ce': u'',
'ceb': u'Tabang',
'ch': u'Ayudo',
'ckb': u'',
'crh': [u'Yardm', u''],
'cs': u'Npovda',
'csb': u'Pmc',
'cu': u'',
'cv': u'',
'cy': u'Cymorth',
'da': u'Hjlp',
'de': u'Hilfe',
'dsb': u'Pomoc',
'dv': u'',
'el': u'',
'eml': u'Aiuto',
'eo': u'Helpo',
'es': u'Ayuda',
'et': u'Juhend',
'eu': u'Laguntza',
'fa': u'',
'ff': u'Aide',
'fi': u'Ohje',
'fiu-vro': u'Oppus',
'fo': u'Hjlp',
'fr': u'Aide',
'frp': u'de',
'fur': u'Jutori',
'fy': u'Hulp',
'ga': u'Cabhair',
'gan': u'Help',
'gl': u'Axuda',
'glk': u'',
'gn': u'Pytyv',
'gu': u'',
'gv': u'Cooney',
'haw': u'Kkua',
'he': u'',
'hi': u'',
'hr': u'Pomo',
'hsb': u'Pomoc',
'ht': u'd',
'hu': u'Segtsg',
'hy': u'',
'ia': u'Adjuta',
'id': u'Bantuan',
'io': u'Helpo',
'is': u'Hjlp',
'it': u'Aiuto',
'ja': u'',
'jv': u'Pitulung',
'ka': u'',
'kaa': u'Anqlama',
'kab': u'Tallat',
'kk': u'',
'kl': [u'Ikiuutit', u'Hjlp'],
'km': u'',
'kn': u'',
'ko': u'',
'krc': u'',
'ksh': [u'Hlp', u'Hlp'],
'ku': u'Alkar',
'kv': u'',
'kw': u'Gweres',
'la': u'Auxilium',
'lad': [u'Ayudo', u'Ayuda'],
'lb': u'Hllef',
'lbe': u'',
'lij': [u'Agitto', u'Aiuto'],
'lmo': [u'Jt', u'Aiuto'],
'ln': u'Aide',
'lo': u'',
'lt': u'Pagalba',
'lv': u'Paldzba',
'map-bms': u'Pitulung',
'mdf': u'',
'mg': [u'Fanoroana', u'Aide'],
'mhr': [u'', u''],
'mk': u'',
'ml': [u'', u''],
'mn': u'',
'mr': [u'', u''],
'ms': u'Bantuan',
'mt': [u'Gajnuna', u'Ghajnuna'],
'mwl': u'Ajuda',
'myv': u'',
'mzn': [u'', u''],
'nah': [u'Tpalhuiliztli', u'Ayuda'],
'nap': [u'Ajto', u'Aiuto'],
'nds': u'Hlp',
'nds-nl': u'Hulpe',
'new': u'',
'nn': u'Hjelp',
'no': u'Hjelp',
'nv': u'Anlwo',
'oc': u'Ajuda',
'os': u'',
'pa': u'',
'pcd': u'Aide',
'pdc': u'Hilfe',
'pl': u'Pomoc',
'pms': u'Agiut',
'pnt': u'',
'ps': u'',
'pt': u'Ajuda',
'qu': u'Yanapa',
'rm': u'Agid',
'rmy': [u'Zhutipen', u'Ajutor'],
'ro': u'Ajutor',
'ru': u'',
'sa': u'',
'sah': u'',
'sc': u'Agiudu',
'scn': u'Aiutu',
'sd': u'',
'sg': u'Aide',
'si': u'',
'sk': u'Pomoc',
'sl': u'Pomo',
'sq': u'Ndihm',
'sr': u'',
'srn': u'Yepi',
'stq': u'Hlpe',
'su': u'Pitulung',
'sv': u'Hjlp',
'sw': u'Msaada',
'szl': u'Pomoc',
'ta': u'',
'te': [u'', u''],
'tet': u'Ajuda',
'tg': u'',
'th': u'',
'tk': u'ardam',
'tl': u'Tulong',
'tlh': u'QaH',
'tr': u'Yardm',
'tt': [u'', u'Yrdm'],
'ty': u'Aide',
'udm': u'',
'uk': u'',
'ur': u'',
'uz': u'Yordam',
'vec': u'Ajuto',
'vi': u'Tr gip',
'vls': u'Ulpe',
'vo': u'Yuf',
'wa': u'Aidance',
'wo': [u'Ndimbal', u'Aide'],
'wuu': u'',
'xal': u'',
'yi': u'',
'yo': u'rnlw',
'za': u'',
'zea': u'Ulpe',
'zh': [u'Help', u'', u''],
},
13: {
'_default': u'Help talk',
'ab': u' ',
'ace': [u'Marit Beunantu', u'Pembicaraan Bantuan',
u'Bantuan Pembicaraan'],
'af': u'Hulpbespreking',
'als': u'Hilfe Diskussion',
'am': u' ',
'an': u'Descusin aduya',
'ang': u'Helpgesprec',
'ar': u' ',
'arc': u' ',
'arz': u' ',
'as': u' ',
'ast': u'Aida alderique',
'av': u' ',
'ay': u'Ayuda Discusin',
'az': u'Kmk mzakirsi',
'ba': u' - ',
'bar': u'Hilfe Diskussion',
'bat-smg': u'Pagelbas aptarms',
'bcl': u'Olay sa tabang',
'be': u' ',
'be-x-old': u' ',
'bg': u' ',
'bm': u'Discussion aide',
'bn': u' ',
'bpy': u' ',
'br': u'Kaozeadenn Skoazell',
'bs': u'Razgovor o pomoi',
'bug': u'Pembicaraan Bantuan',
'ca': u'Ajuda Discussi',
'cbk-zam': u'Ayuda Discusin',
'ce': u' ',
'ceb': u'Hisgot sa Tabang',
'ch': u'Kombetsasion ni ayudo',
'ckb': u' ',
'crh': [u'Yardm muzakeresi', u' '],
'cs': u'Diskuse k npovd',
'csb': u'Disksj Pmc',
'cu': u' ',
'cv': u' ',
'cy': u'Sgwrs Cymorth',
'da': u'Hjlp-diskussion',
'de': u'Hilfe Diskussion',
'dsb': u'Diskusija w pomocy',
'dv': u' ',
'el': u' ',
'eml': u'Discussioni aiuto',
'eo': u'Helpa diskuto',
'es': u'Ayuda Discusin',
'et': u'Juhendi arutelu',
'eu': u'Laguntza eztabaida',
'fa': u' ',
'ff': u'Discussion aide',
'fi': u'Keskustelu ohjeesta',
'fiu-vro': u'Oppus arotus',
'fo': [u'Hjlparkjak', u'Hjlp kjak'],
'fr': u'Discussion aide',
'frp': u'Discussion de',
'fur': u'Discussion jutori',
'fy': u'Hulp oerlis',
'ga': u'Pl cabhrach',
'gan': u'Help talk',
'gl': [u'Conversa axuda', u'Conversa Axuda'],
'glk': u' ',
'gn': u'Pytyv myangeki',
'gu': u' ',
'gv': u'Resooney cooney',
'haw': u'Kkkk o kkua',
'he': u' ',
'hi': u' ',
'hr': u'Razgovor o pomoi',
'hsb': u'Pomoc diskusija',
'ht': u'Diskisyon d',
'hu': u'Segtsgvita',
'hy': u' ',
'ia': u'Discussion Adjuta',
'id': u'Pembicaraan Bantuan',
'io': u'Helpo Debato',
'is': u'Hjlparspjall',
'it': u'Discussioni aiuto',
'ja': u'',
'jv': u'Dhiskusi Pitulung',
'ka': [u' ', u' '],
'kaa': u"Anqlama sa'wbeti",
'kab': u'Amyannan n tallat',
'kk': u' ',
'kl': [u'Ikiuutini oqallinneq', u'Hjlp-diskussion'],
'km': u'',
'kn': u' ',
'ko': u'',
'krc': u' ',
'ksh': [u'Hlp Klaaf', u'Hlp Klaaf'],
'ku': u'Alkar nqa',
'kv': u' ',
'kw': [u'Keskows Gweres', u'Kescows Gweres', u'Cows Gweres'],
'la': u'Disputatio Auxilii',
'lad': [u'Diskussin de Ayudo', u'Ayuda_Discusin'],
'lb': u'Hllef Diskussioun',
'lbe': u' ',
'li': u'Euverlk help',
'lij': [u'Discscion agitto', u'Discussioni aiuto'],
'lmo': [u'Ciciarada Jt', u'Discussioni aiuto'],
'ln': u'Discussion aide',
'lo': u'',
'lt': u'Pagalbos aptarimas',
'lv': u'Paldzbas diskusija',
'map-bms': u'Dhiskusi Pitulung',
'mdf': u' ',
'mg': [u'Dinika amin\'ny fanoroana', u'Discussion Aide'],
'mhr': [u' ', u' '],
'mk': u' ',
'ml': [u' ', u''],
'mn': u' ',
'mr': [u' ', u' '],
'ms': u'Perbincangan Bantuan',
'mt': [u'Diskussjoni gajnuna', u'Diskussjoni ghajnuna'],
'mwl': u'Cumbersa ajuda',
'myv': u' ',
'mzn': [u' ', u' ', u' '],
'nah': [u'Tpalhuiliztli tixnmiquiliztli',
u'Ayuda Discusin'],
'nap': [u'Ajto chicchiera', u'Discussioni aiuto'],
'nds': u'Hlp Diskuschoon',
'nds-nl': u'Overleg hulpe',
'new': u' ',
'nl': u'Overleg help',
'nn': u'Hjelpdiskusjon',
'no': u'Hjelpdiskusjon',
'nv': u'Anlwo baa yshti',
'oc': u'Discussion Ajuda',
'os': u' ',
'pa': u' ',
'pcd': u'Discussion aide',
'pdc': u'Hilfe Diskussion',
'pl': u'Dyskusja pomocy',
'pms': u"Discussion ant sl'agiut",
'pnt': u' ',
'ps': u' ',
'pt': u'Ajuda Discusso',
'qu': u'Yanapa rimanakuy',
'rm': u'Agid discussiun',
'rmy': [u'Zhutipen vakyarimata', u'Discuie Ajutor'],
'ro': u'Discuie Ajutor',
'ru': u' ',
'sa': u'',
'sah': u' ',
'sc': u'Cuntierra agiudu',
'scn': u'Discussioni aiutu',
'sd': u' ',
'sg': u'Discussion aide',
'si': [u' ', u' '],
'sk': u'Diskusia k pomoci',
'sl': u'Pogovor o pomoi',
'sq': u'Ndihm diskutim',
'sr': u' ',
'srn': [u'Taki fu yepi', u'Overleg help'],
'stq': u'Hlpe Diskussion',
'su': u'Obrolan pitulung',
'sv': u'Hjlpdiskussion',
'sw': u'Majadiliano ya msaada',
'szl': u'Dyskusja pomocy',
'ta': u' ',
'te': [u' ', u' '],
'tet': u'Diskusaun Ajuda',
'tg': u' ',
'th': u'',
'tk': u'ardam ekime',
'tl': u'Usapang tulong',
'tlh': u"QaH ja'chuq",
'tr': u'Yardm tartma',
'tt': [u' ', u'Yrdm bxse'],
'ty': u'Discussion aide',
'udm': u' ',
'uk': u' ',
'ur': u' ',
'uz': u'Yordam munozarasi',
'vec': u'Discussion ajuto',
'vi': u'Tho lun Tr gip',
'vls': u'Discuusje ulpe',
'vo': u'Yufibespik',
'wa': u'Aidance copene',
'wo': [u'Waxtaani ndimbal', u'Discussion Aide'],
'wuu': u'',
'xal': [u' ', u' '],
'yi': u' ',
'yo': u'r rnlw',
'za': u'',
'zea': u'Overleg ulpe',
'zh': [u'Help talk', u'', u'', u'',
u''],
},
14: {
'_default': u'Category',
'ab': [u'', u''],
'ace':[u'Kawan', u'Kategori'],
'af': u'Kategorie',
'als': u'Kategorie',
'am': u'',
'an': u'Categora',
'ang': u'Flocc',
'ar': u'',
'arc': u'',
'arz': u'',
'as': [u'', u''],
'ast': u'Categora',
'av': u'',
'ay': u'Categora',
'az': u'Kateqoriya',
'ba': u'',
'bar': u'Kategorie',
'bat-smg': [u'Kateguorj', u'Kategorija'],
'bcl': u'Kategorya',
'be': u'',
'be-x-old': u'',
'bg': u'',
'bm': u'Catgorie',
'bn': u'',
'bpy': u'',
'br': u'Rummad',
'bs': u'Kategorija',
'bug': u'Kategori',
'ca': u'Categoria',
'cbk-zam': u'Categora',
'ce': u'',
'ceb': u'Kategoriya',
'ch': u'Katigoria',
'ckb': u'',
'crh': [u'Kategoriya', u''],
'cs': u'Kategorie',
'csb': u'Kategrj',
'cu': [u'', u''],
'cv': u'',
'cy': u'Categori',
'da': u'Kategori',
'de': u'Kategorie',
'dsb': u'Kategorija',
'dv': u'',
'el': u'',
'eml': u'Categoria',
'eo': u'Kategorio',
'es': u'Categora',
'et': u'Kategooria',
'eu': u'Kategoria',
'fa': u'',
'ff': u'Catgorie',
'fi': u'Luokka',
'fiu-vro': u'Katgooria',
'fo': u'Blkur',
'fr': u'Catgorie',
'frp': u'Catgorie',
'fur': u'Categorie',
'fy': u'Kategory',
'ga': [u'Catagir', u'Rang'],
'gan': u'Category',
'gl': u'Categora',
'glk': u'',
'gn': u'emohenda',
'gu': u'',
'gv': u'Ronney',
'haw': u'Mhele',
'he': u'',
'hi': u'',
'hr': u'Kategorija',
'hsb': u'Kategorija',
'ht': u'Kategori',
'hu': u'Kategria',
'hy': u'',
'ia': u'Categoria',
'id': u'Kategori',
'io': u'Kategorio',
'is': u'Flokkur',
'it': u'Categoria',
'ja': u'',
'jv': u'Kategori',
'ka': u'',
'kaa': u'Kategoriya',
'kab': u'Taggayt',
'kk': u'',
'kl': [u'Sumut atassuseq', u'Kategori'],
'km': [u'', u''],
'kn': u'',
'ko': u'',
'krc': u'',
'ksh': [u'Saachjrupp', u'Sachjrop', u'Saachjropp',
u'Kattejori', u'Kategorie', u'Katejori'],
'ku': u'Kategor',
'kv': u'',
'kw': [u'Klass', u'Class'],
'la': u'Categoria',
'lad': [u'Kateggora', u'Categora'],
'lb': u'Kategorie',
'lbe': u'',
'li': [u'Categorie', u'Kategorie'],
'lij': [u'Categora', u'Categoria'],
'lmo': [u'Categuria', u'Categoria'],
'ln': u'Catgorie',
'lo': u'',
'lt': u'Kategorija',
'lv': u'Kategorija',
'map-bms': [u'Kategori', u'Kategorija'],
'mdf': u'',
'mg': [u'Sokajy', u'Catgorie'],
'mhr': [u'', u''],
'mk': u'',
'ml': [u'', u'', u'', u''],
'mn': u'',
'mr': u'',
'ms': u'Kategori',
'mt': u'Kategorija',
'mwl': u'Catadorie',
'myv': u'',
'mzn': [u'', u''],
'nah': [u'Neneuhcytl', u'Categora'],
'nap': [u'Categura', u'Categoria'],
'nds': u'Kategorie',
'nds-nl': [u'Kattegerie', u'Categorie'],
'new': u'',
'nl': u'Categorie',
'nn': u'Kategori',
'no': u'Kategori',
'nv': u'Thgi tego',
'oc': u'Categoria',
'os': u'',
'pa': u'',
'pcd': u'Catgorie',
'pdc': u'Kategorie',
'pl': u'Kategoria',
'pms': u'Categora',
'pnt': u'',
'ps': u'',
'pt': u'Categoria',
'qu': u'Katiguriya',
'rm': u'Categoria',
'rmy': [u'Shopni', u'Categorie'],
'ro': u'Categorie',
'ru': u'',
'sa': u'',
'sah': u'',
'sc': u'Categoria',
'scn': u'Catigura',
'sd': u'',
'sg': u'Catgorie',
'sh': u'Kategorija',
'si': u'',
'sk': u'Kategria',
'sl': u'Kategorija',
'sq': [u'Kategoria', u'Kategori'],
'sr': u'',
'srn': [u'Guru', u'Categorie'],
'stq': u'Kategorie',
'su': u'Kategori',
'sv': u'Kategori',
'sw': u'Jamii',
'szl': u'Kategoria',
'ta': u'',
'te': u'',
'tet': u'Kategoria',
'tg': u'',
'th': u'',
'tk': u'Kategoria',
'tl': [u'Kaurian', u'Kategorya'],
'tlh': u'Segh',
'tr': u'Kategori',
'tt': [u'', u'Trkem'],
'ty': u'Catgorie',
'udm': u'',
'uk': u'',
'ur': u'',
'uz': [u'Turkum', u'Kategoriya'],
'vec': u'Categoria',
'vi': u'Th loi',
'vls': u'Categorie',
'vo': u'Klad',
'wa': u'Categoreye',
'wo': [u'Wll', u'Catgorie'],
'wuu': u'',
'xal': [u'', u''],
'yi': u'',
'yo': u'ka',
'za': u'',
'zea': u'Categorie',
'zh': [u'Category', u'', u''],
},
15: {
'_default': u'Category talk',
'ab': u' ',
'ace': [u'Marit Kawan', u'Pembicaraan Kategori',
u'Kategori Pembicaraan'],
'af': u'Kategoriebespreking',
'als': u'Kategorie Diskussion',
'am': u' ',
'an': u'Descusin categora',
'ang': u'Floccgesprec',
'ar': u' ',
'arc': u' ',
'arz': u' ',
'as': [u' ', u' '],
'ast': u'Categora alderique',
'av': u' ',
'ay': u'Categora Discusin',
'az': u'Kateqoriya mzakirsi',
'ba': u' - ',
'bar': u'Kategorie Diskussion',
'bat-smg': u'Kateguorjs aptarms',
'bcl': u'Olay sa kategorya',
'be': u' ',
'be-x-old': u' ',
'bg': u' ',
'bm': u'Discussion catgorie',
'bn': u' ',
'bpy': u' ',
'br': u'Kaozeadenn Rummad',
'bs': u'Razgovor o kategoriji',
'bug': u'Pembicaraan Kategori',
'ca': u'Categoria Discussi',
'cbk-zam': u'Categora Discusin',
'ce': u' ',
'ceb': u'Hisgot sa Kategoriya',
'ch': u'Kombetsasion ni katigoria',
'ckb': u' ',
'crh': [u'Kategoriya muzakeresi', u' '],
'cs': u'Diskuse ke kategorii',
'csb': u'Disksj Kategrji',
'cu': [u' ', u' ' ],
'cv': u' ',
'cy': u'Sgwrs Categori',
'da': u'Kategoridiskussion',
'de': u'Kategorie Diskussion',
'dsb': u'Diskusija w kategoriji',
'dv': u' ',
'el': u' ',
'eml': u'Discussioni categoria',
'eo': u'Kategoria diskuto',
'es': u'Categora Discusin',
'et': u'Kategooria arutelu',
'eu': u'Kategoria eztabaida',
'fa': u' ',
'ff': u'Discussion catgorie',
'fi': u'Keskustelu luokasta',
'fiu-vro': u'Katgooria arotus',
'fo': [u'Blkakjak', u'Blkur kjak'],
'fr': u'Discussion catgorie',
'frp': u'Discussion catgorie',
'fur': u'Discussion categorie',
'fy': u'Kategory oerlis',
'ga': u'Pl catagire',
'gan': u'Category talk',
'gl': [u'Conversa categora', u'Conversa Categora'],
'glk': u' ',
'gn': u'emohenda myangeki',
'gu': u' ',
'gv': u'Resooney ronney',
'haw': u'Kkkk o mhele',
'he': u' ',
'hi': u' ',
'hr': u'Razgovor o kategoriji',
'hsb': u'Diskusija ke kategoriji',
'ht': u'Diskisyon Kategori',
'hu': u'Kategriavita',
'hy': u' ',
'ia': u'Discussion Categoria',
'id': u'Pembicaraan Kategori',
'io': u'Kategorio Debato',
'is': u'Flokkaspjall',
'it': u'Discussioni categoria',
'ja': u'',
'jv': u'Dhiskusi Kategori',
'ka': [u' ', u' '],
'kaa': u"Kategoriya sa'wbeti",
'kab': u'Amyannan n taggayt',
'kk': u' ',
'kl': [u'Sumut atassusermi oqallinneq', u'Kategoridiskussion'],
'km': [u'',
u''],
'kn': u' ',
'ko': u'',
'krc': u' ',
'ksh': [u'Saachjruppe Klaaf', u'Saachjrupp Klaaf',
u'Sachjrop Klaaf', u'Saachjroppe Klaaf',
u'Kattejori Klaaf', u'Kategorie Klaaf',
u'Katejorije Klaaf'],
'ku': u'Kategor nqa',
'kv': u' ',
'kw': [u'Keskows Klass', u'Kescows Class', u'Cows Class'],
'la': u'Disputatio Categoriae',
'lad': [u'Diskussin de Kateggora', u'Categora_Discusin'],
'lb': u'Kategorie Diskussioun',
'lbe': u' ',
'li': [u'Euverlk categorie', u'Euverlk kategorie'],
'lij': [u'Discscion categora', u'Discussioni categoria'],
'lmo': [u'Ciciarada Categuria', u'Discussioni categoria'],
'ln': u'Discussion catgorie',
'lo': u'',
'lt': u'Kategorijos aptarimas',
'lv': u'Kategorijas diskusija',
'map-bms': u'Dhiskusi Kategori',
'mdf': u' ',
'mg': [u'Dinika amin\'ny sokajy', u'Dinika amini\'ny sokajy',
u'Discussion Catgorie'],
'mhr': [u' ', u' '],
'mk': u' ',
'ml': [u' ', u'',
u' ', u'_'],
'mn': u' ',
'mr': u' ',
'ms': u'Perbincangan Kategori',
'mt': u'Diskussjoni kategorija',
'mwl': u'Cumbersa catadorie',
'myv': u' ',
'mzn': [u' ', u' '],
'nah': [u'Neneuhcytl tixnmiquiliztli',
u'Categora Discusin'],
'nap': [u'Categura chicchiera', u'Discussioni categoria'],
'nds': u'Kategorie Diskuschoon',
'nds-nl': [u'Overleg kattegerie', u'Overleg categorie'],
'new': u' ',
'nl': u'Overleg categorie',
'nn': u'Kategoridiskusjon',
'no': u'Kategoridiskusjon',
'nv': u'Thgi tego baa yshti',
'oc': u'Discussion Categoria',
'os': u' ',
'pa': u' ',
'pcd': u'Discussion catgorie',
'pdc': u'Kategorie Diskussion',
'pl': u'Dyskusja kategorii',
'pms': u'Discussion ant sla categora',
'pnt': u' ',
'ps': u' ',
'pt': u'Categoria Discusso',
'qu': u'Katiguriya rimanakuy',
'rm': u'Categoria discussiun',
'rmy': [u'Shopni vakyarimata', u'Discuie Categorie'],
'ro': u'Discuie Categorie',
'ru': u' ',
'sa': u'',
'sah': u' ',
'sc': u'Cuntierra categoria',
'scn': u'Discussioni catigura',
'sd': u' ',
'sg': u'Discussion catgorie',
'sh': u'Razgovor o kategoriji',
'si': u' ',
'sk': u'Diskusia ku kategrii',
'sl': u'Pogovor o kategoriji',
'sq': [u'Kategoria diskutim', u'Kategori Diskutim'],
'sr': u' ',
'srn': [u'Taki fu guru', u'Overleg categorie'],
'stq': u'Kategorie Diskussion',
'su': u'Obrolan kategori',
'sv': u'Kategoridiskussion',
'sw': u'Majadiliano ya jamii',
'szl': u'Dyskusja kategorii',
'ta': u' ',
'te': u' ',
'tet': u'Diskusaun Kategoria',
'tg': u' ',
'th': u'',
'tk': u'Kategoria ekime',
'tl': [u'Usapang kaurian', u'Usapang kategorya'],
'tlh': u"Segh ja'chuq",
'tr': u'Kategori tartma',
'tt': [u' ', u'Trkem bxse'],
'ty': u'Discussion catgorie',
'udm': u' ',
'uk': u' ',
'ur': u' ',
'uz': u'Turkum munozarasi',
'vec': u'Discussion categoria',
'vi': u'Tho lun Th loi',
'vls': u'Discuusje categorie',
'vo': u'Kladibespik',
'wa': u'Categoreye copene',
'wo': [u'Waxtaani wll', u'Discussion Catgorie'],
'wuu': u'',
'xal': [u' ', u'__'],
'yi': u' ',
'yo': u'r ka',
'za': u'',
'zea': u'Overleg categorie',
'zh': [u'Category talk', u'', u'', u'',
u''],
},
}
# letters that can follow a wikilink and are regarded as part of
# this link
# This depends on the linktrail setting in LanguageXx.php and on
# [[MediaWiki:Linktrail]].
# Note: this is a regular expression.
self.linktrails = {
'_default': u'[a-z]*',
'de': u'[a-z]*',
'da': u'[a-z]*',
'fi': u'[a-z]*',
'fr': u'[a-z]*',
'he': u'[a-z-]*',
'hu': u'[a-z]*',
'it': u'[a-z]*',
'kk': u'[a-z-]*',
'ksh': u'[a-z]*',
'nl': u'[a-z]*',
'pt': u'[a-z]*',
'ru': u'[a-z-]*',
}
# Wikimedia wikis all use "bodyContent" as the id of the <div>
# element that contains the actual page content; change this for
# wikis that use something else (e.g., mozilla family)
self.content_id = "bodyContent"
# A dictionary where keys are family codes that can be used in
# inter-family interwiki links. Values are not used yet.
# Generated from http://toolserver.org/~daniel/interwiki-en.txt:
# remove interlanguage links from file, then run
# f = open('interwiki-en.txt')
# for line in f.readlines():
# s = line[:line.index('\t')]
# print ((" '%s':" % s).ljust(20) + ("'%s'," % s))
# TODO: replace this with API interwikimap call
self.known_families = {
'abbenormal': 'abbenormal',
'aboutccc': 'aboutccc',
'acadwiki': 'acadwiki',
'acronym': 'acronym',
'advogato': 'advogato',
'airwarfare': 'airwarfare',
'aiwiki': 'aiwiki',
'ajaxxab': 'ajaxxab',
'alife': 'alife',
'allwiki': 'allwiki',
'annotation': 'annotation',
'annotationwiki': 'annotationwiki',
'archivecompress': 'archivecompress',
'archivestream': 'archivestream',
'arxiv': 'arxiv',
'aspienetwiki': 'aspienetwiki',
'atmwiki': 'atmwiki',
'b': 'wikibooks',
'battlestarwiki': 'battlestarwiki',
'bemi': 'bemi',
'benefitswiki': 'benefitswiki',
'biblewiki': 'biblewiki',
'bluwiki': 'bluwiki',
'bmpcn': 'bmpcn',
'boxrec': 'boxrec',
'brasilwiki': 'brasilwiki',
'brazilwiki': 'brazilwiki',
'brickwiki': 'brickwiki',
'bridgeswiki': 'bridgeswiki',
'bryanskpedia': 'bryanskpedia',
'bswiki': 'bswiki',
'bugzilla': 'bugzilla',
'buzztard': 'buzztard',
'bytesmiths': 'bytesmiths',
'c2': 'c2',
'c2find': 'c2find',
'cache': 'cache',
'canyonwiki': 'canyonwiki',
'canwiki': 'canwiki',
'ej': 'ej',
'cellwiki': 'cellwiki',
'changemakers': 'changemakers',
'chapter': 'chapter',
'cheatswiki': 'cheatswiki',
'chej': 'chej',
'ciscavate': 'ciscavate',
'cityhall': 'cityhall',
'ckwiss': 'ckwiss',
'cliki': 'cliki',
'cmwiki': 'cmwiki',
'cndbname': 'cndbname',
'cndbtitle': 'cndbtitle',
'codersbase': 'codersbase',
'colab': 'colab',
'comixpedia': 'comixpedia',
'commons': 'commons',
'communityscheme': 'communityscheme',
'consciousness': 'consciousness',
'corpknowpedia': 'corpknowpedia',
'cpanelwiki': 'cpanelwiki',
'choralwiki': 'choralwiki',
'craftedbycarol': 'craftedbycarol',
'crazyhacks': 'crazyhacks',
'creationmatters': 'creationmatters',
'creatureswiki': 'creatureswiki',
'cxej': 'cxej',
'dawiki': 'dawiki',
'dcdatabase': 'dcdatabase',
'dcma': 'dcma',
'dejanews': 'dejanews',
'delicious': 'delicious',
'demokraatia': 'demokraatia',
'devmo': 'devmo',
'dictionary': 'dictionary',
'dict': 'dict',
'disinfopedia': 'disinfopedia',
'diveintoosx': 'diveintoosx',
'dndwiki': 'dndwiki',
'docbook': 'docbook',
'dolphinwiki': 'dolphinwiki',
'doom_wiki': 'doom_wiki',
'drae': 'drae',
'drumcorpswiki': 'drumcorpswiki',
'dwellerswiki': 'dwellerswiki',
'dwjwiki': 'dwjwiki',
'ebwiki': 'ebwiki',
'eei': 'eei',
'echei': 'echei',
'echolink': 'echolink',
'ecoreality': 'ecoreality',
'ecxei': 'ecxei',
'editcount': 'editcount',
'efnetceewiki': 'efnetceewiki',
'efnetcppwiki': 'efnetcppwiki',
'efnetpythonwiki': 'efnetpythonwiki',
'efnetxmlwiki': 'efnetxmlwiki',
'elibre': 'elibre',
'eljwiki': 'eljwiki',
'emacswiki': 'emacswiki',
'encyclopediadramatica':'encyclopediadramatica',
'energiewiki': 'energiewiki',
'eokulturcentro': 'eokulturcentro',
'evowiki': 'evowiki',
'fanimutationwiki': 'fanimutationwiki',
'finalempire': 'finalempire',
'finalfantasy': 'finalfantasy',
'finnix': 'finnix',
'firstwiki': 'firstwiki',
'flickruser': 'flickruser',
'floralwiki': 'floralwiki',
'foldoc': 'foldoc',
'forthfreak': 'forthfreak',
'foundation': 'foundation',
'foxwiki': 'foxwiki',
'freebio': 'freebio',
'freebsdman': 'freebsdman',
'freeculturewiki': 'freeculturewiki',
'freefeel': 'freefeel',
'freekiwiki': 'freekiwiki',
'gamewiki': 'gamewiki',
'ganfyd': 'ganfyd',
'gatorpedia': 'gatorpedia',
'gausswiki': 'gausswiki',
'gentoo-wiki': 'gentoo',
'genwiki': 'genwiki',
'glencookwiki': 'glencookwiki',
'globalvoices': 'globalvoices',
'glossarwiki': 'glossarwiki',
'glossarywiki': 'glossarywiki',
'golem': 'golem',
'google': 'google',
'googlegroups': 'googlegroups',
'gotamac': 'gotamac',
'greencheese': 'greencheese',
'guildwiki': 'guildwiki',
'h2wiki': 'h2wiki',
'hammondwiki': 'hammondwiki',
'haribeau': 'haribeau',
'herzkinderwiki': 'herzkinderwiki',
'hewikisource': 'hewikisource',
'hkmule': 'hkmule',
'holshamtraders': 'holshamtraders',
'hrwiki': 'hrwiki',
'hrfwiki': 'hrfwiki',
'humancell': 'humancell',
'hupwiki': 'hupwiki',
'iawiki': 'iawiki',
'imdbname': 'imdbname',
'imdbtitle': 'imdbtitle',
'infoanarchy': 'infoanarchy',
'infobase': 'infobase',
'infosecpedia': 'infosecpedia',
'iso639-3': 'iso639-3',
'iuridictum': 'iuridictum',
'jameshoward': 'jameshoward',
'jargonfile': 'jargonfile',
'javanet': 'javanet',
'javapedia': 'javapedia',
'jefo': 'jefo',
'jiniwiki': 'jiniwiki',
'jspwiki': 'jspwiki',
'jstor': 'jstor',
'kamelo': 'kamelo',
'karlsruhe': 'karlsruhe',
'kerimwiki': 'kerimwiki',
'kinowiki': 'kinowiki',
'kmwiki': 'kmwiki',
'knowhow': 'knowhow',
'kontuwiki': 'kontuwiki',
'koslarwiki': 'koslarwiki',
'lanifexwiki': 'lanifexwiki',
'linuxwiki': 'linuxwiki',
'linuxwikide': 'linuxwikide',
'liswiki': 'liswiki',
'lojban': 'lojban',
'lollerpedia': 'lollerpedia',
'lovebox': 'lovebox',
'lqwiki': 'lqwiki',
'lugkr': 'lugkr',
'lurkwiki': 'lurkwiki',
'lutherwiki': 'lutherwiki',
'lvwiki': 'lvwiki',
'm': 'meta',
'm-w': 'm-w',
'mail': 'mail',
'marveldatabase': 'marveldatabase',
'mathsongswiki': 'mathsongswiki',
'mbtest': 'mbtest',
'meatball': 'meatball',
'mediazilla': 'mediazilla',
'memoryalpha': 'memoryalpha',
'meta': 'meta',
'metareciclagem': 'metareciclagem',
'metaweb': 'metaweb',
'metawiki': 'metawiki',
'metawikipedia': 'metawikipedia',
'mineralienatlas': 'mineralienatlas',
'mjoo': 'mjoo',
'moinmoin': 'moinmoin',
'mozcom': 'mozcom',
'mozillawiki': 'mozillawiki',
'mozillazinekb': 'mozillazinekb',
'mozwiki': 'mozwiki',
'musicbrainz': 'musicbrainz',
'muweb': 'muweb',
'mw': 'mw',
'mwod': 'mwod',
'mwot': 'mwot',
'myspace': 'myspace',
'mytips': 'mytips',
'n': 'wikinews',
'netvillage': 'netvillage',
'nkcells': 'nkcells',
'nomad': 'nomad',
'nosmoke': 'nosmoke',
'nost': 'nost',
'nswiki': 'nswiki',
'oeis': 'oeis',
'oldwikisource': 'oldwikisource',
'onelook': 'onelook',
'ourpeachtreecorners':'ourpeachtreecorners',
'openfacts': 'openfacts',
'opensourcesportsdirectory':'opensourcesportsdirectory',
'openwetware': 'openwetware',
'openwiki': 'openwiki',
'opera7wiki': 'opera7wiki',
'organicdesign': 'organicdesign',
'orgpatterns': 'orgpatterns',
'orthodoxwiki': 'orthodoxwiki',
'osi reference model':'osi reference model',
'ourmedia': 'ourmedia',
'paganwiki': 'paganwiki',
'panawiki': 'panawiki',
'pangalacticorg': 'pangalacticorg',
'patwiki': 'patwiki',
'perlconfwiki': 'perlconfwiki',
'perlnet': 'perlnet',
'personaltelco': 'personaltelco',
'phwiki': 'phwiki',
'phpwiki': 'phpwiki',
'pikie': 'pikie',
'planetmath': 'planetmath',
'pmeg': 'pmeg',
'pmwiki': 'pmwiki',
'purlnet': 'purlnet',
'pythoninfo': 'pythoninfo',
'pythonwiki': 'pythonwiki',
'pywiki': 'pywiki',
'psycle': 'psycle',
'q': 'wikiquote',
'quakewiki': 'quakewiki',
'qwiki': 'qwiki',
'r3000': 'r3000',
'rakwiki': 'rakwiki',
'raec': 'raec',
'redwiki': 'redwiki',
'revo': 'revo',
'rfc': 'rfc',
'rheinneckar': 'rheinneckar',
'robowiki': 'robowiki',
'rowiki': 'rowiki',
'rtfm': 'rtfm',
's': 'wikisource',
's23wiki': 's23wiki',
'scoutpedia': 'scoutpedia',
'seapig': 'seapig',
'seattlewiki': 'seattlewiki',
'seattlewireless': 'seattlewireless',
'seeds': 'seeds',
'senseislibrary': 'senseislibrary',
'sep11': 'sep11',
'shakti': 'shakti',
'shownotes': 'shownotes',
'siliconvalley': 'siliconvalley',
'slashdot': 'slashdot',
'slskrex': 'slskrex',
'smikipedia': 'smikipedia',
'sockwiki': 'sockwiki',
'sourceforge': 'sourceforge',
'sourcextreme': 'sourcextreme',
'squeak': 'squeak',
'strategy': 'strategy',
'stockphotoss': 'stockphotoss',
'strikiwiki': 'strikiwiki',
'susning': 'susning',
'svgwiki': 'svgwiki',
'swinbrain': 'swinbrain',
'swingwiki': 'swingwiki',
'tabwiki': 'tabwiki',
'takipedia': 'takipedia',
'tamriel': 'tamriel',
'tavi': 'tavi',
'tclerswiki': 'tclerswiki',
'technorati': 'technorati',
'tejo': 'tejo',
'terrorwiki': 'terrorwiki',
'tesoltaiwan': 'tesoltaiwan',
'thelemapedia': 'thelemapedia',
'theo': 'theo',
'theopedia': 'theopedia',
'theowiki': 'theowiki',
'theppn': 'theppn',
'thinkwiki': 'thinkwiki',
'tibiawiki': 'tibiawiki',
'tmbw': 'tmbw',
'tmnet': 'tmnet',
'tmwiki': 'tmwiki',
'toyah': 'toyah',
'trash!italia': 'trash!italia',
'turismo': 'turismo',
'tviv': 'tviv',
'twiki': 'twiki',
'twistedwiki': 'twistedwiki',
'tyvawiki': 'tyvawiki',
'uncyclopedia': 'uncyclopedia',
'underverse': 'underverse',
'unreal': 'unreal',
'ursine': 'ursine',
'usej': 'usej',
'usemod': 'usemod',
'v': 'wikiversity',
'videoville': 'videoville',
'villagearts': 'villagearts',
'visualworks': 'visualworks',
'vkol': 'vkol',
'voipinfo': 'voipinfo',
'w': 'wikipedia',
'warpedview': 'warpedview',
'webdevwikinl': 'webdevwikinl',
'webisodes': 'webisodes',
'webseitzwiki': 'webseitzwiki',
'wiki': 'wiki',
'wikia': 'wikia',
'wikianso': 'wikianso',
'wikibooks': 'wikibooks',
'wikichristian': 'wikichristian',
'wikicities': 'wikicities',
'wikif1': 'wikif1',
'wikifur': 'wikifur',
'wikikto': 'wikikto',
'wikimac-de': 'wikimac-de',
'wikimac-fr': 'wikimac-fr',
'wikimedia': 'wikimedia',
'wikinews': 'wikinews',
'wikinfo': 'wikinfo',
'wikinurse': 'wikinurse',
'wikipaltz': 'wikipaltz',
'wikipedia': 'wikipedia',
'wikipediawikipedia':'wikipediawikipedia',
'wikiquote': 'wikiquote',
'wikireason': 'wikireason',
'wikisophia': 'wikisophia',
'wikisource': 'wikisource',
'wikiscripts': 'wikiscripts',
'wikispecies': 'wikispecies',
'wikiti': 'wikiti',
'wikitravel': 'wikitravel',
'wikitree': 'wikitree',
'wikiveg': 'wikiveg',
'wikiversity': 'wikiversity',
'wikiwikiweb': 'wikiwikiweb',
'wikiworld': 'wikiworld',
'wikt': 'wiktionary',
'wiktionary': 'wiktionary',
'wipipedia': 'wipipedia',
'wlug': 'wlug',
'wlwiki': 'wlwiki',
'wmania': 'wmania',
'wookieepedia': 'wookieepedia',
'world66': 'world66',
'wowwiki': 'wowwiki',
'wqy': 'wqy',
'wurmpedia': 'wurmpedia',
'wznan': 'wznan',
'xboxic': 'xboxic',
'ypsieyeball': 'ypsieyeball',
'zrhwiki': 'zrhwiki',
'zum': 'zum',
'zwiki': 'zwiki',
'zzz wiki': 'zzz wiki',
}
# A list of category redirect template names in different languages
# Note: It *is* necessary to list template redirects here
self.category_redirect_templates = {
'_default': []
}
# A list of disambiguation template names in different languages
self.disambiguationTemplates = {
'_default': []
}
# A list of projects that share cross-project sessions.
self.cross_projects = []
# A list with the name for cross-project cookies.
# default for wikimedia centralAuth extensions.
self.cross_projects_cookies = ['centralauth_Session',
'centralauth_Token',
'centralauth_User']
self.cross_projects_cookie_username = 'centralauth_User'
# A list with the name in the cross-language flag permissions
self.cross_allowed = []
# A list with the name of the category containing disambiguation
# pages for the various languages. Only one category per language,
# and without the namespace, so add things like:
# 'en': "Disambiguation"
self.disambcatname = {}
# On most wikis page names must start with a capital letter, but some
# languages don't use this.
self.nocapitalize = []
# attop is a list of languages that prefer to have the interwiki
# links at the top of the page.
self.interwiki_attop = []
# on_one_line is a list of languages that want the interwiki links
# one-after-another on a single line
self.interwiki_on_one_line = []
# String used as separator between interwiki links and the text
self.interwiki_text_separator = '\r\n\r\n'
# Similar for category
self.category_attop = []
# on_one_line is a list of languages that want the category links
# one-after-another on a single line
self.category_on_one_line = []
# String used as separator between category links and the text
self.category_text_separator = '\r\n\r\n'
# When both at the bottom should categories come after interwikilinks?
self.categories_last = []
# Which languages have a special order for putting interlanguage
# links, and what order is it? If a language is not in
# interwiki_putfirst, alphabetical order on language code is used.
# For languages that are in interwiki_putfirst, interwiki_putfirst
# is checked first, and languages are put in the order given there.
# All other languages are put after those, in code-alphabetical
# order.
self.interwiki_putfirst = {}
# Languages in interwiki_putfirst_doubled should have a number plus
# a list of languages. If there are at least the number of interwiki
# links, all languages in the list should be placed at the front as
# well as in the normal list.
self.interwiki_putfirst_doubled = {} # THIS APPEARS TO BE UNUSED!
# Some families, e. g. commons and meta, are not multilingual and
# forward interlanguage links to another family (wikipedia).
# These families can set this variable to the name of the target
# family.
self.interwiki_forward = None
# Which language codes no longer exist and by which language code
# should they be replaced. If for example the language with code xx:
# now should get code yy:, add {'xx':'yy'} to obsolete. If all
# links to language xx: should be removed, add {'xx': None}.
self.obsolete = {}
# Language codes of the largest wikis. They should be roughly sorted
# by size.
self.languages_by_size = []
# Some languages belong to a group where the possibility is high that
# equivalent articles have identical titles among the group.
self.language_groups = {
# languages using the arabic script (incomplete)
'arab' : [
'ar', 'arz', 'ps', 'sd', 'ur', 'ckb',
# languages using multiple scripts, including arabic
'kk', 'ku', 'tt', 'ug', 'pnb'
],
# languages that use chinese symbols
'chinese': [
'wuu', 'zh', 'zh-classical', 'zh-yue', 'gan', 'ii',
# languages using multiple/mixed scripts, including chinese
'ja', 'za'
],
# languages that use the cyrillic alphabet
'cyril': [
'ab', 'av', 'ba', 'be', 'be-x-old', 'bg', 'bxr', 'ce', 'cu',
'cv', 'kv', 'ky', 'mk', 'lbe', 'mdf', 'mn', 'mo', 'myv', 'os',
'ru', 'sah', 'tg', 'tk', 'udm', 'uk', 'xal', 'mhr',
# languages using multiple scripts, including cyrillic
'ha', 'kk', 'sh', 'sr', 'tt'
],
# languages that use a greek script
'grec': [
'el', 'grc', 'pnt'
# languages using multiple scripts, including greek
],
# languages that use the latin alphabet
'latin': [
'aa', 'ace', 'af', 'ak', 'als', 'an', 'ang', 'ast', 'ay', 'bar',
'bat-smg', 'bcl', 'bi', 'bm', 'br', 'bs', 'ca', 'cbk-zam',
'cdo', 'ceb', 'ch', 'cho', 'chy', 'co', 'crh', 'cs', 'csb',
'cy', 'da', 'de', 'diq', 'dsb', 'ee', 'eml', 'en', 'eo', 'es',
'et', 'eu', 'ext', 'ff', 'fi', 'fiu-vro', 'fj', 'fo', 'fr',
'frp', 'fur', 'fy', 'ga', 'gd', 'gl', 'gn', 'gv', 'hak', 'haw',
'hif', 'ho', 'hr', 'hsb', 'ht', 'hu', 'hz', 'ia', 'id', 'ie',
'ig', 'ik', 'ilo', 'io', 'is', 'it', 'jbo', 'jv', 'kaa', 'kab',
'kg', 'ki', 'kj', 'kl', 'kr', 'ksh', 'kw', 'la', 'lad', 'lb',
'lg', 'li', 'lij', 'lmo', 'ln', 'lt', 'lv', 'map-bms', 'mg',
'mh', 'mi', 'ms', 'mt', 'mus', 'mwl', 'na', 'nah', 'nap', 'nds',
'nds-nl', 'ng', 'nl', 'nn', 'no', 'nov', 'nrm', 'nv', 'ny',
'oc', 'om', 'pag', 'pam', 'pap', 'pcd', 'pdc', 'pih', 'pl',
'pms', 'pt', 'qu', 'rm', 'rn', 'ro', 'roa-rup', 'roa-tara',
'rw', 'sc', 'scn', 'sco', 'se', 'sg', 'simple', 'sk', 'sl',
'sm', 'sn', 'so', 'sq', 'srn', 'ss', 'st', 'stq', 'su', 'sv',
'sw', 'szl', 'tet', 'tl', 'tn', 'to', 'tpi', 'tr', 'ts', 'tum',
'tw', 'ty', 'uz', 've', 'vec', 'vi', 'vls', 'vo', 'wa', 'war',
'wo', 'xh', 'yo', 'zea', 'zh-min-nan', 'zu',
# languages using multiple scripts, including latin
'az', 'chr', 'ckb', 'ha', 'iu', 'kk', 'ku', 'rmy', 'sh', 'sr',
'tt', 'ug', 'za'
],
# Scandinavian languages
'scand': [
'da', 'fo', 'is', 'nb', 'nn', 'no', 'sv'
],
}
# LDAP domain if your wiki uses LDAP authentication,
# http://www.mediawiki.org/wiki/Extension:LDAP_Authentication
self.ldapDomain = ()
# Allows crossnamespace interwiki linking.
# Lists the possible crossnamespaces combinations
# keys are originating NS
# values are dicts where:
# keys are the originating langcode, or _default
# values are dicts where:
# keys are the languages that can be linked to from the lang+ns, or
# '_default'; values are a list of namespace numbers
self.crossnamespace = {}
##
## Examples :
## Allowing linking to pt' 102 NS from any other lang' 0 NS is
# self.crossnamespace[0] = {
# '_default': { 'pt': [102]}
# }
## While allowing linking from pt' 102 NS to any other lang' = NS is
# self.crossnamespace[102] = {
# 'pt': { '_default': [0]}
# }
def _addlang(self, code, location, namespaces = {}):
"""Add a new language to the langs and namespaces of the family.
This is supposed to be called in the constructor of the family."""
self.langs[code] = location
for num, val in namespaces.iteritems():
self.namespaces[num][code]=val
def get_known_families(self, site):
return self.known_families
def linktrail(self, code, fallback = '_default'):
if code in self.linktrails:
return self.linktrails[code]
elif fallback:
return self.linktrails[fallback]
else:
raise KeyError(
"ERROR: linktrail in language %s unknown"
% code)
def namespace(self, code, ns_number, fallback = '_default', all = False):
if not self.isDefinedNS(ns_number):
raise KeyError('ERROR: Unknown namespace %d for %s:%s' % (ns_number, code, self.name))
elif self.isNsI18N(ns_number, code):
v = self.namespaces[ns_number][code]
if type(v) is not list:
v = [v,]
if all and self.isNsI18N(ns_number, fallback):
v2 = self.namespaces[ns_number][fallback]
if type(v2) is list:
v.extend(v2)
else:
v.append(v2)
elif fallback and self.isNsI18N(ns_number, fallback):
v = self.namespaces[ns_number][fallback]
if type(v) is not list:
v = [v,]
else:
raise KeyError('ERROR: title for namespace %d in language %s unknown' % (ns_number, code))
if all:
namespaces = []
# Unique list
for ns in v:
if ns not in namespaces:
namespaces.append(ns)
# Lowercase versions of namespaces
if code not in self.nocapitalize:
namespaces.extend([ns[0].lower() + ns[1:] for ns in namespaces if ns and ns[0].lower() != ns[0].upper()])
# Underscore versions of namespaces
namespaces.extend([ns.replace(' ', '_') for ns in namespaces if ns and ' ' in ns])
return tuple(namespaces)
else:
return v[0]
def isDefinedNS(self, ns_number):
"""Return True if the namespace has been defined in this family.
"""
return ns_number in self.namespaces
def isNsI18N(self, ns_number, code):
"""Return True if the namespace has been internationalized.
(it has a custom entry for a given language)"""
return code in self.namespaces[ns_number]
def isDefinedNSLanguage(self, ns_number, code, fallback='_default'):
"""Return True if the namespace has been defined in this family
for this language or its fallback.
"""
if not self.isDefinedNS(ns_number):
return False
elif self.isNsI18N(ns_number, code):
return True
elif fallback and self.isNsI18N(ns_number, fallback):
return True
else:
return False
def normalizeNamespace(self, code, value):
"""Given a value, attempt to match it with all available namespaces,
with default and localized versions. Sites may have more than one
way to write the same namespace - choose the first one in the list.
If nothing can be normalized, return the original value.
"""
for ns, localized_ns in self.namespaces.iteritems():
if code in localized_ns:
valid = localized_ns[code]
if isinstance(valid, basestring):
valid = [valid]
else:
valid = valid[:]
else:
valid = []
if '_default' in localized_ns:
default = localized_ns['_default']
if isinstance(default, basestring):
default = [default]
if default:
valid.extend(default)
if not valid:
continue
if value in valid:
return self.namespace(code, ns)
return value
def getNamespaceIndex(self, lang, namespace):
"""Given a namespace, attempt to match it with all available
namespaces. Sites may have more than one way to write the same
namespace - choose the first one in the list. Returns namespace
index or None.
"""
namespace = namespace.lower()
for n in self.namespaces.keys():
try:
nslist = self.namespaces[n][lang]
if type(nslist) is not list:
nslist = [nslist]
for ns in nslist:
if ns.lower() == namespace:
return n
except (KeyError,AttributeError):
# The namespace has no localized name defined
pass
if lang != '_default':
# This is not a localized namespace. Try if it
# is a default (English) namespace.
return self.getNamespaceIndex('_default', namespace)
else:
# give up
return None
def category_redirects(self, code, fallback="_default"):
if code in self.category_redirect_templates:
return self.category_redirect_templates[code]
elif fallback:
return self.category_redirect_templates[fallback]
else:
raise KeyError(
"ERROR: title for category redirect template in language '%s' unknown"
% code)
def disambig(self, code, fallback = '_default'):
if code in self.disambiguationTemplates:
return self.disambiguationTemplates[code]
elif fallback:
return self.disambiguationTemplates[fallback]
else:
raise KeyError(
"ERROR: title for disambig template in language %s unknown"
% code)
# Returns the title of the special namespace in language 'code', taken from
# dictionary above.
# If the dictionary doesn't contain a translation, it will use language
# 'fallback' (or, if fallback isn't given, MediaWiki default).
# If you want the bot to crash in case of an unknown namespace name, use
# fallback = None.
def special_namespace(self, code, fallback = '_default'):
return self.namespace(code, -1, fallback)
def special_namespace_url(self, code, fallback = '_default'):
encoded_title = self.namespace(code, -1, fallback).encode(self.code2encoding(code))
return urllib.quote(encoded_title)
def image_namespace(self, code, fallback = '_default'):
return self.namespace(code, 6, fallback)
def image_namespace_url(self, code, fallback = '_default'):
encoded_title = self.namespace(code, 6, fallback).encode(self.code2encoding(code))
return urllib.quote(encoded_title)
def mediawiki_namespace(self, code, fallback = '_default'):
return self.namespace(code, 8, fallback)
def template_namespace(self, code, fallback = '_default'):
return self.namespace(code, 10, fallback)
def category_namespace(self, code, fallback = '_default'):
return self.namespace(code, 14, fallback)
def category_namespaces(self, code):
return self.namespace(code, 14, all = True)
# Methods
def protocol(self, code):
"""
Can be overridden to return 'https'.
Other protocols are not supported.
"""
return 'http'
def hostname(self, code):
"""The hostname to use for standard http connections."""
return self.langs[code]
def scriptpath(self, code):
"""The prefix used to locate scripts on this wiki.
This is the value displayed when you enter {{SCRIPTPATH}} on a
wiki page (often displayed at [[Help:Variables]] if the wiki has
copied the master help page correctly).
The default value is the one used on Wikimedia Foundation wikis,
but needs to be overridden in the family file for any wiki that
uses a different value.
"""
return '/w'
def path(self, code):
return '%s/index.php' % self.scriptpath(code)
def querypath(self, code):
return '%s/query.php' % self.scriptpath(code)
def apipath(self, code):
return '%s/api.php' % self.scriptpath(code)
def nicepath(self, code):
return '/wiki/'
def dbName(self, code):
# returns the name of the MySQL database
return '%s%s' % (code, self.name)
# Which version of MediaWiki is used?
def version(self, code):
"""Return MediaWiki version number as a string."""
# Don't use this, use versionnumber() instead. This only exists
# to not break family files.
return '1.13alpha'
def versionnumber(self, code):
"""Return an int identifying MediaWiki version.
Currently this is implemented as returning the minor version
number; i.e., 'X' in version '1.X.Y'
"""
R = re.compile(r"(\d+).(\d+)")
M = R.search(self.version(code))
if not M:
# Version string malformatted; assume it should have been 1.10
return 10
return 1000 * int(M.group(1)) + int(M.group(2)) - 1000
def page_action_address(self, code, name, action):
return '%s?title=%s&action=%s&useskin=monobook' % (self.path(code), name, action)
def put_address(self, code, name):
return '%s?title=%s&action=submit&useskin=monobook' % (self.path(code), name)
def get_address(self, code, name):
return '%s?title=%s&redirect=no&useskin=monobook' % (self.path(code), name)
# The URL to get a page, in the format indexed by Google.
def nice_get_address(self, code, name):
return '%s%s' % (self.nicepath(code), name)
def edit_address(self, code, name):
return '%s?title=%s&action=edit&useskin=monobook' % (self.path(code), name)
def purge_address(self, code, name):
return '%s?title=%s&redirect=no&action=purge&useskin=monobook' % (self.path(code), name)
def references_address(self, code, name):
return '%s?title=%s:Whatlinkshere&target=%s&limit=%d&useskin=monobook' % (self.path(code), self.special_namespace_url(code), name, config.special_page_limit)
def upload_address(self, code):
return '%s?title=%s:Upload&useskin=monobook' % (self.path(code), self.special_namespace_url(code))
def double_redirects_address(self, code, default_limit = True):
if default_limit:
return '%s?title=%s:DoubleRedirects&useskin=monobook' % (self.path(code), self.special_namespace_url(code))
else:
return '%s?title=%s:DoubleRedirects&limit=%d&useskin=monobook' % (self.path(code), self.special_namespace_url(code), config.special_page_limit)
def broken_redirects_address(self, code, default_limit = True):
if default_limit:
return '%s?title=%s:BrokenRedirects&useskin=monobook' % (self.path(code), self.special_namespace_url(code))
else:
return '%s?title=%s:BrokenRedirects&limit=%d&useskin=monobook' % (self.path(code), self.special_namespace_url(code), config.special_page_limit)
def random_address(self, code):
return "%s?title=%s:Random&useskin=monobook" % (self.path(code), self.special_namespace_url(code))
def randomredirect_address(self, code):
return "%s?title=%s:RandomRedirect&useskin=monobook" % (self.path(code), self.special_namespace_url(code))
def allmessages_address(self, code):
return "%s?title=%s:Allmessages&ot=html&useskin=monobook" % (self.path(code), self.special_namespace_url(code))
def login_address(self, code):
return '%s?title=%s:Userlogin&useskin=monobook' % (self.path(code), self.special_namespace_url(code))
def captcha_image_address(self, code, id):
return '%s?title=%s:Captcha/image&wpCaptchaId=%s&useskin=monobook' % (self.path(code), self.special_namespace_url(code), id)
def watchlist_address(self, code):
return '%s?title=%s:Watchlist/edit&useskin=monobook' % (self.path(code), self.special_namespace_url(code))
def contribs_address(self, code, target, limit=500, offset=''):
return '%s?title=%s:Contributions&target=%s&limit=%s&offset=%s&useskin=monobook' % (self.path(code), self.special_namespace_url(code), target, limit, offset)
def move_address(self, code):
return '%s?title=%s:Movepage&action=submit&useskin=monobook' % (self.path(code), self.special_namespace_url(code))
def delete_address(self, code, name):
return '%s?title=%s&action=delete&useskin=monobook' % (self.path(code), name)
def undelete_view_address(self, code, name, ts=''):
return '%s?title=%s:Undelete&target=%s×tamp=%s&useskin=monobook' % (self.path(code), self.special_namespace_url(code), name, ts)
def undelete_address(self, code):
return '%s?title=%s:Undelete&action=submit&useskin=monobook' % (self.path(code), self.special_namespace_url(code))
def protect_address(self, code, name):
return '%s?title=%s&action=protect&useskin=monobook' % (self.path(code), name)
def unprotect_address(self, code, name):
return '%s?title=%s&action=unprotect&useskin=monobook' % (self.path(code), name)
def block_address(self, code):
return '%s?title=%s:Blockip&action=submit&useskin=monobook' % (self.path(code), self.special_namespace_url(code))
def unblock_address(self, code):
return '%s?title=%s:Ipblocklist&action=submit&useskin=monobook' % (self.path(code), self.special_namespace_url(code))
def blocksearch_address(self, code, name):
return '%s?title=%s:Ipblocklist&action=search&ip=%s&useskin=monobook' % (self.path(code), self.special_namespace_url(code), name)
def linksearch_address(self, code, link, limit=500, offset=0):
return '%s?title=%s:Linksearch&limit=%d&offset=%d&target=%s&useskin=monobook' % (self.path(code), self.special_namespace_url(code), limit, offset, link)
def version_history_address(self, code, name, limit = config.special_page_limit):
return '%s?title=%s&action=history&limit=%d&useskin=monobook' % (self.path(code), name, limit)
def export_address(self, code):
return '%s?title=%s:Export&useskin=monobook' % (self.path(code), self.special_namespace_url('_default'))
def query_address(self, code):
return '%s?' % self.querypath(code)
def api_address(self, code):
return '%s?' % self.apipath(code)
def search_address(self, code, query, limit=100, namespaces = None):
"""
Constructs a URL for searching using Special:Search
'namespaces' may be an int or a list; an empty list selects
all namespaces. Defaults to namespace 0
"""
namespace_params = ''
if namespaces is not None:
if isinstance(namespaces, int):
namespace_params = "&ns%d=1" % namespaces
elif isinstance (namespaces, list):
if len(namespaces) == 0:
# add all namespaces
namespaces = self.namespaces.keys()
for i in namespaces:
if i >= 0:
namespace_params = namespace_params + '&ns%d=1' % i
return "%s?title=%s:Search&search=%s&limit=%d%s&fulltext=1&useskin=monobook" % (self.path(code),
self.special_namespace_url(code),
query,
limit,
namespace_params)
def allpages_address(self, code, start, namespace = 0):
if self.version(code)=="1.2":
return '%s?title=%s:Allpages&printable=yes&from=%s&useskin=monobook' % (
self.path(code), self.special_namespace_url(code), start)
else:
return '%s?title=%s:Allpages&from=%s&namespace=%s&useskin=monobook' % (
self.path(code), self.special_namespace_url(code), start, namespace)
def log_address(self, code, limit=50, mode = '', user = ''):
return "%s?title=Special:Log&type=%s&user=%s&page=&limit=%d&useskin=monobook" % (self.path(code), mode, user, limit)
def newpages_address(self, code, limit=50, namespace=0):
return "%s?title=%s:Newpages&limit=%d&namespace=%s&useskin=monobook" % (self.path(code), self.special_namespace_url(code), limit, namespace)
def longpages_address(self, code, limit=500):
return "%s?title=%s:Longpages&limit=%d&useskin=monobook" % (self.path(code), self.special_namespace_url(code), limit)
def shortpages_address(self, code, limit=500):
return "%s?title=%s:Shortpages&limit=%d&useskin=monobook" % (self.path(code), self.special_namespace_url(code), limit)
def categories_address(self, code, limit=500):
return "%s?title=%s:Categories&limit=%d&useskin=monobook" % (self.path(code), self.special_namespace_url(code), limit)
def unusedfiles_address(self, code, limit=500):
return "%s?title=%s:Unusedimages&limit=%d&useskin=monobook" % (self.path(code), self.special_namespace_url(code), limit)
def deadendpages_address(self, code, limit=500):
return "%s?title=%s:Deadendpages&limit=%d&useskin=monobook" % (self.path(code), self.special_namespace_url(code), limit)
def ancientpages_address(self, code, limit=500):
return "%s?title=%s:Ancientpages&limit=%d&useskin=monobook" % (self.path(code), self.special_namespace_url(code), limit)
def lonelypages_address(self, code, limit=500):
return "%s?title=%s:Lonelypages&limit=%d&useskin=monobook" % (self.path(code), self.special_namespace_url(code), limit)
def protectedpages_address(self, code, limit=500):
return "%s?title=%s:ProtectedPages&limit=%d&useskin=monobook" % (self.path(code), self.special_namespace_url(code), limit)
def unwatchedpages_address(self, code, limit=500):
return "%s?title=%s:Unwatchedpages&limit=%d&useskin=monobook" % (self.path(code), self.special_namespace_url(code), limit)
def uncategorizedcategories_address(self, code, limit=500):
return "%s?title=%s:Uncategorizedcategories&limit=%d&useskin=monobook" % (self.path(code), self.special_namespace_url(code), limit)
def uncategorizedimages_address(self, code, limit=500):
return "%s?title=%s:Uncategorizedimages&limit=%d&useskin=monobook" % (self.path(code), self.special_namespace_url(code), limit)
def uncategorizedpages_address(self, code, limit=500):
return "%s?title=%s:Uncategorizedpages&limit=%d&useskin=monobook" % (self.path(code), self.special_namespace_url(code), limit)
def unusedcategories_address(self, code, limit=500):
return "%s?title=%s:Unusedcategories&limit=%d&useskin=monobook" % (self.path(code), self.special_namespace_url(code), limit)
def withoutinterwiki_address(self, code, limit=500):
return "%s?title=%s:Withoutinterwiki&limit=%d&useskin=monobook" % (self.path(code), self.special_namespace_url(code), limit)
def code2encoding(self, code):
"""Return the encoding for a specific language wiki"""
return 'utf-8'
def code2encodings(self, code):
"""Return a list of historical encodings for a specific language
wiki"""
return self.code2encoding(code),
# aliases
def encoding(self, code):
"""Return the encoding for a specific language wiki"""
return self.code2encoding(code)
def encodings(self, code):
"""Return a list of historical encodings for a specific language
wiki"""
return self.code2encodings(code)
def __cmp__(self, otherfamily):
try:
return cmp(self.name, otherfamily.name)
except AttributeError:
return cmp(id(self), id(otherfamily))
def __hash__(self):
return hash(self.name)
def __repr__(self):
return 'Family("%s")' % self.name
def RversionTab(self, code):
"""Change this to some regular expression that shows the page we
found is an existing page, in case the normal regexp does not work."""
return None
def has_query_api(self, code):
"""Is query.php installed in the wiki?"""
return False
def shared_image_repository(self, code):
"""Return the shared image repository, if any."""
return (None, None)
def server_time(self):
"""Return a datetime object representing server time"""
# TODO : If the local computer time is wrong, result will be wrong
return datetime.utcnow() + self.servergmtoffset
def isPublic(self):
"""Does the wiki require logging in before viewing it?"""
return True
def post_get_convert(self, site, getText):
"""Does a conversion on the retrieved text from the wiki
i.e. Esperanto X-conversion """
return getText
def pre_put_convert(self, site, putText):
"""Does a conversion on the text to insert on the wiki
i.e. Esperanto X-conversion """
return putText
|