@@ -8,6 +8,8 @@ const svgDim = require('svg-dimensions');
8
8
const YAML = require ( 'yaml' ) ;
9
9
const crypto = require ( 'crypto' ) ;
10
10
const os = require ( 'os' ) ;
11
+ const jsdom = require ( "jsdom" ) ;
12
+ const { JSDOM } = jsdom ;
11
13
12
14
let uniq ;
13
15
@@ -43,8 +45,6 @@ parser.add_argument('-ijq', '--intermediateJpegQuality', { help: 'JPEG quality 0
43
45
parser . add_argument ( '-nc' , '--nocache' , { help : "Don't use screenshots cache (but still generate it), for scriptimate develeopmnt" , default : false } ) ;
44
46
45
47
46
-
47
-
48
48
const proc_args = parser . parse_args ( ) ;
49
49
50
50
const FPS = + proc_args . fps ;
@@ -325,12 +325,13 @@ const addPart = async (lang, filename, left, top, opacity, scale, toBoxHole, das
325
325
} ) ;
326
326
if ( lang !== 'default' ) {
327
327
const strings = translationsDict [ lang ] ;
328
- Object . keys ( strings ) . forEach ( ( tr ) => {
329
- withUniquifiedIDs = withUniquifiedIDs . replace ( new RegExp ( `>(.+?)${ tr } (.+?)<` , 'g' ) , ( _ , v1 , v2 ) => {
330
- return `>${ v1 } ${ strings [ tr ] } ${ v2 } <` ;
331
- } ) ;
332
- // withUniquifiedIDs = withUniquifiedIDs.replaceAll(tr, strings[tr]);
333
- } ) ;
328
+ const dom = new JSDOM ( withUniquifiedIDs ) ;
329
+ for ( let e of dom . window . document . querySelectorAll ( "tspan" ) ) {
330
+ for ( let tr of Object . keys ( strings ) ) {
331
+ e . innerHTML = e . innerHTML . replaceAll ( tr , strings [ tr ] ) ;
332
+ } ;
333
+ }
334
+ withUniquifiedIDs = dom . window . document . querySelector ( 'html' ) . innerHTML ;
334
335
}
335
336
parts [ filename ] = {
336
337
type : 'part' ,
0 commit comments