1
1
import * as path from 'path' ;
2
2
3
- import { asyncForEach , readFile , showError , showInfo , toHash , writeFile } from '../utils' ;
3
+ import { asyncForEach , readFile , showError , showInfo , toHash , writeFile , head , tail } from '../utils' ;
4
4
import { Base } from '../base' ;
5
5
import { Lokalise } from '../providers/lokalise' ;
6
6
import { Provider } from '../providers/provider' ;
@@ -60,10 +60,10 @@ export default class Extract extends Base {
60
60
61
61
async run ( ) {
62
62
const {
63
- flags : { langs, provider, projectId, token, version, namespace } ,
63
+ flags : { langs, provider, projectId, token, version, namespace, uploadTranslations } ,
64
64
} = this . parse ( Extract ) ;
65
65
const locales = langs . split ( ',' ) ;
66
- const defaultLocale = locales [ 0 ] ;
66
+ const defaultLocale = head ( locales ) ;
67
67
68
68
const getProvider = ( ) => {
69
69
const providers : { [ key : string ] : any } = {
@@ -88,12 +88,11 @@ export default class Extract extends Base {
88
88
const newMessages = this . provider . getNewMessages ( ) ;
89
89
if ( newMessages . length > 0 ) {
90
90
showInfo ( `New translation keys: ${ newMessages . length } ` ) ;
91
- if ( provider === 'locize' ) {
92
- await asyncForEach ( locales , locale =>
91
+ await this . provider . uploadMessages ( newMessages . map ( id => this . messages [ locales [ 0 ] ] [ id ] ) ) ;
92
+ if ( uploadTranslations && locales . length > 1 ) {
93
+ await asyncForEach ( tail ( locales ) , locale =>
93
94
this . provider ! . uploadMessages ( newMessages . map ( id => this . messages [ locale ] [ id ] ) . filter ( Boolean ) , locale ) ,
94
95
) ;
95
- } else {
96
- await this . provider . uploadMessages ( newMessages . map ( id => this . messages [ locales [ 0 ] ] [ id ] ) , defaultLocale ) ;
97
96
}
98
97
}
99
98
}
0 commit comments