Click here to Skip to main content
15,393,864 members
Articles / Mobile Apps / Windows Mobile
Article
Posted 12 Oct 2008

Stats

34K views
333 downloads
14 bookmarked

Arabization Controls for Smart Devices

Rate me:
Please Sign up or sign in to vote.
3.86/5 (9 votes)
11 May 2009GPL3
.NET controls to be used for development of Arabic applications for smart devices.

Introduction

Compact .NET Framework Arabic Enabled Assemblies allow .NET developers to create Arabic enabled applications without using any other external software.

Background

The idea was born while I was working on a Symbol handheld creating shelf prices' checker and labels printing software for Windows CE 5.0. I was required to retrieve, display and print Arabic (Hindi) numbers and context.

Using the Code

This code is a sample code for design-time controls.

This project is complete but it would need some modifications depending on your needs:

C#
/* Sample code for Arabic Button */

using System.Drawing;
using System.Windows.Forms;
using System.Text;

namespace Ar.Controls
{
    public class ArabicButton : System.Windows.Forms.Button
    {
        private bool m_HindiNumerals;
        private string m_LogicalText;
        private bool m_RightToLeft;

        public bool HindiNumerals
        {
            get
            {
		return this.m_HindiNumerals;
            }
            set
            {
		this.m_HindiNumerals = value;
		this.Text = this.m_LogicalText;
            }
        }

        public new bool RightToLeft
        {
            get
            {
		return this.m_RightToLeft;
            }
            set
            {
		this.m_RightToLeft = value;
		this.Text = this.m_LogicalText;
            }
        }

        public new string Text
        {
            get
            {
		return this.m_LogicalText;
            }
            set
            {
		if (value != null)
		{
			this.m_LogicalText = value;
			StringBuilder builder1 = 
				new StringBuilder(this.Text.Length + 1);
			short num1 = (short) this.m_LogicalText.Length;
			ushort[] numArray1 = new ushort[1];
			if (this.m_HindiNumerals)
			{
				numArray1[0] = 1;
			}
			else
			{
				numArray1[0] = 0;
			}
			mArabicCoreWrapper.BuildArabicStringWithLigate
			(this.m_RightToLeft, this.Text, builder1, num1, numArray1);
			base.Text = builder1.ToString();
		}
            }
        }

        public override System.Drawing.Font Font
        {
            get
            {
				return base.Font;
            }
            set
            {
				base.Font = value;
				Invalidate();
            }
        }

        public ArabicButton()
        {
			//this.Font = new Font("Tahoma", 8f, FontStyle.Regular);
			this.m_RightToLeft = true;
			this.m_HindiNumerals = true;
        }
    } // class ArabicButton
}

It was written for compact framework version 2.0, tested on Windows CE 5.0 and Windows Mobile 5.0.

Points of Interest

Arabic is a very complicated and beautiful language. I hope to use this language in programming instead of English.

History

This project started earlier in 2005 and it sure needs some modifications.

  • 11/5/2009: Added mArabicCore in the article attachments

License

This article, along with any associated source code and files, is licensed under The GNU General Public License (GPLv3)

Share

About the Author

Hani Gamal Eldeen
CEO Maktabak Dot Net
Egypt Egypt
Hani Gamal is a Senior Analyst Programmer by profession and an operation director of Maktabak Dot Net, a leading open source integrated solutions provider, a co-founder of PHP for Arabs usergroup and the founder of PHP Egypt usergroup. Hani adores technical challenges with strong experience in design and high integration problem solving skills gained over 10 years of professional diverse experience ranging from developing business plans, requirements specifications, user documentation to architectural systems research.
Group type: Collaborative Group

1 members


Comments and Discussions

 
Generalthe project has error on compilation, could you please help me Pin
George abboudeh12-Jan-10 2:02
MemberGeorge abboudeh12-Jan-10 2:02 
GeneralHelp Pin
Member 68709130-Nov-09 17:33
MemberMember 68709130-Nov-09 17:33 
QuestionPlease help me ... Error when registering mArabicCore.dll in windows ce Pin
A.Ibrahim22-Jul-09 2:53
MemberA.Ibrahim22-Jul-09 2:53 
GeneralA reference to 'mArabicCore.dll' could not be added. Pin
A.Ibrahim19-Jul-09 23:58
MemberA.Ibrahim19-Jul-09 23:58 
GeneralRe: A reference to 'mArabicCore.dll' could not be added. Pin
Hani Gamal Eldeen20-Jul-09 0:13
MemberHani Gamal Eldeen20-Jul-09 0:13 
GeneralRe: A reference to 'mArabicCore.dll' could not be added. Pin
Member 6870917-Dec-09 23:35
MemberMember 6870917-Dec-09 23:35 
GeneralmArabicCore.dll Pin
gaurav srivastav11-May-09 0:06
Membergaurav srivastav11-May-09 0:06 
GeneralRe: mArabicCore.dll Pin
Hani Gamal Eldeen11-May-09 2:43
MemberHani Gamal Eldeen11-May-09 2:43 
Questionwhere is mArabicCore.dll ??????? Pin
NoOoOor22-Mar-09 7:15
MemberNoOoOor22-Mar-09 7:15 
AnswerRe: where is mArabicCore.dll ??????? Pin
Hani Gamal Eldeen15-Apr-09 14:10
MemberHani Gamal Eldeen15-Apr-09 14:10 
GeneralSystem.cf Pin
DrMazenJamal19-Jan-09 21:46
MemberDrMazenJamal19-Jan-09 21:46 
QuestionSystem.cf Pin
DrMazenJamal19-Jan-09 21:03
MemberDrMazenJamal19-Jan-09 21:03 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.