niyko/transpicious

Transpicious可以将您网站的内容自动转换为任何您想要的语言,您也可以在需要时提供自定义翻译。Transpicious支持Laravel、Codeigniter和普通PHP。

1.0.0 2020-01-07 13:50 UTC

This package is auto-updated.

Last update: 2024-09-23 22:46:40 UTC


README

Transpicious logo

Transpicious可以将您网站的内容自动转换为任何您想要的语言。

是的,您听对了,现在您可以用任何语言编写网站内容,用户可以随时将其更改为其他任何语言。Transpicious可以自动将网站内容转换为90种受支持的任何一种语言。Transpicious支持Laravel、Codeigniter和核心PHP。这是一个非常有用的包,可以将多语言(多地域)功能集成到您的代码中。您也可以在需要时提供自定义翻译。

🌀 简单安装,即使是婴儿也能做到 👶

您可以通过Composer或下载源代码来安装。您可以通过Composer或从GitHub仓库下载源代码来安装Transpicious。继续阅读以了解更多关于安装Transpicious的信息。别担心,它超级简单。

如果您正在使用Laravel

1. 从项目文件夹打开终端,并在命令行中运行此命令

    composer require niyko/transpicious

2. 将此行添加到您的config/app.php文件中的aliases数组中,如下所示

    'Transpicious' => Niyko\Transpicious\Transpicious::class

不要删除数组中的其他类,只需将上面的行添加到其中即可

添加行到文件后,config/app.php中的aliases数组可能看起来像这样。

例如
'aliases' => [
        'Validator' => Illuminate\Support\Facades\Validator::class,
        'View' => Illuminate\Support\Facade.................
        .......
        .......
        'Transpicious' => Niyko\Transpicious\Transpicious::class
],

3. 使用Transpicious编写内容

Laravel视图中使用Transpicious
    <body>
        <h1>{!! Transpicious::translate('hello') !!}</h1>
        <p>{!! Transpicious::translate('world') !!}</p>
    </body>
或在Laravel控制器中使用Transpicious
     return Transpicious::translate('world');

4. 从用户部分更改语言

     Transpicious::set_translate_to('es');   // es is the language code

您可以在此处找到完整的语言代码列表,点击这里

如果您正在使用Codeigniter

1. 从您项目中的application文件夹打开终端,并在命令行中运行此命令

    composer require niyko/transpicious

2. 打开YOUR PROJECT/application/config.php并更改$config['composer_autoload']的值为TRUE

如下所示

    $config['composer_autoload'] = TRUE;

此行将出现在大约140行左右

3. 使用Transpicious编写内容

Codeigniter视图中使用Transpicious

在视图顶部添加此行

    <?php
        use Niyko\Transpicious\Transpicious;
    ?>

然后在视图的HTML中使用Transpicious,如下所示

    <body>
        <h1><?php echo Transpicious::translate('hello') ?></h1>
        <p><?php echo Transpicious::translate('world') ?></p>
    </body>
或在Codeigniter控制器中使用Transpicious

在视图顶部添加此行

     use Niyko\Transpicious\Transpicious;

然后在控制器中使用Transpicious,如下所示

     return Transpicious::translate('world');

4. 从用户部分更改语言

在视图顶部添加此行

     use Niyko\Transpicious\Transpicious;

要更改语言,请使用

     Transpicious::set_translate_to('es');   // es is the language code

您可以在此处找到完整的语言代码列表,点击这里

如果您正在使用核心PHP

1. 从此链接下载Transpicious的.zip版本,点击这里
2. 解压文件并将它提取到您的项目文件夹中
3. 在您的PHP文件顶部添加此行
     use Niyko\Transpicious\Transpicious;
4. 要使用Transpicious打印内容,请使用如下所示
    <body>
        <h1><?php echo Transpicious::translate('hello') ?></h1>
        <p><?php echo Transpicious::translate('world') ?></p>
    </body>
 

 

⚙️ 配置Transpicious

Transpicious中配置项不多,所有配置都已在文件Transpicious-1.0.0/config.php中给出(如果您使用的是composer,则将是vendor/niyko/transpicious/config.php)。配置文件将如下所示

<?php
    $_DEFAULT_CONVERT_FROM = "en";	
    $_DEFAULT_CONVERT_TO = "en";
?>

配置定义

如果某些自动生成的翻译是错误的怎么办?

如果任何自动生成的翻译是错误的,则您可以在自定义翻译中定义正确的翻译。要了解更多关于如何添加自定义翻译的信息,请继续阅读下一主题。

📝 添加自定义翻译

方法1 在自定义翻译文件中添加它

在《Transpicious》文件夹内(如果您使用的是《composer》,则该文件夹为《vendor/niyko/transpicious》),有一个名为《custom_translations》的文件夹,在该文件夹内有一个名为《custom_translations.json》的文件。您可以使用以下语法在此文件中添加自定义翻译。

     {
        "LANGUAGE CODE OF CONVERTED FROM" : {
            "CONTENT 1" : {
                "1ST LANGUAGE CODE OF CONVERTED TO" : "TRANSLATION",
                "2ND LANGUAGE CODE OF CONVERTED TO" : "TRANSLATION",
            },
            "CONTENT 2" : {
                "1ST LANGUAGE CODE OF CONVERTED TO" : "TRANSLATION",
                "2ND LANGUAGE CODE OF CONVERTED TO" : "TRANSLATION",
            }
        }
    }
还没有明白?请看以下示例

如果在内容中使用《Transpicious::translate('hello, I'm Lilly')》,并且您想要更改《spanish》语言自动翻译的内容,那么《custom_translations.json》文件将如下所示

     {
        "en" : {
            "hello, I'm Lilly" : {
                "es" : "hola soy lilly"
            }
        }
    }

📚 API

Transpicious::translate();

此函数用于提供网站内容。《translate()`函数支持三个参数,它们都是字符串,分别是

     Transpicious::translate('CONTENT', 'TRANSLATE TO', 'TRANSLATE FROM');

函数定义

示例使用

如果《config.php》设置为《$_DEFAULT_CONVERT_FROM = "en"`和《$_DEFAULT_CONVERT_TO = "en"`

     Transpicious::translate('Friends don’t lie');                      // Returns Friends don’t lie
     Transpicious::translate('Friends don’t lie', 'es');                // Returns Los amigos no mienten
     Transpicious::translate('Los amigos no mienten', 'ch', 'es');      // Returns 朋友不撒谎
     Transpicious::translate('Los amigos no mienten', null, 'es');      // Returns Friends don’t lie

Transpicious::set_translate_to();

此函数用于更改网站的当前语言。网站的所有内容都将翻译为该函数参数指定的语言

     Transpicious::set_translate_to('TRANSLATE TO');

函数定义

示例使用
示例(1)

如果《config.php》设置为《$_DEFAULT_CONVERT_FROM = "en"`和《$_DEFAULT_CONVERT_TO = "en"`

     Transpicious::set_translate_to('es');
     echo Transpicious::translate('She‘s our friend and she‘s crazy.');
     
     // The output will be : Ella es nuestra amiga y está loca
示例(2)

如果《config.php》设置为《$_DEFAULT_CONVERT_FROM = "en"`和《$_DEFAULT_CONVERT_TO = "en"`

     Transpicious::set_translate_to('es');
     echo Transpicious::translate('Mornings are for coffee and contemplation');
     echo Transpicious::translate('Mornings are for coffee and contemplation', 'ar');   // <= Note that translate() has a 2nd parameter
     
     /* The output will be :-
        Las mañanas son para el café y la contemplación.
        الصباح لتناول القهوة والتأمل
     */

Transpicious::clear_cache();

用于清除缓存的翻译文件,注意:清除缓存后,网站在首次运行时可能会需要一些时间来渲染

     Transpicious::clear_cache();

🌐 所有支持的语言代码

点击此处查看Transpicious支持的自动翻译的所有语言代码。

📃 许可证

Transpicious遵循《GNU GENERAL PUBLIC LICENSE》许可,并且此仓库是为教育目的而制作的。