ویکی‌پدیا:درخواست‌های ربات/رده‌ساز بر پایه فهرست نام ترجمه شده

از ویکی‌پدیا، دانشنامهٔ آزاد

وظیفه این ربات ساخت رده بر اساس رده‌های ترجمه شده از ویکی انگلیسی است به نحوی که میان‌ویکی،رده مادر (بالاتر) درون رده ساخته‌شده قرار میدهد و همچنین از نظر مشکلات نیم‌فاصله نادرست ترجمه فارسی رده‌ها را کنترل میکند.

روش کار:
  1. در جلوی متغییر list نام رده‌ها را به نحوی که اول انگلیسی بعد فارسی باشد قرار دهید (یک در میان انگلیسی و ترجمه‌اش)
  2. در جلوی متغییر mother_cat می توانید نام رده مادر را قرار دهید مثلا [[رده:شهرهای استان فارسی]]

ترفند۱: برای راحتی کار در نرم‌افزار اکسل رده های انگلیسی را در یک ستون فهرست کنید و در ستون مقابل ترجمه فارسی را قرار دهید سپس با کپی هر دو ستون درون ربات متغییر list را مقدار دهید.

ترفند۲: برای نسبت دادن u" و ", به متغییرها در اکسل در ستون ۳و۴ به ترتیب u" و ", قرار دهید و در ستون ۵ بنویسید =c1&a1&d1 با این کار محتویات ستون ۵ میشود u"setoonea",

جستارهای وابسته[ویرایش]

#!/usr/bin/python
# -*- coding: utf-8  -*-
#
# Reza(User:reza1615), 2011
#
# Distributed under the terms of the CC-BY-SA 3.0 .
import wikipedia,re
wikipedia.config.put_throttle = 0
wikipedia.put_throttle.setDelay()

list=(u"category:People_executed_by_Mexico",u"رده:افراد اعدام‌شده توسط مکزیک",
u"category:People_executed_by_New_Spain",u"رده:افراد اعدام‌شده توسط اسپانیای نو",
u"category:People_executed_by_poison",u"رده:افراد اعدام‌شده توسط سم",
u"category:People_murdered_in_Mexico",u"رده:افراد کشته‌شده در مکزیک",
u"category:People_murdered_in_Turkey",u"رده:افراد کشته‌شده در ترکیه")   

wiki=u'fa'
mother_cat=u''
msg=u'ربات: ساختن رده بر پايه ویکی‌انگلیسی ' +u'([[وپ:درخواست‌های ربات/رده‌ساز بر پایه فهرست نام ترجمه شده|کد]])'

def zwnj(txtTmp):
  txtTmp = re.sub(u'‌{2,}', u'‌', txtTmp)
  txtTmp = re.sub(u'‌(?![ئاآأإژزرذدوؤة‌بپتثجچحخسشصضطظعغفقکگلمنهیيًٌٍَُِّْٰٓٔ]|[\u0900-\u097f]|ֹ)', u'', txtTmp)
  txtTmp = re.sub(u'(?<![ئبپتثجچحخسشصضطظعغفقکگلمنهیيًٌٍَُِّْٰٓٔ]|[\u0900-\u097F]|f|ֹ)‌', u'', txtTmp)
  return txtTmp
def main():
    wikipedia.config.put_throttle = 0
    wikipedia.put_throttle.setDelay()
    textfa,texten=' ',' '
    wikipedia.output(str(len(list)))
    for i in range(0,len(list),2):    
        caten=list[i].replace(u'category:',u'').replace(u'Category:',u'').replace(u'[[',u'').replace(u']]',u'').strip()
        fatitle=list[i+1].replace(u'رده:',u'').replace(u'[[',u'').replace(u']]',u'').strip()
        textfa=mother_cat+u"\n[[en:category:"+caten+u']]'
        fatitle= zwnj(fatitle)
        pagefa = wikipedia.Page( wikipedia.getSite(wiki),u'رده:'+fatitle)
        if not pagefa.exists():
             pagefa.put(textfa.strip(),msg)
             wikipedia.output( u"done=" + fatitle)
if __name__ == '__main__':
    main()