Internationalization

Events happening in the community are now at Drupal community events on 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

Multilingual sprint in Montreal (Sep, 2011) - Updated

Start: 
2011-09-14 09:00 - 2011-09-18 20:00 America/Montreal
Event type: 
Sprint

Update: Notman House (http://notman.org), a hub for the tech community in Montreal, is providing the venue free of charge.

Update: the Multilingual Drupal sprint is a go for September 14th, 15th, and 16th with a possibility to run into Drupalcamp a bit over the weekend! The local organizers are busy to secure a fancy place for us. Let us know if you need help getting there or can help us in some way!

I just got an invite a couple days ago from Matt Corks to attend Drupalcamp Montreal 2011 and help organize a multilingual Drupal sprint (such as the one we had in May in Berlin), focusing on solving outstanding issues in the Drupal 8 Multilingual core initiative list.

While this is still pretty much up in the air (definitely don't make travel arrangements yet!), I'd like to ask for feedback on who would like to come, so we can refine the timing and space allocation for the sprint and look for sponsors. I did specify dates here, but those are subject to change as needed/discussed. The Drupalcamp itself is on the 17th and 18th of September.

Are you nearby and would like to join? Would you like to come but need sponsoring? We can hopefully get some Drupal Association sponsorship as part of the recently announced grants program if we can make our case, so don't be shy.

Read more
gábor hojtsy's picture

Drupal 8 Multilingual Initiative IRC meeting notes

We've had a fantastic meeting yesterday. Although we did not get past even the first item of agreeing on the bigger picture, we've cleared a few misunderstandings, agreed on some of the bigger plans and discussed some interesting options for those where we do not yet agree. It was also great to get on the same page with several cross-initiative details. You can find the chat log attached, but here are some highlights for those who could not attend, could use a summary and/or don't have time to read all the log through.

Read more

A modern t()

Use cases:

  • Translate and format this string. (t())
  • Format this string, but don't translate. (strtr() + prepared arguments)
  • Mark this string as translatable, but don't translate it. (hook_menu(), hook_menu_alter(), watchdog(), ...)
  • Translate and format this string during installation. (st())
  • Format a plural form of this string. (format_plural())
  • Translate and format this string in a specific context. (t('View', array('context' => 'noun'))
  • Translate and format this string in a specific language. (t('View', array('language' => 'hu'))

Problem:

Read more
gábor hojtsy's picture

Drupal 8 Multilingual initiative meeting

Start: 
2011-07-07 14:00 - 15:00 UTC
Event type: 
Online meeting (eg. IRC meeting)

Now that we have several pieces of the Multilingual Drupal 8 initiative discussed in greater detail in the Internationalization group and we hopefully got on the same page in some details, it would be great to get together and discuss some of the finer pieces. An online IRC meeting format worked well so far for the HTML 5 initiative and the design initiative, so I think we should give it a try.

If you have questions about the Drupal 8 Multilingual initiative, and especially if you want to contribute to the discussions around a Drupal 8 Multilingual gate for patches, the possible Multilingual sprint in Montreal in September that is still being discussed or any of the ongoing core issues, you should be there!

The time is not right? It is hard to find good timing in an international community. If many people need the time to be changed, I'm all open for other options (preferably on the same day).

We'll meet in the #drupal-i18n room on IRC. See http://drupal.org/irc for more information.

Read more

Defining a Drupal 8 i18n gate

Hi there, i18n team! :)

Back at DrupalCon Chicago, Dries outlined a strategy for Drupal 8 involving a series of "gates" that would help ensure core code quality in a number of different categories: Documentation, Performance, Accessibility, Usability, and Testing. The purpose of gates is to define essentially a set of "checkboxes" which outline the most important aspects to each category, and does so in a way that is both not overwhelming to core developers (list of hoops to jump through is kept as small as possible) and also creates very little additional burden on the team in question (contains sample links to documentation/resources so developers/reviewers can help themselves).

While i18n was not on the "official" list (working on seeing if we can change that), plach pointed out that there would be a lot of value in defining a checklist for i18n, too. I totally agree. So let's doo eet!

Read more
tsvenson's picture

Separate UI and Content settings for language

One thing I don't particularly like about the Drupal multilingual support is that it lacks a possibility to have separate settings for the UI, both backend and frontend, and the content. Personally I would prefer to be able to set a default language for the UI on a site, but be able to access content in other languages I understand as well.

Read more
tsvenson's picture

What about multilingual needs for files?

I am thrilled that multilingual is a core initiative for Drupal 8. However, so far I have only seen discussions about text content. I believe it is important that we also address the needs for files as well.

This post is going to be heavily skewed to how I as a site builder + content editors would like to be able to work with the multilingual needs for files.

As I see it there are three main differences when it comes to multilingual needs for files:

<

ul>

Read more
Letharion's picture

Any path prefixed content returns a 404

After installation of i18n I setup my "article" content-type to be translatable. I have activated the "URL" language negotiation. After translating node/17, I get a new node/18. I activate the language switcher, which links from node/17 to da/node/18. Unfortunately, with the language prefix, this returns a 404.
Manually removing the path prefix from the URL shows the node as expected.

This seems like a bug, but maybe some configuration that I don't understand/find is necessary?

Read more
gábor hojtsy's picture

What else should be entities in Drupal 8?

Drupal 7 got "CCK" integrated with key concepts like entities and fields. Entities encapsulate the description of a content item while fields are the individual editable pieces of entities which have their widgets, validators, storage and rendering well defined. That entities were introduced for nodes, taxonomy and users, it became possible to attach fields to these, and unify their configuration, storage and rendering.

Read more
gábor hojtsy's picture

Using fields (and maybe entities) for configuration in Drupal 8

Judging by the low number of comments (zero AKA nil) on my post on how custom user editable data in Drupal 7 modules are now localized and my commentary and Drupal 8 proposal there, I've decided to reformulate the basics of the ideas explained there with more of a focus on high level architecture questions.

Read more
gábor hojtsy's picture

Move interface strings entirely out of Drupal code files?

This was suggested several times: one, two (see dropcube's comment, not hotlinkable), and most importantly a whole discussion thread started by Jose Reyero at http://groups.drupal.org/node/151169#comment-507464.

Read more
webchick's picture

Let's talk about string freeze, bay-bee!

Back in D5 or D6, we introduced a rule of "string freeze", meaning we would not change/add any strings in a stable release of Drupal that was not clearly a bug fix (and a critical bug fix, at that, iirc) lest poor, hapless end users do a minor update of core and be slapped in the face with English in their French/German/Swahili site.

I wanted to open this up for discussion up again now that we're in the age of localize.drupal.org. Is this formally hard-and-fast rule something we can look at loosening a bit? It would certainly put a lot more options on the table in terms of incrementally improving D7's UX, and also in terms of backporting non-backwards-compatibility breaking features (which is on the table for the first time in D7, thanks to the testing framework).

Here are a few specific examples that have come up recently:

Read more
adamgerthel's picture

Imported strings aren't being used, only stored.

I'm having trouble getting Drupal to use the .po files that I've imported. This is the setup:

Drupal 7.2
Languages: English (default), Swedish. Language negotiation is based on user preferences.
Related modules that are enabled: Block translation, i18n, Menu translation, Multilingual content, String translation, Taxonomy translation, Translation sets.

This is the scenario:

Read more
gábor hojtsy's picture

How to make a Drupal 7 module i18n enabled and what does that teach us for Drupal 8?

There is great discussion forming on my previous posts on exportables and user provided text as well as the dangers of using t() for user editable data, and I can only hope we can keep that up! To provide better visibility for this post, I'm also cross-posting on my blog, but commenting is only allowed here.

Regular readers could find this boring, but let's reiterate the three working modes that all objects should ideally be able to handle in Drupal to support multilingual site building.

  1. Being able to mark an object as in one language.
  2. Being able to mark an object as in one language and relate it to others as being a translation set. This is useful when you want to use the different language objects in different relations, track their history separately, have different permissions and workflows for them, etc.
  3. Being able to translate pieces of the object that need translation and leave the rest alone. Load the right language variant of the object dynamically as needed. This is very useful for keeping external relations intact and sharing common fields between translations effortlessly.

There are certain things, where not all of these make sense. For the site's name for example, people would probably only use either (1) or (3). For a block for example, people should be able to use either based on their needs. (2) is useful to place blocks differently on translated pages, (3) is good to keep the placement consistent without effort. This can be different on a per-block basis. Same applies to nodes, menus, taxonomy, views, rules, and so on.

Read more
gábor hojtsy's picture

User provided vs. code provided translatables and translation sets

In my previous post titled Drupal's multilingual problem - why t() is the wrong answer posted on my blog and on groups.drupal.org for feedback, I've detailed issues with using t() as a translation tool for "user provided data". This post goes into some further details, a discussion of current solutions which could form basis for discussion of future solutions.

How can we even tell the difference between code and user provided translatables?

It is fair to assume that many multilingual sites will not have English as their default language (many not even as any of their supported languages), so we cannot assume that blocks, menus, and so on are entered in English. However, source code based strings are considered part of the user interface, and as such assumed to be written in English. What does this has to do with default configurations set up by modules and How do we reconcile this with the growing popularity of exportables and features (as in Feature module generated versioned export packages)? Let's look at these two questions.

Read more
gábor hojtsy's picture

Drupal's multilingual problem - why t() is the wrong answer

Drupal is a great system to run foreign language websites on. The core itself is written in English and modules and themes are expected to follow suit. For developers, very simple wrapper functions are available to mark your translatable strings and let Drupal translate them to whatever language needed. These are the famous t(), the less famous format_plural() and a whole family of other functions. See my cheat sheet (PDF) and the drupal.org documentation for more on this.

Then there is "the other side", whatever does not come from code. Drupal works pretty well and very consistent if you want all of those to be in a foreign language (i.e. not English), but not in multiple languages (any of which can be English at that point). Drupal only has direct multilingual support in nodes (+ fields of entitites) and for path aliases. But life with Drupal means you work with all kinds of other objects like blocks, views, rules, content types, etc which are not "language-aware".

Unfortunately for building multilingual Drupal sites, this is the biggest problem that needs to be worked around. The contributed Internationalization module attempts to fill in the gaps, provide language associations and different workflows for translating these language-unaware objects. This works to some degree, but is really not easy without much help from the modules implementing these objects.

Read more
gábor hojtsy's picture

Drupalcon London multilingual session proposal compilation

Make your picks, vote on your favorite sessions!

Sessions focused on multilingual solutions, case studies and integration:

Session referencing multilingual topics too (but not as their major focus):

Did I miss any? Ps. there will of course be a core conversation piece at least on the Multilingual core initiative.

Read more
jose reyero's picture

Berlin i18n sprint - Day 2

We've done some amazing progress these 2 first days. Most of the story is written here (issue tracker), http://drupal.org/project/issues/search?issue_tags=di18nscb

And here, #d818nscb, http://twitter.com/#search?q=%23di18nscb

Some issue queue summary:

Issue highlights:

Read more
ChrisAllan's picture

Newbie to Drupal - How achievable is my idea for a multi-language site???

Hi Guys,

I am completely new to Drupal, and just started looking last night at Drupal 7 and various language related modules. I have an idea for a multi-language (2 language) site I would like to do, and was wondering if you guys could offer me some initial feed back on how achievable this may be with Drupal, and also how easy/difficult it may be.

Read more
Subscribe with RSS Syndicate content

Internationalization

Group organizers

Group categories

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: