Browse Source

OCR Live Changes and other featue added

v0.17
Aashish karn 1 year ago
parent
commit
91e38da7ed
  1. 8
      GME Remit.xcodeproj/project.pbxproj
  2. 2
      GME Remit.xcodeproj/xcshareddata/xcschemes/GME Remit.xcscheme
  3. 6
      GME Remit/APIs/Router/APIRouter.swift
  4. 4
      GME Remit/Modules/RegisterModules/VerifyIDNumber/Application Logic/Interactor/VerifyIDNumberInteractor.swift
  5. 2
      GME Remit/Modules/RegisterModules/VerifyIDNumber/Application Logic/Interactor/VerifyIDNumberInteractorIO.swift
  6. 6
      GME Remit/Modules/RegisterModules/VerifyIDNumber/Application Logic/Service/VerifyIDNumberServiceType.swift
  7. 2
      GME Remit/Modules/RegisterModules/VerifyIDNumber/Module Interface/VerifyIDNumberModuleInterface.swift
  8. 4
      GME Remit/Modules/RegisterModules/VerifyIDNumber/User Interface/Presenter/VerifyIDNumberPresenter.swift
  9. 46
      GME Remit/Modules/RegisterModules/VerifyIDNumber/User Interface/View/VerifyIDNumber.storyboard
  10. 59
      GME Remit/Modules/RegisterModules/VerifyIDNumber/User Interface/View/VerifyIDNumberViewController.swift
  11. 9
      GME Remit/MultiLanguages/bn.lproj/Localizable.strings
  12. 2
      GME Remit/MultiLanguages/en.lproj/Localizable.strings
  13. 9
      GME Remit/MultiLanguages/ja.lproj/Localizable.strings
  14. 3
      GME Remit/MultiLanguages/ne.lproj/Localizable.strings
  15. 9
      GME Remit/MultiLanguages/vi-VN.lproj/Localizable.strings

8
GME Remit.xcodeproj/project.pbxproj

@ -8283,7 +8283,7 @@
CODE_SIGN_ENTITLEMENTS = "GME Remit.entitlements";
CODE_SIGN_IDENTITY = "iPhone Developer";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 3;
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEVELOPMENT_TEAM = 68KRG7GPAV;
ENABLE_BITCODE = NO;
@ -8303,7 +8303,7 @@
"$(inherited)",
"$(PROJECT_DIR)/GME\\ Remit/ThirdParty/virtualKeyboard/mtk_module",
);
MARKETING_VERSION = 1.4.8;
MARKETING_VERSION = 1.4.9;
"OTHER_CODE_SIGN_FLAGS[sdk=*]" = "--generate-entitlement-der";
OTHER_LDFLAGS = (
"$(OTHER_LDFLAGS)",
@ -8328,7 +8328,7 @@
CODE_SIGN_ENTITLEMENTS = "GME Remit/GME RemitRelease.entitlements";
CODE_SIGN_IDENTITY = "iPhone Developer";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 3;
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEVELOPMENT_TEAM = 68KRG7GPAV;
ENABLE_BITCODE = NO;
@ -8348,7 +8348,7 @@
"$(inherited)",
"$(PROJECT_DIR)/GME\\ Remit/ThirdParty/virtualKeyboard/mtk_module",
);
MARKETING_VERSION = 1.4.8;
MARKETING_VERSION = 1.4.9;
OTHER_LDFLAGS = (
"$(OTHER_LDFLAGS)",
"-ObjC",

2
GME Remit.xcodeproj/xcshareddata/xcschemes/GME Remit.xcscheme

@ -61,7 +61,7 @@
</Testables>
</TestAction>
<LaunchAction
buildConfiguration = "Release"
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"

6
GME Remit/APIs/Router/APIRouter.swift

@ -51,7 +51,7 @@ enum APIRouter {
case submitExistingCustomerKYC(model: KYCSaveInformation)
// MARK: - New User Registration
case verifyIdNumber(id: String, type: String)
case verifyIdNumber(id: String, type: String, fullName: String, dob: String)
case newUserRegister(model: NewUserRegisterModel, fcmToken: String)
case submitKYC(model: KYCSaveInformation)
case requestRegistrationOTP(userId: String)
@ -971,10 +971,12 @@ extension APIRouter {
"Dob": dob
]
case .verifyIdNumber(let id, let type):
case .verifyIdNumber(let id, let type, let fullName, let dob):
return [
"IdType": type,
"idNumber": id,
"FullName": fullName,
"DOB": dob,
"Username": ""
]

4
GME Remit/Modules/RegisterModules/VerifyIDNumber/Application Logic/Interactor/VerifyIDNumberInteractor.swift

@ -27,10 +27,12 @@ class VerifyIDNumberInteractor {
// MARK: VerifyIDNumber interactor input interface
extension VerifyIDNumberInteractor: VerifyIDNumberInteractorInput {
func verifyIdNumber(id: String, type: String) {
func verifyIdNumber(id: String, type: String, fullName: String, dob: String) {
self.service.verifyIdNumber(
id: id,
type: type,
fullName: fullName,
dob: dob,
success: { (message) in
self.output?.success(message: message)
},

2
GME Remit/Modules/RegisterModules/VerifyIDNumber/Application Logic/Interactor/VerifyIDNumberInteractorIO.swift

@ -7,7 +7,7 @@
//
protocol VerifyIDNumberInteractorInput: class {
func verifyIdNumber(id: String, type: String)
func verifyIdNumber(id: String, type: String, fullName: String, dob: String)
}
protocol VerifyIDNumberInteractorOutput: class {

6
GME Remit/Modules/RegisterModules/VerifyIDNumber/Application Logic/Service/VerifyIDNumberServiceType.swift

@ -14,6 +14,8 @@ protocol VerifyUserIDService: ApiServiceType {
func verifyIdNumber(
id: String,
type: String,
fullName: String,
dob: String,
success: @escaping (String) -> Void,
failure: @escaping (Error) -> Void
)
@ -23,11 +25,13 @@ extension VerifyUserIDService {
func verifyIdNumber(
id: String,
type: String,
fullName: String,
dob: String,
success: @escaping (String) -> Void,
failure: @escaping (Error) -> Void
) {
APIRouter
.verifyIdNumber(id: id, type: type)
.verifyIdNumber(id: id, type: type, fullName: fullName, dob: dob)
.request(
needsAuthorization: false,
success: { (response: ResponseMessage) in

2
GME Remit/Modules/RegisterModules/VerifyIDNumber/Module Interface/VerifyIDNumberModuleInterface.swift

@ -8,5 +8,5 @@
protocol VerifyIDNumberModuleInterface: class {
func newUserRegister(customerType: String)
func verifyIdNumber(id: String, type: String)
func verifyIdNumber(id: String, type: String, fullName: String, dob: String)
}

4
GME Remit/Modules/RegisterModules/VerifyIDNumber/User Interface/Presenter/VerifyIDNumberPresenter.swift

@ -26,9 +26,9 @@ extension VerifyIDNumberPresenter: VerifyIDNumberModuleInterface {
self.wireframe?.newUserRegister(customerType: customerType)
}
func verifyIdNumber(id: String, type: String) {
func verifyIdNumber(id: String, type: String, fullName: String, dob: String) {
self.view?.showLoading()
self.interactor?.verifyIdNumber(id: id, type: type)
self.interactor?.verifyIdNumber(id: id, type: type, fullName: fullName, dob: dob)
}
}

46
GME Remit/Modules/RegisterModules/VerifyIDNumber/User Interface/View/VerifyIDNumber.storyboard

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="20037" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="HSb-ou-7T5">
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="21507" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="HSb-ou-7T5">
<device id="retina4_7" orientation="portrait" appearance="light"/>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="20020"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21505"/>
<capability name="Named colors" minToolsVersion="9.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
@ -82,7 +82,7 @@ Japan Money Express</string>
</userDefinedRuntimeAttributes>
</textField>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ofc-cS-vUI">
<rect key="frame" x="16" y="317.5" width="343" height="50"/>
<rect key="frame" x="16" y="449.5" width="343" height="50"/>
<color key="backgroundColor" name="ThemeRed"/>
<constraints>
<constraint firstAttribute="height" constant="50" id="vUT-Ax-gjD"/>
@ -113,27 +113,59 @@ Japan Money Express</string>
<action selector="nationalitySwitchButtonClicked:" destination="HSb-ou-7T5" eventType="valueChanged" id="1wz-cF-vvT"/>
</connections>
</segmentedControl>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Full Name" textAlignment="natural" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="Drr-WU-DHt" customClass="ValidationTextField" customModule="JME_Remit" customModuleProvider="target">
<rect key="frame" x="16" y="293.5" width="343" height="50"/>
<constraints>
<constraint firstAttribute="height" constant="50" id="Vxp-DL-ElQ"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<textInputTraits key="textInputTraits" autocapitalizationType="allCharacters"/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="boolean" keyPath="isShowTitle" value="NO"/>
<userDefinedRuntimeAttribute type="boolean" keyPath="isUseTitle" value="YES"/>
</userDefinedRuntimeAttributes>
</textField>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="DOB" textAlignment="natural" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="ARU-JU-aQ1" customClass="ValidationTextField" customModule="JME_Remit" customModuleProvider="target">
<rect key="frame" x="16" y="359.5" width="343" height="50"/>
<constraints>
<constraint firstAttribute="height" constant="50" id="g1n-l8-QDy"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<textInputTraits key="textInputTraits" autocapitalizationType="allCharacters"/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="boolean" keyPath="isShowTitle" value="NO"/>
<userDefinedRuntimeAttribute type="boolean" keyPath="isUseTitle" value="YES"/>
</userDefinedRuntimeAttributes>
</textField>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstItem="Drr-WU-DHt" firstAttribute="top" secondItem="AGU-a8-wiV" secondAttribute="bottom" constant="16" id="1M3-ct-e1z"/>
<constraint firstItem="ofc-cS-vUI" firstAttribute="top" secondItem="ARU-JU-aQ1" secondAttribute="bottom" constant="40" id="D8U-q2-Ori"/>
<constraint firstItem="ofc-cS-vUI" firstAttribute="trailing" secondItem="9Uc-9s-KgO" secondAttribute="trailingMargin" id="EPb-3L-ga4"/>
<constraint firstItem="ARU-JU-aQ1" firstAttribute="top" secondItem="Drr-WU-DHt" secondAttribute="bottom" constant="16" id="J7S-FY-p2e"/>
<constraint firstItem="B2f-nq-siS" firstAttribute="top" secondItem="8CS-Lf-03h" secondAttribute="bottom" constant="16" id="JK4-Ok-pXL"/>
<constraint firstAttribute="trailingMargin" secondItem="OSi-ag-Yko" secondAttribute="trailing" id="Kfg-11-AyW"/>
<constraint firstAttribute="trailing" secondItem="8CS-Lf-03h" secondAttribute="trailing" id="LQd-W4-Y8f"/>
<constraint firstItem="B2f-nq-siS" firstAttribute="leading" secondItem="9Uc-9s-KgO" secondAttribute="leadingMargin" id="NEg-z0-alD"/>
<constraint firstItem="8CS-Lf-03h" firstAttribute="leading" secondItem="9Uc-9s-KgO" secondAttribute="leading" id="bZY-lg-0kQ"/>
<constraint firstItem="AGU-a8-wiV" firstAttribute="top" secondItem="B2f-nq-siS" secondAttribute="bottom" constant="30" id="fxd-Pk-cl5"/>
<constraint firstItem="Drr-WU-DHt" firstAttribute="leading" secondItem="AGU-a8-wiV" secondAttribute="leading" id="gbR-UL-dd4"/>
<constraint firstItem="8CS-Lf-03h" firstAttribute="top" secondItem="y1H-iV-BwG" secondAttribute="bottom" constant="16" id="ix9-Qv-YtD"/>
<constraint firstItem="ARU-JU-aQ1" firstAttribute="leading" secondItem="Drr-WU-DHt" secondAttribute="leading" id="jjf-OF-5UO"/>
<constraint firstItem="ofc-cS-vUI" firstAttribute="leading" secondItem="9Uc-9s-KgO" secondAttribute="leadingMargin" id="lOj-cH-NJn"/>
<constraint firstItem="AGU-a8-wiV" firstAttribute="leading" secondItem="9Uc-9s-KgO" secondAttribute="leadingMargin" id="lmZ-FD-Fb6"/>
<constraint firstItem="ARU-JU-aQ1" firstAttribute="trailing" secondItem="Drr-WU-DHt" secondAttribute="trailing" id="lsQ-ba-u4o"/>
<constraint firstItem="OSi-ag-Yko" firstAttribute="centerY" secondItem="B2f-nq-siS" secondAttribute="centerY" id="o8k-NA-fYT"/>
<constraint firstItem="OSi-ag-Yko" firstAttribute="leading" secondItem="B2f-nq-siS" secondAttribute="trailing" constant="8" id="tFd-KG-vbw"/>
<constraint firstItem="ofc-cS-vUI" firstAttribute="top" secondItem="AGU-a8-wiV" secondAttribute="bottom" constant="40" id="uec-5Q-A2L"/>
<constraint firstItem="Drr-WU-DHt" firstAttribute="trailing" secondItem="AGU-a8-wiV" secondAttribute="trailing" id="uDR-R9-pcO"/>
<constraint firstItem="AGU-a8-wiV" firstAttribute="trailing" secondItem="9Uc-9s-KgO" secondAttribute="trailingMargin" id="xkf-SQ-OJu"/>
</constraints>
</view>
<connections>
<outlet property="backButton" destination="MiX-6e-71O" id="3Ac-6f-0D3"/>
<outlet property="dobTxtField" destination="ARU-JU-aQ1" id="JqH-5b-zIx"/>
<outlet property="fullNameTxtField" destination="Drr-WU-DHt" id="bOA-MD-3od"/>
<outlet property="headerTitle" destination="iWs-LY-vmP" id="Has-Mo-u10"/>
<outlet property="idNumberTxtField" destination="AGU-a8-wiV" id="Z6c-Qy-hsa"/>
<outlet property="nationalitySwitch" destination="OSi-ag-Yko" id="5he-al-Ijm"/>
@ -149,6 +181,12 @@ Japan Money Express</string>
<designable name="AGU-a8-wiV">
<size key="intrinsicContentSize" width="97.5" height="34"/>
</designable>
<designable name="ARU-JU-aQ1">
<size key="intrinsicContentSize" width="58" height="34"/>
</designable>
<designable name="Drr-WU-DHt">
<size key="intrinsicContentSize" width="92.5" height="34"/>
</designable>
</designables>
<color key="tintColor" red="0.78177064659999995" green="0.55228364470000002" blue="0.018981300289999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<resources>

59
GME Remit/Modules/RegisterModules/VerifyIDNumber/User Interface/View/VerifyIDNumberViewController.swift

@ -7,6 +7,8 @@
//
import UIKit
import RxSwift
import RxCocoa
class VerifyIDNumberViewController: UIViewController {
@ -16,6 +18,9 @@ class VerifyIDNumberViewController: UIViewController {
let residenceIdError = "residence_id_error".localized()
let headerTitle = "register_title_text".localized()
let verifyBtnTitle = "verify_text".localized()
let fullNameText = "full_name_text".localized()
let fullNameTextPlaceholder = "full_name_placeholder_text".localized()
let dobText = "dob_text".localized()
}
// MARK: Properties
@ -33,7 +38,8 @@ class VerifyIDNumberViewController: UIViewController {
}
private var validDic = [
"id": false
"id": false,
"dob": false
]
// MARK: IBOutlets
@ -48,7 +54,10 @@ class VerifyIDNumberViewController: UIViewController {
}
@IBOutlet weak var headerTitle: UILabel!
@IBOutlet weak var dobTxtField: ValidationTextField!
@IBOutlet weak var fullNameTxtField: ValidationTextField!
@IBOutlet weak var nationalitySwitch: UISegmentedControl!
private let disposeBag = DisposeBag()
// MARK: VC's Life cycle
override func viewDidLoad() {
@ -67,7 +76,9 @@ class VerifyIDNumberViewController: UIViewController {
// MARK: IBActions
@IBAction func verifyBttnClicked(_ sender: UIButton) {
let idNumber = self.idNumberTxtField.text ?? ""
self.presenter?.verifyIdNumber(id: idNumber, type: self.idType)
let fullName = self.fullNameTxtField.text ?? ""
let dob = self.dobTxtField.text ?? ""
self.presenter?.verifyIdNumber(id: idNumber, type: self.idType, fullName: fullName, dob: dob)
}
// MARK: Other Functions
@ -76,6 +87,41 @@ class VerifyIDNumberViewController: UIViewController {
configureLanguage()
verifyBttn.layer.cornerRadius = 6
idNumberTxtField.addTarget(self, action: #selector(editingChanged(_:)), for: .editingChanged)
dobTxtField.useAsDropDown(items: nil)
setDatePicker(textField: dobTxtField, useMaximum: true)
dobTxtField.validCondition = { $0.count > 0}
dobTxtField.addTarget(self, action: #selector(editingChanged(_:)), for: .editingChanged)
}
private func setDatePicker(textField: UITextField, useMaximum: Bool = false, useMinimum: Bool = false) {
let datePicker = UIDatePicker()
datePicker.datePickerMode = .date
if #available(iOS 13.4, *) {
datePicker.preferredDatePickerStyle = .wheels
}
if useMaximum {
datePicker.maximumDate = Date()
}
if useMinimum {
datePicker.minimumDate = Date()
}
textField.inputView = datePicker
datePicker.rx.controlEvent(.valueChanged).withLatestFrom(datePicker.rx.date) {$1}
.asDriverOnErrorJustComplete()
.drive(onNext: {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
textField.text = dateFormatter.string(from: $0)
textField.sendActions(for: .editingChanged)
}).disposed(by: disposeBag)
}
@objc private func editingChanged(_ textField: ValidationTextField) {
@ -84,7 +130,9 @@ class VerifyIDNumberViewController: UIViewController {
textField.removeNonASCII()
idNumberTxtField.filterForUserIDFormat()
validDic["id"] = idNumberTxtField.isValid
case dobTxtField:
validDic["dob"] = dobTxtField.isValid
dobTxtField.errorMessage = "empty_field_error_text".localized()
default: ()
}
isValid = validDic.allSatisfy { $0.value }
@ -99,10 +147,15 @@ class VerifyIDNumberViewController: UIViewController {
idNumberTxtField.placeholder = StringConstants().residenceIdPlaceholder
idNumberTxtField.errorMessage = StringConstants().residenceIdError
idNumberTxtField.validCondition = { !$0.isEmpty}
dobTxtField.placeholder = StringConstants().dobText
dobTxtField.titleText = StringConstants().dobText
fullNameTxtField.placeholder = StringConstants().fullNameTextPlaceholder
fullNameTxtField.titleText = StringConstants().fullNameText
headerTitle.text = StringConstants().headerTitle
verifyBttn.setTitle(StringConstants().verifyBtnTitle, for: .normal)
}
@IBAction func nationalitySwitchButtonClicked(_ sender: UISegmentedControl) {
switch nationalitySwitch.selectedSegmentIndex {
case 0:

9
GME Remit/MultiLanguages/bn.lproj/Localizable.strings

@ -1405,3 +1405,12 @@
"receiver_wallet_no_text" = "ওয়ালেট নম্বর";
"receiver_wallet_no_text_enter" = "ওয়ালেট নম্বর লিখুন";
"ekyc_registration_title_text" = "রেজিস্ট্রেশন প্রসেস ইকেওয়াইসি";
"scan_text" = "স্ক্যান";
"scan_doc_text" = "স্ক্যান ডোকুমেন্টস";
"scan_residence_card_text" = "রেসিডেন্ট কার্ড";
"scan_driver_license_text" = "ড্রাইভিং লাইসেন্স নম্বর";
"id_number_hint_text" = "আইডি নম্বর";
"driver_license_hint_text" = "ড্রাইভিং লাইসেন্স/পাসপোর্ট";
"invalid_driver_license_text" = "ইনভ্যালিড ড্রাইভিং লাইসেন্স";

2
GME Remit/MultiLanguages/en.lproj/Localizable.strings

@ -996,5 +996,5 @@
"scan_residence_card_text" = "Residence Card";
"scan_driver_license_text" = "Driving licence number";
"id_number_hint_text" = "ID Number";
"driver_license_hint_text" = "Driving License";
"driver_license_hint_text" = "Driving License/ Passport";
"invalid_driver_license_text" = "Invalid Driving License";

9
GME Remit/MultiLanguages/ja.lproj/Localizable.strings

@ -987,3 +987,12 @@
"receiver_wallet_no_text" = "ウォレット番号";
"receiver_wallet_no_text_enter" = "ウォレット番号を入力してください。";
"driver_license_hint_text" = "運転免許証番号/ パスポート";
"ekyc_registration_title_text" = "オンライン本人確認(EKYC)による登録";
"scan_text" = "スキャン";
"scan_doc_text" = "書類をスキャン";
"scan_residence_card_text" = "在留カード";
"scan_driver_license_text" = "運転免許証番号";
"id_number_hint_text" = "本人確認書類番号";
"invalid_driver_license_text" = "無効な運転免許証";

3
GME Remit/MultiLanguages/ne.lproj/Localizable.strings

@ -1421,10 +1421,9 @@
"scan_text" = "स्क्यान गर्नुहोस्";
"ekyc_registration_title_text" = "दर्ता प्रक्रिया EYC";
"scan_doc_text" = "स्क्यान कागजातहरू";
"id_number_hint_text" = "परिचय पत्र नम्बर";
"scan_residence_card_text" = "रेसिडेन्स कार्ड";
"scan_driver_license_text" = "चालक लाइसेन्स कार्ड";
"driver_license_hint_text" = "सवारीचालक अनुमतिपत्र";
"driver_license_hint_text" = "ड्राइभिङ लाइसेन्स / राहदानी ";
"invalid_driver_license_text" = "अवैध ड्राइभिङ लाइसेन्स";

9
GME Remit/MultiLanguages/vi-VN.lproj/Localizable.strings

@ -1412,3 +1412,12 @@ Chúng tôi đang xác minh thông tin của bạn.";
"receiver_wallet_no_text" = "Số ví điện tử";
"receiver_wallet_no_text_enter" = "Nhập số ví điện tử";
"driver_license_hint_text" = "Giấy phép lái xe / Hộ chiếu";
"ekyc_registration_title_text" = "Quy trình đăng ký EKYC";
"scan_text" = "Quét";
"scan_doc_text" = "Quét giấy tờ";
"scan_residence_card_text" = "Thẻ ngoại kiều ( thẻ cư trú )";
"scan_driver_license_text" = "Mã số bằng lái xe";
"id_number_hint_text" = "Mã số thẻ ngoại kiều";
"invalid_driver_license_text" = "Giấy phép lái xe không hợp lệ";
Loading…
Cancel
Save