jelix / simplelocalization
一个用于操作本地化消息的简单类
v1.7.2
2022-10-13 08:58 UTC
Requires
- php: >=7.4.0
Requires (Dev)
- phpunit/phpunit: ^8.5.30
This package is not auto-updated.
Last update: 2024-09-26 18:37:29 UTC
README
这是一个用于加载和提供翻译字符串的简单类,用于本地化。
它以前在Jelix框架中使用。
安装
您可以使用Composer安装它。在您的项目中
composer require "jelix/simplelocalization"
用法
首先创建语言文件。您可以将所有语言的字符串存储在单个文件中,或者每个语言一个文件。每个文件都是一个PHP数组,每个字符串都有一个键。
示例。这是一个英文字符串的文件 translation.en.php
<?php return array( 'welcome' => 'Hello world', 'thank.you' => 'Thank you' );
现在为法语文本的 translation.fr.php
<?php return array( 'welcome' => 'Bonjour le monde', 'thank.you' => 'Merci' );
或者如果您选择一个文件 translation.php
<?php return array( 'en' => array( 'welcome' => 'Hello world', 'thank.you' => 'Thank you' ), 'fr' => array( 'welcome' => 'Bonjour le monde', 'thank.you' => 'Merci' ) );
现在在您的PHP代码中,实例化一个容器
// with multiple files $locales = new \Jelix\SimpleLocalization\Container('translation.%LANG%.php'); // note that %LANG% in the path will be replace by a lang code // with a single file $locales = new \Jelix\SimpleLocalization\Container('translation.php'); // with an array of file name. You can mix path with `%LANG%` tag and path without it $locales = new \Jelix\SimpleLocalization\Container(array('translation.%LANG%.php', 'other_translation.php')); // with an array of strings $locales = new \Jelix\SimpleLocalization\Container(array( 'en' => array( 'welcome' => 'Bonjour le monde', 'thank.you' => 'Merci' ), 'fr' => array( 'welcome' => 'Bonjour le monde', 'thank.you' => 'Merci' ) ));
构造函数的第二个参数,您可以提供一个语言代码。如果没有提供,当前语言将从 $_SERVER['HTTP_ACCEPT_LANGUAGE']
中猜测;
现在,从其键检索字符串
$str = $locales->get('welcome');
就是这样...