Multi Language Url Features of Url Master 2.0
Jun
25
Written by:
Friday, June 25, 2010 9:04 PM
This is the second post in my series illustrating functionality which will be available with the release of the Url Master, version 2.0.
The previous post covered the new 404 Error Handling features, this post will discuss the new Multi-Language (ML) features that the module incorporates.
Like better 404 error handling, people using the Url Master module soon started to request support of multi-language Urls. While Url Master 1.x versions did work perfectly well with ML sites, and shuffled the /language/xx-YY Url forwards in the path, so that it at least appeared to have a path structure related to the language, this was about all that could be achieved.
The first thing that was needed was the ability to localize Urls for a specific language, and to get the Urls to work without the /language/xx-YY stuck in the middle of the Url.
The next thing was to work out the best SEO strategy for handling different language versions of the same content.
After a lot of research about ML sites and SEO in particular, I came to the conclusion that there are three main streams of thought:
1) Register separate domains names for each country / language. i.e. example.com, example.fr, example.de. Note this doesn’t help with multi-language countries like Switzerland or Canada.
2) Use subdomains to differentiate language versions of the same site. i.e. example.com, fr.example.com, de.example.com. This only needs a single domain name and clearly separates out the sites as separate entities within search engines.
3) Use path separators to differentiate language versions : i.e. example.com, example.com/fr, example.com/de. This has the benefit of keeping the same domain name, and passing on link value to all the various language-sections of the site.
[Note : Url Master 2.0 is currently in Beta Testing, and is not yet available for public release. This information is posted to alert readers of upcoming functionality which will be available soon.]
Update : This Google Webmaster Central article covers Multi-Language sites. As part of their advice, they recommend:
Make sure the page language is obvious
Google uses only the visible content of your page to determine its language. We don’t use any code-level language information such as lang attributes.
Carefully consider your choice of URL
Google uses the content of the page to determine its language, but the URL itself provides human users with useful clues about the page’s content. For example, the following .ca URLs use fr as a subdomain or subdirectory to clearly indicate French content: http://example.ca/fr/vélo-de-montagne.html http://fr.example.ca/vélo-de-montagne.html
Signaling the language in the URL may also help you to discover issues with multilingual content on your site.
It’s fine to translate words in the URL, or to use an Internationalized Domain Name (IDN). Make sure to use UTF-8 encoding in the URL (in fact, we recommend using UTF-8 wherever possible) and remember to escape the URLs properly when linking to them.
The DotNetNuke Multi-Language Domain Problem
All of these solutions require multiple portal alias entries for a DotNetNuke site. The portal alias is roughly equivalent to a domain name, but can also include subdomains, and domains with paths in them, as in child portals. So example.com, fr.example.com and www.example.com/fr are all examples of portal aliases.
The problem with standard DotNetNuke is that, everytime you add a portal alias, you effectively create a duplicate of that site under that domain name. When you add the variable of a language to that, you can quickly end up with many different versions of a site. Just two domains with two languages will give you 4 different versions of a site, because there is no mechanism to tie a language to a portal alias.
The Url Master Domain-Language Solution
Rather than try and pick a strategy to support, the Url Master module now supports all three strategies for handling domain names with ML sites. Once you have chosen the style of portal alias to identify your different language versions of the site, you can then associate specific portal alias entries [or domain names if you prefer] to specific languages. This is done through the following point-and-click interface within the Url Master module:
[Note : this example comes from the new Url Master demo site, which will be discussed further in this post]
As you can see, once you add the list of portal alias entries to your portal, you can then just select which language belongs to which portal alias. The rest is taken care of for you, including these factors:
- If you enter a mismatch between language modifier and domain name, it will be redirected to the correct domain name. For example, url-master.com/language/de-DE/home.aspx will redirect to de.url-master.com
- Any generated Urls with the /language/xx-YY in them (in reality, all ML urls generated by DNN) will automatically have the /language/xx-YY removed from them, and the associated portal alias replaced instead. There are no modifications needed to modules in order to use this feature
- When you have two entries for one language (url-master.com and www.url-master.com for en-US) then the second entry will be 301 redirected to the first.
This applies to any list of unique portal alias entries, whether they are separate domains, different subdomains, or just paths created under a single domain (ie url-master.com/nl)
The page urls for each page in the ML sites just follows whatever the page name is. So, a page called ‘Products’ within the site will be the same for each portal alias, because the portal alias path makes the Url unique, and the Url Master module can work out which language is meant by which portal alias.
The Url Master Page Url-Language Solution
While providing a clean way to separate ML sites in a single portal was one half of the problem solved, the other half is localizing the actual Url of the page. Having an incorrect language term for the Url makes the translation look incomplete, and doesn’t help when optimising the Url for the page in the local language.
For example, we might have /products as the Url for a hypothetical products page on an English-language site. In a French language site, you would expect this to be /produits. This is both to be pleasing for the French-language readers of the site, and also to help optimise the page for French-language search engines.
The solution to this problem is to allow a particular Page Url to be associated with a specific language, in a similar way to how the portal alias is associated. This screen grab shows how this works on the Url Master module demo site:
Anyone familiar with the 1.x versions of the Url Master module will recognise the general format of the page, but note the addition of the ‘Culture’ field. Culture is used to specify a country/language pair, because some languages are spoken and spelled differently in different parts of the world.
In the above image, you’ll note there has been three custom Urls added for the page, and each has been set to ‘200 – OK’ [in this example, the ‘automatic 301 redirect’ option is switched on]. This allows the entry of language-specific versions of Urls, one unique language for each configured culture in the DotNetNuke install. Note that here, the German [Deutsch] Url has not been modified – the ‘200 – OK’ option is greyed out because it is not a custom Url. However, it still does not show the /language/de-DE path because of the unique de.url-master.com domain name.
Please note I can only speak one language and have relied on machine translation to get these Urls, so let me know if they’re wrong.
At this point, it’s important to mention that the language/culture specific Urls for pages is not dependent on having language-specific domain names. You can just use the language-specific page Urls, or just the language-specific domains, or both combined as shown in this image.
The Url Master Module Demonstration Site
Actions speak louder than words, so I have used the Url Master 2.0 module, DotNetNuke 5.4.2 and the EALO Codeplex module to build a multi-language site to demonstrate the module.
Here are the links:
English Version – French Version – Spanish Version – German Version – Netherlands Version
Apologies to native speakers of those languages, because all the translations are machine based. However, the site is meant to display how the Urls for a ML DotNetNuke site will appear. You can switch between the different languages with a single click, and note that they will always show the correct localized content versions. You can also see how each page has been localized via the Url, to give better keyword matching in native-language country-specific versions of search engines.
The site uses the options of removing the page extensions and replacing the spaces in the Urls with hyphens.
You can also see the 404 handling discussed in the previous post by following an incorrect link like this one : http://url-master.com/deadlink.aspx – even the 404 page is localized, as you can see from this link : http://de.url-master.com/deadlink.aspx
Feel free to navigate around the Url Master demo site and get a feel for how a ML DotNetNuke site can be put together.
Can’t Wait? Then don’t!
The Url Master version 2.0 will come as a paid upgrade to people with a version 1.x licence, and there will be a price increase over the 1.x version. The pricing is not yet finalised and will be announced with the module release. However, any purchase made after 21st June 2010 for Url Master 1.15 will receive a free upgrade to Version 2.0 when it is released in the next couple of weeks. This represents an opportunity to purchase the next version at today’s prices. This offer will only last until the release, so if you’re thinking of buying, now is the time to do so.
Other tidbits….
The version 2.0 module will be compatible with DNN versions from 4.6 upwards. It’s even been tested against DNN 5.4.4 which isn’t quite out yet. You will, however, need to supply your own content localization solutions – this is just a Url Rewriting solution to provide friendly Urls and redirections. You’ll need Html modules, ML menu systems and other items.
Wrapping Up
These language features have been a very long time in the works but with the maturation of DotNetNuke 5 with more Multi-Language features the time is right for people running Multi-Language DotNetNuke installations to have a full Url solution. I have collected a lot of feedback on the needs of ML site administrators, and hopefully this solution will cover all of their needs.
If you have questions or feedback about these changes I’m very happy to hear via the comments below. But stick to English please!
3 comment(s) so far...
Re: Multi Language Url Features of Url Master 2.0
Hi Bruce,
When will v2.0 be available? We need the ML functionality urgently
B
By Barend Burger on
Friday, July 02, 2010 1:19 AM
|
Re: Multi Language Url Features of Url Master 2.0
@Barend aim was for end of June but looks like that might slip a week. Just doing final testing and getting things ready
By Bruce Chapman on
Friday, July 02, 2010 8:34 AM
|
Data Recovery Software
Thanks, I will be looking forward to the release. Great job with the UrlMaster and as always, the prompt and informative blog responses.
Regards, Data Recovery Software www.datadoctor.biz
By Data Recovery Software on
Thursday, July 15, 2010 6:47 PM
|