vulcanphp/translator

Simple Translator 是用于 PHP 应用的多语言文本翻译工具

v1.0 2023-12-12 07:16 UTC

This package is auto-updated.

Last update: 2024-09-12 08:48:01 UTC


README

Simple Translator 是用于 PHP 应用的多语言文本翻译工具

安装

建议您使用 Composer 来安装此 PHP 简单翻译器

$ composer require vulcanphp/translator

开始使用

安装此 PHP 简单翻译器后,在您的应用中初始化它。

<?php
// index.php

use VulcanPhp\Translator\Drivers\GoogleTranslatorDriver;
use VulcanPhp\Translator\Manager\TranslatorFileManager;
use VulcanPhp\Translator\Translator;

require_once __DIR__ . '/vendor/autoload.php';

// initialize translator advanced
Translator::init(
    // user google translator driver to translate text
    new GoogleTranslatorDriver(
        // use filesystem manager to store translated text
        // local filesystem configuration
        new TranslatorFileManager([
            // source language from
            'source' => 'en',

            // target/convert language to
            'convert' => 'bn',

            // suffix for translated file to make it slim, EX: 'en-[admin].json'
            // [admin] is suffix for this certain language file
            'suffix' => null,

            // local direcotry to store translated files
            'local_dir' => __DIR__ . '/translate',
        ])
    )
);
// or, simply use helper function
init_translator([
    // local filesystem configuration for manager
    'convert' => 'bn',
    // ...
]);

// IMPORTANT:: there is a cool feature for google translator
// this is lazyLoad, if you use about hundred+ times to translate texts
// from google, then it will make the process slower. to make it faster,
// enable lazy translator just after initialize the translate instance in index.php
// this is optional but HIGHLY RECOMMENDED
enable_lazy_translator();

// Now, simply call translate() function allover in your application
var_dump(translate('Hello World!'));

// ...

它是如何工作的?

此翻译器可以使用不同的外部源来翻译文本并将其存储在应用程序的某个位置。作为一个源,此翻译器内置了一个驱动器(GoogleTranslatorDriver)来翻译文本。为了将其存储在本地,此翻译器还包含一个管理器(TranslatorFileManager)来完成此操作... 对于高级使用,您可以简单地添加新的源,如驱动器、管理器,只需遵循此类接口即可

直接使用 GoogleTranslatorEngine

<?php
// index.php

use VulcanPhp\Translator\Engine\Google\GoogleTranslator;

require_once __DIR__ . '/vendor/autoload.php';

// create a instance of google translator engine
$engine = GoogleTranslator::create();

// translate a text from google
// translate with all languages that supported by google translator
var_dump($engine->translateFromString('Today is a sunny day', 'en', 'bn'));
var_dump($engine->translateFromString('Today is a sunny day', 'en', 'fr'));
var_dump($engine->translateFromString('Today is a sunny day', 'en', 'es'));

// translate multiple text at a time from google
var_dump(
    $engine->translateFromArray(
        [
            'Today is a sunny day',
            'What should i wear today?',
        ],
        'en',
        'bn'
    )
);

// ...

为多种语言创建多个翻译器实例

<?php
// index.php

use VulcanPhp\Translator\Drivers\GoogleTranslatorDriver;
use VulcanPhp\Translator\Manager\TranslatorFileManager;
use VulcanPhp\Translator\Translator;

require_once __DIR__ . '/vendor/autoload.php';

// create a translator for bengali language
$Translator_BN = Translator::create(
        new GoogleTranslatorDriver(
            new TranslatorFileManager([
                'source'    => 'en',
                'convert'   => 'bn',
                'local_dir' => __DIR__ . '/translate',
            ])
        )
    )
    ->getDriver();

var_dump($Translator_BN->translate('Hello World'));

// create another translator for spanish language 
$Translator_ES = Translator::create(
        new GoogleTranslatorDriver(
            new TranslatorFileManager([
                'source'    => 'en',
                'convert'   => 'es',
                'local_dir' => __DIR__ . '/translate',
            ])
        )
    )
    ->getDriver();

var_dump($Translator_ES->translate('Hello World'));

// ...