diff options
Diffstat (limited to 'application/basilisk/components/translation/cld2/post.js')
-rw-r--r-- | application/basilisk/components/translation/cld2/post.js | 171 |
1 files changed, 0 insertions, 171 deletions
diff --git a/application/basilisk/components/translation/cld2/post.js b/application/basilisk/components/translation/cld2/post.js deleted file mode 100644 index 8a905f988..000000000 --- a/application/basilisk/components/translation/cld2/post.js +++ /dev/null @@ -1,171 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this file, - * You can obtain one at http://mozilla.org/MPL/2.0/. */ - -// The WebIDL binder places static methods on the prototype, rather than -// on the constructor, which is a bit clumsy, and is definitely not -// idiomatic. -LanguageInfo.detectLanguage = LanguageInfo.prototype.detectLanguage; - -// Closure is overzealous in its function call optimization, and tries -// to turn these singleton methods into unbound function calls. -ensureCache.alloc = ensureCache.alloc.bind(ensureCache); -ensureCache.prepare = ensureCache.prepare.bind(ensureCache); - -// From public/encodings.h. Unfortunately, the WebIDL binder doesn't -// allow us to define or automatically derive these in the IDL. -var Encodings = { - "ISO_8859_1" : 0, - "ISO_8859_2" : 1, - "ISO_8859_3" : 2, - "ISO_8859_4" : 3, - "ISO_8859_5" : 4, - "ISO_8859_6" : 5, - "ISO_8859_7" : 6, - "ISO_8859_8" : 7, - "ISO_8859_9" : 8, - "ISO_8859_10" : 9, - "JAPANESE_EUC_JP" : 10, - "EUC_JP" : 10, - "JAPANESE_SHIFT_JIS" : 11, - "SHIFT_JIS" : 11, - "JAPANESE_JIS" : 12, - "JIS" : 12, - "CHINESE_BIG5" : 13, - "BIG5" : 13, - "CHINESE_GB" : 14, - "CHINESE_EUC_CN" : 15, - "EUC_CN" : 15, - "KOREAN_EUC_KR" : 16, - "EUC_KR" : 16, - "UNICODE_UNUSED" : 17, - "CHINESE_EUC_DEC" : 18, - "EUC_DEC" : 18, - "CHINESE_CNS" : 19, - "CNS" : 19, - "CHINESE_BIG5_CP950" : 20, - "BIG5_CP950" : 20, - "JAPANESE_CP932" : 21, - "CP932" : 21, - "UTF8" : 22, - "UNKNOWN_ENCODING" : 23, - "ASCII_7BIT" : 24, - "RUSSIAN_KOI8_R" : 25, - "KOI8_R" : 25, - "RUSSIAN_CP1251" : 26, - "CP1251" : 26, - "MSFT_CP1252" : 27, - "CP1252" : 27, - "RUSSIAN_KOI8_RU" : 28, - "KOI8_RU" : 28, - "MSFT_CP1250" : 29, - "CP1250" : 29, - "ISO_8859_15" : 30, - "MSFT_CP1254" : 31, - "CP1254" : 31, - "MSFT_CP1257" : 32, - "CP1257" : 32, - "ISO_8859_11" : 33, - "MSFT_CP874" : 34, - "CP874" : 34, - "MSFT_CP1256" : 35, - "CP1256" : 35, - "MSFT_CP1255" : 36, - "CP1255" : 36, - "ISO_8859_8_I" : 37, - "HEBREW_VISUAL" : 38, - "CZECH_CP852" : 39, - "CP852" : 39, - "CZECH_CSN_369103" : 40, - "CSN_369103" : 40, - "MSFT_CP1253" : 41, - "CP1253" : 41, - "RUSSIAN_CP866" : 42, - "CP866" : 42, - "ISO_8859_13" : 43, - "ISO_2022_KR" : 44, - "GBK" : 45, - "GB18030" : 46, - "BIG5_HKSCS" : 47, - "ISO_2022_CN" : 48, - "TSCII" : 49, - "TAMIL_MONO" : 50, - "TAMIL_BI" : 51, - "JAGRAN" : 52, - "MACINTOSH_ROMAN" : 53, - "UTF7" : 54, - "BHASKAR" : 55, - "HTCHANAKYA" : 56, - "UTF16BE" : 57, - "UTF16LE" : 58, - "UTF32BE" : 59, - "UTF32LE" : 60, - "BINARYENC" : 61, - "HZ_GB_2312" : 62, - "UTF8UTF8" : 63, - "TAM_ELANGO" : 64, - "TAM_LTTMBARANI" : 65, - "TAM_SHREE" : 66, - "TAM_TBOOMIS" : 67, - "TAM_TMNEWS" : 68, - "TAM_WEBTAMIL" : 69, - "KDDI_SHIFT_JIS" : 70, - "DOCOMO_SHIFT_JIS" : 71, - "SOFTBANK_SHIFT_JIS" : 72, - "KDDI_ISO_2022_JP" : 73, - "ISO_2022_JP" : 73, - "SOFTBANK_ISO_2022_JP" : 74, -}; - -// Accept forms both with and without underscores/hypens. -for (let code of Object.keys(Encodings)) { - if (code["includes"]("_")) - Encodings[code.replace(/_/g, "")] = Encodings[code]; -} - -addOnPreMain(function() { - - onmessage = function(aMsg) { - let data = aMsg["data"]; - - let langInfo; - if (data["tld"] == undefined && data["encoding"] == undefined && data["language"] == undefined) { - langInfo = LanguageInfo.detectLanguage(data["text"], !data["isHTML"]); - } else { - // Do our best to find the given encoding in the encodings table. - // Otherwise, just fall back to unknown. - let enc = String(data["encoding"]).toUpperCase().replace(/[_-]/g, ""); - - let encoding; - if (Encodings.hasOwnProperty(enc)) - encoding = Encodings[enc]; - else - encoding = Encodings["UNKNOWN_ENCODING"]; - - langInfo = LanguageInfo.detectLanguage(data["text"], !data["isHTML"], - data["tld"] || null, - encoding, - data["language"] || null); - } - - postMessage({ - "language": langInfo.getLanguageCode(), - "confident": langInfo.getIsReliable(), - - "languages": new Array(3).fill(0).map((_, index) => { - let lang = langInfo.get_languages(index); - return { - "languageCode": lang.getLanguageCode(), - "percent": lang.getPercent(), - }; - }).filter(lang => { - // Ignore empty results. - return lang["languageCode"] != "un" || lang["percent"] > 0; - }), - }); - - Module.destroy(langInfo); - }; - - postMessage("ready"); -}); |