multilingual training

Upload: samuel-pardo-mesias

Post on 01-Jun-2018

233 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/9/2019 Multilingual Training

    1/291

    BUILDING

    MULTILINGUAL

    WEBSITES WITHDRUPAL 7

  • 8/9/2019 Multilingual Training

    2/291

    About us!

  • 8/9/2019 Multilingual Training

    3/291

    Getting to know you...

  • 8/9/2019 Multilingual Training

    4/291

    What are yourmultilingual needs?

  • 8/9/2019 Multilingual Training

    5/291

    What you need

  • 8/9/2019 Multilingual Training

    6/291

    Check A fresh Drupal 7 instance installed locally Download of module les

  • 8/9/2019 Multilingual Training

    7/291

    Previous experience Familiar with Drupal site building? Experience setting up content types and

    Views Optional: Experience creating a simple

    glue module or custom theme?

  • 8/9/2019 Multilingual Training

    8/291

    Whats in the box?

  • 8/9/2019 Multilingual Training

    9/291

    What you have Your local development environment Your manual Browser opened to drupal.org *

    * Youre always logged in, right?

  • 8/9/2019 Multilingual Training

    10/291

    Resources: Code & files

    Go to https://github.com/acquia/training/ Click themes download all les

    https://github.com/acquia/training/https://github.com/acquia/training/
  • 8/9/2019 Multilingual Training

    11/291

    What well do today

    Demos andpresentations

    Exercises inmanual

    Review andpractice

  • 8/9/2019 Multilingual Training

    12/291

    What are we building?

  • 8/9/2019 Multilingual Training

    13/291

    ScheduleWhat well do today

  • 8/9/2019 Multilingual Training

    14/291

    Schedule Setting up a multilingual site, installing a

    language Making the user interface multilingual Conguring multilingual content Building blocks for many languages Translation workows for content + UI Extending Drupal multilingual

  • 8/9/2019 Multilingual Training

    15/291

    MULTILINGUALUSER INTERFACES

    Session 1

  • 8/9/2019 Multilingual Training

    16/291

    MultilingualRequirements

  • 8/9/2019 Multilingual Training

    17/291

    aka i18n Developing a website that enables

    localization.

    Separating elements that should belocalized so they can be specied foreach locale.

    Internationalization

  • 8/9/2019 Multilingual Training

    18/291

    aka l10n Process of adapting a website for a

    certain locale including:

    Text and graphics Numeric, date and time formats Currency Time zones Legal requirements

    Localization

  • 8/9/2019 Multilingual Training

    19/291

    Translation

    The act of translating the text of a websiteinto another language Part of the localization process

  • 8/9/2019 Multilingual Training

    20/291

    A website that displays information inmultiple languages Involves internationalization of

    functionality and localization of contentand settings

    Multilingual Website

  • 8/9/2019 Multilingual Training

    21/291

    What kind of site are youbuilding?

    How many languages do you need tosupport?

    Does the user interface need to be fullytranslated?

    Are there elements other than text that

    have to be localized? Do you have content in all languages? Is

    all the content translated?

  • 8/9/2019 Multilingual Training

    22/291

    Lots of reasons for

    multilingual websites Reach a wider audience Search engine

    optimization Government regulations Company policy

  • 8/9/2019 Multilingual Training

    23/291

    Personnel

    User-Interface Translators

    Content Translators

    QA for each Language

    Translation Manager

    Resources

    Contributed Translations

    (localize.drupal.og) Machine Translation

    Multilingual Resources

  • 8/9/2019 Multilingual Training

    24/291

    What is MultilingualDrupal?

  • 8/9/2019 Multilingual Training

    25/291

    Foreign-language site

  • 8/9/2019 Multilingual Training

    26/291

    Multilingual Site

  • 8/9/2019 Multilingual Training

    27/291

    Multilingual Site withTranslation

  • 8/9/2019 Multilingual Training

    28/291

    Multilingual Modules Core modules:

    Locale Content Translation

    Contributed Modules: i18n (Internationalization)

    Entity Translation Others provide additional functionality

  • 8/9/2019 Multilingual Training

    29/291

    Installing a NewLanguage

  • 8/9/2019 Multilingual Training

    30/291

    Drupal out-of-the-box is in English Text in modules and themes Text stored in the database

    To change the language of Drupal youneed to install another language

    The Language of Drupal

  • 8/9/2019 Multilingual Training

    31/291

    Building a website inanother language

  • 8/9/2019 Multilingual Training

    32/291

    Configuration > Regional & language > Languages

    Installing Languages

  • 8/9/2019 Multilingual Training

    33/291

    Configuration > Regional & language > Languages

    Installing Languages

  • 8/9/2019 Multilingual Training

    34/291

    Configuring a Language

  • 8/9/2019 Multilingual Training

    35/291

    Language Detection

    English UI French UI

    When you arrive on the site, which language to show?

  • 8/9/2019 Multilingual Training

    36/291

  • 8/9/2019 Multilingual Training

    37/291

    Language Detection & Selection

    Using the URL as the primary method of language detection

  • 8/9/2019 Multilingual Training

    38/291

    Path Prefix vs. Domain

    Path prefix : example.com/fr/user Domain : exemple.com/user

    Domain : fr.example.com/user

  • 8/9/2019 Multilingual Training

    39/291

    Path Prefix vs. DomainConfiguration > Regional & language > Languages > French

    Configure the path prefix or domain for each language

  • 8/9/2019 Multilingual Training

    40/291

    Language Detection & Selection

    The default language is used if theres no language in the URL

  • 8/9/2019 Multilingual Training

    41/291

    Language Detection & Selection

    You can also enable other methods of detection

  • 8/9/2019 Multilingual Training

    42/291

    example.com/user

    Detection and Selection

  • 8/9/2019 Multilingual Training

    43/291

    Detection and Selectionexample.com/fr/user

  • 8/9/2019 Multilingual Training

    44/291

    Configuration > Regional & language > Languages

    Choosing a Default

  • 8/9/2019 Multilingual Training

    45/291

    Switching Languages

  • 8/9/2019 Multilingual Training

    46/291

    Your turn Install the French language on your site Congure the Detection and Selection

    settings Add a language switcher to the site.

  • 8/9/2019 Multilingual Training

    47/291

    Types of Text inDrupal

    f

  • 8/9/2019 Multilingual Training

    48/291

    Built-in interface (User-Defined)

    Types of Text Built-in interface (Code)

    Content

    Variables

    i18n Strings

  • 8/9/2019 Multilingual Training

    49/291

    Built-in interface (User-Defined)Built-in interface (Code)

    ContentVariables

    i18n Strings

    i18n Strings

    Translation Interfacesin Drupal

  • 8/9/2019 Multilingual Training

    50/291

    Translating Built-inInterface Text (fromCode)

  • 8/9/2019 Multilingual Training

    51/291

    Built-in Interface (Code)

  • 8/9/2019 Multilingual Training

    52/291

    Using Translationsfrom

    Localize.Drupal.org

  • 8/9/2019 Multilingual Training

    53/291

    Use Localize.Drupal.org Each language has a project Translators contribute translations in their

    language Some projects have better coverage than

    others.

  • 8/9/2019 Multilingual Training

    54/291

    Localize.Drupal.org Project Page

    h f l

  • 8/9/2019 Multilingual Training

    55/291

    What is a .po file? Text le storing the

    original text and thetranslations.

    A .pot le is atemplate le,containing only theoriginal text to be

    translated.

    l d f l l

  • 8/9/2019 Multilingual Training

    56/291

    Upload .po files to Drupal

  • 8/9/2019 Multilingual Training

    57/291

    OverridingTranslations in

    Drupal

    O idi T l i

  • 8/9/2019 Multilingual Training

    58/291

    Overriding a Translation

    S hi f h S i

  • 8/9/2019 Multilingual Training

    59/291

    Searching for the String

    Edi i h T l i

  • 8/9/2019 Multilingual Training

    60/291

    Editing the Translation

    T i h Ch

  • 8/9/2019 Multilingual Training

    61/291

    Testing the Change

    Y

  • 8/9/2019 Multilingual Training

    62/291

    Your turn

    Download translations fromlocalize.drupal.org and upload them toyour site

    Override a translation in Drupal

  • 8/9/2019 Multilingual Training

    63/291

    Use LocalizationUpdate

    L li ti U d t

  • 8/9/2019 Multilingual Training

    64/291

    Localization Update

    drupal.org/project/l10n_update

    L li ti U d t

  • 8/9/2019 Multilingual Training

    65/291

    Localization Update

    T l ti O i

  • 8/9/2019 Multilingual Training

    66/291

    Translation Overview

    Y t

  • 8/9/2019 Multilingual Training

    67/291

    Your turn

    Use the Localization Update module topull in more translations from Drupal.org

  • 8/9/2019 Multilingual Training

    68/291

    Use LocalizationUpdate

    L li ti U d t

  • 8/9/2019 Multilingual Training

    69/291

    Localization Update

    drupal.org/project/l10n_update

    Locali ation Update

  • 8/9/2019 Multilingual Training

    70/291

    Localization Update

    Translation Overview

  • 8/9/2019 Multilingual Training

    71/291

    Translation Overview

    Your turn

  • 8/9/2019 Multilingual Training

    72/291

    Your turn

    Use the Localization Update module topull in more translations from Drupal.org

  • 8/9/2019 Multilingual Training

    73/291

    Use LocalizationClient

    Use Localization Client

  • 8/9/2019 Multilingual Training

    74/291

    Use Localization Client

    drupal.org/project/l10n_client

    Sharing Your

  • 8/9/2019 Multilingual Training

    75/291

    Sharing YourTranslations

    Add your API key from localize.drupal.org to contributeyour translations back to the community.

  • 8/9/2019 Multilingual Training

    76/291

    Demo!

  • 8/9/2019 Multilingual Training

    77/291

    Translating Built-inInterface Text (User-

    Dened)

    User Defined Text

  • 8/9/2019 Multilingual Training

    78/291

    User-Defined Text

    Text entered via the Views UI

    User Defined Text

  • 8/9/2019 Multilingual Training

    79/291

    User-Defined Text Text entered via the Flag UI

    User Defined Text

  • 8/9/2019 Multilingual Training

    80/291

    Recent Articles Articlesrcents

    Original Text French Translation

    Added to theViews UI

    Added via theTranslate Interface UI

    Drupal Database

    User-Defined Text

    Translate Interface

  • 8/9/2019 Multilingual Training

    81/291

    Translate Interface

    Add the Translation

  • 8/9/2019 Multilingual Training

    82/291

    Add the Translation

    Refresh the Translations

  • 8/9/2019 Multilingual Training

    83/291

    Refresh the Translations

    Source Language

  • 8/9/2019 Multilingual Training

    84/291

    Source LanguageConfiguration > Regional and language > Multilingual settings > Strings

    Configuration in the

  • 8/9/2019 Multilingual Training

    85/291

    Configuration in the Default Language

  • 8/9/2019 Multilingual Training

    86/291

    Translating Variables

    Translating Variables

  • 8/9/2019 Multilingual Training

    87/291

    Translating Variables

    Selecting Variables

  • 8/9/2019 Multilingual Training

    88/291

    Configuration > Regional & language > Multilingual Settings > Variables

    Selecting Variables

    Translating Variables

  • 8/9/2019 Multilingual Training

    89/291

    Translating Variables

    Your turn

  • 8/9/2019 Multilingual Training

    90/291

    Your turn

    Add a site title and slogan and translatethem.

  • 8/9/2019 Multilingual Training

    91/291

    MULTILINGUALCONTENT

    Session 2

  • 8/9/2019 Multilingual Training

    92/291

    What contentexperience are you

    building?

    Fully Symmetric

  • 8/9/2019 Multilingual Training

    93/291

    Fully Symmetric Experience

    English Polish

    Asymmetric Experience

  • 8/9/2019 Multilingual Training

    94/291

    Asymmetric ExperienceEnglishFrench

    Mixed Language Experience

  • 8/9/2019 Multilingual Training

    95/291

    Mixed Language Experience

    French

    English

  • 8/9/2019 Multilingual Training

    96/291

    What aboutuntranslated

    content?

    Show Untranslated

  • 8/9/2019 Multilingual Training

    97/291

    Content

    Hide Untranslated

  • 8/9/2019 Multilingual Training

    98/291

    EnglishFrench

    Content

  • 8/9/2019 Multilingual Training

    99/291

    Content TranslationMethods

    Content Translation

  • 8/9/2019 Multilingual Training

    100/291

    Content Translation Methods

    Node-Level Translation Field-Level Translation

    Node 1(English)

    Node 2(French)

    Node 3(German)

    Node 1

    Title(English)

    Title(French)

    Title(German)

    Image

    Title(French)

    Title(English)

    Title(German)

    Image Image Image

  • 8/9/2019 Multilingual Training

    101/291

    Node-LevelTranslation

    Node-Level Translation

  • 8/9/2019 Multilingual Training

    102/291

    Content Translation module (Drupal core) New node for each translation Nodes are mapped together in a translation

    set

    ode eve a s at o

    Translating Nodes

  • 8/9/2019 Multilingual Training

    103/291

    g

    Node 1(English) Node 2(French)tnid = 1 tnid = 1

    Node 3(German)tnid = 1

    Translation Set

    Enabling Node-Level

  • 8/9/2019 Multilingual Training

    104/291

    gTranslation

    Translating a Node

  • 8/9/2019 Multilingual Training

    105/291

    g

    Node Properties

  • 8/9/2019 Multilingual Training

    106/291

    pIndependent node properties per language

  • 8/9/2019 Multilingual Training

    107/291

    Limitations of Node-Level

  • 8/9/2019 Multilingual Training

    108/291

    Everything is language-specic by default Need to synchronize data between

    nodes Too many nodes Doesnt work for modelling language-

    neutral things (groups of people,products, data)

    Only works for nodes

    Translation

    Your turn

  • 8/9/2019 Multilingual Training

    109/291

    Congure basic pages on your site to usenode-level translation

  • 8/9/2019 Multilingual Training

    110/291

    Field-LevelTranslation

    Field-Level Translation

  • 8/9/2019 Multilingual Training

    111/291

    Translation of elds instead of nodes Entity Translation module (contrib)

    provides the UI Fields are translatable in core

    Translating Fields

  • 8/9/2019 Multilingual Training

    112/291

    g

    A single node, with translations ofcertain fields.

    Title(English)

    Node 1

    Title(French)

    Title(German)

    Body(English)

    Body(French)

    Body(German)

    Image Author

    Post Date Facebook Likes

    Language Specific (Fields) Language Neutral

    Setting up Field

  • 8/9/2019 Multilingual Training

    113/291

    Translation

    Setting up Field

  • 8/9/2019 Multilingual Training

    114/291

    Translation

    Translating the Title

  • 8/9/2019 Multilingual Training

    115/291

    g

    Adding a Translation

  • 8/9/2019 Multilingual Training

    116/291

    Adding a Translation

  • 8/9/2019 Multilingual Training

    117/291

    Comment Filtering

  • 8/9/2019 Multilingual Training

    118/291

    When does it make sense to show allcomments regardless of language?

    Would you ever consider translatingcomments?

    Do comments have language neutralelds that are valuable to users who dontspeak the language?

    Comment Filtering

  • 8/9/2019 Multilingual Training

    119/291

    Comment Filtering

  • 8/9/2019 Multilingual Training

    120/291

    Language Neutral

  • 8/9/2019 Multilingual Training

    121/291

    Features Flags

    Voting Data

    Signups Nodequeue or

    Draggable ViewsData

    Moderation /Scheduler settings

    Entity references

    Panels nodes layout

    Content Access Social Media

    Integration (AddThis)

    Views BulkOperations

    Your turn

  • 8/9/2019 Multilingual Training

    122/291

    Set up eld-level translation for articles Translate some article elds and lter your

    comments by language

  • 8/9/2019 Multilingual Training

    123/291

    Choosing aTranslation Method

    Event

  • 8/9/2019 Multilingual Training

    124/291

    Event

  • 8/9/2019 Multilingual Training

    125/291

    Language-specific

    Title Description What to bring URL

    Language-neutral

    Image Sign-up List Sign-up Deadline Published Status Date/Time

    Location Organizer

    Issue

  • 8/9/2019 Multilingual Training

    126/291

    Issue

  • 8/9/2019 Multilingual Training

    127/291

    Language-specific Title Description URL

    Language-neutral Bookmark (flag) Status

    Priority Assignee Comments

    List Item

  • 8/9/2019 Multilingual Training

    128/291

  • 8/9/2019 Multilingual Training

    129/291

  • 8/9/2019 Multilingual Training

    130/291

    Planning ContentTranslation

    Your turn: Planningl l l

  • 8/9/2019 Multilingual Training

    131/291

    Multilingual Content

    Destination Page

    Destination Name

    Photos

    User Blog Posts

    User Bookmarks

    Articles

    User Blog Post

    Author Related Destination

    Comments

    Blog Content

    Content Translation

  • 8/9/2019 Multilingual Training

    132/291

    MethodsNode-Level Translation Field-Level Translation

    Node 1

    (English)

    Node 2

    (French)

    Node 3

    (German)

    Node 1

    Title(English)

    Title(French)

    Title(German)

    Image

    Title(French)

    Title(English)

    Title(German)

    Image Image Image

    Questions to Ask

  • 8/9/2019 Multilingual Training

    133/291

    Will this content be translated? If not, will it be displayed in other

    languages?

    Which translation method to use? Which elds need translation/localization? Are entities referenced from this content

    type translated?

    Your turn

  • 8/9/2019 Multilingual Training

    134/291

    Plan out the addition of destination pagesand user blogs to the GlobalTravelwebsite

    Map out what eld types/translationmethods youll use the represent thiscontent

    Report back to the group

  • 8/9/2019 Multilingual Training

    135/291

    Translating OtherEntity Types

    Translate Core Entities

  • 8/9/2019 Multilingual Training

    136/291

    Translation of entities from core modules

    Translate Users

  • 8/9/2019 Multilingual Training

    137/291

    Permissions

    Configure Fields Translate Users

    Translate Users:U C

  • 8/9/2019 Multilingual Training

    138/291

    Use Cases Team member proles Multilingual community site Users who offer a service to users in more

    than one language

    Translate Users:D b k

  • 8/9/2019 Multilingual Training

    139/291

    Drawbacks Single permission for users (can translate

    any user entity)

    UI is not self-explanatory

    Translate Terms

  • 8/9/2019 Multilingual Training

    140/291

    Configure Fields

    Permissions

    Translate Terms

    Translate Terms:U C

  • 8/9/2019 Multilingual Training

    141/291

    Use Cases Any vocabulary that is symmetric across

    languages: Categories Destinations Medical Topics

    Translate Terms:D b k

  • 8/9/2019 Multilingual Training

    142/291

    Drawbacks Time-consuming to use translation UI Single permission for translating all

    vocabularies Alphabetical listings in Views will use

    source language

    Translate Comments

  • 8/9/2019 Multilingual Training

    143/291

    Configure Fields

    Permissions

    Translate Comments

    Translate Comments:U C

  • 8/9/2019 Multilingual Training

    144/291

    Use Cases Travel website (machine translation of

    reviews)

    Government website (human translationof questions + answers)

    Translate Other Entities

  • 8/9/2019 Multilingual Training

    145/291

    Entities need tohave elds andincludetranslationsupport inhook_entity_info()

    Translation of entities from contributed modules

    Product

  • 8/9/2019 Multilingual Training

    146/291

    Product

  • 8/9/2019 Multilingual Training

    147/291

    Language-specific

    Title Description URL

    Language-neutral

    SKU Status Image Price Quantity Remaining

    Shopping Cart Status

    Translatable CommerceProduct

  • 8/9/2019 Multilingual Training

    148/291

    Product

    Product

  • 8/9/2019 Multilingual Training

    149/291

    Product

  • 8/9/2019 Multilingual Training

    150/291

    Your turn

  • 8/9/2019 Multilingual Training

    151/291

    Translate categoriesusing entity translation

  • 8/9/2019 Multilingual Training

    152/291

    Multilingual Views

    Mixed-Language Views

  • 8/9/2019 Multilingual Training

    153/291

    French

    English

    Do you want the viewto show untranslatedcontent?

    Filtering by Language

  • 8/9/2019 Multilingual Training

    154/291

    Entity Translation Content Translation

    Field Options in Views

  • 8/9/2019 Multilingual Training

    155/291

  • 8/9/2019 Multilingual Training

    156/291

  • 8/9/2019 Multilingual Training

    157/291

    Translating theHomepage

    Multilingual Homepage

  • 8/9/2019 Multilingual Training

    158/291

    Options: Filter content to display in the current

    language only

    Make the default frontpage a multilingualvariable + create a page for each language Set up a multilingual view at a single path

    to use as the homepage

    Multilingual Selection

  • 8/9/2019 Multilingual Training

    159/291

    Translate the Frontpage

  • 8/9/2019 Multilingual Training

    160/291

    Your turn

  • 8/9/2019 Multilingual Training

    161/291

    Congure multilingual selection options Set up a the default frontpage as a

    multilingual variable

  • 8/9/2019 Multilingual Training

    162/291

    MULTILINGUALSTRUCTURE

    Session 3

    Overview

  • 8/9/2019 Multilingual Training

    163/291

    What else in Drupal needs translation? Field settings Blocks

    Paths Date Formats Emails to Users Menus

  • 8/9/2019 Multilingual Training

    164/291

  • 8/9/2019 Multilingual Training

    165/291

    Translating FieldSettings

    Field Settings

  • 8/9/2019 Multilingual Training

    166/291

    /fr/node/add/article

    Label

    Description

    Translating Field Settings

  • 8/9/2019 Multilingual Training

    167/291

    Field Translation module (i18n) Translate eld settings

    Label

    Description Options Default Value

    Only core eld settings

    Translate Interface

  • 8/9/2019 Multilingual Training

    168/291

    Field Translate Tab

  • 8/9/2019 Multilingual Training

    169/291

    Translate Field Settings

  • 8/9/2019 Multilingual Training

    170/291

    Translating Options

  • 8/9/2019 Multilingual Training

    171/291

    Field Display Formatters

  • 8/9/2019 Multilingual Training

    172/291

    Change the formatter so the translated field value is displayed

    Your turn

  • 8/9/2019 Multilingual Training

    173/291

    Translate eld settings on your articlecontent type.

  • 8/9/2019 Multilingual Training

    174/291

    Translating Blocks

    Translating Blocks

  • 8/9/2019 Multilingual Training

    175/291

    Block Translation module (i18n) Make blocks translatable

    Display blocks only in certain languages

    Translating Blocks

  • 8/9/2019 Multilingual Training

    176/291

    Translating Blocks

  • 8/9/2019 Multilingual Training

    177/291

    Translating Blocks

  • 8/9/2019 Multilingual Training

    178/291

    Translating Blocks

  • 8/9/2019 Multilingual Training

    179/291

    Create a translatable block for alllanguages on your site.

    Create a block targeting a speciclanguage.

  • 8/9/2019 Multilingual Training

    180/291

    Translating Paths

    Path Translation

  • 8/9/2019 Multilingual Training

    181/291

    Pathauto Patterns

  • 8/9/2019 Multilingual Training

    182/291

    Create a pathauto pattern per language

    Transliteration

  • 8/9/2019 Multilingual Training

    183/291

    Articles Rcents = articles-recents

    Transliteration

  • 8/9/2019 Multilingual Training

    184/291

    Articles rcents = articles-recents

    Your turnh f l l l

  • 8/9/2019 Multilingual Training

    185/291

    Set up pathauto for multilingual content Use transliteration for pathauto Use the Path Translation module for the

    Recent Articles view

  • 8/9/2019 Multilingual Training

    186/291

    Translating MenusM T l i d l (i18 )

  • 8/9/2019 Multilingual Training

    187/291

    Menu Translation module (i18n) Menu per language OR Menu items per language

    Translating Menus

  • 8/9/2019 Multilingual Training

    188/291

    Translating Menus

  • 8/9/2019 Multilingual Training

    189/291

    Menu Link to a Node

    Translating Menu Items

  • 8/9/2019 Multilingual Training

    190/291

    Menu Link to a Single-Language Pagei.e. Events View

    Translating Menu Items

  • 8/9/2019 Multilingual Training

    191/291

    Menu Link to a Generic Pagei.e. Home Page

    Translating Menu Items

  • 8/9/2019 Multilingual Training

    192/291

  • 8/9/2019 Multilingual Training

    193/291

    TRANSLATINGCUSTOM AND

    CONTRIB MODULES

    Session 4

  • 8/9/2019 Multilingual Training

    194/291

    Modules to ExtendDrupals Multilingual

    Functionality

    Adding Functionality

  • 8/9/2019 Multilingual Training

    195/291

    +Site MapContact Form Meta Tags

    Contact Form

  • 8/9/2019 Multilingual Training

    196/291

    Translation of formlabels

    Recipients perlanguage?

    What other languageis involved?

    Meta Tags

  • 8/9/2019 Multilingual Training

    197/291

    How are meta tags attached to each node? Will translators have permission to add

    them?

  • 8/9/2019 Multilingual Training

    198/291

    Is this modulemultilingual-

    compatible?

    Your turn Take a sample module youre considering

  • 8/9/2019 Multilingual Training

    199/291

    Take a sample module you re consideringusing for your current project.

    How would you determine whether itsmultilingual-compatible?

    Your turn What type of text does the module introduce?

  • 8/9/2019 Multilingual Training

    200/291

    What type of text does the module introduce?

    Does the module introduce data that will need tobe translated that isnt an entity?

    Does the module add variables to the system

    table? Does the module provide any new content

    types?

    How many of the built-in module strings aretranslated for French?

    Can you nd any unresolved multilingual-relatedissues in the modules issue queue?

  • 8/9/2019 Multilingual Training

    201/291

    Creating a gluemodule for a

    multilingual website

    Using the t function

  • 8/9/2019 Multilingual Training

    202/291

    print t(Welcome to GlobalTravel);

    !variable

  • 8/9/2019 Multilingual Training

    203/291

  • 8/9/2019 Multilingual Training

    204/291

  • 8/9/2019 Multilingual Training

    205/291

    The %name-from and %name-to are emphasized text

    (wrapped in )

    Using Drupal.t in jQuery

    http://php.net/arrayhttp://php.net/array
  • 8/9/2019 Multilingual Training

    206/291

    var txt = Drupal.t("You are viewing the site

    in !language.", params);

  • 8/9/2019 Multilingual Training

    207/291

    Multilingual Theming

    Translate text that isnt visible

    Theming Tips

  • 8/9/2019 Multilingual Training

    208/291

    Translate text that isn t visible Keep text out of images Use selectors for languages (only when

    absolutely necessary) Keep text overrides in theme preprocess

    functions/text les

    Use the t function in the theme

    English French

    Space Requirements

  • 8/9/2019 Multilingual Training

    209/291

    Right to Left LanguagesEnglish

  • 8/9/2019 Multilingual Training

    210/291

    Hebrew

  • 8/9/2019 Multilingual Training

    211/291

    Localizing DateFormats

    What are date formats? Friday, July 23rd, 2012 6:30pm

  • 8/9/2019 Multilingual Training

    212/291

    y, y , p vendredi le 23 juillet, 2012 18:30 07/23/2012 6:30pm

    2012-07-23 18:30

  • 8/9/2019 Multilingual Training

    213/291

    Define new formats

  • 8/9/2019 Multilingual Training

    214/291

    Localizing Date Formats

  • 8/9/2019 Multilingual Training

    215/291

    Date formats in Views

  • 8/9/2019 Multilingual Training

    216/291

    Your turn Create a localized date format for French

  • 8/9/2019 Multilingual Training

    217/291

    Add dates to the Recent Articles View

  • 8/9/2019 Multilingual Training

    218/291

    User LanguagePreferences

    User Language Preference

  • 8/9/2019 Multilingual Training

    219/291

    Set on Account Creation

  • 8/9/2019 Multilingual Training

    220/291

    Used in Language Detection

  • 8/9/2019 Multilingual Training

    221/291

    Language Preference forUser Emails

  • 8/9/2019 Multilingual Training

    222/291

  • 8/9/2019 Multilingual Training

    223/291

  • 8/9/2019 Multilingual Training

    224/291

    TranslationWorkows

    Cost of Translation Time-consuming

  • 8/9/2019 Multilingual Training

    225/291

    Expensive How can you speed up the process and

    reduce the amount of text to betranslated?

    What are TranslationWorkflows?

  • 8/9/2019 Multilingual Training

    226/291

    Translator

  • 8/9/2019 Multilingual Training

    227/291

  • 8/9/2019 Multilingual Training

    228/291

    Discussion Which approach would work better at

  • 8/9/2019 Multilingual Training

    229/291

    your organization?

  • 8/9/2019 Multilingual Training

    230/291

    Translation Workflow forUI Strings

  • 8/9/2019 Multilingual Training

    231/291

    1. Pull in contributed translationsfrom localize.drupal.org

    2. Override translations +add translations of custom strings

    Translator

  • 8/9/2019 Multilingual Training

    232/291

    Overriding/AddingTranslations Outside

    of Drupal

  • 8/9/2019 Multilingual Training

    233/291

    Translations Spreadsheet

  • 8/9/2019 Multilingual Training

    234/291

    Translating Outside Drupal CSV with Translations

  • 8/9/2019 Multilingual Training

    235/291

    Translator

    CSV Template.po file for each language

    Re-using YourTranslations

  • 8/9/2019 Multilingual Training

    236/291

  • 8/9/2019 Multilingual Training

    237/291

    Translating User-Dened Strings

  • 8/9/2019 Multilingual Training

    238/291

    Other User-Defined Strings

  • 8/9/2019 Multilingual Training

    239/291

    Block text Menu items Field settings

    Translate Interface

  • 8/9/2019 Multilingual Training

    240/291

    Translate Tab

  • 8/9/2019 Multilingual Training

    241/291

  • 8/9/2019 Multilingual Training

    242/291

    User-Defined Strings

  • 8/9/2019 Multilingual Training

    243/291

    Challenges Giving translators access to block/eld/

  • 8/9/2019 Multilingual Training

    244/291

    menu conguration Allowing translators to use all input formats Changing the original values Changing the default language

  • 8/9/2019 Multilingual Training

    245/291

    TranslationWorkows for

    Content

    Content TranslationWorkflow

  • 8/9/2019 Multilingual Training

    246/291

    Author Translator

    1. Author creates a new node 2. Translators adds a translation

  • 8/9/2019 Multilingual Training

    247/291

    TranslationWorkows for

    Content:Translating in Drupal

    Translation Interface in Drupal

  • 8/9/2019 Multilingual Training

    248/291

    Node-Level vs. Field-LevelTranslation

  • 8/9/2019 Multilingual Training

    249/291

    Field-Level Translation Node-Level Translation

    Creating a TranslationWorkflow from Scratch

  • 8/9/2019 Multilingual Training

    250/291

    Permissions for translators Rules and Flag to trigger translation

    requests Views for Translators

    Permissions forTranslation

  • 8/9/2019 Multilingual Training

    251/291

    Content Translation: Translators need tobe able to create content

    Entity Translation: Permission to edit the

    entity No granular translation permissions per

    content type (use i18n_access)

    Challenges Different UI for Entity Translation/Content

    l ( f )

  • 8/9/2019 Multilingual Training

    252/291

    Translation (Confusing) Professional translators need to learn

    Drupal Need to build system for reviewing

    translations

    Typical UI for Translators

  • 8/9/2019 Multilingual Training

    253/291

    Your turn Set up permissions for translators

    C i f l

  • 8/9/2019 Multilingual Training

    254/291

    Create a view for translators

  • 8/9/2019 Multilingual Training

    255/291

    TranslationWorkows for

    Content:TMGMT Module

    Translation ManagementTool (TMGMT)

  • 8/9/2019 Multilingual Training

    256/291

    drupal.org/project/tmgmt

    Translation ManagementTool (TMGMT)

  • 8/9/2019 Multilingual Training

    257/291

    Drupal

    Tr anslator s

    http://drupal.org/project/tmgmt_oht
  • 8/9/2019 Multilingual Training

    258/291

    Microsoft (Bing) Translator (machine)

    Google Translate (ma chine)

    Nativy (human)

    MyGengo (human)

    Supertext (human)

    One Hour Translation (human)

    Microsoft Translator

    http://drupal.org/project/tmgmt_ohthttp://drupal.org/project/tmgmt_googlehttp://drupal.org/project/tmgmt_ohthttp://drupal.org/project/tmgmt_ohthttp://drupal.org/project/tmgmt_supertexthttp://drupal.org/project/tmgmt_supertexthttp://drupal.org/project/tmgmt_mygengohttp://drupal.org/project/tmgmt_mygengohttp://drupal.org/project/tmgmt_nativyhttp://drupal.org/project/tmgmt_nativyhttp://drupal.org/project/tmgmt_googlehttp://drupal.org/project/tmgmt_googlehttp://drupal.org/project/tmgmt_microsofthttp://drupal.org/project/tmgmt_microsoft
  • 8/9/2019 Multilingual Training

    259/291

    Microsoft Translator

  • 8/9/2019 Multilingual Training

    260/291

  • 8/9/2019 Multilingual Training

    261/291

  • 8/9/2019 Multilingual Training

    262/291

  • 8/9/2019 Multilingual Training

    263/291

    Review Translation

  • 8/9/2019 Multilingual Training

    264/291

  • 8/9/2019 Multilingual Training

    265/291

    Translate in Bulk

  • 8/9/2019 Multilingual Training

    266/291

    Translation Jobs

  • 8/9/2019 Multilingual Training

    267/291

    Benefits of TMGMT Field-level and node-level translation Also translate i18n strings (in

  • 8/9/2019 Multilingual Training

    268/291

    Also translate i18n strings (indevelopment)

    Easy to congure Human/machine translator plugins Write your own translator plugin

  • 8/9/2019 Multilingual Training

    269/291

    TranslationWorkows forContent:Lingotek Module

    Lingotek Module

  • 8/9/2019 Multilingual Training

    270/291

    drupal.org/project/lingotek

    Lingotek

  • 8/9/2019 Multilingual Training

    271/291

    Drupal

    IndividualTranslator

    Create a Lingotek Account

  • 8/9/2019 Multilingual Training

    272/291

    Connect to MachineTranslation Tool

  • 8/9/2019 Multilingual Training

    273/291

  • 8/9/2019 Multilingual Training

    274/291

  • 8/9/2019 Multilingual Training

    275/291

  • 8/9/2019 Multilingual Training

    276/291

    Lingotek Translation Tool Enables translation at the eld-level Need to ag elds as being translatable

  • 8/9/2019 Multilingual Training

    277/291

    Need to ag elds as being translatable

  • 8/9/2019 Multilingual Training

    278/291

    Translating a NodeSwitch the site to French, and youll see a message:

  • 8/9/2019 Multilingual Training

    279/291

    Click on the link to go to the Lingotek Translation UI

    Updating the TranslationIn order to accept the translation and publish

    it to the site you have to click Update

  • 8/9/2019 Multilingual Training

    280/291

    it to the site, you have to click Update .

  • 8/9/2019 Multilingual Training

    281/291

    Project Status

  • 8/9/2019 Multilingual Training

    282/291

  • 8/9/2019 Multilingual Training

    283/291

  • 8/9/2019 Multilingual Training

    284/291

    Importing Content

    Modules for Importing Migrate + Migrate Extras Entity Translation: Feeds

  • 8/9/2019 Multilingual Training

    285/291

    Entity Translation: Feeds

    Session 8

  • 8/9/2019 Multilingual Training

    286/291

    REVIEW

    Session 8

    Multilingual Checklist Installing languages Translating the Interface

  • 8/9/2019 Multilingual Training

    287/291

    g Translating content Setting up multilingual building blocks Conguring a translation workow Auditing/conguring contrib modules

  • 8/9/2019 Multilingual Training

    288/291

    What to Avoid? Changing the default language Passing variables through the t function

  • 8/9/2019 Multilingual Training

    289/291

    g g Putting non-English text in code

    http://acquia com/training-feedback

    http://acquia.com/training-feedback
  • 8/9/2019 Multilingual Training

    290/291

    Feedback please!http://acquia.com/training feedback

    http://acquia.com/training-feedbackhttp://acquia.com/training-feedback
  • 8/9/2019 Multilingual Training

    291/291

    Q + A