该软件包最新版本(1.1.1)没有提供许可证信息。

PHP的i18n库

1.1.1 2017-03-08 11:51 UTC

This package is not auto-updated.

Last update: 2024-09-20 07:20:04 UTC


README

Latest Stable Version Total Downloads Build Status

PHP I18n

PHP I18n是一个用于在代码外部存储本地化字符串的简单库。

安装

将以下require添加到您的composer.json文件中。

{
    "require": {
        "philasearch/i18n": "1.1.*"
    }
}

设置

语言文件夹

为了使用i18n,您需要一个语言文件夹。按照惯例,此文件夹为config/locales,但您可以选择任何您想要的。在这个文件夹中,每个支持的语言都需要自己的文件夹(config/locales/enconfig/locales/de、...)。

在PHP中使用

您可能会在自己的实现中使用I18n类,因此您只需在您的代码中创建一个包装类即可。要创建此类,只需给出您之前决定的语言文件夹的路径。

<?php

use Philasearch\I18n\I18n as Lang;

$lang = new Lang( dirname(__FILE__) . '/config/locales' );

示例用法

注意: 目前,仅支持yaml文件。

对于此示例,语言文件夹位于config/locales。

创建一个文件config/locales/en/example.yml

foo: bar
nested:
  foo: bar
var: foo :var
plural:
  one: A :color apple
  other: :count :color apples

以及方言文件config/locales/en_US/example.yml

foo: murica

注意: 注意yml文件名,因为它将是您键的第一部分(example.yml => example)。

现在我们可以加载翻译类并获取我们的翻译字符串。

<?php

use Philasearch\I18n\I18n as Lang;

$lang = new Lang( dirname(__FILE__) . 'config/locales' );

/**
 * normal translated string
 *
 * @param string $locale
 * @param string $key
 */
$lang->get( 'en', 'example.foo' ); // returns 'bar'


/**
 * nested translated strings
 *
 * @param string $locale
 * @param string $key
 */
$lang->get( 'en', 'example.nested.foo' ); // returns 'bar'

/**
 * Variable translated string
 *
 * @param string $locale
 * @param string $key
 */
$lang->get( 'en', 'example.var', ['var' => 'bar']); // returns 'foo bar'

/**
 * Plural tranlated strings
 *
 * @param string $locale
 * @param string $key
 * @param int    $count
 */
$lang->get( 'en', 'example.plural', ['color' => 'red'], 1); // returns 'A red apple'
$lang->get( 'en', 'example.plural', ['color' => 'red'], 2); // returns '2 red apples'

/**
 * Dialect translated strings
 */
$lang->get( 'en_US', 'example.foo' );         // returns 'murica'
$lang->get( 'en_US', 'example.nested.foo' );  // returns 'bar' as it falls back to en