How Arabic Letter Changes from Isolated to Initial and Medial and Final??

Salam to all members

This is my first posting but not the first visit to the forum. I have some problems to share with forum members if anyone may solve my problems. I want to write an algorihm for Arabic characters but I did not achieve the goal after trying for round about 10 hours. I will justify my problems with the help of steps (let suppose for some characters).
1. When I press a key for Arabic letter Beh (ب), its isolated form is displayed.
2. In step 2, not pressing any space, when I press another kety, say Kaf (ك), the letter Beh changes to its initial form while letter Kaf automatically changes to its final form.
3. In step 3, the step 2 is repeated untill the space button is not pressed.
HOW THIS WHOLE PROCESS IS PERFORMED, PLEASE GIVE ME YOUR KIND ATTENTION.

Jamil Khan

Thomas Phinney's picture

Knowing what operating system(s) and language(s) you are working with would be helpful. Or is it for a web form? Or...?

But to answer more generally, the answer is "it depends," and what it depends on can vary by operating system and font technology. Doubtless someone else with more expertise in this specific area will come along and give you a more useful answer, but perhaps this can be a start.

Typically programmers rely on system APIs for this sort of thing, and ignore all the details. Or they use cross-platform open source libraries to handle it. Or they are working with some other environment (e.g. Java, Python, something) that has platform-independent language-processing support. The various operating systems and text-handling libraries have largely "solved" this problem for Arabic and most other common languages.

Section 8.2 of the Unicode standard specifies how "shaping" (the general term for this sort of glyph substitution and positioning) is supposed to work for Arabic. However, Unicode encoding alone does not solve the problem, as Unicode assumes that a lot of the smarts comes from somewhere else.

Text-processing systems work in conjunction with specific kinds of fonts. So for example, a given system might work with any Unicode-encoded Arabic TTF or OTF font, or it might require OpenType or AAT tables supporting the language processing.

Cheers,

T

Bahman Eslami's picture

Ordinarily "Opentype" programming will do the trick for you, (as thomas sayed it depends on operating systems you are using).

Thomas Phinney's picture

Yes. Apple for instance has better support for AAT than OpenType still, but have been working towards OpenType. Not sure if/when they got to the point of decent Arabic support for OpenType (or if they are still on the way).

T

Bahman Eslami's picture

I work in Osx and I use OpenType layout tables to generate arabic fonts, First I ship the font in fontlab (OSX) then in VOLT (windows) I add the Opentype features and it works pretty fine (both on mac and windows). AAT seems to be much flexible but I couldn't find an easy way to use it. Programming makes me nauseated, It doesn't mean that I don't tweak the result of VOLT features, because I do. but AAT isn't well documented and doesn't has a designer friendly tool.

khalid's picture

I have designed an Arabization system for AutoCAD long time ago. The system uses a program that I developed in AutoCAD's AutoLISP programming language and performs glyph catenation and character replacement using a "lookup table" algorithm. You may wish to browse through the lisp file included in the Arabization package which you can download from here. The package also has documentation in English.

If you read Arabic, you may also wish to read the article about the system on my blog.

Thomas Phinney's picture

A colleague at Apple tells me that CoreText has decent Arabic support, at least as of 10.6. In OS X 10.4, CoreText is available only to Cocoa apps; in 10.5 and later to both Cocoa and to Carbon (ATSUI) apps.

Cheers,

T

Zia ul Hasan Wasti's picture

جمیل خان صاحب
السلام علیكم

فانٹ بناتے وقت اس كی ایم ایس وولٹ میں پروگرامنت كی جاتی ہے كہ جب آپ ب مفرد پریس كرو تو ب مفرد ہی آئے اور جب ب مفرد كے ساتھ كوئی دوسرا لفظ لكھا جائے تو وہ ب مفرد كے بجائے ب انٹ میں چینج ہو جائے اور اسی طرح سے تمام حروف كو یہ پروگرامنگ دی جاتی ہے اور تمام نسخ میں تمام حروف كی تین تین اشكال موجود ہوتی ہیں مثلا ب مفرد كی تین اشكال ہیں
ب انٹ
ب مڈی
ب فنا
چند حروف كی دو دو اشكال ہوتی ہیں مثلا
دال رے اور واو كی دو دو اشكال ہیں
دال مفرد اور
دال فنا
ان تمام الفاظ كی اور مفرد اشكال ہیں ان كو یونی كوڈ ولیدی دی جاتی ہے
مثلا ب مفرد كی ویلو ہے
U+0628
وولٹ میں كہا جاتا ہے كہ
U+0628 جب لكھا جائے تو
اس كو ب انٹ لكھ دینا
اسی طرح سے
جب دو الفاظ كے درمان میں
U+0628
مندرجہ بالا كوڈ لكھاجائے تو
ب مڈی دے دینا
اور جب یہی تین یا چار یا پانچ حروف كے آخر میں ٹائپ ہو تو
U+0628
تو تم اس كو
ب فنا كی شكل دے دینا
و السلام
سید ضیائ الحسن واسطی

Muhammad Rashid Shaikh's picture

Dear Ziaul Hasan Wasti Sahib

I want to develop a new Urdu font using Calligraphic samples of one of famous Calligrapher. Can u please inform me how I can develop it as Character based having full beauties of Calligrpaphy.
Please see detail of my books(including Islamic Calligraphy) at following link
www.openlibrary.com/authors/Muhammad Rashid Shaikh

Muhammad Rashid Shaikh's picture

سید ضیا ء الحسن واسطی صاحب
السلام علیکم
میں آپ کے جواب کا منتظر ہوں

محمد راشد شیخ

Syndicate content Syndicate content