Hot answers tagged

16

There is a second argument in the __() function. It should be set to the domain you are are using for your plugin or theme. In the examples below I use 'text_domain'. Your domain string should be unique. It should not match any other domain string. Not using a text domain argument defaults to 'default' the WordPress domain name. See the link for more details....


14

By far the best (easiest) way is to use the locale filter (inside get_locale()). First set up a quick function for retrieving a different language to use on the locale filter. /** * A function returns with returns the user's selectd locale, if stored. */ function wpse35622_get_new_locale($locale=false){ $new_locale = get_user_meta(get_current_user_id(),...


8

I got it now , After searched many resources : function lang_support() { return array('en','fr'); // Add your support lang-code (1st place is a default) } function rewrite_lang(){ $langs = lang_support(); foreach($langs as $lang) { add_rewrite_endpoint($lang,EP_PERMALINK|EP_PAGES|EP_ROOT|EP_CATEGORIES); } } add_action('init','...


7

We could try to filter the WPLANG option locale (see e.g. this approach from the related list here on the right by @brasofilo, that's based on this one by @toscho ): /** * Override locale settings for the current (non-admin) user */ is_admin() && add_filter( 'locale', function( $locale ) { // Modify locale for non-admins (we don't want to ...


6

Set the language in your wp-config.php: define( 'WPLANG', 'en_GB' ); WordPress will use that value automatically.


5

If you can settle for a page refresh, redefining the WPLANG constant could be an option. I'm doing that on two sites with multilingual content where the multilinguality plugin fails to trigger UI translation.


4

Finally found it! If I understand your question right, the template is basically saved as metadata that needs to be updated. update_post_meta( $post_id, '_wp_page_template', 'your_custom_template' ); // or update_metadata('post_type', $post_id, '_wp_page_template', 'your_custom_template' ); Source and further info


4

Run a filter on get_pagenum_link and you should be able to do what you want. The next_posts_link / previous_posts_link functions each call functions that in turn call other functions, which eventually route back to the get_pagenum_link function which provides a filter by the same name. It should give you the control you need, though post a comment if you ...


4

After inspecting your theme, this is what I came up with. I've taken the liberty to include Ruben's solution as well to make this answer as complete as possible. There are several problems here: Number 1. load_theme_textdomain( 'transparent', get_template_directory_uri() .'/languages' ); should be: function transparent_theme_setup() { ...


4

You could use gettext filter: add_filter( 'gettext', 'cyb_filter_gettext', 10, 3 ); function cyb_filter_gettext( $translated, $original, $domain ) { // Use the text string exactly as it is in the translation file if ( $translated == "Categorie: %s" ) { $translated = "Sectie: %s"; } return $translated; } If you need to filter a ...


3

You have to replace the call to BBpress’ language file. A good place to do this is a language specific file in your general languages directory. For Turkish it would probably be a file named tr_TR.php. This will be loaded automatically and only if it matches the language of your blog. It will not be overwritten. BBPress doesn’t use the function ...


3

Thanks to the helpful tip from @t31os the issue can be fixed with the following code: /*************************************************************** * Function qtranslate_next_previous_fix * Ensure that the URL for next_posts_link & previous_posts_link work with qTranslate ***************************************************************/ add_filter('...


3

This will need to go in a plug-in, just put the following inside a file (login-languge.php) in wp-content/plugins/ /* Plugin Name: Log-in Language Plugin URI: http://wordpress.stackexchange.com/questions/72692/how-do-i-change-the-language-of-only-the-login-page Description: Changes the language for log-in/register screens only Author: Stephen ...


3

WPML offers this feature. You can set it in the Languages adminsection, at the option Browser Language Redirect.


3

The translation strings not only get parsed during rendering (output on screen/in browser), but also by the GNU gettext parser. This one is not a PHP parser, so it can't fetch variables. This is the only part of a Theme or a Plugin, where you need to repeat yourself and add the plain string to every translation/gettext function call. // Wrong: __( 'External ...


3

I won't address the issue of variables in the string since it's already been said. You want to keep your string static, meaning that the content won't change. You also want to keep out unnecessary HTML. __( '<p>Hello World!</p>' ); __( '<h1>Hello World!</h1>' ); The above will take up two rows in your table for what is essentially ...


3

I belive you can use a load_textdomain_mofile filter... add_filter('load_textdomain_mofile', 'custom_load_textdomain_mofile', 10, 2); function custom_load_textdomain_mofile( $mofile, $domain){ if ($domain == 'bp-ass') $mofile = 'somepath/to/your/mo/file.mo'; return $mofile; } Difference (comparing Otto) is you can actually specify your mo ...


3

You can filter the string for locale, it holds the current language. And you can exclude the admin from that filter: is_admin() or add_filter( 'locale', function() { return 'ar'; });


3

You need to set a locale filter, please see: http://codex.wordpress.org/Plugin_API/Filter_Reference/locale for an example, Enjoy,


3

You can apply the language_attributes filter to language_attributes() function (source). Basically you can do this by adding something like this to your functions.php: add_filter('language_attributes', 'custom_lang_attr'); function custom_lang_attr() { return 'lang="en-US"'; } Note: Keep in mind, that you're overwriting the language parameter; the ...


3

If it is a new install, the best option is to install WordPress in Russian. You will have English also available from "Settings > general > Site Language". You can also manually install additional languages: download the files from this respository and upload theme to "wp-content/languages" directory. The new installed languages will be available in "...


2

I don't know what the lang_id option is for. AFAIK it is not part of the core WordPress options. If you want to check the language of all blogs you could check the blog's own options table for WPLANG, or use the network's WPLANG option (or fail with a locale you need) in a similar way as WordPress' own get_locale() function. I'd recommend to check out ...


2

You may wanna try something like this : <?php $lang = qtrans_getLanguage(); if ($lang=="en") { echo 'ENGLISH TEXT HERE'; } else if ($lang=="fr") { echo 'FRENCH TEXT HERE'; } ?>


2

You have to use a static page in this case: Settings -> General -> Fron Page Display: A static Page


2

http://www.qianqin.de/qtranslate/ is what you need ... Edit I - after comment. First - thanks for all who contributed in the downvotes torrent. (this is what happens when one does not visit frequently enough :- ) ) now - The function that handles the switch is in qtranslate-core. (starts at line 80 more or less - depends on the version that you want.) ...


2

Upload your danish language files (da_DK.mo and da_DK.po) in your wp-content/langauges/ folder on your webserver. Then edit the wp-config.php in your root folder This define ('WPLANG', ''); should be changed in define ('WPLANG', 'da_DK');


2

What you have to do is to create a simple plugin that will manage the text_domain of the installed plugins. If you don't want to have a global solution you can add the code to your functions.php in your theme. The idea is to instruct wordpress on where to find translations. Internally in all plugins this is done using something similar to ...


2

Should be possible using the template_include hook. Code is untested: add_action( 'template_include', 'language_redirect' ); function language_redirect( $template ) { global $q_config; $lang = ( 'en' === $q_config['lang'] ) ? 'en' : 'de'; $template = str_replace( '.php', '_'.$lang.'.php', $template ); return $template; }


2

Looking at the source load_plugin_textdomain takes three arguments: load_plugin_textdomain( $domain, $abs_rel_path = false, $plugin_rel_path = false ) It seems you are passing the absolute path to your language domain, as a relative path. Try: load_plugin_textdomain( 'myplugin', ABS_PATH_TO_LANGS_DIR);


2

The best (canonical) way is use template_include hook: http://codex.wordpress.org/Plugin_API/Filter_Reference/template_include Example code: function language_redirect($template) { global $q_config; $new_template = locate_template( array( 'page-'.$q_config['lang'].'.php' ) ); if ( '' != $new_template ) { return $new_template ; } ...



Only top voted, non community-wiki answers of a minimum length are eligible