diff --git a/ios/Runner/AppDelegate.m b/ios/Runner/AppDelegate.m index 848f73b..aa9c019 100644 --- a/ios/Runner/AppDelegate.m +++ b/ios/Runner/AppDelegate.m @@ -3,6 +3,7 @@ #import "Autobonus-Swift.h" #import "ZBarSDK.h" + @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { @@ -89,7 +90,9 @@ } else if ([@"getCurrency" isEqualToString:call.method]) { result(buildSettings[@"currency"]); } else if ([@"startScanner" isEqualToString:call.method]) { - ScannerViewController *modalViewController = [ScannerViewController new]; + NSString *locale = call.arguments[@"locale"]; + NSLog(@"locale is %@", locale); + ScannerViewController *modalViewController = [[ScannerViewController alloc] initWithLocale:locale]; modalViewController.platformChannel = weekPlatformChannel; [controller presentViewController:modalViewController animated:YES completion:nil]; // [weekPlatformChannel invokeMethod:(@"findUserAndPurchase") arguments: @[@"79039441628", @"phone"]]; diff --git a/ios/Runner/ScannerViewController.swift b/ios/Runner/ScannerViewController.swift index 6e010b4..7e156fc 100644 --- a/ios/Runner/ScannerViewController.swift +++ b/ios/Runner/ScannerViewController.swift @@ -19,7 +19,12 @@ extension ZBarSymbolSet: Sequence { } @objc class ScannerViewController: UIViewController, ZBarReaderDelegate, UITextFieldDelegate { - + + enum AppLocale { + case ru + case en + } + enum ButtonState { case card case phone @@ -32,20 +37,6 @@ extension ZBarSymbolSet: Sequence { } } - var inputText: String { - switch self { - case .card: return "Enter the barcode manualy" - case .phone: return "Enter the phone manualy" - } - } - - var errorText: String { - switch self { - case .card: return "User with card number %@ not found" - case .phone: return "User with phone number %@ not found" - } - } - var searchType: String { switch self { case .card: return "card" @@ -53,9 +44,10 @@ extension ZBarSymbolSet: Sequence { } } } - + + var appLocale: AppLocale var buttonState: ButtonState = .card - + var platformChannel: FlutterMethodChannel? let readerViewController = ZBarReaderViewController() @@ -68,6 +60,75 @@ extension ZBarSymbolSet: Sequence { //Кнопка настроек var settingButton: UIButton! + + required init?(coder aDecoder: NSCoder) { + self.appLocale = .en + super.init(coder: aDecoder) + } + + init(locale: String) { + switch locale { + case "ru": self.appLocale = .ru; break + default: self.appLocale = .en + } + super.init(nibName: nil, bundle: nil) + } + + func getCardHint() -> String { + switch self.appLocale { + case .ru: return "Ввести номер карты вручную" + default: return "Enter the barcode manually" + } + } + + func getPhoneHint() -> String { + switch self.appLocale { + case .ru: return "Ввести номер телефона вручную" + default: return "Enter the phone manually" + } + } + + func getInputHint() -> String { + switch self.buttonState { + case .card: return self.getCardHint() + case .phone: return self.getPhoneHint() + } + } + + func getErrorTitle() -> String { + switch self.appLocale { + case .ru: return "Ошибка" + default: return "Error" + } + } + + func getCardErrorText() -> String { + switch self.appLocale { + case .ru: return "Пользователь с номером карты %@ не найден" + default: return "User with card number %@ not found" + } + } + + func getPhoneErrorText() -> String { + switch self.appLocale { + case .ru: return "Пользователь с номером телефона %@ не найден" + default: return "User with phone number %@ not found" + } + } + + func getErrorText() -> String { + switch self.buttonState { + case .card: return self.getCardErrorText() + case .phone: return self.getPhoneErrorText() + } + } + + func getDismissText() -> String { + switch self.appLocale { + case .ru: return "Скрыть" + default: return "Dismiss" + } + } override func viewDidLoad() { super.viewDidLoad() @@ -95,7 +156,7 @@ extension ZBarSymbolSet: Sequence { readerViewController.view.addGestureRecognizer(tap) settingButton.setImage(self.buttonState.icon, for: .normal) - textField.placeholder = self.buttonState.inputText + textField.placeholder = self.getInputHint() } @@ -110,7 +171,7 @@ extension ZBarSymbolSet: Sequence { case .phone: self.buttonState = .card } settingButton.setImage(self.buttonState.icon, for: .normal) - textField.placeholder = self.buttonState.inputText + textField.placeholder = self.getInputHint() } func textFieldShouldReturn(_ textField: UITextField) -> Bool { @@ -137,11 +198,11 @@ extension ZBarSymbolSet: Sequence { func showErrorAlert(_ str: String) { let alertController = UIAlertController( - title: "Error", - message: String(format: buttonState.errorText, str), + title: self.getErrorTitle(), + message: String(format: self.getErrorText(), str), preferredStyle: UIAlertControllerStyle.alert ) - alertController.addAction(UIAlertAction(title: "Dismiss", style: UIAlertActionStyle.default,handler: nil)) + alertController.addAction(UIAlertAction(title: self.getDismissText(), style: UIAlertActionStyle.default,handler: nil)) // if let appDelegate = UIApplication.shared.delegate as? FlutterAppDelegate { // appDelegate.window.rootViewController?.present(alertController, animated: true, completion: nil)