Hello, I created simple view with two content types on one page (base is house, attached is apartment - for example).
I called that test view "House and apartment. Url is /house-and-apartment for english version. But, when I tried to translate that view to Croatian for example, I found out I cant (at least I cannot find that option). Ideally I should be able to set it like this:


I can translate name of the view, but not URL (path). If I am missing something, please instruct me where to look. If not, this should me added, since view display attachment is ideal way of combining any content typ with media_gallery for example. But without possibility to translate URL it is practically useless from SEO aspect.


lokz’s picture

Found solution with URL aliases. Tried and it works, but somehow, I think this should be managed from translate interface, when translating Views ( Translation UI):

Read the solution here: http://www.bariswanschers.com/blog/translating-views-paths-drupal

In the past years, I've made several multi-language websites. And until today, I never found a good way to translate paths made by the Views module. For example: if you have an path like www.domain.com/news, you'd probably want the translated versions to be www.domain.nl/nieuws (Dutch) and www.domain.fr/nouvelle (French), instead of www.domain.nl/news and www.domain.fr/news.

I used Google a lot, but never found a good solution. In the past, I always made a copy of my existing views, and entered a specific path for each language. Which made maintenance a crime, as every update to the views now should be done once for each language. That ended today, as I spotted this comment by our beloved merlinofchaos (the author of Views, Panels and Choas Tools), in which he said you just could use the default Drupal core module URL alias for this.

And it worked! Really.. I thought I've tried it before in the past without success, but to no avail. So easy, and so useful.

So.. what should you do to use one Page View for several paths? Easy:

  • Switch to the english interface (good practice if your not a native English speaker): ALWAYS create strings in English and translate them afterwards. Even if you don't plan to use more languages that your own: you might change your mind in the future, and then you're screwed.
  • Create a Page View and enter the Title and Path in English. Eg: Latest news and 'updates/news'.
  • Save your view
  • Navigate to your newly created view, so Drupal adds the strings to the translation table.
  • Then go to Admin > Site Building > URL aliases (admin/build/path) and click Add alias
  • In Existing system path, enter the URL you just created (eg updates/news).
  • In Path alias, enter the URL you want in the other language (eg actueel/nieuws for Dutch).
  • Make sure you set the language to the adjoining language (eg Dutch) and press Create new alias.
  • Repeat the last three steps for every language

That's all it takes to create multiple URLs for each language! No need to create multiple views, no need to create your own module, and no need to fiddle with hooks, theme functions or hook_menu_alter. Merlin: I owe you a beer @ DrupalCon CPH! Thanks mate for being so helpful on all those issues!