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