我正在尝试实现本地化到一个网站,我目前正在建设。我的目标是使用国际化扩展的Twig,因为这是我的模板引擎的选择。
然而,当我添加扩展时,网站崩溃了,屏幕变白色,并返回500错误代码。日志显示408超时。在我添加扩展的同一个函数中,我还添加了另一个工作得很好的扩展。我已经成功地通过Composer安装了扩展。(https://twig-extensions.readthedocs.io/en/latest/i18n.html)
我做错了什么?
这是我的函数. php
<?php
/**
* Timber starter-theme
* https://github.com/timber/starter-theme
*
* @package WordPress
* @subpackage Timber
* @since Timber 0.1
*/
Timber::$dirname = array( 'templates');
/** Start Timber! */
class StarterSite extends Timber\Site {
/** Add timber support. */
public function __construct() {
add_theme_support( 'post-formats' );
add_theme_support( 'post-thumbnails' );
add_filter( 'timber_context', array( $this, 'add_to_context' ) );
add_filter( 'get_twig', array( $this, 'add_to_twig' ) );
add_filter('show_admin_bar', '__return_false');
define( 'WP_DEBUG', true );
parent::__construct();
}
function add_to_context( $context ) {
$context['site'] = $this;
return $context;
}
public function add_to_twig( $twig ) {
$twig->addExtension( new Twig_Extension_StringLoader() );
$twig->addExtension( new Twig_Extensions_Extension_I18n() ); // This line breaks the site
return $twig;
}
}
new StarterSite();
1条答案
按热度按时间j2cgzkjk1#
当使用WordPress和Timber时,您不需要使用Twig的i18 n扩展,如Timber文档中的Internationalization Guide所述:
Twig有自己的i18 n扩展,为您提供
{% trans %}
标签来定义可翻译的块,但是没有必要使用它,因为使用Timber,您就有了所需的一切。这意味着在你的Twig模板中,你可以使用所有你通常在普通WordPress模板中使用的功能。
您可以像在普通WordPress主题中一样设置您的国际化主题。请按照主题手册中的Internationalization部分操作。
使用文本域和域路径设置style.css:
然后,WordPress将在您的主题的**/languages文件夹中查找my-text-domain.pot**文件。您可以使用Poedit Pro生成该POT文件。Poedit Pro将在您的Twig文件中查找翻译。