So far we've got a nice start with getting our site translated, but everything is not quite smooth yet. We have translations for some of our content and menu items, but they are all appearing at the same time. There are multiple posts on the front page, and all the language menu items are showing regardless of which language we are viewing the site in. You will also see some stray text still in English. For example, under the "Create content" menu item, the content type descriptions are translated but the name of the content type is not. To take our multilingual site further and really make it shine, we are going to turn to a package of modules called Internationalization (i18n). There is a central Internationalization module, which comes packaged with a handful of other modules designed to work together to extend core's multilingual features.
One important thing that these modules do is help us get various strings of text into core's translation interface that are otherwise not available. Drupal's core interface tools can detect only strings that are hardcoded directly into the code (using Drupal's t() function); that is to say, that are code-generated. All of the user-generated strings are not accessible. It is important to realize that these strings that are added by the Internationalization modules will not be available to you through the Localization Client's "Translate Text" interface. To translate these, you must use the core interface, covered earlier in this chapter in the "Hands-On: Translating the Interface" section, found at AdministersSite buildings-Translate interface (admin/build/translate).
A second feature of many of these modules is adding a way to select a language for an item, such as for menus, blocks, or taxonomy terms, like the one shown in Figure 8-25. Being able to discretely identify the language being used for an item allows the Internationalization module to filter the display based on the languages we want to see, leading to less duplication and confusion.
Was this article helpful?