(function (ninja) { var translator = ninja.translator = { currentCulture: "en", autoDetectTranslation: function () { // window.navigator.language for Firefox / Chrome / Opera Safari // window.navigator.userLanguage for IE var language = window.navigator.language || window.navigator.userLanguage; if (!this.translate(language)) { // Try to remove part after dash, for example cs-CZ -> cs language = language.substr(0, language.indexOf('-')); this.translate(language); } }, translate: function (culture) { var dict = translator.translations[culture]; if (dict) { // set current culture translator.currentCulture = culture; // update menu UI for (var cult in translator.translations) { var cultureElement = document.getElementById("culture" + cult); if (cultureElement != null) { cultureElement.setAttribute("class", ""); } else { console.log("DOM element not found: " + "culture" + cult); } document.getElementById("culture" + culture).setAttribute("class", "selected"); } // apply translations for (var id in dict) { if (document.getElementById(id) && document.getElementById(id).value) { document.getElementById(id).value = dict[id]; } else if (document.getElementById(id)) { document.getElementById(id).innerHTML = dict[id]; } } return true; } else { return false; } }, get: function (id) { var translation = translator.translations[translator.currentCulture][id]; return translation; }, translations: { "en": { // javascript alerts or messages "testneteditionactivated": "TESTNET EDITION ACTIVATED", "paperlabelbitcoinaddress": "Bitcoin Address:", "paperlabelprivatekey": "Private Key (Wallet Import Format):", "paperlabelencryptedkey": "Encrypted Private Key (Password required)", "bulkgeneratingaddresses": "Generating addresses... ", "brainalertpassphrasetooshort": "The passphrase you entered is too short.\n\n", "brainalertpassphrasewarning": "Warning: Choosing a strong passphrase is important to avoid brute force attempts to guess your passphrase and steal your bitcoins.", "brainalertpassphrasedoesnotmatch": "The passphrase does not match the confirm passphrase.", "detailalertnotvalidprivatekey": "The text you entered is not a valid Private Key", "detailconfirmsha256": "The text you entered is not a valid Private Key!\n\nWould you like to use the entered text as a passphrase and create a Private Key using a SHA256 hash of the passphrase?\n\nWarning: Choosing a strong passphrase is important to avoid brute force attempts to guess your passphrase and steal your bitcoins.", "detailbip38decryptbutton": "Decrypt BIP38", //TODO: please translate "detailbip38encryptbutton": "Encrypt BIP38", //TODO: please translate "bip38alertincorrectpassphrase": "Incorrect passphrase for this encrypted private key.", "bip38alertpassphraserequired": "Passphrase required for BIP38 key", "vanityinvalidinputcouldnotcombinekeys": "Invalid input. Could not combine keys.", "vanityalertinvalidinputpublickeysmatch": "Invalid input. The Public Key of both entries match. You must input two different keys.", "vanityalertinvalidinputcannotmultiple": "Invalid input. Cannot multiply two public keys. Select 'Add' to add two public keys to get a bitcoin address.", "vanityprivatekeyonlyavailable": "Only available when combining two private keys", "vanityalertinvalidinputprivatekeysmatch": "Invalid input. The Private Key of both entries match. You must input two different keys.", // header and menu html "singlewallet": "Single Wallet", "paperwallet": "Paper Wallet", "bulkwallet": "Bulk Wallet", "brainwallet": "Brain Wallet", "vanitywallet": "Vanity Wallet", "splitwallet": "Split Wallet", "detailwallet": "Wallet Details" } }, showEnglishJson: function () { var english = ninja.translator.translations["en"]; var spanish = ninja.translator.translations["es"]; var spanishClone = {}; for (var key in spanish) { spanishClone[key] = spanish[key]; } var newLang = {}; for (var key in english) { newLang[key] = english[key]; delete spanishClone[key]; } for (var key in spanishClone) { if (document.getElementById(key)) { if (document.getElementById(key).value) { newLang[key] = document.getElementById(key).value; } else { newLang[key] = document.getElementById(key).innerHTML; } } } var div = document.createElement("div"); div.setAttribute("class", "englishjson"); div.innerHTML = "