パッケージ、リポジトリ、アプリカテゴリを検索

パッケージ詳細v1.0.3

getx_translator

Flutter用の言語文字列ファイルを生成するため。Googleスプレッドシートによる簡単な翻訳。

AndroidiOSmacOSWindowsLinux
30日間ダウンロード
35
いいね数
21
Pub ポイント
140

パッケージをインストール

flutter pub add getx_translator

パッケージ概要

公開情報に基づく選定ガイドです。参考としてご利用ください。

GetX Translator は、Google スプレッドシートから直接言語文字列ファイルを生成することで、ローカリゼーションを簡素化することを目的とした Flutter パッケージです。リアルタイムで翻訳を同期することで、翻訳ワークフローをスムーズにし、手作業の負担を減らし、エラーを最小限に抑えます。開発者は開発環境を離れることなく、マルチリンガルコンテンツを効率的に管理できます。GetX の国際化システムとシームレスに統合されており、アプリの翻訳に協働するチームに最適です。Android、iOS、macOS、Windows、Linux など複数のプラットフォームをサポートしています。

用途

  • マルチリンガルアプリコンテンツの管理
  • 共同翻訳ワークフロー
  • 文字列ファイルの生成を自動化する
  • Google スプレッドシートとの翻訳の同期
  • 手動のi18n設定の削減

主な機能

  • Google スプレッドシートの統合
  • 自動文字列ファイルの生成
  • 翻訳とのリアルタイム同期
  • GetX i18n のサポート
  • クロスプラットフォーム互換性

適している対象

  • 翻訳に Google スプレッドシートを使用するチーム
  • 頻繁なローカライズ更新を必要とするFlutterアプリ
  • 自動化されたi18nワークフローを求める開発者
  • 技術的でない翻訳者を含むプロジェクト
  • グローバルな視聴者をターゲットにしたアプリ

注意事項

  • Google スプレッドシートへのアクセスとAPI設定が必要です
  • 完全な機能を実現するにはGetXに依存します
  • 同期にはインターネット接続が必要です
  • ソースとしてGoogleスプレッドシートに限定
  • CI/CD パイプラインの権限設定が必要になる場合があります

元の README

関連するソースリポジトリの README 原文のスナップショットです。最新の内容はリポジトリをご覧ください。

Getx Translator

2022 © Bikramaditya Meher

Pub License: MIT

A command-line application for generating language strings file for Getx Flutter. Easy translation with google sheet for Getx.

you need to make your sheet look like this getx_translator_sheet your strings should start from 3rd row.

Go to google sheets and make an Apps script file past this code with replacing you sheet id and sheet name, you can get sheet id from sheet url.

function doPost(request) {
  var error = false;
  var result;
  if (request.parameter.spreadsheetId == null) {
    error = true;
    result = { "status": "FAILED", "message": "Invalid Sheet Id" };
  }
  if (request.parameter.sheetName == null) {
    error = true;
    result = { "status": "FAILED", "message": "Please Provide Sheet Name" };
  }
  if (request.parameter.values == null) {
    error = true;
    result = { "status": "FAILED", "message": "Please Provide Values" };
  }

  var sheetId = request.parameter.spreadsheetId;
  var sheetName = request.parameter.sheetName;
  if (sheetId != '16gg_KvyPgXYrKzt12JtIZm4DVgNkxarzVlRHfXMyy5Y') {
    error = true;
    result = { "status": "FAILED", "message": "Please Provide Correct Sheet Id" };
  }
  if (sheetName != 'Sheet1') {
    error = true;
    result = { "status": "FAILED", "message": "Please Provide Correct Sheet Name" };
  }
  if (error) {
    return ContentService
      .createTextOutput(JSON.stringify(result))
      .setMimeType(ContentService.MimeType.JSON);
  }
  // Open Google Sheet using ID
  var sheet = SpreadsheetApp.openById(sheetId).getSheetByName(sheetName);
  result = { "status": "SUCCESS" };
  if (request.parameter.deleteRow != null) {
    //will delete numbers of rows coming from values..
    try {
      var deletingRow = JSON.parse(request.parameter.values);
      for (var i = 0; i < deletingRow.length; i++) {
        sheet.deleteRow((deletingRow[i] - i));
      }
    } catch (exc) {
      result = { "status": "FAILED", "message": exc.toString() };
    }
  } else {
    try {
      var values = JSON.parse(request.parameter.values);
      sheet.getRange(sheet.getLastRow() + 1, 1, values.length, 1).setValues(values);
    } catch (exc) {
      result = { "status": "FAILED", "message": exc.toString() };
    }

  }


  // Return result
  return ContentService
    .createTextOutput(JSON.stringify(result))
    .setMimeType(ContentService.MimeType.JSON);
}


function doGet(request) {

  // Open Google Sheet using ID
  var error = false;
  var result;
  if (request.parameter.spreadsheetId == null) {
    error = true;
    result = { "status": "FAILED", "message": "Invalid Sheet Id" };
  }
  if (request.parameter.sheetName == null) {
    error = true;
    result = { "status": "FAILED", "message": "Please Provide Sheet Name" };
  }

  var sheetId = request.parameter.spreadsheetId;
  var sheetName = request.parameter.sheetName;
  if (sheetId != '16gg_KvyPgXYrKzt12JtIZm4DVgNkxarzVlRHfXMyy5Y') {
    error = true;
    result = { "status": "FAILED", "message": "Please Provide Correct Sheet Id" };
  }
  if (sheetName != 'Sheet1') {
    error = true;
    result = { "status": "FAILED", "message": "Please Provide Correct Sheet Name" };
  }
  if (error) {
    return ContentService
      .createTextOutput(JSON.stringify(result))
      .setMimeType(ContentService.MimeType.JSON);
  }
  var column = request.parameter.column;
  var row = request.parameter.row;
  var all = request.parameter.all ?? 'false';

  var sheet = SpreadsheetApp.openById(sheetId).getSheetByName(sheetName);
  var rowNumbers = request.parameter.rowNumbers ?? sheet.getLastRow();
  var columnNumbers = request.parameter.columnNumbers ?? 1;

  var result = { "status": "SUCCESS" };
  var values;
  if (all == 'false') {
    values = sheet.getRange(row, column, rowNumbers, columnNumbers).getValues();
  } else {
    values = sheet.getDataRange().getValues();
  }
  result['data'] = values;
  // Return result
  return ContentService
    .createTextOutput(JSON.stringify(result))
    .setMimeType(ContentService.MimeType.JSON);
}

Add this to your pubspec.yaml file and replace your sheet id, sheet name and url from Apps script.

getx_translator:
  path: "lib"
  output_path: "assets/language"
  sheet_url: "https://script.google.com/macros/s/AKfycbwSnBW7NeRWV3vy9i7U8sX8RPyPkC2S8UGYbnehlOKMT5ueJNfwelsJogWTEitnqg8X7g/exec"
  sheet_name: "Sheet1"
  sheet_id: "16gg_KvyPgXYrKzt12JtIZm4DVgNkxarzVlRHfXMyy5Y"

Run this code for :: Scanning ... Generating.. Uploading... and removing old Strings.

flutter pub run getx_translator:main

Run this code after you generate translation and update language files.

flutter pub run getx_translator:update

Run this code for remove unused strings.

flutter pub run getx_translator:remove

for more information and please checkout example folder.

カテゴリー

依存関係

依存関係一覧 4 件

ソースリポジトリ

このパッケージを使用しているプロジェクト

データはまだありません。