lliure / twig-translate
用于'yaml'翻译的Twig扩展
v0.4
2024-05-08 20:31 UTC
Requires
- php: >= 8.0
- ext-yaml: *
- twig/twig: ^3.0
README
此扩展允许使用yaml文件在Twig模板中翻译消息。对于需要多语言支持的项目非常有用。
示例用法
安装
在开始之前,请确保您已使用Composer在项目中安装了此包
composer require lliure/twig-translate
配置
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'域名来加载不同的翻译域名。
在Twig模板中的使用
在您的Twig模板中,您可以使用
translate
过滤器或_
来翻译消息{{ 'Hello'|translate }} {{ name }}, {{ 'Goodbye'|_ }}
使用变量
在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
请确保根据项目的目录结构调整路径。
贡献
如果您想为此包做出贡献,请随时打开一个问题或提交一个拉取请求。我们感谢您的合作!