PDA

View Full Version : به‌نویس: بسته فارسی نویسی در آندروید



Mbt925
دوشنبه 30 آبان 1390, 20:31 عصر
نسخه‌ی آندرویدی به‌نویس هم آماده شد.
این بسته دارای دو قابلیت زیره:

1. فونت بیت مپ: برای کسانی کاربرد داره که میخوان با استفاده از فونت های دلخواه خودشون بنویسند و نگران پشتیبانی از زبان فارسی در موبایل مقصد نباشن

2. Reshaping: برای کسانی کاربرد داره که نمیخوان از فونت بیت مپ استفاده کنن. همونطور که می دونید، از نسخه ی 2.2 آندروید به بعد، میشه فارسی نوشت ولی به صورت یونیکد. از این رو، میشه متن های فارسی رو با تغییر ساختار، به معادل یونیکدشون تبدیل کرد.

مثال از قابلیت اول:

http://s2.picofile.com/file/7190232575/behnevis_android_fainen.png

http://s2.picofile.com/file/7190233010/behnevis_android_eninfa.png

http://s1.picofile.com/file/7190232040/behnevis_android_texticon.png

مثال از قابلیت دوم:
حالت عادی و مشکل دار:

http://s2.picofile.com/file/7190231284/behnevis_beforereshape.png


حالت تصحیح شده:

http://s1.picofile.com/file/7190233438/behnevis_afterreshape.png

daszarrin
یک شنبه 09 بهمن 1390, 14:34 عصر
سلام
این بسته رو از کجا باید بگیریم؟!

SohrabYousefi
دوشنبه 10 بهمن 1390, 14:27 عصر
سلام
لطفا بگید که چه جوری به این بسته دسترسی داشته باشیم؟

Mbt925
دوشنبه 10 بهمن 1390, 15:18 عصر
از طریق ایمیل mbt925@gmail.com

zoghal
سه شنبه 27 آبان 1393, 09:05 صبح
از تصویر پیداست از مبدل عربی بهره گرفتید. چون ی فارسی رو به ي عربی تبدیل کردید.
شناسه صحیح ی فارسی و ی عربی به شرح زیر هست :


['ي' (yeh arabic)] : [0xFEF1, 0xFEF3, 0xFEF4, 0xFEF2]
[ "ی" (yeh farsi)]: [0xfeef, 0xfef3, 0xfef4, 0xfef0],

Mbt925
سه شنبه 27 آبان 1393, 09:18 صبح
از تصویر پیداست از مبدل عربی بهره گرفتید. چون ی فارسی رو به ي عربی تبدیل کردید.
شناسه صحیح ی فارسی و ی عربی به شرح زیر هست :


['ي' (yeh arabic)] : [0xFEF1, 0xFEF3, 0xFEF4, 0xFEF2]
[ "ی" (yeh farsi)]: [0xfeef, 0xfef3, 0xfef4, 0xfef0],


این کتابخونه خودش یک مبدل هست! در نتیجه از هیچ مبدل دیگه ای بهره نگرفته!
اگر در سه تصویر اول ملاحظه بفرمائید، می بینید که "ی" ها بدون نقطه هستن.
علت این مشکل این هست که بعضی فونت های فارسی استاندارد نیستن، برای مثال همین کد FEEF که شما ارائه کردید، برای فونت های سری B مشکلی نداره، ولی مثلا برای فونت Titr معادل عربی هست. می تونید در Character Map ویندوز ملاحظه بفرمائید.

zoghal
سه شنبه 27 آبان 1393, 11:27 صبح
این کتابخونه خودش یک مبدل هست! در نتیجه از هیچ مبدل دیگه ای بهره نگرفته!
پوزش می خوام منظور بنده جدولی که بر اساس اون تبدیلات رو انجام دادید هست.


علت این مشکل این هست که بعضی فونت های فارسی استاندارد نیستن، برای مثال همین کد FEEF که شما ارائه کردید، برای فونت های سری B مشکلی نداره، ولی مثلا برای فونت Titr معادل عربی هست.
اتفاقا بر عکس فونت های سری B اصلا استاندارد نیستند. تو این فونت ها اعداد انگلیسی رو داره فارسی نشون میده. و همچنین ي عربی رو هم ی فارسی نمایش میده.
شما اگر کیبورد استاندارد نصب داشته باشید باید بتونید بدون درگیری با هر نوع فونت اعداد فارسی و لاتین رو باهم وارد کنید 1۱2۲3۳4۴5۵6۶
اگر همین رو با فونت های سری B تست کنید تماما فارسی نمایش داده میشه.

Mbt925
سه شنبه 27 آبان 1393, 11:32 صبح
پوزش می خوام منظور بنده جدولی که بر اساس اون تبدیلات رو انجام دادید هست.


اتفاقا بر عکس فونت های سری B اصلا استاندارد نیستند. تو این فونت ها اعداد انگلیسی رو داره فارسی نشون میده. و همچنین ي عربی رو هم ی فارسی نمایش میده.
شما اگر کیبورد استاندارد نصب داشته باشید باید بتونید بدون درگیری با هر نوع فونت اعداد فارسی و لاتین رو باهم وارد کنید 1۱2۲3۳4۴5۵6۶
اگر همین رو با فونت های سری B تست کنید تماما فارسی نمایش داده میشه.

شما درست می فرمائید. بحث من این نیست که کدوم فونت ها استاندارد هستن و کدوما نیستن. اصل مطلب اینه که فونت های فارسی همشون مطابق باهم عمل نمی کنن. از اونجا که اغلب مشتری های این بسته از فونت های سری B استفاده می کنن،‌ در نتیجه ...

zoghal
سه شنبه 27 آبان 1393, 12:07 عصر
شما درست می فرمائید. بحث من این نیست که کدوم فونت ها استاندارد هستن و کدوما نیستن. اصل مطلب اینه که فونت های فارسی همشون مطابق باهم عمل نمی کنن. از اونجا که اغلب مشتری های این بسته از فونت های سری B استفاده می کنن،‌ در نتیجه ...
اصلا بحث فونت این وسط مطرح نیست.!
ببینید شما این ابزار رو برای زبان فارسی ایجاد کردید یا خیر؟ اگر مخصوص فارسی هست خوب هر گاه ي عربی وارد شده بود باید اون رو به ی فارسی برگردونید.
ما در حال حاضر سه نوع فونت داریم.
۱- فونت های عربی : خوب عربی هستند میروند کنار
۲- فونت سری بی و غیره که قالبا از همین بی کپی برداری شده اند. تو این ها هم ي و ی رو نمایش میدند.
۳- فونت های استاندارد که بر اساس کیبورد استاندارد جیدمان شدند.

یک احتمال دیگه هم میدم که کیبوردی که این تست رو روش گرفتید عربی هست یعنی داره ي وارد میکنه. که باز پیشنهاد میکنم. شما این اشتباه رو جبران کنید. چون رو کیبورد های جدید این مشکل حل شده.

Mbt925
سه شنبه 27 آبان 1393, 14:03 عصر
اصلا بحث فونت این وسط مطرح نیست.!
ببینید شما این ابزار رو برای زبان فارسی ایجاد کردید یا خیر؟ اگر مخصوص فارسی هست خوب هر گاه ي عربی وارد شده بود باید اون رو به ی فارسی برگردونید.
ما در حال حاضر سه نوع فونت داریم.
۱- فونت های عربی : خوب عربی هستند میروند کنار
۲- فونت سری بی و غیره که قالبا از همین بی کپی برداری شده اند. تو این ها هم ي و ی رو نمایش میدند.
۳- فونت های استاندارد که بر اساس کیبورد استاندارد جیدمان شدند.

یک احتمال دیگه هم میدم که کیبوردی که این تست رو روش گرفتید عربی هست یعنی داره ي وارد میکنه. که باز پیشنهاد میکنم. شما این اشتباه رو جبران کنید. چون رو کیبورد های جدید این مشکل حل شده.

این کتابخونه مخصوص متن فارسی نیست!
کاربر اگر متن فارسی بخواد، کاراکتر فارسی وارد می کنه و اگر متن عربی بخواد، کاراکتر عربی وارد می کنه.
با این کتابخونه خیلی از برنامه نویس ها دارن متن عربی نمایش میدن و پردازش می کنن.
با این کتابخونه می تونید متن فارسی، عربی و انگلیسی نمایش بدید. اساسا یک سری جاها نیاز به Bitmap font پیدا میشه.

zoghal
سه شنبه 27 آبان 1393, 16:18 عصر
دوست عزیز من قصد پایین آوردن و بی ارزش کردن کار شما رو ندارم. دو نکته بود که پیشنهاد دادم.
از شما هم خواهش میکنم. مسائلی که مربوط به فونت و ینی کد هست رو پیچیده نشون ندین و بزرگ نمایی نکنید. فونت تخصص بنده هست. و اگر موضوعی باشه که از آن بی اطلاع باشم خیلی روش تمرکز میکنم تا فرا بگیرمش.چون این مسائل نیاز پروژه ام هست.

این کتابخونه مخصوص متن فارسی نیست!
کاربر اگر متن فارسی بخواد، کاراکتر فارسی وارد می کنه و اگر متن عربی بخواد، کاراکتر عربی وارد می کنه.
با این کتابخونه خیلی از برنامه نویس ها دارن متن عربی نمایش میدن و پردازش می کنن.

اساسا reshaper ها فقط برای زبان‌هایی کاربرد دارند که یک حرف دارای چند فرم هستند. مثل فارسی و عربی که حر حرف قالبا دو یا چهار فرم دارد (منفصل - متصل یک طرفه اول - متصل یک طرفه آخر - متصل دو طرفه) مثل ع ع‍ ‍ع ‍ع‍
reshaper میاد متن داده شده رو کاراکتر به کاراکتر پردازش میکنه تا تشخیص بده کارکتر ورودی چه نوع فرمی باید داشته باشد.
حالا این وسط می تونند یک سری قواعد دستوری رو هم رعایت کنند. همانند آنچه پیشنهاد بهتون دادم.

نکته دیگر در مورد reshaper این هست زمانی نیازمندشون هستیم که موتور shape render از open type feature و جدول gsub پشتیبانی نکند.
البته ممکنه مشکل از فونت هم باشد.
در انروید 2.1 به بعد مشکلی در این زمینه نیست


با این کتابخونه می تونید متن فارسی، عربی و انگلیسی نمایش بدید. اساسا یک سری جاها نیاز به Bitmap font پیدا میشه.

اما بیتمپ فونت فقط بدرد کنسول ها / مثل داس و دیوایس ها میخوره و یا OpenGL and DirectX applications میخوره
نحوه نمایش گلیف ها بسته به این که چند بیتی باشند . دقیقا مثل این تصویر هستند.

http://www.angelcode.com/products/bmfont/images/font.png

نمونه ای که شما نمایش دادید 100٪ Outline هست و سه راه برای تولید این مثال شما وجود داره.
۱- به صورت معمولی
۲- به صورت وکتور یا svg
3- به صورت canvas

که حدس می زنم گزینه دوم رو شما اشتباها bitmap font خطاب می کنید.

درضمن این هم تصویر از گوشی خودم اندروید 2.1 با فونت یکان اصلاح شده به صورت فونت دیفالت.
رو میتونید از این لینک ببینید (https://www.dropbox.com/s/3r9zfn4tzc6ngt3/IMG_1865.JPG?dl=0)

Mbt925
سه شنبه 27 آبان 1393, 16:32 عصر
بنظر من شما دارید پیچیدش می کنید.
Bitmap font به صورت کلی نمایش متن با تصویر گفته میشه. بعضی کاربردهاش رو هم شما عرض کردید. کاربردهای امروزش برای نمایش فونت های فانتزی هست که در خیلی نرم افزارها و بازی ها مورد استفاده قرار می گیره.
به نویس در ابتدا برای j2me ایجاد شد و کاربرد اصلیش در نمایش فونت بیت مپ روی canvas بود. در ادامه برای اندروید توسعه داده شد و reshaper متون فارسی و عربی بهش اضافه شد.
تصاویری که بنده قرار دادم روی canvas رسم شدن.

من مشکل شما رو متوجه نمیشم!؟

mrtzxxx
سه شنبه 27 آبان 1393, 17:00 عصر
400 هزار تومن !!!! :گیج::گیج::گیج::متفکر::متعجب:

Mbt925
سه شنبه 27 آبان 1393, 17:10 عصر
400 هزار تومن !!!! :گیج::گیج::گیج::متفکر::متعجب:

شما مثل اینکه از قیمت های بازار خبر نداری!!! و از قیمت سایر کتابخونه های مشابه هم بی خبری. بنابراین لطفا اسپم ندید.

zoghal
سه شنبه 27 آبان 1393, 17:37 عصر
چه چیزی رو پیچیده کردم؟
هر چیزی بیان کردم بر اساس استاندارد های موجود و مستند هست. اما شما دارید بر روی یک موضوع پافشاری می کنید که صحیح نیست.

اول : این تعریف اشتباه هست «Bitmap font به صورت کلی نمایش متن با تصویر گفته میشه» . Bitmap font یکی از انواع فرمت ها هست با کاربرد مشخص. ماتریکسی از پیکسل ها هست. در صورتی که در سایر فرمت ها گلیف ها بر اساس وکتور یا بردار هست.

http://en.wikipedia.org/wiki/Computer_font

دوم : داستان فونت تو این مورد و در اندروید اضافه بر سازمان هست و کمی بازار گرمی و سیه بازی(با کمال شرمندگی)
منظقی نگاه کنیم به این صورت میشه
۱- اگر یک متن بدون اعمال فونت درست نمایش داده نمیشه و درضمن ینیکد رو هم ساپورت می کند. همون reshaper کفایت میکند.

۲- اگر متن صحیح نمایش داده میشه اما به محض اعمال فونت نمایش حروف به هم میریزد.این مشکل از فونت هست و reshaper ۵۰٪ میتونه کمک کند آن هم به شرطی که گلیف ها در فونت به صورت استاندارد ینیکد چیده شده باشند. ۵۰ ٪ دیگه ممکن هست چینش سفارشی باشد . برای مثال فونت های مریم سافت در نرم افزار فارسی نوسش رو نمی تونید با این روش استفاده کنید.

کمک و اصلاح اشتباهات رو نمیشه اسمش گذاشت مشکل :خجالت:

Mbt925
سه شنبه 27 آبان 1393, 17:44 عصر
یه نمونه پیچیده کردن شما : "ماتریکسی از پیکسل ها" یعنی "تصویر". یعنی همون چیزی که من گفتم.

من به سایر منطق های شما کاری ندارم. هر کسی برای خودش دلایلی داره. و این کتابخونه هم کاربردهاش خودش رو داره و مشتری های خودش رو!
لطفا دیگه ادامه ندید.

zoghal
سه شنبه 27 آبان 1393, 18:05 عصر
اگر این حرف رو نمی زدید ادامه نمی دادم.

یه نمونه پیچیده کردن شما : "ماتریکسی از پیکسل ها" یعنی "تصویر". یعنی همون چیزی که من گفتم.
برنامه نویسی که مدعی هست با canvas کار می کنید. بعد هنوز نمی‌داند که ما دو نوع گرافیک داریم یکی پیکسلی و یکی برداری . و هنوز نمی داند canvas برداری هست نه پیکسلی قابل پذیرش نیست که پروژه رو انجام داده باشه.
هر چند که من نمونه مثالتون رو دیکامپایلر کردم.BehNevis_Demo مشخص شد وکتور کار کردید.


من به سایر منطق های شما کاری ندارم. هر کسی برای خودش دلایلی داره. و این کتابخونه هم کاربردهاش خودش رو داره و مشتری های خودش رو!
انشالله که مشتری ها داشته باشه.

قابل توجه دیگران : ۷۰٪ نیاز به این داستان ها در اندروید نیست. و اگر نیاز بود. کافیه تو گیت هاپ بگردید. کافیه سرچ کنید arabic reshaper.

Mbt925
سه شنبه 27 آبان 1393, 18:15 عصر
اگر این حرف رو نمی زدید ادامه نمی دادم.

برنامه نویسی که مدعی هست با canvas کار می کنید. بعد هنوز نمی‌داند که ما دو نوع گرافیک داریم یکی پیکسلی و یکی برداری . و هنوز نمی داند canvas برداری هست نه پیکسلی قابل پذیرش نیست که پروژه رو انجام داده باشه.
هر چند که من نمونه مثالتون رو دیکامپایلر کردم.BehNevis_Demo مشخص شد وکتور کار کردید.


انشالله که مشتری ها داشته باشه.

قابل توجه دیگران : ۷۰٪ نیاز به این داستان ها در اندروید نیست. و اگر نیاز بود. کافیه تو گیت هاپ بگردید. کافیه سرچ کنید arabic reshaper.

شما هنوز خیلی کار دارید تا بتونید مثل یک آدم بالغ صحبت کنید! شما اصلا نگران مشتری نباشید،‌ کسی که بخواد از این لایبری استفاده کنه،‌ حتما کاربردش رو می دونه.
انواع Reshaper ها در همین سایت هم معرفی شدن و خود بنده هم به مشتری ها معرفی می کنم.

Canvas یک کلاس هست در اندروید!

hamedjj
سه شنبه 27 آبان 1393, 19:02 عصر
من نمیدونم چه نیازی هست از این کتابخانه در برنامه خودمان استفاده کنیم.
طبق آمار گوگل فقط 8 درصد از مردم جهان از نسخه 2.3 استفاده میکنند و 86 درصد از نسخه 4 به بالا که فارسی را ساپورت میکند. و گوگل مرگ 2.3 را نزدیک دانست.
حالا شما خودتون آمار بگیرید که از این 8 درصد چند درصد تو ایران 2.3 دارند (گوشی های هوشمند در ایران دیرتر از کشورهای دیگر وارد و همه گیر شده) .... و از این تعداد افرادی که از نسخه 2.3 استفاده میکنند چند درصد نرم افزار در گوشی خودشون نصب میکنند
بهتر بود زودتر این لایبری ساخته میشد

راستی من یه گوشی قدیمی با ورژن 2.3 دارم که برنامه های فارسی را خوب ساپورت میکنه ... بازم یه درصدی را برای اون افرادی حساب کنید که گوشی های ورژن 2.3 آنها فارسی را ساپورت میکنه و افرادی که ساپورت نمیکنه :لبخند:

mrtzxxx
سه شنبه 27 آبان 1393, 19:29 عصر
شما مثل اینکه از قیمت های بازار خبر نداری!!! و از قیمت سایر کتابخونه های مشابه هم بی خبری. بنابراین لطفا اسپم ندید.

دوستان از این به بعد دیگه اپلیکیشن نسازیم بریم 1000 تومن تو یه سایت بفروشیم . بیاین همه با هم در یک اقدام نمادین کتابخونه بسازیم والا در آمد داره بلا درآمد داره :لبخند:
به جان خودم این اسپم نبود توجیه اقتصادی بود.

Mbt925
سه شنبه 27 آبان 1393, 20:26 عصر
من نمیدونم چه نیازی هست از این کتابخانه در برنامه خودمان استفاده کنیم.
طبق آمار گوگل فقط 8 درصد از مردم جهان از نسخه 2.3 استفاده میکنند و 86 درصد از نسخه 4 به بالا که فارسی را ساپورت میکند. و گوگل مرگ 2.3 را نزدیک دانست.
حالا شما خودتون آمار بگیرید که از این 8 درصد چند درصد تو ایران 2.3 دارند (گوشی های هوشمند در ایران دیرتر از کشورهای دیگر وارد و همه گیر شده) .... و از این تعداد افرادی که از نسخه 2.3 استفاده میکنند چند درصد نرم افزار در گوشی خودشون نصب میکنند
بهتر بود زودتر این لایبری ساخته میشد

راستی من یه گوشی قدیمی با ورژن 2.3 دارم که برنامه های فارسی را خوب ساپورت میکنه ... بازم یه درصدی را برای اون افرادی حساب کنید که گوشی های ورژن 2.3 آنها فارسی را ساپورت میکنه و افرادی که ساپورت نمیکنه :لبخند:

بله عرض شما درسته. زمانی که این کتابخونه ارائه شده بود، گوشی های زیادی بودن که نسخه های 2.3 و قبل از اون رو داشتن.
در حال حاضر، کسی بخاطر Reshaping از این بسته استفاده نمی کنه.

Mbt925
سه شنبه 27 آبان 1393, 20:27 عصر
دوستان از این به بعد دیگه اپلیکیشن نسازیم بریم 1000 تومن تو یه سایت بفروشیم . بیاین همه با هم در یک اقدام نمادین کتابخونه بسازیم والا در آمد داره بلا درآمد داره :لبخند:
به جان خودم این اسپم نبود توجیه اقتصادی بود.

نرخ فروش یک نرم افزار با یک کتابخونه فرق داره! خیلی هم فرق داره! در نتیجه قیمت هاشونم فرق داره.

a.r.khoshghalb
شنبه 22 آذر 1393, 23:59 عصر
بله عرض شما درسته. زمانی که این کتابخونه ارائه شده بود، گوشی های زیادی بودن که نسخه های 2.3 و قبل از اون رو داشتن.
در حال حاضر، کسی بخاطر Reshaping از این بسته استفاده نمی کنه.
عرض؟ :لبخند::لبخند:

Mbt925
یک شنبه 23 آذر 1393, 00:07 صبح
عرض؟ :لبخند::لبخند:
امیدوارم عمدی در کار نبوده باشه!

منظور شما رو متوجه نمیشم!؟