GetX
패키지의 .tr
번역을 사용할때 일일이 언어 코드별로 localization.g.dart
코드를 작성해야되기 때문에 매우 불편하고 지루합니다.
이 프로그램은 Google sheet
의 번역 데이터 시트를 통해 GetX
의 localization.g.dart
소스코드를 자동으로 생성해주는 프로그램 Github: gs_translation입니다.
먼저 변환프로젝트를 로컬로 가져옵니다.
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