i18n extract
v0.6.7
정적 분석으로 현지화를 관리하십시오.
npm install --save-dev i18n-extract 이 모듈은 다음을 위해 i18n.t('some.key') 와 같은 주요 사용법에 대해 정적으로 코드를 분석합니다.
예를 들어이 모듈은 다음과 함께 잘 작동합니다.
marker: 'polyglot.t', )marker: 'i18n', ) i18n ( 'key.static' ) i18n ( 'key.' + 'concat' ) i18n ( `key.template` ) i18n ( `key. ${ dynamic } ` ) /* i18n-extract key.comment */ I18N ( key )의 호출 주장을 추출하기 위해 code 를 구문 분석하십시오.
code 문자열이어야합니다. import { extractFromCode } from 'i18n-extract' ;
const keys = extractFromCode ( "const followMe = i18n('b2b.follow');" , {
marker : 'i18n' ,
} ) ;
// keys = ['b2b.follow'] files 분석하여 i18n ( key )의 호출 인수를 추출하십시오.
files 문자열 배열 또는 문자열 일 수 있습니다. 당신은 또한 글로벌을 사용할 수 있습니다. import { extractFromFiles } from 'i18n-extract' ;
const keys = extractFromFiles ( [
'*.jsx' ,
'*.js' ,
] , {
marker : 'i18n' ,
} ) ;marker : 국제화 된 문자열 마커 함수의 이름. 기본값 i18n .keyLoc : 인수에서 키의 위치를 나타내는 정수. 기본값은 0 까지. 음수 (예 : -1 )는 인수 목록의 끝과 관련된 위치를 나타냅니다.parser : Enum은 사용할 파서를 표시하고 typescript 또는 flow 일 수 있습니다. 기본값이 flow .babelOptions : i18n 키를 스캔하기 전에 사용자 정의 변환 또는 플러그인을 적용 할 수있는 babel 구성 객체. 모든 바빌론 플러그인이 활성화 된 구성 기본값.누락 된 키를보고하십시오. 그 키는 아마도 번역되어야합니다.
locale 번역이 포함 된 대상이어야합니다.keysUsed 배열이어야합니다. 소스 코드에 사용 된 키를 포함합니다. extractFromFiles 의 extractFromCode 로 검색 할 수 있습니다. import { findMissing } from 'i18n-extract' ;
const missing = findMissing ( {
key1 : 'key 1' ,
} , [ 'key1' , 'key2' ] ) ;
/**
* missing = [{
* type: 'MISSING',
* key: 'key2',
* }];
*/ 사용하지 않은 키를보고하십시오. 그 키는 아마도 제거해야합니다.
locale 번역이 포함 된 대상이어야합니다.keysUsed 배열이어야합니다. 소스 코드에 사용 된 키를 포함합니다. extractFromFiles 의 extractFromCode 로 검색 할 수 있습니다. import { findUnused } from 'i18n-extract' ;
const unused = findUnused ( {
key1 : 'key 1' ,
key2 : 'key 2' ,
} , [ 'key1' ] ) ;
/**
* unused = [{
* type: 'UNUSED',
* key: 'key2',
* }];
*/ 복제 된 키를보고하십시오. 그 키는 아마도 상호화되어야합니다. 기본 threshold 은 1이며 복제 된 변환을보고합니다.
locale 번역이 포함 된 대상이어야합니다.keysUsed 배열이어야합니다. 소스 코드에 사용 된 키를 포함합니다. extractFromFiles 의 extractFromCode 로 검색 할 수 있습니다.options 객체 여야합니다. 보고서에 추가되기 전에 복제 된 값 수를 변경하기 위해 threshold 속성을 제공 할 수 있습니다. import { findDuplicated } from 'i18n-extract' ;
const duplicated = findDuplicated ( {
key1 : 'Key 1' ,
key2 : 'Key 2' ,
key3 : 'Key 2' ,
} ) ;
/**
* unused = [{
* type: 'DUPLICATED',
* keys: [
* 'key2',
* 'key3',
* ],
* value: 'Key 2',
* }];
*/동적 키를보고하십시오. 동적 키를 사용하는 것이 더 위험합니다. 그들은 깨질 수 있습니다.
locale 번역이 포함 된 대상이어야합니다.keysUsed 배열이어야합니다. 소스 코드에 사용 된 키를 포함합니다. extractFromFiles 의 extractFromCode 로 검색 할 수 있습니다. import { forbidDynamic } from 'i18n-extract' ;
const forbidDynamic = forbidDynamic ( { } , [ 'key.*' ] ) ;
/**
* forbidDynamic = [{
* type: 'FORBID_DYNAMIC',
* key: 'key.*',
* }];
*/물체를 평평하게하십시오.
object 물체 여야합니다. import { flatten } from 'i18n-extract' ;
const flattened = flatten ( {
key2 : 'Key 2' ,
key4 : {
key41 : 'Key 4.1' ,
key42 : {
key421 : 'Key 4.2.1' ,
} ,
} ,
} ) ;
/**
* flattened = {
* key2: 'Key 2',
* 'key4.key41': 'Key 4.1',
* 'key4.key42.key421': 'Key 4.2.1',
* };
*/ messages 에 메시지가있는 메시지만으로 새 PO 파일을 출력하십시오. poInput 에 메시지가 이미 존재하는 경우 번역을 유지합니다. 메시지가 없으면 새로운 빈 번역을 추가합니다.
messages 배열이어야합니다.poInput 문자열이어야합니다.poOutput 문자열이어야합니다. import { mergeMessagesWithPO } from 'i18n-extract' ;
const messages = [ 'Message 1' , 'Message 2' ] ;
mergeMessagesWithPO ( messages , 'messages.po' , 'messages.output.po' ) ;
/**
* Will output :
* > messages.output.po has 812 messages.
* > We have added 7 messages.
* > We have removed 3 messages.
*/ MIT