Thanks to our friends of Babelzilla
, you can now help improve Nightingale localization (L10n).
If you want to translate/review Nightingale localizations you will have:
After being approved, you will be able to review your current locale and also complete it if it’s not 100% done yet.
We will be adding new strings soon, so stay tuned and help us!
History of L10n
At the beginning, Nightingale had no real L10n support, we only took a verbatim copy of Songbird’s langpacks with no changes made to them.
Songbird «had» (has) a translation website
platform written in Ruby which was unfortunately never released as open source and was a bit limited with some disadvantages.
- The website was open and everyone could translate like Wikipedia with simple edits, which could have resulted in a mess if there was nobody watching changes and what was going on
- The platform never relied on a physical public repository, it means everything for langpack generation was done on Songbird’s servers without file system/tree view for public
- There was no real review system and no way to do things like downloading only translated strings (without en-US strings)
For Nightingale, we have decided to team up with Babelzilla
. They are long time friends, and they already have been hosting Songbird add-ons
as well as Nightingale’s.
This platform provides us a great set of tools like the Transifex client, team management, review process, ability to test langpacks, etc.
Moreover we have made some cool tools to sync translators’ work with our Git repository
, so we can track all the work to have a better visibility.
Work done so far
A lot of cleanup work was done before importing Songbird localization files into this platform:
- Improved Ellipsis usage on every locale and replaced ”…” by ”…”
- Fixed usage of double quotes inside a string in songbird.dtd
- Converted some strings’ values to double quotes
- Replaced Add-ons URL by add_ons.url
- Replaced Bugzilla URL by file_bug.url
- Removed spaces on some strings in songbird.properties
- Replaced “Songbird” strings by “&brandShortName;”
- Removed backslashes ”\” in foreign languages where it’s not needed
We hope you will be able to review and clean more strings in your locale too.
We also have added two new strings and more are coming:
- “Flat” string for equalizer (The default preset)
- “Unnamed Pane” string for display panes (This will later allow you to localize Display pane titles)
During the L10n setup, a lot of Bash scripts were made to deal with different tasks, here are a few interesting ones:
- Two first scripts were made to reorder strings in foreign locales, because langpacks came with mixed strings and so it was hard to track differences. One for .properties and another one for .dtd. Those scripts ends up used only for testing because Babelzilla was also able to reorder strings on langpacks
- A script was made to fetch all langpacks from Songbird website and unzip everything
- This wasn’t enough, some langpacks were missings (because they are not shipped with Songbird they doesn’t have not enough strings translated), another script was made to fetch from translate website
- We even made a Python script to remove en-US strings from langpacks where strings were missing!
- For previous Nightingale releases we made a script to take Songbird langpacks and repack them to be compatible with Nightingale
- Now we have a full script to produce our own langpacks using files from Babelzilla
- Last but not least we made a script to track changes done on Babelzilla and commit those on GitHub when a change is done
Some of those scripts are yet to be released or improved, but everything is working at this time.
The great thing is that once we release the new version of Nightingale, a simple script execution will be able to push langpacks from the latest translation version online 🙂
This cooperation could have not been possible without the help of : Tymofij, Goofy and Pascalc from Mozilla/Babelzilla who helped us providing support so thanks a lot to them!
We also plan on hosting Nightingale add-ons and their locales online so you can translate them, along with more tools to help you localize efficiently 🙂