We made a custom solution for our client' site (www.tacx.com
Our module also depends on
We suppressed the RedirectFilter it provides, and embeded its functionality in our 'CultureRedirectFilter' instead.
Even though we did multiple hacks to the orchard core for our website, I do think we didnt do (m)any for the localization support.
We also added a custom 'token' to be used in url generation: it'll fill in the 'culture prefix' based on the page' culture.
We also have another 'token' called 'CultureSlug': this always takes the 'slug' of the master content item so that all our generated urls are the same, with the exception of the culture prefix! (read: you can have a unique title per page, but the generated
url will - in our case - always contain the slug based on the english title)
ie: for 'fr-FR' cultures, the token would be replaced with 'fr', 'nl-NL' with 'nl' and so on :)
We also use the regular 'localization' support provided by Orchard.Localization and provide a fall back system:
If you request, for example,
we'll first try to see if /nl/products exists, if not, it'll try /en/products instead
Also, if you would visit /products it'll first try the 'detected' culture and then does the same fallback.
Just to say: I think you should write your own module to do exactly what you want. We spend a lot of time on it, but was definitely worth it in the end!
Hope to have sparked some ideas for you ;)