a3gz/simple-locale

Simple locale

1.7.1 2019-09-06 00:28 UTC

This package is auto-updated.

Last update: 2024-09-06 11:43:41 UTC


README

安装

composer require a3gz/simple-locale

设置

创建一个具有以下设置的关联数组

  1. languages: 一个语言代码数组。这里使用的代码完全是任意的。
  2. env: 每种语言的环境设置,以便本地化器知道如何格式化货币和日期等。
  3. dictionaries: 这里我们提供字典文件,其中字符串键与翻译相关联。

典型的设置数组可能如下所示

$settings = [
  'languages' => ['en'],
  'env' => [
    'en' => [
      /* Numbers */
      'decimals' => 2,
      'decimalPoint' => '.',
      'thousandsSeparator' => ' ',
      /* Currency */
      'symbolBefore' => '$ ',
      'symbolAfter' => '',
      /* Dates */
      'timestamp' => 'Y-m-d H:i:s',
      'short' => 'Y/m/d',
      'long' => 'M j, Y',
      'longer' => 'M j, Y \a\t H:i:s',
    ],
    'fr' => false,
    'es' => false,
  ],
  'dictionaries' => [
    function($languageCode) {
      $base = dirname(__DIR__) . '/domain/locale';
      $dn = "{$base}/{$languageCode}/dictionary.php";
      if (is_readable($dn)) {
        return @include($dn);
      }
    },
  ],
];

关于字典

字典是一个PHP文件,返回一个具有字符串键和以下所示翻译的关联数组

return [
  'hello world' => 'Hola mundo!',
];

一个应用程序可以有一个或多个字典,这就是为什么期望 dictionaries 部分是一个数组。上面的演示显示了最简单的形式,其中所有翻译都位于一个文件中。

尽管这不是必需的,但建议将字典放在与 languages 部分下定义的对应语言代码命名的目录中。注意构建字典文件完整路径的部分

$dn = "{$base}/{$code}/dictionary.php";

使用方法

$locale = new Locale($settings);

echo $locale->dictionary->say('hello world');
echo $locale->currency->format12.50);