This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
plugins:creation [2014/02/07 09:18] datiswous [Additional plugin files] |
plugins:creation [2017/01/18 17:25] lokothodida |
||
---|---|---|---|
Line 155: | Line 155: | ||
- delete.png | - delete.png | ||
- edit.png | - edit.png | ||
+ | </code> | ||
+ | |||
+ | ==== Internationalization (I18N) ==== | ||
+ | If your plugin displays messages to your user/administrator, you will want to allow those messages to be localised to the language of the installation. You do this by having a ''/lang'' folder, which has PHP files for each language: | ||
+ | |||
+ | <code> | ||
+ | - lang (directory) | ||
+ | - .htaccess (with one line: Deny from all) | ||
+ | - en_US.php | ||
+ | - de_DE.php | ||
+ | - it_IT.php | ||
+ | </code> | ||
+ | |||
+ | Each file should have one variable: an ''$i18n'' array, which has ''key => value'' mappings for the various messages: | ||
+ | |||
+ | <code php> | ||
+ | <?php | ||
+ | // en_US.php | ||
+ | $i18n = array(); | ||
+ | $i18n['PLUGIN_TITLE'] = 'My Plugin'; | ||
+ | ... | ||
+ | </code> | ||
+ | |||
+ | To register your i18n array, call ''i18n_merge'' with the ID of your plugin (**before the plugin is registered**): | ||
+ | |||
+ | <code php> | ||
+ | i18n_merge($plugin_id); | ||
+ | </code> | ||
+ | |||
+ | This registers ''$i18n'' for your plugin with the installation's language, but you might not have such a language file created. In order to set up a default language, you can register a fixed language if ''i18n_merge'' returns ''false''. | ||
+ | |||
+ | <code php> | ||
+ | // Sets the default to English | ||
+ | if (!i18n_merge($plugin_id)) i18n_merge($plugin_id, 'en_US'); | ||
+ | </code> | ||
+ | |||
+ | Or the clearer: | ||
+ | |||
+ | <code php> | ||
+ | i18n_merge($plugin_id) || i18n_merge($plugin_id, 'en_US'); | ||
+ | </code> | ||
+ | |||
+ | Once that is done, you can call a localised string by using ''i18n_r'' (to ''return'' the string) or ''i18n'' (to ''echo'' it). You do this by prefixing your key with your plugin's ID: | ||
+ | |||
+ | <code php> | ||
+ | // Prints "My Plugin" if the language is English | ||
+ | i18n($plugin_id . '/PLUGIN_TITLE'); | ||
</code> | </code> | ||
Line 188: | Line 235: | ||
To use your script you must first register it with the system. | To use your script you must first register it with the system. | ||
- | <code> | + | <code php> |
// register_script($handle, $src, $ver, $in_footer=FALSE) | // register_script($handle, $src, $ver, $in_footer=FALSE) | ||
// $handle name for the script, must be unique for each script loaded | // $handle name for the script, must be unique for each script loaded | ||
Line 201: | Line 248: | ||
To queue and load a registered script use: | To queue and load a registered script use: | ||
- | <code> | + | <code php> |
// queue_script($name,$where); | // queue_script($name,$where); | ||
// $name name of the script to load | // $name name of the script to load | ||
Line 212: | Line 259: | ||
To register a script from your plugin folder use | To register a script from your plugin folder use | ||
- | <code> | + | <code php> |
register_script('pluginscriptname', $SITEURL.'plugins/my_plugin_folder/your.script.js', '0.1', FALSE); | register_script('pluginscriptname', $SITEURL.'plugins/my_plugin_folder/your.script.js', '0.1', FALSE); | ||
</code> | </code> | ||
Line 223: | Line 270: | ||
To use your own stylesheets you must first register them with the system. | To use your own stylesheets you must first register them with the system. | ||
- | <code> | + | <code php> |
// register_sstyle($handle, $src, $ver) | // register_sstyle($handle, $src, $ver) | ||
// $handle name for the style, must be unique for each style loaded | // $handle name for the style, must be unique for each style loaded | ||
Line 237: | Line 284: | ||
To queue and load a registered style use: | To queue and load a registered style use: | ||
- | <code> | + | <code php> |
// queue_style($name,$where); | // queue_style($name,$where); | ||
// $name name of the style to load | // $name name of the style to load |