From b8df8e79d1b3a049712e1d6a3b07697840119b7a Mon Sep 17 00:00:00 2001 From: Aidan Welch Date: Tue, 3 May 2022 14:43:56 -0400 Subject: [PATCH] implement opts.forceFrom/To --- index.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/index.js b/index.js index d331f87e..9edb5b84 100644 --- a/index.js +++ b/index.js @@ -17,8 +17,8 @@ function translate(text, opts, gotopts) { opts = opts || {}; gotopts = gotopts || {}; var e; - [opts.from, opts.to].forEach(function (lang) { - if (lang && !languages.isSupported(lang)) { + [[opts.from, opts.forceFrom], [opts.to, opts.forceTo]].forEach(function ([lang, force]) { + if (!force && lang && !languages.isSupported(lang)) { e = new Error(); e.code = 400; e.message = 'The language \'' + lang + '\' is not supported'; @@ -31,12 +31,14 @@ function translate(text, opts, gotopts) { } opts.from = opts.from || 'auto'; + opts.forceFrom = opts.forceFrom === undefined ? false : Boolean(opts.forceFrom); opts.to = opts.to || 'en'; + opts.forceTo = opts.forceTo === undefined ? false : Boolean(opts.forceTo); opts.tld = opts.tld || 'com'; opts.autoCorrect = opts.autoCorrect === undefined ? false : Boolean(opts.autoCorrect); - opts.from = languages.getCode(opts.from); - opts.to = languages.getCode(opts.to); + opts.from = opts.forceFrom ? opts.from : languages.getCode(opts.from); + opts.to = opts.forceTo ? opts.to : languages.getCode(opts.to); var url = 'https://translate.google.' + opts.tld;