admin-post.php não retorna cadeias traduzidas (gettext)

Nenhum dos meus admin_post_{actions} está em conhecimento do idioma.

Isso acontece apenas nos pedidos POST do admin-post.php.

 /** * Load the plugin text domain for translation. * * @since 1.0.0 */ public function load_plugin_textdomain() { load_plugin_textdomain( 'loyally', false, dirname( dirname( plugin_basename( __FILE__ ) ) ) . '/languages/' ); } 

e ação que carrega isso

 /** * Define the locale for this plugin for internationalization. * * Uses the Loyally_i18n class in order to set the domain and to register the hook * with WordPress. * * @since 1.0.0 * @access private */ private function set_locale() { $plugin_i18n = new Loyally_i18n(); $this->loader->add_action( 'plugins_loaded', $plugin_i18n, 'load_plugin_textdomain' ); } 

load_plugin_textdomain retorna true, significando arquivos .mo encontrados e carregados. __( 'Please choose your gift.', 'loyally' ) funciona bem dentro dos arquivos do modelo, mas não no admin-post.php (como você pode ver abaixo, estou configurando um transiente, _e em modelos não é uma opção) .

 /** * * * @since 1.0.0 * @return */ public function request_gift_post() { if ( ! wp_verify_nonce( $_REQUEST['nonce'], 'request-security' ) ) { die( 'Security check' ); } $user_id = get_current_user_id(); if ( ! empty($_POST['giftId']) ) { $msg = $this->request_gift( $_POST['giftId'] ); } else { $msg = ['status' => false, 'message' => __( 'Please choose your gift.', 'loyally' )]; } set_transient( 'loyally_result_'.$user_id, $msg, HOUR_IN_SECONDS ); wp_redirect( get_permalink( get_page_by_title( 'exchange' ) ) ); exit; } 

todas as idéias antes de entrar no admin-post.php?

ps surpreendentemente wp_ajax_{action} funciona muito bem.

Solutions Collecting From Web of "admin-post.php não retorna cadeias traduzidas (gettext)"

O código a seguir é uma versão simplificada do meu plugin FPW Categoria Miniaturas :

 global $fpw_CT, $fpw_PT; if ( is_admin() ) { // back end require_once dirname( __FILE__ ) . '/classs/fpw-category-thumbnails-class.php'; $fpw_CT = new fpwCategoryThumbnails( dirname( __FILE__ ), '1.8.0' ); $o = get_option( 'fpw_category_thumb_opt' ); if ( is_array( $o ) && $o[ 'fpt' ] ) { require_once dirname( __FILE__ ) . '/classs/fpw-post-thumbnails-class.php'; $fpw_PT = new fpwPostThumbnails( dirname( __FILE__ ), '1.8.0' ); } } else { // front end require_once dirname( __FILE__ ) . '/classs/fpw-category-thumbnails-front-class.php'; $oFPT = get_option( 'fpw_post_thumbnails_options' ); $hide = ( is_array( $oFPT ) && $oFPT[ 'nothepostthumbnail' ] ); $fpw_CT = new fpwCategoryThumbnails( dirname( __FILE__ ), '1.8.0', $hide ); if ( is_array( $oFPT ) && ( $oFPT[ 'content' ][ 'enabled' ] || $oFPT[ 'excerpt' ][ 'enabled' ] ) ) { require_once dirname( __FILE__ ) . '/classs/fpw-post-thumbnails-front-class.php'; $fpw_PT = new fpwPostThumbnails( dirname( __FILE__ ), '1.8.0' ); } } 

E declaração de class de fim de semana:

 class fpwCategoryThumbnails { ... function __construct( $path, $version ) { ... add_action( 'init', array( &$this, 'init' ) ); ... } ... function init() { load_plugin_textdomain( 'fpw-category-thumbnails', false, 'fpw-category-thumbnails/languages/' ); } ... } 

Observe o formato add_action para init function chamável, declarado dentro de uma class. Você pode chamar essa function em seu plugin já que a ação init .