GSoC-2008: Implementing A Web Based Translation Interface For Gallery2

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 5

Implementing a Web Based Translation Interface for Gallery2

Google Summer of Code (GSoC) 2008: John Britton

Abstract - The idea, in brief

The goal of this project is to simplify the task of user interface translation in Gallery2
(G2). In itʼs current state the translation process is not simple enough for the general
public, and maintaining translations is a tedious burden on the G2 team. I will lower the
barrier of entry for translators by implementing a web based translation collection
system and I will ease the burden on the G2 maintainers by integrating the system as
closely as possible with the G2 build and distribution process. The starting point for my
work will be code produced by Gábor Hojtsy in his 2007 Google Summer of Code
project entitled “Tools for Drupal Translation Teams and Users”, in which he produced
the “localization_server” Drupal module suite.

Gáborʼs “localization_server” was built specifically to translate the Drupal software; my


primary task is to write a new connector module to interface with the G2 software. I will
automate string harvesting from core, official, and if possible contributed modules. If
time permits, I will automate the process of distributing the language packs by
integrating with the upcoming G2 Language Manager.

Detailed Description - The “nitty gritty”

The Drupal “localization_server” suite of modules is composed of l10n_community,


l10n_groups, and a l10n_connector module. l10n_community holds the translation
interface and the database backend for the suite, l10n_groups provides an interface
to the organic groups Drupal module allowing per language groups to self organize,
and the l10n_connector module is responsible for importing translatable strings and
associated metadata (project, release, file, line, string, and translation).

At present, two l10n_connector modules exist, both Drupal specific: l10n_localpacks


and l10n_drupalorg. l10n_localpacks parses locally stored Drupal packages for
translatable strings and extracts associated metadata based on filenames and
directory paths. l10n_drupalorg parses an XML file from drupal.org, downloads Drupal
packages and extracts translatable strings and metadata for translation.

My main task will be to create a new l10n_connector module, specifically tailored to


the needs of G2. The new module l10n_gallery2 will be hosted on the Gallery website
http://gallery.menalto.com (GMC). Conveniently GMC runs the Drupal CMS so I’ll be
able to leverage the existing userbase to increase participation in the translation
process.

Conveniently “localization_server” is a suite of Drupal modules and the gallery


website http://gallery.menalto.com (GMC) website runs on Drupal.

We can use existing userbase, usernames, passwords... all community members will
automatically have accounts. Anyone will be able to translate G2, from their web
browser.

the first module will be a l10n_connector, enabling l10n_server to harvest translatable


strings from G2 code. This will either be done by automatically pulling code directly
from SVN or autmatically pulling code from G2 nightly automated builds.

This may seem simple at first, but there are a number of differences between the
Drupal l10n_connector and the proposed G2 l10n_connector. The major differences
being that G2 and Drupal handles translatable strings slightly differently. Another
complexity will be in importing the strings into l10n_server as separate components
for each module to facilitate per module translation progress monitoring.

Modify for export.

Modifications to other localization_server modules may be needed to get everything


working.

If time permits, an additional module will be created to export directly to LM

other complexities include countable translations, pluralizable, singular, dual (in some
languages), plural strings
August 11 - August 18
Pre GSoC - Interact with G2 team to produce a successful application.
April 21
Week 1 - May 26
potential to impact the G2 project substantially. Any user, regardless of technical ability
will be able to help translate.

Features
self managed groups
suggestions/moderations

language maintainers who will be responsible for moderating end-user translations. The
translation server will accept suggested translations from all users. Privileged users will
be able to skip the moderation step and directly enter translations.

This is an improvement in that currently, translators must download code and special
tools to accomplish the same task.

The structure of localization_module is


l10n_community
l10n_groups
although not a primary goal, the addition of group functionality to the G2 website will
enable community members to organize themselves according to areas of interest and
facilitate furthering the development of the Gallery project.
connector_module, custom module for Gallery2

better translations, because of the moderation

Project Timeline
April 21 - May 25:
Talk with G2 core developers via IRC, flesh out project requirements and goals. There
are a few parts of this proposal that depend on what we think is best for the Gallery
project, I will make these decisions during the introductory time period with help
from my mentor and the community.
1. May 26
2. June 2
3. June 9
4. June 16
5. June 23
6. June 30
7. July 7
8. July 17
9. July 21 -
10. July 28 -
11. August 4 - Write codex documentation, finish up any additional unit tests.

Deliverables - WYSIWYG (What you see is what you get)

• A simplified, user friendly web based translation interface integrated with GMC
• Custom “l10n_connector” module to integrate with G2
• Automated string fetching from G2
• Translation completion status monitoring
• Per language
• Per component (module)
• Translation moderation
• Role/Right administration
• Translation “groups” for each language, with the ability to assign “maintainer-
ship” to distribute responsibility and work among volunteers.
• Codex documentation for end users
• Unit tests as required by G2 style and quality guidelines
• Automated delivery of language packs to the upcoming G2 Language Manager, if
time permits.
Qualifications - I’m your man, here’s why:

I’m a Computer Science student at Rensselaer Polytechnic Institute (http://


www.rpi.edu), and programming is a passion. My formal programming instruction
includes C/C++, Java, PERL, and Ruby. In the working world I’ve developed mostly in
PHP, Ruby, and Java including maintaining three different PHP web applications with
multi-language capabilities. Beyond programming languages I’m well versed in SQL,
Unix/Linux, web standards and related topics.

Most importantly, I’ve been a member of the G2 community for four years, most
active in development over the past six months. I’m familiar with the way the G2
team operates including weekly IRC meetings, code review process, and coding
standards. I have contributed to the project, and plan to continue well beyond the
end of GSoC. In addition to my G2 contributions and experience, I’ve worked with
Drupal for as many years, including attending Drupalcon Boston 2008. While in Boston,
I met with Gábor Hojtsy and talked with him about his “localization_server” module,
upon which this proposal is based.

My G2 Contributions
• Started discussion and wrote preliminary code for what is now the FLV module
• Comment moderation feature committed to the Comment module
• Bug reports
• Code under review for inclusion into the slideshow module (MediaRSS paging)
• Working on a G2.3 blocker
• Provide support via IRC from time to time

Motivation
There are a few reasons I’d like to work on this project, all of which make me a
strong candidate who is determined to succeed.
• I love to take and share photos, G2 is the best way to do that
• I love FLOSS, I use it everyday and want to give back
• I’m a language junkie, I love to study foreign language
My strongest motivation for this project is definitely my interest in foreign language.
I’ve studied Spanish for 10 years, I’ve also formally studied Basque and informally
studied Polish. In the fall I will begin studying Chinese.

You might also like