Table of Contents
Banjon is an open source, multilingual input method (transliterator, encoder) for natural Languages. It is designed to analyze the pattern and context of an input character sequence of source language from user and generate an output character sequence of target language based on a predefined map (transliteration) script. Banjon back end is an interpreter of the special-purpose programming language (domain-specific language), which is designed to transliterate (incremental or input) text (in real-time) from one language to another language, known as Map (scripting language or input processing language). It is a custom designed extensible scripting language for seamless syntactical and conceptual (semantical) integration with interactive system. The map script, which is a predefined script, contains transliteration (encoding) rules and set of coded instructions to retrieve and process contextual information to manipulate the rules (in runtime). There are lots of legacy terms still exist in source code and need proper code clean-up.
The components of Banjon are essentially divided into two major categories – front ends and back ends. The front ends, as the name implies, are the components of Banjon involved in user interactions. The back ends generate an intermediate representation of transliteration (encoding) rules for faster execution and processes user input according to those rules. At present, several front end implementations are in progress and some are in beta stage. A back end implementation is also in progress and is in beta stage.
The main goal of Banjon is to create a generalized input method scheme for all languages. Almost all the languages need an input method to input language specific characters into system using standard keyboard. To design an effective input method for a language takes thousands hours of hard work and testing. In contrast, it will take approximately half an hour to write a map script for Banjon, which is perfectly equivalent to (or more enhance than) the custom designed input method for the language. Thus Banjon can save thousands hours of development time and standardized the input method system. Moreover, it is often the case that developers write several input methods for different user preferences of a language but the number is negligible against the hundreds of different user choices and each input method (or key binding) takes massive time to write. Banjon solves these problems all together by using map scripts that users can edit according to their preferences.
This section contains various packages for download such as front end and back end packages of Banjon. Banjon front end(s) that use the back end(s) for processing user input can be served as a reference (prototype) implementation(s) of Banjon back end component(s). Both categories of the components require Java Runtime Environment (JRE) 1.6 or higher for all operating system. For some operating systems such as Windows XP requires additional configuration for rendering text in some languages. Java Development Kit (JDK) and other libraries are required to build Banjon from source files. To extract the 7-zip source archive you need p7zip for Linux and 7-zip for Windows.
The following two packages of Banjon IM, which is a front end of Banjon project, are released under GNU GPL. It is a development release of version 0.16.0 of Banjon IM.
Currently Banjon support more than five languages (because some scripts are used by several languages) and many different key bindings (transliteration scheme).
Unstable (Redesigned Backend)
Help and Guide
If you encounter difficulties regarding Banjon, you may create a new support ticket. To report a bug in Banjon project create a new defect ticket with additional information such as component, operating system and version etc. You can use enhancement ticket to request new feature and enhancement. Search and browse the existing tickets first to make sure that you are not duplicating another ticket.
User guide provide an overview of commands and features for general users, who are interested to use Banjon as an input method. All internal details are excluded from user guide so that general users can understand the content. Developer guide contains internal logical structures, functions and details of complete process cycle of input and output.
To contribute to the project, first consider reading project objective, user guide, developer guide, unimplemented feature list and other documentations. Then download and modify the source files with your improvement and send patch(s) to administration. Additionally, you can contribute documentations to this project. Source code of the project will be uploaded in sourceforge SVN after refactoring the legacy terms from code.