Your SlideShare is downloading. ×
WordPress Theme & Plugin i18n & L10n
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.


Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

WordPress Theme & Plugin i18n & L10n


Published on

This was my presentation slide at a seminar by WordPressian group. …

This was my presentation slide at a seminar by WordPressian group.

Published in: Technology, Business

1 Like
  • Be the first to comment

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide


  • 1. By Md. Sajedul Haque Romi Email:
  • 2. • Understanding Internationalization & localization • Tools for localization •Implementation localization in WP themes •Implementation localization in WP plugins
  • 3. Internationalization is the process of designing a software application so that it can be adapted to various languages and regions without engineering changes.
  • 4. Localization is the process of adapting internationalized software for a specific region or language by adding locale- specific components and translating text.
  • 5. WordPress uses the gettext libraries and tools for i18n. In WordPress, you should use the __() wordpress-defined PHP gettext- compliant translation function.
  • 6. There are three types of files used in the gettext translation framework. •POT (Portable Object Template) files •PO (Portable Object) files •MO (Machine Object) files
  • 7. In 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
  • 8. •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
  • 9. For Theme: In wp-content/themes/Test-Theme/functions.php For Plugin: In wp-content/plugins/Test-Plugin/index.php
  • 10. echo "Hello user"; _e("Hello user","mytheme"); the_content( "Read more" ); the_content( __("Read more","mytheme") );
  • 11. 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 );
  • 12. WordPress provides a function for singular and plural translation of the same text message called _n(): _n( $single, $plural, $number, $domain );
  • 13. 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 );
  • 14. WordPress provides date_i18n() to translate dates. Example: <?php echo date_i18n(get_option('date_format') ,strtotime("11/15-1976")); ?> Bangla date translation
  • 15. _x() _ex() _nx() _n() esc_html() esc_attr() esc_attr__() esc_attr_e() esc_js() esc_textarea() esc_url()
  • 16. •Poedit •GlotPress •GNU gettext Among them, Poedit is widely used for WordPress I18n & l10n. So we will be focused on Poedit translation method.
  • 17. Go to File>New Catalog…
  • 18. Click ok, if you add the path correctly, you should see something like this
  • 19. Save the file as .pot ( not default.po) For theme ex: languages/test-theme.pot For plugin ex: languages/test-plugin.pot Then in Poedit, go to File>New catalog from POT file… you will see your template for translation
  • 20. Some thing like this
  • 21. See the Source text box Add your translated phrase in Translation box
  • 22. When 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.
  • 23. Open wp-config.php file search for define('WPLANG’ Add your lanuage code and save it
  • 24. Congratulation! You have successfully finished your WordPress Theme & Plugin Translations.
  • 25. Reference: localizing-wordpress-theme/
  • 26. Md. Sajedul Haque Romi Founder & CEO CodeBANGLA Email: