OVQTTranslationPluginGSoc2011

Version 2 (cemycc, 04/07/2011 01:07 pm)

1 1 cemycc
h1. My application for Ryzom
2 1 cemycc
3 1 cemycc
I will write here a draft of my application after that I will post it on melange.
4 1 cemycc
5 1 cemycc
h2. Name
6 1 cemycc
7 2 cemycc
Name: Emanuel Costea
8 1 cemycc
9 2 cemycc
Nickname(s) (irc, IM, forums etc.): cemycc
10 1 cemycc
11 2 cemycc
Email: [email protected]
12 2 cemycc
13 2 cemycc
Phone: 00400751641702
14 2 cemycc
15 2 cemycc
Age: 20
16 2 cemycc
17 2 cemycc
Country: Romania
18 2 cemycc
19 2 cemycc
Timezone: GMT+2
20 2 cemycc
21 2 cemycc
22 2 cemycc
23 1 cemycc
h2. Email/IRC/WWW
24 1 cemycc
25 1 cemycc
My Email: [email protected]
26 1 cemycc
On IRC you can find me under *cemycc*.
27 1 cemycc
WWW: http://www.cemycc.net - My blog is in a beginning state
28 1 cemycc
29 1 cemycc
h2. Synopsis
30 1 cemycc
31 2 cemycc
h3. Did you select a project from our ideas list? If so, why did you select this project?
32 2 cemycc
33 2 cemycc
I have selected OVQT Translation Plugin with some of my additions. 
34 2 cemycc
I have selected this project because I know that I can complete it with my knowledge of C++ and QT. 
35 2 cemycc
36 2 cemycc
h3. About
37 2 cemycc
38 2 cemycc
The aim of my project is to create a new tool for the Ryzom cummunity that will help the designers and translators.
39 1 cemycc
The tool will be written in C++ with QT and will use some components from NeL. Also, the new tool will work as an OVQT plugin.
40 1 cemycc
41 1 cemycc
The new tool will easily generate default strings and variables on translation. The tool will be able to get the list of variables from primitives and after that it will compare it with the actual list of translations.The users will have the possibility of searching, creating or modifying new strings in the translation files. 
42 1 cemycc
43 1 cemycc
As GUI Features the new tool will be able to:
44 1 cemycc
* search and replace 
45 1 cemycc
* create new strings in translation file
46 1 cemycc
* modify the strings from translation file
47 1 cemycc
* switch to worksheet view with editing capabilities
48 1 cemycc
* display comments from strings
49 1 cemycc
50 1 cemycc
As core features the new tool will be able to:
51 1 cemycc
* connect to an ftp server and get new translation files (this feature will help the communication between the present application and the web-tool so you can easily update the files)
52 1 cemycc
* read the translation files
53 1 cemycc
54 1 cemycc
Another feature that I will implement will be a nice GUI for viewing and editing the phrase files.  
55 1 cemycc
56 1 cemycc
h2. Benefits for WorldForge
57 1 cemycc
58 1 cemycc
This tool will ease the work of designers and translators.
59 1 cemycc
60 1 cemycc
h3. About the existent tool
61 1 cemycc
62 1 cemycc
The tool that currently handles the translations is quite old and difficult to work with.
63 1 cemycc
Firstly, you need to use the +command line for every step+ in the translation process and you +need to write a new command (with or without paramamaters)+ for every step.
64 1 cemycc
Secondly, you don't have GUI support so +you will need to open/close the text editor multiple times+.
65 1 cemycc
When your project has three different types of files for translations, to work with such a tool gets quite hard.
66 1 cemycc
67 1 cemycc
*First example*
68 1 cemycc
You are a professional translator that doesn't have good computer skills. You will need to edit a Spreadsheets file. 
69 1 cemycc
It will be a pain because you need to know how to write the strings, when to use the tab. You can go wrong quite easily and after that you will need to go through the entire file to see where the problem is.
70 1 cemycc
Then, the Ryzom staff will need to set two people for this task: the professional translator and a developer with plenty of time to edit the strings in the Spreadsheets file.
71 1 cemycc
72 1 cemycc
*Second example*
73 1 cemycc
You are a game designer, you are working on creating new quests. You have written the quests on your notebook, now the first step will be to create the NPCs for the quest.
74 1 cemycc
Also, you have created the NPCs with the World Editor and now you need to insert them in translation files to set their names.
75 1 cemycc
So, if you have created around 10-20 NPCs you will need to insert from 20 to 40 lines in the files. You want to insert the base names for NPCs and those names to be generated from their variable (just for tests right now). 
76 1 cemycc
For example you have created an NPC called: _tatiana_questkeeper_npc_ and you want his name to be : Tatiana Questkeeper -> later on, this name will be edited by the translator, but for now you need it like this for testing. 
77 1 cemycc
With the existent tool you will need to write a cfg file to set some paths and other vars for the primitives (at least it is a one time operation). Afterwards, you need to get the list of NPCs from primitives, to compare the new list with the current list, to edit the new strings, save the new strings. To create a new string for an NPC you will need to edit two files.
78 1 cemycc
79 1 cemycc
*Third example*
80 1 cemycc
You are a developer and you have to import the new translator strings created with the web-tool.
81 1 cemycc
You will need to connect to an FTP server to get the files, then compare the files with the existent tool and after that to insert them.
82 1 cemycc
It is quite a hard process if you need to do it every day. 
83 1 cemycc
84 1 cemycc
I admire the translators who have worked with this tool, but after this summer I promise to offer something new, better and improved.
85 1 cemycc
86 1 cemycc
h3. About the new tool
87 1 cemycc
88 1 cemycc
With the new tool:
89 1 cemycc
* Designers will spend 1 min or less to generate the strings for the new NPCs or other objects that they create with World Editor, and the object will be stored in primitives
90 1 cemycc
* Translators will have a nice visual editor to edit the files. 
91 1 cemycc
* Also, the translators that don't know programming will be able to easily create and edit game dialogs.
92 1 cemycc
* If you are new as a translator you will find hints on the GUI so you can easily understand the system
93 1 cemycc
* You will have the possibility of importing new translator files from an FTP server and compare them
94 1 cemycc
95 1 cemycc
h2. Deliverables and Project Schedule
96 1 cemycc
97 2 cemycc
h3. Deliverables
98 2 cemycc
99 2 cemycc
* A OVQT plugin that will help the designers to set the NPCs in translation files
100 2 cemycc
* A tool that will help the translators
101 2 cemycc
102 2 cemycc
h3. Milestones
103 2 cemycc
104 2 cemycc
# Designers tool -> will have the features for designers.
105 2 cemycc
# Developers tool -> will easily append other translations ( example: from FTP )
106 2 cemycc
# Translators tool -> will have support for worksheet view and edit
107 2 cemycc
# OVQT plugin -> will work as a OVQT plugin
108 2 cemycc
109 2 cemycc
h3. Project Schedule
110 2 cemycc
111 1 cemycc
* *Before April 25* : I will work every day on understanding the Ryzom core and, if I can, I will help with patches.
112 1 cemycc
113 1 cemycc
* *Community Bonding Period* : I will try to understand Nel and its features, also OVQT's plugin system.
114 1 cemycc
115 1 cemycc
* *May 23* : I will start the coding.
116 1 cemycc
# reading/writing on translation files
117 1 cemycc
# reading from primitives
118 1 cemycc
# starting to write the GUI
119 2 cemycc
# implementing the features for designers in GUI ( first milestone )
120 1 cemycc
# writing the FTP support 
121 2 cemycc
# implementing the features for developers in GUI ( second milestone )
122 1 cemycc
123 1 cemycc
* *July 15* : The next part of coding.
124 2 cemycc
# implementing the features for translators to edit/create/remove/search/replace on GUI ( third milestone )
125 1 cemycc
# implementing the visual editor for easily creating NPC dialogs with advanced functions
126 2 cemycc
# implementing this tool as an OVQT plugin and standalone application. ( fourth milestone )
127 1 cemycc
# making the final additions 
128 1 cemycc
129 2 cemycc
* *After August 30* : Helping the Ryzom community with other additions
130 1 cemycc
131 1 cemycc
h2. Detailed Description
132 1 cemycc
133 1 cemycc
My additions from the base idea are:
134 1 cemycc
* The tool will act as a standalone application and as an OVQT plugin
135 1 cemycc
* Connecting to an FTP server to get the last translations 
136 1 cemycc
137 1 cemycc
Why I have made this additions:
138 1 cemycc
* With these features, the tool can be used by a translator
139 1 cemycc
* With the FTP connection the tool will easily interact with the web-tool. 
140 1 cemycc
141 1 cemycc
h3. Application Architecture
142 1 cemycc
143 1 cemycc
I will use MV (Model/View) for architecture. If the software will be built with a software architecture, developers will be able to easily understand the code.
144 1 cemycc
_Model-View-Controller (MVC) is a design pattern. If the view and the controller objects are combined, the result is the model/view architecture. 
145 1 cemycc
This still separates the way that data is stored from the way that it is presented to the user, but provides a simpler framework based on the same principles._ 
146 1 cemycc
 
147 1 cemycc
!http://www.cemycc.net/ryzom/schema.png!
148 1 cemycc
149 2 cemycc
The model communicates with a source of data ( translation files ), providing an interface for other components in the architecture. Also, he will store different types of translation files. 
150 2 cemycc
The View will communicate with the Model and will retrieve the items of data. When an item is edited, the delegate communicates with the model directly using model indexes.
151 1 cemycc
152 1 cemycc
153 2 cemycc
154 1 cemycc
h3. Application features
155 1 cemycc
156 1 cemycc
# Will be able to easily read/write from/to translation files. It will store the results in objects and the objects will be mapped. After that, the application will be able to edit, delete, create objects and when the user will save the results, the application will write the object content to translation files. (here I can use other methods - I like this one because it is OOP)
157 1 cemycc
# Will be able to compare files and output the differences between two files. Afterwards, the user will edit and save the changes to the files. (this is why I want to use MV architecture, because the application will need to open and compare 2 files and it will be easy to store them in model)
158 2 cemycc
# Will be able to read from primitives and compare the result with the variables from translation files. To read from primitives I will use the classes from Nel Ligo
159 1 cemycc
# Will be able to easily edit worksheets
160 1 cemycc
# Will be able to connect to an FTP server and get the translation files from there, or the user can manually select other translation files. 
161 1 cemycc
# Will be able to provide a map of phrases to other plugins
162 1 cemycc
163 1 cemycc
Also, in the Community Bonding Period I will work with Nel components to get familiar with them.
164 1 cemycc
165 1 cemycc
h3. Mockups for the application
166 1 cemycc
167 1 cemycc
Here are four mockups, for the application GUI. +They are at the first revision.+
168 1 cemycc
169 1 cemycc
!http://www.cemycc.net/ryzom/Page_2.png!
170 1 cemycc
171 1 cemycc
172 1 cemycc
!http://www.cemycc.net/ryzom/Page_3.png!
173 1 cemycc
174 1 cemycc
175 1 cemycc
!http://www.cemycc.net/ryzom/Page_4.png!
176 1 cemycc
177 1 cemycc
178 1 cemycc
!http://www.cemycc.net/ryzom/Page_5.png!
179 1 cemycc
180 1 cemycc
h2. Bio
181 1 cemycc
182 1 cemycc
# *Who are you, what subject are you studying and where?*
183 2 cemycc
In the last 3 years, I was working as a freelancer with PHP. After that I was learning about design patterns, oriented programming and started to work with other programming languages.
184 2 cemycc
In the last year I worked with C++ and QT and, when I started my programming classes at faculty, my knowledge of C++ got better.
185 2 cemycc
Now, this month, I will finish a project with one of my colleague that was written in Ruby and Lisp and use beanstalkd ( http://kr.github.com/beanstalkd/ ) for communication. The project is for faculty, when it will be finish I think that will be opensource.
186 1 cemycc
# *What do you enjoy doing?*
187 2 cemycc
Creating desktop applications and in the free time, playing pool with my friends . 
188 2 cemycc
Also, I enjoy making trips in mountains.
189 1 cemycc
# *What are your experiences using WorldForge software?* 
190 2 cemycc
None
191 1 cemycc
# *What makes you the best person for this project?* 
192 2 cemycc
I was a addicted player for mmorpg games. I was playing allot of games for a long period of time . After that I was working on emulators for MMORPG games for a short time, just to understood the server part.
193 2 cemycc
I want to work on this project because, for me, it will represent a consequence of spending my childhood playing this sort of games. 
194 2 cemycc
Anyway, I will never hate my childhood, for a guy like me, playing this games at that moment was like creating my own world where all my friends understood and helped me. 
195 2 cemycc
In my opinion, MMORPG games make the player to be a little more powerful than he is in real life.