PHPackages                             shypes/language-translator - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Templating &amp; Views](/categories/templating)
4. /
5. shypes/language-translator

ActiveLibrary[Templating &amp; Views](/categories/templating)

shypes/language-translator
==========================

This is a simple light weight language parser to help with language key translation built for speed using in-memory caching optimization technique.

1.0.0(6y ago)0105MITPHP

Since Apr 27Pushed 5y ago1 watchersCompare

[ Source](https://github.com/Shypes/language-translator-php)[ Packagist](https://packagist.org/packages/shypes/language-translator)[ Docs](https://github.com/Shypes/language-translator#readme)[ RSS](/packages/shypes-language-translator/feed)WikiDiscussions master Synced 3d ago

READMEChangelogDependenciesVersions (2)Used By (0)

@shypes/language-translator-php
===============================

[](#shypeslanguage-translator-php)

[![GitHub issues](https://camo.githubusercontent.com/a9e3f2f5bba985aa107e8cfdb6f677ce4d94c89e16b591273db555b200f4f6d8/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732f5368797065732f6c616e67756167652d7472616e736c61746f722d706870)](https://img.shields.io/github/issues/Shypes/language-translator-php)

Introduction
------------

[](#introduction)

This is a simple light weight language parser to help with language key translation built for speed using in-memory caching optimization technique.

Language file only get loaded once during your application life cycle

Install
-------

[](#install)

```
require_once("language.php");

```

Using Composer
--------------

[](#using-composer)

```
composer require shypes/language-translator

```

Usage
-----

[](#usage)

Follow the set by step guide below

Language Folder Setup
---------------------

[](#language-folder-setup)

Create a dedicated folder to store your language template file.

Default folder is `lang` from your base directory configuration,

You will see how to set up your **base directory** below

Create the different sample files below in the language folder

**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}"
}
```

Initilaise the Application
--------------------------

[](#initilaise-the-application)

```
use Shypes\language;

$Language = new language();
```

```
use Shypes\language;

$Language = new language([
    "__basedir" => "./",
    "langFolder" => 'lang'
]);
```

Loading with optional parameters

```
use Shypes\language;

$Language = new language([
    "default_lang" => "en",
    "ext" => ".json",
    "__basedir" => "./",
    "langFolder" => 'lang'
]);
```

Some Basic Configuration - Optional
-----------------------------------

[](#some-basic-configuration---optional)

```
// 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");
```

Translation begin here
----------------------

[](#translation-begin-here)

```
// 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);
```

Using a function
----------------

[](#using-a-function)

```
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');
```

In line Langauge Loading Supported, this help you load your language data directly with a file

```
$data = array(
    "success"=> "نجاح",
    "email_phone_validation"=> "لا يمكن أن يكون البريد الإلكتروني والهاتف فارغين",
    "something_went_wrong"=> "هناك خطأ ما!",
    "missing_required_validation"=> "الحقول المطلوبة مفقودة",
    "missing_truck"=> "تم تعيين تجمع طلبات الشاحنات بالفعل على ${status}",
    "deliver_code"=>"مرحبًا ${name} ، إليك رمز otp ${code}"
);

$Language->load('ar', $data);
```

Dynamic language template
-------------------------

[](#dynamic-language-template)

It also support **templated** json strings

```
{
    "deliver_code":"مرحبًا ${name} ، إليك رمز otp ${code}"
}
```

```
$translated = $Language->get('deliver_code', 'ar',  array('name'=>"John", 'code'=> 343923));

var_dump($translated);
```

Output:

```
مرحبًا John ، إليك رمز otp 343923
```

Switch between Language Folder
------------------------------

[](#switch-between-language-folder)

```
$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);
```

Check out the [sample files](https://github.com/Shypes/language-translator-php/tree/master/src/examples) in the test directory

License
-------

[](#license)

[MIT](LICENSE) © Tosin Adesipe

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity9

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity56

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

2209d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/7fee2d53269ff5a3c8cb8a9a7fa53cc4916e401130c9625ac4ae6ba292f70e65?d=identicon)[shypes](/maintainers/shypes)

---

Top Contributors

[![Shypes](https://avatars.githubusercontent.com/u/3276586?v=4)](https://github.com/Shypes "Shypes (28 commits)")

---

Tags

phpcomposerlanguageparserpackagetranslationcachingtemplateSimpleoptimizationfasttranslatordynamicspeedlight-weightIn Memoryshypes

### Embed Badge

![Health badge](/badges/shypes-language-translator/health.svg)

```
[![Health](https://phpackages.com/badges/shypes-language-translator/health.svg)](https://phpackages.com/packages/shypes-language-translator)
```

###  Alternatives

[buonzz/composer-library-template

Boilerplate package for creating other packages.

535.7k](/packages/buonzz-composer-library-template)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
