Tech Team meeting notes

The Tech Team meeting took place in Cairo, Egypt in August 2009 and was hosted by OpenCraft in their premises.

Attendants:


  1. Manal Hassan (Localise Software coordinator)
  2. Khaled Hosny
  3. Jojoo Imbeah
  4. Walter Leibbrandt
  5. Friedel Wolff

Agenda:


Day 1: Mon 10


Day 2: Tue 11


Day 3: Wed 12


Day 4: Thu 13


Below is a list of links to the notes of each topic:

Actions needed

  • Check with Louise and Alberto on the localisability of GlossMaster, suggest using PO if they havent dont it yet. (Friedel/Manal)
  • Extract the list of languages and countries from AfriGen and send to Walter (Jojoo => done)
  • Convert the list of languages and countries to PO (Walter)
  • Contact Christian Perrier from the ISO project for submitting our reviewed list of languages and countries (Friedel)
  • Discuss with Martin about integrating the terminology lists with Pootle (Jojoo)
    • Discuss with Martin on the best approach if people want to modify terms on the terminology list
  • Document how to use the terminology lists with Virtaal (Friedel)
  • Change the CSV to PO converter to understand the definition column from GlossMaster and added as a comment (Walter)
  • Check with Mozilla on how to add to the list of content languages (Friedel => done)
    • Crucial to be able to have an official release of Firefox in that language. The language name need to be translated in Firefox's official language, and therefore it needs to be part of its strings before code freeze
    • Friedel got an answer from Mozilla that any language with an ISO code can be added automatically
  • Check/Plan how "Goals" will be implemented in the next version of Pootle (Friedel)
  • Generate terminology file before localisation start
    • One file for Pootle and Virtaal
    • One file for Firefox
  • Different starting points for languages that are part of the terminology project and those who are not
    • Convert from GlossMaster with new script (extend csv2po), or
    • Create with poterminology
  • Untranslated terms to appear as part of the terminology list in Pootle and Virtaal (suggestion)

Back ups

  • Script to backup PO files on Pootle server (needs modification to use rsync??)
    • This makes the PO files available for download (location needs to be in the documentation)
  • Backup for Pootle database (to be determined)
  • No need to keep backups of Mozilla l10n files, they can be (re)generated at any time.
  • Scripts will be backed up on Translate.org.za servers and SourceForge Subversion, as applicable.

Documentation of the process

TODO: Complete in Thursday morning session

  • If you unsure of a term, do not add it
  • Verb-noun ambiguities?
  • How to add terms
  • QA guidelines
  • Document Mozilla process
    • Should be clear that the language teams are expected to learn how to commit to Hg

Task distribution


  • General guidelines: Extract tips and links from meeting notes (Jojoo)
  • Fennec (Khaled)
  • Pootle (Friedel)
  • Virtaal (Friedel)
  • Firefox (Khaled, Jojoo, Friedel)
  • Walter will work on finalising the scripts needed in our infrastructure

Infrastructure setup

Tasks that need to be done


We agreed that all scripts below will run on the Mozilla localisation server
  • CLDR2po script (Khaled & Jojoo done)
  • Terminology collection script (Friedel & Khaled done)
    • Fix for poterminology to improve handling of "you" and "your" (Friedel 95% - bug report needing review)
  • CSV2po for GlossMaster (Khaled & Jojoo done)
  • moz2po script (Walter 80%)
    • check if script generates correct English files for Fennec or not (Walter)
  • po2moz script (Walter 80%)
  • pomigrate2 script (Walter 80%)
  • Downloads directory (Friedel 100%)
  • CGI script (Walter)

Integrating terminology

Terminology


  • One file for Pootle and Virtaal
  • One file for Firefox
  • Document tips
  • Monitor terminology projects for each of the language teams
  • Discuss with Martin on the best approach if people want to modify terms on the terminology list
  • DIfferent starting points for languages that are part of the terminology project and those who are not
    • Convert from GlossMaster with new script (extend csv2po), or
    • Create with poterminology
  • Untranslated terms to appear as part of the terminology list in Pootle and Virtaal (suggestion)

Localisation Processes

Localisation Methods


  • Online:
    • Localisers just need an account on the Pootle server
    • We can integrate the terminology lists as a project on Pootle server

OR

  • Offline:
    • Download PO file from the Pootle server
    • Translate with Virtaal/POEdit
    • Upload when they are done (needs an account on the Pootle server)
    • How can we integrate the terminology lists??

Glossmaster


Suggestions? (need to check with IT+46)


  • Single file per language
  • On Pootle server
  • Encourage to use PO

Pootle


  • 1 file ~ 1500 words (==> 12 to 15 hours)
  • Join translate-pootle mailing list
  • Online translation of Pootle allows for testing while translating

Virtaal


  • 3 files (virtaal.po, 1 for GTK (<200 words), 1 for gtkspell (12 words)) ~ 1500 words (==> 12 to 15 hours)
  • Locales are necessary to work (check how to add new locales if needed with Martin)
  • Encourage teams to submit their GTK translation through to GNOME project
  • Join the mailing list

Firefox


  • About 23000 words, some are very rare error messages and are very hard to translate, usually left untranslated
  • Localised copy is a different version
  • Language pack: similar to a Firefox extension that has enables a different languages to the current version used.

Jargon


  • Official release
    • Available on main web-site
    • Localised installer
    • Localised search engines, bookmarks
    • A release for each official language
    • Translated web-pages
    • Translated snippets
  • Language pack release
    • Is a step in the road for official release
    • On AMO (addons.mozilla.org) site
    • Install "Locale switcher" extension
    • Search engine, bookmarks, etc. in original language
    • Can be distributed on ANLoc website for testing
  • Productisation
    • Non-translation localisation (search engines, bookmarks webmail, etc. customization)

Translation timeline

|-
Stages
Language Team
Mozilla
Start Point

  • Register language team on Mozilla's wiki
  • Sign Mozilla contributors' agreement (required for VCS access)
  • Create Mozilla bugzilla account

Translate ~ 5k words?

  • Build 1st language pack
  • Put on ANLoc for testing

Translate ~ 10k words?

  • Build 2nd language pack
  • Put on Addons website
Mozilla approves language pack
Language pack on addons.mozilla.org

  • Get pack tested and reviewed
  • Report bug to request Mercurial access, attach translation files
First commit by Mozilla
Have Mercurial access
Report bug to request language to be added to product (FF)
Mozilla starts making the daily builds
Daily Builds

  • Check if it builds correctly on the dashboard
  • Start testing the installer, bookmarks, etc.

Translate ~ 100% done
Start work on productisation, Snippets, Mozilla.com web pages
Mozilla builds Beta (Mozilla is in control from this point onward)
End

  • Finalise productisation, Snippets, Mozilla.com web pages
  • Fixes
  • Perform Litmus tests
Official release

Fennec


  • 244 strings/1076 words
  • Similar process to Firefox
  • Mozilla is doing localised builds

Marketing & distribution

Call for Application


  • ANLoc (mailing list, website) sent and published
    • Terminology teams
    • Locales teams
  • LUGs (see this list to get started) sent
  • APC Africa (mailing list) sent
    • Was invited to blog about it on their blog published
  • AfricaSource 2 (mailing list) sent
  • Friedel to invite his contacts who were trained (by him) on localisation sent
  • Seth Bindernagel from Mozilla sent
  • FOSSFA sent
  • GHOSS sent
  • LAUG sent
  • People at the Africanisation (a12n) meeting in South Africa asked Heather
    • Ask Dwayne for contact information
    • Congo
    • Senegal (have worked on previous version of Firefox) sent
    • Moroco (Tifinagh)
  • Ubuntu ZA LoCo (local community) sent
  • Universities
  • African Wikipedia teams
  • Announce on Afrigator
  • African Languages group on Facebook
  • ACALAN sent
  • Facebook, twitter, etc. sent and published

Marketing and Distribution for Localised Software


  • Mozilla university reps
  • Seth Bindernagel from Mozilla
  • Localise "Get Firefox" buttons to mention its availability in African languages
  • Announce the availability of localised projects (Fennec, Firefox, Glossmaster, Pootle, Virtaal) versions on local/appropriate news sites
  • Prepare some CDs with a set of localised software for distribution at any event
    • To be ready for the next ANLoc conference
    • Should also include outcomes from the other sub-projects, like fonts and keyboard layouts
  • Ideas from the language teams
  • Promote the language packs for Mozilla products
    • Needed for feedback and testing
  • Announce to the channels mentioned in "Call for Applications" above
  • Use Twitter to announce new languages and new versions

Partial translations

|-
Phase
No. of Words
Translation covers
user1 4000 Anything that appears when first starting, using menus or browsing the web in normal use.
user2 3500 Extensions, Download manager, Bookmarks, Places, File browsing/downloading
user3 2500 Still focused on use: print dialogue, other menus accessible
user4 800 Page info, page source, page properties, report broken websites, dom inspector
config1 500 First layer of Preference menu is translated including dropdowns
config2 1900 Cookies, charset names, Advanced settings
lang 600 List of languages
install 1350 Anything related to installation
other 10500 Remaining strings related to security, etc.

More details on the phases and what each phase include.

Our first milestone is by the end of September, and we are targeting to finish phase user 1 and a good chunk of phase user 2 by then, to be able to announce the various African language packs at Dakar (4 - 8 October).

Required Infrastructure

  • Interested languages must have a locale
  • How to handle verb-noun ambiguities
  • This is mostly requirements for Firefox localisation
  • Fennec would be very similar and doesn't need specific Infrastructure

Provide the Mozilla l10n files


  • L10n files: .dtd and .properties files used by Mozilla
  • Needs to be attached when you report a bug to add a language
  • Use po2moz/other script to create L10n files out of the PO files that has the updated translations, for language teams (daily)
  • pomigrate 2 script to update the PO files to correspond to the new English files
    • Some translated strings might be marked as fuzzy if the source has changed
  • Copy to download area (document URL)
    • Host at download.locamotion.org, to be done by Friedel and Walter
    • A tarball of L10n files per language as the output to be downloaded
  • Split up build_ff_langs.sh into l10n->PO and PO->l10n files
  • CGI application to request generating the Mozilla l10n files
    • Errors should be sent by the language teams to the Localise Software mailing list

Adding/Starting a new language


  • moz2po script to generate pot files from L10n files, from which po files for each language are created
  • Work stable releases until no new languages are being accepted
  • Work on next (new) release after that
    • Update PO files in Pootle (via POT files) on each slush/firm string freeze

Languages translating from another source language


  • Translating from French/Arabic/Portuguese
  • Online: a script to generate PO files in French for example, to be used in Pootle as an alternative language, to help teams understand the source strings.
  • Offline: need a script to add the translated strings of the alternative language as comments in the English PO files

Language Packs


  • Automatically generated with POT files
  • Link to built language packs from ANLoc site
    • Daily language packs have the same filename
    • Link to latest language pack
    • Link to directory containing previous language packs
  • Language teams are responsible for uploading language packs to AMO

Servers


  • Pootle server: will be used for
    • Online translation through Pootle
    • Hosting translated strings in PO files (from Pootle, or by uploading offline translations)
    • Generating tarballs of PO files for each language
    • Available downloads of PO files tarball
  • L10n Mozilla sever: will be used for
    • Daily back ups of language PO files tarball
    • Running the scripts to generate Mozilla L10n files
    • Available downloads of L10n files tarball, that will be needed for attachement and for building the language packs

Tech Team tasks

We split the tasks by:

General tasks


Tasks to be done by all members of the Tech Team.
  1. Replying on the mailing list
  2. Managing languages on Pootle
  3. Managing projects on Pootle
  4. Updating/maintaining documentation
  5. Server maintenance (mostly done by Translate.org.za)

Mozilla specific tasks


Each of these tasks will be done for each language, each Tech Team member will be responsible for performing these tasks for 3 languages.
  1. Committing to Mercurial
  2. Building files and packs
  3. Communicating with Mozilla
  4. Monitoring progress of teams
  5. Basic testing (for language packs)

Testing / Review / Validation

  • pofilter quality checks
  • Click to get all failures in Pootle
  • 3 or 4 crucial tests (XML tags, etc.), otherwise Firefox might not build if such errors exist
  • Cosmetic tests (punctuation, double spaces, etc.)
  • Encourage the teams to perform all tests
  • Some inaccurate guesses that we should warn them about
  • The above is called "Technical Review", which is automated

Documentation


The following need to go into our documentation guidelines:
  • For testing & review, teams should install the software and go through all menus, dialogues, installer, etc.
  • For Firefox, explain how to use the Locale Switcher extension
  • Reach out to the community for wider testing and feedback
  • How to search for text/terms to review/replace using Pootle
  • Language teams will need to suggest fonts and help with keyboard layouts, for other users to be able to test. We need to prepare instrucions for that.
  • Document common problems (for Firefox)
  • Document examples of what not to translate
  • Link to the Translate.org.za's localisation guide
  • Document how to change your OS locale (required for Virtaal)
  • We will need to explicitly discuss/explain variables and plural forms with language teams.

Timeline and Deliverables

New Languages


These are the language teams who will join the Localise Software sub-project end of August 2009 and start localisation beginning of September

September


  • Finish translating phase user1 before mid (15) September
  • By mid September start review of phase user1 and translation of phase user2
  • End of September: build language packs

October


  • Translate and review phases: user3, user4, config1, config2
  • End of October: Communicate with Mozilla on recognizing the new languages.

November


  • Translation and review for Pootle
  • Translation and review for Virtaal
  • Translation and review for GlossMaster

Unfinished Languages


These languages has already made some progress on Firefox localisation before Septmber 2009
  • Make sure they have finished phase user1 and user2
  • Pootle
  • Virtaal
  • Glossmaster
  • Firefox phases user3, user4, config1 and config2

Late Languages


These languages join us late Septmber 2009
  • Pootle
  • Virtaal
  • Glossmaster
  • Firefox 1: phases user1 and user2
  • Firefox 2: phases user3, user4, config1 and config2

All Languages


By the end of the year all languages should be in-sync

January to March


  • Translation and review for the remaining Firefox files
  • Communicating with Mozilla until becoming an official language
  • Finalise Firefox and Fennec by the end of March 2010

March 2010


Is the end of ANLoc's second year and the start of its third year, where we will add 10 more languages and update the existing one.