weglot / translate-bundle
无缝集成 Weglot 到您的 Symfony 项目
Requires
- php: >=5.5
- ext-mbstring: *
- weglot/weglot-php: ^0.6
README
Symfony Translate Bundle
概述
无缝集成 Weglot 到您的 Symfony 项目。
要求
- PHP 版本 5.5 及以上
- Weglot API 密钥,从 免费级别 开始
安装
您可以通过 Composer 安装库。运行以下命令
composer require weglot/translate-bundle
当您使用 symfony/flex
(适用于 symfony/symfony:^4.0
)要求此包时,它将询问您是否要执行配方,请回答是。这样它将在 config/bundles.php
中进行包注册,并在 config/packages/weglot_translate.yaml
中创建默认配置。
要使用库,请使用 Composer 的 自动加载
require_once __DIR__. '/vendor/autoload.php';
入门
包注册
Symfony 4
在 config/bundles.php
中添加 Weglot 包
return [ Symfony\Bundle\FrameworkBundle\FrameworkBundle::class => ['all' => true], // ... Other bundles ... Weglot\TranslateBundle\WeglotTranslateBundle::class => ['all' => true], ];
Symfony 3 & 2
将 Weglot 包添加到 app/AppKernel.php
文件中
$bundles = array( new Symfony\Bundle\FrameworkBundle\FrameworkBundle(), // ... Other bundles ... new Weglot\TranslateBundle\WeglotTranslateBundle(), );
快速配置
对于 Symfony 4,在 config/packages/weglot_translate.yaml
下创建配置文件并添加以下内容。对于 Symfony 3 & 2,将以下内容添加到您的 app/config/config.yaml
。
weglot_translate: api_key: '%env(WG_API_KEY)%' original_language: 'en' cache: true destination_languages: - 'fr' - 'de'
这是默认配置文件,如果您想要更多默认设置,请查看下一部分。
配置
如前所述,根据 Symfony 版本,我们有不同的配置文件路径
- Symfony 4:
config/packages/weglot_translate.yaml
- Symfony 3 & 2:
app/config/config.yaml
这是一个完整的配置文件
weglot_translate: api_key: '%env(WG_API_KEY)%' original_language: 'en' cache: false destination_languages: - 'fr' - 'de' exclude_blocks: - '.material-icons'
这是配置示例,输入您自己的 API 密钥,您的原始语言以及您想要翻译成目的语言。
api_key
: 是您的个人 API 密钥。您可以通过在 Weglot 上注册来获取 API 密钥。original_language
: 原始语言是翻译前的网站语言。destination_languages
: 是您希望网站翻译成的语言。缓存
:您是否想要使用缓存。这不是必填字段,默认设置为false。有关更多详细信息,请参阅缓存部分。
还有一个非必填参数
exclude_blocks
:您可以在这里列出所有不希望翻译的块。在本例中,我们将不会翻译所有具有"material-icons"类的DOM标签。
Twig扩展
Hreflang链接
Hreflang链接是一种描述您的网站并向网络爬虫(例如搜索引擎)说明此页面是否可用其他语言的方式。有关Google关于hreflang的更多详细信息,请参阅https://support.google.com/webmasters/answer/189077
您可以通过Twig函数weglot_hreflang_render
添加它们。
只需将函数放在您的<head>
标签的末尾即可
<html> <head> ... {{ weglot_hreflang_render() }} </head>
语言按钮
如果您使用Twig函数weglot_translate_render
,则可以添加语言按钮。
存在两种布局
<!-- first layout --> {{ weglot_translate_render(1) }} <!-- second layout --> {{ weglot_translate_render(2) }}
语言代码
这是一个简单的过滤器,可以将ISO 639-1代码转换为完整语言名称。它可以接受一个布尔参数,允许您选择是否具有英语名称或原始语言名称。
以下是一些示例
<!-- Will return english name for given code, here: "Bulgarian" --> {{ 'bg' | language }} <!-- Will return original name for given code, here: "български" --> {{ 'bg' | language(false) }}
缓存
我们为Symfony 4和Symfony 3(随着Symfony 3发布,所以没有与Symfony 2的兼容性)实现了缓存池服务的使用。
如果您想使用缓存,只需将此包配置中的cache: true
添加即可。它将通过Symfony cache.system
服务使用基于文件的缓存。
要清除缓存,您只需使用常规池清除命令即可
$ php bin/console cache:pool:clear weglot_translate.cache
示例
您将在每个存储库的readme文件中找到有关示例的详细信息。
- Symfony 4: https://github.com/weglot/translate-bundle-example-sf4
- Symfony 3: https://github.com/weglot/translate-bundle-example-sf3
- Symfony 2: https://github.com/weglot/translate-bundle-example-sf2
关于
translate-bundle
由Weglot开发者团队指导和支持。
translate-bundle
由Weglot SAS维护和资助。Weglot SAS是translate-bundle
名称和标志的商标。