SlideShare una empresa de Scribd logo
1 de 39
Getting Started withDrupal TranslationsBy Steven Jacksonand Trent WymanMediacurrent Consultants Drupalcamp Atlanta 2010 October 2, 2010
Overview This presentation will cover the basic steps for setting up a multi-lingual site in Drupal Discuss contrib modules needed Cover basic configurations for content type language support Lessons learned from past projects      (Do’s & Don’ts) `
Introduction / Background Trent Wyman Occupation: 	- Drupal Developer &Theming Consultant Drupal Experience: 	- Began experimenting with Drupal in version 4.7 	- Employed as a full-time Drupal Developer & Theming Consultant since version 5 Company: 	- Mediacurrent (www.mediacurrent.com) About Mediacurrent: 	- Web development firm located in Alpharetta, GA 	- Focused solely on Drupal Development, customization, & consultation `
Multi-Language Contrib Modules Download the following contrib modules: Internationalization Package (i18n) 	- http://drupal.org/project/i18n i18n Auto Translate 	- http://drupal.org/project/i18n_auto Language Switcher Dropdown (optional) 	- http://drupal.org/project/lang_dropdown `
Enable Drupal Core Modules Go to the modules list page in Drupal admin and enable the following modules under the “Core – optional” section: Locale Content Translations www.yoursite.com/admin/build/modules `
www.yoursite.com/admin/build/modules `
Install Contrib Modules Install the i18n, i18 Auto Translate, & Language Switcher Dropdown modules into your site’s modules folder.  www.yoursite.comitesllodulesontribbr />`
Get Your Language Template(s) Choose & download the language(s) you want your site translated into. (http://drupal.org/project/Translations) Unpack the .tar file(s) and install into the i18n/translationscontrib module folder. 	(sitesllodulesontrib18nranslations) `
Enable Contrib Modules www.yoursite.com/admin/build/modules (“Multilanguage”) Auto draft translation Block translation CCK translation (if using custom CCK fields and fieldgroups) Content type translation Internationalization Language switcher dropdown (if you prefer a dropdown selector v/s Locale’s text links) Menu translation Poll aggregate (if translating polls) Profile translate (if translating user profiles) String translation Synchronize translations Taxonomy translation Views translation `
www.yoursite.com/admin/build/modules `
Configure Installed Language(s) Go to the Languages Settings page in Drupal admin and select the “Configure” tab. Then, under the “Language negotiation” subtab choose the “Path prefix only” option. www.yoursite.com/admin/settings/language `
www.yoursite.com/admin/settings/language `
Enable Installed Language(s) Now, select the “List” tab on the Languages Settings page and enable the languages you installed. Here, you can also set your site’s default language (if other than English). www.yoursite.com/admin/settings/language `
www.yoursite.com/admin/settings/language `
Enable Language Switcher Go to the Blocks admin page and enable the language switcher under the “Disabled” section by assigning the block to your preferred Region. Choose “Language switcher” if only using Locale (core). Choose “Language switcher dropdown” if using the dropdown module (contrib). www.yoursite.com/admin/build/block `
www.yoursite.com/admin/build/block `
Translating Your Site’s Content Go to the “Content types” list page and select the content types that you want translated. Click the “edit” link corresponding to the content type. www.yoursite.com/admin/content/types `
www.yoursite.com/admin/content/types `
Translating Your Site’s Content Next, on the content type’s “Edit” page refer to the “Workflow” section and choose “Enabled with translation”. Then click the “Save” button at the bottom of the “Edit” page. Example path: www.yoursite.com/admin/content/node-type/blog `
www.yoursite.com/admin/content/node-type/blog `
Create New Content Now you can create and translate new content for the content type you enabled for multi-language support. Go to the “Create Content” page, select the content type and then choose “English” (or your default language) from the “Language” dropdown selector. Example path: www.yoursite.com/node/add/blog `
www.yoursite.com/node/add/blog `
Translate New Content After choosing the desired language from the “Language” selector, save the node. Once you have saved the node, click the “Translate” tab located below the content’s title. If this is new content, translations will already be available.  `
Example path:www.yoursite.com/node/767/translate `
Translate Pre-existing Content Translations in Drupal are not retro-active. For content that existed before you enabled translations you will need to manually translate those nodes. Click the “Add translation” link next to the desired language. Manually insert your translations into the “Title”, “Body”, etc. fields and save the node. `
Example path:www.yoursite.com/node/56/translate `
Switching Between Translations Once you have your content translated, your users will be able to toggle between the languages by selecting the language links available in your “Language Selector” block (displayed within the Region you assigned on the Blocks admin page). Example of language selector in Header Region: `
Translating Menus & Menu Items Due to limited time I will not go into menu translations for this presentation. For info on how to translate menus and menu items you can refer to the following online tutorials: http://drupal-translation.com/content/adding-menu http://becircle.com/translating_menus_drupal_6 http://drupal.org/node/275705 `
Introduction / Background Steven Jackson Occupation: 	- Drupal Consultant Drupal Experience: 	- Mainly backend module development 	- Server deployment `
How to make it work, 1 Start with a plan Start with using i18n Don’t do it as an afterthought Know what languages you are using Try to keep as much in Drupal – hardcode as little as necessary `
How to make it work, 2 Put what you can in the node Translate interface is good but may be cumbersome to search Might have duplicate or similar text but in different locations If doing after the fact, make node_clone your friend `
How to make it work, 3 If a social site, setup content_profile Can then translate profile content in same manner Coordinate with someone who knows the languages `
How to make it break == !previousSlides Don’t plan ahead, buy lots of Tylenol Don’t wrap module text in t() Write output in direct PHP instead of via Drupal `
What can go wrong Server not rendering special characters Pathauto, url_alias may create new path when saving node after initial creation Have to go into db and clear aliases and auto urls for content Get a lot of some-path-name-0 `
How fix what you break, 1 IF PHP You’ll want to parse the URL to get language or get $language->language if/switch language to output correct language text Make friends with regex, might have to output some special characters that some PHP functions aren’t generating (like date()) `
How fix what you break, 2 IF PATHAUTO, URL_ALIAS Often ran into new url being generated when merely updating content Go into db, remove path_auto, url alias associations Reassociate nodes via the translate tab `
Pros / Cons Pros Well, you have a multilingual site Only had to setup one code base Cons If not planning ahead can be a headache Might feel like you created multiple sites despite auto generation `
Things to Remember Setup translation auto-generation If doing after the fact, setup translation associations Setup each view to be based on user’s current language in filters `
Questions / Comments? `

Más contenido relacionado

La actualidad más candente

1 introductin to HTML
1 introductin to HTML1 introductin to HTML
1 introductin to HTMLJaved Khan
 
IN LIVING CODING
IN LIVING CODINGIN LIVING CODING
IN LIVING CODINGkdhicks2
 
WordPress plugin #1
WordPress plugin #1WordPress plugin #1
WordPress plugin #1giwoolee
 
Object oriented language
Object oriented languageObject oriented language
Object oriented languageFirman Syah
 
Debugging Drupal - How to Debug your Drupal Application
Debugging Drupal - How to Debug your Drupal ApplicationDebugging Drupal - How to Debug your Drupal Application
Debugging Drupal - How to Debug your Drupal ApplicationZyxware Technologies
 
HTML 5 Step By Step - Ebook
HTML 5 Step By Step - EbookHTML 5 Step By Step - Ebook
HTML 5 Step By Step - EbookScottperrone
 
Going global with international SEO - Deepcrawl at Digital Growth Day
Going global with international SEO - Deepcrawl at Digital Growth DayGoing global with international SEO - Deepcrawl at Digital Growth Day
Going global with international SEO - Deepcrawl at Digital Growth DayOMN
 
Php ch-1_server_side_scripting_basics
Php ch-1_server_side_scripting_basicsPhp ch-1_server_side_scripting_basics
Php ch-1_server_side_scripting_basicsbantamlak dejene
 
Web I - 02 - XHTML Introduction
Web I - 02 - XHTML IntroductionWeb I - 02 - XHTML Introduction
Web I - 02 - XHTML IntroductionRandy Connolly
 
Essential Javascript -- A Javascript <b>Tutorial</b>
Essential Javascript -- A Javascript <b>Tutorial</b>Essential Javascript -- A Javascript <b>Tutorial</b>
Essential Javascript -- A Javascript <b>Tutorial</b>tutorialsruby
 
Introduction to Drupal, Training conducted at MES-AIMAT, Aluva on 2013-09-26
Introduction to Drupal, Training conducted at MES-AIMAT, Aluva on 2013-09-26Introduction to Drupal, Training conducted at MES-AIMAT, Aluva on 2013-09-26
Introduction to Drupal, Training conducted at MES-AIMAT, Aluva on 2013-09-26Zyxware Technologies
 
4 internet programming
4 internet programming4 internet programming
4 internet programmingsoner_kavlak
 
First Pages HTML ASP-ASP.NET
First Pages HTML ASP-ASP.NETFirst Pages HTML ASP-ASP.NET
First Pages HTML ASP-ASP.NETsunmitraeducation
 

La actualidad más candente (20)

1 introductin to HTML
1 introductin to HTML1 introductin to HTML
1 introductin to HTML
 
Xhtml 2010
Xhtml 2010Xhtml 2010
Xhtml 2010
 
IN LIVING CODING
IN LIVING CODINGIN LIVING CODING
IN LIVING CODING
 
WordPress plugin #1
WordPress plugin #1WordPress plugin #1
WordPress plugin #1
 
WordPress Complete Manual in XAMPP
WordPress Complete Manual in XAMPPWordPress Complete Manual in XAMPP
WordPress Complete Manual in XAMPP
 
Object oriented language
Object oriented languageObject oriented language
Object oriented language
 
Debugging Drupal - How to Debug your Drupal Application
Debugging Drupal - How to Debug your Drupal ApplicationDebugging Drupal - How to Debug your Drupal Application
Debugging Drupal - How to Debug your Drupal Application
 
Css, xhtml, javascript
Css, xhtml, javascriptCss, xhtml, javascript
Css, xhtml, javascript
 
Web page concept final ppt
Web page concept  final pptWeb page concept  final ppt
Web page concept final ppt
 
HTML 5 Step By Step - Ebook
HTML 5 Step By Step - EbookHTML 5 Step By Step - Ebook
HTML 5 Step By Step - Ebook
 
HTML - 5 - Introduction
HTML - 5 - IntroductionHTML - 5 - Introduction
HTML - 5 - Introduction
 
Going global with international SEO - Deepcrawl at Digital Growth Day
Going global with international SEO - Deepcrawl at Digital Growth DayGoing global with international SEO - Deepcrawl at Digital Growth Day
Going global with international SEO - Deepcrawl at Digital Growth Day
 
Php ch-1_server_side_scripting_basics
Php ch-1_server_side_scripting_basicsPhp ch-1_server_side_scripting_basics
Php ch-1_server_side_scripting_basics
 
Web I - 02 - XHTML Introduction
Web I - 02 - XHTML IntroductionWeb I - 02 - XHTML Introduction
Web I - 02 - XHTML Introduction
 
Essential Javascript -- A Javascript <b>Tutorial</b>
Essential Javascript -- A Javascript <b>Tutorial</b>Essential Javascript -- A Javascript <b>Tutorial</b>
Essential Javascript -- A Javascript <b>Tutorial</b>
 
Introduction to Drupal, Training conducted at MES-AIMAT, Aluva on 2013-09-26
Introduction to Drupal, Training conducted at MES-AIMAT, Aluva on 2013-09-26Introduction to Drupal, Training conducted at MES-AIMAT, Aluva on 2013-09-26
Introduction to Drupal, Training conducted at MES-AIMAT, Aluva on 2013-09-26
 
4 internet programming
4 internet programming4 internet programming
4 internet programming
 
SubjectsPlus Manual in Compatible with XAMPP
SubjectsPlus Manual in Compatible with XAMPPSubjectsPlus Manual in Compatible with XAMPP
SubjectsPlus Manual in Compatible with XAMPP
 
First Pages HTML ASP-ASP.NET
First Pages HTML ASP-ASP.NETFirst Pages HTML ASP-ASP.NET
First Pages HTML ASP-ASP.NET
 
Html and Xhtml
Html and XhtmlHtml and Xhtml
Html and Xhtml
 

Similar a Drupalcamp Atlanta 2010 Internationalization Presentation

Multilingual Drupal presentation from "Do it With Drupal"
Multilingual Drupal presentation from "Do it With Drupal"Multilingual Drupal presentation from "Do it With Drupal"
Multilingual Drupal presentation from "Do it With Drupal"Gábor Hojtsy
 
Make Your WordPress Site Multilingual with Polylang
Make Your WordPress Site Multilingual with PolylangMake Your WordPress Site Multilingual with Polylang
Make Your WordPress Site Multilingual with PolylangMarshall Reyher
 
Drupal Development w/ PhpStorm and Xdebug
Drupal Development w/ PhpStorm and XdebugDrupal Development w/ PhpStorm and Xdebug
Drupal Development w/ PhpStorm and XdebugChris Haynes
 
Drupal Checklist for Site Builder and Web admin
Drupal Checklist for Site Builder and Web adminDrupal Checklist for Site Builder and Web admin
Drupal Checklist for Site Builder and Web adminAdolfo Nasol
 
Cms drupal installation & configuration anil mishra
Cms drupal installation & configuration   anil mishraCms drupal installation & configuration   anil mishra
Cms drupal installation & configuration anil mishraAnil Mishra
 
5 Important Tools for Drupal Development
5 Important Tools for Drupal Development5 Important Tools for Drupal Development
5 Important Tools for Drupal Developmentjcarrig
 
SynapseIndia drupal presentation on drupal best practices
SynapseIndia drupal  presentation on drupal best practicesSynapseIndia drupal  presentation on drupal best practices
SynapseIndia drupal presentation on drupal best practicesSynapseindiappsdevelopment
 
Drupal 6x Installation
Drupal 6x Installation Drupal 6x Installation
Drupal 6x Installation Micky Metts
 
DrupalCon Paris Muiltilingual Panel
DrupalCon Paris Muiltilingual PanelDrupalCon Paris Muiltilingual Panel
DrupalCon Paris Muiltilingual PanelDoug Green
 
DDAY2014 - Localizing Drupal Commerce
DDAY2014 - Localizing Drupal CommerceDDAY2014 - Localizing Drupal Commerce
DDAY2014 - Localizing Drupal CommerceDrupalDay
 
Drupal theming training
Drupal theming trainingDrupal theming training
Drupal theming trainingdropsolid
 
DevLearn 2017 - Getting Started with Adapt
DevLearn 2017 - Getting Started with AdaptDevLearn 2017 - Getting Started with Adapt
DevLearn 2017 - Getting Started with AdaptFloat
 
UMD User's Group: DrupalCon 2011, Chicago
UMD User's Group: DrupalCon 2011, ChicagoUMD User's Group: DrupalCon 2011, Chicago
UMD User's Group: DrupalCon 2011, Chicagobrockfanning
 
An Introduction to Umbraco
An Introduction to UmbracoAn Introduction to Umbraco
An Introduction to UmbracoJeremy Branham
 
Drupal 7x Installation - Introduction to Drupal Concepts
Drupal 7x Installation - Introduction to Drupal ConceptsDrupal 7x Installation - Introduction to Drupal Concepts
Drupal 7x Installation - Introduction to Drupal ConceptsMicky Metts
 
Making The Drupal Pill Easier To Swallow
Making The Drupal Pill Easier To SwallowMaking The Drupal Pill Easier To Swallow
Making The Drupal Pill Easier To SwallowPhilip Norton
 
Barcelona Multilanguage
Barcelona MultilanguageBarcelona Multilanguage
Barcelona Multilanguageguest3a6661
 
C:\Users\User\Desktop\Eclipse Infocenter
C:\Users\User\Desktop\Eclipse InfocenterC:\Users\User\Desktop\Eclipse Infocenter
C:\Users\User\Desktop\Eclipse InfocenterSuite Solutions
 
An Introduction to Drupal & How to Use It by Sanket Jain
An Introduction to Drupal & How to Use It by Sanket JainAn Introduction to Drupal & How to Use It by Sanket Jain
An Introduction to Drupal & How to Use It by Sanket JainInnoraft
 

Similar a Drupalcamp Atlanta 2010 Internationalization Presentation (20)

Multilingual Drupal presentation from "Do it With Drupal"
Multilingual Drupal presentation from "Do it With Drupal"Multilingual Drupal presentation from "Do it With Drupal"
Multilingual Drupal presentation from "Do it With Drupal"
 
Make Your WordPress Site Multilingual with Polylang
Make Your WordPress Site Multilingual with PolylangMake Your WordPress Site Multilingual with Polylang
Make Your WordPress Site Multilingual with Polylang
 
Drupal Development w/ PhpStorm and Xdebug
Drupal Development w/ PhpStorm and XdebugDrupal Development w/ PhpStorm and Xdebug
Drupal Development w/ PhpStorm and Xdebug
 
Drupal Checklist for Site Builder and Web admin
Drupal Checklist for Site Builder and Web adminDrupal Checklist for Site Builder and Web admin
Drupal Checklist for Site Builder and Web admin
 
Cms drupal installation & configuration anil mishra
Cms drupal installation & configuration   anil mishraCms drupal installation & configuration   anil mishra
Cms drupal installation & configuration anil mishra
 
5 Important Tools for Drupal Development
5 Important Tools for Drupal Development5 Important Tools for Drupal Development
5 Important Tools for Drupal Development
 
SynapseIndia drupal presentation on drupal best practices
SynapseIndia drupal  presentation on drupal best practicesSynapseIndia drupal  presentation on drupal best practices
SynapseIndia drupal presentation on drupal best practices
 
Drupal 6x Installation
Drupal 6x Installation Drupal 6x Installation
Drupal 6x Installation
 
DrupalCon Paris Muiltilingual Panel
DrupalCon Paris Muiltilingual PanelDrupalCon Paris Muiltilingual Panel
DrupalCon Paris Muiltilingual Panel
 
DDAY2014 - Localizing Drupal Commerce
DDAY2014 - Localizing Drupal CommerceDDAY2014 - Localizing Drupal Commerce
DDAY2014 - Localizing Drupal Commerce
 
Drupal theming training
Drupal theming trainingDrupal theming training
Drupal theming training
 
DevLearn 2017 - Getting Started with Adapt
DevLearn 2017 - Getting Started with AdaptDevLearn 2017 - Getting Started with Adapt
DevLearn 2017 - Getting Started with Adapt
 
UMD User's Group: DrupalCon 2011, Chicago
UMD User's Group: DrupalCon 2011, ChicagoUMD User's Group: DrupalCon 2011, Chicago
UMD User's Group: DrupalCon 2011, Chicago
 
An Introduction to Umbraco
An Introduction to UmbracoAn Introduction to Umbraco
An Introduction to Umbraco
 
Drupal 7x Installation - Introduction to Drupal Concepts
Drupal 7x Installation - Introduction to Drupal ConceptsDrupal 7x Installation - Introduction to Drupal Concepts
Drupal 7x Installation - Introduction to Drupal Concepts
 
Making The Drupal Pill Easier To Swallow
Making The Drupal Pill Easier To SwallowMaking The Drupal Pill Easier To Swallow
Making The Drupal Pill Easier To Swallow
 
Barcelona Multilanguage
Barcelona MultilanguageBarcelona Multilanguage
Barcelona Multilanguage
 
C:\Users\User\Desktop\Eclipse Infocenter
C:\Users\User\Desktop\Eclipse InfocenterC:\Users\User\Desktop\Eclipse Infocenter
C:\Users\User\Desktop\Eclipse Infocenter
 
Drupal - Introduction to Drupal Creating Modules
Drupal - Introduction to Drupal Creating ModulesDrupal - Introduction to Drupal Creating Modules
Drupal - Introduction to Drupal Creating Modules
 
An Introduction to Drupal & How to Use It by Sanket Jain
An Introduction to Drupal & How to Use It by Sanket JainAn Introduction to Drupal & How to Use It by Sanket Jain
An Introduction to Drupal & How to Use It by Sanket Jain
 

Más de Mediacurrent

Penn State News: Pivoting to Decoupled Drupal with Gatsby
Penn State News: Pivoting to Decoupled Drupal with GatsbyPenn State News: Pivoting to Decoupled Drupal with Gatsby
Penn State News: Pivoting to Decoupled Drupal with GatsbyMediacurrent
 
Evolving How We Measure Digital Success in Higher Ed
Evolving How We Measure Digital Success in Higher EdEvolving How We Measure Digital Success in Higher Ed
Evolving How We Measure Digital Success in Higher EdMediacurrent
 
Penn State scales static Drupal to new heights
Penn State scales static Drupal to new heightsPenn State scales static Drupal to new heights
Penn State scales static Drupal to new heightsMediacurrent
 
Delivering Meaningful Digital Experiences in Higher Ed
Delivering Meaningful Digital Experiences in Higher EdDelivering Meaningful Digital Experiences in Higher Ed
Delivering Meaningful Digital Experiences in Higher EdMediacurrent
 
Content Strategy: Building Connections with Your Audience
Content Strategy: Building Connections with Your AudienceContent Strategy: Building Connections with Your Audience
Content Strategy: Building Connections with Your AudienceMediacurrent
 
Decoupled Drupal and Gatsby in the Real World
Decoupled Drupal and Gatsby in the Real WorldDecoupled Drupal and Gatsby in the Real World
Decoupled Drupal and Gatsby in the Real WorldMediacurrent
 
A Better Way to Build and Manage Sites with Rain for Drupal 9
A Better Way to Build and Manage Sites with Rain for Drupal 9A Better Way to Build and Manage Sites with Rain for Drupal 9
A Better Way to Build and Manage Sites with Rain for Drupal 9Mediacurrent
 
Drupal Security: What You Need to Know
Drupal Security: What You Need to KnowDrupal Security: What You Need to Know
Drupal Security: What You Need to KnowMediacurrent
 
Leveraging Design Systems to Streamline Web Projects
Leveraging Design Systems to Streamline Web ProjectsLeveraging Design Systems to Streamline Web Projects
Leveraging Design Systems to Streamline Web ProjectsMediacurrent
 
Reimagining Your Higher Ed Web Strategy
Reimagining Your Higher Ed Web StrategyReimagining Your Higher Ed Web Strategy
Reimagining Your Higher Ed Web StrategyMediacurrent
 
How to Digitally Transform Higher Ed with Drupal
How to Digitally Transform Higher Ed with DrupalHow to Digitally Transform Higher Ed with Drupal
How to Digitally Transform Higher Ed with DrupalMediacurrent
 
Is my website accessible? Common mistakes (and how to fix them)
Is my website accessible? Common mistakes (and how to fix them)Is my website accessible? Common mistakes (and how to fix them)
Is my website accessible? Common mistakes (and how to fix them)Mediacurrent
 
Managing Images In Large Scale Drupal 8 & 9 Websites
Managing Images In Large Scale Drupal 8 & 9 WebsitesManaging Images In Large Scale Drupal 8 & 9 Websites
Managing Images In Large Scale Drupal 8 & 9 WebsitesMediacurrent
 
Paragraphs v Layout Builder - The Final Showdown
Paragraphs v Layout Builder - The Final ShowdownParagraphs v Layout Builder - The Final Showdown
Paragraphs v Layout Builder - The Final ShowdownMediacurrent
 
MagMutual.com: On the JAMStack with Gatsby and Drupal 8
 MagMutual.com: On the JAMStack with Gatsby and Drupal 8 MagMutual.com: On the JAMStack with Gatsby and Drupal 8
MagMutual.com: On the JAMStack with Gatsby and Drupal 8Mediacurrent
 
Creating an Organizational Culture of Giving Back to Drupal
Creating an Organizational Culture of Giving Back to DrupalCreating an Organizational Culture of Giving Back to Drupal
Creating an Organizational Culture of Giving Back to DrupalMediacurrent
 
Level Up Your Team: Front-End Development Best Practices
Level Up Your Team: Front-End Development Best PracticesLevel Up Your Team: Front-End Development Best Practices
Level Up Your Team: Front-End Development Best PracticesMediacurrent
 
Best Practices for Moving to Drupal 9
Best Practices for Moving to Drupal 9Best Practices for Moving to Drupal 9
Best Practices for Moving to Drupal 9Mediacurrent
 
How to Prove Marketing ROI: Overcoming Digital Marketing Challenges
How to Prove Marketing ROI: Overcoming Digital Marketing ChallengesHow to Prove Marketing ROI: Overcoming Digital Marketing Challenges
How to Prove Marketing ROI: Overcoming Digital Marketing ChallengesMediacurrent
 
Prepare Your Drupal 9 Action Plan
Prepare Your Drupal 9 Action Plan Prepare Your Drupal 9 Action Plan
Prepare Your Drupal 9 Action Plan Mediacurrent
 

Más de Mediacurrent (20)

Penn State News: Pivoting to Decoupled Drupal with Gatsby
Penn State News: Pivoting to Decoupled Drupal with GatsbyPenn State News: Pivoting to Decoupled Drupal with Gatsby
Penn State News: Pivoting to Decoupled Drupal with Gatsby
 
Evolving How We Measure Digital Success in Higher Ed
Evolving How We Measure Digital Success in Higher EdEvolving How We Measure Digital Success in Higher Ed
Evolving How We Measure Digital Success in Higher Ed
 
Penn State scales static Drupal to new heights
Penn State scales static Drupal to new heightsPenn State scales static Drupal to new heights
Penn State scales static Drupal to new heights
 
Delivering Meaningful Digital Experiences in Higher Ed
Delivering Meaningful Digital Experiences in Higher EdDelivering Meaningful Digital Experiences in Higher Ed
Delivering Meaningful Digital Experiences in Higher Ed
 
Content Strategy: Building Connections with Your Audience
Content Strategy: Building Connections with Your AudienceContent Strategy: Building Connections with Your Audience
Content Strategy: Building Connections with Your Audience
 
Decoupled Drupal and Gatsby in the Real World
Decoupled Drupal and Gatsby in the Real WorldDecoupled Drupal and Gatsby in the Real World
Decoupled Drupal and Gatsby in the Real World
 
A Better Way to Build and Manage Sites with Rain for Drupal 9
A Better Way to Build and Manage Sites with Rain for Drupal 9A Better Way to Build and Manage Sites with Rain for Drupal 9
A Better Way to Build and Manage Sites with Rain for Drupal 9
 
Drupal Security: What You Need to Know
Drupal Security: What You Need to KnowDrupal Security: What You Need to Know
Drupal Security: What You Need to Know
 
Leveraging Design Systems to Streamline Web Projects
Leveraging Design Systems to Streamline Web ProjectsLeveraging Design Systems to Streamline Web Projects
Leveraging Design Systems to Streamline Web Projects
 
Reimagining Your Higher Ed Web Strategy
Reimagining Your Higher Ed Web StrategyReimagining Your Higher Ed Web Strategy
Reimagining Your Higher Ed Web Strategy
 
How to Digitally Transform Higher Ed with Drupal
How to Digitally Transform Higher Ed with DrupalHow to Digitally Transform Higher Ed with Drupal
How to Digitally Transform Higher Ed with Drupal
 
Is my website accessible? Common mistakes (and how to fix them)
Is my website accessible? Common mistakes (and how to fix them)Is my website accessible? Common mistakes (and how to fix them)
Is my website accessible? Common mistakes (and how to fix them)
 
Managing Images In Large Scale Drupal 8 & 9 Websites
Managing Images In Large Scale Drupal 8 & 9 WebsitesManaging Images In Large Scale Drupal 8 & 9 Websites
Managing Images In Large Scale Drupal 8 & 9 Websites
 
Paragraphs v Layout Builder - The Final Showdown
Paragraphs v Layout Builder - The Final ShowdownParagraphs v Layout Builder - The Final Showdown
Paragraphs v Layout Builder - The Final Showdown
 
MagMutual.com: On the JAMStack with Gatsby and Drupal 8
 MagMutual.com: On the JAMStack with Gatsby and Drupal 8 MagMutual.com: On the JAMStack with Gatsby and Drupal 8
MagMutual.com: On the JAMStack with Gatsby and Drupal 8
 
Creating an Organizational Culture of Giving Back to Drupal
Creating an Organizational Culture of Giving Back to DrupalCreating an Organizational Culture of Giving Back to Drupal
Creating an Organizational Culture of Giving Back to Drupal
 
Level Up Your Team: Front-End Development Best Practices
Level Up Your Team: Front-End Development Best PracticesLevel Up Your Team: Front-End Development Best Practices
Level Up Your Team: Front-End Development Best Practices
 
Best Practices for Moving to Drupal 9
Best Practices for Moving to Drupal 9Best Practices for Moving to Drupal 9
Best Practices for Moving to Drupal 9
 
How to Prove Marketing ROI: Overcoming Digital Marketing Challenges
How to Prove Marketing ROI: Overcoming Digital Marketing ChallengesHow to Prove Marketing ROI: Overcoming Digital Marketing Challenges
How to Prove Marketing ROI: Overcoming Digital Marketing Challenges
 
Prepare Your Drupal 9 Action Plan
Prepare Your Drupal 9 Action Plan Prepare Your Drupal 9 Action Plan
Prepare Your Drupal 9 Action Plan
 

Último

Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 

Último (20)

Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 

Drupalcamp Atlanta 2010 Internationalization Presentation

  • 1. Getting Started withDrupal TranslationsBy Steven Jacksonand Trent WymanMediacurrent Consultants Drupalcamp Atlanta 2010 October 2, 2010
  • 2. Overview This presentation will cover the basic steps for setting up a multi-lingual site in Drupal Discuss contrib modules needed Cover basic configurations for content type language support Lessons learned from past projects (Do’s & Don’ts) `
  • 3. Introduction / Background Trent Wyman Occupation: - Drupal Developer &Theming Consultant Drupal Experience: - Began experimenting with Drupal in version 4.7 - Employed as a full-time Drupal Developer & Theming Consultant since version 5 Company: - Mediacurrent (www.mediacurrent.com) About Mediacurrent: - Web development firm located in Alpharetta, GA - Focused solely on Drupal Development, customization, & consultation `
  • 4. Multi-Language Contrib Modules Download the following contrib modules: Internationalization Package (i18n) - http://drupal.org/project/i18n i18n Auto Translate - http://drupal.org/project/i18n_auto Language Switcher Dropdown (optional) - http://drupal.org/project/lang_dropdown `
  • 5. Enable Drupal Core Modules Go to the modules list page in Drupal admin and enable the following modules under the “Core – optional” section: Locale Content Translations www.yoursite.com/admin/build/modules `
  • 7. Install Contrib Modules Install the i18n, i18 Auto Translate, & Language Switcher Dropdown modules into your site’s modules folder. www.yoursite.comitesllodulesontribbr />`
  • 8. Get Your Language Template(s) Choose & download the language(s) you want your site translated into. (http://drupal.org/project/Translations) Unpack the .tar file(s) and install into the i18n/translationscontrib module folder. (sitesllodulesontrib18nranslations) `
  • 9. Enable Contrib Modules www.yoursite.com/admin/build/modules (“Multilanguage”) Auto draft translation Block translation CCK translation (if using custom CCK fields and fieldgroups) Content type translation Internationalization Language switcher dropdown (if you prefer a dropdown selector v/s Locale’s text links) Menu translation Poll aggregate (if translating polls) Profile translate (if translating user profiles) String translation Synchronize translations Taxonomy translation Views translation `
  • 11. Configure Installed Language(s) Go to the Languages Settings page in Drupal admin and select the “Configure” tab. Then, under the “Language negotiation” subtab choose the “Path prefix only” option. www.yoursite.com/admin/settings/language `
  • 13. Enable Installed Language(s) Now, select the “List” tab on the Languages Settings page and enable the languages you installed. Here, you can also set your site’s default language (if other than English). www.yoursite.com/admin/settings/language `
  • 15. Enable Language Switcher Go to the Blocks admin page and enable the language switcher under the “Disabled” section by assigning the block to your preferred Region. Choose “Language switcher” if only using Locale (core). Choose “Language switcher dropdown” if using the dropdown module (contrib). www.yoursite.com/admin/build/block `
  • 17. Translating Your Site’s Content Go to the “Content types” list page and select the content types that you want translated. Click the “edit” link corresponding to the content type. www.yoursite.com/admin/content/types `
  • 19. Translating Your Site’s Content Next, on the content type’s “Edit” page refer to the “Workflow” section and choose “Enabled with translation”. Then click the “Save” button at the bottom of the “Edit” page. Example path: www.yoursite.com/admin/content/node-type/blog `
  • 21. Create New Content Now you can create and translate new content for the content type you enabled for multi-language support. Go to the “Create Content” page, select the content type and then choose “English” (or your default language) from the “Language” dropdown selector. Example path: www.yoursite.com/node/add/blog `
  • 23. Translate New Content After choosing the desired language from the “Language” selector, save the node. Once you have saved the node, click the “Translate” tab located below the content’s title. If this is new content, translations will already be available. `
  • 25. Translate Pre-existing Content Translations in Drupal are not retro-active. For content that existed before you enabled translations you will need to manually translate those nodes. Click the “Add translation” link next to the desired language. Manually insert your translations into the “Title”, “Body”, etc. fields and save the node. `
  • 27. Switching Between Translations Once you have your content translated, your users will be able to toggle between the languages by selecting the language links available in your “Language Selector” block (displayed within the Region you assigned on the Blocks admin page). Example of language selector in Header Region: `
  • 28. Translating Menus & Menu Items Due to limited time I will not go into menu translations for this presentation. For info on how to translate menus and menu items you can refer to the following online tutorials: http://drupal-translation.com/content/adding-menu http://becircle.com/translating_menus_drupal_6 http://drupal.org/node/275705 `
  • 29. Introduction / Background Steven Jackson Occupation: - Drupal Consultant Drupal Experience: - Mainly backend module development - Server deployment `
  • 30. How to make it work, 1 Start with a plan Start with using i18n Don’t do it as an afterthought Know what languages you are using Try to keep as much in Drupal – hardcode as little as necessary `
  • 31. How to make it work, 2 Put what you can in the node Translate interface is good but may be cumbersome to search Might have duplicate or similar text but in different locations If doing after the fact, make node_clone your friend `
  • 32. How to make it work, 3 If a social site, setup content_profile Can then translate profile content in same manner Coordinate with someone who knows the languages `
  • 33. How to make it break == !previousSlides Don’t plan ahead, buy lots of Tylenol Don’t wrap module text in t() Write output in direct PHP instead of via Drupal `
  • 34. What can go wrong Server not rendering special characters Pathauto, url_alias may create new path when saving node after initial creation Have to go into db and clear aliases and auto urls for content Get a lot of some-path-name-0 `
  • 35. How fix what you break, 1 IF PHP You’ll want to parse the URL to get language or get $language->language if/switch language to output correct language text Make friends with regex, might have to output some special characters that some PHP functions aren’t generating (like date()) `
  • 36. How fix what you break, 2 IF PATHAUTO, URL_ALIAS Often ran into new url being generated when merely updating content Go into db, remove path_auto, url alias associations Reassociate nodes via the translate tab `
  • 37. Pros / Cons Pros Well, you have a multilingual site Only had to setup one code base Cons If not planning ahead can be a headache Might feel like you created multiple sites despite auto generation `
  • 38. Things to Remember Setup translation auto-generation If doing after the fact, setup translation associations Setup each view to be based on user’s current language in filters `