diff --git a/frontend/app/generate.js b/frontend/app/generate.js
index 3aae787187..33bbdae0c0 100644
--- a/frontend/app/generate.js
+++ b/frontend/app/generate.js
@@ -150,6 +150,7 @@ const languages = [
{ lang: "ru", code: "ru" },
{ lang: "vi", code: "vi" },
{ lang: "iw", code: "iw" },
+ { lang: "hi", code: "hi" },
];
languages.forEach(async ({ lang, code }) => {
diff --git a/frontend/app/src/i18n/hi.json b/frontend/app/src/i18n/hi.json
new file mode 100644
index 0000000000..d77a0f7cba
--- /dev/null
+++ b/frontend/app/src/i18n/hi.json
@@ -0,0 +1,1206 @@
+{
+ "openChat": "ओपनचैट",
+ "home": "घर",
+ "homepage": "होम पेज",
+ "tellMeMore": "अधिक जानकारी",
+ "inheritSystem": "इनहेरिट सिस्टम थीम",
+ "enterToSend": "एंटर कुंजी संदेश भेजती है",
+ "doubleClickReply": "उत्तर देने/संपादित करने के लिए संदेश पर डबल क्लिक करें",
+ "doubleTapReply": "उत्तर देने/संपादित करने के लिए संदेश पर दो बार टैप करें",
+ "lowBandwidth": "कम बैंडविड्थ",
+ "renderPreviews": "लिंक पूर्वावलोकन स्वतः प्रस्तुत करें",
+ "loadImage": "छवि दिखाएँ",
+ "loadMeme": "मेम दिखाओ",
+ "loadGif": "GIF दिखाएँ",
+ "showTweet": "ट्वीट दिखाओ",
+ "showVideo": "वीडियो दिखाओ",
+ "notificationsEnabled": "सूचनाएं सक्षम की गईं",
+ "usernameRules": "केवल अल्फ़ान्यूमेरिक्स और अंडरस्कोर",
+ "displayNameRules": "वैकल्पिक",
+ "communityDisplayNameRules": "केवल चयनित समुदाय के भीतर",
+ "enterBio": "आपके बारे में हमे कुछ बताईए",
+ "username": "उपयोगकर्ता नाम",
+ "displayName": "प्रदर्शित होने वाला नाम",
+ "bio": "उपयोगकर्ता जीवनी",
+ "unableToRefreshAccountBalance": "क्षमा करें, हम आपके {token} खाते की शेष राशि को ताज़ा करने में असमर्थ रहे",
+ "congratulations": "बधाई हो!",
+ "enjoyYourStorage": "अब आप तस्वीरें और वीडियो पोस्ट करने का आनंद ले सकते हैं!",
+ "pleaseDeposit": "यदि आप अपने स्टोरेज को {amount} में अपग्रेड करने के लिए उपरोक्त खाते से {limit} ICP का भुगतान करने में प्रसन्न हैं तो कृपया \"पुष्टि करें\" बटन दबाएँ।",
+ "insufficientFunds": "कृपया सुनिश्चित करें कि उपरोक्त खाते में अनुरोधित भंडारण को कवर करने के लिए कम से कम {amount} ICP का संतुलन है, फिर \"ताज़ा करें\" बटन दबाएं।",
+ "noChangeToStorage": "ऊपर दिए गए स्लाइडर का उपयोग करके एक नई भंडारण सीमा चुनें ताकि हम आपके लिए अपग्रेड मूल्य की गणना कर सकें।",
+ "storage": "भंडारण",
+ "currentLimit": "आपकी वर्तमान संग्रहण सीमा {limit}GB है और आपके खाते की शेष राशि {balance} ICP है।",
+ "newLimit": "{limit} / 1GB",
+ "chooseAStorageLevel": "अधिकतम 1 जीबी तक का स्टोरेज स्तर चुनें",
+ "currentUsage": "वर्तमान भंडारण उपयोग",
+ "percLeft": "{perc}% शेष",
+ "storageUsed": "{used}GB का उपयोग {limit}GB में से किया जाता है",
+ "insufficientStorage": "अपर्याप्त संग्रहण",
+ "chooseUpgrade": "आप एक एसएमएस सत्यापन कोड प्राप्त करके 100 एमबी मुफ्त स्टोरेज का दावा कर सकते हैं, या आप आईसीपी ट्रांसफर के माध्यम से 1 जीबी तक स्टोरेज के लिए भुगतान कर सकते हैं।",
+ "chooseTransfer": "आप ICP ट्रांसफर के माध्यम से 1GB तक स्टोरेज के लिए भुगतान कर सकते हैं।",
+ "upgradeStorage": "भंडारण को अपग्रेड करें",
+ "upgradeByTransfer": "आईसीपी",
+ "maxStorage": "आप अधिकतम 1GB स्टोरेज तक अपग्रेड कर सकते हैं",
+ "myAccount": "मेरा खाता",
+ "supportsMarkdown": "मार्कडाउन का समर्थन करता है",
+ "preferredLanguage": "पसंदीदा भाषा",
+ "communityTheme": "सामुदायिक थीम",
+ "selectCommunityTheme": "एक सामुदायिक थीम चुनें",
+ "useAtOwnRisk": "अपने जोखिम पर उपयोग करें",
+ "fontSize": "फ़ॉन्ट आकार",
+ "dark": "अँधेरा",
+ "light": "रोशनी",
+ "original": "मूल",
+ "appearance": "उपस्थिति",
+ "chats": "चैट",
+ "account": "खाता",
+ "whatsHot": "नवीनतम क्या है?",
+ "exploreGroups": "समूहों का अन्वेषण करें",
+ "notInterested": "दिलचस्पी नहीं है",
+ "discoverMoreGroups": "अधिक समूह खोजें",
+ "noGroupsFound": "कोई समूह नहीं मिला 😭",
+ "checkBackLater": "कृपया बाद में पुन: प्रयास करें।",
+ "refresh": "ताज़ा करना",
+ "goHome": "घर",
+ "join": "जोड़ना",
+ "unableToLoadEmojiPicker": "क्षमा मांगना! हम इमोजी पिकर लोड नहीं कर सके. कृपया पुनः लोड करें और पुनः प्रयास करें।",
+ "unableToLoadSMSUpgrade": "आपके स्टोरेज को अपग्रेड करने से पहले हमें OpenChat को रीफ्रेश करना होगा। कृपया पुनः लोड करें और पुनः प्रयास करें।",
+ "leave": "छुट्टी",
+ "preview": "पूर्व दर्शन",
+ "howToBuyToken": "मुझे {token} खरीदने में मदद चाहिए",
+ "copyGroupUrl": "समूह यूआरएल कॉपी करें",
+ "copyToClipboard": "क्लिपबोर्ड पर कॉपी करें",
+ "copiedToClipboard": "खाता पता क्लिपबोर्ड पर कॉपी किया गया!",
+ "urlCopiedToClipboard": "समूह यूआरएल क्लिपबोर्ड पर कॉपी किया गया!",
+ "failedToCopyToClipboard": "क्लिपबोर्ड पर कॉपी करने में असमर्थ. {account}",
+ "failedToCopyUrlToClipboard": "यूआरएल ({url}) को क्लिपबोर्ड पर कॉपी करने में असमर्थ",
+ "publicGroups": "सार्वजनिक समूह",
+ "yourChats": "आपकी चैट",
+ "users": "उपयोगकर्ताओं",
+ "lastOnline": "अंतिम बार ऑनलाइन {duration} पहले",
+ "unresolvedReply": "संदेश सामग्री अनुपलब्ध है",
+ "placeholderContent": "कृपया प्रतीक्षा करें, आपका संदेश शीघ्र ही लोड हो जाएगा",
+ "durationMins": "{duration} मिनट",
+ "durationHours": "{duration} घंटे",
+ "removeChat": "चैट हटाएँ",
+ "profile": {
+ "label": "प्रोफ़ाइल",
+ "title": "पार्श्वचित्र समायोजन",
+ "chat": "बात करना",
+ "settings": "समायोजन",
+ "communities": "समुदाय",
+ "global": "वैश्विक",
+ "selectCommunity": "एक समुदाय चुनें",
+ "block": "अवरोध पैदा करना",
+ "unblock": "अनब्लॉक"
+ },
+ "durationDays": "{duration} दिन",
+ "oneHour": "1 घंटा",
+ "oneDay": "1 दिन",
+ "onlineNow": "अब ऑनलाइन हैं",
+ "messages": "संदेशों",
+ "searchPlaceholder": "उपयोगकर्ताओं और समूहों को खोजें...",
+ "searchGroupsPlaceholder": "समूह खोजें...",
+ "searchUsersPlaceholder": "उपयोगकर्ताओं को खोजें...",
+ "searchChannelsPlaceholder": "चैनल खोजें...",
+ "searchFavouritesPlaceholder": "अपना पसंदीदा खोजें...",
+ "groupDetails": "{level} विवरण",
+ "theInternetComputer": "इंटरनेट कंप्यूटर",
+ "unexpectedError": "अप्रत्याशित त्रुटि",
+ "errorLoadingChats": "आपकी चैट लोड करने में असमर्थ",
+ "errorBlurb": "क्षमा करें, हमें एक अप्रत्याशित त्रुटि का सामना करना पड़ा। कृपया OpenChat को पुनः लोड करने का प्रयास करें।",
+ "sessionExpired": "सत्र समाप्त हुआ",
+ "sessionExpiredBlurb": "कृपया पुनः साइन इन करें",
+ "performingUpgrade": "अपग्रेड करना",
+ "pleaseWait": "कृपया कुछ सेकंड प्रतीक्षा करें",
+ "change": "परिवर्तन",
+ "noChatSelected": "वर्तमान में कोई चैट चयनित नहीं है",
+ "selectAChat": "किसी मित्र को खोजें, एक नया समूह बनाएं या कोई चैट चुनें।",
+ "selectAGroupChat": "सूची से एक समूह चुनें या शामिल होने के लिए एक वैश्विक समूह खोजें।",
+ "noChannelSelected": "वर्तमान में कोई चैनल चयनित नहीं है",
+ "noUserSelected": "वर्तमान में कोई उपयोगकर्ता चयनित नहीं है",
+ "selectAChannel": "सूची से एक चैनल चुनें या इस समुदाय में और चैनल खोजें।",
+ "selectAUser": "सूची से किसी उपयोगकर्ता का चयन करें या चैट करने के लिए किसी उपयोगकर्ता को खोजें।",
+ "selectAFavourite": "आप अपने पसंदीदा में सीधी चैट, समूह चैट या सामुदायिक चैनल जोड़ सकते हैं और आप उन्हें यहां देखेंगे।",
+ "hotGroups": "गर्म समूह",
+ "selectAGroup": "पूर्वावलोकन करने या शामिल होने के लिए एक समूह का चयन करें।",
+ "newChat": "नई चैट",
+ "newGroup": "नया समूह",
+ "createNewGroup": "एक नया समूह बनाएं",
+ "changeTheme": "विषय को परिवर्तित करें",
+ "avatarUpdated": "अवतार सफलतापूर्वक अपडेट किया गया",
+ "avatarUpdateFailed": "अवतार अद्यतन विफल रहा",
+ "submitNewGroup": "समूह बनाना",
+ "chooseMembers": "सदस्य चुनें",
+ "confirmMembers": "सदस्यों की पुष्टि करें",
+ "groupCreationFailed": "क्षमा करें हम आपका समूह बनाने में असमर्थ रहे",
+ "groupUpdateFailed": "क्षमा करें हम आपके समूह को अपडेट करने में असमर्थ रहे",
+ "groupCreatedBy": "{username} ने {level} बनाया",
+ "groupChangedBy": "{changedBy} ने {changed} बदल दिया",
+ "groupName": "{level} नाम",
+ "groupDesc": "{level} विवरण",
+ "groupAvatar": "{level} अवतार",
+ "deleteGroup": "हटाएं {level}",
+ "deleteGroupSuccess": "{level} सफलतापूर्वक हटा दिया गया",
+ "deleteGroupFailure": "{level} को हटाने में असमर्थ",
+ "irreversible": "क्या आप निश्चित रूप से इस {level} को हटाना चाहते हैं? इसे असंपादित नहीं किया जा सकता है!",
+ "typeGroupName": "कृपया पुष्टि करने के लिए **{name}** टाइप करें।",
+ "confirmLeaveGroup": "क्या आप सचमुच इसे {level} छोड़ना चाहते हैं?",
+ "directChatCreatedAt": "चैट शुरू हुई",
+ "skip": "छोडना",
+ "userJoined": "{username} {level} में शामिल हो गया",
+ "addedBy": "{changedBy} ने {changed} को {level} में जोड़ा",
+ "removedBy": "{changedBy} ने {changed} को {level} से हटा दिया",
+ "invitedBy": "{changedBy} ने {changed} को {level} में आमंत्रित किया",
+ "roleChanged": "{changedBy} ने {changed} की भूमिका को {oldRole} से बदलकर {newRole} कर दिया",
+ "yourRoleChanged": "{changedBy} ने आपकी भूमिका को {oldRole} से बदलकर {newRole} कर दिया",
+ "permissionsChangedBy": "{changedBy} ने {level} अनुमतियाँ बदल दीं",
+ "blockedBy": "{changedBy} अवरोधित किया गया {changed}",
+ "unblockedBy": "{changedBy} अनब्लॉक किया गया {changed}",
+ "historyVisible": "दृश्यमान चैट इतिहास",
+ "historyOnInfo": "नए जुड़ने वालों को पूरी चैट हिस्ट्री दिखाई देगी. अब सावधान! 🤐",
+ "historyOffInfo": "नए जुड़ने वालों को उनके शामिल होने के बाद ही आने वाले संदेश दिखाई देंगे। 🤫",
+ "privateGroupInfo": "यह {level} उन लोगों तक सीमित होगा जिन्हें आप आमंत्रित करते हैं।",
+ "publicGroupUnique": "सार्वजनिक {level} नाम अद्वितीय होने चाहिए.",
+ "publicGroupInfo": "कोई भी इस {level} को खोज और इसमें शामिल हो सकेगा।",
+ "publicChannelInfo": "समुदाय के सदस्यों को सार्वजनिक चैनलों में स्वचालित रूप से जोड़ा जाता है (वे बाद में छोड़ सकते हैं)।",
+ "newGroupName": "{level} नाम दर्ज करें",
+ "newGroupDesc": "यह {level} किस बारे में है?",
+ "groupDescTooLong": "{level} विवरण बहुत लंबा है",
+ "groupNameTooLong": "{level} नाम बहुत लंबा है",
+ "maxGroupsCreated": "आपने पहले ही {level} की अधिकतम संख्या बना ली है",
+ "chooseReaction": "एक प्रतिक्रिया चुनें",
+ "groupNameInvalid": "{level} नाम अमान्य है",
+ "groupAlreadyExists": "उस नाम का एक सार्वजनिक {level} पहले से मौजूद है",
+ "channelAlreadyExists": "इस नाम का एक चैनल पहले से मौजूद है",
+ "avatarTooBig": "चयनित अवतार बहुत बड़ा है",
+ "userSearchFailed": "उपयोगकर्ताओं को खोजने में त्रुटि हुई",
+ "enableNotifications": "क्या आप सूचनाएं सक्षम करना चाहेंगे?",
+ "enableNotificationsMenu": "सूचनाएं सक्षम करें",
+ "disableNotificationsMenu": "नोटीफिकेशन निष्क्रिय किया गया",
+ "notificationsDisabled": "सूचनाएं अक्षम की गईं",
+ "unmuteNotifications": "सूचनाएं अनम्यूट करें",
+ "muteNotifications": "सूचनाएं म्यूट करें",
+ "toggleMuteNotificationsFailed": "सूचनाएं {operation} नहीं हो सकीं",
+ "toggleMuteNotificationsSucceeded": "सूचनाएं सफलतापूर्वक {operation}",
+ "filterMembers": "सदस्यों को फ़िल्टर करें",
+ "markAllRead": "सभी को पढ़ा हुआ मार्क करें",
+ "publicGroupWithN": "{level} सदस्यों के साथ सार्वजनिक {number}",
+ "privateGroupWithN": "{level} सदस्यों के साथ निजी {number}",
+ "thisIsPublicGroupWithN": "यह {level} सदस्यों के साथ एक सार्वजनिक {number} है",
+ "thisIsPrivateGroupWithN": "यह {level} सदस्यों वाला एक निजी {number} है",
+ "groupWithN": "{number} सदस्य",
+ "muted": "मौन कर दिया गया",
+ "unmuted": "अनम्यूट किया गया",
+ "yesPlease": "जी कहिये",
+ "noThanks": "जी नहीं, धन्यवाद",
+ "new": "नया",
+ "logout": "लॉग आउट",
+ "login": "लॉग इन करें",
+ "maxFileSize": "अधिकतम फ़ाइल आकार 1एमबी से अधिक हो गया",
+ "maxImageSize": "अधिकतम छवि आकार 1एमबी से अधिक हो गया",
+ "maxVideoSize": "वीडियो का अधिकतम आकार 5एमबी से अधिक हो गया",
+ "maxAudioSize": "ऑडियो क्लिप को 1 एमबी की सीमा तक छोटा कर दिया गया",
+ "noVideo": "आपका ब्राउज़र एम्बेडेड वीडियो का समर्थन नहीं करता है",
+ "noAudio": "आपका ब्राउज़र एम्बेडेड ऑडियो का समर्थन नहीं करता है",
+ "downloadFile": "डाउनलोड करें {name}",
+ "enterCaption": "एक कैप्शन दर्ज करें",
+ "enterMessage": "एक संदेश दर्ज करें...",
+ "sendTextDisabled": "पाठ संदेश अक्षम हैं",
+ "dropFile": "एक फ़ाइल यहां छोड़ें",
+ "cancel": "रद्द करना",
+ "unknownUser": "अज्ञात उपयोगकर्ता",
+ "unknown": "अज्ञात",
+ "update": "अद्यतन",
+ "you": "आप",
+ "areYouSure": "क्या आपको यकीन है?",
+ "unsavedGroupChanges": "आपने समूह में परिवर्तन किए हैं जो अभी तक सहेजे नहीं गए हैं",
+ "blockUser": "खंड उपयोगकर्ता",
+ "blockUserFailed": "उपयोगकर्ता को ब्लॉक करने में असमर्थ",
+ "blockUserSucceeded": "उपयोगकर्ता को ब्लॉक कर दिया गया है",
+ "unblockUser": "उपयोगकर्ता को अनब्लॉक करें",
+ "unblockUserFailed": "उपयोगकर्ता को अनब्लॉक करने में असमर्थ",
+ "unblockUserSucceeded": "उपयोगकर्ता को अनब्लॉक कर दिया गया है",
+ "unblockUserSucceededAddFailed": "उपयोगकर्ता को अनब्लॉक कर दिया गया है लेकिन उसे समूह में दोबारा नहीं जोड़ा जा सका",
+ "blocked": "अवरोधित",
+ "previewing": "पूर्वावलोकन समूह",
+ "userIsBlocked": "संदेश भेजने के लिए उपयोगकर्ता को अनब्लॉक करें",
+ "members": "सदस्यों",
+ "membersHeader": "{level} सदस्य",
+ "invited": "आमंत्रित",
+ "leaveGroup": "छोड़ें {level}",
+ "remove": "निकालना",
+ "close": "बंद करना",
+ "save": "बचाना",
+ "discard": "खारिज करना",
+ "submit": "जमा करना",
+ "edited": "संपादित",
+ "copyInviteCode": "आमंत्रण कोड कॉपी करें",
+ "removeMemberFailed": "सदस्य को हटाने में असमर्थ",
+ "searchForUsername": "उपयोगकर्ता नाम खोजें",
+ "startNewChat": "एक नई चैट प्रारंभ करें",
+ "chatWith": "{username} के साथ चैट करें",
+ "joinGroup": "{level} से जुड़ें",
+ "joinGroupFailed": "{level} से जुड़ने में असमर्थ",
+ "youreBlocked": "क्षमा करें - आपको इस समूह से ब्लॉक कर दिया गया है",
+ "reply": "जवाब",
+ "replyPrivately": "निजी तौर पर उत्तर दें",
+ "deleteMessage": "मिटाना",
+ "deleteMessageForMe": "मेरे लिए हटाएं",
+ "retryMessage": "संदेश पुनः प्रयास करें",
+ "editMessage": "संपादन करना",
+ "messageDeleted": "{username} द्वारा {timestamp} पर संदेश हटाया गया",
+ "messageDeletedByOpenChatBot": "यह संदेश सबसे पहले एक OpenChat उपयोगकर्ता द्वारा रिपोर्ट किया गया था, फिर [Modclub]({modclub}) को भेजा गया जहां यह निर्णय लिया गया कि संदेश ने [प्लेटफ़ॉर्म नियम]({rules}) को तोड़ा है, और अंततः {username} द्वारा {xyz पर हटा दिया गया }",
+ "deleteFailed": "आपका संदेश हटाने में असमर्थ",
+ "enterInviteCode": "अपना आमंत्रण कोड दर्ज करें",
+ "today": "आज",
+ "yesterday": "कल",
+ "chatNotFound": "क्षमा करें - हम चयनित चैट नहीं ढूंढ सके",
+ "leftGroup": "आपने सफलतापूर्वक समूह छोड़ दिया है",
+ "failedToLeaveGroup": "आपको {level} से हटाने का प्रयास करते समय एक त्रुटि हुई",
+ "owner": "मालिक",
+ "admin": "व्यवस्थापक",
+ "moderator": "मध्यस्थ",
+ "member": "सदस्य",
+ "viewer": "दर्शक",
+ "goToFirstMention": "पहले अपठित उल्लेख पर जाएँ",
+ "goToLatestMessage": "नवीनतम संदेश पर जाएँ",
+ "transferOwnership": "को स्वामित्व हस्तांतरित करें",
+ "transferOwnershipSucceeded": "स्वामित्व सफलतापूर्वक हस्तांतरित",
+ "transferOwnershipFailed": "स्वामित्व का हस्तांतरण विफल रहा",
+ "inviteCodeCopied": "आमंत्रण कोड आपके क्लिपबोर्ड पर कॉपी किया गया",
+ "errorSearchingForUser": "उपयोगकर्ताओं की खोज करते समय एक अप्रत्याशित त्रुटि उत्पन्न हुई",
+ "errorSendingMessage": "आपका संदेश भेजने में एक अप्रत्याशित त्रुटि उत्पन्न हुई",
+ "errorEditingMessage": "आपके संदेश को संपादित करने में एक अप्रत्याशित त्रुटि उत्पन्न हुई",
+ "aboutOpenChat": "ओपनचैट के बारे में",
+ "features": "विशेषताएँ",
+ "architecture": "वास्तुकला",
+ "whitepaper": "सफेद कागज",
+ "roadmap": "रोडमैप",
+ "here": "यहाँ",
+ "chatSummary": {
+ "unread": "{count} अपठित संदेश",
+ "mentions": "{count} अपठित उल्लेख"
+ },
+ "reactions": {
+ "greaterThan99People": "99+ लोग",
+ "youClickToRemove": "आप (हटाने के लिए क्लिक करें)",
+ "andYou": ", और आप",
+ "reactedWith": "के साथ प्रतिक्रिया व्यक्त की"
+ },
+ "register": {
+ "unableToConfirmFee": "हम आपके पंजीकरण शुल्क की पुष्टि करने में असमर्थ रहे",
+ "failedToGetFee": "पंजीकरण शुल्क उत्पन्न करने में विफल",
+ "goBack": "वापस जाओ",
+ "confirmTransfer": "स्थानांतरण की पुष्टि करें",
+ "confirmCyclesTransferText": "कृपया नीचे पुष्टि करें कि आपने अपने साइकिल वॉलेट से नीचे दिए गए ओपनचैट वॉलेट में {amount} साइकिल का स्थानांतरण कब किया है",
+ "confirmICPTransferText": "कृपया नीचे पुष्टि करें कि आपने नीचे दिए गए खाते में {amount} ICP का स्थानांतरण कब किया है",
+ "confirm": "पुष्टि करना",
+ "transfer": "स्थानांतरण",
+ "cyclesTransferred": "{fee} चक्रों के शुल्क की पुष्टि की गई",
+ "icpTransferred": "{fee} ICP के शुल्क की पुष्टि की गई",
+ "choosePath": "आप कैसे पंजीकरण करना चाहेंगे?",
+ "usernameRules": "केवल अल्फ़ान्यूमेरिक वर्णों या अंडरस्कोर का उपयोग करके उपयोगकर्ता नाम चुनें",
+ "regOptions": "क्या आप एसएमएस कोड (अनुशंसित) या एक छोटा आईसीपी स्थानांतरण करके सत्यापन करना पसंद करेंगे?",
+ "registerUser": "उपयोगकर्ता पंजीकृत करें",
+ "preparingUser": "उपयोगकर्ता तैयार किया जा रहा है...",
+ "registerAs": "एक उपयोगकर्ता के रूप में पंजीकरण करने के लिए",
+ "enterUsername": "एक OpenChat उपयोगकर्ता नाम चुनें",
+ "enterDisplayName": "एक प्रदर्शन नाम चुनें",
+ "usernameInvalid": "अमान्य उपयोक्तानाम, कृपया पुनः प्रयास करें",
+ "displayNameInvalid": "अमान्य प्रदर्शन नाम, कृपया पुनः प्रयास करें",
+ "letsGo": "चल दर!",
+ "registrationComplete": "पंजीकरण पूर्ण ...",
+ "welcome": "ओपनचैट में आपका स्वागत है!",
+ "enjoy": "इंटरनेट कंप्यूटर पर चैटिंग का आनंद लें",
+ "usernameTaken": "यह उपयोगकर्ता नाम पहले ही लिया जा चुका है",
+ "userNotFound": "उपयोगकर्ता नहीं मिला",
+ "usernameTooShort": "वह उपयोक्तानाम बहुत छोटा है",
+ "usernameTooLong": "वह उपयोक्तानाम बहुत लंबा है",
+ "displayNameTooShort": "वह प्रदर्शन नाम बहुत छोटा है",
+ "displayNameTooLong": "वह प्रदर्शन नाम बहुत लंबा है",
+ "bioTooLong": "आपका बायोडाटा बहुत लंबा है",
+ "userLimitReached": "उपयोगकर्ता की सीमा पूरी हो चुकी है",
+ "createUser": "उपयोगकर्ता बनाइये",
+ "closedTitle": "पंजीकरण रोक दिया गया",
+ "closed": "बहुत अधिक मांग के कारण, नए उपयोगकर्ता पंजीकरण अस्थायी रूप से बंद कर दिए गए हैं। हम जल्द ही कई सबनेट में स्केलिंग करेंगे और फिर अनिश्चित काल तक बढ़ने में सक्षम होंगे!",
+ "disclaimer": "ओपनचैट के साथ पंजीकरण करके आप सामुदायिक दिशानिर्देशों का पालन करने के लिए सहमत होते हैं",
+ "invalidCode": "अवैध कोड",
+ "referralCodeInvalid": "क्षमा करें, आपके द्वारा स्कैन किया गया कोड समाप्त हो गया है",
+ "doYouWantToProceed": "यदि आप आगे बढ़ते हैं तो आपको 50,000 सातोशि प्राप्त नहीं होंगे। वैकल्पिक रूप से, नया कोड प्राप्त करने के लिए DFINITY टीम का एक सदस्य खोजें।",
+ "proceed": "आगे बढ़ना",
+ "title": "ओपनचैट के साथ रजिस्टर करें"
+ },
+ "faq": {
+ "menu": "सामान्य प्रश्न",
+ "header": "अक्सर पूछे जाने वाले प्रश्नों",
+ "ios_app_q": "iOS ऐप कब आएगा?",
+ "ios_app_a": "यह कहने लायक है कि ओपनचैट वेब ऐप पहले से ही iOS पर काम करता है और आप ब्राउज़र मेनू से \"होमस्क्रीन में जोड़ें\" कर सकते हैं। यह आपको ऐप खोलने के लिए एक मानक आइकन देता है जो यूआरएल बार के बिना एक मूल ऐप की तरह दिखाई देता है। इसके अलावा हाल ही में ऐप्पल ने वेब पुश नोटिफिकेशन के लिए समर्थन जोड़ा है जो मैसेजिंग ऐप के लिए महत्वपूर्ण है यदि आप ऑफ़लाइन हैं या ऐप का उपयोग नहीं कर रहे हैं। सामान्य तौर पर तथाकथित प्रोग्रेसिव वेब ऐप्स (पीडब्ल्यूए) के लिए ऐप्पल का समर्थन एंड्रॉइड से पीछे है क्योंकि पीडब्ल्यूए ऐप स्टोर के प्रभुत्व को खतरे में डालता है। फोन संपर्कों को पढ़ने के लिए इसमें समर्थन का अभाव है (एंड्रॉइड पीडब्ल्यूए की तुलना में) और वेबआरटीसी कार्यान्वयन खराब है (पीयर टू पीयर वॉयस/वीडियो कॉल के लिए आवश्यक)। इन सीमाओं के कारण एक देशी iOS ऐप बनाना हमारे एजेंडे में अपेक्षाकृत ऊपर है। हालाँकि ऊपरी तौर पर ओपनचैट \"सिर्फ एक चैट ऐप\" है, यह वास्तव में एक महत्वपूर्ण कोड आधार के साथ काफी जटिल है। हमारे लिए एक आदर्श समाधान, ओपनचैट वेब ऐप को एक पतले देशी ऐप में लपेटना होगा जो देशी फोन एपीआई के साथ इस तरह से संचार करता है कि कोड बेस का बड़ा हिस्सा मूल ऐप अनुभव से समझौता किए बिना सामान्य बना रहे। हम इस क्षेत्र पर शोध कर रहे हैं लेकिन अभी तक यह स्पष्ट नहीं है कि क्या यह संभव होगा या यह कितना कठिन होगा। एक अन्य संभावित बाधा ऐप स्टोर प्रमाणन प्रक्रिया है। एक वेब ऐप के रूप में मुख्य एप्लिकेशन होने से हम अनुमोदन प्रक्रिया से गुजरे बिना ओपनचैट आईओएस ऐप में बदलाव कर सकते हैं जो स्वीकार्य नहीं हो सकता है। हालाँकि अगर इन समस्याओं को हल किया जा सकता है तो संभव है कि कुछ महीनों में एक iOS ऐप तैयार हो जाए। अन्यथा, यदि हमें मूल iOS OpenChat को स्क्रैच से फिर से लिखने (और फिर बनाए रखने) की आवश्यकता है, तो इसमें काफी अधिक समय लगेगा...",
+ "android_app_q": "एंड्रॉइड ऐप कब आएगा?",
+ "android_app_a": "जहां तक आईओएस (ऊपर देखें) का सवाल है, ओपनचैट वेब ऐप पहले से ही एंड्रॉइड पर काम करता है और आप ब्राउज़र मेनू से \"होमस्क्रीन में जोड़ें\" कर सकते हैं। यह आपको ऐप खोलने के लिए एक मानक आइकन देता है जो यूआरएल बार के बिना एक मूल ऐप की तरह दिखाई देता है। एंड्रॉइड पर प्रोग्रेसिव वेब ऐप (PWA) सपोर्ट बहुत अच्छा है। आईओएस की तरह यह वेब पुश नोटिफिकेशन का समर्थन करता है लेकिन फोन से संपर्कों को पढ़ने का भी समर्थन करता है (यदि आप प्रत्येक मामले में अनुमति देते हैं)। इसके अलावा WebRTC के लिए समर्थन काफी बेहतर है। ऐसे में एक देशी एंड्रॉइड ऐप बनाने का मामला कम आकर्षक है और यह एक देशी आईओएस ऐप के बाद आएगा। कोर वेब ऐप के चारों ओर एक पतले देशी आवरण के लक्ष्य और एंड्रॉइड प्ले स्टोर पर प्रमाणन के संबंध में आईओएस के रूप में एंड्रॉइड ऐप के निर्माण पर भी यही विचार लागू होते हैं।",
+ "style_messages_q": "क्या मैं संदेशों को स्टाइल कर सकता हूँ?",
+ "style_messages_a": "आप शिफ्ट-एंटर का उपयोग करके लाइन ब्रेक जोड़ सकते हैं और आप मार्कडाउन के सबसेट का उपयोग इस प्रकार कर सकते हैं:
\\_इटैलिक\\_ या \\*इटैलिक\\*
\\*\\*बोल्ड\\*\\*
\\*\\*\\*दोनों\\*\\*\\ *
\\~स्ट्राइकथ्रू\\~
\\[लिंक टेक्स्ट\\](https://oc.app)
\\`let a: int = 10; //कोडकोड>\\`",
+ "storage_q": "भंडारण कैसे कार्य करता है?",
+ "storage_a": "टेक्स्ट संदेश कम जगह लेते हैं और इसलिए हमें अपेक्षाकृत कम लागत आती है। छवियां आम तौर पर बहुत अधिक जगह लेती हैं और लागत बढ़ जाती है। अब OpenChat सिस्टम पर कुछ पृष्ठभूमि। प्रत्येक उपयोगकर्ता के पास अपना स्वयं का कनस्तर होता है जिसमें उनकी सीधी चैट के सभी संदेश होते हैं। प्रत्येक समूह का अपना कनस्तर भी होता है जिसमें समूह के सभी संदेश रखे जाते हैं। हालाँकि, हम संदेशों से जुड़े किसी भी फ़ाइल डेटा, जैसे चित्र और वीडियो, को ICP खरीदना होगा जिसे आप स्वैप कर सकते हैं विभिन्न विकेन्द्रीकृत एक्सचेंजों (DEXes) पर चैट करें। li>ICPस्वैप ul>DFINITY ICRC1 टोकन (जिसमें CHAT भी शामिल है) के लिए Rosetta API के लिए समर्थन जोड़ रहा है, जिससे उन्हें बहुत आसान बनाया जा रहा है। केंद्रीकृत एक्सचेंजों (सीईएक्स) के साथ एकीकरण करना। एक बार ऐसा हो जाने के बाद यह संभावना है कि CHAT ICP या USDT के लिए CEX पर व्यापार करने के लिए उपलब्ध होगा।",
+ "diamond_q": "डायमंड सदस्यता क्या है?",
+ "diamond_a": "ओपनचैट के भीतर अतिरिक्त या उन्नत सुविधाओं तक पहुंच पाने के लिए आप डायमंड सदस्यता में अपग्रेड कर सकते हैं। फीचर की तुलना और अपग्रेड के लिए यहां देखें।",
+ "content_q": "किस प्रकार की सामग्री की अनुमति है?",
+ "content_a": "हमारी सामग्री और मॉडरेशन दिशानिर्देशों की पूरी जानकारी के लिए यहां देखें।",
+ "info_q": "मैं ओपनचैट के बारे में और अधिक जानकारी कहां से प्राप्त कर सकता हूं?",
+ "info_a": "हमारे होम पेज पर जाएं और OpenChat features, रोडमैप के लिंक ढूंढें a>, श्वेतपत्र, आर्किटेक्चर और ब्लॉग",
+ "referral_rewards_q": "रेफरल पुरस्कार क्या हैं?",
+ "referral_rewards_a": "डायमंड सदस्य के रूप में आप अपने द्वारा संदर्भित प्रत्येक उपयोगकर्ता के लिए पुरस्कार अर्जित कर सकते हैं जो आगे चलकर स्वयं डायमंड सदस्य बन जाता है। ओपनचैट में शामिल होने के पहले वर्ष के भीतर आपको उनके द्वारा किए गए किसी भी डायमंड भुगतान का आधा हिस्सा प्राप्त होगा। आप अपना रेफरल लिंक मुख्य मेनू से अपनी \"प्रोफ़ाइल सेटिंग्स\" के \"मित्रों/परिवार को आमंत्रित करें\" अनुभाग में पा सकते हैं।
आप यह कैसे कर सकते हैं? बहुत सारे तरीके हैं. आप दोस्तों और परिवार को बता सकते हैं, ओपनचैट के बारे में ट्वीट कर सकते हैं, ओपनचैट के बारे में एक वीडियो बना सकते हैं जिसमें बताया जा सकता है कि आपको इसमें क्या पसंद है और इसे टिकटॉक या यूट्यूब पर साझा कर सकते हैं। आप ट्विच पर स्ट्रीम कर सकते हैं या ब्लॉग पोस्ट लिख सकते हैं या पॉडकास्ट बना सकते हैं या ट्विटर स्पेस होस्ट कर सकते हैं या वास्तविक जीवन की बैठक भी आयोजित कर सकते हैं। हम उन सभी रचनात्मक विचारों को देखने के लिए उत्सुक हैं जो आप अपनी बात लोगों तक पहुंचाने के लिए लेकर आए हैं!
भविष्य में हम आपके द्वारा संदर्भित सभी उपयोगकर्ताओं के लिए रेफरल पुरस्कार खोलेंगे, भले ही वे डायमंड सदस्य बनें या नहीं। हालाँकि, क्योंकि इसका आसानी से दोहन किया जा सकता है, इसलिए हमें पहले कुछ प्रकार के \"अद्वितीय व्यक्तित्व का प्रमाण\" प्रस्तुत करने की आवश्यकता होगी।"
+ },
+ "pinMessage": "नत्थी करना",
+ "unpinMessage": "अनपिन",
+ "showPinned": "पिन किया हुआ दिखाएँ",
+ "pinnedMessages": "पिन किए गए संदेश",
+ "pinMessageFailed": "संदेश पिन करने में असमर्थ",
+ "unpinMessageFailed": "संदेश अनपिन करने में असमर्थ",
+ "poll": {
+ "create": "एक जनमत तैयार करें",
+ "questionLabel": "सवाल",
+ "answersLabel": "जवाब",
+ "atLeastTwo": "न्यूनतम 2",
+ "optionalQuestion": "वैकल्पिक रूप से अपना प्रश्न यहां दर्ज करें",
+ "addAnswer": "कम से कम 2 उत्तर जोड़ें",
+ "addAnotherAnswer": "दूसरा उत्तर जोड़ें",
+ "answerText": "उत्तर पाठ दर्ज करें...",
+ "maxReached": "अधिकतम 10 उत्तर तक पहुंचे",
+ "invalidAnswer": "हम्म्म, क्या आपके पास डुप्लिकेट उत्तर है?",
+ "settings": "समायोजन",
+ "poll": "मतदान",
+ "anonymous": "गुमनाम",
+ "limitedDuration": "सीमित अवधि",
+ "showBeforeEnd": "मतदान ख़त्म होने से पहले वोट दिखाएँ",
+ "pollDuration": "मतदान की अवधि",
+ "oneHour": "1 घंटा",
+ "oneDay": "1 दिन",
+ "oneWeek": "1 सप्ताह",
+ "allowMultipleVotes": "एकाधिक वोटों की अनुमति दें",
+ "allowChangeVotes": "उपयोगकर्ताओं को वोट बदलने की अनुमति दें",
+ "start": "शुरू",
+ "pollEnds": "मतदान समाप्त {end}",
+ "voteFailed": "पोल वोट विफल रहा",
+ "totalVotes": "कुल वोट: {total}",
+ "finished": "मतदान समाप्त हो गया है",
+ "votersPublic": "मतदाता सार्वजनिक होंगे",
+ "votersPrivate": "मतदाता गुमनाम रहेंगे",
+ "numVotes": "{votes} वोट",
+ "numVotesBy": "{votes} द्वारा वोट",
+ "oneVote": "1 वोट",
+ "oneVoteBy": "1 वोट द्वारा",
+ "numVotesIncludingYours": "आपके सहित {votes} वोट"
+ },
+ "role": {
+ "default": "गलती करना",
+ "none": "कोई नहीं",
+ "owner": "मालिकों",
+ "admin": "व्यवस्थापक",
+ "moderator": "मध्यस्थ",
+ "member": "सदस्यों"
+ },
+ "permissions": {
+ "whoCan": "कौन कर सकते हैं",
+ "permissions": "अनुमतियाँ",
+ "nobody": "यह कोई नहीं कर सकता",
+ "ownerOnly": "मालिक कर सकते हैं",
+ "ownerAndAdmins": "स्वामी और व्यवस्थापक कर सकते हैं",
+ "ownerAndAdminsAndModerators": "स्वामी, व्यवस्थापक और मॉडरेटर कर सकते हैं",
+ "allMembers": "सभी सदस्य कर सकते हैं",
+ "changeRoles": "सदस्य भूमिकाएँ बदलें",
+ "removeMembers": "सदस्यों को हटाएं/ब्लॉक करें",
+ "deleteMessages": "संदेश हटाएं",
+ "updateGroup": "समूह जानकारी संपादित करें",
+ "updateDetails": "बुनियादी जानकारी संपादित करें",
+ "pinMessages": "संदेशों को पिन करें",
+ "createPolls": "पोल बनाएं",
+ "sendMessages": "संदेश भेजो",
+ "reactToMessages": "संदेशों पर प्रतिक्रिया दें",
+ "inviteUsers": "उपयोगकर्ताओं को आमंत्रित करें",
+ "notPermitted": "आपको {permission} की अनुमति नहीं है",
+ "replyInThread": "थ्रेड में उत्तर दें",
+ "createPublicChannel": "सार्वजनिक चैनल बनाएं",
+ "createPrivateChannel": "निजी चैनल बनाएं",
+ "manageUserGroups": "उपयोगकर्ता समूहों का प्रबंधन करें",
+ "mentionAllMembers": "सभी सदस्यों का उल्लेख करें ({mention})",
+ "general": "सामान्य",
+ "message": "संदेशों",
+ "thread": "धागे",
+ "overrideChatMessages": "चैट संदेश अनुमतियों को ओवरराइड करें",
+ "messagePermissions": {
+ "default": "डिफ़ॉल्ट रूप से संदेश भेजें",
+ "text": "टैक्स्ट मैसेज भेजना",
+ "image": "छवि संदेश भेजें",
+ "video": "वीडियो संदेश भेजें",
+ "audio": "ऑडियो संदेश भेजें",
+ "file": "फ़ाइल संदेश भेजें",
+ "poll": "मतदान संदेश बनाएं",
+ "crypto": "क्रिप्टो संदेश भेजें",
+ "giphy": "जिप्पी संदेश भेजें",
+ "prize": "पुरस्कार संदेश भेजें",
+ "memeFighter": "मेमे फाइटर संदेश भेजें"
+ },
+ "threadPermissions": {
+ "default": "डिफ़ॉल्ट रूप से थ्रेड में संदेश भेजें",
+ "text": "थ्रेड में टेक्स्ट संदेश भेजें",
+ "image": "थ्रेड में छवि संदेश भेजें",
+ "video": "थ्रेड में वीडियो संदेश भेजें",
+ "audio": "थ्रेड में ऑडियो संदेश भेजें",
+ "file": "थ्रेड में फ़ाइल संदेश भेजें",
+ "poll": "थ्रेड में मतदान संदेश बनाएं",
+ "crypto": "थ्रेड्स में क्रिप्टो संदेश भेजें",
+ "giphy": "थ्रेड्स में giphy संदेश भेजें",
+ "prize": "थ्रेड में पुरस्कार संदेश भेजें",
+ "memeFighter": "मेमे फाइटर संदेश थ्रेड में भेजें"
+ }
+ },
+ "level": {
+ "group": "समूह",
+ "channel": "चैनल",
+ "community": "समुदाय"
+ },
+ "group": {
+ "createTitle": "नया {level} बनाएं",
+ "back": "पीछे",
+ "next": "अगला",
+ "edit": "{level} संपादित करें",
+ "create": "{level} बनाएं",
+ "update": "अद्यतन करें {level}",
+ "details": "विवरण",
+ "members": "सदस्यों",
+ "addGroupPhoto": "{level} फ़ोटो जोड़ें",
+ "editGroupPhoto": "{level} फ़ोटो संपादित करें",
+ "publicGroup": "सार्वजनिक {level}",
+ "privateGroup": "निजी {level}",
+ "groupInfo": "{level} जानकारी",
+ "usersInvited": "आमंत्रण संदेश भेजा गया!",
+ "advanced": "विकसित",
+ "welcome": "{groupName} में आपका स्वागत है",
+ "historyPrivateMessage": "पुराने संदेश नये सदस्यों को दिखाई नहीं देते",
+ "privateGroupInfo": "उपयोगकर्ता इस {level} में स्वतंत्र रूप से शामिल नहीं हो सकते। उन्हें या तो किसी अधिकृत सदस्य द्वारा जोड़ा जाना चाहिए या आमंत्रित किया जाना चाहिए।",
+ "getRulesFailed": "{level} नियम प्राप्त करने में विफल",
+ "inviteUsers": "{level} उपयोगकर्ताओं को आमंत्रित करें",
+ "inviteUsersFailed": "उपयोगकर्ताओं को आमंत्रित करने में एक त्रुटि हुई",
+ "tooManyInvites": "आपके पास केवल 100 उत्कृष्ट निमंत्रण हो सकते हैं",
+ "image": "{level} छवि",
+ "name": "{level} नाम",
+ "description": "{level} विवरण"
+ },
+ "invite": {
+ "inviteWithLink": "लिंक के माध्यम से {level} पर आमंत्रित करें",
+ "enableLink": "लिंक सक्षम करें",
+ "resetLink": "लिंक रीसेट करें",
+ "errorGettingLink": "लिंक प्राप्त करने में असमर्थ",
+ "errorEnablingLink": "लिंक सक्षम करने में असमर्थ",
+ "errorDisablingLink": "लिंक अक्षम करने में असमर्थ",
+ "errorResettingLink": "लिंक रीसेट करने में असमर्थ",
+ "confirmReset": "क्या आप वाकई {level} लिंक को रीसेट करना चाहते हैं? लोग अब वर्तमान लिंक का उपयोग करके {level} में शामिल नहीं हो पाएंगे।",
+ "shareMessage": "इस लिंक वाला कोई भी व्यक्ति पूर्वावलोकन कर सकता है और {level} में शामिल हो सकता है। डायमंड सदस्य के रूप में आप [रेफ़रल पुरस्कार](?faq=referral_rewards) भी अर्जित कर सकते हैं।",
+ "shareMessageTrust": "इसे उन लोगों के साथ साझा करें जिन पर आप भरोसा करते हैं।",
+ "enabled": "सक्रिय",
+ "disabled": "अक्षम",
+ "reset": "रीसेट",
+ "invite": "आमंत्रित करना"
+ },
+ "rules": {
+ "rules": "नियम",
+ "levelRules": "{level} नियम",
+ "communityRulesExplanation": "किसी भी चैनल नियम को इन नियमों से पहले जोड़ा जाएगा",
+ "channelRulesExplanation": "इन्हें किसी भी सामुदायिक नियम से पहले जोड़ा जाएगा",
+ "enable": "नियम सक्षम करें",
+ "placeholder": "{level} नियम क्या हैं?",
+ "instructions": "यदि सक्षम किया गया है, तो नए सदस्यों को संदेश भेजने से पहले नियमों से सहमत होना होगा।",
+ "acceptTitle": "चैट नियम",
+ "accept": "स्वीकार करना",
+ "reject": "अस्वीकार करना",
+ "promptExistingUsers": "मौजूदा सदस्यों को संकेत दें",
+ "promptExistingUsersInstructions": "मौजूदा सदस्यों को संदेश भेजने से पहले नए नियमों से सहमत होना होगा।"
+ },
+ "access": {
+ "visibility": "पहुँच",
+ "public": "जनता",
+ "private": "निजी",
+ "gate": "प्रवेश द्वार",
+ "initiateCredentialCheck": "क्रेडेंशियल सत्यापित करें",
+ "approvePaymentTitle": "भुगतान स्वीकृत करें",
+ "credentialCheckMessage": "इस {level} में शामिल होने के लिए आपको जारीकर्ता {credential} से \"{issuer}\" क्रेडेंशियल सत्यापित करना आवश्यक है।",
+ "paymentApprovalMessage": "इस {level} में शामिल होने के लिए आपको **{amount}** {token} टोकन का भुगतान करना होगा।",
+ "paymentDistributionMessage": "इसमें से 98% {level} मालिकों को जाता है और 2% OpenChat SNS खजाने को जाता है।",
+ "verify": "सत्यापित करें",
+ "credential": "सत्यापित क्रेडेंशियल",
+ "credentialGateInfo": "केवल वे उपयोगकर्ता जो {credential} से \"{issuer}\" क्रेडेंशियल प्रदान कर सकते हैं, उन्हें शामिल होने की अनुमति दी जाएगी",
+ "credentialParamIssuer": "जारीकर्ता: {issuer}",
+ "credentialParamCredential": "क्रेडेंशियल: {credential}",
+ "chooseGate": "एक प्रवेश द्वार चुनें",
+ "diamondMember": "हीरे की सदस्यता",
+ "diamondGateInfo": "केवल डायमंड सदस्यता वाले उपयोगकर्ताओं को ही शामिल होने की अनुमति दी जाएगी",
+ "tokenNeuronHolder": "{token} न्यूरॉन धारक",
+ "neuronHolder": "न्यूरॉन धारक",
+ "neuronHolderInfo": "केवल {token} न्यूरॉन्स के धारकों को ही शामिल होने की अनुमति दी जाएगी",
+ "payment": "भुगतान",
+ "tokenPayment": "{token} भुगतान",
+ "tokenPaymentInfo": "उपयोगकर्ता केवल तभी शामिल हो सकते हैं जब वे {token} टोकन में राशि का भुगतान करते हैं।",
+ "subscriptionComingSoon": "सदस्यता मॉडल जल्द ही आ रहा है.",
+ "chooseNervousSystem": "तंत्रिका तंत्र चुनें",
+ "chooseToken": "टोकन चुनें",
+ "amount": "राशि (टोकन)",
+ "amountN": "राशि {n} टोकन",
+ "nftHolder": "एनएफटी धारक (जल्द ही आ रहा है)",
+ "openAccess": "कोई नहीं (खुली पहुंच)",
+ "minDissolveDelay": "न्यूनतम विघटित विलंब (दिन)",
+ "minStake": "न्यूनतम हिस्सेदारी (टोकन)",
+ "minDissolveDelayN": "न्यूनतम विघटन विलंब {n} दिन",
+ "minStakeN": "न्यूनतम हिस्सेदारी {n} टोकन",
+ "optional": "वैकल्पिक",
+ "openAccessInfo": "इसमें शामिल होने के लिए कोई विशेष पहुंच आवश्यकताएं नहीं हैं",
+ "gateCheckFailed": "प्रवेश द्वार नहीं मिला",
+ "cannotMakePublic": "आप किसी निजी {level} को सार्वजनिक नहीं कर सकते क्योंकि इससे मौजूदा सदस्यों की गोपनीयता खतरे में पड़ जाएगी।",
+ "credentialIssuer": "क्रेडेंशियल जारीकर्ता",
+ "requiredCredential": "आवश्यक क्रेडेंशियल",
+ "paymentFailed": "भुगतान विफल रही",
+ "payAndJoin": "भुगतान करें और शामिल हों",
+ "tokenComingSoon": "{token} (जल्द ही आ रहा है)"
+ },
+ "updateNow": "अभी पुनः लोड करें",
+ "updateRequired": "OpenChat का एक नया संस्करण उपलब्ध है - {countdown}s में पुनः लोड किया जा रहा है",
+ "memberCount": "{count} सदस्य",
+ "ownedBy": "@{username} के स्वामित्व में",
+ "tokenTransfer": {
+ "title": "{token} भेजें",
+ "amount": "मात्रा",
+ "send": "भेजना",
+ "message": "संदेश",
+ "messagePlaceholder": "एक वैकल्पिक संदेश शामिल करें",
+ "fee": "{fee} {token} की फीस जोड़ी जाएगी",
+ "unexpected": "एक अप्रत्याशित क्रिप्टो स्थानांतरण प्रकार प्राप्त हुआ था",
+ "confirmedSent": "{sender} ने {amount} {token} को {receiver} पर भेजा",
+ "pendingSent": "{sender} {amount} {token} को {receiver} भेज रहा है",
+ "pendingSentByYou": "आप {amount} {token} को {receiver} पर भेज रहे हैं",
+ "viewTransaction": "[लेनदेन]({url})",
+ "warning": "चेतावनी - यह सुनिश्चित करना आपकी ज़िम्मेदारी है कि आप प्राप्तकर्ता की पहचान और उद्देश्यों पर भरोसा करते हैं। OpenChat किसी भी {token} स्थानांतरण को उलट नहीं सकता।",
+ "confirm": "पुष्टि करना",
+ "transfer": "{token} स्थानांतरण",
+ "makeDeposit": "कृपया उपरोक्त खाते में जमा करें और अपनी शेष राशि ताज़ा करें।",
+ "zeroBalance": "आपके पास कोई {token} नहीं है.",
+ "yourAccount": "आपका {token} पता",
+ "receiver": "प्राप्तकर्ता",
+ "chooseReceiver": "प्राप्तकर्ता का उपयोगकर्ता नाम दर्ज करें",
+ "done": "ताज़ा करें और जारी रखें",
+ "max": "अधिकतम",
+ "saveAccount": "बचाना",
+ "saveAccountMessage": "क्या आप अगली बार आसान पहुंच के लिए इस खाते को सहेजना चाहेंगे?",
+ "enterAccountName": "इस खाते के लिए एक नाम दर्ज करें",
+ "failedToSaveAccount": "क्षमा करें, हम आपका खाता सहेजने में असमर्थ रहे",
+ "accountNameTaken": "आपके पास पहले से ही उस नाम से एक खाता है",
+ "chooseAddress": "अपने सहेजे गए पतों में से एक चुनें"
+ },
+ "cryptoAccount": {
+ "shortBalanceLabel": "संतुलन",
+ "shortRemainingBalanceLabel": "शेष राशि",
+ "manage": "प्रबंधित करना",
+ "send": "भेजना",
+ "swap": "बदलना",
+ "receiveToken": "{symbol} प्राप्त करें",
+ "sendToken": "{symbol} भेजें",
+ "transactions": "लेनदेन",
+ "manageHeader": "{symbol} खाता प्रबंधित करें",
+ "topUp": "लबालब भरना",
+ "topUpBlurb": "टॉप अप करने के लिए, बस ऊपर दिए गए खाते में कुछ {token} ट्रांसफर करें।",
+ "receive": "प्राप्त करें",
+ "sendTarget": "भेजने के लिए एक पता दर्ज करें",
+ "sendSucceeded": "आपका {symbol} सफलतापूर्वक भेज दिया गया!",
+ "sendFailed": "{symbol} भेजने में विफल",
+ "token": "टोकन",
+ "tokens": "टोकन",
+ "total": "कुल",
+ "scan": "स्कैन क्यू आर कोड",
+ "comingSoon": "(जल्द आ रहा है)",
+ "showZeroBalance": "और दिखाओ",
+ "hideZeroBalance": "कम दिखाएं",
+ "transactionError": "क्षमा करें हम आपके लेनदेन को लोड करने में असमर्थ रहे",
+ "unknownTransactionType": "अज्ञात",
+ "loadMoreTransactions": "और लोड करें",
+ "transactionHeaders": {
+ "id": "पहचान",
+ "amount": "मात्रा",
+ "type": "प्रकार",
+ "timestamp": "समय-चिह्न",
+ "from": "से",
+ "to": "को"
+ }
+ },
+ "tokenSwap": {
+ "swapToken": "स्वैप {tokenIn}",
+ "swapTokenTo": "{tokenIn} को {tokenOut} में बदलें",
+ "swap": "बदलना",
+ "quote": "उद्धरण",
+ "requote": "पुनः उद्धरण",
+ "back": "पीछे",
+ "swapNotAvailable": "वर्तमान में {tokenIn} को किसी अन्य टोकन में स्वैप करना संभव नहीं है",
+ "noQuotes": "किसी भी DEXes ने {tokenIn} को स्वैप करने के लिए कोई उद्धरण प्रदान नहीं किया",
+ "getTokenSwapsError": "{tokenIn} के लिए स्वैप प्राप्त करने में त्रुटि",
+ "quoteError": "{tokenIn} स्वैप करने के लिए उद्धरण प्राप्त करने में त्रुटि",
+ "findingAvailableTokens": "स्वैप करने के लिए उपलब्ध टोकन ढूँढना...",
+ "swapInfo": "उद्धृत की गई सर्वोत्तम दर {rate} से **{tokenOut}** {tokenIn} प्रति {dex} है। यह **{amountOut}** {tokenOut} के लिए **{amountIn}** {tokenIn} देता है। स्वैप तभी आगे बढ़ेगा जब प्राप्त होने वाली {tokenOut} की राशि उद्धृत राशि का कम से कम 98% हो। क्या आप आगे बढ़कर `{swap}` का प्रयास करना चाहेंगे?",
+ "quoteTooLow": "उद्धृत की गई सर्वोत्तम दर {rate} से {tokenOut} प्रति {tokenIn} है। यह {dex} {amountOut} के लिए {tokenOut} {amountIn} देता है। आप केवल तभी स्वैप कर सकते हैं यदि उद्धृत राशि {tokenIn} से अधिक हो।",
+ "progress": {
+ "get": "जमा खाता प्राप्त करें",
+ "deposit": "{amountIn} {tokenIn} को {dex} में स्थानांतरित करें",
+ "notify": "जमा के बारे में {dex} को सूचित करें",
+ "swap": "स्वैप करने के लिए {dex} को निर्देश दें",
+ "withdraw": "{amountOut} से {tokenOut} {dex} वापस लें",
+ "refund": "{amountIn} से {tokenIn} {dex} रिफ़ंड करें",
+ "done": "स्वैप पूर्ण",
+ "failed": "स्वैप विफल - विनिमय दर बदल गई है",
+ "insufficientFunds": "स्वैप विफल - अपर्याप्त धनराशि",
+ "error": "स्वैप त्रुटि - कोई धनराशि नष्ट नहीं हुई है"
+ }
+ },
+ "searchChat": "खोज",
+ "search": "खोज...",
+ "offline": "ऑफलाइन",
+ "sendTo": "भेजना...",
+ "sendGif": "जीआईएफ भेजें",
+ "reset": "रीसेट",
+ "send": "भेजना",
+ "copyMessageUrl": "संदेश यूआरएल कॉपी करें",
+ "messageUrlCopiedToClipboard": "संदेश यूआरएल क्लिपबोर्ड पर कॉपी किया गया!",
+ "faqUrlCopiedToClipboard": "अक्सर पूछे जाने वाले प्रश्न यूआरएल को क्लिपबोर्ड पर कॉपी किया गया!",
+ "failedToShareMessage": "इस संदेश को साझा करने में असमर्थ",
+ "backToResults": "पीछे",
+ "giphyMessage": "गिफ़ी संदेश",
+ "prizeMessage": "पुरस्कार संदेश",
+ "share": "शेयर करना",
+ "stats": {
+ "userStats": "उपयोगकर्ता आँकड़े",
+ "groupStats": "{level} आँकड़े",
+ "textMessages": "पाठ संदेश",
+ "imageMessages": "छवि संदेश",
+ "videoMessages": "वीडियो संदेश",
+ "audioMessages": "ऑडियो संदेश",
+ "fileMessages": "फ़ाइल संदेश",
+ "pollMessages": "मतदान संदेश",
+ "icpTransfers": "आईसीपी संदेश",
+ "giphyMessages": "गिफ़ी संदेश",
+ "pollVotes": "मतदान वोट",
+ "replies": "जवाब",
+ "reactions": "प्रतिक्रियाओं",
+ "deletedMessages": "हटाए गए संदेश",
+ "reportedMessages": "रिपोर्ट किए गए संदेश",
+ "reportedMessagesInfo": "आपके द्वारा भेजे गए संदेश जिन्हें हटा दिया गया था या दूसरों द्वारा रिपोर्ट किया गया था। इसका उपयोग एक संकेत के रूप में किया जा सकता है कि आप समुदाय में सकारात्मक योगदान नहीं दे रहे हैं।",
+ "cryptoTransfers": "क्रिप्टो संदेश"
+ },
+ "andNMore": ", और {n} और भी",
+ "confirmMakeGroupPrivate": "क्या आप निश्चित रूप से इस {level} को निजी बनाना चाहते हैं?",
+ "confirmMakeGroupPublic": "क्या आप निश्चित रूप से इस {level} को सार्वजनिक करना चाहते हैं?\n\nमौजूदा संदेश निजी रहेंगे, सभी नए संदेश सार्वजनिक रहेंगे।",
+ "makeGroupPrivate": "समूह को निजी बनाएं",
+ "makeGroupPrivateFailed": "{level} को निजी बनाने में विफल",
+ "makeGroupPublicFailed": "{level} को सार्वजनिक करने में विफल",
+ "groupVisibilityChangedBy": "{changedBy} ने {level} {visibility} बनाया",
+ "translateMessage": "अनुवाद",
+ "untranslateMessage": "अअनुवाद",
+ "unableToTranslate": "अनुवाद करने में असमर्थ",
+ "copy": "प्रतिलिपि",
+ "failedToShareLink": "लिंक साझा करने में विफल",
+ "groupInviteChangedBy": "{changedBy} {changed} समूह आमंत्रण लिंक",
+ "memberIsTyping": "{username} टाइप कर रहा है",
+ "membersAreTyping": "{number} सदस्य टाइप कर रहे हैं",
+ "readOnlyChat": "यह चैट केवल पढ़ने के लिए है",
+ "readOnlyThread": "यह थ्रेड केवल पढ़ने के लिए है",
+ "accounts": "हिसाब किताब",
+ "forward": "आगे",
+ "thread": {
+ "menu": "थ्रेड में उत्तर दें",
+ "title": "धागा",
+ "previewTitle": "धागे",
+ "replies": "जवाब",
+ "reply": "जवाब",
+ "openThread": "खुला धागा",
+ "unread": "अपठित संदेशों के साथ {count} थ्रेड",
+ "moreMessages": "- {number} अधिक संदेश -",
+ "lastMessage": "(अंतिम संदेश {date})",
+ "nreplies": "{number} {replies} {message}",
+ "previewFailure": "थ्रेड पूर्वावलोकन लोड करने में असमर्थ"
+ },
+ "linkCopiedToClipboard": "लिंक को क्लिपबोर्ड पर कॉपी किया गया",
+ "userIdCopiedToClipboard": "उपयोगकर्ता आईडी को क्लिपबोर्ड पर कॉपी किया गया",
+ "failedToCopyLinkToClipboard": "क्लिपबोर्ड पर लिंक कॉपी करने में असमर्थ",
+ "referralHeader": "मित्रों/परिवार को आमंत्रित करें",
+ "userReferralMessage": "इस लिंक को दोस्तों और परिवार के साथ OpenChat पर साझा करें। जब तक आप स्वयं डायमंड सदस्य हैं, आपके लिंक के साथ पंजीकरण करने वाले और डायमंड सदस्य बनने वाले प्रत्येक व्यक्ति के लिए, आपको उनके पहले वर्ष के दौरान किए गए सदस्यता भुगतान का आधा हिस्सा प्राप्त होगा।",
+ "tapForReferralLink": "अपना व्यक्तिगत रेफरल लिंक कॉपी करने के लिए टैप करें",
+ "userInfoHeader": "जनता",
+ "noChatsAvailable": "कोई चैट उपलब्ध नहीं!",
+ "invitedUsers": "उपयोगकर्ताओं को आमंत्रित किया गया",
+ "pinChat": {
+ "limitExceeded": "आप केवल {limit} चैट को पिन अप कर सकते हैं",
+ "failed": "चैट को पिन करने में विफल - कृपया बाद में प्रयास करें",
+ "unpinFailed": "चैट को अनपिन करने में विफल - कृपया बाद में प्रयास करें",
+ "menuItem": "चैट पिन करें",
+ "unpinMenuItem": "चैट अनपिन करें"
+ },
+ "proposal": {
+ "voteFailed": "वोट डालने में विफल - कृपया बाद में प्रयास करें",
+ "alreadyVoted": "आप पहले ही मतदान कर चुके हैं - पृष्ठ को पुनः लोड करने का प्रयास करें",
+ "noEligibleNeurons": "कोई योग्य न्यूरॉन नहीं मिला",
+ "noEligibleNeuronsMessage": "कोई योग्य या लिंक्ड न्यूरॉन्स नहीं मिला. ओपनचैट के प्रस्तावों पर वोट करने के लिए आपको सबसे पहले अपनी ओपनचैट उपयोगकर्ता आईडी को किसी भी न्यूरॉन में हॉटकी के रूप में जोड़ना होगा जिसके साथ आप वोट करना चाहते हैं।
आपकी OpenChat उपयोगकर्ता आईडी है: {userId}.
मतदान और शासन के बारे में अधिक जानकारी के लिए यह ब्लॉग पोस्ट पढ़ें।",
+ "proposalNotAceptingVotes": "यह प्रस्ताव वोट स्वीकार नहीं कर रहा है - पृष्ठ को पुनः लोड करने का प्रयास करें",
+ "proposedBy": "प्रस्तावना",
+ "topic": "विषय",
+ "action": "कार्रवाई",
+ "votingPeriodRemaining": "मतदान की अवधि शेष है",
+ "votingPeriodEnded": "मतदान की अवधि समाप्त हो गई",
+ "adopt": "गोद लेना",
+ "reject": "अस्वीकार करना",
+ "youVotedAdopt": "आपने अपनाने के लिए मतदान किया!",
+ "youVotedReject": "आपने वोट अस्वीकार कर दिया!",
+ "additionalContent": "अतिरिक्त सामग्री",
+ "filter": "प्रस्तावों को फ़िल्टर करें",
+ "collapse": "संदेश संक्षिप्त करें",
+ "enableAll": "सभी को सक्षम करें",
+ "disableAll": "सबको सक्षम कर दो",
+ "readmore": "और पढ़ें",
+ "readless": "कम पढ़ें",
+ "details": "विवरण",
+ "builtInAction": "अंतर्निहित क्रियाएँ",
+ "userIndexAction": "उपयोगकर्ता अनुक्रमणिका क्रियाएँ",
+ "groupIndexAction": "समूह सूचकांक क्रियाएँ",
+ "notificationsAction": "अधिसूचना सूचकांक क्रियाएँ",
+ "proposalsBotAction": "प्रस्ताव बॉट क्रियाएँ",
+ "storageIndexAction": "भंडारण सूचकांक क्रियाएँ",
+ "cyclesDispenserAction": "साइकिल डिस्पेंसर क्रियाएँ",
+ "registryAction": "रजिस्ट्री क्रियाएँ",
+ "neuronControllerAction": "न्यूरॉन नियंत्रक क्रियाएँ",
+ "unknownActionCategory": "अन्य कार्रवाई",
+ "makeProposal": "प्रस्ताव बनाओ",
+ "maker": {
+ "header": "एक प्रस्ताव तैयार करें",
+ "title": "शीर्षक",
+ "summary": "सारांश",
+ "url": "यूआरएल",
+ "enterTitle": "एक शीर्षक दर्ज करें",
+ "enterSummary": "एक सारांश दर्ज करें",
+ "enterUrl": "एक वैकल्पिक यूआरएल दर्ज करें",
+ "summaryRules": "मार्कडाउन का समर्थन करता है",
+ "urlRules": "पूरक विवरण से लिंक करें",
+ "unexpectedError": "प्रस्ताव सबमिट करने में अप्रत्याशित त्रुटि",
+ "recipientOwner": "प्राप्तकर्ता का खाता मूलधन",
+ "recipientSubaccount": "प्राप्तकर्ता का उप-खाता",
+ "recipientSubaccountRules": "एक हेक्स स्ट्रिंग होना चाहिए",
+ "enterRecipientOwner": "प्राप्तकर्ता के खाते का मूलधन दर्ज करें",
+ "enterRecipientSubaccount": "एक वैकल्पिक प्राप्तकर्ता उप-खाता दर्ज करें",
+ "amount": "मात्रा",
+ "amountRules": "कम से कम 1 {token} टोकन",
+ "enterAmount": "{token} टोकन की मात्रा दर्ज करें",
+ "type": "प्रस्ताव प्रकार",
+ "treasury": "कोषागार से स्थानांतरण हेतु टोकन",
+ "message": "प्रस्ताव प्रस्तुत करने के लिए {cost} {token} टोकन (हस्तांतरण शुल्क के दो सेट शामिल) जमा करना आवश्यक है जो प्रस्ताव स्वीकृत होने पर वापस कर दिया जाता है।",
+ "ledgerCanisterId": "लेजर कनस्तर आईडी",
+ "enterLedgerCanisterId": "खाता बही कनस्तर आईडी दर्ज करें",
+ "tokenInfoUrl": "टोकन जानकारी यूआरएल",
+ "enterTokenInfoUrl": "टोकन जानकारी दिखाने वाला यूआरएल दर्ज करें",
+ "howToBuyUrl": "यूआरएल कैसे खरीदें",
+ "enterHowToBuyUrl": "टोकन खरीदने का तरीका बताने वाला यूआरएल दर्ज करें",
+ "transactionUrlFormat": "लेन-देन यूआरएल प्रारूप",
+ "enterTransactionUrlFormat": "जैसे. https://token.com/?index={transaction_index}",
+ "tokenLogo": "प्रतीक चिन्ह"
+ }
+ },
+ "yes": "हाँ",
+ "no": "नहीं",
+ "quoteReply": "उद्धरण उत्तर",
+ "groupNameTooShort": "{level} नाम बहुत छोटा है",
+ "groupNameReserved": "{level} नाम आरक्षित है",
+ "loadingTweetPreview": "ट्वीट पूर्वावलोकन लोड हो रहा है...",
+ "displayWidth": "चौड़ाई प्रदर्शित करें",
+ "apply": "आवेदन करना",
+ "offlineError": "क्षमा करें - ऐसा लगता है कि आप इस समय ऑफ़लाइन हैं",
+ "archiveChat": "चैट संग्रहित करें",
+ "archiveChatFailed": "चैट संग्रहित करने में विफल",
+ "unarchiveChatFailed": "चैट को संग्रहित करने में विफल",
+ "unarchiveChat": "चैट को अन-संग्रहीत करें",
+ "switchDomain": {
+ "title": "कृपया हमारे नए डोमेन पर स्विच करें",
+ "blurb": "आप वर्तमान में [{currentDomain}]({currentDomain}) डोमेन का उपयोग कर रहे हैं।
आपको इस विरासत डोमेन से सूचनाएं प्राप्त नहीं होंगी और यह जल्द ही पूरी तरह से बंद हो जाएगा।
*ओपनचैट का उपयोग जारी रखने और चल रहे प्रदर्शन अनुकूलन से पूरी तरह से लाभ उठाने के लिए कृपया हमारे नए डोमेन पर स्विच करें [https://oc.app](https://oc.app)*
यदि आपने इसे सहेजा है साइट को अपनी होम स्क्रीन पर आपको हटाना/अनइंस्टॉल करना होगा और नए डोमेन से फिर से होम स्क्रीन पर सहेजना होगा।
",
+ "continue": "जारी रखना"
+ },
+ "groupRules": "समूह नियम",
+ "groupRulesEnabled": "{changedBy} ने समूह नियमों को सक्षम किया",
+ "groupRulesDisabled": "{changedBy} ने समूह नियमों को अक्षम कर दिया",
+ "groupRulesTooShort": "समूह के नियम खाली नहीं होने चाहिए",
+ "groupRulesTooLong": "समूह के नियम बहुत लंबे हैं",
+ "defaultMustBePublic": "केवल एक सार्वजनिक चैनल ही डिफ़ॉल्ट हो सकता है",
+ "userId": "उपयोगकर्ता पहचान",
+ "alsoCanisterId": "आपकी कनस्तर आईडी भी",
+ "version": "संस्करण",
+ "websiteVersion": "वेबसाइट का",
+ "advanced": "विकसित",
+ "joined": "में शामिल हो गए",
+ "oneMessageDeleted": "1 संदेश हटा दिया गया",
+ "nMessagesDeleted": "{number} संदेश हटा दिए गए",
+ "undeleteMessage": "हटाना रद्द",
+ "undeletingMessage": "{username} पर {timestamp} द्वारा संदेश को हटाना रद्द करना",
+ "undeleteMessageFailed": "संदेश को हटाना रद्द करने में विफल",
+ "freezeGroup": "फ़्रीज़ समूह",
+ "unfreezeGroup": "समूह को अनफ़्रीज़ करें",
+ "chatFrozen": "इस चैट को फ़्रीज़ कर दिया गया है",
+ "chatFrozenBy": "{frozenBy} द्वारा चैट फ़्रीज़ की गई",
+ "chatUnfrozenBy": "{unfrozenBy} द्वारा चैट को अनफ़्रोज़ किया गया",
+ "failedToFreezeGroup": "समूह को फ़्रीज़ करने में विफल",
+ "failedToUnfreezeGroup": "समूह को अनफ़्रीज़ करने में विफल",
+ "suspendUser": "उपयोगकर्ता को निलंबित करें",
+ "unsuspendUser": "उपयोगकर्ता को निलंबित करें",
+ "accountSuspended": "खाता निलंबित कर दिया गया है",
+ "yourAccountIsSuspended": "तुम्हारा खाता निलंबित है",
+ "failedToSuspendUser": "उपयोगकर्ता को निलंबित करने में विफल",
+ "failedToUnsuspendUser": "उपयोगकर्ता का निलंबन रद्द करने में विफल",
+ "suspendedUser": "निलंबित उपयोगकर्ता",
+ "unsuspendedUser": "निलंबित उपयोगकर्ता",
+ "nUsersJoined": "{number} उपयोगकर्ता {level} में शामिल हुए",
+ "reasonForSuspension": "निलंबन का कारण",
+ "suspend": "निलंबित करें",
+ "deleteMessageAndReport": "हटाएं और रिपोर्ट करें",
+ "reason": "कारण",
+ "expandDeletedMessages": "इस चैट में हटाए गए संदेशों का विस्तार करें",
+ "revealDeletedMessage": "संदेश प्रकट करें",
+ "wallet": "बटुआ",
+ "prizes": {
+ "click": "पुरस्कार जीतने का मौका पाने के लिए नीचे दिए गए बटन पर क्लिक करें।",
+ "live": "पुरस्कार संदेश लाइव! अन्य लोग दावा करने के लिए क्लिक कर सकते हैं 🎁",
+ "prizeFinished": "आपका पुरस्कार संदेश अब समाप्त हो गया है",
+ "claim": "दावा",
+ "claimed": "सफलता!",
+ "finished": "खत्म",
+ "winner": "**{recipient}** जीत गया **{amount}** {token}",
+ "claimFailed": "क्षमा करें आपका दावा असफल रहा! अगली बार किस्मत तुम्हारा साथ देगी।",
+ "allClaimed": "पूर्णतः दावा किया गया",
+ "title": "पुरस्कार",
+ "totalAmount": "कुल पुरस्कार राशि",
+ "numberOfWinners": "विजेताओं की संख्या",
+ "duration": "पुरस्कार कब तक सक्रिय रहेगा?",
+ "minPrize": "न्यूनतम पुरस्कार क्या है?",
+ "maxPrize": "अधिकतम पुरस्कार क्या है?",
+ "distribution": "पुरस्कार कैसे वितरित किये जाने चाहिए?",
+ "equalDistribution": "समान वितरण",
+ "randomDistribution": "यादृच्छिक वितरण",
+ "creatingYourPrizeMessage": "जब तक हम आपका पुरस्कार संदेश तैयार कर रहे हैं, कृपया प्रतीक्षा करें",
+ "whoCanWin": "हिस्सेदारी का दावा कौन कर सकता है?",
+ "onlyDiamond": "केवल डायमंड उपयोगकर्ता",
+ "anyone": "कोई भी उपयोगकर्ता"
+ },
+ "upgrade": {
+ "button": "उन्नत करना",
+ "groupMsg": "अधिकतम 10 सार्वजनिक समूह बनाने और समूह पहुंच को नियंत्रित करने के लिए, आपको डायमंड उपयोगकर्ता होना चाहिए",
+ "gatingMsg": "गेटेड एक्सेस वाले समूह बनाने के लिए, आपको डायमंड उपयोगकर्ता होना चाहिए",
+ "featuresTitle": "डायमंड में अपग्रेड करें",
+ "extend": "हीरा बढ़ाएँ",
+ "extendShort": "बढ़ाना",
+ "forDisplayName": "प्रदर्शन नाम सेट करने के लिए अपग्रेड करें",
+ "displayNames": "नाम प्रदर्शित करें",
+ "membership": "सदस्यता",
+ "benefits": "हीरे के फायदे",
+ "message": "मुझे डायमंड सदस्यता के बारे में बताएं?",
+ "paymentTitle": "भुगतान",
+ "congratulations": "अब आप हमारी डायमंड सुविधाओं का आनंद ले सकते हैं!",
+ "lifetimeMessage": "आपके पास आजीवन डायमंड सदस्यता है।",
+ "feature": "विशेषता",
+ "features": "विशेषताएँ",
+ "free": "मुक्त",
+ "diamond": "डायमंड",
+ "textMessages": "मूल संदेश",
+ "freeTextMessages": "1,000 तक",
+ "diamondTextMessages": "4,000 तक",
+ "maxMessageLength": "{number} वर्णों की अधिकतम संदेश लंबाई",
+ "giphys": "Giphys",
+ "reactions": "प्रतिक्रियाओं",
+ "mediaMessages": "मीडिया संदेश",
+ "freeMediaMessages": "1एमबी/5एमबी",
+ "diamondMediaMessages": "5एमबी/50एमबी",
+ "mediaLimits": "छवियाँ, फ़ाइलें और ऑडियो क्लिप {image} तक सीमित हैं, वीडियो {video} तक सीमित हैं",
+ "storage": "भंडारण",
+ "freeStorage": "100एमबी रोलिंग",
+ "diamondStorage": "1 जीबी रोलिंग",
+ "freeStorageLimit": "100एमबी निःशुल्क स्टोरेज जिसके बाद सबसे पुरानी फ़ाइलें स्वचालित रूप से हटा दी जाएंगी। फ़ाइलें 90 दिनों के बाद समाप्त हो जाती हैं.",
+ "diamondStorageLimit": "1 जीबी मुफ्त स्टोरेज जिसके बाद सबसे पुरानी फ़ाइलें स्वचालित रूप से हटा दी जाएंगी। भंडारण सीमा के भीतर डेटा कभी समाप्त नहीं होता है।",
+ "directChats": "सीधी बातचीत",
+ "privateGroups": "निजी समूह",
+ "freePrivateGroups": "5",
+ "diamondPrivateGroups": "25",
+ "publicGroups": "सार्वजनिक समूह",
+ "diamondPublicGroups": "10",
+ "gatedGroups": "गेटेड समूह",
+ "translations": "अनुवाद",
+ "polls": "पोल बनाएं",
+ "crypto": "क्रिप्टो भेजें",
+ "customThemes": "कस्टम थीम",
+ "comingSoon": "जल्द ही",
+ "diamondBadge": "हीरे का बिल्ला",
+ "airdrops": "एयरड्रॉप और पुरस्कार",
+ "eligible": "योग्य",
+ "airdropsInfo": "डायमंड उपयोगकर्ता स्वचालित रूप से किसी भी एयरड्रॉप या उपहार के लिए पात्र होंगे!",
+ "nftProfile": "एनएफटी प्रोफ़ाइल चित्र",
+ "paymentSmallprint": "यदि आप अपने भुगतान को स्वचालित रूप से नवीनीकृत करने का विकल्प चुनते हैं, तो आपको यह सुनिश्चित करना होगा कि आपके ओपनचैट आईसीपी खाते में पर्याप्त धनराशि है। ओपनचैट बॉट आपको एक दोस्ताना अनुस्मारक भेजेगा। यदि आप स्वत: नवीनीकरण नहीं करना चुनते हैं या हम उचित भुगतान नहीं ले सकते हैं, तो आप तुरंत मुफ्त योजना पर वापस लौट आएंगे और आपके द्वारा पोस्ट की गई फ़ाइलें या मीडिया खो सकते हैं।",
+ "autorenew": "ऑटो नवीनीकृत",
+ "oneMonth": "एक माह",
+ "threeMonths": "तीन महीने",
+ "oneYear": "एक वर्ष",
+ "lifetime": "जीवनभर",
+ "insufficientFunds": "कृपया सुनिश्चित करें कि आपके {token} खाते में कम से कम {amount} शामिल है",
+ "confirm": "पुष्टि करना",
+ "allSupportedTokens": "सभी समर्थित टोकन",
+ "chatAndIcp": "आईसीपी और चैट",
+ "paymentFailed": "डायमंड सदस्यता के लिए भुगतान विफल रहा",
+ "upgradeSuccess": "आपका भुगतान सफलतापूर्वक कर दिया गया है",
+ "expiryMessage": "आपकी डायमंड सदस्यता समाप्त हो रही है {relative}",
+ "extendTo": " तक विस्तार",
+ "cannotExtend": "आप अपनी सदस्यता समाप्ति के तीन महीने के भीतर ही बढ़ा सकते हैं",
+ "reminders": "अनुस्मारक",
+ "notifications": "सूचनाएं",
+ "freeNotifications": "आईओएस, एंड्रॉइड और डेस्कटॉप",
+ "diamondNotifications": "आईओएस, एंड्रॉइड और डेस्कटॉप",
+ "createCommunities": "समुदाय बनाएं"
+ },
+ "promoteTo": "{role} पर प्रचार करें",
+ "demoteTo": "{role} पर अवनत करें",
+ "promoteFailed": "{role} में प्रचार करने में असमर्थ",
+ "demoteFailed": "{role} को अवनत करने में असमर्थ",
+ "ownerCantLeave": "{level} छोड़ने से पहले आपको एक अन्य मालिक को जोड़ना होगा",
+ "participant": "सदस्य",
+ "unauthorizedToCreatePublicGroup": "आप सार्वजनिक समूह बनाने के लिए अधिकृत नहीं हैं",
+ "reminders": {
+ "optional": "वैकल्पिक",
+ "menu": "मुझे याद दिलाएं",
+ "title": "एक अनुस्मारक सेट करें",
+ "note": "एक नोट जोड़े",
+ "notePlaceholder": "मुझे याद दिलाएं...",
+ "twentyMinutes": "20 मिनट में",
+ "oneHour": "1 घंटे में",
+ "threeHours": "3 घंटे में",
+ "tomorrow": "कल",
+ "nextWeek": "अगले सप्ताह",
+ "create": "बनाएं",
+ "remindAt": "मैं आपको {datetime} पर इस संदेश के बारे में याद दिलाऊंगा",
+ "youAsked": "आपने मुझसे इस संदेश के बारे में याद दिलाने के लिए कहा था।",
+ "success": "आपका रिमाइंडर सफलतापूर्वक सेट कर दिया गया है",
+ "failure": "क्षमा करें हम आपका अनुस्मारक सेट करने में असमर्थ रहे",
+ "cancel": "अनुस्मारक रद्द करें",
+ "cancelSuccess": "आपका अनुस्मारक सफलतापूर्वक रद्द कर दिया गया है",
+ "cancelFailure": "क्षमा करें हम आपका अनुस्मारक रद्द करने में असमर्थ रहे"
+ },
+ "halloffame": {
+ "menu": "शीर्ष सन्दर्भकर्ता",
+ "allTime": "पूरे समय",
+ "thisMonth": "इस महीने",
+ "start": "शुरू",
+ "username": "उपयोगकर्ता नाम",
+ "value": "कीमत",
+ "diamonds": "हीरे",
+ "users": "उपयोगकर्ताओं",
+ "gameover": "खेल खत्म!"
+ },
+ "report": {
+ "menu": "प्रतिवेदन",
+ "title": "रिपोर्ट संदेश",
+ "reason": "रिपोर्ट का कारण",
+ "pleaseSelect": "कृपया कोई कारण चुनें",
+ "optional": "वैकल्पिक",
+ "note": "एक नोट जोड़े",
+ "notePlaceholder": "हमें बताएं कि आप इस सामग्री की रिपोर्ट क्यों कर रहे हैं",
+ "advice": "यदि आपको लगता है कि यह संदेश इस समूह के नियमों का उल्लंघन करता है, तो कृपया सबसे पहले समूह के मालिकों और व्यवस्थापकों से संपर्क करें। प्लेटफ़ॉर्म मॉडरेशन के लिए किसी संदेश की रिपोर्ट केवल तभी करें जब आपको लगे कि यह [प्लेटफ़ॉर्म नियमों]({rules}) का उल्लंघन करता है अन्यथा यह मॉडरेटर का समय बर्बाद करता है। लगातार गलत रिपोर्टिंग के कारण आपका खाता निलंबित किया जा सकता है।",
+ "threat": "मैसेज धमकी भरा है",
+ "child": "संदेश में बाल यौन सामग्री शामिल है",
+ "nonConsensual": "संदेश में गैर-सहमति वाली यौन सामग्री शामिल है",
+ "selfHarm": "संदेश में आत्म-नुकसान शामिल है या उसे बढ़ावा मिलता है",
+ "violence": "संदेश में अत्यधिक हिंसा है",
+ "scam": "संदेश वित्तीय घोटाले को बढ़ावा देता है",
+ "other": "कोई और वजह",
+ "success": "संदेश की सूचना प्लेटफ़ॉर्म मॉडरेटर को दे दी गई है",
+ "failure": "क्षमा करें, हम प्लेटफ़ॉर्म मॉडरेटर को इस संदेश की रिपोर्ट करने में असमर्थ रहे",
+ "deleteMessage": "रिपोर्ट किया गया संदेश हटाएँ",
+ "messageReport": "निम्नलिखित कारण से @{username} द्वारा {timestamp} पर रिपोर्ट किया गया: **{reason}**",
+ "showing": "{count} रिपोर्ट में से नवीनतम {total} दिखाया जा रहा है"
+ },
+ "communities": {
+ "explore": "समुदायों का अन्वेषण करें",
+ "exploreMobile": "अन्वेषण करना",
+ "search": "समुदाय खोजें",
+ "searchUserGroups": "उपयोगकर्ता समूह खोजें...",
+ "create": "एक समुदाय बनाएं",
+ "edit": "समुदाय संपादित करें",
+ "members": "सदस्यों",
+ "userGroups": "यूसर समूह",
+ "userGroupName": "उपयोगकर्ता समूह का नाम",
+ "noSpaces": "कोई रिक्त स्थान की अनुमति दी",
+ "noUserGroups": "कोई उपयोगकर्ता समूह नहीं मिला",
+ "namedUserGroupMembers": "**{name}** समूह के सदस्य",
+ "userGroupMembers": "उपयोगकर्ता समूह के सदस्य",
+ "enterUserGroupName": "उपयोगकर्ता समूह का नाम दर्ज करें",
+ "searchGroups": "सामुदायिक चैनल खोजें",
+ "hideLeftNav": "समुदाय मेनू को संक्षिप्त करें",
+ "mainMenu": "मुख्य मेन्यू",
+ "autoExpand": "समुदाय मेनू का स्वतः विस्तार करें",
+ "back": "पीछे",
+ "next": "अगला",
+ "delete": "समुदाय हटाएँ",
+ "deleteMessage": "क्या आप सचमुच इस समुदाय को हटाना चाहते हैं?",
+ "leave": "समुदाय छोड़ें",
+ "leaveMessage": "क्या आप सचमुच इस समुदाय को छोड़ना चाहते हैं?",
+ "tags": {
+ "all": "सभी",
+ "gaming": "जुआ",
+ "crypto": "क्रिप्टो",
+ "metaverse": "मेटावर्स",
+ "sport": "खेल",
+ "music": "संगीत",
+ "photography": "फोटोग्राफी"
+ },
+ "details": "विवरण",
+ "visibility": "दृश्यता",
+ "rules": "नियम",
+ "invite": "आमंत्रित करना",
+ "imageLabel": "बैनर/अवतार छवि",
+ "name": "नाम",
+ "namePlaceholder": "समुदाय का नाम दर्ज करें",
+ "description": "विवरण",
+ "descriptionPlaceholder": "हमें बताएं कि आपका समुदाय किस बारे में है",
+ "join": "जोड़ना",
+ "joinCommunity": "समुदाय में शामिल हों",
+ "preview": "पूर्व दर्शन",
+ "browseChannels": "चैनल ब्राउज़ करें",
+ "createChannel": "नया चैनल",
+ "convert": "समुदाय में परिवर्तित करें",
+ "convertButton": "बदलना",
+ "channels": "चैनल",
+ "otherChannels": "अन्य सार्वजनिक चैनल",
+ "channelPlaceholder": "एक चैनल नाम दर्ज करें",
+ "channelsInfo": "आपको एक या अधिक सार्वजनिक चैनल बनाने होंगे. आपके समुदाय में शामिल होने वाला कोई भी उपयोगकर्ता स्वचालित रूप से इन चैनलों में नामांकित हो जाएगा। आप इसे बाद में कभी भी बदल सकते हैं.",
+ "updateChannelPlaceholder": "चैनल का नाम अपडेट करें",
+ "general": "सामान्य",
+ "mustHaveOneChannel": "आपको कम से कम एक सार्वजनिक चैनल बनाना होगा",
+ "mustHaveUniqueChannels": "आपके पास डुप्लिकेट चैनल नाम नहीं हो सकते",
+ "noBlankChannels": "सभी चैनलों का एक नाम होना चाहिए",
+ "noInvalidChannels": "सभी चैनल नाम {min} और {max} वर्णों के बीच होने चाहिए",
+ "created": "आपका समुदाय सफलतापूर्वक बनाया गया है",
+ "saved": "आपका समुदाय सफलतापूर्वक अपडेट कर दिया गया है",
+ "converted": "आपका समूह एक समुदाय में परिवर्तित हो गया है.",
+ "pleaseWait": "कृपया प्रतीक्षा करें - इसमें थोड़ा समय लग सकता है",
+ "goto": "समुदाय पर जाएँ",
+ "usersInvited": "उपयोगकर्ताओं को आपके समुदाय में आमंत्रित किया गया है",
+ "errors": {
+ "name_taken": "क्षमा करें - इस नाम का एक सार्वजनिक समुदाय या समूह पहले से ही मौजूद है",
+ "failure": "क्षमा करें हम आपका समुदाय बनाने में असमर्थ रहे",
+ "saveFailed": "क्षमा करें हम आपके अपडेट सहेजने में असमर्थ रहे",
+ "inviteUsers": "क्षमा करें हम इन उपयोगकर्ताओं को आमंत्रित करने में असमर्थ रहे",
+ "joinFailed": "क्षमा करें हम आपको इस समुदाय में शामिल नहीं कर सके",
+ "deleteFailed": "क्षमा करें हम इस समुदाय को हटाने में असमर्थ रहे",
+ "importFailed": "क्षमा करें हम आपका समूह आयात करने में असमर्थ रहे",
+ "leaveFailed": "क्षमा करें हम आपको इस समुदाय से निकालने में असमर्थ रहे",
+ "convertFailed": "क्षमा करें, लेकिन हम आपके समूहों को एक समुदाय में परिवर्तित करने में असमर्थ रहे",
+ "deleteUserGroupFailed": "क्षमा करें हम उपयोगकर्ता समूह को हटाने में असमर्थ रहे",
+ "updateGroupFailed": "क्षमा करें हम उपयोगकर्ता समूह को अद्यतन करने में असमर्थ रहे",
+ "createGroupFailed": "क्षमा करें हम उपयोगकर्ता समूह बनाने में असमर्थ रहे",
+ "userGroupNameTaken": "क्षमा करें उपयोगकर्ता समूह का नाम पहले ही ले लिया गया है"
+ },
+ "memberCount": "सदस्य",
+ "channelCount": "चैनल",
+ "directChats": "सीधी बातचीत",
+ "groupChats": "समूह चैट",
+ "favourites": "पसंदीदा",
+ "addToFavourites": "पसंदीदा करने के लिए जोड़ें",
+ "removeFromFavourites": "पसंदीदा से निकालें",
+ "convertInfo": "हम आपके समूह को एक समुदाय में परिवर्तित करने का ध्यान रख सकते हैं।\n\n यह एक अपरिवर्तनीय प्रक्रिया है और निम्नलिखित कार्य करेगी:\n\n*मौजूदा समूह को फ्रीज करें\n* समूह के समान नाम से एक नया समुदाय बनाएं\n* समूह के समान नाम से समुदाय में एक सार्वजनिक चैनल जोड़ें\n* समूह के सभी सदस्यों को समुदाय के सदस्यों के रूप में जोड़ें\n* समूह से संपूर्ण संदेश इतिहास को चैनल में कॉपी करें\n*मौजूदा समूह को हटा दें\n* समूह के सभी सदस्यों को सूचित करें कि इसे एक समुदाय में परिवर्तित कर दिया गया है\n\nसमूह के आकार के आधार पर इस प्रक्रिया में कुछ मिनट लग सकते हैं इसलिए कृपया धैर्य रखें।",
+ "primaryLanguage": "प्राथमिक भाषा",
+ "filters": "सामुदायिक फ़िल्टर",
+ "flags": "झंडे",
+ "offensive": "अप्रिय",
+ "adult": "वयस्क",
+ "loadMore": "और लोड करें...",
+ "default": "गलती करना",
+ "defaultInfo": "इस समुदाय में शामिल होने वाले उपयोगकर्ता स्वचालित रूप से सभी सार्वजनिक चैनलों में जुड़ जाएंगे",
+ "import": "समुदाय में आयात करें",
+ "importBtn": "आयात",
+ "noOwned": "आप किसी भी समुदाय के स्वामी नहीं हैं",
+ "chooseCommunity": "एक समुदाय चुनें",
+ "saveChanges": "परिवर्तनों को सुरक्षित करें",
+ "publicChannels": "सार्वजनिक चैनल",
+ "underReview": "समीक्षा के अंतर्गत",
+ "communityLabel": "समुदाय",
+ "confirmDeleteUserGroup": "क्या आप वाकई इस उपयोगकर्ता समूह को हटाना चाहते हैं?",
+ "noMatch": "कोई मेल खाता समुदाय नहीं मिला",
+ "refineSearch": "अपनी खोज को परिष्कृत करने का प्रयास करें"
+ },
+ "unableToSaveUserProfile": "उपयोगकर्ता प्रोफ़ाइल सहेजने में असमर्थ",
+ "noAccess": "तक पहुँच नहीं",
+ "noAccessText": "क्षमा करें, लेकिन आपके पास उस समुदाय, समूह या चैनल तक पहुंच नहीं है जिस तक आप पहुंचने का प्रयास कर रहे हैं।",
+ "restrictedContent": "प्रतिबंधित सामग्री",
+ "restrictedContentInfo": "चुनें कि क्या आप उन समूहों और समुदायों को देखना चाहेंगे जिन पर निम्नलिखित मॉडरेशन फ़्लैग लागू हैं।",
+ "expand": "बढ़ाना",
+ "collapse": "गिर जाना",
+ "showFilters": "फ़िल्टर दिखाएँ",
+ "stopRecording": "रिकॉर्डिंग बंद करें",
+ "recordAudioMessage": "ऑडियो संदेश रिकॉर्ड करें",
+ "chatMenu": "चैट मेनू",
+ "attachFile": "छवि/वीडियो/फ़ाइल संलग्न करें",
+ "pickEmoji": "इमोजी चुनें",
+ "sendMessage": "मेसेज भेजें",
+ "theme": {
+ "preferredLightTheme": "पसंदीदा प्रकाश विषय",
+ "preferredDarkTheme": "पसंदीदा डार्क थीम",
+ "dark": "अँधेरा",
+ "light": "रोशनी",
+ "system": "प्रणाली",
+ "title": "विषय"
+ },
+ "tip": {
+ "title": "बख्शीश",
+ "menu": "बख्शीश",
+ "failure": "क्षमा करें हम आपकी टिप जोड़ने में असमर्थ रहे",
+ "noExchangeRate": "हमारे पास {token} के लिए कोई विनिमय दर कॉन्फ़िगर नहीं है",
+ "plusFee": "+ {fee} {token} शुल्क",
+ "advice": "टिप छोड़ने के लिए जितनी बार चाहें उतनी बार टैप करें",
+ "showCustom": "कस्टम टिप राशि"
+ },
+ "followThread": "इस धागे का पालन करें",
+ "unfollowThread": "इस थ्रेड को अनफ़ॉलो करें",
+ "followThreadFailed": "फ़ॉलो थ्रेड विफल रहा",
+ "unfollowThreadFailed": "अनफ़ॉलो थ्रेड विफल रहा",
+ "minimumAmount": "न्यूनतम: {amount} {symbol}",
+ "loginToOpenChat": "ओपनचैट में लॉग इन करें",
+ "tapToLogin": "अतिथि मोड - लॉग इन करने के लिए यहां टैप करें",
+ "loginProviderChanged": "ऐसा लगता है कि आपने पहले {previous} प्रदाता के साथ लॉग इन किया है। कृपया दोबारा जांचें कि क्या आप इस बार {next} का उपयोग करना चाहेंगे?",
+ "guestUser": "अतिथि उपयेागकर्ता",
+ "showAuthProviders": "विकल्प दिखाएँ",
+ "hideAuthProviders": "विकल्प छिपाएँ",
+ "disappearingMessages": {
+ "label": "गायब हो रहे संदेश",
+ "hours": "घंटे)",
+ "minutes": "मिनट)",
+ "days": "दिन",
+ "summary": "{duration} के बाद संदेश गायब हो जाएंगे",
+ "timeUpdatedBy": "{changedBy} ने गायब होने वाले संदेश का समय {duration} पर सेट किया",
+ "disabledBy": "{changedBy} ने गायब होने वाले संदेशों को अक्षम कर दिया",
+ "durationMinutes": "{duration} मिनट",
+ "oneMinute": "1 मिनट",
+ "timeUpdated": "संदेश के गायब होने का समय {duration} पर सेट किया गया",
+ "disabled": "गायब होने वाले संदेश अक्षम"
+ },
+ "offlineMessage": "ऑफलाइन",
+ "messageBlocked": "संदेश छुपाया गया",
+ "removePreviewQuestion": "पूर्वावलोकन हटाएँ?",
+ "showPreview": "पूर्वावलोकन दिखाएं",
+ "excessiveLinksNote": "5 से अधिक लिंक वाले संदेशों के लिए लिंक पूर्वावलोकन छिपे हुए हैं।"
+}
\ No newline at end of file
diff --git a/frontend/app/src/i18n/i18n.ts b/frontend/app/src/i18n/i18n.ts
index 09563780eb..9d1560c5fa 100644
--- a/frontend/app/src/i18n/i18n.ts
+++ b/frontend/app/src/i18n/i18n.ts
@@ -13,6 +13,7 @@ export const translationCodes: Record = {
ru: "ru",
vi: "vi",
iw: "iw",
+ hi: "hi",
};
export const supportedLanguages = [
@@ -56,6 +57,10 @@ export const supportedLanguages = [
name: "עִברִית",
code: "iw",
},
+ {
+ name: "हिंदी",
+ code: "hi",
+ },
];
export const supportedLanguagesByCode = supportedLanguages.reduce(
@@ -77,6 +82,7 @@ register("jp", () => import("./jp.json"));
register("ru", () => import("./ru.json"));
register("vi", () => import("./vi.json"));
register("iw", () => import("./iw.json"));
+register("hi", () => import("./hi.json"));
export function getStoredLocale(): string {
const fromStorage = localStorage.getItem(configKeys.locale);