diff --git a/PasscodeLock/Functions.swift b/PasscodeLock/Functions.swift index 173caf16..0549c918 100644 --- a/PasscodeLock/Functions.swift +++ b/PasscodeLock/Functions.swift @@ -8,19 +8,19 @@ import Foundation -func localizedStringFor(_ key: String, comment: String) -> String { - +func localizedStringFor(key: String, comment: String) -> String { + let name = "PasscodeLock" - let bundle = bundleForResource(name, ofType: "strings") - - return NSLocalizedString(key, tableName: name, bundle: bundle, comment: comment) + let defaultString = NSLocalizedString(key, tableName: name, bundle: Bundle(for: PasscodeLock.self), comment: comment) + + return NSLocalizedString(key, tableName: name, bundle: Bundle.main, value: defaultString, comment: comment) } -func bundleForResource(_ name: String, ofType type: String) -> Bundle { - +func bundleForResource(name: String, ofType type: String) -> Bundle { + if(Bundle.main.path(forResource: name, ofType: type) != nil) { return Bundle.main } - + return Bundle(for: PasscodeLock.self) } diff --git a/PasscodeLock/PasscodeLock/ChangePasscodeState.swift b/PasscodeLock/PasscodeLock/ChangePasscodeState.swift index 48c02c59..3959248f 100644 --- a/PasscodeLock/PasscodeLock/ChangePasscodeState.swift +++ b/PasscodeLock/PasscodeLock/ChangePasscodeState.swift @@ -17,8 +17,8 @@ struct ChangePasscodeState: PasscodeLockStateType { init() { - title = localizedStringFor("PasscodeLockChangeTitle", comment: "Change passcode title") - description = localizedStringFor("PasscodeLockChangeDescription", comment: "Change passcode description") + title = localizedStringFor(key: "PasscodeLockChangeTitle", comment: "Change passcode title") + description = localizedStringFor(key: "PasscodeLockChangeDescription", comment: "Change passcode description") } func accept(passcode: String, from lock: PasscodeLockType) { diff --git a/PasscodeLock/PasscodeLock/ConfirmPasscodeState.swift b/PasscodeLock/PasscodeLock/ConfirmPasscodeState.swift index 25479dd7..5a2b8742 100644 --- a/PasscodeLock/PasscodeLock/ConfirmPasscodeState.swift +++ b/PasscodeLock/PasscodeLock/ConfirmPasscodeState.swift @@ -20,8 +20,8 @@ struct ConfirmPasscodeState: PasscodeLockStateType { init(passcode: String) { passcodeToConfirm = passcode - title = localizedStringFor("PasscodeLockConfirmTitle", comment: "Confirm passcode title") - description = localizedStringFor("PasscodeLockConfirmDescription", comment: "Confirm passcode description") + title = localizedStringFor(key: "PasscodeLockConfirmTitle", comment: "Confirm passcode title") + description = localizedStringFor(key: "PasscodeLockConfirmDescription", comment: "Confirm passcode description") } func accept(passcode: String, from lock: PasscodeLockType) { @@ -33,8 +33,8 @@ struct ConfirmPasscodeState: PasscodeLockStateType { } else { - let mismatchTitle = localizedStringFor("PasscodeLockMismatchTitle", comment: "Passcode mismatch title") - let mismatchDescription = localizedStringFor("PasscodeLockMismatchDescription", comment: "Passcode mismatch description") + let mismatchTitle = localizedStringFor(key: "PasscodeLockMismatchTitle", comment: "Passcode mismatch title") + let mismatchDescription = localizedStringFor(key: "PasscodeLockMismatchDescription", comment: "Passcode mismatch description") lock.changeState(SetPasscodeState(title: mismatchTitle, description: mismatchDescription)) diff --git a/PasscodeLock/PasscodeLock/EnterPasscodeState.swift b/PasscodeLock/PasscodeLock/EnterPasscodeState.swift index 7443de2d..e5d4671e 100644 --- a/PasscodeLock/PasscodeLock/EnterPasscodeState.swift +++ b/PasscodeLock/PasscodeLock/EnterPasscodeState.swift @@ -31,8 +31,8 @@ struct EnterPasscodeState: PasscodeLockStateType { init(allowCancellation: Bool = false) { isCancellableAction = allowCancellation - title = localizedStringFor("PasscodeLockEnterTitle", comment: "Enter passcode title") - description = localizedStringFor("PasscodeLockEnterDescription", comment: "Enter passcode description") + title = localizedStringFor(key: "PasscodeLockEnterTitle", comment: "Enter passcode title") + description = localizedStringFor(key: "PasscodeLockEnterDescription", comment: "Enter passcode description") } mutating func accept(passcode: String, from lock: PasscodeLockType) { diff --git a/PasscodeLock/PasscodeLock/PasscodeLock.swift b/PasscodeLock/PasscodeLock/PasscodeLock.swift index 660fef24..1fbfc04e 100644 --- a/PasscodeLock/PasscodeLock/PasscodeLock.swift +++ b/PasscodeLock/PasscodeLock/PasscodeLock.swift @@ -68,9 +68,9 @@ open class PasscodeLock: PasscodeLockType { guard isTouchIDAllowed else { return } let context = LAContext() - let reason = localizedStringFor("PasscodeLockTouchIDReason", comment: "TouchID authentication reason") + let reason = localizedStringFor(key: "PasscodeLockTouchIDReason", comment: "TouchID authentication reason") - context.localizedFallbackTitle = localizedStringFor("PasscodeLockTouchIDButton", comment: "TouchID authentication fallback button") + context.localizedFallbackTitle = localizedStringFor(key: "PasscodeLockTouchIDButton", comment: "TouchID authentication fallback button") context.evaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, localizedReason: reason) { success, error in diff --git a/PasscodeLock/PasscodeLock/RemovePasscodeState.swift b/PasscodeLock/PasscodeLock/RemovePasscodeState.swift index 0a4f99bf..d1155013 100644 --- a/PasscodeLock/PasscodeLock/RemovePasscodeState.swift +++ b/PasscodeLock/PasscodeLock/RemovePasscodeState.swift @@ -28,8 +28,8 @@ struct RemovePasscodeState: PasscodeLockStateType { init() { - title = localizedStringFor("PasscodeLockEnterTitle", comment: "Enter passcode title") - description = localizedStringFor("PasscodeLockEnterDescription", comment: "Enter passcode description") + title = localizedStringFor(key: "PasscodeLockEnterTitle", comment: "Enter passcode title") + description = localizedStringFor(key: "PasscodeLockEnterDescription", comment: "Enter passcode description") } mutating func accept(passcode: String, from lock: PasscodeLockType) { diff --git a/PasscodeLock/PasscodeLock/SetPasscodeState.swift b/PasscodeLock/PasscodeLock/SetPasscodeState.swift index 34ce90ac..3ff3a82b 100644 --- a/PasscodeLock/PasscodeLock/SetPasscodeState.swift +++ b/PasscodeLock/PasscodeLock/SetPasscodeState.swift @@ -23,8 +23,8 @@ struct SetPasscodeState: PasscodeLockStateType { init() { - title = localizedStringFor("PasscodeLockSetTitle", comment: "Set passcode title") - description = localizedStringFor("PasscodeLockSetDescription", comment: "Set passcode description") + title = localizedStringFor(key: "PasscodeLockSetTitle", comment: "Set passcode title") + description = localizedStringFor(key: "PasscodeLockSetDescription", comment: "Set passcode description") } func accept(passcode: String, from lock: PasscodeLockType) { diff --git a/PasscodeLock/PasscodeLockViewController.swift b/PasscodeLock/PasscodeLockViewController.swift index 3a298ca9..05c64c83 100644 --- a/PasscodeLock/PasscodeLockViewController.swift +++ b/PasscodeLock/PasscodeLockViewController.swift @@ -56,7 +56,7 @@ open class PasscodeLockViewController: UIViewController, PasscodeLockTypeDelegat passcodeLock = PasscodeLock(state: state, configuration: configuration) let nibName = "PasscodeLockView" - let bundle: Bundle = bundleForResource(nibName, ofType: "nib") + let bundle: Bundle = bundleForResource(name: nibName, ofType: "nib") super.init(nibName: nibName, bundle: bundle) @@ -86,6 +86,9 @@ open class PasscodeLockViewController: UIViewController, PasscodeLockTypeDelegat updatePasscodeView() deleteSignButton?.isEnabled = false + + cancelButton?.setTitle(localizedStringFor(key: "PasscodeLockCancelButtonTitle", comment: "Cancel Button Title"), for: .normal) + deleteSignButton?.setTitle(localizedStringFor(key: "PasscodeLockDeleteButtonTitle", comment: "Delete Button Title"), for: .normal) setupEvents() } diff --git a/PasscodeLock/en.lproj/PasscodeLock.strings b/PasscodeLock/en.lproj/PasscodeLock.strings index f71ef86c..dc415880 100755 --- a/PasscodeLock/en.lproj/PasscodeLock.strings +++ b/PasscodeLock/en.lproj/PasscodeLock.strings @@ -26,8 +26,14 @@ "PasscodeLockMismatchTitle" = "Try again"; "PasscodeLockMismatchDescription" = "Passcodes didn\'t match."; +/* Cancel Button Title */ +"PasscodeLockCancelButtonTitle" = "Cancel"; + +/* Delete Button Title */ +"PasscodeLockDeleteButtonTitle" = "Delete"; + /* Touch ID Reason */ "PasscodeLockTouchIDReason" = "Authentication required to proceed"; /* Touch ID Fallback Button */ -"PasscodeLockTouchIDButton" = "Enter Passcode"; \ No newline at end of file +"PasscodeLockTouchIDButton" = "Enter Passcode"; diff --git a/PasscodeLock/ru.lproj/PasscodeLock.strings b/PasscodeLock/ru.lproj/PasscodeLock.strings new file mode 100644 index 00000000..fa24b5a8 --- /dev/null +++ b/PasscodeLock/ru.lproj/PasscodeLock.strings @@ -0,0 +1,40 @@ +/* + PasscodeLock.strings + PasscodeLock + + Перевёл Ярослав Ерохин github/ysoftware + Created by Yanko Dimitrov on 8/28/15. + Copyright (c) 2015 Yanko Dimitrov. All rights reserved. + */ + +/* Enter Passcode State */ +"PasscodeLockEnterTitle" = "Введите пароль"; +"PasscodeLockEnterDescription" = "Введите пароль, чтобы войти."; + +/* Set Passcode State */ +"PasscodeLockSetTitle" = "Введите пароль"; +"PasscodeLockSetDescription" = "Введите новый пароль."; + +/* Confirm Passcode State */ +"PasscodeLockConfirmTitle" = "Подтвердите пароль"; +"PasscodeLockConfirmDescription" = "Введите пароль ещё раз."; + +/* Change Passcode State */ +"PasscodeLockChangeTitle" = "Введите старый пароль."; +"PasscodeLockChangeDescription" = "Введите ваш старый пароль."; + +/* Passcode Mismatch State */ +"PasscodeLockMismatchTitle" = "Попробуйте ещё раз."; +"PasscodeLockMismatchDescription" = "Пароли должны совпадать."; + +/* Cancel Button Title */ +"PasscodeLockCancelButtonTitle" = "Отмена"; + +/* Delete Button Title */ +"PasscodeLockDeleteButtonTitle" = "Удалить"; + +/* Touch ID Reason */ +"PasscodeLockTouchIDReason" = "Необходимо подтвердить личность."; + +/* Touch ID Fallback Button */ +"PasscodeLockTouchIDButton" = "Ввести пароль.";