Compare commits
6 Commits
a5515a65f6
...
e2b6684dcb
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e2b6684dcb | ||
|
|
6149b52b42 | ||
|
|
e7674475cf | ||
|
|
3d917d386f | ||
|
|
e1d9fcbf28 | ||
|
|
365871c077 |
@@ -97,7 +97,7 @@ The public instance at [xmrpay.link](https://xmrpay.link) exists as a demo and f
|
||||
- **Payment verification** — sender provides TX Hash + TX Key, cryptographic verification in browser
|
||||
- **Fiat conversion** — EUR/USD/CHF/GBP/JPY/RUB/BRL via CoinGecko, auto-detected from locale
|
||||
- **Short URLs** — optional, with explicit trust trade-off warning
|
||||
- **i18n** — English, German, French, Italian, Spanish, Portuguese, Russian
|
||||
- **i18n** — English, German, French, Italian, Spanish, Portuguese, Russian, Turkish
|
||||
- **Offline-capable** — Service Worker for offline use
|
||||
- **Privacy** — zero cookies, no analytics, no external scripts, self-hosted fonts
|
||||
|
||||
|
||||
56
i18n.js
56
i18n.js
@@ -8,7 +8,8 @@ var I18n = (function () {
|
||||
it: { name: 'Italiano' },
|
||||
es: { name: 'Español' },
|
||||
pt: { name: 'Português' },
|
||||
ru: { name: 'Русский' }
|
||||
ru: { name: 'Русский' },
|
||||
tr: { name: 'Türkçe' }
|
||||
};
|
||||
|
||||
var VERSION = '1.1.1';
|
||||
@@ -386,6 +387,59 @@ var I18n = (function () {
|
||||
status_pending: 'Ожидание',
|
||||
proof_confirmed_pending: 'Выход найден: {amount} XMR — {n}/10 подтверждений. Авт. обновление…',
|
||||
toast_integrity_warning: 'Предупреждение: обнаружено несоответствие подписи'
|
||||
},
|
||||
tr: {
|
||||
subtitle: 'Saniyeler içerisinde Monero ödeme talebi',
|
||||
label_addr: 'XMR Adresi',
|
||||
placeholder_addr: '8...',
|
||||
label_amount: 'Tutar',
|
||||
label_desc: 'Açıklama (isteğe bağlı)',
|
||||
placeholder_desc: 'örn. 42 numaralı Fatura, freelance iş için...',
|
||||
label_timer: 'Ödeme için son tarih (isteğe bağlı)',
|
||||
days: 'gün',
|
||||
placeholder_timer_custom: 'Gün',
|
||||
btn_generate: 'Ödeme talebi oluştur',
|
||||
btn_open_wallet: 'Cüzdanda aç',
|
||||
btn_copy_uri: 'URI kopyala',
|
||||
btn_copy_addr: 'Adresi kopyala',
|
||||
btn_download_pdf: 'Fatura (PDF)',
|
||||
pdf_title: 'Ödeme Talebi',
|
||||
pdf_address: 'XMR Adresi',
|
||||
pdf_amount: 'Tutar',
|
||||
pdf_desc: 'Açıklama',
|
||||
pdf_deadline: 'Ödeme için son tarih',
|
||||
pdf_deadline_days: '{d} gün',
|
||||
pdf_date: 'Tarih',
|
||||
pdf_scan_qr: 'Ödeme için QR kodu tara',
|
||||
pdf_footer: 'xmrpay ile oluşturulmuştur',
|
||||
qr_hint: 'QR kodu kaydetmek için tıkla',
|
||||
self_host_banner: 'Bu bir herkese açık demodur. Gerçek ödemeler için <a href="https://github.com/schmidt1024/xmrpay#self-host-in-60-seconds">kendi sunucunuzu kurun</a> — sadece 60 saniye sürer.',
|
||||
footer: footer,
|
||||
aria_currency: 'Para Birimi',
|
||||
label_share_link: 'Paylaşılabilir bağlantı',
|
||||
shortlink_toggle_label: 'Kısaltılmış bağlantı kullan (sunucuya güven gerektirir)',
|
||||
shortlink_toggle_hint: 'Olası dezavantaj: kısaltılmış bağlantılar kullanışlıdır, fakat ilgili sunucu güvende değil ise ilk erişimde fatura verileri değiştirilebilir.',
|
||||
btn_new_request: 'Yeni ödeme talebi',
|
||||
toast_copied: 'Kopyalandı!',
|
||||
countdown_expired: 'Ödeme için son tarih süresi doldu',
|
||||
countdown_remaining_days: 'Son Tarih: {d} gün, {h} saat',
|
||||
countdown_remaining_hours: 'Son Tarih: {h}:{m} saat',
|
||||
rates_offline: 'Kurlar mevcut değil — Yalnızca XMR tutarı',
|
||||
btn_prove_payment: 'Ödemeyi doğrula',
|
||||
label_tx_hash: 'İşlem kimliği (TX Hash)',
|
||||
placeholder_tx_hash: '64 hex karakteri...',
|
||||
label_tx_key: 'İşlem Anahtarı (TX Key)',
|
||||
placeholder_tx_key: '64 hex karakteri...',
|
||||
btn_verify_proof: 'Ödemeyi onayla',
|
||||
proof_verifying: 'Onaylanıyor...',
|
||||
proof_verified: 'Ödeme onaylandı: {amount} XMR',
|
||||
proof_no_match: 'Çıktılar eşleşmiyor — TX anahtarı ya da adresi eşleşmiyor',
|
||||
proof_tx_not_found: 'İşlem bulunamadı',
|
||||
proof_error: 'Onaylama hatası',
|
||||
status_paid: 'Ödeme yapıldı',
|
||||
status_pending: 'Beklemede',
|
||||
proof_confirmed_pending: 'Bulunan çıktı: {amount} XMR — {n}/10 tamamlanan. Otomatik yenileniyor…',
|
||||
toast_integrity_warning: 'Uyarı: eşleşmeyen imza tespit edildi'
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
2
i18n.min.js
vendored
2
i18n.min.js
vendored
File diff suppressed because one or more lines are too long
@@ -137,7 +137,7 @@
|
||||
<div class="toast" id="toast"></div>
|
||||
|
||||
<script src="lib/qrcode.min.js?v=20260326-3" integrity="sha384-3zSEDfvllQohrq0PHL1fOXJuC/jSOO34H46t6UQfobFOmxE5BpjjaIJY5F2/bMnU" crossorigin="anonymous" defer></script>
|
||||
<script src="i18n.min.js?v=20260326-3" integrity="sha384-FfBaeFwBMGnIIOFgRYMxAcFLdp1MMUAc4V8YIg+jLInG8yWQdpMA05eicLc+QFaC" crossorigin="anonymous" defer></script>
|
||||
<script src="i18n.min.js?v=20260326-3" integrity="sha384-GS62r/FP1LcB9Ec+ow+45oUWdQsjZKKwtPT6D/YXBfgGjUCjtpuxeLE3GMtbItgx" crossorigin="anonymous" defer></script>
|
||||
<script src="app.min.js?v=20260326-3" integrity="sha384-JORIDcn40te850GEco3PPlCjpMXhAbHLSVu8t5BSX4g7XaQyUsGK3IaXLC+1AUYk" crossorigin="anonymous" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
23
privacy.html
23
privacy.html
@@ -192,6 +192,25 @@
|
||||
<li>Dostupnost ne garantiruetsya; funktsii mogut izmenyatsya v lyuboe vremya.</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section class="legal-lang" data-lang="tr">
|
||||
<h2>Türkçe</h2>
|
||||
<h3>Mahremiyet Politikası</h3>
|
||||
<p>xmrpay.link veri toplama işlemini asgari seviyeye indirecek şekilde tasarlanmıştır. Hesap oluşturmaya gerek yoktur.</p>
|
||||
<ul>
|
||||
<li><strong>Hız sınırlaması:</strong> kötüye kullanım karşıtı koruma mekanizması, IP'lerden gelen istekleri kısa süreli dosyalarda tutar. İlgili IP adresleri ham hali ile değil, hash'lenmiş olarak barındırılır.</li>
|
||||
<li><strong>Kısaltılmış bağlantılar:</strong> fatura hash verileri, oluşturulan kısa URL'ler için saklanır.</li>
|
||||
<li><strong>Ödeme onayı:</strong> eğer kullanıldılar ise; tx hash değeri, tutar, onaylamalar ve zaman mührü saklanır. Onay veritabanında hiçbir Monero adresi saklanmaz.</li>
|
||||
<li><strong>Hiçbir şey takip edilmez:</strong> istatistik ve reklam olmadığı gibi herhangi bir profilleme eylemi barındırmaz.</li>
|
||||
</ul>
|
||||
<h3>Kullanım Koşulları</h3>
|
||||
<ul>
|
||||
<li>Tüm servis "olduğu gibi" herhangi bir garanti olmadan sunulmaktadır.</li>
|
||||
<li>Tâbi olduğunuz yasalara uyum hususunda tüm sorumluluk size aittir.</li>
|
||||
<li>Servisin herhangi bir nedenle istismarı, yasadışı alanda kullanımı ve/veya servise yönelik saldırılar yasaklı eylem statüsündedir.</li>
|
||||
<li>İlgili kullanılabilirlik garanti edilmemiştir, tüm özellikler herhangi bir zaman aralığında değişebilir.</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<p style="margin-top:1rem;color:var(--text-muted);font-size:0.82rem;">Last updated: 2026-03-26</p>
|
||||
</div>
|
||||
@@ -212,10 +231,10 @@
|
||||
<div class="lang-dropdown" id="langDropdown"></div>
|
||||
</div>
|
||||
|
||||
<script src="i18n.min.js?v=20260326-3" integrity="sha384-FfBaeFwBMGnIIOFgRYMxAcFLdp1MMUAc4V8YIg+jLInG8yWQdpMA05eicLc+QFaC" crossorigin="anonymous" defer></script>
|
||||
<script src="i18n.min.js?v=20260326-3" integrity="sha384-GS62r/FP1LcB9Ec+ow+45oUWdQsjZKKwtPT6D/YXBfgGjUCjtpuxeLE3GMtbItgx" crossorigin="anonymous" defer></script>
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
var supported = ['en', 'de', 'fr', 'it', 'es', 'pt', 'ru'];
|
||||
var supported = ['en', 'de', 'fr', 'it', 'es', 'pt', 'ru', 'tr'];
|
||||
var sections = document.querySelectorAll('.legal-lang');
|
||||
|
||||
function applyLang(lang) {
|
||||
|
||||
Reference in New Issue
Block a user