使用树枝扩展

时间:2012-09-05 14:27:46

标签: twig template-engine

我正在尝试使用Twh i18n Extension。

据我所知,我需要的文件在这里:

https://github.com/fabpot/Twig-extensions/blob/master/lib/Twig/Extensions/Extension/I18n.php

现在我不太确定在哪里保存这个文件

我在名为includes / lib(/ includes / lib / Twig)的文件夹中有Twig。我在Twig下看到一个文件夹Extension。我把它保存在这里吗?

保存后,我是否需要对文件执行“require_once”,或者Twig_Autoloader会为我做这个工作吗?

我没有使用Symfony2

由于 克雷格

3 个答案:

答案 0 :(得分:4)

以下是对我有用的完整答案:

  1. 在Twig-Verzeichnis中复制文件(在Twig中提取i18n.zip)。 对于I18n扩展,它将是Twig / Extensions / Extension / I18n.php
  2. 最终添加I18n要求的其他文件。您将通过出现的错误消息看到这些是什么。我不得不添加“Twig / Extensions / Node / Trans.php”和“Twig / Extensions / TokenParser / Trans.php”。
  3. 在配置文件中添加以下内容:

    // Set language to German
    putenv('LC_ALL=de_DE'); 
    setlocale(LC_ALL, 'de_DE'); 
    // Specify location of translation tables
    bindtextdomain("project_de_DE", "./locale"); 
    // Choose domain 
    textdomain("projectl_de_DE");
    
  4. 注册Twig Extension

    $twig->addExtension(new Twig_Extensions_Extension_I18n());
    
  5. 创建目录locale / de_DE / LC_MESSAGES

  6. 创建PO文件(最简单的方法是从一个示例文件开始)
  7. 在普通文本编辑器中打开文件(务必使用utf-8编码)并开始翻译
  8. 使用PoEdit(www.poedit.net /)
  9. 打开PO-Datei
  10. 保存到区域设置/ de_DE / LC_MESSAGES(将创建MO-Datei)。
  11. 使用

    将翻译添加到Twig-Template中的相应位置
    {% trans 'Text in the original language' %}`
    

答案 1 :(得分:0)

您需要使用Twig注册此扩展程序:

$twig->addExtension(new Twig_Extensions_Extension_I18n());

如果您的安装配置正确,自动装带器应该完成包含该文件的工作。如果没有,您可以手动包含该文件或使用composer进行安装。

答案 2 :(得分:0)

似乎"正确"没有Composer安装这些扩展的方法如下:

  1. https://github.com/fabpot/Twig-extensions/releases
  2. 下载发布
  3. lib/目录的内容复制到项目
  4. 包含文件.../Twig/Extensions/Autoloader.php
  5. 注册自动加载器:Twig_Extensions_Autoloader::register();
  6. 按照文档http://twig.sensiolabs.org/doc/extensions/i18n.html
  7. 中的说明继续操作