外包的i18n内容

2.1.0 2023-01-04 08:44 UTC

This package is auto-updated.

Last update: 2024-09-19 23:36:53 UTC


README

Packagist PHP version Tests

使用Composer安装

$ composer require germania-kg/i18n

从v1版本开始的BC breaks

DGettextRenderer: 这个可调用的现在期望返回的消息包含花括号内的占位符。

已弃用

这些类在 v1 中已被使用,鼓励开发者不再使用它们。

  • Germania\i18n\ServiceProvider
  • Germania\i18n\AcceptedLanguageStringFactory

GettextMiddleware

<?php
use Germania\i18n\GettextMiddleware;

$locale = "en_GB";
$domains = ["app", "project"];
$path = "./locales";

$middleware = new GettextMiddleware($locale, $domains, $path);

LanguageNormalizer

<?php
use Germania\i18n\LanguageNormalizer;

$norm = new LanguageNormalizer;
$norm("de-de"); // "de_DE"

Translator

构造函数需要一个 client 和一个 default 语言。

<?php
use Germania\i18n\Translator;

$t = new Translator("de", "en");

echo $t("Just a string, nothing to translate");
// "Just a string, nothing to translate"

$var = array(
  "de" => "Deutsch: Nur eine String-Variable",
  "en" => "English: Just a string variable"
);

echo $t($var);
// "Deutsch: Nur eine String-Variable"

echo $t($var, "en");
// "English: Just a string variable"

DGettextRenderer

围绕给定域的 dgettext 的可调用包装器。可选地,在运行时根据第二个参数提供的变量占位符进行展开

<?php
use Germania\i18n\DGettextRenderer;

$domain = "app";
$dgr = new DGettextRenderer($domain);

echo $dgr("MsgId");
// "Some translated {placeholder} messages"

echo $dgr("MsgId", [
  "placeholder" => "success"
]);
// "Some translated success messages"

问题

查看 完整问题列表。

开发

$ git clone https://github.com/GermaniaKG/i18n.git
$ cd i18n
$ composer install

单元测试

可以将 phpunit.xml.dist 复制到 phpunit.xml 并根据您的需求进行修改,或者保持不变。运行 PhpUnit 测试或composer脚本来执行

$ composer test
# or
$ vendor/bin/phpunit