manujoz/translation

用于创建多语言网站的PHP类

1.0.0 2020-10-13 11:48 UTC

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]]"
]

?>