# Native Code > برنامه نویسی موبایل > Android Studio >  ساخت نرم افزار های فارسی برای آندروید

## CYCLOPS

سلام به همه دوستان

کسی اطلاع داره برای نوشتن برنامه ی فارسی تو آندروید چه محدودیت هایی وجود داره؟؟
چطور باید شبیه ساز یا کیبردش رو فارسی کرد؟؟
از Right To Left در چه سطح ساپورت میشه و ... 
خواهشا اگر کسی در این زمینه اطلاعاتی داره اینجا مطرحش کنه

پیشاپیش از توجهتون متشکرم  :چشمک:

----------


## mahdi68

سلام
کلا تا نسخه 2.2 در حالت عادی از فارسی ساپورت نمیکنه . نوشته های فارسی جدا جدا نشون میده . من برای حل این مشکل از تصویر به جای متن استفاده کردم یعنی متنی که میخوام نمایش بدم تو فتوشاپ ساختم و بعد در برنامه نمایش دادم البته این روش بهینه و درست نیست . روش دیگه هم استفاده از CMS هایی مثل polish هست که تو اون میشه از BitMap Font استفاده کرد

----------


## CYCLOPS

سلام
ممنون از پاسخت دوست عزیز
نسخه 2.3  هم همین وضع هست ؟؟
شنیدم از عربی ساپورت میکنه این کمکی نمیکنه ؟؟

----------


## mahdi68

سلام 
تا جایی که من اطلاع دارم نسخه 3.0 یا همون Honeycomb این مشکل وجود نداره و از زبان های RTL به صورت کامل پشتیبانی میکنه

----------


## vcldeveloper

> نسخه 2.3  هم همین وضع هست ؟؟


تا جایی که اطلاع دارم، تا قبل از Honeycomb خبری از پشتیبانی از فارسی نیست. کلا اندروید با راست-به-چپ مشکل داره. شرکت هایی مثل سامسونگ که گوشی هاشون مشکل راست-به-چپ یا پشتیبانی از فارسی نداره، به خاطر تغییراتی هست که خودشان اعمال می کنند، نه قابلیت های اولیه خودِ اندروید.

----------


## CYCLOPS

در مورد فارسی کردن آندروید اینجور که من پیگیری کردم و متوجه شدم باید دستگاه اصطلاحا Root بشه و یه سری فونت فارسی ttf تو پوشه ی فونت دستگاه کپی بشه ولی نکته جالب اینجاست که گویا این کار هم لازم نیست و شاید قضیه از این حرفا (BitMap Font که *mahdi68* عزیز گفت و یا روت کردن و کپی فونت) راحت تر باشه چون آقای کیا تو برنامه دیکشنری از پشتیبانی فارسی به شکل قشنگی استفاده کردن فقط من متوجه نشدم که چطور پیاده سازیش کردن متن زیر که مربوط به تاپیک دیکشنری ایشون هست رو اینجا میذارم تا بخونید ببینید شما چیزی دستگیرتون میشه ؟؟

*دیکشنری اندروید فارسی به انگلیسی و بلعکس به  همراه ترجمه آنلاین و تلفظ کلمات*




> یه دایرکتوری بنام persiandicfonts روی مموری کارت  بسازید
> هر فونتی رو که توی گوشیتون هست یا توی ویندوزتون هست و فکر  میکنید خیلی باحاله و هیچ مشکلی با فارسی نداره و از خانواده فونتهای true  type هم هست(یعنی پسوندش ttf هست) رو به persianfont.ttf تغییر نام بدید و  به توی این دایرکتوری که ساختید کپی کنید
> برنامه جدید رو که ورژن 1.5 شد  رو نصب و اجرا کنید
> برنامه از فونت شما برای متون استفاده میکنه.اگر هم  دایرکتوری و فایل فونت رو پاک کنید و یا برنامه به هر دلیلی اونو پیدا  نکنه(مسیر اشتباه از طرف شما) هیچ مشکلی براش بوجود نمیاد و مانند ورژن  دومی که گذاشته بودم از فونت داخلی برنامه به اسم DroidSansArabic.ttf  استفاده میکنه

----------


## CYCLOPS

دوستان کسی به نتیجه ای نرسید؟؟

----------


## morteza57

من هم متاسفانه همین مشکل رو دارم و هنوز به نتیجه ای نرسید. دوستان اگر کسی راه حلی پیدا کرده لطفا بگه تا ما هم استفاده کنیم. یعنی این همه برنامه نویس ایرانی اندروید دارن واسه خارجی ها برنامه می نویسند؟ یا فقط از عکس استفاده می کنند؟
ممنون

----------


## kia1349

سلام.تاخير بنده رو ببخشيد.خيلي خيلي سرم شلوغه و ماموريت هاي طولاني مدت هم ميرم
من در مورد فارسي سازي براتون يه توضيحاتي با پيام خصوصي دادم.اگر مفيد بود ميتونيد براي استفاده دوستان همينجا درجش كنيد.به خدا وقت نميكنم وگرنه ميومدم مو به مو براتون توضيح ميدادم
كلا سه راه هست
1-استفاده از يه فونت كه فارسي رو خوب ساپورت كنه مثل DroidSansArabic.ttf كه من توي دايركتوري فونت برنامه ديكشنري گذاشتمش(نسخ هاي زيادي از اين فونت هست ولي اوني كه من گذاشتم هم فونتش با كلاس تره و هم هيچ اشكالي نداره).ميتونيد اين فونت رو توي پروژه تون بزاريد و ازش استفاده كنيد.امكان داره حروف رو جدا جدا ببينيد كه بايد با تكنيك reshaping مسئله رو حل كنيد.همون كاري كه توي برنامه mirsal انجام شده(_برنامه خوندن و نوشتن sms توي گوشيهاي اندرويدي كه فارسي رو ساپورت نميكنن).
2-استفاده از كدهاي يونيكد كه هر سيستمي ميتونه با اين كدها معادل فارسيشو درست نشون بده مثلا كد اعداد صفر تا نه اينهاست 
"\u0660", "\u0661",
			"\u0662", "\u0663", "\u0664", "\u0665", "\u0666", "\u0667",
			"\u0668", "\u0669",

3-استفاده از canvas و نشون دادن فونتها بصورت bitmap كه خفن سرعت رو كم ميكنه(بيشتر توي j2me ازش استفاده ميشه و خيلي استاندارد نيست)

----------


## CYCLOPS

> سلام.تاخير بنده رو ببخشيد.خيلي خيلي سرم شلوغه و ماموريت هاي طولاني مدت هم ميرم
> من  در مورد فارسي سازي براتون يه توضيحاتي با پيام خصوصي دادم.اگر مفيد بود  ميتونيد براي استفاده دوستان همينجا درجش كنيد.به خدا وقت نميكنم وگرنه  ميومدم مو به مو براتون توضيح ميدادم
> كلا سه راه هست
> 1-استفاده از يه  فونت كه فارسي رو خوب ساپورت كنه مثل DroidSansArabic.ttf كه من توي  دايركتوري فونت برنامه ديكشنري گذاشتمش(نسخ هاي زيادي از اين فونت هست ولي  اوني كه من گذاشتم هم فونتش با كلاس تره و هم هيچ اشكالي نداره).ميتونيد  اين فونت رو توي پروژه تون بزاريد و ازش استفاده كنيد.امكان داره حروف رو  جدا جدا ببينيد كه بايد با تكنيك reshaping مسئله رو حل كنيد.همون كاري كه  توي برنامه mirsal انجام شده(_برنامه خوندن و نوشتن sms توي گوشيهاي  اندرويدي كه فارسي رو ساپورت نميكنن).
> 2-استفاده از كدهاي يونيكد كه هر سيستمي ميتونه با اين كدها معادل فارسيشو درست نشون بده مثلا كد اعداد صفر تا نه اينهاست 
> "\u0660", "\u0661",
>             "\u0662", "\u0663", "\u0664", "\u0665", "\u0666", "\u0667",
>             "\u0668", "\u0669",
> 
> 3-استفاده  از canvas و نشون دادن فونتها بصورت bitmap كه خفن سرعت رو كم ميكنه(بيشتر  توي j2me ازش استفاده ميشه و خيلي استاندارد نيست)


منم از همین روشی که آقای رضا کیا عزیز گفتند (راه اول) استفاده کردم فکر کنم بهترین راه است و دیگه نیاز نیست نگران روت بودن گوشی و ورژن سیستم عامل و ... باشید در تکمیل پست ایشون عینا متن پیغام خصوصی ایشون رو براتون میذارم مطمئنم به دردتون میخوره




> يه تكنيكي هست بنام reshaping
> اين كلاس به شما امكان ميده توي بعضي از گوشيها كه فارسي دارن ولي  كاركترهاي فارسي به هم چسبيده نيستن رو به هم بچسبونيد.كاري كه توي برنامه  mirsal انجام شده
> دوم:شما ميتونيد يه فولدر بنام font در پوشه assets پروژه تون ايجاد كنيد و فونت مناسبي رو كه خوب عمل كنه در اون قرار بديد
> يه فولدر فونت هم روي گوشي ايجاد ميكنيد و تعدادي از فونتهاي خوب رو توش ميريزيد
> اگر كاربر فونتي رو از دايركتوري فونتها انتخاب كرد شما بايد مشخصات اون فونت رو توي فايل تنظيمات prefernce هاي برنامه ذخيره كنيد
> حالا موقعي كه ميخواهيد يه textview رو با يه فونت خاصي نمايش بديد كافيه  يه شرط بزاريد كه اگر كاربر فونتي رو به دلخواه از پوشه فونت توي گوشي  انتخاب كرده ، اون تكست با اون فونت نمايش داده بشه وگرنه شما تكست ويو  رو  با فونت داخلي تنظيم ميكنيد و نمايش ميديد


توضیحات تکمیلی اینکه :
با استفاده از *Typeface* ها و متد *getAssests* برای ساخت یه شی از نوع Typeface میتونید اینکار رو انجام بدید برای *reshape* هم سرچ کنید کلاس جاوا رو پیدا میکنید که برای عربی نویسی هست و البته از گ چ پ ژ هم پشتیبانی میکنه (کلمه های انگلیسی و *bold* شده همین خط رو سرچ کنید همه چی دستگیرتون میشه)

موفق باشید

----------


## Unknownlive

به نظرم اخر به نتیجه ای نرسیده بحث به نظر شما روش قطعی برای حل این مشکل چیه دوستان ؟ رام 2.3 که مشکلی نداره درسته ؟ 3 هم که حل شده.اگه برنامه رو فارسی بنویسیم و روی گلاکسی تب سامسونگ که فارسی ساپورت ظاهرا هست بریزیم مشکلی هم هست ؟

----------


## hamed_hossani

http://farsitel.com/fa/faq.html

----------


## reza66i

سلام
من یه سایت پیدا کردمکه یه نرم افزار کاملا فارسی برای ساخت برنامه روی اندروید ارائه می ده در ضمن اصلا مشکل فارسی سازی نداره و برنامه های تولید شده توسطش مشکل فارسی نداره در ضمن لینک مستقیم دانلود برنامش توی سایت androidmaker.ir l موجود هست راحت می تونید دانلودش کنید.

----------


## daszarrin

دوستان یک لطفی کنند از این برنامه هایی که نوشتند یک مثال روی وب قرار بدند
این کدهای هگز به چه صورت در متن استفاده میشن؟

----------


## srfarzad

> سلام.تاخير بنده رو ببخشيد.خيلي خيلي سرم شلوغه و ماموريت هاي طولاني مدت هم ميرم
> من در مورد فارسي سازي براتون يه توضيحاتي با پيام خصوصي دادم.اگر مفيد بود ميتونيد براي استفاده دوستان همينجا درجش كنيد.به خدا وقت نميكنم وگرنه ميومدم مو به مو براتون توضيح ميدادم
> كلا سه راه هست
> 1-استفاده از يه فونت كه فارسي رو خوب ساپورت كنه مثل DroidSansArabic.ttf كه من توي دايركتوري فونت برنامه ديكشنري گذاشتمش(نسخ هاي زيادي از اين فونت هست ولي اوني كه من گذاشتم هم فونتش با كلاس تره و هم هيچ اشكالي نداره).ميتونيد اين فونت رو توي پروژه تون بزاريد و ازش استفاده كنيد.امكان داره حروف رو جدا جدا ببينيد كه بايد با تكنيك reshaping مسئله رو حل كنيد.همون كاري كه توي برنامه mirsal انجام شده(_برنامه خوندن و نوشتن sms توي گوشيهاي اندرويدي كه فارسي رو ساپورت نميكنن).
> 2-استفاده از كدهاي يونيكد كه هر سيستمي ميتونه با اين كدها معادل فارسيشو درست نشون بده مثلا كد اعداد صفر تا نه اينهاست 
> "\u0660", "\u0661",
> 			"\u0662", "\u0663", "\u0664", "\u0665", "\u0666", "\u0667",
> 			"\u0668", "\u0669",
> 
> 3-استفاده از canvas و نشون دادن فونتها بصورت bitmap كه خفن سرعت رو كم ميكنه(بيشتر توي j2me ازش استفاده ميشه و خيلي استاندارد نيست)


ولی استفاده از یونیکد بنظر سخت میاد و واقعا سخته باهاش یک جمله بسازی
آیا راهی است آسونتر بشه از این یونیکدها استفاده کرد ؟

----------

