tectonic / 本地化
为所选框架中的模型、实体和集合提供的本地化/翻译软件包。
Requires
- php: ^7.4|^8.0|^8.2
Requires (Dev)
- mockery/mockery: ^1.4
- phpunit/phpunit: ^9.0
README
此软件包有助于设置给定模型、实体、集合或其他内容的翻译和实现。如果您知道如何编写扩展库的类,您可以翻译几乎所有内容。本地化旨在用作所有翻译请求的合同和通用API。设置了桥接软件包以支持特定的模式或框架的方式。例如,(https://github.com/tectonic/laravel-localisation)
实际上,本地化是一个非常基础的软件包,仅定义实现翻译组件所需的API和接口。
安装
使用composer以常规方式安装Localisation
composer require tectonic/localisation
翻译对象
通过将对象传递给翻译引擎来完成任何对象的翻译
<?php $object = new TranslatableObject(); $translator = new \Tectonic\Localisation\Translator\Engine; $translator->translate($object);
默认的本地化行为不会翻译此对象。为什么?因为没有为给定的TranslatableObject存在转换器。然而,您可以定义自己的转换器,以便知道如何翻译此特定对象。
注册转换器
可以注册了解如何管理和翻译各种对象的转换器到本地化引擎
<?php $translator->registerTransformer(new MyTransformer);
MyTransformer应该实现包内定义的TransformerInterface,如下所示
<?php class MyTransformer implements Transformer { public function isAppropriateFor($object) {} public function transform($object) {} }
isAppropriateFor方法应在转换器知道如何处理该对象时返回true。如果不,则返回false。transform()方法执行实际转换工作。
注册了您的转换器后,您就可以开始使用了!
许可证
MIT许可证(MIT)(OSI批准的许可证)MIT许可证(MIT)
版权所有(c)2014 Tectonic Digital
特此授予任何人免费获得此软件及其相关文档副本(“软件”)的权利,不受任何限制地处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本,以及允许向软件提供者提供软件的人员这样做,前提是遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
本软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、针对特定目的的适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论是基于合同、侵权或其他原因,无论是否与软件或其使用或其他方式有关。