Multilingual Update

I have been working with the Multilingual stuff all day and I think I have it at a point where I’m OK with it. I simply needed to play around with the interface myself for a bit and get used to it. But I believe that I can say that it is the quirkiest part of Drupal that I have had to work with. But once I got a steady rhythm going I was able to knock out things pretty easily.

I also  enabled the session option for Multilingual and set its priority to first. That way, I can use Panels to add the Language Switcher Dropdown to the main page. So, with the language specified on the account settings and the dropdown enabled, spanish speakers will get spanish first with the option to change the language from the main page. English speakers get the same options.

Multilingual Update

Well, I really know why now they say to only attempt Multilingual if you have a brand new site. I don’t even have much content but just changing one menu with 9 items took about 30 minutes. And that was just to change the link name on the menu.

I am not going to go too far into this subject except to say that this is the toughest part of Drupal that I have encountered. There is a lot of ambiguity and a lot of clicking.

Here is what I did to change the items on an existing menu so that someone whose account specifies spanish will see the options in spanish while someone using the defaults of english will still see them in english. This assumes that you have all the same modules installed that I have. Buyer Beware on this. I make no claims that it will work for you the same way.

  • Edit the menu and set it to Translate and Localize
  • Click the translate tab and translate the title of the menu
  • Click List Links
  • Edit each English link and set it from Language Neutral to English
  • Save it
  • Go back into the item and click the Translate tab
  • Provide a translation
  • Save
  • Do this for all the links then reorder them so they appear as you would like them

If you don’t save after you change the link from Language Neutral, the translation won’t take. It’s a quirk. At least with the combination of modules that I am using. The point of this is, you can make all this work but it can be tedious and requires a really thorough understanding of all the options. Which I don’t have right now. I’m just trying to achieve a fairly limited scope.

TIPS – I’m Doing Views Now. This is a reason to sue variations of a View whenever possible. It will simplify the translation process for the interface should you decide to do that.

Leave a piece of content as Language Neutral if you don’t plan 0n translating it. otherwise, it won’t show up for user accounts that have the language other than the one specified on the content. it will simply vanish.

Translating Items on the site

I am working on translating various menu items on the site today.

I am trying to change the Basic Page entitled “About” along with its menu title. I have changed it in the Translate Interface and it doesn’t seem to take. So I am going into the content itself.

I believe that 8’s complete reworking of Multilingual capability will be needed because there is just a lot of ambiguity here.

Multilingual Update

I have decided that I want to show all content, regardless of language. But, I want to show the user interfaces in the language that has been chosen in the user’s profile. Under

  • Configure, Languages – I turned on Spanish
  • Detection and Selection – chose User for the method
  • Language Switcher – All content. No language conditions apply.
  • Configure, Translate Interface, Translate – search for strings that haven’t been translated in the UI by the defaults and translate them manually. Use
  • create a user account with spanish as the default, open that account on a different browser or different machine to test.
  • find the strings you need to translate from the spanish user’s interface, translate them on the admin side, save and test back on the spanish side.

Multilingual Considerations

I have made a decision about what is going to be translated on my site. Since the site mainly warehouses news information from outside sources via RSS and Mailhandler and there is a tremendous amount of content all the time, I can’t hope to translate that.

What I can offer is:

  • Spanish support in the interface
  • English or Spanish as a language default in the People settings for individuals
  • Forums, Blogs, and other standard (core) Content Types that can be available in both languages depending on the author.

So I believe that I am going to go with the Content Translation path. I wanted to do Entity Translation before but I believe that it is just going to be too much to offer everything in both languages. I accumulate over 100 nodes every day from outside sources and there is no inexpensive way to translate all that. It could be done, but I don’t have the time to translate all that (even if my spanish was better than it is) and I can’t afford the services that can do it.

I want to emphasize that though. Drupal can have complete content synchronization between all nodes if that is what you want to pay for. but that is beyond my budget at this time.

But the point of all this is to be realistic about what it is that you can provide. and what you need to provide. Do a little storyboarding and floow the path of a non-english speaker.

Language Switcher

I’m installing this in addition to the multilingual basics that you can find on this blog under the multilingual category.

Language Switcher 7.x-1.0-beta2 Determines which content to show depending on the current page language and the default language of the site

Requires: Locale (enabled)
Language Switcher Dropdown 7.x-1.5 Provides a dropdown select to switch between available languages.

Requires: Locale (enabled)

this is a nice one too. trying it out. again.

Multilingual – Revisited

It took me a little longer to get back to this and I am frankly not eager about it. Because Multilingual is hard. There are a LOT of modules and ways to do this. And this myriad of choices makes for a lot of in-the-dark feeling decision making.

Read this first –

You might read this post of mine from January when I was neck deep in this stuff. I have a neat Draw file that shows some of the complexity that you can find here.

Drupal 7 Language Modules, Dependencies and a Few Relationships Between Them

I will say though that I have gotten better with Drupal and feel like I have a good shot at making this work.

One of the things that I was really hoping to find was a way to translate stuff automatically. And you can do that to a degree with the Drupal Interfaces. But the content, well I believe that it has to be a manual process. There are good tools available to do that and to manage the process. But NFL …No Free Lunch…

Returning to Multilingual Tomorrow

Well, now that I have many of the content aspects (views, mailhandler, chat) out of the way it is about time to return to the multilingual stuff. I have a better understanding of Drupal now and I believe that I will have better luck with the multilingual stuff. Especially now that it has had a couple months in the back of my brain for me to digest it.

Resolved – Warning: Parameter 1 to icl_content_node_view

I have been working with a bunch of the language modules and I am now receiving this error on the main page of my quality environment. Eh, that’s why you have quality. Well, that’s really why you have a sandbox. but my sandbox really needs some help. Fortunately, I backed everything up before my last prod change, including quality. If I can’t fix it, I may roll back and punt.

Warning: Parameter 1 to icl_content_node_view() expected to be a reference, value given in module_invoke_all() (line 857 of/var/www/html/includes/

this is a known bug. and

Here is the actual patch procedure from hgneng. Big thanks for this; it worked perfectly.

I did have to install the app “patch” to use this proc. simple – yum install patch

Posted by hgneng on May 16, 2012 at 8:38am

The patch works for Drupal 7.14. Why not merge it to dev?

@tzanis how to install patch (for Linux user):
$ cd sites/all/modules/translation_management/icl_content
$ wget…
$ cp
$ patch -p1 -i translation_management-node-hooks-by-value.patch.txt