SlideShare a Scribd company logo
1 of 71
Download to read offline
DRUPALCAMP GHENT
2016
GROW SOME IDEAS
DRUPAL 8'S MULTILINGUAL APIS:
BUILDING FOR THE ENTIRE WORLD
Christian López Espínola - Lingotek
DRUPAL 8'S MULTILINGUAL APIS:
BUILDING FOR THE ENTIRE
WORLD
DRUPALCAMP GHENT
2016
GROW SOME IDEAS
DRUPAL 8 MULTILINGUAL
(setup, tips and tricks)
for a good user experience
Tom Robert
Room Calibrate
17:10 - 17:40
penyaskito
Christian López Espínola
Drupal 8 Multilingual
Initiative contributor
Drupal 7 MULTILINGUAL
Drupal
CORE
Drupal 7 MULTILINGUAL
Drupal
CORE
LOCALE
Drupal 7 MULTILINGUAL
Drupal
CORE
L10n UP
LOCALE
m
Drupal 7 MULTILINGUAL
Drupal
CORE
L10n UP
CONTENT
TRANSLATION
LOCALE
Ü
m
Drupal 7 MULTILINGUAL
Drupal
CORE
L10n UP
CONTENT
TRANSLATION
LOCALE
I18N
Ü
m
Drupal 7 MULTILINGUAL
Drupal
CORE
L10n UP
CONTENT
TRANSLATION
LOCALE
I18N
VARIABLE
Ü
m
Drupal 7 MULTILINGUAL
Drupal
CORE
L10n UP
CONTENT
TRANSLATION
LOCALE
I18N
VARIABLE
Entity
translation
Ü
m
Drupal 7 MULTILINGUAL
Four pillars in Drupal 8
LANGUAGE
Base services for all
modules dealing
with data. Not just
multilingual.
Four pillars in Drupal 8
LANGUAGE
Base services for all
modules dealing
with data. Not just
multilingual.
INTERFACE
Interface
translation has
built-in update
feature, improved
usability.
8
Four pillars in Drupal 8
LANGUAGE
Base services for all
modules dealing
with data. Not just
multilingual.
INTERFACE
Interface
translation has
built-in update
feature, improved
usability.
CONTENT
Field translation in
built-in API for all
entities. Content
translation module
provides user
interface.
8 é
Four pillars in Drupal 8
LANGUAGE
Base services for all
modules dealing
with data. Not just
multilingual.
INTERFACE
Interface
translation has
built-in update
feature, improved
usability.
CONTENT
Field translation in
built-in API for all
entities. Content
translation module
provides user
interface.
CONFIG
Common
configuration
system handles
blocks, views, field
settings. Unified
translation.
(8 é
Four pillars in Drupal 8
LANGUAGE INTERFACE CONTENT CONFIG
(8 é
Four pillars in Drupal 8
DEALING WITH LANGUAGE
Drupal:languageManager()
LanguageManager
ConfigurableLanguageManager
DEALING WITH LANGUAGE
->getLanguages()
UND: NOT SPECIFIED
ZXX: NOT APPLICABLE
EN: ENGLISH (DEFAULT)
UND: NOT SPECIFIED
ZXX: NOT APPLICABLE
HU: HUNGARIAN
IT: ITALIAN
DEALING WITH LANGUAGE
->getLanguages()
UND: NOT SPECIFIED
ZXX: NOT APPLICABLE
HU: HUNGARIAN
IT: ITALIAN
language.entity.$langcode.yml
DEALING WITH LANGUAGE
->getLanguages()
UND: NOT SPECIFIED
ZXX: NOT APPLICABLE
HU: HUNGARIAN
IT: ITALIAN
language.entity.$langcode.yml
Locked
DEALING WITH LANGUAGE
->getLanguages()
UND: NOT SPECIFIED
ZXX: NOT APPLICABLE
HU: HUNGARIAN
IT: ITALIAN
language.entity.$langcode.yml
Locked Not locked
DEALING WITH LANGUAGE
->getLanguages()
DEALING WITH LANGUAGE
ConfigurableLanguage::

createFromLangcode(‘fr’)

->save()
DEALING WITH LANGUAGE
ConfigurableLanguage::

load(‘fr’)->delete()
DEALING WITH LANGUAGE
$languageManager

->getCurrentLanguage()
LANGUAGE INTERFACE CONTENT CONFIG
(8 é
Four pillars in Drupal 8
INTERFACE LANGUAGE
INTERFACE LANGUAGE
t(‘English text’)
INTERFACE LANGUAGE
DEPENDENCY INJECTION
LOGIC
TRANSLATION
CONFIGURATION
USER
DEPENDENCY INJECTION
LOGIC
TRANSLATION
CONFIGURATION
USER
INTERFACE LANGUAGE
t(‘English text’)
INTERFACE LANGUAGE
t(‘English text’)
$this->t(‘English text’)
INTERFACE LANGUAGE
class Foo {
use StringTranslationTrait;
…
}
INTERFACE LANGUAGE
INTERFACE LANGUAGE
$this->t(‘English text’)

->getOption(‘langcode’);
INTERFACE LANGUAGE
format_plural(…)
$this->formatPlural(…)
Javascript api
Drupal.t(…)
Drupal.formatPlural()
TWIG TEMPLATES
<input {{ attributes }}
placeholder="{{ 'Search'|trans }}" />
INPUT--SEARCH.HTML.TWIG
<div{{ author_attributes }}>
{% trans %}
Submitted by {{ author_name }} on {{ date }}
{% endtrans %}
</div>
NODE.HTML.TWIG
LOCALE.links.menu.yml
locale.translate_page:

title: 'User interface translation'

description: 'Configure the import …’

route_name: locale.translate_page

parent: system.admin_config_regional

weight: 15


locale.translate_status:

title: 'Available translation updates'

route_name: locale.translate_status

description: 'Get a status report …’

parent: system.admin_reports
LOCALE.links.menu.yml
locale.translate_page:

title: 'User interface translation'

description: 'Configure the import …’

route_name: locale.translate_page

parent: system.admin_config_regional

weight: 15


locale.translate_status:

title: 'Available translation updates'

route_name: locale.translate_status

description: 'Get a status report …’

parent: system.admin_reports
LANGUAGE INTERFACE CONTENT CONFIG
(8 é
Four pillars in Drupal 8
English to X
Node.php (Snippet)
/**
* Defines the node entity class.
*
* @ContentEntityType(
* id = "node",
* label = @Translation(“Content"),
* translatable = TRUE,
* entity_keys = {
* "id" = "nid",
* "label" = "title",
* "langcode" = "langcode",
* }
* )
Node.php (Snippet)
function baseFieldDefinitions($entity_type) {
// …
$fields['title'] =
BaseFieldDefinition::create('string')
->setLabel(t('Title'))
->setRequired(TRUE)
->setTranslatable(TRUE);
}
FIELDS THEMSELVES
FIELDS THEMSELVES
AUTOMATED!
MULTICOLUMN FIELD SNIPPET
* @FieldType(
* id = "image",
* column_groups = {
* "file" = {
* "label" = @Translation("File"),
* "columns" = {
* "target_id", "width", "height"
* },
* },
* "alt" = {
* "label" = @Translation("Alt"),
* "translatable" = TRUE
* },
* }
Entity language API
$node = Node::load(42);
$node = $node
->getTranslation(‘hu’);
$node = $entityRepository
->getTranslationFromContext($node);
Entity language API
$node->getUntranslated()
$node->language()
$node->getTranslationLanguages()
$node->hasTranslation(‘hu’)
$node->addTranslation(‘hu’)
$node->removeTranslation(‘hu’)
LANGUAGE INTERFACE CONTENT CONFIG
(8 é
Four pillars in Drupal 8
English to X X to Y
Intelligent
objects
config/install/system.maintenance.yml
message: '@site is currently under
maintenance. We should be back
shortly. Thank you for your
patience.'
langcode: en
Core.data_types.schema.yml
config_object:
type: mapping
mapping:
langcode:
type: string
label: 'Language code'
…
text:
type: string
label: 'Text'
translatable: true
config/schema/system.schema.yml
system.maintenance:
type: config_object
label: 'Maintenance mode'
mapping:
message:
type: text
label: 'Message to display…’
LANGCODE
TRANSLATABLE
STRING
system.maintenance.yml
message: '@site is currently under
maintenance. We should be back
shortly. Thank you for your
patience.'
langcode: en
system.maintenance.yml
message: '@site is currently under
maintenance. We should be back
shortly. Thank you for your
patience.'
langcode: en
LANGUAGES/HU/SYSTEM.…YML
system.maintenance.yml
message: '@site is currently under
maintenance. We should be back
shortly. Thank you for your
patience.'
langcode: en
LANGUAGES/HU/SYSTEM.…YML
message: '@site karbantartás alatt
áll…’
system.maintenance.yml
message: '@site is currently under
maintenance. We should be back
shortly. Thank you for your
patience.'
langcode: en
LANGUAGES/HU/SYSTEM.…YML
message: '@site karbantartás alatt
áll…’
LANGUAGES/IT/SYSTEM.…YML
system.maintenance.yml
message: '@site is currently under
maintenance. We should be back
shortly. Thank you for your
patience.'
langcode: en
LANGUAGES/HU/SYSTEM.…YML
message: '@site karbantartás alatt
áll…’
LANGUAGES/IT/SYSTEM.…YML
message: '@site …’
configuration API
$config =
Drupal::config(‘system.maintenance’);
$config->get(‘message’);
configuration API
$config =
Drupal::config(‘system.maintenance’);
$config->get(‘message’);
OVERRIDES
APPLY AS
APPROPRIATE
configuration API
$manager = Drupal::languageManager();
$hu = $manager->getLanguage('hu');
$original = $manager-
>getConfigOverrideLanguage();
$manager->setConfigOverrideLanguage($hu);
$config = Drupal::config(‘system.maintenance');
// …
$manager->setConfigOverrideLanguage($original);
configuration API
Drupal::config(‘system.maintenance’);
Drupal::configFactory()-
>getEditable(‘system.maintenance’);
Drupal::languageManager()
->getLanguageConfigOverride
('hu', 'system.maintenance')
->set('message', 'Karbantartás...')
->save();
OVERRIDES
APPLY AS
APPROPRIATE
NO OVERRIDES
APPLY
THE
OVERRIDE
ITSELF
LANGUAGE INTERFACE CONTENT CONFIG
(8 é
Four pillars in Drupal 8
English to X X to Y
Intelligent
objects
X to Y
Dumb
arrays
DRUPAL 8'S MULTILINGUAL APIS:
BUILDING FOR THE ENTIRE
WORLD
DRUPALCAMP GHENT
2016
GROW SOME IDEAS

More Related Content

What's hot

Shell Scripting Tutorial | Edureka
Shell Scripting Tutorial | EdurekaShell Scripting Tutorial | Edureka
Shell Scripting Tutorial | EdurekaEdureka!
 
Introduction to perl_ a scripting language
Introduction to perl_ a scripting languageIntroduction to perl_ a scripting language
Introduction to perl_ a scripting languageVamshi Santhapuri
 
Ekon bestof rtl_delphi
Ekon bestof rtl_delphiEkon bestof rtl_delphi
Ekon bestof rtl_delphiMax Kleiner
 
BASHing at the CLI - Midwest PHP 2018
BASHing at the CLI - Midwest PHP 2018BASHing at the CLI - Midwest PHP 2018
BASHing at the CLI - Midwest PHP 2018Chris Tankersley
 
HTTP Middlewares in PHP by Eugene Dounar
HTTP Middlewares in PHP by Eugene DounarHTTP Middlewares in PHP by Eugene Dounar
HTTP Middlewares in PHP by Eugene DounarMinsk PHP User Group
 
Intro to Functional Programming
Intro to Functional ProgrammingIntro to Functional Programming
Intro to Functional ProgrammingJordan Parmer
 
Austin Bingham. Python Refactoring. PyCon Belarus
Austin Bingham. Python Refactoring. PyCon BelarusAustin Bingham. Python Refactoring. PyCon Belarus
Austin Bingham. Python Refactoring. PyCon BelarusAlina Dolgikh
 
The ruby on rails i18n core api-Neeraj Kumar
The ruby on rails i18n core api-Neeraj KumarThe ruby on rails i18n core api-Neeraj Kumar
The ruby on rails i18n core api-Neeraj KumarThoughtWorks
 
PHPBootcamp - Zend Framework
PHPBootcamp - Zend FrameworkPHPBootcamp - Zend Framework
PHPBootcamp - Zend Frameworkthomasw
 
Introduction to Modern Perl
Introduction to Modern PerlIntroduction to Modern Perl
Introduction to Modern PerlDave Cross
 

What's hot (18)

Shell Scripting Tutorial | Edureka
Shell Scripting Tutorial | EdurekaShell Scripting Tutorial | Edureka
Shell Scripting Tutorial | Edureka
 
Introduction to perl_ a scripting language
Introduction to perl_ a scripting languageIntroduction to perl_ a scripting language
Introduction to perl_ a scripting language
 
Perl Basics with Examples
Perl Basics with ExamplesPerl Basics with Examples
Perl Basics with Examples
 
Java Full Throttle
Java Full ThrottleJava Full Throttle
Java Full Throttle
 
Hashes Master
Hashes MasterHashes Master
Hashes Master
 
Perl
PerlPerl
Perl
 
Ekon bestof rtl_delphi
Ekon bestof rtl_delphiEkon bestof rtl_delphi
Ekon bestof rtl_delphi
 
BASHing at the CLI - Midwest PHP 2018
BASHing at the CLI - Midwest PHP 2018BASHing at the CLI - Midwest PHP 2018
BASHing at the CLI - Midwest PHP 2018
 
HTTP Middlewares in PHP by Eugene Dounar
HTTP Middlewares in PHP by Eugene DounarHTTP Middlewares in PHP by Eugene Dounar
HTTP Middlewares in PHP by Eugene Dounar
 
Intro to Functional Programming
Intro to Functional ProgrammingIntro to Functional Programming
Intro to Functional Programming
 
Austin Bingham. Python Refactoring. PyCon Belarus
Austin Bingham. Python Refactoring. PyCon BelarusAustin Bingham. Python Refactoring. PyCon Belarus
Austin Bingham. Python Refactoring. PyCon Belarus
 
Introduction to php php++
Introduction to php php++Introduction to php php++
Introduction to php php++
 
Perl tutorial
Perl tutorialPerl tutorial
Perl tutorial
 
Perl Programming - 02 Regular Expression
Perl Programming - 02 Regular ExpressionPerl Programming - 02 Regular Expression
Perl Programming - 02 Regular Expression
 
Perl Introduction
Perl IntroductionPerl Introduction
Perl Introduction
 
The ruby on rails i18n core api-Neeraj Kumar
The ruby on rails i18n core api-Neeraj KumarThe ruby on rails i18n core api-Neeraj Kumar
The ruby on rails i18n core api-Neeraj Kumar
 
PHPBootcamp - Zend Framework
PHPBootcamp - Zend FrameworkPHPBootcamp - Zend Framework
PHPBootcamp - Zend Framework
 
Introduction to Modern Perl
Introduction to Modern PerlIntroduction to Modern Perl
Introduction to Modern Perl
 

Similar to Drupal 8's Multilingual APIs Building Entire World

A whole new world for multilingual sites in Drupal 8 - jam's Drupal Camp session
A whole new world for multilingual sites in Drupal 8 - jam's Drupal Camp sessionA whole new world for multilingual sites in Drupal 8 - jam's Drupal Camp session
A whole new world for multilingual sites in Drupal 8 - jam's Drupal Camp sessionJeffrey McGuire
 
Everything multilingual in Drupal 8 (2015 November)
Everything multilingual in Drupal 8 (2015 November)Everything multilingual in Drupal 8 (2015 November)
Everything multilingual in Drupal 8 (2015 November)Gábor Hojtsy
 
Multilingual Improvements for Drupal 8
Multilingual Improvements for Drupal 8Multilingual Improvements for Drupal 8
Multilingual Improvements for Drupal 8Acquia
 
WordPress Plugin Localization
WordPress Plugin LocalizationWordPress Plugin Localization
WordPress Plugin LocalizationRonald Huereca
 
Javascript fundamentals for php developers
Javascript fundamentals for php developersJavascript fundamentals for php developers
Javascript fundamentals for php developersChris Ramakers
 
Developing Multilingual Applications
Developing Multilingual ApplicationsDeveloping Multilingual Applications
Developing Multilingual ApplicationsPriyank Kapadia
 
Docopt, beautiful command-line options for R, user2014
Docopt, beautiful command-line options for R,  user2014Docopt, beautiful command-line options for R,  user2014
Docopt, beautiful command-line options for R, user2014Edwin de Jonge
 
What we can learn from Rebol?
What we can learn from Rebol?What we can learn from Rebol?
What we can learn from Rebol?lichtkind
 
Drupal 8 Multilingual - what to look forward to
Drupal 8 Multilingual - what to look forward toDrupal 8 Multilingual - what to look forward to
Drupal 8 Multilingual - what to look forward toGábor Hojtsy
 
Giới thiệu PHP 7
Giới thiệu PHP 7Giới thiệu PHP 7
Giới thiệu PHP 7ZendVN
 
Multi Lingual Websites In Umbraco
Multi Lingual Websites In UmbracoMulti Lingual Websites In Umbraco
Multi Lingual Websites In UmbracoPaul Marden
 
symfony : I18n And L10n
symfony : I18n And L10nsymfony : I18n And L10n
symfony : I18n And L10nWildan Maulana
 
PHP: The easiest language to learn.
PHP: The easiest language to learn.PHP: The easiest language to learn.
PHP: The easiest language to learn.Binny V A
 
Your Business. Your Language. Your Code - dpc13
Your Business. Your Language. Your Code - dpc13Your Business. Your Language. Your Code - dpc13
Your Business. Your Language. Your Code - dpc13Stephan Hochdörfer
 
Massively Parallel Process with Prodedural Python by Ian Huston
Massively Parallel Process with Prodedural Python by Ian HustonMassively Parallel Process with Prodedural Python by Ian Huston
Massively Parallel Process with Prodedural Python by Ian HustonPyData
 
Massively Parallel Processing with Procedural Python (PyData London 2014)
Massively Parallel Processing with Procedural Python (PyData London 2014)Massively Parallel Processing with Procedural Python (PyData London 2014)
Massively Parallel Processing with Procedural Python (PyData London 2014)Ian Huston
 

Similar to Drupal 8's Multilingual APIs Building Entire World (20)

A whole new world for multilingual sites in Drupal 8 - jam's Drupal Camp session
A whole new world for multilingual sites in Drupal 8 - jam's Drupal Camp sessionA whole new world for multilingual sites in Drupal 8 - jam's Drupal Camp session
A whole new world for multilingual sites in Drupal 8 - jam's Drupal Camp session
 
Everything multilingual in Drupal 8 (2015 November)
Everything multilingual in Drupal 8 (2015 November)Everything multilingual in Drupal 8 (2015 November)
Everything multilingual in Drupal 8 (2015 November)
 
Multilingual Improvements for Drupal 8
Multilingual Improvements for Drupal 8Multilingual Improvements for Drupal 8
Multilingual Improvements for Drupal 8
 
WordPress Plugin Localization
WordPress Plugin LocalizationWordPress Plugin Localization
WordPress Plugin Localization
 
Javascript fundamentals for php developers
Javascript fundamentals for php developersJavascript fundamentals for php developers
Javascript fundamentals for php developers
 
Developing Multilingual Applications
Developing Multilingual ApplicationsDeveloping Multilingual Applications
Developing Multilingual Applications
 
Docopt, beautiful command-line options for R, user2014
Docopt, beautiful command-line options for R,  user2014Docopt, beautiful command-line options for R,  user2014
Docopt, beautiful command-line options for R, user2014
 
What we can learn from Rebol?
What we can learn from Rebol?What we can learn from Rebol?
What we can learn from Rebol?
 
Drupal 8 Multilingual - what to look forward to
Drupal 8 Multilingual - what to look forward toDrupal 8 Multilingual - what to look forward to
Drupal 8 Multilingual - what to look forward to
 
The state of DI - DPC12
The state of DI - DPC12The state of DI - DPC12
The state of DI - DPC12
 
Php Vs Phyton
Php Vs PhytonPhp Vs Phyton
Php Vs Phyton
 
Giới thiệu PHP 7
Giới thiệu PHP 7Giới thiệu PHP 7
Giới thiệu PHP 7
 
Multi Lingual Websites In Umbraco
Multi Lingual Websites In UmbracoMulti Lingual Websites In Umbraco
Multi Lingual Websites In Umbraco
 
Building Custom PHP Extensions
Building Custom PHP ExtensionsBuilding Custom PHP Extensions
Building Custom PHP Extensions
 
symfony : I18n And L10n
symfony : I18n And L10nsymfony : I18n And L10n
symfony : I18n And L10n
 
Multilingual drupal 7
Multilingual drupal 7Multilingual drupal 7
Multilingual drupal 7
 
PHP: The easiest language to learn.
PHP: The easiest language to learn.PHP: The easiest language to learn.
PHP: The easiest language to learn.
 
Your Business. Your Language. Your Code - dpc13
Your Business. Your Language. Your Code - dpc13Your Business. Your Language. Your Code - dpc13
Your Business. Your Language. Your Code - dpc13
 
Massively Parallel Process with Prodedural Python by Ian Huston
Massively Parallel Process with Prodedural Python by Ian HustonMassively Parallel Process with Prodedural Python by Ian Huston
Massively Parallel Process with Prodedural Python by Ian Huston
 
Massively Parallel Processing with Procedural Python (PyData London 2014)
Massively Parallel Processing with Procedural Python (PyData London 2014)Massively Parallel Processing with Procedural Python (PyData London 2014)
Massively Parallel Processing with Procedural Python (PyData London 2014)
 

More from Christian López Espínola

El libro de jugadas de phil jackson: triángulo ofensivo y otras tácticas de...
El libro de jugadas de phil jackson: triángulo ofensivo y otras tácticas de...El libro de jugadas de phil jackson: triángulo ofensivo y otras tácticas de...
El libro de jugadas de phil jackson: triángulo ofensivo y otras tácticas de...Christian López Espínola
 
Translate in Drupal 8: A New Era in Translation Has Begun
Translate in Drupal 8: A New Era in Translation Has BegunTranslate in Drupal 8: A New Era in Translation Has Begun
Translate in Drupal 8: A New Era in Translation Has BegunChristian López Espínola
 
Translate in Drupal 8: A New Era in Translation Has Begun
Translate in Drupal 8: A New Era in Translation Has BegunTranslate in Drupal 8: A New Era in Translation Has Begun
Translate in Drupal 8: A New Era in Translation Has BegunChristian López Espínola
 
Multilenguaje en Drupal 8 y la iniciativa D8MI
Multilenguaje en Drupal 8 y la iniciativa D8MIMultilenguaje en Drupal 8 y la iniciativa D8MI
Multilenguaje en Drupal 8 y la iniciativa D8MIChristian López Espínola
 
Aprovechamiento de las redes sociales y las NNTT para la acción juvenil y si...
 Aprovechamiento de las redes sociales y las NNTT para la acción juvenil y si... Aprovechamiento de las redes sociales y las NNTT para la acción juvenil y si...
Aprovechamiento de las redes sociales y las NNTT para la acción juvenil y si...Christian López Espínola
 

More from Christian López Espínola (15)

El libro de jugadas de phil jackson: triángulo ofensivo y otras tácticas de...
El libro de jugadas de phil jackson: triángulo ofensivo y otras tácticas de...El libro de jugadas de phil jackson: triángulo ofensivo y otras tácticas de...
El libro de jugadas de phil jackson: triángulo ofensivo y otras tácticas de...
 
Translate in Drupal 8: A New Era in Translation Has Begun
Translate in Drupal 8: A New Era in Translation Has BegunTranslate in Drupal 8: A New Era in Translation Has Begun
Translate in Drupal 8: A New Era in Translation Has Begun
 
Translate in Drupal 8: A New Era in Translation Has Begun
Translate in Drupal 8: A New Era in Translation Has BegunTranslate in Drupal 8: A New Era in Translation Has Begun
Translate in Drupal 8: A New Era in Translation Has Begun
 
Multilenguaje en Drupal 8 y la iniciativa D8MI
Multilenguaje en Drupal 8 y la iniciativa D8MIMultilenguaje en Drupal 8 y la iniciativa D8MI
Multilenguaje en Drupal 8 y la iniciativa D8MI
 
Drupal 8 FFM Sprint introduction
Drupal 8 FFM Sprint introductionDrupal 8 FFM Sprint introduction
Drupal 8 FFM Sprint introduction
 
Multilenguaje en Drupal 8
Multilenguaje en Drupal 8Multilenguaje en Drupal 8
Multilenguaje en Drupal 8
 
Contribuir en Drupal: Por dónde empiezo?
Contribuir en Drupal: Por dónde empiezo?Contribuir en Drupal: Por dónde empiezo?
Contribuir en Drupal: Por dónde empiezo?
 
Some principles from The Pragmatic Programmer
Some principles from The Pragmatic ProgrammerSome principles from The Pragmatic Programmer
Some principles from The Pragmatic Programmer
 
Contributing to drupal
Contributing to drupalContributing to drupal
Contributing to drupal
 
Aprovechamiento de las redes sociales y las NNTT para la acción juvenil y si...
 Aprovechamiento de las redes sociales y las NNTT para la acción juvenil y si... Aprovechamiento de las redes sociales y las NNTT para la acción juvenil y si...
Aprovechamiento de las redes sociales y las NNTT para la acción juvenil y si...
 
Identidad digital
Identidad digitalIdentidad digital
Identidad digital
 
Emergya: Modelos de Negocio de Software Libre
Emergya: Modelos de Negocio de Software LibreEmergya: Modelos de Negocio de Software Libre
Emergya: Modelos de Negocio de Software Libre
 
IEEE ISBC Universidad Sevilla SB
IEEE ISBC Universidad Sevilla SBIEEE ISBC Universidad Sevilla SB
IEEE ISBC Universidad Sevilla SB
 
Sweetter 3
Sweetter 3Sweetter 3
Sweetter 3
 
Charla LaTeX
Charla LaTeXCharla LaTeX
Charla LaTeX
 

Recently uploaded

Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 

Recently uploaded (20)

Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 

Drupal 8's Multilingual APIs Building Entire World