Translate iOS scan page

This commit is contained in:
vtretyakov
2018-01-24 13:48:46 +07:00
parent 3f108ae928
commit 300c61fddf
2 changed files with 87 additions and 23 deletions

View File

@@ -3,6 +3,7 @@
#import "Autobonus-Swift.h" #import "Autobonus-Swift.h"
#import "ZBarSDK.h" #import "ZBarSDK.h"
@implementation AppDelegate @implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
@@ -89,7 +90,9 @@
} else if ([@"getCurrency" isEqualToString:call.method]) { } else if ([@"getCurrency" isEqualToString:call.method]) {
result(buildSettings[@"currency"]); result(buildSettings[@"currency"]);
} else if ([@"startScanner" isEqualToString:call.method]) { } 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; modalViewController.platformChannel = weekPlatformChannel;
[controller presentViewController:modalViewController animated:YES completion:nil]; [controller presentViewController:modalViewController animated:YES completion:nil];
// [weekPlatformChannel invokeMethod:(@"findUserAndPurchase") arguments: @[@"79039441628", @"phone"]]; // [weekPlatformChannel invokeMethod:(@"findUserAndPurchase") arguments: @[@"79039441628", @"phone"]];

View File

@@ -20,6 +20,11 @@ extension ZBarSymbolSet: Sequence {
@objc class ScannerViewController: UIViewController, ZBarReaderDelegate, UITextFieldDelegate { @objc class ScannerViewController: UIViewController, ZBarReaderDelegate, UITextFieldDelegate {
enum AppLocale {
case ru
case en
}
enum ButtonState { enum ButtonState {
case card case card
case phone 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 { var searchType: String {
switch self { switch self {
case .card: return "card" case .card: return "card"
@@ -54,6 +45,7 @@ extension ZBarSymbolSet: Sequence {
} }
} }
var appLocale: AppLocale
var buttonState: ButtonState = .card var buttonState: ButtonState = .card
var platformChannel: FlutterMethodChannel? var platformChannel: FlutterMethodChannel?
@@ -69,6 +61,75 @@ extension ZBarSymbolSet: Sequence {
//Кнопка настроек //Кнопка настроек
var settingButton: UIButton! 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() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
@@ -95,7 +156,7 @@ extension ZBarSymbolSet: Sequence {
readerViewController.view.addGestureRecognizer(tap) readerViewController.view.addGestureRecognizer(tap)
settingButton.setImage(self.buttonState.icon, for: .normal) 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 case .phone: self.buttonState = .card
} }
settingButton.setImage(self.buttonState.icon, for: .normal) settingButton.setImage(self.buttonState.icon, for: .normal)
textField.placeholder = self.buttonState.inputText textField.placeholder = self.getInputHint()
} }
func textFieldShouldReturn(_ textField: UITextField) -> Bool { func textFieldShouldReturn(_ textField: UITextField) -> Bool {
@@ -137,11 +198,11 @@ extension ZBarSymbolSet: Sequence {
func showErrorAlert(_ str: String) { func showErrorAlert(_ str: String) {
let alertController = UIAlertController( let alertController = UIAlertController(
title: "Error", title: self.getErrorTitle(),
message: String(format: buttonState.errorText, str), message: String(format: self.getErrorText(), str),
preferredStyle: UIAlertControllerStyle.alert 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 { // if let appDelegate = UIApplication.shared.delegate as? FlutterAppDelegate {
// appDelegate.window.rootViewController?.present(alertController, animated: true, completion: nil) // appDelegate.window.rootViewController?.present(alertController, animated: true, completion: nil)