Friday, October 29, 2010

ဝိုက်ချ (ာ) နဲ့ မောက်ချ (ါ)

ဝိုက်ချ (ာ) နဲ့ မောက်ချ (ါ)

ဒီနေရာမှာ အ-သရ (ရေးချ) - ဝိုက်ချ (ာ) နဲ့ မောက်ချ (ါ) အကြောင်း နဲနဲ ဆွေးနွေးချင်ပါတယ်။ Unicode 5.1 မတိုင်ခင်က ရှင်းပာတယ်။ ဝိုက်ချ (ာ) တစ်မျိုးတည်း U102C အနေနဲ့ရှိပာတယ်။ ပုံဖော်စနစ် (Rendering) ကသာ အက္ခရာပော်လိုက်ပြီး ဝိုက်ချ (ာ) မောက်ချ (ါ) ပြောင်းလဲပုံဖော်ပေးရပာတယ်။ Unicode 5.1 မှာတော့ မောက်ချ (ါ) ပာ U102B အနေနဲ့ သီးခြားသတ်မှတ်ပေးလာပာတယ်။ အဓိက စကောကရင်အတွက် သတ်မှတ်ပေးထားတာပာ။ အဲဒီမှာ ဝိဝာဒကွဲစရာဖြစ်လာပာတယ်။ Myanmar3 မှာ ခ၊ ဂ၊ င၊ ဒ၊ ပ၊ ဝ အက္ခရာတွေနဲ့ ဝိုက်ချ (ာ) U102C နဲ့ ပောင်းတဲ့အခါ dotted circle နဲ့ အမှားအနေနဲ့ ပြပာတယ်။ အောက်က နမူနာမှာ အပေါ်လေးကြောင်းက ဝိုက်ချ (ာ)၊ အောက်လေးကြောင်းက မောက်ချ (ါ) နဲ့ ရေးထားတာပါ။

Myanmar3

Masterpiece Uni Sans

တကယ်တော့ "ခ+ာ" က "ဘ"၊ "ဂ+ာ" က "က"၊ "င+ာ" က "တ"၊ "ဒ+ာ" က "အ"၊ "ပ+ာ" က "ဟ"၊ "ဝ+ာ" က "တ" နဲ့ ဆင်တူလို့ မောက်ချ နဲ့ ရေးကြတာပာ။ ဒါပေမယ့် အဲဒီ အက္ခရာတွေနဲ့ ဗျည်းတွဲ ပောင်းတဲ့အခာကျတော့ ဝိုက်ချ (ာ) နဲ့ ရေးပာတယ်။ ဒဒွေးကတော့ ချွင်းချက်ပါ။ ဒဒွေး ရရစ် ကို ဝိုက်ချ (ာ) နဲ့၊ ဒဒွေး ဝဆွဲ ကို မောက်ချ (ါ) နဲ့ ရေးကြပါတယ်။ ဒဒွေး ယပင့် နဲ့ ဒဒွေး ဟထိုး တို့ကတော့ အသုံးမရှိဘူးထင်ပါတယ်။ ပာဌ်ဆင့် နဲ့ပောင်းတဲ့ စာလုံးတွေလည်းရှိပာသေးတယ်။

အဲတော့ ဒီအက္ခရာ ငားလုံး နဲ့ အာ-သရ ကို ဘယ်လိုစာလုံးစီကြမလဲ။ အဲဒီ အက္ခရာတွေနဲ့ အာ-သရ (ကြားမှာ ဗျည်းတွဲ၊ ပါဌ်ဆင့် မပာဘဲ) တိုက်ရိုက်ပောင်းတဲ့အခာ မောက်ချ (ါ) U102B နဲ့ စီမယ်၊ အခြားစာလုံးတွေအားလုံးကို ဝိုက်ချ (ာ) U102C နဲ့ စီမယ်လို့ သတ်မှတ်မှာလား။ ဒါဆိုရင် ဒဒွေး ဝဆွဲတို့ ဒဒွေးနှစ်လုံးဆင့်တို့ ကျတော့ကောလို့ မေးစရာဖြစ်လာပာတယ်။ စာလုံးစီပုံ တသမတ်တည်းမဖြစ်နိုင်ပာဘူး။ ခ၊ ဂ၊ င၊ ဒ၊ ပ၊ ဝ + ဗျည်းတွဲ / ပါဌ်ဆင့် + မောက်ချ (ါ) ဆိုရင် Myanmar3 ကရော အမှားအနေနဲ့ dotted circle နဲ့ မပြပေးဘူးလား။

စာရိုက်စနစ်က ရိုက်ချင်တာနဲ့ရိုက် အမှန်စီပေးဖို့ စီစဉ်ရမှာလား။ ကျွန်တော်အခုသုံးနေတဲ့ ibus-m17n မှာတော့ ဟိုအရင် ဝင်းမြန်မာလက်ကွက်အတိုင်း ဝိုက်ချ (ာ) ကို m၊ မောက်ချ (ါ) ကို g သီးခြား သတ်မှတ်ပေးထားပာတယ်။ စာရိုက်တဲ့သူက မှန်အောင်ရိုက်ပေတော့။ ကျွန်တော်ကတော့ ဝင်းမြန်မာ ရိုက်နေကျဆိုတော့ အခုစာရိုက်နေရင်း ခ၊ ဂ၊ င၊ ဒ၊ ပ၊ ဝ ဆိုရင် g နဲ့ ရိုက်ဖြစ်နေလို့ m နဲ့ ရိုက်ဖြစ်အောင်သတိထားရိုက်နေပါတယ်။ ဒီ ပို့စ်တစ်ပုဒ်လုံးမှာ ဝိုက်ချ (ာ) နဲ့ပဲ စာစီထားပာတယ်။ ဝိဇ္ဇာလို romanize စနစ်တွေမှာတော့ စာလုံးပော်လိုက်ပြီး စီပေးရင်ဖြစ်နိုင်ပာတယ်။ ဒာတောင် အပော်ကဘယ်လိုစာလုံးစီမှာလဲဆိုတာ ပြေလည်သွားမှပာ။ ကိုရာဗီ ရဲ့ NHM မှကော စည်းမျဉ်းတစ်သိန်းကျော်က ဘယ်နှစ်ခုလောက်ထပ်တိုးရဦးမလဲ :)

ဘယ်လို စီစီ မှန်တယ်ကွာ၊ ပုံဖော်စနစ်က အမှန်ပြပေးရမယ်ဆိုရင်ကော။ ခ၊ ဂ၊ င၊ ဒ၊ ပ၊ ဝ + ဗျည်းတွဲ / ပါဌ်ဆင့် + မောက်ချ (ါ) ဆိုရင် ဝိုက်ချ (ာ) နဲ့ ပုံဖော်ပေးရမှာလား။ Masterpiece Uni Sans ကတော့ Unicode 5.1 ကအတိုင်းပဲ ရှိနေပာသေးတယ်။ Unicode 5.1 ပြောင်းတုန်းက မောက်ချ (ါ) အတွက် ထည့်မရေးထားမိဘူး ထင်တာ အပော်ကနမူနာမှာ ရရစ်နဲ့မှာ ဝိုက်ချ (ာ) ပြောင်းပေးပါတယ်။ ယပင့်၊ ဝဆွဲ၊ ဟထိုး တွေနဲ့ဆို မမှန်ပာဘူး။ ကျွန်တော်အနေနဲ့ ထပ်ထည့်ဖို့ ဝန်မလေးသလို မခဲယဉ်းပာဘူး။ သေချာပြီဆိုရင်ပော့ :)

ထုံးစံအတိုင်း UTN11_3 ပြန်ကြည့်ရအောင်။ ပုံဖော်စနစ်အနေနဲ့ U102C ကို ခ၊ ဂ၊ င၊ ဒ၊ ပ၊ ဝ အက္ခရာတွေနဲ့ ပောင်းတဲ့အခါ မောက်ချ (ါ) အနေနဲ့ မပြောင်းသင့်ဘူးလို့ ဖော်ပြမထားသလို အဲဒီအက္ခရာတေွကို U102B နဲ့မှ စာစီရမယ်လို့လည်း ပြောမထားပါဘူး။ နမူနာလေးခုနဲ့တော့ U102B နဲ့ U102C အသုံးကို ခွဲခြားပြထားပာတယ်။ ပြီးတော့ "ြမန်မာသီးသန့် စာရိုက်စနစ်အနေနဲ့ သတ်သတ်မှတ်မှတ် အက္ခရာများ (ခ၊ ဂ၊ င၊ ဒ၊ ဓ၊ ပ၊ ဝ)၊ ဗျည်းတွဲများ၊ ပါဌ်ဆင့်များ နဲ့ဆိုရင် အ-သရ ရဲ့ မူကွဲပုံစံတစ်ခုခုကို လိုက်နာအောင် ရွေးချယ်စေနိုင်တယ်၊ ဒါပေမယ့် လိုအပ်ချက်မဟုတ်ပေဘူး" လို့ဆိုထားပြန်ပါတယ်။ အောက်မှာ ထုတ်နှုတ်ချက်လေးပါ။

The basic consonants and vowels are relatively obvious in how they are encoded, by examining the character charts. Thus:

စာ 1005 102C letter

Above we show the Myanmar word, the underlying Unicode codes that would be stored to represent this and an English gloss of the word. As this example shows, characters are stored in the order in which they
are read.
ခါ 1001 102B to shake
သိက္ခာ 101E 102D 1000 1039 1001 102C dignity
သဒ္ဓါ 101E 1012 1039 1013 102B faith

In this example, we highlight the code of interest. Notice how the ါ (U+102B MYANMAR VOWEL SIGN TALL AA) has a different code to the ာ (U+102C MYANMAR VOWEL SIGN AA). The Myanmar character underlying the two codes is the same, and there are rendering rules that can give the correct form, so why has the tall -aa been given its own code? The primary reason is that Sgaw Karen, among other minority scripts, only has the tall form, and so a rendering system that works for the Myanmar language is not going to work for Sgaw Karen and vice versa. A Myanmar language specific keyboarding implementation could choose to enforce a particular variant of the -aa vowel in the context of certain consonants (in Burmese following ခ, ဂ, င, ဒ, ဓ, ပ, or ဝ), medial combinations and syllable chainings, but this is not required.


ကျွန်တော်ကတော့ အောက်ကနမူနာလေးတွေထပ်ဖြည့်ပေးချင်ပါတယ်။
ခွာ(တယ်) 1001 103D 102C to peel
ကုမုဒြာ 1000 102F 1019 102F 1012 103C 102C water lily

တော်တော်လည်းရှည်သွားပြီ။ နိဂုံးချုပ်ပာတော့မယ်။ ယူနီကုဒ်ဆိုတာ စာလုံးအမြင်ကိုလိုက်ပြီး စာလုံးစီပာသလား။ Does unicode encode based on the different visual variants of a particular letter?

မှတ်ချက်။ ။ ကိုLionslayer ရဲ့အသုံးအတိုင်း encode ကို စာလုံးစီတယ်လို့ သုံးထားပါတယ်။

Wednesday, October 27, 2010

mymr-pangomod-0.8.0 - အသတ် နှင့် အောက်မြစ်

ဒီနေ့တော့ Myanmar Opentype spec မဆက်နိုင်တော့ဘူး၊ အရေးပော်တစ်ခု ပော်လာလို့ mymr-pangomod ပြန်လုပ်နေရတာ။ အသတ် နဲ့ အောက်မြစ် အစဉ်ပြဿနာပာ။ မနေ့က MITP မှာ ကိုLionslayer ရဲ့ ယူနီကုတ် စာလုံးစီပုံ ဆွေးနွေးချက်လေး သွားတွေ့တာက စတာပါ။ ကောင်းတယ်ဟ ဆိုပြီးဖတ်ရင်းနဲ့ အသတ် နဲ့ အောက်မြစ်တွေ အမှားပြနေတာ သတိထားမိပာတယ်။ (အောက်ပုံ ညာဘက်ခြမ်းမှာကြည့်ပါ) အရိုက်မှားတာနေမှာပာဆိုပြီး ဆက်ဖတ်နေရာက မသင်္ကာလို့ အရင်ပို့စ်တွေပြန်ကြည့်တော့ မှန်နေသား (အောက်ပုံ ဘယ်ဘက်ခြမ်း၊ MITP မှာ ယူနီကုတ်ပို့စ်ကလည်း အရှားသား)

အောက်မှာ "အဲဒီနောက်မှာမှ 'သေးသေးတင်၊ အောက်ကမြစ်၊ ဝစ္စပေါက်၊ အသတ်' တွေကို နောက်ဆုံးပိတ် ထည့်ပါတယ်။ အသတ်ကိုတော့ အသံကို သတ်ပစ်တယ်လို့ သတ်မှတ်ပြီး အောက်ကမြစ်နဲ့ ယှဉ်လာရင် နောက်ဆုံးမှ ထည့်ပါတယ်။" လို့ရေးထားတာသွားတွေ့တော့မှ တော်တော်ဦးနှောက်ခြောက်သွားပါတယ်။ တောက်လျှောက်သိထားတာ အသတ်၊ အောက်မြစ်။ mymr-pangomod မှာရေးထားတာလည်း အသတ်၊ အောက်မြစ်။ 5.1 မှာပြောင်းတယ်လို့လည်း သိမထားပါဘူး။ နောက်ဆုံး မကျေနပ်လို့ Technical note ပြန်လှန်ရပါတော့တယ်။ အစဉ်ဇယားက အတိုကောက်အသုံးအတွက် အသတ်ကိုပဲ အမြဲကြည့်နေခဲ့တာ၊ အောက်နားက မြင်နိုင်တဲ့ဝိရာမ (visible virama ကိုဘာသာပြန်လိုက်တာလက်လွန်သွားတယ် :) ကို မမြင်မိဘူး။ Normalization မှာရေးထားတာတော့ရှင်းပါတယ်။ ငြင်းစရာကိုမရှိတော့ပါဘူး။ ဒါနဲ့ပဲ mymr-pangomod ပြင်ရတဲ့အဆင့်ရောက်သွားရော၊ ubuntu package လေးပါပြန်လုပ်နေတော့ ဒီနေ့မှ အဆုံးသတ်နိုင်ပါတယ်။ အောက်မှာ screenshot လေးပါ။ Normalization မှာ Rendering က အစဉ်နှစ်ခုလုံးပြနိုင်ရင် ကောင်းမယ်လို့ဆိုထားပေမယ့် အောက်မြစ် နောက်ကလာရင်အမှားအနေနဲ့ပဲပြထားပါတယ်။

အရင်ကတောက်လျှောက် ဝိဇ္ဇာ နဲ့ပဲရိုက်နေတာ၊ ဝိဇ္ဇာကလည်းမှားနေတာပော့။ ဝိဇ္ဇာက အခုသုံးနေတဲ့ ubuntu 10.04 နဲ့ အဆင်မပြေသေးလို့ ibus-m17n သုံးနေရတာ အောက်မြစ်၊ အသတ် ကိုတော်တော်သတိထားပြီး ရိုက်နေရပါတယ်။ အောက်မြစ်၊ အသတ်။ အောက်မြစ်၊ အသတ်။ တော်တော်တော့ ကသိကအောက်နိုင်သား။
စမ်းချင်သူများအတွက် mymr-pangomod-0.8.0 လင့်လေးတွေပါ။ sourceforge မှာတော့ release မလုပ်သေးပါဘူး။

source package
mymr-pangomod-0.8.0.tar.bz2

ubuntu binary package
mymr-pangomod_0.8.0-0ubuntu1_i386.deb

ubuntu source packages
mymr-pangomod_0.8.0.orig.tar.gz
mymr-pangomod_0.8.0-0ubuntu1.diff.gz
mymr-pangomod_0.8.0-0ubuntu1.dsc

fedora 14 binary package
mymr-pangomod-0.8.0-1.fc14.i386.rpm

fedora 14 source package
mymr-pangomod-0.8.0-1.fc14.src.rpm

Tuesday, October 26, 2010

Myanmar Opentype specification - features (2)

Below-base form

Feature tag: "blwf"

The feature "blwf" is used for the case of syllable chaining where subscripted consonant is rendered as below-base form. Below-base forms tend to be smaller than their full forms and may be rotated.


အက္ခရာ 1021 1000 1039 1001 101B 102C Alphabet



သဏ္ဌာန် 101E 100F 1039 100C 102C 1014 103A Form

Monday, October 25, 2010

Myanmar Opentype specification - features (1)

တကယ်ကိုချရေးဖြစ်ပါပြီ။ အစက ရည်ရွယ်ချက်က Microsoft ရဲ့ ပုံစံအတိုင်းရေးဖို့ပါ။ သူတို့မူကြမ်းကို ဒီလင့်မှာ တွေ့နိုင်ပါတယ်။ ကျန်တဲ့အပိုင်းတွေကိုချန်ပြီး အဓိကကျတဲ့ features ကိုပဲ ဦးစားပေးရေးသွားပါမယ်။ Copyright အရ သူတို့ပုံစံအတိုင်းမရေးတော့ဘဲ အဆင်ပြေသလို feature တစ်ခုချင်း နမူနာလေးတွေနဲ့ နမူနာကိုလည်း အတတ်နိုင်ဆုံး စုံလင်အောင် ကြိုးစားတင်ပြသွားပါမယ်။ feature တွေရဲ့ ဖော်ပြချက်အပြည့်အစုံကိုတော့ သူတို့မူကြမ်း နဲ့ OpenType specification ကိုသာ ရည်ညွှန်းကြပါတော့။ သူတို့မူကြမ်းက Unicode Version 4 ပေါ်မှာ အခြေခံထားတာဆိုတော့ terms မှာလည်း ဖြည့်စွက်ပြင်ဆင်စရာလေးတွေရှိပါတယ်။ features တွေမှာလည်း ရရစ်အတွက်ဖြစ်တဲ့ pref (Pre-base forms) ဆို ပါတော့မယ်မဟုတ်သလို mkmk (Mark to mark positioning) ဆို သူတို့မူကြမ်းမှာ မပါပါဘူး။


Above-base form

Feature Tag: "abvf"

Typical use is for "Kinzi". When consonant "NGA" forms consonant cluster with other consonant, "NGA" is rendered as above-base form, rises over the second consonant and keeps its visual virama (asat), rather than pushing the second consonant below it as below-base form.


အင်္ဂါနေ့ 1021 1004 103A 1039 1002 102B 1014 1031 1037 Tuesday