ورود

View Full Version : تبدیل اعداد فارسی به انگلیسی در کد



abtin5
سه شنبه 03 شهریور 1394, 09:09 صبح
سلام خدمت همه دوستان
من یه برنامه نوشتم که یه بخشی ازون لازمه که تاریخی که به فارسی وارد شده رو به فرمت انگلیسی اون تغییر بدم، یعنی تاریخ به صورت فونت فارسی وارد میشه و من فونت انگلیسی اون رو میخوام نه تبدیل کردن تاریخ به میلادی چون کد اونو دارم.

ممنون میشم راهنمایی کنید

ali_khodayar
سه شنبه 03 شهریور 1394, 11:47 صبح
لطفأ هرکسی توضیح داد برعکسش رو هم توضیح بده

ممنون :لبخندساده:

reza.dev
سه شنبه 03 شهریور 1394, 12:02 عصر
سلام خدمت همه دوستان
من یه برنامه نوشتم که یه بخشی ازون لازمه که تاریخی که به فارسی وارد شده رو به فرمت انگلیسی اون تغییر بدم، یعنی تاریخ به صورت فونت فارسی وارد میشه و من فونت انگلیسی اون رو میخوام نه تبدیل کردن تاریخ به میلادی چون کد اونو دارم.

ممنون میشم راهنمایی کنید
یه راهنمایی:
1- دو تا ارایه تعریف کن
2- تو اولین ارایه ،کد اسکی اعداد 1 تا 9 فارسی رو بزار و تو دومی، کد اسکی اعداد 1 تا 9 انگلیسی رو بذار
3-با یه حلقه تکرار کارکتر به کاراکتر تاریخ رو بخون و بعد با کد اسکی اعداد فارسی ،مقایسشون کن .هر جا مطابقت داشت با عدد انگلیسی جایگزینش کن.همین:چشمک:
وقت ندارم و گرنه کدش رو بهت می دادم

ho3ein.3ven
سه شنبه 03 شهریور 1394, 12:52 عصر
این تابع تبدیل عدد های انگلیسی به فارسی :

private static final char[] FARSI_DIGITS = {'\u06f0', '\u06f1', '\u06f2', '\u06f3', '\u06f4', '\u06f5', '\u06f6', '\u06f7', '\u06f8', '\u06f9'};
public static String convertNumber(String text) {
char[] chars = new char[text.length()];
for (int i = 0; i < text.length(); i++) {
char ch = text.charAt(i);
int index = Character.getNumericValue((int) ch);
if (index >= 0 && index < 10) {
ch = FARSI_DIGITS[index];
}
chars[i] = ch;}return new String(chars);
}

Muhammad-Ali
سه شنبه 25 خرداد 1395, 22:23 عصر
برای استفاده از پلاگین ها اگر از اندروید استودیو استفاده می کنید کافیه تا لینک مربوط به سورس اون کتابخونه رو در فایل gradle برنامه تون در بخش dependency ها اضافه کنید . تو صفحه github کتابخونه ها اگر مراجعه کنید نحوه نصب و استفاده رو به صورت کامل توضیح میدن .


کتابخانه Calligraphy یک کتابخانه فوق العاده هست مخصوصا برای اپ های فارسی که با مشکل فونت مواجه هستند و به شما این امکان رو میده تا فونت کلی مربوط به اپلیکیشن تون رو تغییر بدید .
آدرس github :
https://github.com/chrisjenx/Calligraphy

یکی از دوستان اینجا (http://barnamenevis.org/showthread.php?518225-%D9%84%D8%A7%DB%8C%D8%A8%D8%B1%D8%B1%DB%8C-%D9%87%D8%A7%DB%8C-%D8%AC%D8%A7%D9%84%D8%A8-%D8%8C-%D8%B2%DB%8C%D8%A8%D8%A7-%D9%88-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C&p=2303696&viewfull=1#post2303696)معرفی کرده بود. بدجوری کار ما رو راه انداخت. عالی بود. مثلا من این فونت (http://rastikerdar.github.io/samim-font/) رو که هم فونت با اعداد فارسی داره و هم فونت با اعداد لاتین، نصب کردم. حالا هر جا بخوام، فونت فارسی با اعداد فارسی استفاده کنم از Samim-persian-digits-overwrite.ttf استفاده میکنم و اگر بخوام اعداد لاتین باشه از Samim.ttf استفاده می کنم.

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




package com.example.package;

import android.content.Context;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;

import uk.co.chrisjenx.calligraphy.CalligraphyConfig;
import uk.co.chrisjenx.calligraphy.CalligraphyContextWrap per;


public class FarsiActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
CalligraphyConfig.initDefault(new CalligraphyConfig.Builder()
.setDefaultFontPath("fonts/Samim-persian-digits-overwrite.ttf")
.setFontAttrId(R.attr.fontPath)
.build()
);
super.onCreate(savedInstanceState);
}

// for font
@Override
protected void attachBaseContext(Context newBase) {
super.attachBaseContext(CalligraphyContextWrapper. wrap(newBase));
}
}