User:Toniher/Building langpacks
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 
Makefilein: 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/anGenerates 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