This group works on internationalization issues, like making it possible to translate menus, nodes and taxonomies in Drupal. This includes everything from process and workflows, to actual code issues or optimizations required. The Translations group is where to go if you are working on translating Drupal core or contrib modules.
How to translate web configurable strings. A proposal.
As a follow up on Gabor's post, I fully agree with, String translation: why using t() for user specified text is evil, I'd like to introduce some idea about how we could have web configurable translatable texts.
Instead of reworking all modules providing web configurable field names, descriptions, etc... We can handle that strings having an unique id for each string with minimum changes for the modules. How? Please, read on
Instead of storing in the main tables these translatable texts, we can have stored only an unique id, like 'profile_field_title_xxx' or 'flexinode_field_description_xyz'.
Read moreString translation: why using t() for user specified text is evil?
There is a strong stream of support for using the Drupal built in t() function to translate taxonomy terms, vocabulary names, menu items, profile field titles and options, poll titles and options and similar user specified content. This is a very bad practice, and should be changed. It should be pointed out that this system is reused, because it is ready and seems to be easy and fitting for the problem. Unfortunately it is neither easy, nor fitting. Let me explain why, and where should we look for a solution.
Read moreAddressing languages by URIs
If you look at the existing implementations I reviewed, you see different methods used to allow you address content on your site with a URI. The most requested feature (which was implemented in tr.module and is somewhat implemented in localizer) is to be able to use different hostnames for different languages. Let's see the good and bad of all the options used.
Read moreA controversial(?) point: store translations as nodes
A striking similarity of all examined content translation modules is that they store translated content as separate nodes. Some of the vocal members of the community expressed their concern about this solution, refering to 'content duplication' as a problem. I suggest that we should store translations as their own nodes, but it does not mean we would not be able to solve any of the problems raised. Let's see what are the disadvantages of storing translations as nodes, and what do we get as an advantage.
Read moreContent translation report: what are your options?
Let's see what options do you have, if you intend to set up a website with content translation using Drupal. Clearly the i18n module comes into mind, but if you start to look deeper, you will see more approaches tried in the past and in progress, some of which might have very good ideas to carry on. I have actively tested and code reviewed some modules to see what are the options, so we have something to build from, when thinking about i18n support for Drupal 5.0.
To sum it up, all of the modules tested have weaknesses, and there are some striking common approaches (some of which are clearly not desired by some community members). We should discuss some basic approaches, so we can build on them forward. Discussion points will follow in different nodes in the internationalization group.
In case you find any errors or omissions in the comparision table, feel free to point them out.
Read moreInternationalization Use-Cases, Actors and Feature Requests
I am a web architect and a system analyst. Now, I've translated Drupal To Hebrew and initiated the creation of a drupal community in Israel. Following Gábor Hojtsy's request, Here is a use-case analysis of my expernece from the Hebrew Translation of Drupal, and with it's implementation on tens of sites, with indexation for search engine relevancy.
Recently, I've tried the Internationalization module on two of my sites, but gave it up and decided to wait for a later time. Problem is that i18n is not yet compatible with many other modules. I am a heavy user of taxonomy / category modules. The i18n module is a big step forward, but more work is needed. I need language specific taxonomy with menu integration. On one site, I have tried to use the taxonomy module, but found that the vocabulary names are not translated (nither in the node entery screens nor in the menu). On the other site, I tried to use the new category module but discovered that the node input form (and the menu) displayed all categories without language distinction.
Read moreWhy i18n is so hard
Because the problem is not creating a node (menu, etc) in two languages, that's peanuts. You either add a lang to the primary key of the node or create a (nid, nid, lang) relationship table and you are basically done.
Basically. Because with more complex node types, some things are shared. Dates of events for example are the same with a different formatting. On the other hand, places are not necessarily -- even the country names can be different. So, we either extend the node API with provisions for this (shared/not shared among languages) or every single module needs to think on this. I can't say I love either.
Read moreLooking for internationalization use cases
You have set up a website where multilanguage content submission and display was a requirement? What was the workflow specified by the customer? How were relations between different languages defined? Did you have all content translated? Was translation into specific languages a requirement for publication? Did you translate all navigation and even site level images? What was special about that project?
An internationalization use case consists of the requirements you faced, the user workflow you needed to support, and the interface you provided to the user. We are not interested in dirty implementation details (modules, PHP code, CSS) at this stage, only higher level information about how you built up multilingual content, interface, navigation and site design. You don't even need to talk about Drupal projects. If you have any other use cases to share, which you experienced out of Drupal, we are interested. The goal of the above questions are only to start you up, don't let them stop you from sharing your story in greater detail.
You can either post a new story to this group or comment on this story with your use case. Thanks for sharing!
Read moreLooking for greener grass on the other side of the fence
As part of our voyage to build up a solid base for Drupal core i18n, it is important to see, how other systems approach this problem. Maybe you have used some other system which has incredible i18n capabilities, or you have heard of one? Tell us the story, or just post a link to this system (as a comment), which we should learn from. I plan on setting up some of those you suggest (those that seem like the most valuable in this field), and write up my experiences, as well as the workflows, capabilities, features we can learn from.
Read moreWhat we mean by internationalization?
The goal of this group is something that we should define up front. When I write this text, Drupal 4.7.x is stable, and we are going to release Drupal 5.0 in a few weeks. Still Drupal 5.0 is only going to have interface translation services, supporting the display of the built in interface strings in different languages. There is an i18n module addon however, which is badly needed.
The goals of a truly international site are actually much wider then just interface translation. One needs to translate user defined items like menus, the site slogan, titles of custom blocks, even the site logo image. Whenever you start adding content to the site, you might want to add it in different languages. Sometimes you might need attachments from one post in the translated one, sometimes not. You might even need calendars to adapt to monday or sunday starting a week with different languages. All these issues need to be solved, and new issues will come up along the way. The goal of this group is to come up with questions, and ensure that we find adequate answers for them.
Read moreUseful resources
I'll just use this page as a resource for translation/internationalization related information.
Read moreAction items
We had a discussion as part of GovCamp talking about multi-lingual issues and needs for Drupal.
- Dries: review core patches
- Dev Seed: set up demo, coders corner
- Dev Seed: tell stories about situations we've been in -- site recipes, scenarios, use cases
- Dev Seed: can make bandwidth to lead i18n
- Boris: Google hand waving
- Bart: write up a spec of requirements...in English and Dutch





