wordpress theme & plugin i18n & l10n

Post on 19-May-2015

1.078 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

This was my presentation slide at a seminar by WordPressian group. https://www.facebook.com/groups/wordpressians/ http://codebangla.com

TRANSCRIPT

WordPress Internationalization & LocalizationBy Md. Sajedul Haque RomiEmail: romi@codebangla.com

Objetives• Understanding Internationalization & localization• Tools for localization•Implementation localization in WP themes•Implementation localization in WP plugins

Internationalization (i18n)Internationalization is the process of designing a software application so that it can be adapted to various languages and regions without engineering changes.

Localization (L10n)Localization is the process of adapting internationalized software for a specific region or language by adding locale-specific components and translating text.

GNU gettextWordPress uses the gettext libraries and tools for i18n.

In WordPress, you should use the __() wordpress-defined PHP gettext-compliant translation function.

Language FilesThere are three types of files used in the gettext translation framework.

•POT (Portable Object Template) files•PO (Portable Object) files •MO (Machine Object) files

Basic Localization MethodIn your theme or plugin PHP files, write codes in the following way. __('message') passes the translation to the PHP return statement. _e('message') passes the translation to the PHP echo statement.Example:

<?php $translated_text = __( 'text', 'domain' ); ?>

Domain: Unique identifier for retrieving translated strings 

Digging Into Localization•Load a text domain•Process text messages with WordPress functions•Extract these messages with the appropriate software•Provide a translation for each message•Create a language file for a particular locale•Instruct WordPress to enable localization and to load the language file

Loading Text DomainFor Theme:In wp-content/themes/Test-Theme/functions.php

For Plugin:In wp-content/plugins/Test-Plugin/index.php

Processing Text Messagesecho "Hello user";

_e("Hello user","mytheme");

the_content( "Read more" );

the_content( __("Read more","mytheme") );

PHP function sprintf ()Sometimes, a text message includes dynamic data, such as a number from a PHP variable. In this case, we use the sprintf() function to produce the final message string:$results_found = 12;$message = sprintf( __("%s results found" , "mytheme") , $results_found );

Singular & Plural TranslationWordPress provides a function for singular and plural translation of the same text message called _n():

_n( $single, $plural, $number, $domain );

Singular & Plural Translation

Though the _n() is a built in WordPress function, using it is discouraged because the translation software parses only the first parameter of a function, and so these two text messages would not be fetched. Instead, we can use the PHP if statement:

if($results_found == 1) $message = __("1 result found" , "my-text-domain");else $message = sprintf( __("%s results found" , "my-text-domain") , $results_found );

Date TranslationWordPress provides date_i18n() to translate dates.Example:

<?php echo date_i18n(get_option('date_format') ,strtotime("11/15-1976"));?>http://codex.wordpress.org/Function_Reference/date_i18nBangla date translation http://tareq.wedevs.com/2010/09/translate-wordpress-date-time-comment-number-to-bangla-digit/

Sample Theme L10n

Sample Plugin L10n

Translation Tools

•Poedit•GlotPress•GNU gettextAmong them, Poedit is widely used for WordPress I18n & l10n. So we will be focused on Poedit translation method.

WordPress Translation in Poedit

WordPress Translation in PoeditGo to File>New Catalog…

WordPress Translation in Poedit

WordPress Translation in Poedit

WordPress Translation in PoeditClick ok, if you add the path correctly, you should see something like this

WordPress Translation in PoeditSave the file as .pot ( not default.po)For theme ex: languages/test-theme.potFor plugin ex: languages/test-plugin.pot

Then in Poedit, go to File>New catalog from POT file… you will see your template for translation

WordPress Translation in PoeditSome thing like this

WordPress Translation in PoeditSee the Source text boxAdd your translated phrase inTranslation box

WordPress Translation in PoeditWhen you are done adding your translated phrases, save the file in the WordPress

theme as en_US.po or your language code .po file like bn_BD.po

For plugin must save your-plugin-en_US.po Ex: test-plugin-bn_BD.po

When you save the .po file a .mo file will be generated.

Configuring WordPressOpen wp-config.php file search for define('WPLANG’Add your lanuage code and save it

WordPress i18n & L10n

WordPress i18n & L10n

Congratulation!You have successfully finished your

WordPress Theme & Plugin Translations.

WordPress i18n & L10nReference:http://codex.wordpress.org/Translating_WordPresshttp://wp.smashingmagazine.com/2011/12/29/internationalizing-localizing-wordpress-theme/

Thank youMd. Sajedul Haque RomiFounder & CEOCodeBANGLAEmail: romi@codebangla.com

top related