شرح تحويل الارقام من عربي الى انجليزي او العكس وجعل اول حرف من كل كلمة capital في تطبيقات Flutter
في هذا المقال سوف نقدم لكم شرح لكيفية عمل تغيير لصيغة الارقام من الانجليزيه الى الهنديه او العربيه المتعارف عليها وبالمناسبة تغيير الارقام قد يسبب لك مشكلة ولهذا عليك معرفة الرقم المدخل عربي او انجليزي في احد التطبيات التي كنت اعمل عليها كنت الاحظ وجود مشكلة في عرض بعض الصفحات رغم انها كانت تعمل على بعض الاجهزه وبعض الاجهزه لا تعمل عليها والسبب كان في الهواتف التي بالعربيه وكان لا بد من تحويل اي رقم الى الانجليزيه حتى لا يحدث مشاكل , واحيانا قد تحتاج لعمل تطبيق عربي حتى مع الارقام ولهذا سوف تحتاج التحويل من الانجليزي الى الهندي او العربي
android sdk manager تحميل flutter developers applications create app android android studio mac
How to convert any character capital letter and convert numbers from en to ar and reverse
يوجد اكثر من function هنا مسؤوله عن عمليات معنيه مثل تحويل اللغه وايضا تحويل اول حرف من كل كلمه يكون capital وتحويل جميع الكلمات التي تبدء في النص باول حرف capital كما هو ملاحظ كل هذا يمكنك القيام به من خلال الاكواد التاليه والتي نقدمها لكم بشكل مجاني .
ui.dart
String numberToLocale(String str, Locale locale) {
if (str.isEmpty) return str;
switch (locale.languageCode) {
case 'ar':
return convertToHindiNumbers(str);
case 'en':
return convertToArabicNumbers(str);
}
return str;
}
String convertToArabicNumbers(String str) {
return str
.replaceAll('٠', '0')
.replaceAll('١', '1')
.replaceAll('٢', '2')
.replaceAll('٣', '3')
.replaceAll('٤', '4')
.replaceAll('٥', '5')
.replaceAll('٦', '6')
.replaceAll('٧', '7')
.replaceAll('٨', '8')
.replaceAll('٩', '9');
}
String convertToHindiNumbers(String str) {
return str
.replaceAll('0', '٠')
.replaceAll('1', '١')
.replaceAll('2', '٢')
.replaceAll('3', '٣')
.replaceAll('4', '٤')
.replaceAll('5', '٥')
.replaceAll('6', '٦')
.replaceAll('7', '٧')
.replaceAll('8', '٨')
.replaceAll('9', '٩');
}
String capitalizeFirstChar(String str) {
return '${str[0].toUpperCase()}${str.substring(1)}';
}
String capitalizeFirstCharForEachWord(String str) {
return str
.split(' ')
.map((s) => s.isEmpty ? '' : capitalizeFirstChar(s))
.join(' ');
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(),
body: Center(
child: Padding(
padding: const EdgeInsets.all(6.0),
child: Column(
children: [
TextFormField(
controller: controller,
),
Padding(
padding: const EdgeInsets.all(10.0),
child: Text(controller.text,style: TextStyle(fontSize: 22),),
),
ElevatedButton(
onPressed: () {
setState(() {
controller.text = numberToLocale(controller.text, Locale('ar'));
});
},
child: Text('to Ar')),
ElevatedButton(
onPressed: () {
setState(() {
controller.text = numberToLocale(controller.text, Locale('en'));
});
},
child: Text('to En')),
ElevatedButton(
onPressed: () {
controller.text = capitalizeFirstCharForEachWord(controller.text);
},
child: Text('to Capital')),
],
),
),
));
}
او يمكنك استخدام اداة fontlab8 من اجل التعديل على ملف الخط ليصبح ملائم لكل اللغتين .
you can use :github