إدارة التوطين مع التحليل الثابت.
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 : enum تشير إلى أن المحلل الذي يجب استخدامه ، يمكن أن يكون typescript أو flow . الافتراضات flow .babelOptions : كائن تكوين بابل للسماح بتطبيق التحولات المخصصة أو المكونات الإضافية قبل المسح الضوئي لمفاتيح I18N. الإعدادات الافتراضية لتكوين مع جميع الإضافات بابل ممكّنة.الإبلاغ عن المفاتيح المفقودة. من المحتمل أن تترجم تلك المفاتيح.
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',
* };
*/ إخراج ملف PO جديد مع الرسائل الموجودة في messages فقط. إذا كانت رسالة موجودة بالفعل في 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.
*/ معهد ماساتشوستس للتكنولوجيا