We encountered a number of challenges when we tried to set up our client's Drupal site to work in multiple languages. In particular, we had to make some changes to the category module, to make it work as desired with the internationalization (i18n) module. We also encountered some difficulties while setting the new site up in a multi site environment. Modifying our site's existing URLs to work with the pathfilter module was an additional challenge. Since the site needed to work in Arabic (a right-to-left language), we also needed to make the site bidirectional. The table of contents below lists a number of posts that deal with these and other issues encountered.
We were using Drupal 4.7.6 for this site. The theme we were using was a modification of box_grey. We were using the i18n module, and there were a number of issues in getting i18n to function properly with the category module. Our multi site set up included the existing site at "sites/example.com" and the new site at "sites/example.com/newsite". The original site was in English, and we needed it to function in at least Arabic, French, and English.
Below is a listing of blog entries that takes you through some of the steps we followed in setting up internationalization on our website.
Preparing Your Database
Do a One-Time Internal URL Replacement on English URL's
Change All Existing Nodes to the Default Language
Logging Into a Multisite, after Copying Over a Database from Another Multisite
Inserting Parents for Breadcrumbs
Changes to Form Fields
Translation of URL Aliases
Admin Title suppression
Limiting Categories by Language
Structuring Your Content
Creating hidden containers to deal with i18n menu issues
Using the category_bulkedit module to Place Content in the Appropriate Menu
Allowing the Client to Choose Where Breadcrumbs Fall
Process for Creating and Translating: Containers, Categories, and Stories
Adding Multilingual Blocks
Theme Changes
Bidirectionality
Showing the Categories for Each Story
Limiting menu depth
Troubleshooting
Taxonomy_wrapper and category_legacy
Search terms disappear
Tinymce
Using i18n_variables to Enable Translation of Module-Specific Variables
Some additional, external links for setting up internationalization include:

