Date post: | 01-Nov-2014 |
Category: |
Technology |
Upload: | day-software |
View: | 2,012 times |
Download: | 0 times |
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