gokhankurtulus/multilanguage

一个用于多语言项目的简单PHP库。

1.0.0 2023-12-31 08:15 UTC

This package is auto-updated.

Last update: 2024-09-30 01:57:37 UTC


README

License: MIT PHP Version Release

一个用于多语言项目的简单PHP库。

安装

您可以使用Composer安装此库。运行以下命令

composer require gokhankurtulus/multilanguage

用法

首先您需要创建一个目录,并在该目录下创建所需的JSON格式的语言。下面提供了示例JSON文件。

示例层级

project
   ├── Lang
   │    ├── de.json
   │    ├── en.json
   │    └── tr.json
   └── index.php

en.json

{
  "Hello": "Hello #name# $lastname$",
  "Homepage": "Homepage"
}

tr.json

{
  "Hello": "Selam #name# $lastname$",
  "Homepage": "Anasayfa"
}

de.json

{
  "Hello": "Hallo #name# $lastname$",
  "Homepage": "Startseite"
}

index.php

use MultiLanguage\MultiLanguage;

MultiLanguage::setDirectoryPath(__DIR__ . DIRECTORY_SEPARATOR . "Lang");
MultiLanguage::setAllowedLanguages(["en", "tr", "de"]);
MultiLanguage::setDefaultLanguage("en");
MultiLanguage::setCurrentLanguage("tr");

// Output will be "Homepage" because $lang parameter is set to 'en'.
// If $lang is null or empty tries to get current language
// if current is not defined then tries to get default language
// if both not defined and $lang is not given throws an LanguageException
echo MultiLanguage::translate('Homepage', 'en');

// Output will be "Anasayfa" because current language is 'tr'.
echo MultiLanguage::translate('Homepage');

// Output will be "Hallo John Doe".
// Specify unique keys in the language file then you can manipulate them.
// In this example, if your key is located many places in string it will change all of them.
echo MultiLanguage::translate('Hello', 'de', ['#name#' => 'John', '$lastname$' => 'Doe']);

公开方法

MultiLanguage::translate(string  $text, ?string $lang = null, array $replacement = []);

MultiLanguage::getDirectoryPath();
MultiLanguage::setDirectoryPath(string $directoryPath, bool $force = false);

MultiLanguage::getAllowedLanguages();
MultiLanguage::setAllowedLanguages(array $languages);
MultiLanguage::isAllowedLanguage(string $lang);

MultiLanguage::getDefaultLanguage();
MultiLanguage::setDefaultLanguage(string $lang);

MultiLanguage::getCurrentLanguage();
MultiLanguage::setCurrentLanguage(string $lang);

许可证

MultiLanguage 是一个开源软件,根据 MIT 许可证 发布。您可以在项目中自由修改和使用它。

贡献

欢迎对 MultiLanguage 的贡献!如果您发现任何问题或对改进有建议,请创建问题或提交一个 pull request 到 GitHub 仓库