Well, I have not been able to implement every detail I planned for this project, but nonetheless, done lots of stuff in different projects this summer. The work continues for sure, so we can get the localization server online (possibly as part of groups.drupal.org) sometime soon. There is a quick and dirty video of the localization server interface as it stands now, after the jump.
My work involved modifications in the following existing projects:
- Drupal 6 core modifications
- Made it possible to import translations automatically (Jakub Suchy was a great help in testing!)
- Defined a new packaging format for translations
- Refactored
locale.incto support a gettext export API - Made it possible to implement the localization client with
t()modifications
- Potx module modifications
- API-ified the extractor, so it is possible to store strings directly in a Drupal database
- Project module modifications
- Made it possible to retrieve project releases for all core compatibility versions (dww helped a lot here)
- Making it possible to retrieve a list of projects on the server (again, dww is great; work is still underway)
Developed these new modules:
- Localization server for Drupal 5.x (some parts inherited from Bruno Massa, completely rewritten from the ground up)
- Automated project listing discovery from updates.drupal.org
- Automated string scanning of releases
- Organic groups based translation interface to form translation groups
- Share translations between different projects and releases
- Various filtering options for translations
- Import already completed translations (supports desktop tools and onsite Drupal translations)
- Export translation templates (supports desktop tools)
- Localization client for Drupal 6.x
- Provides on-page translation for Drupal sites (no need to use the cumbersome locale module interface)
Stuff that was not done yet, but is/was planned:
- Localization client
- Improved UI: in-place translation instead of on-page, by identifying strings on the page; also better AJAX feedback
- Act as a real client to the server, making it possible to submit translations directly to the server
- Localization server
- Provide a simple XML interface for project module to get translation stats, and pull this data from project module
- Make the generated (exported) release packages available for download statically, not just generate them online
- Implement suggestions! (Although there is help text and UI in the module now which says it supports suggestions, it actually does not support them yet.)
- Improve UI: dim the toolbar buttons when they are not active (i.e. extended information already provided, textarea already shown)
Look back at the overview if you missed how all these are connected. Also check out this quick and dirty demo of some of the features of the localization server.
This video was made with Jing, which does not make it possible to edit or refine it, and it also enforces a 5 minute limit. That can be quite good for distilling the most important information into a demonstration, but it can also be limiting if you have slightly more to tell. So you write a blog post too.
All in all, although I am not entirely satisfied with the state of the projects right now (the client is unfortunately still kind of bare bones), I think I was able to deliver cool solutions this summer, and I am not planning on stopping development anytime soon. By now, the drupal.org infrastructure related consequences of the modules are showing, so we will see how these fit into the infrastructure after some discussion with the infrastructure team (i.e. when and where you will see a test site, and where the final version will reside).
This post was originally published on groups.drupal.org.