PHPackages                             ket-php/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. [Localization &amp; i18n](/categories/localization)
4. /
5. ket-php/translator

ActiveLibrary[Localization &amp; i18n](/categories/localization)

ket-php/translator
==================

Simple PHP translator

2.1(2mo ago)07MITPHPPHP ^8.1

Since Nov 29Pushed 2mo agoCompare

[ Source](https://github.com/mikhno351/KetPHP-Translator)[ Packagist](https://packagist.org/packages/ket-php/translator)[ Docs](https://github.com/mikhno351/KetPHP-Translator)[ RSS](/packages/ket-php-translator/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (3)Dependencies (1)Versions (4)Used By (0)

KetPHP Translator
=================

[](#ketphp-translator)

A flexible and powerful translation library for PHP applications that supports multiple translation formats, locale fallbacks, and various placeholder replacement methods.

[![Packagist Version](https://camo.githubusercontent.com/da5fb9b1ee893a87ee610f1bf2e53398482078f5b08a7f3094071851f1c76ee5/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6b65742d7068702f7472616e736c61746f72)](https://camo.githubusercontent.com/da5fb9b1ee893a87ee610f1bf2e53398482078f5b08a7f3094071851f1c76ee5/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6b65742d7068702f7472616e736c61746f72)[![Packagist Downloads](https://camo.githubusercontent.com/b084facb575f7ce38a64e834f53946cd32b7b78a65d3e8496d0a79b82591440f/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6b65742d7068702f7472616e736c61746f723f6c6f676f3d7061636b6167697374266c6f676f436f6c6f723d7768697465)](https://camo.githubusercontent.com/b084facb575f7ce38a64e834f53946cd32b7b78a65d3e8496d0a79b82591440f/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6b65742d7068702f7472616e736c61746f723f6c6f676f3d7061636b6167697374266c6f676f436f6c6f723d7768697465)[![Static Badge](https://camo.githubusercontent.com/d70e266076e28598d8ae3aeda67a004e4dc1f764f0d54e97ef142b529889496f/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d382e312d3737374242343f6c6f676f3d706870266c6f676f436f6c6f723d7768697465)](https://camo.githubusercontent.com/d70e266076e28598d8ae3aeda67a004e4dc1f764f0d54e97ef142b529889496f/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d382e312d3737374242343f6c6f676f3d706870266c6f676f436f6c6f723d7768697465)

Features
--------

[](#features)

- **Multiple Loader Support** - Use different loaders for various translation file formats
- **Locale Fallback** - Automatic fallback to default locale when translations are missing
- **Dot Notation** - Access nested translation keys using dot notation
- **Error Resilient** - Graceful handling of missing translations and formatting errors

Installation
------------

[](#installation)

```
composer require ket-php/translator

```

Usage
-----

[](#usage)

### Initialize the Translator

[](#initialize-the-translator)

```
use KetPHP\Translator\Loader\JsonTranslationLoader;
use KetPHP\Translator\Loader\PhpTranslationLoader;
use KetPHP\Translator\Loader\ArrayTranslationLoader;
use KetPHP\Translator\Translator;
use KetPHP\Translator\Locale;

$translator = new Translator(
    localeDefault: 'en', // another use \KetPHP\Translator\Locale::ENGLISH - en
    locale: 'ru' // current locale (optional, uses localeDefault if null)
);

// Add translations with loader
$translator->addLoader(Locale::ENGLISH, new PhpTranslationLoader('/absolute/path/to/en.php'));
// Combine loaders (locale pages)
$translator->addLoader(Locale::RUSSIAN, new JsonTranslationLoader('/absolute/path/to/ru.json'));
$translator->addLoader(Locale::RUSSIAN, new PhpTranslationLoader('/absolute/path/to/ru.php'));

$translation = [
    'language_tag' => 'be-BY',
];

// Add translations without loader
$translator->addLoader(Locale::BELARUSIAN, new ArrayTranslationLoader($translation));
// Add translations with resource
$translator->addResource(Locale::BELARUSIAN, $translation);

$allTranslations = $translator->translations();
// Returns merged array of current locale + default locale translations
```

### Add Translation Loaders

[](#add-translation-loaders)

```
use KetPHP\Translator\Loader\ArrayTranslationLoader;

final class YourTranslationLoader extends ArrayTranslationLoader
{

    public function __construct()
    {
        $data = [];
        // Your realization...

        parent::__construct($data);
    }
}
```

### Create Translation Files

[](#create-translation-files)

Example: en.php

```
