Pythonda matnni kirildan lotinga va lotindan kiril alifbosiga o'tkazuvchi dastur yaratish.
Kirish.
Idora va ofislarda ishlovchi hodimlar yoki boshqa shunga o'xshash soha egalari kompyuterda matnni kirildan lotinga va aksincha o'tkazishiga to'g'ri keladi. Har xil dasturlash tillari yordamida ko'plab kiril-lotin dasturlari yaratilgan. Men ham oldingi maqolalarimda JavaScript tilida kiril-lotin web sahifasini yaratgan edim(bu yerda). Bu maqolada python dasturlash tilida shu dasturni yaratishni o'rganamiz.
Ishni modullarni bog'lash va dastur oynasini yaratishdan boshlaymiz.
from tkinter import *# tkinter moduuliga bog'laymiz
from tkinter.filedialog import *
oyna=Tk() #Oyna yaratib olamiz.
oyna.title("Kiril-Lot dasturi")#dastur sarlavhasi;
oyna.geometry("860x400")#oyna o'lchamlari;
oyna.configure(bg="dodger blue")#fon rangi.
Dasturda matn yozish va tahrirlash uchun bitta Text vidjetini joylashtirib olamiz. Dastur oynasiga matn joylashtirish uchun Label dan foydalanamiz.
Label(oyna, text="Matnni kirildan lotinga va lotindan kirilga o'tkazishingiz mumkin.",bg="dodger blue").place(x=20, y=10)#Label vidjeti;
scrollbar = Scrollbar(oyna)#Scrollbar vidjeti;
scrollbar.pack(side=RIGHT, fill=Y)
matn=Text(oyna, height=20, width=100)#Text vidjetini yaratish.
matn.place(x=20, y=30)
matn.config(yscrollcommand=scrollbar.set)
scrollbar.config(command=matn.yview)
Text vidjetiga ko'p qatorli matn yozilganda uning maydonga sig'magan qismlarini ko'rish uchun Scrollbar vidjetini joylashtirdik. Harflarni saqlash uchun kiril va lot listlarini yaratib olamiz. Bu listlar yordamida matndagi harflar bir-biri bilan almashtiriladi.
Matndagi harflarni almashtirish uchun 2ta funksiya yaratib olamiz.
def lotinga(): #kirildan lotinga o'tkazish funksiyasi
s=matn.get(1.0,END)
for i in range(len(kiril)):
s=s.replace(kiril[i],lot[i])
matn.delete(1.0,END)
matn.insert(END,s)
def kirilga(): #lotindan kirilga o'tkazish funksiyasi.
s=matn.get(1.0,END)
for i in range(len(kiril)):
s=s.replace(lot[i],kiril[i])
matn.delete(1.0,END)
matn.insert(END,s)
Matnni boshqa alifbo harflariga o'tkazish uchun replace() almashtirish funksiyasidan foydalanamiz. Barcha harflar almashishi uchun for sikliga joylashtiriladi. len(kiril)-orqali takrorlanishlar soni harflar soni bo'yicha aniqlanadi.
Dasturimizga matnni saqlash va fayldan ochish imkoniyatini ham qo'shamiz.
def ochish(): #fayldan ochish funksiyasi.
fayl=askopenfilename(filetypes=[("Matn fayli","*.txt"),("Barcha fayllar","*.*")])
if not fayl:
return
matn.delete(1.0,END)
with open(fayl,"r") as faylga:
mtn=faylga.read()
matn.insert(END,mtn)
def saqlash(): #faylga saqlash funksiyasi.
fayl=asksaveasfilename(defaultextension="txt",filetypes=[("Matn fayli","*.txt"),("Barcha fayllar","*.*")],)
if not fayl:
return
with open(fayl,"w",encoding="utf-8") as fayldan:
mtn=matn.get(1.0,END)
fayldan.write(mtn)
Button vidjeti yordamida 4ta boshqarish tugmalarini joylashtiramiz.
Button(oyna, text="Fayldan ochish", command=ochish).place(x=40, y=360)
Button(oyna, text="Faylga saqlash", command=saqlash).place(x=150, y=360)
Button(oyna, text="Kirildan lotinga o'tkazish", command=lotinga).place(x=290, y=360)
Button(oyna, text="Lotindan kirilga o'tkazish", command=kirilga).place(x=450, y=360)
va oyna.mainloop()-dastur oynasini ekranga chiqaramiz.
Dasturimiz tayyor. Dasturning to'liq kodi:
from tkinter import *
from tkinter.filedialog import *
oyna=Tk() #Oyna yaratib olamiz.
oyna.title("Kiril-Lot dasturi")
oyna.geometry("860x400")
oyna.configure(bg="dodger blue")
Label(oyna, text="Matnni kirildan lotinga va lotindan kirilga o'tkazishingiz mumkin.",bg="dodger blue").place(x=20, y=10)
scrollbar = Scrollbar(oyna)
scrollbar.pack(side=RIGHT, fill=Y)
matn=Text(oyna, height=20, width=100)
matn.place(x=20, y=30)
matn.config(yscrollcommand=scrollbar.set)
scrollbar.config(command=matn.yview)
#Kiril harflar listini yaratib olamiz.
kiril=["ю","Ю","я","Я","ё","Ё","ш","Ш","ч","Ч","ў","Ў",
"қ","Қ","ғ","Ғ","ц","Ц","й","Й","у","У","к","К",
"е","Е","н","Н","г","Г","щ","Щ","з","З","х","Х",
"э","Э","ж","Ж","д","Д","л","Л","о","О","р","Р",
"п","П","а","А","в","В","ф","Ф","с","С","м","М",
"и","И","т","Т","б","Б","қ","Қ","ҳ","Ҳ","ғ","Ғ","ь"]
#Lotin harflar listini yaratib olamiz.
lot=["yu","Yu","ya","Ya","yo","Yo","sh","Sh","ch","Ch","o'","O'",
"q","Q","g'","G'","ts","Ts","y","Y","u","U","k","K","e","E",
"n","N","g","G","sh","Sh","z","Z","x","X","e","E","j","J",
"d","D","l","L","o","O","r","R","p","P","a","A","v","V","f",
"F","s","S","m","M","i","I","t","T","b","B","q","Q","h","H",
"g'","G'","`"]
#Kirildan lotinga o'tkazish funksiyasi.
def lotinga():
s=matn.get(1.0,END)
for i in range(len(kiril)):
s=s.replace(kiril[i],lot[i])
matn.delete(1.0,END)
matn.insert(END,s)
#Lotindan kirilga o'tkazish funksiyasi.
def kirilga():
s=matn.get(1.0,END)
for i in range(len(kiril)):
s=s.replace(lot[i],kiril[i])
matn.delete(1.0,END)
matn.insert(END,s)
#Xotiradan matn faylini ochish.
def ochish():
fayl=askopenfilename(filetypes=[("Matn fayli","*.txt"),("Barcha fayllar","*.*")])
if not fayl:
return
matn.delete(1.0,END)
with open(fayl,"r") as faylga:
mtn=faylga.read()
matn.insert(END,mtn)
#Matnni xotiraga saqlash.
def saqlash():
fayl=asksaveasfilename(defaultextension="txt",filetypes=[("Matn fayli","*.txt"),("Barcha fayllar","*.*")],)
if not fayl:
return
with open(fayl,"w",encoding="utf-8") as fayldan:
mtn=matn.get(1.0,END)
fayldan.write(mtn)
#Boshqarish uchun tugmalar joylashtirish.
Button(oyna, text="Fayldan ochish", command=ochish).place(x=40, y=360)
Button(oyna, text="Faylga saqlash", command=saqlash).place(x=150, y=360)
Button(oyna, text="Kirildan lotinga o'tkazish", command=lotinga).place(x=290, y=360)
Button(oyna, text="Lotindan kirilga o'tkazish", command=kirilga).place(x=450, y=360)
oyna.mainloop()
Bu dastur python o'rnatilgan kompyuterlarda ishlaydi. Foydalanish qulay bo'lishi uchun alohida .exe ilova ko'rinishiga o'tkazib olamiz. Buning uchun pyinstaller kutubxonasi kerak bo'ladi. Bu kutubxonani o'rnatish uchun buyruqlar satriga pip install pyinstaller buyrug'ini kiritamiz.
pyinstaller kutubxonasi bir marta o'rnatiladi va to'liq o'rnatilgandan so'ng undan bemalol foydalanishingiz mumkin.
Pythonda yaratgan dasturimizni bitta exe fayliga o'tkazamiz. Dastur kodlari saqlangan papkani buyruqlar satrida ochib olamiz. pyinstaller --onefile -w KirilLot.py buyrug'ini kiritamiz.
dist papkasida dastur fayli hosil bo'ladi. Bu fayldan boshqa python o'rnatilmagan kompyuterlarga o'tkazib foydalanish mumkin.
Xulosa.
Python dasturlash tilida Kiril-Lotin tarjimon dasturini yaratishni ko'rib chiqdik. Bu dasturdan foydalanishingiz mumkin. Dasturga qo'shimcha imkoniyatlar qo'shib rivojlantirsangiz ham bo'ladi.
Do'stlaringiz bilan baham: |