SlideShare a Scribd company logo
1 of 37
Îñţérñåţîöñåļîžåţîöñ
Localization and Internationalization using TYPO3

                    Alexander Wahl
Agenda

>   Challenges in internationalization projects
>   localize TYPO3
>   extensions from TER dealing with translation
>   promote your translations to Google
Company profile - digiparden

>   Employees: 15 human beeings , 2 cats
>   Location: Schwäbisch Gmünd
>   Customers: DAIMLER, Mercedes-Benz, TRUMPF, LAPPGROUP, FUSO
>   Expertise in
    – content-management
    – language management
    – product-data management
    – application development using TYPO3, FLOW3 and ZF
    – IT-consulting
Internationalization vs. Localization

Internationalization
> Process of designing a software application to adapt to various
    regions and languages without engineering changes
> Synonym’s:
    – globalization
    – “world-readiness” (Microsoft)


Localization
> Process of adapt a internationalized software product to a specific
   market by adding
   – translations
   – regional content (e.g. images, colors, )
   – locale-specific information (e.g. time, currency, etc.)
Challenges in
 internationalization projects



http://www.flickr.com/photos/marcelgermain/3840003650/sizes/o/in/photostream/ (picture by Marcel Germanin)
Challenges in internationalization projects
Localization is a time consuming project

19.800 pages      260.000 content objects   15 target languages

Exporting content manually
1 month, 2 weeks, 3 days and 3 hours

Importing content manually
1 year, 3 months, 3 days and 6 hours
approx. 1.634.700 words
localize TYPO3




http://www.flickr.com/photos/51035610542@N01/6868716258/ (picture by cszar)
localize TYPO3
TYPO3 configuration
TypoScript setup
TCA configuration
TYPO3-Core methods
Application labels (XLIFF)
Tipps and tricks
Basic setup

Character sets
$TYPO3_CONF_VARS['BE']['forceCharset'] = 'utf-8‘

Database connection
$TYPO3_CONF_VARS['SYS']['setDBinit']= ‘
SET CHARACTER SET utf8;
SET NAMES utf8;
SET SESSION character_set_server=utf8‘;

Database field size
$TYPO3_CONF_VARS['SYS']['multiplyDBfieldSize'] = '3';

Filesystem
$TYPO3_CONF_VARS['SYS'][‘UTF8filesystem'] = true;
Setting up languages
Frontend languages




Optional
config.sys_language_softMergeIfNotBlank
config.sys_language_softExclude
Extension development - database setup
Extension development - database setup
Extension development – TCA configuration
Extension development – TCA magic (l10n_mode)




L10n_mode: mergeIfNotBlank, exclude, NoCopy and prefixLangTitle
L10n_display: hideDiff, defaultAsReadonly
L10n_cat: text,media
@see doc_core_tca
Extension development – flexform
                                   disable language handling
                                   in flexform
Frontend development
Frontend development




                       better solution
Frontend development




                       better solution
Frontend development - extbase/fluid
Frontend development - XLIFF




Overriding XLIFF Localization Files
$GLOBALS['TYPO3_CONF_VARS']['SYS']['locallangXMLOverride][]

Clearing XLIFF-Cache
$TYPO3_CONF_VARS['SYS']['lang']['cache']['clear_menu'] = TRUE;

Parsing XLIFF-Files - TYPO3 4.6
t3lib_l10n_parser_Llxml::getParsedData($sourcePath, $languageKey, $charset = '')
@deprecated
t3lib_div::readLLXMLfile
Tips and tricks

Adding fields from pages to pages_language_overlay
$GLOBALS['TYPO3_CONF_VARS']['FE']['pageOverlayFields']

disable translations in list-view
mod.web_list.hideTranslation = * or list of tables

overriding locallang via TypoScript
plugin.[name]._LOCAL_LANG.[ISO2]{
key = value
}

Hide pages if no translation exists
$GLOBALS['TYPO3_CONF_VARS']['FE'][‚hidePagesIfNotTranslatedByDefault'] =
boolean
Tips and tricks

Useful methods
$GLOBALS[‘TSFE’]->sys_page->getRecordOverlay($table, $currentRow,
$sys_language_uid);
$GLOBALS[‘TSFE’]->sys_page->getPageOverlay($row, $sys_language_uid);
t3lib_BEfunc::getRecordLocalization($table, $uid, $sys_language_uid);
t3lib_Befunc::isTableLocalizable($table);
t3lib_transl8tools::getSystemLanguages($page_id);
t3lib_transl8tools::translationInfo($table, $uid, $sys_language_uid);
extensions from TER
 dealing with translation



http://www.flickr.com/photos/41864721@N00/4743121155/ (picture by ecstaticist)
Ext:language visibility

>   multilanguage fallbacks
>   fallback configuration per language
>   visibility concept for single pages, content elements and news
Ext:l10nmgr - overview

>   Online translation via TYPO3 backend
>   Offline translation via XML (DéjàVu, memoQ, SDL TRADOS TagEditor, SDL
    Trados Studio 2009, SDL PASSOLO) and ms Excel format
>   Automation for different parts of the website and for multiple target
    languages
>   CLI-support
>   Up- and downloading exchange-files via FTP
Ext:l10nmgr - configuration
Ext:l10nmgr – online translation
Ext:l10nmgr – offline translation
Ext:snowbabel

Extension translation for content-managers and non-technical backend-users
Promote translations
 to Google



http://www.flickr.com/photos/e2/4650891118/ (picture by eisenrah)
URL structures




http://googlewebmastercentral.blogspot.de/2010/03/working-with-multi-regional-websites.html
Multi-lingual and multi-regional websites

Sitemap
Provide Sitemap in default language

Google ignores “lang” attributes and DTD definitions
<html lang="en-US" class="page-content">

Working with character encodings
Use UTF-8 as encoding




http://support.google.com/webmasters/bin/answer.py?hl=de&answer=139394
Multi-lingual and multi-regional websites

Crawling and indexing your multilingual and multiregional website
> Avoid crawling of automated translations
> Provide cross-links between the different languages
> Avoid automatic redirections based on the user’s perceived language
> Don’t use cookies to show translated versions
> Use rel="alternate" hreflang="x" to target other languages or other
   regions
> Use rel= "canoncial" href="x" to point to the main language
   – Canoncial en_US >> alternate en_GB or en_AU




http://support.google.com/webmasters/bin/answer.py?hl=de&answer=139394
Conclusion
Conclusion

Localization projects are difficult because
› of the complexity
› many people involved into the process
› the knowledge in different knowledge fields



with TYPO3 you have a great , internationalized, software product to succeed

More Related Content

What's hot

PHP and MySQL PHP Written as a set of CGI binaries in C in ...
PHP and MySQL PHP Written as a set of CGI binaries in C in ...PHP and MySQL PHP Written as a set of CGI binaries in C in ...
PHP and MySQL PHP Written as a set of CGI binaries in C in ...
webhostingguy
 
PHP Output Buffering
PHP Output BufferingPHP Output Buffering
PHP Output Buffering
Dave Ross
 

What's hot (20)

Use FLUID templating for your TYPO3 search
Use FLUID templating for your TYPO3 searchUse FLUID templating for your TYPO3 search
Use FLUID templating for your TYPO3 search
 
Files and Directories in PHP
Files and Directories in PHPFiles and Directories in PHP
Files and Directories in PHP
 
Php files
Php filesPhp files
Php files
 
Perl for System Automation - 01 Advanced File Processing
Perl for System Automation - 01 Advanced File ProcessingPerl for System Automation - 01 Advanced File Processing
Perl for System Automation - 01 Advanced File Processing
 
New Features in PHP 5.3
New Features in PHP 5.3New Features in PHP 5.3
New Features in PHP 5.3
 
PHP and MySQL PHP Written as a set of CGI binaries in C in ...
PHP and MySQL PHP Written as a set of CGI binaries in C in ...PHP and MySQL PHP Written as a set of CGI binaries in C in ...
PHP and MySQL PHP Written as a set of CGI binaries in C in ...
 
Php file handling in Hindi
Php file handling in Hindi Php file handling in Hindi
Php file handling in Hindi
 
PHP Function
PHP Function PHP Function
PHP Function
 
File handling in c
File handling in cFile handling in c
File handling in c
 
Files in php
Files in phpFiles in php
Files in php
 
File upload php
File upload phpFile upload php
File upload php
 
PHP file handling
PHP file handling PHP file handling
PHP file handling
 
TYPO3 Extension development using new Extbase framework
TYPO3 Extension development using new Extbase frameworkTYPO3 Extension development using new Extbase framework
TYPO3 Extension development using new Extbase framework
 
PHP Output Buffering
PHP Output BufferingPHP Output Buffering
PHP Output Buffering
 
File handling in C
File handling in CFile handling in C
File handling in C
 
PHP - Introduction to File Handling with PHP
PHP -  Introduction to  File Handling with PHPPHP -  Introduction to  File Handling with PHP
PHP - Introduction to File Handling with PHP
 
1file handling
1file handling1file handling
1file handling
 
File Upload
File UploadFile Upload
File Upload
 
Phpwebdev
PhpwebdevPhpwebdev
Phpwebdev
 
Basic Linux day 1
Basic Linux day 1Basic Linux day 1
Basic Linux day 1
 

Similar to Internationalization with TYPO3

Data localization and translation
Data localization and translationData localization and translation
Data localization and translation
Motti Danino
 
C:\Users\User\Desktop\Eclipse Infocenter
C:\Users\User\Desktop\Eclipse InfocenterC:\Users\User\Desktop\Eclipse Infocenter
C:\Users\User\Desktop\Eclipse Infocenter
Suite Solutions
 
Tml for Laravel
Tml for LaravelTml for Laravel
Tml for Laravel
Michael Berkovich
 

Similar to Internationalization with TYPO3 (20)

What's new in TYPO3 6.2 LTS - #certiFUNcation Alumni Event 05.06.2015
What's new in TYPO3 6.2 LTS - #certiFUNcation Alumni Event 05.06.2015What's new in TYPO3 6.2 LTS - #certiFUNcation Alumni Event 05.06.2015
What's new in TYPO3 6.2 LTS - #certiFUNcation Alumni Event 05.06.2015
 
Pratik Patel: Titanium as Platform: Feature-Rich, Database-Driven Mobile Apps
Pratik Patel: Titanium as Platform: Feature-Rich, Database-Driven Mobile AppsPratik Patel: Titanium as Platform: Feature-Rich, Database-Driven Mobile Apps
Pratik Patel: Titanium as Platform: Feature-Rich, Database-Driven Mobile Apps
 
Certification Study Group -Professional ML Engineer Session 2 (GCP-TensorFlow...
Certification Study Group -Professional ML Engineer Session 2 (GCP-TensorFlow...Certification Study Group -Professional ML Engineer Session 2 (GCP-TensorFlow...
Certification Study Group -Professional ML Engineer Session 2 (GCP-TensorFlow...
 
Data localization and translation
Data localization and translationData localization and translation
Data localization and translation
 
Terraform modules restructured
Terraform modules restructuredTerraform modules restructured
Terraform modules restructured
 
Terraform Modules Restructured
Terraform Modules RestructuredTerraform Modules Restructured
Terraform Modules Restructured
 
TensorFlow.Data 및 TensorFlow Hub
TensorFlow.Data 및 TensorFlow HubTensorFlow.Data 및 TensorFlow Hub
TensorFlow.Data 및 TensorFlow Hub
 
Mainframe Technology Overview
Mainframe Technology OverviewMainframe Technology Overview
Mainframe Technology Overview
 
Building websites with TYPO3 Neos
Building websites with TYPO3 NeosBuilding websites with TYPO3 Neos
Building websites with TYPO3 Neos
 
Data Localization and Translation
Data Localization and TranslationData Localization and Translation
Data Localization and Translation
 
Odp
OdpOdp
Odp
 
C:\Users\User\Desktop\Eclipse Infocenter
C:\Users\User\Desktop\Eclipse InfocenterC:\Users\User\Desktop\Eclipse Infocenter
C:\Users\User\Desktop\Eclipse Infocenter
 
Tml for Laravel
Tml for LaravelTml for Laravel
Tml for Laravel
 
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
 
Michael Hall [InfluxData] | Become an InfluxDB Pro in 20 Minutes | InfluxDays...
Michael Hall [InfluxData] | Become an InfluxDB Pro in 20 Minutes | InfluxDays...Michael Hall [InfluxData] | Become an InfluxDB Pro in 20 Minutes | InfluxDays...
Michael Hall [InfluxData] | Become an InfluxDB Pro in 20 Minutes | InfluxDays...
 
Patterns and Tools for Database Versioning, Migration, Data Loading and Test ...
Patterns and Tools for Database Versioning, Migration, Data Loading and Test ...Patterns and Tools for Database Versioning, Migration, Data Loading and Test ...
Patterns and Tools for Database Versioning, Migration, Data Loading and Test ...
 
Little Gems in TYPO3 v12
Little Gems in TYPO3 v12Little Gems in TYPO3 v12
Little Gems in TYPO3 v12
 
Streaming Inference with Apache Beam and TFX
Streaming Inference with Apache Beam and TFXStreaming Inference with Apache Beam and TFX
Streaming Inference with Apache Beam and TFX
 
Google Cluster Innards
Google Cluster InnardsGoogle Cluster Innards
Google Cluster Innards
 
amar_resume
amar_resumeamar_resume
amar_resume
 

Recently uploaded

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc
 
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider  Progress from Awareness to Implementation.pptxTales from a Passkey Provider  Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
FIDO Alliance
 

Recently uploaded (20)

Design Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptxDesign Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptx
 
Navigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern EnterpriseNavigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern Enterprise
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Simplifying Mobile A11y Presentation.pptx
Simplifying Mobile A11y Presentation.pptxSimplifying Mobile A11y Presentation.pptx
Simplifying Mobile A11y Presentation.pptx
 
API Governance and Monetization - The evolution of API governance
API Governance and Monetization -  The evolution of API governanceAPI Governance and Monetization -  The evolution of API governance
API Governance and Monetization - The evolution of API governance
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
How to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cfHow to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cf
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptx
 
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider  Progress from Awareness to Implementation.pptxTales from a Passkey Provider  Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
UiPath manufacturing technology benefits and AI overview
UiPath manufacturing technology benefits and AI overviewUiPath manufacturing technology benefits and AI overview
UiPath manufacturing technology benefits and AI overview
 
ChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps ProductivityChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps Productivity
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and Insight
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 

Internationalization with TYPO3