2 lines
16 KiB
JavaScript
2 lines
16 KiB
JavaScript
var I18n=(function(){"use strict";var c={en:{name:"English"},de:{name:"Deutsch"},fr:{name:"Fran\xE7ais"},it:{name:"Italiano"},es:{name:"Espa\xF1ol"},pt:{name:"Portugu\xEAs"},ru:{name:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439"}},r='Open Source · No Tracking · No KYC · <a href="https://gitea.schmidt.eco/schmidt1024/xmrpay.link" target="_blank">Source</a> · <a href="http://mc6wfeaqc7oijgdcudrr5zsotmwok3jzk3tu2uezzyjisn7nzzjjizyd.onion" title="Tor Hidden Service">Onion</a>',d={en:{subtitle:"Monero payment request in seconds",label_addr:"XMR Address",placeholder_addr:"8...",label_amount:"Amount",label_desc:"Description (optional)",placeholder_desc:"e.g. Invoice #42, freelance work...",label_timer:"Payment deadline (optional)",days:"days",placeholder_timer_custom:"Days",btn_generate:"Create payment request",btn_open_wallet:"Open in wallet",btn_copy_addr:"Copy address",btn_download_pdf:"PDF Invoice",pdf_title:"Payment Request",pdf_address:"XMR Address",pdf_amount:"Amount",pdf_desc:"Description",pdf_deadline:"Payment deadline",pdf_deadline_days:"{d} days",pdf_date:"Date",pdf_scan_qr:"Scan QR code to pay",pdf_footer:"Created with xmrpay.link",qr_hint:"Click QR to save",footer:r,aria_currency:"Currency",label_share_link:"Shareable link",btn_new_request:"New payment request",toast_copied:"Copied!",countdown_expired:"Payment deadline expired",countdown_remaining_days:"Deadline: {d} days, {h} hrs",countdown_remaining_hours:"Deadline: {h}:{m} hrs",rates_offline:"Rates unavailable \u2014 XMR amount only",btn_prove_payment:"Prove payment",label_tx_hash:"Transaction ID (TX Hash)",placeholder_tx_hash:"64 hex characters...",label_tx_key:"Transaction Key (TX Key)",placeholder_tx_key:"64 hex characters...",btn_verify_proof:"Verify payment",proof_verifying:"Verifying...",proof_verified:"Payment confirmed: {amount} XMR",proof_no_match:"No matching output \u2014 TX key or address mismatch",proof_tx_not_found:"Transaction not found",proof_error:"Verification error",status_paid:"Paid"},de:{subtitle:"Monero-Zahlungsanforderung in Sekunden",label_addr:"XMR-Adresse",placeholder_addr:"8...",label_amount:"Betrag",label_desc:"Beschreibung (optional)",placeholder_desc:"z.B. Rechnung #42, Freelance-Arbeit...",label_timer:"Zahlungsfrist (optional)",days:"Tage",placeholder_timer_custom:"Tage",btn_generate:"Zahlungsanforderung erstellen",btn_open_wallet:"In Wallet \xF6ffnen",btn_copy_addr:"Adresse kopieren",btn_download_pdf:"PDF Rechnung",pdf_title:"Zahlungsanforderung",pdf_address:"XMR-Adresse",pdf_amount:"Betrag",pdf_desc:"Beschreibung",pdf_deadline:"Zahlungsfrist",pdf_deadline_days:"{d} Tage",pdf_date:"Datum",pdf_scan_qr:"QR-Code scannen zum Bezahlen",pdf_footer:"Erstellt mit xmrpay.link",qr_hint:"Klick auf QR zum Speichern",footer:r,aria_currency:"W\xE4hrung",label_share_link:"Teilbarer Link",btn_new_request:"Neue Zahlungsanforderung",toast_copied:"Kopiert!",countdown_expired:"Zahlungsfrist abgelaufen",countdown_remaining_days:"Zahlungsfrist: {d} Tage, {h} Std.",countdown_remaining_hours:"Zahlungsfrist: {h}:{m} Std.",rates_offline:"Kurse nicht verf\xFCgbar \u2014 nur XMR-Betrag m\xF6glich",btn_prove_payment:"Zahlung nachweisen",label_tx_hash:"Transaction ID (TX Hash)",placeholder_tx_hash:"64 Hex-Zeichen...",label_tx_key:"Transaction Key (TX Key)",placeholder_tx_key:"64 Hex-Zeichen...",btn_verify_proof:"Zahlung verifizieren",proof_verifying:"Verifiziere...",proof_verified:"Zahlung best\xE4tigt: {amount} XMR",proof_no_match:"Kein passender Output \u2014 TX Key oder Adresse stimmt nicht",proof_tx_not_found:"Transaktion nicht gefunden",proof_error:"Fehler bei der Verifizierung",status_paid:"Bezahlt"},fr:{subtitle:"Demande de paiement Monero en quelques secondes",label_addr:"Adresse XMR",placeholder_addr:"8...",label_amount:"Montant",label_desc:"Description (facultatif)",placeholder_desc:"ex. Facture #42, travail freelance...",label_timer:"Date limite de paiement (facultatif)",days:"jours",placeholder_timer_custom:"Jours",btn_generate:"Cr\xE9er une demande de paiement",btn_open_wallet:"Ouvrir dans le wallet",btn_copy_addr:"Copier l'adresse",btn_download_pdf:"Facture PDF",pdf_title:"Demande de paiement",pdf_address:"Adresse XMR",pdf_amount:"Montant",pdf_desc:"Description",pdf_deadline:"Date limite de paiement",pdf_deadline_days:"{d} jours",pdf_date:"Date",pdf_scan_qr:"Scanner le QR code pour payer",pdf_footer:"Cr\xE9\xE9 avec xmrpay.link",qr_hint:"Cliquez sur le QR pour enregistrer",footer:r,aria_currency:"Devise",label_share_link:"Lien partageable",btn_new_request:"Nouvelle demande de paiement",toast_copied:"Copi\xE9 !",countdown_expired:"D\xE9lai de paiement expir\xE9",countdown_remaining_days:"D\xE9lai : {d} jours, {h} h",countdown_remaining_hours:"D\xE9lai : {h}:{m} h",rates_offline:"Taux indisponibles \u2014 montant en XMR uniquement",btn_prove_payment:"Prouver le paiement",label_tx_hash:"Transaction ID (TX Hash)",placeholder_tx_hash:"64 caract\xE8res hexad\xE9cimaux...",label_tx_key:"Transaction Key (TX Key)",placeholder_tx_key:"64 caract\xE8res hexad\xE9cimaux...",btn_verify_proof:"V\xE9rifier le paiement",proof_verifying:"V\xE9rification...",proof_verified:"Paiement confirm\xE9 : {amount} XMR",proof_no_match:"Aucun output correspondant \u2014 TX Key ou adresse incorrecte",proof_tx_not_found:"Transaction introuvable",proof_error:"Erreur de v\xE9rification",status_paid:"Pay\xE9"},it:{subtitle:"Richiesta di pagamento Monero in pochi secondi",label_addr:"Indirizzo XMR",placeholder_addr:"8...",label_amount:"Importo",label_desc:"Descrizione (facoltativo)",placeholder_desc:"es. Fattura #42, lavoro freelance...",label_timer:"Scadenza pagamento (facoltativo)",days:"giorni",placeholder_timer_custom:"Giorni",btn_generate:"Crea richiesta di pagamento",btn_open_wallet:"Apri nel wallet",btn_copy_addr:"Copia indirizzo",btn_download_pdf:"Fattura PDF",pdf_title:"Richiesta di pagamento",pdf_address:"Indirizzo XMR",pdf_amount:"Importo",pdf_desc:"Descrizione",pdf_deadline:"Scadenza pagamento",pdf_deadline_days:"{d} giorni",pdf_date:"Data",pdf_scan_qr:"Scansiona il QR per pagare",pdf_footer:"Creato con xmrpay.link",qr_hint:"Clicca sul QR per salvare",footer:r,aria_currency:"Valuta",label_share_link:"Link condivisibile",btn_new_request:"Nuova richiesta di pagamento",toast_copied:"Copiato!",countdown_expired:"Scadenza pagamento superata",countdown_remaining_days:"Scadenza: {d} giorni, {h} ore",countdown_remaining_hours:"Scadenza: {h}:{m} ore",rates_offline:"Tassi non disponibili \u2014 solo importo in XMR",btn_prove_payment:"Dimostra pagamento",label_tx_hash:"Transaction ID (TX Hash)",placeholder_tx_hash:"64 caratteri esadecimali...",label_tx_key:"Transaction Key (TX Key)",placeholder_tx_key:"64 caratteri esadecimali...",btn_verify_proof:"Verifica pagamento",proof_verifying:"Verifica in corso...",proof_verified:"Pagamento confermato: {amount} XMR",proof_no_match:"Nessun output corrispondente \u2014 TX Key o indirizzo errato",proof_tx_not_found:"Transazione non trovata",proof_error:"Errore di verifica",status_paid:"Pagato"},es:{subtitle:"Solicitud de pago Monero en segundos",label_addr:"Direcci\xF3n XMR",placeholder_addr:"8...",label_amount:"Monto",label_desc:"Descripci\xF3n (opcional)",placeholder_desc:"ej. Factura #42, trabajo freelance...",label_timer:"Plazo de pago (opcional)",days:"d\xEDas",placeholder_timer_custom:"D\xEDas",btn_generate:"Crear solicitud de pago",btn_open_wallet:"Abrir en wallet",btn_copy_addr:"Copiar direcci\xF3n",btn_download_pdf:"Factura PDF",pdf_title:"Solicitud de pago",pdf_address:"Direcci\xF3n XMR",pdf_amount:"Monto",pdf_desc:"Descripci\xF3n",pdf_deadline:"Plazo de pago",pdf_deadline_days:"{d} d\xEDas",pdf_date:"Fecha",pdf_scan_qr:"Escanear QR para pagar",pdf_footer:"Creado con xmrpay.link",qr_hint:"Clic en QR para guardar",footer:r,aria_currency:"Moneda",label_share_link:"Enlace compartible",btn_new_request:"Nueva solicitud de pago",toast_copied:"\xA1Copiado!",countdown_expired:"Plazo de pago vencido",countdown_remaining_days:"Plazo: {d} d\xEDas, {h} h",countdown_remaining_hours:"Plazo: {h}:{m} h",rates_offline:"Tasas no disponibles \u2014 solo monto en XMR",btn_prove_payment:"Demostrar pago",label_tx_hash:"Transaction ID (TX Hash)",placeholder_tx_hash:"64 caracteres hexadecimales...",label_tx_key:"Transaction Key (TX Key)",placeholder_tx_key:"64 caracteres hexadecimales...",btn_verify_proof:"Verificar pago",proof_verifying:"Verificando...",proof_verified:"Pago confirmado: {amount} XMR",proof_no_match:"Ning\xFAn output coincidente \u2014 TX Key o direcci\xF3n incorrecta",proof_tx_not_found:"Transacci\xF3n no encontrada",proof_error:"Error de verificaci\xF3n",status_paid:"Pagado"},pt:{subtitle:"Pedido de pagamento Monero em segundos",label_addr:"Endere\xE7o XMR",placeholder_addr:"8...",label_amount:"Valor",label_desc:"Descri\xE7\xE3o (opcional)",placeholder_desc:"ex. Fatura #42, trabalho freelance...",label_timer:"Prazo de pagamento (opcional)",days:"dias",placeholder_timer_custom:"Dias",btn_generate:"Criar pedido de pagamento",btn_open_wallet:"Abrir na wallet",btn_copy_addr:"Copiar endere\xE7o",btn_download_pdf:"Fatura PDF",pdf_title:"Pedido de pagamento",pdf_address:"Endere\xE7o XMR",pdf_amount:"Valor",pdf_desc:"Descri\xE7\xE3o",pdf_deadline:"Prazo de pagamento",pdf_deadline_days:"{d} dias",pdf_date:"Data",pdf_scan_qr:"Digitalizar QR para pagar",pdf_footer:"Criado com xmrpay.link",qr_hint:"Clique no QR para guardar",footer:r,aria_currency:"Moeda",label_share_link:"Link partilh\xE1vel",btn_new_request:"Novo pedido de pagamento",toast_copied:"Copiado!",countdown_expired:"Prazo de pagamento expirado",countdown_remaining_days:"Prazo: {d} dias, {h} h",countdown_remaining_hours:"Prazo: {h}:{m} h",rates_offline:"Taxas indispon\xEDveis \u2014 apenas valor em XMR",btn_prove_payment:"Comprovar pagamento",label_tx_hash:"Transaction ID (TX Hash)",placeholder_tx_hash:"64 caracteres hexadecimais...",label_tx_key:"Transaction Key (TX Key)",placeholder_tx_key:"64 caracteres hexadecimais...",btn_verify_proof:"Verificar pagamento",proof_verifying:"A verificar...",proof_verified:"Pagamento confirmado: {amount} XMR",proof_no_match:"Nenhum output correspondente \u2014 TX Key ou endere\xE7o incorreto",proof_tx_not_found:"Transa\xE7\xE3o n\xE3o encontrada",proof_error:"Erro de verifica\xE7\xE3o",status_paid:"Pago"},ru:{subtitle:"\u0417\u0430\u043F\u0440\u043E\u0441 \u043D\u0430 \u043E\u043F\u043B\u0430\u0442\u0443 Monero \u0437\u0430 \u0441\u0435\u043A\u0443\u043D\u0434\u044B",label_addr:"\u0410\u0434\u0440\u0435\u0441 XMR",placeholder_addr:"8...",label_amount:"\u0421\u0443\u043C\u043C\u0430",label_desc:"\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 (\u043D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E)",placeholder_desc:"\u043D\u0430\u043F\u0440. \u0421\u0447\u0451\u0442 #42, \u0444\u0440\u0438\u043B\u0430\u043D\u0441...",label_timer:"\u0421\u0440\u043E\u043A \u043E\u043F\u043B\u0430\u0442\u044B (\u043D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E)",days:"\u0434\u043D\u0435\u0439",placeholder_timer_custom:"\u0414\u043D\u0435\u0439",btn_generate:"\u0421\u043E\u0437\u0434\u0430\u0442\u044C \u0437\u0430\u043F\u0440\u043E\u0441 \u043D\u0430 \u043E\u043F\u043B\u0430\u0442\u0443",btn_open_wallet:"\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0432 \u043A\u043E\u0448\u0435\u043B\u044C\u043A\u0435",btn_copy_addr:"\u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0430\u0434\u0440\u0435\u0441",btn_download_pdf:"PDF \u0441\u0447\u0451\u0442",pdf_title:"\u0417\u0430\u043F\u0440\u043E\u0441 \u043D\u0430 \u043E\u043F\u043B\u0430\u0442\u0443",pdf_address:"\u0410\u0434\u0440\u0435\u0441 XMR",pdf_amount:"\u0421\u0443\u043C\u043C\u0430",pdf_desc:"\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435",pdf_deadline:"\u0421\u0440\u043E\u043A \u043E\u043F\u043B\u0430\u0442\u044B",pdf_deadline_days:"{d} \u0434\u043D\u0435\u0439",pdf_date:"\u0414\u0430\u0442\u0430",pdf_scan_qr:"\u0421\u043A\u0430\u043D\u0438\u0440\u0443\u0439\u0442\u0435 QR \u0434\u043B\u044F \u043E\u043F\u043B\u0430\u0442\u044B",pdf_footer:"\u0421\u043E\u0437\u0434\u0430\u043D\u043E \u0441 \u043F\u043E\u043C\u043E\u0449\u044C\u044E xmrpay.link",qr_hint:"\u041D\u0430\u0436\u043C\u0438\u0442\u0435 \u043D\u0430 QR \u0434\u043B\u044F \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u044F",footer:r,aria_currency:"\u0412\u0430\u043B\u044E\u0442\u0430",label_share_link:"\u0421\u0441\u044B\u043B\u043A\u0430 \u0434\u043B\u044F \u043E\u0442\u043F\u0440\u0430\u0432\u043A\u0438",btn_new_request:"\u041D\u043E\u0432\u044B\u0439 \u0437\u0430\u043F\u0440\u043E\u0441 \u043D\u0430 \u043E\u043F\u043B\u0430\u0442\u0443",toast_copied:"\u0421\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u043D\u043E!",countdown_expired:"\u0421\u0440\u043E\u043A \u043E\u043F\u043B\u0430\u0442\u044B \u0438\u0441\u0442\u0451\u043A",countdown_remaining_days:"\u0421\u0440\u043E\u043A: {d} \u0434\u043D\u0435\u0439, {h} \u0447",countdown_remaining_hours:"\u0421\u0440\u043E\u043A: {h}:{m} \u0447",rates_offline:"\u041A\u0443\u0440\u0441\u044B \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B \u2014 \u0442\u043E\u043B\u044C\u043A\u043E \u0441\u0443\u043C\u043C\u0430 \u0432 XMR",btn_prove_payment:"\u041F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044C \u043E\u043F\u043B\u0430\u0442\u0443",label_tx_hash:"Transaction ID (TX Hash)",placeholder_tx_hash:"64 \u0448\u0435\u0441\u0442\u043D\u0430\u0434\u0446\u0430\u0442\u0435\u0440\u0438\u0447\u043D\u044B\u0445 \u0441\u0438\u043C\u0432\u043E\u043B\u0430...",label_tx_key:"Transaction Key (TX Key)",placeholder_tx_key:"64 \u0448\u0435\u0441\u0442\u043D\u0430\u0434\u0446\u0430\u0442\u0435\u0440\u0438\u0447\u043D\u044B\u0445 \u0441\u0438\u043C\u0432\u043E\u043B\u0430...",btn_verify_proof:"\u041F\u0440\u043E\u0432\u0435\u0440\u0438\u0442\u044C \u043E\u043F\u043B\u0430\u0442\u0443",proof_verifying:"\u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0430...",proof_verified:"\u041E\u043F\u043B\u0430\u0442\u0430 \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u0430: {amount} XMR",proof_no_match:"\u0421\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044E\u0449\u0438\u0439 \u0432\u044B\u0445\u043E\u0434 \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D \u2014 \u043D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 TX Key \u0438\u043B\u0438 \u0430\u0434\u0440\u0435\u0441",proof_tx_not_found:"\u0422\u0440\u0430\u043D\u0437\u0430\u043A\u0446\u0438\u044F \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u0430",proof_error:"\u041E\u0448\u0438\u0431\u043A\u0430 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0438",status_paid:"\u041E\u043F\u043B\u0430\u0447\u0435\u043D\u043E"}},t="en";function p(){var e=null;try{e=localStorage.getItem("xmrpay_lang")}catch{}if(e&&d[e])return e;for(var a=navigator.languages||[navigator.language||"en"],n=0;n<a.length;n++){var o=a[n].substring(0,2).toLowerCase();if(d[o])return o}return"en"}function u(e){document.querySelectorAll("[data-i18n]").forEach(function(a){a.textContent=e[a.getAttribute("data-i18n")]||""}),document.querySelectorAll("[data-i18n-placeholder]").forEach(function(a){a.placeholder=e[a.getAttribute("data-i18n-placeholder")]||""}),document.querySelectorAll("[data-i18n-html]").forEach(function(a){a.innerHTML=e[a.getAttribute("data-i18n-html")]||""}),document.querySelectorAll("[data-i18n-aria]").forEach(function(a){a.setAttribute("aria-label",e[a.getAttribute("data-i18n-aria")]||"")})}function l(e){t=e;var a=d[e];document.documentElement.lang=e;try{localStorage.setItem("xmrpay_lang",e)}catch{}u(a),document.querySelectorAll(".lang-option").forEach(function(o){o.classList.toggle("active",o.getAttribute("data-lang")===e)});for(var n=0;n<_.length;n++)_[n](e)}var _=[];function f(e){_.push(e)}function m(){var e=document.getElementById("langDropdown");if(e){e.innerHTML="";for(var a=Object.keys(c),n=0;n<a.length;n++){var o=a[n],i=document.createElement("button");i.className="lang-option",i.setAttribute("data-lang",o),i.textContent=c[o].name,o===t&&i.classList.add("active"),i.addEventListener("click",(function(b){return function(){l(b),s()}})(o)),e.appendChild(i)}}}function s(){var e=document.getElementById("langPicker");e&&e.classList.remove("open")}function h(){var e=document.getElementById("langPicker"),a=document.getElementById("langToggle");!e||!a||(a.addEventListener("click",function(n){n.stopPropagation(),e.classList.toggle("open")}),document.addEventListener("click",function(n){e.contains(n.target)||s()}))}function g(e){return d[t]&&d[t][e]||e}function y(){return t}return t=p(),document.addEventListener("DOMContentLoaded",function(){m(),h(),l(t)}),{t:g,apply:l,getLang:y,onChange:f}})();
|