sebrogala/xsv-translate

Zend Expressive 翻译模块

3.0.0 2018-07-23 07:08 UTC

This package is not auto-updated.

Last update: 2024-09-25 15:54:26 UTC


README

本模块是为了使用 Doctrine2 进行数据库导向的资源翻译而制作的。然而,扩展翻译器以使用自己的适配器非常简单。

安装(位于项目根目录)

composer require sebrogala/xsv-translate^3.0
cp vendor/sebrogala/xsv-translate/data/xsv-translate-config.global.php.dist config/autoload/xsv-translate-config.global.php
  • config/config.php 中启用模块,添加 Xsv\Translate\ConfigProvider::class,
  • config/pipeline.php 中在 DispatchMiddleware 之前添加管道中间件
/* ... */
$app->pipe(\Xsv\Translate\App\Middleware\TranslatorConfigMiddleware::class);
$app->pipe(DispatchMiddleware::class);
/* ... */
  • 根据需要更改配置文件
vendor/bin/doctrine orm:schema-tool:update --force

用法

  • 尚未完成,目前只有简单的示例

识别要使用哪种语言

  • 通过自定义头提供区域代码
X-Preferable-Locale locale_CODE

添加翻译

//adding translation interface
public static function addTranslation($resourceName, $resourceId, Locale $locale, $content)
use Xsv\Translate\Translator\Translator;
/*
...
*/
Translator::addTranslation("resource.name", "id", new Locale("pl_PL"), "TranslationToPolish");

位置

  • "resource.name" 是自行定义的,可以是 "user.username" - 它关于单个字段。
  • "id" 是行的唯一标识符(目前基于 uuid)

翻译资源

//translating interface
public static function translate(string $resourceName, string $resourceId, $defaultTranslationContent = "")
use Xsv\Translate\Translator\Translator;
/*
...
*/
return new JsonResponse(
    [
        "userName" => Translator::translate("user.name", $user->getId(), $user->getUserName())
    ]
);

待办事项

  • 删除单个翻译
  • 删除选定 ID 的所有翻译
  • 提供更好的示例