azwhosting/php_translate

一个简单的PHP翻译包。

v1.0.2 2024-07-15 00:48 UTC

This package is auto-updated.

Last update: 2024-09-15 01:13:13 UTC


README

PHP Translate是一个简单的PHP项目,用于添加翻译支持。

安装

要使用Composer安装此库,请在您的终端中运行以下命令

composer require azwhosting/php_translate

使用

库配置

  1. 将Translate类包含到项目中 :

    在您的主文件中(例如,index.php),包含Translate类并初始化全局对象

    require 'vendor/autoload.php';
    
    use PhpTranslate\Translate;
    
    $translator = new Translate();
  2. 创建语言文件 :

    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
      ];
  3. 在应用程序中使用翻译 :

    使用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文件。