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 */ codeを解析して、i18n( key )の呼び出しの引数を抽出します。
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 :使用するパーサーを示し、 typescriptまたはflowすることができます。デフォルトはflowになります。babelOptions :I18Nキーをスキャンする前に、カスタム変換またはプラグインを適用できるBABEL構成オブジェクト。デフォルトは、すべてのバビロンプラグインを有効にした構成になります。欠落しているキーを報告します。これらのキーはおそらく翻訳する必要があります。
locale 、翻訳を含むオブジェクトである必要があります。keysUsed配列である必要があります。ソースコードで使用されるキーを含む。 extractFromCodeからextractFromFilesて取得できます。 import { findMissing } from 'i18n-extract' ;
const missing = findMissing ( {
key1 : 'key 1' ,
} , [ 'key1' , 'key2' ] ) ;
/**
* missing = [{
* type: 'MISSING',
* key: 'key2',
* }];
*/ 未使用のキーを報告します。これらのキーはおそらく削除する必要があります。
locale 、翻訳を含むオブジェクトである必要があります。keysUsed配列である必要があります。ソースコードで使用されるキーを含む。 extractFromCodeからextractFromFilesて取得できます。 import { findUnused } from 'i18n-extract' ;
const unused = findUnused ( {
key1 : 'key 1' ,
key2 : 'key 2' ,
} , [ 'key1' ] ) ;
/**
* unused = [{
* type: 'UNUSED',
* key: 'key2',
* }];
*/複製されたキーを報告します。これらのキーはおそらく相互化されるべきです。デフォルトのthresholdは1で、重複した翻訳を報告します。
locale 、翻訳を含むオブジェクトである必要があります。keysUsed配列である必要があります。ソースコードで使用されるキーを含む。 extractFromCodeからextractFromFilesて取得できます。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配列である必要があります。ソースコードで使用されるキーを含む。 extractFromCodeからextractFromFilesて取得できます。 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