We have to migrate a Multilingual website created with MCMS2002 (www.seguridadaerea.es).
In fact, if you check the website you´ll see that there is no content translated but we need to keep the multilingual possibility in the new one.
Our ideas/doubts are:
- All documents and folders must be exactly the same in all languages. We are thinking about extending Umbraco to make a workflow for creating automatically the multilingual document each time a new document is created (always in the Spanish folder). Is there any reference for this purpose?
In Umbraco, the general good practice when it comes to multilingual sites is to create the default site (in your case, Spanish) and then simply copy that site for each new language you want. So basically you will end up with a structure like this:
- Content - es (your default site) - en - ger - ....
That way you can be sure that if there are document that's not translated from spanish to i.e. english yet, it just displays the copied text in spanish. For static elements you can use the dictionaries in Umbraco. I'd suggest to have a look at the videos about multilingual sites on umbraco.tv which explains all about subdomains, dictionaries and so on, so forth.
For keeping the tree up to date whenever a new document is created or updated you could hook into the event model in Umbraco:
I had checked the first video (Structure,Domains and languages) but it doesn´t help too much for our case. The main problem is that we need to have the documents created in the other languages but with no content because there won´t be translators. It´s something odd but it´s one of the expectations of our client.
I´m starting to be very worried about this because we´ll need at least 4 different workflows:
- Each time a document is created must be duplicated in all languages.
- Each time a document is deleted must be deleted in all languages.
- Each time a document is updated some of its properties must be updated in all languages.
- Each time a document is published/unpublished must be published/unpublished in all languages.
We can have serious performance problems in the editors/publishers side because some of our document types have more than 50 properties.
You can use the API for this, this is what 'related nodes' are used for, so when your user copies the node they need to tick the 'relate this item to the original'
Then you can write a delete event that checks if the item you're deleting has relations, if so delete these, same with publish etc.
The users won´t copy the items because everything must be done automatically (there are 6 languages and no translators). If you check the current website (www.seguridadaerea.es) and visit English language, the only translated content are some words (in resource files) and the internal links just to keep the language in the navigation.
What I´m thinking is to launch the events from a separate process (Web Service for instance) to improve the performance about the editors waiting times.
I *never* would have worked out that I had to click there to get the English version! Maybe a little flag would help?
You can either use related nodes or use a Doc Type property that says "This node B is related to master node A"
So when you delete "A" you know that you need to remove "B"
For this I would have slightly different DocTypes so you know which one is a "Master" and which one is a "copy", like this:
Doc Types:
- Content
- ContentMaster
- ContentCopy
So in your 'Master' site the user can create a ContentMaster node, when this is created the API creates the ContentCopy nodes in the other sites whilst also markign them as a 'copy' of the Master
I think exactly the same but our client want to keep this in the new design. Unless the links will be in the top side of the page and will be easy to identify them. Any way the content won´t be translated so...
About related nodes, is it possible to have 1 master document with 6 related copies? Currently we detect the related documents navigating recursively using the url.
Advices for a Multilingual website.
Hello,
We have to migrate a Multilingual website created with MCMS2002 (www.seguridadaerea.es).
In fact, if you check the website you´ll see that there is no content translated but we need to
keep the multilingual possibility in the new one.
Our ideas/doubts are:
- All documents and folders must be exactly the same in all languages. We are thinking about extending Umbraco to make a workflow
for creating automatically the multilingual document each time a new document is created (always in the Spanish folder). Is there any reference for this purpose?
- Using macros (xslt or .net UC) for rendering the content in the language visited only if it is tranlated (maybe in the future)
if not we will render the Spanish correspondence content. What is the best way to access from one content to the other?
Example: http://www.seguridadaerea.es/AESA/LANG_EN/AEROPUERTOS/AUTORIZACION/ shows this content
http://www.seguridadaerea.es/AESA/LANG_CASTELLANO/AEROPUERTOS/AUTORIZACION/
- We have to keep always the internal links pointing to the language that it´s been visited. This would be done with the same macro commented before.
Is there any other architecture better for our goal?
I´ve been checking about Translations but as we won´t have translators and we need to migrate the
current scenario seems to have no sense here.
Some help would be very useful.
Hi Sergio,
Some good questions there.
In Umbraco, the general good practice when it comes to multilingual sites is to create the default site (in your case, Spanish) and then simply copy that site for each new language you want. So basically you will end up with a structure like this:
- Content
- es (your default site)
- en
- ger
- ....
That way you can be sure that if there are document that's not translated from spanish to i.e. english yet, it just displays the copied text in spanish. For static elements you can use the dictionaries in Umbraco. I'd suggest to have a look at the videos about multilingual sites on umbraco.tv which explains all about subdomains, dictionaries and so on, so forth.
For keeping the tree up to date whenever a new document is created or updated you could hook into the event model in Umbraco:
http://our.umbraco.org/wiki/reference/api-cheatsheet/using-applicationbase-to-register-events/overview-of-all-events
I hope this sheds some light on the subject :-)
All the best,
Bo
Hi Bo,
Thanks for your reply.
I had checked the first video (Structure,Domains and languages) but it doesn´t help too much for our case. The main problem is that we need to have the documents created in the other languages but with no content because there won´t be translators. It´s something odd but it´s one of the expectations of our client.
I´m starting to be very worried about this because we´ll need at least 4 different workflows:
- Each time a document is created must be duplicated in all languages.
- Each time a document is deleted must be deleted in all languages.
- Each time a document is updated some of its properties must be updated in all languages.
- Each time a document is published/unpublished must be published/unpublished in all languages.
We can have serious performance problems in the editors/publishers side because some of our document types have more than 50 properties.
Sergio.
Hi Sergio,
You can use the API for this, this is what 'related nodes' are used for, so when your user copies the node they need to tick the 'relate this item to the original'
Then you can write a delete event that checks if the item you're deleting has relations, if so delete these, same with publish etc.
Make sense?
Rich
Hi Rich,
The users won´t copy the items because everything must be done automatically (there are 6 languages and no translators). If you check the current website (www.seguridadaerea.es) and visit English language, the only translated content are some words (in resource files) and the internal links just to keep the language in the navigation.
What I´m thinking is to launch the events from a separate process (Web Service for instance) to improve the performance about the editors waiting times.
Any other idea?
Sergio.
Hey Sergio,
I visited it the site but cannot see anyway of changing the language to English.
However you just create the nodes automatically.
Psuedo code:
- User creates 'Item1'
- In the API event (create or publish depending on need) you create new related nodes under relevant sections of the other sites.
- If the user needs to they can just edit the content language site (otherwise the copy remains the same)
On delete / publish of any node check if this node has relations and use logic to work out what to do.
Sorry the details are a little hard to explain, we've just done this for a site and it works great.
Rich
In the center of the Homepage you have these links:
You can change the language there.
About the related nodes. What is exactly the difference? I´ve made some tests but if I change the Node A nothing happens in Node B (the related one).
Thanks Rich!
Hi,
I *never* would have worked out that I had to click there to get the English version! Maybe a little flag would help?
You can either use related nodes or use a Doc Type property that says "This node B is related to master node A"
So when you delete "A" you know that you need to remove "B"
For this I would have slightly different DocTypes so you know which one is a "Master" and which one is a "copy", like this:
Doc Types:
- Content
- ContentMaster
- ContentCopy
So in your 'Master' site the user can create a ContentMaster node, when this is created the API creates the ContentCopy nodes in the other sites whilst also markign them as a 'copy' of the Master
Make any sense?
Rich
I think exactly the same but our client want to keep this in the new design. Unless the links will be in the top side of the page and will be easy to identify them. Any way the content won´t be translated so...
About related nodes, is it possible to have 1 master document with 6 related copies? Currently we detect the related documents navigating recursively using the url.
Example:
All site is exactly the same about relations.
Maybe using the related node property we can improve the performance. We will check that.
To have different doc types doesn´t seem useful for us.
Hey,
Yes it's possible to have one master document and 6 'copies'.
The only reason for the different doc type is to know which one is the master, consider this:
- Master Site
- About Us
- Language 1 Site
- About Us (what should happen if the user deletes this, should the master get deleted, or should you only let the user delete the master)
Rich
Yeah, I catch the idea.
But in our case we will check always the Channel Root to verify if the document is in Spanish (Master) or any other language.
We have about 20 document types and some of them have more than 80 properties. To duplicate this is a hard work...
Thanks a lot for your help Rich!
Hey,
No problem, let me know how it goes.
Hope you get it sorted!
Rich
is working on a reply...