ویکیپدیا:درخواستهای ربات/ربات مترجم فهرست مقاله برای ساخت رباتیک
این ربات برای همکاری در ترجمه موارد موجود در قهرستهایی هست که برای ساخت مقاله رباتیک کاربرها کمک میکنند تا ترجمه شوند.
روش کار
ویرایشاین ربات عنوانهایی که به در فهرست تکراری باشند را حذف میکند و موارد باقی مانده را به کمک میانویکی در صورت داشتن مقاله ترجمه نام میکند (دقت ربات شاید ۱۰۰٪ نباشد)
شروع به کار
ویرایشبرای شروع به کار مثلا در فهرست اینجا موارد موجود در جدول بالا را در متغیر repeted_words قرار میدهیم و همچنین نام صفحههایی که برای اجرای ربات مد نظرمان هست را در wikifa قرار میدهیم.
این ربات نیاز به هیچ آرگومانی ندارد
نتیجه کار این میشود. <syntaxhighlight lang="python">
- !/usr/bin/python
- -*- coding: utf-8 -*-
- Reza(User:reza1615), 2012
- Distributed under the terms of the CC-BY-SA 3.0 .
import catlib ,pagegenerators import wikipedia import codecs,time,string,re from dictionaryV import dict,word import query wikipedia.config.put_throttle = 0 wikipedia.put_throttle.setDelay() countw = 0 wikifa = ( u'کاربر:Reza1615/airport01',
u'کاربر:Reza1615/airport0355', u'کاربر:Reza1615/airport02', u'کاربر:Reza1615/airport01' )
def englishdictionry( enlink ,firstsite,secondsite):
enlink=enlink.replace(u' ',u'_') site = wikipedia.getSite(firstsite) params = { 'action': 'query', 'prop': 'langlinks', 'titles': enlink, 'redirects': 1, 'lllimit':500, } try: categoryname = query.GetData(params,site, encodeTitle = True) for item in categoryname[u'query'][u'pages']: case=categoryname[u'query'][u'pages'][item][u'langlinks'] for item in case: if item[u'lang']==secondsite: intersec=item[u'*'] break intersec=intersec.replace(u'_',u' ') return u' '+intersec.split('(')[0]+u' --ترجمه ربات--' except: enlink=enlink.replace(u'_',u' ') return enlink
repeted_words=[u'پایگاه نیروی هوایی',
u'پایگاه هوایی', u'فرودگاه تکبانده', u'محله هوایی', u'فرودگاه صحرایی', u'پارک پروازی', u'پایگاه نیروی هوایی', u'فرودگاه شهری', u'فرودگاه شهرستان', u'بالگردگاه', u'فرودگاه محلی', u'فرودگاه محلی شهرستان', u'فرودگاه صحرایی ارتش', u'فرودگاه آبی', u'پایگاه آبنشین', u'فرودگاه', u'بینالمللی']
for fasource in wikifa:
linefa= site = wikipedia.getSite( 'fa' ) bpage = wikipedia.Page( site,fasource ) try: text = bpage.get() except wikipedia.IsRedirectPage: enpage = bpage.getRedirectTarget() try: text = enpage.get() except: continue textfa='\n' for line in text.split( '\n' ): passport=True lineen=line for items in repeted_words: lineen=lineen.replace(items,u) linefa=englishdictionry( lineen.strip() ,'en','fa') wikipedia.output(linefa) if linefa==lineen.strip(): textfa+=line+u'\n' continue else: linefinall=line.replace(lineen,linefa) linefinall=linefinall.replace(u' ',u' ') wikipedia.output(linefa) textfa+=linefinall+u'\n' linefa= wikipedia.output( u"Loading %s..." % bpage.title() ) bpage.put( textfa.strip(),comment = u'ربات:ترجمه بر پایه میانویکی',watchArticle = None,minorEdit = True )