Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Intro to I18N in code
Search
Matthew Haines-Young
May 13, 2015
100
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Intro to I18N in code
Short introduction to writing code that can be easily translated in WordPress
Matthew Haines-Young
May 13, 2015
More Decks by Matthew Haines-Young
See All by Matthew Haines-Young
Building Sites with Gutenberg
mattheu
1
280
WordPress REST API - Writing Custom Endpoints
mattheu
0
110
Tips for writing secure code in WordPress
mattheu
1
150
Making shortcodes a piece of cake
mattheu
0
24k
Featured
See All Featured
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
320
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.5k
The SEO Collaboration Effect
kristinabergwall1
1
610
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
460
Odyssey Design
rkendrick25
PRO
2
910
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
340
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
440
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
730
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3.1k
Building Better People: How to give real-time feedback that sticks.
wjessup
371
20k
Transcript
I18N Making your code translatable.
How translation it works. • Uses the gettext libraries. •
Wrap translatable strings in special gettext functions • Automated process - scans your code • Creates POT (Portable Objects Template) file with all translatable strings.
Note: Code is not executed when scanning for translatable strings.
Setup • Add the Text Domain to the theme/plugin header.
• This is a unique identifier. • Use dashes not underscores
__( 'string', 'text-domain' ) Basic translation function
_e( 'string', 'text-domain' ) Same, but outputs result.
Translate strings, not HTML
You cannot use variables in translatable strings. Translate placeholders and
use sprintf/printf
Don’t use variable for text domain.
Plurals • _n( $singular, $plural, $count, ‘text- domain’ ) •
1st param: the singular form of the string • 2nd param: the plural form of the string • 3rd param: the count.
_x( ‘string', 'context', 'text- domain' ); Disambiguation by context. Also
_ex. Same but outputs.
JavaScript • Use wp_localize_script to pass strings.
Resources • VIDEO: Rules for WordPress i18n - http://wordpress.tv/2014/02/26/ samuel-otto-wood-on-internationalization-plugins-and-themes-for-the-
whole-world/ • Otto on i18n - http://ottopress.com/2012/internationalization-youre- probably-doing-it-wrong/ • Plugin i18n - https://developer.wordpress.org/plugins/ internationalization/ • Theme i18n - https://developer.wordpress.org/themes/functionality/ internationalization/ • i18n quiz for developers: https://developer.wordpress.com/2015/04/23/ wordpress-developers-test-your-i18n-internationalization-knowledge/