GetX 패키지의 .tr 번역을 사용할때 일일이 언어 코드별로 localization.g.dart 코드를 작성해야되기 때문에 매우 불편하고 지루합니다. 이 프로그램은 Google sheet 의 번역 데이터 시트를 통해 GetXlocalization.g.dart 소스코드를 자동으로 생성해주는 프로그램 Github: gs_translation입니다.

How this program works

먼저 변환프로젝트를 로컬로 가져옵니다.

git clone "https://github.com/enoosoft/gs_translation.git"

그리고 아래와 같이 구글 번역 시트 문서를 만듭니다.

샘플시트 를 복사하여 만들면 됩니다. Google 시트를 사용하면 간단한 수식으로 필드를 번역할 수 있습니다. =GOOGLETRANSLATE(B4,en,ko) 필드 B4의 문구를 영어(en)에서 한국어(ko)로 번역할 수 있습니다.

그런 다음 구글시트 ID와 프로젝트 폴더명을 main.dart 파일의 projectMap 등을 아래와 같이 수정을 해줍니다

//프로젝트별 GOOGLE 시트 번역 문서 ID
//문서는 "링크를 가진사람은 모두 엑세스"될 수있도록 "공유" 돼 있어야 한다.
final projectMap = {
  'astc': '1bnsfTv6ORtWLUEvkgmnvey6qNi_pGdpFapTQQd5UZss',
  'any-other-project': '1bnsfTvany-other-projectTQQd5UZss'
};

//번역 생성할 프로젝트 폴더명
final PROJECT_ID = 'astc';
//프로젝트별 localization.g.dart 파일 위치
String updateProjectLocalPath = 'C:\\Sync\\Works\\$PROJECT_ID\\lib\\helpers';
//번역프로그램 lib 위치
String thisLocalPath = 'C:\\Sync\\Works\\gs_translation\\lib';

마지막으로 번역프로그램 루트 폴더에서 아래와 같이 커맨드를 수행합니다.

dart lib/main.dart

이렇게 하면 localization.g.dart 파일(updateProjectLocalPath, thisLocalPath)에 아래와 같이 변환된 코드가 생성됩니다.

import 'package:get/get.dart';

class Localization extends Translations {
  @override
  Map<String, Map<String, String>> get keys => {
    'ko': {
'About': 'About',
'Astronomical calendar': '천문달력',
'Input text here': '텍스트를 입력하세요',
'Copy': '복사',
'Clear': '삭제',
'Cancel': '취소',
'Confirm': '확인',
'Select': '선택',
'app description': '천문현상을 볼 수 있는 달력입니다',
'Share App': '앱공유',
'😊Have a nice day🎉 - EnooSoft': '😊좋은 하루 보내세요🎉 - EnooSoft',
},
'en': {
'About': 'About',
'Astronomical calendar': 'Astronomical calendar',
'Input text here': 'Input text here',
'Copy': 'Copy',
'Clear': 'Clear',

그리고 GetX 프로젝트에서 아래 방법으로 번역을 사용하면 됩니다.

Text('Input text here'.tr)

GetX internationalization에 대해서는 여기에 자세한 내용이 있습니다.

이 프로그램은 아래 블로그를 참조하여 개선하여 만든 프로그램입니다.

원저자 및 출처

Jeff McMorris
GetX Google Sheets Translation Code Generator
Github