PHPackages                             tigron/skeleton-i18n - 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. tigron/skeleton-i18n

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

tigron/skeleton-i18n
====================

Translation and internationalization for Skeleton

4.1.6(8mo ago)019.7k↓50%2[2 issues](https://github.com/tigron/skeleton-i18n/issues)[1 PRs](https://github.com/tigron/skeleton-i18n/pulls)1MITPHP

Since Aug 14Pushed 2mo ago4 watchersCompare

[ Source](https://github.com/tigron/skeleton-i18n)[ Packagist](https://packagist.org/packages/tigron/skeleton-i18n)[ RSS](/packages/tigron-skeleton-i18n/feed)WikiDiscussions master Synced 2d ago

READMEChangelog (10)Dependencies (4)Versions (70)Used By (1)

skeleton-i18n
=============

[](#skeleton-i18n)

Description
-----------

[](#description)

This library enables internationalization and translation features in Skeleton.

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

[](#installation)

Installation via composer:

```
composer require tigron/skeleton-i18n

```

Run the migrations to update the database schema:

```
skeleton migrate:up

```

Howto
-----

[](#howto)

Translate a Skeleton App:

```
/**
 * Create a translator object
 */
$translator = new \Skeleton\I18n\Translator($application->name);

/**
 * Attach a storage
 */
$translator_storage_po = new \Skeleton\I18n\Translator\Storage\Po();
$translator_storage_po->set_configuration([
	'storage_path' => $root_path . '/po/'
]);
$translator->set_translator_storage($translator_storage_po);

/**
 * Use an extractor to extract translations from templates
 */
$translator_extractor_twig = new \Skeleton\I18n\Translator\Extractor\Twig();
$translator_extractor_twig->set_template_path($application->template_path);
$translator->set_translator_extractor($translator_extractor_twig);

[ optional ]
/**
 * Use a translator service to automatically translate untranslated strings
 */
$tas_service = new \Skeleton\I18n\Translator\Service\Tas();
$translator->set_translator_service($tas_service);

/**
 * Save the translator
 */
$translator->save();

/**
 * To translate, get the translation object and ask for a translation
 */
$translation = $translator->get_translation( Language::get_by_name_short('nl') );
echo $translation->translate('This is a test');

```

Translator\\Storage objects can have a default configuration. This configuration will be used for any newly created Translator\\Storage object.

```
\Skeleton\I18n\Translator\Storage\Po::set_default_configuration([
	'storage_path' => $root_path . '/po/'
]);

/**
 * Optional:
 * Set another Language interface
 */
\Skeleton\I18n\Config::$language_interface = '\Language';

```

#### Use it:

[](#use-it)

Via a twig template rendered by skeleton-template-twig:

```
{% trans "To be translated" %}

```

#### Po files:

[](#po-files)

Po files can now contain the fuzzy flag: **\#, fuzzy** this makes it clear which translations still need work.

#### Translator services:

[](#translator-services)

A new translator service has been added, this is to make it possible to automatically translate untranslated strings. Translations made by a translator service will get the fuzzy flag.

Currently supported translator services:

- TAS: \\Skeleton\\I18n\\Translator\\Service\\Tas() =&gt;
- Deepl: \\Skeleton\\I18n\\Translator\\Service\\Deepl() =&gt;

###  Health Score

53

—

FairBetter than 96% of packages

Maintenance74

Regular maintenance activity

Popularity27

Limited adoption so far

Community19

Small or concentrated contributor base

Maturity78

Established project with proven stability

 Bus Factor2

2 contributors hold 50%+ of commits

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

Every ~57 days

Recently: every ~24 days

Total

66

Last Release

269d ago

Major Versions

v1.0.15 → v2.1.62020-09-09

v1.0.17 → v2.1.102020-12-15

v1.0.18 → 2.1.122021-01-29

2.1.12 → v3.0.02021-05-18

v3.0.4 → v4.0.02022-11-18

### Community

Maintainers

![](https://www.gravatar.com/avatar/8bff1383483dacb0c3f89d2d3856ae03d4cf3e80de26a2998248dd1175317285?d=identicon)[tigron](/maintainers/tigron)

---

Top Contributors

[![christopheg](https://avatars.githubusercontent.com/u/199087?v=4)](https://github.com/christopheg "christopheg (35 commits)")[![gerryd](https://avatars.githubusercontent.com/u/3003371?v=4)](https://github.com/gerryd "gerryd (13 commits)")[![RoanB](https://avatars.githubusercontent.com/u/77972728?v=4)](https://github.com/RoanB "RoanB (10 commits)")[![LionelLaffineur](https://avatars.githubusercontent.com/u/21120913?v=4)](https://github.com/LionelLaffineur "LionelLaffineur (9 commits)")[![davidvandemaele](https://avatars.githubusercontent.com/u/1914033?v=4)](https://github.com/davidvandemaele "davidvandemaele (8 commits)")[![SanderTigron](https://avatars.githubusercontent.com/u/45229883?v=4)](https://github.com/SanderTigron "SanderTigron (4 commits)")[![kvassia](https://avatars.githubusercontent.com/u/131980475?v=4)](https://github.com/kvassia "kvassia (1 commits)")

### Embed Badge

![Health badge](/badges/tigron-skeleton-i18n/health.svg)

```
[![Health](https://phpackages.com/badges/tigron-skeleton-i18n/health.svg)](https://phpackages.com/packages/tigron-skeleton-i18n)
```

###  Alternatives

[smmoosavi/php-gettext

Wrapper for php-gettext by danilo segan. This library provides PHP functions to read MO files even when gettext is not compiled in or when appropriate locale is not present on the system.

1927.0k1](/packages/smmoosavi-php-gettext)

PHPackages © 2026

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