1
+ const json = require ( './filesToTranslate.json' ) ;
2
+ fs = require ( 'fs' ) ;
3
+
4
+ global . fetch = require ( "node-fetch" ) ;
5
+ const puppeteer = require ( 'puppeteer' ) ;
6
+
7
+ async function translate ( incomingText ) {
8
+ const browser = await puppeteer . launch ( { headless : false } ) ;
9
+ const page = await browser . newPage ( ) ;
10
+ await page . goto ( 'https://www.deepl.com/translator' , { waitUntil : 'domcontentloaded' } ) ;
11
+
12
+ await page . evaluate ( ( ) => { localStorage . setItem ( 'LMT_preferredLangs' , 'EN,NL' ) ; } ) ;
13
+ await page . evaluate ( ( ) => { localStorage . setItem ( 'LMT_preferredLangVariants' , 'en-US' ) ; } ) ;
14
+ await page . evaluate ( ( ) => { localStorage . setItem ( 'LMT_selectedTargetLang' , 'NL' ) ; } ) ;
15
+
16
+ await page . waitForSelector ( '.dl_cookieBanner--buttonAll' ) ;
17
+ await page . click ( '.dl_cookieBanner--buttonAll' ) ;
18
+ await page . evaluate ( val => document . querySelector ( '.lmt__source_textarea' ) . value = val , incomingText ) ;
19
+ await page . click ( '.lmt__language_select--target' ) ;
20
+ await page . evaluate ( ( ) => {
21
+ [ ...document . querySelectorAll ( '.lmt__language_select__menu button' ) ] . find ( element => element . textContent === 'Dutch' ) . click ( ) ;
22
+ } ) ;
23
+ await page . waitFor ( 5000 ) ;
24
+ let translatedText = await page . $eval ( '.lmt__target_textarea' , el => el . value ) ;
25
+ await browser . close ( ) ;
26
+ return [ incomingText , translatedText ] ;
27
+ }
28
+
29
+ function startTranslating ( url , file ) {
30
+ fetch ( url )
31
+ . then ( response => response . text ( ) )
32
+ . then ( response => translate ( response ) )
33
+ . then ( response => {
34
+ fs . writeFile ( file , `${ response [ 0 ] } \n====================\n${ response [ 1 ] } ` , function ( err ) {
35
+ if ( err ) return console . log ( "schrijven mislukt! " + err ) ;
36
+ console . log ( 'schrijven gelukt' ) ;
37
+ } ) ;
38
+ } )
39
+ . catch ( err => console . log ( err ) ) ;
40
+ }
41
+
42
+ function fetchJSON ( ) {
43
+ let files = json . files ;
44
+ files . forEach ( el => {
45
+ //console.log();
46
+ startTranslating ( "https://raw.githubusercontent.com/javascript-tutorial/nl.javascript.info/master/" + el . slice ( 21 , el . length ) , "." + el . slice ( 20 , el . length ) )
47
+ } ) ;
48
+ }
49
+
50
+ fetchJSON ( ) ;
0 commit comments