SlideShare a Scribd company logo
DRUPAL 8 MULTILINGUAL
POSSIBILITIES FOR CUSTOMIZED
CHECKOUT SYSTEM
Drupal Camp Munich 12/2016
Ahmad Hassan Sr. Drupal Developer
DRUPAL 8 MULTILINGUAL POSSIBILITIES
● Customized Checkout system
● Translatable Custom Entities
● Multilingual Entity Form
○ Translate Form Authentication
● Twig Translation
● Block and Menu Translation
● Using PO file for additional Translation.
● Core Possibilities.
DRUPAL 8 MULTILINGUAL POSSIBILITIES
Customized Checkout system
● Why it called customized. It has Customized entities, custom blocks, custom
cart… almost everything except drupal8 multilingual core support.
● We have designed a Customized Checkout system with custom Content
Entity.
● We have used mainly three entities for user interaction to submit their
orders.
● Actually for these Entities, we need translation support for atleast five EU
languages.
● We need to translate our forms and information about the order.
● This was my first multilingual site but it was easy to manage in drupal 8.
● To achieve all this we need to follow some simple steps…
Translatable Custom Entities…
- After creating new content entity, we need to declare translatable = TRUE in
Entity annotation. e,g
- Drupal 8 provide Interface to select which fields we need to translate. e,g
-
Translatable Custom Entities…
● Each Field have to define with label/description with t() function.
MULTILINGUAL Entities Form...declaration
● As we have define Entity translatable = True,
We also need to define setTranslatable(TRUE)
Over each Field.
● Strings which does not define in core,
we imported all strings in .po files.
● I have also manage the title of forms to define
With t() funtion in Entity form $form['#title'] = t(“strings”);
MULTILINGUAL Entities Form… Example
MULTILINGUAL Entities Form… Country names list
● We have taken list of countries from some services by sending language-id in
parameter.
● For example if current language is German, I pass ‘de’ and get country names
in German.
● We can get current active language in drupal 8 with language Manager.
$language = Drupal::languageManager()->getCurrentLanguage()->getId();
MULTILINGUAL Entities Form… form validation
● In form validate function, we can override core form validation
● We can simply define string with $this->t() function.
● $form_state->setErrorByName('Field', $this->t("Please Enter your Field"));
MULTILINGUAL with Twig … .twig
● We can also define labels or description strings in twig
file as html.
● And to translate these string we can just use
{% trans %} Please review your order details {% endtrans %}:
● And import those strings for other languages with .po
files.
MULTILINGUAL Custom Block and Menu… form validation
● We can define in visibility, on which languages this block should be visible.
MULTILINGUAL Custom Block and Menu… Blocks
● In drupal 8, we can define a block and than translate them in other language
● We just need to define title and block content separately for each language.
MULTILINGUAL Custom Block and Menu… Blocks
● We can also publish or unpublish each translation and use as other contents.
● As well as we make these translation outdated to use some other. E.g,
MULTILINGUAL Custom Block and Menu… Menu
● Similarly we can define a menu and for each menu element can have
different settings for each language.
MULTILINGUAL Custom Block and Menu… Menu
● We can create different link title, description for different languages.
● We can also publish/unpublish or outdate menu element translation as
blocks.,
Import strings Using .po files… Import
● I have just copied core .po file and remove all the string and add all my
strings and translated string in it.
● Drupal 8 provides import/export feature to update or get all string by
interface.
● So no need to update code for just translation. Just define all with t(),
● Add all strings and translation in .po file and import in related language.
Core Possibilities… settings
● We can install Drupal 8 in any language instead of doing it on later staging.
● In Drupal 8, we can define how current language would be detect, e.g, by Url,
Session, browser, user. Depend upon your settings, Im using Url.
● Custom language settings, where we can see a list of translatable Entities.
Any content type, Entity, user, Profile, custom Entity blocks..
● After Selecting each Entity, we can also select their fields.
● We can also set if these settings should display on view/edit pages.
Core Possibilities… settings
● We can import and export .po files. I have added my strings with .po files, we
can also override in file if already exist.
● The good thing is that once you import all translations you are able to edit
any string by interface.
● So instead of just content translation, we have also list of configuration
settings. And we can translate configuration.
Core Possibilities… Code
● From Entity Obj, we can get translations and then we can get translation of
all fields, e.g,
$translation = $ent->getTranslation(‘de’);
$titles[‘de’] = $translation->title;
● How we can get the lanuage code:
● $language =
Drupal::languageManager()->getCurrentLanguage()->getId();
● To get the language name: $language =
Drupal::languageManager()->getCurrentLanguage()->getName();
Languageicon… contrib module
● This was the only contrib module we have used in our site.
● This module provide a list of flags of enable language.
● It also provide us block. We can make visible any region of our site.
● Only one click on language can change your page to another language
DRUPAL 8 MULTILINGUAL POSSIBILITIES FOR
CUSTOMIZED CHECKOUT SYSTEM
Thanks
Questions

More Related Content

PPTX
Decoupled drupal
PPTX
PHP Variables and scopes
PPT
ODP
Php variables (english)
PPT
Control Structures In Php 2
PPTX
PHP slides
PDF
2018 05-11 the way we teach tech - phpday
PPTX
Php Unit 1
Decoupled drupal
PHP Variables and scopes
Php variables (english)
Control Structures In Php 2
PHP slides
2018 05-11 the way we teach tech - phpday
Php Unit 1

What's hot (20)

ODP
Php1
PPS
Web technology html5 php_mysql
PPTX
Constructor and encapsulation in php
PPTX
PDF
PHP Jump Start
PPTX
Php basics
PPTX
PPTX
Dev traning 2016 basics of PHP
PDF
Php a dynamic web scripting language
PPTX
Server Scripting Language -PHP
PPSX
PHP Comprehensive Overview
PPTX
PHP Basics
PPT
PHP variables
PDF
PHP Loops and PHP Forms
PPT
DOCX
PHP NOTES FOR BEGGINERS
PPT
Class 3 - PHP Functions
PPT
Php(report)
PDF
Challenge: convert policy doc from docbook to sphinx
Php1
Web technology html5 php_mysql
Constructor and encapsulation in php
PHP Jump Start
Php basics
Dev traning 2016 basics of PHP
Php a dynamic web scripting language
Server Scripting Language -PHP
PHP Comprehensive Overview
PHP Basics
PHP variables
PHP Loops and PHP Forms
PHP NOTES FOR BEGGINERS
Class 3 - PHP Functions
Php(report)
Challenge: convert policy doc from docbook to sphinx
Ad

Similar to Drupal 8 customized checkout system (20)

PPTX
Drupal 8 customized checkout system
PDF
Parler en plusieurs langues avec Drupal - Drupalcamp Paris 2013
PPTX
Drupalcamp Atlanta 2010 Internationalization Presentation
PDF
Golang workshop
RTF
over all view programming to computer
PPTX
unit 1 programming in c ztgdawte efhgfhj ewnfbshyufh fsfyshu
PPTX
Monitoring.pptx
PPTX
How to Define Translation to Custom Module And Add a new language in Odoo 18
PDF
Everything multilingual in Drupal 8
PPTX
INTRODUCTION-TO-VB (2)-PROJECT POWERPOINT.pptx
PPTX
INTRODUCTION-TO-VB (1).pptx introduction
PDF
PRESENTATION WORK ON COMPUTER APPLICATION IN PHARMACY.pdf
PPT
Drupal7 multilingual
PDF
Multilingual Improvements for Drupal 8
PDF
All the language support in Drupal 8 - At Drupalaton 2014
PDF
Drupal Best Practices
PPTX
Presentation 5th
PDF
The Ring programming language version 1.5.2 book - Part 17 of 181
PPTX
WordPress internationalization, localization, and multilingual
PPTX
Programming Methodologies Functions - C Language
Drupal 8 customized checkout system
Parler en plusieurs langues avec Drupal - Drupalcamp Paris 2013
Drupalcamp Atlanta 2010 Internationalization Presentation
Golang workshop
over all view programming to computer
unit 1 programming in c ztgdawte efhgfhj ewnfbshyufh fsfyshu
Monitoring.pptx
How to Define Translation to Custom Module And Add a new language in Odoo 18
Everything multilingual in Drupal 8
INTRODUCTION-TO-VB (2)-PROJECT POWERPOINT.pptx
INTRODUCTION-TO-VB (1).pptx introduction
PRESENTATION WORK ON COMPUTER APPLICATION IN PHARMACY.pdf
Drupal7 multilingual
Multilingual Improvements for Drupal 8
All the language support in Drupal 8 - At Drupalaton 2014
Drupal Best Practices
Presentation 5th
The Ring programming language version 1.5.2 book - Part 17 of 181
WordPress internationalization, localization, and multilingual
Programming Methodologies Functions - C Language
Ad

Recently uploaded (20)

PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PPTX
Introduction to Artificial Intelligence
PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PDF
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
PDF
wealthsignaloriginal-com-DS-text-... (1).pdf
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PDF
Digital Strategies for Manufacturing Companies
PDF
Understanding Forklifts - TECH EHS Solution
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
Nekopoi APK 2025 free lastest update
PDF
System and Network Administraation Chapter 3
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PPT
Introduction Database Management System for Course Database
PDF
medical staffing services at VALiNTRY
PPTX
Transform Your Business with a Software ERP System
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PPTX
CHAPTER 2 - PM Management and IT Context
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
How to Choose the Right IT Partner for Your Business in Malaysia
Introduction to Artificial Intelligence
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
wealthsignaloriginal-com-DS-text-... (1).pdf
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
Digital Strategies for Manufacturing Companies
Understanding Forklifts - TECH EHS Solution
Wondershare Filmora 15 Crack With Activation Key [2025
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
Nekopoi APK 2025 free lastest update
System and Network Administraation Chapter 3
Design an Analysis of Algorithms I-SECS-1021-03
Introduction Database Management System for Course Database
medical staffing services at VALiNTRY
Transform Your Business with a Software ERP System
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
CHAPTER 2 - PM Management and IT Context

Drupal 8 customized checkout system

  • 1. DRUPAL 8 MULTILINGUAL POSSIBILITIES FOR CUSTOMIZED CHECKOUT SYSTEM Drupal Camp Munich 12/2016 Ahmad Hassan Sr. Drupal Developer
  • 2. DRUPAL 8 MULTILINGUAL POSSIBILITIES ● Customized Checkout system ● Translatable Custom Entities ● Multilingual Entity Form ○ Translate Form Authentication ● Twig Translation ● Block and Menu Translation ● Using PO file for additional Translation. ● Core Possibilities.
  • 3. DRUPAL 8 MULTILINGUAL POSSIBILITIES Customized Checkout system ● Why it called customized. It has Customized entities, custom blocks, custom cart… almost everything except drupal8 multilingual core support. ● We have designed a Customized Checkout system with custom Content Entity. ● We have used mainly three entities for user interaction to submit their orders. ● Actually for these Entities, we need translation support for atleast five EU languages. ● We need to translate our forms and information about the order. ● This was my first multilingual site but it was easy to manage in drupal 8. ● To achieve all this we need to follow some simple steps…
  • 4. Translatable Custom Entities… - After creating new content entity, we need to declare translatable = TRUE in Entity annotation. e,g - Drupal 8 provide Interface to select which fields we need to translate. e,g -
  • 5. Translatable Custom Entities… ● Each Field have to define with label/description with t() function.
  • 6. MULTILINGUAL Entities Form...declaration ● As we have define Entity translatable = True, We also need to define setTranslatable(TRUE) Over each Field. ● Strings which does not define in core, we imported all strings in .po files. ● I have also manage the title of forms to define With t() funtion in Entity form $form['#title'] = t(“strings”);
  • 8. MULTILINGUAL Entities Form… Country names list ● We have taken list of countries from some services by sending language-id in parameter. ● For example if current language is German, I pass ‘de’ and get country names in German. ● We can get current active language in drupal 8 with language Manager. $language = Drupal::languageManager()->getCurrentLanguage()->getId();
  • 9. MULTILINGUAL Entities Form… form validation ● In form validate function, we can override core form validation ● We can simply define string with $this->t() function. ● $form_state->setErrorByName('Field', $this->t("Please Enter your Field"));
  • 10. MULTILINGUAL with Twig … .twig ● We can also define labels or description strings in twig file as html. ● And to translate these string we can just use {% trans %} Please review your order details {% endtrans %}: ● And import those strings for other languages with .po files.
  • 11. MULTILINGUAL Custom Block and Menu… form validation ● We can define in visibility, on which languages this block should be visible.
  • 12. MULTILINGUAL Custom Block and Menu… Blocks ● In drupal 8, we can define a block and than translate them in other language ● We just need to define title and block content separately for each language.
  • 13. MULTILINGUAL Custom Block and Menu… Blocks ● We can also publish or unpublish each translation and use as other contents. ● As well as we make these translation outdated to use some other. E.g,
  • 14. MULTILINGUAL Custom Block and Menu… Menu ● Similarly we can define a menu and for each menu element can have different settings for each language.
  • 15. MULTILINGUAL Custom Block and Menu… Menu ● We can create different link title, description for different languages. ● We can also publish/unpublish or outdate menu element translation as blocks.,
  • 16. Import strings Using .po files… Import ● I have just copied core .po file and remove all the string and add all my strings and translated string in it. ● Drupal 8 provides import/export feature to update or get all string by interface. ● So no need to update code for just translation. Just define all with t(), ● Add all strings and translation in .po file and import in related language.
  • 17. Core Possibilities… settings ● We can install Drupal 8 in any language instead of doing it on later staging. ● In Drupal 8, we can define how current language would be detect, e.g, by Url, Session, browser, user. Depend upon your settings, Im using Url. ● Custom language settings, where we can see a list of translatable Entities. Any content type, Entity, user, Profile, custom Entity blocks.. ● After Selecting each Entity, we can also select their fields. ● We can also set if these settings should display on view/edit pages.
  • 18. Core Possibilities… settings ● We can import and export .po files. I have added my strings with .po files, we can also override in file if already exist. ● The good thing is that once you import all translations you are able to edit any string by interface. ● So instead of just content translation, we have also list of configuration settings. And we can translate configuration.
  • 19. Core Possibilities… Code ● From Entity Obj, we can get translations and then we can get translation of all fields, e.g, $translation = $ent->getTranslation(‘de’); $titles[‘de’] = $translation->title; ● How we can get the lanuage code: ● $language = Drupal::languageManager()->getCurrentLanguage()->getId(); ● To get the language name: $language = Drupal::languageManager()->getCurrentLanguage()->getName();
  • 20. Languageicon… contrib module ● This was the only contrib module we have used in our site. ● This module provide a list of flags of enable language. ● It also provide us block. We can make visible any region of our site. ● Only one click on language can change your page to another language
  • 21. DRUPAL 8 MULTILINGUAL POSSIBILITIES FOR CUSTOMIZED CHECKOUT SYSTEM Thanks Questions