承接 impulsephp/translation 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

impulsephp/translation

最新稳定版本:v1.0.0-beta

Composer 安装命令:

composer require impulsephp/translation

包简介

Modular translation system for the ImpulsePHP framework with multilingual support, domain based files and automatic fallback.

README 文档

README

impulsephp/translation fournit le système de traduction d’ImpulsePHP. Le package charge des fichiers de langue par domaine, gère plusieurs locales et applique automatiquement un fallback vers l’anglais lorsque la traduction demandée n’existe pas dans la langue courante.

Ce que fait le package

  • charge les traductions par domaine (messages, validation, ui, etc.) ;
  • sélectionne une locale active ;
  • remplace les paramètres dynamiques dans les chaînes ;
  • permet de déclarer des namespaces pour les traductions de packages ;
  • effectue un fallback automatique sur en.

Prérequis

  • PHP 8.2 ou supérieur.

Installation

composer require impulsephp/translation

Si votre application ne gère pas l’auto-découverte, enregistrez Impulse\Translation\TranslatorProvider dans votre configuration.

Structure des traductions

Par défaut, le traducteur lit les fichiers dans un dossier translations/ organisé par locale.

translations/
├── en/
│   └── messages.php
└── fr/
    └── messages.php

Exemple de fichier translations/fr/messages.php :

<?php

return [
    'hello' => 'Bonjour',
    'welcome' => 'Bienvenue {name}',
];

Exemple d’usage complet

use Impulse\Translation\Translator;

$translator = new Translator('fr');

echo $translator->trans('messages.hello');
echo $translator->trans('messages.welcome', ['name' => 'Guillaume']);

$translator->setLocale('en');
echo $translator->trans('messages.hello');

Si une clé n’existe pas en français mais existe en anglais, le package renvoie automatiquement la valeur anglaise.

Utiliser un namespace de package

$translator->addNamespace('ui', '/chemin/vers/un/package/translations');

echo $translator->trans('ui::ui.select.search_placeholder');

Détection automatique de la langue

Lorsque vous n’indiquez pas explicitement la locale au constructeur, le package tente de la déterminer dans l’ordre suivant :

  1. $_GET['lang']
  2. $_SESSION['lang']
  3. l’en-tête HTTP_ACCEPT_LANGUAGE
  4. la configuration locale
  5. le fallback en

La liste des locales supportées peut être définie dans la configuration supported.

Utilisation via le conteneur

Le provider enregistre Impulse\Translation\Contract\TranslatorInterface dans le conteneur.

use Impulse\Translation\Contract\TranslatorInterface;

$translator = $container->get(TranslatorInterface::class);

Aller plus loin

impulsephp/translation s’intègre directement avec :

  • impulsephp/validator pour les messages d’erreur ;
  • impulsephp/ui pour les libellés des composants ;
  • l’application principale via locale et supported.

Tests

composer test

Licence

MIT

统计信息

  • 总下载量: 4
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 1

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-08-03

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固