diff --git a/damus/Models/UserSettingsStore.swift b/damus/Models/UserSettingsStore.swift
index 0b12879a..af64c213 100644
--- a/damus/Models/UserSettingsStore.swift
+++ b/damus/Models/UserSettingsStore.swift
@@ -138,6 +138,17 @@ class UserSettingsStore: ObservableObject {
@Setting(key: "disable_animation", default_value: UIAccessibility.isReduceMotionEnabled)
var disable_animation: Bool
+
+ // Helper for inverse of disable_animation.
+ // disable_animation was introduced as a setting first, but it's more natural for the settings UI to show the inverse.
+ var enable_animation: Bool {
+ get {
+ !disable_animation
+ }
+ set {
+ disable_animation = !newValue
+ }
+ }
@StringSetting(key: "friend_filter", default_value: .all)
var friend_filter: FriendFilter
diff --git a/damus/Views/Settings/AppearanceSettingsView.swift b/damus/Views/Settings/AppearanceSettingsView.swift
index ea72188b..2ab2a91a 100644
--- a/damus/Views/Settings/AppearanceSettingsView.swift
+++ b/damus/Views/Settings/AppearanceSettingsView.swift
@@ -27,15 +27,15 @@ struct AppearanceSettingsView: View {
}
Section(NSLocalizedString("Images", comment: "Section title for images configuration.")) {
- Toggle(NSLocalizedString("Disable animations", comment: "Button to disable image animation"), isOn: $settings.disable_animation)
+ Toggle(NSLocalizedString("Animations", comment: "Toggle to enable or disable image animation"), isOn: $settings.enable_animation)
.toggleStyle(.switch)
- .onChange(of: settings.disable_animation) { _ in
+ .onChange(of: settings.enable_animation) { _ in
clear_kingfisher_cache()
}
Toggle(NSLocalizedString("Always show images", comment: "Setting to always show and never blur images"), isOn: $settings.always_show_images)
.toggleStyle(.switch)
- Picker(NSLocalizedString("Select image uploader", comment: "Prompt selection of user's image uploader"),
+ Picker(NSLocalizedString("Image uploader", comment: "Prompt selection of user's image uploader"),
selection: $settings.default_media_uploader) {
ForEach(MediaUploader.allCases, id: \.self) { uploader in
Text(uploader.model.displayName)
diff --git a/damus/Views/Settings/ZapSettingsView.swift b/damus/Views/Settings/ZapSettingsView.swift
index dfa53653..403ef5df 100644
--- a/damus/Views/Settings/ZapSettingsView.swift
+++ b/damus/Views/Settings/ZapSettingsView.swift
@@ -25,10 +25,10 @@ struct ZapSettingsView: View {
Form {
Section(
header: Text(NSLocalizedString("OnlyZaps", comment: "Section header for enabling OnlyZaps mode (hide reactions)")),
- footer: Text(NSLocalizedString("Hide all 🤙's", comment: "Section footer describing onlyzaps mode"))
+ footer: Text(NSLocalizedString("Hide all 🤙's", comment: "Section footer describing OnlyZaps mode"))
) {
- Toggle(NSLocalizedString("Enable OnlyZaps mode", comment: "Setting toggle to hide reactions."), isOn: $settings.onlyzaps_mode)
+ Toggle(NSLocalizedString("OnlyZaps mode", comment: "Setting toggle to hide reactions."), isOn: $settings.onlyzaps_mode)
.toggleStyle(.switch)
.onChange(of: settings.onlyzaps_mode) { newVal in
notify(.onlyzaps_mode, newVal)
diff --git a/damus/Views/Zaps/CustomizeZapView.swift b/damus/Views/Zaps/CustomizeZapView.swift
index 83c36e2f..e36ebeb4 100644
--- a/damus/Views/Zaps/CustomizeZapView.swift
+++ b/damus/Views/Zaps/CustomizeZapView.swift
@@ -115,7 +115,7 @@ struct CustomizeZapView: View {
func ZapAmountButton(zapAmountItem: ZapAmountItem, action: @escaping () -> ()) -> some View {
Button(action: action) {
let fmt = format_msats_abbrev(Int64(zapAmountItem.amount) * 1000)
- Text("\(zapAmountItem.icon)\n\(fmt)")
+ Text(verbatim: "\(zapAmountItem.icon)\n\(fmt)")
.contentShape(Rectangle())
.font(.headline)
.frame(width: 70, height: 70)
@@ -147,7 +147,7 @@ struct CustomizeZapView: View {
self.custom_amount_sats = nil
}
}
- Text("sats")
+ Text("sats", comment: "Shortened form of satoshi, display unit of measure where 1,000,000,000 satoshis is 1 Bitcoin. Used to indicate how many sats will be zapped to a note, configured through the custom zap view.")
.font(.system(size: 18, weight: .heavy))
}
}
@@ -253,16 +253,16 @@ struct CustomizeZapView: View {
switch zap_type {
case .pub:
Image(systemName: "person.2")
- Text("Public")
+ Text("Public", comment: "Button text to indicate that the zap type is a public zap.")
case .anon:
Image(systemName: "person.fill.questionmark")
- Text("Anonymous")
+ Text("Anonymous", comment: "Button text to indicate that the zap type is a anonymous zap.")
case .priv:
Image(systemName: "lock")
- Text("Private")
+ Text("Private", comment: "Button text to indicate that the zap type is a private zap.")
case .non_zap:
Image(systemName: "bolt")
- Text("None")
+ Text("None", comment: "Button text to indicate that the zap type is a private zap.")
}
}
.font(.headline)
diff --git a/damus/Views/Zaps/ZapTypePicker.swift b/damus/Views/Zaps/ZapTypePicker.swift
index edfa822e..515a3877 100644
--- a/damus/Views/Zaps/ZapTypePicker.swift
+++ b/damus/Views/Zaps/ZapTypePicker.swift
@@ -50,14 +50,14 @@ struct ZapTypePicker: View {
var body: some View {
VStack(spacing: 20) {
HStack {
- Text("Zap type")
+ Text("Zap type", comment: "Text to indicate that the buttons below it is for choosing the type of zap to send.")
.font(.system(size: 25, weight: .heavy))
Spacer()
if !is_default {
Button(action: {
settings.default_zap_type = zap_type
}) {
- Label("Make Default", image: "checkmark.circle.fill")
+ Label(NSLocalizedString("Make Default", comment: "Button label to indicate that tapping it will make the selected zap type be the default for future zaps."), image: "checkmark.circle.fill")
}
}
}
diff --git a/damus/ar.lproj/Localizable.strings b/damus/ar.lproj/Localizable.strings
index a35305c4..44e00ae0 100644
Binary files a/damus/ar.lproj/Localizable.strings and b/damus/ar.lproj/Localizable.strings differ
diff --git a/damus/el-GR.lproj/Localizable.strings b/damus/el-GR.lproj/Localizable.strings
index c818e639..d50fddbf 100644
Binary files a/damus/el-GR.lproj/Localizable.strings and b/damus/el-GR.lproj/Localizable.strings differ
diff --git a/damus/en-US.xcloc/Localized Contents/en-US.xliff b/damus/en-US.xcloc/Localized Contents/en-US.xliff
index 0066a0ca..a3273fe7 100644
--- a/damus/en-US.xcloc/Localized Contents/en-US.xliff
+++ b/damus/en-US.xcloc/Localized Contents/en-US.xliff
@@ -174,6 +174,11 @@ Sentence composed of 2 variables to describe how many people are following a use
Always show imagesSetting to always show and never blur images
+
+ Animations
+ Animations
+ Toggle to enable or disable image animation
+ AnonymousAnonymous
@@ -206,11 +211,6 @@ Sentence composed of 2 variables to describe how many people are following a use
Automatically translate notesToggle to automatically translate notes.
-
- Awesome post!
- Awesome post!
- Placeholder text for a comment to send as part of a zap to the user.
- Banner ImageBanner Image
@@ -270,11 +270,6 @@ Sentence composed of 2 variables to describe how many people are following a use
Clear CacheButton to clear image cache.
-
- Comment
- Comment
- Header text to indicate that the text field below it is a comment that will be used to send as part of a zap to the user.
- ConnectConnect
@@ -405,11 +400,6 @@ Sentence composed of 2 variables to describe how many people are following a use
CustomDropdown option for selecting a custom translation server.
-
- Custom Zap Amount
- Custom Zap Amount
- Header text to indicate that the text field below it is to enter a custom zap amount.
- DMsDMs
@@ -459,11 +449,6 @@ Sentence composed of 2 variables to describe how many people are following a use
DescriptionLabel to display relay description.
-
- Disable animations
- Disable animations
- Button to disable image animation
- DisconnectDisconnect
@@ -504,11 +489,6 @@ Sentence composed of 2 variables to describe how many people are following a use
EditButton to edit user's profile.
-
- Enable OnlyZaps mode
- Enable OnlyZaps mode
- Setting toggle to hide reactions.
- EncryptedEncrypted
@@ -529,9 +509,9 @@ Sentence composed of 2 variables to describe how many people are following a use
Error: %@Error message indicating why saving keys failed.
-
- Everyone on can see that you zapped
- Everyone on can see that you zapped
+
+ Everyone will see that you zapped
+ Everyone will see that you zappedDescription of public zap type where the zap is sent publicly and identifies the user who sent it.
@@ -598,7 +578,7 @@ Sentence composed of 2 variables to describe how many people are following a use
Hide all 🤙'sHide all 🤙's
- Section footer describing onlyzaps mode
+ Section footer describing OnlyZaps modeHome
@@ -610,6 +590,11 @@ Sentence composed of 2 variables to describe how many people are following a use
Illegal contentButton for user to report that the account or content has illegal content.
+
+ Image uploader
+ Image uploader
+ Prompt selection of user's image uploader
+ ImagesImages
@@ -719,6 +704,11 @@ Sentence composed of 2 variables to describe how many people are following a use
Looking for %@...Label that appears when searching for note or profile
+
+ Make Default
+ Make Default
+ Button label to indicate that tapping it will make the selected zap type be the default for future zaps.
+ Make sure your nsec account key is saved before you logout or you will lose access to this accountMake sure your nsec account key is saved before you logout or you will lose access to this account
@@ -786,16 +776,21 @@ Sentence composed of 2 variables to describe how many people are following a use
No mute list found, create a new one? This will overwrite any previous mute lists.Alert message prompt that asks if the user wants to create a new mute list, overwriting previous mute lists.
-
- No one can see that you zapped
- No one can see that you zapped
+
+ No one will see that you zapped
+ No one will see that you zappedDescription of anonymous zap type where the zap is sent anonymously and does not identify the user who sent it.
-
- No zaps are sent, only a lightning payment.
- No zaps are sent, only a lightning payment.
+
+ No zaps will be sent, only a lightning payment.
+ No zaps will be sent, only a lightning payment.Description of non-zap type where sats are sent to the user's wallet as a regular Lightning payment, not as a zap.
+
+ None
+ None
+ Button text to indicate that the zap type is a private zap.
+ Note contains "nsec1" private key. Are you sure?Note contains "nsec1" private key. Are you sure?
@@ -847,6 +842,11 @@ Sentence composed of 2 variables to describe how many people are following a use
OnlyZaps EnabledNon-tappable text in context menu that shows up when the zap button on profile is long pressed to indicate that the user has enabled OnlyZaps, meaning that they would like to be only zapped and not accept reactions to their notes.
+
+ OnlyZaps mode
+ OnlyZaps mode
+ Setting toggle to hide reactions.
+ Paid RelayPaid Relay
@@ -904,7 +904,7 @@ Label for filter for seeing your posts and replies (instead of only your posts).
PrivatePrivateHeading indicating that this application keeps personally identifiable information private. A sentence describing what is done to keep data private comes after this heading.
-Picker option to indicate that a zap should be sent privately and not identify the user to the public.
+Button text to indicate that the zap type is a private zap.
Private Key
@@ -934,7 +934,7 @@ Picker option to indicate that a zap should be sent privately and not identify t
PublicPublic
- Picker option to indicate that a zap should be sent publicly and identify the user as who sent it.
+ Button text to indicate that the zap type is a public zap.Public Account ID
@@ -1127,16 +1127,16 @@ Picker option to indicate that a zap should be sent privately and not identify t
Select default walletPrompt selection of user's default wallet
-
- Select image uploader
- Select image uploader
- Prompt selection of user's image uploader
- Send a message to start the conversation...Send a message to start the conversation...Text prompt for user to send a message to the other user.
+
+ Send a reply with your zap...
+ Send a reply with your zap...
+ Placeholder text for a comment to send as part of a zap to the user.
+ ServerServer
@@ -1470,26 +1470,16 @@ YOU WILL NO LONGER BE ABLE TO LOG INTO DAMUS USING THIS ACCOUNT KEY.
Button to send a zap.
Title of notification when a non-private zap is received.
-
- Zap Amount
- Zap Amount
- Title of picker that allows selection of predefined amounts to zap.
-
-
- Zap Amount in sats
- Zap Amount in sats
- Header text to indicate that the picker below it is to choose a pre-defined amount of sats to zap.
-
-
- Zap Type
- Zap Type
- Header text to indicate that the picker below it is to choose the type of zap to send.
- Zap VibrationZap VibrationSetting to enable vibration on zap
+
+ Zap type
+ Zap type
+ Text to indicate that the buttons below it is for choosing the type of zap to send.
+ Zapping...Zapping...
@@ -1529,11 +1519,6 @@ YOU WILL NO LONGER BE ABLE TO LOG INTO DAMUS USING THIS ACCOUNT KEY.
NoneDropdown option for selecting no translation service.
-
- None
- None
- Picker option to indicate that sats should be sent to the user's wallet as a regular Lightning payment, not as a zap.
- nownow
@@ -1550,8 +1535,8 @@ YOU WILL NO LONGER BE ABLE TO LOG INTO DAMUS USING THIS ACCOUNT KEY.
Label indicating that a form input is optional.
- Only '%@' can see that you zapped them
- Only '%@' can see that you zapped them
+ Only '%@' will see that you zapped them
+ Only '%@' will see that you zapped themDescription of private zap type where the zap is sent privately and does not identify the user to the public.
@@ -1619,6 +1604,11 @@ YOU WILL NO LONGER BE ABLE TO LOG INTO DAMUS USING THIS ACCOUNT KEY.
satoshiExample username of Bitcoin creator(s), Satoshi Nakamoto.
+
+ sats
+ sats
+ Shortened form of satoshi, display unit of measure where 1,000,000,000 satoshis is 1 Bitcoin. Used to indicate how many sats will be zapped to a note, configured through the custom zap view.
+ selfself
diff --git a/damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings b/damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings
index a2e688a2..d88d1957 100644
Binary files a/damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings and b/damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings differ
diff --git a/damus/es-419.lproj/Localizable.strings b/damus/es-419.lproj/Localizable.strings
index 035c6e23..38538e85 100644
Binary files a/damus/es-419.lproj/Localizable.strings and b/damus/es-419.lproj/Localizable.strings differ
diff --git a/damus/nl.lproj/Localizable.strings b/damus/nl.lproj/Localizable.strings
index e06dde0a..123b6b7e 100644
Binary files a/damus/nl.lproj/Localizable.strings and b/damus/nl.lproj/Localizable.strings differ