mateodioev/multi-lang

一个简单的PHP类,用于管理多语言网站。

v0.2.4 2024-04-11 23:35 UTC

This package is auto-updated.

Last update: 2024-09-12 00:29:28 UTC


README

一个用于在项目中管理多语言的简单包。

安装

composer require mateodioev/multi-lang

使用

  • 创建一个目录来保存你的语言文件,例如 resources/lang

  • 为你要支持的每种语言创建一个文件,例如 en.jsones.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();