User:Toniher/Building langpacks

The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Some notes about building langpacks.

Create a working directory and choose base repository you are going to use. E. g.: beta

  • Clone base directory:

hg clone http://hg.mozilla.org/releases/mozilla-beta

  • Create l10n directory. Example with an.

hg clone http://hg.mozilla.org/users/toniher_softcatala.org/an l10n/an

Inside mozilla-beta directory, create a .mozconfig file with the following content:

ac_add_options --disable-compile-environment

mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/aragon

ac_add_options --with-l10n-base=/home/toniher/remote-work/mozilla-hg/mozilla-beta/l10n

ac_add_options --enable-application=browser

ac_add_options --enable-official-branding

Langpack will be created in a subdirectory inside aragon dir. l10n-base should be changed to fit the path in your system. If creating a langpack for other applications, you should change browser for mail or other.

  • Inside mozilla-beta, launch this command: make -f client.mk configure.
  • This will generate a Makefile in: aragon/browser/locales
  • Go to aragon/browser/locales, and execute: make langpack-an
  • A langpack will be generated in: aragon/dist/linux-x86_64/xpi (depending on your system)
  • XPI is a ZIP file. You can change some things inside:
    • In install.rdf, increase major version, let's say, from 12.0 to 12.*
    • In chrome.manifest file, remove manifest chrome/an.manifest line (not necessary)
    • Save them back and you're done.

Convert PO files to l10n dir

If you are using Pootle, you're likely to start with a bunch of PO files and not typical DTD and properties files.

  • Create en-US l10n dir: get_moz_enUS.py -s mozilla-beta -d l10n -p browser (this will create only browser files)
  • Create PO templates from l10n/en-US: moz2po -P -t l10n/en-US -i l10n/en-US -o po/pot
  • Copy POT files: cp -rf po/pot po/pot.pre
  • Rename POT files to PO: find po/pot -name "*.pot" -exec rename "s/\.pot/\.po/" {} \;
  • Your locale PO files (e.g. an) are saved in an.pre directory (under an, there are dirs such as browser, toolkit, etc. with PO files inside)
  • Merge any missing PO file (even not translated, better than nothing, it would crash otherwise): pomerge -i po/an.pre -t po/pot.pre -o po/an Generates po/an directory.
  • Adds any missing one: rsync -r --ignore-existing po/pot/* po/an
  • Generate l10n/an: po2moz -t l10n/en-US -i po/an -o l10n/an

Links