Like many other apps, Blender does not work well with Arabic or other right-to-left written languages. ArabBlend writer Islam Abofarha explains how to work around this.
Islam writes:
When i started using blender i tried to use Arabic letters but unfortunately i found that blender is not fully equipped by the tools to append Arabic scripts.
I found the problem in two things :
- Right to Left characteristic of Arabic.
- Arabic Letters are connected to each other .
The same problem i faced in some softwares like 3d Studio Max and Old versions of Photoshop. I overcame it by using programs which has its own fonts. These fonts are Latin fonts in origin but there characters are replaced by Arabic characters and inverse the order of the sentence letters to be from the left to right.
I could use these softwares but the problem it can not used with Linux platform .It's for windows only .
So , i found a better way which will be compatible with all platforms by simulating its work using BLENDER and these fonts directly.
Links
23 Comments
Hi
I don't speak arabic at all.. but this still seems complicated. Maybe there should be some python script for this, which would type the letters in reverse order and find the right linking characters, I don't know.
i think it's not hard to do it .the problem is i didn't get the chance to learn python :(
but i will learn .... :)
hey
I had a look on wikipedia for how arabic gets written.
Letters change shape if they are at the beginning, in the middle, at the end of a word or isolated.
If there's a python script, it could see very easily for each letter which shape (beginning,middle,end,isolated) has to be used, and then pick the right character in the alphabet (and have no need to add a small separated ligature character). Do your fonts file have beginning,middle,end,isolated shapes ? or is that just isolated shapes that you have to complete with some ligature ?
The Font file has all shapes of every letter .there is another thing you have to notice, the keyboard layout had changed in these fonts .so the layout of the font must be considered also .
it is not hard to do it just choosing right shapes , translate layout and inverse the order and u get the sentence u want .
i can program it in c++ but python i didn't focus on it when i learned programming .
I think it would also interest graphist from the CKJ zone (China, Korea, Japan) because people write not only left-to-right, but also right-to-left, top-to-bottom and bottom-to-top...
:p Maybe it's time to enhance the text functions in blender... (thinking international) as it could be use for TV jingles or titles everywhere...
I think u r right aws357 .many GNU programs support internationalization .i'm using Ubuntu which is great OS .it's arabic fully supported.Also GIMP i can use arabic with it too.
potrebuju to cesky
The simplest way I see of writing arabic or any other
language with the same graphic properties seems to
write the text (or import a scan of it)in a vector drawing software like Inkscape, export it in SVG format and
import it into Blender...
this is very useful. i know i will come to using it one day
thanks islam
@ROUBAL
Does inkscape handle all the special cases of arabic text right? I heard that pango applications + fonts have some limitations (that can only be compensated by a gtk overhaul which will happen/is already in progress).
Bravo, Islam. I have always found Arabic writting beautiful, but don't know how to read it. I did not know the letters change depending on where they are in a word. Thank you for your work.
Good. Arabic is a very pretty written language, and users who need this function will be glad to know there's a way to do it. Thanks.
There is a free editor to write semitic languages from right to left & adjust keyboard bindings BOTH for MSWindows and Xwindows (Linux):
http://www.yudit.org/download.html
leads you to a page where you can download both source & binaries.
You can adjust/edit/compose your own arabic fonts and modify existing ones by using
Fontforge, which is also free & platform independent (fantastic program BTW, merits a four star rating !)
Why duplicate work already done ? And don't underestimate the effort of adjusting to the different letterforms in dependance of their in-text positions (Yudit will do this AUTOMATICALLY !); even for a Python crack will it be a major undertaking .... and there are other projects which are in more dire need of (Pythonite's) help ;-) ...
just my 2 cents ....
Hi,
@ROUBAL: i use inkscape for persian it works fine,
and @panzi yes it supports all case, at least for persian language
Hi
thx for ur intrest guys it's nothing.
i think Yudit and inkscape are good ideas too
but i'm just wondering why blender can not support non latin character writtings directly .are there projects around to do that ?
i hope so .as i think this will help alot and non latin language users can help to perform that .
@islam
As I understand it, blenders codebase needs major refactoring to make such features possible. But major refactorings are scheduled for blender 2.50, so maybe after 2.50 such a feature will be implemented. Again, this is only what I "heard", nothing I know for sure.
I have put this into Blenderstorm as idea #363: Handle right-to-left text correctly http://www.blenderstorm.org/qapoll/ideas/idea/363/ . Mod it up if you think it is work doing.
i hope this refactoring can give us the opportunity to help .and i vote yes for you idea martin .
A python script would be useful indeed.
Hi all, thanks [email protected] for this article, in fact I always found this lack of handling complex scripts languages in blender somewhat limiting.
But I found my own workaround I do write my text in Inkscape or in gimp and transform it to path then import it in blender, and this works fine for me, though results are better with Gimp (no need for any adjustment after import ).
But indeed it would be great to have this feature in blender.
@islam, thank you for the interesting article (I read the English
version). As some people have pointed out, a Python script for
Complex Text Layout (CTL) would be helpful.
This idea reminded me that I had tried the same thing in Skencil,
a vector drawing program that allows plug-ins to be written in
Python. The results of my trials and errors are available as an
experimental Skencil plug-in named PolygloText:
http://www.asahi-net.or.jp/~rd6t-kjym/sketch/#PolygloText
I achieved CTL by means of the m17n library. The Skencil plug-in
may be a little bit out of date, since it uses an older version of
the m17n library.
I believe, however, this Skencil plug-in would be a good start point
for a script for CTL in Blender. I don't have enough time and
knowledge to implement it at the moment. So if someone is willing
to do that, please feel free to ask me for help. My e-mail address
is shown in the documentation of PolygloText.
*hello
*i have used gimp for the font that you can export to jpg or another graphic format then opened the file with inkscape
*inkscape will convert the bitmap to a path and then saved work as svg file
*imported that svg to blender
*et voilà ...
@T.K.I think ur script is interesting.Indeed it can be used as a base .It uses the same Technique .
Thx