diff --git a/iphone/Maps/Bridging/BridgeControllers.swift b/iphone/Maps/Bridging/BridgeControllers.swift index c78df13f1..e7ade0cd4 100644 --- a/iphone/Maps/Bridging/BridgeControllers.swift +++ b/iphone/Maps/Bridging/BridgeControllers.swift @@ -20,6 +20,15 @@ import UIKit +/// Class for using the SwiftUI `AboutView` in the interface builder +class AboutBridgeController: UIHostingController { + required init?(coder aDecoder: NSCoder) { + super.init(coder: aDecoder, rootView: AboutView()) + } +} + + + /// Class for using the SwiftUI `SettingsView` in the interface builder class SettingsBridgeController: UIHostingController { required init?(coder aDecoder: NSCoder) { diff --git a/iphone/Maps/Bridging/EmbeddedSafariView.swift b/iphone/Maps/Bridging/EmbeddedSafariView.swift new file mode 100644 index 000000000..61019b3b4 --- /dev/null +++ b/iphone/Maps/Bridging/EmbeddedSafariView.swift @@ -0,0 +1,42 @@ +import SwiftUI + +/// View for Safari via a WebKit view +struct EmbeddedSafariView: View { + // MARK: Properties + + /// If the content is loading + @State private var isLoading: Bool = true + + + /// The view height + @State private var height: CGFloat = .zero + + + /// The url + let url: URL + + + /// If the view should resize itself to the height of the website content + var hasDynamicHeight: Bool = true + + + /// The actual view + var body: some View { + ZStack { + if hasDynamicHeight { + EmbeddedSafariViewContent(isLoading: $isLoading, height: $height, hasDynamicHeight: hasDynamicHeight, url: url) + .frame(height: .infinity) + .edgesIgnoringSafeArea(.all) + } else { + EmbeddedSafariViewContent(isLoading: $isLoading, height: $height, hasDynamicHeight: hasDynamicHeight, url: url) + .edgesIgnoringSafeArea(.all) + } + + if isLoading { + ProgressView() + .controlSize(.large) + .frame(minHeight: 100) + } + } + } +} diff --git a/iphone/Maps/Bridging/EmbeddedSafariViewContent.swift b/iphone/Maps/Bridging/EmbeddedSafariViewContent.swift new file mode 100644 index 000000000..7f0ff4cb2 --- /dev/null +++ b/iphone/Maps/Bridging/EmbeddedSafariViewContent.swift @@ -0,0 +1,59 @@ +import SwiftUI +import WebKit + +/// Content of the view for Safari via a WebKit view +struct EmbeddedSafariViewContent: UIViewRepresentable { + // MARK: Properties + + /// If the content is loading + @Binding var isLoading: Bool + + + /// The view height + @Binding var height: CGFloat + + + /// If the view should resize itself to the height of the website content + var hasDynamicHeight: Bool = true + + + /// The url + let url: URL + + + + // MARK: Methods + + /// Create a coodindator for the WebKit view + func makeCoordinator() -> EmbeddedSafariViewCoordinator { + EmbeddedSafariViewCoordinator(self) + } + + + /// Create a WebKit view + /// - Parameter context: The context + /// - Returns: The WebKit view + func makeUIView(context: UIViewRepresentableContext) -> WKWebView { + let uiView = WKWebView() + uiView.navigationDelegate = context.coordinator + uiView.scrollView.isScrollEnabled = !hasDynamicHeight + uiView.scrollView.showsHorizontalScrollIndicator = false + uiView.allowsBackForwardNavigationGestures = false + uiView.allowsLinkPreview = false + if #available(iOS 16.0, *) { + uiView.isFindInteractionEnabled = false + } + uiView.isOpaque = false + uiView.backgroundColor = .clear + uiView.underPageBackgroundColor = .clear + uiView.load(URLRequest(url: url)) + return uiView + } + + + /// Update the WebKit view + /// - Parameter context: The context + func updateUIView(_ uiView: WKWebView, context: UIViewRepresentableContext) { + uiView.load(URLRequest(url: url)) + } +} diff --git a/iphone/Maps/Bridging/EmbeddedSafariViewCoordinator.swift b/iphone/Maps/Bridging/EmbeddedSafariViewCoordinator.swift new file mode 100644 index 000000000..2e59e7e94 --- /dev/null +++ b/iphone/Maps/Bridging/EmbeddedSafariViewCoordinator.swift @@ -0,0 +1,57 @@ +import WebKit + +/// Coordinator of the view for Safari via a WebKit view +class EmbeddedSafariViewCoordinator: NSObject { + // MARK: Properties + + /// The content + var content: EmbeddedSafariViewContent + + + // MARK: Initialization + + /// Initalize the coordinator with the matching content + /// - Parameter content: The content + init(_ content: EmbeddedSafariViewContent) { + self.content = content + } +} + + + +// MARK: - `WKNavigationDelegate` +extension EmbeddedSafariViewCoordinator: WKNavigationDelegate { + // MARK: Methods + + func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) { + if webView.isLoading == false { + self.content.isLoading = false + + if content.hasDynamicHeight { + webView.evaluateJavaScript( + "document.body.scrollHeight", + completionHandler: { (result, error) in + if let height = result as? CGFloat { + self.content.height = height + } + }) + } + } + } + + + func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping @MainActor (WKNavigationActionPolicy) -> Void) { + if let url = navigationAction.request.url { + if url.absoluteString.starts(with: "file:///") { + decisionHandler(.allow) + return + } else if navigationAction.navigationType == .linkActivated { + if UIApplication.shared.canOpenURL(url) { + UIApplication.shared.open(url) + } + } + } + + decisionHandler(.cancel) + } +} diff --git a/iphone/Maps/Categories/UIApplication+LoadingOverlay.swift b/iphone/Maps/Categories/UIApplication+LoadingOverlay.swift index 9e5fe2d4f..4769fe545 100644 --- a/iphone/Maps/Categories/UIApplication+LoadingOverlay.swift +++ b/iphone/Maps/Categories/UIApplication+LoadingOverlay.swift @@ -11,7 +11,11 @@ extension UIApplication { DispatchQueue.main.async { UIApplication.overlayViewController.modalPresentationStyle = .overFullScreen UIApplication.overlayViewController.modalTransitionStyle = .crossDissolve - window.rootViewController?.present(UIApplication.overlayViewController, animated: true, completion: completion) + if window.rootViewController?.presentedViewController != nil { + window.rootViewController?.presentedViewController?.present(UIApplication.overlayViewController, animated: true, completion: completion) + } else { + window.rootViewController?.present(UIApplication.overlayViewController, animated: true, completion: completion) + } } } diff --git a/iphone/Maps/Classes/CustomAlert/Toast/Toast.swift b/iphone/Maps/Classes/CustomAlert/Toast/Toast.swift index aeccf36be..49e71266c 100644 --- a/iphone/Maps/Classes/CustomAlert/Toast/Toast.swift +++ b/iphone/Maps/Classes/CustomAlert/Toast/Toast.swift @@ -113,3 +113,10 @@ final class Toast: NSObject { } } } + +extension NSLayoutConstraint { + func withPriority(_ priority: UILayoutPriority) -> NSLayoutConstraint { + self.priority = priority + return self + } +} diff --git a/iphone/Maps/Classes/MapViewController.h b/iphone/Maps/Classes/MapViewController.h index 68fd84ed8..eb1f4d37e 100644 --- a/iphone/Maps/Classes/MapViewController.h +++ b/iphone/Maps/Classes/MapViewController.h @@ -30,6 +30,7 @@ - (void)openMenu; - (void)openSettings; +- (void)openAbout; - (void)openMapsDownloader:(MWMMapDownloaderMode)mode; - (void)openEditor; - (void)openBookmarkEditor; diff --git a/iphone/Maps/Classes/MapViewController.mm b/iphone/Maps/Classes/MapViewController.mm index d665dea45..30a038f11 100644 --- a/iphone/Maps/Classes/MapViewController.mm +++ b/iphone/Maps/Classes/MapViewController.mm @@ -40,6 +40,7 @@ NSString *const kEditorSegue = @"Map2EditorSegue"; NSString *const kUDViralAlertWasShown = @"ViralAlertWasShown"; NSString *const kPP2BookmarkEditingSegue = @"PP2BookmarkEditing"; NSString *const kSettingsSegue = @"Map2Settings"; +NSString *const kAboutSegue = @"Map2About"; } // namespace @interface NSValueWrapper : NSObject @@ -584,6 +585,10 @@ NSString *const kSettingsSegue = @"Map2Settings"; [self performSegueWithIdentifier:kSettingsSegue sender:nil]; } +- (void)openAbout { + [self performSegueWithIdentifier:kAboutSegue sender:nil]; +} + - (void)openMapsDownloader:(MWMMapDownloaderMode)mode { [self performSegueWithIdentifier:kDownloaderSegue sender:@(mode)]; } diff --git a/iphone/Maps/Core/Theme/Renderers/UITableViewRenderer.swift b/iphone/Maps/Core/Theme/Renderers/UITableViewRenderer.swift index 62b05aad6..39a715f22 100644 --- a/iphone/Maps/Core/Theme/Renderers/UITableViewRenderer.swift +++ b/iphone/Maps/Core/Theme/Renderers/UITableViewRenderer.swift @@ -1,6 +1,6 @@ extension UITableView { @objc override func applyTheme() { - if styleName.isEmpty { + if styleName.isEmpty, style != .insetGrouped, style != .grouped { setStyle(.tableView) } for style in StyleManager.shared.getStyle(styleName) diff --git a/iphone/Maps/Images.xcassets/About/ic_about_faq.imageset/ic_about_faq.svg b/iphone/Maps/Images.xcassets/About/ic_about_faq.imageset/ic_about_faq.svg deleted file mode 100644 index 69e611ec2..000000000 --- a/iphone/Maps/Images.xcassets/About/ic_about_faq.imageset/ic_about_faq.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/iphone/Maps/Images.xcassets/About/ic_about_news.imageset/ic_about_news.svg b/iphone/Maps/Images.xcassets/About/ic_about_news.imageset/ic_about_news.svg deleted file mode 100644 index 987868caa..000000000 --- a/iphone/Maps/Images.xcassets/About/ic_about_news.imageset/ic_about_news.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/iphone/Maps/Images.xcassets/About/ic_about_rate_app.imageset/ic_about_rate_app.svg b/iphone/Maps/Images.xcassets/About/ic_about_rate_app.imageset/ic_about_rate_app.svg deleted file mode 100644 index a49d89c72..000000000 --- a/iphone/Maps/Images.xcassets/About/ic_about_rate_app.imageset/ic_about_rate_app.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/iphone/Maps/Images.xcassets/About/ic_about_report_bug.imageset/Contents.json b/iphone/Maps/Images.xcassets/About/ic_about_report_bug.imageset/Contents.json deleted file mode 100644 index f70eb38ac..000000000 --- a/iphone/Maps/Images.xcassets/About/ic_about_report_bug.imageset/Contents.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "images" : [ - { - "filename" : "ic_about_report_bug.svg", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - }, - "properties" : { - "preserves-vector-representation" : true, - "template-rendering-intent" : "template" - } -} diff --git a/iphone/Maps/Images.xcassets/About/ic_about_report_bug.imageset/ic_about_report_bug.svg b/iphone/Maps/Images.xcassets/About/ic_about_report_bug.imageset/ic_about_report_bug.svg deleted file mode 100644 index 32764df63..000000000 --- a/iphone/Maps/Images.xcassets/About/ic_about_report_bug.imageset/ic_about_report_bug.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/iphone/Maps/Images.xcassets/About/ic_about_report_osm.imageset/Contents.json b/iphone/Maps/Images.xcassets/About/ic_about_report_osm.imageset/Contents.json deleted file mode 100644 index d50f82a7e..000000000 --- a/iphone/Maps/Images.xcassets/About/ic_about_report_osm.imageset/Contents.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "images" : [ - { - "filename" : "ic_about_report_osm.svg", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - }, - "properties" : { - "preserves-vector-representation" : true, - "template-rendering-intent" : "template" - } -} diff --git a/iphone/Maps/Images.xcassets/About/ic_about_report_osm.imageset/ic_about_report_osm.svg b/iphone/Maps/Images.xcassets/About/ic_about_report_osm.imageset/ic_about_report_osm.svg deleted file mode 100644 index be88a1aab..000000000 --- a/iphone/Maps/Images.xcassets/About/ic_about_report_osm.imageset/ic_about_report_osm.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/iphone/Maps/Images.xcassets/About/ic_about_volunteer.imageset/ic_about_volunteer.svg b/iphone/Maps/Images.xcassets/About/ic_about_volunteer.imageset/ic_about_volunteer.svg deleted file mode 100644 index bcd93db53..000000000 --- a/iphone/Maps/Images.xcassets/About/ic_about_volunteer.imageset/ic_about_volunteer.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/iphone/Maps/Images.xcassets/About/ic_christmas_tree.imageset/Contents.json b/iphone/Maps/Images.xcassets/About/ic_christmas_tree.imageset/Contents.json deleted file mode 100644 index 2e35a54c2..000000000 --- a/iphone/Maps/Images.xcassets/About/ic_christmas_tree.imageset/Contents.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "images" : [ - { - "filename" : "ic_christmas_tree.svg", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - }, - "properties" : { - "preserves-vector-representation" : true, - "template-rendering-intent" : "original" - } -} diff --git a/iphone/Maps/Images.xcassets/About/ic_christmas_tree.imageset/ic_christmas_tree.svg b/iphone/Maps/Images.xcassets/About/ic_christmas_tree.imageset/ic_christmas_tree.svg deleted file mode 100644 index 54673aff6..000000000 --- a/iphone/Maps/Images.xcassets/About/ic_christmas_tree.imageset/ic_christmas_tree.svg +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/iphone/Maps/Images.xcassets/About/ic_social_media_bluesky.imageset/Contents.json b/iphone/Maps/Images.xcassets/About/ic_social_media_bluesky.imageset/Contents.json deleted file mode 100644 index cc87ba2fd..000000000 --- a/iphone/Maps/Images.xcassets/About/ic_social_media_bluesky.imageset/Contents.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "images" : [ - { - "filename" : "ic_social_media_bluesky.svg", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - }, - "properties" : { - "preserves-vector-representation" : true, - "template-rendering-intent" : "original" - } -} diff --git a/iphone/Maps/Images.xcassets/About/ic_social_media_bluesky.imageset/ic_social_media_bluesky.svg b/iphone/Maps/Images.xcassets/About/ic_social_media_bluesky.imageset/ic_social_media_bluesky.svg deleted file mode 100644 index c71e2018a..000000000 --- a/iphone/Maps/Images.xcassets/About/ic_social_media_bluesky.imageset/ic_social_media_bluesky.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/iphone/Maps/Images.xcassets/About/ic_social_media_codeberg.imageset/Contents.json b/iphone/Maps/Images.xcassets/About/ic_social_media_codeberg.imageset/Contents.json deleted file mode 100644 index 4483b0ee8..000000000 --- a/iphone/Maps/Images.xcassets/About/ic_social_media_codeberg.imageset/Contents.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "images" : [ - { - "filename" : "ic_social_media_codeberg.svg", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - }, - "properties" : { - "preserves-vector-representation" : true, - "template-rendering-intent" : "original" - } -} diff --git a/iphone/Maps/Images.xcassets/About/ic_social_media_codeberg.imageset/ic_social_media_codeberg.svg b/iphone/Maps/Images.xcassets/About/ic_social_media_codeberg.imageset/ic_social_media_codeberg.svg deleted file mode 100644 index 028b729ff..000000000 --- a/iphone/Maps/Images.xcassets/About/ic_social_media_codeberg.imageset/ic_social_media_codeberg.svg +++ /dev/null @@ -1,164 +0,0 @@ - - - Codeberg logo - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - Codeberg logo - - - - Robert Martinez - - - - - Codeberg and the Codeberg Logo are trademarks of Codeberg e.V. - - - 2020-04-09 - - - Codeberg e.V. - - - codeberg.org - - - - - - - - - - - - - diff --git a/iphone/Maps/Images.xcassets/About/ic_social_media_facebook.imageset/Contents.json b/iphone/Maps/Images.xcassets/About/ic_social_media_facebook.imageset/Contents.json deleted file mode 100644 index 0f9c4afca..000000000 --- a/iphone/Maps/Images.xcassets/About/ic_social_media_facebook.imageset/Contents.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "images" : [ - { - "filename" : "ic_social_media_facebook.pdf", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - }, - "properties" : { - "preserves-vector-representation" : true, - "template-rendering-intent" : "original" - } -} diff --git a/iphone/Maps/Images.xcassets/About/ic_social_media_facebook.imageset/ic_social_media_facebook.pdf b/iphone/Maps/Images.xcassets/About/ic_social_media_facebook.imageset/ic_social_media_facebook.pdf deleted file mode 100644 index e16b93608..000000000 --- a/iphone/Maps/Images.xcassets/About/ic_social_media_facebook.imageset/ic_social_media_facebook.pdf +++ /dev/null @@ -1,113 +0,0 @@ -%PDF-1.7 - -1 0 obj - << >> -endobj - -2 0 obj - << /Length 3 0 R >> -stream -/DeviceRGB CS -/DeviceRGB cs -q -1.000000 0.000000 -0.000000 1.000000 0.000000 0.175674 cm -0.031373 0.400000 1.000000 scn -48.000000 23.824326 m -48.000000 37.079048 37.254723 47.824326 24.000000 47.824326 c -10.745279 47.824326 0.000000 37.079048 0.000000 23.824326 c -0.000000 12.569286 7.749120 3.124805 18.202560 0.530884 c -18.202560 16.489925 l -13.253760 16.489925 l -13.253760 23.824326 l -18.202560 23.824326 l -18.202560 26.984646 l -18.202560 35.153286 21.899521 38.939526 29.919361 38.939526 c -31.440001 38.939526 34.063683 38.640965 35.136963 38.343365 c -35.136963 31.695366 l -34.570560 31.754887 33.586559 31.784645 32.364479 31.784645 c -28.429441 31.784645 26.908798 30.293766 26.908798 26.418245 c -26.908798 23.824326 l -34.748161 23.824326 l -33.401279 16.489925 l -26.908798 16.489925 l -26.908798 0.000004 l -38.792641 1.435204 48.000961 11.553604 48.000961 23.824326 c -48.000000 23.824326 l -h -f -n -Q -q -1.000000 0.000000 -0.000000 1.000000 13.252808 0.000000 cm -1.000000 1.000000 1.000000 scn -20.147522 16.665604 m -21.494402 24.000004 l -13.655041 24.000004 l -13.655041 26.593925 l -13.655041 30.469444 15.175679 31.960323 19.110720 31.960323 c -20.332800 31.960323 21.316799 31.930565 21.883200 31.871044 c -21.883200 38.519043 l -20.809919 38.817604 18.186239 39.115204 16.665600 39.115204 c -8.645760 39.115204 4.948801 35.328964 4.948801 27.160324 c -4.948801 24.000004 l -0.000000 24.000004 l -0.000000 16.665604 l -4.948801 16.665604 l -4.948801 0.706562 l -6.805440 0.245762 8.747520 0.000004 10.746241 0.000004 c -11.730240 0.000004 12.700800 0.060486 13.654079 0.175686 c -13.654079 16.665604 l -20.146561 16.665604 l -20.147522 16.665604 l -h -f -n -Q - -endstream -endobj - -3 0 obj - 1642 -endobj - -4 0 obj - << /Annots [] - /Type /Page - /MediaBox [ 0.000000 0.000000 48.000000 48.000000 ] - /Resources 1 0 R - /Contents 2 0 R - /Parent 5 0 R - >> -endobj - -5 0 obj - << /Kids [ 4 0 R ] - /Count 1 - /Type /Pages - >> -endobj - -6 0 obj - << /Pages 5 0 R - /Type /Catalog - >> -endobj - -xref -0 7 -0000000000 65535 f -0000000010 00000 n -0000000034 00000 n -0000001732 00000 n -0000001755 00000 n -0000001928 00000 n -0000002002 00000 n -trailer -<< /ID [ (some) (id) ] - /Root 6 0 R - /Size 7 ->> -startxref -2061 -%%EOF \ No newline at end of file diff --git a/iphone/Maps/Images.xcassets/About/ic_social_media_fosstodon.imageset/Contents.json b/iphone/Maps/Images.xcassets/About/ic_social_media_fosstodon.imageset/Contents.json deleted file mode 100644 index fc219cf7e..000000000 --- a/iphone/Maps/Images.xcassets/About/ic_social_media_fosstodon.imageset/Contents.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "images" : [ - { - "filename" : "ic_social_media_fosstodon.svg", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - }, - "properties" : { - "preserves-vector-representation" : true, - "template-rendering-intent" : "original" - } -} diff --git a/iphone/Maps/Images.xcassets/About/ic_social_media_fosstodon.imageset/ic_social_media_fosstodon.svg b/iphone/Maps/Images.xcassets/About/ic_social_media_fosstodon.imageset/ic_social_media_fosstodon.svg deleted file mode 100644 index ff5658a7e..000000000 --- a/iphone/Maps/Images.xcassets/About/ic_social_media_fosstodon.imageset/ic_social_media_fosstodon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/iphone/Maps/Images.xcassets/About/ic_social_media_instagram.imageset/Contents.json b/iphone/Maps/Images.xcassets/About/ic_social_media_instagram.imageset/Contents.json deleted file mode 100644 index cf5281252..000000000 --- a/iphone/Maps/Images.xcassets/About/ic_social_media_instagram.imageset/Contents.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "images" : [ - { - "filename" : "ic_social_media_instagram.pdf", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - }, - "properties" : { - "preserves-vector-representation" : true, - "template-rendering-intent" : "original" - } -} diff --git a/iphone/Maps/Images.xcassets/About/ic_social_media_instagram.imageset/ic_social_media_instagram.pdf b/iphone/Maps/Images.xcassets/About/ic_social_media_instagram.imageset/ic_social_media_instagram.pdf deleted file mode 100644 index 09e3ae424..000000000 --- a/iphone/Maps/Images.xcassets/About/ic_social_media_instagram.imageset/ic_social_media_instagram.pdf +++ /dev/null @@ -1,355 +0,0 @@ -%PDF-1.7 - -1 0 obj - << /Length 2 0 R - /Range [ 0.000000 1.000000 ] - /Domain [ 0.000000 1.000000 ] - /FunctionType 4 - >> -stream -{ 1.000000 exch dup 0.000000 gt { exch pop dup 0.000000 sub 0.000000 mul 1.000000 add exch } if dup 0.128000 gt { exch pop dup 0.128000 sub -1.146789 mul 1.000000 add exch } if dup 1.000000 gt { exch pop 0.000000 exch } if pop } -endstream -endobj - -2 0 obj - 229 -endobj - -3 0 obj - << /BBox [ 0.000000 0.000000 55.000000 55.000000 ] - /Resources << /Pattern << /P1 << /Matrix [ 9.564900 -47.783638 196.961945 39.448235 -112.476196 55.205605 ] - /Shading << /Coords [ 0.500000 0.500000 0.000000 0.500000 0.500000 0.500000 ] - /ColorSpace /DeviceGray - /Function 1 0 R - /Domain [ 0.000000 1.000000 ] - /ShadingType 3 - /Extend [ true true ] - >> - /PatternType 2 - /Type /Pattern - >> >> >> - /Subtype /Form - /Length 4 0 R - /Group << /Type /Group - /S /Transparency - /CS /DeviceGray - >> - /Type /XObject - >> -stream -/DeviceGray CS -/DeviceGray cs -1.000000 0.000000 -0.000000 1.000000 0.000000 0.000000 cm -27.508976 55.000000 m -16.027981 55.000000 12.670229 54.988152 12.017544 54.933994 c -9.661448 54.738094 8.195339 54.367023 6.598101 53.571571 c -5.367179 52.960175 4.396400 52.251461 3.438311 51.257992 c -1.693447 49.446224 0.635953 47.217266 0.253140 44.567734 c -0.067022 43.281471 0.012878 43.019138 0.001880 36.449043 c --0.002350 34.259014 0.001880 31.376770 0.001880 27.510788 c -0.001880 16.035973 0.014570 12.680691 0.069560 12.029095 c -0.259908 9.735825 0.619456 8.293011 1.380852 6.714802 c -2.835963 3.693775 5.615056 1.425888 8.889055 0.579662 c -10.022689 0.287716 11.274761 0.126938 12.882151 0.050777 c -13.563177 0.021160 20.504562 0.000000 27.450178 0.000000 c -34.395798 0.000000 41.341415 0.008461 42.005524 0.042309 c -43.866711 0.129894 44.947468 0.275028 46.142437 0.583900 c -47.765820 1.000317 49.278755 1.766197 50.575581 2.828056 c -51.872406 3.889915 52.921856 5.222153 53.650642 6.731724 c -54.397232 8.271854 54.775814 9.769676 54.947128 11.943203 c -54.984352 12.417091 55.000000 19.972614 55.000000 27.517982 c -55.000000 35.064621 54.983082 42.606182 54.945858 43.080070 c -54.772430 45.288715 54.393845 46.773842 53.623142 48.343590 c -52.990761 49.628586 52.288589 50.588203 51.269165 51.569401 c -49.450275 53.307549 47.225307 54.365330 44.573536 54.747826 c -43.288895 54.933571 43.032982 54.988575 36.459602 55.000000 c -27.508976 55.000000 l -h -/Pattern cs -/P1 scn -f -n - -endstream -endobj - -4 0 obj - 1473 -endobj - -5 0 obj - << /Length 6 0 R - /Range [ 0.000000 1.000000 0.000000 1.000000 0.000000 1.000000 ] - /Domain [ 0.000000 1.000000 ] - /FunctionType 4 - >> -stream -{ 0.215686 exch 0.443137 exch 0.784314 exch dup 0.000000 gt { exch pop exch pop exch pop dup 0.000000 sub 0.000000 mul 0.215686 add exch dup 0.000000 sub 0.000000 mul 0.443137 add exch dup 0.000000 sub 0.000000 mul 0.784314 add exch } if dup 0.128000 gt { exch pop exch pop exch pop dup 0.128000 sub 0.211369 mul 0.215686 add exch dup 0.128000 sub -0.508185 mul 0.443137 add exch dup 0.128000 sub 0.247347 mul 0.784314 add exch } if dup 1.000000 gt { exch pop exch pop exch pop 0.400000 exch 0.000000 exch 1.000000 exch } if pop } -endstream -endobj - -6 0 obj - 531 -endobj - -7 0 obj - << /Length 8 0 R - /Range [ 0.000000 1.000000 0.000000 1.000000 0.000000 1.000000 ] - /Domain [ 0.000000 1.000000 ] - /FunctionType 4 - >> -stream -{ 1.000000 exch 0.866667 exch 0.333333 exch dup 0.000000 gt { exch pop exch pop exch pop dup 0.000000 sub 0.000000 mul 1.000000 add exch dup 0.000000 sub 0.000000 mul 0.866667 add exch dup 0.000000 sub 0.000000 mul 0.333333 add exch } if dup 0.100000 gt { exch pop exch pop exch pop dup 0.100000 sub 0.000000 mul 1.000000 add exch dup 0.100000 sub -1.343137 mul 0.866667 add exch dup 0.100000 sub -0.225490 mul 0.333333 add exch } if dup 0.500000 gt { exch pop exch pop exch pop dup 0.500000 sub -0.431373 mul 1.000000 add exch dup 0.500000 sub -0.227451 mul 0.329412 add exch dup 0.500000 sub 0.854902 mul 0.243137 add exch } if dup 1.000000 gt { exch pop exch pop exch pop 0.784314 exch 0.215686 exch 0.670588 exch } if pop } -endstream -endobj - -8 0 obj - 728 -endobj - -9 0 obj - << /ExtGState << /E1 << /SMask << /Type /Mask - /G 3 0 R - /S /Luminosity - >> - /Type /ExtGState - >> >> - /Pattern << /P2 << /Matrix [ 9.564900 -47.783638 196.961945 39.448235 -112.476196 55.205605 ] - /Shading << /Coords [ 0.500000 0.500000 0.000000 0.500000 0.500000 0.500000 ] - /ColorSpace /DeviceRGB - /Function 5 0 R - /Domain [ 0.000000 1.000000 ] - /ShadingType 3 - /Extend [ true true ] - >> - /PatternType 2 - /Type /Pattern - >> - /P1 << /Matrix [ 0.000000 109.018143 -101.395439 -0.000000 65.307152 -58.745239 ] - /Shading << /Coords [ 0.500000 0.500000 0.000000 0.500000 0.500000 0.500000 ] - /ColorSpace /DeviceRGB - /Function 7 0 R - /Domain [ 0.000000 1.000000 ] - /ShadingType 3 - /Extend [ true true ] - >> - /PatternType 2 - /Type /Pattern - >> - >> - >> -endobj - -10 0 obj - << /Length 11 0 R >> -stream -/DeviceRGB CS -/DeviceRGB cs -q -1.000000 0.000000 -0.000000 1.000000 0.000000 0.000000 cm -/Pattern cs -/P1 scn -27.508976 55.000000 m -16.027981 55.000000 12.670229 54.988152 12.017544 54.933994 c -9.661448 54.738094 8.195339 54.367023 6.598101 53.571571 c -5.367179 52.960175 4.396400 52.251461 3.438311 51.257992 c -1.693447 49.446224 0.635953 47.217266 0.253140 44.567734 c -0.067022 43.281471 0.012878 43.019138 0.001880 36.449043 c --0.002350 34.259014 0.001880 31.376770 0.001880 27.510788 c -0.001880 16.035973 0.014570 12.680691 0.069560 12.029095 c -0.259908 9.735825 0.619456 8.293011 1.380852 6.714802 c -2.835963 3.693775 5.615056 1.425888 8.889055 0.579662 c -10.022689 0.287716 11.274761 0.126938 12.882151 0.050777 c -13.563177 0.021160 20.504562 0.000000 27.450178 0.000000 c -34.395798 0.000000 41.341415 0.008461 42.005524 0.042309 c -43.866711 0.129894 44.947468 0.275028 46.142437 0.583900 c -47.765820 1.000317 49.278755 1.766197 50.575581 2.828056 c -51.872406 3.889915 52.921856 5.222153 53.650642 6.731724 c -54.397232 8.271854 54.775814 9.769676 54.947128 11.943203 c -54.984352 12.417091 55.000000 19.972614 55.000000 27.517982 c -55.000000 35.064621 54.983082 42.606182 54.945858 43.080070 c -54.772430 45.288715 54.393845 46.773842 53.623142 48.343590 c -52.990761 49.628586 52.288589 50.588203 51.269165 51.569401 c -49.450275 53.307549 47.225307 54.365330 44.573536 54.747826 c -43.288895 54.933571 43.032982 54.988575 36.459602 55.000000 c -27.508976 55.000000 l -h -f -n -Q -q -/E1 gs -1.000000 0.000000 -0.000000 1.000000 0.000000 0.000000 cm -/Pattern cs -/P2 scn -27.508976 55.000000 m -16.027981 55.000000 12.670229 54.988152 12.017544 54.933994 c -9.661448 54.738094 8.195339 54.367023 6.598101 53.571571 c -5.367179 52.960175 4.396400 52.251461 3.438311 51.257992 c -1.693447 49.446224 0.635953 47.217266 0.253140 44.567734 c -0.067022 43.281471 0.012878 43.019138 0.001880 36.449043 c --0.002350 34.259014 0.001880 31.376770 0.001880 27.510788 c -0.001880 16.035973 0.014570 12.680691 0.069560 12.029095 c -0.259908 9.735825 0.619456 8.293011 1.380852 6.714802 c -2.835963 3.693775 5.615056 1.425888 8.889055 0.579662 c -10.022689 0.287716 11.274761 0.126938 12.882151 0.050777 c -13.563177 0.021160 20.504562 0.000000 27.450178 0.000000 c -34.395798 0.000000 41.341415 0.008461 42.005524 0.042309 c -43.866711 0.129894 44.947468 0.275028 46.142437 0.583900 c -47.765820 1.000317 49.278755 1.766197 50.575581 2.828056 c -51.872406 3.889915 52.921856 5.222153 53.650642 6.731724 c -54.397232 8.271854 54.775814 9.769676 54.947128 11.943203 c -54.984352 12.417091 55.000000 19.972614 55.000000 27.517982 c -55.000000 35.064621 54.983082 42.606182 54.945858 43.080070 c -54.772430 45.288715 54.393845 46.773842 53.623142 48.343590 c -52.990761 49.628586 52.288589 50.588203 51.269165 51.569401 c -49.450275 53.307549 47.225307 54.365330 44.573536 54.747826 c -43.288895 54.933571 43.032982 54.988575 36.459602 55.000000 c -27.508976 55.000000 l -h -f -n -Q -q -1.000000 0.000000 -0.000000 1.000000 7.191101 7.188263 cm -1.000000 1.000000 1.000000 scn -20.305143 40.618805 m -14.790950 40.618805 14.098926 40.594688 11.933179 40.496101 c -9.771663 40.397095 8.296248 40.054794 7.005260 39.552559 c -5.669858 39.033825 4.537070 38.339920 3.408513 37.210632 c -2.279110 36.081768 1.585394 34.948673 1.065107 33.613331 c -0.561740 32.321568 0.219113 30.845325 0.121823 28.684067 c -0.025380 26.517731 0.000000 25.825092 0.000000 20.309397 c -0.000000 14.793701 0.024534 14.103601 0.122670 11.937265 c -0.222074 9.775160 0.564279 8.299347 1.065954 7.008007 c -1.584972 5.672241 2.278687 4.539143 3.407667 3.410275 c -4.535801 2.280567 5.668588 1.584969 7.003145 1.066231 c -8.294979 0.563995 9.770817 0.221703 11.931911 0.122692 c -14.097657 0.024109 14.789259 -0.000011 20.303030 -0.000011 c -25.817646 -0.000011 26.507557 0.024109 28.673304 0.122692 c -30.834820 0.221703 32.311928 0.563995 33.603760 1.066231 c -34.938740 1.584969 36.069836 2.280567 37.197968 3.410275 c -38.327374 4.539143 39.021084 5.672237 39.541370 7.007580 c -40.040508 8.299343 40.383137 9.775585 40.484657 11.936844 c -40.581947 14.103180 40.607327 14.793701 40.607327 20.309397 c -40.607327 25.825092 40.581947 26.517307 40.484657 28.683643 c -40.383137 30.845749 40.040508 32.321568 39.541370 33.612907 c -39.021084 34.948673 38.327374 36.081768 37.197968 37.210632 c -36.068565 38.340343 34.939163 39.034248 33.602489 39.552559 c -32.308117 40.054794 30.831860 40.397095 28.670341 40.496101 c -26.504595 40.594688 25.815107 40.618805 20.299221 40.618805 c -20.305143 40.618805 l -h -18.483717 36.958881 m -19.024307 36.959728 19.627502 36.958881 20.305143 36.958881 c -25.726278 36.958881 26.368813 36.939419 28.509602 36.842102 c -30.489231 36.751556 31.563641 36.420681 32.279354 36.142696 c -33.226868 35.774590 33.902397 35.334549 34.612610 34.623722 c -35.323246 33.912891 35.763161 33.235912 36.132015 32.288139 c -36.409924 31.573080 36.741131 30.498375 36.831226 28.518208 c -36.928516 26.377256 36.949669 25.734127 36.949669 20.314053 c -36.949669 14.893980 36.928516 14.250847 36.831226 12.109898 c -36.740707 10.129730 36.409924 9.055023 36.132015 8.339962 c -35.764008 7.392193 35.323246 6.717327 34.612610 6.006920 c -33.901974 5.296093 33.227291 4.856052 32.279354 4.487946 c -31.564487 4.208691 30.489231 3.878666 28.509602 3.788120 c -26.369236 3.690804 25.726278 3.669647 20.305143 3.669647 c -14.883586 3.669647 14.241053 3.690804 12.100686 3.788120 c -10.121058 3.879513 9.046646 4.210384 8.330511 4.488373 c -7.382997 4.856480 6.706201 5.296513 5.995565 6.007343 c -5.284930 6.718174 4.845013 7.393459 4.476159 8.341652 c -4.198249 9.056713 3.867043 10.131424 3.776944 12.111591 c -3.679655 14.252541 3.660196 14.895674 3.660196 20.319132 c -3.660196 25.742588 3.679655 26.382332 3.776944 28.523283 c -3.867465 30.503448 4.198249 31.578157 4.476159 32.294064 c -4.844166 33.241837 5.284930 33.918816 5.995565 34.629646 c -6.706201 35.340473 7.382997 35.780510 8.330511 36.149467 c -9.046223 36.428719 10.121058 36.758747 12.100686 36.849716 c -13.973719 36.934341 14.699581 36.959724 18.483717 36.963959 c -18.483717 36.958881 l -h -31.143183 33.586674 m -30.661259 33.586674 30.190159 33.443718 29.789467 33.175884 c -29.388773 32.908051 29.076487 32.527374 28.892101 32.081997 c -28.707714 31.636621 28.659515 31.146553 28.753595 30.673773 c -28.847675 30.200993 29.079811 29.766739 29.420641 29.425934 c -29.761473 29.085129 30.195686 28.853081 30.668369 28.759140 c -31.141054 28.665199 31.630972 28.713583 32.076164 28.898174 c -32.521355 29.082764 32.901821 29.395267 33.169441 29.796164 c -33.437061 30.197060 33.579815 30.668335 33.579647 31.150391 c -33.579647 32.495888 32.488316 33.587521 31.143183 33.587521 c -31.143183 33.586674 l -h -20.305143 30.739124 m -14.546881 30.739124 9.878259 26.069229 9.878259 20.309397 c -9.878259 14.549564 14.546881 9.881786 20.305143 9.881786 c -26.063408 9.881786 30.730762 14.549564 30.730762 20.309397 c -30.730762 26.069229 26.062984 30.739124 20.304720 30.739124 c -20.305143 30.739124 l -h -20.305143 27.079201 m -24.042749 27.079201 27.073101 24.048443 27.073101 20.309397 c -27.073101 16.570774 24.042749 13.539595 20.305143 13.539595 c -16.567116 13.539595 13.537185 16.570774 13.537185 20.309397 c -13.537185 24.048443 16.567116 27.079201 20.305143 27.079201 c -20.305143 27.079201 l -h -f -n -Q - -endstream -endobj - -11 0 obj - 7233 -endobj - -12 0 obj - << /Annots [] - /Type /Page - /MediaBox [ 0.000000 0.000000 55.000000 55.000000 ] - /Resources 9 0 R - /Contents 10 0 R - /Parent 13 0 R - >> -endobj - -13 0 obj - << /Kids [ 12 0 R ] - /Count 1 - /Type /Pages - >> -endobj - -14 0 obj - << /Pages 13 0 R - /Type /Catalog - >> -endobj - -xref -0 15 -0000000000 65535 f -0000000010 00000 n -0000000387 00000 n -0000000409 00000 n -0000002925 00000 n -0000002948 00000 n -0000003663 00000 n -0000003685 00000 n -0000004597 00000 n -0000004619 00000 n -0000006159 00000 n -0000013450 00000 n -0000013474 00000 n -0000013650 00000 n -0000013726 00000 n -trailer -<< /ID [ (some) (id) ] - /Root 14 0 R - /Size 15 ->> -startxref -13787 -%%EOF \ No newline at end of file diff --git a/iphone/Maps/Images.xcassets/About/ic_social_media_lemmy.imageset/Contents.json b/iphone/Maps/Images.xcassets/About/ic_social_media_lemmy.imageset/Contents.json deleted file mode 100644 index 52d8ff499..000000000 --- a/iphone/Maps/Images.xcassets/About/ic_social_media_lemmy.imageset/Contents.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "images" : [ - { - "filename" : "ic_social_media_lemmy.svg", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - }, - "properties" : { - "preserves-vector-representation" : true, - "template-rendering-intent" : "original" - } -} diff --git a/iphone/Maps/Images.xcassets/About/ic_social_media_lemmy.imageset/ic_social_media_lemmy.svg b/iphone/Maps/Images.xcassets/About/ic_social_media_lemmy.imageset/ic_social_media_lemmy.svg deleted file mode 100644 index eb0772428..000000000 --- a/iphone/Maps/Images.xcassets/About/ic_social_media_lemmy.imageset/ic_social_media_lemmy.svg +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - - - - - - diff --git a/iphone/Maps/Images.xcassets/About/ic_social_media_linkedin.imageset/Contents.json b/iphone/Maps/Images.xcassets/About/ic_social_media_linkedin.imageset/Contents.json deleted file mode 100644 index 5feb7d243..000000000 --- a/iphone/Maps/Images.xcassets/About/ic_social_media_linkedin.imageset/Contents.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "images" : [ - { - "filename" : "ic_social_media_linkedin.pdf", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - }, - "properties" : { - "preserves-vector-representation" : true, - "template-rendering-intent" : "original" - } -} diff --git a/iphone/Maps/Images.xcassets/About/ic_social_media_linkedin.imageset/ic_social_media_linkedin.pdf b/iphone/Maps/Images.xcassets/About/ic_social_media_linkedin.imageset/ic_social_media_linkedin.pdf deleted file mode 100644 index 551a7cbe7..000000000 --- a/iphone/Maps/Images.xcassets/About/ic_social_media_linkedin.imageset/ic_social_media_linkedin.pdf +++ /dev/null @@ -1,203 +0,0 @@ -%PDF-1.7 - -1 0 obj - << /Type /XObject - /Length 2 0 R - /Group << /Type /Group - /S /Transparency - >> - /Subtype /Form - /Resources << >> - /BBox [ 0.000000 0.000000 53.616821 53.616821 ] - >> -stream -/DeviceRGB CS -/DeviceRGB cs -q -1.000000 0.000000 -0.000000 1.000000 0.000000 0.000000 cm -1.000000 1.000000 1.000000 scn -0.000000 48.616821 m -0.000000 51.378242 2.238576 53.616821 5.000000 53.616821 c -48.616821 53.616821 l -51.378242 53.616821 53.616821 51.378246 53.616821 48.616821 c -53.616821 5.000000 l -53.616821 2.238579 51.378246 0.000000 48.616821 0.000000 c -5.000000 0.000000 l -2.238577 0.000000 0.000000 2.238575 0.000000 5.000000 c -0.000000 48.616821 l -h -f -n -Q -q -1.000000 0.000000 -0.000000 1.000000 0.000000 0.000000 cm -0.039216 0.400000 0.760784 scn -49.658855 53.616821 m -3.957965 53.616821 l -2.908247 53.616821 1.901524 53.199821 1.159261 52.457561 c -0.416999 51.715298 0.000000 50.708572 0.000000 49.658855 c -0.000000 3.957966 l -0.000000 2.908245 0.416999 1.901516 1.159261 1.159256 c -1.901524 0.416992 2.908247 -0.000004 3.957965 0.000000 c -49.658855 0.000000 l -50.708576 -0.000004 51.715305 0.416992 52.457565 1.159256 c -53.199829 1.901516 53.616825 2.908245 53.616821 3.957966 c -53.616821 49.658855 l -53.616825 50.708572 53.199829 51.715298 52.457565 52.457561 c -51.715305 53.199821 50.708576 53.616821 49.658855 53.616821 c -h -15.980792 7.941990 m -7.919653 7.941990 l -7.919653 33.547745 l -15.980792 33.547745 l -15.980792 7.941990 l -h -11.944638 37.096138 m -11.030241 37.101288 10.137859 37.377190 9.380116 37.889023 c -8.622374 38.400860 8.033230 39.125690 7.687038 39.972034 c -7.340846 40.818382 7.253122 41.748306 7.434936 42.644463 c -7.616749 43.540619 8.059953 44.362831 8.708612 45.007339 c -9.357272 45.651848 10.182315 46.089764 11.079618 46.265820 c -11.976922 46.441875 12.906269 46.348183 13.750374 45.996563 c -14.594480 45.644943 15.315511 45.051163 15.822470 44.290146 c -16.329430 43.529133 16.599596 42.634998 16.598875 41.720589 c -16.607500 41.108387 16.492785 40.500717 16.261562 39.933800 c -16.030342 39.366879 15.687348 38.852310 15.253028 38.420769 c -14.818707 37.989231 14.301950 37.649548 13.733557 37.421970 c -13.165163 37.194393 12.556769 37.083580 11.944638 37.096138 c -h -45.693451 7.919651 m -37.636036 7.919651 l -37.636036 21.908424 l -37.636036 26.033941 35.882317 27.307343 33.618496 27.307343 c -31.228081 27.307343 28.882339 25.505220 28.882339 21.804171 c -28.882339 7.919651 l -20.821199 7.919651 l -20.821199 33.529129 l -28.573301 33.529129 l -28.573301 29.980736 l -28.677557 29.980736 l -29.455746 31.555731 32.181267 34.247742 36.340294 34.247742 c -40.838150 34.247742 45.697170 31.578072 45.697170 23.758951 c -45.693451 7.919651 l -h -f -n -Q - -endstream -endobj - -2 0 obj - 2476 -endobj - -3 0 obj - << /Type /XObject - /Length 4 0 R - /Group << /Type /Group - /S /Transparency - >> - /Subtype /Form - /Resources << >> - /BBox [ 0.000000 0.000000 53.616821 53.616821 ] - >> -stream -/DeviceRGB CS -/DeviceRGB cs -q -1.000000 0.000000 -0.000000 1.000000 0.000000 0.000000 cm -0.000000 0.000000 0.000000 scn -0.000000 48.616821 m -0.000000 51.378242 2.238576 53.616821 5.000000 53.616821 c -48.616821 53.616821 l -51.378242 53.616821 53.616821 51.378246 53.616821 48.616821 c -53.616821 5.000000 l -53.616821 2.238579 51.378246 0.000000 48.616821 0.000000 c -5.000000 0.000000 l -2.238577 0.000000 0.000000 2.238575 0.000000 5.000000 c -0.000000 48.616821 l -h -f -n -Q - -endstream -endobj - -4 0 obj - 468 -endobj - -5 0 obj - << /XObject << /X1 1 0 R >> - /ExtGState << /E1 << /SMask << /Type /Mask - /G 3 0 R - /S /Alpha - >> - /Type /ExtGState - >> >> - >> -endobj - -6 0 obj - << /Length 7 0 R >> -stream -/DeviceRGB CS -/DeviceRGB cs -q -/E1 gs -/X1 Do -Q - -endstream -endobj - -7 0 obj - 46 -endobj - -8 0 obj - << /Annots [] - /Type /Page - /MediaBox [ 0.000000 0.000000 53.616821 53.616821 ] - /Resources 5 0 R - /Contents 6 0 R - /Parent 9 0 R - >> -endobj - -9 0 obj - << /Kids [ 8 0 R ] - /Count 1 - /Type /Pages - >> -endobj - -10 0 obj - << /Pages 9 0 R - /Type /Catalog - >> -endobj - -xref -0 11 -0000000000 65535 f -0000000010 00000 n -0000002734 00000 n -0000002757 00000 n -0000003473 00000 n -0000003495 00000 n -0000003793 00000 n -0000003895 00000 n -0000003916 00000 n -0000004089 00000 n -0000004163 00000 n -trailer -<< /ID [ (some) (id) ] - /Root 10 0 R - /Size 11 ->> -startxref -4223 -%%EOF \ No newline at end of file diff --git a/iphone/Maps/Images.xcassets/About/ic_social_media_mail.imageset/Contents.json b/iphone/Maps/Images.xcassets/About/ic_social_media_mail.imageset/Contents.json deleted file mode 100644 index 62361acf4..000000000 --- a/iphone/Maps/Images.xcassets/About/ic_social_media_mail.imageset/Contents.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "images" : [ - { - "filename" : "ic_social_media_mail.pdf", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - }, - "properties" : { - "preserves-vector-representation" : true, - "template-rendering-intent" : "original" - } -} diff --git a/iphone/Maps/Images.xcassets/About/ic_social_media_mail.imageset/ic_social_media_mail.pdf b/iphone/Maps/Images.xcassets/About/ic_social_media_mail.imageset/ic_social_media_mail.pdf deleted file mode 100644 index 9f4586756..000000000 --- a/iphone/Maps/Images.xcassets/About/ic_social_media_mail.imageset/ic_social_media_mail.pdf +++ /dev/null @@ -1,147 +0,0 @@ -%PDF-1.7 - -1 0 obj - << /Length 2 0 R - /Range [ 0.000000 1.000000 0.000000 1.000000 0.000000 1.000000 ] - /Domain [ 0.000000 1.000000 ] - /FunctionType 4 - >> -stream -{ 0.117647 exch 0.317647 exch 0.933333 exch dup 0.000000 gt { exch pop exch pop exch pop dup 0.000000 sub -0.019608 mul 0.117647 add exch dup 0.000000 sub 0.584314 mul 0.317647 add exch dup 0.000000 sub 0.066667 mul 0.933333 add exch } if dup 1.000000 gt { exch pop exch pop exch pop 0.098039 exch 0.901961 exch 1.000000 exch } if pop } -endstream -endobj - -2 0 obj - 337 -endobj - -3 0 obj - << /Pattern << /P1 << /Matrix [ 0.000000 -51.982666 51.982666 0.000000 -51.982666 51.983826 ] - /Shading << /Coords [ 0.000000 0.000000 1.000000 0.000000 ] - /ColorSpace /DeviceRGB - /Function 1 0 R - /Domain [ 0.000000 1.000000 ] - /ShadingType 2 - /Extend [ true true ] - >> - /PatternType 2 - /Type /Pattern - >> >> >> -endobj - -4 0 obj - << /Length 5 0 R >> -stream -/DeviceRGB CS -/DeviceRGB cs -q -1.000000 0.000000 -0.000000 1.000000 0.000000 0.000000 cm -/Pattern cs -/P1 scn -33.825233 52.000000 m -39.020233 52.000000 41.617737 52.000000 44.446125 51.133335 c -47.505405 50.035557 49.929741 47.608891 51.026463 44.546665 c -51.950016 41.715553 51.950016 39.057777 51.950016 33.857777 c -51.950016 18.142223 l -51.950016 12.942223 51.950016 10.342220 51.084183 7.511108 c -49.987461 4.448887 47.563126 2.022221 44.503845 0.924442 c -41.675457 -0.000004 39.020233 -0.000004 33.825233 -0.000004 c -18.124784 -0.000004 l -12.929783 -0.000004 10.332281 -0.000004 7.503891 0.866665 c -4.444613 2.022221 2.020278 4.391109 0.923556 7.511108 c --0.000000 10.284443 0.000000 12.884445 0.000000 18.142223 c -0.000000 33.857777 l -0.000000 39.057777 0.000000 41.657776 0.865834 44.488888 c -2.020278 47.551109 4.444613 49.977779 7.503891 51.075554 c -10.274559 52.000000 12.929783 52.000000 18.124784 52.000000 c -33.825233 52.000000 l -h -f -n -Q -q -1.000000 0.000000 -0.000000 1.000000 8.657959 14.643463 cm -1.000000 1.000000 1.000000 scn -33.998405 0.089878 m -33.940681 0.089878 33.825237 0.032101 33.767513 0.032101 c -0.865834 0.032101 l -0.808111 0.032101 0.692667 0.032101 0.634945 0.089878 c -10.909506 10.374320 l -13.102950 8.120989 l -15.469563 5.694323 19.221510 5.694323 21.588121 8.120989 c -23.781567 10.374320 l -33.998405 0.089878 l -h -34.633347 1.187656 m -34.633347 21.583210 l -34.633347 21.698765 34.633350 21.814322 34.575626 21.872099 c -34.517906 21.756542 24.358789 11.240987 24.358789 11.240987 c -34.633347 0.956545 l -34.633347 1.072100 34.633347 1.129879 34.633347 1.187656 c -h -0.000000 1.129879 m -0.000000 21.467653 l -0.000000 21.583210 0.000000 21.698765 0.057722 21.756542 c -0.115445 21.640987 10.274559 11.125431 10.274559 11.125431 c -0.057722 0.898767 l -0.000000 0.956545 0.000000 1.072102 0.000000 1.129879 c -h -34.056126 22.565432 m -20.953175 9.160988 l -18.932896 7.138765 15.700451 7.138765 13.737894 9.160988 c -0.634945 22.565432 l -0.577223 22.623209 34.056126 22.565432 34.056126 22.565432 c -h -f -n -Q - -endstream -endobj - -5 0 obj - 2024 -endobj - -6 0 obj - << /Annots [] - /Type /Page - /MediaBox [ 0.000000 0.000000 51.949951 52.000000 ] - /Resources 3 0 R - /Contents 4 0 R - /Parent 7 0 R - >> -endobj - -7 0 obj - << /Kids [ 6 0 R ] - /Count 1 - /Type /Pages - >> -endobj - -8 0 obj - << /Pages 7 0 R - /Type /Catalog - >> -endobj - -xref -0 9 -0000000000 65535 f -0000000010 00000 n -0000000531 00000 n -0000000553 00000 n -0000001179 00000 n -0000003259 00000 n -0000003282 00000 n -0000003455 00000 n -0000003529 00000 n -trailer -<< /ID [ (some) (id) ] - /Root 8 0 R - /Size 9 ->> -startxref -3588 -%%EOF \ No newline at end of file diff --git a/iphone/Maps/Images.xcassets/About/ic_social_media_matrix.imageset/Contents.json b/iphone/Maps/Images.xcassets/About/ic_social_media_matrix.imageset/Contents.json deleted file mode 100644 index 691746fe9..000000000 --- a/iphone/Maps/Images.xcassets/About/ic_social_media_matrix.imageset/Contents.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "images" : [ - { - "filename" : "ic_social_media_matrix.pdf", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - }, - "properties" : { - "preserves-vector-representation" : true, - "template-rendering-intent" : "original" - } -} diff --git a/iphone/Maps/Images.xcassets/About/ic_social_media_matrix.imageset/ic_social_media_matrix.pdf b/iphone/Maps/Images.xcassets/About/ic_social_media_matrix.imageset/ic_social_media_matrix.pdf deleted file mode 100644 index 1227534b6..000000000 Binary files a/iphone/Maps/Images.xcassets/About/ic_social_media_matrix.imageset/ic_social_media_matrix.pdf and /dev/null differ diff --git a/iphone/Maps/Images.xcassets/About/ic_social_media_telegram.imageset/Contents.json b/iphone/Maps/Images.xcassets/About/ic_social_media_telegram.imageset/Contents.json deleted file mode 100644 index 1fafcbc2c..000000000 --- a/iphone/Maps/Images.xcassets/About/ic_social_media_telegram.imageset/Contents.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "images" : [ - { - "filename" : "ic_social_media_telegram.pdf", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - }, - "properties" : { - "preserves-vector-representation" : true, - "template-rendering-intent" : "original" - } -} diff --git a/iphone/Maps/Images.xcassets/About/ic_social_media_telegram.imageset/ic_social_media_telegram.pdf b/iphone/Maps/Images.xcassets/About/ic_social_media_telegram.imageset/ic_social_media_telegram.pdf deleted file mode 100644 index f65fe92d5..000000000 --- a/iphone/Maps/Images.xcassets/About/ic_social_media_telegram.imageset/ic_social_media_telegram.pdf +++ /dev/null @@ -1,125 +0,0 @@ -%PDF-1.7 - -1 0 obj - << /Length 2 0 R - /Range [ 0.000000 1.000000 0.000000 1.000000 0.000000 1.000000 ] - /Domain [ 0.000000 1.000000 ] - /FunctionType 4 - >> -stream -{ 0.164706 exch 0.670588 exch 0.933333 exch dup 0.000000 gt { exch pop exch pop exch pop dup 0.000000 sub -0.031373 mul 0.164706 add exch dup 0.000000 sub -0.050980 mul 0.670588 add exch dup 0.000000 sub -0.082353 mul 0.933333 add exch } if dup 1.000000 gt { exch pop exch pop exch pop 0.133333 exch 0.619608 exch 0.850980 exch } if pop } -endstream -endobj - -2 0 obj - 339 -endobj - -3 0 obj - << /Pattern << /P1 << /Matrix [ 0.000000 -47.644001 47.644001 0.000000 -47.644001 48.000000 ] - /Shading << /Coords [ 0.000000 0.000000 1.000000 0.000000 ] - /ColorSpace /DeviceRGB - /Function 1 0 R - /Domain [ 0.000000 1.000000 ] - /ShadingType 2 - /Extend [ true true ] - >> - /PatternType 2 - /Type /Pattern - >> >> >> -endobj - -4 0 obj - << /Length 5 0 R >> -stream -/DeviceRGB CS -/DeviceRGB cs -q -1.000000 0.000000 -0.000000 1.000000 0.000000 0.000000 cm -/Pattern cs -/P1 scn -24.000000 0.000000 m -37.254833 0.000000 48.000000 10.745167 48.000000 24.000000 c -48.000000 37.254833 37.254833 48.000000 24.000000 48.000000 c -10.745167 48.000000 0.000000 37.254833 0.000000 24.000000 c -0.000000 10.745167 10.745167 0.000000 24.000000 0.000000 c -h -f -n -Q -q -1.000000 0.000000 -0.000000 1.000000 9.072021 11.831146 cm -1.000000 1.000000 1.000000 scn -1.791764 12.422209 m -8.788252 15.470463 13.453674 17.480059 15.788029 18.450996 c -22.453085 21.223221 23.838024 21.704784 24.740709 21.720686 c -24.939247 21.724184 25.383163 21.674980 25.670712 21.441654 c -25.913513 21.244638 25.980316 20.978498 26.012285 20.791706 c -26.044252 20.604912 26.084059 20.179394 26.052416 19.846907 c -25.691233 16.051943 24.128407 6.842571 23.333328 2.592148 c -22.996901 0.793634 22.334465 0.190603 21.693151 0.131590 c -20.299427 0.003336 19.241095 1.052656 17.891205 1.937525 c -15.778893 3.322170 14.585570 4.184118 12.535205 5.535276 c -10.165653 7.096773 11.701735 7.955001 13.052135 9.357582 c -13.405541 9.724644 19.546326 15.310153 19.665180 15.816847 c -19.680046 15.880217 19.693840 16.116432 19.553509 16.241163 c -19.413177 16.365892 19.206060 16.323240 19.056599 16.289318 c -18.844742 16.241234 15.470295 14.010853 8.933260 9.598174 c -7.975434 8.940458 7.107866 8.619998 6.330554 8.636792 c -5.473630 8.655305 3.825253 9.121309 2.599853 9.519638 c -1.096851 10.008204 -0.097705 10.266511 0.006314 11.096248 c -0.060494 11.528425 0.655644 11.970412 1.791764 12.422209 c -h -f* -n -Q - -endstream -endobj - -5 0 obj - 1582 -endobj - -6 0 obj - << /Annots [] - /Type /Page - /MediaBox [ 0.000000 0.000000 48.000000 48.000000 ] - /Resources 3 0 R - /Contents 4 0 R - /Parent 7 0 R - >> -endobj - -7 0 obj - << /Kids [ 6 0 R ] - /Count 1 - /Type /Pages - >> -endobj - -8 0 obj - << /Pages 7 0 R - /Type /Catalog - >> -endobj - -xref -0 9 -0000000000 65535 f -0000000010 00000 n -0000000533 00000 n -0000000555 00000 n -0000001181 00000 n -0000002819 00000 n -0000002842 00000 n -0000003015 00000 n -0000003089 00000 n -trailer -<< /ID [ (some) (id) ] - /Root 8 0 R - /Size 9 ->> -startxref -3148 -%%EOF \ No newline at end of file diff --git a/iphone/Maps/Images.xcassets/About/osm_logo.imageset/osm_logo.pdf b/iphone/Maps/Images.xcassets/About/osm_logo.imageset/osm_logo.pdf deleted file mode 100644 index fa97af05d..000000000 Binary files a/iphone/Maps/Images.xcassets/About/osm_logo.imageset/osm_logo.pdf and /dev/null differ diff --git a/iphone/Maps/Images.xcassets/About/osm_logo.imageset/Contents.json b/iphone/Maps/Images.xcassets/Interface/OpenStreetMap Logo.imageset/Contents.json similarity index 85% rename from iphone/Maps/Images.xcassets/About/osm_logo.imageset/Contents.json rename to iphone/Maps/Images.xcassets/Interface/OpenStreetMap Logo.imageset/Contents.json index a587f3793..551a128d7 100644 --- a/iphone/Maps/Images.xcassets/About/osm_logo.imageset/Contents.json +++ b/iphone/Maps/Images.xcassets/Interface/OpenStreetMap Logo.imageset/Contents.json @@ -1,7 +1,7 @@ { "images" : [ { - "filename" : "osm_logo.pdf", + "filename" : "OpenStreetMap.svg", "idiom" : "universal" } ], diff --git a/iphone/Maps/Images.xcassets/Interface/OpenStreetMap Logo.imageset/OpenStreetMap.svg b/iphone/Maps/Images.xcassets/Interface/OpenStreetMap Logo.imageset/OpenStreetMap.svg new file mode 100644 index 000000000..61e8d3574 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Interface/OpenStreetMap Logo.imageset/OpenStreetMap.svg @@ -0,0 +1,3374 @@ + + + + + OpenStreetMap logo 2011 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + OpenStreetMap logo 2011 + + + Ken Vermette + + + + April 2011 + + + OpenStreetMap.org + + + Replacement logo for OpenStreetMap Foundation + + + OSM openstreetmap logo + + + http://wiki.openstreetmap.org/wiki/File:Public-images-osm_logo.svg + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 010110010011010110010011 + 010110010011010110010011 + + + diff --git a/iphone/Maps/Images.xcassets/About/ic_about_faq.imageset/Contents.json b/iphone/Maps/Images.xcassets/Interface/Social Media/Bluesky.imageset/Contents.json similarity index 85% rename from iphone/Maps/Images.xcassets/About/ic_about_faq.imageset/Contents.json rename to iphone/Maps/Images.xcassets/Interface/Social Media/Bluesky.imageset/Contents.json index 34683149a..5e5340658 100644 --- a/iphone/Maps/Images.xcassets/About/ic_about_faq.imageset/Contents.json +++ b/iphone/Maps/Images.xcassets/Interface/Social Media/Bluesky.imageset/Contents.json @@ -1,7 +1,7 @@ { "images" : [ { - "filename" : "ic_about_faq.svg", + "filename" : "bluesky.svg", "idiom" : "universal" } ], diff --git a/iphone/Maps/Images.xcassets/Interface/Social Media/Bluesky.imageset/bluesky.svg b/iphone/Maps/Images.xcassets/Interface/Social Media/Bluesky.imageset/bluesky.svg new file mode 100644 index 000000000..d46e3c821 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Interface/Social Media/Bluesky.imageset/bluesky.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/iphone/Maps/Images.xcassets/About/ic_about_news.imageset/Contents.json b/iphone/Maps/Images.xcassets/Interface/Social Media/Codeberg.imageset/Contents.json similarity index 85% rename from iphone/Maps/Images.xcassets/About/ic_about_news.imageset/Contents.json rename to iphone/Maps/Images.xcassets/Interface/Social Media/Codeberg.imageset/Contents.json index 7ca605d18..1dcdf3c6b 100644 --- a/iphone/Maps/Images.xcassets/About/ic_about_news.imageset/Contents.json +++ b/iphone/Maps/Images.xcassets/Interface/Social Media/Codeberg.imageset/Contents.json @@ -1,7 +1,7 @@ { "images" : [ { - "filename" : "ic_about_news.svg", + "filename" : "codeberg.svg", "idiom" : "universal" } ], diff --git a/iphone/Maps/Images.xcassets/Interface/Social Media/Codeberg.imageset/codeberg.svg b/iphone/Maps/Images.xcassets/Interface/Social Media/Codeberg.imageset/codeberg.svg new file mode 100644 index 000000000..a2075a4a9 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Interface/Social Media/Codeberg.imageset/codeberg.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/iphone/Maps/Images.xcassets/Interface/Social Media/Contents.json b/iphone/Maps/Images.xcassets/Interface/Social Media/Contents.json new file mode 100644 index 000000000..6e965652d --- /dev/null +++ b/iphone/Maps/Images.xcassets/Interface/Social Media/Contents.json @@ -0,0 +1,9 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "provides-namespace" : true + } +} diff --git a/iphone/Maps/Images.xcassets/About/ic_about_rate_app.imageset/Contents.json b/iphone/Maps/Images.xcassets/Interface/Social Media/Facebook.imageset/Contents.json similarity index 84% rename from iphone/Maps/Images.xcassets/About/ic_about_rate_app.imageset/Contents.json rename to iphone/Maps/Images.xcassets/Interface/Social Media/Facebook.imageset/Contents.json index ed89c9cd8..44ac40b72 100644 --- a/iphone/Maps/Images.xcassets/About/ic_about_rate_app.imageset/Contents.json +++ b/iphone/Maps/Images.xcassets/Interface/Social Media/Facebook.imageset/Contents.json @@ -1,7 +1,7 @@ { "images" : [ { - "filename" : "ic_about_rate_app.svg", + "filename" : "facebook.svg", "idiom" : "universal" } ], diff --git a/iphone/Maps/Images.xcassets/Interface/Social Media/Facebook.imageset/facebook.svg b/iphone/Maps/Images.xcassets/Interface/Social Media/Facebook.imageset/facebook.svg new file mode 100644 index 000000000..6b7712bd0 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Interface/Social Media/Facebook.imageset/facebook.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/iphone/Maps/Images.xcassets/About/ic_about_volunteer.imageset/Contents.json b/iphone/Maps/Images.xcassets/Interface/Social Media/Instagram.imageset/Contents.json similarity index 84% rename from iphone/Maps/Images.xcassets/About/ic_about_volunteer.imageset/Contents.json rename to iphone/Maps/Images.xcassets/Interface/Social Media/Instagram.imageset/Contents.json index 30d5632bf..dcec24aa5 100644 --- a/iphone/Maps/Images.xcassets/About/ic_about_volunteer.imageset/Contents.json +++ b/iphone/Maps/Images.xcassets/Interface/Social Media/Instagram.imageset/Contents.json @@ -1,7 +1,7 @@ { "images" : [ { - "filename" : "ic_about_volunteer.svg", + "filename" : "instagram.svg", "idiom" : "universal" } ], diff --git a/iphone/Maps/Images.xcassets/Interface/Social Media/Instagram.imageset/instagram.svg b/iphone/Maps/Images.xcassets/Interface/Social Media/Instagram.imageset/instagram.svg new file mode 100644 index 000000000..a6156d724 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Interface/Social Media/Instagram.imageset/instagram.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/iphone/Maps/Images.xcassets/Interface/Social Media/Lemmy.imageset/Contents.json b/iphone/Maps/Images.xcassets/Interface/Social Media/Lemmy.imageset/Contents.json new file mode 100644 index 000000000..346c63020 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Interface/Social Media/Lemmy.imageset/Contents.json @@ -0,0 +1,16 @@ +{ + "images" : [ + { + "filename" : "lemmy.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" + } +} diff --git a/iphone/Maps/Images.xcassets/Interface/Social Media/Lemmy.imageset/lemmy.svg b/iphone/Maps/Images.xcassets/Interface/Social Media/Lemmy.imageset/lemmy.svg new file mode 100644 index 000000000..231ea6581 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Interface/Social Media/Lemmy.imageset/lemmy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/iphone/Maps/Images.xcassets/Interface/Social Media/LinkedIn.imageset/Contents.json b/iphone/Maps/Images.xcassets/Interface/Social Media/LinkedIn.imageset/Contents.json new file mode 100644 index 000000000..40aa73709 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Interface/Social Media/LinkedIn.imageset/Contents.json @@ -0,0 +1,16 @@ +{ + "images" : [ + { + "filename" : "linkedin.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" + } +} diff --git a/iphone/Maps/Images.xcassets/Interface/Social Media/LinkedIn.imageset/linkedin.svg b/iphone/Maps/Images.xcassets/Interface/Social Media/LinkedIn.imageset/linkedin.svg new file mode 100644 index 000000000..642bf5f29 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Interface/Social Media/LinkedIn.imageset/linkedin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/iphone/Maps/Images.xcassets/Interface/Social Media/Mastodon.imageset/Contents.json b/iphone/Maps/Images.xcassets/Interface/Social Media/Mastodon.imageset/Contents.json new file mode 100644 index 000000000..3d4cc3cfd --- /dev/null +++ b/iphone/Maps/Images.xcassets/Interface/Social Media/Mastodon.imageset/Contents.json @@ -0,0 +1,16 @@ +{ + "images" : [ + { + "filename" : "mastodon.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" + } +} diff --git a/iphone/Maps/Images.xcassets/Interface/Social Media/Mastodon.imageset/mastodon.svg b/iphone/Maps/Images.xcassets/Interface/Social Media/Mastodon.imageset/mastodon.svg new file mode 100644 index 000000000..d5fc8db13 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Interface/Social Media/Mastodon.imageset/mastodon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/iphone/Maps/Images.xcassets/Interface/Social Media/Matrix.imageset/Contents.json b/iphone/Maps/Images.xcassets/Interface/Social Media/Matrix.imageset/Contents.json new file mode 100644 index 000000000..d2193b340 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Interface/Social Media/Matrix.imageset/Contents.json @@ -0,0 +1,16 @@ +{ + "images" : [ + { + "filename" : "matrix.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" + } +} diff --git a/iphone/Maps/Images.xcassets/Interface/Social Media/Matrix.imageset/matrix.svg b/iphone/Maps/Images.xcassets/Interface/Social Media/Matrix.imageset/matrix.svg new file mode 100644 index 000000000..948c2192c --- /dev/null +++ b/iphone/Maps/Images.xcassets/Interface/Social Media/Matrix.imageset/matrix.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/iphone/Maps/Images.xcassets/Interface/Social Media/Telegram.imageset/Contents.json b/iphone/Maps/Images.xcassets/Interface/Social Media/Telegram.imageset/Contents.json new file mode 100644 index 000000000..86f6e723d --- /dev/null +++ b/iphone/Maps/Images.xcassets/Interface/Social Media/Telegram.imageset/Contents.json @@ -0,0 +1,16 @@ +{ + "images" : [ + { + "filename" : "telegram.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" + } +} diff --git a/iphone/Maps/Images.xcassets/Interface/Social Media/Telegram.imageset/telegram.svg b/iphone/Maps/Images.xcassets/Interface/Social Media/Telegram.imageset/telegram.svg new file mode 100644 index 000000000..cbfd1f3f2 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Interface/Social Media/Telegram.imageset/telegram.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/iphone/Maps/Images.xcassets/About/Contents.json b/iphone/Maps/Images.xcassets/Interface/Symbols/Contents.json similarity index 100% rename from iphone/Maps/Images.xcassets/About/Contents.json rename to iphone/Maps/Images.xcassets/Interface/Symbols/Contents.json diff --git a/iphone/Maps/Images.xcassets/Interface/Symbols/comaps.symbolset/Contents.json b/iphone/Maps/Images.xcassets/Interface/Symbols/comaps.symbolset/Contents.json new file mode 100644 index 000000000..74d71d862 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Interface/Symbols/comaps.symbolset/Contents.json @@ -0,0 +1,15 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "symbol-rendering-intent" : "multicolor" + }, + "symbols" : [ + { + "filename" : "comaps.svg", + "idiom" : "universal" + } + ] +} diff --git a/iphone/Maps/Images.xcassets/Interface/Symbols/comaps.symbolset/comaps.svg b/iphone/Maps/Images.xcassets/Interface/Symbols/comaps.symbolset/comaps.svg new file mode 100644 index 000000000..816c27a67 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Interface/Symbols/comaps.symbolset/comaps.svg @@ -0,0 +1,109 @@ + + + + + + + + + + Weight/Scale Variations + Ultralight + Thin + Light + Regular + Medium + Semibold + Bold + Heavy + Black + + + + + + + + + + + Design Variations + Symbols are supported in up to nine weights and three scales. + For optimal layout with text and other symbols, vertically align + symbols with the adjacent text. + + + + + + Margins + Leading and trailing margins on the left and right side of each symbol + can be adjusted by modifying the x-location of the margin guidelines. + Modifications are automatically applied proportionally to all + scales and weights. + + + + Exporting + Symbols should be outlined when exporting to ensure the + design is preserved when submitting to Xcode. + Template v.6.0 + Requires Xcode 16 or greater + Generated from comaps + Typeset at 100.0 points + Small + Medium + Large + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/iphone/Maps/LocalizedStrings/af.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/af.lproj/Localizable.strings index 82d0849e8..e75485bdb 100644 --- a/iphone/Maps/LocalizedStrings/af.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/af.lproj/Localizable.strings @@ -46,13 +46,13 @@ "about_headline" = "Gratis vir almal, gemaak met liefde"; /* Text in About screen */ -"about_proposition_1" = "• Geen advertensies, geen nasporing, geen dataversameling"; +"about_proposition_1" = "Geen advertensies, geen nasporing, geen dataversameling"; /* Text in About screen */ -"about_proposition_2" = "• Geen battery dreineer, werk vanlyn"; +"about_proposition_2" = "Geen battery dreineer, werk vanlyn"; /* Text in About screen */ -"about_proposition_3" = "• Vinnig, minimalisties, ontwikkel deur die gemeenskap"; +"about_proposition_3" = "Vinnig, minimalisties, ontwikkel deur die gemeenskap"; "close" = "Sluit"; "download" = "Laai af"; @@ -180,6 +180,9 @@ /* Share by email button text, also used in editor and About. */ "email" = "E-pos"; +/* Text for message to copy something */ +"copy_to_clipboard" = "Copy to Clipboard"; + /* Text for message when used successfully copied something */ "copied_to_clipboard" = "Na knipbord gekopieer: %@"; @@ -191,6 +194,8 @@ /* Prints version number in About dialog */ "version" = "CoMaps weergawe: %@"; +"version %@ (%@)" = "Version %@ (%@)"; +"version: %@ (%@)\nmap data: %@" = "Version: %@ (%@)\nMap Data: %@"; /* Title for tracks category in bookmarks manager */ "tracks_title" = "Paaie"; @@ -262,6 +267,18 @@ /* Text in About menu, opens CoMaps news website */ "news" = "Nuus"; +/* Text in the about screen */ +"social_codeberg" = "Codeberg"; +"social_mastodon" = "Mastodon"; +"social_lemmy" = "Lemmy"; +"social_matrix" = "Matrix"; +"social_telegram" = "Telegram"; +"social_instagram" = "Instagram"; +"social_bluesky" = "Bluesky"; +"social_linkedin" = "LinkedIn"; +"social_facebook" = "Facebook"; +"social_email" = "E-Mail"; + /* Text in the editor */ "fediverse" = "Mastodon"; @@ -314,7 +331,7 @@ "volunteer" = "Om vrywillig te wees"; /* "Social media" section header in the About screen */ -"follow_us" = "Volg en kontak ons:"; +"follow_us" = "Volg en kontak ons"; /* Alert text */ "email_error_body" = "Die e-posleser is nie opgestel nie. Stel dit asb. op of kontak ons by %@"; @@ -528,7 +545,8 @@ "add_opening_hours" = "Voeg besigheidsure toe"; /* OpenStreetMap */ -"osm_explanation" = "Gemeenskap-geskepte OpenStreetMap-data vanaf %@. Kom meer te wete oor hoe om die kaart te redigeer en op te dateer by OpenStreetMap.org"; +"osm_mapdata" = "Map data from OpenStreetMap"; +"osm_mapdata_explanation %@" = "Gemeenskap-geskepte OpenStreetMap-data vanaf %@. Kom meer te wete oor hoe om die kaart te redigeer en op te dateer by OpenStreetMap.org"; "osm_more_about" = "Meer oor OpenStreetMap"; "osm_more_about_url" = "https://wiki.openstreetmap.org/wiki/About_OpenStreetMap"; diff --git a/iphone/Maps/LocalizedStrings/ar.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/ar.lproj/Localizable.strings index 6cbf85caa..7cd6f1be4 100644 --- a/iphone/Maps/LocalizedStrings/ar.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/ar.lproj/Localizable.strings @@ -46,13 +46,13 @@ "about_headline" = "مجاني للجميع ، مصنوع من الحب"; /* Text in About screen */ -"about_proposition_1" = "• لا إعلانات ، لا تتبع ، لا جمع البيانات"; +"about_proposition_1" = "لا إعلانات ، لا تتبع ، لا جمع البيانات"; /* Text in About screen */ -"about_proposition_2" = "• لا يوجد استنزاف للبطارية، يعمل دون اتصال بالإنترنت"; +"about_proposition_2" = "لا يوجد استنزاف للبطارية، يعمل دون اتصال بالإنترنت"; /* Text in About screen */ -"about_proposition_3" = "• سريع وبسيط، تم تطويره بواسطة المجتمع"; +"about_proposition_3" = "سريع وبسيط، تم تطويره بواسطة المجتمع"; "close" = "إغلاق"; "download" = "تنزيل"; @@ -180,6 +180,9 @@ /* Share by email button text, also used in editor and About. */ "email" = "البريد الالكتروني"; +/* Text for message to copy something */ +"copy_to_clipboard" = "Copy to Clipboard"; + /* Text for message when used successfully copied something */ "copied_to_clipboard" = "تم النسخ الى الحافظة: %@"; @@ -191,6 +194,8 @@ /* Prints version number in About dialog */ "version" = "إصدار CoMaps: %@"; +"version %@ (%@)" = "Version %@ (%@)"; +"version: %@ (%@)\nmap data: %@" = "Version: %@ (%@)\nMap Data: %@"; /* Title for tracks category in bookmarks manager */ "tracks_title" = "المسارات"; @@ -262,6 +267,18 @@ /* Text in About menu, opens CoMaps news website */ "news" = "أخبار"; +/* Text in the about screen */ +"social_codeberg" = "Codeberg"; +"social_mastodon" = "Mastodon"; +"social_lemmy" = "Lemmy"; +"social_matrix" = "Matrix"; +"social_telegram" = "Telegram"; +"social_instagram" = "Instagram"; +"social_bluesky" = "Bluesky"; +"social_linkedin" = "LinkedIn"; +"social_facebook" = "Facebook"; +"social_email" = "E-Mail"; + /* Text in the editor */ "fediverse" = "Mastodon"; @@ -314,7 +331,7 @@ "volunteer" = "للتطوع"; /* "Social media" section header in the About screen */ -"follow_us" = "تابعنا وتواصل معنا:"; +"follow_us" = "تابعنا وتواصل معنا"; /* Alert text */ "email_error_body" = "لم يتم تنصيب البريد الإلكتروني. يرجى تفعيله أو استخدام أي وسيلة أخرى للاتصال بنا على %@"; @@ -528,7 +545,8 @@ "add_opening_hours" = "أضف ساعات العمل"; /* OpenStreetMap */ -"osm_explanation" = "بيانات OpenStreetMap التي أنشأها المجتمع اعتبارًا من %@. تعرف على المزيد حول كيفية تعديل الخريطة وتحديثها على OpenStreetMap.org"; +"osm_mapdata" = "Map data from OpenStreetMap"; +"osm_mapdata_explanation %@" = "بيانات OpenStreetMap التي أنشأها المجتمع اعتبارًا من %@. تعرف على المزيد حول كيفية تعديل الخريطة وتحديثها على OpenStreetMap.org"; "osm_more_about" = "المزيد عن خريطة الشارع المفتوحة"; "osm_more_about_url" = "https://wiki.openstreetmap.org/wiki/Ar:About_OpenStreetMap"; diff --git a/iphone/Maps/LocalizedStrings/az.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/az.lproj/Localizable.strings index a9979289c..e948c3a60 100644 --- a/iphone/Maps/LocalizedStrings/az.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/az.lproj/Localizable.strings @@ -46,13 +46,13 @@ "about_headline" = "Hər kəs üçün ödənişsiz və sevgi ilə hazırlanmış xəritə"; /* Text in About screen */ -"about_proposition_1" = "• Reklam yoxdur, izləmə yoxdur, məlumatların toplanması yoxdur"; +"about_proposition_1" = "Reklam yoxdur, izləmə yoxdur, məlumatların toplanması yoxdur"; /* Text in About screen */ -"about_proposition_2" = "• Batareyanın boşalması yoxdur, oflayn işləyir"; +"about_proposition_2" = "Batareyanın boşalması yoxdur, oflayn işləyir"; /* Text in About screen */ -"about_proposition_3" = "• Sürətli, minimalist, icma tərəfindən hazırlanmışdır"; +"about_proposition_3" = "Sürətli, minimalist, icma tərəfindən hazırlanmışdır"; "close" = "Yaxın"; "download" = "Yüklə"; @@ -180,6 +180,9 @@ /* Share by email button text, also used in editor and About. */ "email" = "E-poçt"; +/* Text for message to copy something */ +"copy_to_clipboard" = "Copy to Clipboard"; + /* Text for message when used successfully copied something */ "copied_to_clipboard" = "Buferə kopyalandı: %@"; @@ -191,6 +194,8 @@ /* Prints version number in About dialog */ "version" = "CoMaps versiyası: %@"; +"version %@ (%@)" = "Version %@ (%@)"; +"version: %@ (%@)\nmap data: %@" = "Version: %@ (%@)\nMap Data: %@"; /* Title for tracks category in bookmarks manager */ "tracks_title" = "Marşrutlari"; @@ -262,6 +267,18 @@ /* Text in About menu, opens CoMaps news website */ "news" = "Xəbərlər"; +/* Text in the about screen */ +"social_codeberg" = "Codeberg"; +"social_mastodon" = "Mastodon"; +"social_lemmy" = "Lemmy"; +"social_matrix" = "Matrix"; +"social_telegram" = "Telegram"; +"social_instagram" = "Instagram"; +"social_bluesky" = "Bluesky"; +"social_linkedin" = "LinkedIn"; +"social_facebook" = "Facebook"; +"social_email" = "E-Mail"; + /* Text in the editor */ "fediverse" = "Mastodon"; @@ -314,7 +331,7 @@ "volunteer" = "Könüllü olmaq"; /* "Social media" section header in the About screen */ -"follow_us" = "İzləyin və bizimlə əlaqə saxlayın:"; +"follow_us" = "İzləyin və bizimlə əlaqə saxlayın"; /* Alert text */ "email_error_body" = "E-poçt müştəri xidməti hələ quraşdırılmayıb. Zəhmət olmasa e-poçt müştəri xidmətini konfiqurasiya edin və ya %@ vasitəsilə bizimlə əlaqə saxlayın"; @@ -528,7 +545,8 @@ "add_opening_hours" = "Açılış saatlarını əlavə edin"; /* OpenStreetMap */ -"osm_explanation" = "%@ tarixinə icma tərəfindən yaradılmış OpenStreetMap datası. OpenStreetMap.org saytında xəritəni necə redaktə etmək və yeniləmək haqqında ətraflı məlumat əldə edin"; +"osm_mapdata" = "Map data from OpenStreetMap"; +"osm_mapdata_explanation %@" = "%@ tarixinə icma tərəfindən yaradılmış OpenStreetMap datası. OpenStreetMap.org saytında xəritəni necə redaktə etmək və yeniləmək haqqında ətraflı məlumat əldə edin"; "osm_more_about" = "OpenStreetMap haqqında əlavə məlumat"; "osm_more_about_url" = "https://wiki.openstreetmap.org/wiki/Az:Layihə_haqqında"; diff --git a/iphone/Maps/LocalizedStrings/be.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/be.lproj/Localizable.strings index 49e1dd57a..7490708d9 100644 --- a/iphone/Maps/LocalizedStrings/be.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/be.lproj/Localizable.strings @@ -46,13 +46,13 @@ "about_headline" = "Бясплатная для ўсіх, зробленая з любоўю"; /* Text in About screen */ -"about_proposition_1" = "• Без рэкламы, без трэкінгу, без збірання вашых даных"; +"about_proposition_1" = "Без рэкламы, без трэкінгу, без збірання вашых даных"; /* Text in About screen */ -"about_proposition_2" = "• Без празмернай разрадкі батарэі, працуе ў аўтаномным рэжыме"; +"about_proposition_2" = "Без празмернай разрадкі батарэі, працуе ў аўтаномным рэжыме"; /* Text in About screen */ -"about_proposition_3" = "• Хуткая, мінімалістычная, распрацаваная супольнасцю"; +"about_proposition_3" = "Хуткая, мінімалістычная, распрацаваная супольнасцю"; "close" = "Закрыць"; "download" = "Спампаваць"; @@ -180,6 +180,9 @@ /* Share by email button text, also used in editor and About. */ "email" = "Электронная пошта"; +/* Text for message to copy something */ +"copy_to_clipboard" = "Copy to Clipboard"; + /* Text for message when used successfully copied something */ "copied_to_clipboard" = "Скапіявана ў буфер абмену: %@"; @@ -191,6 +194,8 @@ /* Prints version number in About dialog */ "version" = "Версія CoMaps: %@"; +"version %@ (%@)" = "Version %@ (%@)"; +"version: %@ (%@)\nmap data: %@" = "Version: %@ (%@)\nMap Data: %@"; /* Title for tracks category in bookmarks manager */ "tracks_title" = "Маршруты"; @@ -262,6 +267,18 @@ /* Text in About menu, opens CoMaps news website */ "news" = "Навіны"; +/* Text in the about screen */ +"social_codeberg" = "Codeberg"; +"social_mastodon" = "Mastodon"; +"social_lemmy" = "Lemmy"; +"social_matrix" = "Matrix"; +"social_telegram" = "Telegram"; +"social_instagram" = "Instagram"; +"social_bluesky" = "Bluesky"; +"social_linkedin" = "LinkedIn"; +"social_facebook" = "Facebook"; +"social_email" = "E-Mail"; + /* Text in the editor */ "fediverse" = "Mastodon"; @@ -314,7 +331,7 @@ "volunteer" = "Стаць валанцёрам"; /* "Social media" section header in the About screen */ -"follow_us" = "Падпісвайцеся і пішыце нам:"; +"follow_us" = "Падпісвайцеся і пішыце нам"; /* Alert text */ "email_error_body" = "Паштовы кліент не наладжаны. Наладзьце яго альбо звяжыцеся з намі па адрасе %@ іншым чынам."; @@ -528,7 +545,8 @@ "add_opening_hours" = "Дадаць часы працы"; /* OpenStreetMap */ -"osm_explanation" = "Створаныя супольнасцю даныя OpenStreetMap па стане на %@. Даведайцеся больш пра тое, як рэдагаваць і абнаўляць карту на OpenStreetMap.org"; +"osm_mapdata" = "Map data from OpenStreetMap"; +"osm_mapdata_explanation %@" = "Створаныя супольнасцю даныя OpenStreetMap па стане на %@. Даведайцеся больш пра тое, як рэдагаваць і абнаўляць карту на OpenStreetMap.org"; "osm_more_about" = "Падрабязней пра OpenStreetMap"; "osm_more_about_url" = "https://wiki.openstreetmap.org/wiki/RU:О_проекте"; diff --git a/iphone/Maps/LocalizedStrings/bg.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/bg.lproj/Localizable.strings index d828ffb18..c8fb117a6 100644 --- a/iphone/Maps/LocalizedStrings/bg.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/bg.lproj/Localizable.strings @@ -46,13 +46,13 @@ "about_headline" = "Безплатно за всички, направени с любов"; /* Text in About screen */ -"about_proposition_1" = "• Без реклами, без проследяване, без събиране на данни"; +"about_proposition_1" = "Без реклами, без проследяване, без събиране на данни"; /* Text in About screen */ -"about_proposition_2" = "• Без източване на батерията, работи офлайн"; +"about_proposition_2" = "Без източване на батерията, работи офлайн"; /* Text in About screen */ -"about_proposition_3" = "• Бърз, прост, разработен от общността"; +"about_proposition_3" = "Бърз, прост, разработен от общността"; "close" = "Затваряне"; "download" = "Изтегляне"; @@ -180,6 +180,9 @@ /* Share by email button text, also used in editor and About. */ "email" = "Имейл"; +/* Text for message to copy something */ +"copy_to_clipboard" = "Copy to Clipboard"; + /* Text for message when used successfully copied something */ "copied_to_clipboard" = "Копирано в клипборда: %@"; @@ -191,6 +194,8 @@ /* Prints version number in About dialog */ "version" = "Версия на CoMaps: %@"; +"version %@ (%@)" = "Version %@ (%@)"; +"version: %@ (%@)\nmap data: %@" = "Version: %@ (%@)\nMap Data: %@"; /* Title for tracks category in bookmarks manager */ "tracks_title" = "Пътеки"; @@ -262,6 +267,18 @@ /* Text in About menu, opens CoMaps news website */ "news" = "Новини"; +/* Text in the about screen */ +"social_codeberg" = "Codeberg"; +"social_mastodon" = "Mastodon"; +"social_lemmy" = "Lemmy"; +"social_matrix" = "Matrix"; +"social_telegram" = "Telegram"; +"social_instagram" = "Instagram"; +"social_bluesky" = "Bluesky"; +"social_linkedin" = "LinkedIn"; +"social_facebook" = "Facebook"; +"social_email" = "E-Mail"; + /* Text in the editor */ "fediverse" = "Mastodon"; @@ -314,7 +331,7 @@ "volunteer" = "За доброволчество"; /* "Social media" section header in the About screen */ -"follow_us" = "Следвайте и се свържете с нас:"; +"follow_us" = "Следвайте и се свържете с нас"; /* Alert text */ "email_error_body" = "Имейл клиентът не е настроен. Моля, конфигурирайте го или използвайте друг начин, за да се свържете с нас на %@"; @@ -528,7 +545,8 @@ "add_opening_hours" = "Добавяне на работно време"; /* OpenStreetMap */ -"osm_explanation" = "Създадени от общността данни от OpenStreetMap към %@. Научете повече за това как да редактирате и актуализирате картата в OpenStreetMap.org"; +"osm_mapdata" = "Map data from OpenStreetMap"; +"osm_mapdata_explanation %@" = "Създадени от общността данни от OpenStreetMap към %@. Научете повече за това как да редактирате и актуализирате картата в OpenStreetMap.org"; "osm_more_about" = "Повече за OpenStreetMap"; "osm_more_about_url" = "https://wiki.openstreetmap.org/wiki/Bg:About_OpenStreetMap"; diff --git a/iphone/Maps/LocalizedStrings/ca.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/ca.lproj/Localizable.strings index d520dc94f..ee22ddc08 100644 --- a/iphone/Maps/LocalizedStrings/ca.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/ca.lproj/Localizable.strings @@ -46,13 +46,13 @@ "about_headline" = "Gratuït per a tothom, fet amb amor"; /* Text in About screen */ -"about_proposition_1" = "• Sense publicitat, rastreig ni recopilació de dades"; +"about_proposition_1" = "Sense publicitat, rastreig ni recopilació de dades"; /* Text in About screen */ -"about_proposition_2" = "• Consum de bateria mínim, funciona fora de línia"; +"about_proposition_2" = "Consum de bateria mínim, funciona fora de línia"; /* Text in About screen */ -"about_proposition_3" = "• Ràpid, minimalista, desenvolupat per la comunitat"; +"about_proposition_3" = "Ràpid, minimalista, desenvolupat per la comunitat"; "close" = "Tanca"; "download" = "Baixa"; @@ -180,6 +180,9 @@ /* Share by email button text, also used in editor and About. */ "email" = "Correu-e"; +/* Text for message to copy something */ +"copy_to_clipboard" = "Copy to Clipboard"; + /* Text for message when used successfully copied something */ "copied_to_clipboard" = "S’ha copiat al porta-retalls: %@"; @@ -191,6 +194,8 @@ /* Prints version number in About dialog */ "version" = "Versió de l’CoMaps: %@"; +"version %@ (%@)" = "Version %@ (%@)"; +"version: %@ (%@)\nmap data: %@" = "Version: %@ (%@)\nMap Data: %@"; /* Title for tracks category in bookmarks manager */ "tracks_title" = "Recorreguts"; @@ -262,6 +267,18 @@ /* Text in About menu, opens CoMaps news website */ "news" = "Notícies"; +/* Text in the about screen */ +"social_codeberg" = "Codeberg"; +"social_mastodon" = "Mastodon"; +"social_lemmy" = "Lemmy"; +"social_matrix" = "Matrix"; +"social_telegram" = "Telegram"; +"social_instagram" = "Instagram"; +"social_bluesky" = "Bluesky"; +"social_linkedin" = "LinkedIn"; +"social_facebook" = "Facebook"; +"social_email" = "E-Mail"; + /* Text in the editor */ "fediverse" = "Mastodon"; @@ -314,7 +331,7 @@ "volunteer" = "Fer-se voluntari"; /* "Social media" section header in the About screen */ -"follow_us" = "Segueix i contacta amb nosaltres:"; +"follow_us" = "Segueix i contacta amb nosaltres"; /* Alert text */ "email_error_body" = "No s'ha configurat cap client de correu electrònic. Configureu-lo o useu un altra via per contactar amb nosaltres a %@"; @@ -528,7 +545,8 @@ "add_opening_hours" = "Afegeix horari d'obertura"; /* OpenStreetMap */ -"osm_explanation" = "Dades de l’OpenStreetMap creades per la comunitat a partir de %@. Obteniu més informació sobre com editar i actualitzar el mapa a OpenStreetMap.org"; +"osm_mapdata" = "Map data from OpenStreetMap"; +"osm_mapdata_explanation %@" = "Dades de l’OpenStreetMap creades per la comunitat a partir de %@. Obteniu més informació sobre com editar i actualitzar el mapa a OpenStreetMap.org"; "osm_more_about" = "Més sobre l'OpenStreetMap"; "osm_more_about_url" = "https://wiki.openstreetmap.org/wiki/Ca:About_OpenStreetMap"; diff --git a/iphone/Maps/LocalizedStrings/cs.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/cs.lproj/Localizable.strings index 5cd50e37e..3b2a30099 100644 --- a/iphone/Maps/LocalizedStrings/cs.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/cs.lproj/Localizable.strings @@ -46,13 +46,13 @@ "about_headline" = "Zdarma pro všechny, vyrobené s láskou"; /* Text in About screen */ -"about_proposition_1" = "• Žádné reklamy, žádné sledování, žádný sběr dat"; +"about_proposition_1" = "Žádné reklamy, žádné sledování, žádný sběr dat"; /* Text in About screen */ -"about_proposition_2" = "• Žádné vybíjení baterie, funguje offline"; +"about_proposition_2" = "Žádné vybíjení baterie, funguje offline"; /* Text in About screen */ -"about_proposition_3" = "• Rychlé, minimalistické, vyvinuté komunitou"; +"about_proposition_3" = "Rychlé, minimalistické, vyvinuté komunitou"; "close" = "Zavřít"; "download" = "Stáhnout"; @@ -180,6 +180,9 @@ /* Share by email button text, also used in editor and About. */ "email" = "E-mail"; +/* Text for message to copy something */ +"copy_to_clipboard" = "Copy to Clipboard"; + /* Text for message when used successfully copied something */ "copied_to_clipboard" = "Zkopírováno do schránky: %@"; @@ -191,6 +194,8 @@ /* Prints version number in About dialog */ "version" = "Verze CoMaps: %@"; +"version %@ (%@)" = "Version %@ (%@)"; +"version: %@ (%@)\nmap data: %@" = "Version: %@ (%@)\nMap Data: %@"; /* Title for tracks category in bookmarks manager */ "tracks_title" = "Stopy"; @@ -262,6 +267,18 @@ /* Text in About menu, opens CoMaps news website */ "news" = "Novinky"; +/* Text in the about screen */ +"social_codeberg" = "Codeberg"; +"social_mastodon" = "Mastodon"; +"social_lemmy" = "Lemmy"; +"social_matrix" = "Matrix"; +"social_telegram" = "Telegram"; +"social_instagram" = "Instagram"; +"social_bluesky" = "Bluesky"; +"social_linkedin" = "LinkedIn"; +"social_facebook" = "Facebook"; +"social_email" = "E-Mail"; + /* Text in the editor */ "fediverse" = "Mastodon"; @@ -314,7 +331,7 @@ "volunteer" = "Dobrovolnictví"; /* "Social media" section header in the About screen */ -"follow_us" = "Sledujte nás a kontaktujte nás:"; +"follow_us" = "Sledujte nás a kontaktujte nás"; /* Alert text */ "email_error_body" = "Emailový klient nebyl ještě nakonfigurován. Nastavte ho, prosím, nebo použijte jiný způsob k našemu kontaktování na %@"; @@ -528,7 +545,8 @@ "add_opening_hours" = "Přidat otevírací dobu"; /* OpenStreetMap */ -"osm_explanation" = "Data OpenStreetMap vytvořená komunitou ke dni %@. Další informace o tom, jak upravovat a aktualizovat mapu, najdete na stránkách OpenStreetMap.org"; +"osm_mapdata" = "Map data from OpenStreetMap"; +"osm_mapdata_explanation %@" = "Data OpenStreetMap vytvořená komunitou ke dni %@. Další informace o tom, jak upravovat a aktualizovat mapu, najdete na stránkách OpenStreetMap.org"; "osm_more_about" = "Další informace o projektu OpenStreetMap"; "osm_more_about_url" = "https://wiki.openstreetmap.org/wiki/Cs:Co_je_OpenStreetMap"; diff --git a/iphone/Maps/LocalizedStrings/da.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/da.lproj/Localizable.strings index b482b46ad..aa7cb0fc9 100644 --- a/iphone/Maps/LocalizedStrings/da.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/da.lproj/Localizable.strings @@ -46,13 +46,13 @@ "about_headline" = "Gratis for alle, lavet med kærlighed"; /* Text in About screen */ -"about_proposition_1" = "• Ingen annoncer, ingen sporing, ingen dataindsamling"; +"about_proposition_1" = "Ingen annoncer, ingen sporing, ingen dataindsamling"; /* Text in About screen */ -"about_proposition_2" = "• Intet batteridræn, fungerer offline"; +"about_proposition_2" = "Intet batteridræn, fungerer offline"; /* Text in About screen */ -"about_proposition_3" = "• Hurtig, minimalistisk, udviklet i fællesskab"; +"about_proposition_3" = "Hurtig, minimalistisk, udviklet i fællesskab"; "close" = "Luk"; "download" = "Hent"; @@ -180,6 +180,9 @@ /* Share by email button text, also used in editor and About. */ "email" = "E-mail"; +/* Text for message to copy something */ +"copy_to_clipboard" = "Copy to Clipboard"; + /* Text for message when used successfully copied something */ "copied_to_clipboard" = "Kopieret til udklipsholderen: %@"; @@ -191,6 +194,8 @@ /* Prints version number in About dialog */ "version" = "CoMaps version: %@"; +"version %@ (%@)" = "Version %@ (%@)"; +"version: %@ (%@)\nmap data: %@" = "Version: %@ (%@)\nMap Data: %@"; /* Title for tracks category in bookmarks manager */ "tracks_title" = "Spor"; @@ -262,6 +267,18 @@ /* Text in About menu, opens CoMaps news website */ "news" = "Nyheder"; +/* Text in the about screen */ +"social_codeberg" = "Codeberg"; +"social_mastodon" = "Mastodon"; +"social_lemmy" = "Lemmy"; +"social_matrix" = "Matrix"; +"social_telegram" = "Telegram"; +"social_instagram" = "Instagram"; +"social_bluesky" = "Bluesky"; +"social_linkedin" = "LinkedIn"; +"social_facebook" = "Facebook"; +"social_email" = "E-Mail"; + /* Text in the editor */ "fediverse" = "Mastodon"; @@ -314,7 +331,7 @@ "volunteer" = "At melde sig som frivillig"; /* "Social media" section header in the About screen */ -"follow_us" = "Følg og kontakt os:"; +"follow_us" = "Følg og kontakt os"; /* Alert text */ "email_error_body" = "Emailklienten er ikke blevet sat op. Venligst konfigurér den eller brug en anden måde til at kontakte os på %@"; @@ -528,7 +545,8 @@ "add_opening_hours" = "Tilføj arbejdstid"; /* OpenStreetMap */ -"osm_explanation" = "Fællesskabsskabte OpenStreetMap-data fra %@. Få mere at vide om, hvordan du redigerer og opdaterer kortet på OpenStreetMap.org"; +"osm_mapdata" = "Map data from OpenStreetMap"; +"osm_mapdata_explanation %@" = "Fællesskabsskabte OpenStreetMap-data fra %@. Få mere at vide om, hvordan du redigerer og opdaterer kortet på OpenStreetMap.org"; "osm_more_about" = "Mere om OpenStreetMap"; "osm_more_about_url" = "https://wiki.openstreetmap.org/wiki/Da:Om_OpenStreetMap"; diff --git a/iphone/Maps/LocalizedStrings/de.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/de.lproj/Localizable.strings index c9ff46945..3275401bb 100644 --- a/iphone/Maps/LocalizedStrings/de.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/de.lproj/Localizable.strings @@ -43,16 +43,16 @@ "country_status_download_failed" = "Herunterladen fehlgeschlagen"; /* Text in About screen */ -"about_headline" = "Kostenlos für alle, mit Liebe gemacht"; +"about_headline" = "Ein offenes Projekt der Community"; /* Text in About screen */ -"about_proposition_1" = "• Keine Werbung, kein Tracking, keine Datenerfassung"; +"about_proposition_1" = "Offline, schnell und einfach zu benutzen"; /* Text in About screen */ -"about_proposition_2" = "• Minimaler Batterieverbrauch, funktioniert offline"; +"about_proposition_2" = "Datenschutzorientiert und wersbefrei"; /* Text in About screen */ -"about_proposition_3" = "• Schnell, minimalistisch, von der Community entwickelt"; +"about_proposition_3" = "Transparent und nicht gewinnorientiert"; "close" = "Schließen"; "download" = "Herunterladen"; @@ -180,6 +180,9 @@ /* Share by email button text, also used in editor and About. */ "email" = "Email"; +/* Text for message to copy something */ +"copy_to_clipboard" = "In die Zwischenablage kopieren"; + /* Text for message when used successfully copied something */ "copied_to_clipboard" = "In die Zwischenablage kopiert: %@"; @@ -191,6 +194,8 @@ /* Prints version number in About dialog */ "version" = "CoMaps Version: %@"; +"version %@ (%@)" = "Version %@ (%@)"; +"version: %@ (%@)\nmap data: %@" = "Version: %@ (%@)\nKartendaten: %@"; /* Title for tracks category in bookmarks manager */ "tracks_title" = "Tracks"; @@ -262,6 +267,18 @@ /* Text in About menu, opens CoMaps news website */ "news" = "Neuigkeiten"; +/* Text in the about screen */ +"social_codeberg" = "Codeberg"; +"social_mastodon" = "Mastodon"; +"social_lemmy" = "Lemmy"; +"social_matrix" = "Matrix"; +"social_telegram" = "Telegram"; +"social_instagram" = "Instagram"; +"social_bluesky" = "Bluesky"; +"social_linkedin" = "LinkedIn"; +"social_facebook" = "Facebook"; +"social_email" = "E-Mail"; + /* Text in the editor */ "fediverse" = "Mastodon"; @@ -290,7 +307,7 @@ "panoramax_picture" = "Panoramax Bild"; /* Text in menu */ -"rate_the_app" = "Bewerten Sie die App"; +"rate_the_app" = "Bewerte die App"; /* Text in menu */ "help" = "Hilfe"; @@ -314,7 +331,7 @@ "volunteer" = "Freiwillig helfen"; /* "Social media" section header in the About screen */ -"follow_us" = "Folge und kontaktiere uns:"; +"follow_us" = "Folge und kontaktiere uns"; /* Alert text */ "email_error_body" = "Der Email-Client ist noch nicht eingerichtet worden. Konfigurieren Sie ihn bitte oder nutzen Sie eine andere Möglichkeit oder kontaktieren Sie uns unter %@"; @@ -528,7 +545,8 @@ "add_opening_hours" = "Öffnungszeiten hinzufügen"; /* OpenStreetMap */ -"osm_explanation" = "Von der Community erstellte OpenStreetMap-Daten (Stand: %@). Erfahre mehr darüber, wie du die Karte bearbeiten und aktualisieren kannst unter OpenStreetMap.org"; +"osm_mapdata" = "Kartendaten von OpenStreetMap"; +"osm_mapdata_explanation %@" = "Von der Community erstellte Kartendaten vom *%@*. Erfahre mehr darüber, wie du die Karte bearbeiten und aktualisieren kannst unter [OpenStreetMap.org](https://openstreetmap.org)."; "osm_more_about" = "Mehr Infos über OpenStreetMap"; "osm_more_about_url" = "https://wiki.openstreetmap.org/wiki/DE:Über_OSM"; diff --git a/iphone/Maps/LocalizedStrings/el.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/el.lproj/Localizable.strings index d3aa5d385..3652f1b63 100644 --- a/iphone/Maps/LocalizedStrings/el.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/el.lproj/Localizable.strings @@ -46,13 +46,13 @@ "about_headline" = "Δωρεάν για όλους, φτιαγμένα με αγάπη"; /* Text in About screen */ -"about_proposition_1" = "• Χωρίς διαφημίσεις, χωρίς tracking, χωρίς συλλογή δεδομένων"; +"about_proposition_1" = "Χωρίς διαφημίσεις, χωρίς tracking, χωρίς συλλογή δεδομένων"; /* Text in About screen */ -"about_proposition_2" = "• Δεν εξαντλεί τη μπαταρία, λειτουργεί εκτός σύνδεσης"; +"about_proposition_2" = "Δεν εξαντλεί τη μπαταρία, λειτουργεί εκτός σύνδεσης"; /* Text in About screen */ -"about_proposition_3" = "- Γρήγορο, μινιμαλιστικό, αναπτυγμένο από την κοινότητα"; +"about_proposition_3" = "Γρήγορο, μινιμαλιστικό, αναπτυγμένο από την κοινότητα"; "close" = "Κλείσιμο"; "download" = "Λήψη"; @@ -180,6 +180,9 @@ /* Share by email button text, also used in editor and About. */ "email" = "Email"; +/* Text for message to copy something */ +"copy_to_clipboard" = "Copy to Clipboard"; + /* Text for message when used successfully copied something */ "copied_to_clipboard" = "Αντιγράφηκε στο Πρόχειρο: %@"; @@ -191,6 +194,8 @@ /* Prints version number in About dialog */ "version" = "Έκδοση CoMaps: %@"; +"version %@ (%@)" = "Version %@ (%@)"; +"version: %@ (%@)\nmap data: %@" = "Version: %@ (%@)\nMap Data: %@"; /* Title for tracks category in bookmarks manager */ "tracks_title" = "Διαδρομές"; @@ -262,6 +267,18 @@ /* Text in About menu, opens CoMaps news website */ "news" = "Νέα"; +/* Text in the about screen */ +"social_codeberg" = "Codeberg"; +"social_mastodon" = "Mastodon"; +"social_lemmy" = "Lemmy"; +"social_matrix" = "Matrix"; +"social_telegram" = "Telegram"; +"social_instagram" = "Instagram"; +"social_bluesky" = "Bluesky"; +"social_linkedin" = "LinkedIn"; +"social_facebook" = "Facebook"; +"social_email" = "E-Mail"; + /* Text in the editor */ "fediverse" = "Mastodon"; @@ -314,7 +331,7 @@ "volunteer" = "Γίνετε εθελοντής"; /* "Social media" section header in the About screen */ -"follow_us" = "Ακολουθήστε και επικοινωνήστε μαζί μας:"; +"follow_us" = "Ακολουθήστε και επικοινωνήστε μαζί μας"; /* Alert text */ "email_error_body" = "Το πρόγραμμα ηλεκτρονικού ταχυδρομείου δεν έχει ρυθμιστεί. Ρυθμίστε το ή χρησιμοποιήστε άλλο τρόπο να επικοινωνήσετε μαζί μας στη διεύθυνση %@"; @@ -528,7 +545,8 @@ "add_opening_hours" = "Προσθέστε ώρες λειτουργίας"; /* OpenStreetMap */ -"osm_explanation" = "Δεδομένα OpenStreetMap που δημιουργήθηκαν από την κοινότητα στις %@. Μάθετε περισσότερα για τον τρόπο επεξεργασίας και ενημέρωσης του χάρτη στο OpenStreetMap.org"; +"osm_mapdata" = "Map data from OpenStreetMap"; +"osm_mapdata_explanation %@" = "Δεδομένα OpenStreetMap που δημιουργήθηκαν από την κοινότητα στις %@. Μάθετε περισσότερα για τον τρόπο επεξεργασίας και ενημέρωσης του χάρτη στο OpenStreetMap.org"; "osm_more_about" = "Περισσότερα σχετικά με το OpenStreetMap"; "osm_more_about_url" = "https://wiki.openstreetmap.org/wiki/El:Σχετικά_με_το_OpenStreetMap"; diff --git a/iphone/Maps/LocalizedStrings/en-GB.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/en-GB.lproj/Localizable.strings index e7723c1e3..35ea21302 100644 --- a/iphone/Maps/LocalizedStrings/en-GB.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/en-GB.lproj/Localizable.strings @@ -43,16 +43,17 @@ "country_status_download_failed" = "Download has failed"; /* Text in About screen */ -"about_headline" = "Free for everyone, made with love"; +"about_headline" = "Open project powered by the community"; /* Text in About screen */ -"about_proposition_1" = "• No ads, no tracking, no data collection"; +"about_proposition_1" = "Offline, fast and easy to use"; /* Text in About screen */ -"about_proposition_2" = "• No battery drain, works offline"; +"about_proposition_2" = "Privacy-focused and ads-free"; /* Text in About screen */ -"about_proposition_3" = "• Fast, minimalist, developed by the community"; +"about_proposition_3" = "Transparent and not for profit"; + "close" = "Close"; "download" = "Download"; @@ -180,6 +181,9 @@ /* Share by email button text, also used in editor and About. */ "email" = "Email"; +/* Text for message to copy something */ +"copy_to_clipboard" = "Copy to Clipboard"; + /* Text for message when used successfully copied something */ "copied_to_clipboard" = "Copied to clipboard: %@"; @@ -191,6 +195,9 @@ /* Prints version number in About dialog */ "version" = "CoMaps version: %@"; +"version %@ (%@)" = "Version %@ (%@)"; +"version %@ (%@)" = "Version %@ (%@)"; +"version: %@ (%@)\nmap data: %@" = "Version: %@ (%@)\nMap Data: %@"; /* Title for tracks category in bookmarks manager */ "tracks_title" = "Tracks"; @@ -262,6 +269,18 @@ /* Text in About menu, opens CoMaps news website */ "news" = "News"; +/* Text in the about screen */ +"social_codeberg" = "Codeberg"; +"social_mastodon" = "Mastodon"; +"social_lemmy" = "Lemmy"; +"social_matrix" = "Matrix"; +"social_telegram" = "Telegram"; +"social_instagram" = "Instagram"; +"social_bluesky" = "Bluesky"; +"social_linkedin" = "LinkedIn"; +"social_facebook" = "Facebook"; +"social_email" = "E-Mail"; + /* Text in the editor */ "fediverse" = "Mastodon"; @@ -314,7 +333,7 @@ "volunteer" = "Volunteer"; /* "Social media" section header in the About screen */ -"follow_us" = "Follow and contact us:"; +"follow_us" = "Follow and contact us"; /* Alert text */ "email_error_body" = "The email client has not been set up. Please configure it or contact us at %@"; @@ -528,7 +547,8 @@ "add_opening_hours" = "Add opening hours"; /* OpenStreetMap */ -"osm_explanation" = "Community-created OpenStreetMap data as of %@. Learn more about how to edit and update the map at OpenStreetMap.org"; +"osm_mapdata" = "Map data from OpenStreetMap"; +"osm_mapdata_explanation %@" = "Community-created map data as of *%@*. Learn more about how to edit and update the map at [OpenStreetMap.org](https://openstreetmap.org)."; "osm_more_about" = "More about OpenStreetMap"; "osm_more_about_url" = "https://wiki.openstreetmap.org/wiki/About_OpenStreetMap"; diff --git a/iphone/Maps/LocalizedStrings/en.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/en.lproj/Localizable.strings index dbdbeae78..7fb371f13 100644 --- a/iphone/Maps/LocalizedStrings/en.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/en.lproj/Localizable.strings @@ -47,16 +47,16 @@ "country_status_download_failed" = "Download has failed"; /* Text in About screen */ -"about_headline" = "Free for everyone, made with love"; +"about_headline" = "Open project powered by the community"; /* Text in About screen */ -"about_proposition_1" = "• No ads, no tracking, no data collection"; +"about_proposition_1" = "Offline, fast and easy to use"; /* Text in About screen */ -"about_proposition_2" = "• No battery drain, works offline"; +"about_proposition_2" = "Privacy-focused and ads-free"; /* Text in About screen */ -"about_proposition_3" = "• Fast, minimalist, developed by the community"; +"about_proposition_3" = "Transparent and not for profit"; "close" = "Close"; "download" = "Download"; @@ -192,6 +192,9 @@ /* Share by email button text, also used in editor and About. */ "email" = "Email"; +/* Text for message to copy something */ +"copy_to_clipboard" = "Copy to Clipboard"; + /* Text for message when used successfully copied something */ "copied_to_clipboard" = "Copied to clipboard: %@"; @@ -203,6 +206,8 @@ /* Prints version number in About dialog */ "version" = "CoMaps version: %@"; +"version %@ (%@)" = "Version %@ (%@)"; +"version: %@ (%@)\nmap data: %@" = "Version: %@ (%@)\nMap Data: %@"; /* Title for tracks category in bookmarks manager */ "tracks_title" = "Tracks"; @@ -274,6 +279,18 @@ /* Text in About menu, opens CoMaps news website */ "news" = "News"; +/* Text in the about screen */ +"social_codeberg" = "Codeberg"; +"social_mastodon" = "Mastodon"; +"social_lemmy" = "Lemmy"; +"social_matrix" = "Matrix"; +"social_telegram" = "Telegram"; +"social_instagram" = "Instagram"; +"social_bluesky" = "Bluesky"; +"social_linkedin" = "LinkedIn"; +"social_facebook" = "Facebook"; +"social_email" = "E-Mail"; + /* Text in the editor */ "fediverse" = "Mastodon"; @@ -326,7 +343,7 @@ "volunteer" = "Volunteer"; /* "Social media" section header in the About screen */ -"follow_us" = "Follow and contact us:"; +"follow_us" = "Follow and contact us"; /* Alert text */ "email_error_body" = "The email client has not been set up. Please configure it or contact us at %@"; @@ -548,7 +565,8 @@ "add_opening_hours" = "Add opening hours"; /* OpenStreetMap */ -"osm_explanation" = "Community-created OpenStreetMap data as of %@. Learn more about how to edit and update the map at OpenStreetMap.org"; +"osm_mapdata" = "Map data from OpenStreetMap"; +"osm_mapdata_explanation %@" = "Community-created map data as of *%@*. Learn more about how to edit and update the map at [OpenStreetMap.org](https://openstreetmap.org)."; "osm_more_about" = "More about OpenStreetMap"; "osm_more_about_url" = "https://wiki.openstreetmap.org/wiki/About_OpenStreetMap"; diff --git a/iphone/Maps/LocalizedStrings/es-MX.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/es-MX.lproj/Localizable.strings index 658ad6060..4c27df973 100644 --- a/iphone/Maps/LocalizedStrings/es-MX.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/es-MX.lproj/Localizable.strings @@ -46,13 +46,13 @@ "about_headline" = "Gratis para todos, hecho con amor"; /* Text in About screen */ -"about_proposition_1" = "• Sin anuncios, sin rastreo, sin recopilación de datos"; +"about_proposition_1" = "Sin anuncios, sin rastreo, sin recopilación de datos"; /* Text in About screen */ -"about_proposition_2" = "• Consumo de batería mínimo, funciona sin conexión"; +"about_proposition_2" = "Consumo de batería mínimo, funciona sin conexión"; /* Text in About screen */ -"about_proposition_3" = "• Rápido, minimalista, desarrollado por la comunidad"; +"about_proposition_3" = "Rápido, minimalista, desarrollado por la comunidad"; "close" = "Cerrar"; "download" = "Descargar"; @@ -180,6 +180,9 @@ /* Share by email button text, also used in editor and About. */ "email" = "Email"; +/* Text for message to copy something */ +"copy_to_clipboard" = "Copy to Clipboard"; + /* Text for message when used successfully copied something */ "copied_to_clipboard" = "Copiado en el portapapeles: %@"; @@ -191,6 +194,8 @@ /* Prints version number in About dialog */ "version" = "Versión de CoMaps: %@"; +"version %@ (%@)" = "Version %@ (%@)"; +"version: %@ (%@)\nmap data: %@" = "Version: %@ (%@)\nMap Data: %@"; /* Title for tracks category in bookmarks manager */ "tracks_title" = "Rutas"; @@ -262,6 +267,18 @@ /* Text in About menu, opens CoMaps news website */ "news" = "Noticias"; +/* Text in the about screen */ +"social_codeberg" = "Codeberg"; +"social_mastodon" = "Mastodon"; +"social_lemmy" = "Lemmy"; +"social_matrix" = "Matrix"; +"social_telegram" = "Telegram"; +"social_instagram" = "Instagram"; +"social_bluesky" = "Bluesky"; +"social_linkedin" = "LinkedIn"; +"social_facebook" = "Facebook"; +"social_email" = "E-Mail"; + /* Text in the editor */ "fediverse" = "Mastodon"; @@ -314,7 +331,7 @@ "volunteer" = "Para ser voluntario"; /* "Social media" section header in the About screen */ -"follow_us" = "Síguenos y contáctanos:"; +"follow_us" = "Síguenos y contáctanos"; /* Alert text */ "email_error_body" = "No se ha configurado el cliente de correo electrónico. Por favor, configúrelo o utilice alguna otra forma de ponerse en contacto con nosotros en %@"; @@ -528,7 +545,8 @@ "add_opening_hours" = "Añadir horarios de apertura"; /* OpenStreetMap */ -"osm_explanation" = "Datos de OpenStreetMap creados por la comunidad a partir de %@. Obtenga más información sobre cómo editar y actualizar el mapa en OpenStreetMap.org"; +"osm_mapdata" = "Map data from OpenStreetMap"; +"osm_mapdata_explanation %@" = "Datos de OpenStreetMap creados por la comunidad a partir de %@. Obtenga más información sobre cómo editar y actualizar el mapa en OpenStreetMap.org"; "osm_more_about" = "Más acerca de OpenStreetMap"; "osm_more_about_url" = "https://wiki.openstreetmap.org/wiki/ES:Acerca_de_OpenStreetMap"; diff --git a/iphone/Maps/LocalizedStrings/es.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/es.lproj/Localizable.strings index 83dd5a411..8fd7d91e9 100644 --- a/iphone/Maps/LocalizedStrings/es.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/es.lproj/Localizable.strings @@ -46,13 +46,13 @@ "about_headline" = "Gratis para todos, hecho con amor"; /* Text in About screen */ -"about_proposition_1" = "• Sin anuncios, sin rastreo, sin recopilación de datos"; +"about_proposition_1" = "Sin anuncios, sin rastreo, sin recopilación de datos"; /* Text in About screen */ -"about_proposition_2" = "• Consumo de batería mínimo, funciona sin conexión"; +"about_proposition_2" = "Consumo de batería mínimo, funciona sin conexión"; /* Text in About screen */ -"about_proposition_3" = "• Rápido, minimalista, desarrollado por la comunidad"; +"about_proposition_3" = "Rápido, minimalista, desarrollado por la comunidad"; "close" = "Cerrar"; "download" = "Descargar"; @@ -180,6 +180,9 @@ /* Share by email button text, also used in editor and About. */ "email" = "Correo"; +/* Text for message to copy something */ +"copy_to_clipboard" = "Copy to Clipboard"; + /* Text for message when used successfully copied something */ "copied_to_clipboard" = "Copiado en el portapapeles: %@"; @@ -191,6 +194,8 @@ /* Prints version number in About dialog */ "version" = "Versión de CoMaps: %@"; +"version %@ (%@)" = "Version %@ (%@)"; +"version: %@ (%@)\nmap data: %@" = "Version: %@ (%@)\nMap Data: %@"; /* Title for tracks category in bookmarks manager */ "tracks_title" = "Trayectos"; @@ -262,6 +267,18 @@ /* Text in About menu, opens CoMaps news website */ "news" = "Noticias"; +/* Text in the about screen */ +"social_codeberg" = "Codeberg"; +"social_mastodon" = "Mastodon"; +"social_lemmy" = "Lemmy"; +"social_matrix" = "Matrix"; +"social_telegram" = "Telegram"; +"social_instagram" = "Instagram"; +"social_bluesky" = "Bluesky"; +"social_linkedin" = "LinkedIn"; +"social_facebook" = "Facebook"; +"social_email" = "E-Mail"; + /* Text in the editor */ "fediverse" = "Mastodon"; @@ -314,7 +331,7 @@ "volunteer" = "Voluntariado"; /* "Social media" section header in the About screen */ -"follow_us" = "Síganos y póngase en contacto con nosotros:"; +"follow_us" = "Síganos y póngase en contacto con nosotros"; /* Alert text */ "email_error_body" = "No se ha configurado el cliente de correo electrónico. Configúrelo o contáctenos en %@"; @@ -528,7 +545,8 @@ "add_opening_hours" = "Añadir horarios de apertura"; /* OpenStreetMap */ -"osm_explanation" = "Datos de OpenStreetMap creados por la comunidad a partir de %@. Más información sobre cómo editar y actualizar el mapa en OpenStreetMap.org"; +"osm_mapdata" = "Map data from OpenStreetMap"; +"osm_mapdata_explanation %@" = "Datos de OpenStreetMap creados por la comunidad a partir de %@. Más información sobre cómo editar y actualizar el mapa en OpenStreetMap.org"; "osm_more_about" = "Más acerca de OpenStreetMap"; "osm_more_about_url" = "https://wiki.openstreetmap.org/wiki/ES:Acerca_de_OpenStreetMap"; diff --git a/iphone/Maps/LocalizedStrings/et.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/et.lproj/Localizable.strings index 084da4215..ba78bbff8 100644 --- a/iphone/Maps/LocalizedStrings/et.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/et.lproj/Localizable.strings @@ -46,13 +46,13 @@ "about_headline" = "Tasuta ja vaba kõigi jaoks, tehtud armastusega"; /* Text in About screen */ -"about_proposition_1" = "• Pole reklaame, jälitamist ega andmekogumist"; +"about_proposition_1" = "Pole reklaame, jälitamist ega andmekogumist"; /* Text in About screen */ -"about_proposition_2" = "• Ei tühjenda akut, töötab võrguühenduseta"; +"about_proposition_2" = "Ei tühjenda akut, töötab võrguühenduseta"; /* Text in About screen */ -"about_proposition_3" = "• Kiire, minimalistlik, kogukonna poolt väljatöötatud"; +"about_proposition_3" = "Kiire, minimalistlik, kogukonna poolt väljatöötatud"; "close" = "Sulge"; "download" = "Laadi alla"; @@ -180,6 +180,9 @@ /* Share by email button text, also used in editor and About. */ "email" = "E-post"; +/* Text for message to copy something */ +"copy_to_clipboard" = "Copy to Clipboard"; + /* Text for message when used successfully copied something */ "copied_to_clipboard" = "Kopeeritud lõikelauale: %@"; @@ -191,6 +194,8 @@ /* Prints version number in About dialog */ "version" = "CoMapsi versioon: %@"; +"version %@ (%@)" = "Version %@ (%@)"; +"version: %@ (%@)\nmap data: %@" = "Version: %@ (%@)\nMap Data: %@"; /* Title for tracks category in bookmarks manager */ "tracks_title" = "Rajad"; @@ -262,6 +267,18 @@ /* Text in About menu, opens CoMaps news website */ "news" = "Uudised"; +/* Text in the about screen */ +"social_codeberg" = "Codeberg"; +"social_mastodon" = "Mastodon"; +"social_lemmy" = "Lemmy"; +"social_matrix" = "Matrix"; +"social_telegram" = "Telegram"; +"social_instagram" = "Instagram"; +"social_bluesky" = "Bluesky"; +"social_linkedin" = "LinkedIn"; +"social_facebook" = "Facebook"; +"social_email" = "E-Mail"; + /* Text in the editor */ "fediverse" = "Mastodon"; @@ -314,7 +331,7 @@ "volunteer" = "Vabatahtlik kaastöö"; /* "Social media" section header in the About screen */ -"follow_us" = "Jälgi ja võta meiega ühendust:"; +"follow_us" = "Jälgi ja võta meiega ühendust"; /* Alert text */ "email_error_body" = "E-posti klienti ei ole seadistatud. Palun seadista see või kasuta mõnda muud võimalust meiega ühenduse võtmiseks aadressil %@"; @@ -528,7 +545,8 @@ "add_opening_hours" = "Lisa tööaeg"; /* OpenStreetMap */ -"osm_explanation" = "Kogukonna loodud OpenStreetMapi andmed seisuga %@. Lisateavet kaardi muutmise ja uuendamise kohta leiad OpenStreetMap.org saidist"; +"osm_mapdata" = "Map data from OpenStreetMap"; +"osm_mapdata_explanation %@" = "Kogukonna loodud OpenStreetMapi andmed seisuga %@. Lisateavet kaardi muutmise ja uuendamise kohta leiad OpenStreetMap.org saidist"; "osm_more_about" = "Lisateave OpenStreetMapi kohta"; "osm_more_about_url" = "https://wiki.openstreetmap.org/wiki/About_OpenStreetMap"; diff --git a/iphone/Maps/LocalizedStrings/eu.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/eu.lproj/Localizable.strings index 2c20955fd..d129e276a 100644 --- a/iphone/Maps/LocalizedStrings/eu.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/eu.lproj/Localizable.strings @@ -46,13 +46,13 @@ "about_headline" = "Denontzat doan, maitasunez egina"; /* Text in About screen */ -"about_proposition_1" = "• Ez iragarkirik, ez jarraipenik, ez datu-bilketarik"; +"about_proposition_1" = "Ez iragarkirik, ez jarraipenik, ez datu-bilketarik"; /* Text in About screen */ -"about_proposition_2" = "• Ez da bateria deskargatzen, konexiorik gabe funtzionatzen du"; +"about_proposition_2" = "Ez da bateria deskargatzen, konexiorik gabe funtzionatzen du"; /* Text in About screen */ -"about_proposition_3" = "• Azkarra, minimalista, komunitateak garatua"; +"about_proposition_3" = "Azkarra, minimalista, komunitateak garatua"; "close" = "Itxi"; "download" = "Deskargatu"; @@ -180,6 +180,9 @@ /* Share by email button text, also used in editor and About. */ "email" = "Posta elektronikoa"; +/* Text for message to copy something */ +"copy_to_clipboard" = "Copy to Clipboard"; + /* Text for message when used successfully copied something */ "copied_to_clipboard" = "Arbelean kopiatu da: %@"; @@ -191,6 +194,8 @@ /* Prints version number in About dialog */ "version" = "CoMaps bertsioa: %@"; +"version %@ (%@)" = "Version %@ (%@)"; +"version: %@ (%@)\nmap data: %@" = "Version: %@ (%@)\nMap Data: %@"; /* Title for tracks category in bookmarks manager */ "tracks_title" = "Arrasto"; @@ -262,6 +267,18 @@ /* Text in About menu, opens CoMaps news website */ "news" = "Albisteak"; +/* Text in the about screen */ +"social_codeberg" = "Codeberg"; +"social_mastodon" = "Mastodon"; +"social_lemmy" = "Lemmy"; +"social_matrix" = "Matrix"; +"social_telegram" = "Telegram"; +"social_instagram" = "Instagram"; +"social_bluesky" = "Bluesky"; +"social_linkedin" = "LinkedIn"; +"social_facebook" = "Facebook"; +"social_email" = "E-Mail"; + /* Text in the editor */ "fediverse" = "Mastodon"; @@ -314,7 +331,7 @@ "volunteer" = "Boluntario izateko"; /* "Social media" section header in the About screen */ -"follow_us" = "Jarraitu eta jarri gurekin harremanetan:"; +"follow_us" = "Jarraitu eta jarri gurekin harremanetan"; /* Alert text */ "email_error_body" = "Posta elektronikoko bezeroa ez da konfiguratu. Mesedez, konfigura ezazu edo erabili beste moduren bat gurekin harremanetan jartzeko %@ helbidean"; @@ -528,7 +545,8 @@ "add_opening_hours" = "Gehitu ordutegia"; /* OpenStreetMap */ -"osm_explanation" = "Komunitateak sortutako OpenStreetMap datuak %@-tik aurrera. Lortu informazio gehiago mapa editatu eta eguneratzeari buruz OpenStreetMap.org helbidean"; +"osm_mapdata" = "Map data from OpenStreetMap"; +"osm_mapdata_explanation %@" = "Komunitateak sortutako OpenStreetMap datuak %@-tik aurrera. Lortu informazio gehiago mapa editatu eta eguneratzeari buruz OpenStreetMap.org helbidean"; "osm_more_about" = "OpenStreetMap-i buruzko informazio gehiago"; "osm_more_about_url" = "https://wiki.openstreetmap.org/wiki/About_OpenStreetMap"; diff --git a/iphone/Maps/LocalizedStrings/fa.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/fa.lproj/Localizable.strings index 94715f590..d8041752c 100644 --- a/iphone/Maps/LocalizedStrings/fa.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/fa.lproj/Localizable.strings @@ -46,13 +46,13 @@ "about_headline" = "رایگان برای همه ، ساخته شده با عشق"; /* Text in About screen */ -"about_proposition_1" = "• بدون تبلیغات ، ردیابی ، جمع آوری داده ها"; +"about_proposition_1" = "بدون تبلیغات ، ردیابی ، جمع آوری داده ها"; /* Text in About screen */ -"about_proposition_2" = "• بدون تخلیه باتری، آفلاین کار می کند"; +"about_proposition_2" = "بدون تخلیه باتری، آفلاین کار می کند"; /* Text in About screen */ -"about_proposition_3" = "• سریع، مینیمالیستی، توسعه یافته توسط انجمن"; +"about_proposition_3" = "سریع، مینیمالیستی، توسعه یافته توسط انجمن"; "close" = "بستن"; "download" = "دانلود"; @@ -180,6 +180,9 @@ /* Share by email button text, also used in editor and About. */ "email" = "ایمیل"; +/* Text for message to copy something */ +"copy_to_clipboard" = "Copy to Clipboard"; + /* Text for message when used successfully copied something */ "copied_to_clipboard" = "کپی در کلیپ‌برد: %@"; @@ -191,6 +194,8 @@ /* Prints version number in About dialog */ "version" = "نسخه CoMaps: %@"; +"version %@ (%@)" = "Version %@ (%@)"; +"version: %@ (%@)\nmap data: %@" = "Version: %@ (%@)\nMap Data: %@"; /* Title for tracks category in bookmarks manager */ "tracks_title" = "مسیر"; @@ -262,6 +267,18 @@ /* Text in About menu, opens CoMaps news website */ "news" = "اخبار"; +/* Text in the about screen */ +"social_codeberg" = "Codeberg"; +"social_mastodon" = "Mastodon"; +"social_lemmy" = "Lemmy"; +"social_matrix" = "Matrix"; +"social_telegram" = "Telegram"; +"social_instagram" = "Instagram"; +"social_bluesky" = "Bluesky"; +"social_linkedin" = "LinkedIn"; +"social_facebook" = "Facebook"; +"social_email" = "E-Mail"; + /* Text in the editor */ "fediverse" = "Mastodon"; @@ -314,7 +331,7 @@ "volunteer" = "داوطلب شدن"; /* "Social media" section header in the About screen */ -"follow_us" = "دنبال کنید و با ما تماس بگیرید:"; +"follow_us" = "دنبال کنید و با ما تماس بگیرید"; /* Alert text */ "email_error_body" = "کلاینت ایمیل شما پیکربندی نشده است.لطفا آن را پیکربندی کنید یا از طریق دیگر با ما تماس بگیرید %@"; @@ -528,7 +545,8 @@ "add_opening_hours" = "اضافه کردن ساعت بازگشایی"; /* OpenStreetMap */ -"osm_explanation" = "داده های OpenStreetMap ایجاد شده توسط انجمن از %@. درباره نحوه ویرایش و به روز رسانی نقشه در OpenStreetMap.org بیشتر بیاموزید"; +"osm_mapdata" = "Map data from OpenStreetMap"; +"osm_mapdata_explanation %@" = "داده های OpenStreetMap ایجاد شده توسط انجمن از %@. درباره نحوه ویرایش و به روز رسانی نقشه در OpenStreetMap.org بیشتر بیاموزید"; "osm_more_about" = "در مورد OpenStreetMap بیشتر بدانید"; "osm_more_about_url" = "https://wiki.openstreetmap.org/wiki/Fa:About_OpenStreetMap"; diff --git a/iphone/Maps/LocalizedStrings/fi.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/fi.lproj/Localizable.strings index 1806d8085..e68b063c9 100644 --- a/iphone/Maps/LocalizedStrings/fi.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/fi.lproj/Localizable.strings @@ -46,13 +46,13 @@ "about_headline" = "Ilmainen kaikille, tehty rakkaudella"; /* Text in About screen */ -"about_proposition_1" = "• Ei mainoksia, ei seurantaa, ei tiedonkeruuta"; +"about_proposition_1" = "Ei mainoksia, ei seurantaa, ei tiedonkeruuta"; /* Text in About screen */ -"about_proposition_2" = "• Ei akun tyhjenemistä, toimii offline-tilassa"; +"about_proposition_2" = "Ei akun tyhjenemistä, toimii offline-tilassa"; /* Text in About screen */ -"about_proposition_3" = "• Nopea, minimalistinen, yhteisön kehittämä"; +"about_proposition_3" = "Nopea, minimalistinen, yhteisön kehittämä"; "close" = "Sulje"; "download" = "Lataa"; @@ -180,6 +180,9 @@ /* Share by email button text, also used in editor and About. */ "email" = "Sähköposti"; +/* Text for message to copy something */ +"copy_to_clipboard" = "Copy to Clipboard"; + /* Text for message when used successfully copied something */ "copied_to_clipboard" = "Kopioitu leikepöydälle: %@"; @@ -191,6 +194,8 @@ /* Prints version number in About dialog */ "version" = "CoMaps versio: %@"; +"version %@ (%@)" = "Version %@ (%@)"; +"version: %@ (%@)\nmap data: %@" = "Version: %@ (%@)\nMap Data: %@"; /* Title for tracks category in bookmarks manager */ "tracks_title" = "Reitit"; @@ -262,6 +267,18 @@ /* Text in About menu, opens CoMaps news website */ "news" = "Uutiset"; +/* Text in the about screen */ +"social_codeberg" = "Codeberg"; +"social_mastodon" = "Mastodon"; +"social_lemmy" = "Lemmy"; +"social_matrix" = "Matrix"; +"social_telegram" = "Telegram"; +"social_instagram" = "Instagram"; +"social_bluesky" = "Bluesky"; +"social_linkedin" = "LinkedIn"; +"social_facebook" = "Facebook"; +"social_email" = "E-Mail"; + /* Text in the editor */ "fediverse" = "Mastodon"; @@ -314,7 +331,7 @@ "volunteer" = "Vapaaehtoiseksi"; /* "Social media" section header in the About screen */ -"follow_us" = "Seuraa ja ota meihin yhteyttä:"; +"follow_us" = "Seuraa ja ota meihin yhteyttä"; /* Alert text */ "email_error_body" = "Sähköpostisovellusta ei ole asetettu. Ole hyvä ja määritä sähköpostiasetukset tai ota meihin yhteyttä toista kautta osoitteessa %@"; @@ -528,7 +545,8 @@ "add_opening_hours" = "Lisää aukioloajat"; /* OpenStreetMap */ -"osm_explanation" = "Yhteisön luomat OpenStreetMap-tiedot %@:sta alkaen. Lisätietoja kartan muokkaamisesta ja päivittämisestä osoitteessa OpenStreetMap.org"; +"osm_mapdata" = "Map data from OpenStreetMap"; +"osm_mapdata_explanation %@" = "Yhteisön luomat OpenStreetMap-tiedot %@:sta alkaen. Lisätietoja kartan muokkaamisesta ja päivittämisestä osoitteessa OpenStreetMap.org"; "osm_more_about" = "Lisätietoja OpenStreetMap:sta"; "osm_more_about_url" = "https://wiki.openstreetmap.org/wiki/About_OpenStreetMap"; diff --git a/iphone/Maps/LocalizedStrings/fr.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/fr.lproj/Localizable.strings index 58b548ab2..0053479d0 100644 --- a/iphone/Maps/LocalizedStrings/fr.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/fr.lproj/Localizable.strings @@ -46,13 +46,13 @@ "about_headline" = "Gratuit pour tout le monde, fait avec amour"; /* Text in About screen */ -"about_proposition_1" = "• Pas de pub, pas de suivi, pas de collecte de données"; +"about_proposition_1" = "Pas de pub, pas de suivi, pas de collecte de données"; /* Text in About screen */ -"about_proposition_2" = "• Préserve la batterie, fonctionne hors ligne"; +"about_proposition_2" = "Préserve la batterie, fonctionne hors ligne"; /* Text in About screen */ -"about_proposition_3" = "• Rapide, minimaliste, développé par la communauté"; +"about_proposition_3" = "Rapide, minimaliste, développé par la communauté"; "close" = "Fermer"; "download" = "Télécharger"; @@ -180,6 +180,9 @@ /* Share by email button text, also used in editor and About. */ "email" = "Email"; +/* Text for message to copy something */ +"copy_to_clipboard" = "Copy to Clipboard"; + /* Text for message when used successfully copied something */ "copied_to_clipboard" = "Copié dans le presse-papiers : %@"; @@ -191,6 +194,8 @@ /* Prints version number in About dialog */ "version" = "Version d'CoMaps : %@"; +"version %@ (%@)" = "Version %@ (%@)"; +"version: %@ (%@)\nmap data: %@" = "Version: %@ (%@)\nMap Data: %@"; /* Title for tracks category in bookmarks manager */ "tracks_title" = "Parcours"; @@ -262,6 +267,18 @@ /* Text in About menu, opens CoMaps news website */ "news" = "Nouvelles"; +/* Text in the about screen */ +"social_codeberg" = "Codeberg"; +"social_mastodon" = "Mastodon"; +"social_lemmy" = "Lemmy"; +"social_matrix" = "Matrix"; +"social_telegram" = "Telegram"; +"social_instagram" = "Instagram"; +"social_bluesky" = "Bluesky"; +"social_linkedin" = "LinkedIn"; +"social_facebook" = "Facebook"; +"social_email" = "E-Mail"; + /* Text in the editor */ "fediverse" = "Mastodon"; @@ -314,7 +331,7 @@ "volunteer" = "Se porter volontaire"; /* "Social media" section header in the About screen */ -"follow_us" = "Suis et contacte-nous :"; +"follow_us" = "Suis et contacte-nous "; /* Alert text */ "email_error_body" = "Le client de courriel n'a pas été configuré. Veuillez le configurer ou nous contacter à %@"; @@ -528,7 +545,8 @@ "add_opening_hours" = "Ajouter les heures d'ouverture"; /* OpenStreetMap */ -"osm_explanation" = "Données OpenStreetMap créées par la communauté en date du %@. Pour en savoir plus sur la façon de modifier et de mettre à jour la carte, consulte le site OpenStreetMap.org."; +"osm_mapdata" = "Map data from OpenStreetMap"; +"osm_mapdata_explanation %@" = "Données OpenStreetMap créées par la communauté en date du %@. Pour en savoir plus sur la façon de modifier et de mettre à jour la carte, consulte le site OpenStreetMap.org."; "osm_more_about" = "En savoir plus sur OpenStreetMap"; "osm_more_about_url" = "https://wiki.openstreetmap.org/wiki/FR:À_propos_d’OpenStreetMap"; diff --git a/iphone/Maps/LocalizedStrings/he.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/he.lproj/Localizable.strings index f07fbad5c..64f98153a 100644 --- a/iphone/Maps/LocalizedStrings/he.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/he.lproj/Localizable.strings @@ -46,13 +46,13 @@ "about_headline" = "חינם לכולם, מיוצרים באהבה"; /* Text in About screen */ -"about_proposition_1" = "• ללא מודעות, ללא מעקב, ללא איסוף נתונים"; +"about_proposition_1" = "ללא מודעות, ללא מעקב, ללא איסוף נתונים"; /* Text in About screen */ -"about_proposition_2" = "• אין ריקון סוללה, עובד במצב לא מקוון"; +"about_proposition_2" = "אין ריקון סוללה, עובד במצב לא מקוון"; /* Text in About screen */ -"about_proposition_3" = "• מהיר, מינימליסטי, שפותח על ידי הקהילה"; +"about_proposition_3" = "מהיר, מינימליסטי, שפותח על ידי הקהילה"; "close" = "סגור"; "download" = "הורדה"; @@ -180,6 +180,9 @@ /* Share by email button text, also used in editor and About. */ "email" = "דוא\"ל"; +/* Text for message to copy something */ +"copy_to_clipboard" = "Copy to Clipboard"; + /* Text for message when used successfully copied something */ "copied_to_clipboard" = "הועתק: %@"; @@ -191,6 +194,8 @@ /* Prints version number in About dialog */ "version" = "גרסת מפות אורגניות: %@"; +"version %@ (%@)" = "Version %@ (%@)"; +"version: %@ (%@)\nmap data: %@" = "Version: %@ (%@)\nMap Data: %@"; /* Title for tracks category in bookmarks manager */ "tracks_title" = "מסלולים"; @@ -262,6 +267,18 @@ /* Text in About menu, opens CoMaps news website */ "news" = "חדשות"; +/* Text in the about screen */ +"social_codeberg" = "Codeberg"; +"social_mastodon" = "Mastodon"; +"social_lemmy" = "Lemmy"; +"social_matrix" = "Matrix"; +"social_telegram" = "Telegram"; +"social_instagram" = "Instagram"; +"social_bluesky" = "Bluesky"; +"social_linkedin" = "LinkedIn"; +"social_facebook" = "Facebook"; +"social_email" = "E-Mail"; + /* Text in the editor */ "fediverse" = "Mastodon"; @@ -314,7 +331,7 @@ "volunteer" = "להתנדב"; /* "Social media" section header in the About screen */ -"follow_us" = "עקבו ופנו אלינו:"; +"follow_us" = "עקבו ופנו אלינו"; /* Alert text */ "email_error_body" = "יישום הדוא\"ל לא הוגדר. אנא הגדירו אותו או השתמשו בכל דרך אחרת על מנת ליצור עמנו קשר בכתובת %@"; @@ -528,7 +545,8 @@ "add_opening_hours" = "הוספת שעות פעילות"; /* OpenStreetMap */ -"osm_explanation" = "נתוני OpenStreetMap שנוצרו על ידי הקהילה החל מ-%@. למידע נוסף על איך לערוך ולעדכן את המפה ב-OpenStreetMap.org"; +"osm_mapdata" = "Map data from OpenStreetMap"; +"osm_mapdata_explanation %@" = "נתוני OpenStreetMap שנוצרו על ידי הקהילה החל מ-%@. למידע נוסף על איך לערוך ולעדכן את המפה ב-OpenStreetMap.org"; "osm_more_about" = "עוד על OpenStreetMap"; "osm_more_about_url" = "https://wiki.openstreetmap.org/wiki/About_OpenStreetMap"; diff --git a/iphone/Maps/LocalizedStrings/hi.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/hi.lproj/Localizable.strings index 51f380eac..5424133b2 100644 --- a/iphone/Maps/LocalizedStrings/hi.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/hi.lproj/Localizable.strings @@ -46,13 +46,13 @@ "about_headline" = "सभी के लिए मुफ़्त, प्यार से बनाया गया"; /* Text in About screen */ -"about_proposition_1" = "• कोई विज्ञापन नहीं, कोई ट्रैकिंग नहीं, कोई डेटा संग्रह नहीं"; +"about_proposition_1" = "कोई विज्ञापन नहीं, कोई ट्रैकिंग नहीं, कोई डेटा संग्रह नहीं"; /* Text in About screen */ -"about_proposition_2" = "• कोई बैटरी ख़त्म नहीं, ऑफ़लाइन काम करता है"; +"about_proposition_2" = "कोई बैटरी ख़त्म नहीं, ऑफ़लाइन काम करता है"; /* Text in About screen */ -"about_proposition_3" = "• तेज़, न्यूनतम, समुदाय द्वारा विकसित"; +"about_proposition_3" = "तेज़, न्यूनतम, समुदाय द्वारा विकसित"; "close" = "बंद करना"; "download" = "डाउन लोड करना"; @@ -180,6 +180,9 @@ /* Share by email button text, also used in editor and About. */ "email" = "ईमेल"; +/* Text for message to copy something */ +"copy_to_clipboard" = "Copy to Clipboard"; + /* Text for message when used successfully copied something */ "copied_to_clipboard" = "क्लिपबोर्ड पर नकल: %@"; @@ -191,6 +194,8 @@ /* Prints version number in About dialog */ "version" = "ऑर्गेनिकमैप्स संस्करण: %@"; +"version %@ (%@)" = "Version %@ (%@)"; +"version: %@ (%@)\nmap data: %@" = "Version: %@ (%@)\nMap Data: %@"; /* Title for tracks category in bookmarks manager */ "tracks_title" = "पटरियों"; @@ -262,6 +267,18 @@ /* Text in About menu, opens CoMaps news website */ "news" = "समाचार"; +/* Text in the about screen */ +"social_codeberg" = "Codeberg"; +"social_mastodon" = "Mastodon"; +"social_lemmy" = "Lemmy"; +"social_matrix" = "Matrix"; +"social_telegram" = "Telegram"; +"social_instagram" = "Instagram"; +"social_bluesky" = "Bluesky"; +"social_linkedin" = "LinkedIn"; +"social_facebook" = "Facebook"; +"social_email" = "E-Mail"; + /* Text in the editor */ "fediverse" = "Mastodon"; @@ -314,7 +331,7 @@ "volunteer" = "स्वयंसेवक"; /* "Social media" section header in the About screen */ -"follow_us" = "फ़ॉलो करें और हमसे संपर्क करें:"; +"follow_us" = "फ़ॉलो करें और हमसे संपर्क करें"; /* Alert text */ "email_error_body" = "ईमेल क्लाइंट सेट अप नहीं किया गया है. कृपया इसे कॉन्फ़िगर करें या %@ पर हमसे संपर्क करें"; @@ -528,7 +545,8 @@ "add_opening_hours" = "Add opening hours"; /* OpenStreetMap */ -"osm_explanation" = "समुदाय-निर्मित OpenStreetMap डेटा %@ तक। OpenStreetMap.org पर मानचित्र को संपादित और अपडेट करने के तरीके के बारे में और जानें"; +"osm_mapdata" = "Map data from OpenStreetMap"; +"osm_mapdata_explanation %@" = "समुदाय-निर्मित OpenStreetMap डेटा %@ तक। OpenStreetMap.org पर मानचित्र को संपादित और अपडेट करने के तरीके के बारे में और जानें"; "osm_more_about" = "OpenStreetMap के बारे में अधिक जानकारी"; "osm_more_about_url" = "https://wiki.openstreetmap.org/wiki/About_OpenStreetMap"; diff --git a/iphone/Maps/LocalizedStrings/hu.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/hu.lproj/Localizable.strings index d628857b1..ba33097b4 100644 --- a/iphone/Maps/LocalizedStrings/hu.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/hu.lproj/Localizable.strings @@ -46,13 +46,13 @@ "about_headline" = "Mindenki számára ingyenes – szeretettel készült"; /* Text in About screen */ -"about_proposition_1" = "• Nincs hirdetés, nyomon követés és adatgyűjtés"; +"about_proposition_1" = "Nincs hirdetés, nyomon követés és adatgyűjtés"; /* Text in About screen */ -"about_proposition_2" = "• Nem merül le az akkumulátor – offline is működik"; +"about_proposition_2" = "Nem merül le az akkumulátor – offline is működik"; /* Text in About screen */ -"about_proposition_3" = "• Gyors, minimalista – a közösség által fejlesztett"; +"about_proposition_3" = "Gyors, minimalista – a közösség által fejlesztett"; "close" = "Bezár"; "download" = "Letöltés"; @@ -180,6 +180,9 @@ /* Share by email button text, also used in editor and About. */ "email" = "E-mail-cím"; +/* Text for message to copy something */ +"copy_to_clipboard" = "Copy to Clipboard"; + /* Text for message when used successfully copied something */ "copied_to_clipboard" = "A vágólapra másolva: %@"; @@ -191,6 +194,8 @@ /* Prints version number in About dialog */ "version" = "Az CoMaps verziója: %@"; +"version %@ (%@)" = "Version %@ (%@)"; +"version: %@ (%@)\nmap data: %@" = "Version: %@ (%@)\nMap Data: %@"; /* Title for tracks category in bookmarks manager */ "tracks_title" = "Nyomvonalak"; @@ -262,6 +267,18 @@ /* Text in About menu, opens CoMaps news website */ "news" = "Hírek"; +/* Text in the about screen */ +"social_codeberg" = "Codeberg"; +"social_mastodon" = "Mastodon"; +"social_lemmy" = "Lemmy"; +"social_matrix" = "Matrix"; +"social_telegram" = "Telegram"; +"social_instagram" = "Instagram"; +"social_bluesky" = "Bluesky"; +"social_linkedin" = "LinkedIn"; +"social_facebook" = "Facebook"; +"social_email" = "E-Mail"; + /* Text in the editor */ "fediverse" = "Mastodon"; @@ -314,7 +331,7 @@ "volunteer" = "Önkéntes"; /* "Social media" section header in the About screen */ -"follow_us" = "Kövessen és lépjen kapcsolatba velünk:"; +"follow_us" = "Kövessen és lépjen kapcsolatba velünk"; /* Alert text */ "email_error_body" = "Az e-mail kliens nem lett beállítva. Állítsa be, vagy lépjen kapcsolatba velünk a(z) %@ címen"; @@ -528,7 +545,8 @@ "add_opening_hours" = "Nyitvatartás hozzáadása"; /* OpenStreetMap */ -"osm_explanation" = "Közösség által létrehozott OpenStreetMap adatok innen: %@. További információkat a térkép szerkesztéséről és frissítéséről az OpenStreetMap.org oldalon találhat"; +"osm_mapdata" = "Map data from OpenStreetMap"; +"osm_mapdata_explanation %@" = "Közösség által létrehozott OpenStreetMap adatok innen: %@. További információkat a térkép szerkesztéséről és frissítéséről az OpenStreetMap.org oldalon találhat"; "osm_more_about" = "További részletek az OpenStreetMap adatbázisról"; "osm_more_about_url" = "https://wiki.openstreetmap.org/wiki/Hu:Névjegy"; diff --git a/iphone/Maps/LocalizedStrings/id.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/id.lproj/Localizable.strings index c3dff3ba0..cfa7bc0be 100644 --- a/iphone/Maps/LocalizedStrings/id.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/id.lproj/Localizable.strings @@ -46,13 +46,13 @@ "about_headline" = "Gratis untuk semua orang, dibuat dengan cinta"; /* Text in About screen */ -"about_proposition_1" = "• Tidak ada iklan, tidak ada pelacakan, tidak ada pengumpulan data"; +"about_proposition_1" = "Tidak ada iklan, tidak ada pelacakan, tidak ada pengumpulan data"; /* Text in About screen */ -"about_proposition_2" = "• Tidak menguras baterai, bekerja secara offline"; +"about_proposition_2" = "Tidak menguras baterai, bekerja secara offline"; /* Text in About screen */ -"about_proposition_3" = "• Cepat, minimalis, dikembangkan oleh komunitas"; +"about_proposition_3" = "Cepat, minimalis, dikembangkan oleh komunitas"; "close" = "Tutup"; "download" = "Unduh"; @@ -180,6 +180,9 @@ /* Share by email button text, also used in editor and About. */ "email" = "Surel"; +/* Text for message to copy something */ +"copy_to_clipboard" = "Copy to Clipboard"; + /* Text for message when used successfully copied something */ "copied_to_clipboard" = "Telah Disalin ke Papan Klip: %@"; @@ -191,6 +194,8 @@ /* Prints version number in About dialog */ "version" = "Versi CoMaps: %@"; +"version %@ (%@)" = "Version %@ (%@)"; +"version: %@ (%@)\nmap data: %@" = "Version: %@ (%@)\nMap Data: %@"; /* Title for tracks category in bookmarks manager */ "tracks_title" = "Jalur"; @@ -262,6 +267,18 @@ /* Text in About menu, opens CoMaps news website */ "news" = "Berita"; +/* Text in the about screen */ +"social_codeberg" = "Codeberg"; +"social_mastodon" = "Mastodon"; +"social_lemmy" = "Lemmy"; +"social_matrix" = "Matrix"; +"social_telegram" = "Telegram"; +"social_instagram" = "Instagram"; +"social_bluesky" = "Bluesky"; +"social_linkedin" = "LinkedIn"; +"social_facebook" = "Facebook"; +"social_email" = "E-Mail"; + /* Text in the editor */ "fediverse" = "Mastodon"; @@ -314,7 +331,7 @@ "volunteer" = "Untuk Menjadi Relawan"; /* "Social media" section header in the About screen */ -"follow_us" = "Ikuti dan hubungi kami:"; +"follow_us" = "Ikuti dan hubungi kami"; /* Alert text */ "email_error_body" = "Surel pelanggan belum diatur. Mohon konfigurasikan atau gunakan cara lain untuk menghubungi kami di %@"; @@ -528,7 +545,8 @@ "add_opening_hours" = "Tambah jam kerja"; /* OpenStreetMap */ -"osm_explanation" = "Data OpenStreetMap yang dibuat oleh komunitas pada tanggal %@. Pelajari lebih lanjut mengenai cara mengedit dan memperbarui peta di OpenStreetMap.org"; +"osm_mapdata" = "Map data from OpenStreetMap"; +"osm_mapdata_explanation %@" = "Data OpenStreetMap yang dibuat oleh komunitas pada tanggal %@. Pelajari lebih lanjut mengenai cara mengedit dan memperbarui peta di OpenStreetMap.org"; "osm_more_about" = "Selengkapnya tentang OpenStreetMap"; "osm_more_about_url" = "https://wiki.openstreetmap.org/wiki/About_OpenStreetMap"; diff --git a/iphone/Maps/LocalizedStrings/it.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/it.lproj/Localizable.strings index 508995c92..9ff2c5588 100644 --- a/iphone/Maps/LocalizedStrings/it.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/it.lproj/Localizable.strings @@ -46,13 +46,13 @@ "about_headline" = "Gratuita per tutti, fatta con amore"; /* Text in About screen */ -"about_proposition_1" = "• Nessun annuncio, nessun tracciamento, nessuna raccolta di dati"; +"about_proposition_1" = "Nessun annuncio, nessun tracciamento, nessuna raccolta di dati"; /* Text in About screen */ -"about_proposition_2" = "• Consuma poca batteria, funziona offline"; +"about_proposition_2" = "Consuma poca batteria, funziona offline"; /* Text in About screen */ -"about_proposition_3" = "• Veloce, minimalista, sviluppato dalla comunità"; +"about_proposition_3" = "Veloce, minimalista, sviluppato dalla comunità"; "close" = "Chiudi"; "download" = "Scarica"; @@ -180,6 +180,9 @@ /* Share by email button text, also used in editor and About. */ "email" = "E-mail"; +/* Text for message to copy something */ +"copy_to_clipboard" = "Copy to Clipboard"; + /* Text for message when used successfully copied something */ "copied_to_clipboard" = "Copiato negli appunti: %@"; @@ -191,6 +194,8 @@ /* Prints version number in About dialog */ "version" = "Versione di CoMaps: %@"; +"version %@ (%@)" = "Version %@ (%@)"; +"version: %@ (%@)\nmap data: %@" = "Version: %@ (%@)\nMap Data: %@"; /* Title for tracks category in bookmarks manager */ "tracks_title" = "Tracce"; @@ -262,6 +267,18 @@ /* Text in About menu, opens CoMaps news website */ "news" = "Notizie"; +/* Text in the about screen */ +"social_codeberg" = "Codeberg"; +"social_mastodon" = "Mastodon"; +"social_lemmy" = "Lemmy"; +"social_matrix" = "Matrix"; +"social_telegram" = "Telegram"; +"social_instagram" = "Instagram"; +"social_bluesky" = "Bluesky"; +"social_linkedin" = "LinkedIn"; +"social_facebook" = "Facebook"; +"social_email" = "E-Mail"; + /* Text in the editor */ "fediverse" = "Mastodon"; @@ -314,7 +331,7 @@ "volunteer" = "Per fare il volontario"; /* "Social media" section header in the About screen */ -"follow_us" = "Seguici e contattaci:"; +"follow_us" = "Seguici e contattaci"; /* Alert text */ "email_error_body" = "Il client di posta elettronica non è stato configurato. Per favore, configuralo o contattaci all'indirizzo %@"; @@ -528,7 +545,8 @@ "add_opening_hours" = "Aggiungi orari di apertura"; /* OpenStreetMap */ -"osm_explanation" = "Dati OpenStreetMap creati dalla comunità al %@. Per saperne di più su come modificare e aggiornare la mappa, visita OpenStreetMap.org"; +"osm_mapdata" = "Map data from OpenStreetMap"; +"osm_mapdata_explanation %@" = "Dati OpenStreetMap creati dalla comunità al %@. Per saperne di più su come modificare e aggiornare la mappa, visita OpenStreetMap.org"; "osm_more_about" = "Informazioni su OpenStreetMap"; "osm_more_about_url" = "https://wiki.openstreetmap.org/wiki/IT:About_OpenStreetMap"; diff --git a/iphone/Maps/LocalizedStrings/ja.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/ja.lproj/Localizable.strings index 26f2cd880..39e31ed70 100644 --- a/iphone/Maps/LocalizedStrings/ja.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/ja.lproj/Localizable.strings @@ -46,13 +46,13 @@ "about_headline" = "すべての人のために無料で、愛を込めて作られています"; /* Text in About screen */ -"about_proposition_1" = "• 広告、追跡なし、データ収集なし"; +"about_proposition_1" = "広告、追跡なし、データ収集なし"; /* Text in About screen */ -"about_proposition_2" = "• バッテリーの消耗がなく、オフラインで動作する"; +"about_proposition_2" = "バッテリーの消耗がなく、オフラインで動作する"; /* Text in About screen */ -"about_proposition_3" = "• 高速、ミニマリスト、コミュニティによる開発"; +"about_proposition_3" = "高速、ミニマリスト、コミュニティによる開発"; "close" = "閉じる"; "download" = "ダウンロード"; @@ -180,6 +180,9 @@ /* Share by email button text, also used in editor and About. */ "email" = "Eメール"; +/* Text for message to copy something */ +"copy_to_clipboard" = "Copy to Clipboard"; + /* Text for message when used successfully copied something */ "copied_to_clipboard" = "クリップボードにコピーしました: %@"; @@ -191,6 +194,8 @@ /* Prints version number in About dialog */ "version" = "CoMapsバージョン: %@"; +"version %@ (%@)" = "Version %@ (%@)"; +"version: %@ (%@)\nmap data: %@" = "Version: %@ (%@)\nMap Data: %@"; /* Title for tracks category in bookmarks manager */ "tracks_title" = "トラック"; @@ -262,6 +267,18 @@ /* Text in About menu, opens CoMaps news website */ "news" = "ニュース"; +/* Text in the about screen */ +"social_codeberg" = "Codeberg"; +"social_mastodon" = "Mastodon"; +"social_lemmy" = "Lemmy"; +"social_matrix" = "Matrix"; +"social_telegram" = "Telegram"; +"social_instagram" = "Instagram"; +"social_bluesky" = "Bluesky"; +"social_linkedin" = "LinkedIn"; +"social_facebook" = "Facebook"; +"social_email" = "E-Mail"; + /* Text in the editor */ "fediverse" = "Mastodon"; @@ -528,7 +545,8 @@ "add_opening_hours" = "営業時間を追加"; /* OpenStreetMap */ -"osm_explanation" = "コミュニティが作成した%@時点の OpenStreetMap のデータ。地図の編集や更新の方法については、OpenStreetMap.org を参照してください"; +"osm_mapdata" = "Map data from OpenStreetMap"; +"osm_mapdata_explanation %@" = "コミュニティが作成した%@時点の OpenStreetMap のデータ。地図の編集や更新の方法については、OpenStreetMap.org を参照してください"; "osm_more_about" = "OpenStreetMapについての詳細"; "osm_more_about_url" = "https://wiki.openstreetmap.org/wiki/JA:OpenStreetMap_について"; diff --git a/iphone/Maps/LocalizedStrings/ko.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/ko.lproj/Localizable.strings index 057d1fb73..49f46e059 100644 --- a/iphone/Maps/LocalizedStrings/ko.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/ko.lproj/Localizable.strings @@ -46,13 +46,13 @@ "about_headline" = "사랑으로 만든 모든 사람에게 무료"; /* Text in About screen */ -"about_proposition_1" = "• 광고 없음, 추적 없음, 데이터 수집 없음"; +"about_proposition_1" = "광고 없음, 추적 없음, 데이터 수집 없음"; /* Text in About screen */ -"about_proposition_2" = "• 배터리 소모 없음, 오프라인에서 작동"; +"about_proposition_2" = "배터리 소모 없음, 오프라인에서 작동"; /* Text in About screen */ -"about_proposition_3" = "• 빠르고 미니멀한, 커뮤니티가 개발한"; +"about_proposition_3" = "빠르고 미니멀한, 커뮤니티가 개발한"; "close" = "닫기"; "download" = "다운로드"; @@ -179,6 +179,9 @@ /* Share by email button text, also used in editor and About. */ "email" = "이메일"; +/* Text for message to copy something */ +"copy_to_clipboard" = "Copy to Clipboard"; + /* Text for message when used successfully copied something */ "copied_to_clipboard" = "클립보드에 복사됨: %@"; @@ -190,6 +193,8 @@ /* Prints version number in About dialog */ "version" = "CoMaps 버전: %@"; +"version %@ (%@)" = "Version %@ (%@)"; +"version: %@ (%@)\nmap data: %@" = "Version: %@ (%@)\nMap Data: %@"; /* Title for tracks category in bookmarks manager */ "tracks_title" = "트랙"; @@ -261,6 +266,18 @@ /* Text in About menu, opens CoMaps news website */ "news" = "소식"; +/* Text in the about screen */ +"social_codeberg" = "Codeberg"; +"social_mastodon" = "Mastodon"; +"social_lemmy" = "Lemmy"; +"social_matrix" = "Matrix"; +"social_telegram" = "Telegram"; +"social_instagram" = "Instagram"; +"social_bluesky" = "Bluesky"; +"social_linkedin" = "LinkedIn"; +"social_facebook" = "Facebook"; +"social_email" = "E-Mail"; + /* Text in the editor */ "fediverse" = "Mastodon"; @@ -313,7 +330,7 @@ "volunteer" = "자원봉사에 참여하려면"; /* "Social media" section header in the About screen */ -"follow_us" = "팔로우하고 문의하세요:"; +"follow_us" = "팔로우하고 문의하세요"; /* Alert text */ "email_error_body" = "이메일 클라이언트가 설정되지 않았습니다. 이를 구성하거나 %@로 연락할 다른 방법을 사용하십시오."; @@ -527,7 +544,8 @@ "add_opening_hours" = "영업일 추가"; /* OpenStreetMap */ -"osm_explanation" = "커뮤니티에서 만든 오픈스트리트맵 데이터(%@ 기준). 지도를 편집하고 업데이트하는 방법에 대한 자세한 내용은 OpenStreetMap.org에서 확인하세요."; +"osm_mapdata" = "Map data from OpenStreetMap"; +"osm_mapdata_explanation %@" = "커뮤니티에서 만든 오픈스트리트맵 데이터(%@ 기준). 지도를 편집하고 업데이트하는 방법에 대한 자세한 내용은 OpenStreetMap.org에서 확인하세요."; "osm_more_about" = "OpenStreetMap 정보"; "osm_more_about_url" = "https://wiki.openstreetmap.org/wiki/Ko:OpenStreetMap_소개"; diff --git a/iphone/Maps/LocalizedStrings/lt.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/lt.lproj/Localizable.strings index 26025619d..e205c4512 100644 --- a/iphone/Maps/LocalizedStrings/lt.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/lt.lproj/Localizable.strings @@ -46,13 +46,13 @@ "about_headline" = "Nemokama visiems, sukurta su meile"; /* Text in About screen */ -"about_proposition_1" = "• Jokių reklamų, sekimo, duomenų rinkimo"; +"about_proposition_1" = "Jokių reklamų, sekimo, duomenų rinkimo"; /* Text in About screen */ -"about_proposition_2" = "• Neiškrauna akumuliatoriaus, nes veikia neprisijungus prie interneto"; +"about_proposition_2" = "Neiškrauna akumuliatoriaus, nes veikia neprisijungus prie interneto"; /* Text in About screen */ -"about_proposition_3" = "• Sparti, minimalistinė, vystoma bendruomenės"; +"about_proposition_3" = "Sparti, minimalistinė, vystoma bendruomenės"; "close" = "Užverti"; "download" = "Atsiųsti"; @@ -180,6 +180,9 @@ /* Share by email button text, also used in editor and About. */ "email" = "El. paštas"; +/* Text for message to copy something */ +"copy_to_clipboard" = "Copy to Clipboard"; + /* Text for message when used successfully copied something */ "copied_to_clipboard" = "Nukopijuota į iškarpinę: %@"; @@ -191,6 +194,8 @@ /* Prints version number in About dialog */ "version" = "„CoMaps“ versija: %@"; +"version %@ (%@)" = "Version %@ (%@)"; +"version: %@ (%@)\nmap data: %@" = "Version: %@ (%@)\nMap Data: %@"; /* Title for tracks category in bookmarks manager */ "tracks_title" = "Trasos"; @@ -262,6 +267,18 @@ /* Text in About menu, opens CoMaps news website */ "news" = "Naujienos"; +/* Text in the about screen */ +"social_codeberg" = "Codeberg"; +"social_mastodon" = "Mastodon"; +"social_lemmy" = "Lemmy"; +"social_matrix" = "Matrix"; +"social_telegram" = "Telegram"; +"social_instagram" = "Instagram"; +"social_bluesky" = "Bluesky"; +"social_linkedin" = "LinkedIn"; +"social_facebook" = "Facebook"; +"social_email" = "E-Mail"; + /* Text in the editor */ "fediverse" = "Mastodon"; @@ -314,7 +331,7 @@ "volunteer" = "Prisidėti"; /* "Social media" section header in the About screen */ -"follow_us" = "Sekite ar susisiekite su mumis:"; +"follow_us" = "Sekite ar susisiekite su mumis"; /* Alert text */ "email_error_body" = "El. pašto programa nenustatyta. Sukonfigūruokite ją arba susisiekite su mumis adresu %@"; @@ -528,7 +545,8 @@ "add_opening_hours" = "Pridėti darbo valandas"; /* OpenStreetMap */ -"osm_explanation" = "Bendruomenės surinkti „OpenStreetMap“ duomenys %@ dienai. Sužinokite, kaip redaguoti ir atnaujinti žemėlapį, apsilankydami OpenStreetMap.org svetainėje"; +"osm_mapdata" = "Map data from OpenStreetMap"; +"osm_mapdata_explanation %@" = "Bendruomenės surinkti „OpenStreetMap“ duomenys %@ dienai. Sužinokite, kaip redaguoti ir atnaujinti žemėlapį, apsilankydami OpenStreetMap.org svetainėje"; "osm_more_about" = "Plačiau apie „OpenStreetMap“"; "osm_more_about_url" = "https://wiki.openstreetmap.org/wiki/About_OpenStreetMap"; diff --git a/iphone/Maps/LocalizedStrings/lv.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/lv.lproj/Localizable.strings index b7ce646cd..015bb0dc8 100644 --- a/iphone/Maps/LocalizedStrings/lv.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/lv.lproj/Localizable.strings @@ -46,13 +46,13 @@ "about_headline" = "Bezmaksas, pieejama visiem un veidota ar mīlestību"; /* Text in About screen */ -"about_proposition_1" = "• Nesatur reklāmas, izsekošanu un nevāc datus"; +"about_proposition_1" = "Nesatur reklāmas, izsekošanu un nevāc datus"; /* Text in About screen */ -"about_proposition_2" = "• Neizlādē bateriju, darbojas bez interneta pieslēguma"; +"about_proposition_2" = "Neizlādē bateriju, darbojas bez interneta pieslēguma"; /* Text in About screen */ -"about_proposition_3" = "• Ātra, minimālistiska un kopienas izstrādāta"; +"about_proposition_3" = "Ātra, minimālistiska un kopienas izstrādāta"; "close" = "Aizvērt"; "download" = "Lejupielādēt"; @@ -180,6 +180,9 @@ /* Share by email button text, also used in editor and About. */ "email" = "E-pasts"; +/* Text for message to copy something */ +"copy_to_clipboard" = "Copy to Clipboard"; + /* Text for message when used successfully copied something */ "copied_to_clipboard" = "Nokopēts starpliktuvē: %@"; @@ -191,6 +194,8 @@ /* Prints version number in About dialog */ "version" = "„CoMaps“ versija: %@"; +"version %@ (%@)" = "Version %@ (%@)"; +"version: %@ (%@)\nmap data: %@" = "Version: %@ (%@)\nMap Data: %@"; /* Title for tracks category in bookmarks manager */ "tracks_title" = "Ceļi"; @@ -262,6 +267,18 @@ /* Text in About menu, opens CoMaps news website */ "news" = "Jaunumi"; +/* Text in the about screen */ +"social_codeberg" = "Codeberg"; +"social_mastodon" = "Mastodon"; +"social_lemmy" = "Lemmy"; +"social_matrix" = "Matrix"; +"social_telegram" = "Telegram"; +"social_instagram" = "Instagram"; +"social_bluesky" = "Bluesky"; +"social_linkedin" = "LinkedIn"; +"social_facebook" = "Facebook"; +"social_email" = "E-Mail"; + /* Text in the editor */ "fediverse" = "Mastodon"; @@ -314,7 +331,7 @@ "volunteer" = "Brīvprātīgi palīdzēt"; /* "Social media" section header in the About screen */ -"follow_us" = "Sekojiet un sazinieties ar mums:"; +"follow_us" = "Sekojiet un sazinieties ar mums"; /* Alert text */ "email_error_body" = "E-pasta klients nav sagatavots darbam. Konfigurējiet to vai sazinieties ar mums: %@"; @@ -528,7 +545,8 @@ "add_opening_hours" = "Pievienot darba laiku"; /* OpenStreetMap */ -"osm_explanation" = "Kopienas veidotie „OpenStreetMap“ dati, %@. Uzziniet vairāk par to, kā piedalīties kartes rediģēšanā un uzlabošanā vietnē „OpenStreetMap.org“."; +"osm_mapdata" = "Map data from OpenStreetMap"; +"osm_mapdata_explanation %@" = "Kopienas veidotie „OpenStreetMap“ dati, %@. Uzziniet vairāk par to, kā piedalīties kartes rediģēšanā un uzlabošanā vietnē „OpenStreetMap.org“."; "osm_more_about" = "Vairāk par „OpenStreetMap“"; "osm_more_about_url" = "https://wiki.openstreetmap.org/wiki/About_OpenStreetMap"; diff --git a/iphone/Maps/LocalizedStrings/mr.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/mr.lproj/Localizable.strings index 8e2b5a4de..0e3fa2148 100644 --- a/iphone/Maps/LocalizedStrings/mr.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/mr.lproj/Localizable.strings @@ -46,13 +46,13 @@ "about_headline" = "सर्वांसाठी विनामूल्य, आवडीने तयार केलेले"; /* Text in About screen */ -"about_proposition_1" = "• जाहिराती नाही, माहितीचा मागोवा नाही, डेटा संग्रहण नाही"; +"about_proposition_1" = "जाहिराती नाही, माहितीचा मागोवा नाही, डेटा संग्रहण नाही"; /* Text in About screen */ -"about_proposition_2" = "• बॅटरी संपत नाही, ऑफलाइन कार्य करते"; +"about_proposition_2" = "बॅटरी संपत नाही, ऑफलाइन कार्य करते"; /* Text in About screen */ -"about_proposition_3" = "• जलद, मिनिमलिस्ट, समुदायाद्वारे विकसित"; +"about_proposition_3" = "जलद, मिनिमलिस्ट, समुदायाद्वारे विकसित"; "close" = "बंद"; "download" = "डाउनलोड करा"; @@ -180,6 +180,9 @@ /* Share by email button text, also used in editor and About. */ "email" = "ई-मेल"; +/* Text for message to copy something */ +"copy_to_clipboard" = "Copy to Clipboard"; + /* Text for message when used successfully copied something */ "copied_to_clipboard" = "क्लिपबोर्डावर कॉपी केले: %@"; @@ -191,6 +194,8 @@ /* Prints version number in About dialog */ "version" = "CoMaps आवृत्ती: %@"; +"version %@ (%@)" = "Version %@ (%@)"; +"version: %@ (%@)\nmap data: %@" = "Version: %@ (%@)\nMap Data: %@"; /* Title for tracks category in bookmarks manager */ "tracks_title" = "ट्रॅक"; @@ -262,6 +267,18 @@ /* Text in About menu, opens CoMaps news website */ "news" = "बातम्या"; +/* Text in the about screen */ +"social_codeberg" = "Codeberg"; +"social_mastodon" = "Mastodon"; +"social_lemmy" = "Lemmy"; +"social_matrix" = "Matrix"; +"social_telegram" = "Telegram"; +"social_instagram" = "Instagram"; +"social_bluesky" = "Bluesky"; +"social_linkedin" = "LinkedIn"; +"social_facebook" = "Facebook"; +"social_email" = "E-Mail"; + /* Text in the editor */ "fediverse" = "Mastodon"; @@ -314,7 +331,7 @@ "volunteer" = "स्वयंसेवक करण्यासाठी"; /* "Social media" section header in the About screen */ -"follow_us" = "अनुसरण करा आणि आमच्याशी संपर्क साधा:"; +"follow_us" = "अनुसरण करा आणि आमच्याशी संपर्क साधा"; /* Alert text */ "email_error_body" = "ईमेल वाहक सेट केलेले नाही. कृपया ते सेट करा किंवा वेगळ्या पद्धतीने आमच्याशी %@ वर संपर्क करा"; @@ -525,7 +542,8 @@ "add_opening_hours" = "उघडण्याची वेळ जोड"; /* OpenStreetMap */ -"osm_explanation" = "समुदाय-निर्मित OpenStreetMap डेटा %@ नुसार. OpenStreetMap.org वर नकाशा संपादित आणि अपडेट कसा करायचा याबद्दल अधिक जाणून घ्या"; +"osm_mapdata" = "Map data from OpenStreetMap"; +"osm_mapdata_explanation %@" = "समुदाय-निर्मित OpenStreetMap डेटा %@ नुसार. OpenStreetMap.org वर नकाशा संपादित आणि अपडेट कसा करायचा याबद्दल अधिक जाणून घ्या"; "osm_more_about" = "OpenStreetMap बद्दल अधिक"; "osm_more_about_url" = "https://wiki.openstreetmap.org/wiki/About_OpenStreetMap"; diff --git a/iphone/Maps/LocalizedStrings/mt.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/mt.lproj/Localizable.strings index d3468e29a..028b8443b 100644 --- a/iphone/Maps/LocalizedStrings/mt.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/mt.lproj/Localizable.strings @@ -46,13 +46,13 @@ "about_headline" = "B' xejn għal kulħadd, magħmul bl-imħabba"; /* Text in About screen */ -"about_proposition_1" = "• Bla reklami, bla traċċar, bla kollezjoni ta' data"; +"about_proposition_1" = "Bla reklami, bla traċċar, bla kollezjoni ta' data"; /* Text in About screen */ -"about_proposition_2" = "• Bla ħela ta' batterija, jaħdem offline"; +"about_proposition_2" = "Bla ħela ta' batterija, jaħdem offline"; /* Text in About screen */ -"about_proposition_3" = "• Malajr, minimalista, żvillupat mill-komunità"; +"about_proposition_3" = "Malajr, minimalista, żvillupat mill-komunità"; "close" = "Ġħalaq"; "download" = "Niżżel"; @@ -180,6 +180,9 @@ /* Share by email button text, also used in editor and About. */ "email" = "E-mejl"; +/* Text for message to copy something */ +"copy_to_clipboard" = "Copy to Clipboard"; + /* Text for message when used successfully copied something */ "copied_to_clipboard" = "Ikkupjat fil-klibbord: %@"; @@ -191,6 +194,8 @@ /* Prints version number in About dialog */ "version" = "Verżjoni ta' CoMaps: %@"; +"version %@ (%@)" = "Version %@ (%@)"; +"version: %@ (%@)\nmap data: %@" = "Version: %@ (%@)\nMap Data: %@"; /* Title for tracks category in bookmarks manager */ "tracks_title" = "Korsa"; @@ -262,6 +267,18 @@ /* Text in About menu, opens CoMaps news website */ "news" = "Aħbarijiet"; +/* Text in the about screen */ +"social_codeberg" = "Codeberg"; +"social_mastodon" = "Mastodon"; +"social_lemmy" = "Lemmy"; +"social_matrix" = "Matrix"; +"social_telegram" = "Telegram"; +"social_instagram" = "Instagram"; +"social_bluesky" = "Bluesky"; +"social_linkedin" = "LinkedIn"; +"social_facebook" = "Facebook"; +"social_email" = "E-Mail"; + /* Text in the editor */ "fediverse" = "Mastodon"; @@ -314,7 +331,7 @@ "volunteer" = "Voluntier"; /* "Social media" section header in the About screen */ -"follow_us" = "Segwi u kkuntattjana:"; +"follow_us" = "Segwi u kkuntattjana"; /* Alert text */ "email_error_body" = "Il-klijent tal-posta elettronika ma ġiex ikkonfigurat. Jekk jogħġbok ikkonfiguraha jew ikkuntattjana fuq %@"; @@ -528,7 +545,8 @@ "add_opening_hours" = "Add opening hours"; /* OpenStreetMap */ -"osm_explanation" = "Community-created OpenStreetMap data as of %@. Learn more about how to edit and update the map at OpenStreetMap.org"; +"osm_mapdata" = "Map data from OpenStreetMap"; +"osm_mapdata_explanation %@" = "Community-created OpenStreetMap data as of %@. Learn more about how to edit and update the map at OpenStreetMap.org"; "osm_more_about" = "Aktar dwar OpenStreetMap"; "osm_more_about_url" = "https://wiki.openstreetmap.org/wiki/About_OpenStreetMap"; diff --git a/iphone/Maps/LocalizedStrings/nb.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/nb.lproj/Localizable.strings index e21ed1f13..d73166c24 100644 --- a/iphone/Maps/LocalizedStrings/nb.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/nb.lproj/Localizable.strings @@ -46,13 +46,13 @@ "about_headline" = "Gratis for alle, laget med kjærlighet"; /* Text in About screen */ -"about_proposition_1" = "• Ingen annonser, ingen sporing, ingen datainnsamling"; +"about_proposition_1" = "Ingen annonser, ingen sporing, ingen datainnsamling"; /* Text in About screen */ -"about_proposition_2" = "• Ingen batterislitasje, fungerer offline"; +"about_proposition_2" = "Ingen batterislitasje, fungerer offline"; /* Text in About screen */ -"about_proposition_3" = "• Rask, minimalistisk, utviklet av fellesskapet"; +"about_proposition_3" = "Rask, minimalistisk, utviklet av fellesskapet"; "close" = "Lukk"; "download" = "Last ned"; @@ -180,6 +180,9 @@ /* Share by email button text, also used in editor and About. */ "email" = "E-post"; +/* Text for message to copy something */ +"copy_to_clipboard" = "Copy to Clipboard"; + /* Text for message when used successfully copied something */ "copied_to_clipboard" = "Kopiert til utklippstavlen: %@"; @@ -191,6 +194,8 @@ /* Prints version number in About dialog */ "version" = "CoMaps versjon: %@"; +"version %@ (%@)" = "Version %@ (%@)"; +"version: %@ (%@)\nmap data: %@" = "Version: %@ (%@)\nMap Data: %@"; /* Title for tracks category in bookmarks manager */ "tracks_title" = "Ruter"; @@ -262,6 +267,18 @@ /* Text in About menu, opens CoMaps news website */ "news" = "Nyheter"; +/* Text in the about screen */ +"social_codeberg" = "Codeberg"; +"social_mastodon" = "Mastodon"; +"social_lemmy" = "Lemmy"; +"social_matrix" = "Matrix"; +"social_telegram" = "Telegram"; +"social_instagram" = "Instagram"; +"social_bluesky" = "Bluesky"; +"social_linkedin" = "LinkedIn"; +"social_facebook" = "Facebook"; +"social_email" = "E-Mail"; + /* Text in the editor */ "fediverse" = "Mastodon"; @@ -314,7 +331,7 @@ "volunteer" = "Frivillig arbeid"; /* "Social media" section header in the About screen */ -"follow_us" = "Følg og kontakt oss:"; +"follow_us" = "Følg og kontakt oss"; /* Alert text */ "email_error_body" = "E-postklienten har ikke blitt konfigurert. Konfigurer den eller bruk en annen måte å kontakte oss på %@"; @@ -528,7 +545,8 @@ "add_opening_hours" = "Legg til åpningstider"; /* OpenStreetMap */ -"osm_explanation" = "Fellesskapsopprettede OpenStreetMap-data fra %@. Les mer om hvordan du redigerer og oppdaterer kartet på OpenStreetMap.org."; +"osm_mapdata" = "Map data from OpenStreetMap"; +"osm_mapdata_explanation %@" = "Fellesskapsopprettede OpenStreetMap-data fra %@. Les mer om hvordan du redigerer og oppdaterer kartet på OpenStreetMap.org."; "osm_more_about" = "Mer om OpenStreetMap"; "osm_more_about_url" = "https://wiki.openstreetmap.org/wiki/No:Hva_er_OpenStreetmap"; diff --git a/iphone/Maps/LocalizedStrings/nl.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/nl.lproj/Localizable.strings index af71b9f13..023318842 100644 --- a/iphone/Maps/LocalizedStrings/nl.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/nl.lproj/Localizable.strings @@ -46,13 +46,13 @@ "about_headline" = "Gratis voor iedereen, met liefde gemaakt"; /* Text in About screen */ -"about_proposition_1" = "• Geen advertenties, geen tracking, geen gegevensverzameling"; +"about_proposition_1" = "Geen advertenties, geen tracking, geen gegevensverzameling"; /* Text in About screen */ -"about_proposition_2" = "• Geen batterijverlies, werkt offline"; +"about_proposition_2" = "Geen batterijverlies, werkt offline"; /* Text in About screen */ -"about_proposition_3" = "• Snel, minimalistisch, ontwikkeld door de gemeenschap"; +"about_proposition_3" = "Snel, minimalistisch, ontwikkeld door de gemeenschap"; "close" = "Sluit"; "download" = "Download"; @@ -180,6 +180,9 @@ /* Share by email button text, also used in editor and About. */ "email" = "E-mail"; +/* Text for message to copy something */ +"copy_to_clipboard" = "Copy to Clipboard"; + /* Text for message when used successfully copied something */ "copied_to_clipboard" = "Naar het klembord gekopieerd: %@"; @@ -191,6 +194,8 @@ /* Prints version number in About dialog */ "version" = "CoMaps versie: %@"; +"version %@ (%@)" = "Version %@ (%@)"; +"version: %@ (%@)\nmap data: %@" = "Version: %@ (%@)\nMap Data: %@"; /* Title for tracks category in bookmarks manager */ "tracks_title" = "Tracks"; @@ -262,6 +267,18 @@ /* Text in About menu, opens CoMaps news website */ "news" = "Nieuws"; +/* Text in the about screen */ +"social_codeberg" = "Codeberg"; +"social_mastodon" = "Mastodon"; +"social_lemmy" = "Lemmy"; +"social_matrix" = "Matrix"; +"social_telegram" = "Telegram"; +"social_instagram" = "Instagram"; +"social_bluesky" = "Bluesky"; +"social_linkedin" = "LinkedIn"; +"social_facebook" = "Facebook"; +"social_email" = "E-Mail"; + /* Text in the editor */ "fediverse" = "Mastodon"; @@ -314,7 +331,7 @@ "volunteer" = "Vrijwilligerswerk"; /* "Social media" section header in the About screen */ -"follow_us" = "Volg ons en neem contact met ons op:"; +"follow_us" = "Volg ons en neem contact met ons op"; /* Alert text */ "email_error_body" = "Het e-mailprogramma is niet ingesteld. Stel het programma in of neem contact met ons op via %@"; @@ -528,7 +545,8 @@ "add_opening_hours" = "Voeg openingstijden toe"; /* OpenStreetMap */ -"osm_explanation" = "Door de gemeenschap gemaakte OpenStreetMap-gegevens tot %@. Lees meer over hoe je de kaart kunt bewerken en bijwerken op OpenStreetMap.org"; +"osm_mapdata" = "Map data from OpenStreetMap"; +"osm_mapdata_explanation %@" = "Door de gemeenschap gemaakte OpenStreetMap-gegevens tot %@. Lees meer over hoe je de kaart kunt bewerken en bijwerken op OpenStreetMap.org"; "osm_more_about" = "Meer over OpenStreetMap"; "osm_more_about_url" = "https://wiki.openstreetmap.org/wiki/NL:Wat_is_OpenStreetMap%3F"; diff --git a/iphone/Maps/LocalizedStrings/pl.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/pl.lproj/Localizable.strings index a3637f7f4..77afa0742 100644 --- a/iphone/Maps/LocalizedStrings/pl.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/pl.lproj/Localizable.strings @@ -46,13 +46,13 @@ "about_headline" = "Darmowa dla wszystkich, wykonana z miłością"; /* Text in About screen */ -"about_proposition_1" = "• Bez reklam, bez śledzenia, bez gromadzenia danych"; +"about_proposition_1" = "Bez reklam, bez śledzenia, bez gromadzenia danych"; /* Text in About screen */ -"about_proposition_2" = "• Nie zużywa baterii, działa w trybie offline"; +"about_proposition_2" = "Nie zużywa baterii, działa w trybie offline"; /* Text in About screen */ -"about_proposition_3" = "• Szybki, minimalistyczny, opracowany przez społeczność"; +"about_proposition_3" = "Szybki, minimalistyczny, opracowany przez społeczność"; "close" = "Zamknij"; "download" = "Pobierz"; @@ -180,6 +180,9 @@ /* Share by email button text, also used in editor and About. */ "email" = "Email"; +/* Text for message to copy something */ +"copy_to_clipboard" = "Copy to Clipboard"; + /* Text for message when used successfully copied something */ "copied_to_clipboard" = "Skopiowano do schowka: %@"; @@ -191,6 +194,8 @@ /* Prints version number in About dialog */ "version" = "Wersja CoMaps: %@"; +"version %@ (%@)" = "Version %@ (%@)"; +"version: %@ (%@)\nmap data: %@" = "Version: %@ (%@)\nMap Data: %@"; /* Title for tracks category in bookmarks manager */ "tracks_title" = "Trasy"; @@ -262,6 +267,18 @@ /* Text in About menu, opens CoMaps news website */ "news" = "Wiadomości"; +/* Text in the about screen */ +"social_codeberg" = "Codeberg"; +"social_mastodon" = "Mastodon"; +"social_lemmy" = "Lemmy"; +"social_matrix" = "Matrix"; +"social_telegram" = "Telegram"; +"social_instagram" = "Instagram"; +"social_bluesky" = "Bluesky"; +"social_linkedin" = "LinkedIn"; +"social_facebook" = "Facebook"; +"social_email" = "E-Mail"; + /* Text in the editor */ "fediverse" = "Mastodon"; @@ -314,7 +331,7 @@ "volunteer" = "Wolontariusz"; /* "Social media" section header in the About screen */ -"follow_us" = "Śledź nas i skontaktuj się z nami:"; +"follow_us" = "Śledź nas i skontaktuj się z nami"; /* Alert text */ "email_error_body" = "Klient pocztowy nie został skonfigurowany. Proszę skonfigurować go, bądź skorzystać z innych opcji, aby się z nami skontaktować na %@"; @@ -528,7 +545,8 @@ "add_opening_hours" = "Dodaj godziny otwarcia"; /* OpenStreetMap */ -"osm_explanation" = "Dane OpenStreetMap stworzone przez społeczność na dzień %@. Dowiedz się więcej o tym, jak edytować i aktualizować mapę na stronie OpenStreetMap.org"; +"osm_mapdata" = "Map data from OpenStreetMap"; +"osm_mapdata_explanation %@" = "Dane OpenStreetMap stworzone przez społeczność na dzień %@. Dowiedz się więcej o tym, jak edytować i aktualizować mapę na stronie OpenStreetMap.org"; "osm_more_about" = "Więcej o OpenStreetMap"; "osm_more_about_url" = "https://wiki.openstreetmap.org/wiki/Pl:Wstęp"; diff --git a/iphone/Maps/LocalizedStrings/pt-BR.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/pt-BR.lproj/Localizable.strings index 9f46b8e8c..dc487d3d7 100644 --- a/iphone/Maps/LocalizedStrings/pt-BR.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/pt-BR.lproj/Localizable.strings @@ -46,13 +46,13 @@ "about_headline" = "Grátis para todos, feito com amor"; /* Text in About screen */ -"about_proposition_1" = "• Sem anúncios, rastreamento ou coleta de dados"; +"about_proposition_1" = "Sem anúncios, rastreamento ou coleta de dados"; /* Text in About screen */ -"about_proposition_2" = "• Sem consumo de bateria, funciona off-line"; +"about_proposition_2" = "Sem consumo de bateria, funciona off-line"; /* Text in About screen */ -"about_proposition_3" = "• Rápido, minimalista, desenvolvido pela comunidade"; +"about_proposition_3" = "Rápido, minimalista, desenvolvido pela comunidade"; "close" = "Fechar"; "download" = "Baixar"; @@ -180,6 +180,9 @@ /* Share by email button text, also used in editor and About. */ "email" = "Email"; +/* Text for message to copy something */ +"copy_to_clipboard" = "Copy to Clipboard"; + /* Text for message when used successfully copied something */ "copied_to_clipboard" = "Copiado para a área de transferência: %@"; @@ -191,6 +194,8 @@ /* Prints version number in About dialog */ "version" = "Versão do CoMaps: %@"; +"version %@ (%@)" = "Version %@ (%@)"; +"version: %@ (%@)\nmap data: %@" = "Version: %@ (%@)\nMap Data: %@"; /* Title for tracks category in bookmarks manager */ "tracks_title" = "Trilhas"; @@ -262,6 +267,18 @@ /* Text in About menu, opens CoMaps news website */ "news" = "Notícias"; +/* Text in the about screen */ +"social_codeberg" = "Codeberg"; +"social_mastodon" = "Mastodon"; +"social_lemmy" = "Lemmy"; +"social_matrix" = "Matrix"; +"social_telegram" = "Telegram"; +"social_instagram" = "Instagram"; +"social_bluesky" = "Bluesky"; +"social_linkedin" = "LinkedIn"; +"social_facebook" = "Facebook"; +"social_email" = "E-Mail"; + /* Text in the editor */ "fediverse" = "Mastodon"; @@ -314,7 +331,7 @@ "volunteer" = "Voluntarie-se"; /* "Social media" section header in the About screen */ -"follow_us" = "Siga-nos e entre em contato conosco:"; +"follow_us" = "Siga-nos e entre em contato conosco"; /* Alert text */ "email_error_body" = "O cliente de email não está configurado. Por favor, configure-o ou utilize qualquer outro modo para nos contatar através de %@"; @@ -528,7 +545,8 @@ "add_opening_hours" = "Adicionar horário de funcionamento"; /* OpenStreetMap */ -"osm_explanation" = "Dados do OpenStreetMap criados pela comunidade até %@. Saiba mais sobre como editar e atualizar o mapa em OpenStreetMap.org"; +"osm_mapdata" = "Map data from OpenStreetMap"; +"osm_mapdata_explanation %@" = "Dados do OpenStreetMap criados pela comunidade até %@. Saiba mais sobre como editar e atualizar o mapa em OpenStreetMap.org"; "osm_more_about" = "Mais sobre OpenStreetMap"; "osm_more_about_url" = "https://wiki.openstreetmap.org/wiki/Pt:Sobre_o_OpenStreetMap"; diff --git a/iphone/Maps/LocalizedStrings/pt.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/pt.lproj/Localizable.strings index 521695547..d292070c8 100644 --- a/iphone/Maps/LocalizedStrings/pt.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/pt.lproj/Localizable.strings @@ -46,13 +46,13 @@ "about_headline" = "Grátis para todos, feito com amor"; /* Text in About screen */ -"about_proposition_1" = "• Sem anúncios, rastreamento ou coleta de dados"; +"about_proposition_1" = "Sem anúncios, rastreamento ou coleta de dados"; /* Text in About screen */ -"about_proposition_2" = "• Não gasta a bateria, funciona offline"; +"about_proposition_2" = "Não gasta a bateria, funciona offline"; /* Text in About screen */ -"about_proposition_3" = "• Rápido, minimalista, desenvolvido pela comunidade"; +"about_proposition_3" = "Rápido, minimalista, desenvolvido pela comunidade"; "close" = "Fechar"; "download" = "Descarregar"; @@ -180,6 +180,9 @@ /* Share by email button text, also used in editor and About. */ "email" = "Email"; +/* Text for message to copy something */ +"copy_to_clipboard" = "Copy to Clipboard"; + /* Text for message when used successfully copied something */ "copied_to_clipboard" = "Copiado para a área de transferência: %@"; @@ -191,6 +194,8 @@ /* Prints version number in About dialog */ "version" = "Versão do CoMaps: %@"; +"version %@ (%@)" = "Version %@ (%@)"; +"version: %@ (%@)\nmap data: %@" = "Version: %@ (%@)\nMap Data: %@"; /* Title for tracks category in bookmarks manager */ "tracks_title" = "Trajetos"; @@ -262,6 +267,18 @@ /* Text in About menu, opens CoMaps news website */ "news" = "Notícias"; +/* Text in the about screen */ +"social_codeberg" = "Codeberg"; +"social_mastodon" = "Mastodon"; +"social_lemmy" = "Lemmy"; +"social_matrix" = "Matrix"; +"social_telegram" = "Telegram"; +"social_instagram" = "Instagram"; +"social_bluesky" = "Bluesky"; +"social_linkedin" = "LinkedIn"; +"social_facebook" = "Facebook"; +"social_email" = "E-Mail"; + /* Text in the editor */ "fediverse" = "Mastodon"; @@ -314,7 +331,7 @@ "volunteer" = "Voluntaria-te"; /* "Social media" section header in the About screen */ -"follow_us" = "Segue-nos e contacta-nos:"; +"follow_us" = "Segue-nos e contacta-nos"; /* Alert text */ "email_error_body" = "O programa de email não está configurado. Por favor, configure-o ou utilize qualquer outra forma de nos contactar através de %@"; @@ -528,7 +545,8 @@ "add_opening_hours" = "Adicionar horário de funcionamento"; /* OpenStreetMap */ -"osm_explanation" = "Dados do OpenStreetMap criados pela comunidade até %@. Sabe mais sobre como editar e atualizar o mapa em OpenStreetMap.org"; +"osm_mapdata" = "Map data from OpenStreetMap"; +"osm_mapdata_explanation %@" = "Dados do OpenStreetMap criados pela comunidade até %@. Sabe mais sobre como editar e atualizar o mapa em OpenStreetMap.org"; "osm_more_about" = "Mais sobre o OpenStreetMap"; "osm_more_about_url" = "https://wiki.openstreetmap.org/wiki/Pt:Sobre_o_OpenStreetMap"; diff --git a/iphone/Maps/LocalizedStrings/ro.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/ro.lproj/Localizable.strings index a8040744a..57f5f4c5a 100644 --- a/iphone/Maps/LocalizedStrings/ro.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/ro.lproj/Localizable.strings @@ -46,13 +46,13 @@ "about_headline" = "Gratuit pentru toată lumea, făcut cu dragoste"; /* Text in About screen */ -"about_proposition_1" = "• Fără reclame, fără urmărire, fără colectare de date"; +"about_proposition_1" = "Fără reclame, fără urmărire, fără colectare de date"; /* Text in About screen */ -"about_proposition_2" = "• Nu consumă baterie, funcționează offline"; +"about_proposition_2" = "Nu consumă baterie, funcționează offline"; /* Text in About screen */ -"about_proposition_3" = "• Rapid, minimalist, dezvoltat de comunitate"; +"about_proposition_3" = "Rapid, minimalist, dezvoltat de comunitate"; "close" = "Închide"; "download" = "Descarcă"; @@ -180,6 +180,9 @@ /* Share by email button text, also used in editor and About. */ "email" = "E-mail"; +/* Text for message to copy something */ +"copy_to_clipboard" = "Copy to Clipboard"; + /* Text for message when used successfully copied something */ "copied_to_clipboard" = "Copiat în notițe: %@"; @@ -191,6 +194,8 @@ /* Prints version number in About dialog */ "version" = "Versiunea CoMaps: %@"; +"version %@ (%@)" = "Version %@ (%@)"; +"version: %@ (%@)\nmap data: %@" = "Version: %@ (%@)\nMap Data: %@"; /* Title for tracks category in bookmarks manager */ "tracks_title" = "Trasee"; @@ -262,6 +267,18 @@ /* Text in About menu, opens CoMaps news website */ "news" = "Știri"; +/* Text in the about screen */ +"social_codeberg" = "Codeberg"; +"social_mastodon" = "Mastodon"; +"social_lemmy" = "Lemmy"; +"social_matrix" = "Matrix"; +"social_telegram" = "Telegram"; +"social_instagram" = "Instagram"; +"social_bluesky" = "Bluesky"; +"social_linkedin" = "LinkedIn"; +"social_facebook" = "Facebook"; +"social_email" = "E-Mail"; + /* Text in the editor */ "fediverse" = "Mastodon"; @@ -314,7 +331,7 @@ "volunteer" = "Pentru a fi voluntar"; /* "Social media" section header in the About screen */ -"follow_us" = "Urmăriți-ne și contactați-ne:"; +"follow_us" = "Urmăriți-ne și contactați-ne"; /* Alert text */ "email_error_body" = "Aplicația de email nu a fost stabilită. Stabilește-o sau utilizează alt mod de a ne contacta la %@."; @@ -528,7 +545,8 @@ "add_opening_hours" = "Adaugă orele de funcționare"; /* OpenStreetMap */ -"osm_explanation" = "Date OpenStreetMap create de comunitate la data de %@. Aflați mai multe despre cum să editați și să actualizați harta la OpenStreetMap.org"; +"osm_mapdata" = "Map data from OpenStreetMap"; +"osm_mapdata_explanation %@" = "Date OpenStreetMap create de comunitate la data de %@. Aflați mai multe despre cum să editați și să actualizați harta la OpenStreetMap.org"; "osm_more_about" = "Mai multe despre OpenStreetMap"; "osm_more_about_url" = "https://wiki.openstreetmap.org/wiki/About_OpenStreetMap"; diff --git a/iphone/Maps/LocalizedStrings/ru.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/ru.lproj/Localizable.strings index c85b2fc85..4d2db6a06 100644 --- a/iphone/Maps/LocalizedStrings/ru.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/ru.lproj/Localizable.strings @@ -46,13 +46,13 @@ "about_headline" = "Бесплатно для всех, сделано с любовью"; /* Text in About screen */ -"about_proposition_1" = "• Без рекламы, без трекинга, без слежки"; +"about_proposition_1" = "Без рекламы, без трекинга, без слежки"; /* Text in About screen */ -"about_proposition_2" = "• Не разряжает батарею, работает в автономном режиме"; +"about_proposition_2" = "Не разряжает батарею, работает в автономном режиме"; /* Text in About screen */ -"about_proposition_3" = "• Быстрый, минималистичный, разработанный сообществом"; +"about_proposition_3" = "Быстрый, минималистичный, разработанный сообществом"; "close" = "Закрыть"; "download" = "Загрузить"; @@ -180,6 +180,9 @@ /* Share by email button text, also used in editor and About. */ "email" = "Email"; +/* Text for message to copy something */ +"copy_to_clipboard" = "Copy to Clipboard"; + /* Text for message when used successfully copied something */ "copied_to_clipboard" = "Скопировано в буфер обмена: %@"; @@ -191,6 +194,8 @@ /* Prints version number in About dialog */ "version" = "Версия CoMaps: %@"; +"version %@ (%@)" = "Version %@ (%@)"; +"version: %@ (%@)\nmap data: %@" = "Version: %@ (%@)\nMap Data: %@"; /* Title for tracks category in bookmarks manager */ "tracks_title" = "Треки"; @@ -262,6 +267,18 @@ /* Text in About menu, opens CoMaps news website */ "news" = "Новости"; +/* Text in the about screen */ +"social_codeberg" = "Codeberg"; +"social_mastodon" = "Mastodon"; +"social_lemmy" = "Lemmy"; +"social_matrix" = "Matrix"; +"social_telegram" = "Telegram"; +"social_instagram" = "Instagram"; +"social_bluesky" = "Bluesky"; +"social_linkedin" = "LinkedIn"; +"social_facebook" = "Facebook"; +"social_email" = "E-Mail"; + /* Text in the editor */ "fediverse" = "Mastodon"; @@ -314,7 +331,7 @@ "volunteer" = "Cтать волонтёром"; /* "Social media" section header in the About screen */ -"follow_us" = "Подписывайтесь и пишите нам:"; +"follow_us" = "Подписывайтесь и пишите нам"; /* Alert text */ "email_error_body" = "Почтовый клиент не настроен. Настройте его или используйте другие способы для связи. Наш адрес - %@"; @@ -528,7 +545,8 @@ "add_opening_hours" = "Добавить время работы"; /* OpenStreetMap */ -"osm_explanation" = "Созданные сообществом данные OpenStreetMap по состоянию на %@. Узнайте больше о том, как редактировать и обновлять карту, на сайте OpenStreetMap.org"; +"osm_mapdata" = "Map data from OpenStreetMap"; +"osm_mapdata_explanation %@" = "Созданные сообществом данные OpenStreetMap по состоянию на %@. Узнайте больше о том, как редактировать и обновлять карту, на сайте OpenStreetMap.org"; "osm_more_about" = "Подробнее об OpenStreetMap"; "osm_more_about_url" = "https://wiki.openstreetmap.org/wiki/RU:О_проекте"; diff --git a/iphone/Maps/LocalizedStrings/sk.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/sk.lproj/Localizable.strings index 2be2a3ce7..6f52a5be5 100644 --- a/iphone/Maps/LocalizedStrings/sk.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/sk.lproj/Localizable.strings @@ -46,13 +46,13 @@ "about_headline" = "Zadarmo pre každého, vyrobené s láskou"; /* Text in About screen */ -"about_proposition_1" = "• Žiadne reklamy, žiadne sledovanie, žiadny zber údajov"; +"about_proposition_1" = "Žiadne reklamy, žiadne sledovanie, žiadny zber údajov"; /* Text in About screen */ -"about_proposition_2" = "• Žiadne vybíjanie batérie, funguje v režime offline"; +"about_proposition_2" = "Žiadne vybíjanie batérie, funguje v režime offline"; /* Text in About screen */ -"about_proposition_3" = "• Rýchly, minimalistický, vyvinutý komunitou"; +"about_proposition_3" = "Rýchly, minimalistický, vyvinutý komunitou"; "close" = "Zavrieť"; "download" = "Stiahnuť"; @@ -180,6 +180,9 @@ /* Share by email button text, also used in editor and About. */ "email" = "Email"; +/* Text for message to copy something */ +"copy_to_clipboard" = "Copy to Clipboard"; + /* Text for message when used successfully copied something */ "copied_to_clipboard" = "Skopírované do schránky: %@"; @@ -191,6 +194,8 @@ /* Prints version number in About dialog */ "version" = "Verzia CoMaps: %@"; +"version %@ (%@)" = "Version %@ (%@)"; +"version: %@ (%@)\nmap data: %@" = "Version: %@ (%@)\nMap Data: %@"; /* Title for tracks category in bookmarks manager */ "tracks_title" = "Stopy"; @@ -262,6 +267,18 @@ /* Text in About menu, opens CoMaps news website */ "news" = "Správy"; +/* Text in the about screen */ +"social_codeberg" = "Codeberg"; +"social_mastodon" = "Mastodon"; +"social_lemmy" = "Lemmy"; +"social_matrix" = "Matrix"; +"social_telegram" = "Telegram"; +"social_instagram" = "Instagram"; +"social_bluesky" = "Bluesky"; +"social_linkedin" = "LinkedIn"; +"social_facebook" = "Facebook"; +"social_email" = "E-Mail"; + /* Text in the editor */ "fediverse" = "Mastodon"; @@ -314,7 +331,7 @@ "volunteer" = "Dobrovoľníctvo"; /* "Social media" section header in the About screen */ -"follow_us" = "Sledujte nás a kontaktujte nás:"; +"follow_us" = "Sledujte nás a kontaktujte nás"; /* Alert text */ "email_error_body" = "Emailový klient nebol nastavený. Nakonfigurujte ho prosím alebo použite iný spôsob k tomu, abyste nás kontaktovali na %@"; @@ -528,7 +545,8 @@ "add_opening_hours" = "Pridať otváracie hodiny"; /* OpenStreetMap */ -"osm_explanation" = "Údaje OpenStreetMap vytvorené komunitou od %@. Viac informácií o tom, ako upravovať a aktualizovať mapu, nájdete na stránke OpenStreetMap.org"; +"osm_mapdata" = "Map data from OpenStreetMap"; +"osm_mapdata_explanation %@" = "Údaje OpenStreetMap vytvorené komunitou od %@. Viac informácií o tom, ako upravovať a aktualizovať mapu, nájdete na stránke OpenStreetMap.org"; "osm_more_about" = "Viac o OpenStreetMap"; "osm_more_about_url" = "https://wiki.openstreetmap.org/wiki/About_OpenStreetMap"; diff --git a/iphone/Maps/LocalizedStrings/sr.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/sr.lproj/Localizable.strings index c7f449b62..e3f6bfd48 100644 --- a/iphone/Maps/LocalizedStrings/sr.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/sr.lproj/Localizable.strings @@ -46,13 +46,13 @@ "about_headline" = "Слободна за све, направљена с љубављу"; /* Text in About screen */ -"about_proposition_1" = "• Без реклама, без праћења, без сакупљања података"; +"about_proposition_1" = "Без реклама, без праћења, без сакупљања података"; /* Text in About screen */ -"about_proposition_2" = "• Без непотребне потрошње батерије, ради и без интернета"; +"about_proposition_2" = "Без непотребне потрошње батерије, ради и без интернета"; /* Text in About screen */ -"about_proposition_3" = "• Брза, минималистичка, направљена од стране заједнице"; +"about_proposition_3" = "Брза, минималистичка, направљена од стране заједнице"; "close" = "Затвори"; "download" = "Преузми"; @@ -180,6 +180,9 @@ /* Share by email button text, also used in editor and About. */ "email" = "Email"; +/* Text for message to copy something */ +"copy_to_clipboard" = "Copy to Clipboard"; + /* Text for message when used successfully copied something */ "copied_to_clipboard" = "Копирано у клипборд: %@"; @@ -191,6 +194,8 @@ /* Prints version number in About dialog */ "version" = "CoMaps верзија: %@"; +"version %@ (%@)" = "Version %@ (%@)"; +"version: %@ (%@)\nmap data: %@" = "Version: %@ (%@)\nMap Data: %@"; /* Title for tracks category in bookmarks manager */ "tracks_title" = "Путање"; @@ -262,6 +267,18 @@ /* Text in About menu, opens CoMaps news website */ "news" = "Новости"; +/* Text in the about screen */ +"social_codeberg" = "Codeberg"; +"social_mastodon" = "Mastodon"; +"social_lemmy" = "Lemmy"; +"social_matrix" = "Matrix"; +"social_telegram" = "Telegram"; +"social_instagram" = "Instagram"; +"social_bluesky" = "Bluesky"; +"social_linkedin" = "LinkedIn"; +"social_facebook" = "Facebook"; +"social_email" = "E-Mail"; + /* Text in the editor */ "fediverse" = "Mastodon"; @@ -314,7 +331,7 @@ "volunteer" = "Волонтирајте"; /* "Social media" section header in the About screen */ -"follow_us" = "Пратите и контактирајте нас:"; +"follow_us" = "Пратите и контактирајте нас"; /* Alert text */ "email_error_body" = "Email клијент није подешен. Молимо вас да га подесите или нас контактирајте на %@"; @@ -528,7 +545,8 @@ "add_opening_hours" = "Додај радно време"; /* OpenStreetMap */ -"osm_explanation" = "Подаци са OpenStreetMap-а које је креирала заједница до %@. Научите више о томе како да мењате и ажурирате мапу на OpenStreetMap.org"; +"osm_mapdata" = "Map data from OpenStreetMap"; +"osm_mapdata_explanation %@" = "Подаци са OpenStreetMap-а које је креирала заједница до %@. Научите више о томе како да мењате и ажурирате мапу на OpenStreetMap.org"; "osm_more_about" = "Више о OpenStreetMap-у"; "osm_more_about_url" = "https://wiki.openstreetmap.org/wiki/About_OpenStreetMap"; diff --git a/iphone/Maps/LocalizedStrings/sv.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/sv.lproj/Localizable.strings index 1fea0b32e..116ebd345 100644 --- a/iphone/Maps/LocalizedStrings/sv.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/sv.lproj/Localizable.strings @@ -46,13 +46,13 @@ "about_headline" = "Gratis för alla, skapad med kärlek"; /* Text in About screen */ -"about_proposition_1" = "• Inga annonser, ingen spårning, ingen datainsamling"; +"about_proposition_1" = "Inga annonser, ingen spårning, ingen datainsamling"; /* Text in About screen */ -"about_proposition_2" = "• Låg batteriförbrukning, fungerar utan uppkoppling"; +"about_proposition_2" = "Låg batteriförbrukning, fungerar utan uppkoppling"; /* Text in About screen */ -"about_proposition_3" = "• Snabb, minimalistisk, utvecklad av gemenskapen"; +"about_proposition_3" = "Snabb, minimalistisk, utvecklad av gemenskapen"; "close" = "Stäng"; "download" = "Ladda ner"; @@ -180,6 +180,9 @@ /* Share by email button text, also used in editor and About. */ "email" = "E-post"; +/* Text for message to copy something */ +"copy_to_clipboard" = "Copy to Clipboard"; + /* Text for message when used successfully copied something */ "copied_to_clipboard" = "Kopierat till urklipp: %@"; @@ -191,6 +194,8 @@ /* Prints version number in About dialog */ "version" = "CoMaps-version: %@"; +"version %@ (%@)" = "Version %@ (%@)"; +"version: %@ (%@)\nmap data: %@" = "Version: %@ (%@)\nMap Data: %@"; /* Title for tracks category in bookmarks manager */ "tracks_title" = "Rutter"; @@ -262,6 +267,18 @@ /* Text in About menu, opens CoMaps news website */ "news" = "Nyheter"; +/* Text in the about screen */ +"social_codeberg" = "Codeberg"; +"social_mastodon" = "Mastodon"; +"social_lemmy" = "Lemmy"; +"social_matrix" = "Matrix"; +"social_telegram" = "Telegram"; +"social_instagram" = "Instagram"; +"social_bluesky" = "Bluesky"; +"social_linkedin" = "LinkedIn"; +"social_facebook" = "Facebook"; +"social_email" = "E-Mail"; + /* Text in the editor */ "fediverse" = "Mastodon"; @@ -314,7 +331,7 @@ "volunteer" = "Bli volontär"; /* "Social media" section header in the About screen */ -"follow_us" = "Följ och kontakta oss:"; +"follow_us" = "Följ och kontakta oss"; /* Alert text */ "email_error_body" = "Emailklienten har inte konfigurerats. Ställ in den eller använd ett annat sätt att kontakta oss på %@"; @@ -528,7 +545,8 @@ "add_opening_hours" = "Lägg till öppettider"; /* OpenStreetMap */ -"osm_explanation" = "Community-skapade OpenStreetMap-data från och med %@. Läs mer om hur du redigerar och uppdaterar kartan på OpenStreetMap.org"; +"osm_mapdata" = "Map data from OpenStreetMap"; +"osm_mapdata_explanation %@" = "Community-skapade OpenStreetMap-data från och med %@. Läs mer om hur du redigerar och uppdaterar kartan på OpenStreetMap.org"; "osm_more_about" = "Mer om OpenStreetMap"; "osm_more_about_url" = "https://wiki.openstreetmap.org/wiki/Sv:Om_OpenStreetMap"; diff --git a/iphone/Maps/LocalizedStrings/sw.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/sw.lproj/Localizable.strings index 9f1e639ec..0f7f94954 100644 --- a/iphone/Maps/LocalizedStrings/sw.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/sw.lproj/Localizable.strings @@ -36,13 +36,13 @@ "about_headline" = "Bure kwa kila mtu, iliyotengenezwa na upendo"; /* Text in About screen */ -"about_proposition_1" = "• Hakuna matangazo, hakuna ufuatiliaji, hakuna mkusanyiko wa data"; +"about_proposition_1" = "Hakuna matangazo, hakuna ufuatiliaji, hakuna mkusanyiko wa data"; /* Text in About screen */ -"about_proposition_2" = "• Hakuna betri kuisha, inafanya kazi nje ya mtandao"; +"about_proposition_2" = "Hakuna betri kuisha, inafanya kazi nje ya mtandao"; /* Text in About screen */ -"about_proposition_3" = "• Haraka, minimalist, iliyotengenezwa na jumuiya"; +"about_proposition_3" = "Haraka, minimalist, iliyotengenezwa na jumuiya"; "close" = "Close"; "download" = "Pakua"; @@ -170,6 +170,9 @@ /* Share by email button text, also used in editor and About. */ "email" = "Email"; +/* Text for message to copy something */ +"copy_to_clipboard" = "Copy to Clipboard"; + /* Text for message when used successfully copied something */ "copied_to_clipboard" = "Copied to clipboard: %@"; @@ -181,6 +184,8 @@ /* Prints version number in About dialog */ "version" = "Toleo la CoMaps: %@"; +"version %@ (%@)" = "Version %@ (%@)"; +"version: %@ (%@)\nmap data: %@" = "Version: %@ (%@)\nMap Data: %@"; /* Title for tracks category in bookmarks manager */ "tracks_title" = "Tracks"; @@ -252,6 +257,18 @@ /* Text in About menu, opens CoMaps news website */ "news" = "Habari"; +/* Text in the about screen */ +"social_codeberg" = "Codeberg"; +"social_mastodon" = "Mastodon"; +"social_lemmy" = "Lemmy"; +"social_matrix" = "Matrix"; +"social_telegram" = "Telegram"; +"social_instagram" = "Instagram"; +"social_bluesky" = "Bluesky"; +"social_linkedin" = "LinkedIn"; +"social_facebook" = "Facebook"; +"social_email" = "E-Mail"; + /* Text in the editor */ "fediverse" = "Mastodon"; @@ -304,7 +321,7 @@ "volunteer" = "Kujitolea"; /* "Social media" section header in the About screen */ -"follow_us" = "Fuata na uwasiliane nasi:"; +"follow_us" = "Fuata na uwasiliane nasi"; /* Alert text */ "email_error_body" = "The email client has not been set up. Please configure it or contact us at %@"; @@ -518,7 +535,8 @@ "add_opening_hours" = "Add opening hours"; /* OpenStreetMap */ -"osm_explanation" = "Data ya OpenStreetMap iliyoundwa na jumuiya kufikia %@. Pata maelezo zaidi kuhusu jinsi ya kuhariri na kusasisha ramani katika OpenStreetMap.org"; +"osm_mapdata" = "Map data from OpenStreetMap"; +"osm_mapdata_explanation %@" = "Data ya OpenStreetMap iliyoundwa na jumuiya kufikia %@. Pata maelezo zaidi kuhusu jinsi ya kuhariri na kusasisha ramani katika OpenStreetMap.org"; "osm_more_about" = "More about OpenStreetMap"; "osm_more_about_url" = "https://wiki.openstreetmap.org/wiki/About_OpenStreetMap"; diff --git a/iphone/Maps/LocalizedStrings/th.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/th.lproj/Localizable.strings index c5da49013..186515ea6 100644 --- a/iphone/Maps/LocalizedStrings/th.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/th.lproj/Localizable.strings @@ -46,13 +46,13 @@ "about_headline" = "ฟรีสำหรับทุกคนทำด้วยความรัก"; /* Text in About screen */ -"about_proposition_1" = "• ไม่มีโฆษณาไม่มีการติดตามไม่มีการรวบรวมข้อมูล"; +"about_proposition_1" = "ไม่มีโฆษณาไม่มีการติดตามไม่มีการรวบรวมข้อมูล"; /* Text in About screen */ -"about_proposition_2" = "• ไม่มีแบตเตอรี่หมด ทำงานแบบออฟไลน์"; +"about_proposition_2" = "ไม่มีแบตเตอรี่หมด ทำงานแบบออฟไลน์"; /* Text in About screen */ -"about_proposition_3" = "• รวดเร็ว เรียบง่าย พัฒนาโดยชุมชน"; +"about_proposition_3" = "รวดเร็ว เรียบง่าย พัฒนาโดยชุมชน"; "close" = "ปิด"; "download" = "ดาวน์โหลด"; @@ -180,6 +180,9 @@ /* Share by email button text, also used in editor and About. */ "email" = "อีเมล"; +/* Text for message to copy something */ +"copy_to_clipboard" = "Copy to Clipboard"; + /* Text for message when used successfully copied something */ "copied_to_clipboard" = "คัดลอกไปยังคลิปบอร์ด: %@"; @@ -191,6 +194,8 @@ /* Prints version number in About dialog */ "version" = "เวอร์ชัน CoMaps: %@"; +"version %@ (%@)" = "Version %@ (%@)"; +"version: %@ (%@)\nmap data: %@" = "Version: %@ (%@)\nMap Data: %@"; /* Title for tracks category in bookmarks manager */ "tracks_title" = "การติดตาม"; @@ -262,6 +267,18 @@ /* Text in About menu, opens CoMaps news website */ "news" = "ข่าว"; +/* Text in the about screen */ +"social_codeberg" = "Codeberg"; +"social_mastodon" = "Mastodon"; +"social_lemmy" = "Lemmy"; +"social_matrix" = "Matrix"; +"social_telegram" = "Telegram"; +"social_instagram" = "Instagram"; +"social_bluesky" = "Bluesky"; +"social_linkedin" = "LinkedIn"; +"social_facebook" = "Facebook"; +"social_email" = "E-Mail"; + /* Text in the editor */ "fediverse" = "Mastodon"; @@ -314,7 +331,7 @@ "volunteer" = "อาสาสมัคร"; /* "Social media" section header in the About screen */ -"follow_us" = "ติดตามและติดต่อเรา:"; +"follow_us" = "ติดตามและติดต่อเรา"; /* Alert text */ "email_error_body" = "อีเมลลูกค้ายังไม่ได้รับการจัดตั้งขึ้น กรุณาตั้งค่าหรือใช้วิธีอื่นที่จะติดต่อเราที่ %@"; @@ -528,7 +545,8 @@ "add_opening_hours" = "เพิ่มชั่วโมงทำการ"; /* OpenStreetMap */ -"osm_explanation" = "ข้อมูล OpenStreetMap ที่สร้างโดยชุมชน ณ %@ เรียนรู้เพิ่มเติมเกี่ยวกับวิธีแก้ไขและอัปเดตแผนที่ได้ที่ OpenStreetMap.org"; +"osm_mapdata" = "Map data from OpenStreetMap"; +"osm_mapdata_explanation %@" = "ข้อมูล OpenStreetMap ที่สร้างโดยชุมชน ณ %@ เรียนรู้เพิ่มเติมเกี่ยวกับวิธีแก้ไขและอัปเดตแผนที่ได้ที่ OpenStreetMap.org"; "osm_more_about" = "ข้อมูลเพิ่มเติมเกี่ยวกับ OpenStreetMap"; "osm_more_about_url" = "https://wiki.openstreetmap.org/wiki/Th:เกี่ยวกับ_OpenStreetMap"; diff --git a/iphone/Maps/LocalizedStrings/tr.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/tr.lproj/Localizable.strings index 45af0db69..dec5b63eb 100644 --- a/iphone/Maps/LocalizedStrings/tr.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/tr.lproj/Localizable.strings @@ -46,13 +46,13 @@ "about_headline" = "Sevgiyle yapılmış, herkes için ücretsiz harita"; /* Text in About screen */ -"about_proposition_1" = "• Reklam yok, izleyici yok, veri toplama yok"; +"about_proposition_1" = "Reklam yok, izleyici yok, veri toplama yok"; /* Text in About screen */ -"about_proposition_2" = "• Pilinizi tüketmez, çevrim dışı çalışır"; +"about_proposition_2" = "Pilinizi tüketmez, çevrim dışı çalışır"; /* Text in About screen */ -"about_proposition_3" = "• Hızlı, minimalist, toplulukça geliştirilmiş"; +"about_proposition_3" = "Hızlı, minimalist, toplulukça geliştirilmiş"; "close" = "Kapat"; "download" = "İndir"; @@ -180,6 +180,9 @@ /* Share by email button text, also used in editor and About. */ "email" = "E-posta"; +/* Text for message to copy something */ +"copy_to_clipboard" = "Copy to Clipboard"; + /* Text for message when used successfully copied something */ "copied_to_clipboard" = "Panoya kopyalandı: %@"; @@ -191,6 +194,8 @@ /* Prints version number in About dialog */ "version" = "CoMaps sürümü: %@"; +"version %@ (%@)" = "Version %@ (%@)"; +"version: %@ (%@)\nmap data: %@" = "Version: %@ (%@)\nMap Data: %@"; /* Title for tracks category in bookmarks manager */ "tracks_title" = "GPS Kayıtları"; @@ -262,6 +267,18 @@ /* Text in About menu, opens CoMaps news website */ "news" = "Haberler"; +/* Text in the about screen */ +"social_codeberg" = "Codeberg"; +"social_mastodon" = "Mastodon"; +"social_lemmy" = "Lemmy"; +"social_matrix" = "Matrix"; +"social_telegram" = "Telegram"; +"social_instagram" = "Instagram"; +"social_bluesky" = "Bluesky"; +"social_linkedin" = "LinkedIn"; +"social_facebook" = "Facebook"; +"social_email" = "E-Mail"; + /* Text in the editor */ "fediverse" = "Mastodon"; @@ -314,7 +331,7 @@ "volunteer" = "Gönüllü ol"; /* "Social media" section header in the About screen */ -"follow_us" = "Bizi izle ve iletişime geç:"; +"follow_us" = "Bizi izle ve iletişime geç"; /* Alert text */ "email_error_body" = "E-posta istemcisi henüz kurulmamış. Lütfen e-posta istemcisini yapılandırın veya bize %@ adresinden ulaşmak için başka bir yöntem deneyin"; @@ -528,7 +545,8 @@ "add_opening_hours" = "Açılış saatlerini ekle"; /* OpenStreetMap */ -"osm_explanation" = "%@ tarihine ait topluluk tarafından oluşturulmuş OpenStreetMap verilerini kullanıyorsunuz. OpenStreetMap.org adresinden haritayı nasıl düzenleyebileceğinizle ilgili bilgi edinebilirsiniz"; +"osm_mapdata" = "Map data from OpenStreetMap"; +"osm_mapdata_explanation %@" = "%@ tarihine ait topluluk tarafından oluşturulmuş OpenStreetMap verilerini kullanıyorsunuz. OpenStreetMap.org adresinden haritayı nasıl düzenleyebileceğinizle ilgili bilgi edinebilirsiniz"; "osm_more_about" = "OpenStreetMap ile ilgili ek bilgi"; "osm_more_about_url" = "https://wiki.openstreetmap.org/wiki/Tr:About_OpenStreetMap"; diff --git a/iphone/Maps/LocalizedStrings/uk.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/uk.lproj/Localizable.strings index fee20e4de..3bb104cab 100644 --- a/iphone/Maps/LocalizedStrings/uk.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/uk.lproj/Localizable.strings @@ -46,13 +46,13 @@ "about_headline" = "Безкоштовно для всіх, зроблене з любов'ю"; /* Text in About screen */ -"about_proposition_1" = "• Без реклами, без трекінгу, без стеження"; +"about_proposition_1" = "Без реклами, без трекінгу, без стеження"; /* Text in About screen */ -"about_proposition_2" = "• Не розряджає батарею, працює в автономному режимі"; +"about_proposition_2" = "Не розряджає батарею, працює в автономному режимі"; /* Text in About screen */ -"about_proposition_3" = "• Швидкий, мінімалістичний, розроблений спільнотою"; +"about_proposition_3" = "Швидкий, мінімалістичний, розроблений спільнотою"; "close" = "Закрити"; "download" = "Завантажити"; @@ -180,6 +180,9 @@ /* Share by email button text, also used in editor and About. */ "email" = "Ел. пошта"; +/* Text for message to copy something */ +"copy_to_clipboard" = "Copy to Clipboard"; + /* Text for message when used successfully copied something */ "copied_to_clipboard" = "Скопійовано в буфер обміну: %@"; @@ -191,6 +194,8 @@ /* Prints version number in About dialog */ "version" = "Версія CoMaps: %@"; +"version %@ (%@)" = "Version %@ (%@)"; +"version: %@ (%@)\nmap data: %@" = "Version: %@ (%@)\nMap Data: %@"; /* Title for tracks category in bookmarks manager */ "tracks_title" = "Маршрути"; @@ -262,6 +267,18 @@ /* Text in About menu, opens CoMaps news website */ "news" = "Новини"; +/* Text in the about screen */ +"social_codeberg" = "Codeberg"; +"social_mastodon" = "Mastodon"; +"social_lemmy" = "Lemmy"; +"social_matrix" = "Matrix"; +"social_telegram" = "Telegram"; +"social_instagram" = "Instagram"; +"social_bluesky" = "Bluesky"; +"social_linkedin" = "LinkedIn"; +"social_facebook" = "Facebook"; +"social_email" = "E-Mail"; + /* Text in the editor */ "fediverse" = "Mastodon"; @@ -314,7 +331,7 @@ "volunteer" = "Стати волонтером"; /* "Social media" section header in the About screen */ -"follow_us" = "Підписуйтесь та зв'язуйтесь з нами:"; +"follow_us" = "Підписуйтесь та зв'язуйтесь з нами"; /* Alert text */ "email_error_body" = "Поштовий клієнт не налаштований. Налаштуйте його або скористайтеся іншими способами зв'язку. Наша адреса – %@"; @@ -528,7 +545,8 @@ "add_opening_hours" = "Додати години роботи"; /* OpenStreetMap */ -"osm_explanation" = "Дані OpenStreetMap, створені спільнотою, станом на %@. Дізнайтеся більше про те, як редагувати та оновлювати мапу на OpenStreetMap.org"; +"osm_mapdata" = "Map data from OpenStreetMap"; +"osm_mapdata_explanation %@" = "Дані OpenStreetMap, створені спільнотою, станом на %@. Дізнайтеся більше про те, як редагувати та оновлювати мапу на OpenStreetMap.org"; "osm_more_about" = "Більше про OpenStreetMap"; "osm_more_about_url" = "https://wiki.openstreetmap.org/wiki/Uk:Про_проект"; diff --git a/iphone/Maps/LocalizedStrings/vi.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/vi.lproj/Localizable.strings index 1855dbd4a..78569c9b5 100644 --- a/iphone/Maps/LocalizedStrings/vi.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/vi.lproj/Localizable.strings @@ -46,13 +46,13 @@ "about_headline" = "Miễn phí cho mọi người, được làm bằng tình yêu"; /* Text in About screen */ -"about_proposition_1" = "• Không có quảng cáo, không theo dõi, không thu thập dữ liệu"; +"about_proposition_1" = "Không có quảng cáo, không theo dõi, không thu thập dữ liệu"; /* Text in About screen */ -"about_proposition_2" = "• Không hao pin, hoạt động offline"; +"about_proposition_2" = "Không hao pin, hoạt động offline"; /* Text in About screen */ -"about_proposition_3" = "• Nhanh chóng, tối giản, được phát triển bởi cộng đồng"; +"about_proposition_3" = "Nhanh chóng, tối giản, được phát triển bởi cộng đồng"; "close" = "Đóng"; "download" = "Tải xuống"; @@ -180,6 +180,9 @@ /* Share by email button text, also used in editor and About. */ "email" = "Email"; +/* Text for message to copy something */ +"copy_to_clipboard" = "Copy to Clipboard"; + /* Text for message when used successfully copied something */ "copied_to_clipboard" = "Đã sao chép vào Bảng tạm: %@"; @@ -191,6 +194,8 @@ /* Prints version number in About dialog */ "version" = "Phiên bản CoMaps: %@"; +"version %@ (%@)" = "Version %@ (%@)"; +"version: %@ (%@)\nmap data: %@" = "Version: %@ (%@)\nMap Data: %@"; /* Title for tracks category in bookmarks manager */ "tracks_title" = "Dấu vết"; @@ -262,6 +267,18 @@ /* Text in About menu, opens CoMaps news website */ "news" = "Tin tức"; +/* Text in the about screen */ +"social_codeberg" = "Codeberg"; +"social_mastodon" = "Mastodon"; +"social_lemmy" = "Lemmy"; +"social_matrix" = "Matrix"; +"social_telegram" = "Telegram"; +"social_instagram" = "Instagram"; +"social_bluesky" = "Bluesky"; +"social_linkedin" = "LinkedIn"; +"social_facebook" = "Facebook"; +"social_email" = "E-Mail"; + /* Text in the editor */ "fediverse" = "Mastodon"; @@ -314,7 +331,7 @@ "volunteer" = "Tình nguyện"; /* "Social media" section header in the About screen */ -"follow_us" = "Theo dõi và liên hệ với chúng tôi:"; +"follow_us" = "Theo dõi và liên hệ với chúng tôi"; /* Alert text */ "email_error_body" = "Trình khách email này chưa được thiết lập. Bạn vui lòng cấu hình nó hoặc sử dụng một cách khác để liên hệ với chúng tôi tại %@"; @@ -528,7 +545,8 @@ "add_opening_hours" = "Thêm giờ làm việc"; /* OpenStreetMap */ -"osm_explanation" = "Dữ liệu OpenStreetMap do cộng đồng tạo ra kể từ %@. Tìm hiểu thêm về cách chỉnh sửa và cập nhật bản đồ tại OpenStreetMap.org"; +"osm_mapdata" = "Map data from OpenStreetMap"; +"osm_mapdata_explanation %@" = "Dữ liệu OpenStreetMap do cộng đồng tạo ra kể từ %@. Tìm hiểu thêm về cách chỉnh sửa và cập nhật bản đồ tại OpenStreetMap.org"; "osm_more_about" = "Thông tin bổ sung về OpenStreetMap"; "osm_more_about_url" = "https://wiki.openstreetmap.org/wiki/About_OpenStreetMap"; diff --git a/iphone/Maps/LocalizedStrings/zh-Hans.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/zh-Hans.lproj/Localizable.strings index 92dd6f90b..eea384d74 100644 --- a/iphone/Maps/LocalizedStrings/zh-Hans.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/zh-Hans.lproj/Localizable.strings @@ -46,13 +46,13 @@ "about_headline" = "对每个人都免费,用爱制成"; /* Text in About screen */ -"about_proposition_1" = "• 没有广告,不会跟踪您,更不会收集您的数据"; +"about_proposition_1" = "没有广告,不会跟踪您,更不会收集您的数据"; /* Text in About screen */ -"about_proposition_2" = "• 无需耗费太多电量,可离线工作"; +"about_proposition_2" = "无需耗费太多电量,可离线工作"; /* Text in About screen */ -"about_proposition_3" = "• 快速且简约,由社区开发"; +"about_proposition_3" = "快速且简约,由社区开发"; "close" = "关闭"; "download" = "下载"; @@ -180,6 +180,9 @@ /* Share by email button text, also used in editor and About. */ "email" = "电子邮件"; +/* Text for message to copy something */ +"copy_to_clipboard" = "Copy to Clipboard"; + /* Text for message when used successfully copied something */ "copied_to_clipboard" = "已复制到剪贴板:%@"; @@ -191,6 +194,8 @@ /* Prints version number in About dialog */ "version" = "CoMaps 版本:%@"; +"version %@ (%@)" = "Version %@ (%@)"; +"version: %@ (%@)\nmap data: %@" = "Version: %@ (%@)\nMap Data: %@"; /* Title for tracks category in bookmarks manager */ "tracks_title" = "轨迹"; @@ -262,6 +267,18 @@ /* Text in About menu, opens CoMaps news website */ "news" = "新闻"; +/* Text in the about screen */ +"social_codeberg" = "Codeberg"; +"social_mastodon" = "Mastodon"; +"social_lemmy" = "Lemmy"; +"social_matrix" = "Matrix"; +"social_telegram" = "Telegram"; +"social_instagram" = "Instagram"; +"social_bluesky" = "Bluesky"; +"social_linkedin" = "LinkedIn"; +"social_facebook" = "Facebook"; +"social_email" = "E-Mail"; + /* Text in the editor */ "fediverse" = "Mastodon"; @@ -528,7 +545,8 @@ "add_opening_hours" = "添加营业时间"; /* OpenStreetMap */ -"osm_explanation" = "截至 %@ 的社区创建的 OpenStreetMap 数据。请访问 OpenStreetMap.org 详细了解如何编辑和更新地图"; +"osm_mapdata" = "Map data from OpenStreetMap"; +"osm_mapdata_explanation %@" = "截至 %@ 的社区创建的 OpenStreetMap 数据。请访问 OpenStreetMap.org 详细了解如何编辑和更新地图"; "osm_more_about" = "关于 OpenStreetMap 的更多信息"; "osm_more_about_url" = "https://wiki.openstreetmap.org/wiki/Zh-hans:关于"; diff --git a/iphone/Maps/LocalizedStrings/zh-Hant.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/zh-Hant.lproj/Localizable.strings index 028efde57..78dc93ddd 100644 --- a/iphone/Maps/LocalizedStrings/zh-Hant.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/zh-Hant.lproj/Localizable.strings @@ -46,13 +46,13 @@ "about_headline" = "對每個人都免費,用愛製成"; /* Text in About screen */ -"about_proposition_1" = "• 沒有廣告,不會跟蹤您,更不會收集您的數據"; +"about_proposition_1" = "沒有廣告,不會跟蹤您,更不會收集您的數據"; /* Text in About screen */ -"about_proposition_2" = "• 無需耗費太多電量,可離線工作"; +"about_proposition_2" = "無需耗費太多電量,可離線工作"; /* Text in About screen */ -"about_proposition_3" = "• 快速且簡約,由社區開發"; +"about_proposition_3" = "快速且簡約,由社區開發"; "close" = "關閉"; "download" = "下載"; @@ -180,6 +180,9 @@ /* Share by email button text, also used in editor and About. */ "email" = "電子郵件"; +/* Text for message to copy something */ +"copy_to_clipboard" = "Copy to Clipboard"; + /* Text for message when used successfully copied something */ "copied_to_clipboard" = "已複製到剪貼簿:%@"; @@ -191,6 +194,8 @@ /* Prints version number in About dialog */ "version" = "CoMaps 版本:%@"; +"version %@ (%@)" = "Version %@ (%@)"; +"version: %@ (%@)\nmap data: %@" = "Version: %@ (%@)\nMap Data: %@"; /* Title for tracks category in bookmarks manager */ "tracks_title" = "軌跡"; @@ -262,6 +267,18 @@ /* Text in About menu, opens CoMaps news website */ "news" = "新聞"; +/* Text in the about screen */ +"social_codeberg" = "Codeberg"; +"social_mastodon" = "Mastodon"; +"social_lemmy" = "Lemmy"; +"social_matrix" = "Matrix"; +"social_telegram" = "Telegram"; +"social_instagram" = "Instagram"; +"social_bluesky" = "Bluesky"; +"social_linkedin" = "LinkedIn"; +"social_facebook" = "Facebook"; +"social_email" = "E-Mail"; + /* Text in the editor */ "fediverse" = "Mastodon"; @@ -528,7 +545,8 @@ "add_opening_hours" = "新增營業時間"; /* OpenStreetMap */ -"osm_explanation" = "截至 %@ 的社群創建的 OpenStreetMap 資料。請訪問 OpenStreetMap.org 以了解有關如何編輯和更新地圖的更多資訊"; +"osm_mapdata" = "Map data from OpenStreetMap"; +"osm_mapdata_explanation %@" = "截至 %@ 的社群創建的 OpenStreetMap 資料。請訪問 OpenStreetMap.org 以了解有關如何編輯和更新地圖的更多資訊"; "osm_more_about" = "關於 OpenStreetMap 的更多資訊"; "osm_more_about_url" = "https://wiki.openstreetmap.org/wiki/Zh-hant:關於OpenStreetMap"; diff --git a/iphone/Maps/Maps.xcodeproj/project.pbxproj b/iphone/Maps/Maps.xcodeproj/project.pbxproj index bda1d720a..359ca0678 100644 --- a/iphone/Maps/Maps.xcodeproj/project.pbxproj +++ b/iphone/Maps/Maps.xcodeproj/project.pbxproj @@ -16,6 +16,14 @@ 272F1F3D2E0EE0C800FA52EF /* ProfileView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 272F1F3C2E0EE0C400FA52EF /* ProfileView.swift */; }; 272F1F462E0EEF9400FA52EF /* SafariView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 272F1F452E0EEF8B00FA52EF /* SafariView.swift */; }; 2765D1D02E13F9C20005CA2B /* BridgeControllers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2765D1CD2E13F9BC0005CA2B /* BridgeControllers.swift */; }; + 27697F742E25177600FBD913 /* AboutView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27697F732E25177300FBD913 /* AboutView.swift */; }; + 27697F7F2E254A5500FBD913 /* CopyrightView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27697F7C2E254A5000FBD913 /* CopyrightView.swift */; }; + 27697F812E254A6000FBD913 /* FaqView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27697F802E254A5800FBD913 /* FaqView.swift */; }; + 27697F832E254AA100FBD913 /* EmbeddedSafariView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27697F822E254A9900FBD913 /* EmbeddedSafariView.swift */; }; + 27697F852E255B6500FBD913 /* EmbeddedSafariViewCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27697F842E255B6300FBD913 /* EmbeddedSafariViewCoordinator.swift */; }; + 27697F872E255B8500FBD913 /* EmbeddedSafariViewContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27697F862E255B7C00FBD913 /* EmbeddedSafariViewContent.swift */; }; + 27697F902E257EDA00FBD913 /* AboutCoMapsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27697F8F2E257ED800FBD913 /* AboutCoMapsView.swift */; }; + 27697F922E257EED00FBD913 /* ApoutOpenStreetMapView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27697F912E257EE600FBD913 /* ApoutOpenStreetMapView.swift */; }; 27768FDB2E20199A0086784A /* RoutingOptionsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27768FD92E20199A0086784A /* RoutingOptionsView.swift */; }; 27768FE02E201BE60086784A /* LeftButtonType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27768FDF2E201BE60086784A /* LeftButtonType.swift */; }; 279367562E1BE16300AA5C3D /* Settings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 279367552E1BE16300AA5C3D /* Settings.swift */; }; @@ -461,7 +469,6 @@ ED0B1C312BC2951F00FB8EDD /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = ED0B1C302BC2951F00FB8EDD /* PrivacyInfo.xcprivacy */; }; ED0B1FEF2CAA9A25006E31A4 /* UIView+Highlight.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED0B1FEE2CAA9A25006E31A4 /* UIView+Highlight.swift */; }; ED0C54992C6E6AF000253A5F /* TrackRecordingManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED0C54972C6E14E800253A5F /* TrackRecordingManager.swift */; }; - ED1080A72B791CFE0023F27E /* SocialMediaCollectionViewHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED1080A62B791CFE0023F27E /* SocialMediaCollectionViewHeader.swift */; }; ED1263AB2B6F99F900AD99F3 /* UIView+AddSeparator.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED1263AA2B6F99F900AD99F3 /* UIView+AddSeparator.swift */; }; ED1ADA332BC6B1B40029209F /* CarPlayServiceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED1ADA322BC6B1B40029209F /* CarPlayServiceTests.swift */; }; ED2D74382D14337500660FBF /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = ED2D74342D14337500660FBF /* Assets.xcassets */; }; @@ -527,9 +534,6 @@ EDC4E3612C5E2576009286A2 /* RecentlyDeletedCategoriesViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EDC4E3412C5D1BD3009286A2 /* RecentlyDeletedCategoriesViewModelTests.swift */; }; EDC4E3692C5E6F5B009286A2 /* MockRecentlyDeletedCategoriesManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = EDC4E3402C5D1BD3009286A2 /* MockRecentlyDeletedCategoriesManager.swift */; }; EDCA7CDF2D317DF9003366CE /* StyleSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = EDCA7CDE2D317DF9003366CE /* StyleSheet.swift */; }; - EDE243DD2B6D2E640057369B /* AboutController.swift in Sources */ = {isa = PBXBuildFile; fileRef = EDE243D52B6CF3980057369B /* AboutController.swift */; }; - EDE243E52B6D3F400057369B /* OSMView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EDE243E42B6D3F400057369B /* OSMView.swift */; }; - EDE243E72B6D55610057369B /* InfoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EDE243E02B6D3EA00057369B /* InfoView.swift */; }; EDE8EAEB2C2DBB99002777F5 /* OpenInApplication.swift in Sources */ = {isa = PBXBuildFile; fileRef = EDE8EAEA2C2DBB99002777F5 /* OpenInApplication.swift */; }; EDF838842C00B640007E4E67 /* SynchronizationFileWriter.swift in Sources */ = {isa = PBXBuildFile; fileRef = EDF838812C00B640007E4E67 /* SynchronizationFileWriter.swift */; }; EDF838BE2C00B9D0007E4E67 /* LocalDirectoryMonitorDelegateMock.swift in Sources */ = {isa = PBXBuildFile; fileRef = EDF838AD2C00B9C7007E4E67 /* LocalDirectoryMonitorDelegateMock.swift */; }; @@ -539,12 +543,7 @@ EDF838C22C00B9D6007E4E67 /* MetadataItemStubs.swift in Sources */ = {isa = PBXBuildFile; fileRef = EDF838B42C00B9C7007E4E67 /* MetadataItemStubs.swift */; }; EDF838C32C00B9D6007E4E67 /* UbiquitousDirectoryMonitorDelegateMock.swift in Sources */ = {isa = PBXBuildFile; fileRef = EDF838B12C00B9C7007E4E67 /* UbiquitousDirectoryMonitorDelegateMock.swift */; }; EDF838C42C00B9D6007E4E67 /* FileManagerMock.swift in Sources */ = {isa = PBXBuildFile; fileRef = EDF838B32C00B9C7007E4E67 /* FileManagerMock.swift */; }; - EDFDFB462B7139490013A44C /* AboutInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = EDFDFB452B7139490013A44C /* AboutInfo.swift */; }; - EDFDFB482B7139670013A44C /* SocialMedia.swift in Sources */ = {isa = PBXBuildFile; fileRef = EDFDFB472B7139670013A44C /* SocialMedia.swift */; }; - EDFDFB4A2B722A310013A44C /* SocialMediaCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = EDFDFB492B722A310013A44C /* SocialMediaCollectionViewCell.swift */; }; - EDFDFB4C2B722C9C0013A44C /* InfoTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = EDFDFB4B2B722C9C0013A44C /* InfoTableViewCell.swift */; }; - EDFDFB522B726F1A0013A44C /* ButtonsStackView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EDFDFB512B726F1A0013A44C /* ButtonsStackView.swift */; }; - EDFDFB612B74E2500013A44C /* DonationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EDFDFB602B74E2500013A44C /* DonationView.swift */; }; + EDFDFB482B7139670013A44C /* Social Media.swift in Sources */ = {isa = PBXBuildFile; fileRef = EDFDFB472B7139670013A44C /* Social Media.swift */; }; EDFE1A4A2DF1989700FDEA38 /* UIAlertController+UnknownCurrentPosition.swift in Sources */ = {isa = PBXBuildFile; fileRef = EDFE1A492DF1989700FDEA38 /* UIAlertController+UnknownCurrentPosition.swift */; }; F607C1881C032A8800B53A87 /* resources-hdpi_light in Resources */ = {isa = PBXBuildFile; fileRef = F607C1831C032A8800B53A87 /* resources-hdpi_light */; }; F607C18A1C032A8800B53A87 /* resources-hdpi_dark in Resources */ = {isa = PBXBuildFile; fileRef = F607C1841C032A8800B53A87 /* resources-hdpi_dark */; }; @@ -675,7 +674,6 @@ FA853BED26BC5B9E0026D455 /* libmwm_diff.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FA853BEC26BC5B9E0026D455 /* libmwm_diff.a */; }; FA853BEF26BC5BA40026D455 /* libdescriptions.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FA853BEE26BC5BA40026D455 /* libdescriptions.a */; }; FA853BF326BC5DE50026D455 /* libshaders.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FA853BF226BC5DE50026D455 /* libshaders.a */; }; - FA85D43D27958BF500B858E9 /* FaqController.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA85D43C27958BF500B858E9 /* FaqController.swift */; }; FA85D44E279B738F00B858E9 /* CopyableLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA85D44D279B738F00B858E9 /* CopyableLabel.swift */; }; FA8E808925F412E2002A1434 /* FirstSession.mm in Sources */ = {isa = PBXBuildFile; fileRef = FA8E808825F412E2002A1434 /* FirstSession.mm */; }; FAF9DDA32A86DC54000D7037 /* libharfbuzz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FAF9DDA22A86DC54000D7037 /* libharfbuzz.a */; }; @@ -777,6 +775,14 @@ 272F1F3C2E0EE0C400FA52EF /* ProfileView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProfileView.swift; sourceTree = ""; }; 272F1F452E0EEF8B00FA52EF /* SafariView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SafariView.swift; sourceTree = ""; }; 2765D1CD2E13F9BC0005CA2B /* BridgeControllers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BridgeControllers.swift; sourceTree = ""; }; + 27697F732E25177300FBD913 /* AboutView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AboutView.swift; sourceTree = ""; }; + 27697F7C2E254A5000FBD913 /* CopyrightView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CopyrightView.swift; sourceTree = ""; }; + 27697F802E254A5800FBD913 /* FaqView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FaqView.swift; sourceTree = ""; }; + 27697F822E254A9900FBD913 /* EmbeddedSafariView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmbeddedSafariView.swift; sourceTree = ""; }; + 27697F842E255B6300FBD913 /* EmbeddedSafariViewCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmbeddedSafariViewCoordinator.swift; sourceTree = ""; }; + 27697F862E255B7C00FBD913 /* EmbeddedSafariViewContent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmbeddedSafariViewContent.swift; sourceTree = ""; }; + 27697F8F2E257ED800FBD913 /* AboutCoMapsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AboutCoMapsView.swift; sourceTree = ""; }; + 27697F912E257EE600FBD913 /* ApoutOpenStreetMapView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ApoutOpenStreetMapView.swift; sourceTree = ""; }; 27768FD92E20199A0086784A /* RoutingOptionsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoutingOptionsView.swift; sourceTree = ""; }; 27768FDF2E201BE60086784A /* LeftButtonType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LeftButtonType.swift; sourceTree = ""; }; 279367552E1BE16300AA5C3D /* Settings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Settings.swift; sourceTree = ""; }; @@ -1418,7 +1424,6 @@ ED0B1C302BC2951F00FB8EDD /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; ED0B1FEE2CAA9A25006E31A4 /* UIView+Highlight.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIView+Highlight.swift"; sourceTree = ""; }; ED0C54972C6E14E800253A5F /* TrackRecordingManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TrackRecordingManager.swift; sourceTree = ""; }; - ED1080A62B791CFE0023F27E /* SocialMediaCollectionViewHeader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SocialMediaCollectionViewHeader.swift; sourceTree = ""; }; ED1263AA2B6F99F900AD99F3 /* UIView+AddSeparator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIView+AddSeparator.swift"; sourceTree = ""; }; ED1ADA322BC6B1B40029209F /* CarPlayServiceTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CarPlayServiceTests.swift; sourceTree = ""; }; ED2D742C2D14337500660FBF /* AppLogo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppLogo.swift; sourceTree = ""; }; @@ -1531,9 +1536,6 @@ EDC4E3482C5D1BEF009286A2 /* RecentlyDeletedCategoriesViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RecentlyDeletedCategoriesViewModel.swift; sourceTree = ""; }; EDC4E3492C5D1BEF009286A2 /* RecentlyDeletedTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RecentlyDeletedTableViewCell.swift; sourceTree = ""; }; EDCA7CDE2D317DF9003366CE /* StyleSheet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StyleSheet.swift; sourceTree = ""; }; - EDE243D52B6CF3980057369B /* AboutController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AboutController.swift; sourceTree = ""; }; - EDE243E02B6D3EA00057369B /* InfoView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfoView.swift; sourceTree = ""; }; - EDE243E42B6D3F400057369B /* OSMView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OSMView.swift; sourceTree = ""; }; EDE8EAEA2C2DBB99002777F5 /* OpenInApplication.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OpenInApplication.swift; sourceTree = ""; }; EDF838812C00B640007E4E67 /* SynchronizationFileWriter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SynchronizationFileWriter.swift; sourceTree = ""; }; EDF838AD2C00B9C7007E4E67 /* LocalDirectoryMonitorDelegateMock.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LocalDirectoryMonitorDelegateMock.swift; sourceTree = ""; }; @@ -1543,12 +1545,7 @@ EDF838B22C00B9C7007E4E67 /* iCloudDirectoryMonitorTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = iCloudDirectoryMonitorTests.swift; sourceTree = ""; }; EDF838B32C00B9C7007E4E67 /* FileManagerMock.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FileManagerMock.swift; sourceTree = ""; }; EDF838B42C00B9C7007E4E67 /* MetadataItemStubs.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MetadataItemStubs.swift; sourceTree = ""; }; - EDFDFB452B7139490013A44C /* AboutInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AboutInfo.swift; sourceTree = ""; }; - EDFDFB472B7139670013A44C /* SocialMedia.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SocialMedia.swift; sourceTree = ""; }; - EDFDFB492B722A310013A44C /* SocialMediaCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SocialMediaCollectionViewCell.swift; sourceTree = ""; }; - EDFDFB4B2B722C9C0013A44C /* InfoTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfoTableViewCell.swift; sourceTree = ""; }; - EDFDFB512B726F1A0013A44C /* ButtonsStackView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ButtonsStackView.swift; sourceTree = ""; }; - EDFDFB602B74E2500013A44C /* DonationView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DonationView.swift; sourceTree = ""; }; + EDFDFB472B7139670013A44C /* Social Media.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Social Media.swift"; sourceTree = ""; }; EDFE1A492DF1989700FDEA38 /* UIAlertController+UnknownCurrentPosition.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIAlertController+UnknownCurrentPosition.swift"; sourceTree = ""; }; EE026F0511D6AC0D00645242 /* classificator.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = classificator.txt; path = ../../data/classificator.txt; sourceTree = SOURCE_ROOT; }; EED10A4411F78D120095FAD4 /* MapViewController.mm */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 2; lastKnownFileType = sourcecode.cpp.objcpp; lineEnding = 0; path = MapViewController.mm; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; }; @@ -1771,7 +1768,6 @@ FA853BEC26BC5B9E0026D455 /* libmwm_diff.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; path = libmwm_diff.a; sourceTree = BUILT_PRODUCTS_DIR; }; FA853BEE26BC5BA40026D455 /* libdescriptions.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; path = libdescriptions.a; sourceTree = BUILT_PRODUCTS_DIR; }; FA853BF226BC5DE50026D455 /* libshaders.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; path = libshaders.a; sourceTree = BUILT_PRODUCTS_DIR; }; - FA85D43C27958BF500B858E9 /* FaqController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FaqController.swift; sourceTree = ""; }; FA85D44D279B738F00B858E9 /* CopyableLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CopyableLabel.swift; sourceTree = ""; }; FA85F632145DDDC20090E1A0 /* packed_polygons.bin */ = {isa = PBXFileReference; lastKnownFileType = archive.macbinary; name = packed_polygons.bin; path = ../../data/packed_polygons.bin; sourceTree = SOURCE_ROOT; }; FA8E808825F412E2002A1434 /* FirstSession.mm */ = {isa = PBXFileReference; indentWidth = 2; lastKnownFileType = sourcecode.cpp.objcpp; path = FirstSession.mm; sourceTree = ""; tabWidth = 2; }; @@ -1926,6 +1922,9 @@ children = ( 2765D1CD2E13F9BC0005CA2B /* BridgeControllers.swift */, 272F1F452E0EEF8B00FA52EF /* SafariView.swift */, + 27697F822E254A9900FBD913 /* EmbeddedSafariView.swift */, + 27697F842E255B6300FBD913 /* EmbeddedSafariViewCoordinator.swift */, + 27697F862E255B7C00FBD913 /* EmbeddedSafariViewContent.swift */, ); path = Bridging; sourceTree = ""; @@ -1946,10 +1945,31 @@ 279367552E1BE16300AA5C3D /* Settings.swift */, 27AF185B2E1DB64B00CD41E2 /* Settings Types */, 270C9C252E16AB6300ABA688 /* Profile.swift */, + EDFDFB472B7139670013A44C /* Social Media.swift */, ); path = Model; sourceTree = ""; }; + 27697F882E255D3F00FBD913 /* Help */ = { + isa = PBXGroup; + children = ( + 27697F8E2E257ECB00FBD913 /* About */, + 27697F802E254A5800FBD913 /* FaqView.swift */, + 27697F7C2E254A5000FBD913 /* CopyrightView.swift */, + ); + path = Help; + sourceTree = ""; + }; + 27697F8E2E257ECB00FBD913 /* About */ = { + isa = PBXGroup; + children = ( + 27697F732E25177300FBD913 /* AboutView.swift */, + 27697F8F2E257ED800FBD913 /* AboutCoMapsView.swift */, + 27697F912E257EE600FBD913 /* ApoutOpenStreetMapView.swift */, + ); + path = About; + sourceTree = ""; + }; 27768FDA2E20199A0086784A /* Routing */ = { isa = PBXGroup; children = ( @@ -3414,39 +3434,6 @@ path = iCloudDirectoryMonitorTests; sourceTree = ""; }; - EDFDFB412B7108090013A44C /* AboutController */ = { - isa = PBXGroup; - children = ( - EDFDFB442B7139380013A44C /* Models */, - EDFDFB552B72821D0013A44C /* Views */, - EDE243D52B6CF3980057369B /* AboutController.swift */, - ); - path = AboutController; - sourceTree = ""; - }; - EDFDFB442B7139380013A44C /* Models */ = { - isa = PBXGroup; - children = ( - EDFDFB452B7139490013A44C /* AboutInfo.swift */, - EDFDFB472B7139670013A44C /* SocialMedia.swift */, - ); - path = Models; - sourceTree = ""; - }; - EDFDFB552B72821D0013A44C /* Views */ = { - isa = PBXGroup; - children = ( - EDE243E42B6D3F400057369B /* OSMView.swift */, - EDFDFB602B74E2500013A44C /* DonationView.swift */, - EDE243E02B6D3EA00057369B /* InfoView.swift */, - EDFDFB492B722A310013A44C /* SocialMediaCollectionViewCell.swift */, - ED1080A62B791CFE0023F27E /* SocialMediaCollectionViewHeader.swift */, - EDFDFB512B726F1A0013A44C /* ButtonsStackView.swift */, - EDFDFB4B2B722C9C0013A44C /* InfoTableViewCell.swift */, - ); - path = Views; - sourceTree = ""; - }; EDFE1A462DF1986900FDEA38 /* UnknownCurrentPositionAlert */ = { isa = PBXGroup; children = ( @@ -3635,9 +3622,9 @@ F6E2FBFC1E097B9F0083EBEC /* Downloader */, F6E2FC291E097B9F0083EBEC /* EditBookmark */, F6E2FC321E097B9F0083EBEC /* Editor */, - FA85D4372795895500B858E9 /* Help */, F6E2FC8F1E097B9F0083EBEC /* PlacePage */, F6E2FCE11E097B9F0083EBEC /* Search */, + 27697F882E255D3F00FBD913 /* Help */, F6E2FD361E097BA00083EBEC /* Settings */, 340E1EE31E2F614400CE49BF /* Storyboard */, ); @@ -4033,15 +4020,6 @@ name = Products; sourceTree = ""; }; - FA85D4372795895500B858E9 /* Help */ = { - isa = PBXGroup; - children = ( - EDFDFB412B7108090013A44C /* AboutController */, - FA85D43C27958BF500B858E9 /* FaqController.swift */, - ); - path = Help; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -4450,6 +4428,7 @@ 337F98B421D3C9F200C8AC27 /* SearchHistoryViewController.swift in Sources */, 3404F49D2028A2430090E401 /* BMCActionsCell.swift in Sources */, F6E2FD8F1E097BA00083EBEC /* MWMNoMapsViewController.mm in Sources */, + 27697F902E257EDA00FBD913 /* AboutCoMapsView.swift in Sources */, 993DF12C23F6BDB100AC231A /* Theme.swift in Sources */, 47CA68D8250044C500671019 /* BookmarksListRouter.swift in Sources */, 34D3B0421E389D05004100F9 /* MWMEditorTextTableViewCell.m in Sources */, @@ -4464,6 +4443,7 @@ 34AB66471FC5AA330078E451 /* RouteManagerTableView.swift in Sources */, 9989273C2449E60200260CE2 /* BottomMenuInteractor.swift in Sources */, 47DF72B922520CE20004AB10 /* MWMRoutingOptions.mm in Sources */, + 27697F812E254A6000FBD913 /* FaqView.swift in Sources */, 999FC12023ABA9AD00B0E6F9 /* SearchStyleSheet.swift in Sources */, ED2D745E2D1433DE00660FBF /* TrackRecordingActivityManager.swift in Sources */, 3D15ACEE2155117000F725D5 /* MWMObjectsCategorySelectorDataSource.mm in Sources */, @@ -4503,7 +4483,7 @@ 9989273A2449E60200260CE2 /* BottomMenuViewController.swift in Sources */, 47E3C72D2111E6A2008B3B27 /* FadeTransitioning.swift in Sources */, 34845DAF1E1649F6003D55B9 /* DownloaderNoResultsEmbedViewController.swift in Sources */, - EDFDFB482B7139670013A44C /* SocialMedia.swift in Sources */, + EDFDFB482B7139670013A44C /* Social Media.swift in Sources */, 993DF0B523F6B2EF00AC231A /* PlacePageTrackLayout.swift in Sources */, 44360A0D2A7D34990016F412 /* TransportRuler.swift in Sources */, CD6E8677226774C700D1EDF7 /* CPConstants.swift in Sources */, @@ -4522,7 +4502,6 @@ 993DF11D23F6BDB100AC231A /* UIToolbarRenderer.swift in Sources */, 99A906E923F6F7030005872B /* WikiDescriptionViewController.swift in Sources */, ED79A5D62BDF8D6100952D1F /* CloudDirectoryMonitor.swift in Sources */, - EDFDFB522B726F1A0013A44C /* ButtonsStackView.swift in Sources */, 993DF11023F6BDB100AC231A /* MWMButtonRenderer.swift in Sources */, 3463BA671DE81DB90082417F /* MWMTrafficButtonViewController.mm in Sources */, ED79A5D52BDF8D6100952D1F /* SynchronizationError.swift in Sources */, @@ -4547,6 +4526,7 @@ ED5BAF4B2D688F5B0088D7B1 /* SearchOnMapHeaderView.swift in Sources */, CDB4D5022231412900104869 /* SettingsTemplateBuilder.swift in Sources */, 27AF18522E1DB62000CD41E2 /* DistanceUnit.swift in Sources */, + 27697F7F2E254A5500FBD913 /* CopyrightView.swift in Sources */, 993DF10A23F6BDB100AC231A /* UISwitchRenderer.swift in Sources */, 99C9642C2428C0F700E41723 /* PlacePageHeaderBuilder.swift in Sources */, 99C9642B2428C0F700E41723 /* PlacePageHeaderViewController.swift in Sources */, @@ -4560,7 +4540,6 @@ 47B9065421C7FA400079C85E /* UIImageView+WebImage.m in Sources */, 47CA68D4250043C000671019 /* BookmarksListPresenter.swift in Sources */, 34C9BD0A1C6DBCDA000DC38D /* MWMNavigationController.m in Sources */, - ED1080A72B791CFE0023F27E /* SocialMediaCollectionViewHeader.swift in Sources */, F6E2FE311E097BA00083EBEC /* MWMStreetEditorViewController.mm in Sources */, F6E2FE281E097BA00083EBEC /* MWMOpeningHoursSection.mm in Sources */, 3406FA161C6E0C3300E9FAD2 /* MWMMapDownloadDialog.mm in Sources */, @@ -4583,7 +4562,6 @@ 8CB13C3B2BF1276A004288F2 /* CarplayPlaceholderView.swift in Sources */, CDB4D4E1222D70DF00104869 /* CarPlayMapViewController.swift in Sources */, 471AB98923AA8A3500F56D49 /* IDownloaderDataSource.swift in Sources */, - EDE243E72B6D55610057369B /* InfoView.swift in Sources */, F692F3831EA0FAF5001E82EB /* MWMAutoupdateController.mm in Sources */, 34AB664D1FC5AA330078E451 /* RouteManagerFooterView.swift in Sources */, 6741A9E01BF340DE002C974C /* MWMDownloaderDialogHeader.mm in Sources */, @@ -4640,7 +4618,6 @@ 47CA68FC250F99E500671019 /* BookmarksListCellStrategy.swift in Sources */, 34AB662F1FC5AA330078E451 /* RouteManagerPresentationController.swift in Sources */, 993F5508237C622700545511 /* DeepLinkRouteStrategyAdapter.mm in Sources */, - FA85D43D27958BF500B858E9 /* FaqController.swift in Sources */, 99A906ED23F6F7030005872B /* PlacePagePreviewViewController.swift in Sources */, 993DF10223F6BDB100AC231A /* Colors.swift in Sources */, ED70D55C2D5396F300738C1E /* SearchResult.mm in Sources */, @@ -4670,12 +4647,14 @@ 462452E92BD052C0004C85E1 /* MWMEditorSegmentedTableViewCell.mm in Sources */, 993DF12D23F6BDB100AC231A /* GlobalStyleSheet.swift in Sources */, F6E2FF361E097BA00083EBEC /* MWMSearchSuggestionCell.mm in Sources */, + 27697F742E25177600FBD913 /* AboutView.swift in Sources */, 3472B5CF200F4A2B00DC6CD5 /* BackgroundFetchTask.swift in Sources */, CDB4D4E4222E8FF600104869 /* CarPlayService.swift in Sources */, 3454D7C21E07F045004AF2AD /* NSString+Categories.m in Sources */, ED2D74662D1435A600660FBF /* LiveActivityManager.swift in Sources */, 34E7761F1F14DB48003040B3 /* PlacePageArea.swift in Sources */, ED79A5D82BDF8D6100952D1F /* LocalDirectoryMonitor.swift in Sources */, + 27697F852E255B6500FBD913 /* EmbeddedSafariViewCoordinator.swift in Sources */, EDC4E34B2C5D1BEF009286A2 /* RecentlyDeletedCategoriesViewController.swift in Sources */, 4728F69322CF89A400E00028 /* GradientView.swift in Sources */, F6381BF61CD12045004CA943 /* LocaleTranslator.mm in Sources */, @@ -4690,6 +4669,7 @@ 2765D1D02E13F9C20005CA2B /* BridgeControllers.swift in Sources */, 99A906E123F6F7030005872B /* PlacePageButtonsViewController.swift in Sources */, 998927382449E60200260CE2 /* BottomMenuPresenter.swift in Sources */, + 27697F832E254AA100FBD913 /* EmbeddedSafariView.swift in Sources */, F6E2FE821E097BA00083EBEC /* MWMPlacePageOpeningHoursDayView.m in Sources */, F6E2FD6B1E097BA00083EBEC /* MWMMapDownloaderSubplaceTableViewCell.m in Sources */, CDCA27842245090900167D87 /* ListenerContainer.swift in Sources */, @@ -4721,7 +4701,6 @@ 3486B5191E27AD3B0069C126 /* MWMFrameworkListener.mm in Sources */, 3404756B1E081A4600C92850 /* MWMSearch+CoreSpotlight.mm in Sources */, CD9AD96C2281B56900EC174A /* CPViewPortState.swift in Sources */, - EDE243DD2B6D2E640057369B /* AboutController.swift in Sources */, 3404755C1E081A4600C92850 /* MWMLocationManager.mm in Sources */, ED70D5892D539A2500738C1E /* SearchOnMapViewController.swift in Sources */, ED70D58A2D539A2500738C1E /* SearchOnMapModels.swift in Sources */, @@ -4737,7 +4716,6 @@ CDCA27812243F59800167D87 /* CarPlayRouter.swift in Sources */, 34F5E0D41E3F254800B1C415 /* UIView+Hierarchy.swift in Sources */, 6741AA0B1BF340DE002C974C /* MWMMapViewControlsManager.mm in Sources */, - EDFDFB4C2B722C9C0013A44C /* InfoTableViewCell.swift in Sources */, 47CA68F8250F8AB700671019 /* BookmarksListSectionHeader.swift in Sources */, 47CF2E6323BA0DD500D11C30 /* CopyLabel.swift in Sources */, 47CA68D12500435E00671019 /* BookmarksListViewController.swift in Sources */, @@ -4814,8 +4792,8 @@ 27768FE02E201BE60086784A /* LeftButtonType.swift in Sources */, 34AB66291FC5AA330078E451 /* RouteManagerViewController.swift in Sources */, 3404754D1E081A4600C92850 /* MWMKeyboard.m in Sources */, - EDE243E52B6D3F400057369B /* OSMView.swift in Sources */, 993DF10C23F6BDB100AC231A /* MWMTableViewCellRenderer.swift in Sources */, + 27697F922E257EED00FBD913 /* ApoutOpenStreetMapView.swift in Sources */, 3457C4261F680F1900028233 /* String+BoundingRect.swift in Sources */, 34EF94291C05A6F30050B714 /* MWMSegue.m in Sources */, 47E3C7312111F4C2008B3B27 /* CoverVerticalPresentationAnimator.swift in Sources */, @@ -4824,8 +4802,8 @@ F6E2FE2B1E097BA00083EBEC /* MWMStreetEditorEditTableViewCell.m in Sources */, 34AB66891FC5AA330078E451 /* NavigationControlView.swift in Sources */, 479EE94A2292FB03009DEBA6 /* ActivityIndicator.swift in Sources */, + 27697F872E255B8500FBD913 /* EmbeddedSafariViewContent.swift in Sources */, ED3EAC202B03C88100220A4A /* BottomTabBarButton.swift in Sources */, - EDFDFB612B74E2500013A44C /* DonationView.swift in Sources */, 47B9065321C7FA400079C85E /* MWMImageCache.m in Sources */, F6FEA82E1C58F108007223CC /* MWMButton.m in Sources */, 34B924431DC8A29C0008D971 /* MWMMailViewController.m in Sources */, @@ -4841,10 +4819,8 @@ 6741AA281BF340DE002C974C /* MWMAlert.mm in Sources */, 993DF11323F6BDB100AC231A /* UITableViewRenderer.swift in Sources */, 34AB66261FC5AA330078E451 /* RouteManagerDimView.swift in Sources */, - EDFDFB4A2B722A310013A44C /* SocialMediaCollectionViewCell.swift in Sources */, 6741AA2B1BF340DE002C974C /* CircleView.m in Sources */, 4788739220EE326500F6826B /* VerticallyAlignedButton.swift in Sources */, - EDFDFB462B7139490013A44C /* AboutInfo.swift in Sources */, 3444DFDE1F18A5AF00E73099 /* SideButtonsArea.swift in Sources */, CDCA278622451F5000167D87 /* RouteInfo.swift in Sources */, 3467CEB6202C6FA900D3C670 /* BMCNotificationsCell.swift in Sources */, diff --git a/iphone/Maps/Model/Social Media.swift b/iphone/Maps/Model/Social Media.swift new file mode 100644 index 000000000..591b1bf12 --- /dev/null +++ b/iphone/Maps/Model/Social Media.swift @@ -0,0 +1,106 @@ +import SwiftUI + +enum SocialMedia: CaseIterable, Identifiable { + case codeberg + case mastodon + case lemmy + case matrix + case telegram + case bluesky + case linkedin + case instagram + case facebook + case email + + + + // MARK: Properties + + /// The e-mail address + static let emailAddress: String = "ios@comaps.app" + + + //// The id + var id: Self { self } + + + /// The description text + var description: String { + switch self { + case .codeberg: + return String(localized: "social_codeberg") + case .mastodon: + return String(localized: "social_mastodon") + case .lemmy: + return String(localized: "social_lemmy") + case .matrix: + return String(localized: "social_matrix") + case .telegram: + return String(localized: "social_telegram") + case .bluesky: + return String(localized: "social_bluesky") + case .linkedin: + return String(localized: "social_linkedin") + case .instagram: + return String(localized: "social_instagram") + case .facebook: + return String(localized: "social_facebook") + case .email: + return String(localized: "social_email") + } + } + + + /// The url + var url: URL { + switch self { + case .codeberg: + return URL(string: "https://codeberg.org/comaps/")! + case .mastodon: + return URL(string: "https://floss.social/@CoMaps")! + case .lemmy: + return URL(string: "https://sopuli.xyz/c/CoMaps")! + case .matrix: + return URL(string: "https://matrix.to/#/#comaps:matrix.org")! + case .telegram: + return URL(string: String(localized: "telegram_url"))! + case .bluesky: + return URL(string: "https://bsky.app/profile/comaps.app")! + case .linkedin: + return URL(string: "https://www.linkedin.com/company/comapsapp/")! + case .instagram: + return URL(string: String(localized: "instagram_url"))! + case .facebook: + return URL(string: "https://www.facebook.com/CoMapsApp/")! + case .email: + return URL(string: "mailto:\(SocialMedia.emailAddress)")! + } + } + + + /// The image text + var image: Image { + switch self { + case .codeberg: + return Image(.SocialMedia.codeberg) + case .mastodon: + return Image(.SocialMedia.mastodon) + case .lemmy: + return Image(.SocialMedia.lemmy) + case .matrix: + return Image(.SocialMedia.matrix) + case .telegram: + return Image(.SocialMedia.telegram) + case .bluesky: + return Image(.SocialMedia.bluesky) + case .linkedin: + return Image(.SocialMedia.linkedIn) + case .instagram: + return Image(.SocialMedia.instagram) + case .facebook: + return Image(.SocialMedia.facebook) + case .email: + return Image(systemName: "envelope.fill") + } + } +} diff --git a/iphone/Maps/UI/BottomMenu/Menu/BottomMenuPresenter.swift b/iphone/Maps/UI/BottomMenu/Menu/BottomMenuPresenter.swift index b262b8548..c85e44845 100644 --- a/iphone/Maps/UI/BottomMenu/Menu/BottomMenuPresenter.swift +++ b/iphone/Maps/UI/BottomMenu/Menu/BottomMenuPresenter.swift @@ -112,7 +112,7 @@ extension BottomMenuPresenter { title: L("download_maps"), badgeCount: MapsAppDelegate.theApp().badgeNumber()) case .donate: - cell.configure(imageName: SettingsBridge.isNY() ? "ic_christmas_tree" : "ic_menu_donate", + cell.configure(imageName: "ic_menu_donate", title: L("donate")) case .settings: cell.configure(imageName: "ic_menu_settings", diff --git a/iphone/Maps/UI/BottomMenu/TabBar/BottomTabBarInteractor.swift b/iphone/Maps/UI/BottomMenu/TabBar/BottomTabBarInteractor.swift index b1d9dc352..c980a55d8 100644 --- a/iphone/Maps/UI/BottomMenu/TabBar/BottomTabBarInteractor.swift +++ b/iphone/Maps/UI/BottomMenu/TabBar/BottomTabBarInteractor.swift @@ -51,16 +51,12 @@ extension BottomTabBarInteractor: BottomTabBarInteractorProtocol { } } default: - MapViewController.shared()?.navigationController?.pushViewController(AboutController(), animated: true) + mapViewController?.openAbout() } } func openFaq() { - guard let navigationController = MapViewController.shared()?.navigationController else { return } - let aboutController = AboutController(onDidAppearCompletionHandler: { - navigationController.pushViewController(FaqController(), animated: true) - }) - navigationController.pushViewController(aboutController, animated: true) + mapViewController?.openAbout() } func openBookmarks() { diff --git a/iphone/Maps/UI/Help/About/AboutCoMapsView.swift b/iphone/Maps/UI/Help/About/AboutCoMapsView.swift new file mode 100644 index 000000000..d47768280 --- /dev/null +++ b/iphone/Maps/UI/Help/About/AboutCoMapsView.swift @@ -0,0 +1,45 @@ +import SwiftUI + +/// View for the about information for CoMaps (split up in its own view because of differences between OS versions) +struct AboutCoMapsView: View { + // MARK: Properties + + /// The actual view + var body: some View { + VStack(alignment: .leading) { + HStack(alignment: .top, spacing: 12) { + Image("comaps") + .resizable() + .aspectRatio(1, contentMode: .fit) + .frame(maxWidth: 50) + .padding(.top, 6) + + VStack(alignment: .leading) { + Text("about_headline") + .font(.headline) + .bold() + + VStack(alignment: .leading) { + HStack(alignment: .top, spacing: 4) { + Text(String("•")) + + Text("about_proposition_1") + } + + HStack(alignment: .top, spacing: 4) { + Text(String("•")) + + Text("about_proposition_2") + } + + HStack(alignment: .top, spacing: 4) { + Text(String("•")) + + Text("about_proposition_3") + } + } + } + } + } + } +} diff --git a/iphone/Maps/UI/Help/About/AboutView.swift b/iphone/Maps/UI/Help/About/AboutView.swift new file mode 100644 index 000000000..9b7bf4788 --- /dev/null +++ b/iphone/Maps/UI/Help/About/AboutView.swift @@ -0,0 +1,225 @@ +import SwiftUI + +/// View for the about information +struct AboutView: View { + // MARK: Properties + + /// The dismiss action of the environment + @Environment(\.dismiss) private var dismiss + + + /// The open url action of the environment + @Environment(\.openURL) private var openUrl + + + /// If the FAQ should be shown in the Safari view + @State var showFaq: Bool = false + + + /// If the privacy policy should be shown in the Safari view + @State private var showPrivacyPolicy: Bool = false + + + /// If the therms of use should be shown in the Safari view + @State private var showTermsOfUse: Bool = false + + + /// The app name + private var appName: String? { + return Bundle.main.object(forInfoDictionaryKey: "CFBundleDisplayName") as? String + } + + + /// The app version + private var appVersion: String? { + return Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") as? String + } + + + /// The app build number + private var appBuild: String? { + return Bundle.main.object(forInfoDictionaryKey: "CFBundleVersion") as? String + } + + + /// The information to copy when long pressing the version number + private var copyInformation: String? { + if let appVersion, let appBuild { + let dateFormatter = DateFormatter() + dateFormatter.locale = Locale(identifier: "en_US_POSIX") + dateFormatter.dateFormat = "yyMMdd" + if let date = dateFormatter.date(from: String(FrameworkHelper.dataVersion())) { + dateFormatter.dateFormat = "yyyy-MM-dd" + return String(localized: "version: \(appVersion) (\(appBuild))\nmap data: \(dateFormatter.string(from: date))") + } + } + + return nil + } + + + /// The actual view + var body: some View { + NavigationView { + List { + Section { + if #available(iOS 16, *) { + AboutCoMapsView() + .alignmentGuide(.listRowSeparatorLeading) { _ in + return 0 + } + } else { + AboutCoMapsView() + } + + NavigationLink(isActive: $showFaq) { + FaqView() + } label: { + Label("faq", systemImage: "questionmark.circle") + .foregroundStyle(.alternativeAccent) + } + .tint(.alternativeAccent) + + Button { + MailComposer.sendBugReportWith(title: "Bug Report") + } label: { + Label("report_a_bug", systemImage: "exclamationmark.bubble") + } + .tint(.alternativeAccent) + + Button { + openUrl(URL(string: String(localized: "translated_om_site_url") + "news/")!) + } label: { + Label("news", systemImage: "newspaper") + } + .tint(.alternativeAccent) + + Button { + openUrl(URL(string: String(localized: "translated_om_site_url") + "community/")!) + } label: { + Label("volunteer", systemImage: "person.wave.2") + } + .tint(.alternativeAccent) + + Button { + openUrl(URL(string: "https://apps.apple.com/app/comaps/id6747180809?action=write-review")!) + } label: { + Label("rate_the_app", systemImage: "star") + } + .tint(.alternativeAccent) + } + + Section { + if #available(iOS 16, *) { + ApoutOpenStreetMapView() + .alignmentGuide(.listRowSeparatorLeading) { _ in + return 0 + } + } else { + ApoutOpenStreetMapView() + } + + Button { + openUrl(URL(string: "https://www.openstreetmap.org/fixthemap")!) + } label: { + if #available(iOS 17.0, *) { + Label("report_incorrect_map_bug", systemImage: "exclamationmark.magnifyingglass") + } else { + Label("report_incorrect_map_bug", systemImage: "exclamationmark.bubble") + } + } + .tint(.alternativeAccent) + } + + Section { + ForEach(SocialMedia.allCases) { socialMedia in + Button { + openUrl(socialMedia.url) + } label: { + Label { + Text(socialMedia.description) + } icon: { + socialMedia.image + .resizable() + .aspectRatio(contentMode: .fit) + } + } + } + } header: { + Text("follow_us") + } footer: { + VStack(spacing: 8) { + Button { + showPrivacyPolicy = true + } label: { + Text("privacy_policy") + } + .sheet(isPresented: $showPrivacyPolicy) { + SafariView(url: URL(string: String(localized: "translated_om_site_url") + "privacy/")!, dismissButton: .close) + } + + Button { + showTermsOfUse = true + } label: { + Text("terms_of_use") + } + .sheet(isPresented: $showTermsOfUse) { + SafariView(url: URL(string: String(localized: "translated_om_site_url") + "terms/")!, dismissButton: .close) + } + + NavigationLink { + CopyrightView() + } label: { + Text("copyright") + } + } + .tint(.secondary) + .padding(.top) + .frame(maxWidth: .infinity) + } + } + .accentColor(.accent) + .navigationTitle(appName ?? String()) + .navigationBarTitleDisplayMode(.inline) + .toolbar { + ToolbarItem(placement: .principal) { + Menu { + Button { + if let copyInformation { + UIPasteboard.general.string = copyInformation + } + } label: { + Label("copy_to_clipboard", systemImage: "document.on.clipboard") + } + } label: { + VStack { + if let appName { + Text(appName) + .font(.title3) + .bold() + .foregroundStyle(.white) + .foregroundStyle(.white.opacity(0.96)) + } + + if let appVersion, let appBuild { + Text("version \(appVersion) (\(appBuild))") + .font(.caption2) + .foregroundStyle(.white.opacity(0.92)) + } + } + } + } + + ToolbarItem(placement: .confirmationAction) { + Button { + dismiss() + } label: { + Text("close") + } + } + } + } + .navigationViewStyle(StackNavigationViewStyle()) + .accentColor(.toolbarAccent) + } +} diff --git a/iphone/Maps/UI/Help/About/ApoutOpenStreetMapView.swift b/iphone/Maps/UI/Help/About/ApoutOpenStreetMapView.swift new file mode 100644 index 000000000..352a3b260 --- /dev/null +++ b/iphone/Maps/UI/Help/About/ApoutOpenStreetMapView.swift @@ -0,0 +1,45 @@ +import SwiftUI + +/// View for the about information for CoMaps (split up in its own view because of differences between OS versions) +struct ApoutOpenStreetMapView: View { + // MARK: Properties + + /// The date fo the maps + private var mapsDate: String? { + let dateFormatter = DateFormatter() + dateFormatter.locale = Locale(identifier: "en_US_POSIX") + dateFormatter.dateFormat = "yyMMdd" + if let date = dateFormatter.date(from: String(FrameworkHelper.dataVersion())) { + dateFormatter.locale = Locale.autoupdatingCurrent + dateFormatter.dateStyle = .long + dateFormatter.timeStyle = .none + return dateFormatter.string(from: date) + } + + return nil + } + + + /// The actual view + var body: some View { + if let mapsDate { + VStack(alignment: .leading) { + HStack(alignment: .top, spacing: 12) { + Image(.openStreetMapLogo) + .resizable() + .aspectRatio(1, contentMode: .fit) + .frame(maxWidth: 50) + .padding(.top, 6) + VStack(alignment: .leading) { + Text("osm_mapdata") + .font(.headline) + .bold() + + Text("osm_mapdata_explanation \(mapsDate)") + .tint(.alternativeAccent) + } + } + } + } + } +} diff --git a/iphone/Maps/UI/Help/AboutController/AboutController.swift b/iphone/Maps/UI/Help/AboutController/AboutController.swift deleted file mode 100644 index e176a9f76..000000000 --- a/iphone/Maps/UI/Help/AboutController/AboutController.swift +++ /dev/null @@ -1,455 +0,0 @@ -import OSLog - -final class AboutController: MWMViewController { - - fileprivate struct AboutInfoTableViewCellModel { - let title: String - let image: UIImage? - let didTapHandler: (() -> Void)? - } - - fileprivate struct SocialMediaCollectionViewCellModel { - let image: UIImage - let didTapHandler: (() -> Void)? - } - - private enum Constants { - static let infoTableViewCellHeight: CGFloat = 40 - static let socialMediaCollectionViewCellMaxWidth: CGFloat = 50 - static let socialMediaCollectionViewSpacing: CGFloat = 25 - static let socialMediaCollectionNumberOfItemsInRowCompact: CGFloat = 5 - static let socialMediaCollectionNumberOfItemsInRowRegular: CGFloat = 10 - } - - private let scrollView = UIScrollView() - private let stackView = UIStackView() - private let logoImageView = UIImageView() - private let headerTitleLabel = UILabel() - private let additionalInfoStackView = UIStackView() - private let donationView = DonationView() - private let osmView = OSMView() - private let infoTableView = UITableView(frame: .zero, style: .plain) - private var infoTableViewHeightAnchor: NSLayoutConstraint? - private let socialMediaHeaderLabel = UILabel() - private let socialMediaCollectionView = UICollectionView(frame: .zero, collectionViewLayout: UICollectionViewFlowLayout()) - private lazy var socialMediaCollectionViewHeighConstraint = socialMediaCollectionView.heightAnchor.constraint(equalToConstant: .zero) - private let termsOfUseAndPrivacyPolicyView = ButtonsStackView() - private var infoTableViewData = [AboutInfoTableViewCellModel]() - private var socialMediaCollectionViewData = [SocialMediaCollectionViewCellModel]() - private var onDidAppearCompletionHandler: (() -> Void)? - - init(onDidAppearCompletionHandler: (() -> Void)? = nil) { - self.onDidAppearCompletionHandler = onDidAppearCompletionHandler - super.init(nibName: nil, bundle: nil) - } - - @available(*, unavailable) - required init?(coder: NSCoder) { - fatalError("init(coder:) has not been implemented") - } - - // MARK: - Lifecycle - override func viewDidLoad() { - super.viewDidLoad() - setupViews() - arrangeViews() - layoutViews() - } - - override func viewWillAppear(_ animated: Bool) { - super.viewWillAppear(animated) - updateCollection() - } - - override func viewDidAppear(_ animated: Bool) { - super.viewDidAppear(animated) - if let completionHandler = onDidAppearCompletionHandler { - completionHandler() - onDidAppearCompletionHandler = nil - } - } - - override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) { - super.traitCollectionDidChange(previousTraitCollection) - updateCollection() - } -} - -// MARK: - Private -private extension AboutController { - func setupViews() { - func setupTitle() { - let titleView = UILabel() - titleView.text = Self.formattedAppVersion() - titleView.textColor = .white - titleView.font = UIFont.systemFont(ofSize: 17, weight: .semibold) - titleView.isUserInteractionEnabled = true - titleView.numberOfLines = 1 - titleView.allowsDefaultTighteningForTruncation = true - titleView.adjustsFontSizeToFitWidth = true - titleView.minimumScaleFactor = 0.5 - let titleDidTapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(appVersionButtonTapped)) - titleView.addGestureRecognizer(titleDidTapGestureRecognizer) - navigationItem.titleView = titleView - } - - func setupScrollAndStack() { - scrollView.delaysContentTouches = false - scrollView.contentInset = UIEdgeInsets(top: 20, left: 0, bottom: 20, right: 0) - - stackView.axis = .vertical - stackView.distribution = .fill - stackView.alignment = .center - stackView.spacing = 15 - } - - func setupLogo() { - logoImageView.contentMode = .scaleAspectFit - logoImageView.image = UIImage(named: "Logo") - logoImageView.layer.cornerRadius = 12 - logoImageView.layer.masksToBounds = true - } - - func setupHeaderTitle() { - headerTitleLabel.setFontStyle(.semibold18, color: .blackPrimary) - headerTitleLabel.text = L("about_headline") - headerTitleLabel.textAlignment = .center - headerTitleLabel.numberOfLines = 1 - headerTitleLabel.allowsDefaultTighteningForTruncation = true - headerTitleLabel.adjustsFontSizeToFitWidth = true - headerTitleLabel.minimumScaleFactor = 0.5 - } - - func setupAdditionalInfo() { - additionalInfoStackView.axis = .vertical - additionalInfoStackView.spacing = 15 - - [AboutInfo.noTracking, .noWifi, .community].forEach({ additionalInfoStackView.addArrangedSubview(InfoView(image: nil, title: $0.title)) }) - } - - func setupDonation() { - donationView.donateButtonDidTapHandler = { [weak self] in - guard let self else { return } - self.openUrl(self.isDonateEnabled() ? SettingsBridge.donateUrl() : L("translated_om_site_url") + "support-us/") - } - } - - func setupOSM() { - osmView.setMapDate(Self.formattedMapsDataVersion()) - osmView.didTapHandler = { [weak self] in - self?.openUrl("https://www.openstreetmap.org/") - } - } - - func setupInfoTable() { - infoTableView.setStyle(.clearBackground) - infoTableView.delegate = self - infoTableView.dataSource = self - infoTableView.separatorStyle = .none - infoTableView.isScrollEnabled = false - infoTableView.showsVerticalScrollIndicator = false - infoTableView.contentInset = .zero - infoTableView.register(cell: InfoTableViewCell.self) - } - - func setupSocialMediaCollection() { - socialMediaHeaderLabel.setFontStyle(.regular16, color: .blackPrimary) - socialMediaHeaderLabel.text = L("follow_us") - socialMediaHeaderLabel.numberOfLines = 1 - socialMediaHeaderLabel.allowsDefaultTighteningForTruncation = true - socialMediaHeaderLabel.adjustsFontSizeToFitWidth = true - socialMediaHeaderLabel.minimumScaleFactor = 0.5 - - socialMediaCollectionView.backgroundColor = .clear - socialMediaCollectionView.isScrollEnabled = false - socialMediaCollectionView.dataSource = self - socialMediaCollectionView.delegate = self - socialMediaCollectionView.register(cell: SocialMediaCollectionViewCell.self) - } - - func setupTermsAndPrivacy() { - termsOfUseAndPrivacyPolicyView.addButton(title: L("privacy_policy"), didTapHandler: { [weak self] in - self?.openUrl(L("translated_om_site_url") + "privacy/") - }) - termsOfUseAndPrivacyPolicyView.addButton(title: L("terms_of_use"), didTapHandler: { [weak self] in - self?.openUrl(L("translated_om_site_url") + "terms/") - }) - termsOfUseAndPrivacyPolicyView.addButton(title: L("copyright"), didTapHandler: { [weak self] in - self?.showCopyright() - }) - } - - view.setStyle(.pressBackground) - - setupTitle() - setupScrollAndStack() - setupLogo() - setupHeaderTitle() - setupAdditionalInfo() - setupDonation() - setupOSM() - setupInfoTable() - setupSocialMediaCollection() - setupTermsAndPrivacy() - - infoTableViewData = buildInfoTableViewData() - socialMediaCollectionViewData = buildSocialMediaCollectionViewData() - } - - func arrangeViews() { - view.addSubview(scrollView) - scrollView.addSubview(stackView) - stackView.addArrangedSubview(logoImageView) - stackView.addArrangedSubview(headerTitleLabel) - stackView.addArrangedSubviewWithSeparator(additionalInfoStackView) - if isDonateEnabled() { - stackView.addArrangedSubviewWithSeparator(donationView) - } - stackView.addArrangedSubviewWithSeparator(osmView) - stackView.addArrangedSubviewWithSeparator(infoTableView) - stackView.addArrangedSubviewWithSeparator(socialMediaHeaderLabel) - stackView.addArrangedSubview(socialMediaCollectionView) - stackView.addArrangedSubviewWithSeparator(termsOfUseAndPrivacyPolicyView) - } - - func layoutViews() { - scrollView.translatesAutoresizingMaskIntoConstraints = false - stackView.translatesAutoresizingMaskIntoConstraints = false - logoImageView.translatesAutoresizingMaskIntoConstraints = false - additionalInfoStackView.translatesAutoresizingMaskIntoConstraints = false - donationView.translatesAutoresizingMaskIntoConstraints = false - infoTableView.translatesAutoresizingMaskIntoConstraints = false - socialMediaCollectionView.translatesAutoresizingMaskIntoConstraints = false - termsOfUseAndPrivacyPolicyView.translatesAutoresizingMaskIntoConstraints = false - - NSLayoutConstraint.activate([ - scrollView.leadingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.leadingAnchor), - scrollView.trailingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.trailingAnchor), - scrollView.topAnchor.constraint(equalTo: view.topAnchor), - scrollView.bottomAnchor.constraint(equalTo: view.bottomAnchor), - scrollView.contentLayoutGuide.widthAnchor.constraint(equalTo: scrollView.frameLayoutGuide.widthAnchor), - - stackView.leadingAnchor.constraint(equalTo: scrollView.contentLayoutGuide.leadingAnchor, constant: 20), - stackView.trailingAnchor.constraint(equalTo: scrollView.contentLayoutGuide.trailingAnchor, constant: -20), - stackView.topAnchor.constraint(equalTo: scrollView.contentLayoutGuide.topAnchor), - stackView.bottomAnchor.constraint(equalTo: scrollView.contentLayoutGuide.bottomAnchor), - - logoImageView.heightAnchor.constraint(equalToConstant: 64), - logoImageView.widthAnchor.constraint(equalTo: logoImageView.heightAnchor), - - additionalInfoStackView.widthAnchor.constraint(equalTo: stackView.widthAnchor), - - osmView.widthAnchor.constraint(equalTo: stackView.widthAnchor), - - infoTableView.widthAnchor.constraint(equalTo: stackView.widthAnchor), - infoTableView.heightAnchor.constraint(equalToConstant: Constants.infoTableViewCellHeight * CGFloat(infoTableViewData.count)), - - socialMediaHeaderLabel.leadingAnchor.constraint(equalTo: socialMediaCollectionView.leadingAnchor), - - socialMediaCollectionView.widthAnchor.constraint(equalTo: stackView.widthAnchor), - socialMediaCollectionView.contentLayoutGuide.widthAnchor.constraint(equalTo: stackView.widthAnchor), - socialMediaCollectionViewHeighConstraint, - - termsOfUseAndPrivacyPolicyView.widthAnchor.constraint(equalTo: stackView.widthAnchor), - ]) - donationView.widthAnchor.constraint(equalTo: stackView.widthAnchor).isActive = isDonateEnabled() - - view.layoutIfNeeded() - updateCollection() - } - - func updateCollection() { - socialMediaCollectionView.collectionViewLayout.invalidateLayout() - // On devices with the iOS 12 the actual collectionView layout update not always occurs during the current layout update cycle. - // So constraints update should be performed on the next layout update cycle. - DispatchQueue.main.async { - self.socialMediaCollectionViewHeighConstraint.constant = self.socialMediaCollectionView.collectionViewLayout.collectionViewContentSize.height - } - } - - func isDonateEnabled() -> Bool { - return SettingsBridge.donateUrl() != nil - } - - func buildInfoTableViewData() -> [AboutInfoTableViewCellModel] { - let infoContent: [AboutInfo] = [.faq, .reportMapDataProblem, .reportABug, .news, .volunteer, .rateTheApp] - let data = infoContent.map { [weak self] aboutInfo in - return AboutInfoTableViewCellModel(title: aboutInfo.title, image: aboutInfo.image, didTapHandler: { - switch aboutInfo { - case .faq: - self?.navigationController?.pushViewController(FaqController(), animated: true) - case .reportABug: - MailComposer.sendBugReportWith(title:"CoMaps Bug Report") - case .reportMapDataProblem, .volunteer, .news: - self?.openUrl(aboutInfo.link) - case .rateTheApp: - UIApplication.shared.rateApp() - default: - break - } - }) - } - return data - } - - func buildSocialMediaCollectionViewData() -> [SocialMediaCollectionViewCellModel] { - let socialMediaContent: [SocialMedia] = [.telegram, .codeberg, .instagram, .bluesky, .linkedin, .email, .lemmy, .matrix, .facebook, .fosstodon] - let data = socialMediaContent.map { [weak self] socialMedia in - return SocialMediaCollectionViewCellModel(image: socialMedia.image, didTapHandler: { - switch socialMedia { - case .telegram: fallthrough - case .codeberg: fallthrough - case .lemmy: fallthrough - case .matrix: fallthrough - case .fosstodon: fallthrough - case .facebook: fallthrough - case .bluesky: fallthrough - case .instagram: fallthrough - case .linkedin: - self?.openUrl(socialMedia.link, externally: true) - case .email: - MailComposer.sendEmail(toRecipients: [socialMedia.link]) - } - }) - } - return data - } - - // Returns a human-readable maps data version. - static func formattedMapsDataVersion() -> String { - // First, convert version code like 220131 to a date. - let df = DateFormatter() - df.locale = Locale(identifier:"en_US_POSIX") - df.dateFormat = "yyMMdd" - let mapsVersionInt = FrameworkHelper.dataVersion() - let mapsDate = df.date(from: String(mapsVersionInt))! - // Second, print the date in the local user's format. - df.locale = Locale.current - df.dateStyle = .long - df.timeStyle = .none - return df.string(from:mapsDate) - } - - static func formattedAppVersion() -> String { - let appInfo = AppInfo.shared(); - // Use strong left-to-right unicode direction characters for the app version. - return String(format: L("version"), "\u{2066}\(appInfo.bundleVersion)-\(appInfo.buildNumber)\u{2069}") - } - - func showCopyright() { - let path = Bundle.main.path(forResource: "copyright", ofType: "html")! - let html = try! String(contentsOfFile: path, encoding: String.Encoding.utf8) - let webViewController = WebViewController.init(html: html, baseUrl: nil, title: L("copyright"))! - webViewController.openInSafari = true - self.navigationController?.pushViewController(webViewController, animated: true) - } - - func copyToClipboard(_ content: String) { - UIPasteboard.general.string = content - let message = String(format: L("copied_to_clipboard"), content) - UIImpactFeedbackGenerator(style: .medium).impactOccurred() - Toast.show(withText: message, alignment: .bottom, pinToSafeArea: false) - } -} - -// MARK: - Actions -private extension AboutController { - @objc func appVersionButtonTapped() { - copyToClipboard(Self.formattedAppVersion()) - } - - @objc func osmMapsDataButtonTapped() { - copyToClipboard(Self.formattedMapsDataVersion()) - } -} - -// MARK: - UITableViewDelegate -extension AboutController: UITableViewDelegate { - func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { - tableView.deselectRow(at: indexPath, animated: true) - infoTableViewData[indexPath.row].didTapHandler?() - } - - func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { - return Constants.infoTableViewCellHeight - } -} - -// MARK: - UITableViewDataSource -extension AboutController: UITableViewDataSource { - func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { - return infoTableViewData.count - } - - func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { - let cell = tableView.dequeueReusableCell(cell: InfoTableViewCell.self, indexPath: indexPath) - let aboutInfo = infoTableViewData[indexPath.row] - cell.set(image: aboutInfo.image, title: aboutInfo.title) - return cell - } -} - -// MARK: - UICollectionViewDataSource -extension AboutController: UICollectionViewDataSource { - func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { - return socialMediaCollectionViewData.count - } - - func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { - let cell = collectionView.dequeueReusableCell(cell: SocialMediaCollectionViewCell.self, indexPath: indexPath) - cell.setImage(socialMediaCollectionViewData[indexPath.row].image) - return cell - } -} - -// MARK: - UICollectionViewDelegate -extension AboutController: UICollectionViewDelegate { - func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { - let model = socialMediaCollectionViewData[indexPath.row] - model.didTapHandler?() - } -} - -// MARK: - UICollectionViewDelegateFlowLayout -extension AboutController: UICollectionViewDelegateFlowLayout { - func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { - let spacing = Constants.socialMediaCollectionViewSpacing - let numberOfItemsInRowCompact = Constants.socialMediaCollectionNumberOfItemsInRowCompact - let numberOfItemsInRowRegular = Constants.socialMediaCollectionNumberOfItemsInRowRegular - var totalSpacing = (Constants.socialMediaCollectionNumberOfItemsInRowCompact - 1) * spacing - var width = (collectionView.bounds.width - totalSpacing) / numberOfItemsInRowCompact - if traitCollection.verticalSizeClass == .compact || traitCollection.horizontalSizeClass == .regular { - totalSpacing = (numberOfItemsInRowRegular - 1) * spacing - width = (collectionView.bounds.width - totalSpacing) / numberOfItemsInRowRegular - } - let maxWidth = Constants.socialMediaCollectionViewCellMaxWidth - width = min(width, maxWidth) - return CGSize(width: width, height: width) - } - - func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat { - return Constants.socialMediaCollectionViewSpacing - } - - func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat { - return Constants.socialMediaCollectionViewSpacing - } -} -// MARK: - UIStackView + AddArrangedSubviewWithSeparator -private extension UIStackView { - func addArrangedSubviewWithSeparator(_ view: UIView) { - if !arrangedSubviews.isEmpty { - let separator = UIView() - separator.setStyleAndApply(.divider) - separator.isUserInteractionEnabled = false - separator.translatesAutoresizingMaskIntoConstraints = false - addArrangedSubview(separator) - NSLayoutConstraint.activate([ - separator.heightAnchor.constraint(equalToConstant: 1.0), - separator.leadingAnchor.constraint(equalTo: leadingAnchor), - separator.trailingAnchor.constraint(equalTo: trailingAnchor), - ]) - } - addArrangedSubview(view) - } -} diff --git a/iphone/Maps/UI/Help/AboutController/Models/AboutInfo.swift b/iphone/Maps/UI/Help/AboutController/Models/AboutInfo.swift deleted file mode 100644 index 74a72ddc0..000000000 --- a/iphone/Maps/UI/Help/AboutController/Models/AboutInfo.swift +++ /dev/null @@ -1,71 +0,0 @@ -enum AboutInfo { - case faq - case reportABug - case reportMapDataProblem - case volunteer - case news - case rateTheApp - case noTracking - case noWifi - case community - - var title: String { - switch self { - - case .faq: - return L("faq") - case .reportABug: - return L("report_a_bug") - case .reportMapDataProblem: - return L("report_incorrect_map_bug") - case .volunteer: - return L("volunteer") - case .news: - return L("news") - case .rateTheApp: - return L("rate_the_app") - case .noTracking: - return L("about_proposition_1") - case .noWifi: - return L("about_proposition_2") - case .community: - return L("about_proposition_3") - } - } - - var image: UIImage? { - switch self { - case .faq: - return UIImage(named: "ic_about_faq")! - case .reportABug: - return UIImage(named: "ic_about_report_bug")! - case .reportMapDataProblem: - return UIImage(named: "ic_about_report_osm")! - case .volunteer: - return UIImage(named: "ic_about_volunteer")! - case .news: - return UIImage(named: "ic_about_news")! - case .rateTheApp: - return UIImage(named: "ic_about_rate_app")! - case .noTracking, .noWifi, .community: - // Dots are used for these cases - return nil - } - } - - var link: String? { - switch self { - case .faq, .rateTheApp, .noTracking, .noWifi, .community: - // These cases don't provide redirection to the web - return nil - case .reportABug: - return "ios@comaps.app" - case .reportMapDataProblem: - return "https://www.openstreetmap.org/fixthemap" - case .volunteer: - return L("translated_om_site_url") + "community/" - case .news: - return L("translated_om_site_url") + "news/" - } - } -} diff --git a/iphone/Maps/UI/Help/AboutController/Models/SocialMedia.swift b/iphone/Maps/UI/Help/AboutController/Models/SocialMedia.swift deleted file mode 100644 index e3b0ab527..000000000 --- a/iphone/Maps/UI/Help/AboutController/Models/SocialMedia.swift +++ /dev/null @@ -1,62 +0,0 @@ -enum SocialMedia { - case telegram - case bluesky - case instagram - case facebook - case lemmy - case matrix - case fosstodon - case linkedin - case email - case codeberg - - var link: String { - switch self { - case .telegram: - return L("telegram_url") - case .codeberg: - return "https://codeberg.org/comaps/comaps/" - case .linkedin: - return "https://www.linkedin.com/company/comapsapp/" - case .email: - return "ios@comaps.app" - case .matrix: - return "https://matrix.to/#/#comaps:matrix.org" - case .fosstodon: - return "https://floss.social/@CoMaps" - case .facebook: - return "https://www.facebook.com/CoMapsApp/" - case .bluesky: - return "https://bsky.app/profile/comaps.app" - case .instagram: - return L("instagram_url") - case .lemmy: - return "https://sopuli.xyz/c/CoMaps/" - } - } - - var image: UIImage { - switch self { - case .telegram: - return UIImage(named: "ic_social_media_telegram")! - case .codeberg: - return UIImage(named: "ic_social_media_codeberg")! - case .linkedin: - return UIImage(named: "ic_social_media_linkedin")! - case .email: - return UIImage(named: "ic_social_media_mail")! - case .matrix: - return UIImage(named: "ic_social_media_matrix")! - case .fosstodon: - return UIImage(named: "ic_social_media_fosstodon")! - case .facebook: - return UIImage(named: "ic_social_media_facebook")! - case .bluesky: - return UIImage(named: "ic_social_media_bluesky")! - case .instagram: - return UIImage(named: "ic_social_media_instagram")! - case .lemmy: - return UIImage(named: "ic_social_media_lemmy")! - } - } -} diff --git a/iphone/Maps/UI/Help/AboutController/Views/ButtonsStackView.swift b/iphone/Maps/UI/Help/AboutController/Views/ButtonsStackView.swift deleted file mode 100644 index 4346d748f..000000000 --- a/iphone/Maps/UI/Help/AboutController/Views/ButtonsStackView.swift +++ /dev/null @@ -1,56 +0,0 @@ -final class ButtonsStackView: UIView { - - private let stackView = UIStackView() - private var didTapHandlers = [UIButton: (() -> Void)?]() - - override init(frame: CGRect) { - super.init(frame: frame) - setupViews() - arrangeViews() - layoutViews() - } - - required init?(coder: NSCoder) { - super.init(coder: coder) - setupViews() - arrangeViews() - layoutViews() - } - - private func setupViews() { - stackView.distribution = .fillEqually - stackView.axis = .vertical - stackView.spacing = 20 - } - - private func arrangeViews() { - addSubview(stackView) - } - - private func layoutViews() { - stackView.translatesAutoresizingMaskIntoConstraints = false - let offset = CGFloat(20) - NSLayoutConstraint.activate([ - stackView.leadingAnchor.constraint(equalTo: leadingAnchor, constant: offset), - stackView.trailingAnchor.constraint(equalTo: trailingAnchor, constant: -offset), - stackView.topAnchor.constraint(equalTo: topAnchor), - stackView.bottomAnchor.constraint(equalTo: bottomAnchor) - ]) - } - - @objc private func buttonTapped(_ sender: UIButton) { - guard let didTapHandler = didTapHandlers[sender] else { return } - didTapHandler?() - } - - // MARK: - Public - func addButton(title: String, font: UIFont = .regular14(), didTapHandler: @escaping () -> Void) { - let button = UIButton() - button.setStyleAndApply(.flatPrimaryTransButton) - button.setTitle(title, for: .normal) - button.titleLabel?.font = font - button.addTarget(self, action: #selector(buttonTapped(_:)), for: .touchUpInside) - stackView.addArrangedSubview(button) - didTapHandlers[button] = didTapHandler - } -} diff --git a/iphone/Maps/UI/Help/AboutController/Views/DonationView.swift b/iphone/Maps/UI/Help/AboutController/Views/DonationView.swift deleted file mode 100644 index 4fc72d3d9..000000000 --- a/iphone/Maps/UI/Help/AboutController/Views/DonationView.swift +++ /dev/null @@ -1,67 +0,0 @@ -final class DonationView: UIView { - - private let donateTextLabel = UILabel() - private let donateButton = UIButton() - - var donateButtonDidTapHandler: (() -> Void)? - - init() { - super.init(frame: .zero) - setupViews() - arrangeViews() - layoutViews() - } - - required init?(coder: NSCoder) { - super.init(coder: coder) - setupViews() - arrangeViews() - layoutViews() - } - - private func setupViews() { - donateTextLabel.setFontStyle(.regular14, color: .blackPrimary) - donateTextLabel.text = L("donate_description") - donateTextLabel.textAlignment = .center - donateTextLabel.lineBreakMode = .byWordWrapping - donateTextLabel.numberOfLines = 0 - - donateButton.setStyle(.flatNormalButton) - donateButton.setTitle(L("donate").localizedUppercase, for: .normal) - donateButton.addTarget(self, action: #selector(donateButtonDidTap), for: .touchUpInside) - } - - private func arrangeViews() { - addSubview(donateTextLabel) - addSubview(donateButton) - } - - private func layoutViews() { - donateTextLabel.translatesAutoresizingMaskIntoConstraints = false - donateButton.translatesAutoresizingMaskIntoConstraints = false - - NSLayoutConstraint.activate([ - donateTextLabel.leadingAnchor.constraint(equalTo: leadingAnchor), - donateTextLabel.trailingAnchor.constraint(equalTo: trailingAnchor), - donateTextLabel.topAnchor.constraint(equalTo: topAnchor), - - donateButton.topAnchor.constraint(equalTo: donateTextLabel.bottomAnchor, constant: 10), - donateButton.widthAnchor.constraint(equalTo: widthAnchor, constant: -40).withPriority(.defaultHigh), - donateButton.widthAnchor.constraint(lessThanOrEqualToConstant: 400).withPriority(.defaultHigh), - donateButton.centerXAnchor.constraint(equalTo: centerXAnchor), - donateButton.heightAnchor.constraint(equalToConstant: 40), - donateButton.bottomAnchor.constraint(equalTo: bottomAnchor), - ]) - } - - @objc private func donateButtonDidTap() { - donateButtonDidTapHandler?() - } -} - -extension NSLayoutConstraint { - func withPriority(_ priority: UILayoutPriority) -> NSLayoutConstraint { - self.priority = priority - return self - } -} diff --git a/iphone/Maps/UI/Help/AboutController/Views/InfoTableViewCell.swift b/iphone/Maps/UI/Help/AboutController/Views/InfoTableViewCell.swift deleted file mode 100644 index 91751d435..000000000 --- a/iphone/Maps/UI/Help/AboutController/Views/InfoTableViewCell.swift +++ /dev/null @@ -1,33 +0,0 @@ -final class InfoTableViewCell: UITableViewCell { - - private let infoView = InfoView() - - override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { - super.init(style: .default, reuseIdentifier: reuseIdentifier) - setupView() - } - - @available(*, unavailable) - required init?(coder: NSCoder) { - super.init(coder: coder) - setupView() - } - - private func setupView() { - backgroundView = UIView() // Set background color to clear - setStyle(.clearBackground) - contentView.addSubview(infoView) - infoView.translatesAutoresizingMaskIntoConstraints = false - NSLayoutConstraint.activate([ - infoView.leadingAnchor.constraint(equalTo: contentView.leadingAnchor), - infoView.trailingAnchor.constraint(equalTo: contentView.trailingAnchor), - infoView.topAnchor.constraint(equalTo: contentView.topAnchor), - infoView.bottomAnchor.constraint(equalTo: contentView.bottomAnchor), - ]) - } - - // MARK: - Public - func set(image: UIImage?, title: String) { - infoView.set(image: image, title: title) - } -} diff --git a/iphone/Maps/UI/Help/AboutController/Views/InfoView.swift b/iphone/Maps/UI/Help/AboutController/Views/InfoView.swift deleted file mode 100644 index 8de9fcb20..000000000 --- a/iphone/Maps/UI/Help/AboutController/Views/InfoView.swift +++ /dev/null @@ -1,81 +0,0 @@ -final class InfoView: UIView { - - private let stackView = UIStackView() - private let imageView = UIImageView() - private let titleLabel = UILabel() - private lazy var imageViewWidthConstrain = imageView.widthAnchor.constraint(equalToConstant: 0) - - init() { - super.init(frame: .zero) - self.setupView() - self.arrangeViews() - self.layoutViews() - } - - convenience init(image: UIImage?, title: String) { - self.init() - self.set(image: image, title: title) - } - - override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) { - super.traitCollectionDidChange(previousTraitCollection) - if #available(iOS 13.0, *), traitCollection.hasDifferentColorAppearance(comparedTo: previousTraitCollection) { - imageView.applyTheme() - } - } - - @available(*, unavailable) - required init?(coder: NSCoder) { - fatalError("init(coder:) has not been implemented") - } - - private func setupView() { - stackView.axis = .horizontal - stackView.distribution = .fill - stackView.alignment = .center - stackView.spacing = 16 - - titleLabel.setFontStyle(.regular16, color: .blackPrimary) - titleLabel.lineBreakMode = .byWordWrapping - titleLabel.numberOfLines = .zero - - imageView.setStyle(.black) - imageView.contentMode = .scaleAspectFit - } - - private func arrangeViews() { - addSubview(stackView) - stackView.addArrangedSubview(imageView) - stackView.addArrangedSubview(titleLabel) - } - - private func layoutViews() { - stackView.translatesAutoresizingMaskIntoConstraints = false - imageView.translatesAutoresizingMaskIntoConstraints = false - titleLabel.translatesAutoresizingMaskIntoConstraints = false - imageView.setContentHuggingPriority(.defaultHigh, for: .vertical) - imageView.setContentHuggingPriority(.defaultHigh, for: .horizontal) - titleLabel.setContentHuggingPriority(.defaultLow, for: .horizontal) - NSLayoutConstraint.activate([ - stackView.leadingAnchor.constraint(equalTo: leadingAnchor), - stackView.trailingAnchor.constraint(equalTo: trailingAnchor), - stackView.topAnchor.constraint(equalTo: topAnchor), - stackView.bottomAnchor.constraint(equalTo: bottomAnchor), - imageView.heightAnchor.constraint(equalToConstant: 24), - imageViewWidthConstrain - ]) - updateImageWidth() - } - - private func updateImageWidth() { - imageViewWidthConstrain.constant = imageView.image == nil ? 0 : 24 - imageView.isHidden = imageView.image == nil - } - - // MARK: - Public - func set(image: UIImage?, title: String) { - imageView.image = image - titleLabel.text = title - updateImageWidth() - } -} diff --git a/iphone/Maps/UI/Help/AboutController/Views/OSMView.swift b/iphone/Maps/UI/Help/AboutController/Views/OSMView.swift deleted file mode 100644 index 93f476a27..000000000 --- a/iphone/Maps/UI/Help/AboutController/Views/OSMView.swift +++ /dev/null @@ -1,87 +0,0 @@ -final class OSMView: UIView { - - private let OSMImageView = UIImageView() - private let OSMTextLabel = UILabel() - private var mapDate: String? - - var didTapHandler: (() -> Void)? - - init() { - super.init(frame: .zero) - setupViews() - arrangeViews() - layoutViews() - } - - required init?(coder: NSCoder) { - super.init(coder: coder) - setupViews() - arrangeViews() - layoutViews() - } - - override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) { - super.traitCollectionDidChange(previousTraitCollection) - guard let mapDate, traitCollection.userInterfaceStyle != previousTraitCollection?.userInterfaceStyle else { return } - OSMTextLabel.attributedText = attributedString(for: mapDate) - } - - // MARK: - Public - func setMapDate(_ mapDate: String) { - self.mapDate = mapDate - OSMTextLabel.attributedText = attributedString(for: mapDate) - } - - // MARK: - Private - private func setupViews() { - OSMImageView.image = UIImage(named: "osm_logo") - - OSMTextLabel.setFontStyle(.regular14, color: .blackPrimary) - OSMTextLabel.lineBreakMode = .byWordWrapping - OSMTextLabel.numberOfLines = 0 - OSMTextLabel.isUserInteractionEnabled = true - - let osmDidTapGesture = UITapGestureRecognizer(target: self, action: #selector(osmDidTap)) - OSMTextLabel.addGestureRecognizer(osmDidTapGesture) - } - - private func arrangeViews() { - addSubview(OSMImageView) - addSubview(OSMTextLabel) - } - - private func layoutViews() { - OSMImageView.translatesAutoresizingMaskIntoConstraints = false - OSMTextLabel.translatesAutoresizingMaskIntoConstraints = false - - NSLayoutConstraint.activate([ - OSMImageView.leadingAnchor.constraint(equalTo: leadingAnchor), - OSMImageView.heightAnchor.constraint(equalToConstant: 40), - OSMImageView.widthAnchor.constraint(equalTo: OSMImageView.heightAnchor), - OSMImageView.topAnchor.constraint(greaterThanOrEqualTo: topAnchor), - OSMImageView.bottomAnchor.constraint(lessThanOrEqualTo: bottomAnchor), - - OSMTextLabel.leadingAnchor.constraint(equalTo: OSMImageView.trailingAnchor, constant: 8), - OSMTextLabel.trailingAnchor.constraint(equalTo: trailingAnchor), - OSMTextLabel.topAnchor.constraint(greaterThanOrEqualTo: topAnchor), - OSMTextLabel.bottomAnchor.constraint(lessThanOrEqualTo: bottomAnchor), - OSMTextLabel.centerYAnchor.constraint(equalTo: OSMImageView.centerYAnchor) - ]) - } - - @objc private func osmDidTap() { - didTapHandler?() - } - - private func attributedString(for date: String) -> NSAttributedString { - let osmLink = "OpenStreetMap.org" - let attributedString = NSMutableAttributedString(string: String(format: L("osm_explanation"), date.trimmingCharacters(in: .punctuationCharacters)), - attributes: [.font: UIFont.regular14(), - .foregroundColor: StyleManager.shared.theme!.colors.blackPrimaryText] - ) - let linkRange = attributedString.mutableString.range(of: osmLink) - attributedString.addAttribute(.link, value: "https://www.openstreetmap.org/", range: linkRange) - - return attributedString - } -} diff --git a/iphone/Maps/UI/Help/AboutController/Views/SocialMediaCollectionViewCell.swift b/iphone/Maps/UI/Help/AboutController/Views/SocialMediaCollectionViewCell.swift deleted file mode 100644 index f5238489f..000000000 --- a/iphone/Maps/UI/Help/AboutController/Views/SocialMediaCollectionViewCell.swift +++ /dev/null @@ -1,45 +0,0 @@ -final class SocialMediaCollectionViewCell: UICollectionViewCell { - - private let imageView = UIImageView() - - override init(frame: CGRect) { - super.init(frame: frame) - setupView() - } - - required init?(coder: NSCoder) { - super.init(coder: coder) - setupView() - } - - override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) { - super.traitCollectionDidChange(previousTraitCollection) - guard traitCollection.userInterfaceStyle != previousTraitCollection?.userInterfaceStyle else { return } - updateImageColor() - } - - private func setupView() { - setStyle(.clearBackground) - - imageView.contentMode = .scaleAspectFit - imageView.translatesAutoresizingMaskIntoConstraints = false - contentView.addSubview(imageView) - - NSLayoutConstraint.activate([ - imageView.topAnchor.constraint(equalTo: contentView.topAnchor), - imageView.leadingAnchor.constraint(equalTo: contentView.leadingAnchor), - imageView.trailingAnchor.constraint(equalTo: contentView.trailingAnchor), - imageView.bottomAnchor.constraint(equalTo: contentView.bottomAnchor) - ]) - } - - private func updateImageColor() { - imageView.tintColor = StyleManager.shared.theme?.colors.blackPrimaryText - } - - // MARK: - Public - func setImage(_ image: UIImage) { - imageView.image = image - updateImageColor() - } -} diff --git a/iphone/Maps/UI/Help/AboutController/Views/SocialMediaCollectionViewHeader.swift b/iphone/Maps/UI/Help/AboutController/Views/SocialMediaCollectionViewHeader.swift deleted file mode 100644 index 1f7037bff..000000000 --- a/iphone/Maps/UI/Help/AboutController/Views/SocialMediaCollectionViewHeader.swift +++ /dev/null @@ -1,30 +0,0 @@ -final class SocialMediaCollectionViewHeader: UICollectionReusableView { - - static let reuseIdentifier = String(describing: SocialMediaCollectionViewHeader.self) - - private let titleLabel = UILabel() - - override init(frame: CGRect) { - super.init(frame: frame) - setupView() - } - - @available(*, unavailable) - required init?(coder aDecoder: NSCoder) { - fatalError("init(coder:) has not been implemented") - } - - private func setupView() { - addSubview(titleLabel) - titleLabel.setFontStyleAndApply(.regular16, color: .blackPrimary) - titleLabel.numberOfLines = 1 - titleLabel.allowsDefaultTighteningForTruncation = true - titleLabel.adjustsFontSizeToFitWidth = true - titleLabel.minimumScaleFactor = 0.5 - } - - // MARK: - Public - func setTitle(_ title: String) { - titleLabel.text = title - } -} diff --git a/iphone/Maps/UI/Help/CopyrightView.swift b/iphone/Maps/UI/Help/CopyrightView.swift new file mode 100644 index 000000000..66a02bf84 --- /dev/null +++ b/iphone/Maps/UI/Help/CopyrightView.swift @@ -0,0 +1,14 @@ +import SwiftUI + +/// View for the copyright info +struct CopyrightView: View { + // MARK: Properties + + /// The actual view + var body: some View { + EmbeddedSafariView(url: URL(fileURLWithPath: Bundle.main.path(forResource: "copyright", ofType: "html")!), hasDynamicHeight: false) + .accentColor(.accent) + .navigationViewStyle(StackNavigationViewStyle()) + .navigationTitle("copyright") + } +} diff --git a/iphone/Maps/UI/Help/FaqController.swift b/iphone/Maps/UI/Help/FaqController.swift deleted file mode 100644 index 5b3a80027..000000000 --- a/iphone/Maps/UI/Help/FaqController.swift +++ /dev/null @@ -1,24 +0,0 @@ -final class FaqController: MWMViewController { - override func loadView() { - super.loadView() - - // TODO: FAQ? - self.title = L("help") - - let path = Bundle.main.path(forResource: "faq", ofType: "html")! - let html = try! String(contentsOfFile: path, encoding: String.Encoding.utf8) - let webViewController = WebViewController.init(html: html, baseUrl: nil, title: nil)! - webViewController.openInSafari = true - addChild(webViewController) - let aboutView = webViewController.view! - view.addSubview(aboutView) - - aboutView.translatesAutoresizingMaskIntoConstraints = false - NSLayoutConstraint.activate([ - aboutView.leadingAnchor.constraint(equalTo: view.leadingAnchor), - aboutView.trailingAnchor.constraint(equalTo: view.trailingAnchor), - aboutView.topAnchor.constraint(equalTo: view.topAnchor), - aboutView.bottomAnchor.constraint(equalTo: view.bottomAnchor) - ]) - } -} diff --git a/iphone/Maps/UI/Help/FaqView.swift b/iphone/Maps/UI/Help/FaqView.swift new file mode 100644 index 000000000..a6a6437c3 --- /dev/null +++ b/iphone/Maps/UI/Help/FaqView.swift @@ -0,0 +1,14 @@ +import SwiftUI + +/// View for the frequently asked questions +struct FaqView: View { + // MARK: Properties + + /// The actual view + var body: some View { + EmbeddedSafariView(url: URL(fileURLWithPath: Bundle.main.path(forResource: "faq", ofType: "html")!), hasDynamicHeight: false) + .accentColor(.accent) + .navigationViewStyle(StackNavigationViewStyle()) + .navigationTitle("faq") + } +} diff --git a/iphone/Maps/UI/MailComposer/MailComposer.swift b/iphone/Maps/UI/MailComposer/MailComposer.swift index 69e69c693..68d057fa6 100644 --- a/iphone/Maps/UI/MailComposer/MailComposer.swift +++ b/iphone/Maps/UI/MailComposer/MailComposer.swift @@ -35,7 +35,7 @@ final class MailComposer: NSObject { UIApplication.shared.hideLoadingOverlay { sendEmailWith(subject: subject(), body: body(), - toRecipients: [SocialMedia.email.link], + toRecipients: [SocialMedia.emailAddress], attachmentFileURL: logFileURL) } } diff --git a/iphone/Maps/UI/Settings/Profile/NoExistingProfileView.swift b/iphone/Maps/UI/Settings/Profile/NoExistingProfileView.swift index d8d405172..df62a2e4f 100644 --- a/iphone/Maps/UI/Settings/Profile/NoExistingProfileView.swift +++ b/iphone/Maps/UI/Settings/Profile/NoExistingProfileView.swift @@ -25,7 +25,7 @@ struct NoExistingProfileView: View { .font(.headline) HStack(alignment: .top) { - Image(.osmLogo) + Image(.openStreetMapLogo) .resizable() .aspectRatio(1, contentMode: .fit) .frame(maxWidth: 50) @@ -35,7 +35,7 @@ struct NoExistingProfileView: View { .tint(.alternativeAccent) } } - .padding(.bottom) + .padding(.bottom, 8) } Spacer(minLength: 0) diff --git a/iphone/Maps/UI/Storyboard/Main.storyboard b/iphone/Maps/UI/Storyboard/Main.storyboard index 128d26de9..8737418b5 100644 --- a/iphone/Maps/UI/Storyboard/Main.storyboard +++ b/iphone/Maps/UI/Storyboard/Main.storyboard @@ -210,6 +210,7 @@ + @@ -1022,6 +1023,14 @@ + + + + + + + +