ICUBE is a Open Source project that aims to develop a Internationalized Internationalization IDE
Internationalized Internationalization IDE means an IDE for the Internationalization process that is available in many languages (Internationalized)
As you probably already know IDE stands for Integrated Development Environment
TABLE OF CONTENTS
¿ WHY IS THIS PROJECT NEEDED ?
HOW WILL ICUBE PERFORM THE I18N PROCESS ?
NOTES ON SOURCE INTERNATIONALIZATION
PRODUCING INTERNATIONALIZED DOCUMENTS
CONTACTING THE AUTHOR/CONTRIBUTING/MAKING SUGGESTIONS
1. ¿ WHY IS THIS PROJECT NEEDED ?
Different programming IDEs for different programing languages have tools/plugins that help developers to Internationalize (I14E) the software. In this approach the main task is the software development and the secondary task is the Internationalization (I18N).
If you have Internationalized (I15D) software before you know that is not as simple as extracting the strings into a file and then make translations of that file. (it might be the case if your software and the document are small enough to be translated manually)
In the translation process you usually want to also translate the documents related to that software (such as manuals, FAQs, tutorials, description of features, etc) But If the software is being developed faster that the time it takes to produce/translate the documents you might end up with one of this scenarios:
translated documents that are not updated with the software changes.
a manual in ENGLISH for a software that is already available in other languages.
documents that mention a “error message”/”component name” that has been changed/renamed or no longer exists.
Even If you have an updated translated document for every language that the software is already translated, you need to handle the process of updating those documents for every new release (specially if you added new menus, messages of errors to the program that need to be documented)
All these reasons rise this question....
¿ why not have a Internationalization IDE that helps you with the Internationalization of your software and documents ?
Well the answer to that question is ICUBE
2. DOCUMENT CONVENTIONS
The following conventions will be used frequenlty
INTERNATIONALIZATION = I18N (18 letters between I and N)
INTERNATIONALIZED = I15D (15 letters between I and D)
INTERNATIONALIZE = I14E (14 letters between I and E)
3. HOW WILL ICUBE PERFORM THE I18N PROCESS ?
3.1. An ICUBE PROJECT will be created specifying the following:
SOURCE FOLDERS are the folders that contain the source files to be I15D
DESTINATION FOLDER is a folder where a COPY of selected SOURCE FOLDERS will be placed
3.2. Choose from the SOURCE FOLDERS a list of files and/or folders that you want to process
3.3. Decide if you will like to SPLIT strings for a better I118N of the source files
If you decide to SPLIT a string like "The file: " it will be changed to "The File" + ": " since ": " does not need translation
3.4. Choose the type of I118N that you want
Simple = All the strings that can be I115D are located in a single file.
Medium = You can group the strings of different files by category (one for messages, other for errors,etc..)
Detailed = Every source file can have its own I118N file.
4. DESIRED/PLANNED FEATURES
These FEATURES will be available depending on the type of I118N that you have selected
When the I118N process begins, you can see which strings are suitable for I118N (Candidate Strings) and which don't need to be I115D (Ignored Strings)
You can move strings from/to the Ignored Strings to/from the Candidate Strings.
You can create String Categories that group many Candidate Strings based on Regular Expressions (one for strings that match "ERROR*, another for "menu*")
You can choose how to organize the Resource Bundle(s) produced by ICUBE (this example is for JAVA internationalization)
PLAIN LAYOUT = All the Resource Bundle(s) of different languages will be placed on a single folder
/lang/messages.properties <----Default messages
/lang/messages_es.properties <----SPANISH messages
/lang/messages_en.properties <----ENGLISH messages
/lang/messages_fr.properties <----FRENCH messages
TREE LAYOUT = The Resource Bundle(s) of each language is located under a different folder
/lang/messages.properties <----Default messages
/lang/es/messages.properties <----SPANISH messages
/lang/en/messages.properties <----ENGLISH messages
/lang/fr/messages.properties <----FRENCH messages
5. NOTES ON SOURCE INTERNATIONALIZATION
Every I115D source file will be capable of loading any messages from any language using methods provided by ICUBE.(no matter if they are organized in TREE or PLAIN LAYOUT)
A good choice will be that the MAIN source file will load the required Resource Bundle(s) and either makes them public or pass them to the other source files as parameters so they can use them.
6. PRODUCING INTERNATIONALIZED (I115D) DOCUMENTS
This process will involve the usage of the Resource Bundle(s) from the above process step but is UNDER CONSTRUCTION at this time.
7. CONTACTING THE AUTHOR/CONTRIBUTING/MAKING SUGGESTIONS
Use the forums
Feel free to contact me at mauriciogracia AT sourceforge.net for any comments, ideas, developments, translations or interesting links about this subject