zelax90/zf-doctrine-orm-translation-loader

提供使用 doctrine ORM 的翻译加载器

1.1.0 2017-05-23 10:40 UTC

This package is auto-updated.

Last update: 2024-09-20 01:44:08 UTC


README

此模块添加了一个额外的翻译加载器,该加载器使用 Doctrine ORM 存储翻译。

安装

LanguageRoute 使用 composer 进行安装。有关 composer 文档,请参阅 getcomposer.org

composer require xelax90/zf-doctrine-orm-translation-loader

然后,将 DoctrineORMTranslationLoader 添加到您的 config/application.config.php 中,并运行 doctrine 模式更新以创建数据库表

php vendor/bin/doctrine-module orm:schema-tool:update --force 

用法

此模块使用 DoctrineORMTranslationLoader\Entity\Translation 实体来存储翻译。要添加新的翻译,只需使用 Doctrine 添加新的实体或直接将它们添加到 translation 数据库表中。默认翻译器将自动使用提供的加载器,并且 translate() 函数/视图辅助函数将搜索数据库中的翻译。

翻译键不应以 __META__ 开头,因为该前缀用于存储元数据。特别是使用 __META__plural_forms 会导致不希望的结果。

复数翻译

您可以通过使用 DoctrineORMTranslationLoader\Entity\Translation 实体的 translationPluralNumber 属性来存储复数翻译。为您的复数规则中的每个复数形式提供翻译,并使用翻译器的 translatePlural 函数来选择正确的形式。

元数据

您还可以为每个区域和域存储元数据(如复数形式)。每个元条目都必须有一个以 __META__ 开头的翻译键,后跟元标识符。元规则不会被翻译器删除,这使得它们可以作为翻译键使用,尽管不推荐这样做。到目前为止,只有 plural_forms 标识符被解释。

DoctrineORMTranslationLoader\I18n\Translator\Loader\DoctrineEntity 类提供了元前缀和 plural_forms 标识符的常量,您可能在使用 PHP 脚本添加或读取元数据时找到它们很有用。

要存储本地和域的复数规则,请使用 __META__plural_forms 作为翻译键。有关复数规则语法的详细信息,请参阅 Zend_i18n 文档