Labels

accessibility (2) ADF (1) archiver (3) cmu (1) contributor (13) cookie (1) DAM (3) date (3) download (3) dynamic list (4) ephox (5) fatwire (1) fck (1) filters (1) folders (4) headers (2) IBR (3) ImageAlchemy (3) java (4) javascript (2) layout/template (4) link (6) locale (2) multilingual (1) rendition (3) replicator (4) rules (1) schema (1) search (11) sites (1) sitestudio (24) ssp/sspu (5) SSUrlFieldName (2) stellent (4) timezone (1) urm (1) weblogic (1) workflow (2)

Thursday 29 September 2011

Multilingual Websites

A few years ago I wrote a system that produced multilingual websites in UCM. I was asked about it recently so I thought I'd talk about the solution here.

First of all, the Content Server interface is fully multilingual. Users can switch the locale from their own profile and suddenly all the words and all the dates are in another language. (Note that the system administrator needs to enable other locales, from the System Properties application.) This functionality is impressive but it doesn't extend to the content and it doesn't apply to SiteStudio websites.

There is a product you can use to extend UCM for multilingual websites, offered by Lingotek. It looks fair dinkum but I'm not here to plug it.
http://www.lingotek.com/oracle
There is also a product offered by Clay Tablet Technologies but I know nothing about it.
http://www.clay-tablet.com/
Neither of those options were available when I was asked to provide multilingual sites so I wrote my own solution.

My solution involves two parts. First, I wrote a simple component that maintained a link between translated content and the original item. (If you don't want to write a component, just add a metadata field that will contain the ContentID of the original item that was translated.) It was up to humans to check in translated documents, and whenever the original changed it threw all the translations into workflow. Translation languages were identified by a language metadata field which should already be present in the system but you might want to add your own fields for language/country combinations, such as distinctions between spanish spoken in Spain or Mexico. My component also extended the Content Information page to provide information about the translations, their languages and status.

The second part to the solution was to write SiteStudio fragments that would switch languages on the website. During page load my fragments look up the content IDs assigned to the regions on the page and then search for translated items to display instead. For this I used [!--$ssGetNodeProperty(nodeId, "primaryUrl")--] to read the content assignments. The section-generated navigation is also switched by replacing the section labels with title metadata from translated documents assigned to each section. The trigger for switching languages was just a value appended to the URL. To facilitate a switch, I put links on flag icons added to the page for every language that a translation existed for. This approach meant that only one website was necessary to deliver all multilingual content.

The solution would get quite intensive on large websites so it has to use caching. And even though it was developed several years ago, and the website has been overhauled since, the solution can still be seen in action here:
http://www.uow.edu.au/informatics/

3 comments:

  1. I m new to Oracle Site Studio & Content server and i have to implement search on the site which i have created using Oracle Site Studio designer 11g so can any one please help me out regarding that.

    Thanks

    Regards

    Vijay Kumar

    ReplyDelete
  2. The discussion on your site search question is here:
    https://forums.oracle.com/forums/thread.jspa?threadID=2296100

    ReplyDelete
  3. I translated some websites from English to Spanish using https://poeditor.com and I recommend it to everybody who wants to make multilingual websites.

    ReplyDelete