d1ec7367a0
Root cause: when auth.me() failed during initial navigation, the catch block
called navigate('/login') without clearing _pendingLoginRedirect. The outer
finally then fired a second concurrent navigate('/login'), which held
isNavigating=true while running. If the user submitted the login form (or
iCloud Keychain autofilled credentials) before the second navigation
completed, navigate('/', user) was silently blocked by the isNavigating guard —
login appeared to succeed but the app never advanced to the dashboard.
Fix: clear _pendingLoginRedirect in the catch block so the finally handler
does not spawn the duplicate navigation.
Also adds a GET /api/v1/version endpoint (no auth required) and shows the
version on the login page, so users can verify their PWA has received the
latest cached JS.
Resolves #68
Co-authored-by: Ulas Kalayci <ulas.kalayci@googlemail.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
609 lines
32 KiB
JSON
609 lines
32 KiB
JSON
{
|
|
"common": {
|
|
"save": "सहेजें",
|
|
"cancel": "रद्द करें",
|
|
"delete": "हटाएं",
|
|
"edit": "संपादित करें",
|
|
"close": "बंद करें",
|
|
"create": "बनाएं",
|
|
"add": "जोड़ें",
|
|
"back": "वापस",
|
|
"next": "अगला",
|
|
"loading": "लोड हो रहा है…",
|
|
"saving": "सहेजा जा रहा है…",
|
|
"required": "यह फ़ील्ड आवश्यक है।",
|
|
"error": "त्रुटि",
|
|
"allFieldsRequired": "कृपया सभी फ़ील्ड भरें।",
|
|
"today": "आज",
|
|
"tomorrow": "कल",
|
|
"skipToContent": "सामग्री पर जाएं",
|
|
"reload": "फिर से लोड करें",
|
|
"errorOccurred": "कुछ गलत हो गया।",
|
|
"unexpectedError": "एक अप्रत्याशित त्रुटि हुई।",
|
|
"errorGeneric": "एक त्रुटि हुई।",
|
|
"updateAvailable": "अपडेट उपलब्ध है - नवीनतम संस्करण के लिए पृष्ठ पुनः लोड करें।",
|
|
"titleRequired": "शीर्षक आवश्यक है",
|
|
"nameRequired": "नाम आवश्यक है",
|
|
"contentRequired": "सामग्री आवश्यक है",
|
|
"all": "सभी",
|
|
"unknownError": "अज्ञात त्रुटि",
|
|
"confirm": "पुष्टि करें",
|
|
"undo": "पूर्ववत करें"
|
|
},
|
|
"nav": {
|
|
"dashboard": "डैशबोर्ड",
|
|
"tasks": "कार्य",
|
|
"calendar": "कैलेंडर",
|
|
"meals": "भोजन",
|
|
"shopping": "खरीदारी",
|
|
"notes": "नोट्स",
|
|
"contacts": "संपर्क",
|
|
"budget": "बजट",
|
|
"settings": "सेटिंग्स",
|
|
"main": "मुख्य नेविगेशन",
|
|
"navigation": "नेविगेशन",
|
|
"quickActions": "त्वरित क्रियाएं"
|
|
},
|
|
"dashboard": {
|
|
"title": "डैशबोर्ड",
|
|
"greetingMorning": "सुप्रभात, {{name}}",
|
|
"greetingDay": "नमस्ते, {{name}}",
|
|
"greetingEvening": "शुभ संध्या, {{name}}",
|
|
"allDone": "सब हो गया",
|
|
"noEvents": "कोई कार्यक्रम नहीं",
|
|
"noPinnedNotes": "कोई पिन किया हुआ नोट नहीं",
|
|
"todayMeals": "आज का भोजन",
|
|
"allLink": "सभी",
|
|
"weekLink": "इस सप्ताह",
|
|
"urgentTasksChip": "{{count}} अत्यावश्यक कार्य",
|
|
"urgentTasksChipPlural": "{{count}} अत्यावश्यक कार्य",
|
|
"eventsChip": "आज {{count}} कार्यक्रम",
|
|
"eventsChipPlural": "आज {{count}} कार्यक्रम",
|
|
"todayMealChip": "आज: {{title}}",
|
|
"loadError": "डैशबोर्ड लोड नहीं हो सका।",
|
|
"weatherRefresh": "मौसम अपडेट करें",
|
|
"weatherRefreshTitle": "अपडेट",
|
|
"weatherUpdated": "मौसम अपडेट हो गया",
|
|
"weatherFeelsLike": "महसूस होता है {{temp}}° · {{humidity}}% · हवा {{wind}} km/h",
|
|
"fabTaskLabel": "कार्य जोड़ें",
|
|
"fabCalendarLabel": "कार्यक्रम जोड़ें",
|
|
"fabShoppingLabel": "खरीदारी जोड़ें",
|
|
"fabNoteLabel": "नोट जोड़ें",
|
|
"fabTask": "कार्य",
|
|
"fabCalendar": "कार्यक्रम",
|
|
"fabShopping": "खरीदारी",
|
|
"fabNote": "नोट",
|
|
"overdue": "अतिदेय",
|
|
"dueSoon": "आज देय है",
|
|
"dueTomorrow": "कल देय है",
|
|
"allDay": "पूरे दिन",
|
|
"shoppingMore": "+{{count}} और",
|
|
"weather": "मौसम",
|
|
"customize": "अनुकूलित करें",
|
|
"customizeTitle": "विजेट अनुकूलित करें",
|
|
"customizeReset": "डिफ़ॉल्ट",
|
|
"customizeSaved": "डैशबोर्ड सहेजा गया",
|
|
"customizeMoveUp": "ऊपर ले जाएं",
|
|
"customizeMoveDown": "नीचे ले जाएं"
|
|
},
|
|
"tasks": {
|
|
"title": "कार्य",
|
|
"newTask": "नया कार्य",
|
|
"editTask": "कार्य संपादित करें",
|
|
"emptyTitle": "कोई कार्य नहीं - सब हो गया?",
|
|
"emptyDescription": "+ बटन से नए कार्य बनाएं।",
|
|
"titleLabel": "शीर्षक *",
|
|
"titlePlaceholder": "क्या करना है?",
|
|
"descriptionLabel": "नोट",
|
|
"descriptionPlaceholder": "वैकल्पिक विवरण…",
|
|
"priorityLabel": "प्राथमिकता",
|
|
"categoryLabel": "श्रेणी",
|
|
"dueDateLabel": "नियत तारीख",
|
|
"dueTimeLabel": "समय",
|
|
"assignedLabel": "सौंपा गया",
|
|
"assignedNobody": "- कोई नहीं -",
|
|
"statusLabel": "स्थिति",
|
|
"priorityUrgent": "अत्यावश्यक",
|
|
"priorityHigh": "उच्च",
|
|
"priorityMedium": "मध्यम",
|
|
"priorityLow": "निम्न",
|
|
"priorityNone": "कोई नहीं",
|
|
"statusOpen": "खुला",
|
|
"statusInProgress": "प्रगति में",
|
|
"statusDone": "पूर्ण",
|
|
"categoryHousehold": "घर",
|
|
"categorySchool": "स्कूल",
|
|
"categoryShopping": "खरीदारी",
|
|
"categoryRepair": "मरम्मत",
|
|
"categoryHealth": "स्वास्थ्य",
|
|
"categoryFinance": "वित्त",
|
|
"categoryLeisure": "मनोरंजन",
|
|
"categoryMisc": "विविध",
|
|
"overdue": "अतिदेय",
|
|
"overdueDay": "{{count}} दिन अतिदेय",
|
|
"dueToday": "आज देय है",
|
|
"dueTomorrow": "कल देय है",
|
|
"groupOverdue": "अतिदेय",
|
|
"groupToday": "आज",
|
|
"groupThisWeek": "इस सप्ताह",
|
|
"groupNextWeek": "अगले सप्ताह",
|
|
"groupLater": "बाद में",
|
|
"groupNoDate": "कोई तारीख नहीं",
|
|
"markDone": "{{title}} को पूर्ण के रूप में चिह्नित करें",
|
|
"markOpen": "{{title}} को अपूर्ण के रूप में चिह्नित करें",
|
|
"editButton": "कार्य संपादित करें",
|
|
"swipeOpen": "खोलें",
|
|
"swipeDone": "पूर्ण",
|
|
"swipeEdit": "संपादित करें",
|
|
"subtaskAdd": "+ उपकार्य जोड़ें",
|
|
"subtaskToggle": "उपकार्य दिखाएं",
|
|
"subtaskMarkDone": "{{title}} को पूर्ण के रूप में चिह्नित करें",
|
|
"deleteConfirm": "कार्य और सभी उपकार्य हटाएं?",
|
|
"savedToast": "कार्य सहेजा गया।",
|
|
"createdToast": "कार्य बनाया गया।",
|
|
"deletedToast": "कार्य हटाया गया।",
|
|
"loadError": "कार्य लोड नहीं हो सका।",
|
|
"subtaskPrompt": "उपकार्य:",
|
|
"kanbanOpen": "खुला",
|
|
"kanbanInProgress": "प्रगति में",
|
|
"kanbanDone": "पूर्ण",
|
|
"kanbanMoveToInProgress": "प्रगति में ले जाएं",
|
|
"kanbanMoveToDone": "पूर्ण के रूप में चिह्नित करें",
|
|
"kanbanMoveToOpen": "फिर से खोलें",
|
|
"recurring": "आवर्ती",
|
|
"listView": "सूची दृश्य",
|
|
"kanbanView": "कानबान दृश्य"
|
|
},
|
|
"shopping": {
|
|
"title": "खरीदारी",
|
|
"noLists": "कोई सूची नहीं",
|
|
"noListsDescription": "+ बटन से सूची बनाएं।",
|
|
"emptyList": "सूची खाली है",
|
|
"emptyListDescription": "ऊपर के इनपुट से आइटम जोड़ें।",
|
|
"newListPrompt": "नई सूची का नाम:",
|
|
"newListButton": "नई सूची बनाएं",
|
|
"renameListPrompt": "नया सूची नाम:",
|
|
"deleteListConfirm": "सूची \"{{name}}\" और सभी आइटम हटाएं?",
|
|
"deletedListToast": "सूची हटा दी गई।",
|
|
"itemDeletedToast": "\"{{name}}\" हटाया गया।",
|
|
"itemsRemovedToast": "{{count}} आइटम हटाए गए।",
|
|
"clearChecked": "चेक किए हटाएं ({{count}})",
|
|
"itemNamePlaceholder": "आइटम जोड़ें…",
|
|
"itemQtyPlaceholder": "मात्रा",
|
|
"itemNameLabel": "आइटम नाम",
|
|
"itemQtyLabel": "मात्रा",
|
|
"categoryLabel": "श्रेणी",
|
|
"addItemLabel": "आइटम जोड़ें",
|
|
"renameListLabel": "सूची का नाम बदलें",
|
|
"deleteListLabel": "सूची हटाएं",
|
|
"swipeBack": "वापस",
|
|
"swipeCheck": "चेक करें",
|
|
"swipeDelete": "हटाएं",
|
|
"markDoneLabel": "{{name}} चेक करें",
|
|
"markUndoneLabel": "{{name}} अनचेक करें",
|
|
"deleteItemLabel": "{{name}} हटाएं",
|
|
"listsLoadError": "सूचियां लोड नहीं हो सकीं।",
|
|
"itemsLoadError": "आइटम लोड नहीं हो सके।",
|
|
"catFruitVeg": "फल और सब्जियां",
|
|
"catBakery": "बेकरी",
|
|
"catDairy": "डेयरी उत्पाद",
|
|
"catMeatFish": "मांस और मछली",
|
|
"catFrozen": "जमा हुआ खाना",
|
|
"catDrinks": "पेय",
|
|
"catHousehold": "घरेलू",
|
|
"catDrugstore": "दवाखाना",
|
|
"catMisc": "विविध"
|
|
},
|
|
"meals": {
|
|
"title": "भोजन योजना",
|
|
"noMealPlanned": "कोई भोजन नियोजित नहीं",
|
|
"addMeal": "{{type}} जोड़ें",
|
|
"editMeal": "भोजन संपादित करें",
|
|
"addMealTitle": "भोजन जोड़ें",
|
|
"deleteMeal": "भोजन हटाएं",
|
|
"transferToShoppingList": "सामग्री खरीदारी सूची में भेजें",
|
|
"today": "आज",
|
|
"prevWeek": "पिछला सप्ताह",
|
|
"nextWeek": "अगला सप्ताह",
|
|
"loadError": "भोजन योजना लोड नहीं हो सकी।",
|
|
"typeBreakfast": "नाश्ता",
|
|
"typeLunch": "दोपहर का खाना",
|
|
"typeDinner": "रात का खाना",
|
|
"typeSnack": "नाश्ता",
|
|
"dayMo": "सो",
|
|
"dayDi": "मं",
|
|
"dayMi": "बु",
|
|
"dayDo": "गु",
|
|
"dayFr": "शु",
|
|
"daySa": "श",
|
|
"daySo": "र",
|
|
"dateLabel": "तारीख",
|
|
"mealTypeLabel": "भोजन प्रकार",
|
|
"titleLabel": "शीर्षक *",
|
|
"titlePlaceholder": "उदा.: दाल चावल",
|
|
"notesLabel": "नोट्स",
|
|
"notesPlaceholder": "वैकल्पिक…",
|
|
"ingredientsLabel": "सामग्री",
|
|
"addIngredient": "सामग्री जोड़ें",
|
|
"ingredientNamePlaceholder": "सामग्री",
|
|
"ingredientQtyPlaceholder": "मात्रा",
|
|
"ingredientCategoryLabel": "श्रेणी",
|
|
"ingredientCategoryDefault": "विविध",
|
|
"removeIngredient": "सामग्री हटाएं",
|
|
"transferLabel": "सामग्री खरीदारी सूची में जोड़ें",
|
|
"transferNow": "अभी जोड़ें",
|
|
"noShoppingLists": "कोई खरीदारी सूची नहीं",
|
|
"transferSuccess": "{{count}} सामग्री जोड़ी गई",
|
|
"transferSuccessPlural": "{{count}} सामग्रियां जोड़ी गईं",
|
|
"transferAlreadyDone": "सभी सामग्रियां पहले से जोड़ी गई हैं",
|
|
"ingredientCount": "{{count}} सामग्री",
|
|
"ingredientCountPlural": "{{count}} सामग्रियां",
|
|
"titleRequired": "शीर्षक आवश्यक है",
|
|
"loadingIndicator": "लोड हो रहा है…",
|
|
"recipeUrlLabel": "रेसिपी लिंक (वैकल्पिक)",
|
|
"recipeUrlPlaceholder": "https://…",
|
|
"openRecipe": "रेसिपी खोलें"
|
|
},
|
|
"calendar": {
|
|
"title": "कैलेंडर",
|
|
"newEvent": "नया कार्यक्रम",
|
|
"editEvent": "कार्यक्रम संपादित करें",
|
|
"addEvent": "कार्यक्रम जोड़ें",
|
|
"deleteEvent": "कार्यक्रम हटाएं",
|
|
"noEvents": "चुनी गई अवधि में कोई कार्यक्रम नहीं।",
|
|
"today": "आज",
|
|
"back": "वापस",
|
|
"forward": "आगे",
|
|
"viewMonth": "माह",
|
|
"viewWeek": "सप्ताह",
|
|
"viewDay": "दिन",
|
|
"viewAgenda": "एजेंडा",
|
|
"allDay": "पूरे दिन",
|
|
"allDayShort": "पूरा दिन",
|
|
"moreEvents": "+{{count}} और",
|
|
"weekNumberLabel": "सप्ताह {{week}} · {{month}} {{year}}",
|
|
"agendaFrom": "{{date}} से",
|
|
"titleLabel": "शीर्षक *",
|
|
"titlePlaceholder": "उदा.: डॉक्टर के पास",
|
|
"allDayToggle": "पूरे दिन",
|
|
"startDateLabel": "शुरुआती तारीख",
|
|
"startTimeLabel": "शुरुआती समय",
|
|
"endDateLabel": "अंतिम तारीख",
|
|
"endTimeLabel": "अंतिम समय",
|
|
"fromLabel": "से",
|
|
"toLabel": "तक",
|
|
"locationLabel": "स्थान",
|
|
"locationPlaceholder": "वैकल्पिक",
|
|
"assignedLabel": "सौंपा गया",
|
|
"assignedNobody": "- कोई नहीं -",
|
|
"colorLabel": "रंग {{color}}",
|
|
"descriptionLabel": "विवरण",
|
|
"descriptionPlaceholder": "वैकल्पिक…",
|
|
"popupEdit": "संपादित करें",
|
|
"deleteConfirm": "\"{{title}}\" हटाएं?",
|
|
"createdToast": "कार्यक्रम बनाया गया",
|
|
"savedToast": "कार्यक्रम सहेजा गया",
|
|
"deletedToast": "कार्यक्रम हटाया गया",
|
|
"loadError": "कार्यक्रम लोड नहीं हो सके।",
|
|
"saveError": "सहेजने में विफल",
|
|
"deleteError": "हटाने में विफल",
|
|
"titleRequired": "शीर्षक आवश्यक है",
|
|
"monthJanuary": "जनवरी",
|
|
"monthFebruary": "फरवरी",
|
|
"monthMarch": "मार्च",
|
|
"monthApril": "अप्रैल",
|
|
"monthMay": "मई",
|
|
"monthJune": "जून",
|
|
"monthJuly": "जुलाई",
|
|
"monthAugust": "अगस्त",
|
|
"monthSeptember": "सितंबर",
|
|
"monthOctober": "अक्टूबर",
|
|
"monthNovember": "नवंबर",
|
|
"monthDecember": "दिसंबर",
|
|
"dayShortSunday": "रवि",
|
|
"dayShortMonday": "सोम",
|
|
"dayShortTuesday": "मंगल",
|
|
"dayShortWednesday": "बुध",
|
|
"dayShortThursday": "गुरु",
|
|
"dayShortFriday": "शुक्र",
|
|
"dayShortSaturday": "शनि",
|
|
"dayLongSunday": "रविवार",
|
|
"dayLongMonday": "सोमवार",
|
|
"dayLongTuesday": "मंगलवार",
|
|
"dayLongWednesday": "बुधवार",
|
|
"dayLongThursday": "गुरुवार",
|
|
"dayLongFriday": "शुक्रवार",
|
|
"dayLongSaturday": "शनिवार",
|
|
"timeSuffix": ""
|
|
},
|
|
"notes": {
|
|
"title": "नोट बोर्ड",
|
|
"newNote": "नया नोट",
|
|
"editNote": "नोट संपादित करें",
|
|
"addNoteLabel": "नया नोट",
|
|
"searchPlaceholder": "नोट खोजें…",
|
|
"emptyTitle": "अभी तक कोई नोट नहीं",
|
|
"emptyDescription": "+ बटन से नया नोट बनाएं।",
|
|
"noResultsTitle": "कोई परिणाम नहीं",
|
|
"noResultsDescription": "\"{{query}}\" वाला कोई नोट नहीं मिला।",
|
|
"titleLabel": "शीर्षक (वैकल्पिक)",
|
|
"titlePlaceholder": "कोई शीर्षक नहीं",
|
|
"contentLabel": "सामग्री",
|
|
"contentMarkdownHint": "(Markdown फ़ॉर्मेटिंग संभव)",
|
|
"contentPlaceholder": "नोट लिखें…",
|
|
"colorLabel": "रंग",
|
|
"pinnedLabel": "पिन करें (डैशबोर्ड पर दिखाई देगा)",
|
|
"pinAction": "पिन करें",
|
|
"unpinAction": "अनपिन करें",
|
|
"deleteLabel": "नोट हटाएं",
|
|
"deleteConfirm": "नोट हटाएं?",
|
|
"createdToast": "नोट बनाया गया",
|
|
"savedToast": "नोट सहेजा गया",
|
|
"deletedToast": "नोट हटाया गया",
|
|
"loadError": "नोट लोड नहीं हो सके।",
|
|
"formatBold": "बोल्ड (Ctrl+B)",
|
|
"formatItalic": "इटैलिक (Ctrl+I)",
|
|
"formatUnderline": "रेखांकित (Ctrl+U)",
|
|
"formatStrikethrough": "स्ट्राइकथ्रू",
|
|
"formatHeading": "शीर्षक",
|
|
"formatList": "सूची",
|
|
"formatOrderedList": "क्रमांकित सूची",
|
|
"formatChecklist": "चेकलिस्ट",
|
|
"formatLink": "लिंक",
|
|
"formatCode": "कोड",
|
|
"formatQuote": "उद्धरण",
|
|
"formatDivider": "विभाजक"
|
|
},
|
|
"contacts": {
|
|
"title": "संपर्क",
|
|
"newContact": "नया संपर्क",
|
|
"editContact": "संपर्क संपादित करें",
|
|
"addButton": "नया",
|
|
"newContactLabel": "नया संपर्क",
|
|
"searchPlaceholder": "नाम, फ़ोन या ईमेल से खोजें…",
|
|
"importButton": "आयात",
|
|
"importLabel": "vCard से संपर्क आयात करें",
|
|
"importTooltip": "vCard आयात करें",
|
|
"emptyTitle": "अभी तक कोई संपर्क नहीं",
|
|
"emptyDescription": "+ बटन से नए संपर्क जोड़ें।",
|
|
"filterAll": "सभी",
|
|
"nameLabel": "नाम *",
|
|
"namePlaceholder": "पूरा नाम",
|
|
"categoryLabel": "श्रेणी",
|
|
"phoneLabel": "फ़ोन",
|
|
"phonePlaceholder": "+91 …",
|
|
"emailLabel": "ईमेल",
|
|
"emailPlaceholder": "name@example.com",
|
|
"addressLabel": "पता",
|
|
"addressPlaceholder": "सड़क, शहर",
|
|
"notesLabel": "नोट्स",
|
|
"notesPlaceholder": "वैकल्पिक…",
|
|
"callLabel": "कॉल करें",
|
|
"emailActionLabel": "ईमेल करें",
|
|
"mapsLabel": "मानचित्र में खोलें",
|
|
"exportLabel": "vCard के रूप में निर्यात करें",
|
|
"exportTooltip": "vCard निर्यात करें",
|
|
"deleteLabel": "संपर्क हटाएं",
|
|
"deleteConfirm": "संपर्क हटाएं?",
|
|
"deletePersonConfirm": "\"{{name}}\" हटाएं?",
|
|
"savedToast": "संपर्क सहेजा गया",
|
|
"updatedToast": "संपर्क अपडेट हुआ",
|
|
"deletedToast": "संपर्क हटाया गया",
|
|
"importedToast": "{{name}} आयात हुआ।",
|
|
"importError": "आयात विफल: {{error}}",
|
|
"vcardNoName": "vCard में कोई नाम नहीं।",
|
|
"catDoctor": "डॉक्टर",
|
|
"catSchool": "स्कूल/किंडरगार्टन",
|
|
"catAuthority": "सरकारी कार्यालय",
|
|
"catInsurance": "बीमा",
|
|
"catCraftsman": "कारीगर",
|
|
"catEmergency": "आपातकालीन",
|
|
"catMisc": "विविध",
|
|
"categoryDoctor": "डॉक्टर",
|
|
"categorySchool": "स्कूल/किंडरगार्टन",
|
|
"categoryAuthority": "सरकारी कार्यालय",
|
|
"categoryInsurance": "बीमा",
|
|
"categoryCraftsman": "कारीगर",
|
|
"categoryEmergency": "आपातकालीन",
|
|
"categoryOther": "विविध"
|
|
},
|
|
"budget": {
|
|
"title": "बजट",
|
|
"newEntry": "नई प्रविष्टि",
|
|
"editEntry": "प्रविष्टि संपादित करें",
|
|
"addEntryLabel": "प्रविष्टि जोड़ें",
|
|
"newEntryFabLabel": "नई प्रविष्टि",
|
|
"currentMonth": "वर्तमान",
|
|
"prevMonth": "पिछला माह",
|
|
"nextMonth": "अगला माह",
|
|
"income": "आय",
|
|
"expenses": "व्यय",
|
|
"balance": "शेष",
|
|
"byCategory": "श्रेणी द्वारा",
|
|
"transactions": "लेनदेन",
|
|
"emptyTitle": "इस माह कोई प्रविष्टि नहीं",
|
|
"emptyDescription": "+ बटन से बजट प्रविष्टियां जोड़ें।",
|
|
"csvExport": "CSV",
|
|
"typeExpense": "व्यय",
|
|
"typeIncome": "आय",
|
|
"titleLabel": "शीर्षक *",
|
|
"titlePlaceholder": "उदा.: किराने की दुकान",
|
|
"amountLabel": "राशि *",
|
|
"amountPlaceholder": "0.00",
|
|
"categoryLabel": "श्रेणी",
|
|
"dateLabel": "तारीख *",
|
|
"recurringLabel": "आवर्ती",
|
|
"deleteLabel": "प्रविष्टि हटाएं",
|
|
"deleteConfirm": "प्रविष्टि हटाएं?",
|
|
"deletePersonConfirm": "\"{{title}}\" हटाएं?",
|
|
"addedToast": "प्रविष्टि जोड़ी गई",
|
|
"savedToast": "प्रविष्टि सहेजी गई",
|
|
"deletedToast": "प्रविष्टि हटाई गई",
|
|
"loadError": "बजट लोड नहीं हो सका।",
|
|
"trendNeutral": "- {{month}} जैसा",
|
|
"validAmountRequired": "वैध राशि दर्ज करें",
|
|
"dateRequired": "तारीख आवश्यक है",
|
|
"catFood": "भोजन",
|
|
"catRent": "किराया",
|
|
"catInsurance": "बीमा",
|
|
"catMobility": "परिवहन",
|
|
"catLeisure": "मनोरंजन",
|
|
"catClothing": "कपड़े",
|
|
"catHealth": "स्वास्थ्य",
|
|
"catEducation": "शिक्षा",
|
|
"catMisc": "विविध",
|
|
"catEarnedIncome": "कमाई आय",
|
|
"catInvestmentIncome": "निवेश आय",
|
|
"catTransferGiftIncome": "स्थानांतरण और उपहार",
|
|
"catGovernmentBenefits": "सामाजिक लाभ",
|
|
"catOtherIncome": "अन्य आय",
|
|
"loadingIndicator": "लोड हो रहा है…"
|
|
},
|
|
"settings": {
|
|
"title": "सेटिंग्स",
|
|
"tabGeneral": "सामान्य",
|
|
"tabMeals": "भोजन",
|
|
"tabBudget": "बजट",
|
|
"tabShopping": "खरीदारी",
|
|
"tabCalendar": "कैलेंडर",
|
|
"tabAccount": "खाता",
|
|
"tabsAriaLabel": "सेटिंग्स अनुभाग",
|
|
"sectionDesign": "डिज़ाइन",
|
|
"sectionShopping": "खरीदारी",
|
|
"shoppingCategoriesLabel": "खरीदारी श्रेणियां",
|
|
"shoppingCategoriesHint": "श्रेणियां जोड़ें, नाम बदलें, हटाएं या क्रम बदलें।",
|
|
"shoppingCategoryPlaceholder": "नई श्रेणी…",
|
|
"shoppingCategoryRenameHint": "नाम बदलने के लिए क्लिक करें",
|
|
"shoppingCategoryRenamePrompt": "नई श्रेणी का नाम:",
|
|
"shoppingCategoryMoveUp": "श्रेणी ऊपर ले जाएं",
|
|
"shoppingCategoryMoveDown": "श्रेणी नीचे ले जाएं",
|
|
"shoppingCategoryDelete": "श्रेणी हटाएं",
|
|
"shoppingCategoryDeleteConfirm": "श्रेणी \"{{name}}\" हटाएं? मौजूदा आइटम अगली श्रेणी में जाएंगे।",
|
|
"shoppingCategoryAdded": "श्रेणी जोड़ी गई।",
|
|
"shoppingCategoryRenamed": "श्रेणी का नाम बदला गया।",
|
|
"shoppingCategoryDeleted": "श्रेणी हटाई गई।",
|
|
"sectionAccount": "मेरा खाता",
|
|
"sectionCalendarSync": "कैलेंडर सिंक",
|
|
"sectionFamily": "परिवार के सदस्य",
|
|
"cardAppearance": "दिखावट",
|
|
"themeSystem": "सिस्टम",
|
|
"themeSysLabel": "सिस्टम सेटिंग का उपयोग करें",
|
|
"themeLight": "हल्का",
|
|
"themeLightLabel": "हल्का थीम",
|
|
"themeDark": "गहरा",
|
|
"themeDarkLabel": "गहरा थीम",
|
|
"changePassword": "पासवर्ड बदलें",
|
|
"currentPasswordLabel": "वर्तमान पासवर्ड",
|
|
"newPasswordLabel": "नया पासवर्ड",
|
|
"confirmPasswordLabel": "नया पासवर्ड पुष्टि करें",
|
|
"savePassword": "पासवर्ड सहेजें",
|
|
"passwordMismatch": "पासवर्ड मेल नहीं खाते।",
|
|
"passwordSavedToast": "पासवर्ड सफलतापूर्वक बदला गया।",
|
|
"googleCalendar": "Google कैलेंडर",
|
|
"appleCalendar": "Apple कैलेंडर (iCloud)",
|
|
"syncNow": "अभी सिंक करें",
|
|
"disconnect": "कनेक्शन तोड़ें",
|
|
"connectGoogle": "Google से कनेक्ट करें",
|
|
"connected": "कनेक्ट है",
|
|
"connectedLastSync": "कनेक्ट है · अंतिम: {{date}}",
|
|
"notConnected": "कनेक्ट नहीं है",
|
|
"notConfigured": "कॉन्फ़िगर नहीं (.env चर गुम)",
|
|
"configured": "कॉन्फ़िगर किया गया (.env के माध्यम से)",
|
|
"configuredLastSync": "कॉन्फ़िगर किया गया (.env के माध्यम से) · अंतिम: {{date}}",
|
|
"syncSuccess": "{{provider}} सिंक हुआ।",
|
|
"disconnectedToast": "{{provider}} डिसकनेक्ट हुआ।",
|
|
"googleOnlyAdmin": "केवल एडमिन Google कैलेंडर कनेक्ट कर सकता है।",
|
|
"appleOnlyAdmin": "केवल एडमिन Apple कैलेंडर कनेक्ट कर सकता है।",
|
|
"caldavUrlLabel": "CalDAV सर्वर URL",
|
|
"caldavUrlPlaceholder": "https://caldav.icloud.com",
|
|
"appleIdLabel": "Apple ID (ईमेल)",
|
|
"applePasswordLabel": "ऐप-विशिष्ट पासवर्ड",
|
|
"applePasswordHint": "<strong>appleid.apple.com → सुरक्षा</strong> पर पासवर्ड बनाएं।",
|
|
"appleConnectBtn": "कनेक्ट और परीक्षण",
|
|
"appleConnecting": "कनेक्ट हो रहा है…",
|
|
"appleConnectedToast": "Apple कैलेंडर कनेक्ट हुआ।",
|
|
"syncSuccessGoogle": "Google कैलेंडर सिंक सफलतापूर्वक कनेक्ट हुआ।",
|
|
"syncSuccessApple": "Apple कैलेंडर सिंक सफलतापूर्वक कनेक्ट हुआ।",
|
|
"syncErrorGoogle": "Google से कनेक्ट विफल। कृपया पुनः प्रयास करें।",
|
|
"syncErrorApple": "Apple से कनेक्ट विफल। कृपया पुनः प्रयास करें।",
|
|
"addMember": "+ सदस्य जोड़ें",
|
|
"newMemberTitle": "नया परिवार सदस्य",
|
|
"usernameLabel": "उपयोगकर्ता नाम",
|
|
"displayNameLabel": "प्रदर्शन नाम",
|
|
"memberPasswordLabel": "पासवर्ड",
|
|
"colorLabel": "रंग",
|
|
"roleLabel": "भूमिका",
|
|
"roleMember": "सदस्य",
|
|
"roleAdmin": "एडमिन",
|
|
"createMember": "बनाएं",
|
|
"cancelAddMember": "रद्द करें",
|
|
"memberAddedToast": "{{name}} जोड़ा गया।",
|
|
"deleteMemberConfirm": "{{name}} हटाएं?",
|
|
"memberDeletedToast": "{{name}} हटाया गया।",
|
|
"deleteMemberLabel": "हटाएं",
|
|
"logout": "लॉग आउट",
|
|
"synchronizing": "सिंक हो रहा है…",
|
|
"googleDisconnectConfirm": "Google कैलेंडर कनेक्शन तोड़ें?",
|
|
"appleDisconnectConfirm": "Apple कैलेंडर कनेक्शन तोड़ें?",
|
|
"localeSystem": "सिस्टम",
|
|
"localeLabel": "भाषा",
|
|
"languageTitle": "भाषा",
|
|
"sectionMeals": "भोजन योजना",
|
|
"mealTypesLabel": "दृश्यमान भोजन प्रकार",
|
|
"mealTypesHint": "भोजन योजना में केवल चुने गए भोजन प्रकार दिखाई देंगे।",
|
|
"mealTypesSaved": "भोजन योजना सेटिंग्स सहेजी गईं।",
|
|
"mealTypesMinOne": "कम से कम एक भोजन प्रकार सक्रिय होना चाहिए।",
|
|
"sectionBudget": "बजट",
|
|
"currencyLabel": "मुद्रा",
|
|
"currencyHint": "पूरे बजट अनुभाग में उपयोग की जाने वाली मुद्रा सेट करता है।",
|
|
"currencySaved": "मुद्रा सहेजी गई।"
|
|
},
|
|
"login": {
|
|
"tagline": "पारिवारिक योजना। सुरक्षित। गोपनीयता-अनुकूल। ओपन सोर्स।",
|
|
"usernameLabel": "उपयोगकर्ता नाम",
|
|
"usernamePlaceholder": "उपयोगकर्ता नाम",
|
|
"passwordLabel": "पासवर्ड",
|
|
"passwordPlaceholder": "••••••••",
|
|
"loginButton": "लॉग इन",
|
|
"loggingIn": "लॉग इन हो रहा है…",
|
|
"tooManyAttempts": "बहुत अधिक प्रयास। कृपया थोड़ा प्रतीक्षा करें।",
|
|
"invalidCredentials": "अमान्य क्रेडेंशियल।",
|
|
"version": "v{{version}}"
|
|
},
|
|
"install": {
|
|
"title": "Oikos इंस्टॉल करें",
|
|
"subtitle": "ऐप में जोड़ें",
|
|
"iosTip1": " पर टैप करें",
|
|
"iosTip2": " → \"होम स्क्रीन में जोड़ें\"",
|
|
"installButton": "इंस्टॉल करें",
|
|
"dismissLabel": "बंद करें"
|
|
},
|
|
"modal": {
|
|
"closeLabel": "बंद करें",
|
|
"overlayLabel": "मोडल डायलॉग पृष्ठभूमि"
|
|
},
|
|
"rrule": {
|
|
"freqNone": "कोई दोहराव नहीं",
|
|
"freqDaily": "दैनिक",
|
|
"freqWeekly": "साप्ताहिक",
|
|
"freqMonthly": "मासिक",
|
|
"dayMo": "सो",
|
|
"dayTu": "मं",
|
|
"dayWe": "बु",
|
|
"dayTh": "गु",
|
|
"dayFr": "शु",
|
|
"daySa": "श",
|
|
"daySu": "र",
|
|
"labelRepeat": "दोहराव",
|
|
"labelEvery": "हर",
|
|
"labelOnDays": "इन दिनों",
|
|
"labelUntil": "समाप्त होता है (वैकल्पिक)",
|
|
"unitDay": "दिन",
|
|
"unitDays": "दिन",
|
|
"unitWeek": "सप्ताह",
|
|
"unitWeeks": "सप्ताह",
|
|
"unitMonth": "माह",
|
|
"unitMonths": "माह"
|
|
}
|
|
}
|