mateodioev / multi-lang
一个简单的PHP类,用于管理多语言网站。
v0.2.4
2024-04-11 23:35 UTC
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.52
README
一个用于在项目中管理多语言的简单包。
安装
composer require mateodioev/multi-lang
使用
-
创建一个目录来保存你的语言文件,例如
resources/lang
。 -
为你要支持的每种语言创建一个文件,例如
en.json
和es.json
。
文件 en.json
{ "english_name": "English", "name": "English", "data": { "welcome": "Welcome {full_name} to our website", "goodbye": "Goodbye dear {full_name}" } }
文件 es.json
{ "english_name": "Spanish", "name": "Español", "data": { "welcome": "Bienvenido {full_name} a nuestro sitio web", "goodbye": "Adiós querido {full_name}" } }
- 配置目录
use Mateodioev\MultiLang\Cache\InMemoryCache; use Mateodioev\MultiLang\Lang; Lang::setup( dir: __DIR__ . '/resources/lang', cache: new InMemoryCache() // Optional );
- 格式化字符串
// If the key does not exist it will return null Lang::get('es')->data('welcome')?->format(['full_name' => 'Mateo']); // Output: Bienvenido Mateo a nuestro sitio web
文件格式
english_name
:语言的英文名称。name
:语言在其自身的语言中的名称。data
:语言字符串的键值对。key
:字符串的键。value
:字符串的值。你可以使用占位符来替换它们。
警告:如果json文件不包含这些键或不同的数据,将导致错误。
验证文件
你可以验证文件以检查它们是否具有正确的格式。
警告:不要在生产环境中使用。这会加载和解析所有文件
Lang::compareData();