dstuchbury/laravel-google-translate

Laravel 用于 Google 翻译 API 的包

v9.0.1 2023-01-16 15:54 UTC

README

这是对 https://github.com/dstuchbury/laravel-google-translate 的分支 - 我最初没有创建这个包,也不为此包拥有任何荣誉。

根据需要修改了 composer.json 的 authors 元素。

此包使您能够以最少的配置、简洁的语法和一致的包 API 轻松地在 Laravel 应用中使用 Google 翻译 API。

translate

安装

  • 您可以通过以下命令使用 composer 安装此包
composer require dstuchbury/laravel-google-translate
  • 该包将自动注册自身。

  • 我们以逐步详细的方式记录了如何在 Google Cloud Platform 控制台中设置项目和获取必要的配置 在此处。

  • 您可以使用以下命令发布配置文件

php artisan vendor:publish --provider="dstuchbury\GoogleTranslate\GoogleTranslateServiceProvider"

这将创建一个名为 googletranslate.php 的配置文件,位于 config 目录中。以下是已发布的配置文件内容

return [
    /*
    |----------------------------------------------------------------------------------------------------
    | The ISO 639-1 code of the language in lowercase to which the text will be translated to by default.
    |----------------------------------------------------------------------------------------------------
    */
    'default_target_translation' => 'en',

    /*
    |-------------------------------------------------------------------------------
    | Path to the json file containing the authentication credentials.
    |
    | The process to get this file is documented in a step by step detailed manner
    | over here:
    | https://github.com/dstuchbury/laravel-google-translate/blob/master/google.md
    |-------------------------------------------------------------------------------
    */
    'api_key' => env('GOOGLE_TRANSLATE_API_KEY'),
];

如何使用

  • 在设置配置文件值后,您就可以使用以下方法了 😄

  • 检测语言。您可以传递一个字符串或多个字符串的数组

GoogleTranslate::detectLanguage('Hello world'): array

GoogleTranslate::detectLanguage(['Hello world', 'Laravel is the best']);

// Returns multi-dimensional array containing result set for all the array elements.
  • 翻译字符串:translate 方法接受一个可选的第三个参数,可以是您想要将字符串翻译成的语言代码。您可以在配置文件中指定默认选项
// GoogleTranslate::translate($input, $from = null, $to = null, $format = 'text'): array

GoogleTranslate::translate('Hello world'): array

GoogleTranslate::translate(['Hello world', 'Laravel is the best']);

// Returns multi-dimensional array containing result set for all the array elements.
  • 通过传递语言代码获取特定语言的“Google 翻译”的所有可用翻译
GoogleTranslate::getAvailableTranslationsFor('en'): array
  • 如果语言与第一个参数相同则不翻译。此方法是一种干净的方式来要求包检测给定字符串的语言,如果它与第一个参数相同,则不执行翻译。它接受一个可选的第三个参数,即您希望字符串翻译成的语言代码。您可以在配置文件中指定默认选项。如果语言相同,则返回输入字符串,否则返回包含翻译结果的数组
GoogleTranslate::unlessLanguageIs('en', string $text);
  • 翻译并返回翻译后的字符串。它接受一个可选的第二个参数,即您希望字符串翻译成的语言代码。您可以在配置文件中指定默认选项
GoogleTranslate::justTranslate(string $text): string
  • 还有一个可选的第三个参数用于格式,以利用更好的 HTML 翻译支持。Google 翻译 API 当前支持 'text' 和 'html' 作为参数。此参数的默认值是 'text',因为它在大多数翻译中具有最佳用例。 Google 翻译 API 文档
GoogleTranslate::unlessLanguageIs('en', string $text, string $format);
  • 此外,包还附带了一个名为 @translate 的漂亮的 blade 辅助函数,用于在视图文件中使其使用更加整洁。它接受一个可选的第二个参数,即您希望字符串翻译成的语言代码。您可以在配置文件中指定默认选项。
@translate('Hello World')

测试

您可以使用以下命令运行测试

vendor/bin/phpunit

变更日志

请参阅 CHANGELOG 以获取有关最近更改的更多信息。

安全性

如果您发现任何安全问题,请通过电子邮件发送给 dan@danstuchbury,而不是使用问题跟踪器。

鸣谢

许可证

麻省理工学院许可协议(MIT)。请参阅许可文件获取更多信息。