Ochiq kodli dasturiy ta’minotni mahalliylashtirish: foydalanuvchi interfeysini ona tiliga o’girish
24.06.2009
Rukn: Texnologiya.
Muallif: Najmiddin Gulyamov, Nurilla Maxamatov.

Axborot va kommunikatsiya texnologiyalari dunyosida yangi texnologiyalar va ular bilan birga, yangi imkoniyatlar avvalgidan ham tez sur’atlarda kirib kelmoqda. Erkin va ochiq kodli dasturiy ta’minot harakati bu shunday taraqqiyotki, u hozirda bizning oldimizda turibdi. Bu bosqichma-bosqich taraqqiyot jarayoni, yangi texnologiya, yangi bilimlar, standartlar hamda boshqa ko’plab narsalarni anglatadi. Bu davlat va xususiy sektorga hamda ta’lim muassasalariga ko’plab imkoniyatlarni ochib beradi. Erkin va ochiq kodli dasturiy ta’minotdan foyda olgan va tatbiq etgan tashkilotlar, shuningdek, rivojlanayotgan mamlakatlar mos ravishda katta daromad oldilar, bu imkoniyatdan foydalanmaganlar esa o’z AKT taraqqiyotlarini boshqalarga nisbatan orqada qolganini ko’rishlari mumkin.

PO fayl nima? Tarjima qilinishi kerak bo’lgan ilova menyulari va dialoglari PO faylda saqlanadi. PO fayl maxsus tuzilish va .PO kengaytmasiga ega bo’lgan fayldir. Uning tarkibida til, tarjimonlar, asl dialoglar va tarjima qilingan dialoglar bo’ladi. Asl dialoglar msgid so’zi bilan boshlanib, msgstr bilan boshlanuvchi ularning tarjimasidan oldin keladi. Til va tarjimonlar haqidagi ma’lumot PO faylining boshida bo’ladi. Agar tarjima qilingan dialog yoki menyu bo’lmasa, msgstr qismi bo’sh qoladi. # belgisi qator izoh ekanligini bildiradi.

Bo’sh qismli tarjimaga misol:
#: src/PackageCommands.cs:57
#: src/PackageCommands.cs:3181
msgid «Search for a match to any of the search strings»
msgstr » »
Chet tilidagi tarjimaga misol:
#: src/PackageCommands.cs:57
#: src/PackageCommands.cs:3181
msgid «Search for a match to any of the search strings»
msgstr «Vyhledat vysledek odpovidajici alespon nekteremu z
retezcu»

POT fayl nima? POT fayl tarjima uchun bir andoza. POT faylining formati PO fayli kabi bo’ladi, lekin unda faqat asl ingliz tilidagi matn bo’lib, til va tarjimon to’g’risida ma’lumot bo’lmaydi. POT fayldan PO fayllar yaratiladi. Agar siz PO faylni o’zingiz matn tahrirlagichida yaratgan bo’lsangiz, o’z ona tilingiz haqida ma’lumot kiritib .ro kengaytmasi bilan saqlashingiz kerak bo’ladi. Agar siz PO faylning boshini noto’g’ri yozsangiz bu PO fayl sintaktik tekshiruvdan o’ta olmaydi va natija siyoh rangda bo’ladi hamda hech narsa tarjima qilinmagan, tushunarsiz belgilar qatori bo’ladi.

rug.pot’ning bosh qismi:
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE’S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR , YEAR.
#, fuzzy
msgid «»
msgstr «»
«Content-Type: text/plain; charset=CHARSET\n»
«Content-Transfer-Encoding: 8bit\n»
The beginning of the rug.hu.po:
«Project-Id-Version: hu\n»
«Report-Msgid-Bugs-To: \n»
«POT-Creation-Date: 2006-06-08 12:58+0200\n»
«PO-Revision-Date: 2006-06-08 17:26+0200\n»

PO fayl juda ko’p qaydlardan tashkil topgan, har bir qayd asl tarjima qilinmagan qator va uning mos ravishdagi tarjimasi bilan aloqa o’rnatadi. Berilgan PO fayldagi barcha qaydlar, odatda, yagona loyihaga tegishli bo’ladi va barcha tarjimalar yagona maqsadli tilda ifodalanadi. PO faylning bitta qaydi quyidagicha sxematik tuzilishga ega:
white-space — bo’sh qator
# tarjimon izohlari
#. Chiqarib olingan izohlar
#: reference — ssilkalar
#, belgi
#| msgid oldingi tarjima qilinmagan qator
msgid tarjima qilinmagan qator
msgstr tarjima qilingan qator

PO faylning asosiy tuzilishi tarjimon tomonidan yaxshi tushunilishi kerak. PO muhitini ishlatayotganda format elementlari to’g’risida juda kam ma’lumot bo’ladi, shuning uchun PO muhiti bu masalalarni hal qiladi.

Sodda qayd quyidagicha bo’lishi mumkin:
#: lib/error.c:116
msgid «Unknown system error»
msgstr «Error desconegut del sistema»

Mahalliylashtirishda sizga faqat matn muharriri va bo’sh msgstr’larni o’z tarjimangiz bilan to’ldirib chiqishingiz kerak bo’ladi. Balki siz tarjima qilishga ko’proq mos keluvchi boshqa vosita toparsiz. msgid bilan boshlangan PO fayldagi asl ingliz tilidagi matnni o’zgartirish mumkin emas. Siz faqat tarjimani o’zgartirishingiz mumkin. Agar siz asl ingliz tilidagi matnda xato topsangiz, bu haqda hisobot berish uchun Bugzilla’dan foydalanishingiz kerak. Barcha noto’g’ri matnlar birinchi ilovaning kodida to’g’rilanishi kerak va keyin yangi POT fayl yaratilishi kerak.

Qisqa usullar (Shortcuts)
Shortcuts’larni belgilashning ikki xil usuli bor:
msgid «&Add…»
msgstr «&Hozzbadbs»
eki
msgid «_Add»
msgstr «_Hozzbadbs»

PO fayl uchun nima muhim? Tarjimaning matniga uning shaklidan alohida holda ega bo’lishga imkon beradi. Sodda misol — Fedora\Red Hat hujjatlarining turli (html, pdf) shakllari bitta xml-fayl orqali yaratiladi. Rus tilidagi hujjatlarni yaratishda ularning o’rniga rus .ro fayllardan tashkil topgan msgstr bilan almashtirilgan. Natijada bir bor qilingan matn tarjimasi html va pdf’da hujjatlar yaratish uchun qo’llaniladi. Shaklining o’zgartirilishi holida xml tuzilishi\zanjirini o’zgartirish yetarli, shuningdek bunda matnning o’zini biror narsa qilishning keragi yo’q — u avtomatik tarzda almashtiriladi. Qo’shimcha qilib, hujjatlarni yangilash vaqti bo’lsa, matnning allaqachon tarjima qilingan qismlarini qayta ishlatish mumkin. Bunda msgid shakllangan bo’ladi, msgstr avtomat ravishda kiritiladi.

PO fayl bilan ishlash
Nazariy jihatdan PO faylni foydalanuvchi tomonidan o’zgartirilishi mumkin. Lekin bu usuldan foydalanmagan ma’qul, buni maxsus dasturlarga qoldirish kerak. Sukunat bo’yicha GNOME’ning, KDE — kbabel (KDE 4.X uchun kdesdk paketidan mahalliylashtirishni qo’llash) variantlarini taklif qilish mumkin. Bularning ikkalovi ham shubhasiz Fedora zahirasida.

O’rnatish jarayoni
1. Install Booyo Linux
2. Make working directory (/root/booyo/2.5/i386, /root/booyo/2.5/SRPMS)
3. Copy RPMS and SRPMS from Booyo 5 CDs to the working directory
(RPMS -> /root/booyo/2.5/i386, SRPMS -> /root/booyo/2.5/SRPMS)
4. Install anaconda-xx.rpm and anaconda-runtime-xx.rpm
(rpm -ivh anaconda-xx.rpm anaconda-runtime-xx.rpm in /root/booyo/2.5/i386)
5. Make update packages (update booyo-artwork, system-config-root password, anaconda, desktop-background)
a) Install old-xx.src.rpm package to modify- sources(xx.tar.bz2) and patches(yy.patch) in /usr/src/booyo/SOURCES- spec files(xx.spec) in /usr/src/booyo/SPECS
b) Rebuild new-xx.rpm and new-xx.src.rpm- in case of patches,
> rpmbuild -bp xx.spec in /usr/src/booyo/SPECS
> cp -a xx.dir xx.dir.orig in /usr/src/booyo/BUILD
> modify something in /usr/src/booyo/BUILD/xx.dir
> diff -pruN xx.dir.orig xx.dir
> ../SOURCES/xx-yyy.patch in /usr/src/booyo/BUILD
> edit spec file in /usr/src/booyo/SPECS
(update release, add patch information, add changelog) — in case of images,
> tar -xjvf xx.tar.bz2 in /usr/src/booyo/SOURCES
> modify images in /usr/src/booyo/SOURCES/xx.dir
> tar -cjvf xx.tar.bz2 xx.dir
> edit spec file in /usr/src/booyo/SPECS (update release, add changelog)
— commonly,
> rpmbuild -ba xx.spec in /usr/src/booyo/SPECS
> check new-xx.rpm files and new-xx.src.rpm files in /usr/src/booyo/RPMS and /usr/src/booyo/SRPMS
c) Update new-xx.rpm and new-xx.src.rpm in your working directory
— cp xx.rpm /root/booyo/2.5/i386/Booyo/RPMS in /usr/src/booyo/RPMS/{arch}
— cp xx.src.rpm /root/booyo/2.5/SRPMS in /usr/src/booyo/SRPMS)
— remove old-xx.rpm and old-xx.src.rpm in /root/booyo/2.5
6. Run build scripts (./build.booyo 2.5 i386 in /root)
7. Check ISOs and Write ISOs
8. go to 5.

Open source (Ochiq dasturiy ta’minot) atamasi 1998-yilda Erik Reymond hamda Bryus Perens tomonidan yaratilgan. Free software (Erkin dasturiy ta’minot) atamasi dasturiy ta’minotning erkin tarqatilishi ma’nosini anglatadi.

Ochiq dasturlarning ko’pchiligi erkin hisoblanadi. Ochiq va erkin dasturiy ta’minotlar o’zaro juda yaqin o’xshashlikda, biroq bir-biriga doimo to’g’ri kelmaydi hamda ko’pchilik litsenziyalari ikkisiga ham muvofiq keladi.

Ochiq va erkin dasturiy ta’minotlarning farqi ulardan foydalanish qoidalari va dastlabki matnlaridadir. Ochiq dasturiy ta’minotlar tarafdorlari ochiq manbalar samaradorligiga ishlab chiqish metodlari, modernizatsiyasi va unga ergashuvchi dasturlarga tayanadilar. Erkin dasturiy ta’minotlar tarafdorlari esa ochiq va erkin dasturiy ta’minotlarning erkin tarqatilishi huquqiga ega bo’lgan jihatlari, dastur modifikatsiyasi va uning afzalligiga e’tibor qaratadilar.

Ochiq dasturlarning dastlabki kodlari yoki ijtimoiy mulk yoki «erkin» litsenziya sifatida — masalan, GNU General Public License yoki BSD License kabi tarqatiladi. Erkin litsenziya kichik cheklovlar bilan boshlang’ich kodli dasturlarni OpenSource.org’ga zid bo’lmagan ehtiyojga ko’ra ishlatish imkonini beradi. Bunday cheklovlarga kelgusi tarqatilishda dasturlarga yaratuvchilar tomonidan qo’yilgan talablar bo’lishi mumkin. Ayrim holatlarda (masalan, Apache yoki FreeBSD) bu cheklovlar juda kichik bo’lib, boshqa holatlarda (masalan, GNU General Public License) dasturiy ta’minotni tarqatishda boshlang’ich kod va litsenziya matni bilan dasturni o’zgartirmagan tarzda foydalanish talab etiladi.

Orphus system
O'zbеkistonda AKT yangiliklaridan birinchilar qatorida xabardor bo'lish uchun Telegramda infoCOM.UZ kanaliga obuna bo'ling.
Telegramga qo`shmoq
Odnoklassnikiga yubormoq
VKontakteda bo`lishmoq