Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles
(untagged)

Arabization Controls for Smart Devices

0.00/5 (No votes)
11 May 2009 1  
.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:

/* 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 has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here