azwhosting / php_translate
一个简单的PHP翻译包。
v1.0.2
2024-07-15 00:48 UTC
Requires
- php: >=7.0
Requires (Dev)
- phpunit/phpunit: ^11.2
README
PHP Translate是一个简单的PHP项目,用于添加翻译支持。
安装
要使用Composer安装此库,请在您的终端中运行以下命令
composer require azwhosting/php_translate
使用
库配置
-
将Translate类包含到项目中 :
在您的主文件中(例如,
index.php
),包含Translate
类并初始化全局对象require 'vendor/autoload.php'; use PhpTranslate\Translate; $translator = new Translate();
-
创建语言文件 :
在
languages
目录中创建语言文件。例如-
languages/en_lang.php
:return [ 'welcome' => 'Welcome', 'goodbye' => 'Goodbye', // Ajoutez plus de traductions ici ];
-
languages/fr_lang.php
:return [ 'welcome' => 'Bienvenue', 'goodbye' => 'Au revoir', // Ajoutez plus de traductions ici ];
-
-
在应用程序中使用翻译 :
使用
translate
函数从PHP文件中获取翻译echo Translate::__('welcome'); echo Translate::__('goodbye');
您也可以通过以下POST表单设置语言
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Example</title> </head> <body> <form method="post" action=""> <label for="language">Choose language:</label> <select name="language" id="language" onchange="this.form.submit()"> <option value="en" <?= $translator->getLanguage() == 'en' ? 'selected' : '' ?>>English</option> <option value="fr" <?= $translator->getLanguage() == 'fr' ? 'selected' : '' ?>>Français</option> <!-- Ajoutez plus d'options pour d'autres langues ici --> </select> </form> <p><?= Translate::__('hello world') ?></p> <p><?= Translate::__('welcome') ?></p> <p><?= Translate::__('goodbye') ?></p> </body> </html>
项目结构
安装库后,您的项目目录结构如下
php_translate
├── languages
│ ├── en_lang.php
│ └── fr_lang.php
├── src
│ ├── SessionManager.php
│ └── Translate.php
├── tests
│ └── TranslateTest.php
├── vendor
│ └── autoload.php
├── index.php
├── composer.json
└── README.md
Translate类的方法
- setLanguage($language):设置语言并加载相应的翻译。
- getLanguage():返回当前语言。
- translate($key):返回键的翻译,如果未找到翻译则返回键本身。
- __($key):静态方法,用于全局返回键的翻译。
翻译示例
要添加更多翻译,只需修改语言文件,添加必要的键值对即可
-
languages/en_lang.php
:return [ 'welcome' => 'Welcome', 'goodbye' => 'Goodbye', 'hello_world' => 'Hello World', // Ajoutez plus de traductions ici ];
-
languages/fr_lang.php
:return [ 'welcome' => 'Bienvenue', 'goodbye' => 'Au revoir', 'hello_world' => 'Bonjour le monde', // Ajoutez plus de traductions ici ];
运行测试
本项目使用PHPUnit进行单元测试。要运行测试,请按照以下步骤操作
安装开发依赖
如果尚未安装,请安装开发依赖
composer install
运行测试
要运行所有测试,请使用以下命令
./vendor/bin/phpunit --bootstrap vendor/autoload.php tests
测试结果
您应该会看到一个输出,显示通过测试的数量和断言的数量。例如
PHPUnit 11.2.7 by Sebastian Bergmann and contributors.
Runtime: PHP 8.2.12
...... 6 / 6 (100%)
Time: 00:00.045, Memory: 6.00 MB
OK (6 tests, 12 assertions)
贡献
欢迎贡献!请提交拉取请求或创建问题来讨论您想添加到项目中的内容。
许可证
本项目采用MIT许可证。有关详细信息,请参阅LICENSE文件。