See Urltranslation for the 5.6 compatible version.
What is the Urltrans Module?
If you choose to store your international website in ONE hierarchy you face the problem that the URL cannot be localized. This is very bad for SEO as the URL is very important to search engines.
The urltrans module allows you to localize the URL even if you have only one hierarchy.
How to use it?
The localized property "name" is used to store the localized name of a website document.
The name used for the fallback language is not configured in a property. Here the node name of the website document is used
The page properties tab of the STK dialog is modified (/modules/standard-templating-kit/dialogs/generic/master/basePageProperties/tabMain/name).
Only safe characters are allowed (e.g. no '/'). When you set the localized name for the fallback language the website document will be renamed. This is currently resulting in a 404 error, because you are still editing the old document.
How does it work?
When the web user requests a localized URL a filter looks up the localized URL by querying the JCR repository. When it finds the document it simply replaces the URL with the the node's path.
Filters which are executed after the UrltransFilter (like ContentSecurity) see the path in fallback language.
Filters which are executed before the UrltransFilter (like CacheFilter) see the localized path. The document is stored in the Magnolia cache at the very end of the filter chain, but the clever cache developers use the request path and not the handle of the aggregationState, so caching works perfectly.
A link transformer renders the URL in the localized language. Unfortunately the following STK class must be changed for versions prior to STK 2.0.11. Without this patch the the URLs of CSS stylesheets are rendered incorrectly.