PHPackages                             initphp/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. initphp/translator

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

initphp/translator
==================

Micro multi-language (i18n) translation library for PHP with file or directory based language packs, dot-delimited nested keys, placeholder interpolation and default-language fallback.

1.0.0(3w ago)312221MITPHPPHP &gt;=8.1CI passing

Since Apr 24Pushed 3w ago2 watchersCompare

[ Source](https://github.com/InitPHP/Translator)[ Packagist](https://packagist.org/packages/initphp/translator)[ RSS](/packages/initphp-translator/feed)WikiDiscussions main Synced today

READMEChangelog (2)Dependencies (4)Versions (4)Used By (1)

InitPHP Translator
==================

[](#initphp-translator)

A micro multi-language (i18n) translation library for PHP. Load language packs from plain PHP files, look up keys (including dot-delimited nested keys), interpolate `{name}` placeholders, and fall back to a default language when a translation is missing.

[![Latest Stable Version](https://camo.githubusercontent.com/b5275715b9294ae6dd7019acb65816eb77f47c70d26c7b9adc2fbd8ee9eba407/687474703a2f2f706f7365722e707567782e6f72672f696e69747068702f7472616e736c61746f722f76)](https://packagist.org/packages/initphp/translator)[![Total Downloads](https://camo.githubusercontent.com/347c484a2ea8d881516dd1745b370c27f051b9ff72ca2cdc0ceba9995d25283b/687474703a2f2f706f7365722e707567782e6f72672f696e69747068702f7472616e736c61746f722f646f776e6c6f616473)](https://packagist.org/packages/initphp/translator)[![License](https://camo.githubusercontent.com/8f8065da4b5042eacd42af9776eb74adc32dbdf82496efe0171dbdb0751b04c2/687474703a2f2f706f7365722e707567782e6f72672f696e69747068702f7472616e736c61746f722f6c6963656e7365)](https://packagist.org/packages/initphp/translator)[![PHP Version Require](https://camo.githubusercontent.com/39bde31b72138f5e559162db2f2bf98a07cecd6af30a63962c3910903ad8eb88/687474703a2f2f706f7365722e707567782e6f72672f696e69747068702f7472616e736c61746f722f726571756972652f706870)](https://packagist.org/packages/initphp/translator)

Features
--------

[](#features)

- Two on-disk layouts: **one file per language**, or **one directory per language**.
- **Nested keys** via dot notation (`admin.dashboard`, `errors.http.404`).
- **Placeholder interpolation** (`Welcome {user}`) from a context map.
- **Fallback chain**: active language → inline fallback → default language → the key itself.
- No runtime dependencies. Loaded languages are cached in memory.

Requirements
------------

[](#requirements)

- PHP 8.1 or higher

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

[](#installation)

```
composer require initphp/translator
```

Quick start
-----------

[](#quick-start)

```
require_once 'vendor/autoload.php';

use InitPHP\Translator\Translator;

$lang = new Translator();
$lang->setDir(__DIR__ . '/languages/')
    ->setDefault('en');

$lang->change('tr'); // switch the active language

echo $lang->translate('hello');
```

A language file simply returns an array:

```
