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

GitHub issues

简介

这是一个简单的轻量级语言解析器,用于帮助语言键翻译,它通过使用内存缓存优化技术来提高速度。

语言文件在整个应用程序生命周期中只加载一次

安装

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