shypes / language-translator
这是一个简单的轻量级语言解析器,用于帮助语言键翻译,它通过使用内存缓存优化技术来提高速度。
1.0.0
2020-04-26 23:56 UTC
This package is auto-updated.
Last update: 2024-09-10 06:31:47 UTC
README
简介
这是一个简单的轻量级语言解析器,用于帮助语言键翻译,它通过使用内存缓存优化技术来提高速度。
语言文件在整个应用程序生命周期中只加载一次
安装
require_once("language.php");
使用 Composer
composer require shypes/language-translator
用法
按照以下步骤指南进行操作
语言文件夹设置
创建一个专门的文件夹来存储您的语言模板文件。
默认文件夹是从您的基目录配置中的 lang
,
下面将说明如何设置您的 基目录。
在语言文件夹中创建以下不同示例文件
ar.json
{ "success": "نجاح", "email_phone_validation": "لا يمكن أن يكون البريد الإلكتروني والهاتف فارغين", "something_went_wrong": "هناك خطأ ما!", "missing_required_validation": "الحقول المطلوبة مفقودة", "missing_truck": "تم تعيين تجمع طلبات الشاحنات بالفعل على ${status}", "deliver_code":"مرحبًا ${name} ، إليك رمز otp ${code}" }
en.json
{ "success": "Success!", "email_phone_validation": "Email and phone cannot be empty", "something_went_wrong": "Something went wrong!", "missing_required_validation": "Missing required fields", "missing_truck": "Truck Request Pool has already been set to ${status}", "deliver_code":"Hello ${name}, here is your otp code ${code}" }
初始化应用程序
use Shypes\language; $Language = new language();
use Shypes\language; $Language = new language([ "__basedir" => "./", "langFolder" => 'lang' ]);
使用可选参数加载
use Shypes\language; $Language = new language([ "default_lang" => "en", "ext" => ".json", "__basedir" => "./", "langFolder" => 'lang' ]);
一些基本配置 - 可选
// set your base directory $Language->setBaseDir("./")); // set your base directory $Language->setLanguageDir('src/lang'); // set your default language $Language->setDefaultLang('en'); // set the extention for yout language file, default is .json $Language->setExtention(".txt");
翻译从这里开始
// set the language in which you need $Language->setActiveLang('ar'); // get the text base on the defined language key $translated = $Language->get('email_phone_validation'); var_dump($translated); // get the text base on the defined language key $translated = Language.get('email_phone_validation', 'ar'); var_dump($translated);
使用函数
use Shypes\language; $Language = new language(); function testTranslate($language, $message) { global $Language; $translated = $LangParser->translate($message, $language); $data = [ "message" => $translated, "language" => $language ]; var_dump($data); } testTranslate('ar','something_went_wrong'); testTranslate('en','missing_required_validation'); testTranslate('ar','email_phone_validation');
支持行内语言加载,这可以帮助您直接通过文件加载语言数据
$data = array( "success"=> "نجاح", "email_phone_validation"=> "لا يمكن أن يكون البريد الإلكتروني والهاتف فارغين", "something_went_wrong"=> "هناك خطأ ما!", "missing_required_validation"=> "الحقول المطلوبة مفقودة", "missing_truck"=> "تم تعيين تجمع طلبات الشاحنات بالفعل على ${status}", "deliver_code"=>"مرحبًا ${name} ، إليك رمز otp ${code}" ); $Language->load('ar', $data);
动态语言模板
它还支持 模板 json 字符串
{ "deliver_code":"مرحبًا ${name} ، إليك رمز otp ${code}" }
$translated = $Language->get('deliver_code', 'ar', array('name'=>"John", 'code'=> 343923)); var_dump($translated);
输出
مرحبًا John ، إليك رمز otp 343923
在语言文件夹之间切换
$Language->setLanguageDir("lang/sms"); var_dump($Language->getPath()); $translated = $Language->get('deliver_code','ar', array('name'=>"John", 'code'=> 343923)); var_dump($translated); $Language->setLanguageDir("lang/email"); var_dump($Language->getPath()); $translated = $Language->get('deliver_code','ar', array('name'=>"John", 'code'=> 343923)}); var_dump($translated);
查看测试目录中的 示例文件
许可证
MIT © Tosin Adesipe