davidlienhard / i18n
🐘 国际化使用的 PHP 库
2.0.4
2022-11-07 20:56 UTC
Requires
- php: ^8.0
- league/flysystem: ^3
- nette/neon: ^3
- symfony/yaml: ^6
Requires (Dev)
README
🐘 国际化使用的 PHP 库
设置
您可以通过 composer
使用以下命令安装:
composer require davidlienhard/i18n:^2
注意:davidlienhard/i18n 需要 PHP 8.0
如何使用
1. 创建语言文件
创建至少一个语言文件。支持的文件类型包括 json
、yaml
、yml
或 ini
。
./lang/en.yml
(英文)
save: Save greeting: Hi %1
./lang/de.yml
(德语)
save: Speichern greeting: Hallo %1
2. 加载类
如果可能,请使用 composer 自动加载器,或者手动在 src
文件夹中包含文件
3. 创建对象
<?php declare(strict_types=1); use DavidLienhard\i18n\i18n; $i18n = new i18n;
4. 设置选项
您可以通过构造函数直接设置一些选项,或者通过设置方法
$i18n = new i18n( filePath: "./lang/{LANGUAGE}.yml", cachePath: "./cache/", fallbackLang: "en", prefix: "L" ); $i18n->setNamespace("YourApp\Translations");
以下为可用的设置方法
setFilePath(string $filePath)
:设置语言文件的路径setCachePath(string $cachePath)
:设置缓存目录的路径setFallbackLang(string $fallbackLang)
:设置备用语言setMergeFallback(bool $mergeFallback)
:是否合并备用语言setPrefix(string $prefix)
:设置包含翻译的类的名称/前缀setForcedLang(string $forcedLang)
:强制使用的语言setSectionSeparator(string $sectionSeparator)
:用于连接节段的字符
5. 初始化类/创建缓存文件
$i18n->init();
这将创建必要的缓存文件,并使用给定的命名空间和前缀/类名加载新的翻译数据。
6. 使用翻译数据
use YourApp\Translations\L; echo L::save; // Save / Speichern echo L::get("save"); // Save / Speichern echo L::greeting("David"); // Hi David // Hallo David echo L::get("greeting", "David"); // Hi David // Hallo David
许可证
MIT 许可证 (MIT)。有关更多信息,请参阅 LICENSE。