diff --git a/enzevalos_iphone/Base.lproj/Main.storyboard b/enzevalos_iphone/Base.lproj/Main.storyboard index df9a21a2bfc059c4a74f059c7aebae0778ecaf98..98babbb38b3805f82c8e59084f67d32de2377fe8 100644 --- a/enzevalos_iphone/Base.lproj/Main.storyboard +++ b/enzevalos_iphone/Base.lproj/Main.storyboard @@ -16,7 +16,7 @@ <objects> <tableViewController storyboardIdentifier="UITableViewController-Ouw-WD-EV6" id="Ouw-WD-EV6" customClass="ReadViewController" customModule="enzevalos_iphone" customModuleProvider="target" sceneMemberID="viewController"> <tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="static" style="grouped" separatorStyle="default" allowsSelection="NO" rowHeight="44" sectionHeaderHeight="8" sectionFooterHeight="1" id="oZT-OA-Re5"> - <rect key="frame" x="0.0" y="0.0" width="414" height="808"/> + <rect key="frame" x="0.0" y="0.0" width="414" height="896"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <color key="backgroundColor" red="0.93725490199999995" green="0.93725490199999995" blue="0.95686274510000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <sections> @@ -182,7 +182,7 @@ </constraints> </view> <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="qTi-rO-CH3"> - <rect key="frame" x="187.66666666666663" y="0.0" width="186.33333333333337" height="44"/> + <rect key="frame" x="187.66666666666663" y="5.6666666666666679" width="186.33333333333337" height="33"/> <constraints> <constraint firstAttribute="height" constant="44" id="voC-CF-ncN"/> </constraints> @@ -811,6 +811,7 @@ </refreshControl> <connections> <outlet property="lastUpdateButton" destination="ZNc-Kc-oC1" id="ZUS-YO-vnu"/> + <outlet property="manageButton" destination="yw6-dD-zxn" id="O2z-zM-opk"/> <segue destination="TFs-eK-jti" kind="show" identifier="showInboxSegue" id="Qjs-MH-bHU"/> <segue destination="Ouw-WD-EV6" kind="show" identifier="readFolderMailSegue" id="6Ug-AV-lba"/> </connections> @@ -2109,7 +2110,7 @@ Um deine sicheren E-Mails auch auf einem anderen Gerät lesen zu können, muss d <!--Paste Key View Controller--> <scene sceneID="1zk-8x-X7c"> <objects> - <viewController storyboardIdentifier="PasteKeyALTViewController" useStoryboardIdentifierAsRestorationIdentifier="YES" id="dtZ-NT-daG" customClass="PasteKeyViewController" customModule="enzevalos_iphone" customModuleProvider="target" sceneMemberID="viewController"> + <viewController storyboardIdentifier="PasteKeyViewController" useStoryboardIdentifierAsRestorationIdentifier="YES" id="dtZ-NT-daG" customClass="PasteKeyViewController" customModule="enzevalos_iphone" customModuleProvider="target" sceneMemberID="viewController"> <view key="view" contentMode="scaleToFill" id="CHD-6c-e74"> <rect key="frame" x="0.0" y="0.0" width="414" height="896"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> @@ -2163,6 +2164,6 @@ Um deine sicheren E-Mails auch auf einem anderen Gerät lesen zu können, muss d <segue reference="DcR-GX-scc"/> <segue reference="NPH-pL-mw2"/> <segue reference="Fv4-FT-5gV"/> - <segue reference="ecN-Wn-7S0"/> + <segue reference="6Ug-AV-lba"/> </inferredMetricsTieBreakers> </document> diff --git a/enzevalos_iphone/CryptoManagementViewController.swift b/enzevalos_iphone/CryptoManagementViewController.swift index 289c9dc4bb193a71576fbd5c8ef9879203533661..fb3990fcb071f1c0a65b626d4915174a31541787 100644 --- a/enzevalos_iphone/CryptoManagementViewController.swift +++ b/enzevalos_iphone/CryptoManagementViewController.swift @@ -28,11 +28,11 @@ class CryptoManagementViewController: UITableViewController { get { switch self { case .Info: - return "Here you can organize and manage your and others cryptographic idenities." + return NSLocalizedString("Management.Crypto.Name.Info", comment: "Here you can organize and manage your and others cryptographic idenities.") case .YourID: - return "YourID" + return NSLocalizedString("Management.Crypto.Name.You", comment: "Your ID") case .OtherID: - return "OtherID" + return NSLocalizedString("Management.Name.Crypto.Other", comment: "Other ID") } } } @@ -102,7 +102,9 @@ class CryptoManagementViewController: UITableViewController { private func infoCell(cellForRowAt indexPath: IndexPath) -> UITableViewCell { - return simpleCell(type: .Info, cellForRowAt: indexPath) + let cell = simpleCell(type: .Info, cellForRowAt: indexPath) + cell.textLabel?.numberOfLines = 0 + return cell } private func yourIDCell(cellForRowAt indexPath: IndexPath) -> UITableViewCell { @@ -116,9 +118,7 @@ class CryptoManagementViewController: UITableViewController { private func simpleCell(type: Cells, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdentifier: type.name, for: indexPath) - - cell.detailTextLabel?.text = type.text - + cell.textLabel?.text = type.text return cell } diff --git a/enzevalos_iphone/FolderViewController.swift b/enzevalos_iphone/FolderViewController.swift index c7dee764c99661711fc8a675850ae78e19c96454..2b9a56cc3e439aed5215c0f83a21fab12887d121 100644 --- a/enzevalos_iphone/FolderViewController.swift +++ b/enzevalos_iphone/FolderViewController.swift @@ -24,7 +24,8 @@ class FolderViewController: UITableViewController { var mailHandler = AppDelegate.getAppDelegate().mailHandler var folders: [Folder] = [] - + @IBOutlet weak var manageButton: UIBarButtonItem! + var isFirstFolderViewController = true var presentedFolder: Folder? = nil @@ -44,6 +45,7 @@ class FolderViewController: UITableViewController { self.refreshControl?.addTarget(self, action: #selector(FolderViewController.refresh), for: UIControl.Event.valueChanged) self.refreshControl?.attributedTitle = NSAttributedString(string: NSLocalizedString("PullToRefresh", comment: "Pull to refresh")) lastUpdateText = NSLocalizedString("Updating", comment: "Getting new data") + manageButton.title = NSLocalizedString("Management.Button", comment: "Manage") if isFirstFolderViewController { folders = DataHandler.handler.allRootFolders.sorted().filter { $0.path != UserManager.backendInboxFolderPath } diff --git a/enzevalos_iphone/ImportKeyOverviewController.swift b/enzevalos_iphone/ImportKeyOverviewController.swift index a44a7c5648cfa1d7040d9c793e64cd7af9557597..66b32a1b61f1a1e4885e28f96970a3d77f4e75be 100644 --- a/enzevalos_iphone/ImportKeyOverviewController.swift +++ b/enzevalos_iphone/ImportKeyOverviewController.swift @@ -21,6 +21,7 @@ class ImportKeyOverviewController: UITableViewController, ButtonCellHandler { override func viewDidLoad() { super.viewDidLoad() + self.title = NSLocalizedString("Import.Overview.Title", comment: "Add a key") } // MARK: - Table view data source @@ -40,7 +41,12 @@ class ImportKeyOverviewController: UITableViewController, ButtonCellHandler { // Info field identifier = "InfoTextCell" let cell = tableView.dequeueReusableCell(withIdentifier: identifier, for: indexPath) - cell.textLabel?.text = "Eigentlich werden die Schlüssel zu den Identitäten in Mails gefunden. Aber du kannst auch Schlüssel mittels iTunes hinzufügen oder als Text einfügen. Letzteres kann verwendet werden um zum Beispiel einen PGP-Schlüssel von der Webseite einer Person zu importieren. Diese beginnen mit ======== Begin Public KEY ========...." + var text = NSLocalizedString("Import.Overview.Info.Public", comment: "Copy and paste a key etc.") + if self.currentState == .Secret { + text = NSLocalizedString("Import.Overview.Info.Secret", comment: "Secret key info") + } + cell.textLabel?.text = text + return cell } else if indexPath.section == 1 { return ButtonCell.createButtonCell(tableView: tableView, normalTitle: NSLocalizedString("Import.Button.Itunes", comment: "import from iTunes"), id: KeyActions.iTunes.hashValue, listener: self) diff --git a/enzevalos_iphone/KeyTableViewController.swift b/enzevalos_iphone/KeyTableViewController.swift index 071e2c11044c11898a07e6d0e4e3d75a8d3c0f83..e2962110c3ea68b1d65d7e2371e5e481922348fe 100644 --- a/enzevalos_iphone/KeyTableViewController.swift +++ b/enzevalos_iphone/KeyTableViewController.swift @@ -32,32 +32,32 @@ class KeyTableViewController: UITableViewController { override func viewDidLoad() { super.viewDidLoad() - var title = "Your IDs" + var title = NSLocalizedString("KeyTable.Title.You", comment: "Your IDs") var showAddButton = false var onlyOneRow = false switch type { case .PublicKey: - title = "Other people's IDs" + title = NSLocalizedString("KeyTable.Title.Other", comment: "Other people's IDs") publicKeys = DataHandler.handler.findPublicKeys() showAddButton = true case .SecretKey: - title = "Your IDs" + title = NSLocalizedString("KeyTable.Title.You", comment: "Your IDs") secretKeys = DataHandler.handler.findSecretKeys() showAddButton = true case .ImportSecretKeyItunes: - title = "New Secret Keys" + title = NSLocalizedString("KeyTable.Title.New.SecretKeys", comment: "New Secret Keys") importableKeys = ItunesKeyHandling.iTunesKeyHandler.extractSecretKeys(withKnownKeys: true) if importableKeys.count == 0 { onlyOneRow = true } case .ImportPublicKeyItunes: - title = "New Public Keys" + title = NSLocalizedString("KeyTable.Title.New.PublicKeys", comment: "New Public Keys") importableKeys = ItunesKeyHandling.iTunesKeyHandler.extractPublicKeys(withKnownKeys: true) if importableKeys.count == 0 { onlyOneRow = true } case .ImportFromList: - title = "Extracted Keys" + title = NSLocalizedString("KeyTable.Title.ExtractedKeys", comment: "Extracted Keys") if importableKeys.count == 0 { onlyOneRow = true } @@ -132,7 +132,11 @@ class KeyTableViewController: UITableViewController { let cell = UITableViewCell(style: .default, reuseIdentifier: "InfoCell") cell.accessoryType = .none cell.textLabel?.numberOfLines = 0 - cell.textLabel?.text = "No keys to import. Please, add a key file (.asc or .gpg) via iTunes in the Letterbox folder." + var text = NSLocalizedString("KeyTable.Info.NoKeys.Itunes", comment: "No keys to import. Please, add a key file (.asc or .gpg) via iTunes in the Letterbox folder.") + if type == .ImportFromList { + text = NSLocalizedString("KeyTable.Info.NoKeys.List", comment: "No keys to import. Please, enter a valid text.") + } + cell.textLabel?.text = text tableView.isUserInteractionEnabled = false return cell } else { @@ -144,10 +148,10 @@ class KeyTableViewController: UITableViewController { if key.isNew() { cell.accessoryType = .none - cell.mailAddress.text = "Click here to import" + cell.mailAddress.text = NSLocalizedString("KeyCell.Import.Click", comment: "Click here to import") }else { cell.accessoryType = .checkmark - cell.mailAddress.text = "Already imported" + cell.mailAddress.text = NSLocalizedString("KeyCell.Import.Already", comment: "Already imported") } } diff --git a/enzevalos_iphone/KeyViewController.swift b/enzevalos_iphone/KeyViewController.swift index 7a7fee512bf00f6bc9b84964264c6a642ab1a477..5536004e65acec425712584291e3cfb397915e9d 100644 --- a/enzevalos_iphone/KeyViewController.swift +++ b/enzevalos_iphone/KeyViewController.swift @@ -121,14 +121,14 @@ extension KeyViewController: UITableViewDataSource { } else if toRowType(indexPath) == .discoveryMail { let cell = tableView.dequeueReusableCell(withIdentifier: "DiscoveryMailCell")! - cell.textLabel?.text = "Discovered by " + cell.textLabel?.text = NSLocalizedString("Key.DiscoveryChannel", comment: "Discovered by ") if let label = cell.detailTextLabel { if record?.key?.firstMail != nil { - label.text = "mail" + label.text = NSLocalizedString("Key.DiscoveryChannel.Mail", comment: "mail") } else { cell.accessoryType = .none - label.text = "????" + label.text = NSLocalizedString("Key.DiscoveryChannel.Unknown", comment: "unknown") } } diff --git a/enzevalos_iphone/PasteKeyViewController.swift b/enzevalos_iphone/PasteKeyViewController.swift index 7d1d5b76cae86f53b31644d4f807cd65e16d2162..443586f60bedf61c6b31cd8f31d16c3f8fd6517c 100644 --- a/enzevalos_iphone/PasteKeyViewController.swift +++ b/enzevalos_iphone/PasteKeyViewController.swift @@ -39,7 +39,7 @@ class PasteKeyViewController: UIViewController, UITextViewDelegate { static func pushPasteKeyView(navigationController: UINavigationController?) -> PasteKeyViewController? { let mainStoryboard = UIStoryboard(name: "Main", bundle: Bundle.main) - if let viewController = mainStoryboard.instantiateViewController(withIdentifier: "PasteKeyALTViewController") as? PasteKeyViewController { + if let viewController = mainStoryboard.instantiateViewController(withIdentifier: "PasteKeyViewController") as? PasteKeyViewController { navigationController?.pushViewController(viewController, animated: true) return viewController } @@ -71,12 +71,11 @@ class PasteKeyViewController: UIViewController, UITextViewDelegate { } else { updateUI(state: state) } - self.title = "Paste a key" - nextBtn = UIBarButtonItem(title: "Next", style: .done, target: nil, action: #selector(nextButton(btn:))) + self.title = NSLocalizedString("Import.PasteKey.Title", comment: "Just paste a key") + nextBtn = UIBarButtonItem(title: NSLocalizedString("Button.Next", comment: "next"), style: .done, target: nil, action: #selector(nextButton(btn:))) nextBtn?.isEnabled = false self.navigationItem.rightBarButtonItem = nextBtn - - + pasteArea.delegate = self } diff --git a/enzevalos_iphone/de.lproj/Localizable.strings b/enzevalos_iphone/de.lproj/Localizable.strings index 2156b6cfb7e2f4784062f3aef5b32726968d70c5..2ea54f9e559c320cfc23545407af0c12b4fb0320 100644 --- a/enzevalos_iphone/de.lproj/Localizable.strings +++ b/enzevalos_iphone/de.lproj/Localizable.strings @@ -71,6 +71,7 @@ "Message" = "Nachricht"; "MoreInformation" = "Weitere Informationen"; "Next" = "Weiter"; +"Button.Next" = "Weiter"; "next" = "weiter"; "None" = "Keine"; "NormalPassword" = "Normal, Passwort"; @@ -301,11 +302,31 @@ "Time.Day.One" = "ein Tag"; "Time.Day.Multiple" = "%d Tage"; "Time.Day.Today" = "heute"; -"Management.Crypto.Title" = "Management"; +"Management.Button" = "Verwalte"; +"Management.Crypto.Title" = "Verwalte deine und fremde IDs"; +"Management.Crypto.Name.Info" = "Hier kannst du deine und fremde kryptographischen Identitäten verwalten."; +"Management.Crypto.Name.You" = "Deine ID"; +"Management.Name.Crypto.Other" = "Fremde ID"; +"Import.Overview.Title" = "Hinzufügen einer ID"; +"Import.Overview.Info.Public" = "IDs basieren auf kryptographischen Schlüsseln und üblicherweise werden diese automatisch aus den Mails importiert. Aber du kannst auch selbstständig mittels iTunes oder per \"copy-and-paste\" von einer Webseite oder Mail einfügen."; +"Import.Overview.Info.Secret" = "Deine ID basiert auf einem kryptographischen Schlüssel und üblicherweise benötigst du nur eine. Aber wenn du bereits eine andere ID auf einem anderen Gerät hast, kannst du diese mittels iTunes or per \"copy-and-paste\" einfügen."; "Import.Button.Paste" = "Einfügen eines Schlüssels"; "Import.Button.Itunes" = "Übertragung mittels iTunes"; -"Import.PasteKey.Area.Default" = "Hier kann ein Schlüssel aus einer Mail, Datei oder von einer Webseite kopiert und eingefügt werden....\nEin Schlüssel startet mit -----BEGIN PGP PUBLIC KEY BLOCK-----...."; -"Import.PasteKey.Info.Start" = "You copy a key from a mail, file or website and and paste it below. \nA key starts with -----BEGIN PGP PUBLIC KEY BLOCK-----"; -"Import.PasteKey.Info.WrongFormat" = "Your pasted text looks like a key but is not correct. Please, check your input again. \nA key starts with -----BEGIN PGP PUBLIC KEY BLOCK----- and ends with -----END PGP PUBLIC KEY BLOCK-----."; -"Import.PasteKey.Info.NoKeyFormat" = "Your pasted text does not contain a key. \nA key starts with -----BEGIN PGP PUBLIC KEY BLOCK----- and ends with -----END PGP PUBLIC KEY BLOCK-----."; -"Import.PasteKey.Info.Key" = "Your pasted text contains at least one key. Please, go ahead to get an overview about them."; +"Import.PasteKey.Title" = "Einfügen eines Schlüssels"; +"Import.PasteKey.Area.Default" = "Bitte, füge den Schlüssel hier ein..."; +"Import.PasteKey.Info.Start" = "Du kannst einen Schlüssel aus einer Mail, Datei oder von einer Webseite kopieren und unten einfügen. \nEin Schlüssel beginnt mit -----BEGIN PGP PUBLIC KEY BLOCK-----."; +"Import.PasteKey.Info.WrongFormat" = "Dein eingefügter Text sieht wie ein Schlüssel aus, aber ist nicht korrekt. Bitte überprüfe den Text nochmal.\nEin Schlüssel startet mit -----BEGIN PGP PUBLIC KEY BLOCK----- und endet mit -----END PGP PUBLIC KEY BLOCK-----."; +"Import.PasteKey.Info.NoKeyFormat" = "Dein eingefügter Text beinhaltet keinen Schlüssel. \nEin Schlüssel startet mit -----BEGIN PGP PUBLIC KEY BLOCK----- und endet mit -----END PGP PUBLIC KEY BLOCK-----."; +"Import.PasteKey.Info.Key" = "Dein eingefügter Text beinhaltet mindestens einen Schlüssel. Klicke auf Weiter um die Schlüssel auszuwählen."; +"Key.DiscoveryChannel" = "Erhalten durch "; +"Key.DiscoveryChannel.Mail" = "mail"; +"Key.DiscoveryChannel.Unknown" = "unbekannt"; +"KeyTable.Title.Other" = "Fremde IDs"; +"KeyTable.Title.You" = "Deine IDs"; +"KeyTable.Title.New.SecretKeys" = "Neue geheime Schlüssel"; +"KeyTable.Title.New.PublicKeys" = "Neue öffentliche Schlüssel"; +"KeyTable.Title.ExtractedKeys" = "Gefundene Schlüssel"; +"KeyTable.Info.NoKeys.Itunes" = "Keine Schlüssel zum Importieren. Bitte füge einen Schlüssel als Datei (.asc oder .gpg) mittels iTunes in den Letterbox Ordner."; +"KeyTable.Info.NoKeys.List" = "Keine Schlüssel zum Importieren. Bitte, gib einen gültigen Text ein."; +"KeyCell.Import.Click" = "Klick hier zum Importieren"; +"KeyCell.Import.Already" = "Bereits importiert"; diff --git a/enzevalos_iphone/en.lproj/Localizable.strings b/enzevalos_iphone/en.lproj/Localizable.strings index 618dc82cb0405293c24040ce9b32e6a1356ce0c9..1c14f5155a3401b06cc7588e299cdc06690d1441 100644 --- a/enzevalos_iphone/en.lproj/Localizable.strings +++ b/enzevalos_iphone/en.lproj/Localizable.strings @@ -73,6 +73,7 @@ "Message" = "Message"; // ???? "MoreInformation" = "More Information"; "Next" = "Next"; +"Button.Next" = "Next"; "next" = "next"; "None" = "None"; "NormalPassword" = "Normal, password"; @@ -270,12 +271,32 @@ "Time.Day.One" = "one day"; "Time.Day.Multiple" = "%d days"; "Time.Day.Today" = "today"; -"Management.Crypto.Title" = "Management"; +"Management.Button" = "Manage"; +"Management.Crypto.Title" = "Manage your and other's IDs"; +"Management.Crypto.Name.Info" = "You can organize and manage your and others cryptographic idenities."; +"Management.Crypto.Name.You" = "Your ID"; +"Management.Name.Crypto.Other" = "Other's ID"; +"Import.Overview.Title" = "Add a ID"; +"Import.Overview.Info.Public" = "IDs base on cryptographic keys and typically these keys are automatically extracted from mails. But you can import keys via iTunes or copy-and-paste them from a mail or website."; +"Import.Overview.Info.Secret" = "Your ID bases on a cryptographic key and typically you only need one ID. But if you have an other ID on an other device, then you can import the ID via iTunes or copy-and-paste it."; "Import.Button.Paste" = "Paste a key"; "Import.Button.Itunes" = "Transfer via iTunes"; +"Import.PasteKey.Title" = "Paste a key"; "Import.PasteKey.Area.Default" = "Please, paste a key here..."; -"Import.PasteKey.Info.Start" = "You copy a key from a mail, file or website and and paste it below. \nA key starts with -----BEGIN PGP PUBLIC KEY BLOCK-----"; +"Import.PasteKey.Info.Start" = "You can copy a key from a mail, file or website and and paste it below. \nA key starts with -----BEGIN PGP PUBLIC KEY BLOCK-----."; "Import.PasteKey.Info.WrongFormat" = "Your pasted text looks like a key but is not correct. Please, check your input again. \nA key starts with -----BEGIN PGP PUBLIC KEY BLOCK----- and ends with -----END PGP PUBLIC KEY BLOCK-----."; "Import.PasteKey.Info.NoKeyFormat" = "Your pasted text does not contain a key. \nA key starts with -----BEGIN PGP PUBLIC KEY BLOCK----- and ends with -----END PGP PUBLIC KEY BLOCK-----."; "Import.PasteKey.Info.Key" = "Your pasted text contains at least one key. Please, go ahead to get an overview about them."; +"Key.DiscoveryChannel" = "Discovered by "; +"Key.DiscoveryChannel.Mail" = "mail"; +"Key.DiscoveryChannel.Unknown" = "unknown"; +"KeyTable.Title.Other" = "Other people's IDs"; +"KeyTable.Title.You" = "Your IDs"; +"KeyTable.Title.New.SecretKeys" = "New secret keys"; +"KeyTable.Title.New.PublicKeys" = "New public keys"; +"KeyTable.Title.ExtractedKeys" = "Extracted keys"; +"KeyTable.Info.NoKeys.Itunes" = "No keys to import. Please, add a key file (.asc or .gpg) via iTunes in the Letterbox folder."; +"KeyTable.Info.NoKeys.List" = "No keys to import. Please, enter a valid text."; +"KeyCell.Import.Click" = "Click here to import"; +"KeyCell.Import.Already" = "Already imported";