Internationalization

We encourage users to post events happening in the community to the community events group on https://www.drupal.org.

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.

Gábor Hojtsy's picture

Performance review of object translation required

We have posted a patch to support object translation of certain Drupal objects (content types, user profile fields and categories, site settings, and so on) to multiple human languages. While we have clear concepts and very good ideas for the user interface (which we though before that would not be easy), performance-wise we are at crossroads. We would welcome beginner as well as expert reviewers to come and share their performance ideas about Drupal object translation, so Drupal 6 can include a mature translation infrastructure, advancing ahead of the competition. ;) We need your input!

"Introduce dynamic object translation API (optimize this!)" http://drupal.org/node/141461

Read more
Gábor Hojtsy's picture

Redoing the locale module translation web interface

Locale module interfaceNow as we are moving into supporting translation of site settings, content types and so on on the locale module interface, it gets extremely important to streamline the translation web interface provided. As far as I see, we have the following problems with the current interface:

  • you are presented with a big search form, which you need to first understand to get something to translate
  • search results are presented with "edit" links, so you need to click over to the editing screen for all values you need to translate
  • on the "edit" page, you get input fields for all languages, but you are possibly interested in translating more strings to one language, not one string to more languages

As far as I see, the use case of translating as many string at once as possible to one language is much more common then translating strings one by one to multiple languages. Also with site settings, content types and so on translated on the locale interface, you are not actually interested in searching in them, but going through all of them, and translating as required.

So I would suggest we move to a direction similar to how watchog (now called dblog) works:

  • you get an overview screen of values to translate with a pager
  • this screen can be asked for in a particular language, and would show form fields and submit buttons on the bottom ("save translations", "save translations and continue to next page", "continue to next page"), the first going back to the localization overview, the second advancing to the next page with saving, the third only advancing to the next page
  • simple filters would be shown on the top, refactored from the search form

How does this sound for you? What interface would you expect from Drupal 6 to translate several parts of the system? While I still would not tell anyone to translate the built-in Drupal interface with the web interface, admin defined strings have no other practical way (most admins will not have any interest in working with a gettext toolchain).

Read more
Gábor Hojtsy's picture

JavaScript localization for Drupal 6.x

Because there does not seem to be active development around the JavaScript localization issue, I figured I'll try to get some attention from the Javascript group. The issue at hand deals with enabling string localization in JavaScript files. Because Drupal 6 will be a big push in the multilingual direction, localizing JavaScript files should also be actively on the table. If you have time, please look into this patch or at least drop in your two cents. Thanks!

Read more
Jose Reyero's picture

Beyond translatable menu items and taxonomy terms

Now we have language for nodes -Just committed to Drupal core!!! Also, on a different thread we are exploring possibilities for a Drupal/CiviCRM multilingual soluction. So lots of things are going on, pieces are fitting together, but also it's maybe a good time to think a bit more about the 'overall strategy' of this Drupal multilingual enhancement!

Read more
greggles's picture

pathauto i18n integration

There is some concern that pathauto's i18n integration isn't functioning properly. I don't understand it or have the interest to work on it. So, I'm writing here to say:

1) If it's agreed that nobody has it working, I'll remove it so we don't confuse people about totally buggy code. Please respond either here or in that issue if you have a feeling about that.

Read more
Gábor Hojtsy's picture

A hopefully sane solution to dynamic string translation

I was thinking through dynamic variable translation with Konstantin Kaefer yesterday, and some good ideas come to me after I gone off IRC. This could solve variables, content types, menus, taxonomies, blocks, user profiles, as long as we add dynamic string based translation to these (which will be possible to turn off by type :).

  1. We cannot reuse the locale functionality, because it is designed for "static English string to static foreign language string translation" from the ground up: http://groups.drupal.org/node/1827

  2. We cannot use a simple t() like function either, as we need special widgets with validation and submit functions for some values (like the site logo or default user picture).

  3. We cannot reuse the admin interfaces (menu, taxonomy, content type setup, settings pages) as localizer does, because many sites will not give administrator, menu editor, taxonomy editor, content type admin or site setting admin permissions to translators. BUT we need to reuse some forms from there.

  4. Dries would like to see a simple reusable API anyway :)

So, we need to somehow get together what is good in t() and what is missing from t(), as well as provide a specialized UI for translation of these strings, a one-stop-shop for dynamic interface translation for the user.

Read more
Jose Reyero's picture

Smoothing the Path to Multilingual Drupal

Things are looking good for a strong multilingual Drupal 6! A lot of good work has already been knocked out, and now we need people to start testing the current codebase (svn repository) and to provide feedback on how it works. Please post comments here or on the issue tracker .

Read more
ericgundersen@drupal.org's picture

i18n Handbook improvements

Only local images are allowed.Jose Reyero just completed updating the handbook “Internationalization: Building multilingual sites” on Drupal.org to reflect some of the new developments with i18n and Drupal 5.x. This new documentation makes it easier to start using i18n and to understand all the new features and fixes that both Jose and Gabor have been helping move forward. It even includes screenshots to show off some of the latest features added to the module.

It is a great place to start if you are looking to see if i18n will fit your needs and should save you a lot of time during basic set up. I know a lot of people new to i18n are coming to this group to see the latest on the module and would like to know more about what is happening right now with drupal 5.x, so I will try to post more often here with user end perspectives.

Read more
Gábor Hojtsy's picture

New module: XLIFF Tools

Translation unit editing in Heartsome XLIFF Translation Editor By looking at what people described as their use case, there is a considerable amount of interest in a CAT (Computer Aided Translation) support tool in Drupal. While Drupal 6 could (and will by default or with a contrib module) provide a translation interface for nodes, content created in professional systems is often not translated inhouse, translation work is outsourced to professional translators. These professionals employ tools to remember previous translations, build on existing terminology and reuse what is already done. The industry standard for data interchange with these tools is the XLIFF format, for which fortunately Bryan Schnabel developed (and released under GNU GPL) some XSL transformations I was able to reuse.

All this resulted in the first implementation of XLIFF Tools, a module to export and import XLIFF data of Drupal nodes. I have tested some basic content nodes with Heartsome's XLIFF Translation Editor, and everything seems to be working smoothly, but there are probably hard edges you will be able to find if you try out this new tool. A development snapshot for Drupal 5.x will be available as soon as the build system generates the tarball.

Read more
Gábor Hojtsy's picture

Working on content (node) languages, activity in issue queue

We are currently working on adding language support to nodes in a simple and clean way. Meanwhile separate implementation details and issues are now created and discussed in the issue queue of our project. Feel free to comment on our implementation and/or submit patches as we move along.

Read more
Gábor Hojtsy's picture

First language subsystem patch submitted against Drupal core (updated)

The first (quite big) patch coming out of our efforts is now submitted for consideration. Dries Buytaert already reviewed a big part of what I submitted today, so I hope the submission will result in a fast and satisfactory result (although the upcoming conference in the coming days might delay the submission of the patch). If you are interested in the language functionality developed here, please look at the patch, try it out, provide your comments!

Update: And the patch got committed after thorough reviews from multiple developers! Yay! On for more work!

Read more
Gábor Hojtsy's picture

Budapest internationalization meeting findings

Drupal 5.x and before has a "locale" concept, which lets a user see the interface of the website in a choosen language. The list of available languages for locale is defined by the administrator, and a user can choose a preferred language on the user profile editing page. It is only possible to translate the built in interface text though, and none of the admin specified text (ie. site name, site slogan, menus, categories, blocks, etc) is translateable. It is also not possible to translate content sent in by different users of the website.

Some solutions evolved through the years to overcome this limitation, making it possible to translate user defined interface and content elements. Unfortunately these modules only build on what is available in Drupal and are not as closely tied as some performance requirements or design considerations would require. Since the Drupal core code is not ready to handle this situation, most contrib modules don't care about offering this feature, and internationalization (i18n) modules need to work around them too.

In getting ready to add support into Drupal 6 for better internationalization, we examined the code base of the available modules (although these are actively changing), identified the problems, looked at the possible outcome of some development around custom node types, menus, etc. The summary bellow is a list of items we worked on last week in Budapest and reasoning behind some implementation details.

Read more
Gábor Hojtsy's picture

Infrastructure for the i18n group

Seems like we have not communicated the infrastructure we use to create and test the actual code changes properly, as we get questions about the process frequently.

  • Development Seed sponsors a subversion repository, where some people already have accounts to commit changes. The server is open for anonymous checkouts, so anyone can try out our changes as we go along. The web interface is at http://svn3.cvsdude.com/vvc/devseed/i18n/?root=sandbox There we have a temporary fork of Drupal, which we periodically sync with Drupal 6-dev. We already use some of the fruits of the 6-dev branch, like the url() and l() related changes, and we build on the new menu code. Since what is in the repository is a full Drupal, you can try it out, set up, test and benchmark. Use this subversion root: http://svn3.cvsdude.com/devseed/sandbox/i18n/
  • Every commit to this subversion space ends up on the internationalization at devseeddev.com mailing list, which has a public archive and is open for participation. You can subscribe or view the archives on the web interface. This list is intended to be for code level discussions involving the i18n for core project (and is definitely not a support or discussion channel for any existing contrib modules).
  • As we go along, we document our changes and the reasons behind them. Expect some documents to come the next days about the development sprint we recently had. Our final goal is to get Drupal 6-dev ready to accommodate i18n related needs, and for this to work, we need to create smaller patches out of the repository we work on now, once some implementation seems to be feasible to get into Drupal core. Until changes get into the official Drupal 6-dev, we are more than open for your suggestions, benchmark showing that there are better ways to do the implementation, etc. (This is also possible after patches get into Drupal 6-dev, but then you need to persuade the core maintainers).
Read more
Gábor Hojtsy's picture

Abstracting language settings out of locale (updated)

The first implementation detail we are looking at for Drupal 6-dev i18n is abstracting language settings out of the locale interface. In Drupal 5, the locale module handles the list of available languages (which is reused in i18n related contrib modules). The data stored about languages is not enough for most purposes (native names are not stored, RTL-LTR direction information is not available), and extending modules really have no way to plug into the language management screen.

Read more
Development Seed's picture

Session for DrupalCon/OSCMS

Hi All,
I've posted the idea of a session on internationalization here on the OSCMS/DrupalCon CA 2007 site http://2007.oscms-summit.org/node/92

You can vote for the presentation and add comments to it over there.

cheers,
Ian

Read more
Development Seed's picture

Translation in Progress: State of Internationalization

Only local images are allowed.The point of this post is to do a round up for the community, get on the same page with some of the developers, and find a path toward what to do for Drupal 6 core and beyond, as well as with contributed modules.

Read more
mki's picture

Relationships-categorization system wanted features

"Relationship" I understood as relationships between fields (nodes are many relationships, which are subject of more advanced process).

Wanted features:

  1. Powerful and without limitation thanks to the most abstract (see: "everything is a field", compare this to: Global CCK fields, A controversial(?) point: store translations as nodes).
  2. Build-in categorization features.
  3. Build-in views features (listing fields, not necessary nodes).
  4. Build-in menu features.
  5. Support for Semantic Web/Microformats/similar.

Observations about current situation:

Read more
mki's picture

Everything is a field

The most abstract concept in my opinion: "everything is a field" (fully atomic value) instead of "everything is a node". CCK is ardent proof that this idea could work. If that's the case, we can share the same field (as regards value), node is just a set of fields tie together by new relationships system, whereas content type is a predefined set of relationships between fields.

Read more
Gábor Hojtsy's picture

Development Seed sponsors Drupal 6 core i18n development

Development Seed sponsors the Drupal 6 core i18n development, so we can collaborate on feature development and keep up with Drupal core changes at once. The basic idea is that we need to (temporarily) fork Drupal, so that we can make changes to the core ourselfs, test the code we add and also provide it for others to download and enjoy (ie. fix bugs).

Since these kind of forks (CVS branches) are not technically supported by the Drupal infrastructure, we needed to look elsewhere (but not too far) for a sponsor. Development Seed already sponsored the i18n module efforts by Jose and they offered support for the Drupal 6 core i18n movement at the DrupalCamp/GovCamp meetings in September, so they were a natural supporter.

Read more
Gábor Hojtsy's picture

Defining a roadmap for i18n in Drupal 6 core

Although actual implementation details are still forming around the pieces we are trying to implement for the Drupal 6 core i18n feature set (which will get shipped with Drupal 6 hopefully), we should define some goals which we aim for, so we see the target. Unless we work in the same direction, there will be no useable consistent i18n solution in Drupal core for people to build their sites on. So what is possible to accomplish in the Drupal 6 timeframe, and what will only be possible to implement in contrib modules?

Read more
Subscribe with RSS Syndicate content