After initially writing off localization capabilities for v0.12, preferring to wait until v0.13 for that, I later changed my mind and spent some time figuring out how to do it, implementing it, and writing up the documentation for others.

Translating NautilusSvn is a fairly simple process. We provide a template file that has the English text from our program and a space for the translated text that you will write. The template file is located at branches/v0.12/nautilussvn/po/NautilusSvn.pot in our svn repository. In order to start your own translation, you will first need to install the gettext and intltool utilities, which you can generally get from your linux distribution. You may also want to install poedit, which is a popular and very useful GUI translation tool.

Once you’ve got your environment set up correctly, you can generate the actual translation file you’ll be using. First, figure out which language and locale you’ll be translating NautilusSvn to. For example, en_US is English/United States (the default), and en_CA is English/Canada. For a list of locale codes, go here. And for a list of country codes, go here.

Once you’ve figured out your language and locale, you can begin. For the purposes of this tutorial, I will set up a translation for en_CA (Canadian English).

When your translation is all finished, open a new issue in our Issue Tracker and attach the NautilusSvn.mo and .po files that you created. We will immediately update our development trunk, and it will be included in the next official release.

Launchpad Translations

We’re currently trying to get our project set up on Launchpad in order to coordinate translations from there, but it isn’t quite set up yet. We will make an announcement on this development blog and also our mailing list when it is completely set up.

String Freeze

NautilusSvn is currently in the “ALPHA” stage of release and we have not yet reached “string freeze” (the point at which we will not change the English strings in the program). Strings won’t be frozen until we reach the “BETA” release, which is scheduled to happen next week (but it may not if there is a delay). You can start translating now if you’d like, but please be aware of any changes that happen to the NautilusSvn.pot template file until the beta.

It has been a long few months of development, but we’re finally ready to announce that the NautilusSvn v0.12 branch is in the ALPHA stage and ready for testing! This new major version of NautilusSvn is a complete rewrite from top-to-bottom, and features an automatic status monitor (works better than in v0.11), all-new windows/dialogs using PyGTK instead of wxPython, an all new and improved context menu system, and full localization support!

Here’s a proposed release schedule to give you an idea of our release timeline:

Note: there are no installation packages available for the alpha release

KNOWN ISSUES
– The main context menu will appear with items in incorrect places. This is a bug in nautilus (we think) and so far we haven’t found a workaround. If you get this, most of the time you can click away (in the nautilus background) and then click back on the original item, and this will give you a correct menu. If you want to try to find a workaround for us, we’ve created a simple test extension at http://nautilussvn.googlecode.com/files/contextmenubugtest.py. Put this in your ~/.nautilus/python-extensions folder and type ‘nautilus -q && nautilus –no-desktop’ to load it up. If you can find a workaround, you will be a hero.

– The new status monitor is slower than it was in v0.11 because it is fully automated and actually works (most of the time), whereas v0.11 required manual refreshes and did not apply status updates to parent folders.

HOW TO HELP

– We’ve put together installation instructions for Ubuntu, Fedora, and OpenSUSE. If you install NautilusSvn on a different distro, we’d love it if you could send in distro-specific instructions!

– v0.12 is now fully localizable using .po/.pot files. If you are interesting in helping us with translations, you can get started immediately by going here (http://code.google.com/p/nautilussvn/source/browse/#svn/branches/v0.12/nautilussvn/po) and reading the README file there for instructions. We will have our translations hosted on launchpad shortly, but you can work from the source in the meantime. Also, keep in mind that string-freeze does not start until the BETA release.

This is my first post highlighting NautilusSvn’s many UI windows and dialogs. First in line is the frequently used Commit window.

The Commit window provides an interface for committing or checking in modifications made to your working copy. The first area of the window, “Commit to:”, shows you the repository you are working with. The “Add Message” area allows you to add a log entry to your commit. The Changed Files table shows all added, deleted, modified, missing, replaced, obstructed, or unversioned files. Best of all, there is now a context menu that gives you the opportunity to View Diff, Open, Browse to, Delete, Add. Revert, or Ignore the file in question.

When you click the “Previous Messages” button, a dialog pops up with the past 30 messages you’ve written (changeable in settings).

When you click “OK”, the commit starts and the notification window pops up, giving you feedback and what is going on…