Writing Kurdish Alphabetics in Java Programming Language

Nowadays, Kurdish programmers usually suffer when they need to write Kurdish letter while they program in java. More to say, all the versions of Java Development Kits have not supported Kurdish letters. Therefore, the aim of this study is to develop Java Kurdish Language Package (JKLP) for solving writing Kurdish alphabetic in Java programming language. So that Kurdish programmer and/or students they can converts the English-alphabetic to Kurdish-alphabetic. Furthermore, adding Kurdish language to standard Java Development Kit (JDK). Additionally, in this paper we present the JKLP standard documentation for users. Our object-oriented solution composed of a package consisting two classes which have been implemented in the Java programming language. Keywords—Java; Arabic Scripts; Java language support; Java issues; Kurdish Language

The statistics shows that the number of Kurdish speakers is Between 25 and 35 million Kurds inhabit a mountainous region straddling the borders of Turkey, Iraq, Syria, Iran and Armenia.They make up the fourth-largest ethnic group in the Middle East, but they have never obtained a permanent nation state [2].Kurdish and Arabic letters are similar but they are not exactly the same.The Kurdish alphabet contains the Arabic alphabet and six additional letters.In fact Kurdish and Arabic alphabets are consisting of 36 and 28 letters respectively.In the following some of differences between these two alphabets are given [3]  Arabic alphabet lacks six letters namely "Woo" , "Ooh" "Peh"', "Tcheh", "Jeh" and "Gaf".
 There exist some letters in both alphabets which have Arabic and Kurdish versions.For example Arabic "Kaf" and "Yeh" are different from Kurdish ones.
 The orders for some letters are not the same.For example in Arabic alphabet "Heh" is prior to "Waw" whereas in Kurdish, they appear in opposite order and "Waw" is prior to "Heh" [3] II. LITRETURE REVIEW (BACKGROUND) This section of the study is focused on the literature available to the team in the form of journals, books and the reliable websites.The research will be carried out by the researchers.The topics which are covered in this section are: Definition of languages, Prosperities of Kurdish languages, Java programming languages and the others that will be discussed in the following.

A. Description of Language
It can be said that language is the human capacity for obtaining and using a complex system of communication.The term of LINGUISTICS is the scientific study of language.There are no studies and researches to know accurately about how many languages there are in the world.Furthermore, it could not be known about the number depends on a partly arbitrary difference between languages and dialects.However, approximations differ between around six thousand and seven thousand languages in number [5].In any country, people have two kinds of languages: mother tongue is the primary language which has spoken between peoples, and secondary language is the language that some people can speak with the other people who are in different country.In Kurdistan Region of Iraq www.ijacsa.thesai.org(KRI), there are two kinds of language: Kurdi and Arabic.The Kurdi language is the mother tongue, but the Arabic language is the secondary language.Moreover, in any country have some people who can speak more than two languages.When used as a universal conception "Language" might be referred to the cognitive ability to learn, and utilize systems of complex communication.

B. Properities of Kurdish Language
In this section, there are some of the characteristics of Kurdish scripts are introduced and compared to Arabic/Persian and English languages.Firstly, Kurdish scripts are written in a right to left writing like Arabic/Persian languages.On the other hand, Firstly, Kurdish scripts are written in a right to left writing unlike English language [10].Kurdish scripts could be written in different forms as identified in table 1.It could be written in the start, middle, end and isolated respectively.In Table 1 the list of all Kurdish characters and their Unicode's are presented.
C. Java Programming Language Computer language indicates a sequence of instructions which will make a computer follows and run a program based on these instructions.Instructions are composed of a sequence of ON "1" and OFF "0", such as 101100011001, that a computer follows as it runs them through the processor, turning switches ON and OFF [4].Program languages are able to help computer to understand what people would like to do.It may not be able to classify computer programming languages since there is no single standard for categorizing computer languages [8].In reality, dozens of classified is by paradigms that provides the programmer's view of code execution.
The most common Object-Oriented Programming (OOP) languages include Java, Visual Basic, C#, Python, C++ and the other OOP languages.Java language is a computer programming language, and originally developed by James Gosling at Sun Microsystems.In general, Java became available in 1995.It is based on C++ language and shows substantial similarity to it.Java language is intended to let developers (write once, run anywhere).It is currently one of the most popular computer languages in use, and is widely used form application software to Web applications [11].Nowadays, it can be seen many application developers attempt to use Java language to build their applications because Java can provide lots of features, namely, Portable, Secure, Simplicity, Object Oriented, Robust, Distributed, Performance, Dynamic and the other features.

D. Related Between Java Language and Kurdish Students
There are many Universities in KRG that provide computer science degree for students.University students should know about one type of OOP languages after graduation.The computer science degree in all Universities must teach one type of OOP which is Java language.Therefore, university students should know about Java language.Because of these reasons we have decided to choose Java language to accomplish this study.This research will be more helpful for university students since they can write Java instructions by their mother tongues.On the other hand, lots of students in KRG are not able to speak and write English language, so this study will assist students to accomplish their assignments.Furthermore, software developers will obtain benefits from this study since they can use Kurdish alphabetic in their applications and software.

E. How to Create Package in Java Language
Packages in Java are a namespace which organize a group of related classes, interfaces and sub packages.They will be able to provide access protection and namespace management [12].Theoretically you can consider of packages as being similar to various folders on your computer.Developers might keep images and video in one folder, HTML pages in another and scripts files in another.Due to the software written in Java could be collected of thousands of individual classes with related things in the same directory, which is really making sense to organize things [12].There are several advantages that can be taken from using packages: reusability, simple to locate the files, name-space crash and collisions.
While building a package, developers should select a name "it must follow the Java code names rule" for the package and include a package statement along with that name at the top of each source file which holds the classes, interfaces and notation types that developers want to add in the package.The following code showed that how the package can be created in Java code: package kurdPackage; class kurdClass{ } As it can be seen in the above Java code, the package statement must be the first line in the source file.It can be used www.ijacsa.thesai.orgonly one package statement in each source file, and that package name applied to all types in the file [12].

F. Previous Works
Our team investigated into existing solutions which are similar to the solutions that have been discovered in this study, but no solution has been reported on the solution to the Kurdish language in the Java codes.As a result, it can be said that this study will be the first which worked on the find the way to use the Kurdish language in all Java codes.However, there are several solutions that have used for the other languages, namely, Sindhi and Arabic and the other languages.In this section it will look at two solutions that are similar to our solution.
The first solution was defined by Ismaili et al in 2011, which they have built the Graphical User Interface (GUI) for the Sindhi language [7].This solution helps Sindhi people to use of computing for several basic tasks, for instance editing, composition, formatting and printing documents in Sindhi by using this solution [7].The second solution was made in 2013 by Alshahad, this solution was designed a new Java package to learning Arabic languages for non-Arabic speakers [1].

III. WORK UNDERTAKEN
This study composed of two main phases, which are system design and system implementation.

Class Diagram:
As it can be seen our solution is composed of two main class which are KurdishKeyboard and KurdishKeyboarTest.The KurdishKeyboard consits of three main methods which are:

1) ToKurdishString:
This methods convertes the English-alphabetics to Kurdishalphabetics.In order to learn and use the corresponding kurdish letter with English letter, users must stick with the following table.As the number of Kurdish alphabet is more than English alphabet,we were obliged to use some Capital English letter to be equal with the numbers of Kurdish-alphabetics.For more information please see the following table.
2) ToKurdishInteger: The main aim of this method is to Convert English Integer numbers to Kurdish Integer numbers.It is worth mentioning that this methods converts all integer number regardless of its size such as Byte, Short and Long data types.Please see table three in order to find the corresponding English-Kurdish integer numbers.

English Number
Kurdish Number 3) ToKurdishFloat: ToKurdishFloat method Converts English Floating type numbers to Kurdish Floating type numbers.Please see table four in order to find the corresponding English-Kurdish floating point numbers.

4) ToKurdishDouble:
As we have two floating point types we were oblied to provided another methods to convert Double English Number to Double Kurdish numbers.Please see table four in order to find the corresponding English-Kurdish double numbers.

English Number
Kurdish Number The second class which called TheKurdishKeyboardTest contains one Main mehods which is:

Main methods:
In java programming main methods is considered as default method to compile and run java program.In our solution we have provided this method to run and test the solution.Beside above classes our package has included the JUnit testing classes for validation process.All the operation has been tested using unit testing in accordance with current standards.
More importantly, as we all know documentation has been considered as crucial stage of developing packages and applications.Based on that, the documentation has been provided for users.

B. System Implementation
As we have explained earlier, our solution consists of two main classes.The KurdishKeyboard is consists of four main methods.In the below flowchart explains the complex operations about the solution.
It is evident that texts usually contain alphabetic, numbers including integers and floating point number types, and other symbols.The program will accept any input text from interface or any other sources and then comparison stage will start.The program search into the text and analyze to find out which method should be called.Obviously, the loop will continue until the end of the text.
When the program find alphabetic, the toKurdishString method will be called to convert the English character to Kurdish character.The program will go through to the memory to find the correspondent memory number for Kurdish character.
However, when the Numbers are found in the text, the program needs to check whether the number is integer or floating point.As it shown in the flowchart, the toKurdishInt method will be called when integers found.On the other hand, the toKurdishFloat will be called when floating points are detected.Similarly, the toKurdishDouble method will be called when Double floating point number types are found.

IV. RESULT AND DISSCUSSION
As we have mentioned earlier, we have developed an interface to showcase our solution with the aim of providing better understanding for java users.The issue of writing Kurdish Letters has been long there and programmers have been suffered considerably.However, this issue is no longer available since programmer can use JKLP package to write Kurdish letters whenever they need it.
Using the JKLP package is handy by only invoking the methods you need to obtain the Kurdish letters as you can see from the following example:  The toKurdishString converts English-alphabetic to Kurdish-alphabetic.An example this conversion can be seen in the following figure.As it can be notices the program converts all the English-Written letters to Kurdish-Written letters in accordance with defined table of corresponding letters which have used as the dictionary in the solution.Similarly, the program can converts number to required Kurdish system.Below figures shows how the systems converts English Integer numbers to Kurdish Integer numbers.www.ijacsa.thesai.orgWe are glad to announce for Java users especially for Kurdish Java programmers that from now they do not need to be panic when they want to use Kurdish Letters in java programming.Our solution has solved one of major issues which have been around for decades.We developed a java packaged called Java Kurdish Language Package (JKLP) for solving writing Kurdish scripts in Java programming language.JKLP package converts all English letters to Kurdish Letters including texts, symbols numbers which can be integer and/or floating point numbers.The use of our package is thoroughly handy in which you just need to import the package into your existing project and initialize an objects to call the methods.In order to provide better understanding of how to use JKLP package, you can download or look at the documentation which has been provided in the appendix of this study.Finally, we have test the authenticity and the validation of the results of this study by using Junit testing in accordance with currents to standards to give more value to the study.

A
. System Design Our proposed package (Java Kurdish Language Package) JKLP consists of two main classes.The first class named as KurdishKeyboard which converts the written-English alphabets to Kurdish-alphabets.The second class named as KurdishKeyboardTest to compile and run the KurdishKeyboard class.Figure one illustrates the detailed structure of the JKLP package.

Fig. 7 .
Fig. 7. Using JKLP Package and its MethodsAs it can been, the use of our JKLP package is so easy you just need to call the necessary methods.We have provided four methods which are toKurdishString, toKurdishInt, toKurdishFloat and toKurdishDouble, the below figure shows the output of the main program.

Fig. 10 .
Fig. 10.toKurdishInteger Conversion Screen Likewise the system automatically converts floating point type number to Kurdish floating point numbers.Below figures demonstrates how the system converts floating points number including float as well as double data types.

Fig. 11 .
Fig. 11.toKurdishFloat Conversion ScreenAs we have mentioned previously, the documentation of JKLP package has been provided for better understanding.The bellow figure shows the overall look of the documentations result.However, users can find the full documentations file in the attached study.