mirror of
https://github.com/SideStore/SideStore.git
synced 2026-02-09 06:43:25 +01:00
[CHANGE] Extracted all strings into the Localizable.strings
This commit is contained in:
committed by
Joe Mattiello
parent
e733601c66
commit
4663c01700
@@ -10,6 +10,12 @@ import Foundation
|
||||
// swiftlint:disable explicit_type_interface function_parameter_count identifier_name line_length
|
||||
// swiftlint:disable nesting type_body_length type_name vertical_whitespace_opening_braces
|
||||
internal enum L10n {
|
||||
internal enum Action {
|
||||
/// Close
|
||||
internal static let close = L10n.tr("Localizable", "Action.close", fallback: "Close")
|
||||
/// General Actions
|
||||
internal static let done = L10n.tr("Localizable", "Action.done", fallback: "Done")
|
||||
}
|
||||
internal enum AddSourceView {
|
||||
/// Continue
|
||||
internal static let `continue` = L10n.tr("Localizable", "AddSourceView.continue", fallback: "Continue")
|
||||
@@ -49,7 +55,7 @@ internal enum L10n {
|
||||
internal static let restoreBackup = L10n.tr("Localizable", "AppAction.restoreBackup", fallback: "Restore backup")
|
||||
}
|
||||
internal enum AppDetailView {
|
||||
/// AppDetailView
|
||||
/// More...
|
||||
internal static let more = L10n.tr("Localizable", "AppDetailView.more", fallback: "More...")
|
||||
/// The app requires no permissions.
|
||||
internal static let noPermissions = L10n.tr("Localizable", "AppDetailView.noPermissions", fallback: "The app requires no permissions.")
|
||||
@@ -61,6 +67,20 @@ internal enum L10n {
|
||||
internal static let version = L10n.tr("Localizable", "AppDetailView.version", fallback: "Version")
|
||||
/// What's New
|
||||
internal static let whatsNew = L10n.tr("Localizable", "AppDetailView.whatsNew", fallback: "What's New")
|
||||
internal enum Badge {
|
||||
/// AppDetailView
|
||||
internal static let official = L10n.tr("Localizable", "AppDetailView.Badge.official", fallback: "Official App")
|
||||
/// From Trusted Source
|
||||
internal static let trusted = L10n.tr("Localizable", "AppDetailView.Badge.trusted", fallback: "From Trusted Source")
|
||||
}
|
||||
}
|
||||
internal enum AppIDsView {
|
||||
/// Each app and app extension installed with SideStore must register an App ID with Apple.
|
||||
///
|
||||
/// App IDs for paid developer accounts never expire, and there is no limit to how many you can create.
|
||||
internal static let description = L10n.tr("Localizable", "AppIDsView.description", fallback: "Each app and app extension installed with SideStore must register an App ID with Apple.\n\nApp IDs for paid developer accounts never expire, and there is no limit to how many you can create.")
|
||||
/// AppIDsView
|
||||
internal static let title = L10n.tr("Localizable", "AppIDsView.title", fallback: "App IDs")
|
||||
}
|
||||
internal enum AppPermissionGrid {
|
||||
/// AppPermissionGrid
|
||||
@@ -72,6 +92,10 @@ internal enum L10n {
|
||||
/// Open
|
||||
internal static let `open` = L10n.tr("Localizable", "AppPillButton.open", fallback: "Open")
|
||||
}
|
||||
internal enum AppRowView {
|
||||
/// AppRowView
|
||||
internal static let sideloaded = L10n.tr("Localizable", "AppRowView.sideloaded", fallback: "Sideloaded")
|
||||
}
|
||||
internal enum BrowseView {
|
||||
/// Search
|
||||
internal static let search = L10n.tr("Localizable", "BrowseView.search", fallback: "Search")
|
||||
@@ -86,6 +110,16 @@ internal enum L10n {
|
||||
/// Emulators
|
||||
internal static let gamesAndEmulators = L10n.tr("Localizable", "BrowseView.Categories.gamesAndEmulators", fallback: "Games and\nEmulators")
|
||||
}
|
||||
internal enum Hints {
|
||||
internal enum NoApps {
|
||||
/// Add Source
|
||||
internal static let addSource = L10n.tr("Localizable", "BrowseView.Hints.NoApps.addSource", fallback: "Add Source")
|
||||
/// Apps are provided by "sources". The specification for them is an open standard, so everyone can create their own source. To get you started, we have compiled a list of "Trusted Sources" which you can check out by tapping the button below.
|
||||
internal static let text = L10n.tr("Localizable", "BrowseView.Hints.NoApps.text", fallback: "Apps are provided by \"sources\". The specification for them is an open standard, so everyone can create their own source. To get you started, we have compiled a list of \"Trusted Sources\" which you can check out by tapping the button below.")
|
||||
/// You don't have any apps yet.
|
||||
internal static let title = L10n.tr("Localizable", "BrowseView.Hints.NoApps.title", fallback: "You don't have any apps yet.")
|
||||
}
|
||||
}
|
||||
internal enum Section {
|
||||
internal enum AllApps {
|
||||
/// All Apps
|
||||
@@ -146,16 +180,24 @@ internal enum L10n {
|
||||
internal static let failedToRefresh = L10n.tr("Localizable", "MyAppsView.failedToRefresh", fallback: "Failed to refresh")
|
||||
/// My Apps
|
||||
internal static let myApps = L10n.tr("Localizable", "MyAppsView.myApps", fallback: "My Apps")
|
||||
/// No Updates Available
|
||||
internal static let noUpdatesAvailable = L10n.tr("Localizable", "MyAppsView.noUpdatesAvailable", fallback: "No Updates Available")
|
||||
/// Refresh All
|
||||
internal static let refreshAll = L10n.tr("Localizable", "MyAppsView.refreshAll", fallback: "Refresh All")
|
||||
/// Active
|
||||
internal static let remainingAppID = L10n.tr("Localizable", "MyAppsView.remainingAppID", fallback: "Active")
|
||||
/// Sideloading in progress...
|
||||
internal static let sideloading = L10n.tr("Localizable", "MyAppsView.sideloading", fallback: "Sideloading in progress...")
|
||||
/// Keep this lowercase
|
||||
internal static let viewAppIDs = L10n.tr("Localizable", "MyAppsView.viewAppIDs", fallback: "View App IDs")
|
||||
internal enum Hints {
|
||||
internal enum NoUpdates {
|
||||
/// Dismiss for now
|
||||
internal static let dismissForNow = L10n.tr("Localizable", "MyAppsView.Hints.NoUpdates.dismissForNow", fallback: "Dismiss for now")
|
||||
/// Don't show this again
|
||||
internal static let dontShowAgain = L10n.tr("Localizable", "MyAppsView.Hints.NoUpdates.dontShowAgain", fallback: "Don't show this again")
|
||||
/// You will be notified once updates for your apps are available. The updates will then be shown here.
|
||||
internal static let text = L10n.tr("Localizable", "MyAppsView.Hints.NoUpdates.text", fallback: "You will be notified once updates for your apps are available. The updates will then be shown here.")
|
||||
/// All Apps are Up To Date
|
||||
internal static let title = L10n.tr("Localizable", "MyAppsView.Hints.NoUpdates.title", fallback: "All Apps are Up To Date")
|
||||
}
|
||||
}
|
||||
}
|
||||
internal enum NewsView {
|
||||
/// NewsView
|
||||
|
||||
@@ -7,6 +7,11 @@
|
||||
*/
|
||||
|
||||
|
||||
/* General Actions */
|
||||
"Action.done" = "Done";
|
||||
"Action.close" = "Close";
|
||||
|
||||
|
||||
/* NewsView */
|
||||
"NewsView.title" = "News";
|
||||
"NewsView.Section.FromSources.title" = "From your Sources";
|
||||
@@ -18,9 +23,19 @@
|
||||
"BrowseView.Section.PromotedCategories.title" = "Promoted Categories";
|
||||
"BrowseView.Section.PromotedCategories.showAll" = "Show all";
|
||||
"BrowseView.Section.AllApps.title" = "All Apps";
|
||||
"BrowseView.Hints.NoApps.title" = "You don't have any apps yet.";
|
||||
"BrowseView.Hints.NoApps.text" = "Apps are provided by \"sources\". The specification for them is an open standard, so everyone can create their own source. To get you started, we have compiled a list of \"Trusted Sources\" which you can check out by tapping the button below.";
|
||||
"BrowseView.Hints.NoApps.addSource" = "Add Source";
|
||||
"BrowseView.Actions.sources" = "Sources";
|
||||
"BrowseView.Categories.gamesAndEmulators" = "Games and\nEmulators";
|
||||
|
||||
/* AppRowView */
|
||||
"AppRowView.sideloaded" = "Sideloaded";
|
||||
|
||||
/* AppPillButton */
|
||||
"AppPillButton.free" = "Free";
|
||||
"AppPillButton.open" = "Open";
|
||||
|
||||
/* RootView */
|
||||
"RootView.news" = "News";
|
||||
"RootView.browse" = "Browse";
|
||||
@@ -102,6 +117,8 @@
|
||||
"AppAction.resetIcon" = "Reset icon";
|
||||
|
||||
/* AppDetailView*/
|
||||
"AppDetailView.Badge.official" = "Official App";
|
||||
"AppDetailView.Badge.trusted" = "From Trusted Source";
|
||||
"AppDetailView.more" = "More...";
|
||||
"AppDetailView.whatsNew" = "What's New";
|
||||
"AppDetailView.version" = "Version";
|
||||
@@ -117,8 +134,16 @@
|
||||
"MyAppsView.sideloading" = "Sideloading in progress...";
|
||||
"MyAppsView.refreshAll" = "Refresh All";
|
||||
"MyAppsView.appIDsRemaining" = "App IDs Remaining";
|
||||
"MyAppsView.noUpdatesAvailable" = "No Updates Available";
|
||||
"MyAppsView.failedToRefresh" = "Failed to refresh";
|
||||
"MyAppsView.apps" = "apps"; /* Keep this lowercase */
|
||||
"MyAppsView.viewAppIDs" = "View App IDs";
|
||||
"MyAppsView.myApps" = "My Apps";
|
||||
"MyAppsView.Hints.NoUpdates.title" = "All Apps are Up To Date";
|
||||
"MyAppsView.Hints.NoUpdates.text" = "You will be notified once updates for your apps are available. The updates will then be shown here.";
|
||||
"MyAppsView.Hints.NoUpdates.dismissForNow" = "Dismiss for now";
|
||||
"MyAppsView.Hints.NoUpdates.dontShowAgain" = "Don't show this again";
|
||||
|
||||
|
||||
/* AppIDsView */
|
||||
"AppIDsView.title" = "App IDs";
|
||||
"AppIDsView.description" = "Each app and app extension installed with SideStore must register an App ID with Apple.\n\nApp IDs for paid developer accounts never expire, and there is no limit to how many you can create.";
|
||||
|
||||
@@ -44,10 +44,10 @@ struct AppPillButton: View {
|
||||
return DateFormatterHelper.string(forExpirationDate: installedApp.expirationDate)
|
||||
}
|
||||
|
||||
return "Open"
|
||||
return L10n.AppPillButton.open
|
||||
}
|
||||
|
||||
return "Free"
|
||||
return L10n.AppPillButton.free
|
||||
}
|
||||
|
||||
var body: some View {
|
||||
|
||||
@@ -26,7 +26,7 @@ struct AppRowView: View {
|
||||
Text(app.name)
|
||||
.bold()
|
||||
|
||||
Text(storeApp?.developerName ?? "Sideloaded")
|
||||
Text(storeApp?.developerName ?? L10n.AppRowView.sideloaded)
|
||||
.font(.callout)
|
||||
.foregroundColor(.secondary)
|
||||
|
||||
|
||||
@@ -138,7 +138,7 @@ struct AppDetailView: View {
|
||||
HStack {
|
||||
Spacer()
|
||||
Image(systemSymbol: .checkmarkSealFill)
|
||||
Text("Official App")
|
||||
Text(L10n.AppDetailView.Badge.official)
|
||||
Spacer()
|
||||
}
|
||||
.foregroundColor(.accentColor)
|
||||
@@ -148,7 +148,7 @@ struct AppDetailView: View {
|
||||
HStack {
|
||||
Spacer()
|
||||
Image(systemSymbol: .shieldLefthalfFill)
|
||||
Text("From Trusted Source")
|
||||
Text(L10n.AppDetailView.Badge.trusted)
|
||||
Spacer()
|
||||
}
|
||||
.foregroundColor(.accentColor)
|
||||
|
||||
@@ -44,11 +44,11 @@ struct AppScreenshotsPreview: View {
|
||||
}
|
||||
.tabViewStyle(PageTabViewStyle(indexDisplayMode: .never))
|
||||
.toolbar {
|
||||
ToolbarItem(placement: .navigationBarTrailing) {
|
||||
ToolbarItem(placement: .cancellationAction) {
|
||||
SwiftUI.Button {
|
||||
self.dismiss()
|
||||
} label: {
|
||||
Text("Close")
|
||||
Text(L10n.Action.close)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,17 +45,17 @@ struct BrowseView: View {
|
||||
|
||||
if searchText.isEmpty, filteredApps.count == 0 {
|
||||
HintView {
|
||||
Text("You don't have any apps yet.")
|
||||
Text(L10n.BrowseView.Hints.NoApps.title)
|
||||
.bold()
|
||||
|
||||
Text("Apps are provided by \"sources\". The specification for them is an open standard, so everyone can create their own source. To get you started, we have compiled a list of \"Trusted Sources\" which you can check out by tapping the button below.")
|
||||
Text(L10n.BrowseView.Hints.NoApps.text)
|
||||
.font(.callout)
|
||||
.foregroundColor(.secondary)
|
||||
|
||||
SwiftUI.Button {
|
||||
self.isShowingSourcesView = true
|
||||
} label: {
|
||||
Label("Add Source", systemSymbol: .plus)
|
||||
Label(L10n.BrowseView.Hints.NoApps.addSource, systemSymbol: .plus)
|
||||
}
|
||||
.buttonStyle(FilledButtonStyle())
|
||||
.padding(.top, 8)
|
||||
|
||||
@@ -24,7 +24,7 @@ struct AppIDsView: View {
|
||||
var body: some View {
|
||||
ScrollView {
|
||||
LazyVStack(alignment: .leading) {
|
||||
Text("Each app and app extension installed with SideStore must register an App ID with Apple.\n\nApp IDs for paid developer accounts never expire, and there is no limit to how many you can create.")
|
||||
Text(L10n.AppIDsView.description)
|
||||
.foregroundColor(.secondary)
|
||||
|
||||
ForEach(appIDs, id: \.identifier) { appId in
|
||||
@@ -42,10 +42,10 @@ struct AppIDsView: View {
|
||||
}
|
||||
.padding()
|
||||
}
|
||||
.navigationTitle("App IDs")
|
||||
.navigationTitle(L10n.AppIDsView.title)
|
||||
.toolbar {
|
||||
ToolbarItem(placement: .navigationBarTrailing) {
|
||||
SwiftUI.Button("Done", action: self.dismiss)
|
||||
ToolbarItem(placement: .confirmationAction) {
|
||||
SwiftUI.Button(L10n.Action.done, action: self.dismiss)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -157,7 +157,7 @@ struct MyAppsView: View {
|
||||
var updatesSection: some View {
|
||||
HintView {
|
||||
HStack(alignment: .center) {
|
||||
Text("All Apps are Up To Date")
|
||||
Text(L10n.MyAppsView.Hints.NoUpdates.title)
|
||||
.bold()
|
||||
Spacer()
|
||||
|
||||
@@ -165,13 +165,13 @@ struct MyAppsView: View {
|
||||
SwiftUI.Button {
|
||||
self.dismissUpdatesHint(forever: false)
|
||||
} label: {
|
||||
Label("Dismiss for now", systemSymbol: .zzz)
|
||||
Label(L10n.MyAppsView.Hints.NoUpdates.dismissForNow, systemSymbol: .zzz)
|
||||
}
|
||||
|
||||
SwiftUI.Button {
|
||||
self.dismissUpdatesHint(forever: true)
|
||||
} label: {
|
||||
Label("Don't show this again", systemSymbol: .xmark)
|
||||
Label(L10n.MyAppsView.Hints.NoUpdates.dontShowAgain, systemSymbol: .xmark)
|
||||
}
|
||||
} label: {
|
||||
Image(systemSymbol: .xmark)
|
||||
@@ -179,7 +179,7 @@ struct MyAppsView: View {
|
||||
.foregroundColor(.secondary)
|
||||
}
|
||||
|
||||
Text("You will be notified once updates for your apps are available. The updates will then be shown here.")
|
||||
Text(L10n.MyAppsView.Hints.NoUpdates.text)
|
||||
.font(.callout)
|
||||
.foregroundColor(.secondary)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user