SCIM дээр хэл нэмэх

SCIM on Linux HOWTO

Линукс болон Юникс үйлдлийн систем дээр KDE GNOME гэсэн хэрэглэгчийн график интерфэйсүүд байдаг. Тэдгээрт зориулагдсан SCIM(Smart Common Input Method) хэмээх олон төрлийн үсэг тэмдэгт оруулдаг хэрэгсэл байдаг. Энэ нь голдуу япон хятад солонгос зэрэг олон тооны үсэгтэй хэлүүд дээр текст оруулахад хэрэглэгддэг. SCIM дээр хэл нэмж оруулах талаар товч танилцуулья.

Ерөнхийдөө танд 2 файл хэрэгтэй. Нэг нь гарны ямар тэмдэгтүүдийн дараалал ямар үсэг тэмдэгтэд харгалзахыг харуулсан текст файл, нөгөө нь жижиг хэмжээтэй зурган файл. Зурган файл нь гарны сонголтын тань лого юм.

Хэрэв танд эдгээр 2 файл байгаа бол

scim-make-table Mongolian.txt.in -b -o Mongolian.bin

командаар бинари файл үүсгээд түүнийг SCIM ийн суусан байгаа газарт хуулаад SCIM ээ эсвэл График сессионоо дахин ачаалаад болоо. SCIM нь линукс систем дээр /usr/share/scim дотор суудаг. Mongolian.bin файлыг /usr/share/scim/tables/ дотор, зурагын файлыг /usr/share/scim/icons/ дотор хуулж өгнө. Ямар нэг алдаагүй тохиолдолд SCIM дээр таны нэмсэн хэл гарч ирэх болно.

Текст файл болон зурагын файл нь текст файл доторхи

ICON = /usr/share/scim/icons/Maral.png

гэсэн мөрөөр холбогдоно.

Жишээ болгож өөрийн хийсэн Mongolian.txt.in файлын агуулгыг үзүүлвэл:


\### File header must not be modified
\### This file must be encoded into UTF-8.
SCIM\_Generic\_Table\_Phrase\_Library\_TEXT
VERSION\_1\_0

\### Begin Table definition.
BEGIN\_DEFINITION

\### An unique id to distinguish this table among others.
\### Use uuidgen to generate this kind of id.
UUID = 7c964227-ad9d-4d80-ae0b-0fe7ac193173

\### A unique number indicates the version of this file.
\### For example the last modified date of this file.
\### This number must be less than 2^32.
SERIAL\_NUMBER = 20060412

ICON = /usr/share/scim/icons/Maral.png

\### The default name of this table
NAME = Maral

\### The local names of this table
###NAME.mn\_MN = Марал

\### Supported languages of this table
LANGUAGES = mn\_MN

\### The author of this table
AUTHOR = Ochirkhuyag Lkhagva

\### Prompt string to be displayed in the status area.
STATUS\_PROMPT = Ө

\### If true then the first candidate phrase
\### will be selected automatically during inputing.
AUTO\_SELECT = TRUE

\### If true then a multi wildcard will be appended
\### at the end of inputing string automatically.
AUTO\_WILDCARD = FALSE

\### If true then the result string will be committed to client automatically.
\### This should be used with AUTO\_SELECT = TRUE.
AUTO\_COMMIT = TRUE

\### If true then the inputed string will be automatically splitted during inputing.
AUTO\_SPLIT = TRUE

\### If true then the phrases' frequencies will be adjusted dynamically.
DYNAMIC\_ADJUST = FALSE

\### If true then the preedit area will be filled up by the current candidate phrase automatically.
AUTO\_FILL = TRUE

\### If true then the lookup table will always be shown if there is any candidate phrase.
\### Otherwise the lookup table won't be shown unless the user requires it by moving the preedit caret left.
ALWAYS\_SHOW\_LOOKUP = FALSE

\### Enable full width punctuation property
USE\_FULL\_WIDTH\_PUNCT = FALSE

\### Use full width punctuation by default
DEF\_FULL\_WIDTH\_PUNCT = FALSE

\### Enable full width letter property
USE\_FULL\_WIDTH\_LETTER = FALSE

\### Use full width letter by default
DEF\_FULL\_WIDTH\_LETTER = FALSE

\### The maxmium length of a key.
MAX\_KEY\_LENGTH = 1

\### Valid input chars.
VALID\_INPUT\_CHARS = ABWGDE&VZIJKLMNOPRSTUFHC+{}$YX|~Q\_<>:"?abwgde^vzijklmnoprstufhc=\[\]#yx\\\`q-,.;'/\*)

\### Single wildcard char, can have multiple chars.
###SINGLE\_WILDCARD\_CHAR = ?

\### Multi wildcard char.
###MULTI\_WILDCARD\_CHAR = \*

\### The key strokes to split inputed string.
###SPLIT\_KEYS = quoteright

\### The key strokes to commit the convert result to client.
COMMIT\_KEYS = space

\### The key strokes to forward the inputed string to client.
FORWARD\_KEYS = Return

\### The key strokes to select candidiate phrases.
SELECT\_KEYS = 1,2,3,4,5,6,7,8,9

\### The key strokes to page up the lookup table.
PAGE\_UP\_KEYS = Page\_Up

\### The key strokes to page down the lookup table.
PAGE\_DOWN\_KEYS = Page\_Down

END\_DEFINITION

\### Begin Table data.
BEGIN\_TABLE
A Й 0
B М 0
W Ц 0
G А 0
D Б 0
E У 0
6 . 0
V С 0
Z Я 0
I Ш 0
J Р 0
K О 0
L Л 0
M Т 0
N И 0
O Ү 0
P З 0
R Ж 0
S Ы 0
T Э 0
U Г 0
F Ө 0
H Х 0
C Ё 0
\+ Щ 0
{ К 0
} Ъ 0
$ ₮ 0
Y Н 0
X Ч 0
| | 0
~ + 0
Q Ф 0
\_ Е 0
<> В 0
: Д 0
" П 0
? Ю 0
a й 0
b м 0
w ц 0
g а 0
d б 0
e у 0
^ . 0
v с 0
z я 0
i ш 0
j р 0
k о 0
l л 0
m т 0
n и 0
o ү 0
p з 0
r ж 0
s ы 0
t э 0
u г 0
f ө 0
h х 0
c ё 0
\= щ 0
\[ к 0
\] ъ 0
\# " 0
y н 0
x ч 0
\\ ! 0
\` = 0
q ф 0
\- е 0
, ь 0
. в 0
; д 0
' п 0
/ ю 0
\* , 0
) ? 0
END\_TABLE

Файлын доторхи чухал хэсгүүдийг тайлбарлая.

UUID = 7c964227-ad9d-4d80-ae0b-0fe7ac193173

Энэ мөрөнд байгаа тэмдэгтийн дараалал бол таны нэмэх хэлийг бусдаас ялгах ID. Үүнийг uuidgen командаар гаргаж авч болно.

MAX_KEY_LENGTH = 1

Энэ бүл тэмдэгт оруулах түлхүүр маань ихдээ хэдэн тэмдэгтийн урттай байхыг заана. Тухайлбайл монгол хэлний тохиолдолд 1 байна. Хэрэв та No гэж оруулахад № гэж гаргадаг болгоё гэвэл 2 гэж өгөх хэрэгтэй.

VALID_INPUT_CHARS

гарны ямар тэмдэгтүүдийг оролцуулахаа зааж бүх тэмдэгтүүдийг жагсааж оруулна.

BEGIN_TABLE аас END_TABLE ийн хооронд гарны тэмдэгт ба сонгогдон гарах үсгэн тэмдэгтийн харгалзааг жагсааж оруулна.

Ингээд миний бичих зүйлс дууслаа. SCIM ийг сонгож хэрэглэх болсон шалтгаан гэвэл японоор бичих боломжтойд байгаа юм. Гэхдээ SCIM зарим цонхон дээр ажиллахгүй байгааг гайхаад л байна. Ихэнх програмууд дээр болж байгаа мөртлөө Opera вэб браузер зэрэг дээр болохгүй байгаа юм. Мэдэх хүн байвал бичээрэй.

Эндээс миний хэрэглэж байгаа Марал SCIM-ийн монгол гарны хүснэгтийг авч болно.