netpeople / translation_editor
此软件包最新版本(dev-master)没有可用的许可证信息。
dev-master
2013-08-07 13:55 UTC
This package is not auto-updated.
Last update: 2024-09-23 13:36:50 UTC
README
此包的目的是提供编辑、添加和删除翻译消息的接口。
当前支持的格式
- YAML
- XLIFF
- CSV
安装并设置此包
-
获取源代码
使用Git从项目根目录控制您的项目
git submodule add git://github.com/docteurklein/TranslatorBundle.git vendor/bundles/Knp/Bundle/TranslatorBundle
通过克隆仓库
mkdir -p vendor/bundles/Knp/Bundle cd !$ git clone git://github.com/docteurklein/TranslatoBundle.git
通过包含到deps文件中
[TranslatorBundle] git=git://github.com/docteurklein/TranslatorBundle.git target=/bundles/Knp/Bundle/TranslatorBundle
-
将包添加到您的
AppKernel
类中// app/AppKernerl.php public function registerBundles() { $bundles = array( // ... new Knp\Bundle\TranslatorBundle\KnpTranslatorBundle, // ... ); // ... }
-
将Knp命名空间添加到您的自动加载器中
// app/autoload.php $loader->registerNamespaces(array( 'Knp' => __DIR__.'/../vendor/bundles', // your other namespaces );
-
添加路由
// app/config/routing.yml knplabs_translator_admin: resource: @KnpTranslatorBundle/Resources/config/routing/edition.yml prefix: /trans/admin knplabs_translator: resource: @KnpTranslatorBundle/Resources/config/routing/routing.yml prefix: /trans
这些路由文件提供了以下路由
[router] Current routes
Name Method Pattern
knplabs_translator_list GET /trans/admin/list
knplabs_translator_get GET /trans/{id}/{domain}/{locale}
knplabs_translator_put PUT /trans/
最小配置
此包需要激活核心翻译器
``` yaml
// app/config/config.yml
framework:
# ...
translator: { fallback: en }
# ...
```
额外配置
此包依赖于Ext Core库。您可以决定是否自动包含它。
``` yaml
knplabs_translator:
include_vendor_assets: false # defaults to true
```
服务
此包引入以下服务
translator.dumper.csv container Knp\Bundle\TranslatorBundle\Dumper\CsvDumper
translator.dumper.xliff container Knp\Bundle\TranslatorBundle\Dumper\XliffDumper
translator.dumper.yaml container Knp\Bundle\TranslatorBundle\Dumper\YamlDumper
translator.writer container Knp\Bundle\TranslatorBundle\Translation\Translator
controllers are services too:
knplabs_translator.controller.edition request Knp\Bundle\TranslatorBundle\Controller\EditionController
knplabs_translator.controller.translator request Knp\Bundle\TranslatorBundle\Controller\TranslatorController
API
``` php
class Knp\Bundle\TranslatorBundle\Translation\Translator extends Symfony\Bundle\FrameworkBundle\Translation\Translator
{
public function isTranslated($id, $domain, $locale);
public function update($id, $value, $domain, $locale);
public function getResources($locale, $domain);
public function getFallbackLocale();
public function getCatalog($locale);
public function getLocales();
public function all();
```
更新特定的翻译键非常简单
``` php
$this->get('translator.writer')->update('the key to translate', 'the translated string', 'messages', 'en');
```
REST API
-
更新
english
域的translated value
翻译文件,键为foo.bar.baz
curl -X PUT http://project-url/trans/ \ -F 'id=foo.bar.baz' \ -F 'domain=messages' \ -F 'locale=en' \ -F 'value=translate value'
-
获取
english
语言和tests
域的foo.bar.baz
键的翻译值curl http://project-url/trans/foo.bar.baz/tests/en