搜尋套件、儲存庫與 APP 分類

套件詳情v2.3.5

auto_translator

一個命令列工具,使用雲端翻譯服務來翻譯 ARB 檔案。

macOSWindowsLinux
近 30 天下載
453
喜歡數
35
Pub 分數
150

安裝套件

flutter pub add auto_translator

套件介紹

根據套件公開資料產生的選型評估,僅供參考。

一個命令列工具,旨在使用雲端翻譯服務自動化 ARB(App Resource Bundle)檔案的翻譯。它透過將英文 ARB 檔案轉換為多種目標語言,簡化本地化工作流程,減少國際化過程中的手動操作。非常適合管理多語言 Flutter 應用的開發者,可無縫整合至現有的建構流程中,並支援在 macOS、Windows 和 Linux 上跨平台運作。該工具利用外部翻譯 API,確保翻譯品質的同時,維持語言檔案之間的一致性。

適用情境

  • 自動化 ARB 檔案翻譯
  • 與 CI/CD 流水線整合
  • 支援多語言 Flutter 應用程式
  • 減少人工翻譯工作量
  • 批量更新翻譯
  • 跨團隊同步語言檔案

主要特色

  • 基於雲端的 API 翻譯
  • 命令列介面
  • 跨平台相容性
  • ARB 檔案格式支援
  • 批量翻譯處理
  • 與 Flutter 本地化工作流程整合

適合對象

  • Flutter 開發人員管理多種語言
  • 使用 ARB 進行本地化的團隊
  • 翻譯的CI/CD自動化
  • 需要頻繁翻譯更新的項目
  • 尋求節省時間的本地化工具的開發者

使用建議

  • 需要互聯網訪問以進行翻譯API呼叫
  • 依賴第三方翻譯服務的品質
  • 高用量情況下的潛在成本
  • 需要正確的 API 金鑰設定
  • 僅限 ARB 檔案格式
  • 可能需要為自定義翻譯提供者進行額外設置

原始 README

以下為關聯原始碼儲存庫的 README 原文快照,最新內容請造訪原始碼儲存庫。

Auto Translator

A command-line tool that simplifies translation of an ARB template file to selected languages. This package is designed to work seamlessly with the flutter_localizations and intl packages, Flutter's preferred internationalization approach.

Features

  • Seamless integration with flutter_localizations and intl packages.
  • Works with Google Cloud Translate & DeepL Translate.
  • Minimal quota usage.
  • Works with simple & complex ARB strings, conditions, and variables.
  • Uses placeholder examples for more accurate translations involving proper nouns and other unique cases.
  • Specify translator service and/or source language for individual target languages.

Support the developer

If you found this package useful, please consider contribuitng to it's continued development. Or just show the developer a little love & support. Every little bit helps!

Buy me a coffee

Getting Started

1. Setup Translation Service(s)

Auto Translator supports Google Cloud Translate and DeepL out of the box. You may specify either one as your primary service in the l10n.yaml config file. If neither is provided, the default (Google) is used. You may also specify different translators on a per-language basis, as seen in Preferred Services.

If you are configuring only one service, you can save the API key in a file in the project root directory called translator_key or as a json map in translator_keys. If configuring both services, you must use the json map approach.

:warning: DO NOT publish your key file to Github or similar VCS.

You can also specify an alternate key file path.

Google Cloud Translate

If you do not have a Google Cloud Project with the Cloud Translation API enabled, follow the guide here.

DeepL Translate

If you do not have DeepL API access, follow DeepL's guide to creating an account and obtaining API access here

2. Add auto_translator to your project

Add auto_translator under dev_dependencies in pubspec.yaml

dev_dependencies:
  auto_translator: ^2.3.6
3. Setup the config files

auto_translator uses the same config file as the intl package, Flutter's recommended package for internationalizing your app, as explained here.

If you have not already created the l10n.yaml file, do so now.

arb-dir: lib/l10n
template-arb-file: app_en.arb
output-localization-file: app_localizations.dart

translator:
  #Defaults to Google Translate.
  service: Google

  targets:
    - es-ES
    - fr
    - ja

The first three parameters are used by intl as well as auto_translator. The translator section is specific to auto_translator.

The targets parameter is required and tells auto_translator which languages to translate the template file to. Available languages can be found here.

You can also configure preferred source templates for any given target language.

Regional Designations

You can use 2-letter language codes and regional designations (en-US, en-GB, es-Es, etc.).

4. Run the package

Once configured, run the package from the command line.

flutter pub get
dart run auto_translator

All translations will be placed in the defined location and be compatible with flutter_localizations and intl.

Additional Usage

Placeholder Examples

Some translations are more accurate when using an example in place of a generic placeholder variable name. auto_translator now passes a placeholder's example if provided to ensure better quality translations.

"viewingArtwork": "Now viewing {artworkTitle}.",
  "@viewingArtwork": {
      "placeholders": {
          "artworkTitle": {
              "type": "String",
              "example": "Mona Lisa"
          }
      }
  }
Force Translation

To prevent unecessary Google Cloud Translate quota usage, messages that already exist in a target ARB file are not retranslated. You can force a translation by adding the force parameter to translator options in a message's metadata in the template file.

"title": "New Title",
"@title": {
  "description": "...",
  "translator": {
    "force": true
  }
}
Ignore ARB String

You can also tell the translator to ignore a particular message with the ignore tag.

"doNotTranslate": "DO NOT TRANSLATE THIS STRING!!!",
"@doNotTranslate": {
  "description": "...",
  "translator": {
    "ignore": true
  }
}
Preferred Templates

Sometimes, you may wish to specify a language that translates more accurately to a target than the language used in the template-arb-file. For that, you can provide a prefer-lang-templates map to specify a preferred source language to use as a template for any target language.

translator:
  # use es-ES template for fr translation ja for ko
  # all other translations will use [template-arb-file]
  prefer-lang-templates:
    fr: es
    ko: ja
Preferred Services

As one service may outperform the other in a given language you may wish to specify a service an a per-language basis. This can be done by providing a prefer-service map in the config file.

translator:
  # use DeepL for tr and uk
  # all other translations will use the primary service
  # (presumably Google in this case)
  prefer-service:
    # capitilization does not matter for service name
    DeepL:
      - tr
      - uk

Each API key must be provided in the key file (service name capitalization does not matter).

{
  "google": "CLOUD_TRANSLATE_API_KEY",
  "deepL": "DEEP_L_API_KEY"
}
Verbose output

You can enable verbose output with the --verbose (-v) flag. This is especially helpful in pinpointing the cause of errors.

Alternate config file

By default, the config file is named l10n.yaml and is located in the project's root directory. You can pass in an alternate file path when running on the command line using the --config-file option.

Alternate key file

By default, auto_translator looks for keys in the project root at translator_keys or translator_key. You may specify a different location in the config file.

translator:
  key_file: path/to/key/file

所屬分類

依賴

依賴清單 3 項

原始碼儲存庫

使用此套件的專案

暫無相關資料。