This commit is contained in:
Max Goedjen 2025-09-01 19:31:16 -07:00
parent 0980cdffcd
commit 74ddb9595b
No known key found for this signature in database
5 changed files with 97 additions and 70 deletions

View File

@ -1274,7 +1274,8 @@
} }
} }
}, },
"Copy" : { "copy_button" : {
"extractionState" : "manual",
"localizations" : { "localizations" : {
"en" : { "en" : {
"stringUnit" : { "stringUnit" : {
@ -2605,14 +2606,7 @@
} }
}, },
"Done" : { "Done" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Done"
}
}
}
}, },
"edit_cancel_button" : { "edit_cancel_button" : {
"extractionState" : "manual", "extractionState" : "manual",
@ -3141,26 +3135,6 @@
} }
} }
}, },
"Getting Started" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Getting Started"
}
}
}
},
"Integrations" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Integrations"
}
}
}
},
"integrations_add_this_title" : { "integrations_add_this_title" : {
"extractionState" : "manual", "extractionState" : "manual",
"localizations" : { "localizations" : {
@ -3205,6 +3179,50 @@
} }
} }
}, },
"integrations_getting_started_row_title" : {
"extractionState" : "manual",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Getting Started"
}
}
}
},
"integrations_getting_started_section_title" : {
"extractionState" : "manual",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Integrations"
}
}
}
},
"integrations_other_section_title" : {
"extractionState" : "manual",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Other"
}
}
}
},
"integrations_other_shell_row_title" : {
"extractionState" : "manual",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "other"
}
}
}
},
"integrations_path_title" : { "integrations_path_title" : {
"extractionState" : "manual", "extractionState" : "manual",
"localizations" : { "localizations" : {
@ -3216,6 +3234,28 @@
} }
} }
}, },
"integrations_shell_section_title" : {
"extractionState" : "manual",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Shell"
}
}
}
},
"integrations_system_section_title" : {
"extractionState" : "manual",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "System"
}
}
}
},
"integrations_view_other_github_link" : { "integrations_view_other_github_link" : {
"extractionState" : "manual", "extractionState" : "manual",
"localizations" : { "localizations" : {
@ -3238,7 +3278,8 @@
} }
} }
}, },
"Integrations..." : { "integrationsMenuBarTitle" : {
"extractionState" : "manual",
"localizations" : { "localizations" : {
"en" : { "en" : {
"stringUnit" : { "stringUnit" : {
@ -3479,6 +3520,17 @@
} }
} }
}, },
"onboarding_done_button" : {
"extractionState" : "manual",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Done"
}
}
}
},
"onboarding_getting_started_multiple_config" : { "onboarding_getting_started_multiple_config" : {
"extractionState" : "manual", "extractionState" : "manual",
"localizations" : { "localizations" : {
@ -3567,7 +3619,7 @@
} }
} }
}, },
"onboarding_integrations_button_title" : { "onboarding_integrations_button" : {
"extractionState" : "manual", "extractionState" : "manual",
"localizations" : { "localizations" : {
"en" : { "en" : {
@ -3599,12 +3651,6 @@
} }
} }
} }
},
"other" : {
},
"Other" : {
}, },
"persist_authentication_accept_button" : { "persist_authentication_accept_button" : {
"comment" : "When the user authorizes an action using a secret that requires unlock, they're shown a notification offering to leave the secret unlocked for a set period of time. This is the title for the notification.", "comment" : "When the user authorizes an action using a secret that requires unlock, they're shown a notification offering to leave the secret unlocked for a set period of time. This is the title for the notification.",
@ -3762,7 +3808,8 @@
} }
} }
}, },
"Reveal in Finder" : { "reveal_in_finder_button" : {
"extractionState" : "manual",
"localizations" : { "localizations" : {
"en" : { "en" : {
"stringUnit" : { "stringUnit" : {
@ -5350,16 +5397,6 @@
} }
} }
}, },
"Shell" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Shell"
}
}
}
},
"signed_notification_description" : { "signed_notification_description" : {
"comment" : "When the user performs an action using a secret, they're shown a notification describing what happened. This is the description, showing which secret was used. The placeholder is the name of the secret.", "comment" : "When the user performs an action using a secret, they're shown a notification describing what happened. This is the description, showing which secret was used. The placeholder is the name of the secret.",
"extractionState" : "manual", "extractionState" : "manual",
@ -5587,16 +5624,6 @@
} }
} }
}, },
"System" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "System"
}
}
}
},
"unnamed_secret" : { "unnamed_secret" : {
"extractionState" : "manual", "extractionState" : "manual",
"localizations" : { "localizations" : {

View File

@ -65,7 +65,7 @@ struct Secretive: App {
} }
.commands { .commands {
CommandGroup(before: CommandGroupPlacement.appSettings) { CommandGroup(before: CommandGroupPlacement.appSettings) {
Button("Integrations...", systemImage: "app.connected.to.app.below.fill") { Button(.integrationsMenuBarTitle, systemImage: "app.connected.to.app.below.fill") {
showingIntegrations = true showingIntegrations = true
} }
} }

View File

@ -32,14 +32,14 @@ struct ConfigurationItemView<Content: View>: View {
Spacer() Spacer()
switch action { switch action {
case .copy(let string): case .copy(let string):
Button("Copy", systemImage: "document.on.document") { Button(.copyButton, systemImage: "document.on.document") {
NSPasteboard.general.declareTypes([.string], owner: nil) NSPasteboard.general.declareTypes([.string], owner: nil)
NSPasteboard.general.setString(string, forType: .string) NSPasteboard.general.setString(string, forType: .string)
} }
.labelStyle(.iconOnly) .labelStyle(.iconOnly)
.buttonStyle(.borderless) .buttonStyle(.borderless)
case .revealInFinder(let rawPath): case .revealInFinder(let rawPath):
Button("Reveal in Finder", systemImage: "folder") { Button(.revealInFinderButton, systemImage: "folder") {
// All foundation-based normalization methods replace this with the container directly. // All foundation-based normalization methods replace this with the container directly.
let processedPath = rawPath.replacingOccurrences(of: "~", with: "/Users/\(NSUserName())") let processedPath = rawPath.replacingOccurrences(of: "~", with: "/Users/\(NSUserName())")
let url = URL(filePath: processedPath) let url = URL(filePath: processedPath)

View File

@ -23,7 +23,7 @@ struct IntegrationsView: View {
} detail: { } detail: {
IntegrationsDetailView(selectedInstruction: $selectedInstruction) IntegrationsDetailView(selectedInstruction: $selectedInstruction)
.fauxToolbar { .fauxToolbar {
Button("Done") { Button(.onboardingDoneButton) {
dismiss() dismiss()
} }
.normalButton() .normalButton()
@ -190,7 +190,7 @@ private struct Instructions {
zsh zsh
} }
var gettingStarted: ConfigurationFileInstructions = ConfigurationFileInstructions("Getting Started", id: .gettingStarted) var gettingStarted: ConfigurationFileInstructions = ConfigurationFileInstructions(LocalizedStringResource.integrationsGettingStartedRowTitle, id: .gettingStarted)
var ssh: ConfigurationFileInstructions { var ssh: ConfigurationFileInstructions {
ConfigurationFileInstructions( ConfigurationFileInstructions(
@ -243,17 +243,17 @@ private struct Instructions {
var instructions: [ConfigurationGroup] { var instructions: [ConfigurationGroup] {
[ [
ConfigurationGroup(name: "Integrations", instructions: [ ConfigurationGroup(name: LocalizedStringResource.integrationsGettingStartedSectionTitle, instructions: [
gettingStarted gettingStarted
]), ]),
ConfigurationGroup( ConfigurationGroup(
name: "System", name: LocalizedStringResource.integrationsSystemSectionTitle,
instructions: [ instructions: [
ssh, ssh,
git, git,
] ]
), ),
ConfigurationGroup(name: "Shell", instructions: [ ConfigurationGroup(name: LocalizedStringResource.integrationsShellSectionTitle, instructions: [
zsh, zsh,
ConfigurationFileInstructions( ConfigurationFileInstructions(
tool: "bash", tool: "bash",
@ -265,9 +265,9 @@ private struct Instructions {
configPath: "~/.config/fish/config.fish", configPath: "~/.config/fish/config.fish",
configText: "set -x SSH_AUTH_SOCK \(socketPath)" configText: "set -x SSH_AUTH_SOCK \(socketPath)"
), ),
ConfigurationFileInstructions("other", id: .otherShell), ConfigurationFileInstructions(LocalizedStringResource.integrationsOtherShellRowTitle, id: .otherShell),
]), ]),
ConfigurationGroup(name: "Other", instructions: [ ConfigurationGroup(name: LocalizedStringResource.integrationsOtherSectionTitle, instructions: [
ConfigurationFileInstructions(LocalizedStringResource.integrationsAppsRowTitle, id: .otherApp), ConfigurationFileInstructions(LocalizedStringResource.integrationsAppsRowTitle, id: .otherApp),
]), ]),
] ]

View File

@ -55,7 +55,7 @@ struct SetupView: View {
systemImage: "firewall", systemImage: "firewall",
) { ) {
OnboardingButton( OnboardingButton(
LocalizedStringResource.onboardingIntegrationsButtonTitle, LocalizedStringResource.onboardingIntegrationsButton,
complete: integrations, complete: integrations,
width: buttonWidth width: buttonWidth
) { ) {
@ -70,7 +70,7 @@ struct SetupView: View {
.frame(minWidth: 700, maxWidth: .infinity) .frame(minWidth: 700, maxWidth: .infinity)
HStack { HStack {
Spacer() Spacer()
Button("Done") { Button(.onboardingDoneButton) {
setupComplete = true setupComplete = true
dismiss() dismiss()
} }