패키지, 저장소 및 앱 카테고리 검색

패키지 상세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 개

소스 저장소

이 패키지를 사용하는 프로젝트

아직 데이터가 없습니다.