lliure/twig-translate

用于'yaml'翻译的Twig扩展

v0.4 2024-05-08 20:31 UTC

This package is auto-updated.

Last update: 2024-09-08 21:14:35 UTC


README

此扩展允许使用yaml文件在Twig模板中翻译消息。对于需要多语言支持的项目非常有用。

示例用法

  1. 安装

    在开始之前,请确保您已使用Composer在项目中安装了此包

    composer require lliure/twig-translate
    
  2. 配置

    require_once 'vendor/autoload.php';
    
    use Twig\TwigFilter;
    
    $loader = new \Twig\Loader\FilesystemLoader('views');
    $twig = new \Twig\Environment($loader);
    
    // Create an instance of the translation class, passing the desired language
    $myTwigFilters = new \TwigTranslate\Translate('pt_BR');
       
    // Add the extension to the Twig environment
    $twig->addExtension($myTwigFilters);
       
    echo $twig->render('home.html', ['name' => 'Jeison']);
    

    您还可以指定您想要使用的域名。

    $myTwigFilters = new \TwigTranslate\Translate('pt_BR', 'location/of/translate/files', ['home']);
    

    默认情况下,始终加载与指定语言同名的域名,除非您指定了不同的域名。

    例如,'pt_BR'的默认翻译文件路径为

    location/of/translate/files/pt_BR/pt_BR.yml
    

    您可以在代码中指定'home'域名来加载不同的翻译域名。

  3. 在Twig模板中的使用

    在您的Twig模板中,您可以使用translate过滤器或_来翻译消息

    {{ 'Hello'|translate }} {{ name }}, {{ 'Goodbye'|_ }}
    
  4. 使用变量

    在YAML中,您可以在"%"内定义变量以使您的文本动态化

    "Displaying page %currentPage%": "Displaying page %currentPage%"
    

    在Twig中,您可以按如下方式将这些变量结合到翻译文本中

    {{ 'Displaying page %currentPage%'|translate({'currentPage': data.pagination.currentPage}) }}
    

    这允许您将currentPage变量的值插入到翻译文本中,使其个性化和动态。

翻译文件

翻译保存在YAML文件中。

示例.yaml文件

hello: Olá
goodbye: Até mais

翻译文件的存储位置

.yaml文件应存储在特定的目录结构中

pt_BR/home.yaml

默认情况下,配置的文件夹是

etc/locale

但是,您可以在扩展调用中更改文件夹路径。最终路径将是配置路径和语言的组合

etc/locale/pt_BR/home.yaml

请确保根据项目的目录结构调整路径。

贡献

如果您想为此包做出贡献,请随时打开一个问题或提交一个拉取请求。我们感谢您的合作!