manujoz / translation
用于创建多语言网站的PHP类
1.0.0
2020-10-13 11:48 UTC
Requires
- php: >=5.5.0
This package is auto-updated.
Last update: 2024-09-13 21:00:20 UTC
README
Translation是一个PHP类,用于创建或管理多语言网站。
安装
$ composer require manujoz/translation
使用
您需要创建包含文本翻译的文件。通常我们会使用名为"locales"的文件夹。
在这个文件夹中,您将为想要翻译的每种语言创建一个文件。
|ROOT
|_ locales
| |_ en-US.php
| |_ es-ES.php
| |_ fr-FR.php
|_ index.php
区域文件示例
locales/en-US.php
<?php return [ "hello" => "Hi!", "bye" => "Good bye", "login.messages.ok" => "You are logged", "signup.messages.welcome" => "Welcome to my site {name}" ] ?>
locales/es-ES.php
<?php return [ "hello" => "¡Hola!", "bye" => "Adios", "login.messages.ok" => "Estás dentro", "signup.messages.welcome" => "Bienvenido a mi sitio {name} ({email})" ] ?>
一旦创建了翻译文件,使用方式非常简单
index.php
<?php use Manujoz\Translation\Translation; require( "vendor/autoload.php" ); $TRANS = new Translation(); $TRANS->lang = "en-EN"; echo $TRANS->of( "hello" ) . "<br>"; echo $TRANS->of( "signup.messages.welcome", [ "name" => "Manu Overa", "email" => "myemail@mydomain.com" ] ) . "<br>"; echo $TRANS->of( "bye" ) . "<br>"; $TRANS->lang = "es-ES"; echo $TRANS->of( "hello" ) . "<br>"; echo $TRANS->of( "signup.messages.welcome", [ "name" => "Manu Overa", "email" => "myemail@mydomain.com" ] ) . "<br>"; echo $TRANS->of( "bye" ) . "<br>"; ?>
文档
构造函数
当类被初始化时,您可以传递参数作为翻译文件所在文件夹的路径。默认情况下,它将在根文件夹中查找名为"locales"的文件夹,但如果您希望将其保存在不同的文件夹中,例如"translates/section1/"、"translates/section2/",您可以告诉类在哪里查找翻译文件
|ROOT
|_ translates
| |_ section1
| | |_ en-US.php
| | |_ es-ES.php
| | |_ fr-FR.php
| |_ section2
| | |_ en-US.php
| | |_ es-ES.php
| | |_ fr-FR.php
|_ index.php
<?php use Manujoz\Translation\Translation; require( "vendor/autoload.php" ); $TRANS = new Translation( "translates/section1" ); ?>
请注意,您需要输入相对于根文件夹的路径。这样,您可以按网站的各个部分创建翻译文件,例如,或按您想要的任何方式组织它们。
of()方法
使用of()方法进行翻译,该方法接受两个参数
$TRANS->of( $key, $params = array() );
$key
它是将要搜索文件的数组的键,以返回相应的文本。
$params (可选)
这是一个数组,包含可以添加到文本中的单词,如上例所示。
set_enclosing_chars()方法
默认情况下,在翻译文件的文本中,使用这些键{}作为封装字符。但如果出于某种原因您想更改封装字符,可以使用以下方法
<?php $TRANS->set_enclosing_chars( [ "[[", "]]" ] ); ?>
locales/en-US.php
<?php return [ "hello" => "Hi!", "bye" => "Good bye", "login.messages.ok" => "You are logged", "signup.messages.welcome" => "Welcome to my site {not will be replaced} [[willBeReplaced]]" ] ?>