Whenever you spot an untranslated string on your Drupal site, you need to:
- Remember the string or at least some unique identifier from the text.
- In Drupal 6 go to Administration - Site building - Translate interface - Search tab; in Drupal 5 go to Administration - Site configuration - Localization - Manage strings tab.
- Enter what you remembered in step 1 and hit submit.
- Identify the string in the result list or if it is not found, go back to step 1 and find an actually unique part of the string to search for.
- Hit Edit on the item in the result list if found.
- A form with all languages are displayed, fill in the translations you want to provide.
- Go back and check whether the translation was used properly.
This is quite time consuming and error prone. Of course a lot of people suggested that we should have a solution which gets closer to the user, but it was not implemented before. So here I am to tell you that there is a solution for you which just works and eliminates nearly all of the steps above.
Let me introduce Localization client module. This is a Drupal 6 only module for now (but read on), because it utilizes new features in how Drupal 6 supports interface translation. What it does is actually very simple: collects all strings used on any given page for you and presents it in a nice widget which allows you to translate anything displayed on the page to the language the page should have been displayed with.
This is not a breaking new module, actually the backend was done as part of my Google Summer of Code 2007 involvement. Although, it did have a very clunky interface which was not too friendly on the user. That was when Development Seed sponsored Young Hahn to step in, and actually implement an enjoyable interface for this functionality. I am sure you will love how it behaves and makes your life easier.
Once you have l10n_client module enabled, you have access permission to use it and you are on a page which is not displayed with the built-in English language, a little bar is shown on the bottom of the page which pops up when clicked and displays the editing widget. The standard Drupal locale module database is used as a backend, so whatever you enter is saved right away to the database.
Due to how this ties into Drupal core, and how the core t() function needs to be modified (patch), this module is not possible to backport to Drupal 5 without core patching. Nonetheless people at Development Seed put resources into backporting it to Drupal 5, so your hope is not lost, if you are not into Drupal 6 functionality yet.