November Happy Hour will be moved to Thursday December 5th.

Simple URL multi language site

Vote:
 

How does simple address work in a multi language site?

Example 1. There is only 1 Master page. It is shown in ALL languages.

Normal URL: www/en/aboutus

Simple address: www/aboutus

This is what happens without the simple URL:

Go to www/en-uk

Type in www/en-uk/aboutus

Page displayed is www/en-uk/aboutus

Using content defined in www/en/aboutus

Using the simple address does this:

Go to www/en-uk

Type in www/aboutus

Page displayed is www/en/aboutus

PROBLEM: To correct this we need to create a copy of the page in each language and set the simple address on each of them. That is really awkward and it's unreasonable to expect editors across countries to learn and remember such a quirk.

Example 2. There are 2 pages: 1 master UK and 1 local AU. They both have the same simple address set.

Master page: www/en-UK/careers

Simple address: careers

Language version page: www/en-ZZ/careers

Simple address: careers

Tests:

For a visitor located in country ZZ, if they enter www what actually displays is www/en-ZZ

If they load www/careers they are taken to www/en-UK/careers NOT www/en-ZZ/careers even though there is a simple URL defined for the local ZZ page.

PROBLEM: To correct this we need to create a unique simple address for each language (e.g. careers and careers-ZZ). That is really awkward and it's unreasonable to expect editors across countries to learn and remember such a quirk.

Are these normal and expected behaviours and requirements?

How can we make it easy for editors to set simple addresses?

#190119
Apr 03, 2018 4:36
Vote:
 

Hi, I'm not 100% that I understood your explanation correctly but are you looking for to have simple address without the language part? If so then have a look at this old post https://world.episerver.com/blogs/Johan-Bjornfot/Dates1/2014/9/Changes-in-simple-address-routing/ which explains the simple address language routing changes. I've posted there how to make it work with 10.x+ versions.

Your first problem is definetily about the simple address routing and the language segment in the url, and dependant on your host language configuration.

#190238
Apr 05, 2018 19:07
Vote:
 

Thank you for your response Antti. I think what our real problem is that end users of the CMS, the content creators and editors, will not know how the site has been configured and it is not reasonable for them to understand and remember these many scenarios. So, what would be a setup to make it an easy system for content editors.

For example, if we have 1 page with 2 lanaguage versions, and the simple address is ONLY set on the master English page

  1. http://sitehost/en-UK/about-us, simple address is set to "about"
  2. http://sitehost/en-SV/about-us, simple address is NOT set at all

In England the user types http://sitehost/about the content editor would expect the user to be taken to http://sitehost/en-UK/about-us.

In Sweden the user types http://sitehost/about the content editor would expect the user to be taken to http://sitehost/en-SV/about-us.

What should content editors need to know and what rules do they use? What configuration model makes it easiest for them?

#190884
Apr 18, 2018 11:08
Vote:
 

Hi Annabel, the sample you have doesn't quite make sense because you have the same sitehost in the expected behavior samples (http://sitehost/about) it cannot point to different language versions with the same address, how on earthh the system could decide which language version to use (without you adding custom code that would change the language for example based on IP-address but you don't mention anything like that, so I must assume you are using the defaults).

(offtopic, en-SV would mean english in sweden so are all you pages in english buf using language code to tell region, like targeting swedish people but using english as the language?)

Lets also clarify what Episerver version are you using? So that we know what language routing rules will apply by default.

Then on the usage of simple address - I would only use it for marketing purposes/needs where there is a need for a short URL. You should instruct the editors not to use simple address on every page - only when it is truly needed. In prior version of Episerver the simple address was routed first so if every page would have a simple address in older versions it meant it could actually have a real performance downgradin effect because all simple addresses would need to be scanned for a match. Nowdays the simple address matching is done last (so the normal routing takes priority).

Also note that when using simple addresses the browser is not redirected anywhere (just mentioning this as you are referring in your comment 'taken to' http://sitehost/en-SV/about-us/ )

So lets assume the following:

  • you have two language versions en and sv (OR en-GB and sv-SE)
  • you have one host address to server language versions (localhost for demo)
  • there is no language mapped to the host address in Episerver Admin -> Config -> manage web sites
  • we are using the Alloy with latest Episerver CMS (EPiServer.CMS 11.5.2)
  • default setup only has english language version but swedish language enabled
    • so localize the start page to swedish and also the about us page (using page name: Om oss -> default address /sv/om-oss/ )

So now if we add simple address for english language version of 'About us' page and use your sample 'about'

  • navigating to http://localhost:port-number-here/about/
    • will display the content of the about us page
  • navigating to http://localhost:xxxx/en/about/
    • will display the conten of the about us page
  • navigating to http://localhost:xxxx/sv/about/
    • will display 404 Not Found
    • in this case the url means give me swedish language version which has address of 'about', there is no such page
    • as explained in the linked blog post under "No host language mapping, strictLanguageRouting=true" <-- THIS IS THE DEFAULT SETUP IN EPISERVER NOWADAYS
  • next add a simple address 'om' for the swedish language version of 'about us' page

So with the default setup of Episerver and no language configured for the site host address, if you want to use simple address for the languages you should then set the simple address unique per language like in the previous sample: about and om

Besides what would be the point to use word about for the swedish language, it is not swedish ;P

The functionality changes if you for example map english language to the sitehost. Meaning that you have configured in admin -> config -> manage web sites -> select your site

And then set localhost:xxxx Culture to 'en' and save the settings (set en culture also for the wildcard host (*)).

In this case you need to look at the rules defined under "Host "sitehost" mapped to language "en", strictLanguageRouting=true"

Now all the english urls are without the language segment 'en' for example and the previous sample addresses produce different results.

But now lets get back to your requirement, does the above examples cover the requirement for simple address or do you need to be able to use simple address for all languages without the language segment?

I hope this clarified the configuration part.

Then you last question "What should content editors need to know and what rules do they use? What configuration model makes it easiest for them?" - simple answer is:"It depends".

Content editors don't need to understand the configuration but they need to be instructed how the simple addresses work with their Episerver solution (how you the partner has configured the solution).

Personally I like to setup sites with host mapped to a language so the master branch doesn't have the language segment inthe urls, I think it is cleaner that way. I also like the strict language routing, so by default I use the rules under "Host "sitehost" mapped to language "en", strictLanguageRouting=true" (naturally language depends what is the solutions master language). I think if you set the strictLanguageRouting=false when you have host mapped to a language would result in weird urls mainly the possibility to use /sv/about/ == swedish language version but using the simple address of english language version - No thank you. I like the real simple address without language segment in the url so I usually use the code to relax the strictlanguagerouting only for the simple addresses.

#191144
Apr 20, 2018 19:29
Vote:
 

Hi Antti, thank you for the thorough response. I am a content manager for several languages and not the site developer so I am not sure about the routing setup. You are correct in 2 important facets;

  • We have special code to set language (region) based in IP address
  • All languages are English and they are not being used in a language translation sense, but rather to target geographically different content

Other details

  • Episerver version 9.12.2.0
  • One website in Episerver Admin -> Config -> manage websites (www.website.com). No culture is set.
  • Five English languages setup in Episerver Admin -> Config -> manage website languages (en, en-GB, en-AU, en-SG, en-US)
  • Fallback languages en-XX > en-GB > en
  • The site includes code to find where you are located in the world and then set the URL (IP routing I presume)

As an editor I was expecting that simple address would be a short cut to the overall page in the tree. Then once the overall page marker was located, the relevant language version would be displayed using the normal fallback rules.

Currently the site does not do that. So for example:

  • Page is defined as: Homepage > About Us (en-GB, en-AU)
  • Add a simple address to the GB version www.website.com/about
    • In UK the visitor is taken to www.website.com/en-GB/aboutus
    • In AU there is an error. I would have expected the AU version to load because there is a local variation of the same page.
    • In SG there is an error. I would have expected the GB version to load (but with SG url) because of fallback rules.

I want to understand whether the use of lanaguage we have to control geographic content is normal/recommended. And how simple address works in that configuration.

#191237
Apr 24, 2018 14:13
Vote:
 

Hi Annabel, I was a bit afraid that it is the case that you are not one of the developers of the site ;)

I'm pretty sure I guessed correctly the website we are talking about.

The site I had a look at has www.some-host.com/about/# (region UK & Ireland). If I now try to switch to the Australia & NZ region I get a light box with title "Region choice" and message "This page does not exist in the selected language. You can remain in the current language or be taken to the region homepage of the selected language" and options to "Region homepage" or "Remain" - Are we talking about the same site perhaps?

If yes, when switching region an Ajax call is made to the server with current page guid and region info where to switch. The response from server is: {"PageExists":false,"RegionHomepageUrl":"/en-AU/"}

So the point being there is some custom implementation check done if the page the user is exist in some other region (language) and the logic there doesn't find a match.

This is the point where I have to raise my hands and say sorry, can't help you further with this as only the developers and people who have access to the solution source codes can check what it does and maybe change it to work the way you would like to.

To answer to your last question about is your current setup the normal/recommended way of doing it - its one way to do it - use language to target a region. Anyways how it has been implemented on your site is totally up to the developing partner. One option would have been to use top-level domain (TLD) for region like your-domain.co.uk, your-domain.au and your-domain.sg and then use language per TLD - as is, no difference in the inner workings how it is now. Visible difference would be that there wouldn't be any language parameter in the URLs.

I would say that you have really outdated version of Episerver (over 18 months old version). I can just assume you've had a web site project and no continuous development for the site. I would say it is time to call your partner perhaps.

Couple of other things, the site is setup with the default UI URL, meaning edit mode is accessed with www.some-host.com/episerver/cms/ - I would say this is bad practice from your partner as they have not chnaged the default url + relocate also the login/logout pages.

Also when navigating to the site root www.some-host.com does a redirect to /en-GB/ using http status code 302 which then does a redirect to /en-gb/ using http status code 301 so at least one redirect too much.

#191294
Edited, Apr 24, 2018 20:36
Vote:
 

Hi Antti, thank you so very much for your comments. This will help us in future planning. The management of geographic/region content (all in the same language in the true sense of the word) is complicated and difficult for editors to understand and to train them. I have been unable to find much in the Episerver documentation to understand the recommended and most editor/visitor friendly ways of setting up a multi national site. So discussions on this forum help me get a better understanding. I have a seperate post asking for advice about the best ways to manage out situation (Loading content for a new language). Thanks once more for your discussion.

#191656
Edited, Apr 26, 2018 2:02
* You are NOT allowed to include any hyperlinks in the post because your account hasn't associated to your company. User profile should be updated.