#FLDC2018

Kaylan Senour

ksenour@lingotek.com
twitter: @kesoleil

Technical Account Manager

Beginner's Guide to Localization

Who am I?

  • 5th year at FLDC
  • Long time lurker, first time presenter
  • Lingotek TAM
  • Onboarded and support over 20 clients on D7, D8, WordPress, Marketo, Eloqua and more

i18n, l10n, & t9n...?
oh my.

  • t9n, or Translation
    • Communicating written meaning from one language to another.
    • Only one element of localization
       
  • l10n, or Localization
    • actually adapting your site to a locale or target market.
    • Graphics, Layout, Date/Phone formats
       
  • i18n, or Internationalization
    • a design mentality for developing code that can be easily localized
    • "How READY are you for localization?"

The Alphabet Soup, translated.

The Four Major Players

  • Site Architecture
     
  • Workflows
     
  • Carefully Considered Code & Contrib
     
  • User Experience

Site Architecture

Content!

Make thoughtful plans for how to manage your content.
 

  • Use reasonable naming conventions.
     
  • Keep your content and your layouts separate.
     
  • Know what needs to be localized in a content type.
     
  • Where do links live? Inline WYSIWYG or in link fields?
     
  • Are there graphics with text that need to be localized?
     
  • Are there downloads that need to be localized?

Steak. Knife.

D7: Field vs. Node translation

Which is best for you and your client?

  • Field Translation
    • Creates a new field value with a unique language code, associated with the same NID
    • Only have one version of node for Content Administrators
       
  • Node Translation
    • Creates a new Node ID for each target language
    • End up with multiple versions of a node for Content Administrators

D8 + Paragraphs

The best, most frustrating thing to happen to translation in D8.
 

  • Find a solution that lets your customer request translations for the parent entity, that automatically pulls in and translates the child paragraphs.
     
  • Nested Paragraphs are great, but require thoughtful configuration. Plan extra time for this step.

 

Workflows

Development

  • Have a standardized Development workflow for your team.
     
  • Discuss where and how to test your localization + translation.
    • Recommend finding a way to psuedolocalize the site during the Dev process.
    • Psuedolocalize = Practice using your translation process with Machine Translation for instant feedback to make sure everything you expect to translate on a page, is translating.
    • Saves your client time and money in the long run.
    • Psuedolocalize with a non-Latin character set language like Arabic or Japanese.
  • After translations are live, have a plan for how new development can take place without disrupting the live translations.

Content Authoring

  • Where is your client authoring content?
     
  • Does your client need the ability to stage content
    for translation before it goes public on the live site?

Timelines

  • Plan extra time into your development cycle for Psuedolocalization and resolution of issues.
     
  • When working with a Language Service Provider, make sure everyone is on the same page with how long Human Translation will take. 
    • 1 Translator can translate 1500 words per day on average
    • 1 Reviewer can review 8000 words per day on average
    • 4 Translators is the max to put on a project for quality reasons
    • Throughput of 6000 words per day for quality.
       

Translation. Takes. Time.

The 4 C's

Coding for Localization

  • DO NOT HARD CODE STRINGS IN TEMPLATE FILES.
     
  • D7: t() is your friend. D8+Twig: trans() is your friend.
     
  • DO NOT HARD CODE STRINGS IN TEMPLATE FILES. EVER.
     
  • Most UI or template strings have to be downloaded into a .po file for translation with a vendor. This file can get pretty big because it also strings from Core. Be careful.
     
  • NO REALLY. DO NOT HARD CODE STRINGS IN TEMPLATE FILES. EEEEEEVEEEEER.

Choose Contrib Carefully

  • Support for i18n widespread in D8
     
  • Popular Contrib modules still do it better
     
  • Custom Ecosystems have more problems.

User Experience

Make it easy for your users.

If translation is hard, they wont do it.
 

  • Identify places where you can create a UI to ensure everything that makes up a single end-user facing page is translated at once.
     
  • Consider scripting initial pushes of entities for translation if there's a lot of content.
     
  • Make it easy to determine if content has changed since the last translation.

 

Obligatory Kitten.

aka: Ask me anything! (Ok, almost anything)

Learn more!

  • Find me or Christopher at the Lingotek booth!
     
  • Lingotek on Drupal
    www.drupal.org/project/lingotek
  • GALA - Globalization & Localization Association
    https://www.gala-global.org/
     
  • Contact me!
    email: ksenour@lingotek.com
    twitter: @kesoleil
Made with Slides.com