nu skin: integrating the day cms with translation.com
DESCRIPTION
Nu Skin Enterprises is a multinational direct selling company doing business in 50 countries around the world. Recently Nu Skin migrated all of its European market sites from a home grown solution to the Day CMS. The creation of the EU sites in the old solution took more than 6 months. With the Day CMS and translation workflows fully implemented, Nu Skin built 51 sites for 25 markets in 18 languages in 63 days from scratch. Every page was complete with web analytics code and indexed in the on-site search engine. This session will review the project and the process of using Translation.com.TRANSCRIPT
Nu Skin Enterprises and Translation.com
integration & workflows
Case Study October 14th 2010
Company Information
• Nu Skin Enterprises - Founded in 1984 • Direct Sales Industry • Premium Hair, Skin, and Nutritional
products.
Market Information
• 50 International Markets – Americas – Asia/So.Pacific – Europe
• Majority of sites translated into at least one additional language – Nearly doubles the content of our sites
History of Content Management
• Static • Homegrown CMS • Day CQ5
– Purchased in December 2008
Milestones
• Complete Redesign in 9 months including environment and software installation. – Content Inventory – Creation of hundreds of content pages – Implementation of Stateful applications – Services and workflows for content not owned
by CMS.
Milestones
• Other Market Launches – Canada – Australia/New Zealand – Mexico/Latin America
Europe
• Previous CMS – 6+ months to implement
• Day CQ5 – 51 Sites – 25 Markets – 18 Languages – 63 Days! – Complete with Web Analytics and Searchability
Other Stuff
• More than just a Live Site Copy – Maintained inheritance from region heads – Ability to individualize content on a market by
market basis due to regulatory guidelines of foreign markets.
Solution
Translations.com
Basic Tools Used to Manage these Sites
• Multi-Site Manager (Live Copy & Blueprints) – Ability to create a site (called a Live Copy) based on another site (called a
Blueprint) – Actively manage the relationships between the Blueprint and the Live Copy.
• Language Manager (Language Copy) – Control which content is visible in which country and how the various languages
are managed and kept synchronized. – Associate workflow’s (Ex. automatically creates new pages in the language
branches)
• Workflows – Automate process steps according to business logic
Defined Relations for Market Sites
Primary and Shared Market Languages
Europe’s Flow Diagram
TDC Process Flow
Day Submitter
Day Poller & Importer
TDC Project Director
TDC TRP
Day Workflow
Q&A Project Director Workflows
Demonstration
Translation Workflow
Additional Workflows & Enhancements
• Image Update Distribution – Rollout just an image update from en_GB to the European English sites and
Language sites
• Link Update Distribution – Rollout just links from an en_GB page to the European English sites and
Language sites
• Mass translate workflow – Automate submissions of shared languages upon import of primary languages
• Mass deactivate workflow – Automate deactivation of European pages from region head
• Mass delete workflow – Automate deletion of European pages from region head
Demonstration
Code • public void execute(WorkItem workItem, WorkflowSession workflowSession, String[] args) throws Exception { • String projectShortCode = getProjectShortCode(args); • try { • Locale fromLocale = getFromLocale(workItem); • Locale toLocale = getToLocale(workItem); • Node sourceNode = getSourceNode(workflowSession, workItem); • if (sourceNode != null) { • TDCSerializedPage page = getSerializer().serializePagePropertiesForTranslation(sourceNode, fromLocale, toLocale);
• String submissionName = sourceNode.getName() + "-" + System.currentTimeMillis(); • getSubmitter().submit(projectShortCode, submissionName, page);
• String targetNodePath = TDCPageSerializer.getToPath(sourceNode.getPath(), fromLocale, toLocale).substring(1); • if (workflowSession.getSession().getRootNode().hasNode(targetNodePath)) { • Node targetNode = workflowSession.getSession().getRootNode().getNode(targetNodePath); • if (targetNode.getPrimaryNodeType().getName().equals("cq:Page")) { • if (targetNode.hasNode("jcr:content")) { • String targetPath = targetNode.getNode("jcr:content").getPath(); • String sourcePath = sourceNode.getNode("jcr:content").getPath(); • // remove language copy node • targetNode.getNode("jcr:content").remove(); • workflowSession.getSession().save(); • // copy over english source node • workflowSession.getSession().getWorkspace().copy(sourcePath, targetPath); • workflowSession.getSession().save(); • } • } • } • } • } catch (Exception e) { • logger.error("Error executing TDC workflow step", e); • throw e; • } • }
Q&A
Multi-Site Manager (Live Copy & Blueprints)
• Sync Trigger (defines when the modifications on the Blueprint are propagated to the Live Copy)
– Never – On Rollout – On Modification – On Activation
• Update Content – modifications to the Blueprint will be propagated.
• Notification – user will be notified (if user has subscribed) when the modifications are propagated.
• Associate Workflows