Add some localization here and there (#690)
This commit is contained in:
parent
7d63eeccaf
commit
2e4ff59bc2
|
@ -241,7 +241,21 @@
|
||||||
"welcome": {
|
"welcome": {
|
||||||
"slogan": "Social networking\nback in your hands.",
|
"slogan": "Social networking\nback in your hands.",
|
||||||
"get_started": "Get Started",
|
"get_started": "Get Started",
|
||||||
"log_in": "Log In"
|
"log_in": "Log In",
|
||||||
|
"education": {
|
||||||
|
"what_is_mastodon": {
|
||||||
|
"title": "What is",
|
||||||
|
"description": "Imagine you have an email address that ends with @example.com.\n\nYou can still send and receive emails from anyone, even if their email ends in @gmail.com or @icloud.com or @example.com.",
|
||||||
|
},
|
||||||
|
"mastodon_is_like_that": {
|
||||||
|
"title": "Mastodon is like that",
|
||||||
|
"description": "Your handle might be @gothgirl654@example.social, but you can still follow, reblog, and chat with @fallout5ever@example.online.",
|
||||||
|
},
|
||||||
|
"how_do_i_pick_a_server": {
|
||||||
|
"title": "How do I pick a server?",
|
||||||
|
"description": "Different people choose different servers for any number of reasons. art.example is a great place for artists, while glasgow.example might be a good pick for Scots.\n\nYou can’t go wrong with any of our recommend servers, so regardless of which one you pick (or if you enter your own in the server search bar), you’ll never miss a beat anywhere.",
|
||||||
|
},
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"login": {
|
"login": {
|
||||||
"title": "Welcome back",
|
"title": "Welcome back",
|
||||||
|
@ -251,7 +265,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"server_picker": {
|
"server_picker": {
|
||||||
"title": "Pick server",
|
"title": "Pick Server",
|
||||||
"button": {
|
"button": {
|
||||||
"category": {
|
"category": {
|
||||||
"all": "All",
|
"all": "All",
|
||||||
|
@ -286,6 +300,9 @@
|
||||||
"no_results": "No results"
|
"no_results": "No results"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"privacy": {
|
||||||
|
"title": "Privacy"
|
||||||
|
}
|
||||||
"register": {
|
"register": {
|
||||||
"title": "Let’s get you set up on %s",
|
"title": "Let’s get you set up on %s",
|
||||||
"lets_get_you_set_up_on_domain": "Let’s get you set up on %s",
|
"lets_get_you_set_up_on_domain": "Let’s get you set up on %s",
|
||||||
|
|
|
@ -300,6 +300,17 @@
|
||||||
"no_results": "No results"
|
"no_results": "No results"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"privacy": {
|
||||||
|
"title": "Privacy",
|
||||||
|
"policy": {
|
||||||
|
"ios": "Privacy Policy - Mastodon for iOS";
|
||||||
|
"server" = "Privacy Policy - %s";
|
||||||
|
|
||||||
|
},
|
||||||
|
"button": {
|
||||||
|
"confirm": "I agree"
|
||||||
|
}
|
||||||
|
}
|
||||||
"register": {
|
"register": {
|
||||||
"title": "Let’s get you set up on %s",
|
"title": "Let’s get you set up on %s",
|
||||||
"lets_get_you_set_up_on_domain": "Let’s get you set up on %s",
|
"lets_get_you_set_up_on_domain": "Let’s get you set up on %s",
|
||||||
|
|
|
@ -40,7 +40,7 @@ final class OnboardingNextView: UIView {
|
||||||
label.numberOfLines = 0
|
label.numberOfLines = 0
|
||||||
label.textColor = .secondaryLabel
|
label.textColor = .secondaryLabel
|
||||||
label.font = UIFontMetrics(forTextStyle: .footnote).scaledFont(for: .systemFont(ofSize: 13, weight: .regular))
|
label.font = UIFontMetrics(forTextStyle: .footnote).scaledFont(for: .systemFont(ofSize: 13, weight: .regular))
|
||||||
label.text = "We’ll pick a server based on your language if you continue without making a selection." //TODO: @zeitschlag localize
|
label.text = L10n.Scene.ServerPicker.noServerSelectedHint
|
||||||
return label
|
return label
|
||||||
}()
|
}()
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,8 @@
|
||||||
import UIKit
|
import UIKit
|
||||||
import MastodonCore
|
import MastodonCore
|
||||||
import MastodonSDK
|
import MastodonSDK
|
||||||
import SafariServices
|
import MastodonLocalization
|
||||||
|
import MastodonAsset
|
||||||
|
|
||||||
enum PrivacyRow {
|
enum PrivacyRow {
|
||||||
case iOSApp
|
case iOSApp
|
||||||
|
@ -26,9 +27,9 @@ enum PrivacyRow {
|
||||||
var title: String {
|
var title: String {
|
||||||
switch self {
|
switch self {
|
||||||
case .iOSApp:
|
case .iOSApp:
|
||||||
return "Privacy Policy - Mastodon for iOS"
|
return L10n.Scene.Privacy.Policy.ios
|
||||||
case .server(let domain):
|
case .server(let domain):
|
||||||
return "Privacy Policy - \(domain)"
|
return L10n.Scene.Privacy.Policy.server(domain)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -61,7 +62,9 @@ class PrivacyTableViewController: UIViewController, NeedsDependency {
|
||||||
view.addSubview(tableView)
|
view.addSubview(tableView)
|
||||||
setupConstraints()
|
setupConstraints()
|
||||||
|
|
||||||
navigationItem.rightBarButtonItem = UIBarButtonItem(title: "I agree", style: .done, target: self, action: #selector(PrivacyTableViewController.nextButtonPressed(_:)))
|
navigationItem.rightBarButtonItem = UIBarButtonItem(title: L10n.Scene.Privacy.Button.confirm, style: .done, target: self, action: #selector(PrivacyTableViewController.nextButtonPressed(_:)))
|
||||||
|
|
||||||
|
title = L10n.Scene.Privacy.title
|
||||||
}
|
}
|
||||||
|
|
||||||
required init?(coder: NSCoder) { fatalError("init(coder:) won't been implemented, please don't use Storyboards.") }
|
required init?(coder: NSCoder) { fatalError("init(coder:) won't been implemented, please don't use Storyboards.") }
|
||||||
|
|
|
@ -55,7 +55,7 @@ extension MastodonServerRulesViewController {
|
||||||
viewModel.setupDiffableDataSource(tableView: tableView)
|
viewModel.setupDiffableDataSource(tableView: tableView)
|
||||||
|
|
||||||
|
|
||||||
navigationItem.rightBarButtonItem = UIBarButtonItem(title: "I agree", style: .done, target: self, action: #selector(MastodonServerRulesViewController.nextButtonPressed(_:)))
|
navigationItem.rightBarButtonItem = UIBarButtonItem(title: L10n.Scene.ServerRules.Button.confirm, style: .done, target: self, action: #selector(MastodonServerRulesViewController.nextButtonPressed(_:)))
|
||||||
title = L10n.Scene.ServerRules.title
|
title = L10n.Scene.ServerRules.title
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -791,6 +791,24 @@ public enum L10n {
|
||||||
public static let showPrevious = L10n.tr("Localizable", "Scene.Preview.Keyboard.ShowPrevious", fallback: "Show Previous")
|
public static let showPrevious = L10n.tr("Localizable", "Scene.Preview.Keyboard.ShowPrevious", fallback: "Show Previous")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
public enum Privacy {
|
||||||
|
/// Although the Mastodon app does not collect any data, the server you sign up through may have a different policy. Take a minute to review and agree to the Mastodon app privacy policy and your server’s privacy policy.
|
||||||
|
public static let description = L10n.tr("Localizable", "Scene.Privacy.Description", fallback: "Although the Mastodon app does not collect any data, the server you sign up through may have a different policy. Take a minute to review and agree to the Mastodon app privacy policy and your server’s privacy policy.")
|
||||||
|
/// Privacy
|
||||||
|
public static let title = L10n.tr("Localizable", "Scene.Privacy.Title", fallback: "Privacy")
|
||||||
|
public enum Button {
|
||||||
|
/// I agree
|
||||||
|
public static let confirm = L10n.tr("Localizable", "Scene.Privacy.Button.confirm", fallback: "I agree")
|
||||||
|
}
|
||||||
|
public enum Policy {
|
||||||
|
/// Privacy Policy - Mastodon for iOS
|
||||||
|
public static let ios = L10n.tr("Localizable", "Scene.Privacy.Policy.Ios", fallback: "Privacy Policy - Mastodon for iOS")
|
||||||
|
/// Privacy Policy - %@
|
||||||
|
public static func server(_ p1: Any) -> String {
|
||||||
|
return L10n.tr("Localizable", "Scene.Privacy.Policy.Server", String(describing: p1), fallback: "Privacy Policy - %@")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
public enum Profile {
|
public enum Profile {
|
||||||
public enum Accessibility {
|
public enum Accessibility {
|
||||||
/// Double tap to open the list
|
/// Double tap to open the list
|
||||||
|
@ -1186,6 +1204,8 @@ public enum L10n {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public enum ServerPicker {
|
public enum ServerPicker {
|
||||||
|
/// We’ll pick a server based on your language if you continue without making a selection.
|
||||||
|
public static let noServerSelectedHint = L10n.tr("Localizable", "Scene.ServerPicker.NoServerSelectedHint", fallback: "We’ll pick a server based on your language if you continue without making a selection.")
|
||||||
/// Pick server
|
/// Pick server
|
||||||
public static let title = L10n.tr("Localizable", "Scene.ServerPicker.Title", fallback: "Pick server")
|
public static let title = L10n.tr("Localizable", "Scene.ServerPicker.Title", fallback: "Pick server")
|
||||||
public enum Button {
|
public enum Button {
|
||||||
|
|
|
@ -436,6 +436,7 @@ uploaded to Mastodon.";
|
||||||
"Scene.ServerPicker.Label.Language" = "LANGUAGE";
|
"Scene.ServerPicker.Label.Language" = "LANGUAGE";
|
||||||
"Scene.ServerPicker.Label.Users" = "USERS";
|
"Scene.ServerPicker.Label.Users" = "USERS";
|
||||||
"Scene.ServerPicker.Title" = "Pick server";
|
"Scene.ServerPicker.Title" = "Pick server";
|
||||||
|
"Scene.ServerPicker.NoServerSelectedHint" = "We’ll pick a server based on your language if you continue without making a selection.";
|
||||||
"Scene.ServerRules.Button.Confirm" = "I Agree";
|
"Scene.ServerRules.Button.Confirm" = "I Agree";
|
||||||
"Scene.ServerRules.PrivacyPolicy" = "privacy policy";
|
"Scene.ServerRules.PrivacyPolicy" = "privacy policy";
|
||||||
"Scene.ServerRules.Prompt" = "By continuing, you’re subject to the terms of service and privacy policy for %@.";
|
"Scene.ServerRules.Prompt" = "By continuing, you’re subject to the terms of service and privacy policy for %@.";
|
||||||
|
@ -497,4 +498,9 @@ You can still send and receive emails from anyone, even if their email ends in @
|
||||||
You can’t go wrong with any of our recommend servers, so regardless of which one you pick (or if you enter your own in the server search bar), you’ll never miss a beat anywhere.";
|
You can’t go wrong with any of our recommend servers, so regardless of which one you pick (or if you enter your own in the server search bar), you’ll never miss a beat anywhere.";
|
||||||
"Scene.Wizard.AccessibilityHint" = "Double tap to dismiss this wizard";
|
"Scene.Wizard.AccessibilityHint" = "Double tap to dismiss this wizard";
|
||||||
"Scene.Wizard.MultipleAccountSwitchIntroDescription" = "Switch between multiple accounts by holding the profile button.";
|
"Scene.Wizard.MultipleAccountSwitchIntroDescription" = "Switch between multiple accounts by holding the profile button.";
|
||||||
"Scene.Wizard.NewInMastodon" = "New in Mastodon";
|
"Scene.Wizard.NewInMastodon" = "New in Mastodon";
|
||||||
|
"Scene.Privacy.Title" = "Privacy";
|
||||||
|
"Scene.Privacy.Description" = "Although the Mastodon app does not collect any data, the server you sign up through may have a different policy. Take a minute to review and agree to the Mastodon app privacy policy and your server’s privacy policy.";
|
||||||
|
"Scene.Privacy.Button.confirm" = "I agree";
|
||||||
|
"Scene.Privacy.Policy.Ios" = "Privacy Policy - Mastodon for iOS";
|
||||||
|
"Scene.Privacy.Policy.Server" = "Privacy Policy - %@";
|
||||||
|
|
|
@ -427,6 +427,7 @@ uploaded to Mastodon.";
|
||||||
"Scene.ServerPicker.Label.Language" = "LANGUAGE";
|
"Scene.ServerPicker.Label.Language" = "LANGUAGE";
|
||||||
"Scene.ServerPicker.Label.Users" = "USERS";
|
"Scene.ServerPicker.Label.Users" = "USERS";
|
||||||
"Scene.ServerPicker.Title" = "Pick server";
|
"Scene.ServerPicker.Title" = "Pick server";
|
||||||
|
"Scene.ServerPicker.NoServerSelectedHint" = "We’ll pick a server based on your language if you continue without making a selection.";
|
||||||
"Scene.ServerRules.Button.Confirm" = "I Agree";
|
"Scene.ServerRules.Button.Confirm" = "I Agree";
|
||||||
"Scene.ServerRules.PrivacyPolicy" = "privacy policy";
|
"Scene.ServerRules.PrivacyPolicy" = "privacy policy";
|
||||||
"Scene.ServerRules.Prompt" = "By continuing, you’re subject to the terms of service and privacy policy for %@.";
|
"Scene.ServerRules.Prompt" = "By continuing, you’re subject to the terms of service and privacy policy for %@.";
|
||||||
|
@ -478,4 +479,9 @@ uploaded to Mastodon.";
|
||||||
back in your hands.";
|
back in your hands.";
|
||||||
"Scene.Wizard.AccessibilityHint" = "Double tap to dismiss this wizard";
|
"Scene.Wizard.AccessibilityHint" = "Double tap to dismiss this wizard";
|
||||||
"Scene.Wizard.MultipleAccountSwitchIntroDescription" = "Switch between multiple accounts by holding the profile button.";
|
"Scene.Wizard.MultipleAccountSwitchIntroDescription" = "Switch between multiple accounts by holding the profile button.";
|
||||||
"Scene.Wizard.NewInMastodon" = "New in Mastodon";
|
"Scene.Wizard.NewInMastodon" = "New in Mastodon";
|
||||||
|
"Scene.Privacy.Title" = "Privacy";
|
||||||
|
"Scene.Privacy.Description" = "Although the Mastodon app does not collect any data, the server you sign up through may have a different policy. Take a minute to review and agree to the Mastodon app privacy policy and your server’s privacy policy.";
|
||||||
|
"Scene.Privacy.Button.confirm" = "I agree";
|
||||||
|
"Scene.Privacy.Policy.Ios" = "Privacy Policy - Mastodon for iOS";
|
||||||
|
"Scene.Privacy.Policy.Server" = "Privacy Policy - %@";
|
||||||
|
|
Loading…
Reference in New Issue