Contents  History  Source  Email Feedback

Gnome

Gnome is a Linux graphical desktop environment.  The project has quite an
established localisation initiative.

Reading

Please familiarise yourself with these before proceeding:
* Gnome localisation style guide (These are actually Sun Solaris style guides)
	http://developer.gnome.org/projects/gtp/style-guides/

* Localisation Guide
	http://developer.gnome.org/projects/gtp/l10n-guide/

* Localisation section in the developers website
	http://developer.gnome.org/arch/i18n/l10n.html

* Gnome Translation Project
	http://developer.gnome.org/projects/gtp/

Useful URLs

* Status Page
	http://l10n-status.gnome.org/

* Resources Page
	http://developer.gnome.org/projects/gtp/resources.html

Translating

This is a roughly sequential outline of the steps you need to take to translate
Gnome into your language.

Joining the mailing list

Subscribe to the gnome-i18n mailing list:
http://mail.gnome.org/mailman/listinfo/gnome-i18n/

Gnome Glossary

Start with this to create consistency across future Gnome localisations.  

http://developer.gnome.org/projects/gtp/glossary/

Latest versions of the CSV glossary:
	http://cvs.gnome.org/viewcvs/gnome-i18n/glossary/GnomeGlossary.csv?view=log

Use the csv-to-pot.sh script to convert the .csv to a pot file.  The layout is
slightly different from the layout created by po2csv so you cannot convert the
created POT file to a Translate Toolkit style CSV file.

If you need to translate using CSV rather edit the GnomeGlossary.csv and
manipulate it into a PO file later.

What files first

Advice from Christian Rose on the Gnome team.

gtk+                    1126    (toolkit, very largish, but many messages are
developer-oriented and can safely be ignored to begin with, but some few
messages here are very visible to the end user)
libgnomeui              305     (many user-visible menus and stuff)
gnome-mime-data         350     (user-visible file type desc. etc)
libbonoboui             96
gnome-vfs               80      (file size formatting etc)
yelp                    71      (help browser)
gedit                   640     (text editor)
nautilus                1449    (file manager, also very largish, but not all
messages here are immediately visible to the end user, even though many are)     
gnome-desktop           88
gnome-panel             587
gnome-session           103
gnome-control-center    649
gdm2                    629     (login manager)
eog                     170     (image viewer)

... and then the rest in desktop + developer-libs.

TODO: use podebug to get a better targeting on these files.

Getting a CVS account

You will need a CVS account to commit translations:
http://developer.gnome.org/doc/policies/accounts/requesting.html

Most probably you will only get one if you have supplied translations already
or are a new team leader.

You will need to read this to ensure that you commit correctly to CVS:
http://developer.gnome.org/doc/tutorials/gnome-i18n/translator.html

The steps are well laid out and very clear, you can't go wrong if you follow it
carefully. So old time users of CVS you must read it.

Your translated PO files are placed within the package in GNU style, ie in the
po/ directory unlike the KDE system of all languages in one module.  This means
that you will have to checkout and add files to the various modules that you
use.  Eg to add translations of gnome-mime-data you will need to checkout the
module by that name.

Targeting a release

Gnome follows a regular 6 monthly development cycle with even numbered stable
releases and odd number development releases.

You can see the release schedule here:
	http://www.gnome.org/start/unstable/

If your team is moving quickly it might be good to target a stable minor
release.  This will also be the platform that most users will be on.  It also
presents the chance to have multiple releases as you move through each minor
release.

Translation Status Page

Your languages translation status page at http://l10n-status.gnome.org/ will be
updated as soon as your first file is committed to CVS.

Setting up your Bugzilla Component

You need a Bugzilla component so that users of your language can report errors.
Instructions for setting one up are here:
http://developer.gnome.org/projects/bugsquad/maintainers.html

This information courtesy of Christian Rose.  You should return these details
to him at: menthos at gnome oeg.

You need to supply:
* language code
* language name (in English)
* language name (spelled in the language itself. We actually don't
  use this info in Bugzilla but on the http://www.gnome.org/i18n/
  page. Please replace non-ASCII characters with proper HTML escape
  sequences. See the HTML source code of that page for examples)
* default owner (must be a valid bugzilla account)
    The default owner is the person who should be assigned the bugs by
    default. If he or she doesn't have a bugzilla account, he or she can
    create one at http://bugzilla.gnome.org/createaccount.cgi.
* default qa contact (must be a valid bugzilla account)
    The default QA contact is usually the person who should make sure
    the bug was fixed properly by the assignee. If the qa contact person
    doesn't yet have a bugzilla account, he or she can create one at
    http://bugzilla.gnome.org/createaccount.cgi. This field is optional,
    you don't need to decide on a default qa contact if you don't want
    to.
* component description
    Usually of the form "Here you can place your bugs about
    $LANGUAGENAME [$LANGUAGECODE] translations". Example: "Here you can
    place your bugs about Swedish [sv] translations".
    If you have the possibility, try also to translate this into
    ASCII-only English, and we'll use the translation as well.

You have the option of assigning this the bug reports to a mailing list:

If you want, there's also the possibility to use a mailing list instead
of an individual for the default owner and/or default qa contact fields.
It's a bit more complicated; among other things you need access to the
mailing list configuration. Here is what you should do if you want a
mailing list in one or both of the fields above:

1) Create a bugzilla account for your mailing list, i.e. a Bugzilla
account with your list's address as account name.
2) Subscribe the bugzilla deamon address
(bugzilla-daemon@widget.gnome.org) to your mailing list, but also
disable *ALL* mail from the mailing list to this address (If it's a
Mailman mailing list you can change bugzilla-daemon@widget.gnome.org's
mailing list options to NOMAIL).

Application Specific

There are some applications that need specific treatment.  These are those:

* gdm2
The login manager needs patches to gui/gdmlanguages.c and config/locale.alias to 
add your languages. Email your patch to "George" 

Suggested bug report and related email for adding English (Canadian), use as a reference:
	http://mail.gnome.org/archives/gnome-i18n/2004-February/msg00256.html
	http://bugzilla.gnome.org/show_bug.cgi?id=135053
Also Arabic issue highlights how it all fits together:
	http://mail.gnome.org/archives/gnome-i18n/2004-March/msg00177.html
Actual CVS diffs to add Afrikaans, Northern Sotho and South African English
	http://cvs.gnome.org/viewcvs/gdm2/config/locale.alias?r1=1.38&r2=1.39
	http://cvs.gnome.org/viewcvs/gdm2/gui/gdmlanguages.c?r1=1.41&r2=1.42