🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

BitmapFont with right-to-left direction (Arabian)

Started by
4 comments, last by openglinator 10 years ago

Hello,

I just made a font that also supports Arabian symbols.

As most people know, they read from right-to-left, not left-to-right.

The NetBeans-IDE for example supports this, but my fnt. renderer (jMonkeyEngine) doesn'nt do it somehow.

Even when I ead the unicode marks (0x200F, 0x200E), there doesn't seem to change anything.

The two unicode symbols are in the font (id=8207, id=8206) descriptor file.

Since I have no other possibility to test .fnt files, I just wanted to ask, if someone could test my font with right-to-left Arabian language.

I want to confirm, that this occurs on other render engines too.

I plan to modify the engine I use, to support right-to-left / left-to-right switching, when I have time.

Another workaround is, to invert the char array counting order in the string before sending it to the renderer.

As before, the workaround seems to be the better solution.

Advertisement

I wish I could help you. Implementing support for rendering the text right-to-left shouldn't be too difficult. But I don't know Arabian so I wouldn't be able to validate the result. :)

AngelCode.com - game development and more - Reference DB - game developer references
AngelScript - free scripting library - BMFont - free bitmap font generator - Tower - free puzzle game

I don't know Arabian either - here is how I work with it:

I open a Wikipedia-article, for example the one about "Morocco".

There are some arabian texts - copy,paste them into a modern Code-IDE like NetBeans.

Render the text - compare it to the Wiki article and to the IDE text.

Funny thing: NetBeans inserts new space characters to the left and editing the string becomes a strange thing.

cool.png

In the meantime I found out, that there is a c'tor parameter for right-to-left like so: new BitmapText(rightToLeft)

Also I've been busy and created several support functions that fix numbers and company names in Arabian text.

Usually your text with numbers will look like that:

"I didn't want my Robotto for 2000 dollars, i wanted it for 1000 dollars."

" ? ? ??? ???? ?????? ??? ??? ???? 2000? ???? ???? ?? ??1000? ????.Robotto ???? "

So I utilized the Regex capabilities of the Java standard library and replaced the reversed things.

I'm also now capable of rendering bi-directional text, which is arabian embedded in latin language.

This is still a little cumbersome to handle, but it works in principle.

cool.png

Nice cool.png

AngelCode.com - game development and more - Reference DB - game developer references
AngelScript - free scripting library - BMFont - free bitmap font generator - Tower - free puzzle game

Google Translator helps a lot too.

Too bad that the translated sentences have poor grammar and many errors.

Problem is to make the Right-To-Left and Left-To-Right flags visible.

At runtime, I can make them visible (of course), but editing text with these flags is quite difficult.

And the next problem is to build a good editor for those not technically skilled and writing the text content for my game.

I have support for flags like "<arabic></arabic>" and "<hebrew></hebrew>", but that's quite useless for these people.

I thought about a parser that can parse OpenOffice Writer documents (.odt files).

Or maybe spreadsheets via OpenOffice Calc - I need that capability anyhow.

Maybe .csv export/import...

Still a long way until the text workflow is defined and up and running.

This topic is closed to new replies.

Advertisement