سلام، حتما دیدید که بعضی نرم افزار موبایل فارسی رو درست نشون نمی دن. مثلا "سلام" رو می نویسن " س ل ا م" یا "م ا ل س" این برنامه این مشکلات رو در نمایش متون رفع می کنه.
طریقه ی استفاده:
برنامه(فایل patchFontMe.jar) رو در کامپیوترتون اجرا کنید و دکمه ی Load app رو بزنید و فایل jar برنامه ای که مشکل داره رو بهش بدید بعد دکمه ی patch app رو بزنید تا فایل خروجی رو بهتون بده این فایل دیگه مشکل نمایش فونت رو نخواهد داشت. من این کار رو روی نرم افزار Opera mini انجام دادم و روی W810iجواب گرفتم.
لطفا اگر از این نرم افزار استفاده می کنید نتیجه رو در اینجا بگید.
این مشکل در بسیاری از مدل های sonyEricsson و nokia وجود داره و به درد هزاران نرم افزار روزنامه خوان و مرورگر وب و... می خوره و اولین باره که تولید می شه، چیزی که الان نیاز دارم یک سایت دو زبانه(فارسی و انگلیسی) برای معرفی و ارایه نرم افزار هست اگر مایل به همکاری در این زمینه هستید با من(amirreza_shaban در یاهو) تماس بگیرید.
اطلاعات تخصصی در مورد نحوی کار نرم افزار:
مشکل اصلی در نمایش متون از برنامه نیست بلکه به نوعی باگ گوشی محسوب می شه. این گوشی ها Shaping Engine ندارن، کار shaping engine اینه که تشخیص بده کجا از حروف بزرگ استفاده کنه و کجا کوچک مثلا در کلمه ی "س ل ا م" متن دقیقا به همین صورت در String وجود داره ولی وقتی شما تابع Graphics.drawString رو صدا می زنید هنگام رندر تشخیص داده می شه که باید از حرف اول-وسط-یا آخر استفاده کرد. کاری که من در این برنامه انجام می دم اینه که bytecode های برنامه رو می خونم و جاهایی که تابع drawstring صدا زده می شه اول shapping و joining کارکترها رو انجام می دم و حالا drawstring رو برای string جدید صدا می کنم.چنین کاری رو برای توابع(drawChars , drawSubstring, StringWidth , charsWidth) هم انجام می شه. در مواردی که گوشی متن رو برعکس هم چاپ می کنه لازم هست که قسمت های فارسی متن حاصل رو برعکس کنم و قسمت های انگلیسیش رو دست نزنم و نتیجه می شه این چیزی که در این برنامه می بینید.


