Sign in | Sign Up | Signing in will enable you to post comments and send messages to the users.
 -0.7 °C
Выбрать время - значит сэкономить время. (Ф. Бэкон)
 

Ad

Аçтахар Плотников: Саспаллисене чӑвашла йӗркелес тесен

Аçтахар Плотников22.12.2010 19:404603 views
Чӑвашла сӑмахсене сортланӑ чухне «Ӑ», «Ӗ», «Ҫ», «Ӳ» саспаллисем мала тухса тӑраҫҫӗ. Мӗншӗнни те паллӑ — эпир усӑ куракан ҫак саспаллисен кочӗ «А», «Б», «В» тата ыттисенчен пӗчӗкрех. «Ӳ» усӑ курнӑ чухне чылай чухне ҫак саспалли «Я» хыҫне кайса тӑрать. Сӑлтавӗ — саспалли кочӗ «Я» саспаллийӗнчен пысӑкрах пулнинче. Ҫак тӗрӗсмарлӑх чӑваш чӗлхи компьютерта сахаллӑн усӑ курнипе ҫыхӑннӑ. Тӗнчере ҫеҫ мар, Раҫҫей шайӗнче те пирӗн саспаллисене вырӑна лартассишӗн никам та тӑрӑшмасть. Ҫавӑнпа та ку ӗҫе хамӑрӑн тума тивет.
Чи малтан пирӗн мӗн пӗлмелле? Компьютерта саспалли йӗркине ятарласа вырнаҫтарасси пур. Вӑл переменнӑй, ытмашуҫӑ ӗнтӗ, «локаль» шайне кӗрет. LC_COLLATE ятлӑ. Ҫак япалана операци системине пииитӗ шала кертсе лартнӑ, ахаль улӑштарма питӗ йывӑр. Вырӑссен тахҫанах хатӗр пулнӑран, мӗнле майпа кӗрсе каймаллине те чухлама, тупма йывӑр. Тахҫанах тапӑҫланатӑп пулин те халь тин кӑштах майне тупрӑм пулас. MySQL базинче те пулин епле майпа тӗрӗс сортламаллине вӗренсе ҫитрӗм. Халь ӗнтӗ сире каласа парасшӑн.
MySQL базӑра саспаллисене тӗрлӗ майпа йеркелеме пулать. Ҫав йӗркесене charset япалара ҫырса хунӑ. База мӗнле йӗркесене пӗлнине ҫак хушупа пӗлме пулать:

mysql> show collation;
+----------------------+----------+-----+---------+----------+---------+
| Collation | Charset | Id | Default | Compiled | Sortlen |
+----------------------+----------+-----+---------+----------+---------+
| big5_chinese_ci | big5 | 1 | Yes | Yes | 1 |
| big5_bin | big5 | 84 | | Yes | 1 |
| dec8_swedish_ci | dec8 | 3 | Yes | Yes | 1 |
| dec8_bin | dec8 | 69 | | Yes | 1 |
| cp850_general_ci | cp850 | 4 | Yes | Yes | 1 |
| cp850_bin | cp850 | 80 | | Yes | 1 |
| hp8_english_ci | hp8 | 6 | Yes | Yes | 1 |
| hp8_bin | hp8 | 72 | | Yes | 1 |
| koi8r_general_ci | koi8r | 7 | Yes | Yes | 1 |
| koi8r_bin | koi8r | 74 | | Yes | 1 |
| latin1_german1_ci | latin1 | 5 | | Yes | 1 |
| latin1_swedish_ci | latin1 | 8 | Yes | Yes | 1 |
| latin1_danish_ci | latin1 | 15 | | Yes | 1 |
| latin1_german2_ci | latin1 | 31 | | Yes | 2 |
| latin1_bin | latin1 | 47 | | Yes | 1 |
| latin1_general_ci | latin1 | 48 | | Yes | 1 |
| latin1_general_cs | latin1 | 49 | | Yes | 1 |
| latin1_spanish_ci | latin1 | 94 | | Yes | 1 |
| latin2_czech_cs | latin2 | 2 | | Yes | 4 |
| latin2_general_ci | latin2 | 9 | Yes | Yes | 1 |
| latin2_hungarian_ci | latin2 | 21 | | Yes | 1 |
| latin2_croatian_ci | latin2 | 27 | | Yes | 1 |
| latin2_bin | latin2 | 77 | | Yes | 1 |
| swe7_swedish_ci | swe7 | 10 | Yes | Yes | 1 |
| swe7_bin | swe7 | 82 | | Yes | 1 |
| ascii_general_ci | ascii | 11 | Yes | Yes | 1 |
| ascii_bin | ascii | 65 | | Yes | 1 |
| ujis_japanese_ci | ujis | 12 | Yes | Yes | 1 |

Кунта эп сирӗн ума пирӗн серверти пӗр пайне ҫеҫ илсе кӑтартрӑм. Хайхи таблицӑсем йӗркеленӗ чухне ҫак йӗркелевсенчен пӗрине кӑтартмалла та — сӑмахсем ун йӗркипе вырнаҫӗҫ. Шел те, чӑвашли ҫук вӗсен хушшинче. Тума тивет. Паян ҫӑрӑлтӑм-ҫӑрӑлтӑм та тумалли йӗркене ӑнлантӑм пулас.
Ҫак саспаллисен йӗрки серверӑн пӗр ятарлӑ папкинче вырнаҫнӑ.


mysql> SHOW VARIABLES LIKE 'character_sets_dir';
+--------------------+----------------------------+
| Variable_name | Value |
+--------------------+----------------------------+
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------+----------------------------+
1 row in set (0.00 sec)

Ҫавӑнта куҫмалла та Index.xml файла тупмалла. Кунта чарсетсен йышӗ вырнаҫнӑ. «utf8_unicode_ci» текенни пире пӗтӗм енчен тивӗҫтерет темелле, ӑна кӑшт кӑна тӳрлетес пулать. Хайхи ҫав файла уҫатпӑр та utf8 пайне тупатпӑр:

<charset name="utf8">
<family>Unicode</family>
<description>UTF-8 Unicode</description>
<alias>utf-8</alias>
<collation name="utf8_general_ci" id="33">
<flag>primary</flag>
<flag>compiled</flag>
</collation>
<collation name="utf8_bin" id="83">
<flag>binary</flag>
<flag>compiled</flag>
</collation>
</charset>

Чи малтан пирӗн ҫӗнӗ collation кӗртмелле ҫакӑнта. Эпир ун ятне «utf8_chuvash» ят парӑпӑр. Тепӗр самант, пирӗн саспалли йӗркин идентификаторне палӑртасси (id). Вӑл ыттисемпе пӗр пек пулмалла мар, ҫаванпа та эп ӑна 233 номер патӑм.

<collation name="utf8_chuvash" id="233">
</collation>

Малалла пирӗн ҫак йӗркелӗхе улшӑнусем кӗртмелле. Ҫӗнӗ йӗрке тумалла тепӗр майлӑ. Улшӑнусем «<rules></rules>» ятсем хушшинче ҫырӑнаҫҫӗ. «А» хыҫҫӑн «Ӑ» кайтӑр тесен пирӗн ҫак «Ӑ» саспаллие кӗртсе лартмалла. Кӗртсе лартмалли вырӑн тумашкӑн <reset> ят кирлӗ. Кунта саспаллин уникодри кодне ҫырмалла: «<reset>\u0410</reset>». Ун хыҫҫӑн вара йӗркелеве кӗртмелли саспаллие вырнаҫтарас пулать: «<p>\u0102</p>». Ку пысӑк «Ӑ» саспалли кӗрсе ларчӗ. Пӗчӗккине те кӗртмелле-ҫке! Йӗркелев виҫӗ виҫеллӗ тет. Пӗрремеш виҫи — <p>, иккӗмӗш — <s>, виҫҫӗмӗш — <t>. Пысӑкпа пӗчӗк саспаллисене уйӑрассине виҫҫӗмӗш виҫене кӗртме сӗнеҫҫӗ, пирӗн вара ҫапла ҫырма тивет: «<t>\u0103</t>». Пулчӗ те! Халӗ сортланӑ чухне «АӐБВГД...» пек вырнаҫӗ. Ҫапла май пирӗн тата «Ӗ» («Е» хыҫҫӑн), «Ҫ» («С» хыҫҫӑн), «Ӳ» («У» хыҫҫӑн) саспаллисен вырӑнӗсене майлаштарасси ҫеҫ юлать.
Пӗтӗмешле йӗркелев улшӑнӑвӗ ҫапла пулӗ:

<collation name="utf8_chuvash" id="233">
<rules>
<reset>\u0410</reset>
<p>\u0102</p>
<t>\u0103</t>
<reset>\u0415</reset>
<p>\u0114</p>
<t>\u0115</t>
<reset>\u0421</reset>
<p>\u00C7</p>
<t>\u00E7</t>
<reset>\u0423</reset>
<p>\u04F2</p>
<t>\u04F3</t>
<p>\u0178</p>
<t>\u00FF</t>
</rules>
</collation>

Эп кунта ҫавӑн пекех «Ӳ», «ӳ» саспаллисене те кӗртрӗм. Юнашар пулччӑр тесе.
Хайхи пирӗн Index.xml файла ҫак улшӑнусене кӗртмелле те MySQL сервера чарса ҫӗнӗрен ямалла.

mysql> SHOW COLLATION LIKE 'utf8_chuvash';
+--------------+---------+-----+---------+----------+---------+
| Collation | Charset | Id | Default | Compiled | Sortlen |
+--------------+---------+-----+---------+----------+---------+
| utf8_chuvash | utf8 | 233 | | | 8 |
+--------------+---------+-----+---------+----------+---------+
1 row in set (0.00 sec)

Ак вӑл пирӗн вырнаҫӑннӑ та. Малалла пирӗн таблицӑн йӗркелевӗ ҫак utf8_chuvash пулнине кӑтартмалли ҫеҫ юлать. Ун хыҫҫӑн сортлани — йӗркеллех. Электронлӑ вулавӑшри ҫыравҫӑсен ячӗсем халӗ, ҫак улшӑнусене кертнӗ хыҫҫӑн, тӗрӗс йӗркепе вырнаҫнине курма пулать.
Малалла ҫак йӗрке ҫине ытти сайтсенчи таблицӑсене те улӑштарса тухӑп. Тӗслӗхрен, электронлӑ сӑмах пуххинче ку питӗ кирлӗ.

//ку текста опечаткӑсенчен тасатман.
 
Editorial note: The publication of articles does not mean that the editorial board shares the opinion of its authors.
[Comments (3)]

Comments:

Аксар // 4167.6.0343
2010.12.22 21:30
Микулай, чавашла виндус та тума верентен пуль апла?
Аксар // 4167.6.0343
2010.12.22 21:30
Маттур!
2010.12.22 23:44
Аçтахар Плотников
Виндовсри локале те юсамалла — унта та хăш чухне чăвашла сăмахсене сорламалли пулать.

Comments

Your Name:
Your Comment:
B T U T Headline1 Headline2 Headline3 # X2 X2 Image http://
WWW:
ĂăĔĕÇçŸÿ
Symbols used: 0 symb. Maximum symbols: 1200 symb.
CLICK HERE to choose from a number of free Chuvash keyboard layout software.
 

Supported HTML Tags:

<i>...</i> <b>...</b> <u>...</u> <s>...</s> <a>...</a> <img> <h1>...</h1> <h2>...</h2> <h3>...</h3> <pre>...</pre> <sub>...</sub> <sup>...</sup> <ul> <ol> <li>

Orphus

In Other Languages

Banners

Counters