ikevinshah / i18n
该包已被 弃用 并不再维护。没有建议的替代包。
简单的国际化和本地化类
1.0.1
2020-02-26 17:07 UTC
Requires
- php: ^7.0
This package is auto-updated.
Last update: 2022-04-26 22:22:56 UTC
README
这是一个简单的PHP国际化本地化类。
该类通过为不同语言使用单独的ini文件来实现国际化(i18n)。
安装
通过composer安装
composer require ikevinshah/i18n
不使用composer安装
- 下载类文件(src/i18n.php)。
- 将其包含在您的代码中
require_once '/path/to/i18n.php';
用法
-
使用
composer或包括类进行安装 -
根据您的应用设置变量,初始化并使用
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;