diff --git a/AvH Plan.xcodeproj/project.pbxproj b/AvH Plan.xcodeproj/project.pbxproj index dc9eadb..c7f74b0 100644 --- a/AvH Plan.xcodeproj/project.pbxproj +++ b/AvH Plan.xcodeproj/project.pbxproj @@ -11,6 +11,7 @@ 2E65263AFD35D6B542E89AE4 /* Pods_AvH_Plan.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7605BB0678C9E27A1D3E9DAA /* Pods_AvH_Plan.framework */; }; A957A75122DDC15500E0A2ED /* MenuViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A957A74F22DDC15500E0A2ED /* MenuViewCell.swift */; }; A957A75222DDC15500E0A2ED /* MenuViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = A957A75022DDC15500E0A2ED /* MenuViewCell.xib */; }; + A958A92222DF5388007052B0 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = A958A92422DF5388007052B0 /* Localizable.strings */; }; A96133802299867400B541D4 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = A961337F2299867400B541D4 /* AppDelegate.swift */; }; A96133822299867400B541D4 /* PlanViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A96133812299867400B541D4 /* PlanViewController.swift */; }; A96133872299867400B541D4 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = A96133852299867400B541D4 /* Main.storyboard */; }; @@ -53,6 +54,9 @@ 7605BB0678C9E27A1D3E9DAA /* Pods_AvH_Plan.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_AvH_Plan.framework; sourceTree = BUILT_PRODUCTS_DIR; }; A957A74F22DDC15500E0A2ED /* MenuViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MenuViewCell.swift; sourceTree = ""; }; A957A75022DDC15500E0A2ED /* MenuViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MenuViewCell.xib; sourceTree = ""; }; + A958A91E22DF528C007052B0 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Main.strings; sourceTree = ""; }; + A958A92322DF5388007052B0 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; + A958A92522DF538C007052B0 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = ""; }; A961337C2299867400B541D4 /* AvH Plan.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "AvH Plan.app"; sourceTree = BUILT_PRODUCTS_DIR; }; A961337F2299867400B541D4 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; A96133812299867400B541D4 /* PlanViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlanViewController.swift; sourceTree = ""; }; @@ -176,6 +180,7 @@ A9D830A622DE258C00D7EA05 /* PlanViewCell.xib */, A96D4CC722DDE01A006BAB34 /* GeneralPlanViewController.swift */, A96D4CC922DDE184006BAB34 /* PersonalPlanViewController.swift */, + A958A92422DF5388007052B0 /* Localizable.strings */, ); path = "AvH Plan"; sourceTree = ""; @@ -288,6 +293,7 @@ knownRegions = ( en, Base, + de, ); mainGroup = A96133732299867300B541D4; productRefGroup = A961337D2299867400B541D4 /* Products */; @@ -307,6 +313,7 @@ buildActionMask = 2147483647; files = ( A961338C2299867A00B541D4 /* LaunchScreen.storyboard in Resources */, + A958A92222DF5388007052B0 /* Localizable.strings in Resources */, A957A75222DDC15500E0A2ED /* MenuViewCell.xib in Resources */, A96133892299867A00B541D4 /* Assets.xcassets in Resources */, A96133872299867400B541D4 /* Main.storyboard in Resources */, @@ -480,10 +487,20 @@ /* End PBXTargetDependency section */ /* Begin PBXVariantGroup section */ + A958A92422DF5388007052B0 /* Localizable.strings */ = { + isa = PBXVariantGroup; + children = ( + A958A92322DF5388007052B0 /* en */, + A958A92522DF538C007052B0 /* de */, + ); + name = Localizable.strings; + sourceTree = ""; + }; A96133852299867400B541D4 /* Main.storyboard */ = { isa = PBXVariantGroup; children = ( A96133862299867400B541D4 /* Base */, + A958A91E22DF528C007052B0 /* de */, ); name = Main.storyboard; sourceTree = ""; @@ -503,6 +520,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; @@ -564,6 +582,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; diff --git a/AvH Plan/Assets.xcassets/AppIcon.appiconset/Contents.json b/AvH Plan/Assets.xcassets/AppIcon.appiconset/Contents.json index d8db8d6..fc014c0 100644 --- a/AvH Plan/Assets.xcassets/AppIcon.appiconset/Contents.json +++ b/AvH Plan/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -1,93 +1,111 @@ { "images" : [ { - "idiom" : "iphone", "size" : "20x20", + "idiom" : "iphone", + "filename" : "avh20x2-1.png", "scale" : "2x" }, { - "idiom" : "iphone", "size" : "20x20", + "idiom" : "iphone", + "filename" : "avh20x3.png", "scale" : "3x" }, { - "idiom" : "iphone", "size" : "29x29", + "idiom" : "iphone", + "filename" : "avh29x2.png", "scale" : "2x" }, { - "idiom" : "iphone", "size" : "29x29", + "idiom" : "iphone", + "filename" : "avh29x3.png", "scale" : "3x" }, { - "idiom" : "iphone", "size" : "40x40", + "idiom" : "iphone", + "filename" : "avh40x2-1.png", "scale" : "2x" }, { - "idiom" : "iphone", "size" : "40x40", + "idiom" : "iphone", + "filename" : "avh40x3.png", "scale" : "3x" }, { - "idiom" : "iphone", "size" : "60x60", + "idiom" : "iphone", + "filename" : "avh60x2.png", "scale" : "2x" }, { - "idiom" : "iphone", "size" : "60x60", + "idiom" : "iphone", + "filename" : "avh60x3.png", "scale" : "3x" }, { - "idiom" : "ipad", "size" : "20x20", + "idiom" : "ipad", + "filename" : "avh20x1.png", "scale" : "1x" }, { - "idiom" : "ipad", "size" : "20x20", + "idiom" : "ipad", + "filename" : "avh20x2.png", "scale" : "2x" }, { - "idiom" : "ipad", "size" : "29x29", + "idiom" : "ipad", + "filename" : "avh29x1.png", "scale" : "1x" }, { - "idiom" : "ipad", "size" : "29x29", + "idiom" : "ipad", + "filename" : "avh29x2-1.png", "scale" : "2x" }, { - "idiom" : "ipad", "size" : "40x40", + "idiom" : "ipad", + "filename" : "avh40x1.png", "scale" : "1x" }, { - "idiom" : "ipad", "size" : "40x40", + "idiom" : "ipad", + "filename" : "avh40x2.png", "scale" : "2x" }, { - "idiom" : "ipad", "size" : "76x76", + "idiom" : "ipad", + "filename" : "avh76x1.png", "scale" : "1x" }, { - "idiom" : "ipad", "size" : "76x76", + "idiom" : "ipad", + "filename" : "avh76x2.png", "scale" : "2x" }, { - "idiom" : "ipad", "size" : "83.5x83.5", + "idiom" : "ipad", + "filename" : "avh83,5x2.png", "scale" : "2x" }, { - "idiom" : "ios-marketing", "size" : "1024x1024", + "idiom" : "ios-marketing", + "filename" : "app_icon_ios.png", "scale" : "1x" } ], diff --git a/AvH Plan/Assets.xcassets/AppIcon.appiconset/app_icon_ios.png b/AvH Plan/Assets.xcassets/AppIcon.appiconset/app_icon_ios.png new file mode 100644 index 0000000..775d52a Binary files /dev/null and b/AvH Plan/Assets.xcassets/AppIcon.appiconset/app_icon_ios.png differ diff --git a/AvH Plan/Assets.xcassets/AppIcon.appiconset/avh20x1.png b/AvH Plan/Assets.xcassets/AppIcon.appiconset/avh20x1.png new file mode 100644 index 0000000..f09b6ed Binary files /dev/null and b/AvH Plan/Assets.xcassets/AppIcon.appiconset/avh20x1.png differ diff --git a/AvH Plan/Assets.xcassets/AppIcon.appiconset/avh20x2-1.png b/AvH Plan/Assets.xcassets/AppIcon.appiconset/avh20x2-1.png new file mode 100644 index 0000000..2da628e Binary files /dev/null and b/AvH Plan/Assets.xcassets/AppIcon.appiconset/avh20x2-1.png differ diff --git a/AvH Plan/Assets.xcassets/AppIcon.appiconset/avh20x2.png b/AvH Plan/Assets.xcassets/AppIcon.appiconset/avh20x2.png new file mode 100644 index 0000000..2da628e Binary files /dev/null and b/AvH Plan/Assets.xcassets/AppIcon.appiconset/avh20x2.png differ diff --git a/AvH Plan/Assets.xcassets/AppIcon.appiconset/avh20x3.png b/AvH Plan/Assets.xcassets/AppIcon.appiconset/avh20x3.png new file mode 100644 index 0000000..521a9e3 Binary files /dev/null and b/AvH Plan/Assets.xcassets/AppIcon.appiconset/avh20x3.png differ diff --git a/AvH Plan/Assets.xcassets/AppIcon.appiconset/avh29x1.png b/AvH Plan/Assets.xcassets/AppIcon.appiconset/avh29x1.png new file mode 100644 index 0000000..c6fe8c3 Binary files /dev/null and b/AvH Plan/Assets.xcassets/AppIcon.appiconset/avh29x1.png differ diff --git a/AvH Plan/Assets.xcassets/AppIcon.appiconset/avh29x2-1.png b/AvH Plan/Assets.xcassets/AppIcon.appiconset/avh29x2-1.png new file mode 100644 index 0000000..a32625a Binary files /dev/null and b/AvH Plan/Assets.xcassets/AppIcon.appiconset/avh29x2-1.png differ diff --git a/AvH Plan/Assets.xcassets/AppIcon.appiconset/avh29x2.png b/AvH Plan/Assets.xcassets/AppIcon.appiconset/avh29x2.png new file mode 100644 index 0000000..a32625a Binary files /dev/null and b/AvH Plan/Assets.xcassets/AppIcon.appiconset/avh29x2.png differ diff --git a/AvH Plan/Assets.xcassets/AppIcon.appiconset/avh29x3.png b/AvH Plan/Assets.xcassets/AppIcon.appiconset/avh29x3.png new file mode 100644 index 0000000..94dad27 Binary files /dev/null and b/AvH Plan/Assets.xcassets/AppIcon.appiconset/avh29x3.png differ diff --git a/AvH Plan/Assets.xcassets/AppIcon.appiconset/avh40x1.png b/AvH Plan/Assets.xcassets/AppIcon.appiconset/avh40x1.png new file mode 100644 index 0000000..2da628e Binary files /dev/null and b/AvH Plan/Assets.xcassets/AppIcon.appiconset/avh40x1.png differ diff --git a/AvH Plan/Assets.xcassets/AppIcon.appiconset/avh40x2-1.png b/AvH Plan/Assets.xcassets/AppIcon.appiconset/avh40x2-1.png new file mode 100644 index 0000000..1e76fab Binary files /dev/null and b/AvH Plan/Assets.xcassets/AppIcon.appiconset/avh40x2-1.png differ diff --git a/AvH Plan/Assets.xcassets/AppIcon.appiconset/avh40x2.png b/AvH Plan/Assets.xcassets/AppIcon.appiconset/avh40x2.png new file mode 100644 index 0000000..1e76fab Binary files /dev/null and b/AvH Plan/Assets.xcassets/AppIcon.appiconset/avh40x2.png differ diff --git a/AvH Plan/Assets.xcassets/AppIcon.appiconset/avh40x3.png b/AvH Plan/Assets.xcassets/AppIcon.appiconset/avh40x3.png new file mode 100644 index 0000000..3a8ab38 Binary files /dev/null and b/AvH Plan/Assets.xcassets/AppIcon.appiconset/avh40x3.png differ diff --git a/AvH Plan/Assets.xcassets/AppIcon.appiconset/avh60x2.png b/AvH Plan/Assets.xcassets/AppIcon.appiconset/avh60x2.png new file mode 100644 index 0000000..3a8ab38 Binary files /dev/null and b/AvH Plan/Assets.xcassets/AppIcon.appiconset/avh60x2.png differ diff --git a/AvH Plan/Assets.xcassets/AppIcon.appiconset/avh60x3.png b/AvH Plan/Assets.xcassets/AppIcon.appiconset/avh60x3.png new file mode 100644 index 0000000..77823d3 Binary files /dev/null and b/AvH Plan/Assets.xcassets/AppIcon.appiconset/avh60x3.png differ diff --git a/AvH Plan/Assets.xcassets/AppIcon.appiconset/avh76x1.png b/AvH Plan/Assets.xcassets/AppIcon.appiconset/avh76x1.png new file mode 100644 index 0000000..cc23b84 Binary files /dev/null and b/AvH Plan/Assets.xcassets/AppIcon.appiconset/avh76x1.png differ diff --git a/AvH Plan/Assets.xcassets/AppIcon.appiconset/avh76x2.png b/AvH Plan/Assets.xcassets/AppIcon.appiconset/avh76x2.png new file mode 100644 index 0000000..9d5defb Binary files /dev/null and b/AvH Plan/Assets.xcassets/AppIcon.appiconset/avh76x2.png differ diff --git a/AvH Plan/Assets.xcassets/AppIcon.appiconset/avh83,5x2.png b/AvH Plan/Assets.xcassets/AppIcon.appiconset/avh83,5x2.png new file mode 100644 index 0000000..693604e Binary files /dev/null and b/AvH Plan/Assets.xcassets/AppIcon.appiconset/avh83,5x2.png differ diff --git a/AvH Plan/Base.lproj/LaunchScreen.storyboard b/AvH Plan/Base.lproj/LaunchScreen.storyboard index bfa3612..879ed5e 100644 --- a/AvH Plan/Base.lproj/LaunchScreen.storyboard +++ b/AvH Plan/Base.lproj/LaunchScreen.storyboard @@ -1,7 +1,11 @@ - - + + + + + - + + @@ -11,15 +15,39 @@ - + + + + + + + + + + + + + + + + + + + - + + + + + + + diff --git a/AvH Plan/Base.lproj/Main.storyboard b/AvH Plan/Base.lproj/Main.storyboard index 6ee8f75..6904453 100644 --- a/AvH Plan/Base.lproj/Main.storyboard +++ b/AvH Plan/Base.lproj/Main.storyboard @@ -15,10 +15,10 @@ - + - + @@ -48,15 +48,15 @@ - + - + - + @@ -87,10 +87,10 @@ - + - + @@ -104,7 +104,7 @@ + + + + + + + + diff --git a/AvH Plan/MenuViewController.swift b/AvH Plan/MenuViewController.swift index 0269992..20e2449 100644 --- a/AvH Plan/MenuViewController.swift +++ b/AvH Plan/MenuViewController.swift @@ -38,6 +38,7 @@ class MenuViewController : UIViewController, UICollectionViewDataSource, UIColle collectionView.register(UINib(nibName: "MenuViewCell", bundle: nil), forCellWithReuseIdentifier: identifier) collectionView.dataSource = self collectionView.delegate = self + collectionView.backgroundColor = #colorLiteral(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0) if #available(iOS 10.0, *) { collectionView.refreshControl = refreshControl @@ -45,8 +46,11 @@ class MenuViewController : UIViewController, UICollectionViewDataSource, UIColle collectionView.addSubview(refreshControl) // likely unnecessary } refreshControl.addTarget(self, action: #selector(objDoAsync(_:)), for: .valueChanged) - refreshControl.tintColor = UIColor(red: 0.39, green: 0.71, blue: 0.96, alpha: 1.0) - refreshControl.attributedTitle = NSAttributedString(string: "Fetching the food menu...") + refreshControl.tintColor = #colorLiteral(red: 0.07843137255, green: 0.5568627451, blue: 1, alpha: 1) + refreshControl.attributedTitle = NSAttributedString(string: NSLocalizedString("fetch_menu", comment: "")) + + self.items = self.df.readMenu() + self.collectionView.reloadData() } @objc private func objDoAsync(_ sender: Any) { @@ -57,14 +61,6 @@ class MenuViewController : UIViewController, UICollectionViewDataSource, UIColle } } - override func viewDidLoad() { - super.viewDidLoad() - collectionView.backgroundColor = UIColor(red: 0.8, green: 0.8, blue: 0.8, alpha: 1.0) - - self.items = self.df.readMenu() - self.collectionView.reloadData() - } - func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { return self.items.count } @@ -108,7 +104,7 @@ class MenuViewController : UIViewController, UICollectionViewDataSource, UIColle } func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, verticalSpacingForElementsInSectionAtIndex index: Int) -> CGFloat { - return 1 + return 0 } func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetsForSectionAtIndex index: Int) -> UIEdgeInsets { diff --git a/AvH Plan/PersonalPlanViewController.swift b/AvH Plan/PersonalPlanViewController.swift index c81b90d..4297533 100644 --- a/AvH Plan/PersonalPlanViewController.swift +++ b/AvH Plan/PersonalPlanViewController.swift @@ -14,18 +14,18 @@ class PersonalPlanViewController: PlanViewController { let prefs = UserDefaults.standard @IBAction func toolbarButtonCustomise(_ sender: UIBarButtonItem) { - let alert = UIAlertController(title: "Customise personal page", message: nil, preferredStyle: .alert) + let alert = UIAlertController(title: NSLocalizedString("customize_alert_title", comment: ""), message: nil, preferredStyle: .alert) alert.addTextField { (name) in name.text = self.prefs.string(forKey: "username") - name.placeholder = "Name" + name.placeholder = NSLocalizedString("name", comment: "") } alert.addTextField { (classes) in classes.text = self.prefs.string(forKey: "classes") - classes.placeholder = "Classes" + classes.placeholder = NSLocalizedString("classes", comment: "") } alert.addTextField { (courses) in courses.text = self.prefs.string(forKey: "courses") - courses.placeholder = "Courses" + courses.placeholder = NSLocalizedString("courses", comment: "") } alert.addAction(UIAlertAction(title: "OK", style: .default, handler: { [weak alert] (action) -> Void in _ = self.prefs.set(alert!.textFields![0].text, forKey: "username") @@ -42,24 +42,19 @@ class PersonalPlanViewController: PlanViewController { let user = self.prefs.string(forKey: "username") if (user != nil && user != "") { if (user!.last == "x" || user!.last == "s" || user!.last == "z") { - self.toolbar!.topItem!.title = "\(user!)' Plan" + self.toolbar!.topItem!.title = "\(user!)\(NSLocalizedString("nosplan", comment: ""))" } else { - self.toolbar!.topItem!.title = "\(user!)'s Plan" + self.toolbar!.topItem!.title = "\(user!)\(NSLocalizedString("splan", comment: ""))" } } } - override func viewDidLoad() { - super.viewDidLoad() - - } - override func getViewType() -> String { return "personal" } override func getRefreshViewString() -> String { - return "Fetching your plan..." + return NSLocalizedString("fetch_personal", comment: "") } override func getFromDatabase() -> [SubstModel] { @@ -70,14 +65,4 @@ class PersonalPlanViewController: PlanViewController { return toolbar.bottomAnchor } - /* - // MARK: - Navigation - - // In a storyboard-based application, you will often want to do a little preparation before navigation - override func prepare(for segue: UIStoryboardSegue, sender: Any?) { - // Get the new view controller using segue.destination. - // Pass the selected object to the new view controller. - } - */ - } diff --git a/AvH Plan/PlanViewCell.xib b/AvH Plan/PlanViewCell.xib index 3c53d9e..a702aaf 100644 --- a/AvH Plan/PlanViewCell.xib +++ b/AvH Plan/PlanViewCell.xib @@ -58,11 +58,16 @@ + + + + + @@ -74,12 +79,15 @@ + + + diff --git a/AvH Plan/PlanViewController.swift b/AvH Plan/PlanViewController.swift index 5428b60..397d326 100644 --- a/AvH Plan/PlanViewController.swift +++ b/AvH Plan/PlanViewController.swift @@ -13,7 +13,7 @@ class PlanViewController : UIViewController, UICollectionViewDataSource, UIColle let identifier = "plan_cell" var substs = [SubstModel]() - private let refreshControl = UIRefreshControl() + let refreshControl = UIRefreshControl() let df = DataFetcher() let layout = MagazineLayout() var collectionView: UICollectionView @@ -41,6 +41,7 @@ class PlanViewController : UIViewController, UICollectionViewDataSource, UIColle collectionView.register(UINib(nibName: "PlanViewCell", bundle: nil), forCellWithReuseIdentifier: identifier) collectionView.dataSource = self collectionView.delegate = self + collectionView.backgroundColor = #colorLiteral(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0) if #available(iOS 10.0, *) { collectionView.refreshControl = refreshControl @@ -48,8 +49,11 @@ class PlanViewController : UIViewController, UICollectionViewDataSource, UIColle collectionView.addSubview(refreshControl) } refreshControl.addTarget(self, action: #selector(objDoAsync(_:)), for: .valueChanged) - refreshControl.tintColor = UIColor(red: 0.39, green: 0.71, blue: 0.96, alpha: 1.0) + refreshControl.tintColor = #colorLiteral(red: 0.07843137255, green: 0.5568627451, blue: 1, alpha: 1) refreshControl.attributedTitle = NSAttributedString(string: getRefreshViewString()) + + self.substs = getFromDatabase() + self.collectionView.reloadData() } func getViewType() -> String { @@ -61,7 +65,7 @@ class PlanViewController : UIViewController, UICollectionViewDataSource, UIColle } func getRefreshViewString() -> String { - return "Fetching the plan..." + return NSLocalizedString("fetch_plan", comment: "") } @objc private func objDoAsync(_ sender: Any) { @@ -71,14 +75,6 @@ class PlanViewController : UIViewController, UICollectionViewDataSource, UIColle self.refreshControl.endRefreshing() } } - - override func viewDidLoad() { - super.viewDidLoad() - collectionView.backgroundColor = UIColor(red: 0.8, green: 0.8, blue: 0.8, alpha: 1.0) - - self.substs = getFromDatabase() - self.collectionView.reloadData() - } func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { return self.substs.count @@ -141,7 +137,7 @@ class PlanViewController : UIViewController, UICollectionViewDataSource, UIColle } func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, verticalSpacingForElementsInSectionAtIndex index: Int) -> CGFloat { - return 1 + return 0 // change this if needed } func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetsForSectionAtIndex index: Int) -> UIEdgeInsets { diff --git a/AvH Plan/de.lproj/LaunchScreen.strings b/AvH Plan/de.lproj/LaunchScreen.strings new file mode 100644 index 0000000..5ea8b1c --- /dev/null +++ b/AvH Plan/de.lproj/LaunchScreen.strings @@ -0,0 +1,12 @@ + +/* Class = "UITabBarItem"; title = "Information"; ObjectID = "OBW-rE-k7z"; */ +"OBW-rE-k7z.title" = "Informationen"; + +/* Class = "UITabBarItem"; title = "Plan"; ObjectID = "keQ-St-8hM"; */ +"keQ-St-8hM.title" = "Plan"; + +/* Class = "UITabBarItem"; title = "Personal"; ObjectID = "spn-vi-J6I"; */ +"spn-vi-J6I.title" = "Persönlich"; + +/* Class = "UITabBarItem"; title = "Menu"; ObjectID = "zev-fl-fMd"; */ +"zev-fl-fMd.title" = "Speiseplan"; diff --git a/AvH Plan/en.lproj/LaunchScreen.strings b/AvH Plan/en.lproj/LaunchScreen.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/AvH Plan/en.lproj/LaunchScreen.strings @@ -0,0 +1 @@ + diff --git a/Podfile b/Podfile index 497fc16..bcd7158 100644 --- a/Podfile +++ b/Podfile @@ -7,7 +7,6 @@ target 'AvH Plan' do # Pods for AvH Plan pod 'SwiftSoup' - pod 'Kanna' pod 'Alamofire' pod 'SQLite.swift' pod 'MagazineLayout'