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.

Maintainers

Package info

github.com/axproo/lang-manager

pkg:composer/axproo/lang-manager

Statistics

Installs: 5

Dependents: 1

Suggesters: 0

Stars: 0

Open Issues: 0

1.0.3 2025-11-26 16:02 UTC

This package is auto-updated.

Last update: 2026-02-26 17:08:05 UTC


README

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

  • 📂 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

composer require axproo/lang-manager

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

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

  • 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

Exemple dictionaries/en-fr.php :

<?php
return [
    'login.success' => 'Connexion réussie',
    'login.unauthorized' => 'Accès non autorisé',
];

Exemple dictionaries/en-en.php :

<?php
return [
    'login.success' => 'Login successful',
    'login.unauthorized' => 'Unauthorized access',
];

Exemple de fichiers générés

src/
└── Language/
    ├── fr/
    │   ├── Auth.php
    │   ├── Users.php
    │   └── Token.php
    └── en/
        ├── Auth.php
        ├── Users.php
        └── Token.php

Chaque clé trouvée est automatiquement placée dans le bon module.

Contribution

Les contributions sont les bienvenues ! Pour ajouter une nouvelle langue, créez simplement un fichier en-xx.php dans le dossier dictionaries et exécutez LangManager.

Vous pouvez aussi générer un fichier de langue en-xx.php en le spécifiant dans locales lors de la création de langues :

$locales = ['fr', 'en', 'es', 'de'];

La librairie générera automatiquement les fichiers nécessaires.

📄 Licence

MIT License – Vous pouvez utiliser cette librairie librement dans vos projets.

👨‍💻 Auteur

Développé par Christian Djomou. Pour toute contribution, suggestion ou amélioration, ouvrez une issue ou un pull request.