ats / translation-bundle
"ATS DIGITAL" Symfony翻译包。
v1.0.2
2019-01-23 13:25 UTC
Requires
- php: >=7.0
- ats/core-bundle: 1.0.*
- friendsofsymfony/jsrouting-bundle: ^2.2
- sensio/framework-extra-bundle: ~3.0
- symfony/asset: 3.4.*
- symfony/cache: 3.4.*
- symfony/config: 3.4.*
- symfony/console: 3.4.*
- symfony/dependency-injection: 3.4.*
- symfony/event-dispatcher: 3.4.*
- symfony/filesystem: 3.4.*
- symfony/finder: 3.4.*
- symfony/http-foundation: 3.4.*
- symfony/http-kernel: 3.4.*
- symfony/monolog-bundle: ^3.1.0
- symfony/routing: 3.4.*
- symfony/templating: 3.4.*
- symfony/twig-bundle: 3.4.*
Requires (Dev)
- kint-php/kint: ^2.2
- phpstan/phpstan: ^0.10.3
- phpstan/phpstan-symfony: ^0.10.1
- squizlabs/php_codesniffer: ^3.3
- symfony/browser-kit: 3.4.*
- symfony/css-selector: ^4.1
- symfony/debug: 3.4.*
- symfony/dom-crawler: 3.4.*
- symfony/framework-bundle: 3.4.*
- symfony/phpunit-bridge: 3.4.*
- symfony/process: 3.4.*
- symfony/web-server-bundle: 3.4.*
- symfony/yaml: ^3.4
Provides
- ext-mongo: *
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
常见问题解答
此方法在性能方面有多高效?
- 每次i18n无效化都会将提交的更改传播到文件系统缓存。所有REST API操作都依赖于缓存优先策略。
我如何限制对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外观改进