File size: 40,250 Bytes
4b630e2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
<head data-webtasks-id="4f7251a2-4900-40a9">
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" data-webtasks-id="2b31aec7-0efe-4de0">
    
    <title data-webtasks-id="37dadb91-bf76-4260">DeepL Translate: The world's most accurate translator</title>

    <meta name="description" content="Translate texts &amp; full document files instantly. Accurate translations for individuals and Teams. Millions translate with DeepL every day." data-webtasks-id="3088c3a2-a353-4bd7">
    <link rel="canonical" href="https://www.deepl.com/translator" data-webtasks-id="71a9920d-3b88-4cce">

    <link rel="alternate" hreflang="en" href="https://www.deepl.com/en/translator" data-webtasks-id="6748c534-ed35-45e2">
    <link rel="alternate" hreflang="de" href="https://www.deepl.com/de/translator" data-webtasks-id="8936b13e-9a7e-4b76">
    <link rel="alternate" hreflang="fr" href="https://www.deepl.com/fr/translator" data-webtasks-id="87a8ab10-8039-4648">
    <link rel="alternate" hreflang="es" href="https://www.deepl.com/es/translator" data-webtasks-id="3472a179-6be2-49a8">
    <link rel="alternate" hreflang="ja" href="https://www.deepl.com/ja/translator" data-webtasks-id="972ad18e-9734-4824">
    <link rel="alternate" hreflang="pt-PT" href="https://www.deepl.com/pt-PT/translator" data-webtasks-id="f007c222-34b8-45a7">
    <link rel="alternate" hreflang="pt-BR" href="https://www.deepl.com/pt-BR/translator" data-webtasks-id="db905604-6038-4b7e">
    <link rel="alternate" hreflang="it" href="https://www.deepl.com/it/translator" data-webtasks-id="8d032737-af72-429d">
    <link rel="alternate" hreflang="nl" href="https://www.deepl.com/nl/translator" data-webtasks-id="711a6f6e-553a-47d8">
    <link rel="alternate" hreflang="pl" href="https://www.deepl.com/pl/translator" data-webtasks-id="6168499a-fab0-4cff">
    <link rel="alternate" hreflang="ru" href="https://www.deepl.com/ru/translator" data-webtasks-id="dea3e3b0-c746-4383">
    <link rel="alternate" hreflang="zh" href="https://www.deepl.com/zh/translator" data-webtasks-id="e5653fd0-303b-48f8">
    <link rel="alternate" hreflang="sv" href="https://www.deepl.com/sv/translator" data-webtasks-id="7ec5be83-73fa-4b19">
    <link rel="alternate" hreflang="cs" href="https://www.deepl.com/cs/translator" data-webtasks-id="e3971dfa-71e3-4daf">
    <link rel="alternate" hreflang="tr" href="https://www.deepl.com/tr/translator" data-webtasks-id="50780de4-2988-4f74">
    <link rel="alternate" hreflang="id" href="https://www.deepl.com/id/translator" data-webtasks-id="3d1686d5-8b0b-45da">
    <link rel="alternate" hreflang="uk" href="https://www.deepl.com/uk/translator" data-webtasks-id="f557ddb8-ca0c-4a9e">
    <link rel="alternate" hreflang="ko" href="https://www.deepl.com/ko/translator" data-webtasks-id="cd2b31f6-2ee9-418b">
    <link rel="alternate" hreflang="x-default" href="https://www.deepl.com/en/translator" data-webtasks-id="ef6ad323-0454-44f8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0" data-webtasks-id="8d7513f5-f44c-4eff">
                <link rel="icon" type="image/png" href="https://static.deepl.com/img/favicon/favicon_16.png" sizes="16x16" data-webtasks-id="537f947c-16a3-4c39">
        <link rel="icon" type="image/png" href="https://static.deepl.com/img/favicon/favicon_32.png" sizes="32x32" data-webtasks-id="d08f4527-ccc2-4e81">
        <link rel="icon" type="image/png" href="https://static.deepl.com/img/favicon/favicon_96.png" sizes="96x96" data-webtasks-id="bac9c68c-082c-4e12">
            <link rel="apple-touch-icon" sizes="180x180" href="https://static.deepl.com/img/apple-touch-icon.png" data-webtasks-id="9e1dae38-9ca2-4111">
    <meta name="msapplication-TileColor" content="#042b48" data-webtasks-id="0be1a815-5f96-4001">
    <meta name="msapplication-TileImage" content="/img/favicon/tile_144.png" data-webtasks-id="f9c411e9-4144-4519">
    <meta name="msapplication-square70x70logo" content="/img/favicon/tile_small.png" data-webtasks-id="bf1c0bf8-a09a-423b">
    <meta name="msapplication-square150x150logo" content="/img/favicon/tile_medium.png" data-webtasks-id="f6777da1-3470-4bd4">
    <meta name="msapplication-square310x310logo" content="/img/favicon/tile_large.png" data-webtasks-id="c78b5f8c-4610-47d2">
    <meta name="google" content="notranslate" data-webtasks-id="0dd0f9ee-2c8d-4190">
    
    <meta property="og:title" content="DeepL Translate: The world's most accurate translator" data-webtasks-id="9b2bae82-0ed6-4fd6">
    <meta property="og:description" content="Translate texts &amp; full document files instantly. Accurate translations for individuals and Teams. Millions translate with DeepL every day." data-webtasks-id="4a996542-3543-48ff">
    <meta property="og:image" content="https://www.DeepL.com/img/favicon/deepl_logo_600_300.png" data-webtasks-id="236de54a-bc46-4483">
    <meta property="og:url" content="https://www.DeepL.com/translator" data-webtasks-id="92c6bd60-82ef-4791">
    <meta name="twitter:card" content="summary_large_image" data-webtasks-id="24ce336d-c0c4-4848">
    <meta name="apple-itunes-app" content="app-id=1552407475,affiliate-data=pt=309298&amp;ct=smart-app-banner&amp;mt=8" data-webtasks-id="371e2110-4f41-4e25">
            <script data-webtasks-id="2950ebf9-97c4-4cc5">
            if (typeof window.__REACT_DEVTOOLS_GLOBAL_HOOK__ === 'object') {
                __REACT_DEVTOOLS_GLOBAL_HOOK__.inject = function() {};
            }
        </script>
                <script data-webtasks-id="a461ddd7-6542-46a1">
            function initializeDapCookiesForEarlyRedirect() {
                function expires(mins) {
                    var date = new Date()
                    date.setTime(date.getTime() + (mins * 60 * 1000))
                    return date.toUTCString()
                }

                function uuid() {
                    var crypto = window.crypto || window.msCrypto // for IE 11
                    if (!crypto) return ''
                    return ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, function(c) {
                        return (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16)
                    })
                }
                var cookies = document.cookie.split('; ') || []

                function exists(cookies, cookieName) {
                    return cookies.some(c => c.startsWith(cookieName + "="))
                }

                if (!exists(cookies, 'dapSid')) {
                    var sidExpiresInMins = 30
                    var sid = {
                        sid: uuid(),
                        lastUpdate: Math.floor(Date.now() / 1000)
                    }
                    document.cookie = "dapSid=" + encodeURIComponent(JSON.stringify(sid)) + "; domain=.deepl.com; " +
                        "path=/; expires=" + expires(sidExpiresInMins) + "; samesite=lax"
                }

                if (!exists(cookies, 'dapUid')) {
                    var uidExpiresInMins = 60 * 24 * 30 * 12
                    var uid = uuid()
                    document.cookie = "dapUid=" + encodeURIComponent(uid) + "; domain=.deepl.com; " +
                        "path=/; expires=" + expires(uidExpiresInMins) + "; samesite=lax"
                }
            }
            // Copied from scriptHelper.spec.ts
            function constructRouteUrl(sourceUrl, sourcePathname, targetPathname, referrer) {
                function WithoutTrailingSlash(path) {
                    return path.endsWith('/') ? path.slice(0, path.length - 1) : path
                }
                try {
                    var urlObj = new URL(sourceUrl)
                    var cleanSourcePathname = WithoutTrailingSlash(sourcePathname)
                    if (urlObj.pathname.indexOf(cleanSourcePathname) < 0) {
                        cleanSourcePathname = cleanSourcePathname.replace(/\.html/, '')
                    }

                    if (urlObj.pathname.indexOf(cleanSourcePathname) >= 0) {
                        urlObj.pathname = WithoutTrailingSlash(urlObj.pathname.replace(
                            cleanSourcePathname,
                            WithoutTrailingSlash(targetPathname),
                        ))
                    } else {
                        urlObj.pathname = targetPathname
                    }

                    if (referrer && !urlObj.searchParams.has('referrer') && !referrer.startsWith(urlObj.origin)) {
                        urlObj.searchParams.set('referrer', referrer)
                    }
                    return urlObj.toString()
                } catch (_error) {}
                return sourceUrl
            }

            function checkDeviceRedirect() {
                var mobileBreakpoint = 640;
                var isMobile = ((window.navigator.userAgentData && window.navigator.userAgentData.mobile) || /Mobi/i.test(window.navigator.userAgent)) &&
                    Math.min(
                        window.screen ? window.screen.width : window.innerWidth,
                        window.screen ? window.screen.height : window.innerHeight
                    ) <= mobileBreakpoint

                                    var mobileUrl = constructRouteUrl(
                        window.location.href,
                        "/translator",
                        "/translator-mobile",
                        document.referrer
                    )

                    if (isMobile) {
                        initializeDapCookiesForEarlyRedirect()
                        try {
                            window.location.replace(mobileUrl)
                        } catch (_error) {
                            window.location.href = mobileUrl
                        }
                    }
                
                            }

            checkDeviceRedirect()
        </script>
        <script data-webtasks-id="74eaecb0-8227-4aa9">
        const SEVEN_DAYS_IN_MINUTES = 60 * 24 * 7; // MIN * HOURS * DAYS = 10080

        function getCookie(cookieName) {
            if (!document || !document.cookie) {
                return ''
            }

            const [_, value] = document.cookie
                .split('; ')
                .map(parts => parts.split('=', 2))
                .find(([name, value]) => name === cookieName) || []

            return value;
        }

        function setCookie(name, value, expiresInMinutes = SEVEN_DAYS_IN_MINUTES, domain = 'local.deepl.com') {
            if (!document) {
                return
            }

            var date = new Date();
            var expiresInMilliseconds = expiresInMinutes * 60 * 1000; // SECONDS * MILLISECONDS
            var secure = 'secure; '
            
            date.setTime(date.getTime() + expiresInMilliseconds);
            document.cookie =
                name + '=' + value + '; ' +
                'path=/' + '; ' +
                'domain=' + domain + '; ' +
                'samesite=lax' + '; ' +
                'expires=' + date.toUTCString() + '; ' +
                secure;
        }

        function extractRecommendations(str, splitParts = '_', splitKeyValue = '.', defVariant = 0) {
            if (typeof str !== 'string' || str instanceof String || str.trim() === '') {
                return []
            }

            const toIntOrDef = (val, def) =>
                val === null || isNaN(Number(val)) ? def : parseInt(val, 10)

            return str
                .split(splitParts)
                .map(s => s.trim())
                .map(part => part.split(splitKeyValue).map(s => s.trim()))
                .map(([name, variant]) => ({
                    name,
                    variant: toIntOrDef(variant, defVariant)
                }))
        }

        (function() {
            var ep;
            var loginState;
            var featureSet;
            try {
                if (window.localStorage) {
                    ep = JSON.parse(window.localStorage.getItem('dl_ep') || "false");
                                        loginState = JSON.parse(JSON.parse(window.localStorage.getItem('dl_auth'))?.loginState || window.localStorage.getItem('dl_loginState') || null) || undefined;
                    featureSet = JSON.parse(window.localStorage.getItem('dl_featureSet') || null) || undefined;
                }
            } catch (e) {
                console.error(e);
            }

            
            // read release groups cookie
            var releaseGroups = [];
            try {
                if (document.cookie) {
                    var allCookies = document.cookie.split('; ');
                    var releaseGroupsCookie = '';

                    for (i = 0; i < allCookies.length; i++) {
                        var cookiePair = allCookies[i].split('=');
                        if ('releaseGroups' === cookiePair[0].trim()) {
                            releaseGroupsCookie = cookiePair[1];
                        }
                    }

                    if (releaseGroupsCookie) {
                        // structure: id.name.variant.breakout_id.name.variant.breakout ...
                        var groups = releaseGroupsCookie.split('_');

                        for (i = 0; i < groups.length; i++) {
                            var group = groups[i].split('.');

                            if (group.length === 4) {
                                releaseGroups.push({
                                    id: parseInt(group[0], 10) || 0,
                                    name: group[1],
                                    variant: parseInt(group[2], 10) || 0,
                                    breakout: parseInt(group[3], 10) || 0
                                });
                            }
                        }
                    }
                }
            } catch (e) {
                console.error(e);
            }

            var queryParams = window.location.search.substr(1).split('&');
            var isApp = false;
            var freeAccountsAppVersion = ''
            var currentAppVersion = ''

            for (i = 0; i < queryParams.length; i++) {
                var key = queryParams[i].split('=', 2)[0];
                var value = queryParams[i].split('=', 2)[1];

                if (key === 'windows_app_version') {
                    isApp = true;
                    freeAccountsAppVersion = '4.6.0'
                    currentAppVersion = value
                }

                if (key === 'macos_app_version') {
                    isApp = true;
                    freeAccountsAppVersion = '4.4.0'
                    currentAppVersion = value
                }
            }

            window.dl_pageState = {
                v: '20180814',
                il: 'en',
                dataUseProhibited: !!(document.cookie || "").match(/(^| )data-use-prohibited=[^;]+/)
                ,
				logoutTarget: '/translator',
				relCanonical: '/translator',
				dapPageId: '110',
				dapEndpointV2: 'https://s.deepl.com/web/statistics',
				dapReleaseGroups: 'https://s.deepl.com/web/release-groups',
				supportUrl: 'https://support.deepl.com',
				secureCookie: '1'
            };

            if (loginState && loginState.accountId) {
                dl_pageState.loginState = loginState;
                document.documentElement.classList.add('dl_user_logged_in');
            } else if (ep) {
                dl_pageState.ep = ep
                document.documentElement.classList.add('dl_ep');
            }

            // login with real free accounts in the apps will not be possible for now
            // special handling for invalid subscription necessary
            // (delete if-case and isApp definition when free accounts supported in apps)
            var translatorServiceExists = featureSet && featureSet.translator && featureSet.translator.service

            // copied from utils/nativeAppInfo.ts
            function dl_toNumericAppVersion(str) {
                return str
                    .split('.')
                    .slice(0, 3)
                    .reduce(
                        (acc, v, i) => {
                            acc[i] = Number(v.split('+')[0])
                            return acc
                        },
                        [0, 0, 0],
                    )
            }

            // copied from utils/nativeAppInfo.ts with some minor changes
            function dl_isAppVersionAtLeast(appVersion, compareAgainstVersion) {
                if (!appVersion || !compareAgainstVersion) {
                    return false
                }

                const appNumericVersion = dl_toNumericAppVersion(appVersion)
                const compareAgainstNumericVersion = dl_toNumericAppVersion(compareAgainstVersion)

                for (let i = 0; i < 3; i += 1) {
                    if (appNumericVersion[i] < compareAgainstNumericVersion[i]) {
                        return false
                    }
                    if (appNumericVersion[i] > compareAgainstNumericVersion[i]) {
                        return true
                    }
                }

                return true
            }

            // Older versions of the app will need to work as before after the free accounts are released
            if (isApp && !dl_isAppVersionAtLeast(currentAppVersion, freeAccountsAppVersion)) {
                if (loginState && loginState.accountId) {
                    dl_pageState.pro = true;
                    document.documentElement.classList.add('dl_pro');
                }
            } else if (translatorServiceExists && featureSet.translator.service === 'pro'
                // transition phase: assume pro if no featureSet but loginState or enterprise account
                ||
                (!translatorServiceExists && loginState && loginState.accountId) ||
                (!translatorServiceExists && ep)
            ) {
                dl_pageState.pro = true;
                document.documentElement.classList.add('dl_pro');
            } else {
                dl_pageState.pro = false;
            }

            dl_pageState.releaseGroups = releaseGroups;
            dl_pageState.userRecommendations = extractRecommendations(getCookie('userRecommendations'));
            dl_pageState.productRecommendations = extractRecommendations(getCookie('productRecommendations'));
            dl_pageState.featureSet = featureSet;
                        window.dl_documentReady || (window.dl_documentReady = function(f) {
                (window.dl_documentReady._callbacks || (window.dl_documentReady._callbacks = [])).push(f);
            });
            (function () { 
var dl_texts_temp = {"pro-home\/subscribeNowButton":"Subscribe now without free trial","pro-home\/freeTrialButton":"Start your free trial","messages\/fieldError.passwordTooShort":"The password should be at least 8 characters long.","messages\/error.maintenanceWork":"We are hard at work and should have everything running very shortly. Please try again in a little while.","messages\/error.cardReauthorizationFailed.classic":"Unfortunately, your card could not be authorized. Please update your payment method.","genericDialog.continueButton":"Continue","cookieBanner\/title":"Cookie policy","cookieBanner\/shortIntroText":"We use cookies to offer useful features and measure performance to improve your experience. You can find further information in our <a href=\"\/privacy\">Privacy Policy<\/a>.","cookieBanner\/explanations_moreOptions":"More options","cookieBanner\/explanations_lessOptions":"Less options","cookieBanner\/expandedIntroText":"By clicking \u201cAccept all\u201d you agree to the use of all cookies. By clicking \u201cAccept selected\u201d, you agree only to the categories you have selected.","cookieBanner\/introductoryText":"We use cookies to offer useful features and measure performance to improve your experience. By clicking \u201cAccept all\u201d you agree to the use of all cookies. By clicking \u201cAccept selected\u201d, you agree only to the categories you have selected. You can find further information in our <a href=\"\/privacy\">Privacy Policy<\/a>.","cookieBanner\/category_necessary":"Necessary","cookieBanner\/category_performance":"Performance","cookieBanner\/category_comfort":"Comfort","cookieBanner\/category_marketing":"Marketing","cookieBanner\/explanations_moreInfo":"More info","cookieBanner\/explanations_lessInfo":"Less info","cookieBanner\/explanations_necessary":"These cookies are necessary for our website to work properly, so that you use the most important functions and navigate smoothly. This includes essential security and accessibility features, and preferences you select such as interface and translator language.","cookieBanner\/explanations_performance":"Cookies that measure how our site is used. We use this information to improve our website and services. With these cookies we measure, for example, how often users return and which functions they use.","cookieBanner\/explanations_comfort":"These cookies enable the website to provide enhanced functionality and personalisation. For example, remembering which pages you visited and personalise your experience based on this.","cookieBanner\/explanations_marketing":"These cookies and requests to third-party services are used to deliver advertising that is more relevant to you and your interests. They may also be used to limit the number of times you see an advertisement and measure the effectiveness of advertising campaigns.","cookieBanner\/cta_acceptAll":"Accept all","cookieBanner\/cta_acceptSelected":"Accept selected","cookieBanner\/cta_onlyNecessaryCookies":"Only necessary cookies","cookieBanner\/cta_acceptAllCookies":"Accept all cookies","cta_tryProForFree":"Try Pro for free","footer.cookieBanner.text":"DeepL uses cookies. For further details, please read our <a href=\"\/privacy\">Privacy Policy<\/a>.","buttonClose":"Close","footer.resources":"Resources","menuEntry.support":"Help Center","menuEntry.blog":"Blog","footer.navigation.label":"Footer","footer.accessibility":"Accessibility","footer.api_documentation":"API documentation","footer.data_security":"Data security","footer.privacy_policy":"Privacy policy","footer.licenseLink":"Terms & Conditions","footer.product":"Product","footer.free_translator":"Free translator","menuBar.proHomeLink":"DeepL Pro","footer.translation_api":"Translation API","footer.desktop_app":"Desktop app","footer.mobile_app":"Mobile app","footer.chrome_extension":"Chrome extension","footer.badge.new":"new","footer.write":"DeepL Write","footer.download":"Download","footer.download.android":"DeepL for Android","footer.download.chromeOS":"DeepL for ChromeOS","footer.download.iPhone":"DeepL for iPhone","footer.download.iPad":"DeepL for iPad","footer.download.mac":"DeepL for Mac","footer.download.windows":"DeepL for Windows","footer.download.chromeExtension":"DeepL Chrome extension","footer.download.edgeExtension":"DeepL Edge extension","menuEntry.companyInfo":"Company","menuEntry.pro_contactSales":"Contact Sales","header.contact_sales":"Contact Sales","menuBar.pressLink":"Press","menuBar.proButton":"Start free trial","menuBar.proButton.explorePro":"Explore Pro","menuBar.proButton.tooltip":"Get unlimited text translation for 30 days","footer.careers":"Careers","footer.imprint":"Publisher","footer.languageSelector.label":"Language","siteLangChooser.en":"English","siteLangChooser.de":"Deutsch","siteLangChooser.fr":"Fran\u00e7ais","siteLangChooser.es":"Espa\u00f1ol","siteLangChooser.it":"Italiano","siteLangChooser.nl":"Nederlands","siteLangChooser.pl":"Polski","siteLangChooser.ru":"\u0420\u0443\u0441\u0441\u043a\u0438\u0439","siteLangChooser.pt-PT":"Portugu\u00eas","siteLangChooser.pt-BR":"Portugu\u00eas (Brasil)","siteLangChooser.sv":"Svenska","siteLangChooser.cs":"\u010ce\u0161tina","siteLangChooser.ja":"\u65e5\u672c\u8a9e","siteLangChooser.zh":"\u7b80\u4f53\u4e2d\u6587","siteLangChooser.tr":"T\u00fcrk\u00e7e","siteLangChooser.id":"Bahasa Indonesia","siteLangChooser.uk":"\u0423\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430","siteLangChooser.ko":"\ud55c\uad6d\uc5b4","siteLangChooser.xx":"Custom (edit mode)","ie11deprecation_tite":"Please change your browser","ie11deprecation_body_1":"DeepL no longer supports Internet Explorer, so it may not work properly in this browser. For the best experience, please open DeepL in Microsoft Edge or any modern browser.","ie11deprecation_body_2":" Or <a href=\"https:\/\/appdownload.deepl.com\/windows\/0install\/DeepLSetup.exe\">Download DeepL for Windows<\/a>","ie11deprecation_edgeButton":"Open in Microsoft Edge","translator\/open":"Open","translator\/close":"Close","menuBar.label.moreProducts":"More products","menuBar.translatorLink":"Translator","menuBar.writeLink":"Write","menuBar.writeLink.v2":"Write: AI writing companion","menuBar.lingueeLink":"Linguee","menuBar.proApiLink":"API","menuBar.featuresLink":"Features","menuBar.forBusinessLink":"For Business","menuBar.whyDeeplLink":"Why DeepL?","menuBar.desktopAppsLink":"Apps","menuEntry.pro_PlansAndPricing":"Plans and pricing","menuEntry.desktopApps":"Windows \/ macOS apps","menuEntry.iosApp":"iOS app","menuEntry.androidApp":"Android app","menuEntry.mobileApps":"Android \/ iOS apps","menuEntry.windowsApp":"Windows app","menuEntry.android_chromeOS_app":"Android \/ Chromebook app","menuEntry.iPhone_iPad_app":"iPhone \/ iPad app","menuEntry.macOSApp":"Mac app","menuEntry.chromeExtension":"Chrome extension","menuEntry.edgeExtension":"Edge extension","menuEntry.downloadApp":"Download the app","menuEntry.pro_apiDocs":"API technical documentation","menuEntry.pro_faq":"Frequently asked questions","menuBar.blogLink":"Blog","menuEntry.forBusinessDiscoverHeader":"Discover","menuEntry.forBusinessOverview":"Overview","menuEntry.forBusinessForTeamsHeader":"For teams","menuEntry.forBusinessLegal":"Legal","menuEntry.forBusinessCustomerSupport":"Customer Success","menuEntry.forBusinessMarketing":"Marketing","menuEntry.forBusinessProfessionalServices":"Professional Services","menuEntry.forBusinessLocalization":"Localization","menuEntry.forBusinessSales":"Sales","flyout_link_sales":"Contact Sales","whyDeeplFlyout_whyDeeplLink":"Translation quality","whyDeeplFlyout_whyDeeplProLink":"Why Pro?","whyDeeplFlyout_featuresLink":"Features","menuEntry.pressInformation":"Press Information","menuEntry.jobOfferings":"DeepL is hiring","menuEntry.badge.new":"new","menuBar.loginMenu":"Login","menuBar.userMenu":"User menu","menuEntry.pro_apiDocs_short":"API docs","menuCategory.products":"Products","menuCategory.apps_extensions":"Apps \/ Extensions","menuCategory.resources":"Resources","loginMenu.signupShort":"Sign up","userMenu.myAccount":"Account","userMenu.logout":"Log out","loginMenu.noAccountYet":"No account yet?","loginMenu.signupLong":"Sign up for DeepL Pro","loginMenu.headline":"Login","loginMenu.login":"Email","loginMenu.password":"Password","loginMenu.passwordLostButton":"Forgot your password?","loginMenu.submitButton":"Log in","loginMenu.loginKeep":"Remember me","sendPasswordLinkLogin":"Back to login","sendPasswordLinkTitle":"Password reset","sendPasswordLinkSubmit":"Reset password","sendPasswordLinkSuccess":"If there is an account associated with this email address, a message with instructions on how to reset the password will be sent shortly.","timeout.text":"Your session is no longer valid. Please log in again.","messages\/fieldError.login_emailRequired":"Email required.","messages\/fieldError.login_passwordRequired":"Password required.","messages\/fieldError.emailInvalid":"The email address is invalid.","messages\/error.loginFailed":"Login failed.","messages\/error.loggedOut":"You have logged out.","messages\/error.sessionLost":"Your session has expired. Please log in again.","customer-messages\/AUTHENTICATION_REQUIRED.message":"A payment for your DeepL Pro subscription could not be processed because the authorization for your payment method has expired. Please authorize the payment, or update your payment details.","customer-messages\/AUTHENTICATION_REQUIRED.link":"Update payment details","customer-messages\/AUTHENTICATION_REQUIRED.button":"Renew authorization","customer-messages\/CARD_ERROR.message":"We could not process the payment for your DeepL Pro subscription. Please contact your bank or provide another payment method.","customer-messages\/CARD_ERROR.link":"Change payment method","customer-messages\/CHECK_CARD.message":"A payment for your DeepL Pro subscription could not be processed. Please check your payment details or contact your banking institution for further information.","customer-messages\/CHECK_CARD.link":"Check payment details","customer-messages\/VAT_NUMBER_INVALIDATED.message":"Your VAT ID could not be validated. If you have a new VAT ID, please update your payment details.","customer-messages\/VAT_NUMBER_INVALIDATED.link":"Update payment details","messages\/error.loginFailedWithTooManyRequests":"Login failed due to too many requests.","messages\/sessionRenewal.tooManyTriesDialog.title":"Your session was lost","messages\/sessionRenewal.tooManyTriesDialog.content":"We're having problems renewing your session. It could be due to a problem with your network connection. Please check your connection and try again.","messages\/sessionRenewal.tooManyTriesDialog.button.tryAgain":"Try again","messages\/sessionRenewal.tooManyTriesDialog.button.goToLogin":"Go to login","messages\/sessionRenewal.tooManyTriesDialog.button.useFree":"Use the free translator","badge_tryForFree":"Try&nbsp;for&nbsp;free","shortcut_callout_interaction":"To interact with this notification, press ALT or OPTION + i.","translator\/dialog.manyTranslationsNag.button.tryPro":"Try Pro for free","translator\/iosAd_banner_header":"DeepL Translate","translator\/iosAd_banner_subtitle":"Free in the App Store","translator\/androidAd_banner_subtitle":"Free in the Play Store","translator\/iosAd_banner_cta":"Download","productSelectionMenu.translator.title":"Translator","productSelectionMenu.dropdown.deepL":"DeepL","productSelectionMenu.translator.description":"Translate text and files instantly","productSelectionMenu.write.title":"Write","productSelectionMenu.write.description":"Improve your writing in seconds","productSelectionMenu.dropdown.description":"Switch to","announcements.buttonLabel":"Product updates","announcements.panelHeadline":"Product updates","announcements.viewAllLinkText":"View on blog","announcements.unread":"Unread","common\/clearance.requestFailed":"Sorry, there was a problem with the security check, and the request to clearance.deepl.com failed. Please try again or contact your administrator. Check out our ${helpCenterLinkOpen}Help Center${helpCenterLinkClose} if the problem persists.","common\/clearance.ipMismatch":"Sorry, the security check failed due to an IP address mismatch on login (clearance.deepl.com was called with a different IP). Please try again or contact your administrator. Check out our ${helpCenterLinkOpen}Help Center${helpCenterLinkClose} if the problem persists.","loginMenu.ssoButton":"Log in with SSO","loginMenu.ssoSubdomainLabel":"Company SSO domain","loginMenu.ssoSubdomainError":"This domain is not registered for SSO. Please contact your account administrator.","loginMenu.ssoBackToNormalLogin":"Back","loginMenu.ssoSubdomainPlaceholder":"your-domain","loginMenu.ssoDeepldomainPlaceholder":".sso.deepl.com","messages\/error.ssoAuthorizationFailed":"Single sign-on authorization failed. Please contact DeepL Support.","messages\/error.ssoError.SSO99":"Something went wrong. Please try again later (error: ${ssoErrorCode}).","announcements.buttonLabelHasUnseen":"Product updates, ${numberOfNewAnnouncements} new updates","announcements.screenReaderNotification":"There are ${numberOfNewAnnouncements} new updates to our product. Press g, n on your keyboard to view them.","messages\/error.ssoError.SSO01":"You\u2019re accessing a disabled identity provider (error: ${ssoErrorCode}).","messages\/error.ssoError.SSO02":"That identity provider does not exist (error: ${ssoErrorCode}).","messages\/error.ssoError.SSO10":"We can't assign that subscription to that identity provider (error: ${ssoErrorCode}).","messages\/error.ssoError.SSO11":"We can't create that subscription (error: ${ssoErrorCode}).","messages\/error.ssoError.SSO20":"This domain is not registered for SSO. Please contact your account administrator (error: ${ssoErrorCode}).","messages\/error.ssoError.SSO21":"There were too many matching subscriptions found. Please contact your account administrator (error: ${ssoErrorCode}).","messages\/error.ssoError.SSO22":"Your registration exceeds the account limit. Please contact your account administrator (error: ${ssoErrorCode}).","messages\/error.ssoError.SSO23":"We couldn't register your account. Please contact your account administrator (error: ${ssoErrorCode}).","messages\/error.ssoError.SSO24":"We couldn't create your account because an account with your email address already exists. Please contact <a href=\"https:\/\/www.DeepL.com\/support\" target='_blank'>DeepL Support<\/a> (error: ${ssoErrorCode}).","messages\/error.ssoError.SSO25":"This subaccount is an owner of at least one confirmed subscription (error: ${ssoErrorCode}).","messages\/error.ssoError.SSO26":"This subaccount has an invalid identity provider or identity (error: ${ssoErrorCode}).","messages\/error.ssoError.SSO27":"That account doesn't exist, or there was a session timeout (error: ${ssoErrorCode}).","messages\/error.ssoError.SSO28":"This subscription has not been set up for SSO (error: ${ssoErrorCode}).","messages\/error.ssoError.SSO29":"This subaccount is already assigned to an identity provider (error: ${ssoErrorCode}).","messages\/error.ssoError.SSO30":"An identity provider with this name already exists (error: ${ssoErrorCode}).","messages\/error.ssoError.SSO31":"That identity provider cannot be assigned to a single-user subscription (error: ${ssoErrorCode}).","messages\/error.ssoError.SSO32":"That identity provider is approved already (error: ${ssoErrorCode}).","messages\/sso_migration_needed_headline":"Please log in via SSO","messages\/sso_migration_needed_text":"The login process has changed for all users of your team account. From now on, you have to log in via SSO due to security reasons. <br \/><br \/>Please contact <a href=\"mailto:${email}\">${email}<\/a> if you have any questions.","messages\/sso_migration_needed_link":"Log in via SSO"}; 
if (window.dl_texts) { Object.assign(window.dl_texts, dl_texts_temp); }
else { window.dl_texts = dl_texts_temp; }
})(); 

            // M bootstrap
            window.M = {}
            M.__delayedCommands = []
            M.define = function() {
                var args = arguments
                M.__delayedCommands.push(function() {
                    window.M.define.apply(null, args)
                })
            }
            M.requireAsync = function() {
                var args = arguments
                M.__delayedCommands.push(function() {
                    window.M.requireAsync.apply(null, args)
                })
            }
            M.registerAsync = function(key, value) {
                M.__delayedCommands.push(function() {
                    window.M.registerAsync(key, value)
                })
            }
        })();
    </script>

    	<link rel="stylesheet" type="text/css" href="https://static.deepl.com/css/deepl.$f8372a.css" data-webtasks-id="5bcb0107-575b-42fc">
    <script data-webtasks-id="ab0f6126-0c98-40a7">
    (function(){
        const loc = ((decodeURIComponent(""+location.pathname).match(/^.*?\/translator.*?\/(.*)($|\?)|/)||[])[1] || "");
        const parts = loc.split("/");
        if (parts.length < 3)
            return;
        let updateMetaNodes = false, mode = parts[0];
        if (mode==='l' || mode==='q'){  parts.shift(); } else { mode = 'q'; }
        let initialState, newPageId;
        const a = parts.map(function(s){ return s.replace(/\+/g, " ")}), revert = [];
        if (mode==='q'){
            const s = parts.join("/");
            let v = 0x811c9dc5;
            for(let i = s.length - 1; i>=0; --i ){v ^= s.charCodeAt(i); v += (v << 1) + (v << 4) + (v << 7) + (v << 8) + (v << 24);}
            const checked = (v >>> 0).toString(16).match(/73536$/);
            revert.push(function(){window.history.replaceState(null, "", (location.href.match(/^.*?translator/g)||[])[0]);});
            initialState = { sourceLangcode:a[0], sourceText:a[1], targetLangcode:a[2], revert: revert, };
            if (checked){
                initialState.checked = true;
                initialState.sourceChains = [[a[1]]];
                initialState.targetChains = [[a[3]]];
                newPageId = 1200;
            }
        } else if (mode==='l'){
            initialState = { sourceLangcode:a[0], targetLangcode:a[1], revert: revert, checked: true };
            newPageId = 1201;
        }

        if (newPageId && window.dl_pageState){
            const originalDapPageId = window.dl_pageState.dapPageId;
            window.dl_pageState.dapPageId = newPageId;
            revert.push(function(){
                if (window.store && window.store.getState().pageState) {
                    var payload = Object.assign({}, window.dl_pageState);
                    payload.dapPageId = originalDapPageId;
                    window.store.dispatch({
                        type: 'pagestate/change',
                        payload: payload
                    });
                } else {
                    window.dl_pageState.dapPageId = originalDapPageId;
                }
            });
        }

        window._initialTranslatorState = initialState;
    })();
        (function(){
        if (location.hash){
            const n = document.createElement("meta");
            n.setAttribute("name", "robots");
            n.setAttribute("content", "noindex");
            document.querySelector("head").appendChild(n);
        }
    })()
    </script><meta name="robots" content="noindex" data-webtasks-id="69599040-cb31-4a55">
    <script data-webtasks-id="e982047a-3004-4ec2">
        (function(){
            const loc = ((decodeURIComponent(""+location.pathname).match(/^.*?\/translator.*?\/(.*)($|\?)|/)||[])[1] || "");
            const parts = loc.split("/");
            if (parts[0] === 'files'){
                const linkNodes = document.querySelectorAll("link[rel=alternate], link[rel=canonical]");
                for (let i=0; i<linkNodes.length; i++){
                    const n = linkNodes[i],
                    originalHref = n.getAttribute('href') || "";
                    n.setAttribute('href', originalHref.replace('translator', 'translator/' + loc));
                }
            }
        })();
    </script>
	<link rel="stylesheet" type="text/css" href="https://static.deepl.com/css/lmt.$a49193.css" data-webtasks-id="d8f39834-76f0-4962">
	<script src="https://static.deepl.com/js/translator_early.min.$ce88a4.js" data-webtasks-id="27d92948-4467-4296"></script>
    <script data-webtasks-id="6eb3092d-4b1a-4166">
    (function(){
        var isActive = dl_pageState.releaseGroups.some(function (r) {
        return r.name === 'DF-1968' && r.variant === 2
        })

        if (isActive) {
        document.documentElement.classList.add('desktop_restyling_df1968')
        }
    })()
    </script>
    <script data-webtasks-id="f33528f2-e7de-43f1">
    (function(){
        var isActive = dl_pageState.releaseGroups.some(function (r) {
            return r.name === 'DF-2974' && r.variant === 2
        })

        if (isActive) {
            document.documentElement.classList.add('df2974_new_language_menu')
        }
    })()
    </script>
    <script data-webtasks-id="c0dda68e-f0dc-43ba">
    (function(){
        var isActive = dl_pageState.releaseGroups.some(function (r) {
            return r.name === 'DF-3238' && r.variant === 2 && !dl_pageState.writeMode
        })

        if (isActive) {
            document.documentElement.classList.add('df3238_dictionary_sneak_peak')
        }
    })()
    </script>
</head>
<body class="dl_body dl_body--translator dl_body--redesign integratedLanguageSelectors " data-webtasks-id="cc2fa5b9-1a2f-49a6">
</body>