该包已被 弃用 并不再维护。没有建议的替代包。

简单的国际化和本地化类

1.0.1 2020-02-26 17:07 UTC

This package is auto-updated.

Last update: 2022-04-26 22:22:56 UTC


README

这是一个简单的PHP国际化本地化类。

该类通过为不同语言使用单独的ini文件来实现国际化(i18n)。

安装

通过composer安装

composer require ikevinshah/i18n

不使用composer安装

  1. 下载类文件(src/i18n.php)。
  2. 将其包含在您的代码中
require_once '/path/to/i18n.php';

用法

  1. 使用 composer包括 类进行安装

  2. 根据您的应用设置变量,初始化并使用 L::word 来显示。

$i18n = new iKevinShah\i18n($language,$ini_directory,$cache_directory,$fallback_language);
$i18n->init();

注意:请确保在 $ini_directory 中存在 $language.ini 文件。例如,如果我想在当前页面上使用俄语(ru),而 $ini_directory/var/www/lang/,类将在 /var/www/lang/ru.ini 位置查找ini文件。如果找不到语言文件(ru),类将回退到使用备用语言。如果找不到 $fallback_language.ini 文件,它将抛出错误并 退出

示例 1

文件: /var/www/lang/en.ini

CURRENT_LANG = 'en'
HELLO = 'Hello'
LOGIN = 'Login';
SEARCH = 'Search'
CATEGORIES = 'Categories';
SETTINGS = 'Settings';
PREVIOUS = 'Previous';
NEXT = 'Next';
X='Y';

PHP

<?php

require 'vendor/autoload.php';

$i18n = new iKevinShah\i18n('en','/var/www/lang/','/tmp/php_cache/');
$i18n->init();

echo L::HELLO; // Hello

echo L::CATEGORIES; //Categories

示例 2

文件: /var/www/lang/fr.ini

CURRENT_LANG = 'fr'
HELLO = 'Bonjour'
LOGIN = 'Connexion';
SEARCH = 'Recherche'
BACK = 'Retour à la page précédente';
CATEGORIES = 'Catégories';
SETTINGS = 'Paramètres';
PREVIOUS = 'Précédent';
NEXT = 'Suivant';
X='Y';

PHP

<?php

require 'vendor/autoload.php';

$i18n = new iKevinShah\i18n('fr','/var/www/lang/','/tmp/php_cache/','en');
$i18n->init();

echo L::HELLO; // Bonjour

echo L::CATEGORIES; //Catégories

示例 3

文件: /var/www/lang/fr.ini -> 不存在

文件: /var/www/lang/en.ini

CURRENT_LANG = 'en'
HELLO = 'Hello'
LOGIN = 'Login';
SEARCH = 'Search'
CATEGORIES = 'Categories';
SETTINGS = 'Settings';
PREVIOUS = 'Previous';
NEXT = 'Next';
X='Y';

PHP

<?php

require 'vendor/autoload.php';

$i18n = new iKevinShah\i18n('fr','/var/www/lang/','/tmp/php_cache/','en');
$i18n->init();

echo L::HELLO; // Hello

echo L::CATEGORIES; //Categories

示例 4

文件: /var/www/lang/fr.ini -> 不存在

文件: /var/www/lang/en.ini -> 不存在

PHP

<?php

require 'vendor/autoload.php';

$i18n = new iKevinShah\i18n('fr','/var/www/lang/','/tmp/php_cache/','en');
$i18n->init(); // Error: RuntimeException: Lang file for fr does not exist. in /path/to/src/i18n.php:78

echo L::HELLO;

echo L::CATEGORIES;