ats/translation-bundle

"ATS DIGITAL" Symfony翻译包。

安装: 22

依赖: 0

建议者: 0

安全: 0

类型:symfony-bundle

This package is not auto-updated.

Last update: 2021-09-19 19:58:47 UTC


README

通用

此包取代了默认的Symfony i18n操作方法。它不是以代码为中心(即在YAML文件中按翻译域操作键/值),而是采用数据库为中心的方法。

功能与能力

  • 以数据库为中心的i18n配置(针对Doctrine MongoDB ODM)
  • 专门的RESTful翻译键/语言操作
  • 专门的GUI进行翻译键/语言操作

设置

1- 打开命令行,进入您的项目目录,然后执行以下命令以下载此包的最新稳定版本

composer require ats/translation-bundle

2- 在app/AppKernel.php中添加以下行以启用该包

// app/AppKernel.php
class AppKernel extends Kernel
{
    public function registerBundles()
    {
        $bundles = [
            // ...
            new ATS\TranslationBundle\ATSTranslationBundle(),
        ];

        // ...
    }
}

3- 运行bin/console assets:install --symlink以初始化翻译GUI的静态资源。

配置

此包需要单个强制配置选项,用于在i18n REST端点前添加API前缀。

ats_translation:
    api:
        prefix: 'your_api_prefix' #e.g. 'api'

用法

REST API

通过以下路由进行i18n操作

GET /{api_prefix}/translation/compact :

  • 列出所有语言的i18n键/值。示例输出
{
	"en": {
		"foo": "bar"
	}
}

GET /{api_prefix}/translation/get-available-languages :

  • 列出所有可用语言。示例输出
['en','fr','de']

POST /{api_prefix}/translation/keys/init :

  • 从一个键/值集合中初始化i18n上下文。当从前端导入一组翻译键时,这可能很有用。示例有效载荷
     {
    "keys" : ["home.welcome","home.logout","home.profile"]
     }
    

这会将上述i18n键批量插入翻译上下文中。

GUI

您可以通过{backend_host}/translations访问用于i18n操作的专用UI

常见问题解答

  1. 此方法在性能方面有多高效?

    • 每次i18n无效化都会将提交的更改传播到文件系统缓存。所有REST API操作都依赖于缓存优先策略。
  2. 我如何限制对i18n GUI/REST API的访问?

    • i18n API端点和GUI默认为公开。您可以安全地依赖Symfony安全组件来限制访问。以下配置示例将拒绝所有非管理员用户的访问
	security:
		# [ ... ]
	    access_control:
	        - { path: '/%api_prefix%/translation/*', role:  ROLE_ADMIN } # secures access to REST API
	        - { path: '/translations', role:  ROLE_ADMIN } # secures access to GUI

路线图

  • Doctrine ORM支持
  • 在翻译值中支持参数
  • 通用UI外观改进

有什么新功能?

CHANGELOG.md