weglot/translate-bundle

此包已被废弃,不再维护。未建议替代包。

无缝集成 Weglot 到您的 Symfony 项目

0.7.2 2018-07-10 10:21 UTC

This package is auto-updated.

Last update: 2022-07-21 20:34:44 UTC


README

68747470733a2f2f63646e2e7765676c6f742e636f6d2f6c6f676f2f6c6f676f2d686f722e706e67

Symfony Translate Bundle

WeglotSlack Latest Stable Version Maintainability License

概述

无缝集成 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文件中找到有关示例的详细信息。

关于

translate-bundle由Weglot开发者团队指导和支持。

translate-bundle由Weglot SAS维护和资助。Weglot SAS是translate-bundle名称和标志的商标。

许可

MIT许可(MIT)