A client has developed an Umbraco project and are looking to make it multi-lingual. The site won't have 1-1 content mapping, so they're looking to have separate Home nodes for each language.
It's a reasonably highly trafficked site, with hundreds of pages for each language variant.
My question is regarding linking the content nodes for the different languages together. I'm thinking that they should be using Umbraco Relations to link the different variants of pages together. I guess we could use a MNTP as well, but Relations seems a better idea.
Does anyone have any thoughts on the "right way" to do this. Pro's / Con's or different ideas?
I think you'll need to create a custom relation mapper, then. By default you can "relate on copy" but that just relates the copied node back to the original. This is fine if you only have two sites, but doesn't work if you have more than two sites.
For instance, imagine you have two sites:
EN
US
If you copy a page from EN to US then it will create a relation between EN and US. Which is great.
But if you add a third site (FR):
EN
US
FR
Then none of your FR pages are related to the EN or US versions.
I'm also not sure how you'd create a custom relation mapper that would know that when you create a page in one site to copy it back to the equivalent pages in all the other sites. How would it know what the equivalent page was?
I think the only way you can really relate pages is for an editor to select the equivalent pages for every site, but this soon gets tedious. Your other option is to simply not bother, and when someone switches site you just send them to the homepage.
My go to response to the client was simplify things and just jump to the language homepage on switch, but deep linking the language variants is a must have requirement.
I feel for you there. I've thought about how you'd do this for clients, and haven't come up with a way that would reliably and automatically relate all variants.
One way in theory I've thought of would be:
Have one site as the "master". Then when you create a page in that site use the ContentService events (such as OnCreated) to create the same page at the same level and depth in the other sites. Then somehow relate them all together - maybe using relations API.
Multilingual site structure
A client has developed an Umbraco project and are looking to make it multi-lingual. The site won't have 1-1 content mapping, so they're looking to have separate Home nodes for each language.
It's a reasonably highly trafficked site, with hundreds of pages for each language variant.
My question is regarding linking the content nodes for the different languages together. I'm thinking that they should be using Umbraco Relations to link the different variants of pages together. I guess we could use a MNTP as well, but Relations seems a better idea.
Does anyone have any thoughts on the "right way" to do this. Pro's / Con's or different ideas?
I'm really looking for a chat around the subject.
I think you'll need to create a custom relation mapper, then. By default you can "relate on copy" but that just relates the copied node back to the original. This is fine if you only have two sites, but doesn't work if you have more than two sites.
For instance, imagine you have two sites:
If you copy a page from EN to US then it will create a relation between EN and US. Which is great.
But if you add a third site (FR):
Then none of your FR pages are related to the EN or US versions.
I'm also not sure how you'd create a custom relation mapper that would know that when you create a page in one site to copy it back to the equivalent pages in all the other sites. How would it know what the equivalent page was?
I think the only way you can really relate pages is for an editor to select the equivalent pages for every site, but this soon gets tedious. Your other option is to simply not bother, and when someone switches site you just send them to the homepage.
Hey Dan - thanks for the feedback.
My go to response to the client was simplify things and just jump to the language homepage on switch, but deep linking the language variants is a must have requirement.
I feel for you there. I've thought about how you'd do this for clients, and haven't come up with a way that would reliably and automatically relate all variants.
One way in theory I've thought of would be:
Have one site as the "master". Then when you create a page in that site use the ContentService events (such as OnCreated) to create the same page at the same level and depth in the other sites. Then somehow relate them all together - maybe using relations API.
But I've never tried it.
is working on a reply...