Eniri | Registriĝo | Сайта кӗрсен унпа туллин усӑ курма пулӗ
 +13.3 °C
 

Reklamo

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

Аçтахар Плотников22.12.2010 19:404288 Пурĕ пăхнă
Чӑвашла сӑмахсене сортланӑ чухне «Ӑ», «Ӗ», «Ҫ», «Ӳ» саспаллисем мала тухса тӑраҫҫӗ. Мӗншӗнни те паллӑ — эпир усӑ куракан ҫак саспаллисен кочӗ «А», «Б», «В» тата ыттисенчен пӗчӗкрех. «Ӳ» усӑ курнӑ чухне чылай чухне ҫак саспалли «Я» хыҫне кайса тӑрать. Сӑлтавӗ — саспалли кочӗ «Я» саспаллийӗнчен пысӑкрах пулнинче. Ҫак тӗрӗсмарлӑх чӑваш чӗлхи компьютерта сахаллӑн усӑ курнипе ҫыхӑннӑ. Тӗнчере ҫеҫ мар, Раҫҫей шайӗнче те пирӗн саспаллисене вырӑна лартассишӗн никам та тӑрӑшмасть. Ҫавӑнпа та ку ӗҫе хамӑрӑн тума тивет.
Чи малтан пирӗн мӗн пӗлмелле? Компьютерта саспалли йӗркине ятарласа вырнаҫтарасси пур. Вӑл переменнӑй, ытмашуҫӑ ӗнтӗ, «локаль» шайне кӗрет. 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 пулнине кӑтартмалли ҫеҫ юлать. Ун хыҫҫӑн сортлани — йӗркеллех. Электронлӑ вулавӑшри ҫыравҫӑсен ячӗсем халӗ, ҫак улшӑнусене кертнӗ хыҫҫӑн, тӗрӗс йӗркепе вырнаҫнине курма пулать.
Малалла ҫак йӗрке ҫине ытти сайтсенчи таблицӑсене те улӑштарса тухӑп. Тӗслӗхрен, электронлӑ сӑмах пуххинче ку питӗ кирлӗ.

//ку текста опечаткӑсенчен тасатман.
 
Redakcia noto: La publikigo de artikoloj ne signifas, ke la redakcia estraro dividas la opinion de ĝiaj aŭtoroj.

Komentoj:

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

Aldoni novan komenton

Via nomo:
Via komento:
B T U T Titolo1 Titolo2 Titolo3 # X2 X2 Bildo http://
WWW:
ĂăĔĕÇçŸÿ
Всего введено: 0 симв. Лимит: 1200 симв.
Сирĕн чăвашла çырма май паракан сарăм (раскладка) çук пулсан ăна КУНТАН илме пултаратăр.
 

Permesitaj HTML tegoj:

... ... ... ... ...

...

...

...

...
... ...
    1. (Ĉiuj tegoj devas esti skribitaj laŭregule. Se tego bezonas fermon - ĝi devas esti fermita)

Orphus

Ытти чĕлхесем

Reklamafiŝoj

Kalkuloj