Theme & Plugin Localisation

Preview:

DESCRIPTION

Brian Miyaji discusses the advantages of localizing code for WordPress, things to consider when developing software for a global audience, and how to save time for developers and translators. Images: "tokyo" by Osamu Kaneko, used under CC BY 2.0 https://www.flickr.com/photos/osamukaneko/9237609761/ "Confused" by Mika Hiltunen, used under CC BY 2.0 https://www.flickr.com/photos/saaste/13150099564/ “Union Jack Teapot" by The Hamster Factor, used under CC BY 2.0 / Desaturated from original https://www.flickr.com/photos/disaster_area/8424925130/ "Paris" by Moyan Brenn, used under CC BY 2.0 / Desaturated from original https://www.flickr.com/photos/aigle_dore/5238554034/ "Chinese Calligraphy" by Jiwei Han, used under CC BY 2.0 https://www.flickr.com/photos/p_h/2199524538 "Oak and Ash" by Let Ideas Compete, used under CC BY 2.0 https://www.flickr.com/photos/question_everything/4107359250/ "Butterfly" by Auntie P, used under CC BY 2.0 / Desaturated from original https://www.flickr.com/photos/auntiep/1170669/ "Boy and Girl Hummel Figurines" by Jason Pratt, used under CC BY 2.0 / Desaturated from original https://www.flickr.com/photos/jasonpratt/2347428960/ "Arabic Writing" by Pietro Izzo, used under CC BY 2.0 / Desaturated from original https://www.flickr.com/photos/pietroizzo/4527056064/ "WordPress Moleskine notebook" by Nikolay Bachiyski, used under CC BY 2.0 / Desaturated from original https://www.flickr.com/photos/nbachiyski/2186228674/

Citation preview

THEME & PLUGIN

LOCALISATION

@ThemeBoy

¿POR QUÉ?

56% OF WEBSITES ARE IN ENGLISH

56% OF WEBSITES ARE IN ENGLISH

27% OF INTERNET USERS SPEAK ENGLISH

JE M'EN FOUS

CAN’T READ =

WON’T BUY

LANGUAGES ARE ALL

DIFFERENT

WORD LENGTH

WORD LENGTHBUTTERFLYENGLISH:

WORD LENGTHBUTTERFLY 蝶

ENGLISH: CHINESE:

WORD LENGTHBUTTERFLY 蝶 SCHMETTERLING

ENGLISH: CHINESE: GERMAN:

WORD LENGTHSOLUTION: CSS

GENDER

GENDERADD NEW EVENT:

ДОДАДИ НОВ НАСТАН !

!

!

GENDERADD NEW EVENT:

ДОДАДИ НОВ НАСТАН ADD NEW TEAM:

ДОДАДИ НОВА ЕКИПА !

GENDERADD NEW EVENT:

ДОДАДИ НОВ НАСТАН ADD NEW TEAM:

ДОДАДИ НОВА ЕКИПА ADD NEW PERFORMANCE:

ДОДАИ НОВИ ПЕРФОРМАНСИИ

GENDERMORE EFFICIENT: printf( __( ‘Add New %s’ ), __( ‘Team’ ) );

MORE ACCURATE: _e( ‘Add New Team’ );

RTL

RTLDIRECTION OF

TEXT

RTLDIRECTION OF INFORMATION

RTL

SOLUTION: RTL STYLESHEET

RTLif ( is_rtl() ) {

wp_enqueue_style(

‘rtl-stylesheet’,

get_template_directory_uri() . ‘/rtl.css’

);

}

TRANSIFEX& POEDIT

SET IT UP<?php load_theme_textdomain( $domain, $path ) ?>

<?php load_plugin_textdomain( $domain, $abs_rel_path, $plugin_rel_path ) ?>

LOAD TRANSLATED STRINGS

define ('WPLANG', ‘pt_BR’); // To this

CHANGE WORDPRESS LANGUAGEdefine ('WPLANG', ‘’); // Change this

GETTEXT FUNCTIONS// Return translation

__( ‘Hello’, ‘my-text-domain’ );

// Echo translation

_e( ‘Hello’, ‘my-text-domain’ );

// Placeholders

printf( __( ‘Add New %s.’, 'my-text-domain' ), $label );

// Plurals

printf( _n( ‘One post’, ‘%s posts’, $count, ‘my-text-domain’ ), $count );

// Disambiguation by context

_x( ‘Post’, ‘noun’, ‘my-text-domain’ );

_x( ‘Post’, ‘verb’, ‘my-text-domain’ );

CREATE A POT FILE

POEDIT SOURCE KEYWORDS

__

_e

_n:1,2

_x:1,2

_ex:1,2

_nx:4c,1,2

esc_attr__

esc_attr_e

esc_attr_x:1,2c

esc_html__

esc_html_e

esc_html_x:1,2c

_n_noop:1,2

_nx_noop:3c,1,2

__ngettext_noop:1,2

USE CORE LOCALES

ALL TRANSLATIONS OF WP CORE: https://github.com/ThemeBoy/wp-languages

USE CORE STRINGS

ALL TRANSLATIONS OF WP CORE: https://github.com/ThemeBoy/wp-languages

# python get-pip.py

TRANSIFEX CLIENThttps://bootstrap.pypa.io/get-pip.py

GET PIP

# pip install transifex-client

INSTALL THE TRANSIFEX CLIENT

TRANSIFEX CLIENTINITIALISE & CONFIGURE$ cd my-plugin

$ tx init

$ nano .tx/config

[main]

host = https://www.transifex.com

![project_slug.resource_slug]

file_filter = languages/my-plugin—<lang>.po

source_file = languages/my-plugin.pot

source_lang = en_US

$ tx push -s

TRANSIFEX CLIENTPUSH SOURCE STRINGS

$ tx pull -l ja

PULL TRANSLATIONS FROM A LANGUAGE

$ tx pull

PULL ALL TRANSLATIONS

GNU GETTEXTDOWNLOAD & INSTALL

$ for file in $(find ./languages/ -name *.po -type f);

do msgfmt "$file" -o “${file%po}mo”;

done

http://www.gnu.org/software/gettext/

https://gist.github.com/mbillard/1647940

COMPILE ALL .PO FILES TO .MO

RECAP

BECAUSE

STATISTICS

BECAUSE

YOU CARE

BECAUSE

MONEY

THINK ABOUT

WORD LENGTH

THINK ABOUT

GENDER

THINK ABOUT

RTL

USE

POEDIT

USE

TRANSIFEX

USE

WP CORE

QUESTIONS@ThemeBoy

Recommended