damus

nostr ios client
git clone git://jb55.com/damus
Log | Files | Refs | README | LICENSE

commit 624d9662d7f0c91fa8456928ddcafd2ff81f5534
parent 88db9de4ea6d94fca94ee04e03c16e404dd190cd
Author: William Casarin <jb55@jb55.com>
Date:   Mon, 24 Apr 2023 16:20:19 -0700

Merge remote-tracking branch 'github/translations'

Diffstat:
Mdamus/Models/UserSettingsStore.swift | 11+++++++++++
Mdamus/Views/Settings/AppearanceSettingsView.swift | 6+++---
Mdamus/Views/Settings/ZapSettingsView.swift | 4++--
Mdamus/Views/Zaps/CustomizeZapView.swift | 12++++++------
Mdamus/Views/Zaps/ZapTypePicker.swift | 4++--
Mdamus/ar.lproj/Localizable.strings | 0
Mdamus/el-GR.lproj/Localizable.strings | 0
Mdamus/en-US.xcloc/Localized Contents/en-US.xliff | 118++++++++++++++++++++++++++++++++++++-------------------------------------------
Mdamus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings | 0
Mdamus/es-419.lproj/Localizable.strings | 0
Mdamus/nl.lproj/Localizable.strings | 0
11 files changed, 78 insertions(+), 77 deletions(-)

diff --git 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 @@ -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 @@ -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 @@ -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 @@ -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 Binary files differ. diff --git a/damus/el-GR.lproj/Localizable.strings b/damus/el-GR.lproj/Localizable.strings Binary files differ. diff --git 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 <target>Always show images</target> <note>Setting to always show and never blur images</note> </trans-unit> + <trans-unit id="Animations" xml:space="preserve"> + <source>Animations</source> + <target>Animations</target> + <note>Toggle to enable or disable image animation</note> + </trans-unit> <trans-unit id="Anonymous" xml:space="preserve"> <source>Anonymous</source> <target>Anonymous</target> @@ -206,11 +211,6 @@ Sentence composed of 2 variables to describe how many people are following a use <target>Automatically translate notes</target> <note>Toggle to automatically translate notes.</note> </trans-unit> - <trans-unit id="Awesome post!" xml:space="preserve"> - <source>Awesome post!</source> - <target>Awesome post!</target> - <note>Placeholder text for a comment to send as part of a zap to the user.</note> - </trans-unit> <trans-unit id="Banner Image" xml:space="preserve"> <source>Banner Image</source> <target>Banner Image</target> @@ -270,11 +270,6 @@ Sentence composed of 2 variables to describe how many people are following a use <target>Clear Cache</target> <note>Button to clear image cache.</note> </trans-unit> - <trans-unit id="Comment" xml:space="preserve"> - <source>Comment</source> - <target>Comment</target> - <note>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.</note> - </trans-unit> <trans-unit id="Connect" xml:space="preserve"> <source>Connect</source> <target>Connect</target> @@ -405,11 +400,6 @@ Sentence composed of 2 variables to describe how many people are following a use <target>Custom</target> <note>Dropdown option for selecting a custom translation server.</note> </trans-unit> - <trans-unit id="Custom Zap Amount" xml:space="preserve"> - <source>Custom Zap Amount</source> - <target>Custom Zap Amount</target> - <note>Header text to indicate that the text field below it is to enter a custom zap amount.</note> - </trans-unit> <trans-unit id="DMs" xml:space="preserve"> <source>DMs</source> <target>DMs</target> @@ -459,11 +449,6 @@ Sentence composed of 2 variables to describe how many people are following a use <target>Description</target> <note>Label to display relay description.</note> </trans-unit> - <trans-unit id="Disable animations" xml:space="preserve"> - <source>Disable animations</source> - <target>Disable animations</target> - <note>Button to disable image animation</note> - </trans-unit> <trans-unit id="Disconnect" xml:space="preserve"> <source>Disconnect</source> <target>Disconnect</target> @@ -504,11 +489,6 @@ Sentence composed of 2 variables to describe how many people are following a use <target>Edit</target> <note>Button to edit user's profile.</note> </trans-unit> - <trans-unit id="Enable OnlyZaps mode" xml:space="preserve"> - <source>Enable OnlyZaps mode</source> - <target>Enable OnlyZaps mode</target> - <note>Setting toggle to hide reactions.</note> - </trans-unit> <trans-unit id="Encrypted" xml:space="preserve"> <source>Encrypted</source> <target>Encrypted</target> @@ -529,9 +509,9 @@ Sentence composed of 2 variables to describe how many people are following a use <target>Error: %@</target> <note>Error message indicating why saving keys failed.</note> </trans-unit> - <trans-unit id="Everyone on can see that you zapped" xml:space="preserve"> - <source>Everyone on can see that you zapped</source> - <target>Everyone on can see that you zapped</target> + <trans-unit id="Everyone will see that you zapped" xml:space="preserve"> + <source>Everyone will see that you zapped</source> + <target>Everyone will see that you zapped</target> <note>Description of public zap type where the zap is sent publicly and identifies the user who sent it.</note> </trans-unit> <trans-unit id="Filter" xml:space="preserve"> @@ -598,7 +578,7 @@ Sentence composed of 2 variables to describe how many people are following a use <trans-unit id="Hide all 🤙's" xml:space="preserve"> <source>Hide all 🤙's</source> <target>Hide all 🤙's</target> - <note>Section footer describing onlyzaps mode</note> + <note>Section footer describing OnlyZaps mode</note> </trans-unit> <trans-unit id="Home" xml:space="preserve"> <source>Home</source> @@ -610,6 +590,11 @@ Sentence composed of 2 variables to describe how many people are following a use <target>Illegal content</target> <note>Button for user to report that the account or content has illegal content.</note> </trans-unit> + <trans-unit id="Image uploader" xml:space="preserve"> + <source>Image uploader</source> + <target>Image uploader</target> + <note>Prompt selection of user's image uploader</note> + </trans-unit> <trans-unit id="Images" xml:space="preserve"> <source>Images</source> <target>Images</target> @@ -719,6 +704,11 @@ Sentence composed of 2 variables to describe how many people are following a use <target>Looking for %@...</target> <note>Label that appears when searching for note or profile</note> </trans-unit> + <trans-unit id="Make Default" xml:space="preserve"> + <source>Make Default</source> + <target>Make Default</target> + <note>Button label to indicate that tapping it will make the selected zap type be the default for future zaps.</note> + </trans-unit> <trans-unit id="Make sure your nsec account key is saved before you logout or you will lose access to this account" xml:space="preserve"> <source>Make sure your nsec account key is saved before you logout or you will lose access to this account</source> <target>Make sure your nsec account key is saved before you logout or you will lose access to this account</target> @@ -786,16 +776,21 @@ Sentence composed of 2 variables to describe how many people are following a use <target>No mute list found, create a new one? This will overwrite any previous mute lists.</target> <note>Alert message prompt that asks if the user wants to create a new mute list, overwriting previous mute lists.</note> </trans-unit> - <trans-unit id="No one can see that you zapped" xml:space="preserve"> - <source>No one can see that you zapped</source> - <target>No one can see that you zapped</target> + <trans-unit id="No one will see that you zapped" xml:space="preserve"> + <source>No one will see that you zapped</source> + <target>No one will see that you zapped</target> <note>Description of anonymous zap type where the zap is sent anonymously and does not identify the user who sent it.</note> </trans-unit> - <trans-unit id="No zaps are sent, only a lightning payment." xml:space="preserve"> - <source>No zaps are sent, only a lightning payment.</source> - <target>No zaps are sent, only a lightning payment.</target> + <trans-unit id="No zaps will be sent, only a lightning payment." xml:space="preserve"> + <source>No zaps will be sent, only a lightning payment.</source> + <target>No zaps will be sent, only a lightning payment.</target> <note>Description of non-zap type where sats are sent to the user's wallet as a regular Lightning payment, not as a zap.</note> </trans-unit> + <trans-unit id="None" xml:space="preserve"> + <source>None</source> + <target>None</target> + <note>Button text to indicate that the zap type is a private zap.</note> + </trans-unit> <trans-unit id="Note contains &quot;nsec1&quot; private key. Are you sure?" xml:space="preserve"> <source>Note contains "nsec1" private key. Are you sure?</source> <target>Note contains "nsec1" private key. Are you sure?</target> @@ -847,6 +842,11 @@ Sentence composed of 2 variables to describe how many people are following a use <target>OnlyZaps Enabled</target> <note>Non-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.</note> </trans-unit> + <trans-unit id="OnlyZaps mode" xml:space="preserve"> + <source>OnlyZaps mode</source> + <target>OnlyZaps mode</target> + <note>Setting toggle to hide reactions.</note> + </trans-unit> <trans-unit id="Paid Relay" xml:space="preserve"> <source>Paid Relay</source> <target>Paid Relay</target> @@ -904,7 +904,7 @@ Label for filter for seeing your posts and replies (instead of only your posts). <source>Private</source> <target>Private</target> <note>Heading 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.</note> +Button text to indicate that the zap type is a private zap.</note> </trans-unit> <trans-unit id="Private Key" xml:space="preserve"> <source>Private Key</source> @@ -934,7 +934,7 @@ Picker option to indicate that a zap should be sent privately and not identify t <trans-unit id="Public" xml:space="preserve"> <source>Public</source> <target>Public</target> - <note>Picker option to indicate that a zap should be sent publicly and identify the user as who sent it.</note> + <note>Button text to indicate that the zap type is a public zap.</note> </trans-unit> <trans-unit id="Public Account ID" xml:space="preserve"> <source>Public Account ID</source> @@ -1127,16 +1127,16 @@ Picker option to indicate that a zap should be sent privately and not identify t <target>Select default wallet</target> <note>Prompt selection of user's default wallet</note> </trans-unit> - <trans-unit id="Select image uploader" xml:space="preserve"> - <source>Select image uploader</source> - <target>Select image uploader</target> - <note>Prompt selection of user's image uploader</note> - </trans-unit> <trans-unit id="Send a message to start the conversation..." xml:space="preserve"> <source>Send a message to start the conversation...</source> <target>Send a message to start the conversation...</target> <note>Text prompt for user to send a message to the other user.</note> </trans-unit> + <trans-unit id="Send a reply with your zap..." xml:space="preserve"> + <source>Send a reply with your zap...</source> + <target>Send a reply with your zap...</target> + <note>Placeholder text for a comment to send as part of a zap to the user.</note> + </trans-unit> <trans-unit id="Server" xml:space="preserve"> <source>Server</source> <target>Server</target> @@ -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.</note> </trans-unit> - <trans-unit id="Zap Amount" xml:space="preserve"> - <source>Zap Amount</source> - <target>Zap Amount</target> - <note>Title of picker that allows selection of predefined amounts to zap.</note> - </trans-unit> - <trans-unit id="Zap Amount in sats" xml:space="preserve"> - <source>Zap Amount in sats</source> - <target>Zap Amount in sats</target> - <note>Header text to indicate that the picker below it is to choose a pre-defined amount of sats to zap.</note> - </trans-unit> - <trans-unit id="Zap Type" xml:space="preserve"> - <source>Zap Type</source> - <target>Zap Type</target> - <note>Header text to indicate that the picker below it is to choose the type of zap to send.</note> - </trans-unit> <trans-unit id="Zap Vibration" xml:space="preserve"> <source>Zap Vibration</source> <target>Zap Vibration</target> <note>Setting to enable vibration on zap</note> </trans-unit> + <trans-unit id="Zap type" xml:space="preserve"> + <source>Zap type</source> + <target>Zap type</target> + <note>Text to indicate that the buttons below it is for choosing the type of zap to send.</note> + </trans-unit> <trans-unit id="Zapping..." xml:space="preserve"> <source>Zapping...</source> <target>Zapping...</target> @@ -1529,11 +1519,6 @@ YOU WILL NO LONGER BE ABLE TO LOG INTO DAMUS USING THIS ACCOUNT KEY. <target>None</target> <note>Dropdown option for selecting no translation service.</note> </trans-unit> - <trans-unit id="none_zap_type" xml:space="preserve"> - <source>None</source> - <target>None</target> - <note>Picker option to indicate that sats should be sent to the user's wallet as a regular Lightning payment, not as a zap.</note> - </trans-unit> <trans-unit id="now" xml:space="preserve"> <source>now</source> <target>now</target> @@ -1550,8 +1535,8 @@ YOU WILL NO LONGER BE ABLE TO LOG INTO DAMUS USING THIS ACCOUNT KEY. <note>Label indicating that a form input is optional.</note> </trans-unit> <trans-unit id="private_zap_description" xml:space="preserve"> - <source>Only '%@' can see that you zapped them</source> - <target>Only '%@' can see that you zapped them</target> + <source>Only '%@' will see that you zapped them</source> + <target>Only '%@' will see that you zapped them</target> <note>Description of private zap type where the zap is sent privately and does not identify the user to the public.</note> </trans-unit> <trans-unit id="reacted_tagged_in_1" xml:space="preserve"> @@ -1619,6 +1604,11 @@ YOU WILL NO LONGER BE ABLE TO LOG INTO DAMUS USING THIS ACCOUNT KEY. <target>satoshi</target> <note>Example username of Bitcoin creator(s), Satoshi Nakamoto.</note> </trans-unit> + <trans-unit id="sats" xml:space="preserve"> + <source>sats</source> + <target>sats</target> + <note>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.</note> + </trans-unit> <trans-unit id="self" xml:space="preserve"> <source>self</source> <target>self</target> 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 Binary files differ. diff --git a/damus/es-419.lproj/Localizable.strings b/damus/es-419.lproj/Localizable.strings Binary files differ. diff --git a/damus/nl.lproj/Localizable.strings b/damus/nl.lproj/Localizable.strings Binary files differ.