L20n/Roadmap/1.0

From MozillaWiki
Jump to: navigation, search

Overview

L20n 1.0 is going to be the initial release of the project. It's also going to be the most significant release for a long time as it will define the exact scope of issues that l20n solves, and what projects it'll fit.

We're defining initial syntax, toolchain, workflow, bindings and patterns. It's a massive work and in result it's very hard how future-compatible this release will be. We want to make sure that as many future features as possible (see L20n:Next) as possible have a place and can be added without breaking 1.0, but it's extremely hard to freeze.

Another angle of potential hiccups comes from a massive number of edge cases, tool requirements, workflow flexibility and bindings. We're doing our best to foresee those, but 1.0 will hopefully result in a feedback round that will feed L20n.Next and it's hard to predict what will show up then.

Expect it to be a bit rough, but exciting and the road after 1.0 should be much smoother and incremental.

For a more detailed reference on the roadmap for 1.0, see Gandalf's blog post on 1.0 features.

Target platforms

The single major target platform for this release is Gecko. With limited resources we decided to focus on making sure that we can replace properties/DTD format with L20n.

On top of that we're making sure that 1.0 can be used for localization of python projects, client-side JS projects, django templates, php projects, jetpack and nodejs but there's no maintainer for those bindings as of now.

Major features

Ready

  • LOL file format - new localization file format that enables localizers to use L20n features in localization
  • JavaScript bindings - ability to use L20n to make JS code localizable
    • J20n file format - compiled LOL files into JS for fast performance and easy binding
    • JS API - Basic API for JavaScript code that fits the social contract between developers and localizers
    • LOL->J20n compiler - algorithm that allows us to compile LOL files into J20n files
  • XUL/XBL bindings - ability to use L20n to make XUL/XBL code localizable
  • Python L20n library - library that allows to operate on LOL files (parse, modify, serialize) and compile (initially to JS)
  • Proof of concept for Python bindings
  • Proof of concept for JS compiler
  • Proof of concept for PHP bindings
  • Initial plan for content localization (rich-text templates etc.)

In progress

  • Developer Workflow cycle pattern - document the initial proposal for how developers should make their software localizable, introduce it to localizers and maintain the app localizable
  • Localizer Workflow cycle pattern - document the initial proposal for how localizers should work on the initial localization, maintain the localization over time and revive partial localization
  • Basic toolchain - basic set of tools to analyze the status of the localization, check completeness, compare it to another, merge, maintain between updates and fix if there's a problem.


Next: L20n's design details
or
Next: More L20n roadmap