У меня проблемы с тем, чтобы заставить функционирование локализации / перевода работать правильно.
Я использую следующие компоненты:
WordPress 4.4.2
Timber -> Twig
Шаблон работает отлично. Кажется, только локализация не работает.
Во время моего исследования я наткнулся на этот пост на github, который кажется неполным, так как они ничего не говорят о том, как его настроить …
https://github.com/jarednova/timber/wiki/Text-Cookbook#internationalization
В итоге я использовал следующий код, который по какой-то причине не работает:
/functions.php
class StarterSite extends TimberSite {
function __construct() {
add_theme_support( 'post-formats' );
add_theme_support( 'post-thumbnails' );
add_theme_support( 'menus' );
add_theme_support( 'widgets' );
add_filter( 'timber_context', array( $this, 'add_to_context' ) );
add_filter( 'get_twig', array( $this, 'add_to_twig' ) );
add_action( 'init', array( $this, 'register_post_types' ) );
add_action( 'init', array( $this, 'register_taxonomies' ) );
$this->register_theme_locals();
parent::__construct();
}
function register_theme_locals(){
$path = get_template_directory() . '/languages';
$result = load_theme_textdomain('panther', $path );
if ( $result )
return;
$locale = apply_filters( 'theme_locale', get_locale(), 'panther' );
die( "Could not find $path/$locale.mo" );
}
.
.
.
/templates/base.twig
<button type="submit" class="btn btn-info">
<i class="fa fa-search"></i> {{__('Search', 'panther')}}
</button>
/languages/en_US.po
msgid ""msgstr """Project-Id-Version: Panther 0.1.20150828\n""Report-Msgid-Bugs-To: http://webklex.com/support/theme/panther\n""POT-Creation-Date: 2015-11-20 12:58:54+00:00\n""PO-Revision-Date: Mon Feb 01 2016 21:29:54 GMT+0100 (CET)\n""Last-Translator: admin <[email protected]>\n""Language-Team: LANGUAGE <[email protected]>\n""Language: English\n""Plural-Forms: nplurals=2; plural=n != 1\n""MIME-Version: 1.0\n""Content-Type: text/plain; charset=UTF-8\n""Content-Transfer-Encoding: 8bit\n""X-Poedit-SourceCharset: UTF-8\n""X-Poedit-Basepath: .\n""X-Poedit-SearchPath-0: ..\n""X-Poedit-KeywordsList: _:1;gettext:1;dgettext:2;ngettext:1,2;dngettext:2,3;""__:1;_e:1;_c:1;_n:1,2;_n_noop:1,2;_nc:1,2;__ngettext:1,2;__ngettext_noop:1,2;""_x:1,2c;_ex:1,2c;_nx:1,2,4c;_nx_noop:1,2,3c;_n_js:1,2;_nx_js:1,2,3c;""esc_attr__:1;esc_html__:1;esc_attr_e:1;esc_html_e:1;esc_attr_x:1,2c;""esc_html_x:1,2c;comments_number_link:2,3;t:1;st:1;trans:1;transChoice:1,2\n""X-Loco-Target-Locale: en_US\n""X-Generator: Loco - https://localise.biz/"
#: templates/base.twig:72
msgctxt "submit button"msgid "Search"msgstr "Search EN"
Для устранения проблемы я сбросил перевод. Вот результат:
Если я отрисовываю представление / страницу, я все равно получаю непереведенную строку:
Я проверил, правильно ли загружен язык, и да. Я даже проверил, была ли вызвана правильная функция перевода (не NOOP), и да, даже правильная функция была вызвана ..
Я как бы потерялся здесь. Так что, если кто-то знает, что я делаю неправильно или что происходит, пожалуйста, дайте мне знать.
Задача ещё не решена.
Других решений пока нет …