⭐️ npm run i18n-build
이 문서는 i18n-sync.cjs 자동 번역 스크립트를 실행하기 위한 Google Cloud Translation API 사용 설정 과정을 정리한 가이드입니다.
- Google Cloud Platform (GCP) 계정
- 프로젝트 생성 또는 기존 프로젝트 사용
- Node.js 개발 환경
@google-cloud/translate패키지 설치되어 있음
- Google Cloud Console 에 로그인
- 우측 상단에서 프로젝트을 선택 또는 새 프로젝트 생성
- 왼측 메뉴에서
API 및 서비스 → 라이브러리로 이동 Cloud Translation API검색 해서 선택- [사용] 버튼 누르며 활성화
- 왼측 메뉴에서
IAM 및 관리자 → 서비스 계정으로 이동 - [ 서비스 계정 만들기 ] 클릭
- 서비스 계정 이름 예시:
translation-sync
- 서비스 계정 이름 예시:
- 권한은 생방하고 [완료] 버튼 클릭
- 생성된 서비스 계정을 클릭 하고 상단의 [키] 탭으로 이동
- [키 추가 → 새 키 만들기]
- 키 형식:
JSON - 키가 자동 다운로드됩니다.
- 키 형식:
- 파일 이름을
google-api-service-account.json으로 변경하고 프로젝트 루트의.env/폴더를 만들어 폴더안에 저장.env/google-api-service-account.json
- 왼측 메뉴
IAM → 전체 권한 보기로 이동 - 서비스 계정 이메일(예:
translation-sync@project-id.iam.gserviceaccount.com) 입력 - [+ 역할 추가] 클릭
Cloud Translation API 사용자를 검색하거나roles/cloudtranslate.user를 입력 해서 선택- 저장
package.json > scripts > i18n-build 에서 환경 변수를 설정 하고 있습니다.
"scripts": {
"i18n-build": "cross-env GOOGLE_APPLICATION_CREDENTIALS=./.env/google-api-service-account.json node scripts/i18n-sync.cjs --auto-translate && npx eslint \"src/langs/*.js\" --fix && npx eslint \"types/langs/_Lang.d.ts\" --fix"
}보안을 위해 서비스 계정 키가 Git에 포함되지 않도록 .gitignore, .npmignore 등의 파일을 수정하지 마십시오.
.env/
npm run i18n-build이 명령은 다음을 수행합니다:
en.js를 기준으로 모든 언어 파일에 누락된 키를 자동 번역 후 각 언어 파일에 추가- 타입 선언 파일(
_Lang.d.ts) 업데이트 - ESLint 자동 수정 실행
👀 !"node run ts-build" 는 실행하지 않습니다. (types 파일 업데이트)
Q. PERMISSION_DENIED 에러가 발생합니다.
→ 서비스 계정에 Cloud Translation API 사용자 역할이 부여되어 있는지 확인해주세요.
Q. 역할 추가 할 때 목록에 보이지 않습니다.
→ Translation API가 활성화되지 않았거나, 결함 정도 후에 IAM 목록에 나타나는 경우가 있습니다. 이 경우, 아래 명령으로 CLI로 추가할 수 있습니다:
gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \
--member="serviceAccount:YOUR_SERVICE_ACCOUNT_EMAIL" \
--role="roles/cloudtranslate.user"[↻] Translating (en → ko) welcome: Welcome!
[✓] Translated (ko:welcome) → 환영합니다!
[✔] Updated ko
[✔] Updated _Lang.d.ts