پرش به محتوا

ویکی‌پدیا:ویرایشگر خودکار/ترجمه پارامتر

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

چگونگی نصب ماژول مبتنی بر پایتون

  1. پوشه نرم‌افزار ویرایشگر خودکار را هر جا که مایلید قرار دهید.
  2. به‌منظور دسترسی آسان‌تر، یک میان‌بر از فایل AutoWikiBrowser.exe بسازید و در دسکتاپ قرار دهید.
  3. کدهای ماژول موردنظر را در جعبهٔ متنی در مسیر ابزارها > ایجاد ماژول قرار دهید (محتویات ازپیش تهیه‌شده آن جعبهٔ متنی را می‌توانید پاک کنید).
  4. گزینهٔ Enabled را تیک بزنید و روی Make module کلیک کنید (اگر خطایی دریافت نکردید، می‌توانید ادامه دهید).
  5. کدهای پایتون موردنظر را تحت عنوان مشخص‌شده در یک فایل با پسوند .py ذخیره کنید و در پوشهٔ plugins در مسیر نصب نرم‌افزار قرار دهید.
  6. مطمئن شوید آخرین نگارش پایتون روی رایانه شما نصب و مسیر آن در متغیر PATH تعریف شده باشد.

در صورت بروز هر مشکل یا پرسش با Yamaha5 مکاتبه کنید.

نکته: برای اجرای کد پایتون حتما باید پایتون ۳ بر روی سیستمتان نصب باشد و با پایتون ۲ کار نمی‌کند (البته با کمی تغییر در کد می‌توانید آن را با پایتون ۲ هم سازگار کنید)

کدها[ویرایش]

  • ماژول
public string ProcessArticle(string ArticleText, string ArticleTitle, int wikiNamespace, out string Summary, out bool Skip)
        {
            string OrigText = ArticleText;
            Skip = false;
            Summary = "+ ترجمه پارامتر";
            try
            {
                System.Diagnostics.Process process = new System.Diagnostics.Process();
                System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo();
                psi.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
                psi.FileName = "python";
                psi.Arguments = "qet_interwiki.py";
                using (System.IO.StreamWriter writer = new System.IO.StreamWriter("input.txt"))
                    writer.Write(ArticleText);
                System.Diagnostics.Process p = System.Diagnostics.Process.Start(psi);
                p.WaitForExit();
                if (System.IO.File.Exists("output.txt"))
                {
                    using (System.IO.StreamReader reader = System.IO.File.OpenText("output.txt"))
                        ArticleText = reader.ReadToEnd();
                    if (ArticleText == OrigText)
                        Skip = true;
                }
                else
                    Skip = true;
                return ArticleText;
            }
            catch
            {
                Skip = true;
                return OrigText;
            }
        }
  • qet_interwiki.py.py
#!/usr/bin/python
# -*- coding: utf-8 -*-
# BY: رضا (User:reza1615 on fa.wikipedia)
# Distributed under the terms of the CC-BY-SA 3.0.
import requests,codecs,re

URL='https://en.wikipedia.org/w/api.php?action=query&prop=langlinks&redirects=1&lllimit=500&format=json&titles='
def get_fs(link):
    link=link.replace(' ','_')
    result = requests.get(URL+link).json()
    try:
        results=result['query']['pages'][list(result['query']['pages'])[0]]['langlinks']
        fa_result=[x['*'] for x in results if x['lang']=='fa'][0]
        if fa_result:
            return fa_result.replace('_',' ')
        else:
            return link
    except:
        return link.replace('_',' ')

text = codecs.open( u'input.txt','r' ,'utf8' )
text = text.read().replace('\r','')
if not 'require' in text:
    link=re.findall(r'name* \=* \'([^\n]+)\',\n',text)[0]
    text=re.sub(r"name* \=* '"+link+"',\n","name = '"+get_fs(link)+"',\n",text)

with codecs.open(u'output.txt' ,mode = 'w',encoding = 'utf8' ) as f:
    f.write(text)