diff options
| author | Adam Soltys <[email protected]> | 2026-06-24 08:59:31 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2026-06-24 08:59:31 -0700 |
| commit | 17acf5ec80a0c0b0acc44a6a8373e154c68d4748 (patch) | |
| tree | a3fb56b85cc9cd21962ed64b084294096948d75b /src/locales/bn.json | |
| parent | f59cca61111f38963099190bdbbce9a76bc3fafe (diff) | |
| download | coinosv3-17acf5ec80a0c0b0acc44a6a8373e154c68d4748.tar.gz coinosv3-17acf5ec80a0c0b0acc44a6a8373e154c68d4748.zip | |
Split translations into per-language files, lazy-loaded
Only English is bundled in index.html now; the other 19 languages are
emitted as dist/locales/<code>.json and fetched on demand when a visitor
actually uses one (via auto-detect, the picker, or ?lang=xx). This drops
index.html from ~511KB to ~318KB; a non-English visitor fetches just
their one ~8-10KB locale, which the service worker then caches for
offline use. t() falls back to English until a locale resolves.
- i18n.js keeps only en + a loadLocale() fetcher; locale data moved to
src/locales/*.json.
- build.js emits dist/locales/; dev.js serves /locales/<code>.json.
- Deploy hook publishes the locales/ subdir.
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
Diffstat (limited to 'src/locales/bn.json')
| -rw-r--r-- | src/locales/bn.json | 145 |
1 files changed, 145 insertions, 0 deletions
diff --git a/src/locales/bn.json b/src/locales/bn.json new file mode 100644 index 0000000..55c3a3a --- /dev/null +++ b/src/locales/bn.json @@ -0,0 +1,145 @@ +{ + "passphrase": "পাসফ্রেজ", + "howItWorks": "এটি কীভাবে কাজ করে", + "installApp": "অ্যাপ ইনস্টল করুন", + "hiwBasicsTitle": "মূল বিষয়গুলো", + "hiwBasics1": "আপনি যখন একটি ওয়ালেট তৈরি করেন, পেজটি বারোটি এলোমেলো শব্দ তৈরি করে। সেই শব্দগুলোই আপনার ওয়ালেটের চাবি। যার কাছে এগুলো আছে সে-ই কয়েন খরচ করতে পারে, তাই এগুলো কাগজে লিখে রাখুন এবং এমন জায়গায় রাখুন যেখানে কেবল আপনিই পৌঁছাতে পারেন।", + "hiwBasics2": "আপনি যদি বারোটি শব্দ হারিয়ে ফেলেন এবং কোনো ব্যাকআপ না থাকে, তাহলে কয়েনগুলো চিরতরে হারিয়ে যাবে। কোনো রিসেট লিঙ্ক নেই এবং ফোন করার মতো কেউ নেই, তাই টাকা রাখার আগে এগুলো ব্যাকআপ করে নিন।", + "hiwBasics3": "কোনো সার্ভার নেই এবং কোনো অ্যাকাউন্ট নেই। পুরো অ্যাপটি একটি একক পেজ যা আপনার ব্রাউজারে চলে, তাই কেউ আপনার কয়েন ধরে রাখে না এবং কোনো সার্ভারে আপনার চাবি কখনও দেখা যায় না। আপনার ব্যালেন্স ও ইতিহাস দেখানোর জন্য এটি একটি পাবলিক ব্লক এক্সপ্লোরার থেকে পড়ে (ডিফল্টভাবে mempool.space, অথবা আপনি সেটিংসে নিজের নোড সেট করলে সেটি)।", + "hiwBasics4": "আপনি এই পেজটি সেভ করে কোনো ইন্টারনেট ছাড়াই সরাসরি আপনার কম্পিউটার থেকে খুলতে পারেন। এটি অফলাইনেও কাজ করতে থাকে।", + "hiwBasics5": "এটি প্রচলিত বিটকয়েন মানদণ্ড অনুসরণ করে (একটি ১২-শব্দের BIP39 ফ্রেজ এবং BIP84 নেটিভ SegWit চাবি), তাই এই সাইটটি কখনও হারিয়ে গেলেও আপনি একই ফ্রেজ Sparrow, Electrum, বা অন্য যেকোনো স্ট্যান্ডার্ড ওয়ালেটে পুনরুদ্ধার করতে পারবেন এবং আপনার কয়েন সেখানেই থাকবে।", + "hiwTribute": "Hal Wallet নামটি কিংবদন্তি সাইফারপাঙ্ক এবং বিটকয়েন পথিকৃৎ Hal Finney (১৯৫৬–২০১৪)-এর প্রতি একটি শ্রদ্ধাঞ্জলি।", + "signExport": "সাইন করুন এবং (অন্যত্র ব্রডকাস্ট করুন)", + "scanQr": "QR স্ক্যান করুন", + "scanHint": "ক্যামেরাটি একটি QR কোডের দিকে তাক করুন", + "scanNoCamera": "ক্যামেরা অ্যাক্সেস করা যায়নি।", + "scanNoDecoder": "QR স্ক্যানের জন্য প্রথমবার ব্যবহারের সময় একটি সংযোগ প্রয়োজন।", + "scanUnrecognized": "সেই QR থেকে কোনো বিটকয়েন ঠিকানা পড়া যায়নি।", + "broadcastScanned": "লেনদেন ব্রডকাস্ট করবেন?", + "broadcastNow": "ব্রডকাস্ট করুন", + "scanOffline": "আপনি অফলাইনে আছেন — এই লেনদেন ব্রডকাস্ট করতে পুনরায় সংযোগ করুন।", + "loadingHistory": "লেনদেন লোড হচ্ছে…", + "explorer": "ব্লক এক্সপ্লোরার", + "explorerDesc": "এই ওয়ালেট ব্যালেন্স ও ইতিহাসের জন্য যে সার্ভারে অনুসন্ধান করে। সর্বোচ্চ গোপনীয়তার জন্য এটি আপনার নিজের নোডে নির্দেশ করুন।", + "explorerUrl": "সার্ভার URL", + "explorerUrlHint": "Esplora / electrs REST বেস, যেমন https://mempool.space/api", + "deviceSync": "ডিভাইস সিঙ্ক", + "deviceSyncDesc": "একটি Nostr রিলেতে একটি এনক্রিপ্ট করা কপি সংরক্ষণ করে এই ওয়ালেটটি আপনার সব ডিভাইসে সিঙ্ক রাখুন — কেবল আপনার সিড আছে এমন একটি ডিভাইসই এটি পড়তে পারে। সবকিছু এই ডিভাইসে রাখতে এটি বন্ধ করে দিন।", + "syncAcross": "ডিভাইসজুড়ে সিঙ্ক করুন", + "syncOn": "চালু", + "syncOff": "বন্ধ", + "relaysLabel": "রিলে", + "relaysHint": "প্রতি লাইনে একটি wss:// URL।", + "home": "হোম", + "logout": "লগ আউট", + "createNew": "নতুন তৈরি", + "importExisting": "বিদ্যমান ইম্পোর্ট", + "genIntro": "নতুন ১২-শব্দের সিড ফ্রেজ তৈরি করুন। লিখে রাখুন। এটিই এই ওয়ালেট পুনরুদ্ধারের একমাত্র উপায়।", + "generateSeed": "সিড ফ্রেজ তৈরি করুন", + "writeDownWarn": "⚠ এই ১২টি শব্দ ক্রম অনুযায়ী কাগজে লিখুন। যার কাছে এগুলো থাকবে সে আপনার কয়েন খরচ করতে পারবে।", + "copyPhrase": "ফ্রেজ কপি করুন", + "regenerate": "আবার তৈরি", + "verifyBackup": "ব্যাকআপ যাচাই", + "skipVerification": "যাচাই এড়িয়ে যান", + "confirmBackupIntro": "অনুরোধ করা শব্দগুলো লিখে আপনার ব্যাকআপ নিশ্চিত করুন।", + "wordN": "শব্দ #{n}", + "reenterPassphrase": "পাসফ্রেজ আবার লিখুন", + "back": "← ফিরুন", + "openWallet": "ওয়ালেট খুলুন", + "wordsMismatch": "এই শব্দগুলো আপনার ফ্রেজের সাথে মেলে না। ব্যাকআপ দেখুন।", + "passphraseMismatch": "এই পাসফ্রেজ আপনার দেওয়াটির সাথে মেলে না।", + "seedPhrase": "সিড ফ্রেজ", + "seedPlaceholder": "শব্দগুলো স্পেস দিয়ে আলাদা করে লিখুন", + "optionalPassphrase": "ঐচ্ছিক পাসফ্রেজ", + "leaveBlank": "ব্যবহার না হলে ফাঁকা রাখুন", + "show": "দেখান", + "hide": "লুকান", + "invalidSeed": "ভুল সিড ফ্রেজ — বানান ও ক্রম দেখুন।", + "keysNote": "কী কখনো আপনার ব্রাউজার ছাড়ে না। সম্পূর্ণ অফলাইনে চলে। এই পেজ সেভ করে স্থানীয়ভাবে খুলুন।", + "balance": "ব্যালেন্স", + "pending": "অপেক্ষমাণ", + "tabReceive": "গ্রহণ", + "tabSend": "পাঠান", + "tabHistory": "ইতিহাস", + "tabSettings": "সেটিংস", + "copyAddress": "ঠিকানা কপি", + "paymentReceived": "পেমেন্ট পাওয়া গেছে!", + "tapToProceed": "এগিয়ে যেতে যেকোনো জায়গায় ট্যাপ করুন", + "recipient": "প্রাপক", + "recipients": "প্রাপকগণ", + "max": "সর্বোচ্চ", + "feeRate": "ফি", + "feeEconomy": "সাশ্রয়ী", + "feeNormal": "সাধারণ", + "feePriority": "অগ্রাধিকার", + "feeCustom": "কাস্টম", + "selectedRate": "নির্বাচিত ফি: {n} sat/vB", + "coinSelection": "কয়েন নির্বাচন", + "automatic": "স্বয়ংক্রিয়", + "manual": "ম্যানুয়াল", + "noCoins": "কোনো কয়েন নেই।", + "nSelected": "{n} নির্বাচিত", + "addRecipient": "+ প্রাপক যোগ করুন", + "reviewTx": "লেনদেন পর্যালোচনা", + "remove": "সরান", + "enterRecipientAddr": "প্রাপকের ঠিকানা লিখুন।", + "enterAddrForN": "প্রাপক {n}-এর ঠিকানা লিখুন।", + "enterValidAmtForN": "প্রাপক {n}-এর জন্য সঠিক পরিমাণ লিখুন।", + "selectCoin": "খরচের জন্য অন্তত একটি কয়েন নির্বাচন করুন।", + "networkFee": "নেটওয়ার্ক ফি", + "offlineSignNote": "অফলাইন: এখন সই করুন, তারপর অনলাইন ডিভাইস থেকে লেনদেন সম্প্রচার করুন।", + "signBroadcast": "সই ও সম্প্রচার", + "signTx": "লেনদেন সই", + "broadcastFailed": "সম্প্রচার ব্যর্থ: {msg}", + "signingFailed": "সই ব্যর্থ: {msg}", + "done": "সম্পন্ন", + "txSignedNote": "✓ লেনদেন সই হয়েছে। নিচের কোড অনলাইন ডিভাইস থেকে সম্প্রচার করুন (যেমন mempool.space → Broadcast)।", + "transactionId": "লেনদেন ID", + "signedTxRaw": "সইকৃত লেনদেন (কোড)", + "copyHex": "কোড কপি", + "downloadLabel": "ডাউনলোড", + "showQrAirgap": "QR দেখান (অফলাইন স্থানান্তরের জন্য)", + "txBroadcast": "✓ লেনদেন সম্প্রচারিত!", + "copyTxid": "লেনদেন ID কপি", + "viewOnMempool": "mempool.space-এ দেখুন ↗", + "noTxYet": "এখনো কোনো লেনদেন নেই।", + "received": "গৃহীত", + "sent": "প্রেরিত", + "pendingTag": "⏳ অপেক্ষমাণ", + "awaitingConfirmation": "নিশ্চিতকরণের অপেক্ষায়", + "feeShort": "ফি {x}", + "historyOffline": "অফলাইনে ইতিহাস পাওয়া যায় না।", + "status": "অবস্থা", + "confirmed": "নিশ্চিত", + "confirmedTag": "নিশ্চিত", + "pendingInMempool": "অপেক্ষমাণ (mempool-এ)", + "block": "ব্লক", + "date": "তারিখ", + "copyId": "ID কপি", + "backToHistory": "← ইতিহাসে ফিরুন", + "recoveryPhrase": "রিকভারি ফ্রেজ", + "recoveryWarn": "⚠ যে কেউ এই শব্দগুলো দেখলে আপনার অর্থ চুরি করতে পারে। দেখানোর আগে নিশ্চিত হোন কেউ দেখছে না।", + "bip39Passphrase": "পাসফ্রেজ", + "copyPassphrase": "পাসফ্রেজ কপি", + "revealRecovery": "রিকভারি ফ্রেজ দেখান", + "offlineTransfer": "অফলাইন স্থানান্তর", + "offlineTransferDesc": "অনলাইন ডিভাইসে আপনার কয়েন এক্সপোর্ট করুন, তারপর অফলাইন ডিভাইসে (এই ওয়ালেট ও সিড সহ) ফাইল ইম্পোর্ট করে ইন্টারনেট ছাড়াই সই করুন।", + "exportSnapshot": "⤓ স্ন্যাপশট এক্সপোর্ট", + "importSnapshot": "স্ন্যাপশট ইম্পোর্ট…", + "rescan": "পুনরায় স্ক্যান", + "rescanDesc": "আপনার বর্তমান ঠিকানা স্বয়ংক্রিয়ভাবে আপডেট হয়। শুধু তখনই পুনরায় স্ক্যান করুন যখন পেমেন্ট কোনো পুরোনো (পুনঃব্যবহৃত) ঠিকানায় এসেছে এবং দেখা যাচ্ছে না।", + "rescanWallet": "ওয়ালেট পুনরায় স্ক্যান", + "scanning": "স্ক্যান হচ্ছে…", + "language": "ভাষা", + "offlineBanner": "নেটওয়ার্কে পৌঁছানো যাচ্ছে না — অফলাইনে চলছে। কয়েন লোড করতে সেটিংস থেকে স্ন্যাপশট ইম্পোর্ট করুন।", + "retry": "আবার চেষ্টা", + "copied": "কপি হয়েছে", + "snapshotExported": "স্ন্যাপশট এক্সপোর্ট হয়েছে", + "importedNCoins": "{n}টি কয়েন ইম্পোর্ট হয়েছে", + "unmatchedSuffix": " · {n}টি ঠিকানা এই ওয়ালেটে নেই", + "importFailed": "ইম্পোর্ট ব্যর্থ: {msg}", + "copy": "কপি", + "switchUnit": "BTC / sats পাল্টান", + "footerMadeBy": "তৈরি করেছেন", + "footerSourceOn": "সোর্স কোড" +}
\ No newline at end of file |
