PHPackages                             axproo/lang-manager - 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. axproo/lang-manager

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

axproo/lang-manager
===================

Un générateur de fichiers de langue PHP réutilisable qui analyse les projets et les bibliothèques à la recherche de clés lang() et crée automatiquement des fichiers de langue structurés.

1.0.3(5mo ago)05MITPHPPHP &gt;=8.0

Since Nov 25Pushed 5mo agoCompare

[ Source](https://github.com/axproo/lang-manager)[ Packagist](https://packagist.org/packages/axproo/lang-manager)[ RSS](/packages/axproo-lang-manager/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (4)Used By (0)

Axproo LangManager
==================

[](#axproo-langmanager)

LangManager est une librairie PHP pour gérer la traduction et la génération des fichiers de langue dans vos projets.
Elle scanne automatiquement votre code à la recherche des clés **`lang('module.key')`**, met à jour les fichiers de langue existants, ajoute les nouvelles clés avec un placeholder, et supprime les clés non utilisées.

Fonctionnalités
---------------

[](#fonctionnalités)

- 📂 **Scan automatique** : Parcourt tous les fichiers PHP de votre projet pour détecter les clés `lang('module.key')`.
- 🌐 **Gestion multilingue** : Génère et met à jour les fichiers pour plusieurs langues (`fr`, `en`, etc.).
- 🆕 **Ajout automatique des nouvelles clés** avec placeholder `__TRANSLATE__`.
- 🧹 **Nettoyage des clés obsolètes** : Supprime les clés non utilisées dans le projet.
- 📝 **Rapport CLI** : Affiche les clés en attente de traduction.
- 🔄 **Réutilisable** : Peut être utilisé dans n’importe quel projet PHP ou librairie.

📦 Installation
--------------

[](#-installation)

```
composer require axproo/lang-manager
```

Structure du projet
-------------------

[](#structure-du-projet)

```
Axproo/LangManager
├── src/
│   ├── LangManager.php
│   ├── Scanner.php
│   ├── FileGenerator.php
│   ├── DictionaryLoader.php
│   ├── Helpers.php
│   └── LangReporter.php
├── dictionaries/
│   ├── en-fr.php
│   └── en-en.php
└── vendor/
```

Exemple d’utilisation
---------------------

[](#exemple-dutilisation)

Dans votre projet :

Si vous lancer les test à partir de composer, vous pouvez faire ceci:

```
composer dump-autoload
```

Créer un fichier nommé example.php à la racine de votre projet, et entré le code ci-dessous

```
require __DIR__ . '/vendor/autoload.php';

use LangManager\LangManager;

$projectDir = __DIR__ . '/src';
$outputDir = __DIR__ . '/src/Language';
$locales = ['fr', 'en', 'es'];

$langManager = new LangManager();
$langManager->run($projectDir, $outputDir, $locales);
```

en suite lancer dans votre CLI:

```
php exampe.php
```

Explication
-----------

[](#explication)

- Les clés nouvelles sont ajoutées automatiquement dans les fichiers de langue avec le placeholder **TRANSLATE**.
- Les anciennes clés non utilisées sont supprimées du dictionnaire et des fichiers de langue.
- Les traductions existantes sont conservées si elles ne contiennent pas le placeholder.
- Le rapport CLI affiche toutes les clés encore à traduire.

Fichiers de dictionnaire
------------------------

[](#fichiers-de-dictionnaire)

Exemple dictionaries/en-fr.php :

```
