diff --git a/lib/di/injection.dart b/lib/di/injection.dart index 59d62d8..7181bd6 100644 --- a/lib/di/injection.dart +++ b/lib/di/injection.dart @@ -80,7 +80,7 @@ Dio _createDioClient() { final dio = Dio( BaseOptions( baseUrl: - 'http://lb-test-mobile-banking-app-192209417.ap-south-1.elb.amazonaws.com', //test + 'http://lb-test-mobile-banking-app-192209417.ap-south-1.elb.amazonaws.com', //test //'http://lb-kccb-mobile-banking-app-848675342.ap-south-1.elb.amazonaws.com', //prod //'https://kccbmbnk.net', //prod small connectTimeout: const Duration(seconds: 60), diff --git a/lib/features/account_opening/screens/account_opening_screen.dart b/lib/features/account_opening/screens/account_opening_screen.dart index 39bc06d..5a6c021 100644 --- a/lib/features/account_opening/screens/account_opening_screen.dart +++ b/lib/features/account_opening/screens/account_opening_screen.dart @@ -69,7 +69,7 @@ class _AccountOpeningScreenState extends State { child: Padding( padding: const EdgeInsets.all(16.0), child: Text( - "Select your source account to proceed with opening a new FD, TD, or RD account. Your KYC details will be verified.", + l10n.accountOpeningDescription, style: Theme.of(context).textTheme.titleMedium, ), ), @@ -144,9 +144,9 @@ class _AccountOpeningScreenState extends State { } else { if (mounted) { ScaffoldMessenger.of(context).showSnackBar( - const SnackBar( + SnackBar( content: Text( - "Failed to fetch account details")), + l10n.failedToFetchAccountDetails)), ); } } diff --git a/lib/features/account_opening/screens/create_deposit_screen.dart b/lib/features/account_opening/screens/create_deposit_screen.dart index c63c560..7a200c8 100644 --- a/lib/features/account_opening/screens/create_deposit_screen.dart +++ b/lib/features/account_opening/screens/create_deposit_screen.dart @@ -64,82 +64,112 @@ class _CreateDepositScreenState extends State { late final _monthlyRDInstallmentDueDayController = TextEditingController(); late final _rdInstlFreqController = TextEditingController(); - final Map _productOptions = { - '20': 'Term Deposit', - '25': 'Fixed Deposit', - '28': 'Recurring Deposit', - }; + Map get _productOptions { + final l10n = AppLocalizations.of(context); + return { + '20': l10n.termDepositOption, + '25': l10n.fixedDepositOption, + '28': l10n.recurringDepositOption, + }; + } - final Map _typeOptions = { - '01': 'Member', - '02': 'Non-Member', - '03': 'Staff', - '04': 'Govt', - '05': 'School', - '06': 'Panchayat', - '07': 'Trusts', - '08': 'Municipal Council', - '09': 'NRO', - '10': 'Bank', - '11': 'No Frill', - '12': 'Special Schemes', - '13': 'Minor', - }; + Map get _typeOptions { + final l10n = AppLocalizations.of(context); + return { + '01': l10n.memberOption, + '02': l10n.nonMemberOption, + '03': l10n.staffOption, + '04': l10n.govtOption, + '05': l10n.schoolOption, + '06': l10n.panchayatOption, + '07': l10n.trustsOption, + '08': l10n.municipalCouncilOption, + '09': l10n.nroOption, + '10': l10n.bankOption, + '11': l10n.noFrillOption, + '12': l10n.specialSchemesOption, + '13': l10n.minorOption, + }; + } - final Map _customerCategoryOptions = { - '1': 'Public Individual', - '2': 'Societies', - '3': 'Senior Citizen', - '5': 'Government', - '6': 'Local Bodies', - '7': 'Other', - }; + Map get _customerCategoryOptions { + final l10n = AppLocalizations.of(context); + return { + '1': l10n.publicIndividualOption, + '2': l10n.societiesOption, + '3': l10n.seniorCitizenOption, + '5': l10n.governmentOption, + '6': l10n.localBodiesOption, + '7': l10n.otherOption, + }; + } - final Map _termLocationOptions = { - '10': 'SB/CA', - '13': '46–90 Days', - '14': '91–180 Days', - '15': '180 Days–1 Year', - '16': '1 Year–<18 Months', - '20': '18 Months–<2 Years', - '17': '2–3 Years', - '18': '3–10 Years', - '22': 'Above 10 Years', - '24': 'Dev Kanya Yojna 9+1', - '25': 'Hazar Dain Lakh Ley Jayain', - }; + Map get _termLocationOptions { + final l10n = AppLocalizations.of(context); + return { + '10': l10n.sbCaOption, + '13': l10n.days46_90Option, + '14': l10n.days91_180Option, + '15': l10n.days180_1YearOption, + '16': l10n.year1_18MonthsOption, + '20': l10n.months18_2YearsOption, + '17': l10n.years2_3Option, + '18': l10n.years3_10Option, + '22': l10n.above10YearsOption, + '24': l10n.devKanyaYojnaOption, + '25': l10n.hazarDainLakhOption, + }; + } - final Map _currencyOptions = { - '1': 'INR', - }; + Map get _currencyOptions { + final l10n = AppLocalizations.of(context); + return { + '1': l10n.currencyINR, + }; + } - final Map _acctSgmtCodeOptions = { - '0706': 'Public Individual', - '5002': 'Societies', - '5005': 'Government', - '5050': 'GL Others', - }; + Map get _acctSgmtCodeOptions { + final l10n = AppLocalizations.of(context); + return { + '0706': l10n.publicIndividualOption, + '5002': l10n.societiesOption, + '5005': l10n.governmentOption, + '5050': l10n.glOthersOption, + }; + } - final Map _interestPaymentMethodOptions = { - 'R': 'Re-invest', - }; + Map get _interestPaymentMethodOptions { + final l10n = AppLocalizations.of(context); + return { + 'R': l10n.reInvestOption, + }; + } - final Map _termBasisOptions = { - 'D': 'Days', - 'M': 'Months', - }; + Map get _termBasisOptions { + final l10n = AppLocalizations.of(context); + return { + 'D': l10n.daysOption, + 'M': l10n.monthsOption, + }; + } - final Map _interestFrequencyOptions = { - 'M': 'On Maturity / Roll Over', - '1M': 'Monthly', - '3M': 'Quarterly', - '1A': 'Anniversary Monthly', - '3A': 'Anniversary Quarterly', - }; + Map get _interestFrequencyOptions { + final l10n = AppLocalizations.of(context); + return { + 'M': l10n.onMaturityOption, + '1M': l10n.monthlyOption, + '3M': l10n.quarterlyOption, + '1A': l10n.anniversaryMonthlyOption, + '3A': l10n.anniversaryQuarterlyOption, + }; + } - final Map _rdInstlFreqOptions = { - 'M': 'Monthly', - }; + Map get _rdInstlFreqOptions { + final l10n = AppLocalizations.of(context); + return { + 'M': l10n.monthlyOption, + }; + } @override void dispose() { @@ -264,46 +294,50 @@ class _CreateDepositScreenState extends State { if (response != null && response is Map) { if (mounted) { + final l10n = AppLocalizations.of(context); if (response['error'] == 'INCORRECT_TPIN' || response['message'] == 'INCORRECT_TPIN') { - _showSimpleDialog('Invalid TPIN', 'The TPIN you entered is incorrect. Please try again.'); + _showSimpleDialog(l10n.invalidTpin, l10n.incorrectTpinMessage); } else if (response['status'] == 'FAILED') { _showFailureDialog(response['message']?.toString()); } else if (response.containsKey('accountno')) { _showResponseDialog(response); } else { ScaffoldMessenger.of(context).showSnackBar( - const SnackBar(content: Text("Unexpected response from server")), + SnackBar(content: Text(l10n.unexpectedResponse)), ); } } } else { if (mounted) { + final l10n = AppLocalizations.of(context); ScaffoldMessenger.of(context).showSnackBar( - const SnackBar(content: Text("Failed to create deposit")), + SnackBar(content: Text(l10n.failedToCreateDeposit)), ); } } } on DioException catch (e) { if (mounted) { + final l10n = AppLocalizations.of(context); try { final errorBody = e.response?.data; if (errorBody is Map && (errorBody['error'] == 'INCORRECT_TPIN' || errorBody['message'] == 'INCORRECT_TPIN')) { - _showSimpleDialog('Invalid TPIN', 'The TPIN you entered is incorrect. Please try again.'); + _showSimpleDialog(l10n.invalidTpin, l10n.incorrectTpinMessage); } else { ScaffoldMessenger.of(context).showSnackBar( - SnackBar(content: Text("Error: ${e.message}")), + SnackBar(content: Text("${l10n.error}: ${e.message}")), ); } } catch (_) { ScaffoldMessenger.of(context).showSnackBar( - const SnackBar(content: Text("Internal Server Error")), + SnackBar(content: Text(l10n.internalServerError)), ); } } } catch (e) { if (mounted) { + final l10n = AppLocalizations.of(context); ScaffoldMessenger.of(context).showSnackBar( - SnackBar(content: Text("Error: $e")), + SnackBar(content: Text("${l10n.error}: $e")), ); } } finally { @@ -316,6 +350,7 @@ class _CreateDepositScreenState extends State { } Future _showSimpleDialog(String title, String message) async { + final l10n = AppLocalizations.of(context); return showDialog( context: context, barrierDismissible: false, @@ -331,7 +366,7 @@ class _CreateDepositScreenState extends State { ), actions: [ TextButton( - child: const Text("OK"), + child: Text(l10n.ok), onPressed: () { Navigator.of(context).pop(); }, @@ -343,6 +378,7 @@ class _CreateDepositScreenState extends State { } void _showFailureDialog(String? apiMessage) { + final l10n = AppLocalizations.of(context); showDialog( context: context, builder: (context) => AlertDialog( @@ -350,31 +386,31 @@ class _CreateDepositScreenState extends State { children: [ Icon(Icons.error_outline, color: Theme.of(context).colorScheme.error), const SizedBox(width: 8), - const Text("Creation Failed"), + Text(l10n.creationFailed), ], ), content: Column( mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.start, children: [ - const Text( - "Account creation could not be completed at this time.", - style: TextStyle(fontWeight: FontWeight.bold), + Text( + l10n.accountCreationFailed, + style: const TextStyle(fontWeight: FontWeight.bold), ), const SizedBox(height: 12), if (apiMessage != null) ...[ - Text("Reason: $apiMessage"), + Text(l10n.reason(apiMessage)), const SizedBox(height: 12), ], - const Text( - "Please ensure that the provided details (term length, basis, interest frequency, etc.) are correct and compatible with the selected product. If the issue persists, please contact the branch.", + Text( + l10n.creationFailedDescription, ), ], ), actions: [ TextButton( onPressed: () => Navigator.of(context).pop(), - child: const Text("OK"), + child: Text(l10n.ok), ), ], ), @@ -382,6 +418,7 @@ class _CreateDepositScreenState extends State { } void _showResponseDialog(Map response) { + final l10n = AppLocalizations.of(context); final accountNo = response['accountno']?.toString() ?? 'N/A'; final accountTypeRaw = response['accounttype']?.toString() ?? ''; final accountTypeText = _productOptions[accountTypeRaw] ?? accountTypeRaw; @@ -391,16 +428,16 @@ class _CreateDepositScreenState extends State { context: context, barrierDismissible: false, builder: (context) => AlertDialog( - title: const Text("Deposit Created Successfully"), + title: Text(l10n.depositCreatedSuccessfully), content: Column( mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.start, children: [ - Text("Account No: $accountNo"), + Text("${l10n.accountNumberLabel}: $accountNo"), const SizedBox(height: 8), - Text("Account Type: $accountTypeText"), + Text("${l10n.accountTypeLabel}: $accountTypeText"), const SizedBox(height: 8), - Text("Amount: $amount"), + Text(l10n.amountValue(amount)), ], ), actions: [ @@ -408,7 +445,7 @@ class _CreateDepositScreenState extends State { onPressed: () { Navigator.of(context).popUntil((route) => route.isFirst); }, - child: const Text("OK"), + child: Text(l10n.ok), ), ], ), @@ -420,7 +457,7 @@ class _CreateDepositScreenState extends State { final l10n = AppLocalizations.of(context); return Scaffold( appBar: AppBar( - title: const Text("Create Deposit"), + title: Text(l10n.createDeposit), ), body: SingleChildScrollView( padding: const EdgeInsets.all(16.0), @@ -437,19 +474,19 @@ class _CreateDepositScreenState extends State { child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - const Text("Customer Information", - style: TextStyle( + Text(l10n.customerInformation, + style: const TextStyle( fontSize: 18, fontWeight: FontWeight.bold)), const SizedBox(height: 16), - _buildTextField(_fromAcctNoController, "From Account No", + _buildTextField(_fromAcctNoController, l10n.fromAccountNo, mandatory: true, readOnly: true), - _buildTextField(_cifNoController, "CIF No"), - _buildTextField(_idNoController, "ID No"), - _buildTextField(_customerNameController, "Customer Name"), - _buildTextField(_nationalityController, "Nationality"), - _buildTextField(_addressLine1Controller, "Address Line 1"), - _buildTextField(_addressLine2Controller, "Address Line 2"), - _buildTextField(_pincodeController, "Pincode", + _buildTextField(_cifNoController, l10n.cifNo), + _buildTextField(_idNoController, l10n.idNo), + _buildTextField(_customerNameController, l10n.customerName), + _buildTextField(_nationalityController, l10n.nationality), + _buildTextField(_addressLine1Controller, l10n.addressLine1), + _buildTextField(_addressLine2Controller, l10n.addressLine2), + _buildTextField(_pincodeController, l10n.pincodeLabel, keyboardType: TextInputType.number), ], ), @@ -464,30 +501,30 @@ class _CreateDepositScreenState extends State { child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - const Text("Deposit Details", - style: TextStyle( + Text(l10n.depositDetails, + style: const TextStyle( fontSize: 18, fontWeight: FontWeight.bold)), const SizedBox(height: 16), _buildDropdownField( - _productController, "Product", _productOptions, + _productController, l10n.product, _productOptions, mandatory: true, onChanged: (val) { setState(() { _productController.text = val ?? ''; }); }), - _buildDropdownField(_typeController, "Type", _typeOptions, + _buildDropdownField(_typeController, l10n.type, _typeOptions, mandatory: true), _buildDropdownField(_customerCategoryController, - "Customer Category", _customerCategoryOptions, + l10n.customerCategory, _customerCategoryOptions, mandatory: true), _buildDropdownField(_termLocationController, - "Term Location", _termLocationOptions, + l10n.termLocation, _termLocationOptions, mandatory: true), _buildDropdownField( - _currencyController, "Currency", _currencyOptions, + _currencyController, l10n.currency, _currencyOptions, mandatory: true), _buildDropdownField(_acctSgmtCodeController, - "Account Segment Code", _acctSgmtCodeOptions, + l10n.accountSegmentCode, _acctSgmtCodeOptions, mandatory: true), ], ), @@ -502,35 +539,35 @@ class _CreateDepositScreenState extends State { child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - const Text("Interest & Term Settings", - style: TextStyle( + Text(l10n.interestTermSettings, + style: const TextStyle( fontSize: 18, fontWeight: FontWeight.bold)), const SizedBox(height: 16), _buildDropdownField(_interestPaymentMethodController, - "Interest Payment Method", _interestPaymentMethodOptions, + l10n.interestPaymentMethod, _interestPaymentMethodOptions, mandatory: true), _buildTextField(_taxFileNumberIndicatorController, - "Tax File Number Indicator"), - _buildTextField(_termLengthController, "Term Length"), + l10n.taxFileNumberIndicator), + _buildTextField(_termLengthController, l10n.termLength), _buildDropdownField( - _termBasisController, "Term Basis", _termBasisOptions, + _termBasisController, l10n.termBasis, _termBasisOptions, mandatory: true), _buildTextField(_termValueDepositedController, - "Term Value Deposited", + l10n.termValueDeposited, keyboardType: TextInputType.number, mandatory: _productController.text != '28'), _buildDropdownField(_interestFrequencyController, - "Interest Frequency", _interestFrequencyOptions), - _buildTextField(_termDaysController, "Term Days", + l10n.interestFrequency, _interestFrequencyOptions), + _buildTextField(_termDaysController, l10n.termDays, keyboardType: TextInputType.number), - _buildTextField(_termMonthsController, "Term Months", + _buildTextField(_termMonthsController, l10n.termMonths, keyboardType: TextInputType.number), - _buildTextField(_termYearsController, "Term Years", + _buildTextField(_termYearsController, l10n.termYears, keyboardType: TextInputType.number, mandatory: true), _buildTextField( - _nominationRequiredController, "Nomination Required"), + _nominationRequiredController, l10n.nominationRequired), _buildTextField( - _printNomineeNameController, "Print Nominee Name"), + _printNomineeNameController, l10n.printNomineeName), ], ), ), @@ -546,18 +583,18 @@ class _CreateDepositScreenState extends State { child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - const Text("Recurring Deposit Settings", - style: TextStyle( + Text(l10n.recurringDepositSettings, + style: const TextStyle( fontSize: 18, fontWeight: FontWeight.bold)), const SizedBox(height: 16), _buildTextField(_rdInstallmentValueController, - "RD Installment Value", + l10n.rdInstallmentValue, keyboardType: TextInputType.number), _buildTextField(_monthlyRDInstallmentDueDayController, - "Monthly RD Installment Due Day", + l10n.monthlyRDInstallmentDueDay, keyboardType: TextInputType.number), _buildDropdownField(_rdInstlFreqController, - "RD Installment Frequency", _rdInstlFreqOptions), + l10n.rdInstallmentFrequency, _rdInstlFreqOptions), ], ), ), @@ -585,9 +622,9 @@ class _CreateDepositScreenState extends State { strokeWidth: 2, ), ) - : const Text( - "Proceed", - style: TextStyle(fontSize: 16, fontWeight: FontWeight.bold), + : Text( + l10n.proceedButton, + style: const TextStyle(fontSize: 16, fontWeight: FontWeight.bold), ), ), const SizedBox(height: 32), @@ -603,6 +640,7 @@ class _CreateDepositScreenState extends State { {bool readOnly = false, bool mandatory = false, void Function(String?)? onChanged}) { + final l10n = AppLocalizations.of(context); String? currentValue = options.containsKey(controller.text) ? controller.text : null; @@ -630,7 +668,7 @@ class _CreateDepositScreenState extends State { ), validator: (value) { if (mandatory && (value == null || value.isEmpty)) { - return 'This field is required'; + return l10n.fieldRequired; } return null; }, @@ -649,6 +687,7 @@ class _CreateDepositScreenState extends State { bool readOnly = false, bool mandatory = false, VoidCallback? onTap}) { + final l10n = AppLocalizations.of(context); return Padding( padding: const EdgeInsets.only(bottom: 16.0), child: TextFormField( @@ -665,7 +704,7 @@ class _CreateDepositScreenState extends State { keyboardType: keyboardType, validator: (value) { if (mandatory && (value == null || value.isEmpty)) { - return 'This field is required'; + return l10n.fieldRequired; } return null; }, diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index c4191b4..29738b4 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -681,5 +681,90 @@ "contributionAmount": "Contribution Amount", "monthly": "Monthly", "quarterly": "Quarterly", - "halfYearly": "Half Yearly" + "halfYearly": "Half Yearly", + "accountOpeningDescription": "Select your source account to proceed with opening a new FD, TD, or RD account. Your KYC details will be verified as part of this process. Please ensure all fields are filled accordingly to proceed. Once you have successfully entered your T-PIN and verification is complete, the amount will be debited from your selected source account. Your new account number will be generated instantly after the process is finalized. You will be able to see the complete details of your new account on the dashboard; furthermore, you can click on 'View All' or 'Account Info' to see comprehensive account information.", + "failedToFetchAccountDetails": "Failed to fetch account details", + "createDeposit": "Create Deposit", + "customerInformation": "Customer Information", + "fromAccountNo": "From Account No", + "cifNo": "CIF No", + "idNo": "ID No", + "nationality": "Nationality", + "addressLine1": "Address Line 1", + "addressLine2": "Address Line 2", + "pincodeLabel": "Pincode", + "depositDetails": "Deposit Details", + "product": "Product", + "type": "Type", + "customerCategory": "Customer Category", + "termLocation": "Term Location", + "currency": "Currency", + "accountSegmentCode": "Account Segment Code", + "interestTermSettings": "Interest & Term Settings", + "interestPaymentMethod": "Interest Payment Method", + "taxFileNumberIndicator": "Tax File Number Indicator", + "termLength": "Term Length", + "termBasis": "Term Basis", + "termValueDeposited": "Term Value Deposited", + "interestFrequency": "Interest Frequency", + "termDays": "Term Days", + "termMonths": "Term Months", + "termYears": "Term Years", + "nominationRequired": "Nomination Required", + "printNomineeName": "Print Nominee Name", + "recurringDepositSettings": "Recurring Deposit Settings", + "rdInstallmentValue": "RD Installment Value", + "monthlyRDInstallmentDueDay": "Monthly RD Installment Due Day", + "rdInstallmentFrequency": "RD Installment Frequency", + "creationFailed": "Creation Failed", + "accountCreationFailed": "Account creation could not be completed at this time.", + "reason": "Reason: {message}", + "creationFailedDescription": "Please ensure that the provided details (term length, basis, interest frequency, etc.) are correct and compatible with the selected product. If the issue persists, please contact the branch.", + "depositCreatedSuccessfully": "Deposit Created Successfully", + "amountValue": "Amount: {amount}", + "fieldRequired": "This field is required", + "unexpectedResponse": "Unexpected response from server", + "failedToCreateDeposit": "Failed to create deposit", + "termDepositOption": "Term Deposit", + "fixedDepositOption": "Fixed Deposit", + "recurringDepositOption": "Recurring Deposit", + "memberOption": "Member", + "nonMemberOption": "Non-Member", + "staffOption": "Staff", + "govtOption": "Govt", + "schoolOption": "School", + "panchayatOption": "Panchayat", + "trustsOption": "Trusts", + "municipalCouncilOption": "Municipal Council", + "nroOption": "NRO", + "bankOption": "Bank", + "noFrillOption": "No Frill", + "specialSchemesOption": "Special Schemes", + "minorOption": "Minor", + "publicIndividualOption": "Public Individual", + "societiesOption": "Societies", + "seniorCitizenOption": "Senior Citizen", + "governmentOption": "Government", + "localBodiesOption": "Local Bodies", + "otherOption": "Other", + "sbCaOption": "SB/CA", + "days46_90Option": "46–90 Days", + "days91_180Option": "91–180 Days", + "days180_1YearOption": "180 Days–1 Year", + "year1_18MonthsOption": "1 Year–<18 Months", + "months18_2YearsOption": "18 Months–<2 Years", + "years2_3Option": "2–3 Years", + "years3_10Option": "3–10 Years", + "above10YearsOption": "Above 10 Years", + "devKanyaYojnaOption": "Dev Kanya Yojna 9+1", + "hazarDainLakhOption": "Hazar Dain Lakh Ley Jayain", + "glOthersOption": "GL Others", + "reInvestOption": "Re-invest", + "daysOption": "Days", + "monthsOption": "Months", + "onMaturityOption": "On Maturity / Roll Over", + "monthlyOption": "Monthly", + "quarterlyOption": "Quarterly", + "anniversaryMonthlyOption": "Anniversary Monthly", + "anniversaryQuarterlyOption": "Anniversary Quarterly" } diff --git a/lib/l10n/app_hi.arb b/lib/l10n/app_hi.arb index 87c1198..0aee4f3 100644 --- a/lib/l10n/app_hi.arb +++ b/lib/l10n/app_hi.arb @@ -682,5 +682,90 @@ "contributionAmount": "योगदान राशि", "monthly": "मासिक", "quarterly": "त्रैमासिक", - "halfYearly": "अर्धवार्षिक" + "halfYearly": "अर्धवार्षिक", + "accountOpeningDescription": "नया एफडी, टीडी या आरडी खाता खोलने के लिए अपना स्रोत खाता चुनें। इस प्रक्रिया के हिस्से के रूप में आपके केवाईसी विवरण सत्यापित किए जाएंगे। कृपया आगे बढ़ने के लिए सभी फ़ील्ड के अनुसार भरें। एक बार जब आप सफलतापूर्वक अपना टी-पिन दर्ज कर लेते हैं और सत्यापन पूरा हो जाता है, तो राशि आपके चुने हुए स्रोत खाते से काट ली जाएगी। प्रक्रिया पूरी होने के बाद आपका नया खाता नंबर तुरंत जनरेट हो जाएगा। आप डैशबोर्ड पर अपने नए खाते का पूरा विवरण देख पाएंगे; इसके अलावा, व्यापक खाता जानकारी देखने के लिए आप 'सभी देखें' या 'खाता जानकारी' पर क्लिक कर सकते हैं।", + "failedToFetchAccountDetails": "खाता विवरण प्राप्त करने में विफल", + "createDeposit": "जमा बनाएं", + "customerInformation": "ग्राहक जानकारी", + "fromAccountNo": "खाता नंबर से", + "cifNo": "सीआईएफ नंबर", + "idNo": "पहचान संख्या", + "nationality": "राष्ट्रीयता", + "addressLine1": "पता पंक्ति 1", + "addressLine2": "पता पंक्ति 2", + "pincodeLabel": "पिनकोड", + "depositDetails": "जमा विवरण", + "product": "उत्पाद", + "type": "प्रकार", + "customerCategory": "ग्राहक श्रेणी", + "termLocation": "अवधि स्थान", + "currency": "मुद्रा", + "accountSegmentCode": "खाता खंड कोड", + "interestTermSettings": "ब्याज और अवधि सेटिंग्स", + "interestPaymentMethod": "ब्याज भुगतान विधि", + "taxFileNumberIndicator": "टैक्स फाइल नंबर संकेतक", + "termLength": "अवधि की लंबाई", + "termBasis": "अवधि आधार", + "termValueDeposited": "जमा की गई अवधि मूल्य", + "interestFrequency": "ब्याज आवृत्ति", + "termDays": "अवधि दिन", + "termMonths": "अवधि महीने", + "termYears": "अवधि वर्ष", + "nominationRequired": "नामांकन आवश्यक", + "printNomineeName": "नामांकित व्यक्ति का नाम प्रिंट करें", + "recurringDepositSettings": "आवर्ती जमा सेटिंग्स", + "rdInstallmentValue": "आरडी किस्त मूल्य", + "monthlyRDInstallmentDueDay": "मासिक आरडी किस्त देय दिन", + "rdInstallmentFrequency": "आरडी किस्त आवृत्ति", + "creationFailed": "निर्माण विफल", + "accountCreationFailed": "इस समय खाता निर्माण पूरा नहीं किया जा सका।", + "reason": "कारण: {message}", + "creationFailedDescription": "कृपया सुनिश्चित करें कि प्रदान किए गए विवरण (अवधि की लंबाई, आधार, ब्याज आवृत्ति, आदि) सही हैं और चयनित उत्पाद के साथ संगत हैं। यदि समस्या बनी रहती है, तो कृपया शाखा से संपर्क करें।", + "depositCreatedSuccessfully": "जमा सफलतापूर्वक बनाया गया", + "amountValue": "राशि: {amount}", + "fieldRequired": "यह फ़ील्ड आवश्यक है", + "unexpectedResponse": "सर्वर से अप्रत्याशित प्रतिक्रिया", + "failedToCreateDeposit": "जमा बनाने में विफल", + "termDepositOption": "मियादी जमा", + "fixedDepositOption": "सावधि जमा", + "recurringDepositOption": "आवर्ती जमा", + "memberOption": "सदस्य", + "nonMemberOption": "गैर-सदस्य", + "staffOption": "कर्मचारी", + "govtOption": "सरकार", + "schoolOption": "स्कूल", + "panchayatOption": "पंचायत", + "trustsOption": "ट्रस्ट", + "municipalCouncilOption": "नगर परिषद", + "nroOption": "एनआरओ", + "bankOption": "बैंक", + "noFrillOption": "नो फ्रिल", + "specialSchemesOption": "विशेष योजनाएं", + "minorOption": "नाबालिग", + "publicIndividualOption": "सार्वजनिक व्यक्तिगत", + "societiesOption": "सोसायटी", + "seniorCitizenOption": "वरिष्ठ नागरिक", + "governmentOption": "सरकार", + "localBodiesOption": "स्थानीय निकाय", + "otherOption": "अन्य", + "sbCaOption": "बचत/चालू", + "days46_90Option": "46-90 दिन", + "days91_180Option": "91-180 दिन", + "days180_1YearOption": "180 दिन-1 वर्ष", + "year1_18MonthsOption": "1 वर्ष-<18 महीने", + "months18_2YearsOption": "18 महीने-<2 वर्ष", + "years2_3Option": "2-3 वर्ष", + "years3_10Option": "3-10 वर्ष", + "above10YearsOption": "10 वर्ष से अधिक", + "devKanyaYojnaOption": "देव कन्या योजना 9+1", + "hazarDainLakhOption": "हज़ार दें लाख ले जाएं", + "glOthersOption": "जीएल अन्य", + "reInvestOption": "पुनः निवेश", + "daysOption": "दिन", + "monthsOption": "महीने", + "onMaturityOption": "परिपक्वता पर / रोल ओवर", + "monthlyOption": "मासिक", + "quarterlyOption": "त्रैमासिक", + "anniversaryMonthlyOption": "वर्षगांठ मासिक", + "anniversaryQuarterlyOption": "वर्षगांठ त्रैमासिक" }