__(): What if I have to pass in a variable?
You can do it with printf(). E.g. printf( __( ‘We deleted %d spam messages.’, ‘my-text-domain’ ), $count );
You can do it with printf(). E.g. printf( __( ‘We deleted %d spam messages.’, ‘my-text-domain’ ), $count );
I downloaded the free Rookie parent theme and have no problem displaying translations of “Search Results for: %s” on a successful search results screen. This works in the WordPress languages folder at wp-content/languages/themes/rookie-de_DE.mo as well as Loco Translate’s custom directory. It works there if the files are named correctly because the parent theme correctly loads … Read more
General difference between esc_attr and esc_attr_* The difference between esc_attr() and esc_attr__(), esc_attr_e(), esc_attr_x() is that the later three are just “wrappers” or in other words higher level API functions. When you look at the source of the later three, then you’ll see that those put in a single argument wrapped in a call to … Read more
Use the first option. translated strings are supposed to be “raw”, and escaped only by the calling function. In addition many will not understand what ' mean and how to translate it without looking at the actual page which can be annoying.
Use the filter ‘mce_external_languages’. From wp-includes/class-wp-editor.php: The following filter loads external language files for TinyMCE plugins. It takes an associative array ‘plugin_name’ => ‘path’, where path is the include path to the file. The language file should follow the same format as /tinymce/langs/wp-langs.php and should define a variable $strings that holds all translated strings. When … Read more
load_theme_textdomain() returns TRUE on success and FALSE if no file was found. For debugging try the following change: function my_theme_setup(){ $path = get_template_directory() . ‘/languages’; $result = load_theme_textdomain(‘my_theme’, $path ); if ( $result ) return; $locale = apply_filters( ‘theme_locale’, get_locale(), ‘my_theme’ ); die( “Could not find $path/$locale.mo.” ); }
it is too late but for public use: /* if qTranslate is installed */ /* set front locale for ajax calls requested from front-end */ function set_locale_for_frontend_ajax_calls() { if ( is_admin() && defined( ‘DOING_AJAX’ ) && DOING_AJAX && substr( $_SERVER[‘HTTP_REFERER’], 0, strlen( admin_url() ) ) != admin_url() ) { load_theme_textdomain( ‘your-theme-domain-name’, get_template_directory() . ‘/languages’ ); … Read more
I came up with a function that does the job for now : /** * Creates a translation of a post (to be used with WPML) * * @param int $post_id The ID of the post to be translated. * @param string $post_type The post type of the post to be transaled (ie. ‘post’, ‘page’, … Read more
Use the fourth parameter for get_post_time(): $time = get_post_time( ‘F j, Y’, // format TRUE, // GMT get_the_ID(), // Post ID TRUE // translate, use date_i18n() ); get_post_time() calls mysql2date() internally, and it passes the $translate argument through. In mysql2date() we find this: if ( $translate ) return date_i18n( $format, $i ); So, all you … Read more
According with the codex, get_current_screen() has to be used later than admin_init hook. After a few tests, it seems that the safiest way is to use current_screen action hook instead of get_current_screen(): add_action(‘current_screen’, ‘current_screen_callback’); function current_screen_callback($screen) { if( is_object($screen) && $screen->post_type == ‘mycpt’ ) { add_filter( ‘gettext’, ‘theme_change_comments_label’, 99, 3 ); } } function theme_change_comments_label( … Read more