Application for : APERTIUM :
Improvements to postedition interface
Hi Everyone, my name is Mougey Camille, alias « commial » or « ajax ». I
come from ENSIMAG, France, and I want to apply for the Google Summer of
Code project named “Improvements to the Advanced Web Interface”.
I'm really enthusiast to help the community to advance, because although I
use open source software, I never had the opportunity to participate in the
adventure.
I chose this project due to two main reasons :
- I think if we want a project to be develop, it have to “touch” many
people. And most people aren't accustomed to download, install, configure
and use shell to obtain a result.
Currently, with the development of the cloud, most people want on-line
services, accessible with just a click. It's why, for me, the Web Interface
is very important and have to use all the power of the tool behind, alias
Apertium.
- My skills concerns web development, particularly PHP, Javascript ( and
the mix : AJAX ). I really like to develop with these languages, and for
this reason, I have accumulated experience in this kind of development.
Subsequently, i will introduce how I want implement some of proposed
ideas.
1) First, I want to port the code for all recent php versions; By the way,
finish to familiarize with the code
for example :
if($_FILES["in_doc"] AND !($_FILES["in_doc"]["error"] > 0))
file_put_contents
become :
if(isset($_FILES[“in_doc”] and !empty($_FILES[“in_doc”]) ...
fopen, fwrite, fclose
2) Rewrite the Javascript as separate modules so that it be easy to decide
which tools to enable or disable in the interface
-> Make a dependences tree of functions in current libraries
-> Write more generic functions and procedure to give foundation for
modules
-> Make an user interface to enabled/disabled modules ( List of modules,
recommended modules with description, use example )
3) Rewrite language.php file as an abstract script, and interface modules
for Apertium, Aspell and LanguageTool.
-> Separate the translation system and the environment management system
-> Make the translation system as an PHP Object, which is initialised
with languages pairs
-> Extend the environment management system to allow writing of
interfaces modules for Aspell and LanguageTool
-> Write these modules
4) Provide more formatting modules; currently only ODF, OOXML, html and
text are supported. Mediawiki (using apertium-mediawiki) and others are
wanted.
-> Add module for Mediawiki formatting
-> Add module for Rich Text Format formatting
-> Add module for Pdf formatting
-> Perhaps consider the possibility of using OCR for Pictures ( by using
Google Apis for example, or OpenCV which is open source )
5) Localisation, make it possible to translate the interface into
different languages.
-> The localisation is given by IP Address, or by the browser, or set by
the user
-> The choice is save ( cookies, .. )
-> The interface texts are load from XML files, which contain the text
for every button, checkbox, ...
-> Perhaps allow the user to propose new interface text ( by making XML
file ), or using his own
6) Improve overall design
-> The current design is very basic ( or non-existent )
-> The Apertium website will pass on WordPress system, so the overall
design can be taken
-> If the website isn't yet on WordPress, make a design similar to the
Apertium current website ( in colour, simplicity, .. )
7) Fix possibly remaining bugs
-> It's a task on the long time, but at this stage, I want to make a
complete test of the system
-> It's include :
- Fix remaining bugs
- Make some test sets
- Optimize code
- Fix security issues
8) Make it possible to input a TMX to help for a translation (either with
Apertium's TMX input system, or an external tool like OmegaT) ; By the way,
familiarize with TMX format
9) Design a server-side TMX database, so that the memory generated after a
translation be stored and reused automatically for next translations in
this language pair. (It might be wise to add some kind of validation too,
to make sure that people don't mess with the whole system by submitting
wrong translations...)
-> These tasks go together : The main idea is to permit to the user to
give or alter current translations, export them to TMX format. At the same
time, these modifications are saved in a server-side TMX database, which
contain two kinds of dictionaries by language :
- Submitted and awaiting for approving translations
- Approved translations
-> Add in the user interface the possibility to use Submitted and
awaiting for approving translations ( not recommended ) and/or approved
translations ( recommended )
-> May we can see here a way to use the logging system
10) Provide a module to use the apertium.org web service instead of a
local Apertium installation
-> Make a bridge between apertium.org website and local Apertium
installation, perhaps by parsing code result ( simulate the entry of user
on the website, and analyse the result ) but it use pregmatch => expensive,
or perhaps by writing an API for the apertium.org web-service, which will
avoid the phase return analysis
-> Add the possibility for the user to use this service, in the
interface
11) Fix new or remaining s bugs
-> Stand back, redo 7)
12) Make it faster and cross-browser compatible
-> Give, and add to JS existing modules, libraries to adapt the system
for recent browser. We can down to IE 6.
-> Make it faster by analysing the time critical path
-> Make the different libraries download faster, by reducing their size
(
like Google for jquery )
13) Make installation easier. Fully describe the installation process on
the Wiki.
-> Add screen-shot/video tutorial to the Wiki to describe the
installation.
-> For Debian based system, may create a *.deb package, *.rpm for Red
hat, ..
-> Perhaps create a simple interface for the installation process ( more
attractive for Ms Michu )
14) Improve integration with Wikipedia — it should be able to fetch pages,
translate, allow to be revised and then published.
-> Integrate module for recognize Wikipedia format
-> Make or use existing Wikipedia API to fetch pages, and post them (
allow to be revised and then published )
15) Provide modules to integrate alternative tools for spell and grammar
checking (AfterTheDeadline, etc.)
-> Make outputs during the translation process, which can be redirected
to others tool
-> Define the possible interaction with the software
-> Implement these interactions
Find a way to extract useful information from the dynamic event logging is
a reflexion on all the summer.
Ideas :
-> Statistics
-> Auto-completion
-> Make current dictionaries better ( 8) 9) )
-> Propose text correction ( like a Google research )
-> ..
But it would allow the user to choose not to register informations, for
private issues.
Briefly, about me :
I'm 19 years old. I have created many website, trying to use newest coding
style. I'm really interested in informatics security, what drives me to
accumulated knowledges on what PHP functions does exactly, their cost,
better solution to implement different algorithms or data structures.
Of course, I continue to learn everyday, but I can now rely on know-how.
If you're interested, this is my blog : http://blog.4j4x.net
my website : http://4j4x.net
I hope you don't you asleep during the reading and I look forward to your
criticisms.
Regards,
MOUGEY Camille
First Year ENSIMAG (Grenoble)
Address : [email protected]
------------------------------------------------------------------------------
Create and publish websites with WebMatrix
Use the most popular FREE web apps or write code yourself;
WebMatrix provides all the features you need to develop and
publish your website. http://p.sf.net/sfu/ms-webmatrix-sf
_______________________________________________
Apertium-stuff mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/apertium-stuff