زبان مادری خود را به اندروید بیاورید
همانطور که میدانید سیستم عامل اندروید از فارسی پشتیبانی نمیکند، البته از نسخه ۳ که برای تبلتها ارائه شد، مشکل فارسی را در آن تا حدودی حل کردند، اما در نسخه 2/3 به کمال خود رسید و علاوه بر اجزای سیستم عامل، مرورگرها و همینطور کیبورد فارسی به سیستمعامل اضافه شد.
با این حال کماکان در دستگاههای موبایل نبود نمایش متون فارسی همچنان اذیتکننده بود، اما کاربران حرفهای با Root کردن دستگاه موبایل خود و نصب کتابخانههای فارسیشده اندروید، مشکل فارسی را در آن حل
کردهاند. از سوی دیگر بعضی کمپانیها با تغییر در سیستم عاملی که روی دستگاههای خود ارائه میکند به کاربر امکان استفاده از زبان فارسی را میدهد؛ برای مثال تمامی گوشیهای تلفن همراه سامسونگ در ایران از زبان فارسی پشتیبانی میکند.
اما این مشکل تا سال پیش که اندروید نسخه ۴ را که با اسم رمز Ice Cream Sandwich)ICS بستنی حصیری) ارائه کند ادامه داشت. پس از ارائه این نسخه مشکل اندروید با زبان فارسی و زبانهایی که UTF-8 بودند حل
شد. یکی از ویژگیهای دیگر ICS اجرای همزمان روی تبلت و دستگاههای موبایل بود. این سیستم عامل امکان قابلیت اجرا شدن روی هر دستگاهی را به شما میدهد.
اما استفاده از ICS هنوز برای تمامی کاربران اندروید مقدور نیست، به روزرسانی آن باید توسط کمپانی ارائه شود که این موضوع در برخی مدلها و بعضی از کمپانیها هنوز لحاظ نشده است. البته شما میتوانید با نصب Custom ROMهای اندروید ICS روی دستگاههای خود لذت استفاده از آن را امتحان کنید.
برگردیم به مشکل قبلی؛ میخواهیم متون فارسی را در اندروید نسخههای 3/3/2 به قبل نمایش دهیم. این که سیستم عامل متن فارسی را نشان نمیدهد، کاملا ۱۰۰ درصد نیست و شما میتوانید با ترفندهایی که در پایین مطلب ذکر شده است به دستگاه خود این امکان را بدهید تا از قابلیت نمایش زبان فارسی برخوردار شود، اما این نکته را همیشه در ذهن داشته باشید که سیستم عامل اندروید با متنهای Bi-Directional مثل متون عربی و فارسی و... مشکل دارد.
برای این که با مشکل موجود آشنا شوید به این عکس دقت کنید؛ همان طور که میبینید متن فارسی جدا جدا نوشته شدهاست. قبل از پرداختن به این مشکل، درباره رندر کردن متن توسط اندروید صحبت میکنیم.
در زبانهایی مثل فارسی و عربی هر حرف اشکال مختلفی دارد؛ برای مثال ما چهار مدل «ی» داریم، مثل:
ی اول: زمانی که حرف «ی» اول کلمه میآید مثل یا، یاور و...
ی وسط: زمانی که حرف «ی» بین دو حرف دیگر میآید مثل کیک، کلیک و...
ی آخر چسبان: حرف «ی» آخرین حرف است ولی قبل از آن به حرف دیگری چسبیده باشد مثل ولی، منطقی و...
ی آخر: حرف «ی» در آخر کلمه میآید و به هیچ حرف دیگری نچسبیده است مثل شهری،
ابری و...
بنابراین برای هر حرف مدلهای مختلفی داریم؛ در حالی که اندروید زمانی که یک متن را میخواهد نمایش دهد همان حالت اول را در نظر میگیرد، اما چگونه این مشکل را حل کنیم؟
شما میتوانید برای نمایش متون فارسی و عربی از «یونیکد» آنها استفاده کنید. همانطور که میدانید هر کاراکتر یک کد خاص دارد. به طور مثال هر چهار حالت حرف «ی» دارای یک کد منحصر به فرد است.
کاری که شما میتوانید انجام دهید این است که رشته متنی ورودی خود را بگیرید و با تشخیص مکان حرف «ی» در یک کلمه، یونیکدی را که برای نمایش آن حالت از حرف «ی» است جایگزین کنید و سپس متن خود را نمایش دهید و از فارسی در اندروید لذت ببرید. به عکس دقت کنید.
اما قبلتر از این، یک کتابخانه کوچک برای این تبدیل نوشته شده است که با استفاده از آن میتوانید متن عربی و فارسی را به آن بدهید و متن درست شده را در خروجی نمایش دهید.
مانند کد زیر:
try {
TextView tv = (TextView)findViewById(R.id.text);
AssetManager manager=this.getAssets();
manager.open("tahoma. ttf");
tv.setTypeface(Typeface. createFromAsset(manager, "tahoma.ttf"));
tv.setGravity(Gravity.RIGHT);
tv.setText(Farsi.Convert
("رادیو110"));
} catch (IOException e) {
e.printStackTrace();
}
کتابخانه فارسی را میتوانید از آدرس زیر دانلود کنید:
http://azure3bt.persiangig.com/farsi.java
برای متون عربی هم میتوانید با استفاده از سورس کد نرمافزار قرآنی Qiraat براحتی متون عربی را نمایش دهید. برای دانلود سورس و استفاده از آن به لینک زیر بروید: